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

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

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


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

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

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


Предисловие

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

Введение

Содержание

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


Что такое PHP?

PHP (рекурсивный акроним словосочетания PHP: Hypertext Preprocessor) - это распространенный язык программирования общего назначения с открытым исходным кодом. PHP сконструирован специально для ведения Web-разработок и его код может внедряться непосредственно в 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, главным образом, предназначен для работы в среде web-серверов, область его применения не ограничивается только этим. Читайте дальше и не пропустите главу Возможности 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, Mac OS X, RISC OS, и многие другие. Также в PHP включена поддержка большинства современных веб-серверов, таких как Apache, IIS и многих других. В принципе, подойдет любой веб-сервер, способный использовать бинарный файл FastCGI PHP, например, lighttpd или nginx. PHP может работать в качестве модуля или функционировать в качестве процессора CGI.

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

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

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

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

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

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

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


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

Содержание

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<?php phpinfo(); ?>


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

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

Замечание:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


Что дальше?

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

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


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

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


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

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

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

Для первой и наиболее распространенной цели вам нужны три вещи: Сам PHP, веб-сервер и веб-браузер. Вероятно, вы уже имеете веб-браузер и в зависимости от настроек вашей операционной системы, вы так же можете иметь и веб-сервер (например Apache в Linux и MacOS X; 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 можно получить здесь: » http://www.php.net/downloads.php. Мы рекомендуем использовать » зеркала для загрузки.


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

Содержание

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

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

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

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

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

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

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

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

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

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

Замечание:

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

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


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

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

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

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

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx

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

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

11. make
12. make install

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

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

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

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

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

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

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

      LoadModule php5_module libexec/libphp5.so

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

      AddModule mod_php5.c

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

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

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

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

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

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

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

1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
2.  cd apache_1.3.x
3.  ./configure
4.  cd ..

5.  gunzip -c php-5.x.y.tar.gz | tar xf -
6.  cd php-5.x.y
7.  ./configure --with-mysql --with-apache=../apache_1.3.x
8.  make
9.  make install

10. cd ../apache_1.3.x

11. ./configure --prefix=/www --activate-module=src/modules/php5/libphp5.a
    (Строка выше корректна. Файл libphp5.a не существует на
    данном этапе, он будет создан.)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Замечание:

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

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

Замечание:

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


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

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

Внимание

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

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

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

На данный момент есть две версии Apache 2.x - 2.0 и 2.2. Хотя для выбора каждой из них существуют отдельные доводы, 2.2 является наиболее свежей и рекомендуемой версией, если вас устраивает такой выбор. Тем не менее, данные инструкции будут работать как для 2.0, так и для 2.2.

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

    gzip -d httpd-2_x_NN.tar.gz
tar -xf httpd-2_x_NN.tar

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

    gunzip php-NN.tar.gz
tar -xf php-NN.tar

  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-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 может добавить эту инструкцию автоматически, но этого может и не произойти, поэтому проверьте, чтобы убедиться.

    For PHP 7:

    LoadModule php7_module modules/libphp7.so

    For PHP 5:

    LoadModule php5_module modules/libphp5.so

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

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

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

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

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

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

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

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

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

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

    /usr/local/apache2/bin/apachectl start

    ИЛИ

    service httpd restart

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

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

--with-mpm=worker

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

Замечание:

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

Замечание:

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


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

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

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

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

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

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

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

    tar zxf php-x.x.x

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

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

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

    cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.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.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://localhsot. phpinfo() теперь должно отображаться.

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


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

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

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

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

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

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

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

server.modules += ( "mod_fastcgi" )

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

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

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

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

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

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

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

#!/bin/sh

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

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

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

PHP_FCGI_CHILDREN=16
PHP_FCGI_MAX_REQUESTS=10000

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

echo $! > "$PHP_PID"

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

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

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

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


Sun, iPlanet and Netscape servers on Sun Solaris

This section contains notes and hints specific to Sun Java System Web Server, Sun ONE Web Server, iPlanet and Netscape server installs of PHP on Sun Solaris.

From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to generate custom directory listings and error pages. Additional functions for Apache compatibility are also available. For support in current web servers read the note about subrequests.

You can find more information about setting up PHP for the Netscape Enterprise Server (NES) here: » http://benoit.noss.free.fr/php/install-php4.html

To build PHP with Sun JSWS/Sun ONE WS/iPlanet/Netscape web servers, enter the proper install directory for the --with-nsapi=[DIR] option. The default directory is usually /opt/netscape/suitespot/. Please also read /php-xxx-version/sapi/nsapi/nsapi-readme.txt.

  1. Install the following packages from » http://www.sunfreeware.com/ or another download site:

    • autoconf-2.13
    • automake-1.4
    • bison-1_25-sol26-sparc-local
    • flex-2_5_4a-sol26-sparc-local
    • gcc-2_95_2-sol26-sparc-local
    • gzip-1.2.4-sol26-sparc-local
    • m4-1_4-sol26-sparc-local
    • make-3_76_1-sol26-sparc-local
    • mysql-3.23.24-beta (if you want mysql support)
    • perl-5_005_03-sol26-sparc-local
    • tar-1.13 (GNU tar)

  2. Make sure your path includes the proper directories PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin and make it available to your system export PATH.
  3. gunzip php-x.x.x.tar.gz (if you have a .gz dist, otherwise go to 4).
  4. tar xvf php-x.x.x.tar
  5. Change to your extracted PHP directory: cd ../php-x.x.x

  6. For the following step, make sure /opt/netscape/suitespot/ is where your netscape server is installed. Otherwise, change to the correct path and run:

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

  7. Run make followed by make install.

After performing the base install and reading the appropriate readme file, you may need to perform some additional configuration steps.

Configuration Instructions for Sun/iPlanet/Netscape

Firstly you may need to add some paths to the LD_LIBRARY_PATH environment for the server to find all the shared libs. This can best done in the start script for your web server. The start script is often located in: /path/to/server/https-servername/start. You may also need to edit the configuration files that are located in: /path/to/server/https-servername/config/.

  1. Add the following line to mime.types (you can do that by the administration server):

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

  2. Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6) and add the following, shlib will vary depending on your system, it will be something like /opt/netscape/suitespot/bin/libphp4.so. You should place the following lines after mime types init.

    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]
    (PHP >= 4.3.3) The php_ini parameter is optional but with it you can place your php.ini in your web server config directory.

  3. Configure the default object in obj.conf (for virtual server classes [version 6.0+] in their vserver.obj.conf):

    <Object name="default">
.
.
.
.#NOTE this next line should happen after all 'ObjectType' and before all 'AddLog' lines
Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
.
.
</Object>
    (PHP >= 4.3.3) As additional parameters you can add some special php.ini-values, for example you can set a docroot="/path/to/docroot" specific to the context php4_execute is called. For boolean ini-keys please use 0/1 as value, not "On","Off",... (this will not work correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"

  4. This is only needed if you want to configure a directory that only consists of PHP scripts (same like a cgi-bin directory):

    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    After that you can configure a directory in the Administration server and assign it the style x-httpd-php. All files in it will get executed as PHP. This is nice to hide PHP usage by renaming files to .html.

  5. Setup of authentication: PHP authentication cannot be used with any other authentication. ALL AUTHENTICATION IS PASSED TO YOUR PHP SCRIPT. To configure PHP Authentication for the entire server, add the following line to your default object:

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

  6. To use PHP Authentication on a single directory, add the following:

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

Замечание:

The stacksize that PHP uses depends on the configuration of the web server. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section "MAGNUS EDITOR").

CGI environment and recommended modifications in php.ini

Important when writing PHP scripts is the fact that Sun JSWS/Sun ONE WS/iPlanet/Netscape is a multithreaded web server. Because of that all requests are running in the same process space (the space of the web server itself) and this space has only one environment. If you want to get CGI variables like PATH_INFO, HTTP_HOST etc. it is not the correct way to try this in the old PHP way with getenv() or a similar way (register globals to environment, $_ENV). You would only get the environment of the running web server without any valid CGI variables!

Замечание:

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

Answer: This is because you started the web server process from the admin server which runs the startup script of the web server, you wanted to start, as a CGI script (a CGI script inside of the admin server!). This is why the environment of the started web server has some CGI environment variables in it. You can test this by starting the web server not from the administration server. Use the command line as root user and start it manually - you will see there are no CGI-like environment variables.

Simply change your scripts to get CGI variables in the correct way for PHP 4.x by using the superglobal $_SERVER. If you have older scripts which use $HTTP_HOST, etc., you should turn on register_globals in php.ini and change the variable order too (important: remove "E" from it, because you do not need the environment here):

variables_order = "GPCS"
register_globals = On

Special use for error pages or self-made directory listings (PHP >= 4.3.3)

You can use PHP to generate the error pages for "404 Not Found" or similar. Add the following line to the object in obj.conf for every error page you want to overwrite:

Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
where XXX is the HTTP error code. Please delete any other Error directives which could interfere with yours. If you want to place a page for all errors that could exist, leave the code parameter out. Your script can get the HTTP status code with $_SERVER['ERROR_TYPE'].

Another possibility is to generate self-made directory listings. Just create a PHP script which displays a directory listing and replace the corresponding default Service line for type="magnus-internal/directory" in obj.conf with the following:

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
For both error and directory listing pages the original URI and translated URI are in the variables $_SERVER['PATH_INFO'] and $_SERVER['PATH_TRANSLATED'].

Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)

The NSAPI module now supports the nsapi_virtual() function (alias: virtual()) to make subrequests on the web server and insert the result in the web page. This function uses some undocumented features from the NSAPI library. On Unix the module automatically looks for the needed functions and uses them if available. If not, nsapi_virtual() is disabled.

Замечание:

But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!


LiteSpeed Web Server/OpenLiteSpeed Web Server on Unix systems

LiteSpeed PHP is an optimized compilation of PHP built to work with LiteSpeed products through the LiteSpeed SAPI. LSPHP runs as its own process and has its own standalone binary, which can be used as a simple command line binary to execute PHP scripts from the command line.

The LSAPI is a highly optimized API that allows communication between LiteSpeed and third party web engines. Its protocol is similar to FCGI, but is more efficient.

This documentation will cover installing and configuring PHP with LSAPI for a LiteSpeed Web Server and OpenLiteSpeed Web Server.

This guide will assume that either LSWS or OLS is installed with their default paths and flags. The default installation directory for both web servers is /usr/local/lsws and both can be run from the bin subdirectory.

Please note that throughout this documentation, version numbers have been replaced with an x to ensure this documentation stays correct in the future, please replace these, as necessary, with the corresponding version numbers.

  1. To obtain and install either LiteSpeed Web Server or OpenLiteSpeed Web Server, visit the LiteSpeed Web Server wiki » install page or OpenLiteSpeed wiki » install page.

  2. Obtain and unpack the php source:

    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. Configure and build PHP. This is where PHP can be customized with various options, such as which extensions will be enabled. Run ./configure --help for a list of available options. In the example, we'll use the default recommended configuration options for LiteSpeed Web Server:

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

  4. Checking The LSPHP Installation

    One of the simplest ways to check whether the installation of PHP was successful is to run the following code:

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

    This should return information about the new PHP build:

    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

    Notice the litespeed in parenthesis. This means that the PHP binary has been built with LSAPI support.

Following the steps above, LiteSpeed / OpenLiteSpeed Web Server should now be running with support for PHP as an SAPI extension. There are many more configuration options available for LSWS / OLS and PHP. For more information, check out the LiteSpeed wiki about » PHP.

Using LSPHP from the command line:

LSPHP(LSAPI + PHP) command line mode is used to process PHP scripts running on a remote server that does not necessarily have a web server running. It is used to process PHP scripts residing on a local web server (separate). This setup is suitable for service scalability as PHP processing is offloaded to a remote server.

Start lsphp from the command line on a remote server: LSPHP is an executable and can be started manually and bound to IPv4, IPv6, or Unix domain socket addresses with the command line option -b socket_address

Examples:

Have LSPHP bind to port 3000 on all IPv4 and IPv6 addresses:

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

Have LSPHP bind to port 3000 on all IPv4 addresses:

/path/to/lsphp -b *:3000

Have LSPHP bind to address 192.168.0.2:3000:

/path/to/lsphp -b 192.168.0.2:3000

Have LSPHP accept requests on Unix domain socket /tmp/lsphp_manual.sock:

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

Environment variables can be added before the LSPHP executable:

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

Currently LiteSpeed PHP can be used with LiteSpeed Web Server, OpenLiteSpeed Web Server, and Apache mod_lsapi. For steps on server-side configuration, visit the wiki pages for » LiteSpeed Web Server and » OpenLiteSpeed.

LSPHP can be installed in several other ways as well.

CentOS: On CentOS, LSPHP can be installed from the LiteSpeed Repository or the Remi Repository using » RPM.

Debian: On Debian, LSPHP can be installed from the LiteSpeed Repository using » apt.

cPanel: Visit the respective » wiki page about how to install LSPHP with cPanel and LSWS/OLS using EasyApache 4.

Plesk: Plesk can be used with LSPHP on CentOS, CloudLinux, Debian, and Ubuntu, for more details on this, visit the respective » wiki page


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

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

Внимание

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

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

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

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

Некоторые переменные окружения сервера не определены в текущей » спецификации CGI/1.1. Определены только следующие переменные: AUTH_TYPE, CONTENT_LENGTH, CONTENT_TYPE, GATEWAY_INTERFACE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REMOTE_IDENT, REMOTE_USER, REQUEST_METHOD, SCRIPT_NAME, SERVER_NAME, SERVER_PORT, SERVER_PROTOCOL и SERVER_SOFTWARE. Все остальное должно обрабатываться как дополнительные расширения (vendor extensions).


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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

  • tar
  • gzip или
  • bzip2

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

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

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

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

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

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


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

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

Внимание

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

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

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

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

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

Пример #1 Debian Install Example with Apache 2

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

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

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

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

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

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

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

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

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

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

# apt-get install php5-mysql php5-curl

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

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

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


Установка на Mac OS X

Содержание

  • Using Packages
  • Использование готового пакета PHP
  • Компилирование PHP на Mac OS X

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


Using Packages

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

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

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


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

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

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

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

  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.

    Замечание: Версии Mac OS X до 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>

    Замечание:

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

  4. Убедитесь, что DirectoryIndex загружает индексный файл по умолчанию Данное поведение задается в httpd.conf. Обычно используются index.php и index.html. По умолчанию index.php разрешен. Если требуется, то отключите.
  5. Определите местоположение php.ini или используйте настройки по умолчанию Обычно на Mac OS X он расположен по пути /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" в системных настройках OS X. По умолчанию, локальные файлы можно загрузить введя в строке браузера URL, например так: http://localhost/info.php, или используя DocumentRoot в локальной директории пользователя, таким образом: http://localhost/~yourusername/info.php

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


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

Компилирование PHP на Mac OS X

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


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

Содержание

  • PHP Installer Tools on Windows
  • Рекомендованая конфигурация для систем Windows
  • Manual PHP Installation on Windows
  • Troubleshooting PHP on Windows
  • Установка на старых версиях ОС Windows

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

Замечание:

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

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

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

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


PHP Installer Tools on Windows

PHP Install Tools

If you want to setup PHP, some common PHP applications and are using IIS, the easiest way is to use Microsoft's Web Platform Installer (WebPI).

XAMPP, WampServer and BitNami will setup PHP applications for use with Apache on Windows.


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

OpCache

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

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

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

zend_extension=php_opcache.dll
opcache.enable=On
opcache.cli_enable=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
Более подробно читайте: » http://php.net/manual/en/wincache.configuration.php

Настройка IIS

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

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

База данных

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

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

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


Manual PHP Installation on Windows

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

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

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

    @echo off

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

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

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

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

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

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

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

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

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

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

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


Troubleshooting PHP on Windows

Check Temp Directory Permissions

  1. Right-click temp directory in File Explorer to get the permissions.

  2. For IIS, check that user IIS_User has MODIFY permission. You can get the temporary directory from the configuration or php info.


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

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

Замечание:

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

Замечание:

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

Замечание:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Microsoft IIS

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

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

Microsoft IIS 5.1 and IIS 6.0

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

Configuring IIS to process PHP requests

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

Замечание:

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

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

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

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

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

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

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

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

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

Замечание:

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

Impersonation and file system access

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

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

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

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

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

  3. Click the "Directory Security" tab;

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

Anonymous authenication for IIS 5.1 and IIS 6.0

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

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

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

Set index.php as a default document in IIS

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

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

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

  3. Click the "Documents" tab;

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

Setting index.php as default document for IIS

FastCGI and PHP Recycling configuration

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

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

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

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

Configuring FastCGI timeout settings

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

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

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

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

Changing the Location of php.ini file

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

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

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

Microsoft IIS 7.0 и выше

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Замечание:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Замечание:

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

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

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

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

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

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

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

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

Замечание:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Apache 1.3.x в Microsoft Windows

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

Замечание:

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

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

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

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

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

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

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

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

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

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

Для PHP 4:

# Add to the end of the LoadModule section
# Don't forget to copy this file from the sapi directory!
LoadModule php4_module "C:/php/php4apache.dll"

# Add to the end of the AddModule section
AddModule mod_php4.c

Для PHP 5:

# Add to the end of the LoadModule section
LoadModule php5_module "C:/php/php5apache.dll"

# Add to the end of the AddModule section
AddModule mod_php5.c

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

# Add this line inside the <IfModule mod_mime.c> conditional brace
AddType application/x-httpd-php .php

# For syntax highlighted .phps files, also add
AddType application/x-httpd-php-source .phps

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

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

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

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php

# For PHP 4
Action application/x-httpd-php "/php/php.exe"

# For PHP 5
Action application/x-httpd-php "/php/php-cgi.exe"

# specify the directory where php.ini is
SetEnv PHPRC C:/php
Заметьте, что вторая строка в списке выше уже находится в httpd.conf, но она закомментирована. Кроме того, не забудьте заменить c:/php/ на ваш настоящий путь к PHP.

Внимание

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

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

Apache 2.x on Microsoft Windows

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

Замечание:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Запуск PHP как CGI

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

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

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

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

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

Внимание

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

Запуск PHP под FastCGI

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

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

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

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

LoadModule fcgid_module modules/mod_fcgid.so

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

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

Sun, iPlanet and Netscape servers on Microsoft Windows

This section contains notes and hints specific to Sun Java System Web Server, Sun ONE Web Server, iPlanet and Netscape server installs of PHP on Windows.

From PHP 4.3.3 on you can use PHP scripts with the NSAPI module to Apache compatibility are also available. For support in current web servers

CGI setup on Sun, iPlanet and Netscape servers

To install PHP as a CGI handler, do the following:

  • Copy php4ts.dll to your systemroot (the directory where you installed Windows)

  • Make a file association from the command line. Type the following two lines:

    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • In the Netscape Enterprise Administration Server create a dummy shellcgi directory and remove it just after (this step creates 5 important lines in obj.conf and allow the web server to handle shellcgi scripts).
  • In the Netscape Enterprise Administration Server create a new mime type (Category: type, Content-Type: magnus-internal/shellcgi, File Suffix:php).
  • Do it for each web server instance you want PHP to run

More details about setting up PHP as a CGI executable can be found here: » http://benoit.noss.free.fr/php/install-php.html

NSAPI setup on Sun, iPlanet and Netscape servers

To install PHP with NSAPI, do the following:

  • Copy php4ts.dll to your systemroot (the directory where you installed Windows)

  • Make a file association from the command line. Type the following two lines:

    assoc .php=PHPScript
ftype PHPScript=c:\php\php.exe %1 %*

  • In the Netscape Enterprise Administration Server create a new mime type (Category: type, Content-Type: magnus-internal/x-httpd-php, File Suffix: php).

  • Edit magnus.conf (for servers >= 6) or obj.conf (for servers < 6) and add the following: You should place the lines after mime types init.

    Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="c:/php/sapi/php4nsapi.dll"
Init fn="php4_init" LateInit="yes" errorString="Failed to initialise PHP!" [php_ini="c:/path/to/php.ini"]
    (PHP >= 4.3.3) The php_ini parameter is optional but with it you can place your php.ini in your web server configuration directory.

  • Configure the default object in obj.conf (for virtual server classes [Sun Web Server 6.0+] in their vserver.obj.conf): In the <Object name="default"> section, place this line necessarily after all 'ObjectType' and before all 'AddLog' lines:

    Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]
    (PHP >= 4.3.3) As additional parameters you can add some special php.ini-values, for example you can set a docroot="/path/to/docroot" specific to the context php4_execute is called. For boolean ini-keys please use 0/1 as value, not "On","Off",... (this will not work correctly), e.g. zlib.output_compression=1 instead of zlib.output_compression="On"

  • This is only needed if you want to configure a directory that only consists of PHP scripts (same like a cgi-bin directory):

    <Object name="x-httpd-php">
ObjectType fn="force-type" type="magnus-internal/x-httpd-php"
Service fn=php4_execute [inikey=value inikey=value ...]
</Object>
    After that you can configure a directory in the Administration server and assign it the style x-httpd-php. All files in it will get executed as PHP. This is nice to hide PHP usage by renaming files to .html.

  • Restart your web service and apply changes
  • Do it for each web server instance you want PHP to run

Замечание:

More details about setting up PHP as an NSAPI filter can be found here: » http://benoit.noss.free.fr/php/install-php4.html

Замечание:

The stacksize that PHP uses depends on the configuration of the web server. If you get crashes with very large PHP scripts, it is recommended to raise it with the Admin Server (in the section "MAGNUS EDITOR").

CGI environment and recommended modifications in php.ini

Important when writing PHP scripts is the fact that Sun JSWS/Sun ONE WS/iPlanet/Netscape is a multithreaded web server. Because of that all requests are running in the same process space (the space of the web server itself) and this space has only one environment. If you want to get CGI variables like PATH_INFO, HTTP_HOST etc. it is not the correct way to try this in the old PHP way with getenv() or a similar way (register globals to environment, $_ENV). You would only get the environment of the running web server without any valid CGI variables!

Замечание:

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

Answer: This is because you started the web server process from the admin server which runs the startup script of the web server, you wanted to start, as a CGI script (a CGI script inside of the admin server!). This is why the environment of the started web server has some CGI environment variables in it. You can test this by starting the web server not from the administration server. Use the command line as root user and start it manually - you will see there are no CGI-like environment variables.

Simply change your scripts to get CGI variables in the correct way for PHP 4.x by using the superglobal $_SERVER. If you have older scripts which use $HTTP_HOST, etc., you should turn on register_globals in php.ini and change the variable order too (important: remove "E" from it, because you do not need the environment here):

variables_order = "GPCS"
register_globals = On

Special use for error pages or self-made directory listings (PHP >= 4.3.3)

You can use PHP to generate the error pages for "404 Not Found" or similar. Add the following line to the object in obj.conf for every error page you want to overwrite:

Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]
where XXX is the HTTP error code. Please delete any other Error directives which could interfere with yours. If you want to place a page for all errors that could exist, leave the code parameter out. Your script can get the HTTP status code with $_SERVER['ERROR_TYPE'].

Another possibility is to generate self-made directory listings. Just create a PHP script which displays a directory listing and replace the corresponding default Service line for type="magnus-internal/directory" in obj.conf with the following:

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]
For both error and directory listing pages the original URI and translated URI are in the variables $_SERVER['PATH_INFO'] and $_SERVER['PATH_TRANSLATED'].

Note about nsapi_virtual() and subrequests (PHP >= 4.3.3)

The NSAPI module now supports the nsapi_virtual() function (alias: virtual()) to make subrequests on the web server and insert the result in the web page. The problem is, that this function uses some undocumented features from the NSAPI library.

Under Unix this is not a problem, because the module automatically looks for the needed functions and uses them if available. If not, nsapi_virtual() is disabled.

Under Windows limitations in the DLL handling need the use of a automatic detection of the most recent ns-httpdXX.dll file. This is tested for servers till version 6.1. If a newer version of the Sun server is used, the detection fails and nsapi_virtual() is disabled.

If this is the case, try the following: Add the following parameter to php4_init in magnus.conf/obj.conf:

Init fn=php4_init ... server_lib="ns-httpdXX.dll"
where XX is the correct DLL version number. To get it, look in the server-root for the correct DLL name. The DLL with the biggest filesize is the right one.

You can check the status by using the phpinfo() function.

Замечание:

But be warned: Support for nsapi_virtual() is EXPERIMENTAL!!!

Sambar Server под Microsoft Windows

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

Замечание:

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

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

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

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

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

    #for PHP 4
*.php = c:\php\php4isapi.dll

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

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

Замечание:

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

Xitami на Microsoft Windows

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

Замечание:

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

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

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

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

Внимание

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

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

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

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

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

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

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

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

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

Установка расширений PHP в ОС Windows

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

Библиотеки DLL расширений PHP имеют префикс php_.

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

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

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

    extension_dir = C:\php\extensions

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

    Пример #23 Включение расширения Bzip2 в PHP-Windows

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

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

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

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

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

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

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

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

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

Замечание:

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

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

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

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

    Замечание:

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

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

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

    Замечание:

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

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

    assoc .php=phpfile

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

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

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

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

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

Windows Registry Editor Version 5.00

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

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

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

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

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

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

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

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

Замечание:

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

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

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


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

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

Содержание

  • Azure App Services
  • Amazon EC2

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


Azure App Services

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

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

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

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

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

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

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

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

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

WinCache

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

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

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


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

Amazon EC2

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

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


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

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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


Установка

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

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

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

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

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

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

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


Настройка

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

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

pid string

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

error_log string

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

log_level string

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

syslog.facility string

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

syslog.ident string

Предшествует любому сообщению. Если у вас запущено несколько инстансов FPM, вы можете изменить значение по умолчанию на то, которое вам необходимо. По умолчанию: php-fpm.

emergency_restart_threshold int

При данном числе рабочих процессов, завершенных с SIGSEGV или SIGBUS за промежуток времени, установленный emergency_restart_interval FPM будет перезагружен. Значение 0 означает 'Off' (отключено). По умолчанию: 0 (Off).

emergency_restart_interval mixed

Интервал времени, используемый emergency_restart_interval, чтобы определить, когда FPM будет мягко перезагружен. Это полезно для избежания случайных повреждений общей памяти ускорителя (accelerator). Доступные единицы измерения: s(секунды), m(минуты), h(часы), или d(дни). Единица измерения по умолчанию: секунды. Значение по умолчанию: 0 (Off).

process_control_timeout mixed

Время, в течение которого дочерние процессы ждут ответа на сигналы мастер-процессу. Доступные единицы измерения: s(секунды), m(минуты), h(часы) или d(дни). Единица измерения по умолчанию: секунды. Значение по умолчанию: 0.

process.max int

Максимальное количество процессов, которое может породить FPM. Это сделано для того, чтобы контролировать глобальное количество процессов, когда используется большой пул динамического PM. Используйте с осторожность. По умолчанию: 0.

process.priority int

Указывает приоритет (Unix nice(2)) мастер-процесса (только если установлено). Принимает значения от -19(максимальный приоритет) до 20(минимальный.) По умолчанию: не установлено.

daemonize boolean

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

rlimit_files int

Устанавливает rlimit открытых файловых дескрипторов для мастер-процесса. По умолчанию: Устанавливает rlimit для открытого дескриптора файла мастер-процесса(?).

rlimit_core int

Устанавливает rlimit максимального размера ядра для мастер-процесса. По умолчанию 0.

events.mechanism string

Указывает, какой событийный механизм будет использован FPM. Возможны такие варианты: select, pool, epoll, kqueue (*BSD), port (Solaris). По умолчанию: не установлено (автоопределение).

systemd_interval int

Если FPM собран с интекграцией с systemd, указывает интервал, в секундах, между оповещениями systemd о своем состоянии. Для отключения задайте 0. По умолчанию: 10.

Список директив для пулов.

Вы можете запускать несколько FPM пулов процессов с различными настройками. Эти параметры могут быть переданы пулу.

listen string

Адрес, который будет принимать FastCGI-запросы. Синтаксис: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Эта опция обязательна для каждого пула.

listen.backlog int

Устанавливает listen(2) backlog. Значение '-1' означает неограниченно. Значение по умолчанию: -1.

listen.allowed_clients string

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

listen.owner string

Задает права для unix socket, если они используются. В Linux, чтобы разрешить соединения web серверу, должны быть установлены права на чтение/запись. Во многих основанных на BSD системах возможность соединения не зависит от прав доступа. Значение по умолчанию: используется пользователь и группа, от имени которого запущен сервер, установлен режим 0660.

listen.group string

См. listen.owner.

listen.mode string

Смотри listen.owner.

listen.acl_users string

Если поддерживается Список Контроля Доступа (ACL) POSIX, вы можете настроить его с помощью этой опции. Если задано, то listen.owner и listen.group будут проигнорированы. Значение задается списком имен, разделенных запятой. Доступно с PHP 5.6.5.

listen.acl_groups string

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

user string

Unix-пользователь FPM-процессов. Этот параметр является обязательным.

group string

Unix-группа FPM-процессов. Если не установлен, группа по умолчанию равняется имени пользователя.

pm string

Выбор того, как менеджер процессов будет контролировать создание дочерних процессов. Возможные значения: static, ondemand, dynamic. Этот параметр является обязательным.

static - фиксированное число дочерних процессов (pm.max_children).

ondemand - число процессов, порождающихся по требованию (когда появляются запросы, в отличии от опции dynamic, когда стартует определенное количество процессов, равное pm.start_servers, вместе с запуском службы.

dynamic - динамически изменяющееся число дочерних процессов, задается на основании следующих директив: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.

pm.max_children int

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

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

pm.start_servers int

Число дочерних процессов, создаваемых при запуске. Используется, только когда pm установлен в dynamic. Значение по умолчанию: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.

pm.min_spare_servers int

Желаемое минимальное число неактивных процессов сервера. Используется, только когда pm установлено в dynamic. Кроме того, это обязательный параметр в этом случае.

pm.max_spare_servers int

Желаемое максимальное число неактивных процессов сервера. Используется, только когда pm установлен в dynamic. Кроме того, это обязательный параметр в этом случае.

pm.max_requests int

Число запросов дочернего процесса, после которого процесс будет перезапущен. Это полезно для избежания утечек памяти при использовании сторонних библиотек. Для бесконечной обработки запросов укажите '0'. Эквивалент PHP_FCGI_MAX_REQUESTS. Значение по умолчанию: 0.

pm.status_path string

Ссылка, по которой можно посмотреть страницу состояния FPM. Если значение не установлено, то страница статуса отображаться не будет. Значение по умолчанию: none.

ping.path string

Ссылка на ping-страницу мониторинга FPM. Если значение не установлено, ping-страница отображаться не будет. Может быть использовано для тестирования извне, чтобы убедиться, что FPM жив и реагирует. Обратите внимание, что значение должно начинаться с косой черты (/).

ping.response string

Эта директива может быть использована на настройки ответа на ping-запрос. Ответ формируется как text/plain со кодом ответа 200. Значение по умолчанию: pong.

request_terminate_timeout mixed

Таймаут для обслуживания одного запроса, после чего рабочий процесс будет завершен. Этот вариант следует использовать, когда опция 'max_execution_time' в php.ini не останавливает выполнение скрипта по каким-то причинам. Значение '0' означает 'выключено'. Доступные единицы измерения: s(секунды), m(минуты), h(часы) или d(дни). Значение по умолчанию: 0.

request_slowlog_timeout mixed

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

slowlog string

Лог-файл для медленных запросов. Значение по умолчанию: #INSTALL_PREFIX#/log/php-fpm.log.slow.

rlimit_files int

Устанавливает лимит дескрипторов открытых файлов rlimit для дочерних процессов в этом пуле. Значение по умолчанию: определяется значением системы.

rlimit_core int

Устанавливает максимальное количество используемых ядер rlimit для дочерних процессов в этом пуле. Возможные значения: 'unlimited' или целое число большее или равное 0. Значение по умолчанию: определяется значением системы.

chroot string

Директория chroot окружения при старте. Это значение должно быть определено как абсолютный путь. Если значение не установлено, chroot не используется.

chdir string

Chdir изменяет текущую директорию при старте. Это значение должно быть определено как абсолютный путь. Значение по умолчанию: текущая директория или / при использовании chroot.

catch_workers_output boolean

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

clear_env boolean

Очищает окружение в "worker" процессах FPM. Prevents arbitrary environment variables from reaching FPM worker processes by clearing the environment in workers before env vars specified in this pool configuration are added. Доступно с PHP 5.4.27, 5.5.11, и 5.6.0. По умолчанию: Yes.

security.limit_extensions string

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

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

Пример #1 Передача переменных окружения и настроек PHP пулу

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com
php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 32M
PHP настройки, переданные через php_value или php_flag перезапишут их предыдущие значения. Пожалуйста, обратите внимание, что определения disable_functions или disable_classes не будут будут перезаписывать ранее определенные в php.ini значения, а добавят новые значения.

Настройки, определенные через php_admin_value и php_admin_flag, не могут быть перезаписаны через ini_set().

Начиная с версии 5.3.3 настройки PHP можно устанавливать через веб-сервер.

Пример #2 Установка настроек PHP в nginx.conf

set $php_value "pcre.backtrack_limit=424242";
set $php_value "$php_value \n pcre.recursion_limit=99999";
fastcgi_param  PHP_VALUE $php_value;

fastcgi_param  PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
Предостережение

Так как эти настройки передаются в php-fpm как FastCGI-заголовки, php-fpm не должен быть привязан к общедоступному адресу из мира. В противном случае любой сможет изменить настройки PHP. Смотрите также listen.allowed_clients.


Установка расширений PECL

Содержание

  • Введение в установку PECL
  • Загрузка расширений PECL
  • Установка PHP-расширения в Windows
  • Компиляция разделяемых расширений с помощью команды pecl
  • Компиляция разделяемых расширений с помощью phpize
  • php-config
  • Компиляция расширений PECL статически в PHP


Введение в установку PECL

» PECL - это репозиторий расширений PHP, доступ к которым предоставляется через систему » PEAR. Эта часть руководства предназначена для демонстрации того, как вы можете получить и установить расширения PECL.

Эти инструкции подразумевают, что /your/phpsrcdir/ является путем к каталогу с дистрибутивом исходного кода PHP, а extname - это имя расширения PECL, так что вносите соответствующие коррективы. Эти инструкции также подразумевают знакомство с » командой pear. Информация в руководстве PEAR для команды pear также применима для команды pecl.

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

В процессе сборки модулей PHP важно иметь нужные версии необходимых утилит (autoconf, automake, libtool и т.д.). Информацию об этих утилитах и их версиях можно посмотреть в разделе "» Инструкции по осуществлению анонимного доступа к Git".


Загрузка расширений PECL

Есть несколько вариантов для загрузки расширений PECL, в том числе:

  • Команда pecl install extname автоматически скачивает код расширений, поэтому в этом случае нет нужды в отдельной скачке этих файлов.
  • » http://pecl.php.net/ Веб-сайт PECL содержит информацию о различных расширениях, предоставляемых командой разработчиков PHP. Информация, доступная на этом веб-сайте, включает в себя: лог изменений, новости релизов, требования и другие подобные детали.
  • pecl download extname Расширения PECL, имеющих опубликованные релизы на сайте PECL, доступны для скачивания и установки с помощью » команды pecl. Можно также указать отдельные ревизии для установки.
  • SVN Большинство расширений PECL, также, находятся в SVN. Веб-интерфейс для просмотра доступен по адресу » http://svn.php.net/viewvc/pecl/. Для загрузки напрямую из SVN используется следующая последовательность команд:

    $ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname

  • Загрузка для Windows На данный момент проект PHP не компилирует бинарные файлы Windows для расширений PECL.


Установка PHP-расширения в Windows

В Windows есть два способа загрузки PHP-расширения: скомпилировать его вместе с PHP или загрузить DLL. Загрузка заранее скомпилированного расширения является наиболее простым и предпочитаемым способом.

Для загрузки расширения, оно должно присутствовать на вашей системе в виде ".dll" файла. Все расширения автоматически и периодически компилируются командой PHP (см. следующий раздел для загрузки).

За инструкциями по компиляции расширения в PHP обратитесь к разделу "Сборка из исходников".

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

Где найти расширение?

PHP-расширения обычно имеют имена вида "php_*.dll" (где звездочка обозначает имя расширения) и располагаются в папке "PHP\ext".

PHP поставляет расширения наиболее полезные большинству разработчиков. Такие расширения называются "основными" ("core").

Однако, если вам требуется функционал, который не предоставляется ни одним из основных расширений, возможно, нужное вам расширение есть в PECL. Библиотека расширений сообщества PHP (The PHP Extension Community Library, PECL) является хранилищем расширений PHP, предоставляя каталог и хостинг всех известных расширений для скачки и дальнейшей разработки расширений в PHP.

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

Какое расширение нужно загрузить?

Очень часто существует несколько версий расширения DLL:

  • Различные номера версий (по крайней мере первые два числа должны совпадать)
  • Различные настройки потокобезопасности
  • Различная архитектура процессора (x86, x64, ...)
  • Различные настройки отладки
  • и т.д.

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

Пример #1 Вызов phpinfo()

<?php
phpinfo();
?>

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

drive:\\path\to\php\executable\php.exe -i

Загрузка расширения

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

;extension=php_extname.dll

extension=php_extname.dll

Однако, некоторые веб-серверы создают путаницу, т.к. они не используют php.ini, расположенный в дистрибутиве PHP, а используют свой собственный. Узнать, где находится используемый сервером php.ini, можно посмотрев на выводимый путь в phpinfo():

Configuration File (php.ini) Path  C:\WINDOWS

Loaded Configuration File   C:\Program Files\PHP\5.2\php.ini

После активации расширения сохраните php.ini, перезагрузите веб-сервер и снова проверьте phpinfo(), в нем должен появиться отдельный раздел с новым расширением.

Решение проблем

Если расширение не появилось в выводе phpinfo(), проверьте лог-файлы на наличие сообщений об ошибках.

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

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

Частой проблемой является расположение DLL-файлов, значение " extension_dir" в php.ini, а также несовпадение настроек компиляции.

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


Компиляция разделяемых расширений с помощью команды pecl

PECL позволяет легко создавать разделяемые расширения PHP. Используя » команду pecl, выполните следующее:

$ pecl install extname

Эта команда загрузит исходный код для расширения extname, скомпилирует и установит extname.so в вашу директорию extension_dir. Файл extname.so может быть затем загружен в php.ini

По умолчанию, команда pecl не будет устанавливать пакеты, отмеченные состоянием alpha или beta. Если нет доступных стабильных (stable) версий пакетов, вы можете установить beta-версию пакета, используя следующую команду:

$ pecl install extname-beta

Также, вы можете установить определенную версию используя такой вариант:

$ pecl install extname-0.1

Замечание:

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


Компиляция разделяемых расширений с помощью phpize

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

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

$ cd extname
$ phpize
$ ./configure
$ make
# make install

В случае успешной установки будет создан файл extname.so и помещен в PHP директорию расширений. Вам будет необходимо добавить строку extension=extname.so в php.ini перед использованием этого расширения.

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

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


php-config

php-config - это простой шелл-скрипт для получения информации о конфигурации установленного PHP.

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

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

Usage: /usr/local/bin/php-config [OPTION]
Options:
  --prefix            [...]
  --includes          [...]
  --ldflags           [...]
  --libs              [...]
  --extension-dir     [...]
  --include-dir       [...]
  --php-binary        [...]
  --php-sapis         [...]
  --configure-options [...]
  --version           [...]
  --vernum            [...]

Опции скрипта
Опция | Описание
--prefix | Директория, в которой установлен PHP, например /usr/local
--includes | Список -I опций со всеми подключаемыми файлами
--ldflags | LD-флаги, с которыми был скомпилирован PHP
--libs | Внешние библиотеки, с которыми был скомпилирован PHP
--extension-dir | Директория, в которой по умолчанию ищутся расширения
--include-dir | Директория, куда по умолчанию устанавливаются заголовочные файлы
--php-binary | Полный путь до исполняемых файлов php CLI или CGI
--php-sapis | Показывает все доступные модули SAPI
--configure-options | Конфигурационные опции для воссоздания настроек текущей установки PHP.
--version | Версия PHP
--vernum | Версия PHP в виде целого числа


Компиляция расширений PECL статически в PHP

Возможно, вы захотите собрать расширение PECL статично в ваш бинарный файл PHP. Для этого необходимо поместить код расширения в директорию php-src/ext/ и вызвать перегенерацию конфигурационных скриптов через систему сборки PHP.

$ cd /your/phpsrcdir/ext
$ pecl download extname
$ gzip -d < extname.tgz | tar -xvf -
$ mv extname-x.x.x extname

В результате будет создана следующая директория:

/your/phpsrcdir/ext/extname

После этого, выполните заново сборку конфигурационного скрипта PHP и затем соберите PHP как обычно:

$ cd /your/phpsrcdir
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-extname --enable-someotherext --with-foobar
$ make
$ make install

Замечание: Для запуска 'buildconf' скрипта вам понадобится autoconf версии 2.13 и automake версии 1.4+ (более новые версии autoconf могут работать, но это не поддерживается).

В зависимости от расширения будет использоваться одна из двух опций --enable-extname или --with-extname . Обычно, если расширение не требует подключения внешних библиотек, используется --enable. Чтобы узнать это, выполните следующую команду после buildconf:

$ ./configure --help | grep extname


  • « Компиляция расширений PECL статически в PHP
  • Читайте FAQ »
  • PHP Manual
  • Установка и настройка
  • Проблемы?

Проблемы?

Содержание

  • Читайте FAQ
  • Другие проблемы
  • Сообщения о багах


Читайте FAQ

Некоторые проблемы возникают чаще других. Наиболее часто встречающиеся из них перечислены в разделе PHP FAQ этого руководства.


Другие проблемы

Если вы все еще не можете установить PHP, список рассылки, возможно, сможет помочь вам. Не забудьте сначала просмотреть архив, возможно кто-либо уже имел схожую с вашей проблему и успешно её решил. Архив рассылки доступен на странице поддержки: » http://www.php.net/support.php Для подписки на список рассылки об инсталяции PHP пришлите пустое сообщение на » php-install-subscribe@lists.php.net. Адрес списка рассылки: » php-install@lists.php.net.

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


Сообщения о багах

Если вы думаете, что нашли ошибку в PHP, пожалуйста сообщите об этом. Возможно, разработчики PHP не знают об этой ошибке и пока вы не сообщите о ней, мало шансов что она будет исправлена. Вы можете сообщить об ошибке, используя систему отслеживания ошибок по адресу: » http://bugs.php.net/. Пожалуйста, не шлите сообщения об ошибках в список рассылки или на личные адреса разработчиков. Система отслеживания ошибок также пригодна и для запроса нововведений.

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


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

Содержание

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


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

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

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

  • По месту расположения модуля SAPI (PHPIniDir директива Apache 2, -c параметр командной строки CGI и CLI, php_ini параметр в NSAPI, PHP_INI_PATH переменная среды в THTTPD)
  • Переменная среды PHPRC. До PHP 5.2.0 поиск по переменной производился после поиска в реестре, указанном ниже.
  • Как и в PHP 5.2.0, местоположение файла php.ini может быть указано для различных версий PHP. Следующие ключи реестра исследуются при поиске: [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. Если также имеется значение IniFilePath в любом из этих ключей, то местонахождение php.ini будет определено первым ключом по порядку. (только для Windows).
  • [HKEY_LOCAL_MACHINE\SOFTWARE\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 Environment Variables

; PHP_MEMORY_LIMIT взята из переменных окружения
memory_limit = ${PHP_MEMORY_LIMIT}

Директивы php.ini обрабатываемые расширениями описаны на соответствующих страницах расширений. Список директив ядра имеется в приложении. Не все директивы PHP документированы в этом руководстве: для ознакомления с полным списком директив доступных в вашей версии PHP, пожалуйста, прочитайте комментарии вашего php.ini. Кроме того, вы можете найти полезной » последнюю версию php.ini из Git.

Пример #2 Пример php.ini

; любой текст в строке после точки с запятой (;) без кавычек игнорируется
[php] ; маркеры разделов (текст в квадратных скобках) также игнорируется
; Могут быть установлены следующие логические значения:
;    true, on, yes
; или false, off, no, none
register_globals = off
track_errors = yes

; вы можете заключать строки в двойные кавычки
include_path = ".:/usr/local/lib/php"

; обратный слэш обрабатывается так же, как любые другие символы
include_path = ".;c:\php\lib"

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

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

Существует возможность сконфигурировать PHP для сканирования директорий в поисках .ini-файлов после считывания php.ini. Это можно сделать на моменте компиляции, указав опцию --with-config-file-scan-dir . В PHP 5.2.0 и выше, сканирование директорий может быть переопределено во время исполнения установкой переменной среды PHP_INI_SCAN_DIR.

Можно сканировать несколько директорий, разделяя их сепаратором, используемом в вашей операционной системе (; в Windows, NetWare и RISC OS; : на всех остальных платформах; в PHP есть константа PATH_SEPARATORб которую можно использовать) Если PHP_INI_SCAN_DIR пуста, то PHP также будет сканировать директорию заданную на этапе компиляции с помощью --with-config-file-scan-dir .

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

Допустим, что PHP сконфигурирован с --with-config-file-scan-dir=/etc/php.d,
и разделитель путей :...

$ php
  PHP загрузит все файлы /etc/php.d/*.ini как конфигурационные.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php
  PHP загрузит все файлы /usr/local/etc/php.d/*.ini как конфигурационные.

$ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php
  PHP загрузит все файлы /etc/php.d/*.ini, а потом
  /usr/local/etc/php.d/*.ini как конфигурационные.

$ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php
  PHP загрузит все файлы /usr/local/etc/php.d/*.ini, а потом
  /etc/php.d/*.ini как конфигурационные.

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

Версия | Описание
7.0.0 | Символ "решетка" (#) больше не используется для комментариев.
5.3.0 | Символ "решетка" (#) больше не должен используется для комментариев и вызовет предупреждение, в случае использования.
5.2.0 | Переменная окружения PHP_INI_SCAN_DIR может быть установлена для переопределения набора сканируемых директорий.
5.1.0 | Можно ссылаться на существующие ini-переменные из ini-файлов.


.user.ini files

С версии PHP 5.3.0 включена поддержка INI-файлов в стиле .htaccess на уровне каталога. Эти файлы обрабатываются только CGI/FastCGI SAPI. Эта функция делает ненужным расширение PECL htscanner. Если у вас Apache, пользуйтесь .htaccess файлами для достижения того же эффекта.

В дополнение к основному файлу php.ini, PHP ищет INI-файлы в каждой директории, начиная с директории запрошенного PHP-файла и продолжает поиск до корневой директории (установленной в $_SERVER['DOCUMENT_ROOT']). Если PHP-файл находится вне корневой директории, то сканируется только его директория.

Только INI-настройки с режимами PHP_INI_PERDIR и PHP_INI_USER будут распознаны в INI-файлах в стиле .user.ini.

Две новых INI-директивы, user_ini.filename и user_ini.cache_ttl контролируют использование пользовательских INI-файлов.

user_ini.filename устанавливает имя файла, по которому PHP производит поиск в каждой директории; если установлена пустая строка, то PHP поиск не производит. По умолчанию .user.ini.

user_ini.cache_ttl устанавливает насколько часто пользовательские INI-файлы будут обновляться. По умолчанию период обновления составляет 300 секунд (5 минут).


Где могут быть установлены параметры конфигурации

Эти режимы определяют, когда и где директива PHP может или не может быть установлена, и каждая директива в руководстве относится к одному из этих режимов. К примеру, некоторые настройки могут быть установлены с помощью PHP-скрипта, использующего ini_set(), тогда как другие могут требовать php.ini или httpd.conf.

К примеру, директива output_buffering соответствует PHP_INI_PERDIR, поэтому она не может быть установлена через ini_set(). Тем не менее, директива display_errors соответствует PHP_INI_ALL, поэтому она может быть установлена отовсюду, включая ini_set().

Определение режимов PHP_INI_*
Режим | Смысл
PHP_INI_USER | Значение может быть установлено в пользовательских скриптах (с помощью ini_set()) или в реестре Windows. С версии PHP 5.3 значение может быть установлено в .user.ini
PHP_INI_PERDIR | Значение может быть установлено в php.ini, .htaccess или httpd.conf (С версии PHP 5.3)
PHP_INI_SYSTEM | Значение может быть установлено в php.ini или httpd.conf
PHP_INI_ALL | Значение может быть установлено отовсюду


Как изменить настройки конфигурации

Запуск PHP как модуля Apache

Когда PHP используется как модуль Apache вы также можете менять настройки конфигурации, используя директивы в файлах конфигурации Apache (например, httpd.conf) и файлах .htaccess. Для этого вам необходимы "AllowOverride Options" или "AllowOverride All" привилегии.

Есть несколько директив Apache, которые позволяют вам изменить конфигурацию PHP посредством файлов конфигурации Apache. Директивы для PHP_INI_ALL, PHP_INI_PERDIR и PHP_INI_SYSTEM, вы можете увидеть в приложении Список директив php.ini

php_value name value

Устанавливает значение обозначенной директивы. Может использоваться только с директивами типа PHP_INI_ALL и PHP_INI_PERDIR Для очистки предыдущих установленных значений используйте значение none.

Замечание: Не используйте php_value для установки логических значений. Вместо этого необходимо использоватьphp_flag (см. ниже).

php_flag name on|off

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

php_admin_value name value

Устанавливает значение обозначенной директивы. Не может быть использовано в файлах .htaccess. Директивы любого типа, установленные с помощью php_admin_value не могут быть переопределены через .htaccess или ini_set(). Чтобы очистить предыдущее значение используйте значение none.

php_admin_flag name on|off

Используется для установки директивам логических значений. Не может быть использовано в файлах .htaccess. Директивы любого типа, установленные с помощью php_admin_flag не могут быть переопределены через .htaccess или ini_set().

Пример #1 Пример конфигурации Apache

<IfModule mod_php5.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>
<IfModule mod_php4.c>
  php_value include_path ".:/usr/local/lib/php"
  php_admin_flag engine on
</IfModule>

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

PHP константы не доступны вне PHP. К примеру, в httpd.conf вы не можете использовать константы PHP такие как E_ALL или E_NOTICE чтобы установить директиву error_reporting, так как они не будут иметь значения и будут приравниваться к 0. Используйте вместо этого соответствующие значения типа bitmask (битовая маска). Эти константы могут быть использованы в php.ini

Изменение конфигурации PHP через реестр Windows

При использовании PHP в Windows значения конфигурации могут быть изменены на уровне директории посредством реестра Windows. Значения конфигурации хранятся в ключе реестра HKLM\SOFTWARE\PHP\Per Directory Values, в под-ключах, включающих полный путь. К примеру, значения конфигурации для директории c:\inetpub\wwwroot могут храниться в ключе HKLM\SOFTWARE\PHP\Per Directory Values\c\inetpub\wwwroot. Настройки для директории будут действительны для любых скриптов запущенных из этой директории или её поддиректории. Значения ключа должны иметь название конфигурационной директивы PHP и строковое значение. PHP константы в значениях игнорируются. Однако, только значения конфигурации изменяемые в PHP_INI_USER могут быть установлены таким образом, значения же PHP_INI_PERDIR не могут.

Другие интерфейсы в PHP

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

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


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

  • Основы синтаксиса
    • Теги PHP
    • Изолирование от HTML
    • Разделение инструкций
    • Комментарии
  • Типы
    • Введение
    • Булев
    • Целые числа
    • Числа с плавающей точкой
    • Строки
    • Массивы
    • Объекты
    • Ресурс
    • NULL
    • Функции обратного вызова (callback-функции)
    • Псевдо-типы и переменные, используемые в этой документации
    • Манипуляции с типами
  • Переменные
    • Основы
    • Предопределенные переменные
    • Область видимости переменной
    • Переменные переменных
    • Переменные извне PHP
  • Константы
    • Синтаксис
    • "Волшебные" константы
  • Выражения
  • Операторы
    • Приоритет оператора
    • Арифметические операторы
    • Оператор присваивания
    • Побитовые операторы
    • Операторы сравнения
    • Оператор управления ошибками
    • Операторы исполнения
    • Операторы инкремента и декремента
    • Логические операторы
    • Строковые операторы
    • Операторы, работающие с массивами
    • Оператор проверки типа
  • Управляющие конструкции
    • Введение
    • if
    • else
    • elseif/else if
    • Альтернативный синтаксис управляющих структур
    • while
    • do-while
    • for
    • foreach
    • break
    • continue
    • switch
    • declare
    • return
    • require
    • include
    • require_once
    • include_once
    • goto
  • Функции
    • Функции, определяемые пользователем
    • Аргументы функции
    • Возврат значений
    • Обращение к функциям через переменные
    • Встроенные функции
    • Анонимные функции
  • Классы и объекты
    • Введение
    • Основы
    • Свойства
    • Константы классов
    • Автоматическая загрузка классов
    • Конструкторы и деструкторы
    • Область видимости
    • Наследование
    • Оператор разрешения области видимости (::)
    • Ключевое слово "static"
    • Абстрактные классы
    • Интерфейсы объектов
    • Трейты
    • Анонимные классы
    • Перегрузка
    • Итераторы объектов
    • Магические методы
    • Ключевое слово "final"
    • Клонирование объектов
    • Сравнение объектов
    • Контроль типа
    • Позднее статическое связывание
    • Объекты и ссылки
    • Сериализация объектов
    • Журнал изменений ООП
  • Пространства имен
    • Обзор пространств имен
    • Определение пространств имен
    • Определение подпространств имен
    • Описание нескольких пространств имен в одном файле
    • Использование пространства имен: основы
    • Пространства имен и динамические особенности языка
    • Ключевое слово namespace и константа __NAMESPACE__
    • Использование пространств имен: импорт/создание псевдонима имени
    • Глобальное пространство
    • Использование пространств имен: переход к глобальной функции/константе
    • Правила разрешения имен
    • Часто задаваемые вопросы (FAQ): вещи, которые вам необходимо знать о пространствах имен
  • Ошибки
    • Основы
    • Ошибки в PHP 7
  • Исключения
    • Наследование исключений
  • Генераторы
    • Знакомство с генераторами
    • Синтаксис генераторов
    • Сравнение генераторов с объектами класса Iterator
  • Ссылки. Разъяснения
    • Что такое ссылки
    • Что делают ссылки
    • Чем ссылки не являются
    • Передача по ссылке
    • Возвращение по ссылке
    • Сброс переменных-ссылок
    • Неявное использование механизма ссылок
  • Предопределённые переменные
    • Суперглобальные переменные — Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости
    • $GLOBALS — Ссылки на все переменные глобальной области видимости
    • $_SERVER — Информация о сервере и среде исполнения
    • $_GET — GET-переменные HTTP
    • $_POST — HTTP POST variables
    • $_FILES — Переменные файлов, загруженных по HTTP
    • $_REQUEST — Переменные HTTP-запроса
    • $_SESSION — Переменные сессии
    • $_ENV — Переменные окружения
    • $_COOKIE — HTTP Куки
    • $php_errormsg — Предыдущее сообщение об ошибке
    • $HTTP_RAW_POST_DATA — Необработанные POST-данные
    • $http_response_header — Заголовки ответов HTTP
    • $argc — Количество аргументов переданных скрипту
    • $argv — Массив переданных скрипту аргументов
  • Предопределённые исключения
    • Exception
    • ErrorException
    • Error
    • Арифметическая ошибка — ArithmeticError
    • Ошибка утверждения — AssertionError
    • Ошибка деления на ноль — DivisionByZeroError
    • Ошибка разбора — ParseError
    • Ошибка типа — TypeError
  • Встроенные интерфейсы и классы
    • Traversable — Интерфейс Traversable
    • Iterator — Интерфейс Iterator
    • IteratorAggregate — Интерфейс IteratorAggregate
    • Throwable
    • ArrayAccess — Интерфейс ArrayAccess
    • Serializable — Интерфейс Serializable
    • Closure — Класс Closure
    • Генератор — Класс Generator
  • Контекстные опции и параметры
    • Контекстные опции сокета — Список контекстных опций сокета
    • Опции контекста HTTP — Список опций контекста HTTP
    • Параметры контекста FTP — Список параметров контекста FTP
    • Опции контекста SSL — Список опций контекста SSL
    • Опции контекста CURL — Список опций контекста CURL
    • Контекстные опции Phar — Список контекстных опций Phar
    • Контекстные опции MongoDB — Список контекстных опций MongoDB
    • Параметры контекста — Список параметров контекста
  • Поддерживаемые протоколы и обработчики (wrappers)
    • 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 также допускает короткий открывающий тег <?, однако использовать их нежелательно, так как они доступны только если включены с помощью конфигурационной директивы php.ini short_open_tag, либо если PHP был сконфигурирован с опцией --enable-short-tags .

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

<?php
echo "Hello world";

// ... еще код

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

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

Список изменений
Версия | Описание
7.0.0 | ASP теги <%, %>, <%=, и теги скриптов <script language="php"> удалены из PHP.
5.4.0 | Тег <?= доступен всегда, вне зависимости от настройки short_open_tag.


Изолирование от HTML

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

<p>Это будет проигнорировано PHP и отображено браузером.</p>
<?php echo 'А это будет обработано.'; ?>
<p>Это тоже будет проигнорировано PHP и отображено браузером.</p>
Это работает так, как и ожидается, потому что когда интерпретатор PHP встречает закрывающие теги ?>, он просто начинает выводить все что найдет (за исключением сразу следующего символа перевода строки - смотрите раздел разделение инструкций) пока не встретит другой открывающий тег за исключением случая с содержащимся внутри кода условным оператором, в котором интерпретатор определяет результат условия перед принятием решения что пропустить. Ознакомьтесь со следующим примером.

Использование структур с условиями

Пример #1 Продвинутое изолирование с использованием условий

<?php if ($expression == true): ?>
  Это будет отображено, если выражение истинно.
<?php else: ?>
  В ином случае будет отображено это.
<?php endif; ?>
В этом примере PHP пропускает блоки, где условие не соблюдается. Даже несмотря на то, что они находятся вне пары открывающих/закрывающих тегов, PHP пропустит их в соответствии с условием, так как интерпретатор PHP будет перепрыгивать через блоки, содержащиеся внутри условия, которое не соблюдается.

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

В PHP 5, существует до пяти различных пар тегов, которые могут быть использованы для обозначения PHP-кода, в зависимости от того, как был сконфигурирован PHP. Из них только две <?php ?> и <script language="php"> </script> доступны всегда. Также, начиная с PHP 5.4.0, третьей, доступной всегда, парой тегов является <?= ?>.

Другими двумя являются короткие теги и теги в стиле ASP, которые могут быть включены или выключены в конфигурационном файле php.ini. Хотя короткие теги и теги в стиле ASP могут быть удобны, они не так переносимы, как длинные версии, и поэтому не рекомендуются.

Замечание:

Кроме того, если вы намереваетесь вставлять PHP-код в XML или XHTML, чтобы соответствовать XML стандартам, вам следует использовать форму <?php ?>.

В PHP 7 удалена поддержка тегов ASP и <script language="php">. Так что мы рекомендуем использовать только <?php ?> и <?= ?> для максимальной совместимости и переносимости.

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

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

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

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

4.  <script language="php">
        echo 'некоторые редакторы (например, FrontPage) не
              любят инструкции обработки с этими тегами';
    </script>
    Поддержка такого синтаксиса удалена в PHP 7.0.0.

5.  <% echo 'Также вы можете использовать теги в ASP стиле'; %>
    Код с такими тегами <%= $variable; %> является сокращением от <% echo $variable; %>
    Поддержка обоих этих синтаксисов удалена в PHP 7.0.0.

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

ASP-теги (пятый пример) доступны, только когда они включены с помощью директивы asp_tags в конфигурационном файле php.ini. В PHP 7.0.0 их поддержка удалена.

Замечание:

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

Замечание:

В PHP 5.2 и более ранних версиях парсер не позволял файлам содержать только один открытый тег <?php. Это было разрешено, начиная с версии PHP 5.3 при наличии одного или более пробела после открывающего тега.

Замечание:

Начиная с PHP 5.4 короткий тег echo <?= всегда распознается и действует, несмотря на значение опции short_open_tag.


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

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

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

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

<?php echo 'Мы опустили последний закрывающий тег';

Замечание:

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


Комментарии

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

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

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

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

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

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


Типы

Содержание

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


Введение

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

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

  • boolean
  • integer
  • float (число с плавающей точкой, также известное как double)
  • string

Три смешанных типа:

  • array
  • object
  • callable

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

  • resource
  • NULL

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

  • mixed
  • number
  • callback (он же callable)
  • array|object
  • void

И псевдопеременная $....

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

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

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

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

<?php
$a_bool = TRUE;   // логический
$a_str  = "foo";  // строковый
$a_str2 = 'foo';  // строковый
$an_int = 12;     // целочисленный

echo gettype($a_bool); // выводит: boolean
echo gettype($a_str);  // выводит: string

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

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

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

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


Булев

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

Синтаксис

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

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

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

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

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

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

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

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

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

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

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

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

Внимание

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

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


Целые числа

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

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

  • Целые числа произвольной длины / GMP
  • Числа с плавающей точкой
  • Числа произвольной точности / BCMath

Синтаксис

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

Двоичная запись integer доступна начиная с PHP 5.4.0.

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

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

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

Формально, структуру целых чисел можно записать так:

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

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

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

двоичные          : 0b[01]+

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

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

Внимание

До версии PHP 7, если в восьмеричном integer будет обнаружена неверная цифра (например, 8 или 9), оставшаяся часть числа будет проигнорирована. Начиная с PHP 7 будет сгенерирована ошибка "Parse error".

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

Если PHP обнаружил, что число превышает размер типа integer, он будет интерпретировать его в качестве float. Аналогично, если результат операции лежит за границами типа integer, он будет преобразован в float.

Пример #2 Переполнение целых на 32-битных системах

<?php
$large_number = 2147483647;
var_dump($large_number);                     // int(2147483647)

$large_number = 2147483648;
var_dump($large_number);                     // float(2147483648)

$million = 1000000;
$large_number =  50000 * $million;
var_dump($large_number);                     // float(50000000000)
?>

Пример #3 Переполнение целых на 64-битных системах

<?php
$large_number = 9223372036854775807;
var_dump($large_number);                     // int(9223372036854775807)

$large_number = 9223372036854775808;
var_dump($large_number);                     // float(9.2233720368548E+18)

$million = 1000000;
$large_number =  50000000000000 * $million;
var_dump($large_number);                     // float(5.0E+19)
?>

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

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

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

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

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

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

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

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

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

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

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

Замечание:

В PHP 7.0.0, NaN и Infinity при приведении к integer становятся равны нулю, вместо неопределенного значения в зависимости от платформы.

Внимание

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

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

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

Из строк

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

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

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

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


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

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

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

Формально:

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

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

Внимание

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

Числа с плавающей точкой имеют ограниченную точность. Хотя это зависит от операционной системы, в PHP обычно используется формат двойной точности IEEE 754, дающий максимальную относительную ошибку округления порядка 1.11e-16. Неэлементарные арифметические операции могут давать большие ошибки, и, разумеется, необходимо принимать во внимание распространение ошибок при совместном использовании нескольких операций.

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

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

"Простое" объяснение можно найти в » руководстве по числам с плавающей точкой, которое также называется "Why don't my numbers add up?" ("Почему мои числа не складываются?")

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

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

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

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

Для сравнения чисел с плавающей точкой используется верхняя граница относительной ошибки при округлении. Эта величина называется машинной эпсилон или единица округления(unit roundoff) и представляет собой самую маленькую допустимую разницу при расчетах.

$a и $b равны до 5-ти знаков после запятой.

<?php
$a = 1.23456789;
$b = 1.23456780;
$epsilon = 0.00001;

if(abs($a-$b) < $epsilon) {
    echo "true";
}
?>

NaN

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

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


Строки

Строка (тип string) - это набор символов, где символ - это то же самое, что и байт. Это значит, что PHP поддерживает ровно 256 различных символов, а также то, что в PHP нет встроенной поддержки Unicode. Смотрите также подробности реализации строкового типа.

Замечание: В PHP 7.0.0, на 64-битных платформах, нет каких либо достижимых ограничений для длины строки, в 32-битных системах и в более ранних версиях PHP, строки не могут быть более 2 Гб (2147483647 байт).

Синтаксис

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

  • одинарными кавычками
  • двойными кавычками
  • heredoc-синтаксисом
  • nowdoc-синтаксисом (начиная с версии PHP 5.3.0)

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

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

Чтобы использовать одинарную кавычку внутри строки, проэкранируйте ее обратным слешем (\). Если необходимо написать сам обратный слеш, продублируйте его (\\). Все остальные случаи применения обратного слеша будут интерпретированы как обычные символы: это означает, что если вы попытаетесь использовать другие управляющие последовательности, такие как \r или \n, они будут выведены как есть вместо какого-либо особого поведения.

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

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

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

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

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

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

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

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

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

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

Управляющие последовательности
Последовательность | Значение
\n | новая строка (LF или 0x0A (10) в ASCII)
\r | возврат каретки (CR или 0x0D (13) в ASCII)
\t | горизонтальная табуляция (HT или 0x09 (9) в ASCII)
\v | вертикальная табуляция (VT или 0x0B (11) в ASCII) (с версии PHP 5.2.5)
\e | escape-знак (ESC или 0x1B (27) в ASCII) (с версии PHP 5.4.4)
\f | подача страницы (FF или 0x0C (12) в ASCII) (с версии PHP 5.2.5)
\\ | обратная косая черта
\$ | знак доллара
\" | двойная кавычка
\[0-7]{1,3} | последовательность символов, соответствующая регулярному выражению символа в восьмеричной системе счисления, который молча переполняется, чтобы поместиться в байт (т.е. "\400" === "\000")
\x[0-9A-Fa-f]{1,2} | последовательность символов, соответствующая регулярному выражению символа в шестнадцатеричной системе счисления
\u{[0-9A-Fa-f]+} | последовательность символов, соответствующая регулярному выражению символа Unicode, которая отображается в строка в представлении UTF-8 (добавлено в PHP 7.0.0)

Как и в строке, заключенной в одинарные кавычки, экранирование любого символа выведет также и сам символ экранирования. До версии PHP 5.1.1, обратный слеш в \{$var} не печатался.

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

Heredoc

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

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

Внимание

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

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

Пример #1 Пример неправильного синтаксиса

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

Пример #2 Valid example

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

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

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

Пример #3 Пример определения heredoc-строки

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

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

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

$foo = new foo();
$name = 'Имярек';

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

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

Меня зовут "Имярек". Я печатаю Foo.
Теперь, я вывожу Bar2.
Это должно вывести заглавную букву 'A': A

Также возможно использовать heredoc-синтаксис для передачи данных через аргументы функции:

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

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

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

Пример #5 Использование heredoc для инциализации статических переменных

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

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

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

Начиная с версии PHP 5.3.0 можно также окружать идентификатор Heredoc двойными кавычками:

Пример #6 Использование двойных кавычек в heredoc

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

Nowdoc

Nowdoc - это то же самое для строк в одинарных кавычках, что и heredoc для строк в двойных кавычках. Nowdoc похож на heredoc, но внутри него не осуществляется никаких подстановок. Эта конструкция идеальна для внедрения PHP-кода или других больших блоков текста без необходимости его экранирования. В этом он немного похож на SGML-конструкцию <![CDATA[ ]]> тем, что объявляет блок текста, не предназначенный для обработки.

Nowdoc указывается той же последовательностью <<<, что используется в heredoc, но последующий за ней идентификатор заключается в одинарные кавычки, например, <<<'EOT'. Все условия, действующие для heredoc идентификаторов также действительны и для nowdoc, особенно те, что относятся к закрывающему идентификатору.

Пример #7 Пример использования nowdoc

<?php
$str = <<<'EOD'
Пример текста,
занимающего несколько строк,
с помощью синтаксиса nowdoc.
EOD;

/* Более сложный пример с переменными. */
class foo
{
    public $foo;
    public $bar;

    function foo()
    {
        $this->foo = 'Foo';
        $this->bar = array('Bar1', 'Bar2', 'Bar3');
    }
}

$foo = new foo();
$name = 'Имярек';

echo <<<'EOT'
Меня зовут "$name". Я печатаю $foo->foo.
Теперь я печатаю {$foo->bar[1]}.
Это не должно вывести заглавную 'A': \x41
EOT;
?>

Результат выполнения данного примера:

Меня зовут "$name". Я печатаю $foo->foo.
Теперь я печатаю {$foo->bar[1]}.
Это не должно вывести заглавную 'A': \x41

Пример #8 Пример использования статичных данных

<?php
class foo {
    public $bar = <<<'EOT'
bar
EOT;
}
?>

Замечание:

Поддержка nowdoc была добавлена в PHP 5.3.0.

Обработка переменных

Если строка указывается в двойных кавычках, либо при помощи heredoc, переменные внутри нее обрабатываются.

Существует два типа синтаксиса: простой и сложный. Простой синтаксис более легок и удобен. Он дает возможность обработки переменной, значения массива (array) или свойства объекта (object) с минимумом усилий.

Сложный синтаксис может быть определен по фигурным скобкам, окружающим выражение.

Простой синтаксис

Если интерпретатор встречает знак доллара ($), он захватывает так много символов, сколько возможно, чтобы сформировать правильное имя переменной. Если вы хотите точно определить конец имени, заключайте имя переменной в фигурные скобки.

<?php
$juice = "apple";

echo "He drank some $juice juice.".PHP_EOL;

// Не корректно. 's' - верный символ для имени переменной, но переменная имеет имя $juice.
echo "He drank some juice made of $juices.";

// Корректно. Строго указан конец имени переменной с помощью скобок:
echo "He drank some juice made of ${juice}s."
?>

Результат выполнения данного примера:

He drank some apple juice.
He drank some juice made of .
He drank some juice made of apples.

Аналогично могут быть обработаны элемент массива (array) или свойство объекта (object). В индексах массива закрывающая квадратная скобка (]) обозначает конец определения индекса. Для свойств объекта применяются те же правила, что и для простых переменных.

Пример #9 Пример простого синтаксиса

<?php
define('KOOLAID', 'koolaid1');
$juices = array("apple", "orange", "koolaid1" => "purple");

echo "He drank some $juices[0] juice.".PHP_EOL;
echo "He drank some $juices[1] juice.".PHP_EOL;
echo "He drank some $juices[koolaid1] juice.".PHP_EOL;

class people {
    public $john = "John Smith";
    public $jane = "Jane Smith";
    public $robert = "Robert Paulsen";

    public $smith = "Smith";
}

$people = new people();

echo "$people->john drank some $juices[0] juice.".PHP_EOL;
echo "$people->john then said hello to $people->jane.".PHP_EOL;
echo "$people->john's wife greeted $people->robert.".PHP_EOL;
echo "$people->robert greeted the two $people->smiths."; // Не сработает
?>

Результат выполнения данного примера:

He drank some apple juice.
He drank some orange juice.
He drank some purple juice.
John Smith drank some apple juice.
John Smith then said hello to Jane Smith.
John Smith's wife greeted Robert Paulsen.
Robert Paulsen greeted the two .

В PHP 7.1.0 добавлена поддержка отрицательных числовых индексов.

Пример #10 Отрицательные числовые индексы

<?php
$array = [-3 => 'foo'];
echo "The element at index -3 is $array[-3].", PHP_EOL;
?>

Результат выполнения данного примера:

The element at index -3 is foo.

Для чего-либо более сложного, используйте сложный синтаксис.

Сложный (фигурный) синтаксис

Он называется сложным не потому, что труден в понимании, а потому что позволяет использовать сложные выражения.

Любая скалярная переменная, элемент массива или свойство объекта, отображаемое в строку, может быть представлена в строке этим синтаксисом. Просто запишите выражение так же, как и вне строки, а затем заключите его в { и } . Поскольку { не может быть экранирован, этот синтаксис будет распознаваться только когда $ следует непосредственно за {. Используйте {\$, чтобы напечатать {$. Несколько поясняющих примеров:

<?php
// Показываем все ошибки
error_reporting(E_ALL);

$great = 'здорово';

// Не работает, выводит: Это { здорово}
echo "Это { $great}";

// Работает, выводит: Это здорово
echo "Это {$great}";

// Работает
echo "Этот квадрат шириной {$square->width}00 сантиметров.";

// Работает, ключи, заключенные в кавычки, работают только с синтаксисом фигурных скобок
echo "Это работает: {$arr['key']}";

// Работает
echo "Это работает: {$arr[4][3]}";

// Это неверно по той же причине, что и $foo[bar] вне
// строки. Другими словами, это по-прежнему будет работать,
// но поскольку PHP сначала ищет константу foo, это вызовет
// ошибку уровня E_NOTICE (неопределенная константа).
echo "Это неправильно: {$arr[foo][3]}";

// Работает. При использовании многомерных массивов внутри
// строк всегда используйте фигурные скобки
echo "Это работает: {$arr['foo'][3]}";

// Работает.
echo "Это работает: " . $arr['foo'][3];

echo "Это тоже работает: {$obj->values[3]->name}";

echo "Это значение переменной по имени $name: {${$name}}";

echo "Это значение переменной по имени, которое возвращает функция getName(): {${getName()}}";

echo "Это значение переменной по имени, которое возвращает \$object->getName(): {${$object->getName()}}";

// Не работает, выводит: Это то, что возвращает getName(): {getName()}
echo "Это то, что возвращает getName(): {getName()}";
?>

С помощью этого синтаксиса также возможен доступ к свойствам объекта внутри строк.

<?php
class foo {
    var $bar = 'I am bar.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo "{$foo->$bar}\n";
echo "{$foo->{$baz[1]}}\n";
?>

Результат выполнения данного примера:

I am bar.
I am bar.

Замечание:

Функции, вызовы методов, статические переменные классов, а также константы классов работает внутри {$}, начиная с версии PHP 5. Однако, указываемое значение будет обработано как имя переменной в том же контексте, что и строка, в которой она определяется. Использование одинарных фигурных скобок ({}) не будет работать для доступа к значениям функций, методов, констант классов или статических переменных класса.

<?php
// Показываем все ошибки
error_reporting(E_ALL);

class beers {
    const softdrink = 'rootbeer';
    public static $ale = 'ipa';
}

$rootbeer = 'A & W';
$ipa = 'Alexander Keith\'s';

// Это работает, выводит: Я бы хотел A & W
echo "Я бы хотел {${beers::softdrink}}\n";

// Это тоже работает, выводит: Я бы хотел Alexander Keith's
echo "Я бы хотел {${beers::$ale}}\n";
?>

Доступ к символу в строке и его изменение

Символы в строках можно использовать и модифицировать, определив их смещение относительно начала строки, начиная с нуля, в квадратных скобках после строки, например, $str[42]. Думайте о строке для этой цели, как о массиве символов. Если нужно получить или заменить более 1 символа, можно использовать функции substr() и substr_replace().

Замечание: начиная с PHP 7.1.0, поддерживаются отрицательные значения смещения. Они задают смещение с конца строки. ранее, отрицательные смещение вызывали ошибку уровня E_NOTICE при чтении (возвращая пустую строку) либо E_WARNING при записи (оставляя строку без изменений).

Замечание: К символу в строке также можно обращаться с помощью фигурных скобок, например, $str{42}.

Внимание

Попытка записи в смещение за границами строки дополнит строку пробелами до этого смещения. Нецелые типы будет преобразованы в целые. Неверный тип смещения вызовет ошибку уровня E_NOTICE. Используется только первый символ присваемой строки. Начиная с PHP 7.1.0, присвоение пустой строки вызовет фатальную ошибку. Ранее в таком случае присваивался нулевой байт (NULL).

Внимание

Строки в PHP внутренне представляют из себя массивы байт. Как результат, доступ или изменение строки по смещению небезопасно с точки зрения многобайтной кодировки, и должно выполняться только со строками в однобайтных кодировках, таких как, например, ISO-8859-1.

Замечание: начиная с PHP 7.1.0, использование пустого индекса вызывает фатальную ошибку, ранее в, подобном случае, строка преобразовывалась в массив без предупреждения.

Пример #11 Несколько примеров строк

<?php
// Получение первого символа строки
$str = 'This is a test.';
$first = $str[0];

// Получение третьего символа строки
$third = $str[2];

// Получение последнего символа строки
$str = 'This is still a test.';
$last = $str[strlen($str)-1];

// Изменение последнего символа строки
$str = 'Look at the sea';
$str[strlen($str)-1] = 'e';

?>

Начиная с PHP 5.4 смещение в строке должно задаваться либо целым числом либо строкой, содержащей цифры, иначе будет выдаваться предупреждение. Ранее смещение, заданное строкой вида "foo", без предупреждений преобразовывалось в 0.

Пример #12 Различия между PHP 5.3 и PHP 5.4

<?php
$str = 'abc';

var_dump($str['1']);
var_dump(isset($str['1']));

var_dump($str['1.0']);
var_dump(isset($str['1.0']));

var_dump($str['x']);
var_dump(isset($str['x']));

var_dump($str['1x']);
var_dump(isset($str['1x']));
?>

Результат выполнения данного примера в PHP 5.3:

string(1) "b"
bool(true)
string(1) "b"
bool(true)
string(1) "a"
bool(true)
string(1) "b"
bool(true)

Результат выполнения данного примера в PHP 5.4:

string(1) "b"
bool(true)

Warning: Illegal string offset '1.0' in /tmp/t.php on line 7
string(1) "b"
bool(false)

Warning: Illegal string offset 'x' in /tmp/t.php on line 9
string(1) "a"
bool(false)
string(1) "b"
bool(false)

Замечание:

Попытка доступа к переменным других типов (исключая массивы или объекты, реализующие определенные интерфейсы) с помощью [] или {} молча вернет NULL.

Замечание:

В PHP 5.5 была добавлена поддержка доступа к символам в строковых литералах с помощью синтаксиса [] или {}.

Полезные функции и операторы

Строки могут быть объединены при помощи оператора '.' (точка). Обратите внимание, оператор сложения '+' здесь не работает. Дополнительную информацию смотрите в разделе Строковые операторы.

Для модификации строк существует множество полезных функций.

Основные функции описаны в разделе строковых функций, а для расширенного поиска и замены - функции регулярных выражений или Perl-совместимых регулярных выражений.

Также существуют функции для работы с URL, и функции шифрования/дешифрования строк (mcrypt и mhash).

Наконец, смотрите также функции символьных типов.

Преобразование в строку

Значение может быть преобразовано в строку, с помощью приведения (string), либо функции strval(). В выражениях, где необходима строка, преобразование происходит автоматически. Это происходит, когда вы используете функции echo или print, либо когда значение переменной сравнивается со строкой. Прочтение разделов руководства Типы и Манипуляции с типами сделает следующее более понятным. Смотрите также settype().

Значение boolean TRUE преобразуется в строку "1", а значение FALSE преобразуется в "" (пустую строку). Это позволяет преобразовывать значения в обе стороны - из булева типа в строковый и наоборот.

Целое (integer) или число с плавающей точкой (float) преобразуется в строку, представленную числом, состоящим из его цифр (включая показатель степени для чисел с плавающей точкой). Числа с плавающей точкой могут быть преобразованы с помощью экспоненциального представления (4.1E+6).

Замечание:

Символ десятичной точки определяется из настроек локали текущего скрипта (категория LC_NUMERIC). Смотрите также setlocale().

Массивы всегда преобразуются в строку "Array", так что вы не можете отобразить содержимое массива (array), используя echo или print, чтобы узнать, что он содержит. Чтобы просмотреть отдельный элемент, используйте что-нибудь вроде echo $arr['foo']. Смотрите ниже советы о том, как отобразить/просмотреть все содержимое.

Для преобразования переменной типа "Object" в тип string используется магический метод __toString.

Resource всегда всегда преобразуется в string вида "Resource id #1", где 1 является номером ресурса привязанного к resource во время выполнения. И хотя не стоит точно полагаться на эту строку, которая может быть изменена в будущем, она всегда будет уникальной для текущего запуска скрипта (т.е. web-запроса или CLI-процесса) и не может использоваться повторно для другого ресурса. Если вы хотите получить тип ресурса, используйте get_resource_type().

NULL всегда преобразуется в пустую строку.

Как вы могли видеть выше, прямое преобразование в строку массивов, объектов или ресурсов не дает никакой полезной информации о самих значениях, кроме их типов. Более подходящий способ вывода значений для отладки - использовать функции print_r() и var_dump().

Большинство значений в PHP может быть преобразовано в строку для постоянного хранения. Этот метод называется сериализацией и может быть выполнен при помощи функции serialize(). Кроме того, если в вашей установке PHP есть поддержка WDDX, возможна также сериализация в XML-структуру.

Преобразование строк в числа

Если строка распознается как числовое значение, результирующее значение и тип определяется так, как показано далее.

Если строка не содержит какой-либо из символов '.', 'e', или 'E', и значение числа помещается в пределы целых чисел (определенных PHP_INT_MAX), строка будет распознана как целое число (integer). Во всех остальных случаях она считается числом с плавающей точкой (float).

Значение определяется по начальной части строки. Если строка начинается с верного числового значения, будет использовано это значение. Иначе значением будет 0 (ноль). Верное числовое значение - это одна или более цифр (могущих содержать десятичную точку), по желанию предваренных знаком, с последующим необязательным показателем степени. Показатель степени - это 'e' или 'E' с последующими одной или более цифрами.

<?php
$foo = 1 + "10.5";                // $foo это float (11.5)
$foo = 1 + "-1.3e3";              // $foo это float (-1299)
$foo = 1 + "bob-1.3e3";           // $foo это integer (1)
$foo = 1 + "bob3";                // $foo это integer (1)
$foo = 1 + "10 Small Pigs";       // $foo это integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo это float (14.2)
$foo = "10.0 pigs " + 1;          // $foo это float (11)
$foo = "10.0 pigs " + 1.0;        // $foo это float (11)
?>

Более подробную информацию об этом преобразовании смотрите в разделе о strtod(3) документации Unix.

Если вы хотите протестировать любой из примеров этого раздела, скопируйте и вставьте его и следующую строку, чтобы увидеть, что происходит:

<?php
echo "\$foo==$foo; тип: " . gettype ($foo) . "<br />\n";
?>

Не ожидайте получить код символа, преобразовав его в целое (как это делается, например, в C). Для преобразования символов в их ASCII коды и обратно используйте функции ord() и chr().

Подробности реализации строкового типа

Строковый тип (string) в PHP реализован в виде массива байт и целого числа, содержащего длину буфера. Он не содержит никакой информации о способе преобразования этих байт в символы, предоставляя эту задачу программисту. Нет никаких ограничений на содержимое строки, например, байт со значением 0 ("NUL"-байт) может располагаться где угодно (однако, стоит учитывать, что некоторые функции, как сказано в этом руководстве, не являются "бинарно-безопасными", т.е. они могут передавать строки библиотекам, которые игнорируют данные после NUL-байта).

Данная природа строкового типа объясняет почему в PHP нет отдельного типа "byte" - строки играют эту роль. Функции, возвращающие нетекстовые данные - например, произвольный поток данных, считываемый из сетевого сокета - тем не менее возвращают строки.

Принимая во внимание тот факт, что PHP не диктует определенную кодировку для строк, можно задать вопрос, как в таком случае кодируются строковые литералы. Например, строка "a" эквивалентна "\xE1" (ISO-8859-1), "\xC3\xA1" (UTF-8, форма нормализации C), "\x61\xCC\x81" (UTF-8, форма нормализации D) или какому-либо другому возможному представлению? Ответом является следующее: строка будет закодирована тем образом, которым она записана в файле скрипта. Таким образом, если скрипт записан в кодировке ISO-8859-1, то и строка будет закодирована в ISO-8859-1 и т.д. Однако, это правило не применяется при включенном режиме Zend Multibyte: в этом случае скрипт может быть записан в любой кодировке (которая указывается ясно или определяется автоматически), а затем конвертируются в определенную внутреннюю кодировку, которая и будет впоследствии использована для строковых литералов. Учтите, что на кодировку скрипта (или на внутреннюю кодировку, если включен режим Zend Multibyte) накладываются некоторые ограничения: практически всегда данная кодировка должна быть надмножеством ASCII, например, UTF-8 или ISO-8859-1. Учтите также, что кодировки, зависящие от состояния, где одни и те же значения байт могут быть использованы в начальном и не начальном состоянии сдвига (initial and non-inital shift state), могут вызвать проблемы.

Разумеется, чтобы приносить пользу, строковые функции должны сделать некоторые предположения о кодировке строки. К несчастью, среди PHP-функций довольно большое разнообразие подходов к этому вопросу:

  • Некоторые функции предполагают, что строка закодирована в какой-либо однобайтовой кодировке, однако, для корректной работы им не требуется интерпретировать байты как определенные символы. Под эту категорию попадают, например, substr(), strpos(), strlen() и strcmp(). Другой способ мышления об этих функциях представляет собой оперирование буферами памяти, т.е. они работают непосредственно с байтами и их смещениями. offsets.
  • Другие функции ожидают передачу кодировку в виде параметра, возможно, предполагая некоторую кодировку по умолчанию, если параметр с кодировкой не был указан. Такой функцией является htmlentities() и большинство функций из расширения mbstring.
  • Другие функции используют текущие установки локали (см. setlocale()), но оперируют побайтово). В эту категорию попадают strcasecmp(), strtoupper() и ucfirst(). Это означает, что они могут быть использованы только с однобайтовыми кодировками, в том случае, когда кодировка совпадает с локалью. Например, strtoupper("a") может вернуть "A", если локаль установлена корректно и буква a закодирована в виде одного байта. Если она закодирована в UTF-8, будет возвращен некорректный результат, и, в зависимости от текущей локали, результирующая строка может быть (или не быть) испорчена.
  • Наконец, есть функции, подразумевающие, что строка использует определенную кодировку, обычно UTF-8. Сюда попадают большинство функций из расширений intl и PCRE (в последнем случае, только при указании модификатора u). Хотя это и сделано специально, функция utf8_decode() подразумевает кодировку UTF-8, а utf8_encode() - ISO-8859-1.

В конечном счете, написание корректных программ, работающих с Unicode, означает осторожное избегание функций, которые не работают с Unicode и, скорее всего, испортят данные, и использование вместо них корректных функций, обычно из расширений intl и mbstring. Однако, использование функций, способных работать с Unicode, является самым началом. Вне зависимости от тех функций, которые предоставляет язык, необходимо знать спецификацию самого Unicode. Например, если программа предполагает существование в языке только строчных и заглавных букв, то она делает большую ошибку.


Массивы

На самом деле массив в PHP - это упорядоченное отображение, которое устанавливает соответствие между значением и ключом. Этот тип оптимизирован в нескольких направлениях, поэтому вы можете использовать его как собственно массив, список (вектор), хэш-таблицу (являющуюся реализацией карты), словарь, коллекцию, стэк, очередь и, возможно, что-то еще. Так как значением массива может быть другой массив PHP, можно также создавать деревья и многомерные массивы.

Объяснение этих структур данных выходит за рамки данного справочного руководства, но вы найдете как минимум один пример по каждой из них. За дополнительной информацией вы можете обратиться к соответствующей литературе по этой обширной теме.

Синтаксис

Определение при помощи array()

Массив (тип array) может быть создан языковой конструкцией array(). В качестве параметров она принимает любое количество разделенных запятыми пар key => value (ключ => значение).

array(
    key  => value,
    key2 => value2,
    key3 => value3,
    ...
)

Запятая после последнего элемента массива необязательна и может быть опущена. Обычно это делается для однострочных массивов, т.е. array(1, 2) предпочтительней array(1, 2, ). Для многострочных массивов с другой стороны обычно используется завершающая запятая, так как позволяет легче добавлять новые элементы в конец массива.

Начиная с PHP 5.4 возможно использовать короткий синтаксис определения массивов, который заменяет языковую конструкцию array() на [].

Пример #1 Простой массив

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// Начиная с PHP 5.4
$array = [
    "foo" => "bar",
    "bar" => "foo",
];
?>

key может быть либо типа integer, либо типа string. value может быть любого типа.

Дополнительно с ключом key будут сделаны следующие преобразования:

  • Строки, содержащие целое число будут преобразованы к типу integer. Например, ключ со значением "8" будет в действительности сохранен со значением 8. С другой стороны, значение "08" не будет преобразовано, так как оно не является корректным десятичным целым.
  • Числа с плавающей точкой (тип float) также будут преобразованы к типу integer, т.е. дробная часть будет отброшена. Например, ключ со значением 8.7 будет в действительности сохранен со значением 8.
  • Тип bool также преобразовываются к типу integer. Например, ключ со значением true будет сохранен со значением 1 и ключ со значением false будет сохранен со значением 0.
  • Тип null будет преобразован к пустой строке. Например, ключ со значением null будет в действительности сохранен со значением "".
  • Массивы (тип array) и объекты (тип object) не могут использоваться в качестве ключей. При подобном использовании будет генерироваться предупреждение: Недопустимый тип смещения (Illegal offset type).

Если несколько элементов в объявлении массива используют одинаковый ключ, то только последний будет использоваться, а все другие будут перезаписаны.

Пример #2 Пример преобразования типов и перезаписи элементов

<?php
$array = array(
    1    => "a",
    "1"  => "b",
    1.5  => "c",
    true => "d",
);
var_dump($array);
?>

Результат выполнения данного примера:

array(1) {
  [1]=>
  string(1) "d"
}

Так как все ключи в вышеприведенном примере преобразуются к 1, значение будет перезаписано на каждый новый элемент и останется только последнее присвоенное значение "d".

Массивы в PHP могут содержать ключи типов integer и string одновременно, так как PHP не делает различия между индексированными и ассоциативными массивами.

Пример #3 Смешанные ключи типов integer и string

<?php
$array = array(
    "foo" => "bar",
    "bar" => "foo",
    100   => -100,
    -100  => 100,
);
var_dump($array);
?>

Результат выполнения данного примера:

array(4) {
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "foo"
  [100]=>
  int(-100)
  [-100]=>
  int(100)
}

Параметр key является необязательным. Если он не указан, PHP будет использовать предыдущее наибольшее значение ключа типа integer, увеличенное на 1.

Пример #4 Индексированные массивы без ключа

<?php
$array = array("foo", "bar", "hallo", "world");
var_dump($array);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(5) "hallo"
  [3]=>
  string(5) "world"
}

Возможно указать ключ только для некоторых элементов и пропустить для других:

Пример #5 Ключи для некоторых элементов

<?php
$array = array(
         "a",
         "b",
    6 => "c",
         "d",
);
var_dump($array);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [6]=>
  string(1) "c"
  [7]=>
  string(1) "d"
}

Как вы видите последнее значение "d" было присвоено ключу 7. Это произошло потому, что самое большое значение ключа целого типа перед этим было 6.

Доступ к элементам массива с помощью квадратных скобок

Доступ к элементам массива может быть осуществлен с помощью синтаксиса array[key].

Пример #6 Доступ к элементам массива

<?php
$array = array(
    "foo" => "bar",
    42    => 24,
    "multi" => array(
         "dimensional" => array(
             "array" => "foo"
         )
    )
);

var_dump($array["foo"]);
var_dump($array[42]);
var_dump($array["multi"]["dimensional"]["array"]);
?>

Результат выполнения данного примера:

string(3) "bar"
int(24)
string(3) "foo"

Замечание:

И квадратные и фигурные скобки можно взаимозаменяемо использовать для доступа к элементам массива (т.е. и $array[42] и $array{42} равнозначны).

С PHP 5.4 стало возможным прямое разыменование массива, возвращаемого в качестве результата вызова функции или метода. Раньше приходилось использовать временные переменные.

С PHP 5.5 возможно разыменовывать массив буквально.

Пример #7 Разыменование массива

<?php
function getArray() {
    return array(1, 2, 3);
}

// в PHP 5.4
$secondElement = getArray()[1];

// ранее делали так
$tmp = getArray();
$secondElement = $tmp[1];

// или так
list(, $secondElement) = getArray();
?>

Замечание:

Попытка доступа к неопределенному ключу в массиве - это то же самое, что и попытка доступа к любой другой неопределенной переменной: будет сгенерирована ошибка уровня E_NOTICE, и результат будет NULL.

Замечание:

Массив разыменовывающий скалярную величину не являющуюся строкой (string), отдаст NULL без какого либо оповещения об ошибке.

Создание/модификация с помощью синтаксиса квадратных скобок

Существующий массив может быть изменен явной установкой значений в нем.

Это выполняется присвоением значений массиву array с указанием в скобках ключа. Кроме того, вы можете опустить ключ. В этом случае добавьте к имени переменной пустую пару скобок ([]).

    $arr[key] = value;
    $arr[] = value;
    // key может быть integer или string
    // value может быть любым значением любого типа

Если массив $arr еще не существует, он будет создан. Таким образом, это еще один способ определить массив array. Однако такой способ применять не рекомендуется, так как если переменная $arr уже содержит некоторое значение (например, значение типа string из переменной запроса), то это значение останется на месте и [] может на самом деле означать доступ к символу в строке. Лучше инициализировать переменную путем явного присваивания значения.

Замечание: Начиная с PHP 7.1.0, используя в оператор "пустой индекс" на строке, приведет к фатальной ошибке. Ранее, в этом случае, строка молча преобразовывалась в массив.

Для изменения определенного значения просто присвойте новое значение элементу, используя его ключ. Если вы хотите удалить пару ключ/значение, вам необходимо использовать функцию unset().

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;    // В этом месте скрипта это
                // то же самое, что и $arr[13] = 56;

$arr["x"] = 42; // Это добавляет к массиву новый
                // элемент с ключом "x"

unset($arr[5]); // Это удаляет элемент из массива

unset($arr);    // Это удаляет массив полностью
?>

Замечание:

Как уже говорилось выше, если ключ не был указан, то будет взят максимальный из существующих целочисленных (integer) индексов, и новым ключом будет это максимальное значение (в крайнем случае 0) плюс 1. Если целочисленных индексов еще нет, то ключом будет 0 (ноль).

Учтите, что максимальное целое значение ключа не обязательно существует в массиве в данный момент. Оно могло просто существовать в массиве какое-то время, с тех пор как он был переиндексирован в последний раз. Следующий пример это иллюстрирует:

<?php
// Создаем простой массив.
$array = array(1, 2, 3, 4, 5);
print_r($array);

// Теперь удаляем каждый элемент, но сам массив оставляем нетронутым:
foreach ($array as $i => $value) {
    unset($array[$i]);
}
print_r($array);

// Добавляем элемент (обратите внимание, что новым ключом будет 5, вместо 0).
$array[] = 6;
print_r($array);

// Переиндексация:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
Array
(
)
Array
(
    [5] => 6
)
Array
(
    [0] => 6
    [1] => 7
)

Полезные функции

Для работы с массивами существует достаточное количество полезных функций. Смотрите раздел функции для работы с массивами.

Замечание:

Функция unset() позволяет удалять ключи массива. Обратите внимание, что массив НЕ будет переиндексирован. Если вы действительно хотите поведения в стиле "удалить и сдвинуть", можно переиндексировать массив используя array_values().

<?php
$a = array(1 => 'один', 2 => 'два', 3 => 'три');
unset($a[2]);
/* даст массив, представленный так:
   $a = array(1 => 'один', 3 => 'три');
   а НЕ так:
   $a = array(1 => 'один', 2 => 'три');
*/

$b = array_values($a);
// Теперь $b это array(0 => 'один', 1 => 'три')
?>

Управляющая конструкция foreach существует специально для массивов. Она предоставляет возможность легко пройтись по массиву.

Что можно и нельзя делать с массивами

Почему $foo[bar] неверно?

Всегда заключайте в кавычки строковый литерал в индексе ассоциативного массива. К примеру, пишите $foo['bar'], а не $foo[bar]. Но почему? Часто в старых скриптах можно встретить следующий синтаксис:

<?php
$foo[bar] = 'враг';
echo $foo[bar];
// и т.д.
?>

Это неверно, хотя и работает. Причина в том, что этот код содержит неопределенную константу (bar), а не строку ('bar' - обратите внимание на кавычки). Это работает, потому что PHP автоматически преобразует "голую строку" (не заключенную в кавычки строку, которая не соответствует ни одному из известных символов языка) в строку со значением этой "голой строки". Например, если константа с именем bar не определена, то PHP заменит bar на строку 'bar' и использует ее.

Замечание: Это не означает, что нужно всегда заключать ключ в кавычки. Нет необходимости заключать в кавычки константы или переменные, поскольку это помешает PHP обрабатывать их.

<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('html_errors', false);
// Простой массив:
$array = array(1, 2);
$count = count($array);
for ($i = 0; $i < $count; $i++) {
    echo "\nПроверяем $i: \n";
    echo "Плохо: " . $array['$i'] . "\n";
    echo "Хорошо: " . $array[$i] . "\n";
    echo "Плохо: {$array['$i']}\n";
    echo "Хорошо: {$array[$i]}\n";
}
?>

Результат выполнения данного примера:

Проверяем 0:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Плохо:
Хорошо: 1
Notice: Undefined index:  $i in /path/to/script.html on line 11
Плохо:
Хорошо: 1

Проверяем 1:
Notice: Undefined index:  $i in /path/to/script.html on line 9
Плохо:
Хорошо: 2
Notice: Undefined index:  $i in /path/to/script.html on line 11
Плохо:
Хорошо: 2

Дополнительные примеры, демонстрирующие этот факт:

<?php
// Показываем все ошибки
error_reporting(E_ALL);

$arr = array('fruit' => 'apple', 'veggie' => 'carrot');

// Верно
print $arr['fruit'];  // apple
print $arr['veggie']; // carrot

// Неверно. Это работает, но из-за неопределенной константы с
// именем fruit также вызывает ошибку PHP уровня E_NOTICE
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit];    // apple

// Давайте определим константу, чтобы продемонстрировать, что
// происходит. Мы присвоим константе с именем fruit значение 'veggie'.
define('fruit', 'veggie');

// Теперь обратите внимание на разницу
print $arr['fruit'];  // apple
print $arr[fruit];    // carrot

// Внутри строки это нормально. Внутри строк константы не
// рассматриваются, так что ошибки E_NOTICE здесь не произойдет
print "Hello $arr[fruit]";      // Hello apple

// С одним исключением: фигурные скобки вокруг массивов внутри
// строк позволяют константам там находиться
print "Hello {$arr[fruit]}";    // Hello carrot
print "Hello {$arr['fruit']}";  // Hello apple

// Это не будет работать и вызовет ошибку обработки, такую как:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// Это, конечно, также действует и с суперглобальными переменными в строках
print "Hello $arr['fruit']";
print "Hello $_GET['foo']";

// Еще одна возможность - конкатенация
print "Hello " . $arr['fruit']; // Hello apple
?>

Если вы переведете error_reporting в режим отображения ошибок уровня E_NOTICE (например, такой как E_ALL), вы сразу увидите эти ошибки. По умолчанию error_reporting установлена их не отображать.

Как указано в разделе синтаксис, внутри квадратных скобок ('[' и ']') должно быть выражение. Это означает, что можно писать вот так:

<?php
echo $arr[somefunc($bar)];
?>

Это пример использования возвращаемого функцией значения в качестве индекса массива. PHP известны также и константы:

<?php
$error_descriptions[E_ERROR]   = "Произошла фатальная ошибка";
$error_descriptions[E_WARNING] = "PHP сообщает о предупреждении";
$error_descriptions[E_NOTICE]  = "Это лишь неофициальное замечание";
?>

Обратите внимание, что E_ERROR - это такой же верный идентификатор, как и bar в первом примере. Но последний пример по сути эквивалентен такой записи:

<?php
$error_descriptions[1] = "Произошла фатальная ошибка";
$error_descriptions[2] = "PHP сообщает о предупреждении";
$error_descriptions[8] = "Это лишь неофициальное замечание";
?>

поскольку E_ERROR соответствует 1, и т.д.

Так что же в этом плохого?

Когда-нибудь в будущем, команда разработчиков PHP, возможно, пожелает добавить еще одну константу или ключевое слово, либо константа из другого кода может вмешаться и тогда у вас могут возникнуть проблемы. Например, вы уже не можете использовать таким образом слова empty и default, поскольку они являются зарезервированными ключевыми словами.

Замечание: Повторим, внутри строки (string), заключенной в двойные кавычки, корректно не окружать индексы массива кавычками, поэтому "$foo[bar]" является верной записью. Более подробно почему - смотрите вышеприведенные примеры, а также раздел обработка переменных в строках.

Преобразование в массив

Для любого из типов integer, float, string, boolean и resource, преобразование значения в массив дает результатом массив с одним элементом (с индексом 0), являющимся скалярным значением, с которого вы начали. Другими словами, (array)$scalarValue - это точно то же самое, что и array($scalarValue).

Если вы преобразуете в массив объект (object), вы получите в качестве элементов массива свойства (переменные-члены) этого объекта. Ключами будут имена переменных-членов, с некоторыми примечательными исключениями: целочисленные свойства станут недоступны; к закрытым полям класса (private) спереди будет дописано имя класса; к защищенным полям класса (protected) спереди будет добавлен символ '*'. Эти добавленные значения с обоих сторон также имеют нулевые байты. Это может вызвать несколько неожиданное поведение:

<?php

class A {
    private $A; // Это станет '\0A\0A'
}

class B extends A {
    private $A; // Это станет '\0B\0A'
    public $AA; // Это станет 'AA'
}

var_dump((array) new B());
?>

Вышеприведенный код покажет 2 ключа с именем 'AA', хотя один из них на самом деле имеет имя '\0A\0A'.

Если вы преобразуете в массив значение NULL, вы получите пустой массив.

Сравнение

Массивы можно сравнивать при помощи функции array_diff() и операторов массивов.

Примеры

The array type in PHP is very versatile. Here are some examples: Тип массив в PHP является очень гибким, вот несколько примеров:

<?php
// это
$a = array( 'color' => 'red',
            'taste' => 'sweet',
            'shape' => 'round',
            'name'  => 'apple',
            4        // ключом будет 0
          );

$b = array('a', 'b', 'c');

// . . .полностью соответствует
$a = array();
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name']  = 'apple';
$a[]        = 4;        // ключом будет 0

$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';

// после выполнения этого кода, $a будет массивом
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4), а $b будет
// array(0 => 'a', 1 => 'b', 2 => 'c'), или просто array('a', 'b', 'c').
?>

Пример #8 Использование array()

<?php
// Массив как карта (свойств)
$map = array( 'version'    => 4,
              'OS'         => 'Linux',
              'lang'       => 'english',
              'short_tags' => true
            );

// исключительно числовые ключи
$array = array( 7,
                8,
                0,
                156,
                -10
              );
// это то же самое, что и array(0 => 7, 1 => 8, ...)

$switching = array(         10, // ключ = 0
                    5    =>  6,
                    3    =>  7,
                    'a'  =>  4,
                            11, // ключ = 6 (максимальным числовым индексом было 5)
                    '8'  =>  2, // ключ = 8 (число!)
                    '02' => 77, // ключ = '02'
                    0    => 12  // значение 10 будет перезаписано на 12
                  );

// пустой массив
$empty = array();
?>

Пример #9 Коллекция

<?php
$colors = array('red', 'blue', 'green', 'yellow');

foreach ($colors as $color) {
    echo "Вам нравится $color?\n";
}

?>

Результат выполнения данного примера:

Вам нравится red?
Вам нравится blue?
Вам нравится green?
Вам нравится yellow?

Изменение значений массива напрямую возможно путем передачи их по ссылке.

Пример #10 Изменение элемента в цикле

<?php
foreach ($colors as &$color) {
    $color = strtoupper($color);
}
unset($color); /* это нужно для того, чтобы последующие записи в
$color не меняли последний элемент массива */

print_r($colors);
?>

Результат выполнения данного примера:

Array
(
    [0] => RED
    [1] => BLUE
    [2] => GREEN
    [3] => YELLOW
)

Следующий пример создает массив, начинающийся с единицы.

Пример #11 Индекс, начинающийся с единицы

<?php
$firstquarter  = array(1 => 'Январь', 'Февраль', 'Март');
print_r($firstquarter);
?>

Результат выполнения данного примера:

Array
(
    [1] => 'Январь'
    [2] => 'Февраль'
    [3] => 'Март'
)

Пример #12 Заполнение массива

<?php
// заполняем массив всеми элементами из директории
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
    $files[] = $file;
}
closedir($handle);
?>

Массивы упорядочены. Вы можете изменять порядок элементов, используя различные функции сортировки. Для дополнительной информации смотрите раздел функции для работы с массивами. Вы можете подсчитать количество элементов в массиве с помощью функции count().

Пример #13 Сортировка массива

<?php
sort($files);
print_r($files);
?>

Поскольку значение массива может быть чем угодно, им также может быть другой массив. Таким образом вы можете создавать рекурсивные и многомерные массивы.

Пример #14 Рекурсивные и многомерные массивы

<?php
$fruits = array ( "фрукты"  => array ( "a" => "апельсин",
                                       "b" => "банан",
                                       "c" => "яблоко"
                                     ),
                  "числа"   => array ( 1,
                                       2,
                                       3,
                                       4,
                                       5,
                                       6
                                     ),
                  "дырки"   => array (      "первая",
                                       5 => "вторая",
                                            "третья"
                                     )
                );

// Несколько примеров доступа к значениям предыдущего массива
echo $fruits["дырки"][5];    // напечатает "вторая"
echo $fruits["фрукты"]["a"]; // напечатает "апельсин"
unset($fruits["дырки"][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 "Doing foo.";
    }
}

$bar = new foo;
$bar->do_foo();
?>

Полное рассмотрение производится в разделе Классы и Объекты.

Преобразование в объект

Если object преобразуется в object, он не изменяется. Если значение другого типа преобразуется в object, создается новый экземпляр встроенного класса stdClass. Если значение было NULL, новый экземпляр будет пустым. Массивы преобразуются в object с именами полей, названными согласно ключам массива и соответствующими им значениям, за исключением числовых ключей, которые не будут доступны пока не проитерировать объект.

<?php
$obj = (object) array('1' => 'foo');
var_dump(isset($obj->{'1'})); // outputs 'bool(false)'
var_dump(key($obj)); // outputs 'int(1)'
?>

При преобразовании любого другого значения, оно будет помещено в поле с именем соответствующему типу scalar.

<?php
$obj = (object) 'ciao';
echo $obj->scalar;  // выведет 'ciao'
?>


Ресурс

Resource это специальная переменная, содержащая ссылку на внешний ресурс. Ресурсы создаются и используются специальными функциями. Полный перечень этих функций и соответствующих типов ресурсов(resource) смотрите в приложении.

Смотрите также описание функции get_resource_type().

Преобразование в ресурс

Поскольку тип resource содержит специальные указатели на открытые файлы, соединения с базой данных, области изображения и тому подобное, преобразование в этот тип не имеет смысла.

Освобождение ресурсов

Благодаря системе подсчета ссылок, введенной в Zend Engine, определение отсутствия ссылок на ресурс происходит автоматически, после чего он освобождается сборщиком мусора. Поэтому, очень редко требуется освобождать память вручную.

Замечание: Постоянные соединения с базами данных являются исключением из этого правила. Они не уничтожаются сборщиком мусора. Подробнее смотрите в разделе о постоянных соединениях.


NULL

Специальное значение NULL представляет собой переменную без значения. NULL - это единственно возможное значение типа null.

Переменная считается null, если:

  • ей была присвоена константа NULL.

  • ей еще не было присвоено никакого значения.

  • она была удалена с помощью unset().

Синтаксис

Существует только одно значение типа null - регистронезависимая константа NULL.

<?php
$var = NULL;
?>

Смотрите также функции is_null() и unset().

Приведение к NULL

Приведение переменной к null с использованием (unset) $var не удаляет переменную и ее значение. Данное выражение только возвращает NULL


Функции обратного вызова (callback-функции)

Callback-функции могут быть отмечены в коде подсказкой callable, появившейся в версии PHP 5.4. В этой документации для тех же целей используется callback.

Некоторые функции, такие как call_user_func() или usort(), принимают определенные пользователем callback-функции в качестве параметра. Callback-функции могут быть как простыми функциями, так и методами объектов, включая статические методы классов.

Передача

В PHP функции передаются по имени в виде строки. Можно использовать любые встроенные,
либо созданные пользователем функции, за исключением конструкций языка, таких как:
array(), echo,
empty(), eval(),
exit(), isset(),
list(), print или
unset().

Метод созданного объекта (object) передается как массив, содержащий объект по индексу 0 и имя метода по индексу 1. Доступ к приватным и защищенным методам разрешен изнутри класса.

Статические методы класса также могут быть вызваны без создания экземпляра объекта класса, путем передачи имени класса, вместо объекта, в элементе массива с индексом 0. С PHP 5.2.3, также можно передавать 'ClassName::methodName'.

Помимо обычных пользовательских функций, в качестве callback-функции, можно передавать анонимные функции.

Пример #1 Пример callback-функции

<?php

// Пример callback-функции
function my_callback_function() {
    echo 'hello world!';
}

// Пример callback-метода
class MyClass {
    static function myCallbackMethod() {
        echo 'Hello World!';
    }
}

// Type 1: Простой callback
call_user_func('my_callback_function');

// Type 2: Вызов статического метода класса
call_user_func(array('MyClass', 'myCallbackMethod'));

// Type 3: Вызов метода класса
$obj = new MyClass();
call_user_func(array($obj, 'myCallbackMethod'));

// Type 4: Вызов статического метода класса (С PHP 5.2.3)
call_user_func('MyClass::myCallbackMethod');

// Type 5: Вызов относительного статического метода (С PHP 5.3.0)
class A {
    public static function who() {
        echo "A\n";
    }
}

class B extends A {
    public static function who() {
        echo "B\n";
    }
}

call_user_func(array('B', 'parent::who')); // A

// Type 6: Объекты реализующие __invoke могут быть использованы как callback (С PHP 5.3)
class C {
    public function __invoke($name) {
        echo 'Hello ', $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 говорит о том, что параметр может принимать много (но необязательно все) типов.

Например, функция gettype() принимает все типы PHP, тогда как str_replace() принимает только типы string и array.

number

number говорит о том, что параметр может быть либо integer, либо float.

callback

Псевдо-тип callback использовался в этой документации до того, как был введен тип callable в PHP 5.4. Он означает в точности то же самое.

array|object

array|object указывает, что параметр может быть как массивом array так и объектом object.

void

void в качестве типа результата означает, что возвращенное значение бесполезно. void в списке параметров означает, что функция не принимает параметров.

...

$... в прототипах функции означает and so on (и так далее). Это имя переменной используется когда функция может принимать бесконечное количество параметров.


Манипуляции с типами

PHP не требует (и не поддерживает) явного типа при определении переменной; тип переменной определяется по контексту, в котором она используется. То есть, если вы присвоите значение типа string переменной $var, то $var изменит тип на string. Если вы затем присвоите $var значение типа integer, она станет целым числом(integer).

Примером автоматического преобразования типа является оператор умножения '*'. Если какой-либо из операндов является float, то все операнды интерпретируются как float, и результатом также будет float. В противном случае операнды будут интерпретироваться как integer и результат также будет integer. Обратите внимание, что это НЕ меняет типы самих операндов; меняется только то, как они вычисляются и сам тип выражения.

<?php
$foo = "1";  // $foo is string (ASCII 49)
$foo *= 2;   // $foo is now an integer (2)
$foo = $foo * 1.3;  // $foo is now a float (2.6)
$foo = 5 * "10 Little Piggies"; // $foo is integer (50)
$foo = 5 * "10 Small Pigs";     // $foo is integer (50)
?>

Если последние два примера вам непонятны, смотрите Преобразование строк в числа.

Если вы хотите, чтобы переменная принудительно вычислялась как определенный тип, смотрите раздел приведение типов. Если вы хотите изменить тип переменной, смотрите settype().

Если вы хотите протестировать любой из примеров, приведенных в данном разделе, вы можете использовать функцию var_dump().

Замечание:

Поведение автоматического преобразования в массив в настоящий момент не определено.

К тому же, так как PHP поддерживает индексирование в строках аналогично смещениям элементов массивов, следующий пример будет верен для всех версий PHP:

<?php
$a    = 'car'; // $a - это строка
$a[0] = 'b';   // $a все еще строка
echo $a;       // bar
?>

Более подробно смотрите в разделе Доступ к символу в строке.

Приведение типов

Приведение типов в PHP работает так же, как и в C: имя требуемого типа записывается в круглых скобках перед приводимой переменной.

<?php
$foo = 10;   // $foo это целое число
$bar = (boolean) $foo;   // $bar это булев тип
?>

Допускаются следующие приведения типов:

  • (int), (integer) - приведение к integer
  • (bool), (boolean) - приведение к boolean
  • (float), (double), (real) - приведение к float
  • (string) - приведение к string
  • (array) - приведение к array
  • (object) - приведение к object
  • (unset) - приведение к NULL (PHP 5)

Приведение типа (binary) и поддержка префикса b были добавлены в PHP 5.2.1

Обратите внимание, что внутри скобок допускаются пробелы и символы табуляции, поэтому следующие примеры равносильны по своему действию:

<?php
$foo = (int) $bar;
$foo = ( int ) $bar;
?>

Приведение строковых литералов и переменных к бинарным строкам:

<?php
$binary = (binary) $string;
$binary = b"binary string";
?>

Замечание:

Вместо использования приведения переменной к string, можно также заключить ее в двойные кавычки.

<?php
$foo = 10;            // $foo - это целое число
$str = "$foo";        // $str - это строка
$fst = (string) $foo; // $fst - это тоже строка

// Это напечатает "они одинаковы"
if ($fst === $str) {
    echo "они одинаковы";
}
?>

Может быть не совсем ясно, что именно происходит при приведении между типами. Для дополнительной информации смотрите разделы:

  • Преобразование в булев тип
  • Преобразование в целое число
  • Преобразование в число с плавающей точкой
  • Преобразование в строку
  • Преобразование в массив
  • Преобразование в объект
  • Преобразование в ресурс
  • Преобразование в NULL
  • Таблицы сравнения типов


Переменные

Содержание

  • Основы
  • Предопределенные переменные
  • Область видимости переменной
  • Переменные переменных
  • Переменные извне PHP


Основы

Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя переменной чувствительно к регистру.

Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с буквы или символа подчеркивания и состоять из букв, цифр и символов подчеркивания в любом количестве. Это можно отобразить регулярным выражением: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Замечание: Под буквами здесь подразумеваются символы a-z, A-Z, и байты от 127 до 255 (0x7f-0xff).

Замечание: $this - это особая переменная, которой нельзя ничего присваивать.

Подсказка

Смотрите также Руководство по именованию.

Для информации о функциях работы с переменными обращайтесь к разделу функций работы с переменными.

<?php
$var = 'Bob';
$Var = 'Joe';
echo "$var, $Var";      // выведет "Bob, Joe"

$4site = 'not yet';     // неверно; начинается с цифры
$_4site = 'not yet';    // верно; начинается с символа подчеркивания
$tayte = 'mansikka';    // верно; 'a' это (Расширенный) ASCII 228.
?>

По умолчанию, переменные всегда присваиваются по значению. То есть, когда вы присваиваете выражение переменной, все значение оригинального выражения копируется в эту переменную. Это означает, к примеру, что, после того как одной переменной присвоено значение другой, изменение одной из них не влияет на другую. Дополнительную информацию об этом способе присвоения смотрите в разделе Выражения.

PHP также предлагает иной способ присвоения значений переменным: присвоение по ссылке. Это означает, что новая переменная просто ссылается (иначе говоря, "становится псевдонимом" или "указывает") на оригинальную переменную. Изменения в новой переменной отражаются на оригинале, и наоборот.

Для присвоения по ссылке, просто добавьте амперсанд (&) к началу имени присваиваемой (исходной) переменной. Например, следующий фрагмент кода дважды выводит 'Меня зовут Боб':

<?php
$foo = 'Боб';              // Присваивает $foo значение 'Боб'
$bar = &$foo;              // Ссылка на $foo через $bar.
$bar = "Меня зовут $bar";  // Изменение $bar...
echo $bar;
echo $foo;                 // меняет и $foo.
?>

Важно отметить, что по ссылке могут быть присвоены только именованные переменные.

<?php
$foo = 25;
$bar = &$foo;      // Это верное присвоение.
$bar = &(24 * 7);  // Неверно; ссылка на неименованное выражение.

function test()
{
   return 25;
}

$bar = &test();    // Неверно.
?>

Хорошей практикой считается инициализировать переменные, хотя в PHP это и не является обязательным. Неинициализированные переменные принимают значение по умолчанию в зависимости от их типа, который определяется из контекста их первого использования: булевы принимают значение FALSE, целые и числа с плавающей точкой - ноль, строки (например, при использовании в echo) - пустую строку, а массивы становятся пустыми массивами.

Пример #1 Значения по умолчанию в неинициализированных переменных

<?php
// Неустановленная И не имеющая ссылок (т.е. без контекста использования) переменная; выведет NULL
var_dump($unset_var);

// Булевое применение; выведет 'false' (Подробнее по этому синтаксису смотрите раздел о тернарном операторе)
echo($unset_bool ? "true\n" : "false\n");

// Строковое использование; выведет 'string(3) "abc"'
$unset_str .= 'abc';
var_dump($unset_str);

// Целочисленное использование; выведет 'int(25)'
$unset_int += 25; // 0 + 25 => 25
var_dump($unset_int);

// Использование в качестве числа с плавающей точкой (float/double); выведет 'float(1.25)'
$unset_float += 1.25;
var_dump($unset_float);

// Использование в качестве массива; выведет array(1) {  [3]=>  string(3) "def" }
$unset_arr[3] = "def"; // array() + array(3 => "def") => array(3 => "def")
var_dump($unset_arr);

// Использование в качестве объекта; создает новый объект stdClass (см. http://www.php.net/manual/en/reserved.classes.php)
// Выведет: object(stdClass)#1 (1) {  ["foo"]=>  string(3) "bar" }
$unset_obj->foo = 'bar';
var_dump($unset_obj);
?>

Полагаться на значения по умолчанию неинициализированных переменных довольно проблематично при включении файла в другой файл, использующий переменную с таким же именем. Это также большой риск в системе безопасности при включенной опции register_globals. В случае работы с неинициализированной переменной вызывается ошибка уровня E_NOTICE, за исключением случая добавления элементов в неинициализированный массив. Для обнаружения инициализации переменной может быть использована языковая конструкция isset().


Предопределенные переменные

Любому запускаемому скрипту PHP предоставляет большое количество предопределенных переменных. Однако многие из этих переменных не могут быть полностью задокументированы, поскольку они зависят от запускающего скрипт сервера, его версии и настроек, а также других факторов. Некоторые из этих переменных недоступны, когда PHP запущен из командной строки. Перечень этих переменных смотрите в разделе Зарезервированные предопределенные переменные.

Внимание

Начиная с PHP 4.2.0, значение директивы register_globals по умолчанию установлено в off (отключено). Это большое изменение в PHP. Положение register_globals в off изменяет набор глобальных предопределенных переменных. Например, чтобы получить DOCUMENT_ROOT, вам необходимо будет использовать $_SERVER['DOCUMENT_ROOT'] вместо $DOCUMENT_ROOT, или $_GET['id'] из URL http://www.example.com/test.php?id=3 вместо $id, или $_ENV['HOME'] вместо $HOME.

Дополнительную информацию, связанную с этим изменением, вы можете получить, прочитав описание register_globals в разделе о настройках, главу о безопасности Использование Register Globals , а также сообщения о выпусках PHP » 4.1.0 и » 4.2.0.

Использование доступных зарезервированных предопределенных переменных PHP, таких как суперглобальные массивы, является предпочтительным.

Начиная с версии 4.1.0, PHP предоставляет дополнительный набор предопределенных массивов, содержащих переменные web-сервера (если они доступны), окружения и пользовательского ввода. Эти новые массивы являются особыми, поскольку они становятся глобальными автоматически - то есть, автоматически доступны в любой области видимости. По этой причине они также известны как 'автоглобальные' или 'суперглобальные' переменные. (В PHP нет механизма определяемых пользователем суперглобальных переменных.) Суперглобальные переменные перечислены ниже; однако, перечисление их содержимого и дальнейшее обсуждение предопределенных переменных PHP и их сути смотрите в разделе Зарезервированные предопределенные переменные. Также вы заметите, что старые предопределенные переменные ($HTTP_*_VARS) всё еще существуют. Начиная с PHP 5.0.0, длинные предопределенные переменные массивов PHP могут быть отключены директивой register_long_arrays.

Замечание: Переменные переменных

Суперглобальные переменные не могут быть переменными переменных внутри функций или методов класса.

Замечание:

Хотя суперглобальный массив и соответствующий HTTP_*_VARS могут существовать одновременно, они не идентичны, поэтому изменение одного никак не повлияет на другой.

Если некоторые из переменных в variables_order не установлены, соответствующие им предопределенные массивы также останутся пустыми.


Область видимости переменной

Область видимости переменной - это контекст, в котором эта переменная определена. В большинстве случаев все переменные PHP имеют только одну область видимости. Эта единая область видимости охватывает также включаемые (include) и требуемые (require) файлы. Например:

<?php
$a = 1;
include 'b.inc';
?>

Здесь переменная $a будет доступна внутри включенного скрипта b.inc. Однако определение (тело) пользовательской функции задает локальную область видимости данной функции. Любая используемая внутри функции переменная по умолчанию ограничена локальной областью видимости функции. Например:

<?php
$a = 1; /* глобальная область видимости */

function test()
{
    echo $a; /* ссылка на переменную локальной области видимости */
}

test();
?>

Этот скрипт не сгенерирует никакого вывода, поскольку выражение echo указывает на локальную версию переменной $a, а в пределах этой области видимости ей не было присвоено значение. Возможно вы заметили, что это немного отличается от языка C в том, что глобальные переменные в C автоматически доступны функциям, если только они не были перезаписаны локальным определением. Это может вызвать некоторые проблемы, поскольку люди могут нечаянно изменить глобальную переменную. В PHP, если глобальная переменная будет использоваться внутри функции, она должна быть объявлена глобальной внутри определения функции.

Ключевое слово global

Сначала пример использования global:

Пример #1 Использование global

<?php
$a = 1;
$b = 2;

function Sum()
{
    global $a, $b;

    $b = $a + $b;
}

Sum();
echo $b;
?>

Вышеприведенный скрипт выведет 3. После определения $a и $b внутри функции как global все ссылки на любую из этих переменных будут указывать на их глобальную версию. Не существует никаких ограничений на количество глобальных переменных, которые могут обрабатываться функцией.

Второй способ доступа к переменным глобальной области видимости - использование специального, определяемого PHP массива $GLOBALS. Предыдущий пример может быть переписан так:

Пример #2 Использование $GLOBALS вместо global

<?php
$a = 1;
$b = 2;

function Sum()
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}

Sum();
echo $b;
?>

$GLOBALS - это ассоциативный массив, ключом которого является имя, а значением - содержимое глобальной переменной. Обратите внимание, что $GLOBALS существует в любой области видимости, это объясняется тем, что $GLOBALS является суперглобальным. Ниже приведен пример, демонстрирующий возможности суперглобальных переменных:

Пример #3 Суперглобальные переменные и область видимости

<?php
function test_global()
{
    // Большинство предопределенных переменных не являются
    // "супер", и чтобы быть доступными в локальной области
    // видимости, функции требуют указания 'global'.
    global $HTTP_POST_VARS;

    echo $HTTP_POST_VARS['name'];

    // Суперглобальные переменные доступны в любой области
    // видимости и не требуют указания 'global'.
    // Суперглобальные переменные доступны, начиная с PHP 4.1.0, а
    // использование HTTP_POST_VARS считается устаревшим.
    echo $_POST['name'];
}
?>

Замечание:

Использование ключевого слова global вне функции не является ошибкой. Оно может быть использовано в файле, который включается внутрь функции.

Использование статических (static) переменных

Другой важной особенностью области видимости переменной является статическая переменная. Статическая переменная существует только в локальной области видимости функции, но не теряет своего значения, когда выполнение программы выходит из этой области видимости. Рассмотрим следующий пример:

Пример #4 Демонстрация необходимости статических переменных

<?php
function test()
{
    $a = 0;
    echo $a;
    $a++;
}
?>

Эта функция довольно бесполезна, поскольку при каждом вызове она устанавливает $a в 0 и выводит 0. Инкремент переменной $a++ здесь не играет роли, так как при выходе из функции переменная $a исчезает. Чтобы написать полезную считающую функцию, которая не будет терять текущего значения счетчика, переменная $a объявляется как static:

Пример #5 Пример использования статических переменных

<?php
function test()
{
    static $a = 0;
    echo $a;
    $a++;
}
?>

Теперь $a будет проинициализирована только при первом вызове функции, а каждый вызов функции test() будет выводить значение $a и инкрементировать его.

Статические переменные также дают возможность работать с рекурсивными функциями. Рекурсивной является функция, вызывающая саму себя. При написании рекурсивной функции нужно быть внимательным, поскольку есть вероятность сделать рекурсию бесконечной. Вы должны убедиться, что существует адекватный способ завершения рекурсии. Следующая простая функция рекурсивно считает до 10, используя для определения момента остановки статическую переменную $count:

Пример #6 Статические переменные и рекурсивные функции

<?php
function test()
{
    static $count = 0;

    $count++;
    echo $count;
    if ($count < 10) {
        test();
    }
    $count--;
}
?>

Замечание:

Статические переменные могут быть объявлены так, как показано в предыдущем примере. Начиная с PHP 5.6 вы можете присвоить этим переменным значения являющиеся результатом выражения, но вы не можете использовать для этого функции, так это вызовет ошибку разбора.

Пример #7 Объявление статических переменных

<?php
function foo(){
    static $int = 0;          // верно
    static $int = 1+2;        // корректно  (начиная с PHP 5.6)
    static $int = sqrt(121);  // неверно  (поскольку это функция)

    $int++;
    echo $int;
}
?>

Замечание:

Статические объявления вычисляются во время компиляции скрипта.

Ссылки с глобальными (global) и статическими (static) переменными

Движок Zend Engine 1, лежащий в основе PHP 4, оперирует модификаторами переменных static и global как ссылками. Например, реальная глобальная переменная, внедренная в область видимости функции указанием ключевого слова global, в действительности создает ссылку на глобальную переменную. Это может привести к неожиданному поведению, как это показано в следующем примере:

<?php
function test_global_ref() {
    global $obj;
    $obj = &new stdclass;
}

function test_global_noref() {
    global $obj;
    $obj = new stdclass;
}

test_global_ref();
var_dump($obj);
test_global_noref();
var_dump($obj);
?>

Результат выполнения данного примера:

NULL
object(stdClass)(0) {
}

Аналогично ведет себя и выражение static. Ссылки не хранятся статично:

<?php
function &get_instance_ref() {
    static $obj;

    echo 'Статический объект: ';
    var_dump($obj);
    if (!isset($obj)) {
        // Присвоить ссылку статической переменной
        $obj = &new stdclass;
    }
    $obj->property++;
    return $obj;
}

function &get_instance_noref() {
    static $obj;

    echo 'Статический объект: ';
    var_dump($obj);
    if (!isset($obj)) {
        // Присвоить объект статической переменной
        $obj = new stdclass;
    }
    $obj->property++;
    return $obj;
}

$obj1 = get_instance_ref();
$still_obj1 = get_instance_ref();
echo "\n";
$obj2 = get_instance_noref();
$still_obj2 = get_instance_noref();
?>

Результат выполнения данного примера:

Статический объект: NULL
Статический объект: NULL

Статический объект: NULL
Статический объект: object(stdClass)(1) {
["property"]=>
int(1)
}

Этот пример демонстрирует, что при присвоении ссылки статической переменной она не запоминается, когда вы вызываете функцию &get_instance_ref() во второй раз.


Переменные переменных

Иногда бывает удобно иметь переменными имена переменных. То есть, имя переменной, которое может быть определено и изменено динамически. Обычная переменная определяется примерно таким выражением:

<?php
$a = 'hello';
?>

Переменная переменной берет значение переменной и рассматривает его как имя переменной. В вышеприведенном примере hello может быть использовано как имя переменной при помощи двух знаков доллара. То есть:

<?php
$$a = 'world';
?>

Теперь в дереве символов PHP определены и содержатся две переменные: $a, содержащая "hello", и $hello, содержащая "world". Таким образом, выражение

<?php
echo "$a ${$a}";
?>

выведет то же, что и

<?php
echo "$a $hello";
?>

то есть, они оба выведут: hello world.

Для того чтобы использовать переменные переменных с массивами, вы должны решить проблему двусмысленности. То есть, если вы напишете $$a[1], обработчику необходимо знать, хотите ли вы использовать $a[1] в качестве переменной, либо вам нужна как переменная $$a, а затем ее индекс [1]. Синтаксис для разрешения этой двусмысленности таков: ${$a[1]} для первого случая и ${$a}[1] для второго.

К свойствам класса также можно получить доступ динамически. Переменное имя свойства будет разрешено в том контексте, в котором произойдет вызов к нему. Например, в случае выражения $foo->$bar, локальная область видимости будет просканирована на наличие переменной $bar, значение которой будет использовано в качестве имени свойства объекта $foo. Это также работает и в том случае, если $bar осуществляет доступ к элементу массива.

Предостережение

Разыменование свойства, которое представляет собой массив имеет разную семантику в PHP 5 и PHP 7. руководство по миграции на PHP 7.0 включает в себя более подробную информацию о типах выражений, которые были изменены и как правильно использовать фигурные скобки, чтобы избежать неоднозначности.

Фигурные скобки могут также использоваться, чтобы четко разграничить имя свойства. Они наиболее полезны при получении доступа к значениям внутри свойства, которое содержит массив, когда имя свойства состоит из нескольких частей, либо когда имя свойства содержит символы, которые иначе не действительны (например, из функции json_decode() или из SimpleXML).

Пример #1 Пример переменного имени свойства

<?php
class foo {
    var $bar = 'I am bar.';
    var $arr = array('I am A.', 'I am B.', 'I am C.');
    var $r   = 'I am r.';
}

$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo $foo->$bar . "\n";
echo $foo->{$baz[1]} . "\n";

$start = 'b';
$end   = 'ar';
echo $foo->{$start . $end} . "\n";

$arr = 'arr';
echo $foo->{$arr[1]} . "\n";

?>

Результат выполнения данного примера:

I am bar.
I am bar.
I am bar.
I am r.

Внимание

Пожалуйста, обратите внимание, что переменные переменных не могут использоваться с Суперглобальными массивами PHP. Переменная $this также является особой, на нее нельзя ссылаться динамически.


Переменные извне PHP

HTML-формы (GET и POST)

Когда происходит отправка данных формы PHP-скрипту, информация из этой формы автоматически становится доступной ему. Существует несколько способов получения этой информации, например:

Пример #1 Простая HTML-форма

<form action="foo.php" method="post">
    Имя:  <input type="text" name="username" /><br />
    Email: <input type="text" name="email" /><br />
    <input type="submit" name="submit" value="Отправь меня!" />
</form>

С версии PHP 5.4.0, есть только два способы получить доступ к данным из HTML форм. Доступные сейчас способы приведены ниже:

Пример #2 Доступ к данным из простой HTML POST-формы

<?php
echo $_POST['username'];
echo $_REQUEST['username'];
?>

В старых версиях PHP также существовало несколько других способов. Они приведены ниже. Смотрите также список изменений внизу страницы.

Пример #3 Старые способы получения пользовательских данных

<?php
// ВНИМАНИЕ: эти методы больше НЕ поддерживаются.

// Использование import_request_variables() - эта функция удалена в PHP 5.4.0
   import_request_variables('p', 'p_');
   echo $p_username;

// Эти длинные предопределенные массивы удалены в PHP 5.4.0
   echo $HTTP_POST_VARS['username'];

// Использование register_globals. Эта функциональность удалена в PHP 5.4.0
   echo $username;
?>

GET-форма используется аналогично, за исключением того, что вместо POST, вам нужно будет использовать соответствующую предопределенную переменную GET. GET относится также к QUERY_STRING (информация в URL после '?'). Так, например, http://www.example.com/test.php?id=3 содержит GET-данные, доступные как $_GET['id']. Смотрите также $_REQUEST.

Замечание:

Точки и пробелы в именах переменных преобразуется в знаки подчеркивания. Например, <input name="a.b" /> станет $_REQUEST["a_b"].

PHP также понимает массивы в контексте переменных формы (смотрите соответствующие ЧАВО). К примеру, вы можете сгруппировать связанные переменные вместе или использовать эту возможность для получения значений списка множественного выбора select. Например, давайте отправим форму самой себе, а после отправки отобразим данные:

Пример #4 Более сложные переменные формы

<?php
if ($_POST) {
    echo '<pre>';
    echo htmlspecialchars(print_r($_POST, true));
    echo '</pre>';
}
?>
<form action="" method="post">
    Имя:  <input type="text" name="personal[name]" /><br />
    Email: <input type="text" name="personal[email]" /><br />
    Пиво: <br />
    <select multiple name="beer[]">
        <option value="warthog">Warthog</option>
        <option value="guinness">Guinness</option>
        <option value="stuttgarter">Stuttgarter Schwabenbrau</option>
    </select><br />
    <input type="submit" value="Отправь меня!" />
</form>

Имена переменных кнопки-изображения

При отправке формы вместо стандартной кнопки можно использовать изображение с помощью тега такого вида:

<input type="image" src="image.gif" name="sub" />

Когда пользователь щелкнет где-нибудь на изображении, соответствующая форма будет передана на сервер с двумя дополнительными переменными - sub_x и sub_y. Они содержат координаты нажатия пользователя на изображение. Опытные программисты могут заметить, что на самом деле имена переменных, отправленных браузером, содержат точку, а не подчеркивание, но PHP автоматически конвертирует точку в подчеркивание.

HTTP Cookies

PHP прозрачно поддерживает HTTP cookies как определено в » RFC 6265. Cookies - это механизм для хранения данных в удаленном браузере и отслеживания и идентификации таким образом вернувшихся пользователей. Вы можете установить cookies, используя функцию setcookie(). Cookies являются частью HTTP-заголовка, поэтому функция SetCookie должна вызываться до того, как браузеру будет отправлен какой бы то ни было вывод. Это ограничение аналогично ограничению функции header(). Данные, хранящиеся в cookie, доступны в соответствующих массивах данных cookie, таких как $_COOKIE и $_REQUEST. Подробности и примеры смотрите на странице setcookie() руководства.

Если вы хотите присвоить множество значений одной переменной cookie, вы можете присвоить их как массив. Например:

<?php
  setcookie("MyCookie[foo]", 'Testing 1', time()+3600);
  setcookie("MyCookie[bar]", 'Testing 2', time()+3600);
?>

Это создаст две разные cookie, хотя в вашем скрипте MyCookie будет теперь одним массивом. Если вы хотите установить именно одну cookie со множеством значений, примите во внимание сначала применение к значениям таких функций, как serialize() или explode().

Обратите внимание, что cookie заменит предыдущую cookie с тем же именем в вашем браузере, если только путь или домен не отличаются. Так, для приложения корзины покупок вы, возможно, захотите сохранить счетчик. То есть:

Пример #5 Пример использования setcookie()

<?php
if (isset($_COOKIE['count'])) {
    $count = $_COOKIE['count'] + 1;
} else {
    $count = 1;
}
setcookie('count', $count, time()+3600);
setcookie("Cart[$count]", $item, time()+3600);
?>

Точки в именах приходящих переменных

Как правило, PHP не меняет передаваемых скрипту имен переменных. Однако следует отметить, что точка не является корректным символом в имени переменной PHP. Поэтому рассмотрим такую запись:

<?php
$varname.ext;  /* неверное имя переменной */
?>
В данном случае интерпретатор видит переменную $varname, после которой идет оператор конкатенации, а затем голая строка (то есть, не заключенная в кавычки строка, не соответствующая ни одному из ключевых или зарезервированных слов) 'ext'. Очевидно, что это не даст ожидаемого результата.

По этой причине важно заметить, что PHP будет автоматически заменять любые точки в именах приходящих переменных на символы подчеркивания.

Определение типов переменных

Поскольку PHP определяет и конвертирует типы переменных (в большинстве случаев) как надо, не всегда очевидно, какой тип имеет данная переменная в конкретный момент времени. PHP содержит несколько функций, позволяющих определить тип переменной, таких как: gettype(), is_array(), is_float(), is_int(), is_object() и is_string(). Смотрите также раздел Типы.

Список изменений

Версия | Описание
5.4.0 | Register Globals, Magic Quotes и register_long_arrays удалены
5.3.0 | Register Globals, Magic Quotes и register_long_arrays стали устаревшими
4.2.0 | register_globals по умолчанию стала равна off.
4.1.0 | Добавлены Суперглобальные массивы, такие как $_POST и $_GET


Константы

Содержание

  • Синтаксис
  • "Волшебные" константы

Константы - это идентификаторы (имена) простых значений. Исходя из их названия, нетрудно понять, что их значение не может изменяться в ходе выполнения скрипта (исключения представляют "волшебные" константы, которые на самом деле не являются константами в полном смысле этого слова). Имена констант чувствительны к регистру. По принятому соглашению, имена констант всегда пишутся в верхнем регистре.

Имя константы должно соответствовать тем же правилам, что и другие имена в PHP. Правильное имя начинается с буквы или символа подчеркивания и состоит из букв, цифр и подчеркиваний. Регулярное выражение для проверки правильности имени константы выглядит так: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Подсказка

Смотрите также Руководство по именованию.

Пример #1 Правильные и неправильные имена констант

<?php

// Правильные имена констант
define("FOO",     "something");
define("FOO2",    "something else");
define("FOO_BAR", "something more");

// Неправильные имена констант
define("2FOO",    "something");

// Это корректное объявление, но лучше его не использовать:
// PHP однажды может зарегистрировать "волшебную" константу,
// которая сломает ваш скрипт
define("__FOO__", "something");

?>

Замечание: Понятие "буквы" здесь - это символы a-z, A-Z, и другие символы с ASCII-кодами от 127 до 255 (0x7f-0xff).

Как и superglobals, константы доступны из любой области видимости. Вы можете использовать константы в любом месте вашего скрипта, не обращая внимания на текущую область видимости. Подробную информацию об областях видимости можно найти здесь.


Синтаксис

Вы можете определить константу с помощью функции define() или с помощью ключевого слова const вне объявления класса начиная с версии PHP 5.3.0. В то время как define() позволяет задать константу через выражение, конструкция const ограничена как описано в следующем параграфе. После того, как константа определена, ее значение не может быть изменено или аннулировано.

Если использована конструкция const, константы могут содержать только скалярные данные (boolean, integer, float и string типов). С PHP 5.6 возможно также определять константы как скалярные выражения, и также можно определять константы с типом array. Можно определять константы с типом resource, но не рекомендуется, так как может привести к неожиданным результатам.

Получить значение константы можно, указав ее имя. В отличие от переменных, вам не нужно предварять имя константы символом $. Также вы можете использовать функцию constant() для получения значения константы, если вы формируете имя константы динамически. Используйте функцию get_defined_constants() для получения списка всех объявленных констант.

Замечание: Константы и (глобальные) переменные находятся в разных пространствах имен. Это означает, что, например, TRUE и $TRUE являются совершенно разными вещами.

Если вы используете неопределенную константу, PHP предполагает, что вы имеете ввиду само имя константы, как если бы вы указали литерал типа string (CONSTANT вместо "CONSTANT"). При этом будет сгенерирована ошибка уровня E_NOTICE. Смотрите также главу руководства, которая разъясняет, почему $foo[bar] - это неправильно (конечно, если вы перед этим не объявили bar как константу с помощью define()). Это не относится к (полностью) определенные константам, которые в случае удаления вызовут фатальную ошибку. Если вы просто хотите проверить, определена ли константа, используйте функцию defined().

Различия между константами и переменными:

  • У констант нет приставки в виде знака доллара ($);
  • До PHP 5.3 константы можно определить только с помощью функции define(), а не присваиванием значения;
  • Константы могут быть определены и доступны в любом месте без учета области видимости;
  • Константы не могут быть переопределены или аннулированы после первоначального объявления; и
  • Константы могут иметь только скалярные значения. С версии PHP 5.6 возможно задать константу массивом используя const. С PHP 7, константы массивы можно задавать через define(). Вы можете использовать массивы при задании констант, если результат выражения будет допустимого типа. Например, const FOO = array(1,2,3)[0];).

Пример #1 Определение констант

<?php
define("CONSTANT", "Здравствуй, мир.");
echo CONSTANT; // выводит "Здравствуй, мир."
echo Constant; // выводит "Constant" и предупреждение.
?>

Пример #2 Определение констант с помощью ключевого слова const

<?php
// Работает, начиная с версии PHP 5.3.0
const CONSTANT = 'Здравствуй, мир.';

echo CONSTANT;

// Работает, начиная с версии PHP 5.6.0
const ANOTHER_CONST = CONSTANT.'; Прощай, мир.';
echo ANOTHER_CONST;

const ANIMALS = array('dog', 'cat', 'bird');
echo ANIMALS[1]; // выводит "cat"

// Работает в PHP 7
define('ANIMALS', array(
    'dog',
    'cat',
    'bird'
));
echo ANIMALS[1]; // выводит "cat"
?>

Замечание:

В отличие от определения констант с помощью функции define(), константы, объявленные с помощью ключевого слова const должны быть объявлены в самой верхней области видимости, потому что они определяются при компилировании скрипта. Это означает, что их нельзя объявлять внутри функций, циклов, выражений if и try/ catch блоков.

Смотрите также Константы классов.


"Волшебные" константы

PHP предоставляет большой список предопределенных констант для каждого выполняемого скрипта. Многие из этих констант определяются различными модулями и будут присутствовать только в том случае, если эти модули доступны в результате динамической загрузки или в результате статической сборки.

Есть восемь волшебных констант, которые меняют свое значение в зависимости от контекста, в котором они используются. Например, значение __LINE__ зависит от строки в скрипте, на которой эта константа указана. Специальные константы нечувствительны к регистру и их список приведен ниже:

Некоторые "волшебные" константы PHP
Имя | Описание
__LINE__ | Текущий номер строки в файле.
__FILE__ | Полный путь и имя текущего файла с развернутыми симлинками. Если используется внутри подключаемого файла, то возвращается имя данного файла.
__DIR__ | Директория файла. Если используется внутри подключаемого файла, то возвращается директория этого файла. Это эквивалентно вызову dirname(__FILE__). Возвращаемое имя директории не оканчивается на слэш, за исключением корневой директории.
__FUNCTION__ | Имя функции.
__CLASS__ | Имя класса. Это имя содержит название пространства имен, в котором класс был объявлен (например, Foo\Bar). Обратите внимание, что начиная с PHP5.4 __CLASS__ также работает в трейтах. При использовании в методах трейтов __CLASS__ является именем класса, в котором эти методы используется.
__TRAIT__ | Имя трейта. Это имя содержит название пространства имен, в котором трейт был объявлен (например, Foo\Bar).
__METHOD__ | Имя метода класса.
__NAMESPACE__ | Имя текущего пространства имен.

Смотрите также
get_class(),
get_object_vars(),
file_exists() и
function_exists().

Список изменений

Версия | Описание
5.4.0 | Добавлена константа __TRAIT__
5.3.0 | Добавлены константы __DIR__ и __NAMESPACE__
5.0.0 | Добавлена константа __METHOD__
5.0.0 | До этой версии значения некоторых магических констант были всегда в нижнем регистре. Все они теперь являются регистрозависимыми (содержат имена такими, какими они были объявлены).
4.3.0 | Добавлены константы __FUNCTION__ и __CLASS__
4.0.2 | __FILE__ всегда содержит полный путь с разрешенными симлинками. Раньше в некоторых случаях она содержала относительный путь.


Выражения

Выражения - это самые важные строительные элементы PHP. Почти все, что вы пишете в PHP, является выражением. Самое простое и точное определение выражения - "все что угодно, имеющее значение".

Основными формами выражений являются константы и переменные. Если вы записываете "$a = 5", вы присваиваете '5' переменной $a. '5', очевидно, имеет значение 5 или, другими словами, '5' это выражение со значением 5 (в данном случае '5' - это целочисленная константа).

После этого присвоения вы ожидаете, что значением $a также является 5, поэтому, если вы написали $b = $a, вы полагаете, что работать это будет так же, как если бы вы написали $b = 5. Другими словами, $a это также выражение со значением 5. Если все работает верно, то именно так и произойдет.

Немного более сложными примерами выражений являются функции. Например, рассмотрим следующую функцию:

<?php
function foo ()
{
    return 5;
}
?>

Исходя из того, что вы хорошо знакомы с концепцией функций (если нет, то прочитайте главу о функциях), вы полагаете, что запись $c = foo() абсолютно эквивалентна записи $c = 5, и вы правы. Функции - это выражения, значением которых является то, что возвращает функция. Поскольку foo() возвращает 5, значением выражения 'foo()' является 5. Как правило, функции возвращают не просто статическое значение, а что-то вычисляют.

Разумеется, значения в PHP не обязаны быть целочисленными, и очень часто ими не являются. PHP поддерживает четыре типа скалярных значений: целочисленные (integer), с плавающей точкой (float), строковые значения (string) и булевы (boolean) значения (скалярными являются значения, которые вы не можете 'разбить' на меньшие части, в отличие, например, от массивов). PHP поддерживает также два комбинированных (не скалярных) типа: массивы и объекты. Любое значение такого типа может присваиваться переменной или возвращаться функцией.

Однако PHP, как и многие другие языки, понимает гораздо больше выражений. PHP - это язык, ориентированный на выражения и рассматривающий почти все как выражение. Вернемся к примеру, с которым мы уже имели дело: '$a = 5'. Легко заметить, что здесь присутствуют два значения - значение целочисленной константы '5' и значение переменной $a, также принимающей значение 5. Но на самом деле здесь присутствует и еще одно значение - значение самого присвоения. Само присвоение вычисляется в присвоенное значение, в данном случае - в 5. На практике это означает, что '$a = 5', независимо от того, что оно делает, является выражением со значением 5. Таким образом, запись '$b = ($a = 5)' равносильна записи '$a = 5; $b = 5;' (точка с запятой обозначает конец выражения). Поскольку операции присвоения анализируются справа налево, вы также можете написать '$b = $a = 5'.

Другой хороший пример ориентированности на выражения - префиксный и постфиксный инкремент и декремент. Пользователи PHP и многих других языков возможно уже знакомы с формой записи variable++ и variable--. Это операторы инкремента и декремента. Также как и C, PHP поддерживает два типа инкремента - префиксный и постфиксный. Они оба инкрементируют значение переменной и эффект их действия на нее одинаков. Разница состоит в значении выражения инкремента. Префиксный инкремент, записываемый как '++$variable', вычисляется в инкрементированное значение (PHP инкрементирует переменную до того как прочесть ее значение, отсюда название 'пре-инкремент'). Постфиксный инкремент, записываемый как '$variable++', вычисляется в первоначальное значение переменной $variable до ее приращения (PHP инкрементирует переменную после прочтения ее значения, отсюда название 'пост-инкремент').

Очень распространенным типом выражений являются выражения сравнения. Результатом вычислений являются FALSE (ложь) или TRUE (истина). PHP поддерживает операции сравнения > (больше), >= (больше либо равно), == (равно), != (не равно), < (меньше) и <= (меньше либо равно). Он также поддерживает операторы строгого равенства: === (равно и одного типа) и !== (не равно или не одного типа). Чаще всего эти выражения используются в операторах условного выполнения, таких как if.

Последний пример выражений, который мы здесь рассмотрим, это смешанные выражения операции и присвоения. Вы уже знаете, что если вы хотите увеличить $a на 1, вы можете просто написать '$a++' или '++$a'. Но что, если вы хотите прибавить больше, чем единицу,например, 3? Вы могли бы написать '$a++' много раз, однако, очевидно это не очень рациональный и удобный способ. Гораздо более распространенной практикой является запись вида '$a = $a + 3'. '$a + 3' вычисляется в значение $a плюс 3 и снова присваивается $a, увеличивая в результате $a на 3. В PHP, как и в некоторых других языках, таких как C, вы можете записать это более коротким образом, что увеличит очевидность смысла и быстроту понимания кода по прошествии времени. Прибавить 3 к текущему значению $a можно с помощью записи '$a += 3'. Это означает дословно "взять значение $a, прибавить к нему 3 и снова присвоить его переменной $a". Кроме большей понятности и краткости, это быстрее работает. Значением '$a += 3', как и обычного присвоения, является присвоенное значение. Обратите внимание, что это НЕ 3, а суммированное значение $a плюс 3 (то, что было присвоено $a). Таким образом может использоваться любой бинарный оператор, например, '$a -= 5' (вычесть 5 из значения $a), '$b *= 7' (умножить значение $b на 7) и т.д.

Существует еще одно выражение, которое может выглядеть необычно, если вы не встречали его в других языках - тернарный условный оператор:

<?php
$first ? $second : $third
?>

Если значением первого подвыражения является TRUE (не ноль), то выполняется второе подвыражение, которое и будет результатом условного выражения. В противном случае будет выполнено третье подвыражение и его значение будет результатом.

Следующий пример должен помочь вам немного улучшить понимание префиксного и постфиксного инкремента и выражений:

<?php
function double($i)
{
    return $i*2;
}
$b = $a = 5;        /* присвоить значение пять переменным $a и $b */
$c = $a++;          /* постфиксный инкремент, присвоить значение $a
                       (5) переменной $c */
$e = $d = ++$b;     /* префиксный инкремент, присвоить увеличенное
                       значение $b (6) переменным $d и $e */

/* в этой точке и $d, и $e равны 6 */

$f = double($d++);  /* присвоить удвоенное значение $d перед
                       инкрементом (2*6 = 12) переменной $f */
$g = double(++$e);  /* присвоить удвоенное значение $e после
                       инкремента (2*7 = 14) переменной $g */
$h = $g += 10;      /* сначала переменная $g увеличивается на 10,
                       приобретая, в итоге, значение 24. Затем значение
                       присвоения (24) присваивается переменной $h,
                       которая в итоге также становится равной 24. */
?>

Некоторые выражения могут рассматриваться как инструкции. В данном случае инструкция имеет вид 'expr ; - выражение с последующей точкой с запятой. В записи '$b = $a = 5;', $a = 5 - это верное выражение, но само по себе не инструкция. Тогда как '$b = $a = 5;' является верной инструкцией.

Последнее, что стоит упомянуть, это истинность значения выражений. Во многих случаях, как правило, в условных операторах и циклах, вас может интересовать не конкретное значение выражения, а только его истинность (значение TRUE или FALSE). Константы TRUE и FALSE (регистро-независимые) - это два возможных булевых значения. При необходимости выражение автоматически преобразуется в булев тип. Подробнее о том, как это происходит, смотрите в разделе о приведении типов.

PHP предоставляет полную и мощную реализацию выражений, и их полное документирование выходит за рамки этого руководства. Вышеприведенные примеры должны дать вам представление о том, что они из себя представляют и как вы сами можете создавать полезные выражения. Далее, для обозначения любого верного выражения PHP в этой документации мы будем использовать сокращение expr.


Операторы

Содержание

  • Приоритет оператора
  • Арифметические операторы
  • Оператор присваивания
  • Побитовые операторы
  • Операторы сравнения
  • Оператор управления ошибками
  • Операторы исполнения
  • Операторы инкремента и декремента
  • Логические операторы
  • Строковые операторы
  • Операторы, работающие с массивами
  • Оператор проверки типа

Оператором называется нечто, принимающее одно или более значений (или выражений, если говорить на жаргоне программирования), и вычисляющее новое значение (таким образом, вся конструкция может рассматриваться как выражение).

Операторы можно сгруппировать по количеству принимаемых ими значений. Унарные операторы принимают только одно значение, например, ! (оператор логического отрицания) или ++ (инкремент). Бинарные операторы принимают два значения; это, например, знакомые всем арифметические операторы + (плюс) и - (минус), большинство поддерживаемых в PHP операторов входят именно в эту категорию. Ну и, наконец, есть всего один тернарный оператор, ? :, принимающий три значения, обычно его так и называют -- "тернарный оператор" (хотя, возможно, более точным названием было бы "условный оператор").

Полный список PHP-операторов вы можете найти в разделе "Порядок выполнения операторов". В этом разделе также описан порядок выполнения операторов и их ассоциативность, которые точно определяют, как вычисляются выражения с несколькими разными операторами.


Приоритет оператора

Приоритет оператора определяет, насколько "тесно" он связывает между собой два выражения. Например, выражение 1 + 5 * 3 вычисляется как 16, а не 18, поскольку оператор умножения ("*") имеет более высокий приоритет, чем оператор сложения ("+"). Круглые скобки могут использоваться для принудительного указания порядка выполнения операторов. Например, выражение (1 + 5) * 3 вычисляется как 18.

Если операторы имеют равный приоритет, то будут ли они выполняться справа налево или слева направо определяется их ассоциативностью. К примеру, "-" является лево-ассоциативным оператором. Следовательно 1 - 2 - 3 сгруппируется как (1 - 2) - 3 и пересчитается в -4. С другой стороны "=" - право-ассоциативный оператор, так что $a = $b = $c сгруппируется как $a = ($b = $c).

Неассоциативные операторы с одинаковым приоритетом не могут использоваться совместно. К примеру 1 < 2 > 1 не будет работать в PHP. Выражение 1 <= 1 == 1, с другой стороны, будет, поскольку == имеет более низкий приоритет чем <=.

Использование скобок, кроме случаев когда они строго необходимы, может улучшить читаемость кода, группируя явно, а не полагаясь на приоритеты и ассоциативность.

В следующей таблице приведен список операторов, отсортированный по убыванию их приоритетов. Операторы, размещенные в одной строке имеют одинаковый приоритет и порядок их выполнения определяется исходя из их ассоциативности.

Порядок выполнения операторов
Ассоциативность | Оператор | Дополнительная информация
неассоциативна | clone new | clone и new
левая | [ | array()
правая | ** | арифметические операторы
правая | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | типы и инкремент/декремент
неассоциативна | instanceof | типы
правая | ! | логические операторы
левая | * / % | арифметические операторы
левая | + - . | арифметические операторы и строковые операторы
левая | << >> | побитовые операторы
неассоциативна | < <= > >= | операторы сравнения
неассоциативна | == != === !== <> <=> | операторы сравнения
левая | & | побитовые операторы и ссылки
левая | ^ | побитовые операторы
левая | | | побитовые операторы
левая | && | логические операторы
левая | || | логические операторы
правая | ?? | операторы сравнения
левая | ? : | тернарный оператор
правая | = += -= *= **= /= .= %= &= |= ^= <<= >>= | операторы присваивания
левая | and | логические операторы
левая | xor | логические операторы
левая | or | логические операторы

Пример #1 Ассоциативность

<![CDATA[
<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
// ассоциативность тернарного оператора отличается от  C/C++
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2

$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
?>

Приоритет и ассоциативность оператора определяет только то, как группируется выражение, а не порядок его вычисления. Обычно PHP не указывает, в каком порядке вычисляются выражения и кода, который предполагает специфичный порядок вычисления следует избегать, потому, что поведение может меняться в разных версиях PHP или в зависимости от окружающего кода.

Пример #2 Неопределенный порядок вычисления

<?php
$a = 1;
echo $a + $a++; // может вывести как 2 так и 3

$i = 1;
$array[$i] = $i++; // может установить индекс как 1 так 2
?>

Пример #3 +, - и . имеют одинаковый приоритет

<?php
$x = 4;
// следующий код может выдать неожиданный результат:
echo "x минус 1 равно " . $x-1 . ", ну я надеюсь\n";
// поскольку он вычисляется таким образом::
echo (("x минус один равно " . $x) - 1) . ", ну я надеюсь\n";
// требуемый приоритет следует задать скобками:
echo "x минус 1 равно " . ($x-1) . ", ну я надеюсь\n";
?>

Результат выполнения данного примера:

-1, or so I hope
-1, or so I hope
x минус один равно 3, ну я надеюсь

Замечание:

Несмотря на то, что = имеет более низкий приоритет чем большинство других операторов, PHP все же позволяет делать так: if (!$a = foo()), в этом примере результат выполнения foo() будет присвоен $a.


Арифметические операторы

Помните школьные основы арифметики? Описанные ниже операторы работают так же.

Арифметические операции
Пример | Название | Результат
+$a | Идентичность | Конвертация $a в int или float, что более подходит.
-$a | Отрицание | Смена знака $a.
$a + $b | Сложение | Сумма $a и $b.
$a - $b | Вычитание | Разность $a и $b.
$a * $b | Умножение | Произведение $a и $b.
$a / $b | Деление | Частное от деления $a на $b.
$a % $b | Деление по модулю | Целочисленный остаток от деления $a на $b.
$a ** $b | Возведение в степень | Возведение $a в степень $b. Добавлено в PHP 5.6.

Операция деления ("/") возвращает число с плавающей точкой, кроме случая, когда оба значения являются целыми числами (или строками, которые преобразуются в целые числа), которые делятся нацело - в этом случае возвращается целое значение. Для целочисленного деления используйте intdiv().

При делении по модулю операнды преобразуются в целые числа (удалением дробной части) до начала операции. Для деления по модую чисел с плавающей точкой используйте fmod().

Результат операции остатка от деления % будет иметь тот же знак, что и делимое — то есть, результат $a % $b будет иметь тот же знак, что и $a. Например:

<?php

echo (5 % 3)."\n";           // выводит 2
echo (5 % -3)."\n";          // выводит 2
echo (-5 % 3)."\n";          // выводит -2
echo (-5 % -3)."\n";         // выводит -2

?>

Также вы можете ознакомиться с разделом документации Математические функции.


Оператор присваивания

Базовый оператор присваивания обозначается как "=". На первый взгляд может показаться, что это оператор "равно". На самом деле это не так. В действительности, оператор присваивания означает, что левый операнд получает значение правого выражения, (т.е. устанавливается значением).

Результатом выполнения оператора присваивания является само присвоенное значение. Таким образом, результат выполнения "$a = 3" будет равен 3. Это позволяет делать трюки наподобие:

<?php

$a = ($b = 4) + 5; // $a теперь равно 9, а $b было присвоено 4.

?>

В дополнение к базовому оператору присваивания имеются "комбинированные операторы" для всех бинарных арифметических операций, операций объединения массивов и строковых операций, которые позволяют использовать некоторое значение в выражении, а затем установить его как результат данного выражения. Например:

<?php

$a = 3;
$a += 5; // устанавливает $a в 8, как если бы мы написали: $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // устанавливает $b в "Hello There!",  как и $b = $b . "There!";

?>

Обратите внимание, что присвоение копирует оригинальную переменную в новую (присвоение по значению), таким образом все последующие изменения одной из переменных никак не отразятся на другой. Это также следует учитывать, если вам надо скопировать что-то типа большого массива в длинном цикле.

Исключением из обычного для PHP способа присваивания по значению явлаются объекты (object), которые, начиная с версии PHP 5, присваиваются по ссылке. Принудительно скопировать объекты по значению можно с помощью специального ключевого слова clone.

Присваивание по ссылке

Присваивание по ссылке также поддерживается, для него используется синтаксис $var = &$othervar;. 'Присваивание по ссылке' означает, что обе переменные указывают на одни и те же данные и никакого копирования не происходит.

Пример #1 Присваивание по ссылке

<?php
$a = 3;
$b = &$a; // $b - это ссылка на $a

print "$a\n"; // печатает 3
print "$b\n"; // печатает 3

$a = 4; // меняем $a

print "$a\n"; // печатает 4
print "$b\n"; // также печатает 4, так как $b является ссылкой на $a,
              // а значение переменной $a успело измениться
?>

Начиная с версии PHP 5, оператор new автоматически возвращает ссылку, поэтому присваивание результата операции new по ссылке начиная с версии PHP 5.3 генерирует ошибку уровня E_DEPRECATED, а в более ранних версиях - ошибку уровня E_STRICT.

Например, следующий код выдаст предупреждение:

<?php
class C {}

/* Следующая строка сгенерирует следующее сообщение об ошибке:
 * Deprecated: Assigning the return value of new by reference is deprecated in...
 * (Устаревший код: Присвоение результата работы new по ссылке устарело в...)
 */
$o = &new C;
?>

Для получения более полной информации о ссылках и их возможностях обратитесь к разделу Подробно о ссылках.


Побитовые операторы

Побитовые операторы позволяют считывать и устанавливать конкретные биты целых чисел.

Побитовые операторы
Пример | Название | Результат
$a & $b | И | Устанавливаются только те биты, которые установлены и в $a, и в $b.
$a | $b | Или | Устанавливаются те биты, которые установлены в $a или в $b.
$a ^ $b | Исключающее или | Устанавливаются только те биты, которые установлены либо только в $a, либо только в $b, но не в обоих одновременно.
~ $a | Отрицание | Устанавливаются те биты, которые не установлены в $a, и наоборот.
$a << $b | Сдвиг влево | Все биты переменной $a сдвигаются на $b позиций влево (каждая позиция подразумевает "умножение на 2")
$a >> $b | Сдвиг вправо | Все биты переменной $a сдвигаются на $b позиций вправо (каждая позиция подразумевает "деление на 2")

Побитовый сдвиг в PHP - это арифметическая операция. Биты, сдвинутые за границы числа, отбрасываются. Сдвиг влево дополняет число нулями справа, сдвигая в то же время знаковый бит числа влево, что означает что знак операнда не сохраняется. Сдвиг вправо сохраняет копию сдвинутого знакового бита слева, что означает что знак операнда сохраняется.

Используйте скобки для обеспечения необходимого приоритета операторов. Например, $a & $b == true сначала проверяет на равенство, а потом выполняет побитовое и; тогда как ($a & $b) == true сначала выполняет побитовое и, а потом выполняет проверку на равенство.

Если оба операдна для &, | и ^ строки, то операция будет производиться с кодами ASCII всех символов строки и в результате вернет строку. Во всех остальных случаях, оба операнда будут преобразованы к целому и результатом будет целое число.

Если операнд для ~ строка, то операция будет производиться с кодами ASCII всех символов строки и в результате вернет строку, в ином случае как операнд, так и результат, будут считаться цемыми.

Оба операнда и результат выполнения << и >> всегда считаются за целое.

       Опция настроек PHP error_reporting использует побитовые значения, обеспечивая
       реальную демонстрацию гашения значений битов. Чтобы показать все ошибки кроме
       замечаний, инструкции в файле php.ini предлагают использовать:
       E_ALL & ~E_NOTICE

       Начинаем со значения E_ALL:
       00000000000000000111011111111111
       Затем берем значение E_NOTICE...
       00000000000000000000000000001000
       ... и инвертируем его с помощью ~:
       11111111111111111111111111110111
       Наконец, используем побитовое И (&), чтобы установить только те биты,
       которые установлены в единицу в обоих значениях:
       00000000000000000111011111110111

       Другой способ достичь этого - использовать ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR, ^),
       чтобы получить только те биты, которые установлены в единицу
       либо только в одном, либо только в другом значении:
       E_ALL ^ E_NOTICE

       Опция error_reporting также может быть использована для демонстрации
       установки битов. Показать только ошибки и обрабатываемые ошибки можно
       следующим образом:
       E_ERROR | E_RECOVERABLE_ERROR

       Здесь мы комбинируем E_ERROR
       00000000000000000000000000000001
       и
       00000000000000000001000000000000
       с помощью оператора ИЛИ (|),
       чтобы получить биты, установленные хотя бы в одном операнде:
       00000000000000000001000000000001

Пример #1 Побитовыми операции И, ИЛИ и ИСКЛЮЧАЮЩЕЕ ИЛИ (AND, OR и XOR) над целыми числами

<?php
/*
 * Не обращайте внимания на этот верхний раздел кода,
 * это просто форматирование для более ясного вывода.
 */

$format = '(%1$2d = %1$04b) = (%2$2d = %2$04b)'
        . ' %3$s (%4$2d = %4$04b)' . "\n";

echo <<<EOH
 ---------     ---------  -- ---------
 результат     значение   оп   тест
 ---------     ---------  -- ---------
EOH;

/*
 * Вот сами примеры.
 */

$values = array(0, 1, 2, 4, 8);
$test = 1 + 4;

echo "\n Побитовое И (AND) \n";
foreach ($values as $value) {
    $result = $value & $test;
    printf($format, $result, $value, '&', $test);
}

echo "\n Побитовое (включающее) ИЛИ (OR) \n";
foreach ($values as $value) {
    $result = $value | $test;
    printf($format, $result, $value, '|', $test);
}

echo "\n Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) \n";
foreach ($values as $value) {
    $result = $value ^ $test;
    printf($format, $result, $value, '^', $test);
}
?>

Результат выполнения данного примера:

 ---------     ---------  -- ---------
 результат     значение   оп   тест
 ---------     ---------  -- ---------
 Побитовое И (AND)
( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101)
( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101)
( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101)
( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101)
( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101)

 Побитовое (включающее) ИЛИ (OR)
( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101)
( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101)
( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) | ( 5 = 0101)

 Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR)
( 5 = 0101) = ( 0 = 0000) ^ ( 5 = 0101)
( 4 = 0100) = ( 1 = 0001) ^ ( 5 = 0101)
( 7 = 0111) = ( 2 = 0010) ^ ( 5 = 0101)
( 1 = 0001) = ( 4 = 0100) ^ ( 5 = 0101)
(13 = 1101) = ( 8 = 1000) ^ ( 5 = 0101)

Пример #2 Побитовая операция ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR) над строками

<?php
echo 12 ^ 9; // Выводит '5'

echo "12" ^ "9"; // Выводит символ Backspace (ascii 8)
                 // ('1' (ascii 49)) ^ ('9' (ascii 57)) = #8

echo "hallo" ^ "hello"; // Выводит ascii значения #0 #4 #0 #0 #0
                        // 'a' ^ 'e' = #4

echo 2 ^ "3"; // Выводит 1
              // 2 ^ ((int)"3") == 1

echo "2" ^ 3; // Выводит 1
              // ((int)"2") ^ 3 == 1
?>

Пример #3 Побитовый сдвиг над целыми числами

<?php
/*
 * Несколько примеров.
 */

echo "\n--- СДВИГ ВПРАВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---\n";

$val = 4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'слева была вставлена копия знакового бита');

$val = 4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places);

$val = 4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'биты были выдвинуты за правый край');

$val = 4;
$places = 4;
$res = $val >> $places;
p($res, $val, '>>', $places, 'то же, что и выше; нельзя сдвинуть дальше 0');

echo "\n--- СДВИГ ВПРАВО НАД ОТРИЦАТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---\n";

$val = -4;
$places = 1;
$res = $val >> $places;
p($res, $val, '>>', $places, 'слева была вставлена копия знакового бита');

$val = -4;
$places = 2;
$res = $val >> $places;
p($res, $val, '>>', $places, 'биты были выдвинуты за правый край');

$val = -4;
$places = 3;
$res = $val >> $places;
p($res, $val, '>>', $places, 'то же, что и выше; нельзя сдвинуть дальше -1');

echo "\n--- СДВИГ ВЛЕВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---\n";

$val = 4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'правый край был дополнен нулями');

$val = 4;
$places = (PHP_INT_SIZE * 8) - 4;
$res = $val << $places;
p($res, $val, '<<', $places);

$val = 4;
$places = (PHP_INT_SIZE * 8) - 3;
$res = $val << $places;
p($res, $val, '<<', $places, 'знаковые биты были выдвинуты');

$val = 4;
$places = (PHP_INT_SIZE * 8) - 2;
$res = $val << $places;
p($res, $val, '<<', $places, 'биты были выдвинуты за левый край');

echo "\n--- СДВИГ ВЛЕВО НАД ОТРИЦАТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---\n";

$val = -4;
$places = 1;
$res = $val << $places;
p($res, $val, '<<', $places, 'правый край был дополнен нулями');

$val = -4;
$places = (PHP_INT_SIZE * 8) - 3;
$res = $val << $places;
p($res, $val, '<<', $places);

$val = -4;
$places = (PHP_INT_SIZE * 8) - 2;
$res = $val << $places;
p($res, $val, '<<', $places, 'биты были выдвинуты за левый край, включая знаковый бит');

/*
 * Не обращайте внимания на этот нижний раздел кода,
 * это просто форматирование для более ясного вывода.
 */

function p($res, $val, $op, $places, $note = '') {
    $format = '%0' . (PHP_INT_SIZE * 8) . "b\n";

    printf("Выражение: %d = %d %s %d\n", $res, $val, $op, $places);

    echo " Десятичный вид:\n";
    printf("  val=%d\n", $val);
    printf("  res=%d\n", $res);

    echo " Двоичный вид:\n";
    printf('  val=' . $format, $val);
    printf('  res=' . $format, $res);

    if ($note) {
        echo " ЗАМЕЧАНИЕ: $note\n";
    }

    echo "\n";
}
?>

Результат выполнения данного примера на 32-битных машинах:

--- СДВИГ ВПРАВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: 2 = 4 >> 1
 Десятичный вид:
  val=4
  res=2
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000010
 ЗАМЕЧАНИЕ: слева была вставлена копия знакового бита

Выражение: 1 = 4 >> 2
 Десятичный вид:
  val=4
  res=1
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000001

Выражение: 0 = 4 >> 3
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за правый край

Выражение: 0 = 4 >> 4
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 ЗАМЕЧАНИЕ: то же, что и выше; нельзя сдвинуть дальше 0

--- СДВИГ ВПРАВО НА ОТРИЦАТЕЛЬНЫХ ЦЕЛЫХ ЧИСЛАХ ---
Выражение: -2 = -4 >> 1
 Десятичный вид:
  val=-4
  res=-2
 Двоичный вид:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111110
 ЗАМЕЧАНИЕ: слева была вставлена копия знакового бита

Выражение: -1 = -4 >> 2
 Десятичный вид:
  val=-4
  res=-1
 Двоичный вид:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 ЗАМЕЧАНИЕ: биты были выдвинуты за правый край

Выражение: -1 = -4 >> 3
 Десятичный вид:
  val=-4
  res=-1
 Двоичный вид:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111111
 ЗАМЕЧАНИЕ: то же, что и выше; нельзя сдвинуть дальше -1

--- СДВИГ ВЛЕВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: 8 = 4 << 1
 Десятичный вид:
  val=4
  res=8
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000001000
 ЗАМЕЧАНИЕ: правый край был дополнен нулями

Выражение: 1073741824 = 4 << 28
 Десятичный вид:
  val=4
  res=1073741824
 Двоичный вид:
  val=00000000000000000000000000000100
  res=01000000000000000000000000000000

Выражение: -2147483648 = 4 << 29
 Десятичный вид:
  val=4
  res=-2147483648
 Двоичный вид:
  val=00000000000000000000000000000100
  res=10000000000000000000000000000000
 ЗАМЕЧАНИЕ: знаковые биты были выдвинуты

Выражение: 0 = 4 << 30
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=00000000000000000000000000000100
  res=00000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за левый край

--- СДВИГ ВЛЕВО НАД ОТРИЦАТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: -8 = -4 << 1
 Десятичный вид:
  val=-4
  res=-8
 Двоичный вид:
  val=11111111111111111111111111111100
  res=11111111111111111111111111111000
 ЗАМЕЧАНИЕ: правый край был дополнен нулями

Выражение: -2147483648 = -4 << 29
 Десятичный вид:
  val=-4
  res=-2147483648
 Двоичный вид:
  val=11111111111111111111111111111100
  res=10000000000000000000000000000000

Выражение: 0 = -4 << 30
 Десятичный вид:
  val=-4
  res=0
 Двоичный вид:
  val=11111111111111111111111111111100
  res=00000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за левый край, включая знаковый бит

Результат выполнения данного примера на 64-битных машинах:

--- СДВИГ ВПРАВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: 2 = 4 >> 1
 Десятичный вид:
  val=4
  res=2
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000010
 ЗАМЕЧАНИЕ: слева была вставлена копия знакового бита

Выражение: 1 = 4 >> 2
 Десятичный вид:
  val=4
  res=1
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000001

Выражение: 0 = 4 >> 3
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за правый край

Выражение: 0 = 4 >> 4
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 ЗАМЕЧАНИЕ: то же, что и выше; нельзя сдвинуть дальше 0

--- СДВИГ ВПРАВО НАД ОТРИЦАТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: -2 = -4 >> 1
 Десятичный вид:
  val=-4
  res=-2
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111110
 ЗАМЕЧАНИЕ: слева была вставлена копия знакового бита

Выражение: -1 = -4 >> 2
 Десятичный вид:
  val=-4
  res=-1
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 ЗАМЕЧАНИЕ: биты были выдвинуты за правый край

Выражение: -1 = -4 >> 3
 Десятичный вид:
  val=-4
  res=-1
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111111
 ЗАМЕЧАНИЕ: то же, что и выше; нельзя сдвинуть дальше -1

--- СДВИГ ВЛЕВО НАД ПОЛОЖИТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: 8 = 4 << 1
 Десятичный вид:
  val=4
  res=8
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000001000
 ЗАМЕЧАНИЕ: правый край был дополнен нулями

Выражение: 4611686018427387904 = 4 << 60
 Десятичный вид:
  val=4
  res=4611686018427387904
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0100000000000000000000000000000000000000000000000000000000000000

Выражение: -9223372036854775808 = 4 << 61
 Десятичный вид:
  val=4
  res=-9223372036854775808
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=1000000000000000000000000000000000000000000000000000000000000000
 ЗАМЕЧАНИЕ: знаковые биты были выдвинуты

Выражение: 0 = 4 << 62
 Десятичный вид:
  val=4
  res=0
 Двоичный вид:
  val=0000000000000000000000000000000000000000000000000000000000000100
  res=0000000000000000000000000000000000000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за левый край

--- СДВИГ ВЛЕВО НАД ОТРИЦАТЕЛЬНЫМИ ЦЕЛЫМИ ЧИСЛАМИ ---
Выражение: -8 = -4 << 1
 Десятичный вид:
  val=-4
  res=-8
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1111111111111111111111111111111111111111111111111111111111111000
 ЗАМЕЧАНИЕ: правый край был дополнен нулями

Выражение: -9223372036854775808 = -4 << 61
 Десятичный вид:
  val=-4
  res=-9223372036854775808
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=1000000000000000000000000000000000000000000000000000000000000000

Выражение: 0 = -4 << 62
 Десятичный вид:
  val=-4
  res=0
 Двоичный вид:
  val=1111111111111111111111111111111111111111111111111111111111111100
  res=0000000000000000000000000000000000000000000000000000000000000000
 ЗАМЕЧАНИЕ: биты были выдвинуты за левый край, включая знаковый бит

Внимание

Не используйте побитовый сдвиг на величину превышающую разрядность операционной системы - это может привести к неопределенному результату. Другими словами, не сдвигайте больше чем на 31 бит на 32-битных системах и больше чем на 63 бита на 64-битных.

Используйте функции из расширения gmp для побитовых операций над числами, большими чем PHP_INT_MAX.

Смотрите также
pack(),
unpack(),
gmp_and(),
gmp_or(),
gmp_xor(),
gmp_testbit(),
gmp_clrbit()


Операторы сравнения

Операторы сравнения, как это видно из их названия, позволяют сравнивать между собой два значения. Возможно вам будет интересно также ознакомиться с разделом Сравнение типов, в котором приведено большое количество соответствующих примеров.

Операторы сравнения
Пример | Название | Результат
$a == $b | Равно | TRUE если $a равно $b после преобразования типов.
$a === $b | Тождественно равно | TRUE если $a равно $b и имеет тот же тип.
$a != $b | Не равно | TRUE если $a не равно $b после преобразования типов.
$a <> $b | Не равно | TRUE если $a не равно $b после преобразования типов.
$a !== $b | Тождественно не равно | TRUE если $a не равно $b или они разных типов.
$a < $b | Меньше | TRUE если $a строго меньше $b.
$a > $b | Больше | TRUE если $a строго больше $b.
$a <= $b | Меньше или равно | TRUE если $a меньше или равно $b.
$a >= $b | Больше или равно | TRUE если $a больше или равно $b.
$a <=> $b | Спейсшип (космический корабль) | Число типа integer меньше, больше или равное нулю, когда $a соответственно меньше, больше или равно $b. Доступно PHP 7.

В случае, если вы сравниваете число со строкой или две строки, содержащие числа, каждая строка будет преобразована в число, и сравниваться они будут как числа. Эти правила также распространяются на оператор switch. Преобразование типов не происходит при использовании === или !== так как в этом случае кроме самих значений сравниваются еще и типы.

<?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true

switch ("a") {
case 0:
    echo "0";
    break;
case "a": // Эта ветка никогда не будет достигнута, так как "a" уже сопоставленно с 0
    echo "a";
    break;
}
?>
<?php
// Целые
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// С плавающей точкой
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1

// Строки
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1

echo "a" <=> "aa"; // -1
echo "zz" <=> "aa"; // 1

// Массивы
echo [] <=> []; // 0
echo [1, 2, 3] <=> [1, 2, 3]; // 0
echo [1, 2, 3] <=> []; // 1
echo [1, 2, 3] <=> [1, 2, 1]; // 1
echo [1, 2, 3] <=> [1, 2, 4]; // -1

// Объекты
$a = (object) ["a" => "b"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 0

$a = (object) ["a" => "b"];
$b = (object) ["a" => "c"];
echo $a <=> $b; // -1

$a = (object) ["a" => "c"];
$b = (object) ["a" => "b"];
echo $a <=> $b; // 1

// сравниваются только значения
$a = (object) ["a" => "b"];
$b = (object) ["b" => "b"];
echo $a <=> $b; // 1

?>

Для различных типов сравнение происходит в соответствии со следующей таблицей (по порядку).

Сравнение различных типов
Тип операнда 1 | Тип операнда 2 | Результат
null или string | string | NULL преобразуется в "", числовое или лексическое сравнение
bool или null | что угодно | Преобразуется в bool, FALSE < TRUE
object | object | Встроенные классы могут определять свои собственные правила сравнения, объекты разных классов не сравниваются, объекты одного класса - сравниваются свойства тем же способом, что и в массивах (PHP 4), в PHP 5 есть свое собственное объяснение
string, resource или number | string, resource или number | Строки и ресурсы переводятся в числа, обычная математика
array | array | Массивы с меньшим числом элементов считаются меньше, если ключ из первого операнда не найден во втором операнде - массивы не могут сравниваться, иначе идет сравнение соответствующих значений (смотри пример ниже)
array | что угодно | array всегда больше
object | что угодно | object всегда больше

Пример #1 Логические/null сравнение

<?php
// Логические значения и null всегда сравниваются как логические
var_dump(1 == TRUE);  // TRUE - то же, что и (bool)1 == TRUE
var_dump(0 == FALSE); // TRUE - то же, что и (bool)0 == FALSE
var_dump(100 < TRUE); // FALSE - то же, что и (bool)100 < TRUE
var_dump(-10 < FALSE);// FALSE - то же, что и (bool)-10 < FALSE
var_dump(min(-100, -10, NULL, 10, 100)); // NULL - (bool)NULL < (bool)-100 это FALSE < TRUE
?>

Пример #2 Алгоритм сравнения обычных массивов

<?php
// Так сравниваются массивы при сравнении стандартными операторами
function standard_array_compare($op1, $op2)
{
    if (count($op1) < count($op2)) {
        return -1; // $op1 < $op2
    } elseif (count($op1) > count($op2)) {
        return 1; // $op1 > $op2
    }
    foreach ($op1 as $key => $val) {
        if (!array_key_exists($key, $op2)) {
            return null; // не могут быть сравнимы
        } elseif ($val < $op2[$key]) {
            return -1;
        } elseif ($val > $op2[$key]) {
            return 1;
        }
    }
    return 0; // $op1 == $op2
}
?>

Смотрите также strcasecmp(), strcmp(), операторы массивов, и раздел руководстваТипы.

Внимание

Сравнение чисел с плавающей точкой

Из-за особого внутреннего представления float, не нужно проверять на равенство два float-числа.

Для более подробной информации смотрите документацию по типу float.

Тернарный оператор

Еще одним условным оператором является тернарный оператор "?:".

Пример #3 Присваивание значения по умолчанию

<?php
// Пример использования тернарного оператора
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];

// Приведенный выше код аналогичен следующему блоку с использованием if/else
if (empty($_POST['action'])) {
    $action = 'default';
} else {
    $action = $_POST['action'];
}

?>
Выражение (expr1) ? (expr2) : (expr3) интерпретируется как expr2, если expr1 имеет значение TRUE, или как expr3 если expr1 имеет значение FALSE.

Начиная с версии PHP 5.3 также стало возможным не писать среднюю часть тернарного оператора. Выражение expr1 ?: expr3 возвращает expr1 если expr1 имеет значение TRUE, и expr3 в другом случае.

Замечание: Пожалуйста учтите, что тернарный оператор является выражением и трактуется не как переменная, а как результат выражения. Это важно знать, если вы хотите вернуть переменную по ссылке. Выражение return $var == 42 ? $a : $b; не будет работать в функции, возвращающей значение по ссылке, а в более поздних версиях PHP также будет выдано предупреждение.

Замечание:

Рекомендуется избегать "нагромождения" тернарных выражений. Поведение PHP неочевидно при использовании нескольких тернарных операторов в одном выражении:

Пример #4 Неочевидное поведение тернарного оператора

<?php
// на первый взгляд, следующий код должен вывести 'true'
echo (true?'true':false?'t':'f');

// однако, он выводит 't'
// это происходит потому, что тернарные выражения вычисляются слева направо

// это намного более очевидная версия вышеприведенного кода
echo ((true ? 'true' : false) ? 't' : 'f');

// здесь вы можете видеть, что первое выражение вычисляется в 'true', которое
// в свою очередь вычисляется в (bool)true, таким образом возвращая истинную ветвь
// второго тернарного выражения.
?>

Оператор null coalescing

Также, начиная с PHP 7, добавился новый оператор "??" (или null coalescing).

Пример #5 Присваивание значения по умолчанию

<?php
// Пример использования оператора
$action = $_POST['action'] ?? 'default';

// Пример выше аналогичен следующему коду
if (isset($_POST['action'])) {
    $action = $_POST['action'];
} else {
    $action = 'default';
}

?>
Выражение (expr1) ?? (expr2) вычисляется так: expr2, если expr1 равен NULL, и expr1 в ином случае.

На практике, этот оператор не вызывает предупреждения, если левый операнд не существует, прям как isset(). Это очень полезно для ключей массива.

Замечание: Пожалуйста помните, что этот оператор является выражением, и он приравнивается к выражению, а не значению переменной. Это может быть важным, если вы хотите вернуть значение по ссылке. Выражение return $foo ?? $bar; в функции возвращающей ссылку будет не работать, а выводить предупреждение.

Замечание:

Пожалуйста помните, что этот оператор позволяет использовать простую вложенность:

Пример #6 Вложенный оператор null coalescing

<?php

$foo = null;
$bar = null;
$baz = 1;
$qux = 2;

echo $foo ?? $bar ?? $baz ?? $qux; // выведет 1

?>


Оператор управления ошибками

PHP поддерживает один оператор управления ошибками: знак (@). В случае, если он предшествует какому-либо выражению в PHP-коде, любые сообщения об ошибках, генерируемые этим выражением, будут проигнорированы.

Если вы установили собственную функцию обработки ошибок с помощью set_error_handler(), то она все равно будет вызвана, однако, если внутри этой функции будет вызвана функция error_reporting(), то она вернет 0, если функция, вызвавшая данную ошибку, была подавлена с помощью @.

В случае, если установлена опция track_errors , все генерируемые сообщения об ошибках будут сохраняться в переменной $php_errormsg. Эта переменная будет перезаписываться при каждой новой ошибке, поэтому в случае необходимости проверяйте ее сразу же.

<?php
// Преднамеренная ошибка при работе с файлами
$my_file = @file ('non_existent_file') or
    die ("Ошибка при открытии файла: сообщение об ошибке было таким: '$php_errormsg'");

// работает для любых выражений, а не только для функций
$value = @$cache[$key];
// В случае если ключа $key нет, сообщение об ошибке (notice) не будет отображено

?>

Замечание: Оператор @ работает только с выражениями. Есть простое правило: если что-то возвращает значение, значит вы можете использовать перед ним оператор @. Например, вы можете использовать @ перед именем переменной, произвольной функцией или вызовом include, константой и так далее. В то же время вы не можете использовать этот оператор перед определением функции или класса, условными конструкциями, такими как if, foreach и т.д.

Также ознакомьтесь с описанием функции error_reporting() и разделом руководства Обработка ошибок и функции логирования.

Внимание

На сегодняшний день оператор "@" подавляет вывод сообщений даже о критических ошибках, прерывающих работу скрипта. Помимо всего прочего, это означает, что если вы использовали "@" для подавления ошибок, возникающих при работе какой-либо функции, в случае если она недоступна или написана неправильно, дальнейшая работа скрипта будет остановлена без каких-либо уведомлений.


Операторы исполнения

PHP поддерживает один оператор исполнения: обратные кавычки (``). Обратите внимание, что это не одинарные кавычки! PHP попытается выполнить строку, заключенную в обратные кавычки, как консольную команду, и вернет полученный вывод (т.е. он не просто выводится на экран, а, например, может быть присвоен переменной). Использование обратных кавычек аналогично использованию функции shell_exec().

<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>

Замечание:

Обратные кавычки недоступны, в случае, если включен безопасный режим или отключена функция shell_exec().

Замечание:

В отличие от некоторых других языков, обратные кавычки не будут работать внутри строк в двойных кавычках.

Ознакомьтесь также со следующими разделами документации: Функции для выполнения программ, popen() proc_open(), и Использование PHP в командной строке.


Операторы инкремента и декремента

PHP поддерживает префиксные и постфиксные операторы инкремента и декремента в стиле C.

Замечание: Операторы инкремента/декремента не влияют на булевы значения. Декремент NULL также не даст никакого эффекта, однако инкремент даст значение 1.

Операторы инкремента и декремента
Пример | Название | Действие
++$a | Префиксный инкремент | Увеличивает $a на единицу, затем возвращает значение $a.
$a++ | Постфиксный инкремент | Возвращает значение $a, затем увеличивает $a на единицу.
--$a | Префиксный декремент | Уменьшает $a на единицу, затем возвращает значение $a.
$a-- | Постфиксный декремент | Возвращает значение $a, затем уменьшает $a на единицу.

Приведем пример простого скрипта:

<?php
echo "<h3>Постфиксный инкремент</h3>";
$a = 5;
echo "Должно быть 5: " . $a++ . "<br />\n";
echo "Должно быть 6: " . $a . "<br />\n";

echo "<h3>Префиксный инкремент</h3>";
$a = 5;
echo "Должно быть 6: " . ++$a . "<br />\n";
echo "Должно быть 6: " . $a . "<br />\n";

echo "<h3>Постфиксный декремент</h3>";
$a = 5;
echo "Должно быть 5: " . $a-- . "<br />\n";
echo "Должно быть 4: " . $a . "<br />\n";

echo "<h3>Префиксный декремент</h3>";
$a = 5;
echo "Должно быть 4: " . --$a . "<br />\n";
echo "Должно быть 4: " . $a . "<br />\n";
?>

PHP следует соглашениям Perl (в отличие от С) касательно выполнения арифметических операций с символьными переменными. Например, в PHP и Perl $a = 'Z'; $a++; присвоит $a значение 'AA', в то время как в C a = 'Z'; a++; присвоит a значение '[' (ASCII значение 'Z' равно 90, а ASCII значение '[' равно 91). Следует учесть, что к символьным переменным можно применять операцию инкремента, в то время как операцию декремента применять нельзя, кроме того, поддерживаются только ASCII символы (a-z и A-Z). Попытка инкремента/декремента других символьных переменных не будет иметь никакого эффекта, исходная строка останется неизменной.

Пример #1 Арифметические операции с символьными переменными

<?php
echo '== Буквы ==' . PHP_EOL;
$s = 'W';
for ($n=0; $n<6; $n++) {
    echo ++$s . PHP_EOL;
}
// С цифрами несколько по другому
echo '== Цифры ==' . PHP_EOL;
$d = 'A8';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
$d = 'A08';
for ($n=0; $n<6; $n++) {
    echo ++$d . PHP_EOL;
}
?>

Результат выполнения данного примера:

== Буквы ==
X
Y
Z
AA
AB
AC
== Цифры ==
A9
B0
B1
B2
B3
B4
A09
A10
A11
A12
A13
A14

Инкрементирование или декрементирование булевых переменных не приводит ни к какому результату.


Логические операторы

Логические операторы
Пример | Название | Результат
$a and $b | И | TRUE если и $a, и $b TRUE.
$a or $b | Или | TRUE если или $a, или $b TRUE.
$a xor $b | Исключающее или | TRUE если $a, или $b TRUE, но не оба.
! $a | Отрицание | TRUE если $a не TRUE.
$a && $b | И | TRUE если и $a, и $b TRUE.
$a || $b | Или | TRUE если или $a, или $b TRUE.

Смысл двух разных вариантов для операторов "and" и "or" в том, что они работают с различными приоритетами (смотрите таблицу Приоритет выполнения операторов).

Пример #1 Объяснение логических операторов

<?php

// --------------------
// foo() никогда не буде вызвана, так как эти операторы являются шунтирующими (short-circuit)

$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());

// --------------------
// "||" имеет больший приоритет, чем "or"

// Результат выражения (false || true) присваивается переменной $e
// Действует как: ($e = (false || true))
$e = false || true;

// Константа false присваивается $f, а затем значение true игнорируется
// Действует как: (($f = false) or true)
$f = false or true;

var_dump($e, $f);

// --------------------
// "&&" имеет больший приоритет, чем "and"

// Результат выражения (true && false) присваивается переменной $g
// Действует как: ($g = (true && false))
$g = true && false;

// Константа true присваивается $h, а затем значение false игнорируется
// Действует как: (($h = true) and false)
$h = true and false;

var_dump($g, $h);
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)
bool(false)
bool(true)


Строковые операторы

В PHP есть два оператора для работы со строками (string). Первый - оператор конкатенации ('.'), который возвращает строку, представляющую собой соединение левого и правого аргумента. Второй - оператор присваивания с конкатенацией ('.='), который присоединяет правый аргумент к левому. Для получения более полной информации ознакомьтесь с разделом Операторы присваивания.

<?php
$a = "Hello ";
$b = $a . "World!"; // $b теперь содержит строку "Hello World!"

$a = "Hello ";
$a .= "World!";     // $a теперь содержит строку "Hello World!"
?>

Также ознакомьтесь с разделами документации Строки и Функции для работы со строками.


Операторы, работающие с массивами

Операторы, работающие с массивами
Пример | Название | Результат
$a + $b | Объединение | Объединение массива $a и массива $b.
$a == $b | Равно | TRUE в случае, если $a и $b содержат одни и те же пары ключ/значение.
$a === $b | Тождественно равно | TRUE в случае, если $a и $b содержат одни и те же пары ключ/значение в том же самом порядке и того же типа.
$a != $b | Не равно | TRUE, если массив $a не равен массиву $b.
$a <> $b | Не равно | TRUE, если массив $a не равен массиву $b.
$a !== $b | Тождественно не равно | TRUE, если массив $a не равен тождественно массиву $b.

Оператор + возвращает левый массив, к которому был присоединен правый массив. Для ключей, которые существуют в обоих массивах, будут использованы значения из левого массива, а соответствующие им элементы из правого массива будут проигнорированы.

<?php
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");

$c = $a + $b; // Объединение $a и $b
echo "Union of \$a and \$b: \n";
var_dump($c);

$c = $b + $a; // Объединение $b и $a
echo "Union of \$b and \$a: \n";
var_dump($c);

$a += $b; // Объединение $a += $b, это $a и $b
echo "Объединение of \$a += \$b: \n";
var_dump($a);
?>
После своего выполнения скрипт напечатает следующее:
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"
}

Объединение $a += $b:
array(3) {
  'a' =>
  string(5) "apple"
  'b' =>
  string(6) "banana"
  'c' =>
  string(6) "cherry"
}

При сравнении элементы массива считаются идентичными, если совпадает и ключ, и соответствующее ему значение.

Пример #1 Сравнение массивов

<?php
$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");

var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>

Также ознакомьтесь с разделами Массивы и Функции для работы с массивами.


Оператор проверки типа

Оператор instanceof используется для определения того, является ли текущий объект экземпляром указанного класса.

Пример #1 Использование instanceof с классами

<?php
class MyClass
{
}

class NotMyClass
{
}
$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Оператор instanceof также может быть использован для определения, наследует ли определенный объект какому-либо классу:

Пример #2 Использование instanceof с наследуемыми классами

<?php
class ParentClass
{
}

class MyClass extends ParentClass
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>

Результат выполнения данного примера:

bool(true)
bool(true)

Для проверки непринадлежности объекта некоторому классу, используйте логический оператор not.

Пример #3 Использование instanceof для проверки того, что объект не является экземпляром класса

<?php
class MyClass
{
}

$a = new MyClass;
var_dump(!($a instanceof stdClass));
?>

Результат выполнения данного примера:

bool(true)

Ну и наконец, instanceof может быть также использован для проверки реализации объектом некоторого интерфейса:

Пример #4 Использование instanceof для класса

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;

var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>

Результат выполнения данного примера:

bool(true)
bool(true)

Хотя instanceof обычно используется с прямо указанным именем класса, он также может быть использован с другим объектом или строковой переменной:

Пример #5 Использование instanceof с другими переменными

<?php
interface MyInterface
{
}

class MyClass implements MyInterface
{
}

$a = new MyClass;
$b = new MyClass;
$c = 'MyClass';
$d = 'NotMyClass';

var_dump($a instanceof $b); // $b это объект класса MyClass
var_dump($a instanceof $c); // $c это строка 'MyClass'
var_dump($a instanceof $d); // $d это строка 'NotMyClass'
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

Оператор instanceof не генерирует никаких ошибок, если проверяемая переменная не является объектом. В этом случае он просто возвращает FALSE. Константы, тем не менее, не допускаются.

Пример #6 Пример использования оператора instanceof для проверки других переменных

<?php
$a = 1;
$b = NULL;
$c = imagecreate(5, 5);
var_dump($a instanceof stdClass); // $a это целое типа integer
var_dump($b instanceof stdClass); // $b это NULL
var_dump($c instanceof stdClass); // $c это значение типа resource
var_dump(FALSE instanceof stdClass);
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(false)
PHP Fatal error:  instanceof expects an object instance, constant given

Есть несколько подводных камней, которых следует остерегаться. До версии PHP 5.1.0, instanceof вызывал __autoload() если имя класса не существовало. Вдобавок, если класс не был загружен, происходила фатальная ошибка. Это можно было обойти с помощью динамической ссылки на класс или использования строковой переменной с именем класса:

Пример #7 Избежание поиска класса и фатальных ошибок с instanceof в PHP 5.0

<?php
$d = 'NotMyClass';
var_dump($a instanceof $d); // нет фатальной ошибки
?>

Результат выполнения данного примера:

bool(false)

Оператор instanceof был добавлен в PHP 5. До этого времени использовалась функция is_a(), но позже is_a() была помечена устаревшей в пользу instanceof. Учтите, что с версии PHP 5.3.0, is_a() больше не является устаревшей.

Ознакомьтесь также с описанием функций get_class() и is_a().


Управляющие конструкции

Содержание

  • Введение
  • if
  • else
  • elseif/else if
  • Альтернативный синтаксис управляющих структур
  • while
  • do-while
  • for
  • foreach
  • break
  • continue
  • switch
  • declare
  • return
  • require
  • include
  • require_once
  • include_once
  • goto


Введение

Любой сценарий PHP состоит из последовательности инструкций. Инструкцией может быть присваивание, вызов функции, повтор кода (цикл), сравнение, или даже инструкция, которая ничего не делает (пустой оператор). После инструкции обычно ставится точка с запятой. Кроме того, инструкции могут быть объединены в блоки заключением их в фигурные скобки. Блок инструкций также сам по себе является инструкцией. В этом разделе описываются различные типы инструкций.


if

(PHP 4, PHP 5, PHP 7)

Конструкция if является одной из наиболее важных во многих языках программирования, в том числе и PHP. Она предоставляет возможность условного выполнения фрагментов кода. Структура if реализована в PHP по аналогии с языком C:

if (выражение)
  инструкция

Как описано в разделе про выражения, выражение вычисляется в булево значение. Если выражение принимает значение TRUE, PHP выполнит инструкцию, а если оно принимает значение FALSE - проигнорирует. Информацию о том, какие значения считаются равными значению FALSE, можно найти в разделе 'Преобразование в булев тип'.

Следующий пример выведет a больше b, если значение переменной $a больше, чем $b:

<?php
if ($a > $b)
  echo "a больше b";
?>

Часто необходимо, чтобы условно выполнялось более одной инструкции. Разумеется, для этого нет необходимости обворачивать каждую инструкцию в if. Вместо этого можно объединить несколько инструкций в блок. Например, следующий код выведет a больше b, если значение переменной $a больше, чем $b, и затем присвоит значение переменной $a переменной $b:

<?php
if ($a > $b) {
  echo "a больше b";
  $b = $a;
}
?>

Инструкции if могут быть бесконечно вложены в другие инструкции if, что даёт большую гибкость в организации условного выполнения различных частей программы.


else

(PHP 4, PHP 5, PHP 7)

Часто необходимо выполнить одно выражение, если определенное условие верно, и другое выражение, если условие не верно. Именно для этого else и используется. else расширяет оператор if, чтобы выполнить выражение, в случае если условие в операторе if равно FALSE. К примеру, следующий код выведет a больше чем b, если $a больше, чем $b, и a НЕ больше, чем b в противном случае:

<?php
if ($a > $b) {
  echo "a больше, чем b";
} else {
  echo "a НЕ больше, чем b";
}
?>
Выражение else выполняется только, если выражение if эквивалентно FALSE, и если нет других любых выражений elseif, или если они все равны FALSE также (смотри elseif).


elseif/else if

(PHP 4, PHP 5, PHP 7)

Конструкция elseif, как ее имя и говорит есть сочетание if и else. Аналогично else, она расширяет оператор if для выполнения различных выражений в случае, когда условие начального оператора if эквивалентно FALSE. Однако, в отличии от else, выполнение альтернативного выражения произойдет только тогда, когда условие оператора elseif будет являться равным TRUE. К примеру, следующий код может выводить a больше, чем b, a равно b или a меньше, чем b:

<?php
if ($a > $b) {
    echo "a больше, чем b";
} elseif ($a == $b) {
    echo "a равен b";
} else {
    echo "a меньше, чем b";
}
?>

Может быть несколько elseif в одном if выражении. Первое же выражение elseif (если будет хоть одно) равное TRUE будет выполнено. В PHP вы также можете написать 'else if' (в два слова), и тогда поведение будет идентичным 'elseif' (в одно слово). Синтаксически значение немного отличается (если Вы знакомы с языком С, это тоже самое поведение), но в конечном итоге оба выражения приведут к одному и тому же результату.

Выражение elseif выполнится, если предшествующее выражение if и предшествующие выражения elseif эквивалентны FALSE, а текущий elseif равен TRUE.

Замечание: Заметьте, что elseif и else if будут равнозначны только при использовании фигурных скобок, как в примерах выше. Если используются двоеточие для определения условий if/elseif, Вы не должны разделять else if в два слова, иначе это вызовет фатальную ошибку в PHP.

<?php

/* Некорректный способ: */
if($a > $b):
    echo $a." больше, чем ".$b;
else if($a == $b): // Не скомпилируется.
    echo "Строка выше вызывает фатальную ошибку.";
endif;

/* Корректный способ: */
if($a > $b):
    echo $a." больше, чем ".$b;
elseif($a == $b): // Заметьте, тут одно слово.
    echo $a." равно ".$b;
else:
    echo $a." не больше и не равно ".$b;
endif;

?>


Альтернативный синтаксис управляющих структур

(PHP 4, PHP 5, PHP 7)

PHP предлагает альтернативный синтаксис для некоторых его управляющих структур, а именно: if, while, for, foreach и switch. В каждом случае основной формой альтернативного синтаксиса является изменение открывающей фигурной скобки на двоеточие (:), а закрывающей скобки на endif;, endwhile;, endfor;, endforeach; или endswitch; соответственно.

<?php if ($a == 5): ?>
A равно 5
<?php endif; ?>

В приведенном выше примере, блок HTML "A равно 5" вложен внутрь структуры if написанной с альтернативным синтаксисом. HTML блок будет показан только если переменная $a равна 5.

Альтернативный синтаксис также применяется и к else и elseif. Ниже приведена структура if с elseif и else в альтернативном формате:

<?php
if ($a == 5):
    echo "a равно 5";
    echo "...";
elseif ($a == 6):
    echo "a равно 6";
    echo "!!!";
else:
    echo "a не равно ни 5 ни 6";
endif;
?>

Замечание:

Смешивание синтаксиса в одном и том же блоке управления не поддерживается.

Внимание

Любой вывод (включая пробельные символы) между выражением switch и первым case приведут к синтаксической ошибке. Например этот код не будет работать:

<?php switch ($foo): ?>
    <?php case 1: ?>
    ...
<?php endswitch ?>

В то же время следующий пример будет работать, так как завершающий перевод строки после выражения switch считается частью закрывающего ?> и следовательно ничего не выводится между switch и case:

<?php switch ($foo): ?>
<?php case 1: ?>
    ...
<?php endswitch ?>

Смотри также while, for, и if.


while

(PHP 4, PHP 5, PHP 7)

Циклы while являются простейшим видом циклов в PHP. Они ведут себя так же, как и их коллеги из языка C. Простейшей формой цикла while является следующее выражение:

while (expr)
    statement

Смысл выражения while очень прост. Оно указывает PHP выполнять вложенные выражения повторно до тех пор, пока выражение в самом while является TRUE. Значение выражения expr проверяется каждый раз перед началом цикла, поэтому даже если значение выражения изменится в процессе выполнения вложенных выражений в цикле, выполнение не прекратится до конца итерации (каждый раз, когда PHP выполняет выражения в цикле - это одна итерация). В том случае, если выражение while равно FALSE с самого начала, вложенные выражения ни разу не будут выполнены.

Также, как и с оператором if, вы можете группировать несколько выражений внутри одного цикла while, заключая эти выражения между фигурными скобками или используя альтернативный синтаксис:

while (expr):
    statement
    ...
endwhile;

Следующие примеры идентичны, и оба выведут числа от 1 до 10:

<?php
/* пример 1 */

$i = 1;
while ($i <= 10) {
    echo $i++;  /* выводится будет значение переменной
                   $i перед её увеличением
                   (post-increment) */
}

/* пример 2 */

$i = 1;
while ($i <= 10):
    echo $i;
    $i++;
endwhile;
?>


do-while

(PHP 4, PHP 5, PHP 7)

Цикл do-while очень похож на цикл while, с тем отличием, что истинность выражения проверяется в конце итерации, а не в начале. Главное отличие от обычного цикла while в том, что первая итерация цикла do-while гарантированно выполнится (истинность выражения проверяется в конце итерации), тогда как она может не выполниться в обычном цикле while (истинность выражения которого проверяется в начале выполнения каждой итерации, и если изначально имеет значение FALSE, то выполнение цикла будет прервано сразу).

Есть только один вариант синтаксиса цикла do-while:

<?php
$i = 0;
do {
    echo $i;
} while ($i > 0);
?>

В примере цикл будет выполнен ровно один раз, так как после первой итерации, когда проверяется истинность выражения, она будет вычислена как FALSE ($i не больше 0) и выполнение цикла прекратится.

Опытные пользователи С могут быть знакомы с другим использованием цикла do-while, которое позволяет остановить выполнение хода программы в середине блока, для этого нужно обернуть нужный блок кода вызовом do-while (0) и использовать break. Следующий фрагмент кода демонстрирует этот подход:

<?php
do {
    if ($i < 5) {
        echo "i еще недостаточно велико";
        break;
    }
    $i *= $factor;
    if ($i < $minimum_limit) {
        break;
    }
   echo "значение i уже подходит";

    /* обработка i */

} while (0);
?>

Не беспокойтесь, если вы не понимаете это сразу или вообще. Вы можете писать скрипты и даже мощные программы без использования этой 'возможности'. Начиная с версии PHP 5.3.0, стало возможным использовать оператор goto вместо подобного "хака".


for

(PHP 4, PHP 5, PHP 7)

Цикл for самый сложный цикл в PHP. Он ведет себя так же как его аналог в языке C. Синтаксис цикла for следующий:

for (expr1; expr2; expr3)
    statement

Первое выражение (expr1) всегда вычисляется (выполняется) только один раз в начале цикла.

В начале каждой итерации оценивается выражение expr2. Если оно принимает значение TRUE, то цикл продолжается, и вложенные операторы будут выполнены. Если оно принимает значение FALSE, выполнение цикла заканчивается.

В конце каждой итерации выражение expr3 вычисляется (выполняется ).

Каждое из выражений может быть пустым или содержать несколько выражений, разделенных запятыми. В expr2 все выражения, разделенные запятыми, вычисляются, но результат берется из последнего. Если выражение expr2 отсутствует, это означает, что цикл будет выполняться бесконечно. (PHP неявно воспринимает это значение как TRUE, так же, как в языке C). Это может быть не столь бесполезно, сколь вы могли подумать, так как часто необходимо прервать цикл, используя условный оператор break вместо использования выражения в цикле for, которое принимает истинное значение.

Рассмотрим следующие примеры. Все из них отображают числа от 1 до 10:

<?php
/* пример 1 */

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}

/* пример 2 */

for ($i = 1; ; $i++) {
    if ($i > 10) {
        break;
    }
    echo $i;
}

/* пример 3 */

$i = 1;
for (; ; ) {
    if ($i > 10) {
        break;
    }
    echo $i;
    $i++;
}

/* пример 4 */

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>

Конечно, первый пример кажется самым хорошим (или, возможно, четвертый), но вы можете обнаружить, что возможность использовать пустые выражения в циклах for может стать удобной во многих случаях.

PHP также поддерживает альтернативный синтаксис с двоеточием для циклов for.

for (expr1; expr2; expr3):
    statement
    ...
endfor;

Перебор массивов как показано ниже - это обычное дело для многих пользователей.

<?php
/*
 * Это массив с некоторыми данными, которые мы хотим изменить
 * при работе цикла.
 */
$people = array(
    array('name' => 'Kalle', 'salt' => 856412),
    array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0; $i < count($people); ++$i) {
    $people[$i]['salt'] = mt_rand(000000, 999999);
}
?>

Вышеприведенный код может работать медленно, так как размер массива вычисляется в каждой итерации. Поскольку размер не меняется, цикл может быть легко оптимизирован с помощью промежуточной переменной, в которую будет записан размер массива, вместо повторяющихся вызовов функции count():

<?php
$people = array(
    array('name' => 'Kalle', 'salt' => 856412),
    array('name' => 'Pierre', 'salt' => 215863)
);

for($i = 0, $size = count($people); $i < $size; ++$i) {
    $people[$i]['salt'] = mt_rand(000000, 999999);
}
?>


foreach

(PHP 4, PHP 5, PHP 7)

Конструкция foreach предоставляет простой способ перебора массивов. Foreach работает только с массивами и объектами, и будет генерировать ошибку при попытке использования с переменными других типов или неинициализированными переменными. Существует два вида синтаксиса:

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

Первый цикл перебирает массив, задаваемый с помощью array_expression. На каждой итерации значение текущего элемента присваивается переменной $value и внутренний указатель массива увеличивается на единицу (таким образом, на следующей итерации цикла работа будет происходить со следующим элементом).

Второй цикл будет дополнительно соотносить ключ текущего элемента с переменной $key на каждой итерации.

Возможно настроить итераторы объектов.

Замечание:

В PHP 5, когда оператор foreach начинает исполнение, внутренний указатель массива автоматически устанавливается на первый его элемент Это означает, что нет необходимости вызывать функцию reset() перед использованием цикла foreach.

Так как в PHP 5 оператор foreach опирается на внутренний указатель массива, его изменение внутри цикла может привести к непредсказуемому поведению.

В PHP 7, foreach не использует внутренний указатель массива.

Для того, чтобы напрямую изменять элементы массива внутри цикла, переменной $value должен предшествовать знак &. В этом случае значение будет присвоено по ссылке.

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// массив $arr сейчас таков: array(2, 4, 6, 8)
unset($value); // разорвать ссылку на последний элемент
?>

Внимание

Ссылка $value на последний элемент массива останется после окончания цикла foreach. Рекомендуется уничтожать ее с помощью unset(). В противном случае вы можете столкнуться с таким поведением:

<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr = array(2, 4, 6, 8)

// Без unset($value), $value все еще ссылается на последний элемент: $arr[3]

foreach ($arr as $key => $value) {
    // $arr[3] будет перезаписываться значениями $arr при каждой итерации цикла
    echo "{$key} => {$value} ";
    print_r($arr);
}
// ...И в конце концов предпоследнее значение определит окончательное содержимое $arr[3]

// вывод:
// 0 => 2 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 2 )
// 1 => 4 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 4 )
// 2 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
// 3 => 6 Array ( [0] => 2, [1] => 4, [2] => 6, [3] => 6 )
?>

До PHP 5.5.0, указатель на $value возможен, только если на перебираемый массив можно ссылаться (т.е. если он является переменной). Следующий код не будет работать:

<?php
foreach (array(1, 2, 3, 4) as &$value) {
    $value = $value * 2;
}
?>

Замечание:

Оператор foreach не поддерживает возможность подавления сообщений об ошибках с помощью префикса '@'.

Вы могли заметить, что следующие конструкции функционально идентичны:

<?php
$arr = array("one", "two", "three");
reset($arr);
while (list(, $value) = each($arr)) {
    echo "Значение: $value<br />\n";
}

foreach ($arr as $value) {
    echo "Значение: $value<br />\n";
}
?>

Следующие конструкции также функционально идентичны:

<?php
$arr = array("one", "two", "three");
reset($arr);
while (list($key, $value) = each($arr)) {
    echo "Ключ: $key; Значение: $value<br />\n";
}

foreach ($arr as $key => $value) {
    echo "Ключ: $key; Значение: $value<br />\n";
}
?>

Вот еще несколько примеров, демонстрирующие использование оператора:

<?php
/* Пример 1: только значение */

$a = array(1, 2, 3, 17);

foreach ($a as $v) {
    echo "Текущее значение переменной \$a: $v.\n";
}

/* Пример 2: значение (для иллюстрации массив выводится в виде значения с ключем) */

$a = array(1, 2, 3, 17);

$i = 0; /* только для пояснения */

foreach ($a as $v) {
    echo "\$a[$i] => $v.\n";
    $i++;
}

/* Пример 3: ключ и значение */

$a = array(
    "one" => 1,
    "two" => 2,
    "three" => 3,
    "seventeen" => 17
);

foreach ($a as $k => $v) {
    echo "\$a[$k] => $v.\n";
}

/* Пример 4: многомерные массивы */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {
    foreach ($v1 as $v2) {
        echo "$v2\n";
    }
}

/* Пример 5: динамические массивы */

foreach (array(1, 2, 3, 4, 5) as $v) {
    echo "$v\n";
}
?>

Распаковка вложенных массивов с помощью list()

(PHP 5 >= 5.5.0, PHP 7)

В PHP 5.5 была добавлена возможность обхода массива массивов с распаковкой вложенного массива в переменные цикла, передав list() в качестве значения.

Например:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b)) {
    // $a содержит первый элемент вложенного массива,
    // а $b содержит второй элемент.
    echo "A: $a; B: $b\n";
}
?>

Результат выполнения данного примера:

A: 1; B: 2
A: 3; B: 4

Можно передавать меньшее количество элементов в list(), чем находится во вложенном массиве, в этом случае оставшиеся значения массива будут проигнорированы:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a)) {
    // Обратите внимание на отсутствие $b.
    echo "$a\n";
}
?>

Результат выполнения данного примера:

1
3

Если массив содержит недостаточно элементов для заполнения всех переменных из list(), то будет сгенерировано замечание об ошибке:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b, $c)) {
    echo "A: $a; B: $b; C: $c\n";
}
?>

Результат выполнения данного примера:

Notice: Undefined offset: 2 in example.php on line 7
A: 1; B: 2; C:

Notice: Undefined offset: 2 in example.php on line 7
A: 3; B: 4; C:

Список изменений

Версия | Описание
7.0.0 | foreach больше не использует внутренний указатель массива.
5.5.0 | Поддержка ссылки $value для выражений. ранее можно было ссылаться только на переменные.
5.5.0 | Поддержка распаковки вложенных массивов с помощью list().


break

(PHP 4, PHP 5, PHP 7)

break прерывает выполнение текущей структуры for, foreach, while, do-while или switch.

break принимает необязательный числовой аргумент, который сообщает ему выполнение какого количества вложенных структур необходимо прервать. Значение по умолчанию 1, только ближайшая структура будет прервана.

<?php
$arr = array('один', 'два', 'три', 'четыре', 'стоп', 'пять');
while (list(, $val) = each($arr)) {
    if ($val == 'стоп') {
        break;    /* Тут можно было написать 'break 1;'. */
    }
    echo "$val<br />\n";
}

/* Использование дополнительного аргумента. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "Итерация 5<br />\n";
        break 1;  /* Выйти только из конструкции switch. */
    case 10:
        echo "Итерация 10; выходим<br />\n";
        break 2;  /* Выходим из конструкции switch и из цикла while. */
    default:
        break;
    }
}
?>

История изменений break
Версия | Описание
5.4.0 | break 0; больше не допускается. В предыдущих версиях это воспринималось точно также как и break 1;.
5.4.0 | Удалена возможность передачи переменных (например, $num = 2; break $num;) в виде числового аргумента.


continue

(PHP 4, PHP 5, PHP 7)

continue используется внутри циклических структур для пропуска оставшейся части текущей итерации цикла и, при соблюдении условий, начала следующей итерации.

Замечание: В PHP, структура switch считается циклической, и внутри нее может использоваться continue. Если continue не передано аргументов, то он ведет себя аналогично break. Если switch расположен внутри цикла, continue 2 продолжит выполение внешнего цикла со следующей итерации.

continue принимает необязательный числовой аргумент, который указывает на скольких уровнях вложенных циклов будет пропущена оставшаяся часть итерации. Значением по умолчанию является 1, при которой пропускается оставшаяся часть текущего цикла.

<?php
while (list($key, $value) = each($arr)) {
    if (!($key % 2)) { // пропуск четных чисел
        continue;
    }
    do_something_odd($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Снаружи<br />\n";
    while (1) {
        echo "В середине<br />\n";
        while (1) {
            echo "Внутри<br />\n";
            continue 3;
        }
        echo "Это никогда не будет выведено.<br />\n";
    }
    echo "Это тоже.<br />\n";
}
?>

Пропуск точки запятой после continue может привести к путанице. Пример как не надо делать.

<?php
for ($i = 0; $i < 5; ++$i) {
    if ($i == 2)
        continue
    print "$i\n";
}
?>

Ожидается, что результат будет такой:

0
1
3
4

Но, в PHP до версии 5.4.0, этот скрипт выведет следующее:

2

Потому что выражение continue print "$i\n"; воспринимается как единое выражение, и print вызывается только тогда, когда выражение $i == 2 истинно. (Возвращаемое значение от print передается к continue как числовой аргумент.)

Замечание:

Начиная с PHP 5.4.0, вышеприведенный пример вызовет ошибку E_COMPILE_ERROR.

Изменения, касающиеся оператора continue
Версия | Описание
5.4.0 | continue 0; больше не допускается. В предыдущих версиях это воспринималось точно также как и continue 1;.
5.4.0 | Убрана возможность задавать переменную (например, $num = 2; continue $num;) в качестве числового аргумента.


switch

(PHP 4, PHP 5, PHP 7)

Оператор switch подобен серии операторов IF с одинаковым условием. Во многих случаях вам может понадобиться сравнивать одну и ту же переменную (или выражение) с множеством различных значений, и выполнять различные участки кода в зависимости от того, какое значение принимает эта переменная (или выражение). Это именно тот случай, для которого удобен оператор switch.

Замечание: Обратите внимание, что в отличие от некоторых других языков, оператор continue применяется в конструкциях switch и действует подобно оператору break. Если у вас конструкция switch находится внутри цикла, и вам необходимо перейти к следующей итерации цикла, используйте continue 2.

Замечание:

Заметьте, что конструкция switch/case использует неточное сравнение (==).

Список изменений
Версия | Описание
7.0.0 | Наличие нескольких операторов default вызывает исключение E_COMPILE_ERROR.

Следующие два примера иллюстрируют два различных способа написать то же самое. Один использует серию операторов if и elseif, а другой -- оператор switch:

Пример #1 Оператор switch

<?php
if ($i == 0) {
    echo "i равно 0";
} elseif ($i == 1) {
    echo "i равно 1";
} elseif ($i == 2) {
    echo "i равно 2";
}

switch ($i) {
    case 0:
        echo "i равно 0";
        break;
    case 1:
        echo "i равно 1";
        break;
    case 2:
        echo "i равно 2";
        break;
}
?>

Пример #2 Оператор switch допускает сравнение с типом string

<?php
switch ($i) {
    case "яблоко":
        echo "i это яблоко";
        break;
    case "шоколадка":
        echo "i это шоколадка";
        break;
    case "пирог":
        echo "i это пирог";
        break;
}
?>

Важно понять, как оператор switch выполняется, чтобы избежать ошибок. Оператор switch исполняет строчка за строчкой (на самом деле выражение за выражением). В начале никакой код не исполняется. Только в случае нахождения оператора case, значение которого совпадает со значением выражения в операторе switch, PHP начинает исполнять операторы. PHP продолжает исполнять операторы до конца блока switch либо до тех пор, пока не встретит оператор break. Если вы не напишете оператор break в конце секции case, PHP будет продолжать исполнять команды следующей секции case. Например :

<?php
switch ($i) {
    case 0:
        echo "i равно 0";
    case 1:
        echo "i равно 1";
    case 2:
        echo "i равно 2";
}
?>

В этом примере, если $i равно 0, то PHP исполнит все операторы echo! Если $i равно 1, PHP исполнит два последних оператора echo. Вы получите ожидаемое поведение оператора ('i равно 2' будет отображено) только, если $i будет равно 2. Таким образом, важно не забывать об операторах break (даже если вы, возможно, хотите избежать его использования по назначению при определенных обстоятельствах).

В операторе switch выражение вычисляется один раз и этот результат сравнивается с каждым оператором case. В выражении elseif, выражение вычисляется снова. Если ваше условие более сложное, чем простое сравнение и/или находится в цикле, конструкция switch может работать быстрее.

Список операторов для исполнения в секции case также может быть пустым, что просто передает управление списку операторов в следующей секции case.

<?php
switch ($i) {
case 0:
case 1:
case 2:
    echo "i меньше чем 3, но неотрицательно";
    break;
case 3:
    echo "i равно 3";
}
?>

Специальный вид конструкции case -- default. Сюда управление попадает тогда, когда не сработал ни один из других операторов case. Например:

<?php
switch ($i) {
    case 0:
        echo "i равно 0";
        break;
    case 1:
        echo "i равно 1";
        break;
    case 2:
        echo "i равно 2";
        break;
    default:
       echo "i не равно 0, 1 или 2";
}
?>

Возможен альтернативный синтаксис для управляющей структуры switch. Для более детальной информации, см. Альтернативный синтаксис для управляющих структур.

<?php
switch ($i):
    case 0:
        echo "i равно 0";
        break;
    case 1:
        echo "i равно 1";
        break;
    case 2:
        echo "i равно 2";
        break;
    default:
        echo "i не равно to 0, 1 или 2";
endswitch;
?>

Возможно использование точки с запятой вместо двоеточия после оператора case. К примеру :

<?php
switch($beer)
{
    case 'tuborg';
    case 'carlsberg';
    case 'heineken';
        echo 'Хороший выбор';
    break;
    default;
        echo 'Пожалуйста, сделайте новый выбор...';
    break;
}
?>


declare

(PHP 4, PHP 5, PHP 7)

Конструкция declare используется для установки директив исполнения для блока кода. Синтаксис declare схож с синтаксисом других конструкций управления исполнением:

declare (directive)
    statement

Секция directive позволяет установить поведение блока declare. В настоящее время распознаются только три директивы: директива ticks (Дополнительная информация о директиве ticks доступна ниже), директива encoding (Дополнительная информация о директиве encoding доступна ниже) и директива strict_types (подробности тут strict)

Версия | Описание
5.3.0 | Добавлена директива encoding
7.0.0 | Добавлена директива 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);
}

?>

Пример #2 Пример использования тиков

<?php

function tick_handler()
{
  echo "tick_handler() called\n";
}

$a = 1;
tick_handler();

if ($a > 0) {
    $a += 2;
    tick_handler();
    print($a);
    tick_handler();
}
tick_handler();

?>

См. также register_tick_function() и unregister_tick_function().

Кодировка

Кодировка скрипта может быть указана для каждого скрипта используя директиву encoding.

Пример #3 Определение кодировки для скрипта.

<?php
declare(encoding='ISO-8859-1');
// прочий код
?>

Предостережение

Скомбинированный с пространством имен, единственно допустимый синтаксис для declare является declare(encoding='...'); где ... это значение кодировки. declare(encoding='...') {} приведет к ошибке парсера, если используется вместе с пространством имен.

Значение кодировки в declare игнорируется в PHP 5.3 если php не скомпилирован с --enable-zend-multibyte.

Имейте в виду, что PHP не может показать был ли он скомпилирован с --enable-zend-multibyte иначе как с помощью phpinfo().

Смотрите также zend.script_encoding.


return

(PHP 4, PHP 5, PHP 7)

return возвращает управление программой модулю, из которого была вызвана функция. Выполнение программы продолжается с инструкции, следующей за местом вызова.

Если вызвано из функции, выражение return немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции. return также завершит выполнение выражения eval() или всего файла скрипта.

Если вызывается из глобальной области видимости, выполнение текущего файла скрипта прекращается. Если текущий файл скрипта был подключен с помощью функций include или require, тогда управление возвращается к файлу, который вызывал текущий. Более того, если текущий файл скрипта был подключен с помощью include, тогда значение переданное return будет возвращено в качестве значения вызова include. Если return вызывается из главного файла скрипта, тогда выполнение скрипта прекращается. Если текущий файл скрипта был вызван конфигурационными опциями auto_prepend_file или auto_append_file из файла настроек php.ini, тогда выполнение этого скрипта прекращается.

Для более детальной информации смотрите раздел Возвращаемые значения.

Замечание: Заметьте, что так как return является языковой конструкцией, а не функцией, круглые скобки, окружающие аргументы, не являются необходимостью. Общепринято не использовать их в данном случае и, в принципе, так и надо делать, т.к. PHP будет меньше работы по синтаксическому разбору файла в данном случае.

Замечание: Если параметры не указаны, тогда круглые скобки должны быть опущены, и вернется значение NULL. Вызов return со скобками, но без аргументов вызовет синтаксическую ошибку.

Замечание: Вы не должны использовать скобки при возврате переменной, если возвращаете по ссылке, так как это не сработает. Вы можете вернуть только переменную по ссылке, а не результат выражения. Если вы используете return ($a);, тогда вы вернете не переменную, а результат выражения ($a) (который, естественно, будет являться значением переменной $a).


require

(PHP 4, PHP 5, PHP 7)

require идентично include за исключением того, что при ошибке оно также выдаст фатальную ошибку уровня E_COMPILE_ERROR. Другими словами, она остановит выполнение скрипта, тогда как include только выдала бы предупреждение E_WARNING, которое позволило бы скрипту продолжить выполнение.

Смотрите документацию по include, чтобы узнать как это работает.


include

(PHP 4, PHP 5, PHP 7)

Выражение include включает и выполняет указанный файл.

Документация ниже также относится к выражению require.

Файлы включаются исходя из пути указанного файла, или, если путь не указан, используется путь, указанный в директиве include_path. Если файл не найден в include_path, include попытается проверить директорию, в которой находится текущий включающий скрипт и текущую рабочую директорию перед тем, как выдать ошибку. Конструкция include выдаст warning, если не сможет найти файл; поведение отлично от require, который выдаст фатальную ошибку.

Если путь указан — не важно, абсолютный (начинающийся с буквы диска или с \ в Windows или с / в Unix/Linux системах) или относительно текущей директории (начинающийся с . или ..) — директива include_path будет проигнорирована в любом случае. К примеру, если начинается с ../, парсер проверит родительскую директорию на наличие запрошенного файла.

Для большей информации о том, как PHP обрабатывает включаемые файлы и включаемые пути, смотрите документацию для директивы include_path.

Когда файл включается, его код наследует ту же область видимости переменых, что и строка, на которой произошло включение. Все переменные, доступные на этой строке во включающем файле будут также доступны во включаемом файле. Однако все функции и классы, объявленные во включаемом файле, будут доступны в глобальной области видимости.

Пример #1 Простой пример include

vars.php
<?php

$color = 'green';
$fruit = 'apple';

?>

test.php
<?php

echo "A $color $fruit"; // A

include 'vars.php';

echo "A $color $fruit"; // A green apple

?>

Если включение происходит внутри функции включающего файла, тогда весь код, содержащийся во включаемом файле, будет вести себя так, как будто он был определен внутри этой функции. То есть, он будет в той же области видимости переменных этой функции. Исключением к этому правилу являются магические константы, которые выполняются парсером перед тем, как происходит включение.

Пример #2 Включение внутри функции

<?php

function foo()
{
    global $color;

    include 'vars.php';

    echo "A $color $fruit";
}

/* vars.php в той же области видимости, что и foo(),  *
* поэтому $fruit НЕ доступен снаружи этой области     *
* $color доступен, поскольку мы переменную глобальной */

foo();                    // A green apple
echo "A $color $fruit";   // A green

?>

Когда файл включается, парсинг в режиме PHP кода прекращается и переключается в режим HTML в начале указанного файла и продолжается снова в конце. По этой причине любой код внутри включаемого файла, который должен быть выполнен как PHP код, должен быть заключен в верные теги начала и конца PHP кода.

Если "обертки URL include" включены в PHP, вы можете также указать файл для включения через URL (с помощью HTTP или других поддерживающихся обработчиков - смотри Поддерживаемые протоколы и обработчики (wrappers) для списка протоколов) вместо локального пути. Если целевой сервер интерпретирует указанный файл как PHP код, могут быть переданы переменные во включаемый файл с помощью строки URL-запроса, как если бы использовался метод HTTP GET. Это, строго говоря, не тоже самое, что включение файла и наследование родительской области видимости; скрипт выполняется на удаленном сервере и результат выполнения включается в локальный скрипт.

Пример #3 Пример include через HTTP

<?php

/* В этом примере предполагается, что www.example.com настроен на обработку .php
* файлов, но не .txt. Также, 'Works' обозначает, что переменные
* $foo и $bar доступны внутри включаемого файла. */

// Не сработает; file.txt не обрабатывается www.example.com как PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';

// Не сработает; будет искаать файл 'file.php?foo=1&bar=2' в
// локальной файловой системе.
include 'file.php?foo=1&bar=2';

// Сработает.
include 'http://www.example.com/file.php?foo=1&bar=2';

$foo = 1;
$bar = 2;
include 'file.txt';  // Сработает.
include 'file.php';  // Сработает.

?>

Внимание

Предупреждение безопасности

Удаленные файлы могут быть обработаны на удаленной стороне (в зависимости от расширения файла и того, что удаленный сервер выполняет скрипты PHP или нет), но это все равно должно производить валидный PHP скрипт, потому что он будет затем обработан уже на локальном сервере. Если файл с удаленного сервера должен быть обработан там и выведен его результат, предпочтительнее воспользоваться функцией readfile() В противном случае, должны быть предусмотрены дополнительные меры, чтобы обезопасить удаленный скрипт от ошибок и нежелательного кода.

Смотрите также раздел Удаленные файлы, функции fopen() и file() для дополнительной информации.

Обработка возвращаемых значений: оператор include возвращает значение FALSE при ошибке и выдает предупреждение. Успешные включения, пока это не переопределено во включаемом файле, возвращают значение 1. Возможно выполнить выражение return внутри включаемого файла, чтобы завершить процесс выполнения в этом файле и вернуться к выполнению включающего файла. Также, возможно вернуть значение из включаемых файлов. Вы можете получить значение включения как если бы вы вызвали обычную функцию. Хотя это не возможно при включении удаленного файла, только если вывод удаленного файла не содержит правильные теги начала и конца PHP кода (так же, как и локальный файл). Вы можете определить необходимые переменные внутри этих тегов и они будут представлены в том месте, где файл был включен.

Так как include - это специальная языковая конструкция, круглые скобки не обязательны для заключения аргумента. Будьте осторожны при сравнении возвращаемого значения.

Пример #4 Сравнение возвращаемого значения при include

<?php
// не сработает, интерпретируется как include(('vars.php') ==TRUE), т.е. include('')
if (include('vars.php') == TRUE) {
    echo 'OK';
}

// сработает
if ((include 'vars.php') == TRUE) {
    echo 'OK';
}
?>

Пример #5 Выражения include и return

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // выведет 'PHP'

$bar = include 'noreturn.php';

echo $bar; // выведет 1

?>

$bar имеет значение 1, т.к. включение файла произошло успешно. Заметьте разницу между примерами сверху. Первый использует return внутри включаемого файла, тогда как второй не использует. Если файл не может быть включен, возвращается FALSE и возникает E_WARNING.

Если во включаемом файле определены функции, они могут быыть использованы в главном файле вне зависимости от того, были ли они объявлены до return или после. Если файл включается дважды, PHP 5 выдаст фатальную ошибку, потому что функции уже были определены, в то время как PHP 4 не обратил бы внимания на функции, определенные после return. Рекомендуется использовать include_once вместо того, чтобы проверять был ли уже файл включен ранее.

Другой путь "включить" PHP файл в переменную - это захватить вывод используя Функции контроля вывода с include. К примеру:

Пример #6 Использование буферизинованного вывода для включения PHP файла в строку

<?php
$string = get_include_contents('somefile.php');

function get_include_contents($filename) {
    if (is_file($filename)) {
        ob_start();
        include $filename;
        return ob_get_clean();
    }
    return false;
}

?>

Для того, чтобы включать файлы автоматически в скрипты, обратите внимание на конфигурационные директивы auto_prepend_file и auto_append_file в php.ini.

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Смотрите также require, require_once, include_once, get_included_files(), readfile(), virtual() и include_path.


require_once

(PHP 4, PHP 5, PHP 7)

Выражение require_once идентично require за исключением того, что PHP проверит, включался ли уже данный файл, и, если да, не будет включать его еще раз.

Смотри документацию include_once для информации по поведению _once, и чем она отличается от своих не-_once родственников.


include_once

(PHP 4, PHP 5, PHP 7)

Выражение include_once включает и выполняет указанный файл во время выполнения скрипта. Его поведение идентично выражению include, с той лишь разницей, что если код из файла уже один раз был включен, он не будет включен и выполнен повторно и вернёт TRUE. Как видно из имени, он включит файл только один раз (include once).

include_once может использоваться в тех случаях, когда один и тот же файл может быть включен и выполнен более одного раза во время выполнения скрипта, в данном случае это поможет избежать проблем с переопределением функций, переменных и т.д.

Смотри документацию по include для информации как эта функция работает.

Замечание:

В PHP 4, функциональность _once отличалась в регистронезависимых операционных системах (таких как Windows), к примеру:

Пример #1 Пример include_once в регистронезависимых ОС для PHP 4

<?php
include_once "a.php"; // это подключит a.php
include_once "A.php"; // это подключит a.php снова! (только в PHP 4)
?>

Это поведение изменилось в PHP 5. К примеру, пути в Windows в начале нормализуются так, чтобы C:\PROGRA~1\A.php обозначало тоже самое, что и C:\Program Files\a.php, и файл подключался лишь один раз.


goto

(PHP 5 >= 5.3.0, PHP 7)

Что наихудшее может случиться, если используется goto ?
Изображение предоставлено » xkcd

Оператор goto используется для перехода в другую часть программы. Место, куда необходимо перейти указывается с помощью метки, за которой ставится двоеточие, после оператора goto указывается желаемая метка для перехода. Оператор не является неограниченным "goto". Целевая метка должна находиться в том же файле, в том же контексте. Имеется ввиду, что вы не можете ни перейти за границы функции или метода, ни перейти внутрь одной из них. Вы также не можете перейти внутрь любой циклической структуры или оператора switch. Но вы можете выйти из них, и обычным применением оператора goto является использование его вместо многоуровневых break.

Пример #1 Пример использования goto

<?php
goto a;
echo 'Foo';

a:
echo 'Bar';
?>

Результат выполнения данного примера:

Bar

Пример #2 Пример использования goto в цикле

<?php
for($i=0,$j=50; $i<100; $i++) {
  while($j--) {
    if($j==17) goto end;
  }
}
echo "i = $i";
end:
echo 'j hit 17';
?>

Результат выполнения данного примера:

j hit 17

Пример #3 Следующий пример работать не будет

<?php
goto loop;
for($i=0,$j=50; $i<100; $i++) {
  while($j--) {
    loop:
  }
}
echo "$i = $i";
?>

Результат выполнения данного примера:

Fatal error: 'goto' into loop or switch statement is disallowed in
script on line 2

Замечание:

Оператор goto доступен в PHP начиная с версии 5.3.


Функции

Содержание

  • Функции, определяемые пользователем
  • Аргументы функции
  • Возврат значений
  • Обращение к функциям через переменные
  • Встроенные функции
  • Анонимные функции


Функции, определяемые пользователем

Приведем пример синтаксиса, используемого для описания функций:

Пример #1 Псевдокод для демонстрации использования функций

<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Example function.\n";
    return $retval;
}
?>

Внутри функции можно использовать любой корректный PHP-код, в том числе другие функции и даже объявления классов.

Имена функций следуют тем же правилам, что и другие метки в PHP. Корректное имя функции начинается с буквы или знака подчеркивания, за которым следует любое количество букв, цифр или знаков подчеркивания. В качестве регулярного выражения оно может быть выражено так: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.

Подсказка

Смотрите также Руководство по именованию.

Функции не обязаны быть определены до их использования, исключая тот случай, когда функции определяются условно, как это показано в двух последующих примерах.

В случае, когда функция определяется в зависимости от какого-либо условия, например, как это показано в двух приведенных ниже примерах, обработка описания функции должна предшествовать ее вызову.

Пример #2 Функции, зависящие от условий

<?php

$makefoo = true;

/* Мы не можем вызвать функцию foo() в этом месте,
   поскольку она еще не определена, но мы можем
   обратиться к bar() */

bar();

if ($makefoo) {
  function foo()
  {
    echo "Я не существую до тех пор, пока выполнение программы меня не достигнет.\n";
  }
}

/* Теперь мы благополучно можем вызывать foo(),
   поскольку $makefoo была интерпретирована как true */

if ($makefoo) foo();

function bar()
{
  echo "Я существую сразу с начала старта программы.\n";
}

?>

Пример #3 Вложенные функции

<?php
function foo()
{
  function bar()
  {
    echo "Я не существую пока не будет вызвана foo().\n";
  }
}

/* Мы пока не можем обратиться к bar(),
   поскольку она еще не определена. */

foo();

/* Теперь мы можем вызвать функцию bar(),
   обработка foo() сделала ее доступной. */

bar();

?>

Все функции и классы PHP имеют глобальную область видимости - они могут быть вызваны вне функции, даже если были определены внутри и наоборот.

PHP не поддерживает перегрузку функции, также отсутствует возможность переопределить или удалить объявленную ранее функцию.

Замечание: Имена функций регистронезависимы, тем не менее, более предпочтительно вызывать функции так, как они были объявлены.

Функции PHP поддерживают как списки аргументов переменной длины, так и значения аргументов по умолчанию. Смотрите также описания функций func_num_args(), func_get_arg(), и func_get_args() для более детальной информации.

Можно вызывать функции PHP рекурсивно.

Пример #4 Рекурсивные функции

<?php
function recursion($a)
{
    if ($a < 20) {
        echo "$a\n";
        recursion($a + 1);
    }
}
?>

Замечание: Рекурсивный вызов методов/процедур с глубиной более 100-200 уровней рекурсии может вызвать переполнение стека и привести к аварийному завершению скрипта. В частности, бесконечная рекурсия будет считаться программной ошибкой.


Аргументы функции

Функция может принимать информацию в виде списка аргументов, который является списком разделенных запятыми выражений. Аргументы вычисляются слева направо.

PHP поддерживает передачу аргументов по значению (по умолчанию), передачу аргументов по ссылке, и значения по умолчанию. Списки аргументов переменной длины также поддерживаются, смотрите также описания функций func_num_args(), func_get_arg() и func_get_args() для более детальной информации.

Пример #1 Передача массива в функцию

<?php
function takes_array($input)
{
    echo "$input[0] + $input[1] = ", $input[0]+$input[1];
}
?>

Передача аргументов по ссылке

По умолчанию аргументы в функцию передаются по значению (это означает, что если вы измените значение аргумента внутри функции, то вне ее значение все равно останется прежним). Если вы хотите разрешить функции модифицировать свои аргументы, вы должны передавать их по ссылке.

Если вы хотите, что бы аргумент всегда передавался по ссылке, вы можете указать амперсанд (&) перед именем аргумента в описании функции:

Пример #2 Передача аргументов по ссылке

<?php
function add_some_extra(&$string)
{
    $string .= 'и кое-что еще.';
}
$str = 'Это строка, ';
add_some_extra($str);
echo $str;    // выведет 'Это строка, и кое-что еще.'
?>

Значения аргументов по умолчанию

Функция может определять значения по умолчанию в стиле C++ для скалярных аргументов, например:

Пример #3 Использование значений по умолчанию в определении функции

<?php
function makecoffee($type = "капуччино")
{
    return "Готовим чашку $type.\n";
}
echo makecoffee();
echo makecoffee(null);
echo makecoffee("эспрессо");
?>

Результат выполнения данного примера:

Готовим чашку капуччино.
Готовим чашку .
Готовим чашку эспрессо.

PHP также позволяет использовать массивы (array) и специальный тип NULL в качестве значений по умолчанию, например:

Пример #4 Использование нескалярных типов в качестве значений по умолчанию

<?php
function makecoffee($types = array("капуччино"), $coffeeMaker = NULL)
{
    $device = is_null($coffeeMaker) ? "вручную" : $coffeeMaker;
    return "Готовлю чашку ".join(", ", $types)." $device.\n";
}
echo makecoffee();
echo makecoffee(array("капуччино", "лавацца"), "в чайнике");
?>

Значение по умолчанию должно быть константным выражением, а не (к примеру) переменной или вызовом функции/метода класса.

Обратите внимание, что все аргументы, для которых установлены значения по умолчанию, должны находиться правее аргументов, для которых значения по умолчанию не заданы, в противном случае ваш код может работать не так, как вы этого ожидаете. Рассмотрим следующий пример:

Пример #5 Некорректное использование значений по умолчанию

<?php
function makeyogurt($type = "ацидофил", $flavour)
{
    return "Готовим чашку из бактерий $type со вкусом $flavour.\n";
}

echo makeyogurt("малины");   // Не будет работать так, как мы могли бы ожидать
?>

Результат выполнения данного примера:

Warning: Missing argument 2 in call to makeyogurt() in
/usr/local/etc/httpd/htdocs/phptest/functest.html on line 41
Готовим чашку из бактерий малины со вкусом .

Теперь сравним его со следующим примером:

Пример #6 Корректное использование значений по умолчанию

<?php
function makeyogurt($flavour, $type = "ацидофил")
{
    return "Готовим чашку из бактерий $type со вкусом $flavour.\n";
}

echo makeyogurt("малины");   // отрабатывает правильно
?>

Результат выполнения данного примера:

Готовим чашку из бактерий ацидофил со вкусом малины.

Замечание: Начиная с PHP 5, значения по умолчанию могут быть переданны по ссылке.

Объявление типов

Замечание:

Объявление типов также известно, как подсказки для типов в PHP 5.

Объявления типов позволяют функциям строго задавать тип передаваемых параметров. Передача в функцию значений несоответствующего типа будет приводить к ошибке: в PHP 5 это будет обрабатываемая фатальная ошибка, а в PHP 7 будет выбрасываться исключение TypeError.

Чтобы объявить тип агрумента, необходимо перед его именем добавить имя требуемого типа. Также можно объявить тип NULL, чтобы указать, что значением по умолчанию аргумента является NULL.

Valid types

Тип | Описание | Минимальная версия PHP
Имя класса/интерфейса | Агрумент должен быть instanceof, что и имя класса или интерфейса. | PHP 5.0.0
self | Этот параметр должен быть instanceof того же класса, в методе которого он указан. self можно использовать только в функциях класса либо объекта класса. | PHP 5.0.0
array | Аргумент должен быть типа array. | PHP 5.1.0
callable | Аргумент должен быть корректным callable типом. | PHP 5.4.0
bool | Аргумент должен быть типа boolean. | PHP 7.0.0
float | Аргумент должен быть float типа. | PHP 7.0.0
int | Аргумент должен быть типа integer. | PHP 7.0.0
string | Аргумент должен иметь тип string. | PHP 7.0.0
Внимание

Псевдонимы для вышеперечисленных скалярных типов не поддерживаются. Вместо этого, они рассматриваются как имена классов или интерфейсов. К примеру, используя boolean как параметр или возвращаемое значение, потребует, чтобы эти аргумент или возвращаемое значение были instanceof класса или интерфейса boolean, а не типа bool:

<?php
 function test(boolean $param) {}
 test(true);
 ?>

Результат выполнения данного примера:

 Fatal error: Uncaught TypeError: Argument 1 passed to test() must be an instance of boolean, boolean given, called in - on line 1 and defined in -:1

Примеры

Пример #7 Основные объявления типов-классов

<?php
class C {}
class D extends C {}

// Это не является расширением класса C.
class E {}

function f(C $c) {
    echo get_class($c)."\n";
}

f(new C);
f(new D);
f(new E);
?>

Результат выполнения данного примера:

C
D

Fatal error: Uncaught TypeError: Argument 1 passed to f() must be an instance of C, instance of E given, called in - on line 14 and defined in -:8
Stack trace:
#0 -(14): f(Object(E))
#1 {main}
  thrown in - on line 8

Пример #8 Основные объявления типов-интерфейсов

<?php
interface I { public function f(); }
class C implements I { public function f() {} }

// Это не реализует интерфейс I.
class E {}

function f(I $i) {
    echo get_class($i)."\n";
}

f(new C);
f(new E);
?>

Результат выполнения данного примера:

C

Fatal error: Uncaught TypeError: Argument 1 passed to f() must implement interface I, instance of E given, called in - on line 13 and defined in -:8
Stack trace:
#0 -(13): f(Object(E))
#1 {main}
  thrown in - on line 8

Пример #9 Объявление типа Null

<?php
class C {}

function f(C $c = null) {
    var_dump($c);
}

f(new C);
f(null);
?>

Результат выполнения данного примера:

object(C)#1 (0) {
}
NULL

Строгая типизация

По умолчанию, PHP будет пытаться привести значения несоответствующих типов к скалярному типу, если это возможно. Например, если в функцию передается integer, а тип аргумента объявлен string, в итоге функция получит преобразованное string значение.

Для отдельных файлов можно включать режим строгой типизации. В этом режиме в функцию можно передавать значения только тех типов, которые объявлены для аргументов. В противном случае будет выбрасываться исключение TypeError. Есть лишь одно исключение - integer можно передать в функцию, которая ожидает значение типа float. Вызовы функций внутри встроенных функций не будут затронуты директивой strict_types.

Для влючения режима строгой типизации используется выражение declare в объявлении strict_types:

Предостережение

Включение режима строгой типизации также повлияет на объявления типов возвращаемых значений.

Замечание:

Режим строгой типизации распространяется на вызовы функций совершенные из файла, в котором этот режим включен, а не на функции, которые в этом файле объявлены. Если файл без строгой типизации вызывает функцию, которая объявлена в файле с включенным режимом, значения аргументов будут приведены к нужным типам и ошибок не последует.

Замечание:

Строгая типизация применима только к скалярным типам и работает только в PHP 7.0.0 и выше. Равно как и сами объявления скалярных типов добавлены в этой версии.

Пример #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));
?>

Результат выполнения данного примера:

int(3)

Fatal error: Uncaught TypeError: Argument 1 passed to sum() must be of the type integer, float given, called in - on line 9 and defined in -:4
Stack trace:
#0 -(9): sum(1.5, 2.5)
#1 {main}
  thrown in - on line 4

Пример #11 Слабая типизация

<?php
function sum(int $a, int $b) {
    return $a + $b;
}

var_dump(sum(1, 2));

// These will be coerced to integers: note the output below!
var_dump(sum(1.5, 2.5));
?>

Результат выполнения данного примера:

int(3)
int(3)

Пример #12 Обработка исключения TypeError

<?php
declare(strict_types=1);

function sum(int $a, int $b) {
    return $a + $b;
}

try {
    var_dump(sum(1, 2));
    var_dump(sum(1.5, 2.5));
} catch (TypeError $e) {
    echo 'Error: '.$e->getMessage();
}
?>

Результат выполнения данного примера:

int(3)
Error: Argument 1 passed to sum() must be of the type integer, float given, called in - on line 10

Списки аргументов переменной длины

PHP поддерживает списки аргументов переменной длины для функций, определяемых пользователем. Для версий PHP 5.6 и выше это делается добавлением многоточия (...). Для версий 5.5 и старше используются функции func_num_args(), func_get_arg() и func_get_args().

... в PHP 5.6+

В версиях PHP 5.6 и выше список аргументов может содержать многоточие ..., чтобы показать, что функция принимает переменное количество аргументов. Аргументы в этом случае будут переданы в виде массива. Например:

Пример #13 Использование ... для доступа к аргументам

<?php
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);
?>

Результат выполнения данного примера:

10

Многоточие (...) можно использовать при вызове функции, чтобы распаковать массив (array) или Traversable переменную в список аргументов:

Пример #14 Использование ... для передачи аргументов

<?php
function add($a, $b) {
    return $a + $b;
}

echo add(...[1, 2])."\n";

$a = [1, 2];
echo add(...$a);
?>

Результат выполнения данного примера:

3
3

Можно задать несколько аргументов в привычном виде, а затем добавить .... В этом случае ... поместит в массив только те аргументы, которые не нашли соответствия указанным в объявлении функции.

Также можно добавить подсказку типа перед .... В этом случае PHP будет следить, чтобы все аргументы обработанные многоточием (...) были того же типа, что указан в подсказке.

Пример #15 Аргументы с подсказкой типов

<?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';

// This will fail, since null isn't a DateInterval object.
echo total_intervals('d', null);
?>

Результат выполнения данного примера:

3 days
Catchable fatal error: Argument 2 passed to total_intervals() must be an instance of DateInterval, null given, called in - on line 14 and defined in - on line 2

В конце концов, можно передавать аргументы по ссылке. Для этого перед ... нужно поставить амперсанд (&).

Предыдущие версии PHP

Для указания того, что функция принимает переменное число аргументов, никакой специальный синтаксис не используется. Для доступа к аргументам необходимо использовать функции func_num_args(), func_get_arg() и func_get_args().

В первом примере выше было показано, как задать список аргументов переменной длины для версий PHP 5.5 и более ранних:

Пример #16 Доступ к аргументам в PHP 5.5 и ранних версий

<?php
function sum() {
    $acc = 0;
    foreach (func_get_args() as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);
?>

Результат выполнения данного примера:

10


Возврат значений

Значения возвращаются при помощи необязательного оператора возврата. Возвращаемые значения могут быть любого типа, в том числе это могут быть массивы и объекты. Возврат приводит к завершению выполнения функции и передаче управления обратно к той строке кода, в которой данная функция была вызвана. Для получения более детальной информации ознакомьтесь с описанием return.

Замечание:

Если конструкция return не указана, то функция вернет значение NULL.

Использование выражения return

Пример #1 Использование конструкции return

<?php
function square($num)
{
    return $num * $num;
}
echo square(4);   // выводит '16'.
?>

Функция не может возвращать несколько значений, но аналогичного результата можно добиться, возвращая массив.

Пример #2 Возврат нескольких значений в виде массива

<?php
function small_numbers()
{
    return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?>

Для того, чтобы функция возвращала результат по ссылке, вам необходимо использовать оператор & и при описании функции, и при присвоении переменной возвращаемого значения:

Пример #3 Возврат результата по ссылке

<?php
function &returns_reference()
{
    return $someref;
}

$newref =& returns_reference();
?>

Для получения более детальной информации о ссылках обратитесь к разделу документации Подробно о ссылках.

Объявление типов возвращаемых значений

В PHP 7 добавлена возможность объявлять тип возвращаемого значения. Аналогично объявлению типов аргументов можно задать тип значения, которое будет возвращаться функцией. Типы, которые можно объявить для возвращаемых значений те же, что и для аргументов фукнций.

Режим строгой типизации также работает для объявлении типа возвращаемого значения. В обычном режиме слабой типизации возвращаемое из функции значение приводится к корректному типу. При строгой типизации возвращаемое значение должно быть заданного типа, иначе будет выброшено исключение TypeError.

Замечание:

Если переопределяется родительский метод, возвращаемое значение дочернего метода должно быть того же типа, что и родительского. Если в родительском методе не задан тип возвращаемого значения, то и дочерний метод этот тип может не объявлять.

Примеры

Пример #4 Обычное объявление типа возвращаемого значения

<?php
function sum($a, $b): float {
    return $a + $b;
}

// Будет возвращаться значение типа float.
var_dump(sum(1, 2));
?>

Результат выполнения данного примера:

float(3)

Пример #5 То же в режиме строгой типизации

<?php
declare(strict_types=1);

function sum($a, $b): int {
    return $a + $b;
}

var_dump(sum(1, 2));
var_dump(sum(1, 2.5));
?>

Результат выполнения данного примера:

int(3)

Fatal error: Uncaught TypeError: Return value of sum() must be of the type integer, float returned in - on line 5 in -:5
Stack trace:
#0 -(9): sum(1, 2.5)
#1 {main}
  thrown in - on line 5

Пример #6 Возврат объектов

<?php
class C {}

function getC(): C {
    return new C;
}

var_dump(getC());
?>

Результат выполнения данного примера:

object(C)#1 (0) {
}


Обращение к функциям через переменные

PHP поддерживает концепцию переменных функций. Это означает, что если к имени переменной присоединены круглые скобки, PHP ищет функцию с тем же именем, что и результат вычисления переменной, и пытается ее выполнить. Эту возможность можно использовать для реализации обратных вызовов, таблиц функций и множества других вещей.

Переменные функции не будут работать с такими языковыми конструкциями как echo, print, unset(), isset(), empty(), include, require и другими подобными им операторами. Вам необходимо реализовывать свою функцию-обертку (wrapper) для того, чтобы приведенные выше конструкции могли работать с переменными функциями.

Пример #1 Работа с функциями посредством переменных

<?php
function foo() {
    echo "In foo()<br />\n";
}

function bar($arg = '')
{
    echo "In bar(); argument was '$arg'.<br />\n";
}

// Функция-обертка для echo
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // Вызывает функцию foo()

$func = 'bar';
$func('test');  // Вызывает функцию bar()

$func = 'echoit';
$func('test');  // Вызывает функцию echoit()
?>

Вы также можете вызвать методы объекта, используя возможности PHP для работы с переменными функциями.

Пример #2 Обращение к методам класса посредством переменных

<?php
class Foo
{
    function Variable()
    {
        $name = 'Bar';
        $this->$name(); // Вызываем метод Bar()
    }

    function Bar()
    {
        echo "This is Bar";
    }
}

$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();  // Обращаемся к $foo->Variable()

?>

При вызове статических методов, вызов функции "сильнее" чем оператор доступа к статическому свойству:

Пример #3 Пример вызова переменного метода со статическим свойством

<?php
class Foo
{
    static $variable = 'static property';
    static function Variable()
    {
        echo 'Method Variable called';
    }
}

echo Foo::$variable; // Это выведет 'static property'. Переменная $variable будет разрешена в нужной области видимости.
$variable = "Variable";
Foo::$variable();  // Это вызовет $foo->Variable(), прочитав $variable из этой области видимости.

?>

С версии PHP 5.4.0, можно вызывать callable функцию помещенную в переменную.

Пример #4 Сallable-фукнции

<?php
class Foo
{
    static function bar()
    {
        echo "bar\n";
    }
    function baz()
    {
        echo "baz\n";
    }
}

$func = array("Foo", "bar");
$func(); // prints "bar"
$func = array(new Foo, "baz");
$func(); // prints "baz"
$func = "Foo::bar";
$func(); // выведет "bar" в PHP 7.0.0 и выше; в предыдущих версиях это приведет к фатальной ошибке
?>

Смотрите также is_callable(), call_user_func(), Переменные переменные и function_exists().

Список изменений

Версия | Описание
7.0.0 | 'ClassName::methodName' доступна как функция-переменная.
5.4.0 | Массивы, являющиеся корректными callable-методами, доступны как функции-переменные.


Встроенные функции

В самом PHP содержится достаточно большое количество встроенных функций и языковых конструкций. Также есть функции, которые требуют, чтобы PHP был собран со специфическими расширениями, в противном случае вы получите сообщение о фатальной ошибке, вызванной использованием неизвестной функции. Например, для того чтобы использовать функции для работы с изображениями, например, imagecreatetruecolor(), вам необходимо собрать PHP с поддержкой GD. Или же для того, чтобы воспользоваться функцией mysql_connect(), вам необходима поддержка модуля MySQL. Тем не менее, есть много встроенных функций, которые доступны всегда: например функции обработки строк и функции для работы с переменными. Вызвав phpinfo() или get_loaded_extensions(), вы можете узнать, поддержка каких модулей есть в используемом вами PHP. Также следует учесть, что поддержка некоторых дополнительных расширений включена по умолчанию, и что сама документация к PHP разбита по расширениям. Ознакомьтесь с разделами Конфигурация, Установка, а также с документацией непосредственно к дополнительным расширениям для получения более детальной информации о том, как настроить ваш PHP.

Более подробную информацию о том, как следует читать и интерпретировать прототипы функций, вы можете найти в разделе Как правильно читать описания функций. Очень важно понимать, что возвращает функция, или как именно она модифицирует передаваемые аргументы. Например, функция str_replace() возвращает модифицированную строку, в то время как функция usort() работает с фактически переданной переменной. Каждая страница документации также содержит информацию, которая специфична для данной функции, например, информацию о передаваемых параметрах, изменениях в поведении, возвращаемых значениях в случае как удачного, так и неудачного выполнения, доступности функции в различных версиях. Знание и применение этих (порой даже незаметных) нюансов очень важно для написания корректного PHP-кода.

Замечание: Если в функцию передаются не те аргументы, которые она ожидает, например, массив (array) вместо строки (string), возвращаемое значение функции не определено. Скорее всего в этом случае будет возвращен NULL, но это просто соглашение, на него нельзя полагаться.

Ознакомьтесь также с описанием функции function_exists(), справочником функций и функциями get_extension_funcs() и dl().


Анонимные функции

Анонимные функции, также известные как замыкания (closures), позволяют создавать функции, не имеющие определенных имен. Они наиболее полезны в качестве значений callback-параметров, но также могут иметь и множество других применений.

Анонимные функции реализуются с использованием класса Closure.

Пример #1 Пример анонимной функции

<?php
echo preg_replace_callback('~-([a-z])~', function ($match) {
    return strtoupper($match[1]);
}, 'hello-world');
// выведет helloWorld
?>

Замыкания также могут быть использованы в качестве значений переменных; PHP автоматически преобразует такие выражения в экземпляры внутреннего класса Closure. Присвоение замыкания переменной использует тот же синтаксис, что и для любого другого присвоения, включая завершающую точку с запятой:

Пример #2 Пример присвоения анонимной функции переменной

<?php
$greet = function($name)
{
    printf("Hello %s\r\n", $name);
};

$greet('World');
$greet('PHP');
?>

Замыкания могут также наследовать переменные из родительской области видимости. Любая подобная переменная должна быть объявлена в конструкции use.

Пример #3 Наследование переменных из родительской области видимости

<?php
$message = 'hello';

// Без "use"
$example = function () {
    var_dump($message);
};
$example();

// Наследуем $message
$example = function () use ($message) {
    var_dump($message);
};
$example();

// Значение унаследованной переменной задано там, где функция определена,
// но не там, где вызвана
$message = 'world';
$example();

// Сбросим message
$message = 'hello';

// Наследование по ссылке
$example = function () use (&$message) {
    var_dump($message);
};
$example();

// Измененное в родительской области видимости значение
// остается тем же внутри вызова функции
$message = 'world';
echo $example();

// Замыкания могут принимать обычные аргументы
$example = function ($arg) use ($message) {
    var_dump($arg . ' ' . $message);
};
$example("hello");
?>

Результатом выполнения данного примера будет что-то подобное:

Notice: Undefined variable: message in /example.php on line 6
NULL
string(5) "hello"
string(5) "hello"
string(5) "hello"
string(5) "world"
string(11) "hello world"

Наследование переменных из родительской области видимости не то же самое, что использование глобальных переменных. Глобальные переменные существуют в глобальной области видимости, которая не меняется, вне зависимости от того, какая функция выполняется в данный момент. Родительская область видимости - это функция, в которой было объявлено замыкание (не обязательно та же самая, из которой оно было вызвано). Смотрите следующий пример:

Пример #4 Замыкания и область видимости

<?php
// Базовая корзина покупок, содержащая список добавленных
// продуктов и количество каждого продукта. Включает метод,
// вычисляющий общую цену элементов корзины с помощью
// callback-замыкания.
class Cart
{
    const PRICE_BUTTER  = 1.00;
    const PRICE_MILK    = 3.00;
    const PRICE_EGGS    = 6.95;

    protected $products = array();

    public function add($product, $quantity)
    {
        $this->products[$product] = $quantity;
    }

    public function getQuantity($product)
    {
        return isset($this->products[$product]) ? $this->products[$product] :
               FALSE;
    }

    public function getTotal($tax)
    {
        $total = 0.00;

        $callback =
            function ($quantity, $product) use ($tax, &$total)
            {
                $pricePerItem = constant(__CLASS__ . "::PRICE_" .
                    strtoupper($product));
                $total += ($pricePerItem * $quantity) * ($tax + 1.0);
            };

        array_walk($this->products, $callback);
        return round($total, 2);
    }
}

$my_cart = new Cart;

// Добавляем несколько элементов в корзину
$my_cart->add('butter', 1);
$my_cart->add('milk', 3);
$my_cart->add('eggs', 6);

// Выводим общую сумму с 5% налогом на продажу.
print $my_cart->getTotal(0.05) . "\n";
// Результатом будет 54.29
?>

Пример #5 Автоматическое связывание $this

<?php

class Test
{
    public function testing()
    {
        return function() {
            var_dump($this);
        };
    }
}

$object = new Test;
$function = $object->testing();
$function();

?>

Результат выполнения данного примера:

object(Test)#1 (0) {
}

Результат выполнения данного примера в PHP 5.3:

Notice: Undefined variable: this in script.php on line 8
NULL

Начиная с PHP 5.4.0, при объявлении в контексте класса, текущий класс будет автоматически связан с ним, делая $this доступным внутри функций класса. Если вы не хотите автоматического связывания с текущим классов, используйте статические анонимные функции

Статические анонимные функции

Начиная с PHP 5.4, анонимные функции могут быть объявлены статически. Это предотвратит их автоматическое связывание с текущим классом. Объекты также не будут с ними связаны во время выполнения.

Пример #6 Попытка использовать $this в статической анонимной функции

<?php

new class {
    function __construct()
    {
        (static function() {
            var_dump($this);
        })();
    }
};
?>

Результат выполнения данного примера:

Notice: Undefined variable: this in %s on line %d
NULL

Пример #7 Попытка связать объект со статической анонимной функцией

<?php

(static function() {
    // function body
})->call(new StdClass);
?>

Результат выполнения данного примера:

Warning: Cannot bind an instance to a static closure in /in/sLLS9 on line 5

Список изменений

Версия | Описание
5.4.0 | Стало возможным использовать $this в анонимных функциях, и объявлять их статически.
5.3.0 | Появление анонимных функций.

Примечания

Замечание: Совместно с замыканиями можно использовать функции func_num_args(), func_get_arg() и func_get_args().


Классы и объекты

Содержание

  • Введение
  • Основы
  • Свойства
  • Константы классов
  • Автоматическая загрузка классов
  • Конструкторы и деструкторы
  • Область видимости
  • Наследование
  • Оператор разрешения области видимости (::)
  • Ключевое слово "static"
  • Абстрактные классы
  • Интерфейсы объектов
  • Трейты
  • Анонимные классы
  • Перегрузка
  • Итераторы объектов
  • Магические методы
  • Ключевое слово "final"
  • Клонирование объектов
  • Сравнение объектов
  • Контроль типа
  • Позднее статическое связывание
  • Объекты и ссылки
  • Сериализация объектов
  • Журнал изменений ООП


Введение

Начиная с версии PHP 5 объектная модель была полностью переписана, она стала более производительной и функциональной. Это было главным изменением с версии PHP 4. В PHP 5 теперь полная объектная модель.

Среди добавленных возможностей в PHP 5 можно найти видимость, абстрактные и ненаследуемые (final) классы и методы, а также магические методы, интерфейсы, клонирование и контроль типов (typehinting).

PHP работает с объектами так же как с ссылками или дескрипторами, это означает что каждая переменная содержит ссылку на объект, а не его копию. Более подробную информацию см. в разделе Объекты и ссылки.

Подсказка

Смотрите также Руководство по именованию.


Основы

class

Каждое определение класса начинается с ключевого слова class, затем следует имя класса, и далее пара фигурных скобок, которые заключают в себе определение свойств и методов этого класса.

Именем класса может быть любое слово, при условии, что оно не входит в список зарезервированных слов PHP, начинается с буквы или символа подчеркивания и за которым следует любое количество букв, цифр или символов подчеркивания. Если задать эти правила в виде регулярного выражения, то получится следующее выражение: ^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$.

Класс может содержать собственные константы, переменные (называемые свойствами) и функции (называемые методами).

Пример #1 Простое определение класса

<?php
class SimpleClass
{
    // объявление свойства
    public $var = 'значение по умолчанию';

    // объявление метода
    public function displayVar() {
        echo $this->var;
    }
}
?>

Псевдо-переменная $this доступна в том случае, если метод был вызван в контексте объекта. $this является ссылкой на вызываемый объект. Обычно это тот объект, которому принадлежит вызванный метод, но может быть и другой объект, если метод был вызван статически из контекста другого объекта. Начиная с PHP 7.0.0, вызов нестатического метода статическим способом из неподходящего контекста приведет к тому, что $this будет неопределен внутри метода. Вызов нестатического метода статическим способом из неподходящего контекста было объявлено устаревшив в PHP 5.6.0. Начиная с PHP 7.0.0, подобный вызов объявлен совсем устаревшим (если только вызов не произошел из подходящего контекста). До PHP 5.6.0, подобные вызовы уже сопровождались строгим уведомлением.

Пример #2 Несколько примеров с псевдо-переменной $this

Мы предполагаем, что error_reporting отключен для этого примера; в противном случае следующий код, в зависимости от версии PHP, вызовет предупреждения уровней "устаревшее" или "строгое".

<?php
class A
{
    function foo()
    {
        if (isset($this)) {
            echo '$this определена (';
            echo get_class($this);
            echo ")\n";
        } else {
            echo "\$this не определена.\n";
        }
    }
}

class B
{
    function bar()
    {
        A::foo();
    }
}

$a = new A();
$a->foo();

A::foo();
$b = new B();
$b->bar();

B::bar();
?>

Результат выполнения данного примера в PHP 5:

$this определена (A)
$this не определена.
$this определена (B)
$this не определена.

Результат выполнения данного примера в PHP 7:

$this is defined (A)
$this is not defined.
$this is not defined.
$this is not defined.

new

Для создания экземпляра класса используется директива new. Новый объект всегда будет создан, за исключением случаев, когда он содержит конструктор, в котором определен вызов исключения в случае ошибки. Рекомендуется определять классы до создания их экземпляров (в некоторых случаях это обязательно).

Если с директивой new используется строка (string), содержащая имя класса, то будет создан новый экземпляр этого класса. Если имя находится в пространстве имен, то оно должно быть задано полностью.

Пример #3 Создание экземпляра класса

<?php
$instance = new SimpleClass();

// Это же можно сделать с помощью переменной:
$className = 'SimpleClass';
$instance = new $className(); // new SimpleClass()
?>

В контексте класса можно создать новый объект через new self и new parent.

Когда происходит присвоение уже существующего экземпляра класса новой переменной, то эта переменная будет указывать на этот же экземпляр класса. Тоже самое происходит и при передаче экземпляра класса в функцию. Копию уже созданного объекта можно создать через ее клонирование.

Пример #4 Присваивание объекта

<?php

$instance = new SimpleClass();

$assigned   =  $instance;
$reference  =& $instance;

$instance->var = '$assigned будет иметь это значение';

$instance = null; // $instance и $reference становятся null

var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>

Результат выполнения данного примера:

NULL
NULL
object(SimpleClass)#1 (1) {
   ["var"]=>
     string(30) "$assigned будет иметь это значение"
}

В PHP 5.3.0 введены несколько новых методов создания экземпляров объекта:

Пример #5 Создание новых объектов

<?php
class Test
{
    static public function getNew()
    {
        return new static;
    }
}

class Child extends Test
{}

$obj1 = new Test();
$obj2 = new $obj1;
var_dump($obj1 !== $obj2);

$obj3 = Test::getNew();
var_dump($obj3 instanceof Test);

$obj4 = Child::getNew();
var_dump($obj4 instanceof Child);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)

В PHP 5.4.0 введена возможность обратиться к свойству или методу только что созданного объекта в одном выражении:

Пример #6 Доступ к свойствам/методам только что созданного объекта

<?php
echo (new DateTime())->format('Y');
?>

Результатом выполнения данного примера будет что-то подобное:

2016

Properties and methods

Свойства и методы класса живут в разделенных "пространствах имен", так что возможно задавать свойство и метод с одним и тем же именем. Ссылки как на свойства, так и на методы имеют одинаковую нотацию, и получается, что получите вы доступ к свойству или же вызовете метод - определяется контекстом использования.

Пример #7 Доступ к свойству vs. вызов метода

class Foo
{
    public $bar = 'property';

    public function bar() {
        return 'method';
    }
}

$obj = new Foo();
echo $obj->bar, PHP_EOL, $obj->bar(), PHP_EOL;

Результат выполнения данного примера:

property
method

Это означает, что вызвать анонимную функцию, присвоенную переменной напрямую не получится. Вместо этого сначала присвойте свойство переменной, например. Начиная с PHP 7.0.0 возможно осуществить подобный вызов, заключив свойство в скобки.

Пример #8 Вызов анонимной функции содержащейся в свойстве

class Foo
{
    public $bar;

    public function __construct() {
        $this->bar = function() {
            return 42;
        };
    }
}

$obj = new Foo();

// Начиная с PHP 5.3.0:
$func = $obj->bar;
echo $func(), PHP_EOL;

// или так, начиная с of PHP 7.0.0:
echo ($obj->bar)(), PHP_EOL;

Результат выполнения данного примера:

42

extends

Класс может наследовать методы и свойства другого класса используя ключевое слово extends при его описании. Невозможно наследовать несколько классов, один класс может наследовать только один базовый класс.

Наследуемые методы и свойства могут быть переопределены (за исключением случаев, когда метод класса объявлен как final) путем объявления их с теми же именами, как и в родительском классе. Существует возможность доступа к переопределенным методам или статическим методам путем обращения к ним через parent::

Когда переопределяются методы число и типы аргументов должны оставаться такими же как и были, иначе PHP вызовет ошибку уровня E_STRICT. Это не относится к конструктору, который можно переопределить с другими параметрами.

Пример #9 Простое наследование классов

<?php
class ExtendClass extends SimpleClass
{
    // Переопределение метода родителя
    function displayVar()
    {
        echo "Расширенный класс\n";
        parent::displayVar();
    }
}

$extended = new ExtendClass();
$extended->displayVar();
?>

Результат выполнения данного примера:

Расширенный класс
значение по умолчанию

::class

Начиная с версии PHP 5.5 можно использовать ключевое слово class для разрешения имени класса. С помощью конструкции ClassName::class можно получить строку с абсолютным именем класса ClassName. Обычно это довольно полезно при работе с классами, использующими пространства имен.

Пример #10 Разрешение имени класса

<?php
namespace NS {
    class ClassName {
    }

    echo ClassName::class;
}
?>

Результат выполнения данного примера:

NS\ClassName

Замечание:

Разрешение имен класса с использованием ::class происходит на этапе компиляции. Это означает, что на момент создания строки с именем класса автоподгрузки класса не происходит. Как следствие, имена классов раскрываются, даже если класс не существует. Ошибка в этом случае не выдается.


Свойства

Переменные, которые являются членами класса, называются "свойства". Также их называют, используя другие термины, такие как "аттрибуты" или "поля", но в рамках этой документации, мы будем называть их свойствами. Они определяются с помощью ключевых слов public, protected, или private, следуя правилам правильного описания переменных. Это описание может содержать инициализацию, но инициализация должна применяться для константных значений - то есть, переменные должны быть вычислены во время компиляции и не должны зависеть от информации программы во время выполнения для их вычисления.

Смотри Область видимости для получения информации о применении public, protected, и private.

Замечание:

Для того, чтобы поддерживать обратную совместимость с PHP 4, PHP 5 по-прежнему позволяет использовать ключевое слово var при определении свойств вместо (или в дополнении к) public, protected, или private. Однако, var больше не требуется. В версиях PHP с 5.0 по 5.1.3, использование var считалось устаревшим вызывало E_STRICT предупреждение, но с PHP 5.1.3 больше не считается устаревшим и не выдает предупреждения.

Если, для определения свойства, вы используете var вместо одного из: public, protected, или private, тогда PHP 5 будет определять свойство как public.

В пределах методов класса доступ к нестатическим свойствам может быть получен с помощью -> (объектного оператора): $this->property (где property - имя свойства). Доступ к статическим свойствам может быть получен с помощью :: (двойного двоеточия): self::$property. Подробнее о различиях между статическими и нестатическими свойствами смотрите в разделе "Ключевое слово Static" для получения большей информации.

Псевдо-переменная $this доступна внутри любого метода класса, когда этот метод вызывается в пределах объекта. $this - это ссылка на вызываемый объект (обычно, объект, которому принадлежит метод, но возможно и другого объекта, если метод вызван статически из контекста второго объекта).

Пример #1 Определение свойств

<?php
class SimpleClass
{
   // Корректное определение свойства начиная с PHP 5.6.0:
   public $var1 = 'hello ' . 'world';
   // Корректное определение свойства начиная с PHP 5.3.0:
   public $var2 = <<<EOD
hello world
EOD;
   // Корректное определение свойства начиная с PHP 5.6.0:
   public $var3 = 1+2;
   // правильное определение свойств:
   public $var4 = self::myStaticMethod();
   public $var5 = $myVar;

   // правильное определение свойств:
   public $var6 = myConstant;
   public $var7 = array(true, false);

   // Корректное определение свойства начиная с PHP 5.3.0:
   public $var8 = <<<'EOD'
hello world
EOD;
}
?>

Замечание:

Существуют несколько интересных функций для обработки классов и объектов. Вы можете их увидеть тут Class/Object Functions.

Начиная с PHP 5.3.0 heredocs и nowdocs могут быть использованы в любом статическом контексте данных, включая определение свойств.

Пример #2 Пример использования nowdoc для инициализации свойств

<?php
class foo {
   // As of PHP 5.3.0
   public $bar = <<<'EOT'
bar
EOT;
   public $baz = <<<EOT
baz
EOT;
}
?>

Замечание:

Поддержка Nowdoc и Heredoc была добавлена в PHP 5.3.0.


Константы классов

Константы также могут быть объявлены и в пределах одного класса. Отличие переменных и констант состоит в том, что при объявлении последних или при обращении к ним не используется символ $. Область видимости констант, по умолчанию, public.

Значение должно быть неизменяемым выражением, не (к примеру) переменной, свойством или вызовом функции.

Интерфейсы также могут содержать константы (constants). За примерами обращайтесь к разделу об интерфейсах.

Начиная с версии PHP 5.3.0, стало возможным обратиться к классу с помощью переменной. Значение переменной не должно быть ключевым словом (например, self, parent или static).

Обратите внимание, что константы класса задаются один раз для всего класса, а не отдельно для каждого созданного объекта этого класса.

Пример #1 Объявление и использование константы

<?php
class MyClass
{
    const CONSTANT = 'значение константы';

    function showConstant() {
        echo  self::CONSTANT . "\n";
    }
}

echo MyClass::CONSTANT . "\n";

$classname = "MyClass";
echo $classname::CONSTANT . "\n"; // начиная с версии PHP 5.3.0

$class = new MyClass();
$class->showConstant();

echo $class::CONSTANT."\n"; // начиная с версии PHP 5.3.0
?>

Пример #2 Пример со статичными данными

<?php
class foo {
    // Начиная с версии PHP 5.3.0
    const BAR = <<<'EOT'
bar
EOT;
    // Начиная с версии PHP 5.3.0
    const BAZ = <<<EOT
baz
EOT;
}
?>

Замечание:

Поддержка синтаксиса Heredoc и Nowdoc при инициализации констант была добавлена в версии PHP 5.3.0.

Пример #3 Пример констант заданных выражением

<?php
const ONE = 1;

class foo {
    // С версии PHP 5.6.0
    const TWO = ONE * 2;
    const THREE = ONE + self::TWO;
    const SENTENCE = 'The value of THREE is '.self::THREE;
}
?>

Для задания констант класса возможно использовать скалярные выражения с цифрами, строками и/или другими константами.

Замечание:

Задание констант с помощью выражений довавлено начиная с PHP 5.6.0.

Пример #4 Модификаторы видимости констант класса

<?php
class Foo {
    // С версии PHP 7.1.0
    public const BAR = 'bar';
    private const BAZ = 'baz';
}
echo Foo::BAR, PHP_EOL;
echo Foo::BAZ, PHP_EOL;
?>

Результат выполнения данного примера в PHP 7.1:

bar

Fatal error: Uncaught Error: Cannot access private const Foo::BAZ in ...

Замечание:

Начиная с PHP 7.1.0 для констант класса можно использовать модификаторы области видимости.


Автоматическая загрузка классов

Большинство разработчиков объектно-ориентированных приложений используют такое соглашение именования файлов, в котором каждый класс хранится в отдельно созданном для него файле. Одной из наиболее при этом досаждающих деталей является необходимость писать в начале каждого скрипта длинный список подгружаемых файлов.

В PHP 5 это делать не обязательно. Функция spl_autoload_register() позволяет зарегистрировать необходимое количество автозагрузчиков, для автоматической загрузки ранее не определенных классов и интерфейсов. Вызов этой функции - последний шанс для интерпретатора загрузить класс прежде, чем он закончит выполнение скрипта с ошибкой.

Подсказка

В то время как функция __autoload() также может быть использована для автоматической загрузки классов и интерфейсов, следует отдать предпочтение spl_autoload_register(), потому, что она предоставляет гораздо более гибкую альтернативу, позволяя регистрировать необходимое количество автозагрузчиков, например для корректной работы сторонних библиотек. В связи с этим, использование __autoload() не рекомендуется и она может быть объявлена устаревшей в будущем.

Замечание:

До версии 5.3, исключения, вызванные в функции __autoload(), не могли быть перехвачены в блоке catch и завершались с неисправимой ошибкой. Начиная с версии 5.3, стало возможным их перехватывать, в случае вызыва пользовательского исключения должен быть доступен класс этого исключения. Функция __autoload() также может использоваться рекурсивно для автоматической загрузки пользовательских классов исключений.

Замечание:

Автоматическая загрузка недоступна в случае использования PHP в командной строке в интерактивном режиме.

Замечание:

Если имя класса используется, например, для вызова через call_user_func(), то оно может содержать некоторые опасные символы, такие как ../. Поэтому, рекомендуется не использовать данные от пользователей в таких функциях или же, как минимум, проверять значения в __autoload().

Пример #1 Пример автоматической загрузки

В этом примере функция пытается загрузить классы MyClass1 и MyClass2 из файлов MyClass1.php и MyClass2.php соответственно.

<?php
spl_autoload_register(function ($class_name) {
    include $class_name . '.php';
});

$obj  = new MyClass1();
$obj2 = new MyClass2();
?>

Пример #2 Еще один пример автоматической загрузки

В этом примере представлена попытка загрузки интерфейса ITest.

<?php

spl_autoload_register(function ($name) {
    var_dump($name);
});

class Foo implements ITest {
}

/*
string(5) "ITest"

Fatal error: Interface 'ITest' not found in ...
*/
?>

Пример #3 Автоматическая загрузка с перехватом исключения в версиях 5.3.0+

В данном примере вызывается исключение и отлавливается блоком try/catch.

<?php
spl_autoload_register(function ($name) {
    echo "Хочу загрузить $name.\n";
    throw new Exception("Невозможно загрузить $name.");
});

try {
    $obj = new NonLoadableClass();
} catch (Exception $e) {
    echo $e->getMessage(), "\n";
}
?>

Результат выполнения данного примера:

Хочу загрузить NonLoadableClass.
Невозможно загрузить NonLoadableClass.

Пример #4 Автоматическая загрузка с перехватом исключения в версиях 5.3.0+ - Класс пользовательского исключения не подгружен

В данном примере вызывается недоступное исключение.

<?php
spl_autoload_register(function ($name) {
    echo "Хочу загрузить $name.\n";
    throw new MissingException("Невозможно загрузить $name.");
});

try {
    $obj = new NonLoadableClass();
} catch (Exception $e) {
    echo $e->getMessage(), "\n";
}
?>

Результат выполнения данного примера:

Хочу загрузить NonLoadableClass.
Хочу загрузить MissingException.

Fatal error: Class 'MissingException' not found in testMissingException.php on line 4

Смотрите также

  • unserialize()
  • unserialize_callback_func
  • spl_autoload_register()
  • spl_autoload()
  • __autoload()


Конструкторы и деструкторы

Конструктор

void __construct ([ mixed $args [, $... ]] )

PHP 5 позволяет объявлять методы-конструкторы. Классы, в которых объявлен метод-констуктор, будут вызывать этот метод при каждом создании нового объекта, так что это может оказаться полезным, например, для инициализации какого-либо состояния объекта перед его использованием.

Замечание: Конструкторы, определенные в классах-родителях не вызываются автоматически, если класс-потомок определяет собственный конструктор. Чтобы вызвать конструктор, объявленный в родительском классе, следует обратиться к методу parent::__construct() внутри конструктора класса-потомка. Если в классе-потомке не определен конструктор, то он может наследоваться от родительского класса как обычный метод (если он не определен как приватный).

Пример #1 Использование унифицированных конструкторов

<?php
class BaseClass {
   function __construct() {
       print "Конструктор класса BaseClass\n";
   }
}

class SubClass extends BaseClass {
   function __construct() {
       parent::__construct();
       print "Конструктор класса SubClass\n";
   }
}

class OtherSubClass extends BaseClass {
    // inherits BaseClass's constructor
}

// In BaseClass constructor
$obj = new BaseClass();

// In BaseClass constructor
// In SubClass constructor
$obj = new SubClass();

// In BaseClass constructor
$obj = new OtherSubClass();
?>

В целях обратной совместимости, если PHP 5 не может обнаружить объявленный метод __construct() и этот метод не наследуется от родительских классов, то вызов конструктора произойдет по устаревшей схеме, через обращение к методу, имя которого соответствует имени класса. Может возникнуть только одна проблема совместимости старого кода, если в нём присутствуют классы с методами __construct(), использующиеся для других целей.

Внимание

Конструкторы старого типа объявлены УСТАРЕВШИМИ в PHP 7.0, и будут удалены в будущих версиях. В новом коде всегда используйте __construct().

В отличие от других методов, PHP не будет генерировать ошибку уровня E_STRICT, если __construct() будет перекрыт методом с другими параметрами, отличными от тех, которые находятся в родительском __construct().

Начиная с версии PHP 5.3.3, методы с именами, совпадающими с последним элемeнтом имени класса, находящимся в пространстве имен, больше не будут считаться конструкторами. Это изменение не влияет на классы, не находящиеся в пространстве имен.

Пример #2 Конструкторы в классах, находящихся в пространстве имен

<?php
namespace Foo;
class Bar {
    public function Bar() {
        // конструктор в версиях PHP 5.3.0-5.3.2
        // обычный метод, начиная с версии PHP 5.3.3
    }
}
?>

Деструкторы

void __destruct ( void )

PHP 5 предоставляет концепцию деструкторов, сходную с теми, что применяются в других ОО языках, таких, как C++. Деструктор будет вызван при освобождении всех ссылок на определенный объект или при завершении скрипта (порядок выполнения деструкторов не гарантируется).

Пример #3 Пример использования деструктора

<?php
class MyDestructableClass {
   function __construct() {
       print "Конструктор\n";
       $this->name = "MyDestructableClass";
   }

   function __destruct() {
       print "Уничтожается " . $this->name . "\n";
   }
}

$obj = new MyDestructableClass();
?>

Как и в случае с конструкторами, деструкторы, объявленные в родительском классе, не будут вызваны автоматически. Для вызова деструктора, объявленном в классе-родителе, следует обратиться к методу parent::__destruct() в теле деструктора-потомка. Также класс-потомок может унаследовать деструктор из родительского класса, если он не определен в нем.

Деструктор будет вызван даже в том случае, если скрипт был остановлен с помощью функции exit(). Вызов exit() в деструкторе предотвратит запуск всех последующих функций завершения.

Замечание:

Деструкторы, вызываемые при завершении скрипта, вызываются после отправки HTTP-заголовков. Рабочая директория во время фазы завершения скрипта может отличаться в некоторых SAPI (например, в Apache).

Замечание:

Попытка бросить исключение в деструкторе (вызванного во время завершения скрипта) влечет за собой фатальную ошибку.


Область видимости

Область видимости свойства, метода или константы (начиная c PHP 7.1.0) может быть определена путем использования следующих ключевых слов в объявлении: public, protected или private. Доступ к свойствам и методам класса, объявленным как public (общедоступный), разрешен отовсюду. Модификатор protected (защищенный) разрешает доступ наследуемым и родительским классам. Модификатор private (закрытый) ограничивает область видимости так, что только класс, где объявлен сам элемент, имеет к нему доступ.

Область видимости свойства

Свойства класса должны быть определены через модификаторы public, private, или protected. Если же свойство определено с помощью var, то оно будет доступно как 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 и protected методы, но не private
    public $public = 'Public2';
    protected $protected = 'Protected2';

    function printHello()
    {
        echo $this->public;
        echo $this->protected;
        echo $this->private;
    }
}

$obj2 = new MyClass2();
echo $obj2->public; // Работает
echo $obj2->private; // Неопределен
echo $obj2->protected; // Неисправимая ошибка
$obj2->printHello(); // Выводит Public2, Protected2, Undefined

?>

Замечание: Метод объявления переменной через ключевое слово var, принятый в PHP 4, до сих пор поддерживается в целях совместимости (как синоним ключевого слова public). В версиях PHP 5 ниже 5.1.3 такое использование выводит предупреждение E_STRICT.

Область видимости метода

Методы класса должны быть определены через модификаторы public, private, или protected. Методы, где определение модификатора отсутствует, определяются как public.

Пример #2 Объявление метода

<?php
/**
 * Определение MyClass
 */
class MyClass
{
    // Объявление общедоступного конструктора
    public function __construct() { }

    // Объявление общедоступного метода
    public function MyPublic() { }

    // Объявление защищенного метода
    protected function MyProtected() { }

    // Объявление закрытого метода
    private function MyPrivate() { }

    // Это общедоступный метод
    function Foo()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate();
    }
}

$myclass = new MyClass;
$myclass->MyPublic(); // Работает
$myclass->MyProtected(); // Неисправимая ошибка
$myclass->MyPrivate(); // Неисправимая ошибка
$myclass->Foo(); // Работает общий, защищенный и закрытый

/**
 * Определение MyClass2
 */
class MyClass2 extends MyClass
{
    // Это общедоступный метод
    function Foo2()
    {
        $this->MyPublic();
        $this->MyProtected();
        $this->MyPrivate(); // Неисправимая ошибка
    }
}

$myclass2 = new MyClass2;
$myclass2->MyPublic(); // Работает
$myclass2->Foo2(); // Работает общий и защищенный, закрытый не работает

class Bar
{
    public function test() {
        $this->testPrivate();
        $this->testPublic();
    }

    public function testPublic() {
        echo "Bar::testPublic\n";
    }

    private function testPrivate() {
        echo "Bar::testPrivate\n";
    }
}

class Foo extends Bar
{
    public function testPublic() {
        echo "Foo::testPublic\n";
    }

    private function testPrivate() {
        echo "Foo::testPrivate\n";
    }
}

$myFoo = new Foo();
$myFoo->test(); // Bar::testPrivate
                // Foo::testPublic
?>

Область видимости констант

Начиная с PHP 7.1.0, константы класса могут быть объявлены как public, private или protected. Константы, объявленные без указания области видимости, определяются как public.

Пример #3 Объявление констант, начиная с PHP 7.1.0

<?php
/**
 * Объявление класса MyClass
 */
class MyClass
{
    // Объявление публичной (public) константы
    public const MY_PUBLIC = 'public';

    // Объявление защищенной (protected) константы
    protected const MY_PROTECTED = 'protected';

    // Объявление приватной (private) константы
    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; // Fatal Error
MyClass::MY_PRIVATE; // Fatal Error
$myclass->foo(); // Выводятся public, protected и private константы

/**
 * Объявление класса MyClass2
 */
class MyClass2 extends MyClass
{
    // Публичный метод
    function foo2()
    {
        echo self::MY_PUBLIC;
        echo self::MY_PROTECTED;
        echo self::MY_PRIVATE; // Fatal Error
    }
}

$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 = 'hello';
        var_dump($other->foo);

        // Мы также можем вызвать закрытый метод:
        $other->bar();
    }
}

$test = new Test('test');

$test->baz(new Test('other'));
?>

Результат выполнения данного примера:

string(5) "hello"
Доступ к закрытому методу.


Наследование

Наследование — это хорошо зарекомендовавший себя принцип программирования. PHP использует этот принцип в своей объектной модели. Этот принцип будет распространяться на то, каким образом множество классов и объектов относятся друг к другу.

Например, когда вы расширяете класс, дочерний класс наследует все публичные и защищенные методы из родительского класса. До тех пор пока не будут эти методы переопределены, они будут сохранять свою исходную функциональность.

Это полезно для определения и абстрагирования функциональности и позволяет реализовать дополнительную функциональность в похожих объектах без необходимости реализовывать всю общую функциональность.

Замечание:

Пока не используется автозагрузка, классы должны быть объявлены до того, как их будут использовать. Если класс расширяет другой, то родительский класс должен быть объявлен до наследующего класса. Это правило применяется к классам, которые наследуют другие классы или интерфейсы.

Пример #1 Пример наследования

<?php

class Foo
{
    public function printItem($string)
    {
        echo 'Foo: ' . $string . PHP_EOL;
    }

    public function printPHP()
    {
        echo 'PHP is great.' . 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 is great'
$bar->printItem('baz'); // Выведет: 'Bar: baz'
$bar->printPHP();       // Выведет: 'PHP is great'

?>


Оператор разрешения области видимости (::)

Оператор разрешения области видимости (также называемый "Paamayim Nekudotayim") или просто "двойное двоеточие" - это лексема, позволяющая обращаться к статическим свойствам, константам и перегруженным свойствам или методам класса.

При обращении к этим элементам извне класса, необходимо использовать имя этого класса.

Начиная с версии PHP 5.3.0, стало возможным обратиться к классу с помощью переменной. Значение переменной не должно быть ключевым словом (например, self, parent или static).

"Paamayim Nekudotayim" на первый взгляд может показаться странным словосочетанием для обозначения двойного двоеточия. Однако, во время создания Zend Engine версии 0.5 (который входил в PHP3), команда Zend выбрала именно это обозначение. Оно на самом деле значит "двойное двоеточие" - на иврите!

Пример #1 Использование :: вне объявления класса

<?php
class MyClass {
    const CONST_VALUE = 'Значение константы';
}

$classname = 'MyClass';
echo $classname::CONST_VALUE; // Начиная с версии PHP 5.3.0

echo MyClass::CONST_VALUE;
?>

Для обращения к свойствам и методам внутри самого класса используются ключевые слова self, parent и static.

Пример #2 Использование :: внутри объявления класса

<?php
class OtherClass extends MyClass
{
    public static $my_static = 'статическая переменная';

    public static function doubleColon() {
        echo parent::CONST_VALUE . "\n";
        echo self::$my_static . "\n";
    }
}

$classname = 'OtherClass';
$classname::doubleColon(); // Начиная с версии PHP 5.3.0

OtherClass::doubleColon();
?>

Когда дочерний класс перегружает методы, объявленные в классе-родителе, PHP не будет осуществлять автоматический вызов методов, принадлежащих классу-родителю. Этот функционал возлагается на метод, перегружаемый в дочернем классе. Данное правило распространяется на конструкторы и деструкторы, перегруженные и "магические" методы.

Пример #3 Обращение к методу в родительском классе

<?php
class MyClass
{
    protected function myFunc() {
        echo "MyClass::myFunc()\n";
    }
}

class OtherClass extends MyClass
{
    // Перекрываем родительское определение
    public function myFunc()
    {
        // Но все еще вызываем родительскую функцию
        parent::myFunc();
        echo "OtherClass::myFunc()\n";
    }
}

$class = new OtherClass();
$class->myFunc();
?>

См. также некоторые примеры статических вызовов.


Ключевое слово "static"

Подсказка

Эта страница описывает использование ключевого слова static для определения статических методов и свойств. static также может использоваться для определения статических переменных и позднего статического связывания. Для получения информации о таком применении ключевого слова static пользуйтесь вышеуказанными страницами.

Объявление свойств и методов класса статическими позволяет обращаться к ним без создания экземпляра класса. Атрибут класса, объявленный статическим, не может быть доступен посредством экземпляра класса (но статический метод может быть вызван).

В целях совместимости с PHP 4, сделано так, что если не использовалось определение области видимости, то свойство или метод будет рассматриваться, как если бы он был объявлен как public.

Статические методы

Так как статические методы вызываются без создания экземпляра класса, то псевдо-переменная $this не доступна внутри метода, объявленного статическим.

Предостережение

В PHP 5, вызов нестатического метода статически вызовет ошибку уровля E_STRICT.

Внимание

В PHP 7, возможность вызова нестатического метода статически объявлена устаревшей и вызовет ошибку уровня E_DEPRECATED и в дальнейшем может быть удалена.

Пример #1 Пример статического метода

<?php
class Foo {
    public static function aStaticMethod() {
        // ...
    }
}

Foo::aStaticMethod();
$classname = 'Foo';
$classname::aStaticMethod(); // Начиная с PHP 5.3.0
?>

Статические свойства

Статические свойства не могут использоваться с использованием оператора "->".

Как и любая другая статическая переменная PHP, статические свойства могут инициализироваться только используя литерал или константу, выражения же недопустимы. Таким образом вы можете инициализировать статическое свойство например целым числом или массивом, но не сможете указать другую переменную, результат вызова функции или объект.

Начиная с версии PHP 5.3.0 существует возможность ссылаться на класс используя переменную. Поэтому значение переменной в таком случае не может быть ключевым словом (например, self, parent и static).

Пример #2 Пример статического свойства

<?php
class Foo
{
    public static $my_static = 'foo';

    public function staticValue() {
        return self::$my_static;
    }
}

class Bar extends Foo
{
    public function fooStatic() {
        return parent::$my_static;
    }
}

print Foo::$my_static . "\n";

$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n";      // Не определено свойство my_static

print $foo::$my_static . "\n"; // Начиная с PHP 5.3.0
$classname = 'Foo';
print $classname::$my_static . "\n"; // Начиная с PHP 5.3.0

print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>


Абстрактные классы

PHP 5 поддерживает определение абстрактных классов и методов. Класс, который содержит по крайней мере один абстрактный метод, должен быть определен как абстрактный. Следует помнить, что нельзя создать экземпляр абстрактного класса. Методы, объявленные абстрактными, несут, по существу, лишь описательный смысл и не могут включать реализации.

При наследовании от абстрактного класса, все методы, помеченные абстрактными в родительском классе, должны быть определены в классе-потомке; кроме того, область видимости этих методов должна совпадать (или быть менее строгой). Например, если абстрактный метод объявлен как protected, то реализация этого метода должна быть либо protected либо public, но никак не private. Более того, сигнатуры методов должны совпадать, т.е. контроль типов (type hint) и количество обязательных аргументов должно быть одинаковым. К примеру, если в дочернем классе указан необязательный параметр, которого нет в сигнатуре абстрактного класса, то в данном случае конфликта сигнатур не будет. Это правило также применяется к конструкторам начиная с версии PHP 5.4, ранее сигнатуры конструкторов могли отличаться.

Пример #1 Пример абстрактного класса

<?php
abstract class AbstractClass
{
   /* Данный метод должен быть определён в дочернем классе */
    abstract protected function getValue();
    abstract protected function prefixValue($prefix);

   /* Общий метод */
    public function printOut() {
        print $this->getValue() . "\n";
    }
}

class ConcreteClass1 extends AbstractClass
{
    protected function getValue() {
        return "ConcreteClass1";
    }

    public function prefixValue($prefix) {
        return "{$prefix}ConcreteClass1";
    }
}

class ConcreteClass2 extends AbstractClass
{
    public function getValue() {
        return "ConcreteClass2";
    }

    public function prefixValue($prefix) {
        return "{$prefix}ConcreteClass2";
    }
}

$class1 = new ConcreteClass1;
$class1->printOut();
echo $class1->prefixValue('FOO_') ."\n";

$class2 = new ConcreteClass2;
$class2->printOut();
echo $class2->prefixValue('FOO_') ."\n";
?>

Результат выполнения данного примера:

ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

Пример #2 Пример абстрактного класса

<?php
abstract class AbstractClass
{
    // Наш абстрактный метод должен определять только необходимые аргументы
    abstract protected function prefixName($name);

}

class ConcreteClass extends AbstractClass
{

    // Наш дочерний класс может также определять необязательные аргументы, не указанные в сигнатуре родительского метода
    public function prefixName($name, $separator = ".") {
        if ($name == "Pacman") {
            $prefix = "Mr";
        } elseif ($name == "Pacwoman") {
            $prefix = "Mrs";
        } else {
            $prefix = "";
        }
        return "{$prefix}{$separator} {$name}";
    }
}

$class = new ConcreteClass;
echo $class->prefixName("Pacman"), "\n";
echo $class->prefixName("Pacwoman"), "\n";
?>

Результат выполнения данного примера:

Mr. Pacman
Mrs. Pacwoman

Код, предназначенный для прежних версий PHP, должен работать без изменений, если в нём отсутствуют классы или функции, именованные 'abstract'.


Интерфейсы объектов

Интерфейсы объектов позволяют создавать код, который указывает, какие методы должен реализовать класс, без необходимости описывания их функционала.

Интерфейсы объявляются так же, как и обычные классы, но с использованием ключевого слова interface вместо class. Тела методов интерфейсов должны быть пустыми.

Все методы, определенные в интерфейсы должны быть публичными, что следует из самой природы интерфейса.

implements

Для реализации интерфейса используется оператор implements. Класс должен реализовать все методы, описанные в интерфейсе; иначе произойдет фатальная ошибка. При желании классы могут реализовывать более одного интерфейса за раз, реализуемые интерфейсы должны разделяться запятой.

Замечание:

До версии PHP 5.3.9, класс не мог реализовать два интерфейса, содержащих одноименную функцию, так как это влекло за собой неоднозначность. В более новых версиях PHP это допустимо, но только при условии, что одноименные методы в разных интерфейсах определены одинаково.

Замечание:

Интерфейсы могут быть унаследованы друг от друга, так же как и классы, с помощью оператора extends.

Замечание:

Сигнатуры методов в классе, реализующем интерфейс, должны точно совпадать с сигнатурами, используемыми в интерфейсе, в противном случае будет вызвана фатальная ошибка.

Константы (Constants)

Интерфейсы могут содержать константы. Константы интерфейсов работают точно так же, как и константы классов, за исключением того, что они не могут быть перекрыты наследующим классом или интерфейсом.

Примеры

Пример #1 Пример интерфейса

<?php

// Объявим интерфейс 'iTemplate'
interface iTemplate
{
    public function setVariable($name, $var);
    public function getHtml($template);
}

// Реализуем интерфейс
// Это сработает нормально
class Template implements iTemplate
{
    private $vars = array();

    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }

    public function getHtml($template)
    {
        foreach($this->vars as $name => $value) {
            $template = str_replace('{' . $name . '}', $value, $template);
        }

        return $template;
    }
}

// Это не будет работать
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
// (Фатальная ошибка: Класс BadTemplate содержит 1 абстрактный метод
// и поэтому должнен быть объявлен абстрактным (iTemplate::getHtml))
class BadTemplate implements iTemplate
{
    private $vars = array();

    public function setVariable($name, $var)
    {
        $this->vars[$name] = $var;
    }
}
?>

Пример #2 Расширяемые интерфейсы

<?php
interface a
{
    public function foo();
}

interface b extends a
{
    public function baz(Baz $baz);
}

// Это сработает
class c implements b
{
    public function foo()
    {
    }

    public function baz(Baz $baz)
    {
    }
}

// Это не сработает и выдаст фатальную ошибку
class d implements b
{
    public function foo()
    {
    }

    public function baz(Foo $foo)
    {
    }
}
?>

Пример #3 Множественное наследование интерфейсов

<?php
interface a
{
    public function foo();
}

interface b
{
    public function bar();
}

interface c extends a, b
{
    public function baz();
}

class d implements c
{
    public function foo()
    {
    }

    public function bar()
    {
    }

    public function baz()
    {
    }
}
?>

Пример #4 Интерфейсы с константами

<?php
interface a
{
    const b = 'Константа интерфейса';
}

// Выведет: Константа интерфейса
echo a::b;

// Вот это, однако, не будет работать, так как
// константы перекрывать нельзя.
class b implements a
{
    const b = 'Class constant';
}
?>

Интерфейс, совместно с контролем типов, предоставляет отличный способ проверки того, что определенный объект содержит определенный набор методов. Смотрите также оператор instanceof и контроль типов.


Трейты

Начиная с версии 5.4.0 PHP вводит инструментарий для повторного использования кода, называемый трейтом.

Трейт (англ. trait) - это механизм обеспечения повторного использования кода в языках с поддержкой единого наследования, таких как PHP. Трейт предназначен для уменьшения некоторых ограничений единого наследования, позволяя разработчику повторно использовать наборы методов свободно, в нескольких независимых классах и реализованных с использованием разных архитектур построения классов. Семантика комбинации трейтов и классов определена таким образом, чтобы снизить уровень сложности, а также избежать типичных проблем, связанных с множественным наследованием и смешиванием (mixins).

Трейт очень похож на класс, но предназначен для групирования функционала хорошо структурированым и последовательным образом. Невозможно создать самостоятельный экземпляр трейта. Это дополнение к обычному наследованию и позволяет сделать горизонтальную композицию поведения, то есть применение членов класса без необходимости наследования.

Пример #1 Пример использования трейта

<?php
trait ezcReflectionReturnInfo {
    function getReturnType() { /*1*/ }
    function getReturnDescription() { /*2*/ }
}

class ezcReflectionMethod extends ReflectionMethod {
    use ezcReflectionReturnInfo;
    /* ... */
}

class ezcReflectionFunction extends ReflectionFunction {
    use ezcReflectionReturnInfo;
    /* ... */
}
?>

Приоритет

Наследуемый член из базового класса переопределяется членом, находящимся в трейте. Порядок приоритета следующий: члены из текущего класса переопределяют методы в трейте, которые в свою очередь переопределяют унаследованные методы.

Пример #2 Пример приоритета старшинства

Наследуемый метод от базового класса переопределяется методом, вставленным в MyHelloWorld из трейта SayWorld. Поведение такое же как и для методов, определенных в классе MyHelloWorld. Порядок приоритета такой: методы из текущего класса переопределяют методы трейта, которые в свою очередь переопределяют методы из базового класса.

<?php
class Base {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait SayWorld {
    public function sayHello() {
        parent::sayHello();
        echo 'World!';
    }
}

class MyHelloWorld extends Base {
    use SayWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
?>

Результат выполнения данного примера:

Hello World!

Пример #3 Пример альтернативного порядка приоритета

<?php
trait HelloWorld {
    public function sayHello() {
        echo 'Hello World!';
    }
}

class TheWorldIsNotEnough {
    use HelloWorld;
    public function sayHello() {
        echo 'Hello Universe!';
    }
}

$o = new TheWorldIsNotEnough();
$o->sayHello();
?>

Результат выполнения данного примера:

Hello Universe!

Несколько трейтов

Несколько трейтов могут быть вставлены в класс путем их перечисления в директиве use, разделяя запятыми.

Пример #4 Пример использования нескольких трейтов

<?php
trait Hello {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait World {
    public function sayWorld() {
        echo 'World';
    }
}

class MyHelloWorld {
    use Hello, World;
    public function sayExclamationMark() {
        echo '!';
    }
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark();
?>

Результат выполнения данного примера:

Hello World!

Разрешение конфликтов

Если два трейта вставляют метод с одним и тем же именем, это приводит к фатальной ошибке в случае, если конфликт явно не разрешен.

Для разрешения конфликтов именования между трейтами, используемыми в одном и том же классе, необходимо использовать оператор insteadof для того, чтобы точно выбрать один из конфликтных методов.

Так как предыдущий оператор позволяет только исключать методы, оператор as может быть использован для включения одного из конфликтующих методов под другим именем. Обратите внимание, что оператор as не переименовывает метод и не влияет на какой либо другой метод.

Пример #5 Пример разрешения конфликтов

В этом примере Talker использует трейты A и B. Так как в A и B есть конфликтные методы, он определяет использовать вариант smallTalk из трейта B, и вариант bigTalk из трейта A.

Класс Aliased_Talker применяет оператор as чтобы получить возможность использовать имплементацию bigTalk из B под дополнительным псевдонимом talk.

<?php
trait A {
    public function smallTalk() {
        echo 'a';
    }
    public function bigTalk() {
        echo 'A';
    }
}

trait B {
    public function smallTalk() {
        echo 'b';
    }
    public function bigTalk() {
        echo 'B';
    }
}

class Talker {
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
    }
}

class Aliased_Talker {
    use A, B {
        B::smallTalk insteadof A;
        A::bigTalk insteadof B;
        B::bigTalk as talk;
    }
}
?>

Изменение видимости метода

Используя синтаксис оператора as можно также настроить видимость метода в выставке класса.

Пример #6 Пример изменения видимости метода

<?php
trait HelloWorld {
    public function sayHello() {
        echo 'Hello World!';
    }
}

// Изменение видимости класса sayHello
class MyClass1 {
    use HelloWorld { sayHello as protected; }
}

// Создание псевдонима метода с измененной видимостью
// видимость sayHello не изменилась
class MyClass2 {
    use HelloWorld { sayHello as private myPrivateHello; }
}
?>

Трейты, скомпонованные из трейтов

Аналогично тому, как классы могут использовать трейты, также могут и трейты использовать другие трейты. Используя один или более трейтов в определении другого трейта, он может частично или полностью состоять из членов, описанных в этих трейтах.

Пример #7 Пример трейтов, скомпонованных из трейтов

<?php
trait Hello {
    public function sayHello() {
        echo 'Hello ';
    }
}

trait World {
    public function sayWorld() {
        echo 'World!';
    }
}

trait HelloWorld {
    use Hello, World;
}

class MyHelloWorld {
    use HelloWorld;
}

$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
?>

Результат выполнения данного примера:

Hello World!

Абстрактные члены трейтов

Трейты поддерживают использование абстрактных методов для того, чтобы устанавливать требования при выставке класса.

Пример #8 Экпресс требования с абстрактными методами

<?php
trait Hello {
    public function sayHelloWorld() {
        echo 'Hello'.$this->getWorld();
    }
    abstract public function getWorld();
}

class MyHelloWorld {
    private $world;
    use Hello;
    public function getWorld() {
        return $this->world;
    }
    public function setWorld($val) {
        $this->world = $val;
    }
}
?>

Статические члены трейта

На статические переменные можно ссылаться внутри методов трейта, но нельзя определить статические переменные в самом трейте. Тем не менее, трейт может описывать статические методы для демонстрации класса.

Пример #9 Статические переменные

<?php
trait Counter {
    public function inc() {
        static $c = 0;
        $c = $c + 1;
        echo "$c\n";
    }
}

class C1 {
    use Counter;
}

class C2 {
    use Counter;
}

$o = new C1(); $o->inc(); // echo 1
$p = new C2(); $p->inc(); // echo 1
?>

Пример #10 Статические методы

<?php
trait StaticExample {
    public static function doSomething() {
        return 'Что-либо делаем';
    }
}

class Example {
    use StaticExample;
}

Example::doSomething();
?>

Свойства

Трейты могут также определять свойства.

Пример #11 Определение свойств

<?php
trait PropertiesTrait {
    public $x = 1;
}

class PropertiesExample {
    use PropertiesTrait;
}

$example = new PropertiesExample;
$example->x;
?>

Если трейт определяет свойство, то класс не может определить свойство с таким же именем, иначе будет сгенерирована ошибка. Это будет ошибка E_STRICT, если определение класса совместимо (такая же область видимости и начальные значения), в ином случае - фатальная ошибка.

Пример #12 Разрешение конфликтов

<?php
trait PropertiesTrait {
    public $same = true;
    public $different = false;
}

class PropertiesExample {
    use PropertiesTrait;
    public $same = true; // Строгое следование стандартам
    public $different = true; // Фатальная ошибка
}
?>


Анонимные классы

Поддержка анонимных классов была добавлена в PHP 7. Анонимные классы очень полезны, когда надо создать простой, одноразовый объект.

<?php

// До PHP 7
class Logger
{
    public function log($msg)
    {
        echo $msg;
    }
}

$util->setLogger(new Logger());

// PHP 7+
$util->setLogger(new class {
    public function log($msg)
    {
        echo $msg;
    }
});

Они могут передавать аргументы в конструкторы, расширять другие классы, реализовывать интерфейсы и использовать трейты как обычный класс:

<?php

class SomeClass {}
interface SomeInterface {}
trait SomeTrait {}

var_dump(new class(10) extends SomeClass implements SomeInterface {
    private $num;

    public function __construct($num)
    {
        $this->num = $num;
    }

    use SomeTrait;
});

Результат выполнения данного примера:

object(class@anonymous)#1 (1) {
  ["Command line code0x104c5b612":"class@anonymous":private]=>
  int(10)
}

Вложение анонимного класс в другой класс не дает ему доступ к приватным или защищенным методам и свойствам этого внешнего класса. Для того, чтобы использовать защищенные свойства и методы внешнего класса, анонимный класс может расширить внешний класс. Чтобы использовать приватные или защищенные свойства внешнего класса в анонимном классе, они должны быть переданы через конструктор:

<?php

class Outer
{
    private $prop = 1;
    protected $prop2 = 2;

    protected function func1()
    {
        return 3;
    }

    public function func2()
    {
        return new class($this->prop) extends Outer {
            private $prop3;

            public function __construct($prop)
            {
                $this->prop3 = $prop;
            }

            public function func3()
            {
                return $this->prop2 + $this->prop3 + $this->func1();
            }
        };
    }
}

echo (new Outer)->func2()->func3();

Результат выполнения данного примера:

6

Все объекты, созданные одной и той же декларацией анонимного класса, являются объектами одного класса.

<?php
function anonymous_class()
{
    return new class {};
}

if (get_class(anonymous_class()) === get_class(anonymous_class())) {
    echo 'Тот же класс';
} else {
    echo 'Другой класс';
}

Результат выполнения данного примера:

Тот же класс

Замечание:

Обратите внимание, что анонимным классам присваиваются имена движком PHP, как показано в примере ниже. Это имя следует рассматривать как особенности реализации и не использовать в логике программы.

<?php
echo get_class(new class {});

Результатом выполнения данного примера будет что-то подобное:

class@anonymous/in/oNi1A0x7f8636ad2021


Перегрузка

Перегрузка в PHP означает возможность динамически "создавать" свойства и методы. Эти динамические сущности обрабатываются с помощью "волшебных" методов, которые можно создать в классе для различных видов действий.

Методы перегрузки вызываются при взаимодействии с теми свойствами или методами, которые не были объявлены или не видны в текущей области видимости. Далее в этом разделе мы будем использовать термины "недоступные свойства" или "недоступные методы" для отражения этой комбинации объявления и области видимости.

Все методы перегрузки должны быть объявлены как public.

Замечание:

Ни один аргумент не может быть передан по ссылке в эти "волшебные" методы.

Замечание:

Интерпретация "перегрузки" в PHP отличается от остальных объектно-ориентированных языков. Традиционно перегрузка означает возможность иметь множество одноименных методов с разным количеством или различными типами аргументов.

Список изменений

Версия | Описание
5.3.0 | Добавлен метод __callStatic(). Добавлено предупреждение об усилении публичной видимости и не-статичном объявлении.
5.1.0 | Добавлены методы __isset() и __unset(). Добавлена поддержка для перегрузки приватных свойств с помощью __get().
5.0.0 | Добавлен метод __get().

Перегрузка свойств

public void __set ( string $name , mixed $value )
public mixed __get ( string $name )
public bool __isset ( string $name )
public void __unset ( string $name )

Метод __set() будет выполнен при записи данных в недоступные свойства.

Метод __get() будет выполнен при чтении данных из недоступных свойств.

Метод __isset() будет выполнен при использовании isset() или empty() на недоступных свойствах.

Метод __unset() будет выполнен при вызове unset() на недоступном свойстве.

Аргумент $name представляет собой имя вызываемого свойства. Метод __set() содержит аргумент $value, представляющий собой значение, которое будет записано в свойство с именем $name.

Перегрузка свойств работает только в контексте объекта. Данные магические методы не будут вызваны в статическом контексте. Поэтому данные методы не должны объявляться статичными. Начиная с версии PHP 5.3.0, при объявлении "волшебного" метода в качестве static будет показано предупреждение.

Замечание:

Возвращаемое значение метода __set() будет проигнорировано из-за способа обработки в PHP оператора присваивания. Аналогично, __get() никогда не вызовется при цепных присваиваниях, например, таких:

 $a = $obj->b = 8;

Пример #1
     Перегрузка свойств с помощью методов __get(),
     __set(), __isset()
     и __unset()

<?php
class PropertyTest
{
    /**  Место хранения перегружаемых данных.  */
    private $data = array();

    /**  Перегрузка не применяется к объявленным свойствам.  */
    public $declared = 1;

    /**  Здесь перегрузка будет использована только при доступе вне класса.  */
    private $hidden = 2;

    public function __set($name, $value)
    {
        echo "Установка '$name' в '$value'\n";
        $this->data[$name] = $value;
    }

    public function __get($name)
    {
        echo "Получение '$name'\n";
        if (array_key_exists($name, $this->data)) {
            return $this->data[$name];
        }

        $trace = debug_backtrace();
        trigger_error(
            'Неопределенное свойство в __get(): ' . $name .
            ' в файле ' . $trace[0]['file'] .
            ' на строке ' . $trace[0]['line'],
            E_USER_NOTICE);
        return null;
    }

    /**  Начиная с версии PHP 5.1.0  */
    public function __isset($name)
    {
        echo "Установлено ли '$name'?\n";
        return isset($this->data[$name]);
    }

    /**  Начиная с версии PHP 5.1.0  */
    public function __unset($name)
    {
        echo "Уничтожение '$name'\n";
        unset($this->data[$name]);
    }

    /**  Не "волшебный" метод, просто для примера. */
    public function getHidden()
    {
        return $this->hidden;
    }
}

echo "<pre>\n";

$obj = new PropertyTest;

$obj->a = 1;
echo $obj->a . "\n\n";

var_dump(isset($obj->a));
unset($obj->a);
var_dump(isset($obj->a));
echo "\n";

echo $obj->declared . "\n\n";

echo "Давайте поэкспериментируем с private свойством 'hidden':\n";
echo "Private свойства видны внутри класса, поэтому __get() не используется...\n";
echo $obj->getHidden() . "\n";
echo "Private свойства не видны вне класса, поэтому __get() используется...\n";
echo $obj->hidden . "\n";
?>

Результат выполнения данного примера:

Установка 'a' в '1'
Получение 'a'
1

Установлено ли 'a'?
bool(true)
Уничтожение 'a'
Установлено ли 'a'?
bool(false)

1

Давайте поэкспериментируем с private свойством 'hidden':
Private свойства видны внутри класса, поэтому __get() не используется...
2
Private свойства не видны вне класса, поэтому __get() используется...
Получение 'hidden'

Notice:  Неопределенное свойство в __get(): hidden в файле <file> на строке 70 в <file> на строке 29

Перегрузка методов

public mixed __call ( string $name , array $arguments )
public static mixed __callStatic ( string $name , array $arguments )

В контексте объекта при вызове недоступных методов вызывается метод __call().

В статическом контексте при вызове недоступных методов вызывается метод __callStatic().

Аргумент $name представляет собой имя вызываемого метода. Аргумент $arguments представляет собой числовой массив, содержащий параметры, переданные в вызываемый метод $name.

Пример #2 Перегрузка методов с помощью методов __call() и __callStatic()

<?php
class MethodTest {
    public function __call($name, $arguments) {
        // Замечание: значение $name регистрозависимо.
        echo "Вызов метода '$name' "
             . implode(', ', $arguments). "\n";
    }

    /**  Начиная с версии PHP 5.3.0  */
    public static function __callStatic($name, $arguments) {
        // Замечание: значение $name регистрозависимо.
        echo "Вызов статического метода '$name' "
             . implode(', ', $arguments). "\n";
    }
}

$obj = new MethodTest;
$obj->runTest('в контексте объекта');

MethodTest::runTest('в статическом контексте');  // Начиная с версии PHP 5.3.0
?>

Результат выполнения данного примера:

Вызов метода 'runTest' в контексте объекта
Вызов статического метода 'runTest' в статическом контексте


Итераторы объектов

PHP 5 предоставляет такой способ объявления объектов, который дает возможность пройти по списку элементов данного объекта, например, с помощью оператора foreach. По умолчанию, в этом обходе (итерации) будут участвовать все видимые свойства объекта.

Пример #1 Итерация простого объекта

<?php
class MyClass
{
    public $var1 = 'value 1';
    public $var2 = 'value 2';
    public $var3 = 'value 3';

    protected $protected = 'protected var';
    private   $private   = 'private var';

    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 => value 1
var2 => value 2
var3 => value 3

MyClass::iterateVisible:
var1 => value 1
var2 => value 2
var3 => value 3
protected => protected var
private => private var

Как показывает результат, foreach проитерировал все доступные и принадлежащие объекту видимые свойства.

Кроме того, вы можете развить эту концепцию и реализовать встроенный в PHP 5 интерфейс Iterator. Это позволит самому объекту решать как он будет итерироваться и какие данные будут доступны на каждой итерации.

Пример #2 Объект Iteration, реализующий интерфейс Iterator

<?php
class MyIterator implements Iterator
{
    private $var = array();

    public function __construct($array)
    {
        if (is_array($array)) {
            $this->var = $array;
        }
    }

    public function rewind()
    {
        echo "перемотка в начало\n";
        reset($this->var);
    }

    public function current()
    {
        $var = current($this->var);
        echo "текущий: $var\n";
        return $var;
    }

    public function key()
    {
        $var = key($this->var);
        echo "ключ: $var\n";
        return $var;
    }

    public function next()
    {
        $var = next($this->var);
        echo "следующий: $var\n";
        return $var;
    }

    public function valid()
    {
        $key = key($this->var);
        $var = ($key !== NULL && $key !== FALSE);
        echo "верный: $var\n";
        return $var;
    }

}

$values = array(1,2,3);
$it = new MyIterator($values);

foreach ($it as $a => $b) {
    print "$a: $b\n";
}
?>

Результат выполнения данного примера:

перемотка в начало
верный: 1
текущий: 1
ключ: 0
0: 1
следующий: 2
верный: 1
текущий: 2
ключ: 1
1: 2
следующий: 3
верный: 1
текущий: 3
ключ: 2
2: 3
следующий:
верный:

Интерфейс IteratorAggregate может быть использован как альтернатива реализации всех методов интерфейса Iterator. IteratorAggregate требует чтобы был реализован только один метод - IteratorAggregate::getIterator(), который должен возвращать экземпляр класса, реализующий интерфейс Iterator.

Пример #3 Объект Iteration, реализующий интерфейс IteratorAggregate

<?php
class MyCollection implements IteratorAggregate
{
    private $items = array();
    private $count = 0;

    // Требование интерфейса IteratorAggregate
    public function getIterator() {
        return new MyIterator($this->items);
    }

    public function add($value) {
        $this->items[$this->count++] = $value;
    }
}

$coll = new MyCollection();
$coll->add('value 1');
$coll->add('value 2');
$coll->add('value 3');

foreach ($coll as $key => $val) {
    echo "ключ/значение: [$key -> $val]\n\n";
}
?>

Результат выполнения данного примера:

перемотка в начало
текущий: value 1
верный: 1
текущий: value 1
ключ: 0
ключ/значение: [0 -> value 1]

следующий: value 2
текущий: value 2
верный: 1
текущий: value 2
ключ: 1
ключ/значение: [1 -> value 2]

следующий: value 3
текущий: value 3
верный: 1
текущий: value 3
ключ: 2
ключ/значение: [2 -> value 3]

следующий:
текущий:
верный:

Замечание:

Больше примеров итераторов можно найти в расширении SPL.

Замечание:

Пользователи PHP 5.5 и более поздних версий также могут изучить генераторы, представляющие собой альтернативный способ определения итераторов.


Магические методы

Имена методов
__construct(),
__destruct(),
__call(),
__callStatic(),
__get(),
__set(),
__isset(),
__unset(),
__sleep(),
__wakeup(),
__toString(),
__invoke(),
__set_state(),
__clone() и
__debugInfo()
зарезервированы для "магических" методов в PHP.
Не стоит называть свои методы этими именами, если вы не хотите
использовать их "магическую" функциональность.

Предостережение

PHP оставляет за собой право все методы, начинающиеся с __, считать "магическими". Не рекомендуется использовать имена методов с __ в PHP, если вы не желаете использовать соответствующий "магический" функционал.

__sleep() и __wakeup()

public array __sleep ( void )
void __wakeup ( void )

Функция serialize() проверяет, присутствует ли в вашем классе метод с "магическим" именем __sleep(). Если это так, то этот метод выполняется прежде любой операции сериализации. Он может очистить объект и предполагается, что будет возвращен массив с именами всех переменных объекта, который должен быть сериализован. Если метод ничего не возвращает кроме NULL, то это значит, что объект сериализован и выдается предупреждение E_NOTICE.

Замечание:

Недопустимо возвращать в __sleep() имена приватных свойств объекта в родительский класс. Это приведет к предупреждению E_NOTICE. Вместо этого вы можете использовать интерфейс Serializable.

Рекомендованное использование __sleep() состоит в завершении работы над данными, ждущими обработки или других подобных задач очистки. Кроме того, этот метод можно выполнять в тех случаях, когда нет необходимости сохранять полностью очень большие объекты.

С другой стороны, функция unserialize() проверяет наличие метода с "магическим" именем __wakeup(). Если такой имеется, то он может воссоздать все ресурсы объекта, принадлежавшие ему.

Обычно __wakeup() используется для восстановления любых соединений с базой данных, которые могли быть потеряны во время операции сериализации и выполнения других операций повторной инициализации.

Пример #1 Sleep и wakeup

<?php
class Connection
{
    protected $link;
    private $dsn, $username, $password;

    public function __construct($dsn, $username, $password)
    {
        $this->dsn = $dsn;
        $this->username = $username;
        $this->password = $password;
        $this->connect();
    }

    private function connect()
    {
        $this->link = new PDO($this->dsn, $this->username, $this->password);
    }

    public function __sleep()
    {
        return array('dsn', 'username', 'password');
    }

    public function __wakeup()
    {
        $this->connect();
    }
}?>

__toString()

public string __toString ( void )

Метод __toString() позволяет классу решать самостоятельно, как он должен реагировать при преобразовании в строку. Например, что напечатает echo $obj;. Этот метод должен возвращать строку, иначе выдастся неисправимая ошибка E_RECOVERABLE_ERROR.

Внимание

Нельзя бросить исключение из метода __toString(). Попытка это сделать закончится фатальной ошибкой.

Пример #2 Простой пример

<?php
// Объявление простого класса
class TestClass
{
    public $foo;

    public function __construct($foo)
    {
        $this->foo = $foo;
    }

    public function __toString()
    {
        return $this->foo;
    }
}

$class = new TestClass('Привет');
echo $class;
?>

Результат выполнения данного примера:

Привет

Ранее, до PHP 5.2.0, метод __toString() вызывался только непосредственно в сочетании с функциями echo или print. Начиная с PHP 5.2.0, он вызывается в любом строчном контексте (например, в printf() с модификатором %s), но не в контекстах других типов (например, с %d модификатором). Начиная с PHP 5.2.0, преобразование объекта в строку при отсутствии метода __toString() вызывает ошибку E_RECOVERABLE_ERROR.

__invoke()

mixed __invoke ([ $... ] )

Метод __invoke() вызывается, когда скрипт пытается выполнить объект как функцию.

Замечание:

Данный метод доступен начиная с PHP 5.3.0.

Пример #3 Использование __invoke()

<?php
class CallableClass
{
    public function __invoke($x)
    {
        var_dump($x);
    }
}
$obj = new CallableClass;
$obj(5);
var_dump(is_callable($obj));
?>

Результат выполнения данного примера:

int(5)
bool(true)

__set_state()

static object __set_state ( array $properties )

Этот статический метод вызывается для тех классов, которые экспортируются функцией var_export() начиная с PHP 5.1.0.

Параметр этого метода должен содержать массив, состоящий из экспортируемых свойств в виде array('property' => value, ...).

Пример #4 Использование __set_state() (начиная с PHP 5.1.0)

<?php

class A
{
    public $var1;
    public $var2;

    public static function __set_state($an_array) // С PHP 5.1.0
    {
        $obj = new A;
        $obj->var1 = $an_array['var1'];
        $obj->var2 = $an_array['var2'];
        return $obj;
    }
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
                                            //    'var1' => 5,
                                            //    'var2' => 'foo',
                                            // ));
var_dump($b);

?>

Результат выполнения данного примера:

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Замечание: Когда вы экспортируете объект, var_export() не проверяет реализует ли класс объекта метод __set_state() , так что импорт такого объекта завершится с ошибкой в случае, если метод __set_state() не реализован. В частности это относится к некоторым встроенным классам. Необходимость проверки, реализует ли импортируемый класс метод __set_state(), полностью лежит на разработчике.

__debugInfo()

array __debugInfo ( void )

Этот метод вызывается функцией var_dump(), когда необходимо вывести список свойств объекта. Если этот метод не определен, тогда будут выведены все public, protected и private свойства объекта.

Этот метод был добавлен в PHP 5.6.0.

Пример #5 Использование __debugInfo()

<?php
class C {
    private $prop;

    public function __construct($val) {
        $this->prop = $val;
    }

    public function __debugInfo() {
        return [
            'propSquared' => $this->prop ** 2,
        ];
    }
}

var_dump(new C(42));
?>

Результат выполнения данного примера:

object(C)#1 (1) {
  ["propSquared"]=>
  int(1764)
}


Ключевое слово "final"

PHP 5 предоставляет ключевое слово final, разместив которое перед объявлениями методов класса, можно предотвратить их переопределение в дочерних классах. Если же сам класс определяется с этим ключевым словом, то он не сможет быть унаследован.

Пример #1 Пример окончательных (final) методов

<?php
class BaseClass {
   public function test() {
       echo "Вызван метод BaseClass::test()\n";
   }

   final public function moreTesting() {
       echo "Вызван метод BaseClass::moreTesting()\n";
   }
}

class ChildClass extends BaseClass {
   public function moreTesting() {
       echo "Вызван метод ChildClass::moreTesting()\n";
   }
}
// Выполнение заканчивается фатальной ошибкой: Cannot override final method BaseClass::moreTesting()
// (Метод BaseClass::moretesting() не может быть переопределён)
?>

Пример #2 Пример окончательного (final) класса

<?php
final class BaseClass {
   public function test() {
       echo "Вызван метод BaseClass::test()\n";
   }

   // В данном случае неважно, укажете ли вы этот метод как final или нет
   final public function moreTesting() {
       echo "BaseClass::moreTesting() called\n";
   }
}

class ChildClass extends BaseClass {
}
// Выполнение заканчивается фатальной ошибкой: Class ChildClass may not inherit from final class (BaseClass)
// (Класс ChildClass не может быть унаследован от окончательного класса (BaseClass))
?>

Замечание: Свойства не могут быть объявлены окончательными, только классы и методы.


Клонирование объектов

Создание копии объекта с абсолютно идентичными свойствами не всегда является приемлемым вариантом. Хорошим примером необходимости копирования конструкторов может послужить ситуация, когда у вас есть объект, представляющий собой окно GTK и содержащий ресурс-идентификатор этого окна; когда вы создаете копию этого объекта, вам может понадобиться, чтобы копия объекта содержала ресурс-идентификатор нового окна. Другим примером может послужить ситуация, когда ваш объект содержит ссылку на какой-либо другой используемый объект и, когда вы создаёте копию родительского объекта, вам нужно также создать новый экземпляр этого другого объекта, так, чтобы копия объекта-контейнера содержала собственный отдельный экземпляр содержащегося объекта.

Копия объекта создается с использованием ключевого слова clone (который вызывает метод __clone() объекта, если это возможно). Вызов метода __clone() не может быть осуществлён непосредственно.

$copy_of_object = clone $object;

При клонировании объекта, PHP 5 выполняет неполную копию всех свойств объекта. Любые свойства, являющиеся ссылками на другие переменные, останутся ссылками.

void __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->object, иначе
        // он будет указывать на один и тот же объект.
        $this->object1 = clone $this->object1;
    }
}

$obj = new MyCloneable();

$obj->object1 = new SubObject();
$obj->object2 = new SubObject();

$obj2 = clone $obj;

print("Оригинальный объект:\n");
print_r($obj);

print("Клонированный объект:\n");
print_r($obj2);

?>

Результат выполнения данного примера:

Оригинальный объект:
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 1
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)
Клонированный объект:
MyCloneable Object
(
    [object1] => SubObject Object
        (
            [instance] => 3
        )

    [object2] => SubObject Object
        (
            [instance] => 2
        )

)

В PHP 7.0.0 введена возможность обращения к свойствам/методам только что склонированного объекта:

Пример #2 Доступ к только что склонированному объекту

<?php
$dateTime = new DateTime();
echo (clone $dateTime)->format('Y');
?>

Результатом выполнения данного примера будет что-то подобное:

2016


Сравнение объектов

При использовании оператора сравнения (==), свойства объектов просто сравниваются друг с другом, а именно: два объекта равны, если они содержат одинаковые свойства с одинаковыми значениями (значения так же сравниваются через ==), и являются экземплярами одного и того же класса.

С другой стороны, при использовании оператора идентичности (===), переменные, содержание объект, считаются идентичными тогда и только тогда, когда они ссылаются на один и тот же экземпляр одного и того же класса.

Следующий пример внесёт ясность.

Пример #1 Пример сравнения объектов в PHP 5

<?php
function bool2str($bool)
{
    return (string) $bool;
}

function compareObjects(&$o1, &$o2)
{
    echo 'o1 == o2 : ' . bool2str($o1 == $o2) . "\n";
    echo 'o1 != o2 : ' . bool2str($o1 != $o2) . "\n";
    echo 'o1 === o2 : ' . bool2str($o1 === $o2) . "\n";
    echo 'o1 !== o2 : ' . bool2str($o1 !== $o2) . "\n";
}

class Flag
{
    public $flag;

    function Flag($flag = true) {
        $this->flag = $flag;
    }
}

class OtherFlag
{
    public $flag;

    function OtherFlag($flag = true) {
        $this->flag = $flag;
    }
}

$o = new Flag();
$p = new Flag();
$q = $o;
$r = new OtherFlag();

echo "Два экземпляра одного и того же класса\n";
compareObjects($o, $p);

echo "\nДве ссылки на один и тот же экземпляр\n";
compareObjects($o, $q);

echo "\nЭкземпляры двух разных классов\n";
compareObjects($o, $r);
?>

Результат выполнения данного примера:

Два экземпляра одного и того же класса
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Две ссылки на один и тот же экземпляр
o1 == o2 : TRUE
o1 != o2 : FALSE
o1 === o2 : TRUE
o1 !== o2 : FALSE

Экземпляры двух разных классов
o1 == o2 : FALSE
o1 != o2 : TRUE
o1 === o2 : FALSE
o1 !== o2 : TRUE

Замечание:

Расширения могут определять собственные правила для сравнения своих объектов (==).


  • « Сравнение объектов
  • Позднее статическое связывание »
  • PHP Manual
  • Классы и объекты
  • Контроль типа

Контроль типа

Данный документ перенесен в раздел Аргументы функции.


Позднее статическое связывание

Начиная с версии PHP 5.3.0 появилась особенность, называемая позднее статическое связывание, которая может быть использована для того чтобы получить ссылку на вызываемый класс в контексте статического наследования.

Если говорить более точно, позднее статическое связывание сохраняет имя класса указанного в последнем "не перенаправленном вызове". В случае статических вызовов это явно указанный класс (обычно слева от оператора ::); в случае не статических вызовов это класс объекта. "Перенаправленный вызов" - это статический вызов, начинающийся с self::, parent::, static::, или, если двигаться вверх по иерархии классов, forward_static_call(). Функция get_called_class() может быть использована чтобы получить строку с именем вызванного класса, и static:: представляет ее область действия.

Само название "позднее статическое связывание" отражает в себе внутреннюю реализацию этой особенности. "Позднее связывание" отражает тот факт, что обращения через static:: не будут вычисляться по отношению к классу, в котором вызываемый метод определен, а будут вычисляться на основе информации в ходе исполнения. Также эта особенность была названа "статическое связывание" потому, что она может быть использована (но не обязательно) в статических методах.

Ограничения self::

Статические ссылки на текущий класс, наподобие self:: или __CLASS__, вычисляются используя класс, к которому принадлежит функция, в значении места, где она была определена:

Пример #1 Использование self::

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        self::who();
    }
}

class B extends A {
    public static function who() {
        echo __CLASS__;
    }
}

B::test();
?>

Результат выполнения данного примера:

A

Использование позднего статического связывания

Позднее статическое связывание пытается устранить это ограничение предоставляя ключевое слово, которое ссылается на класс, вызванный непосредственно в ходе выполнения. Попросту говоря, ключевое слово, которое позволит вам ссылаться на B из test() в предыдущем примере. Было решено не вводить новое ключевое слово, а использовать static, которое уже зарезервировано.

Пример #2 Простое использованиеstatic::

<?php
class A {
    public static function who() {
        echo __CLASS__;
    }
    public static function test() {
        static::who(); // Здесь действует позднее статическое связывание
    }
}

class B extends A {
    public static function who() {
        echo __CLASS__;
    }
}

B::test();
?>

Результат выполнения данного примера:

B

Замечание:

В нестатическом контексте вызванным классом будет тот, к которому относится экземпляр объекта. Поскольку $this-> будет пытаться вызывать закрытые методы из той же области действия, использование static:: может дать разные результаты. Другое отличие в том, что static:: может ссылаться только на статические поля класса.

Пример #3 Использование static:: в нестатическом контексте

<?php
class A {
    private function foo() {
        echo "success!\n";
    }
    public function test() {
        $this->foo();
        static::foo();
    }
}

class B extends A {
   /* foo() будет скопирован в В, следовательно его область действия по прежнему А,
      и вызов будет успешен*/
}

class C extends A {
    private function foo() {
        /* исходный метод заменен; область действия нового метода С */
    }
}

$b = new B();
$b->test();
$c = new C();
$c->test();   //не верно
?>

Результат выполнения данного примера:

success!
success!
success!

Fatal error:  Call to private method C::foo() from context 'A' in /tmp/test.php on line 9

Замечание:

Разрешающая область позднего статического связывания будет фиксирована вычисляющем ее статическим вызовом. С другой стороны, статические вызовы с использованием таких директив как parent:: или self:: перенаправляют информацию вызова.

Пример #4 Перенаправленные и не перенаправленные вызовы

<?php
class A {
    public static function foo() {
        static::who();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}

class B extends A {
    public static function test() {
        A::foo();
        parent::foo();
        self::foo();
    }

    public static function who() {
        echo __CLASS__."\n";
    }
}
class C extends B {
    public static function who() {
        echo __CLASS__."\n";
    }
}

C::test();
?>

Результат выполнения данного примера:

A
C
C


Объекты и ссылки

Одним из ключевых моментов объектно-ориентированной парадигмы PHP 5, которой часто обсуждается, является "передача объектов по ссылке по умолчанию". Это не совсем верно. Этот раздел уточняет это понятие используя некоторые примеры.

Ссылка в PHP это псевдоним (алиас), который позволяет присвоить двум переменным одинаковое значение. Начиная с PHP 5 объектная переменная больше не содержит сам объект как значение. Такая переменная содержит только идентификатор объекта, который позволяет найти конкретный объект при обращении к нему. Когда объект передается как аргумент функции, возвращается или присваивается другой переменной, то эти разные переменные не являются псевдонимами (алиасами): они содержат копию идентификатора, который указывает на один и тот же объект.

Пример #1 Ссылки и объекты

<?php
class A {
    public $foo = 1;
}

$a = new A;
$b = $a;     // $a и $b копии одного идентификатора
             // ($a) = ($b) = <id>
$b->foo = 2;
echo $a->foo."\n";

$c = new A;
$d = &$c;    // $c и $d ссылки
             // ($c,$d) = <id>

$d->foo = 2;
echo $c->foo."\n";

$e = new A;

function foo($obj) {
    // ($obj) = ($e) = <id>
    $obj->foo = 2;
}

foo($e);
echo $e->foo."\n";

?>

Результат выполнения данного примера:

2
2
2


Сериализация объектов

Сериализация объектов - сохранение объектов между сессиями

Функция serialize() возвращает строковое представление любого значения, которое может быть сохранено в PHP. Функция unserialize() использует эту строку для восcтановления исходного значения переменной. Использование serialize для сериализации объекта сохранит имя класса и все его свойства, однако методы не сохраняются.

Для того, чтобы иметь возможность сделать unserialize() для объекта нужно чтобы класс этого объекта был определен заранее. То есть, если у вас есть экземпляр класса А, и вы сделаете его сериализацию, вы получите его строковое представление, которое содержит значение всех переменных описанных в нем. Для того, чтобы восcтановить объект из строки в другом PHP файле класс A должен быть определен заранее. Это можно сделать сохранив определение класса A в отдельный файл и подключить этот файл или использовать функцию spl_autoload_register() для автоматического подключения.

<?php
// classa.inc:

  class A {
      public $one = 1;

      public function show_one() {
          echo $this->one;
      }
  }

// page1.php:

  include("classa.inc");

  $a = new A;
  $s = serialize($a);
  // сохраняем $s где-нибудь, откуда page2.php сможет его получить.
  file_put_contents('store', $s);

// page2.php:

  // это нужно для того, чтобы функция unserialize работала правильно.
  include("classa.inc");

  $s = file_get_contents('store');
  $a = unserialize($s);

  // теперь можно использовать метод show_one() объекта $a.
  $a->show_one();
?>

Если приложение использует сессии и функцию session_register() для регистрации объектов, эти объекты сериализуются автоматически в конце исполнения каждой страницы PHP, и десериализуются автоматически в начале исполнения каждой из следующих страниц. Это означает, что эти объекты могут появиться на любой из страниц приложения, став однажды частью сессии. Тем не менее, функция session_register() удалена в PHP 5.4.0.

Если в приложении производится сериализация объектов для последующего использования, настоятельно рекомендуется подключать определение класса для этого объекта во всем приложении. Невыполнение этого требования может привести к тому, что объект будет десериализован в отсутствие определения класса, что в свою очередь приведет к тому, что PHP будет использовать для этого объекта класс __PHP_Incomplete_Class_Name, который не имеет методов и сделает объект бесполезным.

В приведенном выше примере $a стало частью сессии после запуска session_register("a"), вы должны подключать файл classa.inc на всех ваших страницах, а не только page1.php и page2.php.

Обратите внимание, что, кроме вышеприведенного совета, можно вмешаться в процесс сериализации и десериализации объекта с помощью методов __sleep() и __wakeup(). Метод __sleep() также позволяет сериализовать лишь некоторое подмножество свойств объекта.


Журнал изменений ООП

Изменения модели ООП в PHP 5 описаны в этом разделе. Описания и другие примечания, касающиеся этих возможностей, описаны в рамках документации ООП PHP5

Версия | Описание
5.6.0 | Добавлено: метод __debugInfo().
5.5.0 | Добавлено: магическая константа ::class.
5.5.0 | Добавлено: finally в обработчик исключений.
5.4.0 | Добавлено: трейты.
5.4.0 | Изменено: Если абстрактный класс определяет сигнатуру для конструктора, то она будет принудительно применяться.
5.3.3 | Изменено: Методы с тем же именем, что и последний элемент пространства имен класса больше не будет рассматриваться как конструктор. Это изменение не будет влиять на классы, не входящие в пространства имен.
5.3.0 | Изменено: Больше не требуется, чтобы классы, реализующие интерфейсы с методами, которые имеют значения по умолчанию в прототипе, соответствовали значениям по умолчанию в интерфейсе.
5.3.0 | Изменено: Теперь стало возможным ссылаться на класс, используя переменную (например, echo $classname::constant;). Значение переменной не может быть ключевым словом (например, self, parent или static).
5.3.0 | Изменено: Ошибка E_WARNING происходит, если магические перегруженные методы задекларированы как статические. Это также усиливает требование, что эти методы должны быть публичными.
5.3.0 | Изменено: До 5.3.0, исключения в функции __autoload() не могли быть перехвачены в блоке catch и приводили к фатальной ошибке. Сейчас исключения в функции __autoload могут быть перехвачены в блоке catch, но с одной оговоркой. Если перехватывается пользовательское исключение, то класс, обрабатывающий это исключение, должен быть доступен. Функция __autoload может быть использована рекурсивно для автозагрузки пользовательского класса обработки исключения.
5.3.0 | Добавлено: Метод __callStatic.
5.3.0 | Добавлено: Поддержка heredoc и nowdoc для констант и определений свойств класса. Примечание: Значение heredoc должны следовать тем же правилам, что и строки в двойных кавычках (например, без переменных внутри).
5.3.0 | Добавлено: Позднее статическое связывание.
5.3.0 | Добавлено: метод __invoke().
5.2.0 | Изменено: Метод __toString() вызывался только когда он напрямую комбинировался с echo или print. Сейчас он вызывается в любом контексте строки (например, в printf() с модификатором %s), но не в других типах контекста (например, с модификатором %d). С PHP 5.2.0, преобразование объектов без метода __toString в строку выдает ошибку уровня E_RECOVERABLE_ERROR.
5.1.3 | Изменено: В предыдущих версиях PHP 5 использование var считалось устаревшим и выдавало ошибку E_STRICT. Сейчас это не считается устаревшим, поэтому ошибка больше не выдается.
5.1.0 | Изменено: Статический метод __set_state() теперь вызывается для классов, экспортируемых функцией var_export().
5.1.0 | Добавлены: методы __isset() и __unset().


Пространства имен

Содержание

  • Обзор пространств имен
  • Определение пространств имен
  • Определение подпространств имен
  • Описание нескольких пространств имен в одном файле
  • Использование пространства имен: основы
  • Пространства имен и динамические особенности языка
  • Ключевое слово namespace и константа __NAMESPACE__
  • Использование пространств имен: импорт/создание псевдонима имени
  • Глобальное пространство
  • Использование пространств имен: переход к глобальной функции/константе
  • Правила разрешения имен
  • Часто задаваемые вопросы (FAQ): вещи, которые вам необходимо знать о пространствах имен


Обзор пространств имен

(PHP 5 >= 5.3.0, PHP 7)

Что такое пространства имен? В широком смысле - это один из способов инкапсуляции элементов. Такое абстрактное понятие можно увидеть во многих местах. Например, в любой операционной системе директории служат для группировки связанных файлов и выступают в качестве пространства имен для находящихся в них файлов. В качестве конкретного примера файл foo.txt может находиться сразу в обоих директориях: /home/greg и /home/other, но две копии foo.txt не могут существовать в одной директории. Кроме того, для доступа к foo.txt извне директории /home/greg, мы должны добавить имя директории перед именем файла используя разделитель, чтобы получить /home/greg/foo.txt. Этот же принцип распространяется и на пространства имен в программировании.

Версия | Описание
7.0.0 | Добавлена возможность групповой декларации "use".

В PHP пространства имен используются для решения двух проблем, с которыми сталкиваются авторы библиотек и приложений при создании повторно используемых элементов кода, таких как классы и функции:

  1. Конфликт имен между вашим кодом и внутренними классами/функциями/константами PHP или сторонними.
  2. Возможность создавать псевдонимы (или сокращения) для Ну_Очень_Длинных_Имен, чтобы облегчить первую проблему и улучшить читаемость исходного кода.

Пространства имен PHP предоставляют возможность группировать логически связанные классы, интерфейсы, функции и константы.

Пример #1 Пример синтаксиса, использующего пространство имен

<?php
namespace my\name; // см. раздел "Определение пространств имен"
class MyClass {}
function myfunction() {}
const MYCONST = 1;

$a = new MyClass;
$c = new \my\name\MyClass; // см. раздел "Глобальная область видимости"

$a = strlen('hi'); // см. раздел "Использование пространств имен: возврат
                   // к глобальной функции/константе"

$d = namespace\MYCONST; // см. раздел "оператор пространства имен и
                        // константа __NAMESPACE__"
$d = __NAMESPACE__ . '\MYCONST';
echo constant($d); // см. раздел "Пространства имен и динамические особенности языка"
?>

Замечание:

Названия пространств имен PHP и php, и составные названия, начинающиеся с этих (такие как PHP\Classes), являются зарезервированными для нужд языка и их не следует использовать в пользовательском коде.


Определение пространств имен

(PHP 5 >= 5.3.0, PHP 7)

Хотя любой исправный PHP-код может находиться внутри пространства имен, только классы (включая абстрактные и трейты), интерфейсы, функции и константы зависят от него.

Пространства имен объявляются с помощью зарезервированного слова namespace. Файл, содержащий пространство имен, должен содержать его объявление в начале перед любым другим кодом, кроме зарезервированного слова declare.

Пример #1 Объявление единого пространства имен

<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

?>
Только выражение declare может находиться перед объявлением пространства имен для указания кодировки файла. Кроме того, объявлению пространства имен не должен предшествовать не PHP-код, в том числе лишние пробелы:

Пример #2 Объявление простого пространства имен

<html>
<?php
namespace MyProject; // fatal error - объявление пространства имен должно быть первым выражением в скрипте
?>

Кроме того, в отличии от любой другой конструкции PHP, одно и тоже пространство имен можно определять в нескольких файлах, что позволяет распределять находящееся в них по файловой системе.


Определение подпространств имен

(PHP 5 >= 5.3.0, PHP 7)

Так же как файлы и каталоги, пространства имен PHP позволяют создавать иерархию имен. Таким образом, имя пространства может быть определено с подуровнями:

Пример #1 Определение пространства имен с иерархией

<?php
namespace MyProject\Sub\Level;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

?>
Вышеприведенный пример создает константу MyProject\Sub\Level\CONNECT_OK, класс MyProject\Sub\Level\Connection и функцию MyProject\Sub\Level\connect.


Описание нескольких пространств имен в одном файле

(PHP 5 >= 5.3.0, PHP 7)

Несколько пространств имен также можно описать в одном файле с помощью двух допустимых синтаксических конструкций.

Пример #1 Описание нескольких пространств имен, простой синтаксис

<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

namespace AnotherProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
?>

Данный синтаксис не рекомендуется для комбинирования пространств имен в одном файле. Вместо этого рекомендуется использовать альтернативный синтаксис со скобками.

Пример #2 Описание нескольких пространств имен, синтаксис со скобками

<?php
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace AnotherProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}
?>

Настоятельно не рекомендуется при программировании комбинировать несколько пространств имен в один файл. Основным применением этому может быть объединение нескольких PHP файлов в один файл.

Для объединения кода в глобальном пространстве имен с кодом в других пространствах имен, используется только синтаксис со скобками. Глобальный код должен быть помещен в конструкцию описания пространства имен без указания имени:

Пример #3 Описание глобального и обычного пространства имен в одном файле

<?php
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace {       // глобальный код
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>

PHP-код не может находиться вне скобок конструкции пространства имен, кроме начального выражения declare.

Пример #4 Описание глобального и обычного пространства имен в одном файле

<?php
declare(encoding='UTF-8');
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace {      // глобальный код
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>


Использование пространства имен: основы

(PHP 5 >= 5.3.0, PHP 7)

До обсуждения использования пространств имен важно понять как PHP узнает какие элементы из пространства имен запрашиваются в вашем коде. Можно провести аналогию между пространствами имен PHP и файловой системой. Есть три способа обратиться к файлу в файловой системе:

  1. Относительное имя файла, такое как foo.txt, преобразуемое в currentdirectory/foo.txt, где currentdirectory текущая директория, в которой мы находимся. Тогда, если текущая директория /home/foo, то имя преобразуется в /home/foo/foo.txt.
  2. Относительное имя пути, такое как subdirectory/foo.txt, преобразуется в currentdirectory/subdirectory/foo.txt.
  3. Абсолютное имя пути, такое как /main/foo.txt, которое остается таким же: /main/foo.txt.
Тот же принцип применим и к элементам из пространств имен PHP. Для примера, имя класса может быть указано тремя способами:
  1. Неполные имена (имена классов без префикса), такие как $a = new foo(); или foo::staticmethod();. Если текущее пространство имен currentnamespace, то эти имена преобразуются в currentnamespace\foo. Если код находится в глобальном пространстве имен, то имена остаются такими же: foo. Предупреждение: неполные имена для функций и констант будут определяться в глобальном пространстве имен, если они не определены в текущем пространстве имен. Подробнее в Использование пространств имен: доступ к глобальным функциям и классам.
  2. Полные имена (имена классов с префиксами), такие как $a = new subnamespace\foo(); или subnamespace\foo::staticmethod();. Если текущее пространство имен currentnamespace, то эти имена преобразуются в currentnamespace\subnamespace\foo. Если код находится в глобальном пространстве имен, то имена преобразуются в subnamespace\foo.
  3. Абсолютные имена или имена с предшествующим префиксом, обозначающим глобальное пространство. $a = new \currentnamespace\foo(); или \currentnamespace\foo::staticmethod();. Имена всегда определяются также как и записаны: currentnamespace\foo.

Ниже приведен пример трех вариантов синтаксиса в реальном коде:

file1.php

<?php
namespace Foo\Bar\subnamespace;

const FOO = 1;
function foo() {}
class foo
{
    static function staticmethod() {}
}
?>

file2.php

<?php
namespace Foo\Bar;
include 'file1.php';

const FOO = 2;
function foo() {}
class foo
{
    static function staticmethod() {}
}

/* Неполные имена */
foo(); // определяется как функция Foo\Bar\foo
foo::staticmethod(); // определяется как класс Foo\Bar\foo с методом staticmethod
echo FOO; // определяется как константа Foo\Bar\FOO

/* Полные имена */
subnamespace\foo(); // определяется как функция Foo\Bar\subnamespace\foo
subnamespace\foo::staticmethod(); // определяется как класс Foo\Bar\subnamespace\foo
                                  // c методом staticmethod
echo subnamespace\FOO; // определяется как константа Foo\Bar\subnamespace\FOO

/* Абсолютные имена */
\Foo\Bar\foo(); // определяется как функция Foo\Bar\foo
\Foo\Bar\foo::staticmethod(); // определяется как класс Foo\Bar\foo с методом staticmethod
echo \Foo\Bar\FOO; // определяется как константа Foo\Bar\FOO
?>

Обратите внимание, что для доступа к любым глобальным классам, функциям или константам, может использоваться абсолютное имя, такое как \strlen(), или \Exception, или \INI_ALL.

Пример #1 Доступ к глобальным классам, функциям и константам из пространства имен

<?php
namespace Foo;

function strlen() {}
const INI_ALL = 3;
class Exception {}

$a = \strlen('hi'); // вызывает глобальную функцию strlen
$b = \INI_ALL; // получает доступ к глобальной константе INI_ALL
$c = new \Exception('error'); // Создает экземпляр глобального класса Exception
?>


Пространства имен и динамические особенности языка

(PHP 5 >= 5.3.0, PHP 7)

На реализацию пространств имен в PHP повлияли и динамические особенности языка. Преобразуем нижеследующий код для использования пространств имен:

Пример #1 Динамически доступные элементы

example1.php:

<?php
class classname
{
    function __construct()
    {
        echo __METHOD__,"\n";
    }
}
function funcname()
{
    echo __FUNCTION__,"\n";
}
const constname = "global";

$a = 'classname';
$obj = new $a; // выводит classname::__construct
$b = 'funcname';
$b(); // выводит funcname
echo constant('constname'), "\n"; // выводит global
?>
Необходимо использовать абсолютное имя (имя класса с префиксом пространства имен). Обратите внимание, что нет никакой разницы между полным именем и абсолютным внутри динамического имени класса, функции или константы. Начальный обратный слэш не является необходимым.

Пример #2 Динамически доступные элементы пространства имен

<?php
namespace namespacename;
class classname
{
    function __construct()
    {
        echo __METHOD__,"\n";
    }
}
function funcname()
{
    echo __FUNCTION__,"\n";
}
const constname = "namespaced";

include 'example1.php';

$a = 'classname';
$obj = new $a; // выводит classname::__construct
$b = 'funcname';
$b(); // выводит funcname
echo constant('constname'), "\n"; // выводит global

/* обратите внимание, что при использовании двойных кавычек символ обратного слэша должен быть заэкранирован. Например, "\\namespacename\\classname" */
$a = '\namespacename\classname';
$obj = new $a; // выводит namespacename\classname::__construct
$a = 'namespacename\classname';
$obj = new $a; // также выводит namespacename\classname::__construct
$b = 'namespacename\funcname';
$b(); // выводит namespacename\funcname
$b = '\namespacename\funcname';
$b(); // также выводит namespacename\funcname
echo constant('\namespacename\constname'), "\n"; // выводит namespaced
echo constant('namespacename\constname'), "\n"; // также выводит namespaced
?>

Обязательно прочитайте примечание об экранировании имен пространства имен в строках.


Ключевое слово namespace и константа __NAMESPACE__

(PHP 5 >= 5.3.0, PHP 7)

PHP поддерживает два способа к абстрактно доступным элементам в текущем пространстве имен таким, как магическая константа __NAMESPACE__ и ключевое слово namespace.

Значение константы __NAMESPACE__ - это строка, которая содержит имя текущего пространства имен. В глобальном пространстве, вне пространства имен, она содержит пустую строку.

Пример #1 Пример использование константы __NAMESPACE__ в коде с пространством имен

<?php
namespace MyProject;

echo '"', __NAMESPACE__, '"'; // выводит "MyProject"
?>

Пример #2 Пример использование константы __NAMESPACE__ в глобальном пространстве

<?php

echo '"', __NAMESPACE__, '"'; // выводит ""
?>
Константа __NAMESPACE__ полезна для динамически конструируемых имен, например:

Пример #3 использование константы __NAMESPACE__ для динамического конструирования имени

<?php
namespace MyProject;

function get($classname)
{
    $a = __NAMESPACE__ . '\\' . $classname;
    return new $a;
}
?>

Ключевое слово namespace может быть использовано для явного запроса элемента из текущего пространства имен или из подпространства. Это эквивалент оператора self для классов в пространстве имен.

Пример #4 Оператор namespace, внутри пространства имен

<?php
namespace MyProject;

use blah\blah as mine; // см. "Использование пространств имен: импорт/создание псевдонима имени"

blah\mine(); // вызывает функцию MyProject\blah\mine()
namespace\blah\mine(); // вызывает функцию MyProject\blah\mine()

namespace\func(); // вызывает функцию MyProject\func()
namespace\sub\func(); // вызывает функцию MyProject\sub\func()
namespace\cname::method(); // вызывает статический метод "method" класса MyProject\cname
$a = new namespace\sub\cname(); // Создает экземпляр класса MyProject\sub\cname
$b = namespace\CONSTANT; // присваивает значение константы MyProject\CONSTANT переменной $b
?>

Пример #5 Оператор namespace в глобальном коде

<?php

namespace\func(); // вызывает функцию  func()
namespace\sub\func(); // вызывает функцию  sub\func()
namespace\cname::method(); // вызывает статический метод "method" класса cname
$a = new namespace\sub\cname(); // Создает экземпляр класса sub\cname
$b = namespace\CONSTANT; // присваивает значение константы CONSTANT переменной $b
?>


Использование пространств имен: импорт/создание псевдонима имени

(PHP 5 >= 5.3.0, PHP 7)

Возможность ссылаться на внешнее абсолютное имя по псевдониму или импортирование - это важная особенность пространств имен. Это похоже на возможность файловых систем unix создавать символические ссылки на файл или директорию.

Все версии PHP, поддерживающие пространства имен, поддерживают три вида создания псевдонима имени или импорта: создание псевдонима для имени класса, создание псевдонима для имени интерфейса и для имени пространства имен. PHP 5.6+ также поддерживает импорт функций и имен констант.

В PHP создание псевдонима имени выполняется с помощью оператора use. Вот пример, показывающий 5 типов импорта:

Пример #1 импорт/создание псевдонима имени с помощью оператора use

<?php
namespace foo;
use My\Full\Classname as Another;

// это тоже самое, что и использование My\Full\NSname как NSname
use My\Full\NSname;

// импортирование глобального класса
use ArrayObject;

// импортирование функции (PHP 5.6+)
use function My\Full\functionName;

// псевдоним функции (PHP 5.6+)
use function My\Full\functionName as func;

// импортирование константы (PHP 5.6+)
use const My\Full\CONSTANT;

$obj = new namespace\Another; // создает экземпляр класса foo\Another
$obj = new Another; // создает объект класса My\Full\Classname
NSname\subns\func(); // вызывает функцию My\Full\NSname\subns\func
$a = new ArrayObject(array(1)); // создает объект класса ArrayObject
// без выражения "use ArrayObject" мы создадим объект класса foo\ArrayObject
func(); // вызывает функцию My\Full\functionName
echo CONSTANT; // выводит содержимое константы My\Full\CONSTANT
?>
Обратите внимание, что для имен в пространстве имен (абсолютные имена, содержащие разделитель пространств имен, такие как Foo\Bar, в отличие от глобальных имен, которые его не содержат, такие как FooBar) нет необходимости в начальном обратном слеше (\) и его присутствие там не рекомендуется, так как импортируемые имена должны быть абсолютными и не обрабатываются относительно текущего пространства имен.

PHP дополнительно поддерживает удобное сокращение для задания нескольких операторов use в одной и той же строке

Пример #2 импорт/создание псевдонима имени с помощью оператора use, комбинирование нескольких операторов use

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // создает объект класса My\Full\Classname
NSname\subns\func(); // вызывает функцию My\Full\NSname\subns\func
?>

Импорт выполняется во время компиляции, и не влияет на имена динамических классов, функций или констант.

Пример #3 Импорт и динамические имена

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // создает объект класса My\Full\Classname
$a = 'Another';
$obj = new $a;      // создает объект класса Another
?>

В дополнение, импорт распространяется только на неполные и полные имена. Абсолютные имена не затрагиваются операцией импорта.

Пример #4 Импортирование и абсолютные имена

<?php
use My\Full\Classname as Another, My\Full\NSname;

$obj = new Another; // создает объект класса My\Full\Classname
$obj = new \Another; // создает объект класса Another
$obj = new Another\thing; // создает объект класса My\Full\Classname\thing
$obj = new \Another\thing; // создает объект класса Another\thing
?>

Scoping rules for importing

Ключевое слово use должно быть указано в самом начале файла (в глобальной области) или внутри объявления пространства имен. Это необходимо потому, что импорт выполняется во время компиляции, а не во время исполнения, поэтому оно не может быть заключено в блок. Следующий пример показывает недопустимое применение ключевого слова use:

Пример #5 Недопустимое правило импорта

<?php
namespace Languages;

function toGreenlandic()
{
    use Languages\Danish;

    //...
}
?>

Замечание:

Правила импорта задаются на каждый файл отдельно. Это означает, что присоединяемые файлы НЕ будут наследовать правила импорта из родительского файла.

Group use declarations

Начиная с PHP 7.0, классы, функции и константы будут импортированы из того же namespace могут группироваться в одном операторе use.

<?php

// Код до PHP 7
use some\namespace\ClassA;
use some\namespace\ClassB;
use some\namespace\ClassC as C;

use function some\namespace\fn_a;
use function some\namespace\fn_b;
use function some\namespace\fn_c;

use const some\namespace\ConstA;
use const some\namespace\ConstB;
use const some\namespace\ConstC;

// Код на PHP 7+
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};


Глобальное пространство

(PHP 5 >= 5.3.0, PHP 7)

Без определения пространства имен, определения всех классов и функций находятся в глобальном пространстве - также как это было в PHP до введения пространств имен. Добавление префикса \ к именам означает, что это имя должно находиться в глобальном пространстве, даже если вы находитесь в контексте определенного пространства имен.

Пример #1 Использованиие глобального пространства и его задание

<?php
namespace A\B\C;

/* Эта функция является A\B\C\fopen */
function fopen() {
     /* ... */
     $f = \fopen(...); // вызов глобальной функции fopen
     return $f;
}
?>


Использование пространств имен: переход к глобальной функции/константе

(PHP 5 >= 5.3.0, PHP 7)

Внутри пространства имен, когда PHP встречает неполное имя класса, функции или константы, он преобразует эти имена с разными приоритетами. Имена классов всегда преобразуются к текущему имени пространства имен. Таким образом, чтобы получить доступ ко внутреннему классу или пользовательскомуклассу вне пространства имен, необходимо ссылаться по их абсолютному имени. Например:

Пример #1 Доступ к глобальным классам внутри пространства имен

<?php
namespace A\B\C;
class Exception extends \Exception {}

$a = new Exception('hi'); // $a - это объект класса A\B\C\Exception
$b = new \Exception('hi'); // $b - это объект класса Exception

$c = new ArrayObject; // фатальная ошибка, класс A\B\C\ArrayObject не найден
?>

Для функций и констант, PHP будет прибегать к глобальным функциям или константам, если функция или константа не существует в пространстве имен.

Пример #2 Необходимость прибегнуть к глобальным функциям/константам внутри пространства имен

<?php
namespace A\B\C;

const E_ERROR = 45;
function strlen($str)
{
    return \strlen($str) - 1;
}

echo E_ERROR, "\n"; // выводит "45"
echo INI_ALL, "\n"; // выводит "7" - прибегнет к глобальной INI_ALL

echo strlen('hi'), "\n"; // выводит "1"
if (is_array('hi')) { // выводит строку "это не массив"
    echo "это массив\n";
} else {
    echo "это не массив\n";
}
?>


Правила разрешения имен

(PHP 5 >= 5.3.0, PHP 7)

Для этих правил здесь приведены несколько важных определений:

Определения имени пространства имен
Неполное имя

Это идентификатор без разделителя пространств имен, например, Foo

Полное имя

Это идентификатор с разделителем пространств имен, например, Foo\Bar

Абсолютное имя

Это идентификатор с разделителем пространств имен, который начинается с разделителя пространств имен, например, \Foo\Bar. Пространство имен \Foo также является абсолютным именем.

Относительное имя

Это идентификатор, начинающзийся с namespace, такой как namespace\Foo\Bar.

Имена разрешаются согласно следующим правилам:

  1. Абсолютные имена всегда разрешаются без лидирующего разделителя пространства имен. Например, \A\B разрешается в A\B.
  2. Относительные именя всегда разрешаются в имена с заменой namespace на текущее пространство имен. Если имя встречается в глобальном пространстве имен, прпефикс namespace\ просто удаляется. К примеру namespace\A внутри пространства имен X\Y разрешается в X\Y\A. То же самое имя в глобальном пространстве имен разрешается в A.
  3. Для полных имен, первый сегмент преобразуется в соответствии с текущей таблицой импорта класса или пространства имен. Например, пространство имен A\B\C импортировано как C, тогда имя C\D\E преобразуется в A\B\C\D\E.
  4. Неполные имена, если отсутствуют ограничения в таблице импорта, предворяются текущим пространством имен. Например, имя C\D\E внутри пространства имен A\B, преобразуется в A\B\C\D\E.
  5. Для неполных имен, имена преобразуются текущей таблице импорта в зависимости от типа элемента. Это означает, что имена классов преобразуются согласно таблице импорта классов, имена функций - согласно таблице импорта функций и константы согласно таблице импорта констант. К примеру, после use A\B\C;, использование new C() разрешается как A\B\C(). Аналогично, после use function A\B\fn;, использование fn() разрешается как A\B\fn.
  6. Неполные имена, если отсутствуют ограничения в таблице импорта и если они используются как класс, то они разрешаются с префиксом текущего пространства имен. Например, new C() внутри пространства имен A\B разрешаются как A\B\C.
  7. Неполные имена, если отсутствуют ограничения в таблице импорта и если они используются как функция или константа и код находится не в глобальном пространстве имен, имена разрешаются во время исполнения. Например код, в пространстве имен A\B, вызывающий функцию foo(), разрешается так:
    1. Производится поиск функции из текущего пространства имен: A\B\foo().
    2. PHP пытается найти и вызвать функцию глобального пространства foo().

Пример #1 Примеры разрешения имен

<?php
namespace A;
use B\D, C\E as F;

// вызовы функций

foo();      // сперва пытается вызвать "foo", определенную в пространстве имен "A",
            // затем вызывает глобальную функцию "foo"

\foo();     // вызывает функцию "foo", определенную в глобальном пространстве

my\foo();   // вызывает функцию "foo", определенную в пространстве "A\my"

F();        // сперва пытается вызвать "F", определенную в пространстве имен "A",
            // затем вызывает глобальную функцию "F"

// ссылки на классы

new B();    // создает объект класса "B", определенного в пространстве имен "A".
            // если не найден, то пытается сделать автозагрузку класса "A\B"

new D();    // используя правила импорта, создает объект класса "D", определенного в пространстве имен "B"
            // если не найден, то пытается сделать автозагрузку класса "B\D"

new F();    // используя правила импорта, создает объект класса "E", определенного в пространстве имен "C"
            // если не найден, то пытается сделать автозагрузку класса "C\E"

new \B();   // создает объект класса "B", определенного в глобальном пространстве,
            // если не найден, то пытается сделать автозагрузку класса "B"

new \D();   // создает объект класса "D", определенного в глобальном пространстве,
            // если не найден, то пытается сделать автозагрузку класса "D"

new \F();   // создает объект класса "F", определенного в глобальном пространстве,
            // если не найден, то пытается сделать автозагрузку класса "F"

// статические методы/функции пространства имен из другого пространства имен

B\foo();    // вызывает функцию "foo" из пространства имен "A\B"

B::foo();   // вызывает метод "foo" из класса "B", определенного в пространстве имен "A"
            // если класс "A\B" не найден, то пытается сделать автозагрузку класса "A\B"

D::foo();   // используя правила импорта, вызывает метод "foo" класса "D", определенного в пространстве имен "B"
            // если класс "B\D" не найден, то пытается сделать автозагрузку класса "B\D"

\B\foo();   // вызывает функцию "foo" из пространства имен "B"

\B::foo();  // вызывает метод "foo" класса "B" из глобального пространства
            // если класс "B" не найден, то пытается сделать автозагрузку класса "B"

// статические методы/функции пространства имен из текущего пространства имен

A\B::foo();   // вызывает метод "foo" класса "B" из пространства имен "A\A"
              // если класс "A\A\B" не найден, то пытается сделать автозагрузку класса "A\A\B"

\A\B::foo();  // вызывает метод "foo" класса "B" из пространства имен "A"
              // если класс "A\B" не найден, то пытается сделать автозагрузку класса "A\B"
?>


Часто задаваемые вопросы (FAQ): вещи, которые вам необходимо знать о пространствах имен

(PHP 5 >= 5.3.0, PHP 7)

Этот список вопросов разделен на две части: общие вопросы и некоторые особенности реализации, которые полезны для более полного понимания.

Сперва, общие вопросы.

  1. Если я не использую пространства имен, следует ли считать что-либо из этого важным ?
  2. Как мне использовать внутренние или глобальные классы в пространстве имен ?
  3. Как мне использовать функции классов в пространствах имен, или константы в их собственном пространстве имен ?
  4. Как такое имя как \my\name или \name преобразуется ?
  5. Как такое имя, как my\name преобразуется ?
  6. Как неполное имя класса такое как name преобразуется ?
  7. Как неполное имя функции или неполное имя константы такое как name преобразуется ?

Некоторые детали реализации пространств имен, которые полезно понимать.

  1. Импортируемые имена не могут конфликтовать с классами, определенными в том же файле.
  2. Вложенные пространства имен недопустимы.
  3. Ни функции, ни константы не могут быть заимпортированы с помощью оператора use.
  4. Динамические имена пространств имен (идентификаторы, взятые в кавычки) должны экранировать символ обратного слеша.
  5. Ссылаться на неопределенные константы, используя обратный слеш, нельзя. Выводится фатальная ошибка
  6. Невозможно переопределить специальные константы, такие как NULL, TRUE, FALSE, ZEND_THREAD_SAFE или ZEND_DEBUG_BUILD

Если я не использую пространства имен, следует ли считать что-либо из этого важным ?

Нет. Пространства имен не оказывают никакого влияния ни на какой существующий код ни в каком виде или на любой написанный код, который не содержит пространств имен. Вы можете написать такой код, если желаете:

Пример #1 Доступ к глобальным классам вне пространства имен

<?php
$a = new \stdClass;
?>

Это функционально эквивалентно следующему:

Пример #2 Доступ к глобальным классам вне пространства имен

<?php
$a = new stdClass;
?>

Как мне использовать внутренние или глобальные классы в пространстве имен ?

Пример #3 Доступ ко внутренним классам в пространствах имен

<?php
namespace foo;
$a = new \stdClass;

function test(\ArrayObject $typehintexample = null) {}

$a = \DirectoryIterator::CURRENT_AS_FILEINFO;

// расширение внутреннего или глобального класса
class MyException extends \Exception {}
?>

Как мне использовать функции классов в пространствах имен, или константы в их собственном пространстве имен ?

Пример #4 Доступ ко внутренним классам, функциям или константам в пространствах имен

<?php
namespace foo;

class MyClass {}

// использование класса из текущего пространства имен
function test(MyClass $typehintexample = null) {}
// другой способ использовать класс из текущего пространства имен
function test(\foo\MyClass $typehintexample = null) {}

// расширение класса из текущего пространства имен
class Extended extends MyClass {}

// доступ к глобальной функции
$a = \globalfunc();

// доступ к глобальной константе
$b = \INI_ALL;
?>

Как такое имя как \my\name или \name преобразуется ?

Имена, которые начинаются с \ всегда преобразуются к тому как они выглядят, т.е. \my\name - это на самом деле my\name, и \Exception - это Exception.

Пример #5 Абсолютные имена

<?php
namespace foo;
$a = new \my\name(); // создает экземпляр класса "my\name"
echo \strlen('hi'); // вызывает функцию "strlen"
$a = \INI_ALL; // переменной $a присваивается значение константы "INI_ALL"
?>

Как такое имя, как my\name преобразуется ?

Имена, которые содержат обратный слеш, но не начинаются с него, такие как my\name могут быть преобразованы двумя различными способами.

Если присутствует импортирующее выражение, которое создает синоним my другого имени, то этот синоним применяется к my в my\name.

В ином случае, текущее имя пространства имен становится префиксом к my\name.

Пример #6 Полные имена

<?php
namespace foo;
use blah\blah as foo;

$a = new my\name(); // создает экземпляр класса "foo\my\name"
foo\bar::name(); // вызывает статический метод "name" в классе "blah\blah\bar"
my\bar(); // вызывает функцию "foo\my\bar"
$a = my\BAR; // присваивает переменной $a значение константы "foo\my\BAR"
?>

Как неполное имя класса такое как name преобразуется ?

Имена классов, которые не содержат обратный слеш, такие как name могут быть преобразованы двумя различными способами.

Если присутствует импортирующее выражение, которое создает синоним name другого имени, то применяется этот синоним.

В ином случае, текущее имя пространства имен становится префиксом к my\name.

Пример #7 Неполные имена классов

<?php
namespace foo;
use blah\blah as foo;

$a = new name(); // создает экземпляр класса "foo\name"
foo::name(); // вызывает статический метод "name" в классе "blah\blah"
?>

Как неполное имя функции или неполное имя константы такое как name преобразуется ?

Имена функций или констант, которые не содержат обратного слеша, такие как name могут быть преобразованы двумя различными способами.

Сперва, текущее имя пространства имен становится префиксом к name.

Затем, если константа или функция name не существует в текущем пространстве имен, используется глобальная константа или функция name, если она существует.

Пример #8 Неполные имена функций или констант

<?php
namespace foo;
use blah\blah as foo;

const FOO = 1;

function my() {}
function foo() {}
function sort(&$a)
{
    \sort($a); // вызывает глобальную функцию "sort"
    $a = array_flip($a);
    return $a;
}

my(); // вызывает "foo\my"
$a = strlen('hi'); // вызывает глобальную функцию "strlen", потому что "foo\strlen" не существует
$arr = array(1,3,2);
$b = sort($arr); // вызывает функцию "foo\sort"
$c = foo(); // вызывает функцию "foo\foo" - импорт не применяется

$a = FOO; // присваивает переменной $a значение константы "foo\FOO" - импорт не применяется
$b = INI_ALL; // присваивает переменной $b значение глобальной константы "INI_ALL"
?>

Импортируемые имена не могут конфликтовать с классами, определенными в том же файле.

Следующие комбинации скриптов допустимы:

file1.php

<?php
namespace my\stuff;
class MyClass {}
?>

another.php

<?php
namespace another;
class thing {}
?>

file2.php

<?php
namespace my\stuff;
include 'file1.php';
include 'another.php';

use another\thing as MyClass;
$a = new MyClass; // создает экземпляр класса "thing" из пространства имен "another"
?>

Конфликт имен отсутствует даже несмотря на то, что класс MyClass существует внутри пространства имен my\stuff, потому что определение MyClass находится в отдельном файле. Однако следующий пример приводит к фатальной ошибке с конфликтом имен, потому что класс MyClass определен в том же файле, где находится оператор use.

<?php
namespace my\stuff;
use another\thing as MyClass;
class MyClass {} // фатальная ошибка: MyClass конфликтует с выражением импорта
$a = new MyClass;
?>

Вложенные пространства имен недопустимы.

PHP не позволяет вложение пространств имен одно в другое

<?php
namespace my\stuff {
    namespace nested {
        class foo {}
    }
}
?>
Однако, сымитировать вложенные пространства имен так:
<?php
namespace my\stuff\nested {
    class foo {}
}
?>

Ни функции, ни константы не могут быть заимпортированы с помощью оператора use.

Элементы, которые подвержены действию оператора use - это пространства имен и имена классов. Для сокращения длинных имен констант или функций, заимпортируйте их содержимое в пространство имен.

<?php
namespace mine;
use ultra\long\ns\name;

$a = name\CONSTANT;
name\func();
?>

Динамические имена пространств имен (идентификаторы, взятые в кавычки) должны экранировать символ обратного слеша.

Очень важно представлять это, потому что обратный слеш используется как экранирующий символ внутри строк. Он всегда должен быть продублирован, когда используется внутри строки, иначе появляется риск возникновения неумышленных последствий:

Пример #9 Подводные камни при использовании имени пространства имен внутри строки с двойными кавычками

<?php
$a = "dangerous\name"; // \n - это переход на новую строку внутри строки с двойными кавычками!
$obj = new $a;

$a = 'not\at\all\dangerous'; // а тут нет проблем.
$obj = new $a;
?>
Внутри строк, заключенных в одинарные кавычки, обратный слеш в качестве разделителя более безопасен, но по-прежнему рекомендуемая практика экранирования обратного слеша во всех строках является наилучшим вариантом.

Ссылаться на неопределенные константы, используя обратный слеш, нельзя. Выводится фатальная ошибка

Любая неопределенная константа, являющаяся неполным именем, как FOO, будет приводить к выводу сообщения о том, что PHP предположил, что FOO было значение константы. Любая константа, с полным именеи или абсолютным, которая содержит символ обратного слеша будет приводить к фатальной ошибке, если не будет найдена.

Пример #10 Неопределенные константы

<?php
namespace bar;
$a = FOO; // выводит предупреждение: undefined constants "FOO" assumed "FOO";
$a = \FOO; // фатальная ошибка: undefined namespace constant FOO
$a = Bar\FOO; // фатальная ошибка: undefined namespace constant bar\Bar\FOO
$a = \Bar\FOO; // фатальная ошибка: undefined namespace constant Bar\FOO
?>

Невозможно переопределить специальные константы, такие как NULL, TRUE, FALSE, ZEND_THREAD_SAFE или ZEND_DEBUG_BUILD

Любая попытка определить константу пространства имен, которая совпадает с названиями специальных встроенных констант, приведет к фатальной ошибке.

Пример #11 Неопределенные константы

<?php
namespace bar;
const NULL = 0; // Фатальная ошибка;
const true = 'stupid'; // также фатальная ошибка;
// и т.д.
?>


Ошибки

Содержание

  • Основы
  • Ошибки в PHP 7

Введение

К сожалению, как бы мы не были аккуратны при написании кода, ошибки являются частью нашей жизни. PHP будет сообщать об ошибках, предупреждениях и уведомлениях о самых распространенных проблемах кода и времени исполнения, но знания, как разобраться в ошибках и как их обработать, могут сильно упростят процесс отладки.


Основы

PHP сообщает об ошибках в ответ на некоторые внутренние ошибочные обстоятельства. Они могут быть использованы для уведомления о разных состояниях, а также могут выводиться на экран и записываться в логи по желанию.

Каждая ошибка, генерируемая PHP, обязательно содержит информацию о своем типе. В этом списке перечислены все типы ошибок, а также описания их поведений и провоцирующие их причины.

Обработка ошибок

PHP, по умолчанию, может обрабатывать любые ошибки в соответствии со своей конфигурацией, если обработчик ошибок не установлен. О каких ошибках сообщать и какие ошибки игнорировать указывается в параметре error_reporting конфигурации php.ini, или во время исполнения программы с помощью вызова error_reporting(). Настоятельно рекомендуется заранее конфигурировать php.ini, так как некоторые ошибки могут произойти до начала выполнения вашего скрипта.

На стадии разработки, обязательно настройте параметр error_reporting на значение E_ALL, так как вам необходимо знать обо всех ошибках для их решения на этой стадии. Когда продукт готов, вы можете изменить значение на менее подробное, вроде E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED, но во многих случаях значение E_ALL также желательно, так как оно может предупреждать заранее о других возможных ошибках.

Дальнейшая работа PHP с появившимися ошибками зависит от двух других параметров в php.ini. Параметр display_errors определяет, включать ли данные ошибки в вывод скрипта или нет. Когда продукт готов, обязательно выключите этот параметр, так как в описании ошибки может содержаться конфиденциальная информация, вроде паролей базы данных. Во время разработки данный параметр лучше включить для решения проблем, провоцирующих ошибки.

Кроме отображения ошибок, их можно записывать в лог с помощью включенного параметра log_errors. Файл лога указывается в параметре error_log. Данная функция незаменима на стадии конечного продукта, так как позволяет видеть информацию об ошибках и составлять основанные на них отчеты вдали от глаз пользователя.

Пользовательская обработка ошибок

Если вас не устраивает работа предустановленного обработчика ошибок, вы также можете обрабатывать множество видов ошибки с помощью своего обработчика, которого можно установить вызовом функции set_error_handler(). Некоторые ошибки не могут обрабатываться пользовательским обработчиком, но те, которые могут, обрабатываются по вашему желанию: например, ваш скрипт может выдавать пользователю любую отдельную страницу ошибки, а подробную информацию записывать в лог или отсылать по почте.


Ошибки в PHP 7

В PHP 7 механизм сообщения об ошибках был сильно изменен. Традиционный доклада об ошибке в PHP 5 был заменен новым механизмом, в котором большинство ошибок сообщается с помощью исключений класса Error.

Как и обычные исключения, Error исключения вызываются до появления первого соответствующего catch блока. Если соответствующие блоки не предусмотрены, то будет вызван любой предустановленный с помощью set_exception_handler() обработчик исключений. В случае отсутствия обработчика по умолчанию, исключение будет конвертировано в фатальную ошибку и будет обработано как традиционная ошибка.

Так как класс Error не наследуется от класса Exception, блок catch (Exception $e) { ... } для обработки неперехваченных исключений PHP 5 не может перехватить исключения Error исключения. Для их перехвата используйте блок catch (Error $e) { ... } или установите обработчик исключений с помощью set_exception_handler().

Иерархия Error

  • Throwable
    • Error
      • ArithmeticError
        • DivisionByZeroError
      • AssertionError
      • ParseError
      • TypeError
    • Exception
      • ...


Исключения

Содержание

  • Наследование исключений

Модель исключений (exceptions) в PHP 5 схожа с используемыми в других языках программирования. Исключение можно сгенерировать (как говорят, "выбросить") при помощи оператора throw, и можно перехватить (или, как говорят, "поймать") оператором catch. Код генерирующий исключение, должен быть окружен блоком try, для того чтобы можно было перехватить исключение. Каждый блок try должен иметь как минимум один соответствующий ему блок catch или finally.

Генерируемый объект должен принадлежать классу Exception или наследоваться от Exception. Попытка сгенерировать исключение другого класса приведет к неисправимой ошибке.

catch

Можно использовать несколько блоков catch, перехватывающих различные классы исключений. Нормальное выполнение (когда не генерируются исключения в блоках try) будет продолжено за последним блоком catch. Исключения так же могут быть сгенерированы (или вызваны еще раз) оператором throw внутри блока catch.

При генерации исключения код следующий после описываемого выражения исполнен не будет, а PHP предпримет попытку найти первый блок catch, перехватывающий исключение данного класса. Если исключение не будет перехвачено, PHP выдаст сообщение об ошибке: "Uncaught Exception ..." (Неперехваченное исключение), если не был определен обработчик ошибок при помощи функции set_exception_handler().

finally

В PHP 5.5 и более поздних версиях также можно использовать блок finally после или вместо блока catch. Код в блоке finally всегда будет выполняться после кода в блоках try и catch, вне зависимости было ли брошено исключение или нет, перед тем как продолжится нормальное выполнение кода.

Примечания

Замечание:

Внутренние функции PHP в основном используют сообщения об ошибках, и только новые объектно-ориентированные расширения используют исключения. Однако, ошибки можно легко преобразовать в исключения с помощью класса ErrorException.

Подсказка

Стандартная библиотека PHP (SPL) предоставляет хороший набор встроенных классов исключений.

Примеры

Пример #3 Выброс исключений

<?php
function inverse($x) {
    if (!$x) {
        throw new Exception('Деление на ноль.');
    }
    return 1/$x;
}

try {
    echo inverse(5) . "\n";
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Выброшено исключение: ',  $e->getMessage(), "\n";
}

// Продолжение выполнения
echo "Hello World\n";
?>

Результат выполнения данного примера:

0.2
Выброшено исключение: Деление на ноль.
Hello World

Пример #4 Вложенные исключения

<?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 "Hello World\n";
?>

Результат выполнения данного примера:

0.2
Первое finally.
Поймано исключение: Деление на ноль.
Второе finally.
Hello World

Пример #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!"


Наследование исключений

Определенный пользователем класс исключения должен быть определен, как класс расширяющий (наследующий) встроенный класс Exception. Ниже приведены методы и свойства класса Exception, доступные дочерним классам.

Пример #1 Встроеный класс Exception

<?php
class Exception
{
    protected $message = 'Unknown exception';   // Сообшение
    private   $string;                          // Свойство для __toString
    protected $code = 0;                        // Код исключения,
                                                // определяемый пользователем
    protected $file;                            // Файл в котором было
                                                // выброшено исключение
    protected $line;                            // Строка в которой было
                                                // выброшено исключение
    private   $trace;                           // Трассировка вызовов методов и функций
    private   $previous;                        // Предыдущее исключение, для
                                                // вложенных блоков try

    public function __construct($message = null, $code = 0, Exception $previous = null);

    final private function __clone();           // Запрещает клонировать исключения

    final public  function getMessage();        // Возвращает сообшение исключения
    final public  function getCode();           // Код исключения
    final public  function getFile();           // Файл, где выброшено исключение
    final public  function getLine();           // Строка, выбросившая исключени
    final public  function getTrace();          // Массив backtrace()
    final public  function getPrevious();       // Предыдущее исключение
    final public  function getTraceAsString();  // Трассировка вызовов как строка

    // Переопределяемое
    public function __toString();               // форматированная строка для отображения
}
?>

Если класс, наследуемый от Exception переопределяет конструктор, необходимо вызвать в конструкторе parent::__construct(), чтобы быть уверенным, что все данные будут доступны. Метод __toString() может быть переопределен, что бы обеспечить нужный вывод, когда объект преобразуется в строку.

Замечание:

Исключения нельзя клонировать. Попытка клонировать исключение приведет к неисправимой ошибке E_ERROR.

Пример #2 Наследование класса Exception (PHP 5.3.0+)

<?php
/**
 * Определим свой класс исключения
 */
class MyException extends Exception
{
    // Переопределим исключение так, что параметр message станет обязательным
    public function __construct($message, $code = 0, Exception $previous = null) {
        // некоторый код

        // убедитесь, что все передаваемые параметры верны
        parent::__construct($message, $code, $previous);
    }

    // Переопределим строковое представление объекта.
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }

    public function customFunction() {
        echo "Мы можем определять новые методы в наследуемом классе\n";
    }
}

/**
 * Создадим класс для тестирования исключения
 */
class TestException
{
    public $var;

    const THROW_NONE    = 0;
    const THROW_CUSTOM  = 1;
    const THROW_DEFAULT = 2;

    function __construct($avalue = self::THROW_NONE) {

        switch ($avalue) {
            case self::THROW_CUSTOM:
                // Бросаем собственное исключение
                throw new MyException('1 - неправильный параметр', 5);
                break;

            case self::THROW_DEFAULT:
                // Бросаем встроеное исключение
                throw new Exception('2 - недопустимый параметр', 6);
                break;

            default:
                // Никаких исключений, объект будет создан.
                $this->var = $avalue;
                break;
        }
    }
}

// Example 1
try {
    $o = new TestException(TestException::THROW_CUSTOM);
} catch (MyException $e) {      // Will be caught
    echo "Поймано собственное переопределенное исключение\n", $e;
    $e->customFunction();
} catch (Exception $e) {        // Будет пропущено.
    echo "Поймано встроенное исключение\n", $e;
}

// Отсюда будет продолжено выполнение программы
var_dump($o); // Null
echo "\n\n";

// Example 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";

// Example 3
try {
    $o = new TestException(TestException::THROW_CUSTOM);
} catch (Exception $e) {        // Будет перехвачено.
    echo "Поймано встроенное исключение\n", $e;
}

// Продолжение исполнения программы
var_dump($o); // Null
echo "\n\n";

// Example 4
try {
    $o = new TestException();
} catch (Exception $e) {        // Будет пропущено, т.к. исключение не выбрасывается
    echo "Поймано встроенное исключение\n", $e;
}

// Продолжение выполнения программы
var_dump($o); // TestException
echo "\n\n";
?>

Замечание:

PHP 5 до версии 5.3.0 не поддерживает вложенные исключения. Если есть необходимость запустить вышеприведенный пример в указанных версиях PHP, то нужно заменить класс MyException.

<?php
/**
 * Определим свой класс исключения
 */
class MyException extends Exception
{
    // Переопределим исключение так, что параметр message станет обязательным
    public function __construct($message, $code = 0) {
        // некоторый код

        // убедитесь, что все передаваемые параметры верны
        parent::__construct($message, $code);
    }

    // Переопределим строковое представление объекта.
    public function __toString() {
        return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
    }

    public function customFunction() {
        echo "Мы можем определять новые методы в наследуемом классе\n";
    }
}
?>


Генераторы

Содержание

  • Знакомство с генераторами
  • Синтаксис генераторов
  • Сравнение генераторов с объектами класса Iterator


Знакомство с генераторами

(PHP 5 >= 5.5.0, PHP 7)

Генераторы предоставляют лёгкий способ реализации простых Итераторов без использования дополнительных ресурсов или сложностей, связанных с реализацией класса, реализующего интерфейс Iterator.

Генератор позволяет Вам писать код, использующий foreach для перебора набора данных без необходимости создания массива в памяти, что может привести к превышению вами лимита памяти, либо потребует довольно много времени для его создания. Вместо этого, Вы можете написать функцию-генератор, которая, по сути, является обычной функцией, за исключением того, что вместо возвращения единственного значения, генератор может yield столько раз, сколько необходимо для генерации значений, позволяющих перебрать исходный набор данных.

Наглядным примером вышесказанного может послужить использование функции range() как генератора. Стандартная функция range() должна генерировать массив, состоящий из значений, и возвращать его, что может послужить результатом генерации огромных массивов: например, вызов range(0, 1000000), приведёт к использованию более чем 100 МБ памяти.

В качестве альтернативы мы можем создать генератор xrange(), который использует память только для создания объекта Iterator и сохранения текущего состояния, что потребует не больше 1 килобайта памяти.

Пример #1 Реализация range() как генератора

<?php
function xrange($start, $limit, $step = 1) {
    if ($start < $limit) {
        if ($step <= 0) {
            throw new LogicException('Step must be +ve');
        }

        for ($i = $start; $i <= $limit; $i += $step) {
            yield $i;
        }
    } else {
        if ($step >= 0) {
            throw new LogicException('Step must be -ve');
        }

        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, станет однонаправленным объектом итератора и предоставит методы, с помощью которых можно управлять его состоянием, включая передачу в него и возвращения из него значений.


Синтаксис генераторов

генератор в целом выглядит как обычная функция, за исключением того, что вместо возвращения одного значения, генератор будет перебирать столько значений, сколько вам нужно.

Когда вызывается генератор, он возвращает объект, который можно итерировать. Когда вы итерируете этот объект (к примеру в цикле foreach), PHP вызывает функцию генератор каждый раз, когда вам нужно новое значение, после чего сохраняет состояние генератора и при следующем вызове возвращает следующее значение.

Когда все значения в генераторе закончились, функция просто завершит работу ничего не вернув. После этого основной код продолжит работу, аналогично как, например когда в массиве закончились элементы для перебора.

Замечание:

В генераторе может присутствовать только пустой оператор return, для обозначения конца генерируемой последовательности (но можно обойтись и без него). Если вы попытаетесь вернуть этим оператором какое либо значение - произойдет ошибка на этапе компиляции.

Ключевое слово yield

Самая суть генератора заключается в ключевом слове yield. В самом простом варианте, оператор "yield" можно рассматривать как оператор "return", за исключением того, что вместо прекращения работы функции, "yield" только приостанавливает ее выполнение и возвращает текущее значение, и при следующем вызове функции она возобновит выполнения с места, на котором прервалась.

Пример #1 Простой пример выдачи значений

<?php
function gen_one_to_three() {
    for ($i = 1; $i <= 3; $i++) {
        // Обратите внимание, что $i сохраняет свое значение между вызовами.
        yield $i;
    }
}

$generator = gen_one_to_three();
foreach ($generator as $value) {
    echo "$value\n";
}
?>

Результат выполнения данного примера:

1
2
3

Замечание:

Последовательность целых чисел будет связана с получаемыми от генератора значениями, как будто перебирается неассоциативный массив.

Предостережение

Если вы хотите использовать "yield" в выражениях (например в правой части оператора присвоения), в PHP вы должны убирать его в скобки. Корректный пример:

$data = (yield $value);

А вот это не правильно и вызовет ошибку разбора в PHP 5:

$data = yield $value;

В PHP 7 этого ограничения нет.

Этот синтаксис можно использовать в сочетании с методом Generator::send().

Получение значений с ключами

PHP поддерживает ассоциативные массивы, и генераторы не являются исключением. Так же как можно получать простые значения, как показано выше, вы можете получать значения с ключами.

Синтаксис получения ключ/значение очень похож на синтаксис ассоциативных массивов, как показано ниже.

Пример #2 Получение пар ключ/значение

<?php
/* $input содержит пары ключ/значение разделенные точкой с запятой */

$input = <<<'EOF'
1;PHP;Likes dollar signs
2;Python;Likes whitespace
3;Ruby;Likes blocks
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
    Likes dollar signs
2:
    Python
    Likes whitespace
3:
    Ruby
    Likes blocks
Предостережение

Также как и для одиночных значений, получение пар ключ/значение в выражениях требует оборачивания их в скобки:

$data = (yield $key => $value);

Получение NULL

Для получения NULL нужно вызвать "yield" без аргументов. Ключ сгенерируется автоматически.

Пример #3 Получение NULL

<?php
function gen_three_nulls() {
    foreach (range(1, 3) as $i) {
        yield;
    }
}

var_dump(iterator_to_array(gen_three_nulls()));
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  NULL
  [1]=>
  NULL
  [2]=>
  NULL
}

Получение значения по ссылке

Генераторы могут отдавать значения по ссылке. Это делается так же, как описано в разделе "возвращение ссылки из функции", с помощью амперсанда (&) перед именем функции.

Пример #4 Получение значений по ссылке

<?php
function &gen_reference() {
    $value = 3;

    while ($value > 0) {
        yield $value;
    }
}

/* Обратите внимание, что мы можем изменять $number в цикле, и
 * так как генератор возвращает ссылку, $value
 * в gen_reference() также изменится. */
foreach (gen_reference() as &$number) {
    echo (--$number).'... ';
}
?>

Результат выполнения данного примера:

2... 1... 0...

Делегирование генератора с помощью yield from

В PHP 7, делегирование генератора позволяет вам получать значения из другого генератора, объекта Traversable, или массива, используя yield from. Внешний генератор будет возвращать значения из внутреннего генератора, объекта или массива, до того момента, пока они их отдают, после чего продолжится выполнения внешнего генератора.

Если генератор используется с yield from, то выражение yield from также будет возвращать значения из внутреннего генератора.

Предостережение

Сохранение в массив (т.е. iterator_to_array())

yield from не сбрасывает ключи. Ключи, возвращенные из объекта Traversable или массива, сохранятся. Таким образом, некоторые значения, могут пересекаться по ключам с другими yield или yield from, что, при записи в массив, повлечет за собой перезапись уже записанных значений.

Общий случай, когда это имеет значение, это когда iterator_to_array() возвращает массив с ключами по умолчению. В этом случае можно получить печальный результат. iterator_to_array() имеет второй параметр use_keys, который можно установить в FALSE, для генерации собственных ключей и игнорировании ключей, переданных из объекта Generator.

Пример #5 yield from с iterator_to_array()

<?php
function from() {
    yield 1; // ключ 0
    yield 2; // ключ 1
    yield 3; // ключ 2
}
function gen() {
    yield 0; // ключ 0
    yield from from(); // ключи 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('Couldn\'t open file "' . $fileName . '"');
        }
    }

    public function rewind() {
        fseek($this->fileHandle, 0);
        $this->line = fgets($this->fileHandle);
        $this->i = 0;
    }

    public function valid() {
        return false !== $this->line;
    }

    public function current() {
        return $this->line;
    }

    public function key() {
        return $this->i;
    }

    public function next() {
        if (false !== $this->line) {
            $this->line = fgets($this->fileHandle);
            $this->i++;
        }
    }

    public function __destruct() {
        fclose($this->fileHandle);
    }
}
?>

Но за эту простоту, впрочем, приходится платить: генераторы могут быть только однонаправленными итераторами. Их нельзя перемотать назад после старта итерации. Это также означает, что один и тот-же генератор нельзя использовать несколько раз - генератор необходимо пересоздавать каждый раз, как вы захотите его использовать.


Ссылки. Разъяснения

Содержание

  • Что такое ссылки
  • Что делают ссылки
  • Чем ссылки не являются
  • Передача по ссылке
  • Возвращение по ссылке
  • Сброс переменных-ссылок
  • Неявное использование механизма ссылок


Что такое ссылки

Ссылки в PHP - это средство доступа к содержимому одной переменной под разными именами. Они не похожи на указатели C; например, вы не можете делать вычисления над указателями, они не являются реальными адресами в памяти и пр. Подробнее в Чем ссылки не являются. Вместо этого указатели в PHP - это псевдонимы в таблице имен переменных. В PHP имя переменной и её содержимое - это разные вещи, поэтому одно содержимое может иметь разные имена. Ближайшая аналогия - имена файлов Unix и файлы - имена переменных являются элементами каталогов, а содержимое переменных - это сами файлы. Ссылки в PHP - аналог жёстких ссылок (hardlinks) в файловых системах 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 4.0.4 и до PHP 5.0.0):

<?php
$foo =& find_var($bar);
?>
Начиная с PHP 5, new автоматически возвращает объекты по ссылке, поэтому использовать =& в этом случае не рекомендуется и вызывает сообщение E_DEPRECATED в PHP 5.3 и последующих версиях, а также сообщение E_STRICT в более ранних версиях. Начиная с PHP 7.0 это синтаксически некорректно. (Технически разница в том, что в PHP 5 переменные объектов, так же как и ресурсы, являются просто указателями на реальные данные объекта, поэтому ссылки на объекты не те же самые "ссылки", о которых говорилось ранее (псевдонимы). Подробнее в Объекты и ссылки.)

Внимание

Если переменной, объявленной внутри функции как global, будет присвоена ссылка, она будет видна только в функции. Чтобы избежать этого, используйте массив $GLOBALS.

Пример #2 Присвоение ссылок глобальным переменным внутри функции

<?php
$var1 = "Example variable";
$var2 = "";

function global_references($use_globals)
{
    global $var1, $var2;
    if (!$use_globals) {
        $var2 =& $var1; // только локально
    } else {
        $GLOBALS["var2"] =& $var1; // глобально
    }
}

global_references(false);
echo "значение var2: '$var2'\n"; // значение var2: ''
global_references(true);
echo "значение var2: '$var2'\n"; // значение var2: 'Example variable'
?>
Думайте о global $var; как о сокращении от $var =& $GLOBALS['var'];. Таким образом, присвоение $var другой ссылки влияет лишь на локальную переменную.

Замечание:

При использовании переменной-ссылки в foreach, изменяется содержание, на которое она ссылается.

Пример #3 Ссылки и foreach

<?php
$ref = 0;
$row =& $ref;
foreach (array(1, 2, 3) as $row) {
    // do something
}
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 изменилось, хотя было присвоено не по ссылке! */
?>
Иными словами, поведение отдельных элементов массива не зависит от типа присвоения этого массива.

Pass By Reference

Второе, что делают ссылки - передача параметров по ссылке. При этом локальная переменная в функции и переменная в вызывающей области видимости ссылаются на одно и то же содержимое. Пример:

<?php
function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
?>
Этот код присвоит $a значение 6. Это происходит, потому что в функции foo переменная $var ссылается на то же содержимое, что и переменная $a. См. также детальное объяснение передачи по ссылке.

Возврат по ссылке

Третье, что могут делать ссылки - это возврат по ссылке.


Чем ссылки не являются

Как уже было сказано, ссылки не являются указателями. Это означает, что следующая конструкция не будет делать то, что вы ожидаете:

<?php
function foo(&$var)
{
    $var =& $GLOBALS["baz"];
}
foo($bar);
?>

Переменная $var в фукнции foo будет связана с $bar в вызывателе, но затем она будет перепривязана к $GLOBALS["baz"]. Нет способа связать $bar в области видимости вызывателя с чем-либо ещё путём использования механизма ссылок, поскольку $bar не доступна в функции foo (доступно лишь её значение через $var, но $var имеет только значение переменной и не имеет связи имя-значение в таблице имен переменных). Вы можете воспользоваться возвращением ссылок из функции для привязки внешней перменной к другому значению.


Передача по ссылке

Вы можете передавать переменные в функцию по ссылке, и функция сможет изменять свои аргументы. Синтаксис таков:

<?php
function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
// $a здесь равно 6
?>

Замечание: В вызове функции отсутствует знак ссылки - он есть только в определении функции. Этого достаточно для корректной передачи аргументов по ссылке. Начиная с PHP 5.3.0, вы можете получить предупреждение о том, что передача переменной по ссылке устарела, если используете & в foo(&$a);. Начиная с PHP 5.4.0 передача переменной по ссылке стала невозможна, поэтому использование этого приема приведет к фатальной ошибке.

По ссылке можно передавать:

  • Переменные, например foo($a)
  • Оператор new, например foo(new foobar())

  • Ссылки, возвращаемые функцией, например:

    <?php
    function foo(&$var)
    {
            $var++;
    }
    function &    bar()
    {
            $a = 5;
        return     $a;
    }
    foo(bar());
    ?>
    См. также объяснение возвращения по ссылке.

Любое другое выражение не должно передаваться по ссылке, так как результат не определён. Например, следующая передача по ссылке является неправильной:

<?php
function foo(&$var)
{
    $var++;
}
function bar() // Операция & отсутствует
{
    $a = 5;
    return $a;
}
foo(bar()); // Вызывает неисправимую ошибку начиная с PHP 5.0.5
                //Стандартное строгое предупреждение с PHP 5.1.1 и предупреждение с PHP 7.0.0

foo($a = 5); // Выражение, а не переменная
foo(5); // Константа, а не переменная
?>


Возвращение по ссылке

Возвращение по ссылке используется в тех случаях, когда вы хотите использовать функцию для выбора переменной, с которой должна быть связана данная ссылка. Не используйте возврат по ссылке для увеличения производительности. Ядро PHP само занимается оптимизацией. Применяйте возврат по ссылке только имея технические причины на это. При возвращении по ссылке используйте такой синтаксис:

<?php
class foo {
    public $value = 42;

    public function &getValue() {
        return $this->value;
    }
}

$obj = new foo;
$myValue = &$obj->getValue(); // $myValue указывает на $obj->value, равное 42.
$obj->value = 2;
echo $myValue;                // отобразит новое значение $obj->value, т.е. 2.
?>
В этом примере устанавливается свойство объекта, возвращённого функцией getValue, а не его копии, как было бы без использования ссылок.

Замечание: В отличие от передачи параметров по ссылке, & здесь нужно использовать в обоих местах - для указания на то, что вы возвращаете ссылку, а не копию, как обычно, и для указания того, что происходит связывание по ссылке, а не обычное присвоение для $myValue.

Замечание: Если вы возвращаете ссылку из функции используя следующий синтаксис: return ($this->value);, это не будет работать, так как вы возвращаете по ссылке результат выражения, а не переменную. По ссылке можно возвращать только переменные и ничего больше. Начиная с PHP 5.1.0, если код пытается вернуть по ссылке динамическое выражение или результат оператора new, будет выброшено предупреждение E_NOTICE.

Для использования возвращаемой ссылки вы должны применять присвоение по ссылке:

<?php
function &collector() {
  static $collection = array();
  return $collection;
}
$collection = &collector();
$collection[] = 'foo';
?>
Для передачи возвращаемой ссылки в другую функцию, принимающую ссылку, вы можете использовать следующий синтаксис:
<?php
function &collector() {
  static $collection = array();
  return $collection;
}
array_push(collector(), 'foo');
?>

Замечание: Заметим, что array_push(&collector(), 'foo'); не сработает, а приведет к неисправимой ошибке.


Сброс переменных-ссылок

При сбросе ссылки, просто разрывается связь имени и содержимого переменной. Это не означает, что ,содержимое переменной будет разрушено. Например:

<?php
$a = 1;
$b =& $a;
unset($a);
?>
Этот код не сбросит $b, а только $a.

Опять же, можно провести аналогию с вызовом unlink (в Unix).


Неявное использование механизма ссылок

Многие синтаксические конструкции PHP реализованы через механизм ссылок, поэтому всё сказанное выше о ссылочном связывании применимо также и к этим конструкциям. Некоторые конструкции, вроде передающих и возвращающих по ссылке, рассмотрены ранее. Другие конструкции, использующие ссылки:

Ссылки global

Если вы объявляете переменную как global $var, вы фактически создаёте ссылку на глобальную переменную. Это означает то же самое, что и:

<?php
$var =& $GLOBALS["var"];
?>

Это значит, например, что сброс (unset) $var не приведёт к сбросу глобальной переменной.

$this

В методах объекта, $this всегда является ссылкой на вызывающий объект.


Предопределённые переменные

PHP предоставляет всем скриптам большое количество предопределённых переменных. Эти переменные содержат всё, от внешних данных до переменных среды окружения, от текста сообщений об ошибках до последних полученных заголовков.

См. также ЧАВО под названием "Как register_globals касаются меня?"

Содержание

  • Суперглобальные переменные — Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости
  • $GLOBALS — Ссылки на все переменные глобальной области видимости
  • $_SERVER — Информация о сервере и среде исполнения
  • $_GET — GET-переменные HTTP
  • $_POST — HTTP POST variables
  • $_FILES — Переменные файлов, загруженных по HTTP
  • $_REQUEST — Переменные HTTP-запроса
  • $_SESSION — Переменные сессии
  • $_ENV — Переменные окружения
  • $_COOKIE — HTTP Куки
  • $php_errormsg — Предыдущее сообщение об ошибке
  • $HTTP_RAW_POST_DATA — Необработанные POST-данные
  • $http_response_header — Заголовки ответов HTTP
  • $argc — Количество аргументов переданных скрипту
  • $argv — Массив переданных скрипту аргументов


Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости

  • « Предопределённые переменные
  • $GLOBALS »
  • PHP Manual
  • Предопределённые переменные
  • Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости

Суперглобальные переменные

Суперглобальные переменные — Суперглобальные переменные - это встроенные переменные, которые всегда доступны во всех областях видимости

Описание

Некоторые предопределённые переменные в PHP являются "суперглобальными", что означает, что они доступны в любом месте скрипта. Нет необходимости использовать синтаксис global $variable; для доступа к ним в функциях и методах.

Суперглобальными переменными являются:

  • $GLOBALS
  • $_SERVER
  • $_GET
  • $_POST
  • $_FILES
  • $_COOKIE
  • $_SESSION
  • $_REQUEST
  • $_ENV

Список изменений

Версия | Описание
4.1.0 | Суперглобальные переменные впервые появились в PHP.

Примечания

Замечание: Доступность переменных

По умолчанию все суперглобальные переменные доступны всегда, однако существуют настройки, которые могут на это влиять. За дальнейшей информацией обращайтесь к описанию директивы variables_order.

Замечание: Работа с register_globals

В случае, если устаревшая директива register_globals включена (on), содержание суперглобальных массивов становится доступно в виде отдельных переменных. Например, $_POST['foo'] будет также доступна в виде $foo.

За дополнительной информацией обращайтесь к ЧАВО под названием "Как register_globals касаются меня?"

Замечание: Переменные переменных

Суперглобальные переменные не могут быть использованы в качестве переменных переменных внутри функций и методов.

Смотрите также

  • variable scope
  • Директива variables_order
  • "Функции фильтрации данных"


Ссылки на все переменные глобальной области видимости

  • « Суперглобальные переменные
  • $_SERVER »
  • PHP Manual
  • Предопределённые переменные
  • Ссылки на все переменные глобальной области видимости

$GLOBALS

(PHP 4, PHP 5, PHP 7)

$GLOBALS — Ссылки на все переменные глобальной области видимости

Описание

Ассоциативный массив (array), содержащий ссылки на все переменные глобальной области видимости скрипта, определенные в данный момент. Имена переменных являются ключами массива.

Примеры

Пример #1 Пример $GLOBALS

<?php
function test() {
    $foo = "local variable";

    echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n";
    echo '$foo in current scope: ' . $foo . "\n";
}

$foo = "Example content";
test();
?>

Результатом выполнения данного примера будет что-то подобное:

$foo in global scope: Example content
$foo in current scope: local variable

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Замечание: Доступность переменной

В отличии от всех остальных суперглобальных переменных, $GLOBALS всегда доступна в PHP.


Информация о сервере и среде исполнения

  • « $GLOBALS
  • $_GET »
  • PHP Manual
  • Предопределённые переменные
  • Информация о сервере и среде исполнения

$_SERVER

$HTTP_SERVER_VARS [удалено]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_SERVER -- $HTTP_SERVER_VARS [удалено] — Информация о сервере и среде исполнения

Описание

Переменная $_SERVER - это массив, содержащий информацию, такую как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером. Нет гарантии, что каждый веб-сервер предоставит любую из них; сервер может опустить некоторые из них или предоставить другие, не указанные здесь. Тем не менее, многие эти переменные присутствуют в » спецификации CGI/1.1, так что вы можете ожидать их реализации и в конкретном веб-сервере.

Замечание: До версии PHP 5.4.0, $HTTP_SERVER_VARS содержит ту же начальную информацию, но она не суперглобальная. (Заметьте, что $HTTP_SERVER_VARS и $_SERVER являются разными переменными, так что PHP обрабатывает их соответственно).

Индексы

Вы можете найти (а можете и не найти) любой из следующих элементов в массиве $_SERVER. Заметьте, что немногие элементы, если вобще такие найдутся, будут доступны (или действительно будут иметь значение), если PHP запущен в командной строке.

'PHP_SELF'
Имя файла скрипта, который сейчас выполняется, относительно корня документов. Например,$_SERVER['PHP_SELF'] в скрипте по адресу http://example.com/foo/bar.php будет /foo/bar.php. Константа __FILE__ содержит полный путь и имя файла текущего (то есть подключенного) файла. Если PHP запущен в командной строке, эта переменная содержит имя скрипта, начиная с PHP 4.3.0. Раньше она была недоступна.
'argv'
Массив агрументов, переданных скрипту. Когда скрипт запущен в командой строке, это дает C-подобный доступ к параметрам командной строки. Когда вызывается через метод GET, этот массив будет содержать строку запроса.
'argc'
Содержит количество параметров, переданных скрипту (если запуск произведен в командной строке).
'GATEWAY_INTERFACE'
Содержит используемую сервером версию спецификации CGI; к примеру'CGI/1.1'.
'SERVER_ADDR'
IP адрес сервера, на котором выполняется текущий скрипт.
'SERVER_NAME'
Имя хоста, на котором выполняется текущий скрипт. Если скрипт выполняется на виртуальном хосте, здесь будет содержатся имя, определенное для этого виртуального хоста.

Замечание: Под Apache 2, вы должны выставить UseCanonicalName = On и ServerName. Under Apache 2, you must set UseCanonicalName = On and ServerName. Иначе, это значение отразит имя хоста клиента и может быть подделано. Это не безопасно полагаться на это значение в контексте требующем безопасности.

'SERVER_SOFTWARE'
Строка идентификации сервера, указанная в заголовках, когда происходит ответ на запрос.
'SERVER_PROTOCOL'
Имя и версия информационного протокола, через который была запрошена страница; к примеру 'HTTP/1.0';
'REQUEST_METHOD'
Какой метод был использован для запроса страницы; к примеру 'GET', 'HEAD', 'POST', 'PUT'.

Замечание:

PHP скрипт завершается после посылки заголовков (тоесть после того, как осуществляет любой вывод без буферизации вывода), если запрос был осуществлен методом HEAD.

'REQUEST_TIME'
Временная метка начала запроса. Доступна, начиная с PHP 5.1.0.
'REQUEST_TIME_FLOAT'
Временная метка начала запроса с точностью до микросекунд. Доступна, начиная с PHP 5.4.0.
'QUERY_STRING'
Строка запросов, если есть, с помощью которой была получена страница.
'DOCUMENT_ROOT'
Директория корня документов, в которой выполняется текущий скрипт, в точности та, которая указана в конфигурационном файле сервера.
'HTTP_ACCEPT'
Содержимое заголовка Accept: из текущего запроса, если он есть.
'HTTP_ACCEPT_CHARSET'
Содержимое заголовка Accept-Charset: из текущего запроса, если он есть. Например: 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
Содержимое заголовка Accept-Encoding: из текущего запроса, если он есть. Например: 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
Содержимое заголовка Accept-Language: из текущего запроса, если он есть. Например: 'en'.
'HTTP_CONNECTION'
Содержимое заголовка Connection: из текущего запроса, если он есть. Например: 'Keep-Alive'.
'HTTP_HOST'
Содержимое заголовка Host: из текущего запроса, если он есть.
'HTTP_REFERER'
Адрес страницы (если есть), которая привела браузер пользователя на эту страницу. Этот заголовок устанавливается веб-браузером пользователя. Не все браузеры устанавливают его и некоторые в качестве дополнительной возможности позволяют изменять содержимое заголовка HTTP_REFERER. Одним словом, в самом деле ему нельзя доверять.
'HTTP_USER_AGENT'
Содержимое заголовка User-Agent: из текущего запроса, если он есть. Эта строка содержит обозначение браузера, которым пользователь запросил данную страницу. Типичным примером является строка: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Среди прочего, вы можете использовать это значение с функцией get_browser() чтобы адаптировать вывод вашей страницы к возможностям браузера пользователя
'HTTPS'
Принимает непустое значение, если запрос был произведен через протокол HTTPS.

Замечание: Обратите внимание, что при использовании ISAPI с IIS значение будет off, если запрос не был произведен через протокол HTTPS.

'REMOTE_ADDR'
IP-адрес, с которого пользователь просматривает текущую страницу.
'REMOTE_HOST'
Удаленный хост, с которого пользователь просматривает текущую страницу. Обратный просмотр DNS базируется на значении переменной REMOTE_ADDR.

Замечание: Ваш веб-сервер должен быть настроен, чтобы создавать эту переменную. Для примера, в Apache вам необходимо присутствие директивы HostnameLookups On в файле httpd.conf, чтобы эта переменная создавалась. См. также gethostbyaddr().

'REMOTE_PORT'
Порт на удаленной машине, который используется для связи с веб-сервером.
'REMOTE_USER'
Аутентифицированный пользователь.
'REDIRECT_REMOTE_USER'
Аутентифицированный пользователь, если запрос был перенаправлен изнутри.
'SCRIPT_FILENAME'

Абсолютный путь к скрипту, который в данный момент исполняется.

Замечание:

Если скрипт запускается в коммандной строке (CLI), используя относительный путь, такой как file.php или ../file.php, переменная $_SERVER['SCRIPT_FILENAME'] будет содержать относительный путь, указанный пользователем.

'SERVER_ADMIN'
Эта переменная получает свое значение (для Apache) из директивы конфигурационного файла сервера. Если скрипт запущен на виртуальном хосте, это будет значение, определенное для данного виртуального хоста.
'SERVER_PORT'
Порт на компьютере сервера, используемый веб-сервером для соединения. Для установок по умолчанию, значение будет '80'; используя SLL, например, это значение будет таким, какое сконфигурировано для соединений безопасного HTTP.

Замечание: Чтобы получить физический (реальный) порт в Apache 2, необходимо установить UseCanonicalName = On и UseCanonicalPhysicalPort = On, иначе это значение может быть подменено и не вернуть реальной значение физического порта. Полагаться на это значение небезопасно в контексте приложений, требующих усиленной безопасности.

'SERVER_SIGNATURE'
Строка, содержащая версию сервера и имя виртуального хоста, которые добавляются к генерируемым сервером страницам, если включено.
'PATH_TRANSLATED'
Filesystem- (not document root-) based path to the current script, after the server has done any virtual-to-real mapping.

Замечание: Начиная с PHP 4.3.2, переменная PATH_TRANSLATED больше не устанавливается неявно в Apache 2 SAPI, по сравнению с Apache версии 1, где она устанавливается в то же самое значение, что и переменная SCRIPT_FILENAME, когда она не используется Apache. Это изменение было сделано для соответствия спецификации CGI, где переменная PATH_TRANSLATED должна существовать только тогда, когда PATH_INFO определена. Пользователи Apache 2 могут использовать директиву AcceptPathInfo = On в конфигурационном файле httpd.conf для задания переменной PATH_INFO.

'SCRIPT_NAME'
Содержит путь, к текущему исполняемому скрипту. Это полезно для страниц, которые должны указывать на самих себя. Константа __FILE__ содержит полный путь и имя текущего (т.е. включаемого) файла.
'REQUEST_URI'
URI, который был передан для того, чтобы получить доступ к этой странице. Например, '/index.html'.
'PHP_AUTH_DIGEST'
При выполнении HTTP Digest аутентификации, этой переменной присваивается заголовок 'Authorization', который присылается клиентом (его необходимо потом использовать для соответствующей валидации).
'PHP_AUTH_USER'
Когда выполняется HTTP-аутентификация, этой переменной присваивается имя пользователя, предоставленное пользователем.
'PHP_AUTH_PW'
Когда выполняется HTTP-аутентификация, этой переменной присваивается пароль, предоставленный пользователем.
'AUTH_TYPE'
Когда выполняется HTTP-аутентификация, этой переменной присваивается тип аутентификации, который используется.
'PATH_INFO'
Содержит любой предоставленный пользователем путь, содержащийся после имени скрипта, но до строки запроса, если доступно. Например, если текущий скрипт запрошен по URL http://www.example.com/php/path_info.php/some/stuff?foo=bar, то переменная $_SERVER['PATH_INFO'] будет содержать /some/stuff.
'ORIG_PATH_INFO'
Исходное значение переменной 'PATH_INFO' до начала обработки PHP.

Список изменений

Версия | Описание
5.4.0 | Массив $HTTP_SERVER_VARS больше не доступен в связи с удалением "длинных массивов".
5.3.0 | Директива register_long_arrays, которая приводила к заполнению $HTTP_SERVER_VARS помечена как устаревшая.
4.1.0 | Введена переменная $_SERVER вместо старой $HTTP_SERVER_VARS.

Примеры

Пример #1 Пример использования $_SERVER

<?php
echo $_SERVER['SERVER_NAME'];
?>

Результатом выполнения данного примера будет что-то подобное:

www.example.com

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • Расширение filter


GET-переменные HTTP

  • « $_SERVER
  • $_POST »
  • PHP Manual
  • Предопределённые переменные
  • GET-переменные HTTP

$_GET

$HTTP_GET_VARS [deprecated]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_GET -- $HTTP_GET_VARS [deprecated] — GET-переменные HTTP

Описание

Ассоциативный массив параметров, переданных скрипту через URL.

$HTTP_GET_VARS содержит аналогичный набор данных, но не является суперглобальным. (Заметьте, что $HTTP_GET_VARS и $_GET являются разными переменными и обрабатываются PHP независимо друг от друга)

Список изменений

Версия | Описание
4.1.0 | Добавлена $_GET, заменяющая $HTTP_GET_VARS.

Примеры

Пример #1 Пример использования $_GET

<?php
echo 'Привет ' . htmlspecialchars($_GET["name"]) . '!';
?>

Подразумевается, что пользователь ввел в браузере адрес http://example.com/?name=Hannes

Результатом выполнения данного примера будет что-то подобное:

Привет Hannes!

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Замечание:

Параметры GET обрабатываются urldecode().

Смотрите также

  • Переменные извне PHP
  • Функции фильтрации данных


HTTP POST variables

  • « $_GET
  • $_FILES »
  • PHP Manual
  • Предопределённые переменные
  • HTTP POST variables

$_POST

$HTTP_POST_VARS [deprecated]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_POST -- $HTTP_POST_VARS [deprecated] — HTTP POST variables

Описание

Ассоциативный массив данных, переданных скрипту через HTTP метод POST в случае использования в запросе в качестве HTTP Content-Type application/x-www-form-urlencoded или multipart/form-data .

$HTTP_POST_VARS содержит аналогичный набор данных, но не является суперглобальным. ($HTTP_POST_VARS и $_POST являются разными переменными и обрабатываются PHP независимо друг от друга)

Список изменений

Версия | Описание
4.1.0 | Введена переменная $_POST, заменяющая $HTTP_POST_VARS.

Примеры

Пример #1 Пример использования $_POST

<?php
echo 'Привет ' . htmlspecialchars($_POST["name"]) . '!';
?>

Подразумевается, что пользователь отправил через POST name=Hannes

Результатом выполнения данного примера будет что-то подобное:

Привет Hannes!

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • Обработка внешних переменных
  • Функции фильтрации данных


Переменные файлов, загруженных по HTTP

  • « $_POST
  • $_REQUEST »
  • PHP Manual
  • Предопределённые переменные
  • Переменные файлов, загруженных по HTTP

$_FILES

$HTTP_POST_FILES [устаревшее]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_FILES -- $HTTP_POST_FILES [устаревшее] — Переменные файлов, загруженных по HTTP

Описание

Ассоциативный массив (array) элементов, загруженных в текущий скрипт через метод HTTP POST. Структура этого массива описана в разделе Загрузка файлов методом POST

$HTTP_POST_FILES содержит ту же начальную информацию, но не является суперглобальным. (Заметьте, что $HTTP_POST_FILES и $_FILES являются разными переменными, так что PHP обрабатывает их соответственно)

Список изменений

Версия | Описание
4.1.0 | Введен массив $_FILES, который должен заменить $HTTP_POST_FILES.

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • move_uploaded_file() - Перемещает загруженный файл в новое место
  • Обработка загрузок файлов


Переменные HTTP-запроса

  • « $_FILES
  • $_SESSION »
  • PHP Manual
  • Предопределённые переменные
  • Переменные HTTP-запроса

$_REQUEST

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_REQUEST — Переменные HTTP-запроса

Описание

Ассоциативный массив (array), который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE.

Список изменений

Версия | Описание
5.3.0 | Добавлена директива request_order. Она позволяет контролировать содержимое переменной $_REQUEST.
4.3.0 | Данные переменной $_FILES более не включаются в $_REQUEST.
4.1.0 | Добавлена переменная $_REQUEST.

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Замечание:

При работе в командной строке переменные argv и argc не включаются в данный массив - они присутствуют в массиве $_SERVER.

Замечание:

Переменные в массиве $_REQUEST передаются в скрипт посредством методов GET, POST или COOKIE, поэтому им нельзя доверять, т.к. они могли быть изменены удаленным пользователем. Их наличие и порядок добавления данных в соответствующие массивы определяется директивой variables_order.

Смотрите также

  • import_request_variables() - Импортирует переменные GET/POST/Cookie в глобальную область видимости
  • "Работа с внешними данными"
  • "Функции фильтрации данных"


Переменные сессии

  • « $_REQUEST
  • $_ENV »
  • PHP Manual
  • Предопределённые переменные
  • Переменные сессии

$_SESSION

$HTTP_SESSION_VARS [устаревшее]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_SESSION -- $HTTP_SESSION_VARS [устаревшее] — Переменные сессии

Описание

Ассоциативный массив, содержащий переменные сессии, которые доступны для текущего скрипта. Смотрите документацию по функциям сессии для получения дополнительной информации.

$HTTP_SESSION_VARS первоначально содержит ту же информацию, но она не является суперглобальной переменной. (Обратите внимание, что $HTTP_SESSION_VARS и $_SESSION являются различными переменными и в таковом качестве обрабатываются PHP).

Список изменений

Версия | Описание
4.1.0 | Добавлена $_SESSION, которая превратила $HTTP_SESSION_VARS в устаревшую.

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • session_start() - Стартует новую сессию, либо возобновляет существующую


Переменные окружения

  • « $_SESSION
  • $_COOKIE »
  • PHP Manual
  • Предопределённые переменные
  • Переменные окружения

$_ENV

$HTTP_ENV_VARS [устаревшее]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_ENV -- $HTTP_ENV_VARS [устаревшее] — Переменные окружения

Описание

Ассоциативный массив (array) значений, переданных скрипту через переменные окружения.

Эти значения импортируются в глобальное пространство имен PHP из системных переменных окружения, в котором запущен парсер PHP. Большинство значений передаётся из командной оболочки, под которой PHP запущен, и различных системных приложений, полного и точного списка не существует. Пожалуйста, изучите документацию к вашей командной оболочке для получения списка переменных окружения.

Некоторые переменные окружения включают в себя CGI переменные, причем их наличие не зависит от того, запущен PHP как модуль HTTP сервера или как CGI-модуль.

$HTTP_ENV_VARS содержит те же данные, но не является суперглобальной переменной. (Следует отметить, что $HTTP_ENV_VARS и $_ENV - различные переменные и обрабатываются по-разному)

Список изменений

Версия | Описание
4.1.0 | Введена $_ENV в замен устаревшей $HTTP_ENV_VARS.

Примеры

Пример #1 Пример использования $_ENV

<?php
echo 'Мое имя пользователя: ' .$_ENV["USER"] . '!';
?>

Допустим, скрипт запустил "bjori"

Результатом выполнения данного примера будет что-то подобное:

Мое имя пользователя: bjori!

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • getenv() - Получение значения переменной окружения
  • Расширение фильтр


HTTP Куки

  • « $_ENV
  • $php_errormsg »
  • PHP Manual
  • Предопределённые переменные
  • HTTP Куки

$_COOKIE

$HTTP_COOKIE_VARS [устаревшее]

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

$_COOKIE -- $HTTP_COOKIE_VARS [устаревшее] — HTTP Куки

Описание

Ассоциативный массив (array) значений, переданных скрипту через HTTP Куки.

$HTTP_COOKIE_VARS содержит те же данные, но не является суперглобальной переменной. (Следует отметить, что $HTTP_COOKIE_VARS и $_COOKIE - различные переменные и PHP обрабатывает их по-разному)

Список изменений

Версия | Описание
4.1.0 | Введена $_COOKIE для замены устаревшей $HTTP_COOKIE_VARS.

Примеры

Пример #1 Пример использования $_COOKIE

<?php
echo 'Привет, ' . htmlspecialchars($_COOKIE["name"]) . '!';
?>

Положим, что значение куки с именем "name" было установлено равным "Ханнес".

Результатом выполнения данного примера будет что-то подобное:

Привет, Ханнес!

Примечания

Замечание:

Это 'суперглобальная' или автоматическая глобальная переменная. Это просто означает что она доступна во всех контекстах скрипта. Нет необходимости выполнять global $variable; для доступа к ней внутри метода или функции.

Смотрите также

  • setcookie() - Посылает cookie
  • Обработка внешних переменных
  • Расширение фильтр


Предыдущее сообщение об ошибке

  • « $_COOKIE
  • $HTTP_RAW_POST_DATA »
  • PHP Manual
  • Предопределённые переменные
  • Предыдущее сообщение об ошибке

$php_errormsg

(PHP 4, PHP 5, PHP 7)

$php_errormsg — Предыдущее сообщение об ошибке

Описание

$php_errormsg является переменной, содержащей текст последней ошибки, сгенерированной PHP. Эта переменная будет доступна только в блоке кода, в котором случилась ошибка, и только если включена конфигурационная опция track_errors (по умолчанию отключена).

Внимание

Если настроен пользовательский обработчик ошибок (set_error_handler()), значение $php_errormsg будет установлено только, если обработчик ошибки вернет FALSE.

Примеры

Пример #1 Пример использования $php_errormsg

<?php
@strpos();
echo $php_errormsg;
?>

Результатом выполнения данного примера будет что-то подобное:

Wrong parameter count for strpos()


Необработанные POST-данные

  • « $php_errormsg
  • $http_response_header »
  • PHP Manual
  • Предопределённые переменные
  • Необработанные POST-данные

$HTTP_RAW_POST_DATA

(PHP 4, PHP 5)

$HTTP_RAW_POST_DATA — Необработанные POST-данные

Описание

Внимание

Эта функциональность считается УСТАРЕВШЕЙ с PHP 5.6.0, и УДАЛЕНА в PHP 7.0.0.

$HTTP_RAW_POST_DATA содержит необработанные POST-данные. Также смотрите always_populate_raw_post_data.

В большинстве случаев нужно использовать php://input вместо $HTTP_RAW_POST_DATA.


Заголовки ответов HTTP

  • « $HTTP_RAW_POST_DATA
  • $argc »
  • PHP Manual
  • Предопределённые переменные
  • Заголовки ответов HTTP

$http_response_header

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

$http_response_header — Заголовки ответов HTTP

Описание

Массив (array) $http_response_header похож на функцию get_headers(). Когда Вы используете обертку HTTP, $http_response_header будет заполнен заголовками ответов HTTP. $http_response_header будет создан в локальной области видимости.

Примеры

Пример #1 Пример $http_response_header

<?php
function get_contents() {
  file_get_contents("http://example.com");
  var_dump($http_response_header);
}
get_contents();
var_dump($http_response_header);
?>

Результатом выполнения данного примера будет что-то подобное:

array(9) {
  [0]=>
  string(15) "HTTP/1.1 200 OK"
  [1]=>
  string(35) "Date: Sat, 12 Apr 2008 17:30:38 GMT"
  [2]=>
  string(29) "Server: Apache/2.2.3 (CentOS)"
  [3]=>
  string(44) "Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT"
  [4]=>
  string(27) "ETag: "280100-1b6-80bfd280""
  [5]=>
  string(20) "Accept-Ranges: bytes"
  [6]=>
  string(19) "Content-Length: 438"
  [7]=>
  string(17) "Connection: close"
  [8]=>
  string(38) "Content-Type: text/html; CHARSET=Windows-1251"
}
NULL


Количество аргументов переданных скрипту

  • « $http_response_header
  • $argv »
  • PHP Manual
  • Предопределённые переменные
  • Количество аргументов переданных скрипту

$argc

(PHP 4, PHP 5, PHP 7)

$argc — Количество аргументов переданных скрипту

Описание

Содержит количество аргументов переданных скрипту при запуске из командной строки.

Замечание: Имя файла скрипта всегда передаётся в качестве первого аргумента, таким образом минимальное значение $argc равно 1.

Замечание: Эта переменная не доступна когда register_argc_argv установлен в disabled.

Примеры

Пример #1 Пример использования $argc

<?php
var_dump($argc);
?>

Запустим пример в командной строке: php script.php arg1 arg2 arg3

Результатом выполнения данного примера будет что-то подобное:

int(4)


Массив переданных скрипту аргументов

  • « $argc
  • Предопределённые исключения »
  • PHP Manual
  • Предопределённые переменные
  • Массив переданных скрипту аргументов

$argv

(PHP 4, PHP 5, PHP 7)

$argv — Массив переданных скрипту аргументов

Описание

Содержит массив array из всех аргументов переданных скрипту при запуске из командной строки.

Замечание: Первый аргумент $argv[0] всегда содержит имя файла запущенного скрипта.

Замечание: Эта переменная недоступна если register_argc_argv установлен в disabled.

Примеры

Пример #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"
}

Смотрите также

  • getopt() - Извлечение параметров из списка аргументов командной строки


Предопределённые исключения

Содержание

  • Exception
  • ErrorException
  • Error
  • Арифметическая ошибка
  • Ошибка утверждения
  • Ошибка деления на ноль
  • Ошибка разбора
  • Ошибка типа

Смотрите также "Исключения SPL"


Exception

(PHP 5 >= 5.1.0, PHP 7)

Введение

Exception — это базовый класс для всех исключений в PHP 5, и для всех пользовательских исключений в PHP 7.

В PHP 7, Exception реализует интерфейс Throwable.

Обзор классов

Exception {
/* Свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )
final public string getMessage ( void )
final public Exception getPrevious ( void )
final public mixed getCode ( void )
final public string getFile ( void )
final public int getLine ( void )
final public array getTrace ( void )
final public string getTraceAsString ( void )
public string __toString ( void )
final private void __clone ( void )
}

Свойства

message

Текст исключения

code

Код исключения

file

Имя файла, в котором было вызвано исключение

line

Номер строки, в которой было вызвано исключение

Содержание

  • Exception::__construct — Создать исключение
  • Exception::getMessage — Получает сообщение исключения
  • Exception::getPrevious — Возвращает предыдущее исключение
  • Exception::getCode — Получает код исключения
  • Exception::getFile — Получает файл, в котором возникло исключение
  • Exception::getLine — Получает строку, в которой возникло исключение
  • Exception::getTrace — Получает трассировку стека
  • Exception::getTraceAsString — Получает трассировку стека в виде строки
  • Exception::__toString — Строковое представление исключения
  • Exception::__clone — Клонировать исключение


Создать исключение

  • « Exception
  • Exception::getMessage »
  • PHP Manual
  • Exception
  • Создать исключение

Exception::__construct

(PHP 5 >= 5.1.0, PHP 7)

Exception::__construct — Создать исключение

Описание

public Exception::__construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )

Создает исключение.

Список параметров

message

Текст сообщения.

code

Код исключения.

previous

Предыдущее исключение. Используется при создания цепочки исключений.

Замечание: Вызов конструктора класса Exception из его подкласса, игнорирует аргументы по умолчанию, если свойства $code и $message уже установлены.

Список изменений

Версия | Описание
7.0.0 | Параметр previous теперь имеет тип Throwable.
5.3.0 | Был добавлен параметр previous.

Примечания

Замечание:

Параметр message не является бинарно-безопасным.


Получает сообщение исключения

  • « Exception::__construct
  • Exception::getPrevious »
  • PHP Manual
  • Exception
  • Получает сообщение исключения

Exception::getMessage

(PHP 5 >= 5.1.0, PHP 7)

Exception::getMessage — Получает сообщение исключения

Описание

final public string Exception::getMessage ( void )

Возвращает сообщение исключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сообщение исключения в виде строки.

Примеры

Пример #1 Пример использования Exception::getMessage()

<?php
try {
    throw new Exception("Какое-нибудь сообщение об ошибке");
} catch(Exception $e) {
    echo $e->getMessage();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Какое-нибудь сообщение об ошибке

Смотрите также

  • Throwable::getMessage() - Получает сообщение ошибки


Возвращает предыдущее исключение

  • « Exception::getMessage
  • Exception::getCode »
  • PHP Manual
  • Exception
  • Возвращает предыдущее исключение

Exception::getPrevious

(PHP 5 >= 5.3.0, PHP 7)

Exception::getPrevious — Возвращает предыдущее исключение

Описание

final public Exception Exception::getPrevious ( void )

Возвращает предыдущее исключение (переданное третьим параметром в Exception::__construct()).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает предыдущее исключение(Exception) или 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 >= 5.1.0, PHP 7)

Exception::getCode — Получает код исключения

Описание

final public mixed Exception::getCode ( void )

Возвращает код исключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код исключения типа integer у класса Exception, но у потомков класса Exception может иметь другой тип (например класс PDOException возвращает код типа string).

Примеры

Пример #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 >= 5.1.0, PHP 7)

Exception::getFile — Получает файл, в котором возникло исключение

Описание

final public string Exception::getFile ( void )

Получить имя файла, где исключение было создано.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла, в котором исключение было создано.

Примеры

Пример #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 >= 5.1.0, PHP 7)

Exception::getLine — Получает строку, в которой возникло исключение

Описание

final public int Exception::getLine ( void )

Получить номер строки, где исключение было создано

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер строки, где было создано исключение.

Примеры

Пример #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 >= 5.1.0, PHP 7)

Exception::getTrace — Получает трассировку стека

Описание

final public array Exception::getTrace ( void )

Возвращает трассировку стека исключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает трассировку стека исключения в виде массива (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() - Возвращает трассировку стека (stack trace)


Получает трассировку стека в виде строки

  • « Exception::getTrace
  • Exception::__toString »
  • PHP Manual
  • Exception
  • Получает трассировку стека в виде строки

Exception::getTraceAsString

(PHP 5 >= 5.1.0, PHP 7)

Exception::getTraceAsString — Получает трассировку стека в виде строки

Описание

final public string Exception::getTraceAsString ( void )

Возвращает трассировку стека исключения в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает трассировку стека исключения в виде строки.

Примеры

Пример #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 >= 5.1.0, PHP 7)

Exception::__toString — Строковое представление исключения

Описание

public string Exception::__toString ( void )

Возвращает исключение в виде строки (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 >= 5.1.0, PHP 7)

Exception::__clone — Клонировать исключение

Описание

final private void Exception::__clone ( void )

Пытается клонировать исключение, что приводит к фатальной ошибке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Исключения не поддаются клонированию.


ErrorException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Исключение в случае ошибки.

Обзор классов

ErrorException extends Exception {
/* Свойства */
protected int $severity ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public __construct ([ string $message = "" [, int $code = 0 [, int $severity = E_ERROR [, string $filename = __FILE__ [, int $lineno = __LINE__ [, Exception $previous = NULL ]]]]]] )
final public int getSeverity ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Свойства

severity

Важность ошибки

Примеры

Пример #1 Использование set_error_handler() для превращения сообщений об ошибках в ErrorException.

<?php
function exception_error_handler($severity, $message, $file, $line) {
    if (!(error_reporting() & $severity)) {
        // Этот код ошибки не входит в error_reporting
        return;
    }
    throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler("exception_error_handler");

/* вызываем исключение */
strpos();
?>

Результатом выполнения данного примера будет что-то подобное:

Fatal error: Uncaught exception 'ErrorException' with message 'strpos() expects at least 2 parameters, 0 given' in /home/bjori/tmp/ex.php:12
Stack trace:
#0 [internal function]: exception_error_handler(2, 'strpos() expect...', '/home/bjori/php...', 12, Array)
#1 /home/bjori/php/cleandocs/test.php(12): strpos()
#2 {main}
  thrown in /home/bjori/tmp/ex.php on line 12

Содержание

  • ErrorException::__construct — Создание исключения
  • ErrorException::getSeverity — Возвращает критичность исключения


Создание исключения

  • « ErrorException
  • ErrorException::getSeverity »
  • PHP Manual
  • ErrorException
  • Создание исключения

ErrorException::__construct

(PHP 5 >= 5.1.0, PHP 7)

ErrorException::__construct — Создание исключения

Описание

public ErrorException::__construct ([ string $message = "" [, int $code = 0 [, int $severity = E_ERROR [, string $filename = __FILE__ [, int $lineno = __LINE__ [, Exception $previous = NULL ]]]]]] )

Создание исключения (конструктор класса Exception).

Список параметров

message

Текст исключения.

code

Код исключения.

severity

Степень серьезности исключения.

Замечание:

В то время, как степень серьезности может быть любым целым числом(integer), предполагается, что для ее указания будут использованы константы Предопределенные константы.

filename

Имя файла, где вызвано исключение.

lineno

Номер строки, где вызвано исключение.

previous

Предыдущее исключение. Используется для создания цепочки исключений.

Список изменений

Версия | Описание
5.3.0 | Добавлен параметр previous.


Возвращает критичность исключения

  • « ErrorException::__construct
  • Error »
  • PHP Manual
  • ErrorException
  • Возвращает критичность исключения

ErrorException::getSeverity

(PHP 5 >= 5.1.0, PHP 7)

ErrorException::getSeverity — Возвращает критичность исключения

Описание

final public int ErrorException::getSeverity ( void )

Возвращает критичность исключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает уровень критичности исключения.

Примеры

Пример #1 Пример использования ErrorException::getSeverity()

<?php
try {
    throw new ErrorException("Exception message", 0, E_USER_ERROR);
} catch(ErrorException $e) {
    echo "Критичность этого исключения равна: " . $e->getSeverity();
    var_dump($e->getSeverity() === E_USER_ERROR);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Критичность этого исключения равна: 256
bool(true)


Error

(PHP 7)

Введение

Error является родительским классом для всех внутренних ошибок PHP.

Обзор классов

Error implements Throwable {
/* Свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] )
final public string getMessage ( void )
final public Throwable getPrevious ( void )
final public mixed getCode ( void )
final public string getFile ( void )
final public int getLine ( void )
final public array getTrace ( void )
final public string getTraceAsString ( void )
public string __toString ( void )
final private void __clone ( void )
}

Свойства

message

Сообщение об ошибке

code

Код ошибки

file

Имя файла, в которм произошла ошибка

line

Номер строки в файле, в которой произошла ошибка

Содержание

  • Error::__construct — Создает объект класса Error
  • Error::getMessage — Возвращает сообщение об ошибке
  • Error::getPrevious — Возвращает предыдущее Throwable
  • Error::getCode — Возвращает код ошибки
  • Error::getFile — Возвращает имя скрипта, в котором произошла ошибка
  • Error::getLine — Возвращает номер строки в которой произошла ошибка
  • Error::getTrace — Возвращает цепь исключений
  • Error::getTraceAsString — Возвращает цепь исключений в виде строки
  • Error::__toString — Строковое представление ошибки
  • Error::__clone — Клонирует ошибку


Создает объект класса Error

  • « Error
  • Error::getMessage »
  • PHP Manual
  • Error
  • Создает объект класса Error

Error::__construct

(Информация о версии неизвестна, возможно, только в SVN)

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

(Информация о версии неизвестна, возможно, только в SVN)

Error::getMessage — Возвращает сообщение об ошибке

Описание

final public string Error::getMessage ( void )

Возвращает сообщение об ошибке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сообщение об ошибке в виде строки.

Примеры

Пример #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

(Информация о версии неизвестна, возможно, только в SVN)

Error::getPrevious — Возвращает предыдущее Throwable

Описание

final public Throwable Error::getPrevious ( void )

Возвращает предыдущее 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

(Информация о версии неизвестна, возможно, только в SVN)

Error::getCode — Возвращает код ошибки

Описание

final public mixed Error::getCode ( void )

Возвращает код ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ошибки типа integer

Примеры

Пример #1 Пример использованияError::getCode()

<?php
try {
    throw new Error("Какая то ошибка", 30);
} catch(Error $e) {
    echo "Код ошибки: " . $e->getCode();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Код ошибки: 30

Смотрите также

  • Throwable::getCode() - Возвращает код исключения


Возвращает имя скрипта, в котором произошла ошибка

  • « Error::getCode
  • Error::getLine »
  • PHP Manual
  • Error
  • Возвращает имя скрипта, в котором произошла ошибка

Error::getFile

(Информация о версии неизвестна, возможно, только в SVN)

Error::getFile — Возвращает имя скрипта, в котором произошла ошибка

Описание

final public string Error::getFile ( void )

Возвращает имя скрипта, в котором произошла ошибка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя скрипта, в котором произошла ошибка.

Примеры

Пример #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

(Информация о версии неизвестна, возможно, только в SVN)

Error::getLine — Возвращает номер строки в которой произошла ошибка

Описание

final public int Error::getLine ( void )

Возвращает номер строки в которой произошла ошибка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер строки в которой произошла ошибка.

Примеры

Пример #1 Пример использованияError::getLine()

<?php
try {
    throw new Error("Some error message");
} catch(Error $e) {
    echo "Ошибка вызвана в строке: " . $e->getLine();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Ошибка вызвана в строке: 3

Смотрите также

  • Throwable::getLine() - Получает строку скрипта, в которой данный объект был выброшен


Возвращает цепь исключений

  • « Error::getLine
  • Error::getTraceAsString »
  • PHP Manual
  • Error
  • Возвращает цепь исключений

Error::getTrace

(Информация о версии неизвестна, возможно, только в SVN)

Error::getTrace — Возвращает цепь исключений

Описание

final public array Error::getTrace ( void )

Возвращает цепь исключений (stack trace).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает цепь исключений в виде массива.

Примеры

Пример #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() - Возвращает трассировку стека (stack trace)


Возвращает цепь исключений в виде строки

  • « Error::getTrace
  • Error::__toString »
  • PHP Manual
  • Error
  • Возвращает цепь исключений в виде строки

Error::getTraceAsString

(Информация о версии неизвестна, возможно, только в SVN)

Error::getTraceAsString — Возвращает цепь исключений в виде строки

Описание

final public string Error::getTraceAsString ( void )

Возвращает цепь исключений (stack trace) в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает цепь исключений в виде строки.

Примеры

Пример #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

(Информация о версии неизвестна, возможно, только в SVN)

Error::__toString — Строковое представление ошибки

Описание

public string Error::__toString ( void )

Возвращает строковое представление ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление ошибки.

Примеры

Пример #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
  • Арифметическая ошибка »
  • PHP Manual
  • Error
  • Клонирует ошибку

Error::__clone

(Информация о версии неизвестна, возможно, только в SVN)

Error::__clone — Клонирует ошибку

Описание

final private void Error::__clone ( void )

Объект класса Error нельзя клонировать, так что эта функция вызовет фатальную ошибку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Объект класса Error нельзя клонировать.


ArithmeticError

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Если во время математических операций выбрасывается ошибка, то это ошибка типа ArithmeticError. В PHP 7.0, такие ошибки возможно спровоцировать побитовым смещением на отрицательное значение, или вызовом функции intdiv(), приводящей значение, не входящее в интервал значений типа integer.

Обзор классов

ArithmeticError наследует Error {
/* Наследуемые методы */
final public string Error::getMessage ( void )
final public Throwable Error::getPrevious ( void )
final public mixed Error::getCode ( void )
final public string Error::getFile ( void )
final public int Error::getLine ( void )
final public array Error::getTrace ( void )
final public string Error::getTraceAsString ( void )
public string Error::__toString ( void )
final private void Error::__clone ( void )
}


AssertionError

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Ошибки типа AssertionError возникают при неудачных утверждениях, сделанных с помощью assert().

Обзор классов

AssertionError наследует Error {
/* Наследуемые методы */
final public string Error::getMessage ( void )
final public Throwable Error::getPrevious ( void )
final public mixed Error::getCode ( void )
final public string Error::getFile ( void )
final public int Error::getLine ( void )
final public array Error::getTrace ( void )
final public string Error::getTraceAsString ( void )
public string Error::__toString ( void )
final private void Error::__clone ( void )
}


DivisionByZeroError

(Информация о версии неизвестна, возможно, только в SVN)

Введение

DivisionByZeroError выбрасывается при попытке поделить число на ноль.

Обзор классов

DivisionByZeroError наследует Error {
/* Наследуемые методы */
final public string Error::getMessage ( void )
final public Throwable Error::getPrevious ( void )
final public mixed Error::getCode ( void )
final public string Error::getFile ( void )
final public int Error::getLine ( void )
final public array Error::getTrace ( void )
final public string Error::getTraceAsString ( void )
public string Error::__toString ( void )
final private void Error::__clone ( void )
}


ParseError

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Тип ParseError имеют ошибки, выбрасывающиеся при парсинге (разборе) PHP кода, например, когда вызывается функция eval().

Обзор классов

ParseError implements Error {
/* Наследуемые методы */
final public string Error::getMessage ( void )
final public Throwable Error::getPrevious ( void )
final public mixed Error::getCode ( void )
final public string Error::getFile ( void )
final public int Error::getLine ( void )
final public array Error::getTrace ( void )
final public string Error::getTraceAsString ( void )
public string Error::__toString ( void )
final private void Error::__clone ( void )
}


TypeError

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Есть три сценария, в которых будет вызвана ошибка Ошибки типа TypeError. Первый: тип аргумента, переданный функции, не соответствует типу задекларированному в функции для этого аргумента. Второй: тип возвращенного функцией результата не соответствует задекларированному. Третий: встроенной PHP функции было передано неверное количество аргументов (актуально для режима strict).

Обзор классов

TypeError implements Error {
/* Наследуемые методы */
final public string Error::getMessage ( void )
final public Throwable Error::getPrevious ( void )
final public mixed Error::getCode ( void )
final public string Error::getFile ( void )
final public int Error::getLine ( void )
final public array Error::getTrace ( void )
final public string Error::getTraceAsString ( void )
public string Error::__toString ( void )
final private void Error::__clone ( void )
}


Встроенные интерфейсы и классы

Содержание

  • Traversable
  • Iterator
  • IteratorAggregate
  • Throwable
  • ArrayAccess
  • Serializable
  • Closure
  • Генератор

См. также Интерфейсы SPL и Предопределенные классы.


Интерфейс Traversable

(PHP 5 >= 5.0.0, PHP 7)

Введение

Интерфейс, определяющий, является ли класс обходимым (traversable) с использованием foreach.

Абстрактный базовый интерфейс, который не может быть реализован сам по себе. Вместо этого он должен быть реализован используя IteratorAggregate или Iterator.

Замечание:

Внутренние (встроенные) классы, которые реализуют этот интерфейс, могут быть использованы в конструкции foreach и не обязаны реализовывать IteratorAggregate или Iterator.

Замечание:

Это внутренний интерфейс, который не может быть реализован в скрипте PHP. Вместо него нужно использовать либо IteratorAggregate, либо Iterator. При реализации интерфейса, наследующего от Traversable, убедитесь, что в секции implements перед его именем стоит IteratorAggregate или Iterator.

Обзор интерфейсов

Traversable {
}

Этот интерфейс не имеет методов, его единственная цель - быть базовым интерфейсом для всех обходимых классов.


Интерфейс Iterator

(PHP 5 >= 5.0.0, PHP 7)

Введение

Интерфейс для внешних итераторов или объектов, которые могут повторять себя изнутри.

Обзор интерфейсов

Iterator extends Traversable {
/* Методы */
abstract public mixed current ( void )
abstract public scalar key ( void )
abstract public void next ( void )
abstract public void rewind ( void )
abstract public boolean valid ( void )
}

Предопределенные итераторы

PHP уже предоставляет некоторые итераторы для многих ежедневных задач. См. список итераторов SPL для более детальной информации.

Примеры

Пример #1 Основы использования

Этот пример демонстрирует в каком порядке вызываются методы, когда используется с итератором оператор foreach.

<?php
class myIterator implements Iterator {
    private $position = 0;
    private $array = array(
        "firstelement",
        "secondelement",
        "lastelement",
    );

    public function __construct() {
        $this->position = 0;
    }

    function rewind() {
        var_dump(__METHOD__);
        $this->position = 0;
    }

    function current() {
        var_dump(__METHOD__);
        return $this->array[$this->position];
    }

    function key() {
        var_dump(__METHOD__);
        return $this->position;
    }

    function next() {
        var_dump(__METHOD__);
        ++$this->position;
    }

    function valid() {
        var_dump(__METHOD__);
        return isset($this->array[$this->position]);
    }
}

$it = new myIterator;

foreach($it as $key => $value) {
    var_dump($key, $value);
    echo "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(18) "myIterator::rewind"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(0)
string(12) "firstelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(1)
string(13) "secondelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"
string(19) "myIterator::current"
string(15) "myIterator::key"
int(2)
string(11) "lastelement"

string(16) "myIterator::next"
string(17) "myIterator::valid"

Содержание

  • Iterator::current — Возвращает текущий элемент
  • Iterator::key — Возвращает ключ текущего элемента
  • Iterator::next — Переходит к следующему элементу
  • Iterator::rewind — Возвращает итератор на первый элемент
  • Iterator::valid — Проверка корректности позиции


Возвращает текущий элемент

  • « Iterator
  • Iterator::key »
  • PHP Manual
  • Iterator
  • Возвращает текущий элемент

Iterator::current

(PHP 5 >= 5.0.0, PHP 7)

Iterator::current — Возвращает текущий элемент

Описание

abstract public mixed Iterator::current ( void )

Возвращает текущий элемент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Может возвращать любой тип.


Возвращает ключ текущего элемента

  • « Iterator::current
  • Iterator::next »
  • PHP Manual
  • Iterator
  • Возвращает ключ текущего элемента

Iterator::key

(PHP 5 >= 5.0.0, PHP 7)

Iterator::key — Возвращает ключ текущего элемента

Описание

abstract public scalar Iterator::key ( void )

Возвращает ключ текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

При успехе возвращает scalar, или же NULL при неудаче.

Ошибки

Порождает E_NOTICE при неудачном выполнении.


Переходит к следующему элементу

  • « Iterator::key
  • Iterator::rewind »
  • PHP Manual
  • Iterator
  • Переходит к следующему элементу

Iterator::next

(PHP 5 >= 5.0.0, PHP 7)

Iterator::next — Переходит к следующему элементу

Описание

abstract public void Iterator::next ( void )

Передвигает текущую позицию к следующему элементу.

Замечание:

Метод вызывается после каждой итерации foreach.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Любое возвращаемое значение игнорируется.


Возвращает итератор на первый элемент

  • « Iterator::next
  • Iterator::valid »
  • PHP Manual
  • Iterator
  • Возвращает итератор на первый элемент

Iterator::rewind

(PHP 5 >= 5.0.0, PHP 7)

Iterator::rewind — Возвращает итератор на первый элемент

Описание

abstract public void Iterator::rewind ( void )

Возвращает итератор обратно на первый элемент.

Замечание:

В начале цикла foreach этот метод вызывается первым. Этот метод не будет вызван после цикла foreach.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Любое возвращаемое значение игнорируется.


Проверка корректности позиции

  • « Iterator::rewind
  • IteratorAggregate »
  • PHP Manual
  • Iterator
  • Проверка корректности позиции

Iterator::valid

(PHP 5 >= 5.0.0, PHP 7)

Iterator::valid — Проверка корректности позиции

Описание

abstract public boolean Iterator::valid ( void )

Этот метод вызывается после Iterator::rewind() и Iterator::next() чтобы проверить, корректна ли текущая позиция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращаемое значение будет приведено к типу boolean и затем использовано. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Интерфейс IteratorAggregate

(PHP 5 >= 5.0.0, PHP 7)

Введение

Интерфейс для создания внешнего итератора.

Обзор интерфейсов

IteratorAggregate extends Traversable {
/* Методы */
abstract public Traversable getIterator ( void )
}

Пример #1 Основы использования

<?php
class myData implements IteratorAggregate {
    public $property1 = "Public property one";
    public $property2 = "Public property two";
    public $property3 = "Public property three";

    public function __construct() {
        $this->property4 = "last property";
    }

    public function getIterator() {
        return new ArrayIterator($this);
    }
}

$obj = new myData;

foreach($obj as $key => $value) {
    var_dump($key, $value);
    echo "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(9) "property1"
string(19) "Public property one"

string(9) "property2"
string(19) "Public property two"

string(9) "property3"
string(21) "Public property three"

string(9) "property4"
string(13) "last property"

Содержание

  • IteratorAggregate::getIterator — Возвращает внешний итератор


Возвращает внешний итератор

  • « IteratorAggregate
  • Throwable »
  • PHP Manual
  • IteratorAggregate
  • Возвращает внешний итератор

IteratorAggregate::getIterator

(PHP 5 >= 5.0.0, PHP 7)

IteratorAggregate::getIterator — Возвращает внешний итератор

Описание

abstract public Traversable IteratorAggregate::getIterator ( void )

Возвращает внешний итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр объекта, использующего Iterator или Traversable

Ошибки

Вызывает Exception в случае неудачи.


Throwable

(PHP 7)

Введение

Throwable является родительским интерфейсом для всех объектов, выбрасывающихся с помощью выражения throw в PHP 7, включая классы Error и Exception.

Замечание:

PHP классы не могут напрямую имплементировать интерфейс Throwable. Вместо этого они могут наследовать подкласс Exception.

Обзор интерфейсов

Throwable {
/* Методы */
abstract public string getMessage ( void )
abstract public int getCode ( void )
abstract public string getFile ( void )
abstract public int getLine ( void )
abstract public array getTrace ( void )
abstract public string getTraceAsString ( void )
abstract public Throwable getPrevious ( void )
abstract public string __toString ( void )
}

Содержание

  • Throwable::getMessage — Получает сообщение ошибки
  • Throwable::getCode — Возвращает код исключения
  • Throwable::getFile — Возвращает файл, в котором произошло исключение
  • Throwable::getLine — Получает строку скрипта, в которой данный объект был выброшен
  • Throwable::getTrace — Возвращает трассировку стека (stack trace)
  • Throwable::getTraceAsString — Получает результаты трассировки стека в виде строки
  • Throwable::getPrevious — Возвращает предыдущее Throwable
  • Throwable::__toString — Получает строковое представление брошенного объекта


Получает сообщение ошибки

  • « Throwable
  • Throwable::getCode »
  • PHP Manual
  • Throwable
  • Получает сообщение ошибки

Throwable::getMessage

(PHP 7)

Throwable::getMessage — Получает сообщение ошибки

Описание

abstract public string Throwable::getMessage ( void )

Возвращает сообщение ошибки данного выброшенного объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое сообщение.

Смотрите также

  • Exception::getMessage() - Получает сообщение исключения


Возвращает код исключения

  • « Throwable::getMessage
  • Throwable::getFile »
  • PHP Manual
  • Throwable
  • Возвращает код исключения

Throwable::getCode

(PHP 7)

Throwable::getCode — Возвращает код исключения

Описание

abstract public int Throwable::getCode ( void )

Возвращает код ошибки выброшенного объекта, к которому применена данная функция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код исключения в виде integer в Exception, но возможны и другие возвращаемые типы наследников Exception (например string, если тип ошибки PDOException).

Смотрите также

  • Exception::getCode() - Получает код исключения


Возвращает файл, в котором произошло исключение

  • « Throwable::getCode
  • Throwable::getLine »
  • PHP Manual
  • Throwable
  • Возвращает файл, в котором произошло исключение

Throwable::getFile

(PHP 7)

Throwable::getFile — Возвращает файл, в котором произошло исключение

Описание

abstract public string Throwable::getFile ( void )

Возвращает имя файла, в котором данный объект был выброшен.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое значение имени файла.

Смотрите также

  • Exception::getFile() - Получает файл, в котором возникло исключение


Получает строку скрипта, в которой данный объект был выброшен

  • « Throwable::getFile
  • Throwable::getTrace »
  • PHP Manual
  • Throwable
  • Получает строку скрипта, в которой данный объект был выброшен

Throwable::getLine

(PHP 7)

Throwable::getLine — Получает строку скрипта, в которой данный объект был выброшен

Описание

abstract public int Throwable::getLine ( void )

Возвращает номер строки, в которой данный объект был выброшен.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение строки.

Смотрите также

  • Exception::getLine() - Получает строку, в которой возникло исключение


Возвращает трассировку стека (stack trace)

  • « Throwable::getLine
  • Throwable::getTraceAsString »
  • PHP Manual
  • Throwable
  • Возвращает трассировку стека (stack trace)

Throwable::getTrace

(PHP 7)

Throwable::getTrace — Возвращает трассировку стека (stack trace)

Описание

abstract public array Throwable::getTrace ( void )

Возвращает трассировку стека в виде массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает трассировку стека в виде массива в таком же формате, что и debug_backtrace().

Смотрите также

  • Exception::getTrace() - Получает трассировку стека


Получает результаты трассировки стека в виде строки

  • « Throwable::getTrace
  • Throwable::getPrevious »
  • PHP Manual
  • Throwable
  • Получает результаты трассировки стека в виде строки

Throwable::getTraceAsString

(PHP 7)

Throwable::getTraceAsString — Получает результаты трассировки стека в виде строки

Описание

abstract public string Throwable::getTraceAsString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает результаты трассировки стека в виде строки.

Смотрите также

  • Exception::getTraceAsString() - Получает трассировку стека в виде строки


Возвращает предыдущее Throwable

  • « Throwable::getTraceAsString
  • Throwable::__toString »
  • PHP Manual
  • Throwable
  • Возвращает предыдущее Throwable

Throwable::getPrevious

(PHP 7)

Throwable::getPrevious — Возвращает предыдущее Throwable

Описание

abstract public Throwable Throwable::getPrevious ( void )

Возвращает любое предыдущее Throwable (для примера, переданное третьим параметром в Exception::__construct()).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает предыдущее Throwable, если оно было, или NULL, если нет.

Смотрите также

  • Exception::getPrevious() - Возвращает предыдущее исключение


Получает строковое представление брошенного объекта

  • « Throwable::getPrevious
  • ArrayAccess »
  • PHP Manual
  • Throwable
  • Получает строковое представление брошенного объекта

Throwable::__toString

(PHP 7)

Throwable::__toString — Получает строковое представление брошенного объекта

Описание

abstract public string Throwable::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое(string) представление брошенного объекта.

Смотрите также

  • Exception::__toString() - Строковое представление исключения


Интерфейс ArrayAccess

(PHP 5 >= 5.0.0, PHP 7)

Введение

Интерфейс обеспечивает доступ к объектам как к массиву.

Обзор интерфейсов

ArrayAccess {
/* Методы */
abstract public boolean offsetExists ( mixed $offset )
abstract public mixed offsetGet ( mixed $offset )
abstract public void offsetSet ( mixed $offset , mixed $value )
abstract public void offsetUnset ( mixed $offset )
}

Пример #1 Основы использования

<?php
class obj implements ArrayAccess {
    private $container = array();

    public function __construct() {
        $this->container = array(
            "one"   => 1,
            "two"   => 2,
            "three" => 3,
        );
    }

    public function offsetSet($offset, $value) {
        if (is_null($offset)) {
            $this->container[] = $value;
        } else {
            $this->container[$offset] = $value;
        }
    }

    public function offsetExists($offset) {
        return isset($this->container[$offset]);
    }

    public function offsetUnset($offset) {
        unset($this->container[$offset]);
    }

    public function offsetGet($offset) {
        return isset($this->container[$offset]) ? $this->container[$offset] : null;
    }
}

$obj = new obj;

var_dump(isset($obj["two"]));
var_dump($obj["two"]);
unset($obj["two"]);
var_dump(isset($obj["two"]));
$obj["two"] = "A value";
var_dump($obj["two"]);
$obj[] = 'Append 1';
$obj[] = 'Append 2';
$obj[] = 'Append 3';
print_r($obj);
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
int(2)
bool(false)
string(7) "A value"
obj Object
(
    [container:obj:private] => Array
        (
            [one] => 1
            [three] => 3
            [two] => A value
            [0] => Append 1
            [1] => Append 2
            [2] => Append 3
        )

)

Содержание

  • ArrayAccess::offsetExists — Определяет, существует ли заданное смещение (ключ)
  • ArrayAccess::offsetGet — Возвращает заданное смещение (ключ)
  • ArrayAccess::offsetSet — Присваивает значение заданному смещению
  • ArrayAccess::offsetUnset — Удаляет смещение


Определяет, существует ли заданное смещение (ключ)

  • « ArrayAccess
  • ArrayAccess::offsetGet »
  • PHP Manual
  • ArrayAccess
  • Определяет, существует ли заданное смещение (ключ)

ArrayAccess::offsetExists

(PHP 5 >= 5.0.0, PHP 7)

ArrayAccess::offsetExists — Определяет, существует ли заданное смещение (ключ)

Описание

abstract public boolean ArrayAccess::offsetExists ( mixed $offset )

Определяет, существует или нет данное смещение (ключ).

Данный метод исполняется, когда используется функция isset() или функция empty() для объекта, реализующего интерфейс ArrayAccess.

Замечание:

Когда используется функция empty(), метод ArrayAccess::offsetGet() вызывается и результат проверяется только в случае, если метод ArrayAccess::offsetExists() возвращает TRUE.

Список параметров

offset

Смещение (ключ) для проверки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание:

Возвращаемое значение будет приведено к логическому типу, если возвращаемое значение не является логическим.

Примеры

Пример #1 Пример использования ArrayAccess::offsetExists()

<?php
class obj implements arrayaccess {
    public function offsetSet($offset, $value) {
        var_dump(__METHOD__);
    }
    public function offsetExists($var) {
        var_dump(__METHOD__);
        if ($var == "foobar") {
            return true;
        }
        return false;
    }
    public function offsetUnset($var) {
        var_dump(__METHOD__);
    }
    public function offsetGet($var) {
        var_dump(__METHOD__);
        return "value";
    }
}

$obj = new obj;

echo "Выполняется obj::offsetExists()\n";
var_dump(isset($obj["foobar"]));

echo "\nВыполняется obj::offsetExists() и obj::offsetGet()\n";
var_dump(empty($obj["foobar"]));

echo "\nВыполняется obj::offsetExists(), но *не* obj:offsetGet() поскольку нечего возвращать\n";
var_dump(empty($obj["foobaz"]));
?>

Результатом выполнения данного примера будет что-то подобное:

Выполняется obj::offsetExists()
string(17) "obj::offsetExists"
bool(true)

Выполняется obj::offsetExists() и obj::offsetGet()
string(17) "obj::offsetExists"
string(14) "obj::offsetGet"
bool(false)

Выполняется obj::offsetExists(), но *не* obj:offsetGet() поскольку нечего возвращать
string(17) "obj::offsetExists"
bool(true)


Возвращает заданное смещение (ключ)

  • « ArrayAccess::offsetExists
  • ArrayAccess::offsetSet »
  • PHP Manual
  • ArrayAccess
  • Возвращает заданное смещение (ключ)

ArrayAccess::offsetGet

(PHP 5 >= 5.0.0, PHP 7)

ArrayAccess::offsetGet — Возвращает заданное смещение (ключ)

Описание

abstract public mixed ArrayAccess::offsetGet ( mixed $offset )

Возвращает заданное смещение (ключ).

Данный метод исполняется, когда проверяется смещение (ключ) на пустоту с помощью функции empty().

Список параметров

offset

Смещение (ключ) для возврата.

Примечания

Замечание:

Начиная с PHP 5.3.4, смягчена проверка для прототипа метода, и возможна реализация данного метода с возвращением по ссылке. Это делает возможным косвенную модификацию для величин массива перегруженного объекта ArrayAccess.

Явная модификация - это такая модификация, при которой полностью заменяется значение величины массива, как в случае $obj[6] = 7. С другой стороны, при косвенной модификации заменяется только часть величины, или происходит попытка присвоения величины по ссылке другой переменной, как в случае $obj[6][7] = 7 или $var =& $obj[6]. Увеличение с использованием оператора ++ и уменьшение с использованием оператора -- так же реализуются с помощью способа, который требует косвенную модификацию.

В то время как, явная модификация запускает вызов метода ArrayAccess::offsetSet(), косвенная модификация запускает вызов метода ArrayAccess::offsetGet(). В таком случае, реализация метода ArrayAccess::offsetGet() должна быть в состоянии возвращать результат по ссылке, в противном случае будет поднято сообщение об ошибке уровня E_NOTICE.

Возвращаемые значения

Может возвращать значение любого типа.

Смотрите также

  • ArrayAccess::offsetExists() - Определяет, существует ли заданное смещение (ключ)


Присваивает значение заданному смещению

  • « ArrayAccess::offsetGet
  • ArrayAccess::offsetUnset »
  • PHP Manual
  • ArrayAccess
  • Присваивает значение заданному смещению

ArrayAccess::offsetSet

(PHP 5 >= 5.0.0, PHP 7)

ArrayAccess::offsetSet — Присваивает значение заданному смещению

Описание

abstract public void ArrayAccess::offsetSet ( mixed $offset , mixed $value )

Присваивает значение указанному смещению (ключу).

Список параметров

offset

Смещение (ключ), которому будет присваиваться значение.

value

Значение для присвоения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

Параметр offset будет установлен в NULL если иное значение недоступно, как показано в следующем примере.

<?php
$arrayaccess[] = "first value";
$arrayaccess[] = "second value";
print_r($arrayaccess);
?>

Результат выполнения данного примера:

Array
(
    [0] => first value
    [1] => second value
)

Замечание:

Данный метод не вызывается при присвоениях по ссылки и других косвенных изменений величин массива перегруженного объекта ArrayAccess (косвенные в том смысле, что они произведены не прямой заменой величины, а путем изменения часть элемента или свойства элемента массива, или присвоением элемента массива по ссылке другой переменой). Вместо этого, вызывается метод ArrayAccess::offsetGet(). Данная операция будет успешна только в том случае, если метод возвращает по ссылке, что доступно только начиная с PHP 5.3.4.


Удаляет смещение

  • « ArrayAccess::offsetSet
  • Serializable »
  • PHP Manual
  • ArrayAccess
  • Удаляет смещение

ArrayAccess::offsetUnset

(PHP 5 >= 5.0.0, PHP 7)

ArrayAccess::offsetUnset — Удаляет смещение

Описание

abstract public void ArrayAccess::offsetUnset ( mixed $offset )

Удаляет смещение.

Замечание:

Этот метод не будет вызван при приведении типа к (unset)

Список параметров

offset

Смещение для удаления.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Интерфейс Serializable

(PHP 5 >= 5.1.0, PHP 7)

Введение

Интерфейс для индивидуальной сериализации.

Классы, которые реализуют этот интерфейс не поддерживают больше __sleep() и __wakeup(). Метод serialize вызывается всякий раз, когда необходима сериализация экземпляру класса. Этот метод не вызывает __destruct() и не имеет никаких побочных действий кроме тех, которые запрограммированы внутри него. Когда данные десериализованы, класс известен и соответствующий метод unserialize() вызывается как конструктор вместо вызова __construct(). Если вам необходимо вызвать стандартный конструктор, вы можете это сделать в этом методе.

Обратите внимание, что когда старый объект класса, который сейчас реализует этот интерфейс, а ранее не реализовывал и был сереализован, то в случае десериализации будет вызван метод __wakeup() вместо метода сериализации. Это может быть полезно в случае миграции.

Обзор интерфейсов

Serializable {
/* Методы */
abstract public string serialize ( void )
abstract public void unserialize ( string $serialized )
}

Пример #1 Основы использования

<?php
class obj implements Serializable {
    private $data;
    public function __construct() {
        $this->data = "My private 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(38) "C:3:"obj":23:{s:15:"My private data";}"
string(15) "My private data"

Содержание

  • Serializable::serialize — Представляет объект в виде строки
  • Serializable::unserialize — Создает объект


Представляет объект в виде строки

  • « Serializable
  • Serializable::unserialize »
  • PHP Manual
  • Serializable
  • Представляет объект в виде строки

Serializable::serialize

(PHP 5 >= 5.1.0, PHP 7)

Serializable::serialize — Представляет объект в виде строки

Описание

abstract public string Serializable::serialize ( void )

Возвращает строковое представление объекта.

Замечание:

Этот метод действует как деструктор объекта. Метод __destruct() не вызывается после этого метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строковое представление объекта или NULL

Ошибки

Вызывает Exception при возвращении типов, отличных от string или NULL

Смотрите также

  • __sleep()


Создает объект

  • « Serializable::serialize
  • Closure »
  • PHP Manual
  • Serializable
  • Создает объект

Serializable::unserialize

(PHP 5 >= 5.1.0, PHP 7)

Serializable::unserialize — Создает объект

Описание

abstract public void Serializable::unserialize ( string $serialized )

Вызывается во время десериализации объекта.

Замечание:

Этот метод действует как конструктор объекта. Метод __construct() не вызывается после этого метода.

Список параметров

serialized

Строковое представление объекта.

Возвращаемые значения

Возвращаемое значение этого метода игнорируется.

Смотрите также

  • __wakeup()


Класс Closure

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс используемый для создания анонимных функций.

Анонимные функции, появившиеся в PHP 5.3, являются объектами данного класса. Ранее это считалось только деталью реализации, но начиная с PHP 5.4, этот класс получил методы, позволяющие контролировать анонимные функции после их создания.

Кроме методов, описанных здесь, этот класс также имеет метод __invoke. Данный метод необходим только для совместимости с другими классами, в которых реализован магический вызов, так как этот метод не используется при вызове функции.

Обзор классов

Closure {
/* Методы */
private __construct ( void )
public static Closure bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] )
public Closure bindTo ( object $newthis [, mixed $newscope = "static" ] )
public mixed call ( object $newthis [, mixed $... ] )
}

Содержание

  • Closure::__construct — Конструктор запрещающий создавать новые объекты
  • Closure::bind — Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса
  • Closure::bindTo — Дублирует замыкание с указанием связанного объекта и области видимости класса
  • Closure::call — Связывает и запускает замыкание


Конструктор запрещающий создавать новые объекты

  • « Closure
  • Closure::bind »
  • PHP Manual
  • Closure
  • Конструктор запрещающий создавать новые объекты

Closure::__construct

(PHP 5 >= 5.3.0, PHP 7)

Closure::__construct — Конструктор запрещающий создавать новые объекты

Описание

private Closure::__construct ( void )

Этот метод существует только, чтобы запретить создание новых объектов класса Closure. Объекты этого класса создаются способом, описанным в разделе анонимные функции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Этот метод не возвращает никаких значений. Он просто выбрасывает ошибку типа E_RECOVERABLE_ERROR.

Смотрите также

  • Анонимные функции


Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса

  • « Closure::__construct
  • Closure::bindTo »
  • PHP Manual
  • Closure
  • Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса

Closure::bind

(PHP 5 >= 5.4.0, PHP 7)

Closure::bind — Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса

Описание

public static Closure Closure::bind ( Closure $closure , object $newthis [, mixed $newscope = "static" ] )

Этот метод является статическим вариантом Closure::bindTo(). Смотрите документацию к указанному методу для подробной информации.

Список параметров

closure

Анонимная функция для привязывания к объекту

newthis

Объект, к которому будет привязана переданная функция, или NULL для отсоединения функции от ее текущего объекта.

newscope

Область видимости класса, с которой ассоциируется замыкание, или 'static' для сохранения текущей области видимости. Если передан объект, то будет использован его класс. Этот параметр определяет видимость protected (защищенных) и private (закрытых) методов привязанного объекта. Запрещено в качесте этого параметра передавать (объектом) внутренний класс.

Возвращаемые значения

Возвращает новый объект Closure или FALSE в случае возникновения ошибки

Список изменений

Версия | Описание
7.0.0 | newscope больше не может быть внутренним классом, как это было возможно ранее.

Примеры

Пример #1 Пример Closure::bind()

<?php
class A {
    private static $sfoo = 1;
    private $ifoo = 2;
}
$cl1 = static function() {
    return A::$sfoo;
};
$cl2 = function() {
    return $this->ifoo;
};

$bcl1 = Closure::bind($cl1, null, 'A');
$bcl2 = Closure::bind($cl2, new A(), 'A');
echo $bcl1(), "\n";
echo $bcl2(), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

1
2

Смотрите также

  • Анонимные функции
  • Closure::bindTo() - Дублирует замыкание с указанием связанного объекта и области видимости класса


Дублирует замыкание с указанием связанного объекта и области видимости класса

  • « Closure::bind
  • Closure::call »
  • PHP Manual
  • Closure
  • Дублирует замыкание с указанием связанного объекта и области видимости класса

Closure::bindTo

(PHP 5 >= 5.4.0, PHP 7)

Closure::bindTo — Дублирует замыкание с указанием связанного объекта и области видимости класса

Описание

public Closure Closure::bindTo ( object $newthis [, mixed $newscope = "static" ] )

Создает и возвращает новую анонимную функцию с тем же телом функции и связанными переменными, но с другим связанным объектом или новой областью видимости класса.

"Привязанный объект" определяет значение $this, которое будет доступно в теле функции, а "область видимости класса" представляет собой класс, который определяет к каким protected (защищенным) и private (закрытым) элементам этого объекта будет иметь доступ анонимная функция. Если точнее, то это те элементы, как если бы анонимная функция была бы методом класса, переданного в параметре newscope.

Статические замыкания не могут иметь привязанный объект (значение параметра newthis должно быть равно NULL), но эта функция может все равно использоваться для изменения его области видимости класса.

Данный метод гарантирует, что у нестатического замыкания с привязанным объектом будет задана область видимости и наоборот. Для выполнения этого условия применяются следующие правила: Для нестатического замыкания, с указанной областью видимости и с NULL вместо объекта, будет создано статическое замыкание. Для нестатического замыкания с незаданной областью видимости, но с указанием объекта, создается замыкание с неуказанной областью видимости.

Замечание:

Если вам необходимо только дублировать анонимную функцию, то вы можете вместо данного метода использовать клонирование.

Список параметров

newthis

Объект, к которому будет привязана переданная функция, или NULL для отсоединения функции от ее текущего объекта.

newscope

Область видимости класса, с которой ассоциируется замыкание, или 'static' для сохранения текущей области видимости. Если передан объект, то будет использован его класс. Этот параметр определяет видимость protected (защищенных) и private (закрытых) методов привязанного объекта.

Возвращаемые значения

Возвращает новый объект Closure или FALSE в случае возникновения ошибки

Примеры

Пример #1 Пример Closure::bindTo()

<?php

class A {
    function __construct($val) {
        $this->val = $val;
    }
    function getClosure() {
        //Возвращает замыкание, связанное с текущими объектом и областью видимости
        return function() { return $this->val; };
    }
}

$ob1 = new A(1);
$ob2 = new A(2);

$cl = $ob1->getClosure();
echo $cl(), "\n";
$cl = $cl->bindTo($ob2);
echo $cl(), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

1
2

Смотрите также

  • Анонимные функции
  • Closure::bind() - Дублирует замыкание с указанием конкретного связанного объекта и области видимости класса


Связывает и запускает замыкание

  • « Closure::bindTo
  • Генератор »
  • PHP Manual
  • Closure
  • Связывает и запускает замыкание

Closure::call

(PHP 7)

Closure::call — Связывает и запускает замыкание

Описание

public mixed Closure::call ( object $newthis [, mixed $... ] )

Временно связывает замыкание с newthis, и вызывает его с заданными параметрами.

Список параметров

newthis

Объект (object) для связи с замыканием на время его запуска.

...

Ноль или больше параметров, которые передаются замыканию.

Возвращаемые значения

Возвращает возвращаемое значение замыкания

Примеры

Пример #1 Пример Closure::call()

<?php
class Value {
    protected $value;

    public function __construct($value) {
        $this->value = $value;
    }

    public function getValue() {
        return $this->value;
    }
}

$three = new Value(3);
$four = new Value(4);

$closure = function ($delta) { var_dump($this->getValue() + $delta); };
$closure->call($three, 4);
$closure->call($four, 4);
?>

Результат выполнения данного примера:

int(7)
int(8)


Класс Generator

(Информация о версии неизвестна, возможно, только в SVN)

Введение

СОздание объектов типа Generator описано в разделе Генераторы.

Предостережение

Объекты Generator не могут быть созданы с помощью оператора new.

Обзор классов

Generator implements Iterator {
/* Методы */
public mixed current ( void )
public mixed getReturn ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public mixed send ( mixed $value )
public mixed throw ( Exception $exception )
public bool valid ( void )
public void __wakeup ( void )
}

Содержание

  • Generator::current — Возвращает текущее значение генератора
  • Generator::getReturn — Получить значение, возвращаемое генератором
  • Generator::key — Возвращает ключ сгенерированного элемента
  • Generator::next — Возобновляет работу генератора
  • Generator::rewind — Перематывает итератор
  • Generator::send — Передача значения в генератор
  • Generator::throw — Бросить исключение в генератор
  • Generator::valid — Проверка, закрыт ли итератор
  • Generator::__wakeup — Callback-функция сериализации


Возвращает текущее значение генератора

  • « Генератор
  • Generator::getReturn »
  • PHP Manual
  • Генератор
  • Возвращает текущее значение генератора

Generator::current

(PHP 5 >= 5.5.0, PHP 7)

Generator::current — Возвращает текущее значение генератора

Описание

public mixed Generator::current ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущее значение.


Получить значение, возвращаемое генератором

  • « Generator::current
  • Generator::key »
  • PHP Manual
  • Генератор
  • Получить значение, возвращаемое генератором

Generator::getReturn

(PHP 7)

Generator::getReturn — Получить значение, возвращаемое генератором

Описание

public mixed Generator::getReturn ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Получает возвращаемое значение генератора, после того, как он закончился.

Примеры

Пример #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::key

(PHP 5 >= 5.5.0, PHP 7)

Generator::key — Возвращает ключ сгенерированного элемента

Описание

public mixed Generator::key ( void )

Возвращает ключ сгенерированного элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ключ сгенерированного элемента.

Примеры

Пример #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::next

(PHP 5 >= 5.5.0, PHP 7)

Generator::next — Возобновляет работу генератора

Описание

public void Generator::next ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Перематывает итератор

  • « Generator::next
  • Generator::send »
  • PHP Manual
  • Генератор
  • Перематывает итератор

Generator::rewind

(PHP 5 >= 5.5.0, PHP 7)

Generator::rewind — Перематывает итератор

Описание

public void Generator::rewind ( void )

Если итерация уже начата, то бросает исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Передача значения в генератор

  • « Generator::rewind
  • Generator::throw »
  • PHP Manual
  • Генератор
  • Передача значения в генератор

Generator::send

(PHP 5 >= 5.5.0, PHP 7)

Generator::send — Передача значения в генератор

Описание

public mixed Generator::send ( mixed $value )

Передача заданного значения в генератор как результат текущего выражения yield и возобновление его работы.

Если генератор еще не дошел до первого зызова оператора yield, он выполнится до момента первого вызова yield, прежде чем передаст в него значение. Так что нет необходимости вызывать Generator::next() нового генератора перед вызовом этого метода (как это делается в Python).

Список параметров

value

Значение, которое отправляется в генератор. Это значение будет также и текущим возвращаемым значение генератора.

Возвращаемые значения

Волзвращает сгенерированное значение.

Примеры

Пример #1 Использование Generator::send() для инъекции значений

<?php
function printer() {
    while (true) {
        $string = yield;
        echo $string."\n";
    }
}

$printer = printer();
$printer->send('Hello world!');
$printer->send('Bye world!');
?>

Результат выполнения данного примера:

Hello world!
Bye world!


Бросить исключение в генератор

  • « Generator::send
  • Generator::valid »
  • PHP Manual
  • Генератор
  • Бросить исключение в генератор

Generator::throw

(PHP 5 >= 5.5.0, PHP 7)

Generator::throw — Бросить исключение в генератор

Описание

public mixed Generator::throw ( Exception $exception )

Бросает исключение в генератор и возобновляет его выполнение. Поведение будет таким, как будто текущее значение 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::valid

(PHP 5 >= 5.5.0, PHP 7)

Generator::valid — Проверка, закрыт ли итератор

Описание

public bool Generator::valid ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает FALSE если итератор закрыт и TRUE в обратном случае.


Callback-функция сериализации

  • « Generator::valid
  • Контекстные опции и параметры »
  • PHP Manual
  • Генератор
  • Callback-функция сериализации

Generator::__wakeup

(PHP 5 >= 5.5.0, PHP 7)

Generator::__wakeup — Callback-функция сериализации

Описание

public void Generator::__wakeup ( void )

Бросает исключение, так как генератор нельзя сериализовать.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Контекстные опции и параметры

PHP предлагает различные контекстные опции и параметры, которые могут быть использованы со всеми
файловыми системами и обработчиками потоков (stream wrappers). Контекст создается с помощью функции
stream_context_create(). Опции устанавливаются путем вызова
stream_context_set_option(), а параметры -- путем вызова
stream_context_set_params().

Содержание

  • Контекстные опции сокета — Список контекстных опций сокета
  • Опции контекста HTTP — Список опций контекста HTTP
  • Параметры контекста FTP — Список параметров контекста FTP
  • Опции контекста SSL — Список опций контекста SSL
  • Опции контекста CURL — Список опций контекста CURL
  • Контекстные опции Phar — Список контекстных опций Phar
  • Контекстные опции MongoDB — Список контекстных опций MongoDB
  • Параметры контекста — Список параметров контекста


Список контекстных опций сокета

  • « Контекстные опции и параметры
  • Опции контекста 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().

Список изменений

Версия | Описание
7.0.1 | Добавлено ipv6_v6only.
7.0.0 | Добавлено so_broadcast.
7.0.0 | Добавлено so_reuseport.
5.3.3 | Добавлено backlog.
5.1.0 | Добавлено bindto.

Примеры

Пример #1 Пример использования bindto

<?php
// Соединение с сетью, используя IP '192.168.0.100'
$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:0',
    ),
);

// Соединение с сетью, используя IP '192.168.0.100' и порт '7000'
$opts = array(
    'socket' => array(
        'bindto' => '192.168.0.100:7000',
    ),
);

// Соединение с сетью, используя IPv6 адрес '2001:db8::1'
// и порт '7000'
$opts = array(
    'socket' => array(
        'bindto' => '[2001:db8::1]:7000',
    ),
);

// Соединение с сетью, используя порт '7000'
$opts = array(
    'socket' => array(
        'bindto' => '0:7000',
    ),
);

// Создаем контекст...
$context = stream_context_create($opts);

// ...и используем его для получения данных
echo file_get_contents('http://www.example.com', false, $context);

?>


Список опций контекста HTTP

  • « Контекстные опции сокета
  • Параметры контекста FTP »
  • PHP Manual
  • Контекстные опции и параметры
  • Список опций контекста HTTP

Опции контекста HTTP

Опции контекста HTTP — Список опций контекста HTTP

Описание

Опции контекста для транспортных протоколов http:// и https://.

Опции

method string

GET, POST, или любой другой метод HTTP, поддерживаемый удаленным сервером.

По умолчанию - GET.

header array или string

Дополнительные заголовки для отправки вместе с запросом. Значения в этой опции будут переопределять другие значения (такие как User-agent:, Host:, и Authentication:).

user_agent string

Значение для отправки вместе с заголовком User-Agent:. Это значение будет использоваться, если заголовок user-agent не был указан в опции контекста header выше.

По умолчанию используется значение директивы user_agent из файла php.ini.

content string

Дополнительные данные для отправки после заголовков. Обычно используется с запросами POST и PUT.

proxy string

URI, указывающий адрес прокси-сервера. (Например, tcp://proxy.example.com:5100).

request_fulluri boolean

Когда установлено в TRUE, весь URI будет использован при построении запроса. (Например, GET http://www.example.com/path/to/file.html HTTP/1.0). Хотя это нестандартный формат запроса, некоторые прокси-серверы требуют его.

По умолчанию значение FALSE.

follow_location integer

Следовать переадресациям заголовка Location. Для отключения установите в значение 0.

По умолчанию 1.

max_redirects integer

Максимальное количество переадресаций, которым можно следовать. Значение 1 или меньше означает, что никаких переадресаций не будет произведено.

По умолчанию 20.

protocol_version float

Версия протокола HTTP.

По умолчанию 1.0.

Замечание:

В PHP до версии 5.3.0 не было реализовано декодирование фрагментированных передач. Если это значение установлено в 1.1, то это ваша ответственность, чтобы оно соответствовало версии 1.1.

timeout float

Тайм-аут на чтение в секундах, указанный с помощью типа float (например, 10.5).

По умолчанию используется значение директивы default_socket_timeout из файла php.ini.

ignore_errors boolean

Извлечь содержимое даже в случае, если присутствует код статуса неуспешного завершения

По умолчанию FALSE.

Список изменений

Версия | Описание
5.3.4 | Добавлен параметр follow_location.
5.3.0 | Параметр protocol_version поддерживает декодирование фрагментированной передачи, когда установлен в 1.1.
5.2.10 | Добавлен параметр ignore_errors.
5.2.10 | Параметр header теперь может быть типа array с числовыми индексами.
5.2.1 | Добавлен параметр timeout.
5.1.0 | Добавлено проксирование протокола HTTPS через HTTP-прокси.
5.1.0 | Добавлен параметр max_redirects.
5.1.0 | Добавлен параметр protocol_version.

Примеры

Пример #1 Извлечь страницу и отправить данные методом POST

<?php

$postdata = http_build_query(
    array(
        'var1' => 'некоторое содержимое',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

Пример #2 Игнорировать переадресации, но извлечь заголовки и содержимое

<?php

$url = "http://www.example.org/header.php";

$opts = array('http' =>
    array(
        'method' => 'GET',
        'max_redirects' => '0',
        'ignore_errors' => '1'
    )
);

$context = stream_context_create($opts);
$stream = fopen($url, 'r', false, $context);

// информация о заголовках, а также
// мета-данные о потоке
var_dump(stream_get_meta_data($stream));

// актуальная информация по ссылке $url
var_dump(stream_get_contents($stream));
fclose($stream);
?>

Примечания

Замечание: Опции контекста низлежащего потока в сокете
Дополнительные опции контекста могут поддерживаться низлежащим транспортным протоколом. Для потоков http://, это относится к опциям контекста для транспортного протокола tcp://. Для потоков https://, это относится к опциям контекста для транспортного протокола ssl://.

Замечание: Строка статуса HTTP
Когда эта обертка потока следует по переадресации, wrapper_data, возвращаемый функцией stream_get_meta_data(), необязательно содержит строку статуса HTTP, которая на самом деле относится к содержанию данных по индексу 0.

array (
  'wrapper_data' =>
  array (
    0 => 'HTTP/1.0 301 Moved Permantenly',
    1 => 'Cache-Control: no-cache',
    2 => 'Connection: close',
    3 => 'Location: http://example.com/foo.jpg',
    4 => 'HTTP/1.1 200 OK',
    ...
Первый запрос вернул код 301 (постоянное перенаправление), так что обертка потока автоматически последовала этому перенаправлению, чтобы получить ответ 200 (индекс = 4).

Смотрите также

  • http://
  • Контекстные опции сокета
  • Опции контекста SSL


Список параметров контекста FTP

  • « Опции контекста HTTP
  • Опции контекста SSL »
  • PHP Manual
  • Контекстные опции и параметры
  • Список параметров контекста FTP

Параметры контекста FTP

Параметры контекста FTP — Список параметров контекста FTP

Описание

Параметры контекста для транспортных протоколов ftp:// и ftps://

Опции

overwrite boolean

Разрешает перезаписывать существующие файлы на удаленном сервере. Работает только в режиме записи (upload).

По умолчанию FALSE.

resume_pos integer

Смещение в файле, с которого начинается передача. Работает только в режиме чтения (download).

По умолчанию 0 (Начало файла).

proxy string

FTP-запрос через прокси-сервер HTTP. Применяется только при операции чтения файла. Пример: tcp://squid.example.com:8000.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр proxy.

Примечания

Замечание: Опции контекста низлежащего потока в сокете
Дополнительные опции контекста могут поддерживаться низлежащим транспортным протоколом. Для потоков ftp://, это относится к опциям контекста для транспортного протокола tcp://. Для потоков ftps://, это относится к опциям контекста для транспортного протокола ssl://.

Смотрите также

  • ftp://
  • Контекстные опции сокета
  • Опции контекста SSL


Список опций контекста SSL

  • « Параметры контекста FTP
  • Опции контекста CURL »
  • PHP Manual
  • Контекстные опции и параметры
  • Список опций контекста SSL

Опции контекста SSL

Опции контекста SSL — Список опций контекста SSL

Описание

Опции контекста для протоколов ssl:// и tls://

Опции

peer_name string

Имя узла. Если его значение не задано, тогда имя подставляется основываясь на имени хоста, использованного при открытии потока.

verify_peer boolean

Требовать проверки используемого SSL-сертификата.

По умолчанию TRUE.

verify_peer_name boolean

Требовать проверки имени узла.

По умолчанию TRUE.

allow_self_signed boolean

Разрешить самоподписанные сертификаты. Требует verify_peer.

По умолчанию FALSE

cafile string

Расположение файла сертификата в локальной файловой системе, который следует использовать с опцией контекста verify_peer для проверки подлинности удалённого узла.

capath string

Если параметр cafile не определён или сертификат не найден, осуществляется поиск в директории, указанной в capath. Путь capath должен быть к корректной директории, содержащей сертификаты, имена которых являются хешем от поля subject, указанного в сертификате.

local_cert string

Путь к локальному сертификату в файловой системе. Это должен быть файл, закодированный PEM, который содержит ваш сертификат и приватный ключ. Он дополнительно может содержать публичный ключ эмитента. Приватный ключ также может содержаться в отдельном файле, заданным local_pk.

local_pk string

Путь к локальному файлу с приватным ключем в случае отдельных файлов сертификата (local_cert) и прикатного ключа.

passphrase string

Идентификационная фраза, с которой ваш файл local_cert был закодирован.

CN_match string

Имя хоста (Common Name), которое мы ожидаем. PHP будет производить ограниченное сопоставление, учитывающее символы подстановки (*,?). Если имя хоста не совпадает со строкой, соединение будет сброшено.

Замечание: Эта опция устарела. Начиная с PHP 5.6.0 используйте peer_name.

verify_depth integer

Прервать, если цепочка сертификата слишком длинная.

По умолчанию проверка отсутствует.

ciphers string

Устанавливает список доступных алгоритмов шифрования. Формат этой строки описан в разделе » шифры(1).

По умолчанию принимает значение DEFAULT.

capture_peer_cert boolean

Если установлено в TRUE, то будет создана опция контекста peer_certificate, содержащая сертификат удаленного узла.

capture_peer_cert_chain boolean

Если установлено в TRUE, то будет создана опция контекста peer_certificate_chain, содержащая цепочку сертификатов.

SNI_enabled boolean

Если установлено в TRUE, то будет включено указание имени сервера. Включение SNI позволяет использовать разные сертификаты на одном и том же IP-адресе.

SNI_server_name string

Если эта опция установлена, то это значение будет использоваться для указания имени сервера. Если это значение не установлено, то имя сервера определяется из имени хоста, использовавшегося при открытии потока.

Замечание: Эта опция устарела. Начиная с PHP 5.6.0 используйте peer_name.

disable_compression boolean

Отключает сжатие TLS, что помогает предотвратить атаки типа CRIME.

peer_fingerprint string | array

Прерваться, если дайджест сообщения не совпадает с указанным хэшом.

Если указана строка (string), то её длина определяет какой алгоритм хэширования будет использован: "md5" (32) или "sha1" (40).

Если указан массив (array), то ключи определяют алгоритм хэширования, а каждое соответствующее значение является требуемым хэшом.

Список изменений

Версия | Описание
5.6.0 | Добавлены peer_fingerprint и verify_peer_name. Значение по умолчанию для verify_peer изменено на TRUE.
5.4.13 | Добавлен disable_compression. Требуется OpenSSL >= 1.0.0.
5.3.2 | Добавлены параметры SNI_enabled и SNI_server_name.

Примечания

Замечание: Так как ssl:// - это низлежащий транспортный протокол для оберток https:// и ftps://, то любые опции контекста, которые применяются к ssl:// будут также применяться к https:// и ftps://.

Замечание: Чтобы была доступна возможность указания имени сервера (SNI, Server Name Indication), PHP должен быть скомпилирован с OpenSSL 0.9.8j или более поздней. Используйте константу OPENSSL_TLSEXT_SERVER_NAME чтобы определить, поддерживается ли SNI.

Смотрите также

  • Контекстные опции сокета


Список опций контекста CURL

  • « Опции контекста SSL
  • Контекстные опции Phar »
  • PHP Manual
  • Контекстные опции и параметры
  • Список опций контекста CURL

Опции контекста CURL

Опции контекста CURL — Список опций контекста CURL

Описание

Опции контекста CURL доступны в том случае, если расширение CURL скомпилировано, используя конфигурационную опцию --with-curlwrappers .

Опции

method string

GET, POST, или любой другой HTTP-метод, поддерживаемый удаленным сервером.

По умолчанию - GET.

header string

Дополнительные заголовки для отправки вместе с запросом. Значения в этой опции будут переопределять другие значения (такие как User-agent:, Host:, и Authentication:).

user_agent string

Значение для отправки вместе с заголовком User-Agent.

По умолчанию используется значение директивы user_agent из файла php.ini.

content string

Дополнительные данные для отправки после заголовков. Эта опция не используется для запросов GET или HEAD.

proxy string

URI, указывающий адрес прокси-сервера. (Например, tcp://proxy.example.com:5100).

max_redirects integer

Максимальное количество переадресаций, которые можно сделать. Значение 1 или меньше означает, что никаких переадресаций не будет произведено.

По умолчанию 20.

curl_verify_ssl_host boolean

Проверить хост.

По умолчанию FALSE

Замечание:

Эта опция доступна для двух оберток протоколов: http и ftp.

curl_verify_ssl_peer boolean

Требовать проверку используемого SSL-сертификата.

По умолчанию FALSE

Замечание:

Эта опция доступна для двух оберток протоколов: http и ftp.

Примеры

Пример #1 Получает страницу и посылает POST-запрос

<?php

$postdata = http_build_query(
    array(
        'var1' => 'некоторое содержимое',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

?>

Смотрите также

  • Контекстные опции сокета


Список контекстных опций Phar

  • « Опции контекста CURL
  • Контекстные опции MongoDB »
  • PHP Manual
  • Контекстные опции и параметры
  • Список контекстных опций Phar

Контекстные опции Phar

Контекстные опции Phar — Список контекстных опций Phar

Описание

Контекстные опции для обёртки phar://.

Опции

compress int

Одна из констант Phar сжатия.

metadata mixed

Phar метаданные. См. Phar::setMetadata().

Смотрите также

  • phar://
  • потоки Phar


Список контекстных опций MongoDB

  • « Контекстные опции Phar
  • Параметры контекста »
  • PHP Manual
  • Контекстные опции и параметры
  • Список контекстных опций MongoDB

Контекстные опции MongoDB

Контекстные опции MongoDB — Список контекстных опций MongoDB

Описание

Контекстные опции для транспорта mongodb://.

Опции

log_cmd_insert callable

Функция-коллбек, вызываемая при вставке документа, смотри log_cmd_insert().

log_cmd_delete callable

Функция-коллбек, вызываемая при удалении документа, смотри log_cmd_delete().

log_cmd_update callable

Функция-коллбек, вызываемая при обновлении документа, смотри log_cmd_update().

log_write_batch callable

Функция-коллбек, вызываемая при вставке пакетной записи (Write Batch), смотри log_write_batch().

log_reply callable

Функция-коллбек, вызываемая при чтении реплики из MongoDB, смотри log_reply().

log_getmore callable

Функция-коллбек, вызываемая при чтении дополнительных результатов из курсора MongoDB, смотри log_getmore().

log_killcursor callable

Функция-коллбек, вызываемая опкодом "killcursor", смотри log_killcursor().

Список изменений

Версия | Описание
pecl/mongo 1.5.0 | Добавлены контекстные опции Write API

Смотрите также

  • Контекстные опции сокета
  • Опции контекста SSL


Список параметров контекста

  • « Контекстные опции MongoDB
  • Поддерживаемые протоколы и обработчики (wrappers) »
  • PHP Manual
  • Контекстные опции и параметры
  • Список параметров контекста

Параметры контекста

Параметры контекста — Список параметров контекста

Описание

Данные параметры (parameters) могут быть заданы для контекста (context) с помощью функции stream_context_set_params().

Список параметров

notification callable

Функция типа callable, вызываемая при наступлении события в потоке.

За подробностями обращайтесь к документации функции stream_notification_callback.


Поддерживаемые протоколы и обработчики (wrappers)

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:// — Потоки для взаимодействия с процессами


Доступ к локальной файловой системе

  • « Поддерживаемые протоколы и обработчики (wrappers)
  • http:// »
  • PHP Manual
  • Поддерживаемые протоколы и обработчики (wrappers)
  • Доступ к локальной файловой системе

file://

file:// — Доступ к локальной файловой системе

Описание

Файловая система - это стандартная обертка для PHP, представляющая файловую систему на локальном компьютере. Когда задан относительный путь (путь, который не начинается с символов "/", "\", "\\" или с буквы жесткого диска в Windows), он будет применен к текущей рабочей директории. В большинстве случаев это директория, в которой находится сценарий, если она не была изменена. При использовании CLI SAPI директорией по умолчанию будет та, из которой вызвано исполнение сценария.

With some functions, such as fopen() and file_get_contents(), include_path may be optionally searched for relative paths as well.

Использование

  • /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() | Да

Список изменений

Версия | Описание
5.0.0 | Добавлено file://.


Доступ к URL-адресам по протоколу HTTP(s)

  • « file://
  • ftp:// »
  • PHP Manual
  • Поддерживаемые протоколы и обработчики (wrappers)
  • Доступ к URL-адресам по протоколу HTTP(s)

http://

https://

http:// -- https:// — Доступ к URL-адресам по протоколу HTTP(s)

Описание

Предоставляет доступ только для чтения файлов/ресурсов через HTTP 1.0, используя метод HTTP GET. Для поддержки name-based виртуальных хостов вместе с запросом посылается заголовок 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() | Нет

Список изменений

Версия | Описание
4.3.7 | Определение сбойных IIS-серверов для избежания ошибок типа "SSL: Fatal Protocol Error".
4.3.0 | Добавлен протокол https://.
4.0.5 | Добавлена поддержка переадресаций.

Примеры

Пример #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
  • Поддерживаемые протоколы и обработчики (wrappers)
  • Доступ к URL-адресам по протоколу FTP(s)

ftp://

ftps://

ftp:// -- ftps:// — Доступ к URL-адресам по протоколу FTP(s)

Описание

Позволяет читать существующие файлы и создавать новые файлы через FTP. Если сервер FTP не поддерживает режим passive mode, соединение будет невозможно.

Вы можете открыть файл либо для чтения, либо для записи, но не одновременно для того и другого. Если файл на сервере 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

Опции

Основная информация
Атрибут | PHP 4 | PHP 5
Ограничение по allow_url_fopen | Да | Да
Чтение | Да | Да
Запись | Да (только новые файлы) | Да (новые файлы / существующие файлы с опцией overwrite)
Добавление | Нет | Да
Одновременное чтение и запись | Нет | Нет
Поддержка stat() | Нет | Начиная с PHP 5.0.0 доступны только: filesize(), filetype(), file_exists(), is_file(), и is_dir(). Начиная с PHP 5.1.0 доступны: filemtime().
Поддержка unlink() | Нет | Да
Поддержка rename() | Нет | Да
Поддержка mkdir() | Нет | Да
Поддержка rmdir() | Нет | Да

Список изменений

Версия | Описание
4.3.0 | Добавлена поддержка ftps://.

Примечания

Замечание:

FTPS поддерживается только когда включена поддержка расширения OpenSSL.

Если сервер не поддерживает SSL, то соединение переключается обратно на обычный нешифрованный протокол FTP.

Замечание: Дополнение
Начиная с PHP 5.0.0 файлы могут быть дописаны с помощью ftp:// URL-обертки. В предыдущих версиях попытка дописать файл через ftp:// приводила к ошибке.

Смотрите также

  • Параметры контекста FTP


Доступ к различным потокам ввода-вывода

  • « ftp://
  • zlib:// »
  • PHP Manual
  • Поддерживаемые протоколы и обработчики (wrappers)
  • Доступ к различным потокам ввода-вывода

php://

php:// — Доступ к различным потокам ввода-вывода

Описание

PHP предоставляет несколько разнообразных потоков ввода-вывода, которые позволяют получить доступ к собственным потокам ввода-вывода PHP,к дескрипторам стандартного ввода, вывода и потока ошибок, к временным файловым потокам в памяти и на диске, и фильтрам, которые могут манипулировать другими файловыми ресурсами по мере их считывания или записи.

php://stdin, php://stdout и php://stderr

php://stdin, php://stdout и php://stderr позволяют получить прямой доступ к соответствующим потокам ввода или вывода процесса PHP. Поток указывает на копию файлового дескриптора, таким образом, если вы откроете php://stdin и потом закроете его, вы закроете только вашу копию дескриптора. Актуальный поток, на который ссылается STDIN остается неизменным. Обратите внимание, что PHP демонстрировал ошибочное поведение в этом отношении до версии PHP 5.2.1. Рекомендуется просто использовать константы STDIN, STDOUT и STDERR вместо ручного открытия потоков, используя эти обертки.

Поток php://stdin предназначен только для чтения, тогда как php://stdout и php://stderr предназначены только для записи.

php://input

php://input является потоком только для чтения, который позволяет вам читать необработанные данные из тела запроса. В случае POST-запросов предпочтительней использовать php://input вместо $HTTP_RAW_POST_DATA, так как этот метод не зависит от специальных php.ini директив. Кроме того, в тех случаях, где $HTTP_RAW_POST_DATA не заполняется по умолчанию, это потенциально менее затратно для памяти, чем активация директивы always_populate_raw_post_data. php://input не доступен с типом содержимого enctype="multipart/form-data".

Замечание: До версии PHP 5.6, поток, открытый с php://input может быть прочтен только один раз. Поток не поддерживает операции поиска. Тем не менее, в зависимости от реализации SAPI интерфейса, может быть возможно открыть другой поток php://input и повторить чтение. Это возможно только если тело запроса заранее сохраняется. Это типично для случая с POST-запросом, но не для других методов запросов, таких как PUT или PROPFIND.

php://output

php://output является потоком только для записи, который позволяет вам записать данные в выходной буфер аналогично как это делают функции print и echo.

php://fd

php://fd предоставляет прямой доступ к указанному файловому дескриптору. Например, php://fd/3 относится к файловому дескриптору 3.

php://memory и php://temp

php://memory и php://temp являются потоками для чтения/записи и позволяют сохранять временные данные в файлоподобной обертке. Единственная разница между ними заключается в том, что php://memory будет всегда хранить данные в оперативной памяти, тогда как php://temp будет использовать временный файл в том случае, когда объем хранимой информации достигнет заданного лимита (по умолчанию 2 Мб). Расположение этого временного файла определяется аналогично функции sys_get_temp_dir().

Размер лимита для php://temp может устанавливаться путем добавления /maxmemory:NN, где NN - это максимальный размер данных в байтах для хранения в памяти перед использованием временного файла.

php://filter

php://filter - это вид мета-обертки, предназначенный для разрешения применения фильтров к потоку во время открытия. Это полезно для функционально полных файловых функций таких, как readfile(), file(), и file_get_contents() там, где иначе не было возможности применить фильтр к потоку до того, как содержимое будет прочитано.

Поток php://filter принимает следующие параметры как часть своего пути. В одном пути можно указать несколько цепочек фильтров. Пожалуйста, ознакомьтесь с примерами и особенностями при использовании этих параметров.

Параметры для php://filter
Название | Описание
resource=<поток для фильтрации> | Этот параметр является необходимым. Он указывает потоку, что его необходимо отфильтровать.
read=<список фильтров для применения к цепочке чтения> | Этот параметр является необязательным. Одно или более имен фильтров может быть указано здесь, разделенные вертикальной чертой (|).
write=<список фильтров для применения к цепочке записи> | Этот параметр является необязательным. Одно или более имен фильтров может быть указано здесь, разделенные вертикальной чертой (|).
<список фильтров для применения к обеим цепочкам чтения и записи> | Любой список фильтров, которые используются без префиксов read= или write=, будет применен к обоим потокам на чтение и на запись при необходимости.

Опции

Основная информация (для php://filter смотрите информацию по обертке, которая подвергается фильтрации)
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Ограничение по allow_url_include | только php://input, php://stdin, php://memory и php://temp.
Чтение | только php://stdin, php://input, php://fd, php://memory и php://temp.
Запись | только php://stdout, php://stderr, php://output, php://fd, php://memory и php://temp.
Добавление | только php://stdout, php://stderr, php://output, php://fd, php://memory и php://temp. (Эквивалентно записи)
Одновременное чтение и запись | только php://fd, php://memory и php://temp.
Поддержка stat() | только php://memory и php://temp.
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет
Поддержка stream_select() | только php://stdin, php://stdout, php://stderr, php://fd и php://temp.

Список изменений

Версия | Описание
5.6.0 | Стало возможным использовать повторно php://input.
5.3.6 | Был добавлен php://fd.
5.1.0 | Были добавлены php://memory и php://temp.
5.0.0 | Был добавлен php://filter.

Примеры

Пример #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
  • Поддерживаемые протоколы и обработчики (wrappers)
  • Сжатые потоки

zlib://

bzip2://

zip://

zlib:// -- bzip2:// -- zip:// — Сжатые потоки

Описание

zlib: PHP 4.0.4 - PHP 4.2.3 (только на системах с fopencookie)

compress.zlib:// и compress.bzip2:// PHP 4.3.0 и выше

zlib: работает как gzopen() за исключением того, что этот поток может использоваться функцией fread() и другими функциями, работающими с файловой системой. Устарела начиная с PHP 4.3.0 ввиду неоднозначности при наличии файлов, содержащих ':'; используйте взамен compress.zlib://.

compress.zlib:// и compress.bzip2:// соответствуют gzopen() и bzopen() соответственно и работают даже в системах, не поддерживающих fopencookie.

ZIP-модуль добавляет обертку zip:.

Использование

  • compress.zlib://file.gz
  • compress.bzip2://file.bz2
  • zip://archive.zip#dir/file.txt

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Чтение | Да
Запись | Да (кроме zip://)
Добавление | Да (кроме zip://)
Чтение и запись одновременно | Нет
Поддержка stat() | Нет, используйте стандартную обертку file:// для получения информации по сжатым файлам.
Поддержка unlink() | Нет, используйте стандартную обертку file:// для удаления сжатых файлов.
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет


Схема Data (RFC 2397)

  • « zlib://
  • glob:// »
  • PHP Manual
  • Поддерживаемые протоколы и обработчики (wrappers)
  • Схема Data (RFC 2397)

data://

data:// — Схема Data (RFC 2397)

Описание

data: (» RFC 2397) - это обертка потоков, доступная с PHP 5.2.0.

Использование

  • data://text/plain;base64,

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Ограничение по allow_url_include | Да
Чтение | Да
Запись | Нет
Добавление | Нет
Чтение и запись одновременно | Нет
Поддержка stat() | Нет
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет

Примеры

Пример #1 Вывод содержимого data://

<?php
// выводит "I love PHP"
echo file_get_contents('data://text/plain;base64,SSBsb3ZlIFBIUAo=');
?>

Пример #2 Получение типа потока

<?php
$fp   = fopen('data://text/plain;base64,', 'r');
$meta = stream_get_meta_data($fp);

// выводит "text/plain"
echo $meta['mediatype'];
?>


Нахождение путей, соответствующих шаблону

  • « data://
  • phar:// »
  • PHP Manual
  • Поддерживаемые протоколы и обработчики (wrappers)
  • Нахождение путей, соответствующих шаблону

glob://

glob:// — Нахождение путей, соответствующих шаблону

Описание

Обертка потока glob: доступна с версии PHP 5.3.0.

Использование

  • glob://

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Ограничение по allow_url_include | Нет
Чтение | Нет
Запись | Нет
Добавление | Нет
Одновременное чтение и запись | Нет
Поддержка stat() | Нет
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет

Примеры

Пример #1 Основы использования

<?php
// Просмотреть все файлы *.php в директории ext/spl/examples/
// и напечатать имена файлов и их размеры
$it = new DirectoryIterator("glob://ext/spl/examples/*.php");
foreach($it as $f) {
    printf("%s: %.1FK\n", $f->getFilename(), $f->getSize()/1024);
}
?>
tree.php: 1.0K
findregex.php: 0.6K
findfile.php: 0.7K
dba_dump.php: 0.9K
nocvsdir.php: 1.1K
phar_from_dir.php: 1.0K
ini_groups.php: 0.9K
directorytree.php: 0.9K
dba_array.php: 1.1K
class_tree.php: 1.8K


PHP архив

  • « glob://
  • ssh2:// »
  • PHP Manual
  • Поддерживаемые протоколы и обработчики (wrappers)
  • PHP архив

phar://

phar:// — PHP архив

Описание

Обертка потока phar:// доступна начиная с версии PHP 5.3.0. Смотрите раздел обертка потока Phar для более детального описания.

Использование

  • phar://

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Ограничение по allow_url_include | Нет
Чтение | Да
Запись | Да
Добавление | Нет
Одновременное чтение и запись | Да
Поддержка stat() | Да
Поддержка unlink() | Да
Поддержка rename() | Да
Поддержка mkdir() | Да
Поддержка rmdir() | Да

Смотрите также

  • Контекстные опции Phar


Secure Shell 2

  • « phar://
  • rar:// »
  • PHP Manual
  • Поддерживаемые протоколы и обработчики (wrappers)
  • Secure Shell 2

ssh2://

ssh2:// — Secure Shell 2

Описание

ssh2.shell:// ssh2.exec:// ssh2.tunnel:// ssh2.sftp:// ssh2.scp:// PHP 4.3.0 и более поздние (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
  • Поддерживаемые протоколы и обработчики (wrappers)
  • 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
  • Поддерживаемые протоколы и обработчики (wrappers)
  • Аудио потоки

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:// PHP 4.3.0 и старше (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
  • Поддерживаемые протоколы и обработчики (wrappers)
  • Потоки для взаимодействия с процессами

expect://

expect:// — Потоки для взаимодействия с процессами

Описание

Потоки, открытые с помощью обертки expect://, предоставляют доступ к stdio, stdout и stderr процессов через PTY.

Замечание: Эта обертка отключена по умолчанию
Для того, чтобы использовать обертку expect://, необходимо установить модуль » Expect, доступный в » PECL.

expect:// PHP 4.3.0 и выше (PECL)

Использование

  • expect://command

Опции

Основная информация
Атрибут | Поддержка
Ограничение по allow_url_fopen | Нет
Чтение | Да
Запись | Да
Добавление | Да
Чтение и запись одновременно | Нет
Поддержка stat() | Нет
Поддержка unlink() | Нет
Поддержка rename() | Нет
Поддержка mkdir() | Нет
Поддержка rmdir() | Нет

Примеры


Безопасность

  • Вступление
  • Общие рассуждения
  • Если PHP установлен как CGI
    • Возможные атаки
    • Вариант 1: обслуживаются только общедоступные файлы
    • Вариант 2: использование cgi.force_redirect
    • Вариант 3: использование опций doc_root или user_dir
    • Вариант 4: PHP вне дерева веб-документов
  • Если PHP установлен как модуль Apache
  • Безопасность сессий
  • Безопасность файловой системы
    • Проблемы безопасности, связанные с нулевым байтом
  • Безопасность баз данных
    • Проектирование базы данных
    • Соединение с базой данных
    • Шифрование хранилища базы данных
    • SQL-инъекции
  • Сообщения об ошибках
  • Использование глобальных переменных (Register_Globals)
  • Данные, введенные пользователем
  • Волшебные кавычки
    • Что такое волшебные кавычки?
    • Зачем мы использовали волшебные кавычки?
    • Почему не надо использовать волшебные кавычки
    • Отключение волшебных кавычек
  • Сокрытие PHP
  • Необходимость обновлений


Вступление

PHP является мощным языком программирования и интерпретатором, взаимодействующим с веб-сервером как модуль либо как независимое бинарное CGI приложение. PHP способен обращаться к файлам, выполнять различные команды на сервере и открывать сетевые соединения. Именно поэтому все скрипты, исполняемые на сервере являются потенциально опасными. PHP изначально разрабатывался как более защищенный (относительно Perl, C) язык для написания CGI-приложений. При помощи ряда настроек во время компиляции, а также динамических настроек приложения, вы всегда сможете найти подходящее сочетание свободы действий и безопасности.

Поскольку существует много различных способов использования PHP, имеется и множество опций, управляющих его поведением. Широкий выбор опций гарантирует вам возможность использовать PHP в разных целях, но также означает, что некоторые комбинации опций делают сервер незащищенным.

Гибкость конфигурирования PHP можно сравнить с гибкостью самого языка. PHP можно использовать для создания полноценных серверных приложений, использующих доступные для указанного пользователя возможности операционной системы, либо в качестве простых подключаемых файлов, хранящихся на сервере с минимальным риском в жестко контролируемой среде. То, как настроено данное окружение, а также качество его безопасности, в большей части зависит от PHP-разработчика.

Эта глава начинается с рассмотрения некоторых общих вопросов безопасности, различных конфигурационных опций и их комбинаций, а также ситуаций, когда их использование является безопасным. Кроме того, приводятся некоторые рассуждения касательно безопасного кодирования.


Общие рассуждения

Так как абсолютно безопасные системы являются не более, чем мифом, на практике приходится балансировать между комфортом и безопасностью. Если каждая переменная, вводимая пользователем, будет требовать две биометрические проверки (например, сканирование сетчатки глаза и отпечатки пальцев), то вы получите предельно высокую достоверность данных. Но поскольку заполнение сложной формы будет занимать около получаса, у пользователей такой системы непременно возникнет желание обойти навязчивую защиту.

Правильно поставленная защита должна соответствовать основным требованиям безопасности, не ухудшая при этом работу пользователя и не усложняя самому программисту разработку продукта. Вместе с тем, некоторые атаки могут основываться именно на таком подходе к защите, что приводит к ее постепенному ослаблению.

Следует помнить хорошую поговорку: надежность системы определяется ее самым слабым звеном. Например, если все транзакции логируются по времени, месторасположению, типу транзакции и ряду других параметров, но авторизация пользователя происходит всего лишь по куке (cookie), то связь конкретной записи в логе с пользователем системы весьма сомнительна.

При тестировании следует помнить, что вы не можете проверить все возможные варианты даже для простейшей страницы. Данные, которые вы ожидаете, могут совершенно не соответствовать тому, что введет раздраженный служащий, хакер со стажем или домашний кот, разгуливающий по клавиатуре. Поэтому лучше логически подумать над вопросом: в каком месте могут быть введены неожиданные данные, как их можно модифицировать, усечь, либо, наоборот, дополнить.

Интернет наполнен людьми, которые хотят сделать себе имя на том, что взломают ваш код, разрушат сайт, опубликуют на нем неуместный контент или просто сделают ваш день интереснее. И не важно, маленький у вас сайт или большой, если у вас есть онлайн-сервер - вы уже потенциальная жертва. Многие программы-взломщики не смотрят на размер, они просто перебирают массивы IP-адресов, выискивая очередную жертву. Постарайтесь не стать одной из них.


Если PHP установлен как CGI

Содержание

  • Возможные атаки
  • Вариант 1: обслуживаются только общедоступные файлы
  • Вариант 2: использование cgi.force_redirect
  • Вариант 3: использование опций doc_root или user_dir
  • Вариант 4: PHP вне дерева веб-документов


Возможные атаки

Использование PHP как бинарного CGI-приложения является одним из вариантов, когда по каким-либо причинам нежелательно интегрировать PHP в веб-сервер (например, Apache) в качестве модуля, либо предполагается использование различных CGI-оберток и таких утилит, как chroot и setuid для организации безопасного окружения работы скриптов. Такая установка обычно сопровождается копированием исполняемого файла PHP в директорию cgi-bin веб-сервера. CERT (организация, следящая за угрозами безопасности) » CA-96.11 рекомендует не помещать какие-либо интерпретаторы в каталог cgi-bin. Даже если PHP используется как самостоятельный интерпретатор, он спроектирован так, чтобы предотвратить возможность следующих атак:

  • Доступ к системным файлам: http://my.host/cgi-bin/php?/etc/passwd Данные, введенные в строке запроса (URL) после вопросительного знака, передаются интерпретатору как аргументы командной строки согласно CGI протоколу. Обычно интерпретаторы открывают и исполняют файл, указанный в качестве первого аргумента. В случае использования PHP посредством CGI-протокола он не станет интерпретировать аргументы командной строки.
  • Доступ к произвольному документу на сервере: http://my.host/cgi-bin/php/secret/doc.html Согласно общепринятому соглашению, часть пути в запрошенной странице, которая расположена после имени выполняемого модуля PHP, /secret/doc.html, используется для указания файла, который будет интерпретирован CGI-программой. Обычно, некоторые конфигурационные опции веб-сервера (например, Action для сервера Apache) используются для перенаправления документа, к примеру, для перенаправления запросов вида http://my.host/secret/script.php интерпретатору PHP. В таком случае веб-сервер вначале проверяет права доступа к директории /secret, и после этого создает перенаправленный запрос http://my.host/cgi-bin/php/secret/script.php. К сожалению, если запрос изначально задан в полном виде, проверка на наличие прав для файла /secret/script.php не выполняется, она происходит только для файла /cgi-bin/php. Таким образом, пользователь имеет возможность обратиться к /cgi-bin/php, и, как следствие, к любому защищенному документу на сервере. Если в PHP указать во время исполнения скрипта опции cgi.force_redirect, doc_root и user_dir, то можно предотвратить подобные атаки для директорий с ограниченным доступом. Более детально приведенные опции, а также их комбинации будут рассмотрены ниже.


Вариант 1: обслуживаются только общедоступные файлы

В случае, если на вашем сервере отсутствуют файлы, доступ к которым ограничен паролем либо фильтром по IP-адресам, нет никакой необходимости использовать данные опции. Если ваш веб-сервер не разрешает выполнять перенаправления, либо не имеет возможности взаимодействовать с исполняемым PHP-модулем на необходимом уровне безопасности, вы можете использовать опцию --enable-force-cgi-redirect во время сборки PHP. Но при этом вы все еще должны убедиться, что альтернативные способы вызова скрипта, такие как непосредственный вызов http://my.host/cgi-bin/php/dir/script.php либо с переадресацией http://my.host/dir/script.php, недоступны.

В веб-сервере Apache перенаправление может быть сконфигурировано при помощи директив AddHandler и Action (описано ниже).


Вариант 2: использование cgi.force_redirect

Конфигурационная директива cgi.force_redirect предотвращает попытки непосредственного вызова PHP по адресу вида http://my.host/cgi-bin/php/secretdir/script.php. Вместо этого, PHP будет обрабатывать пришедший запрос только в том случае, если он был перенаправлен веб-сервером. В версиях PHP до 4.2.0 для этой цели использовалась опция компиляции --enable-force-cgi-redirect.

Обычно перенаправление в веб-сервере Apache настраивается при помощи следующих опций:

Action php-script /cgi-bin/php
AddHandler php-script .php

Эта опция проверена только для веб-сервера Apache, ее работа основывается на установке в случае перенаправления нестандартной переменной REDIRECT_STATUS, находящейся в CGI-окружении. В случае, если ваш веб-сервер не предоставляет возможности однозначно идентифицировать, является ли данный запрос перенаправленным, вы не можете использовать описываемую в данном разделе опцию и должны воспользоваться любым другим методом работы с CGI-приложениями.


Вариант 3: использование опций doc_root или user_dir

Размещение динамического контента, такого как скрипты или любых других исполняемых файлов, в директории веб-сервера делает его потенциально опасным. В случае, если в конфигурации сервера допущена ошибка, возможна ситуация, когда скрипты не выполняются, а отображаются в браузере, как обычные HTML-документы, что может привести к утечке конфиденциальной информации (например, паролей), либо информации, являющейся интеллектуальной собственностью. Исходя из таких соображений, многие системные администраторы предпочитают использовать для хранения скриптов отдельную директорию, работая со всеми размещенными в ней файлами по CGI-интерфейсу.

В случае, если невозможно гарантировать, что запросы не перенаправляются, как было показано в предыдущем разделе, необходимо указывать переменную doc_root, которая отличается от корневой директории веб-документов.

Вы можете установить корневую директорию для PHP-скриптов, настроив параметр doc_root в конфигурационном файле, либо установив переменную окружения PHP_DOCUMENT_ROOT. В случае, если PHP используется посредством CGI, полный путь к открываемому файлу будет построен на основании значения переменной doc_root и указанного в запросе пути. Таким образом, вы можете быть уверены, что скрипты будут выполняться только внутри указанной вами директории (кроме директории user_dir, которая описана ниже).

Еще одна используемая при настройке безопасности опция - user_dir. В случае, если переменная user_dir не установлена, путь к открываемому файлу строится относительно doc_root. Запрос вида http://my.host/~user/doc.php приводит к выполнению скрипта, находящегося не в домашнем каталоге соответствующего пользователя, а находящегося в подкаталоге doc_root скрипта ~user/doc.php (да, имя директории начинается с символа ~).

Но если user_dir установлена, например, в значение public_php, то запрос вида http://my.host/~user/doc.php откроет файл doc.php, находящийся в домашнем каталоге пользователя, в директории public_php. Например, если домашний каталог пользователя /home/user, будет выполнен файл /home/user/public_php/doc.php.

Установка опции user_dir происходит независимо от установки doc_root, таким образом вы можете контролировать корневую директорию веб-сервера и пользовательские директории независимо друг от друга.


Вариант 4: PHP вне дерева веб-документов

Один из способов существенно повысить уровень безопасности - поместить исполняемый модуль PHP вне дерева веб-документов, например в /usr/local/bin. Единственным недостатком такого подхода является то, что первая строка каждого скрипта должна иметь вид:

#!/usr/local/bin/php
Также необходимо сделать все файлы скриптов исполняемыми. Таким образом, скрипт будет рассматриваться так же, как и любое другое CGI-приложение, написанное на Perl, sh или любом другом скриптовом языке, который использует дописывание #! в начало файла для запуска самого себя.

Для корректной обработки PHP переменных PATH_INFO и PATH_TRANSLATED, он должен быть сконфигурирован с опцией --enable-discard-path.


Если PHP установлен как модуль Apache

Если PHP используется как модуль Apache, он наследует права пользователя, с которыми был запущен веб-сервер (обычно это пользователь "nobody"). Это влияет на обеспечение безопасности и реализацию авторизации. Например, если вы используете PHP для доступа к базе данных, которая не имеет встроенного механизма разграничения доступа, вам придется обеспечить доступ к БД для пользователя 'nobody'. В таком случае вредоносный скрипт может получить доступ к базе данных и модифицировать ее, даже не зная логина и пароля. Вполне возможна ситуация, при которой веб-паук неверными запросами на страницу администратора базы данных может уничтожить все ваши базы данных. Вы можете избежать такой ситуации при помощи авторизации Apache или разработав собственную модель доступа, используя LDAP, файлы .htaccess или любые другие технологии, внедряя соответствующий код в ваши PHP-скрипты.

Достаточно часто используются такие настройки безопасности, при которых PHP (имеется ввиду пользователь, с правами которого выполняется Apache) имеет минимальные привилегии, например, отсутствует возможность записи в пользовательские директории с помощью PHP. Или, например, отсутствует возможность работать с базой данных. При этом система безопасности не позволяет записывать как "хорошие", так и "плохие" файлы, или провести "хорошие" или "плохие" транзакции.

Распространенной ошибкой является запуск Apache с правами суперпользователя или любое другое расширение полномочий веб-сервера.

Расширение привилегий веб-сервера до полномочий суперпользователя угрожает работоспособности всей системы, поэтому такие команды, как sudo, chroot и другие способы запуска с правами суперпользователя должны выполняться исключительно теми, кто профессионально разбирается в вопросах безопасности.

Существует несколько простых решений. Используя open_basedir, вы можете ограничить дерево доступных директорий для PHP. Вы так же можете определить область доступа Apache, ограничив все действия, совершаемые из веба не-пользовательскими или не-системными файлами.


Безопасность сессий

Крайне важно обеспечивать безопасность HTTP сессий. Подробное описание, какими средствами этого можно достичь, читайте в секции Безопасность сессий руководства Сессии.


Безопасность файловой системы

Содержание

  • Проблемы безопасности, связанные с нулевым байтом

PHP является одним из важных моментов в вопросе безопасности сервера, поскольку PHP-скрипты могут манипулировать файлами и каталогами на диске. В связи с этим существуют конфигурационные настройки, указывающие, какие файлы могут быть доступны и какие операции с ними можно выполнять. Необходимо проявлять осторожность, поскольку любой из файлов, с полными правами чтения ("world readable") может быть прочитан каждым, кто имеет доступ к файловой системе.

Поскольку в PHP изначально предполагался полноправный пользовательский доступ к файловой системе, можно написать PHP-скрипт, который позволит читать системные файлы, такие как /etc/passwd, управлять сетевыми соединениями, отправлять задания принтеру, и так далее. Как следствие, вы всегда должны быть уверены в том, что файлы, которые вы читаете или модифицируете, являются именно теми, которые вы подразумевали.

Рассмотрим следующий пример, в котором пользователь создал скрипт, удаляющий файл из его домашней директории. Предполагается ситуация, когда веб-интерфейс, написанный на PHP, регулярно используется для работы с файлами, и настройки безопасности позволяют удалять файлы в домашнем каталоге.

Пример #1 Недостаточная проверка внешних данных ведет к...

<?php
// Удаление файла из домашней директории пользователя
$username = $_POST['user_submitted_name'];
$userfile = $_POST['user_submitted_filename'];
$homedir  = "/home/$username";

unlink("$homedir/$userfile");

echo "Файл был удален!";
?>
Поскольку переменные вводятся в пользовательской форме, существует возможность удалить файлы, принадлежащие кому-либо другому, введя соответствующие значения. В этом случае может понадобиться авторизация. Посмотрим, что произойдет, если будут отправлены значения "../etc/" и "passwd". Скрипт выполнит следующие действия:

Пример #2 ... атаке на файловую систему

<?php
// Удаление любого файла, доступного из PHP-скрипта.
// В случае, если PHP работает с правами пользователя root:
$username = $_POST['user_submitted_name']; // "../etc"
$userfile = $_POST['user_submitted_filename']; // "passwd"
$homedir  = "/home/$username"; // "/home/../etc"

unlink("$homedir/$userfile"); // "/home/../etc/passwd"

echo "Файл был удален!";
?>
Cуществуют две важные меры, которые можно предпринять для предотвращения описанной проблемы.
  • Ограничить доступ пользователя, с правами которого работает веб-сервер с PHP.
  • Проверять все данные, вводимые пользователем.
Вот улучшеный вариант кода:

Пример #3 Более безопасная проверка имени файла

<?php
// Удаление любого файла, к которому имеет доступ пользователь,
// под которым запущен PHP.
$username = $_SERVER['REMOTE_USER']; // использование авторизации
$userfile = basename($_POST['user_submitted_filename']);
$homedir  = "/home/$username";

$filepath = "$homedir/$userfile";

if (file_exists($filepath) && unlink($filepath)) {
    $logstring = "$filepath удален\n";
} else {
    $logstring = "Не удалось удалить $filepath\n";
}
$fp = fopen("/home/logging/filedelete.log", "a");
fwrite($fp, $logstring);
fclose($fp);

echo htmlentities($logstring, ENT_QUOTES);

?>
Однако и такая проверка не учитывает все возможные ситуации. Если система авторизации позволяет пользователям выбирать произвольные логины, взломщик может создать учетную запись вида "../etc/" и система опять окажется уязвимой. Исходя из этого, вам может понадобиться более строгая проверка:

Пример #4 Более строгая проверка имени файла

<?php
$username     = $_SERVER['REMOTE_USER']; // использование авторизации
$userfile     = $_POST['user_submitted_filename'];
$homedir      = "/home/$username";

$filepath     = "$homedir/$userfile";

if (!ctype_alnum($username) || !preg_match('/^(?:[a-z0-9_-]|\.(?!\.))+$/iD', $userfile)) {
    die("Неправильное имя пользователя или файл");
}

//etc...
?>

В зависимости от используемой вами операционной системы необходимо предусматривать возможность атаки на разнообразные файлы, включая системные файлы устройств (/dev/ или COM1), конфигурационные файлы (например /etc/ или файлы с расширением .ini), хорошо известные области хранения данных (/home/, My Documents), и так далее. Исходя из этого, как правило, легче реализовать такую политику безопасности, в которой запрещено все, исключая то, что явно разрешено.


Проблемы безопасности, связанные с нулевым байтом

Так как для работы с файловой системой PHP использует нижележащие C-функции, то в этом случае возможна крайне неожиданная обработка нулевого байта. Так как нулевой байт означает конец строки в C, то строки, содержащие такой байт, не будут трактоваться полностью, а только до той позиции, в которой находится этот байт. Следующий пример содержит уязвимый код, демонстрирующий эту проблему:

Пример #1 Скрипт, уязвимый к нулевому байту

<?php
$file = $_GET['file']; // "../../etc/passwd\0"
if (file_exists('/home/wwwrun/'.$file.'.php')) {
    // file_exists возвратит true, т.к. /home/wwwrun/../../etc/passwd существует
    include '/home/wwwrun/'.$file.'.php';
    // будет подключен файл /etc/passwd
}
?>

Таким образом, любая испорченная строка, используемая в операциях с файловой системой должна быть соответствующим образом проверена. Вот улучшенная версия предыдущего примера:

Пример #2 Correctly validating the input

<?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 защищает данные, которыми обмениваются клиент и сервер, но не защищает сами данные, хранимые в базе данных. SSL - протокол шифрования на уровне сеанса передачи данных.

В случае, если взломщик получил непосредственный доступ к БД (в обход веб-сервера), он может извлечь интересующие данные или нарушить их целостность, если информация не защищена на уровне самой БД. Шифрование данных - хороший способ предотвратить такую ситуацию, но лишь незначительное количество БД предоставляют такую возможность.

Наиболее простое решение этой проблемы - установить вначале обыкновенный программный пакет для шифрования данных, а затем использовать его в ваших PHP-скриптах. PHP может вам помочь с этой задачей с помощью таких расширений как Mcrypt и Mhash, реализующих довольно большое число алгоритмов шифрования. При таком подходе скрипт вначале шифрует сохраняемые данные, а затем дешифрует их при запросе. Ниже приведены примеры того, как работает шифрование данных в PHP-скриптах.

Хэширование

В случае работы со скрытыми служебными данными, если не требуется их нешифрованное представление (т.е. его не нужно показывать), то, как следствие, можно использовать хэширование. Хорошо известный пример хэширования - хранение криптографического хэша от пароля в БД, вместо хранения оригинального значения.

В PHP 5.5 и выше, функция password позволяет удобно хэшировать конфиденциальные данные и работать с этими хэшами. В 5.3.7+ можно использовать библиотеку » password_compat.

password_hash() позволяет хэшировать заданную строку самым сильным из доступных алгоритмом и password_verify() проверяет, что заданный пароль бьется с сохраненным в БД хэшем.

Пример #1 Хэширование полей с паролями

<?php

// Сохраняем хэш пароля
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            pg_escape_string($username),
            password_hash($password, PASSWORD_DEFAULT));
$result = pg_query($connection, $query);

// проверка введенного пользователем пароля на корректность
$query = sprintf("SELECT pwd FROM users WHERE name='%s';",
            pg_escape_string($username));
$row = pg_fetch_assoc(pg_query($connection, $query));

if ($row && password_verify($password, $row['pwd'])) {
    echo 'Добро пожаловать, ' . htmlspecialchars($username) . '!';
} else {
    echo 'Ошибка авторизации, ' . htmlspecialchars($username) . '.';
}

?>

В более старых версиях PHP можно использовать функцию crypt().

Пример #2 Хеширование паролей используя crypt()

<?php

// сохранение хэшированного пароля
// $random_chars получены например использованием /dev/random
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            pg_escape_string($username),
            pg_escape_string(crypt($password, '$2a$07$' . $random_chars . '$')));
$result = pg_query($connection, $query);

// проверка введенного пользователем пароля на корректность
$query = sprintf("SELECT pwd FROM users WHERE name='%s';",
            pg_escape_string($username));
$row = pg_fetch_assoc(pg_query($connection, $query));

if ($row && crypt($password, $row['pwd']) == $row['pwd']) {
    echo 'Добро пожаловать, ' . htmlspecialchars($username) . '!';
} else {
    echo 'Авторизация не удалась, ' . htmlspecialchars($username) . '.';
}

?>


SQL-инъекции

Многие веб-разработчики даже не догадываются, что SQL-запросы могут быть подделаны, и считают, что SQL-запросы всегда достоверны. На самом деле поддельные запросы могут обойти ограничения доступа, стандартную проверку авторизации, а некоторые виды запросов могут дать возможность выполнять команды операционной системы.

Прямое внедрение вредоносных инструкций в SQL-запросы - это методика, в которой взломщик создает или изменяет текущие SQL-запросы для отображения скрытых данных, их изменения или даже выполнения опасных команд операционной системы на сервере базы данных. Атака выполняется на базе приложения, строящего SQL-запросы из пользовательского ввода и статических параметров. Следующие примеры, к сожалению, построены на реальных фактах.

Благодаря отсутствию проверки пользовательского ввода и соединению с базой данных под учетной записью суперпользователя (или любого другого пользователя, наделенного соответствующими привилегиями), взломщик может создать еще одного пользователя БД с правами суперпользователя.

Пример #1 Постраничный вывод результата... и создание суперпользователя в PostgreSQL

<?php

$offset = $argv[0]; // внимание, нет проверки вводимых данных!
$query  = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
$result = pg_query($conn, $query);

?>
Обычно пользователи кликают по ссылкам 'вперед' и 'назад', вследствие чего значение переменной $offset заносится в URL. Скрипт ожидает, что $offset - десятичное число. Однако, взломщик может попытаться взломать систему, присоединив к URL дополнительную строку, обработанную функцией urlencode():
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--
Если это произойдет, скрипт предоставит взломщику доступ к базе с правами суперпользователя. Заметим, что значение 0; использовано для того, чтобы задать правильное смещение для первого запроса и корректно его завершить.

Замечание:

Часто используемой техникой для игнорирования SQL-парсером оставшейся части запроса является использование --, означающей комментарий.

Еще один вероятный способ получить пароли учетных записей в БД - атака страниц, предоставляющих поиск по базе. Взломщику нужно лишь проверить, используется ли в запросе передаваемая на сервер и необрабатываемая надлежащим образом переменная. Это может быть один из устанавливаемых на предыдущей странице фильтров, таких как WHERE, ORDER BY, LIMIT и OFFSET, используемых при построении запросов SELECT. В случае, если используемая вами база данных поддерживает конструкцию UNION, взломщик может присоединить к оригинальному запросу еще один дополнительный, для извлечения пользовательских паролей. Настоятельно рекомендуем использовать только зашифрованные пароли.

Пример #2 Листинг статей... и некоторых паролей (для любой базы данных)

<?php

$query  = "SELECT id, name, inserted, size FROM products
           WHERE size = '$size'";
$result = odbc_exec($conn, $query);

?>
Статическая часть запроса может комбинироваться с другим SELECT-запросом, который выведет все пароли:
'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--
Если этот запрос (использующий ' и --) присоединить к значению одной из переменных, используемых для формирования $query, то запрос заметно преобразится.

Команды UPDATE также могут использоваться для атаки. Опять же, есть угроза разделения инструкции на несколько частей и присоединения дополнительного запроса. Также взломщик может видоизменить выражение SET. В этом случае потенциальному взломщику необходимо обладать некоторой дополнительной информацией о структуре базы данных для успешного манипулирования запросами. Эту информацию можно получить, проанализировав используемые в форме имена переменных, либо просто перебирая все наиболее распространенные варианты названия соответствующих полей (а их не так уж и много).

Пример #3 От восстановления пароля... до получения дополнительных привилегий (для любой базы данных)

<?php
$query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
?>
Но злоумышленник может ввести значение ' or uid like'%admin%' для переменной $uid для изменения пароля администратора или просто присвоить переменной $pwd значение hehehe', trusted=100, admin='yes для получения дополнительных привилегий. При выполнении запросы переплетаются:
<?php

// $uid: ' or uid like '%admin%
$query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%';";

// $pwd: hehehe', trusted=100, admin='yes
$query = "UPDATE usertable SET pwd='hehehe', trusted=100, admin='yes' WHERE
...;";

?>

Пугающий пример того, как на сервере баз данных могут выполняться команды операционной системы.

Пример #4 Выполнение команд операционной системы на сервере (для базы MSSQL)

<?php

$query  = "SELECT * FROM products WHERE id LIKE '%$prod%'";
$result = mssql_query($query);

?>
Если взломщик введет значение a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- для переменной $prod, тогда запрос $query будет выглядеть так:
<?php

$query  = "SELECT * FROM products
           WHERE id LIKE '%a%'
           exec master..xp_cmdshell 'net user test testpass /ADD' --%'";
$result = mssql_query($query);

?>
MSSQL сервер выполняет SQL-команды в пакетном режиме, в том числе и операции по заведению локальных учетных записей базы данных. В случае, если приложение работает с привилегиями администратора sa и сервис MSSQL запущен с необходимыми привилегиями, то выполнив приведенные выше действия, взломщик получит аккаунт для доступа к серверу.

Замечание:

Некоторые приведенные в этой главе примеры касаются конкретной базы данных. Это не означает, что аналогичные атаки на другие программные продукты невозможны. Работоспособность вашей базы данных может быть нарушена каким-либо другим способом.

Рабочий пример проблем, вызываемых SQL-инъекцией
Авторство изображения принадлежит » xkcd

Способы защиты

Хотя по-прежнему очевидно, что взломщик должен обладать по крайней мере некоторыми знаниями о структуре базы данных чтобы провести успешную атаку, получить эту информацию зачастую очень просто. Например, если база данных является частью open-source или другого публично доступного программного пакета с инсталляцией по умолчанию, эта информация является полностью открытой и доступной. Эти данные также могут быть получены из закрытого проекта, даже если он закодирован, усложнен, или скомпилирован, и даже из вашего личного кода через отображение сообщений об ошибках. К другим методам относится использование распространенных (легко угадываемых) названий таблиц и столбцов. Например, форма логина, которая использует таблицу 'users' c названиями столбцов 'id', 'username' и 'password'.

Большинство успешных атак основывается на коде, написанном без учета соответствующих требований безопасности. Не доверяйте никаким вводимым данным, особенно если они поступают со стороны клиента, даже если это списки в форме, скрытые поля или куки. Первый приведенный пример показывают, как подобные запросы могут привести к катастрофе.

  • Никогда не соединяйтесь с базой данных, используя учетную запись владельца базы данных или суперпользователя. Всегда старайтесь использовать специально созданных пользователей с максимально ограниченными правами.
  • используйте подготовленные выражения с привязанными переменными. Эта возможность предоставляется расширениями PDO, MySQLi и другими библиотеками.
  • Всегда проверяйте введенные данные на соответствие ожидаемому типу. В PHP есть множество функций для проверки данных: начиная от простейших функций для работы с переменными и функций определения типа символов (таких как is_numeric() и ctype_digit() соответственно) и заканчивая Perl-совместимыми регулярными выражениями.

  • В случае, если приложение ожидает цифровой ввод, примените функцию ctype_digit() для проверки введенных данных, или принудительно укажите их тип при помощи settype(), или просто используйте числовое представление при помощи функции sprintf().

    Пример #5 Более безопасная реализация постраничной навигации

    <?php

    settype    ($offset, 'integer');
    $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

    // обратите внимание на формат %d, использование %s было бы бессмысленно
    $query = sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                         $offset);

    ?>

  • Если на уровне базы данных не поддерживаются привязанные переменные, то всегда экранируйте любые нечисловые данные, используемый в запросах к БД при помощи специальных экранирующих функций, специфичных для используемой вами базы данных (например, mysql_real_escape_string(), sqlite_escape_string() и т.д.). Общие функции такие как addslashes() полезны только в определенных случаях (например MySQL в однобайтной кодировке с отключенным NO_BACKSLASH_ESCAPES), поэтому лучше избегать их использование.
  • Ни в коем случае не выводите никакой информации о БД, особенно о ее структуре. Также ознакомьтесь с соответствующими разделами документации: "Сообщения об ошибках" и "Функции обработки и логирования ошибок".
  • Вы можете использовать хранимые процедуры и заранее определенные курсоры для абстрагированной работы с данными, не предоставляя пользователям прямого доступа к данным и представлениям, но это решение имеет свои особенности.

Помимо всего вышесказанного, вы можете логировать запросы в вашем скрипте либо на уровне базы данных, если она это поддерживает. Очевидно, что логирование не может предотвратить нанесение ущерба, но может помочь при трассировке взломанного приложения. Лог-файл полезен не сам по себе, а информацией, которая в нем содержится. Причем, в большинстве случаев полезно логировать все возможные детали.


Сообщения об ошибках

С точки зрения безопасности вывод сообщений об ошибках несет в себе как плюсы, так и минусы.

Одна из стандартных методик, применяемых в атаках - ввод некорректных данных с последующим анализом содержания и характера сообщений об ошибках. Это дает взломщику возможность проверить скрипты и данные сервера на наличие потенциальных дыр. Например, если взломщик получил некоторую информацию о странице на основании отправки формы, он попробует предопределить некоторые передаваемые значения или модифицировать их:

Пример #1 Атака на переменные в HTML-странице

<form method="post" action="attacktarget?username=badfoo&amp;password=badfoo">
<input type="hidden" name="username" value="badfoo" />
<input type="hidden" name="password" value="badfoo" />
</form>

Возникаемые во время работы скриптов ошибки являются достаточно ценной информацией для разработчика, содержащей такие данные, как функция или файл, а также номер строки, в которой возникла ошибка. Вся эта информация может быть использована для взлома. Для PHP-разработчика достаточно привычно пользоваться такими функциями, как show_source(), highlight_string() или highlight_file() в целях отладки, но в живых сайтах это может открыть информацию о скрытых переменных, непроверенном синтаксисе и других потенциально опасных моментах. Особенно опасно наличие кода со встроенным механизмом отладки в публичных частях сайта. Взломщик может попытаться запустить отладочный механизм, подбирая основные признаки отладки:

Пример #2 Использование стандартных отладочных переменных

<form method="post" action="attacktarget?errors=Y&amp;showerrors=1&amp;debug=1">
<input type="hidden" name="errors" value="Y" />
<input type="hidden" name="showerrors" value="1" />
<input type="hidden" name="debug" value="1" />
</form>

Независимо от метода обработки ошибок возможность проверки системы на наличие ошибок снабжает взломщика дополнительной информацией.

Например, стандартный вывод об ошибке указывает операционную систему, в которой выполняются PHP скрипты. Если взломщик анализирует обычную страницу сайта с расширением .html и пытается узнать систему, с помощью которой работает сайт (для дальнейшего поиска уязвимых мест), то подавая на ввод неверные данные он может обнаружить, что система использует PHP.

Также уведомление об ошибке может дать информацию об используемой базе данных, или, к примеру, как построена логика работы скриптов. Это, в свою очередь, может позволить взломщику подключиться к открытому порту базы данных, либо найти определенные ошибки в коде. Пробуя поочередно различные неверные блоки данных, злоумышленник может определить порядок аутентификации в скрипте (например, по номерам строк с ошибками) или проверять на наличие дыр различные участки кода.

Вывод стандартных ошибок или ошибок, связанных с файловой системой, может указать, с какими привилегиями запущен веб-сервер, и как организованы каталоги сайта. Обработка подобных ошибок, написанная разработчиками приложения, может только усугубить проблему, если взломщиком будет найден способ обнаружить "скрытую" отладочную информацию.

Существует три основных способа решения этой проблемы. Первый заключается в том, чтобы структурировать все функции и попытаться компенсировать объем выдаваемых ошибок. Второй способ - полностью отключить в работающем коде вывод сообщений об ошибках. И, наконец, третий способ - использовать специальные средства PHP для создания собственного обработчика ошибок. В зависимости от используемой вами политики безопасности вы можете применить в вашей конкретной ситуации все три способа.

Один из возможных способов обезопасить ваш код перед его публикацией в общий доступ - это использование функции PHP error_reporting(), которая может помочь выявить потенциально опасные переменные. Тестируя код перед выпуском релиза при помощи значения E_ALL, вы достаточно легко можете обнаружить участки кода, в которых переменные могут быть подменены либо модифицированы. После окончания тестирования, вы можете либо полностью отключить все сообщения об ошибках установив error_reporting() в 0, либо отключить их вывод с помощью директивы php.ini display_errors, изолировав таким образом ваш код от прощупывания. Если вы решили использовать последний способ, то необходимо также указать путь к лог-файлу с помощью директивы error_log и включить директиву log_errors.

Пример #3 Поиск потенциально опасных переменных при помощи E_ALL

<?php
if ($username) {  // Переменная не инициализируется перед использованием
    $good_login = 1;
}
if ($good_login == 1) { // Если предыдущая проверка потерпела неудачу, переменная оказывается неинициализированной
    readfile ("/highly/sensitive/data/index.html");
}
?>


Использование глобальных переменных (Register_Globals)

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Наверное, наиболее спорным моментом в разработке PHP стала замена значения по умолчанию для PHP-директивы register_globals с ON на OFF в версии PHP » 4.2.0. Большинство пользователей полагались на работу этой опции, даже не зная, что это за опция и думали, что это просто способ работы самого PHP. Эта страница документации призвана показать, как эта настройка сочетается с вопросами безопасности при разработке приложений. Следует понимать, что сама по себе эта опция никак не влияет на безопасность, угрозу представляет некорректное использование предоставляемых ею возможностей.

В случае, если register_globals включена, то перед выполнением вашего кода будут инициализированы различные переменные, например, переменные, переданные при отправке HTML-формы. Также, учитывая тот факт, что PHP не требует инициализации переменных, написать потенциально опасный код очень легко. Это было очень сложным решением, но сообщество PHP решило изменить значение по умолчанию этой директивы на OFF. Если директива включена, то при написании кода разработчики не могли с уверенностью сказать, откуда пришла та или иная переменная и насколько она достоверна. До такого нововведения переменные, определяемые разработчиком внутри скрипта, и передаваемые пользователем внешние данные могли перемешиваться. Приведем простой пример злоупотребления конфигурационной опцией register_globals:

Пример #1 Пример опасного кода с register_globals = on

<?php
// устанавливаем переменную $authorized = true только для пользователей, прошедших авторизацию
if (authenticated_user()) {
    $authorized = true;
}

// Поскольку в случае неудачи при проверке авторизации переменная $authorized
// не установлена, она может быть установлена автоматически, благодаря register_globals,
// например, при GET запросе GET auth.php?authorized=1.
// Таким образом, любой может пройти эту проверку!
if ($authorized) {
    include "/highly/sensitive/data.php";
}
?>

В случае register_globals = on логика работы скрипта может быть нарушена. В случае, если установленное значение off, переменная $authorized не может быть установлена из внешних данных запроса, и скрипт будет работать корректно. Но все же инициализация переменных - один из признаков хорошего тона в программировании. Например, в приведенном выше участке кода мы могли поместить $authorized = false в качестве первой строки. Такой код работал бы как со значением on, так и off опции register_globals, и подразумевая, что по умолчанию пользователь не проходил авторизацию.

Приведем еще один пример, использующий сессии. В случае, если register_globals = on, мы можем использовать переменную $username в приведенном ниже примере, но тогда у нас не будет уверенности в достоверности ее значения (к примеру, $username могла быть передана в GET-запросе через URL).

Пример #2 Пример использования сессий со значением register_globals on или off

<?php
// Мы не знаем, откуда получена переменная $username, но точно знаем, что
// переменная $_SESSION хранит в себе данные сессии
if (isset($_SESSION['username'])) {

    echo "Hello <b>{$_SESSION['username']}</b>";

} else {

    echo "Hello <b>Guest</b><br />";
    echo "Would you like to login?";

}
?>

Также существует возможность реализации оперативного реагирования в случае попытки подмены переменных. Так как во время разработки приложения мы знаем ожидаемое значение переменной, а также знаем ее достоверное значение, мы можем их сопоставить. Это не защитит код от подмены переменных, но усложнит перебор возможных вариантов. Если вы не хотите знать, как именно были получены внешние данные, используйте переменную $_REQUEST, которая является смесью из данных GET и POST запросов, а также данных COOKIE. Также, информацию об этом можно найти в разделе внешние данные в PHP.

Пример #3 Обнаружение попытки подмены переменных

<?php
if (isset($_COOKIE['MAGIC_COOKIE'])) {

    // MAGIC_COOKIE получена из достоверного источника.
    // Для полной уверенности необходимо проверить ее значение.

} elseif (isset($_GET['MAGIC_COOKIE']) || isset($_POST['MAGIC_COOKIE'])) {

   mail("admin@example.com", "Обнаружена попытка взлома", $_SERVER['REMOTE_ADDR']);
   echo "Обнаружено нарушение безопасности, администратор уведомлен.";
   exit;

} else {

   // MAGIC_COOKIE в данных запроса не присутствует

}
?>

Следует понимать, что установка register_globals в off не сделает ваш код безопасным. Каждую полученную от пользователя переменную следует проверять на соответствие ожидаемому значению. Всегда проверяйте ввод пользователя и инициализируйте все используемые переменные! Для проверки на наличие неинициализированных переменных можно включить в опцию error_reporting() отображение ошибок категории E_NOTICE.

О том, как эмулировать включенное или отключенное состояние register_globals, смотрите этот FAQ.


Данные, введенные пользователем

Наиболее опасные уязвимости во многих PHP-скриптах возникают не столько из-за самого языка, сколько из-за кода, написанного без учета соответствующих требований безопасности. Как следствие, вы всегда должны выделять время на исследование разрабатываемого участка кода, чтобы оценить потенциальную угрозу от ввода переменной с нестандартным значением.

Пример #1 Потенциально опасное использование переменных

<?php
// удалить файлы из домашней директории пользователя...
// а может, из еще какой-нибудь?
unlink ($evil_var);

// записать в лог-файл выполняемое действие...
// а может быть в /etc/passwd?
fwrite ($fp, $evil_var);

// выполнение тривиальных действий... или rm -rf *?
system ($evil_var);
exec ($evil_var);

?>

Вы должны тщательно проверять ваш код и быть абсолютно уверены в том, что все данные, передаваемые веб-браузером, проверяются надлежащим образом. Попробуйте ответить для себя на следующие вопросы:

  • Будет ли данный скрипт воздействовать исключительно на предполагаемые данные?
  • Могут ли быть обработаны некорректные или нестандартные данные?
  • Возможно ли использование скрипта непредусмотренным способом?
  • Возможно ли его использование в сочетании с другими скриптами в негативных целях?
  • Будет ли каждая транзакция корректно логирована?

Ответив на эти вопросы во время написания скрипта, а не после, вы, возможно, предотвратите последующую доработку скрипта в целях повышения его безопасности. Начиная разработку с этих вопросов, вы не гарантируете полную безопасность вашей системы, но сможете значительно повысить её.

Вы также можете рассмотреть отключение таких конфигурационных опций, как register_globals, magic_quotes и некоторых других, которые могут приводить к сомнениям относительно происхождения или значения получаемых переменных. Использование при написании PHP-кода режима error_reporting(E_ALL) может помочь предупредить вас об использовании переменных до инициализации или проверки (что предотвратит работу с данными, отличными от ожидаемых).


Волшебные кавычки

Содержание

  • Что такое волшебные кавычки?
  • Зачем мы использовали волшебные кавычки?
  • Почему не надо использовать волшебные кавычки
  • Отключение волшебных кавычек
Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Волшебные кавычки (Magic Quotes) - это процесс автоматического экранирования входящих данных PHP-скрипта. Желательно отключать директиву magic quotes и вместо этого экранировать данные в процессе разработки, если это необходимо.


Что такое волшебные кавычки?

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Если эта опция включены, то все символы ' (одиночные кавычки), " (двойные кавычки), \ (обратный слеш) и NULL автоматически экранируются обратным слешем. Это идентично тому, что делает функция addslashes().

Существует три вида директив волшебных кавычек:

  • magic_quotes_gpc Воздействует на данные HTTP-запроса (GET, POST и COOKIE). Не может быть изменена во время выполнения и по умолчанию в PHP установлена в on. Смотрите также get_magic_quotes_gpc().
  • magic_quotes_runtime Если включена, то большинство функций, которые возвращают данные из внешнего источника, включая базы данных и текстовые файлы, будут экранировать кавычки с помощью обратного слеша. Может быть установлена во время выполнения и по умолчанию в PHP имеет значение off. Смотрите также set_magic_quotes_runtime() и get_magic_quotes_runtime().
  • magic_quotes_sybase Если включено, то одиночная кавычка экранируется одиночной кавычкой вместо обратного слеша. Если установлено значение on, то данная опция полностью перекрывает установку magic_quotes_gpc. В случае, если включены обе директивы, выполняется экранирование только одиночных кавычек с помощью ''. Двойные кавычки, обратные слеши, значение NULL останутся нетронутыми и неэкранированными. Смотрите также ini_get() для получения установленного значения.


Зачем мы использовали волшебные кавычки?

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

  • Нет смысла использовать волшебные кавычки, так как они больше не поддерживаются PHP. Однако, во время своего существования они помогали некоторым новичкам писать лучший (более безопасный) код даже не подозревая об этом. Но теперь, если вы работаете с кодом, который полагается на это поведение, лучшим выходом будет избавить код от этой зависимости вместо включения волшебных кавычек. Так зачем это вообще было добавлено? Ответ довольно прост - SQL-инъекции. Современные программисты лучше осведомлены в вопросах безопасности и вместо слепого включения волшебных кавычек используют специфичные механизмы экранирования для используемой ими базы данных и/или подготовленные запросы (prepared statements).


Почему не надо использовать волшебные кавычки

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

  • Переносимость Возможность присваивания значений on или off сказывается на переносимости. Используйте get_magic_quotes_gpc() для проверки и пишите код соответствующим образом.
  • Производительность Так как не все экранируемые данные заносятся в базу данных, то присутствует потеря производительности при экранировании всех данных. Простой вызов экранирующих функций (например, addslashes()) во время выполнения более эффективен. Хотя в php.ini-development эти директивы по умолчанию включены, в php.ini-production они отключены. Эта рекомендация соответствует, в основном, причинам производительности.
  • Неудобство Так как не все данные должны быть экранированы, то часто досадно видеть экранированные данные там, где этого не должно быть. Например, при отправке письма из формы можно наблюдать связку \' в самом письме. Для того, чтобы это исправить, требуется дополнительно использовать stripslashes().


Отключение волшебных кавычек

Директиву magic_quotes_gpc можно отключить только на системном уровне и нельзя во время выполнения. Другими словами, использование ini_set() не даст никакого эффекта.

Пример #1 Отключение волшебных кавычек на сервере

Ниже указан пример, где показана установка значения Off в php.ini для этих директив. Для дополнительной информации читайте раздел руководства под названием " Как изменять параметры конфигурации".

; Волшебные кавычки
;

; Волшебные кавычки для входных данных GET/POST/Cookie.
magic_quotes_gpc = Off

; Волшебные кавычки для данных, поступающих во время выполнения (например, данные из SQL, из exec() и т.д).
magic_quotes_runtime = Off

; Использование волшебных кавычек в стиле Sybase (экранирование ' с помощью '' вместо \').
magic_quotes_sybase = Off

Если доступ к конфигурации на сервере невозможен, используйте .htaccess в качестве альтернативы. Например:

php_flag magic_quotes_gpc Off

В целях написания переносимого кода (код, который будет работать на любой платформе), и в случае невозможности изменения конфигурации на сервере, показан пример отключения magic_quotes_gpc во время выполнения скрипта. Этот метод неэффективен, так как предпочтительно устанавливать соответствующие директивы в другом месте.

Пример #2 Отключение волшебных кавычек во время выполнения скрипта

<?php
if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}
?>


Сокрытие PHP

В общем случае внесение неясности ненамного улучшает защищенность системы. Но бывают случаи, когда следует использовать малейшую возможность.

Несколько несложных методик могут помочь вам скрыть PHP, что усложняет работу потенциального взломщика, который пытается найти брешь в вашей системе. Установив опцию expose_php в off в конфигурационном файле php.ini, вы уменьшите количество доступной хакеру информации.

Еще одна методика заключается в настройке веб-сервера таким образом, чтобы он обрабатывал файлы с различными расширениями как PHP-скрипты. Это можно указать как в .htaccess файлах, так и конфигурационном файле Apache. В таком случае вы сможете использовать при написании кода нестандартные расширения:

Пример #1 Маскировка PHP под другие языки программирования

# Теперь PHP-скрипты могут иметь те же расширения, что и другие языки программирования
AddType application/x-httpd-php .asp .py .pl
Или скрыть его совсем:

Пример #2 Использование неизвестных расширений для PHP-скриптов

# Теперь PHP-скрипты могут иметь неизвестные типы файлов
AddType application/x-httpd-php .bop .foo .133t
Также можно спрятать его под видом HTML-кода, что приведет к потере производительности, так как все HTML файлы будут обрабатываться как PHP-код:

Пример #3 Маскировка PHP-кода под HTML-файлы

# Теперь PHP-скрипты выглядят как обыкновенный HTML
AddType application/x-httpd-php .htm .html
Чтобы достичь желаемого эффекта, вы должны переименовать все ваши PHP-скрипты в соответствии с выбранным вами расширением. Описанное в этом разделе документации повышение безопасности через сокрытие является небольшой превентивной мерой при малых затратах.


Необходимость обновлений

PHP, как и любая другая большая система, все время тщательно проверяется и улучшается. Каждая новая версия содержит множество как существенных, так и мелких новшеств и доработок, которые, в том числе, касаются повышения безопасности, расширения конфигурационных возможностей, а также стабильности вашей системы.

Как и в других программах и языках программирования, рекомендуется регулярно обновлять PHP и быть в курсе изменений, сделанных в последних версиях.


Отличительные особенности

  • HTTP-аутентификация в PHP
  • Cookies
  • Сессии
  • Работа с XForms
  • Загрузка файлов на сервер
    • Загрузка файлов методом POST
    • Разъяснение сообщений об ошибках
    • Наиболее распространенные ошибки
    • Загрузка на сервер нескольких файлов
    • Поддержка метода PUT
    • Смотрите также
  • Работа с удаленными файлами
  • Работа с соединениями
  • Постоянные соединения с базами данных
  • Безопасный режим
    • Безопасность и безопасный режим
    • Ограниченные или недоступные в безопасном режиме функции
  • Использование PHP в командной строке
    • Введение
    • Основные отличия от остальных реализаций SAPI
    • Опции — Список опций командной строки
    • Использование — Выполнение PHP-файлов
    • Потоки ввода/вывода
    • Интерактивная консоль
    • Встроенный web-сервер
    • Опции конфигурации
  • Сборка мусора
    • Основы подсчета ссылок
    • Сбор циклических ссылок
    • Вопросы производительности
  • Динамическая трассировка DTrace
    • Введение в PHP и DTrace
    • Использование PHP и DTrace
    • Использование SystemTap со статическими зондами PHP DTrace


HTTP-аутентификация в PHP

Возможно использовать функцию header() для отправки сообщения "Authentication Required" браузеру, заставив его показать окошко для ввода логина и пароля. Как только пользователь заполнит логин и пароль, ссылка, содержащая PHP-скрипт будет вызвана еще раз с предопределенными переменными PHP_AUTH_USER, PHP_AUTH_PW, и AUTH_TYPE, установленными в логин, пароль и тип аутентификации соответственно. Эти предопределенные переменные хранятся в массиве $_SERVER. Поддерживаются оба типа:"Basic" и "Digest" (начиная с версии PHP 5.1.0). Подробнее смотрите функцию header().

Пример фрагмента скрипта, который вынуждает клиента авторизоваться для просмотра страницы:

Пример #1 Пример Basic HTTP-аутентификации

<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Текст, отправляемый в том случае,
    если пользователь нажал кнопку Cancel';
    exit;
} else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Вы ввели пароль {$_SERVER['PHP_AUTH_PW']}.</p>";
}
?>

Пример #2 Пример Digest HTTP-аутентификации

Это пример реализации простого скрипта Digest HTTP-аутентификации. За подробностями обращайтесь к » RFC 2617.

<?php
$realm = 'Запретная зона';

//user => password
$users = array('admin' => 'mypass', 'guest' => 'guest');

if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
    header('HTTP/1.1 401 Unauthorized');
    header('WWW-Authenticate: Digest realm="'.$realm.
           '",qop="auth",nonce="'.uniqid().'",opaque="'.md5($realm).'"');

    die('Текст, отправляемый в том случае, если пользователь нажал кнопку Cancel');
}

// анализируем переменную PHP_AUTH_DIGEST
if (!($data = http_digest_parse($_SERVER['PHP_AUTH_DIGEST'])) ||
    !isset($users[$data['username']]))
    die('Неправильные данные!');

// генерируем корректный ответ
$A1 = md5($data['username'] . ':' . $realm . ':' . $users[$data['username']]);
$A2 = md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']);
$valid_response = md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2);

if ($data['response'] != $valid_response)
    die('Неправильные данные!');

// ok, логин и пароль верны
echo 'Вы вошли как: ' . $data['username'];

// функция разбора заголовка http auth
function http_digest_parse($txt)
{
    // защита от отсутствующих данных
    $needed_parts = array('nonce'=>1, 'nc'=>1, 'cnonce'=>1, 'qop'=>1, 'username'=>1, 'uri'=>1, 'response'=>1);
    $data = array();
    $keys = implode('|', array_keys($needed_parts));

    preg_match_all('@(' . $keys . ')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@', $txt, $matches, PREG_SET_ORDER);

    foreach ($matches as $m) {
        $data[$m[1]] = $m[3] ? $m[3] : $m[4];
        unset($needed_parts[$m[1]]);
    }

    return $needed_parts ? false : $data;
}
?>

Замечание: Замечание касательно совместимости

Будьте особенно внимательны при указании HTTP-заголовков. Для того, чтобы гарантировать максимальную совместимость с наибольшим количеством различных клиентов, слово "Basic" должно быть написано с большой буквы "B", регион (realm) должен быть взят в двойные (не одинарные!) кавычки, и ровно один пробел должен предшествовать коду 401 в заголовке HTTP/1.0 401. Параметры аутентификации должны разделяться запятыми, как это было показано в примере Digest аутентификации выше.

Вместо простого отображения на экране переменных PHP_AUTH_USER и PHP_AUTH_PW, вам, возможно, понадобится проверить их корректность. Используйте для этого запрос к базе данных или поиск пользователя в dbm-файле.

Вы можете пронаблюдать особенности работы браузера Internet Explorer. Он очень требователен к параметру передаваемых заголовков. Трюк с указанием заголовка WWW-Authenticate перед отправкой статуса HTTP/1.0 401 пока что работает для него.

Для того, чтобы предотвратить написание кем-либо скрипта, раскрывающего пароль к странице, которая использует внешнюю аутентификацию, переменные PHP_AUTH не устанавливаются в случае, если данная страница использует внешнюю аутентификацию и установлен безопасный режим. Несмотря на это, переменная REMOTE_USER может использоваться для аутентификации пользователя, прошедшего внешнюю аутентификацию. Таким образом, вы всегда можете воспользоваться переменной $_SERVER['REMOTE_USER'].

Замечание: Замечание касательно конфигурации

PHP использует указание директивы AuthType для указания того, используется внешняя аутентификация или нет.

Следует заметить, что все вышесказанное не предотвращает похищения паролей к страницам, требующим авторизацию, кем-либо, кто контролирует страницы без авторизации, расположенные на том же сервере.

И Netscape Navigator и Internet Explorer очищают кэш аутентификации текущего окна для заданного региона (realm) при получении от сервера статуса 401. Это может использоваться для реализации принудительного выхода пользователя и повторного отображения диалогового окна для ввода имени пользователя и пароля. Некоторые разработчики используют это для ограничения авторизации по времени или для предоставления кнопки "Выход".

Пример #3 Пример HTTP-аутентификации с принудительным вводом новой пары логин/пароль

<?php
function authenticate() {
    header('WWW-Authenticate: Basic realm="Test Authentication System"');
    header('HTTP/1.0 401 Unauthorized');
    echo "Вы должны ввести корректный логин и пароль для получения доступа к ресурсу \n";
    exit;
}

if (!isset($_SERVER['PHP_AUTH_USER']) ||
    ($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
    authenticate();
} else {
    echo "<p>Добро пожаловать: " . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "<br />";
    echo "Предыдущий логин: " . htmlspecialchars($_REQUEST['OldAuth']);
    echo "<form action='' method='post'>\n";
    echo "<input type='hidden' name='SeenBefore' value='1' />\n";
    echo "<input type='hidden' name='OldAuth' value=\"" . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "\" />\n";
    echo "<input type='submit' value='Авторизоваться повторно' />\n";
    echo "</form></p>\n";
}
?>

Это поведение не регламентируется стандартами HTTP Basic-аутентификации, следовательно, вы не должны зависеть от этого. Тестирование браузера Lynx показало, что Lynx не очищает кэш авторизации при получении от сервера статуса 401, и, нажав последовательно "Back", а затем "Forward" возможно открыть такую страницу, при условии, что требуемые атрибуты авторизации не изменились. Однако, пользователь может нажать клавишу '_' для очистки кеша аутентификации.

Для того, чтобы добиться корректной работы HTTP-аутентификации в IIS сервере с CGI версией PHP, вы должны отредактировать конфигурационную настройку IIS под названием "Directory Security". Щелкните на надписи "Edit" и установите опцию "Anonymous Access", все остальные поля должны остаться неотмеченными.

Замечание: Замечание касательно IIS:
Для того, чтобы HTTP-аутентификация корректно работала в IIS, в конфигурации PHP опция cgi.rfc2616_headers должна быть установлена значением 0 (значение по умолчанию).

Замечание:

В случае, если используется безопасный режим, UID текущего скрипта будет добавлен в realm-часть заголовка WWW-Authenticate.


Cookies

PHP прозрачно поддерживает HTTP cookies. Cookies - это механизм хранения данных браузером удаленной машины для отслеживания или идентификации возвращающихся посетителей. Вы можете установить cookies при помощи функций setcookie() или setrawcookie(). Cookies являются частью HTTP-заголовка, поэтому setcookie() должна вызываться до любого вывода данных в броузер. Это то же самое ограничение, которое имеет функция header(). Вы можете использовать функции буферизации вывода, чтобы задержать вывод результатов работы скрипта до того момента, когда будет известно, понадобится ли установка cookies или других заголовков.

Любые cookies, отправленные серверу браузером клиента, будут автоматически включены в суперглобальный массив $_COOKIE, если директива variables_order содержит букву "C". Для назначения нескольких значений одной cookie, просто добавьте [] к её имени.

В зависимости от значения опции register_globals, cookies могут быть представлены обычными PHP-переменными. Однако рекомендуется не полагаться на эту возможность, так как она обычно отключена в целях безопасности.

Дополнительная информация, в том числе и особенности реализации браузеров, приведена в описании функций 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>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Приведенная выше форма отображает текстовое поле для ввода (названное q) и кнопку для отправки формы, при нажатии на которую все введенные данные будут отправлены скрипту, указанному в поле action.

Тут мы подошли к еще одному существенному различию с точки зрения вашего веб-приложения. Стандартная HTML-форма отправляет данные как application/x-www-form-urlencoded, а XForms для передачи данных использует разметку XML.

Если вы решили работать с XForms, скорее всего вы захотите получить отправленные пользователем данные в формате XML. В таком случае обратите внимание на переменную $HTTP_RAW_POST_DATA, в ней содержится XML-документ, сгенерированный браузером, который в дальнейшем можно обработать предпочитаемым вами движком XSLT или парсером документа.

Если разметка вас не интересует, и вы хотите, чтобы передаваемые данные были помещены в стандартный массив $_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>Search</h:title>
 <model>
  <submission action="http://example.com/search"
              method="urlencoded-post" id="s"/>
 </model>
</h:head>
<h:body>
 <h:p>
  <input ref="q"><label>Find</label></input>
  <submit submission="s"><label>Go</label></submit>
 </h:p>
</h:body>
</h:html>

Замечание: В дополнение к вышесказанному следует заметить, что большое количество браузеров не поддерживают XForms. Если приведенные примеры потерпели неудачу, проверьте версию используемого вами браузера.


Загрузка файлов на сервер

Содержание

  • Загрузка файлов методом 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="Send File" />
</form>

В приведенном выше примере __URL__ необходимо заменить ссылкой на PHP-скрипт.

Скрытое поле MAX_FILE_SIZE (значение необходимо указывать в байтах) должно предшествовать полю для выбора файла, и его значение является максимально допустимым размером принимаемого файла в PHP. Рекомендуется всегда использовать эту переменную, так как она предотвращает тревожное ожидание пользователей при передаче огромных файлов, только для того, чтобы узнать, что файл слишком большой и передача фактически не состоялась. Помните, обойти это ограничение на стороне браузера достаточно просто, следовательно, вы не должны полагаться на то, что все файлы большего размера будут блокированы при помощи этой возможности. Это по большей части удобная возможность для пользователей клиентской части вашего приложения. Тем не менее, настройки PHP (на сервере) касательно максимального размера обойти невозможно.

Замечание:

Также следует убедиться, что в атрибутах формы вы указали enctype="multipart/form-data", в противном случае загрузка файлов на сервер выполняться не будет.

Глобальный массив $_FILES содержит всю информацию о загруженных файлах. Его содержимое для нашего примера приводится ниже. Обратите внимание, что здесь предполагается использование имени userfile для поля выбора файла, как и в приведенном выше примере. На самом деле имя поля может быть любым.

$_FILES['userfile']['name']

Оригинальное имя файла на компьютере клиента.

$_FILES['userfile']['type']

Mime-тип файла, в случае, если браузер предоставил такую информацию. Пример: "image/gif". Этот mime-тип не проверяется в PHP, так что не полагайтесь на его значение без проверки.

$_FILES['userfile']['size']

Размер в байтах принятого файла.

$_FILES['userfile']['tmp_name']

Временное имя, с которым принятый файл был сохранен на сервере.

$_FILES['userfile']['error']

Код ошибки, которая может возникнуть при загрузке файла.

По умолчанию принятые файлы сохраняются на сервере в стандартной временной папке до тех пор, пока не будет задана другая директория при помощи директивы upload_tmp_dir конфигурационного файла php.ini. Директорию сервера по умолчанию можно сменить, установив переменную TMPDIR для окружения, в котором выполняется PHP. Установка этой переменной при помощи функции putenv() внутри PHP-скрипта работать не будет. Эта переменная окружения также может использоваться для того, чтобы удостовериться, что другие операции также работают с принятыми файлами.

Пример #2 Проверка загружаемых на сервер файлов

Для получения более детальной информации вы можете ознакомиться с описанием функций is_uploaded_file() и move_uploaded_file(). Следующий пример принимает и обрабатывает загруженный при помощи формы файл.

<?php
// В PHP 4.1.0 и более ранних версиях следует использовать $HTTP_POST_FILES
// вместо $_FILES.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Файл корректен и был успешно загружен.\n";
} else {
    echo "Возможная атака с помощью файловой загрузки!\n";
}

echo 'Некоторая отладочная информация:';
print_r($_FILES);

print "</pre>";

?>

PHP-скрипт, принимающий загруженный файл, должен реализовывать логику, необходимую для определения дальнейших действий над принятым файлом. Например, вы можете проверить переменную $_FILES['userfile']['size'], чтобы отсечь слишком большие или слишком маленькие файлы. Также вы можете использовать переменную $_FILES['userfile']['type'] для исключения файлов, которые не удовлетворяют критерию касательно типа файла, однако, принимайте во внимание, что это поле полностью контролируется клиентом, используйте его только в качестве первой из серии проверок. Также вы можете использовать $_FILES['userfile']['error'] и коды ошибок при реализации вашей логики. Независимо от того, какую модель поведения вы выбрали, вы должны удалить файл из временной папки или переместить его в другую директорию.

В случае, если при отправке формы файл выбран не был, PHP установит переменную $_FILES['userfile']['size'] значением 0, а переменную $_FILES['userfile']['tmp_name'] - пустой строкой. none.

По окончанию работы скрипта, в случае, если принятый файл не был переименован или перемещен, он будет автоматически удален из временной папки.

Пример #3 Загрузка массива файлов

PHP поддерживает возможность передачи массива из HTML в том числе и с файлами.

<form action="" method="post" enctype="multipart/form-data">
<p>Изображения:
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="file" name="pictures[]" />
<input type="submit" value="Отправить" />
</p>
</form>
<?php
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        // basename() может спасти от атак на файловую систему;
        // может понадобиться дополнительная проверка/очистка имени файла
        $name = basename($_FILES["pictures"]["name"][$key]);
        move_uploaded_file($tmp_name, "data/$name");
    }
}
?>

Полоса прогресса загрузки файлов может быть реализована с помощью "отслеживания прогресса загрузки файлов с помощью сессий".


Разъяснение сообщений об ошибках

PHP возвращает код ошибки наряду с другими атрибутами принятого файла. Он расположен в массиве, создаваемом PHP при загрузке файла, и может быть получен при обращении по ключу error. Говоря другими словами, код ошибки можно найти в переменной $_FILES['userfile']['error'].

UPLOAD_ERR_OK

Значение: 0; Ошибок не возникло, файл был успешно загружен на сервер.

UPLOAD_ERR_INI_SIZE

Значение: 1; Размер принятого файла превысил максимально допустимый размер, который задан директивой upload_max_filesize конфигурационного файла php.ini.

UPLOAD_ERR_FORM_SIZE

Значение: 2; Размер загружаемого файла превысил значение MAX_FILE_SIZE, указанное в HTML-форме.

UPLOAD_ERR_PARTIAL

Значение: 3; Загружаемый файл был получен только частично.

UPLOAD_ERR_NO_FILE

Значение: 4; Файл не был загружен.

UPLOAD_ERR_NO_TMP_DIR

Значение: 6; Отсутствует временная папка. Добавлено в PHP 5.0.3.

UPLOAD_ERR_CANT_WRITE

Значение: 7; Не удалось записать файл на диск. Добавлено в PHP 5.1.0.

UPLOAD_ERR_EXTENSION

Значение: 8; PHP-расширение остановило загрузку файла. PHP не предоставляет способа определить какое расширение остановило загрузку файла; в этом может помочь просмотр списка загруженных расширений из phpinfo(). Добавлено в PHP 5.2.0.


Наиболее распространенные ошибки

Опция MAX_FILE_SIZE не должна позволять передачу файлов, размер которых превышает лимит, установленный конфигурационной директивой upload_max_filesize в php.ini. Ограничение по умолчанию составляет 2 мегабайта.

В случае, если установлены ограничения памяти, вам может понадобиться увеличить значение опции memory_limit. Убедитесь в том, что значение memory_limit достаточно велико.

В случае, если опция max_execution_time установлена слишком маленьким значением, необходимое время работы скрипта может превышать это значение. Убедитесь в том, что значение max_execution_time достаточно велико.

Замечание: Директива max_execution_time касается исключительно времени, используемого непосредственно самим скриптом. Время, потраченное на внешние действия, такие как системные вызовы при помощи функции system() или sleep(), обращения к базе данных, а также время, потраченное на загрузку файла и другие действия, происходящие вне скрипта, не учитываются при определении максимально допустимого промежутка времени, отведенного для выполнения скрипта.

Внимание

Директива max_input_time указывает максимально допустимое время в секундах для получения входящих данных, в том числе и загружаемых файлов. В случае, если вы имеете дело с несколькими или большими файлами, либо удаленные пользователи используют медленный канал, ограничение по умолчанию в 60 секунд может быть превышено.

Если директива post_max_size слишком мала, большие файлы не смогут быть загружены на сервер. Убедитесь, что значение директивы post_max_size достаточно велико.

Начиная с версии PHP 5.2.12, опция max_file_uploads контролирует максимальное количество загружаемых файлов в течение одного запроса. Если загружается большее количество файлов, чем указано в этом ограничении, то массив $_FILES прекратит дальнейшую обработку файлов по достижении этого ограничения. Например, если max_file_uploads установлено в 10, то $_FILES никогда не будет содержать больше 10 элементов.

Если не проверять, с какими файлами вы работаете, пользователи могут получить доступ к конфиденциальной информации, расположенной в других директориях.

Следует заметить, что CERN httpd может отсечь всё, что идет после первого пробела в получаемом от клиента заголовке content-type. Если у вас именно такой случай, CERN httpd не сможет корректно загрузить файлы.

Поскольку разные системы по-разному работают с файловой структурой, нет никаких гарантий того, что файлы с экзотическими именами (например, которые содержат пробельные символы) будут обработаны корректно.

Разработчики не должны использовать одинаковые имена для обычных полей ввода (тег input) и полей выбора файла в пределах одной и той же формы (например, используя имя для тега input наподобие foo[]).


Загрузка на сервер нескольких файлов

Загрузку нескольких файлов можно реализовать используя, например, различные значения name для тега input.

Также можно одновременно загружать несколько файлов и автоматически получить их в виде массива. Для реализации такой возможности используйте тот же синтаксис отправки массива из HTML-формы, что и для множественных полей select и checkbox:

Пример #1 Загрузка нескольких файлов

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Файлы:<br />
  <input name="userfile[]" type="file" /><br />
  <input name="userfile[]" type="file" /><br />
  <input type="submit" value="Отправить" />
</form>

В случае, если такая форма была отправлена, массивы $_FILES['userfile'], $_FILES['userfile']['name'], и $_FILES['userfile']['size'] будут инициализированы (точно так же, как и $HTTP_POST_FILES для PHP 4.1.0 и более ранних версий). Если включена конфигурационная директива register_globals, также будут инициализированы сопутствующие глобальные переменные. Каждая из таких переменных будет представлять собой численно индексированный массив соответствующих значений для принятых файлов.

Например, предположим, что были загружены файлы /home/test/review.html и /home/test/xwp.out. В таком случае переменная $_FILES['userfile']['name'][0] будет установлена значением review.html, а переменная $_FILES['userfile']['name'][1] - значением xwp.out. Аналогично, переменная $_FILES['userfile']['size'][0] будет содержать размер файла review.html и так далее.

Переменные $_FILES['userfile']['name'][0], $_FILES['userfile']['tmp_name'][0], $_FILES['userfile']['size'][0] и $_FILES['userfile']['type'][0] также будут инициализированы.

Внимание

Начиная с версии PHP 5.2.12, конфигурационная директива max_file_uploads регулирует лимит одновременно загружаемых файлов в течение одного запроса. Вам необходимо будет убедиться, что ваша форма не пытается загрузить файлов больше этого лимита за один запрос.


Поддержка метода PUT

PHP поддерживает загрузку файлов методом HTTP PUT, который используется в некоторых клиентах для загрузки файлов на сервер. Запросы PUT намного проще, чем обыкновенная POST загрузка файла на сервер и выглядят примерно так:

PUT /path/filename.html HTTP/1.1

Такой вызов означает, что удаленный клиент хотел бы сохранить файл под именем /path/filename.html в дереве каталогов вашего веб-сервера. Очевидно, что возможность клиента автоматически перезаписывать файлы веб-сервера при помощи Apache или PHP не является хорошим решением. Поэтому для того, чтобы обрабатывать такие запросы, вам необходимо указать веб-серверу PHP-скрипт, которому вы доверяете их обработку. В веб-сервере Apache вы можете сделать это, используя директиву Script. Как правило, эта директива расположена внутри блока <Directory> или же внутри блока <VirtualHost>. Сама запись выглядит следующим образом:

Script PUT /put.php

Это указывает веб-серверу Apache на необходимость перенаправлять все PUT-запросы, контекст которых совпадает с контекстом, в которым вы разместили эту строку, в файл put.php. Предполагается, что файлы с расширением .php обрабатываются, как PHP-скрипты, и что сам PHP установлен и работает. Ресурсом назначения для всех PUT-запросов на этот скрипт должен быть сам скрипт, а не имя файла, которое должен иметь загружаемый файл.

Внутри вашего файла put.php file вы можете поместить что-нибудь похожее на следующий пример. Он скопирует содержимое загруженного файла в файл myputfile.ext на сервер. Возможно, вам понадобится осуществить несколько проверок и/или авторизовать пользователя перед выполнением копирования этого файла.

Пример #1 Saving HTTP PUT files

<?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, вы можете использовать HTTP и FTP ссылки в большинстве функций, принимающих в качестве параметра имя файла. Также вы можете использовать ссылки в операторах include, include_once, require и require_once (начиная с версии PHP 5.2.0 для корректной работы этих функций должна быть включена опция allow_url_include ). Дополнительную информацию о поддерживаемых в PHP протоколах вы можете найти в Поддерживаемые протоколы и обработчики (wrappers).

Например, вы можете использовать это для того, чтобы открыть файл на удаленном сервере, извлечь необходимые вам данные и использовать их в запросе к базе данных или же просто отобразить их в дизайне вашего сайта.

Пример #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 в качестве плагина в многопоточном веб-сервере. В настоящее время в PHP4 реализована поддержка ISAPI, WSAPI, и NSAPI (для Windows-платформ), которые позволяют подключать PHP к таким многопоточным серверам, как Netscape FastTrack (iPlanet), Microsoft's Internet Information Server (IIS) и O'Reilly WebSite Pro. В этом случае поведение PHP полностью аналогично рассмотренной ранее модели с использованием нескольких процессов.

Если постоянные соединения не предоставляют никакой дополнительной функциональности, чем же они тогда так хороши?

Ответ содержится в повышении эффективности. Постоянные соединения полезны в том случае, если при открытии большого количества SQL-соединений возникает ощутимая нагрузка на сервер. То, насколько велика эта нагрузка, зависит от многих факторов. Например, от того, какая именно база данных используется, находится ли она на том же компьютере что и ваш веб-сервер, насколько загружена машина, на которой установлен SQL-сервер, и так далее. В случае, если затраты на установку соединения велики, постоянные соединения могут вам существенно помочь. Они позволяют дочернему процессу на протяжении всего жизненного цикла использовать одно и то же соединение вместо того, чтобы создавать его при обработке каждой страницы, которая взаимодействует с SQL-сервером. Это означает, что каждый дочерний процесс, открывший постоянное соединение, будет иметь свое собственное соединение с сервером. Например, если у вас запущено 20 дочерних процессов, которые выполнили скрипт, использовавший постоянное соединение с SQL-сервером, вы получите 20 различных соединений с SQL-сервером, по одному на каждый дочерний процесс.

Следует заметить, что этот подход имеет некоторые недостатки: если вы используете базу данных с ограниченным количеством возможных подключений, оно может быть превышено количеством запрашиваемых дочерними процессами постоянных соединений. Например, если ваша база данных позволяет 16 одновременных соединений, и во время нагрузки на сервер 17 дочерних процессов попробуют открыть соединение, одна из попыток потерпит неудачу. Если в вашем коде содержатся ошибки, не позволяющие закрывать соединение (например, бесконечные циклы), база данных с 32 одновременными подключениями вскоре может оказаться заблокированной. Информацию о том, как обрабатывать открытые и неиспользуемые соединения, вы можете найти в документации к вашей базе данных.

Внимание

Есть еще два дополнительных предостережения, которые следует помнить при работе с постоянными соединениями. В случае, если скрипт блокирует таблицу и по каким-либо причинам не может ее освободить, при использовании постоянного соединения все последующие скрипты, которые используют это соединение будут блокированы бесконечно долго и могут потребовать рестарта веб-сервера или сервера баз данных. Второе предостережение заключается в том, что открытые транзакции, если они не были закрыты до завершения работы скрипта, будут продолжены в следующем скрипте, использующем это же постоянное соединение. Исходя из этого, вы можете использовать функцию register_shutdown_function() для указания простой функции, которая снимает блокировку таблиц или отката ваших транзакций. Еще лучше избежать этих проблем полностью, не используя постоянные соединения в скриптах, которые используют блокировку таблиц или транзакции (при этом вы все еще можете использовать их где-то в другом месте).

Важное резюме. Постоянные соединения были созданы для точного отображения обыкновенных соединений. Это означает, что у вас всегда есть возможность заменить все постоянные соединения непостоянными, и это никак не отразится на поведении скрипта. Такая замена может повлиять (и, наверное, таки повлияет) на эффективность работы скрипта, но никак не на его поведение.

Смотрите также fbsql_pconnect(),
ibase_pconnect(), ifx_pconnect(),
ingres_pconnect(),
msql_pconnect(), mssql_pconnect(),
mysql_pconnect(), ociplogon(),
odbc_pconnect(), oci_pconnect(),
pfsockopen(), pg_pconnect() и
sybase_pconnect().


Безопасный режим

Содержание

  • Безопасность и безопасный режим
  • Ограниченные или недоступные в безопасном режиме функции

Безопасный режим в PHP - это попытка решить проблему безопасности на совместно используемых серверах. Несмотря на то, что концептуально неверно решать эту проблему на уровне PHP, но поскольку альтернативы уровня веб-сервера или операционной системы на сегодняшний день отсутствуют, многие пользователи, особенно провайдеры, используют именно защищенный режим.

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

История изменений режима safe mode
Версия | Описание
5.4.0 | Удален из PHP, генерирует фатальную ошибку E_CORE_ERROR при попытке включения.
5.3.0 | Помечен устаревшим, при включении генерируется ошибка уровня E_DEPRECATED.


Безопасность и безопасный режим

Конфигурационные опции, управляющие безопасным режимом и вопросами безопасности
Имя | По умолчанию | Меняемо | Список изменений
safe_mode | "0" | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
safe_mode_gid | "0" | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
safe_mode_include_dir | NULL | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
safe_mode_exec_dir | "" | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM | Удалена в PHP 5.4.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

safe_mode boolean

Включает/отключает безопасный режим в PHP. Если PHP скомпилирован с опцией --enable-safe-mode, то по умолчанию принимает значение On (включено), иначе - Off (выключено).

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

safe_mode_gid boolean

По умолчанию в безопасном режиме при открытии файла выполняется проверка значения UID. Для того, чтобы немного смягчить это условие и выполнять проверку GID, необходимо установить значение on для флага safe_mode_gid. Определяет, использовать ли проверку UID (FALSE) или GID (TRUE) проверку при обращении к файлу.

safe_mode_include_dir string

При подключении файлов, расположенных в указанной директории и всех ее подкаталогах, проверка на соответствие значений UID/GID не выполняется (в случае, если установленная директория не указана в include_path, необходимо указывать полный путь при включении).

Значением этой директивы может быть список каталогов, разделенных двоеточием (точкой с запятой на Windows-системах), что аналогично синтаксису include_path. Указанное значение в действительности является префиксом, а не названием директории. Это означает, что запись "safe_mode_include_dir = /dir/incl" позволяет подключать файлы, находящиеся в директориях "/dir/include" и "/dir/incls", в случае, если они существуют. Если вы хотите указать доступ к конкретной директории, используйте завершающий слеш, например: "safe_mode_include_dir = /dir/incl/" Если значение этой директивы пусто, то никакие файлы с отличающимися UID/GID не могут быть подключены.
safe_mode_exec_dir string

В случае, когда PHP работает в безопасном режиме, system() и другие функции запуска программ отклоняют выполнение программ, находящихся вне данной директории. Вам также придется использовать / в качестве разделителя пути на всех окружениях, включая Windows.

safe_mode_allowed_env_vars string

Возможность устанавливать переменные окружения - потенциальная брешь в безопасности. Значением этой директивы является список префиксов, разделенных двоеточиями. В безопасном режиме пользователь может модифицировать только те переменные окружения, имена которых начинаются с одного из указанных префиксов. По умолчанию, пользователю доступны переменные, которые начинаются с префикса PHP_ (например, PHP_FOO=BAR).

Замечание:

В случае, если этой директиве указать пустое значение, пользователь получит возможность модифицировать ЛЮБУЮ переменную окружения!

safe_mode_protected_env_vars string

Эта директива содержит список переменных окружения, разделенных двоеточием, значение которых пользователь не сможет изменить, используя функцию putenv(). Значения этих переменных остаются защищенными, даже если их модификация разрешена директивой safe_mode_allowed_env_vars.

Смотрите также: open_basedir, disable_functions, disable_classes, register_globals, display_errors и log_errors

В случае, если включена директива safe_mode, PHP проверит, совпадает ли владелец скрипта и владелец файла или директории, которыми оперирует скрипт. Например:

-rw-rw-r--    1 rasmus   rasmus       33 Jul  1 19:20 script.php
-rw-r--r--    1 root     root       1116 May 26 18:01 /etc/passwd
Выполнение скрипта script.php
<?php
 readfile('/etc/passwd');
?>
в случае использования безопасного режима приводит к следующей ошибке:
Warning: SAFE MODE Restriction in effect. The script whose uid is 500 is not
allowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2

Тем не менее, предусмотрена возможность вместо проверки на соответствие UID использовать более мягкую проверку на соответствие GID. Для этого необходимо использовать директиву safe_mode_gid. В случае, если она установлена значением On, используется более мягкая проверка GID. В противном случае, если установлено значение Off (значение по умолчанию), выполняется более строгая проверка на соответствие UID.

В качестве альтернативы директиве safe_mode вы можете ограничить все выполняемые скрипты жестко заданным деревом директорий при помощи опции open_basedir. Например (фрагмент конфигурационного файла httpd.conf):

<Directory /docroot>
  php_admin_value open_basedir /docroot
</Directory>
При попытке выполнить тот же самый скрипт script.php с указанной опцией open_basedir вы получите следующий результат:
Warning: open_basedir restriction in effect. File is in wrong directory in
/docroot/script.php on line 2

Вы также можете запретить отдельные функции. Следует заметить, что директива disable_functions может быть указана исключительно в конфигурационном файле php.ini, это означает, что вы не можете, отредактировав httpd.conf, установить индивидуальные значения для конкретного виртуального хоста или каталога. Если добавить в php.ini следующую строку:

disable_functions = readfile,system
Результатом работы скрипта будет следующий вывод:
Warning: readfile() has been disabled for security reasons in
/docroot/script.php on line 2

Внимание

Разумеется, эти ограничения PHP не работают в запускаемых программах.


Ограниченные или недоступные в безопасном режиме функции

Ниже приведен, вероятно, неполный и, возможно, не вполне корректный список функций, ограниченных в безопасном режиме.

Функции, ограниченные в безопасном режиме
Функция | Ограничения
dbmopen() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
dbase_open() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
filepro() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
filepro_rowcount() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
filepro_retrieve() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
ifx_* | sql_safe_mode ограничения (не путать с safe_mode)
ingres_* | sql_safe_mode ограничения (не путать с safe_mode)
mysql_* | sql_safe_mode ограничения (не путать с safe_mode)
pg_lo_import() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
posix_mkfifo() | Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
putenv() | Подчиняется настройкам the safe_mode_protected_env_vars и safe_mode_allowed_env_vars. Ознакомьтесь с более подробным описанием функции putenv().
move_uploaded_file() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
chdir() | Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
dl() | Эта функция недоступна в безопасном режиме.
backtick operator | Эта функция недоступна в безопасном режиме.
shell_exec() (функция эквивалентна backticks) | Эта функция недоступна в безопасном режиме.
exec() | Вы можете запускать исполняемые файлы, ограниченные деревом каталогов, указанным в safe_mode_exec_dir. Исходя из практических соображений, использовать .. при указании пути запрещено. Следует заметить, что к аргументу этой функции применяется escapeshellcmd().
system() | Вы можете запускать исполняемые файлы, ограниченные деревом каталогов, указанным в safe_mode_exec_dir. Исходя из практических соображений, использовать .. при указании пути запрещено. Следует заметить, что к аргументу этой функции применяется escapeshellcmd()
passthru() | Вы можете запускать исполняемые файлы, ограниченные деревом каталогов, указанным в safe_mode_exec_dir. Исходя из практических соображений, использовать .. при указании пути запрещено. Следует заметить, что к аргументу этой функции применяется escapeshellcmd().
popen() | Вы можете запускать исполняемые файлы, ограниченные деревом каталогов, указанным в safe_mode_exec_dir. Исходя из практических соображений, использовать .. при указании пути запрещено. Следует заметить, что к аргументу этой функции применяется escapeshellcmd().
fopen() | Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
mkdir() | Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
rmdir() | Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
rename() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
unlink() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
copy() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. (для параметров source и target)
chgrp() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
chown() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
chmod() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Кроме того, вы не можете устанавливать UID, SGID и sticky-биты.
touch() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
symlink() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. (Замечание: проверка выполняется только для параметра target)
link() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. (Замечание: проверка выполняется только для параметра target)
apache_request_headers() | В безопасном режиме, заголовки, начинающиеся с authorization (независимо от регистра), не возвращаются.
header() | В безопасном режиме, текущий UID скрипта будет добавлен к realm-части заголовка WWW-Authenticate, если вы его устанавливаете (используется для HTTP-аутентификации).
переменные PHP_AUTH | В безопасном режиме, переменные PHP_AUTH_USER, PHP_AUTH_PW и AUTH_TYPE недоступны как элементы массива $_SERVER. Несмотря на это, вы все еще можете использовать переменную REMOTE_USER для идентификации пользователя. (Замечание: актуально только для PHP 4.3.0 и выше)
highlight_file(), show_source() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
parse_ini_file() | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.
set_time_limit() | Не имеет никакого эффекта, если используется безопасный режим.
max_execution_time | Не имеет никакого эффекта, если используется безопасный режим.
mail() | В безопасном режиме пятый параметр недоступен.
session_start() | Владелец скрипта должен совпадать с владельцем каталога session.save_path, если используются хранилище по умолчанию files и session.save_handler.
Все функции работы с файлами и потоками. | Проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. Проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт. (смотрите также php.ini-опцию safe_mode_include_dir.


Использование PHP в командной строке

Содержание

  • Введение
  • Основные отличия от остальных реализаций SAPI
  • Опции
  • Использование
  • Потоки ввода/вывода
  • Интерактивная консоль
  • Встроенный web-сервер
  • Опции конфигурации


Введение

Основная цель этого CLI SAPI - разработка консольных приложений на PHP. Имеется несколько несущественных различий между CLI SAPI и другими видами SAPI, которые будут рассмотрены в этой главе. Будет полезно заметить, что CLI SAPI и CGI - различные SAPI-интерфейсы, хотя в их поведении много общего.

CLI SAPI включается по умолчанию с помощью опции --enable-cli , но может быть выключен опцией --disable-cli при запуске ./configure.

Имя, расположение и существование бинарных модулей CLI/CGI зависит от того, как именно установлен PHP в вашей системе. По умолчанию при выполнении make создается как CGI, так и CLI модуль, размещенные в директориях sapi/cgi/php-cgi и sapi/cli/php соответственно, внутри директории с исходниками PHP. Следует заметить, что оба файла имеют одинаковое название: php. Что произойдет при выполнении make install, зависит от того, какие опции вы указали на стадии конфигурирования. В случае, если вы отдали предпочтение такому модулю SAPI как apxs, либо указали опцию --disable-cgi , модуль CLI будет скопирован в {PREFIX}/bin/php при выполнении make install, в противном случае будет скопирован CGI-модуль. Например, если вы указали опцию --with-apxs , то при выполнении make install CLI-версия будет скопирована в {PREFIX}/bin/php. Если вы хотите перекрыть установленный CGI-модуль, виспользуйте make install-cli после выполнения make install. В качестве альтернативы вы могли бы указать опцию --disable-cgi в строке конфигурации.

Замечание:

Поскольку обе опции, --enable-cli и --enable-cgi , присутствуют по умолчанию, одного присутствия строки --enable-cli в команде конфигурации недостаточно для того, чтобы CLI-версия была установлена в {PREFIX}/bin/php при выполнении make install.

Начиная с PHP 5, бинарный файл CLI входит в дистрибутив для Windows в основной папке в качестве файлаphp.exe. CGI-версия находится в файле php-cgi.exe. Кроме того, в дистрибутив входит файл php-win.exe, если PHP был сконфигурирован с помощью --enable-cli-win32 . Он полностью эквивалентен CLI-версии, за исключением того, что абсолютно ничего не выводит, что приводит к отсутствию консоли (окно терминала не появляется на экране).

Замечание: Какой из вариантов SAPI установлен?

Выполните из командной строки php -v для получения информации о том, является ли php CGI или CLI. Также вы можете использовать функцию php_sapi_name() или константу PHP_SAPI.

Замечание:

Соответствующую страницу руководства (man) Unix можно просмотреть с помощью команды man php в консоли.


Основные отличия от остальных реализаций SAPI

Основные отличия CLI SAPI от остальных реализаций SAPI:

  • В отличие от CGI SAPI, заголовки не пишутся в поток вывода.

    Несмотря на то, что в CGI SAPI есть способ подавления HTTP-заголовков, в CLI SAPI нет возможности их включить.

    CLI по умолчанию запускается в тихом режиме, тем не менее, ключи -q и --no-header сохранены для обратной совместимости, что позволяет использовать старые CGI-скрипты.

    Текущая директория не изменяется на рабочую директорию скрипта. (Ключи -C и --no-chdir сохранены для обратной совместимости)

    Сообщения об ошибках выдаются в текстовом режиме (без HTML-форматирования).

  • Некоторые настройки php.ini переопределены в CLI SAPI, поскольку они не имеют особого смысла при работе в командной строке:

    Переопределяемые директивы php.ini
    Директива | Значение по умолчанию в CLI SAPI | Комментарий
    html_errors | FALSE | По умолчанию FALSE, т.к. бывает достаточно сложно читать в консоли сообщения об ошибке, когда они наполнены бессмысленными HTML-тегами.
    implicit_flush | TRUE | Обычно в консоли желательно отображать вывод, например, из из print, echo и др., сразу же минуя буфер. Тем не менее, по-прежнему можно использовать буферизацию вывода для отложенного вывода или манипуляций с ним.
    max_execution_time | 0 (без ограничений) | PHP, выполняемый в консоли, как правило используется для более широкого диапазона задач, чем обычные web-скрипты. И так как они могут выполняться очень долго, то максимальное время выполнения не ограничено.
    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               Интерактивный запуск
  -c <path>|<file> Ищет файл php.ini в указанной директории
  -n               Не использовать файл php.ini
  -d foo[=bar]     Установить конфигурационную опцию foo значением 'bar'
  -e               Генерация дополнительной информации для отладчика и профайлера
  -f <file>        Парсит и исполняет <file>
  -h               Текущая справка
  -i               Выводит информацию о PHP
  -l               Проверка синтаксиса (lint)
  -m               Показать скомпилированные модули
  -r <code>        Запустить PHP-код без использования  <?..?>
  -B <begin_code>  Запустить PHP <begin_code> до обработки введенного кода
  -R <code>        Запустить PHP <code> для каждой введенной строки
  -F <file>        Парсить и выполнять <file> для каждой введенной строки
  -E <end_code>    Запустить PHP <end_code> после обработки всех введенных строк
  -H               Спрятать все переданные аргументы от внешних инструментов
  -S <addr>:<port> Запустить со встроенным веб-сервером.
  -t <docroot>     Указать корень документов <docroot> для встроенного веб-сервера.
  -s               Отображает исходный код с цветной подсветкой
  -v               Выводит информацию о версии PHP
  -w               Отображает исходный текст без комментариев и пробелов
  -z <file>        Загрузить Zend-расширение <file>.

  args...          Аргументы, передаваемые скрипту. Используйте -- args в случае, если
                   первый аргумент начинается с '-' или сам скрипт читается из потока STDIN.

  --ini            Показывать имена конфигурационных файлов

  --rf <name>      Показать информацию о функции <name>.
  --rc <name>      Показать информацию о классе <name>.
  --re <name>      Показать информацию о расширении <name>.
  --rz <name>      Показать информацию о Zend-расширении <name>.
  --ri <name>      Показать конфигурацию для расширения <name>.

Опции, доступные из командной строки
Опция | Полное название | Описание
-a --interactive

PHP запускается интерактивно. Подробнее смотрите в разделе Интерактивная консоль.

-b --bindpath

Путь связывания библиотек (Bind Path) для внешнего режима FASTCGI Server (только для CGI).

-C --no-chdir

Не менять текущую директорию на директорию скрипта (только для CGI).

-q --no-header

Тихий режим. Подавляет вывод заголовков HTTP (только для CGI).

-T --timing

Измерить время выполнения скрипта, повторенного count раз (только для CGI).

-c --php-ini

При помощи этой опции можно указать директорию для поиска конфигурационного файла php.ini либо непосредственно указать на сам INI-файл (название которого может отличаться от стандартного php.ini), например:

$ php -c /custom/directory/ my_script.php

$ php -c /custom/directory/custom-file.ini my_script.php

Если эта опция не указана, поиск php.ini будет осуществлен в обычном месте.

-n --no-php-ini

Полностью игнорировать php.ini.

-d --define

Устанавливает специальное значение для каждой из конфигурационных переменных, доступных в php.ini. Синтаксис выглядит следующим образом:

 -d configuration_directive[=value]

# Если значение опущено, то соответствующей опции будет присвоено значение "1"
$ php -d max_execution_time
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(1) "1"

# Указание пустого значения установит соответствующую опцию значением ""
php -d max_execution_time=
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(0) ""

# Конфигурационная переменная будет установлена любым значением, указанным после символа '='
$  php -d max_execution_time=20
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(2) "20"
$  php
        -d max_execution_time=doesntmakesense
        -r '$foo = ini_get("max_execution_time"); var_dump($foo);'
string(15) "doesntmakesense"

-e --profile-info

Включить режим расширенной информации, используемый отладчиком/профайлером.

-f --file

Парсит и исполняет файл, указанный в опции -f . Этот переключатель необязателен и может быть убран. Достаточно передавать только имя запускаемого файла.

Замечание:

Для передачи аргументов в скрипт, первый аргумент должен быть --, иначе PHP воспримет их как свои опции.

-h и -? | --help и --usage | Выводит список актуальных опций вместе с несколькими однострочными описаниями.
-i | --info | Использование этой опции приводит к вызову функции phpinfo() и выводу результирующей информации. В случае, если PHP работает некорректно, будет весьма логично выполнить php -i и посмотреть, выводятся ли сообщения об ошибке до информационных таблиц или даже вместо них. Учтите, что в случае использования CGI-модуля весь вывод будет в формате HTML и, как следствие, очень большим.
-l --syntax-check

Предоставляет удобный способ для проверки заданного PHP-кода на наличие синтаксических ошибок. В случае успешной проверки будет напечатана следующая фраза: "No syntax errors detected in <filename>", - и код возврата будет равен 0. А в случае неудачи - текст "Errors parsing <filename>" вместе с внутренними сообщениями парсера и код возврата будет равен -1.

Проверка исходного кода при помощи данной опции не находит фатальных ошибок (например, таких как вызов неопределенных функций). Используйте опцию -f , если вы хотите проверить код на наличие фатальных ошибок.

Замечание:

Эта опция несовместима с опцией -r .

-m --modules

Пример #1 Вывод встроенных (и загружаемых) PHP и Zend модулей

$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-r --run

Позволяет выполнять PHP-код, указанный непосредственно в командной строке. Открывающие и закрывающие PHP-теги (<?php и ?>) не нужны и, более того, приводят к синтаксической ошибке.

Замечание:

При использовании этого ключа следует быть очень осторожным и избегать недоразумений, связанных с автоматической подстановкой переменных окружения.

Пример #2 Ошибка синтаксиса при использовании двойных кавычек

$ php -r "$foo = get_defined_constants();"
PHP Parse error:  syntax error, unexpected '=' in Command line code on line 1

Parse error: syntax error, unexpected '=' in Command line code on line 1

Проблема заключается в том, что sh/bash выполняет автоматическую подстановку переменных в случае, если используются двойные кавычки ("). Поскольку переменная $foo вряд ли определена, она заменяется пустой строкой, так что передаваемый PHP-код для выполнения выглядит следующим образом:

$ php -r " = get_defined_constants();"

Правильным решением в данном случае будет использование одиночных кавычек ', поскольку автоматическая подстановка переменных, заключенных в одиночные кавычки, в sh/bash не происходит.

Пример #3 Использование одинарных кавычек для предотвращения подстановки переменных в консоли

$ php -r '$foo = get_defined_constants(); var_dump($foo);'
array(370) {
  ["E_ERROR"]=>
  int(1)
  ["E_WARNING"]=>
  int(2)
  ["E_PARSE"]=>
  int(4)
  ["E_NOTICE"]=>
  int(8)
  ["E_CORE_ERROR"]=>
  [...]

При использовании оболочки, отличной от sh/bash, могут возникнуть другие вопросы. В таком случае необходимо создать отчет о возникшей ошибке на сайте » http://bugs.php.net/. Можно столкнуться с проблемами при попытке получить доступ к переменным оболочки или при работе с экранирующими обратными слешами. Теперь вы предупреждены!

Замечание:

Ключ -r доступен в CLI SAPI, но недоступен в CGI SAPI.

Замечание:

Эта опция предназначена только для самых базовых вещей. Поэтому некоторые конфигурационные директивы (например, auto_prepend_file и auto_append_file) в этом режиме будут проигнорированы.

-B --process-begin

Выполняемый PHP-код до обработки потока ввода (stdin). Добавлена в PHP 5.

-R --process-code

PHP-код, выполняемый для каждой введенной строки. Добавлена в PHP 5.

В этом режиме есть две специальные переменные: $argn и $argi. $argn содержит строку, которую PHP обрабатывает в данный момент, а $argi содержит номер этой строки.

-F --process-file

PHP-файл, выполняемый для каждой введенной строки. Добавлена в PHP 5.

-E --process-end

PHP-код, выполняемый после обработки ввода. Добавлена в PHP 5.

Пример #4 Использование опций -B , -R и -E для подсчета количества строк в проекте.

$ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Всего строк: $l\n";'
Всего строк: 37328

-S --server

Запускает встроенный веб-сервер. Доступна, начиная с версии PHP 5.4.0.

-t | --docroot | Указывает корень документов для встроенного веб-сервера. Доступна, начиная с версии PHP 5.4.0.
-s --syntax-highlight и --syntax-highlighting

Показать исходный код с подсвеченным разными цветами синтаксисом.

Эта опция использует внутренний механизм для парсинга файла и записи в стандартный поток вывода подсвеченную HTML-версию этого файла. Учтите, что все что она делает, это генерирует блок <code> [...] </code> HTML-тегов, без HTML-заголовков.

Замечание:

Эта опция несовместима с опцией -r .

-v --version

Пример #5 Использование -v для получения типа SAPI и версии PHP и Zend

$ php -v
PHP 5.3.1 (cli) (built: Dec 11 2009 19:55:07)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

-w --strip

Показать исходный код без комментариев и пробелов.

Замечание:

Эта опция несовместима с опцией -r .

-z --zend-extension

Загружает Zend-расширение. Если передано только имя файла, PHP попытается загрузить это расширение из вашего системного пути поиска библиотек по умолчанию (обычно он указывается в /etc/ld.so.conf в Linux системах). Передача файла с абсолютным путем не будет использовать данный системный путь поиска. Относительное имя файла, содержащее директорию, укажет PHP подгрузить расширение относительно текущей директории.

--ini

Показывает имена конфигурационных файлов и сканируемые директории. Доступна, начиная с версии PHP 5.2.3.

Пример #6 Пример --ini

$ php --ini
Configuration File (php.ini) Path: /usr/dev/php/5.2/lib
Loaded Configuration File:         /usr/dev/php/5.2/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
--rf --rfunction

Показывают информацию об указанной функции или методе класса (например, количество и названия параметров). Доступна, начиная с версии PHP 5.1.2.

Эта опция доступна только в случае если PHP был скомпилирован с поддержкой Reflection.

Пример #7 Базовое использование --rf

$ php --rf var_dump
Function [ <internal> public function var_dump ] {

  - Parameters [2] {
    Parameter #0 [ <required> $var ]
    Parameter #1 [ <optional> $... ]
  }
}
--rc --rclass

Показывает информацию об указанном классе (список констант, свойств и методов). Доступна, начиная с версии PHP 5.1.2.

Эта опция доступна только в случае если PHP был скомпилирован с поддержкой Reflection.

Пример #8 Пример --rc

$ php --rc Directory
Class [ <internal:standard> class Directory ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [3] {
    Method [ <internal> public method close ] {
    }

    Method [ <internal> public method rewind ] {
    }

    Method [ <internal> public method read ] {
    }
  }
}
--re --rextension

Показывает информацию об указанном расширении (список опций php.ini, определенных функций, констант и классов). Доступна, начиная с версии PHP 5.1.2.

Эта опция доступна только в случае если PHP был скомпилирован с поддержкой Reflection.

Пример #9 Пример --re

$ php --re json
Extension [ <persistent> extension #19 json version 1.2.1 ] {

  - Functions {
    Function [ <internal> function json_encode ] {
    }
    Function [ <internal> function json_decode ] {
    }
  }
}
--rz --rzendextension

Показывает информацию о конфигурации указанного Zend-расширения (та же информация, что показывается функцией phpinfo()). Доступна, начиная с версии PHP 5.4.0.

--ri --rextinfo

Показывает информацию о конфигурации указанного расширения (та же информация, что показывается функцией phpinfo()). Доступна, начиная с версии PHP 5.2.2. Конфигурацию ядра можно узнать, указав в качестве имени расширения значение "main".

Пример #10 Пример --ri

$ php --ri date

date

date/time support => enabled
"Olson" Timezone Database Version => 2009.20
Timezone Database => internal
Default timezone => Europe/Oslo

Directive => Local Value => Master Value
date.timezone => Europe/Oslo => Europe/Oslo
date.default_latitude => 59.930972 => 59.930972
date.default_longitude => 10.776699 => 10.776699
date.sunset_zenith => 90.583333 => 90.583333
date.sunrise_zenith => 90.583333 => 90.583333

Замечание:

Опции -rBRFEH, --ini и --r[fcezi] доступны только в CLI.


Выполнение PHP-файлов

В CLI SAPI есть три различных способа запуска PHP-кода:

  1. Указывание конкретного файла для запуска.

    $ php my_script.php

$ php -f my_script.php

    Оба способа (с указыванием опции -f или без) запустят файл my_script.php. Нет ограничений, какой файл запускать, и PHP-скрипты не обязаны иметь расширение .php.

    Замечание:

    Если необходимо передать аргументы в скрипт, то при использовании опции -f первым аргументом должен быть -- .

  2. Передать PHP-код напрямую в командной строке.

    $ php -r 'print_r(get_defined_constants());'

    Необходимо быть особо осторожным при использовании этого способа, так как может произойти подстановка переменных оболочки при использовании двойных кавычек.

    Замечание:

    Внимательно прочтите пример: в нем нет открывающих и закрывающих тегов! Опция -r просто в них не нуждается. Их использование приведет к ошибке парсера.

  3. Передать запускаемый PHP-код через стандартный поток ввода (stdin).

    Это дает мощную возможность создавать PHP-код и скармливать его запускаемому файлу, как показано в этом (вымышленном) примере:

    $ some_application | some_filter | php | sort -u > final_output.txt
Вы не можете комбинировать любой из этих трех способов запуска кода.

Как и любое другое консольное приложение, бинарный файл PHP принимает аргументы, но PHP-скрипт также может получать аргументы. PHP не ограничивает количество аргументов, передаваемых в скрипт (оболочка консоли устанавливает некоторый порог количества символов, которые могут быть переданы; обычно этого лимита хватает). Переданные аргументы доступны в глобальном массиве $argv. Первый индекс (ноль) всегда содержит имя вызываемого скрипта из командной строки. Учтите, что если код вызывается на лету из командной строки с помощью опции -r , значением $argv[0] будет просто дефис (-). То же самое верно и для кода, переданного через конвейер из STDIN.

Вторая зарегистрированная глобальная переменная - это $argc, содержащая количество элементов в массиве $argv ( (а не количество аргументов, переданных скрипту).

Если передаваемые аргументы не начинаются с символа -, то особых проблем быть не должно. Передаваемый в скрипт аргумент, который начинается с - создаст проблемы, так как PHP решит, что он сам должен его обработать. Для предотвращения подобного поведения используйте разделитель списка аргументов --. После того как этот разделитель будет прочитан PHP, все последующие аргументы будут переданы в скрипт нетронутыми.

# Эта команда не запустит данный код, но покажет информацию об использовании PHP
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# Эта команда передаст аргумент '-h' в скрипт, предотвратив показ справки PHP
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

Однако, в Unix-системах есть еще один способ использования PHP для консольных скриптов. Можно написать скрипт, первая строка которого будет начинаться с #!/usr/bin/php (или же другой корректный путь к бинарному файлу PHP CLI). После этой строки можно поместить обычный PHP-код, заключенный в открывающие и закрывающие теги PHP. Как только будут установлены корректные атрибуты запуска на файл (например, chmod +x test), скрипт может быть запущен как обычный консольный или perl-скрипт:

Пример #1 Запуск PHP-скрипта как консольного

#!/usr/bin/php
<?php
var_dump($argv);
?>

Подразумевая что этот файл называется test и находится в текущей директории, можно сделать следующее:

$ chmod +x test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}

Как можно увидеть, в этом случае не нужно заботиться о передаче параметров, которые начинаются с -.

Исполняемый PHP-файл может использоваться для запуска PHP-скриптов независимо от веб-сервера. В случае, работы в Unix-подобной системе, необходимо добавить ко всем скриптам особую строку #! (называемую также "shebang") в начало файла и сделать их исполняемыми, чтобы указать, какая из программ должна обрабатывать эти скрипты. На Windows-платформах можно назначить обработчик php.exe для файлов с расширениями .php либо создать пакетный (.bat) файл для запуска скриптов посредством PHP. Строка, добавляемая в начале скрипта для Unix-систем, не влияет на их работу в ОС Windows, таким образом можно создавать кроссплатформенные скрипты. Ниже приведен простой пример скрипта, выполняемого из командной строки:

Пример #2 Скрипт, предназначенный для запуска из командной строки (script.php)

#!/usr/bin/php
<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

Это консольный PHP-скрипт, принимающий один аргумент.

  Использование:
  <?php echo $argv[0]; ?> <option>

  <option> Любое слово, которое вы хотели бы
  напечатать. Опции  --help, -help, -h,
  или -? покажут текущую справочную информацию.

<?php
} else {
    echo $argv[1];
}
?>

Скрипт приведенный выше включается в себя специальную Unix строку, указывающую на его запуск с помощью PHP. Работа ведется с CLI-версией, поэтому не будет выведено ни одного HTTP-заголовка.

Также приведенный пример проверяет количество переданных аргументов. В случае, если их больше или меньше одного, а также в случае, если переданный аргумент был --help , -help , -h или -? , выводится справочное сообщение с использованием $argv[0], которое содержит имя выполняемого скрипта. В противном случае просто выводится полученный аргумент.

Для запуска приведенного примера в Unix-системе, необходимо сделать его исполняемым и просто выполнить в консоли script.php echothis или script.php -h. В Windows-системе можно создать пакетный файл:

Пример #3 Пакетный файл для запуска PHP-скрипта из командной строки (script.bat)

@echo OFF
"C:\php\php.exe" script.php %*

Предполагая, что скрипт называется script.php и полный путь к CLI php.exe совпадает с C:\php\php.exe, приведенный пакетный файл запустит скрипт с переданными параметрами: script.bat echothis либо script.bat -h.

Также можно ознакомиться с расширением Readline, которое можно использовать для усовершенствования консольного PHP-скрипта.

В Windows запуск PHP можно настроить без необходимости указывать C:\php\php.exe и расширение .php. Подробнее эта тема описана в разделе Запуск PHP из командной строки в Microsoft Windows.


Потоки ввода/вывода

Модуль CLI SAPI определяет несколько констант для потоков ввода/вывода для упрощения работы с командной строкой.

Константы, специфичные для модуля CLI
Константа Описание
STDIN

Уже открытый поток ввода (stdin). Он предотвращает необходимость его открывать следующим способом:

<?php
$stdin = fopen('php://stdin', 'r');
?>
Если вы хотите прочесть одну строку из stdin, можно использовать следующий код:
<?php
$line = trim(fgets(STDIN)); // читает одну строку из STDIN
fscanf(STDIN, "%d\n", $number); // читает число из STDIN
?>

STDOUT

Уже открытый поток вывода (stdout). Он предотвращает необходимость его открывать следующим способом:

<?php
$stdout = fopen('php://stdout', 'w');
?>

STDERR

Уже открытый поток ошибок (stderr). Он предотвращает необходимость его открывать следующим способом:

<?php
$stderr = fopen('php://stderr', 'w');
?>

Учитывая вышесказанное, нет необходимости самому открывать поток, например, stderr, а можно просто использовать уже определенную константу ресурса потока:

php -r 'fwrite(STDERR, "stderr\n");'
Вам также не нужно их вручную закрывать, они будут закрыты PHP автоматически при окончании вашего скрипта.

Замечание:

Эти константы недоступны, если PHP считывает запускаемый скрипт из stdin.


Интерактивная консоль

Начиная с версии PHP 5.1.0, модуль CLI SAPI предоставляет интерактивную консоль, доступную с помощью опции -a , если PHP был скомпилирован с опцией --with-readline .

Интерактивная консоль позволяет непосредственно набирать и одновременно выполнять PHP-код.

Пример #1 Запуск кода в интерактивной консоли

$ php -a
Interactive shell

php > echo 5+8;
13
php > function addTwo($n)
php > {
php { return $n + 2;
php { }
php > var_dump(addtwo(2));
int(4)
php >

Интерактивная консоль также автодополняет (с помощью клавиши Tab) имена функций, констант, классов, переменных, вызовы статических методов и константы классов.

Пример #2 Автодополнение по Tab

Двойное нажатие клавиши Tab при наличии нескольких вариантов дополнения покажет список этих вариантов:

php > strp[TAB][TAB]
strpbrk   strpos    strptime
php > strp

Если доступно только одно дополнение, одиночное нажатие Tab дополнит оставшийся текст на той же самой строке:

php > strpt[TAB]ime(

Дополнение также работает для элементов, которые были объявлены в течении данной интерактивной сессии:

php > $fooThisIsAReallyLongVariableName = 42;
php > $foo[TAB]ThisIsAReallyLongVariableName

Интерактивная консоль хранит историю команд, для доступа к ней можно использовать стрелки вверх и вниз. История хранится в файле ~/.php_history.

Начиная с версии PHP 5.4.0, модуль CLI SAPI предоставляет две новые настройки в php.ini:cli.pager и cli.prompt. Настройка cli.pager позволяет использовать внешнюю программу (такую как less) для постраничного просмотра данных вместо их прямого вывода на экран. Настройка cli.prompt позволяет задавать приглашение php > на ввод команды.

С PHP 5.4.0 также можно устанавливать настройки php.ini в интерактивной консоли используя специальное сокращение.

Пример #3 Установка настройки php.ini в интерактивной консоли

Настройка cli.prompt:

php > #cli.prompt=hello world :>
hello world :>

Используя обратные апострофы можно задать PHP код, который выполнится в приглашении на ввод команды:

php > #cli.prompt=`echo date('H:i:s');` php >
15:49:35 php > echo 'hi';
hi
15:49:43 php > sleep(2);
15:49:45 php >

Установка less для постраничного вывода данных:

php > #cli.pager=less
php > phpinfo();
(output displayed in less)
php >

Настройка cli.prompt поддерживает несколько управляющих последовательностей:

Управляющие последовательности cli.prompt
Управляющая последовательность | Описание
\e | Используется для добавления цветов в приглашение на ввод команды. Пример: \e[032m\v \e[031m\b \e[34m\> \e[0m
\v | Версия PHP.
\b | Отображает в какой части PHP мы находимся. Для примера /* показывает, что мы находимся в многострочном комментарии. Внешняя область видимости обозначается как php.
\> | Отображает символ запроса. По умолчанию это символ >, но он может измениться, когда мы находимся внутри незакрытых блока или строки. Возможные символы: ' " { ( >

Замечание:

Файлы, подключенные с помощью опций auto_prepend_file и auto_append_file обрабатываются в этом режиме с некоторыми ограничениями, например, функции должны быть объявлены до их использования.

Замечание:

Автозагрузка недоступна при использовании интерактивного режима PHP CLI.


Встроенный web-сервер

Внимание

Этот web-сервер был разработан для помощи в разработке. Он также может быть полезным в тестовых целях или для демонстрации приложения, запускаемого в полностью контролируемом окружении. Он не выполняет функции полноценного web-сервера и не должен использоваться во общедоступных сетях.

Начиная с версии PHP 5.4.0 модуль CLI SAPI содержит встроенный web-сервер.

Если запрос блокирующий, то PHP приложения будут приостановлены.

URI запросы обслуживаются из текущей директории, в которой был запущен PHP, если не используется опция -t для явного указания корневого документа. Если URI запроса не указывает на определенный файл, то будет возвращен либо index.php либо index.html в указанной директории. Если оба файла отсутствуют, то возвращается 404 код ответа.

Если PHP-файл указывается в командной строке, когда запускается веб-сервер, то он рассматривается как скрипт "маршрутизации". Скрипт выполняется в самом начале после каждого HTTP-запроса. Если этот скрипт возвращает FALSE, то запрашиваемый ресурс возвращается как есть. В противном случае браузеру будет возвращен вывод этого скрипта.

Стандартные MIME-типы возвращаются для файлов со следующими расширениями: .3gp, .apk, .avi, .bmp, .css, .csv, .doc, .docx, .flac, .gif, .gz, .gzip, .htm, .html, .ics, .jpe, .jpeg, .jpg, .js, .kml, .kmz, .m4a, .mov, .mp3, .mp4, .mpeg, .mpg, .odp, .ods, .odt, .oga, .ogg, .ogv, .pdf, .pdf, .png, .pps, .pptx, .qt, .svg, .swf, .tar, .text, .tif, .txt, .wav, .webm, .wmv, .xls, .xlsx, .xml, .xsl, .xsd, и .zip.

История правок: Поддерживаемые MIME-типы (расширения файлов)
Версия | Описание
5.5.12 | .xml, .xsl, и .xsd
5.5.7 | .3gp, .apk, .avi, .bmp, .csv, .doc, .docx, .flac, .gz, .gzip, .ics, .kml, .kmz, .m4a, .mp3, .mp4, .mpg, .mpeg, .mov, .odp, .ods, .odt, .oga, .pdf, .pptx, .pps, .qt, .swf, .tar, .text, .tif, .wav, .wmv, .xls, .xlsx, и .zip
5.5.5 | .pdf
5.4.11 | .ogg, .ogv, и .webm
5.4.4 | .htm и .svg

Пример #1 Запуск web-сервера

$ cd ~/public_html
$ php -S localhost:8000

В консоли выведется:

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit

После URI запросов http://localhost:8000/ и http://localhost:8000/myscript.html в консоли выведется примерно следующее:

PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
Listening on localhost:8000
Document root is /home/me/public_html
Press Ctrl-C to quit.
[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read
[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read
[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read
[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read
[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read

Пример #2 Запуск с указанием корневой директории

$ cd ~/public_html
$ php -S localhost:8000 -t foo/

В консоли выведется:

PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
Listening on localhost:8000
Document root is /home/me/public_html/foo
Press Ctrl-C to quit

Пример #3 Использование скрипта маршрутизации

В этом примере, запросы изображений будут возвращать их, но запросы HTML файлов будут возвращать "Welcome to PHP".

<?php
// router.php
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
    return false;    // сервер возвращает файлы напрямую.
} else {
    echo "<p>Welcome to PHP</p>";
}
?>
$ php -S localhost:8000 router.php

Пример #4 Проверка использования CLI web-сервера

Для совместного использования скрипта маршрутизации при разработке с CLI web-сервером и в дальнейшем с боевым web-сервером:

<?php
// router.php
if (php_sapi_name() == 'cli-server') {
    /* Маршрутизация с заданными правилами и выход с возвращением false */
}
/* продолжение с обычными операциями index.php */
?>
$ php -S localhost:8000 router.php

Пример #5 Поддержка неподдерживаемых типов файлов

Если вам нужно обслуживать статические ресурсы с MIME типами неподдерживаемыми CLI web-сервером:

<?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 web-серверу с удаленных машин

Вы можете сделать web-сервер доступным на 8000 порту для всех сетевых интерфейсов:

$ php -S 0.0.0.0:8000


Опции конфигурации

Опции конфигурации CLI SAPI
Имя | По умолчанию | Меняемо | Список изменений
cli_server.color | "0" | PHP_INI_ALL | Доступна начиная с версии PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

cli_server.color boolean

Включает поддержку цветовых кодов ANSI в выводе терминала встроенного веб-сервера.


Сборка мусора

Содержание

  • Основы подсчета ссылок
  • Сбор циклических ссылок
  • Вопросы производительности

В этом разделе описываются достоинства нового механизма сборки мусора (также называемого Garbage Collection или GC), являющегося частью PHP 5.3.


Основы подсчета ссылок

Переменная PHP хранится в контейнере, называемом "zval". Контейнер zval, помимо типа и значения переменной, также содержит два дополнительных элемента. Первый называется "is_ref" и представляет булево значение, указывающее, является переменная частью "набора ссылок" или нет. Благодаря этому элементу PHP знает как отличать обычные переменные от ссылок. Так как PHP содержит пользовательские ссылки, которые можно создать оператором &, контейнер zval также содержит внутренний механизм подсчета ссылок для оптимизации использования памяти. Эта вторая часть дополнительной информации, называемая "refcount" (счетчик ссылок), содержит количество имен переменных (также называемых символами), которые указывают на данный контейнер zval. Все имена переменных хранятся в таблице имен, отдельной для каждой области видимости переменных. Такая область видимости существует для главного скрипта, а также для каждой функции и метода.

Контейнер zval создается при создании новой переменной, которой присваивается константа, например:

Пример #1 Создание нового контейнера zval

<?php
$a = "new string";
?>

В данном примере создается новый символ a в текущей области видимости и новый контейнер переменной с типом string и значением new string. Бит "is_ref" по умолчанию задается равным FALSE, т.к. не создано ни одной пользовательской ссылки. Значение же "refcount" задается равным 1, т.к. только одно имя переменной указывает на данный контейнер. Отметим, что если "refcount" равен 1, то "is_ref" будет всегда равен FALSE. Если у вас установлен » Xdebug, то вы можете вывести эту информацию, вызвав функцию xdebug_debug_zval().

Пример #2 Вывод информации о zval

<?php
xdebug_debug_zval('a');
?>

Результат выполнения данного примера:

a: (refcount=1, is_ref=0)='new string'

Присвоение этой переменной другой увеличивает счетчик ссылок.

Пример #3 Увеличение счетчика ссылок zval

<?php
$a = "new string";
$b = $a;
xdebug_debug_zval( 'a' );
?>

Результат выполнения данного примера:

a: (refcount=2, is_ref=0)='new string'

Счетчик ссылок здесь равен 2, т.к. a и b ссылаются на один и тот же контейнер переменной. PHP достаточно умен, чтобы не копировать контейнер, пока в этом нет необходимости. Как только "refcount" станет равным нулю, контейнер уничтожается. "refcount" уменьшается на единицу при уходе переменной из области видимости (например, в конце функции) или при удалении этой переменной (например при вызове unset()).

Пример #4 Уменьшение счетчика ссылок zval

<?php
$a = "new string";
$c = $b = $a;
xdebug_debug_zval( 'a' );
$b = 42;
xdebug_debug_zval( 'a' );
unset( $c );
xdebug_debug_zval( 'a' );
?>

Результат выполнения данного примера:

a: (refcount=3, is_ref=0)='new string'
a: (refcount=2, is_ref=0)='new string'
a: (refcount=1, is_ref=0)='new string'

Если мы сейчас вызовем unset($a);, то контейнер, включая тип и значение, будет удален из памяти.

Составные типы данных

Все несколько усложняется с составными типами данных, такими как массивы (array) и объекты (object). В отличии от скалярных (scalar) значений, массивы и объекты хранят свои свойства в собственных таблицах имен. Это значит, что следующий пример создаст сразу три zval контейнера:

Пример #5 Создание array zval

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
xdebug_debug_zval( 'a' );
?>

Результатом выполнения данного примера будет что-то подобное:

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=1, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42
)

Графически:

Контейнеры для простого массива

Результат - три контейнера: a, meaning и number. Похожие правила применяются и для увеличения и уменьшения "refcounts". Ниже мы добавляем еще один элемент массива и устанавливаем ему значение уже существующего элемента:

Пример #6 Добавление уже существующего элемента в массив

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
$a['life'] = $a['meaning'];
xdebug_debug_zval( 'a' );
?>

Результатом выполнения данного примера будет что-то подобное:

a: (refcount=1, is_ref=0)=array (
   'meaning' => (refcount=2, is_ref=0)='life',
   'number' => (refcount=1, is_ref=0)=42,
   'life' => (refcount=2, is_ref=0)='life'
)

Графически:

Контейнеры для простого массива со ссылками

Вышеприведенный вывод Xdebug показывает, что и старый и новый элементы массива сейчас указывают на контейнер, чей "refcount" равен 2. Хотя показано два контейнера со значением 'life', на самом деле это один контейнер. Функция xdebug_debug_zval() не выводит информации об этом, но вы можете проверить это также отобразив указатели памяти.

Удаление элемента из массива происходит точно так же, как и удаление имени переменной из области видимости: уменьшается "refcount" контейнера, на который ссылается элемент массива. Опять же, при достижении "refcount" нуля, контейнер удаляется из памяти. Пример:

Пример #7 Удаление элемента из массива

<?php
$a = array( 'meaning' => 'life', 'number' => 42 );
$a['life'] = $a['meaning'];
unset( $a['meaning'], $a['number'] );
xdebug_debug_zval( 'a' );
?>

Результатом выполнения данного примера будет что-то подобное:

a: (refcount=1, is_ref=0)=array (
   'life' => (refcount=1, is_ref=0)='life'
)

Ситуация станет интереснее, если добавить массив новым элементом в самого себя. В следующем примере мы также используем оператор присваивания по ссылке, чтобы PHP не создал копию массива.

Пример #8 Добавление массива новым элементом в самого себя

<?php
$a = array( 'one' );
$a[] =& $a;
xdebug_debug_zval( 'a' );
?>

Результатом выполнения данного примера будет что-то подобное:

a: (refcount=2, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=2, is_ref=1)=...
)

Графически:

Контейнеры массива с циклическими ссылками

Можно увидеть, что переменная с массивом (a), так же как и второй элемент (1) сейчас указывают на контейнер с "refcount" равным 2. Символы "..." в выводе означают рекурсию и, в нашем случае, указывают на оригинальный массив.

Как и ранее, удаление переменной уменьшает счетчик ссылок контейнера на единицу. Если мы применим unset к переменной $a после вышеприведенного примера, то счетчик ссылок контейнера, на который указывают $a и элемент "1", изменится с "2" на "1":

Пример #9 Удаление $a

(refcount=1, is_ref=1)=array (
   0 => (refcount=1, is_ref=0)='one',
   1 => (refcount=1, is_ref=1)=...
)

Графически:

Контейнеры после удаления массива с циклическими ссылками, демонстрирующие утечку памяти

Суть проблемы

Хотя во всех областях видимости больше нет имени переменной, ссылающейся на данную структуру, она не может быть очищена, т.к. элемент массива "1" по-прежнему ссылается на этот массив. Т.к. теперь нет никакой возможности пользователю удалить эти данные, то мы получили утечку памяти. К счастью, PHP удалит эти данные при завершении запроса, но до этого момента данные будут занимать ценное место в памяти. Такая ситуация часто бывает, когда реализуются алгоритмы парсинга или другие, где есть дочерние элементы, ссылающиеся на родительские. Еще чаще такая ситуация случается с объектами, потому что они всегда неявно используются по ссылке.

Эта не проблема, если такое случается раз или два, но если существуют тысячи или даже миллионы таких утечек памяти, то они уже становятся проблемой. Особенно в долгоработающих скриптах, таких как демоны, где запрос не заканчивается никогда, или в больших наборах модульных тестов. Последний случай вызвал проблемы при запуске модульных тестов для компонента Template из библиотеки ez Components. В некоторых случаях может потребоваться свыше 2 Гб памяти, которая не всегда есть на тестовом сервере.


Сбор циклических ссылок

Обычно механизмы подсчета ссылок в памяти, например, используемый в PHP ранее, не решают проблему утечки памяти из-за циклических ссылок. Начиная с версии 5.3.0, в PHP реализован синхронный механизм из исследования "» Concurrent Cycle Collection in Reference Counted Systems", в котором рассматривается этот вопрос.

Полное описание работы алгоритма выходит за рамки данного раздела, поэтому приведены только основы. Прежде всего мы должны задать несколько основных правил. Если счетчик ссылок увеличивается, то контейнер все еще используется и не является мусором. Если счетчик уменьшается до нуля, то zval может быть удален. Исходя из этих правил утечки памяти с циклическими ссылками могут получиться только при уменьшении счетчика ссылок до ненулевого значения. Затем, в выделенных контейнерах можно найти мусор проверив возможность уменьшения всех счетчиков ссылок на единицу и определив те контейнеры, у которых счетчик станет равным нулю.

Алгоритм сборки мусора

Для избежания постоянной проверки на мусор с циклическими ссылками при каждом уменьшении счетчика ссылок, алгоритм добавляет все возможные корни (zval контейнеры) в "корневой буфер" (помечая их как "фиолетовые"). Это также гарантирует попадание любого корня в буфер только один раз. Механизм сборки мусора стартует только тогда, когда наполняется буфер (см. шаг A на рисунке выше).

На шаге B алгоритм производит поиск в глубину по всем возможным корням для однократного уменьшения счетчика ссылок на единицу у всех контейнеров (помечая их как "серые"). На шаге C алгоритм снова производит поиск в глубину для проверки счетчиков ссылок. Если он находит счетчик с нулевым значением, то контейнер помечается как "белый" (на рисунке отображено синим). Если же счетчик больше нуля, то происходит поиск в глубину от этого контейнера с обратным увеличением счетчиков на единицу и повторной пометкой как "черный" на их контейнерах. На последнем шаге D алгоритм проходит по корневому буферу и удаляет из него корни контейнеров, заодно проверяя какие контейнеры помечены как "белые". Эти контейнеры будут освобождены из памяти.

Теперь, когда вы имеете представление о работе алгоритма, рассмотрим его интеграцию в PHP. По умолчанию сборщик мусора всегда включен. Для изменения этой опции используется параметр zend.enable_gc в php.ini.

Если сборщик мусора включен, алгоритм поиска циклических ссылок выполняется каждый раз, когда корневой буфер наполняется 10,000 корнями (вы можете поменять это значение, изменив константу GC_ROOT_BUFFER_MAX_ENTRIES в файле Zend/zend_gc.c в исходном коде PHP и пересобрав PHP). Если сборщик мусора выключен, алгоритм никогда не будет запущен. Тем не менее, буфер всегда заполняется корнями.

Если буфер заполнился при выключенном механизме сборки мусора, то другие корни не будут в него записаны. Таким образом, если они окажутся мусором с циклическими ссылками, то никогда не будут очищены и создадут утечку памяти.

Причиной постоянной записи корней в буфер даже при выключенном механизме сборки мусора является то, что это намного быстрее, чем постоянно проверять включен ли механизм сборки мусора или нет. Однако, сама сборка мусора и алгоритм ее анализа могут занимать значительное время.

Помимо изменения параметра zend.enable_gc, механизм сборки мусора также можно запустить и остановить вызвав функции gc_enable() и gc_disable() соответственно. Вызов этих функций имеет тот же эффект, что и включение/выключение механизма с помощью настроек конфигурации. Кроме того, можно запустить сборку мусора, даже если корневой буфер еще не заполнен. Для этого вы можете вызвать функцию gc_collect_cycles(), которая также возвращает количество циклических ссылок собранных алгоритмом.

Причиной включения и выключения механизма сборки, а также его ручного запуска, может стать то, что некоторые части вашего приложения могут быть требовательными ко времени. В этих случаях вы, возможно, не захотите постороннего вмешательства сборщика мусора. Разумеется, выключая сборщик мусора в определенных местах вашего приложения вы рискуете получить утечку памяти, т.к. потенциально некоторые корни могут не поместиться в ограниченный корневой буфер. Более целесообразно будет вызвать gc_collect_cycles() непосредственно перед вызовом gc_disable() для освобождения памяти и уже записанных корней в буфере. Это очистит буфер и позволит использовать больше места для хранения корней, пока механизм будет выключен.


Вопросы производительности

В предыдущем разделе нами уже говорилось, что простой сбор корней меньше влияет на производительность. Хотя запись корней в буфер по сравнению с полным отсутствием таковой в PHP 5.2 работает медленней, другие изменения в работе PHP 5.3 сделали эту потерю производительности незаметной.

Есть две основные области влияющие на производительность: уменьшение размера используемой памяти и замедление работы при сборке мусора. Рассмотрим их.

Уменьшение размера используемой памяти

Прежде всего, основной причиной реализации механизма сборки мусора является уменьшение размера используемой памяти с помощью чистки циклических ссылок, которая происходит при достижении соответствующих условий. В реализации PHP это происходит как только заполнится корневой буфер или при вызове функции gc_collect_cycles(). На графике ниже приведено использование памяти скрипта, запущенного в PHP 5.2 и PHP 5.3, без учета памяти, используемой самим PHP при запуске.

Пример #1 Пример использования памяти

<?php
class Foo
{
    public $var = '3.14159265359';
}

$baseMemory = memory_get_usage();

for ( $i = 0; $i <= 100000; $i++ )
{
    $a = new Foo;
    $a->self = $a;
    if ( $i % 500 === 0 )
    {
        echo sprintf( '%8d: ', $i ), memory_get_usage() - $baseMemory, "\n";
    }
}
?>
Сравнение использования памяти в PHP 5.2 и PHP 5.3

В этом очень академическом примере мы создаем объект, свойство a которого задается ссылкой на сам объект. Когда в скрипте в следующей итерации цикла переопределяется переменная $a, то происходит типичная утечка памяти. В данном случае пропадают два контейнера zval (контейнер объекта и контейнер свойства объекта), но определяется только один корень - удаленная переменная. Как только пройдут 10 000 итераций (максимально в корневом буфере будет 10 000 корней), то запустится механизм сборки мусора и память, занимаемая этими корнями, будет освобождена. Этот процесс хорошо виден на графике использования памяти для PHP 5.3: после каждых 10 000 итераций график проседает. Сам по себе механизм в данном примере совершает не так много работы, потому что структура утечек слишком проста. Из графика видно, что максимальное использование памяти в PHP 5.3 составило около 9 Мб, тогда как в PHP 5.2 оно продолжает возрастать.

Замедление работы

Второй областью, где сборка мусора влияет на производительность, является потеря времени, когда сборщик мусора освобождает память. Чтобы понять степень этого влияния, мы немного изменим предыдущий скрипт, добавив большее число итераций и промежуточных переменных. Измененный скрипт:

Пример #2 Влияние на производительность

<?php
class Foo
{
    public $var = '3.1415962654';
}

for ( $i = 0; $i <= 1000000; $i++ )
{
    $a = new Foo;
    $a->self = $a;
}

echo memory_get_peak_usage(), "\n";
?>

Мы запустим скрипт два раза: с включенной опцией zend.enable_gc и без нее.

Пример #3 Запуск скрипта

time php -dzend.enable_gc=0 -dmemory_limit=-1 -n example2.php
# и
time php -dzend.enable_gc=1 -dmemory_limit=-1 -n example2.php

На тестовой машине первая команда примерно выполняется 10.7 секунд, а вторая примерно 11.4 секунды. Это примерно на 7% медленнее. Однако, максимальное использование памяти скриптом уменьшилось на 98% с 931 Мб до 10 Мб. Этот тест не очень научный, но он действительно демонстрирует преимущество по использованию памяти, обеспечиваемое сборщиком мусора. Также хорошо то, что замедление для этого скрипта всегда примерно 7%, тогда как экономия памяти увеличивается все больше и больше при нахождении нового мусора.

Внутренняя статистика сборщика мусора

Можно получить немного больше информации о том, как механизм сборки мусора выполняется в PHP. Но для этого вам необходимо пересобрать PHP для включения теста производительности и кода для дополнительного сбора данных. Необходимо установить переменную окружения CFLAGS в значение -DGC_BENCH=1 до выполнения команды ./configure с вашими параметрами. Следующие команды должны сработать:

Пример #4 Сборка PHP для включения теста производительности GC

export CFLAGS=-DGC_BENCH=1
./config.nice
make clean
make

При запуске вышеприведенного примера с обновленным PHP, можно увидеть следующую информацию по завершении работы скрипта:

Пример #5 Статистика GC

GC Statistics
-------------
Runs:               110
Collected:          2072204
Root buffer length: 0
Root buffer peak:   10000

      Possible            Remove from  Marked
        Root    Buffered     buffer     grey
      --------  --------  -----------  ------
ZVAL   7175487   1491291    1241690   3611871
ZOBJ  28506264   1527980     677581   1025731

Наиболее полезная статистика отображена в первом блоке. Можно увидеть, что механизм сборки мусора был запущен 110 раз, и суммарно было освобождено свыше 2 миллионов записей в памяти. Если сборка мусора была запущена хотя бы раз, то максимальное число корней в буфере всегда будет равно 10 000.

Заключение

В целом, сборщик мусора в PHP вызовет ощутимые замедления только во время непосредственной работы механизма сборки циклических ссылок, тогда как в обычных (небольших) скриптах не должно быть никакого падения производительности.

Однако в тех случаях, когда механизм сборки должен срабатывать и в обычных скриптах, снижение используемой памяти позволяет одновременно работать на сервере большему их количеству.

Преимущества наиболее очевидны для долгоработающих скриптов, таких как большие наборы тестов или демоны. Новый механизм также должен снизить утечки памяти для приложений » PHP-GTK, которые выполняются обычно дольше, чем веб-скрипты.


Динамическая трассировка DTrace

Содержание

  • Введение в PHP и DTrace
  • Использование PHP и DTrace
  • Использование SystemTap со статическими зондами PHP DTrace


Введение в PHP и DTrace

DTrace - это всегда доступный, практически не потребляющий ресурсов фреймворк трассировки. Он доступен на множестве платформ, включая Solaris, Mac OS X, Oracle Linux и BSD. DTrace может отслеживать поведение операционной системы и запущенных пользовательских приложений. Он может показывать значения параметров и используется для вывода статистики производительности. Зонды отслеживаются пользовательскими скриптами, написанными на скриптовом языке DTrace D. Это позволяет эффективно анализировать срезы данных.

Зонды PHP, которые не отслеживаются пользовательскими DTrace D скриптами, не содержат никакого дополнительного кода и, следовательно, во время нормальной работы приложения, никакой деградации производительности не происходит. Отслеживаемые зонды, в свою очередь, дают очень низкую просадку производительности, что позволяет использовать их в промышленных средах.

PHP включает в себя зонды "Статически определенной трассировки уровня пользователя" (User-level Statically Defined Tracing, или USDT), которые работают во время исполнения. К примеру, когда D-скрипт отслеживает зонд function-entry, то каждый раз при вызове функции, этот зонд запускает соответствующее действие D-скрипта. Это действие, например, печатает аргументы зонда, такие как расположение этой функции в PHP-скрипте. Или же это может быть агрегация данных, таких как количество запусков каждой из функции.

Здесь описываются только зонды PHP USDT. Для получения информации о том, как следить за произвольными функциями и отслеживать поведение операционной системы, читайте соответствующую литературу, специфичную для каждой операционной системы и внешнюю полноценную документацию DTrace. Обратите внимание, что различные реализации DTrace могут отличаться набором доступного функционала.

Статические зонды DTrace включены в PHP 5.4. До этой версии их можно подключить как расширение » PECL, которое сейчас уже достаточно бесполезно.

Статические зонды DTrace в PHP, также могут быть использованы с SystemTap в некоторых дистрибутивах Linux.


Использование PHP и DTrace

PHP может быть сконфигурирован со статическими зондами DTrace на платформах поддерживающих динамическую трассировку DTrace.

Конфигурирование PHP со статическими зондами DTrace

Обратитесь к документации вашей платформы, что бы включить поддержку DTrace в вашей операционной системе. К примеру, в Oracle Linux необходимо загрузить ядро UEK3 и сделать следующее:

# modprobe fasttrap
# chmod 666 /dev/dtrace/helper

Вместо chmod, вы можете использовать пакет правил ACL для ограничения доступа для конкретного пользователя.

Сборка PHP с ключем --enable-dtrace:

# ./configure --enable-dtrace ...
# make
# make install

Это включит статические зонды в ядре PHP. Любое расширение PHP, предоставляющее собственные зонды, должно быть собрано отдельно как разделяемое расширение.

Статические зонды DTrace в ядре PHP

Следующие статические зонды доступны в PHP
Имя зонда | Описание зонда | Аргументы зонда
request-startup | Срабатывает при начале запроса. | char *file, char *request_uri, char *request_method
request-shutdown | Срабатывает при окончании запроса. | char *file, char *request_uri, char *request_method
compile-file-entry | Срабатывает, когда начинается компиляция скрипта. | char *compile_file, char *compile_file_translated
compile-file-return | Срабатывает, когда заканчивается компиляция скрипта. | char *compile_file, char *compile_file_translated
execute-entry | Срабатывает, когда запускается массив байт-кода. К примеру, когда вызываются функции, возобновляется работа генератора или происходит include. | char *request_file, int lineno
execute-return | Срабатывает, после отработки массива байт-кода. | char *request_file, int lineno
function-entry | Срабатывает, когда движек PHP начинает запуск функции или метода. | char *function_name, char *request_file, int lineno, char *classname, char *scope
function-return | Срабатывает, когда движек PHP возвращается из функции или метода. | char *function_name, char *request_file, int lineno, char *classname, char *scope
exception-thrown | Срабатывает, когда выброшено исключение. | char *classname
exception-caught | Срабатывает, когда исключение поймано. | char *classname
error | Срабатывает если произошла ошибка, вне зависимости от уровня error_reporting. | char *errormsg, char *request_file, int lineno

Расширения PHP могут содержать дополнительные зонды.

Список статических зондов DTrace в PHP

Для получения списка зондов, запустите процесс PHP и выполните:

# dtrace -l

Вывод будет примерно такой:

   ID   PROVIDER            MODULE                          FUNCTION NAME
   [ . . . ]
    4   php15271               php               dtrace_compile_file compile-file-entry
    5   php15271               php               dtrace_compile_file compile-file-return
    6   php15271               php                        zend_error error
    7   php15271               php  ZEND_CATCH_SPEC_CONST_CV_HANDLER exception-caught
    8   php15271               php     zend_throw_exception_internal exception-thrown
    9   php15271               php                 dtrace_execute_ex execute-entry
   10   php15271               php           dtrace_execute_internal execute-entry
   11   php15271               php                 dtrace_execute_ex execute-return
   12   php15271               php           dtrace_execute_internal execute-return
   13   php15271               php                 dtrace_execute_ex function-entry
   14   php15271               php                 dtrace_execute_ex function-return
   15   php15271               php              php_request_shutdown request-shutdown
   16   php15271               php               php_request_startup request-startup

Колонка Provider содержит надпись php и pid текущего запущенного процесса PHP.

Если запущен веб-сервер Apache, имя модуля может быть, например, libphp5.so, и может быть множество блоков списка, по одному на каждый процесс Apache.

Колонка Function ссылается на имя внутренней С-функции PHP, реализующей соответствующий зонд.

Если PHP не запущен, то связанных с ним зондов в списке не будет.

Примеры использования DTrace с PHP

Этот пример показывает базовые возможности скриптового языка DTrace D.

Пример #1 all_probes.d - трассировка всех статических зондов PHP с помощью DTrace

#!/usr/sbin/dtrace -Zs

#pragma D option quiet

php*:::compile-file-entry
{
    printf("PHP compile-file-entry\n");
    printf("  compile_file              %s\n", copyinstr(arg0));
    printf("  compile_file_translated   %s\n", copyinstr(arg1));
}

php*:::compile-file-return
{
    printf("PHP compile-file-return\n");
    printf("  compile_file              %s\n", copyinstr(arg0));
    printf("  compile_file_translated   %s\n", copyinstr(arg1));
}

php*:::error
{
    printf("PHP error\n");
    printf("  errormsg                  %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
}

php*:::exception-caught
{
    printf("PHP exception-caught\n");
    printf("  classname                 %s\n", copyinstr(arg0));
}

php*:::exception-thrown
{
    printf("PHP exception-thrown\n");
    printf("  classname                 %s\n", copyinstr(arg0));
}

php*:::execute-entry
{
    printf("PHP execute-entry\n");
    printf("  request_file              %s\n", copyinstr(arg0));
    printf("  lineno                    %d\n", (int)arg1);
}

php*:::execute-return
{
    printf("PHP execute-return\n");
    printf("  request_file              %s\n", copyinstr(arg0));
    printf("  lineno                    %d\n", (int)arg1);
}

php*:::function-entry
{
    printf("PHP function-entry\n");
    printf("  function_name             %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
    printf("  classname                 %s\n", copyinstr(arg3));
    printf("  scope                     %s\n", copyinstr(arg4));
}

php*:::function-return
{
    printf("PHP function-return\n");
    printf("  function_name             %s\n", copyinstr(arg0));
    printf("  request_file              %s\n", copyinstr(arg1));
    printf("  lineno                    %d\n", (int)arg2);
    printf("  classname                 %s\n", copyinstr(arg3));
    printf("  scope                     %s\n", copyinstr(arg4));
}

php*:::request-shutdown
{
    printf("PHP request-shutdown\n");
    printf("  file                      %s\n", copyinstr(arg0));
    printf("  request_uri               %s\n", copyinstr(arg1));
    printf("  request_method            %s\n", copyinstr(arg2));
}

php*:::request-startup
{
    printf("PHP request-startup\n");
    printf("  file                      %s\n", copyinstr(arg0));
    printf("  request_uri               %s\n", copyinstr(arg1));
    printf("  request_method            %s\n", copyinstr(arg2));
}

Этот скрипт использует опцию -Z для dtrace, позволяя ему работать даже если ни одного процесса PHP не запущено. Если не использовать эту опцию, то скрипт сразу же завершит выполнения, поскольку не увидит ни одного зонда, который ему надо отслеживать.

Скрипт отслеживает все статические зонды PHP на всем протяжении работы crhbgnf PHP. Запускаем D-скрипт:

# ./all_probes.d

Запустите скрипт или приложение PHP. Отслеживающий D-скрипт будет выводить аргументы всех сработавших зондов.

Когда вы увидели все, что хотели, прервать работу скрипта можно комбинацией ^C.

На многопроцессорных машинах, порядок зондов может быть не последовательным, в зависимости от того, на каких процессорах работают зонды и как мигрируют потоки между процессорами. Отображение временных меток позволит избежать конфузов. К примеру:

php*:::function-entry
{
      printf("%lld: PHP function-entry ", walltimestamp);
      [ . . .]
}

Также смотрите

  • OCI8 и динамическая трассировка DTrace


Использование SystemTap со статическими зондами PHP DTrace

В некоторых дистрибутивах Linux, можно использовать утилиту трассировки SystemTap для отслеживания статических зондов DTrace. Данный вариант доступен в PHP 5.4.20 и PHP 5.5.

Установка PHP с SystemTap

Установите разработческий пакет SystemTap SDT:

# yum install systemtap-sdt-devel

Установите PHP с DTrace:

# ./configure --enable-dtrace ...
# make

Получение списка статических зондов с помощью SystemTap

Статические зонды PHP можно посмотреть используя stap:

# stap -l 'process.provider("php").mark("*")' -c 'sapi/cli/php -i'

Примерный вывод:

process("sapi/cli/php").provider("php").mark("compile__file__entry")
process("sapi/cli/php").provider("php").mark("compile__file__return")
process("sapi/cli/php").provider("php").mark("error")
process("sapi/cli/php").provider("php").mark("exception__caught")
process("sapi/cli/php").provider("php").mark("exception__thrown")
process("sapi/cli/php").provider("php").mark("execute__entry")
process("sapi/cli/php").provider("php").mark("execute__return")
process("sapi/cli/php").provider("php").mark("function__entry")
process("sapi/cli/php").provider("php").mark("function__return")
process("sapi/cli/php").provider("php").mark("request__shutdown")
process("sapi/cli/php").provider("php").mark("request__startup")

Пример использования SystemTap с PHP

Пример #1 all_probes.stp - трассировка всех статических зондов PHP

probe process("sapi/cli/php").provider("php").mark("compile__file__entry") {
    printf("Probe compile__file__entry\n");
    printf("  compile_file %s\n", user_string($arg1));
    printf("  compile_file_translated %s\n", user_string($arg2));
}
probe process("sapi/cli/php").provider("php").mark("compile__file__return") {
    printf("Probe compile__file__return\n");
    printf("  compile_file %s\n", user_string($arg1));
    printf("  compile_file_translated %s\n", user_string($arg2));
}
probe process("sapi/cli/php").provider("php").mark("error") {
    printf("Probe error\n");
    printf("  errormsg %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
}
probe process("sapi/cli/php").provider("php").mark("exception__caught") {
    printf("Probe exception__caught\n");
    printf("  classname %s\n", user_string($arg1));
}
probe process("sapi/cli/php").provider("php").mark("exception__thrown") {
    printf("Probe exception__thrown\n");
    printf("  classname %s\n", user_string($arg1));
}
probe process("sapi/cli/php").provider("php").mark("execute__entry") {
    printf("Probe execute__entry\n");
    printf("  request_file %s\n", user_string($arg1));
    printf("  lineno %d\n", $arg2);
}
probe process("sapi/cli/php").provider("php").mark("execute__return") {
    printf("Probe execute__return\n");
    printf("  request_file %s\n", user_string($arg1));
    printf("  lineno %d\n", $arg2);
}
probe process("sapi/cli/php").provider("php").mark("function__entry") {
    printf("Probe function__entry\n");
    printf("  function_name %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
    printf("  classname %s\n", user_string($arg4));
    printf("  scope %s\n", user_string($arg5));
}
probe process("sapi/cli/php").provider("php").mark("function__return") {
    printf("Probe function__return: %s\n", user_string($arg1));
    printf(" function_name %s\n", user_string($arg1));
    printf("  request_file %s\n", user_string($arg2));
    printf("  lineno %d\n", $arg3);
    printf("  classname %s\n", user_string($arg4));
    printf("  scope %s\n", user_string($arg5));
}
probe process("sapi/cli/php").provider("php").mark("request__shutdown") {
    printf("Probe request__shutdown\n");
    printf("  file %s\n", user_string($arg1));
    printf("  request_uri %s\n", user_string($arg2));
    printf("  request_method %s\n", user_string($arg3));
}
probe process("sapi/cli/php").provider("php").mark("request__startup") {
    printf("Probe request__startup\n");
    printf("  file %s\n", user_string($arg1));
    printf("  request_uri %s\n", user_string($arg2));
    printf("  request_method %s\n", user_string($arg3));
}

Приведенный выше скрипт будет выводить данные статических зондов PHP на всем протяжении работы PHP-скрипта:

# stap -c 'sapi/cli/php test.php' all_probes.stp


Справочник функций

Подсказка

Смотрите также Список/классификация расширений.

  • Изменение поведения PHP
    • APC — Альтернативный PHP кэш
    • APCu — Пользовательский кеш APC
    • APD — Расширенный отладчик PHP
    • bcompiler — PHP bytecode Compiler
    • BLENC — Blenc - BLowfish ENCoder для PHP скриптов
    • Обработка ошибок — Обработка и протоколирование ошибок
    • htscanner — htaccess-like support for all SAPIs
    • inclued — Inclusion hierarchy viewer
    • Memtrack
    • OPcache
    • Контроль вывода — Управление буфером вывода
    • PHP Опции/Информация — PHP Опции и Информация
    • runkit
    • scream — Прерывает режим молчание
    • uopz
    • Weakref — Weak References
    • WinCache — Windows Cache for PHP
    • Xhprof — Hierarchical Profiler
  • Обработка аудио форматов
    • ID3 — ID3 теги
    • KTaglib
    • oggvorbis — OGG/Vorbis
    • OpenAL — OpenAL Audio Bindings
  • Службы аутентификации
    • KADM5 — Kerberos V
    • Radius
  • Расширения для работы с командной строкой
    • Ncurses — Ncurses Terminal Screen Control
    • Newt
    • Readline — GNU Readline
  • Расширения для сжатия и архивации
    • Bzip2
    • LZF
    • Phar
    • Rar — Архивирование Rar
    • Zip
    • Zlib
  • Обработка кредитных карт
    • MCVE — MCVE (Monetra) Payment (Обработка кредитных карт)
  • Криптографические расширения
    • Crack — Cracklib
    • CSPRNG
    • Hash — Фреймворк хеш-кодов HASH
    • Mcrypt
    • Mhash
    • OpenSSL
    • Хэширование паролей
  • Расширения для работы с базами данных
    • Уровни абстракции
    • Расширения для работы с базами данных отдельных производителей
  • Расширения для работы с датой и временем
    • Календарь
    • Дата/Время — Дата и Время
    • HRTime — High resolution timing
  • Расширения для работы с файловой системой
    • Прямой ввод/вывод (Direct IO)
    • Каталоги
    • FileInfo — Информация о файле
    • Функции для работы с файловой системой
    • Inotify
    • Mimetype
    • Proctitle
    • xattr
    • xdiff
  • Поддержка языков и кодировок
    • Enchant — Enchant spelling library
    • FriBiDi
    • Gender — Определение пола по имени
    • Gettext
    • iconv
    • intl — Функции интернационализации
    • Многобайтные строки
    • Pspell
    • Recode — GNU Recode
  • Обработка и генерация изображений
    • Cairo
    • Exif — Изменяемая информация об изображении
    • GD — Обработка изображений и GD
    • Gmagick
    • ImageMagick — Обработка изображений (ImageMagick)
  • Расширения для работы с почтой
    • Cyrus — Администрирование Cyrus IMAP
    • IMAP — IMAP, POP3 и NNTP
    • Mail
    • Mailparse
    • vpopmail
  • Математические расширения
    • BC Math — Вычисления с произвольной точностью BCMath
    • GMP — Вычисления с увеличенной точностью (GNU Multiple Precision)
    • Lapack
    • Math — Математические функции
    • Статистика
    • Trader — Technical Analysis for Traders
  • Генерация нетекстовых MIME форматов
    • FDF — Формат данных форм
    • GnuPG — GNU Privacy Guard
    • haru — Haru PDF
    • Ming — Ming (flash)
    • PDF
    • PS — Создание документов PostScript
    • RPM Reader — RPM Header Reading
  • Расширения для управления процессами программ
    • Eio
    • Ev
    • Expect
    • Libevent
    • PCNTL — Process Control
    • POSIX
    • Запуск программы — Запуск программ в системе
    • pthreads
    • Семафоры — Семафоры, разделяемая память и IPC
    • Управление разделяемой памятью
    • Sync
  • Другие базовые расширения
    • GeoIP — Geo IP Location
    • FANN — FANN (Fast Artificial Neural Network)
    • JSON — JavaScript Object Notation
    • Judy — Judy Arrays
    • Lua
    • Misc. — Разные функции
    • Parsekit
    • SPL — Стандартная библиотека PHP (SPL)
    • Типы SPL — Обработка типов SPL Type
    • Потоки
    • Tidy
    • Лексер (Tokenizer)
    • URL
    • V8js — Интеграция V8 Javascript Engine
    • Yaml — Сериализация данных YAML
    • Yaf — Yet Another Framework
    • Taint
  • Другие службы
    • chdb — База данных хэша констант (CHDB)
    • cURL — Клиентская библиотека работы с URL
    • Event
    • FAM — File Alteration Monitor
    • FTP
    • Gearman
    • Gopher — Net Gopher
    • Gupnp
    • Hyperwave API
    • LDAP — Облегчённый протокол доступа к каталогам (LDAP)
    • Memcache
    • Memcached
    • mqseries
    • Network
    • RRD — RRDtool
    • SAM — Simple Asynchronous Messaging
    • SNMP
    • Сокеты
    • SSH2 — Secure Shell2
    • Stomp — Stomp Client
    • SVM — Support Vector Machine
    • SVN — Subversion
    • TCP — Обертки TCP
    • Varnish
    • YAZ
    • YP/NIS
    • 0MQ messaging — ZMQ
    • ZooKeeper
  • Расширения для работы с поисковыми системами
    • mnoGoSearch
    • Solr — Apache Solr
    • Sphinx — Клиент Sphinx
    • Swish — Swish Indexing
  • Расширения для работы с серверами
    • Apache
    • Менеджер процессов FastCGI
    • IIS — Администрирование IIS
    • NSAPI
  • Расширения для работы с сессиями
    • Msession — Mohawk Software Session Handler Functions
    • Сессии — Управление сессиями
    • Session PgSQL — PostgreSQL Session Save Handler
  • Обработка текста
    • BBCode — Bulletin Board Code
    • PCRE — Функции для работы с регулярными выражениями (Perl-совместимые)
    • Регулярные выражения POSIX — Регулярные выражения (расширенные POSIX)
    • ssdeep — ssdeep Fuzzy Hashing
    • Строки
  • Расширения, относящиеся к переменным и типам
    • Массивы
    • Классы и объекты — Функции работы с классами и объектами
    • Classkit
    • Ctype — Функции определения типа символов
    • Структуры данных
    • Filter — Фильтрация данных
    • Управление функциями
    • Quickhash
    • Reflection
    • Функции для работы с переменными
  • Веб-сервисы
    • OAuth
    • SCA
    • SOAP
    • Yar — Yet Another RPC Framework
    • XML-RPC
  • Расширения только для Windows
    • COM — COM и .Net (Windows)
    • win32ps
    • win32service
  • Обработка XML
    • DOM — Document Object Model
    • libxml
    • SDO — Service Data Objects
    • SDO-DAS-Relational — SDO Relational Data Access Service
    • SDO DAS XML — SDO XML Data Access Service
    • SimpleXML
    • WDDX
    • XMLDiff — XML diff and merge
    • Разбор XML
    • XMLReader
    • XMLWriter
    • XSL
  • Расширения для работы с GUI
    • UI


Изменение поведения PHP

  • APC — Альтернативный PHP кэш
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • APC
    • APCIterator — Класс APCIterator
  • APCu — Пользовательский кеш APC
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции APCu
    • APCUIterator — Класс APCUIterator
  • APD — Расширенный отладчик PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • APD Функции
  • bcompiler — PHP bytecode Compiler
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • bcompiler Функции
  • BLENC — Blenc - BLowfish ENCoder для PHP скриптов
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Blenc Функции
  • Обработка ошибок — Обработка и протоколирование ошибок
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции обработки ошибок
  • htscanner — htaccess-like support for all SAPIs
    • Введение
    • Установка и настройка
  • inclued — Inclusion hierarchy viewer
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции inclued
  • Memtrack
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
  • OPcache
    • Введение
    • Установка и настройка
    • OPcache Функции
  • Контроль вывода — Управление буфером вывода
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции контроля вывода
  • PHP Опции/Информация — PHP Опции и Информация
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • PHP опции/Информационные Функции
  • runkit
    • Введение
    • Предопределенные константы
    • Установка и настройка
    • runkit
  • scream — Прерывает режим молчание
    • Введение
    • Установка и настройка
    • Примеры
  • uopz
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Uopz Функции
  • Weakref — Weak References
    • Введение
    • Установка и настройка
    • WeakRef — The WeakRef class
    • WeakMap — The WeakMap class
  • WinCache — Windows Cache for PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • WinCache Функции
    • Building for Windows
  • Xhprof — Hierarchical Profiler
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Xhprof Функции


Альтернативный PHP кэш

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • APC
    • apc_add — Кэшировать переменную в хранилище данных
    • apc_bin_dump — Получить бинарный дамп заданных файлов и пользовательских переменных
    • apc_bin_dumpfile — Вывести двоичный дамп кэшированных файлов и пользовательских переменных в файл
    • apc_bin_load — Загрузить бинарный дамп в файловый/пользовательский кэш APC
    • apc_bin_loadfile — Загрузить бинарный дамп из файла в файловый/пользовательский кэш APC
    • apc_cache_info — Получить кэшируемую информацию и метаданные из хранилища данных APC
    • apc_cas — Заменить старое значение на новое
    • apc_clear_cache — Очистить кэш APC
    • apc_compile_file — Сохранить файл в кэше байт-кода, не обращая внимания на фильтры
    • apc_dec — Уменьшить сохраненное число
    • apc_define_constants — Определить набор констант для извлечения и массового определения
    • apc_delete_file — Удалить файлы из кэша опкодов
    • apc_delete — Удалить сохраненную переменную из кэша
    • apc_exists — Проверить, существует ли ключ APC
    • apc_fetch — Выбрать сохраненную переменную из кэша
    • apc_inc — Увеличить сохраненное число
    • apc_load_constants — Загрузить набор констант из кэша
    • apc_sma_info — Получить информацию о выделении разделяемой памяти APC
    • apc_store — Кэшировать переменную в хранилище данных
  • APCIterator — Класс APCIterator
    • APCIterator::__construct — Создать объект итератора APCIterator
    • APCIterator::current — Получить текущий элемент
    • APCIterator::getTotalCount — Получить общее количество
    • APCIterator::getTotalHits — Получить общее число попаданий в кэш
    • APCIterator::getTotalSize — Получить общий размер кэша
    • APCIterator::key — Получить ключ итератора
    • APCIterator::next — Переместить указатель к следующему элементу
    • APCIterator::rewind — Перемотать итератор назад
    • APCIterator::valid — Проверить, является ли текущая позиция итератора допустимой


Введение

Альтернативный кэш PHP (APC) является свободным и открытым кэшем байт-кода для PHP. Его цель состоит в том, чтобы предоставлять свободный, открытый, и устойчивый фреймворк для кэширования и оптимизации промежуточного кода PHP.

Внимание

Это расширение считается неподдерживаемым и мертвым. В любом случае, исходники доступны через PECL GIT тут: http://git.php.net/?p=pecl/caching/apc.git.

Замечание:

Для этого расширения есть следующие альтернативы: OPcache, APCu, Windows Cache для PHP и API отслеживания прогресса загрузки файлов с помощью сессий.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Типы ресурсов


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Для сборки этого расширения не требуются внешние библиотеки.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/apc.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Замечание: В Windows, APC необходимо, чтобы был задана временная директория и веб-сервер имел право туда писать. Это расширение проверяет переменные окружающей среды в таком порядке: TMP, TEMP, USERPROFILE. Если ни одна из них не задана, то расширение пытается работать с каталогом WINDOWS.

Замечание: Крайне подробная, в техническом плане, документация о реализации этого расширения доступна в » предоставленном разработчиком файле TECHNOTES.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Не смотря на то, что настройки APC по умолчанию достаточно хороши, для некоторых задач может потребоваться более тонкая настройка.

При конфигурировании APC есть два главных момента, на которые необходимо обратить внимание. Первый - сколько памяти предоставить в распоряжение APC, и второй - будет ли APC проверять, модифицировался ли файл, при каждом запросе. За эти настройки отвечают параметры apc.shm_size и apc.stat соответственно. Крайне внимательно прочитайте разделы, относящиеся к настройке этих параметров.

Как только сервер запущен, скрипт apc.php, поставляемый с этим расширением, должен быть скопирован в "docroot" и права на него должны позволять запустить его через браузер. Этот скрипт предоставляет детальную информацию по работе APC. Если в PHP разрешен GD, то этот скрипт также будет показывать полезные графики. Конечно же первое, что будет интересно, это то, кеширует ли APC что нибудь. Если APC работает, то значение Cache full count (слева) будет показывать, сколько раз кеш полностью заполнится и был вынужден принудительно удалить записи, к которым не обращались последние apc.ttl секунд. Чем меньше это число - тем лучше сконфигурирован кеш. Если это число постоянно растет, значит APC приходится постоянно очищать старые записи и значит теряется весь смысл кеширования. Самый лучший способ уменьшить это число - это добавить APC памяти. Если сделать этого нельзя, то надо перенастроить apc.filters, что бы ограничить набор кешируемых скриптов.

Если APC собран с поддержкой mmap (Memory Mapping), он будет использовать всего один сегмент памяти, если же наоборот, APC собран с поддержкой SHM (SysV Shared Memory), он будет использовать несколько сегментов. MMAP не имеет максимального ограничения, в отличии от SHM, который ограничивается /proc/sys/kernel/shmmax. Обычно рекомендуется использовать MMAP, потому что он гораздо быстрее выделяет память при перезагрузке веб-сервера, что сказывается на скорости запуска сервера.

Конфигурационные параметры APC
Имя | По умолчанию | Меняемо | Список изменений
apc.enabled | "1" | PHP_INI_SYSTEM | PHP_INI_SYSTEM в APC 2. PHP_INI_ALL в APC <= 3.0.12.
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "32M" | PHP_INI_SYSTEM |
apc.shm_strings_buffer | "4M" | PHP_INI_SYSTEM | Доступно с APC 3.1.4.
apc.optimization | "0" | PHP_INI_ALL | PHP_INI_SYSTEM в APC 2. Удалено в APC 3.0.13.
apc.num_files_hint | "1000" | PHP_INI_SYSTEM |
apc.user_entries_hint | "4096" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.ttl | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.user_ttl | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.cache_by_default | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в APC <= 3.0.12. Доступно с APC 3.0.0.
apc.filters | NULL | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.slam_defense | "1" | PHP_INI_SYSTEM | Доступно с APC 3.0.0. До APC 3.1.4, значение по умолчанию "0" (disabled).
apc.file_update_protection | "2" | PHP_INI_SYSTEM | Доступно с APC 3.0.6.
apc.enable_cli | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.7.
apc.max_file_size | "1M" | PHP_INI_SYSTEM | Доступно с APC 3.0.7.
apc.use_request_time | "1" | PHP_INI_ALL | Доступно с APC 3.1.3.
apc.stat | "1" | PHP_INI_SYSTEM | Доступно с APC 3.0.10.
apc.write_lock | "1" | PHP_INI_SYSTEM | Доступно с APC 3.0.11.
apc.report_autofilter | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.11.
apc.serializer | "default" | PHP_INI_SYSTEM | Доступно с APC 3.1.0.
apc.include_once_override | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.12.
apc.rfc1867 | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.13.
apc.rfc1867_prefix | "upload_" | PHP_INI_SYSTEM |
apc.rfc1867_name | "APC_UPLOAD_PROGRESS" | PHP_INI_SYSTEM |
apc.rfc1867_freq | "0" | PHP_INI_SYSTEM |
apc.rfc1867_ttl | "3600" | PHP_INI_SYSTEM | Доступно с APC 3.1.1.
apc.localcache | "0" | PHP_INI_SYSTEM | Доступно в APC 3.0.14 - 3.1.11.
apc.localcache.size | "512" | PHP_INI_SYSTEM | Доступно в APC 3.0.14 - 3.1.11.
apc.coredump_unmap | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.16.
apc.stat_ctime | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.13.
apc.preload_path | NULL | PHP_INI_SYSTEM | Доступно с APC 3.1.1.
apc.file_md5 | "0" | PHP_INI_SYSTEM | Доступно с APC 3.1.1.
apc.canonicalize | "1" | PHP_INI_SYSTEM | Доступно с APC 3.1.1.
apc.lazy_functions | 0 | PHP_INI_SYSTEM | Доступно с APC 3.1.3.
apc.lazy_classes | 0 | PHP_INI_SYSTEM | Доступно с APC 3.1.3.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

apc.enabled boolean

Если установить apc.enabled равным 0, то APC не будет запущен. Это полезно, когда APC статически включен в PHP и нет других вариантов, для запрещения его использования. Если APC собран как DSO, можно просто закомментировать строку extension в php.ini.

apc.shm_segments integer

Количество сегментов разделяемой памяти выделенной под кеш. Если APC использовал всю доступную разделяемую память, а apc.shm_size таким большим, как позволяет система, увеличение этого параметра может помочь.

apc.shm_size string

Размер сегмента разделяемой памяти, заданный в короткой нотации (смотри этот FAQ). По умолчанию, некоторые системы (включая большинство вариантов BSD) ограничивают это значение крайне малым значением.

apc.shm_strings_buffer string

Размер памяти отданный под разделяемый строковый кеш, используемый внутренними процессами APC. Размер должен завершаться суффиксом M или G для обозначения мегабайт и гигабайт соответственно. Использование этого параметра может сократить размер памяти рабочих процессов PHP-FPM, так как одинаковые строки будут сохранены в памяти всего один раз и смогут использоваться всеми рабочими процессами.

apc.optimization integer

Уровень оптимизации. Ноль запрещает оптимизаци. Чем выше это значение, тем более аггресивная оптимизация будет использована. Не ждите большого прироста в скорости. Это эксперементальная функциональность.

apc.num_files_hint integer

Подсказка по количеству уникальных файлов, использующихся в вашем сайте. Установите равным нулю или вообще не указывайте, если не уверены. Эта настройка полезна, когда у вас многие тысячи файлов.

apc.user_entries_hint integer

Как и apc.num_files_hint, это подсказка о количестве уникальных пользовательских переменных, которые надо кешировать. Установите равным нулю или вообще не указывайте, если не уверены.

apc.ttl integer

Количество секунд, которые запись может лежать в кеше без обращения к ней, прежде чем будт разрешено ее заменить на другую. Установка этого параметра равного нулю может привести к тому, что все место будет забито и новые записи не смогут попасть в кеш. В этом случае, если параметр равен 0, кеш будет полностью очищен. Если же ttl будет больше нуля, то APC постарается очистить устаревшие записи.

apc.user_ttl integer

Количество секунд, которые запись может лежать в кеше без обращения к ней, прежде чем будт разрешено ее заменить на другую. Установка этого параметра равного нулю может привести к тому, что все место будет забито и новые записи не смогут попасть в кеш. В этом случае, если параметр равен 0, кеш будет полностью очищен. Если же ttl будет больше нуля, то APC постарается очистить устаревшие записи.

apc.gc_ttl integer

Количество секунд, которые запись может находиться в списке сборщика мусора. Это значение обеспечивает безотказность в случае падения сервера в момент исполнения закешированного файла. Если исполняемый файл был изменен, память, выделенная под кеширование его старой версии, не будет возвращена до истечения этого времени. Установка в ноль отключает этот функционал.

apc.cache_by_default boolean

По умолчанию включено, но можно отключить и использовать совместно с включенным apc.filters для кеширования только тех файлов, которые заданы фильтрами.

apc.filters string

Список регулярных выражений вида расширенных POSIX, перечисленных через запятую. Если имя какого либо файла совпадет с одним из этих шаблонов, то он не будет кеширован. Обратите внимание, что имена для сравнения берутся ровно так, как они заданы в include/require, а не по абсолютному пути. Если первый символ шаблона это +, то любой совпавший файл будет закеширован, если -, то не будет. По умолчанию всегда подразумевается -.

apc.mmap_file_mask string

Если собран с поддержкой MMAP, с помощью опции --enable-mmap, этот параметр должен содержать файловую маску типа mktemp-style для передачи в расширение MMAP, что бы определить, будет ли MMAP использовать файловую систему или разделяемую память. Для файловой системы задайте опцию как /tmp/apc.XXXXXX (ровно 6 X). Для использования shm_open/mmap в стиле POSIX, добавьте .shm в любом месте маски, например /apc.shm.XXXXXX Вы также можете установить его как /dev/zero для использования интерфейса ядра /dev/zero для анонимной памяти mmap. Если не задано, то будет принудительно использоваться анонимный mmap.

apc.slam_defense integer

На очень загруженных серверах, когда вы запускаете веб-сервер, сразу множество процессов будут пытаться закешировать один и тот-же файл одновременно. Этой опцией задается вероятность, в процентах, того, что попытка одного конкретного процесса закешировать данные будет отклонена. Например если apc.slam_defense установить равной 75, то это означает, что вероятность закешировать файл, которого в кеше нет, будет равна 25% и вероятность того, что в кешировании будет отказано равна 75%. Для запрета данного функционала установите этот параметр равным 0.

Deprecated by apc.write_lock.

apc.file_update_protection integer

Когда файл изменяется на ходу, это должно происходить атомармым образом. То есть сначала его надо записать во временный файл, а затем переместить (mv) на его целевую позицию. Многие текстовые редакторы, cp, tar и прочие не делают этого. Это может привести к тому, что файл будет запрошен (и закеширован) в момент его записи. Настройка apc.file_update_protection задает задержку кеширования для совершенно новых файлов. По умолчанию 2 секунды. Это означает, что если временная метка модификации файла (mtime) говорит, что с если момента изменения файла прошло менее 2 секунд, он не будет кеширован. Неудачник, который попытается обратиться в полу-сохраненному файлу будет наблюдать странное поведение, но, по крайней мере, оно продлится не долго. Если все файлы веб-сервера будут обновляться атомарно, с помощью таких методов как rsync (который производит обновление корректно), то это поведение можно отключить установим этот параметр равным нулю. Если система перегружена по вводу/выводу, то некоторые обновления могут длиться больше двух секунд и эта настройка должна быть соответственно увеличина.

apc.enable_cli integer

Больше для тестирования и отладки. Эта настройка разрешае APC для CLI версии PHP. При обычной работе, запускать APC, который будет создавать, наполнять и уничтожать кеш при каждом запуске сценария в консоли, будет далеко не лучшей идеей. Но в целях тестирования и отладки, можно легко включить APC для CLI.

apc.max_file_size integer

Не кеширует файлы большего, чем задано этой настройкой, размера. По умолчанию 1M.

apc.stat integer

Будьте осторожны меняя эту настройку. По умолчанию она включена, заставляя APC проверять файлы скриптов при каждом запросе на предмет не были ли они изменены. Если они были изменены, то они будут перекомпилированы и закешированы заново. Если же эту настройку отключить, то APC такую проверку производить не будет и если файл уже был закеширован, а после этого изменен, то новая версия в кеш не попадет. Для перекеширования потребуется перезагрузить веб-сервер. Обратите внимание, что веб-сервера сконфигурированные для использования FastCGI могут не очищать кеш при перезапуске. В промышленных средах, где изменения файлов происходят крайне редко, отключение этой опции может значительно повысить производительность.

Для файлов загружаемых через included/required это опция работает замечательно, но имейте в виду, что при включении файла по относительному пути (в Unix это любой путь, не начинающийся с /), APC будет проверять его на уникальность. Если же используются абсолютные пути, APC будет пропускать эту проверку и использовать абсолютный путь как уникальный идентификатор файла.

apc.write_lock boolean

На высоконагруженных серверах, когда сервер стартует, или когда множество файлов изменяются одновременно, APC может попытаться скомпелировать и закешировать один и тот же файл несколько раз одновременно. Блокировка записи гарантирует, что только один процесс будет пытаться компилировать и кешировать некешированный файл. Другие процессы, которым нужно использовать этот файл, будут использовать его некешированную версию, вместо того, что бы ждать его появления в кеше.

apc.report_autofilter boolean

Логирует любые скрипты, которые были исключены из кеширования из-за проблем раннего или позднего связывания.

apc.serializer string

Указывает APC использовать сторонний сериализатор.

apc.include_once_override boolean

Оптимизирует вызовы include_once и require_once для предотвращения дорогих системных вызовов.

Внимание

Этот функционал является ЭКСПЕРЕМЕНТАЛЬНЫМ. Поведение этой директивы, ее имя и документация на нее могут измениться без предупреждения в будущих версиях APC. Используйте ее на свой страх и риск.

apc.rfc1867 boolean

Перехватчик прогресса загрузки файлов RFC1867 доступен в APC только если он собран с PHP 5.2.0 и выше. Если разрешено, то любой загружаемый на сервер файл, содержащий в форме, перед полем с файлом, поле с именем APC_UPLOAD_PROGRESS, будет вынуждать APC автоматически создавать пользовательскую запись в кеше вида upload_key, где key - это значение поля APC_UPLOAD_PROGRESS.

Помните, что скрытое поле APC_UPLOAD_PROGRESS должно идти до поля с файлом, иначе работа будет некорректной.

Обратите внимание, отслеживание загрузки файла потоконебезопасна, так что если во время первой загрузки случится новая, с тем же ключем, отслеживание первой будет прекращено.

Обратите внимание, что rate будет доступен только когда все текущие загрузки завершены.

Пример #1 Пример использования apc.rfc1867

<?php
print_r(apc_fetch("upload_$_POST[APC_UPLOAD_PROGRESS]"));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [total] => 1142543
    [current] => 1142543
    [rate] => 1828068.8
    [filename] => test
    [name] => file
    [temp_filename] => /tmp/php8F
    [cancel_upload] => 0
    [done] => 1
)

apc.rfc1867_prefix string

Ключ-префикс для пользовательской записи в кеше создаваемой функционалом rfc1867.

apc.rfc1867_name string

Задает имя для скрытого поля формы, которая будет активировать отслеживание прогресса зугрузки.

apc.rfc1867_freq string

Частота, с которой будет обновляться пользовательская запись в кеше, во время загрузки файла. Может задаваться как в процентах, так и указанием размера в байтах. При желании можно использовать суффиксы "k", "m", и "g" (регистронезависимо) для килобайт, мегабайт и гигабайт соответственно. Если указать ноль, то обновления будут происходить так быстро, как только возможно, но это может замедлить загрузку.

apc.rfc1867_ttl integer

TTL для записей rfc1867.

apc.localcache boolean

Разрешает неблокирующий локальный теневой кэш процессов, что уменьшает количество блокировок во время записи кеша.

apc.localcache.size integer

Размер локального теневого кеша процессов, должен быть достаточно большим, примерно в половину apc.num_files_hint.

apc.coredump_unmap boolean

Разрешает APC перехватывать сигналы, такие как SIGSEGV, который записывает coredump, когда подан. Когда эти сигналы будут получены, APC попытается освободить всю разделяемую память, что бы не включать ее в coredump. Эта настройка может увеличить стабильность системы, когда критический сигнал был получен, а APC сконфигурирован на использование большого объема памяти.

Внимание

Эта возможность потенциально опасна. Освобождение сегментов разделяемой памяти при получении критического сигнала может привести к непредсказуемому поведению.

Замечание:

Хотя некоторые ядра предоставляют возможность игнорировать некоторые сегменты разделяемой памяти при записи core-файла, эти реализации могут также игнорировать важные сегменты памяти, такие как Apache scoreboard.

apc.stat_ctime integer

Проверка по ctime, для исключения проблем порожденных такими программами как svn или rsync. Убеждается, что inode не поменялся с момента последнего сбора статистики. ОбычноAPC проверяет только mtime.

apc.canonicalize bool

Если запрещено, то относительные пути приводятся к каноничным в режиме no-stat. Если разрешено, то файлы, подключенные через потоковую обертку не будут кешироваться, так как realpath() не поддерживает потоковые обертки.

apc.preload_path string

Опционально. Задает путь, который используется APC для загрузки кешированных данных во время запуска.

apc.use_request_time bool

Использовать время старта запроса SAPI для TTL.

apc.file_md5 bool

Записывать md5 хеши файлов.

apc.lazy_functions integer

Разрешает ленивую подгрузку функций.

apc.lazy_classes integer

Разрешает ленивую подгрузку классов.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

APC_BIN_VERIFY_CRC32 (integer)
APC_BIN_VERIFY_MD5 (integer)
APC_ITER_ALL (integer)
APC_ITER_ATIME (integer)
APC_ITER_CTIME (integer)
APC_ITER_DEVICE (integer)
APC_ITER_DTIME (integer)
APC_ITER_FILENAME (integer)
APC_ITER_INODE (integer)
APC_ITER_KEY (integer)
APC_ITER_MD5 (integer)
APC_ITER_MEM_SIZE (integer)
APC_ITER_MTIME (integer)
APC_ITER_NONE (integer)
APC_ITER_NUM_HITS (integer)
APC_ITER_REFCOUNT (integer)
APC_ITER_TTL (integer)
APC_ITER_TYPE (integer)
APC_ITER_VALUE (integer)
APC_LIST_ACTIVE (integer)
APC_LIST_DELETED (integer)


APC

Содержание

  • apc_add — Кэшировать переменную в хранилище данных
  • apc_bin_dump — Получить бинарный дамп заданных файлов и пользовательских переменных
  • apc_bin_dumpfile — Вывести двоичный дамп кэшированных файлов и пользовательских переменных в файл
  • apc_bin_load — Загрузить бинарный дамп в файловый/пользовательский кэш APC
  • apc_bin_loadfile — Загрузить бинарный дамп из файла в файловый/пользовательский кэш APC
  • apc_cache_info — Получить кэшируемую информацию и метаданные из хранилища данных APC
  • apc_cas — Заменить старое значение на новое
  • apc_clear_cache — Очистить кэш APC
  • apc_compile_file — Сохранить файл в кэше байт-кода, не обращая внимания на фильтры
  • apc_dec — Уменьшить сохраненное число
  • apc_define_constants — Определить набор констант для извлечения и массового определения
  • apc_delete_file — Удалить файлы из кэша опкодов
  • apc_delete — Удалить сохраненную переменную из кэша
  • apc_exists — Проверить, существует ли ключ APC
  • apc_fetch — Выбрать сохраненную переменную из кэша
  • apc_inc — Увеличить сохраненное число
  • apc_load_constants — Загрузить набор констант из кэша
  • apc_sma_info — Получить информацию о выделении разделяемой памяти APC
  • apc_store — Кэшировать переменную в хранилище данных


Кэшировать переменную в хранилище данных

  • « APC
  • apc_bin_dump »
  • PHP Manual
  • APC
  • Кэшировать переменную в хранилище данных

apc_add

(PECL apc >= 3.0.13)

apc_add — Кэшировать переменную в хранилище данных

Описание

bool apc_add ( string $key , mixed $var [, int $ttl = 0 ] )
array apc_add ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Кэширует переменную в хранилище данных, только если она ещё не закеширована.

Замечание: В отличии от многих других механизмов в PHP, переменные, сохраненные с использованием apc_add(), будут сохранены между запросами (пока значение не будет удалено из кэша).

Список параметров

key

Сохраняет переменную, используя это имя. Ключи (key) уникальны для кэша, так, попытка использования apc_add() для сохранения данных с ключом, который уже существует, не перезапишет существующие данные, и вместо этого возвратит FALSE. (Это единственное различие между apc_add() и apc_store().)

var

Переменная для хранения

ttl

Время жизни; хранить var в кэше ttl секунд. После истечения ttl, сохраненная переменная будет удалена из кэша (при следующем запросе). Если никакого значения ttl не указано (или если ttl равно 0), то значение хранится, пока оно не будет удалено из кэша вручную, или не сможет существовать в кэше (очистка, перезапуск, и т.д.).

values

Имена в ключах, переменные в значениях.

Возвращаемые значения

возвращает TRUE в случае успешного добавления и FALSE в случае ошибки. Второй синтаксис возвращает массив с ошибочными ключами.

Примеры

Пример #1 Пример использования apc_add()

<?php
$bar = 'BAR';
apc_add('foo', $bar);
var_dump(apc_fetch('foo'));
echo "\n";
$bar = 'NEVER GETS SET';
apc_add('foo', $bar);
var_dump(apc_fetch('foo'));
echo "\n";
?>

Результат выполнения данного примера:

string(3) "BAR"
string(3) "BAR"

Смотрите также

  • apc_store() - Кэшировать переменную в хранилище данных
  • apc_fetch() - Выбрать сохраненную переменную из кэша
  • apc_delete() - Удалить сохраненную переменную из кэша


Получить бинарный дамп заданных файлов и пользовательских переменных

  • « apc_add
  • apc_bin_dumpfile »
  • PHP Manual
  • APC
  • Получить бинарный дамп заданных файлов и пользовательских переменных

apc_bin_dump

(PECL apc >= 3.1.4)

apc_bin_dump — Получить бинарный дамп заданных файлов и пользовательских переменных

Описание

string apc_bin_dump ([ array $files = NULL [, array $user_vars = NULL ]] )

Возвращает бинарный дамп для заданных файлов и пользовательских переменных из кэша APC. Задайте NULL для файлов или пользовательских переменных для выгрузки всех объектов. Если передать пустой массив, то ничего не будет выгружено.

Список параметров

files

Список файлов. NULL для выгрузки всех записей. Пустой массив, если ничего выгружать не нужно.

user_vars

Пользовательские переменные. NULL для выгрузки всех записей. Пустой массив, если ничего выгружать не нужно.

Возвращаемые значения

Возвращает бинарный дамп для заданных файлов и пользовательских переменных из кэша APC, FALSE если APC не включен, или NULL если встретилась неизвестная ошибка.

Смотрите также

  • apc_bin_dumpfile() - Вывести двоичный дамп кэшированных файлов и пользовательских переменных в файл
  • apc_bin_load() - Загрузить бинарный дамп в файловый/пользовательский кэш APC


Вывести двоичный дамп кэшированных файлов и пользовательских переменных в файл

  • « apc_bin_dump
  • apc_bin_load »
  • PHP Manual
  • APC
  • Вывести двоичный дамп кэшированных файлов и пользовательских переменных в файл

apc_bin_dumpfile

(PECL apc >= 3.1.4)

apc_bin_dumpfile — Вывести двоичный дамп кэшированных файлов и пользовательских переменных в файл

Описание

int apc_bin_dumpfile ( array $files , array $user_vars , string $filename [, int $flags = 0 [, resource $context = NULL ]] )

Выводит двоичный дамп заданных файлов и пользовательских переменных их кэша APC в именованный файл.

Список параметров

files

Имена файлов для дампа.

user_vars

Пользовательские переменные для дампа.

filename

Имя файла, в которые должен быть сохранён дамп.

flags

Флаги, переданные потоку filename. Смотри документацию file_put_contents() для получения детальной информации.

context

Контекст, переданный потоку filename. Смотри документацию file_put_contents() для получения детальной информации.

Возвращаемые значения

Число байт записанных в файл, иначе FALSE, если APC не включено, filename содержит недопустимое имя файла, filename не может быть открыт, файл дампа не может быть завершен (например, на жестком диске не остаточно места), или была обнаружена неизвестная ошибка.

Смотрите также

  • apc_bin_dump() - Получить бинарный дамп заданных файлов и пользовательских переменных
  • apc_bin_load() - Загрузить бинарный дамп в файловый/пользовательский кэш APC


Загрузить бинарный дамп в файловый/пользовательский кэш APC

  • « apc_bin_dumpfile
  • apc_bin_loadfile »
  • PHP Manual
  • APC
  • Загрузить бинарный дамп в файловый/пользовательский кэш APC

apc_bin_load

(PECL apc >= 3.1.4)

apc_bin_load — Загрузить бинарный дамп в файловый/пользовательский кэш APC

Описание

bool apc_bin_load ( string $data [, int $flags = 0 ] )

Загружает заданный бинарный дамп в файловый/пользовательский кэш APC.

Список параметров

data

Бинарный дамп, который должен быть загружен, скорее всего созданный функцией apc_bin_dump().

flags

Одна из констант APC_BIN_VERIFY_CRC32 и APC_BIN_VERIFY_MD5, или их комбинация.

Возвращаемые значения

Возвращает TRUE если бинарный дамп data был успешно загружен, иначе возвратиться FALSE. FALSE возвращеется, если APC не включен, или если data не является допустимым бинарным дампом APC (например, неожиданный размер).

Примеры

Пример #1 Пример использования apc_bin_load()

<?php
$data = apc_bin_dump(NULL, NULL);
apc_bin_load($data, APC_BIN_VERIFY_MD5 | APC_BIN_VERIFY_CRC32);
?>

Смотрите также

  • apc_bin_dump() - Получить бинарный дамп заданных файлов и пользовательских переменных
  • apc_bin_loadfile() - Загрузить бинарный дамп из файла в файловый/пользовательский кэш APC


Загрузить бинарный дамп из файла в файловый/пользовательский кэш APC

  • « apc_bin_load
  • apc_cache_info »
  • PHP Manual
  • APC
  • Загрузить бинарный дамп из файла в файловый/пользовательский кэш APC

apc_bin_loadfile

(PECL apc >= 3.1.4)

apc_bin_loadfile — Загрузить бинарный дамп из файла в файловый/пользовательский кэш APC

Описание

bool apc_bin_loadfile ( string $filename [, resource $context = NULL [, int $flags = 0 ]] )

Загружает заданный бинарный дамп их файла в файловый/пользовательский кэш APC.

Список параметров

filename

Имя файла, содержащего дамп, выгруженный функцией apc_bin_dumpfile().

context

Контекст файлов.

flags

Одна из констант APC_BIN_VERIFY_CRC32 и APC_BIN_VERIFY_MD5, или их комбинация.

Возвращаемые значения

Возвращает TRUE, в случае успеха, иначе FALSE Причины, по которым может вернулься FALSE включает: APC не включен, filename является недопустимым именем файла или пустым, filename не может быть открыт, дамп файла не может быть завершен, или если data не является допустимым бинарным дампом APC (например, неожиданный размер).

Смотрите также

  • apc_bin_dumpfile() - Вывести двоичный дамп кэшированных файлов и пользовательских переменных в файл
  • apc_bin_load() - Загрузить бинарный дамп в файловый/пользовательский кэш APC


Получить кэшируемую информацию и метаданные из хранилища данных APC

  • « apc_bin_loadfile
  • apc_cas »
  • PHP Manual
  • APC
  • Получить кэшируемую информацию и метаданные из хранилища данных APC

apc_cache_info

(PECL apc >= 2.0.0)

apc_cache_info — Получить кэшируемую информацию и метаданные из хранилища данных APC

Описание

array apc_cache_info ([ string $cache_type = "" [, bool $limited = false ]] )

Получает закешированную информацию и метаданные из хранилища данных APC.

Список параметров

cache_type

Если cache_type равен "user", то будет возвращаена информация о пользовательском кэше.

Если cache_type равен "filehits", то будет возвращена информация о том, какие файлы были выданы из кэша байт-кода для текущего запроса. Эта опция должна быть активирована при компиляции с помощью опции --enable-filehits .

Если cache_type неверный или не указан, то будет возвращена информация о системном кэше (закешированые файлы).

limited

Если limited равен TRUE, возвращаемое значение исключит отдельный список записей кэша. Это полезно при попытке оптимизировать вызовы для сбора статистики.

Возвращаемые значения

Массив кэшированных данных (и мета-данные) или FALSE в случае возникновения ошибки

Замечание: apc_cache_info() вызовет предупреждение, если будет неспособна получить данные кэша APC. Обычно это происходит, когда APC не включен.

Список изменений

Версия | Описание
3.0.11 | Был добавлен параметр limited.
3.0.16 | Была добавлена опция "filehits" для параметра cache_type.

Примеры

Пример #1 Пример использования apc_cache_info()

<?php
print_r(apc_cache_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [num_slots] => 2000
    [ttl] => 0
    [num_hits] => 9
    [num_misses] => 3
    [start_time] => 1123958803
    [cache_list] => Array
        (
            [0] => Array
                (
                    [filename] => /path/to/apc_test.php
                    [device] => 29954
                    [inode] => 1130511
                    [type] => file
                    [num_hits] => 1
                    [mtime] => 1123960686
                    [creation_time] => 1123960696
                    [deletion_time] => 0
                    [access_time] => 1123962864
                    [ref_count] => 1
                    [mem_size] => 677
                )
            [1] => Array (...iterates for each cached file)
)

Смотрите также

  • APC configuration directives
  • APCIterator::getTotalSize() - Получить общий размер кэша
  • APCIterator::getTotalHits() - Получить общее число попаданий в кэш
  • APCIterator::getTotalCount() - Получить общее количество


Заменить старое значение на новое

  • « apc_cache_info
  • apc_clear_cache »
  • PHP Manual
  • APC
  • Заменить старое значение на новое

apc_cas

(PECL apc >= 3.1.1)

apc_cas — Заменить старое значение на новое

Описание

bool apc_cas ( string $key , int $old , int $new )

apc_cas() обновляет уже существующее целочисленное значение, если значение old совпадает с текущим, на новое значение, заданное в new.

Список параметров

key

Ключ значение, которое должно быть обновлено.

old

Старое значение (значение, хранящееся в настоящее время).

new

Новое значение после обновления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apc_cas()

<?php
apc_store('foobar', 2);
echo '$foobar = 2', PHP_EOL;
echo '$foobar == 1 ? 2 : 1 = ', (apc_cas('foobar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;
echo '$foobar == 2 ? 1 : 2 = ', (apc_cas('foobar', 2, 1) ? 'ok' : 'fail'), PHP_EOL;

echo '$foobar = ', apc_fetch('foobar'), PHP_EOL;

echo '$f__bar == 1 ? 2 : 1 = ', (apc_cas('f__bar', 1, 2) ? 'ok' : 'fail'), PHP_EOL;

apc_store('perfection', 'xyz');
echo '$perfection == 2 ? 1 : 2 = ', (apc_cas('perfection', 2, 1) ? 'ok' : 'epic fail'), PHP_EOL;

echo '$foobar = ', apc_fetch('foobar'), PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

$foobar = 2
$foobar == 1 ? 2 : 1 = fail
$foobar == 2 ? 1 : 2 = ok
$foobar = 1
$f__bar == 1 ? 2 : 1 = fail
$perfection == 2 ? 1 : 2 = epic fail
$foobar = 1

Смотрите также

  • apc_dec() - Уменьшить сохраненное число
  • apc_store() - Кэшировать переменную в хранилище данных


Очистить кэш APC

  • « apc_cas
  • apc_compile_file »
  • PHP Manual
  • APC
  • Очистить кэш APC

apc_clear_cache

(PECL apc >= 2.0.0)

apc_clear_cache — Очистить кэш APC

Описание

bool apc_clear_cache ([ string $cache_type = "" ] )

Очищает пользовательский/системный кэш.

Список параметров

cache_type

Если cache_type равен "user", то будет очищен пользовательский кэш, в противном случае будет очищен системный кэш (закешированые файлы).

Возвращаемые значения

Всегда возвращает TRUE

Смотрите также

  • apc_cache_info() - Получить кэшируемую информацию и метаданные из хранилища данных APC


Сохранить файл в кэше байт-кода, не обращая внимания на фильтры

  • « apc_clear_cache
  • apc_dec »
  • PHP Manual
  • APC
  • Сохранить файл в кэше байт-кода, не обращая внимания на фильтры

apc_compile_file

(PECL apc >= 3.0.13)

apc_compile_file — Сохранить файл в кэше байт-кода, не обращая внимания на фильтры

Описание

mixed apc_compile_file ( string $filename [, bool $atomic = true ] )

Сохранить файл в кэше байт-кода, не обращая внимания на фильтры.

Список параметров

filename

Полный или относительный путь к файлу PHP, который будет скомпилирован и сохранен в кэше байт-кода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • apc_bin_dumpfile() - Вывести двоичный дамп кэшированных файлов и пользовательских переменных в файл
  • apc_bin_loadfile() - Загрузить бинарный дамп из файла в файловый/пользовательский кэш APC


Уменьшить сохраненное число

  • « apc_compile_file
  • apc_define_constants »
  • PHP Manual
  • APC
  • Уменьшить сохраненное число

apc_dec

(PECL apc >= 3.1.1)

apc_dec — Уменьшить сохраненное число

Описание

int apc_dec ( string $key [, int $step = 1 [, bool &$success ]] )

Уменьшает сохраненное целое значение.

Список параметров

key

Ключ значения, которое должно быть уменьшено.

step

Шаг, или значение для уменьшения.

success

Необязательный параметр, принимающий переменную по ссылке. Если задан, то в в эту переменную будет записано TRUE или FALSE в зависимости от успешности проведенной операции.

Возвращаемые значения

Возвращает текущее значение key, в случае успеха, или FALSE в случае возникновения ошибки

Примеры

Пример #1 Пример использования apc_dec()

<?php
echo "Let's do something with success", PHP_EOL;

apc_store('anumber', 42);

echo apc_fetch('anumber'), PHP_EOL;

echo apc_dec('anumber'), PHP_EOL;
echo apc_dec('anumber', 10), PHP_EOL;
echo apc_dec('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "Now, let's fail", PHP_EOL, PHP_EOL;

apc_store('astring', 'foo');

$ret = apc_dec('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

Результатом выполнения данного примера будет что-то подобное:

Let's do something with success
42
41
31
21
bool(true)

Now, let's fail
bool(false)
bool(false)

Смотрите также

  • apc_inc() - Увеличить сохраненное число


Определить набор констант для извлечения и массового определения

  • « apc_dec
  • apc_delete_file »
  • PHP Manual
  • APC
  • Определить набор констант для извлечения и массового определения

apc_define_constants

(PECL apc >= 3.0.0)

apc_define_constants — Определить набор констант для извлечения и массового определения

Описание

bool apc_define_constants ( string $key , array $constants [, bool $case_sensitive = true ] )

Общеизвестно, что функция define() медленная. Так как основным преимуществом APC является повышение производительности скриптов и приложений, предусмотрен механизм для упорядочения процесса массового определения константю. Тем не менее, эта функция не работает как ожидается.

Для более эффективного решения, попробуйте расширение » hidef из PECL.

Замечание: Для удаления набора сохраненных констант (без полной очистки кеша), можно передать в параметр constants пустой массив. Это эффективно удалит сохраненные значения.

Список параметров

key

Параметр key задает имя набору сохраняемых констант. Этот же key используется для извлечения констант функцией apc_load_constants().

constants

Ассоциативный массив пар constant_name => value. constant_name должен следовать правилам именования нормальных констант. value должно приводиться к скалярному значению.

case_sensitive

По умолчанию, имена констант регистрозависимы. То есть CONSTANT и Constant являются разными значениями. Если этот параметр равен FALSE константы будут объявлены как нечувствительные к регистру.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apc_define_constants()

<?php
$constants = array(
    'ONE'   => 1,
    'TWO'   => 2,
    'THREE' => 3,
);
apc_define_constants('numbers', $constants);
echo ONE, TWO, THREE;
?>

Результат выполнения данного примера:

123

Смотрите также

  • apc_load_constants() - Загрузить набор констант из кэша
  • define() - Определяет именованную константу
  • constant() - Возвращает значение константы
  • Или раздел Константы


Удалить файлы из кэша опкодов

  • « apc_define_constants
  • apc_delete »
  • PHP Manual
  • APC
  • Удалить файлы из кэша опкодов

apc_delete_file

(PECL apc >= 3.1.1)

apc_delete_file — Удалить файлы из кэша опкодов

Описание

mixed apc_delete_file ( mixed $keys )

Удаляет заданные файлы из кэша.

Список параметров

keys

Файлы, которые должны быть удалены. Принимает строку, массив строк, или объект класса APCIterator.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Или если keys является массивом, то пустой массив возвращается, в случае успеха, или возвращается массив неудачных файлов.

Примеры

Пример #1 Пример использования apc_delete_file()

<?php
$filename = 'file.php';

if (apc_compile_file($filename)) {

    if (apc_delete_file($filename)) {
        echo "Successfully deleted file $filename from APC cache.", PHP_EOL;
    }
}

if (apc_compile_file($filename)) {

    if ($good = apc_delete_file(array($filename, 'donotexist.php'))) {
        var_dump($good);
    }
}

$bad = apc_delete_file('donotexist.php');
var_dump($bad);
?>

Результатом выполнения данного примера будет что-то подобное:

Successfully deleted file file.php from APC cache.
[Mon May 24 09:30:33 2010] [apc-warning] Could not stat file donotexist.php, unable to delete from cache. in /tmp/test.php on line 13.
array(1) {
  [0]=>
  string(14) "donotexist.php"
}
[Mon May 24 09:30:33 2010] [apc-warning] Could not stat file donotexist.php, unable to delete from cache. in /tmp/test.php on line 18.
bool(false)

Смотрите также

  • apc_clear_cache() - Очистить кэш APC
  • apc_delete() - Удалить сохраненную переменную из кэша
  • apc_exists() - Проверить, существует ли ключ APC


Удалить сохраненную переменную из кэша

  • « apc_delete_file
  • apc_exists »
  • PHP Manual
  • APC
  • Удалить сохраненную переменную из кэша

apc_delete

(PECL apc >= 3.0.0)

apc_delete — Удалить сохраненную переменную из кэша

Описание

mixed apc_delete ( string $key )

Удаляет сохраненную переменную из кэша.

Список параметров

key

key используется для сохранения значения (apc_store()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apc_delete()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
apc_delete('foo');
// this is obviously useless in this form
?>

Смотрите также

  • apc_store() - Кэшировать переменную в хранилище данных
  • apc_fetch() - Выбрать сохраненную переменную из кэша


Проверить, существует ли ключ APC

  • « apc_delete
  • apc_fetch »
  • PHP Manual
  • APC
  • Проверить, существует ли ключ APC

apc_exists

(PECL apc >= 3.1.4)

apc_exists — Проверить, существует ли ключ APC

Описание

mixed apc_exists ( mixed $keys )

Проверить, существует ли один или несколько ключей APC

Список параметров

keys

Строка, или массив строк, которые содержат ключи.

Возвращаемые значения

Возвращает TRUE, если ключ существует, в противном случае FALSE или, если массив был передан в keys, тогда будет возвращен массив, который содержит все существующие ключи, или пустой массив, если ни одного ключа не существует.

Примеры

Пример #1 Пример использования apc_exists()

<?php
$fruit  = 'apple';
$veggie = 'carrot';

apc_store('foo', $fruit);
apc_store('bar', $veggie);

if (apc_exists('foo')) {
    echo "Foo exists: ";
    echo apc_fetch('foo');
} else {
    echo "Foo does not exist";
}

echo PHP_EOL;
if (apc_exists('baz')) {
    echo "Baz exists.";
} else {
    echo "Baz does not exist";
}

echo PHP_EOL;

$ret = apc_exists(array('foo', 'donotexist', 'bar'));
var_dump($ret);

?>

Результатом выполнения данного примера будет что-то подобное:

Foo exists: apple
Baz does not exist
array(2) {
  ["foo"]=>
  bool(true)
  ["bar"]=>
  bool(true)
}

Смотрите также

  • apc_cache_info() - Получить кэшируемую информацию и метаданные из хранилища данных APC
  • apc_fetch() - Выбрать сохраненную переменную из кэша


Выбрать сохраненную переменную из кэша

  • « apc_exists
  • apc_inc »
  • PHP Manual
  • APC
  • Выбрать сохраненную переменную из кэша

apc_fetch

(PECL apc >= 3.0.0)

apc_fetch — Выбрать сохраненную переменную из кэша

Описание

mixed apc_fetch ( mixed $key [, bool &$success ] )

Выберает сохраненную переменную из кэша.

Список параметров

key

key используемый для хранения значения (apc_store()). Если передан массив, то каждый элемент будет извлечён и возвращён.

success

Устанавливается в TRUE, в случае успеха, или FALSE, в случае неудачи.

Возвращаемые значения

Сохраненная переменная или массив переменных. В случае неудачи FALSE

Примеры

Пример #1 Пример использования apc_fetch()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

Результат выполнения данного примера:

string(3) "BAR"

Список изменений

Версия | Описание
3.0.17 | Был добавлен параметр success.

Смотрите также

  • apc_store() - Кэшировать переменную в хранилище данных
  • apc_delete() - Удалить сохраненную переменную из кэша
  • APCIterator


Увеличить сохраненное число

  • « apc_fetch
  • apc_load_constants »
  • PHP Manual
  • APC
  • Увеличить сохраненное число

apc_inc

(PECL apc >= 3.1.1)

apc_inc — Увеличить сохраненное число

Описание

int apc_inc ( string $key [, int $step = 1 [, bool &$success ]] )

Увеличивает сохраненное число.

Список параметров

key

Ключ значения, которое должно быть увеличено.

step

Шаг, или значение для увеличения.

success

Необязательный параметр, принимающий переменную по ссылке. Если задан, то в в эту переменную будет записано TRUE или FALSE в зависимости от успешности проведенной операции.

Возвращаемые значения

Возвращает текущее значение key, в случае успеха или FALSE в случае возникновения ошибки

Примеры

Пример #1 Пример использования apc_inc()

<?php
echo "Let's do something with success", PHP_EOL;

apc_store('anumber', 42);

echo apc_fetch('anumber'), PHP_EOL;

echo apc_inc('anumber'), PHP_EOL;
echo apc_inc('anumber', 10), PHP_EOL;
echo apc_inc('anumber', 10, $success), PHP_EOL;

var_dump($success);

echo "Now, let's fail", PHP_EOL, PHP_EOL;

apc_store('astring', 'foo');

$ret = apc_inc('astring', 1, $fail);

var_dump($ret);
var_dump($fail);
?>

Результатом выполнения данного примера будет что-то подобное:

42
43
53
63
bool(true)
Now, let's fail

bool(false)
bool(false)

Смотрите также

  • apc_dec() - Уменьшить сохраненное число


Загрузить набор констант из кэша

  • « apc_inc
  • apc_sma_info »
  • PHP Manual
  • APC
  • Загрузить набор констант из кэша

apc_load_constants

(PECL apc >= 3.0.0)

apc_load_constants — Загрузить набор констант из кэша

Описание

bool apc_load_constants ( string $key [, bool $case_sensitive = true ] )

Загружает набор констант из кэша.

Список параметров

key

Имя набора констант (который был сохранён apc_define_constants()), который должен быть получен.

case_sensitive

По умолчанию, константы регистрозависимы. То есть CONSTANT и Constant представляют различные значения. Если этот параметр равен FALSE константы будут объявлены как нечувствительные к регистру.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apc_load_constants()

<?php
$constants = array(
    'ONE'   => 1,
    'TWO'   => 2,
    'THREE' => 3,
);
apc_define_constants('numbers', $constants);
apc_load_constants('numbers');
echo ONE, TWO, THREE;
?>

Результат выполнения данного примера:

123

Смотрите также

  • apc_define_constants() - Определить набор констант для извлечения и массового определения
  • define() - Определяет именованную константу
  • constant() - Возвращает значение константы
  • Или раздел Константы


Получить информацию о выделении разделяемой памяти APC

  • « apc_load_constants
  • apc_store »
  • PHP Manual
  • APC
  • Получить информацию о выделении разделяемой памяти APC

apc_sma_info

(PECL apc >= 2.0.0)

apc_sma_info — Получить информацию о выделении разделяемой памяти APC

Описание

array apc_sma_info ([ bool $limited = false ] )

Получает информацию о выделении разделяемой памяти APC.

Список параметров

limited

Когда, установлен в FALSE (по умолчанию) apc_sma_info() вернет подробную информацию о каждом сегменте.

Возвращаемые значения

Массив данных выделения разделяемой памяти; FALSE в случае неудачи.

Примеры

Пример #1 Пример использования apc_sma_info()

<?php
print_r(apc_sma_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [num_seg] => 1
    [seg_size] => 31457280
    [avail_mem] => 31448408
    [block_lists] => Array
        (
            [0] => Array
                (
                    [0] => Array
                        (
                            [size] => 31448408
                            [offset] => 8864
                        )

                )

        )

)

Смотрите также

  • Директивы конфигурации APC


Кэшировать переменную в хранилище данных

  • « apc_sma_info
  • APCIterator »
  • PHP Manual
  • APC
  • Кэшировать переменную в хранилище данных

apc_store

(PECL apc >= 3.0.0)

apc_store — Кэшировать переменную в хранилище данных

Описание

bool apc_store ( string $key , mixed $var [, int $ttl = 0 ] )
array apc_store ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Кэширует переменную в хранилище данных.

Замечание: В отличии от многих других механизмов в PHP, переменные, сохраненные с использованием apc_add(), будут сохранены между запросами (пока значение не будет удалено из кэша).

Список параметров

key

Сохраняет переменную, используя это имя. Ключи (key) уникальны для кэша, так сохранение второго значения с тем же самым key, перезапишет исходное значение.

var

Переменная для хранения

ttl

Время жизни; хранить var в кэше ttl секунд. После истечения ttl, сохраненная переменная будет удалена из кэша (при следующем запросе). Если никакого значения ttl не указано (или если ttl равно 0), то значение будет хранится, пока оно не будет удалено из кэша вручную, или не сможет существовать в кэше (очистка, перезапуск, и т.д.).

values

Имена в ключах, переменные в значениях.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Второй синтаксис возвращает массив с ошибочными ключами.

Примеры

Пример #1 Пример использования apc_store()

<?php
$bar = 'BAR';
apc_store('foo', $bar);
var_dump(apc_fetch('foo'));
?>

Результат выполнения данного примера:

string(3) "BAR"

Смотрите также

  • apc_add() - Кэшировать переменную в хранилище данных
  • apc_fetch() - Выбрать сохраненную переменную из кэша
  • apc_delete() - Удалить сохраненную переменную из кэша


Класс APCIterator

(PECL apc >= 3.1.1)

Введение

Класс APCIterator облегчает выполнение итераций по большим кэшам APC. Это полезно, поскольку позволяет выполнять итерации по большим кэшам по шагам, захватывая определенное число записей на экземпляр блокировки, таким образом, освобождая кэш от блокировки для других действий, а не удерживая весь кэш для захвата 100 (значение по умолчанию) записей. Кроме того, использование регулярного выражения соответствия, более эффективно, поскольку оно было перемещено на уровень C.

Обзор классов

APCIterator implements Iterator {
/* Методы */
public __construct ( string $cache [, mixed $search = null [, int $format = APC_ITER_ALL [, int $chunk_size = 100 [, int $list = APC_LIST_ACTIVE ]]]] )
public mixed current ( void )
public int getTotalCount ( void )
public int getTotalHits ( void )
public int getTotalSize ( void )
public string key ( void )
public void next ( void )
public void rewind ( void )
public void valid ( void )
}

Содержание

  • APCIterator::__construct — Создать объект итератора APCIterator
  • APCIterator::current — Получить текущий элемент
  • APCIterator::getTotalCount — Получить общее количество
  • APCIterator::getTotalHits — Получить общее число попаданий в кэш
  • APCIterator::getTotalSize — Получить общий размер кэша
  • APCIterator::key — Получить ключ итератора
  • APCIterator::next — Переместить указатель к следующему элементу
  • APCIterator::rewind — Перемотать итератор назад
  • APCIterator::valid — Проверить, является ли текущая позиция итератора допустимой


Создать объект итератора APCIterator

  • « APCIterator
  • APCIterator::current »
  • PHP Manual
  • APCIterator
  • Создать объект итератора APCIterator

APCIterator::__construct

(PECL apc >= 3.1.1)

APCIterator::__construct — Создать объект итератора APCIterator

Описание

public APCIterator::__construct ( string $cache [, mixed $search = null [, int $format = APC_ITER_ALL [, int $chunk_size = 100 [, int $list = APC_LIST_ACTIVE ]]]] )

Создаёт объект APCIterator.

Список параметров

cache

Тип кэша, который должен быть user или file.

search

PCRE регулярное выражение, которое соответствует именам ключей APC, строка для единственного регулярного выражения, или массив регулярных выражений. Или, дополнительно передайте NULL для пропуска поиска.

format

Нужный формат, как заданно одной или несколькими константами APC_ITER_*.

chunk_size

Размер блока. Должен быть больше 0. Значение по умолчанию равно 100.

list

Тип для перечисления. APC_LIST_ACTIVE или APC_LIST_DELETED.

Возвращаемые значения

Объект APCIterator в случае успеха, или NULL, в случае неудачи.

Примеры

Пример #1 Пример использования APCIterator::__construct()

<?php
foreach (new APCIterator('user', '/^counter\./') as $counter) {
    echo "$counter[key]: $counter[value]\n";
    apc_dec($counter['key'], $counter['value']);
}
?>

Смотрите также

  • apc_exists() - Проверить, существует ли ключ APC
  • apc_cache_info() - Получить кэшируемую информацию и метаданные из хранилища данных APC


Получить текущий элемент

  • « APCIterator::__construct
  • APCIterator::getTotalCount »
  • PHP Manual
  • APCIterator
  • Получить текущий элемент

APCIterator::current

(PECL apc >= 3.1.1)

APCIterator::current — Получить текущий элемент

Описание

public mixed APCIterator::current ( void )

Получает текущий элемент из стека APCIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент, в случае успеха, или FALSE если элементов больше нет или в случае неудачи.

Смотрите также

  • APCIterator::next() - Переместить указатель к следующему элементу
  • Iterator::current() - Возвращает текущий элемент


Получить общее количество

  • « APCIterator::current
  • APCIterator::getTotalHits »
  • PHP Manual
  • APCIterator
  • Получить общее количество

APCIterator::getTotalCount

(PECL apc >= 3.1.1)

APCIterator::getTotalCount — Получить общее количество

Описание

public int APCIterator::getTotalCount ( void )

Получает общее количество.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Общее количество.

Смотрите также

  • APCIterator::getTotalHits() - Получить общее число попаданий в кэш
  • APCIterator::getTotalSize() - Получить общий размер кэша
  • apc_cache_info() - Получить кэшируемую информацию и метаданные из хранилища данных APC


Получить общее число попаданий в кэш

  • « APCIterator::getTotalCount
  • APCIterator::getTotalSize »
  • PHP Manual
  • APCIterator
  • Получить общее число попаданий в кэш

APCIterator::getTotalHits

(PECL apc >= 3.1.1)

APCIterator::getTotalHits — Получить общее число попаданий в кэш

Описание

public int APCIterator::getTotalHits ( void )

Получает общее число попаданий в кэш.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число попаданий, в случае успеха, или FALSE, в случае неудачи.

Смотрите также

  • APCIterator::getTotalCount() - Получить общее количество
  • APCIterator::getTotalSize() - Получить общий размер кэша
  • apc_cache_info() - Получить кэшируемую информацию и метаданные из хранилища данных APC


Получить общий размер кэша

  • « APCIterator::getTotalHits
  • APCIterator::key »
  • PHP Manual
  • APCIterator
  • Получить общий размер кэша

APCIterator::getTotalSize

(PECL apc >= 3.1.1)

APCIterator::getTotalSize — Получить общий размер кэша

Описание

public int APCIterator::getTotalSize ( void )

Получает общий размер кэша.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Общий размер кэша.

Смотрите также

  • APCIterator::getTotalCount() - Получить общее количество
  • APCIterator::getTotalHits() - Получить общее число попаданий в кэш
  • apc_cache_info() - Получить кэшируемую информацию и метаданные из хранилища данных APC


Получить ключ итератора

  • « APCIterator::getTotalSize
  • APCIterator::next »
  • PHP Manual
  • APCIterator
  • Получить ключ итератора

APCIterator::key

(PECL apc >= 3.1.1)

APCIterator::key — Получить ключ итератора

Описание

public string APCIterator::key ( void )

Получает текущий ключ итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ключ, в случае успеха, или FALSE, в случае неудачи.

Смотрите также

  • APCIterator::current() - Получить текущий элемент
  • Iterator::key() - Возвращает ключ текущего элемента


Переместить указатель к следующему элементу

  • « APCIterator::key
  • APCIterator::rewind »
  • PHP Manual
  • APCIterator
  • Переместить указатель к следующему элементу

APCIterator::next

(PECL apc >= 3.1.1)

APCIterator::next — Переместить указатель к следующему элементу

Описание

public void APCIterator::next ( void )

Перемещает указатель итератора к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • APCIterator::current() - Получить текущий элемент
  • APCIterator::rewind() - Перемотать итератор назад
  • Iterator::next() - Переходит к следующему элементу


Перемотать итератор назад

  • « APCIterator::next
  • APCIterator::valid »
  • PHP Manual
  • APCIterator
  • Перемотать итератор назад

APCIterator::rewind

(PECL apc >= 3.1.1)

APCIterator::rewind — Перемотать итератор назад

Описание

public void APCIterator::rewind ( void )

Перематывает итератор назад на первый элемент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • APCIterator::next() - Переместить указатель к следующему элементу
  • Iterator::next() - Переходит к следующему элементу


Проверить, является ли текущая позиция итератора допустимой

  • « APCIterator::rewind
  • APCu »
  • PHP Manual
  • APCIterator
  • Проверить, является ли текущая позиция итератора допустимой

APCIterator::valid

(PECL apc >= 3.1.1)

APCIterator::valid — Проверить, является ли текущая позиция итератора допустимой

Описание

public void APCIterator::valid ( void )

Проверяет, является ли текущая позиция итератора допустимой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если текущая позиция итератора является допустимой, в противном случае FALSE.

Смотрите также

  • APCIterator::current() - Получить текущий элемент
  • Iterator::valid() - Проверка корректности позиции


Пользовательский кеш APC

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции APCu
    • apcu_add — Добавить переменную в кеш
    • apcu_cache_info — Извлекает закешированную информацию из хранилища APCu
    • apcu_cas — Заменяет старое значение на новое
    • apcu_clear_cache — Очистить кеш APCu
    • apcu_dec — Уменьшить сохраненное число
    • apcu_delete — Удаляет сохраненное значение из кеша
    • apcu_entry — Автоматическое извлечение или создание записи в кеше
    • apcu_exists — Проверяет, существуют ли записи
    • apcu_fetch — Извлекает из кеша сохраненную переменную
    • apcu_inc — Увеличить сохраненное число
    • apcu_sma_info — Извлекает информацию о выделении разделяемой памяти APCu
    • apcu_store — Кеширует переменную
  • APCUIterator — Класс APCUIterator
    • APCUIterator::__construct — Создает объект итератор класса APCUIterator
    • APCUIterator::current — Получить текущий элемент
    • APCUIterator::getTotalCount — Получить общее количество записей
    • APCUIterator::getTotalHits — Получить общее количество попаданий в кеш
    • APCUIterator::getTotalSize — Общий размер кеша
    • APCUIterator::key — Получить ключ итератора
    • APCUIterator::next — Перемещает указатель на следующий элемент
    • APCUIterator::rewind — Перемотка итератора
    • APCUIterator::valid — Проверяет, корректна ли текущая позиция итератора


Введение

APCu - это APC без кеширования опкода.

Первая версия APCu имеет номер 4.0.0, так как она была клонирована из основной кодовой ветви APC.

PHP 7 поддерживается с версии APCu 5.0.0.

APCu может обеспечить режим совместимости, таким образом, что он может обеспечить замену для соответствующих частей APC.


Установка

Если необходима обратная совместимость с применимыми частями APC, APCu необходимо собирать с опцией --enable-apcu-bc.

Внимание

В PHP 7 существует отдельный модуль (» apc.so) для обеспечения обратной совместимости с APC.

В режиме обратной совместимости, APCu регистрирует применимые функции APC с помощью специальных, обратно-совместимых, протопитов.

В случаях, когда функция APC принимает cache_type, он просто игнорируется и опускается в прототипе функции APCu.

Замечание: В Windows, APCu необходимо, чтобы был задана временная директория и веб-сервер имел право туда писать. Это расширение проверяет переменные окружающей среды в таком порядке: TMP, TEMP, USERPROFILE. Если ни одна из них не задана, то расширение пытается работать с каталогом WINDOWS.

Замечание: Крайне подробная, в техническом плане, документация о реализации этого расширения доступна в » предоставленном разработчиком файле TECHNOTES.

Исходные коды APCu можно найти » тут.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Хотя настройек APCu по умолчанию вполне достаточно для большинства задач, но для серьезных проектов необходимо внимательно изучить следующие настройки.

При конфигурировании APCu необходимо определиться, сколько пямяти отдать в распоряжение APCu. Директива ini-файла, ответственная за эту настройку - apc.shm_size. Внимательно прочитайте нижеследующий раздел.

Как только сервер запущен, скрипт apc.php, поставляемый с этим расширением, должен быть скопирован в "docroot" и права на него должны позволять запустить его через браузер. Этот скрипт предоставляет детальную информацию по работе APCu. Если в PHP разрешен GD, то этот скрипт также будет показывать полезные графики. Конечно же первое, что будет интересно, это то, кеширует ли APC что нибудь. Если APC работает, то значение Cache full count (слева) будет показывать, сколько раз кеш полностью заполнится и был вынужден принудительно удалить записи, к которым не обращались последние apc.ttl секунд. Чем меньше это число - тем лучше сконфигурирован кеш. Если это число постоянно растет, значит APCu приходится постоянно очищать старые записи и значит теряется весь смысл кеширования. Самый лучший способ уменьшить это число - это добавить APCu памяти. Если сделать этого нельзя, то надо перенастроить apc.filters, что бы ограничить набор кешируемых скриптов.

Если APCu собран с поддержкой mmap (Memory Mapping), он будет использовать всего один сегмент памяти, если же наоборот, APC собран с поддержкой SHM (SysV Shared Memory), он будет использовать несколько сегментов. MMAP не имеет максимального ограничения, в отличии от SHM, который ограничивается /proc/sys/kernel/shmmax. Обычно рекомендуется использовать MMAP, потому что он гораздо быстрее выделяет память при перезагрузке веб-сервера, что сказывается на скорости запуска сервера.

Опции конфигурации APCu
Имя | По умолчанию | Меняемо | Список изменений
apc.enabled | "1" | PHP_INI_SYSTEM |
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "32M" | PHP_INI_SYSTEM |
apc.entries_hint | "4096" | PHP_INI_SYSTEM |
apc.ttl | "0" | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.slam_defense | "1" | PHP_INI_SYSTEM |
apc.enable_cli | "0" | PHP_INI_SYSTEM |
apc.use_request_time | "1" | PHP_INI_ALL |
apc.serializer | "default" | PHP_INI_SYSTEM |
apc.rfc1867 | "0" | PHP_INI_SYSTEM |
apc.rfc1867_prefix | "upload_" | PHP_INI_SYSTEM |
apc.rfc1867_name | "APC_UPLOAD_PROGRESS" | PHP_INI_SYSTEM |
apc.rfc1867_freq | "0" | PHP_INI_SYSTEM |
apc.rfc1867_ttl | "3600" | PHP_INI_SYSTEM |
apc.coredump_unmap | "0" | PHP_INI_SYSTEM |
apc.preload_path | NULL | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

apc.enabled boolean

Если установить apc.enabled равным 0, то APCu не будет запущен. Это полезно, когда APCu статически включен в PHP и нет других вариантов, для запрещения его использования. Если APC собран как DSO, можно просто закомментировать строку extension в php.ini.

apc.shm_segments integer

Количество сегментов разделяемой памяти выделенной под кеш. Если APC использовал всю доступную разделяемую память, а apc.shm_size таким большим, как позволяет система, увеличение этого параметра может помочь.

apc.shm_size string

Размер сегмента разделяемой памяти, заданный в короткой нотации (смотри этот FAQ). По умолчанию, некоторые системы (включая большинство вариантов BSD) ограничивают это значение крайне малым значением.

apc.entries_hint integer

Это подсказка о количестве уникальных пользовательских переменных, которые надо кешировать. Установите равным нулю или вообще не указывайте, если не уверены.

apc.ttl integer

Количество секунд, которые запись может лежать в кеше без обращения к ней, прежде чем будт разрешено ее заменить на другую. Установка этого параметра равного нулю может привести к тому, что все место будет забито и новые записи не смогут попасть в кеш. В этом случае, если параметр равен 0, кеш будет полностью очищен. Если же ttl будет больше нуля, то APCu постарается очистить устаревшие записи.

apc.gc_ttl integer

Количество секунд, которые запись может находиться в списке сборщика мусора. Это значение обеспечивает безотказность в случае падения сервера в момент исполнения закешированного файла. Если исполняемый файл был изменен, память, выделенная под кеширование его старой версии, не будет возвращена до истечения этого времени. Установка в ноль отключает этот функционал.

apc.mmap_file_mask string

Если собран с поддержкой MMAP, с помощью опции --enable-mmap, этот параметр должен содержать файловую маску типа mktemp-style для передачи в расширение MMAP, что бы определить, будет ли MMAP использовать файловую систему или разделяемую память. Для файловой системы задайте опцию как /tmp/apc.XXXXXX (ровно 6 X). Для использования shm_open/mmap в стиле POSIX, добавьте .shm в любом месте маски, например /apc.shm.XXXXXX Вы также можете установить его как /dev/zero для использования интерфейса ядра /dev/zero для анонимной памяти mmap. Если не задано, то будет принудительно использоваться анонимный mmap.

apc.slam_defense integer

На очень загруженных серверах, когда вы запускаете веб-сервер, сразу множество процессов будут пытаться закешировать один и тот-же файл одновременно. Этой опцией задается вероятность, в процентах, того, что попытка одного конкретного процесса закешировать данные будет отклонена. Например если apc.slam_defense установить равной 75, то это означает, что вероятность закешировать файл, которого в кеше нет, будет равна 25% и вероятность того, что в кешировании будет отказано равна 75%. Для запрета данного функционала установите этот параметр равным 0.

apc.enable_cli integer

Больше для тестирования и отладки. Эта настройка разрешае APCu для CLI версии PHP. При обычной работе, запускать APCu, который будет создавать, наполнять и уничтожать кеш при каждом запуске сценария в консоли, будет далеко не лучшей идеей. Но в целях тестирования и отладки, можно легко включить APCu для CLI.

apc.serializer string

Указывает APC использовать сторонний сериализатор.

apc.rfc1867 boolean

Перехватчик прогресса загрузки файлов RFC1867 доступен в APC только если он собран с PHP 5.2.0 и выше. Если разрешено, то любой загружаемый на сервер файл, содержащий в форме, перед полем с файлом, поле с именем APC_UPLOAD_PROGRESS, будет вынуждать APC автоматически создавать пользовательскую запись в кеше вида upload_key, где key - это значение поля APC_UPLOAD_PROGRESS.

Помните, что скрытое поле APC_UPLOAD_PROGRESS должно идти до поля с файлом, иначе работа будет некорректной.

Обратите внимание, отслеживание загрузки файла потоконебезопасна, так что если во время первой загрузки случится новая, с тем же ключем, отслеживание первой будет прекращено.

Обратите внимание, что rate будет доступен только когда все текущие загрузки завершены.

Пример #1 Пример использования apc.rfc1867

<?php
print_r(apcu_fetch("upload_$_POST[APC_UPLOAD_PROGRESS]"));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [total] => 1142543
    [current] => 1142543
    [rate] => 1828068.8
    [filename] => test
    [name] => file
    [temp_filename] => /tmp/php8F
    [cancel_upload] => 0
    [done] => 1
)

apc.rfc1867_prefix string

Ключ-префикс для пользовательской записи в кеше создаваемой функционалом rfc1867.

apc.rfc1867_name string

Задает имя для скрытого поля формы, которая будет активировать отслеживание прогресса зугрузки.

apc.rfc1867_freq string

Частота, с которой будет обновляться пользовательская запись в кеше, во время загрузки файла. Может задаваться как в процентах, так и указанием размера в байтах. При желании можно использовать суффиксы "k", "m", и "g" (регистронезависимо) для килобайт, мегабайт и гигабайт соответственно. Если указать ноль, то обновления будут происходить так быстро, как только возможно, но это может замедлить загрузку.

apc.rfc1867_ttl integer

TTL для записей rfc1867.

apc.coredump_unmap boolean

Разрешает APC перехватывать сигналы, такие как SIGSEGV, который записывает coredump, когда подан. Когда эти сигналы будут получены, APC попытается освободить всю разделяемую память, что бы не включать ее в coredump. Эта настройка может увеличить стабильность системы, когда критический сигнал был получен, а APC сконфигурирован на использование большого объема памяти.

Внимание

Эта возможность потенциально опасна. Освобождение сегментов разделяемой памяти при получении критического сигнала может привести к непредсказуемому поведению.

Замечание:

Хотя некоторые ядра предоставляют возможность игнорировать некоторые сегменты разделяемой памяти при записи core-файла, эти реализации могут также игнорировать важные сегменты памяти, такие как Apache scoreboard.

apc.preload_path string

Опционально. Задает путь, который используется APC для загрузки кешированных данных во время запуска.

apc.use_request_time bool

Использовать время старта запроса SAPI для TTL.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

APC_ITER_ALL (integer)
APC_ITER_ATIME (integer)
APC_ITER_CTIME (integer)
APC_ITER_DEVICE (integer)
APC_ITER_DTIME (integer)
APC_ITER_FILENAME (integer)
APC_ITER_INODE (integer)
APC_ITER_KEY (integer)
APC_ITER_MD5 (integer)
APC_ITER_MEM_SIZE (integer)
APC_ITER_MTIME (integer)
APC_ITER_NONE (integer)
APC_ITER_NUM_HITS (integer)
APC_ITER_REFCOUNT (integer)
APC_ITER_TTL (integer)
APC_ITER_TYPE (integer)
APC_ITER_VALUE (integer)
APC_LIST_ACTIVE (integer)
APC_LIST_DELETED (integer)


Функции APCu

Содержание

  • apcu_add — Добавить переменную в кеш
  • apcu_cache_info — Извлекает закешированную информацию из хранилища APCu
  • apcu_cas — Заменяет старое значение на новое
  • apcu_clear_cache — Очистить кеш APCu
  • apcu_dec — Уменьшить сохраненное число
  • apcu_delete — Удаляет сохраненное значение из кеша
  • apcu_entry — Автоматическое извлечение или создание записи в кеше
  • apcu_exists — Проверяет, существуют ли записи
  • apcu_fetch — Извлекает из кеша сохраненную переменную
  • apcu_inc — Увеличить сохраненное число
  • apcu_sma_info — Извлекает информацию о выделении разделяемой памяти APCu
  • apcu_store — Кеширует переменную


Добавить переменную в кеш

  • « Функции APCu
  • apcu_cache_info »
  • PHP Manual
  • Функции APCu
  • Добавить переменную в кеш

apcu_add

(PECL apcu >= 4.0.0)

apcu_add — Добавить переменную в кеш

Описание

bool apcu_add ( string $key , mixed $var [, int $ttl = 0 ] )
array apcu_add ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Добавляет переменную в кеш, если ее там еще нет.

Замечание: В отличие от многих других механизмов 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

Описание

array apcu_cache_info ([ bool $limited = false ] )

Извлекает закешированную информацию из хранилища APCu.

Список параметров

limited

Если limited задан как TRUE, возвращаемое значение не будет содержать индивидуальный список записей кеша. Это полезно при попытках оптимизировать вызовы для получения статистики.

Возвращаемые значения

Массив кешированных данных (и метаданные) или FALSE в случае возникновения ошибки

Замечание: apcu_cache_info() вызывает предупреждение, если невозможно получить данные кеша APC. Обычно это происходит, если APC не разрешен.

Список изменений

Версия | Описание
3.0.11 | Добавлен параметр limited.
3.0.16 | Добавлена опция "filehits" для параметра cache_type.

Примеры

Пример #1 Пример использования apcu_cache_info()

<?php
print_r(apcu_cache_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [num_slots] => 2000
    [ttl] => 0
    [num_hits] => 9
    [num_misses] => 3
    [start_time] => 1123958803
    [cache_list] => Array
        (
            [0] => Array
                (
                    [filename] => /path/to/apcu_test.php
                    [device] => 29954
                    [inode] => 1130511
                    [type] => file
                    [num_hits] => 1
                    [mtime] => 1123960686
                    [creation_time] => 1123960696
                    [deletion_time] => 0
                    [access_time] => 1123962864
                    [ref_count] => 1
                    [mem_size] => 677
                )
            [1] => Array (...итерирует для каждого закешированного файла)
)

Смотрите также

  • Директивы конфигурации APCu
  • APCUIterator::getTotalSize() - Общий размер кеша
  • APCUIterator::getTotalHits() - Получить общее количество попаданий в кеш
  • APCUIterator::getTotalCount() - Получить общее количество записей


Заменяет старое значение на новое

  • « apcu_cache_info
  • apcu_clear_cache »
  • PHP Manual
  • Функции APCu
  • Заменяет старое значение на новое

apcu_cas

(PECL apcu >= 4.0.0)

apcu_cas — Заменяет старое значение на новое

Описание

bool apcu_cas ( string $key , int $old , int $new )

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

Описание

bool apcu_clear_cache ( void )

Очищает кеш APCu.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Всегда возвращает TRUE

Смотрите также

  • apcu_cache_info() - Извлекает закешированную информацию из хранилища APCu


Уменьшить сохраненное число

  • « apcu_clear_cache
  • apcu_delete »
  • PHP Manual
  • Функции APCu
  • Уменьшить сохраненное число

apcu_dec

(PECL apcu >= 4.0.0)

apcu_dec — Уменьшить сохраненное число

Описание

int apcu_dec ( string $key [, int $step = 1 [, bool &$success ]] )

Уменьшает сохраненное число.

Список параметров

key

Ключ значения, которое надо уменьшить.

step

Величина, на которую необходимо уменьшить..

success

Опциональный параметр. Если задан, то в него будет записано логическое згначение TRUE или FALSE в зависимости от успешности операции увеличения.

Возвращаемые значения

Возвращает текущее значение 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_entry »
  • PHP Manual
  • Функции APCu
  • Удаляет сохраненное значение из кеша

apcu_delete

(PECL apcu >= 4.0.0)

apcu_delete — Удаляет сохраненное значение из кеша

Описание

bool apcu_delete ( mixed $key )

Удаляет сохраненное значение из кеша.

Список параметров

key

key можно задать как строку, для удаления одного значения, либо как массив строк, для удаления нескольких значений, либо как объект APCUIterator.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apcu_delete()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);

//Удаляем одну запись.
apcu_delete('foo');

// Удаляем несколько записей.
apcu_delete(['foo', 'bar', 'baz']);

// Используем итератор с регулярным выражением.
apcu_delete(new APCUIterator('#^myprefix_#'));
?>

Смотрите также

  • apcu_store() - Кеширует переменную
  • apcu_fetch() - Извлекает из кеша сохраненную переменную
  • apcu_clear_cache() - Очистить кеш APCu
  • APCUIterator


Автоматическое извлечение или создание записи в кеше

  • « apcu_delete
  • apcu_exists »
  • PHP Manual
  • Функции APCu
  • Автоматическое извлечение или создание записи в кеше

apcu_entry

(PECL apcu >= 5.1.0)

apcu_entry — Автоматическое извлечение или создание записи в кеше

Описание

mixed apcu_entry ( string $key , callable $generator [, int $ttl = 0 ] )

Автоматически пытается найти запись с заданным ключем key. Если не может, то вызывается генератор generator и ему передается ключ key как единственный аргумент. Сгенерированноен значение заносится в кеш с указанным ttl и возвращается.

Замечание: Когда контроль передается apcu_entry(), производится эксклюзивная блокировка кеша, которая снимается после завершения работы apcu_entry(): это приводит к тому, что тело генератора generator помещается в критическую секцию, запрещая двум процессам запустить выполнение одинакового кода конкурентно. К тому же, это приводит к запрету конкурентного запуска любых других функций APCu, так как они будут выставлять ту же блокировку.

Внимание

Единственная функция APCu, которую можно безопасно вызывать в генераторе generator - это apcu_entry().

Список параметров

key

Идентификатор записи

generator

Функция обратного вызова, принимающая один параметр 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 — Проверяет, существуют ли записи

Описание

mixed apcu_exists ( mixed $keys )

Проверяет, существуют ли записи.

Список параметров

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 exists: ";
    echo apcu_fetch('foo');
} else {
    echo "Foo does not exist";
}

echo PHP_EOL;
if (apcu_exists('baz')) {
    echo "Baz exists.";
} else {
    echo "Baz does not exist";
}

echo PHP_EOL;

$ret = apcu_exists(array('foo', 'donotexist', 'bar'));
var_dump($ret);

?>

Результатом выполнения данного примера будет что-то подобное:

Foo exists: apple
Baz does not exist
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 — Извлекает из кеша сохраненную переменную

Описание

mixed apcu_fetch ( mixed $key [, bool &$success ] )

Извлекает из кеша сохраненную переменную.

Список параметров

key

Ключ key, под которым запись была сохранена в кеш (с помощью apcu_store()). Если задан массив, то будет извлечен и возвращен каждый элемент.

success

Устанавливается в TRUE в случае успеха и FALSE в противном случае.

Возвращаемые значения

Сохраненная переменная либо массив; FALSE в обратном случае

Примеры

Пример #1 Пример использования apcu_fetch()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

Результат выполнения данного примера:

string(3) "BAR"

Список изменений

Версия | Описание
3.0.17 | Добавлен параметр success.

Смотрите также

  • apcu_store() - Кеширует переменную
  • apcu_delete() - Удаляет сохраненное значение из кеша
  • APCUIterator


Увеличить сохраненное число

  • « apcu_fetch
  • apcu_sma_info »
  • PHP Manual
  • Функции APCu
  • Увеличить сохраненное число

apcu_inc

(PECL apcu >= 4.0.0)

apcu_inc — Увеличить сохраненное число

Описание

int apcu_inc ( string $key [, int $step = 1 [, bool &$success ]] )

Увеличивает сохраненное число.

Список параметров

key

Ключ значения, которое надо увеличить.

step

Величина, на которую необходимо увеличить.

success

Опциональный параметр. Если задан, то в него будет записано логическое згначение TRUE или FALSE в зависимости от успешности операции увеличения.

Возвращаемые значения

Возвращает текущее значение 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

  • « apcu_inc
  • apcu_store »
  • PHP Manual
  • Функции APCu
  • Извлекает информацию о выделении разделяемой памяти APCu

apcu_sma_info

(PECL apcu >= 4.0.0)

apcu_sma_info — Извлекает информацию о выделении разделяемой памяти APCu

Описание

array apcu_sma_info ([ bool $limited = 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 — Кеширует переменную

Описание

bool apcu_store ( string $key , mixed $var [, int $ttl = 0 ] )
array apcu_store ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Кеширует переменную.

Замечание: В отличие от многих других механизмов PHP, переменные, сохраненные apcu_store(), сохраняются между запросами, пока их не удалят из кеша.

Список параметров

key

Имя, под которым будет сохранена переменная. Значение key является уникальным для кеша, так что попытка сохранить запись с ключем key, который уже существует, приведет к ее перезаписи.

var

Переменная для сохранения

ttl

Время жизни; переменная var будет храниться в течении ttl секунд. Как только ttl секунд пройдут, переменная будет удалена из кеша (при следующем запросе). Если параметр ttl не задан (или ttl задан как 0), значение будет храниться пока не будет удалено явно, либо по технической причине (очистка кеша, перезапуск и т.д.)

values

Имена в ключах, переменные в значениях.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Второй тип синтаксиса возвращает массив с ключами, по которым произошла ошибка.

Примеры

Пример #1 Пример использования apcu_store()

<?php
$bar = 'BAR';
apcu_store('foo', $bar);
var_dump(apcu_fetch('foo'));
?>

Результат выполнения данного примера:

string(3) "BAR"

Смотрите также

  • apcu_add() - Добавить переменную в кеш
  • apcu_fetch() - Извлекает из кеша сохраненную переменную
  • apcu_delete() - Удаляет сохраненное значение из кеша


Класс APCUIterator

(PECL apcu >= 5.0.0)

Введение

Класс APCUIterator позволяет с легкостью итерировать большой APCu кеш. Это полезно, так как позволяет перебирать большой кеш по шагам, забирая заданное количество записей используя одну блокировку, позволяя другим активностям использовать блокировку, а не задерживать весь кеш для чтения ста (по умолчанию) записей. Также, использование регулярных выражений более эффективно, так как выполняется на уровне скомпилированного кода C.

Обзор классов

APCUIterator implements Iterator {
/* Методы */
public __construct ([ mixed $search = null [, int $format = APCU_ITER_ALL [, int $chunk_size = 100 [, int $list = APCU_LIST_ACTIVE ]]]] )
public mixed current ( void )
public int getTotalCount ( void )
public int getTotalHits ( void )
public int getTotalSize ( void )
public string key ( void )
public void next ( void )
public void rewind ( void )
public void valid ( void )
}

Содержание

  • APCUIterator::__construct — Создает объект итератор класса APCUIterator
  • APCUIterator::current — Получить текущий элемент
  • APCUIterator::getTotalCount — Получить общее количество записей
  • APCUIterator::getTotalHits — Получить общее количество попаданий в кеш
  • APCUIterator::getTotalSize — Общий размер кеша
  • APCUIterator::key — Получить ключ итератора
  • APCUIterator::next — Перемещает указатель на следующий элемент
  • APCUIterator::rewind — Перемотка итератора
  • APCUIterator::valid — Проверяет, корректна ли текущая позиция итератора


Создает объект итератор класса APCUIterator

  • « APCUIterator
  • APCUIterator::current »
  • PHP Manual
  • APCUIterator
  • Создает объект итератор класса APCUIterator

APCUIterator::__construct

(PECL apcu >= 5.0.0)

APCUIterator::__construct — Создает объект итератор класса APCUIterator

Описание

public APCUIterator::__construct ([ mixed $search = null [, int $format = APCU_ITER_ALL [, int $chunk_size = 100 [, int $list = APCU_LIST_ACTIVE ]]]] )

Создает объект APCUIterator.

Список параметров

search

Регулярное выражени PCRE, с которым будут сравниваться ключи APC, можно задать как одну строку, так и массив строк. Также можно задать NULL, если поиск не нужен.

format

Формат, заданный одной из констант APCU_ITER_*.

chunk_size

Размер блока данных. Должно быть больше 0. По умолчанию 100.

list

Тип списка. Задается константами APCU_LIST_ACTIVE или APCU_LIST_DELETED.

Возвращаемые значения

Объект APCUIterator в случае успеха или NULL в противном случае.

Примеры

Пример #1 Пример использования APCUIterator::__construct()

<?php
foreach (new APCUIterator('/^counter\./') as $counter) {
    echo "$counter[key]: $counter[value]\n";
    apc_dec($counter['key'], $counter['value']);
}
?>

Смотрите также

  • apcu_exists() - Проверяет, существуют ли записи
  • apcu_cache_info() - Извлекает закешированную информацию из хранилища APCu


Получить текущий элемент

  • « APCUIterator::__construct
  • APCUIterator::getTotalCount »
  • PHP Manual
  • APCUIterator
  • Получить текущий элемент

APCUIterator::current

(PECL apcu >= 5.0.0)

APCUIterator::current — Получить текущий элемент

Описание

public mixed APCUIterator::current ( void )

Получает текущий элемент стека APCUIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успеха возвращает текущий элемент либо FALSE, если элементов больше нет или произошла ошибка.

Смотрите также

  • APCUIterator::next() - Перемещает указатель на следующий элемент
  • Iterator::current() - Возвращает текущий элемент


Получить общее количество записей

  • « APCUIterator::current
  • APCUIterator::getTotalHits »
  • PHP Manual
  • APCUIterator
  • Получить общее количество записей

APCUIterator::getTotalCount

(PECL apcu >= 5.0.0)

APCUIterator::getTotalCount — Получить общее количество записей

Описание

public int APCUIterator::getTotalCount ( void )

Получить общее количество записей.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Общее количество записей.

Смотрите также

  • APCUIterator::getTotalHits() - Получить общее количество попаданий в кеш
  • APCUIterator::getTotalSize() - Общий размер кеша
  • apc_cache_info() - Получить кэшируемую информацию и метаданные из хранилища данных APC


Получить общее количество попаданий в кеш

  • « APCUIterator::getTotalCount
  • APCUIterator::getTotalSize »
  • PHP Manual
  • APCUIterator
  • Получить общее количество попаданий в кеш

APCUIterator::getTotalHits

(PECL apcu >= 5.0.0)

APCUIterator::getTotalHits — Получить общее количество попаданий в кеш

Описание

public int APCUIterator::getTotalHits ( void )

Получить общее количество попаданий в кеш.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество попаданий в случае успеха или FALSE.

Смотрите также

  • APCUIterator::getTotalCount() - Получить общее количество записей
  • APCUIterator::getTotalSize() - Общий размер кеша
  • apc_cache_info() - Получить кэшируемую информацию и метаданные из хранилища данных APC


Общий размер кеша

  • « APCUIterator::getTotalHits
  • APCUIterator::key »
  • PHP Manual
  • APCUIterator
  • Общий размер кеша

APCUIterator::getTotalSize

(PECL apcu >= 5.0.0)

APCUIterator::getTotalSize — Общий размер кеша

Описание

public int APCUIterator::getTotalSize ( void )

Возвращает общий размер кеша.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Общий размер кеша.

Смотрите также

  • APCUIterator::getTotalCount() - Получить общее количество записей
  • APCUIterator::getTotalHits() - Получить общее количество попаданий в кеш
  • apc_cache_info() - Получить кэшируемую информацию и метаданные из хранилища данных APC


Получить ключ итератора

  • « APCUIterator::getTotalSize
  • APCUIterator::next »
  • PHP Manual
  • APCUIterator
  • Получить ключ итератора

APCUIterator::key

(PECL apcu >= 5.0.0)

APCUIterator::key — Получить ключ итератора

Описание

public string APCUIterator::key ( void )

Возвращает текущий ключ итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

В случае успеха возвращает ключ, а в случае ошибки FALSE.

Смотрите также

  • APCUIterator::current() - Получить текущий элемент
  • Iterator::key() - Возвращает ключ текущего элемента


Перемещает указатель на следующий элемент

  • « APCUIterator::key
  • APCUIterator::rewind »
  • PHP Manual
  • APCUIterator
  • Перемещает указатель на следующий элемент

APCUIterator::next

(PECL apcu >= 5.0.0)

APCUIterator::next — Перемещает указатель на следующий элемент

Описание

public void APCUIterator::next ( void )

Перемещает указатель на следующий элемент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 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 void APCUIterator::rewind ( void )

Устанавливает указатель итератора на первый элемент.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • APCUIterator::next() - Перемещает указатель на следующий элемент
  • Iterator::next() - Переходит к следующему элементу


Проверяет, корректна ли текущая позиция итератора

  • « APCUIterator::rewind
  • APD »
  • PHP Manual
  • APCUIterator
  • Проверяет, корректна ли текущая позиция итератора

APCUIterator::valid

(PECL apcu >= 5.0.0)

APCUIterator::valid — Проверяет, корректна ли текущая позиция итератора

Описание

public void APCUIterator::valid ( void )

Проверяет, корректна ли текущая позиция итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE или FALSE, в зависимости от того, корректна ли позиция.

Смотрите также

  • APCUIterator::current() - Получить текущий элемент
  • Iterator::valid() - Проверка корректности позиции


Расширенный отладчик PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Сборка на Win32
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Использование PHP-APD в скриптах
  • APD Функции
    • apd_breakpoint — Останавливает интерпретатор и ожидает символ возврата каретки (CR) из сокета
    • apd_callstack — Возвращает текущий вызов стека в виде массива
    • apd_clunk — Выводит предупреждение и стек вызова
    • apd_continue — Перезапуск интерпретатора
    • apd_croak — Бросить ошибку, стек вызова и выйти
    • apd_dump_function_table — Выводит текущую таблицу функций
    • apd_dump_persistent_resources — Вовзращает список всех постоянных ресурсов в виде массива
    • apd_dump_regular_resources — Вовзращает список всех обычных ресурсов в виде массива
    • apd_echo — Вывод в отладочный сокет
    • apd_get_active_symbols — Получить массив с именами переменных в локальном скопе
    • apd_set_pprof_trace — Старт отладки
    • apd_set_session_trace_socket — Старт удаленной отладки
    • apd_set_session_trace — Старт отладки
    • apd_set_session — Изменяет, либо устанавливает текущий уровень отладки
    • override_function — Переопределение встроенных функций
    • rename_function — Переименовать функцию в глобальной таблице функций


Введение

APD - это расширенный отладчик PHP. Он был написан для обеспечения PHP возможностями профилирования и отладки, а также обеспечения возможности вывода полной трассировки стека. APD поддерживает интерактивную отладку, но по умолчанию записывает данные в файлы трассировки. Он также предлагает ведение журнала событий с возможностью варьирования уровней детализации (включая вызовы функций, переданных аргументов, таймингов, и т.д.) которые могут быть включены или отключены для конкретных скриптов.

Предостережение

APD является Zend расширением, изменяющим схему вызовов функции PHP дескриптора, и также может или не может быть совместим с другими расширениями Zend (к примеру, с Zend Optimizer).


Установка и настройка

Содержание

  • Требования
  • Установка
  • Сборка на Win32
  • Настройка во время выполнения
  • Типы ресурсов


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/apd.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Добавьте следующие строки в INI-файл:

zend_extension = /absolute/path/to/apd.so
apd.dumpdir = /absolute/path/to/trace/directory
apd.statement_tracing = 0

В зависимости от сборки PHP, директива zend_extension может быть одной из следующих:

zend_extension              (non ZTS, non debug build)
zend_extension_ts           (    ZTS, non debug build)
zend_extension_debug        (non ZTS,     debug build)
zend_extension_debug_ts     (    ZTS,     debug build)


Сборка на Win32

Для сборки APD под Windows вам нужна рабочая скомпилированная PHP среда, как описано на http://php.net/ - в основном это требует наличия Microsoft Visual C++, win32build.zip, bison/flex и грамотного специалиста. Также необходимо убедиться в том, что adp.dsp имеет DOS конвертацию конца строк, если конвертация конца строк Unix, то Microsoft Visual C++ сообщит об этом.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации APD
Имя | По умолчанию | Меняемо | Список изменений
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement_tracing | "0" | PHP_INI_ALL | Доступно начиная с apd 0.9.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

apd.dumpdir string

Задает каталог, в который APD записывает дамп-файлы профилей. Можно указать абсолютный путь или относительный.

Можно указать другой каталог в качестве аргумента apd_set_pprof_trace().

apd.statement_tracing boolean

Указывает будет ли или нет проводиться построковая трассировка. Включение этого параметра (если он равен 1) будет влиять на производительность приложения.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы APD
Константа | Значение | Описание
FUNCTION_TRACE (integer) | 1 |
ARGS_TRACE (integer) | 2 |
ASSIGNMENT_TRACE (integer) | 4 |
STATEMENT_TRACE (integer) | 8 |
MEMORY_TRACE (integer) | 16 |
TIMING_TRACE (integer) | 32 |
SUMMARY_TRACE (integer) | 64 |
ERROR_TRACE (integer) | 128 |
PROF_TRACE (integer) | 256 |
APD_VERSION (string) | пример: 1.0.2-dev |


  • « Предопределенные константы
  • Использование PHP-APD в скриптах »
  • PHP Manual
  • APD
  • Примеры

Примеры

Содержание

  • Использование PHP-APD в скриптах


Использование PHP-APD в скриптах

  1. В первой строке скрипта вызывается apd_set_pprof_trace()(), которая запускает трассировку:

    <?php
    apd_set_pprof_trace    ();
    ?>

    Эта строка может быть добавлена в любом месте скрипта, но если трассировка не инициирована в начала скрипта, то данные, которые могли бы привести вас к узким местам в потерях производительности, будут утеряны.

  2. Выходной дамп после запуска скрипта будет записан в apd.dumpdir/pprof_pid.ext.

    Подсказка

    Если используется CGI версия PHP, то необходимо добавить флаг '-e' включающий расширенную информацию для корректной работы APD. Например: php -e -f script.php

  3. Для отображения форматированных данных профиля, необходимо выполнить команду pprofp с сортировкой и другими выбранными параметрами отображения. Форматированный вывод будет выглядеть примерно так:

    bash-2.05b$ pprofp -R /tmp/pprof.22141.0

Trace for /home/dan/testapd.php
Total Elapsed Time = 0.00
Total System Time  = 0.00
Total User Time    = 0.00

Real         User        System             secs/    cumm
%Time (excl/cumm)  (excl/cumm)  (excl/cumm) Calls    call    s/call  Memory Usage Name
--------------------------------------------------------------------------------------
100.0 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0000   0.0009            0 main
56.9 0.00 0.00  0.00 0.00  0.00 0.00     1  0.0005   0.0005            0 apd_set_pprof_trace
28.0 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 preg_replace
14.3 0.00 0.00  0.00 0.00  0.00 0.00    10  0.0000   0.0000            0 str_replace

    Опция -R используемая этом примере сортирует профильную таблицу по количеству реального времени, которое скрипт потратил на выполнение каждой функции. Поле "cumm call" показывает сколько обращений было совершено к каждой функции, а "s/call" поле показывает сколько в среднем секунд было затрачено на каждое обращение.

  4. Для генерации стека вызовов в файл профиля KCacheGrind анализируемого приложения, требуется вызов команды pprof2calltree.


APD Функции

Контактная информация

Все замечания, исправления, дополнения и предложения можно писать на адрес электронной почты » apd@mail.communityconnect.com. Любая помощь приветствуется.

Содержание

  • apd_breakpoint — Останавливает интерпретатор и ожидает символ возврата каретки (CR) из сокета
  • apd_callstack — Возвращает текущий вызов стека в виде массива
  • apd_clunk — Выводит предупреждение и стек вызова
  • apd_continue — Перезапуск интерпретатора
  • apd_croak — Бросить ошибку, стек вызова и выйти
  • apd_dump_function_table — Выводит текущую таблицу функций
  • apd_dump_persistent_resources — Вовзращает список всех постоянных ресурсов в виде массива
  • apd_dump_regular_resources — Вовзращает список всех обычных ресурсов в виде массива
  • apd_echo — Вывод в отладочный сокет
  • apd_get_active_symbols — Получить массив с именами переменных в локальном скопе
  • apd_set_pprof_trace — Старт отладки
  • apd_set_session_trace_socket — Старт удаленной отладки
  • apd_set_session_trace — Старт отладки
  • apd_set_session — Изменяет, либо устанавливает текущий уровень отладки
  • override_function — Переопределение встроенных функций
  • rename_function — Переименовать функцию в глобальной таблице функций


Останавливает интерпретатор и ожидает символ возврата каретки (CR) из сокета

  • « APD Функции
  • apd_callstack »
  • PHP Manual
  • APD Функции
  • Останавливает интерпретатор и ожидает символ возврата каретки (CR) из сокета

apd_breakpoint

(PECL apd >= 0.2)

apd_breakpoint — Останавливает интерпретатор и ожидает символ возврата каретки (CR) из сокета

Описание

bool apd_breakpoint ( int $debug_level )

Это может использоваться для остановки ранее запущенного вами скрипта и ожидать ответ с сокета. Для продолжения программы необходимо отправить "Enter" (пустая строка) или ввести команду php на исполнение.

Список параметров

debug_level

Целое число, полученное сложением констант XXX_TRACE.

Не рекомендуется использовать константу MEMORY_TRACE. Это очень медленно и может давать неточные результаты. ASSIGNMENT_TRACE еще не реализовано.

Для включения всех видов отслеживания функций (TIMING, FUNCTIONS, ARGS SUMMARY (наподобие strace -c)) используйте значение 99

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Typical session using tcplisten

bash#tcplisten localhost 7777

APD - Advanced PHP Debugger Trace File
---------------------------------------------------------------------------
Process Pid (6118)
Trace Begun at Sun Mar 10 23:13:12 2002
---------------------------------------------------------------------------
(  0.000000): apd_set_session_trace called at /home/alan/Projects/project2/test.
php:5
(  0.074824): apd_set_session_trace_socket() at /home/alan/Projects/project2/tes
t.php:5 returned.  Elapsed (0.074824)
(  0.074918): apd_breakpoint() /home/alan/Projects/project2/test.php:7
              ++ argv[0] $(??) = 9
apd_breakpoint() at /home/alan/Projects/project2/test.php:7 returned.  Elapsed (
-2089521468.1073275368)
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:8
>\n
statement: /home/alan/Projects/project2/test.php:10
>apd_echo($i);
EXEC: apd_echo($i);
0
>apd_echo(serialize(apd_get_active_symbols()));
EXEC:  apd_echo(serialize(apd_get_active_symbols()));
a:47:{i:0;s:4:"PWD";i:1;s:10:"COLORFGBG";i:2;s:11:"XAUTHORITY";i:3;s:14:"
COLORTERM_BCE";i:4;s:9:"WINDOWID";i:5;s:14:"ETERM_VERSION";i:6;s:16:"SE
SSION_MANAGER";i:7;s:4:"PS1";i:8;s:11:"GDMSESSION";i:9;s:5:"USER";i:10;s:5:"
MAIL";i:11;s:7:"OLDPWD";i:12;s:5:"LANG";i:13;s:10:"COLORTERM";i:14;s:8:"DISP
LAY";i:15;s:8:"LOGNAME";i:16;s:6:"
>apd_echo(system('ls /home/mydir'));
........
>apd_continue(0);


Возвращает текущий вызов стека в виде массива

  • « apd_breakpoint
  • apd_clunk »
  • PHP Manual
  • APD Функции
  • Возвращает текущий вызов стека в виде массива

apd_callstack

(PECL apd 0.2-0.4)

apd_callstack — Возвращает текущий вызов стека в виде массива

Описание

array apd_callstack ( void )

Возвращает текущий вызов стека в виде массива

Возвращаемые значения

Массив содержащий текущий вызов стека.

Примеры

Пример #1 Пример использования apd_callstack()

<?php
print_r(apd_callstack());
?>


Выводит предупреждение и стек вызова

  • « apd_callstack
  • apd_continue »
  • PHP Manual
  • APD Функции
  • Выводит предупреждение и стек вызова

apd_clunk

(PECL apd 0.2-0.4)

apd_clunk — Выводит предупреждение и стек вызова

Описание

void apd_clunk ( string $warning [, string $delimiter = "<BR />" ] )

В поведении аналогичен Carp::cluck в PERL. Выводит предупреждение и стек вызова.

Список параметров

warning

Предупреждение для вывода.

delimiter

Разделитель. По умолчанию <BR />.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования apd_clunk()

<?php
apd_clunk("Some Warning", "<br/>");
?>

Смотрите также

  • apd_croak() - Бросить ошибку, стек вызова и выйти


Перезапуск интерпретатора

  • « apd_clunk
  • apd_croak »
  • PHP Manual
  • APD Функции
  • Перезапуск интерпретатора

apd_continue

(PECL apd >= 0.2)

apd_continue — Перезапуск интерпретатора

Описание

bool apd_continue ( int $debug_level )

Обычно посылается через сокет для перезапуска интерпретатора.

Список параметров

debug_level

Целое число, полученное сложением констант XXX_TRACE.

Не рекомендуется использовать константу MEMORY_TRACE. Это очень медленно и может давать неточные результаты. ASSIGNMENT_TRACE еще не реализовано.

Для включения всех видов отслеживания функций (TIMING, FUNCTIONS, ARGS SUMMARY (наподобие strace -c)) используйте значение 99

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apd_continue()

<?php
apd_continue(0);
?>


Бросить ошибку, стек вызова и выйти

  • « apd_continue
  • apd_dump_function_table »
  • PHP Manual
  • APD Функции
  • Бросить ошибку, стек вызова и выйти

apd_croak

(PECL apd 0.2-0.4)

apd_croak — Бросить ошибку, стек вызова и выйти

Описание

void apd_croak ( string $warning [, string $delimiter = "<BR />" ] )

Ведет себя как оператор Perl Carp::croak. Бросает ошибку, выводит стек вызовов и завершает работу.

Список параметров

warning

Текст предупреждения.

delimiter

разделитель. По умолчанию <BR />.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования apd_croak()

<?php
apd_croak("Some Warning","<P>");
?>

Смотрите также

  • apd_clunk() - Выводит предупреждение и стек вызова


Выводит текущую таблицу функций

  • « apd_croak
  • apd_dump_persistent_resources »
  • PHP Manual
  • APD Функции
  • Выводит текущую таблицу функций

apd_dump_function_table

(Unknown)

apd_dump_function_table — Выводит текущую таблицу функций

Описание

void apd_dump_function_table ( void )

Выводит текущую таблицу функций.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования apd_dump_function_table()

<?php
apd_dump_function_table();
?>


Вовзращает список всех постоянных ресурсов в виде массива

  • « apd_dump_function_table
  • apd_dump_regular_resources »
  • PHP Manual
  • APD Функции
  • Вовзращает список всех постоянных ресурсов в виде массива

apd_dump_persistent_resources

(PECL apd 0.2-0.4)

apd_dump_persistent_resources — Вовзращает список всех постоянных ресурсов в виде массива

Описание

array apd_dump_persistent_resources ( void )

Вовзращает список всех постоянных ресурсов в виде массива.

Возвращаемые значения

Массив содержащий список текущих постоянных ресурсов.

Примеры

Пример #1 Пример использования apd_dump_persistent_resources()

<?php
print_r(apd_dump_persistent_resources());
?>

Смотрите также

  • apd_dump_regular_resources() - Вовзращает список всех обычных ресурсов в виде массива


Вовзращает список всех обычных ресурсов в виде массива

  • « apd_dump_persistent_resources
  • apd_echo »
  • PHP Manual
  • APD Функции
  • Вовзращает список всех обычных ресурсов в виде массива

apd_dump_regular_resources

(PECL apd 0.2-0.4)

apd_dump_regular_resources — Вовзращает список всех обычных ресурсов в виде массива

Описание

array apd_dump_regular_resources ( void )

Вовзращает список всех обычных ресурсов в виде массива.

Возвращаемые значения

Массив содержащий список текущих обычных ресурсов.

Примеры

Пример #1 Пример использования apd_dump_regular_resources()

<?php
print_r(apd_dump_regular_resources());
?>

Смотрите также

  • apd_dump_persistent_resources() - Вовзращает список всех постоянных ресурсов в виде массива


Вывод в отладочный сокет

  • « apd_dump_regular_resources
  • apd_get_active_symbols »
  • PHP Manual
  • APD Функции
  • Вывод в отладочный сокет

apd_echo

(PECL apd >= 0.2)

apd_echo — Вывод в отладочный сокет

Описание

bool apd_echo ( string $output )

Обычно посылается в сокет для запроса информации о работающем скрипте.

Список параметров

output

Отслеживаемая переменная.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apd_echo()

<?php
apd_echo($i);
?>


Получить массив с именами переменных в локальном скопе

  • « apd_echo
  • apd_set_pprof_trace »
  • PHP Manual
  • APD Функции
  • Получить массив с именами переменных в локальном скопе

apd_get_active_symbols

(PECL apd 0.2)

apd_get_active_symbols — Получить массив с именами переменных в локальном скопе

Описание

array apd_get_active_symbols ( void )

Возвращает массив с именами переменных в локальном скопе (не значения, а имена).

Возвращаемые значения

Многомерный массив со всеми переменными.

Примеры

Пример #1 Пример использования apd_get_active_symbols()

<?php
apd_echo(apd_get_active_symbols());
?>


Старт отладки

  • « apd_get_active_symbols
  • apd_set_session_trace_socket »
  • PHP Manual
  • APD Функции
  • Старт отладки

apd_set_pprof_trace

(PECL apd >= 0.2)

apd_set_pprof_trace — Старт отладки

Описание

string apd_set_pprof_trace ([ string $dump_directory = ini_get("apd.dumpdir") [, string $fragment = "pprof" ]] )

Старт отладки pprof_{process_id} в заданной директории.

Список параметров

dump_directory

Директория, в которой будет создан дамп профайла. Если не задано, то будет использовано значение параметра apd.dumpdir из php.ini.

fragment

Возвращаемые значения

Возвращает путь целевого файла.

Примеры

Пример #1 Пример использования apd_set_pprof_trace()

<?php
apd_set_pprof_trace();
?>

Смотрите также

  • apd_set_session_trace() - Старт отладки


Старт удаленной отладки

  • « apd_set_pprof_trace
  • apd_set_session_trace »
  • PHP Manual
  • APD Функции
  • Старт удаленной отладки

apd_set_session_trace_socket

(PECL apd >= 0.2)

apd_set_session_trace_socket — Старт удаленной отладки

Описание

bool apd_set_session_trace_socket ( string $tcp_server , int $socket_type , int $port , int $debug_level )

Соединяется с указанным tcp_server (например. tcplisten) и посылает отладочную информацию в сокет.

Список параметров

tcp_server

IP или доменный сокет Unix (как бы файл) TCP сервера.

socket_type

Может быть AF_UNIX для сокетов на базе файлов, или APD_AF_INET для стандартного tcp/ip.

port

Вы можете использовать любой порт, но рекомендуется использовать большие числа, так как чем ниже число, тем больше вероятность, что его уже кто-то использует.

debug_level

Целое число, полученное сложением констант XXX_TRACE.

Не рекомендуется использовать константу MEMORY_TRACE. Это очень медленно и может давать неточные результаты. ASSIGNMENT_TRACE еще не реализовано.

Для включения всех видов отслеживания функций (TIMING, FUNCTIONS, ARGS SUMMARY (наподобие strace -c)) используйте значение 99

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apd_set_session_trace_socket()

<?php
  apd_set_session_trace_socket("127.0.0.1",APD_AF_INET,7112,0);
?>


Старт отладки

  • « apd_set_session_trace_socket
  • apd_set_session »
  • PHP Manual
  • APD Функции
  • Старт отладки

apd_set_session_trace

(PECL apd 0.2-0.4)

apd_set_session_trace — Старт отладки

Описание

void apd_set_session_trace ( int $debug_level [, string $dump_directory = ini_get("apd.dumpdir") ] )

Старт отладки apd_dump_{process_id} в заданной директории.

Список параметров

debug_level

Целое число, полученное сложением констант XXX_TRACE.

Не рекомендуется использовать константу MEMORY_TRACE. Это очень медленно и может давать неточные результаты. ASSIGNMENT_TRACE еще не реализовано.

Для включения всех видов отслеживания функций (TIMING, FUNCTIONS, ARGS SUMMARY (наподобие strace -c)) используйте значение 99

dump_directory

Директория, в которой будет создан дамп профайла. Если не задано, то будет использовано значение параметра apd.dumpdir из php.ini.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования apd_set_session_trace()

<?php
apd_set_session_trace(99);
?>


Изменяет, либо устанавливает текущий уровень отладки

  • « apd_set_session_trace
  • override_function »
  • PHP Manual
  • APD Функции
  • Изменяет, либо устанавливает текущий уровень отладки

apd_set_session

(PECL apd 0.2-0.4)

apd_set_session — Изменяет, либо устанавливает текущий уровень отладки

Описание

void apd_set_session ( int $debug_level )

Вы можете изменить уровень отладки в разных частях своего приложения.

Список параметров

debug_level

Целое число, полученное сложением констант XXX_TRACE.

Не рекомендуется использовать константу MEMORY_TRACE. Это очень медленно и может давать неточные результаты. ASSIGNMENT_TRACE еще не реализовано.

Для включения всех видов отслеживания функций (TIMING, FUNCTIONS, ARGS SUMMARY (наподобие strace -c)) используйте значение 99

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования apd_set_session()

<?php
apd_set_session(9);
?>


Переопределение встроенных функций

  • « apd_set_session
  • rename_function »
  • PHP Manual
  • APD Функции
  • Переопределение встроенных функций

override_function

(PECL apd >= 0.2)

override_function — Переопределение встроенных функций

Описание

bool override_function ( string $function_name , string $function_args , string $function_code )

Переопределение встроенных функций путем замены их в таблице символов.

Список параметров

function_name

Функция для переопределения.

function_args

Аргументы функции в виде строки разделенной запятыми.

Обычно вы хотите передать этот параметр, так же как и function_code, в виде убранной в одиночные кавычки строки с разделителями. Причина использования одинарных кавычек в том, что они предотвращают подстановку переменных, тогда как при использовании двойных кавычек вам потребуется экранировать переменые с помощью обратного сшеха. Вот так - \$your_var.

function_code

Новый код функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования override_function()

<?php
override_function('test', '$a,$b', 'echo "DOING TEST"; return $a * $b;');
?>


Переименовать функцию в глобальной таблице функций

  • « override_function
  • bcompiler »
  • PHP Manual
  • APD Функции
  • Переименовать функцию в глобальной таблице функций

rename_function

(PECL apd >= 0.2)

rename_function — Переименовать функцию в глобальной таблице функций

Описание

bool rename_function ( string $original_name , string $new_name )

Переименование функции original_name в new_name в глобальной таблице функций. Полезно для временного переопределения встроенных функций.

Список параметров

original_name

Оригинальное имя функции.

new_name

Имя, на которое будет изменено original_name.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования rename_function()

<?php
rename_function('mysql_connect', 'debug_mysql_connect' );
?>


PHP bytecode Compiler

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • bcompiler Функции
    • bcompiler_load_exe — Reads and creates classes from a bcompiler exe file
    • bcompiler_load — Reads and creates classes from a bz compressed file
    • bcompiler_parse_class — Reads the bytecodes of a class and calls back to a user function
    • bcompiler_read — Reads and creates classes from a filehandle
    • bcompiler_write_class — Writes a defined class as bytecodes
    • bcompiler_write_constant — Writes a defined constant as bytecodes
    • bcompiler_write_exe_footer — Writes the start pos, and sig to the end of a exe type file
    • bcompiler_write_file — Writes a php source file as bytecodes
    • bcompiler_write_footer — Writes the single character \x00 to indicate End of compiled data
    • bcompiler_write_function — Writes a defined function as bytecodes
    • bcompiler_write_functions_from_file — Writes all functions defined in a file as bytecodes
    • bcompiler_write_header — Writes the bcompiler header
    • bcompiler_write_included_filename — Writes an included file as bytecodes


Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Bcompiler was written for several reasons:

  • To encode entire script in a proprietary PHP application
  • To encode some classes and/or functions in a proprietary PHP application
  • To enable the production of php-gtk applications that could be used on client desktops, without the need for a php.exe.
  • To do the feasibility study for a PHP to C converter
The first of these goals is achieved using the bcompiler_write_header(), bcompiler_write_file() and bcompiler_write_footer() functions. The bytecode files can be written as either uncompressed or plain. To use the generated bytecode, you can simply include it with include or require statements.

The second of these goals is achieved using the bcompiler_write_header(), bcompiler_write_class(), bcompiler_write_footer(), bcompiler_read(), and bcompiler_load() functions. The bytecode files can be written as either uncompressed or plain. The bcompiler_load() reads a bzip compressed bytecode file, which tends to be 1/3 of the size of the original file.

To create EXE type files, bcompiler has to be used with a modified sapi file or a version of PHP which has been compiled as a shared library. In this scenario, bcompiler reads the compressed bytecode from the end of the exe file.

bcompiler can improve performance by about 30% when used with uncompressed bytecodes only. But keep in mind that uncompressed bytecode can be up to 5 times larger than the original source code. Using bytecode compression can save your space, but decompression requires much more time than parsing a source. bcompiler also does not do any bytecode optimization, this could be added in the future...

In terms of code protection, it is safe to say that it would be impossible to recreate the exact source code that it was built from, and without the accompanying source code comments. It would effectively be useless to use the bcompiler bytecodes to recreate and modify a class. However it is possible to retrieve data from a bcompiled bytecode file - so don't put your private passwords or anything in it.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/bcompiler.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Установка
  • Типы ресурсов »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.


  • « Типы ресурсов
  • bcompiler Функции »
  • PHP Manual
  • bcompiler
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


bcompiler Функции

Contact Information

If you have comments, bugfixes, enhancements or want to help developing this beast, you can drop me a mail at » alan_k@php.net. Any help is very welcome.

Содержание

  • bcompiler_load_exe — Reads and creates classes from a bcompiler exe file
  • bcompiler_load — Reads and creates classes from a bz compressed file
  • bcompiler_parse_class — Reads the bytecodes of a class and calls back to a user function
  • bcompiler_read — Reads and creates classes from a filehandle
  • bcompiler_write_class — Writes a defined class as bytecodes
  • bcompiler_write_constant — Writes a defined constant as bytecodes
  • bcompiler_write_exe_footer — Writes the start pos, and sig to the end of a exe type file
  • bcompiler_write_file — Writes a php source file as bytecodes
  • bcompiler_write_footer — Writes the single character \x00 to indicate End of compiled data
  • bcompiler_write_function — Writes a defined function as bytecodes
  • bcompiler_write_functions_from_file — Writes all functions defined in a file as bytecodes
  • bcompiler_write_header — Writes the bcompiler header
  • bcompiler_write_included_filename — Writes an included file as bytecodes


Reads and creates classes from a bcompiler exe file

  • « bcompiler Функции
  • bcompiler_load »
  • PHP Manual
  • bcompiler Функции
  • Reads and creates classes from a bcompiler exe file

bcompiler_load_exe

(PECL bcompiler >= 0.4)

bcompiler_load_exe — Reads and creates classes from a bcompiler exe file

Описание

bool bcompiler_load_exe ( string $filename )

Reads data from a bcompiler exe file and creates classes from the bytecodes.

Список параметров

filename

The exe file path, as a string.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_load_exe() example

<?php

bcompiler_load_exe("/tmp/example.exe");
print_r(get_defined_classes());

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_load() - Reads and creates classes from a bz compressed file


Reads and creates classes from a bz compressed file

  • « bcompiler_load_exe
  • bcompiler_parse_class »
  • PHP Manual
  • bcompiler Функции
  • Reads and creates classes from a bz compressed file

bcompiler_load

(PECL bcompiler >= 0.4)

bcompiler_load — Reads and creates classes from a bz compressed file

Описание

bool bcompiler_load ( string $filename )

Reads data from a bzcompressed file and creates classes from the bytecodes.

Список параметров

filename

The bzcompressed file path, as a string.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_load() example

<?php

bcompiler_load("/tmp/example");

print_r(get_defined_classes());

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание:

Please use include or require statements to parse bytecodes, it's more portable and convenient way than using this function.

Please note that this function won't execute script body code contained in the bytecode file.

Смотрите также

  • bcompiler_load_exe() - Reads and creates classes from a bcompiler exe file


Reads the bytecodes of a class and calls back to a user function

  • « bcompiler_load
  • bcompiler_read »
  • PHP Manual
  • bcompiler Функции
  • Reads the bytecodes of a class and calls back to a user function

bcompiler_parse_class

(PECL bcompiler >= 0.4)

bcompiler_parse_class — Reads the bytecodes of a class and calls back to a user function

Описание

bool bcompiler_parse_class ( string $class , string $callback )

Reads the bytecodes of a class and calls back to a user function.

Список параметров

class

The class name, as a string.

callback

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_parse_class() example

<?php

function readByteCodes($data) {
    print_r($data);
}

bcompiler_parse_class("DB","readByteCodes");

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание:

This function has been removed from bcompiler and is no longer available as of bcompiler 0.5.


Reads and creates classes from a filehandle

  • « bcompiler_parse_class
  • bcompiler_write_class »
  • PHP Manual
  • bcompiler Функции
  • Reads and creates classes from a filehandle

bcompiler_read

(PECL bcompiler >= 0.4)

bcompiler_read — Reads and creates classes from a filehandle

Описание

bool bcompiler_read ( resource $filehandle )

Reads data from a open file handle and creates classes from the bytecodes.

Список параметров

filehandle

A file handle as returned by fopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_read() example

<?php
$fh = fopen("/tmp/example","r");
bcompiler_read($fh);
fclose($fh);
print_r(get_defined_classes());

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание:

Please use include or require statements to parse bytecodes, it's more portable and convenient way than using this function.

Please note that this function won't execute script body code contained in the bytecode file.


Writes a defined class as bytecodes

  • « bcompiler_read
  • bcompiler_write_constant »
  • PHP Manual
  • bcompiler Функции
  • Writes a defined class as bytecodes

bcompiler_write_class

(PECL bcompiler >= 0.4)

bcompiler_write_class — Writes a defined class as bytecodes

Описание

bool bcompiler_write_class ( resource $filehandle , string $className [, string $extends ] )

Reads the bytecodes from PHP for an existing class, and writes them to the open file handle.

Список параметров

filehandle

A file handle as returned by fopen().

className

The class name, as a string.

extends

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_write_class() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
// you must write DB_common before DB_mysql, as DB_mysql extends DB_common.
bcompiler_write_class($fh,"DB_common");
bcompiler_write_class($fh,"DB_mysql");
bcompiler_write_footer($fh);
fclose($fh);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание:

This function does not perform dependency checking, so make sure you write the classes in an order that will not result in an undefined class error occurring when you load it.

Смотрите также

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data


Writes a defined constant as bytecodes

  • « bcompiler_write_class
  • bcompiler_write_exe_footer »
  • PHP Manual
  • bcompiler Функции
  • Writes a defined constant as bytecodes

bcompiler_write_constant

(PECL bcompiler >= 0.5)

bcompiler_write_constant — Writes a defined constant as bytecodes

Описание

bool bcompiler_write_constant ( resource $filehandle , string $constantName )

Reads the bytecodes from PHP for an existing constant, and writes them to the open file handle.

Список параметров

filehandle

A file handle as returned by fopen().

constantName

The name of the defined constant, as a string.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_write_constant() example

<?php
define("MODULE_MAX", 30);

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_constant($fh,"MODULE_MAX");
bcompiler_write_footer($fh);
fclose($fh);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data


Writes the start pos, and sig to the end of a exe type file

  • « bcompiler_write_constant
  • bcompiler_write_file »
  • PHP Manual
  • bcompiler Функции
  • Writes the start pos, and sig to the end of a exe type file

bcompiler_write_exe_footer

(PECL bcompiler >= 0.4)

bcompiler_write_exe_footer — Writes the start pos, and sig to the end of a exe type file

Описание

bool bcompiler_write_exe_footer ( resource $filehandle , int $startpos )

An EXE (or self executable) file consists of 3 parts:

  • The stub (executable code, e.g. a compiled C program) that loads PHP interpreter, bcompiler extension, stored Bytecodes and initiates a call for the specified function (e.g. main) or class method (e.g. main::main)
  • The Bytecodes (uncompressed only for the moment)
  • The bcompiler EXE footer

To obtain a suitable stub you can compile php_embed-based stub phpe.c located in the examples/embed directory on bcompiler's CVS.

Список параметров

filehandle

A file handle as returned by fopen().

startpos

The file position at which the Bytecodes start, and can be obtained using ftell().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_write_exe_footer() example

<?php

/* creating the output file (example.exe) */
$fh = fopen("example.exe", "w");

/* 1) writing a stub (phpe.exe) */
$size = filesize("phpe.exe");
$fr = fopen("phpe.exe", "r");
fwrite($fh, fread($fr, $size), $size);
$startpos = ftell($fh);

/* 2) writing bytecodes */
bcompiler_write_header($fh);
bcompiler_write_class($fh, "myclass");
bcompiler_write_function($fh, "main");
bcompiler_write_footer($fh);

/* 3) writing EXE footer */
bcompiler_write_exe_footer($fh, $startpos);

/* closing the output file */
fclose($fh);
?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_class() - Writes a defined class as bytecodes
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data


Writes a php source file as bytecodes

  • « bcompiler_write_exe_footer
  • bcompiler_write_footer »
  • PHP Manual
  • bcompiler Функции
  • Writes a php source file as bytecodes

bcompiler_write_file

(PECL bcompiler >= 0.6)

bcompiler_write_file — Writes a php source file as bytecodes

Описание

bool bcompiler_write_file ( resource $filehandle , string $filename )

This function compiles specified source file into bytecodes, and writes them to the open file handle.

Список параметров

filehandle

A file handle as returned by fopen().

filename

The source file path, as a string.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_write_file() example

<?php
$fh = fopen("example.phb", "w");
bcompiler_write_header($fh);
bcompiler_write_file($fh, "example.php");
bcompiler_write_footer($fh);
fclose($fh);
/* the following should be equivalent:
include "example.php";
   and
include "example.phb";
*/
?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data


Writes the single character \x00 to indicate End of compiled data

  • « bcompiler_write_file
  • bcompiler_write_function »
  • PHP Manual
  • bcompiler Функции
  • Writes the single character \x00 to indicate End of compiled data

bcompiler_write_footer

(PECL bcompiler >= 0.4)

bcompiler_write_footer — Writes the single character \x00 to indicate End of compiled data

Описание

bool bcompiler_write_footer ( resource $filehandle )

Writes the single character \x00 to indicate End of compiled data.

Список параметров

filehandle

A file handle as returned by fopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_write_footer() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_class($fh,"DB_common");
bcompiler_write_footer($fh);
fclose($fh);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Writes the bcompiler header


Writes a defined function as bytecodes

  • « bcompiler_write_footer
  • bcompiler_write_functions_from_file »
  • PHP Manual
  • bcompiler Функции
  • Writes a defined function as bytecodes

bcompiler_write_function

(PECL bcompiler >= 0.5)

bcompiler_write_function — Writes a defined function as bytecodes

Описание

bool bcompiler_write_function ( resource $filehandle , string $functionName )

Reads the bytecodes from PHP for an existing function, and writes them to the open file handle. Order is not important, (eg. if function b uses function a, and you compile it like the example below, it will work perfectly OK).

Список параметров

filehandle

A file handle as returned by fopen().

functionName

The function name, as a string.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_write_function() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_function($fh,"my_function_a");
bcompiler_write_function($fh,"my_function_b");
bcompiler_write_footer($fh);
fclose($fh);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data


Writes all functions defined in a file as bytecodes

  • « bcompiler_write_function
  • bcompiler_write_header »
  • PHP Manual
  • bcompiler Функции
  • Writes all functions defined in a file as bytecodes

bcompiler_write_functions_from_file

(PECL bcompiler >= 0.5)

bcompiler_write_functions_from_file — Writes all functions defined in a file as bytecodes

Описание

bool bcompiler_write_functions_from_file ( resource $filehandle , string $fileName )

Searches for all functions declared in the given file, and writes their correspondent bytecodes to the open file handle.

Список параметров

filehandle

A file handle as returned by fopen().

fileName

The file to be compiled. You must always include or require the file you intend to compile.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_write_functions_from_file() example

<?php
require('module.php');

$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_functions_from_file($fh,'module.php');
bcompiler_write_footer($fh);
fclose($fh);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_header() - Writes the bcompiler header
  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data


Writes the bcompiler header

  • « bcompiler_write_functions_from_file
  • bcompiler_write_included_filename »
  • PHP Manual
  • bcompiler Функции
  • Writes the bcompiler header

bcompiler_write_header

(PECL bcompiler >= 0.3)

bcompiler_write_header — Writes the bcompiler header

Описание

bool bcompiler_write_header ( resource $filehandle [, string $write_ver ] )

Writes the header part of a bcompiler file.

Список параметров

filehandle

A file handle as returned by fopen().

write_ver

Can be used to write bytecode in a previously used format, so that you can use it with older versions of bcompiler.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 bcompiler_write_header() example

<?php
$fh = fopen("/tmp/example","w");
bcompiler_write_header($fh);
bcompiler_write_class($fh,"DB");
bcompiler_write_footer($fh);
fclose($fh);

?>

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • bcompiler_write_footer() - Writes the single character \x00 to indicate End of compiled data


Writes an included file as bytecodes

  • « bcompiler_write_header
  • BLENC »
  • PHP Manual
  • bcompiler Функции
  • Writes an included file as bytecodes

bcompiler_write_included_filename

(PECL bcompiler >= 0.5)

bcompiler_write_included_filename — Writes an included file as bytecodes

Описание

bool bcompiler_write_included_filename ( resource $filehandle , string $filename )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Blenc - BLowfish ENCoder для PHP скриптов

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Blenc Функции
    • blenc_encrypt — Encrypt a PHP script with BLENC.


Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

BLENC это шифратор PHP кода, который:

  • Шифрует ваш код с помощью алгоритма blowfish.
  • Позволяет прозрачную дешифровку и исполнение PHP-кода, ранее зашифрованного BLENC.

Расширение BLENC встроено в Zend Engine. Оно позволяет прозрачно шифровать PHP-код алгоритмом blowfish и исполнять его. Он не преднозначен для сверхнадежнорй защиты (код можно дисассемблировать в байт-код с помощью таких пакетов как XDebug), однако оно подходит для отпугивания большинства любителей покопаться в чужем коде и делает процесс реверс-инжинеринга сложным.

Для защиты своего кода, вы должны зашифровать его функцией blenc_encrypt(). После этого вы можете его включать таким образом:

<?php

/* PHP script encoded with BLENC */
$my_source_encoded = 'my_source_encoded.phpe';

include($my_source_encoded);
?>

Также BLENC поддерживает функционал ограничения срока жизни расширения. Так что, если вы хотите, что бы код через некоторое время стал нерабочим, вы должны собрать расширение с модифицированным заголовочным файлом. Для более подробной информации смотрите раздел, посвященной настройне этого расширения.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/blenc

Крайне рекомендуется собирать BLENC из исходных кодов, а не пользоваться 'pecl'. Это вам позволит:

  • Задать свой собственный ключ шифрования, используемый для создания распространяемых ключей. Ваш код будет более надежно защищен, даже если пользователям будет доступен ваш файл ключа на веб-сервере.
  • Указать срок жизни модуля BLENC. Это можно использовать, если вы хотите, что бы BLENC перестал расшифровывать зашифрованные файлы на целевой системе посте истечения этого срока.
Все эти конфигурационные настройки хранятся в заголовочном файле: blenc_protect.h

Пожалуйста изучите файл blenc_protect.h из исходников BLENC. Это даст вам возможность их изменять.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Blenc Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
blenc.key_file | /usr/local/etc/blenckeys | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

blenc.key_file string

Задает путь к файлу, содержащему список ключей дешифровки. Этот файл должен быть доступен для чтения веб-серверу.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

BLENC_EXT_VERSION (string)


  • « Предопределенные константы
  • blenc_encrypt »
  • PHP Manual
  • BLENC
  • Blenc Функции

Blenc Функции

Содержание

  • blenc_encrypt — Encrypt a PHP script with BLENC.


Encrypt a PHP script with BLENC.

  • « Blenc Функции
  • Обработка ошибок »
  • PHP Manual
  • Blenc Функции
  • Encrypt a PHP script with BLENC.

blenc_encrypt

(PECL blenc >= 5)

blenc_encrypt — Encrypt a PHP script with BLENC.

Описание

string blenc_encrypt ( string $plaintext , string $encodedfile [, string $encryption_key ] )

Шифрует plaintext и записывает его в encodedfile

Список параметров

plaintext

Исходный код для шифрования. Открывающие и закрывающие теги PHP не нужны.

encodedfile

Имя файла, в который BLENC сохранит зашифрованный скрипт.

encryption_key

Ключ, с которым BLENC будет использовать для шифрования. Если не задан, то BLENC создаст его самостоятельно.

Возвращаемые значения

BLECN возвращает распространяемый ключ, который необходимо сохранить в файл ключа. Путь к файлу ключа задается во время исполнения с помощью опции blenc.key_file

Примеры

Пример #1 Пример blenc_encrypt()

<?php

/* Читаем исходный скрипт PHP */
$source_code = file_get_contents("my_source_to_protect.php");

/* Шифруем */
$redistributable_key = blenc_encrypt($source_code, "my_source_encoded.php");

/* Выясняем, где расположен файл ключа */
$key_file = ini_get('blenc.key_file');

/* Сохраняем распространяемый ключ */
file_put_contents($key_file, $redistributable_key, FILE_APPEND);
?>


Обработка и протоколирование ошибок

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции обработки ошибок
    • debug_backtrace — Выводит стек вызовов функций в массив
    • debug_print_backtrace — Выводит стек вызовов функций
    • error_clear_last — Очистить самую последнюю ошибку
    • error_get_last — Получение информации о последней произошедшей ошибке
    • error_log — Отправляет сообщение об ошибке заданному обработчику ошибок
    • error_reporting — Задает, какие ошибки PHP попадут в отчет
    • restore_error_handler — Восстанавливает предыдущий обработчик ошибок
    • restore_exception_handler — Восстанавливает предыдущий обработчик исключений
    • set_error_handler — Задает определенный пользователем обработчик ошибок
    • set_exception_handler — Задает пользовательский обработчик исключений
    • trigger_error — Вызывает пользовательскую ошибку/предупреждение/уведомление
    • user_error — Синоним для trigger_error


Введение

В данном разделе представлены функции, связанные с обработкой и протоколированием ошибок. Они дают возможность определять собственные правила обработки ошибок, а также изменять способы их протоколирования. Это позволяет пользователю подстраивать обработку ошибок под собственные нужды.

С помощью функций протоколирования возможно напрямую отправлять сообщения об ошибках на другие машины, по электронной почте (или на смс-шлюзы), записывать в системные журналы и т.д. Это позволяет выборочно следить за наиболее важными частями приложений и сайтов.

Функции протоколирования позволяют настраивать тип и детализацию информации об ошибках того или иного типа от простых уведомлений до трассировки функций, вызвавших ошибку.


Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки конфигурации протоколирования событий и ошибок
Имя | По умолчанию | Меняемо | Список изменений
error_reporting | NULL | PHP_INI_ALL |
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL | Доступно, начиная с PHP 4.3.0.
ignore_repeated_errors | "0" | PHP_INI_ALL | Доступно, начиная с PHP 4.3.0.
ignore_repeated_source | "0" | PHP_INI_ALL | Доступно, начиная с PHP 4.3.0.
report_memleaks | "1" | PHP_INI_ALL | Доступно, начиная с PHP 4.3.0.
track_errors | "0" | PHP_INI_ALL |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP <= 4.2.3.
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Доступно, начиная с PHP 4.1.0.
xmlrpc_error_number | "0" | PHP_INI_ALL | Доступно, начиная с PHP 4.1.0.
docref_root | "" | PHP_INI_ALL | Доступно, начиная с PHP 4.3.0.
docref_ext | "" | PHP_INI_ALL | Доступно, начиная с PHP 4.3.2.
error_prepend_string | NULL | PHP_INI_ALL |
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

error_reporting integer

Задает уровень протоколирования ошибки. Параметр может быть либо числом, представляющим битовое поле, либо именованной константой. Соответствующие уровни и константы приведены в разделе Предопределенные константы, а также в php.ini. Для установки настройки во время выполнения используйте функцию error_reporting(). См. также описание директивы display_errors.

В PHP 5.3 и новее later, значение по умолчанию равно E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED. При этой настройке не отображаются уровни ошибок E_NOTICE, E_STRICT и E_DEPRECATED. Можно отображать их при разработке. До версии PHP 5.3.0, значением по умолчанию было E_ALL & ~E_NOTICE & ~E_STRICT. В PHP 4 значением по умолчанию было E_ALL & ~E_NOTICE.

Замечание:

Включение E_NOTICE во время разработки имеет ряд преимуществ. Для отладки: NOTICE сообщения могут предупреждать о возможных ошибках в коде. Например, использование непроинициализированных переменных вызовет подобное сообщение. Это очень полезно при поиске опечаток и экономит время при отладке. NOTICE сообщения также предупреждают о плохом стиле. Например, $arr[item] лучше писать так: $arr['item'] с тех пор, как PHP начал интерпретировать "item" как константу. Если это не константа, PHP принимает это выражение за строковый индекс элемента массива.

Замечание:

В PHP 5 доступен новый уровень ошибок E_STRICT. Так как E_STRICT не входит в состав E_ALL, необходимо явно включать этот уровень ошибок. Включение E_STRICT во время разработки также имеет свои преимущества. STRICT сообщения предлагают подсказки, которые могут помочь обеспечить лучшую функциональную и обратную совместимость вашего кода. Эти сообщения могут включать в себя такие вещи, как вызов нестатических методов статически, определение свойств в совместимого класса, в то время как они уже определены в используемом трейте, и до PHP 5.3 некоторые устаревшие возможности также будут выдавать ошибки уровня E_STRICT, такие как присвоение объектов по ссылке при создании экземпляра.

Замечание: PHP константы за пределами PHP

Использование PHP констант за пределами PHP, например в файле httpd.conf, не имеет смысла, так как в таких случаях требуются целочисленные значения (integer). Более того, с течением времени будут добавляться новые уровни ошибок, а максимальное значение константы E_ALL соответственно будет расти. Поэтому в месте, где предполагается указать E_ALL, лучше задать большое целое число, чтобы перекрыть все возможные битовые поля. Таким числом может быть, например, 2147483647 (оно включит все возможные ошибки, не только E_ALL).

display_errors string

Эта настройка определяет, требуется ли выводить ошибки на экран вместе с остальным выводом, либо ошибки должны быть скрыты от пользователя.

Значение "stderr" посылает ошибки в поток stderr вместо stdout. Значение доступно в версии PHP 5.2.4. В ранних версиях эта директива имела тип boolean.

Замечание:

Этот функционал предназначен только для разработки и не должен использоваться в готовых производственных системах (например, системах, имеющих доступ в интернет).

Замечание:

Несмотря на то, что display_errors может быть установлена во время выполнения (функцией ini_set()), это ни на что не повлияет, если в скрипте есть фатальные ошибки. Это обусловлено тем, что ожидаемые действия программы во время выполнения не получат управления (не будут выполняться).

display_startup_errors boolean

Даже если display_errors включена, ошибки, возникающие во время запуска PHP, не будут отображаться. Настойчиво рекомендуем включать директиву display_startup_errors только для отладки.

log_errors boolean

Отвечает за выбор журнала, в котором будут сохраняться сообщения об ошибках. Это может быть журнал сервера или error_log. Применимость этой настройки зависит от конкретного сервера.

Замечание:

Настоятельно рекомендуем при работе на готовых работающих web сайтах протоколировать ошибки там, где они отображаются.

log_errors_max_len integer

Задание максимальной длины log_errors в байтах. В error_log добавляется информация об источнике. Значение по умолчанию 1024. Установка значения в 0 позволяет снять ограничение на длину log_errors. Это ограничение распространяется на записываемые в журнал ошибки, на отображаемые ошибки, а также на $php_errormsg, но не на явно вызываемые функции, такие как error_log()().

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ.
ignore_repeated_errors boolean

Не заносить в журнал повторяющиеся ошибки. Ошибка признается повторяющейся, если происходит в том же файле и в той же строке, и если настройка ignore_repeated_source выключена.

ignore_repeated_source boolean

Игнорировать источник ошибок при пропуске повторяющихся сообщений. Когда эта настройка включена, повторяющиеся сообщения об ошибках не будут заноситься в журнал вне зависимости от того, в каких файлах и строках они происходят.

report_memleaks boolean

Если настройка включена (по умолчанию), будет формироваться отчет об утечках памяти, зафиксированных менеджером памяти Zend. На POSIX платформах этот отчет будет направляться в поток stderr. На Windows платформах он будет посылаться в отладчик функцией OutputDebugString(), просмотреть отчет в этом случае можно с помощью утилит, вроде » DbgView. Эта настройка имеет смысл в сборках, предназначенных для отладки. При этом E_WARNING должна быть включена в список error_reporting.

track_errors boolean

Если включена, последняя произошедшая ошибка будет первой в переменной $php_errormsg.

html_errors boolean

Если разрешена, сообщения об ошибках будут включать теги HTML. Фомат для HTML-ошибок производит нажимаемые ссылки, ведущие на описание ошибки, либо функии, в которой она произошла. За такие ссылки ответственны docref_root и docref_ext.

Если запрещена, то ошибки будут выдаваться простым текстом, без форматирования.

xmlrpc_errors boolean

Если включена, то нормальное оповещение об ошибках отключается и, вместо него, ошибки выводятся в формате XML-RPC.

xmlrpc_error_number integer

Используется в качестве значения XML-RPC элемента faultCode.

docref_root string

Новый формат ошибок содержит ссылку на страницу с описанием ошибки или функции, вызвавшей эту ошибку. Можно разместить копию описаний ошибок и функций локально и задать ini директиве значение URL этой копии. Если, например, локальная копия описаний доступна по адресу "/manual/", достаточно прописать docref_root=/manual/. Дополнительно, необходимо задать значение директиве docref_ext, отвечающей за соответствие расширений файлов файлам описаний вашей локальной копии, docref_ext=.html. Также возможно использование внешних ссылок. Например, docref_root=http://manual/en/ или docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F"

В большинстве случаев вам потребуется, чтобы значение docref_root оканчивалось слешем "/". Тем не менее, бывают случаи, когда это не требуется (см. выше, второй пример).

Замечание:

Этот функционал предназначен только для разработки, так как он облегчает поиск описаний функций и ошибок. Не используйте его в готовых производственных системах (например, имеющих доступ в интернет).

docref_ext string

См. docref_root.

Замечание:

Значение docref_ext должно начинаться с точки ".".

error_prepend_string string

Строка, которая будет выводиться непосредственно перед сообщением об ошибке.

error_append_string string

Строка, которая будет выводиться после сообщения об ошибке.

error_log string

Имя файла, в который будут добавляться сообщения об ошибках. Файл должен быть открыт для записи пользователем web сервера. Если используется специальное значение syslog, то сообщения будут посылаться в системный журнал. На Unix системах это syslog(3), на Windows NT - журнал событий. Системный журнал не поддерживается в Windows 95. См. также: syslog(). Если директива не задана, ошибки будут направляться в SAPI журналы. Например, это могут быть журналы ошибок Apache или поток stderr командной строки CLI. Смотрите также функцию error_log().


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Замечание: Данные имена констант можно использовать в файле php.ini но не вне PHP, как например в файле httpd.conf, где вместо них необходимо использовать значения их битовых масок.

Ошибки и протоколирование
Значение | Константа | Описание | Примечание
1 | E_ERROR (integer) | Фатальные ошибки времени выполнения. Это неустранимые средствами самого скрипта ошибки, такие как ошибка распределения памяти и т.п. Выполнение скрипта в таком случае прекращается. |
2 | E_WARNING (integer) | Предупреждения времени выполнения (не фатальные ошибки). Выполнение скрипта в таком случае не прекращается. |
4 | E_PARSE (integer) | Ошибки на этапе компиляции. Должны генерироваться только парсером. |
8 | E_NOTICE (integer) | Уведомления времени выполнения. Указывают на то, что во время выполнения скрипта произошло что-то, что может указывать на ошибку, хотя это может происходить и при обычном выполнении программы. |
16 | E_CORE_ERROR (integer) | Фатальные ошибки, которые происходят во время запуска РНР. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются ядром PHP. |
32 | E_CORE_WARNING (integer) | Предупреждения (не фатальные ошибки), которые происходят во время начального запуска РНР. Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются ядром PHP. |
64 | E_COMPILE_ERROR (integer) | Фатальные ошибки на этапе компиляции. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются скриптовым движком Zend. |
128 | E_COMPILE_WARNING (integer) | Предупреждения на этапе компиляции (не фатальные ошибки). Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются скриптовым движком Zend. |
256 | E_USER_ERROR (integer) | Сообщения об ошибках сгенерированные пользователем. Такие ошибки схожи с E_ERROR, за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error(). |
512 | E_USER_WARNING (integer) | Предупреждения сгенерированные пользователем. Такие предупреждения схожи с E_WARNING, за исключением того, что они генерируются в коде скрипта средствами функции PHP trigger_error(). |
1024 | E_USER_NOTICE (integer) | Уведомления сгенерированные пользователем. Такие уведомления схожи с E_NOTICE, за исключением того, что они генерируются в коде скрипта, средствами функции PHP trigger_error(). |
2048 | E_STRICT (integer) | Включаются для того, чтобы PHP предлагал изменения в коде, которые обеспечат лучшее взаимодействие и совместимость кода. | Начиная с PHP 5, но не включены в E_ALL вплоть до PHP 5.4.0
4096 | E_RECOVERABLE_ERROR (integer) | Фатальные ошибки с возможностью обработки. Такие ошибки указывают, что, вероятно, возникла опасная ситуация, но при этом, скриптовый движок остается в стабильном состоянии. Если такая ошибка не обрабатывается функцией, определенной пользователем для обработки ошибок (см. set_error_handler()), выполнение приложения прерывается, как происходит при ошибках E_ERROR. | Начиная с PHP 5.2.0
8192 | E_DEPRECATED (integer) | Уведомления времени выполнения об использовании устаревших конструкций. Включаются для того, чтобы получать предупреждения о коде, который не будет работать в следующих версиях PHP. | Начиная с PHP 5.3.0
16384 | E_USER_DEPRECATED (integer) | Уведомления времени выполнения об использовании устаревших конструкций, сгенерированные пользователем. Такие уведомления схожи с E_DEPRECATED за исключением того, что они генерируются в коде скрипта, с помощью функции PHP trigger_error(). | Начиная с PHP 5.3.0
32767 | E_ALL (integer) | Все поддерживаемые ошибки и предупреждения, за исключением ошибок E_STRICT до PHP 5.4.0. | 32767 в PHP 5.4.x, 30719 в PHP 5.3.x, 6143 в PHP 5.2.x, 2047 ранее

Представленные выше значения (как числовые, так и символьные) используются для задания битовой маски, определяющей об ошибках какого типа будет даваться отчет. Вы можете использовать побитовые операторы, чтобы совмещать эти значения для указания определенных типов ошибок. Стоит отметить, что в php.ini допустимы только следующие операторы: '|', '~', '!', '^' и '&'.


Примеры

Ниже представлен пример использования возможностей обработки ошибок в PHP. Мы определим функцию для обработки ошибок, которая будет записывать информацию об ошибках в файл (используя XML формат), а в случае возникновения критических ошибок, будем в дополнительно отправлять разработчикам письмо с уведомлением.

Пример #1 Обработка ошибок в скрипте

<?php
// мы будем делать нашу собственную обработку ошибок
error_reporting(0);

// пользовательская функция для обработки ошибок
function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
    // временная метка возникновения ошибки
    $dt = date("Y-m-d H:i:s (T)");

    // определим ассоциативный массив соответствия всех
    // констант уровней ошибок с их названиями, хотя
    // в действительности мы будем рассматривать только
    // следующие типы: E_WARNING, E_NOTICE, E_USER_ERROR,
    // E_USER_WARNING и E_USER_NOTICE
    $errortype = array (
                E_ERROR              => 'Ошибка',
                E_WARNING            => 'Предупреждение',
                E_PARSE              => 'Ошибка разбора исходного кода',
                E_NOTICE             => 'Уведомление',
                E_CORE_ERROR         => 'Ошибка ядра',
                E_CORE_WARNING       => 'Предупреждение ядра',
                E_COMPILE_ERROR      => 'Ошибка на этапе компиляции',
                E_COMPILE_WARNING    => 'Предупреждение на этапе компиляции',
                E_USER_ERROR         => 'Пользовательская ошибка',
                E_USER_WARNING       => 'Пользовательское предупреждение',
                E_USER_NOTICE        => 'Пользовательское уведомление',
                E_STRICT             => 'Уведомление времени выполнения',
                E_RECOVERABLE_ERROR  => 'Отлавливаемая фатальная ошибка'
                );
    // определим набор типов ошибок, для которых будет сохранен стек переменных
    $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);

    $err = "<errorentry>\n";
    $err .= "\t<datetime>" . $dt . "</datetime>\n";
    $err .= "\t<errornum>" . $errno . "</errornum>\n";
    $err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n";
    $err .= "\t<errormsg>" . $errmsg . "</errormsg>\n";
    $err .= "\t<scriptname>" . $filename . "</scriptname>\n";
    $err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n";

    if (in_array($errno, $user_errors)) {
        $err .= "\t<vartrace>" . wddx_serialize_value($vars, "Переменные") . "</vartrace>\n";
    }
    $err .= "</errorentry>\n\n";

    // для тестирования
    // echo $err;

    // сохраняем в протокол ошибок, а если произошла пользовательская критическая ошибка, то отправляем письмо
    error_log($err, 3, "/usr/local/php4/error.log");
    if ($errno == E_USER_ERROR) {
        mail("phpdev@example.com", "Пользовательская критическая ошибка", $err);
    }
}

function distance($vect1, $vect2)
{
    if (!is_array($vect1) || !is_array($vect2)) {
        trigger_error("Некорректные параметры функции, ожидаются массивы в качестве параметров", E_USER_ERROR);
        return NULL;
    }

    if (count($vect1) != count($vect2)) {
        trigger_error("Векторы должны быть одинаковой размерности", E_USER_ERROR);
        return NULL;
    }

    for ($i=0; $i<count($vect1); $i++) {
        $c1 = $vect1[$i]; $c2 = $vect2[$i];
        $d = 0.0;
        if (!is_numeric($c1)) {
            trigger_error("Координата $i в векторе 1 не является числом, будет использовать ноль",
                            E_USER_WARNING);
            $c1 = 0.0;
        }
        if (!is_numeric($c2)) {
            trigger_error("Координата $i в векторе 2 не является числом, будет использовать ноль",
                            E_USER_WARNING);
            $c2 = 0.0;
        }
        $d += $c2*$c2 - $c1*$c1;
    }
    return sqrt($d);
}

$old_error_handler = set_error_handler("userErrorHandler");

// использование неопределенной константы, будет генерироваться предупреждение
$t = I_AM_NOT_DEFINED;

// определеим несколько "векторов"
$a = array(2, 3, "foo");
$b = array(5.5, 4.3, -1.6);
$c = array(1, -3);

// генерируем пользовательскую ошибку
$t1 = distance($c, $b) . "\n";

// генерируем еще одну пользовательскую ошибку
$t2 = distance($b, "я не массив") . "\n";

// генерируем пользовательское предупреждение
$t3 = distance($a, $b) . "\n";

?>


Функции обработки ошибок

Смотрите также

См. также функцию syslog().

Содержание

  • debug_backtrace — Выводит стек вызовов функций в массив
  • debug_print_backtrace — Выводит стек вызовов функций
  • error_clear_last — Очистить самую последнюю ошибку
  • error_get_last — Получение информации о последней произошедшей ошибке
  • error_log — Отправляет сообщение об ошибке заданному обработчику ошибок
  • error_reporting — Задает, какие ошибки PHP попадут в отчет
  • restore_error_handler — Восстанавливает предыдущий обработчик ошибок
  • restore_exception_handler — Восстанавливает предыдущий обработчик исключений
  • set_error_handler — Задает определенный пользователем обработчик ошибок
  • set_exception_handler — Задает пользовательский обработчик исключений
  • trigger_error — Вызывает пользовательскую ошибку/предупреждение/уведомление
  • user_error — Синоним для trigger_error


Выводит стек вызовов функций в массив

  • « Функции обработки ошибок
  • debug_print_backtrace »
  • PHP Manual
  • Функции обработки ошибок
  • Выводит стек вызовов функций в массив

debug_backtrace

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

debug_backtrace — Выводит стек вызовов функций в массив

Описание

array debug_backtrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT [, int $limit = 0 ]] )

debug_backtrace() выводит стек вызовов функций PHP в массив.

Список параметров

options

В версии 5.3.6, этот аргумент является битовой маской для следующих настроек:

Настройки debug_backtrace()
DEBUG_BACKTRACE_PROVIDE_OBJECT | Требуется или нет заполнять данные "объектов".
DEBUG_BACKTRACE_IGNORE_ARGS | Требуется или нет не выводить данные с индексом "args", то есть списки аргументов всех функций/методов, для уменьшения расхода памяти.
До версии 5.3.6 принимаются только значения TRUE или FALSE, которые означают, задана настройка DEBUG_BACKTRACE_PROVIDE_OBJECT или нет соответственно.

limit

В версии 5.4.0, этот аргумент используется для ограничения количества вызовов функций, которые будут выведены. По умолчанию (limit=0) будет выведен весь стек вызовов.

Возвращаемые значения

Возвращает массив вложенных ассоциативных массивов (array). Описание элементов массива приведено ниже:

Список возможных значений элементов массивов, возвращаемых функцией debug_backtrace()
Имя | Тип | Описание
function | string | Имя текущей функции. См. также __FUNCTION__.
line | integer | Текущий номер строки. См. также __LINE__.
file | string | Имя текущего файла. См. также __FILE__.
class | string | Имя текущего класса. См. также __CLASS__
object | object | Текущий объект.
type | string | Текущий тип вызова функции. Если это вызов метода объекта, будет выведено "->". Если это вызов статического метода класса, то "::". Если это простой вызов функции, не выводится ничего.
args | array | При нахождении внутри функции, будет выведен список аргументов этой функции. Если внутри включаемого файла, будет выведен список включаемых файлов.

Список изменений

Версия | Описание
5.4.0 | Добавлен необязательный аргумент limit.
5.3.6 | Аргумент provide_object заменен на options и добавлена дополнительная настройка DEBUG_BACKTRACE_IGNORE_ARGS.
5.2.5 | Добавлен необязательный аргумент provide_object.
5.1.1 | Элементом возвращаемого массива теперь может быть текущий объект object.

Примеры

Пример #1 Пример использования debug_backtrace()

<?php
// filename: /tmp/a.php

function a_test($str)
{
    echo "\nHi: $str";
    var_dump(debug_backtrace());
}

a_test('friend');
?>

<?php
// filename: /tmp/b.php
include_once '/tmp/a.php';
?>

Результат аналогичен приведенному ниже, если запустить /tmp/b.php:

Hi: friend
array(2) {
[0]=>
array(4) {
    ["file"] => string(10) "/tmp/a.php"
    ["line"] => int(10)
    ["function"] => string(6) "a_test"
    ["args"]=>
    array(1) {
      [0] => &string(6) "friend"
    }
}
[1]=>
array(4) {
    ["file"] => string(10) "/tmp/b.php"
    ["line"] => int(2)
    ["args"] =>
    array(1) {
      [0] => string(10) "/tmp/a.php"
    }
    ["function"] => string(12) "include_once"
  }
}

Смотрите также

  • trigger_error() - Вызывает пользовательскую ошибку/предупреждение/уведомление
  • debug_print_backtrace() - Выводит стек вызовов функций


Выводит стек вызовов функций

  • « debug_backtrace
  • error_clear_last »
  • PHP Manual
  • Функции обработки ошибок
  • Выводит стек вызовов функций

debug_print_backtrace

(PHP 5, PHP 7)

debug_print_backtrace — Выводит стек вызовов функций

Описание

void debug_print_backtrace ([ int $options = 0 [, int $limit = 0 ]] )

debug_print_backtrace() выводит стек вызовов функций. Выводит вызовы функций, имена включенных/требуемых файлов и другую информацию из функций (eval()).

Список параметров

options

В версии 5.3.6, этот аргумент является битовой маской для следующих настроек:

debug_print_backtrace() options
DEBUG_BACKTRACE_IGNORE_ARGS Требуется или нет не выводить данные с индексом "args", то есть списки аргументов всех функций/методов, для уменьшения расхода памяти.

limit

В версии 5.4.0, этот аргумент используется для ограничения количества вызовов функций, которые будут выведены. По умолчанию (limit=0) будет выведен весь стек вызовов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.4.0 | Добавлен необязательный аргумент limit.
5.3.6 | Добавлен необязательный аргумент options.

Примеры

Пример #1 Пример использования debug_print_backtrace()

<?php
// include.php file

function a() {
    b();
}

function b() {
    c();
}

function c(){
    debug_print_backtrace();
}

a();

?>
<?php
// test.php файл
// этот файл нужно запустить
include 'include.php';
?>

Результатом выполнения данного примера будет что-то подобное:

#0  c() called at [/tmp/include.php:10]
#1  b() called at [/tmp/include.php:6]
#2  a() called at [/tmp/include.php:17]
#3  include(/tmp/include.php) called at [/tmp/test.php:3]

Смотрите также

  • debug_backtrace() - Выводит стек вызовов функций в массив


Очистить самую последнюю ошибку

  • « debug_print_backtrace
  • error_get_last »
  • PHP Manual
  • Функции обработки ошибок
  • Очистить самую последнюю ошибку

error_clear_last

(PHP 7)

error_clear_last — Очистить самую последнюю ошибку

Описание

void 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)

error_get_last — Получение информации о последней произошедшей ошибке

Описание

array error_get_last ( void )

Получает информацию о последней произошедшей ошибке.

Возвращаемые значения

Возвращает ассоциативный массив с описанием последней произошедшей ошибки. Ключи массива: "type", "message", "file" и "line". Если ошибка произошла во внутренней функции PHP, элемент с ключом "message" будет начинаться с имени этой функции. Возвращает NULL, если ошибок еще не произошло.

Примеры

Пример #1 Пример использования error_get_last()

<?php
echo $a;
print_r(error_get_last());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [type] => 8
    [message] => Undefined variable: a
    [file] => C:\WWW\index.php
    [line] => 2
)

Смотрите также

  • Константы ошибок
  • Переменная $php_errormsg
  • error_clear_last() - Очистить самую последнюю ошибку
  • Директива display_errors
  • Директива html_errors
  • Директива xmlrpc_errors


Отправляет сообщение об ошибке заданному обработчику ошибок

  • « error_get_last
  • error_reporting »
  • PHP Manual
  • Функции обработки ошибок
  • Отправляет сообщение об ошибке заданному обработчику ошибок

error_log

(PHP 4, PHP 5, PHP 7)

error_log — Отправляет сообщение об ошибке заданному обработчику ошибок

Описание

bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )

Отправляет сообщение об ошибке в лог web-сервера или в пользовательский файл.

Список параметров

message

Сообщение об ошибке которое должно быть логировано.

message_type

Определяет куда отправлять ошибку. Возможны следующие значения:

error_log() log types
0 | Сообщение message отправляется в системный регистратор PHP, используя механизм логирования операционной системы, или файл, в зависимости от значения директивы error_log в конфигурационном файле. Это значение по умолчанию.
1 | Сообщение message отправляется электронной почтой на адрес, установленный в параметре destination. Это единственный тип сообщения, где используется четвертый параметр extra_headers.
2 | Больше не используется.
3 | message применяется к указанному в destination файлу. Перенос строки автоматически не добавляется в конец message.
4 | Сообщение message отправляется напрямую в обработчик логера SAPI.

destination

Назначение. Устанавливается в зависимости от параметра message_type.

extra_headers

Дополнительные заголовки. Используется, когда значение параметра message_type - 1. Данный тип сообщения использует ту же внутреннюю функцию, что и mail().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

error_log() не является бинарнобезопасным. message обрезается по null-символу.

Подсказка

message не должен содержать null-символ. Учтите, что message может передаваться в файл, по почте, в syslog, и т.д.. Используйте подходящую преобразующую или экранирующую функцию, base64_encode(), rawurlencode() или addslashes() перед вызовом error_log().

Примеры

Пример #1 Примеры использования error_log()

<?php
// Отправляет уведомление посредством серверного лога, если мы не можем
// подключиться к базе данных.
if (!Ora_Logon($username, $password)) {
    error_log("Oracle database not available!", 0);
}

// Уведомить администратора электронной почтой,  если невозможно выделить ресурсы для FOO
if (!($foo = allocate_new_foo())) {
    error_log("Big trouble, we're all out of FOOs!", 1,
               "operator@example.com");
}

// другой способ вызвать error_log():
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
?>

Список изменений

Версия | Описание
5.2.7 | Добавлен 4-й тип значения в message_type.


Задает, какие ошибки PHP попадут в отчет

  • « error_log
  • restore_error_handler »
  • PHP Manual
  • Функции обработки ошибок
  • Задает, какие ошибки PHP попадут в отчет

error_reporting

(PHP 4, PHP 5, PHP 7)

error_reporting — Задает, какие ошибки PHP попадут в отчет

Описание

int error_reporting ([ int $level ] )

Функция error_reporting() задает значение директивы error_reporting во время выполнения. В PHP есть много уровней ошибок. Используя эту функцию, можно задать уровень ошибок времени выполнения скрипта, которые попадут в отчет. Если необязательный аргумент level не задан, error_reporting() вернет текущее значение уровня протоколирования ошибок.

Список параметров

level

Новое значение уровня error_reporting. Это может быть битовая маска или именованные константы. При использовании именованных констант нужно будет следить за совместимостью с новыми версиями PHP. В новых версиях могут добавиться новые уровни ошибок, увеличиться диапазон целочисленных типов. Все это может привести к нестабильной работе при использовании старых целочисленных обозначений уровней ошибок.

Доступные константы уровней ошибок и их описания приведены в разделе Предопределенные константы.

Возвращаемые значения

Возвращает старое значение уровня error_reporting либо текущее значение, если аргумент level не задан.

Список изменений

Версия | Описание
5.4.0 | E_STRICT стал частью E_ALL.
5.3.0 | Добавлены E_DEPRECATED и E_USER_DEPRECATED.
5.2.0 | Добавлена E_RECOVERABLE_ERROR.
5.0.0 | Добавлена E_STRICT (не входит в состав E_ALL).

Примеры

Пример #1 Примеры использования error_reporting()

<?php

// Выключение протоколирования ошибок
error_reporting(0);

// Включать в отчет простые описания ошибок
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Включать в отчет E_NOTICE сообщения (добавятся сообщения о
//непроинициализированных переменных или ошибках в именах переменных)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Добавлять сообщения обо всех ошибках, кроме E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Добавлять в отчет все PHP ошибки (см. список изменений)
error_reporting(E_ALL);

// Добавлять в отчет все PHP ошибки
error_reporting(-1);

// То же, что и error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

Примечания

Внимание

Большинство E_STRICT ошибок отлавливаются на этапе компиляции, поэтому такие ошибки не включаются в отчет в файлах, где error_reporting расширен для включения E_STRICT ошибок (и наоборот).

Подсказка

Если передать -1, будут отображаться все возможные ошибки, даже если в новых версиях PHP добавятся уровни или константы. В версии PHP 5.4. передача константы E_ALL дает тот же результат.

Смотрите также

  • Директива display_errors
  • Директива html_errors
  • Директива xmlrpc_errors
  • ini_set() - Установка значения настройки конфигурации


Восстанавливает предыдущий обработчик ошибок

  • « error_reporting
  • restore_exception_handler »
  • PHP Manual
  • Функции обработки ошибок
  • Восстанавливает предыдущий обработчик ошибок

restore_error_handler

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

restore_error_handler — Восстанавливает предыдущий обработчик ошибок

Описание

bool restore_error_handler ( void )

Используется после смены обработчика ошибок функцией set_error_handler(), чтобы вернуть предыдущий обработчик (который может быть как встроенной функцией, так и определенной пользователем).

Возвращаемые значения

Эта функция всегда возвращает TRUE.

Примеры

Пример #1 Пример использования restore_error_handler()

Определение, произошла ли ошибка в функции unserialize(), и затем восстановление исходного обработчика ошибок.

<?php
function unserialize_handler($errno, $errstr)
{
    echo "Сериализуемое значение недопустимо.\n";
}

$serialized = 'foo';
set_error_handler('unserialize_handler');
$original = unserialize($serialized);
restore_error_handler();
?>

Результат выполнения данного примера:

Сериализуемое значение недопустимо.

Смотрите также

  • error_reporting() - Задает, какие ошибки PHP попадут в отчет
  • set_error_handler() - Задает определенный пользователем обработчик ошибок
  • restore_exception_handler() - Восстанавливает предыдущий обработчик исключений
  • trigger_error() - Вызывает пользовательскую ошибку/предупреждение/уведомление


Восстанавливает предыдущий обработчик исключений

  • « restore_error_handler
  • set_error_handler »
  • PHP Manual
  • Функции обработки ошибок
  • Восстанавливает предыдущий обработчик исключений

restore_exception_handler

(PHP 5, PHP 7)

restore_exception_handler — Восстанавливает предыдущий обработчик исключений

Описание

bool restore_exception_handler ( void )

Используется после смены обработчика исключений функцией set_exception_handler(), чтобы вернуть предыдущий обработчик (который может быть как встроенной функцией, так и определенной пользователем).

Возвращаемые значения

Эта функция всегда возвращает TRUE.

Примеры

Пример #1 Пример использования restore_exception_handler()

<?php
    function exception_handler_1(Exception $e)
    {
        echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
    }

    function exception_handler_2(Exception $e)
    {
        echo '[' . __FUNCTION__ . '] ' . $e->getMessage();
    }

    set_exception_handler('exception_handler_1');
    set_exception_handler('exception_handler_2');

    restore_exception_handler();

    throw new Exception('Вызван первый обработчик исключений...');
?>

Результат выполнения данного примера:

[exception_handler_1] Вызван первый обработчик исключений...

Смотрите также

  • set_exception_handler() - Задает пользовательский обработчик исключений
  • set_error_handler() - Задает определенный пользователем обработчик ошибок
  • restore_error_handler() - Восстанавливает предыдущий обработчик ошибок
  • error_reporting() - Задает, какие ошибки PHP попадут в отчет


Задает определенный пользователем обработчик ошибок

  • « restore_exception_handler
  • set_exception_handler »
  • PHP Manual
  • Функции обработки ошибок
  • Задает определенный пользователем обработчик ошибок

set_error_handler

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

set_error_handler — Задает определенный пользователем обработчик ошибок

Описание

mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )

Задает пользовательскую функцию (error_handler), как обработчик ошибок в скрипте.

Эта функция используется для определения собственного обработчика ошибок времени выполнения скрипта. Например, если требуется очистить данные/файлы, когда произошла критическая ошибка, или если нужно переключить тип ошибки, исходя из каких-то условий (используя функцию trigger_error()).

Важно помнить, что стандартный обработчик ошибок PHP не будет обрабатывать никакие типы ошибок, определенные в error_types, пока callback-функция не вернет FALSE. Пользовательский обработчик будет вызываться при любой ошибке, независимо от настроек, заданных функцией error_reporting(). Однако, вы можете прочитать текущее значение error_reporting и задать в обработчике соответствующие действия. В частности, это значение будет равно 0, если выражение, вызвавшее ошибку, начинается с оператора контроля ошибок @.

Также важно помнить, что на совести обработчика лежит вызов функции die() в случае необходимости. Если происходит возврат из обработчика ошибок, управление передается следующему выражению, стоящему за тем, что вызвало ошибку.

Ошибки следующих типов не могут быть обработаны пользователем: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, и большинство E_STRICT ошибок, произошедших в файле, где вызвана функция set_error_handler().

Если ошибки возникают до запуска скрипта (например, пока файл загружается), пользовательский обработчик не будет вызываться, если на этот момент он еще не зарегистрирован.

Список параметров

error_handler

Функция указанного ниже вида. Можно передать вместо нее NULL, для сброса обработчика в значение по умолчанию. Помимо имени функции, можно передать массив, содержащий объект и имя метода.

bool handler ( int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] )
errno
Первый аргумента errno содержит уровень ошибки в виде целого числа.
errstr
Второй аргумент errstr содержит сообщение об ошибке в виде строки.
errfile
Третий необязательный аргумент errfile содержит имя файла, в котором произошла ошибка, в виде строки.
errline
Четвертый необязательный аргумент errline содержит номер строки, в которой произошла ошибка, в виде целого числа.
errcontext
Пятый необязательный аргумент errcontext содержит массив указателей на активную таблицу символов в точке, где произошла ошибка. Другими словами, errcontext будет содержать массив всех переменных, существующих в области видимости, где произошла ошибка. Пользовательский обработчик не должен изменять этот контекст.

Если функция возвращает FALSE, управление передается встроенному обработчику ошибок.

error_types

Может использоваться для задания маски, в соответствии с которой будет вызываться error_handler, по аналогии с ini настройкой error_reporting, которая отвечает за то, какие ошибки будут показаны в отчете. Без этой маски error_handler будет вызываться для обработки всех происходящих ошибок, вне зависимости от настроек в error_reporting.

Возвращаемые значения

Возвращает строку содержащую предыдущий заданный обработчик ошибок (если есть). Если на данный момент используется встроенный обработчик, функция вернет NULL. В случае ошибки в работе самой функции, например, недопустимый обратный вызов, функция также вернет NULL. Если предыдущий определенный обработчик является методом класса, функция вернет массив содержащий имя класса и имя метода.

Список изменений

Версия | Описание
5.5.0 | error_handler теперь может принимать NULL.
5.2.0 | Обработчик должен вернуть FALSE, чтобы заполнилось значение переменной $php_errormsg.

Примеры

Пример #1 Обработка ошибок с помощью функций set_error_handler() и trigger_error()

Пример ниже демонстрирует обработку внутренних исключений путем вызова ошибок разных типов и их обработки пользовательской функцией:

<?php
// функция обработки ошибок
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    if (!(error_reporting() & $errno)) {
        // Этот код ошибки не включен в error_reporting
        return;
    }

    switch ($errno) {
    case E_USER_ERROR:
        echo "<b>My ERROR</b> [$errno] $errstr<br />\n";
        echo "  Фатальная ошибка в строке $errline файла $errfile";
        echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
        echo "Завершение работы...<br />\n";
        exit(1);
        break;

    case E_USER_WARNING:
        echo "<b>My WARNING</b> [$errno] $errstr<br />\n";
        break;

    case E_USER_NOTICE:
        echo "<b>My NOTICE</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>My NOTICE</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>My WARNING</b> [512] Некорректный входной вектор, пропущен массив значений<br />
NULL
----
vector d - fatal error
<b>My ERROR</b> [256] log(x) for x <= 0 is undefined, you used: scale = -2.5<br />
  Фатальная ошибка в строке 35 файла trigger_error.php, PHP 5.2.1 (FreeBSD)<br />
Завершение работы...<br />

Смотрите также

  • ErrorException
  • error_reporting() - Задает, какие ошибки PHP попадут в отчет
  • restore_error_handler() - Восстанавливает предыдущий обработчик ошибок
  • trigger_error() - Вызывает пользовательскую ошибку/предупреждение/уведомление
  • Константы уровней ошибок
  • информация о типе callback


Задает пользовательский обработчик исключений

  • « set_error_handler
  • trigger_error »
  • PHP Manual
  • Функции обработки ошибок
  • Задает пользовательский обработчик исключений

set_exception_handler

(PHP 5, PHP 7)

set_exception_handler — Задает пользовательский обработчик исключений

Описание

callable set_exception_handler ( callable $exception_handler )

Задает обработчик по умолчанию для случаев, когда исключение выброшено вне блока try/catch. После вызова exception_handler выполнение будет остановлено.

Список параметров

exception_handler

Имя функции, которая будет вызываться каждый раз, когда выбрасывается неперехватываемое исключение. Функция-обработчик должна принимать один аргумент - объект, представляющий выброшенное исключение. До PHP 7 такая функция выглядит так:

void handler ( Exception $ex )

В PHP 7 большинство внутренних ошибок теперь генерируют исключение, но класса Error. Для них так же будет вызываться указанный обработчик исключений. Классы Error и Exception реализуют интерфейс Throwable, соответственно именно его следует использовать в сигнатуре функции-обработчика:

void handler ( Throwable $ex )

В качестве этого аргумента можно передать NULL. В этом случае обработчик вернется к своему изначальному состоянию.

Предостережение

Указание типа Exception для параметра ex в вашей функции-обработчике приведет к проблемам в PHP 7 из-за измененной иерархии классов исключений.

Возвращаемые значения

Возвращает имя предыдущего заданного обработчика или NULL в случае ошибки. Если предыдущих обработчиков определено не было, то также возвращается NULL.

Список изменений

Версия | Описание
7.0.0 | Тип параметра передаваемого в exception_handler изменен с Exception на Throwable
5.5.0 | Раньше, если был передан NULL, то эта функция возвращала TRUE. Теперь она возвращает старый обработчик.

Примеры

Пример #1 Пример использования set_exception_handler()

<?php
function exception_handler($exception) {
  echo "Неперехваченное исключение: " , $exception->getMessage(), "\n";
}

set_exception_handler('exception_handler');

throw new Exception('Неперехваченное исключение');
echo "Не выполнено\n";
?>

Смотрите также

  • restore_exception_handler() - Восстанавливает предыдущий обработчик исключений
  • restore_error_handler() - Восстанавливает предыдущий обработчик ошибок
  • error_reporting() - Задает, какие ошибки PHP попадут в отчет
  • информация о типе callback
  • Исключения PHP 5


Вызывает пользовательскую ошибку/предупреждение/уведомление

  • « set_exception_handler
  • user_error »
  • PHP Manual
  • Функции обработки ошибок
  • Вызывает пользовательскую ошибку/предупреждение/уведомление

trigger_error

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

trigger_error — Вызывает пользовательскую ошибку/предупреждение/уведомление

Описание

bool trigger_error ( string $error_msg [, int $error_type = E_USER_NOTICE ] )

Используется для вызова пользовательских ошибок. Можно использовать в связке с встроенным обработчиком ошибок, а также с пользовательским обработчиком, заданным функцией set_error_handler().

Эта функция может быть полезной, если требуется сгенерировать определенную реакцию на исключение во время выполнения.

Список параметров

error_msg

Сообщение, соответствующее этой ошибке. Ограничено 1024 байтами в длину. Символы дальше 1024-го будут обрезаны.

error_type

Назначенный тип ошибки. Работает только с семейством констант E_USER. По умолчанию E_USER_NOTICE.

Возвращаемые значения

Функция возвращает FALSE, если задан неправильный error_type, и TRUE в остальных случаях.

Примеры

Пример #1 Пример использования trigger_error()

Более подробный пример приведен в описании функции set_error_handler().

<?php
if ($divisor == 0) {
    trigger_error("Не могу поделить на ноль", E_USER_ERROR);
}
?>

Примечания

Внимание

HTML сущности в error_msg не экранированы. Чтобы сообщение можно было отобразить в браузере, преобразуйте его функцией htmlentities().

Смотрите также

  • error_reporting() - Задает, какие ошибки PHP попадут в отчет
  • set_error_handler() - Задает определенный пользователем обработчик ошибок
  • restore_error_handler() - Восстанавливает предыдущий обработчик ошибок
  • Константы уровней ошибок


Синоним для trigger_error

  • « trigger_error
  • htscanner »
  • PHP Manual
  • Функции обработки ошибок
  • Синоним для trigger_error

user_error

(PHP 4, PHP 5, PHP 7)

user_error — Синоним для trigger_error()

Описание

Эта функция является псевдонимом: trigger_error().


htaccess-like support for all SAPIs

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов


Введение

The htscanner extension gives the possibility to use htaccess-like file to configure PHP per directory, just like apache's htaccess. It is especially useful with fastcgi (IIS5/6/7, lighttpd, etc.).


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

PHP version 5.2.0 or greater.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/htscanner


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

htscanner Опции настройки
Имя | По умолчанию | Меняемо | Changelog
htscanner.config_file | ".htscanner" | PHP_INI_SYSTEM |
htscanner.default_docroot | "/" | PHP_INI_SYSTEM |
htscanner.default_ttl | "300" | PHP_INI_SYSTEM |
htscanner.stop_on_error | "Off" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

htscanner.config_file string

Filename to use as configuration file.

htscanner.default_docroot string

Default document root.

htscanner.default_ttl int

Cache time out for the configuration data, in seconds.

htscanner.stop_on_error int

Stop on error (parse error, cannot set an ini setting).


  • « Настройка во время выполнения
  • inclued »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Inclusion hierarchy viewer

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Примеры использования inclued в приложении
  • Функции inclued
    • inclued_get_data — Получить информацию по подключенным файлам


Введение

Прослеживает и выводит информацию о подключенных файлах и наследовании классов во время исполнения.

ФАйлы могут быть подключены функциями include, include_once, require или require_once.

Также отслеживаются зависимости наследования классов.


Требования

PHP версии 5.1.0 или выше.

Включенный файл gengraph.php использует библиотеку » graphviz, но она не обяхательна.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/inclued


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки inclued
Имя | По умолчанию | Меняемо | Список изменений
inclued.enabled | Off | PHP_INI_SYSTEM |
inclued.dumpdir | NULL | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

inclued.enabled bool

Разрешить inclued или нет.

inclued.dumpdir string

Путь для сохранения созданых файлов. Если задан, то каждый запрос PHP будет приводить к созданию файла. Эти файлы содержат сериализованную версию вывода функции inclued_get_data() и просмотреть их можно используя функцию unserialize().

Предостережение

Так как каждый запрос приводит к созданию файла - эта директория может очень быстро переполниться!


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Примеры использования inclued в приложении »
  • PHP Manual
  • inclued
  • Примеры

Примеры

Содержание

  • Примеры использования inclued в приложении


Примеры использования inclued в приложении

Этот пример демонстрирует процесс включения inclued в существующее приложение и отображение его результатов.

Пример #1 Получение данных самостоятельно, приложением PHP (функция)

<?php
// Файл для сохранения полученных данных
$fp = fopen('/tmp/wp.ser', 'w');
if ($fp) {
    $clue = inclued_get_data();
    if ($clue) {
        fwrite($fp, serialize($clue));
    }
    fclose($fp);
}
?>

Теперь, когда некоторое количество данных собрано, время построить граф. Данное расширение содержит PHP-скрипт gengraph.php, который создает dot-файл, требующий библиотеки » graphviz.

Пример #2 Пример использования gengraph.php

В данном примере создается файл изображения inclued.png содержащий графическое представление полученных данных.

# Создадим dot-файл
$ php gengraph.php -i /tmp/wp.ser -o wp.dot

# Теперь создадим изображение
$ dot -Tpng -o inclued.png wp.dot

Пример #3 Просмотр данных с помощью дампов inclued (конфигурация)

Если используется директива inclued.dumpdir, файлы дампов будут создаваться при каждом запросе. Один из путей просмотра этих файлов - это использовать unserialize().

<?php
$path = ini_get('inclued.dumpdir');
if ($path && is_dir($path)) {

    echo "Path: $path", PHP_EOL;

    $inclues = new GlobIterator($path . DIRECTORY_SEPARATOR . 'inclued*');

    if ($inclues->count() === 0) {
        echo 'No clues today', PHP_EOL;
        exit;
    }

    foreach ($inclues as $inclue) {

        echo 'Inclued file: ', $inclue->getFilename(), PHP_EOL;

        $data = file_get_contents($inclue->getPathname());
        if ($data) {
            $inc = unserialize($data);
            echo ' -- filename: ', $inc['request']['SCRIPT_FILENAME'], PHP_EOL;
            echo ' -- number of includes: ', count($inc['includes']), PHP_EOL;
        }
        echo PHP_EOL;
    }
} else {
    echo 'I am totally clueless today.', PHP_EOL;
}
?>

Результатом выполнения данного примера будет что-то подобное:

PATH: /tmp/inclued
Inclued file: inclued.56521.1
 -- filename: /Users/philip/test.php
 -- number of includes: 1

Inclued file: inclued.56563.1
 -- filename: /tmp/none.php
 -- number of includes: 0

Inclued file: inclued.56636.1
 -- filename: /tmp/three.php
 -- number of includes: 3


  • « Примеры использования inclued в приложении
  • inclued_get_data »
  • PHP Manual
  • inclued
  • Функции inclued

Функции inclued

Содержание

  • inclued_get_data — Получить информацию по подключенным файлам


Получить информацию по подключенным файлам

  • « Функции inclued
  • Memtrack »
  • PHP Manual
  • Функции inclued
  • Получить информацию по подключенным файлам

inclued_get_data

(PECL inclued >= 0.1.0)

inclued_get_data — Получить информацию по подключенным файлам

Описание

array inclued_get_data ( void )

Получить информацию по подключенным файлам.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данные по подключенным файлам.

Примеры

Пример #1 Пример использования inclued_get_data()

Смотрите секцию примеры inclued для информации по построению графов на основе этих данных.

<?php
include 'x.php';

$clue = inclued_get_data();

print_r($clue);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
  [includes] => Array
    (
      [0] => Array
        (
          [operation] => include
          [op_type] => 2
          [filename] => x.php
          [opened_path] => /tmp/x.php
          [fromfile] => /tmp/z.php
          [fromline] => 2
        )
    )
)

Смотрите также

  • примеры inclued
  • debug_backtrace() - Выводит стек вызовов функций в массив
  • include - include


Memtrack

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Basic usage


Введение

The purpose of this extension is to detect the most memory hungry scripts and functions.

memtrack tracks memory consumption in PHP scripts and produces reports (warnings) when the consumption reaches certain levels set by the user. This is achieved by replacing default executor function by a special function which compares memory usage before and after running the original executor - this way we can tell how much the memory usage has changed during the execution of the current part of the code.

Zend Engine runs its executor for each opcode array (op_array), which usually means function, plain script and such, so memtrack doesn't have any noticeable effect on performance.

memtrack doesn't provide any functions, there are only INI directives which allow you to configure the way it should work.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/memtrack


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Memtrack Configuration Options
Имя | По умолчанию | Меняемо
memtrack.enabled | "0" | PHP_INI_SYSTEM
memtrack.soft_limit | "0" | PHP_INI_ALL
memtrack.hard_limit | "0" | PHP_INI_ALL
memtrack.vm_limit | "0" | PHP_INI_ALL
memtrack.ignore_functions | "" | PHP_INI_SYSTEM
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

memtrack.enabled boolean

Disables or enables the extension. Default value is 0, i.e. disabled.

memtrack.soft_limit int

Soft memory limit.

The extension checks memory consumption before and after executing an op_array and produces a warning is the difference between the two values is equal to or greater than the soft limit, but only if the function is not ignored.

Setting this option to 0 also disables both soft and hard limit warnings. Default value is 0, i.e. no warnings is produced.

memtrack.hard_limit int

Hard memory limit.

The extension checks memory consumption before and after executing an op_array and produces a warning is the difference between the two values is equal to or greater than the hard limit, even if the function is ignored. Setting this option to 0 disables hard limit warnings completely. Default value is 0, i.e. no hard limit warnings is produced.

memtrack.vm_limit int

Virtual memory limit (set on a process).

This limit is checked only on shutdown and a warning is produced if the value is greater than or equal to the limit.

This option is currently supported only on OSes where mallinfo() function is available (i.e. Linux).

memtrack.ignore_functions string

A comma or whitespace-separated list of functions which are to be ignored by soft_limit. The values are case-insensitive, for class methods use class::method syntax.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Memtrack
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Basic usage »
  • PHP Manual
  • Memtrack
  • Примеры

Примеры

Содержание

  • Basic usage


Basic usage

Basic example on using memtrack extension:

Пример #1 Creating large array in a function

<?php

/* /tmp/example1.php */

function foo() {
    $a = array();
    for ($i = 0; $i < 10000; $i++) $a[] = "test";
    return $a;
}
$arr = foo();

?>

Run the example with the following command:

php -d memtrack.enabled=1 -d memtrack.soft_limit=1M -d memtrack.vm_limit=3M /tmp/example1.php

Результатом выполнения данного примера будет что-то подобное:

Warning: [memtrack] [pid 26177] user function foo() executed in /tmp/example1.php on line 10 allocated 4194304 bytes in /tmp/example1.php on line 0
Warning: [memtrack] [pid 26177] virtual memory usage on shutdown: 32911360 bytes in Unknown on line 0


OPcache

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • OPcache Функции
    • opcache_compile_file — Compiles and caches a PHP script without executing it
    • opcache_get_configuration — Get configuration information about the cache
    • opcache_get_status — Get status information about the cache
    • opcache_invalidate — Invalidates a cached script
    • opcache_is_script_cached — Tells whether a script is cached in OPCache
    • opcache_reset — Resets the contents of the opcode cache


Введение

OPcache улучшает производительность PHP путём сохранения скомпилированного байт-кода скриптов в разделяемой памяти, тем самым избавляя PHP от необходимости загружать и анализировать скрипты при каждом запросе.

Это расширение доступно по умолчанию с PHP 5.5.0 и » доступно в PECL для версия 5.2, 5.3 и 5.4.


Установка

The process of installing OPcache varies depending on which version of PHP you're running. Please refer to the appropriate section below.

Замечание:

If you want to use OPcache with » Xdebug, you must load OPcache before Xdebug.

PHP 5.5.0 and later

OPcache can only be compiled as a shared extension. If you have disabled the building of default extensions with --disable-all , you must compile PHP with the --enable-opcache option for OPcache to be available.

Once compiled, you can use the zend_extension configuration directive to load the OPcache extension into PHP. This can be done with zend_extension=/full/path/to/opcache.so on non-Windows platforms, and zend_extension=C:\path\to\php_opcache.dll on Windows.

PHP 5.2, 5.3 and 5.4

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/ZendOpcache.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Recommended php.ini settings

The following settings are generally recommended as providing good performance:

opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

You may also want to consider disabling opcache.save_comments and enabling opcache.enable_file_override, however note that you will have to test your code before using these in production as they are known to break some frameworks and applications, particularly in cases where documentation comment annotations are used.

A full list of configuration directives supported by OPcache is also available.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

OPcache configuration options
Имя | По умолчанию | Меняемо | Список изменений
opcache.enable | "1" | PHP_INI_ALL |
opcache.enable_cli | "0" | PHP_INI_SYSTEM |
opcache.memory_consumption | "64" | PHP_INI_SYSTEM |
opcache.interned_strings_buffer | "4" | PHP_INI_SYSTEM |
opcache.max_accelerated_files | "2000" | 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.load_comments | "1" | PHP_INI_ALL |
opcache.fast_shutdown | "0" | PHP_INI_SYSTEM |
opcache.enable_file_override | "0" | PHP_INI_SYSTEM |
opcache.optimization_level | "0xffffffff" | PHP_INI_SYSTEM |
opcache.inherited_hack | "1" | PHP_INI_SYSTEM |
opcache.dups_fix | "0" | PHP_INI_ALL |
opcache.blacklist_filename | "" | PHP_INI_SYSTEM |
opcache.max_file_size | "0" | PHP_INI_SYSTEM |
opcache.consistency_checks | "0" | PHP_INI_ALL |
opcache.force_restart_timeout | "180" | PHP_INI_SYSTEM |
opcache.error_log | "" | PHP_INI_SYSTEM |
opcache.log_verbosity_level | "1" | PHP_INI_SYSTEM |
opcache.preferred_memory_model | "" | PHP_INI_SYSTEM |
opcache.protect_memory | "0" | PHP_INI_SYSTEM |
opcache.mmap_base | NULL | PHP_INI_SYSTEM |
opcache.restrict_api | "" | PHP_INI_SYSTEM |
opcache.file_cache | NULL | PHP_INI_SYSTEM | Available as of PHP 7.0.0
opcache.file_cache_only | "0" | PHP_INI_SYSTEM | Available as of PHP 7.0.0
opcache.file_cache_consistency_checks | "1" | PHP_INI_SYSTEM | Available as of PHP 7.0.0
opcache.file_cache_fallback | "1" | PHP_INI_SYSTEM | Available as of PHP 7.0.0
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

opcache.enable boolean

Enables the opcode cache. When disabled, code is not optimised or cached. The setting opcache.enable can not be enabled at runtime through ini_set(), it can only be disabled. Trying to enable it at in a script will generate a warning.

opcache.enable_cli boolean

Enables the opcode cache for the CLI version of PHP. This is mostly useful for testing and debugging.

opcache.memory_consumption integer

The size of the shared memory storage used by OPcache, in megabytes.

opcache.interned_strings_buffer integer

The amount of memory used to store interned strings, in megabytes. This configuration directive is ignored in PHP < 5.3.0.

opcache.max_accelerated_files integer

The maximum number of keys (and therefore scripts) in the OPcache hash table. The actual value used will be the first number in the set of prime numbers { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } that is greater than or equal to the configured value. The minimum value is 200. The maximum value is 100000 in PHP < 5.5.6, and 1000000 in later versions.

opcache.max_wasted_percentage integer

The maximum percentage of wasted memory that is allowed before a restart is scheduled.

opcache.use_cwd boolean

If enabled, OPcache appends the current working directory to the script key, thereby eliminating possible collisions between files with the same base name. Disabling this directive improves performance, but may break existing applications.

opcache.validate_timestamps boolean

If enabled, OPcache will check for updated scripts every opcache.revalidate_freq seconds. When this directive is disabled, you must reset OPcache manually via opcache_reset(), opcache_invalidate() or by restarting the Web server for changes to the filesystem to take effect.

opcache.revalidate_freq integer

How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request.

This configuration directive is ignored if opcache.validate_timestamps is disabled.

opcache.revalidate_path boolean

If disabled, existing cached files using the same include_path will be reused. Thus, if a file with the same name is elsewhere in the include_path, it won't be found.

opcache.save_comments boolean

If disabled, all documentation comments will be discarded from the opcode cache to reduce the size of the optimised code. Disabling this configuration directive may break applications and frameworks that rely on comment parsing for annotations, including Doctrine, Zend Framework 2 and PHPUnit.

opcache.load_comments boolean

If disabled, documentation comments won't be loaded from the opcode cache even if they exist. This can be used with opcache.save_comments to only load comments for applications that require them.

opcache.fast_shutdown boolean

If enabled, a fast shutdown sequence is used that doesn't free each allocated block, but relies on the Zend Engine memory manager to deallocate the entire set of request variables en masse.

opcache.enable_file_override boolean

When enabled, the opcode cache will be checked for whether a file has already been cached when file_exists(), is_file() and is_readable() are called. This may increase performance in applications that check the existence and readability of PHP scripts, but risks returning stale data if opcache.validate_timestamps is disabled.

opcache.optimization_level integer

A bitmask that controls which optimisation passes are executed.

opcache.inherited_hack boolean

In PHP < 5.3, OPcache stores the places where DECLARE_CLASS opcodes used inheritance; when the file is loaded, OPcache then tries to bind the inherited classes using the current environment. The problem is that while the DECLARE_CLASS opcode may not be needed for the current script, if the script requires that the opcode be defined, it may not run.

This configuration directive is ignored in PHP 5.3 and later.

opcache.dups_fix boolean

This hack should only be enabled to work around "Cannot redeclare class" errors.

opcache.blacklist_filename string

The location of the OPcache blacklist file. A blacklist file is a text file containing the names of files that should not be accelerated, one per line. Wildcards are allowed, and prefixes can also be provided. Lines starting with a semi-colon are ignored as comments.

A simple blacklist file might look as follows:

; Matches a specific file.
/var/www/broken.php
; A prefix that matches all files starting with x.
/var/www/x
; A wildcard match.
/var/www/*-broken.php
opcache.max_file_size integer

The maximum file size that will be cached, in bytes. If this is 0, all files will be cached.

opcache.consistency_checks integer

If non-zero, OPcache will verify the cache checksum every N requests, where N is the value of this configuration directive. This should only be enabled when debugging, as it will impair performance.

opcache.force_restart_timeout integer

The length of time to wait for a scheduled restart to begin if the cache isn't active, in seconds. If the timeout is hit, then OPcache assumes that something is wrong and will kill the processes holding locks on the cache to permit a restart.

If opcache.log_verbosity_level is set to 3 or above, an error will be recorded in the error log when this occurs.

opcache.error_log string

The error log for OPcache errors. An empty string is treated the same as stderr, and will result in logs being sent to standard error (which will be the Web server error log in most cases).

opcache.log_verbosity_level integer

The log verbosity level. By default, only fatal errors (level 0) and errors (level 1) are logged. Other levels available are warnings (level 2), information messages (level 3) and debug messages (level 4).

opcache.preferred_memory_model string

The preferred memory model for OPcache to use. If left empty, OPcache will choose the most appropriate model, which is the correct behaviour in virtually all cases.

Possible values include mmap, shm, posix and win32.

opcache.protect_memory boolean

Protects shared memory from unexpected writes while executing scripts. This is useful for internal debugging only.

opcache.mmap_base string

The base used for shared memory segments on Windows. All PHP processes have to map shared memory into the same address space. Using this directive allows "Unable to reattach to base address" errors to be fixed.

opcache.restrict_api string

Allows calling OPcache API functions only from PHP scripts which path is started from specified string. The default "" means no restriction.

opcache.file_cache string

Enables and sets the second level cache directory. It should improve performance when SHM memory is full, at server restart or SHM reset. The default "" disables file based caching.

opcache.file_cache_only boolean

Enables or disables opcode caching in shared memory.

opcache.file_cache_consistency_checks boolean

Enables or disables checksum validation when script loaded from file cache.

opcache.file_cache_fallback boolean

Implies opcache.file_cache_only=1 for a certain process that failed to reattach to the shared memory (for Windows only). Explicitly enabled file cache is required.


  • « Настройка во время выполнения
  • OPcache Функции »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


OPcache Функции

Содержание

  • opcache_compile_file — Compiles and caches a PHP script without executing it
  • opcache_get_configuration — Get configuration information about the cache
  • opcache_get_status — Get status information about the cache
  • opcache_invalidate — Invalidates a cached script
  • opcache_is_script_cached — Tells whether a script is cached in OPCache
  • opcache_reset — Resets the contents of the opcode cache


Compiles and caches a PHP script without executing it

  • « OPcache Функции
  • opcache_get_configuration »
  • PHP Manual
  • OPcache Функции
  • Compiles and caches a PHP script without executing it

opcache_compile_file

(PHP 5 >= 5.5.5, PHP 7, PECL ZendOpcache > 7.0.2)

opcache_compile_file — Compiles and caches a PHP script without executing it

Описание

boolean opcache_compile_file ( string $file )

This function compiles a PHP script and adds it to the opcode cache without executing it. This can be used to prime the cache after a Web server restart by pre-caching files that will be included in later requests.

Список параметров

file

The path to the PHP script to be compiled.

Возвращаемые значения

Returns TRUE if file was compiled successfully или FALSE в случае возникновения ошибки.

Ошибки

If file cannot be loaded or compiled, an error of level E_WARNING is generated. You may use @ to suppress this warning.

Смотрите также

  • opcache_invalidate() - Invalidates a cached script


Get configuration information about the cache

  • « opcache_compile_file
  • opcache_get_status »
  • PHP Manual
  • OPcache Функции
  • Get configuration information about the cache

opcache_get_configuration

(PHP 5 >= 5.5.5, PHP 7, PECL ZendOpcache > 7.0.2)

opcache_get_configuration — Get configuration information about the cache

Описание

array opcache_get_configuration ( void )

This function returns configuration information about the cache instance

Возвращаемые значения

Returns an array of information, including ini, blacklist and version

Ошибки

If opcache.restrict_api is in use and the current path is in violation of the rule, an E_WARNING will be raised; no status information will be returned.

Смотрите также

  • opcache_get_status() - Get status information about the cache


Get status information about the cache

  • « opcache_get_configuration
  • opcache_invalidate »
  • PHP Manual
  • OPcache Функции
  • Get status information about the cache

opcache_get_status

(PHP 5 >= 5.5.5, PHP 7, PECL ZendOpcache > 7.0.2)

opcache_get_status — Get status information about the cache

Описание

array opcache_get_status ([ boolean $get_scripts = TRUE ] )

This function returns state information about the cache instance

Список параметров

get_scripts

Include script specific state information

Возвращаемые значения

Returns an array of information, optionally containing script specific state information

Ошибки

If opcache.restrict_api is in use and the current path is in violation of the rule, an E_WARNING will be raised; no status information will be returned.

Смотрите также

  • opcache_get_configuration() - Get configuration information about the cache


Invalidates a cached script

  • « opcache_get_status
  • opcache_is_script_cached »
  • PHP Manual
  • OPcache Функции
  • Invalidates a cached script

opcache_invalidate

(PHP 5 >= 5.5.0, PHP 7, PECL ZendOpcache >= 7.0.0)

opcache_invalidate — Invalidates a cached script

Описание

boolean opcache_invalidate ( string $script [, boolean $force = FALSE ] )

This function invalidates a particular script from the opcode cache. If force is unset or FALSE, the script will only be invalidated if the modification time of the script is newer than the cached opcodes.

Список параметров

script

The path to the script being invalidated.

force

If set to TRUE, the script will be invalidated regardless of whether invalidation is necessary.

Возвращаемые значения

Returns TRUE if the opcode cache for script was invalidated or if there was nothing to invalidate, or FALSE if the opcode cache is disabled.

Смотрите также

  • opcache_compile_file() - Compiles and caches a PHP script without executing it
  • opcache_reset() - Resets the contents of the opcode cache


Tells whether a script is cached in OPCache

  • « opcache_invalidate
  • opcache_reset »
  • PHP Manual
  • OPcache Функции
  • Tells whether a script is cached in OPCache

opcache_is_script_cached

(PHP 5 >= 5.6.0, PHP 7, PECL ZendOpcache >= 7.0.4)

opcache_is_script_cached — Tells whether a script is cached in OPCache

Описание

boolean opcache_is_script_cached ( string $file )

This function checks if a PHP script has been cached in OPCache. This can be used to more easily detect the "warming" of the cache for a particular script.

Список параметров

file

The path to the PHP script to be checked.

Возвращаемые значения

Returns TRUE if file is cached in OPCache, FALSE otherwise.

Смотрите также

  • opcache_compile_file() - Compiles and caches a PHP script without executing it


Resets the contents of the opcode cache

  • « opcache_is_script_cached
  • Контроль вывода »
  • PHP Manual
  • OPcache Функции
  • Resets the contents of the opcode cache

opcache_reset

(PHP 5 >= 5.5.0, PHP 7, PECL ZendOpcache >= 7.0.0)

opcache_reset — Resets the contents of the opcode cache

Описание

boolean opcache_reset ( void )

This function resets the entire opcode cache. After calling opcache_reset(), all scripts will be reloaded and reparsed the next time they are hit.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the opcode cache was reset, or FALSE if the opcode cache is disabled.

Смотрите также

  • opcache_invalidate() - Invalidates a cached script


Управление буфером вывода

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
    • использование перезаписы вывода
  • Функции контроля вывода
    • 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 | Доступно с PHP 4.0.4.
implicit_flush | "0" | PHP_INI_ALL | PHP_INI_PERDIR в PHP <= 4.2.3.
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Доступно с PHP 4.0.4. До PHP 7.1.0, использовалась для установки перезаписи "trans sid" сессии. С PHP 7.1.0, используется только output_add_rewrite_var().
url_rewriter.hosts | По умолчанию используется $_SERVER['HTTP_HOST']. | PHP_INI_ALL | Доступно с PHP 7.1.0
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

output_buffering boolean/integer

Вы можете разрешить буферизацию вывода для всех файлов, установив эту директиву в 'On'. Если вы хотите ограничить размер буфера до определенного размера, вы можете установить не 'On', а максимальное количество байт в этой директиве (например, output_buffering=4096). Эта директива всегда отключена в PHP-CLI.

output_handler string

Вы можете перенаправить весь вывод вашего скрипта в функцию. Для примера, если вы установите output_handler в mb_output_handler(), то кодировка символов прозрачно преобразуется в соответствии с указанной кодировкой. Настройка на любой обработчик вывода автоматически включает буферизацию вывода.

Замечание:

Вы не можете использовать вместе mb_output_handler() с ob_iconv_handler() и вы не можете использовать вместе ob_gzhandler() и zlib.output_compression.

Замечание:

Только встроенные функции могут использоваться с этой директивой. Для функции, определенной пользователем, используйте ob_start().

implicit_flush boolean

FALSE по умолчанию. Изменение значения в TRUE указывает PHP не складывать данные в буфер, а после каждого отправленного блока автоматически отправлять данные в выходной слой. Это эквивалентно вызову PHP-функции flush() после каждого вызова print или echo для каждого HTML-блока.

При использовании PHP в web-среде, включение этой опции приведет к серьезной потере производительности, поэтому рекомендуется использовать ее только для отладки. Это значение по умолчанию имеет TRUE при работе в CLI SAPI.

См. также ob_implicit_flush().

url_rewriter.tags string
url_rewriter.tags specifies which HTML tags are rewritten by output_add_rewrite_var() values. Defaults to a=href,area=href,frame=src,input=src,form= form is special tag. <input hidden="session_id" name="session_name"> is added as form variable.

Замечание: Before PHP 7.1.0, url_rewriter.tags was used to specify session.trans_sid_tags. Since PHP 7.1.0, fieldset is no longer considered as special tag.

url_rewriter.hosts string
url_rewriter.hosts указывает, какие хосты перезаписани для включения значений output_add_rewrite_var(). По умолчанию $_SERVER['HTTP_HOST']. Несколько хостов можно указать перечислив их через запятую, между хостами не должно быть пробелов. Т.е. php.net,wiki.php.net,bugs.php.net


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

PHP_OUTPUT_HANDLER_START (integer)

Служит признаком того, что буферирование вывода началось.

PHP_OUTPUT_HANDLER_WRITE (integer)

Служит признаком того, что буфер вывода очищается и в нем находятся данные для вывода.

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_FLUSH (integer)

Обозначает, что буфер был сброшен (очищен и выведен).

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_CLEAN (integer)

Обозначает, что буфер был очищен.

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_FINAL (integer)

Обозначает, что это последняя операция буферирования.

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_CONT (integer)

Обозначает, что буфер был очищен, но буферирование вывода будет продолжено.

Начиная с PHP 5.4 это синоним для PHP_OUTPUT_HANDLER_WRITE.

PHP_OUTPUT_HANDLER_END (integer)

Обозначает, что буферирование вывода завершено.

Начиная с PHP 5.4 это синоним для PHP_OUTPUT_HANDLER_FINAL.

PHP_OUTPUT_HANDLER_CLEANABLE (integer)

Определяет может ли буфер вывода, созданный ob_start(), быть очищенным.

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_FLUSHABLE (integer)

Определяет может ли буфер вывода, созданный ob_start(), быть сброшен (выведен и очищен).

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_REMOVABLE (integer)

Определяет может ли буфер вывода, созданный ob_start(), быть удаленным до завершения скрипта.

Доступно начиная с PHP 5.4.

PHP_OUTPUT_HANDLER_STDFLAGS (integer)

Значение по умолчанию для флагов буфера вывода. Равняется PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE.

Доступно начиная с PHP 5.4.


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • Контроль вывода
  • Примеры

Примеры

Содержание

  • Базовое использование
  • использование перезаписы вывода


Базовое использование

Пример #1 Пример контроля вывода

<?php

ob_start();
echo "Привет\n";

setcookie("cookiename", "cookiedata");

ob_end_flush();

?>

В приведенном выше примере вывод из echo будет храниться в буфере вывода до вызова ob_end_flush(). В то же время вызов setcookie() успешно сохранится в cookie браузера, не вызывая ошибки (заголовки не могут нормально отправляться в браузер после того, как данные уже были отправлены).


использование перезаписы вывода

Начиная с PHP 7.1.0, output_add_rewrite_var() и output_reset_rewrite_vars() используют отдельный буфер вывода. Т.е. не используют буфер вывода прозрачной поддержки sid.

Пример #1 Output rewrite example

<?php
// This code works with PHP 7.1.0, 7.0.10, 5.6.25 and up.

// HTTP_HOST - целевой хост по умолчанию. Зададим сами, чтобы код примера заработал.
$_SERVER['HTTP_HOST'] = 'php.net';

// Перезаписыватель вывода перезаписывает только "form". Добавим a=href.
// Тэги должны указываться как tag_name=url_attr, т.е. img=src,iframe=src
// Между настройками пробелы недопустимы.
// Тэг "form" - специальный тэг, в который добавляется скрытый "input"
ini_set('url_rewriter.tags','a=href,form=');
var_dump(ini_get('url_rewriter.tags'));

// Это добавлено в URL и "form"
output_add_rewrite_var('test', 'value');
?>
<a href="//php.net/index.php?bug=1234">bug1234</a>
<form action="https://php.net/?bug=1234&edit=1" action="post">
 <input type="text" name="title" />
</form>

Результат выполнения данного примера:

<a href="//php.net/?bug=1234&test=value">bug1234</a>
<form action="https://php.net/?bug=1234&edit=1" method="post"><input type="hidden" name="test" value="value" />
 <input type="text" name="title" />
</form>

С PHP 7.1.0, функции перезаписи вывода имеют свои собственные INI-настройки. url_rewriter.tags и url_rewriter.hosts.


Функции контроля вывода

Смотрите также

См. также header() и setcookie().

Содержание

  • flush — Сброс системного буфера вывода
  • ob_clean — Очищает (стирает) буфер вывода
  • ob_end_clean — Очищает (стирает) буфер вывода и отключает буферизацию вывода
  • ob_end_flush — Сброс (отправка) буфера вывода и отключение буферизации вывода
  • ob_flush — Сброс (отправка) буфера вывода
  • ob_get_clean — Получить содержимое текущего буфера и удалить его
  • ob_get_contents — Возвращает содержимое буфера вывода
  • ob_get_flush — Сброс буфера вывода, возвращая его содержимое и отключение буферизации вывода
  • ob_get_length — Возвращает размер буфера вывода
  • ob_get_level — Возвращает уровень вложенности механизма буферизации вывода
  • ob_get_status — Получить статус буфера вывода
  • ob_gzhandler — callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start
  • ob_implicit_flush — Функция включает/выключает неявный сброс
  • ob_list_handlers — Список всех используемых обработчиков вывода
  • ob_start — Включение буферизации вывода
  • output_add_rewrite_var — Добавить обработчик значений URL
  • output_reset_rewrite_vars — Сброс значений установленных обработчиком URL


Сброс системного буфера вывода

  • « Функции контроля вывода
  • ob_clean »
  • PHP Manual
  • Функции контроля вывода
  • Сброс системного буфера вывода

flush

(PHP 4, PHP 5, PHP 7)

flush — Сброс системного буфера вывода

Описание

void flush ( void )

Функция очищает системный буфер вывода PHP, при этом всё содержимое буфера отправляется в браузер пользователя (с некоторыми исключениями), независимо от используемого backend-а у PHP (CGI, web-сервер и т.д.).

flush() не может изменить схему буферизации вашего web-сервера и никак не влияет на буферизацию браузера на стороне клиента. Функция так же не влияет на механизм буферизации пользовательского PHP кода. Это означает, что если вы используете сброс выходных буферов ob, то вам придется вызывать ob_flush() и flush() вместе.

Некоторые серверы, особенно под управлением Win32, будут по-прежнему продолжать буферизировать вывод вашего скрипта до передачи результатов в браузер.

Серверные модули для Apache, такие как mod_gzip, могут сами выполнять буферизацию, поэтому flush() не приводит к немедленной передаче данных клиенту.

Браузер может также буферизировать поступающие к нему данные перед отображением. Например, Netscape, буферизирует текст пока не получит признак end-of-line или начало тэга, и не будет отображать таблицы пока не увидит тэга </table> самой внешней таблицы.

Некоторые версии Microsoft Internet Explorer начинают отображать страницу только после получения 256 байт вывода, поэтому может понадобиться отправить дополнительные пробелы перед сбросом, чтобы такие браузеры отобразили страницу.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ob_flush() - Сброс (отправка) буфера вывода
  • ob_clean() - Очищает (стирает) буфер вывода
  • ob_end_flush() - Сброс (отправка) буфера вывода и отключение буферизации вывода
  • ob_end_clean() - Очищает (стирает) буфер вывода и отключает буферизацию вывода


Очищает (стирает) буфер вывода

  • « flush
  • ob_end_clean »
  • PHP Manual
  • Функции контроля вывода
  • Очищает (стирает) буфер вывода

ob_clean

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_clean — Очищает (стирает) буфер вывода

Описание

void ob_clean ( void )

Эта функция удаляет содержимое выходного буфера.

Эта функция не уничтожает буфер вывода, как это делает ob_end_clean().

Буфер вывода должен запускаться функцией ob_start() с флагом PHP_OUTPUT_HANDLER_CLEANABLE. Иначе не сработает ob_clean().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ob_flush() - Сброс (отправка) буфера вывода
  • ob_end_flush() - Сброс (отправка) буфера вывода и отключение буферизации вывода
  • ob_end_clean() - Очищает (стирает) буфер вывода и отключает буферизацию вывода


Очищает (стирает) буфер вывода и отключает буферизацию вывода

  • « ob_clean
  • ob_end_flush »
  • PHP Manual
  • Функции контроля вывода
  • Очищает (стирает) буфер вывода и отключает буферизацию вывода

ob_end_clean

(PHP 4, PHP 5, PHP 7)

ob_end_clean — Очищает (стирает) буфер вывода и отключает буферизацию вывода

Описание

bool ob_end_clean ( void )

Эта функция удаляет содержимое самого верхнего буфера вывода и отключает эту буферизацию. Если вы хотите использовать содержимое буфера, то вам необходимо вызвать ob_get_contents() перед ob_end_clean(), так как все содержимое буфера удаляется при вызове ob_end_clean().

Буфер вывода должен запускаться функцией ob_start() с флагами PHP_OUTPUT_HANDLER_CLEANABLE и PHP_OUTPUT_HANDLER_REMOVABLE. Иначе не сработает ob_end_clean().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Основной причиной неудачного завершения работы функции является ее вызов без активной буферизации, или если буфер не может быть удален (специальный тип буфера).

Ошибки

Если функция завершается ошибкой генерируется E_NOTICE.

Примеры

Следующий пример показывает простой способ избавиться от всех выходных буферов:

Пример #1 Пример использования функции ob_end_clean()

<?php
ob_start();
echo 'Текст, который не отобразится.';
ob_end_clean();
?>

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_get_contents() - Возвращает содержимое буфера вывода
  • ob_flush() - Сброс (отправка) буфера вывода


Сброс (отправка) буфера вывода и отключение буферизации вывода

  • « ob_end_clean
  • ob_flush »
  • PHP Manual
  • Функции контроля вывода
  • Сброс (отправка) буфера вывода и отключение буферизации вывода

ob_end_flush

(PHP 4, PHP 5, PHP 7)

ob_end_flush — Сброс (отправка) буфера вывода и отключение буферизации вывода

Описание

bool ob_end_flush ( void )

Эта функция отправит содержимое буфера вывода (если оно имеется) и отключит эту буферизацию вывода. Если вы хотите использовать содержимое буфера, то вам необходимо вызвать ob_get_contents() перед ob_end_flush(), т.к. все содержимое буфера удаляется при вызове ob_end_flush().

Буфер вывода должен запускаться функцией ob_start() с флагами PHP_OUTPUT_HANDLER_FLUSHABLE и PHP_OUTPUT_HANDLER_REMOVABLE.

Замечание: Эта функция аналогична ob_get_flush(), за исключением того, что ob_get_flush() возвращает содержимое буфера в виде строки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Основной причиной неудачного завершения работы функции является ее вызов без активной буферизации или если буфер не может быть удален (специальный тип буфера).

Ошибки

Если функция завершается ошибкой генерируется E_NOTICE.

Примеры

Пример #1 Пример использования функции ob_end_flush()

Следующий пример показывает простой способ сброса и завершения всех буферов вывода:

<?php
  while (@ob_end_flush());
?>

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_get_contents() - Возвращает содержимое буфера вывода
  • ob_get_flush() - Сброс буфера вывода, возвращая его содержимое и отключение буферизации вывода
  • ob_flush() - Сброс (отправка) буфера вывода
  • ob_end_clean() - Очищает (стирает) буфер вывода и отключает буферизацию вывода


Сброс (отправка) буфера вывода

  • « ob_end_flush
  • ob_get_clean »
  • PHP Manual
  • Функции контроля вывода
  • Сброс (отправка) буфера вывода

ob_flush

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_flush — Сброс (отправка) буфера вывода

Описание

void ob_flush ( void )

Эта функция отправит содержимое буфера вывода (если имеется).
Если необходима дальнейшая обработка буфера вывода, то следует
вызвать ob_get_contents() перед
ob_flush(), так как содержимое буфера будет
удалено после вызова ob_flush().

Эта функция не уничтожает буфер вывода, как это делает ob_end_flush().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ob_get_contents() - Возвращает содержимое буфера вывода
  • ob_clean() - Очищает (стирает) буфер вывода
  • ob_end_flush() - Сброс (отправка) буфера вывода и отключение буферизации вывода
  • ob_end_clean() - Очищает (стирает) буфер вывода и отключает буферизацию вывода


Получить содержимое текущего буфера и удалить его

  • « ob_flush
  • ob_get_contents »
  • PHP Manual
  • Функции контроля вывода
  • Получить содержимое текущего буфера и удалить его

ob_get_clean

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ob_get_clean — Получить содержимое текущего буфера и удалить его

Описание

string ob_get_clean ( void )

Получает содержимое текущего буфера и затем удаляет текущий буфер.

ob_get_clean() по сути выполняет
ob_get_contents() и
ob_end_clean().

Буфер вывода должен запускаться функцией ob_start() с флагом PHP_OUTPUT_HANDLER_CLEANABLE. Иначе не сработает ob_get_clean().

Возвращаемые значения

Возвращает содержимое буфера вывода и заканчивает буферизацию вывода. Если буферизация вывода не активирована, то функция вернет FALSE.

Примеры

Пример #1 Простой пример использования функции ob_get_clean()

<?php

ob_start();

echo "Привет мир";

$out = ob_get_clean();
$out = strtolower($out);

var_dump($out);
?>

Результат выполнения данного примера:

string(11) "привет мир"

Смотрите также

  • ob_get_contents() - Возвращает содержимое буфера вывода
  • ob_start() - Включение буферизации вывода


Возвращает содержимое буфера вывода

  • « ob_get_clean
  • ob_get_flush »
  • PHP Manual
  • Функции контроля вывода
  • Возвращает содержимое буфера вывода

ob_get_contents

(PHP 4, PHP 5, PHP 7)

ob_get_contents — Возвращает содержимое буфера вывода

Описание

string ob_get_contents ( void )

Получает содержимое буфера без его очистки.

Возвращаемые значения

Функция вернет содержимое буфера вывода или FALSE, если буферизация вывода не активирована.

Примеры

Пример #1 Простой пример использования функции ob_get_contents()

<?php

ob_start();

echo "Привет ";

$out1 = ob_get_contents();

echo "Мир";

$out2 = ob_get_contents();

ob_end_clean();

var_dump($out1, $out2);
?>

Результат выполнения данного примера:

string(6) "Привет "
string(11) "Привет Мир"

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_get_length() - Возвращает размер буфера вывода


Сброс буфера вывода, возвращая его содержимое и отключение буферизации вывода

  • « ob_get_contents
  • ob_get_length »
  • PHP Manual
  • Функции контроля вывода
  • Сброс буфера вывода, возвращая его содержимое и отключение буферизации вывода

ob_get_flush

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ob_get_flush — Сброс буфера вывода, возвращая его содержимое и отключение буферизации вывода

Описание

string ob_get_flush ( void )

ob_get_flush() сбрасывает буфер вывода, возвращая его содержимое в виде строки и отключает буферизацию вывода.

Буфер вывода должен запускаться функцией ob_start() с флагом PHP_OUTPUT_HANDLER_FLUSHABLE. Иначе не сработает ob_get_flush().

Замечание: Эта функция аналогична ob_end_flush() за исключением того, что эта функция возвращает буфер в виде строки.

Возвращаемые значения

Возвращает буфер вывода или FALSE если буферизация не активна.

Примеры

Пример #1 Пример использования функции ob_get_flush()

<?php
//Используется output_buffering=On
print_r(ob_list_handlers());

//сохраняет буфер в файл
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);

print_r(ob_list_handlers());
?>

Результат выполнения данного примера:

Array
(
    [0] => default output handler
)
Array
(
)

Смотрите также

  • ob_end_clean() - Очищает (стирает) буфер вывода и отключает буферизацию вывода
  • ob_end_flush() - Сброс (отправка) буфера вывода и отключение буферизации вывода
  • ob_list_handlers() - Список всех используемых обработчиков вывода


Возвращает размер буфера вывода

  • « ob_get_flush
  • ob_get_level »
  • PHP Manual
  • Функции контроля вывода
  • Возвращает размер буфера вывода

ob_get_length

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ob_get_length — Возвращает размер буфера вывода

Описание

int ob_get_length ( void )

Вернет размер в байтах содержимого в буфере вывода.

Возвращаемые значения

Возвращает размер в байтах содержимого буфера вывода или FALSE если буферизация не активна.

Примеры

Пример #1 Простой пример использования функции ob_get_length()

<?php

ob_start();

echo "Привет ";

$len1 = ob_get_length();

echo "Мир";

$len2 = ob_get_length();

ob_end_clean();

echo $len1 . ", ." . $len2;
?>

Результат выполнения данного примера:

7, 10

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_get_contents() - Возвращает содержимое буфера вывода


Возвращает уровень вложенности механизма буферизации вывода

  • « ob_get_length
  • ob_get_status »
  • PHP Manual
  • Функции контроля вывода
  • Возвращает уровень вложенности механизма буферизации вывода

ob_get_level

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_get_level — Возвращает уровень вложенности механизма буферизации вывода

Описание

int ob_get_level ( void )

Вернет уровень вложенности механизма буферизации вывода.

Возвращаемые значения

Возвращает уровень вложенности обработчиков буферизации вывода или 0, если буферизация не активирована.

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_get_contents() - Возвращает содержимое буфера вывода


Получить статус буфера вывода

  • « ob_get_level
  • ob_gzhandler »
  • PHP Manual
  • Функции контроля вывода
  • Получить статус буфера вывода

ob_get_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ob_get_status — Получить статус буфера вывода

Описание

array ob_get_status ([ bool $full_status = FALSE ] )

ob_get_status() возвращает либо информацию о состоянии буфера вывода верхнего уровня, либо, если full_status установлен в TRUE, массив уровней всех активных буферов.

Список параметров

full_status

Если TRUE, то вернет все уровни активных буферов. Если FALSE или не установлен, то вернет статус только самого верхнего уровня.

Возвращаемые значения

Если функция вызвана без параметра full_status или full_status = FALSE, то возвращается простой массив из следующих элементов:

Array
(
    [level] => 2
    [type] => 0
    [status] => 0
    [name] => URL-Rewriter
    [del] => 1
)
Результаты простого вызова ob_get_status()
Ключ | Значение
level | Уровень вложенности вывода
type | PHP_OUTPUT_HANDLER_INTERNAL (0) или PHP_OUTPUT_HANDLER_USER (1)
status | Один из PHP_OUTPUT_HANDLER_START (0), PHP_OUTPUT_HANDLER_CONT (1) или PHP_OUTPUT_HANDLER_END (2)
name | Название действующего обработчика вывода или 'default output handler', если не задан
del | Флаг очистки, установленный ob_start()

Если функция вызвана с full_status = TRUE, то возвращается массив из элементов уровней активных буферов. В качестве ключа используется уровень вывода, и каждый элемент массива содержит в себе массив информации о статусе одного из активных элементов вывода.

Array
(
    [0] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 1
            [status] => 0
            [name] => default output handler
            [del] => 1
        )

    [1] => Array
        (
            [chunk_size] => 0
            [size] => 40960
            [block_size] => 10240
            [type] => 0
            [buffer_size] => 0
            [status] => 0
            [name] => URL-Rewriter
            [del] => 1
        )

)

Полный вывод содержит следующие дополнительные элементы:

Полные результаты ob_get_status()
Ключ | Значение
chunk_size | Размер порции, установленный ob_start()
size | ...
blocksize | ...

Смотрите также

  • ob_get_level() - Возвращает уровень вложенности механизма буферизации вывода
  • ob_list_handlers() - Список всех используемых обработчиков вывода


callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start

  • « ob_get_status
  • ob_implicit_flush »
  • PHP Manual
  • Функции контроля вывода
  • callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start

ob_gzhandler

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ob_gzhandler — callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start

Описание

string ob_gzhandler ( string $buffer , int $mode )

Функция ob_gzhandler() предназначена для использования в качестве callback-функции для ob_start(), чтобы облегчить отправку gz-кодированных данных web-браузерам, поддерживающим сжатие web-страниц. Прежде чем ob_gzhandler() отправит сжатые данные, она определяет, какой тип кодирования содержимого сможет принять браузер ("gzip", "deflate" или вообще никакой) и вернет его содержимое соответствующим образом. Поддерживаются все браузеры, отправляющие корректные заголовки о том, что они принимают сжатые web-страницы. Если браузер не поддерживает сжатие страниц функция вернет FALSE.

Список параметров

buffer

mode

Возвращаемые значения

Примеры

Пример #1 Пример использования функции ob_gzhandler()

<?php

ob_start("ob_gzhandler");

?>
<html>
<body>
<p>Это должно быть сжатой страницей.</p>
</body>
</html>

Примечания

Замечание:

ob_gzhandler() требует наличие расширения zlib.

Замечание:

Вы не можете использовать одновременно ob_gzhandler() и zlib.output_compression. Также обратите внимание, что использование zlib.output_compression предпочтительнее, чем ob_gzhandler().

Смотрите также

  • ob_start() - Включение буферизации вывода
  • ob_end_flush() - Сброс (отправка) буфера вывода и отключение буферизации вывода


Функция включает/выключает неявный сброс

  • « ob_gzhandler
  • ob_list_handlers »
  • PHP Manual
  • Функции контроля вывода
  • Функция включает/выключает неявный сброс

ob_implicit_flush

(PHP 4, PHP 5, PHP 7)

ob_implicit_flush — Функция включает/выключает неявный сброс

Описание

void ob_implicit_flush ([ int $flag = true ] )

ob_implicit_flush() включает или выключает неявный сброс. Неявный сброс приводит к тому, что операция сброса выполняется после каждого вывода, поэтому явные вызовы функции flush() не нужны.

Список параметров

flag

TRUE для включения неявного сброса, FALSE в противном случае.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • flush() - Сброс системного буфера вывода
  • ob_start() - Включение буферизации вывода
  • ob_end_flush() - Сброс (отправка) буфера вывода и отключение буферизации вывода


Список всех используемых обработчиков вывода

  • « ob_implicit_flush
  • ob_start »
  • PHP Manual
  • Функции контроля вывода
  • Список всех используемых обработчиков вывода

ob_list_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ob_list_handlers — Список всех используемых обработчиков вывода

Описание

array ob_list_handlers ( void )

Список всех используемых обработчиков вывода.

Возвращаемые значения

Функция вернет массив с используемыми обработчиками вывода (если имеются). Если включен output_buffering или использовалась анонимная функция вместе с ob_start(), то ob_list_handlers() вернет "default output handler".

Примеры

Пример #1 Пример использования функции ob_list_handlers()

<?php
//используется output_buffering=On
print_r(ob_list_handlers());
ob_end_flush();

ob_start("ob_gzhandler");
print_r(ob_list_handlers());
ob_end_flush();

// анонимная функция
ob_start(function($string) { return $string; });
print_r(ob_list_handlers());
ob_end_flush();
?>

Результат выполнения данного примера:

Array
(
    [0] => default output handler
)

Array
(
    [0] => ob_gzhandler
)

Array
(
    [0] => Closure::__invoke
)

Смотрите также

  • ob_end_clean() - Очищает (стирает) буфер вывода и отключает буферизацию вывода
  • ob_end_flush() - Сброс (отправка) буфера вывода и отключение буферизации вывода
  • ob_get_flush() - Сброс буфера вывода, возвращая его содержимое и отключение буферизации вывода
  • ob_start() - Включение буферизации вывода


Включение буферизации вывода

  • « ob_list_handlers
  • output_add_rewrite_var »
  • PHP Manual
  • Функции контроля вывода
  • Включение буферизации вывода

ob_start

(PHP 4, PHP 5, PHP 7)

ob_start — Включение буферизации вывода

Описание

bool ob_start ([ callable $output_callback = NULL [, int $chunk_size = 0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ]]] )

Эта функция включает буферизацию вывода. Если буферизация вывода активна, вывод скрипта не высылается (кроме заголовков), а сохраняется во внутреннем буфере.

Содержимое этого внутреннего буфера может быть скопировано в строковую
переменную, используя ob_get_contents(). Для вывода
содержимого внутреннего буфера следует использовать ob_end_flush().
В качестве альтернативы можно использовать ob_end_clean()
для уничтожения содержимого буфера.

Внимание

Некоторые web-сервера (например Apache) изменяют рабочую директорию скрипта, когда вызывается callback-функция. Вы можете вернуть ее назад, используя chdir(dirname($_SERVER['SCRIPT_FILENAME'])) в callback-функции.

Буферы вывода помещаются в стек, то есть допускается вызов ob_start() после вызова другой активной ob_start(). При этом необходимо вызывать ob_end_flush() соответствующее количество раз. Если активны несколько callback-функций, вывод последовательно фильтруется для каждой из них в порядке вложения.

Список параметров

output_callback

Можно задать необязательный параметр output_callback. Эта функция принимает строку в виде аргумента и должна также вернуть строку. Она вызывается при сбросе (отправке) или очистке (с помощью ob_flush(), ob_clean() или подобных функций) или если буфер вывода сбрасывается в браузер по окончанию запроса. При вызове функции output_callback, она получает содержимое буфера и должна вернуть обновленное содержимое для буфера вывода, который будет отправлен браузеру. Если output_callback не является допустимой функцией, то документируемая функция вернет FALSE. Описание функции для этого параметра:

string handler ( string $buffer [, int $phase ] )
buffer
Содержимое буфера вывода.
phase
Битовая маска констант PHP_OUTPUT_HANDLER_*.

Если output_callback вернет FALSE, то оригинальная информация отправится в браузер без изменений.

Параметр output_callback может быть игнорирован передачей значения NULL.

ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() и ob_start() не могут вызываться из callback-функций, так как их поведение непредсказуемо. Если вы хотите удалить содержимое буфера, то верните "" (пустую строку) из callback-функции. Вы так же не можете вызывать функции print_r($expression, true) или highlight_file($filename, true) из callback-функций буферизации вывода.

Замечание:

Функция ob_gzhandler() была введена для облегчения отправки gz-кодированных данных web-браузерам, поддерживающим сжатые web-страницы. ob_gzhandler() определяет тип кодировки содержимого, принимаемый браузером, и возвращает вывод соответствующим образом.

chunk_size

Если передан не обязательный параметр chunk_size, то буфер буден сброшен после любого вывода превышающего или равного по размеру chunk_size. Значение по умолчанию 0 означает, что функция вывода будет вызвана, когда буфер будет закрыт.

До PHP 5.4.0, значение 1 было специальным значением, которое устанавливало параметр chunk_size в 4096.

flags

Параметр flags является битовой маской, которая управляет операциями, которые можно совершать над буфером вывода. По умолчанию она позволяет буферу вывода быть очищенным, сброшенным и удаленным, что равносильно значению PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE, или PHP_OUTPUT_HANDLER_STDFLAGS как сокращение этой комбинации.

Each flag controls access to a set of functions, as described below:

Константа | Функции
PHP_OUTPUT_HANDLER_CLEANABLE | ob_clean(), ob_end_clean(), и ob_get_clean().
PHP_OUTPUT_HANDLER_FLUSHABLE | ob_end_flush(), ob_flush(), и ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE | ob_end_clean(), ob_end_flush(), и ob_get_flush().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | В случае, если ob_start() используется внутри callback-функции буфера вывода, эта функция больше не будет приводить к ошибке E_ERROR, а вместо этого будет вызывать E_RECOVERABLE_ERROR, позволяя сторонним обработчикам ошибок поймать ее.
5.4.0 | Третий параметр ob_start() изменен с булева (boolean) параметра erase (который при установке в FALSE предотвращал удаление буфера до тех пор, пока не завершалась работа скрипта) на целочисленный (integer) параметр flags. К сожалению, это означает появление несовместимости API для кода, который использовал третий параметр до версии PHP 5.4.0. Смотрите пример с флагами, чтобы понять как работать с кодом, чтобы он поддерживал совместимость с обеими версиями.
5.4.0 | Параметр chunk_size, установленный в 1, теперь приводит к выводу по 1 байту в выходной буфер.
4.3.2 | Функция вернет FALSE в случае, если output_callback не сможет быть выполнена.

Примеры

Пример #1 Пример callback-функции, определенной пользователем

<?php

function callback($buffer)
{
  // заменить все яблоки апельсинами
  return (str_replace("яблоки", "апельсины", $buffer));
}

ob_start("callback");

?>
<html>
<body>
<p>Это все равно что сравнить яблоки и апельсины.</p>
</body>
</html>
<?php

ob_end_flush();

?>

Результат выполнения данного примера:

<html>
<body>
<p>Это все равно что сравнить апельсины и апельсины.</p>
</body>
</html>

Пример #2 Создание нестираемого буфера вывода с совместимостью с версиями PHP 5.3 и 5.4

<?php

if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
  ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^
    PHP_OUTPUT_HANDLER_REMOVABLE);
} else {
  ob_start(null, 0, false);
}

?>

Смотрите также

  • ob_get_contents() - Возвращает содержимое буфера вывода
  • ob_end_clean() - Очищает (стирает) буфер вывода и отключает буферизацию вывода
  • ob_end_flush() - Сброс (отправка) буфера вывода и отключение буферизации вывода
  • ob_implicit_flush() - Функция включает/выключает неявный сброс
  • ob_gzhandler() - callback-функция, используемая для gzip-сжатия буфера вывода при вызове ob_start
  • ob_iconv_handler() - Преобразует символы из текущей кодировки в кодировку выходного буфера
  • mb_output_handler() - Callback-функция, преобразующая кодировку символов в выходном буфере
  • ob_tidyhandler() - Функция обратного вызова ob_start для восстановление буфера


Добавить обработчик значений URL

  • « ob_start
  • output_reset_rewrite_vars »
  • PHP Manual
  • Функции контроля вывода
  • Добавить обработчик значений URL

output_add_rewrite_var

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

output_add_rewrite_var — Добавить обработчик значений URL

Описание

bool output_add_rewrite_var ( string $name , string $value )

Эта функция добавляет пару имя/значение к механизму перезаписи URL. Имя и значение будут добавлены к URL (в качестве GET параметров) и формам (как скрытые поля ввода) так же, как ID сессии, когда включена прозрачная перезапись ссылок, используя session.use_trans_sid.

Поведение этой функции контролируется параметрами url_rewriter.tags и url_rewriter.hosts php.ini.

Замечание: Вызов этой функции неявно запустит буферизацию вывода, если она еще не активна.

Список параметров

name

Имя параметра.

value

Значение параметра.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | До PHP 7.1.0, переменные перезаписи установленные функцией output_add_rewrite_var() используют тот же буфер модуля сессии "trans sid". С PHP 7.1.0, используется отдельный буфер, url_rewriter.tags используется только для функций вывода, добавлен url_rewriter.hosts.

Примеры

Пример #1 Пример использования функции output_add_rewrite_var()

<?php
output_add_rewrite_var('var', 'value');

// несколько ссылок
echo '<a href="file.php">ссылка</a>
<a href="http://example.com">ссылка2</a>';

// форма
echo '<form action="script.php" method="post">
<input type="text" name="var2" />
</form>';

print_r(ob_list_handlers());
?>

Результат выполнения данного примера:

<a href="file.php?var=value">ссылка</a>
<a href="http://example.com">ссылка2</a>

<form action="script.php" method="post">
<input type="hidden" name="var" value="value" />
<input type="text" name="var2" />
</form>

Array
(
    [0] => URL-Rewriter
)

Смотрите также

  • output_reset_rewrite_vars() - Сброс значений установленных обработчиком URL
  • ob_flush() - Сброс (отправка) буфера вывода
  • ob_list_handlers() - Список всех используемых обработчиков вывода
  • url_rewriter.tags
  • url_rewriter.hosts
  • session.trans_sid_tags
  • session.trans_sid_hosts


Сброс значений установленных обработчиком URL

  • « output_add_rewrite_var
  • PHP Опции/Информация »
  • PHP Manual
  • Функции контроля вывода
  • Сброс значений установленных обработчиком URL

output_reset_rewrite_vars

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

output_reset_rewrite_vars — Сброс значений установленных обработчиком URL

Описание

bool output_reset_rewrite_vars ( void )

Эта функция отключает обработчик URL и удаляет все значения, установленные функцией output_add_rewrite_var().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | До PHP 7.1.0, переменные перезаписи установленные функцией output_add_rewrite_var() используют тот же буфер модуля сессии "trans sid". С PHP 7.1.0, используется отдельный буфер и output_reset_rewrite_vars() только удаляет переменные перезаписи определенные output_add_rewrite_var().

Примеры

Пример #1 Пример использования функции output_reset_rewrite_vars()

<?php
session_start();
output_add_rewrite_var('var', 'value');

echo '<a href="file.php">ссылка</a>';
ob_flush();

output_reset_rewrite_vars();
echo '<a href="file.php">ссылка</a>';
?>

Результат выполнения данного примера:

<a href="file.php?PHPSESSID=xxx&var=value">ссылка</a>
<a href="file.php">ссылка</a>

Смотрите также

  • output_add_rewrite_var() - Добавить обработчик значений URL
  • ob_flush() - Сброс (отправка) буфера вывода
  • ob_list_handlers() - Список всех используемых обработчиков вывода
  • url_rewriter.tags
  • url_rewriter.hosts
  • session.trans_sid_tags
  • session.trans_sid_hosts


PHP Опции и Информация

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • PHP опции/Информационные Функции
    • assert_options — Установка и получение настроек механизма проверки утверждений
    • assert — Проверка утверждения (равен ли результат FALSE)
    • cli_get_process_title — Returns the current process title
    • cli_set_process_title — Sets the process title
    • dl — Загружает PHP расширение во время выполнения
    • extension_loaded — Определение, загружено ли расширение
    • gc_collect_cycles — Принудительный запуск сборщика мусора
    • gc_disable — Отключает сборщик циклических ссылок
    • gc_enable — Включает сборщик циклических ссылок
    • gc_enabled — Возвращает текущее состояние сборщика циклических ссылок
    • gc_mem_caches — Reclaims memory used by the Zend Engine memory manager
    • 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 — Returns active resources
    • getenv — Получение значения переменной окружения
    • getlastmod — Определение времени последней модификации страницы
    • getmygid — Получение GID владельца PHP скрипта
    • getmyinode — Получение значения inode текущего скрипта
    • getmypid — Получение ID процесса PHP
    • getmyuid — Получение UID владельца скрипта PHP
    • getopt — Извлечение параметров из списка аргументов командной строки
    • getrusage — Получает информацию об использовании текущего ресурса
    • ini_alter — Псевдоним ini_set
    • ini_get_all — Получение всех настроек конфигурации
    • ini_get — Получает значение настройки конфигурации
    • ini_restore — Восстанавливает значение настройки конфигурации
    • ini_set — Установка значения настройки конфигурации
    • magic_quotes_runtime — Псевдоним set_magic_quotes_runtime
    • main — Заглушка для main
    • memory_get_peak_usage — Возвращает пиковое значение объема памяти, выделенной PHP
    • memory_get_usage — Возвращает количество памяти выделенной PHP
    • php_ini_loaded_file — Получение адреса загруженного php.ini файла
    • php_ini_scanned_files — Возвращает список .ini файлов найденных в дополнительной ini директории
    • php_logo_guid — Получение guid логотипа
    • php_sapi_name — Возвращает тип интерфейса между веб-сервером и PHP
    • php_uname — Выдает информацию об операционной системе, на которой запущен PHP
    • phpcredits — Выводит список разработчиков PHP
    • phpinfo — Выводит информацию о текущей конфигурации PHP
    • phpversion — Выдает текущую версию PHP
    • putenv — Устанавливает значение переменной среды
    • restore_include_path — Восстанавливает изначальное значение настройки конфигурации include_path
    • set_include_path — Устанавливает значение настройки конфигурации include_path
    • set_magic_quotes_runtime — Установка текущего значения настройки magic_quotes_runtime
    • set_time_limit — Ограничение времени выполнения скрипта
    • sys_get_temp_dir — Возвращает путь к директории временных файлов
    • version_compare — Сравнивает две "стандартизованные" строки с номером версии
    • zend_logo_guid — Получает Zend guid
    • zend_thread_id — Возвращает уникальный идентификатор текущего потока выполнения
    • zend_version — Получает версию Zend движка


Введение

Эти функции позволяют Вам получить множество информации о самом PHP, например, установки конфигурации, загруженные расширения, версию и многое другое. Вы так же найдете функции для задания параметров работы PHP. Вероятно, самую известную функцию в PHP - phpinfo() - можно найти здесь.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки PHP/Inf-настройки конфигурации
Имя | По умолчанию | Меняемо | Список изменений
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.quiet_eval | "0" | PHP_INI_ALL |
assert.exception | "0" | PHP_INI_ALL | Доступна с версии PHP 7.0.0.
enable_dl | "1" | PHP_INI_SYSTEM | Эта возможность устарела и будет обязательно удалена в будущем.
max_execution_time | "30" | PHP_INI_ALL |
max_input_time | "-1" | PHP_INI_PERDIR | Доступна с PHP 4.3.0.
max_input_nesting_level | "64" | PHP_INI_PERDIR | Доступна с PHP 5.2.3.
max_input_vars | 1000 | PHP_INI_PERDIR | Доступна с PHP 5.3.9.
magic_quotes_gpc | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. Удалена в PHP 5.4.0.
magic_quotes_runtime | "0" | PHP_INI_ALL | Удалена в PHP 5.4.0.
zend.enable_gc | "1" | PHP_INI_ALL | Доступна с PHP 5.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

assert.active boolean

Включение assert() проверки.

assert.bail boolean

Завершение работы скрипта при провале проверки утверждений.

assert.warning boolean

Выдача PHP предупреждений для каждой проваленной проверки утверждения.

assert.callback string

Пользовательская функция, вызываемая при провале проверки утверждений.

assert.quiet_eval boolean

Используйте эту настройку функции error_reporting() во время выполнения проверки утверждений. При включении настройки сообщения об ошибках во время проверки утверждений выдаваться не будут (это неявный вызов error_reporting(0)). Если настройка выключена, ошибки будут выдаваться в соответствии с настройками error_reporting()

assert.exception boolean

Генерирует AssertionError исключение для проверки, окончившейся неудачно.

enable_dl boolean

Эта директива может оказаться полезной только в PHP, используемом в качестве Apache модуля. С ее помощью можно включать динамическую подгрузку расширений посредством функции dl(). Динамическая загрузка может быть включена или отключена для каждого отдельно взятого виртуального сервера или директории.

Главной причиной, по которой требуется выключение динамической загрузки, является безопасность. С помощью динамической загрузки можно обойти все open_basedir ограничения. По умолчанию динамическая загрузка разрешена, за исключением работы в безопасный режим. В безопасный режим невозможен вызов dl().

max_execution_time integer

Эта директива задает максимальное время в секундах, в течение которого скрипт должен полностью загрузиться. Если этого не происходит, анализатор завершает его работу. Этот механизм помогает предотвратить зависание сервера из-за криво написанного скрипта. По умолчанию на загрузку дается 30 секунд. Если PHP запущен из командной строки, это значение по умолчанию равно 0.

На максимальное время выполнения не влияют системные вызовы, потоковые операции и т.п. За дополнительной информацией обращайтесь к документации к функции set_time_limit().

При работе в безопасный режим эту настройку нельзя изменить функцией ini_set(). Если значение все же нужно изменить, надо либо выключить безопасный режим, либо изменить значение прямо в php.ini.

Web-серверы обычно имеют свои настройки таймаута, по истечении которого сами завершают выполнение PHP скрипта. В Apache есть директива Timeout, в IIS есть функция CGI timeout. В обоих случаях по умолчанию установлено 300 секунд. Точные значения можно узнать из документации к Web-серверу.

max_input_time integer

Эта директива задает максимальное время в секундах, в течение которого скрипт должен разобрать все входные данные, переданные запросами вроде POST или GET. Это время измеряется от момента, когда PHP вызван на сервере до момента, когда скрипт начинает выполняться.

max_input_nesting_level integer

Задает максимальную глубину вложенности входных переменных (т.е. $_GET, $_POST.)

max_input_vars integer

Сколько входных переменных может быть принято в одном запросе (ограничение накладывается на каждую из глобальных переменных $_GET, $_POST и $_COOKIE отдельно). Использование этой директивы снижает вероятность сбоев в случае атак с использованием хеш-коллизий. Если входных переменных больше, чем задано директивой, выбрасывается предупреждение E_WARNING, и все последующие переменные в запросе игнорируются.

magic_quotes_gpc boolean
Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Задает режим magic_quotes для GPC (Get/Post/Cookie) операций. Если magic_quotes включен, все ' (одинарные кавычки), " (двойные кавычки), \ (обратный слеш) и NUL экранируются обратным слешем автоматически.

Замечание:

Если включена директива magic_quotes_sybase, она замещает magic_quotes_gpc. Если включены обе директивы, то экранироваться будут только одинарные кавычки, причем экранированы они будут теми же кавычками: ''. Двойные кавычки, обратные слеши и NUL при этом останутся нетронутыми и неэкранированными.

См. также get_magic_quotes_gpc()

magic_quotes_runtime boolean
Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Если включена директива magic_quotes_runtime, большинство функций возвращающих данные из внешних источников, таких как базы данных или текстовые файлы, будут экранировать кавычки обратным слешем. Если при этом директива magic_quotes_sybase также включена, то одинарные кавычки будут экранироваться одинарной кавычкой вместо обратного слеша.

Функции, на которые распростаняется действие директивы magic_quotes_runtime (исключая функции из PECL):

  • get_meta_tags()
  • file_get_contents()
  • file()
  • fgets()
  • fwrite()
  • fread()
  • fputcsv()
  • stream_socket_recvfrom()
  • exec()
  • system()
  • passthru()
  • stream_get_contents()
  • bzread()
  • gzfile()
  • gzgets()
  • gzwrite()
  • gzread()
  • exif_read_data()
  • dba_insert()
  • dba_replace()
  • dba_fetch()
  • ibase_fetch_row()
  • ibase_fetch_assoc()
  • ibase_fetch_object()
  • mssql_fetch_row()
  • mssql_fetch_object()
  • mssql_fetch_array()
  • mssql_fetch_assoc()
  • mysqli_fetch_row()
  • mysqli_fetch_array()
  • mysqli_fetch_assoc()
  • mysqli_fetch_object()
  • pg_fetch_row()
  • pg_fetch_assoc()
  • pg_fetch_array()
  • pg_fetch_object()
  • pg_fetch_all()
  • pg_select()
  • sybase_fetch_object()
  • sybase_fetch_array()
  • sybase_fetch_assoc()
  • SplFileObject::fgets()
  • SplFileObject::fgetcsv()
  • SplFileObject::fwrite()

zend.enable_gc boolean

Включает или отключает сборщик циклических ссылок.


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Предопределенные константы phpcredits()
Константа | Значение | Описание
CREDITS_GROUP | 1 | Список разработчиков ядра PHP
CREDITS_GENERAL | 2 | Главные разработчики: Дизайн и концепции языка, авторы PHP и SAPI модуля.
CREDITS_SAPI | 4 | Список серверных API для PHP и их авторы.
CREDITS_MODULES | 8 | Список расширений для PHP и их авторы.
CREDITS_DOCS | 16 | Члены команды разработчиков документации.
CREDITS_FULLPAGE | 32 | Обычно используется в сочетании с другими флагами. Означает, что HTML страница должна печататься вместе с дополнительной информацией (за которую отвечают другие флаги).
CREDITS_QA | 64 | Члены команды контроля качества.
CREDITS_ALL | -1 | Все разработчики, аналогично использованию: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_QA CREDITS_FULLPAGE. Будет сгенерирована HTML страница с соответствующими тэгами. Это значение по умолчанию.
Константы phpinfo()
Константа | Значение | Описание
INFO_GENERAL | 1 | Строка конфигурации, размещение php.ini, дата сборки, Web-сервер, система и др.
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. См. также » Чаво по лицензиям.
INFO_ALL | -1 | Константа по умолчанию. Показывает всю информацию описанную выше.
INI константы
Константа | Значение | Описание
INI_USER | 1 | Не используется
INI_PERDIR | 2 | Не используется
INI_SYSTEM | 4 | Не используется
INI_ALL | 7 | Не используется

Константы проверки утверждений. Эти значения используются для задания настроек assert_options().

assert() константы
Константа | INI настройка | Описание
ASSERT_ACTIVE | assert.active | Включение assert() проверок.
ASSERT_CALLBACK | assert.callback | Обратный вызов при провале проверки утверждения.
ASSERT_BAIL | assert.bail | Прервать выполнение при провале проверки утверждения.
ASSERT_WARNING | assert.warning | Выдавать предупреждение PHP в случае провала проверки каждого утверждения
ASSERT_QUIET_EVAL | assert.quiet_eval | Отключить error_reporting в время выполнения проверки утверждения.

Следующие константы доступны только под Windows. Они позволяют извлечь различную информацию о версиях программного обеспечения. Все константы доступны с PHP 5.3.0.

Специфичные для Windows константы
Константа | Описание
PHP_WINDOWS_VERSION_MAJOR | Основной номер версии Windows, это может быть 4 (NT4/Me/98/95), 5 (XP/2003 R2/2003/2000) или 6 (Vista/2008/7/8/8.1).
PHP_WINDOWS_VERSION_MINOR | Уточняющий номер версии Windows, это может быть 0 (Vista/2008/2000/NT4/95), 1 (XP), 2 (2003 R2/2003/XP x64), 10 (98) или 90 (ME).
PHP_WINDOWS_VERSION_BUILD | Номер сборки Windows (например, Windows Vista SP1 имеет номер сборки 6001)
PHP_WINDOWS_VERSION_PLATFORM | Платформа, на которой PHP работает на данный момент. Возможны значения 2 для Windows Vista/XP/2000/NT4, Server 2008/2003, а для Windows ME/98/95 это значение будет 1.
PHP_WINDOWS_VERSION_SP_MAJOR | Основной номер версии установленного сервис-пакета. Возможно значение 0, если пакетов не установлено. Например, в Windows XP с 3м сервис паком это значение будет 3.
PHP_WINDOWS_VERSION_SP_MINOR | Дополнительный номер установленного пакета обновлений. Значение 0 говорит от том, что пакетов не установлено.
PHP_WINDOWS_VERSION_SUITEMASK | Битовая маска указывающая, какой дополнительный функционал установлен в системе Windows. Ниже приведена таблица с возможными значениями битового поля.
PHP_WINDOWS_VERSION_PRODUCTTYPE | Содержит значение, определяющее константы вида PHP_WINDOWS_NT_*. Этим значением может быть одна из констант PHP_WINDOWS_NT_* указывающая на тип платформы.
PHP_WINDOWS_NT_DOMAIN_CONTROLLER | Контроллер домена
PHP_WINDOWS_NT_SERVER | Серверная система (напр. Server 2008/2003/2000). Надо учесть, что если сервер является контроллером домена, вместо этой константы будет выдаваться PHP_WINDOWS_NT_DOMAIN_CONTROLLER.
PHP_WINDOWS_NT_WORKSTATION | Система рабочей станции (напр. Vista/XP/2000/NT4)

Таблица значений битовой маски PHP_WINDOWS_VERSION_SUITEMASK.

Битовое поле функциональных возможностей Windows
Биты | Описание
0x00000004 | Установлены компоненты Microsoft BackOffice.
0x00000400 | Установлен Windows Server 2003 Web Edition.
0x00004000 | Установлен Windows Server 2003 Compute Cluster Edition.
0x00000080 | Установлен Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition или Windows 2000 Datacenter Server.
0x00000002 | Установлен Windows Server 2008 Enterprise, Windows Server 2003, Enterprise Edition, Windows 2000 Advanced Server или Windows NT Server 4.0 Enterprise Edition.
0x00000040 | Установлен Windows XP Embedded.
0x00000200 | Установлен Windows Vista Home Premium, Windows Vista Home Basic или Windows XP Home Edition.
0x00000100 | Поддерживается удаленный рабочий стол, но только в интерактивном режиме. Это значение устанавливается до тех пор, пока система не будет запущена в режиме сервера приложений.
0x00000001 | Microsoft Small Business Server был установлен изначально, однако мог быть проведен апгрейд системы до другой версии Windows.
0x00000020 | Microsoft Small Business Server установлен с ограниченной лицензией.
0x00002000 | Установлен Windows Storage Server 2003 R2 или Windows Storage Server 2003.
0x00000010 | Установлены терминальные службы. Это значение всегда установлено. Если это значение установлено, значение 0x00000100 не задано, то система работает в режиме сервера приложений.
0x00008000 | Установлен Windows Home Server.


PHP опции/Информационные Функции

Содержание

  • assert_options — Установка и получение настроек механизма проверки утверждений
  • assert — Проверка утверждения (равен ли результат FALSE)
  • cli_get_process_title — Returns the current process title
  • cli_set_process_title — Sets the process title
  • dl — Загружает PHP расширение во время выполнения
  • extension_loaded — Определение, загружено ли расширение
  • gc_collect_cycles — Принудительный запуск сборщика мусора
  • gc_disable — Отключает сборщик циклических ссылок
  • gc_enable — Включает сборщик циклических ссылок
  • gc_enabled — Возвращает текущее состояние сборщика циклических ссылок
  • gc_mem_caches — Reclaims memory used by the Zend Engine memory manager
  • 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 — Returns active resources
  • getenv — Получение значения переменной окружения
  • getlastmod — Определение времени последней модификации страницы
  • getmygid — Получение GID владельца PHP скрипта
  • getmyinode — Получение значения inode текущего скрипта
  • getmypid — Получение ID процесса PHP
  • getmyuid — Получение UID владельца скрипта PHP
  • getopt — Извлечение параметров из списка аргументов командной строки
  • getrusage — Получает информацию об использовании текущего ресурса
  • ini_alter — Псевдоним ini_set
  • ini_get_all — Получение всех настроек конфигурации
  • ini_get — Получает значение настройки конфигурации
  • ini_restore — Восстанавливает значение настройки конфигурации
  • ini_set — Установка значения настройки конфигурации
  • magic_quotes_runtime — Псевдоним set_magic_quotes_runtime
  • main — Заглушка для main
  • memory_get_peak_usage — Возвращает пиковое значение объема памяти, выделенной PHP
  • memory_get_usage — Возвращает количество памяти выделенной PHP
  • php_ini_loaded_file — Получение адреса загруженного php.ini файла
  • php_ini_scanned_files — Возвращает список .ini файлов найденных в дополнительной ini директории
  • php_logo_guid — Получение guid логотипа
  • php_sapi_name — Возвращает тип интерфейса между веб-сервером и PHP
  • php_uname — Выдает информацию об операционной системе, на которой запущен PHP
  • phpcredits — Выводит список разработчиков PHP
  • phpinfo — Выводит информацию о текущей конфигурации PHP
  • phpversion — Выдает текущую версию PHP
  • putenv — Устанавливает значение переменной среды
  • restore_include_path — Восстанавливает изначальное значение настройки конфигурации include_path
  • set_include_path — Устанавливает значение настройки конфигурации include_path
  • set_magic_quotes_runtime — Установка текущего значения настройки magic_quotes_runtime
  • set_time_limit — Ограничение времени выполнения скрипта
  • sys_get_temp_dir — Возвращает путь к директории временных файлов
  • version_compare — Сравнивает две "стандартизованные" строки с номером версии
  • zend_logo_guid — Получает Zend guid
  • zend_thread_id — Возвращает уникальный идентификатор текущего потока выполнения
  • zend_version — Получает версию Zend движка


Установка и получение настроек механизма проверки утверждений

  • « PHP опции/Информационные Функции
  • assert »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Установка и получение настроек механизма проверки утверждений

assert_options

(PHP 4, PHP 5, PHP 7)

assert_options — Установка и получение настроек механизма проверки утверждений

Описание

mixed assert_options ( int $what [, mixed $value ] )

Задание значений настроек механизма проверки утверждений assert() или получение их текущих значений.

Список параметров

what

Настройки механизма проверки утверждений
Настройка | параметр в INI файле | Значение по умолчанию | Описание
ASSERT_ACTIVE | assert.active | 1 | включение механизма проверки утверждений
ASSERT_WARNING | assert.warning | 1 | вывод PHP предупреждения для каждой неудачной проверки
ASSERT_BAIL | assert.bail | 0 | завершить выполнение в случае провала проверки
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | отключить error_reporting во время проверки утверждения
ASSERT_CALLBACK | assert.callback | (NULL) | Callback-функция, которую необходимо вызвать для провалившего проверку утверждения

value

Необязательный аргумент, новое значение настройки.

Возвращаемые значения

Возвращает исходное значение настройки или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования assert_options()

<?php
// Наша функция обработчик
// неудавшихся проверок
function assert_failure()
{
    echo 'Проверка провалена';
}

// Тестовая функция
function test_assert($parameter)
{
    assert(is_bool($parameter));
}

// настройки проверки
assert_options(ASSERT_ACTIVE,   true);
assert_options(ASSERT_BAIL,     true);
assert_options(ASSERT_WARNING,  false);
assert_options(ASSERT_CALLBACK, 'assert_failure');

// заведомо ошибочное утверждение
test_assert(1);

// Этот код не будет выполняться, пока ASSERT_BAIL
// равен true
echo 'Никогда не будет выведено';
?>

Смотрите также

  • assert() - Проверка утверждения (равен ли результат FALSE)


Проверка утверждения (равен ли результат FALSE)

  • « assert_options
  • cli_get_process_title »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Проверка утверждения (равен ли результат FALSE)

assert

(PHP 4, PHP 5, PHP 7)

assert — Проверка утверждения (равен ли результат FALSE)

Описание

PHP 5 и 7

bool assert ( mixed $assertion [, string $description ] )

PHP 7

bool assert ( mixed $assertion [, Throwable $exception ] )

assert() проверит заданное утверждение assertion и совершит соответствующее действие, если результатом проверки окажется FALSE.

Традиционная работа функции assert (PHP 5 и 7)

Если assertion задается в виде строки, оно будет рассматриваться функцией assert() как PHP код. Представление assertion в виде строки имеет свои преимущества. Во-первых, выключение проверки утверждений снижает накладные расходы. Во-вторых, сообщения о провале проверки будут содержать само утверждение assertion. То есть, если передать в качестве assertion какое-либо условное выражение, это условие невозможно будет получить в явном виде, в котором оно передавалось в проверяющую функцию, которую вы возможно определили с помощью assert_options(). Это условное выражение будет вычислено и преобразовано в строку до вызова проверяющей функции, соответственно логическое FALSE будет фигурировать в сообщении как пустая строка.

Утверждения должны использоваться только в целях отладки. Их можно использовать для тестирования каких-то условий, которые в штатных ситуациях всегда принимают значение TRUE, обратное должно указывать на программные ошибки. Также их можно использовать, чтобы удостовериться в наличии каких-либо расширений или системных ограничений.

Утверждения не должны использоваться в обычных операциях, таких как проверка входных параметров. Скрипт должен корректно выполняться, если отключить проверку утверждений.

Поведение функции assert() можно изменять с помощью функции assert_options() или заданием .ini-настроек.

Функция assert_options() и директива ASSERT_CALLBACK позволяют задать callback-функцию, которая будет вызываться при провале проверки утверждения.

Возможность вызывать callback-функции из assert() может быть полезна для создания автоматизированных тестовых пакетов. Посредством этих функций можно извлекать код, переданный на проверку вместе с информацией о том, где эта проверка была осуществлена. Подобную информацию можно получить и другими методами, однако использование утверждений быстрей и проще.

Callback-функция должна принимать три аргумента. Первый аргумент должен содержать файл, в котором утверждение не прошло проверку. Второй аргумент отвечает за номер строки в этом файле. В третьем аргументе будет передаваться выражение, содержащее ошибку (если таких несколько, строковые значение, вроде 1 или "два" не будут передаваться через этот аргумент). Пользователи PHP версий 5.4.8 и выше могут задать четвертый необязательный аргумент description, который будет также передан в функцию assert().

Ожидания (только PHP 7)

В PHP 7 assert() это языковая конструкция, что позволяет определять ожидания: утверждения которые воздействуют в резработческом и тестовом окружениях, но в целях оптимизации отключены на продуктивной среде.

В то время как функция assert_options() может по прежнему быть использована для контроля над поведением программы описанным выше образом, для обратной совместимости, но в PHP 7 код должен использовать две новые конфигурационные директивы для управления поведением assert() и не вызывать функцию assert_options().

Конфигурационные директивы PHP 7 для функции assert()
Директива Значение по умолчанию Возможные значения
zend.assertions 1
  • 1: генерирует и выполняет код (режим разработки)
  • 0: генерирует код, но перепрыгивает через него во время выполнения
  • -1: не генерирует код (продуктивный режим)
assert.exception 0
  • 1: выбрасывает исключение когда утверждение ложно выбрасывает объект, переданный в параметре exception, либо выбрасывает экземпляр нового класса AssertionError, если параметр exception не передан.
  • 0: использует или создает экземпляр класса Throwable как сказано выше, но только генерирует предупреждение на основе этого объекта, но не выбрасывает его (для совместимости с поведением PHP 5)

Список параметров

assertion

Утверждения. В PHP 5, они могут быть либо string чтобы быть выполнены или boolean для проверки. В PHP 7, это могут быть также любые выражения, возвращающие значение, которые могут быть выполнены и их результат использован для определения успешности проверки.

Описание

Описание- необязательный параметр, который будет добавлен в сообщение, если проверка утверждения assertion будет провалена.

Исключение

В PHP 7, второй параметр может быть объектом Throwable, вместо string. Этот объект будет выброшен в случае провала проверки утверждения при включенной конфигурационной директиве assert.exception.

Возвращаемые значения

FALSE если проверка провалена, и TRUE в противном случае.

Список изменений

Версия | Описание
7.0.0 | assert() теперь языковая конструкция, а не функция. assertion() теперь может быть выражением. Второй параметр теперь интерпретируется как исключение exception (если передан объект Throwable), или как описание description, поддерживаемое с версии PHP 5.4.8 и далее.
5.4.8 | Добавлен параметр description. Параметр description также поддерживает callback функции в режиме ASSERT_CALLBACK, который может быть установлен четвертым аргументом argument.

Примеры

Традиционная работа функции assert (PHP 5 и 7)

Пример #1 Обработка неудачных проверок утверждений с использованием собственного обработчика

<?php
// Активация утверждений и погашение вывода ошибок
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Создание обработчика
function my_assert_handler($file, $line, $code)
{
    echo "<hr>Assertion Failed:
        File '$file'<br />
        Line '$line'<br />
        Code '$code'<br /><hr />";
}

// Подключение callback функции
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Выполнение проверки утверждения, которое завершится неудачей
assert('mysql_query("")');
?>

Пример #2 Использование собственного обработчика для вывода описания

<?php
// Активация утверждений и погашение вывода ошибок
assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_QUIET_EVAL, 1);

// Создание обработчика
function my_assert_handler($file, $line, $code, $desc = null)
{
    echo "Assertion failed at $file:$line: $code";
    if ($desc) {
        echo ": $desc";
    }
    echo "\n";
}

// Подключение callback функции
assert_options(ASSERT_CALLBACK, 'my_assert_handler');

// Выполнение проверки утверждения, которое завершится неудачей
assert('2 < 1');
assert('2 < 1', 'Два больше чем один');
?>

Результат выполнения данного примера:

 Assertion failed at test.php:21: 2 < 1
 Assertion failed at test.php:22: 2 < 1: Два больше чем один

Ожидания (только PHP 7)

Пример #3 Ожидания без собственного исключения

<?php
assert(true == false);
echo 'Hi!';
?>

При директиве zend.assertions установленной в 0, данный код выведет:

Hi!

При директивах zend.assertions установленной в 1 и assert.exception установленной в 0, данный пример выведет:

Warning: assert(): assert(true == false) failed in - on line 2
Hi!

При директивах zend.assertions установленной в 1 и assert.exception установленной в 1, данный код выведет:

Fatal error: Uncaught AssertionError: assert(true == false) in -:2
Stack trace:
#0 -(2): assert(false, 'assert(true == ...')
#1 {main}
  thrown in - on line 2

Пример #4 Ожидания собственным исключением

<?php
class CustomError extends AssertionError {}

assert(true == false, new CustomError('True is not false!'));
echo 'Hi!';
?>

При директиве zend.assertions установленной в 0, данный код выведет:

Hi!

При директивах zend.assertions установленной в 1 и assert.exception установленной в 0, данный код выведет:

Warning: assert(): CustomError: True is not false! in -:4
Stack trace:
#0 {main} failed in - on line 4
Hi!

При директивах zend.assertions установленной в 1 и assert.exception установленной в 1, даный код выведет:

Fatal error: Uncaught CustomError: True is not false! in -:4
Stack trace:
#0 {main}
  thrown in - on line 4

Смотрите также

  • assert_options() - Установка и получение настроек механизма проверки утверждений


Returns the current process title

  • « assert
  • cli_set_process_title »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Returns the current process title

cli_get_process_title

(PHP 5 >= 5.5.0, PHP 7)

cli_get_process_title — Returns the current process title

Описание

string cli_get_process_title ( void )

Returns the current process title, as set by cli_set_process_title(). Note that this may not exactly match what is shown in ps or top, depending on your operating system.

This function is available only in CLI mode.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return a string with the current process title or NULL on error.

Ошибки

An E_WARNING will be generated if the operating system is unsupported.

Примеры

Пример #1 cli_get_process_title() example

<?php
echo "Process title: " . cli_get_process_title() . "\n";
?>

Смотрите также

  • cli_set_process_title() - Sets the process title


Sets the process title

  • « cli_get_process_title
  • dl »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Sets the process title

cli_set_process_title

(PHP 5 >= 5.5.0, PHP 7)

cli_set_process_title — Sets the process title

Описание

bool cli_set_process_title ( string $title )

Sets the process title visible in tools such as top and ps. This function is available only in CLI mode.

Список параметров

title

The new title.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

An E_WARNING will be generated if the operating system is unsupported.

Примеры

Пример #1 cli_set_process_title() example

<?php
$title = "My Amazing PHP Script";
$pid = getmypid(); // you can use this to see your process title in ps

if (!cli_set_process_title($title)) {
    echo "Unable to set process title for PID $pid...\n";
    exit(1);
} else {
    echo "The process title '$title' for PID $pid has been set for your process!\n";
    sleep(5);
}
?>

Смотрите также

  • cli_get_process_title() - Returns the current process title
  • setproctitle() - Set the process title


Загружает PHP расширение во время выполнения

  • « cli_set_process_title
  • extension_loaded »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Загружает PHP расширение во время выполнения

dl

(PHP 4, PHP 5, PHP 7)

dl — Загружает PHP расширение во время выполнения

Описание

bool dl ( string $library )

Загружает PHP расширение заданное аргументом library.

Чтобы проверить, что заданное расширение уже загружено, используйте функцию extension_loaded(). Эта функция работает как для встроенных расширений, так и для динамически загруженных (т.е. загруженных как через php.ini, так и через dl()).

Внимание

Эта функция удалена из некоторых SAPI в PHP 5.3.0, и удалена в PHP-FPM в PHP 7.0.0.

Список параметров

library

Этот аргумент содержит только имя файла расширения, которое требуется загрузить. Это имя зависит от платформы. Например, расширение sockets (если скомпилировано, как загружаемый модуль, а не модуль по умолчанию!) будет называться sockets.so на Unix платформах, и php_sockets.dll в Windows среде.

Директория, из которой расширение должно быть загружено также зависит от платформы:

Windows - Если явно не задано в php.ini, расширение будет грузиться из C:\php5\ по умолчанию.

Unix - Если явно не задано в php.ini, директория по умолчанию зависит от

  • PHP собран с настройкой --enable-debug или без нее
  • PHP собран с (экспериментально) ZTS (Zend Thread Safety) поддержкой или нет
  • текущего внутреннего номера ZEND_MODULE_API_NO (номер внутреннего модуля Zend API, который как правило является датой значительного изменения API модуля, например 20010901)
Принимая во внимание вышесказанное, получаем следующие умолчания для директории расширения <install-dir>/lib/php/extensions/ <debug-or-not>-<zts-or-not>-ZEND_MODULE_API_NO, например, /usr/local/php/lib/php/extensions/debug-non-zts-20010901 или /usr/local/php/lib/php/extensions/no-debug-zts-20010901.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если механизм загрузки модулей недоступен или отключен (либо значением off настройки enable_dl, либо включен безопасный режим в php.ini), будет выдана ошибка E_ERROR, и выполнение будет остановлено. Если dl() не сможет загрузить заданную библиотеку, то в дополнение к FALSE будет выдано сообщение E_WARNING.

Примеры

Пример #1 Примеры использования dl()

<?php
// Пример загрузки расширения, основываясь на ОС
if (!extension_loaded('sqlite')) {
    if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
        dl('php_sqlite.dll');
    } else {
        dl('sqlite.so');
    }
}

// Или на константе PHP_SHLIB_SUFFIX
if (!extension_loaded('sqlite')) {
    $prefix = (PHP_SHLIB_SUFFIX === 'dll') ? 'php_' : '';
    dl($prefix . 'sqlite.' . PHP_SHLIB_SUFFIX);
}
?>

Список изменений

Версия | Описание
7.0.0 | dl() запрещено в PHP-FPM.
5.3.9 | dl() разрешено в PHP-FPM, хоть и не рекомендовано.
5.3.0 | dl() выключен в некоторых SAPI в связи с нестабильностью работы. Из SAPI, поддерживающих dl(), остались только CLI и Embed. Используйте вместо dl Директивы загрузки расширений.

Примечания

Замечание:

dl() не поддерживается в PHP собранных с поддержкой ZTS. Используйте вместо dl Директивы загрузки расширений.

Замечание:

dl() чувствительна к регистру на Unix платформах.

Замечание: Эта функция недоступна в безопасном режиме.

Смотрите также

  • Директивы загрузки расширений
  • extension_loaded() - Определение, загружено ли расширение


Определение, загружено ли расширение

  • « dl
  • gc_collect_cycles »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Определение, загружено ли расширение

extension_loaded

(PHP 4, PHP 5, PHP 7)

extension_loaded — Определение, загружено ли расширение

Описание

bool extension_loaded ( string $name )

Определяет, загружено ли указанное расширение.

Список параметров

name

Имя расширения. Этот параметр регистронезависимый.

Чтобы посмотреть все имена расширений, воспользуйтесь функцией phpinfo(). Если вы работаете с CGI или CLI версией PHP, используйте параметр -m для отображения списка доступных расширений:

$ php -m
[PHP Modules]
xml
tokenizer
standard
sockets
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

Возвращаемые значения

Возвращает TRUE, если расширение с заданным именем name загружено либо FALSE в противном случае.

Примеры

Пример #1 Пример использования extension_loaded()

<?php
if (!extension_loaded('gd')) {
    if (!dl('gd.so')) {
        exit;
    }
}
?>

Смотрите также

  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • get_extension_funcs() - Возвращает массив имен функций модуля
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • dl() - Загружает PHP расширение во время выполнения
  • function_exists() - Возвращает TRUE, если указанная функция определена


Принудительный запуск сборщика мусора

  • « extension_loaded
  • gc_disable »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Принудительный запуск сборщика мусора

gc_collect_cycles

(PHP 5 >= 5.3.0, PHP 7)

gc_collect_cycles — Принудительный запуск сборщика мусора

Описание

int gc_collect_cycles ( void )

Явным образом запускает механизм поиска циклических ссылок.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число найденных ссылок.

Смотрите также

  • Уборка мусора


Отключает сборщик циклических ссылок

  • « gc_collect_cycles
  • gc_enable »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Отключает сборщик циклических ссылок

gc_disable

(PHP 5 >= 5.3.0, PHP 7)

gc_disable — Отключает сборщик циклических ссылок

Описание

void gc_disable ( void )

Отключает сборщик циклических ссылок, путем установки значения zend.enable_gc в 0.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Уборка мусора


Включает сборщик циклических ссылок

  • « gc_disable
  • gc_enabled »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Включает сборщик циклических ссылок

gc_enable

(PHP 5 >= 5.3.0, PHP 7)

gc_enable — Включает сборщик циклических ссылок

Описание

void gc_enable ( void )

Включает сборщик циклических ссылок, устанавливая zend.enable_gc в 1.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Уборка мусора


Возвращает текущее состояние сборщика циклических ссылок

  • « gc_enable
  • gc_mem_caches »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Возвращает текущее состояние сборщика циклических ссылок

gc_enabled

(PHP 5 >= 5.3.0, PHP 7)

gc_enabled — Возвращает текущее состояние сборщика циклических ссылок

Описание

bool gc_enabled ( void )

Возвращает текущее состояние сборщика циклических ссылок.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если сборщик мусора включен, FALSE в противном случае.

Примеры

Пример #1 Пример использования gc_enabled()

<?php
if(gc_enabled()) gc_collect_cycles();
?>

Смотрите также

  • Уборка мусора


Reclaims memory used by the Zend Engine memory manager

  • « gc_enabled
  • get_cfg_var »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Reclaims memory used by the Zend Engine memory manager

gc_mem_caches

(PHP 7)

gc_mem_caches — Reclaims memory used by the Zend Engine memory manager

Описание

int gc_mem_caches ( void )

Reclaims memory used by the Zend Engine memory manager.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of bytes freed.

Смотрите также

  • Garbage Collection


Извлекает значение настройки конфигурации PHP

  • « gc_mem_caches
  • get_current_user »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Извлекает значение настройки конфигурации PHP

get_cfg_var

(PHP 4, PHP 5, PHP 7)

get_cfg_var — Извлекает значение настройки конфигурации PHP

Описание

string get_cfg_var ( string $option )

Извлекает значение настройки конфигурации PHP option.

Функция не вернет никакой информации, если PHP скомпилирован из конфигурационного файла Apache.

Удостовериться в том, что система использует файл конфигурации, попробуйте получить значение настройки конфигурации cfg_file_path. Если эта настройка доступна, это значит, что файл конфигурации используется.

Список параметров

option

Имя настройки конфигурации.

Возвращаемые значения

Возвращает текущее значение настройки конфигурации PHP option, или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | get_cfg_var() изменена, чтобы иметь возможность возвращать ini настройки содержащие массивы.

Смотрите также

  • ini_get() - Получает значение настройки конфигурации
  • ini_get_all() - Получение всех настроек конфигурации


Получение имени владельца текущего PHP скрипта

  • « get_cfg_var
  • get_defined_constants »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение имени владельца текущего PHP скрипта

get_current_user

(PHP 4, PHP 5, PHP 7)

get_current_user — Получение имени владельца текущего PHP скрипта

Описание

string get_current_user ( void )

Возвращает имя владельца текущего PHP скрипта.

Возвращаемые значения

Возвращает имя пользователя в виде строки.

Примеры

Пример #1 Пример использования get_current_user()

<?php
echo 'Владелец скрипта: ' . get_current_user();
?>

Результатом выполнения данного примера будет что-то подобное:

Current script owner: SYSTEM

Смотрите также

  • getmyuid() - Получение UID владельца скрипта PHP
  • getmygid() - Получение GID владельца PHP скрипта
  • getmypid() - Получение ID процесса PHP
  • getmyinode() - Получение значения inode текущего скрипта
  • getlastmod() - Определение времени последней модификации страницы


Возвращает ассоциативный массив с именами и значениями всех предопределенных констант

  • « get_current_user
  • get_extension_funcs »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Возвращает ассоциативный массив с именами и значениями всех предопределенных констант

get_defined_constants

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

get_defined_constants — Возвращает ассоциативный массив с именами и значениями всех предопределенных констант

Описание

array get_defined_constants ([ bool $categorize = false ] )

Возвращает ассоциативный массив с именами и значениями всех предопределенных констант. Массив также будет включать в себя константы, определенные расширениями, а также созданные функцией define().

Список параметров

categorize

Использование этого аргумента дает возможность получить многомерный массив, в котором в первом измерении будут содержаться категории констант, а во втором соответствующие имена и значения.

<?php
define("MY_CONSTANT", 1);
print_r(get_defined_constants(true));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [Core] => Array
        (
            [E_ERROR] => 1
            [E_WARNING] => 2
            [E_PARSE] => 4
            [E_NOTICE] => 8
            [E_CORE_ERROR] => 16
            [E_CORE_WARNING] => 32
            [E_COMPILE_ERROR] => 64
            [E_COMPILE_WARNING] => 128
            [E_USER_ERROR] => 256
            [E_USER_WARNING] => 512
            [E_USER_NOTICE] => 1024
            [E_ALL] => 2047
            [TRUE] => 1
        )

    [pcre] => Array
        (
            [PREG_PATTERN_ORDER] => 1
            [PREG_SET_ORDER] => 2
            [PREG_OFFSET_CAPTURE] => 256
            [PREG_SPLIT_NO_EMPTY] => 1
            [PREG_SPLIT_DELIM_CAPTURE] => 2
            [PREG_SPLIT_OFFSET_CAPTURE] => 4
            [PREG_GREP_INVERT] => 1
        )

    [user] => Array
        (
            [MY_CONSTANT] => 1
        )

)

Возвращаемые значения

Возвращает массив вида "имя константы" => "значение константы", с возможностью сгруппировать его по имени расширения, зарегистрировавшей константу.

Список изменений

Версия | Описание
5.3.1 | Только для Windows: Константы ядра входят в категорию Core. Раньше категория называлась mhash.
5.3.0 | Константы ядра входят в категорию Core. Раньше категория называлась internal,а в Windows системах - mhash.
5.2.11 | Значение аргумента categorize стало обрабатываться подобающим образом. Раньше аргумент categorize воспринимался, как выражение !is_null($categorize), то есть любое значение отличное от NULL предписывало разделять константы на категории.

Примеры

Пример #1 Пример использования get_defined_constants()

<?php
print_r(get_defined_constants());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [E_ERROR] => 1
    [E_WARNING] => 2
    [E_PARSE] => 4
    [E_NOTICE] => 8
    [E_CORE_ERROR] => 16
    [E_CORE_WARNING] => 32
    [E_COMPILE_ERROR] => 64
    [E_COMPILE_WARNING] => 128
    [E_USER_ERROR] => 256
    [E_USER_WARNING] => 512
    [E_USER_NOTICE] => 1024
    [E_ALL] => 2047
    [TRUE] => 1
)

Смотрите также

  • defined() - Проверяет существование указанной именованной константы
  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • get_defined_functions() - Возвращает массив всех определённых функций
  • get_defined_vars() - Возвращает массив всех определенных переменных


Возвращает массив имен функций модуля

  • « get_defined_constants
  • get_include_path »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Возвращает массив имен функций модуля

get_extension_funcs

(PHP 4, PHP 5, PHP 7)

get_extension_funcs — Возвращает массив имен функций модуля

Описание

array get_extension_funcs ( string $module_name )

Функция возвращает имена всех функций определенных в модуле с именем module_name.

Список параметров

module_name

Имя модуля.

Замечание:

Значение этого аргумента должно задаваться в нижнем регистре.

Возвращаемые значения

Возвращает массив имен функций или FALSE, если module_name не является допустимым модулем.

Примеры

Пример #1 Выводит XML функции

<?php
print_r(get_extension_funcs("xml"));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => xml_parser_create
    [1] => xml_parser_create_ns
    [2] => xml_set_object
    [3] => xml_set_element_handler
    [4] => xml_set_character_data_handler
    [5] => xml_set_processing_instruction_handler
    [6] => xml_set_default_handler
    [7] => xml_set_unparsed_entity_decl_handler
    [8] => xml_set_notation_decl_handler
    [9] => xml_set_external_entity_ref_handler
    [10] => xml_set_start_namespace_decl_handler
    [11] => xml_set_end_namespace_decl_handler
    [12] => xml_parse
    [13] => xml_parse_into_struct
    [14] => xml_get_error_code
    [15] => xml_error_string
    [16] => xml_get_current_line_number
    [17] => xml_get_current_column_number
    [18] => xml_get_current_byte_index
    [19] => xml_parser_free
    [20] => xml_parser_set_option
    [21] => xml_parser_get_option
    [22] => utf8_encode
    [23] => utf8_decode
)

Смотрите также

  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • ReflectionExtension::getFunctions() - Получение функций расширения


Получение текущего значения настройки include_path

  • « get_extension_funcs
  • get_included_files »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение текущего значения настройки include_path

get_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

get_include_path — Получение текущего значения настройки include_path

Описание

string get_include_path ( void )

Получает значение настройки конфигурации include_path.

Возвращаемые значения

Возвращает путь к файлу в виде строки.

Примеры

Пример #1 Пример использования get_include_path()

<?php
echo get_include_path();

// или используя ini_get()
echo ini_get('include_path');
?>

Смотрите также

  • ini_get() - Получает значение настройки конфигурации
  • restore_include_path() - Восстанавливает изначальное значение настройки конфигурации include_path
  • set_include_path() - Устанавливает значение настройки конфигурации include_path
  • include - include


Возвращает массив имен включенных в скрипт файлов

  • « get_include_path
  • get_loaded_extensions »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Возвращает массив имен включенных в скрипт файлов

get_included_files

(PHP 4, PHP 5, PHP 7)

get_included_files — Возвращает массив имен включенных в скрипт файлов

Описание

array get_included_files ( void )

Получает имена всех файлов, которые были включены в скрипт функциями 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

Примечания

Замечание:

Файлы, включенные с помощью директивы auto_prepend_file, не попадут в возвращаемый массив.

Смотрите также

  • include - include
  • include_once - include_once
  • require - require
  • require_once - require_once
  • get_required_files() - Псевдоним get_included_files


Возвращает массив имен всех скомпилированных и загруженных модулей

  • « get_included_files
  • get_magic_quotes_gpc »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Возвращает массив имен всех скомпилированных и загруженных модулей

get_loaded_extensions

(PHP 4, PHP 5, PHP 7)

get_loaded_extensions — Возвращает массив имен всех скомпилированных и загруженных модулей

Описание

array get_loaded_extensions ([ bool $zend_extensions = false ] )

Функция возвращает массив имен всех скомпилированных и загруженных в PHP интерпретаторе модулей.

Список параметров

zend_extensions

Возвращать только Zend расширения или обычные расширения, вроде mysqli. По умолчанию FALSE (возвращать обычные расширения).

Возвращаемые значения

Возвращает индексированный массив имен всех модулей.

Список изменений

Версия | Описание
5.2.4 | Добавлен необязательный аргумент zend_extensions

Примеры

Пример #1 Пример использования get_loaded_extensions()

<?php
print_r(get_loaded_extensions());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
   [0] => xml
   [1] => wddx
   [2] => standard
   [3] => session
   [4] => posix
   [5] => pgsql
   [6] => pcre
   [7] => gd
   [8] => ftp
   [9] => db
   [10] => calendar
   [11] => bcmath
)

Смотрите также

  • get_extension_funcs() - Возвращает массив имен функций модуля
  • extension_loaded() - Определение, загружено ли расширение
  • dl() - Загружает PHP расширение во время выполнения
  • phpinfo() - Выводит информацию о текущей конфигурации PHP


Получение текущего значения настройки конфигурации magic_quotes_gpc

  • « get_loaded_extensions
  • get_magic_quotes_runtime »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение текущего значения настройки конфигурации magic_quotes_gpc

get_magic_quotes_gpc

(PHP 4, PHP 5, PHP 7)

get_magic_quotes_gpc — Получение текущего значения настройки конфигурации magic_quotes_gpc

Описание

bool get_magic_quotes_gpc ( void )

Возвращает текущее значение настройки magic_quotes_gpc

Следует иметь в виду, что значение magic_quotes_gpc нельзя изменить во время выполнения.

За дополнительной информацией обращайтесь в раздел посвященный безопасности.

Возвращаемые значения

Возвращает 0, если magic_quotes_gpc выключен, 1 в противном случае. С версии PHP 5.4.0 всегда возвращает FALSE.

Список изменений

Версия | Описание
5.4.0 | Всегда возвращает FALSE, так как функционал магических кавычек удален из PHP.

Примеры

Пример #1 Пример использования get_magic_quotes_gpc()

<?php
//если магические кавычки включены
echo $_POST['lastname'];             // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly

//работает во всех версиях
if (get_magic_quotes_gpc()) {
    $lastname = stripslashes($_POST['lastname']);
}
else {
    $lastname = $_POST['lastname'];
}

// при использовании MySQL
$lastname = mysql_real_escape_string($lastname);

echo $lastname; // O\'reilly
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>

Примечания

Замечание:

Если директива magic_quotes_sybase включена, она будет замещать magic_quotes_gpc. Таким образом, даже если get_magic_quotes_gpc() возвращает TRUE, двойные кавычки, обратные слеши и NULL значения экранироваться не будут. Экранироваться в этом случае будут только одинарные кавычки, при чем выглядеть это будет так: ''

Смотрите также

  • addslashes() - Экранирует строку с помощью слешей
  • stripslashes() - Удаляет экранирование символов
  • get_magic_quotes_runtime() - Получение текущего значения настройки конфигурации magic_quotes_runtime
  • ini_get() - Получает значение настройки конфигурации


Получение текущего значения настройки конфигурации magic_quotes_runtime

  • « get_magic_quotes_gpc
  • get_required_files »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение текущего значения настройки конфигурации magic_quotes_runtime

get_magic_quotes_runtime

(PHP 4, PHP 5, PHP 7)

get_magic_quotes_runtime — Получение текущего значения настройки конфигурации magic_quotes_runtime

Описание

bool get_magic_quotes_runtime ( void )

Возвращает текущее значение настройки magic_quotes_runtime.

Возвращаемые значения

Возвращает 0, если magic_quotes_runtime выключена, 1 в противном случае. С версии PHP 5.4.0 всегда возвращает FALSE.

Список изменений

Версия | Описание
5.4.0 | Всегда возвращает FALSE, так как функционал магических кавычек удален из PHP.

Примеры

Пример #1 Пример использования get_magic_quotes_runtime()

<?php
// Проверка, работает ли magic_quotes_runtime
if(get_magic_quotes_runtime())
{
    // отключение
    set_magic_quotes_runtime(false);
}
?>

Смотрите также

  • get_magic_quotes_gpc() - Получение текущего значения настройки конфигурации magic_quotes_gpc
  • set_magic_quotes_runtime() - Установка текущего значения настройки magic_quotes_runtime


Псевдоним get_included_files

  • « get_magic_quotes_runtime
  • get_resources »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Псевдоним get_included_files

get_required_files

(PHP 4, PHP 5, PHP 7)

get_required_files — Псевдоним get_included_files()

Описание

Эта функция является псевдонимом: get_included_files().


Returns active resources

  • « get_required_files
  • getenv »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Returns active resources

get_resources

(PHP 7)

get_resources — Returns active resources

Описание

array get_resources ([ string $type ] )

Returns an array of all currently active resources, optionally filtered by resource type.

Список параметров

type

If defined, this will cause get_resources() to only return resources of the given type. A list of resource types is available.

If the string Unknown is provided as the type, then only resources that are of an unknown type will be returned.

If omitted, all resources will be returned.

Возвращаемые значения

Returns an array of currently active resources, indexed by resource number.

Примеры

Пример #1 Unfiltered get_resources()

<?php
$fp = tmpfile();
var_dump(get_resources());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [1]=>
  resource(1) of type (stream)
}

Пример #2 Filtered get_resources()

<?php
$fp = tmpfile();
var_dump(get_resources('stream'));
var_dump(get_resources('curl'));
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [1]=>
  resource(1) of type (stream)
}
array(0) {
}

Смотрите также

  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • get_defined_constants() - Возвращает ассоциативный массив с именами и значениями всех предопределенных констант
  • get_defined_functions() - Возвращает массив всех определённых функций
  • get_defined_vars() - Возвращает массив всех определенных переменных


Получение значения переменной окружения

  • « get_resources
  • getlastmod »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение значения переменной окружения

getenv

(PHP 4, PHP 5, PHP 7)

getenv — Получение значения переменной окружения

Описание

string getenv ( string $varname )

Получает значение переменной среды.

Список всех переменных окружения можно посмотреть с помощью функции phpinfo(). Многие из этих переменных есть в документе » RFC 3875, по большей части в разделе 4.1, "Request Meta-Variables".

Список параметров

varname

Имя переменной.

Возвращаемые значения

Возвращает значение переменной среды varname или FALSE, если переменной varname не существует.

Примеры

Пример #1 Пример использования getenv()

<?php
// Пример использования getenv()
$ip = getenv('REMOTE_ADDR');

// можно еще воспользоваться суперглобальной переменной ($_SERVER or $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];
?>

Смотрите также

  • putenv() - Устанавливает значение переменной среды
  • apache_getenv() - Возвращает переменную окружения подпроцесса сервера Apache
  • Superglobals


Определение времени последней модификации страницы

  • « getenv
  • getmygid »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Определение времени последней модификации страницы

getlastmod

(PHP 4, PHP 5, PHP 7)

getlastmod — Определение времени последней модификации страницы

Описание

int getlastmod ( void )

Получает время последней модификации запущенного скрипта.

Если требуется определить время модификации произвольного файла, используйте функцию filemtime().

Возвращаемые значения

Возвращает время последней модификации текущей страницы. Значение является меткой времени Unix совместимой с функцией date(). Функция вернет FALSE в случае ошибок.

Примеры

Пример #1 Пример использования getlastmod()

<?php
// Выводит нечто вроде 'Последнее изменение: March 04 1998 20:43:59.'
echo "Последнее изменение: " . date ("F d Y H:i:s.", getlastmod());
?>

Смотрите также

  • date() - Форматирует вывод системной даты/времени
  • getmyuid() - Получение UID владельца скрипта PHP
  • getmygid() - Получение GID владельца PHP скрипта
  • get_current_user() - Получение имени владельца текущего PHP скрипта
  • getmyinode() - Получение значения inode текущего скрипта
  • getmypid() - Получение ID процесса PHP
  • filemtime() - Возвращает время последнего изменения файла


Получение GID владельца PHP скрипта

  • « getlastmod
  • getmyinode »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение GID владельца PHP скрипта

getmygid

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

getmygid — Получение GID владельца PHP скрипта

Описание

int getmygid ( void )

Получает идентификатор группы текущего скрипта.

Возвращаемые значения

Возвращает групповой идентификатор текущего скрипта или FALSE в случае ошибки.

Смотрите также

  • getmyuid() - Получение UID владельца скрипта PHP
  • getmypid() - Получение ID процесса PHP
  • get_current_user() - Получение имени владельца текущего PHP скрипта
  • getmyinode() - Получение значения inode текущего скрипта
  • getlastmod() - Определение времени последней модификации страницы


Получение значения inode текущего скрипта

  • « getmygid
  • getmypid »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение значения inode текущего скрипта

getmyinode

(PHP 4, PHP 5, PHP 7)

getmyinode — Получение значения inode текущего скрипта

Описание

int getmyinode ( void )

Получает inode текущего скрипта.

Возвращаемые значения

Возвращает inode текущего скрипта в виде целого числа или FALSE в случае ошибки.

Смотрите также

  • getmygid() - Получение GID владельца PHP скрипта
  • getmyuid() - Получение UID владельца скрипта PHP
  • getmypid() - Получение ID процесса PHP
  • get_current_user() - Получение имени владельца текущего PHP скрипта
  • getlastmod() - Определение времени последней модификации страницы


Получение ID процесса PHP

  • « getmyinode
  • getmyuid »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение ID процесса PHP

getmypid

(PHP 4, PHP 5, PHP 7)

getmypid — Получение ID процесса PHP

Описание

int getmypid ( void )

Получает идентификатор PHP процесса.

Возвращаемые значения

Возвращает идентификатор PHP процесса или FALSE в случае ошибки.

Примечания

Внимание

Идентификаторы процессов в системе не уникальны, поэтому являются слабым источником энтропии. Мы не рекомендуем полагаться на pid в контекстах, влияющих на безопасность.

Смотрите также

  • getmygid() - Получение GID владельца PHP скрипта
  • getmyuid() - Получение UID владельца скрипта PHP
  • get_current_user() - Получение имени владельца текущего PHP скрипта
  • getmyinode() - Получение значения inode текущего скрипта
  • getlastmod() - Определение времени последней модификации страницы


Получение UID владельца скрипта PHP

  • « getmypid
  • getopt »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение UID владельца скрипта PHP

getmyuid

(PHP 4, PHP 5, PHP 7)

getmyuid — Получение UID владельца скрипта PHP

Описание

int getmyuid ( void )

Получает идентификатор пользователя текущего скрипта.

Возвращаемые значения

Возвращает идентификатор пользователя текущего скрипта или FALSE в случае ошибки.

Смотрите также

  • getmygid() - Получение GID владельца PHP скрипта
  • getmypid() - Получение ID процесса PHP
  • get_current_user() - Получение имени владельца текущего PHP скрипта
  • getmyinode() - Получение значения inode текущего скрипта
  • getlastmod() - Определение времени последней модификации страницы


Извлечение параметров из списка аргументов командной строки

  • « getmyuid
  • getrusage »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Извлечение параметров из списка аргументов командной строки

getopt

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

getopt — Извлечение параметров из списка аргументов командной строки

Описание

array getopt ( string $options [, array $longopts [, int &$optind ]] )

Анализирует параметры переданные в скрипт.

Список параметров

options
Каждый символ в этой строке будет рассматриваться как параметр и сравниваться с символами, переданными в скрипт, перед которыми будет стоять дефис (-). Например, строка параметров "x" распознается, как параметр -x. Допускаются только символы a-z, A-Z и 0-9.
longopts
Массив параметров. Каждый элемент массива будет использоваться как строковый параметр и сравниваться с параметрами, переданными в скрипт, перед которыми будет стоять двойной дефис (--). Например, элемент longopts "opt" будет расшифровываться как --opt.
optind
Если задан параметр optind, то индекс, на котором остановился разбор, будет записан в него.

Аргумент options может содержать следующие элементы:

  • Отдельные символы (не имеющие значений)
  • Символы, за которыми следует двоеточие (после двоеточия должно быть значение параметра)
  • Символы, за которыми следует два двоеточия (значение параметра необязательно)
Значения параметров идут сразу за строкой параметра (символом). Если требуется значение, то нет разницы, есть между ними пробел или нет.

Замечание: Необязательные значения нельзя отделять от других пробелом " ".

Замечание:

Форматы options и longopts практически совпадают. Различие состоит только в том, что longopts принимает массив параметров (в котором каждый элемент является параметром) в то время, как options принимает строку (где параметром является каждый символ).

Возвращаемые значения

Функция вернет массив параметров / пар аргументов, или FALSE в случае возникновения ошибки.

Замечание:

Как только встретится первый символ, не являющийся параметром, разбор строки команды будет завершен, а оставшаяся часть строки будет проигнорирована.

Список изменений

Версия | Описание
7.1.0 | Добавлен параметр optind.
5.3.0 | Добавлена поддержка "=" в качестве разделителя параметр/значение.
5.3.0 | Добавлена поддержка необязательных значений параметров, (задаваемая "::").
5.3.0 | Аргумент longopts доступен на всех системах.
5.3.0 | Функция больше не зависит от системы, теперь работает и в Windows.

Примеры

Пример #1 Пример использования getopt(): основное

<?php
// Скрипт example.php
$options = getopt("f:hp:");
var_dump($options);
?>
shell> php example.php -fvalue -h

Результат выполнения данного примера:

array(2) {
  ["f"]=>
  string(5) "value"
  ["h"]=>
  bool(false)
}

Пример #2 Пример использования getopt(): добавление длинных опций

<?php
// Скрипт example.php
$shortopts  = "";
$shortopts .= "f:";  // Обязательное значение
$shortopts .= "v::"; // Необязательное значение
$shortopts .= "abc"; // Эти параметры не принимают никаких значений

$longopts  = array(
    "required:",     // Обязательное значение
    "optional::",    // Необязательное значение
    "option",        // Нет значения
    "opt",           // Нет значения
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>
shell> php example.php -f "value for f" -v -a --required value --optional="optional value" --option

Результат выполнения данного примера:

array(6) {
  ["f"]=>
  string(11) "value for f"
  ["v"]=>
  bool(false)
  ["a"]=>
  bool(false)
  ["required"]=>
  string(5) "value"
  ["optional"]=>
  string(14) "optional value"
  ["option"]=>
  bool(false)
}

Пример #3 Пример использования getopt(): Передача нескольких параметров как одного

<?php
// Скрипт example.php
$options = getopt("abc");
var_dump($options);
?>
shell> php example.php -aaac

Результат выполнения данного примера:

array(2) {
  ["a"]=>
  array(3) {
    [0]=>
    bool(false)
    [1]=>
    bool(false)
    [2]=>
    bool(false)
  }
  ["c"]=>
  bool(false)
}

Пример #4 Пример getopt() с параметром optind

<?php
// Скрипт example.php
$optind = null;
$opts = getopt('a:b:', [], $optind);
$pos_args = array_slice($argv, $optind);
var_dump($pos_args);
shell> php example.php -a 1 -b 2 -- test

Результат выполнения данного примера:

array(1) {
  [0]=>
  string(4) "test"
}

Смотрите также

  • $argv


Получает информацию об использовании текущего ресурса

  • « getopt
  • ini_alter »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получает информацию об использовании текущего ресурса

getrusage

(PHP 4, PHP 5, PHP 7)

getrusage — Получает информацию об использовании текущего ресурса

Описание

array getrusage ([ int $who = 0 ] )

Это интерфейс к getrusage(2). Функция получает данные, возвращаемые из системного вызова.

Список параметров

who

Если аргумент who равен 1, getrusage будет вызвана с RUSAGE_CHILDREN.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий данные возвращенные из системного вызова. Имена элементов соответствуют документированным именам полей.

Примеры

Пример #1 Пример использования getrusage()

<?php
$dat = getrusage();
echo $dat["ru_nswap"];         // количество swap'ов
echo $dat["ru_majflt"];        // количество ошибок
echo $dat["ru_utime.tv_sec"];  // использовано времени пользователем (секунды)
echo $dat["ru_utime.tv_usec"]; // использовано времени пользователем (микросекунды)
?>

Список изменений

Версия | Описание
7.0.0 | Добавлен поддержка этой функции в Windows.

Примечания

Замечание:

В Windows getrusage() возвращает только следующее:

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"
  • "ru_majflt" (только если who - RUSAGE_SELF)
  • "ru_maxrss" (только если who - RUSAGE_SELF)

Если getrusage() вызвана с who равным 1 (RUSAGE_CHILDREN), то будет собираться информация по использованию ресурсов потоками (т.е. внутренне функция будет вызываться с RUSAGE_THREAD).

Замечание:

В BeOS 2000, возвращается только следующее:

  • "ru_stime.tv_sec"
  • "ru_stime.tv_usec"
  • "ru_utime.tv_sec"
  • "ru_utime.tv_usec"

Смотрите также

  • Страница системной документации getrusage(2)


Псевдоним ini_set

  • « getrusage
  • ini_get_all »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Псевдоним ini_set

ini_alter

(PHP 4, PHP 5, PHP 7)

ini_alter — Псевдоним ini_set()

Описание

Эта функция является псевдонимом: ini_set().


Получение всех настроек конфигурации

  • « ini_alter
  • ini_get »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение всех настроек конфигурации

ini_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ini_get_all — Получение всех настроек конфигурации

Описание

array ini_get_all ([ string $extension [, bool $details = true ]] )

Возвращает все зарегистрированные настройки конфигурации.

Список параметров

extension

Необязательное имя расширения. Если задано, функция вернет только специфичные для данного расширения настройки.

details

Выводить детальные сведения о настройках или только текущие значения. По умолчанию TRUE (выводить детальные сведения).

Возвращаемые значения

Возвращает ассоциативный массив с именами директив в качестве ключей.

Если details равен TRUE (по умолчанию), в массиве будут содержаться global_value (значение настройки php.ini), local_value (например, заданное с помощью ini_set() или .htaccess) и access (уровень доступа).

Если details равен FALSE, значением массива будет соответствующее текущее значение настройки.

Смотри соответствующий раздел руководства, в котором приводится описание уровней доступа.

Замечание:

Директива может иметь несколько уровней доступа, в этом случае access будет содержать соответствующую битовую маску.

Примечания

Замечание:

ini_get_all() игнорирует опции типа "массив" такие как pdo.dsn.*.

Список изменений

Версия | Описание
5.3.0 | Добавлен аргумент details.

Примеры

Пример #1 Примеры использования ini_get_all()

<?php
print_r(ini_get_all("pcre"));
print_r(ini_get_all());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [pcre.backtrack_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

    [pcre.recursion_limit] => Array
        (
            [global_value] => 100000
            [local_value] => 100000
            [access] => 7
        )

)
Array
(
    [allow_call_time_pass_reference] => Array
        (
            [global_value] => 0
            [local_value] => 0
            [access] => 6
        )

    [allow_url_fopen] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 4
        )

    ...

)

Пример #2 Отключение details

<?php
print_r(ini_get_all("pcre", false)); // Добавлено в PHP 5.3.0
print_r(ini_get_all(null, false)); // Добавлено в PHP 5.3.0
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [pcre.backtrack_limit] => 100000
    [pcre.recursion_limit] => 100000
)
Array
(
    [allow_call_time_pass_reference] => 0
    [allow_url_fopen] => 1
    ...
)

Смотрите также

  • Как изменить настройки конфигурации
  • ini_get() - Получает значение настройки конфигурации
  • ini_restore() - Восстанавливает значение настройки конфигурации
  • ini_set() - Установка значения настройки конфигурации
  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • ReflectionExtension::getINIEntries() - Получение ini-настроек расширения


Получает значение настройки конфигурации

  • « ini_get_all
  • ini_restore »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получает значение настройки конфигурации

ini_get

(PHP 4, PHP 5, PHP 7)

ini_get — Получает значение настройки конфигурации

Описание

string ini_get ( string $varname )

В случае успеха возвращает значение настройки конфигурации.

Список параметров

varname

Имя настройки конфигурации.

Возвращаемые значения

Возвращает значение настройки конфигурации в виде строки. Для значений null будет возвращаться пустая строка. Функция вернет FALSE, если указанная настройка не существует.

Примеры

Пример #1 Несколько примеров использования ini_get()

<?php
/*
Наш файл php.ini содержит следующие настройки:

display_errors = On
register_globals = Off
post_max_size = 8M
*/

echo 'display_errors = ' . ini_get('display_errors') . "\n";
echo 'register_globals = ' . ini_get('register_globals') . "\n";
echo 'post_max_size = ' . ini_get('post_max_size') . "\n";
echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n";
echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size'));

function return_bytes($val) {
    $val = trim($val);
    $last = strtolower($val[strlen($val)-1]);
    switch($last) {
        // Модификатор 'G' доступен, начиная с PHP 5.1.0
        case 'g':
            $val *= 1024;
        case 'm':
            $val *= 1024;
        case 'k':
            $val *= 1024;
    }

    return $val;
}

?>

Результатом выполнения данного примера будет что-то подобное:

display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
post_max_size in bytes = 8388608

Примечания

Замечание: Возвращаемые boolean-значения

Boolean-значение ini-настройки off будет возвращено в виде пустой строки или строки "0", в то время как значению on будет соответствовать строка "1". Функция также может возвращать буквенные значения INI настройки.

Замечание: Возвращаемые значения количества памяти

Многие ini настройки, значения которых измеряются количеством памяти, такие как upload_max_filesize, записаны в php.ini в сокращенном виде. ini_get() вернет именно то, что записано в файле php.ini, а НЕ целочисленный integer эквивалент этой величины. Попытка использования полученной величины в арифметических операциях не даст желаемого результата. В приведенном выше примере продемонстрировано, как можно перевести сокращенную запись в число байт.

Замечание:

ini_get() не может прочесть опции типа "массив", такие как pdo.dsn.*, и возвращает FALSE таких случаях.

Список изменений

Версия | Описание
5.3.0 | Раньше возвращалась пустая строка, если конфигурационная опция отсутствует. Теперь вместо этого возвращается FALSE.

Смотрите также

  • get_cfg_var() - Извлекает значение настройки конфигурации PHP
  • ini_get_all() - Получение всех настроек конфигурации
  • ini_restore() - Восстанавливает значение настройки конфигурации
  • ini_set() - Установка значения настройки конфигурации


Восстанавливает значение настройки конфигурации

  • « ini_get
  • ini_set »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Восстанавливает значение настройки конфигурации

ini_restore

(PHP 4, PHP 5, PHP 7)

ini_restore — Восстанавливает значение настройки конфигурации

Описание

void ini_restore ( string $varname )

Восстанавливает исходное значение настройки конфигурации.

Список параметров

varname

Имя настройки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ini_restore()

<?php
$setting = 'y2k_compliance';

echo 'Текущее значение настройки \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_set($setting, ini_get($setting) ? 0 : 1);
echo 'Новое значение настройки \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;

ini_restore($setting);
echo 'Исходное значение настройки \'' . $setting . '\': ' . ini_get($setting), PHP_EOL;
?>

Результат выполнения данного примера:

Текущее значение настройки 'y2k_compliance': 1
Новое значение настройки 'y2k_compliance': 0
Исходное значение настройки 'y2k_compliance': 1

Смотрите также

  • ini_get() - Получает значение настройки конфигурации
  • ini_get_all() - Получение всех настроек конфигурации
  • ini_set() - Установка значения настройки конфигурации


Установка значения настройки конфигурации

  • « ini_restore
  • magic_quotes_runtime »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Установка значения настройки конфигурации

ini_set

(PHP 4, PHP 5, PHP 7)

ini_set — Установка значения настройки конфигурации

Описание

string ini_set ( string $varname , string $newvalue )

Устанавливает значение заданной настройки конфигурации. Настройка будет хранить установленное значение пока выполняется скрипт. После завершения работы скрипта значение настройки вернется к исходному.

Список параметров

varname

Не все доступные настройки можно изменять функцией ini_set(). Список доступных настроек приведен в приложении.

newvalue

Новое значение настройки.

Возвращаемые значения

В случае успеха возвращает старое значение, в случае неудачи возвращает FALSE.

Примеры

Пример #1 Установка значения ini настройки

<?php
echo ini_get('display_errors');

if (!ini_get('display_errors')) {
    ini_set('display_errors', '1');
}

echo ini_get('display_errors');
?>

Смотрите также

  • get_cfg_var() - Извлекает значение настройки конфигурации PHP
  • ini_get() - Получает значение настройки конфигурации
  • ini_get_all() - Получение всех настроек конфигурации
  • ini_restore() - Восстанавливает значение настройки конфигурации
  • Как менять настройки конфигурации


Псевдоним set_magic_quotes_runtime

  • « ini_set
  • main »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Псевдоним set_magic_quotes_runtime

magic_quotes_runtime

(PHP 4, PHP 5)

magic_quotes_runtime — Псевдоним set_magic_quotes_runtime()

Внимание

Этот псевдоним считается УСТАРЕВШИМ с PHP 5.3.0, и УДАЛЕН в PHP 7.0.0.

Описание

Эта функция является псевдонимом: set_magic_quotes_runtime()


Заглушка для main

  • « magic_quotes_runtime
  • memory_get_peak_usage »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Заглушка для main

main

main — Заглушка для main()

Описание

Функция main() существует только в исходных кодах PHP. Пользовательской функции с таким именем нет. В коде PHP 4.3.0 был введен новый способ обработки ошибок php_error_docref. Одной из его возможностей является вывод ссылок на документацию в сообщениях об ошибках. Эта возможность задействована, если PHP заданы директивы html_errors (задана по умолчанию) и docref_root (задана по умолчанию в версиях PHP до 4.3.2).

Иногда сообщения об ошибках ссылаются на страницу документации к функции main(). Собственно поэтому эта страница и существует. Если вам попалась ссылка на эту страницу в каком-либо сообщении, пожалуйста » создайте баг-репорт с указанием PHP функции, выдавшей сообщение об ошибке со ссылкой на main(). Команда разработчиков в свою очередь исправит ошибку и внесет исправления в документацию.

Известные ошибки, которые ссылаются на main()
Имя функции | Больше не ссылается на main с версии
include | 5.1.0
include_once | 5.1.0
require | 5.1.0
require_once | 5.1.0

Смотрите также

  • html_errors
  • display_errors


Возвращает пиковое значение объема памяти, выделенной PHP

  • « main
  • memory_get_usage »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Возвращает пиковое значение объема памяти, выделенной PHP

memory_get_peak_usage

(PHP 5 >= 5.2.0, PHP 7)

memory_get_peak_usage — Возвращает пиковое значение объема памяти, выделенной PHP

Описание

int memory_get_peak_usage ([ bool $real_usage = false ] )

Возвращает максимальный объем памяти в байтах, который был выделен PHP скрипту.

Список параметров

real_usage

Передача TRUE в качестве этого аргумента позволяет получить реальный объем памяти выделенный системой. Если аргумент не задан или равен FALSE, возвращаются сведения только о памяти, выделенной функцией emalloc().

Возвращаемые значения

Возвращает максимальный объем памяти в байтах.

Список изменений

Версия | Описание
5.2.1 | Для работы функции больше не требуется, чтобы PHP компилировался с настройкой --enable-memory-limit.
5.2.0 | Добавлен аргумент real_usage.

Смотрите также

  • memory_get_usage() - Возвращает количество памяти выделенной PHP
  • memory_limit


Возвращает количество памяти выделенной PHP

  • « memory_get_peak_usage
  • php_ini_loaded_file »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Возвращает количество памяти выделенной PHP

memory_get_usage

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

memory_get_usage — Возвращает количество памяти выделенной PHP

Описание

int memory_get_usage ([ bool $real_usage = false ] )

Возвращает количество памяти в байтах, которое было выделено PHP скрипту на данный момент.

Список параметров

real_usage

Передача TRUE позволяет узнать реальное количество памяти, выделенной PHP скрипту системой, включая неиспользуемые страницы. Если аргумент не задан или равен FALSE, будет возвращено только количество используемой памяти.

Замечание:

PHP не отслеживает память, которая не аллоцировалась с помощью emalloc()

Возвращаемые значения

Возвращает количество памяти в байтах.

Список изменений

Версия | Описание
5.2.1 | Для работы функции больше не требуется, чтобы PHP компилировался с настройкой --enable-memory-limit.
5.2.0 | Добавлен аргумент real_usage.

Примеры

Пример #1 Пример использования memory_get_usage()

<?php
// Это просто пример, цифры ниже будут
// отличаться в зависимости от вашей системы

echo memory_get_usage() . "\n"; // 36640

$a = str_repeat("Hello", 4242);

echo memory_get_usage() . "\n"; // 57960

unset($a);

echo memory_get_usage() . "\n"; // 36744

?>

Смотрите также

  • memory_get_peak_usage() - Возвращает пиковое значение объема памяти, выделенной PHP
  • memory_limit


Получение адреса загруженного php.ini файла

  • « memory_get_usage
  • php_ini_scanned_files »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение адреса загруженного php.ini файла

php_ini_loaded_file

(PHP 5 >= 5.2.4, PHP 7)

php_ini_loaded_file — Получение адреса загруженного php.ini файла

Описание

string php_ini_loaded_file ( void )

Проверяет, загружен ли файл php.ini, и возвращает его адрес.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Путь к загруженному файлу php.ini или FALSE, если файл не загружен.

Примеры

Пример #1 Пример использования php_ini_loaded_file()

<?php
$inipath = php_ini_loaded_file();

if ($inipath) {
    echo 'Загруженный php.ini: ' . $inipath;
} else {
    echo 'Файл php.ini не загружен';
}
?>

Результатом выполнения данного примера будет что-то подобное:

Loaded php.ini: /usr/local/php/php.ini

Смотрите также

  • php_ini_scanned_files() - Возвращает список .ini файлов найденных в дополнительной ini директории
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • Конфигурационный файл


Возвращает список .ini файлов найденных в дополнительной ini директории

  • « php_ini_loaded_file
  • php_logo_guid »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Возвращает список .ini файлов найденных в дополнительной ini директории

php_ini_scanned_files

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

php_ini_scanned_files — Возвращает список .ini файлов найденных в дополнительной ini директории

Описание

string php_ini_scanned_files ( void )

php_ini_scanned_files() возвращает список разделенных запятыми конфигурационных файлов, проанализированных после php.ini. Это файлы, обнаруженные в директориях, которая была задана при компиляции и, опционально, переменных окружения во время исполнения. Больше информации можно найти в инструкции по установке

Возвращаемые имена файлов включают полный путь.

Возвращаемые значения

При успехе возвращает строку с разделенными запятыми именами .ini файлов За каждой запятой следует новая строка. Если задана директива --with-config-file-scan-dir и переменная окружения PHP_INI_SCAN_DIR тоже не задана, функция вернет FALSE. Если директива задана, и директория пуста, будет возвращена пустая строка. Если файл не удается распознать, он все же будет включен в список, но при этом будет PHP сообщит об ошибке. Эта ошибка будет возникать как при компиляции, так и во время работы php_ini_scanned_files().

Примеры

Пример #1 Простой пример вывода списка ini файлов

<?php
if ($filelist = php_ini_scanned_files()) {
    if (strlen($filelist) > 0) {
        $files = explode(',', $filelist);

        foreach ($files as $file) {
            echo "<li>" . trim($file) . "</li>\n";
        }
    }
}
?>

Смотрите также

  • ini_set() - Установка значения настройки конфигурации
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • php_ini_loaded_file() - Получение адреса загруженного php.ini файла


Получение guid логотипа

  • « php_ini_scanned_files
  • php_sapi_name »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получение guid логотипа

php_logo_guid

(PHP 4, PHP 5 < 5.5)

php_logo_guid — Получение guid логотипа

Описание

string php_logo_guid ( void )

Функция возвращает ID, который можно использовать для вывода логотипа PHP, используя встроенное изображение. Логотип отображается, только если включена настройка expose_php.

Внимание

Эта функция была помечена УСТАРЕВШЕЙ и была УДАЛЕНА начиная с версии PHP 5.5.0.

Возвращаемые значения

Возвращает PHPE9568F34-D428-11d2-A769-00AA001ACF42.

Список изменений

Версия | Описание
5.5.0 | php_logo_guid() удалена из PHP.

Примеры

Пример #1 Пример использования php_logo_guid()

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . php_logo_guid() . '" alt="Логотип PHP!" />';

?>

Смотрите также

  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • phpversion() - Выдает текущую версию PHP
  • phpcredits() - Выводит список разработчиков PHP
  • zend_logo_guid() - Получает Zend guid


Возвращает тип интерфейса между веб-сервером и PHP

  • « php_logo_guid
  • php_uname »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Возвращает тип интерфейса между веб-сервером и PHP

php_sapi_name

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

php_sapi_name — Возвращает тип интерфейса между веб-сервером и PHP

Описание

string php_sapi_name ( void )

Возвращает строку в нижнем регистре, содержащую описание типа интерфейса (Server API, SAPI) которым пользуется PHP. Например, в CLI PHP эта строка примет значение "cli", в то время как с Apache может быть несколько разных значений в зависимости от конкретного SAPI. Возможные значение приведены ниже.

Возвращаемые значения

Возвращает тип интерфейса в виде строки в нижнем регистре.

Возможные возвращаемые значения (список может быть неполным): aolserver, apache, apache2filter, apache2handler, caudium, cgi (до PHP 5.3), cgi-fcgi, cli, cli-server, continuity, embed, fpm-fcgi, isapi, litespeed, milter, nsapi, phttpd, pi3web, roxen, thttpd, tux, и webjames.

Примеры

Пример #1 Пример использования php_sapi_name()

В этом примере проверяется подстрока cgi, так как это также может быть cgi-fcgi.

<?php
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi') {
    echo "Вы используете CGI PHP\n";
} else {
    echo "Вы используете не CGI PHP\n";
}
?>

Примечания

Замечание: Альтернативный вариант

Константа PHP PHP_SAPI хранит то же значение, что и php_sapi_name().

Подсказка

Важный аспект

Имя SAPI может определиться неточно, так как, например, в случае с apache интерфейс может быть определен как apache2handler или apache2filter.

Смотрите также

  • PHP_SAPI


Выдает информацию об операционной системе, на которой запущен PHP

  • « php_sapi_name
  • phpcredits »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Выдает информацию об операционной системе, на которой запущен PHP

php_uname

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

php_uname — Выдает информацию об операционной системе, на которой запущен PHP

Описание

string php_uname ([ string $mode = "a" ] )

php_uname() возвращает описание операционной системы, на которой запущен PHP. Это та же строка, с которой начинается вывод phpinfo(). Для вывода названия операционной системы используется константа PHP_OS. Обратите внимание, что эта константа содержит название операционной системы, на которой PHP был собран (built).

На некоторых старых UNIX платформах получить информацию о текущей ОС может оказаться невозможным. В таких случаях функция выдаст название ОС, на которой PHP был собран. Такое случается, когда библиотека, которой пользуется uname(), недоступна или работает некорректно.

Список параметров

mode

mode - одиночный символ, определяющий, какая информация будет выводиться:

  • 'a': По умолчанию. Содержит все режимы в следующей последовательности "s n r v m".
  • 's': Название операционной системы. Например, FreeBSD.
  • 'n': Имя хоста, например, localhost.example.com.
  • 'r': Номер релиза. Например, 5.1.2-RELEASE.
  • 'v': Информация о версии. Может сильно различаться в разных ОС.
  • 'm': Архитектура процессора. Например, i386.

Возвращаемые значения

Возвращает описание ОС в виде строки.

Примеры

Пример #1 Несколько примеров использования php_uname()

<?php
echo php_uname();
echo PHP_OS;

/* Разные варианты:
Linux localhost 2.4.21-0.13mdk #1 Fri Mar 14 15:08:06 EST 2003 i686
Linux

FreeBSD localhost 3.2-RELEASE #15: Mon Dec 17 08:46:02 GMT 2001
FreeBSD

Windows NT XN1 5.1 build 2600
WINNT
*/

if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    echo 'Сервер работает под управлением Windows!';
} else {
    echo 'Сервер работает под управлением ОС, отличной от Windows!';
}

?>

Ниже приведено несколько Предопределенных PHP констант, которые могут оказаться полезными:

Пример #2 Некоторые OS константы

<?php
// *nix
echo DIRECTORY_SEPARATOR; // /
echo PHP_SHLIB_SUFFIX;    // so
echo PATH_SEPARATOR;      // :

// Win*
echo DIRECTORY_SEPARATOR; // \
echo PHP_SHLIB_SUFFIX;    // dll
echo PATH_SEPARATOR;      // ;
?>

Смотрите также

  • phpversion() - Выдает текущую версию PHP
  • php_sapi_name() - Возвращает тип интерфейса между веб-сервером и PHP
  • phpinfo() - Выводит информацию о текущей конфигурации PHP


Выводит список разработчиков PHP

  • « php_uname
  • phpinfo »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Выводит список разработчиков PHP

phpcredits

(PHP 4, PHP 5, PHP 7)

phpcredits — Выводит список разработчиков PHP

Описание

bool phpcredits ([ int $flag = CREDITS_ALL ] )

Эта функция выводит список разработчиков PHP, модулей и т.п. Она генерирует соответствующий HTML код для вставки на страницу.

Список параметров

flag

Использование аргумента flag позволяет произвольно компоновать информацию об отдельных группах разработчиков.

Предопределенные флаги phpcredits()
Имя | Описание
CREDITS_ALL | Все разработчики, эквивалентно заданию: CREDITS_DOCS + CREDITS_GENERAL + CREDITS_GROUP + CREDITS_MODULES + CREDITS_FULLPAGE. В этом случае будет сгенерирована полностью независимая HTML страница с соответствующими тэгами.
CREDITS_DOCS | Участники команды документирования
CREDITS_FULLPAGE | Обычно используется в комбинации с другими флагами. Указывает на то, что независимая HTML страница должна содержать информацию других флагов.
CREDITS_GENERAL | Главные разработчики: Концепция и дизайн языка, авторы PHP и SAPI модуля.
CREDITS_GROUP | Список разработчиков ядра языка
CREDITS_MODULES | Список расширений для PHP и их авторов
CREDITS_SAPI | Список модулей серверных API и их авторов

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Выводит основных разработчиков

<?php
phpcredits(CREDITS_GENERAL);
?>

Пример #2 Выводит разработчиков ядра и участников команды документирования

<?php
phpcredits(CREDITS_GROUP | CREDITS_DOCS | CREDITS_FULLPAGE);
?>

Пример #3 Вывод всех разработчиков

<html>
 <head>
  <title>My credits page</title>
 </head>
 <body>
<?php
// какой-то код
phpcredits(CREDITS_ALL - CREDITS_FULLPAGE);
// еще код
?>
 </body>
</html>

Примечания

Замечание:

В режиме работы из командной строки (CLI) phpcredits() выводит обычный текст вместо HTML.

Смотрите также

  • phpversion() - Выдает текущую версию PHP
  • php_logo_guid() - Получение guid логотипа
  • phpinfo() - Выводит информацию о текущей конфигурации PHP


Выводит информацию о текущей конфигурации PHP

  • « phpcredits
  • phpversion »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Выводит информацию о текущей конфигурации PHP

phpinfo

(PHP 4, PHP 5, PHP 7)

phpinfo — Выводит информацию о текущей конфигурации PHP

Описание

bool phpinfo ([ int $what = INFO_ALL ] )

Выводит большое количество информации о текущем состоянии PHP. Сюда входит информация о настройках компиляции PHP, о расширениях, о версии, информация о сервере и среде выполнения (если PHP компилировался как модуль), окружении PHP, версии ОС, о путях, об основных и локальных значениях настроек конфигурации, о HTTP заголовках и лицензии PHP.

Так как каждая система имеет свои особенности, phpinfo() используется в основном для проверки настроек конфигурации и для просмотра доступных предопределенных констант в данной системе.

phpinfo() также используется в целях отладки, так как содержит все EGPCS (Environment, GET, POST, Cookie, Server) данные.

Список параметров

what

Вывод функции можно настраивать, передавая битовую маску из одной или более приведенных ниже констант (constants). Эта маска передается в качестве необязательного аргумента what. Отдельные константы или битовые значения можно комбинировать с помощью оператора или.

Настройки phpinfo()
Имя (константа) | Значение | Описание
INFO_GENERAL | 1 | Строка конфигурации, расположение php.ini, дата сборки, Web-сервер, Система и др.
INFO_CREDITS | 2 | Разработчики PHP. См. также phpcredits().
INFO_CONFIGURATION | 4 | Текущие значение основных и локальных PHP директив. См. также ini_get().
INFO_MODULES | 8 | Загруженные модули и их настройки. См. также get_loaded_extensions().
INFO_ENVIRONMENT | 16 | Информация о переменных окружения, которая также доступна в $_ENV.
INFO_VARIABLES | 32 | Выводит все предопределенные переменные из EGPCS (Environment, GET, POST, Cookie, Server).
INFO_LICENSE | 64 | Информация о лицензии PHP. См. также » license FAQ.
INFO_ALL | -1 | Выводит все приведенное выше.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | GUID логотипов были заменены на URI данных, и отключение expose_php теперь не влияет на результат phpinfo(). Список авторов теперь также встроен в вывод.
5.2.2 | Добавлен вывод информации о загруженном конфигурационном файле. Ранее выводился только путь к конфигурационному файлу (php.ini).

Примеры

Пример #1 Пример использования phpinfo()

<?php

// Показывать всю информацию, по умолчанию INFO_ALL
phpinfo();

// Показывать информацию только о загруженных модулях.
// phpinfo(8) выдает тот же результат.
phpinfo(INFO_MODULES);

?>

Примечания

Замечание:

В версиях PHP до 5.5, часть информации не выводится, если настройка expose_php установлена в off. Это PHP и Zend логотипы и информация о разработчиках.

Замечание:

В режиме CLI phpinfo() выводит обычный текст вместо HTML.

Смотрите также

  • phpversion() - Выдает текущую версию PHP
  • phpcredits() - Выводит список разработчиков PHP
  • php_logo_guid() - Получение guid логотипа
  • ini_get() - Получает значение настройки конфигурации
  • ini_set() - Установка значения настройки конфигурации
  • get_loaded_extensions() - Возвращает массив имен всех скомпилированных и загруженных модулей
  • Предопределенные переменные


Выдает текущую версию PHP

  • « phpinfo
  • putenv »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Выдает текущую версию PHP

phpversion

(PHP 4, PHP 5, PHP 7)

phpversion — Выдает текущую версию PHP

Описание

string phpversion ([ string $extension ] )

Возвращает строку с номером версии текущего PHP-анализатора или расширения.

Список параметров

extension

Необязательное имя расширения.

Возвращаемые значения

Если задан аргумент extension, phpversion() вернет версию этого расширения или FALSE, если информации о версии нет или расширение в данный момент не подключено.

Примеры

Пример #1 Пример использования phpversion()

<?php
// Выводит строку типа 'Текущая версия PHP: 4.1.1'
echo 'Текущая версия PHP: ' . phpversion();

// Выводит строку типа '2.0' или ничего, если расширение не подключено
echo phpversion('tidy');
?>

Пример #2 Пример использования PHP_VERSION_ID

<?php
// PHP_VERSION_ID доступна в версиях PHP 5.2.7 и выше. Если
// наша версия ниже, можно ее сэмулировать
if (!defined('PHP_VERSION_ID')) {
    $version = explode('.', PHP_VERSION);

    define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
}

// PHP_VERSION_ID определена как число. Чем больше число, тем новее
// PHP. Эта константа задается по той же схеме, что приведена выше:
//
// $version_id = $major_version * 10000 + $minor_version * 100 + $release_version;
//
// Теперь с PHP_VERSION_ID можно проверять, какой функционал есть в
// текущей версии PHP. Не обязательно пользоваться version_compare()
// каждый раз, когда требуется проверить, поддерживает ли PHP нужную
// нам функцию.
//
// Например, мы можем задать значения констант PHP_VERSION_*,
// которые недоступны в версиях ранее 5.2.7

if (PHP_VERSION_ID < 50207) {
    define('PHP_MAJOR_VERSION',   $version[0]);
    define('PHP_MINOR_VERSION',   $version[1]);
    define('PHP_RELEASE_VERSION', $version[2]);

    // и так далее, ...
}
?>

Примечания

Замечание:

Эта информация также доступна через предопределенную константу PHP_VERSION. Более детальную информацию можно получить с помощью констант PHP_VERSION_*.

Смотрите также

  • Константы PHP_VERSION
  • version_compare() - Сравнивает две "стандартизованные" строки с номером версии
  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • phpcredits() - Выводит список разработчиков PHP
  • php_logo_guid() - Получение guid логотипа
  • zend_version() - Получает версию Zend движка


Устанавливает значение переменной среды

  • « phpversion
  • restore_include_path »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Устанавливает значение переменной среды

putenv

(PHP 4, PHP 5, PHP 7)

putenv — Устанавливает значение переменной среды

Описание

bool putenv ( string $setting )

Добавляет setting в переменные окружения сервера. Переменная будет существовать только на время выполнения текущего запроса. По его завершении переменная вернется в изначальное состояние.

Изменение множества переменных среды потенциально небезопасно. Директива safe_mode_allowed_env_vars содержит список разделенных запятой префиксов. В Безопасном Режиме пользователь может менять значения только тех переменных, имена которых начинаются с перечисленных префиксов. По умолчанию, пользователи могут менять только те переменные, что начинаются с PHP_ (например, PHP_FOO=BAR). Замечание: Если эта директива пустая, PHP позволит пользователям менять ЛЮБЫЕ переменные!

Директива safe_mode_protected_env_vars содержит список разделенных запятой имен переменных среды, которые пользователю запрещено изменять функцией putenv(). Эти переменные будут защищены, даже если safe_mode_allowed_env_vars разрешает их изменение.

Список параметров

setting

Установка вида "FOO=BAR"

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка значения переменной среды

<?php
putenv("UNIQID=$uniqid");
?>

Примечания

Внимание

Директивы safe_mode_allowed_env_vars и safe_mode_protected_env_vars работают только в Безопасном режиме.

Смотрите также

  • getenv() - Получение значения переменной окружения
  • apache_setenv() - Устанавливает переменную subprocess_env Apache


Восстанавливает изначальное значение настройки конфигурации include_path

  • « putenv
  • set_include_path »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Восстанавливает изначальное значение настройки конфигурации include_path

restore_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

restore_include_path — Восстанавливает изначальное значение настройки конфигурации include_path

Описание

void 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_magic_quotes_runtime »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Устанавливает значение настройки конфигурации include_path

set_include_path

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

set_include_path — Устанавливает значение настройки конфигурации include_path

Описание

string set_include_path ( string $new_include_path )

Задает значение настройки конфигурации include_path на время выполнения скрипта.

Список параметров

new_include_path

Новое значение настройки include_path

Возвращаемые значения

Возвращает старое значение include_path в случае успеха. или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования set_include_path()

<?php
set_include_path('/usr/lib/pear');

// Или так
ini_set('include_path', '/usr/lib/pear');
?>

Пример #2 Составление более длинного пути include path

Используя константу PATH_SEPARATOR, можно добавить к пути вложенные директории независимо от операционной системы.

В этом примере мы добавим /usr/lib/pear в конец существующего пути include_path.

<?php
$path = '/usr/lib/pear';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
?>

Смотрите также

  • ini_set() - Установка значения настройки конфигурации
  • get_include_path() - Получение текущего значения настройки include_path
  • restore_include_path() - Восстанавливает изначальное значение настройки конфигурации include_path
  • include - include


Установка текущего значения настройки magic_quotes_runtime

  • « set_include_path
  • set_time_limit »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Установка текущего значения настройки magic_quotes_runtime

set_magic_quotes_runtime

(PHP 4, PHP 5)

set_magic_quotes_runtime — Установка текущего значения настройки magic_quotes_runtime

Внимание

Эта функция считается УСТАРЕВШЕЙ с PHP 5.3.0, и УДАЛЕНА в PHP 7.0.0.

Описание

bool set_magic_quotes_runtime ( bool $new_setting )

Задает текущее активное значение настройки magic_quotes_runtime.

Ошибки

С версии PHP 5.3 эта функция устарела и при запуске вызывает предупреждение E_DEPRECATED. С версии PHP 5.4 эта функция также вызывает ошибку E_CORE_ERROR при попытке включить magic quotes.

Список параметров

new_setting

FALSE - выключено, TRUE - включено.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования set_magic_quotes_runtime()

<?php
// Создаем временный указатель на файл
$fp = tmpfile();

// Пишем в файл какие-то данные
fwrite($fp, '\'PHP\' is a Recursive acronym');

// без magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(false);

echo 'без magic_quotes_runtime: ' . fread($fp, 64), PHP_EOL;

// С magic_quotes_runtime
rewind($fp);
set_magic_quotes_runtime(true);

echo 'С magic_quotes_runtime: ' . fread($fp, 64), PHP_EOL;

// Clean up
fclose($fp);
?>

Результат выполнения данного примера:

без magic_quotes_runtime: 'PHP' is a Recursive acronym
С magic_quotes_runtime: \'PHP\' is a Recursive acronym

Смотрите также

  • get_magic_quotes_gpc() - Получение текущего значения настройки конфигурации magic_quotes_gpc
  • get_magic_quotes_runtime() - Получение текущего значения настройки конфигурации magic_quotes_runtime


Ограничение времени выполнения скрипта

  • « set_magic_quotes_runtime
  • sys_get_temp_dir »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Ограничение времени выполнения скрипта

set_time_limit

(PHP 4, PHP 5, PHP 7)

set_time_limit — Ограничение времени выполнения скрипта

Описание

bool set_time_limit ( int $seconds )

Задает время в секундах, в течение которого скрипт должен завершить работу. Если скрипт не успевает, вызывается фатальная ошибка. По умолчанию дается 30 секунд, либо время, записанное в настройке max_execution_time в php.ini (если такая настройка установлена).

При вызове set_time_limit() перезапускает счетчик с нуля. Другими словами, если таймаут изначально был 30 секунд, и через 25 секунд после запуска скрипта будет вызвана функция set_time_limit(20), то скрипт будет работать максимум 45 секунд.

Список параметров

seconds

Максимальное время выполнения в секундах. Если задан ноль, время выполнения неограничено.

Возвращаемые значения

Возвращает TRUE в случае успеха, иначе FALSE.

Примечания

Внимание

Эта функция не работает, если PHP работает в безопасном режиме (безопасный режим). Обойти это ограничение можно только выключив безопасный режим или изменив значение настройки в php.ini.

Замечание:

Функция set_time_limit() и директива max_execution_time влияют на время выполнения только самого скрипта. Время затраченное на различные действия вне скрипта, такие как системные вызовы функции system(), потоковые операции, запросы к базам данных и т.п. не включаются в расчет времени выполнения скрипта. Это не относится к Windows системам, где расчитывается абсолютное время выполнения.

Смотрите также

  • max_execution_time
  • max_input_time


Возвращает путь к директории временных файлов

  • « set_time_limit
  • version_compare »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Возвращает путь к директории временных файлов

sys_get_temp_dir

(PHP 5 >= 5.2.1, PHP 7)

sys_get_temp_dir — Возвращает путь к директории временных файлов

Описание

string sys_get_temp_dir ( void )

Возвращает путь к директории, где 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() - Создаёт файл с уникальным именем


Сравнивает две "стандартизованные" строки с номером версии

  • « sys_get_temp_dir
  • zend_logo_guid »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Сравнивает две "стандартизованные" строки с номером версии

version_compare

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

version_compare — Сравнивает две "стандартизованные" строки с номером версии

Описание

mixed version_compare ( string $version1 , string $version2 [, string $operator ] )

version_compare() сравнивает две "PHP-стандартизованные" строки с номерами версий.

Функция сначала заменяет _, - и + на точку . в строках версий, а также добавляет точки . перед и после каждого символа, не являющегося числом. Например, '4.3.2RC1' преобразуется в '4.3.2.RC.1'. После этого сравнивает части строк слева направо. Если часть строки содержит специальные символы версий, они обрабатываются следующим образом: any string not found in this list < 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, моя версия: ' . PHP_VERSION . "\n";
}

if (version_compare(PHP_VERSION, '5.0.0', '<')) {
    echo 'Я использую PHP 4, моя версия: ' . PHP_VERSION . "\n";
}
?>

Примечания

Замечание:

Константа PHP_VERSION хранит номер текущей версии PHP.

Замечание:

Заметьте, что дорелизные версии, такие как 5.3.0-dev, считаются меньше, чем финальные (вида 5.3.0).

Замечание:

Специальные слова вроде alpha и beta чувствительны к регистру. Строки версий, не придерживающиеся PHP стандарта, нужно приводить к нижнему регистру функцией strtolower() до вызова version_compare().

Смотрите также

  • phpversion() - Выдает текущую версию PHP
  • php_uname() - Выдает информацию об операционной системе, на которой запущен PHP
  • function_exists() - Возвращает TRUE, если указанная функция определена


Получает Zend guid

  • « version_compare
  • zend_thread_id »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получает Zend guid

zend_logo_guid

(PHP 4, PHP < 5.5)

zend_logo_guid — Получает Zend guid

Описание

string zend_logo_guid ( void )

Эта функция возвращает ID, который нужен для отображения логотипа Zend, используя встроенное изображение.

Внимание

Эта функция была помечена УСТАРЕВШЕЙ и была УДАЛЕНА начиная с версии PHP 5.5.0.

Возвращаемые значения

Возвращает PHPE9568F35-D428-11d2-A769-00AA001ACF42.

Список изменений

Версия | Описание
5.5.0 | zend_logo_guid() удалена из PHP.

Примеры

Пример #1 Пример использования zend_logo_guid()

<?php

echo '<img src="' . $_SERVER['PHP_SELF'] .
     '?=' . zend_logo_guid() . '" alt="Zend Logo !" />';

?>

Смотрите также

  • php_logo_guid() - Получение guid логотипа


Возвращает уникальный идентификатор текущего потока выполнения

  • « zend_logo_guid
  • zend_version »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Возвращает уникальный идентификатор текущего потока выполнения

zend_thread_id

(PHP 5, PHP 7)

zend_thread_id — Возвращает уникальный идентификатор текущего потока выполнения

Описание

int zend_thread_id ( void )

Эта функция возвращает уникальный идентификатор текущего потока выполнения.

Возвращаемые значения

Возвращает id потока выполнения в виде целого числа.

Примеры

Пример #1 Пример использования zend_thread_id()

<?php
$thread_id = zend_thread_id();

echo 'ID текущего потока выполнения: ' . $thread_id;
?>

Результатом выполнения данного примера будет что-то подобное:

Current thread id is: 7864

Примечания

Замечание:

Эта функция доступна, только есть PHP собран с поддержкой ZTS (Zend Thread Safety) и в режиме отладки (--enable-debug).


Получает версию Zend движка

  • « zend_thread_id
  • runkit »
  • PHP Manual
  • PHP опции/Информационные Функции
  • Получает версию Zend движка

zend_version

(PHP 4, PHP 5, PHP 7)

zend_version — Получает версию Zend движка

Описание

string zend_version ( void )

Возвращает строку с номером версии работающего в данный момент ядра Zend Engine.

Возвращаемые значения

Возвращает номер версии Zend Engine в виде строки.

Примеры

Пример #1 Пример использования zend_version()

<?php
echo "Версия движка Zend: " . zend_version();
?>

Результатом выполнения данного примера будет что-то подобное:

Zend engine version: 2.2.0

Смотрите также

  • phpinfo() - Выводит информацию о текущей конфигурации PHP
  • phpcredits() - Выводит список разработчиков PHP
  • php_logo_guid() - Получение guid логотипа
  • phpversion() - Выдает текущую версию PHP


runkit

  • Введение
  • Предопределенные константы
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • runkit
    • Runkit_Sandbox — Класс Runkit Sandbox -- это виртуальная машина PHP
    • Runkit_Sandbox_Parent — Класс анти-песочницы для Runkit
    • runkit_class_adopt — Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.
    • runkit_class_emancipate — Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.
    • runkit_constant_add — Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.
    • runkit_constant_redefine — Переназначить уже определенную константу.
    • runkit_constant_remove — Удаляет уже определенную константу.
    • runkit_function_add — Добавляет новую функцию аналогично create_function
    • runkit_function_copy — Копирует функцию с новым именем
    • runkit_function_redefine — Заменяет определение функции новой реализацией.
    • runkit_function_remove — Удаляет определенную функцию
    • runkit_function_rename — Переименовывает функцию
    • runkit_import — Обрабатывает PHP файл, импортируя функции и классы, перезаписывая при необходимости.
    • runkit_lint_file — Проверяет PHP-синтаксис выбранного файла
    • runkit_lint — Проверяет PHP-синтаксис выбранного кода
    • runkit_method_add — Динамически добавляет новый метод в класс
    • runkit_method_copy — Копирование метода из одного класса в другой
    • runkit_method_redefine — Изменяет код выбранного метода
    • runkit_method_remove — Динамически удаляет выбранный метод
    • runkit_method_rename — Переименовывает выбранный метод
    • runkit_return_value_used — Определяет, используется ли возвращаемое функцией значение
    • runkit_sandbox_output_handler — Задает функцию для захвата и/или обработки данных из "песочницы".
    • runkit_superglobals — Возвращает индексный массив зарегистрированных суперглобальных переменных.


Введение

Расширение runkit предоставляет возможности переопределить константы, функции и классы. Оно так же предоставляет "песочницу" со своими суперглобальными переменными и субинтерпретатором.

Это расширение является расширенной заменой » classkit. Если скомпилировано с флагом --enable-runkit=classkit, будут доступны функции и константы, совместимые с classkit


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

RUNKIT_IMPORT_FUNCTIONS (integer)
Флаг runkit_import(), указывающий, что необходимо импортировать функции из указанного файла
RUNKIT_IMPORT_CLASS_METHODS (integer)
Флаг runkit_import(), указывающий, что необходимо импортировать методы классов из указанного файла
RUNKIT_IMPORT_CLASS_CONSTS (integer)
Флаг runkit_import(), указывающий, что необходимо импортировать локальные константы классов из указанного файла. Эта возможность доступна начиная с версии PHP 5.1.0
RUNKIT_IMPORT_CLASS_PROPS (integer)
Флаг runkit_import(), указывающий, что необходимо импортировать свойства классов из указанного файла.
RUNKIT_IMPORT_CLASS_STATIC_PROPS (integer)
Флаг runkit_import(), указывающий, что статические свойства класса должны импортироваться из указанныго файла. Доступно с Runkit 1.0.1.
RUNKIT_IMPORT_CLASSES (integer)
Флаг runkit_import(), представляющий побитовое ИЛИ для констант RUNKIT_IMPORT_CLASS_*.
RUNKIT_IMPORT_OVERRIDE (integer)
Флаг runkit_import(), указывающий что необходимо перезаписывать существующие функции, методы, константы и свойства классов. Если этот флаг не задан, перезапись существующих определений производиться не будет.
RUNKIT_ACC_PUBLIC (integer)
Специфичный флаг PHP для runkit_method_add() и runkit_method_redefine()
RUNKIT_ACC_PROTECTED (integer)
Специфичный флаг PHP для runkit_method_add() и runkit_method_redefine()
RUNKIT_ACC_PRIVATE (integer)
Специфичный флаг PHP для runkit_method_add() и runkit_method_redefine()
RUNKIT_ACC_STATIC (integer)
Специфичный флаг PHP для runkit_method_add() и runkit_method_redefine(). Доступен с Runkit 1.0.1.
CLASSKIT_ACC_PUBLIC (integer)
Флаг runkit_method_add(), специфичный для PHP 5. Определен только при включенной совместимости с classkit.
CLASSKIT_ACC_PROTECTED (integer)
Флаг runkit_method_add(), специфичный для PHP 5. Определен только при включенной совместимости с classkit.
CLASSKIT_ACC_PRIVATE (integer)
Флаг runkit_method_add(), специфичный для PHP 5. Определен только при включенной совместимости с classkit.
CLASSKIT_AGGREGATE_OVERRIDE (integer)
Флаг classkit_import(), специфичный для PHP 5. Определен только при включенной совместимости с classkit.
RUNKIT_VERSION (string)
Представляет текущую версию runkit.
CLASSKIT_VERSION (string)
Представляет текущую версию runkit. Определен только при включенной совместимости с classkit.


Требования

Переназначение констант, функций, классов и методов как и Пользовательские Суперглобальные переменные работают во всех версиях PHP 5. Особые требования отсутствуют.

Песочница доступна начиная с версии PHP 5.1.0, или в версии 5.0.0 со специальным патчем TSRM. Вне зависимости от версии, PHP должен быть скомпилирован с флагом --enable-maintainer-zts. Дополнительную информацию можно получить в файле README в поставке runkit.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/runkit.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации runkit
Имя | По умолчанию | Меняемо | Список изменений
runkit.superglobal | "" | PHP_INI_PERDIR |
runkit.internal_override | "0" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

runkit.superglobal string
Список переменных через запятую, которые будут интерпретированы как суперглобальные. Это значение должно задаваться в системном php.ini, но может работать и в конфигурации для директории в зависимости от интерфейса.

Пример #1 Пользовательские суперглобальные переменные при runkit.superglobal=_FOO,_BAR в php.ini

<?php
function show_values() {
  echo "Foo 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 boolean
Задействует возможность изменять, удалять и переименовывать встроенные функции.


  • « Настройка во время выполнения
  • runkit »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


runkit

Содержание

  • Runkit_Sandbox — Класс Runkit Sandbox -- это виртуальная машина PHP
  • Runkit_Sandbox_Parent — Класс анти-песочницы для Runkit
  • runkit_class_adopt — Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.
  • runkit_class_emancipate — Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.
  • runkit_constant_add — Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.
  • runkit_constant_redefine — Переназначить уже определенную константу.
  • runkit_constant_remove — Удаляет уже определенную константу.
  • runkit_function_add — Добавляет новую функцию аналогично create_function
  • runkit_function_copy — Копирует функцию с новым именем
  • runkit_function_redefine — Заменяет определение функции новой реализацией.
  • runkit_function_remove — Удаляет определенную функцию
  • runkit_function_rename — Переименовывает функцию
  • runkit_import — Обрабатывает PHP файл, импортируя функции и классы, перезаписывая при необходимости.
  • runkit_lint_file — Проверяет PHP-синтаксис выбранного файла
  • runkit_lint — Проверяет PHP-синтаксис выбранного кода
  • runkit_method_add — Динамически добавляет новый метод в класс
  • runkit_method_copy — Копирование метода из одного класса в другой
  • runkit_method_redefine — Изменяет код выбранного метода
  • runkit_method_remove — Динамически удаляет выбранный метод
  • runkit_method_rename — Переименовывает выбранный метод
  • runkit_return_value_used — Определяет, используется ли возвращаемое функцией значение
  • runkit_sandbox_output_handler — Задает функцию для захвата и/или обработки данных из "песочницы".
  • runkit_superglobals — Возвращает индексный массив зарегистрированных суперглобальных переменных.


Класс Runkit Sandbox -- это виртуальная машина PHP

  • « runkit
  • Runkit_Sandbox_Parent »
  • PHP Manual
  • runkit
  • Класс Runkit Sandbox -- это виртуальная машина PHP

Runkit_Sandbox

(PECL runkit >= 0.7.0)

Runkit_Sandbox — Класс Runkit Sandbox -- это виртуальная машина PHP

Описание

Экземпляр класса Runkit_Sandbox создает отдельный поток основного процесса с собственным окружением и выделенной областью памяти (стеком). С помощью дополнительных параметров конструктора можно ограничивать функционал интерпретатора в песочнице, создавая таким образом безопасное окружение для выполнения пользовательского кода.

Замечание: Поддержка песочницы (необходима для runkit_lint(), runkit_lint_file(), и класса Runkit_Sandbox) доступна только начиная с версии PHP 5.1.0 или в специально пропатченных версиях PHP 5.0, а также требует потокобезопасной (thread safe) версии PHP. Для более подробной информации смотрите файл README, поставляемый с пакетом runkit.

Constructor

void Runkit_Sandbox::__construct ([ array $options ] )

options ассоциативный массив, содержащий произвольную комбинацию специальных параметров, перечисленных ниже

safe_mode

Если родительский скрипт, в котором создается экземпляр Runkit_Sandbox выполняется с директивой safe_mode = off, то эту опцию можно задействовать в песочнице для включения режима safe_mode. Данный параметр не может быть использован для отключения safe_mode, если он включен во внешнем окружении.

safe_mode_gid

Если родительский скрипт, в котором создается экземпляр Runkit_Sandbox выполняется с директивой safe_mode_gid = on, то данную опцию можно задействовать для отключения safe_mode_gid в песочнице. Этот параметр нельзя использовать для включения safe_mode_gid, если он выключен во внешнем окружении.

safe_mode_include_dir

Если родительский скрипт, в котором создается экземпляр Runkit_Sandbox выполняется c заданной директивой safe_mode_include_dir, то для песочницы может быть указана новая директория, находящаяся внутри заданной. Значение safe_mode_include_dir так же может быть очищено для возврата к начальным настройкам. Если директива safe_mode_include_dir не была настроена для родительского скрипта, подразумевается, что задан корневой раздел. В таком случае для песочницы можно указать любую директорию, при включенном режим safe_mode.

open_basedir

В параметре open_basedir может быть задана любая директория, находящаяся внутри назначенной open_basedir родительского скрипта. Если параметр open_basedir в родительском скрипте не задан, в качестве его значения используется корневой раздел. В таком случае для песочницы можно указать любой каталог.

allow_url_fopen

Подобно safe_mode, этот параметр может быть изменен только в сторону увеличения ограничений. Допускается устанавливать его значение FALSE в случае, если значение в родительском окружении TRUE.

disable_functions

Список отключенных в песочнице функций через запятую. В этот список не надо вносить уже отключенные в родительском скрипте функции, они таковыми и останутся вне зависимости от наличия в списке.

disable_classes

Список отключенных в песочнице классов через запятую. В этот список не надо вносить уже отключенные в родительском скрипте классы, они таковыми и останутся вне зависимости от наличия в списке.

runkit.superglobal

Список суперглобальных переменных для песочницы через запятую. Перечисленные переменные будут дополнять список существующих суперглобальных переменных, встроенных и заданных с помощью runkit.superglobal в родительском окружении.

runkit.internal_override

Параметр runkit.internal_override может быть только отключен для песочницы.

Пример #1 Пример создания безопасной песочницы

<?php
$options = array(
  'safe_mode'=>true,
  'open_basedir'=>'/var/www/users/jdoe/',
  'allow_url_fopen'=>'false',
  'disable_functions'=>'exec,shell_exec,passthru,system',
  'disable_classes'=>'myAppClass');
$sandbox = new Runkit_Sandbox($options);
/* Незащищенные ini-переменные устанавливаются обычным способом */
$sandbox->ini_set('html_errors',true);
?>

Доступ к переменным

Все глобальные переменные внутри песочницы доступны через свойства объекта Runkit_Sandbox. Необходимо учитывать, что из-за особенностей распределения памяти объекты и ресурсы не могут переноситься между родительским процессом и песочницей. Массивы полностью копируются между интерпретаторами и все ссылки внутри массивов удаляются. Это так же означает, что ссылки между интерпретаторами невозможны.

Пример #2 Работа с переменными в песочнице

<?php
$sandbox = new Runkit_Sandbox();

$sandbox->foo = 'bar';
$sandbox->eval('echo "$foo\n"; $bar = $foo . "baz";');
echo "{$sandbox->bar}\n";
if (isset($sandbox->foo)) unset($sandbox->foo);
$sandbox->eval('var_dump(isset($foo));');
?>

Результат выполнения данного примера:

bar
barbaz
bool(false)

Вызов функций PHP

Любая функция, заданная в песочнице, может быть вызвана через метод объекта Runkit_Sandbox. Так же доступны несколько псевдо-функций: eval(), include, include_once, require, require_once, echo, print, die() и exit().

Пример #3 Использование функций песочницы

<?php
$sandbox = new Runkit_Sandbox();

echo $sandbox->str_replace('a','f','abc');
?>

Результат выполнения данного примера:

fbc

Когда функция песочницы вызывается с параметрами, используются значения этих параметров из родительского скрипта. Если необходимо вызвать функцию со значениями из окружения песочницы, следует передавать их как свойства объекта Runkit_Sandbox. Этот механизм проиллюстрирован на следующем примере.

Пример #4 Передача аргументов функциям в песочнице

<?php
$sandbox = new Runkit_Sandbox();

$foo = 'bar';
$sandbox->foo = 'baz';
echo $sandbox->str_replace('a',$foo,'a');
echo $sandbox->str_replace('a',$sandbox->foo,'a');
?>

Результат выполнения данного примера:

bar
baz

Изменение параметров песочницы

По состоянию на версию runkit 0.5, большинство параметров песочницы могут быть изменены "на лету" с помощью синтаксиса интерфейса ArrayAccess. Некоторые параметры, например, active, доступны только для чтения. Остальные, например, output_handler, могут быть получены и записаны как обычный элемент массива. В будущем могут появиться параметры, доступные только для записи. На текущий момент таких не существует.

Настройки песочницы. Индикаторы статуса
Настройка | Тип | Назначение | По умолчанию
active | Boolean (только чтение) | TRUE если песочница функционирует, FALSE если процесс завершен после вызова die() или exit(), или в результате ошибки при выполнении. | TRUE (изначально)
output_handler | Callback | Если указана соответствующая callback-функция, весь вывод песочницы перенаправляется в указанную функцию. Обработчики вывода песочницы работают аналогично системным обработчикам вывода. | None
parent_access | Boolean | Параметр управляет доступом к Runkit_Sandbox_Parent из песочницы. Параметр должен быть включен для работы с функционалом, предоставляемым Runkit_Sandbox_Parent. | FALSE
parent_read | Boolean | Разрешает чтение переменных родительского окружения | FALSE
parent_write | Boolean | Разрешает запись переменных родительского окружения | FALSE
parent_eval | Boolean | Разрешает выполнение кода в родительском окружении DANGEROUS | FALSE
parent_include | Boolean | Разрешает подключать php файлы в родительском окружении DANGEROUS | FALSE
parent_echo | Boolean | Разрешает выводить данные в родительском окружении, в обход output_handler. | FALSE
parent_call | Boolean | Разрешает вызов функций в родительском окружении | FALSE
parent_die | Boolean | Разрешает завершать родительский скрипт (а значит и себя тоже) | FALSE
parent_scope | Integer | Настройка области видимости песочницы для внешнего окружения: 0 == Глобальная область видимости, 1 == область вызова, 2 == область до области вызова, 3 == область до этой области, и т.д. | 0 (Global)
parent_scope | String | В случае, когда параметр parent_scope задан строковым значением, он указывает на массив в глобальной области видимости. Если массива не существует - будет создан пустой массив с указанным именем. Если существует переменная с заданным именем, не являющаяся массивом - будет создан массив, содержащий ссылку на существующую переменную. |


Класс анти-песочницы для Runkit

  • « Runkit_Sandbox
  • runkit_class_adopt »
  • PHP Manual
  • runkit
  • Класс анти-песочницы для Runkit

Runkit_Sandbox_Parent

(PECL runkit >= 0.7.0)

Runkit_Sandbox_Parent — Класс анти-песочницы для Runkit

Описание

void Runkit_Sandbox_Parent::__construct ( void )

Экземпляр Runkit_Sandbox_Parent, созданный внутри окружения Runkit_Sandbox предоставляет набор контролируемых средств для доступа к внешнему окружению из песочницы.

Замечание: Поддержка песочницы (необходима для runkit_lint(), runkit_lint_file(), и класса Runkit_Sandbox) доступна только начиная с версии PHP 5.1.0 или в специально пропатченных версиях PHP 5.0, а также требует потокобезопасной (thread safe) версии PHP. Для более подробной информации смотрите файл README, поставляемый с пакетом runkit.

Для использования Runkit_Sandbox_Parent необходимо включить опцию parent_access у используемого экземпляра песочницы.

Пример #1 Задействует возможность использовать Runkit_Sandbox_Parent в песочнице

<?php
$sandbox = new Runkit_Sandbox();
$sandbox['parent_access'] = true;
?>

Доступ к переменным родительского окружения

Доступ к переменным родительского окружения может быть получен через свойства экземпляра Runkit_Sandbox_Parent по аналогии с Runkit_Sandbox. Доступ на чтение включается с помощью опции parent_read песочницы, на запись с помощью parent_write. Данные опции указываются в дополнении к parent_access.

В отличие от доступа к переменным Runkit_Sandbox, область видимости не ограничена глобальными переменными. Задать необходимую область видимость из песочницы можно параметром parent_scope. Значение 0 (по умолчанию) означает доступ к глобальной области видимости. 1 указывает на область вызова песочницы. Последующие значения ведут на следующие уровни области видимости.

Пример #2 Доступ к переменным родительского окружения

<?php
$php = new Runkit_Sandbox();
$php['parent_access'] = true;
$php['parent_read'] = true;

$test = "Global";

$php->eval('$PARENT = new Runkit_Sandbox_Parent;');

$php['parent_scope'] = 0;
one();

$php['parent_scope'] = 1;
one();

$php['parent_scope'] = 2;
one();

$php['parent_scope'] = 3;
one();

$php['parent_scope'] = 4;
one();

$php['parent_scope'] = 5;
one();

function one() {
    $test = "one()";
    two();
}

function two() {
    $test = "two()";
    three();
}

function three() {
    $test = "three()";
    $GLOBALS['php']->eval('var_dump($PARENT->test);');
}
?>

Результат выполнения данного примера:

string(6) "Global"
string(7) "three()"
string(5) "two()"
string(5) "one()"
string(6) "Global"
string(6) "Global"

Вызов функций родительского окружения

По аналогии с доступом к песочнице, из песочницы можно получить доступ к функциям в родительском окружении. Включение parent_call позволит из песочницы получить доступ к родительским функциям. Следующими функции и языковыми конструкциями можно управлять с помощью отдельных настроек: print и echo задействуются с помощью parent_echo; die() и exit() включаются через parent_die; eval() разрешается через parent_eval. Функции include, include_once, require, и require_once можно подключить, используя параметр parent_include.


Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.

  • « Runkit_Sandbox_Parent
  • runkit_class_emancipate »
  • PHP Manual
  • runkit
  • Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.

runkit_class_adopt

(PECL runkit >= 0.7.0)

runkit_class_adopt — Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.

Описание

bool runkit_class_adopt ( string $classname , string $parentname )

Список параметров

classname

"Усыновляемый" класс

parentname

Родительский класс

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример runkit_class_adopt()

<?php
class myParent {
  function parentFunc() {
    echo "Вывод родительской функции\n";
  }
}

class myChild {
}

runkit_class_adopt('myChild','myParent');
myChild::parentFunc();
?>

Результат выполнения данного примера:

Вывод родительской функции

Смотрите также

  • runkit_class_emancipate() - Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.


Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.

  • « runkit_class_adopt
  • runkit_constant_add »
  • PHP Manual
  • runkit
  • Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.

runkit_class_emancipate

(PECL runkit >= 0.7.0)

runkit_class_emancipate — Конвертирует наследующий класс в базовый, удаляет из него наследуемые методы.

Описание

bool runkit_class_emancipate ( string $classname )

Список параметров

classname

Имя конвертируемого класса

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример runkit_class_emancipate()

<?php
class myParent {
  function parentFunc () {
    echo "Вывод родительской функции\n";
  }
}
class myChild extends myParent {
}

myChild::parentFunc();
runkit_class_emancipate('myChild');
myChild::parentFunc();
?>

Результат выполнения данного примера:

Вывод родительской функции
Fatal error: Call to undefined function:  parentFunc() in example.php on line 12

Смотрите также

  • runkit_class_adopt() - Конвертирует базовый класс в наследованный ("усыновляет"). Дополняет методы наследованными при необходимости.


Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.

  • « runkit_class_emancipate
  • runkit_constant_redefine »
  • PHP Manual
  • runkit
  • Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.

runkit_constant_add

(PECL runkit >= 0.7.0)

runkit_constant_add — Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.

Описание

bool runkit_constant_add ( string $constname , mixed $value )

Список параметров

constname

Имя объявляемой константы. Строка для объявления глобальной константы или выражение classname::constname для добавления локальной константы в классе.

value

NULL, Bool, Long, Double, String, или тип Resource для сохранения в новой константе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • define() - Определяет именованную константу
  • runkit_constant_redefine() - Переназначить уже определенную константу.
  • runkit_constant_remove() - Удаляет уже определенную константу.


Переназначить уже определенную константу.

  • « runkit_constant_add
  • runkit_constant_remove »
  • PHP Manual
  • runkit
  • Переназначить уже определенную константу.

runkit_constant_redefine

(PECL runkit >= 0.7.0)

runkit_constant_redefine — Переназначить уже определенную константу.

Описание

bool runkit_constant_redefine ( string $constname , mixed $newvalue )

Список параметров

constname

Имя переназначаемой константы. Имя глобальной константы или выражение classname::constname для переназначения локальной константы в классе.

newvalue

Новое значение константы

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit_constant_add() - Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.
  • runkit_constant_remove() - Удаляет уже определенную константу.


Удаляет уже определенную константу.

  • « runkit_constant_redefine
  • runkit_function_add »
  • PHP Manual
  • runkit
  • Удаляет уже определенную константу.

runkit_constant_remove

(PECL runkit >= 0.7.0)

runkit_constant_remove — Удаляет уже определенную константу.

Описание

bool runkit_constant_remove ( string $constname )

Список параметров

constname

Имя удаляемой константы. Имя глобальной константы или выражение classname::constname для удаления локальной константы из класса.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • define() - Определяет именованную константу
  • runkit_constant_add() - Объявляет константу. Схожа с функцией define(), но позволяет создавать локальные константы внутри классов.
  • runkit_constant_redefine() - Переназначить уже определенную константу.


Добавляет новую функцию аналогично create_function

  • « runkit_constant_remove
  • runkit_function_copy »
  • PHP Manual
  • runkit
  • Добавляет новую функцию аналогично create_function

runkit_function_add

(PECL runkit >= 0.7.0)

runkit_function_add — Добавляет новую функцию аналогично create_function()

Описание

bool runkit_function_add ( string $funcname , string $arglist , string $code [, bool $return_by_reference = NULL [, string $doc_comment = NULL ]] )

Список параметров

funcname

Имя создаваемой функции

arglist

Список аргументов функции, через запятую

code

Код создаваемой функции

return_by_reference

Должна ли функция возвращать результат по ссылке.

doc_comment

Документирующий комментарий к функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
runkit 1.0.4 | Были добавлены необязательные параметры return_by_reference и doc_comment.

Примеры

Пример #1 Пример runkit_function_add()

<?php
runkit_function_add('testme','$a,$b','echo "Значение a = $a\n"; echo "Значение b = $b\n";');
testme(1,2);
?>

Результат выполнения данного примера:

Значение a = 1
Значение b = 2

Смотрите также

  • create_function() - Создаёт анонимную (лямбда) функцию
  • runkit_function_redefine() - Заменяет определение функции новой реализацией.
  • runkit_function_copy() - Копирует функцию с новым именем
  • runkit_function_rename() - Переименовывает функцию
  • runkit_function_remove() - Удаляет определенную функцию
  • runkit_method_add() - Динамически добавляет новый метод в класс


Копирует функцию с новым именем

  • « runkit_function_add
  • runkit_function_redefine »
  • PHP Manual
  • runkit
  • Копирует функцию с новым именем

runkit_function_copy

(PECL runkit >= 0.7.0)

runkit_function_copy — Копирует функцию с новым именем

Описание

bool runkit_function_copy ( string $funcname , string $targetname )

Список параметров

funcname

Имя существующей функции

targetname

Имя новой функции, в которую необходимо копировать существующую

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример runkit_function_copy()

<?php
function original() {
  echo "В функции\n";
}
runkit_function_copy('original','duplicate');
original();
duplicate();
?>

Результат выполнения данного примера:

В функции
В функции

Смотрите также

  • runkit_function_add() - Добавляет новую функцию аналогично create_function
  • runkit_function_redefine() - Заменяет определение функции новой реализацией.
  • runkit_function_rename() - Переименовывает функцию
  • runkit_function_remove() - Удаляет определенную функцию


Заменяет определение функции новой реализацией.

  • « runkit_function_copy
  • runkit_function_remove »
  • PHP Manual
  • runkit
  • Заменяет определение функции новой реализацией.

runkit_function_redefine

(PECL runkit >= 0.7.0)

runkit_function_redefine — Заменяет определение функции новой реализацией.

Описание

bool runkit_function_redefine ( string $funcname , string $arglist , string $code [, bool $return_by_reference = NULL [, string $doc_comment = NULL ]] )

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

funcname

Имя заменяемой функции

arglist

Новый список аргументов, принимаемый функцией

code

Код новой функции

return_by_reference

Должна ли функция возвращать результат по ссылке.

doc_comment

Документирующий комментарий к функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
runkit 1.0.4 | Были добавлены необязательные параметры return_by_reference и doc_comment.

Примеры

Пример #1 Пример runkit_function_redefine()

<?php
function testme() {
  echo "Старый код Testme\n";
}
testme();
runkit_function_redefine('testme','','echo "Новый код Testme\n";');
testme();
?>

Результат выполнения данного примера:

Старый код Testme
Новый код Testme

Смотрите также

  • runkit_function_add() - Добавляет новую функцию аналогично create_function
  • runkit_function_copy() - Копирует функцию с новым именем
  • runkit_function_rename() - Переименовывает функцию
  • runkit_function_remove() - Удаляет определенную функцию
  • runkit_method_redefine() - Изменяет код выбранного метода


Удаляет определенную функцию

  • « runkit_function_redefine
  • runkit_function_rename »
  • PHP Manual
  • runkit
  • Удаляет определенную функцию

runkit_function_remove

(PECL runkit >= 0.7.0)

runkit_function_remove — Удаляет определенную функцию

Описание

bool runkit_function_remove ( string $funcname )

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

funcname

Имя удаляемой функции

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit_function_add() - Добавляет новую функцию аналогично create_function
  • runkit_function_copy() - Копирует функцию с новым именем
  • runkit_function_redefine() - Заменяет определение функции новой реализацией.
  • runkit_function_rename() - Переименовывает функцию


Переименовывает функцию

  • « runkit_function_remove
  • runkit_import »
  • PHP Manual
  • runkit
  • Переименовывает функцию

runkit_function_rename

(PECL runkit >= 0.7.0)

runkit_function_rename — Переименовывает функцию

Описание

bool runkit_function_rename ( string $funcname , string $newname )

Замечание: По умолчанию, только пользовательские функции могут быть удалены, переименованы или изменены. Для перекрытия внутренних функций, необходимо включить в php.ini опцию runkit.internal_override.

Список параметров

funcname

Имя переименовываемой функции

newname

Новое имя функции

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit_function_add() - Добавляет новую функцию аналогично create_function
  • runkit_function_copy() - Копирует функцию с новым именем
  • runkit_function_redefine() - Заменяет определение функции новой реализацией.
  • runkit_function_remove() - Удаляет определенную функцию


Обрабатывает PHP файл, импортируя функции и классы, перезаписывая при необходимости.

  • « runkit_function_rename
  • runkit_lint_file »
  • PHP Manual
  • runkit
  • Обрабатывает PHP файл, импортируя функции и классы, перезаписывая при необходимости.

runkit_import

(PECL runkit >= 0.7.0)

runkit_import — Обрабатывает PHP файл, импортируя функции и классы, перезаписывая при необходимости.

Описание

bool runkit_import ( string $filename [, int $flags = RUNKIT_IMPORT_CLASS_METHODS ] )

Функция похожа на include, за исключением того, что весь код вне функций и объявлений классов игнорируется. В зависимости от значения параметра flags существующие функции и классы могут быть автоматически заменены новыми реализациями.

Список параметров

filename

Имя файла, из которого будут импортированы классы и функции

flags

Результат побитового ИЛИ над константами из семейства RUNKIT_IMPORT_*.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример для runkit_import()

<?php
// импортировать классы целиком
runkit_import('myfile.inc', RUNKIT_IMPORT_CLASSES);

/* импортировать классы, но не импортировать их статические свойства
   (константа RUNKIT_IMPORT_CLASS_STATIC_PROPS доступна начиная с версии 1.0.1) */
runkit_import('myfile.inc', RUNKIT_IMPORT_CLASSES & ~RUNKIT_IMPORT_CLASS_STATIC_PROPS);

/* импортировать только статические свойства классов
   (константа RUNKIT_IMPORT_CLASS_STATIC_PROPS доступна начиная с версии 1.0.1) */
runkit_import('myfile.inc', RUNKIT_IMPORT_CLASS_STATIC_PROPS);
?>


Проверяет PHP-синтаксис выбранного файла

  • « runkit_import
  • runkit_lint »
  • PHP Manual
  • runkit
  • Проверяет PHP-синтаксис выбранного файла

runkit_lint_file

(PECL runkit >= 0.7.0)

runkit_lint_file — Проверяет PHP-синтаксис выбранного файла

Описание

bool runkit_lint_file ( string $filename )

Функция runkit_lint_file() производит проверку синтаксиса выбранного файла. Действие функции схоже с вызовом команды php -l в консоли.

Замечание: Поддержка песочницы (необходима для runkit_lint(), runkit_lint_file(), и класса Runkit_Sandbox) доступна только начиная с версии PHP 5.1.0 или в специально пропатченных версиях PHP 5.0, а также требует потокобезопасной (thread safe) версии PHP. Для более подробной информации смотрите файл README, поставляемый с пакетом runkit.

Список параметров

filename

PHP-файл, в котором проверять синтаксис

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit_lint() - Проверяет PHP-синтаксис выбранного кода


Проверяет PHP-синтаксис выбранного кода

  • « runkit_lint_file
  • runkit_method_add »
  • PHP Manual
  • runkit
  • Проверяет PHP-синтаксис выбранного кода

runkit_lint

(PECL runkit >= 0.7.0)

runkit_lint — Проверяет PHP-синтаксис выбранного кода

Описание

bool runkit_lint ( string $code )

Функция runkit_lint() производит проверку синтаксиса выбранного кода на наличие ошибок. Функция похожа на вызов интерпретатора php -l из командной строки, за исключением того, что runkit_lint() вместо файла проверяет непосредственно код.

Замечание: Поддержка песочницы (необходима для runkit_lint(), runkit_lint_file(), и класса Runkit_Sandbox) доступна только начиная с версии PHP 5.1.0 или в специально пропатченных версиях PHP 5.0, а также требует потокобезопасной (thread safe) версии PHP. Для более подробной информации смотрите файл README, поставляемый с пакетом runkit.

Список параметров

code

PHP код для проверки синтаксиса

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • runkit_lint_file() - Проверяет PHP-синтаксис выбранного файла


Динамически добавляет новый метод в класс

  • « runkit_lint
  • runkit_method_copy »
  • PHP Manual
  • runkit
  • Динамически добавляет новый метод в класс

runkit_method_add

(PECL runkit >= 0.7.0)

runkit_method_add — Динамически добавляет новый метод в класс

Описание

bool runkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT_ACC_PUBLIC [, string $doc_comment = NULL ]] )

Список параметров

classname

Класс, в который будет добавлен метод

methodname

Имя добавляемого метода

args

Список параметров, принимаемых методом, через запятую

code

Код нового метода, который будет выполняться при вызове methodname

flags

Создаваемый метод может быть RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED или RUNKIT_ACC_PRIVATE опционально в комбинации через побитовое ИЛИ с RUNKIT_ACC_STATIC (начиная с версии 1.0.1)

Замечание:

Этот параметр используется только в PHP 5, потому что в предыдущих версиях все методы являлись публичными.

doc_comment

Документирующий комментарий к функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
runkit 1.0.4 | Был добавлен необязательный параметр doc_comment.

Примеры

Пример #1 Пример runkit_method_add()

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// создаем экземпляр Example
$e = new Example();

// добавляем новый публичный метод
runkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    RUNKIT_ACC_PUBLIC
);

// вычисляем 12 + 4
echo $e->add(12, 4);
?>

Результат выполнения данного примера:

16

Смотрите также

  • runkit_method_copy() - Копирование метода из одного класса в другой
  • runkit_method_redefine() - Изменяет код выбранного метода
  • runkit_method_remove() - Динамически удаляет выбранный метод
  • runkit_method_rename() - Переименовывает выбранный метод
  • runkit_function_add() - Добавляет новую функцию аналогично create_function


Копирование метода из одного класса в другой

  • « runkit_method_add
  • runkit_method_redefine »
  • PHP Manual
  • runkit
  • Копирование метода из одного класса в другой

runkit_method_copy

(PECL runkit >= 0.7.0)

runkit_method_copy — Копирование метода из одного класса в другой

Описание

bool runkit_method_copy ( string $dClass , string $dMethod , string $sClass [, string $sMethod ] )

Список параметров

dClass

Класс назначения: имя класса, в который копируется метод

dMethod

Метод назначение: имя метода, в который копируется метод

sClass

Исходный класс: имя класса, из которого копируется метод

sMethod

Исходный метод: имя метода, который копируется. Если этот параметр не указан, используется значение dMethod.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример runkit_method_copy()

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // изначально методы отсутствуют
}

// копируем метод example() из класса Foo в класс Bar как baz()
runkit_method_copy('Bar', 'baz', 'Foo', 'example');

// вывод скопированной функции
echo Bar::baz();
?>

Результат выполнения данного примера:

foo!

Смотрите также

  • runkit_method_add() - Динамически добавляет новый метод в класс
  • runkit_method_redefine() - Изменяет код выбранного метода
  • runkit_method_remove() - Динамически удаляет выбранный метод
  • runkit_method_rename() - Переименовывает выбранный метод
  • runkit_function_copy() - Копирует функцию с новым именем


Изменяет код выбранного метода

  • « runkit_method_copy
  • runkit_method_remove »
  • PHP Manual
  • runkit
  • Изменяет код выбранного метода

runkit_method_redefine

(PECL runkit >= 0.7.0)

runkit_method_redefine — Изменяет код выбранного метода

Описание

bool runkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = RUNKIT_ACC_PUBLIC [, string $doc_comment = NULL ]] )

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Список параметров

classname

Имя класса, в котором заменяется метод

methodname

Имя заменяемого метода

args

Список параметров, принимаемых методом через запятую

code

Новый код метода, который выполнится при вызове methodname

flags

Переназначаемый метод может быть RUNKIT_ACC_PUBLIC, RUNKIT_ACC_PROTECTED или RUNKIT_ACC_PRIVATE опционально в комбинации через побитовое ИЛИ с RUNKIT_ACC_STATIC (начиная с версии 1.0.1)

doc_comment

Документирующий комментарий к функции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
runkit 1.0.4 | Был добавлен необязательный параметр doc_comment.

Примеры

Пример #1 Пример для runkit_method_redefine()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// создаем экзепаляр Example
$e = new Example();

// вывод Example::foo() (до переназначения)
echo "Before: " . $e->foo();

// переназначаем метод 'foo'
runkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    RUNKIT_ACC_PUBLIC
);

// вывод Example::foo() (после переназначения)
echo "After: " . $e->foo();
?>

Результат выполнения данного примера:

Before: foo!
After: bar!

Смотрите также

  • runkit_method_add() - Динамически добавляет новый метод в класс
  • runkit_method_copy() - Копирование метода из одного класса в другой
  • runkit_method_remove() - Динамически удаляет выбранный метод
  • runkit_method_rename() - Переименовывает выбранный метод
  • runkit_function_redefine() - Заменяет определение функции новой реализацией.


Динамически удаляет выбранный метод

  • « runkit_method_redefine
  • runkit_method_rename »
  • PHP Manual
  • runkit
  • Динамически удаляет выбранный метод

runkit_method_remove

(PECL runkit >= 0.7.0)

runkit_method_remove — Динамически удаляет выбранный метод

Описание

bool runkit_method_remove ( string $classname , string $methodname )

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Список параметров

classname

Имя класса, из которого удаляется метод

methodname

Имя удаляемого метода

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример runkit_method_remove()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Удаление метода 'foo'
runkit_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

Результат выполнения данного примера:

bar

Смотрите также

  • runkit_method_add() - Динамически добавляет новый метод в класс
  • runkit_method_copy() - Копирование метода из одного класса в другой
  • runkit_method_redefine() - Изменяет код выбранного метода
  • runkit_method_rename() - Переименовывает выбранный метод
  • runkit_function_remove() - Удаляет определенную функцию


Переименовывает выбранный метод

  • « runkit_method_remove
  • runkit_return_value_used »
  • PHP Manual
  • runkit
  • Переименовывает выбранный метод

runkit_method_rename

(PECL runkit >= 0.7.0)

runkit_method_rename — Переименовывает выбранный метод

Описание

bool runkit_method_rename ( string $classname , string $methodname , string $newname )

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Список параметров

classname

Имя класса, в котором переименовывается метод

methodname

Текущее имя переименовываемого метода

newname

Новое имя переименовываемого метода

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример runkit_method_rename()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Переименование метода 'foo' в метод 'bar'
runkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// output renamed function
echo Example::bar();
?>

Результат выполнения данного примера:

foo!

Смотрите также

  • runkit_method_add() - Динамически добавляет новый метод в класс
  • runkit_method_copy() - Копирование метода из одного класса в другой
  • runkit_method_redefine() - Изменяет код выбранного метода
  • runkit_method_remove() - Динамически удаляет выбранный метод
  • runkit_function_rename() - Переименовывает функцию


Определяет, используется ли возвращаемое функцией значение

  • « runkit_method_rename
  • runkit_sandbox_output_handler »
  • PHP Manual
  • runkit
  • Определяет, используется ли возвращаемое функцией значение

runkit_return_value_used

(PECL runkit >= 0.8.0)

runkit_return_value_used — Определяет, используется ли возвращаемое функцией значение

Описание

bool runkit_return_value_used ( void )

Возвращаемые значения

Возвращается TRUE, если возвращаемое функцией значение используется в текущей области видимости, иначе FALSE

Примеры

Пример #1 Пример runkit_return_value_used()

<?php
function foo() {
  var_dump(runkit_return_value_used());
}

foo();
$f = foo();
?>

Результат выполнения данного примера:

bool(false)
bool(true)


Задает функцию для захвата и/или обработки данных из "песочницы".

  • « runkit_return_value_used
  • runkit_superglobals »
  • PHP Manual
  • runkit
  • Задает функцию для захвата и/или обработки данных из "песочницы".

runkit_sandbox_output_handler

(PECL runkit >= 0.7.0)

runkit_sandbox_output_handler — Задает функцию для захвата и/или обработки данных из "песочницы".

Описание

mixed runkit_sandbox_output_handler ( object $sandbox [, mixed $callback ] )

Обычно все результаты работы в песочнице (использование функций echo или print) будут выведены в родительском окружении. Использование runkit_sandbox_output_handler() позволяет перехватить эти данные функцией вне песочницы.

Замечание: Поддержка песочницы (необходима для runkit_lint(), runkit_lint_file(), и класса Runkit_Sandbox) доступна только начиная с версии PHP 5.1.0 или в специально пропатченных версиях PHP 5.0, а также требует потокобезопасной (thread safe) версии PHP. Для более подробной информации смотрите файл README, поставляемый с пакетом runkit.

Замечание: Deprecated

Начиная с версии runkit 0.5 данная функция является устаревшей и помечена для удаления в версии 1.0. Обработка вывода песочницы может быть задана с помощью опции output_handler, доступной в виде Array Access для экземпляра Runkit_Sandbox. Подробную информацию можно получить на странице описания Runkit_Sandbox

Список параметров

sandbox

Экземпляр Runkit_Sandbox, вывод которого необходимо обрабатывать.

callback

Имя функции для перехвата данных. Функция должна принимать один аргумент. Вывод sandbox будет передан этой функции. Все данные, возвращаемые функцией будут отображены в стандартном порядке. Если этот параметр отсутствует, управление выводом песочницы не будет изменено. Если указанной функции не существует, обработка вывода будет отключена и данные будут выводиться в стандартном режиме.

Возвращаемые значения

Возвращает предыдущее имя функции или FALSE, если она не была задана.

Примеры

Пример #1 Перевод вывода в переменную

<?php
function capture_output($str) {
  $GLOBALS['sandbox_output'] .= $str;

  return '';
}

$sandbox_output = '';

$php = new Runkit_Sandbox();
runkit_sandbox_output_handler($php, 'capture_output');
$php->echo("Hello\n");
$php->eval('var_dump("Excuse me");');
$php->die("I lost myself.");
unset($php);

echo "Sandbox Complete\n\n";
echo $sandbox_output;
?>

Результат выполнения данного примера:

Sandbox Complete

Hello
string(9) "Excuse me"
I lost myself.


Возвращает индексный массив зарегистрированных суперглобальных переменных.

  • « runkit_sandbox_output_handler
  • scream »
  • PHP Manual
  • runkit
  • Возвращает индексный массив зарегистрированных суперглобальных переменных.

runkit_superglobals

(PECL runkit >= 0.7.0)

runkit_superglobals — Возвращает индексный массив зарегистрированных суперглобальных переменных.

Описание

array runkit_superglobals ( void )

Возвращаемые значения

Возвращает индексный массив зарегистрированных переменных, например: _GET, _POST, _REQUEST, _COOKIE, _SESSION, _SERVER, _ENV, _FILES

Смотрите также

  • Область видимости переменной


Прерывает режим молчание

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Примеры
    • Пример, демонстрирующий эффект "крика" (scream)


Введение

Расширение "scream" дает возможность запретить режим молчания операторов контроля ошибок, так что все ошибки будут выведены. Эта возможность контролируется ini-настройками.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Версия PHP 5.2.0 и выше.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/scream


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки расширения scream
Имя | По умолчанию | Меняемо | Список изменений
scream.enabled | Off | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

scream.enabled int

Запретить или разрешить "крик".


  • « Настройка во время выполнения
  • Примеры »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


  • « Типы ресурсов
  • Пример, демонстрирующий эффект "крика" (scream) »
  • PHP Manual
  • scream
  • Примеры

Примеры

Содержание

  • Пример, демонстрирующий эффект "крика" (scream)


Пример, демонстрирующий эффект "крика" (scream)

Этот пример демонстрирует, как "крик" воздействует на поведение обработчиков ошибок PHP.

Пример #1 Разрешение и запрет "крика" во время исполнения

<?php
// Убедимся, что все ошибки показываются
ini_set('display_errors', true);
error_reporting(E_ALL);

// Запрещаем крик и провоцируем ошибку.
ini_set('scream.enabled', false);
echo "Opening http://example.com/not-existing-file\n";
@fopen('http://example.com/not-existing-file', 'r');

// Таперь разрешаем крик и пробуем снова
ini_set('scream.enabled', true);
echo "Opening http://example.com/not-existing-file\n";
@fopen('http://example.com/not-existing-file', 'r');
?>

Результатом выполнения данного примера будет что-то подобное:

Opening http://example.com/not-existing-file
Opening http://example.com/not-existing-file

Warning: fopen(http://example.com/not-existing-file): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in example.php on line 14

Замечание: Обычно нужно задать настройку в файле конфигурации php.ini , вместо того, чтобы делать это в коде.


uopz

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Uopz Функции
    • uopz_backup — Backup a function
    • uopz_compose — Compose a class
    • uopz_copy — Copy a function
    • uopz_delete — Delete a function
    • uopz_extend — Extend a class at runtime
    • uopz_flags — Get or set flags on function or class
    • uopz_function — Creates a function at runtime
    • uopz_implement — Implements an interface at runtime
    • uopz_overload — Overload a VM opcode
    • uopz_redefine — Redefine a constant
    • uopz_rename — Rename a function at runtime
    • uopz_restore — Restore a previously backed up function
    • uopz_undefine — Undefine a constant


Введение

The uopz - User Operations for Zend - extension exposes Zend Engine functionality normally used at compilation and execution time in order to allow modification of the internal structures that represent PHP code, and for user code to interact with the VM.

uopz supports the following activities:

  • Overloading some opcodes including ZEND_EXIT and ZEND_NEW
  • Backup and restore functions and methods
  • Renaming functions and methods
  • Copying of functions and methods
  • Deletion of functions and methods
  • Redefinition of global and class constants
  • Deletion of global and class constants
  • Runtime composition and modification of classes

Замечание:

All of the activities supported are compatible with opcache


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

uopz requires 5.4+


Установка

uopz releases are hosted by PECL and the source code by » github, the easiest route to installation is the normal PECL route: » http://pecl.php.net/package/uopz.

Windows users can download prebuilt release binaries from the » PECL website.


  • « Установка
  • Типы ресурсов »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

uopz must be loaded as a zend_extension


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

The following opcodes are defined as constants by uopz:

ZEND_EXIT (integer)
Invoked by exit() and die(), recieves no arguments. Return boolean TRUE to exit, FALSE to continue
ZEND_NEW (integer)
Invoked by object construction, receives the class of object being created as the only argument
ZEND_THROW (integer)
Invoked by the throw construct, receives the class of exception being thrown as the only argument
ZEND_FETCH_CLASS (integer)
Invoked upon composure, recieves the class the name of the class being fetched as the only argument
ZEND_ADD_TRAIT (integer)
Invoked upon composure, recieves the class the trait is being added to as the first argument, and the name of the trait as the second argument
ZEND_ADD_INTERFACE (integer)
Invoked upon composure, recieves the class the interface is being added to as the first argument, and the name of the interface as the second argument
ZEND_INSTANCEOF (integer)
Invoked by instanceof operator, recieves the object being verified as the first argument, and the name of the class which that object should be as the second argument

The following constants control the VM's behaviour after a user handler is invoked, be extremely careful!

ZEND_USER_OPCODE_CONTINUE (integer)
Advance 1 opcode and continuue
ZEND_USER_OPCODE_ENTER (integer)
Enter into new op_array without recursion
ZEND_USER_OPCODE_LEAVE (integer)
Return to calling op_array within the same executor
ZEND_USER_OPCODE_DISPATCH (integer)
Dispatch to original opcode handler
ZEND_USER_OPCODE_DISPATCH_TO (integer)
Dispatch to a specific handler (OR'd with ZEND opcode constant)
ZEND_USER_OPCODE_RETURN (integer)
Exit from executor (return from function)

The following modifiers are registered as constants by uopz

ZEND_ACC_PUBLIC (integer)
Mark function as public, the default
ZEND_ACC_PROTECTED (integer)
Mark function as protected
ZEND_ACC_PRIVATE (integer)
Mark function as private
ZEND_ACC_STATIC (integer)
Mark function as static
ZEND_ACC_FINAL (integer)
Mark function as final
ZEND_ACC_ABSTRACT (integer)
Mark function as abstract
ZEND_ACC_CLASS (integer)
Dummy registered for consistency, the default kind of class entry
ZEND_ACC_INTERFACE (integer)
Mark class as interface
ZEND_ACC_TRAIT (integer)
Mark class as trait
ZEND_ACC_FETCH (integer)
Used for getting flags only


Uopz Функции

Содержание

  • uopz_backup — Backup a function
  • uopz_compose — Compose a class
  • uopz_copy — Copy a function
  • uopz_delete — Delete a function
  • uopz_extend — Extend a class at runtime
  • uopz_flags — Get or set flags on function or class
  • uopz_function — Creates a function at runtime
  • uopz_implement — Implements an interface at runtime
  • uopz_overload — Overload a VM opcode
  • uopz_redefine — Redefine a constant
  • uopz_rename — Rename a function at runtime
  • uopz_restore — Restore a previously backed up function
  • uopz_undefine — Undefine a constant


Backup a function

  • « Uopz Функции
  • uopz_compose »
  • PHP Manual
  • Uopz Функции
  • Backup a function

uopz_backup

(PECL uopz >= 1.0.3)

uopz_backup — Backup a function

Описание

void uopz_backup ( string $class , string $function )
void uopz_backup ( string $function )

Backup a function at runtime, to be restored on shutdown

Список параметров

class

The name of the class containing the function to backup

function

The name of the function

Возвращаемые значения

Примеры

Пример #1 uopz_backup() example

<?php
uopz_backup("fgets");
uopz_function("fgets", function(){
    return true;
});
var_dump(fgets());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)


Compose a class

  • « uopz_backup
  • uopz_copy »
  • PHP Manual
  • Uopz Функции
  • Compose a class

uopz_compose

(PECL uopz >= 1.0.0)

uopz_compose — Compose a class

Описание

void uopz_compose ( string $name , array $classes [, array $methods [, array $properties [, int $flags ]]] )

Creates a new class of the given name that implements, extends, or uses all of the provided classes

Список параметров

name

A legal class name

classes

An array of class, interface and trait names

methods

An associative array of methods, values are either closures or [modifiers => closure]

properties

An associative array of properties, keys are names, values are modifiers

flags

Entry type, by default ZEND_ACC_CLASS

Возвращаемые значения

Примеры

Пример #1 uopz_compose() example

<?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"
}


Copy a function

  • « uopz_compose
  • uopz_delete »
  • PHP Manual
  • Uopz Функции
  • Copy a function

uopz_copy

(PECL uopz >= 1.0.4)

uopz_copy — Copy a function

Описание

Closure uopz_copy ( string $class , string $function )
Closure uopz_copy ( string $function )

Copy a function by name

Список параметров

class

The name of the class containing the function to copy

function

The name of the function

Возвращаемые значения

A Closure for the specified function

Примеры

Пример #1 uopz_copy() example

<?php
$strtotime = uopz_copy('strtotime');

uopz_function("strtotime", function($arg1, $arg2) use($strtotime) {
    /* can call original strtotime from here */
    var_dump($arg1);
});

var_dump(strtotime('dummy'));
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "dummy"


Delete a function

  • « uopz_copy
  • uopz_extend »
  • PHP Manual
  • Uopz Функции
  • Delete a function

uopz_delete

(PECL uopz >= 1.0.0)

uopz_delete — Delete a function

Описание

void uopz_delete ( string $class , string $function )
void uopz_delete ( string $function )

Deletes a function or method

Список параметров

class

function

Возвращаемые значения

Примеры

Пример #1 uopz_delete() example

<?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() class example

<?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


Extend a class at runtime

  • « uopz_delete
  • uopz_flags »
  • PHP Manual
  • Uopz Функции
  • Extend a class at runtime

uopz_extend

(PECL uopz >= 1.0.0)

uopz_extend — Extend a class at runtime

Описание

void uopz_extend ( string $class , string $parent )

Makes class extend parent

Список параметров

class

The name of the class to extend

parent

The name of the class to inherit

Возвращаемые значения

Примеры

Пример #1 uopz_extend() example

<?php
class A {}
class B {}

uopz_extend(A::class, B::class);

var_dump(class_parents(A::class));
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  ["B"]=>
  string(1) "B"
}


Get or set flags on function or class

  • « uopz_extend
  • uopz_function »
  • PHP Manual
  • Uopz Функции
  • Get or set flags on function or class

uopz_flags

(PECL uopz >= 2.0.2)

uopz_flags — Get or set flags on function or class

Описание

int uopz_flags ( string $class , string $function , int $flags )
int uopz_flags ( string $function , int $flags )

Get or set the flags on a class or function entry at runtime

Список параметров

class

The name of a class

function

The name of the function

flags

A valid set of ZEND_ACC_ flags, ZEND_ACC_FETCH to read flags

Возвращаемые значения

If setting, returns old flags, else returns flags

Примеры

Пример #1 uopz_flags() example

<?php
class Test {
    public function method() {
        return __CLASS__;
    }
}

$flags = uopz_flags("Test", "method", ZEND_ACC_FETCH);

var_dump((bool) (uopz_flags("Test", "method", ZEND_ACC_FETCH) & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method", ZEND_ACC_FETCH) & 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_FETCH) & ZEND_ACC_PRIVATE));
var_dump((bool) (uopz_flags("Test", "method", ZEND_ACC_FETCH) & ZEND_ACC_STATIC));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(false)
int(1234567890)
bool(true)
bool(true)


Creates a function at runtime

  • « uopz_flags
  • uopz_implement »
  • PHP Manual
  • Uopz Функции
  • Creates a function at runtime

uopz_function

(PECL uopz >= 1.0.0)

uopz_function — Creates a function at runtime

Описание

void uopz_function ( string $class , string $function , Closure $handler [, int $modifiers ] )
void uopz_function ( string $function , Closure $handler [, int $modifiers ] )

Creates a function at runtime

Список параметров

class

The name of the class to receive the new function

function

The name of the function

handler

The Closure for the function

modifiers

The modifiers for the function, by default copied or ZEND_ACC_PUBLIC

Возвращаемые значения

Примеры

Пример #1 uopz_function() example

<?php
uopz_function("my_strlen", function($arg) {
    return strlen($arg);
});
echo my_strlen("Hello World");
?>

Результатом выполнения данного примера будет что-то подобное:

11

Пример #2 uopz_function() class example

<?php
class My {}

uopz_function(My::class, "strlen", function($arg) {
    return strlen($arg);
}, ZEND_ACC_STATIC);

echo My::strlen("Hello World");
?>

Результатом выполнения данного примера будет что-то подобное:

11


Implements an interface at runtime

  • « uopz_function
  • uopz_overload »
  • PHP Manual
  • Uopz Функции
  • Implements an interface at runtime

uopz_implement

(PECL uopz >= 1.0.0)

uopz_implement — Implements an interface at runtime

Описание

void uopz_implement ( string $class , string $interface )

Makes class implement interface

Список параметров

class

interface

Возвращаемые значения

Примеры

Пример #1 uopz_implement() example

<?php
interface myInterface {}

class myClass {}

uopz_implement(myClass::class, myInterface::class);

var_dump(class_implements(myClass::class));
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  ["myInterface"]=>
  string(11) "myInterface"
}


Overload a VM opcode

  • « uopz_implement
  • uopz_redefine »
  • PHP Manual
  • Uopz Функции
  • Overload a VM opcode

uopz_overload

(PECL uopz >= 1.0.0)

uopz_overload — Overload a VM opcode

Описание

void uopz_overload ( int $opcode , Callable $callable )

Overloads the specified opcode with the user defined function

Список параметров

opcode

A valid opcode, see constants for details of supported codes

callable

Возвращаемые значения

Примеры

Пример #1 uopz_overload() example

<?php
uopz_overload(ZEND_EXIT, function(){});

exit();
echo "Hello World";
?>

Результатом выполнения данного примера будет что-то подобное:

Hello World


Redefine a constant

  • « uopz_overload
  • uopz_rename »
  • PHP Manual
  • Uopz Функции
  • Redefine a constant

uopz_redefine

(PECL uopz >= 1.0.0)

uopz_redefine — Redefine a constant

Описание

void uopz_redefine ( string $class , string $constant , mixed $value )
void uopz_redefine ( string $constant , mixed $value )

Redefines the given constant as value

Список параметров

class

The name of the class containing the constant

constant

The name of the constant

value

The new value for the constant, must be a valid type for a constant variable

Возвращаемые значения

Примеры

Пример #1 uopz_redefine() example

<?php
define("MY", 100);

uopz_redefine("MY", 1000);

echo MY;
?>

Результатом выполнения данного примера будет что-то подобное:

1000


Rename a function at runtime

  • « uopz_redefine
  • uopz_restore »
  • PHP Manual
  • Uopz Функции
  • Rename a function at runtime

uopz_rename

(PECL uopz >= 1.0.0)

uopz_rename — Rename a function at runtime

Описание

void uopz_rename ( string $class , string $function , string $rename )
void uopz_rename ( string $function , string $rename )

Renames function to rename

Замечание:

If both functions exist, this effectively swaps their names

Список параметров

class

The name of the class containing the function

function

The name of an existing function

rename

The new name for the function

Возвращаемые значения

Примеры

Пример #1 uopz_rename() example

<?php
uopz_rename("strlen", "original_strlen");

echo original_strlen("Hello World");
?>

Результатом выполнения данного примера будет что-то подобное:

11

Пример #2 uopz_rename() class example

<?php
class My {
    public function strlen($arg) {
        return strlen($arg);
    }
}

uopz_rename(My::class, "strlen", "original_strlen");

echo My::original_strlen("Hello World");
?>

Результатом выполнения данного примера будет что-то подобное:

11


Restore a previously backed up function

  • « uopz_rename
  • uopz_undefine »
  • PHP Manual
  • Uopz Функции
  • Restore a previously backed up function

uopz_restore

(PECL uopz >= 1.0.3)

uopz_restore — Restore a previously backed up function

Описание

void uopz_restore ( string $class , string $function )
void uopz_restore ( string $function )

Restore a previously backed up function

Список параметров

class

The name of the class containing the function to restore

function

The name of the function

Возвращаемые значения

Примеры

Пример #1 uopz_restore() example

<?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


Undefine a constant

  • « uopz_restore
  • Weakref »
  • PHP Manual
  • Uopz Функции
  • Undefine a constant

uopz_undefine

(PECL uopz >= 1.0.0)

uopz_undefine — Undefine a constant

Описание

void uopz_undefine ( string $class , string $constant )
void uopz_undefine ( string $constant )

Removes the constant at runtime

Список параметров

class

The name of the class containing constant

constant

The name of an existing constant

Возвращаемые значения

Примеры

Пример #1 uopz_undefine() example

<?php
define("MY", true);

uopz_undefine("MY");

var_dump(defined("MY"));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)


Weak References

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Типы ресурсов
  • WeakRef — The WeakRef class
    • Weakref::acquire — Acquires a strong reference on that object
    • Weakref::__construct — Constructs a new weak reference
    • Weakref::get — Returns the object pointed to by the weak reference
    • Weakref::release — Releases a previously acquired reference
    • Weakref::valid — Checks whether the object referenced still exists
  • WeakMap — The WeakMap class
    • WeakMap::__construct — Constructs a new map
    • WeakMap::count — Counts the number of live entries in the map
    • WeakMap::current — Returns the current value under iteration
    • WeakMap::key — Returns the current key under iteration.
    • WeakMap::next — Advances to the next map element
    • WeakMap::offsetExists — Checks whether a certain object is in the map
    • WeakMap::offsetGet — Returns the value pointed to by a certain object
    • WeakMap::offsetSet — Updates the map with a new key-value pair
    • WeakMap::offsetUnset — Removes an entry from the map
    • WeakMap::rewind — Rewinds the iterator to the beginning of the map
    • WeakMap::valid — Returns whether the iterator is still on a valid map element


Введение

Weak references provide a non-intrusive gateway to ephemeral objects. Unlike normal (strong) references, weak references do not prevent the garbage collector from freeing that object. For this reason, an object may be destroyed even though a weak reference to that object still exists. In such conditions, the weak reference seamlessly becomes invalid.

Пример #1 Weakref usage example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}

unset($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}
?>

Результат выполнения данного примера:

Object still exists!
object(MyClass)#1 (0) {
}
Destroying object!
Object is dead!


  • « Введение
  • Требования »
  • PHP Manual
  • Weakref
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка
  • Типы ресурсов


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/weakref.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Установка
  • WeakRef »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


The WeakRef class

(PECL weakref >= 0.1.0)

Введение

The WeakRef class provides a gateway to objects without preventing the garbage collector from freeing those objects. It also provides a way to turn a weak reference into a strong one.

Обзор классов

WeakRef {
/* Методы */
public Weakref::__construct ( object $object )
public bool Weakref::acquire ( void )
public object Weakref::get ( void )
public bool Weakref::release ( void )
public bool Weakref::valid ( void )
}

Примеры

Пример #1 WeakRef usage example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new WeakRef($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}

unset($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}
?>

Результат выполнения данного примера:

Object still exists!
object(MyClass)#1 (0) {
}
Destroying object!
Object is dead!

Содержание

  • Weakref::acquire — Acquires a strong reference on that object
  • Weakref::__construct — Constructs a new weak reference
  • Weakref::get — Returns the object pointed to by the weak reference
  • Weakref::release — Releases a previously acquired reference
  • Weakref::valid — Checks whether the object referenced still exists


Acquires a strong reference on that object

  • « WeakRef
  • Weakref::__construct »
  • PHP Manual
  • WeakRef
  • Acquires a strong reference on that object

Weakref::acquire

(PECL weakref >= 0.1.0)

Weakref::acquire — Acquires a strong reference on that object

Описание

public bool Weakref::acquire ( void )

Acquires a strong reference on that object, virtually turning the weak reference into a strong one.

The Weakref instance maintains an internal acquired counter to track outstanding strong references. If the call to Weakref::acquire() is successful, this counter will be incremented by one.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the reference was valid and could be turned into a strong reference, FALSE otherwise.

Примеры

Пример #1 Weakref::acquire() example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

$r1->acquire();

echo "Unsetting o1...\n";
unset($o1);

$o2 = $r1->get();

$r1->release();

echo "Unsetting o2...\n";
unset($o2);
?>

Результат выполнения данного примера:

Unsetting o1...
Unsetting o2...
Destroying object!

Пример #2 Nested acquire/release example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

echo "Acquiring...\n";
$r1->acquire();

echo "  Unsetting...\n";
unset($o1);

echo "  Acquiring...\n";
$r1->acquire();

echo "    Acquiring...\n";
$r1->acquire();

echo "    Releasing...\n";
$r1->release();

echo "  Releasing...\n";
$r1->release();

echo "Releasing...\n";
$r1->release();

?>

Результат выполнения данного примера:

Acquiring...
  Unsetting...
  Acquiring...
    Acquiring...
    Releasing...
  Releasing...
Releasing...
Destroying object!

Смотрите также

  • Weakref::release() - Releases a previously acquired reference


Constructs a new weak reference

  • « Weakref::acquire
  • Weakref::get »
  • PHP Manual
  • WeakRef
  • Constructs a new weak reference

Weakref::__construct

(PECL weakref >= 0.1.0)

Weakref::__construct — Constructs a new weak reference

Описание

public Weakref::__construct ( object $object )

Constructs a new weak reference.

Список параметров

object

The object to reference.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Weakref::__construct() example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}

unset($o1);

if ($r1->valid()) {
    echo "Object still exists!\n";
    var_dump($r1->get());
} else {
    echo "Object is dead!\n";
}
?>

Результат выполнения данного примера:

Object still exists!
object(MyClass)#1 (0) {
}
Destroying object!
Object is dead!


Returns the object pointed to by the weak reference

  • « Weakref::__construct
  • Weakref::release »
  • PHP Manual
  • WeakRef
  • Returns the object pointed to by the weak reference

Weakref::get

(PECL weakref >= 0.1.0)

Weakref::get — Returns the object pointed to by the weak reference

Описание

public object Weakref::get ( void )

Returns the object pointed to by the weak reference.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the object if the reference is still valid, NULL otherwise.

Смотрите также

  • Weakref::valid() - Checks whether the object referenced still exists


Releases a previously acquired reference

  • « Weakref::get
  • Weakref::valid »
  • PHP Manual
  • WeakRef
  • Releases a previously acquired reference

Weakref::release

(PECL weakref >= 0.1.0)

Weakref::release — Releases a previously acquired reference

Описание

public bool Weakref::release ( void )

Releases a previously acquired reference, potentially turning a strong reference back into a weak reference.

The Weakref instance maintains an internal acquired counter to track outstanding strong references. If the call to Weakref::release() is successful, this counter will be decremented by one. Once this counter reaches zero, the strong reference is turned back into a weak reference.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the reference was previously acquired and thus could be released, FALSE otherwise.

Примеры

Пример #1 Weakref::release() example

<?php
class MyClass {
    public function __destruct() {
        echo "Destroying object!\n";
    }
}

$o1 = new MyClass;

$r1 = new Weakref($o1);

$r1->acquire();

echo "Unsetting o1...\n";
unset($o1);

$o2 = $r1->get();

$r1->release();

echo "Unsetting o2...\n";
unset($o2);
?>

Результат выполнения данного примера:

Unsetting o1...
Unsetting o2...
Destroying object!

Смотрите также

  • Weakref::acquire() - Acquires a strong reference on that object


Checks whether the object referenced still exists

  • « Weakref::release
  • WeakMap »
  • PHP Manual
  • WeakRef
  • Checks whether the object referenced still exists

Weakref::valid

(PECL weakref >= 0.1.0)

Weakref::valid — Checks whether the object referenced still exists

Описание

public bool Weakref::valid ( void )

Checks whether the object referenced still exists.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the object still exists and is thus still accessible via Weakref::get(), FALSE otherwise.

Смотрите также

  • Weakref::get() - Returns the object pointed to by the weak reference


The WeakMap class

(PECL weakref >= 0.2.0)

Введение

Обзор классов

WeakMap implements Countable , ArrayAccess , Iterator {
/* Методы */
public __construct ( void )
public int count ( void )
public mixed current ( void )
public object key ( void )
public void next ( void )
public bool offsetExists ( object $object )
public mixed offsetGet ( object $object )
public void offsetSet ( object $object , mixed $value )
public void offsetUnset ( object $object )
public void rewind ( void )
public bool valid ( void )
}

Примеры

Пример #1 Weakmap usage example

<?php
$wm = new WeakMap();

$o = new StdClass;

class A {
    public function __destruct() {
        echo "Dead!\n";
    }
}

$wm[$o] = new A;

var_dump(count($wm));
echo "Unsetting..\n";
unset($o);
echo "Done\n";
var_dump(count($wm));

Результат выполнения данного примера:

int(1)
Unsetting..
Dead!
Done
int(0)

Содержание

  • WeakMap::__construct — Constructs a new map
  • WeakMap::count — Counts the number of live entries in the map
  • WeakMap::current — Returns the current value under iteration
  • WeakMap::key — Returns the current key under iteration.
  • WeakMap::next — Advances to the next map element
  • WeakMap::offsetExists — Checks whether a certain object is in the map
  • WeakMap::offsetGet — Returns the value pointed to by a certain object
  • WeakMap::offsetSet — Updates the map with a new key-value pair
  • WeakMap::offsetUnset — Removes an entry from the map
  • WeakMap::rewind — Rewinds the iterator to the beginning of the map
  • WeakMap::valid — Returns whether the iterator is still on a valid map element


Constructs a new map

  • « WeakMap
  • WeakMap::count »
  • PHP Manual
  • WeakMap
  • Constructs a new map

WeakMap::__construct

(PECL weakref >= 0.2.0)

WeakMap::__construct — Constructs a new map

Описание

public WeakMap::__construct ( void )

Constructs a new map.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Counts the number of live entries in the map

  • « WeakMap::__construct
  • WeakMap::current »
  • PHP Manual
  • WeakMap
  • Counts the number of live entries in the map

WeakMap::count

(PECL weakref >= 0.2.0)

WeakMap::count — Counts the number of live entries in the map

Описание

public int WeakMap::count ( void )

Counts the number of live entries in the map.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of live entries in the map.


Returns the current value under iteration

  • « WeakMap::count
  • WeakMap::key »
  • PHP Manual
  • WeakMap
  • Returns the current value under iteration

WeakMap::current

(PECL weakref >= 0.2.0)

WeakMap::current — Returns the current value under iteration

Описание

public mixed WeakMap::current ( void )

Returns the current value being iterated on in the map.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The value currently being iterated on.


Returns the current key under iteration.

  • « WeakMap::current
  • WeakMap::next »
  • PHP Manual
  • WeakMap
  • Returns the current key under iteration.

WeakMap::key

(PECL weakref >= 0.2.0)

WeakMap::key — Returns the current key under iteration.

Описание

public object WeakMap::key ( void )

Returns the object serving as key in the map, at the current iterating position.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The object key currently being iterated.


Advances to the next map element

  • « WeakMap::key
  • WeakMap::offsetExists »
  • PHP Manual
  • WeakMap
  • Advances to the next map element

WeakMap::next

(PECL weakref >= 0.2.0)

WeakMap::next — Advances to the next map element

Описание

public void WeakMap::next ( void )

Advances to the next map element.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Checks whether a certain object is in the map

  • « WeakMap::next
  • WeakMap::offsetGet »
  • PHP Manual
  • WeakMap
  • Checks whether a certain object is in the map

WeakMap::offsetExists

(PECL weakref >= 0.2.0)

WeakMap::offsetExists — Checks whether a certain object is in the map

Описание

public bool WeakMap::offsetExists ( object $object )

Checks whether the passed object is referenced in the map.

Список параметров

object

Object to check for.

Возвращаемые значения

Returns TRUE if the object is contained in the map, FALSE otherwise.


Returns the value pointed to by a certain object

  • « WeakMap::offsetExists
  • WeakMap::offsetSet »
  • PHP Manual
  • WeakMap
  • Returns the value pointed to by a certain object

WeakMap::offsetGet

(PECL weakref >= 0.2.0)

WeakMap::offsetGet — Returns the value pointed to by a certain object

Описание

public mixed WeakMap::offsetGet ( object $object )

Returns the value pointed to by a certain object.

Список параметров

object

Some object contained as key in the map.

Возвращаемые значения

Returns the value associated to the object passed as argument, NULL otherwise.


Updates the map with a new key-value pair

  • « WeakMap::offsetGet
  • WeakMap::offsetUnset »
  • PHP Manual
  • WeakMap
  • Updates the map with a new key-value pair

WeakMap::offsetSet

(PECL weakref >= 0.2.0)

WeakMap::offsetSet — Updates the map with a new key-value pair

Описание

public void WeakMap::offsetSet ( object $object , mixed $value )

Updates the map with a new key-value pair. If the key already existed in the map, the old value is replaced with the new.

Список параметров

object

The object serving as key of the key-value pair.

value

The arbitrary data serving as value of the key-value pair.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Removes an entry from the map

  • « WeakMap::offsetSet
  • WeakMap::rewind »
  • PHP Manual
  • WeakMap
  • Removes an entry from the map

WeakMap::offsetUnset

(PECL weakref >= 0.2.0)

WeakMap::offsetUnset — Removes an entry from the map

Описание

public void WeakMap::offsetUnset ( object $object )

Removes an entry from the map.

Список параметров

object

The key object to remove from the map.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Rewinds the iterator to the beginning of the map

  • « WeakMap::offsetUnset
  • WeakMap::valid »
  • PHP Manual
  • WeakMap
  • Rewinds the iterator to the beginning of the map

WeakMap::rewind

(PECL weakref >= 0.2.0)

WeakMap::rewind — Rewinds the iterator to the beginning of the map

Описание

public void WeakMap::rewind ( void )

Rewinds the iterator to the beginning of the map.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Returns whether the iterator is still on a valid map element

  • « WeakMap::rewind
  • WinCache »
  • PHP Manual
  • WeakMap
  • Returns whether the iterator is still on a valid map element

WeakMap::valid

(PECL weakref >= 0.2.0)

WeakMap::valid — Returns whether the iterator is still on a valid map element

Описание

public bool WeakMap::valid ( void )

Returns whether the iterator is still on a valid map element.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the iterator is on a valid element that can be accessed, FALSE otherwise.


Windows Cache for PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • WinCache Statistics Script
    • WinCache Session Handler
    • WinCache Functions Reroutes
    • Типы ресурсов
  • Предопределенные константы
  • WinCache Функции
    • wincache_fcache_fileinfo — Retrieves information about files cached in the file cache
    • wincache_fcache_meminfo — Retrieves information about file cache memory usage
    • wincache_lock — Acquires an exclusive lock on a given key
    • wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache
    • wincache_ocache_meminfo — Retrieves information about opcode cache memory usage
    • wincache_refresh_if_changed — Refreshes the cache entries for the cached files
    • wincache_rplist_fileinfo — Retrieves information about resolve file path cache
    • wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache
    • wincache_scache_info — Retrieves information about files cached in the session cache
    • wincache_scache_meminfo — Retrieves information about session cache memory usage
    • wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache
    • wincache_ucache_cas — Compares the variable with old value and assigns new value to it
    • wincache_ucache_clear — Deletes entire content of the user cache
    • wincache_ucache_dec — Decrements the value associated with the key
    • wincache_ucache_delete — Deletes variables from the user cache
    • wincache_ucache_exists — Checks if a variable exists in the user cache
    • wincache_ucache_get — Gets a variable stored in the user cache
    • wincache_ucache_inc — Increments the value associated with the key
    • wincache_ucache_info — Retrieves information about data stored in the user cache
    • wincache_ucache_meminfo — Retrieves information about user cache memory usage
    • wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache
    • wincache_unlock — Releases an exclusive lock on a given key
  • Building for Windows
    • Prerequisites
    • Compiling and building
    • Verifying the build


Введение

Windows Cache Extension for PHP is a PHP accelerator that is used to increase the speed of PHP applications running on Windows and Windows Server. Once the Windows Cache Extension for PHP is enabled and loaded by the PHP engine, PHP applications can take advantage of the functionality without any code modifications.

The Windows Cache Extension includes 5 different types of caches. The following describes the purpose of each cache type and the benefits it provides.

  • PHP Opcode Cache - PHP is a script processing engine, which reads an input stream of data that contains text and/or PHP instructions and produces another stream of data, most commonly in the HTML format. This means that on a web server the PHP engine reads, parses, compiles and executes a PHP script each time that it is requested by a Web client. The reading, parsing and compilation operations put additional load on the web server's CPU and file system and thus affect the overall performance of a PHP web application. The PHP bytecode (opcode) cache is used to store the compiled script bytecode in shared memory so that it can be re-used by PHP engine for subsequent executions of the same script.

  • File Cache - Even with the PHP opcode cache enabled, the PHP engine has to accesses the script files on a file system. When PHP scripts are stored on a remote UNC file share, the file operations introduce a significant performance overhead. The Windows Cache Extension for PHP includes a file cache that is used to store the content of the PHP script files in shared memory, which reduces the amount of file system operations performed by PHP engine.

  • Resolve File Path Cache - PHP scripts very often include or operate with files by using relative file paths. Every file path has to be normalized to an absolute file path by the PHP engine. When a PHP application uses many PHP files and accesses them by relative paths, the operation of resolving the paths may negatively impact the application's performance. The Windows Cache Extension for PHP provides a Resolve File Path cache, which is used to store the mappings between relative and absolute file paths, thereby reducing the number of path resolutions that the PHP engine has to perform.

  • User Cache (available since version 1.1.0) - PHP scripts can take advantage of the shared memory cache by using the user cache API's. PHP objects and variables can be stored in the user cache and then re-used on subsequent requests. This can be used to improve performance of PHP scripts and to share the data across multiple PHP processes.

  • Session Handler (available since version 1.1.0) - The WinCache session handler can be used to store the PHP session data in the shared memory cache. This avoids file system operations for reading and writing session data, which improves performance when large amount of data is stored in PHP session.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • WinCache Statistics Script
  • WinCache Session Handler
  • WinCache Functions Reroutes
  • Типы ресурсов


Требования

The extension is currently supported only on the following configurations:

Windows OS:

  • Windows XP SP3 with IIS 5.1 and » FastCGI Extension
  • Windows Server 2003 with IIS 6.0 and » FastCGI Extension
  • Windows Vista SP1 with IIS 7.0 and FastCGI Module
  • Windows Server 2008 with IIS 7.0 and FastCGI Module
  • Windows 7 with IIS 7.5 and FastCGI Module
  • Windows Server 2008 R2 with IIS 7.5 and FastCGI Module

PHP:

  • PHP 5.2.X, Non-thread-safe build
  • PHP 5.3 X86, Non-thread-safe VC9 build

Замечание: The WinCache Extension can only be used when IIS is configured to run PHP via FastCGI.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/wincache.

There are two packages for this extension: one package is for PHP versions 5.2.X, and the other package is for PHP 5.3.X. Select the package that is appropriate for the PHP version being used.

To install and enable the extension, follow these steps:

  1. Unpack the package into some temporary location.

  2. Copy the php_wincache.dll file into the PHP extensions folder. Typically this folder is called "ext" and it is located in the same folder with all PHP binary files. For example: C:\Program Files\PHP\ext.

  3. Using a text editor, open the php.ini file, which is usually located in the same folder where all PHP binary files are. For example: C:\Program Files\PHP\php.ini.

  4. Add the following line at the end of the php.ini file: extension = php_wincache.dll.

  5. Save and close the php.ini file.

  6. Recycle the IIS Application Pools for PHP to pick up the configuration changes. To check that the extension has been enabled, create a file called phpinfo.php with a PHP code that calls phpinfo function.

  7. Save the phpinfo.php file in the root folder of a IIS web site that uses PHP, then open a browser and make a request to http://localhost/phpinfo.php. Search within the returned web page for a section called wincache. If the extension is enabled, then the phpinfo output will list the configuration settings provided by the WinCache.

Замечание: Do not forget to remove phpinfo.php file from the web site's root folder after verifying that extension has been enabled.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

The following table lists and explains the configuration settings provided by the WinCache extension:

WinCache configuration options
Имя | По умолчанию | Minimum | Maximum | Меняемо | Список изменений
wincache.fcenabled | "1" | "0" | "1" | PHP_INI_ALL | Available as of WinCache 1.0.0
wincache.fcenabledfilter | "NULL" | "NULL" | "NULL" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.fcachesize | "24" | "5" | "255" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.fcndetect | "1" | "0" | "1" | PHP_INI_SYSTEM | Available as of WinCache 1.1.0
wincache.maxfilesize | "256" | "10" | "2048" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ocenabled | "1" | "0" | "1" | PHP_INI_ALL | Available as of WinCache 1.0.0. Removed as of 2.0.0.0
wincache.ocenabledfilter | "NULL" | "NULL" | "NULL" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0. Removed as of 2.0.0.0
wincache.ocachesize | "96" | "15" | "255" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0. Removed as of 2.0.0.0
wincache.filecount | "4096" | "1024" | "16384" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.chkinterval | "30" | "0" | "300" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ttlmax | "1200" | "0" | "7200" | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.enablecli | 0 | 0 | 1 | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ignorelist | NULL | NULL | NULL | PHP_INI_ALL | Available as of WinCache 1.0.0
wincache.namesalt | NULL | NULL | NULL | PHP_INI_SYSTEM | Available as of WinCache 1.0.0
wincache.ucenabled | 1 | 0 | 1 | PHP_INI_SYSTEM | Available as of WinCache 1.1.0
wincache.ucachesize | 8 | 5 | 85 | PHP_INI_SYSTEM | Available as of WinCache 1.1.0
wincache.scachesize | 8 | 5 | 85 | PHP_INI_SYSTEM | Available as of WinCache 1.1.0
wincache.rerouteini | NULL | NULL | NULL | PHP_INI_SYSTEM | Available as of WinCache 1.2.0. Removed as of 1.3.7
wincache.reroute_enabled | 1 | 0 | 1 | PHP_INI_SYSTEM | PHP_INI_PERDIR | Available as of WinCache 1.3.7
wincache.srwlocks | 1 | 0 | 1 | PHP_INI_SYSTEM | Available as of WinCache 1.3.6.3. Removed as of 2.0.0.0
wincache.filemapdir | NULL | NULL | NULL | PHP_INI_SYSTEM | Available as of WinCache 1.3.7.4
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

wincache.fcenabled boolean
Enables or disables the file cache functionality.
wincache.fcenabledfilter string
Defines a comma-separated list of IIS web site identifiers where file cache should be enabled or disabled. This setting works in conjunction with wincache.fcenabled: if wincache.fcenabled is set to 1, then the sites listed in the wincache.fcenabledfilter will have the file cache turned off; if wincache.fcenabled is set to 0, then the sites listed in the wincache.fcenabledfilter will have the file cache turned on.
wincache.fcachesize integer
Defines the maximum memory size (in megabytes) that is allocated for the file cache. If the total size of all the cached files exceeds the value specified in this setting, then most stale files will be removed from the file cache.
wincache.fcndetect boolean
Enables or disables the file change notification detection functionality. If file change notification is supported then it will be used to refresh the opcode and file cache entries as soon as the corresponding files are modified on a file system. If file change notification is not supported, for example when using network file shares, then wincache will poll for file changes at regular time intervals specified by wincache.chkinterval.
wincache.maxfilesize integer
Defines the maximum allowed size (in kilobytes) for a single file to be cached. If a file size exceeds the specified value, the file will not be cached. This setting applies to the file cache only.
wincache.ocenabled boolean
Внимание

This option has been REMOVED as of 2.0.0.0

Enables or disables the opcode cache functionality
wincache.ocenabledfilter string
Внимание

This option has been REMOVED as of 2.0.0.0

Defines a comma-separated list of IIS web site identifiers where opcode cache should be enabled or disabled. This setting works in conjunction with wincache.ocenabled: if wincache.ocenabled is set to 1, then the sites listed in the wincache.ocenabledfilter will have the opcode cache turned off; if wincache.ocenabled is set to 0, then the sites listed in the wincache.ocenabledfilter will have the opcode cache turned on.
wincache.ocachesize integer
Внимание

This option has been REMOVED as of 2.0.0.0

Defines the maximum memory size (in megabytes) that is allocated for the opcode cache. If the cached opcode size exceeds the specified value, then most stale opcode will be removed from the cache. Note that the opcode cache size must be at least 3 times bigger than file cache size. If that is not the case the opcode cache size will be automatically increased.
wincache.filecount integer
Defines how many files are expected to be cached by the extension, so that appropriate memory size is allocated at the startup time. If the number of files exceeds the specified value, the WinCache will re-allocate more memory as needed.
wincache.chkinterval integer
Defines how often (in seconds) the extension checks for file changes in order to refresh the cache. Setting it to 0 will disable the refreshing of the cache. The file changes will not be reflected in the cache unless the cache entry for that file is removed by scavenger or IIS application pool is recycled or wincache_refresh_if_changed function is called.
wincache.ttlmax integer
Defines the maximum time to live (in seconds) for a cached entry without being used. Setting it to 0 will disable the cache scavenger, so the cached entries will never be removed from the cache during the lifetime of the IIS worker process.
wincache.enablecli boolean
Defines if caching is enabled when PHP is running in command line (CLI) mode.
wincache.ignorelist string

Defines a list of files that should not be cached by the extension. The files list is specified by using file names only, separated by the pipe symbol - "|".

Пример #1 wincache.ignorelist example

wincache.ignorelist = "index.php|misc.php|admin.php"

wincache.namesalt string
Defines a string that will be used when naming the extension specific objects that are stored in shared memory. This is used to avoid conflicts that may be caused if other applications within an IIS worker process tries to access shared memory. The length of the namesalt string cannot exceed 8 characters.
wincache.ucenabled boolean
Enables or disables the user cache functionality.
wincache.ucachesize integer
Defines the maximum memory size in megabytes that is allocated for the user cache. If the total size of variables stored in the user cache exceeds the specified value, then the most stale variables will be removed from the cache.
wincache.scachesize integer
Defines the maximum memory size in megabytes that is allocated for the session cache. If the total size of data stored in the session cache exceeds the specified value, then the most stale data will be removed from the cache.
wincache.rerouteini string
Внимание

This option has been REMOVED as of 1.3.7. See wincache.reroute_enabled for similar functionality as of 1.3.7.

Specifies an absolute or a relateve path to the reroute.ini file that contains the list of PHP functions whose implementation should be replaced with the WinCache function equivalents. If a relative path is specified then it is assumed to be relative to the location of php-cgi.exe file.
wincache.reroute_enabled boolean
Enables or disables the rerouting of certain file I/O functions through the file cache.
wincache.srwlocks boolean
Внимание

This option has been REMOVED as of 2.0.0.0

Enables or disables the use of shared reader/writer locks. Disabling is useful when troubleshooting deadlock conditions in WinCache.
wincache.filemapdir string
Specifies an absolute path to a directory where WinCache will store the temporary files used for shared memory segments. This directory must be on the local machine and not on a networked file system. If the directory is not specified, WinCache will use the Windows System Page File for all shared memory segments.


WinCache Statistics Script

The installation package for WinCache includes a PHP script, wincache.php, that can be used to obtain cache information and statistics.

If the WinCache extension was installed via the Microsoft Web Platform Installer, then this script is located in %SystemDrive%\Program Files\IIS\Windows Cache for PHP\. On a 64-bit version of the Windows Server operating system, the script is located in %SystemDrive%\Program Files (x86)\IIS\Windows Cache for PHP. If the extension was installed manually, then the wincache.php will be located in the same folder from which the content of the installation package was extracted.

To use wincache.php, copy it into a root folder of a Web site or into any subfolder. To protect the script, open it in any text editor and replace the values for USERNAME and PASSWORD constants. If any other IIS authentication is enabled on the server, then follow the instructions in the comments:

Пример #1 Authentication configuration for 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 ========================== */
?>

Замечание: Always protect the wincache.php script by using either the built-in authentication or the server's authentication mechanism. Leaving this script unprotected may compromise the security of your web application and web server.


WinCache Session Handler

The WinCache session handler (available since WinCache 1.1.0) can be used to configure PHP to store the session data in shared memory session cache. Using shared memory instead of the default file session storage helps improve performance of PHP applications that store large amount of data in session objects. Wincache session cache uses file-backed shared memory, which ensures that the session data is not lost during recycling of IIS application pools.

To configure PHP to use WinCache session handler set the php.ini setting session.save_handler to wincache. By default the Windows temporary file location is used for storing the session data. To change the location of the session file use session.save_path directive.

Пример #1 Enabling WinCache session handler

session.save_handler = wincache
session.save_path = C:\inetpub\temp\session\


WinCache Functions Reroutes

NOTE: wincache.rerouteini was removed as of WinCache 1.3.7.0. It has been replaced with automatic function reroutes. See: wincache.reroute_enabled.

The WinCache functions reroutes (available since WinCache 1.2.0, removed since WinCache 1.3.7.0) can be used to replace built-in PHP functions with their equivalents that are optimized for a particular purpose. WinCache extension includes Windows-optimized implementation of PHP file functions that may improve performance of PHP applications in cases when PHP has to access files on network shares. The optimized implementation is provided for the following functions:

  • file_exists
  • file_get_contents
  • readfile
  • is_readable
  • is_writable
  • is_dir
  • realpath
  • filesize

To configure WinCache to use the functions reroutes use the file reroute.ini that is included in WinCache installation package. Copy this file into the same directory where php.ini file is located. After that add the wincache.rerouteini setting in php.ini and specify an absolute or relative path to the reroute.ini file.

Пример #1 Enabling WinCache functions reroutes

wincache.rerouteini = C:\PHP\reroute.ini

Замечание: If WinCache functions reroutes are enabled it is recommended to increase the WinCache file cache size. This can be done by using wincache.fcachesize setting.

The reroute.ini file contains the mappings between the native PHP functions and their equivalents in WinCache. Each line in the file defines a mapping by using the following syntax:

<PHP function name>:[<number of function parameters>]=<wincache function name>

The example of the file is shown below. In this example the calls to PHP function file_get_contents() will be replaced with calls to wincache_file_get_contents() only if the number of parameters passed to the function is less than or equals to 2. Specifying the number of parameters is useful when replacement function does not handle all the function's parameters.

Пример #2 Reroute.ini file content

[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 Functions Reroutes
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


  • « Типы ресурсов
  • WinCache Функции »
  • PHP Manual
  • WinCache
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


WinCache Функции

Содержание

  • wincache_fcache_fileinfo — Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo — Retrieves information about file cache memory usage
  • wincache_lock — Acquires an exclusive lock on a given key
  • wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo — Retrieves information about opcode cache memory usage
  • wincache_refresh_if_changed — Refreshes the cache entries for the cached files
  • wincache_rplist_fileinfo — Retrieves information about resolve file path cache
  • wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache
  • wincache_scache_info — Retrieves information about files cached in the session cache
  • wincache_scache_meminfo — Retrieves information about session cache memory usage
  • wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_cas — Compares the variable with old value and assigns new value to it
  • wincache_ucache_clear — Deletes entire content of the user cache
  • wincache_ucache_dec — Decrements the value associated with the key
  • wincache_ucache_delete — Deletes variables from the user cache
  • wincache_ucache_exists — Checks if a variable exists in the user cache
  • wincache_ucache_get — Gets a variable stored in the user cache
  • wincache_ucache_inc — Increments the value associated with the key
  • wincache_ucache_info — Retrieves information about data stored in the user cache
  • wincache_ucache_meminfo — Retrieves information about user cache memory usage
  • wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_unlock — Releases an exclusive lock on a given key


Retrieves information about files cached in the file cache

  • « WinCache Функции
  • wincache_fcache_meminfo »
  • PHP Manual
  • WinCache Функции
  • Retrieves information about files cached in the file cache

wincache_fcache_fileinfo

(PECL wincache >= 1.0.0)

wincache_fcache_fileinfo — Retrieves information about files cached in the file cache

Описание

array wincache_fcache_fileinfo ([ bool $summaryonly = false ] )

Retrieves information about file cache content and its usage.

Список параметров

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the file cache summary.

Возвращаемые значения

Array of meta data about file cache или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the file cache has been active
  • total_file_count - total number of files that are currently in the file cache
  • total_hit_count - number of times the files have been served from the file cache
  • total_miss_count - number of times the files have not been found in the file cache

  • file_entries - an array that contains the information about all the cached files:

    • file_name - absolute file name of the cached file
    • add_time - time in seconds since the file has been added to the file cache
    • use_time - time in seconds since the file has been accessed in the file cache
    • last_check - time in seconds since the file has been checked for modifications
    • hit_count - number of times the file has been served from the cache
    • file_size - size of the cached file in bytes

Примеры

Пример #1 A wincache_fcache_fileinfo() example

<pre>
<?php
print_r(wincache_fcache_fileinfo());
?>
</pre>

Результат выполнения данного примера:

Array
(   [total_cache_uptime] => 3234
    [total_file_count] => 5
    [total_hit_count] => 0
    [total_miss_count] => 1
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 1
                    [use_time] => 0
                    [last_check] => 1
                    [hit_count] => 1
                    [file_size] => 2435
                )
            [2] => Array (...iterates for each cached file)
        )
)

Смотрите также

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about file cache memory usage

  • « wincache_fcache_fileinfo
  • wincache_lock »
  • PHP Manual
  • WinCache Функции
  • Retrieves information about file cache memory usage

wincache_fcache_meminfo

(PECL wincache >= 1.0.0)

wincache_fcache_meminfo — Retrieves information about file cache memory usage

Описание

array wincache_fcache_meminfo ( void )

Retrieves information about memory usage by file cache.

Возвращаемые значения

Array of meta data about file cache memory usage или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the file cache
  • memory_free - amount of free memory in bytes available for the file cache
  • num_used_blks - number of memory blocks used by the file cache
  • num_free_blks - number of free memory blocks available for the file cache
  • memory_overhead - amount of memory in bytes used for the file cache internal structures

Примеры

Пример #1 A wincache_fcache_meminfo() example

<pre>
<?php
print_r(wincache_fcache_meminfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [memory_total] => 134217728
    [memory_free] => 131339120
    [num_used_blks] => 361
    [num_free_blks] => 3
    [memory_overhead] => 5856
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Acquires an exclusive lock on a given key

  • « wincache_fcache_meminfo
  • wincache_ocache_fileinfo »
  • PHP Manual
  • WinCache Функции
  • Acquires an exclusive lock on a given key

wincache_lock

(PECL wincache >= 1.1.0)

wincache_lock — Acquires an exclusive lock on a given key

Описание

bool wincache_lock ( string $key [, bool $isglobal = false ] )

Obtains an exclusive lock on a given key. The execution of the current script will be blocked until the lock can be obtained. Once the lock is obtained, the other scripts that try to request the lock by using the same key will be blocked, until the current script releases the lock by using wincache_unlock().

Внимание

Using of the wincache_lock() and wincache_unlock() can cause deadlocks when executing PHP scripts in a multi-process environment like FastCGI. Do not use these functions unless you are absolutely sure you need to use them. For the majority of the operations on the user cache it is not necessary to use these functions.

Список параметров

key

Name of the key in the cache to get the lock on.

isglobal

Controls whether the scope of the lock is system-wide or local. Local locks are scoped to the application pool in IIS FastCGI case or to all php processes that have the same parent process identifier.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Using wincache_lock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock("lock_txt_lock")) { // do an exclusive lock
    ftruncate($fp, 0); // truncate file
    fwrite($fp, "Write something here\n");
    wincache_unlock("lock_txt_lock"); // release the lock
} else {
    echo "Couldn't get the lock!";
}
fclose($fp);
?>

Смотрите также

  • wincache_unlock() - Releases an exclusive lock on a given key
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


Retrieves information about files cached in the opcode cache

  • « wincache_lock
  • wincache_ocache_meminfo »
  • PHP Manual
  • WinCache Функции
  • Retrieves information about files cached in the opcode cache

wincache_ocache_fileinfo

(PECL wincache >= 1.0.0)

wincache_ocache_fileinfo — Retrieves information about files cached in the opcode cache

Описание

array wincache_ocache_fileinfo ([ bool $summaryonly = false ] )

Retrieves information about opcode cache content and its usage.

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Список параметров

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the opcode cache summary.

Возвращаемые значения

Array of meta data about opcode cache или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the opcode cache has been active
  • total_file_count - total number of files that are currently in the opcode cache
  • total_hit_count - number of times the compiled opcode have been served from the cache
  • total_miss_count - number of times the compiled opcode have not been found in the cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache

  • file_entries - an array that contains the information about all the cached files:

    • file_name - absolute file name of the cached file
    • add_time - time in seconds since the file has been added to the opcode cache
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • hit_count - number of times the file has been served from the cache
    • function_count - number of functions in the cached file
    • class_count - number of classes in the cached file

Примеры

Пример #1 A wincache_ocache_fileinfo() example

<pre>
<?php
print_r(wincache_ocache_fileinfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [file_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about opcode cache memory usage

  • « wincache_ocache_fileinfo
  • wincache_refresh_if_changed »
  • PHP Manual
  • WinCache Функции
  • Retrieves information about opcode cache memory usage

wincache_ocache_meminfo

(PECL wincache >= 1.0.0)

wincache_ocache_meminfo — Retrieves information about opcode cache memory usage

Описание

array wincache_ocache_meminfo ( void )

Retrieves information about memory usage by opcode cache.

Возвращаемые значения

Array of meta data about opcode cache memory usage или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the opcode cache
  • memory_free - amount of free memory in bytes available for the opcode cache
  • num_used_blks - number of memory blocks used by the opcode cache
  • num_free_blks - number of free memory blocks available for the opcode cache
  • memory_overhead - amount of memory in bytes used for the opcode cache internal structures

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Примеры

Пример #1 A wincache_ocache_meminfo() example

<pre>
<?php
print_r(wincache_ocache_meminfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [memory_total] => 134217728
    [memory_free] => 112106972
    [num_used_blks] => 15469
    [num_free_blks] => 4
    [memory_overhead] => 247600
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Refreshes the cache entries for the cached files

  • « wincache_ocache_meminfo
  • wincache_rplist_fileinfo »
  • PHP Manual
  • WinCache Функции
  • Refreshes the cache entries for the cached files

wincache_refresh_if_changed

(PECL wincache >= 1.0.0)

wincache_refresh_if_changed — Refreshes the cache entries for the cached files

Описание

bool wincache_refresh_if_changed ([ array $files = NULL ] )

Refreshes the cache entries for the files, whose names were passed in the input argument. If no argument is specified then refreshes all the entries in the cache.

Список параметров

files

An array of file names for files that need to be refreshed. An absolute or relative file paths can be used.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

WinCache performs regular checks on the cached files to ensure that if any file has changed then the corresponding entry in the cache is updated. By default this check is performed every 30 seconds. If, for example, a PHP script updates another PHP script where the application's configuration settings are stored, then it may happen that after the configuration settings have been saved to a file, the application is still using old settings for some time until the cache is refreshed. In those cases it may be preferrable to refresh the cache right after the file has been changed. The following example shows how this can be done.

Пример #1 A wincache_refresh_if_changed() example

<?php
$filename = 'C:\inetpub\wwwroot\config.php';
$handle = fopen($filename, 'w+');
if ($handle === FALSE) die('Failed to open file '.$filename.' for writing');
fwrite($handle, '<?php $setting=something; ?>');
fclose($handle);
wincache_refresh_if_changed(array($filename));
?>

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Retrieves information about resolve file path cache

  • « wincache_refresh_if_changed
  • wincache_rplist_meminfo »
  • PHP Manual
  • WinCache Функции
  • Retrieves information about resolve file path cache

wincache_rplist_fileinfo

(PECL wincache >= 1.0.0)

wincache_rplist_fileinfo — Retrieves information about resolve file path cache

Описание

array wincache_rplist_fileinfo ([ bool $summaryonly = false ] )

Retrieves information about cached mappings between relative file paths and corresponding absolute file paths.

Возвращаемые значения

Array of meta data about the resolve file path cache или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • total_file_count - total number of file path mappings stored in the cache

  • rplist_entries - an array that contains the information about all the cached file paths:

    • resolve_path - path to a file
    • subkey_data - corresponding absolute path to a file

Примеры

Пример #1 A wincache_rplist_fileinfo() example

<pre>
<?php
print_r(wincache_rplist_fileinfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [total_file_count] => 5
    [rplist_entries] => Array
        (
            [1] => Array
                (
                    [resolve_path] => checkcache.php
                    [subkey_data] => c:\inetpub\wwwroot|c:\inetpub\wwwroot\checkcache.php
                )

            [2] => Array (...iterates for each cached file)
        )
)

Смотрите также

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about memory usage by the resolve file path cache

  • « wincache_rplist_fileinfo
  • wincache_scache_info »
  • PHP Manual
  • WinCache Функции
  • Retrieves information about memory usage by the resolve file path cache

wincache_rplist_meminfo

(PECL wincache >= 1.0.0)

wincache_rplist_meminfo — Retrieves information about memory usage by the resolve file path cache

Описание

array wincache_rplist_meminfo ( void )

Retrieves information about memory usage by resolve file path cache.

Возвращаемые значения

Array of meta data that describes memory usage by resolve file path cache. или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the resolve file path cache
  • memory_free - amount of free memory in bytes available for the resolve file path cache
  • num_used_blks - number of memory blocks used by the resolve file path cache
  • num_free_blks - number of free memory blocks available for the resolve file path cache
  • memory_overhead - amount of memory in bytes used for the internal structures of resolve file path cache

Примеры

Пример #1 A wincache_rplist_meminfo() example

<pre>
<?php
print_r(wincache_rplist_meminfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [memory_total] => 9437184
    [memory_free] => 9416744
    [num_used_blks] => 23
    [num_free_blks] => 1
    [memory_overhead] => 416
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about files cached in the session cache

  • « wincache_rplist_meminfo
  • wincache_scache_meminfo »
  • PHP Manual
  • WinCache Функции
  • Retrieves information about files cached in the session cache

wincache_scache_info

(PECL wincache >= 1.1.0)

wincache_scache_info — Retrieves information about files cached in the session cache

Описание

array wincache_scache_info ([ bool $summaryonly = false ] )

Retrieves information about session cache content and its usage.

Список параметров

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the session cache summary.

Возвращаемые значения

Array of meta data about session cache или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the session cache has been active
  • total_item_count - total number of elements that are currently in the session cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache
  • total_hit_count - number of times the data has been served from the cache
  • total_miss_count - number of times the data has not been found in the cache

  • scache_entries - an array that contains the information about all the cached items:

    • key_name - name of the key which is used to store the data
    • value_type - type of value stored by the key
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • ttl_seconds - time remaining for the data to live in the cache, 0 meaning infinite
    • age_seconds - time elapsed from the time data has been added in the cache
    • hitcount - number of times data has been served from the cache

Примеры

Пример #1 A wincache_scache_info() example

<pre>
<?php
print_r(wincache_scache_info());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [total_cache_uptime] => 17357
    [total_file_count] => 121
    [total_hit_count] => 36562
    [total_miss_count] => 201
    [scache_entries] => Array
        (
            [1] => Array
                (
                    [file_name] => c:\inetpub\wwwroot\checkcache.php
                    [add_time] => 17356
                    [use_time] => 7
                    [last_check] => 10
                    [hit_count] => 454
                    [function_count] => 0
                    [class_count] => 1
                )
            [2] => Array (...iterates for each cached file)
        )
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about session cache memory usage

  • « wincache_scache_info
  • wincache_ucache_add »
  • PHP Manual
  • WinCache Функции
  • Retrieves information about session cache memory usage

wincache_scache_meminfo

(PECL wincache >= 1.1.0)

wincache_scache_meminfo — Retrieves information about session cache memory usage

Описание

array wincache_scache_meminfo ( void )

Retrieves information about memory usage by session cache.

Возвращаемые значения

Array of meta data about session cache memory usage или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the session cache
  • memory_free - amount of free memory in bytes available for the session cache
  • num_used_blks - number of memory blocks used by the session cache
  • num_free_blks - number of free memory blocks available for the session cache
  • memory_overhead - amount of memory in bytes used for the session cache internal structures

Примеры

Пример #1 A wincache_scache_meminfo() example

<pre>
<?php
print_r(wincache_scache_meminfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [memory_total] => 5242880
    [memory_free] => 5215056
    [num_used_blks] => 6
    [num_free_blks] => 3
    [memory_overhead] => 176
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


Adds a variable in user cache only if variable does not already exist in the cache

  • « wincache_scache_meminfo
  • wincache_ucache_cas »
  • PHP Manual
  • WinCache Функции
  • Adds a variable in user cache only if variable does not already exist in the cache

wincache_ucache_add

(PECL wincache >= 1.1.0)

wincache_ucache_add — Adds a variable in user cache only if variable does not already exist in the cache

Описание

bool wincache_ucache_add ( string $key , mixed $value [, int $ttl = 0 ] )
bool wincache_ucache_add ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Adds a variable in user cache, only if this variable doesn't already exist in the cache. The added variable remains in the user cache unless its time to live expires or it is deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Список параметров

key

Store the variable using this key name. If a variable with same key is already present the function will fail and return FALSE. key is case sensitive. To override the value even if key is present use wincache_ucache_set() function instad. key can also take array of name => value pairs where names will be used as keys. This can be used to add multiple values in the cache in one operation, thus avoiding race condition.

value

Value of a variable to store. Value supports all data types except resources, such as file handles. This paramter is ignored if first argument is an array. A general guidance is to pass NULL as value while using array as key. If value is an object, or an array containing objects, then the objects will be serialized. See __sleep() for details on serializing objects.

values

Associative array of keys and values.

ttl

Time for the variable to live in the cache in seconds. After the value specified in ttl has passed the stored variable will be deleted from the cache. This parameter takes a default value of 0 which means the variable will stay in the cache unless explicitly deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Возвращаемые значения

If key is string, the function returns TRUE on success and FALSE on failure.

If key is an array, the function returns:

  • If all the name => value pairs in the array can be set, function returns an empty array;
  • If all the name => value pairs in the array cannot be set, function returns FALSE;
  • If some can be set while others cannot, function returns an array with name=>value pair for which the addition failed in the user cache.

Примеры

Пример #1 wincache_ucache_add() with key as a string

<?php
$bar = 'BAR';
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_add('foo', $bar));
var_dump(wincache_ucache_get('foo'));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
string(3) "BAR"

Пример #2 wincache_ucache_add() with key as an array

<?php
$colors_array = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_add($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

Результат выполнения данного примера:

array(0) { }
array(4) {
  ["green"]=> int(-1)
  ["Blue"]=> int(-1)
  ["yellow"]=> int(-1)
  ["cyan"]=> int(-1)
}
string(1) "6"

Смотрите также

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __sleep()


Compares the variable with old value and assigns new value to it

  • « wincache_ucache_add
  • wincache_ucache_clear »
  • PHP Manual
  • WinCache Функции
  • Compares the variable with old value and assigns new value to it

wincache_ucache_cas

(PECL wincache >= 1.1.0)

wincache_ucache_cas — Compares the variable with old value and assigns new value to it

Описание

bool wincache_ucache_cas ( string $key , int $old_value , int $new_value )

Compares the variable associated with the key with old_value and if it matches then assigns the new_value to it.

Список параметров

key

The key that is used to store the variable in the cache. key is case sensitive.

old_value

Old value of the variable pointed by key in the user cache. The value should be of type long, otherwise the function returns FALSE.

new_value

New value which will get assigned to variable pointer by key if a match is found. The value should be of type long, otherwise the function returns FALSE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Using wincache_ucache_cas()

<?php
wincache_ucache_set('counter', 2922);
var_dump(wincache_ucache_cas('counter', 2922, 1));
var_dump(wincache_ucache_get('counter'));
?>

Результат выполнения данного примера:

bool(true)
int(1)

Смотрите также

  • wincache_ucache_inc() - Increments the value associated with the key
  • wincache_ucache_dec() - Decrements the value associated with the key


Deletes entire content of the user cache

  • « wincache_ucache_cas
  • wincache_ucache_dec »
  • PHP Manual
  • WinCache Функции
  • Deletes entire content of the user cache

wincache_ucache_clear

(PECL wincache >= 1.1.0)

wincache_ucache_clear — Deletes entire content of the user cache

Описание

bool wincache_ucache_clear ( void )

Clears/deletes all the values stored in the user cache.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 using wincache_ucache_clear()

<?php
wincache_ucache_set('green', 1);
wincache_ucache_set('red', 2);
wincache_ucache_set('orange', 4);
wincache_ucache_set('blue', 8);
wincache_ucache_set('cyan', 16);
$array1 = array('green', 'red', 'orange', 'blue', 'cyan');
var_dump(wincache_ucache_get($array1));
var_dump(wincache_ucache_clear());
var_dump(wincache_ucache_get($array1));
?>

Результат выполнения данного примера:

array(5) { ["green"]=> int(1)
           ["red"]=> int(2)
           ["orange"]=> int(4)
           ["blue"]=> int(8)
           ["cyan"]=> int(16) }
bool(true)
bool(false)

Смотрите также

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Decrements the value associated with the key

  • « wincache_ucache_clear
  • wincache_ucache_delete »
  • PHP Manual
  • WinCache Функции
  • Decrements the value associated with the key

wincache_ucache_dec

(PECL wincache >= 1.1.0)

wincache_ucache_dec — Decrements the value associated with the key

Описание

mixed wincache_ucache_dec ( string $key [, int $dec_by = 1 [, bool &$success ]] )

Decrements the value associated with the key by 1 or as specified by dec_by.

Список параметров

key

The key that was used to store the variable in the cache. key is case sensitive.

dec_by

The value by which the variable associated with the key will get decremented. If the argument is a floating point number it will be truncated to nearest integer. The variable associated with the key should be of type long, otherwise the function fails and returns FALSE.

success

Will be set to TRUE on success and FALSE on failure.

Возвращаемые значения

Returns the decremented value on success and FALSE on failure.

Примеры

Пример #1 Using wincache_ucache_dec()

<?php
wincache_ucache_set('counter', 1);
var_dump(wincache_ucache_dec('counter', 2923, $success));
var_dump($success);
?>

Результат выполнения данного примера:

int(2922)
bool(true)

Смотрите также

  • wincache_ucache_inc() - Increments the value associated with the key
  • wincache_ucache_cas() - Compares the variable with old value and assigns new value to it


Deletes variables from the user cache

  • « wincache_ucache_dec
  • wincache_ucache_exists »
  • PHP Manual
  • WinCache Функции
  • Deletes variables from the user cache

wincache_ucache_delete

(PECL wincache >= 1.1.0)

wincache_ucache_delete — Deletes variables from the user cache

Описание

bool wincache_ucache_delete ( mixed $key )

Deletes the elements in the user cache pointed by key.

Список параметров

key

The key that was used to store the variable in the cache. key is case sensitive. key can be an array of keys.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

If key is an array then the function returns FALSE if every element of the array fails to get deleted from the user cache, otherwise returns an array which consists of all the keys that are deleted.

Примеры

Пример #1 Using wincache_ucache_delete() with key as a string

<?php
wincache_ucache_set('foo', 'bar');
var_dump(wincache_ucache_delete('foo'));
var_dump(wincache_ucache_exists('foo'));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Пример #2 Usingwincache_ucache_delete() with key as an array

<?php
$array1 = array('green' => '5', 'blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green', 'blue', 'yellow', 'cyan');
var_dump(wincache_ucache_delete($array2));
?>

Результат выполнения данного примера:

array(4) { [0]=> string(5) "green"
           [1]=> string(4) "Blue"
           [2]=> string(6) "yellow"
           [3]=> string(4) "cyan" }

Пример #3 Using wincache_ucache_delete() with key as an array where some elements cannot be deleted

<?php
$array1 = array('green' => '5', 'blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('orange', 'red', 'yellow', 'cyan');
var_dump(wincache_ucache_delete($array2));
?>

Результат выполнения данного примера:

array(2) { [0]=> string(6) "yellow"
           [1]=> string(4) "cyan" }

Смотрите также

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Checks if a variable exists in the user cache

  • « wincache_ucache_delete
  • wincache_ucache_get »
  • PHP Manual
  • WinCache Функции
  • Checks if a variable exists in the user cache

wincache_ucache_exists

(PECL wincache >= 1.1.0)

wincache_ucache_exists — Checks if a variable exists in the user cache

Описание

bool wincache_ucache_exists ( string $key )

Checks if a variable with the key exists in the user cache or not.

Список параметров

key

The key that was used to store the variable in the cache. key is case sensitive.

Возвращаемые значения

Returns TRUE if variable with the key exitsts, otherwise returns FALSE.

Примеры

Пример #1 Using wincache_ucache_exists()

<?php
if (!wincache_ucache_exists('green'))
    wincache_ucache_set('green', 1);
var_dump(wincache_ucache_exists('green'));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache


Gets a variable stored in the user cache

  • « wincache_ucache_exists
  • wincache_ucache_inc »
  • PHP Manual
  • WinCache Функции
  • Gets a variable stored in the user cache

wincache_ucache_get

(PECL wincache >= 1.1.0)

wincache_ucache_get — Gets a variable stored in the user cache

Описание

mixed wincache_ucache_get ( mixed $key [, bool &$success ] )

Gets a variable stored in the user cache.

Список параметров

key

The key that was used to store the variable in the cache. key is case sensitive. key can be an array of keys. In this case the return value will be an array of values of each element in the key array. If an object, or an array containing objects, is returned, then the objects will be unserialized. See __wakeup() for details on unserializing objects.

success

Will be set to TRUE on success and FALSE on failure.

Возвращаемые значения

If key is a string, the function returns the value of the variable stored with that key. The success is set to TRUE on success and to FALSE on failure.

The key is an array, the parameter success is always set to TRUE. The returned array (name => value pairs) will contain only those name => value pairs for which the get operation in user cache was successful. If none of the keys in the key array finds a match in the user cache an empty array will be returned.

Примеры

Пример #1 wincache_ucache_get() with key as a string

<?php
wincache_ucache_add('color', 'blue');
var_dump(wincache_ucache_get('color', $success));
var_dump($success);
?>

Результат выполнения данного примера:

string(4) "blue"
bool(true)

Пример #2 wincache_ucache_get() with key as an array

<?php
$array1 = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
wincache_ucache_set($array1);
$array2 = array('green', 'Blue', 'yellow', 'cyan');
var_dump(wincache_ucache_get($array2, $success));
var_dump($success);
?>

Результат выполнения данного примера:

array(4) { ["green"]=> string(1) "5"
           ["Blue"]=> string(1) "6"
           ["yellow"]=> string(1) "7"
           ["cyan"]=> string(1) "8" }
bool(true)

Смотрите также

  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __wakeup()


Increments the value associated with the key

  • « wincache_ucache_get
  • wincache_ucache_info »
  • PHP Manual
  • WinCache Функции
  • Increments the value associated with the key

wincache_ucache_inc

(PECL wincache >= 1.1.0)

wincache_ucache_inc — Increments the value associated with the key

Описание

mixed wincache_ucache_inc ( string $key [, int $inc_by = 1 [, bool &$success ]] )

Increments the value associated with the key by 1 or as specified by inc_by.

Список параметров

key

The key that was used to store the variable in the cache. key is case sensitive.

inc_by

The value by which the variable associated with the key will get incremented. If the argument is a floating point number it will be truncated to nearest integer. The variable associated with the key should be of type long, otherwise the function fails and returns FALSE.

success

Will be set to TRUE on success and FALSE on failure.

Возвращаемые значения

Returns the incremented value on success and FALSE on failure.

Примеры

Пример #1 Using wincache_ucache_inc()

<?php
wincache_ucache_set('counter', 1);
var_dump(wincache_ucache_inc('counter', 2921, $success));
var_dump($success);
?>

Результат выполнения данного примера:

int(2922)
bool(true)

Смотрите также

  • wincache_ucache_dec() - Decrements the value associated with the key
  • wincache_ucache_cas() - Compares the variable with old value and assigns new value to it


Retrieves information about data stored in the user cache

  • « wincache_ucache_inc
  • wincache_ucache_meminfo »
  • PHP Manual
  • WinCache Функции
  • Retrieves information about data stored in the user cache

wincache_ucache_info

(PECL wincache >= 1.1.0)

wincache_ucache_info — Retrieves information about data stored in the user cache

Описание

array wincache_ucache_info ([ bool $summaryonly = false [, string $key = NULL ]] )

Retrieves information about data stored in the user cache.

Список параметров

summaryonly

Controls whether the returned array will contain information about individual cache entries along with the user cache summary.

key

The key of an entry in the user cache. If specified then the returned array will contain information only about that cache entry. If not specified and summaryonly is set to FALSE then the returned array will contain information about all entries in the cache.

Возвращаемые значения

Array of meta data about user cache или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • total_cache_uptime - total time in seconds that the user cache has been active
  • total_item_count - total number of elements that are currently in the user cache
  • is_local_cache - true is the cache metadata is for a local cache instance, false if the metadata is for the global cache
  • total_hit_count - number of times the data has been served from the cache
  • total_miss_count - number of times the data has not been found in the cache

  • ucache_entries - an array that contains the information about all the cached items:

    • key_name - name of the key which is used to store the data
    • value_type - type of value stored by the key
    • use_time - time in seconds since the file has been accessed in the opcode cache
    • last_check - time in seconds since the file has been checked for modifications
    • is_session - indicates if the data is a session variable
    • ttl_seconds - time remaining for the data to live in the cache, 0 meaning infinite
    • age_seconds - time elapsed from the time data has been added in the cache
    • hitcount - number of times data has been served from the cache

Примеры

Пример #1 Using wincache_ucache_info()

<?php
wincache_ucache_get('green');
wincache_ucache_set('green', 2922);
wincache_ucache_get('green');
wincache_ucache_get('green');
wincache_ucache_get('green');
print_r(wincache_ucache_info());
?>

Результат выполнения данного примера:

Array
( ["total_cache_uptime"] => int(0)
  ["is_local_cache"] => bool(false)
  ["total_item_count"] => int(1)
  ["total_hit_count"] => int(3)
  ["total_miss_count"] => int(1)
  ["ucache_entries"] => Array(1)
    ( [1] => Array(6)
      (
        ["key_name"] => string(5) "green"
        ["value_type"] => string(4) "long"
        ["is_session"] => int(0)
        ["ttl_seconds"] => int(0)
        ["age_seconds"] => int(0)
        ["hitcount"] => int(3)
       )
    )
)

Смотрите также

  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_ocache_meminfo() - Retrieves information about opcode cache memory usage
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Retrieves information about user cache memory usage

  • « wincache_ucache_info
  • wincache_ucache_set »
  • PHP Manual
  • WinCache Функции
  • Retrieves information about user cache memory usage

wincache_ucache_meminfo

(PECL wincache >= 1.1.0)

wincache_ucache_meminfo — Retrieves information about user cache memory usage

Описание

array wincache_ucache_meminfo ( void )

Retrieves information about memory usage by user cache.

Возвращаемые значения

Array of meta data about user cache memory usage или FALSE в случае возникновения ошибки

The array returned by this function contains the following elements:

  • memory_total - amount of memory in bytes allocated for the user cache
  • memory_free - amount of free memory in bytes available for the user cache
  • num_used_blks - number of memory blocks used by the user cache
  • num_free_blks - number of free memory blocks available for the user cache
  • memory_overhead - amount of memory in bytes used for the user cache internal structures

Примеры

Пример #1 A wincache_ucache_meminfo() example

<pre>
<?php
print_r(wincache_ucache_meminfo());
?>
</pre>

Результат выполнения данного примера:

Array
(
    [memory_total] => 5242880
    [memory_free] => 5215056
    [num_used_blks] => 6
    [num_free_blks] => 3
    [memory_overhead] => 176
)

Смотрите также

  • wincache_fcache_fileinfo() - Retrieves information about files cached in the file cache
  • wincache_fcache_meminfo() - Retrieves information about file cache memory usage
  • wincache_ocache_fileinfo() - Retrieves information about files cached in the opcode cache
  • wincache_rplist_fileinfo() - Retrieves information about resolve file path cache
  • wincache_rplist_meminfo() - Retrieves information about memory usage by the resolve file path cache
  • wincache_refresh_if_changed() - Refreshes the cache entries for the cached files
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache
  • wincache_scache_meminfo() - Retrieves information about session cache memory usage


Adds a variable in user cache and overwrites a variable if it already exists in the cache

  • « wincache_ucache_meminfo
  • wincache_unlock »
  • PHP Manual
  • WinCache Функции
  • Adds a variable in user cache and overwrites a variable if it already exists in the cache

wincache_ucache_set

(PECL wincache >= 1.1.0)

wincache_ucache_set — Adds a variable in user cache and overwrites a variable if it already exists in the cache

Описание

bool wincache_ucache_set ( mixed $key , mixed $value [, int $ttl = 0 ] )
bool wincache_ucache_set ( array $values [, mixed $unused = NULL [, int $ttl = 0 ]] )

Adds a variable in user cache. Overwrites a variable if it already exists in the cache. The added or updated variable remains in the user cache unless its time to live expires or it is deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Список параметров

key

Store the variable using this key name. If a variable with same key is already present the function will overwrite the previous value with the new one. key is case sensitive. key can also take array of name => value pairs where names will be used as keys. This can be used to add multiple values in the cache in one operation, thus avoiding race condition.

value

Value of a variable to store. Value supports all data types except resources, such as file handles. This paramter is ignored if first argument is an array. A general guidance is to pass NULL as value while using array as key. If value is an object, or an array containing objects, then the objects will be serialized. See __sleep() for details on serializing objects.

values

Associative array of keys and values.

ttl

Time for the variable to live in the cache in seconds. After the value specified in ttl has passed the stored variable will be deleted from the cache. This parameter takes a default value of 0 which means the variable will stay in the cache unless explicitly deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.

Возвращаемые значения

If key is string, the function returns TRUE on success and FALSE on failure.

If key is an array, the function returns:

  • If all the name => value pairs in the array can be set, function returns an empty array;
  • If all the name => value pairs in the array cannot be set, function returns FALSE;
  • If some can be set while others cannot, function returns an array with name=>value pair for which the addition failed in the user cache.

Примеры

Пример #1 wincache_ucache_set() with key as a string

<?php
$bar = 'BAR';
var_dump(wincache_ucache_set('foo', $bar));
var_dump(wincache_ucache_get('foo'));
$bar1 = 'BAR1';
var_dump(wincache_ucache_set('foo', $bar1));
var_dump(wincache_ucache_get('foo'));
?>

Результат выполнения данного примера:

bool(true)
string(3) "BAR"
bool(true)
string(3) "BAR1"

Пример #2 wincache_ucache_set() with key as an array

<?php
$colors_array = array('green' => '5', 'Blue' => '6', 'yellow' => '7', 'cyan' => '8');
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_set($colors_array));
var_dump(wincache_ucache_get('Blue'));
?>

Результат выполнения данного примера:

array(0) {}
array(0) {}
string(1) "6"

Смотрите также

  • wincache_ucache_add() - Adds a variable in user cache only if variable does not already exist in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • __sleep()


Releases an exclusive lock on a given key

  • « wincache_ucache_set
  • Building for Windows »
  • PHP Manual
  • WinCache Функции
  • Releases an exclusive lock on a given key

wincache_unlock

(PECL wincache >= 1.1.0)

wincache_unlock — Releases an exclusive lock on a given key

Описание

bool wincache_unlock ( string $key )

Releases an exclusive lock that was obtained on a given key by using wincache_lock(). If any other process was blocked waiting for the lock on this key, that process will be able to obtain the lock.

Внимание

Using of the wincache_lock() and wincache_unlock() can cause deadlocks when executing PHP scripts in a multi-process environment like FastCGI. Do not use these functions unless you are absolutely sure you need to use them. For the majority of the operations on the user cache it is not necessary to use these functions.

Список параметров

key

Name of the key in the cache to release the lock on.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Using wincache_unlock()

<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock("lock_txt_lock")) { // do an exclusive lock
    ftruncate($fp, 0); // truncate file
    fwrite($fp, "Write something here\n");
    wincache_unlock("lock_txt_lock"); // release the lock
} else {
    echo "Couldn't get the lock!";
}
fclose($fp);
?>

Смотрите также

  • wincache_lock() - Acquires an exclusive lock on a given key
  • wincache_ucache_set() - Adds a variable in user cache and overwrites a variable if it already exists in the cache
  • wincache_ucache_get() - Gets a variable stored in the user cache
  • wincache_ucache_delete() - Deletes variables from the user cache
  • wincache_ucache_clear() - Deletes entire content of the user cache
  • wincache_ucache_exists() - Checks if a variable exists in the user cache
  • wincache_ucache_meminfo() - Retrieves information about user cache memory usage
  • wincache_ucache_info() - Retrieves information about data stored in the user cache
  • wincache_scache_info() - Retrieves information about files cached in the session cache


Building for Windows

Содержание

  • Prerequisites
  • Compiling and building
  • Verifying the build


Prerequisites

Building WinCache extension will require:

  1. PHP source code
  2. PHP build environment
  3. WinCache source code

For completing first two steps, follow the step-by-step guide for how to » build PHP on Windows.

For getting the WinCache source code follow the instructions described in Downloading PECL extensions.


Compiling and building

The following steps describe how to compile and build WinCache on Windows OS:

  1. Open a command prompt which is used to build PHP

  2. Go to the root folder where PHP sources are present

  3. Run the command:

    cscript.exe win32\build\buildconf.js

  4. Run the command:

    configure.bat --help
    The output will contain a new flag --enable-wincache.

  5. Run the command:

    configure.js [all options used to build PHP] --enable-wincache
    --enable-wincache is the only extra option which is required to ensure that WinCache extension gets built properly. This option will build WinCache and will statically link it with PHP dll. To build WinCache extension as a stand-alone DLL use the option --enable-wincache=shared.

  6. Run the command:

    nmake


Verifying the build

The following steps describe how to verify that WinCache has been built correctly:

  1. Go to the folder where the PHP binaries are built

  2. Run the command:

    php.exe -n -d extension=php_wincache.dll -re wincache
    If WinCache has been built properly, the output of this command will list the INI directives and functions supported by WinCache.


Hierarchical Profiler

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Xhprof Функции
    • xhprof_disable — Stops xhprof profiler
    • xhprof_enable — Start xhprof profiler
    • xhprof_sample_disable — Stops xhprof sample profiler
    • xhprof_sample_enable — Start XHProf profiling in sampling mode


Введение

XHProf is a light-weight hierarchical and instrumentation based profiler. During the data collection phase, it keeps track of call counts and inclusive metrics for arcs in the dynamic callgraph of a program. It computes exclusive metrics in the reporting/post processing phase, such as wall (elapsed) time, CPU time and memory usage. A functions profile can be broken down by callers or callees. XHProf handles recursive functions by detecting cycles in the callgraph at data collection time itself and avoiding the cycles by giving unique depth qualified names for the recursive invocations.

XHProf includes a simple HTML based user interface (written in PHP). The browser based UI for viewing profiler results makes it easy to view results or to share results with peers. A callgraph image view is also supported.

XHProf reports can often be helpful in understanding the structure of the code being executed. The hierarchical nature of the reports can be used to determine, for example, what chain of calls led to a particular function getting called.

XHProf supports ability to compare two runs (a.k.a. "diff" reports) or aggregate data from multiple runs. Diff and aggregate reports, much like single run reports, offer "flat" as well as "hierarchical" views of the profile.

Additional documentation can be found via the » facebook xhprof website.


Требования

Although not required, xhprof includes an interface that's written in PHP. It's used to save and display the profiled data in a usable way, where viewing is done via a web browser. So, a PHP enabled web server will likely make the xhprof experience more useful.

There's also a fork of the GUI interface at » http://github.com/preinheimer/xhprof


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/xhprof


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Xhprof Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
xhprof.output_dir | "" | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

xhprof.output_dir string

Directory used by the default implementation of the iXHProfRuns interface (namely, the XHProfRuns_Default class) for storing XHProf runs.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

XHPROF_FLAGS_NO_BUILTINS (integer)
Used to skip all built-in (internal) functions.
XHPROF_FLAGS_CPU (integer)
Used to add CPU profiling information to the output.
XHPROF_FLAGS_MEMORY (integer)
Used to add memory profiling information to the output.


Примеры

Пример #1 Xhprof example with the optional GUI

This example starts and stops the profiler, then uses the bundled GUI interface to save and parse the results. In other words, the code from the extension itself ends at the call to 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 — Stops xhprof profiler
  • xhprof_enable — Start xhprof profiler
  • xhprof_sample_disable — Stops xhprof sample profiler
  • xhprof_sample_enable — Start XHProf profiling in sampling mode


Stops xhprof profiler

  • « Xhprof Функции
  • xhprof_enable »
  • PHP Manual
  • Xhprof Функции
  • Stops xhprof profiler

xhprof_disable

(PECL xhprof >= 0.9.0)

xhprof_disable — Stops xhprof profiler

Описание

array xhprof_disable ( void )

Stops the profiler, and returns xhprof data from the run.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of xhprof data, from the run.

Примеры

Пример #1 xhprof_disable() example

<?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
        )

)


Start xhprof profiler

  • « xhprof_disable
  • xhprof_sample_disable »
  • PHP Manual
  • Xhprof Функции
  • Start xhprof profiler

xhprof_enable

(PECL xhprof >= 0.9.0)

xhprof_enable — Start xhprof profiler

Описание

void xhprof_enable ([ int $flags = 0 [, array $options ]] )

Start xhprof profiling.

Список параметров

flags

Optional flags to add additional information to the profiling. See the XHprof constants for further information about these flags, e.g., XHPROF_FLAGS_MEMORY to enable memory profiling.

options

An array of optional options, namely, the 'ignored_functions' option to pass in functions to be ignored during profiling.

Возвращаемые значения

NULL

Список изменений

Версия | Описание
0.9.2 | The optional options parameter was added.

Примеры

Пример #1 xhprof_enable() examples

<?php
// 1. elapsed time + memory + CPU profiling; and ignore built-in (internal) functions
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);

// 2. elapsed time profiling; ignore call_user_func* during profiling
xhprof_enable(
    0,
    array('ignored_functions' =>  array('call_user_func',
                                        'call_user_func_array')));

// 3. elapsed time + memory profiling; ignore call_user_func* during profiling
xhprof_enable(
    XHPROF_FLAGS_MEMORY,
    array('ignored_functions' =>  array('call_user_func',
                                        'call_user_func_array')));
?>

Смотрите также

  • xhprof_disable() - Stops xhprof profiler
  • xhprof_sample_enable() - Start XHProf profiling in sampling mode
  • memory_get_usage() - Возвращает количество памяти выделенной PHP
  • getrusage() - Получает информацию об использовании текущего ресурса


Stops xhprof sample profiler

  • « xhprof_enable
  • xhprof_sample_enable »
  • PHP Manual
  • Xhprof Функции
  • Stops xhprof sample profiler

xhprof_sample_disable

(PECL xhprof >= 0.9.0)

xhprof_sample_disable — Stops xhprof sample profiler

Описание

array xhprof_sample_disable ( void )

Stops the sample mode xhprof profiler, and

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of xhprof sample data, from the run.

Примеры

Пример #1 xhprof_sample_disable() example

<?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()
)


Start XHProf profiling in sampling mode

  • « xhprof_sample_disable
  • Обработка аудио форматов »
  • PHP Manual
  • Xhprof Функции
  • Start XHProf profiling in sampling mode

xhprof_sample_enable

(PECL xhprof >= 0.9.0)

xhprof_sample_enable — Start XHProf profiling in sampling mode

Описание

void xhprof_sample_enable ( void )

Starts profiling in sample mode, which is a lighter weight version of xhprof_enable(). The sampling interval is 0.1 seconds, and samples record the full function call stack. The main use case is when lower overhead is required when doing performance monitoring and diagnostics.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

NULL

Смотрите также

  • xhprof_sample_disable() - Stops xhprof sample profiler
  • xhprof_enable() - Start xhprof profiler
  • memory_get_usage() - Возвращает количество памяти выделенной PHP
  • getrusage() - Получает информацию об использовании текущего ресурса


Обработка аудио форматов

  • ID3 — ID3 теги
    • Введение
    • Установка и настройка
    • Предопределённые константы
    • ID3
  • KTaglib
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • KTaglib_MPEG_File — The KTaglib_MPEG_File class
    • KTaglib_MPEG_AudioProperties — The KTaglib_MPEG_AudioProperties class
    • KTaglib_Tag — The KTaglib_Tag class
    • KTaglib_ID3v2_Tag — The KTaglib_ID3v2_Tag class
    • KTaglib_ID3v2_Frame — The KTaglib_ID3v2_Frame class
    • KTaglib_ID3v2_AttachedPictureFrame — The KTaglib_ID3v2_AttachedPictureFrame class
  • oggvorbis — OGG/Vorbis
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Context options
    • Примеры
  • OpenAL — OpenAL Audio Bindings
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • OpenAL Функции


ID3 теги

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределённые константы
  • ID3
    • id3_get_frame_long_name — Возвращает длинное имя ID3v2 кадра
    • id3_get_frame_short_name — Возвращает короткое имя ID3v2 кадра
    • id3_get_genre_id — Возвращает идентификатор жанра
    • id3_get_genre_list — Возвращает все возможные значения жанра
    • id3_get_genre_name — Возвращает имя по идентификатору жанра
    • id3_get_tag — Возвращает всю информацию, сохранённую в ID3-теге
    • id3_get_version — Возвращает версию ID3-тега
    • id3_remove_tag — Удаляет существующий ID3-тег
    • id3_set_tag — Обновляет информацию в ID3 теге


Введение

Эти функции предназначены для чтения и редактирования ID3 тегов. ID3 теги используются в MP3 файлах для хранения названия песни, а также информации об исполнителе, альбоме, жанре, годе выпуска и номере дорожки.

Начиная с версии 0.2 стало возможным извлекать текстовые кадры из ID3 тегов версии 2.2 и старше.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/id3.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Предопределённые константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Предопределённые константы

Большинство функции для работы с ID3 тегами позволяют устанавливать или возвращают версию ID3. Для определения версии, пожалуйста, используйте эти константы.

ID3_V1_0 (integer)
ID3_V1_0 используется, если вы работаете с ID3 тегами версии 1.0. Эти теги могут содержать поля названия, исполнителя, альбома, жанра, года и комментария.
ID3_V1_1 (integer)
ID3_V1_1 используется, если вы работаете с ID3 тегами версии 1.1. Эти теги могут содержать информацию из тегов версии 1.0, а так же номер трека.
ID3_V2_1 (integer)
ID3_V2_1 используется, если вы работаете с тегами версии 2.1.
ID3_V2_2 (integer)
ID3_V2_2 используется, если вы работаете с тегами версии 2.2.
ID3_V2_3 (integer)
ID3_V2_3 используется, если вы работаете с тегами версии 2.3.
ID3_V2_4 (integer)
ID3_V2_4 используется, если вы работаете с тегами версии 2.4.
ID3_BEST (integer)
ID3_BEST используется, если вы хотите позволить функциям ID3 определять версию тега.


ID3

Содержание

  • id3_get_frame_long_name — Возвращает длинное имя ID3v2 кадра
  • id3_get_frame_short_name — Возвращает короткое имя ID3v2 кадра
  • id3_get_genre_id — Возвращает идентификатор жанра
  • id3_get_genre_list — Возвращает все возможные значения жанра
  • id3_get_genre_name — Возвращает имя по идентификатору жанра
  • id3_get_tag — Возвращает всю информацию, сохранённую в ID3-теге
  • id3_get_version — Возвращает версию ID3-тега
  • id3_remove_tag — Удаляет существующий ID3-тег
  • id3_set_tag — Обновляет информацию в ID3 теге


Возвращает длинное имя ID3v2 кадра

  • « ID3
  • id3_get_frame_short_name »
  • PHP Manual
  • ID3
  • Возвращает длинное имя ID3v2 кадра

id3_get_frame_long_name

(PECL id3 >= 0.2)

id3_get_frame_long_name — Возвращает длинное имя ID3v2 кадра

Описание

string id3_get_frame_long_name ( string $frameId )

id3_get_frame_long_name() возвращает длинное имя ID3v2 кадра.

Список параметров

frameId

кадр ID3v2

Возвращаемые значения

Возвращает длинное имя или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования id3_get_frame_long_name()

<?php
$longName = id3_get_frame_long_name("TOLY");
echo $longName;
?>

Результат выполнения данного примера:

Original lyricist(s)/text writer(s)

Смотрите также

  • id3_get_frame_short_name() - Возвращает короткое имя ID3v2 кадра


Возвращает короткое имя ID3v2 кадра

  • « id3_get_frame_long_name
  • id3_get_genre_id »
  • PHP Manual
  • ID3
  • Возвращает короткое имя ID3v2 кадра

id3_get_frame_short_name

(PECL id3 >= 0.2)

id3_get_frame_short_name — Возвращает короткое имя ID3v2 кадра

Описание

string id3_get_frame_short_name ( string $frameId )

id3_get_frame_short_name()возвращает короткое имя ID3v2 кадра.

Список параметров

frameId

ID3v2 кадр

Возвращаемые значения

Возвращает короткое имя кадра или FALSE в случае ошибки.

Значения, возвращаемые id3_get_frame_short_name() используются в массиве, возвращаемом функцией id3_get_tag().

Примеры

Пример #1 Пример использования id3_get_frame_short_name()

<?php
$shortName = id3_get_frame_short_name("TOLY");
echo $shortName;
?>

Результат выполнения данного примера:

originalLyricist

Смотрите также

  • id3_get_frame_long_name() - Возвращает длинное имя ID3v2 кадра


Возвращает идентификатор жанра

  • « id3_get_frame_short_name
  • id3_get_genre_list »
  • PHP Manual
  • ID3
  • Возвращает идентификатор жанра

id3_get_genre_id

(PECL id3 >= 0.1)

id3_get_genre_id — Возвращает идентификатор жанра

Описание

int id3_get_genre_id ( string $genre )

id3_get_genre_id() возвращает идентификатор жанра.

Список параметров

genre

Название жанра в виде строки (string)

Возвращаемые значения

Идентификатор жанра или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования id3_get_genre_id()

<?php
$id = id3_get_genre_id("Alternative");
echo $id;
?>

Результат выполнения данного примера:

20

Смотрите также

  • id3_get_genre_name() - Возвращает имя по идентификатору жанра
  • id3_get_genre_list() - Возвращает все возможные значения жанра


Возвращает все возможные значения жанра

  • « id3_get_genre_id
  • id3_get_genre_name »
  • PHP Manual
  • ID3
  • Возвращает все возможные значения жанра

id3_get_genre_list

(PECL id3 >= 0.1)

id3_get_genre_list — Возвращает все возможные значения жанра

Описание

array id3_get_genre_list ( void )

id3_get_genre_list() возвращает массив, содержащий все возможные значения жанра, которые может содержать ID3-тег. Этот список был создан Эриком Кэмпом и позднее расширен WinAmp'ом.

Эта функция полезна, чтобы предоставить пользователям список жанров, из которого они могут выбрать один. Обновляя ID3-тег, вы должны определить жанр как число в интервале от 0 до 147.

Возвращаемые значения

Возвращает массив, содержащий все возможные значения жанра, которые может содержать ID3-тег.

Примеры

Пример #1 Пример использования id3_get_genre_list()

<?php
$genres = id3_get_genre_list();
print_r($genres);
?>

Результат выполнения данного примера:

Array
(
    [0] => Blues
    [1] => Classic Rock
    [2] => Country
    [3] => Dance
    [4] => Disco
    [5] => Funk
    [6] => Grunge
    [7] => Hip-Hop
    [8] => Jazz
    [9] => Metal
    [10] => New Age
    [11] => Oldies
    [12] => Other
    [13] => Pop
    [14] => R&B
    [15] => Rap
    [16] => Reggae
    [17] => Rock
    [18] => Techno
    [19] => Industrial
    [20] => Alternative
    [21] => Ska
    [22] => Death Metal
    [23] => Pranks
    [24] => Soundtrack
    [25] => Euro-Techno
    [26] => Ambient
    [27] => Trip-Hop
    [28] => Vocal
    [29] => Jazz+Funk
    [30] => Fusion
    [31] => Trance
    [32] => Classical
    [33] => Instrumental
    [34] => Acid
    [35] => House
    [36] => Game
    [37] => Sound Clip
    [38] => Gospel
    [39] => Noise
    [40] => Alternative Rock
    [41] => Bass
    [42] => Soul
    [43] => Punk
    [44] => Space
    [45] => Meditative
    [46] => Instrumental Pop
    [47] => Instrumental Rock
    [48] => Ethnic
    [49] => Gothic
    [50] => Darkwave
    [51] => Techno-Industrial
    [52] => Electronic
    [53] => Pop-Folk
    [54] => Eurodance
    [55] => Dream
    [56] => Southern Rock
    [57] => Comedy
    [58] => Cult
    [59] => Gangsta
    [60] => Top 40
    [61] => Christian Rap
    [62] => Pop/Funk
    [63] => Jungle
    [64] => Native US
    [65] => Cabaret
    [66] => New Wave
    [67] => Psychadelic
    [68] => Rave
    [69] => Showtunes
    [70] => Trailer
    [71] => Lo-Fi
    [72] => Tribal
    [73] => Acid Punk
    [74] => Acid Jazz
    [75] => Polka
    [76] => Retro
    [77] => Musical
    [78] => Rock & Roll
    [79] => Hard Rock
    [80] => Folk
    [81] => Folk-Rock
    [82] => National Folk
    [83] => Swing
    [84] => Fast Fusion
    [85] => Bebob
    [86] => Latin
    [87] => Revival
    [88] => Celtic
    [89] => Bluegrass
    [90] => Avantgarde
    [91] => Gothic Rock
    [92] => Progressive Rock
    [93] => Psychedelic Rock
    [94] => Symphonic Rock
    [95] => Slow Rock
    [96] => Big Band
    [97] => Chorus
    [98] => Easy Listening
    [99] => Acoustic
    [100] => Humour
    [101] => Speech
    [102] => Chanson
    [103] => Opera
    [104] => Chamber Music
    [105] => Sonata
    [106] => Symphony
    [107] => Booty Bass
    [108] => Primus
    [109] => Porn Groove
    [110] => Satire
    [111] => Slow Jam
    [112] => Club
    [113] => Tango
    [114] => Samba
    [115] => Folklore
    [116] => Ballad
    [117] => Power Ballad
    [118] => Rhytmic Soul
    [119] => Freestyle
    [120] => Duet
    [121] => Punk Rock
    [122] => Drum Solo
    [123] => Acapella
    [124] => Euro-House
    [125] => Dance Hall
    [126] => Goa
    [127] => Drum & Bass
    [128] => Club-House
    [129] => Hardcore
    [130] => Terror
    [131] => Indie
    [132] => BritPop
    [133] => Negerpunk
    [134] => Polsk Punk
    [135] => Beat
    [136] => Christian Gangsta
    [137] => Heavy Metal
    [138] => Black Metal
    [139] => Crossover
    [140] => Contemporary C
    [141] => Christian Rock
    [142] => Merengue
    [143] => Salsa
    [144] => Thrash Metal
    [145] => Anime
    [146] => JPop
    [147] => SynthPop
)

Смотрите также

  • id3_get_genre_name() - Возвращает имя по идентификатору жанра
  • id3_get_genre_id() - Возвращает идентификатор жанра


Возвращает имя по идентификатору жанра

  • « id3_get_genre_list
  • id3_get_tag »
  • PHP Manual
  • ID3
  • Возвращает имя по идентификатору жанра

id3_get_genre_name

(PECL id3 >= 0.1)

id3_get_genre_name — Возвращает имя по идентификатору жанра

Описание

string id3_get_genre_name ( int $genre_id )

id3_get_genre_name() возвращает имя по идентификатору жанра.

Список параметров

genre_id

Число в интервале от 0 до 147

Возвращаемые значения

Возвращает строку с именем.

Примеры

Пример #1 Пример использования id3_get_genre_name()

<?php
$genre = id3_get_genre_name(20);
echo $genre;
?>

Результат выполнения данного примера:

Alternative

Смотрите также

  • id3_get_genre_list() - Возвращает все возможные значения жанра
  • id3_get_genre_id() - Возвращает идентификатор жанра


Возвращает всю информацию, сохранённую в ID3-теге

  • « id3_get_genre_name
  • id3_get_version »
  • PHP Manual
  • ID3
  • Возвращает всю информацию, сохранённую в ID3-теге

id3_get_tag

(PECL id3 >= 0.1)

id3_get_tag — Возвращает всю информацию, сохранённую в ID3-теге

Описание

array id3_get_tag ( string $filename [, int $version = ID3_BEST ] )

id3_get_tag() используется для получения всей информации, хранящейся в ID3-теге данного файла.

Список параметров

filename

Путь к MP3-файлу

Вместо имени файла можно передать потоковый ресурс

version

Позволяет определять версию ID3-тега, так как MP3-файл может содержать теги версии 1.х и 1.2.

Начиная с версии 0.2 id3_get_tag() также поддерживает ID3-теги версии 2.2, 2.3 и 2.4. Для извлечения информации из этих тегов, передайте одну из констант ID3_V2_2, ID3_V2_3 или ID3_V2_4 вторым параметром. Теги ID3 версии 2.х может содержать больше информации об MP3-файле, чем теги версии 1.х.

Возвращаемые значения

Возвращает ассоциативный массив с различными ключами: title, artist, ..

Ключ genre содержит число в интервале от 0 до 147. Вы можете использовать функцию id3_get_genre_name() для получения текстового названия жанра.

Примеры

Пример #1 Пример использования id3_get_tag()

<?php
$tag = id3_get_tag( "path/to/example.mp3" );
print_r($tag);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [title] => DN-38416
    [artist] => Re:\Legion
    [album] => Reflections
    [year] => 2004
    [genre] => 19
)

Пример #2 Пример использования id3_get_tag()

<?php
$tag = id3_get_tag( "path/to/example2.mp3", ID3_V2_3 );
print_r($tag);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [copyright] => Dirty Mac
    [originalArtist] => Dirty Mac
    [composer] => Marcus Gotze
    [artist] => Dirty Mac
    [title] => Little Big Man
    [album] => Demo-Tape
    [track] => 5/12
    [genre] => (17)Rock
    [year] => 2001
)

Смотрите также

  • id3_set_tag() - Обновляет информацию в ID3 теге
  • id3_remove_tag() - Удаляет существующий ID3-тег
  • id3_get_version() - Возвращает версию ID3-тега


Возвращает версию ID3-тега

  • « id3_get_tag
  • id3_remove_tag »
  • PHP Manual
  • ID3
  • Возвращает версию ID3-тега

id3_get_version

(PECL id3 >= 0.1)

id3_get_version — Возвращает версию ID3-тега

Описание

int id3_get_version ( string $filename )

id3_get_version() Возвращает версию (версии) ID3-тега(тегов) в MP3-файле.

Если файл содержит ID3-тег версии 1.1, он всегда содержит тег версии 1.0, так как версия 1.1 является расширением версии 1.0.

Список параметров

filename

Путь к MP3 файлу.

Вместо имени файла можно передать потоковый ресурс

Возвращаемые значения

Возвращает номер версии ID3-тега MP3-файла. Так как тег может содержать ID3-теги версии 1.х и 2.х, значение, возвращённое функцией, следует побитово сравнить с предопределёнными константами ID3_V1_0, ID3_V1_1 и ID3_V2.

Примеры

Пример #1 Примеры использования id3_get_version()

<?php
$version = id3_get_version( "path/to/example.mp3" );
if ($version & ID3_V1_0) {
    echo "Содержит 1.x тэг\n";
}
if ($version & ID3_V1_1) {
    echo "Содержит 1.1 тэг\n";
}
if ($version & ID3_V2) {
    echo "Содержит 2.x тэг\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Содержит 1.x тэг
Содержит 1.1 тэг

Смотрите также

  • id3_set_tag() - Обновляет информацию в ID3 теге
  • id3_get_tag() - Возвращает всю информацию, сохранённую в ID3-теге
  • id3_remove_tag() - Удаляет существующий ID3-тег


Удаляет существующий ID3-тег

  • « id3_get_version
  • id3_set_tag »
  • PHP Manual
  • ID3
  • Удаляет существующий ID3-тег

id3_remove_tag

(PECL id3 >= 0.1)

id3_remove_tag — Удаляет существующий ID3-тег

Описание

bool id3_remove_tag ( string $filename [, int $version = ID3_V1_0 ] )

id3_remove_tag() используется для удаления ID3-тега.

Список параметров

filename

Путь к MP3-файлу

Вместо имени файла можно передать потоковый ресурс

version

Позволяет определять версию ID3-тега, так как MP3-файл может содержать теги версии 1.х и 1.2.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 id3_remove_tag() example

<?php
$result = id3_remove_tag( "path/to/example.mp3", ID3_V1_0 );
if ($result === true) {
    echo "Тег успешно удален\n";
}
?>

Если файл доступен для записи и содержит тег версии 1.0, то вывод будет следующим:

Тег успешно удален

Примечания

Замечание: В настоящее время функция id3_remove_tag() поддерживает только теги версии 1.0 и 1.1. Если вы выберете для удаления тег версии 1.0, а файл содержит тег версии 1.1, то тег будет удалён, так как версия 1.1 является расширением версии 1.0.

Смотрите также

  • id3_set_tag() - Обновляет информацию в ID3 теге
  • id3_get_tag() - Возвращает всю информацию, сохранённую в ID3-теге
  • id3_get_version() - Возвращает версию ID3-тега


Обновляет информацию в ID3 теге

  • « id3_remove_tag
  • KTaglib »
  • PHP Manual
  • ID3
  • Обновляет информацию в ID3 теге

id3_set_tag

(PECL id3 >= 0.1)

id3_set_tag — Обновляет информацию в ID3 теге

Описание

bool id3_set_tag ( string $filename , array $tag [, int $version = ID3_V1_0 ] )

id3_set_tag() используется для изменения информации, сохранённой в ID3 теге. Если тег отсутствует, он будет добавлен в файл.

Список параметров

filename

Путь к MP3 файлу

Вместо имени файла можно передать потоковый ресурс

tag

Ассоциативный массив ключей и значений тега.

Следующие ключи могут быть использованы в ассоциативном массиве:

Ключи в ассоциативном массиве
ключ | возможные значения | доступен с версии
title | строка длиной максимум 30 символов | v1.0, v1.1
artist | строка длиной максимум 30 символов | v1.0, v1.1
album | строка длиной максимум 30 символов | v1.0, v1.1
year | 4 цифры | v1.0, v1.1
genre | число в интервале от 0 до 147 | v1.0, v1.1
comment | строка длиной максимум 30 символов (30 в v1.1) | v1.0, v1.1
track | целое число в интервале от 0 до 255 | v1.1

version

Позволяет определять версию ID3 тега, так как MP3 файл может содержать теги версии 1.х и 1.2.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования id3_set_tag()

<?php
$data = array(
              "title" => "Re:Начало",
              "artist" => "Re:\Легион",
              "comment" => "Прекрасный трек"
             );
$result = id3_set_tag( "path/to/example.mp3", $data, ID3_V1_0 );
if ($result === true) {
    echo "Тег успешно обновлен\n";
}
?>

Если файл доступен для записи и содержит тег версии 1.0, то вывод будет следующим:

Тег успешно обновлен

Примечания

Замечание: В настоящее время функция id3_set_tag() поддерживает только версию 1.0 и 1.1.

Смотрите также

  • id3_remove_tag() - Удаляет существующий ID3-тег
  • id3_get_tag() - Возвращает всю информацию, сохранённую в ID3-теге
  • id3_get_version() - Возвращает версию ID3-тега


KTaglib

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • Предопределенные константы
  • KTaglib_MPEG_File — The KTaglib_MPEG_File class
    • KTaglib_MPEG_File::__construct — Opens a new file
    • KTaglib_MPEG_File::getAudioProperties — Returns an object that provides access to the audio properties
    • KTaglib_MPEG_File::getID3v1Tag — Returns an object representing an ID3v1 tag
    • KTaglib_MPEG_File::getID3v2Tag — Returns a ID3v2 object
  • KTaglib_MPEG_AudioProperties — The KTaglib_MPEG_AudioProperties class
    • KTaglib_MPEG_AudioProperties::getBitrate — Returns the bitrate of the MPEG file
    • KTaglib_MPEG_AudioProperties::getChannels — Returns the amount of channels of a MPEG file
    • KTaglib_MPEG_AudioProperties::getLayer — Returns the layer of a MPEG file
    • KTaglib_MPEG_AudioProperties::getLength — Returns the length of a MPEG file
    • KTaglib_MPEG_AudioProperties::getSampleBitrate — Returns the sample bitrate of a MPEG file
    • KTaglib_MPEG_AudioProperties::getVersion — Returns the version of a MPEG file
    • KTaglib_MPEG_AudioProperties::isCopyrighted — Returns the copyright status of an MPEG file
    • KTaglib_MPEG_AudioProperties::isOriginal — Returns if the file is marked as the original file
    • KTaglib_MPEG_AudioProperties::isProtectionEnabled — Returns if protection mechanisms of an MPEG file are enabled
  • KTaglib_Tag — The KTaglib_Tag class
    • KTaglib_Tag::getAlbum — Returns the title string from a ID3 tag
    • KTaglib_Tag::getArtist — Returns the artist string from a ID3 tag
    • KTaglib_Tag::getComment — Returns the comment from a ID3 tag
    • KTaglib_Tag::getGenre — Returns the genre from a ID3 tag
    • KTaglib_Tag::getTitle — Returns the title string from a ID3 tag
    • KTaglib_Tag::getTrack — Returns the track number from a ID3 tag
    • KTaglib_Tag::getYear — Returns the year from a ID3 tag
    • KTaglib_Tag::isEmpty — Returns true if the tag is empty
  • KTaglib_ID3v2_Tag — The KTaglib_ID3v2_Tag class
    • KTaglib_ID3v2_Tag::addFrame — Add a frame to the ID3v2 tag
    • KTaglib_ID3v2_Tag::getFrameList — Returns an array of ID3v2 frames, associated with the ID3v2 tag
  • KTaglib_ID3v2_Frame — The KTaglib_ID3v2_Frame class
    • KTaglib_ID3v2_Frame::getSize — Returns the size of the frame in bytes
    • KTaglib_ID3v2_Frame::__toString — Returns a string representation of the frame
  • KTaglib_ID3v2_AttachedPictureFrame — The KTaglib_ID3v2_AttachedPictureFrame class
    • KTaglib_ID3v2_AttachedPictureFrame::getDescription — Returns a description for the picture in a picture frame
    • KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Returns the mime type of the picture
    • KTaglib_ID3v2_AttachedPictureFrame::getType — Returns the type of the image
    • KTaglib_ID3v2_AttachedPictureFrame::savePicture — Saves the picture to a file
    • KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Set's the mime type of the picture
    • KTaglib_ID3v2_AttachedPictureFrame::setPicture — Sets the frame picture to the given image
    • KTaglib_ID3v2_AttachedPictureFrame::setType — Set the type of the image


Введение

KTaglib is an object oriented binding to the taglib library from the KDE project used in projects like Amarok to read and write ID3 and Ogg tags. The library also provides access to audio information. The bindings are designed usually follow the underlying C++ API, but were changed whenever there is a more PHP-like way.

Замечание:

At the moment ktaglib is able to read and write ID3v1 and ID3v2 tags.


  • « Введение
  • Требования »
  • PHP Manual
  • KTaglib
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


Требования

If you want to build ktaglib you need at least taglib 1.5 installed. To obtain the taglib see the » taglib project page. Windows DLL's are build static against taglib, therefore there is no need to have taglib installed.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/ktaglib.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

KTaglib uses class constants. Most of the constants are mappings to the according Taglib enums and constants.

KTaglib_MPEG_Header::Version1 (integer)
ID3 version is 1.0
KTaglib_MPEG_Header::Version2 (integer)
ID3 version is 2.0
KTaglib_MPEG_Header::Version2_5 (integer)
ID3 version is 2.5
KTaglib_ID3v2_AttachedPictureFrame::Other (integer)
Picture type Other
KTaglib_ID3v2_AttachedPictureFrame::FileIcon (integer)
Picture type FileIcon
KTaglib_ID3v2_AttachedPictureFrame::OtherFileIcon (integer)
Picture type OtherFileIcon
KTaglib_ID3v2_AttachedPictureFrame::FrontCover (integer)
Picture type FrontCover
KTaglib_ID3v2_AttachedPictureFrame::BackCover (integer)
Picture type BackCover
KTaglib_ID3v2_AttachedPictureFrame::LeafletPage (integer)
Picture type LeafletPage
KTaglib_ID3v2_AttachedPictureFrame::Media (integer)
Picture type Media
KTaglib_ID3v2_AttachedPictureFrame::LeadArtist (integer)
Picture type LeadArtist
KTaglib_ID3v2_AttachedPictureFrame::Artist (integer)
Picture type Artist
KTaglib_ID3v2_AttachedPictureFrame::Conductor (integer)
Picture type Condutor
KTaglib_ID3v2_AttachedPictureFrame::Band (integer)
Picture type Band
KTaglib_ID3v2_AttachedPictureFrame::Composer (integer)
Picture type Composer
KTaglib_ID3v2_AttachedPictureFrame::Lyricist (integer)
Picture type Lyricist
KTaglib_ID3v2_AttachedPictureFrame::RecordingLocation (integer)
Picture type RecordingLocation
KTaglib_ID3v2_AttachedPictureFrame::DuringRecording (integer)
Picture type DuringRecording
KTaglib_ID3v2_AttachedPictureFrame::DuringPerformance (integer)
Picture type DuringPerformance
KTaglib_ID3v2_AttachedPictureFrame::MovieScreenCapture (integer)
Picture type MovieScreenCapture
KTaglib_ID3v2_AttachedPictureFrame::ColouredFish (integer)
Picture type ColouredFish
KTaglib_ID3v2_AttachedPictureFrame::Illustration (integer)
Picture type Illustration
KTaglib_ID3v2_AttachedPictureFrame::BandLogo (integer)
Picture type BandLogo


The KTaglib_MPEG_File class

(0.0.1)

Введение

Represents an MPEG file. MPEG files can have ID3v1, ID3v2 tags and audio properties.

Class synopsis

KTaglib_MPEG_File {
/* Методы */
public KTaglib_MPEG_File getAudioProperties ( void )
public KTaglib_ID3v1_Tag getID3v1Tag ([ bool $create = false ] )
public KTaglib_ID3v2_Tag getID3v2Tag ([ bool $create = false ] )
}

Содержание

  • KTaglib_MPEG_File::__construct — Opens a new file
  • KTaglib_MPEG_File::getAudioProperties — Returns an object that provides access to the audio properties
  • KTaglib_MPEG_File::getID3v1Tag — Returns an object representing an ID3v1 tag
  • KTaglib_MPEG_File::getID3v2Tag — Returns a ID3v2 object


Opens a new file

  • « KTaglib_MPEG_File
  • KTaglib_MPEG_File::getAudioProperties »
  • PHP Manual
  • KTaglib_MPEG_File
  • Opens a new file

KTaglib_MPEG_File::__construct

(0.0.1)

KTaglib_MPEG_File::__construct — Opens a new file

Описание

public KTaglib_MPEG_File::__construct ( string $filename )

Opens a new MPEG file.

Список параметров

filename

The file to read

Примеры

Пример #1 Opens a new MP3 file and read the title

<?php
$mpeg = new KTaglib_MPEG_File('example.mp3');
echo $mpeg->getID3v1Tag()->getTitle();
?>


Returns an object that provides access to the audio properties

  • « KTaglib_MPEG_File::__construct
  • KTaglib_MPEG_File::getID3v1Tag »
  • PHP Manual
  • KTaglib_MPEG_File
  • Returns an object that provides access to the audio properties

KTaglib_MPEG_File::getAudioProperties

(0.0.1)

KTaglib_MPEG_File::getAudioProperties — Returns an object that provides access to the audio properties

Описание

public KTaglib_MPEG_File KTaglib_MPEG_File::getAudioProperties ( void )

Returns an object that provides access to the audio properties of the mpeg file.

Возвращаемые значения

Returns an KTaglib_MPEG_AudioProperties object or false.


Returns an object representing an ID3v1 tag

  • « KTaglib_MPEG_File::getAudioProperties
  • KTaglib_MPEG_File::getID3v2Tag »
  • PHP Manual
  • KTaglib_MPEG_File
  • Returns an object representing an ID3v1 tag

KTaglib_MPEG_File::getID3v1Tag

(0.0.1)

KTaglib_MPEG_File::getID3v1Tag — Returns an object representing an ID3v1 tag

Описание

public KTaglib_ID3v1_Tag KTaglib_MPEG_File::getID3v1Tag ([ bool $create = false ] )

Returns an object that represents an ID3v1 tag, which can be used to get information about the ID3v1 tag.

Возвращаемые значения

Returns an KTaglib_MPEG_ID3v1Tag object or false if there is no ID3v1 tag.


Returns a ID3v2 object

  • « KTaglib_MPEG_File::getID3v1Tag
  • KTaglib_MPEG_AudioProperties »
  • PHP Manual
  • KTaglib_MPEG_File
  • Returns a ID3v2 object

KTaglib_MPEG_File::getID3v2Tag

(0.0.1)

KTaglib_MPEG_File::getID3v2Tag — Returns a ID3v2 object

Описание

public KTaglib_ID3v2_Tag KTaglib_MPEG_File::getID3v2Tag ([ bool $create = false ] )

Returns a ID3v2 object for the mpeg file. If no ID3v2 Tag is present, an KTaglib_TagNotFoundException is thrown.

Возвращаемые значения

Returns the KTaglib_ID3v2_Tag object of the MPEG file or false if there is no ID3v2 tag


The KTaglib_MPEG_AudioProperties class

(0.0.1)

Введение

Represents the audio properties of a MPEG file, like length, bitrate or samplerate.

Class synopsis

KTaglib_MPEG_AudioProperties {
/* Методы */
public int KTaglib_MPEG_AudioProperties::getBitrate ( void )
public int KTaglib_MPEG_AudioProperties::getChannels ( void )
public int KTaglib_MPEG_AudioProperties::getLayer ( void )
public int KTaglib_MPEG_AudioProperties::getLength ( void )
public int KTaglib_MPEG_AudioProperties::getSampleBitrate ( void )
public int KTaglib_MPEG_AudioProperties::getVersion ( void )
public bool KTaglib_MPEG_AudioProperties::isCopyrighted ( void )
public bool KTaglib_MPEG_AudioProperties::isOriginal ( void )
public bool KTaglib_MPEG_AudioProperties::isProtectionEnabled ( void )
}

Содержание

  • KTaglib_MPEG_AudioProperties::getBitrate — Returns the bitrate of the MPEG file
  • KTaglib_MPEG_AudioProperties::getChannels — Returns the amount of channels of a MPEG file
  • KTaglib_MPEG_AudioProperties::getLayer — Returns the layer of a MPEG file
  • KTaglib_MPEG_AudioProperties::getLength — Returns the length of a MPEG file
  • KTaglib_MPEG_AudioProperties::getSampleBitrate — Returns the sample bitrate of a MPEG file
  • KTaglib_MPEG_AudioProperties::getVersion — Returns the version of a MPEG file
  • KTaglib_MPEG_AudioProperties::isCopyrighted — Returns the copyright status of an MPEG file
  • KTaglib_MPEG_AudioProperties::isOriginal — Returns if the file is marked as the original file
  • KTaglib_MPEG_AudioProperties::isProtectionEnabled — Returns if protection mechanisms of an MPEG file are enabled


Returns the bitrate of the MPEG file

  • « KTaglib_MPEG_AudioProperties
  • KTaglib_MPEG_AudioProperties::getChannels »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Returns the bitrate of the MPEG file

KTaglib_MPEG_AudioProperties::getBitrate

(0.0.1)

KTaglib_MPEG_AudioProperties::getBitrate — Returns the bitrate of the MPEG file

Описание

public int KTaglib_MPEG_AudioProperties::getBitrate ( void )

Returns the bitrate of the MPEG file

Возвращаемые значения

Returns the bitrate as an integer


Returns the amount of channels of a MPEG file

  • « KTaglib_MPEG_AudioProperties::getBitrate
  • KTaglib_MPEG_AudioProperties::getLayer »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Returns the amount of channels of a MPEG file

KTaglib_MPEG_AudioProperties::getChannels

(0.0.1)

KTaglib_MPEG_AudioProperties::getChannels — Returns the amount of channels of a MPEG file

Описание

public int KTaglib_MPEG_AudioProperties::getChannels ( void )

Returns the amount of channels of the MPEG file

Возвращаемые значения

Returns the channel count as an integer


Returns the layer of a MPEG file

  • « KTaglib_MPEG_AudioProperties::getChannels
  • KTaglib_MPEG_AudioProperties::getLength »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Returns the layer of a MPEG file

KTaglib_MPEG_AudioProperties::getLayer

(0.0.1)

KTaglib_MPEG_AudioProperties::getLayer — Returns the layer of a MPEG file

Описание

public int KTaglib_MPEG_AudioProperties::getLayer ( void )

Returns the layer of the MPEG file (usually 3 for MP3).

Возвращаемые значения

Returns the layer as an integer


Returns the length of a MPEG file

  • « KTaglib_MPEG_AudioProperties::getLayer
  • KTaglib_MPEG_AudioProperties::getSampleBitrate »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Returns the length of a MPEG file

KTaglib_MPEG_AudioProperties::getLength

(0.0.1)

KTaglib_MPEG_AudioProperties::getLength — Returns the length of a MPEG file

Описание

public int KTaglib_MPEG_AudioProperties::getLength ( void )

Returns the length of the MPEG file

Возвращаемые значения

Returns the length as an integer


Returns the sample bitrate of a MPEG file

  • « KTaglib_MPEG_AudioProperties::getLength
  • KTaglib_MPEG_AudioProperties::getVersion »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Returns the sample bitrate of a MPEG file

KTaglib_MPEG_AudioProperties::getSampleBitrate

(0.0.1)

KTaglib_MPEG_AudioProperties::getSampleBitrate — Returns the sample bitrate of a MPEG file

Описание

public int KTaglib_MPEG_AudioProperties::getSampleBitrate ( void )

Returns the sample bitrate of the MPEG file

Возвращаемые значения

Returns the sample bitrate as an integer


Returns the version of a MPEG file

  • « KTaglib_MPEG_AudioProperties::getSampleBitrate
  • KTaglib_MPEG_AudioProperties::isCopyrighted »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Returns the version of a MPEG file

KTaglib_MPEG_AudioProperties::getVersion

(0.0.1)

KTaglib_MPEG_AudioProperties::getVersion — Returns the version of a MPEG file

Описание

public int KTaglib_MPEG_AudioProperties::getVersion ( void )

Returns the version of the MPEG file header. The possible versions are defined in Tag_MPEG_Header (Version1, Version2, Version2.5).

Возвращаемые значения

Returns the version


Returns the copyright status of an MPEG file

  • « KTaglib_MPEG_AudioProperties::getVersion
  • KTaglib_MPEG_AudioProperties::isOriginal »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Returns the copyright status of an MPEG file

KTaglib_MPEG_AudioProperties::isCopyrighted

(0.0.1)

KTaglib_MPEG_AudioProperties::isCopyrighted — Returns the copyright status of an MPEG file

Описание

public bool KTaglib_MPEG_AudioProperties::isCopyrighted ( void )

Returns true if the MPEG file is copyrighted

Возвращаемые значения

Returns true if the MPEG file is copyrighted


Returns if the file is marked as the original file

  • « KTaglib_MPEG_AudioProperties::isCopyrighted
  • KTaglib_MPEG_AudioProperties::isProtectionEnabled »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Returns if the file is marked as the original file

KTaglib_MPEG_AudioProperties::isOriginal

(0.0.1)

KTaglib_MPEG_AudioProperties::isOriginal — Returns if the file is marked as the original file

Описание

public bool KTaglib_MPEG_AudioProperties::isOriginal ( void )

Returns true if the file is marked as the original file

Возвращаемые значения

Returns true if the file is marked as the original file


Returns if protection mechanisms of an MPEG file are enabled

  • « KTaglib_MPEG_AudioProperties::isOriginal
  • KTaglib_Tag »
  • PHP Manual
  • KTaglib_MPEG_AudioProperties
  • Returns if protection mechanisms of an MPEG file are enabled

KTaglib_MPEG_AudioProperties::isProtectionEnabled

(0.0.1)

KTaglib_MPEG_AudioProperties::isProtectionEnabled — Returns if protection mechanisms of an MPEG file are enabled

Описание

public bool KTaglib_MPEG_AudioProperties::isProtectionEnabled ( void )

Returns true if protection mechanisms (like DRM) are enabled for this file

Возвращаемые значения

Returns true if protection mechanisms (like DRM) are enabled for this file


The KTaglib_Tag class

(0.0.1)

Введение

Base class for ID3v1 or ID3v2 tags

Class synopsis

KTaglib_Tag {
/* Методы */
public string getAlbum ( void )
public string getArtist ( void )
public string getComment ( void )
public string getGenre ( void )
public string getTitle ( void )
public int getTrack ( void )
public int getYear ( void )
public bool isEmpty ( void )
}

Содержание

  • KTaglib_Tag::getAlbum — Returns the title string from a ID3 tag
  • KTaglib_Tag::getArtist — Returns the artist string from a ID3 tag
  • KTaglib_Tag::getComment — Returns the comment from a ID3 tag
  • KTaglib_Tag::getGenre — Returns the genre from a ID3 tag
  • KTaglib_Tag::getTitle — Returns the title string from a ID3 tag
  • KTaglib_Tag::getTrack — Returns the track number from a ID3 tag
  • KTaglib_Tag::getYear — Returns the year from a ID3 tag
  • KTaglib_Tag::isEmpty — Returns true if the tag is empty


Returns the title string from a ID3 tag

  • « KTaglib_Tag
  • KTaglib_Tag::getArtist »
  • PHP Manual
  • KTaglib_Tag
  • Returns the title string from a ID3 tag

KTaglib_Tag::getAlbum

(0.0.1)

KTaglib_Tag::getAlbum — Returns the title string from a ID3 tag

Описание

public string KTaglib_Tag::getAlbum ( void )

Returns the album string of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

Возвращаемые значения

Returns the album string


Returns the artist string from a ID3 tag

  • « KTaglib_Tag::getAlbum
  • KTaglib_Tag::getComment »
  • PHP Manual
  • KTaglib_Tag
  • Returns the artist string from a ID3 tag

KTaglib_Tag::getArtist

(0.0.1)

KTaglib_Tag::getArtist — Returns the artist string from a ID3 tag

Описание

public string KTaglib_Tag::getArtist ( void )

Returns the artist string of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

Возвращаемые значения

Returns the artist string


Returns the comment from a ID3 tag

  • « KTaglib_Tag::getArtist
  • KTaglib_Tag::getGenre »
  • PHP Manual
  • KTaglib_Tag
  • Returns the comment from a ID3 tag

KTaglib_Tag::getComment

(0.0.1)

KTaglib_Tag::getComment — Returns the comment from a ID3 tag

Описание

public string KTaglib_Tag::getComment ( void )

Returns the comment of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

Возвращаемые значения

Returns the comment string


Returns the genre from a ID3 tag

  • « KTaglib_Tag::getComment
  • KTaglib_Tag::getTitle »
  • PHP Manual
  • KTaglib_Tag
  • Returns the genre from a ID3 tag

KTaglib_Tag::getGenre

(0.0.1)

KTaglib_Tag::getGenre — Returns the genre from a ID3 tag

Описание

public string KTaglib_Tag::getGenre ( void )

Returns the genre of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

Возвращаемые значения

Returns the genre string


Returns the title string from a ID3 tag

  • « KTaglib_Tag::getGenre
  • KTaglib_Tag::getTrack »
  • PHP Manual
  • KTaglib_Tag
  • Returns the title string from a ID3 tag

KTaglib_Tag::getTitle

(0.0.1)

KTaglib_Tag::getTitle — Returns the title string from a ID3 tag

Описание

public string KTaglib_Tag::getTitle ( void )

Returns the title string of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

Возвращаемые значения

Returns the title string


Returns the track number from a ID3 tag

  • « KTaglib_Tag::getTitle
  • KTaglib_Tag::getYear »
  • PHP Manual
  • KTaglib_Tag
  • Returns the track number from a ID3 tag

KTaglib_Tag::getTrack

(0.0.1)

KTaglib_Tag::getTrack — Returns the track number from a ID3 tag

Описание

public int KTaglib_Tag::getTrack ( void )

Returns the track number of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

Возвращаемые значения

Returns the track number as an integer


Returns the year from a ID3 tag

  • « KTaglib_Tag::getTrack
  • KTaglib_Tag::isEmpty »
  • PHP Manual
  • KTaglib_Tag
  • Returns the year from a ID3 tag

KTaglib_Tag::getYear

(0.0.1)

KTaglib_Tag::getYear — Returns the year from a ID3 tag

Описание

public int KTaglib_Tag::getYear ( void )

Returns the year of an ID3 tag. This method is implemented in ID3v1 and ID3v2 tags.

Возвращаемые значения

Returns the year as an integer


Returns true if the tag is empty

  • « KTaglib_Tag::getYear
  • KTaglib_ID3v2_Tag »
  • PHP Manual
  • KTaglib_Tag
  • Returns true if the tag is empty

KTaglib_Tag::isEmpty

(0.0.1)

KTaglib_Tag::isEmpty — Returns true if the tag is empty

Описание

public bool KTaglib_Tag::isEmpty ( void )

Returns true if the tag exists, but is empty. This method is implemented in ID3v1 and ID3v2 tags.

Возвращаемые значения

Returns true if the tag is empty, otherwise false.


The KTaglib_ID3v2_Tag class

(0.0.1)

Введение

Represents and ID3v2 tag. It provides a list of ID3v2 frames and can be used to add and remove additional frames.

Class synopsis

extends KTaglib_Tag {
/* Методы */
public bool addFrame ( KTaglib_ID3v2_Frame $frame )
public array getFrameList ( void )
/* Наследуемые методы */
public string KTaglib_Tag::getAlbum ( void )
public string KTaglib_Tag::getArtist ( void )
public string KTaglib_Tag::getComment ( void )
public string KTaglib_Tag::getGenre ( void )
public string KTaglib_Tag::getTitle ( void )
public int KTaglib_Tag::getTrack ( void )
public int KTaglib_Tag::getYear ( void )
public bool KTaglib_Tag::isEmpty ( void )
}

Содержание

  • KTaglib_ID3v2_Tag::addFrame — Add a frame to the ID3v2 tag
  • KTaglib_ID3v2_Tag::getFrameList — Returns an array of ID3v2 frames, associated with the ID3v2 tag


Add a frame to the ID3v2 tag

  • « KTaglib_ID3v2_Tag
  • KTaglib_ID3v2_Tag::getFrameList »
  • PHP Manual
  • KTaglib_ID3v2_Tag
  • Add a frame to the ID3v2 tag

KTaglib_ID3v2_Tag::addFrame

(0.0.1)

KTaglib_ID3v2_Tag::addFrame — Add a frame to the ID3v2 tag

Описание

public bool KTaglib_ID3v2_Tag::addFrame ( KTaglib_ID3v2_Frame $frame )

Adds a frame to the ID3v2 tag. The frame must be a valid KTaglib_ID3v2_Frame object. To save the tag, the save function needs to be invoked.

Возвращаемые значения

Returns true on success, otherwise false.


Returns an array of ID3v2 frames, associated with the ID3v2 tag

  • « KTaglib_ID3v2_Tag::addFrame
  • KTaglib_ID3v2_Frame »
  • PHP Manual
  • KTaglib_ID3v2_Tag
  • Returns an array of ID3v2 frames, associated with the ID3v2 tag

KTaglib_ID3v2_Tag::getFrameList

(0.0.1)

KTaglib_ID3v2_Tag::getFrameList — Returns an array of ID3v2 frames, associated with the ID3v2 tag

Описание

public array KTaglib_ID3v2_Tag::getFrameList ( void )

Returns an array of ID3v2 frames, associated with the ID3v2 tag.

Возвращаемые значения

Return an array of KTaglib_ID3v2_Frame objects


The KTaglib_ID3v2_Frame class

(0.0.1)

Введение

The base class for ID3v2 frames. ID3v2 tags are separated in various specialized frames. Some frames can exists multiple times.

Class synopsis

extends KTaglib_Tag {
/* Методы */
public int getSize ( void )
public string __toString ( void )
/* Наследуемые методы */
public string KTaglib_Tag::getAlbum ( void )
public string KTaglib_Tag::getArtist ( void )
public string KTaglib_Tag::getComment ( void )
public string KTaglib_Tag::getGenre ( void )
public string KTaglib_Tag::getTitle ( void )
public int KTaglib_Tag::getTrack ( void )
public int KTaglib_Tag::getYear ( void )
public bool KTaglib_Tag::isEmpty ( void )
}

Содержание

  • KTaglib_ID3v2_Frame::getSize — Returns the size of the frame in bytes
  • KTaglib_ID3v2_Frame::__toString — Returns a string representation of the frame


Returns the size of the frame in bytes

  • « KTaglib_ID3v2_Frame
  • KTaglib_ID3v2_Frame::__toString »
  • PHP Manual
  • KTaglib_ID3v2_Frame
  • Returns the size of the frame in bytes

KTaglib_ID3v2_Frame::getSize

(0.0.1)

KTaglib_ID3v2_Frame::getSize — Returns the size of the frame in bytes

Описание

public int KTaglib_ID3v2_Frame::getSize ( void )

Returns the size of the frame in bytes. Please refer to id3.org to see what ID3v2 frames are and how they are defined.

Возвращаемые значения

Returns the size of the frame in bytes


Returns a string representation of the frame

  • « KTaglib_ID3v2_Frame::getSize
  • KTaglib_ID3v2_AttachedPictureFrame »
  • PHP Manual
  • KTaglib_ID3v2_Frame
  • Returns a string representation of the frame

KTaglib_ID3v2_Frame::__toString

(0.0.1)

KTaglib_ID3v2_Frame::__toString — Returns a string representation of the frame

Описание

public string KTaglib_ID3v2_Frame::__toString ( void )

Returns a string representation of the frame. This might be just the frame id, but might contain more information. Please see the ktaglib documentation for more information

Возвращаемые значения

Returns a string representation of the frame.


The KTaglib_ID3v2_AttachedPictureFrame class

(0.0.1)

Введение

Represents an ID3v2 frame that can hold a picture.

Class synopsis

extends KTaglib_ID3v2_Frame {
/* Методы */
public string getDescription ( void )
public string getMimeType ( void )
public int getType ( void )
public bool savePicture ( string $filename )
public string getMimeType ( string $type )
public void setPicture ( string $filename )
public void setType ( int $type )
/* Наследуемые методы */
public int KTaglib_ID3v2_Frame::getSize ( void )
public string KTaglib_ID3v2_Frame::__toString ( void )
public string KTaglib_Tag::getAlbum ( void )
public string KTaglib_Tag::getArtist ( void )
public string KTaglib_Tag::getComment ( void )
public string KTaglib_Tag::getGenre ( void )
public string KTaglib_Tag::getTitle ( void )
public int KTaglib_Tag::getTrack ( void )
public int KTaglib_Tag::getYear ( void )
public bool KTaglib_Tag::isEmpty ( void )
}

Содержание

  • KTaglib_ID3v2_AttachedPictureFrame::getDescription — Returns a description for the picture in a picture frame
  • KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Returns the mime type of the picture
  • KTaglib_ID3v2_AttachedPictureFrame::getType — Returns the type of the image
  • KTaglib_ID3v2_AttachedPictureFrame::savePicture — Saves the picture to a file
  • KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Set's the mime type of the picture
  • KTaglib_ID3v2_AttachedPictureFrame::setPicture — Sets the frame picture to the given image
  • KTaglib_ID3v2_AttachedPictureFrame::setType — Set the type of the image


Returns a description for the picture in a picture frame

  • « KTaglib_ID3v2_AttachedPictureFrame
  • KTaglib_ID3v2_AttachedPictureFrame::getMimeType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Returns a description for the picture in a picture frame

KTaglib_ID3v2_AttachedPictureFrame::getDescription

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::getDescription — Returns a description for the picture in a picture frame

Описание

public string KTaglib_ID3v2_AttachedPictureFrame::getDescription ( void )

Returns the attached description for a picture frame in an ID3v2.x frame.

Возвращаемые значения

Returns a description for the picture in a picture frame


Returns the mime type of the picture

  • « KTaglib_ID3v2_AttachedPictureFrame::getDescription
  • KTaglib_ID3v2_AttachedPictureFrame::getType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Returns the mime type of the picture

KTaglib_ID3v2_AttachedPictureFrame::getMimeType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::getMimeType — Returns the mime type of the picture

Описание

public string KTaglib_ID3v2_AttachedPictureFrame::getMimeType ( void )

Returns the mime type of the image represented by the attached picture frame.

Please notice that this method might return different types. While ID3v2.2 have a mime type that doesn't start with "image/", ID3v2.3 and v2.4 usually start with "image/". Therefore the method might return "image/png" for IDv2.3 frames and just "PNG" for ID3v2.2 frames.

Notice that even the frame is an attached picture, the mime type might not be set and therefore an empty string might be returned.

Возвращаемые значения

Returns the mime type of the image represented by the attached picture frame.


Returns the type of the image

  • « KTaglib_ID3v2_AttachedPictureFrame::getMimeType
  • KTaglib_ID3v2_AttachedPictureFrame::savePicture »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Returns the type of the image

KTaglib_ID3v2_AttachedPictureFrame::getType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::getType — Returns the type of the image

Описание

public int KTaglib_ID3v2_AttachedPictureFrame::getType ( void )

Returns the type of the image.

The ID3v2 specification allows an AttachedPictureFrame to set the type of an image. This can be e.g. FrontCover or FileIcon. Please refer to the KTaglib_ID3v2_AttachedPictureFrame class description for a list of available types.

Возвращаемые значения

Returns the integer representation of the type.


Saves the picture to a file

  • « KTaglib_ID3v2_AttachedPictureFrame::getType
  • KTaglib_ID3v2_AttachedPictureFrame::setMimeType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Saves the picture to a file

KTaglib_ID3v2_AttachedPictureFrame::savePicture

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::savePicture — Saves the picture to a file

Описание

public bool KTaglib_ID3v2_AttachedPictureFrame::savePicture ( string $filename )

Saves the attached picture to the given filename.

Возвращаемые значения

Returns true on success, otherwise false


Set's the mime type of the picture

  • « KTaglib_ID3v2_AttachedPictureFrame::savePicture
  • KTaglib_ID3v2_AttachedPictureFrame::setPicture »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Set's the mime type of the picture

KTaglib_ID3v2_AttachedPictureFrame::setMimeType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::setMimeType — Set's the mime type of the picture

Описание

public string KTaglib_ID3v2_AttachedPictureFrame::getMimeType ( string $type )

Sets the mime type of the image. This should in most cases be "image/png" or "image/jpeg".


Sets the frame picture to the given image

  • « KTaglib_ID3v2_AttachedPictureFrame::setMimeType
  • KTaglib_ID3v2_AttachedPictureFrame::setType »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Sets the frame picture to the given image

KTaglib_ID3v2_AttachedPictureFrame::setPicture

(0.0.1)

KTaglib_ID3v2_AttachedPictureFrame::setPicture — Sets the frame picture to the given image

Описание

public void KTaglib_ID3v2_AttachedPictureFrame::setPicture ( string $filename )

Sets the picture to the give image. The image is loaded from the given filename. Please note that the picture is not saved unless you call the save method of the corresponding file object.

Возвращаемые значения

Returns true on success, otherwise false


Set the type of the image

  • « KTaglib_ID3v2_AttachedPictureFrame::setPicture
  • oggvorbis »
  • PHP Manual
  • KTaglib_ID3v2_AttachedPictureFrame
  • Set the type of the image

KTaglib_ID3v2_AttachedPictureFrame::setType

(0.2.0)

KTaglib_ID3v2_AttachedPictureFrame::setType — Set the type of the image

Описание

public void KTaglib_ID3v2_AttachedPictureFrame::setType ( int $type )

Sets the type of the image. This can be e.g. FrontCover or FileIcon. Please refer to the KTaglib_ID3v2_AttachedPictureFrame class description for a list of available types and their constant mappings.


OGG/Vorbis

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Context options
  • Примеры
    • Examples on using the ogg:// wrapper.


Введение

The OGG/Vorbis file format, as defined by » http://www.vorbis.com/, is a scheme for compressing audio streams by multiple factors with a minimum of quality loss. This extension adds Ogg Vorbis support to PHP's URL Wrappers. When used in read mode, compressed OGG/Vorbis data is expanded to raw PCM audio in one of six PCM encoding formats listed in the predefined constants section.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

This extension requires PHP >= 4.3.0, » libogg >= 1.0, and » libvorbis >= 1.0.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/oggvorbis


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

OGG/Vorbis supports PCM encodings in the following formats
Constant | Definition
OGGVORBIS_PCM_U8 | Unsigned 8-bit PCM.
OGGVORBIS_PCM_S8 | Signed 8-bit PCM.
OGGVORBIS_PCM_U16_LE | Unsigned 16-bit PCM. Little Endian byte order.
OGGVORBIS_PCM_U16_BE | Unsigned 16-bit PCM. Big Endian byte order.
OGGVORBIS_PCM_S16_LE | Signed 16-bit PCM. Little Endian byte order.
OGGVORBIS_PCM_S16_BE | Signed 16-bit PCM. Big Endian byte order.


Context options

OGG/Vorbis tuning options
Option | Definition | Relevance | Default
pcm_mode | PCM byte encoding used. See constants below. | Read / Write | OGGVORBIS_PCM_S16_LE
rate | PCM Sampling rate. Measured in Hz. | Write only | 44100
bitrate | Vorbis Average Bitrate Encoding / Variable Bitrate Encoding. Measured in bps (ABR) or Quality level (VBR: 0.0 to 1.0). 128000 ABR is rough equal to 0.4 VBR. | Write only | 128000
channels | Number of PCM channels. 1 == Mono, 2 == Stereo. | Write only | 2
serialno | Serial Number of stream within file. Must be unique within file. Because of the potential to select a duplicate serial number within a chained file, make efforts to manually assign unique numbers when encoding. | Write only | Random
comments | Associative array of file comments. Will be translated to strtoupper($name) . "=$value". Note: This context option is not available in oggvorbis-0.1 | Write only | array('ENCODER' => 'PHP/OggVorbis, http://pear.php.net/oggvorbis')


  • « Context options
  • Examples on using the ogg:// wrapper. »
  • PHP Manual
  • oggvorbis
  • Примеры

Примеры

Содержание

  • Examples on using the ogg:// wrapper.


Examples on using the ogg:// wrapper.

Пример #1 Reading an OGG/Vorbis file

<?php
dl("oggvorbis.so");

/* By default, ogg:// will decode to Signed 16-bit Little Endian */
$fp = fopen('ogg://myaudio.ogg', 'r');

/* Collect some information about the file. */
$metadata = stream_get_meta_data($fp);

/* Inspect the first song (usually the only song,
   but OGG/Vorbis files may be chained) */
$songdata = $metadata['wrapper_data'][0];

echo "OGG/Vorbis file encoded by: {$songdata['vendor']}\n.";
echo "  {$songdata['channels']} channels of {$songdata['rate']}Hz sampling encoded at {$songdata['bitrate_nominal']}bps.\n";
foreach($songdata['comments'] as $comment) {
    echo "  $comment\n";
}

while ($audio_data = fread($fp, 8192)) {
  /* Do something with the PCM audio we're extracting from the OGG.
     Copying to /dev/dsp is a good target on linux systems,
     just remember to setup the device for your sampling mode first. */
}

fclose($fp);

?>

Пример #2 Encode an audio file to OGG/Vorbis

<?php
dl('oggvorbis.so');

$context = stream_context_create(array('ogg'=>array(
             'pcm_mode' => OGGVORBIS_PCM_S8,  /* Signed 8bit audio */
             'rate' => 44100,                 /* 44kHz CD quality */
             'bitrate' => 0.5,                /* Midquality VBR */
             'channels' => 1,                 /* Mono */
             'serialno' => 12345)));          /* Unique within our stream */

/* Open file for appending.  This will "chain" a second OGG stream at the end of the first. */
$ogg = fopen('ogg://mysong.ogg', 'a', false, $context);

$pcm = fopen('mysample.pcm', 'r');

/* Compress the raw PCM audio from mysample.pcm into mysong.ogg */
stream_copy_to_stream($pcm, $ogg);

fclose($pcm);
fclose($ogg);
?>


OpenAL Audio Bindings

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • OpenAL Функции
    • openal_buffer_create — Generate OpenAL buffer
    • openal_buffer_data — Load a buffer with data
    • openal_buffer_destroy — Destroys an OpenAL buffer
    • openal_buffer_get — Retrieve an OpenAL buffer property
    • openal_buffer_loadwav — Load a .wav file into a buffer
    • openal_context_create — Create an audio processing context
    • openal_context_current — Make the specified context current
    • openal_context_destroy — Destroys a context
    • openal_context_process — Process the specified context
    • openal_context_suspend — Suspend the specified context
    • openal_device_close — Close an OpenAL device
    • openal_device_open — Initialize the OpenAL audio layer
    • openal_listener_get — Retrieve a listener property
    • openal_listener_set — Set a listener property
    • openal_source_create — Generate a source resource
    • openal_source_destroy — Destroy a source resource
    • openal_source_get — Retrieve an OpenAL source property
    • openal_source_pause — Pause the source
    • openal_source_play — Start playing the source
    • openal_source_rewind — Rewind the source
    • openal_source_set — Set source property
    • openal_source_stop — Stop playing the source
    • openal_stream — Begin streaming on a source


  • « OpenAL
  • Установка и настройка »
  • PHP Manual
  • OpenAL
  • Введение

Введение

Platform independent audio bindings. Requires the » OpenAL library.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/openal.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Типы ресурсов

This extension defines four resource types:
Open AL(Device) - Returned by openal_device_open(),
Open AL(Context) - Returned by openal_context_create(),
Open AL(Buffer) - Returned by openal_buffer_create(),
and Open AL(Source) - Returned by openal_source_create().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

ALC_FREQUENCY (integer)
Context Attribute
ALC_REFRESH (integer)
Context Attribute
ALC_SYNC (integer)
Context Attribute
AL_FREQUENCY (integer)
Buffer Setting
AL_BITS (integer)
Buffer Setting
AL_CHANNELS (integer)
Buffer Setting
AL_SIZE (integer)
Buffer Setting
AL_BUFFER (integer)
Source/Listener Setting (Integer)
AL_SOURCE_RELATIVE (integer)
Source/Listener Setting (Integer)
AL_SOURCE_STATE (integer)
Source/Listener Setting (Integer)
AL_PITCH (integer)
Source/Listener Setting (Float)
AL_GAIN (integer)
Source/Listener Setting (Float)
AL_MIN_GAIN (integer)
Source/Listener Setting (Float)
AL_MAX_GAIN (integer)
Source/Listener Setting (Float)
AL_MAX_DISTANCE (integer)
Source/Listener Setting (Float)
AL_ROLLOFF_FACTOR (integer)
Source/Listener Setting (Float)
AL_CONE_OUTER_GAIN (integer)
Source/Listener Setting (Float)
AL_CONE_INNER_ANGLE (integer)
Source/Listener Setting (Float)
AL_CONE_OUTER_ANGLE (integer)
Source/Listener Setting (Float)
AL_REFERENCE_DISTANCE (integer)
Source/Listener Setting (Float)
AL_POSITION (integer)
Source/Listener Setting (Float Vector)
AL_VELOCITY (integer)
Source/Listener Setting (Float Vector)
AL_DIRECTION (integer)
Source/Listener Setting (Float Vector)
AL_ORIENTATION (integer)
Source/Listener Setting (Float Vector)
AL_FORMAT_MONO8 (integer)
PCM Format
AL_FORMAT_MONO16 (integer)
PCM Format
AL_FORMAT_STEREO8 (integer)
PCM Format
AL_FORMAT_STEREO16 (integer)
PCM Format
AL_INITIAL (integer)
Source State
AL_PLAYING (integer)
Source State
AL_PAUSED (integer)
Source State
AL_STOPPED (integer)
Source State
AL_LOOPING (integer)
Source State
AL_TRUE (integer)
Boolean value recognized by OpenAL
AL_FALSE (integer)
Boolean value recognized by OpenAL


OpenAL Функции

Содержание

  • openal_buffer_create — Generate OpenAL buffer
  • openal_buffer_data — Load a buffer with data
  • openal_buffer_destroy — Destroys an OpenAL buffer
  • openal_buffer_get — Retrieve an OpenAL buffer property
  • openal_buffer_loadwav — Load a .wav file into a buffer
  • openal_context_create — Create an audio processing context
  • openal_context_current — Make the specified context current
  • openal_context_destroy — Destroys a context
  • openal_context_process — Process the specified context
  • openal_context_suspend — Suspend the specified context
  • openal_device_close — Close an OpenAL device
  • openal_device_open — Initialize the OpenAL audio layer
  • openal_listener_get — Retrieve a listener property
  • openal_listener_set — Set a listener property
  • openal_source_create — Generate a source resource
  • openal_source_destroy — Destroy a source resource
  • openal_source_get — Retrieve an OpenAL source property
  • openal_source_pause — Pause the source
  • openal_source_play — Start playing the source
  • openal_source_rewind — Rewind the source
  • openal_source_set — Set source property
  • openal_source_stop — Stop playing the source
  • openal_stream — Begin streaming on a source


Generate OpenAL buffer

  • « OpenAL Функции
  • openal_buffer_data »
  • PHP Manual
  • OpenAL Функции
  • Generate OpenAL buffer

openal_buffer_create

(PECL openal >= 0.1.0)

openal_buffer_create — Generate OpenAL buffer

Описание

resource openal_buffer_create ( void )

Возвращаемые значения

Returns an Open AL(Buffer) resource on success or FALSE on failure.

Смотрите также

  • openal_buffer_loadwav() - Load a .wav file into a buffer
  • openal_buffer_data() - Load a buffer with data


Load a buffer with data

  • « openal_buffer_create
  • openal_buffer_destroy »
  • PHP Manual
  • OpenAL Функции
  • Load a buffer with data

openal_buffer_data

(PECL openal >= 0.1.0)

openal_buffer_data — Load a buffer with data

Описание

bool openal_buffer_data ( resource $buffer , int $format , string $data , int $freq )

Список параметров

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

format

Format of data, one of: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 и AL_FORMAT_STEREO16

data

Block of binary audio data in the format and freq specified.

freq

Frequency of data given in Hz.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_buffer_loadwav() - Load a .wav file into a buffer
  • openal_stream() - Begin streaming on a source


Destroys an OpenAL buffer

  • « openal_buffer_data
  • openal_buffer_get »
  • PHP Manual
  • OpenAL Функции
  • Destroys an OpenAL buffer

openal_buffer_destroy

(PECL openal >= 0.1.0)

openal_buffer_destroy — Destroys an OpenAL buffer

Описание

bool openal_buffer_destroy ( resource $buffer )

Список параметров

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_buffer_create() - Generate OpenAL buffer


Retrieve an OpenAL buffer property

  • « openal_buffer_destroy
  • openal_buffer_loadwav »
  • PHP Manual
  • OpenAL Функции
  • Retrieve an OpenAL buffer property

openal_buffer_get

(PECL openal >= 0.1.0)

openal_buffer_get — Retrieve an OpenAL buffer property

Описание

int openal_buffer_get ( resource $buffer , int $property )

Список параметров

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

property

Specific property, one of: AL_FREQUENCY, AL_BITS, AL_CHANNELS и AL_SIZE.

Возвращаемые значения

Returns an integer value appropriate to the property requested или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_buffer_create() - Generate OpenAL buffer


Load a .wav file into a buffer

  • « openal_buffer_get
  • openal_context_create »
  • PHP Manual
  • OpenAL Функции
  • Load a .wav file into a buffer

openal_buffer_loadwav

(PECL openal >= 0.1.0)

openal_buffer_loadwav — Load a .wav file into a buffer

Описание

bool openal_buffer_loadwav ( resource $buffer , string $wavfile )

Список параметров

buffer

An Open AL(Buffer) resource (previously created by openal_buffer_create()).

wavfile

Path to .wav file on local file system.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_buffer_data() - Load a buffer with data
  • openal_stream() - Begin streaming on a source


Create an audio processing context

  • « openal_buffer_loadwav
  • openal_context_current »
  • PHP Manual
  • OpenAL Функции
  • Create an audio processing context

openal_context_create

(PECL openal >= 0.1.0)

openal_context_create — Create an audio processing context

Описание

resource openal_context_create ( resource $device )

Список параметров

device

An Open AL(Device) resource (previously created by openal_device_open()).

Возвращаемые значения

Returns an Open AL(Context) resource on success or FALSE on failure.

Смотрите также

  • openal_device_open() - Initialize the OpenAL audio layer
  • openal_context_destroy() - Destroys a context


Make the specified context current

  • « openal_context_create
  • openal_context_destroy »
  • PHP Manual
  • OpenAL Функции
  • Make the specified context current

openal_context_current

(PECL openal >= 0.1.0)

openal_context_current — Make the specified context current

Описание

bool openal_context_current ( resource $context )

Список параметров

context

An Open AL(Context) resource (previously created by openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_context_create() - Create an audio processing context


Destroys a context

  • « openal_context_current
  • openal_context_process »
  • PHP Manual
  • OpenAL Функции
  • Destroys a context

openal_context_destroy

(PECL openal >= 0.1.0)

openal_context_destroy — Destroys a context

Описание

bool openal_context_destroy ( resource $context )

Список параметров

context

An Open AL(Context) resource (previously created by openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_context_create() - Create an audio processing context


Process the specified context

  • « openal_context_destroy
  • openal_context_suspend »
  • PHP Manual
  • OpenAL Функции
  • Process the specified context

openal_context_process

(PECL openal >= 0.1.0)

openal_context_process — Process the specified context

Описание

bool openal_context_process ( resource $context )

Список параметров

context

An Open AL(Context) resource (previously created by openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_context_create() - Create an audio processing context
  • openal_context_current() - Make the specified context current
  • openal_context_suspend() - Suspend the specified context


Suspend the specified context

  • « openal_context_process
  • openal_device_close »
  • PHP Manual
  • OpenAL Функции
  • Suspend the specified context

openal_context_suspend

(PECL openal >= 0.1.0)

openal_context_suspend — Suspend the specified context

Описание

bool openal_context_suspend ( resource $context )

Список параметров

context

An Open AL(Context) resource (previously created by openal_context_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_context_create() - Create an audio processing context
  • openal_context_current() - Make the specified context current
  • openal_context_process() - Process the specified context


Close an OpenAL device

  • « openal_context_suspend
  • openal_device_open »
  • PHP Manual
  • OpenAL Функции
  • Close an OpenAL device

openal_device_close

(PECL openal >= 0.1.0)

openal_device_close — Close an OpenAL device

Описание

bool openal_device_close ( resource $device )

Список параметров

device

An Open AL(Device) resource (previously created by openal_device_open()) to be closed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_device_open() - Initialize the OpenAL audio layer


Initialize the OpenAL audio layer

  • « openal_device_close
  • openal_listener_get »
  • PHP Manual
  • OpenAL Функции
  • Initialize the OpenAL audio layer

openal_device_open

(PECL openal >= 0.1.0)

openal_device_open — Initialize the OpenAL audio layer

Описание

resource openal_device_open ([ string $device_desc ] )

Список параметров

device_desc

Open an audio device optionally specified by device_desc. If device_desc is not specified the first available audio device will be used.

Возвращаемые значения

Returns an Open AL(Device) resource on success or FALSE on failure.

Смотрите также

  • openal_device_close() - Close an OpenAL device
  • openal_context_create() - Create an audio processing context


Retrieve a listener property

  • « openal_device_open
  • openal_listener_set »
  • PHP Manual
  • OpenAL Функции
  • Retrieve a listener property

openal_listener_get

(PECL openal >= 0.1.0)

openal_listener_get — Retrieve a listener property

Описание

mixed openal_listener_get ( int $property )

Список параметров

property

Property to retrieve, one of:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) и
AL_ORIENTATION (array(float,float,float)).

Возвращаемые значения

Returns a float or array of floats (as appropriate) или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_listener_set() - Set a listener property


Set a listener property

  • « openal_listener_get
  • openal_source_create »
  • PHP Manual
  • OpenAL Функции
  • Set a listener property

openal_listener_set

(PECL openal >= 0.1.0)

openal_listener_set — Set a listener property

Описание

bool openal_listener_set ( int $property , mixed $setting )

Список параметров

property

Property to set, one of:
AL_GAIN (float),
AL_POSITION (array(float,float,float)),
AL_VELOCITY (array(float,float,float)) и
AL_ORIENTATION (array(float,float,float)).

setting

Value to set, either float, or an array of floats as appropriate.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_listener_get() - Retrieve a listener property


Generate a source resource

  • « openal_listener_set
  • openal_source_destroy »
  • PHP Manual
  • OpenAL Функции
  • Generate a source resource

openal_source_create

(PECL openal >= 0.1.0)

openal_source_create — Generate a source resource

Описание

resource openal_source_create ( void )

Возвращаемые значения

Returns an Open AL(Source) resource on success or FALSE on failure.

Смотрите также

  • openal_source_set() - Set source property
  • openal_source_play() - Start playing the source
  • openal_source_destroy() - Destroy a source resource


Destroy a source resource

  • « openal_source_create
  • openal_source_get »
  • PHP Manual
  • OpenAL Функции
  • Destroy a source resource

openal_source_destroy

(PECL openal >= 0.1.0)

openal_source_destroy — Destroy a source resource

Описание

bool openal_source_destroy ( resource $source )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_create() - Generate a source resource


Retrieve an OpenAL source property

  • « openal_source_destroy
  • openal_source_pause »
  • PHP Manual
  • OpenAL Функции
  • Retrieve an OpenAL source property

openal_source_get

(PECL openal >= 0.1.0)

openal_source_get — Retrieve an OpenAL source property

Описание

mixed openal_source_get ( resource $source , int $property )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

property

Property to get, one of: AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

Возвращаемые значения

Returns the type associated with the property being retrieved или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_create() - Generate a source resource
  • openal_source_set() - Set source property
  • openal_source_play() - Start playing the source


Pause the source

  • « openal_source_get
  • openal_source_play »
  • PHP Manual
  • OpenAL Функции
  • Pause the source

openal_source_pause

(PECL openal >= 0.1.0)

openal_source_pause — Pause the source

Описание

bool openal_source_pause ( resource $source )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_stop() - Stop playing the source
  • openal_source_play() - Start playing the source
  • openal_source_rewind() - Rewind the source


Start playing the source

  • « openal_source_pause
  • openal_source_rewind »
  • PHP Manual
  • OpenAL Функции
  • Start playing the source

openal_source_play

(PECL openal >= 0.1.0)

openal_source_play — Start playing the source

Описание

bool openal_source_play ( resource $source )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_stop() - Stop playing the source
  • openal_source_pause() - Pause the source
  • openal_source_rewind() - Rewind the source


Rewind the source

  • « openal_source_play
  • openal_source_set »
  • PHP Manual
  • OpenAL Функции
  • Rewind the source

openal_source_rewind

(PECL openal >= 0.1.0)

openal_source_rewind — Rewind the source

Описание

bool openal_source_rewind ( resource $source )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_stop() - Stop playing the source
  • openal_source_pause() - Pause the source
  • openal_source_play() - Start playing the source


Set source property

  • « openal_source_rewind
  • openal_source_stop »
  • PHP Manual
  • OpenAL Функции
  • Set source property

openal_source_set

(PECL openal >= 0.1.0)

openal_source_set — Set source property

Описание

bool openal_source_set ( resource $source , int $property , mixed $setting )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

property

Property to set, one of: AL_BUFFER (OpenAL(Source)), AL_LOOPING (bool), AL_SOURCE_RELATIVE (int), AL_SOURCE_STATE (int), AL_PITCH (float), AL_GAIN (float), AL_MIN_GAIN (float), AL_MAX_GAIN (float), AL_MAX_DISTANCE (float), AL_ROLLOFF_FACTOR (float), AL_CONE_OUTER_GAIN (float), AL_CONE_INNER_ANGLE (float), AL_CONE_OUTER_ANGLE (float), AL_REFERENCE_DISTANCE (float), AL_POSITION (array(float,float,float)), AL_VELOCITY (array(float,float,float)), AL_DIRECTION (array(float,float,float)).

setting

Value to assign to specified property. Refer to the description of property for a description of the value(s) expected.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_create() - Generate a source resource
  • openal_source_get() - Retrieve an OpenAL source property
  • openal_source_play() - Start playing the source


Stop playing the source

  • « openal_source_set
  • openal_stream »
  • PHP Manual
  • OpenAL Функции
  • Stop playing the source

openal_source_stop

(PECL openal >= 0.1.0)

openal_source_stop — Stop playing the source

Описание

bool openal_source_stop ( resource $source )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_play() - Start playing the source
  • openal_source_pause() - Pause the source
  • openal_source_rewind() - Rewind the source


Begin streaming on a source

  • « openal_source_stop
  • Службы аутентификации »
  • PHP Manual
  • OpenAL Функции
  • Begin streaming on a source

openal_stream

(PECL openal >= 0.1.0)

openal_stream — Begin streaming on a source

Описание

resource openal_stream ( resource $source , int $format , int $rate )

Список параметров

source

An Open AL(Source) resource (previously created by openal_source_create()).

format

Format of data, one of: AL_FORMAT_MONO8, AL_FORMAT_MONO16, AL_FORMAT_STEREO8 и AL_FORMAT_STEREO16

rate

Frequency of data to stream given in Hz.

Возвращаемые значения

Returns a stream resource on success или FALSE в случае возникновения ошибки.

Смотрите также

  • openal_source_create() - Generate a source resource
  • fwrite() - Бинарно-безопасная запись в файл


Службы аутентификации

  • KADM5 — Kerberos V
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • KADM5 Функции
  • Radius
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Radius Функции


Kerberos V

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Constants for Attribute Flags
    • Constants for Options
  • Примеры
    • Basic usage
  • KADM5 Функции
    • kadm5_chpass_principal — Changes the principal's password
    • kadm5_create_principal — Creates a kerberos principal with the given parameters
    • kadm5_delete_principal — Deletes a kerberos principal
    • kadm5_destroy — Closes the connection to the admin server and releases all related resources
    • kadm5_flush — Flush all changes to the Kerberos database
    • kadm5_get_policies — Gets all policies from the Kerberos database
    • kadm5_get_principal — Gets the principal's entries from the Kerberos database
    • kadm5_get_principals — Gets all principals from the Kerberos database
    • kadm5_init_with_password — Opens a connection to the KADM5 library
    • kadm5_modify_principal — Modifies a kerberos principal with the given parameters


Введение

These package allows you to access Kerberos V administration servers. You can create, modify, and delete Kerberos V principals and policies.

More information about Kerberos can be found at » http://web.mit.edu/kerberos/www/.

Documentation for Kerberos and KADM5 can be found at » http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.8/doc/admin_toc.html.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/kadm5.

Замечание:

If this option is used without specifying the path to KADM5, PHP will use the built-in KADM5 client libraries. Users who run other applications that use KADM5 (for example, running PHP 4 and PHP 5 as concurrent apache modules, or auth-kadm5) should always specify the path to KADM5: --with-kadm5=/path/to/kadm5. This will force PHP to use the client libraries installed by KADM5, avoiding any conflicts.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

This extension defines a KADM5 handle returned by kadm5_init_with_password().


Предопределенные константы

Содержание

  • Constants for Attribute Flags
  • Constants for Options

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Constants for Attribute Flags

The functions kadm5_create_principal(),
kadm5_modify_principal(), and
kadm5_modify_principal() allow to specify
special attributes using a bitfield. The symbols are defined below:

Attributes for use by the KDC
constant
KRB5_KDB_DISALLOW_POSTDATED
KRB5_KDB_DISALLOW_FORWARDABLE
KRB5_KDB_DISALLOW_TGT_BASED
KRB5_KDB_DISALLOW_RENEWABLE
KRB5_KDB_DISALLOW_PROXIABLE
KRB5_KDB_DISALLOW_DUP_SKEY
KRB5_KDB_DISALLOW_ALL_TIX
KRB5_KDB_REQUIRES_PRE_AUTH
KRB5_KDB_REQUIRES_HW_AUTH
KRB5_KDB_REQUIRES_PWCHANGE
KRB5_KDB_DISALLOW_SVR
KRB5_KDB_PWCHANGE_SERVER
KRB5_KDB_SUPPORT_DESMD5
KRB5_KDB_NEW_PRINC


Constants for Options

The functions kadm5_create_principal(),
kadm5_modify_principal(), and
kadm5_get_principal() allow to specify or return
principal's options as an associative array. The keys for the associative
array are defined as string constants below:

Options for creating/modifying/retrieving principals
constant | funcdef | description
KADM5_PRINCIPAL | long | The expire time of the princial as a Kerberos timestamp.
KADM5_PRINC_EXPIRE_TIME | long | The expire time of the princial as a Kerberos timestamp.
KADM5_LAST_PW_CHANGE | long | The time this principal's password was last changed.
KADM5_PW_EXPIRATION | long | The expire time of the principal's current password, as a Kerberos timestamp.
KADM5_MAX_LIFE | long | The maximum lifetime of any Kerberos ticket issued to this principal.
KADM5_MAX_RLIFE | long | The maximum renewable lifetime of any Kerberos ticket issued to or for this principal.
KADM5_MOD_NAME | string | The name of the Kerberos principal that most recently modified this principal.
KADM5_MOD_TIME | long | The time this principal was last modified, as a Kerberos timestamp.
KADM5_KVNO | long | The version of the principal's current key.
KADM5_POLICY | string | The name of the policy controlling this principal.
KADM5_CLEARPOLICY | long | Standard procedure is to assign the 'default' policy to new principals. KADM5_CLEARPOLICY suppresses this behaviour.
KADM5_LAST_SUCCESS | long | The KDC time of the last successfull AS_REQ.
KADM5_LAST_FAILED | long | The KDC time of the last failed AS_REQ.
KADM5_FAIL_AUTH_COUNT | long | The number of consecutive failed AS_REQs.
KADM5_RANDKEY | long | Generates a random password for the principal. The parameter password will be ignored.
KADM5_ATTRIBUTES | long | A bitfield of attributes for use by the KDC.


  • « Constants for Options
  • Basic usage »
  • PHP Manual
  • KADM5
  • Примеры

Примеры

Содержание

  • Basic usage


Basic usage

This simple example shows how to connect, query, print resulting principals and disconnect from a KADM5 database.

Пример #1 KADM5 extension overview example

<?php

  $handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

  print "<h1>get_principals</h1>\n";
  $principals = kadm5_get_principals($handle);
  for( $i=0; $i<count($principals); $i++)
      print "$principals[$i]<br>\n";

  print "<h1>get_policies</h1>\n";
  $policies = kadm5_get_policies($handle);
  for( $i=0; $i<count($policies); $i++)
      print "$policies[$i]<br>\n";

  print "<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

  $options = kadm5_get_principal($handle, "burbach@GONICUS.LOCAL" );
  $keys = array_keys($options);
  for( $i=0; $i<count($keys); $i++) {
    $value = $options[$keys[$i]];
    print "$keys[$i]: $value<br>\n";
  }

  $options = array(KADM5_PRINC_EXPIRE_TIME => 0);
  kadm5_modify_principal($handle, "burbach@GONICUS.LOCAL", $options);

  kadm5_destroy($handle);
?>


KADM5 Функции

Содержание

  • kadm5_chpass_principal — Changes the principal's password
  • kadm5_create_principal — Creates a kerberos principal with the given parameters
  • kadm5_delete_principal — Deletes a kerberos principal
  • kadm5_destroy — Closes the connection to the admin server and releases all related resources
  • kadm5_flush — Flush all changes to the Kerberos database
  • kadm5_get_policies — Gets all policies from the Kerberos database
  • kadm5_get_principal — Gets the principal's entries from the Kerberos database
  • kadm5_get_principals — Gets all principals from the Kerberos database
  • kadm5_init_with_password — Opens a connection to the KADM5 library
  • kadm5_modify_principal — Modifies a kerberos principal with the given parameters


Changes the principal's password

  • « KADM5 Функции
  • kadm5_create_principal »
  • PHP Manual
  • KADM5 Функции
  • Changes the principal's password

kadm5_chpass_principal

(PECL kadm5 >= 0.2.3)

kadm5_chpass_principal — Changes the principal's password

Описание

bool kadm5_chpass_principal ( resource $handle , string $principal , string $password )

kadm5_chpass_principal() sets the new password password for the principal.

Список параметров

handle

A KADM5 handle.

principal

The principal.

password

The new password.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Example of changing principal's password

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_chpass_principal($handle, "burbach@GONICUS.LOCAL", "newpassword");

kadm5_destroy($handle);
?>


Creates a kerberos principal with the given parameters

  • « kadm5_chpass_principal
  • kadm5_delete_principal »
  • PHP Manual
  • KADM5 Функции
  • Creates a kerberos principal with the given parameters

kadm5_create_principal

(PECL kadm5 >= 0.2.3)

kadm5_create_principal — Creates a kerberos principal with the given parameters

Описание

bool kadm5_create_principal ( resource $handle , string $principal [, string $password [, array $options ]] )

Creates a principal with the given password.

Список параметров

handle

A KADM5 handle.

principal

The principal.

password

If password is omitted or is NULL, a random key will be generated.

options

It is possible to specify several optional parameters within the array options. Allowed are the following options: KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Example of principal's creation

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH | KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 KADM5_POLICY => "default",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle, "burbach@GONICUS.LOCAL", "password", $options);

kadm5_destroy($handle);
?>

Смотрите также

  • kadm5_modify_principal() - Modifies a kerberos principal with the given parameters
  • kadm5_delete_principal() - Deletes a kerberos principal


Deletes a kerberos principal

  • « kadm5_create_principal
  • kadm5_destroy »
  • PHP Manual
  • KADM5 Функции
  • Deletes a kerberos principal

kadm5_delete_principal

(PECL kadm5 >= 0.2.3)

kadm5_delete_principal — Deletes a kerberos principal

Описание

bool kadm5_delete_principal ( resource $handle , string $principal )

Removes the principal from the Kerberos database.

Список параметров

handle

A KADM5 handle.

principal

The removed principal.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 kadm5_delete_principal() example

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

kadm5_delete_principal($handle, "burbach@GONICUS.LOCAL");

kadm5_destroy($handle);
?>

Смотрите также

  • kadm5_modify_principal() - Modifies a kerberos principal with the given parameters
  • kadm5_create_principal() - Creates a kerberos principal with the given parameters


Closes the connection to the admin server and releases all related resources

  • « kadm5_delete_principal
  • kadm5_flush »
  • PHP Manual
  • KADM5 Функции
  • Closes the connection to the admin server and releases all related resources

kadm5_destroy

(PECL kadm5 >= 0.2.3)

kadm5_destroy — Closes the connection to the admin server and releases all related resources

Описание

bool kadm5_destroy ( resource $handle )

Closes the connection to the admin server and releases all related resources.

Список параметров

handle

A KADM5 handle.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • kadm5_init_with_password() - Opens a connection to the KADM5 library


Flush all changes to the Kerberos database

  • « kadm5_destroy
  • kadm5_get_policies »
  • PHP Manual
  • KADM5 Функции
  • Flush all changes to the Kerberos database

kadm5_flush

(PECL kadm5 >= 0.2.3)

kadm5_flush — Flush all changes to the Kerberos database

Описание

bool kadm5_flush ( resource $handle )

Flush all changes to the Kerberos database, leaving the connection to the Kerberos admin server open.

Список параметров

handle

A KADM5 handle.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Gets all policies from the Kerberos database

  • « kadm5_flush
  • kadm5_get_principal »
  • PHP Manual
  • KADM5 Функции
  • Gets all policies from the Kerberos database

kadm5_get_policies

(PECL kadm5 >= 0.2.3)

kadm5_get_policies — Gets all policies from the Kerberos database

Описание

array kadm5_get_policies ( resource $handle )

Gets an array containing the policies's names.

Список параметров

handle

A KADM5 handle.

Возвращаемые значения

Returns array of policies on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 kadm5_get_policies() example

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_policies</h1>\n";
foreach (kadm5_get_policies($handle) as $policy) {
    echo "$policy<br />\n";
}

kadm5_destroy($handle);
?>


Gets the principal's entries from the Kerberos database

  • « kadm5_get_policies
  • kadm5_get_principals »
  • PHP Manual
  • KADM5 Функции
  • Gets the principal's entries from the Kerberos database

kadm5_get_principal

(PECL kadm5 >= 0.2.3)

kadm5_get_principal — Gets the principal's entries from the Kerberos database

Описание

array kadm5_get_principal ( resource $handle , string $principal )

Gets the principal's entries from the Kerberos database.

Список параметров

handle

A KADM5 handle.

principal

The principal.

Возвращаемые значения

Returns array of options containing the following keys: KADM5_PRINCIPAL, KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_MOD_NAME, KADM5_MOD_TIME, KADM5_KVNO, KADM5_POLICY, KADM5_MAX_RLIFE, KADM5_LAST_SUCCESS, KADM5_LAST_FAILED, KADM5_FAIL_AUTH_COUNT on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 kadm5_get_principal() example

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_principal burbach@GONICUS.LOCAL</h1>\n";

$options = kadm5_get_principal($handle, "burbach@GONICUS.LOCAL" );

foreach ($options as $key => $value) {
    echo "$key: $value<br />\n";
}

kadm5_destroy($handle);
?>

Смотрите также

  • kadm5_get_principals() - Gets all principals from the Kerberos database


Gets all principals from the Kerberos database

  • « kadm5_get_principal
  • kadm5_init_with_password »
  • PHP Manual
  • KADM5 Функции
  • Gets all principals from the Kerberos database

kadm5_get_principals

(PECL kadm5 >= 0.2.3)

kadm5_get_principals — Gets all principals from the Kerberos database

Описание

array kadm5_get_principals ( resource $handle )

kadm5_get_principals() returns an array containing the principals's names.

Список параметров

handle

A KADM5 handle.

Возвращаемые значения

Returns array of principals on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 kadm5_get_principals() example

<?php
$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

print "<h1>get_principals</h1>\n";
foreach (kadm5_get_principals($handle) as $principal) {
    echo "$principal<br />\n";
}

kadm5_destroy($handle);
?>

Смотрите также

  • kadm5_get_principal() - Gets the principal's entries from the Kerberos database


Opens a connection to the KADM5 library

  • « kadm5_get_principals
  • kadm5_modify_principal »
  • PHP Manual
  • KADM5 Функции
  • Opens a connection to the KADM5 library

kadm5_init_with_password

(PECL kadm5 >= 0.2.3)

kadm5_init_with_password — Opens a connection to the KADM5 library

Описание

resource kadm5_init_with_password ( string $admin_server , string $realm , string $principal , string $password )

Opens a connection with the KADM5 library using the principal and the given password to obtain initial credentials from the admin_server.

Список параметров

admin_server

The server.

realm

Defines the authentication domain for the connection.

principal

The principal.

password

If password is omitted or is NULL, a random key will be generated.

Возвращаемые значения

Returns a KADM5 handle on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 KADM5 initialization example

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH | KRB5_KDB_DISALLOW_PROXIABLE;
$options = array(KADM5_PRINC_EXPIRE_TIME => 0,
                 KADM5_POLICY => "default",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_create_principal($handle, "burbach@GONICUS.LOCAL", "password", $options);

kadm5_destroy($handle);
?>

Примечания

Замечание:

Connection should be closed after use with kadm5_destroy().

Смотрите также

  • kadm5_destroy() - Closes the connection to the admin server and releases all related resources


Modifies a kerberos principal with the given parameters

  • « kadm5_init_with_password
  • Radius »
  • PHP Manual
  • KADM5 Функции
  • Modifies a kerberos principal with the given parameters

kadm5_modify_principal

(PECL kadm5 >= 0.2.3)

kadm5_modify_principal — Modifies a kerberos principal with the given parameters

Описание

bool kadm5_modify_principal ( resource $handle , string $principal , array $options )

Modifies a principal according to the given options.

Список параметров

handle

A KADM5 handle.

principal

The principal.

options

It is possible to specify several optional parameters within the array options. Allowed are the following options: KADM5_PRINC_EXPIRE_TIME, KADM5_PW_EXPIRATION, KADM5_ATTRIBUTES, KADM5_MAX_LIFE, KADM5_KVNO, KADM5_POLICY, KADM5_CLEARPOLICY, KADM5_MAX_RLIFE. KADM5_FAIL_AUTH_COUNT.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Example of modifying principal

<?php

$handle = kadm5_init_with_password("afs-1", "GONICUS.LOCAL", "admin/admin", "password");

$attributes = KRB5_KDB_REQUIRES_PRE_AUTH;
$options = array(KADM5_PRINC_EXPIRE_TIME => 3451234,
                 KADM5_POLICY => "gonicus",
                 KADM5_ATTRIBUTES => $attributes);

kadm5_modify_principal($handle, "burbach@GONICUS.LOCAL", $options);

kadm5_destroy($handle);
?>

Смотрите также

  • kadm5_create_principal() - Creates a kerberos principal with the given parameters
  • kadm5_delete_principal() - Deletes a kerberos principal


Radius

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • RADIUS Options
    • RADIUS Packet Types
    • RADIUS Attribute Types
    • RADIUS Vendor Specific Attribute Types
  • Примеры
  • Radius Функции
    • radius_acct_open — Creates a Radius handle for accounting
    • radius_add_server — Adds a server
    • radius_auth_open — Creates a Radius handle for authentication
    • radius_close — Frees all ressources
    • radius_config — Causes the library to read the given configuration file
    • radius_create_request — Create accounting or authentication request
    • radius_cvt_addr — Converts raw data to IP-Address
    • radius_cvt_int — Converts raw data to integer
    • radius_cvt_string — Converts raw data to string
    • radius_demangle_mppe_key — Derives mppe-keys from mangled data
    • radius_demangle — Demangles data
    • radius_get_attr — Extracts an attribute
    • radius_get_tagged_attr_data — Extracts the data from a tagged attribute
    • radius_get_tagged_attr_tag — Extracts the tag from a tagged attribute
    • radius_get_vendor_attr — Extracts a vendor specific attribute
    • radius_put_addr — Attaches an IP address attribute
    • radius_put_attr — Attaches a binary attribute
    • radius_put_int — Attaches an integer attribute
    • radius_put_string — Attaches a string attribute
    • radius_put_vendor_addr — Attaches a vendor specific IP address attribute
    • radius_put_vendor_attr — Attaches a vendor specific binary attribute
    • radius_put_vendor_int — Attaches a vendor specific integer attribute
    • radius_put_vendor_string — Attaches a vendor specific string attribute
    • radius_request_authenticator — Returns the request authenticator
    • radius_salt_encrypt_attr — Salt-encrypts a value
    • radius_send_request — Sends the request and waites for a reply
    • radius_server_secret — Returns the shared secret
    • radius_strerror — Returns an error message


Введение

This package is based on the libradius (Remote Authentication Dial In User Service) of FreeBSD. It allows clients to perform authentication and accounting by means of network requests to remote servers.

This PECL extension adds full support for Radius Authentication (» RFC 2865) and Radius Accounting (» RFC 2866). This package is available for Unix (tested on FreeBSD and Linux) and for Windows.

Замечание:

An exact description for libradius can be found » here. A detailed description of the configuration file can be found » here.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/radius.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Содержание

  • RADIUS Options
  • RADIUS Packet Types
  • RADIUS Attribute Types
  • RADIUS Vendor Specific Attribute Types

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

RADIUS_MPPE_KEY_LEN (integer)
The maximum length of MPPE keys.


RADIUS Options

Several RADIUS functions accept option flags as bitmasks. The constants representing those flags are listed below.

RADIUS_OPTION_SALT (integer)

When set, this option will result in the attribute value being salt-encrypted.

RADIUS_OPTION_TAGGED (integer)

When set, this option will result in the attribute value being tagged with the value of the tag parameter.


RADIUS Packet Types

RADIUS packets, whether requests or responses, always include a type. These constants are provided to make it easier to specify types when using radius_create_request() and when comparing the result of radius_send_request().

RADIUS_ACCESS_REQUEST (integer)

An Access-Request, used to authenticate a user against a RADIUS server. Access request packets must include a RADIUS_NAS_IP_ADDRESS or a RADIUS_NAS_IDENTIFIER attribute, must also include a RADIUS_USER_PASSWORD, RADIUS_CHAP_PASSWORD or a RADIUS_STATE attribute, and should include a RADIUS_USER_NAME attribute.

RADIUS_ACCESS_ACCEPT (integer)

An Access-Accept response to an Access-Request indicating that the RADIUS server authenticated the user successfully.

RADIUS_ACCESS_REJECT (integer)

An Access-Reject response to an Access-Request indicating that the RADIUS server could not authenticate the user.

RADIUS_ACCESS_CHALLENGE (integer)

An Access-Challenge response to an Access-Request indicating that the RADIUS server requires further information in another Access-Request before authenticating the user.

RADIUS_ACCOUNTING_REQUEST (integer)

An Accounting-Request, used to convey accounting information for a service to the RADIUS server.

RADIUS_ACCOUNTING_RESPONSE (integer)

An Accounting-Response response to an Accounting-Request.

RADIUS_COA_REQUEST (integer)

A CoA-Request, sent from the RADIUS server to indicate that the authorisations within the user session have changed. A response must be sent in the form of a CoA-ACK or a CoA-NAK.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_COA_ACK (integer)

A CoA-ACK, sent to the RADIUS server to indicate that the user authorisations have been updated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_COA_NAK (integer)

A CoA-NAK, sent to the RADIUS server to indicate that the user authorisations could not be updated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_DISCONNECT_REQUEST (integer)

A Disconnect-Request, sent from the RADIUS server to indicate that the user session must be terminated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_DISCONNECT_ACK (integer)

A Disconnect-ACK, sent to the RADIUS server to indicate that the user session has been terminated.

This constant is available in PECL radius 1.3.0 and later.

RADIUS_DISCONNECT_NAK (integer)

A Disconnect-NAK, sent to the RADIUS server to indicate that the user session could not be terminated.

This constant is available in PECL radius 1.3.0 and later.


RADIUS Attribute Types

These constants define RADIUS attribute types that can be used with
radius_put_addr(), radius_put_attr(),
radius_put_int() and
radius_put_string().

RADIUS_USER_NAME (integer)

The User-Name attribute. The attribute value is expected to be a string containing the name of the user being authenticated, and can be set using radius_put_attr().

RADIUS_USER_PASSWORD (integer)

The User-Password attribute. The attribute value is expected to be a string containing the user's password, and can be set using radius_put_attr(). This value will be obfuscated on transmission as described in » section 5.2 of RFC 2865.

RADIUS_CHAP_PASSWORD (integer)

The Chap-Password attribute. The attribute value is expected to be a string with the first byte containing the CHAP identifier, and the subsequent 16 bytes containing the MD5 hash of the CHAP identifier, the plaintext password and the CHAP challenge value concatenated together. Note that the CHAP challenge value should also be sent separately in a RADIUS_CHAP_CHALLENGE attribute.

Пример #1 Using CHAP passwords

<?php
// Firstly, we'll create an authentication handle and request.
$radh = radius_auth_open();
radius_add_server($radh, $server, $port, $secret, 3, 3);
radius_create_request($radh, RADIUS_ACCESS_REQUEST);

// Assuming $password contains the plaintext password, we now:

// Generate a challenge.
$challenge = mt_rand();

// Specify a CHAP identifier.
$ident = 1;

// Add the Chap-Password attribute.
$cp = md5(pack('Ca*', $ident, $password.$challenge), true);
radius_put_attr($radh, RADIUS_CHAP_PASSWORD, pack('C', $ident).$cp);

// Add the Chap-Challenge attribute.
radius_put_attr($radh, RADIUS_CHAP_CHALLENGE, $challenge);

/* From here, you would add the remaining attributes and
 * call radius_send_request(). */
?>

RADIUS_NAS_IP_ADDRESS (integer)

The NAS-IP-Address attribute. The attribute value is expected to the IP address of the RADIUS client encoded as an integer, which can be set using radius_put_addr().

RADIUS_NAS_PORT (integer)

The NAS-Port attribute. The attribute value is expected to be the physical port of the user on the RADIUS client encoded as an integer, which can be set using radius_put_int().

RADIUS_SERVICE_TYPE (integer)

The Service-Type attribute. The attribute value indicates the service type the user is requesting, and is expected to be an integer, which can be set using radius_put_int().

A number of constants are provided to represent the possible values of this attribute. They include:

  • RADIUS_LOGIN
  • RADIUS_FRAMED
  • RADIUS_CALLBACK_LOGIN
  • RADIUS_CALLBACK_FRAMED
  • RADIUS_OUTBOUND
  • RADIUS_ADMINISTRATIVE
  • RADIUS_NAS_PROMPT
  • RADIUS_AUTHENTICATE_ONLY
  • RADIUS_CALLBACK_NAS_PROMPT

RADIUS_FRAMED_PROTOCOL (integer)

The Framed-Protocol attribute. The attribute value is expected to be an integer indicating the framing to be used for framed access, and can be set using radius_put_int(). The possible attribute values include these constants:

  • RADIUS_PPP
  • RADIUS_SLIP
  • RADIUS_ARAP
  • RADIUS_GANDALF
  • RADIUS_XYLOGICS

RADIUS_FRAMED_IP_ADDRESS (integer)

The Framed-IP-Address attribute. The attribute value is expected to be the address of the user's network encoded as an integer, which can be set using radius_put_addr() and retrieved using radius_cvt_addr().

RADIUS_FRAMED_IP_NETMASK (integer)

The Framed-IP-Netmask attribute. The attribute value is expected to be the netmask of the user's network encoded as an integer, which can be set using radius_put_addr() and retrieved using radius_cvt_addr().

RADIUS_FRAMED_ROUTING (integer)

The Framed-Routing attribute. The attribute value is expected to be an integer indicating the routing method for the user, which can be set using radius_put_int().

Possible values include:

  • 0: No routing
  • 1: Send routing packets
  • 2: Listen for routing packets
  • 3: Send and listen

RADIUS_FILTER_ID (integer)

The Filter-ID attribute. The attribute value is expected to be an implementation-specific, human-readable string of filters, which can be set using radius_put_attr().

RADIUS_FRAMED_MTU (integer)

The Framed-MTU attribute. The attribute value is expected to be an integer indicating the MTU to be configured for the user, and can be set using radius_put_int().

RADIUS_FRAMED_COMPRESSION (integer)

The Framed-Compression attribute. The attribute value is expected to be an integer indicating the compression protocol to be used, and can be set using radius_put_int(). Possible values include these constants:

  • RADIUS_COMP_NONE: No compression
  • RADIUS_COMP_VJ: VJ TCP/IP header compression
  • RADIUS_COMP_IPXHDR: IPX header compression
  • RADIUS_COMP_STAC_LZS: Stac-LZS compression (added in PECL radius 1.3.0b2)

RADIUS_LOGIN_IP_HOST (integer)

The Login-IP-Host attribute. The attribute value is expected to the IP address to connect the user to, encoded as an integer, which can be set using radius_put_addr().

RADIUS_LOGIN_SERVICE (integer)

The Login-Service attribute. The attribute value is an integer indicating the service to connect the user to on the login host. The value can be converted to a PHP integer via radius_cvt_int().

RADIUS_LOGIN_TCP_PORT (integer)

The Login-TCP-Port attribute. The attribute value is an integer indicating the port to connect the user to on the login host. The value can be converted to a PHP integer via radius_cvt_int().

RADIUS_REPLY_MESSAGE (integer)

The Reply-Message attribute. The attribute value is a string containing text that may be displayed to the user in response to an access request.

RADIUS_CALLBACK_NUMBER (integer)

The Callback-Number attribute. The attribute value is a string containing the dialing string to use for callback.

RADIUS_CALLBACK_ID (integer)

The Callback-Id attribute. The attribute value is a string containing an implementation-specific name of the place to be called.

RADIUS_FRAMED_ROUTE (integer)

The Framed-Route attribute. The attribute value is a string containing an implementation-specific set of routes to be configured for the user.

RADIUS_FRAMED_IPX_NETWORK (integer)

The Framed-IPX-Network attribute. The attribute value is an integer containing the IPX network to be configured for the user, or 0xFFFFFFFE to indicate that the RADIUS client should select the network, and can be accessed via radius_cvt_int().

RADIUS_STATE (integer)

The State attribute. The attribute value is an implementation-defined string included in an Access-Challenge from a server that must be included in the subsequent Access-Request, and can be set using radius_put_attr().

RADIUS_CLASS (integer)

The Class attribute. The attribute value is an arbitrary string included in an Access-Accept message that should then be sent to the accounting server in Accounting-Request messages, and can be set using radius_put_attr().

RADIUS_VENDOR_SPECIFIC (integer)

The Vendor-Specific attribute. In general, vendor attribute values
should be set using radius_put_vendor_addr(),
radius_put_vendor_attr(),
radius_put_vendor_int() and
radius_put_vendor_string(), rather than directly.

This constant is mostly useful when interpreting vendor specific attributes in responses from a RADIUS server; when a vendor specific attribute is received, the radius_get_vendor_attr() function should be used to access the vendor ID, attribute type and attribute value.

RADIUS_SESSION_TIMEOUT (integer)

Session timeout

RADIUS_IDLE_TIMEOUT (integer)

Idle timeout

RADIUS_TERMINATION_ACTION (integer)

Termination action

RADIUS_CALLED_STATION_ID (integer)

Called Station Id

RADIUS_CALLING_STATION_ID (integer)

Calling Station Id

RADIUS_NAS_IDENTIFIER (integer)

NAS ID

RADIUS_PROXY_STATE (integer)

Proxy State

RADIUS_LOGIN_LAT_SERVICE (integer)

Login LAT Service

RADIUS_LOGIN_LAT_NODE (integer)

Login LAT Node

RADIUS_LOGIN_LAT_GROUP (integer)

Login LAT Group

RADIUS_FRAMED_APPLETALK_LINK (integer)

Framed Appletalk Link

RADIUS_FRAMED_APPLETALK_NETWORK (integer)

Framed Appletalk Network

RADIUS_FRAMED_APPLETALK_ZONE (integer)

Framed Appletalk Zone

RADIUS_CHAP_CHALLENGE (integer)

Challenge

RADIUS_NAS_PORT_TYPE (integer)

NAS port type, one of:

  • RADIUS_ASYNC
  • RADIUS_SYNC
  • RADIUS_ISDN_SYNC
  • RADIUS_ISDN_ASYNC_V120
  • RADIUS_ISDN_ASYNC_V110
  • RADIUS_VIRTUAL
  • RADIUS_PIAFS
  • RADIUS_HDLC_CLEAR_CHANNEL
  • RADIUS_X_25
  • RADIUS_X_75
  • RADIUS_G_3_FAX
  • RADIUS_SDSL
  • RADIUS_ADSL_CAP
  • RADIUS_ADSL_DMT
  • RADIUS_IDSL
  • RADIUS_ETHERNET
  • RADIUS_XDSL
  • RADIUS_CABLE
  • RADIUS_WIRELESS_OTHER
  • RADIUS_WIRELESS_IEEE_802_11

RADIUS_PORT_LIMIT (integer)

Port Limit

RADIUS_LOGIN_LAT_PORT (integer)

Login LAT Port

RADIUS_CONNECT_INFO (integer)

Connect info

RADIUS_ACCT_STATUS_TYPE (integer)

Accounting status type, one of:

  • RADIUS_START
  • RADIUS_STOP
  • RADIUS_ACCOUNTING_ON
  • RADIUS_ACCOUNTING_OFF

RADIUS_ACCT_DELAY_TIME (integer)

Accounting delay time

RADIUS_ACCT_INPUT_OCTETS (integer)

Accounting input bytes

RADIUS_ACCT_OUTPUT_OCTETS (integer)

Accounting output bytes

RADIUS_ACCT_SESSION_ID (integer)

Accounting session ID

RADIUS_ACCT_AUTHENTIC (integer)

Accounting authentic, one of:

  • RADIUS_AUTH_RADIUS
  • RADIUS_AUTH_LOCAL
  • RADIUS_AUTH_REMOTE

RADIUS_ACCT_SESSION_TIME (integer)

Accounting session time

RADIUS_ACCT_INPUT_PACKETS (integer)

Accounting input packets

RADIUS_ACCT_OUTPUT_PACKETS (integer)

Accounting output packets

RADIUS_ACCT_TERMINATE_CAUSE (integer)

Accounting terminate cause, one of:

  • RADIUS_TERM_USER_REQUEST
  • RADIUS_TERM_LOST_CARRIER
  • RADIUS_TERM_LOST_SERVICE
  • RADIUS_TERM_IDLE_TIMEOUT
  • RADIUS_TERM_SESSION_TIMEOUT
  • RADIUS_TERM_ADMIN_RESET
  • RADIUS_TERM_ADMIN_REBOOT
  • RADIUS_TERM_PORT_ERROR
  • RADIUS_TERM_NAS_ERROR
  • RADIUS_TERM_NAS_REQUEST
  • RADIUS_TERM_NAS_REBOOT
  • RADIUS_TERM_PORT_UNNEEDED
  • RADIUS_TERM_PORT_PREEMPTED
  • RADIUS_TERM_PORT_SUSPENDED
  • RADIUS_TERM_SERVICE_UNAVAILABLE
  • RADIUS_TERM_CALLBACK
  • RADIUS_TERM_USER_ERROR
  • RADIUS_TERM_HOST_REQUEST

RADIUS_ACCT_MULTI_SESSION_ID (integer)

Accounting multi session ID

RADIUS_ACCT_LINK_COUNT (integer)

Accounting link count


RADIUS Vendor Specific Attribute Types

RADIUS_VENDOR_MICROSOFT (integer)

Microsoft specific vendor attributes (» RFC 2548), one of:

  • RADIUS_MICROSOFT_MS_CHAP_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP_ERROR
  • RADIUS_MICROSOFT_MS_CHAP_PW_1
  • RADIUS_MICROSOFT_MS_CHAP_PW_2
  • RADIUS_MICROSOFT_MS_CHAP_LM_ENC_PW
  • RADIUS_MICROSOFT_MS_CHAP_NT_ENC_PW
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY
  • RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES
  • RADIUS_MICROSOFT_MS_RAS_VENDOR
  • RADIUS_MICROSOFT_MS_CHAP_DOMAIN
  • RADIUS_MICROSOFT_MS_CHAP_CHALLENGE
  • RADIUS_MICROSOFT_MS_CHAP_MPPE_KEYS
  • RADIUS_MICROSOFT_MS_BAP_USAGE
  • RADIUS_MICROSOFT_MS_LINK_UTILIZATION_THRESHOLD
  • RADIUS_MICROSOFT_MS_LINK_DROP_TIME_LIMIT
  • RADIUS_MICROSOFT_MS_MPPE_SEND_KEY
  • RADIUS_MICROSOFT_MS_MPPE_RECV_KEY
  • RADIUS_MICROSOFT_MS_RAS_VERSION
  • RADIUS_MICROSOFT_MS_OLD_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_NEW_ARAP_PASSWORD
  • RADIUS_MICROSOFT_MS_ARAP_PASSWORD_CHANGE_REASON
  • RADIUS_MICROSOFT_MS_FILTER
  • RADIUS_MICROSOFT_MS_ACCT_AUTH_TYPE
  • RADIUS_MICROSOFT_MS_ACCT_EAP_TYPE
  • RADIUS_MICROSOFT_MS_CHAP2_RESPONSE
  • RADIUS_MICROSOFT_MS_CHAP2_SUCCESS
  • RADIUS_MICROSOFT_MS_CHAP2_PW
  • RADIUS_MICROSOFT_MS_PRIMARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_DNS_SERVER
  • RADIUS_MICROSOFT_MS_PRIMARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_SECONDARY_NBNS_SERVER
  • RADIUS_MICROSOFT_MS_ARAP_CHALLENGE


Примеры

Howto start?

  • get a radius resource
  • configure the library
  • create the request
  • put attributes
  • send the request
  • receive attributes
  • close the radius resource (optional)
Take also a look at the examples in this package.

The package contains an example php script. This script demonstrates howto authenticate with radius using PAP or CHAP (md5). If you authenticate with Microsoft Radius servers then its not possible to use CHAP (md5). If you would like to authenticate with Microsoft Servers you have to use MS-CHAPv1 or MS-CHAPv2, but its more complicated, because you need md4, sha1 and des to generate the right data. The enclosed examples demonstrate all authentication-methods, including MS-CHAPv1 and MS-CHAPv2. To get the MS-CHAP to work you need the mcrypt and the mhash extension, starting with version 1.2 of the package, the mcrypt extension is no longer needed.


Radius Функции

Содержание

  • radius_acct_open — Creates a Radius handle for accounting
  • radius_add_server — Adds a server
  • radius_auth_open — Creates a Radius handle for authentication
  • radius_close — Frees all ressources
  • radius_config — Causes the library to read the given configuration file
  • radius_create_request — Create accounting or authentication request
  • radius_cvt_addr — Converts raw data to IP-Address
  • radius_cvt_int — Converts raw data to integer
  • radius_cvt_string — Converts raw data to string
  • radius_demangle_mppe_key — Derives mppe-keys from mangled data
  • radius_demangle — Demangles data
  • radius_get_attr — Extracts an attribute
  • radius_get_tagged_attr_data — Extracts the data from a tagged attribute
  • radius_get_tagged_attr_tag — Extracts the tag from a tagged attribute
  • radius_get_vendor_attr — Extracts a vendor specific attribute
  • radius_put_addr — Attaches an IP address attribute
  • radius_put_attr — Attaches a binary attribute
  • radius_put_int — Attaches an integer attribute
  • radius_put_string — Attaches a string attribute
  • radius_put_vendor_addr — Attaches a vendor specific IP address attribute
  • radius_put_vendor_attr — Attaches a vendor specific binary attribute
  • radius_put_vendor_int — Attaches a vendor specific integer attribute
  • radius_put_vendor_string — Attaches a vendor specific string attribute
  • radius_request_authenticator — Returns the request authenticator
  • radius_salt_encrypt_attr — Salt-encrypts a value
  • radius_send_request — Sends the request and waites for a reply
  • radius_server_secret — Returns the shared secret
  • radius_strerror — Returns an error message


Creates a Radius handle for accounting

  • « Radius Функции
  • radius_add_server »
  • PHP Manual
  • Radius Функции
  • Creates a Radius handle for accounting

radius_acct_open

(PECL radius >= 1.1.0)

radius_acct_open — Creates a Radius handle for accounting

Описание

resource radius_acct_open ( void )

Возвращаемые значения

Returns a handle on success, FALSE on error. This function only fails if insufficient memory is available.

Примеры

Пример #1 radius_acct_open() example

<?php
$res = radius_acct_open ()
    or die ("Could not create handle");
print("Handle successfully created");
?>


Adds a server

  • « radius_acct_open
  • radius_auth_open »
  • PHP Manual
  • Radius Функции
  • Adds a server

radius_add_server

(PECL radius >= 1.1.0)

radius_add_server — Adds a server

Описание

bool radius_add_server ( resource $radius_handle , string $hostname , int $port , string $secret , int $timeout , int $max_tries )

radius_add_server() may be called multiple times, and it may be used together with radius_config(). At most 10 servers may be specified. When multiple servers are given, they are tried in round-robin fashion until a valid response is received, or until each server's max_tries limit has been reached.

Список параметров

radius_handle

hostname

The hostname parameter specifies the server host, either as a fully qualified domain name or as a dotted-quad IP address in text form.

port

The port specifies the UDP port to contact on the server. If port is given as 0, the library looks up the radius/udp or radacct/udp service in the network services database, and uses the port found there. If no entry is found, the library uses the standard Radius ports, 1812 for authentication and 1813 for accounting.

secret

The shared secret for the server host is passed to the secret parameter. The Radius protocol ignores all but the leading 128 bytes of the shared secret.

timeout

The timeout for receiving replies from the server is passed to the timeout parameter, in units of seconds.

max_tries

The maximum number of repeated requests to make before giving up is passed into the max_tries.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 radius_add_server() example

<?php
if (!radius_add_server($res, 'radius.example.com', 1812, 'testing123', 3, 3)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br>";
    exit;
}
?>

Смотрите также

  • radius_config() - Causes the library to read the given configuration file


Creates a Radius handle for authentication

  • « radius_add_server
  • radius_close »
  • PHP Manual
  • Radius Функции
  • Creates a Radius handle for authentication

radius_auth_open

(PECL radius >= 1.1.0)

radius_auth_open — Creates a Radius handle for authentication

Описание

resource radius_auth_open ( void )

Возвращаемые значения

Returns a handle on success, FALSE on error. This function only fails if insufficient memory is available.

Примеры

Пример #1 radius_auth_open() example

<?php
$radh = radius_auth_open()
    or die ("Could not create handle");
echo "Handle successfully created";
?>


Frees all ressources

  • « radius_auth_open
  • radius_config »
  • PHP Manual
  • Radius Функции
  • Frees all ressources

radius_close

(PECL radius >= 1.1.0)

radius_close — Frees all ressources

Описание

bool radius_close ( resource $radius_handle )

It is not needed to call this function because php frees all resources at the end of each request.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Causes the library to read the given configuration file

  • « radius_close
  • radius_create_request »
  • PHP Manual
  • Radius Функции
  • Causes the library to read the given configuration file

radius_config

(PECL radius >= 1.1.0)

radius_config — Causes the library to read the given configuration file

Описание

bool radius_config ( resource $radius_handle , string $file )

Before issuing any Radius requests, the library must be made aware of the servers it can contact. The easiest way to configure the library is to call radius_config(). radius_config() causes the library to read a configuration file whose format is described in » radius.conf.

Список параметров

radius_handle

file

The pathname of the configuration file is passed as the file argument to radius_config(). The library can also be configured programmatically by calls to radius_add_server().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • radius_add_server() - Adds a server


Create accounting or authentication request

  • « radius_config
  • radius_cvt_addr »
  • PHP Manual
  • Radius Функции
  • Create accounting or authentication request

radius_create_request

(PECL radius >= 1.1.0)

radius_create_request — Create accounting or authentication request

Описание

bool radius_create_request ( resource $radius_handle , int $type )

A Radius request consists of a code specifying the kind of request, and zero or more attributes which provide additional information. To begin constructing a new request, call radius_create_request().

Замечание: Attention: You must call this function, before you can put any attribute!

Список параметров

radius_handle

type

Type is RADIUS_ACCESS_REQUEST or RADIUS_ACCOUNTING_REQUEST.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 radius_create_request() example

<?php
if (!radius_create_request($res, RADIUS_ACCESS_REQUEST)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Смотрите также

  • radius_send_request() - Sends the request and waites for a reply


Converts raw data to IP-Address

  • « radius_create_request
  • radius_cvt_int »
  • PHP Manual
  • Radius Функции
  • Converts raw data to IP-Address

radius_cvt_addr

(PECL radius >= 1.1.0)

radius_cvt_addr — Converts raw data to IP-Address

Описание

string radius_cvt_addr ( string $data )

Примеры

Пример #1 radius_cvt_addr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_IP_ADDRESS:
        $ip = radius_cvt_addr($data);
        echo "IP: $ip<br>\n";
        break;

    case RADIUS_FRAMED_IP_NETMASK:
        $mask = radius_cvt_addr($data);
        echo "MASK: $mask<br>\n";
        break;
    }
}
?>

Смотрите также

  • radius_cvt_int() - Converts raw data to integer
  • radius_cvt_string() - Converts raw data to string


Converts raw data to integer

  • « radius_cvt_addr
  • radius_cvt_string »
  • PHP Manual
  • Radius Функции
  • Converts raw data to integer

radius_cvt_int

(PECL radius >= 1.1.0)

radius_cvt_int — Converts raw data to integer

Описание

int radius_cvt_int ( string $data )

Примеры

Пример #1 radius_cvt_int() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FRAMED_MTU:
        $mtu = radius_cvt_int($data);
        echo "MTU: $mtu<br>\n";
        break;
    }
}
?>

Смотрите также

  • radius_cvt_addr() - Converts raw data to IP-Address
  • radius_cvt_string() - Converts raw data to string


Converts raw data to string

  • « radius_cvt_int
  • radius_demangle_mppe_key »
  • PHP Manual
  • Radius Функции
  • Converts raw data to string

radius_cvt_string

(PECL radius >= 1.1.0)

radius_cvt_string — Converts raw data to string

Описание

string radius_cvt_string ( string $data )

Примеры

Пример #1 radius_cvt_string() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    switch ($attr) {

    case RADIUS_FILTER_ID:
        $id = radius_cvt_string($data);
        echo "Filter ID: $id<br>\n";
        break;
    }
}
?>

Смотрите также

  • radius_cvt_addr() - Converts raw data to IP-Address
  • radius_cvt_int() - Converts raw data to integer


Derives mppe-keys from mangled data

  • « radius_cvt_string
  • radius_demangle »
  • PHP Manual
  • Radius Функции
  • Derives mppe-keys from mangled data

radius_demangle_mppe_key

(PECL radius >= 1.2.0)

radius_demangle_mppe_key — Derives mppe-keys from mangled data

Описание

string radius_demangle_mppe_key ( resource $radius_handle , string $mangled )

When using MPPE with MS-CHAPv2, the send- and recv-keys are mangled (see » RFC 2548), however this function is useless, because I don't think that there is or will be a PPTP-MPPE implementation in PHP.

Возвращаемые значения

Returns the demangled string, or FALSE on error.


Demangles data

  • « radius_demangle_mppe_key
  • radius_get_attr »
  • PHP Manual
  • Radius Функции
  • Demangles data

radius_demangle

(PECL radius >= 1.2.0)

radius_demangle — Demangles data

Описание

string radius_demangle ( resource $radius_handle , string $mangled )

Some data (Passwords, MS-CHAPv1 MPPE-Keys) is mangled for security reasons, and must be demangled before you can use them.

Возвращаемые значения

Returns the demangled string, or FALSE on error.


Extracts an attribute

  • « radius_demangle
  • radius_get_tagged_attr_data »
  • PHP Manual
  • Radius Функции
  • Extracts an attribute

radius_get_attr

(PECL radius >= 1.1.0)

radius_get_attr — Extracts an attribute

Описание

mixed radius_get_attr ( resource $radius_handle )

Like Radius requests, each response may contain zero or more attributes. After a response has been received successfully by radius_send_request(), its attributes can be extracted one by one using radius_get_attr(). Each time radius_get_attr() is called, it gets the next attribute from the current response.

Возвращаемые значения

Returns an associative array containing the attribute-type and the data, or error number <= 0.

Примеры

Пример #1 radius_get_attr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Got Attr:%d %d Bytes %s\n", $attr, strlen($data), bin2hex($data));
}
?>

Смотрите также

  • radius_put_attr() - Attaches a binary attribute
  • radius_get_vendor_attr() - Extracts a vendor specific attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute
  • radius_send_request() - Sends the request and waites for a reply


Extracts the data from a tagged attribute

  • « radius_get_attr
  • radius_get_tagged_attr_tag »
  • PHP Manual
  • Radius Функции
  • Extracts the data from a tagged attribute

radius_get_tagged_attr_data

(PECL radius >= 1.3.0)

radius_get_tagged_attr_data — Extracts the data from a tagged attribute

Описание

string radius_get_tagged_attr_data ( string $data )

If a tagged attribute has been returned from radius_get_attr(), radius_get_tagged_attr_data() will return the data from the attribute.

Список параметров

data

The tagged attribute to be decoded.

Возвращаемые значения

Returns the data from the tagged attribute или FALSE в случае возникновения ошибки.

Примеры

Пример #1 radius_get_tagged_attr_data() example

<?php
while ($resa = radius_get_attr($res)) {
    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    $tag = radius_get_tagged_attr_tag($data);
    $value = radius_get_tagged_attr_data($data);

    printf("Got tagged attribute with tag %d and value %s\n", $tag, $value);
}
?>

Смотрите также

  • radius_get_attr() - Extracts an attribute
  • radius_get_tagged_attr_tag() - Extracts the tag from a tagged attribute


Extracts the tag from a tagged attribute

  • « radius_get_tagged_attr_data
  • radius_get_vendor_attr »
  • PHP Manual
  • Radius Функции
  • Extracts the tag from a tagged attribute

radius_get_tagged_attr_tag

(PECL radius >= 1.3.0)

radius_get_tagged_attr_tag — Extracts the tag from a tagged attribute

Описание

integer radius_get_tagged_attr_tag ( string $data )

If a tagged attribute has been returned from radius_get_attr(), radius_get_tagged_attr_data() will return the tag from the attribute.

Список параметров

data

The tagged attribute to be decoded.

Возвращаемые значения

Returns the tag from the tagged attribute или FALSE в случае возникновения ошибки.

Примеры

Пример #1 radius_get_tagged_attr_tag() example

<?php
while ($resa = radius_get_attr($res)) {
    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];

    $tag = radius_get_tagged_attr_tag($data);
    $value = radius_get_tagged_attr_data($data);

    printf("Got tagged attribute with tag %d and value %s\n", $tag, $value);
}
?>

Смотрите также

  • radius_get_attr() - Extracts an attribute
  • radius_get_tagged_attr_data() - Extracts the data from a tagged attribute


Extracts a vendor specific attribute

  • « radius_get_tagged_attr_tag
  • radius_put_addr »
  • PHP Manual
  • Radius Функции
  • Extracts a vendor specific attribute

radius_get_vendor_attr

(PECL radius >= 1.1.0)

radius_get_vendor_attr — Extracts a vendor specific attribute

Описание

array radius_get_vendor_attr ( string $data )

If radius_get_attr() returns RADIUS_VENDOR_SPECIFIC, radius_get_vendor_attr() may be called to determine the vendor.

Возвращаемые значения

Returns an associative array containing the attribute-type, vendor and the data, or FALSE on error.

Примеры

Пример #1 radius_get_vendor_attr() example

<?php
while ($resa = radius_get_attr($res)) {

    if (!is_array($resa)) {
        printf ("Error getting attribute: %s\n",  radius_strerror($res));
        exit;
    }

    $attr = $resa['attr'];
    $data = $resa['data'];
    printf("Got Attr:%d %d Bytes %s\n", $attr, strlen($data), bin2hex($data));
    if ($attr == RADIUS_VENDOR_SPECIFIC) {

        $resv = radius_get_vendor_attr($data);
        if (is_array($resv)) {
            $vendor = $resv['vendor'];
            $attrv = $resv['attr'];
            $datav = $resv['data'];
            printf("Got Vendor Attr:%d %d Bytes %s\n", $attrv, strlen($datav), bin2hex($datav));
        }

    }
}
?>

Смотрите также

  • radius_get_attr() - Extracts an attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute


Attaches an IP address attribute

  • « radius_get_vendor_attr
  • radius_put_attr »
  • PHP Manual
  • Radius Функции
  • Attaches an IP address attribute

radius_put_addr

(PECL radius >= 1.1.0)

radius_put_addr — Attaches an IP address attribute

Описание

bool radius_put_addr ( resource $radius_handle , int $type , string $addr [, int $options = 0 [, int $tag ]] )

Attaches an IP address attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

addr

An IPv4 address in string form, such as 10.0.0.1.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.


Attaches a binary attribute

  • « radius_put_addr
  • radius_put_int »
  • PHP Manual
  • Radius Функции
  • Attaches a binary attribute

radius_put_attr

(PECL radius >= 1.1.0)

radius_put_attr — Attaches a binary attribute

Описание

bool radius_put_attr ( resource $radius_handle , int $type , string $value [, int $options = 0 [, int $tag ]] )

Attaches a binary attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

value

The attribute value, which will be treated as a raw binary string.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 radius_put_attr() example

<?php
mt_srand(time());
$chall = mt_rand();
$chapval = md5(pack('Ca*',1 , 'sepp' . $chall));
$pass = pack('CH*', 1, $chapval);
if (!radius_put_attr($res, RADIUS_CHAP_PASSWORD, $pass)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Смотрите также

  • radius_get_attr() - Extracts an attribute
  • radius_get_vendor_attr() - Extracts a vendor specific attribute
  • radius_put_vendor_attr() - Attaches a vendor specific binary attribute


Attaches an integer attribute

  • « radius_put_attr
  • radius_put_string »
  • PHP Manual
  • Radius Функции
  • Attaches an integer attribute

radius_put_int

(PECL radius >= 1.1.0)

radius_put_int — Attaches an integer attribute

Описание

bool radius_put_int ( resource $radius_handle , int $type , int $value [, int $options = 0 [, int $tag ]] )

Attaches an integer attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

value

The attribute value.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Примеры

Пример #1 radius_put_int() example

<?php
if (!radius_put_int($res, RAD_FRAMED_PROTOCOL, RAD_PPP)) {
   echo 'RadiusError:' . radius_strerror($res). "\n<br />";
   exit;
}
?>

Смотрите также

  • radius_put_string() - Attaches a string attribute
  • radius_put_vendor_int() - Attaches a vendor specific integer attribute
  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a string attribute

  • « radius_put_int
  • radius_put_vendor_addr »
  • PHP Manual
  • Radius Функции
  • Attaches a string attribute

radius_put_string

(PECL radius >= 1.1.0)

radius_put_string — Attaches a string attribute

Описание

bool radius_put_string ( resource $radius_handle , int $type , string $value [, int $options = 0 [, int $tag ]] )

Attaches a string attribute to the current RADIUS request. In general, radius_put_attr() is a more useful function for attaching string attributes, as it is binary safe.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

type

Тип атрибута.

value

The attribute value. This value is expected by the underlying library to be null terminated, therefore this parameter is not binary safe.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Примеры

Пример #1 radius_put_string() example

<?php
if (!radius_put_string($res, RADIUS_USER_NAME, 'billy')) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Смотрите также

  • radius_put_int() - Attaches an integer attribute
  • radius_put_vendor_int() - Attaches a vendor specific integer attribute
  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a vendor specific IP address attribute

  • « radius_put_string
  • radius_put_vendor_attr »
  • PHP Manual
  • Radius Функции
  • Attaches a vendor specific IP address attribute

radius_put_vendor_addr

(PECL radius >= 1.1.0)

radius_put_vendor_addr — Attaches a vendor specific IP address attribute

Описание

bool radius_put_vendor_addr ( resource $radius_handle , int $vendor , int $type , string $addr )

Attaches an IP address vendor specific attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

addr

An IPv4 address in string form, such as 10.0.0.1.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.


Attaches a vendor specific binary attribute

  • « radius_put_vendor_addr
  • radius_put_vendor_int »
  • PHP Manual
  • Radius Функции
  • Attaches a vendor specific binary attribute

radius_put_vendor_attr

(PECL radius >= 1.1.0)

radius_put_vendor_attr — Attaches a vendor specific binary attribute

Описание

bool radius_put_vendor_attr ( resource $radius_handle , int $vendor , int $type , string $value [, int $options = 0 [, int $tag ]] )

Attaches a vendor specific binary attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

value

The attribute value, which will be treated as a raw binary string.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Примеры

Пример #1 radius_put_vendor_attr() example

<?php
if (!radius_put_vendor_attr($res, RADIUS_VENDOR_MICROSOFT, RAD_MICROSOFT_MS_CHAP_CHALLENGE, $challenge)) {
    echo 'RadiusError:' . radius_strerror($res). "\n<br />";
    exit;
}
?>

Смотрите также

  • radius_get_vendor_attr() - Extracts a vendor specific attribute


Attaches a vendor specific integer attribute

  • « radius_put_vendor_attr
  • radius_put_vendor_string »
  • PHP Manual
  • Radius Функции
  • Attaches a vendor specific integer attribute

radius_put_vendor_int

(PECL radius >= 1.1.0)

radius_put_vendor_int — Attaches a vendor specific integer attribute

Описание

bool radius_put_vendor_int ( resource $radius_handle , int $vendor , int $type , int $value [, int $options = 0 [, int $tag ]] )

Attaches a vendor specific integer attribute to the current RADIUS request.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

value

The attribute value.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Смотрите также

  • radius_put_vendor_string() - Attaches a vendor specific string attribute


Attaches a vendor specific string attribute

  • « radius_put_vendor_int
  • radius_request_authenticator »
  • PHP Manual
  • Radius Функции
  • Attaches a vendor specific string attribute

radius_put_vendor_string

(PECL radius >= 1.1.0)

radius_put_vendor_string — Attaches a vendor specific string attribute

Описание

bool radius_put_vendor_string ( resource $radius_handle , int $vendor , int $type , string $value [, int $options = 0 [, int $tag ]] )

Attaches a vendor specific string attribute to the current RADIUS request. In general, radius_put_vendor_attr() is a more useful function for attaching string attributes, as it is binary safe.

Замечание:

Перед вызовом данной функции необходимо создать запрос с помощью функции radius_create_request().

Список параметров

radius_handle

Ресурс RADIUS.

vendor

ID производителя (vendor).

type

Тип атрибута.

value

The attribute value. This value is expected by the underlying library to be null terminated, therefore this parameter is not binary safe.

options

Битовая маска опций атрибута. В качестве значений можно использовать RADIUS_OPTION_TAGGED и RADIUS_OPTION_SALT.

tag

Тег атрибута. Данный параметр игнорируется, если не установлена опция RADIUS_OPTION_TAGGED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
PECL radius 1.3.0 | The options and tag parameters were added.

Смотрите также

  • radius_put_vendor_int() - Attaches a vendor specific integer attribute


Returns the request authenticator

  • « radius_put_vendor_string
  • radius_salt_encrypt_attr »
  • PHP Manual
  • Radius Функции
  • Returns the request authenticator

radius_request_authenticator

(PECL radius >= 1.1.0)

radius_request_authenticator — Returns the request authenticator

Описание

string radius_request_authenticator ( resource $radius_handle )

The request authenticator is needed for demangling mangled data like passwords and encryption-keys.

Возвращаемые значения

Returns the request authenticator as string, or FALSE on error.

Смотрите также

  • radius_demangle() - Demangles data


Salt-encrypts a value

  • « radius_request_authenticator
  • radius_send_request »
  • PHP Manual
  • Radius Функции
  • Salt-encrypts a value

radius_salt_encrypt_attr

(PECL radius >= 1.3.0)

radius_salt_encrypt_attr — Salt-encrypts a value

Описание

string radius_salt_encrypt_attr ( resource $radius_handle , string $data )

Applies the RADIUS salt-encryption algorithm to the given value.

In general, this is achieved automatically by providing the RADIUS_OPTION_SALT option to an attribute setter function, but this function can be used if low-level request construction is required.

Список параметров

data

The data to be salt-encrypted.

Возвращаемые значения

Returns the salt-encrypted data или FALSE в случае возникновения ошибки.

Смотрите также

  • radius_put_addr() - Attaches an IP address attribute
  • radius_put_attr() - Attaches a binary attribute
  • radius_put_int() - Attaches an integer attribute
  • radius_put_string() - Attaches a string attribute


Sends the request and waites for a reply

  • « radius_salt_encrypt_attr
  • radius_server_secret »
  • PHP Manual
  • Radius Функции
  • Sends the request and waites for a reply

radius_send_request

(PECL radius >= 1.1.0)

radius_send_request — Sends the request and waites for a reply

Описание

int radius_send_request ( resource $radius_handle )

After the Radius request has been constructed, it is sent by radius_send_request().

The radius_send_request() function sends the request and waits for a valid reply, retrying the defined servers in round-robin fashion as necessary.

Возвращаемые значения

If a valid response is received, radius_send_request() returns the Radius code which specifies the type of the response. This will typically be RADIUS_ACCESS_ACCEPT, RADIUS_ACCESS_REJECT, or RADIUS_ACCESS_CHALLENGE. If no valid response is received, radius_send_request() returns FALSE.

Смотрите также

  • radius_create_request() - Create accounting or authentication request


Returns the shared secret

  • « radius_send_request
  • radius_strerror »
  • PHP Manual
  • Radius Функции
  • Returns the shared secret

radius_server_secret

(PECL radius >= 1.1.0)

radius_server_secret — Returns the shared secret

Описание

string radius_server_secret ( resource $radius_handle )

The shared secret is needed as salt for demangling mangled data like passwords and encryption-keys.

Возвращаемые значения

Returns the server's shared secret as string, or FALSE on error.


Returns an error message

  • « radius_server_secret
  • Расширения для работы с командной строкой »
  • PHP Manual
  • Radius Функции
  • Returns an error message

radius_strerror

(PECL radius >= 1.1.0)

radius_strerror — Returns an error message

Описание

string radius_strerror ( resource $radius_handle )

If Radius-functions fail then they record an error message. This error message can be retrieved with this function.

Возвращаемые значения

Returns error messages as string from failed radius functions.


Расширения для работы с командной строкой

  • Ncurses — Ncurses Terminal Screen Control
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Ncurses Функции
  • Newt
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Newt Функции
  • Readline — GNU Readline
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Readline Функции


Ncurses Terminal Screen Control

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Error codes
    • Colors
    • Keys
    • Mouse
  • Ncurses Функции
    • ncurses_addch — Add character at current position and advance cursor
    • ncurses_addchnstr — Add attributed string with specified length at current position
    • ncurses_addchstr — Add attributed string at current position
    • ncurses_addnstr — Add string with specified length at current position
    • ncurses_addstr — Output text at current position
    • ncurses_assume_default_colors — Define default colors for color 0
    • ncurses_attroff — Turn off the given attributes
    • ncurses_attron — Turn on the given attributes
    • ncurses_attrset — Set given attributes
    • ncurses_baudrate — Returns baudrate of terminal
    • ncurses_beep — Let the terminal beep
    • ncurses_bkgd — Set background property for terminal screen
    • ncurses_bkgdset — Control screen background
    • ncurses_border — Draw a border around the screen using attributed characters
    • ncurses_bottom_panel — Moves a visible panel to the bottom of the stack
    • ncurses_can_change_color — Checks if terminal color definitions can be changed
    • ncurses_cbreak — Switch off input buffering
    • ncurses_clear — Clear screen
    • ncurses_clrtobot — Clear screen from current position to bottom
    • ncurses_clrtoeol — Clear screen from current position to end of line
    • ncurses_color_content — Retrieves RGB components of a color
    • ncurses_color_set — Set active foreground and background colors
    • ncurses_curs_set — Set cursor state
    • ncurses_def_prog_mode — Saves terminals (program) mode
    • ncurses_def_shell_mode — Saves terminals (shell) mode
    • ncurses_define_key — Define a keycode
    • ncurses_del_panel — Remove panel from the stack and delete it (but not the associated window)
    • ncurses_delay_output — Delay output on terminal using padding characters
    • ncurses_delch — Delete character at current position, move rest of line left
    • ncurses_deleteln — Delete line at current position, move rest of screen up
    • ncurses_delwin — Delete a ncurses window
    • ncurses_doupdate — Write all prepared refreshes to terminal
    • ncurses_echo — Activate keyboard input echo
    • ncurses_echochar — Single character output including refresh
    • ncurses_end — Stop using ncurses, clean up the screen
    • ncurses_erase — Erase terminal screen
    • ncurses_erasechar — Returns current erase character
    • ncurses_filter — Set LINES for iniscr() and newterm() to 1
    • ncurses_flash — Flash terminal screen (visual bell)
    • ncurses_flushinp — Flush keyboard input buffer
    • ncurses_getch — Read a character from keyboard
    • ncurses_getmaxyx — Returns the size of a window
    • ncurses_getmouse — Reads mouse event
    • ncurses_getyx — Returns the current cursor position for a window
    • ncurses_halfdelay — Put terminal into halfdelay mode
    • ncurses_has_colors — Checks if terminal has color capabilities
    • ncurses_has_ic — Check for insert- and delete-capabilities
    • ncurses_has_il — Check for line insert- and delete-capabilities
    • ncurses_has_key — Check for presence of a function key on terminal keyboard
    • ncurses_hide_panel — Remove panel from the stack, making it invisible
    • ncurses_hline — Draw a horizontal line at current position using an attributed character and max. n characters long
    • ncurses_inch — Get character and attribute at current position
    • ncurses_init_color — Define a terminal color
    • ncurses_init_pair — Define a color pair
    • ncurses_init — Initialize ncurses
    • ncurses_insch — Insert character moving rest of line including character at current position
    • ncurses_insdelln — Insert lines before current line scrolling down (negative numbers delete and scroll up)
    • ncurses_insertln — Insert a line, move rest of screen down
    • ncurses_insstr — Insert string at current position, moving rest of line right
    • ncurses_instr — Reads string from terminal screen
    • ncurses_isendwin — Ncurses is in endwin mode, normal screen output may be performed
    • ncurses_keyok — Enable or disable a keycode
    • ncurses_keypad — Turns keypad on or off
    • ncurses_killchar — Returns current line kill character
    • ncurses_longname — Returns terminals description
    • ncurses_meta — Enables/Disable 8-bit meta key information
    • ncurses_mouse_trafo — Transforms coordinates
    • ncurses_mouseinterval — Set timeout for mouse button clicks
    • ncurses_mousemask — Sets mouse options
    • ncurses_move_panel — Moves a panel so that its upper-left corner is at [startx, starty]
    • ncurses_move — Move output position
    • ncurses_mvaddch — Move current position and add character
    • ncurses_mvaddchnstr — Move position and add attributed string with specified length
    • ncurses_mvaddchstr — Move position and add attributed string
    • ncurses_mvaddnstr — Move position and add string with specified length
    • ncurses_mvaddstr — Move position and add string
    • ncurses_mvcur — Move cursor immediately
    • ncurses_mvdelch — Move position and delete character, shift rest of line left
    • ncurses_mvgetch — Move position and get character at new position
    • ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long
    • ncurses_mvinch — Move position and get attributed character at new position
    • ncurses_mvvline — Set new position and draw a vertical line using an attributed character and max. n characters long
    • ncurses_mvwaddstr — Add string at new position in window
    • ncurses_napms — Sleep
    • ncurses_new_panel — Create a new panel and associate it with window
    • ncurses_newpad — Creates a new pad (window)
    • ncurses_newwin — Create a new window
    • ncurses_nl — Translate newline and carriage return / line feed
    • ncurses_nocbreak — Switch terminal to cooked mode
    • ncurses_noecho — Switch off keyboard input echo
    • ncurses_nonl — Do not translate newline and carriage return / line feed
    • ncurses_noqiflush — Do not flush on signal characters
    • ncurses_noraw — Switch terminal out of raw mode
    • ncurses_pair_content — Retrieves foreground and background colors of a color pair
    • ncurses_panel_above — Returns the panel above panel
    • ncurses_panel_below — Returns the panel below panel
    • ncurses_panel_window — Returns the window associated with panel
    • ncurses_pnoutrefresh — Copies a region from a pad into the virtual screen
    • ncurses_prefresh — Copies a region from a pad into the virtual screen
    • ncurses_putp — Apply padding information to the string and output it
    • ncurses_qiflush — Flush on signal characters
    • ncurses_raw — Switch terminal into raw mode
    • ncurses_refresh — Refresh screen
    • ncurses_replace_panel — Replaces the window associated with panel
    • ncurses_reset_prog_mode — Resets the prog mode saved by def_prog_mode
    • ncurses_reset_shell_mode — Resets the shell mode saved by def_shell_mode
    • ncurses_resetty — Restores saved terminal state
    • ncurses_savetty — Saves terminal state
    • ncurses_scr_dump — Dump screen content to file
    • ncurses_scr_init — Initialize screen from file dump
    • ncurses_scr_restore — Restore screen from file dump
    • ncurses_scr_set — Inherit screen from file dump
    • ncurses_scrl — Scroll window content up or down without changing current position
    • ncurses_show_panel — Places an invisible panel on top of the stack, making it visible
    • ncurses_slk_attr — Returns current soft label key attribute
    • ncurses_slk_attroff — Turn off the given attributes for soft function-key labels
    • ncurses_slk_attron — Turn on the given attributes for soft function-key labels
    • ncurses_slk_attrset — Set given attributes for soft function-key labels
    • ncurses_slk_clear — Clears soft labels from screen
    • ncurses_slk_color — Sets color for soft label keys
    • ncurses_slk_init — Initializes soft label key functions
    • ncurses_slk_noutrefresh — Copies soft label keys to virtual screen
    • ncurses_slk_refresh — Copies soft label keys to screen
    • ncurses_slk_restore — Restores soft label keys
    • ncurses_slk_set — Sets function key labels
    • ncurses_slk_touch — Forces output when ncurses_slk_noutrefresh is performed
    • ncurses_standend — Stop using 'standout' attribute
    • ncurses_standout — Start using 'standout' attribute
    • ncurses_start_color — Initializes color functionality
    • ncurses_termattrs — Returns a logical OR of all attribute flags supported by terminal
    • ncurses_termname — Returns terminals (short)-name
    • ncurses_timeout — Set timeout for special key sequences
    • ncurses_top_panel — Moves a visible panel to the top of the stack
    • ncurses_typeahead — Specify different filedescriptor for typeahead checking
    • ncurses_ungetch — Put a character back into the input stream
    • ncurses_ungetmouse — Pushes mouse event to queue
    • ncurses_update_panels — Refreshes the virtual screen to reflect the relations between panels in the stack
    • ncurses_use_default_colors — Assign terminal default colors to color id -1
    • ncurses_use_env — Control use of environment information about terminal size
    • ncurses_use_extended_names — Control use of extended names in terminfo descriptions
    • ncurses_vidattr — Display the string on the terminal in the video attribute mode
    • ncurses_vline — Draw a vertical line at current position using an attributed character and max. n characters long
    • ncurses_waddch — Adds character at current position in a window and advance cursor
    • ncurses_waddstr — Outputs text at current postion in window
    • ncurses_wattroff — Turns off attributes for a window
    • ncurses_wattron — Turns on attributes for a window
    • ncurses_wattrset — Set the attributes for a window
    • ncurses_wborder — Draws a border around the window using attributed characters
    • ncurses_wclear — Clears window
    • ncurses_wcolor_set — Sets windows color pairings
    • ncurses_werase — Erase window contents
    • ncurses_wgetch — Reads a character from keyboard (window)
    • ncurses_whline — Draws a horizontal line in a window at current position using an attributed character and max. n characters long
    • ncurses_wmouse_trafo — Transforms window/stdscr coordinates
    • ncurses_wmove — Moves windows output position
    • ncurses_wnoutrefresh — Copies window to virtual screen
    • ncurses_wrefresh — Refresh window on terminal screen
    • ncurses_wstandend — End standout mode for a window
    • ncurses_wstandout — Enter standout mode for a window
    • ncurses_wvline — Draws a vertical line in a window at current position using an attributed character and max. n characters long


Введение

ncurses (new curses) is a free software emulation of curses in System V Rel 4.0 (and above). It uses terminfo format, supports pads, colors, multiple highlights, form characters and function key mapping. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts meant using PHP from the command line.

The features available, such as colors, depend on the terminal that you are using. Use functions such as ncurses_has_colors(), ncurses_can_change_color(), and ncurses_has_ic() to check for individual capabilities.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.3.0.

ncurses is available for the following platforms:

  • AIX
  • BeOS
  • BSD variants (FreeBSD, NetBSD, OpenBSD)
  • Cygwin
  • Digital Unix (aka OSF1)
  • GNU/Linux
  • HPUX
  • IRIX64
  • Mac OS X
  • OS/2
  • QNX
  • SCO OpenServer
  • Solaris
  • Tru64


Требования

You need the ncurses libraries and headerfiles. Download the latest version from the » ftp://ftp.gnu.org/pub/gnu/ncurses/ or from an other GNU-Mirror.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/ncurses.

Wide character CRT screen handling (ncursesw) support was added in version 1.0.1 of this PECL extension.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

This extension defines window, panel and pad resources.


Предопределенные константы

Содержание

  • Error codes
  • Colors
  • Keys
  • Mouse

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Error codes

On error ncurses functions return -1. Some functions return 0 on success. See the relevant pages in the documentation for actual return values.


Colors

ncurses color constants
constant | meaning
NCURSES_COLOR_BLACK | no color (black)
NCURSES_COLOR_WHITE | white
NCURSES_COLOR_RED | red - supported when terminal is in color mode
NCURSES_COLOR_GREEN | green - supported when terminal is in color mode
NCURSES_COLOR_YELLOW | yellow - supported when terminal is in color mode
NCURSES_COLOR_BLUE | blue - supported when terminal is in color mode
NCURSES_COLOR_CYAN | cyan - supported when terminal is in color mode
NCURSES_COLOR_MAGENTA | magenta - supported when terminal is in color mode


Keys

ncurses key constants
constant | meaning
NCURSES_KEY_F0 - NCURSES_KEY_F64 | function keys F1 - F64
NCURSES_KEY_DOWN | down arrow
NCURSES_KEY_UP | up arrow
NCURSES_KEY_LEFT | left arrow
NCURSES_KEY_RIGHT | right arrow
NCURSES_KEY_HOME | home key (upward+left arrow)
NCURSES_KEY_BACKSPACE | backspace
NCURSES_KEY_DL | delete line
NCURSES_KEY_IL | insert line
NCURSES_KEY_DC | delete character
NCURSES_KEY_IC | insert char or enter insert mode
NCURSES_KEY_EIC | exit insert char mode
NCURSES_KEY_CLEAR | clear screen
NCURSES_KEY_EOS | clear to end of screen
NCURSES_KEY_EOL | clear to end of line
NCURSES_KEY_SF | scroll one line forward
NCURSES_KEY_SR | scroll one line backward
NCURSES_KEY_NPAGE | next page
NCURSES_KEY_PPAGE | previous page
NCURSES_KEY_STAB | set tab
NCURSES_KEY_CTAB | clear tab
NCURSES_KEY_CATAB | clear all tabs
NCURSES_KEY_SRESET | soft (partial) reset
NCURSES_KEY_RESET | reset or hard reset
NCURSES_KEY_PRINT | print
NCURSES_KEY_LL | lower left
NCURSES_KEY_A1 | upper left of keypad
NCURSES_KEY_A3 | upper right of keypad
NCURSES_KEY_B2 | center of keypad
NCURSES_KEY_C1 | lower left of keypad
NCURSES_KEY_C3 | lower right of keypad
NCURSES_KEY_BTAB | back tab
NCURSES_KEY_BEG | beginning
NCURSES_KEY_CANCEL | cancel
NCURSES_KEY_CLOSE | close
NCURSES_KEY_COMMAND | cmd (command)
NCURSES_KEY_COPY | copy
NCURSES_KEY_CREATE | create
NCURSES_KEY_END | end
NCURSES_KEY_EXIT | exit
NCURSES_KEY_FIND | find
NCURSES_KEY_HELP | help
NCURSES_KEY_MARK | mark
NCURSES_KEY_MESSAGE | message
NCURSES_KEY_MOVE | move
NCURSES_KEY_NEXT | next
NCURSES_KEY_OPEN | open
NCURSES_KEY_OPTIONS | options
NCURSES_KEY_PREVIOUS | previous
NCURSES_KEY_REDO | redo
NCURSES_KEY_REFERENCE | ref (reference)
NCURSES_KEY_REFRESH | refresh
NCURSES_KEY_REPLACE | replace
NCURSES_KEY_RESTART | restart
NCURSES_KEY_RESUME | resume
NCURSES_KEY_SAVE | save
NCURSES_KEY_SBEG | shiftet beg (beginning)
NCURSES_KEY_SCANCEL | shifted cancel
NCURSES_KEY_SCOMMAND | shifted command
NCURSES_KEY_SCOPY | shifted copy
NCURSES_KEY_SCREATE | shifted create
NCURSES_KEY_SDC | shifted delete char
NCURSES_KEY_SDL | shifted delete line
NCURSES_KEY_SELECT | select
NCURSES_KEY_SEND | shifted end
NCURSES_KEY_SEOL | shifted end of line
NCURSES_KEY_SEXIT | shifted exit
NCURSES_KEY_SFIND | shifted find
NCURSES_KEY_SHELP | shifted help
NCURSES_KEY_SHOME | shifted home
NCURSES_KEY_SIC | shifted input
NCURSES_KEY_SLEFT | shifted left arrow
NCURSES_KEY_SMESSAGE | shifted message
NCURSES_KEY_SMOVE | shifted move
NCURSES_KEY_SNEXT | shifted next
NCURSES_KEY_SOPTIONS | shifted options
NCURSES_KEY_SPREVIOUS | shifted previous
NCURSES_KEY_SPRINT | shifted print
NCURSES_KEY_SREDO | shifted redo
NCURSES_KEY_SREPLACE | shifted replace
NCURSES_KEY_SRIGHT | shifted right arrow
NCURSES_KEY_SRSUME | shifted resume
NCURSES_KEY_SSAVE | shifted save
NCURSES_KEY_SSUSPEND | shifted suspend
NCURSES_KEY_UNDO | undo
NCURSES_KEY_MOUSE | mouse event has occurred
NCURSES_KEY_MAX | maximum key value


Mouse

mouse constants
Constant | meaning
NCURSES_BUTTON1_RELEASED - NCURSES_BUTTON4_RELEASED | button (1-4) released
NCURSES_BUTTON1_PRESSED - NCURSES_BUTTON4_PRESSED | button (1-4) pressed
NCURSES_BUTTON1_CLICKED - NCURSES_BUTTON4_CLICKED | button (1-4) clicked
NCURSES_BUTTON1_DOUBLE_CLICKED - NCURSES_BUTTON4_DOUBLE_CLICKED | button (1-4) double clicked
NCURSES_BUTTON1_TRIPLE_CLICKED - NCURSES_BUTTON4_TRIPLE_CLICKED | button (1-4) triple clicked
NCURSES_BUTTON_CTRL | ctrl pressed during click
NCURSES_BUTTON_SHIFT | shift pressed during click
NCURSES_BUTTON_ALT | alt pressed during click
NCURSES_ALL_MOUSE_EVENTS | report all mouse events
NCURSES_REPORT_MOUSE_POSITION | report mouse position


Ncurses Функции

Содержание

  • ncurses_addch — Add character at current position and advance cursor
  • ncurses_addchnstr — Add attributed string with specified length at current position
  • ncurses_addchstr — Add attributed string at current position
  • ncurses_addnstr — Add string with specified length at current position
  • ncurses_addstr — Output text at current position
  • ncurses_assume_default_colors — Define default colors for color 0
  • ncurses_attroff — Turn off the given attributes
  • ncurses_attron — Turn on the given attributes
  • ncurses_attrset — Set given attributes
  • ncurses_baudrate — Returns baudrate of terminal
  • ncurses_beep — Let the terminal beep
  • ncurses_bkgd — Set background property for terminal screen
  • ncurses_bkgdset — Control screen background
  • ncurses_border — Draw a border around the screen using attributed characters
  • ncurses_bottom_panel — Moves a visible panel to the bottom of the stack
  • ncurses_can_change_color — Checks if terminal color definitions can be changed
  • ncurses_cbreak — Switch off input buffering
  • ncurses_clear — Clear screen
  • ncurses_clrtobot — Clear screen from current position to bottom
  • ncurses_clrtoeol — Clear screen from current position to end of line
  • ncurses_color_content — Retrieves RGB components of a color
  • ncurses_color_set — Set active foreground and background colors
  • ncurses_curs_set — Set cursor state
  • ncurses_def_prog_mode — Saves terminals (program) mode
  • ncurses_def_shell_mode — Saves terminals (shell) mode
  • ncurses_define_key — Define a keycode
  • ncurses_del_panel — Remove panel from the stack and delete it (but not the associated window)
  • ncurses_delay_output — Delay output on terminal using padding characters
  • ncurses_delch — Delete character at current position, move rest of line left
  • ncurses_deleteln — Delete line at current position, move rest of screen up
  • ncurses_delwin — Delete a ncurses window
  • ncurses_doupdate — Write all prepared refreshes to terminal
  • ncurses_echo — Activate keyboard input echo
  • ncurses_echochar — Single character output including refresh
  • ncurses_end — Stop using ncurses, clean up the screen
  • ncurses_erase — Erase terminal screen
  • ncurses_erasechar — Returns current erase character
  • ncurses_filter — Set LINES for iniscr() and newterm() to 1
  • ncurses_flash — Flash terminal screen (visual bell)
  • ncurses_flushinp — Flush keyboard input buffer
  • ncurses_getch — Read a character from keyboard
  • ncurses_getmaxyx — Returns the size of a window
  • ncurses_getmouse — Reads mouse event
  • ncurses_getyx — Returns the current cursor position for a window
  • ncurses_halfdelay — Put terminal into halfdelay mode
  • ncurses_has_colors — Checks if terminal has color capabilities
  • ncurses_has_ic — Check for insert- and delete-capabilities
  • ncurses_has_il — Check for line insert- and delete-capabilities
  • ncurses_has_key — Check for presence of a function key on terminal keyboard
  • ncurses_hide_panel — Remove panel from the stack, making it invisible
  • ncurses_hline — Draw a horizontal line at current position using an attributed character and max. n characters long
  • ncurses_inch — Get character and attribute at current position
  • ncurses_init_color — Define a terminal color
  • ncurses_init_pair — Define a color pair
  • ncurses_init — Initialize ncurses
  • ncurses_insch — Insert character moving rest of line including character at current position
  • ncurses_insdelln — Insert lines before current line scrolling down (negative numbers delete and scroll up)
  • ncurses_insertln — Insert a line, move rest of screen down
  • ncurses_insstr — Insert string at current position, moving rest of line right
  • ncurses_instr — Reads string from terminal screen
  • ncurses_isendwin — Ncurses is in endwin mode, normal screen output may be performed
  • ncurses_keyok — Enable or disable a keycode
  • ncurses_keypad — Turns keypad on or off
  • ncurses_killchar — Returns current line kill character
  • ncurses_longname — Returns terminals description
  • ncurses_meta — Enables/Disable 8-bit meta key information
  • ncurses_mouse_trafo — Transforms coordinates
  • ncurses_mouseinterval — Set timeout for mouse button clicks
  • ncurses_mousemask — Sets mouse options
  • ncurses_move_panel — Moves a panel so that its upper-left corner is at [startx, starty]
  • ncurses_move — Move output position
  • ncurses_mvaddch — Move current position and add character
  • ncurses_mvaddchnstr — Move position and add attributed string with specified length
  • ncurses_mvaddchstr — Move position and add attributed string
  • ncurses_mvaddnstr — Move position and add string with specified length
  • ncurses_mvaddstr — Move position and add string
  • ncurses_mvcur — Move cursor immediately
  • ncurses_mvdelch — Move position and delete character, shift rest of line left
  • ncurses_mvgetch — Move position and get character at new position
  • ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long
  • ncurses_mvinch — Move position and get attributed character at new position
  • ncurses_mvvline — Set new position and draw a vertical line using an attributed character and max. n characters long
  • ncurses_mvwaddstr — Add string at new position in window
  • ncurses_napms — Sleep
  • ncurses_new_panel — Create a new panel and associate it with window
  • ncurses_newpad — Creates a new pad (window)
  • ncurses_newwin — Create a new window
  • ncurses_nl — Translate newline and carriage return / line feed
  • ncurses_nocbreak — Switch terminal to cooked mode
  • ncurses_noecho — Switch off keyboard input echo
  • ncurses_nonl — Do not translate newline and carriage return / line feed
  • ncurses_noqiflush — Do not flush on signal characters
  • ncurses_noraw — Switch terminal out of raw mode
  • ncurses_pair_content — Retrieves foreground and background colors of a color pair
  • ncurses_panel_above — Returns the panel above panel
  • ncurses_panel_below — Returns the panel below panel
  • ncurses_panel_window — Returns the window associated with panel
  • ncurses_pnoutrefresh — Copies a region from a pad into the virtual screen
  • ncurses_prefresh — Copies a region from a pad into the virtual screen
  • ncurses_putp — Apply padding information to the string and output it
  • ncurses_qiflush — Flush on signal characters
  • ncurses_raw — Switch terminal into raw mode
  • ncurses_refresh — Refresh screen
  • ncurses_replace_panel — Replaces the window associated with panel
  • ncurses_reset_prog_mode — Resets the prog mode saved by def_prog_mode
  • ncurses_reset_shell_mode — Resets the shell mode saved by def_shell_mode
  • ncurses_resetty — Restores saved terminal state
  • ncurses_savetty — Saves terminal state
  • ncurses_scr_dump — Dump screen content to file
  • ncurses_scr_init — Initialize screen from file dump
  • ncurses_scr_restore — Restore screen from file dump
  • ncurses_scr_set — Inherit screen from file dump
  • ncurses_scrl — Scroll window content up or down without changing current position
  • ncurses_show_panel — Places an invisible panel on top of the stack, making it visible
  • ncurses_slk_attr — Returns current soft label key attribute
  • ncurses_slk_attroff — Turn off the given attributes for soft function-key labels
  • ncurses_slk_attron — Turn on the given attributes for soft function-key labels
  • ncurses_slk_attrset — Set given attributes for soft function-key labels
  • ncurses_slk_clear — Clears soft labels from screen
  • ncurses_slk_color — Sets color for soft label keys
  • ncurses_slk_init — Initializes soft label key functions
  • ncurses_slk_noutrefresh — Copies soft label keys to virtual screen
  • ncurses_slk_refresh — Copies soft label keys to screen
  • ncurses_slk_restore — Restores soft label keys
  • ncurses_slk_set — Sets function key labels
  • ncurses_slk_touch — Forces output when ncurses_slk_noutrefresh is performed
  • ncurses_standend — Stop using 'standout' attribute
  • ncurses_standout — Start using 'standout' attribute
  • ncurses_start_color — Initializes color functionality
  • ncurses_termattrs — Returns a logical OR of all attribute flags supported by terminal
  • ncurses_termname — Returns terminals (short)-name
  • ncurses_timeout — Set timeout for special key sequences
  • ncurses_top_panel — Moves a visible panel to the top of the stack
  • ncurses_typeahead — Specify different filedescriptor for typeahead checking
  • ncurses_ungetch — Put a character back into the input stream
  • ncurses_ungetmouse — Pushes mouse event to queue
  • ncurses_update_panels — Refreshes the virtual screen to reflect the relations between panels in the stack
  • ncurses_use_default_colors — Assign terminal default colors to color id -1
  • ncurses_use_env — Control use of environment information about terminal size
  • ncurses_use_extended_names — Control use of extended names in terminfo descriptions
  • ncurses_vidattr — Display the string on the terminal in the video attribute mode
  • ncurses_vline — Draw a vertical line at current position using an attributed character and max. n characters long
  • ncurses_waddch — Adds character at current position in a window and advance cursor
  • ncurses_waddstr — Outputs text at current postion in window
  • ncurses_wattroff — Turns off attributes for a window
  • ncurses_wattron — Turns on attributes for a window
  • ncurses_wattrset — Set the attributes for a window
  • ncurses_wborder — Draws a border around the window using attributed characters
  • ncurses_wclear — Clears window
  • ncurses_wcolor_set — Sets windows color pairings
  • ncurses_werase — Erase window contents
  • ncurses_wgetch — Reads a character from keyboard (window)
  • ncurses_whline — Draws a horizontal line in a window at current position using an attributed character and max. n characters long
  • ncurses_wmouse_trafo — Transforms window/stdscr coordinates
  • ncurses_wmove — Moves windows output position
  • ncurses_wnoutrefresh — Copies window to virtual screen
  • ncurses_wrefresh — Refresh window on terminal screen
  • ncurses_wstandend — End standout mode for a window
  • ncurses_wstandout — Enter standout mode for a window
  • ncurses_wvline — Draws a vertical line in a window at current position using an attributed character and max. n characters long


Add character at current position and advance cursor

  • « Ncurses Функции
  • ncurses_addchnstr »
  • PHP Manual
  • Ncurses Функции
  • Add character at current position and advance cursor

ncurses_addch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addch — Add character at current position and advance cursor

Описание

int ncurses_addch ( int $ch )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ch


Add attributed string with specified length at current position

  • « ncurses_addch
  • ncurses_addchstr »
  • PHP Manual
  • Ncurses Функции
  • Add attributed string with specified length at current position

ncurses_addchnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addchnstr — Add attributed string with specified length at current position

Описание

int ncurses_addchnstr ( string $s , int $n )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s

n


Add attributed string at current position

  • « ncurses_addchnstr
  • ncurses_addnstr »
  • PHP Manual
  • Ncurses Функции
  • Add attributed string at current position

ncurses_addchstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addchstr — Add attributed string at current position

Описание

int ncurses_addchstr ( string $s )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s


Add string with specified length at current position

  • « ncurses_addchstr
  • ncurses_addstr »
  • PHP Manual
  • Ncurses Функции
  • Add string with specified length at current position

ncurses_addnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addnstr — Add string with specified length at current position

Описание

int ncurses_addnstr ( string $s , int $n )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

s

n


Output text at current position

  • « ncurses_addnstr
  • ncurses_assume_default_colors »
  • PHP Manual
  • Ncurses Функции
  • Output text at current position

ncurses_addstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_addstr — Output text at current position

Описание

int ncurses_addstr ( string $text )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text


Define default colors for color 0

  • « ncurses_addstr
  • ncurses_attroff »
  • PHP Manual
  • Ncurses Функции
  • Define default colors for color 0

ncurses_assume_default_colors

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_assume_default_colors — Define default colors for color 0

Описание

int ncurses_assume_default_colors ( int $fg , int $bg )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fg

bg


Turn off the given attributes

  • « ncurses_assume_default_colors
  • ncurses_attron »
  • PHP Manual
  • Ncurses Функции
  • Turn off the given attributes

ncurses_attroff

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attroff — Turn off the given attributes

Описание

int ncurses_attroff ( int $attributes )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

attributes


Turn on the given attributes

  • « ncurses_attroff
  • ncurses_attrset »
  • PHP Manual
  • Ncurses Функции
  • Turn on the given attributes

ncurses_attron

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attron — Turn on the given attributes

Описание

int ncurses_attron ( int $attributes )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

attributes


Set given attributes

  • « ncurses_attron
  • ncurses_baudrate »
  • PHP Manual
  • Ncurses Функции
  • Set given attributes

ncurses_attrset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_attrset — Set given attributes

Описание

int ncurses_attrset ( int $attributes )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

attributes


Returns baudrate of terminal

  • « ncurses_attrset
  • ncurses_beep »
  • PHP Manual
  • Ncurses Функции
  • Returns baudrate of terminal

ncurses_baudrate

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_baudrate — Returns baudrate of terminal

Описание

int ncurses_baudrate ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Let the terminal beep

  • « ncurses_baudrate
  • ncurses_bkgd »
  • PHP Manual
  • Ncurses Функции
  • Let the terminal beep

ncurses_beep

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_beep — Let the terminal beep

Описание

int ncurses_beep ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_beep() sends an audible alert (bell) and if its not possible flashes the screen.

Смотрите также

  • ncurses_flash() - Flash terminal screen (visual bell)


Set background property for terminal screen

  • « ncurses_beep
  • ncurses_bkgdset »
  • PHP Manual
  • Ncurses Функции
  • Set background property for terminal screen

ncurses_bkgd

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bkgd — Set background property for terminal screen

Описание

int ncurses_bkgd ( int $attrchar )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

attrchar


Control screen background

  • « ncurses_bkgd
  • ncurses_border »
  • PHP Manual
  • Ncurses Функции
  • Control screen background

ncurses_bkgdset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bkgdset — Control screen background

Описание

void ncurses_bkgdset ( int $attrchar )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

attrchar


Draw a border around the screen using attributed characters

  • « ncurses_bkgdset
  • ncurses_bottom_panel »
  • PHP Manual
  • Ncurses Функции
  • Draw a border around the screen using attributed characters

ncurses_border

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_border — Draw a border around the screen using attributed characters

Описание

int ncurses_border ( int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Draws the specified lines and corners around the main window.

Use ncurses_wborder() for borders around subwindows!

Список параметров

Every parameter expects 0 to draw a line or 1 to skip it.

left

right

top

bottom

tl_corner

Top left corner

tr_corner

Top right corner

bl_corner

Bottom left corner

br_corner

Bottom right corner

Смотрите также

  • ncurses_wborder() - Draws a border around the window using attributed characters


Moves a visible panel to the bottom of the stack

  • « ncurses_border
  • ncurses_can_change_color »
  • PHP Manual
  • Ncurses Функции
  • Moves a visible panel to the bottom of the stack

ncurses_bottom_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_bottom_panel — Moves a visible panel to the bottom of the stack

Описание

int ncurses_bottom_panel ( resource $panel )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Checks if terminal color definitions can be changed

  • « ncurses_bottom_panel
  • ncurses_cbreak »
  • PHP Manual
  • Ncurses Функции
  • Checks if terminal color definitions can be changed

ncurses_can_change_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_can_change_color — Checks if terminal color definitions can be changed

Описание

bool ncurses_can_change_color ( void )

Checks whether the terminal has color capabilities and whether the programmer can change color definitions using ncurses_init_color(). ncurses must be initialized using ncurses_init() before calling this function.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return TRUE if the programmer can change color definitions, FALSE otherwise.

Смотрите также

  • ncurses_has_colors() - Checks if terminal has color capabilities
  • ncurses_init_color() - Define a terminal color
  • ncurses_start_color() - Initializes color functionality


Switch off input buffering

  • « ncurses_can_change_color
  • ncurses_clear »
  • PHP Manual
  • Ncurses Функции
  • Switch off input buffering

ncurses_cbreak

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_cbreak — Switch off input buffering

Описание

bool ncurses_cbreak ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Disables line buffering and character processing (interrupt and flow control characters are unaffected), making characters typed by the user immediately available to the program.

Возвращаемые значения

Returns TRUE or NCURSES_ERR if any error occurred.

Смотрите также

  • ncurses_nocbreak() - Switch terminal to cooked mode


Clear screen

  • « ncurses_cbreak
  • ncurses_clrtobot »
  • PHP Manual
  • Ncurses Функции
  • Clear screen

ncurses_clear

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clear — Clear screen

Описание

bool ncurses_clear ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Clears the screen completely without setting blanks.

Note: ncurses_clear() clears the screen without setting blanks, which have the current background rendition. To clear screen with blanks, use ncurses_erase().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ncurses_erase() - Erase terminal screen


Clear screen from current position to bottom

  • « ncurses_clear
  • ncurses_clrtoeol »
  • PHP Manual
  • Ncurses Функции
  • Clear screen from current position to bottom

ncurses_clrtobot

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clrtobot — Clear screen from current position to bottom

Описание

bool ncurses_clrtobot ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Erases all lines from cursor to end of screen and creates blanks. Blanks created by ncurses_clrtobot() have the current background rendition.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ncurses_clear() - Clear screen
  • ncurses_clrtoeol() - Clear screen from current position to end of line


Clear screen from current position to end of line

  • « ncurses_clrtobot
  • ncurses_color_content »
  • PHP Manual
  • Ncurses Функции
  • Clear screen from current position to end of line

ncurses_clrtoeol

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_clrtoeol — Clear screen from current position to end of line

Описание

bool ncurses_clrtoeol ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Erases the current line from cursor position to the end. Blanks created by ncurses_clrtoeol() have the current background rendition.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ncurses_clear() - Clear screen
  • ncurses_clrtobot() - Clear screen from current position to bottom


Retrieves RGB components of a color

  • « ncurses_clrtoeol
  • ncurses_color_set »
  • PHP Manual
  • Ncurses Функции
  • Retrieves RGB components of a color

ncurses_color_content

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_color_content — Retrieves RGB components of a color

Описание

int ncurses_color_content ( int $color , int &$r , int &$g , int &$b )

Retrieves the red, green, and blue components for the given color definition. Terminal color capabilities must be initialized with ncurses_start_color() prior to calling this function.

Список параметров

color

The number of the color to retrieve information for. May be one of the pre-defined color constants.

r

A reference to which to return the red component of the color. The value returned to the reference will be between 0 and 1000.

g

A reference to which to return the green component of the color. The value returned to the reference will be between 0 and 1000.

b

A reference to which to return the blue component of the color. The value returned to the reference will be between 0 and 1000.

Возвращаемые значения

Returns -1 if the function was successful, and 0 if ncurses or terminal color capabilities have not been initialized.

Смотрите также

  • ncurses_init_color() - Define a terminal color
  • ncurses_start_color() - Initializes color functionality


Set active foreground and background colors

  • « ncurses_color_content
  • ncurses_curs_set »
  • PHP Manual
  • Ncurses Функции
  • Set active foreground and background colors

ncurses_color_set

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_color_set — Set active foreground and background colors

Описание

int ncurses_color_set ( int $pair )

Sets the active foreground and background colors. Any characters written after this function is invoked will have these colors. This function requires terminal colors to be supported and initialized using ncurses_start_color() beforehand.

ncurses uses color pairs to specify both foreground and background colors. Use ncurses_init_pair() to define a color pair.

Список параметров

pair

The color pair from which to get the foreground and background colors to set as the active colors.

Возвращаемые значения

Returns -1 on success, and 0 on failure.

Примеры

Пример #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Смотрите также

  • ncurses_init_pair() - Define a color pair
  • ncurses_start_color() - Initializes color functionality


Set cursor state

  • « ncurses_color_set
  • ncurses_def_prog_mode »
  • PHP Manual
  • Ncurses Функции
  • Set cursor state

ncurses_curs_set

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_curs_set — Set cursor state

Описание

int ncurses_curs_set ( int $visibility )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

visibility


Saves terminals (program) mode

  • « ncurses_curs_set
  • ncurses_def_shell_mode »
  • PHP Manual
  • Ncurses Функции
  • Saves terminals (program) mode

ncurses_def_prog_mode

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_def_prog_mode — Saves terminals (program) mode

Описание

bool ncurses_def_prog_mode ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Saves the current terminal modes for program (in curses) for use by ncurses_reset_prog_mode().

Возвращаемые значения

Returns FALSE on success, otherwise TRUE.

Смотрите также

  • ncurses_reset_prog_mode() - Resets the prog mode saved by def_prog_mode


Saves terminals (shell) mode

  • « ncurses_def_prog_mode
  • ncurses_define_key »
  • PHP Manual
  • Ncurses Функции
  • Saves terminals (shell) mode

ncurses_def_shell_mode

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_def_shell_mode — Saves terminals (shell) mode

Описание

bool ncurses_def_shell_mode ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Saves the current terminal modes for shell (not in curses) for use by ncurses_reset_shell_mode().

Возвращаемые значения

Returns FALSE on success, TRUE otherwise.

Смотрите также

  • ncurses_reset_shell_mode() - Resets the shell mode saved by def_shell_mode


Define a keycode

  • « ncurses_def_shell_mode
  • ncurses_del_panel »
  • PHP Manual
  • Ncurses Функции
  • Define a keycode

ncurses_define_key

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_define_key — Define a keycode

Описание

int ncurses_define_key ( string $definition , int $keycode )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

definition

keycode


Remove panel from the stack and delete it (but not the associated window)

  • « ncurses_define_key
  • ncurses_delay_output »
  • PHP Manual
  • Ncurses Функции
  • Remove panel from the stack and delete it (but not the associated window)

ncurses_del_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_del_panel — Remove panel from the stack and delete it (but not the associated window)

Описание

bool ncurses_del_panel ( resource $panel )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Delay output on terminal using padding characters

  • « ncurses_del_panel
  • ncurses_delch »
  • PHP Manual
  • Ncurses Функции
  • Delay output on terminal using padding characters

ncurses_delay_output

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delay_output — Delay output on terminal using padding characters

Описание

int ncurses_delay_output ( int $milliseconds )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

milliseconds


Delete character at current position, move rest of line left

  • « ncurses_delay_output
  • ncurses_deleteln »
  • PHP Manual
  • Ncurses Функции
  • Delete character at current position, move rest of line left

ncurses_delch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delch — Delete character at current position, move rest of line left

Описание

bool ncurses_delch ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Deletes the character under the cursor. All characters to the right of the cursor on the same line are moved to the left one position and the last character on the line is filled with a blank. The cursor position does not change.

Возвращаемые значения

Returns FALSE on success, TRUE otherwise.

Смотрите также

  • ncurses_deleteln() - Delete line at current position, move rest of screen up


Delete line at current position, move rest of screen up

  • « ncurses_delch
  • ncurses_delwin »
  • PHP Manual
  • Ncurses Функции
  • Delete line at current position, move rest of screen up

ncurses_deleteln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_deleteln — Delete line at current position, move rest of screen up

Описание

bool ncurses_deleteln ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Deletes the current line under cursor position. All lines below the current line are moved up one line. The bottom line of window is cleared. Cursor position does not change.

Возвращаемые значения

Returns FALSE on success, otherwise TRUE.

Смотрите также

  • ncurses_delch() - Delete character at current position, move rest of line left


Delete a ncurses window

  • « ncurses_deleteln
  • ncurses_doupdate »
  • PHP Manual
  • Ncurses Функции
  • Delete a ncurses window

ncurses_delwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_delwin — Delete a ncurses window

Описание

bool ncurses_delwin ( resource $window )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Write all prepared refreshes to terminal

  • « ncurses_delwin
  • ncurses_echo »
  • PHP Manual
  • Ncurses Функции
  • Write all prepared refreshes to terminal

ncurses_doupdate

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_doupdate — Write all prepared refreshes to terminal

Описание

bool ncurses_doupdate ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Compares the virtual screen to the physical screen and updates the physical screen. This way is more effective than using multiple refresh calls.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Activate keyboard input echo

  • « ncurses_doupdate
  • ncurses_echochar »
  • PHP Manual
  • Ncurses Функции
  • Activate keyboard input echo

ncurses_echo

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_echo — Activate keyboard input echo

Описание

bool ncurses_echo ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Enables echo mode. All characters typed by user are echoed by ncurses_getch().

Возвращаемые значения

Returns FALSE on success, TRUE if any error occurred.

Смотрите также

  • ncurses_noecho() - Switch off keyboard input echo to disable echo mode


Single character output including refresh

  • « ncurses_echo
  • ncurses_end »
  • PHP Manual
  • Ncurses Функции
  • Single character output including refresh

ncurses_echochar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_echochar — Single character output including refresh

Описание

int ncurses_echochar ( int $character )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

character


Stop using ncurses, clean up the screen

  • « ncurses_echochar
  • ncurses_erase »
  • PHP Manual
  • Ncurses Функции
  • Stop using ncurses, clean up the screen

ncurses_end

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_end — Stop using ncurses, clean up the screen

Описание

int ncurses_end ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Erase terminal screen

  • « ncurses_end
  • ncurses_erasechar »
  • PHP Manual
  • Ncurses Функции
  • Erase terminal screen

ncurses_erase

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_erase — Erase terminal screen

Описание

bool ncurses_erase ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Fills the terminal screen with blanks.

Created blanks have the current background rendition, set by ncurses_bkgd().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ncurses_bkgd() - Set background property for terminal screen
  • ncurses_clear() - Clear screen


Returns current erase character

  • « ncurses_erase
  • ncurses_filter »
  • PHP Manual
  • Ncurses Функции
  • Returns current erase character

ncurses_erasechar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_erasechar — Returns current erase character

Описание

string ncurses_erasechar ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the current erase character.

Возвращаемые значения

The current erase char, as a string.

Смотрите также

  • ncurses_killchar() - Returns current line kill character


Set LINES for iniscr() and newterm() to 1

  • « ncurses_erasechar
  • ncurses_flash »
  • PHP Manual
  • Ncurses Функции
  • Set LINES for iniscr() and newterm() to 1

ncurses_filter

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_filter — Set LINES for iniscr() and newterm() to 1

Описание

void ncurses_filter ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Flash terminal screen (visual bell)

  • « ncurses_filter
  • ncurses_flushinp »
  • PHP Manual
  • Ncurses Функции
  • Flash terminal screen (visual bell)

ncurses_flash

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_flash — Flash terminal screen (visual bell)

Описание

bool ncurses_flash ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Flashes the screen, and if its not possible, sends an audible alert (bell).

Возвращаемые значения

Returns FALSE on success, otherwise TRUE.

Смотрите также

  • ncurses_beep() - Let the terminal beep


Flush keyboard input buffer

  • « ncurses_flash
  • ncurses_getch »
  • PHP Manual
  • Ncurses Функции
  • Flush keyboard input buffer

ncurses_flushinp

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_flushinp — Flush keyboard input buffer

Описание

bool ncurses_flushinp ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Throws away any typeahead that has been typed and has not yet been read by your program.

Возвращаемые значения

Returns FALSE on success, otherwise TRUE.


Read a character from keyboard

  • « ncurses_flushinp
  • ncurses_getmaxyx »
  • PHP Manual
  • Ncurses Функции
  • Read a character from keyboard

ncurses_getch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getch — Read a character from keyboard

Описание

int ncurses_getch ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns the size of a window

  • « ncurses_getch
  • ncurses_getmouse »
  • PHP Manual
  • Ncurses Функции
  • Returns the size of a window

ncurses_getmaxyx

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getmaxyx — Returns the size of a window

Описание

void ncurses_getmaxyx ( resource $window , int &$y , int &$x )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Gets the horizontal and vertical size of the given window into the given variables.

Variables must be passed as reference, so they are updated when the user changes the terminal size.

Список параметров

window

The measured window

y

This will be set to the window height

x

This will be set to the window width

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Reads mouse event

  • « ncurses_getmaxyx
  • ncurses_getyx »
  • PHP Manual
  • Ncurses Функции
  • Reads mouse event

ncurses_getmouse

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getmouse — Reads mouse event

Описание

bool ncurses_getmouse ( array &$mevent )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

ncurses_getmouse() reads mouse event out of queue.

Список параметров

mevent

Event options will be delivered in this parameter which has to be an array, passed by reference (see example below).

On success an associative array with following keys will be delivered:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

Возвращаемые значения

Returns FALSE if a mouse event is actually visible in the given window, otherwise returns TRUE.

Примеры

Пример #1 ncurses_getmouse() example

<?php
switch (ncurses_getch()){
  case NCURSES_KEY_MOUSE:
    if (!ncurses_getmouse($mevent)){
      if ($mevent["mmask"] & NCURSES_MOUSE_BUTTON1_PRESSED){
        $mouse_x = $mevent["x"]; // Save mouse position
        $mouse_y = $mevent["y"];
      }
    }
  break;

  default:
    /* .... */
}
?>

Смотрите также

  • ncurses_ungetmouse() - Pushes mouse event to queue


Returns the current cursor position for a window

  • « ncurses_getmouse
  • ncurses_halfdelay »
  • PHP Manual
  • Ncurses Функции
  • Returns the current cursor position for a window

ncurses_getyx

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_getyx — Returns the current cursor position for a window

Описание

void ncurses_getyx ( resource $window , int &$y , int &$x )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

y

x


Put terminal into halfdelay mode

  • « ncurses_getyx
  • ncurses_has_colors »
  • PHP Manual
  • Ncurses Функции
  • Put terminal into halfdelay mode

ncurses_halfdelay

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_halfdelay — Put terminal into halfdelay mode

Описание

int ncurses_halfdelay ( int $tenth )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

tenth


Checks if terminal has color capabilities

  • « ncurses_halfdelay
  • ncurses_has_ic »
  • PHP Manual
  • Ncurses Функции
  • Checks if terminal has color capabilities

ncurses_has_colors

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_colors — Checks if terminal has color capabilities

Описание

bool ncurses_has_colors ( void )

Checks whether the terminal has color capabilities. This function can be used to write terminal-independent programs. ncurses must be initialized using ncurses_init() before calling this function.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return TRUE if the terminal has color capabilities, FALSE otherwise.

Примеры

Пример #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Смотрите также

  • ncurses_can_change_color() - Checks if terminal color definitions can be changed
  • ncurses_start_color() - Initializes color functionality


Check for insert- and delete-capabilities

  • « ncurses_has_colors
  • ncurses_has_il »
  • PHP Manual
  • Ncurses Функции
  • Check for insert- and delete-capabilities

ncurses_has_ic

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_ic — Check for insert- and delete-capabilities

Описание

bool ncurses_has_ic ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Checks whether the terminal has insert and delete capabilities.

Возвращаемые значения

Returns TRUE if the terminal has insert/delete-capabilities, FALSE otherwise.

Смотрите также

  • ncurses_has_il() - Check for line insert- and delete-capabilities


Check for line insert- and delete-capabilities

  • « ncurses_has_ic
  • ncurses_has_key »
  • PHP Manual
  • Ncurses Функции
  • Check for line insert- and delete-capabilities

ncurses_has_il

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_il — Check for line insert- and delete-capabilities

Описание

bool ncurses_has_il ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Checks whether the terminal has insert- and delete-line-capabilities.

Возвращаемые значения

Returns TRUE if the terminal has insert/delete-line capabilities, FALSE otherwise.

Смотрите также

  • ncurses_has_ic() - Check for insert- and delete-capabilities


Check for presence of a function key on terminal keyboard

  • « ncurses_has_il
  • ncurses_hide_panel »
  • PHP Manual
  • Ncurses Функции
  • Check for presence of a function key on terminal keyboard

ncurses_has_key

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_has_key — Check for presence of a function key on terminal keyboard

Описание

int ncurses_has_key ( int $keycode )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

keycode


Remove panel from the stack, making it invisible

  • « ncurses_has_key
  • ncurses_hline »
  • PHP Manual
  • Ncurses Функции
  • Remove panel from the stack, making it invisible

ncurses_hide_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_hide_panel — Remove panel from the stack, making it invisible

Описание

int ncurses_hide_panel ( resource $panel )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Draw a horizontal line at current position using an attributed character and max. n characters long

  • « ncurses_hide_panel
  • ncurses_inch »
  • PHP Manual
  • Ncurses Функции
  • Draw a horizontal line at current position using an attributed character and max. n characters long

ncurses_hline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_hline — Draw a horizontal line at current position using an attributed character and max. n characters long

Описание

int ncurses_hline ( int $charattr , int $n )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

charattr

n


Get character and attribute at current position

  • « ncurses_hline
  • ncurses_init_color »
  • PHP Manual
  • Ncurses Функции
  • Get character and attribute at current position

ncurses_inch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_inch — Get character and attribute at current position

Описание

string ncurses_inch ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the character from the current position.

Возвращаемые значения

Returns the character, as a string.


Define a terminal color

  • « ncurses_inch
  • ncurses_init_pair »
  • PHP Manual
  • Ncurses Функции
  • Define a terminal color

ncurses_init_color

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init_color — Define a terminal color

Описание

int ncurses_init_color ( int $color , int $r , int $g , int $b )

Defines or redefines the given color. When this function is called, all occurrences of the given color on the screen, if any, immediately change to the new definition.

Color capabilities must be supported by the terminal and initialized using ncurses_start_color() prior to calling this function. In addition, the terminal must have color changing capabilities; use ncurses_can_change_color() to check for this.

Список параметров

color

The identification number of the color to redefine. It may be one of the default color constants.

r

A color value, between 0 and 1000, for the red component.

g

A color value, between 0 and 1000, for the green component.

b

A color value, between 0 and 1000, for the blue component.

Возвращаемые значения

Returns -1 if the function was successful, and 0 if ncurses or terminal color capabilities have not been initialized or the terminal does not have color changing capabilities.

Смотрите также

  • ncurses_color_content() - Retrieves RGB components of a color
  • ncurses_start_color() - Initializes color functionality


Define a color pair

  • « ncurses_init_color
  • ncurses_init »
  • PHP Manual
  • Ncurses Функции
  • Define a color pair

ncurses_init_pair

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init_pair — Define a color pair

Описание

int ncurses_init_pair ( int $pair , int $fg , int $bg )

Defines or redefines the given color pair to have the given foreground and background colors. If the color pair was previously initialized, the screen is refreshed and all occurrences of it are changed to reflect the new definition.

Color capabilities must be initialized using ncurses_start_color() before calling this function. The first color pair (color pair 0) is assumed to be white on black by default, but can be changed using ncurses_assume_default_colors().

Список параметров

pair

The number of the color pair to define.

fg

The foreground color for the color pair. May be one of the pre-defined colors or one defined by ncurses_init_color() if the terminal has color changing capabilities.

bg

The background color for the color pair. May be one of the pre-defined colors or one defined by ncurses_init_color() if the terminal has color changing capabilities.

Возвращаемые значения

Returns -1 if the function was successful, and 0 if ncurses or color support were not initialized.

Примечания

Note that color changing capabilities are not required for defining color pairs of pre-existing colors, but only for changing definitions (red, green, and blue components) of colors themselves per ncurses_init_color().

Примеры

Пример #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Смотрите также

  • ncurses_pair_content() - Retrieves foreground and background colors of a color pair
  • ncurses_start_color() - Initializes color functionality


Initialize ncurses

  • « ncurses_init_pair
  • ncurses_insch »
  • PHP Manual
  • Ncurses Функции
  • Initialize ncurses

ncurses_init

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_init — Initialize ncurses

Описание

void ncurses_init ( void )

Initializes the ncurses interface. This function must be used before any other ncurses function call.

Note that ncurses_end() must be called before exiting from the program, or the terminal will not be restored to its proper non-visual mode.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ncurses_end() - Stop using ncurses, clean up the screen


Insert character moving rest of line including character at current position

  • « ncurses_init
  • ncurses_insdelln »
  • PHP Manual
  • Ncurses Функции
  • Insert character moving rest of line including character at current position

ncurses_insch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insch — Insert character moving rest of line including character at current position

Описание

int ncurses_insch ( int $character )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

character


Insert lines before current line scrolling down (negative numbers delete and scroll up)

  • « ncurses_insch
  • ncurses_insertln »
  • PHP Manual
  • Ncurses Функции
  • Insert lines before current line scrolling down (negative numbers delete and scroll up)

ncurses_insdelln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insdelln — Insert lines before current line scrolling down (negative numbers delete and scroll up)

Описание

int ncurses_insdelln ( int $count )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

count


Insert a line, move rest of screen down

  • « ncurses_insdelln
  • ncurses_insstr »
  • PHP Manual
  • Ncurses Функции
  • Insert a line, move rest of screen down

ncurses_insertln

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insertln — Insert a line, move rest of screen down

Описание

int ncurses_insertln ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Inserts a new line above the current line. The bottom line will be lost.


Insert string at current position, moving rest of line right

  • « ncurses_insertln
  • ncurses_instr »
  • PHP Manual
  • Ncurses Функции
  • Insert string at current position, moving rest of line right

ncurses_insstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_insstr — Insert string at current position, moving rest of line right

Описание

int ncurses_insstr ( string $text )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text


Reads string from terminal screen

  • « ncurses_insstr
  • ncurses_isendwin »
  • PHP Manual
  • Ncurses Функции
  • Reads string from terminal screen

ncurses_instr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_instr — Reads string from terminal screen

Описание

int ncurses_instr ( string &$buffer )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Reads a string from the terminal screen and returns the number of characters read from the current character position until end of line.

Список параметров

buffer

The characters. Attributes will be stripped.

Возвращаемые значения

Returns the number of characters.


Ncurses is in endwin mode, normal screen output may be performed

  • « ncurses_instr
  • ncurses_keyok »
  • PHP Manual
  • Ncurses Функции
  • Ncurses is in endwin mode, normal screen output may be performed

ncurses_isendwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_isendwin — Ncurses is in endwin mode, normal screen output may be performed

Описание

bool ncurses_isendwin ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Checks if ncurses is in endwin mode.

Возвращаемые значения

Returns TRUE, if ncurses_end() has been called without any subsequent calls to ncurses_wrefresh(), FALSE otherwise.

Смотрите также

  • ncurses_end() - Stop using ncurses, clean up the screen
  • ncurses_wrefresh() - Refresh window on terminal screen


Enable or disable a keycode

  • « ncurses_isendwin
  • ncurses_keypad »
  • PHP Manual
  • Ncurses Функции
  • Enable or disable a keycode

ncurses_keyok

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_keyok — Enable or disable a keycode

Описание

int ncurses_keyok ( int $keycode , bool $enable )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

keycode

enable


Turns keypad on or off

  • « ncurses_keyok
  • ncurses_killchar »
  • PHP Manual
  • Ncurses Функции
  • Turns keypad on or off

ncurses_keypad

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_keypad — Turns keypad on or off

Описание

int ncurses_keypad ( resource $window , bool $bf )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

bf


Returns current line kill character

  • « ncurses_keypad
  • ncurses_longname »
  • PHP Manual
  • Ncurses Функции
  • Returns current line kill character

ncurses_killchar

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_killchar — Returns current line kill character

Описание

string ncurses_killchar ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the current line kill character.

Возвращаемые значения

Returns the kill character, as a string.

Смотрите также

  • ncurses_erasechar() - Returns current erase character


Returns terminals description

  • « ncurses_killchar
  • ncurses_meta »
  • PHP Manual
  • Ncurses Функции
  • Returns terminals description

ncurses_longname

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_longname — Returns terminals description

Описание

string ncurses_longname ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns a verbose description of the terminal.

Возвращаемые значения

Returns the description, as a string truncated to 128 characters. On errors, returns NULL.

Смотрите также

  • ncurses_termname() - Returns terminals (short)-name


Enables/Disable 8-bit meta key information

  • « ncurses_longname
  • ncurses_mouse_trafo »
  • PHP Manual
  • Ncurses Функции
  • Enables/Disable 8-bit meta key information

ncurses_meta

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_meta — Enables/Disable 8-bit meta key information

Описание

int ncurses_meta ( resource $window , bool $8bit )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

8bit


Transforms coordinates

  • « ncurses_meta
  • ncurses_mouseinterval »
  • PHP Manual
  • Ncurses Функции
  • Transforms coordinates

ncurses_mouse_trafo

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mouse_trafo — Transforms coordinates

Описание

bool ncurses_mouse_trafo ( int &$y , int &$x , bool $toscreen )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

toscreen


Set timeout for mouse button clicks

  • « ncurses_mouse_trafo
  • ncurses_mousemask »
  • PHP Manual
  • Ncurses Функции
  • Set timeout for mouse button clicks

ncurses_mouseinterval

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mouseinterval — Set timeout for mouse button clicks

Описание

int ncurses_mouseinterval ( int $milliseconds )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

milliseconds


Sets mouse options

  • « ncurses_mouseinterval
  • ncurses_move_panel »
  • PHP Manual
  • Ncurses Функции
  • Sets mouse options

ncurses_mousemask

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mousemask — Sets mouse options

Описание

int ncurses_mousemask ( int $newmask , int &$oldmask )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets mouse events to be reported. By default no mouse events will be reported.

Mouse events are represented by NCURSES_KEY_MOUSE in the ncurses_wgetch() input stream. To read the event data and pop the event of queue, call ncurses_getmouse().

Список параметров

newmask

Mouse mask options can be set with the following predefined constants:

  • NCURSES_BUTTON1_PRESSED

  • NCURSES_BUTTON1_RELEASED

  • NCURSES_BUTTON1_CLICKED

  • NCURSES_BUTTON1_DOUBLE_CLICKED

  • NCURSES_BUTTON1_TRIPLE_CLICKED

  • NCURSES_BUTTON2_PRESSED

  • NCURSES_BUTTON2_RELEASED

  • NCURSES_BUTTON2_CLICKED

  • NCURSES_BUTTON2_DOUBLE_CLICKED

  • NCURSES_BUTTON2_TRIPLE_CLICKED

  • NCURSES_BUTTON3_PRESSED

  • NCURSES_BUTTON3_RELEASED

  • NCURSES_BUTTON3_CLICKED

  • NCURSES_BUTTON3_DOUBLE_CLICKED

  • NCURSES_BUTTON3_TRIPLE_CLICKED

  • NCURSES_BUTTON4_PRESSED

  • NCURSES_BUTTON4_RELEASED

  • NCURSES_BUTTON4_CLICKED

  • NCURSES_BUTTON4_DOUBLE_CLICKED

  • NCURSES_BUTTON4_TRIPLE_CLICKED

  • NCURSES_BUTTON_SHIFT>

  • NCURSES_BUTTON_CTRL

  • NCURSES_BUTTON_ALT

  • NCURSES_ALL_MOUSE_EVENTS

  • NCURSES_REPORT_MOUSE_POSITION

As a side effect, setting a zero mousemask in newmask turns off the mouse pointer. Setting a non zero value turns mouse pointer on.

oldmask

This will be set to the previous value of the mouse event mask.

Возвращаемые значения

Returns the mask of reportable events. On complete failure, it returns 0.

Примеры

Пример #1 ncurses_mousemask() example

<?php
$newmask = NCURSES_BUTTON1_CLICKED + NCURSES_BUTTON1_RELEASED;
$mask = ncurses_mousemask($newmask, $oldmask);
if ($mask & $newmask){
    printf("All specified mouse options will be supported\n");
}
?>

Смотрите также

  • ncurses_getch() - Read a character from keyboard
  • ncurses_getmouse() - Reads mouse event
  • ncurses_ungetmouse() - Pushes mouse event to queue


Moves a panel so that its upper-left corner is at [startx, starty]

  • « ncurses_mousemask
  • ncurses_move »
  • PHP Manual
  • Ncurses Функции
  • Moves a panel so that its upper-left corner is at [startx, starty]

ncurses_move_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_move_panel — Moves a panel so that its upper-left corner is at [startx, starty]

Описание

int ncurses_move_panel ( resource $panel , int $startx , int $starty )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel

startx

starty


Move output position

  • « ncurses_move_panel
  • ncurses_mvaddch »
  • PHP Manual
  • Ncurses Функции
  • Move output position

ncurses_move

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_move — Move output position

Описание

int ncurses_move ( int $y , int $x )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x


Move current position and add character

  • « ncurses_move
  • ncurses_mvaddchnstr »
  • PHP Manual
  • Ncurses Функции
  • Move current position and add character

ncurses_mvaddch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddch — Move current position and add character

Описание

int ncurses_mvaddch ( int $y , int $x , int $c )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

c


Move position and add attributed string with specified length

  • « ncurses_mvaddch
  • ncurses_mvaddchstr »
  • PHP Manual
  • Ncurses Функции
  • Move position and add attributed string with specified length

ncurses_mvaddchnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddchnstr — Move position and add attributed string with specified length

Описание

int ncurses_mvaddchnstr ( int $y , int $x , string $s , int $n )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

s

n


Move position and add attributed string

  • « ncurses_mvaddchnstr
  • ncurses_mvaddnstr »
  • PHP Manual
  • Ncurses Функции
  • Move position and add attributed string

ncurses_mvaddchstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddchstr — Move position and add attributed string

Описание

int ncurses_mvaddchstr ( int $y , int $x , string $s )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

s


Move position and add string with specified length

  • « ncurses_mvaddchstr
  • ncurses_mvaddstr »
  • PHP Manual
  • Ncurses Функции
  • Move position and add string with specified length

ncurses_mvaddnstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddnstr — Move position and add string with specified length

Описание

int ncurses_mvaddnstr ( int $y , int $x , string $s , int $n )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

s

n


Move position and add string

  • « ncurses_mvaddnstr
  • ncurses_mvcur »
  • PHP Manual
  • Ncurses Функции
  • Move position and add string

ncurses_mvaddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvaddstr — Move position and add string

Описание

int ncurses_mvaddstr ( int $y , int $x , string $s )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

s


Move cursor immediately

  • « ncurses_mvaddstr
  • ncurses_mvdelch »
  • PHP Manual
  • Ncurses Функции
  • Move cursor immediately

ncurses_mvcur

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvcur — Move cursor immediately

Описание

int ncurses_mvcur ( int $old_y , int $old_x , int $new_y , int $new_x )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

old_y

old_x

new_y

new_x


Move position and delete character, shift rest of line left

  • « ncurses_mvcur
  • ncurses_mvgetch »
  • PHP Manual
  • Ncurses Функции
  • Move position and delete character, shift rest of line left

ncurses_mvdelch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvdelch — Move position and delete character, shift rest of line left

Описание

int ncurses_mvdelch ( int $y , int $x )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x


Move position and get character at new position

  • « ncurses_mvdelch
  • ncurses_mvhline »
  • PHP Manual
  • Ncurses Функции
  • Move position and get character at new position

ncurses_mvgetch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvgetch — Move position and get character at new position

Описание

int ncurses_mvgetch ( int $y , int $x )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x


Set new position and draw a horizontal line using an attributed character and max. n characters long

  • « ncurses_mvgetch
  • ncurses_mvinch »
  • PHP Manual
  • Ncurses Функции
  • Set new position and draw a horizontal line using an attributed character and max. n characters long

ncurses_mvhline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvhline — Set new position and draw a horizontal line using an attributed character and max. n characters long

Описание

int ncurses_mvhline ( int $y , int $x , int $attrchar , int $n )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

attrchar

n


Move position and get attributed character at new position

  • « ncurses_mvhline
  • ncurses_mvvline »
  • PHP Manual
  • Ncurses Функции
  • Move position and get attributed character at new position

ncurses_mvinch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvinch — Move position and get attributed character at new position

Описание

int ncurses_mvinch ( int $y , int $x )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x


Set new position and draw a vertical line using an attributed character and max. n characters long

  • « ncurses_mvinch
  • ncurses_mvwaddstr »
  • PHP Manual
  • Ncurses Функции
  • Set new position and draw a vertical line using an attributed character and max. n characters long

ncurses_mvvline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvvline — Set new position and draw a vertical line using an attributed character and max. n characters long

Описание

int ncurses_mvvline ( int $y , int $x , int $attrchar , int $n )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

y

x

attrchar

n


Add string at new position in window

  • « ncurses_mvvline
  • ncurses_napms »
  • PHP Manual
  • Ncurses Функции
  • Add string at new position in window

ncurses_mvwaddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_mvwaddstr — Add string at new position in window

Описание

int ncurses_mvwaddstr ( resource $window , int $y , int $x , string $text )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

y

x

text


Sleep

  • « ncurses_mvwaddstr
  • ncurses_new_panel »
  • PHP Manual
  • Ncurses Функции
  • Sleep

ncurses_napms

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_napms — Sleep

Описание

int ncurses_napms ( int $milliseconds )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

milliseconds


Create a new panel and associate it with window

  • « ncurses_napms
  • ncurses_newpad »
  • PHP Manual
  • Ncurses Функции
  • Create a new panel and associate it with window

ncurses_new_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_new_panel — Create a new panel and associate it with window

Описание

resource ncurses_new_panel ( resource $window )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Creates a new pad (window)

  • « ncurses_new_panel
  • ncurses_newwin »
  • PHP Manual
  • Ncurses Функции
  • Creates a new pad (window)

ncurses_newpad

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_newpad — Creates a new pad (window)

Описание

resource ncurses_newpad ( int $rows , int $cols )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

rows

cols


Create a new window

  • « ncurses_newpad
  • ncurses_nl »
  • PHP Manual
  • Ncurses Функции
  • Create a new window

ncurses_newwin

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_newwin — Create a new window

Описание

resource ncurses_newwin ( int $rows , int $cols , int $y , int $x )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Creates a new window to draw elements in.

When creating additional windows, remember to use ncurses_getmaxyx() to check for available space, as terminal size is individual and may vary.

Список параметров

rows

Number of rows

cols

Number of columns

y

y-coordinate of the origin

x

x-coordinate of the origin

Возвращаемые значения

Returns a resource ID for the new window.


Translate newline and carriage return / line feed

  • « ncurses_newwin
  • ncurses_nocbreak »
  • PHP Manual
  • Ncurses Функции
  • Translate newline and carriage return / line feed

ncurses_nl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nl — Translate newline and carriage return / line feed

Описание

bool ncurses_nl ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Switch terminal to cooked mode

  • « ncurses_nl
  • ncurses_noecho »
  • PHP Manual
  • Ncurses Функции
  • Switch terminal to cooked mode

ncurses_nocbreak

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nocbreak — Switch terminal to cooked mode

Описание

bool ncurses_nocbreak ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns terminal to normal (cooked) mode. Initially the terminal may or may not be in cbreak mode as the mode is inherited. Therefore a program should call ncurses_cbreak() and ncurses_nocbreak() explicitly.

Возвращаемые значения

Returns TRUE if any error occurred, otherwise FALSE.

Смотрите также

  • ncurses_cbreak() - Switch off input buffering


Switch off keyboard input echo

  • « ncurses_nocbreak
  • ncurses_nonl »
  • PHP Manual
  • Ncurses Функции
  • Switch off keyboard input echo

ncurses_noecho

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noecho — Switch off keyboard input echo

Описание

bool ncurses_noecho ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Prevents echoing of user typed characters.

Возвращаемые значения

Returns TRUE if any error occurred, FALSE otherwise.

Смотрите также

  • ncurses_echo() - Activate keyboard input echo
  • ncurses_getch() - Read a character from keyboard


Do not translate newline and carriage return / line feed

  • « ncurses_noecho
  • ncurses_noqiflush »
  • PHP Manual
  • Ncurses Функции
  • Do not translate newline and carriage return / line feed

ncurses_nonl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_nonl — Do not translate newline and carriage return / line feed

Описание

bool ncurses_nonl ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Do not flush on signal characters

  • « ncurses_nonl
  • ncurses_noraw »
  • PHP Manual
  • Ncurses Функции
  • Do not flush on signal characters

ncurses_noqiflush

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noqiflush — Do not flush on signal characters

Описание

void ncurses_noqiflush ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Switch terminal out of raw mode

  • « ncurses_noqiflush
  • ncurses_pair_content »
  • PHP Manual
  • Ncurses Функции
  • Switch terminal out of raw mode

ncurses_noraw

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_noraw — Switch terminal out of raw mode

Описание

bool ncurses_noraw ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Switches the terminal out of raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The difference is that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal.

Возвращаемые значения

Returns TRUE if any error occurred, otherwise FALSE.

Смотрите также

  • ncurses_raw() - Switch terminal into raw mode
  • ncurses_cbreak() - Switch off input buffering
  • ncurses_nocbreak() - Switch terminal to cooked mode


Retrieves foreground and background colors of a color pair

  • « ncurses_noraw
  • ncurses_panel_above »
  • PHP Manual
  • Ncurses Функции
  • Retrieves foreground and background colors of a color pair

ncurses_pair_content

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_pair_content — Retrieves foreground and background colors of a color pair

Описание

int ncurses_pair_content ( int $pair , int &$f , int &$b )

Retrieves the foreground and background colors that constitute the given color pair. Terminal color capabilities must be initialized with ncurses_start_color() prior to calling this function.

Список параметров

pair

The number of the color pair to retrieve information for.

f

A reference to which to return the foreground color of the color pair. The information returned will be a color number referring to one of the pre-defined colors or a color defined previously by ncurses_init_color() if the terminal supports color changing.

b

A reference to which to return the background color of the color pair. The information returned will be a color number referring to one of the pre-defined colors or a color defined previously by ncurses_init_color() if the terminal supports color changing.

Возвращаемые значения

Returns -1 if the function was successful, and 0 if ncurses or terminal color capabilities have not been initialized.

Смотрите также

  • ncurses_init_pair() - Define a color pair
  • ncurses_start_color() - Initializes color functionality


Returns the panel above panel

  • « ncurses_pair_content
  • ncurses_panel_below »
  • PHP Manual
  • Ncurses Функции
  • Returns the panel above panel

ncurses_panel_above

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_above — Returns the panel above panel

Описание

resource ncurses_panel_above ( resource $panel )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel

Возвращаемые значения

If panel is null, returns the bottom panel in the stack.


Returns the panel below panel

  • « ncurses_panel_above
  • ncurses_panel_window »
  • PHP Manual
  • Ncurses Функции
  • Returns the panel below panel

ncurses_panel_below

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_below — Returns the panel below panel

Описание

resource ncurses_panel_below ( resource $panel )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel

Список параметров

If panel is null, returns the top panel in the stack.


Returns the window associated with panel

  • « ncurses_panel_below
  • ncurses_pnoutrefresh »
  • PHP Manual
  • Ncurses Функции
  • Returns the window associated with panel

ncurses_panel_window

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_panel_window — Returns the window associated with panel

Описание

resource ncurses_panel_window ( resource $panel )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Copies a region from a pad into the virtual screen

  • « ncurses_panel_window
  • ncurses_prefresh »
  • PHP Manual
  • Ncurses Функции
  • Copies a region from a pad into the virtual screen

ncurses_pnoutrefresh

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_pnoutrefresh — Copies a region from a pad into the virtual screen

Описание

int ncurses_pnoutrefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol


Copies a region from a pad into the virtual screen

  • « ncurses_pnoutrefresh
  • ncurses_putp »
  • PHP Manual
  • Ncurses Функции
  • Copies a region from a pad into the virtual screen

ncurses_prefresh

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_prefresh — Copies a region from a pad into the virtual screen

Описание

int ncurses_prefresh ( resource $pad , int $pminrow , int $pmincol , int $sminrow , int $smincol , int $smaxrow , int $smaxcol )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pad

pminrow

pmincol

sminrow

smincol

smaxrow

smaxcol


Apply padding information to the string and output it

  • « ncurses_prefresh
  • ncurses_qiflush »
  • PHP Manual
  • Ncurses Функции
  • Apply padding information to the string and output it

ncurses_putp

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_putp — Apply padding information to the string and output it

Описание

int ncurses_putp ( string $text )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text


Flush on signal characters

  • « ncurses_putp
  • ncurses_raw »
  • PHP Manual
  • Ncurses Функции
  • Flush on signal characters

ncurses_qiflush

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_qiflush — Flush on signal characters

Описание

void ncurses_qiflush ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Switch terminal into raw mode

  • « ncurses_qiflush
  • ncurses_refresh »
  • PHP Manual
  • Ncurses Функции
  • Switch terminal into raw mode

ncurses_raw

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_raw — Switch terminal into raw mode

Описание

bool ncurses_raw ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Places the terminal in raw mode. Raw mode is similar to cbreak mode, in that characters typed are immediately passed through to the user program. The difference is that in raw mode, the interrupt, quit, suspend and flow control characters are all passed through uninterpreted, instead of generating a signal.

Возвращаемые значения

Returns TRUE if any error occurred, otherwise FALSE.

Смотрите также

  • ncurses_noraw() - Switch terminal out of raw mode
  • ncurses_cbreak() - Switch off input buffering
  • ncurses_nocbreak() - Switch terminal to cooked mode


Refresh screen

  • « ncurses_raw
  • ncurses_replace_panel »
  • PHP Manual
  • Ncurses Функции
  • Refresh screen

ncurses_refresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_refresh — Refresh screen

Описание

int ncurses_refresh ( int $ch )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ch


Replaces the window associated with panel

  • « ncurses_refresh
  • ncurses_reset_prog_mode »
  • PHP Manual
  • Ncurses Функции
  • Replaces the window associated with panel

ncurses_replace_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_replace_panel — Replaces the window associated with panel

Описание

int ncurses_replace_panel ( resource $panel , resource $window )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel

window


Resets the prog mode saved by def_prog_mode

  • « ncurses_replace_panel
  • ncurses_reset_shell_mode »
  • PHP Manual
  • Ncurses Функции
  • Resets the prog mode saved by def_prog_mode

ncurses_reset_prog_mode

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_reset_prog_mode — Resets the prog mode saved by def_prog_mode

Описание

int ncurses_reset_prog_mode ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Resets the shell mode saved by def_shell_mode

  • « ncurses_reset_prog_mode
  • ncurses_resetty »
  • PHP Manual
  • Ncurses Функции
  • Resets the shell mode saved by def_shell_mode

ncurses_reset_shell_mode

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_reset_shell_mode — Resets the shell mode saved by def_shell_mode

Описание

int ncurses_reset_shell_mode ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Restores saved terminal state

  • « ncurses_reset_shell_mode
  • ncurses_savetty »
  • PHP Manual
  • Ncurses Функции
  • Restores saved terminal state

ncurses_resetty

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_resetty — Restores saved terminal state

Описание

bool ncurses_resetty ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Restores the terminal state, which was previously saved by calling ncurses_savetty().

Возвращаемые значения

Always returns FALSE.

Смотрите также

  • ncurses_savetty() - Saves terminal state


Saves terminal state

  • « ncurses_resetty
  • ncurses_scr_dump »
  • PHP Manual
  • Ncurses Функции
  • Saves terminal state

ncurses_savetty

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_savetty — Saves terminal state

Описание

bool ncurses_savetty ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Saves the current terminal state. The saved terminal state can be restored with ncurses_resetty().

Возвращаемые значения

Always returns FALSE.

Смотрите также

  • ncurses_resetty() - Restores saved terminal state


Dump screen content to file

  • « ncurses_savetty
  • ncurses_scr_init »
  • PHP Manual
  • Ncurses Функции
  • Dump screen content to file

ncurses_scr_dump

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_dump — Dump screen content to file

Описание

int ncurses_scr_dump ( string $filename )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename


Initialize screen from file dump

  • « ncurses_scr_dump
  • ncurses_scr_restore »
  • PHP Manual
  • Ncurses Функции
  • Initialize screen from file dump

ncurses_scr_init

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_init — Initialize screen from file dump

Описание

int ncurses_scr_init ( string $filename )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename


Restore screen from file dump

  • « ncurses_scr_init
  • ncurses_scr_set »
  • PHP Manual
  • Ncurses Функции
  • Restore screen from file dump

ncurses_scr_restore

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_restore — Restore screen from file dump

Описание

int ncurses_scr_restore ( string $filename )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename


Inherit screen from file dump

  • « ncurses_scr_restore
  • ncurses_scrl »
  • PHP Manual
  • Ncurses Функции
  • Inherit screen from file dump

ncurses_scr_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scr_set — Inherit screen from file dump

Описание

int ncurses_scr_set ( string $filename )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename


Scroll window content up or down without changing current position

  • « ncurses_scr_set
  • ncurses_show_panel »
  • PHP Manual
  • Ncurses Функции
  • Scroll window content up or down without changing current position

ncurses_scrl

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_scrl — Scroll window content up or down without changing current position

Описание

int ncurses_scrl ( int $count )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

count


Places an invisible panel on top of the stack, making it visible

  • « ncurses_scrl
  • ncurses_slk_attr »
  • PHP Manual
  • Ncurses Функции
  • Places an invisible panel on top of the stack, making it visible

ncurses_show_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_show_panel — Places an invisible panel on top of the stack, making it visible

Описание

int ncurses_show_panel ( resource $panel )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Returns current soft label key attribute

  • « ncurses_show_panel
  • ncurses_slk_attroff »
  • PHP Manual
  • Ncurses Функции
  • Returns current soft label key attribute

ncurses_slk_attr

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attr — Returns current soft label key attribute

Описание

int ncurses_slk_attr ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the current soft label key attribute.

Возвращаемые значения

The attribute, as an integer.


Turn off the given attributes for soft function-key labels

  • « ncurses_slk_attr
  • ncurses_slk_attron »
  • PHP Manual
  • Ncurses Функции
  • Turn off the given attributes for soft function-key labels

ncurses_slk_attroff

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attroff — Turn off the given attributes for soft function-key labels

Описание

int ncurses_slk_attroff ( int $intarg )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

intarg


Turn on the given attributes for soft function-key labels

  • « ncurses_slk_attroff
  • ncurses_slk_attrset »
  • PHP Manual
  • Ncurses Функции
  • Turn on the given attributes for soft function-key labels

ncurses_slk_attron

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attron — Turn on the given attributes for soft function-key labels

Описание

int ncurses_slk_attron ( int $intarg )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

intarg


Set given attributes for soft function-key labels

  • « ncurses_slk_attron
  • ncurses_slk_clear »
  • PHP Manual
  • Ncurses Функции
  • Set given attributes for soft function-key labels

ncurses_slk_attrset

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_attrset — Set given attributes for soft function-key labels

Описание

int ncurses_slk_attrset ( int $intarg )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

intarg


Clears soft labels from screen

  • « ncurses_slk_attrset
  • ncurses_slk_color »
  • PHP Manual
  • Ncurses Функции
  • Clears soft labels from screen

ncurses_slk_clear

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_clear — Clears soft labels from screen

Описание

bool ncurses_slk_clear ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

The function ncurses_slk_clear() clears soft label keys from screen.

Возвращаемые значения

Returns TRUE on errors, FALSE otherwise.


Sets color for soft label keys

  • « ncurses_slk_clear
  • ncurses_slk_init »
  • PHP Manual
  • Ncurses Функции
  • Sets color for soft label keys

ncurses_slk_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_color — Sets color for soft label keys

Описание

int ncurses_slk_color ( int $intarg )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

intarg


Initializes soft label key functions

  • « ncurses_slk_color
  • ncurses_slk_noutrefresh »
  • PHP Manual
  • Ncurses Функции
  • Initializes soft label key functions

ncurses_slk_init

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_init — Initializes soft label key functions

Описание

bool ncurses_slk_init ( int $format )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Initializes soft label key functions

This function must be called before ncurses_init() or ncurses_newwin() is called.

Список параметров

format

If ncurses_init() eventually uses a line from stdscr to emulate the soft labels, then this parameter determines how the labels are arranged of the screen.

0 indicates a 3-2-3 arrangement of the labels, 1 indicates a 4-4 arrangement and 2 indicates the PC like 4-4-4 mode, but in addition an index line will be created.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Copies soft label keys to virtual screen

  • « ncurses_slk_init
  • ncurses_slk_refresh »
  • PHP Manual
  • Ncurses Функции
  • Copies soft label keys to virtual screen

ncurses_slk_noutrefresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_noutrefresh — Copies soft label keys to virtual screen

Описание

bool ncurses_slk_noutrefresh ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Copies soft label keys to screen

  • « ncurses_slk_noutrefresh
  • ncurses_slk_restore »
  • PHP Manual
  • Ncurses Функции
  • Copies soft label keys to screen

ncurses_slk_refresh

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_refresh — Copies soft label keys to screen

Описание

int ncurses_slk_refresh ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Copies soft label keys from virtual screen to physical screen.


Restores soft label keys

  • « ncurses_slk_refresh
  • ncurses_slk_set »
  • PHP Manual
  • Ncurses Функции
  • Restores soft label keys

ncurses_slk_restore

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_restore — Restores soft label keys

Описание

int ncurses_slk_restore ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Restores the soft label keys after ncurses_slk_clear() has been performed.


Sets function key labels

  • « ncurses_slk_restore
  • ncurses_slk_touch »
  • PHP Manual
  • Ncurses Функции
  • Sets function key labels

ncurses_slk_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_set — Sets function key labels

Описание

bool ncurses_slk_set ( int $labelnr , string $label , int $format )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

labelnr

label

format


Forces output when ncurses_slk_noutrefresh is performed

  • « ncurses_slk_set
  • ncurses_standend »
  • PHP Manual
  • Ncurses Функции
  • Forces output when ncurses_slk_noutrefresh is performed

ncurses_slk_touch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_slk_touch — Forces output when ncurses_slk_noutrefresh is performed

Описание

int ncurses_slk_touch ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Forces all the soft labels to be output the next time a ncurses_slk_noutrefresh() is performed.


Stop using 'standout' attribute

  • « ncurses_slk_touch
  • ncurses_standout »
  • PHP Manual
  • Ncurses Функции
  • Stop using 'standout' attribute

ncurses_standend

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_standend — Stop using 'standout' attribute

Описание

int ncurses_standend ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Start using 'standout' attribute

  • « ncurses_standend
  • ncurses_start_color »
  • PHP Manual
  • Ncurses Функции
  • Start using 'standout' attribute

ncurses_standout

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_standout — Start using 'standout' attribute

Описание

int ncurses_standout ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Initializes color functionality

  • « ncurses_standout
  • ncurses_termattrs »
  • PHP Manual
  • Ncurses Функции
  • Initializes color functionality

ncurses_start_color

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_start_color — Initializes color functionality

Описание

int ncurses_start_color ( void )

Initializes color functionality in ncurses. This function must be called before any color manipulation functions are called and after ncurses_init() is called. It is good practice to call this function right after ncurses_init().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns 0 on success, or -1 if the color table could not be allocated or ncurses was not initialized.

Примеры

Пример #1 Writing a string with a specified color to the screen

<?php
ncurses_init();

// If the terminal supports colors, initialize and set active color
if (ncurses_has_colors()) {
    ncurses_start_color();
    ncurses_init_pair(1, NCURSES_COLOR_YELLOW, NCURSES_COLOR_BLUE);
    ncurses_color_set(1);
}

// Write a string at specified location
ncurses_mvaddstr(10, 10, "Hello world! Yellow on blue text!");

// Flush output to screen
ncurses_refresh();

ncurses_end();
?>

Смотрите также

  • ncurses_can_change_color() - Checks if terminal color definitions can be changed
  • ncurses_has_colors() - Checks if terminal has color capabilities


Returns a logical OR of all attribute flags supported by terminal

  • « ncurses_start_color
  • ncurses_termname »
  • PHP Manual
  • Ncurses Функции
  • Returns a logical OR of all attribute flags supported by terminal

ncurses_termattrs

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_termattrs — Returns a logical OR of all attribute flags supported by terminal

Описание

bool ncurses_termattrs ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns terminals (short)-name

  • « ncurses_termattrs
  • ncurses_timeout »
  • PHP Manual
  • Ncurses Функции
  • Returns terminals (short)-name

ncurses_termname

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_termname — Returns terminals (short)-name

Описание

string ncurses_termname ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns terminals shortname.

Возвращаемые значения

Returns the shortname of the terminal, truncated to 14 characters. On errors, returns NULL.

Смотрите также

  • ncurses_longname() - Returns terminals description


Set timeout for special key sequences

  • « ncurses_termname
  • ncurses_top_panel »
  • PHP Manual
  • Ncurses Функции
  • Set timeout for special key sequences

ncurses_timeout

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_timeout — Set timeout for special key sequences

Описание

void ncurses_timeout ( int $millisec )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

millisec


Moves a visible panel to the top of the stack

  • « ncurses_timeout
  • ncurses_typeahead »
  • PHP Manual
  • Ncurses Функции
  • Moves a visible panel to the top of the stack

ncurses_top_panel

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_top_panel — Moves a visible panel to the top of the stack

Описание

int ncurses_top_panel ( resource $panel )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

panel


Specify different filedescriptor for typeahead checking

  • « ncurses_top_panel
  • ncurses_ungetch »
  • PHP Manual
  • Ncurses Функции
  • Specify different filedescriptor for typeahead checking

ncurses_typeahead

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_typeahead — Specify different filedescriptor for typeahead checking

Описание

int ncurses_typeahead ( int $fd )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fd


Put a character back into the input stream

  • « ncurses_typeahead
  • ncurses_ungetmouse »
  • PHP Manual
  • Ncurses Функции
  • Put a character back into the input stream

ncurses_ungetch

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_ungetch — Put a character back into the input stream

Описание

int ncurses_ungetch ( int $keycode )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

keycode


Pushes mouse event to queue

  • « ncurses_ungetch
  • ncurses_update_panels »
  • PHP Manual
  • Ncurses Функции
  • Pushes mouse event to queue

ncurses_ungetmouse

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_ungetmouse — Pushes mouse event to queue

Описание

bool ncurses_ungetmouse ( array $mevent )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Pushes a KEY_MOUSE event onto the input queue and associates with this event the given state data and screen-relative character cell coordinates, specified in mevent.

Список параметров

mevent

An associative array specifying the event options:

  • "id" : Id to distinguish multiple devices

  • "x" : screen relative x-position in character cells

  • "y" : screen relative y-position in character cells

  • "z" : currently not supported

  • "mmask" : Mouse action

Возвращаемые значения

Returns FALSE on success, TRUE otherwise.

Смотрите также

  • ncurses_getmouse() - Reads mouse event


Refreshes the virtual screen to reflect the relations between panels in the stack

  • « ncurses_ungetmouse
  • ncurses_use_default_colors »
  • PHP Manual
  • Ncurses Функции
  • Refreshes the virtual screen to reflect the relations between panels in the stack

ncurses_update_panels

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_update_panels — Refreshes the virtual screen to reflect the relations between panels in the stack

Описание

void ncurses_update_panels ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Assign terminal default colors to color id -1

  • « ncurses_update_panels
  • ncurses_use_env »
  • PHP Manual
  • Ncurses Функции
  • Assign terminal default colors to color id -1

ncurses_use_default_colors

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_default_colors — Assign terminal default colors to color id -1

Описание

bool ncurses_use_default_colors ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Control use of environment information about terminal size

  • « ncurses_use_default_colors
  • ncurses_use_extended_names »
  • PHP Manual
  • Ncurses Функции
  • Control use of environment information about terminal size

ncurses_use_env

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_env — Control use of environment information about terminal size

Описание

void ncurses_use_env ( bool $flag )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flag


Control use of extended names in terminfo descriptions

  • « ncurses_use_env
  • ncurses_vidattr »
  • PHP Manual
  • Ncurses Функции
  • Control use of extended names in terminfo descriptions

ncurses_use_extended_names

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_use_extended_names — Control use of extended names in terminfo descriptions

Описание

int ncurses_use_extended_names ( bool $flag )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flag


Display the string on the terminal in the video attribute mode

  • « ncurses_use_extended_names
  • ncurses_vline »
  • PHP Manual
  • Ncurses Функции
  • Display the string on the terminal in the video attribute mode

ncurses_vidattr

(PHP 4 >= 4.0.7, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_vidattr — Display the string on the terminal in the video attribute mode

Описание

int ncurses_vidattr ( int $intarg )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

intarg


Draw a vertical line at current position using an attributed character and max. n characters long

  • « ncurses_vidattr
  • ncurses_waddch »
  • PHP Manual
  • Ncurses Функции
  • Draw a vertical line at current position using an attributed character and max. n characters long

ncurses_vline

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_vline — Draw a vertical line at current position using an attributed character and max. n characters long

Описание

int ncurses_vline ( int $charattr , int $n )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

charattr

n


Adds character at current position in a window and advance cursor

  • « ncurses_vline
  • ncurses_waddstr »
  • PHP Manual
  • Ncurses Функции
  • Adds character at current position in a window and advance cursor

ncurses_waddch

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_waddch — Adds character at current position in a window and advance cursor

Описание

int ncurses_waddch ( resource $window , int $ch )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

ch


Outputs text at current postion in window

  • « ncurses_waddch
  • ncurses_wattroff »
  • PHP Manual
  • Ncurses Функции
  • Outputs text at current postion in window

ncurses_waddstr

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_waddstr — Outputs text at current postion in window

Описание

int ncurses_waddstr ( resource $window , string $str [, int $n ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

str

n


Turns off attributes for a window

  • « ncurses_waddstr
  • ncurses_wattron »
  • PHP Manual
  • Ncurses Функции
  • Turns off attributes for a window

ncurses_wattroff

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattroff — Turns off attributes for a window

Описание

int ncurses_wattroff ( resource $window , int $attrs )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

attrs


Turns on attributes for a window

  • « ncurses_wattroff
  • ncurses_wattrset »
  • PHP Manual
  • Ncurses Функции
  • Turns on attributes for a window

ncurses_wattron

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattron — Turns on attributes for a window

Описание

int ncurses_wattron ( resource $window , int $attrs )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

attrs


Set the attributes for a window

  • « ncurses_wattron
  • ncurses_wborder »
  • PHP Manual
  • Ncurses Функции
  • Set the attributes for a window

ncurses_wattrset

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wattrset — Set the attributes for a window

Описание

int ncurses_wattrset ( resource $window , int $attrs )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

attrs


Draws a border around the window using attributed characters

  • « ncurses_wattrset
  • ncurses_wclear »
  • PHP Manual
  • Ncurses Функции
  • Draws a border around the window using attributed characters

ncurses_wborder

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wborder — Draws a border around the window using attributed characters

Описание

int ncurses_wborder ( resource $window , int $left , int $right , int $top , int $bottom , int $tl_corner , int $tr_corner , int $bl_corner , int $br_corner )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Draws the specified lines and corners around the passed window.

Use ncurses_border() for borders around the main window.

Список параметров

Each parameter expects 0 to draw a line and 1 to skip it.

window

The window on which we operate

left

right

top

bottom

tl_corner

Top left corner

tr_corner

Top right corner

bl_corner

Bottom left corner

br_corner

Bottom right corner

Смотрите также

  • ncurses_border() - Draw a border around the screen using attributed characters


Clears window

  • « ncurses_wborder
  • ncurses_wcolor_set »
  • PHP Manual
  • Ncurses Функции
  • Clears window

ncurses_wclear

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wclear — Clears window

Описание

int ncurses_wclear ( resource $window )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Sets windows color pairings

  • « ncurses_wclear
  • ncurses_werase »
  • PHP Manual
  • Ncurses Функции
  • Sets windows color pairings

ncurses_wcolor_set

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wcolor_set — Sets windows color pairings

Описание

int ncurses_wcolor_set ( resource $window , int $color_pair )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

color_pair


Erase window contents

  • « ncurses_wcolor_set
  • ncurses_wgetch »
  • PHP Manual
  • Ncurses Функции
  • Erase window contents

ncurses_werase

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_werase — Erase window contents

Описание

int ncurses_werase ( resource $window )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Reads a character from keyboard (window)

  • « ncurses_werase
  • ncurses_whline »
  • PHP Manual
  • Ncurses Функции
  • Reads a character from keyboard (window)

ncurses_wgetch

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wgetch — Reads a character from keyboard (window)

Описание

int ncurses_wgetch ( resource $window )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Draws a horizontal line in a window at current position using an attributed character and max. n characters long

  • « ncurses_wgetch
  • ncurses_wmouse_trafo »
  • PHP Manual
  • Ncurses Функции
  • Draws a horizontal line in a window at current position using an attributed character and max. n characters long

ncurses_whline

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_whline — Draws a horizontal line in a window at current position using an attributed character and max. n characters long

Описание

int ncurses_whline ( resource $window , int $charattr , int $n )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

charattr

n


Transforms window/stdscr coordinates

  • « ncurses_whline
  • ncurses_wmove »
  • PHP Manual
  • Ncurses Функции
  • Transforms window/stdscr coordinates

ncurses_wmouse_trafo

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wmouse_trafo — Transforms window/stdscr coordinates

Описание

bool ncurses_wmouse_trafo ( resource $window , int &$y , int &$x , bool $toscreen )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

x

y

toscreen


Moves windows output position

  • « ncurses_wmouse_trafo
  • ncurses_wnoutrefresh »
  • PHP Manual
  • Ncurses Функции
  • Moves windows output position

ncurses_wmove

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wmove — Moves windows output position

Описание

int ncurses_wmove ( resource $window , int $y , int $x )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

y

x


Copies window to virtual screen

  • « ncurses_wmove
  • ncurses_wrefresh »
  • PHP Manual
  • Ncurses Функции
  • Copies window to virtual screen

ncurses_wnoutrefresh

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wnoutrefresh — Copies window to virtual screen

Описание

int ncurses_wnoutrefresh ( resource $window )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Refresh window on terminal screen

  • « ncurses_wnoutrefresh
  • ncurses_wstandend »
  • PHP Manual
  • Ncurses Функции
  • Refresh window on terminal screen

ncurses_wrefresh

(PHP 4 >= 4.2.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wrefresh — Refresh window on terminal screen

Описание

int ncurses_wrefresh ( resource $window )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


End standout mode for a window

  • « ncurses_wrefresh
  • ncurses_wstandout »
  • PHP Manual
  • Ncurses Функции
  • End standout mode for a window

ncurses_wstandend

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wstandend — End standout mode for a window

Описание

int ncurses_wstandend ( resource $window )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Enter standout mode for a window

  • « ncurses_wstandend
  • ncurses_wvline »
  • PHP Manual
  • Ncurses Функции
  • Enter standout mode for a window

ncurses_wstandout

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wstandout — Enter standout mode for a window

Описание

int ncurses_wstandout ( resource $window )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window


Draws a vertical line in a window at current position using an attributed character and max. n characters long

  • « ncurses_wstandout
  • Newt »
  • PHP Manual
  • Ncurses Функции
  • Draws a vertical line in a window at current position using an attributed character and max. n characters long

ncurses_wvline

(PHP 4 >= 4.3.0, PHP 5 < 5.3.0, PECL ncurses >= 1.0.0)

ncurses_wvline — Draws a vertical line in a window at current position using an attributed character and max. n characters long

Описание

int ncurses_wvline ( resource $window , int $charattr , int $n )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

window

charattr

n


Newt

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Newt form exit reasons
    • Newt colorsets
    • Newt argument flags
    • Newt Flags Sense
    • Newt Components Flags
    • File Descriptor Flags
    • Checkbox Tree Flags
    • Entry Flags
    • Listbox Flags
    • Textbox Flags
    • Form Flags
    • Newt Keys
    • Newt Anchors
    • Grid Flags
  • Примеры
    • Basic usage
  • Newt Функции
    • newt_bell — Send a beep to the terminal
    • newt_button_bar — This function returns a grid containing the buttons created.
    • newt_button — Create a new button
    • newt_centered_window — Open a centered window of the specified size
    • newt_checkbox_get_value — Retreives value of checkox resource
    • newt_checkbox_set_flags — Configures checkbox resource
    • newt_checkbox_set_value — Sets the value of the checkbox
    • newt_checkbox_tree_add_item — Adds new item to the checkbox tree
    • newt_checkbox_tree_find_item — Finds an item in the checkbox tree
    • newt_checkbox_tree_get_current — Returns checkbox tree selected item
    • newt_checkbox_tree_get_entry_value — Описание
    • newt_checkbox_tree_get_multi_selection — Описание
    • newt_checkbox_tree_get_selection — Описание
    • newt_checkbox_tree_multi — Описание
    • newt_checkbox_tree_set_current — Описание
    • newt_checkbox_tree_set_entry_value — Описание
    • newt_checkbox_tree_set_entry — Описание
    • newt_checkbox_tree_set_width — Описание
    • newt_checkbox_tree — Описание
    • newt_checkbox — Описание
    • newt_clear_key_buffer — Discards the contents of the terminal's input buffer without waiting for additional input
    • newt_cls — Описание
    • newt_compact_button — Описание
    • newt_component_add_callback — Описание
    • newt_component_takes_focus — Описание
    • newt_create_grid — Описание
    • newt_cursor_off — Описание
    • newt_cursor_on — Описание
    • newt_delay — Описание
    • newt_draw_form — Описание
    • newt_draw_root_text — Displays the string text at the position indicated
    • newt_entry_get_value — Описание
    • newt_entry_set_filter — Описание
    • newt_entry_set_flags — Описание
    • newt_entry_set — Описание
    • newt_entry — Описание
    • newt_finished — Uninitializes newt interface
    • newt_form_add_component — Adds a single component to the form
    • newt_form_add_components — Add several components to the form
    • newt_form_add_hot_key — Описание
    • newt_form_destroy — Destroys a form
    • newt_form_get_current — Описание
    • newt_form_run — Runs a form
    • newt_form_set_background — Описание
    • newt_form_set_height — Описание
    • newt_form_set_size — Описание
    • newt_form_set_timer — Описание
    • newt_form_set_width — Описание
    • newt_form_watch_fd — Описание
    • newt_form — Create a form
    • newt_get_screen_size — Fills in the passed references with the current size of the terminal
    • newt_grid_add_components_to_form — Описание
    • newt_grid_basic_window — Описание
    • newt_grid_free — Описание
    • newt_grid_get_size — Описание
    • newt_grid_h_close_stacked — Описание
    • newt_grid_h_stacked — Описание
    • newt_grid_place — Описание
    • newt_grid_set_field — Описание
    • newt_grid_simple_window — Описание
    • newt_grid_v_close_stacked — Описание
    • newt_grid_v_stacked — Описание
    • newt_grid_wrapped_window_at — Описание
    • newt_grid_wrapped_window — Описание
    • newt_init — Initialize newt
    • newt_label_set_text — Описание
    • newt_label — Описание
    • newt_listbox_append_entry — Описание
    • newt_listbox_clear_selection — Описание
    • newt_listbox_clear — Описание
    • newt_listbox_delete_entry — Описание
    • newt_listbox_get_current — Описание
    • newt_listbox_get_selection — Описание
    • newt_listbox_insert_entry — Описание
    • newt_listbox_item_count — Описание
    • newt_listbox_select_item — Описание
    • newt_listbox_set_current_by_key — Описание
    • newt_listbox_set_current — Описание
    • newt_listbox_set_data — Описание
    • newt_listbox_set_entry — Описание
    • newt_listbox_set_width — Описание
    • newt_listbox — Описание
    • newt_listitem_get_data — Описание
    • newt_listitem_set — Описание
    • newt_listitem — Описание
    • newt_open_window — Open a window of the specified size and position
    • newt_pop_help_line — Replaces the current help line with the one from the stack
    • newt_pop_window — Removes the top window from the display
    • newt_push_help_line — Saves the current help line on a stack, and displays the new line
    • newt_radio_get_current — Описание
    • newt_radiobutton — Описание
    • newt_redraw_help_line — Описание
    • newt_reflow_text — Описание
    • newt_refresh — Updates modified portions of the screen
    • newt_resize_screen — Описание
    • newt_resume — Resume using the newt interface after calling newt_suspend
    • newt_run_form — Runs a form
    • newt_scale_set — Описание
    • newt_scale — Описание
    • newt_scrollbar_set — Описание
    • newt_set_help_callback — Описание
    • newt_set_suspend_callback — Set a callback function which gets invoked when user presses the suspend key
    • newt_suspend — Tells newt to return the terminal to its initial state
    • newt_textbox_get_num_lines — Описание
    • newt_textbox_reflowed — Описание
    • newt_textbox_set_height — Описание
    • newt_textbox_set_text — Описание
    • newt_textbox — Описание
    • newt_vertical_scrollbar — Описание
    • newt_wait_for_key — Doesn't return until a key has been pressed
    • newt_win_choice — Описание
    • newt_win_entries — Описание
    • newt_win_menu — Описание
    • newt_win_message — Описание
    • newt_win_messagev — Описание
    • newt_win_ternary — Описание


Введение

This is a PHP language extension for RedHat Newt library, a terminal-based window and widget library for writing applications with user friendly interface. Once this extension is enabled in PHP it will provide the use of Newt widgets, such as windows, buttons, checkboxes, radiobuttons, labels, editboxes, scrolls, textareas, scales, etc. Use of this extension is very similar to the original Newt API of C programming language.


Требования

This module uses the functions of the RedHat Newt library. You need libnewt version >= 0.51.0.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/newt.

In order to use these functions you must compile CGI or CLI PHP with newt support by using the --with-newt[=DIR] configure option.

Замечание:

This extension is not available for Windows platform.

You may need also curses and slang libraries, in order to compile this extension. To specify locations of these libraries, use the following configuration options: --with-curses-dir=/path/to/libcurses --with-slang-dir=/path/to/libslang


Типы ресурсов

This extension uses two resource types: "newt component" and "newt grid".

Resource type "newt component" is returned by functions, which create common newt widgets (for example: newt_button())

Resource type "newt grid" is a special link identifier for components, returned by newt grid factory functions (for example: newt_create_grid())


Предопределенные константы

Содержание

  • Newt form exit reasons
  • Newt colorsets
  • Newt argument flags
  • Newt Flags Sense
  • Newt Components Flags
  • File Descriptor Flags
  • Checkbox Tree Flags
  • Entry Flags
  • Listbox Flags
  • Textbox Flags
  • Form Flags
  • Newt Keys
  • Newt Anchors
  • Grid Flags

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Newt form exit reasons

Newt form exit reasons
constant | meaning
NEWT_EXIT_HOTKEY | hotkey defined by newt_form_add_hot_key() was pressed
NEWT_EXIT_COMPONENT | some component has caused form to exit
NEWT_EXIT_FDREADY | file descriptor specified in newt_form_watch_fd() is ready to be read or written to
NEWT_EXIT_TIMER | time specified in newt_form_set_timer() has elapsed


Newt colorsets

Newt colorsets
constant | meaning
NEWT_COLORSET_ROOT |
NEWT_COLORSET_BORDER |
NEWT_COLORSET_WINDOW |
NEWT_COLORSET_SHADOW |
NEWT_COLORSET_TITLE |
NEWT_COLORSET_BUTTON |
NEWT_COLORSET_ACTBUTTON |
NEWT_COLORSET_CHECKBOX |
NEWT_COLORSET_ACTCHECKBOX |
NEWT_COLORSET_ENTRY |
NEWT_COLORSET_LABEL |
NEWT_COLORSET_LISTBOX |
NEWT_COLORSET_ACTLISTBOX |
NEWT_COLORSET_TEXTBOX |
NEWT_COLORSET_ACTTEXTBOX |
NEWT_COLORSET_HELPLINE |
NEWT_COLORSET_ROOTTEXT |
NEWT_COLORSET_EMPTYSCALE |
NEWT_COLORSET_FULLSCALE |
NEWT_COLORSET_DISENTRY |
NEWT_COLORSET_COMPACTBUTTON |
NEWT_COLORSET_ACTSELLISTBOX |
NEWT_COLORSET_SELLISTBOX |


  • « Newt colorsets
  • Newt Flags Sense »
  • PHP Manual
  • Предопределенные константы
  • Newt argument flags

Newt argument flags

Newt argument flags
constant | meaning
NEWT_ARG_LAST |
NEWT_ARG_APPEND |


  • « Newt argument flags
  • Newt Components Flags »
  • PHP Manual
  • Предопределенные константы
  • Newt Flags Sense

Newt Flags Sense

Newt Flags Sense
constant | meaning
NEWT_FLAGS_SET |
NEWT_FLAGS_RESET |
NEWT_FLAGS_TOGGLE |


Newt Components Flags

Newt Components Flags
constant | meaning
NEWT_FLAG_RETURNEXIT | Exit form, when component is activated
NEWT_FLAG_HIDDEN | Component is hidden
NEWT_FLAG_SCROLL | Component is scrollable
NEWT_FLAG_DISABLED | Component is disabled
NEWT_FLAG_BORDER |
NEWT_FLAG_WRAP | Wrap text
NEWT_FLAG_NOF12 | Don't exit form on pressing F12
NEWT_FLAG_MULTIPLE |
NEWT_FLAG_SELECTED | Component is selected
NEWT_FLAG_CHECKBOX | Component is checkbox
NEWT_FLAG_PASSWORD | Entry component is password entry
NEWT_FLAG_SHOWCURSOR | Show cursor


  • « Newt Components Flags
  • Checkbox Tree Flags »
  • PHP Manual
  • Предопределенные константы
  • File Descriptor Flags

File Descriptor Flags

File Descriptor Flags
constant | meaning
NEWT_FD_READ |
NEWT_FD_WRITE |
NEWT_FD_EXCEPT |


Checkbox Tree Flags

Checkbox Tree Flags
constant | meaning
NEWT_CHECKBOXTREE_UNSELECTABLE |
NEWT_CHECKBOXTREE_HIDE_BOX |
NEWT_CHECKBOXTREE_COLLAPSED |
NEWT_CHECKBOXTREE_EXPANDED |
NEWT_CHECKBOXTREE_UNSELECTED |
NEWT_CHECKBOXTREE_SELECTED |


Entry Flags

Entry Flags
constant | meaning
NEWT_ENTRY_SCROLL |
NEWT_ENTRY_HIDDEN |
NEWT_ENTRY_RETURNEXIT |
NEWT_ENTRY_DISABLED |


  • « Entry Flags
  • Textbox Flags »
  • PHP Manual
  • Предопределенные константы
  • Listbox Flags

Listbox Flags

Listbox Flags
constant | meaning
NEWT_LISTBOX_RETURNEXIT |


Textbox Flags

Textbox Flags
constant | meaning
NEWT_TEXTBOX_WRAP | Wrap text in the textbox
NEWT_TEXTBOX_SCROLL | Scroll text in the textbox


  • « Textbox Flags
  • Newt Keys »
  • PHP Manual
  • Предопределенные константы
  • Form Flags

Form Flags

Form Flags
constant | meaning
NEWT_FORM_NOF12 | Don't exit form on F12 press


Newt Keys

Newt Keys
constant | meaning
NEWT_KEY_TAB |
NEWT_KEY_ENTER |
NEWT_KEY_SUSPEND |
NEWT_KEY_ESCAPE |
NEWT_KEY_RETURN |
NEWT_KEY_EXTRA_BASE |
NEWT_KEY_UP |
NEWT_KEY_DOWN |
NEWT_KEY_LEFT |
NEWT_KEY_RIGHT |
NEWT_KEY_BKSPC |
NEWT_KEY_DELETE |
NEWT_KEY_HOME |
NEWT_KEY_END |
NEWT_KEY_UNTAB |
NEWT_KEY_PGUP |
NEWT_KEY_PGDN |
NEWT_KEY_INSERT |
NEWT_KEY_F1 |
NEWT_KEY_F2 |
NEWT_KEY_F3 |
NEWT_KEY_F4 |
NEWT_KEY_F5 |
NEWT_KEY_F6 |
NEWT_KEY_F7 |
NEWT_KEY_F8 |
NEWT_KEY_F9 |
NEWT_KEY_F10 |
NEWT_KEY_F11 |
NEWT_KEY_F12 |
NEWT_KEY_RESIZE |


Newt Anchors

Newt Anchors
constant | meaning
NEWT_ANCHOR_LEFT |
NEWT_ANCHOR_RIGHT |
NEWT_ANCHOR_TOP |
NEWT_ANCHOR_BOTTOM |


Grid Flags

Grid Flags
constant | meaning
NEWT_GRID_FLAG_GROWX |
NEWT_GRID_FLAG_GROWY |
NEWT_GRID_EMPTY |
NEWT_GRID_COMPONENT |
NEWT_GRID_SUBGRID |


  • « Grid Flags
  • Basic usage »
  • PHP Manual
  • Newt
  • Примеры

Примеры

Содержание

  • Basic usage


Basic usage

This example is a PHP port of RedHat 'setup' utility dialog, executed in text mode.

Пример #1 Newt Usage Example

<?php
newt_init ();
newt_cls ();

newt_draw_root_text (0, 0, "Test Mode Setup Utility 1.12");
newt_push_help_line (null);
newt_draw_root_text (-30, 0, "(c) 1999-2002 RedHat, Inc");

newt_get_screen_size ($rows, $cols);

newt_open_window ($rows/2-17, $cols/2-10, 34, 17, "Choose a Tool");

$form = newt_form ();

$list = newt_listbox (3, 2, 10);

foreach (array (
    "Authentication configuration",
    "Firewall configuration",
    "Mouse configuration",
    "Network configuration",
    "Printer configuration",
    "System services") as $l_item)
{
    newt_listbox_add_entry ($list, $l_item, $l_item);
}

$b1 = newt_button (5, 12, "Run Tool");
$b2 = newt_button (21, 12, "Quit");

newt_form_add_component ($form, $list);
newt_form_add_components ($form, array($b1, $b2));

newt_refresh ();
newt_run_form ($form);

newt_pop_window ();
newt_pop_help_line ();
newt_finished ();
newt_form_destroy ($form);
?>


Newt Функции

Содержание

  • newt_bell — Send a beep to the terminal
  • newt_button_bar — This function returns a grid containing the buttons created.
  • newt_button — Create a new button
  • newt_centered_window — Open a centered window of the specified size
  • newt_checkbox_get_value — Retreives value of checkox resource
  • newt_checkbox_set_flags — Configures checkbox resource
  • newt_checkbox_set_value — Sets the value of the checkbox
  • newt_checkbox_tree_add_item — Adds new item to the checkbox tree
  • newt_checkbox_tree_find_item — Finds an item in the checkbox tree
  • newt_checkbox_tree_get_current — Returns checkbox tree selected item
  • newt_checkbox_tree_get_entry_value — Описание
  • newt_checkbox_tree_get_multi_selection — Описание
  • newt_checkbox_tree_get_selection — Описание
  • newt_checkbox_tree_multi — Описание
  • newt_checkbox_tree_set_current — Описание
  • newt_checkbox_tree_set_entry_value — Описание
  • newt_checkbox_tree_set_entry — Описание
  • newt_checkbox_tree_set_width — Описание
  • newt_checkbox_tree — Описание
  • newt_checkbox — Описание
  • newt_clear_key_buffer — Discards the contents of the terminal's input buffer without waiting for additional input
  • newt_cls — Описание
  • newt_compact_button — Описание
  • newt_component_add_callback — Описание
  • newt_component_takes_focus — Описание
  • newt_create_grid — Описание
  • newt_cursor_off — Описание
  • newt_cursor_on — Описание
  • newt_delay — Описание
  • newt_draw_form — Описание
  • newt_draw_root_text — Displays the string text at the position indicated
  • newt_entry_get_value — Описание
  • newt_entry_set_filter — Описание
  • newt_entry_set_flags — Описание
  • newt_entry_set — Описание
  • newt_entry — Описание
  • newt_finished — Uninitializes newt interface
  • newt_form_add_component — Adds a single component to the form
  • newt_form_add_components — Add several components to the form
  • newt_form_add_hot_key — Описание
  • newt_form_destroy — Destroys a form
  • newt_form_get_current — Описание
  • newt_form_run — Runs a form
  • newt_form_set_background — Описание
  • newt_form_set_height — Описание
  • newt_form_set_size — Описание
  • newt_form_set_timer — Описание
  • newt_form_set_width — Описание
  • newt_form_watch_fd — Описание
  • newt_form — Create a form
  • newt_get_screen_size — Fills in the passed references with the current size of the terminal
  • newt_grid_add_components_to_form — Описание
  • newt_grid_basic_window — Описание
  • newt_grid_free — Описание
  • newt_grid_get_size — Описание
  • newt_grid_h_close_stacked — Описание
  • newt_grid_h_stacked — Описание
  • newt_grid_place — Описание
  • newt_grid_set_field — Описание
  • newt_grid_simple_window — Описание
  • newt_grid_v_close_stacked — Описание
  • newt_grid_v_stacked — Описание
  • newt_grid_wrapped_window_at — Описание
  • newt_grid_wrapped_window — Описание
  • newt_init — Initialize newt
  • newt_label_set_text — Описание
  • newt_label — Описание
  • newt_listbox_append_entry — Описание
  • newt_listbox_clear_selection — Описание
  • newt_listbox_clear — Описание
  • newt_listbox_delete_entry — Описание
  • newt_listbox_get_current — Описание
  • newt_listbox_get_selection — Описание
  • newt_listbox_insert_entry — Описание
  • newt_listbox_item_count — Описание
  • newt_listbox_select_item — Описание
  • newt_listbox_set_current_by_key — Описание
  • newt_listbox_set_current — Описание
  • newt_listbox_set_data — Описание
  • newt_listbox_set_entry — Описание
  • newt_listbox_set_width — Описание
  • newt_listbox — Описание
  • newt_listitem_get_data — Описание
  • newt_listitem_set — Описание
  • newt_listitem — Описание
  • newt_open_window — Open a window of the specified size and position
  • newt_pop_help_line — Replaces the current help line with the one from the stack
  • newt_pop_window — Removes the top window from the display
  • newt_push_help_line — Saves the current help line on a stack, and displays the new line
  • newt_radio_get_current — Описание
  • newt_radiobutton — Описание
  • newt_redraw_help_line — Описание
  • newt_reflow_text — Описание
  • newt_refresh — Updates modified portions of the screen
  • newt_resize_screen — Описание
  • newt_resume — Resume using the newt interface after calling newt_suspend
  • newt_run_form — Runs a form
  • newt_scale_set — Описание
  • newt_scale — Описание
  • newt_scrollbar_set — Описание
  • newt_set_help_callback — Описание
  • newt_set_suspend_callback — Set a callback function which gets invoked when user presses the suspend key
  • newt_suspend — Tells newt to return the terminal to its initial state
  • newt_textbox_get_num_lines — Описание
  • newt_textbox_reflowed — Описание
  • newt_textbox_set_height — Описание
  • newt_textbox_set_text — Описание
  • newt_textbox — Описание
  • newt_vertical_scrollbar — Описание
  • newt_wait_for_key — Doesn't return until a key has been pressed
  • newt_win_choice — Описание
  • newt_win_entries — Описание
  • newt_win_menu — Описание
  • newt_win_message — Описание
  • newt_win_messagev — Описание
  • newt_win_ternary — Описание


Send a beep to the terminal

  • « Newt Функции
  • newt_button_bar »
  • PHP Manual
  • Newt Функции
  • Send a beep to the terminal

newt_bell

(PECL newt >= 0.1)

newt_bell — Send a beep to the terminal

Описание

void newt_bell ( void )

This function sends a beep to the terminal.

Замечание:

Depending on the terminal's settings, this beep may or may not be audible.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


This function returns a grid containing the buttons created.

  • « newt_bell
  • newt_button »
  • PHP Manual
  • Newt Функции
  • This function returns a grid containing the buttons created.

newt_button_bar

(PECL newt >= 0.1)

newt_button_bar — This function returns a grid containing the buttons created.

Описание

resource newt_button_bar ( array &$buttons )

This function returns a grid containing the buttons created.

Список параметров

buttons

Возвращаемые значения

Returns grid containing the buttons created.


Create a new button

  • « newt_button_bar
  • newt_centered_window »
  • PHP Manual
  • Newt Функции
  • Create a new button

newt_button

(PECL newt >= 0.1)

newt_button — Create a new button

Описание

resource newt_button ( int $left , int $top , string $text )

Creates a new button.

Список параметров

left

X-coordinate of the button.

top

Y-coordinate of the button.

text

The text which should be displayed in the button.

Возвращаемые значения

Returns a resource link to the created button component, or FALSE on error.

Примеры

Пример #1 A newt_button() example

<?php

$form = newt_form();

$ok_button = newt_button(5, 12, "Run Tool");

newt_form_add_component($form, $ok_button);

?>

Смотрите также

  • newt_button_bar() - This function returns a grid containing the buttons created.


Open a centered window of the specified size

  • « newt_button
  • newt_checkbox_get_value »
  • PHP Manual
  • Newt Функции
  • Open a centered window of the specified size

newt_centered_window

(PECL newt >= 0.1)

newt_centered_window — Open a centered window of the specified size

Описание

int newt_centered_window ( int $width , int $height [, string $title ] )

Open a centered window of the specified size.

Список параметров

width

Window width

height

Window height

title

Window title

Возвращаемые значения

Undefined value.

Смотрите также

  • newt_pop_window() - Removes the top window from the display
  • newt_open_window() - Open a window of the specified size and position


Retreives value of checkox resource

  • « newt_centered_window
  • newt_checkbox_set_flags »
  • PHP Manual
  • Newt Функции
  • Retreives value of checkox resource

newt_checkbox_get_value

(PECL newt >= 0.1)

newt_checkbox_get_value — Retreives value of checkox resource

Описание

string newt_checkbox_get_value ( resource $checkbox )

This function returns the character in the sequence which indicates the current value of the checkbox.

Список параметров

checkbox

Возвращаемые значения

Returns character indicating the value of the checkbox.


Configures checkbox resource

  • « newt_checkbox_get_value
  • newt_checkbox_set_value »
  • PHP Manual
  • Newt Функции
  • Configures checkbox resource

newt_checkbox_set_flags

(PECL newt >= 0.1)

newt_checkbox_set_flags — Configures checkbox resource

Описание

void newt_checkbox_set_flags ( resource $checkbox , int $flags , int $sense )

This function allows to set various flags on checkbox resource.

Список параметров

checkbox

flags

sense

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the value of the checkbox

  • « newt_checkbox_set_flags
  • newt_checkbox_tree_add_item »
  • PHP Manual
  • Newt Функции
  • Sets the value of the checkbox

newt_checkbox_set_value

(PECL newt >= 0.1)

newt_checkbox_set_value — Sets the value of the checkbox

Описание

void newt_checkbox_set_value ( resource $checkbox , string $value )

This function allows to set the current value of the checkbox resource.

Список параметров

checkbox

value

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Adds new item to the checkbox tree

  • « newt_checkbox_set_value
  • newt_checkbox_tree_find_item »
  • PHP Manual
  • Newt Функции
  • Adds new item to the checkbox tree

newt_checkbox_tree_add_item

(PECL newt >= 0.1)

newt_checkbox_tree_add_item — Adds new item to the checkbox tree

Описание

void newt_checkbox_tree_add_item ( resource $checkboxtree , string $text , mixed $data , int $flags , int $index [, int $... ] )

This function allows to add new item to the checkbox tree.

Список параметров

checkboxtree

text

data

flags

index

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Finds an item in the checkbox tree

  • « newt_checkbox_tree_add_item
  • newt_checkbox_tree_get_current »
  • PHP Manual
  • Newt Функции
  • Finds an item in the checkbox tree

newt_checkbox_tree_find_item

(PECL newt >= 0.1)

newt_checkbox_tree_find_item — Finds an item in the checkbox tree

Описание

array newt_checkbox_tree_find_item ( resource $checkboxtree , mixed $data )

Finds an item in the checkbox tree by item's data.

Список параметров

checkboxtree

data

Возвращаемые значения

Returns checkbox tree item resource, or NULL if it wasn't found.


Returns checkbox tree selected item

  • « newt_checkbox_tree_find_item
  • newt_checkbox_tree_get_entry_value »
  • PHP Manual
  • Newt Функции
  • Returns checkbox tree selected item

newt_checkbox_tree_get_current

(PECL newt >= 0.1)

newt_checkbox_tree_get_current — Returns checkbox tree selected item

Описание

mixed newt_checkbox_tree_get_current ( resource $checkboxtree )

This method returns checkbox tree selected tem.

Список параметров

checkboxtree

Возвращаемые значения

Returns current (selected) checkbox tree item.


Описание

  • « newt_checkbox_tree_get_current
  • newt_checkbox_tree_get_multi_selection »
  • PHP Manual
  • Newt Функции
  • Описание

newt_checkbox_tree_get_entry_value

(PECL newt >= 0.1)

newt_checkbox_tree_get_entry_value —

Описание

string newt_checkbox_tree_get_entry_value ( resource $checkboxtree , mixed $data )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

data

Возвращаемые значения


Описание

  • « newt_checkbox_tree_get_entry_value
  • newt_checkbox_tree_get_selection »
  • PHP Manual
  • Newt Функции
  • Описание

newt_checkbox_tree_get_multi_selection

(PECL newt >= 0.1)

newt_checkbox_tree_get_multi_selection —

Описание

array newt_checkbox_tree_get_multi_selection ( resource $checkboxtree , string $seqnum )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

seqnum

Возвращаемые значения


Описание

  • « newt_checkbox_tree_get_multi_selection
  • newt_checkbox_tree_multi »
  • PHP Manual
  • Newt Функции
  • Описание

newt_checkbox_tree_get_selection

(PECL newt >= 0.1)

newt_checkbox_tree_get_selection —

Описание

array newt_checkbox_tree_get_selection ( resource $checkboxtree )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

Возвращаемые значения


Описание

  • « newt_checkbox_tree_get_selection
  • newt_checkbox_tree_set_current »
  • PHP Manual
  • Newt Функции
  • Описание

newt_checkbox_tree_multi

(PECL newt >= 0.1)

newt_checkbox_tree_multi —

Описание

resource newt_checkbox_tree_multi ( int $left , int $top , int $height , string $seq [, int $flags ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

height

seq

flags

Возвращаемые значения


Описание

  • « newt_checkbox_tree_multi
  • newt_checkbox_tree_set_entry_value »
  • PHP Manual
  • Newt Функции
  • Описание

newt_checkbox_tree_set_current

(PECL newt >= 0.1)

newt_checkbox_tree_set_current —

Описание

void newt_checkbox_tree_set_current ( resource $checkboxtree , mixed $data )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

data

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_checkbox_tree_set_current
  • newt_checkbox_tree_set_entry »
  • PHP Manual
  • Newt Функции
  • Описание

newt_checkbox_tree_set_entry_value

(PECL newt >= 0.1)

newt_checkbox_tree_set_entry_value —

Описание

void newt_checkbox_tree_set_entry_value ( resource $checkboxtree , mixed $data , string $value )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

data

value

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_checkbox_tree_set_entry_value
  • newt_checkbox_tree_set_width »
  • PHP Manual
  • Newt Функции
  • Описание

newt_checkbox_tree_set_entry

(PECL newt >= 0.1)

newt_checkbox_tree_set_entry —

Описание

void newt_checkbox_tree_set_entry ( resource $checkboxtree , mixed $data , string $text )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkboxtree

data

text

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_checkbox_tree_set_entry
  • newt_checkbox_tree »
  • PHP Manual
  • Newt Функции
  • Описание

newt_checkbox_tree_set_width

(PECL newt >= 0.1)

newt_checkbox_tree_set_width —

Описание

void newt_checkbox_tree_set_width ( resource $checkbox_tree , int $width )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checkbox_tree

width

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_checkbox_tree_set_width
  • newt_checkbox »
  • PHP Manual
  • Newt Функции
  • Описание

newt_checkbox_tree

(PECL newt >= 0.1)

newt_checkbox_tree —

Описание

resource newt_checkbox_tree ( int $left , int $top , int $height [, int $flags ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

height

flags

Возвращаемые значения


Описание

  • « newt_checkbox_tree
  • newt_clear_key_buffer »
  • PHP Manual
  • Newt Функции
  • Описание

newt_checkbox

(PECL newt >= 0.1)

newt_checkbox —

Описание

resource newt_checkbox ( int $left , int $top , string $text , string $def_value [, string $seq ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

text

def_value

seq

Возвращаемые значения


Discards the contents of the terminal's input buffer without waiting for additional input

  • « newt_checkbox
  • newt_cls »
  • PHP Manual
  • Newt Функции
  • Discards the contents of the terminal's input buffer without waiting for additional input

newt_clear_key_buffer

(PECL newt >= 0.1)

newt_clear_key_buffer — Discards the contents of the terminal's input buffer without waiting for additional input

Описание

void newt_clear_key_buffer ( void )

Discards the contents of the terminal's input buffer without waiting for additional input.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_wait_for_key() - Doesn't return until a key has been pressed


Описание

  • « newt_clear_key_buffer
  • newt_compact_button »
  • PHP Manual
  • Newt Функции
  • Описание

newt_cls

(PECL newt >= 0.1)

newt_cls —

Описание

void newt_cls ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_cls
  • newt_component_add_callback »
  • PHP Manual
  • Newt Функции
  • Описание

newt_compact_button

(PECL newt >= 0.1)

newt_compact_button —

Описание

resource newt_compact_button ( int $left , int $top , string $text )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

text

Возвращаемые значения


Описание

  • « newt_compact_button
  • newt_component_takes_focus »
  • PHP Manual
  • Newt Функции
  • Описание

newt_component_add_callback

(PECL newt >= 0.1)

newt_component_add_callback —

Описание

void newt_component_add_callback ( resource $component , mixed $func_name , mixed $data )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

component

func_name

data

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_component_add_callback
  • newt_create_grid »
  • PHP Manual
  • Newt Функции
  • Описание

newt_component_takes_focus

(PECL newt >= 0.1)

newt_component_takes_focus —

Описание

void newt_component_takes_focus ( resource $component , bool $takes_focus )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

component

takes_focus

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_component_takes_focus
  • newt_cursor_off »
  • PHP Manual
  • Newt Функции
  • Описание

newt_create_grid

(PECL newt >= 0.1)

newt_create_grid —

Описание

resource newt_create_grid ( int $cols , int $rows )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

cols

rows

Возвращаемые значения


Описание

  • « newt_create_grid
  • newt_cursor_on »
  • PHP Manual
  • Newt Функции
  • Описание

newt_cursor_off

(PECL newt >= 0.1)

newt_cursor_off —

Описание

void newt_cursor_off ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_cursor_off
  • newt_delay »
  • PHP Manual
  • Newt Функции
  • Описание

newt_cursor_on

(PECL newt >= 0.1)

newt_cursor_on —

Описание

void newt_cursor_on ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_cursor_on
  • newt_draw_form »
  • PHP Manual
  • Newt Функции
  • Описание

newt_delay

(PECL newt >= 0.1)

newt_delay —

Описание

void newt_delay ( int $microseconds )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

microseconds

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_delay
  • newt_draw_root_text »
  • PHP Manual
  • Newt Функции
  • Описание

newt_draw_form

(PECL newt >= 0.1)

newt_draw_form —

Описание

void newt_draw_form ( resource $form )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Displays the string text at the position indicated

  • « newt_draw_form
  • newt_entry_get_value »
  • PHP Manual
  • Newt Функции
  • Displays the string text at the position indicated

newt_draw_root_text

(PECL newt >= 0.1)

newt_draw_root_text — Displays the string text at the position indicated

Описание

void newt_draw_root_text ( int $left , int $top , string $text )

Displays the string text at the position indicated.

Список параметров

left

Column number

Замечание:

If left is negative, the position is measured from the opposite side of the screen.

top

Line number

Замечание:

If top is negative, the position is measured from the opposite side of the screen.

text

Text to display.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 A newt_draw_root_text() example

This code demonstrates drawing of titles in the both corners of the screen.

<?php
 newt_init();
 newt_cls();

 newt_draw_root_text (2, 0, "Some root text");
 newt_refresh();
 sleep(1);

 newt_draw_root_text (-30, 0, "Root text in the other corner");
 newt_refresh();
 sleep(1);

 newt_finished();
?>

Смотрите также

  • newt_push_help_line() - Saves the current help line on a stack, and displays the new line
  • newt_pop_help_line() - Replaces the current help line with the one from the stack


Описание

  • « newt_draw_root_text
  • newt_entry_set_filter »
  • PHP Manual
  • Newt Функции
  • Описание

newt_entry_get_value

(PECL newt >= 0.1)

newt_entry_get_value —

Описание

string newt_entry_get_value ( resource $entry )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

Возвращаемые значения


Описание

  • « newt_entry_get_value
  • newt_entry_set_flags »
  • PHP Manual
  • Newt Функции
  • Описание

newt_entry_set_filter

(PECL newt >= 0.1)

newt_entry_set_filter —

Описание

void newt_entry_set_filter ( resource $entry , callable $filter , mixed $data )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

filter

data

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_entry_set_filter
  • newt_entry_set »
  • PHP Manual
  • Newt Функции
  • Описание

newt_entry_set_flags

(PECL newt >= 0.1)

newt_entry_set_flags —

Описание

void newt_entry_set_flags ( resource $entry , int $flags , int $sense )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

flags

sense

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_entry_set_flags
  • newt_entry »
  • PHP Manual
  • Newt Функции
  • Описание

newt_entry_set

(PECL newt >= 0.1)

newt_entry_set —

Описание

void newt_entry_set ( resource $entry , string $value [, bool $cursor_at_end ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

entry

value

cursor_at_end

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_entry_set
  • newt_finished »
  • PHP Manual
  • Newt Функции
  • Описание

newt_entry

(PECL newt >= 0.1)

newt_entry —

Описание

resource newt_entry ( int $left , int $top , int $width [, string $init_value [, int $flags ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

width

init_value

flags

Возвращаемые значения


Uninitializes newt interface

  • « newt_entry
  • newt_form_add_component »
  • PHP Manual
  • Newt Функции
  • Uninitializes newt interface

newt_finished

(PECL newt >= 0.1)

newt_finished — Uninitializes newt interface

Описание

int newt_finished ( void )

Uninitializes newt interface. This function be called, when program is ready to exit.

Возвращаемые значения

Returns 1 on success, 0 on failure.

Смотрите также

  • newt_init() - Initialize newt


Adds a single component to the form

  • « newt_finished
  • newt_form_add_components »
  • PHP Manual
  • Newt Функции
  • Adds a single component to the form

newt_form_add_component

(PECL newt >= 0.1)

newt_form_add_component — Adds a single component to the form

Описание

void newt_form_add_component ( resource $form , resource $component )

Adds a single component to the form.

Список параметров

form

Form to which component will be added

component

Component to add to the form

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 A newt_form_add_component() example

<?php
$form = newt_form();

$options = array("Authentication configuration", "Firewall configuration",
"Mouse configuration", "Network configuration", "Printer configuration",
"System services");

$list = newt_listbox(3, 2, 10);

foreach ($options as $l_item) {
    newt_listbox_add_entry($list, $l_item, $l_item);
}

newt_form_add_component($form, $list);
?>

Смотрите также

  • newt_form_add_components() - Add several components to the form


Add several components to the form

  • « newt_form_add_component
  • newt_form_add_hot_key »
  • PHP Manual
  • Newt Функции
  • Add several components to the form

newt_form_add_components

(PECL newt >= 0.1)

newt_form_add_components — Add several components to the form

Описание

void newt_form_add_components ( resource $form , array $components )

Adds several components to the form.

Список параметров

form

Form to which components will be added

components

Array of components to add to the form

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 A newt_form_add_components() example

<?php
$form = newt_form();

$b1 = newt_button(5, 12, "Run Tool");
$b2 = newt_button(21, 12, "Quit");

newt_form_add_components($form, array($b1, $b2));
?>

Смотрите также

  • newt_form_add_component() - Adds a single component to the form


Описание

  • « newt_form_add_components
  • newt_form_destroy »
  • PHP Manual
  • Newt Функции
  • Описание

newt_form_add_hot_key

(PECL newt >= 0.1)

newt_form_add_hot_key —

Описание

void newt_form_add_hot_key ( resource $form , int $key )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

key

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Destroys a form

  • « newt_form_add_hot_key
  • newt_form_get_current »
  • PHP Manual
  • Newt Функции
  • Destroys a form

newt_form_destroy

(PECL newt >= 0.1)

newt_form_destroy — Destroys a form

Описание

void newt_form_destroy ( resource $form )

This function frees the memory resources used by the form and all of the components which have been added to the form (including those components which are on subforms). Once a form has been destroyed, none of the form's components can be used.

Список параметров

form

Form component, which is going to be destroyed

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_form_run() - Runs a form
  • newt_run_form() - Runs a form


Описание

  • « newt_form_destroy
  • newt_form_run »
  • PHP Manual
  • Newt Функции
  • Описание

newt_form_get_current

(PECL newt >= 0.1)

newt_form_get_current —

Описание

resource newt_form_get_current ( resource $form )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Возвращаемые значения


Runs a form

  • « newt_form_get_current
  • newt_form_set_background »
  • PHP Manual
  • Newt Функции
  • Runs a form

newt_form_run

(PECL newt >= 0.1)

newt_form_run — Runs a form

Описание

void newt_form_run ( resource $form , array &$exit_struct )

This function runs the form passed to it.

Список параметров

form

Form component

exit_struct

Array, used for returning information after running the form component. Keys and values are described in the following table:

Form Exit Structure
Index Key | Value Type | Description
reason | integer | The reason, why the form has been exited. Possible values are defined here.
watch | resource | Resource link, specified in newt_form_watch_fd()
key | integer | Hotkey
component | resource | Component, which caused the form to exit

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_run_form() - Runs a form


Описание

  • « newt_form_run
  • newt_form_set_height »
  • PHP Manual
  • Newt Функции
  • Описание

newt_form_set_background

(PECL newt >= 0.1)

newt_form_set_background —

Описание

void newt_form_set_background ( resource $from , int $background )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

from

background

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_form_set_background
  • newt_form_set_size »
  • PHP Manual
  • Newt Функции
  • Описание

newt_form_set_height

(PECL newt >= 0.1)

newt_form_set_height —

Описание

void newt_form_set_height ( resource $form , int $height )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

height

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_form_set_height
  • newt_form_set_timer »
  • PHP Manual
  • Newt Функции
  • Описание

newt_form_set_size

(PECL newt >= 0.1)

newt_form_set_size —

Описание

void newt_form_set_size ( resource $form )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_form_set_size
  • newt_form_set_width »
  • PHP Manual
  • Newt Функции
  • Описание

newt_form_set_timer

(PECL newt >= 0.1)

newt_form_set_timer —

Описание

void newt_form_set_timer ( resource $form , int $milliseconds )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

milliseconds

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_form_set_timer
  • newt_form_watch_fd »
  • PHP Manual
  • Newt Функции
  • Описание

newt_form_set_width

(PECL newt >= 0.1)

newt_form_set_width —

Описание

void newt_form_set_width ( resource $form , int $width )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

width

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_form_set_width
  • newt_form »
  • PHP Manual
  • Newt Функции
  • Описание

newt_form_watch_fd

(PECL newt >= 0.1)

newt_form_watch_fd —

Описание

void newt_form_watch_fd ( resource $form , resource $stream [, int $flags ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

form

stream

flags

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Create a form

  • « newt_form_watch_fd
  • newt_get_screen_size »
  • PHP Manual
  • Newt Функции
  • Create a form

newt_form

(PECL newt >= 0.1)

newt_form — Create a form

Описание

resource newt_form ([ resource $vert_bar [, string $help [, int $flags ]]] )

Create a new form.

Список параметров

vert_bar

Vertical scrollbar which should be associated with the form

help

Help text string

flags

Various flags

Возвращаемые значения

Returns a resource link to the created form component, or FALSE on error.

Примеры

Пример #1 A newt_form() example

Displays a single button "Quit", which closes the application once it's pressed.

<?php
newt_init();
newt_cls();

$myform = newt_form();
$button = newt_button (5, 12, "Quit");

newt_form_add_component ($myform, $button);
newt_refresh ();
newt_run_form ($myform);

newt_finished ();
newt_form_destroy ($myform);
?>

Смотрите также

  • newt_form_run() - Runs a form
  • newt_run_form() - Runs a form
  • newt_form_add_component() - Adds a single component to the form
  • newt_form_add_components() - Add several components to the form
  • newt_form_destroy() - Destroys a form


Fills in the passed references with the current size of the terminal

  • « newt_form
  • newt_grid_add_components_to_form »
  • PHP Manual
  • Newt Функции
  • Fills in the passed references with the current size of the terminal

newt_get_screen_size

(PECL newt >= 0.1)

newt_get_screen_size — Fills in the passed references with the current size of the terminal

Описание

void newt_get_screen_size ( int &$cols , int &$rows )

Fills in the passed references with the current size of the terminal.

Список параметров

cols

Number of columns in the terminal

rows

Number of rows in the terminal

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 A newt_get_screen_size() example

This code prints out the screen size of your terminal.

<?php
 newt_init();
 newt_get_screen_size (&$cols, &$rows);
 newt_finished();

 print "Your terminal size is: {$cols}x{$rows}\n";
?>

Результат выполнения данного примера:

Your terminal size is: 138x47


Описание

  • « newt_get_screen_size
  • newt_grid_basic_window »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_add_components_to_form

(PECL newt >= 0.1)

newt_grid_add_components_to_form —

Описание

void newt_grid_add_components_to_form ( resource $grid , resource $form , bool $recurse )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

form

recurse

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_add_components_to_form
  • newt_grid_free »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_basic_window

(PECL newt >= 0.1)

newt_grid_basic_window —

Описание

resource newt_grid_basic_window ( resource $text , resource $middle , resource $buttons )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text

middle

buttons

Возвращаемые значения


Описание

  • « newt_grid_basic_window
  • newt_grid_get_size »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_free

(PECL newt >= 0.1)

newt_grid_free —

Описание

void newt_grid_free ( resource $grid , bool $recurse )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

recurse

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_free
  • newt_grid_h_close_stacked »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_get_size

(PECL newt >= 0.1)

newt_grid_get_size —

Описание

void newt_grid_get_size ( resouce $grid , int &$width , int &$height )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

width

height

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_get_size
  • newt_grid_h_stacked »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_h_close_stacked

(PECL newt >= 0.1)

newt_grid_h_close_stacked —

Описание

resource newt_grid_h_close_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

element1

Возвращаемые значения


Описание

  • « newt_grid_h_close_stacked
  • newt_grid_place »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_h_stacked

(PECL newt >= 0.1)

newt_grid_h_stacked —

Описание

resource newt_grid_h_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

element1

Возвращаемые значения


Описание

  • « newt_grid_h_stacked
  • newt_grid_set_field »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_place

(PECL newt >= 0.1)

newt_grid_place —

Описание

void newt_grid_place ( resource $grid , int $left , int $top )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

left

top

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_place
  • newt_grid_simple_window »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_set_field

(PECL newt >= 0.1)

newt_grid_set_field —

Описание

void newt_grid_set_field ( resource $grid , int $col , int $row , int $type , resource $val , int $pad_left , int $pad_top , int $pad_right , int $pad_bottom , int $anchor [, int $flags ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

col

row

type

val

pad_left

pad_top

pad_right

pad_bottom

anchor

flags

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_set_field
  • newt_grid_v_close_stacked »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_simple_window

(PECL newt >= 0.1)

newt_grid_simple_window —

Описание

resource newt_grid_simple_window ( resource $text , resource $middle , resource $buttons )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text

middle

buttons

Возвращаемые значения


Описание

  • « newt_grid_simple_window
  • newt_grid_v_stacked »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_v_close_stacked

(PECL newt >= 0.1)

newt_grid_v_close_stacked —

Описание

resource newt_grid_v_close_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

element1

Возвращаемые значения


Описание

  • « newt_grid_v_close_stacked
  • newt_grid_wrapped_window_at »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_v_stacked

(PECL newt >= 0.1)

newt_grid_v_stacked —

Описание

resource newt_grid_v_stacked ( int $element1_type , resource $element1 [, int $... [, resource $... ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

element1_type

element1

Возвращаемые значения


Описание

  • « newt_grid_v_stacked
  • newt_grid_wrapped_window »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_wrapped_window_at

(PECL newt >= 0.1)

newt_grid_wrapped_window_at —

Описание

void newt_grid_wrapped_window_at ( resource $grid , string $title , int $left , int $top )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

title

left

top

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_grid_wrapped_window_at
  • newt_init »
  • PHP Manual
  • Newt Функции
  • Описание

newt_grid_wrapped_window

(PECL newt >= 0.1)

newt_grid_wrapped_window —

Описание

void newt_grid_wrapped_window ( resource $grid , string $title )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

grid

title

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Initialize newt

  • « newt_grid_wrapped_window
  • newt_label_set_text »
  • PHP Manual
  • Newt Функции
  • Initialize newt

newt_init

(PECL newt >= 0.1)

newt_init — Initialize newt

Описание

int newt_init ( void )

Initializes the newt interface. This function must be called before any other newt function.

Возвращаемые значения

Returns 1 on success, 0 on failure.

Смотрите также

  • newt_finished() - Uninitializes newt interface


Описание

  • « newt_init
  • newt_label »
  • PHP Manual
  • Newt Функции
  • Описание

newt_label_set_text

(PECL newt >= 0.1)

newt_label_set_text —

Описание

void newt_label_set_text ( resource $label , string $text )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

label

text

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_label_set_text
  • newt_listbox_append_entry »
  • PHP Manual
  • Newt Функции
  • Описание

newt_label

(PECL newt >= 0.1)

newt_label —

Описание

resource newt_label ( int $left , int $top , string $text )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

text

Возвращаемые значения


Описание

  • « newt_label
  • newt_listbox_clear_selection »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_append_entry

(PECL newt >= 0.1)

newt_listbox_append_entry —

Описание

void newt_listbox_append_entry ( resource $listbox , string $text , mixed $data )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

text

data

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_append_entry
  • newt_listbox_clear »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_clear_selection

(PECL newt >= 0.1)

newt_listbox_clear_selection —

Описание

void newt_listbox_clear_selection ( resource $listbox )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_clear_selection
  • newt_listbox_delete_entry »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_clear

(PECL newt >= 0.1)

newt_listbox_clear —

Описание

void newt_listbox_clear ( resource $listobx )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listobx

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_clear
  • newt_listbox_get_current »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_delete_entry

(PECL newt >= 0.1)

newt_listbox_delete_entry —

Описание

void newt_listbox_delete_entry ( resource $listbox , mixed $key )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

key

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_delete_entry
  • newt_listbox_get_selection »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_get_current

(PECL newt >= 0.1)

newt_listbox_get_current —

Описание

string newt_listbox_get_current ( resource $listbox )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Возвращаемые значения


Описание

  • « newt_listbox_get_current
  • newt_listbox_insert_entry »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_get_selection

(PECL newt >= 0.1)

newt_listbox_get_selection —

Описание

array newt_listbox_get_selection ( resource $listbox )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Возвращаемые значения


Описание

  • « newt_listbox_get_selection
  • newt_listbox_item_count »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_insert_entry

(PECL newt >= 0.1)

newt_listbox_insert_entry —

Описание

void newt_listbox_insert_entry ( resource $listbox , string $text , mixed $data , mixed $key )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

text

data

key

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_insert_entry
  • newt_listbox_select_item »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_item_count

(PECL newt >= 0.1)

newt_listbox_item_count —

Описание

int newt_listbox_item_count ( resource $listbox )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

Возвращаемые значения


Описание

  • « newt_listbox_item_count
  • newt_listbox_set_current_by_key »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_select_item

(PECL newt >= 0.1)

newt_listbox_select_item —

Описание

void newt_listbox_select_item ( resource $listbox , mixed $key , int $sense )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

key

sense

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_select_item
  • newt_listbox_set_current »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_set_current_by_key

(PECL newt >= 0.1)

newt_listbox_set_current_by_key —

Описание

void newt_listbox_set_current_by_key ( resource $listbox , mixed $key )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

key

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_set_current_by_key
  • newt_listbox_set_data »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_set_current

(PECL newt >= 0.1)

newt_listbox_set_current —

Описание

void newt_listbox_set_current ( resource $listbox , int $num )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

num

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_set_current
  • newt_listbox_set_entry »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_set_data

(PECL newt >= 0.1)

newt_listbox_set_data —

Описание

void newt_listbox_set_data ( resource $listbox , int $num , mixed $data )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

num

data

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_set_data
  • newt_listbox_set_width »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_set_entry

(PECL newt >= 0.1)

newt_listbox_set_entry —

Описание

void newt_listbox_set_entry ( resource $listbox , int $num , string $text )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

num

text

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_set_entry
  • newt_listbox »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox_set_width

(PECL newt >= 0.1)

newt_listbox_set_width —

Описание

void newt_listbox_set_width ( resource $listbox , int $width )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

listbox

width

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listbox_set_width
  • newt_listitem_get_data »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listbox

(PECL newt >= 0.1)

newt_listbox —

Описание

resource newt_listbox ( int $left , int $top , int $height [, int $flags ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

height

flags

Возвращаемые значения


Описание

  • « newt_listbox
  • newt_listitem_set »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listitem_get_data

(PECL newt >= 0.1)

newt_listitem_get_data —

Описание

mixed newt_listitem_get_data ( resource $item )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

item

Возвращаемые значения


Описание

  • « newt_listitem_get_data
  • newt_listitem »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listitem_set

(PECL newt >= 0.1)

newt_listitem_set —

Описание

void newt_listitem_set ( resource $item , string $text )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

item

text

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_listitem_set
  • newt_open_window »
  • PHP Manual
  • Newt Функции
  • Описание

newt_listitem

(PECL newt >= 0.1)

newt_listitem —

Описание

resource newt_listitem ( int $left , int $top , string $text , bool $is_default , resouce $prev_item , mixed $data [, int $flags ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

text

is_default

prev_item

data

flags

Возвращаемые значения


Open a window of the specified size and position

  • « newt_listitem
  • newt_pop_help_line »
  • PHP Manual
  • Newt Функции
  • Open a window of the specified size and position

newt_open_window

(PECL newt >= 0.1)

newt_open_window — Open a window of the specified size and position

Описание

int newt_open_window ( int $left , int $top , int $width , int $height [, string $title ] )

Open a window of the specified size and position.

Список параметров

left

Location of the upper left-hand corner of the window (column number)

top

Location of the upper left-hand corner of the window (row number)

width

Window width

height

Window height

title

Window title

Возвращаемые значения

Returns 1 on success, 0 on failure.

Смотрите также

  • newt_pop_window() - Removes the top window from the display
  • newt_centered_window() - Open a centered window of the specified size


Replaces the current help line with the one from the stack

  • « newt_open_window
  • newt_pop_window »
  • PHP Manual
  • Newt Функции
  • Replaces the current help line with the one from the stack

newt_pop_help_line

(PECL newt >= 0.1)

newt_pop_help_line — Replaces the current help line with the one from the stack

Описание

void newt_pop_help_line ( void )

Replaces the current help line with the one from the stack.

Замечание:

It's important not to call to newt_pop_help_line() more than newt_push_help_line().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_push_help_line() - Saves the current help line on a stack, and displays the new line


Removes the top window from the display

  • « newt_pop_help_line
  • newt_push_help_line »
  • PHP Manual
  • Newt Функции
  • Removes the top window from the display

newt_pop_window

(PECL newt >= 0.1)

newt_pop_window — Removes the top window from the display

Описание

void newt_pop_window ( void )

Removes the top window from the display, and redraws the display areas which the window overwrote.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_open_window() - Open a window of the specified size and position
  • newt_centered_window() - Open a centered window of the specified size


Saves the current help line on a stack, and displays the new line

  • « newt_pop_window
  • newt_radio_get_current »
  • PHP Manual
  • Newt Функции
  • Saves the current help line on a stack, and displays the new line

newt_push_help_line

(PECL newt >= 0.1)

newt_push_help_line — Saves the current help line on a stack, and displays the new line

Описание

void newt_push_help_line ([ string $text ] )

Saves the current help line on a stack, and displays the new line.

Список параметров

text

New help text message

Замечание:

If not specified, the help line is cleared.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_pop_help_line() - Replaces the current help line with the one from the stack


Описание

  • « newt_push_help_line
  • newt_radiobutton »
  • PHP Manual
  • Newt Функции
  • Описание

newt_radio_get_current

(PECL newt >= 0.1)

newt_radio_get_current —

Описание

resource newt_radio_get_current ( resource $set_member )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

set_member

Возвращаемые значения


Описание

  • « newt_radio_get_current
  • newt_redraw_help_line »
  • PHP Manual
  • Newt Функции
  • Описание

newt_radiobutton

(PECL newt >= 0.1)

newt_radiobutton —

Описание

resource newt_radiobutton ( int $left , int $top , string $text , bool $is_default [, resource $prev_button ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

text

is_default

prev_button

Возвращаемые значения


Описание

  • « newt_radiobutton
  • newt_reflow_text »
  • PHP Manual
  • Newt Функции
  • Описание

newt_redraw_help_line

(PECL newt >= 0.1)

newt_redraw_help_line —

Описание

void newt_redraw_help_line ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_redraw_help_line
  • newt_refresh »
  • PHP Manual
  • Newt Функции
  • Описание

newt_reflow_text

(PECL newt >= 0.1)

newt_reflow_text —

Описание

string newt_reflow_text ( string $text , int $width , int $flex_down , int $flex_up , int &$actual_width , int &$actual_height )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

text

width

flex_down

flex_up

actual_width

actual_height

Возвращаемые значения


Updates modified portions of the screen

  • « newt_reflow_text
  • newt_resize_screen »
  • PHP Manual
  • Newt Функции
  • Updates modified portions of the screen

newt_refresh

(PECL newt >= 0.1)

newt_refresh — Updates modified portions of the screen

Описание

void newt_refresh ( void )

To increase performance, newt only updates the display when it needs to, not when the program tells it to write to the terminal. Applications can force newt to immediately update modified portions of the screen by calling this function.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_refresh
  • newt_resume »
  • PHP Manual
  • Newt Функции
  • Описание

newt_resize_screen

(PECL newt >= 0.1)

newt_resize_screen —

Описание

void newt_resize_screen ([ bool $redraw ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

redraw

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Resume using the newt interface after calling newt_suspend

  • « newt_resize_screen
  • newt_run_form »
  • PHP Manual
  • Newt Функции
  • Resume using the newt interface after calling newt_suspend

newt_resume

(PECL newt >= 0.1)

newt_resume — Resume using the newt interface after calling newt_suspend()

Описание

void newt_resume ( void )

Resume using the newt interface after calling newt_suspend().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_suspend() - Tells newt to return the terminal to its initial state


Runs a form

  • « newt_resume
  • newt_scale_set »
  • PHP Manual
  • Newt Функции
  • Runs a form

newt_run_form

(PECL newt >= 0.1)

newt_run_form — Runs a form

Описание

resource newt_run_form ( resource $form )

This function runs the form passed to it.

Список параметров

form

Form component

Возвращаемые значения

The component which caused the form to stop running.

Замечание:

Notice that this function doesn't fit in with newt's normal naming convention. It is an older interface which will not work for all forms. It was left in newt only for legacy applications. It is a simpler interface than the new newt_form_run() though, and is still used quite often as a result. When an application is done with a form, it destroys the form and all of the components the form contains.

Смотрите также

  • newt_form_run() - Runs a form
  • newt_form_destroy() - Destroys a form


Описание

  • « newt_run_form
  • newt_scale »
  • PHP Manual
  • Newt Функции
  • Описание

newt_scale_set

(PECL newt >= 0.1)

newt_scale_set —

Описание

void newt_scale_set ( resource $scale , int $amount )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scale

amount

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_scale_set
  • newt_scrollbar_set »
  • PHP Manual
  • Newt Функции
  • Описание

newt_scale

(PECL newt >= 0.1)

newt_scale —

Описание

resource newt_scale ( int $left , int $top , int $width , int $full_value )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

width

full_value

Возвращаемые значения


Описание

  • « newt_scale
  • newt_set_help_callback »
  • PHP Manual
  • Newt Функции
  • Описание

newt_scrollbar_set

(PECL newt >= 0.1)

newt_scrollbar_set —

Описание

void newt_scrollbar_set ( resource $scrollbar , int $where , int $total )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scrollbar

where

total

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_scrollbar_set
  • newt_set_suspend_callback »
  • PHP Manual
  • Newt Функции
  • Описание

newt_set_help_callback

(PECL newt >= 0.1)

newt_set_help_callback —

Описание

void newt_set_help_callback ( mixed $function )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

function

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Set a callback function which gets invoked when user presses the suspend key

  • « newt_set_help_callback
  • newt_suspend »
  • PHP Manual
  • Newt Функции
  • Set a callback function which gets invoked when user presses the suspend key

newt_set_suspend_callback

(PECL newt >= 0.1)

newt_set_suspend_callback — Set a callback function which gets invoked when user presses the suspend key

Описание

void newt_set_suspend_callback ( callable $function , mixed $data )

Set a callback function which gets invoked when user presses the suspend key (normally ^Z). If no suspend callback is registered, the suspend keystroke is ignored.

Список параметров

function

A callback function, which accepts one argument: data

data

This data is been passed to the callback function

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_suspend() - Tells newt to return the terminal to its initial state
  • newt_resume() - Resume using the newt interface after calling newt_suspend


Tells newt to return the terminal to its initial state

  • « newt_set_suspend_callback
  • newt_textbox_get_num_lines »
  • PHP Manual
  • Newt Функции
  • Tells newt to return the terminal to its initial state

newt_suspend

(PECL newt >= 0.1)

newt_suspend — Tells newt to return the terminal to its initial state

Описание

void newt_suspend ( void )

Tells newt to return the terminal to its initial state. Once this is done, the application can suspend itself (by sending itself a SIGTSTP, fork a child program, or do whatever else it likes).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_resume() - Resume using the newt interface after calling newt_suspend


Описание

  • « newt_suspend
  • newt_textbox_reflowed »
  • PHP Manual
  • Newt Функции
  • Описание

newt_textbox_get_num_lines

(PECL newt >= 0.1)

newt_textbox_get_num_lines —

Описание

int newt_textbox_get_num_lines ( resource $textbox )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

textbox

Возвращаемые значения


Описание

  • « newt_textbox_get_num_lines
  • newt_textbox_set_height »
  • PHP Manual
  • Newt Функции
  • Описание

newt_textbox_reflowed

(PECL newt >= 0.1)

newt_textbox_reflowed —

Описание

resource newt_textbox_reflowed ( int $left , int $top , char $*text , int $width , int $flex_down , int $flex_up [, int $flags ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

*text

width

flex_down

flex_up

flags

Возвращаемые значения


Описание

  • « newt_textbox_reflowed
  • newt_textbox_set_text »
  • PHP Manual
  • Newt Функции
  • Описание

newt_textbox_set_height

(PECL newt >= 0.1)

newt_textbox_set_height —

Описание

void newt_textbox_set_height ( resource $textbox , int $height )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

textbox

height

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_textbox_set_height
  • newt_textbox »
  • PHP Manual
  • Newt Функции
  • Описание

newt_textbox_set_text

(PECL newt >= 0.1)

newt_textbox_set_text —

Описание

void newt_textbox_set_text ( resource $textbox , string $text )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

textbox

text

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_textbox_set_text
  • newt_vertical_scrollbar »
  • PHP Manual
  • Newt Функции
  • Описание

newt_textbox

(PECL newt >= 0.1)

newt_textbox —

Описание

resource newt_textbox ( int $left , int $top , int $width , int $height [, int $flags ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

width

height

flags

Возвращаемые значения


Описание

  • « newt_textbox
  • newt_wait_for_key »
  • PHP Manual
  • Newt Функции
  • Описание

newt_vertical_scrollbar

(PECL newt >= 0.1)

newt_vertical_scrollbar —

Описание

resource newt_vertical_scrollbar ( int $left , int $top , int $height [, int $normal_colorset [, int $thumb_colorset ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

left

top

height

normal_colorset

thumb_colorset

Возвращаемые значения


Doesn't return until a key has been pressed

  • « newt_vertical_scrollbar
  • newt_win_choice »
  • PHP Manual
  • Newt Функции
  • Doesn't return until a key has been pressed

newt_wait_for_key

(PECL newt >= 0.1)

newt_wait_for_key — Doesn't return until a key has been pressed

Описание

void newt_wait_for_key ( void )

This function doesn't return until a key has been pressed. The keystroke is then ignored. If a key is already in the terminal's buffer, this function discards a keystroke and returns immediately.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • newt_clear_key_buffer() - Discards the contents of the terminal's input buffer without waiting for additional input


Описание

  • « newt_wait_for_key
  • newt_win_entries »
  • PHP Manual
  • Newt Функции
  • Описание

newt_win_choice

(PECL newt >= 0.1)

newt_win_choice —

Описание

int newt_win_choice ( string $title , string $button1_text , string $button2_text , string $format [, mixed $args [, mixed $... ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

button1_text

button2_text

format

args

Возвращаемые значения


Описание

  • « newt_win_choice
  • newt_win_menu »
  • PHP Manual
  • Newt Функции
  • Описание

newt_win_entries

(PECL newt >= 0.1)

newt_win_entries —

Описание

int newt_win_entries ( string $title , string $text , int $suggested_width , int $flex_down , int $flex_up , int $data_width , array &$items , string $button1 [, string $... ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

text

suggested_width

flex_down

flex_up

data_width

items

button1

button2

Возвращаемые значения

Примеры

Пример #1 A newt_win_entries() example

<?php

newt_init();
newt_cls();

$entries[] = array('text' => 'First name:', 'value' => &$f_name);
$entries[] = array('text' => 'Last name:',  'value' => &$l_name);

$rc = newt_win_entries("User information", "Please enter your credentials:", 50, 7, 7, 30, $entries, "Ok", "Back");
newt_finished ();

if ($rc != 2) {
    echo "Your name is: $f_name $l_name\n";
}
?>


Описание

  • « newt_win_entries
  • newt_win_message »
  • PHP Manual
  • Newt Функции
  • Описание

newt_win_menu

(PECL newt >= 0.1)

newt_win_menu —

Описание

int newt_win_menu ( string $title , string $text , int $suggestedWidth , int $flexDown , int $flexUp , int $maxListHeight , array $items , int &$listItem [, string $button1 [, string $... ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

text

suggestedWidth

flexDown

flexUp

maxListHeight

items

listItem

button1

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_win_menu
  • newt_win_messagev »
  • PHP Manual
  • Newt Функции
  • Описание

newt_win_message

(PECL newt >= 0.1)

newt_win_message —

Описание

void newt_win_message ( string $title , string $button_text , string $format [, mixed $args [, mixed $... ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

button_text

format

args

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_win_message
  • newt_win_ternary »
  • PHP Manual
  • Newt Функции
  • Описание

newt_win_messagev

(PECL newt >= 0.1)

newt_win_messagev —

Описание

void newt_win_messagev ( string $title , string $button_text , string $format , array $args )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

button_text

format

args

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « newt_win_messagev
  • Readline »
  • PHP Manual
  • Newt Функции
  • Описание

newt_win_ternary

(PECL newt >= 0.1)

newt_win_ternary —

Описание

int newt_win_ternary ( string $title , string $button1_text , string $button2_text , string $button3_text , string $format [, mixed $args [, mixed $... ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

title

Its description

button1_text

Its description

button2_text

Its description

button3_text

Its description

format

Its description

args

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity


GNU Readline

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Readline Функции
    • readline_add_history — Adds a line to the history
    • readline_callback_handler_install — Initializes the readline callback interface and terminal, prints the prompt and returns immediately
    • readline_callback_handler_remove — Removes a previously installed callback handler and restores terminal settings
    • readline_callback_read_char — Reads a character and informs the readline callback interface when a line is received
    • readline_clear_history — Clears the history
    • readline_completion_function — Registers a completion function
    • readline_info — Gets/sets various internal readline variables
    • readline_list_history — Lists the history
    • readline_on_new_line — Inform readline that the cursor has moved to a new line
    • readline_read_history — Reads the history
    • readline_redisplay — Redraws the display
    • readline_write_history — Writes the history
    • readline — Reads a line


Введение

The readline functions implement an interface to the GNU Readline library. These are functions that provide editable command lines. An example being the way Bash allows you to use the arrow keys to insert characters or scroll through command history. Because of the interactive nature of this library, it will be of little use for writing Web applications, but may be useful when writing scripts used from a command line.

As of PHP 7.1.0 this extension is supported on Windows.

Предостережение

The readline extension is not thread-safe! Thus, the usage of it with any true thread safe SAPI (like Apache mod_winnt) is strongely discouraged.


Требования

To use the readline functions, you need to install libreadline. You can find libreadline on the home page of the GNU Readline project, at » http://cnswww.cns.cwru.edu/~chet/readline/rltop.html. It's maintained by Chet Ramey, who's also the author of Bash.

You can also use these functions with the libedit library, a non-GPL replacement for the readline library. The libedit library is BSD licensed and available for download from » http://www.thrysoee.dk/editline/.


Установка

To use these functions you must compile the CGI or CLI version of PHP with readline support. You need to configure PHP --with-readline[=DIR] . If you want to use the libedit readline replacement, configure PHP --with-libedit[=DIR] .

On Windows this extension is available by default as of PHP 7.1.0.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Readline Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
cli.pager | "" | PHP_INI_ALL | Available since PHP 5.4.0.
cli.prompt | "\\b \\> " | PHP_INI_ALL | Available since PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

cli.pager string

External tool to display output from command line.

cli.prompt string

Command line prompt.


  • « Типы ресурсов
  • Readline Функции »
  • PHP Manual
  • Readline
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Readline Функции

Содержание

  • readline_add_history — Adds a line to the history
  • readline_callback_handler_install — Initializes the readline callback interface and terminal, prints the prompt and returns immediately
  • readline_callback_handler_remove — Removes a previously installed callback handler and restores terminal settings
  • readline_callback_read_char — Reads a character and informs the readline callback interface when a line is received
  • readline_clear_history — Clears the history
  • readline_completion_function — Registers a completion function
  • readline_info — Gets/sets various internal readline variables
  • readline_list_history — Lists the history
  • readline_on_new_line — Inform readline that the cursor has moved to a new line
  • readline_read_history — Reads the history
  • readline_redisplay — Redraws the display
  • readline_write_history — Writes the history
  • readline — Reads a line


Adds a line to the history

  • « Readline Функции
  • readline_callback_handler_install »
  • PHP Manual
  • Readline Функции
  • Adds a line to the history

readline_add_history

(PHP 4, PHP 5, PHP 7)

readline_add_history — Adds a line to the history

Описание

bool readline_add_history ( string $line )

This function adds a line to the command line history.

Список параметров

line

The line to be added in the history.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Initializes the readline callback interface and terminal, prints the prompt and returns immediately

  • « readline_add_history
  • readline_callback_handler_remove »
  • PHP Manual
  • Readline Функции
  • Initializes the readline callback interface and terminal, prints the prompt and returns immediately

readline_callback_handler_install

(PHP 5 >= 5.1.0, PHP 7)

readline_callback_handler_install — Initializes the readline callback interface and terminal, prints the prompt and returns immediately

Описание

bool readline_callback_handler_install ( string $prompt , callable $callback )

Sets up a readline callback interface then prints prompt and immediately returns. Calling this function twice without removing the previous callback interface will automatically and conveniently overwrite the old interface.

The callback feature is useful when combined with stream_select() as it allows interleaving of IO and user input, unlike readline().

Список параметров

prompt

The prompt message.

callback

The callback function takes one parameter; the user input returned.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Readline Callback Interface Example

<?php
function rl_callback($ret)
{
    global $c, $prompting;

    echo "You entered: $ret\n";
    $c++;

    if ($c > 10) {
        $prompting = false;
        readline_callback_handler_remove();
    } else {
        readline_callback_handler_install("[$c] Enter something: ", 'rl_callback');
    }
}

$c = 1;
$prompting = true;

readline_callback_handler_install("[$c] Enter something: ", 'rl_callback');

while ($prompting) {
    $w = NULL;
    $e = NULL;
    $n = stream_select($r = array(STDIN), $w, $e, null);
    if ($n && in_array(STDIN, $r)) {
        // read a character, will call the callback when a newline is entered
        readline_callback_read_char();
    }
}

echo "Prompting disabled. All done.\n";
?>

Смотрите также

  • readline_callback_handler_remove() - Removes a previously installed callback handler and restores terminal settings
  • readline_callback_read_char() - Reads a character and informs the readline callback interface when a line is received
  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec


Removes a previously installed callback handler and restores terminal settings

  • « readline_callback_handler_install
  • readline_callback_read_char »
  • PHP Manual
  • Readline Функции
  • Removes a previously installed callback handler and restores terminal settings

readline_callback_handler_remove

(PHP 5 >= 5.1.0, PHP 7)

readline_callback_handler_remove — Removes a previously installed callback handler and restores terminal settings

Описание

bool readline_callback_handler_remove ( void )

Removes a previously installed callback handler and restores terminal settings.

Возвращаемые значения

Returns TRUE if a previously installed callback handler was removed, or FALSE if one could not be found.

Примеры

See readline_callback_handler_install() for an example of how to use the readline callback interface.

Смотрите также

  • readline_callback_handler_install() - Initializes the readline callback interface and terminal, prints the prompt and returns immediately
  • readline_callback_read_char() - Reads a character and informs the readline callback interface when a line is received


Reads a character and informs the readline callback interface when a line is received

  • « readline_callback_handler_remove
  • readline_clear_history »
  • PHP Manual
  • Readline Функции
  • Reads a character and informs the readline callback interface when a line is received

readline_callback_read_char

(PHP 5 >= 5.1.0, PHP 7)

readline_callback_read_char — Reads a character and informs the readline callback interface when a line is received

Описание

void readline_callback_read_char ( void )

Reads a character of user input. When a line is received, this function informs the readline callback interface installed using readline_callback_handler_install() that a line is ready for input.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

See readline_callback_handler_install() for an example of how to use the readline callback interface.

Смотрите также

  • readline_callback_handler_install() - Initializes the readline callback interface and terminal, prints the prompt and returns immediately
  • readline_callback_handler_remove() - Removes a previously installed callback handler and restores terminal settings


Clears the history

  • « readline_callback_read_char
  • readline_completion_function »
  • PHP Manual
  • Readline Функции
  • Clears the history

readline_clear_history

(PHP 4, PHP 5, PHP 7)

readline_clear_history — Clears the history

Описание

bool readline_clear_history ( void )

This function clears the entire command line history.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Registers a completion function

  • « readline_clear_history
  • readline_info »
  • PHP Manual
  • Readline Функции
  • Registers a completion function

readline_completion_function

(PHP 4, PHP 5, PHP 7)

readline_completion_function — Registers a completion function

Описание

bool readline_completion_function ( callable $function )

This function registers a completion function. This is the same kind of functionality you'd get if you hit your tab key while using Bash.

Список параметров

function

You must supply the name of an existing function which accepts a partial command line and returns an array of possible matches.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Gets/sets various internal readline variables

  • « readline_completion_function
  • readline_list_history »
  • PHP Manual
  • Readline Функции
  • Gets/sets various internal readline variables

readline_info

(PHP 4, PHP 5, PHP 7)

readline_info — Gets/sets various internal readline variables

Описание

mixed readline_info ([ string $varname [, string $newvalue ]] )

Gets or sets various internal readline variables.

Список параметров

varname

A variable name.

newvalue

If provided, this will be the new value of the setting.

Возвращаемые значения

If called with no parameters, this function returns an array of values for all the setting readline uses. The elements will be indexed by the following values: done, end, erase_empty_line, library_version, line_buffer, mark, pending_input, point, prompt, readline_name, and terminal_name.

If called with one or two parameters, the old value is returned.


Lists the history

  • « readline_info
  • readline_on_new_line »
  • PHP Manual
  • Readline Функции
  • Lists the history

readline_list_history

(PHP 4, PHP 5, PHP 7)

readline_list_history — Lists the history

Описание

array readline_list_history ( void )

Gets the entire command line history.

Возвращаемые значения

Returns an array of the entire command line history. The elements are indexed by integers starting at zero.


Inform readline that the cursor has moved to a new line

  • « readline_list_history
  • readline_read_history »
  • PHP Manual
  • Readline Функции
  • Inform readline that the cursor has moved to a new line

readline_on_new_line

(PHP 5 >= 5.1.0, PHP 7)

readline_on_new_line — Inform readline that the cursor has moved to a new line

Описание

void readline_on_new_line ( void )

Tells readline that the cursor has moved to a new line.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Reads the history

  • « readline_on_new_line
  • readline_redisplay »
  • PHP Manual
  • Readline Функции
  • Reads the history

readline_read_history

(PHP 4, PHP 5, PHP 7)

readline_read_history — Reads the history

Описание

bool readline_read_history ([ string $filename ] )

This function reads a command history from a file.

Список параметров

filename

Path to the filename containing the command history.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Redraws the display

  • « readline_read_history
  • readline_write_history »
  • PHP Manual
  • Readline Функции
  • Redraws the display

readline_redisplay

(PHP 5 >= 5.1.0, PHP 7)

readline_redisplay — Redraws the display

Описание

void readline_redisplay ( void )

Redraws readline to redraw the display.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Writes the history

  • « readline_redisplay
  • readline »
  • PHP Manual
  • Readline Функции
  • Writes the history

readline_write_history

(PHP 4, PHP 5, PHP 7)

readline_write_history — Writes the history

Описание

bool readline_write_history ([ string $filename ] )

This function writes the command history to a file.

Список параметров

filename

Path to the saved file.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Reads a line

  • « readline_write_history
  • Расширения для сжатия и архивации »
  • PHP Manual
  • Readline Функции
  • Reads a line

readline

(PHP 4, PHP 5, PHP 7)

readline — Reads a line

Описание

string readline ([ string $prompt ] )

Reads a single line from the user. You must add this line to the history yourself using readline_add_history().

Список параметров

prompt

You may specify a string with which to prompt the user.

Возвращаемые значения

Returns a single string from the user. The line returned has the ending newline removed.

Примеры

Пример #1 readline() Example

<?php
//get 3 commands from user
for ($i=0; $i < 3; $i++) {
        $line = readline("Command: ");
        readline_add_history($line);
}

//dump history
print_r(readline_list_history());

//dump variables
print_r(readline_info());
?>


Расширения для сжатия и архивации

  • Bzip2
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Bzip2
  • LZF
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • LZF Функции
  • Phar
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Using Phar Archives
    • Creating Phar Archives
    • What makes a phar a phar and not a tar or a zip?
    • Phar — Класс Phar
    • PharData — The PharData class
    • PharFileInfo — The PharFileInfo class
    • PharException — The PharException class
  • Rar — Архивирование Rar
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Rar
    • RarArchive — Класс RarArchive
    • RarEntry — Класс RarEntry
    • RarException — Класс RarException
  • Zip
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • ZipArchive — Класс ZipArchive
    • Zip Функции
  • Zlib
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Zlib;


Bzip2

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Bzip2
    • bzclose — Закрывает файл bzip2
    • bzcompress — Сжимает строку с использованием bzip2
    • bzdecompress — Распаковывает данные, сжатые с использованием bzip2
    • bzerrno — Возвращает код ошибки работы с bzip2
    • bzerror — Возвращает код и строку ошибки работы с bzip2 в виде массива
    • bzerrstr — Возвращает строку ошибки работы с bzip2
    • bzflush — Форсирует запись всех буферизированных данных
    • bzopen — Открывает файл, сжатый с использованием bzip2
    • bzread — Бинарно-безопасное чтение файла bzip2
    • bzwrite — Бинарно-безопасная запись bzip2 файла


Введение

Функции bzip2 используются для прозрачного чтения и записи архивов bzip2 (.bz2).


Требования

Расширение использует функции библиотеки » bzip2 (автор: Julian Seward) и требует bzip2/libbzip2 версий >= 1.0.x.


Установка

Поддержка Bzip2 в PHP не включена по умолчанию, для её включения вам следует скомпилировать PHP с указанием директивы --with-bz2[=DIR] .


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Расширение определяет один новый тип ресурсов: указатель на bz2-файл, с которым идёт работа.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Bzip2
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Следующий пример откроет временный файл, запишет в него тестовую строку, после чего выведет содержимое файла.

Пример #1 Пример работы с bzip2

<?php

$filename = "/tmp/testfile.bz2";
$str = "This is a test string.\n";

// открываем файл для записи
$bz = bzopen($filename, "w");

// пишем строку в файл
bzwrite($bz, $str);

// закрываем файл
bzclose($bz);

// открываем файл для чтения
$bz = bzopen($filename, "r");

// читаем 10 символов
echo bzread($bz, 10);

// выводим всё, до конца файла (или следующие 1024 символа) и закрываем его.
echo bzread($bz);

bzclose($bz);

?>


Bzip2

Содержание

  • bzclose — Закрывает файл bzip2
  • bzcompress — Сжимает строку с использованием bzip2
  • bzdecompress — Распаковывает данные, сжатые с использованием bzip2
  • bzerrno — Возвращает код ошибки работы с bzip2
  • bzerror — Возвращает код и строку ошибки работы с bzip2 в виде массива
  • bzerrstr — Возвращает строку ошибки работы с bzip2
  • bzflush — Форсирует запись всех буферизированных данных
  • bzopen — Открывает файл, сжатый с использованием bzip2
  • bzread — Бинарно-безопасное чтение файла bzip2
  • bzwrite — Бинарно-безопасная запись bzip2 файла


Закрывает файл bzip2

  • « Bzip2
  • bzcompress »
  • PHP Manual
  • Bzip2
  • Закрывает файл bzip2

bzclose

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzclose — Закрывает файл bzip2

Описание

int bzclose ( resource $bz )

Закрывает переданный указатель на файл bzip2.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • bzopen() - Открывает файл, сжатый с использованием bzip2


Сжимает строку с использованием bzip2

  • « bzclose
  • bzdecompress »
  • PHP Manual
  • Bzip2
  • Сжимает строку с использованием bzip2

bzcompress

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzcompress — Сжимает строку с использованием bzip2

Описание

mixed bzcompress ( string $source [, int $blocksize = 4 [, int $workfactor = 0 ]] )

bzcompress() сжимает переданную строку и возвращает ее в виде закодированных данных bzip2.

Список параметров

source

Сжимаемая строка.

blocksize

Определяет размера блока, используемый при сжатии, должен быть числом в диапазоне от 1 до 9, где 9 даст наилучшее, но более ресурсоемкое сжатие.

workfactor

Контролирует поведение фазы компрессии в худшем случае, когда входные данные являются часто повторяющимися. Параметр может принимать значения между 0 и 250, где 0 означает специальный случай.

Генерируемый результат не зависит от параметра workfactor и является одним и тем же.

Возвращаемые значения

Сжатая строка или код ошибки в случае неудачного завершения работы.

Примеры

Пример #1 Сжатие данных

<?php
$str = "sample data";
$bzstr = bzcompress($str, 9);
echo $bzstr;
?>

Смотрите также

  • bzdecompress() - Распаковывает данные, сжатые с использованием bzip2


Распаковывает данные, сжатые с использованием bzip2

  • « bzcompress
  • bzerrno »
  • PHP Manual
  • Bzip2
  • Распаковывает данные, сжатые с использованием bzip2

bzdecompress

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzdecompress — Распаковывает данные, сжатые с использованием bzip2

Описание

mixed bzdecompress ( string $source [, int $small = 0 ] )

bzdecompress() распаковывает переданную строку, содержащую сжатые bzip2 данные.

Список параметров

source

Распаковываемая строка.

small

Если TRUE, то будет использован альтернативный алгоритм распаковки, использующий меньше памяти (максимально требуемая память находится в районе 2300K), но работает приблизительно вдвое медленнее.

Смотрите » документацию по bzip2 для более подробной информации об этой возможности.

Возвращаемые значения

Распакованная строка или код ошибки в случае неудачного завершения работы.

Примеры

Пример #1 Распаковка строки

<?php
$start_str = "This is not an honest face?";
$bzstr = bzcompress($start_str);

echo "Compressed String: ";
echo $bzstr;
echo "\n<br />\n";

$str = bzdecompress($bzstr);
echo "Decompressed String: ";
echo $str;
echo "\n<br />\n";
?>

Смотрите также

  • bzcompress() - Сжимает строку с использованием bzip2


Возвращает код ошибки работы с bzip2

  • « bzdecompress
  • bzerror »
  • PHP Manual
  • Bzip2
  • Возвращает код ошибки работы с bzip2

bzerrno

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzerrno — Возвращает код ошибки работы с bzip2

Описание

int bzerrno ( resource $bz )

Возвращает код любой bzip2 ошибки, произошедшей с переданным указателем на файл.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешный открытый bzopen().

Возвращаемые значения

Возвращает код ошибки в виде целого числа.

Смотрите также

  • bzerror() - Возвращает код и строку ошибки работы с bzip2 в виде массива
  • bzerrstr() - Возвращает строку ошибки работы с bzip2


Возвращает код и строку ошибки работы с bzip2 в виде массива

  • « bzerrno
  • bzerrstr »
  • PHP Manual
  • Bzip2
  • Возвращает код и строку ошибки работы с bzip2 в виде массива

bzerror

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzerror — Возвращает код и строку ошибки работы с bzip2 в виде массива

Описание

array bzerror ( resource $bz )

Возвращает ассоциативный массив с кодом и строкой ошибки, произошедшей с переданным файловым указателем.

Список параметров

bz

Файловый указатель. Должен быть корректным и указывать на файл, успешно открытый bzopen().

Возвращаемые значения

Возвращает ассоциативный массив с кодом ошибки с ключом errno, и строкой ошибки с ключом errstr.

Примеры

Пример #1 Пример использования bzerror()

<?php
$error = bzerror($bz);

echo $error["errno"];
echo $error["errstr"];
?>

Смотрите также

  • bzerrno() - Возвращает код ошибки работы с bzip2
  • bzerrstr() - Возвращает строку ошибки работы с bzip2


Возвращает строку ошибки работы с bzip2

  • « bzerror
  • bzflush »
  • PHP Manual
  • Bzip2
  • Возвращает строку ошибки работы с bzip2

bzerrstr

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzerrstr — Возвращает строку ошибки работы с bzip2

Описание

string bzerrstr ( resource $bz )

Возвращает строку с ошибкой bzip2, произошедшей с переданным указателем на файл.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

Возвращаемые значения

Возвращает строку, содержащую сообщение об ошибке.

Смотрите также

  • bzerrno() - Возвращает код ошибки работы с bzip2
  • bzerror() - Возвращает код и строку ошибки работы с bzip2 в виде массива


Форсирует запись всех буферизированных данных

  • « bzerrstr
  • bzopen »
  • PHP Manual
  • Bzip2
  • Форсирует запись всех буферизированных данных

bzflush

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzflush — Форсирует запись всех буферизированных данных

Описание

bool bzflush ( resource $bz )

Форсирует запись всех буферизированных bzip2 данных в файл, на который ссылается указатель bz.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • bzread() - Бинарно-безопасное чтение файла bzip2
  • bzwrite() - Бинарно-безопасная запись bzip2 файла


Открывает файл, сжатый с использованием bzip2

  • « bzflush
  • bzread »
  • PHP Manual
  • Bzip2
  • Открывает файл, сжатый с использованием bzip2

bzopen

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzopen — Открывает файл, сжатый с использованием bzip2

Описание

resource bzopen ( mixed $file , string $mode )

bzopen() открывает bzip2 (.bz2) файл для чтения либо записи.

Список параметров

file

Имя открываемого файла, или существующий ресурс потока.

mode

Поддерживаются только 'r' (чтение) и 'w' (запись). Все остальное заставит bzopen() вернуть FALSE.

Возвращаемые значения

bzopen() возвращается указатель на открытый файл, либо FALSE, если файл открыть не удалось.

Примеры

Пример #1 Пример использования bzopen()

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Не могу открыть $file для чтения");

bzclose($bz);

?>

Смотрите также

  • bzclose() - Закрывает файл bzip2


Бинарно-безопасное чтение файла bzip2

  • « bzopen
  • bzwrite »
  • PHP Manual
  • Bzip2
  • Бинарно-безопасное чтение файла bzip2

bzread

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzread — Бинарно-безопасное чтение файла bzip2

Описание

string bzread ( resource $bz [, int $length = 1024 ] )

bzread() читает из переданного bzip2 файлового указателя.

Чтение останавливается, если было считано length (несжатых) байт или был достигнут конец файла, в зависимости от того, что произойдет раньше.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

length

Если не указан, bzread() будет считывать 1024 (несжатых) байта за один раз. За один раз может быть считано максимум 8192 байта.

Возвращаемые значения

Возвращает распакованные данные либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования bzread()

<?php

$file = "/tmp/foo.bz2";
$bz = bzopen($file, "r") or die("Невозможно открыть $file");

$decompressed_file = '';
while (!feof($bz)) {
  $decompressed_file .= bzread($bz, 4096);
}
bzclose($bz);

echo "Содержимое $file: <br />\n";
echo $decompressed_file;

?>

Смотрите также

  • bzwrite() - Бинарно-безопасная запись bzip2 файла
  • feof() - Проверяет, достигнут ли конец файла
  • bzopen() - Открывает файл, сжатый с использованием bzip2


Бинарно-безопасная запись bzip2 файла

  • « bzread
  • LZF »
  • PHP Manual
  • Bzip2
  • Бинарно-безопасная запись bzip2 файла

bzwrite

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

bzwrite — Бинарно-безопасная запись bzip2 файла

Описание

int bzwrite ( resource $bz , string $data [, int $length ] )

bzwrite() записывает строку в переданный bzip2 файловый поток.

Список параметров

bz

Указатель на файл. Должен быть корректным и указывать на файл, успешно открытый bzopen().

data

Записываемые данные.

length

Если указан, запись остановится после length (несжатых) записанных байт, либо если был достигнут конец data, в зависимости от того, что произойдет первым.

Возвращаемые значения

Возвращает количество записанных байт или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования bzwrite()

<?php
$str = "uncompressed data";
$bz = bzopen("/tmp/foo.bz2", "w");
bzwrite($bz, $str, strlen($str));
bzclose($bz);
?>

Смотрите также

  • bzread() - Бинарно-безопасное чтение файла bzip2
  • bzopen() - Открывает файл, сжатый с использованием bzip2


LZF

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • LZF Функции
    • lzf_compress — LZF compression
    • lzf_decompress — LZF decompression
    • lzf_optimized_for — Determines what LZF extension was optimized for


Введение

LZF is a very fast compression algorithm, ideal for saving space with only slight speed cost. It can be optimized for speed or space at the time of compilation. This extension is using » liblzf library by Marc Lehmann for its operations.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/lzf.

In order to use these functions you must compile PHP with lzf support by using the --with-lzf[=DIR] configure option. You may also pass --enable-lzf-better-compression to optimize LZF for space rather than speed.

Windows users will enable php_lzf.dll inside of php.ini in order to use these functions. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Типы ресурсов
  • LZF Функции »
  • PHP Manual
  • LZF
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


LZF Функции

Содержание

  • lzf_compress — LZF compression
  • lzf_decompress — LZF decompression
  • lzf_optimized_for — Determines what LZF extension was optimized for


LZF compression

  • « LZF Функции
  • lzf_decompress »
  • PHP Manual
  • LZF Функции
  • LZF compression

lzf_compress

(PECL lzf >= 0.1.0)

lzf_compress — LZF compression

Описание

string lzf_compress ( string $data )

lzf_compress() compresses the given data string using LZF encoding.

Список параметров

data

The string to compress.

Возвращаемые значения

Returns the compressed data or FALSE if an error occurred.

Смотрите также

  • lzf_decompress() - LZF decompression


LZF decompression

  • « lzf_compress
  • lzf_optimized_for »
  • PHP Manual
  • LZF Функции
  • LZF decompression

lzf_decompress

(PECL lzf >= 0.1.0)

lzf_decompress — LZF decompression

Описание

string lzf_decompress ( string $data )

lzf_compress() decompresses the given data string containing lzf encoded data.

Список параметров

data

The compressed string.

Возвращаемые значения

Returns the decompressed data or FALSE if an error occurred.

Смотрите также

  • lzf_compress() - LZF compression


Determines what LZF extension was optimized for

  • « lzf_decompress
  • Phar »
  • PHP Manual
  • LZF Функции
  • Determines what LZF extension was optimized for

lzf_optimized_for

(PECL lzf >= 1.0.0)

lzf_optimized_for — Determines what LZF extension was optimized for

Описание

int lzf_optimized_for ( void )

Determines what was LZF extension optimized for during compilation.

Возвращаемые значения

Returns 1 if LZF was optimized for speed, 0 for compression.


Phar

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Using Phar Archives
    • Using Phar Archives: Introduction
    • Using Phar Archives: the phar stream wrapper
    • Using Phar Archives: the Phar and PharData class
  • Creating Phar Archives
    • Creating Phar Archives: Introduction
  • What makes a phar a phar and not a tar or a zip?
    • Ingredients of all Phar archives, independent of file format
    • Phar file stub
    • Head-to-head comparison of Phar, Tar and Zip
    • Tar-based phars
    • Zip-based phars
    • Phar File Format
    • Global Phar bitmapped flags
    • Phar manifest file entry definition
    • Phar Signature format
  • Phar — Класс Phar
    • Phar::addEmptyDir — Add an empty directory to the phar archive
    • Phar::addFile — Add a file from the filesystem to the phar archive
    • Phar::addFromString — Add a file from a string to the phar archive
    • Phar::apiVersion — Returns the api version
    • Phar::buildFromDirectory — Construct a phar archive from the files within a directory.
    • Phar::buildFromIterator — Construct a phar archive from an iterator.
    • Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2
    • Phar::canWrite — Returns whether phar extension supports writing and creating phars
    • Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression
    • Phar::compressAllFilesBZIP2 — Compresses all files in the current Phar archive using Bzip2 compression
    • Phar::compressAllFilesGZ — Compresses all files in the current Phar archive using Gzip compression
    • Phar::compressFiles — Compresses all files in the current Phar archive
    • Phar::__construct — Construct a Phar archive object
    • Phar::convertToData — Convert a phar archive to a non-executable tar or zip file
    • Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format
    • Phar::copy — Copy a file internal to the phar archive to another new file within the phar
    • Phar::count — Returns the number of entries (files) in the Phar archive
    • Phar::createDefaultStub — Create a phar-file format specific stub
    • Phar::decompress — Decompresses the entire Phar archive
    • Phar::decompressFiles — Decompresses all files in the current Phar archive
    • Phar::delMetadata — Deletes the global metadata of the phar
    • Phar::delete — Delete a file within a phar archive
    • Phar::extractTo — Extract the contents of a phar archive to a directory
    • Phar::getMetadata — Returns phar archive meta-data
    • Phar::getModified — Return whether phar was modified
    • Phar::getSignature — Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
    • Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive
    • Phar::getSupportedCompression — Return array of supported compression algorithms
    • Phar::getSupportedSignatures — Return array of supported signature types
    • Phar::getVersion — Return version info of Phar archive
    • Phar::hasMetadata — Returns whether phar has global meta-data
    • Phar::interceptFileFuncs — instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
    • Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
    • Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
    • Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
    • Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename
    • Phar::isWritable — Returns true if the phar archive can be modified
    • Phar::loadPhar — Loads any phar archive with an alias
    • Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest
    • Phar::mount — Mount an external path or file to a virtual location within the phar archive
    • Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution
    • Phar::offsetExists — determines whether a file exists in the phar
    • Phar::offsetGet — Gets a PharFileInfo object for a specific file
    • Phar::offsetSet — set the contents of an internal file to those of an external file
    • Phar::offsetUnset — remove a file from a phar
    • Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive
    • Phar::setAlias — Set the alias for the Phar archive
    • Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
    • Phar::setMetadata — Sets phar archive meta-data
    • Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it.
    • Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive
    • Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk
    • Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk
    • Phar::uncompressAllFiles — Uncompresses all files in the current Phar archive
    • Phar::unlinkArchive — Completely remove a phar archive from disk and from memory
    • Phar::webPhar — mapPhar for web-based phars. front controller for web applications
  • PharData — The PharData class
    • PharData::addEmptyDir — Add an empty directory to the tar/zip archive
    • PharData::addFile — Add a file from the filesystem to the tar/zip archive
    • PharData::addFromString — Add a file from the filesystem to the tar/zip archive
    • PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory.
    • PharData::buildFromIterator — Construct a tar or zip archive from an iterator.
    • PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression
    • PharData::compressFiles — Compresses all files in the current tar/zip archive
    • PharData::__construct — Construct a non-executable tar or zip archive object
    • PharData::convertToData — Convert a phar archive to a non-executable tar or zip file
    • PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive
    • PharData::copy — Copy a file internal to the phar archive to another new file within the phar
    • PharData::decompress — Decompresses the entire Phar archive
    • PharData::decompressFiles — Decompresses all files in the current zip archive
    • PharData::delMetadata — Deletes the global metadata of a zip archive
    • PharData::delete — Delete a file within a tar/zip archive
    • PharData::extractTo — Extract the contents of a tar/zip archive to a directory
    • PharData::isWritable — Returns true if the tar/zip archive can be modified
    • PharData::offsetSet — set the contents of a file within the tar/zip to those of an external file or string
    • PharData::offsetUnset — remove a file from a tar/zip archive
    • PharData::setAlias — dummy function (Phar::setAlias is not valid for PharData)
    • PharData::setDefaultStub — dummy function (Phar::setDefaultStub is not valid for PharData)
    • Phar::setMetadata — Sets phar archive meta-data
    • Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it.
    • PharData::setStub — dummy function (Phar::setStub is not valid for PharData)
  • PharFileInfo — The PharFileInfo class
    • PharFileInfo::chmod — Sets file-specific permission bits
    • PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression
    • PharFileInfo::__construct — Construct a Phar entry object
    • PharFileInfo::decompress — Decompresses the current Phar entry within the phar
    • PharFileInfo::delMetadata — Deletes the metadata of the entry
    • PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified
    • PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive
    • PharFileInfo::getMetadata — Returns file-specific meta-data saved with a file
    • PharFileInfo::getPharFlags — Returns the Phar file entry flags
    • PharFileInfo::hasMetadata — Returns the metadata of the entry
    • PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified
    • PharFileInfo::isCompressed — Returns whether the entry is compressed
    • PharFileInfo::isCompressedBZIP2 — Returns whether the entry is compressed using bzip2
    • PharFileInfo::isCompressedGZ — Returns whether the entry is compressed using gz
    • PharFileInfo::setCompressedBZIP2 — Compresses the current Phar entry within the phar using Bzip2 compression
    • PharFileInfo::setCompressedGZ — Compresses the current Phar entry within the phar using gz compression
    • PharFileInfo::setMetadata — Sets file-specific meta-data saved with a file
    • PharFileInfo::setUncompressed — Uncompresses the current Phar entry within the phar, if it is compressed
  • PharException — The PharException class
    • PharException — The PharException class provides a phar-specific exception class for try/catch blocks.


Введение

Модуль phar предоставляет возможность поместить целое PHP-приложение в один единственный файл, именуемый phar (PHP Archive), для его более простого распространения и установки. Также, модуль phar обеспечивает единый способ создания и манипулирования архивами tar и zip с помошью класса PharData, примерно как PDO обеспечивает единый интерфейс для доступа к различным базам данных. Но PDO не может конвертировать между различными базами данных, а Phar может конвертировать данные между форматами tar, zip и phar всего одной строкой кода. Смотри Phar::convertToExecutable() для примера.

Что же такое phar? Phar-архивы лучше всего можно охарактеризовать как удобный способ группировки нескольких файлов в один. Также phar архив предоставляет возможность распространять целое PHP-приложение в одном единственном файле и запускать его прямо из этого файла без необходимости распаковывать его на диск. Кроме того, phar-архивы могут выполняться PHP с той же легкостью, что и любые другие файлы, как из коммандной строки, так и через веб-сервер. Phar - это как флешка для PHP-приложений.

Phar реализует эту функциональность через Stream Wrapper. Обычно, чтобы использовать в PHP-скрипте внешний файл, вы бы воспользовались, например, include

Пример #1 Использование внешнего файла

<?php
 include '/path/to/external/file.php';
 ?>

PHP может рассматривать это как преобразование /path/to/external/file.php в обертку потока file:///path/to/external/file.php, и в действительности он использует потоковые функции обертки простого файлового потока для доступа ко всем локальным файлам.

Чтобы использовать файл file.php, находящийся внутри phar-архива /path/to/myphar.phar, используется синтаксис очень похожий на синтаксис file:// выше.

Пример #2 Использование файла внутри phar-архива

<?php
 include 'phar:///path/to/myphar.phar/file.php';
 ?>

На самом деле, можно рассматривать phar-архив как если бы это был внешний диск, используя любые fopen()-подобные функции, opendir() и mkdir()-подобные функции для чтения, изменения, или создания новых файлов и директорий внутри phar-архива. Это позволяет целому PHP-приложению распространяться в одном файле и запускаться прямо из этого файла.

Наиболее часто используемое применение для phar-архива - это распространение целого приложения в одном файле. Например, установщик PEAR, который поставляется вместе с PHP, является phar-архивом. Для использования phar-архива распространяемого таким способом, архив может быть выполнен через консоль или через веб-сервер.

Phar архивы могут распространяться как архивы tar и zip, или как файлы в собственном формате phar, созданном специально для модуля phar. Каждый формат файла имеет как преимущества, так и недостатки. Форматы tar и zip могут быть прочитаны или извлечены любой сторонней утилитой которая может работать с этими форматами. Но чтобы PHP мог их запускать, ему будет необходим модуль phar. Файлы в phar-формате уникальны для модуля phar и могут быть созданы только им или PEAR-пакетом » PHP_Archive. Но их преимущество в том, что приложение созданное в этом формате будет запускаться даже если модуль phar не включен.

Другими словами, даже если модуль phar отключен, phar архив все равно может быть выполнен или подключен. Доступ к отдельным файлам в архиве возможен только с модулем phar, если только архив не был создан с помощью PHP_Archive.

Модуль phar также способен конвертировать phar-архив из tar в zip или phar-формат одной командой:

Пример #3 Конвертирование phar-архива из формата phar в формат tar

<?php
 $phar = new Phar('myphar.phar');
 $pgz = $phar->convertToExecutable(Phar::TAR, Phar::GZ); // создаст myphar.phar.tar.gz
 ?>

Phar может сжимать отдельные файлы или архив целиком используя gzip-компрессию или bzip2-компрессию, а также автоматически преверять целостность архива используя сигнатуры MD5, SHA-1, SHA-256 или SHA-512.

Наконец, модуль Phar заботится о вашей безопасности, и отключает доступ на запись для исполняемых phar-архивов по-умолчанию, а также требует отключения на системном уровне настройки phar.readonly в php.ini для создания или изменения phar-архивов. Обычные, не исполняемые, tar и zip архивы, всегда могут быть созданы или изменены с помощью класса PharData.

Если вы создаете приложение с целью распространения, вы возможно захотите прочитать раздел Как создавать Phar-архивы. Если вам нужно больше информации об отличиях между тремя поддерживаемыми phar форматами файлов, вам следует прочитать раздел Phar, Tar и Zip.

Если вы используете phar-приложение, то полезные советы находятся в разделе Как использовать phar-архивы

Слово phar это сокращение от PHP и Archive(Архив) и оно частично основано на jar (Java Archive) знакомым Java-разработчикам.

Реализация Phar-архивов основана на PEAR-пакете » PHP_Archive и детали реализации схожи, тем не менее модуль Phar гораздо мощнее. В дополнение, модуль Phar позволяет большинству PHP-приложений быть запущенными без изменений, тогда как phar-архивы основанные на PHP_Archive зачастую требуют существенных изменений чтобы работать.


Требования

Phar требует PHP 5.2.0 или новее. Дополнительные возможности требуют наличие расширения SPL, чтобы получить возможность итеративного доступа, а также доступа к содержимому файла Phar как к массиву. Поток phar не требует никаких дополнительных модулей для работы.

Дополнительно, вы можете подключить модули zlib и bzip2, чтобы воспользоваться поддерживаемой phar-ом компрессией. Также, чтобы иметь возможность подписывания OpenSSL, должно быть подключено расширение OpenSSL.

Обратите внимание, что ошибка в фильтре потока zlib.deflate, исправленная в PHP версии 5.2.6 и новее, может вызвать усечение gzip и bzip-сжатых phar-архивов.

Если PHP 5.3 собран с опцией --enable-zend-multibyte, то phar будет зависить от ini-опции detect_unicode.


Установка

Расширение Phar встроено в PHP начиная с версии 5.3.0. Для предыдущих версий PHP оно может быть установлено из репозитория PECL. Более детальные сведения и история версий доступны на » странице Phar в репозитории PECL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Filesystem and Streams Configuration Options
Имя | По умолчанию | Меняемо | Список изменений
phar.readonly | "1" | PHP_INI_ALL |
phar.require_hash | "1" | PHP_INI_ALL |
phar.extract_list | "" | PHP_INI_ALL | Available from phar 1.1.0 to 1.2.3, removed in 2.0.0.
phar.cache_list | "" | PHP_INI_SYSTEM | Available from phar 2.0.0.

Краткое разъяснение конфигурационных директив.

phar.readonly boolean

This option disables creation or modification of Phar archives using the phar stream or Phar object's write support. This setting should always be enabled on production machines, as the phar extension's convenient write support could allow straightforward creation of a php-based virus when coupled with other common security vulnerabilities.

Замечание:

This setting can only be unset in php.ini due to security reasons. If phar.readonly is disabled in php.ini, the user may enable phar.readonly in a script or disable it later. If phar.readonly is enabled in php.ini, a script may harmlessly "re-enable" the INI variable, but may not disable it.

phar.require_hash boolean

This option will force all opened Phar archives to contain some kind of signature (currently MD5, SHA1, SHA256 and SHA512 are supported), and will refuse to process any Phar archive that does not contain a signature.

Замечание:

This setting can only be unset in php.ini due to security reasons. If phar.require_hash is disabled in php.ini, the user may enable phar.require_hash in a script or disable it later. If phar.require_hash is enabled in php.ini, a script may harmlessly "re-enable" the INI variable, but may not disable it.

This setting does not affect reading plain tar files with the PharData class.

phar.extract_list string

This INI setting has been removed as of phar 2.0.0

Allows mappings from a full path to a phar archive or its alias to the location of its extracted files. The format of the parameter is name=archive,name2=archive2. This allows extraction of phar files to disk, and allows phar to act as a kind of mapper to extracted disk files. This is often done for performance reasons, or to assist with debugging a phar.

Пример #1 phar.extract_list usage example

in php.ini:
phar.extract_list = archive=/full/path/to/archive/,arch2=/full/path/to/arch2
<?php
include "phar://archive/content.php";
include "phar://arch2/foo.php";
?>

phar.cache_list string

This INI setting was added in phar 2.0.0

Allows mapping phar archives to be pre-parsed at web server startup, providing a performance improvement that brings running files out of a phar archive very close to the speed of running those files from a traditional disk-based installation.

Пример #2 phar.cache_list usage example

in php.ini (windows):
phar.cache_list =C:\path\to\phar1.phar;C:\path\to\phar2.phar
in php.ini (unix):
phar.cache_list =/path/to/phar1.phar:/path/to/phar2.phar


Типы ресурсов

Модуль Phar предоставляет поток phar, который позволяет прозрачно обращаться к файлам внутри phar-архива. Смотрите также описание формата Phar-файла.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Phar compression constants
Constant | Value | Description
Phar::NONE (integer) | 0x00000000 | no compression
Phar::COMPRESSED (integer) | 0x0000F000 | bitmask that can be used with file flags to determine if any compression is present
Phar::GZ (integer) | 0x00001000 | zlib (gzip) compression
Phar::BZ2 (integer) | 0x00002000 | bzip2 compression
Phar file format constants
Constant | Value | Description
Phar::SAME (integer) | 0 | retain the same file format
Phar::PHAR (integer) | 1 | phar file format
Phar::TAR (integer) | 2 | tar file format
Phar::ZIP (integer) | 3 | zip file format
Phar signature constants
Constant | Value | Description
Phar::MD5 (integer) | 0x0001 | signature with md5 hash algorithm
Phar::SHA1 (integer) | 0x0002 | signature with sha1 hash algorithm
Phar::SHA256 (integer) | 0x0003 | signature with sha256 hash algorithm (requires hash extension)
Phar::SHA512 (integer) | 0x0004 | signature with sha512 hash algorithm (requires hash extension)
Phar::OPENSSL (integer) | 0x0010 | signature with OpenSSL public/private key pair. This is a true, asymmetric key signature.
Phar webPhar mime override constants
Constant | Value | Description
Phar::PHP (integer) | 1 | used to instruct the mimeoverrides parameter of Phar::webPhar() that the extension should be parsed as a PHP file
Phar::PHPS (integer) | 2 | used to instruct the mimeoverrides parameter of Phar::webPhar() that the extension should be parsed as a PHP source file through highlight_file()


Using Phar Archives

Содержание

  • Using Phar Archives: Introduction
  • Using Phar Archives: the phar stream wrapper
  • Using Phar Archives: the Phar and PharData class


Using Phar Archives: Introduction

Phar archives are similar in concept to Java JAR archives, but are tailored to the needs and to the flexibility of PHP applications. A Phar archive is used to distribute a complete PHP application or library in a single file. A Phar archive application is used exactly like any other PHP application:

php coolapplication.phar

Using a Phar archive library is identical to using any other PHP library:

<?php
include 'coollibrary.phar';
?>

The phar stream wrapper provides the core of the phar extension, and is explained in detail here. The phar stream wrapper allows accessing the files within a phar archive using PHP's standard file functions fopen(), opendir(), and others that work on regular files. The phar stream wrapper supports all read/write operations on both files and directories.

<?php
include 'phar://coollibrary.phar/internal/file.php';
header('Content-type: image/jpeg');
// phars can be accessed by full path or by alias
echo file_get_contents('phar:///fullpath/to/coollibrary.phar/images/wow.jpg');
?>

The Phar class implements advanced functionality for accessing files and for creating phar archives. The Phar class is explained in detail here.

<?php
try {
    // open an existing phar
    $p = new Phar('coollibrary.phar', 0);
    // Phar extends SPL's DirectoryIterator class
    foreach (new RecursiveIteratorIterator($p) as $file) {
        // $file is a PharFileInfo class, and inherits from SplFileInfo
        echo $file->getFileName() . "\n";
        echo file_get_contents($file->getPathName()) . "\n"; // display contents;
    }
    if (isset($p['internal/file.php'])) {
        var_dump($p['internal/file.php']->getMetadata());
    }

    // create a new phar - phar.readonly must be 0 in php.ini
    // phar.readonly is enabled by default for security reasons.
    // On production servers, Phars need never be created,
    // only executed.
    if (Phar::canWrite()) {
        $p = new Phar('newphar.tar.phar', 0, 'newphar.tar.phar');
        // make this a tar-based phar archive, compressed with gzip compression (.tar.gz)
        $p = $p->convertToExecutable(Phar::TAR, Phar::GZ);

        // create transaction - nothing is written to newphar.phar
        // until stopBuffering() is called, although temporary storage is needed
        $p->startBuffering();
        // add all files in /path/to/project, saving in the phar with the prefix "project"
        $p->buildFromIterator(new RecursiveIteratorIterator(new DirectoryIterator('/path/to/project')), '/path/to/');

        // add a new file via the array access API
        $p['file1.txt'] = 'Information';
        $fp = fopen('hugefile.dat', 'rb');
        // copy all data from the stream
        $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');
        // any value can be saved as file-specific meta-data
        $p['images/wow.jpg']->setMetadata(array('mime-type' => 'image/jpeg'));
        $p['index.php'] = file_get_contents('index.php');
        $p->setMetadata(array('bootstrap' => 'index.php'));

        // save the phar archive to disk
        $p->stopBuffering();
    }
} catch (Exception $e) {
    echo 'Could not open Phar: ', $e;
}
?>

In addition, verification of phar file contents can be done using any of the supported symmetric hash algorithms (MD5, SHA1, SHA256 and SHA512 if ext/hash is enabled) and using asymmetric public/private key signing using OpenSSL (new in Phar 2.0.0). To take advantage of OpenSSL signing, you need to generate a public/private key pair, and use the private key to set the signature using Phar::setSignatureAlgorithm(). In addition, the public key as extracted using this code:

<?php
$public = openssl_get_publickey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($public, $pkey);
?>
must be saved adjacent to the phar archive it verifies. If the phar archive is saved as /path/to/my.phar, the public key must be saved as /path/to/my.phar.pubkey, or phar will be unable to verify the OpenSSL signature.

As of version 2.0.0, The Phar class also provides 3 static methods, Phar::webPhar(), Phar::mungServer() and Phar::interceptFileFuncs() that are crucial to packaging up PHP applications designed for usage on regular filesystems and for web-based applications. Phar::webPhar() implements a front controller that routes HTTP calls to the correct location within the phar archive. Phar::mungServer() is used to modify the values of the $_SERVER array to trick applications that process these values. Phar::interceptFileFuncs() instructs Phar to intercept calls to fopen(), file_get_contents(), opendir(), and all of the stat-based functions (file_exists(), is_readable() and so on) and route all relative paths to locations within the phar archive.

As an example, packaging up a release of the popular phpMyAdmin application for use as a phar archive requires only this simple script and then phpMyAdmin.phar.tar.php can be accessed as a regular file from your web server after modifying the 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
/* Servers configuration */
$i = 0;

/* Server 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\'] = \'\';

/* End of servers configuration */
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 is intended to be executed from a web browser\n";
exit -1;
__HALT_COMPILER();
');
$a->stopBuffering();
?>


Using Phar Archives: the phar stream wrapper

The Phar stream wrapper fully supports fopen() for read and write (not append), unlink(), stat(), fstat(), fseek(), rename() and directory stream operations opendir() and as of version 2.0.0, rmdir() and mkdir().

Individual file compression and per-file metadata can also be manipulated in a Phar archive using stream contexts:

<?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);
?>

The phar stream wrapper does not operate on remote files, and cannot operate on remote files, and so is allowed even when the allow_url_fopen and allow_url_include INI options are disabled.

Although it is possible to create phar archives from scratch just using stream operations, it is best to use the functionality built into the Phar class. The stream wrapper is best used for read-only operations.


Using Phar Archives: the Phar and PharData class

The Phar class supports reading and manipulation of Phar archives, as well as iteration through inherited functionality of the RecursiveDirectoryIterator class. With support for the ArrayAccess interface, files inside a Phar archive can be accessed as if they were part of an associative array.

The PharData class extends the Phar, and allows creating and modifying non-executable (data) tar and zip archives even if phar.readonly=1 in php.ini. As such, PharData::setAlias() and PharData::setStub() are both disabled as the concept of alias and stub are unique to executable phar archives.

It is important to note that when creating a Phar archive, the full path should be passed to the Phar object constructor. Relative paths will fail to initialize.

Assuming that $p is a Phar object initialized as follows:

<?php
$p = new Phar('/path/to/myphar.phar', 0, 'myphar.phar');
?>

An empty Phar archive will be created at /path/to/myphar.phar, or if /path/to/myphar.phar already exists, it will be opened again. The literal myphar.phar demonstrates the concept of an alias that can be used to reference /path/to/myphar.phar in URLs as in:

<?php
// these two calls to file_get_contents() are equivalent if
// /path/to/myphar.phar has an explicit alias of "myphar.phar"
// in its manifest, or if the phar was initialized with the
// previous example's Phar object setup
$f = file_get_contents('phar:///path/to/myphar.phar/whatever.txt');
$f = file_get_contents('phar://myphar.phar/whatever.txt');
?>

With the newly created $p Phar object, the following is possible:

  • $a = $p['file.php'] creates a PharFileInfo class that refers to the contents of phar://myphar.phar/file.php
  • $p['file.php'] = $v creates a new file (phar://myphar.phar/file.php), or overwrites an existing file within myphar.phar. $v can be either a string or an open file pointer, in which case the entire contents of the file will be used to create the new file. Note that $p->addFromString('file.php', $v) is functionally equivalent to the above. Also possible is to add the contents of a file with $p->addFile('/path/to/file.php', 'file.php'). Lastly, an empty directory can be created with $p->addEmptyDir('empty').
  • isset($p['file.php']) can be used to determine whether phar://myphar.phar/file.php exists within myphar.phar.
  • unset($p['file.php']) erases phar://myphar.phar/file.php from myphar.phar.

In addition, the Phar object is the only way to access Phar-specific metadata, through Phar::getMetadata(), and the only way to set or retrieve a Phar archive's PHP loader stub through Phar::getStub() and Phar::setStub(). Additionally, compression for the entire Phar archive at once can only be manipulated using the Phar class.

The full list of Phar object functionality is documented below.

The PharFileInfo class extends the SplFileInfo class, and adds several methods for manipulating Phar-specific details of a file contained within a Phar, such as manipulating compression and metadata.


  • « Using Phar Archives: the Phar and PharData class
  • Creating Phar Archives: Introduction »
  • PHP Manual
  • Phar
  • Creating Phar Archives

Creating Phar Archives

Содержание

  • Creating Phar Archives: Introduction


Creating Phar Archives: Introduction

To be written fully in the near future. Before reading this, be sure to read How to use Phar Archives.

A great place to start is by reading about Phar::buildFromIterator(), and the specifics of the file format choices available for archives. A healthy understanding of what a stub is and does is crucial to phar archive creation, and so Phar::setStub() and Phar::createDefaultStub() are good places to start as well. If you are distributing a web-based application, it is crucial to know about Phar::webPhar() and related method Phar::mungServer(). Any application that accesses its own files should also consider using Phar::interceptFileFuncs().


What makes a phar a phar and not a tar or a zip?

Содержание

  • Ingredients of all Phar archives, independent of file format
  • Phar file stub
  • Head-to-head comparison of Phar, Tar and Zip
  • Tar-based phars
  • Zip-based phars
  • Phar File Format
  • Global Phar bitmapped flags
  • Phar manifest file entry definition
  • Phar Signature format


Ingredients of all Phar archives, independent of file format

All Phar archives contain three to four sections:

  1. a stub

  2. a manifest describing the contents

  3. the file contents

  4. [optional] a signature for verifying Phar integrity (phar file format only)


Phar file stub

A Phar's stub is a simple PHP file. The smallest possible stub follows:

<?php __HALT_COMPILER();

A stub must contain as a minimum, the __HALT_COMPILER(); token at its conclusion. Typically, a stub will contain loader functionality like so:

<?php
Phar::mapPhar();
include 'phar://myphar.phar/index.php';
__HALT_COMPILER();

There are no restrictions on the contents of a Phar stub, except for the requirement that it conclude with __HALT_COMPILER();. The closing PHP tag

?>
may be included or omitted, but there can be no more than 1 space between the ; and the close tag
?>
 or the phar extension will be unable to process the Phar archive's manifest.

In a tar or zip-based phar archive, the stub is stored in the .phar/stub.php file. The default stub for phar-based Phar archives contains approximately 7k of code to extract the contents of the phar and execute them. See Phar::createDefaultStub() for more detail.

The phar alias is stored in a tar or zip-based phar archive in the .phar/alias.txt file as plain text.


Head-to-head comparison of Phar, Tar and Zip

What are the good and the bad things about the three supported file formats in the phar extension? This table attempts to address that question.

Feature matrix: Phar vs. Tar vs. Zip
Feature | Phar | Tar | Zip
Standard File Format | No | Yes | Yes
Can be executed without the Phar Extension [1] | Yes | No | No
Per-file compression | Yes | No | Yes
Whole-archive compression | Yes | Yes | No
Whole-archive signature validation | Yes | Yes | Yes (PHP 5.3.1+)
Web-specific application support | Yes | Yes | Yes
Per-file Meta-data | Yes | Yes | Yes
Whole-Archive Meta-data | Yes | Yes | Yes
Archive creation/modification [2] | Yes | Yes | Yes
Full support for all stream wrapper functions | Yes | Yes | Yes
Can be created/modified even if phar.readonly=1 [3] | No | Yes | Yes

Подсказка

[1] PHP can only directly access the contents of a Phar archive without the Phar extension if it is using a stub that extracts the contents of the phar archive. The stub created by Phar::createDefaultStub() extracts the phar archive and runs its contents from a temporary directory if no phar extension is found.

Подсказка

[2] All write access requires phar.readonly to be disabled in php.ini or on the command-line directly.

Подсказка

[3] Only tar and zip archives without .phar in their filename and without an executable stub .phar/stub.php can be created if phar.readonly=1.


Tar-based phars

Archives based on the tar file format follow the more modern USTAR file format. The design of the tar file header makes them more efficient to access than the zip file format, and almost as efficient as the phar file format. File names are limited to 255 bytes, including full path within the phar archive. There is no limit on the number of files within a tar-based phar archive. These archives can fully compressed in gzip or bzip2 format and still be executed by the Phar extension.

To compress an entire archive, use Phar::compress(). To decompress an entire archive, use Phar::decompress().


Zip-based phars

Archives based on the zip file format support several features built into the zip file format. Per-file and whole-archive metadata is stored in the zip file comment and zip archive comment as a serialized string. Pre-existing zip comments will be successfully read as a string. Per-file compression read/write is supported with zlib compression, and read access is supported with bzip2 compression. There is no limit on the number of files within a zip-based phar archive. Empty directories are stored in the zip archive as files with a trailing slash like my/directory/


Phar File Format

The phar file format is literally laid out as stub/manifest/contents/signature, and stores the crucial information of what is included in the phar archive in its manifest.

The Phar manifest is a highly optimized format that allows per-file specification of file compression, file permissions, and even user-defined meta-data such as file user or group. All values greater than 1 byte are stored in little-endian byte order, with the exception of the API version, which for historical reasons is stored as 3 nibbles in big-endian order.

All unused flags are reserved for future use, and must not be used to store custom information. Use the per-file meta-data facility to store customized information about particular files.

The basic file format of a Phar archive manifest is as follows:

Global Phar manifest format
Size in bytes | Description
4 bytes | Length of manifest in bytes (1 MB limit)
4 bytes | Number of files in the Phar
2 bytes | API version of the Phar manifest (currently 1.0.0)
4 bytes | Global Phar bitmapped flags
4 bytes | Length of Phar alias
?? | Phar alias (length based on previous)
4 bytes | Length of Phar metadata (0 for none)
?? | Serialized Phar Meta-data, stored in serialize() format
at least 24 * number of entries bytes | entries for each file


Global Phar bitmapped flags

Here are the bitmapped flags currently recognized by the Phar extension for the global Phar flat bitmap:

Bitmap values recognized
Value | Description
0x00010000 | If set, this Phar contains a verification signature
0x00001000 | If set, this Phar contains at least 1 file that is compressed with zlib compression
0x00002000 | If set, this Phar contains at least 1 file that is compressed with bzip compression


Phar manifest file entry definition

Each file in the manifest contains the following information:

Phar Manifest file entry
Size in bytes | Description
4 bytes | Filename length in bytes
?? | Filename (length specified in previous)
4 bytes | Un-compressed file size in bytes
4 bytes | Unix timestamp of file
4 bytes | Compressed file size in bytes
4 bytes | CRC32 checksum of un-compressed file contents
4 bytes | Bit-mapped File-specific flags
4 bytes | Serialized File Meta-data length (0 for none)
?? | Serialized File Meta-data, stored in serialize() format

Note that as of API version 1.1.1, empty directories are stored as filenames with a trailing slash like my/directory/

The File-specific bitmap values recognized are:

Bitmap values recognized
Value | Description
0x000001FF | These bits are reserved for defining specific file permissions of a file. Permissions are used for fstat() and can be used to recreate desired permissions upon extraction.
0x00001000 | If set, this file is compressed with zlib compression
0x00002000 | If set, this file is compressed with bzip compression


Phar Signature format

Phars containing a signature always have the signature appended to the end of the Phar archive after the loader, manifest, and file contents. The two signature formats supported at this time are MD5 and SHA1.

Signature format
Length in bytes | Description
16 or 20 bytes | The actual signature, 20 bytes for an SHA1 signature, 16 bytes for an MD5 signature, 32 bytes for an SHA256 signature, and 64 bytes for an SHA512 signature.
4 bytes | Signature flags. 0x0001 is used to define an MD5 signature, 0x0002 is used to define an SHA1 signature, 0x0004 is used to define an SHA256 signature, and 0x0008 is used to define an SHA512 signature. The SHA256 and SHA512 signature support was introduced with API version 1.1.0.
4 bytes | Magic GBMB used to define the presence of a signature.


Класс Phar

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Введение

Класс Phar предостовляет высокоуровневый интерфейс для доступа и создания архивов phar.

Обзор классов

Phar extends RecursiveDirectoryIterator implements Countable , ArrayAccess {
/* Методы */
public void addEmptyDir ( string $dirname )
public void addFile ( string $file [, string $localname ] )
public void addFromString ( string $localname , string $contents )
final public static string apiVersion ( void )
public array buildFromDirectory ( string $base_dir [, string $regex ] )
public array buildFromIterator ( Iterator $iter [, string $base_directory ] )
final public static bool canCompress ([ int $type = 0 ] )
final public static bool canWrite ( void )
public object compress ( int $compression [, string $extension ] )
public bool compressAllFilesBZIP2 ( void )
public bool compressAllFilesGZ ( void )
public void compressFiles ( int $compression )
public __construct ( string $fname [, int $flags [, string $alias ]] )
public PharData convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
public Phar convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
public bool copy ( string $oldfile , string $newfile )
public int count ( void )
final public static string createDefaultStub ([ string $indexfile [, string $webindexfile ]] )
public object decompress ([ string $extension ] )
public bool decompressFiles ( void )
public bool delMetadata ( void )
public bool delete ( string $entry )
public bool extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )
public mixed getMetadata ( void )
public bool getModified ( void )
public array getSignature ( void )
public string getStub ( void )
final public static array getSupportedCompression ( void )
final public static array getSupportedSignatures ( void )
public string getVersion ( void )
public bool hasMetadata ( void )
final public static void interceptFileFuncs ( void )
public bool isBuffering ( void )
public mixed isCompressed ( void )
public bool isFileFormat ( int $format )
final public static bool isValidPharFilename ( string $filename [, bool $executable = true ] )
public bool isWritable ( void )
final public static bool loadPhar ( string $filename [, string $alias ] )
final public static bool mapPhar ([ string $alias [, int $dataoffset = 0 ]] )
final public static void mount ( string $pharpath , string $externalpath )
final public static void mungServer ( array $munglist )
public bool offsetExists ( string $offset )
public int offsetGet ( string $offset )
public void offsetSet ( string $offset , string $value )
public bool offsetUnset ( string $offset )
final public static string running ([ bool $retphar = true ] )
public bool setAlias ( string $alias )
public bool setDefaultStub ([ string $index [, string $webindex ]] )
public void setMetadata ( mixed $metadata )
public void setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )
public bool setStub ( string $stub [, int $len = -1 ] )
public void startBuffering ( void )
public void stopBuffering ( void )
public bool uncompressAllFiles ( void )
final public static bool unlinkArchive ( string $archive )
final public static void webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites ]]]]] )
}

Содержание

  • Phar::addEmptyDir — Add an empty directory to the phar archive
  • Phar::addFile — Add a file from the filesystem to the phar archive
  • Phar::addFromString — Add a file from a string to the phar archive
  • Phar::apiVersion — Returns the api version
  • Phar::buildFromDirectory — Construct a phar archive from the files within a directory.
  • Phar::buildFromIterator — Construct a phar archive from an iterator.
  • Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::canWrite — Returns whether phar extension supports writing and creating phars
  • Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::compressAllFilesBZIP2 — Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ — Compresses all files in the current Phar archive using Gzip compression
  • Phar::compressFiles — Compresses all files in the current Phar archive
  • Phar::__construct — Construct a Phar archive object
  • Phar::convertToData — Convert a phar archive to a non-executable tar or zip file
  • Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format
  • Phar::copy — Copy a file internal to the phar archive to another new file within the phar
  • Phar::count — Returns the number of entries (files) in the Phar archive
  • Phar::createDefaultStub — Create a phar-file format specific stub
  • Phar::decompress — Decompresses the entire Phar archive
  • Phar::decompressFiles — Decompresses all files in the current Phar archive
  • Phar::delMetadata — Deletes the global metadata of the phar
  • Phar::delete — Delete a file within a phar archive
  • Phar::extractTo — Extract the contents of a phar archive to a directory
  • Phar::getMetadata — Returns phar archive meta-data
  • Phar::getModified — Return whether phar was modified
  • Phar::getSignature — Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
  • Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive
  • Phar::getSupportedCompression — Return array of supported compression algorithms
  • Phar::getSupportedSignatures — Return array of supported signature types
  • Phar::getVersion — Return version info of Phar archive
  • Phar::hasMetadata — Returns whether phar has global meta-data
  • Phar::interceptFileFuncs — instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions
  • Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk
  • Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter
  • Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename
  • Phar::isWritable — Returns true if the phar archive can be modified
  • Phar::loadPhar — Loads any phar archive with an alias
  • Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest
  • Phar::mount — Mount an external path or file to a virtual location within the phar archive
  • Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution
  • Phar::offsetExists — determines whether a file exists in the phar
  • Phar::offsetGet — Gets a PharFileInfo object for a specific file
  • Phar::offsetSet — set the contents of an internal file to those of an external file
  • Phar::offsetUnset — remove a file from a phar
  • Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive
  • Phar::setAlias — Set the alias for the Phar archive
  • Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader
  • Phar::setMetadata — Sets phar archive meta-data
  • Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it.
  • Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk
  • Phar::uncompressAllFiles — Uncompresses all files in the current Phar archive
  • Phar::unlinkArchive — Completely remove a phar archive from disk and from memory
  • Phar::webPhar — mapPhar for web-based phars. front controller for web applications


Add an empty directory to the phar archive

  • « Phar
  • Phar::addFile »
  • PHP Manual
  • Phar
  • Add an empty directory to the phar archive

Phar::addEmptyDir

(Unknown)

Phar::addEmptyDir — Add an empty directory to the phar archive

Описание

public void Phar::addEmptyDir ( string $dirname )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

With this method, an empty directory is created with path dirname. This method is similar to ZipArchive::addEmptyDir().

Список параметров

dirname

The name of the empty directory to create in the phar archive

Возвращаемые значения

no return value, exception is thrown on failure.

Примеры

Пример #1 A Phar::addEmptyDir() example

<?php
try {
    $a = new Phar('/path/to/phar.phar');

    $a->addEmptyDir('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->isDir();
} catch (Exception $e) {
    // handle errors here
}
?>

Смотрите также

  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • Phar::addFromString() - Add a file from a string to the phar archive


Add a file from the filesystem to the phar archive

  • « Phar::addEmptyDir
  • Phar::addFromString »
  • PHP Manual
  • Phar
  • Add a file from the filesystem to the phar archive

Phar::addFile

(Unknown)

Phar::addFile — Add a file from the filesystem to the phar archive

Описание

public void Phar::addFile ( string $file [, string $localname ] )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

With this method, any file or URL can be added to the phar archive. If the optional second parameter localname is specified, the file will be stored in the archive with that name, otherwise the file parameter is used as the path to store within the archive. URLs must have a localname or an exception is thrown. This method is similar to ZipArchive::addFile().

Список параметров

file

Full or relative path to a file on disk to be added to the phar archive.

localname

Path that the file will be stored in the archive.

Возвращаемые значения

no return value, exception is thrown on failure.

Примеры

Пример #1 A Phar::addFile() example

<?php
try {
    $a = new Phar('/path/to/phar.phar');

    $a->addFile('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->getContent();

    $a->addFile('/full/path/to/file', 'my/file.txt');
    $c = $a['my/file.txt']->getContent();

    // demonstrate URL usage
    $a->addFile('http://www.example.com', 'example.html');
} catch (Exception $e) {
    // handle errors here
}
?>

Смотрите также

  • Phar::offsetSet() - set the contents of an internal file to those of an external file
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • Phar::addFromString() - Add a file from a string to the phar archive
  • Phar::addEmptyDir() - Add an empty directory to the phar archive


Add a file from a string to the phar archive

  • « Phar::addFile
  • Phar::apiVersion »
  • PHP Manual
  • Phar
  • Add a file from a string to the phar archive

Phar::addFromString

(Unknown)

Phar::addFromString — Add a file from a string to the phar archive

Описание

public void Phar::addFromString ( string $localname , string $contents )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

With this method, any string can be added to the phar archive. The file will be stored in the archive with localname as its path. This method is similar to ZipArchive::addFromString().

Список параметров

localname

Path that the file will be stored in the archive.

contents

The file contents to store

Возвращаемые значения

no return value, exception is thrown on failure.

Примеры

Пример #1 A Phar::addFromString() example

<?php
try {
    $a = new Phar('/path/to/phar.phar');

    $a->addFromString('path/to/file.txt', 'my simple file');
    $b = $a['path/to/file.txt']->getContent();

    // to add contents from a stream handle for large files, use offsetSet()
    $c = fopen('/path/to/hugefile.bin');
    $a['largefile.bin'] = $c;
    fclose($c);
} catch (Exception $e) {
    // handle errors here
}
?>

Смотрите также

  • Phar::offsetSet() - set the contents of an internal file to those of an external file
  • PharData::addFromString() - Add a file from the filesystem to the tar/zip archive
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • Phar::addEmptyDir() - Add an empty directory to the phar archive


Returns the api version

  • « Phar::addFromString
  • Phar::buildFromDirectory »
  • PHP Manual
  • Phar
  • Returns the api version

Phar::apiVersion

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::apiVersion — Returns the api version

Описание

final public static string Phar::apiVersion ( void )

Return the API version of the phar file format that will be used when creating phars. The Phar extension supports reading API version 1.0.0 or newer. API version 1.1.0 is required for SHA-256 and SHA-512 hash, and API version 1.1.1 is required to store empty directories.

Список параметров

Возвращаемые значения

The API version string as in "1.0.0".

Примеры

Пример #1 A Phar::apiVersion() example

<?php
echo Phar::apiVersion();
?>

Результат выполнения данного примера:

1.1.1


Construct a phar archive from the files within a directory.

  • « Phar::apiVersion
  • Phar::buildFromIterator »
  • PHP Manual
  • Phar
  • Construct a phar archive from the files within a directory.

Phar::buildFromDirectory

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::buildFromDirectory — Construct a phar archive from the files within a directory.

Описание

public array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Populate a phar archive from directory contents. The optional second parameter is a regular expression (pcre) that is used to exclude files. Any filename that matches the regular expression will be included, all others will be excluded. For more fine-grained control, use Phar::buildFromIterator().

Список параметров

base_dir

The full or relative path to the directory that contains all files to add to the archive.

regex

An optional pcre regular expression that is used to filter the list of files. Only file paths matching the regular expression will be included in the archive.

Возвращаемые значения

Phar::buildFromDirectory() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

Ошибки

This method throws BadMethodCallException when unable to instantiate the internal directory iterators, or a PharException if there were errors saving the phar archive.

Примеры

Пример #1 A Phar::buildFromDirectory() example

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
// add all files in the project
$phar->buildFromDirectory(dirname(__FILE__) . '/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));

$phar2 = new Phar('project2.phar', 0, 'project2.phar');
// add all files in the project, only include php files
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
$phar2->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Смотрите также

  • Phar::buildFromIterator() - Construct a phar archive from an iterator.


Construct a phar archive from an iterator.

  • « Phar::buildFromDirectory
  • Phar::canCompress »
  • PHP Manual
  • Phar
  • Construct a phar archive from an iterator.

Phar::buildFromIterator

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::buildFromIterator — Construct a phar archive from an iterator.

Описание

public array Phar::buildFromIterator ( Iterator $iter [, string $base_directory ] )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Populate a phar archive from an iterator. Two styles of iterators are supported, iterators that map the filename within the phar to the name of a file on disk, and iterators like DirectoryIterator that return SplFileInfo objects. For iterators that return SplFileInfo objects, the second parameter is required.

Список параметров

iter

Any iterator that either associatively maps phar file to location or returns SplFileInfo objects

base_directory

For iterators that return SplFileInfo objects, the portion of each file's full path to remove when adding to the phar archive

Возвращаемые значения

Phar::buildFromIterator() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

Примеры

Пример #1 A Phar::buildFromIterator() with SplFileInfo

For most phar archives, the archive will reflect an actual directory layout, and the second style is the most useful. For instance, to create a phar archive containing the files in this sample directory layout:

/path/to/project/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

This code could be used to add these files to the "project.phar" phar archive:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new RecursiveDirectoryIterator('/path/to/project')),
    '/path/to/project');
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

The file project.phar can then be used immediately. Phar::buildFromIterator() does not set values such as compression, metadata, and this can be done after creating the phar archive.

As an interesting note, Phar::buildFromIterator() can also be used to copy the contents of an existing phar archive, as the Phar object descends from DirectoryIterator:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$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 A Phar::buildFromIterator() with other iterators

The second form of the iterator can be used with any iterator that returns a key => value mapping, such as an ArrayIterator:

<?php
// create with alias "project.phar"
$phar = new Phar('project.phar', 0, 'project.phar');
$phar->buildFromIterator(
    new ArrayIterator(
     array(
        'internal/file.php' => dirname(__FILE__) . '/somefile.php',
        'another/file.jpg' => fopen('/path/to/bigfile.jpg', 'rb'),
     )));
$phar->setStub($phar->createDefaultStub('cli/index.php', 'www/index.php'));
?>

Ошибки

This method returns UnexpectedValueException when the iterator returns incorrect values, such as an integer key instead of a string, a BadMethodCallException when an SplFileInfo-based iterator is passed without a base_directory parameter, or a PharException if there were errors saving the phar archive.

Смотрите также

  • Phar::buildFromDirectory() - Construct a phar archive from the files within a directory.


Returns whether phar extension supports compression using either zlib or bzip2

  • « Phar::buildFromIterator
  • Phar::canWrite »
  • PHP Manual
  • Phar
  • Returns whether phar extension supports compression using either zlib or bzip2

Phar::canCompress

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::canCompress — Returns whether phar extension supports compression using either zlib or bzip2

Описание

final public static bool Phar::canCompress ([ int $type = 0 ] )

This should be used to test whether compression is possible prior to loading a phar archive containing compressed files.

Список параметров

type

Either Phar::GZ or Phar::BZ2 can be used to test whether compression is possible with a specific compression algorithm (zlib or bzip2).

Возвращаемые значения

TRUE if compression/decompression is available, FALSE if not.

Примеры

Пример #1 A Phar::canCompress() example

<?php
if (Phar::canCompress()) {
    echo file_get_contents('phar://compressedphar.phar/internal/file.txt');
} else {
    echo 'no compression available';
}
?>

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file


Returns whether phar extension supports writing and creating phars

  • « Phar::canCompress
  • Phar::compress »
  • PHP Manual
  • Phar
  • Returns whether phar extension supports writing and creating phars

Phar::canWrite

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::canWrite — Returns whether phar extension supports writing and creating phars

Описание

final public static bool Phar::canWrite ( void )

This static method determines whether write access has been disabled in the system php.ini via the phar.readonly ini variable.

Список параметров

Возвращаемые значения

TRUE if write access is enabled, FALSE if it is disabled.

Примеры

Пример #1 A Phar::canWrite() example

<?php
if (Phar::canWrite()) {
    file_put_contents('phar://myphar.phar/file.txt', 'hi there');
}
?>

Смотрите также

  • phar.readonly
  • Phar::isWritable() - Returns true if the phar archive can be modified


Compresses the entire Phar archive using Gzip or Bzip2 compression

  • « Phar::canWrite
  • Phar::compressAllFilesBZIP2 »
  • PHP Manual
  • Phar
  • Compresses the entire Phar archive using Gzip or Bzip2 compression

Phar::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::compress — Compresses the entire Phar archive using Gzip or Bzip2 compression

Описание

public object Phar::compress ( int $compression [, string $extension ] )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

For tar-based and phar-based phar archives, this method compresses the entire archive using gzip compression or bzip2 compression. The resulting file can be processed with the gunzip command/bunzip command, or accessed directly and transparently with the Phar extension.

For Zip-based phar archives, this method fails with an exception. The zlib extension must be enabled to compress with gzip compression, the bzip2 extension must be enabled in order to compress with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

In addition, this method automatically renames the archive, appending .gz, .bz2 or removing the extension if passed Phar::NONE to remove compression. Alternatively, a file extension may be specified with the second parameter.

Список параметров

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

extension

By default, the extension is .phar.gz or .phar.bz2 for compressing phar archives, and .phar.tar.gz or .phar.tar.bz2 for compressing tar archives. For decompressing, the default file extensions are .phar and .phar.tar.

Возвращаемые значения

Returns a Phar object.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or the bzip2 extension is not enabled.

Примеры

Пример #1 A Phar::compress() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p1 = $p->compress(Phar::GZ); // copies to /path/to/my.phar.gz
$p2 = $p->compress(Phar::BZ2); // copies to /path/to/my.phar.bz2
$p3 = $p2->compress(Phar::NONE); // exception: /path/to/my.phar already exists
?>

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive


Compresses all files in the current Phar archive using Bzip2 compression

  • « Phar::compress
  • Phar::compressAllFilesGZ »
  • PHP Manual
  • Phar
  • Compresses all files in the current Phar archive using Bzip2 compression

Phar::compressAllFilesBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::compressAllFilesBZIP2 — Compresses all files in the current Phar archive using Bzip2 compression

Описание

public bool Phar::compressAllFilesBZIP2 ( void )

Замечание:

Этот метод был
удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций
Phar::compress(),
Phar::decompress(), Phar::compressFiles() и
Phar::decompressFiles().

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

This method compresses all files in the Phar archive using bzip2 compression. The bzip2 extension must be enabled to take advantage of this feature. In addition, if any files are already compressed using gzip compression, the zlib extension must be enabled in order to decompress the files prior to re-compressing with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, the bzip2 extension is not available, or if any files are compressed using gzip compression and the zlib extension is not enabled.

Примеры

Пример #1 A Phar::compressAllFilesBZIP2() example

<?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->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
$p->compressAllFilesBZIP2();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
?>

Результат выполнения данного примера:

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
bool(true)
bool(true)
bool(false)
string(11) "myfile2.txt"
bool(true)
bool(true)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive


Compresses all files in the current Phar archive using Gzip compression

  • « Phar::compressAllFilesBZIP2
  • Phar::compressFiles »
  • PHP Manual
  • Phar
  • Compresses all files in the current Phar archive using Gzip compression

Phar::compressAllFilesGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::compressAllFilesGZ — Compresses all files in the current Phar archive using Gzip compression

Описание

public bool Phar::compressAllFilesGZ ( void )

Замечание:

Этот метод был
удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций
Phar::compress(),
Phar::decompress(), Phar::compressFiles() и
Phar::decompressFiles().

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

For tar-based phar archives, this method compresses the entire archive using gzip compression. The resulting file can be processed with the gunzip command, or accessed directly and transparently with the Phar extension.

For Zip-based and phar-based phar archives, this method compresses all files in the Phar archive using gzip compression. The zlib extension must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2 compression, the bzip2 extension must be enabled in order to decompress the files prior to re-compressing with gzip compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Примеры

Пример #1 A Phar::compressAllFilesGZ() example

<?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->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
$p->compressAllFilesGZ();
foreach ($p as $file) {
    var_dump($file->getFileName());
    var_dump($file->isCompressed());
    var_dump($file->isCompressedBZIP2());
    var_dump($file->isCompressedGZ());
}
?>

Результат выполнения данного примера:

string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)
string(10) "myfile.txt"
bool(true)
bool(false)
bool(true)
string(11) "myfile2.txt"
bool(true)
bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive


Compresses all files in the current Phar archive

  • « Phar::compressAllFilesGZ
  • Phar::__construct »
  • PHP Manual
  • Phar
  • Compresses all files in the current Phar archive

Phar::compressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::compressFiles — Compresses all files in the current Phar archive

Описание

public void Phar::compressFiles ( int $compression )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

For tar-based phar archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use Phar::compress() to compress an entire tar-based phar archive.

For Zip-based and phar-based phar archives, this method compresses all files in the Phar archive using the specified compression. The zlib or bzip2 extensions must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2/zlib compression, the respective extension must be enabled in order to decompress the files prior to re-compressing. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Список параметров

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Примеры

Пример #1 A Phar::compressFiles() example

<?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() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive


Construct a Phar archive object

  • « Phar::compressFiles
  • Phar::convertToData »
  • PHP Manual
  • Phar
  • Construct a Phar archive object

Phar::__construct

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::__construct — Construct a Phar archive object

Описание

public Phar::__construct ( string $fname [, int $flags [, string $alias ]] )

Список параметров

fname

Path to an existing Phar archive or to-be-created archive. The file name's extension must contain .phar.

flags

Flags to pass to parent class RecursiveDirectoryIterator.

alias

Alias with which this Phar archive should be referred to in calls to stream functionality.

Ошибки

Throws BadMethodCallException if called twice, UnexpectedValueException if the phar archive can't be opened.

Примеры

Пример #1 A Phar::__construct() example

<?php
try {
    $p = new Phar('/path/to/my.phar', FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::KEY_AS_FILENAME,
                  'my.phar');
} catch (UnexpectedValueException $e) {
    die('Could not open my.phar');
} catch (BadMethodCallException $e) {
    echo 'technically, this cannot happen';
}
// this works now
echo file_get_contents('phar://my.phar/example.txt');
// and works as if we had typed
echo file_get_contents('phar:///path/to/my.phar/example.txt');
?>


Convert a phar archive to a non-executable tar or zip file

  • « Phar::__construct
  • Phar::convertToExecutable »
  • PHP Manual
  • Phar
  • Convert a phar archive to a non-executable tar or zip file

Phar::convertToData

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::convertToData — Convert a phar archive to a non-executable tar or zip file

Описание

public PharData Phar::convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )

This method is used to convert an executable phar archive to either a tar or zip file. To make the tar or zip non-executable, the phar stub and phar alias files are removed from the newly created archive.

If no changes are specified, this method throws a BadMethodCallException if the archive is in phar file format. For archives in tar or zip file format, this method converts the archive to a non-executable archive.

If successful, the method creates a new archive on disk and returns a PharData object. The old archive is not removed from disk, and should be done manually after the process has finished.

Список параметров

format

This should be one of Phar::TAR or Phar::ZIP. If set to NULL, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that .phar cannot be used anywhere in the filename for a non-executable tar or zip archive.

If converting to a tar-based phar archive, the default extensions are .tar, .tar.gz, and .tar.bz2 depending on specified compression. For zip-based archives, the default extension is .zip.

Возвращаемые значения

The method returns a PharData object on success and throws an exception on failure.

Ошибки

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), and a PharException if any problems are encountered during the phar creation process.

Примеры

Пример #1 A Phar::convertToData() example

Using Phar::convertToData():

<?php
try {
    $tarphar = new Phar('myphar.phar.tar');
    // note that myphar.phar.tar is *not* unlinked
    // convert it to the non-executable tar file format
    // creates myphar.tar
    $tar = $tarphar->convertToData();
    // convert to non-executable zip format, creates myphar.zip
    $zip = $tarphar->convertToData(Phar::ZIP);
    // create myphar.tbz
    $tgz = $tarphar->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
    // creates myphar.phar.tgz
    $phar = $tarphar->convertToData(Phar::PHAR); // throws exception
} catch (Exception $e) {
    // handle the error here
}
?>

Смотрите также

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file


Convert a phar archive to another executable phar archive file format

  • « Phar::convertToData
  • Phar::copy »
  • PHP Manual
  • Phar
  • Convert a phar archive to another executable phar archive file format

Phar::convertToExecutable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::convertToExecutable — Convert a phar archive to another executable phar archive file format

Описание

public Phar Phar::convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

This method is used to convert a phar archive to another file format. For instance, it can be used to create a tar-based executable phar archive from a zip-based executable phar archive, or from an executable phar archive in the phar file format. In addition, it can be used to apply whole-archive compression to a tar or phar-based archive.

If no changes are specified, this method throws a BadMethodCallException.

If successful, the method creates a new archive on disk and returns a Phar object. The old archive is not removed from disk, and should be done manually after the process has finished.

Список параметров

format

This should be one of Phar::PHAR, Phar::TAR, or Phar::ZIP. If set to NULL, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that all zip- and tar-based phar archives must contain .phar in their file extension in order to be processed as a phar archive.

If converting to a phar-based archive, the default extensions are .phar, .phar.gz, or .phar.bz2 depending on the specified compression. For tar-based phar archives, the default extensions are .phar.tar, .phar.tar.gz, and .phar.tar.bz2. For zip-based phar archives, the default extension is .phar.zip.

Возвращаемые значения

The method returns a Phar object on success and throws an exception on failure.

Ошибки

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), an UnexpectedValueException if write support is disabled, and a PharException if any problems are encountered during the phar creation process.

Примеры

Пример #1 A Phar::convertToExecutable() example

Using Phar::convertToExecutable():

<?php
try {
    $tarphar = new Phar('myphar.phar.tar');
    // convert it to the phar file format
    // note that myphar.phar.tar is *not* unlinked
    $phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
    // creates myphar.phar.tgz
    $compressed = $phar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // handle the error here
}
?>

Смотрите также

  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file


Copy a file internal to the phar archive to another new file within the phar

  • « Phar::convertToExecutable
  • Phar::count »
  • PHP Manual
  • Phar
  • Copy a file internal to the phar archive to another new file within the phar

Phar::copy

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::copy — Copy a file internal to the phar archive to another new file within the phar

Описание

public bool Phar::copy ( string $oldfile , string $newfile )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Copy a file internal to the phar archive to another new file within the phar. This is an object-oriented alternative to using copy() with the phar stream wrapper.

Список параметров

oldfile

newfile

Возвращаемые значения

returns TRUE on success, but it is safer to encase method call in a try/catch block and assume success if no exception is thrown.

Ошибки

throws UnexpectedValueException if the source file does not exist, the destination file already exists, write access is disabled, opening either file fails, reading the source file fails, or a PharException if writing the changes to the phar fails.

Примеры

Пример #1 A Phar::copy() example

This example shows using Phar::copy() and the equivalent stream wrapper performance of the same thing. The primary difference between the two approaches is error handling. All Phar methods throw exceptions, whereas the stream wrapper uses trigger_error().

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar['a'] = 'hi';
    $phar->copy('a', 'b');
    echo $phar['b']; // outputs "hi"
} catch (Exception $e) {
    // handle error
}

// the stream wrapper equivalent of the above code.
// E_WARNINGS are triggered on error rather than exceptions.
copy('phar://myphar.phar/a', 'phar//myphar.phar/c');
echo file_get_contents('phar://myphar.phar/c'); // outputs "hi"
?>


Returns the number of entries (files) in the Phar archive

  • « Phar::copy
  • Phar::createDefaultStub »
  • PHP Manual
  • Phar
  • Returns the number of entries (files) in the Phar archive

Phar::count

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::count — Returns the number of entries (files) in the Phar archive

Описание

public int Phar::count ( void )

Список параметров

Возвращаемые значения

The number of files contained within this phar, or 0 (the number zero) if none.

Примеры

Пример #1 A Phar::count() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'Could not create phar:', $e;
}
echo 'The new phar has ' . $p->count() . " entries\n";
$p['file.txt'] = 'hi';
echo 'The new phar has ' . $p->count() . " entries\n";
?>

Результат выполнения данного примера:

The new phar has 0 entries
The new phar has 1 entries


Create a phar-file format specific stub

  • « Phar::count
  • Phar::decompress »
  • PHP Manual
  • Phar
  • Create a phar-file format specific stub

Phar::createDefaultStub

(Unknown)

Phar::createDefaultStub — Create a phar-file format specific stub

Описание

final public static string Phar::createDefaultStub ([ string $indexfile [, string $webindexfile ]] )

This method is intended for creation of phar-file format-specific stubs, and is not intended for use with tar- or zip-based phar archives.

Phar archives contain a bootstrap loader, or stub written in PHP that is executed when the archive is executed in PHP either via include:

<?php
include 'myphar.phar';
?>
or by simple execution:
php myphar.phar

This method provides a simple and easy method to create a stub that will run a startup file from the phar archive. In addition, different files can be specified for running the phar archive from the command line versus through a web server. The loader stub also calls Phar::interceptFileFuncs() to allow easy bundling of a PHP application that accesses the file system. If the phar extension is not present, the loader stub will extract the phar archive to a temporary directory and then operate on the files. A shutdown function erases the temporary files on exit.

Возвращаемые значения

Returns a string containing the contents of a customized bootstrap loader (stub) that allows the created Phar archive to work with or without the Phar extension enabled.

Ошибки

Throws UnexpectedValueException if either parameter is longer than 400 bytes.

Примеры

Пример #1 A Phar::createDefaultStub() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
    // handle errors
}
?>

Смотрите также

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::getStub() - Return the PHP loader or bootstrap stub of a Phar archive


Decompresses the entire Phar archive

  • « Phar::createDefaultStub
  • Phar::decompressFiles »
  • PHP Manual
  • Phar
  • Decompresses the entire Phar archive

Phar::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::decompress — Decompresses the entire Phar archive

Описание

public object Phar::decompress ([ string $extension ] )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

For tar-based and phar-based phar archives, this method decompresses the entire archive.

For Zip-based phar archives, this method fails with an exception. The zlib extension must be enabled to decompress an archive compressed with gzip compression, and the bzip2 extension must be enabled in order to decompress an archive compressed with bzip2 compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

In addition, this method automatically changes the file extension of the archive, .phar by default for phar archives, or .phar.tar for tar-based phar archives. Alternatively, a file extension may be specified with the second parameter.

Список параметров

extension

For decompressing, the default file extensions are .phar and .phar.tar. Use this parameter to specify another file extension. Be aware that all executable phar archives must contain .phar in their filename.

Возвращаемые значения

A Phar object is returned.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or the bzip2 extension is not enabled.

Примеры

Пример #1 A Phar::decompress() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar.gz');
$p['myfile.txt'] = 'hi';
$p['myfile2.txt'] = 'hi';
$p3 = $p2->decompress(); // creates /path/to/my.phar
?>

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive


Decompresses all files in the current Phar archive

  • « Phar::decompress
  • Phar::delMetadata »
  • PHP Manual
  • Phar
  • Decompresses all files in the current Phar archive

Phar::decompressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::decompressFiles — Decompresses all files in the current Phar archive

Описание

public bool Phar::decompressFiles ( void )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

For tar-based phar archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use Phar::compress() to compress an entire tar-based phar archive.

For Zip-based and phar-based phar archives, this method decompresses all files in the Phar archive. The zlib or bzip2 extensions must be enabled to take advantage of this feature if any files are compressed using bzip2/zlib compression. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Примеры

Пример #1 A Phar::decompressFiles() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
$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() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive


Deletes the global metadata of the phar

  • « Phar::decompressFiles
  • Phar::delete »
  • PHP Manual
  • Phar
  • Deletes the global metadata of the phar

Phar::delMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::delMetadata — Deletes the global metadata of the phar

Описание

public bool Phar::delMetadata ( void )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Deletes the global metadata of the phar

Список параметров

Возвращаемые значения

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

Ошибки

Throws PharException if errors occur while flushing changes to disk.

Примеры

Пример #1 A Phar::delMetaData() example

<?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) {
    // handle errors
}
?>

Результат выполнения данного примера:

NULL
string(8) "hi there"
NULL

Смотрите также

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data


Delete a file within a phar archive

  • « Phar::delMetadata
  • Phar::extractTo »
  • PHP Manual
  • Phar
  • Delete a file within a phar archive

Phar::delete

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::delete — Delete a file within a phar archive

Описание

public bool Phar::delete ( string $entry )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Delete a file within an archive. This is the functional equivalent of calling unlink() on the stream wrapper equivalent, as shown in the example below.

Список параметров

entry

Path within an archive to the file to delete.

Возвращаемые значения

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

Ошибки

Throws PharException if errors occur while flushing changes to disk.

Примеры

Пример #1 A Phar::delete() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->delete('unlink/me.php');
    // this is equivalent to:
    unlink('phar://myphar.phar/unlink/me.php');
} catch (Exception $e) {
    // handle errors
}
?>

Смотрите также

  • PharData::delete() - Delete a file within a tar/zip archive
  • Phar::unlinkArchive() - Completely remove a phar archive from disk and from memory


Extract the contents of a phar archive to a directory

  • « Phar::delete
  • Phar::getMetadata »
  • PHP Manual
  • Phar
  • Extract the contents of a phar archive to a directory

Phar::extractTo

(Unknown)

Phar::extractTo — Extract the contents of a phar archive to a directory

Описание

public bool Phar::extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )

Extract all files within a phar archive to disk. Extracted files and directories preserve permissions as stored in the archive. The optional parameters allow optional control over which files are extracted, and whether existing files on disk can be overwritten. The second parameter files can be either the name of a file or directory to extract, or an array of names of files and directories to extract. By default, this method will not overwrite existing files, the third parameter can be set to true to enable overwriting of files. This method is similar to ZipArchive::extractTo().

Список параметров

pathto

Path to extract the given files to

files

The name of a file or directory to extract, or an array of files/directories to extract

overwrite

Set to TRUE to enable overwriting existing files

Возвращаемые значения

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

Ошибки

Throws PharException if errors occur while flushing changes to disk.

Примеры

Пример #1 A Phar::extractTo() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->extractTo('/full/path'); // extract all files
    $phar->extractTo('/another/path', 'file.txt'); // extract only file.txt
    $phar->extractTo('/this/path',
        array('file1.txt', 'file2.txt')); // extract 2 files only
    $phar->extractTo('/third/path', null, true); // extract all files, and overwrite
} catch (Exception $e) {
    // handle errors
}
?>

Смотрите также

  • PharData::extractTo() - Extract the contents of a tar/zip archive to a directory


Returns phar archive meta-data

  • « Phar::extractTo
  • Phar::getModified »
  • PHP Manual
  • Phar
  • Returns phar archive meta-data

Phar::getMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getMetadata — Returns phar archive meta-data

Описание

public mixed Phar::getMetadata ( void )

Retrieve archive meta-data. Meta-data can be any PHP variable that can be serialized.

Список параметров

No parameters.

Возвращаемые значения

any PHP variable that can be serialized and is stored as meta-data for the Phar archive, or NULL if no meta-data is stored.

Примеры

Пример #1 A Phar::getMetadata() example

<?php
// make sure it doesn't exist
@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 'Could not modify phar:', $e;
}
?>

Результат выполнения данного примера:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Смотрите также

  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data


Return whether phar was modified

  • « Phar::getMetadata
  • Phar::getSignature »
  • PHP Manual
  • Phar
  • Return whether phar was modified

Phar::getModified

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getModified — Return whether phar was modified

Описание

public bool Phar::getModified ( void )

This method can be used to determine whether a phar has either had an internal file deleted, or contents of a file changed in some way.

Список параметров

No parameters.

Возвращаемые значения

TRUE if the phar has been modified since opened, FALSE if not.


Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive

  • « Phar::getModified
  • Phar::getStub »
  • PHP Manual
  • Phar
  • Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive

Phar::getSignature

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getSignature — Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive

Описание

public array Phar::getSignature ( void )

Returns the verification signature of a phar archive in a hexadecimal string.

Список параметров

Возвращаемые значения

Array with the opened archive's signature in hash key and MD5, SHA-1, SHA-256, SHA-512, or OpenSSL in hash_type. This signature is a hash calculated on the entire phar's contents, and may be used to verify the integrity of the archive. A valid signature is absolutely required of all executable phar archives if the phar.require_hash INI variable is set to true.


Return the PHP loader or bootstrap stub of a Phar archive

  • « Phar::getSignature
  • Phar::getSupportedCompression »
  • PHP Manual
  • Phar
  • Return the PHP loader or bootstrap stub of a Phar archive

Phar::getStub

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getStub — Return the PHP loader or bootstrap stub of a Phar archive

Описание

public string Phar::getStub ( void )

Phar archives contain a bootstrap loader, or stub written in PHP that is executed when the archive is executed in PHP either via include:

<?php
include 'myphar.phar';
?>
or by simple execution:
php myphar.phar

Возвращаемые значения

Returns a string containing the contents of the bootstrap loader (stub) of the current Phar archive.

Ошибки

Throws RuntimeException if it is not possible to read the stub from the Phar archive.

Примеры

Пример #1 A Phar::getStub() example

<?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() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Create a phar-file format specific stub


Return array of supported compression algorithms

  • « Phar::getStub
  • Phar::getSupportedSignatures »
  • PHP Manual
  • Phar
  • Return array of supported compression algorithms

Phar::getSupportedCompression

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::getSupportedCompression — Return array of supported compression algorithms

Описание

final public static array Phar::getSupportedCompression ( void )

Список параметров

No parameters.

Возвращаемые значения

Returns an array containing any of Phar::GZ or Phar::BZ2, depending on the availability of the zlib extension or the bz2 extension.

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive


Return array of supported signature types

  • « Phar::getSupportedCompression
  • Phar::getVersion »
  • PHP Manual
  • Phar
  • Return array of supported signature types

Phar::getSupportedSignatures

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::getSupportedSignatures — Return array of supported signature types

Описание

final public static array Phar::getSupportedSignatures ( void )

Return array of supported signature types

Список параметров

No parameters.

Возвращаемые значения

Returns an array containing any of MD5, SHA-1, SHA-256, SHA-512, or OpenSSL.

Смотрите также

  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive
  • Phar::setSignatureAlgorithm() - set the signature algorithm for a phar and apply it.


Return version info of Phar archive

  • « Phar::getSupportedSignatures
  • Phar::hasMetadata »
  • PHP Manual
  • Phar
  • Return version info of Phar archive

Phar::getVersion

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::getVersion — Return version info of Phar archive

Описание

public string Phar::getVersion ( void )

Returns the API version of an opened Phar archive.

Список параметров

Возвращаемые значения

The opened archive's API version. This is not to be confused with the API version that the loaded phar extension will use to create new phars. Each Phar archive has the API version hard-coded into its manifest. See Phar file format documentation for more information.

Смотрите также

  • Phar::apiVersion() - Returns the api version


Returns whether phar has global meta-data

  • « Phar::getVersion
  • Phar::interceptFileFuncs »
  • PHP Manual
  • Phar
  • Returns whether phar has global meta-data

Phar::hasMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::hasMetadata — Returns whether phar has global meta-data

Описание

public bool Phar::hasMetadata ( void )

Returns whether phar has global meta-data set.

Список параметров

No parameters.

Возвращаемые значения

Returns TRUE if meta-data has been set, and FALSE if not.

Примеры

Пример #1 A Phar::hasMetadata() example

<?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() - Returns phar archive meta-data
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar


instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

  • « Phar::hasMetadata
  • Phar::isBuffering »
  • PHP Manual
  • Phar
  • instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

Phar::interceptFileFuncs

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::interceptFileFuncs — instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions

Описание

final public static void Phar::interceptFileFuncs ( void )

instructs phar to intercept fopen(), readfile(), file_get_contents(), opendir(), and all of the stat-related functions. If any of these functions is called from within a phar archive with a relative path, the call is modified to access a file within the phar archive. Absolute paths are assumed to be attempts to load external files from the filesystem.

This function makes it possible to run PHP applications designed to run off of a hard disk as a phar application.

Список параметров

No parameters.

Возвращаемые значения

Примеры

Пример #1 A Phar::interceptFileFuncs() example

<?php
Phar::interceptFileFuncs();
include 'phar://' . __FILE__ . '/file.php';
?>

Assuming that this phar is at /path/to/myphar.phar and it contains file.php and file2.txt, if file.php contains this code:

Пример #2 A Phar::interceptFileFuncs() example

<?php
echo file_get_contents('file2.txt');
?>

Normally PHP would search the current directory for file2.txt, which would translate as the directory of file.php, or the current directory of a command-line user. Phar::interceptFileFuncs() instructs PHP to consider the current directory to be phar:///path/to/myphar.phar/ and so opens phar:///path/to/myphar.phar/file2.txt in the above example code.


Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

  • « Phar::interceptFileFuncs
  • Phar::isCompressed »
  • PHP Manual
  • Phar
  • Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

Phar::isBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::isBuffering — Used to determine whether Phar write operations are being buffered, or are flushing directly to disk

Описание

public bool Phar::isBuffering ( void )

This method can be used to determine whether a Phar will save changes to disk immediately, or whether a call to Phar::stopBuffering() is needed to enable saving changes.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Возвращаемые значения

Returns TRUE if the write operations are being buffer, FALSE otherwise.

Примеры

Пример #1 A Phar::isBuffering() example

<?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() - Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::stopBuffering() - Stop buffering write requests to the Phar archive, and save changes to disk


Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)

  • « Phar::isBuffering
  • Phar::isFileFormat »
  • PHP Manual
  • Phar
  • Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)

Phar::isCompressed

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::isCompressed — Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)

Описание

public mixed Phar::isCompressed ( void )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on). Zip-based phar archives cannot be compressed as a file, and so this method will always return FALSE if a zip-based phar archive is queried.

Список параметров

No parameters.

Возвращаемые значения

Phar::GZ, Phar::BZ2 or FALSE

Примеры

Пример #1 A Phar::isCompressed() example

<?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() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms


Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter

  • « Phar::isCompressed
  • Phar::isValidPharFilename »
  • PHP Manual
  • Phar
  • Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter

Phar::isFileFormat

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::isFileFormat — Returns true if the phar archive is based on the tar/phar/zip file format depending on the parameter

Описание

public bool Phar::isFileFormat ( int $format )

Список параметров

format

Either Phar::PHAR, Phar::TAR, or Phar::ZIP to test for the format of the archive.

Возвращаемые значения

Returns TRUE if the phar archive matches the file format requested by the parameter

Ошибки

PharException is thrown if the parameter is an unknown file format specifier.

Смотрите также

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file


Returns whether the given filename is a valid phar filename

  • « Phar::isFileFormat
  • Phar::isWritable »
  • PHP Manual
  • Phar
  • Returns whether the given filename is a valid phar filename

Phar::isValidPharFilename

(PHP >= 5.3.0, PECL phar >= 1.2.0)

Phar::isValidPharFilename — Returns whether the given filename is a valid phar filename

Описание

final public static bool Phar::isValidPharFilename ( string $filename [, bool $executable = true ] )

Returns whether the given filename is a valid phar filename that will be recognized as a phar archive by the phar extension. This can be used to test a name without having to instantiate a phar archive and catch the inevitable Exception that will be thrown if an invalid name is specified.

Список параметров

filename

The name or full path to a phar archive not yet created

executable

This parameter determines whether the filename should be treated as a phar executable archive, or a data non-executable archive

Возвращаемые значения

Returns TRUE if the filename is valid, FALSE if not.


Returns true if the phar archive can be modified

  • « Phar::isValidPharFilename
  • Phar::loadPhar »
  • PHP Manual
  • Phar
  • Returns true if the phar archive can be modified

Phar::isWritable

(Unknown)

Phar::isWritable — Returns true if the phar archive can be modified

Описание

public bool Phar::isWritable ( void )

This method returns TRUE if phar.readonly is 0, and the actual phar archive on disk is not read-only.

Список параметров

No parameters.

Возвращаемые значения

Returns TRUE if the phar archive can be modified

Смотрите также

  • Phar::canWrite() - Returns whether phar extension supports writing and creating phars
  • PharData::isWritable() - Returns true if the tar/zip archive can be modified


Loads any phar archive with an alias

  • « Phar::isWritable
  • Phar::mapPhar »
  • PHP Manual
  • Phar
  • Loads any phar archive with an alias

Phar::loadPhar

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::loadPhar — Loads any phar archive with an alias

Описание

final public static bool Phar::loadPhar ( string $filename [, string $alias ] )

This can be used to read the contents of an external Phar archive. This is most useful for assigning an alias to a phar so that subsequent references to the phar can use the shorter alias, or for loading Phar archives that only contain data and are not intended for execution/inclusion in PHP scripts.

Список параметров

filename

the full or relative path to the phar archive to open

alias

The alias that may be used to refer to the phar archive. Note that many phar archives specify an explicit alias inside the phar archive, and a PharException will be thrown if a new alias is specified in this case.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

PharException is thrown if an alias is passed in and the phar archive already has an explicit alias

Примеры

Пример #1 A Phar::loadPhar() example

Phar::loadPhar can be used anywhere to load an external Phar archive, whereas Phar::mapPhar should be used in a loader stub for a 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() - Reads the currently executed file (a phar) and registers its manifest


Reads the currently executed file (a phar) and registers its manifest

  • « Phar::loadPhar
  • Phar::mount »
  • PHP Manual
  • Phar
  • Reads the currently executed file (a phar) and registers its manifest

Phar::mapPhar

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::mapPhar — Reads the currently executed file (a phar) and registers its manifest

Описание

final public static bool Phar::mapPhar ([ string $alias [, int $dataoffset = 0 ]] )

This static method can only be used inside a Phar archive's loader stub in order to initialize the phar when it is directly executed, or when it is included in another script.

Список параметров

alias

The alias that can be used in phar:// URLs to refer to this archive, rather than its full path.

dataoffset

Unused variable, here for compatibility with PEAR's PHP_Archive.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

PharException is thrown if not called directly within PHP execution, if no __HALT_COMPILER(); token is found in the current source file, or if the file cannot be opened for reading.

Примеры

Пример #1 A Phar::mapPhar() example

mapPhar should be used only inside a phar's loader stub. Use loadPhar to load an external phar into memory.

Here is a sample Phar loader stub that uses 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() - Loads any phar archive with an alias


Mount an external path or file to a virtual location within the phar archive

  • « Phar::mapPhar
  • Phar::mungServer »
  • PHP Manual
  • Phar
  • Mount an external path or file to a virtual location within the phar archive

Phar::mount

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::mount — Mount an external path or file to a virtual location within the phar archive

Описание

final public static void Phar::mount ( string $pharpath , string $externalpath )

Much like the unix file system concept of mounting external devices to paths within the directory tree, Phar::mount() allows referring to external files and directories as if they were inside of an archive. This allows powerful abstraction such as referring to external configuration files as if they were inside the archive.

Список параметров

pharpath

The internal path within the phar archive to use as the mounted path location. This must be a relative path within the phar archive, and must not already exist.

externalpath

A path or URL to an external file or directory to mount within the phar archive

Возвращаемые значения

No return. PharException is thrown on failure.

Ошибки

Throws PharException if any problems occur mounting the path.

Примеры

Пример #1 A Phar::mount() example

The following example shows accessing an external configuration file as if it were a path within a phar archive.

First, the code inside of a phar archive:

<?php
$configuration = simplexml_load_string(file_get_contents(
    Phar::running(false) . '/config.xml'));
?>

Next the external code used to mount the configuration file:

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
Phar::mount('phar://config.xml', '/home/example/config.xml');
// now run the application
include '/path/to/archive.phar';
?>

Another method is to put the mounting code inside the stub of the phar archive. Here is an example of setting up a default configuration file if no user configuration is specified:

<?php
// first set up the association between the abstract config.xml
// and the actual one on disk
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');
}
// now run the application
include 'phar://' . __FILE__ . '/index.php';
__HALT_COMPILER();
?>

...and the code externally to load this phar archive:

<?php
define('EXTERNAL_CONFIG', '/home/example/config.xml');
// now run the application
include '/path/to/archive.phar';
?>


Defines a list of up to 4 $_SERVER variables that should be modified for execution

  • « Phar::mount
  • Phar::offsetExists »
  • PHP Manual
  • Phar
  • Defines a list of up to 4 $_SERVER variables that should be modified for execution

Phar::mungServer

(Unknown)

Phar::mungServer — Defines a list of up to 4 $_SERVER variables that should be modified for execution

Описание

final public static void Phar::mungServer ( array $munglist )

Phar::mungServer() should only be called within the stub of a phar archive.

Defines a list of up to 4 $_SERVER variables that should be modified for execution. Variables that can be modified to remove traces of phar execution are REQUEST_URI, PHP_SELF, SCRIPT_NAME and SCRIPT_FILENAME.

On its own, this method does nothing. Only when combined with Phar::webPhar() does it take effect, and only when the requested file is a PHP file to be parsed. Note that the PATH_INFO and PATH_TRANSLATED variables are always modified.

The original values of variables that are modified are stored in the SERVER array with PHAR_ prepended, so for instance SCRIPT_NAME would be saved as PHAR_SCRIPT_NAME.

Список параметров

munglist

an array containing as string indices any of REQUEST_URI, PHP_SELF, SCRIPT_NAME and SCRIPT_FILENAME. Other values trigger an exception, and Phar::mungServer() is case-sensitive.

Возвращаемые значения

No return.

Ошибки

Throws UnexpectedValueException if any problems are found with the passed in data.

Примеры

Пример #1 A Phar::mungServer() example

<?php
// example stub
Phar::mungServer(array('REQUEST_URI'));
Phar::webPhar();
__HALT_COMPILER();
?>

Смотрите также

  • Phar::webPhar() - mapPhar for web-based phars. front controller for web applications
  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive


determines whether a file exists in the phar

  • « Phar::mungServer
  • Phar::offsetGet »
  • PHP Manual
  • Phar
  • determines whether a file exists in the phar

Phar::offsetExists

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetExists — determines whether a file exists in the phar

Описание

public bool Phar::offsetExists ( string $offset )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets.

offsetExists() is called whenever isset() is called.

Список параметров

offset

The filename (relative path) to look for in a Phar.

Возвращаемые значения

Returns TRUE if the file exists within the phar, or FALSE if not.

Примеры

Пример #1 A Phar::offsetExists() example

<?php
$p = new Phar(dirname(__FILE__) . '/my.phar', 0, 'my.phar');
$p['firstfile.txt'] = 'first file';
$p['secondfile.txt'] = 'second file';
// the next set of lines call offsetExists() indirectly
var_dump(isset($p['firstfile.txt']));
var_dump(isset($p['nothere.txt']));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • Phar::offsetGet() - Gets a PharFileInfo object for a specific file
  • Phar::offsetSet() - set the contents of an internal file to those of an external file
  • Phar::offsetUnset() - remove a file from a phar


Gets a PharFileInfo object for a specific file

  • « Phar::offsetExists
  • Phar::offsetSet »
  • PHP Manual
  • Phar
  • Gets a PharFileInfo object for a specific file

Phar::offsetGet

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetGet — Gets a PharFileInfo object for a specific file

Описание

public int Phar::offsetGet ( string $offset )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. Phar::offsetGet() is used for retrieving files from a Phar archive.

Список параметров

offset

The filename (relative path) to look for in a Phar.

Возвращаемые значения

A PharFileInfo object is returned that can be used to iterate over a file's contents or to retrieve information about the current file.

Ошибки

This method throws BadMethodCallException if the file does not exist in the Phar archive.

Примеры

Пример #1 Phar::offsetGet() example

As with all classes that implement the ArrayAccess interface, Phar::offsetGet() is automatically called when using the [] angle bracket operator.

<?php
$p = new Phar(dirname(__FILE__) . '/myphar.phar', 0, 'myphar.phar');
$p['exists.txt'] = "file exists\n";
try {
    // automatically calls offsetGet()
    echo $p['exists.txt'];
    echo $p['doesnotexist.txt'];
} catch (BadMethodCallException $e) {
    echo $e;
}
?>

Результат выполнения данного примера:

file exists
Entry doesnotexist.txt does not exist

Смотрите также

  • Phar::offsetExists() - determines whether a file exists in the phar
  • Phar::offsetSet() - set the contents of an internal file to those of an external file
  • Phar::offsetUnset() - remove a file from a phar


set the contents of an internal file to those of an external file

  • « Phar::offsetGet
  • Phar::offsetUnset »
  • PHP Manual
  • Phar
  • set the contents of an internal file to those of an external file

Phar::offsetSet

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetSet — set the contents of an internal file to those of an external file

Описание

public void Phar::offsetSet ( string $offset , string $value )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetSet is used for modifying an existing file, or adding a new file to a Phar archive.

Список параметров

offset

The filename (relative path) to modify in a Phar.

value

Content of the file.

Возвращаемые значения

No return values.

Ошибки

if phar.readonly is 1, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to 0. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

Примеры

Пример #1 A Phar::offsetSet() example

offsetSet should not be accessed directly, but instead used via array access with the [] operator.

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // calls offsetSet
    $p['file.txt'] = 'Hi there';
} catch (Exception $e) {
    echo 'Could not modify file.txt:', $e;
}
?>

Смотрите также

  • Phar::offsetExists() - determines whether a file exists in the phar
  • Phar::offsetGet() - Gets a PharFileInfo object for a specific file
  • Phar::offsetUnset() - remove a file from a phar


remove a file from a phar

  • « Phar::offsetSet
  • Phar::running »
  • PHP Manual
  • Phar
  • remove a file from a phar

Phar::offsetUnset

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::offsetUnset — remove a file from a phar

Описание

public bool Phar::offsetUnset ( string $offset )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a Phar archive using array access brackets. offsetUnset is used for deleting an existing file, and is called by the unset() language construct.

Список параметров

offset

The filename (relative path) to modify in a Phar.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

if phar.readonly is 1, BadMethodCallException is thrown, as modifying a Phar is only allowed when phar.readonly is set to 0. Throws PharException if there are any problems flushing changes made to the Phar archive to disk.

Примеры

Пример #1 A Phar::offsetUnset() example

<?php
$p = new Phar('/path/to/my.phar', 0, 'my.phar');
try {
    // deletes file.txt from my.phar by calling offsetUnset
    unset($p['file.txt']);
} catch (Exception $e) {
    echo 'Could not delete file.txt: ', $e;
}
?>

Смотрите также

  • Phar::offsetExists() - determines whether a file exists in the phar
  • Phar::offsetGet() - Gets a PharFileInfo object for a specific file
  • Phar::offsetSet() - set the contents of an internal file to those of an external file
  • Phar::unlinkArchive() - Completely remove a phar archive from disk and from memory
  • Phar::delete() - Delete a file within a phar archive


Returns the full path on disk or full phar URL to the currently executing Phar archive

  • « Phar::offsetUnset
  • Phar::setAlias »
  • PHP Manual
  • Phar
  • Returns the full path on disk or full phar URL to the currently executing Phar archive

Phar::running

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::running — Returns the full path on disk or full phar URL to the currently executing Phar archive

Описание

final public static string Phar::running ([ bool $retphar = true ] )

Returns the full path to the running phar archive. This is intended for use much like the __FILE__ magic constant, and only has effect inside an executing phar archive.

Inside the stub of an archive, Phar::running() returns "". Simply use __FILE__ to access the current running phar inside a stub.

Список параметров

retphar

If FALSE, the full path on disk to the phar archive is returned. If TRUE, a full phar URL is returned.

Возвращаемые значения

Returns the filename if valid, empty string otherwise.

Примеры

Пример #1 A Phar::running() example

For the following example, assume the phar archive is located at /path/to/phar/my.phar.

<?php
$a = Phar::running(); // $a is "phar:///path/to/my.phar"
$b = Phar::running(false); // $b is "/path/to/my.phar"
?>


Set the alias for the Phar archive

  • « Phar::running
  • Phar::setDefaultStub »
  • PHP Manual
  • Phar
  • Set the alias for the Phar archive

Phar::setAlias

(PHP >= 5.3.0, PECL phar >= 1.2.1)

Phar::setAlias — Set the alias for the Phar archive

Описание

public bool Phar::setAlias ( string $alias )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Set the alias for the Phar archive, and write it as the permanent alias for this phar archive. An alias can be used internally to a phar archive to ensure that use of the phar stream wrapper to access internal files always works regardless of the location of the phar archive on the filesystem. Another alternative is to rely upon Phar's interception of include or to use Phar::interceptFileFuncs() and use relative paths.

Список параметров

alias

A shorthand string that this archive can be referred to in phar stream wrapper access.

Возвращаемые значения

Ошибки

Throws UnexpectedValueException when write access is disabled, and PharException if the alias is already in use or any problems were encountered flushing changes to disk.

Примеры

Пример #1 A Phar::setAlias() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->setAlias('myp.phar');
} catch (Exception $e) {
    // handle error
}
?>

Смотрите также

  • Phar::__construct() - Construct a Phar archive object
  • Phar::interceptFileFuncs() - instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions


Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

  • « Phar::setAlias
  • Phar::setMetadata »
  • PHP Manual
  • Phar
  • Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

Phar::setDefaultStub

(Unknown)

Phar::setDefaultStub — Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader

Описание

public bool Phar::setDefaultStub ([ string $index [, string $webindex ]] )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

This method is a convenience method that combines the functionality of Phar::createDefaultStub() and Phar::setStub().

Список параметров

index

Relative path within the phar archive to run if accessed on the command-line

webindex

Relative path within the phar archive to run if accessed through a web browser

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

UnexpectedValueException is thrown if phar.readonly is enabled in php.ini. PharException is thrown if any problems are encountered flushing changes to disk.

Примеры

Пример #1 A Phar::setDefaultStub() example

<?php
try {
    $phar = new Phar('myphar.phar');
    $phar->setDefaultStub('cli.php', 'web/index.php');
    // this is the same as:
    // $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
} catch (Exception $e) {
    // handle errors
}
?>

Смотрите также

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Create a phar-file format specific stub


Sets phar archive meta-data

  • « Phar::setDefaultStub
  • Phar::setSignatureAlgorithm »
  • PHP Manual
  • Phar
  • Sets phar archive meta-data

Phar::setMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setMetadata — Sets phar archive meta-data

Описание

public void Phar::setMetadata ( mixed $metadata )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Phar::setMetadata() should be used to store customized data that describes something about the phar archive as a complete entity. PharFileInfo::setMetadata() should be used for file-specific meta-data. Meta-data can slow down the performance of loading a phar archive if the data is large.

Some possible uses for meta-data include specifying which file within the archive should be used to bootstrap the archive, or the location of a file manifest like » PEAR's package.xml file. However, any useful data that describes the phar archive may be stored.

Список параметров

metadata

Any PHP variable containing information to store that describes the phar archive

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 A Phar::setMetadata() example

<?php
// make sure it doesn't exist
@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 'Could not create and/or modify phar:', $e;
}
?>

Результат выполнения данного примера:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Смотрите также

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data


set the signature algorithm for a phar and apply it.

  • « Phar::setMetadata
  • Phar::setStub »
  • PHP Manual
  • Phar
  • set the signature algorithm for a phar and apply it.

Phar::setSignatureAlgorithm

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it.

Описание

public void Phar::setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

set the signature algorithm for a phar and apply it. The signature algorithm must be one of Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::OPENSSL.

Note that all executable phar archives have a signature created automatically, SHA1 by default. data tar- or zip-based archives (archives created with the PharData class) must have their signature created and set explicitly via Phar::setSignatureAlgorithm().

Список параметров

sigtype

    One of Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, or Phar::OPENSSL

privatekey

The contents of an OpenSSL private key, as extracted from a certificate or OpenSSL key file:

<?php
$private = openssl_get_privatekey(file_get_contents('private.pem'));
$pkey = '';
openssl_pkey_export($private, $pkey);
$p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
?>
See phar introduction for instructions on naming and placement of the public key file.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Throws UnexpectedValueException for many errors, and a PharException if any problems occur flushing changes to disk.

Смотрите также

  • Phar::getSupportedSignatures() - Return array of supported signature types
  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive


Used to set the PHP loader or bootstrap stub of a Phar archive

  • « Phar::setSignatureAlgorithm
  • Phar::startBuffering »
  • PHP Manual
  • Phar
  • Used to set the PHP loader or bootstrap stub of a Phar archive

Phar::setStub

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setStub — Used to set the PHP loader or bootstrap stub of a Phar archive

Описание

public bool Phar::setStub ( string $stub [, int $len = -1 ] )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

This method is used to add a PHP bootstrap loader stub to a new Phar archive, or to replace the loader stub in an existing Phar archive.

The loader stub for a Phar archive is used whenever an archive is included directly as in this example:

<?php
include 'myphar.phar';
?>

The loader is not accessed when including a file through the phar stream wrapper like so:

<?php
include 'phar://myphar.phar/somefile.php';
?>

Список параметров

stub

A string or an open stream handle to use as the executable stub for this phar archive.

len

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

UnexpectedValueException is thrown if phar.readonly is enabled in php.ini. PharException is thrown if any problems are encountered flushing changes to disk.

Примеры

Пример #1 A Phar::setStub() example

<?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 'Write operations failed on brandnewphar.phar: ', $e;
}
?>

Результат выполнения данного примера:

string(5) "Hello"
string(82) "<?php var_dump("First"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"
string(5) "World"
string(83) "<?php var_dump("Second"); Phar::mapPhar("brandnewphar.phar"); __HALT_COMPILER(); ?>"

Список изменений

Версия | Описание
5.4.0 | Added len parameter.

Смотрите также

  • Phar::getStub() - Return the PHP loader or bootstrap stub of a Phar archive
  • Phar::createDefaultStub() - Create a phar-file format specific stub


Start buffering Phar write operations, do not modify the Phar object on disk

  • « Phar::setStub
  • Phar::stopBuffering »
  • PHP Manual
  • Phar
  • Start buffering Phar write operations, do not modify the Phar object on disk

Phar::startBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::startBuffering — Start buffering Phar write operations, do not modify the Phar object on disk

Описание

public void Phar::startBuffering ( void )

Although technically unnecessary, the Phar::startBuffering() method can provide a significant performance boost when creating or modifying a Phar archive with a large number of files. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes. In this way, the archive will be up-to-date with the activity performed on it.

However, this can be unnecessary when simply creating a new Phar archive, when it would make more sense to write the entire archive out at once. Similarly, it is often necessary to make a series of changes and to ensure that they all are possible before making any changes on disk, similar to the relational database concept of transactions. the Phar::startBuffering()/Phar::stopBuffering() pair of methods is provided for this purpose.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 A Phar::startBuffering() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar(dirname(__FILE__) . '/brandnewphar.phar', 0, 'brandnewphar.phar');
} catch (Exception $e) {
    echo 'Could not create phar:', $e;
}
echo 'The new phar has ' . $p->count() . " entries\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() - Stop buffering write requests to the Phar archive, and save changes to disk
  • Phar::isBuffering() - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk


Stop buffering write requests to the Phar archive, and save changes to disk

  • « Phar::startBuffering
  • Phar::uncompressAllFiles »
  • PHP Manual
  • Phar
  • Stop buffering write requests to the Phar archive, and save changes to disk

Phar::stopBuffering

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::stopBuffering — Stop buffering write requests to the Phar archive, and save changes to disk

Описание

public void Phar::stopBuffering ( void )

Phar::stopBuffering() is used in conjunction with the Phar::startBuffering() method. Phar::startBuffering() can provide a significant performance boost when creating or modifying a Phar archive with a large number of files. Ordinarily, every time a file within a Phar archive is created or modified in any way, the entire Phar archive will be recreated with the changes. In this way, the archive will be up-to-date with the activity performed on it.

However, this can be unnecessary when simply creating a new Phar archive, when it would make more sense to write the entire archive out at once. Similarly, it is often necessary to make a series of changes and to ensure that they all are possible before making any changes on disk, similar to the relational database concept of transactions. The Phar::startBuffering()/Phar::stopBuffering() pair of methods is provided for this purpose.

Phar write buffering is per-archive, buffering active for the foo.phar Phar archive does not affect changes to the bar.phar Phar archive.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

PharException is thrown if any problems are encountered flushing changes to disk.

Примеры

Пример #1 A Phar::stopBuffering() example

<?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() - Start buffering Phar write operations, do not modify the Phar object on disk
  • Phar::isBuffering() - Used to determine whether Phar write operations are being buffered, or are flushing directly to disk


Uncompresses all files in the current Phar archive

  • « Phar::stopBuffering
  • Phar::unlinkArchive »
  • PHP Manual
  • Phar
  • Uncompresses all files in the current Phar archive

Phar::uncompressAllFiles

(PECL phar < 2.0.0)

Phar::uncompressAllFiles — Uncompresses all files in the current Phar archive

Описание

public bool Phar::uncompressAllFiles ( void )

Замечание:

Этот метод был
удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций
Phar::compress(),
Phar::decompress(), Phar::compressFiles() и
Phar::decompressFiles().

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

This method decompresses all files in the Phar archive. If any files are already compressed using gzip compression, the zlib extension must be enabled in order to decompress the files, and any files compressed using bzip2 compression require the bzip2 extension to decompress the files. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, the bzip2 extension is not enabled and any files are compressed using bzip2 compression, or if any files are compressed using gzip compression and the zlib extension is not enabled.

Примеры

Пример #1 A Phar::uncompressAllFiles() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p->compressAllFilesGZ();
    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressedBZIP2());
        var_dump($file->isCompressedGZ());
    }
    $p->uncompressAllFiles();
    foreach ($p as $file) {
        var_dump($file->getFileName());
        var_dump($file->isCompressed());
        var_dump($file->isCompressedBZIP2());
        var_dump($file->isCompressedGZ());
    }
} catch (Exception $e) {
    echo 'Write operations failed on my.phar: ', $e;
}
?>

Результат выполнения данного примера:

string(10) "myfile.txt"
bool(true)
bool(false)
bool(true)
string(11) "myfile2.txt"
bool(true)
bool(false)
bool(true)
string(10) "myfile.txt"
bool(false)
bool(false)
bool(false)
string(11) "myfile2.txt"
bool(false)
bool(false)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms


Completely remove a phar archive from disk and from memory

  • « Phar::uncompressAllFiles
  • Phar::webPhar »
  • PHP Manual
  • Phar
  • Completely remove a phar archive from disk and from memory

Phar::unlinkArchive

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::unlinkArchive — Completely remove a phar archive from disk and from memory

Описание

final public static bool Phar::unlinkArchive ( string $archive )

Removes a phar archive for disk and memory.

Список параметров

archive

The path on disk to the phar archive.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

PharException is thrown if there are any open file pointers to the phar archive, or any existing Phar, PharData, or PharFileInfo objects referring to the phar archive.

Примеры

Пример #1 A Phar::unlinkArchive() example

<?php
// simple usage
Phar::unlinkArchive('/path/to/my.phar');

// more common example:
$p = new Phar('my.phar');
$fp = fopen('phar://my.phar/file.txt', 'r');
// this creates 'my.phar.gz'
$gp = $p->compress(Phar::GZ);
// remove all references to the archive
unset($p);
fclose($fp);
// now remove all traces of the archive
Phar::unlinkArchive('my.phar');
?>

Смотрите также

  • Phar::delete() - Delete a file within a phar archive
  • Phar::offsetUnset() - remove a file from a phar


mapPhar for web-based phars. front controller for web applications

  • « Phar::unlinkArchive
  • PharData »
  • PHP Manual
  • Phar
  • mapPhar for web-based phars. front controller for web applications

Phar::webPhar

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Phar::webPhar — mapPhar for web-based phars. front controller for web applications

Описание

final public static void Phar::webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites ]]]]] )

Phar::mapPhar() for web-based phars. This method parses $_SERVER['REQUEST_URI'] and routes a request from a web browser to an internal file within the phar archive. In essence, it simulates a web server, routing requests to the correct file, echoing the correct headers and parsing PHP files as needed. This powerful method is part of what makes it easy to convert an existing PHP application into a phar archive. Combined with Phar::mungServer() and Phar::interceptFileFuncs(), any web application can be used unmodified from a phar archive.

Phar::webPhar() should only be called from the stub of a phar archive (see here for more information on what a stub is).

Список параметров

alias

The alias that can be used in phar:// URLs to refer to this archive, rather than its full path.

index

The location within the phar of the directory index.

f404

The location of the script to run when a file is not found. This script should output the proper HTTP 404 headers.

mimetypes

An array mapping additional file extensions to MIME type. If the default mapping is sufficient, pass an empty array. By default, these extensions are mapped to these MIME types:

<?php
$mimes = array(
    'phps' => Phar::PHPS, // pass to 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, // parse as PHP
    'inc' => Phar::PHP, // parse as PHP
    'avi' => 'video/avi',
    'bmp' => 'image/bmp',
    'css' => 'text/css',
    'gif' => 'image/gif',
    'htm' => 'text/html',
    'html' => 'text/html',
    'htmls' => 'text/html',
    'ico' => 'image/x-ico',
    'jpe' => 'image/jpeg',
    'jpg' => 'image/jpeg',
    'jpeg' => 'image/jpeg',
    'js' => 'application/x-javascript',
    'midi' => 'audio/midi',
    'mid' => 'audio/midi',
    'mod' => 'audio/mod',
    'mov' => 'movie/quicktime',
    'mp3' => 'audio/mp3',
    'mpg' => 'video/mpeg',
    'mpeg' => 'video/mpeg',
    'pdf' => 'application/pdf',
    'png' => 'image/png',
    'swf' => 'application/shockwave-flash',
    'tif' => 'image/tiff',
    'tiff' => 'image/tiff',
    'wav' => 'audio/wav',
    'xbm' => 'image/xbm',
    'xml' => 'text/xml',
);
?>

rewrites

The rewrites function is passed a string as its only parameter and must return a string or FALSE.

If you are using fast-cgi or cgi then the parameter passed to the function is the value of the $_SERVER['PATH_INFO'] variable. Otherwise, the parameter passed to the function is the value of the $_SERVER['REQUEST_URI'] variable.

If a string is returned it is used as the internal file path. If FALSE is returned then webPhar() will send a HTTP 403 Denied Code.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Throws PharException when unable to open the internal file to output, or if called from a non-stub. If an invalid array value is passed into mimetypes or an invalid callback is passed into rewrites, then UnexpectedValueException is thrown.

Примеры

Пример #1 A Phar::webPhar() example

With the example below, the created phar will display Hello World if one browses to /myphar.phar/index.php or to /myphar.phar, and will display the source of index.phps if one browses to /myphar.phar/index.phps.

<?php
// creating the phar archive:
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) {
    // handle error here
}
?>

Смотрите также

  • Phar::mungServer() - Defines a list of up to 4 $_SERVER variables that should be modified for execution
  • Phar::interceptFileFuncs() - instructs phar to intercept fopen, file_get_contents, opendir, and all of the stat-related functions


The PharData class

(PHP >= 5.3.0, PECL phar >= 2.0.0)

Введение

The PharData class provides a high-level interface to accessing and creating non-executable tar and zip archives. Because these archives do not contain a stub and cannot be executed by the phar extension, it is possible to create and manipulate regular zip and tar files using the PharData class even if phar.readonly php.ini setting is 1.

Обзор классов

PharData extends Phar {
/* Методы */
bool addEmptyDir ( string $dirname )
public void Phar::addFile ( string $file [, string $localname ] )
bool addFromString ( string $localname , string $contents )
public array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )
array buildFromIterator ( Iterator $iter [, string $base_directory ] )
object compress ( int $compression [, string $extension ] )
bool compressFiles ( int $compression )
__construct ( string $fname [, int $flags [, string $alias [, int $format = Phar::TAR ]]] )
PharData convertToData ([ int $format [, int $compression [, string $extension ]]] )
Phar convertToExecutable ([ int $format [, int $compression [, string $extension ]]] )
bool copy ( string $oldfile , string $newfile )
object decompress ([ string $extension ] )
bool decompressFiles ( void )
bool delMetadata ( void )
bool delete ( string $entry )
bool extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )
bool isWritable ( void )
void offsetSet ( string $offset , string $value )
bool offsetUnset ( string $offset )
bool setAlias ( string $alias )
bool setDefaultStub ([ string $index [, string $webindex ]] )
public void Phar::setMetadata ( mixed $metadata )
public void Phar::setSignatureAlgorithm ( int $sigtype )
bool setStub ( string $stub [, int $len = -1 ] )
/* Наследуемые методы */
public void Phar::addEmptyDir ( string $dirname )
public void Phar::addFile ( string $file [, string $localname ] )
public void Phar::addFromString ( string $localname , string $contents )
final public static string Phar::apiVersion ( void )
public array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )
public array Phar::buildFromIterator ( Iterator $iter [, string $base_directory ] )
final public static bool Phar::canCompress ([ int $type = 0 ] )
final public static bool Phar::canWrite ( void )
public object Phar::compress ( int $compression [, string $extension ] )
public bool Phar::compressAllFilesBZIP2 ( void )
public bool Phar::compressAllFilesGZ ( void )
public void Phar::compressFiles ( int $compression )
public Phar::__construct ( string $fname [, int $flags [, string $alias ]] )
public PharData Phar::convertToData ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
public Phar Phar::convertToExecutable ([ int $format = 9021976 [, int $compression = 9021976 [, string $extension ]]] )
public bool Phar::copy ( string $oldfile , string $newfile )
public int Phar::count ( void )
final public static string Phar::createDefaultStub ([ string $indexfile [, string $webindexfile ]] )
public object Phar::decompress ([ string $extension ] )
public bool Phar::decompressFiles ( void )
public bool Phar::delMetadata ( void )
public bool Phar::delete ( string $entry )
public bool Phar::extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )
public mixed Phar::getMetadata ( void )
public bool Phar::getModified ( void )
public array Phar::getSignature ( void )
public string Phar::getStub ( void )
final public static array Phar::getSupportedCompression ( void )
final public static array Phar::getSupportedSignatures ( void )
public string Phar::getVersion ( void )
public bool Phar::hasMetadata ( void )
final public static void Phar::interceptFileFuncs ( void )
public bool Phar::isBuffering ( void )
public mixed Phar::isCompressed ( void )
public bool Phar::isFileFormat ( int $format )
final public static bool Phar::isValidPharFilename ( string $filename [, bool $executable = true ] )
public bool Phar::isWritable ( void )
final public static bool Phar::loadPhar ( string $filename [, string $alias ] )
final public static bool Phar::mapPhar ([ string $alias [, int $dataoffset = 0 ]] )
final public static void Phar::mount ( string $pharpath , string $externalpath )
final public static void Phar::mungServer ( array $munglist )
public bool Phar::offsetExists ( string $offset )
public int Phar::offsetGet ( string $offset )
public void Phar::offsetSet ( string $offset , string $value )
public bool Phar::offsetUnset ( string $offset )
final public static string Phar::running ([ bool $retphar = true ] )
public bool Phar::setAlias ( string $alias )
public bool Phar::setDefaultStub ([ string $index [, string $webindex ]] )
public void Phar::setMetadata ( mixed $metadata )
public void Phar::setSignatureAlgorithm ( int $sigtype [, string $privatekey ] )
public bool Phar::setStub ( string $stub [, int $len = -1 ] )
public void Phar::startBuffering ( void )
public void Phar::stopBuffering ( void )
public bool Phar::uncompressAllFiles ( void )
final public static bool Phar::unlinkArchive ( string $archive )
final public static void Phar::webPhar ([ string $alias [, string $index = "index.php" [, string $f404 [, array $mimetypes [, callable $rewrites ]]]]] )
}

Содержание

  • PharData::addEmptyDir — Add an empty directory to the tar/zip archive
  • PharData::addFile — Add a file from the filesystem to the tar/zip archive
  • PharData::addFromString — Add a file from the filesystem to the tar/zip archive
  • PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory.
  • PharData::buildFromIterator — Construct a tar or zip archive from an iterator.
  • PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::compressFiles — Compresses all files in the current tar/zip archive
  • PharData::__construct — Construct a non-executable tar or zip archive object
  • PharData::convertToData — Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive
  • PharData::copy — Copy a file internal to the phar archive to another new file within the phar
  • PharData::decompress — Decompresses the entire Phar archive
  • PharData::decompressFiles — Decompresses all files in the current zip archive
  • PharData::delMetadata — Deletes the global metadata of a zip archive
  • PharData::delete — Delete a file within a tar/zip archive
  • PharData::extractTo — Extract the contents of a tar/zip archive to a directory
  • PharData::isWritable — Returns true if the tar/zip archive can be modified
  • PharData::offsetSet — set the contents of a file within the tar/zip to those of an external file or string
  • PharData::offsetUnset — remove a file from a tar/zip archive
  • PharData::setAlias — dummy function (Phar::setAlias is not valid for PharData)
  • PharData::setDefaultStub — dummy function (Phar::setDefaultStub is not valid for PharData)
  • Phar::setMetadata — Sets phar archive meta-data
  • Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it.
  • PharData::setStub — dummy function (Phar::setStub is not valid for PharData)


Add an empty directory to the tar/zip archive

  • « PharData
  • PharData::addFile »
  • PHP Manual
  • PharData
  • Add an empty directory to the tar/zip archive

PharData::addEmptyDir

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addEmptyDir — Add an empty directory to the tar/zip archive

Описание

bool PharData::addEmptyDir ( string $dirname )

With this method, an empty directory is created with path dirname. This method is similar to ZipArchive::addEmptyDir().

Список параметров

dirname

The name of the empty directory to create in the phar archive

Возвращаемые значения

no return value, exception is thrown on failure.

Примеры

Пример #1 A PharData::addEmptyDir() example

<?php
try {
    $a = new PharData('/path/to/my.tar');

    $a->addEmptyDir('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->isDir();
} catch (Exception $e) {
    // handle errors here
}
?>

Смотрите также

  • Phar::addEmptyDir() - Add an empty directory to the phar archive
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • PharData::addFromString() - Add a file from the filesystem to the tar/zip archive


Add a file from the filesystem to the tar/zip archive

  • « PharData::addEmptyDir
  • PharData::addFromString »
  • PHP Manual
  • PharData
  • Add a file from the filesystem to the tar/zip archive

PharData::addFile

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addFile — Add a file from the filesystem to the tar/zip archive

Описание

public void Phar::addFile ( string $file [, string $localname ] )

With this method, any file or URL can be added to the tar/zip archive. If the optional second parameter localname is specified, the file will be stored in the archive with that name, otherwise the file parameter is used as the path to store within the archive. URLs must have a localname or an exception is thrown. This method is similar to ZipArchive::addFile().

Список параметров

file

Full or relative path to a file on disk to be added to the phar archive.

localname

Path that the file will be stored in the archive.

Возвращаемые значения

no return value, exception is thrown on failure.

Примеры

Пример #1 A PharData::addFile() example

<?php
try {
    $a = new PharData('/path/to/my.tar');

    $a->addFile('/full/path/to/file');
    // demonstrates how this file is stored
    $b = $a['full/path/to/file']->getContent();

    $a->addFile('/full/path/to/file', 'my/file.txt');
    $c = $a['my/file.txt']->getContent();

    // demonstrate URL usage
    $a->addFile('http://www.example.com', 'example.html');
} catch (Exception $e) {
    // handle errors here
}
?>

Смотрите также

  • PharData::offsetSet() - set the contents of a file within the tar/zip to those of an external file or string
  • Phar::addFile() - Add a file from the filesystem to the phar archive
  • PharData::addFromString() - Add a file from the filesystem to the tar/zip archive
  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive


Add a file from the filesystem to the tar/zip archive

  • « PharData::addFile
  • PharData::buildFromDirectory »
  • PHP Manual
  • PharData
  • Add a file from the filesystem to the tar/zip archive

PharData::addFromString

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::addFromString — Add a file from the filesystem to the tar/zip archive

Описание

bool PharData::addFromString ( string $localname , string $contents )

With this method, any string can be added to the tar/zip archive. The file will be stored in the archive with localname as its path. This method is similar to ZipArchive::addFromString().

Список параметров

localname

Path that the file will be stored in the archive.

contents

The file contents to store

Возвращаемые значения

no return value, exception is thrown on failure.

Примеры

Пример #1 A PharData::addFromString() example

<?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();

    // to add contents from a stream handle for large files, use offsetSet()
    $c = fopen('/path/to/hugefile.bin');
    $a['largefile.bin'] = $c;
    fclose($c);
} catch (Exception $e) {
    // handle errors here
}
?>

Смотрите также

  • PharData::offsetSet() - set the contents of a file within the tar/zip to those of an external file or string
  • Phar::addFromString() - Add a file from a string to the phar archive
  • PharData::addFile() - Add a file from the filesystem to the tar/zip archive
  • PharData::addEmptyDir() - Add an empty directory to the tar/zip archive


Construct a tar/zip archive from the files within a directory.

  • « PharData::addFromString
  • PharData::buildFromIterator »
  • PHP Manual
  • PharData
  • Construct a tar/zip archive from the files within a directory.

PharData::buildFromDirectory

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::buildFromDirectory — Construct a tar/zip archive from the files within a directory.

Описание

public array Phar::buildFromDirectory ( string $base_dir [, string $regex ] )

Populate a tar/zip archive from directory contents. The optional second parameter is a regular expression (pcre) that is used to exclude files. Any filename that matches the regular expression will be included, all others will be excluded. For more fine-grained control, use PharData::buildFromIterator().

Список параметров

base_dir

The full or relative path to the directory that contains all files to add to the archive.

regex

An optional pcre regular expression that is used to filter the list of files. Only file paths matching the regular expression will be included in the archive.

Возвращаемые значения

Phar::buildFromDirectory() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

Ошибки

This method throws BadMethodCallException when unable to instantiate the internal directory iterators, or a PharException if there were errors saving the phar archive.

Примеры

Пример #1 A PharData::buildFromDirectory() example

<?php
$phar = new PharData('project.tar');
// add all files in the project
$phar->buildFromDirectory(dirname(__FILE__) . '/project');

$phar2 = new PharData('project2.zip');
// add all files in the project, only include php files
$phar2->buildFromDirectory(dirname(__FILE__) . '/project', '/\.php$/');
?>

Смотрите также

  • Phar::buildFromDirectory() - Construct a phar archive from the files within a directory.
  • PharData::buildFromIterator() - Construct a tar or zip archive from an iterator.


Construct a tar or zip archive from an iterator.

  • « PharData::buildFromDirectory
  • PharData::compress »
  • PHP Manual
  • PharData
  • Construct a tar or zip archive from an iterator.

PharData::buildFromIterator

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::buildFromIterator — Construct a tar or zip archive from an iterator.

Описание

array PharData::buildFromIterator ( Iterator $iter [, string $base_directory ] )

Populate a tar or zip archive from an iterator. Two styles of iterators are supported, iterators that map the filename within the tar/zip to the name of a file on disk, and iterators like DirectoryIterator that return SplFileInfo objects. For iterators that return SplFileInfo objects, the second parameter is required.

Примеры

Пример #1 A PharData::buildFromIterator() with SplFileInfo

For most tar/zip archives, the archive will reflect an actual directory layout, and the second style is the most useful. For instance, to create a tar/zip archive containing the files in this sample directory layout:

/path/to/project/
                 config/
                        dist.xml
                        debug.xml
                 lib/
                     file1.php
                     file2.php
                 src/
                     processthing.php
                 www/
                     index.php
                 cli/
                     index.php

This code could be used to add these files to the "project.tar" tar archive:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
    new RecursiveIteratorIterator(
     new RecursiveDirectoryIterator('/path/to/project')),
    '/path/to/project');
?>

The file project.tar can then be used immediately. PharData::buildFromIterator() does not set values such as compression, metadata, and this can be done after creating the tar/zip archive.

As an interesting note, PharData::buildFromIterator() can also be used to copy the contents of an existing phar, tar or zip archive, as the PharData object descends from 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 A PharData::buildFromIterator() with other iterators

The second form of the iterator can be used with any iterator that returns a key => value mapping, such as an ArrayIterator:

<?php
$phar = new PharData('project.tar');
$phar->buildFromIterator(
    new ArrayIterator(
     array(
        'internal/file.php' => dirname(__FILE__) . '/somefile.php',
        'another/file.jpg' => fopen('/path/to/bigfile.jpg', 'rb'),
     )));
?>

Список параметров

iter

Any iterator that either associatively maps tar/zip file to location or returns SplFileInfo objects

base_directory

For iterators that return SplFileInfo objects, the portion of each file's full path to remove when adding to the tar/zip archive

Возвращаемые значения

PharData::buildFromIterator() returns an associative array mapping internal path of file to the full path of the file on the filesystem.

Ошибки

This method returns UnexpectedValueException when the iterator returns incorrect values, such as an integer key instead of a string, a BadMethodCallException when an SplFileInfo-based iterator is passed without a base_directory parameter, or a PharException if there were errors saving the phar archive.

Смотрите также

  • Phar::buildFromIterator() - Construct a phar archive from an iterator.


Compresses the entire tar/zip archive using Gzip or Bzip2 compression

  • « PharData::buildFromIterator
  • PharData::compressFiles »
  • PHP Manual
  • PharData
  • Compresses the entire tar/zip archive using Gzip or Bzip2 compression

PharData::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::compress — Compresses the entire tar/zip archive using Gzip or Bzip2 compression

Описание

object PharData::compress ( int $compression [, string $extension ] )

For tar archives, this method compresses the entire archive using gzip compression or bzip2 compression. The resulting file can be processed with the gunzip command/bunzip command, or accessed directly and transparently with the Phar extension.

For zip archives, this method fails with an exception. The zlib extension must be enabled to compress with gzip compression, the bzip2 extension must be enabled in order to compress with bzip2 compression.

In addition, this method automatically renames the archive, appending .gz, .bz2 or removing the extension if passed Phar::NONE to remove compression. Alternatively, a file extension may be specified with the second parameter.

Список параметров

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

extension

By default, the extension is .tar.gz or .tar.bz2 for compressing a tar, and .tar for decompressing.

Возвращаемые значения

A PharData object is returned.

Ошибки

Throws BadMethodCallException if the zlib extension is not available, or the bzip2 extension is not enabled.

Примеры

Пример #1 A PharData::compress() example

<?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() - Compresses the entire Phar archive using Gzip or Bzip2 compression


Compresses all files in the current tar/zip archive

  • « PharData::compress
  • PharData::__construct »
  • PHP Manual
  • PharData
  • Compresses all files in the current tar/zip archive

PharData::compressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::compressFiles — Compresses all files in the current tar/zip archive

Описание

bool PharData::compressFiles ( int $compression )

For tar-based archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use PharData::compress() to compress an entire tar-based archive.

For Zip-based archives, this method compresses all files in the archive using the specified compression. The zlib or bzip2 extensions must be enabled to take advantage of this feature. In addition, if any files are already compressed using bzip2/zlib compression, the respective extension must be enabled in order to decompress the files prior to re-compressing.

Список параметров

compression

Compression must be one of Phar::GZ, Phar::BZ2 to add compression, or Phar::NONE to remove compression.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Примеры

Пример #1 A PharData::compressFiles() example

<?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() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::decompressFiles() - Decompresses all files in the current zip archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::decompress() - Decompresses the entire Phar archive


Construct a non-executable tar or zip archive object

  • « PharData::compressFiles
  • PharData::convertToData »
  • PHP Manual
  • PharData
  • Construct a non-executable tar or zip archive object

PharData::__construct

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::__construct — Construct a non-executable tar or zip archive object

Описание

PharData::__construct ( string $fname [, int $flags [, string $alias [, int $format = Phar::TAR ]]] )

Список параметров

fname

Path to an existing tar/zip archive or to-be-created archive

flags

Flags to pass to Phar parent class RecursiveDirectoryIterator.

alias

Alias with which this Phar archive should be referred to in calls to stream functionality.

format

One of the file format constants available within the Phar class.

Ошибки

Throws BadMethodCallException if called twice; UnexpectedValueException if the Phar archive can't be opened.

Примеры

Пример #1 A PharData::__construct() example

<?php
try {
    $p = new PharData('/path/to/my.tar', Phar::CURRENT_AS_FILEINFO | Phar::KEY_AS_FILENAME);
} catch (UnexpectedValueException $e) {
    die('Could not open my.tar');
} catch (BadMethodCallException $e) {
    echo 'technically, this cannot happen';
}
echo file_get_contents('phar:///path/to/my.tar/example.txt');
?>


Convert a phar archive to a non-executable tar or zip file

  • « PharData::__construct
  • PharData::convertToExecutable »
  • PHP Manual
  • PharData
  • Convert a phar archive to a non-executable tar or zip file

PharData::convertToData

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::convertToData — Convert a phar archive to a non-executable tar or zip file

Описание

PharData PharData::convertToData ([ int $format [, int $compression [, string $extension ]]] )

This method is used to convert a non-executable tar or zip archive to another non-executable format.

If no changes are specified, this method throws a BadMethodCallException. This method should be used to convert a tar archive to zip format or vice-versa. Although it is possible to simply change the compression of a tar archive using this method, it is better to use the PharData::compress() method for logical consistency.

If successful, the method creates a new archive on disk and returns a PharData object. The old archive is not removed from disk, and should be done manually after the process has finished.

Список параметров

format

This should be one of Phar::TAR or Phar::ZIP. If set to NULL, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that .phar cannot be used anywhere in the filename for a non-executable tar or zip archive.

If converting to a tar-based phar archive, the default extensions are .tar, .tar.gz, and .tar.bz2 depending on specified compression. For zip-based archives, the default extension is .zip.

Возвращаемые значения

The method returns a PharData object on success and throws an exception on failure.

Ошибки

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), and a PharException if any problems are encountered during the phar creation process.

Примеры

Пример #1 A PharData::convertToData() example

Using PharData::convertToData():

<?php
try {
    $tarphar = new PharData('myphar.tar');
    // note that myphar.tar is *not* unlinked
    // convert it to the non-executable tar file format
    // creates myphar.zip
    $zip = $tarphar->convertToData(Phar::ZIP);
    // create myphar.tbz
    $tgz = $zip->convertToData(Phar::TAR, Phar::BZ2, '.tbz');
    // creates myphar.phar.tgz
    $phar = $tarphar->convertToData(Phar::PHAR); // throws exception
} catch (Exception $e) {
    // handle the error here
}
?>

Смотрите также

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToExecutable() - Convert a non-executable tar/zip archive to an executable phar archive


Convert a non-executable tar/zip archive to an executable phar archive

  • « PharData::convertToData
  • PharData::copy »
  • PHP Manual
  • PharData
  • Convert a non-executable tar/zip archive to an executable phar archive

PharData::convertToExecutable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::convertToExecutable — Convert a non-executable tar/zip archive to an executable phar archive

Описание

Phar PharData::convertToExecutable ([ int $format [, int $compression [, string $extension ]]] )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

This method is used to convert a non-executable tar or zip archive to an executable phar archive. Any of the three executable file formats (phar, tar or zip) can be used, and whole-archive compression can also be performed.

If no changes are specified, this method throws a BadMethodCallException.

If successful, the method creates a new archive on disk and returns a Phar object. The old archive is not removed from disk, and should be done manually after the process has finished.

Список параметров

format

This should be one of Phar::PHAR, Phar::TAR, or Phar::ZIP. If set to NULL, the existing file format will be preserved.

compression

This should be one of Phar::NONE for no whole-archive compression, Phar::GZ for zlib-based compression, and Phar::BZ2 for bzip-based compression.

extension

This parameter is used to override the default file extension for a converted archive. Note that all zip- and tar-based phar archives must contain .phar in their file extension in order to be processed as a phar archive.

If converting to a phar-based archive, the default extensions are .phar, .phar.gz, or .phar.bz2 depending on the specified compression. For tar-based phar archives, the default extensions are .phar.tar, .phar.tar.gz, and .phar.tar.bz2. For zip-based phar archives, the default extension is .phar.zip.

Возвращаемые значения

The method returns a Phar object on success and throws an exception on failure.

Ошибки

This method throws BadMethodCallException when unable to compress, an unknown compression method has been specified, the requested archive is buffering with Phar::startBuffering() and has not concluded with Phar::stopBuffering(), an UnexpectedValueException if write support is disabled, and a PharException if any problems are encountered during the phar creation process.

Примеры

Пример #1 A PharData::convertToExecutable() example

Using PharData::convertToExecutable():

<?php
try {
    $tarphar = new PharData('myphar.tar');
    // convert it to the phar file format
    // note that myphar.tar is *not* unlinked
    $phar = $tarphar->convertToExecutable(Phar::PHAR); // creates myphar.phar
    $phar->setStub($phar->createDefaultStub('cli.php', 'web/index.php'));
    // creates myphar.phar.tgz
    $compressed = $tarphar->convertToExecutable(Phar::TAR, Phar::GZ, '.phar.tgz');
} catch (Exception $e) {
    // handle the error here
}
?>

Смотрите также

  • Phar::convertToExecutable() - Convert a phar archive to another executable phar archive file format
  • Phar::convertToData() - Convert a phar archive to a non-executable tar or zip file
  • PharData::convertToData() - Convert a phar archive to a non-executable tar or zip file


Copy a file internal to the phar archive to another new file within the phar

  • « PharData::convertToExecutable
  • PharData::decompress »
  • PHP Manual
  • PharData
  • Copy a file internal to the phar archive to another new file within the phar

PharData::copy

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::copy — Copy a file internal to the phar archive to another new file within the phar

Описание

bool PharData::copy ( string $oldfile , string $newfile )

Copy a file internal to the tar/zip archive to another new file within the same archive. This is an object-oriented alternative to using copy() with the phar stream wrapper.

Список параметров

oldfile

newfile

Возвращаемые значения

returns TRUE on success, but it is safer to encase method call in a try/catch block and assume success if no exception is thrown.

Ошибки

throws UnexpectedValueException if the source file does not exist, the destination file already exists, write access is disabled, opening either file fails, reading the source file fails, or a PharException if writing the changes to the phar fails.

Примеры

Пример #1 A PharData::copy() example

This example shows using PharData::copy() and the equivalent stream wrapper performance of the same thing. The primary difference between the two approaches is error handling. All PharData methods throw exceptions, whereas the stream wrapper uses trigger_error().

<?php
try {
    $phar = new PharData('myphar.tar');
    $phar['a'] = 'hi';
    $phar->copy('a', 'b');
    echo $phar['b']; // outputs "phar://myphar.tar/b"
} catch (Exception $e) {
    // handle error
}

// the stream wrapper equivalent of the above code.
// E_WARNINGS are triggered on error rather than exceptions.
copy('phar://myphar.tar/a', 'phar//myphar.tar/c');
echo file_get_contents('phar://myphar.tar/c'); // outputs "hi"
?>


Decompresses the entire Phar archive

  • « PharData::copy
  • PharData::decompressFiles »
  • PHP Manual
  • PharData
  • Decompresses the entire Phar archive

PharData::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::decompress — Decompresses the entire Phar archive

Описание

object PharData::decompress ([ string $extension ] )

For tar-based archives, this method decompresses the entire archive.

For Zip-based archives, this method fails with an exception. The zlib extension must be enabled to decompress an archive compressed with gzip compression, and the bzip2 extension must be enabled in order to decompress an archive compressed with bzip2 compression.

In addition, this method automatically renames the file extension of the archive, .tar by default. Alternatively, a file extension may be specified with the second parameter.

Список параметров

extension

For decompressing, the default file extension is .phar.tar. Use this parameter to specify another file extension. Be aware that no non-executable archives cannot contain .phar in their filename.

Возвращаемые значения

A PharData object is returned.

Ошибки

Throws BadMethodCallException if the zlib extension is not available, or the bzip2 extension is not enabled.

Примеры

Пример #1 A PharData::decompress() example

<?php
$p = new PharData('/path/to/my.tar.gz');
$p->decompress(); // creates /path/to/my.tar
?>

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compressFiles() - Compresses all files in the current tar/zip archive
  • PharData::decompressFiles() - Decompresses all files in the current zip archive


Decompresses all files in the current zip archive

  • « PharData::decompress
  • PharData::delMetadata »
  • PHP Manual
  • PharData
  • Decompresses all files in the current zip archive

PharData::decompressFiles

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::decompressFiles — Decompresses all files in the current zip archive

Описание

bool PharData::decompressFiles ( void )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

For tar-based archives, this method throws a BadMethodCallException, as compression of individual files within a tar archive is not supported by the file format. Use PharData::compress() to compress an entire tar-based archive.

For Zip-based archives, this method decompresses all files in the archive. The zlib or bzip2 extensions must be enabled to take advantage of this feature if any files are compressed using bzip2/zlib compression.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws BadMethodCallException if the zlib extension is not available, or if any files are compressed using bzip2 compression and the bzip2 extension is not enabled.

Примеры

Пример #1 A PharData::decompressFiles() example

<?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() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • PharData::compressFiles() - Compresses all files in the current tar/zip archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • PharData::compress() - Compresses the entire tar/zip archive using Gzip or Bzip2 compression
  • PharData::decompress() - Decompresses the entire Phar archive


Deletes the global metadata of a zip archive

  • « PharData::decompressFiles
  • PharData::delete »
  • PHP Manual
  • PharData
  • Deletes the global metadata of a zip archive

PharData::delMetadata

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::delMetadata — Deletes the global metadata of a zip archive

Описание

bool PharData::delMetadata ( void )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Deletes the global metadata of the zip archive

Список параметров

Возвращаемые значения

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

Ошибки

Throws PharException if errors occur while flushing changes to disk.

Примеры

Пример #1 A PharData::delMetaData() example

<?php
try {
    $phar = new PharData('myphar.zip');
    var_dump($phar->getMetadata());
    $phar->setMetadata("hi there");
    var_dump($phar->getMetadata());
    $phar->delMetadata();
    var_dump($phar->getMetadata());
} catch (Exception $e) {
    // handle errors
}
?>

Результат выполнения данного примера:

NULL
string(8) "hi there"
NULL

Смотрите также

  • Phar::delMetadata() - Deletes the global metadata of the phar


Delete a file within a tar/zip archive

  • « PharData::delMetadata
  • PharData::extractTo »
  • PHP Manual
  • PharData
  • Delete a file within a tar/zip archive

PharData::delete

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::delete — Delete a file within a tar/zip archive

Описание

bool PharData::delete ( string $entry )

Delete a file within an archive. This is the functional equivalent of calling unlink() on the stream wrapper equivalent, as shown in the example below.

Список параметров

entry

Path within an archive to the file to delete.

Возвращаемые значения

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

Ошибки

Throws PharException if errors occur while flushing changes to disk.

Примеры

Пример #1 A PharData::delete() example

<?php
try {
    $phar = new PharData('myphar.zip');
    $phar->delete('unlink/me.php');
    // this is equivalent to:
    unlink('phar://myphar.phar/unlink/me.php');
} catch (Exception $e) {
    // handle errors
}
?>

Смотрите также

  • Phar::delete() - Delete a file within a phar archive


Extract the contents of a tar/zip archive to a directory

  • « PharData::delete
  • PharData::isWritable »
  • PHP Manual
  • PharData
  • Extract the contents of a tar/zip archive to a directory

PharData::extractTo

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::extractTo — Extract the contents of a tar/zip archive to a directory

Описание

bool PharData::extractTo ( string $pathto [, string|array $files [, bool $overwrite = false ]] )

Extract all files within a tar/zip archive to disk. Extracted files and directories preserve permissions as stored in the archive. The optional parameters allow optional control over which files are extracted, and whether existing files on disk can be overwritten. The second parameter files can be either the name of a file or directory to extract, or an array of names of files and directories to extract. By default, this method will not overwrite existing files, the third parameter can be set to true to enable overwriting of files. This method is similar to ZipArchive::extractTo().

Список параметров

pathto

Path to extract the given files to

files

The name of a file or directory to extract, or an array of files/directories to extract

overwrite

Set to TRUE to enable overwriting existing files

Возвращаемые значения

returns TRUE on success, but it is better to check for thrown exception, and assume success if none is thrown.

Ошибки

Throws PharException if errors occur while flushing changes to disk.

Примеры

Пример #1 A PharData::extractTo() example

<?php
try {
    $phar = new PharData('myphar.tar');
    $phar->extractTo('/full/path'); // extract all files
    $phar->extractTo('/another/path', 'file.txt'); // extract only file.txt
    $phar->extractTo('/this/path',
        array('file1.txt', 'file2.txt')); // extract 2 files only
    $phar->extractTo('/third/path', null, true); // extract all files, and overwrite
} catch (Exception $e) {
    // handle errors
}
?>

Смотрите также

  • Phar::extractTo() - Extract the contents of a phar archive to a directory


Returns true if the tar/zip archive can be modified

  • « PharData::extractTo
  • PharData::offsetSet »
  • PHP Manual
  • PharData
  • Returns true if the tar/zip archive can be modified

PharData::isWritable

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::isWritable — Returns true if the tar/zip archive can be modified

Описание

bool PharData::isWritable ( void )

This method returns TRUE if the tar/zip archive on disk is not read-only. Unlike Phar::isWritable(), data-only tar/zip archives can be modified even if phar.readonly is set to 1.

Список параметров

No parameters.

Возвращаемые значения

Returns TRUE if the tar/zip archive can be modified

Смотрите также

  • Phar::canWrite() - Returns whether phar extension supports writing and creating phars
  • Phar::isWritable() - Returns true if the phar archive can be modified


set the contents of a file within the tar/zip to those of an external file or string

  • « PharData::isWritable
  • PharData::offsetUnset »
  • PHP Manual
  • PharData
  • set the contents of a file within the tar/zip to those of an external file or string

PharData::offsetSet

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::offsetSet — set the contents of a file within the tar/zip to those of an external file or string

Описание

void PharData::offsetSet ( string $offset , string $value )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a tar/zip archive using array access brackets. offsetSet is used for modifying an existing file, or adding a new file to a tar/zip archive.

Список параметров

offset

The filename (relative path) to modify in a tar or zip archive.

value

Content of the file.

Возвращаемые значения

No return values.

Ошибки

Throws PharException if there are any problems flushing changes made to the tar/zip archive to disk.

Примеры

Пример #1 A PharData::offsetSet() example

offsetSet should not be accessed directly, but instead used via array access with the [] operator.

<?php
$p = new PharData('/path/to/my.tar');
try {
    // calls offsetSet
    $p['file.txt'] = 'Hi there';
} catch (Exception $e) {
    echo 'Could not modify file.txt:', $e;
}
?>

Смотрите также

  • Phar::offsetSet() - set the contents of an internal file to those of an external file


remove a file from a tar/zip archive

  • « PharData::offsetSet
  • PharData::setAlias »
  • PHP Manual
  • PharData
  • remove a file from a tar/zip archive

PharData::offsetUnset

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::offsetUnset — remove a file from a tar/zip archive

Описание

bool PharData::offsetUnset ( string $offset )

This is an implementation of the ArrayAccess interface allowing direct manipulation of the contents of a tar/zip archive using array access brackets. offsetUnset is used for deleting an existing file, and is called by the unset() language construct.

Список параметров

offset

The filename (relative path) to modify in the tar/zip archive.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws PharException if there are any problems flushing changes made to the tar/zip archive to disk.

Примеры

Пример #1 A PharData::offsetUnset() example

<?php
$p = new PharData('/path/to/my.zip');
try {
    // deletes file.txt from my.zip by calling offsetUnset
    unset($p['file.txt']);
} catch (Exception $e) {
    echo 'Could not delete file.txt: ', $e;
}
?>

Смотрите также

  • Phar::offsetUnset() - remove a file from a phar


dummy function (Phar::setAlias is not valid for PharData)

  • « PharData::offsetUnset
  • PharData::setDefaultStub »
  • PHP Manual
  • PharData
  • dummy function (Phar::setAlias is not valid for PharData)

PharData::setAlias

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setAlias — dummy function (Phar::setAlias is not valid for PharData)

Описание

bool PharData::setAlias ( string $alias )

Non-executable tar/zip archives cannot have an alias, so this method simply throws an exception.

Список параметров

alias

A shorthand string that this archive can be referred to in phar stream wrapper access. This parameter is ignored.

Возвращаемые значения

Ошибки

Throws PharException on all method calls

Смотрите также

  • Phar::setAlias() - Set the alias for the Phar archive


dummy function (Phar::setDefaultStub is not valid for PharData)

  • « PharData::setAlias
  • Phar::setMetadata »
  • PHP Manual
  • PharData
  • dummy function (Phar::setDefaultStub is not valid for PharData)

PharData::setDefaultStub

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setDefaultStub — dummy function (Phar::setDefaultStub is not valid for PharData)

Описание

bool PharData::setDefaultStub ([ string $index [, string $webindex ]] )

Non-executable tar/zip archives cannot have a stub, so this method simply throws an exception.

Список параметров

index

Relative path within the phar archive to run if accessed on the command-line

webindex

Relative path within the phar archive to run if accessed through a web browser

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws PharException on all method calls

Смотрите также

  • Phar::setDefaultStub() - Used to set the PHP loader or bootstrap stub of a Phar archive to the default loader


Sets phar archive meta-data

  • « PharData::setDefaultStub
  • Phar::setSignatureAlgorithm »
  • PHP Manual
  • PharData
  • Sets phar archive meta-data

Phar::setMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Phar::setMetadata — Sets phar archive meta-data

Описание

public void Phar::setMetadata ( mixed $metadata )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Phar::setMetadata() should be used to store customized data that describes something about the phar archive as a complete entity. PharFileInfo::setMetadata() should be used for file-specific meta-data. Meta-data can slow down the performance of loading a phar archive if the data is large.

Some possible uses for meta-data include specifying which file within the archive should be used to bootstrap the archive, or the location of a file manifest like » PEAR's package.xml file. However, any useful data that describes the phar archive may be stored.

Список параметров

metadata

Any PHP variable containing information to store that describes the phar archive

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 A Phar::setMetadata() example

<?php
// make sure it doesn't exist
@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 'Could not create and/or modify phar:', $e;
}
?>

Результат выполнения данного примера:

array(1) {
  ["bootstrap"]=>
  string(8) "file.php"
}

Смотрите также

  • Phar::getMetadata() - Returns phar archive meta-data
  • Phar::delMetadata() - Deletes the global metadata of the phar
  • Phar::hasMetadata() - Returns whether phar has global meta-data


set the signature algorithm for a phar and apply it.

  • « Phar::setMetadata
  • PharData::setStub »
  • PHP Manual
  • PharData
  • set the signature algorithm for a phar and apply it.

Phar::setSignatureAlgorithm

(PHP >= 5.3.0, PECL phar >= 1.1.0)

Phar::setSignatureAlgorithm — set the signature algorithm for a phar and apply it.

Описание

public void Phar::setSignatureAlgorithm ( int $sigtype )

Замечание:

Для корректной работы с объектами Phar этому методу необходима установка значения php.ini phar.readonly в 0. В противном случае, будет выброшено исключение PharException.

Set the signature algorithm for a phar and apply it. The signature algorithm must be one of Phar::MD5, Phar::SHA1, Phar::SHA256, Phar::SHA512, or Phar::PGP (pgp not yet supported and falls back to SHA-1).

Список параметров

sigtype

    One of Phar::MD5,
Phar::SHA1, Phar::SHA256,
Phar::SHA512, or Phar::PGP

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Throws UnexpectedValueException for many errors, BadMethodCallException if called for a zip- or a tar-based phar archive, and a PharException if any problems occur flushing changes to disk.

Смотрите также

  • Phar::getSupportedSignatures() - Return array of supported signature types
  • Phar::getSignature() - Return MD5/SHA1/SHA256/SHA512/OpenSSL signature of a Phar archive


dummy function (Phar::setStub is not valid for PharData)

  • « Phar::setSignatureAlgorithm
  • PharFileInfo »
  • PHP Manual
  • PharData
  • dummy function (Phar::setStub is not valid for PharData)

PharData::setStub

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharData::setStub — dummy function (Phar::setStub is not valid for PharData)

Описание

bool PharData::setStub ( string $stub [, int $len = -1 ] )

Non-executable tar/zip archives cannot have a stub, so this method simply throws an exception.

Список параметров

stub

A string or an open stream handle to use as the executable stub for this phar archive. This parameter is ignored.

len

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws PharException on all method calls

Список изменений

Версия | Описание
5.4.0 | Added len parameter.

Смотрите также

  • Phar::setStub() - Used to set the PHP loader or bootstrap stub of a Phar archive


The PharFileInfo class

(PHP >= 5.3.0, PECL phar >= 1.0.0)

Введение

The PharFileInfo class provides a high-level interface to the contents and attributes of a single file within a phar archive.

Обзор классов

PharFileInfo extends SplFileInfo {
/* Методы */
public void chmod ( int $permissions )
public bool compress ( int $compression )
public __construct ( string $entry )
public bool decompress ( void )
public bool delMetadata ( void )
public int getCRC32 ( void )
public int getCompressedSize ( void )
public mixed getMetadata ( void )
public int getPharFlags ( void )
public bool hasMetadata ( void )
public bool isCRCChecked ( void )
public bool isCompressed ([ int $compression_type = 9021976 ] )
public bool isCompressedBZIP2 ( void )
public bool isCompressedGZ ( void )
public bool setCompressedBZIP2 ( void )
public bool setCompressedGZ ( void )
public void setMetadata ( mixed $metadata )
public bool setUncompressed ( void )
}

Содержание

  • PharFileInfo::chmod — Sets file-specific permission bits
  • PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression
  • PharFileInfo::__construct — Construct a Phar entry object
  • PharFileInfo::decompress — Decompresses the current Phar entry within the phar
  • PharFileInfo::delMetadata — Deletes the metadata of the entry
  • PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified
  • PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::getMetadata — Returns file-specific meta-data saved with a file
  • PharFileInfo::getPharFlags — Returns the Phar file entry flags
  • PharFileInfo::hasMetadata — Returns the metadata of the entry
  • PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified
  • PharFileInfo::isCompressed — Returns whether the entry is compressed
  • PharFileInfo::isCompressedBZIP2 — Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressedGZ — Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2 — Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setCompressedGZ — Compresses the current Phar entry within the phar using gz compression
  • PharFileInfo::setMetadata — Sets file-specific meta-data saved with a file
  • PharFileInfo::setUncompressed — Uncompresses the current Phar entry within the phar, if it is compressed


Sets file-specific permission bits

  • « PharFileInfo
  • PharFileInfo::compress »
  • PHP Manual
  • PharFileInfo
  • Sets file-specific permission bits

PharFileInfo::chmod

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::chmod — Sets file-specific permission bits

Описание

public void PharFileInfo::chmod ( int $permissions )

PharFileInfo::chmod() allows setting of the executable file permissions bit, as well as read-only bits. Writeable bits are ignored, and set at runtime based on the phar.readonly INI variable. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Список параметров

permissions

permissions (see chmod())

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 A PharFileInfo::chmod() example

<?php
// make sure it doesn't exist
@unlink('brandnewphar.phar');
try {
    $p = new Phar('brandnewphar.phar', 0, 'brandnewphar.phar');
    $p['file.sh'] = '#!/usr/local/lib/php
    <?php echo "hi"; ?>';
    // set executable bit
    $p['file.sh']->chmod(0555);
    var_dump($p['file.sh']->isExecutable());
} catch (Exception $e) {
    echo 'Could not create/modify phar: ', $e;
}
?>

Результат выполнения данного примера:

bool(true)


Compresses the current Phar entry with either zlib or bzip2 compression

  • « PharFileInfo::chmod
  • PharFileInfo::__construct »
  • PHP Manual
  • PharFileInfo
  • Compresses the current Phar entry with either zlib or bzip2 compression

PharFileInfo::compress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharFileInfo::compress — Compresses the current Phar entry with either zlib or bzip2 compression

Описание

public bool PharFileInfo::compress ( int $compression )

This method compresses the file inside the Phar archive using either bzip2 compression or zlib compression. The bzip2 or zlib extension must be enabled to take advantage of this feature. In addition, if the file is already compressed, the respective extension must be enabled in order to decompress the file. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2/zlib extension is not available.

Примеры

Пример #1 A PharFileInfo::compress() example

<?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 'Create/modify operations on my.phar failed: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms


Construct a Phar entry object

  • « PharFileInfo::compress
  • PharFileInfo::decompress »
  • PHP Manual
  • PharFileInfo
  • Construct a Phar entry object

PharFileInfo::__construct

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::__construct — Construct a Phar entry object

Описание

public PharFileInfo::__construct ( string $entry )

This should not be called directly. Instead, a PharFileInfo object is initialized by calling Phar::offsetGet() through array access.

Список параметров

entry

The full url to retrieve a file. If you wish to retrieve the information for the file my/file.php from the phar boo.phar, the entry should be phar://boo.phar/my/file.php.

Ошибки

Throws BadMethodCallException if __construct() is called twice. Throws UnexpectedValueException if the phar URL requested is malformed, the requested phar cannot be opened, or the file can't be found within the phar.

Примеры

Пример #1 A PharFileInfo::__construct() example

<?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 number $line: $text";
    }
    // this also works
    $file = new PharFileInfo('phar:///path/to/my.phar/testfile.txt');
    foreach ($file as $line => $text) {
        echo "line number $line: $text";
    }
} catch (Exception $e) {
    echo 'Phar operations failed: ', $e;
}
?>

Результат выполнения данного примера:

line number 1: hi
line number 2: there
line number 3: dude
line number 1: hi
line number 2: there
line number 3: dude


Decompresses the current Phar entry within the phar

  • « PharFileInfo::__construct
  • PharFileInfo::delMetadata »
  • PHP Manual
  • PharFileInfo
  • Decompresses the current Phar entry within the phar

PharFileInfo::decompress

(PHP >= 5.3.0, PECL phar >= 2.0.0)

PharFileInfo::decompress — Decompresses the current Phar entry within the phar

Описание

public bool PharFileInfo::decompress ( void )

This method decompresses the file inside the Phar archive. Depending on how the file is compressed, the bzip2 or zlib extensions must be enabled to take advantage of this feature. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2/zlib extension is not available.

Примеры

Пример #1 A PharFileInfo::decompress() example

<?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 'Create/modify failed for my.phar: ', $e;
}
?>

Результат выполнения данного примера:

int(4096)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressFiles() - Compresses all files in the current Phar archive
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms


Deletes the metadata of the entry

  • « PharFileInfo::decompress
  • PharFileInfo::getCRC32 »
  • PHP Manual
  • PharFileInfo
  • Deletes the metadata of the entry

PharFileInfo::delMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

PharFileInfo::delMetadata — Deletes the metadata of the entry

Описание

public bool PharFileInfo::delMetadata ( void )

Deletes the metadata of the entry, if any.

Список параметров

No parameters.

Возвращаемые значения

Returns TRUE if successful, FALSE if the entry had no metadata. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Ошибки

Throws PharException if errors occurred while flushing changes to disk, and BadMethodCallException if write access is disabled.

Примеры

Пример #1 A PharFileInfo::delMetaData() example

<?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) {
    // handle errors
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)

Смотрите также

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


Returns CRC32 code or throws an exception if CRC has not been verified

  • « PharFileInfo::delMetadata
  • PharFileInfo::getCompressedSize »
  • PHP Manual
  • PharFileInfo
  • Returns CRC32 code or throws an exception if CRC has not been verified

PharFileInfo::getCRC32

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getCRC32 — Returns CRC32 code or throws an exception if CRC has not been verified

Описание

public int PharFileInfo::getCRC32 ( void )

This returns the crc32() checksum of the file within the Phar archive.

Возвращаемые значения

The crc32() checksum of the file within the Phar archive.

Ошибки

Throws BadMethodCallException if the file has not yet had its CRC32 verified. This should be impossible with normal use, as the CRC is verified upon opening the file for reading or writing.

Примеры

Пример #1 A PharFileInfo::getCRC32() example

<?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 'Write operations on my.phar.phar failed: ', $e;
}
?>

Результат выполнения данного примера:

3633523372


Returns the actual size of the file (with compression) inside the Phar archive

  • « PharFileInfo::getCRC32
  • PharFileInfo::getMetadata »
  • PHP Manual
  • PharFileInfo
  • Returns the actual size of the file (with compression) inside the Phar archive

PharFileInfo::getCompressedSize

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getCompressedSize — Returns the actual size of the file (with compression) inside the Phar archive

Описание

public int PharFileInfo::getCompressedSize ( void )

This returns the size of the file within the Phar archive. Uncompressed files will return the same value for getCompressedSize as they will with filesize()

Возвращаемые значения

The size in bytes of the file within the Phar archive on disk.

Примеры

Пример #1 A PharFileInfo::getCompressedSize() example

<?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 'Write operations failed on my.phar: ', $e;
}
?>

Результат выполнения данного примера:

2

Смотрите также

  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compressFiles() - Compresses all files in the current Phar archive


Returns file-specific meta-data saved with a file

  • « PharFileInfo::getCompressedSize
  • PharFileInfo::getPharFlags »
  • PHP Manual
  • PharFileInfo
  • Returns file-specific meta-data saved with a file

PharFileInfo::getMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getMetadata — Returns file-specific meta-data saved with a file

Описание

public mixed PharFileInfo::getMetadata ( void )

Return meta-data that was saved in the Phar archive's manifest for this file.

Список параметров

Возвращаемые значения

any PHP variable that can be serialized and is stored as meta-data for the file, or NULL if no meta-data is stored.

Примеры

Пример #1 A PharFileInfo::getMetadata() example

<?php
// make sure it doesn't exist
@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 'Could not create/modify brandnewphar.phar: ', $e;
}
?>

Результат выполнения данного примера:

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

Смотрите также

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


Returns the Phar file entry flags

  • « PharFileInfo::getMetadata
  • PharFileInfo::hasMetadata »
  • PHP Manual
  • PharFileInfo
  • Returns the Phar file entry flags

PharFileInfo::getPharFlags

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::getPharFlags — Returns the Phar file entry flags

Описание

public int PharFileInfo::getPharFlags ( void )

This returns the flags set in the manifest for a Phar. This will always return 0 in the current implementation.

Возвращаемые значения

The Phar flags (always 0 in the current implementation)

Примеры

Пример #1 A PharFileInfo::getPharFlags() example

<?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 'Could not create/modify my.phar: ', $e;
}
?>

Результат выполнения данного примера:

int(0)


Returns the metadata of the entry

  • « PharFileInfo::getPharFlags
  • PharFileInfo::isCRCChecked »
  • PHP Manual
  • PharFileInfo
  • Returns the metadata of the entry

PharFileInfo::hasMetadata

(PHP >= 5.3.0, PECL phar >= 1.2.0)

PharFileInfo::hasMetadata — Returns the metadata of the entry

Описание

public bool PharFileInfo::hasMetadata ( void )

Returns the metadata of a file within a phar archive.

Список параметров

No parameters.

Возвращаемые значения

Returns FALSE if no metadata is set or is NULL, TRUE if metadata is not NULL

Смотрите также

  • PharFileInfo::setMetadata() - Sets file-specific meta-data saved with a file
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


Returns whether file entry has had its CRC verified

  • « PharFileInfo::hasMetadata
  • PharFileInfo::isCompressed »
  • PHP Manual
  • PharFileInfo
  • Returns whether file entry has had its CRC verified

PharFileInfo::isCRCChecked

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCRCChecked — Returns whether file entry has had its CRC verified

Описание

public bool PharFileInfo::isCRCChecked ( void )

This returns whether a file within a Phar archive has had its CRC verified.

Возвращаемые значения

TRUE if the file has had its CRC verified, FALSE if not.

Примеры

Пример #1 A PharFileInfo::isCRCChecked() example

<?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 'Create/modify operations failed on my.phar: ', $e;
}
?>

Результат выполнения данного примера:

bool(true)


Returns whether the entry is compressed

  • « PharFileInfo::isCRCChecked
  • PharFileInfo::isCompressedBZIP2 »
  • PHP Manual
  • PharFileInfo
  • Returns whether the entry is compressed

PharFileInfo::isCompressed

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressed — Returns whether the entry is compressed

Описание

public bool PharFileInfo::isCompressed ([ int $compression_type = 9021976 ] )

This returns whether a file is compressed within a Phar archive with either Gzip or Bzip2 compression.

Список параметров

compression_type

One of Phar::GZ or Phar::BZ2, defaults to any compression.

Возвращаемые значения

TRUE if the file is compressed within the Phar archive, FALSE if not.

Примеры

Пример #1 A PharFileInfo::isCompressed() example

<?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 'Create/modify on phar my.phar failed: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::decompress() - Decompresses the current Phar entry within the phar
  • PharFileInfo::compress() - Compresses the current Phar entry with either zlib or bzip2 compression
  • Phar::decompress() - Decompresses the entire Phar archive
  • Phar::compress() - Compresses the entire Phar archive using Gzip or Bzip2 compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::decompressFiles() - Decompresses all files in the current Phar archive
  • Phar::compressFiles() - Compresses all files in the current Phar archive


Returns whether the entry is compressed using bzip2

  • « PharFileInfo::isCompressed
  • PharFileInfo::isCompressedGZ »
  • PHP Manual
  • PharFileInfo
  • Returns whether the entry is compressed using bzip2

PharFileInfo::isCompressedBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressedBZIP2 — Returns whether the entry is compressed using bzip2

Описание

public bool PharFileInfo::isCompressedBZIP2 ( void )

Замечание:

Этот метод был удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций PharFileInfo::isCompressed(), PharFileInfo::decompress(), и PharFileInfo::compress().

This returns whether a file is compressed within a Phar archive with Bzip2 compression.

Возвращаемые значения

TRUE if the file is compressed within the Phar archive using Bzip2, FALSE if not.

Примеры

Пример #1 A PharFileInfo::isCompressedBZIP2() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile3.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $p['myfile3.txt']->setCompressedBZIP2();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    $file3 = $p['myfile3.txt'];
    var_dump($file->isCompressedBZIP2());
    var_dump($file2->isCompressedBZIP2());
    var_dump($file3->isCompressedBZIP2());
} catch (Exception $e) {
    echo 'Create/modify on phar my.phar failed: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive


Returns whether the entry is compressed using gz

  • « PharFileInfo::isCompressedBZIP2
  • PharFileInfo::setCompressedBZIP2 »
  • PHP Manual
  • PharFileInfo
  • Returns whether the entry is compressed using gz

PharFileInfo::isCompressedGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::isCompressedGZ — Returns whether the entry is compressed using gz

Описание

public bool PharFileInfo::isCompressedGZ ( void )

Замечание:

Этот метод был удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций PharFileInfo::isCompressed(), PharFileInfo::decompress(), и PharFileInfo::compress().

This returns whether a file is compressed within a Phar archive with Gzip compression.

Возвращаемые значения

TRUE if the file is compressed within the Phar archive using Gzip, FALSE if not.

Примеры

Пример #1 A PharFileInfo::isCompressedGZ() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $p['myfile2.txt'] = 'hi';
    $p['myfile3.txt'] = 'hi';
    $p['myfile2.txt']->setCompressedGZ();
    $p['myfile3.txt']->setCompressedBZIP2();
    $file = $p['myfile.txt'];
    $file2 = $p['myfile2.txt'];
    $file3 = $p['myfile3.txt'];
    var_dump($file->isCompressedGZ());
    var_dump($file2->isCompressedGZ());
    var_dump($file3->isCompressedGZ());
} catch (Exception $e) {
    echo 'Create/modify on phar my.phar failed: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive


Compresses the current Phar entry within the phar using Bzip2 compression

  • « PharFileInfo::isCompressedGZ
  • PharFileInfo::setCompressedGZ »
  • PHP Manual
  • PharFileInfo
  • Compresses the current Phar entry within the phar using Bzip2 compression

PharFileInfo::setCompressedBZIP2

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setCompressedBZIP2 — Compresses the current Phar entry within the phar using Bzip2 compression

Описание

public bool PharFileInfo::setCompressedBZIP2 ( void )

Замечание:

Этот метод был удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций PharFileInfo::isCompressed(), PharFileInfo::decompress(), и PharFileInfo::compress().

This method compresses the file inside the Phar archive using bzip2 compression. The bzip2 extension must be enabled to take advantage of this feature. In addition, if the file is already compressed using gzip compression, the zlib extension must be enabled in order to decompress the file. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2 extension is not available.

Примеры

Пример #1 A PharFileInfo::setCompressedBZIP2() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressedBZIP2());
    $p['myfile.txt']->setCompressedBZIP2();
    var_dump($file->isCompressedBZIP2());
} catch (Exception $e) {
    echo 'Create/modify operations on my.phar failed: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive


Compresses the current Phar entry within the phar using gz compression

  • « PharFileInfo::setCompressedBZIP2
  • PharFileInfo::setMetadata »
  • PHP Manual
  • PharFileInfo
  • Compresses the current Phar entry within the phar using gz compression

PharFileInfo::setCompressedGZ

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setCompressedGZ — Compresses the current Phar entry within the phar using gz compression

Описание

public bool PharFileInfo::setCompressedGZ ( void )

Замечание:

Этот метод был удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций PharFileInfo::isCompressed(), PharFileInfo::decompress(), и PharFileInfo::compress().

This method compresses the file inside the Phar archive using gzip compression. The zlib extension must be enabled to take advantage of this feature. In addition, if the file is already compressed using bzip2 compression, the bzip2 extension must be enabled in order to decompress the file. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the zlib extension is not available.

Примеры

Пример #1 A PharFileInfo::setCompressedGZ() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    var_dump($file->isCompressedGZ());
    $p['myfile.txt']->setCompressedGZ();
    var_dump($file->isCompressedGZ());
} catch (Exception $e) {
    echo 'Create/modify operations on my.phar failed: ', $e;
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setUncompressed() - Uncompresses the current Phar entry within the phar, if it is compressed
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive


Sets file-specific meta-data saved with a file

  • « PharFileInfo::setCompressedGZ
  • PharFileInfo::setUncompressed »
  • PHP Manual
  • PharFileInfo
  • Sets file-specific meta-data saved with a file

PharFileInfo::setMetadata

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setMetadata — Sets file-specific meta-data saved with a file

Описание

public void PharFileInfo::setMetadata ( mixed $metadata )

PharFileInfo::setMetadata() should only be used to store customized data in a file that cannot be represented with existing information stored with a file. Meta-data can significantly slow down the performance of loading a phar archive if the data is large, or if there are many files containing meta-data. It is important to note that file permissions are natively supported inside a phar; it is possible to set them with the PharFileInfo::chmod() method. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed if the file is within a Phar archive. Files within PharData archives do not have this restriction.

Some possible uses for meta-data include passing a user/group that should be set when a file is extracted from the phar to disk. Other uses could include explicitly specifying a MIME type to return. However, any useful data that describes a file, but should not be contained inside of it may be stored.

Список параметров

metadata

Any PHP variable containing information to store alongside a file

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 A PharFileInfo::setMetadata() example

<?php
// make sure it doesn't exist
@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 'Could not create/modify phar: ', $e;
}
?>

Результат выполнения данного примера:

array(2) {
  ["user"]=>
  string(4) "bill"
  ["mime-type"]=>
  string(10) "text/plain"
}

Смотрите также

  • PharFileInfo::hasMetadata() - Returns the metadata of the entry
  • PharFileInfo::getMetadata() - Returns file-specific meta-data saved with a file
  • PharFileInfo::delMetadata() - Deletes the metadata of the entry
  • Phar::setMetadata() - Sets phar archive meta-data
  • Phar::hasMetadata() - Returns whether phar has global meta-data
  • Phar::getMetadata() - Returns phar archive meta-data


Uncompresses the current Phar entry within the phar, if it is compressed

  • « PharFileInfo::setMetadata
  • PharException »
  • PHP Manual
  • PharFileInfo
  • Uncompresses the current Phar entry within the phar, if it is compressed

PharFileInfo::setUncompressed

(PHP >= 5.3.0, PECL phar >= 1.0.0)

PharFileInfo::setUncompressed — Uncompresses the current Phar entry within the phar, if it is compressed

Описание

public bool PharFileInfo::setUncompressed ( void )

Замечание:

Этот метод был удален из расширения phar, начиная с версии 2.0.0. Альтернативные реализации возможны с помощью функций PharFileInfo::isCompressed(), PharFileInfo::decompress(), и PharFileInfo::compress().

This method decompresses the file inside the Phar archive. Depending on how the file is compressed, the bzip2 or zlib extensions must be enabled to take advantage of this feature. As with all functionality that modifies the contents of a phar, the phar.readonly INI variable must be off in order to succeed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws BadMethodCallException if the phar.readonly INI variable is on, or if the bzip2/zlib extension is not available.

Примеры

Пример #1 A PharFileInfo::setUncompressed() example

<?php
try {
    $p = new Phar('/path/to/my.phar', 0, 'my.phar');
    $p['myfile.txt'] = 'hi';
    $file = $p['myfile.txt'];
    $file->setCompressedGZ();
    var_dump($file->isCompressed());
    $p['myfile.txt']->setUncompressed();
    var_dump($file->isCompressed());
} catch (Exception $e) {
    echo 'Create/modify failed for my.phar: ', $e;
}
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • PharFileInfo::getCompressedSize() - Returns the actual size of the file (with compression) inside the Phar archive
  • PharFileInfo::isCompressedBZIP2() - Returns whether the entry is compressed using bzip2
  • PharFileInfo::isCompressed() - Returns whether the entry is compressed
  • PharFileInfo::isCompressedGZ() - Returns whether the entry is compressed using gz
  • PharFileInfo::setCompressedBZIP2() - Compresses the current Phar entry within the phar using Bzip2 compression
  • PharFileInfo::setCompressedGZ() - Compresses the current Phar entry within the phar using gz compression
  • Phar::canCompress() - Returns whether phar extension supports compression using either zlib or bzip2
  • Phar::isCompressed() - Returns Phar::GZ or PHAR::BZ2 if the entire phar archive is compressed (.tar.gz/tar.bz and so on)
  • Phar::compressAllFilesBZIP2() - Compresses all files in the current Phar archive using Bzip2 compression
  • Phar::compressAllFilesGZ() - Compresses all files in the current Phar archive using Gzip compression
  • Phar::getSupportedCompression() - Return array of supported compression algorithms
  • Phar::uncompressAllFiles() - Uncompresses all files in the current Phar archive


The PharException class

(Unknown)

Введение

The PharException class provides a phar-specific exception class for try/catch blocks.

Обзор классов

PharException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Содержание

  • PharException — The PharException class provides a phar-specific exception class for try/catch blocks.


The PharException class provides a phar-specific exception class for try/catch blocks.

  • « PharException
  • Rar »
  • PHP Manual
  • PharException
  • The PharException class provides a phar-specific exception class for try/catch blocks.

PharException

(Unknown)

PharException — The PharException class provides a phar-specific exception class for try/catch blocks.

Описание


Архивирование Rar

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Rar
    • rar_wrapper_cache_stats — Кэш доступов и отказов обертки URL
  • RarArchive — Класс RarArchive
    • RarArchive::close — Закрывает RAR архив и освобождает все ресурсы
    • RarArchive::getComment — Get comment text from the RAR archive
    • RarArchive::getEntries — Возвращает полный список элементов из RAR архива
    • RarArchive::getEntry — Возвращает объект элемента из RAR архива
    • RarArchive::isBroken — Test whether an archive is broken (incomplete)
    • RarArchive::isSolid — Check whether the RAR archive is solid
    • RarArchive::open — Открывает RAR архив
    • RarArchive::setAllowBroken — Whether opening broken archives is allowed
    • RarArchive::__toString — Get text representation
  • RarEntry — Класс RarEntry
    • RarEntry::extract — Извлекает элемент из архива
    • RarEntry::getAttr — Возвращает атрибуты элемента архива
    • RarEntry::getCrc — Возвращает CRC элемента архива
    • RarEntry::getFileTime — Возвращает последнее время изменения элемента
    • RarEntry::getHostOs — Возвращает оригинальную ОС элемента
    • RarEntry::getMethod — Возвращает метод компрессии элемента
    • RarEntry::getName — Возвращает имя элемента
    • RarEntry::getPackedSize — Возвращает размер сжатого элемента
    • RarEntry::getStream — Get file handler for entry
    • RarEntry::getUnpackedSize — Возвращает размер элемента в распакованном состоянии
    • RarEntry::getVersion — Возвращает минимальную версию программы RAR, необходимую для распаковки элемента
    • RarEntry::isDirectory — Test whether an entry represents a directory
    • RarEntry::isEncrypted — Test whether an entry is encrypted
    • RarEntry::__toString — Get text representation of entry
  • RarException — Класс RarException
    • RarException::isUsingExceptions — Check whether error handling with exceptions is in use
    • RarException::setUsingExceptions — Activate and deactivate error handling with exceptions


Введение

Rar - это мощный и эффективный архиватор, созданный Евгением Рошалем. Данное расширение позволяет читать Rar-архивы, однако не дает возможности их записывать, так как эта операция не поддерживается библиотекой UnRar и напрямую запрещена условиями ее лицензии.

Больше информации о Rar и UnRar можно найти здесь: » http://www.rarlabs.com/.


Установка

Расширение Rar в настоящее время доступно в PECL » http://pecl.php.net/package/rar.

Вы также можете воспользоваться установщиком PECL, чтобы установить расширение Rar. Для этого необходимо использовать команду: pecl -v install rar.

Также вы можете скачать архив tar.gz и установить Rar вручную:

Пример #1 Установка Rar

gunzip rar-xxx.tgz
tar -xvf rar-xxx.tar
cd rar-xxx
phpize
./configure && make && make install

Пользователям Windows необходимо включить php_rar.dll в php.ini. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Типы ресурсов

Это расширение использует три внутренних ресурса: Дескриптор файла, возвращаемый функцией rar_open() - RarArchive -, содержимое архива, возвращаемое функцией rar_list() и rar_entry_get() - RarEntry и тип исключений RarException.

Это расширение также регистрирует потоковый ресурс, называемый "rar", и обертку URL, называемую "rar wrapper", и соответствующий ей префикс "rar".


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

RAR_HOST_MSDOS (integer)
Используйте вместо нее константу RarEntry::HOST_MSDOS.
RAR_HOST_OS2 (integer)
Используйте вместо нее константу RarEntry::HOST_OS2.
RAR_HOST_WIN32 (integer)
Используйте вместо нее константу RarEntry::HOST_WIN32.
RAR_HOST_UNIX (integer)
Используйте вместо нее константу RarEntry::HOST_UNIX.
RAR_HOST_BEOS (integer)
Используйте вместо нее константу RarEntry::HOST_BEOS.


Примеры

Также смотрите примеры по ссылке rar:// wrapper.

Пример #1 Декомпрессия на лету

<?php

if (!array_key_exists("i", $_GET) || !is_numeric($_GET["i"]))
    die("Индекс не указан или не числовой");
$index = (int) $_GET["i"];

$arch = RarArchive::open("example.rar");
if ($arch === FALSE)
    die("Невозможно открыть example.rar");

$entries = $arch->getEntries();
if ($entries === FALSE)
    die("Невозможно получить записи");

if (!array_key_exists($index, $entries))
    die("Нет такого индекса: $index");

$orfilename = $entries[$index]->getName(); //Кодировка UTF-8

$filesize = $entries[$index]->getUnpackedSize();

/* Вы можете здесь проверить константу HTTP_IF_MODIFIED_SINCE и сравнить с
 * $entries[$index]->getFileTime(). Также возможно отослать заголовок
 * "Last modified" */

$fp = $entries[$index]->getStream();
if ($fp === FALSE)
    die("Невозможно открыть файл с индексом $index внутри архива.");

$arch->close(); // Больше не нужен. Поток является независимым

function detectUserAgent() {
    if (!array_key_exists('HTTP_USER_AGENT', $_SERVER))
        return "Other";

    $uas = $_SERVER['HTTP_USER_AGENT'];
    if (preg_match("@Opera/@", $uas))
        return "Opera";
    if (preg_match("@Firefox/@", $uas))
        return "Firefox";
    if (preg_match("@Chrome/@", $uas))
        return "Chrome";
    if (preg_match("@MSIE ([0-9.]+);@", $uas, $matches)) {
        if (((float)$matches[1]) >= 7.0)
            return "IE";
    }

    return "Other";
}

/*
 * Действуют 3 опции:
 * - Для FF и Opera, с поддержкой RFC 2231, используется этот формат.
 * - Для IE и Chrome, используется attwithfnrawpctenclong
 *   (http://greenbytes.de/tech/tc2231/#attwithfnrawpctenclong)
 * - Для других браузеров, перекодируется в ISO-8859-1, если возможно
 */
$formatRFC2231 = 'Content-Disposition: attachment; filename*=UTF-8\'\'%s';
$formatDef = 'Content-Disposition: attachment; filename="%s"';

switch (detectUserAgent()) {
    case "Opera":
    case "Firefox":
        $orfilename = rawurlencode($orfilename);
        $format = $formatRFC2231;
        break;

    case "IE":
    case "Chrome":
        $orfilename = rawurlencode($orfilename);
        $format = $formatDef;
        break;
    default:
        if (function_exists('iconv'))
            $orfilename =
                @iconv("UTF-8", "ISO-8859-1//TRANSLIT", $orfilename);
        $format = $formatDef;
}

header(sprintf($format, $orfilename));
//Невозможна дальнейшая отсылка сообщений об ошибках (заголовки уже отправлены)

//Замена на реальный content type, возможно определенный по расширению файла
$contentType = "application/octet-stream";
header("Content-Type: $contentType");

header("Content-Transfer-Encoding: binary");

header("Content-Length: $filesize");

if ($_SERVER['REQUEST_METHOD'] == "HEAD")
    die();

while (!feof($fp)) {
    $s = @fread($fp, 8192);
    if ($s === false)
        break; //тут бесполезно отправлять сообщения об ошибках

    echo $s;
}
?>

Этот пример открывает RAR-файл и предоставляет запрошенный файл вне RAR-архива для загрузки клиентом.

Пример #2 Пример извлечения перечня файлов и директорий из RAR-архива

<?php

$rar_file = rar_open('example.rar') or die("Невозможно открыть RAR архив");

$entries = rar_list($rar_file);

foreach ($entries as $entry) {
    echo 'Имя файла: ' . $entry->getName() . "\n";
    echo 'Упакованный размер: ' . $entry->getPackedSize() . "\n";
    echo 'Распакованный размер: ' . $entry->getUnpackedSize() . "\n";

    $entry->extract('/dir/extract/to/');
}

rar_close($rar_file);

?>

Этот пример открывает RAR-файл и извлекает каждый объект в указанную директорию.


Rar

Содержание

  • rar_wrapper_cache_stats — Кэш доступов и отказов обертки URL


Кэш доступов и отказов обертки URL

  • « Rar
  • RarArchive »
  • PHP Manual
  • Rar
  • Кэш доступов и отказов обертки URL

rar_wrapper_cache_stats

(PECL rar >= 3.0.0)

rar_wrapper_cache_stats — Кэш доступов и отказов обертки URL

Описание

string rar_wrapper_cache_stats ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс RarArchive

(PECL rar >= 2.0.0)

Введение

Этот класс описывает RAR архив, который может состоять из нескольких томов (частей) и содержать некоторое число RAR записей (файлы, директории и другие специальные объекты, такие как символические ссылки).

Объекты этого класса могут быть заполнены перебором исходя из записей, хранящихся в соответствующем RAR архиве. Эти записи могут быть также получены с помощью методов RarArchive::getEntry() и RarArchive::getEntries().

Обзор классов

final RarArchive implements Traversable {
/* Методы */
public bool close ( void )
public string getComment ( void )
public array getEntries ( void )
public RarEntry getEntry ( string $entryname )
public bool isBroken ( void )
public bool isSolid ( void )
public static RarArchive open ( string $filename [, string $password = NULL [, callable $volume_callback = NULL ]] )
public bool setAllowBroken ( bool $allow_broken )
public string __toString ( void )
}

Содержание

  • RarArchive::close — Закрывает RAR архив и освобождает все ресурсы
  • RarArchive::getComment — Get comment text from the RAR archive
  • RarArchive::getEntries — Возвращает полный список элементов из RAR архива
  • RarArchive::getEntry — Возвращает объект элемента из RAR архива
  • RarArchive::isBroken — Test whether an archive is broken (incomplete)
  • RarArchive::isSolid — Check whether the RAR archive is solid
  • RarArchive::open — Открывает RAR архив
  • RarArchive::setAllowBroken — Whether opening broken archives is allowed
  • RarArchive::__toString — Get text representation


Закрывает RAR архив и освобождает все ресурсы

  • « RarArchive
  • RarArchive::getComment »
  • PHP Manual
  • RarArchive
  • Закрывает RAR архив и освобождает все ресурсы

RarArchive::close

rar_close

(PECL rar >= 2.0.0)

RarArchive::close -- rar_close — Закрывает RAR архив и освобождает все ресурсы

Описание

Объектно-ориентированный стиль (method):

public bool RarArchive::close ( void )

Процедурный стиль:

bool rar_close ( RarArchive $rarfile )

Закрывает RAR архив и освобождает все ресурсы связанные с ним.

Список параметров

rarfile

Объект RarArchive открытый с помощью rar_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
2.0.0 | Элементы архива возвращаемые RarArchive::getEntry() и RarArchive::getEntries() теперь недействительны после вызова данного метода. Это означает, что нет гарантии правильной работы всех методов этих элементов.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$rar_arch = RarArchive::open('latest_winrar.rar');
echo $rar_arch."\n";
$rar_arch->close();
echo $rar_arch."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)

Пример #2 Процедурный стиль

<?php
$rar_arch = rar_open('latest_winrar.rar');
echo $rar_arch."\n";
rar_close($rar_arch);
echo $rar_arch."\n";
?>


Get comment text from the RAR archive

  • « RarArchive::close
  • RarArchive::getEntries »
  • PHP Manual
  • RarArchive
  • Get comment text from the RAR archive

RarArchive::getComment

rar_comment_get

(PECL rar >= 2.0.0)

RarArchive::getComment -- rar_comment_get — Get comment text from the RAR archive

Описание

Объектно-ориентированный стиль (method):

public string RarArchive::getComment ( void )

Процедурный стиль:

string rar_comment_get ( RarArchive $rarfile )

Get the (global) comment stored in the RAR archive. It may be up to 64 KiB long.

Замечание:

This extension does not support comments at the entry level.

Список параметров

rarfile

A RarArchive object, opened with rar_open().

Возвращаемые значения

Returns the comment or NULL if there is none.

Замечание:

RAR has currently no support for unicode comments. The encoding of the result of this function is not specified, but it will probably be Windows-1252.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$rar_arch = RarArchive::open('commented.rar');
echo $rar_arch->getComment();
?>

Результатом выполнения данного примера будет что-то подобное:

This is the comment of the file commented.rar.

Пример #2 Процедурный стиль

<?php
$rar_arch = rar_open('commented.rar');
echo rar_comment_get($rar_arch);
?>


Возвращает полный список элементов из RAR архива

  • « RarArchive::getComment
  • RarArchive::getEntry »
  • PHP Manual
  • RarArchive
  • Возвращает полный список элементов из RAR архива

RarArchive::getEntries

rar_list

(PECL rar >= 2.0.0)

RarArchive::getEntries -- rar_list — Возвращает полный список элементов из RAR архива

Описание

Объектно-ориентированный стиль (method):

public array RarArchive::getEntries ( void )

Процедурный стиль:

array rar_list ( RarArchive $rarfile )

Возвращает элементы (файлы и директории) из RAR архива.

Замечание:

Если архив имеет элементы с одинаковым именем, то этот метод совместно с циклом foreach по RarArchive и доступом к нему как к массиву с числовыми индексами являются единственными способами получить доступ к этим элементам (т.е. RarArchive::getEntry() и rar:// обработчик (wrapper) не помогут).

Список параметров

rarfile

Объект RarArchive открытый с помощью rar_open().

Возвращаемые значения

rar_list() возвращает массив объектов RarEntry или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
3.0.0 | Исправлена поддержка RAR архивов с повторяющимися именами элементов.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$rar_arch = RarArchive::open('solid.rar');
if ($rar_arch === FALSE)
    die("Не смог открыть RAR архив.");

$rar_entries = $rar_arch->getEntries();
if ($rar_entries === FALSE)
    die("Не смог достать содержимое.");

echo "Нашел " . count($rar_entries) . " объектов.\n";

foreach ($rar_entries as $e) {
    echo $e;
    echo "\n";
}
$rar_arch->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Нашел 2 объектов.
RarEntry for file "tese.txt" (23b93a7a)
RarEntry for file "unrardll.txt" (2ed64b6e)

Пример #2 Процедурный стиль

<?php
$rar_arch = rar_open('solid.rar');
if ($rar_arch === FALSE)
    die("Could not open RAR archive.");

$rar_entries = rar_list($rar_arch);
if ($rar_entries === FALSE)
    die("Could retrieve entries.");

echo "Found " . count($rar_entries) . " entries.\n";

foreach ($rar_entries as $e) {
    echo $e;
    echo "\n";
}
rar_close($rar_arch);
?>

Смотрите также

  • RarArchive::getEntry() - Возвращает объект элемента из RAR архива
  • rar:// обработчик(wrapper)


Возвращает объект элемента из RAR архива

  • « RarArchive::getEntries
  • RarArchive::isBroken »
  • PHP Manual
  • RarArchive
  • Возвращает объект элемента из RAR архива

RarArchive::getEntry

rar_entry_get

(PECL rar >= 2.0.0)

RarArchive::getEntry -- rar_entry_get — Возвращает объект элемента из RAR архива

Описание

Объектно-ориентированный стиль (method):

public RarEntry RarArchive::getEntry ( string $entryname )

Процедурный стиль:

RarEntry rar_entry_get ( RarArchive $rarfile , string $entryname )

Возвращает объект элемента (файл или директорию) из 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)


Test whether an archive is broken (incomplete)

  • « RarArchive::getEntry
  • RarArchive::isSolid »
  • PHP Manual
  • RarArchive
  • Test whether an archive is broken (incomplete)

RarArchive::isBroken

rar_broken_is

(PECL rar >= 3.0.0)

RarArchive::isBroken -- rar_broken_is — Test whether an archive is broken (incomplete)

Описание

Объектно-ориентированный стиль (method):

public bool RarArchive::isBroken ( void )

Процедурный стиль:

bool rar_broken_is ( RarArchive $rarfile )

This function determines whether an archive is incomplete, i.e., if a volume is missing or a volume is truncated.

Список параметров

rarfile

A RarArchive object, opened with rar_open().

Возвращаемые значения

Returns TRUE if the archive is broken, FALSE otherwise. This function may also return FALSE if the passed file has already been closed. The only way to tell the two cases apart is to enable exceptions with RarException::setUsingExceptions(); however, this should be unnecessary as a program should not operate on closed files.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument is used to omit notice */
$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";
/* Third argument is used to omit notice */
$arch = rar_open($file, null, 'retnull');
var_dump(rar_broken_is($arch));
?>

Смотрите также

  • RarArchive::setAllowBroken() - Whether opening broken archives is allowed


Check whether the RAR archive is solid

  • « RarArchive::isBroken
  • RarArchive::open »
  • PHP Manual
  • RarArchive
  • Check whether the RAR archive is solid

RarArchive::isSolid

rar_solid_is

(PECL rar >= 2.0.0)

RarArchive::isSolid -- rar_solid_is — Check whether the RAR archive is solid

Описание

Объектно-ориентированный стиль (method):

public bool RarArchive::isSolid ( void )

Процедурный стиль:

bool rar_solid_is ( RarArchive $rarfile )

Check whether the RAR archive is solid. Individual file extraction is slower on solid archives.

Список параметров

rarfile

A RarArchive object, opened with rar_open().

Возвращаемые значения

Returns TRUE if the archive is solid, FALSE otherwise.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$arch1 = RarArchive::open("store_method.rar");
$arch2 = RarArchive::open("solid.rar");
echo "$arch1: " . ($arch1->isSolid()?'yes':'no') ."\n";
echo "$arch2: " . ($arch2->isSolid()?'yes':'no') . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

RAR Archive "C:\php_rar\trunk\tests\store_method.rar": no
RAR Archive "C:\php_rar\trunk\tests\solid.rar": yes

Пример #2 Процедурный стиль

<?php
$arch1 = rar_open("store_method.rar");
$arch2 = rar_open("solid.rar");
echo "$arch1: " . (rar_solid_is($arch1)?'yes':'no') ."\n";
echo "$arch2: " . (rar_solid_is($arch2)?'yes':'no') . "\n";
?>


Открывает RAR архив

  • « RarArchive::isSolid
  • RarArchive::setAllowBroken »
  • PHP Manual
  • RarArchive
  • Открывает RAR архив

RarArchive::open

rar_open

(PECL rar >= 2.0.0)

RarArchive::open -- rar_open — Открывает RAR архив

Описание

Объектно-ориентированный стиль (method):

public static RarArchive RarArchive::open ( string $filename [, string $password = NULL [, callable $volume_callback = NULL ]] )

Процедурный стиль:

RarArchive rar_open ( string $filename [, string $password = NULL [, callable $volume_callback = NULL ]] )

Открывает указанный RAR архив и возвращает объект RarArchive, представляющий его.

Замечание:

При открытии многотомного архива путь к первому тому должен быть передан первым параметром. Иначе не будут видны все файлы.

Список параметров

filename

Путь к Rar архиву.

password

Пароль, если необходимо расшифровать заголовки архива. Этот же пароль будет использоваться по умолчанию, если будут найдены зашифрованные файлы. Учтите, что файлы могут быть зашифрованы с разными паролями.

volume_callback

Функция, которой передается единственный параметр - путь к тому, который не был найден, и возвращающая строку с правильным путем для этого тома или NULL, если данный том не существует или неизвестен. Разработчик должен быть уверен, что данная функция не приведет к зацикливанию, так как она вызывается повторно, если путь полученный предыдущим вызовом не соответствует нужному тому. Указание этого параметра устраняет предупреждения, которые появлялись бы, если бы том не был бы найден. В случае, если функция возвращает только NULL, то не будет ни одного предупреждения.

Внимание

До версии 2.0.0 эта функция не обрабатывала правильно относительные пути. В таких случаях используйте realpath().

Возвращаемые значения

Возвращает запрашиваемый объект RarArchive или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
3.0.0 | Был добавлен volume_callback.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$rar_arch = RarArchive::open('encrypted_headers.rar', 'samplepassword');
if ($rar_arch === FALSE)
    die("Failed opening file");

$entries = $rar_arch->getEntries();
if ($entries === FALSE)
    die("Failed fetching entries");

echo "Found " . count($entries) . " files.\n";

if (empty($entries))
    die("No valid entries found.");

$stream = reset($entries)->getStream();
if ($stream === FALSE)
    die("Failed opening first file");

$rar_arch->close();

echo "Content of first one follows:\n";
echo stream_get_contents($stream);

fclose($stream);
?>

Результатом выполнения данного примера будет что-то подобное:

Found 2 files.
Content of first one follows:
Encrypted file 1 contents.

Пример #2 Процедурный стиль

<?php
$rar_arch = rar_open('encrypted_headers.rar', 'samplepassword');
if ($rar_arch === FALSE)
    die("Failed opening file");

$entries = rar_list($rar_arch);
if ($entries === FALSE)
    die("Failed fetching entries");

echo "Found " . count($entries) . " files.\n";

if (empty($entries))
    die("No valid entries found.");

$stream = reset($entries)->getStream();
if ($stream === FALSE)
    die("Failed opening first file");

rar_close($rar_arch);

echo "Content of first one follows:\n";
echo stream_get_contents($stream);

fclose($stream);
?>

Пример #3 Volume 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


Whether opening broken archives is allowed

  • « RarArchive::open
  • RarArchive::__toString »
  • PHP Manual
  • RarArchive
  • Whether opening broken archives is allowed

RarArchive::setAllowBroken

(PECL rar >= 3.0.0)

RarArchive::setAllowBroken — Whether opening broken archives is allowed

Описание

Объектно-ориентированный стиль (method):

public bool RarArchive::setAllowBroken ( bool $allow_broken )

Процедурный стиль:

bool rar_allow_broken_set ( RarArchive $rarfile , bool $allow_broken )

This method defines whether broken archives can be read or all the operations that attempt to extract the archive entries will fail. Broken archives are archives for which no error is detected when the file is opened but an error occurs when reading the entries.

Список параметров

rarfile

A RarArchive object, opened with rar_open().

allow_broken

Whether to allow reading broken files (TRUE) or not (FALSE).

Возвращаемые значения

Returns TRUE или FALSE в случае возникновения ошибки. It will only fail if the file has already been closed.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
function retnull() { return null; }
$file = dirname(__FILE__) . "/multi_broken.part1.rar";
/* Third argument omits "volume not found" message */
$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";
/* Third argument omits "volume not found" message */
$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() - Test whether an archive is broken (incomplete)


Get text representation

  • « RarArchive::setAllowBroken
  • RarEntry »
  • PHP Manual
  • RarArchive
  • Get text representation

RarArchive::__toString

(PECL rar >= 2.0.0)

RarArchive::__toString — Get text representation

Описание

public string RarArchive::__toString ( void )

Provides a string representation for this RarArchive object. It currently shows the full path name of the archive volume that was opened and whether the resource is valid or was already closed through a call to RarArchive::close().

This method may be used only for debugging purposes, as there are no guarantees as to which information the result contains or how it is formatted.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A textual representation of this RarArchive object. The content of this representation is unspecified.

Примеры

Пример #1 RarArchive::__toString() example

<?php
$rar_arch = RarArchive::open('latest_winrar.rar');
echo $rar_arch."\n";
$rar_arch->close();
echo $rar_arch."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar"
RAR Archive "D:\php_rar\trunk\tests\latest_winrar.rar" (closed)


Класс RarEntry

(PECL rar >= 0.1)

Введение

Запись RAR, представляющая директорию или сжатый файл внутри архива RAR.

Обзор классов

final RarEntry {
/* Константы */
const integer HOST_MSDOS = 0 ;
const integer HOST_OS2 = 1 ;
const integer HOST_WIN32 = 2 ;
const integer HOST_UNIX = 3 ;
const integer HOST_MACOS = 4 ;
const integer HOST_BEOS = 5 ;
const integer ATTRIBUTE_WIN_READONLY = 1 ;
const integer ATTRIBUTE_WIN_HIDDEN = 2 ;
const integer ATTRIBUTE_WIN_SYSTEM = 4 ;
const integer ATTRIBUTE_WIN_DIRECTORY = 16 ;
const integer ATTRIBUTE_WIN_ARCHIVE = 32 ;
const integer ATTRIBUTE_WIN_DEVICE = 64 ;
const integer ATTRIBUTE_WIN_NORMAL = 128 ;
const integer ATTRIBUTE_WIN_TEMPORARY = 256 ;
const integer ATTRIBUTE_WIN_SPARSE_FILE = 512 ;
const integer ATTRIBUTE_WIN_REPARSE_POINT = 1024 ;
const integer ATTRIBUTE_WIN_COMPRESSED = 2048 ;
const integer ATTRIBUTE_WIN_OFFLINE = 4096 ;
const integer ATTRIBUTE_WIN_NOT_CONTENT_INDEXED = 8192 ;
const integer ATTRIBUTE_WIN_ENCRYPTED = 16384 ;
const integer ATTRIBUTE_WIN_VIRTUAL = 65536 ;
const integer ATTRIBUTE_UNIX_WORLD_EXECUTE = 1 ;
const integer ATTRIBUTE_UNIX_WORLD_WRITE = 2 ;
const integer ATTRIBUTE_UNIX_WORLD_READ = 4 ;
const integer ATTRIBUTE_UNIX_GROUP_EXECUTE = 8 ;
const integer ATTRIBUTE_UNIX_GROUP_WRITE = 16 ;
const integer ATTRIBUTE_UNIX_GROUP_READ = 32 ;
const integer ATTRIBUTE_UNIX_OWNER_EXECUTE = 64 ;
const integer ATTRIBUTE_UNIX_OWNER_WRITE = 128 ;
const integer ATTRIBUTE_UNIX_OWNER_READ = 256 ;
const integer ATTRIBUTE_UNIX_STICKY = 512 ;
const integer ATTRIBUTE_UNIX_SETGID = 1024 ;
const integer ATTRIBUTE_UNIX_SETUID = 2048 ;
const integer ATTRIBUTE_UNIX_FINAL_QUARTET = 61440 ;
const integer ATTRIBUTE_UNIX_FIFO = 4096 ;
const integer ATTRIBUTE_UNIX_CHAR_DEV = 8192 ;
const integer ATTRIBUTE_UNIX_DIRECTORY = 16384 ;
const integer ATTRIBUTE_UNIX_BLOCK_DEV = 24576 ;
const integer ATTRIBUTE_UNIX_REGULAR_FILE = 32768 ;
const integer ATTRIBUTE_UNIX_SYM_LINK = 40960 ;
const integer ATTRIBUTE_UNIX_SOCKET = 49152 ;
/* Методы */
public bool extract ( string $dir [, string $filepath = "" [, string $password = NULL [, bool $extended_data = false ]]] )
public int getAttr ( void )
public string getCrc ( void )
public string getFileTime ( void )
public int getHostOs ( void )
public int getMethod ( void )
public string getName ( void )
public int getPackedSize ( void )
public resource getStream ([ string $password ] )
public int getUnpackedSize ( void )
public int getVersion ( void )
public bool isDirectory ( void )
public bool isEncrypted ( void )
public string __toString ( void )
}

Предопределенные константы

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. Введена для заменыe RAR_HOST_UNIX.

RarEntry::HOST_MACOS

Если возвращенное значение RarEntry::getHostOs() равно этой константе, значит эта запись была добавлена в Mac OS.

RarEntry::HOST_BEOS

Если возвращенное значение RarEntry::getHostOs() равно этой константе, значит эта запись была добавлена в BeOS. Введена для заменыe 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 — Get file handler for entry
  • RarEntry::getUnpackedSize — Возвращает размер элемента в распакованном состоянии
  • RarEntry::getVersion — Возвращает минимальную версию программы RAR, необходимую для распаковки элемента
  • RarEntry::isDirectory — Test whether an entry represents a directory
  • RarEntry::isEncrypted — Test whether an entry is encrypted
  • RarEntry::__toString — Get text representation of entry


Извлекает элемент из архива

  • « RarEntry
  • RarEntry::getAttr »
  • PHP Manual
  • RarEntry
  • Извлекает элемент из архива

RarEntry::extract

(PECL rar >= 0.1)

RarEntry::extract — Извлекает элемент из архива

Описание

public bool RarEntry::extract ( string $dir [, string $filepath = "" [, string $password = NULL [, bool $extended_data = false ]]] )

RarEntry::extract() извлекает содержимое элемента. При этом создается новый файл в указанной директории dir с именем совпадающим с именем элемента, если только не зада второй аргумент. Смотрите подробнее ниже.

Список параметров

dir

Путь к директории, куда необходимо извлечь файлы. Этот параметр учитывается только если не указан параметр filepath. Если оба параметра не указаны, то файлы извлекаются в текущую директорию.

filepath

Путь (полный или относительный) содержит директорию и имя файла извлекаемого файла. Этот параметр переопределяет и параметр dir и оригинальное имя файла.

password

Пароль используется для расшифровки текущего элемента. Если элемент не зашифрован, то этот параметр не будет использован и его можно не указывать. Если же этот параметр не указан, а элемент зашифрован, то будет использован пароль, переданный функции rar_open(), если ее вызывали. Если передан неверный пароль, явно или неявно через rar_open(), то проверка CRC будет неудачной и будет возвращен FALSE. Вы можете проверить является ли элемент зашифрованным с помощью RarEntry::isEncrypted().

extended_data

Если TRUE, то в извлекаемый файл будет добавлена дополнительная информация, такая как NTFS ACL и владелец в системе Unix, если они присутствовали в архиве.

Внимание

До версии 2.0.0, не обрабатывала относительные пути корректно. Используйте для этой ситуации realpath().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
3.0.0 | Был добавлен параметр extended_data.
3.0.0 | Исправлена поддержка RAR архивов с повторяющимися именами элементов.

Примеры

Пример #1 Пример с RarEntry::extract()

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

$entry->extract('/dir/to'); // create /dir/to/Dir/file.txt
$entry->extract(false, '/dir/to/new_name.txt'); // create /dir/to/new_name.txt

?>

Пример #2 Как извлечь все файлы из архива:

<?php

/* example by 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("."); // extract to the current dir
}
rar_close($rar_file);

?>

Смотрите также

  • RarEntry::getStream() - Get file handler for entry
  • rar:// wrapper


Возвращает атрибуты элемента архива

  • « RarEntry::extract
  • RarEntry::getCrc »
  • PHP Manual
  • RarEntry
  • Возвращает атрибуты элемента архива

RarEntry::getAttr

(PECL rar >= 0.1)

RarEntry::getAttr — Возвращает атрибуты элемента архива

Описание

public int RarEntry::getAttr ( void )

Возвращает атрибуты элемента архива, зависящие от операционной системы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает атрибуты или FALSE в случае ошибки.

Примеры

Пример #1 Пример с RarEntry::getAttr()

<?php

$rar_file = rar_open('example.rar') or die("Can't open Rar archive");

$entry = rar_entry_get($rar_file, 'dir/in/the/archive') or die("Can't find such entry");

$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 string RarEntry::getCrc ( void )

Возвращает шестнадцатеричное строковое представление CRC элемента архива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает CRC элемента архива или FALSE в случае ошибки.

Список изменений

Версия | Описание
2.0.0 | Теперь этот метод возвращает корректные значения для многотомных архивов.


Возвращает последнее время изменения элемента

  • « RarEntry::getCrc
  • RarEntry::getHostOs »
  • PHP Manual
  • RarEntry
  • Возвращает последнее время изменения элемента

RarEntry::getFileTime

(PECL rar >= 0.1)

RarEntry::getFileTime — Возвращает последнее время изменения элемента

Описание

public string RarEntry::getFileTime ( void )

Возвращает последнее время изменения элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает последнее время изменения элемента в виде строки в формате YYYY-MM-DD HH:II:SS, или FALSE в случае ошибки.


Возвращает оригинальную ОС элемента

  • « RarEntry::getFileTime
  • RarEntry::getMethod »
  • PHP Manual
  • RarEntry
  • Возвращает оригинальную ОС элемента

RarEntry::getHostOs

(PECL rar >= 0.1)

RarEntry::getHostOs — Возвращает оригинальную ОС элемента

Описание

public int RarEntry::getHostOs ( void )

Возвращает код оригинальной операционной системы, в которой был создан элемент архива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает код ОС, или FALSE в случае ошибки.

Примеры

Пример #1 Пример с RarEntry::getHostOs()(версии >= 2.0.0)

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

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("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

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 int RarEntry::getMethod ( void )

RarEntry::getMethod() возвращает число соответствующее методу компрессии, использовавшемуся при создании текущего элемента архива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер метода или FALSE в случае ошибки.

Примеры

Пример #1 Пример с RarEntry::getMethod()

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Method number: " . $entry->getMethod();

?>


Возвращает имя элемента

  • « RarEntry::getMethod
  • RarEntry::getPackedSize »
  • PHP Manual
  • RarEntry
  • Возвращает имя элемента

RarEntry::getName

(PECL rar >= 0.1)

RarEntry::getName — Возвращает имя элемента

Описание

public string RarEntry::getName ( void )

Возвращает имя элемента массива (вместе с путем).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя элемента в виде строки, или FALSE в случае ошибки.

Список изменений

Версия | Описание
2.0.0 | Начиная с версии 2.0.0 возвращается строка в кодировке Unicode/UTF-8.

Примеры

Пример #1 Пример с RarEntry::getName()

<?php

// этот пример работает, даже если страница не в кодировке UTF-8
// для перекодирования в UTF-8 вызывается mb_convert_encoding

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Entry name: " . 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 int RarEntry::getPackedSize ( void )

Возвращает размер сжатого элемента архива.

Замечание:

Учтите, что на платформах с 32-х битными целыми long (включая Windows x64), максимальный возвращаемый размер ограничен 2 ГБ. Проверьте константу PHP_INT_MAX.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер сжатого элемента, или FALSE в случае ошибки.

Список изменений

Версия | Описание
2.0.0 | Данный метод теперь возвращает правильные значения для сжатых данных больших 2 ГБ на платформах с 64х битными целыми (integer) и никогда не возвращает отрицательные значения на всех платформах.

Примеры

Пример #1 Пример с RarEntry::getPackedSize()

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Packed size of " . $entry->getName() . " = " . $entry->getPackedSize() . " bytes";

?>


Get file handler for entry

  • « RarEntry::getPackedSize
  • RarEntry::getUnpackedSize »
  • PHP Manual
  • RarEntry
  • Get file handler for entry

RarEntry::getStream

(PECL rar >= 2.0.0)

RarEntry::getStream — Get file handler for entry

Описание

public resource RarEntry::getStream ([ string $password ] )

Returns a file handler that supports read operations. This handler provides on-the-fly decompression for this entry.

The handler is not invalidated by calling rar_close().

Внимание

The resulting stream has no integrity verification. In particular, file corruption and decryption with a wrong a key will not be detected. It is the programmer's responsability to use the entry's CRC to check for integrity, if he so wishes.

Список параметров

password

The password used to encrypt this entry. If the entry is not encrypted, this value will not be used and can be omitted. If this parameter is omitted and the entry is encrypted, the password given to rar_open(), if any, will be used. If a wrong password is given, either explicitly or implicitly via rar_open(), this method's resulting stream will produce wrong output. If no password is given and one is required, this method will fail and return FALSE. You can check whether an entry is encrypted with RarEntry::isEncrypted().

Возвращаемые значения

The file handler или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
3.0.0 | Support for RAR archives with repeated entry names is no longer defective.

Примеры

Пример #1 RarEntry::getStream() example

<?php

$rar_file = rar_open('example.rar');
if ($rar_file === false)
    die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt');
if ($entry === false)
    die("Failed to find such entry");

$stream = $entry->getStream();
if ($stream === false)
    die("Failed to obtain stream.");

rar_close($rar_file); //stream is independent from file

while (!feof($stream)) {
    $buff = fread($stream, 8192);
    if ($buff !== false)
        echo $buff;
    else
        break; //fread error
}

fclose($stream);

?>

Смотрите также

  • RarEntry::extract() - Извлекает элемент из архива
  • rar:// wrapper


Возвращает размер элемента в распакованном состоянии

  • « RarEntry::getStream
  • RarEntry::getVersion »
  • PHP Manual
  • RarEntry
  • Возвращает размер элемента в распакованном состоянии

RarEntry::getUnpackedSize

(PECL rar >= 0.1)

RarEntry::getUnpackedSize — Возвращает размер элемента в распакованном состоянии

Описание

public int RarEntry::getUnpackedSize ( void )

Возвращает размер элемента архива в распакованном состоянии.

Замечание:

Учтите, что на платформах с 32-х битными целыми long (включая Windows x64), максимальный возвращаемый размер ограничен 2 ГБ. Проверьте константу PHP_INT_MAX.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер распакованного элемента, или FALSE в случае ошибки.

Список изменений

Версия | Описание
2.0.0 | Данный метод теперь возвращает правильные значения для сжатых данных больших 2 ГБ на платформах с 64х битными целыми (integer) и никогда не возвращает отрицательные значения на всех платформах.

Возвращаемые значения

Пример #1 Пример с RarEntry::getUnpackedSize()

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Unpacked size of " . $entry->getName() . " = " . $entry->getPackedSize() . " bytes";

?>


Возвращает минимальную версию программы RAR, необходимую для распаковки элемента

  • « RarEntry::getUnpackedSize
  • RarEntry::isDirectory »
  • PHP Manual
  • RarEntry
  • Возвращает минимальную версию программы RAR, необходимую для распаковки элемента

RarEntry::getVersion

(PECL rar >= 0.1)

RarEntry::getVersion — Возвращает минимальную версию программы RAR, необходимую для распаковки элемента

Описание

public int RarEntry::getVersion ( void )

Возвращает минимальную версию программы RAR (т.е. WinRAR), необходимую для распаковки элемента архива. Она закодирована в виде: 10 * основная версия + минорная версия.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает версию или FALSE в случае ошибки.

Примеры

Пример #1 Пример с RarEntry::getVersion()

<?php

$rar_file = rar_open('example.rar') or die("Failed to open Rar archive");

$entry = rar_entry_get($rar_file, 'Dir/file.txt') or die("Failed to find such entry");

echo "Rar version required for unpacking: " . $entry->getVersion();

?>


Test whether an entry represents a directory

  • « RarEntry::getVersion
  • RarEntry::isEncrypted »
  • PHP Manual
  • RarEntry
  • Test whether an entry represents a directory

RarEntry::isDirectory

(PECL rar >= 2.0.0)

RarEntry::isDirectory — Test whether an entry represents a directory

Описание

public bool RarEntry::isDirectory ( void )

Tests whether the current entry is a directory.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if this entry is a directory and FALSE otherwise.

Примечания

This function is only available starting with version 2.0.0, but one can also test whether an entry is a directory by checking the entry attributes, like this (only works for files compressed in RAR for Windows or Unix):

<?php
//...
//Open file, get entry and store in variable $e...
//...

$isDirectory = (bool) ((($e->getHostOs() == RAR_HOST_WIN32) && ($e->getAttr() & 0x10)) ||
    (($e->getHostOs() == RAR_HOST_UNIX) && (($e->getAttr() & 0xf000) == 0x4000)));
?>


Test whether an entry is encrypted

  • « RarEntry::isDirectory
  • RarEntry::__toString »
  • PHP Manual
  • RarEntry
  • Test whether an entry is encrypted

RarEntry::isEncrypted

(PECL rar >= 2.0.0)

RarEntry::isEncrypted — Test whether an entry is encrypted

Описание

public bool RarEntry::isEncrypted ( void )

Tests whether the current entry contents are encrypted.

Замечание:

The password used may differ between files inside the same RAR archive.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the current entry is encrypted and FALSE otherwise.


Get text representation of entry

  • « RarEntry::isEncrypted
  • RarException »
  • PHP Manual
  • RarEntry
  • Get text representation of entry

RarEntry::__toString

(PECL rar >= 2.0.0)

RarEntry::__toString — Get text representation of entry

Описание

public string RarEntry::__toString ( void )

RarEntry::__toString() returns a textual representation for this entry. It includes whether the entry is a file or a directory (symbolic links and other special objects will be treated as files), the UTF-8 name of the entry and its CRC. The form and content of this representation may be changed in the future, so they cannot be relied upon.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A textual representation for the entry.


Класс RarException

(PECL rar >= 2.0.0)

Введение

Класс служит двум целям: это тип исключений, передаваемых функциями и методами расширения RAR, позволяющий с помощью стандартных методов производить запрос и определять ошибку работы расширения независимо от того, передаются ли исключения или лишь выдаются предупреждения.

Используются следующие коды ошибок:

  • -1 - ошибка вне библиотеки UnRAR
  • 11 - недостаточно памяти
  • 12 - неправильные данные
  • 13 - неправильный архив
  • 14 - неизвестный формат
  • 15 - ошибка открытия файла
  • 16 - ошибка создания файла
  • 17 - ошибка закрытия файла
  • 18 - ошибка чтения
  • 19 - ошибка записи
  • 20 - слишком маленький буфер
  • 21 - неизвестная ошибка RAR
  • 22 - требуется пароль

Обзор классов

final RarException extends Exception {
/* Методы */
public static bool isUsingExceptions ( void )
public static void setUsingExceptions ( bool $using_exceptions )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Содержание

  • RarException::isUsingExceptions — Check whether error handling with exceptions is in use
  • RarException::setUsingExceptions — Activate and deactivate error handling with exceptions


Check whether error handling with exceptions is in use

  • « RarException
  • RarException::setUsingExceptions »
  • PHP Manual
  • RarException
  • Check whether error handling with exceptions is in use

RarException::isUsingExceptions

(PECL rar >= 2.0.0)

RarException::isUsingExceptions — Check whether error handling with exceptions is in use

Описание

public static bool RarException::isUsingExceptions ( void )

Checks whether the RAR functions will emit warnings and return error values or whether they will throw exceptions in most of the circumstances (does not include some programmatic errors such as passing the wrong type of arguments).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if exceptions are being used, FALSE otherwise.

Примеры

Пример #1 RarException::isUsingExceptions() example

<?php
//The default is not to use exceptions
var_dump(RarException::isUsingExceptions());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)

Смотрите также

  • RarException::setUsingExceptions() - Activate and deactivate error handling with exceptions


Activate and deactivate error handling with exceptions

  • « RarException::isUsingExceptions
  • Zip »
  • PHP Manual
  • RarException
  • Activate and deactivate error handling with exceptions

RarException::setUsingExceptions

(PECL rar >= 2.0.0)

RarException::setUsingExceptions — Activate and deactivate error handling with exceptions

Описание

public static void RarException::setUsingExceptions ( bool $using_exceptions )

If and only if the argument is TRUE, then, instead of emitting warnings and returning a special value indicating error when the UnRAR library encounters an error, an exception of type RarException will be thrown.

Exceptions will also be thrown for the following errors, which occur outside the library (their error code will be -1):

  • attempting some operations on a closed RarArchive object or a RarEntry object relative to the first;
  • attempting to get an entry that does not exist with RarArchive::getEntry().

Список параметров

using_exceptions

Should be TRUE to activate exception throwing, FALSE to deactivate (the default).

Примеры

Пример #1 RarException::setUsingExceptions() example

<?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() - Check whether error handling with exceptions is in use


Zip

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • ZipArchive — Класс ZipArchive
    • ZipArchive::addEmptyDir — Добавляет новую директорию
    • ZipArchive::addFile — Добавляет в ZIP-архив файл по указанному пути
    • ZipArchive::addFromString — Добавляет файл в ZIP-архив, используя его содержимое
    • ZipArchive::addGlob — Add files from a directory by glob pattern
    • ZipArchive::addPattern — Add files from a directory by PCRE pattern
    • ZipArchive::close — Закрывает активный архив (открытый или вновь созданный)
    • ZipArchive::deleteIndex — Удаляет элемент в архиве, используя его индекс
    • ZipArchive::deleteName — Удаляет элемент в архиве, используя его имя
    • ZipArchive::extractTo — Извлекает содержимое архива
    • ZipArchive::getArchiveComment — Возвращает комментарий ZIP-архива
    • ZipArchive::getCommentIndex — Возвращает комментарий элемента, используя его индекс
    • ZipArchive::getCommentName — Возвращает комментарий элемента, используя его имя
    • ZipArchive::getExternalAttributesIndex — Retrieve the external attributes of an entry defined by its index
    • ZipArchive::getExternalAttributesName — Retrieve the external attributes of an entry defined by its name
    • ZipArchive::getFromIndex — Возвращает содержимое элемента по его индексу
    • ZipArchive::getFromName — Возвращает содержимое элемента по его имени
    • ZipArchive::getNameIndex — Возвращает имя элемента по его индексу
    • ZipArchive::getStatusString — Возвращают статус сообщения об ошибке, системный и/или zip-статус
    • ZipArchive::getStream — Получить дескриптор файла элемента, определенный по имени элемента (только для чтения)
    • ZipArchive::locateName — Возвращает индекс элемента в архиве
    • ZipArchive::open — Открывает ZIP-архив
    • ZipArchive::renameIndex — Переименовывает элемент по его индексу
    • ZipArchive::renameName — Переименовывает элемент по его имени
    • ZipArchive::setArchiveComment — Устанавливает комментарий к ZIP-архиву
    • ZipArchive::setCommentIndex — Устанавливает комментарий к элементу по его индексу
    • ZipArchive::setCommentName — Устанавливает комментарий к элементу, заданному по имени
    • ZipArchive::setCompressionIndex — Set the compression method of an entry defined by its index
    • ZipArchive::setCompressionName — Set the compression method of an entry defined by its name
    • ZipArchive::setExternalAttributesIndex — Set the external attributes of an entry defined by its index
    • ZipArchive::setExternalAttributesName — Установка внешних атрибутов записи, заданной по имени
    • ZipArchive::setPassword — Установка пароля для активного архива
    • ZipArchive::statIndex — Получение детальной информации о элементе по его индексу
    • ZipArchive::statName — Получение детальной информации о элементе по его имени
    • ZipArchive::unchangeAll — Отменяет все изменения, сделанные в архиве
    • ZipArchive::unchangeArchive — Возвращает все глобальные изменения, сделанные в архиве
    • ZipArchive::unchangeIndex — Отменяет все изменения у позиции с заданным индексом
    • ZipArchive::unchangeName — Отменяет все измения у позиции с заданным именем
  • Zip Функции
    • zip_close — Закрывает дескриптор ZIP-архива
    • zip_entry_close — Закрывает дескриптор директории
    • zip_entry_compressedsize — Возвращает сжатый размер файла для дескриптора директории
    • zip_entry_compressionmethod — Возвращает метод сжатия дескриптора директории
    • zip_entry_filesize — Возвращает реальный размер файла для дескриптора директории
    • zip_entry_name — Получает имя дескриптора директории
    • zip_entry_open — Открывает директорию для чтения
    • zip_entry_read — Читает данные из открытого ранее дескриптора директории
    • zip_open — Открывает ZIP-архив
    • zip_read — Считывает следующую запись в ZIP-архиве


Введение

Это расширение позволяет легко читать и писать как в сами сжатые ZIP архивы, так и в файлы внутри них.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Это расширение требует » libzip который поставляется в составе PHP.


Установка

Linux системы

Для использования этих функций необходимо скомпилировать PHP с поддержкой zip, используя конфигурационную опцию --enable-zip .

Начиная с PHP 5.6.0 добавлена опция --with-libzip=DIR , указывающая использовать системную библиотеку libzip. Требуется libzip версии 0.11, рекомендуется версия 0.11.2 или новее.

Windows

С PHP 5.3, это расширение встроено по умолчанию. Для использования этих функций пользователи Windows должны включить php_zip.dll в php.ini.

Установка через PECL

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/zip.


Типы ресурсов

В Zip-модуле используются два типа ресурсов. Первый — Zip-директория для Zip-архива, второй — Zip Entry (элементы архива).


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

ZipArchive использует константы класса. Есть три типа констант: Флаги (префикс FL_), ошибки (префикс ER_) и константы режима работы (без префикса).

ZipArchive::CREATE (integer)
Создавать архив, если он не существует.
ZipArchive::OVERWRITE (integer)
Всегда создавать новый архив, этот режим перезаписывает файлы, если они существуют.
ZipArchive::EXCL (integer)
Выводить ошибку, если архив существует.
ZipArchive::CHECKCONS (integer)
Выполнять дополнительные проверки на структуру архива, и выдавать ошибку при неудаче.
ZipArchive::FL_NOCASE (integer)
Игнорировать регистр символов в именах элементов архива.
ZipArchive::FL_NODIR (integer)
Не учитывать пути директорий в архиве.
ZipArchive::FL_COMPRESSED (integer)
Читать сжатые данные.
ZipArchive::FL_UNCHANGED (integer)
Использовать исходные данные, игнорируя изменения.
ZipArchive::FL_ENC_GUESS (integer)
Угадать кодировку строки (по умолчанию). Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_RAW (integer)
Взять немодифицированную строку. Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_STRICT (integer)
Строго следовать спецификации. Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_UTF_8 (integer)
Строка в кодировке UTF-8. Доступно с PHP 7.0.8.
ZipArchive::FL_ENC_CP437 (integer)
Строка в кодировке CP437. Доступно с PHP 7.0.8.
ZipArchive::CM_DEFAULT (integer)
Выбрать лучший метод сжатия "deflate" или "stored" (без сжатия).
ZipArchive::CM_STORE (integer)
Метод сжатия "stored" (без сжатия).
ZipArchive::CM_SHRINK (integer)
Метод сжатия "shrunk".
ZipArchive::CM_REDUCE_1 (integer)
Метод сжатия "reduced" с коэффициентом 1.
ZipArchive::CM_REDUCE_2 (integer)
Метод сжатия "reduced" с коэффициентом 2.
ZipArchive::CM_REDUCE_3 (integer)
Метод сжатия "reduced" с коэффициентом 3.
ZipArchive::CM_REDUCE_4 (integer)
Метод сжатия "reduced" с коэффициентом 4.
ZipArchive::CM_IMPLODE (integer)
Метод сжатия "imploded".
ZipArchive::CM_DEFLATE (integer)
Метод сжатия "deflated".
ZipArchive::CM_DEFLATE64 (integer)
Метод сжатия "deflate64".
ZipArchive::CM_PKWARE_IMPLODE (integer)
Метод сжатия "PKWARE imploding".
ZipArchive::CM_BZIP2 (integer)
Метод сжатия алгоритмом BZIP2.
ZipArchive::ER_OK (integer)
Нет ошибок.
ZipArchive::ER_MULTIDISK (integer)
Многотомный ZIP архив не поддерживается.
ZipArchive::ER_RENAME (integer)
Переименование временного файла не удалось.
ZipArchive::ER_CLOSE (integer)
Закрытие ZIP архива не удалось.
ZipArchive::ER_SEEK (integer)
Ошибка поиска.
ZipArchive::ER_READ (integer)
Ошибка чтения.
ZipArchive::ER_WRITE (integer)
Ошибка записи.
ZipArchive::ER_CRC (integer)
Ошибка контрольной суммы.
ZipArchive::ER_ZIPCLOSED (integer)
Открытый ZIP архив был закрыт.
ZipArchive::ER_NOENT (integer)
Нет такого файла.
ZipArchive::ER_EXISTS (integer)
Файл уже существует.
ZipArchive::ER_OPEN (integer)
Невозможно открыть файл.
ZipArchive::ER_TMPOPEN (integer)
Не удалось создать временный файл.
ZipArchive::ER_ZLIB (integer)
Ошибка Zlib.
ZipArchive::ER_MEMORY (integer)
Ошибка выделения памяти.
ZipArchive::ER_CHANGED (string)
Запись была изменена.
ZipArchive::ER_COMPNOTSUPP (integer)
Метод сжатия не поддерживается.
ZipArchive::ER_EOF (integer)
Преждевременный конец файла.
ZipArchive::ER_INVAL (integer)
Недопустимый аргумент.
ZipArchive::ER_NOZIP (integer)
Не ZIP архив.
ZipArchive::ER_INTERNAL (integer)
Внутренняя ошибка.
ZipArchive::ER_INCONS (integer)
ZIP архив несовместим.
ZipArchive::ER_REMOVE (integer)
Невозможно удалить файл.
ZipArchive::ER_DELETED (integer)
Запись была удалена.
Константы операционной системы для внешних атрибутов
ZipArchive::OPSYS_DOS (integer)
ZipArchive::OPSYS_AMIGA (integer)
ZipArchive::OPSYS_OPENVMS (integer)
ZipArchive::OPSYS_UNIX (integer)
ZipArchive::OPSYS_VM_CMS (integer)
ZipArchive::OPSYS_ATARI_ST (integer)
ZipArchive::OPSYS_OS_2 (integer)
ZipArchive::OPSYS_MACINTOSH (integer)
ZipArchive::OPSYS_Z_SYSTEM (integer)
ZipArchive::OPSYS_CPM (integer)
ZipArchive::OPSYS_WINDOWS_NTFS (integer)
ZipArchive::OPSYS_MVS (integer)
ZipArchive::OPSYS_VSE (integer)
ZipArchive::OPSYS_ACORN_RISC (integer)
ZipArchive::OPSYS_VFAT (integer)
ZipArchive::OPSYS_ALTERNATE_MVS (integer)
ZipArchive::OPSYS_BEOS (integer)
ZipArchive::OPSYS_TANDEM (integer)
ZipArchive::OPSYS_OS_400 (integer)
ZipArchive::OPSYS_OS_X (integer)
ZipArchive::OPSYS_DEFAULT (integer)
Начиная с версий PHP 5.6.0, PECL zip 1.12.4


Примеры

Пример #1 Создание Zip архива

<?php

$zip = new ZipArchive();
$filename = "./test112.zip";

if ($zip->open($filename, ZipArchive::CREATE)!==TRUE) {
    exit("Невозможно открыть <$filename>\n");
}

$zip->addFromString("testfilephp.txt" . time(), "#1 Это тестовая строка, добавленная как testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 Это тестовая строка, добавленная как testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
?>

Пример #2 Собрать и отобразить подробную информацию об архиве

<?php
$za = new ZipArchive();

$za->open('test_with_comment.zip');
print_r($za);
var_dump($za);
echo "numFiles: " . $za->numFiles . "\n";
echo "status: " . $za->status  . "\n";
echo "statusSys: " . $za->statusSys . "\n";
echo "filename: " . $za->filename . "\n";
echo "comment: " . $za->comment . "\n";

for ($i=0; $i<$za->numFiles;$i++) {
    echo "index: $i\n";
    print_r($za->statIndex($i));
}
echo "numFile:" . $za->numFiles . "\n";
?>

Пример #3 Использование обертки потока Zip, чтение мета-информации OpenOffice

<?php
$reader = new XMLReader();

$reader->open('zip://' . dirname(__FILE__) . '/test.odt#meta.xml');
$odt_meta = array();
while ($reader->read()) {
    if ($reader->nodeType == XMLREADER::ELEMENT) {
        $elm = $reader->name;
    } else {
        if ($reader->nodeType == XMLREADER::END_ELEMENT && $reader->name == 'office:meta') {
            break;
        }
        if (!trim($reader->value)) {
            continue;
        }
        $odt_meta[$elm] = $reader->value;
    }
}
print_r($odt_meta);
?>

Этот пример использует старую версию API (PHP 4), он открывает ZIP-архив, читает каждый файл в архиве и выводит его содержимое. Архив test2.zip, использованный в этом примере, является одним из тестовых архивов исходного дистрибутива ZZIPlib.

Пример #4 Пример использования Zip

<?php

$zip = zip_open("/tmp/test2.zip");

if ($zip) {
    while ($zip_entry = zip_read($zip)) {
        echo "Название:         " . zip_entry_name($zip_entry) . "\n";
        echo "Исходный размер:  " . zip_entry_filesize($zip_entry) . "\n";
        echo "Сжатый размер:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo "Метод сжатия:     " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (zip_entry_open($zip, $zip_entry, "r")) {
            echo "Содержимое файла:\n";
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo "$buf\n";

            zip_entry_close($zip_entry);
        }
        echo "\n";

    }

    zip_close($zip);

}
?>


Класс ZipArchive

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

Введение

Файловый архив, сжатый Zip.

Обзор классов

ZipArchive {
/* Свойства */
int $status;
int $statusSys;
int $numFiles;
string $filename;
string $comment;
/* Методы */
bool addEmptyDir ( string $dirname )
bool addFile ( string $filename [, string $localname = NULL [, int $start = 0 [, int $length = 0 ]]] )
bool addFromString ( string $localname , string $contents )
bool addGlob ( string $pattern [, int $flags = 0 [, array $options = array() ]] )
bool addPattern ( string $pattern [, string $path = "." [, array $options = array() ]] )
bool close ( void )
bool deleteIndex ( int $index )
bool deleteName ( string $name )
bool extractTo ( string $destination [, mixed $entries ] )
string getArchiveComment ([ int $flags ] )
string getCommentIndex ( int $index [, int $flags ] )
string getCommentName ( string $name [, int $flags ] )
bool GetExternalAttributesIndex ( int $index , int &$opsys , int &$attr [, int $flags ] )
bool getExternalAttributesName ( string $name , int &$opsys , int &$attr [, int $flags ] )
string getFromIndex ( int $index [, int $length = 0 [, int $flags ]] )
string getFromName ( string $name [, int $length = 0 [, int $flags ]] )
string getNameIndex ( int $index [, int $flags ] )
string getStatusString ( void )
resource getStream ( string $name )
int locateName ( string $name [, int $flags ] )
mixed open ( string $filename [, int $flags ] )
bool renameIndex ( int $index , string $newname )
bool renameName ( string $name , string $newname )
bool setArchiveComment ( string $comment )
bool setCommentIndex ( int $index , string $comment )
bool setCommentName ( string $name , string $comment )
bool setCompressionIndex ( int $index , int $comp_method [, int $comp_flags = 0 ] )
bool setCompressionName ( string $name , int $comp_method [, int $comp_flags = 0 ] )
bool setExternalAttributesIndex ( int $index , int $opsys , int $attr [, int $flags ] )
bool setExternalAttributesName ( string $name , int $opsys , int $attr [, int $flags ] )
public bool setPassword ( string $password )
array statIndex ( int $index [, int $flags ] )
array statName ( string $name [, int $flags ] )
bool unchangeAll ( void )
bool unchangeArchive ( void )
bool unchangeIndex ( int $index )
bool unchangeName ( string $name )
}

Свойства

status

Статус Zip-архива

statusSys

Системный статус Zip-архива

numFiles

Количество файлов в архиве

filename

Имя файла в файловой системе

comment

Комментарий к архиву

Содержание

  • ZipArchive::addEmptyDir — Добавляет новую директорию
  • ZipArchive::addFile — Добавляет в ZIP-архив файл по указанному пути
  • ZipArchive::addFromString — Добавляет файл в ZIP-архив, используя его содержимое
  • ZipArchive::addGlob — Add files from a directory by glob pattern
  • ZipArchive::addPattern — Add files from a directory by PCRE pattern
  • ZipArchive::close — Закрывает активный архив (открытый или вновь созданный)
  • ZipArchive::deleteIndex — Удаляет элемент в архиве, используя его индекс
  • ZipArchive::deleteName — Удаляет элемент в архиве, используя его имя
  • ZipArchive::extractTo — Извлекает содержимое архива
  • ZipArchive::getArchiveComment — Возвращает комментарий ZIP-архива
  • ZipArchive::getCommentIndex — Возвращает комментарий элемента, используя его индекс
  • ZipArchive::getCommentName — Возвращает комментарий элемента, используя его имя
  • ZipArchive::getExternalAttributesIndex — Retrieve the external attributes of an entry defined by its index
  • ZipArchive::getExternalAttributesName — Retrieve the external attributes of an entry defined by its name
  • ZipArchive::getFromIndex — Возвращает содержимое элемента по его индексу
  • ZipArchive::getFromName — Возвращает содержимое элемента по его имени
  • ZipArchive::getNameIndex — Возвращает имя элемента по его индексу
  • ZipArchive::getStatusString — Возвращают статус сообщения об ошибке, системный и/или zip-статус
  • ZipArchive::getStream — Получить дескриптор файла элемента, определенный по имени элемента (только для чтения)
  • ZipArchive::locateName — Возвращает индекс элемента в архиве
  • ZipArchive::open — Открывает ZIP-архив
  • ZipArchive::renameIndex — Переименовывает элемент по его индексу
  • ZipArchive::renameName — Переименовывает элемент по его имени
  • ZipArchive::setArchiveComment — Устанавливает комментарий к ZIP-архиву
  • ZipArchive::setCommentIndex — Устанавливает комментарий к элементу по его индексу
  • ZipArchive::setCommentName — Устанавливает комментарий к элементу, заданному по имени
  • ZipArchive::setCompressionIndex — Set the compression method of an entry defined by its index
  • ZipArchive::setCompressionName — Set the compression method of an entry defined by its name
  • ZipArchive::setExternalAttributesIndex — Set the external attributes of an entry defined by its index
  • ZipArchive::setExternalAttributesName — Установка внешних атрибутов записи, заданной по имени
  • ZipArchive::setPassword — Установка пароля для активного архива
  • ZipArchive::statIndex — Получение детальной информации о элементе по его индексу
  • ZipArchive::statName — Получение детальной информации о элементе по его имени
  • ZipArchive::unchangeAll — Отменяет все изменения, сделанные в архиве
  • ZipArchive::unchangeArchive — Возвращает все глобальные изменения, сделанные в архиве
  • ZipArchive::unchangeIndex — Отменяет все изменения у позиции с заданным индексом
  • ZipArchive::unchangeName — Отменяет все измения у позиции с заданным именем


Добавляет новую директорию

  • « ZipArchive
  • ZipArchive::addFile »
  • PHP Manual
  • ZipArchive
  • Добавляет новую директорию

ZipArchive::addEmptyDir

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.8.0)

ZipArchive::addEmptyDir — Добавляет новую директорию

Описание

bool ZipArchive::addEmptyDir ( string $dirname )

Добавляет пустую директорию в архив.

Список параметров

dirname

Директория для добавления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание новой директории в архиве.

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    if($zip->addEmptyDir('newDirectory')) {
        echo 'Создана новая директория';
    } else {
        echo 'Невозможно создать директорию';
    }
    $zip->close();
} else {
    echo 'failed';
}
?>


Добавляет в ZIP-архив файл по указанному пути

  • « ZipArchive::addEmptyDir
  • ZipArchive::addFromString »
  • PHP Manual
  • ZipArchive
  • Добавляет в ZIP-архив файл по указанному пути

ZipArchive::addFile

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::addFile — Добавляет в ZIP-архив файл по указанному пути

Описание

bool ZipArchive::addFile ( string $filename [, string $localname = NULL [, int $start = 0 [, int $length = 0 ]]] )

Добавляет в ZIP-архив файл по указанному пути.

Замечание: Для максимальной переносимости, рекомендуется всегда использовать прямые слеши (/) в качестве разделителя директорий в именах файлов.

Список параметров

filename

Путь к файлу для добавления.

localname

Имя файла внутри ZIP-архива. Если указано, то переопределит filename.

start

Этот параметр не используется, но необходим для будущего развития ZipArchive.

length

Этот параметр не используется, но необходим для будущего развития ZipArchive.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

В данном примере открывается файл ZIP-архива test.zip и в него добавляется файл /path/to/index.txt под именем newname.txt.

Пример #1 Открыть и добавить

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFile('/path/to/index.txt', 'newname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'ошибка';
}
?>

Примечания

Замечание:

В процессе добавления файла в архив, PHP заблокирует файл. Разблокировка произойдет только после закрытия объекта ZipArchive, путем вызова ZipArchive::close() или уничтожения объекта ZipArchive. Это предотвращает удаление только что добавленного в архив файла до того, как он будет разблокирован.


Добавляет файл в ZIP-архив, используя его содержимое

  • « ZipArchive::addFile
  • ZipArchive::addGlob »
  • PHP Manual
  • ZipArchive
  • Добавляет файл в ZIP-архив, используя его содержимое

ZipArchive::addFromString

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::addFromString — Добавляет файл в ZIP-архив, используя его содержимое

Описание

bool ZipArchive::addFromString ( string $localname , string $contents )

Добавяет файл в ZIP-архив, используя его содержимое.

Замечание: Для максимальной переносимости, рекомендуется всегда использовать прямые слеши (/) в качестве разделителя директорий в именах файлов.

Список параметров

localname

Локальное имя файла для создания.

contents

Содержимое для создания файла. Используется в двоичном безопасном режиме.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавить запись в новый архив

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'здесь следует содержимое файла');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

Пример #2 Добавить файл в директорию внутри архива

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFromString('dir/test.txt', 'здесь следует содержимое файла');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


Add files from a directory by glob pattern

  • « ZipArchive::addFromString
  • ZipArchive::addPattern »
  • PHP Manual
  • ZipArchive
  • Add files from a directory by glob pattern

ZipArchive::addGlob

(PHP 5 >= 5.3.0, PHP 7, PECL zip >= 1.9.0)

ZipArchive::addGlob — Add files from a directory by glob pattern

Описание

bool ZipArchive::addGlob ( string $pattern [, int $flags = 0 [, array $options = array() ]] )

Add files from a directory which match the glob pattern.

Замечание: Для максимальной переносимости, рекомендуется всегда использовать прямые слеши (/) в качестве разделителя директорий в именах файлов.

Список параметров

pattern

A glob() pattern against which files will be matched.

flags

A bit mask of glob() flags.

options

An associative array of options. Available options are:

  • "add_path"

    Prefix to prepend when translating to the local path of the file within the archive. This is applied after any remove operations defined by the "remove_path" or "remove_all_path" options.

  • "remove_path"

    Prefix to remove from matching file paths before adding to the archive.

  • "remove_all_path"

    TRUE to use the file name only and add to the root of the archive.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ZipArchive::addGlob() example

Add all php scripts and text files from current working directory

<?php
$zip = new ZipArchive();
$ret = $zip->open('application.zip', ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
    printf('Failed with code %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() - Add files from a directory by PCRE pattern


Add files from a directory by PCRE pattern

  • « ZipArchive::addGlob
  • ZipArchive::close »
  • PHP Manual
  • ZipArchive
  • Add files from a directory by PCRE pattern

ZipArchive::addPattern

(PHP 5 >= 5.3.0, PHP 7, PECL zip >= 1.9.0)

ZipArchive::addPattern — Add files from a directory by PCRE pattern

Описание

bool ZipArchive::addPattern ( string $pattern [, string $path = "." [, array $options = array() ]] )

Add files from a directory which match the regular expression pattern. The operation is not recursive. The pattern will be matched against the file name only.

Список параметров

pattern

A PCRE pattern against which files will be matched.

path

The directory that will be scanned. Defaults to the current working directory.

options

An associative array of options accepted by ZipArchive::addGlob().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ZipArchive::addPattern() example

Add all php scripts and text files from current directory

<?php
$zip = new ZipArchive();
$ret = $zip->open('application.zip', ZipArchive::OVERWRITE);
if ($ret !== TRUE) {
    printf('Failed with code %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() - Add files from a directory by glob pattern


Закрывает активный архив (открытый или вновь созданный)

  • « ZipArchive::addPattern
  • ZipArchive::deleteIndex »
  • PHP Manual
  • ZipArchive
  • Закрывает активный архив (открытый или вновь созданный)

ZipArchive::close

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::close — Закрывает активный архив (открытый или вновь созданный)

Описание

bool ZipArchive::close ( void )

Закрывает открытый или созданный архив и сохраняет изменения. Данный метод автоматически вызывается в конце сценария.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Удаляет элемент в архиве, используя его индекс

  • « ZipArchive::close
  • ZipArchive::deleteName »
  • PHP Manual
  • ZipArchive
  • Удаляет элемент в архиве, используя его индекс

ZipArchive::deleteIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::deleteIndex — Удаляет элемент в архиве, используя его индекс

Описание

bool ZipArchive::deleteIndex ( int $index )

Удаляет элемент (файл или каталог - прим.пер.) в архиве, используя его индекс.

Список параметров

index

Индекс элемента для удаления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Удалить файл из архива, используя его индекс

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->deleteIndex(2);
    $zip->close();
    echo 'ok';
} else {
    echo 'ошибка';
}
?>


Удаляет элемент в архиве, используя его имя

  • « ZipArchive::deleteIndex
  • ZipArchive::extractTo »
  • PHP Manual
  • ZipArchive
  • Удаляет элемент в архиве, используя его имя

ZipArchive::deleteName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::deleteName — Удаляет элемент в архиве, используя его имя

Описание

bool ZipArchive::deleteName ( string $name )

Удаляет элемент (файл или каталог - прим.пер.) в архиве, используя его имя.

Список параметров

name

Имя элемента для удаления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Удалить файл или каталог из архива по имени.

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
    $zip->deleteName('testfromfile.php');
    $zip->deleteName('testDir/');
    $zip->close();
    echo 'ok';
} else {
    echo 'ошибка';
}
?>


Извлекает содержимое архива

  • « ZipArchive::deleteName
  • ZipArchive::getArchiveComment »
  • PHP Manual
  • ZipArchive
  • Извлекает содержимое архива

ZipArchive::extractTo

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::extractTo — Извлекает содержимое архива

Описание

bool ZipArchive::extractTo ( string $destination [, mixed $entries ] )

Извлечение всего архива или его части в указанное место назначения.

Список параметров

destination

Место назначение, куда извлекать файлы.

entries

Элементы для извлечения. Может принимать как одно значение, так и массив записей.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Извлечь все содержимое

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->extractTo('/my/destination/dir/');
    $zip->close();
    echo 'ok';
} 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 'ok';
} else {
    echo 'ошибка';
}
?>


Возвращает комментарий ZIP-архива

  • « ZipArchive::extractTo
  • ZipArchive::getCommentIndex »
  • PHP Manual
  • ZipArchive
  • Возвращает комментарий ZIP-архива

ZipArchive::getArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::getArchiveComment — Возвращает комментарий ZIP-архива

Описание

string ZipArchive::getArchiveComment ([ int $flags ] )

Возвращает комментарий ZIP-архива.

Список параметров

flags

Если флаг установлен в ZipArchive::FL_UNCHANGED, возвращается оригинальный неизмененный комментарий.

Возвращаемые значения

Возвращает комментарий ZIP-архива или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Вывести комментарий архива

<?php
$zip = new ZipArchive;
$res = $zip->open('test_with_comment.zip');
if ($res === TRUE) {
    var_dump($zip->getArchiveComment());
    /* Или используя свойство */
    var_dump($zip->comment);
} else {
    echo 'Ошибка, код:' . $res;
}
?>


Возвращает комментарий элемента, используя его индекс

  • « ZipArchive::getArchiveComment
  • ZipArchive::getCommentName »
  • PHP Manual
  • ZipArchive
  • Возвращает комментарий элемента, используя его индекс

ZipArchive::getCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::getCommentIndex — Возвращает комментарий элемента, используя его индекс

Описание

string ZipArchive::getCommentIndex ( int $index [, int $flags ] )

Возвращает комментарий элемента, используя его индекс.

Список параметров

index

Индекс записи.

flags

Если флаг установлен в ZipArchive::FL_UNCHANGED, возвращается оригинальный неизмененный комментарий.

Возвращаемые значения

Возвращает комментарий при успехе или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Вывести комментарий элемента

<?php
$zip = new ZipArchive;
$res = $zip->open('test1.zip');
if ($res === TRUE) {
    var_dump($zip->getCommentIndex(1));
} else {
    echo 'Ошибка, код:' . $res;
}
?>


Возвращает комментарий элемента, используя его имя

  • « ZipArchive::getCommentIndex
  • ZipArchive::getExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Возвращает комментарий элемента, используя его имя

ZipArchive::getCommentName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::getCommentName — Возвращает комментарий элемента, используя его имя

Описание

string ZipArchive::getCommentName ( string $name [, int $flags ] )

Возвращает комментарий элемента, используя его имя.

Список параметров

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;
}
?>


Retrieve the external attributes of an entry defined by its index

  • « ZipArchive::getCommentName
  • ZipArchive::getExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Retrieve the external attributes of an entry defined by its index

ZipArchive::getExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesIndex — Retrieve the external attributes of an entry defined by its index

Описание

bool ZipArchive::GetExternalAttributesIndex ( int $index , int &$opsys , int &$attr [, int $flags ] )

Retrieve the external attributes of an entry defined by its index.

Список параметров

index

Index of the entry.

opsys

On success, receive the operating system code defined by one of the ZipArchive::OPSYS_ constants.

attr

On success, receive the external attributes. Value depends on operating system.

flags

If flags is set to ZipArchive::FL_UNCHANGED, the original unchanged attributes are returned.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

This example extract all the entries of a ZIP archive test.zip and set the Unix rights from external attributes.

Пример #1 Extract all entries with Unix rights

<?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 "Ok\n";
} else {
    echo "KO\n";
}
?>


Retrieve the external attributes of an entry defined by its name

  • « ZipArchive::getExternalAttributesIndex
  • ZipArchive::getFromIndex »
  • PHP Manual
  • ZipArchive
  • Retrieve the external attributes of an entry defined by its name

ZipArchive::getExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::getExternalAttributesName — Retrieve the external attributes of an entry defined by its name

Описание

bool ZipArchive::getExternalAttributesName ( string $name , int &$opsys , int &$attr [, int $flags ] )

Retrieve the external attributes of an entry defined by its name.

Список параметров

name

Name of the entry.

opsys

On success, receive the operating system code defined by one of the ZipArchive::OPSYS_ constants.

attr

On success, receive the external attributes. Value depends on operating system.

flags

If flags is set to ZipArchive::FL_UNCHANGED, the original unchanged attributes are returned.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает содержимое элемента по его индексу

  • « ZipArchive::getExternalAttributesName
  • ZipArchive::getFromName »
  • PHP Manual
  • ZipArchive
  • Возвращает содержимое элемента по его индексу

ZipArchive::getFromIndex

(Информация о версии неизвестна, возможно, только в SVN)

ZipArchive::getFromIndex — Возвращает содержимое элемента по его индексу

Описание

string ZipArchive::getFromIndex ( int $index [, int $length = 0 [, int $flags ]] )

Возвращает содержимое элемента по его индексу.

Список параметров

index

Индекс элемента.

length

Размер читаемых данных из элемента. Если 0, содержимое читается полностью.

flags

Флаги используемые для открытия архива. Может быть установлено только одно нижеприведенное значение.

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

Возвращаемые значения

Возвращает содержимое элемента при успехе или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Получить содержимое файла

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    echo $zip->getFromIndex(2);
    $zip->close();
} else {
    echo 'ошибка';
}
?>

Смотрите также

  • ZipArchive::getFromName() - Возвращает содержимое элемента по его имени


Возвращает содержимое элемента по его имени

  • « ZipArchive::getFromIndex
  • ZipArchive::getNameIndex »
  • PHP Manual
  • ZipArchive
  • Возвращает содержимое элемента по его имени

ZipArchive::getFromName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::getFromName — Возвращает содержимое элемента по его имени

Описание

string ZipArchive::getFromName ( string $name [, int $length = 0 [, int $flags ]] )

Возвращает содержимое элемента по его имени.

Список параметров

name

Имя элемента.

length

Размер читаемых данных из элемента. Если 0, содержимое читается полностью.

flags

Флаги используемые для поиска записи. Следующие значения могут быть присоединениы (побитовое ИЛИ).

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

  • ZipArchive::FL_NOCASE

Возвращаемые значения

Возвращает содержимое элемента при успехе или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Получить содержимое файла

<?php
$zip = new ZipArchive;
if ($zip->open('test1.zip') === TRUE) {
    echo $zip->getFromName('testfromfile.php');
    $zip->close();
} else {
    echo 'ошибка';
}
?>

Пример #2 Преобразовать изображении из ZIP-элемента

<?php
$z = new ZipArchive();
if ($z->open(dirname(__FILE__) . '/test_im.zip')) {
    $im_string = $z->getFromName("pear_item.gif");
    $im = imagecreatefromstring($im_string);
    imagepng($im, 'b.png');
}
?>

Смотрите также

  • ZipArchive::getFromIndex() - Возвращает содержимое элемента по его индексу


Возвращает имя элемента по его индексу

  • « ZipArchive::getFromName
  • ZipArchive::getStatusString »
  • PHP Manual
  • ZipArchive
  • Возвращает имя элемента по его индексу

ZipArchive::getNameIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::getNameIndex — Возвращает имя элемента по его индексу

Описание

string ZipArchive::getNameIndex ( int $index [, int $flags ] )

Возвращает имя элемента по его индексу.

Список параметров

index

Индекс элемента.

flags

Если флаг установлен в ZipArchive::FL_UNCHANGED, возвращается оригинальное неизмененное имя.

Возвращаемые значения

Возвращает имя при успехе или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ZipArchive::getnameindex()

<?php
if ($zip->open('test.zip') == TRUE) {
 for ($i = 0; $i < $zip->numFiles; $i++) {
     $filename = $zip->getNameIndex($i);
     // ...
 }
}
?>


Возвращают статус сообщения об ошибке, системный и/или zip-статус

  • « ZipArchive::getNameIndex
  • ZipArchive::getStream »
  • PHP Manual
  • ZipArchive
  • Возвращают статус сообщения об ошибке, системный и/или zip-статус

ZipArchive::getStatusString

(PHP 5 >= 5.2.7, PHP 7)

ZipArchive::getStatusString — Возвращают статус сообщения об ошибке, системный и/или zip-статус

Описание

string ZipArchive::getStatusString ( void )

Возвращают статус сообщения об ошибке, системный и/или zip-статус.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string) с сообщением о статусе при успехе или FALSE в случае возникновения ошибки.


Получить дескриптор файла элемента, определенный по имени элемента (только для чтения)

  • « ZipArchive::getStatusString
  • ZipArchive::locateName »
  • PHP Manual
  • ZipArchive
  • Получить дескриптор файла элемента, определенный по имени элемента (только для чтения)

ZipArchive::getStream

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::getStream — Получить дескриптор файла элемента, определенный по имени элемента (только для чтения)

Описание

resource ZipArchive::getStream ( string $name )

Получить дескриптор файла, определенный по имени элемента. На данный момент поддерживаются только операции чтения.

Список параметров

name

Используемое имя элемента.

Возвращаемые значения

Возвращает файловый указатель (ресурс) в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Получить содержимое элемента при помощи fread() и сохранить его

<?php
$contents = '';
$z = new ZipArchive();
if ($z->open('test.zip')) {
    $fp = $z->getStream('test');
    if(!$fp) exit("failed\n");

    while (!feof($fp)) {
        $contents .= fread($fp, 2);
    }

    fclose($fp);
    file_put_contents('t',$contents);
    echo "готово.\n";
}
?>

Пример #2 То же, что и в предыдущем примере, но используя fopen() и через обертку zip-потока

<?php
$contents = '';
$fp = fopen('zip://' . dirname(__FILE__) . '/test.zip#test', 'r');
if (!$fp) {
    exit("Не получается открыть\n");
}
while (!feof($fp)) {
    $contents .= fread($fp, 2);
}
echo "$contents\n";
fclose($fp);
echo "Готово.\n";
?>

Пример #3 ZIP-поток и изображение могут быть использованы также в функции XML

<?php
$im = imagecreatefromgif('zip://' . dirname(__FILE__) . '/test_im.zip#pear_item.gif');
imagepng($im, 'a.png');
?>


Возвращает индекс элемента в архиве

  • « ZipArchive::getStream
  • ZipArchive::open »
  • PHP Manual
  • ZipArchive
  • Возвращает индекс элемента в архиве

ZipArchive::locateName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::locateName — Возвращает индекс элемента в архиве

Описание

int ZipArchive::locateName ( string $name [, int $flags ] )

Находит элемент по его имени.

Список параметров

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('failed');
}

$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 "failed to write zip\n";
}
$zip->close();

if ($zip->open($file) !== TRUE) {
    exit('failed');
}

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::renameIndex »
  • PHP Manual
  • ZipArchive
  • Открывает ZIP-архив

ZipArchive::open

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::open — Открывает ZIP-архив

Описание

mixed ZipArchive::open ( string $filename [, int $flags ] )

Открывает новый ZIP-архив для чтения, записи или изменения.

Список параметров

filename

Имя ZIP-архива для открытия.

flags

Используемый режим открытия файлов.

  • ZipArchive::OVERWRITE

  • ZipArchive::CREATE

  • ZipArchive::EXCL

  • ZipArchive::CHECKCONS

Возвращаемые значения

Коды ошибок

Возвращает TRUE при успешном завершении или код ошибки.

  • ZipArchive::ER_EXISTS

    Файл уже существует.

  • ZipArchive::ER_INCONS

    Несовместимый ZIP-архив.

  • ZipArchive::ER_INVAL

    Недопустимый аргумент.

  • ZipArchive::ER_MEMORY

    Ошибка динамического выделения памяти.

  • ZipArchive::ER_NOENT

    Нет такого файла.

  • ZipArchive::ER_NOZIP

    Не является ZIP-архивом.

  • ZipArchive::ER_OPEN

    Невозможно открыть файл.

  • ZipArchive::ER_READ

    Ошибка чтения.

  • ZipArchive::ER_SEEK

    Ошибка поиска.

Примеры

Пример #1 Открытие и извлечение

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    echo 'ok';
    $zip->extractTo('test');
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}
?>

Пример #2 Создание архива

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'file content goes here');
    $zip->addFile('data.txt', 'entryname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


Переименовывает элемент по его индексу

  • « ZipArchive::open
  • ZipArchive::renameName »
  • PHP Manual
  • ZipArchive
  • Переименовывает элемент по его индексу

ZipArchive::renameIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::renameIndex — Переименовывает элемент по его индексу

Описание

bool ZipArchive::renameIndex ( int $index , string $newname )

Переименовывает элемент по его индексу.

Список параметров

index

Индекс элемента для переименования.

newname

Новое имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Переименование одного элемента

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->renameIndex(2,'newname.txt');
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}
?>


Переименовывает элемент по его имени

  • « ZipArchive::renameIndex
  • ZipArchive::setArchiveComment »
  • PHP Manual
  • ZipArchive
  • Переименовывает элемент по его имени

ZipArchive::renameName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::renameName — Переименовывает элемент по его имени

Описание

bool ZipArchive::renameName ( string $name , string $newname )

Переименовывает элемент, заданный по имени.

Список параметров

name

Имя элемента для переименования.

newname

Новое имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Переименование одного элемента

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->renameName('currentname.txt','newname.txt');
    $zip->close();
} else {
    echo 'failed, code:' . $res;
}
?>


Устанавливает комментарий к ZIP-архиву

  • « ZipArchive::renameName
  • ZipArchive::setCommentIndex »
  • PHP Manual
  • ZipArchive
  • Устанавливает комментарий к ZIP-архиву

ZipArchive::setArchiveComment

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::setArchiveComment — Устанавливает комментарий к ZIP-архиву

Описание

bool ZipArchive::setArchiveComment ( string $comment )

Устанавливает комментарий к ZIP-архиву.

Список параметров

comment

Содержание комментария.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание архива и установка комментария

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'file content goes here');
    $zip->setArchiveComment('new archive comment');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


Устанавливает комментарий к элементу по его индексу

  • « ZipArchive::setArchiveComment
  • ZipArchive::setCommentName »
  • PHP Manual
  • ZipArchive
  • Устанавливает комментарий к элементу по его индексу

ZipArchive::setCommentIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::setCommentIndex — Устанавливает комментарий к элементу по его индексу

Описание

bool ZipArchive::setCommentIndex ( int $index , string $comment )

Устанавливает комментарий к элементу по его индексу.

Список параметров

index

Индекс элемента.

comment

Содержание комментария.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Открывает архив и устанавливает комментарий к элементу

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->setCommentIndex(2, 'new entry comment');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


Устанавливает комментарий к элементу, заданному по имени

  • « ZipArchive::setCommentIndex
  • ZipArchive::setCompressionIndex »
  • PHP Manual
  • ZipArchive
  • Устанавливает комментарий к элементу, заданному по имени

ZipArchive::setCommentName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.4.0)

ZipArchive::setCommentName — Устанавливает комментарий к элементу, заданному по имени

Описание

bool ZipArchive::setCommentName ( string $name , string $comment )

Устанавливает комментарий к элементу, заданному по имени.

Список параметров

name

Имя элемента.

comment

Содержание комментария.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Открытие архива и установка комментария к элементу

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    $zip->setCommentName('entry1.txt', 'new entry comment');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


Set the compression method of an entry defined by its index

  • « ZipArchive::setCommentName
  • ZipArchive::setCompressionName »
  • PHP Manual
  • ZipArchive
  • Set the compression method of an entry defined by its index

ZipArchive::setCompressionIndex

(PHP 7, PECL zip >= 1.13.0)

ZipArchive::setCompressionIndex — Set the compression method of an entry defined by its index

Описание

bool ZipArchive::setCompressionIndex ( int $index , int $comp_method [, int $comp_flags = 0 ] )

Set the compression method of an entry defined by its index.

Список параметров

index

Index of the entry.

comp_method

The compression method. Either
ZipArchive::CM_DEFAULT,
ZipArchive::CM_STORE or
ZipArchive::CM_DEFLATE.

comp_flags

Compression flags. Currently unused.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Add files with different compression methods to an archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('foo', 'Some text');
    $zip->addFromString('bar', 'Some other text');
    $zip->setCompressionIndex(0, ZipArchive::CM_STORE);
    $zip->setCompressionIndex(1, ZipArchive::CM_DEFLATE);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


Set the compression method of an entry defined by its name

  • « ZipArchive::setCompressionIndex
  • ZipArchive::setExternalAttributesIndex »
  • PHP Manual
  • ZipArchive
  • Set the compression method of an entry defined by its name

ZipArchive::setCompressionName

(PHP 7, PECL zip >= 1.13.0)

ZipArchive::setCompressionName — Set the compression method of an entry defined by its name

Описание

bool ZipArchive::setCompressionName ( string $name , int $comp_method [, int $comp_flags = 0 ] )

Set the compression method of an entry defined by its name.

Список параметров

name

Name of the entry.

comp_method

The compression method. Either
ZipArchive::CM_DEFAULT,
ZipArchive::CM_STORE or
ZipArchive::CM_DEFLATE.

comp_flags

Compression flags. Currently unused.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Add files with different compression methods to an archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('foo', 'Some text');
    $zip->addFromString('bar', 'Some other text');
    $zip->setCompressionName('foo', ZipArchive::CM_STORE);
    $zip->setCompressionName('bar', ZipArchive::CM_DEFLATE);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>


Set the external attributes of an entry defined by its index

  • « ZipArchive::setCompressionName
  • ZipArchive::setExternalAttributesName »
  • PHP Manual
  • ZipArchive
  • Set the external attributes of an entry defined by its index

ZipArchive::setExternalAttributesIndex

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesIndex — Set the external attributes of an entry defined by its index

Описание

bool ZipArchive::setExternalAttributesIndex ( int $index , int $opsys , int $attr [, int $flags ] )

Set the external attributes of an entry defined by its index.

Список параметров

index

Index of the entry.

opsys

The operating system code defined by one of the ZipArchive::OPSYS_ constants.

attr

The external attributes. Value depends on operating system.

flags

Optional flags. Currently unused.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка внешних атрибутов записи, заданной по имени

  • « ZipArchive::setExternalAttributesIndex
  • ZipArchive::setPassword »
  • PHP Manual
  • ZipArchive
  • Установка внешних атрибутов записи, заданной по имени

ZipArchive::setExternalAttributesName

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::setExternalAttributesName — Установка внешних атрибутов записи, заданной по имени

Описание

bool ZipArchive::setExternalAttributesName ( string $name , int $opsys , int $attr [, int $flags ] )

Установка внешних атрибутов записи, заданной по имени.

Список параметров

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 "Ok\n";
} else {
    echo "KO\n";
}
?>


Установка пароля для активного архива

  • « ZipArchive::setExternalAttributesName
  • ZipArchive::statIndex »
  • PHP Manual
  • ZipArchive
  • Установка пароля для активного архива

ZipArchive::setPassword

(PHP 5 >= 5.6.0, PHP 7, PECL zip >= 1.12.4)

ZipArchive::setPassword — Установка пароля для активного архива

Описание

public bool ZipArchive::setPassword ( string $password )

Задает пароль для активного архива.

Список параметров

password

Пароль для архива.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Эта функция устанавливает пароль только для распаковки архива; он не превратит не защищенный ZipArchive в защищенный паролем ZipArchive.


Получение детальной информации о элементе по его индексу

  • « ZipArchive::setPassword
  • ZipArchive::statName »
  • PHP Manual
  • ZipArchive
  • Получение детальной информации о элементе по его индексу

ZipArchive::statIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::statIndex — Получение детальной информации о элементе по его индексу

Описание

array ZipArchive::statIndex ( int $index [, int $flags ] )

Получение детальной информации о элементе по его индексу.

Список параметров

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 'failed, code:' . $res;
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


Получение детальной информации о элементе по его имени

  • « ZipArchive::statIndex
  • ZipArchive::unchangeAll »
  • PHP Manual
  • ZipArchive
  • Получение детальной информации о элементе по его имени

ZipArchive::statName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::statName — Получение детальной информации о элементе по его имени

Описание

array ZipArchive::statName ( string $name [, int $flags ] )

Получение детальной информации о элементе по его имени.

Список параметров

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 'failed, code:' . $res;
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name] => foobar/baz
    [index] => 3
    [crc] => 499465816
    [size] => 27
    [mtime] => 1123164748
    [comp_size] => 24
    [comp_method] => 8
)


Отменяет все изменения, сделанные в архиве

  • « ZipArchive::statName
  • ZipArchive::unchangeArchive »
  • PHP Manual
  • ZipArchive
  • Отменяет все изменения, сделанные в архиве

ZipArchive::unchangeAll

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::unchangeAll — Отменяет все изменения, сделанные в архиве

Описание

bool ZipArchive::unchangeAll ( void )

Отменяет все изменения, сделанные в архиве.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает все глобальные изменения, сделанные в архиве

  • « ZipArchive::unchangeAll
  • ZipArchive::unchangeIndex »
  • PHP Manual
  • ZipArchive
  • Возвращает все глобальные изменения, сделанные в архиве

ZipArchive::unchangeArchive

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::unchangeArchive — Возвращает все глобальные изменения, сделанные в архиве

Описание

bool ZipArchive::unchangeArchive ( void )

Возвращает все глобальные изменения, сделанные в архиве. В данный момент только отменяет изменения в комментариях к архиву.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Отменяет все изменения у позиции с заданным индексом

  • « ZipArchive::unchangeArchive
  • ZipArchive::unchangeName »
  • PHP Manual
  • ZipArchive
  • Отменяет все изменения у позиции с заданным индексом

ZipArchive::unchangeIndex

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::unchangeIndex — Отменяет все изменения у позиции с заданным индексом

Описание

bool ZipArchive::unchangeIndex ( int $index )

Отменяет все измения у позиции с заданным индексом.

Список параметров

index

Индекс позиции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Отменяет все измения у позиции с заданным именем

  • « ZipArchive::unchangeIndex
  • Zip Функции »
  • PHP Manual
  • ZipArchive
  • Отменяет все измения у позиции с заданным именем

ZipArchive::unchangeName

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.5.0)

ZipArchive::unchangeName — Отменяет все измения у позиции с заданным именем

Описание

bool ZipArchive::unchangeName ( string $name )

Отменяет все измения у позиции с заданным именем.

Список параметров

name

Имя позиции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Zip Функции

Содержание

  • zip_close — Закрывает дескриптор ZIP-архива
  • zip_entry_close — Закрывает дескриптор директории
  • zip_entry_compressedsize — Возвращает сжатый размер файла для дескриптора директории
  • zip_entry_compressionmethod — Возвращает метод сжатия дескриптора директории
  • zip_entry_filesize — Возвращает реальный размер файла для дескриптора директории
  • zip_entry_name — Получает имя дескриптора директории
  • zip_entry_open — Открывает директорию для чтения
  • zip_entry_read — Читает данные из открытого ранее дескриптора директории
  • zip_open — Открывает ZIP-архив
  • zip_read — Считывает следующую запись в ZIP-архиве


Закрывает дескриптор ZIP-архива

  • « Zip Функции
  • zip_entry_close »
  • PHP Manual
  • Zip Функции
  • Закрывает дескриптор ZIP-архива

zip_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_close — Закрывает дескриптор ZIP-архива

Описание

void zip_close ( resource $zip )

Закрывает дескриптор ZIP-архива.

Список параметров

zip

ZIP-файл должен быть открыт с помощью функции zip_open().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_read() - Считывает следующую запись в ZIP-архиве


Закрывает дескриптор директории

  • « zip_close
  • zip_entry_compressedsize »
  • PHP Manual
  • Zip Функции
  • Закрывает дескриптор директории

zip_entry_close

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_close — Закрывает дескриптор директории

Описание

bool zip_entry_close ( resource $zip_entry )

Закрывает заданный дескриптор директории.

Список параметров

zip_entry

Дескриптор директории, ранее открытый функцией zip_entry_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • zip_entry_open() - Открывает директорию для чтения
  • zip_entry_read() - Читает данные из открытого ранее дескриптора директории


Возвращает сжатый размер файла для дескриптора директории

  • « zip_entry_close
  • zip_entry_compressionmethod »
  • PHP Manual
  • Zip Функции
  • Возвращает сжатый размер файла для дескриптора директории

zip_entry_compressedsize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_compressedsize — Возвращает сжатый размер файла для дескриптора директории

Описание

int zip_entry_compressedsize ( resource $zip_entry )

Возвращает сжатый размер заданного дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Сжатый размер дескриптора директории.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_read() - Считывает следующую запись в ZIP-архиве


Возвращает метод сжатия дескриптора директории

  • « zip_entry_compressedsize
  • zip_entry_filesize »
  • PHP Manual
  • Zip Функции
  • Возвращает метод сжатия дескриптора директории

zip_entry_compressionmethod

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_compressionmethod — Возвращает метод сжатия дескриптора директории

Описание

string zip_entry_compressionmethod ( resource $zip_entry )

Возвращает метод сжатия дескриптора директории, заданного в zip_entry.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Метод сжатия.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_read() - Считывает следующую запись в ZIP-архиве


Возвращает реальный размер файла для дескриптора директории

  • « zip_entry_compressionmethod
  • zip_entry_name »
  • PHP Manual
  • Zip Функции
  • Возвращает реальный размер файла для дескриптора директории

zip_entry_filesize

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_filesize — Возвращает реальный размер файла для дескриптора директории

Описание

int zip_entry_filesize ( resource $zip_entry )

Возвращает реальный размер заданного дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Реальный размер дескриптора директории.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_read() - Считывает следующую запись в ZIP-архиве


Получает имя дескриптора директории

  • « zip_entry_filesize
  • zip_entry_open »
  • PHP Manual
  • Zip Функции
  • Получает имя дескриптора директории

zip_entry_name

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_name — Получает имя дескриптора директории

Описание

string zip_entry_name ( resource $zip_entry )

Возвращает имя заданного дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

Возвращаемые значения

Имя дескриптора директории.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_read() - Считывает следующую запись в ZIP-архиве


Открывает директорию для чтения

  • « zip_entry_name
  • zip_entry_read »
  • PHP Manual
  • Zip Функции
  • Открывает директорию для чтения

zip_entry_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_open — Открывает директорию для чтения

Описание

bool zip_entry_open ( resource $zip , resource $zip_entry [, string $mode ] )

Открывает директорию, входящую в ZIP-архив, для чтения.

Список параметров

zip

Дескриптор, возвращаемый функцией zip_open().

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

mode

Доступные режимы приведены в документации к функции fopen().

Замечание:

В настоящее время параметр mode игнорируется и всегда имеет значение "rb". Это связано с тем, что ZIP в PHP поддерживается только в режиме чтения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Замечание:

В отличии от функции fopen() и других подобных функций, значение, возвращаемое функцией zip_entry_open() только информирует нас о результате выполнения операции и не требуется для последующего чтения или закрытия дескриптора директории.

Смотрите также

  • zip_entry_close() - Закрывает дескриптор директории
  • zip_entry_read() - Читает данные из открытого ранее дескриптора директории


Читает данные из открытого ранее дескриптора директории

  • « zip_entry_open
  • zip_open »
  • PHP Manual
  • Zip Функции
  • Читает данные из открытого ранее дескриптора директории

zip_entry_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_entry_read — Читает данные из открытого ранее дескриптора директории

Описание

string zip_entry_read ( resource $zip_entry [, int $length = 1024 ] )

Читает данные из открытого ранее дескриптора директории.

Список параметров

zip_entry

Дескриптор директории, возвращаемый функцией zip_read().

length

Число байт, которое нужно считать.

Замечание:

В параметре необходимо указывать объем данных, которые вы хотите считать, без учета сжатия.

Возвращаемые значения

Возвращает считанные данные, или пустую строку, если достигнут конец файла, или FALSE в случае ошибки.

Смотрите также

  • zip_entry_open() - Открывает директорию для чтения
  • zip_entry_close() - Закрывает дескриптор директории
  • zip_entry_filesize() - Возвращает реальный размер файла для дескриптора директории


Открывает ZIP-архив

  • « zip_entry_read
  • zip_read »
  • PHP Manual
  • Zip Функции
  • Открывает ZIP-архив

zip_open

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_open — Открывает ZIP-архив

Описание

resource zip_open ( string $filename )

Открывает ZIP-архив для чтения.

Список параметров

filename

Имя файла ZIP-архива для открытия.

Возвращаемые значения

Возвращает ссылку на ресурс для последующего использования с функциями zip_read() и zip_close() либо возвращает номер ошибки, если filename не существует или в случае другой ошибки.

Смотрите также

  • zip_read() - Считывает следующую запись в ZIP-архиве
  • zip_close() - Закрывает дескриптор ZIP-архива


Считывает следующую запись в ZIP-архиве

  • « zip_open
  • Zlib »
  • PHP Manual
  • Zip Функции
  • Считывает следующую запись в ZIP-архиве

zip_read

(PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.0.0)

zip_read — Считывает следующую запись в ZIP-архиве

Описание

resource zip_read ( resource $zip )

Считывает следующую запись в ZIP-архиве.

Список параметров

zip

ZIP-файл, предварительно открытый с помощью функции zip_open().

Возвращаемые значения

Возвращает запись каталога для дальнейшего использования с функциями zip_entry_..., или FALSE, если больше нет записей для чтения, или код ошибки, если она произошла.

Смотрите также

  • zip_open() - Открывает ZIP-архив
  • zip_close() - Закрывает дескриптор ZIP-архива
  • zip_entry_open() - Открывает директорию для чтения
  • zip_entry_read() - Читает данные из открытого ранее дескриптора директории


Zlib

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Zlib;
    • deflate_add — Incrementally deflate data
    • deflate_init — Initialize an incremental deflate context
    • gzclose — Закрывает открытый gz-файл по его указателю
    • gzcompress — Сжимает строку
    • gzdecode — Распаковывает строку, упакованную с помощью gzip
    • gzdeflate — Сжимает строку
    • gzencode — Сжимает строку в формате gzip
    • gzeof — Проверяет, находится ли текущая позиция в конце (EOF) gz-файла
    • gzfile — Считывает весь gz-файл в массив
    • gzgetc — Возвращает символ из gz-файла
    • gzgets — Возвращает строку из gz-файла
    • gzgetss — Возвращает строку из gz-файла с удалёнными HTML-тегами
    • gzinflate — Распаковывает строку
    • gzopen — Открывает gz-файл
    • gzpassthru — Выводит все оставшиеся данные из указателя gz-файла.
    • gzputs — Псевдоним gzwrite
    • gzread — Бинарное чтение gz-файла
    • gzrewind — Перемещает указатель на позицию в gz-файле в начало
    • gzseek — Перемещает указатель на позицию в gz-файле
    • gztell — Возвращает текущую позицию для чтения/записи в gz-файле
    • gzuncompress — Распаковывает строку
    • gzwrite — Бинарная запись в gz-файл
    • inflate_add — Incrementally inflate encoded data
    • inflate_init — Initialize an incremental inflate context
    • readgzfile — Выводит содержимое gz-файла
    • zlib_decode — Распаковывает любые raw/gzip/zlib закодированные данные
    • zlib_encode — Запаковывает данные с указанным кодированием
    • zlib_get_coding_type — Возвращает способ кодирования, используемый для сжатия вывода


Введение

Этот модуль позволяет прозрачно читать и писать сжатые файлы gzip (.gz) стандартным методом наподобие функций файловой системы, которые работают с обычными несжатыми файлами (исключение составляют только сокеты).

Замечание:

В версии 4.0.4 появилась новая fopen-обертка для .gz-файлов, и вы можете использовать специальный URL zlib: для прозрачного доступа к сжатым файлам, используя обычные функции f*() доступа к файлам. Для этого необходимо добавить префикс zlib: в начало пути к файлу при вызове fopen(). Эта возможность требует наличия библиотеки С, в которой есть функция fopencookie(). До настоящего момента только библиотека GNU libc предоставляет эту возможность.

В версии 4.3.0, префикс zlib: изменился на compress.zlib:// для предотвращения многозначности с именами файлов, содержащих ':' в имени. Функция fopencookie() больше не требуется. Больше информации доступно в разделе о zlib://.


Требования

Этот модуль использует библиотеку » zlib, написанную Jean-loup Gailly и Mark Adler. Требуется zlib версии >= 1.0.9.


Установка

Поддержка Zlib в PHP отключена по умолчанию. Чтобы включить её, используйте опцию --with-zlib[=DIR] во время сборки.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание: Под Windows поддержка zlib включена начиная с PHP версии 4.3.0.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Модуль zlib предоставляет возможность сжатия передаваемых страниц (в т.ч. динамических) на лету, если браузер это поддерживает. За сжатие отвечают три параметра в конфигурационном файле php.ini.

Конфигурационные параметры Zlib
Имя | По умолчанию | Меняемо | Список изменений
zlib.output_compression | "0" | PHP_INI_ALL | Доступно с PHP 4.0.5.
zlib.output_compression_level | "-1" | PHP_INI_ALL | Доступно с PHP 4.3.0.
zlib.output_handler | "" | PHP_INI_ALL | Доступно с PHP 4.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

zlib.output_compression boolean/integer

Следует ли сжимать страницы. Если значение равно "On" в php.ini (или в настройках Apache), страницы будут сжиматься, если браузер посылает заголовок "Accept-Encoding: gzip" или "deflate". При этом в вывод будут добавлены заголовки "Content-Encoding: gzip" (соответственно "deflate") и "Vary: Accept-Encoding". В режиме исполнения, заголовок должен быть установлен до момента отправки.

Аргументы также могут быть целочисленного типа, а не логического "On/Off", с помощью этого вы можете устанавливать размер выходного буфера (по умолчанию равен 4 КБ).

Замечание:

output_handler должен быть пустым, если выбрано значение 'On'! Вместо него следует использовать zlib.output_handler.

zlib.output_compression_level integer

Уровень сжатия используется для прозрачного сжатия вывода. Укажите значение между 0 (без сжатия) и 9 (максимальное сжатие). По умолчанию значение -1 позволяет серверу решать, какой уровень использовать.

zlib.output_handler string

Если zlib.output_compression активирован, нельзя указывать дополнительные обработчики вывода (output handlers). Этот параметр выполняет то же, что и output_handler, но в ином порядке.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Этот модуль определяет ресурс дескриптора, который возвращается функцией gzopen().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

FORCE_GZIP (integer)
FORCE_DEFLATE (integer)
ZLIB_ENCODING_RAW (integer)
Аглоритм компрессии DEFLATE по RFC 1951. Доступно с PHP 7.0.0.
ZLIB_ENCODING_DEFLATE (integer)
Аглоритм компрессии ZLIB по RFC 1950. Доступно с PHP 7.0.0.
ZLIB_ENCODING_GZIP (integer)
Алгоритм компрессии GZIP по RFC 1952. Доступно с PHP 7.0.0.
ZLIB_FILTERED (integer)
Доступно с PHP 7.0.0.
ZLIB_HUFFMAN_ONLY (integer)
Доступно с PHP 7.0.0.
ZLIB_FIXED (integer)
Доступно с PHP 7.0.0.
ZLIB_RLE (integer)
Доступно с PHP 7.0.0.
ZLIB_DEFAULT_STRATEGY (integer)
Доступно с PHP 7.0.0.
ZLIB_BLOCK (integer)
Доступно с PHP 7.0.0.
ZLIB_NO_FLUSH (integer)
Доступно с PHP 7.0.0.
ZLIB_PARTIAL_FLUSH (integer)
Доступно с PHP 7.0.0.
ZLIB_SYNC_FLUSH (integer)
Доступно с PHP 7.0.0.
ZLIB_FULL_FLUSH (integer)
Доступно с PHP 7.0.0.
ZLIB_FINISH (integer)
Доступно с PHP 7.0.0.


Примеры

В данном примере открывается временный файл, в него записывается строка, затем дважды печатается содержимое этого файла.

Пример #1 Небольшой пример использования Zlib

<?php

$filename = tempnam('/tmp', 'zlibtest') . '.gz';
echo "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Only a test, test, test, test, test, test, test, test!\n";

// открыть файл для записи с максимальным сжатием
$zp = gzopen($filename, "w9");

// записать строку в файл
gzwrite($zp, $s);

// Закрыть файл
gzclose($zp);

// открыть файл для чтения
$zp = gzopen($filename, "r");

// прочитать три символа
echo gzread($zp, 3);

// выводить до конца файла, затем закрыть его
gzpassthru($zp);
gzclose($zp);

echo "\n";

// открыть файл и напечатать его содержимое (во второй раз)
if (readgzfile($filename) != strlen($s)) {
     echo "Возникла ошибка с zlib функциями!";
}
unlink($filename);
echo "</pre>\n</body>\n</html>\n";

?>

Пример #2 Работа с API инкрементальной компрессии и декомпрессии, с PHP 7.0.0

// Выполняем компрессию GZIP:
$deflateContext = deflate_init(ZLIB_ENCODING_GZIP);
$compressed = deflate_add($deflateContext, "Data to compress", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", more data", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", and even more data!", ZLIB_FINISH);?>

// Выполняем декомпрессию GZIP:
$inflateContext = inflate_init(ZLIB_ENCODING_GZIP);
$uncompressed = inflate_add($inflateContext, $compressed, ZLIB_NO_FLUSH);
$uncompressed .= inflate_add($inflateContext, NULL, ZLIB_FINISH);
echo $uncompressed;

Результат выполнения данного примера:

Data to compress, more data, and even more data!


Zlib;

Содержание

  • deflate_add — Incrementally deflate data
  • deflate_init — Initialize an incremental deflate context
  • gzclose — Закрывает открытый gz-файл по его указателю
  • gzcompress — Сжимает строку
  • gzdecode — Распаковывает строку, упакованную с помощью gzip
  • gzdeflate — Сжимает строку
  • gzencode — Сжимает строку в формате gzip
  • gzeof — Проверяет, находится ли текущая позиция в конце (EOF) gz-файла
  • gzfile — Считывает весь gz-файл в массив
  • gzgetc — Возвращает символ из gz-файла
  • gzgets — Возвращает строку из gz-файла
  • gzgetss — Возвращает строку из gz-файла с удалёнными HTML-тегами
  • gzinflate — Распаковывает строку
  • gzopen — Открывает gz-файл
  • gzpassthru — Выводит все оставшиеся данные из указателя gz-файла.
  • gzputs — Псевдоним gzwrite
  • gzread — Бинарное чтение gz-файла
  • gzrewind — Перемещает указатель на позицию в gz-файле в начало
  • gzseek — Перемещает указатель на позицию в gz-файле
  • gztell — Возвращает текущую позицию для чтения/записи в gz-файле
  • gzuncompress — Распаковывает строку
  • gzwrite — Бинарная запись в gz-файл
  • inflate_add — Incrementally inflate encoded data
  • inflate_init — Initialize an incremental inflate context
  • readgzfile — Выводит содержимое gz-файла
  • zlib_decode — Распаковывает любые raw/gzip/zlib закодированные данные
  • zlib_encode — Запаковывает данные с указанным кодированием
  • zlib_get_coding_type — Возвращает способ кодирования, используемый для сжатия вывода


Incrementally deflate data

  • « Zlib;
  • deflate_init »
  • PHP Manual
  • Zlib;
  • Incrementally deflate data

deflate_add

(PHP 7)

deflate_add — Incrementally deflate data

Описание

string deflate_add ( resource $context , string $data [, int $flush_mode = ZLIB_SYNC_FLUSH ] )

Incrementally deflates data in the specified context.

Список параметров

context

A context created with deflate_init().

data

A chunk of data to compress.

flush_mode

One of ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH (default), ZLIB_FULL_FLUSH, ZLIB_FINISH. Normally you will want to set ZLIB_NO_FLUSH to maximize compression, and ZLIB_FINISH to terminate with the last chunk of data. See the » zlib manual for a detailed description of these constants.

Возвращаемые значения

Returns a chunk of compressed data, или FALSE в случае возникновения ошибки.

Ошибки

If invalid arguments are given, an error of level E_WARNING is generated.

Смотрите также

  • deflate_init() - Initialize an incremental deflate context


Initialize an incremental deflate context

  • « deflate_add
  • gzclose »
  • PHP Manual
  • Zlib;
  • Initialize an incremental deflate context

deflate_init

(PHP 7)

deflate_init — Initialize an incremental deflate context

Описание

resource deflate_init ( int $encoding [, array $options = array() ] )

Initializes an incremental deflate context using the specified encoding.

Note that the window option here only sets the window size of the algorithm, differently from the zlib filters where the same parameter also sets the encoding to use; the encoding must be set with the encoding parameter.

Limitation: there is currently no way to set the header information on a GZIP compressed stream, which are set as follows: GZIP signature (\x1f\x8B); compression method (\x08 == DEFLATE); 6 zero bytes; the operating system set to the current system (\x00 = Windows, \x03 = Unix, etc.)

Список параметров

encoding

One of the ZLIB_ENCODING_* constants.

options

An associative array which may contain the following elements:

level

The compression level in range -1..9; defaults to -1.

memory

The compression memory level in range 1..9; defaults to 8.

window

The zlib window size (logarithmic) in range 8..15; defaults to 15.

strategy

One of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY (the default).

dictionary

A string or an array of strings of the preset dictionary (default: no preset dictionary).

Возвращаемые значения

Returns a deflate context resource (zlib.deflate) on success, или FALSE в случае возникновения ошибки.

Ошибки

If an invalid option is passed to options or the context couldn't be created, an error of level E_WARNING is generated.

Смотрите также

  • deflate_add() - Incrementally deflate data
  • inflate_init() - Initialize an incremental inflate context


Закрывает открытый gz-файл по его указателю

  • « deflate_init
  • gzcompress »
  • PHP Manual
  • Zlib;
  • Закрывает открытый gz-файл по его указателю

gzclose

(PHP 4, PHP 5, PHP 7)

gzclose — Закрывает открытый gz-файл по его указателю

Описание

bool gzclose ( resource $zp )

Закрывает открытый gz-файл по его указателю.

Список параметров

zp

Указатель на gz-файл. Должен указывать на файл, успешно открытый gzopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования gzclose()

<?php
$gz = gzopen('somefile.gz','w9');
gzputs ($gz, 'Добавлено в файл somefile.gz');
gzclose($gz);
?>

Смотрите также

  • gzopen() - Открывает gz-файл


Сжимает строку

  • « gzclose
  • gzdecode »
  • PHP Manual
  • Zlib;
  • Сжимает строку

gzcompress

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

gzcompress — Сжимает строку

Описание

string gzcompress ( string $data [, int $level = -1 [, int $encoding = ZLIB_ENCODING_DEFLATE ]] )

Данная функция сжимает строку используя формат данных ZLIB.

Подробнее про алгоритм сжатия ZLIB см. документ "» Формат сжатия ZLIB. Спецификация версии 3.3" (RFC 1950).

Замечание:

ZLIB -- это не gzip-сжатие, которое включает в себя некоторые данные заголовка. Информацию о gzip-сжатии см. gzencode().

Список параметров

data

Данные для сжатия.

level

Уровень сжатия. Целое число от 0 до 9 (0 - без сжатия, 9 - максимальное сжатие).

Если используется значение -1, то будет установлен принятый в библиотеке zlib по умолчанию уровень сжатия, который равен 6.

encoding

Одна из ZLIB_ENCODING_* констант.

Возвращаемые значения

Сжатая строка или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования gzcompress()

<?php
$compressed = gzcompress('Сожми меня', 9);
echo $compressed;
?>

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр encoding.

Смотрите также

  • gzdeflate() - Сжимает строку
  • gzinflate() - Распаковывает строку
  • gzuncompress() - Распаковывает строку
  • gzencode() - Сжимает строку в формате gzip


Распаковывает строку, упакованную с помощью gzip

  • « gzcompress
  • gzdeflate »
  • PHP Manual
  • Zlib;
  • Распаковывает строку, упакованную с помощью gzip

gzdecode

(PHP 5 >= 5.4.0, PHP 7)

gzdecode — Распаковывает строку, упакованную с помощью gzip

Описание

string gzdecode ( string $data [, int $length ] )

Эта функция возвращает распакованную версию входных данных. data.

Список параметров

data

Данные для распаковки, упакованные с помощью gzencode().

length

Максимальный размер строки для распаковки.

Возвращаемые значения

Распакованная строка или FALSE, если произошла ошибка.

Смотрите также

  • gzencode() - Сжимает строку в формате gzip


Сжимает строку

  • « gzdecode
  • gzencode »
  • PHP Manual
  • Zlib;
  • Сжимает строку

gzdeflate

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gzdeflate — Сжимает строку

Описание

string gzdeflate ( string $data [, int $level = -1 [, int $encoding = ZLIB_ENCODING_RAW ]] )

Данная функция сжимает строку, используя формат данных DEFLATE.

Подробности об алгоритме сжатия DEFLATE см. "» Формат сжатия данных DEFLATE. Спецификация версии 1.3" (RFC 1951).

Список параметров

data

Данные для сжатия.

level

Уровень сжатия. 0 - без сжатия, 9 - максимум. Если не указан, будет использоваться уровень сжатия по умолчанию библиотеки zlib.

encoding

Одна из ZLIB_ENCODING_* констант.

Возвращаемые значения

Сжатая строка или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования gzdeflate()

<?php
$compressed = gzdeflate('Сожми меня', 9);
echo $compressed;
?>

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр encoding.

Смотрите также

  • gzinflate() - Распаковывает строку
  • gzcompress() - Сжимает строку
  • gzuncompress() - Распаковывает строку
  • gzencode() - Сжимает строку в формате gzip


Сжимает строку в формате gzip

  • « gzdeflate
  • gzeof »
  • PHP Manual
  • Zlib;
  • Сжимает строку в формате gzip

gzencode

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gzencode — Сжимает строку в формате gzip

Описание

string gzencode ( string $data [, int $level = -1 [, int $encoding_mode = FORCE_GZIP ]] )

Возвращает сжатую версию входных данных data, аналогично выводу программы gzip.

Подробности о формате GZIP см. » Формат файла GZIP. Спецификация версии 4.3 (RFC 1952).

Список параметров

data

Данные для сжатия.

level

Уровень сжатия. 0 - без сжатия, 9 - максимальное сжатие. Если не указано, будет использоваться уровень сжатия по умолчанию библиотеки zlib.

encoding_mode

Режим сжатия, может быть FORCE_GZIP (по умолчанию) или FORCE_DEFLATE.

До PHP 5.4.0 в случае использования FORCE_DEFLATE, возвращалась строка, сжатая по стандартному алгоритму zlib deflate (с заголовками zlib) после заголовка файла gzip, но без проверочной суммы crc32 в конце.

Начиная с версии PHP 5.4.0, использование константы FORCE_DEFLATE генерирует вывод, совместимый с RFC 1950, состоящий из заголовка zlib, сжатых данных и контрольной суммы Adler.

Возвращаемые значения

Сжатая строка или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.4.0 | FORCE_DEFLATE теперь генерирует вывод, совместимый с RFC 1950.

Примеры

Возвращаемые данные будут содержать соответствующие заголовки и структуры данных как в обычном .gz-файле, например:

Пример #1 Создание файла gzip

<?php
$data = implode("", file("bigfile.txt"));
$gzdata = gzencode($data, 9);
$fp = fopen("bigfile.txt.gz", "w");
fwrite($fp, $gzdata);
fclose($fp);
?>

Смотрите также

  • gzdecode() - Распаковывает строку, упакованную с помощью gzip
  • gzdeflate() - Сжимает строку
  • gzinflate() - Распаковывает строку
  • gzuncompress() - Распаковывает строку
  • gzcompress() - Сжимает строку
  • » Спецификация ZLIB Compressed Data (RFC 1950)


Проверяет, находится ли текущая позиция в конце (EOF) gz-файла

  • « gzencode
  • gzfile »
  • PHP Manual
  • Zlib;
  • Проверяет, находится ли текущая позиция в конце (EOF) gz-файла

gzeof

(PHP 4, PHP 5, PHP 7)

gzeof — Проверяет, находится ли текущая позиция в конце (EOF) gz-файла

Описание

int gzeof ( resource $zp )

Проверяет, соответствует ли позиция указателя в GZ-файле позиции EOF (end-of-file, конец файла).

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Возвращает TRUE если позиция указателя в gz-файле соответствует EOF или в случае ошибки; иначе возвращает FALSE.

Примеры

Пример #1 Пример использования gzeof()

<?php
$gz = gzopen('somefile.gz', 'r');
while (!gzeof($gz)) {
  echo gzgetc($gz);
}
gzclose($gz);
?>


Считывает весь gz-файл в массив

  • « gzeof
  • gzgetc »
  • PHP Manual
  • Zlib;
  • Считывает весь gz-файл в массив

gzfile

(PHP 4, PHP 5, PHP 7)

gzfile — Считывает весь gz-файл в массив

Описание

array gzfile ( string $filename [, int $use_include_path = 0 ] )

Аналогична readgzfile(), но возвращает файл, разбитый построчно на массив.

Список параметров

filename

Имя файла.

use_include_path

Если вы хотите, чтобы также проверялось наличие файла в директориях include_path, установите значение этого аргумента в 1.

Возвращаемые значения

Массив строк файла, в каждом элементе массива находится одна строка, пустые строки включаются, включая переносы строк.

Примеры

Пример #1 Пример использования gzfile()

<?php
$lines = gzfile('somefile.gz');
foreach ($lines as $line) {
    echo $line;
}
?>

Смотрите также

  • readgzfile() - Выводит содержимое gz-файла
  • gzopen() - Открывает gz-файл


Возвращает символ из gz-файла

  • « gzfile
  • gzgets »
  • PHP Manual
  • Zlib;
  • Возвращает символ из gz-файла

gzgetc

(PHP 4, PHP 5, PHP 7)

gzgetc — Возвращает символ из gz-файла

Описание

string gzgetc ( resource $zp )

Возвращает один символ (после распаковки) из gz-файла по его указателю.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Символ (после распаковки) или FALSE в случае EOF (в отличие от gzeof()).

Примеры

Пример #1 Пример использования gzgetc()

<?php
$gz = gzopen('somefile.gz', 'r');
while (!gzeof($gz)) {
  echo gzgetc($gz);
}
gzclose($gz);
?>

Смотрите также

  • gzopen() - Открывает gz-файл
  • gzgets() - Возвращает строку из gz-файла


Возвращает строку из gz-файла

  • « gzgetc
  • gzgetss »
  • PHP Manual
  • Zlib;
  • Возвращает строку из gz-файла

gzgets

(PHP 4, PHP 5, PHP 7)

gzgets — Возвращает строку из gz-файла

Описание

string gzgets ( resource $zp [, int $length ] )

Возвращает строку (после распаковки) из gz-файла, её длина ограничивается length - 1 байтами. Чтение заканчивается при достижении максимальной длины, конца строки или конца файла (EOF).

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

length

Максимальный размер возвращаемых данных.

Возвращаемые значения

Распакованная строка или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования gzgets()

<?php
$handle = gzopen('somefile.gz', 'r');
while (!gzeof($handle)) {
   $buffer = gzgets($handle, 4096);
   echo $buffer;
}
gzclose($handle);
?>

Смотрите также

  • gzopen() - Открывает gz-файл
  • gzgetc() - Возвращает символ из gz-файла
  • gzwrite() - Бинарная запись в gz-файл


Возвращает строку из gz-файла с удалёнными HTML-тегами

  • « gzgets
  • gzinflate »
  • PHP Manual
  • Zlib;
  • Возвращает строку из gz-файла с удалёнными HTML-тегами

gzgetss

(PHP 4, PHP 5, PHP 7)

gzgetss — Возвращает строку из gz-файла с удалёнными HTML-тегами

Описание

string gzgetss ( resource $zp , int $length [, string $allowable_tags ] )

Аналогично 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() - Возвращает строку из gz-файла
  • strip_tags() - Удаляет HTML и PHP-теги из строки


Распаковывает строку

  • « gzgetss
  • gzopen »
  • PHP Manual
  • Zlib;
  • Распаковывает строку

gzinflate

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gzinflate — Распаковывает строку

Описание

string gzinflate ( string $data [, int $length = 0 ] )

Распаковывает сжатую строку.

Список параметров

data

Данные, сжатые функцией gzdeflate().

length

Максимальный размер данных для распаковки.

Возвращаемые значения

Распакованные данные или FALSE в случае ошибки.

Функция также сообщит об ошибке в случае, если несжатые данные в 32768 раз больше размера сжатых данных data или больше параметра length.

Примеры

Пример #1 Пример использования gzinflate()

<?php
$compressed   = gzdeflate('Сожми меня', 9);
$uncompressed = gzinflate($compressed);
echo $uncompressed;
?>

Смотрите также

  • gzdeflate() - Сжимает строку
  • gzcompress() - Сжимает строку
  • gzuncompress() - Распаковывает строку
  • gzencode() - Сжимает строку в формате gzip


Открывает gz-файл

  • « gzinflate
  • gzpassthru »
  • PHP Manual
  • Zlib;
  • Открывает gz-файл

gzopen

(PHP 4, PHP 5, PHP 7)

gzopen — Открывает gz-файл

Описание

resource gzopen ( string $filename , string $mode [, int $use_include_path = 0 ] )

Открывает файл gzip (.gz) для чтения или записи.

gzopen() также можно использовать для несжатых файлов (т.е. не в формате gzip). В этом случае gzread() вернёт файл напрямую без какой-либо обработки.

Список параметров

filename

Имя файла.

mode

Как в fopen() (rb или wb), но также может включать уровень сжатия (wb9) или стратегию: f для фильтрации данных как в wb6f, h для сжатия только по алгоритму Хаффмана как в wb1h (Для более детальной информации о параметре стратегии см. описание deflateInit2 в zlib.h).

use_include_path

Если вы хотите, чтобы поиск файла выполнялся также в директориях include_path, установите значение этого аргумента в 1.

Возвращаемые значения

Возвращает указатель на открытый файл, после чего всё, что вы читаете из этого дескриптора, будет автоматически распаковываться, а всё, что вы записываете - упаковываться.

В случае ошибки функция возвращает FALSE.

Примеры

Пример #1 Пример использования gzopen()

<?php
$fp = gzopen("/tmp/file.gz", "r");
?>

Смотрите также

  • gzclose() - Закрывает открытый gz-файл по его указателю


Выводит все оставшиеся данные из указателя gz-файла.

  • « gzopen
  • gzputs »
  • PHP Manual
  • Zlib;
  • Выводит все оставшиеся данные из указателя gz-файла.

gzpassthru

(PHP 4, PHP 5, PHP 7)

gzpassthru — Выводит все оставшиеся данные из указателя gz-файла.

Описание

int gzpassthru ( resource $zp )

Читает до конца файла (EOF) данные из указателя gz-файла, начиная с текущей позиции, и записывает результат (без сжатия) в стандартный вывод.

Замечание:

Используйте gzrewind(), чтобы переместить указатель на позицию в начало файла, если вы уже записывали данные в него.

Подсказка

Если вам нужно просто вывести содержимое файла без перемещения указателя на позицию или внесения изменений, используйте функцию readgzfile(), которая не требует вызова функции gzopen().

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Количество распакованных символов, полученных из gz, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования gzpassthru()

<?php
$fp = gzopen('file.gz', 'r');
gzpassthru($fp);
gzclose($fp);
?>


Псевдоним gzwrite

  • « gzpassthru
  • gzread »
  • PHP Manual
  • Zlib;
  • Псевдоним gzwrite

gzputs

(PHP 4, PHP 5, PHP 7)

gzputs — Псевдоним gzwrite()

Описание

Эта функция является псевдонимом: gzwrite().


Бинарное чтение gz-файла

  • « gzputs
  • gzrewind »
  • PHP Manual
  • Zlib;
  • Бинарное чтение gz-файла

gzread

(PHP 4, PHP 5, PHP 7)

gzread — Бинарное чтение gz-файла

Описание

string gzread ( resource $zp , int $length )

gzread() читает (распаковывая) до length байт из gz-файла по указателю на него. Чтение заканчивается при достижении максимального размера length распакованных данных или конца файла (EOF)

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

length

Количество байт (после распаковки), которые следует прочитать.

Возвращаемые значения

Прочтённые данные.

Примеры

Пример #1 Пример использования gzread()

<?php
// поместить содержимое gz-файла в строку
$filename = "/usr/local/something.txt.gz";
$zd = gzopen($filename, "r");
$contents = gzread($zd, 10000);
gzclose($zd);
?>

Смотрите также

  • gzwrite() - Бинарная запись в gz-файл
  • gzopen() - Открывает gz-файл
  • gzgets() - Возвращает строку из gz-файла
  • gzgetss() - Возвращает строку из gz-файла с удалёнными HTML-тегами
  • gzfile() - Считывает весь gz-файл в массив
  • gzpassthru() - Выводит все оставшиеся данные из указателя gz-файла.


Перемещает указатель на позицию в gz-файле в начало

  • « gzread
  • gzseek »
  • PHP Manual
  • Zlib;
  • Перемещает указатель на позицию в gz-файле в начало

gzrewind

(PHP 4, PHP 5, PHP 7)

gzrewind — Перемещает указатель на позицию в gz-файле в начало

Описание

bool gzrewind ( resource $zp )

Устанавливает указатель на позицию файла на начало потока этого файла.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gzseek() - Перемещает указатель на позицию в gz-файле
  • gztell() - Возвращает текущую позицию для чтения/записи в gz-файле


Перемещает указатель на позицию в gz-файле

  • « gzrewind
  • gztell »
  • PHP Manual
  • Zlib;
  • Перемещает указатель на позицию в gz-файле

gzseek

(PHP 4, PHP 5, PHP 7)

gzseek — Перемещает указатель на позицию в gz-файле

Описание

int gzseek ( resource $zp , int $offset [, int $whence = SEEK_SET ] )

Устанавливает указатель на позицию в файле, на который ссылается zp. Выполняется смещение потока этого файла на указанное количество байт. Эквивалентно вызову (в C) gzseek(zp, offset, SEEK_SET).

Если файл открыт для чтения, функция эмулируется, при этом будет работать очень медленно. Если файл открыт для записи, разрешено только перемещение вперёд; gzseek() при этом сжимает последовательность нулей до новой позиции.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

offset

Смещение.

whence

Значения параметра whence может быть одним из следующих:

  • SEEK_SET - Установить абсолютную позицию в offset байт.
  • SEEK_CUR - Установить позицию относительно текущего положения, добавив к ней offset.

Если whence не указан, используемое по умолчанию значение -- SEEK_SET.

Возвращаемые значения

При успешном завершении возвращает 0; иначе -1. Обратите внимание, что если установленное смещение перемещает указатель на позицию за EOF, это не является ошибкой.

Примеры

Пример #1 Пример использования gzseek()

<?php
$gz = gzopen('somefile.gz', 'r');
gzseek($gz,2);
echo gzgetc($gz);
gzclose($gz);
?>

Смотрите также

  • gztell() - Возвращает текущую позицию для чтения/записи в gz-файле
  • gzrewind() - Перемещает указатель на позицию в gz-файле в начало


Возвращает текущую позицию для чтения/записи в gz-файле

  • « gzseek
  • gzuncompress »
  • PHP Manual
  • Zlib;
  • Возвращает текущую позицию для чтения/записи в gz-файле

gztell

(PHP 4, PHP 5, PHP 7)

gztell — Возвращает текущую позицию для чтения/записи в gz-файле

Описание

int gztell ( resource $zp )

Возвращает позицию в файле по его указателю, т.е. смещение в потоке распакованного файла.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

Возвращаемые значения

Текущая позиция или FALSE в случае ошибки.

Смотрите также

  • gzopen() - Открывает gz-файл
  • gzseek() - Перемещает указатель на позицию в gz-файле
  • gzrewind() - Перемещает указатель на позицию в gz-файле в начало


Распаковывает строку

  • « gztell
  • gzwrite »
  • PHP Manual
  • Zlib;
  • Распаковывает строку

gzuncompress

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

gzuncompress — Распаковывает строку

Описание

string gzuncompress ( string $data [, int $length = 0 ] )

Распаковывает строку.

Список параметров

data

Данные, сжатые функцией gzcompress().

length

Максимальный размер данных для распаковки.

Возвращаемые значения

Распакованные данные или FALSE в случае ошибки.

Функция также сообщит об ошибке в случае, если несжатые данные в 32768 раз больше размера сжатых данных data или больше параметра length.

Примеры

Пример #1 Пример использования gzuncompress()

<?php
$compressed   = gzcompress('Сожми меня', 9);
$uncompressed = gzuncompress($compressed);
echo $uncompressed;
?>

Смотрите также

  • gzcompress() - Сжимает строку
  • gzinflate() - Распаковывает строку
  • gzdeflate() - Сжимает строку
  • gzencode() - Сжимает строку в формате gzip


Бинарная запись в gz-файл

  • « gzuncompress
  • inflate_add »
  • PHP Manual
  • Zlib;
  • Бинарная запись в gz-файл

gzwrite

(PHP 4, PHP 5, PHP 7)

gzwrite — Бинарная запись в gz-файл

Описание

int gzwrite ( resource $zp , string $string [, int $length ] )

Записывает содержимое string в данный gz-файл.

Список параметров

zp

Указатель на gz-файл, возвращённый, после его успешного открытия, функцией gzopen().

string

Записываемая строка.

length

Число записываемых байтов (до сжатия). Если указано, операция завершится после записи length байт или при достижении конца строки string.

Замечание:

Обратите внимание, что если параметр length задан, конфигурационный параметр magic_quotes_runtime будет проигнорирован и удаление слешей из записываемой строки не будет выполнено.

Возвращаемые значения

Возвращает число действительно записанных байт (без учёта сжатия) в поток gz-файла.

Примеры

Пример #1 Пример использования gzwrite()

<?php
$string = 'Какие-то данные для сжатия';
$gz = gzopen('somefile.gz','w9');
gzwrite($gz, $string);
gzclose($gz);
?>

Смотрите также

  • gzread() - Бинарное чтение gz-файла
  • gzopen() - Открывает gz-файл


Incrementally inflate encoded data

  • « gzwrite
  • inflate_init »
  • PHP Manual
  • Zlib;
  • Incrementally inflate encoded data

inflate_add

(PHP 7)

inflate_add — Incrementally inflate encoded data

Описание

string inflate_add ( resource $context , string $encoded_data [, int $flush_mode = ZLIB_SYNC_FLUSH ] )

Incrementally inflates encoded data in the specified context.

Limitation: header information from GZIP compressed data are not made available.

Список параметров

context

A context created with inflate_init().

encoded_data

A chunk of compressed data.

flush_mode

One of ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH, ZLIB_SYNC_FLUSH (default), ZLIB_FULL_FLUSH, ZLIB_FINISH. Normally you will want to set ZLIB_NO_FLUSH to maximize compression, and ZLIB_FINISH to terminate with the last chunk of data. See the » zlib manual for a detailed description of these constants.

Возвращаемые значения

Returns a chunk of uncompressed data, или FALSE в случае возникновения ошибки.

Ошибки

If invalid parameters are given, inflating the data requires a preset dictionary, but none is specified, the compressed stream is corrupt or has an invalid checksum, an error of level E_WARNING is generated.

Смотрите также

  • inflate_init() - Initialize an incremental inflate context


Initialize an incremental inflate context

  • « inflate_add
  • readgzfile »
  • PHP Manual
  • Zlib;
  • Initialize an incremental inflate context

inflate_init

(PHP 7)

inflate_init — Initialize an incremental inflate context

Описание

resource inflate_init ( int $encoding [, array $options = array() ] )

Initialize an incremental inflate context with the specified encoding.

Список параметров

encoding

One of the ZLIB_ENCODING_* constants.

options

An associative array which may contain the following elements:

level

The compression level in range -1..9; defaults to -1.

memory

The compression memory level in range 1..9; defaults to 8.

window

The zlib window size (logarithmic) in range 8..15; defaults to 15.

strategy

One of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY, ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY (the default).

dictionary

A string or an array of strings of the preset dictionary (default: no preset dictionary).

Возвращаемые значения

Returns an inflate context resource (zlib.inflate) on success, или FALSE в случае возникновения ошибки.

Ошибки

If an invalid encoding or option is passed to options, or the context couldn't be created, an error of level E_WARNING is generated.

Смотрите также

  • inflate_add() - Incrementally inflate encoded data
  • deflate_init() - Initialize an incremental deflate context


Выводит содержимое gz-файла

  • « inflate_init
  • zlib_decode »
  • PHP Manual
  • Zlib;
  • Выводит содержимое gz-файла

readgzfile

(PHP 4, PHP 5, PHP 7)

readgzfile — Выводит содержимое gz-файла

Описание

int readgzfile ( string $filename [, int $use_include_path = 0 ] )

Читает файл, распаковывает его и записывает в стандартный вывод.

Может также использоваться для чтения файла, не имеющего формат gzip; в этом случае readgzfile() непосредственно читает из файла без дополнительной обработки.

Список параметров

filename

Имя файла. Этот файл будет открыт и его содержимое будет записано в стандартный вывод.

use_include_path

Вы можете использовать этот необязательный параметр и установить его в 1, если необходимо, чтобы поиск файла также осуществлялся в директориях include_path.

Возвращаемые значения

Возвращает количество байтов в файле (после распаковки). Если возникает ошибка, возвращается FALSE и, если функция не была вызвана как @readgzfile, выводится сообщение об ошибке.

Смотрите также

  • gzpassthru() - Выводит все оставшиеся данные из указателя gz-файла.
  • gzfile() - Считывает весь gz-файл в массив
  • gzopen() - Открывает gz-файл


Распаковывает любые raw/gzip/zlib закодированные данные

  • « readgzfile
  • zlib_encode »
  • PHP Manual
  • Zlib;
  • Распаковывает любые raw/gzip/zlib закодированные данные

zlib_decode

(PHP 5 >= 5.4.0, PHP 7)

zlib_decode — Распаковывает любые raw/gzip/zlib закодированные данные

Описание

string zlib_decode ( string $data [, string $max_decoded_len ] )

Распаковывает любые raw/gzip/zlib закодированные данные.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

max_decoded_len

Возвращаемые значения

Возвращает расжатые данные, или FALSE в случае возникновения ошибки.

Смотрите также

  • zlib_encode() - Запаковывает данные с указанным кодированием


Запаковывает данные с указанным кодированием

  • « zlib_decode
  • zlib_get_coding_type »
  • PHP Manual
  • Zlib;
  • Запаковывает данные с указанным кодированием

zlib_encode

(PHP 5 >= 5.4.0, PHP 7)

zlib_encode — Запаковывает данные с указанным кодированием

Описание

string zlib_encode ( string $data , string $encoding [, string $level = -1 ] )

Сжимает данные с указанным кодированием.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Данные для сжатия.

encoding

Алгоритм сжатия. Одна из констант ZLIB_ENCODING_RAW, ZLIB_ENCODING_DEFLATE или ZLIB_ENCODING_GZIP.

level

Возвращаемые значения

Примеры

Пример #1 Пример использования zlib_encode()

<?php
$str = 'hello world';
$enc = zlib_encode($str, ZLIB_ENCODING_DEFLATE);
echo bin2hex($enc);
?>

Результат выполнения данного примера:

789ccb48cdc9c95728cf2fca4901001a0b045d

Смотрите также

  • zlib_decode() - Распаковывает любые raw/gzip/zlib закодированные данные


Возвращает способ кодирования, используемый для сжатия вывода

  • « zlib_encode
  • Обработка кредитных карт »
  • PHP Manual
  • Zlib;
  • Возвращает способ кодирования, используемый для сжатия вывода

zlib_get_coding_type

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

zlib_get_coding_type — Возвращает способ кодирования, используемый для сжатия вывода

Описание

string zlib_get_coding_type ( void )

Возвращает способ кодирования, используемый для сжатия вывода.

Возвращаемые значения

Возможные значения: gzip, deflate или FALSE.

Смотрите также

  • Директива zlib.output_compression


Обработка кредитных карт

  • MCVE — MCVE (Monetra) Payment (Обработка кредитных карт)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • MCVE Функции


MCVE (Monetra) Payment (Обработка кредитных карт)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • MCVE Функции
    • m_checkstatus — Проверяет, завершена ли транзакция
    • m_completeauthorizations — Number of complete authorizations in queue, returning an array of their identifiers
    • m_connect — Establish the connection to MCVE
    • m_connectionerror — Get a textual representation of why a connection failed
    • m_deletetrans — Delete specified transaction from MCVE_CONN structure
    • m_destroyconn — Destroy the connection and MCVE_CONN structure
    • m_destroyengine — Free memory associated with IP/SSL connectivity
    • m_getcell — Get a specific cell from a comma delimited response by column name
    • m_getcellbynum — Get a specific cell from a comma delimited response by column number
    • m_getcommadelimited — Get the RAW comma delimited data returned from MCVE
    • m_getheader — Get the name of the column in a comma-delimited response
    • m_initconn — Create and initialize an MCVE_CONN structure
    • m_initengine — Ready the client for IP/SSL Communication
    • m_iscommadelimited — Checks to see if response is comma delimited
    • m_maxconntimeout — The maximum amount of time the API will attempt a connection to MCVE
    • m_monitor — Perform communication with MCVE (send/receive data) Non-blocking
    • m_numcolumns — Number of columns returned in a comma delimited response
    • m_numrows — Number of rows returned in a comma delimited response
    • m_parsecommadelimited — Parse the comma delimited response so m_getcell, etc will work
    • m_responsekeys — Returns array of strings which represents the keys that can be used for response parameters on this transaction
    • m_responseparam — Get a custom response parameter
    • m_returnstatus — Check to see if the transaction was successful
    • m_setblocking — Set blocking/non-blocking mode for connection
    • m_setdropfile — Set the connection method to Drop-File
    • m_setip — Set the connection method to IP
    • m_setssl_cafile — Set SSL CA (Certificate Authority) file for verification of server certificate
    • m_setssl_files — Set certificate key files and certificates if server requires client certificate verification
    • m_setssl — Set the connection method to SSL
    • m_settimeout — Set maximum transaction time (per trans)
    • m_sslcert_gen_hash — Generate hash for SSL client certificate verification
    • m_transactionssent — Check to see if outgoing buffer is clear
    • m_transinqueue — Number of transactions in client-queue
    • m_transkeyval — Add key/value pair to a transaction. Replaces deprecated transparam()
    • m_transnew — Start a new transaction
    • m_transsend — Finalize and send the transaction
    • m_uwait — Wait x microsecs
    • m_validateidentifier — Whether or not to validate the passed identifier on any transaction it is passed to
    • m_verifyconnection — Set whether or not to PING upon connect to verify connection
    • m_verifysslcert — Set whether or not to verify the server ssl certificate


Введение

Функциональный интерфейс MCVE (Monetra) API (libmonetra, ранее известный как libmcve) позволяет работать непосредственно с MCVE/Monetra из вашего PHP-скрипта. MCVE/Monetra это решение от компании Main Street Softworks для обработки кредитных/дебетовых/подарочных карт для Linux/Unix/MacOSX/Windows систем ( » http://www.mainstreetsoftworks.com/ ). Это решение позволяет вам напрямую использовать расчетные кредитные карты, используя *nix систему, модем и/или интернет соединение (в обход необходимости использования дополнительных услуг, таких как Authorize.Net или Pay Flow Pro). Используя модуль MCVE/Monetra в PHP, вы сможете обрабатывать кредитные карты непосредственно через MCVE/Monetra в ваших PHP-скриптах. Следующие ссылки в общих чертах обрисуют сам процесс.

Замечание:

MCVE/Monetra является заменой для RedHat CCVS. Они заключили контракт с RedHat в конце 2001 года и перевели всех существующих клиентов на платформу MCVE.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Библиотека LibMonetra (раньше libmcve).


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/mcve.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

При установке без указания пути к libmonetra, PHP будет пытаться использовать путь LibMonetra по умолчанию (/usr/local). Если Monetra (MCVE) установлена по нестандартному пути, то сконфигурируйте установку следующим образом: --with-mcve=$mcve_path , где $mcve_path это путь установки MCVE/Monetra. Обратите внимание, что MCVE/Monetra требует существование каталогов $mcve_path/lib и $mcve_path/include, и включенный mcve.h, или monetra.h в каталоге include и libmcve.so, и/или libmcve.a, и/или libmonetra.so, и/или libmonetra.a в каталоге lib.

Так как MCVE/Monetra имеет разделение на сервер/клиент, то нет дополнительных требований для запуска PHP с MCVE. Для проверки вашего расширения MCVE/Monetra в PHP, можно подключиться к testbox.monetra.com на порт 8333 для IP, или на порт 8444 для SSL, используя MCVE/Monetra PHP API. Используйте 'vitale' как имя пользователя и 'test' как пароль. Дополнительная информация доступна на » http://www.mainstreetsoftworks.com/.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение определяет ресурс MCVE_CONN, возвращаемый функцией m_initconn().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

M_PENDING (integer)
M_DONE (integer)
M_ERROR (integer)
M_FAIL (integer)
M_SUCCESS (integer)


MCVE Функции

Смотрите также

Дополнительную документацию по MCVE/Monetra PHP API можно найти на » http://www.mainstreetsoftworks.com/documentation.html. Документация компании Main Street является полной и должна быть основным справочником по функционалу.

Содержание

  • m_checkstatus — Проверяет, завершена ли транзакция
  • m_completeauthorizations — Number of complete authorizations in queue, returning an array of their identifiers
  • m_connect — Establish the connection to MCVE
  • m_connectionerror — Get a textual representation of why a connection failed
  • m_deletetrans — Delete specified transaction from MCVE_CONN structure
  • m_destroyconn — Destroy the connection and MCVE_CONN structure
  • m_destroyengine — Free memory associated with IP/SSL connectivity
  • m_getcell — Get a specific cell from a comma delimited response by column name
  • m_getcellbynum — Get a specific cell from a comma delimited response by column number
  • m_getcommadelimited — Get the RAW comma delimited data returned from MCVE
  • m_getheader — Get the name of the column in a comma-delimited response
  • m_initconn — Create and initialize an MCVE_CONN structure
  • m_initengine — Ready the client for IP/SSL Communication
  • m_iscommadelimited — Checks to see if response is comma delimited
  • m_maxconntimeout — The maximum amount of time the API will attempt a connection to MCVE
  • m_monitor — Perform communication with MCVE (send/receive data) Non-blocking
  • m_numcolumns — Number of columns returned in a comma delimited response
  • m_numrows — Number of rows returned in a comma delimited response
  • m_parsecommadelimited — Parse the comma delimited response so m_getcell, etc will work
  • m_responsekeys — Returns array of strings which represents the keys that can be used for response parameters on this transaction
  • m_responseparam — Get a custom response parameter
  • m_returnstatus — Check to see if the transaction was successful
  • m_setblocking — Set blocking/non-blocking mode for connection
  • m_setdropfile — Set the connection method to Drop-File
  • m_setip — Set the connection method to IP
  • m_setssl_cafile — Set SSL CA (Certificate Authority) file for verification of server certificate
  • m_setssl_files — Set certificate key files and certificates if server requires client certificate verification
  • m_setssl — Set the connection method to SSL
  • m_settimeout — Set maximum transaction time (per trans)
  • m_sslcert_gen_hash — Generate hash for SSL client certificate verification
  • m_transactionssent — Check to see if outgoing buffer is clear
  • m_transinqueue — Number of transactions in client-queue
  • m_transkeyval — Add key/value pair to a transaction. Replaces deprecated transparam()
  • m_transnew — Start a new transaction
  • m_transsend — Finalize and send the transaction
  • m_uwait — Wait x microsecs
  • m_validateidentifier — Whether or not to validate the passed identifier on any transaction it is passed to
  • m_verifyconnection — Set whether or not to PING upon connect to verify connection
  • m_verifysslcert — Set whether or not to verify the server ssl certificate


Проверяет, завершена ли транзакция

  • « MCVE Функции
  • m_completeauthorizations »
  • PHP Manual
  • MCVE Функции
  • Проверяет, завершена ли транзакция

m_checkstatus

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_checkstatus — Проверяет, завершена ли транзакция

Описание

int m_checkstatus ( resource $conn , int $identifier )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Number of complete authorizations in queue, returning an array of their identifiers

  • « m_checkstatus
  • m_connect »
  • PHP Manual
  • MCVE Функции
  • Number of complete authorizations in queue, returning an array of their identifiers

m_completeauthorizations

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_completeauthorizations — Number of complete authorizations in queue, returning an array of their identifiers

Описание

int m_completeauthorizations ( resource $conn , int &$array )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

array

Its description

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity


Establish the connection to MCVE

  • « m_completeauthorizations
  • m_connectionerror »
  • PHP Manual
  • MCVE Функции
  • Establish the connection to MCVE

m_connect

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_connect — Establish the connection to MCVE

Описание

int m_connect ( resource $conn )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Get a textual representation of why a connection failed

  • « m_connect
  • m_deletetrans »
  • PHP Manual
  • MCVE Функции
  • Get a textual representation of why a connection failed

m_connectionerror

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_connectionerror — Get a textual representation of why a connection failed

Описание

string m_connectionerror ( resource $conn )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Delete specified transaction from MCVE_CONN structure

  • « m_connectionerror
  • m_destroyconn »
  • PHP Manual
  • MCVE Функции
  • Delete specified transaction from MCVE_CONN structure

m_deletetrans

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_deletetrans — Delete specified transaction from MCVE_CONN structure

Описание

bool m_deletetrans ( resource $conn , int $identifier )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Destroy the connection and MCVE_CONN structure

  • « m_deletetrans
  • m_destroyengine »
  • PHP Manual
  • MCVE Функции
  • Destroy the connection and MCVE_CONN structure

m_destroyconn

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_destroyconn — Destroy the connection and MCVE_CONN structure

Описание

bool m_destroyconn ( resource $conn )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения

Returns TRUE.

Смотрите также

  • m_initconn() - Create and initialize an MCVE_CONN structure


Free memory associated with IP/SSL connectivity

  • « m_destroyconn
  • m_getcell »
  • PHP Manual
  • MCVE Функции
  • Free memory associated with IP/SSL connectivity

m_destroyengine

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_destroyengine — Free memory associated with IP/SSL connectivity

Описание

void m_destroyengine ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Get a specific cell from a comma delimited response by column name

  • « m_destroyengine
  • m_getcellbynum »
  • PHP Manual
  • MCVE Функции
  • Get a specific cell from a comma delimited response by column name

m_getcell

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcell — Get a specific cell from a comma delimited response by column name

Описание

string m_getcell ( resource $conn , int $identifier , string $column , int $row )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

column

row

Возвращаемые значения


Get a specific cell from a comma delimited response by column number

  • « m_getcell
  • m_getcommadelimited »
  • PHP Manual
  • MCVE Функции
  • Get a specific cell from a comma delimited response by column number

m_getcellbynum

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcellbynum — Get a specific cell from a comma delimited response by column number

Описание

string m_getcellbynum ( resource $conn , int $identifier , int $column , int $row )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

column

row

Возвращаемые значения


Get the RAW comma delimited data returned from MCVE

  • « m_getcellbynum
  • m_getheader »
  • PHP Manual
  • MCVE Функции
  • Get the RAW comma delimited data returned from MCVE

m_getcommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getcommadelimited — Get the RAW comma delimited data returned from MCVE

Описание

string m_getcommadelimited ( resource $conn , int $identifier )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Get the name of the column in a comma-delimited response

  • « m_getcommadelimited
  • m_initconn »
  • PHP Manual
  • MCVE Функции
  • Get the name of the column in a comma-delimited response

m_getheader

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_getheader — Get the name of the column in a comma-delimited response

Описание

string m_getheader ( resource $conn , int $identifier , int $column_num )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

column_num

Возвращаемые значения


Create and initialize an MCVE_CONN structure

  • « m_getheader
  • m_initengine »
  • PHP Manual
  • MCVE Функции
  • Create and initialize an MCVE_CONN structure

m_initconn

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_initconn — Create and initialize an MCVE_CONN structure

Описание

resource m_initconn ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Returns an MCVE_CONN resource.

Смотрите также

  • m_destroyconn() - Destroy the connection and MCVE_CONN structure


Ready the client for IP/SSL Communication

  • « m_initconn
  • m_iscommadelimited »
  • PHP Manual
  • MCVE Функции
  • Ready the client for IP/SSL Communication

m_initengine

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_initengine — Ready the client for IP/SSL Communication

Описание

int m_initengine ( string $location )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

location

Возвращаемые значения


Checks to see if response is comma delimited

  • « m_initengine
  • m_maxconntimeout »
  • PHP Manual
  • MCVE Функции
  • Checks to see if response is comma delimited

m_iscommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_iscommadelimited — Checks to see if response is comma delimited

Описание

int m_iscommadelimited ( resource $conn , int $identifier )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


The maximum amount of time the API will attempt a connection to MCVE

  • « m_iscommadelimited
  • m_monitor »
  • PHP Manual
  • MCVE Функции
  • The maximum amount of time the API will attempt a connection to MCVE

m_maxconntimeout

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_maxconntimeout — The maximum amount of time the API will attempt a connection to MCVE

Описание

bool m_maxconntimeout ( resource $conn , int $secs )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

secs

Возвращаемые значения


Perform communication with MCVE (send/receive data) Non-blocking

  • « m_maxconntimeout
  • m_numcolumns »
  • PHP Manual
  • MCVE Функции
  • Perform communication with MCVE (send/receive data) Non-blocking

m_monitor

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_monitor — Perform communication with MCVE (send/receive data) Non-blocking

Описание

int m_monitor ( resource $conn )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Number of columns returned in a comma delimited response

  • « m_monitor
  • m_numrows »
  • PHP Manual
  • MCVE Функции
  • Number of columns returned in a comma delimited response

m_numcolumns

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_numcolumns — Number of columns returned in a comma delimited response

Описание

int m_numcolumns ( resource $conn , int $identifier )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Number of rows returned in a comma delimited response

  • « m_numcolumns
  • m_parsecommadelimited »
  • PHP Manual
  • MCVE Функции
  • Number of rows returned in a comma delimited response

m_numrows

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_numrows — Number of rows returned in a comma delimited response

Описание

int m_numrows ( resource $conn , int $identifier )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Parse the comma delimited response so m_getcell, etc will work

  • « m_numrows
  • m_responsekeys »
  • PHP Manual
  • MCVE Функции
  • Parse the comma delimited response so m_getcell, etc will work

m_parsecommadelimited

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_parsecommadelimited — Parse the comma delimited response so m_getcell, etc will work

Описание

int m_parsecommadelimited ( resource $conn , int $identifier )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Returns array of strings which represents the keys that can be used for response parameters on this transaction

  • « m_parsecommadelimited
  • m_responseparam »
  • PHP Manual
  • MCVE Функции
  • Returns array of strings which represents the keys that can be used for response parameters on this transaction

m_responsekeys

(PHP 5 >= 5.0.5, PHP 7, PECL mcve >= 1.0.0)

m_responsekeys — Returns array of strings which represents the keys that can be used for response parameters on this transaction

Описание

array m_responsekeys ( resource $conn , int $identifier )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Get a custom response parameter

  • « m_responsekeys
  • m_returnstatus »
  • PHP Manual
  • MCVE Функции
  • Get a custom response parameter

m_responseparam

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_responseparam — Get a custom response parameter

Описание

string m_responseparam ( resource $conn , int $identifier , string $key )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

key

Возвращаемые значения


Check to see if the transaction was successful

  • « m_responseparam
  • m_setblocking »
  • PHP Manual
  • MCVE Функции
  • Check to see if the transaction was successful

m_returnstatus

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_returnstatus — Check to see if the transaction was successful

Описание

int m_returnstatus ( resource $conn , int $identifier )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Set blocking/non-blocking mode for connection

  • « m_returnstatus
  • m_setdropfile »
  • PHP Manual
  • MCVE Функции
  • Set blocking/non-blocking mode for connection

m_setblocking

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setblocking — Set blocking/non-blocking mode for connection

Описание

int m_setblocking ( resource $conn , int $tf )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

tf

Возвращаемые значения


Set the connection method to Drop-File

  • « m_setblocking
  • m_setip »
  • PHP Manual
  • MCVE Функции
  • Set the connection method to Drop-File

m_setdropfile

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setdropfile — Set the connection method to Drop-File

Описание

int m_setdropfile ( resource $conn , string $directory )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

directory

Возвращаемые значения


Set the connection method to IP

  • « m_setdropfile
  • m_setssl_cafile »
  • PHP Manual
  • MCVE Функции
  • Set the connection method to IP

m_setip

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setip — Set the connection method to IP

Описание

int m_setip ( resource $conn , string $host , int $port )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

host

port

Возвращаемые значения


Set SSL CA (Certificate Authority) file for verification of server certificate

  • « m_setip
  • m_setssl_files »
  • PHP Manual
  • MCVE Функции
  • Set SSL CA (Certificate Authority) file for verification of server certificate

m_setssl_cafile

(PHP 5 >= 5.0.5, PHP 7, PECL mcve >= 1.0.0)

m_setssl_cafile — Set SSL CA (Certificate Authority) file for verification of server certificate

Описание

int m_setssl_cafile ( resource $conn , string $cafile )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

cafile

Возвращаемые значения


Set certificate key files and certificates if server requires client certificate verification

  • « m_setssl_cafile
  • m_setssl »
  • PHP Manual
  • MCVE Функции
  • Set certificate key files and certificates if server requires client certificate verification

m_setssl_files

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setssl_files — Set certificate key files and certificates if server requires client certificate verification

Описание

int m_setssl_files ( resource $conn , string $sslkeyfile , string $sslcertfile )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

sslkeyfile

sslcertfile

Возвращаемые значения


Set the connection method to SSL

  • « m_setssl_files
  • m_settimeout »
  • PHP Manual
  • MCVE Функции
  • Set the connection method to SSL

m_setssl

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_setssl — Set the connection method to SSL

Описание

int m_setssl ( resource $conn , string $host , int $port )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

host

port

Возвращаемые значения


Set maximum transaction time (per trans)

  • « m_setssl
  • m_sslcert_gen_hash »
  • PHP Manual
  • MCVE Функции
  • Set maximum transaction time (per trans)

m_settimeout

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_settimeout — Set maximum transaction time (per trans)

Описание

int m_settimeout ( resource $conn , int $seconds )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

seconds

Возвращаемые значения


Generate hash for SSL client certificate verification

  • « m_settimeout
  • m_transactionssent »
  • PHP Manual
  • MCVE Функции
  • Generate hash for SSL client certificate verification

m_sslcert_gen_hash

(PECL mcve >= 5.2.0)

m_sslcert_gen_hash — Generate hash for SSL client certificate verification

Описание

string m_sslcert_gen_hash ( string $filename )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filename

Возвращаемые значения


Check to see if outgoing buffer is clear

  • « m_sslcert_gen_hash
  • m_transinqueue »
  • PHP Manual
  • MCVE Функции
  • Check to see if outgoing buffer is clear

m_transactionssent

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transactionssent — Check to see if outgoing buffer is clear

Описание

int m_transactionssent ( resource $conn )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Number of transactions in client-queue

  • « m_transactionssent
  • m_transkeyval »
  • PHP Manual
  • MCVE Функции
  • Number of transactions in client-queue

m_transinqueue

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transinqueue — Number of transactions in client-queue

Описание

int m_transinqueue ( resource $conn )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Add key/value pair to a transaction. Replaces deprecated transparam()

  • « m_transinqueue
  • m_transnew »
  • PHP Manual
  • MCVE Функции
  • Add key/value pair to a transaction. Replaces deprecated transparam()

m_transkeyval

(PHP 5 >= 5.0.5, PHP 7, PECL mcve >= 1.0.0)

m_transkeyval — Add key/value pair to a transaction. Replaces deprecated transparam()

Описание

int m_transkeyval ( resource $conn , int $identifier , string $key , string $value )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

key

value

Возвращаемые значения


Start a new transaction

  • « m_transkeyval
  • m_transsend »
  • PHP Manual
  • MCVE Функции
  • Start a new transaction

m_transnew

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transnew — Start a new transaction

Описание

int m_transnew ( resource $conn )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

Возвращаемые значения


Finalize and send the transaction

  • « m_transnew
  • m_uwait »
  • PHP Manual
  • MCVE Функции
  • Finalize and send the transaction

m_transsend

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_transsend — Finalize and send the transaction

Описание

int m_transsend ( resource $conn , int $identifier )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

identifier

Возвращаемые значения


Wait x microsecs

  • « m_transsend
  • m_validateidentifier »
  • PHP Manual
  • MCVE Функции
  • Wait x microsecs

m_uwait

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_uwait — Wait x microsecs

Описание

int m_uwait ( int $microsecs )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

microsecs

Возвращаемые значения


Whether or not to validate the passed identifier on any transaction it is passed to

  • « m_uwait
  • m_verifyconnection »
  • PHP Manual
  • MCVE Функции
  • Whether or not to validate the passed identifier on any transaction it is passed to

m_validateidentifier

(PHP 5 >= 5.0.5, PHP 7, PECL mcve >= 1.0.0)

m_validateidentifier — Whether or not to validate the passed identifier on any transaction it is passed to

Описание

int m_validateidentifier ( resource $conn , int $tf )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

tf

Возвращаемые значения


Set whether or not to PING upon connect to verify connection

  • « m_validateidentifier
  • m_verifysslcert »
  • PHP Manual
  • MCVE Функции
  • Set whether or not to PING upon connect to verify connection

m_verifyconnection

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_verifyconnection — Set whether or not to PING upon connect to verify connection

Описание

bool m_verifyconnection ( resource $conn , int $tf )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

tf

Возвращаемые значения


Set whether or not to verify the server ssl certificate

  • « m_verifyconnection
  • Криптографические расширения »
  • PHP Manual
  • MCVE Функции
  • Set whether or not to verify the server ssl certificate

m_verifysslcert

(PHP 4 >= 4.3.9, PHP 5 <= 5.0.5, PECL mcve >= 1.0.0)

m_verifysslcert — Set whether or not to verify the server ssl certificate

Описание

bool m_verifysslcert ( resource $conn , int $tf )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

conn

Ресурс MCVE_CONN, полученный из m_initengine().

tf

Возвращаемые значения


Криптографические расширения

  • Crack — Cracklib
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Crack
  • CSPRNG
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • CSPRNG Функции
  • Hash — Фреймворк хеш-кодов HASH
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Hash
  • Mcrypt
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Mcrypt ciphers
    • Примеры
    • Mcrypt
  • Mhash
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Mhash Функции
  • OpenSSL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Параметры Ключа/Сертификата
    • Проверка сертификатов
    • OpenSSL
  • Хэширование паролей
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Password Hashing Функции


Cracklib

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Crack
    • crack_check — Проверяет взломостойкость переданного пароля
    • crack_closedict — Закрывает открытый ранее словарь CrackLib
    • crack_getlastmessage — Возвращает текстовое сообщение о последней проверке взломостойкости пароля
    • crack_opendict — Открывает новый словарь CrackLib


Введение

Эти функции позволяют использовать библиотеку CrackLib для тестирования взломостойкости пароля. Взломостойкость пароля определяется по его длине, использованию верхнего и нижнего регистра букв и по вхождению в специальный словарь библиотеки CrackLib. CrackLib также даст полезные диагностические сообщения, которые помогут повысить взломостойкость пароля.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.0.0.


Требования

Более подробную информацию о CrackLib вместе с самой библиотекой можно найти по адресу » http://sourceforge.net/projects/cracklib.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/crack.

Для использования этих функций, вы должны скомпилировать PHP с поддержкой расширения Crack, при помощи конфигурационной опции --with-crack[=DIR] .

Пользователям Windows достаточно подключить модуль php_crack.dll в файле php.ini. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Расширение CrackLib определяет идентификатор ресурса словаря, полученного от функции crack_opendict().


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Crack
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Этот пример показывает, как открыть словарь CrackLib, проверить переданный пароль, получить любые диагностические сообщения, и закрыть словарь.

Пример #1 Пример использования CrackLib

<?php
// Открываем словарь CrackLib
$dictionary = crack_opendict('/usr/local/lib/pw_dict')
     or die('Unable to open CrackLib dictionary');

// Выполняем проверку пароля
$check = crack_check($dictionary, 'gx9A2s0x');

// Получаем сообщения
$diag = crack_getlastmessage();
echo $diag; // 'strong password'

// Закрываем словарь
crack_closedict($dictionary);
?>

Замечание:

Если crack_check() возвращает TRUE, crack_getlastmessage() вернет 'strong password'.


Crack

Содержание

  • crack_check — Проверяет взломостойкость переданного пароля
  • crack_closedict — Закрывает открытый ранее словарь CrackLib
  • crack_getlastmessage — Возвращает текстовое сообщение о последней проверке взломостойкости пароля
  • crack_opendict — Открывает новый словарь CrackLib


Проверяет взломостойкость переданного пароля

  • « Crack
  • crack_closedict »
  • PHP Manual
  • Crack
  • Проверяет взломостойкость переданного пароля

crack_check

(PECL crack >= 0.1)

crack_check — Проверяет взломостойкость переданного пароля

Описание

bool crack_check ( resource $dictionary , string $password )
bool crack_check ( string $password , string $username = "" , string $gecos = "" , resource $dictionary = NULL )

Проверяет взломостойкость переданного пароля по специальному словарю. Альтернативный способ так же учитывает имя пользователя и информацию GECOS.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

dictionary

Идентификатор словаря cracklib. Если не указан, то используется последний открытый словарь.

password

Проверяемый пароль.

username

Имя пользователя используемое с этим паролем.

gecos

Информация GECOS связанная с аккаунтом пользователя.

Возвращаемые значения

Возвращает TRUE если пароль переданный в параметре password "сильный" (взломоустойчивый), иначе FALSE.

Список изменений

Версия | Описание
0.3 | Параметры username, gecos и dictionary добавлены в альтернативный способ вызова функции.


Закрывает открытый ранее словарь CrackLib

  • « crack_check
  • crack_getlastmessage »
  • PHP Manual
  • Crack
  • Закрывает открытый ранее словарь CrackLib

crack_closedict

(PECL crack >= 0.1)

crack_closedict — Закрывает открытый ранее словарь CrackLib

Описание

bool crack_closedict ([ resource $dictionary ] )

crack_closedict() закрывает словарь, указанный в параметре dictionary.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

dictionary

Словарь, который нужно закрыть. Если параметр не определен, то закрывается текущий словарь.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • crack_opendict() - Открывает новый словарь CrackLib


Возвращает текстовое сообщение о последней проверке взломостойкости пароля

  • « crack_closedict
  • crack_opendict »
  • PHP Manual
  • Crack
  • Возвращает текстовое сообщение о последней проверке взломостойкости пароля

crack_getlastmessage

(PECL crack >= 0.1)

crack_getlastmessage — Возвращает текстовое сообщение о последней проверке взломостойкости пароля

Описание

string crack_getlastmessage ( void )

crack_getlastmessage() возвращает текстовое сообщение о последней проверке взломостойкости пароля.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращаемые значения

Сообщение о последней проверке или FALSE если ранее не была запущена ни одна проверка взломостойкости пароля.

Возвращаемое сообщение соответствует одному из следующих:

  • it's WAY too short
  • it is too short
  • it does not contain enough DIFFERENT characters
  • it is all whitespace
  • it is too simplistic/systematic
  • it looks like a National Insurance number.
  • it is based on a dictionary word
  • it is based on a (reversed) dictionary word
  • strong password

Смотрите также

  • crack_check() - Проверяет взломостойкость переданного пароля


Открывает новый словарь CrackLib

  • « crack_getlastmessage
  • CSPRNG »
  • PHP Manual
  • Crack
  • Открывает новый словарь CrackLib

crack_opendict

(PECL crack >= 0.1)

crack_opendict — Открывает новый словарь CrackLib

Описание

resource crack_opendict ( string $dictionary )

crack_opendict() открывает словарь CrackLib, указанный в параметре dictionary для использования в функции crack_check().

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Замечание:

Единовременно может быть открыт только один словарь.

Список параметров

dictionary

Путь к словарю Cracklib.

Возвращаемые значения

Возвращает идентификатор ресурса словаря в случае успеха или FALSE в случае возникновения ошибки.

Смотрите также

  • crack_check() - Проверяет взломостойкость переданного пароля
  • crack_closedict() - Закрывает открытый ранее словарь CrackLib


CSPRNG

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • CSPRNG Функции
    • random_bytes — Генератор криптографически безопасных случайных байт
    • random_int — Генератор криптографически безопасных случайных целых чисел


Введение

API » Криптографически безопасного генератора псевдослучайных чисел (CSPRNG) предоставляет простой и надежный путь для создания криптографически сильных, случайных целых чисел и байт, пригодных к использованию в криптографических целях.

Существует, начиная с PHP 7.0.0, а для более ранних версий PHP >= 5.2.0, существует » пользовательская реализация


  • « Типы ресурсов
  • CSPRNG Функции »
  • PHP Manual
  • CSPRNG
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


CSPRNG Функции

Содержание

  • random_bytes — Генератор криптографически безопасных случайных байт
  • random_int — Генератор криптографически безопасных случайных целых чисел


Генератор криптографически безопасных случайных байт

  • « CSPRNG Функции
  • random_int »
  • PHP Manual
  • CSPRNG Функции
  • Генератор криптографически безопасных случайных байт

random_bytes

(PHP 7)

random_bytes — Генератор криптографически безопасных случайных байт

Описание

string random_bytes ( int $length )

Генерирует строку криптографически сильных случайных байт, заданной длины, которую можно использовать с подходящими криптографическими функциями, например для генерации SALT, ключей или инициализации векторов.

Источник случайных величин используемых данной функцией:

  • В Windows всегда используется » CryptGenRandom().
  • В Linux, если доступен, используется системный вызов » getrandom(2).
  • На других платформах используется /dev/urandom.
  • Если доступные источники случайных величин отсутствуют, то бросается исключение Exception.

Замечание: Эта функция была добавлена в PHP 7.0, а для версий с 5.2 по 5.2, существуют ее » пользовательские реализации.

Список параметров

length

Длина генерируемой строки в байтах.

Возвращаемые значения

Возвращает строку состоящую из заданного количества криптографически безопасных байт.

Ошибки

  • Если подходящие источники случайных величин отсутствуют, то бросается исключение Exception.
  • Если задан некорректный параметр, то бросается исключение TypeError.
  • Если будет задана некорректная длина length, то будет брошено исключение класса Error.

Примеры

Пример #1 Пример random_bytes()

<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>

Результатом выполнения данного примера будет что-то подобное:

string(10) "385e33f741"

Смотрите также

  • random_int() - Генератор криптографически безопасных случайных целых чисел
  • openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes
  • bin2hex() - Преобразует бинарные данные в шестнадцатеричное представление


Генератор криптографически безопасных случайных целых чисел

  • « random_bytes
  • Hash »
  • PHP Manual
  • CSPRNG Функции
  • Генератор криптографически безопасных случайных целых чисел

random_int

(PHP 7)

random_int — Генератор криптографически безопасных случайных целых чисел

Описание

int random_int ( int $min , int $max )

Генерирует криптографически сильное случайное целое число, пригодное для использования в криптографических целях, где случайность результата критична. Например перемешивание колоды карт для игры в покер.

Источник случайных величин используемых данной функцией:

  • В Windows всегда используется » CryptGenRandom().
  • В Linux, если доступен, используется системный вызов » getrandom(2).
  • На других платформах используется /dev/urandom.
  • Если доступные источники случайных величин отсутствуют, то бросается исключение Exception.

Замечание: Эта функция была добавлена в PHP 7.0, а для версий с 5.2 по 5.2, существуют ее » пользовательские реализации.

Список параметров

min

Нижняя граница диапазона, из которого убдет выбрано случайное число. Должна быть больше или равна PHP_INT_MIN.

max

Верхняя граница диапазона, из которого убдет выбрано случайное число. Должна быть меньше или равна PHP_INT_MAX.

Возвращаемые значения

Генерирует криптографически сильное случайное целое число в диапазоне от min до max, включительно.

Ошибки

  • Если подходящие источники случайных величин отсутствуют, то бросается исключение Exception.
  • Если задан некорректный параметр, то бросается исключение TypeError.
  • Если задать max меньше чем min, то будет выброшено исключение класса Error.

Примеры

Пример #1 Пример random_int()

<?php
var_dump(random_int(100, 999));
var_dump(random_int(-1000, 0));
?>

Результатом выполнения данного примера будет что-то подобное:

int(248)
int(-898)

Смотрите также

  • random_bytes() - Генератор криптографически безопасных случайных байт


Фреймворк хеш-кодов HASH

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Hash
    • hash_algos — Возвращает список зарегистрированных алгоритмов хеширования
    • hash_copy — Копирует контекст хеширования
    • hash_equals — Timing attack safe string comparison
    • hash_file — Генерация хеш-значения, используя содержимое заданного файла
    • hash_final — Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода
    • hash_hmac_file — Генерация хэш-кода на основе ключа, используя метод HMAC и содержимое полученного файла
    • hash_hmac — Генерация хеш-кода на основе ключа, используя метод HMAC
    • hash_init — Инициализация инкрементального контекста хеширования
    • hash_pbkdf2 — Generate a PBKDF2 key derivation of a supplied password
    • hash_update_file — Добавляет данные из файла в активный контекст хеширования
    • hash_update_stream — Добавляет данные из открытого потока в активный контекст хеширования
    • hash_update — Добавляет данные в активный контекст хеширования
    • hash — Генерирует хеш-код (дайджест сообщения)


Введение

Фреймворк хеширования сообщений. Позволяет обрабатывать сообщения любой длины с использованием различных алгоритмов хеширования прямым или инкрементальным способом.


Требования

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.


Установка

С версии PHP 5.1.2, расширение Hash по умолчанию поставляется и собирается вместе с PHP.

Это поведение легко отключить с помощью конфигурационной опции --disable-hash. Для более ранних версий нужно устанавливать » модуль PECL.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение определяет ресурс контекста хеширования, возвращаемый hash_init().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

HASH_HMAC (integer)
Необязательный флаг для hash_init(). Указывает, что к текущему контексту хэширования должен быть применен алгоритм на основе ключей HMAC.


Hash

Содержание

  • hash_algos — Возвращает список зарегистрированных алгоритмов хеширования
  • hash_copy — Копирует контекст хеширования
  • hash_equals — Timing attack safe string comparison
  • hash_file — Генерация хеш-значения, используя содержимое заданного файла
  • hash_final — Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода
  • hash_hmac_file — Генерация хэш-кода на основе ключа, используя метод HMAC и содержимое полученного файла
  • hash_hmac — Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_init — Инициализация инкрементального контекста хеширования
  • hash_pbkdf2 — Generate a PBKDF2 key derivation of a supplied password
  • hash_update_file — Добавляет данные из файла в активный контекст хеширования
  • hash_update_stream — Добавляет данные из открытого потока в активный контекст хеширования
  • hash_update — Добавляет данные в активный контекст хеширования
  • hash — Генерирует хеш-код (дайджест сообщения)


Возвращает список зарегистрированных алгоритмов хеширования

  • « Hash
  • hash_copy »
  • PHP Manual
  • Hash
  • Возвращает список зарегистрированных алгоритмов хеширования

hash_algos

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_algos — Возвращает список зарегистрированных алгоритмов хеширования

Описание

array hash_algos ( void )

Возвращаемые значения

Возвращает массив, содержащий список поддерживаемых алгоритмов хэширования.

Список изменений

Версия | Описание
5.6.0 | Добавлена поддержка для gost-crypto. Реализуется функция GOST хэш, использующая CryptoPro S-box таблицы, согласно » RFC 4357, секция 11.2.
5.4.0 | Добавлена поддержка для joaat, fnv132 и fnv164. Убрана поддержка для Salsa10 и Salsa20
5.3.0 | Добавлена поддержка для md2, ripemd256, ripemd320, salsa10, salsa20, snefru256 и sha224

Примеры

Пример #1 Пример использования hash_algos()

Начиная с PHP 5.6.0, hash_algos() возвращает следующий список названий алгоритмов хеширования.

<?php
print_r(hash_algos());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => md2
    [1] => md4
    [2] => md5
    [3] => sha1
    [4] => sha224
    [5] => sha256
    [6] => sha384
    [7] => sha512
    [8] => ripemd128
    [9] => ripemd160
    [10] => ripemd256
    [11] => ripemd320
    [12] => whirlpool
    [13] => tiger128,3
    [14] => tiger160,3
    [15] => tiger192,3
    [16] => tiger128,4
    [17] => tiger160,4
    [18] => tiger192,4
    [19] => snefru
    [20] => snefru256
    [21] => gost
    [22] => gost-crypto
    [23] => adler32
    [24] => crc32
    [25] => crc32b
    [26] => fnv132
    [27] => fnv1a32
    [28] => fnv164
    [29] => fnv1a64
    [30] => joaat
    [31] => haval128,3
    [32] => haval160,3
    [33] => haval192,3
    [34] => haval224,3
    [35] => haval256,3
    [36] => haval128,4
    [37] => haval160,4
    [38] => haval192,4
    [39] => haval224,4
    [40] => haval256,4
    [41] => haval128,5
    [42] => haval160,5
    [43] => haval192,5
    [44] => haval224,5
    [45] => haval256,5
)


Копирует контекст хеширования

  • « hash_algos
  • hash_equals »
  • PHP Manual
  • Hash
  • Копирует контекст хеширования

hash_copy

(PHP 5 >= 5.3.0, PHP 7)

hash_copy — Копирует контекст хеширования

Описание

resource hash_copy ( resource $context )

Список параметров

context

Контекст хеширования, возвращенный hash_init().

Возвращаемые значения

Возвращает копию ресурса контекста хеширования.

Примеры

Пример #1 Пример использования hash_copy()

<?php
$context = hash_init("md5");
hash_update($context, "data");

/* копия контекста для дальнейшего использования */
$copy_context = hash_copy($context);

echo hash_final($context), "\n";

hash_update($copy_context, "data");
echo hash_final($copy_context), "\n";
?>

Результат выполнения данного примера:

8d777f385d3dfec8815d20f7496026dc
511ae0b1c13f95e5f08f1a0dd3da3d93


Timing attack safe string comparison

  • « hash_copy
  • hash_file »
  • PHP Manual
  • Hash
  • Timing attack safe string comparison

hash_equals

(PHP 5 >= 5.6.0, PHP 7)

hash_equals — Timing attack safe string comparison

Описание

bool hash_equals ( string $known_string , string $user_string )

Compares two strings using the same time whether they're equal or not.

This function should be used to mitigate timing attacks; for instance, when testing crypt() password hashes.

Список параметров

known_string

The string of known length to compare against

user_string

The user-supplied string

Возвращаемые значения

Returns TRUE when the two strings are equal, FALSE otherwise.

Ошибки

Emits an E_WARNING message when either of the supplied parameters is not a string.

Примеры

Пример #1 example

<?php
$expected  = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct   = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('apple',  '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Примечания

Замечание:

Both arguments must be of the same length to be compared successfully. When arguments of differing length are supplied, FALSE is returned immediately and the length of the known string may be leaked in case of a timing attack.

Замечание:

It is important to provide the user-supplied string as the second parameter, rather than the first.


Генерация хеш-значения, используя содержимое заданного файла

  • « hash_equals
  • hash_final »
  • PHP Manual
  • Hash
  • Генерация хеш-значения, используя содержимое заданного файла

hash_file

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_file — Генерация хеш-значения, используя содержимое заданного файла

Описание

string hash_file ( string $algo , string $filename [, bool $raw_output = false ] )

Список параметров

algo

Название выбранного алгоритма хеширования (например "md5", "sha256", "haval160,4" и т.д.)

filename

Путь или URL к файлу, который будет хеширован; Поддерживается интерфейс fopen.

raw_output

Когда установлено в TRUE, выводит необработанные двоичные данные. При FALSE выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку, содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если raw_output задан как TRUE, то возвращается хеш-код в виде бинарных данных.

Примеры

Пример #1 Использование hash_file()

<?php
/* Создаем файл, чтобы вычислить его хеш */
file_put_contents('example.txt', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');

echo hash_file('md5', 'example.txt');
?>

Результат выполнения данного примера:

bff8b4bc8b5c1c1d5b3211dfb21d1e76

Смотрите также

  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_hmac_file() - Генерация хэш-кода на основе ключа, используя метод HMAC и содержимое полученного файла
  • hash_update_file() - Добавляет данные из файла в активный контекст хеширования
  • md5_file() - Возвращает MD5-хэш файла
  • sha1_file() - Возвращает SHA1-хэш файла


Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода

  • « hash_file
  • hash_hmac_file »
  • PHP Manual
  • Hash
  • Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода

hash_final

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_final — Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода

Описание

string hash_final ( resource $context [, bool $raw_output = false ] )

Список параметров

context

Содержимое хеша, возвращаемое hash_init().

raw_output

Когда установлено в TRUE, выводит необработанные двоичные данные. При FALSE, выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если raw_output задан как TRUE, то возвращается хеш-код в виде бинарных данных.

Примеры

Пример #1 Пример использования hash_final()

<?php
$ctx = hash_init('sha1');
hash_update($ctx, 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');
echo hash_final($ctx);
?>

Результат выполнения данного примера:

dc495843a3a90b46c12e254102599571fa83a737

Смотрите также

  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_update() - Добавляет данные в активный контекст хеширования
  • hash_update_stream() - Добавляет данные из открытого потока в активный контекст хеширования
  • hash_update_file() - Добавляет данные из файла в активный контекст хеширования


Генерация хэш-кода на основе ключа, используя метод HMAC и содержимое полученного файла

  • « hash_final
  • hash_hmac »
  • PHP Manual
  • Hash
  • Генерация хэш-кода на основе ключа, используя метод HMAC и содержимое полученного файла

hash_hmac_file

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_hmac_file — Генерация хэш-кода на основе ключа, используя метод HMAC и содержимое полученного файла

Описание

string hash_hmac_file ( string $algo , string $filename , string $key [, bool $raw_output = false ] )

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.) Смотрите hash_algos() для получения списка поддерживаемых алгоритмов.

filename

URL расположения файла или файл для хеширования; Поддерживаются обработчики fopen.

key

Общий секретный ключ, используемый для генерации HMAC хеш кода.

raw_output

Когда установлено а TRUE, выводит необработанные двоичные данные. При FALSE, выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если raw_output задан как TRUE, то возвращается хеш-код в виде бинарных данных.

Примеры

Пример #1 Пример использования hash_hmac_file()

<?php
/* Создаем файл, чтобы вычислить его хеш */
file_put_contents('example.txt', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');

echo hash_hmac_file('md5', 'example.txt', 'secret');
?>

Результат выполнения данного примера:

1855b385e0caae2e41036706d3b7bd32

Смотрите также

  • hash_algos() - Возвращает список зарегистрированных алгоритмов хеширования
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_file() - Генерация хеш-значения, используя содержимое заданного файла


Генерация хеш-кода на основе ключа, используя метод HMAC

  • « hash_hmac_file
  • hash_init »
  • PHP Manual
  • Hash
  • Генерация хеш-кода на основе ключа, используя метод HMAC

hash_hmac

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_hmac — Генерация хеш-кода на основе ключа, используя метод HMAC

Описание

string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = false ] )

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.) Смотрите hash_algos() для получения списка поддерживаемых алгоритмов.

data

Сообщение для хеширования.

key

Общий секретный ключ, используемый для генерации HMAC хеш кода.

raw_output

Когда установлено в TRUE, выводит необработанные двоичные данные. При FALSE выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если raw_output задан как TRUE, то возвращается хеш-код в виде бинарных данных. Возвращает FALSE, если algo неизвестен.

Примеры

Пример #1 Пример использования hash_hmac()

<?php
echo hash_hmac('ripemd160', 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.', 'secret');
?>

Результат выполнения данного примера:

b95d4abec7c27ec87fb54da1621f9942948879e4

Смотрите также

  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_algos() - Возвращает список зарегистрированных алгоритмов хеширования
  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_hmac_file() - Генерация хэш-кода на основе ключа, используя метод HMAC и содержимое полученного файла


Инициализация инкрементального контекста хеширования

  • « hash_hmac
  • hash_pbkdf2 »
  • PHP Manual
  • Hash
  • Инициализация инкрементального контекста хеширования

hash_init

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_init — Инициализация инкрементального контекста хеширования

Описание

resource hash_init ( string $algo [, int $options = 0 [, string $key = NULL ]] )

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.). Весь список поддерживаемых алгоритмов можно посмотреть здесь hash_algos().

options

Необязательные настройки для генерации хеша, в настоящее время поддерживается только один вариант: HASH_HMAC. При этом параметр key должен быть указан.

key

Если HASH_HMAC указан в параметре options, то в этом параметре нужно предоставить общий секретный ключ, который будет использоваться с методом хеширования HMAC.

Возвращаемые значения

Возвращает ресурс хеширования для использования в функциях hash_update(), hash_update_stream(), hash_update_file() и hash_final().

Примеры

Пример #1 Пример инкриментального хеширования

<?php
$ctx = hash_init('md5');
hash_update($ctx, 'Наглый коричневый лисёнок ');
hash_update($ctx, 'прыгает вокруг ленивой собаки.');
echo hash_final($ctx);
?>

Результат выполнения данного примера:

bff8b4bc8b5c1c1d5b3211dfb21d1e76

Смотрите также

  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_algos() - Возвращает список зарегистрированных алгоритмов хеширования
  • hash_file() - Генерация хеш-значения, используя содержимое заданного файла
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_hmac_file() - Генерация хэш-кода на основе ключа, используя метод HMAC и содержимое полученного файла


Generate a PBKDF2 key derivation of a supplied password

  • « hash_init
  • hash_update_file »
  • PHP Manual
  • Hash
  • Generate a PBKDF2 key derivation of a supplied password

hash_pbkdf2

(PHP 5 >= 5.5.0, PHP 7)

hash_pbkdf2 — Generate a PBKDF2 key derivation of a supplied password

Описание

string hash_pbkdf2 ( string $algo , string $password , string $salt , int $iterations [, int $length = 0 [, bool $raw_output = false ]] )

Список параметров

algo

Name of selected hashing algorithm (i.e. md5, sha256, haval160,4, etc..) See hash_algos() for a list of supported algorithms.

password

The password to use for the derivation.

salt

The salt to use for the derivation. This value should be generated randomly.

iterations

The number of internal iterations to perform for the derivation.

length

The length of the output string. If raw_output is TRUE this corresponds to the byte-length of the derived key, if raw_output is FALSE this corresponds to twice the byte-length of the derived key (as every byte of the key is returned as two hexits).

If 0 is passed, the entire output of the supplied algorithm is used.

raw_output

When set to TRUE, outputs raw binary data. FALSE outputs lowercase hexits.

Возвращаемые значения

Returns a string containing the derived key as lowercase hexits unless raw_output is set to TRUE in which case the raw binary representation of the derived key is returned.

Ошибки

An E_WARNING will be raised if the algorithm is unknown, the iterations parameter is less than or equal to 0, the length is less than 0 or the salt is too long (greater than INT_MAX - 4).

Примеры

Пример #1 hash_pbkdf2() example, basic usage

<?php
$password = "password";
$iterations = 1000;

// Generate a random IV using mcrypt_create_iv(),
// openssl_random_pseudo_bytes() or another suitable source of randomness
$salt = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);

$hash = hash_pbkdf2("sha256", $password, $salt, $iterations, 20);
echo $hash;
?>

Результатом выполнения данного примера будет что-то подобное:

120fb6cffcf8b32c43e7

Примечания

Предостережение

The PBKDF2 method can be used for hashing passwords for storage. However, it should be noted that password_hash() or crypt() with CRYPT_BLOWFISH are better suited for password storage.

Смотрите также

  • crypt() - Необратимое хэширование строки
  • password_hash() - Creates a password hash
  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_algos() - Возвращает список зарегистрированных алгоритмов хеширования
  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_hmac_file() - Генерация хэш-кода на основе ключа, используя метод HMAC и содержимое полученного файла


Добавляет данные из файла в активный контекст хеширования

  • « hash_pbkdf2
  • hash_update_stream »
  • PHP Manual
  • Hash
  • Добавляет данные из файла в активный контекст хеширования

hash_update_file

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_update_file — Добавляет данные из файла в активный контекст хеширования

Описание

bool hash_update_file ( resource $hcontext , string $filename [, resource $scontext = NULL ] )

Список параметров

hcontext

Контекст хеширования, возвращенный hash_init().

filename

Имя или URL файла для хеширования; Поддерживаются обработчики fopen.

scontext

Контекст потока, возвращенный stream_context_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_update() - Добавляет данные в активный контекст хеширования
  • hash_update_stream() - Добавляет данные из открытого потока в активный контекст хеширования
  • hash_final() - Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода
  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_file() - Генерация хеш-значения, используя содержимое заданного файла


Добавляет данные из открытого потока в активный контекст хеширования

  • « hash_update_file
  • hash_update »
  • PHP Manual
  • Hash
  • Добавляет данные из открытого потока в активный контекст хеширования

hash_update_stream

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_update_stream — Добавляет данные из открытого потока в активный контекст хеширования

Описание

int hash_update_stream ( resource $context , resource $handle [, int $length = -1 ] )

Список параметров

context

Контекст хеширования, возвращаемый hash_init().

handle

Дескриптор открытого файла, возвращаемый любой функцией создания потока.

length

Максимальное число символов для копирования из handle в контекст хеширования.

Возвращаемые значения

Фактическое количество байт, добавленное в контекст хеширования из handle.

Примеры

Пример #1 Пример использования hash_update_stream()

<?php
$fp = tmpfile();
fwrite($fp, 'Наглый коричневый лисёнок прыгает вокруг ленивой собаки.');
rewind($fp);

$ctx = hash_init('md5');
hash_update_stream($ctx, $fp);
echo hash_final($ctx);
?>

Результат выполнения данного примера:

bff8b4bc8b5c1c1d5b3211dfb21d1e76

Смотрите также

  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_update() - Добавляет данные в активный контекст хеширования
  • hash_final() - Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода
  • hash() - Генерирует хеш-код (дайджест сообщения)
  • hash_file() - Генерация хеш-значения, используя содержимое заданного файла


Добавляет данные в активный контекст хеширования

  • « hash_update_stream
  • hash »
  • PHP Manual
  • Hash
  • Добавляет данные в активный контекст хеширования

hash_update

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash_update — Добавляет данные в активный контекст хеширования

Описание

bool hash_update ( resource $context , string $data )

Список параметров

context

Контекст хеширования, возвращаемый hash_init().

data

Сообщение, которое должно быть включено в хеш.

Возвращаемые значения

Возвращает TRUE.

Смотрите также

  • hash_init() - Инициализация инкрементального контекста хеширования
  • hash_update_file() - Добавляет данные из файла в активный контекст хеширования
  • hash_update_stream() - Добавляет данные из открытого потока в активный контекст хеширования
  • hash_final() - Завершает инкрементальное хеширование и возвращает результат в виде хеш-кода


Генерирует хеш-код (дайджест сообщения)

  • « hash_update
  • Mcrypt »
  • PHP Manual
  • Hash
  • Генерирует хеш-код (дайджест сообщения)

hash

(PHP 5 >= 5.1.2, PHP 7, PECL hash >= 1.1)

hash — Генерирует хеш-код (дайджест сообщения)

Описание

string hash ( string $algo , string $data [, bool $raw_output = false ] )

Список параметров

algo

Имя выбранного алгоритма хеширования (например, "md5", "sha256", "haval160,4" и т.д.)

data

Сообщение для хеширования.

raw_output

Когда установлено в TRUE, выводит необработанные двоичные данные. При FALSE, выводит данные в шестнадцатеричной кодировке в нижнем регистре.

Возвращаемые значения

Возвращает строку содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если raw_output задан как TRUE, то возвращается хеш-код в виде бинарных данных.

Список изменений

Версия | Описание
5.4.0 | Алгоритм Tiger теперь использует порядок байтов от старшего к младшему (big-endian). Смотри пример ниже.

Примеры

Пример #1 Пример использования hash()

<?php
echo hash('ripemd160', 'The quick brown fox jumped over the lazy dog.');
?>

Результат выполнения данного примера:

8817ca339f7f902ad3fb456150a1bb9b4cb5dde9

Пример #2 Вычесление хэшей Tiger с PHP 5.4 и выше.

<?php
function old_tiger($data = "", $width=192, $rounds = 3) {
    return substr(
        implode(
            array_map(
                function ($h) {
                    return str_pad(bin2hex(strrev($h)), 16, "0");
                },
                str_split(hash("tiger192,$rounds", $data, true), 8)
            )
        ),
        0, 48-(192-$width)/4
    );
}
echo hash('tiger192,3', 'a-string'), PHP_EOL;
echo old_tiger('a-string'), PHP_EOL;
?>

Результат выполнения данного примера в PHP 5.3:

146a7492719b3564094efe7abbd40a7416fd900179d02773
64359b7192746a14740ad4bb7afe4e097327d0790190fd16

Результат выполнения данного примера в PHP 5.4:

64359b7192746a14740ad4bb7afe4e097327d0790190fd16
146a7492719b3564094efe7abbd40a7416fd900179d02773

Смотрите также

  • hash_file() - Генерация хеш-значения, используя содержимое заданного файла
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • hash_init() - Инициализация инкрементального контекста хеширования
  • md5() - Возвращает MD5-хэш строки
  • sha1() - Возвращает SHA1-хэш строки


Mcrypt

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Mcrypt ciphers
  • Примеры
  • Mcrypt
    • mcrypt_cbc — Шифрует/дешифрует данные в режиме CBC
    • mcrypt_cfb — Encrypts/decrypts data in CFB mode
    • mcrypt_create_iv — Creates an initialization vector (IV) from a random source
    • mcrypt_decrypt — Decrypts crypttext with given parameters
    • mcrypt_ecb — Deprecated: Encrypts/decrypts data in ECB mode
    • mcrypt_enc_get_algorithms_name — Returns the name of the opened algorithm
    • mcrypt_enc_get_block_size — Returns the blocksize of the opened algorithm
    • mcrypt_enc_get_iv_size — Returns the size of the IV of the opened algorithm
    • mcrypt_enc_get_key_size — Returns the maximum supported keysize of the opened mode
    • mcrypt_enc_get_modes_name — Returns the name of the opened mode
    • mcrypt_enc_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
    • mcrypt_enc_is_block_algorithm_mode — Checks whether the encryption of the opened mode works on blocks
    • mcrypt_enc_is_block_algorithm — Checks whether the algorithm of the opened mode is a block algorithm
    • mcrypt_enc_is_block_mode — Checks whether the opened mode outputs blocks
    • mcrypt_enc_self_test — Runs a self test on the opened module
    • mcrypt_encrypt — Encrypts plaintext with given parameters
    • mcrypt_generic_deinit — This function deinitializes an encryption module
    • mcrypt_generic_end — This function terminates encryption
    • mcrypt_generic_init — This function initializes all buffers needed for encryption
    • mcrypt_generic — This function encrypts data
    • mcrypt_get_block_size — Gets the block size of the specified cipher
    • mcrypt_get_cipher_name — Gets the name of the specified cipher
    • mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination
    • mcrypt_get_key_size — Gets the key size of the specified cipher
    • mcrypt_list_algorithms — Gets an array of all supported ciphers
    • mcrypt_list_modes — Gets an array of all supported modes
    • mcrypt_module_close — Closes the mcrypt module
    • mcrypt_module_get_algo_block_size — Returns the blocksize of the specified algorithm
    • mcrypt_module_get_algo_key_size — Returns the maximum supported keysize of the opened mode
    • mcrypt_module_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
    • mcrypt_module_is_block_algorithm_mode — Returns if the specified module is a block algorithm or not
    • mcrypt_module_is_block_algorithm — This function checks whether the specified algorithm is a block algorithm
    • mcrypt_module_is_block_mode — Returns if the specified mode outputs blocks or not
    • mcrypt_module_open — Opens the module of the algorithm and the mode to be used
    • mcrypt_module_self_test — This function runs a self test on the specified module
    • mcrypt_ofb — Encrypts/decrypts data in OFB mode
    • mdecrypt_generic — Decrypts data


Введение

This is an interface to the mcrypt library, which supports a wide variety of block algorithms such as DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 and GOST in CBC, OFB, CFB and ECB cipher modes. Additionally, it supports RC6 and IDEA which are considered "non-free". CFB/OFB are 8bit by default.


Требования

Эти функции работают используя » mcrypt. Для того, чтобы использовать их, загрузите libmcrypt-x.x.tar.gz из » http://mcrypt.sourceforge.net/ и следуйте инструкциям по установке.

Начиная с PHP 5.0.0 вам понадобится 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.


Установка

You need to compile PHP with the --with-mcrypt[=DIR] parameter to enable this extension. DIR is the mcrypt install directory. Make sure you compile libmcrypt with the option --disable-posix-threads .


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки 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 can operate in four block cipher modes (CBC, OFB, CFB, and ECB). If linked against libmcrypt-2.4.x or higher the functions can also operate in the block cipher mode nOFB and in STREAM mode. Below you find a list with all supported encryption modes together with the constants that are defined for the encryption mode. For a more complete reference and discussion see Applied Cryptography by Schneier (ISBN 0-471-11709-9).

  • MCRYPT_MODE_ECB (electronic codebook) is suitable for random data, such as encrypting other keys. Since data there is short and random, the disadvantages of ECB have a favorable negative effect.
  • MCRYPT_MODE_CBC (cipher block chaining) is especially suitable for encrypting files where the security is increased over ECB significantly.
  • MCRYPT_MODE_CFB (cipher feedback) is the best mode for encrypting byte streams where single bytes must be encrypted.
  • MCRYPT_MODE_OFB (output feedback, in 8bit) is comparable to CFB, but can be used in applications where error propagation cannot be tolerated. It's insecure (because it operates in 8bit mode) so it is not recommended to use it.
  • MCRYPT_MODE_NOFB (output feedback, in nbit) is comparable to OFB, but more secure because it operates on the block size of the algorithm.
  • MCRYPT_MODE_STREAM is an extra mode to include some stream algorithms like "WAKE" or "RC4".

Some other mode and random device constants:

MCRYPT_ENCRYPT (integer)
MCRYPT_DECRYPT (integer)
MCRYPT_DEV_RANDOM (integer)
MCRYPT_DEV_URANDOM (integer)
MCRYPT_RAND (integer)


Mcrypt ciphers

Here is a list of ciphers which are currently supported by the mcrypt extension. For a complete list of supported ciphers, see the defines at the end of mcrypt.h. The general rule with the mcrypt-2.2.x API is that you can access the cipher from PHP with MCRYPT_ciphername. With the libmcrypt-2.4.x and libmcrypt-2.5.x API these constants also work, but it is possible to specify the name of the cipher as a string with a call to mcrypt_module_open().

  • MCRYPT_3DES
  • MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x only)
  • MCRYPT_ARCFOUR (libmcrypt > 2.4.x only)
  • MCRYPT_BLOWFISH
  • MCRYPT_CAST_128
  • MCRYPT_CAST_256
  • MCRYPT_CRYPT
  • MCRYPT_DES
  • MCRYPT_DES_COMPAT (libmcrypt 2.2.x only)
  • MCRYPT_ENIGMA (libmcrypt > 2.4.x only, alias for MCRYPT_CRYPT)
  • MCRYPT_GOST
  • MCRYPT_IDEA (non-free)
  • MCRYPT_LOKI97 (libmcrypt > 2.4.x only)
  • MCRYPT_MARS (libmcrypt > 2.4.x only, non-free)
  • MCRYPT_PANAMA (libmcrypt > 2.4.x only)
  • MCRYPT_RIJNDAEL_128 (libmcrypt > 2.4.x only)
  • MCRYPT_RIJNDAEL_192 (libmcrypt > 2.4.x only)
  • MCRYPT_RIJNDAEL_256 (libmcrypt > 2.4.x only)
  • MCRYPT_RC2
  • MCRYPT_RC4 (libmcrypt 2.2.x only)
  • MCRYPT_RC6 (libmcrypt > 2.4.x only)
  • MCRYPT_RC6_128 (libmcrypt 2.2.x only)
  • MCRYPT_RC6_192 (libmcrypt 2.2.x only)
  • MCRYPT_RC6_256 (libmcrypt 2.2.x only)
  • MCRYPT_SAFER64
  • MCRYPT_SAFER128
  • MCRYPT_SAFERPLUS (libmcrypt > 2.4.x only)
  • MCRYPT_SERPENT(libmcrypt > 2.4.x only)
  • MCRYPT_SERPENT_128 (libmcrypt 2.2.x only)
  • MCRYPT_SERPENT_192 (libmcrypt 2.2.x only)
  • MCRYPT_SERPENT_256 (libmcrypt 2.2.x only)
  • MCRYPT_SKIPJACK (libmcrypt > 2.4.x only)
  • MCRYPT_TEAN (libmcrypt 2.2.x only)
  • MCRYPT_THREEWAY
  • MCRYPT_TRIPLEDES (libmcrypt > 2.4.x only)
  • MCRYPT_TWOFISH (for older mcrypt 2.x versions, or mcrypt > 2.4.x )
  • MCRYPT_TWOFISH128 (TWOFISHxxx are available in newer 2.x versions, but not in the 2.4.x versions)
  • MCRYPT_TWOFISH192
  • MCRYPT_TWOFISH256
  • MCRYPT_WAKE (libmcrypt > 2.4.x only)
  • MCRYPT_XTEA (libmcrypt > 2.4.x only)

You must (in CFB and OFB mode) or can (in CBC mode) supply an initialization vector (IV) to the respective cipher function. The IV must be unique and must be the same when decrypting/encrypting. With data which is stored encrypted, you can take the output of a function of the index under which the data is stored (e.g. the MD5 key of the filename). Alternatively, you can transmit the IV together with the encrypted data (see chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9) for a discussion of this topic).


Примеры

Mcrypt can be used to encrypt and decrypt using the above mentioned ciphers. If you linked against libmcrypt-2.2.x, the four important mcrypt commands (mcrypt_cfb(), mcrypt_cbc(), mcrypt_ecb(), and mcrypt_ofb()) can operate in both modes which are named MCRYPT_ENCRYPT and MCRYPT_DECRYPT, respectively.

If you linked against libmcrypt 2.4.x or 2.5.x, these functions are still available, but it is recommended that you use the advanced functions.

Пример #1 Encrypt an input value with AES with a 256-bit key under 2.4.x and higher in CBC mode

<?php
    $key = hash('sha256', 'this is a secret key', true);
    $input = "Let us meet at 9 o'clock at the secret place.";

    $td = mcrypt_module_open('rijndael-128', '', 'cbc', '');
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_URANDOM);
    mcrypt_generic_init($td, $key, $iv);
    $encrypted_data = mcrypt_generic($td, $input);
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);
?>
This example will give you the encrypted data as a string in $encrypted_data. For a full example see mcrypt_module_open().


Mcrypt

Содержание

  • mcrypt_cbc — Шифрует/дешифрует данные в режиме CBC
  • mcrypt_cfb — Encrypts/decrypts data in CFB mode
  • mcrypt_create_iv — Creates an initialization vector (IV) from a random source
  • mcrypt_decrypt — Decrypts crypttext with given parameters
  • mcrypt_ecb — Deprecated: Encrypts/decrypts data in ECB mode
  • mcrypt_enc_get_algorithms_name — Returns the name of the opened algorithm
  • mcrypt_enc_get_block_size — Returns the blocksize of the opened algorithm
  • mcrypt_enc_get_iv_size — Returns the size of the IV of the opened algorithm
  • mcrypt_enc_get_key_size — Returns the maximum supported keysize of the opened mode
  • mcrypt_enc_get_modes_name — Returns the name of the opened mode
  • mcrypt_enc_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
  • mcrypt_enc_is_block_algorithm_mode — Checks whether the encryption of the opened mode works on blocks
  • mcrypt_enc_is_block_algorithm — Checks whether the algorithm of the opened mode is a block algorithm
  • mcrypt_enc_is_block_mode — Checks whether the opened mode outputs blocks
  • mcrypt_enc_self_test — Runs a self test on the opened module
  • mcrypt_encrypt — Encrypts plaintext with given parameters
  • mcrypt_generic_deinit — This function deinitializes an encryption module
  • mcrypt_generic_end — This function terminates encryption
  • mcrypt_generic_init — This function initializes all buffers needed for encryption
  • mcrypt_generic — This function encrypts data
  • mcrypt_get_block_size — Gets the block size of the specified cipher
  • mcrypt_get_cipher_name — Gets the name of the specified cipher
  • mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination
  • mcrypt_get_key_size — Gets the key size of the specified cipher
  • mcrypt_list_algorithms — Gets an array of all supported ciphers
  • mcrypt_list_modes — Gets an array of all supported modes
  • mcrypt_module_close — Closes the mcrypt module
  • mcrypt_module_get_algo_block_size — Returns the blocksize of the specified algorithm
  • mcrypt_module_get_algo_key_size — Returns the maximum supported keysize of the opened mode
  • mcrypt_module_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm
  • mcrypt_module_is_block_algorithm_mode — Returns if the specified module is a block algorithm or not
  • mcrypt_module_is_block_algorithm — This function checks whether the specified algorithm is a block algorithm
  • mcrypt_module_is_block_mode — Returns if the specified mode outputs blocks or not
  • mcrypt_module_open — Opens the module of the algorithm and the mode to be used
  • mcrypt_module_self_test — This function runs a self test on the specified module
  • mcrypt_ofb — Encrypts/decrypts data in OFB mode
  • mdecrypt_generic — Decrypts data


Шифрует/дешифрует данные в режиме CBC

  • « Mcrypt
  • mcrypt_cfb »
  • PHP Manual
  • Mcrypt
  • Шифрует/дешифрует данные в режиме CBC

mcrypt_cbc

(PHP 4, PHP 5)

mcrypt_cbc — Шифрует/дешифрует данные в режиме CBC

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.5.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Описание

string mcrypt_cbc ( int $cipher , string $key , string $data , int $mode [, string $iv ] )
string mcrypt_cbc ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

Первый прототип работает при связке с libmcrypt 2.2.x, второй - при связке с libmcrypt 2.4.x или выше. Параметр mode должен быть либо MCRYPT_ENCRYPT, либо MCRYPT_DECRYPT.


Encrypts/decrypts data in CFB mode

  • « mcrypt_cbc
  • mcrypt_create_iv »
  • PHP Manual
  • Mcrypt
  • Encrypts/decrypts data in CFB mode

mcrypt_cfb

(PHP 4, PHP 5)

mcrypt_cfb — Encrypts/decrypts data in CFB mode

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.5.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Описание

string mcrypt_cfb ( int $cipher , string $key , string $data , int $mode , string $iv )
string mcrypt_cfb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.


Creates an initialization vector (IV) from a random source

  • « mcrypt_cfb
  • mcrypt_decrypt »
  • PHP Manual
  • Mcrypt
  • Creates an initialization vector (IV) from a random source

mcrypt_create_iv

(PHP 4, PHP 5, PHP 7)

mcrypt_create_iv — Creates an initialization vector (IV) from a random source

Описание

string mcrypt_create_iv ( int $size [, int $source = MCRYPT_DEV_URANDOM ] )

Creates an initialization vector (IV) from a random source.

The IV is only meant to give an alternative seed to the encryption routines. This IV does not need to be secret at all, though it can be desirable. You even can send it along with your ciphertext without losing security.

Список параметров

size

The size of the IV.

source

The source of the IV. The source can be MCRYPT_RAND (system random number generator), MCRYPT_DEV_RANDOM (read data from /dev/random) and MCRYPT_DEV_URANDOM (read data from /dev/urandom). Prior to 5.3.0, MCRYPT_RAND was the only one supported on Windows.

Note that the default value of this parameter was MCRYPT_DEV_RANDOM prior to PHP 5.6.0.

Замечание: Note that MCRYPT_DEV_RANDOM may block until more entropy is available.

Возвращаемые значения

Returns the initialization vector, or FALSE on error.

Список изменений

Версия | Описание
5.6.0 | MCRYPT_DEV_URANDOM is now the default value of source.
5.3.0 | MCRYPT_DEV_RANDOM and MCRYPT_DEV_URANDOM became available on Windows platforms.
5.3.0 | It is no longer required to call srand() first. This is now done automatically.

Примеры

Пример #1 mcrypt_create_iv() Example

<?php
    $size = mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB);
    $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
?>

Смотрите также

  • » http://www.ciphersbyritter.com/GLOSSARY.HTM#IV
  • » http://www.quadibloc.com/crypto/co0409.htm
  • Chapter 9.3 of Applied Cryptography by Schneier (ISBN 0-471-11709-9)
  • random_bytes() - Генератор криптографически безопасных случайных байт


Decrypts crypttext with given parameters

  • « mcrypt_create_iv
  • mcrypt_ecb »
  • PHP Manual
  • Mcrypt
  • Decrypts crypttext with given parameters

mcrypt_decrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_decrypt — Decrypts crypttext with given parameters

Описание

string mcrypt_decrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

Decrypts the data and returns the unencrypted data.

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

key

The key with which the data was encrypted. If the provided key size is not supported by the cipher, the function will emit a warning and return FALSE

data

The data that will be decrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'.

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

iv

Используется для инициализации в режимах CBC, CFB, OFB, а также в некоторых алгоритмах в режиме STREAM. Если переданный IV размер не поддерживается режимом сцепления или IV не был передан, а режим сцепления его требует, функция сгенерирует предупреждение об ошибке и вернет FALSE.

Возвращаемые значения

Returns the decrypted data as a string или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.6.0 | Invalid key and iv sizes are no longer accepted. mcrypt_decrypt() will now throw a warning and return FALSE if the inputs are invalid. Previously keys and IVs were padded with '\0' bytes to the next valid size.

Смотрите также

  • mcrypt_encrypt() - Encrypts plaintext with given parameters


Deprecated: Encrypts/decrypts data in ECB mode

  • « mcrypt_decrypt
  • mcrypt_enc_get_algorithms_name »
  • PHP Manual
  • Mcrypt
  • Deprecated: Encrypts/decrypts data in ECB mode

mcrypt_ecb

(PHP 4, PHP 5)

mcrypt_ecb — Deprecated: Encrypts/decrypts data in ECB mode

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.5.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Описание

string mcrypt_ecb ( int $cipher , string $key , string $data , int $mode )
string mcrypt_ecb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.


Returns the name of the opened algorithm

  • « mcrypt_ecb
  • mcrypt_enc_get_block_size »
  • PHP Manual
  • Mcrypt
  • Returns the name of the opened algorithm

mcrypt_enc_get_algorithms_name

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_algorithms_name — Returns the name of the opened algorithm

Описание

string mcrypt_enc_get_algorithms_name ( resource $td )

This function returns the name of the algorithm.

Список параметров

td

The encryption descriptor.

Возвращаемые значения

Returns the name of the opened algorithm as a string.

Примеры

Пример #1 mcrypt_enc_get_algorithms_name() example

<?php
$td = mcrypt_module_open(MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_algorithms_name($td). "\n";

$td = mcrypt_module_open('cast-256', '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_algorithms_name($td). "\n";
?>

Результат выполнения данного примера:

CAST-256
CAST-256


Returns the blocksize of the opened algorithm

  • « mcrypt_enc_get_algorithms_name
  • mcrypt_enc_get_iv_size »
  • PHP Manual
  • Mcrypt
  • Returns the blocksize of the opened algorithm

mcrypt_enc_get_block_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_block_size — Returns the blocksize of the opened algorithm

Описание

int mcrypt_enc_get_block_size ( resource $td )

Gets the blocksize of the opened algorithm.

Список параметров

td

The encryption descriptor.

Возвращаемые значения

Returns the block size of the specified algorithm in bytes.


Returns the size of the IV of the opened algorithm

  • « mcrypt_enc_get_block_size
  • mcrypt_enc_get_key_size »
  • PHP Manual
  • Mcrypt
  • Returns the size of the IV of the opened algorithm

mcrypt_enc_get_iv_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_iv_size — Returns the size of the IV of the opened algorithm

Описание

int mcrypt_enc_get_iv_size ( resource $td )

This function returns the size of the IV of the algorithm specified by the encryption descriptor in bytes. An IV is used in cbc, cfb and ofb modes, and in some algorithms in stream mode.

Список параметров

td

The encryption descriptor.

Возвращаемые значения

Returns the size of the IV, or 0 if the IV is ignored by the algorithm.


Returns the maximum supported keysize of the opened mode

  • « mcrypt_enc_get_iv_size
  • mcrypt_enc_get_modes_name »
  • PHP Manual
  • Mcrypt
  • Returns the maximum supported keysize of the opened mode

mcrypt_enc_get_key_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_key_size — Returns the maximum supported keysize of the opened mode

Описание

int mcrypt_enc_get_key_size ( resource $td )

Gets the maximum supported key size of the algorithm in bytes.

Список параметров

td

The encryption descriptor.

Возвращаемые значения

Returns the maximum supported key size of the algorithm in bytes.


Returns the name of the opened mode

  • « mcrypt_enc_get_key_size
  • mcrypt_enc_get_supported_key_sizes »
  • PHP Manual
  • Mcrypt
  • Returns the name of the opened mode

mcrypt_enc_get_modes_name

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_modes_name — Returns the name of the opened mode

Описание

string mcrypt_enc_get_modes_name ( resource $td )

This function returns the name of the mode.

Список параметров

td

The encryption descriptor.

Возвращаемые значения

Returns the name as a string.

Примеры

Пример #1 mcrypt_enc_get_modes_name() example

<?php
$td = mcrypt_module_open (MCRYPT_CAST_256, '', MCRYPT_MODE_CFB, '');
echo mcrypt_enc_get_modes_name($td). "\n";

$td = mcrypt_module_open ('cast-256', '', 'ecb', '');
echo mcrypt_enc_get_modes_name($td). "\n";
?>

Результат выполнения данного примера:

CFB
ECB


Returns an array with the supported keysizes of the opened algorithm

  • « mcrypt_enc_get_modes_name
  • mcrypt_enc_is_block_algorithm_mode »
  • PHP Manual
  • Mcrypt
  • Returns an array with the supported keysizes of the opened algorithm

mcrypt_enc_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm

Описание

array mcrypt_enc_get_supported_key_sizes ( resource $td )

Gets the supported key sizes of the opened algorithm.

Список параметров

td

The encryption descriptor.

Возвращаемые значения

Returns an array with the key sizes supported by the algorithm specified by the encryption descriptor. If it returns an empty array then all key sizes between 1 and mcrypt_enc_get_key_size() are supported by the algorithm.

Примеры

Пример #1 mcrypt_enc_get_supported_key_sizes() example

<?php
    $td = mcrypt_module_open('rijndael-256', '', 'ecb', '');
    var_dump(mcrypt_enc_get_supported_key_sizes($td));
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  int(16)
  [1]=>
  int(24)
  [2]=>
  int(32)
}


Checks whether the encryption of the opened mode works on blocks

  • « mcrypt_enc_get_supported_key_sizes
  • mcrypt_enc_is_block_algorithm »
  • PHP Manual
  • Mcrypt
  • Checks whether the encryption of the opened mode works on blocks

mcrypt_enc_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_is_block_algorithm_mode — Checks whether the encryption of the opened mode works on blocks

Описание

bool mcrypt_enc_is_block_algorithm_mode ( resource $td )

Tells whether the algorithm of the opened mode works on blocks (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb)..

Список параметров

td

The encryption descriptor.

Возвращаемые значения

Returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE.


Checks whether the algorithm of the opened mode is a block algorithm

  • « mcrypt_enc_is_block_algorithm_mode
  • mcrypt_enc_is_block_mode »
  • PHP Manual
  • Mcrypt
  • Checks whether the algorithm of the opened mode is a block algorithm

mcrypt_enc_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_is_block_algorithm — Checks whether the algorithm of the opened mode is a block algorithm

Описание

bool mcrypt_enc_is_block_algorithm ( resource $td )

Tells whether the algorithm of the opened mode is a block algorithm.

Список параметров

td

The encryption descriptor.

Возвращаемые значения

Returns TRUE if the algorithm is a block algorithm or FALSE if it is a stream one.


Checks whether the opened mode outputs blocks

  • « mcrypt_enc_is_block_algorithm
  • mcrypt_enc_self_test »
  • PHP Manual
  • Mcrypt
  • Checks whether the opened mode outputs blocks

mcrypt_enc_is_block_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_is_block_mode — Checks whether the opened mode outputs blocks

Описание

bool mcrypt_enc_is_block_mode ( resource $td )

Tells whether the opened mode outputs blocks (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream).

Список параметров

td

The encryption descriptor.

Возвращаемые значения

Returns TRUE if the mode outputs blocks of bytes, or FALSE if it outputs just bytes.


Runs a self test on the opened module

  • « mcrypt_enc_is_block_mode
  • mcrypt_encrypt »
  • PHP Manual
  • Mcrypt
  • Runs a self test on the opened module

mcrypt_enc_self_test

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_enc_self_test — Runs a self test on the opened module

Описание

int mcrypt_enc_self_test ( resource $td )

This function runs the self test on the algorithm specified by the descriptor td.

Список параметров

td

The encryption descriptor.

Возвращаемые значения

If the self test succeeds it returns FALSE. In case of an error, it returns TRUE.


Encrypts plaintext with given parameters

  • « mcrypt_enc_self_test
  • mcrypt_generic_deinit »
  • PHP Manual
  • Mcrypt
  • Encrypts plaintext with given parameters

mcrypt_encrypt

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_encrypt — Encrypts plaintext with given parameters

Описание

string mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

Encrypts the data and returns it.

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

key

The key with which the data will be encrypted. If the provided key size is not supported by the cipher, the function will emit a warning and return FALSE

data

The data that will be encrypted with the given cipher and mode. If the size of the data is not n * blocksize, the data will be padded with '\0'.

The returned crypttext can be larger than the size of the data that was given by data.

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

iv

Используется для инициализации в режимах CBC, CFB, OFB, а также в некоторых алгоритмах в режиме STREAM. Если переданный IV размер не поддерживается режимом сцепления или IV не был передан, а режим сцепления его требует, функция сгенерирует предупреждение об ошибке и вернет FALSE.

Возвращаемые значения

Returns the encrypted data as a string или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.6.0 | Invalid key and iv sizes are no longer accepted. mcrypt_encrypt() will now throw a warning and return FALSE if the inputs are invalid. Previously keys and IVs were padded with '\0' bytes to the next valid size.

Примеры

Пример #1 mcrypt_encrypt() Example

<?php
    # --- ENCRYPTION ---

    # the key should be random binary, use scrypt, bcrypt or PBKDF2 to
    # convert a string into a key
    # key is specified using hexadecimal
    $key = pack('H*', "bcb04b7e103a0cd8b54763051cef08bc55abe029fdebae5e1d417e2ffb2a00a3");

    # show key size use either 16, 24 or 32 byte keys for AES-128, 192
    # and 256 respectively
    $key_size =  strlen($key);
    echo "Key size: " . $key_size . "\n";

    $plaintext = "This string was AES-256 / CBC / ZeroBytePadding encrypted.";

    # create a random IV to use with CBC encoding
    $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    # creates a cipher text compatible with AES (Rijndael block size = 128)
    # to keep the text confidential
    # only suitable for encoded input that never ends with value 00h
    # (because of default zero padding)
    $ciphertext = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key,
                                 $plaintext, MCRYPT_MODE_CBC, $iv);

    # prepend the IV for it to be available for decryption
    $ciphertext = $iv . $ciphertext;

    # encode the resulting cipher text so it can be represented by a string
    $ciphertext_base64 = base64_encode($ciphertext);

    echo  $ciphertext_base64 . "\n";

    # === WARNING ===

    # Resulting cipher text has no integrity or authenticity added
    # and is not protected against padding oracle attacks.

    # --- DECRYPTION ---

    $ciphertext_dec = base64_decode($ciphertext_base64);

    # retrieves the IV, iv_size should be created using mcrypt_get_iv_size()
    $iv_dec = substr($ciphertext_dec, 0, $iv_size);

    # retrieves the cipher text (everything except the $iv_size in the front)
    $ciphertext_dec = substr($ciphertext_dec, $iv_size);

    # may remove 00h valued characters from end of plain text
    $plaintext_dec = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key,
                                    $ciphertext_dec, MCRYPT_MODE_CBC, $iv_dec);

    echo  $plaintext_dec . "\n";
?>

Результат выполнения данного примера:

Key size: 32
ENJW8mS2KaJoNB5E5CoSAAu0xARgsR1bdzFWpEn+poYw45q+73az5kYi4j+0haevext1dGrcW8Qi59txfCBV8BBj3bzRP3dFCp3CPQSJ8eU=
This string was AES-256 / CBC / ZeroBytePadding encrypted.

Смотрите также

  • mcrypt_decrypt() - Decrypts crypttext with given parameters
  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used


This function deinitializes an encryption module

  • « mcrypt_encrypt
  • mcrypt_generic_end »
  • PHP Manual
  • Mcrypt
  • This function deinitializes an encryption module

mcrypt_generic_deinit

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

mcrypt_generic_deinit — This function deinitializes an encryption module

Описание

bool mcrypt_generic_deinit ( resource $td )

This function terminates encryption specified by the encryption descriptor (td). It clears all buffers, but does not close the module. You need to call mcrypt_module_close() yourself. (But PHP does this for you at the end of the script.)

Список параметров

td

The encryption descriptor.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption


This function terminates encryption

  • « mcrypt_generic_deinit
  • mcrypt_generic_init »
  • PHP Manual
  • Mcrypt
  • This function terminates encryption

mcrypt_generic_end

(PHP 4 >= 4.0.2, PHP 5)

mcrypt_generic_end — This function terminates encryption

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • mcrypt_generic_deinit()

Описание

bool mcrypt_generic_end ( resource $td )

Внимание

mcrypt_generic_deinit() should be used instead of this function, as it can cause crashes when used with mcrypt_module_close() due to multiple buffer frees.

This function terminates encryption specified by the encryption descriptor (td). Actually it clears all buffers, and closes all the modules used. Returns FALSE on error, or TRUE on success.


This function initializes all buffers needed for encryption

  • « mcrypt_generic_end
  • mcrypt_generic »
  • PHP Manual
  • Mcrypt
  • This function initializes all buffers needed for encryption

mcrypt_generic_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_generic_init — This function initializes all buffers needed for encryption

Описание

int mcrypt_generic_init ( resource $td , string $key , string $iv )

You need to call this function before every call to mcrypt_generic() or mdecrypt_generic().

Список параметров

td

The encryption descriptor.

key

The maximum length of the key should be the one obtained by calling mcrypt_enc_get_key_size() and every value smaller than this is legal.

iv

The IV should normally have the size of the algorithms block size, but you must obtain the size by calling mcrypt_enc_get_iv_size(). IV is ignored in ECB. IV MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be random and unique (but not secret). The same IV must be used for encryption/decryption. If you do not want to use it you should set it to zeros, but this is not recommended.

Возвращаемые значения

The function returns a negative value on error: -3 when the key length was incorrect, -4 when there was a memory allocation problem and any other return value is an unknown error. If an error occurs a warning will be displayed accordingly. FALSE is returned if incorrect parameters were passed.

Смотрите также

  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used


This function encrypts data

  • « mcrypt_generic_init
  • mcrypt_get_block_size »
  • PHP Manual
  • Mcrypt
  • This function encrypts data

mcrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_generic — This function encrypts data

Описание

string mcrypt_generic ( resource $td , string $data )

This function encrypts data. The data is padded with "\0" to make sure the length of the data is n * blocksize. This function returns the encrypted data. Note that the length of the returned string can in fact be longer than the input, due to the padding of the data.

If you want to store the encrypted data in a database make sure to store the entire string as returned by mcrypt_generic, or the string will not entirely decrypt properly. If your original string is 10 characters long and the block size is 8 (use mcrypt_enc_get_block_size() to determine the blocksize), you would need at least 16 characters in your database field. Note the string returned by mdecrypt_generic() will be 16 characters as well...use rtrim($str, "\0") to remove the padding.

If you are for example storing the data in a MySQL database remember that varchar fields automatically have trailing spaces removed during insertion. As encrypted data can end in a space (ASCII 32), the data will be damaged by this removal. Store data in a tinyblob/tinytext (or larger) field instead.

Список параметров

td

The encryption descriptor.

The encryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

data

The data to encrypt.

Возвращаемые значения

Returns the encrypted data.

Смотрите также

  • mdecrypt_generic() - Decrypts data
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption
  • mcrypt_generic_deinit() - This function deinitializes an encryption module


Gets the block size of the specified cipher

  • « mcrypt_generic
  • mcrypt_get_cipher_name »
  • PHP Manual
  • Mcrypt
  • Gets the block size of the specified cipher

mcrypt_get_block_size

(PHP 4, PHP 5, PHP 7)

mcrypt_get_block_size — Gets the block size of the specified cipher

Описание

int mcrypt_get_block_size ( int $cipher )
int mcrypt_get_block_size ( string $cipher , string $mode )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_block_size() is used to get the size of a block of the specified cipher (in combination with an encryption mode).

It is more useful to use the mcrypt_enc_get_block_size() function as this uses the resource returned by mcrypt_module_open().

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

Возвращаемые значения

Gets the block size, as an integer.

Примеры

Пример #1 mcrypt_get_block_size() example

This example shows how to use this function when linked against libmcrypt 2.4.x and 2.5.x.

<?php

echo mcrypt_get_block_size('tripledes', 'ecb'); // 8

?>

Смотрите также

  • mcrypt_get_key_size() - Gets the key size of the specified cipher
  • mcrypt_enc_get_block_size() - Returns the blocksize of the opened algorithm
  • mcrypt_encrypt() - Encrypts plaintext with given parameters


Gets the name of the specified cipher

  • « mcrypt_get_block_size
  • mcrypt_get_iv_size »
  • PHP Manual
  • Mcrypt
  • Gets the name of the specified cipher

mcrypt_get_cipher_name

(PHP 4, PHP 5, PHP 7)

mcrypt_get_cipher_name — Gets the name of the specified cipher

Описание

string mcrypt_get_cipher_name ( int $cipher )
string mcrypt_get_cipher_name ( string $cipher )

mcrypt_get_cipher_name() is used to get the name of the specified cipher.

mcrypt_get_cipher_name() takes the cipher number as an argument (libmcrypt 2.2.x) or takes the cipher name as an argument (libmcrypt 2.4.x or higher) and returns the name of the cipher or FALSE, if the cipher does not exist.

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

Возвращаемые значения

This function returns the name of the cipher or FALSE if the cipher does not exist.

Примеры

Пример #1 mcrypt_get_cipher_name() Example

<?php
   $cipher = MCRYPT_TripleDES;

   echo mcrypt_get_cipher_name($cipher);
?>

Результат выполнения данного примера:

3DES


Returns the size of the IV belonging to a specific cipher/mode combination

  • « mcrypt_get_cipher_name
  • mcrypt_get_key_size »
  • PHP Manual
  • Mcrypt
  • Returns the size of the IV belonging to a specific cipher/mode combination

mcrypt_get_iv_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_get_iv_size — Returns the size of the IV belonging to a specific cipher/mode combination

Описание

int mcrypt_get_iv_size ( string $cipher , string $mode )

Gets the size of the IV belonging to a specific cipher/mode combination.

It is more useful to use the mcrypt_enc_get_iv_size() function as this uses the resource returned by mcrypt_module_open().

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

The IV is ignored in ECB mode as this mode does not require it. You will need to have the same IV (think: starting point) both at encryption and decryption stages, otherwise your encryption will fail.

Возвращаемые значения

Returns the size of the Initialization Vector (IV) in bytes. On error the function returns FALSE. If the IV is ignored in the specified cipher/mode combination zero is returned.

Примеры

Пример #1 mcrypt_get_iv_size() Example

<?php
    echo mcrypt_get_iv_size(MCRYPT_CAST_256, MCRYPT_MODE_CFB) . "\n";

    echo mcrypt_get_iv_size('des', 'ecb') . "\n";
?>

Смотрите также

  • mcrypt_get_block_size() - Gets the block size of the specified cipher
  • mcrypt_enc_get_iv_size() - Returns the size of the IV of the opened algorithm
  • mcrypt_create_iv() - Creates an initialization vector (IV) from a random source


Gets the key size of the specified cipher

  • « mcrypt_get_iv_size
  • mcrypt_list_algorithms »
  • PHP Manual
  • Mcrypt
  • Gets the key size of the specified cipher

mcrypt_get_key_size

(PHP 4, PHP 5, PHP 7)

mcrypt_get_key_size — Gets the key size of the specified cipher

Описание

int mcrypt_get_key_size ( int $cipher )
int mcrypt_get_key_size ( string $cipher , string $mode )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or 2.5.x.

mcrypt_get_key_size() is used to get the size of a key of the specified cipher (in combination with an encryption mode).

It is more useful to use the mcrypt_enc_get_key_size() function as this uses the resource returned by mcrypt_module_open().

Список параметров

cipher

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

Возвращаемые значения

Returns the maximum supported key size of the algorithm in bytes или FALSE в случае возникновения ошибки.

Примеры

Пример #1 mcrypt_get_key_size() Example

<?php
    echo mcrypt_get_key_size('tripledes', 'ecb');
?>

The example above shows how to use this function when linked against libmcrypt 2.4.x or 2.5.x.

Результат выполнения данного примера:

24

Смотрите также

  • mcrypt_get_block_size() - Gets the block size of the specified cipher
  • mcrypt_enc_get_key_size() - Returns the maximum supported keysize of the opened mode
  • mcrypt_encrypt() - Encrypts plaintext with given parameters


Gets an array of all supported ciphers

  • « mcrypt_get_key_size
  • mcrypt_list_modes »
  • PHP Manual
  • Mcrypt
  • Gets an array of all supported ciphers

mcrypt_list_algorithms

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_list_algorithms — Gets an array of all supported ciphers

Описание

array mcrypt_list_algorithms ([ string $lib_dir = ini_get("mcrypt.algorithms_dir") ] )

Gets the list of all supported algorithms in the lib_dir parameter.

Список параметров

lib_dir

Specifies the directory where all algorithms are located. If not specified, the value of the mcrypt.algorithms_dir php.ini directive is used.

Возвращаемые значения

Returns an array with all the supported algorithms.

Примеры

Пример #1 mcrypt_list_algorithms() Example

<?php
    $algorithms = mcrypt_list_algorithms("/usr/local/lib/libmcrypt");

    foreach ($algorithms as $cipher) {
        echo "$cipher<br />\n";
    }
?>

The example above will produce a list with all supported algorithms in the "/usr/local/lib/libmcrypt" directory.


Gets an array of all supported modes

  • « mcrypt_list_algorithms
  • mcrypt_module_close »
  • PHP Manual
  • Mcrypt
  • Gets an array of all supported modes

mcrypt_list_modes

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_list_modes — Gets an array of all supported modes

Описание

array mcrypt_list_modes ([ string $lib_dir = ini_get("mcrypt.modes_dir") ] )

Gets the list of all supported modes in the lib_dir parameter.

Список параметров

lib_dir

Specifies the directory where all modes are located. If not specified, the value of the mcrypt.modes_dir php.ini directive is used.

Возвращаемые значения

Returns an array with all the supported modes.

Примеры

Пример #1 mcrypt_list_modes() Example

<?php
    $modes = mcrypt_list_modes();

    foreach ($modes as $mode) {
        echo "$mode <br />\n";
    }
?>

The example above will produce a list with all supported algorithms in the default mode directory. If it is not set with the mcrypt.modes_dir php.ini directive, the default directory of mcrypt is used (which is /usr/local/lib/libmcrypt).


Closes the mcrypt module

  • « mcrypt_list_modes
  • mcrypt_module_get_algo_block_size »
  • PHP Manual
  • Mcrypt
  • Closes the mcrypt module

mcrypt_module_close

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_close — Closes the mcrypt module

Описание

bool mcrypt_module_close ( resource $td )

Closes the specified encryption handle.

Список параметров

td

The encryption descriptor.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mcrypt_module_open() - Opens the module of the algorithm and the mode to be used


Returns the blocksize of the specified algorithm

  • « mcrypt_module_close
  • mcrypt_module_get_algo_key_size »
  • PHP Manual
  • Mcrypt
  • Returns the blocksize of the specified algorithm

mcrypt_module_get_algo_block_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_get_algo_block_size — Returns the blocksize of the specified algorithm

Описание

int mcrypt_module_get_algo_block_size ( string $algorithm [, string $lib_dir ] )

Gets the blocksize of the specified algorithm.

Список параметров

algorithm

The algorithm name.

lib_dir

This optional parameter can contain the location where the mode module is on the system.

Возвращаемые значения

Returns the block size of the algorithm specified in bytes.


Returns the maximum supported keysize of the opened mode

  • « mcrypt_module_get_algo_block_size
  • mcrypt_module_get_supported_key_sizes »
  • PHP Manual
  • Mcrypt
  • Returns the maximum supported keysize of the opened mode

mcrypt_module_get_algo_key_size

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_get_algo_key_size — Returns the maximum supported keysize of the opened mode

Описание

int mcrypt_module_get_algo_key_size ( string $algorithm [, string $lib_dir ] )

Gets the maximum supported keysize of the opened mode.

Список параметров

algorithm

The algorithm name.

lib_dir

This optional parameter can contain the location where the mode module is on the system.

Возвращаемые значения

This function returns the maximum supported key size of the algorithm specified in bytes.


Returns an array with the supported keysizes of the opened algorithm

  • « mcrypt_module_get_algo_key_size
  • mcrypt_module_is_block_algorithm_mode »
  • PHP Manual
  • Mcrypt
  • Returns an array with the supported keysizes of the opened algorithm

mcrypt_module_get_supported_key_sizes

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_get_supported_key_sizes — Returns an array with the supported keysizes of the opened algorithm

Описание

array mcrypt_module_get_supported_key_sizes ( string $algorithm [, string $lib_dir ] )

Returns an array with the key sizes supported by the specified algorithm. If it returns an empty array then all key sizes between 1 and mcrypt_module_get_algo_key_size() are supported by the algorithm.

Список параметров

algorithm

The algorithm to be used.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Возвращаемые значения

Returns an array with the key sizes supported by the specified algorithm. If it returns an empty array then all key sizes between 1 and mcrypt_module_get_algo_key_size() are supported by the algorithm.

Смотрите также

  • mcrypt_enc_get_supported_key_sizes() - Returns an array with the supported keysizes of the opened algorithm


Returns if the specified module is a block algorithm or not

  • « mcrypt_module_get_supported_key_sizes
  • mcrypt_module_is_block_algorithm »
  • PHP Manual
  • Mcrypt
  • Returns if the specified module is a block algorithm or not

mcrypt_module_is_block_algorithm_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_is_block_algorithm_mode — Returns if the specified module is a block algorithm or not

Описание

bool mcrypt_module_is_block_algorithm_mode ( string $mode [, string $lib_dir ] )

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb).

Список параметров

mode

The mode to check.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Возвращаемые значения

This function returns TRUE if the mode is for use with block algorithms, otherwise it returns FALSE. (e.g. FALSE for stream, and TRUE for cbc, cfb, ofb).


This function checks whether the specified algorithm is a block algorithm

  • « mcrypt_module_is_block_algorithm_mode
  • mcrypt_module_is_block_mode »
  • PHP Manual
  • Mcrypt
  • This function checks whether the specified algorithm is a block algorithm

mcrypt_module_is_block_algorithm

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_is_block_algorithm — This function checks whether the specified algorithm is a block algorithm

Описание

bool mcrypt_module_is_block_algorithm ( string $algorithm [, string $lib_dir ] )

This function returns TRUE if the specified algorithm is a block algorithm, or FALSE if it is a stream one.

Список параметров

algorithm

The algorithm to check.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Возвращаемые значения

This function returns TRUE if the specified algorithm is a block algorithm, or FALSE if it is a stream one.


Returns if the specified mode outputs blocks or not

  • « mcrypt_module_is_block_algorithm
  • mcrypt_module_open »
  • PHP Manual
  • Mcrypt
  • Returns if the specified mode outputs blocks or not

mcrypt_module_is_block_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_is_block_mode — Returns if the specified mode outputs blocks or not

Описание

bool mcrypt_module_is_block_mode ( string $mode [, string $lib_dir ] )

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs just bytes. (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream).

Список параметров

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Возвращаемые значения

This function returns TRUE if the mode outputs blocks of bytes or FALSE if it outputs just bytes. (e.g. TRUE for cbc and ecb, and FALSE for cfb and stream).


Opens the module of the algorithm and the mode to be used

  • « mcrypt_module_is_block_mode
  • mcrypt_module_self_test »
  • PHP Manual
  • Mcrypt
  • Opens the module of the algorithm and the mode to be used

mcrypt_module_open

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_open — Opens the module of the algorithm and the mode to be used

Описание

resource mcrypt_module_open ( string $algorithm , string $algorithm_directory , string $mode , string $mode_directory )

This function opens the module of the algorithm and the mode to be used. The name of the algorithm is specified in algorithm, e.g. "twofish" or is one of the MCRYPT_ciphername constants. The module is closed by calling mcrypt_module_close().

Список параметров

algorithm

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

algorithm_directory

The algorithm_directory parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string (""), the value set by the mcrypt.algorithms_dir php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled into libmcrypt (usually /usr/local/lib/libmcrypt).

mode

Одна из констант MCRYPT_MODE_modename, либо одна из следующих строк: "ecb", "cbc", "cfb", "ofb", "nofb" и "stream".

mode_directory

The mode_directory parameter is used to locate the encryption module. When you supply a directory name, it is used. When you set it to an empty string (""), the value set by the mcrypt.modes_dir php.ini directive is used. When it is not set, the default directory that is used is the one that was compiled-in into libmcrypt (usually /usr/local/lib/libmcrypt).

Возвращаемые значения

Normally it returns an encryption descriptor, or FALSE on error.

Примеры

Пример #1 mcrypt_module_open() Examples

<?php
    $td = mcrypt_module_open(MCRYPT_DES, '',
        MCRYPT_MODE_ECB, '/usr/lib/mcrypt-modes');

    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');
?>

The first line in the example above will try to open the DES cipher from the default directory and the ECB mode from the directory /usr/lib/mcrypt-modes. The second example uses strings as name for the cipher and mode, this only works when the extension is linked against libmcrypt 2.4.x or 2.5.x.

Пример #2 Using mcrypt_module_open() in encryption

<?php
    /* Open the cipher */
    $td = mcrypt_module_open('rijndael-256', '', 'ofb', '');

    /* Create the IV and determine the keysize length, use MCRYPT_RAND
     * on Windows instead */
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_DEV_RANDOM);
    $ks = mcrypt_enc_get_key_size($td);

    /* Create key */
    $key = substr(md5('very secret key'), 0, $ks);

    /* Intialize encryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Encrypt data */
    $encrypted = mcrypt_generic($td, 'This is very important data');

    /* Terminate encryption handler */
    mcrypt_generic_deinit($td);

    /* Initialize encryption module for decryption */
    mcrypt_generic_init($td, $key, $iv);

    /* Decrypt encrypted string */
    $decrypted = mdecrypt_generic($td, $encrypted);

    /* Terminate decryption handle and close module */
    mcrypt_generic_deinit($td);
    mcrypt_module_close($td);

    /* Show string */
    echo trim($decrypted) . "\n";
?>

Смотрите также

  • mcrypt_module_close() - Closes the mcrypt module
  • mcrypt_generic() - This function encrypts data
  • mdecrypt_generic() - Decrypts data
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption
  • mcrypt_generic_deinit() - This function deinitializes an encryption module


This function runs a self test on the specified module

  • « mcrypt_module_open
  • mcrypt_ofb »
  • PHP Manual
  • Mcrypt
  • This function runs a self test on the specified module

mcrypt_module_self_test

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mcrypt_module_self_test — This function runs a self test on the specified module

Описание

bool mcrypt_module_self_test ( string $algorithm [, string $lib_dir ] )

This function runs the self test on the algorithm specified.

Список параметров

algorithm

Одна из констант MCRYPT_ciphername или название алгоритма в виде строки.

lib_dir

The optional lib_dir parameter can contain the location where the algorithm module is on the system.

Возвращаемые значения

The function returns TRUE if the self test succeeds, or FALSE when it fails.

Примеры

Пример #1 mcrypt_module_self_test() example

<?php
var_dump(mcrypt_module_self_test(MCRYPT_RIJNDAEL_128)) . "\n";
var_dump(mcrypt_module_self_test(MCRYPT_BOGUS_CYPHER));
?>

Результат выполнения данного примера:

bool(true)
bool(false)


Encrypts/decrypts data in OFB mode

  • « mcrypt_module_self_test
  • mdecrypt_generic »
  • PHP Manual
  • Mcrypt
  • Encrypts/decrypts data in OFB mode

mcrypt_ofb

(PHP 4, PHP 5)

mcrypt_ofb — Encrypts/decrypts data in OFB mode

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.5.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • mcrypt_decrypt()
  • mcrypt_encrypt()

Описание

string mcrypt_ofb ( int $cipher , string $key , string $data , int $mode , string $iv )
string mcrypt_ofb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

The first prototype is when linked against libmcrypt 2.2.x, the second when linked against libmcrypt 2.4.x or higher. The mode should be either MCRYPT_ENCRYPT or MCRYPT_DECRYPT.


Decrypts data

  • « mcrypt_ofb
  • Mhash »
  • PHP Manual
  • Mcrypt
  • Decrypts data

mdecrypt_generic

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

mdecrypt_generic — Decrypts data

Описание

string mdecrypt_generic ( resource $td , string $data )

This function decrypts data. Note that the length of the returned string can in fact be longer than the unencrypted string, due to the padding of the data.

Список параметров

td

An encryption descriptor returned by mcrypt_module_open()

data

Encrypted data.

Примеры

Пример #1 mdecrypt_generic() Example

<?php
    /* Data */
    $key = 'this is a very long key, even too long for the cipher';
    $plain_text = 'very important data';

    /* Open module, and create IV */
    $td = mcrypt_module_open('des', '', 'ecb', '');
    $key = substr($key, 0, mcrypt_enc_get_key_size($td));
    $iv_size = mcrypt_enc_get_iv_size($td);
    $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);

    /* Initialize encryption handle */
    if (mcrypt_generic_init($td, $key, $iv) != -1) {

        /* Encrypt data */
        $c_t = mcrypt_generic($td, $plain_text);
        mcrypt_generic_deinit($td);

        /* Reinitialize buffers for decryption */
        mcrypt_generic_init($td, $key, $iv);
        $p_t = mdecrypt_generic($td, $c_t);

        /* Clean up */
        mcrypt_generic_deinit($td);
        mcrypt_module_close($td);
    }

    if (strncmp($p_t, $plain_text, strlen($plain_text)) == 0) {
        echo "ok\n";
    } else {
        echo "error\n";
    }
?>

The example above shows how to check if the data before the encryption is the same as the data after the decryption. It is very important to reinitialize the encryption buffer with mcrypt_generic_init() before you try to decrypt the data.

The decryption handle should always be initialized with mcrypt_generic_init() with a key and an IV before calling this function. Where the encryption is done, you should free the encryption buffers by calling mcrypt_generic_deinit(). See mcrypt_module_open() for an example.

Смотрите также

  • mcrypt_generic() - This function encrypts data
  • mcrypt_generic_init() - This function initializes all buffers needed for encryption
  • mcrypt_generic_deinit() - This function deinitializes an encryption module


Mhash

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Mhash Функции
    • mhash_count — Gets the highest available hash ID
    • mhash_get_block_size — Gets the block size of the specified hash
    • mhash_get_hash_name — Gets the name of the specified hash
    • mhash_keygen_s2k — Generates a key
    • mhash — Computes hash


Введение

Эти функции предназначены для работы с » mhash. Mhash может использоваться для подсчета контрольных сумм, хеш-сумм, кодов идентификации сообщений и так далее.

Это интерфейс для библиотеки mhash. Mhash поддерживает большое количество алгоритмов шифрования, таких как MD5, SHA1, GOST и многих других. Для полного списка поддерживаемых алгоритмов шифрования перейдите на страницу с константами. Для получения доступа к определенному алгоритму из PHP нужно использовать MHASH_hashname. Например, чтобы получить доступ к TIGER необходимо исползовать константу MHASH_TIGER.

Замечание:

Данное расширение устарело, в качестве замены используйте Hash.


Требования

To use it, download the mhash distribution from » its web site and follow the included installation instructions.


Установка

You need to compile PHP with the --with-mhash[=DIR] parameter to enable this extension. DIR is the mhash installation directory.

As of PHP 5.3.0, the mhash extension is emulated thru the Hash extension. This makes the mhash installation directory have no effect, and requires the hash extension enabled to make the mhash support available.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Here is a list of hashes which are currently supported by mhash. If a hash is not listed here, but it is listed in the mhash documentation as supported, you can safely assume that this documentation is outdated.

  • MHASH_ADLER32
  • MHASH_CRC32
  • MHASH_CRC32B
  • MHASH_GOST
  • MHASH_HAVAL128
  • MHASH_HAVAL160
  • MHASH_HAVAL192
  • MHASH_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 Computes the MD5 digest and hmac and print it out as hex

<?php
$input = "what do ya want for nothing?";
$hash = mhash(MHASH_MD5, $input);
echo "The hash is " . bin2hex($hash) . "<br />\n";
$hash = mhash(MHASH_MD5, $input, "Jefe");
echo "The hmac is " . bin2hex($hash) . "<br />\n";
?>

Результат выполнения данного примера:

The hash is d03cb659cbf9192dcd066272249f8412
The hmac is 750c783e6ab0b503eaa86e310a5db738


Mhash Функции

Содержание

  • mhash_count — Gets the highest available hash ID
  • mhash_get_block_size — Gets the block size of the specified hash
  • mhash_get_hash_name — Gets the name of the specified hash
  • mhash_keygen_s2k — Generates a key
  • mhash — Computes hash


Gets the highest available hash ID

  • « Mhash Функции
  • mhash_get_block_size »
  • PHP Manual
  • Mhash Функции
  • Gets the highest available hash ID

mhash_count

(PHP 4, PHP 5, PHP 7)

mhash_count — Gets the highest available hash ID

Описание

int mhash_count ( void )

Gets the highest available hash ID.

Возвращаемые значения

Returns the highest available hash ID. Hashes are numbered from 0 to this hash ID.

Примеры

Пример #1 Traversing all hashes

<?php

$nr = mhash_count();

for ($i = 0; $i <= $nr; $i++) {
    echo sprintf("The blocksize of %s is %d\n",
        mhash_get_hash_name($i),
        mhash_get_block_size($i));
}
?>


Gets the block size of the specified hash

  • « mhash_count
  • mhash_get_hash_name »
  • PHP Manual
  • Mhash Функции
  • Gets the block size of the specified hash

mhash_get_block_size

(PHP 4, PHP 5, PHP 7)

mhash_get_block_size — Gets the block size of the specified hash

Описание

int mhash_get_block_size ( int $hash )

Gets the size of a block of the specified hash.

Список параметров

hash

The hash ID. One of the MHASH_hashname constants.

Возвращаемые значения

Returns the size in bytes or FALSE, if the hash does not exist.

Примеры

Пример #1 mhash_get_block_size() Example

<?php

echo mhash_get_block_size(MHASH_MD5); // 16

?>


Gets the name of the specified hash

  • « mhash_get_block_size
  • mhash_keygen_s2k »
  • PHP Manual
  • Mhash Функции
  • Gets the name of the specified hash

mhash_get_hash_name

(PHP 4, PHP 5, PHP 7)

mhash_get_hash_name — Gets the name of the specified hash

Описание

string mhash_get_hash_name ( int $hash )

Gets the name of the specified hash.

Список параметров

hash

The hash ID. One of the MHASH_hashname constants.

Возвращаемые значения

Returns the name of the hash or FALSE, if the hash does not exist.

Примеры

Пример #1 mhash_get_hash_name() Example

<?php

echo mhash_get_hash_name(MHASH_MD5); // MD5

?>


Generates a key

  • « mhash_get_hash_name
  • mhash »
  • PHP Manual
  • Mhash Функции
  • Generates a key

mhash_keygen_s2k

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

mhash_keygen_s2k — Generates a key

Описание

string mhash_keygen_s2k ( int $hash , string $password , string $salt , int $bytes )

Generates a key according to the given hash, using an user provided password.

This is the Salted S2K algorithm as specified in the OpenPGP document (» RFC 2440).

Keep in mind that user supplied passwords are not really suitable to be used as keys in cryptographic algorithms, since users normally choose keys they can write on keyboard. These passwords use only 6 to 7 bits per character (or less). It is highly recommended to use some kind of transformation (like this function) to the user supplied key.

Список параметров

hash

The hash ID used to create the key. One of the MHASH_hashname constants.

password

An user supplied password.

salt

Must be different and random enough for every key you generate in order to create different keys. Because salt must be known when you check the keys, it is a good idea to append the key to it. Salt has a fixed length of 8 bytes and will be padded with zeros if you supply less bytes.

bytes

The key length, in bytes.

Возвращаемые значения

Returns the generated key as a string, or FALSE on error.


Computes hash

  • « mhash_keygen_s2k
  • OpenSSL »
  • PHP Manual
  • Mhash Функции
  • Computes hash

mhash

(PHP 4, PHP 5, PHP 7)

mhash — Computes hash

Описание

string mhash ( int $hash , string $data [, string $key ] )

mhash() applies a hash function specified by hash to the data.

Список параметров

hash

The hash ID. One of the MHASH_hashname constants.

data

The user input, as a string.

key

If specified, the function will return the resulting HMAC instead. HMAC is keyed hashing for message authentication, or simply a message digest that depends on the specified key. Not all algorithms supported in mhash can be used in HMAC mode.

Возвращаемые значения

Returns the resulting hash (also called digest) or HMAC as a string, or FALSE on error.


OpenSSL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Флаги проверки
    • Флаги заполнения для ассиметричного шифрования
    • Key types
    • PKCS7 Flags/Constants
    • Алгоритмы подписи
    • Алгоритмы шифрования
    • Константы версий
    • Константа SNI (Server Name Indication)
  • Параметры Ключа/Сертификата
  • Проверка сертификатов
  • OpenSSL
    • openssl_cipher_iv_length — Gets the cipher iv length
    • openssl_csr_export_to_file — Exports a CSR to a file
    • openssl_csr_export — Exports a CSR as a string
    • openssl_csr_get_public_key — Returns the public key of a CERT
    • openssl_csr_get_subject — Returns the subject of a CERT
    • openssl_csr_new — Generates a CSR
    • openssl_csr_sign — Sign a CSR with another certificate (or itself) and generate a certificate
    • openssl_decrypt — Decrypts data
    • openssl_dh_compute_key — Computes shared secret for public value of remote DH key and local DH key
    • openssl_digest — Computes a digest
    • openssl_encrypt — Encrypts data
    • openssl_error_string — Return openSSL error message
    • openssl_free_key — Free key resource
    • openssl_get_cert_locations — Retrieve the available certificate locations
    • openssl_get_cipher_methods — Gets available cipher methods
    • openssl_get_md_methods — Gets available digest methods
    • openssl_get_privatekey — Псевдоним openssl_pkey_get_private
    • openssl_get_publickey — Псевдоним openssl_pkey_get_public
    • openssl_open — Open sealed data
    • openssl_pbkdf2 — Generates a PKCS5 v2 PBKDF2 string, defaults to SHA-1
    • openssl_pkcs12_export_to_file — Exports a PKCS#12 Compatible Certificate Store File
    • openssl_pkcs12_export — Exports a PKCS#12 Compatible Certificate Store File to variable.
    • openssl_pkcs12_read — Parse a PKCS#12 Certificate Store into an array
    • openssl_pkcs7_decrypt — Decrypts an S/MIME encrypted message
    • openssl_pkcs7_encrypt — Encrypt an S/MIME message
    • openssl_pkcs7_sign — Sign an S/MIME message
    • openssl_pkcs7_verify — Verifies the signature of an S/MIME signed message
    • openssl_pkey_export_to_file — Gets an exportable representation of a key into a file
    • openssl_pkey_export — Gets an exportable representation of a key into a string
    • openssl_pkey_free — Frees a private key
    • openssl_pkey_get_details — Returns an array with the key details
    • openssl_pkey_get_private — Get a private key
    • openssl_pkey_get_public — Extract public key from certificate and prepare it for use
    • openssl_pkey_new — Generates a new private key
    • openssl_private_decrypt — Decrypts data with private key
    • openssl_private_encrypt — Encrypts data with private key
    • openssl_public_decrypt — Decrypts data with public key
    • openssl_public_encrypt — Encrypts data with public key
    • openssl_random_pseudo_bytes — Generate a pseudo-random string of bytes
    • openssl_seal — Seal (encrypt) data
    • openssl_sign — Generate signature
    • openssl_spki_export_challenge — Exports the challenge assoicated with a signed public key and challenge
    • openssl_spki_export — Exports a valid PEM formatted public key signed public key and challenge
    • openssl_spki_new — Generate a new signed public key and challenge
    • openssl_spki_verify — Verifies a signed public key and challenge
    • openssl_verify — Verify signature
    • openssl_x509_check_private_key — Checks if a private key corresponds to a certificate
    • openssl_x509_checkpurpose — Verifies if a certificate can be used for a particular purpose
    • openssl_x509_export_to_file — Exports a certificate to file
    • openssl_x509_export — Exports a certificate as a string
    • openssl_x509_fingerprint — Calculates the fingerprint, or digest, of a given X.509 certificate
    • openssl_x509_free — Free certificate resource
    • openssl_x509_parse — Parse an X509 certificate and return the information as an array
    • openssl_x509_read — Parse an X.509 certificate and return a resource identifier for it


Введение

Этот модуль использует функции библиотеки » OpenSSL для генерации и проверки электронных подписей, а также для упаковки (шифрования) и распаковки (расшифровывания) данных. Библиотека OpenSSL предлагает много возможностей, однако не все они поддерживаются модулем. Возможно в будущем функционал модуля будет расширяться.


Требования

Для использования функций OpenSSL вам необходимо установить пакет » OpenSSL. Версиям PHP между 4.0.5 и 4.3.1 необходима OpenSSL версии >= 0.9.5. Другие версии (PHP <=4.0.4 и >= 4.3.2) требуют OpenSSL >= 0.9.6.

Внимание

Настоятельно рекомендуем использовать последнюю версию OpenSSL, в противном случае ваш веб-сервер может быть уязвим для атак.


Установка

To use PHP's OpenSSL support you must also compile PHP --with-openssl[=DIR] .

The OpenSSL library also has additional requirements for normal operation at run-time. Most notably, OpenSSL requires access to a random or pseudo-random number generator; on most Unix and Unix-like platforms (including Linux), this means that it must have access to a /dev/urandom or /dev/random device.

Замечание: Note to Win32 Users

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: libeay32.dll

Additionally, if you are planning to use the key generation and certificate signing functions, you will need to install a valid openssl.cnf file on your system. We include a sample configuration file in our win32 binary distributions, in the extras/openssl directory.

PHP will search for the openssl.cnf using the following logic:

  • the OPENSSL_CONF environmental variable, if set, will be used as the path (including filename) of the configuration file.
  • the SSLEAY_CONF environmental variable, if set, will be used as the path (including filename) of the configuration file.
  • The file openssl.cnf will be assumed to be found in the default certificate area, as configured at the time that the openssl DLL was compiled. This is usually means that the default filename is c:\usr\local\ssl\openssl.cnf.

In your installation, you need to decide whether to install the configuration file at c:\usr\local\ssl\openssl.cnf or whether to install it someplace else and use environmental variables (possibly on a per-virtual-host basis) to locate the configuration file. Note that it is possible to override the default path from the script using the configargs of the functions that require a configuration file.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

openssl Опции настройки
Имя | По умолчанию | Меняемо | Changelog
openssl.cafile | "" | PHP_INI_PERDIR | Available since PHP 5.6.0.
openssl.capath | "" | PHP_INI_PERDIR | Available since PHP 5.6.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

openssl.cafile string

Location of Certificate Authority file on local filesystem which should be used with the verify_peer context option to authenticate the identity of the remote peer.

openssl.capath string

If cafile is not specified or if the certificate is not found there, the directory pointed to by capath is searched for a suitable certificate. capath must be a correctly hashed certificate directory.

See also the SSL stream context options.


Предопределенные константы

Содержание

  • Флаги проверки
  • Флаги заполнения для ассиметричного шифрования
  • Key types
  • PKCS7 Flags/Constants
  • Алгоритмы подписи
  • Алгоритмы шифрования
  • Константы версий
  • Константа SNI (Server Name Indication)

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Флаги проверки

X509_PURPOSE_SSL_CLIENT (integer)
X509_PURPOSE_SSL_SERVER (integer)
X509_PURPOSE_NS_SSL_SERVER (integer)
X509_PURPOSE_SMIME_SIGN (integer)
X509_PURPOSE_SMIME_ENCRYPT (integer)
X509_PURPOSE_CRL_SIGN (integer)
X509_PURPOSE_ANY (integer)


Флаги заполнения для ассиметричного шифрования

OPENSSL_PKCS1_PADDING (integer)
OPENSSL_SSLV23_PADDING (integer)
OPENSSL_NO_PADDING (integer)
OPENSSL_PKCS1_OAEP_PADDING (integer)


Key types

OPENSSL_KEYTYPE_RSA (integer)
OPENSSL_KEYTYPE_DSA (integer)
OPENSSL_KEYTYPE_DH (integer)
OPENSSL_KEYTYPE_EC (integer)
Эта константа доступна, только если PHP скомпилирован с OpenSSL 0.9.8+.

Замечание:

Эта константа была добавлена в PHP 5.2.0.

OPENSSL_KEYTYPE_EC


PKCS7 Flags/Constants

Функции 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 | Не пытаться проверить подписи у сообщения

Замечание:

Данные константы были добавлены в 4.0.6.


Алгоритмы подписи

OPENSSL_ALGO_DSS1 (integer)
OPENSSL_ALGO_SHA1 (integer)
Используется как алгоритм по умолчанию для функций openssl_sign() и openssl_verify().
OPENSSL_ALGO_SHA224 (integer)
OPENSSL_ALGO_SHA256 (integer)
OPENSSL_ALGO_SHA384 (integer)
OPENSSL_ALGO_SHA512 (integer)
OPENSSL_ALGO_RMD160 (integer)
OPENSSL_ALGO_MD5 (integer)
OPENSSL_ALGO_MD4 (integer)
OPENSSL_ALGO_MD2 (integer)
Начиная с PHP 5.2.13 и PHP 5.3.2, эта константа доступна, только если PHP скомпилирован с поддержкой MD2. Для этого нужно передать в -DHAVE_OPENSSL_MD2_H CFLAG при компиляции PHP, и включить md2 при компиляции OpenSSL 1.0.0+.

Замечание:

Эти константы добавлены в версии 5.0.0.

OPENSSL_ALGO_MD2, OPENSSL_ALGO_MD4, OPENSSL_ALGO_MD5, OPENSSL_ALGO_SHA1, OPENSSL_ALGO_DSS1

Замечание:

Эти константы добавлены в версии 5.4.8.

OPENSSL_ALGO_RMD160, OPENSSL_ALGO_SHA224, OPENSSL_ALGO_SHA256, OPENSSL_ALGO_SHA384, OPENSSL_ALGO_SHA512


Алгоритмы шифрования

OPENSSL_CIPHER_RC2_40 (integer)
OPENSSL_CIPHER_RC2_128 (integer)
OPENSSL_CIPHER_RC2_64 (integer)
OPENSSL_CIPHER_DES (integer)
OPENSSL_CIPHER_3DES (integer)

Замечание:

Эти константы добавлены в версии 4.3.0.

OPENSSL_CIPHER_AES_128_CBC (integer)
OPENSSL_CIPHER_AES_192_CBC (integer)
OPENSSL_CIPHER_AES_256_CBC (integer)

Замечание:

Эти константы добавлены в версии 5.4.0.


  • « Алгоритмы шифрования
  • Константа SNI (Server Name Indication) »
  • PHP Manual
  • Предопределенные константы
  • Константы версий

Константы версий

OPENSSL_VERSION_TEXT (string)
OPENSSL_VERSION_NUMBER (integer)

Замечание:

Эти константы добавлены в версии 5.2.0.


Константа SNI (Server Name Indication)

OPENSSL_TLSEXT_SERVER_NAME (string)
Независимо от доступности SNI.

Замечание:

Эта константа добавлена в версии 5.3.2 и требует PHP собранного с библиотекой OpenSSL версии 0.9.8j или выше.


Параметры Ключа/Сертификата

Некоторые функции openssl требуют параметры в виде ключа или сертификата. Можно использовать один из следующих вариантов:

  • Сертификаты

    1. Ресурс X.509 возвращаемый функцией openssl_x509_read()
    2. Строка формата file://path/to/cert.pem; указанный файл должен содержать сертификат в формате PEM
    3. Строка, в которой находится содержимое сертификата/ключа, формат PEM

  • Публичные/Приватные Ключи

    1. Ресурс Ключ, возвращаемый функциями openssl_get_publickey() или openssl_get_privatekey()
    2. Только для открытых ключей: ресурс X.509
    3. Строка формата file://path/to/file.pem;указанный файл должен содержать сертификат в формате PEM (может содержать оба ключа)
    4. Строка, в которой находится содержимое сертификата/ключа, формат PEM
    5. Для приватных ключей возможно использование синтаксиса array($key, $passphrase) где $key представляет ключ указанный при помощи формата file:// или текстовое содержимое описанное выше, и $passphrase представляет строку, содержащую пароль для указанного приватного ключа


Проверка сертификатов

Когда происходит вызов функции проверки подписи/сертификата, параметр cainfo должен содержать массив файлов и директорий, указывающие размещение доверенных корневых сертификатов. Если указывается директория, она должна соответствовать директории, которую сможет использовать команда openssl.


OpenSSL

Содержание

  • openssl_cipher_iv_length — Gets the cipher iv length
  • openssl_csr_export_to_file — Exports a CSR to a file
  • openssl_csr_export — Exports a CSR as a string
  • openssl_csr_get_public_key — Returns the public key of a CERT
  • openssl_csr_get_subject — Returns the subject of a CERT
  • openssl_csr_new — Generates a CSR
  • openssl_csr_sign — Sign a CSR with another certificate (or itself) and generate a certificate
  • openssl_decrypt — Decrypts data
  • openssl_dh_compute_key — Computes shared secret for public value of remote DH key and local DH key
  • openssl_digest — Computes a digest
  • openssl_encrypt — Encrypts data
  • openssl_error_string — Return openSSL error message
  • openssl_free_key — Free key resource
  • openssl_get_cert_locations — Retrieve the available certificate locations
  • openssl_get_cipher_methods — Gets available cipher methods
  • openssl_get_md_methods — Gets available digest methods
  • openssl_get_privatekey — Псевдоним openssl_pkey_get_private
  • openssl_get_publickey — Псевдоним openssl_pkey_get_public
  • openssl_open — Open sealed data
  • openssl_pbkdf2 — Generates a PKCS5 v2 PBKDF2 string, defaults to SHA-1
  • openssl_pkcs12_export_to_file — Exports a PKCS#12 Compatible Certificate Store File
  • openssl_pkcs12_export — Exports a PKCS#12 Compatible Certificate Store File to variable.
  • openssl_pkcs12_read — Parse a PKCS#12 Certificate Store into an array
  • openssl_pkcs7_decrypt — Decrypts an S/MIME encrypted message
  • openssl_pkcs7_encrypt — Encrypt an S/MIME message
  • openssl_pkcs7_sign — Sign an S/MIME message
  • openssl_pkcs7_verify — Verifies the signature of an S/MIME signed message
  • openssl_pkey_export_to_file — Gets an exportable representation of a key into a file
  • openssl_pkey_export — Gets an exportable representation of a key into a string
  • openssl_pkey_free — Frees a private key
  • openssl_pkey_get_details — Returns an array with the key details
  • openssl_pkey_get_private — Get a private key
  • openssl_pkey_get_public — Extract public key from certificate and prepare it for use
  • openssl_pkey_new — Generates a new private key
  • openssl_private_decrypt — Decrypts data with private key
  • openssl_private_encrypt — Encrypts data with private key
  • openssl_public_decrypt — Decrypts data with public key
  • openssl_public_encrypt — Encrypts data with public key
  • openssl_random_pseudo_bytes — Generate a pseudo-random string of bytes
  • openssl_seal — Seal (encrypt) data
  • openssl_sign — Generate signature
  • openssl_spki_export_challenge — Exports the challenge assoicated with a signed public key and challenge
  • openssl_spki_export — Exports a valid PEM formatted public key signed public key and challenge
  • openssl_spki_new — Generate a new signed public key and challenge
  • openssl_spki_verify — Verifies a signed public key and challenge
  • openssl_verify — Verify signature
  • openssl_x509_check_private_key — Checks if a private key corresponds to a certificate
  • openssl_x509_checkpurpose — Verifies if a certificate can be used for a particular purpose
  • openssl_x509_export_to_file — Exports a certificate to file
  • openssl_x509_export — Exports a certificate as a string
  • openssl_x509_fingerprint — Calculates the fingerprint, or digest, of a given X.509 certificate
  • openssl_x509_free — Free certificate resource
  • openssl_x509_parse — Parse an X509 certificate and return the information as an array
  • openssl_x509_read — Parse an X.509 certificate and return a resource identifier for it


Gets the cipher iv length

  • « OpenSSL
  • openssl_csr_export_to_file »
  • PHP Manual
  • OpenSSL
  • Gets the cipher iv length

openssl_cipher_iv_length

(PHP 5 >= PHP 5.3.3, PHP 7)

openssl_cipher_iv_length — Gets the cipher iv length

Описание

int openssl_cipher_iv_length ( string $method )

Gets the cipher initialization vector (iv) length.

Список параметров

method

The cipher method, see openssl_get_cipher_methods() for a list of potential values.

Возвращаемые значения

Returns the cipher length on success, or FALSE on failure.

Ошибки

Emits an E_WARNING level error when the cipher algorithm is unknown.

Примеры

Пример #1 openssl_cipher_iv_length() example

<?php
$method = 'AES-128-CBC';
$ivlen = openssl_cipher_iv_length($method);

echo $ivlen;
?>

Результатом выполнения данного примера будет что-то подобное:

16


Exports a CSR to a file

  • « openssl_cipher_iv_length
  • openssl_csr_export »
  • PHP Manual
  • OpenSSL
  • Exports a CSR to a file

openssl_csr_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_export_to_file — Exports a CSR to a file

Описание

bool openssl_csr_export_to_file ( resource $csr , string $outfilename [, bool $notext = true ] )

openssl_csr_export_to_file() takes the Certificate Signing Request represented by csr and saves it as ascii-armoured text into the file named by outfilename.

Список параметров

csr

outfilename

Path to the output file.

notext

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в FALSE, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является TRUE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openssl_csr_export() - Exports a CSR as a string
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Exports a CSR as a string

  • « openssl_csr_export_to_file
  • openssl_csr_get_public_key »
  • PHP Manual
  • OpenSSL
  • Exports a CSR as a string

openssl_csr_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_export — Exports a CSR as a string

Описание

bool openssl_csr_export ( resource $csr , string &$out [, bool $notext = true ] )

openssl_csr_export() takes the Certificate Signing Request represented by csr and stores it as ascii-armoured text into out, which is passed by reference.

Список параметров

csr

out

notext

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в FALSE, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является TRUE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openssl_csr_export_to_file() - Exports a CSR to a file
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Returns the public key of a CERT

  • « openssl_csr_export
  • openssl_csr_get_subject »
  • PHP Manual
  • OpenSSL
  • Returns the public key of a CERT

openssl_csr_get_public_key

(PHP 5 >= 5.2.0, PHP 7)

openssl_csr_get_public_key — Returns the public key of a CERT

Описание

resource openssl_csr_get_public_key ( mixed $csr [, bool $use_shortnames = true ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns the subject of a CERT

  • « openssl_csr_get_public_key
  • openssl_csr_new »
  • PHP Manual
  • OpenSSL
  • Returns the subject of a CERT

openssl_csr_get_subject

(PHP 5 >= 5.2.0, PHP 7)

openssl_csr_get_subject — Returns the subject of a CERT

Описание

array openssl_csr_get_subject ( mixed $csr [, bool $use_shortnames = true ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Generates a CSR

  • « openssl_csr_get_subject
  • openssl_csr_sign »
  • PHP Manual
  • OpenSSL
  • Generates a CSR

openssl_csr_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_new — Generates a CSR

Описание

mixed openssl_csr_new ( array $dn , resource &$privkey [, array $configargs [, array $extraattribs ]] )

openssl_csr_new() generates a new CSR (Certificate Signing Request) based on the information provided by dn, which represents the Distinguished Name to be used in the certificate.

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

dn

The Distinguished Name to be used in the certificate.

privkey

privkey should be set to a private key that was previously generated by openssl_pkey_new() (or otherwise obtained from the other openssl_pkey family of functions). The corresponding public portion of the key will be used to sign the CSR.

configargs

By default, the information in your system openssl.conf is used to initialize the request; you can specify a configuration file section by setting the config_section_section key of configargs. You can also specify an alternative openssl configuration file by setting the value of the config key to the path of the file you want to use. The following keys, if present in configargs behave as their equivalents in the openssl.conf, as listed in the table below.

Configuration overrides
configargs key | type | openssl.conf equivalent | description
digest_alg | string | default_md | Selects which digest method to use
x509_extensions | string | x509_extensions | Selects which extensions should be used when creating an x509 certificate
req_extensions | string | req_extensions | Selects which extensions should be used when creating a CSR
private_key_bits | integer | default_bits | Specifies how many bits should be used to generate a private key
private_key_type | integer | none | Specifies the type of private key to create. This can be one of OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH or OPENSSL_KEYTYPE_RSA. The default value is OPENSSL_KEYTYPE_RSA which is currently the only supported key type.
encrypt_key | boolean | encrypt_key | Should an exported key (with passphrase) be encrypted?
encrypt_key_cipher | integer | none | One of cipher constants.

extraattribs

extraattribs is used to specify additional configuration options for the CSR. Both dn and extraattribs are associative arrays whose keys are converted to OIDs and applied to the relevant part of the request.

Возвращаемые значения

Returns the CSR.

Примеры

Пример #1 Creating a self-signed-certificate

<?php
// Fill in data for the distinguished name to be used in the cert
// You must change the values of these keys to match your name and
// company, or more precisely, the name and company of the person/site
// that you are generating the certificate for.
// For SSL certificates, the commonName is usually the domain name of
// that will be using the certificate, but for S/MIME certificates,
// the commonName will be the name of the individual who will use the
// certificate.
$dn = array(
    "countryName" => "UK",
    "stateOrProvinceName" => "Somerset",
    "localityName" => "Glastonbury",
    "organizationName" => "The Brain Room Limited",
    "organizationalUnitName" => "PHP Documentation Team",
    "commonName" => "Wez Furlong",
    "emailAddress" => "wez@example.com"
);

// Generate a new private (and public) key pair
$privkey = openssl_pkey_new();

// Generate a certificate signing request
$csr = openssl_csr_new($dn, $privkey);

// You will usually want to create a self-signed certificate at this
// point until your CA fulfills your request.
// This creates a self-signed cert that is valid for 365 days
$sscert = openssl_csr_sign($csr, null, $privkey, 365);

// Now you will want to preserve your private key, CSR and self-signed
// cert so that they can be installed into your web server, mail server
// or mail client (depending on the intended use of the certificate).
// This example shows how to get those things into variables, but you
// can also store them directly into files.
// Typically, you will send the CSR on to your CA who will then issue
// you with the "real" certificate.
openssl_csr_export($csr, $csrout) and var_dump($csrout);
openssl_x509_export($sscert, $certout) and var_dump($certout);
openssl_pkey_export($privkey, $pkeyout, "mypassword") and var_dump($pkeyout);

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>


Sign a CSR with another certificate (or itself) and generate a certificate

  • « openssl_csr_new
  • openssl_decrypt »
  • PHP Manual
  • OpenSSL
  • Sign a CSR with another certificate (or itself) and generate a certificate

openssl_csr_sign

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_csr_sign — Sign a CSR with another certificate (or itself) and generate a certificate

Описание

resource openssl_csr_sign ( mixed $csr , mixed $cacert , mixed $priv_key , int $days [, array $configargs [, int $serial = 0 ]] )

openssl_csr_sign() generates an x509 certificate resource from the given CSR.

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

csr

A CSR previously generated by openssl_csr_new(). It can also be the path to a PEM encoded CSR when specified as file://path/to/csr or an exported string generated by openssl_csr_export().

cacert

The generated certificate will be signed by cacert. If cacert is NULL, the generated certificate will be a self-signed certificate.

priv_key

priv_key is the private key that corresponds to cacert.

days

days specifies the length of time for which the generated certificate will be valid, in days.

configargs

You can finetune the CSR signing by configargs. See openssl_csr_new() for more information about configargs.

serial

An optional the serial number of issued certificate. If not specified it will default to 0.

Возвращаемые значения

Returns an x509 certificate resource on success, FALSE on failure.

Примеры

Пример #1 openssl_csr_sign() example - signing a CSR (how to implement your own CA)

<?php
// Let's assume that this script is set to receive a CSR that has
// been pasted into a textarea from another page
$csrdata = $_POST["CSR"];

// We will sign the request using our own "certificate authority"
// certificate.  You can use any certificate to sign another, but
// the process is worthless unless the signing certificate is trusted
// by the software/users that will deal with the newly signed certificate

// We need our CA cert and its private key
$cacert = "file://path/to/ca.crt";
$privkey = array("file://path/to/ca.key", "your_ca_key_passphrase");

$usercert = openssl_csr_sign($csrdata, $cacert, $privkey, 365);

// Now display the generated certificate so that the user can
// copy and paste it into their local configuration (such as a file
// to hold the certificate for their SSL server)
openssl_x509_export($usercert, $certout);
echo $certout;

// Show any errors that occurred here
while (($e = openssl_error_string()) !== false) {
    echo $e . "\n";
}
?>


Decrypts data

  • « openssl_csr_sign
  • openssl_dh_compute_key »
  • PHP Manual
  • OpenSSL
  • Decrypts data

openssl_decrypt

(PHP 5 >= 5.3.0, PHP 7)

openssl_decrypt — Decrypts data

Описание

string openssl_decrypt ( string $data , string $method , string $password [, int $options = 0 [, string $iv = "" ]] )

Takes a raw or base64 encoded string and decrypts it using a given method and key.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

The data.

method

The cipher method.

password

The password.

options

options can be one of OPENSSL_RAW_DATA, OPENSSL_ZERO_PADDING.

iv

A non-NULL Initialization Vector.

Возвращаемые значения

The decrypted string on success или FALSE в случае возникновения ошибки.

Ошибки

Emits an E_WARNING level error if an unknown cipher algorithm is passed via the method parameter.

Emits an E_WARNING level error if an empty value is passed in via the iv parameter.

Список изменений

Версия | Описание
5.3.3 | The iv parameter was added.
5.4.0 | The raw_output was changed to options.

Смотрите также

  • openssl_encrypt() - Encrypts data


Computes shared secret for public value of remote DH key and local DH key

  • « openssl_decrypt
  • openssl_digest »
  • PHP Manual
  • OpenSSL
  • Computes shared secret for public value of remote DH key and local DH key

openssl_dh_compute_key

(PHP 5 >= 5.3.11, PHP 7)

openssl_dh_compute_key — Computes shared secret for public value of remote DH key and local DH key

Описание

string openssl_dh_compute_key ( string $pub_key , resource $dh_key )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pub_key

Public key

dh_key

DH key

Возвращаемые значения

Returns computed key on success или FALSE в случае возникновения ошибки.


Computes a digest

  • « openssl_dh_compute_key
  • openssl_encrypt »
  • PHP Manual
  • OpenSSL
  • Computes a digest

openssl_digest

(PHP 5 >= 5.3.0, PHP 7)

openssl_digest — Computes a digest

Описание

string openssl_digest ( string $data , string $method [, bool $raw_output = false ] )

Computes a digest hash value for the given data using a given method, and returns a raw or binhex encoded string.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

The data.

method

The digest method.

raw_output

Setting to TRUE will return as raw output data, otherwise the return value is binhex encoded.

Возвращаемые значения

Returns the digested hash value on success или FALSE в случае возникновения ошибки.

Ошибки

Emits an E_WARNING level error if an unknown signature algorithm is passed via the method parameter.

Смотрите также

  • openssl_get_md_methods() - Gets available digest methods


Encrypts data

  • « openssl_digest
  • openssl_error_string »
  • PHP Manual
  • OpenSSL
  • Encrypts data

openssl_encrypt

(PHP 5 >= 5.3.0, PHP 7)

openssl_encrypt — Encrypts data

Описание

string openssl_encrypt ( string $data , string $method , string $password [, int $options = 0 [, string $iv = "" ]] )

Encrypts given data with given method and key, returns a raw or base64 encoded string

Список параметров

data

The data.

method

The cipher method. For a list of available cipher methods, use openssl_get_cipher_methods().

password

The password.

options

options is a bitwise disjunction of the flags OPENSSL_RAW_DATA and OPENSSL_ZERO_PADDING.

iv

A non-NULL Initialization Vector.

Возвращаемые значения

Returns the encrypted string on success или FALSE в случае возникновения ошибки.

Ошибки

Emits an E_WARNING level error if an unknown cipher algorithm is passed in via the method parameter.

Emits an E_WARNING level error if an empty value is passed in via the iv parameter.

Список изменений

Версия | Описание
5.3.3 | The iv parameter was added.
5.4.0 | The raw_output was changed to options.

Смотрите также

  • openssl_decrypt() - Decrypts data


Return openSSL error message

  • « openssl_encrypt
  • openssl_free_key »
  • PHP Manual
  • OpenSSL
  • Return openSSL error message

openssl_error_string

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_error_string — Return openSSL error message

Описание

string openssl_error_string ( void )

openssl_error_string() returns the last error from the openSSL library. Error messages are queued, so this function should be called multiple times to collect all of the information. The last error will be the most recent one.

Возвращаемые значения

Returns an error message string, or FALSE if there are no more error messages to return.

Примеры

Пример #1 openssl_error_string() example

<?php
// lets assume you just called an openssl function that failed
while ($msg = openssl_error_string())
    echo $msg . "<br />\n";
?>


Free key resource

  • « openssl_error_string
  • openssl_get_cert_locations »
  • PHP Manual
  • OpenSSL
  • Free key resource

openssl_free_key

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_free_key — Free key resource

Описание

void openssl_free_key ( resource $key_identifier )

openssl_free_key() frees the key associated with the specified key_identifier from memory.

Список параметров

key_identifier

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Retrieve the available certificate locations

  • « openssl_free_key
  • openssl_get_cipher_methods »
  • PHP Manual
  • OpenSSL
  • Retrieve the available certificate locations

openssl_get_cert_locations

(PHP 5 >= 5.6.0, PHP 7)

openssl_get_cert_locations — Retrieve the available certificate locations

Описание

array openssl_get_cert_locations ( void )

openssl_get_cert_locations() returns an array with information about the available certificate locations that will be searched for SSL certificates.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array with the available certificate locations.

Примеры

Пример #1 openssl_get_cert_locations() example

<?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) ""
}


Gets available cipher methods

  • « openssl_get_cert_locations
  • openssl_get_md_methods »
  • PHP Manual
  • OpenSSL
  • Gets available cipher methods

openssl_get_cipher_methods

(PHP 5 >= 5.3.0, PHP 7)

openssl_get_cipher_methods — Gets available cipher methods

Описание

array openssl_get_cipher_methods ([ bool $aliases = false ] )

Gets a list of available cipher methods.

Список параметров

aliases

Set to TRUE if cipher aliases should be included within the returned array.

Возвращаемые значения

An array of available cipher methods.

Примеры

Пример #1 openssl_get_cipher_methods() example

Shows how the available ciphers might look, and also which aliases might be available.

<?php
$ciphers             = openssl_get_cipher_methods();
$ciphers_and_aliases = openssl_get_cipher_methods(true);
$cipher_aliases      = array_diff($ciphers_and_aliases, $ciphers);

print_r($ciphers);

print_r($cipher_aliases);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => AES-128-CBC
    [1] => AES-128-CFB
    [2] => AES-128-CFB1
    [3] => AES-128-CFB8
    [4] => AES-128-ECB
    [5] => AES-128-OFB
    [6] => AES-192-CBC
    [7] => AES-192-CFB
    [8] => AES-192-CFB1
    [9] => AES-192-CFB8
    [10] => AES-192-ECB
    [11] => AES-192-OFB
    [12] => AES-256-CBC
    [13] => AES-256-CFB
    [14] => AES-256-CFB1
    [15] => AES-256-CFB8
    [16] => AES-256-ECB
    [17] => AES-256-OFB
    [18] => BF-CBC
    [19] => BF-CFB
    [20] => BF-ECB
    [21] => BF-OFB
    [22] => CAST5-CBC
    [23] => CAST5-CFB
    [24] => CAST5-ECB
    [25] => CAST5-OFB
    [26] => DES-CBC
    [27] => DES-CFB
    [28] => DES-CFB1
    [29] => DES-CFB8
    [30] => DES-ECB
    [31] => DES-EDE
    [32] => DES-EDE-CBC
    [33] => DES-EDE-CFB
    [34] => DES-EDE-OFB
    [35] => DES-EDE3
    [36] => DES-EDE3-CBC
    [37] => DES-EDE3-CFB
    [38] => DES-EDE3-OFB
    [39] => DES-OFB
    [40] => DESX-CBC
    [41] => IDEA-CBC
    [42] => IDEA-CFB
    [43] => IDEA-ECB
    [44] => IDEA-OFB
    [45] => RC2-40-CBC
    [46] => RC2-64-CBC
    [47] => RC2-CBC
    [48] => RC2-CFB
    [49] => RC2-ECB
    [50] => RC2-OFB
    [51] => RC4
    [52] => RC4-40
    [53] => aes-128-cbc
    [54] => aes-128-cfb
    [55] => aes-128-cfb1
    [56] => aes-128-cfb8
    [57] => aes-128-ecb
    [58] => aes-128-ofb
    [59] => aes-192-cbc
    [60] => aes-192-cfb
    [61] => aes-192-cfb1
    [62] => aes-192-cfb8
    [63] => aes-192-ecb
    [64] => aes-192-ofb
    [65] => aes-256-cbc
    [66] => aes-256-cfb
    [67] => aes-256-cfb1
    [68] => aes-256-cfb8
    [69] => aes-256-ecb
    [70] => aes-256-ofb
    [71] => bf-cbc
    [72] => bf-cfb
    [73] => bf-ecb
    [74] => bf-ofb
    [75] => cast5-cbc
    [76] => cast5-cfb
    [77] => cast5-ecb
    [78] => cast5-ofb
    [79] => des-cbc
    [80] => des-cfb
    [81] => des-cfb1
    [82] => des-cfb8
    [83] => des-ecb
    [84] => des-ede
    [85] => des-ede-cbc
    [86] => des-ede-cfb
    [87] => des-ede-ofb
    [88] => des-ede3
    [89] => des-ede3-cbc
    [90] => des-ede3-cfb
    [91] => des-ede3-ofb
    [92] => des-ofb
    [93] => desx-cbc
    [94] => idea-cbc
    [95] => idea-cfb
    [96] => idea-ecb
    [97] => idea-ofb
    [98] => rc2-40-cbc
    [99] => rc2-64-cbc
    [100] => rc2-cbc
    [101] => rc2-cfb
    [102] => rc2-ecb
    [103] => rc2-ofb
    [104] => rc4
    [105] => rc4-40
)
Array
(
    [18] => AES128
    [19] => AES192
    [20] => AES256
    [21] => BF
    [26] => CAST
    [27] => CAST-cbc
    [32] => DES
    [47] => DES3
    [48] => DESX
    [50] => IDEA
    [55] => RC2
    [82] => aes128
    [83] => aes192
    [84] => aes256
    [85] => bf
    [90] => blowfish
    [91] => cast
    [92] => cast-cbc
    [97] => des
    [112] => des3
    [113] => desx
    [115] => idea
    [120] => rc2
)

Смотрите также

  • openssl_get_md_methods() - Gets available digest methods


Gets available digest methods

  • « openssl_get_cipher_methods
  • openssl_get_privatekey »
  • PHP Manual
  • OpenSSL
  • Gets available digest methods

openssl_get_md_methods

(PHP 5 >= 5.3.0, PHP 7)

openssl_get_md_methods — Gets available digest methods

Описание

array openssl_get_md_methods ([ bool $aliases = false ] )

Gets a list of available digest methods.

Список параметров

aliases

Set to TRUE if digest aliases should be included within the returned array.

Возвращаемые значения

An array of available digest methods.

Примеры

Пример #1 openssl_get_md_methods() example

Shows how the available digests might look, and also which aliases might be available.

<?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() - Computes a digest
  • openssl_get_cipher_methods() - Gets available cipher methods


Псевдоним openssl_pkey_get_private

  • « openssl_get_md_methods
  • openssl_get_publickey »
  • PHP Manual
  • OpenSSL
  • Псевдоним openssl_pkey_get_private

openssl_get_privatekey

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_get_privatekey — Псевдоним openssl_pkey_get_private()

Описание

Эта функция является псевдонимом: openssl_pkey_get_private().


Псевдоним openssl_pkey_get_public

  • « openssl_get_privatekey
  • openssl_open »
  • PHP Manual
  • OpenSSL
  • Псевдоним openssl_pkey_get_public

openssl_get_publickey

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_get_publickey — Псевдоним openssl_pkey_get_public()

Описание

Эта функция является псевдонимом: openssl_pkey_get_public().


Open sealed data

  • « openssl_get_publickey
  • openssl_pbkdf2 »
  • PHP Manual
  • OpenSSL
  • Open sealed data

openssl_open

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_open — Open sealed data

Описание

bool openssl_open ( string $sealed_data , string &$open_data , string $env_key , mixed $priv_key_id [, string $method ] )

openssl_open() opens (decrypts) sealed_data using the private key associated with the key identifier priv_key_id and the envelope key env_key, and fills open_data with the decrypted data. The envelope key is generated when the data are sealed and can only be used by one specific private key. See openssl_seal() for more information.

Список параметров

sealed_data

open_data

If the call is successful the opened data is returned in this parameter.

env_key

priv_key_id

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 openssl_open() example

<?php
// $sealed and $env_key are assumed to contain the sealed data
// and our envelope key, both given to us by the sealer.

// fetch private key from file and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r");
$priv_key = fread($fp, 8192);
fclose($fp);
$pkeyid = openssl_get_privatekey($priv_key);

// decrypt the data and store it in $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
    echo "here is the opened data: ", $open;
} else {
    echo "failed to open data";
}

// free the private key from memory
openssl_free_key($pkeyid);
?>

Смотрите также

  • openssl_seal() - Seal (encrypt) data


Generates a PKCS5 v2 PBKDF2 string, defaults to SHA-1

  • « openssl_open
  • openssl_pkcs12_export_to_file »
  • PHP Manual
  • OpenSSL
  • Generates a PKCS5 v2 PBKDF2 string, defaults to SHA-1

openssl_pbkdf2

(PHP 5 >= 5.5.0, PHP 7)

openssl_pbkdf2 — Generates a PKCS5 v2 PBKDF2 string, defaults to SHA-1

Описание

string openssl_pbkdf2 ( string $password , string $salt , int $key_length , int $iterations [, string $digest_algorithm ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

password

salt

key_length

iterations

digest_algorithm

Возвращаемые значения

Returns string или FALSE в случае возникновения ошибки.


Exports a PKCS#12 Compatible Certificate Store File

  • « openssl_pbkdf2
  • openssl_pkcs12_export »
  • PHP Manual
  • OpenSSL
  • Exports a PKCS#12 Compatible Certificate Store File

openssl_pkcs12_export_to_file

(PHP 5 >= 5.2.2, PHP 7)

openssl_pkcs12_export_to_file — Exports a PKCS#12 Compatible Certificate Store File

Описание

bool openssl_pkcs12_export_to_file ( mixed $x509 , string $filename , mixed $priv_key , string $pass [, array $args ] )

openssl_pkcs12_export_to_file() stores x509 into a file named by filename in a PKCS#12 file format.

Список параметров

x509

Для списка корректных значений смотрите Параметры ключей/сертификатов.

filename

Path to the output file.

priv_key

Private key component of PKCS#12 file.

pass

Encryption password for unlocking the PKCS#12 file.

args

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Exports a PKCS#12 Compatible Certificate Store File to variable.

  • « openssl_pkcs12_export_to_file
  • openssl_pkcs12_read »
  • PHP Manual
  • OpenSSL
  • Exports a PKCS#12 Compatible Certificate Store File to variable.

openssl_pkcs12_export

(PHP 5 >= 5.2.2, PHP 7)

openssl_pkcs12_export — Exports a PKCS#12 Compatible Certificate Store File to variable.

Описание

bool openssl_pkcs12_export ( mixed $x509 , string &$out , mixed $priv_key , string $pass [, array $args ] )

openssl_pkcs12_export() stores x509 into a string named by out in a PKCS#12 file format.

Список параметров

x509

Для списка корректных значений смотрите Параметры ключей/сертификатов.

out

On success, this will hold the PKCS#12.

priv_key

Private key component of PKCS#12 file.

pass

Encryption password for unlocking the PKCS#12 file.

args

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Parse a PKCS#12 Certificate Store into an array

  • « openssl_pkcs12_export
  • openssl_pkcs7_decrypt »
  • PHP Manual
  • OpenSSL
  • Parse a PKCS#12 Certificate Store into an array

openssl_pkcs12_read

(PHP 5 >= 5.2.2, PHP 7)

openssl_pkcs12_read — Parse a PKCS#12 Certificate Store into an array

Описание

bool openssl_pkcs12_read ( string $pkcs12 , array &$certs , string $pass )

openssl_pkcs12_read() parses the PKCS#12 certificate store supplied by pkcs12 into a array named certs.

Список параметров

pkcs12

The certificate store contents, not its file name.

certs

On success, this will hold the Certificate Store Data.

pass

Encryption password for unlocking the PKCS#12 file.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 openssl_pkcs12_read() example

<?php
if (!$cert_store = file_get_contents("/certs/file.p12")) {
    echo "Error: Unable to read the cert file\n";
    exit;
}

if (openssl_pkcs12_read($cert_store, $cert_info, "my_secret_pass")) {
    echo "Certificate Information\n";
    print_r($cert_info);
} else {
    echo "Error: Unable to read the cert store.\n";
    exit;
}
?>


Decrypts an S/MIME encrypted message

  • « openssl_pkcs12_read
  • openssl_pkcs7_encrypt »
  • PHP Manual
  • OpenSSL
  • Decrypts an S/MIME encrypted message

openssl_pkcs7_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_decrypt — Decrypts an S/MIME encrypted message

Описание

bool openssl_pkcs7_decrypt ( string $infilename , string $outfilename , mixed $recipcert [, mixed $recipkey ] )

Decrypts the S/MIME encrypted message contained in the file specified by infilename using the certificate and its associated private key specified by recipcert and recipkey.

Список параметров

infilename

outfilename

The decrypted message is written to the file specified by outfilename.

recipcert

recipkey

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 openssl_pkcs7_decrypt() example

<?php
// $cert and $key are assumed to contain your personal certificate and private
// key pair, and that you are the recipient of an S/MIME message
$infilename = "encrypted.msg";  // this file holds your encrypted message
$outfilename = "decrypted.msg"; // make sure you can write to this file

if (openssl_pkcs7_decrypt($infilename, $outfilename, $cert, $key)) {
    echo "decrypted!";
} else {
    echo "failed to decrypt!";
}
?>


Encrypt an S/MIME message

  • « openssl_pkcs7_decrypt
  • openssl_pkcs7_sign »
  • PHP Manual
  • OpenSSL
  • Encrypt an S/MIME message

openssl_pkcs7_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_encrypt — Encrypt an S/MIME message

Описание

bool openssl_pkcs7_encrypt ( string $infile , string $outfile , mixed $recipcerts , array $headers [, int $flags = 0 [, int $cipherid = OPENSSL_CIPHER_RC2_40 ]] )

openssl_pkcs7_encrypt() takes the contents of the file named infile and encrypts them using an RC2 40-bit cipher so that they can only be read by the intended recipients specified by recipcerts.

Список параметров

infile

outfile

recipcerts

Either a lone X.509 certificate, or an array of X.509 certificates.

headers

headers is an array of headers that will be prepended to the data after it has been encrypted.

headers can be either an associative array keyed by header name, or an indexed array, where each element contains a single header line.

flags

flags can be used to specify options that affect the encoding process - see PKCS7 constants.

cipherid

One of cipher constants.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 openssl_pkcs7_encrypt() example

<?php
// the message you want to encrypt and send to your secret agent
// in the field, known as nighthawk.  You have his certificate
// in the file nighthawk.pem
$data = <<<EOD
Nighthawk,

Top secret, for your eyes only!

The enemy is closing in! Meet me at the cafe at 8.30am
to collect your forged passport!

HQ
EOD;

// load key
$key = file_get_contents("nighthawk.pem");

// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);

// encrypt it
if (openssl_pkcs7_encrypt("msg.txt", "enc.txt", $key,
    array("To" => "nighthawk@example.com", // keyed syntax
          "From: HQ <hq@example.com>", // indexed syntax
          "Subject" => "Eyes only"))) {
    // message encrypted - send it!
    exec(ini_get("sendmail_path") . " < enc.txt");
}
?>


Sign an S/MIME message

  • « openssl_pkcs7_encrypt
  • openssl_pkcs7_verify »
  • PHP Manual
  • OpenSSL
  • Sign an S/MIME message

openssl_pkcs7_sign

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_sign — Sign an S/MIME message

Описание

bool openssl_pkcs7_sign ( string $infilename , string $outfilename , mixed $signcert , mixed $privkey , array $headers [, int $flags = PKCS7_DETACHED [, string $extracerts ]] )

openssl_pkcs7_sign() takes the contents of the file named infilename and signs them using the certificate and its matching private key specified by signcert and privkey parameters.

Список параметров

infilename

outfilename

signcert

privkey

headers

headers is an array of headers that will be prepended to the data after it has been signed (see openssl_pkcs7_encrypt() for more information about the format of this parameter).

flags

flags can be used to alter the output - see PKCS7 constants.

extracerts

extracerts specifies the name of a file containing a bunch of extra certificates to include in the signature which can for example be used to help the recipient to verify the certificate that you used.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 openssl_pkcs7_sign() example

<?php
// the message you want to sign so that recipient can be sure it was you that
// sent it
$data = <<<EOD

You have my authorization to spend $10,000 on dinner expenses.

The CEO
EOD;
// save message to file
$fp = fopen("msg.txt", "w");
fwrite($fp, $data);
fclose($fp);
// encrypt it
if (openssl_pkcs7_sign("msg.txt", "signed.txt", "mycert.pem",
    array("file://mycert.pem", "mypassphrase"),
    array("To" => "joes@example.com", // keyed syntax
          "From: HQ <ceo@example.com>", // indexed syntax
          "Subject" => "Eyes only")
    )) {
    // message signed - send it!
    exec(ini_get("sendmail_path") . " < signed.txt");
}
?>


Verifies the signature of an S/MIME signed message

  • « openssl_pkcs7_sign
  • openssl_pkey_export_to_file »
  • PHP Manual
  • OpenSSL
  • Verifies the signature of an S/MIME signed message

openssl_pkcs7_verify

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_pkcs7_verify — Verifies the signature of an S/MIME signed message

Описание

mixed openssl_pkcs7_verify ( string $filename , int $flags [, string $outfilename [, array $cainfo [, string $extracerts [, string $content ]]]] )

openssl_pkcs7_verify() reads the S/MIME message contained in the given file and examines the digital signature.

Список параметров

filename

Path to the message.

flags

flags can be used to affect how the signature is verified - see PKCS7 constants for more information.

outfilename

If the outfilename is specified, it should be a string holding the name of a file into which the certificates of the persons that signed the messages will be stored in PEM format.

cainfo

If the cainfo is specified, it should hold information about the trusted CA certificates to use in the verification process - see certificate verification for more information about this parameter.

extracerts

If the extracerts is specified, it is the filename of a file containing a bunch of certificates to use as untrusted CAs.

content

You can specify a filename with content that will be filled with the verified data, but with the signature information stripped.

Возвращаемые значения

Returns TRUE if the signature is verified, FALSE if it is not correct (the message has been tampered with, or the signing certificate is invalid), or -1 on error.

Список изменений

Версия | Описание
5.1.0 | The content parameter was added.

Примечания

Замечание: As specified in RFC 2045, lines may not be longer than 76 characters in the filename parameter.


Gets an exportable representation of a key into a file

  • « openssl_pkcs7_verify
  • openssl_pkey_export »
  • PHP Manual
  • OpenSSL
  • Gets an exportable representation of a key into a file

openssl_pkey_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_export_to_file — Gets an exportable representation of a key into a file

Описание

bool openssl_pkey_export_to_file ( mixed $key , string $outfilename [, string $passphrase [, array $configargs ]] )

openssl_pkey_export_to_file() saves an ascii-armoured (PEM encoded) rendition of key into the file named by outfilename.

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

key

outfilename

Path to the output file.

passphrase

The key can be optionally protected by a passphrase.

configargs

configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Gets an exportable representation of a key into a string

  • « openssl_pkey_export_to_file
  • openssl_pkey_free »
  • PHP Manual
  • OpenSSL
  • Gets an exportable representation of a key into a string

openssl_pkey_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_export — Gets an exportable representation of a key into a string

Описание

bool openssl_pkey_export ( mixed $key , string &$out [, string $passphrase [, array $configargs ]] )

openssl_pkey_export() exports key as a PEM encoded string and stores it into out (which is passed by reference).

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

key

out

passphrase

The key is optionally protected by passphrase.

configargs

configargs can be used to fine-tune the export process by specifying and/or overriding options for the openssl configuration file. See openssl_csr_new() for more information about configargs.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Frees a private key

  • « openssl_pkey_export
  • openssl_pkey_get_details »
  • PHP Manual
  • OpenSSL
  • Frees a private key

openssl_pkey_free

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_free — Frees a private key

Описание

void openssl_pkey_free ( resource $key )

This function frees a private key created by openssl_pkey_new().

Список параметров

key

Resource holding the key.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Returns an array with the key details

  • « openssl_pkey_free
  • openssl_pkey_get_private »
  • PHP Manual
  • OpenSSL
  • Returns an array with the key details

openssl_pkey_get_details

(PHP 5 >= 5.2.0, PHP 7)

openssl_pkey_get_details — Returns an array with the key details

Описание

array openssl_pkey_get_details ( resource $key )

This function returns the key details (bits, key, type).

Список параметров

key

Resource holding the key.

Возвращаемые значения

Returns an array with the key details in success or FALSE in failure. Returned array has indexes bits (number of bits), key (string representation of the public key) and type (type of the key which is one of OPENSSL_KEYTYPE_RSA, OPENSSL_KEYTYPE_DSA, OPENSSL_KEYTYPE_DH, OPENSSL_KEYTYPE_EC or -1 meaning unknown).

Depending on the key type used, additional details may be returned. Note that some elements may not always be available.

  • OPENSSL_KEYTYPE_RSA, an additional array key named "rsa", containing the key data is returned.
    Key Описание
    "n"
    "e"
    "d"
    "p"
    "q"
    "dmp1"
    "dmq1"
    "iqmp"
  • OPENSSL_KEYTYPE_DSA, an additional array key named "dsa", containing the key data is returned.
    Key Описание
    "p"
    "q"
    "g"
    "priv_key"
    "pub_key"
  • OPENSSL_KEYTYPE_DH, an additional array key named "dh", containing the key data is returned.
    Key Описание
    "p"
    "g"
    "priv_key"
    "pub_key"


Get a private key

  • « openssl_pkey_get_details
  • openssl_pkey_get_public »
  • PHP Manual
  • OpenSSL
  • Get a private key

openssl_pkey_get_private

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_get_private — Get a private key

Описание

resource openssl_pkey_get_private ( mixed $key [, string $passphrase = "" ] )

openssl_get_privatekey() parses key and prepares it for use by other functions.

Список параметров

key

key can be one of the following:

  1. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/private key (it may contain both).
  2. A PEM formatted private key.

passphrase

The optional parameter passphrase must be used if the specified key is encrypted (protected by a passphrase).

Возвращаемые значения

Returns a positive key resource identifier on success, or FALSE on error.


Extract public key from certificate and prepare it for use

  • « openssl_pkey_get_private
  • openssl_pkey_new »
  • PHP Manual
  • OpenSSL
  • Extract public key from certificate and prepare it for use

openssl_pkey_get_public

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_get_public — Extract public key from certificate and prepare it for use

Описание

resource openssl_pkey_get_public ( mixed $certificate )

openssl_get_publickey() extracts the public key from certificate and prepares it for use by other functions.

Список параметров

certificate

certificate can be one of the following:

  1. an X.509 certificate resource
  2. a string having the format file://path/to/file.pem. The named file must contain a PEM encoded certificate/public key (it may contain both).
  3. A PEM formatted public key.

Возвращаемые значения

Returns a positive key resource identifier on success, or FALSE on error.


Generates a new private key

  • « openssl_pkey_get_public
  • openssl_private_decrypt »
  • PHP Manual
  • OpenSSL
  • Generates a new private key

openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_pkey_new — Generates a new private key

Описание

resource openssl_pkey_new ([ array $configargs ] )

openssl_pkey_new() generates a new private and public key pair. The public component of the key can be obtained using openssl_pkey_get_public().

Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.

Список параметров

configargs

You can finetune the key generation (such as specifying the number of bits) using configargs. See openssl_csr_new() for more information about configargs.

Возвращаемые значения

Returns a resource identifier for the pkey on success, or FALSE on error.


Decrypts data with private key

  • « openssl_pkey_new
  • openssl_private_encrypt »
  • PHP Manual
  • OpenSSL
  • Decrypts data with private key

openssl_private_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_private_decrypt — Decrypts data with private key

Описание

bool openssl_private_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_private_decrypt() decrypts data that was previously encrypted via openssl_public_encrypt() and stores the result into decrypted.

You can use this function e.g. to decrypt data which is supposed to only be available to you.

Список параметров

data

decrypted

key

key must be the private key corresponding that was used to encrypt the data.

padding

padding can be one of OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openssl_public_encrypt() - Encrypts data with public key
  • openssl_public_decrypt() - Decrypts data with public key


Encrypts data with private key

  • « openssl_private_decrypt
  • openssl_public_decrypt »
  • PHP Manual
  • OpenSSL
  • Encrypts data with private key

openssl_private_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_private_encrypt — Encrypts data with private key

Описание

bool openssl_private_encrypt ( string $data , string &$crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_private_encrypt() encrypts data with private key and stores the result into crypted. Encrypted data can be decrypted via openssl_public_decrypt().

This function can be used e.g. to sign data (or its hash) to prove that it is not written by someone else.

Список параметров

data

crypted

key

padding

padding can be one of OPENSSL_PKCS1_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openssl_public_encrypt() - Encrypts data with public key
  • openssl_public_decrypt() - Decrypts data with public key


Decrypts data with public key

  • « openssl_private_encrypt
  • openssl_public_encrypt »
  • PHP Manual
  • OpenSSL
  • Decrypts data with public key

openssl_public_decrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_public_decrypt — Decrypts data with public key

Описание

bool openssl_public_decrypt ( string $data , string &$decrypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_public_decrypt() decrypts data that was previous encrypted via openssl_private_encrypt() and stores the result into decrypted.

You can use this function e.g. to check if the message was written by the owner of the private key.

Список параметров

data

decrypted

key

key must be the public key corresponding that was used to encrypt the data.

padding

padding can be one of OPENSSL_PKCS1_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openssl_private_encrypt() - Encrypts data with private key
  • openssl_private_decrypt() - Decrypts data with private key


Encrypts data with public key

  • « openssl_public_decrypt
  • openssl_random_pseudo_bytes »
  • PHP Manual
  • OpenSSL
  • Encrypts data with public key

openssl_public_encrypt

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_public_encrypt — Encrypts data with public key

Описание

bool openssl_public_encrypt ( string $data , string &$crypted , mixed $key [, int $padding = OPENSSL_PKCS1_PADDING ] )

openssl_public_encrypt() encrypts data with public key and stores the result into crypted. Encrypted data can be decrypted via openssl_private_decrypt().

This function can be used e.g. to encrypt message which can be then read only by owner of the private key. It can be also used to store secure data in database.

Список параметров

data

crypted

This will hold the result of the encryption.

key

The public key.

padding

padding can be one of OPENSSL_PKCS1_PADDING, OPENSSL_SSLV23_PADDING, OPENSSL_PKCS1_OAEP_PADDING, OPENSSL_NO_PADDING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • openssl_private_encrypt() - Encrypts data with private key
  • openssl_private_decrypt() - Decrypts data with private key


Generate a pseudo-random string of bytes

  • « openssl_public_encrypt
  • openssl_seal »
  • PHP Manual
  • OpenSSL
  • Generate a pseudo-random string of bytes

openssl_random_pseudo_bytes

(PHP 5 >= 5.3.0, PHP 7)

openssl_random_pseudo_bytes — Generate a pseudo-random string of bytes

Описание

string openssl_random_pseudo_bytes ( int $length [, bool &$crypto_strong ] )

Generates a string of pseudo-random bytes, with the number of bytes determined by the length parameter.

It also indicates if a cryptographically strong algorithm was used to produce the pseudo-random bytes, and does this via the optional crypto_strong parameter. It's rare for this to be FALSE, but some systems may be broken or old.

Список параметров

length

The length of the desired string of bytes. Must be a positive integer. PHP will try to cast this parameter to a non-null integer to use it.

crypto_strong

If passed into the function, this will hold a boolean value that determines if the algorithm used was "cryptographically strong", e.g., safe for usage with GPG, passwords, etc. TRUE if it did, otherwise FALSE

Возвращаемые значения

Returns the generated string of bytes on success, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 openssl_random_pseudo_bytes() example

<?php
for ($i = -1; $i <= 4; $i++) {
    $bytes = openssl_random_pseudo_bytes($i, $cstrong);
    $hex   = bin2hex($bytes);

    echo "Lengths: Bytes: $i and Hex: " . strlen($hex) . PHP_EOL;
    var_dump($hex);
    var_dump($cstrong);
    echo PHP_EOL;
}
?>

Результатом выполнения данного примера будет что-то подобное:

Lengths: Bytes: -1 and Hex: 0
string(0) ""
NULL

Lengths: Bytes: 0 and Hex: 0
string(0) ""
NULL

Lengths: Bytes: 1 and Hex: 2
string(2) "42"
bool(true)

Lengths: Bytes: 2 and Hex: 4
string(4) "dc6e"
bool(true)

Lengths: Bytes: 3 and Hex: 6
string(6) "288591"
bool(true)

Lengths: Bytes: 4 and Hex: 8
string(8) "ab86d144"
bool(true)

Смотрите также

  • random_bytes() - Генератор криптографически безопасных случайных байт
  • bin2hex() - Преобразует бинарные данные в шестнадцатеричное представление
  • crypt() - Необратимое хэширование строки
  • mt_rand() - Генерирует случайное значение методом mt
  • uniqid() - Генерирует уникальный ID


Seal (encrypt) data

  • « openssl_random_pseudo_bytes
  • openssl_sign »
  • PHP Manual
  • OpenSSL
  • Seal (encrypt) data

openssl_seal

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_seal — Seal (encrypt) data

Описание

int openssl_seal ( string $data , string &$sealed_data , array &$env_keys , array $pub_key_ids [, string $method = "RC4" ] )

openssl_seal() seals (encrypts) data by using the given method with a randomly generated secret key. The key is encrypted with each of the public keys associated with the identifiers in pub_key_ids and each encrypted key is returned in env_keys. This means that one can send sealed data to multiple recipients (provided one has obtained their public keys). Each recipient must receive both the sealed data and the envelope key that was encrypted with the recipient's public key.

Список параметров

data

The data to seal.

sealed_data

The sealed data.

env_keys

Array of encrypted keys.

pub_key_ids

Array of public key resource identifiers.

method

The cipher method.

Возвращаемые значения

Returns the length of the sealed data on success, or FALSE on error. If successful the sealed data is returned in sealed_data, and the envelope keys in env_keys.

Примеры

Пример #1 openssl_seal() example

<?php
// $data is assumed to contain the data to be sealed

// fetch public keys for our recipients, and ready them
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// Repeat for second recipient
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);

// seal message, only owners of $pk1 and $pk2 can decrypt $sealed with keys
// $ekeys[0] and $ekeys[1] respectively.
openssl_seal($data, $sealed, $ekeys, array($pk1, $pk2));

// free the keys from memory
openssl_free_key($pk1);
openssl_free_key($pk2);
?>

Список изменений

Версия | Описание
5.3.0 | The method parameter was added.

Смотрите также

  • openssl_open() - Open sealed data


Generate signature

  • « openssl_seal
  • openssl_spki_export_challenge »
  • PHP Manual
  • OpenSSL
  • Generate signature

openssl_sign

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_sign — Generate signature

Описание

bool openssl_sign ( string $data , string &$signature , mixed $priv_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA1 ] )

openssl_sign() computes a signature for the specified data by generating a cryptographic digital signature using the private key associated with priv_key_id. Note that the data itself is not encrypted.

Список параметров

data

The string of data you wish to sign

signature

If the call was successful the signature is returned in signature.

priv_key_id

resource - a key, returned by openssl_get_privatekey()

string - a PEM formatted key

signature_alg

int - one of these Signature Algorithms.

string - a valid string returned by openssl_get_md_methods() example, "sha256WithRSAEncryption" or "sha384".

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 openssl_sign() example

<?php
// $data is assumed to contain the data to be signed

// fetch private key from file and ready it
$pkeyid = openssl_pkey_get_private("file://src/openssl-0.9.6/demos/sign/key.pem");

// compute signature
openssl_sign($data, $signature, $pkeyid);

// free the key from memory
openssl_free_key($pkeyid);
?>

Пример #2 openssl_sign() example

<?php
//data you want to sign
$data = 'my data';

//create new private and public key
$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'];

//create signature
openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256);

//save for later
file_put_contents('private_key.pem', $private_key_pem);
file_put_contents('public_key.pem', $public_key_pem);
file_put_contents('signature.dat', $signature);

//verify signature
$r = openssl_verify($data, $signature, $public_key_pem, "sha256WithRSAEncryption");
var_dump($r);
?>

Смотрите также

  • openssl_verify() - Verify signature


Exports the challenge assoicated with a signed public key and challenge

  • « openssl_sign
  • openssl_spki_export »
  • PHP Manual
  • OpenSSL
  • Exports the challenge assoicated with a signed public key and challenge

openssl_spki_export_challenge

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_export_challenge — Exports the challenge assoicated with a signed public key and challenge

Описание

string openssl_spki_export_challenge ( string &$spkac )

Exports challenge from encoded signed public key and challenge

Список параметров

spkac

Expects a valid signed public key and challenge

Возвращаемые значения

Returns the associated challenge string or NULL on failure.

Ошибки

Emits an E_WARNING level error if an invalid argument is passed via the spkac parameter.

Примеры

Пример #1 openssl_spki_export_challenge() example

Extracts the associated challenge string or NULL on failure.

<?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() example from <keygen>

Extracts the associated challenge string issued from the <keygen> element

<?php
$challenge = openssl_spki_export_challenge(preg_replace('/SPKAC=/', '', $_POST['spkac']));
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Смотрите также

  • openssl_spki_new() - Generate a new signed public key and challenge
  • openssl_spki_verify() - Verifies a signed public key and challenge
  • openssl_spki_export() - Exports a valid PEM formatted public key signed public key and challenge
  • openssl_md_method()
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Exports a valid PEM formatted public key signed public key and challenge

  • « openssl_spki_export_challenge
  • openssl_spki_new »
  • PHP Manual
  • OpenSSL
  • Exports a valid PEM formatted public key signed public key and challenge

openssl_spki_export

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_export — Exports a valid PEM formatted public key signed public key and challenge

Описание

string openssl_spki_export ( string &$spkac )

Exports PEM formatted public key from encoded signed public key and challenge

Список параметров

spkac

Expects a valid signed public key and challenge

Возвращаемые значения

Returns the associated PEM formatted public key or NULL on failure.

Ошибки

Emits an E_WARNING level error if an invalid argument is passed via the spkac parameter.

Примеры

Пример #1 openssl_spki_export() example

Extracts the associated PEM formatted public key or NULL on failure.

<?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() example from <keygen>

Extracts the associated PEM formatted public key issued from the <keygen> element

<?php
$spkac = openssl_spki_export(preg_replace('/SPKAC=/', '', $_POST['spkac']));
if ($spkac != NULL) {
    echo $spkac;
} else {
    echo "Extraction of pub key failed";
}
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Смотрите также

  • openssl_spki_new() - Generate a new signed public key and challenge
  • openssl_spki_verify() - Verifies a signed public key and challenge
  • openssl_spki_export_challenge() - Exports the challenge assoicated with a signed public key and challenge
  • openssl_md_method()
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Generate a new signed public key and challenge

  • « openssl_spki_export
  • openssl_spki_verify »
  • PHP Manual
  • OpenSSL
  • Generate a new signed public key and challenge

openssl_spki_new

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_new — Generate a new signed public key and challenge

Описание

string openssl_spki_new ( resource &$privkey , string &$challenge [, int $algorithm = 0 ] )

Generates a signed public key and challenge using specified hashing algorithm

Список параметров

privkey

privkey should be set to a private key that was previously generated by openssl_pkey_new() (or otherwise obtained from the other openssl_pkey family of functions). The corresponding public portion of the key will be used to sign the CSR.

challenge

The challenge associated to associate with the SPKAC

algorithm

The digest algorithm. See openssl_get_md_method().

Возвращаемые значения

Returns a signed public key and challenge string or NULL on failure.

Ошибки

Emits an E_WARNING level error if an unknown signature algorithm is passed via the algorithm parameter.

Примеры

Пример #1 openssl_spki_new() example

Generate a new SPKAC with the default digest (MD5)

<?php
$pkey = openssl_pkey_new('secret password');
$spkac = openssl_spki_new($pkey, 'testing');

if ($spkac !== NULL) {
    echo $spkac;
} else {
    echo "SPKAC generation failed";
}
?>

Результатом выполнения данного примера будет что-то подобное:

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_new()
  • openssl_spki_export_challenge() - Exports the challenge assoicated with a signed public key and challenge
  • openssl_spki_export() - Exports a valid PEM formatted public key signed public key and challenge
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Verifies a signed public key and challenge

  • « openssl_spki_new
  • openssl_verify »
  • PHP Manual
  • OpenSSL
  • Verifies a signed public key and challenge

openssl_spki_verify

(PHP 5 >= 5.6.0, PHP 7)

openssl_spki_verify — Verifies a signed public key and challenge

Описание

string openssl_spki_verify ( string &$spkac )

Validates the supplied signed public key and challenge

Список параметров

spkac

Expects a valid signed public key and challenge

Возвращаемые значения

Returns a boolean on success or failure.

Ошибки

Emits an E_WARNING level error if an invalid argument is passed via the spkac parameter.

Примеры

Пример #1 openssl_spki_verify() example

Validates an existing signed public key and challenge

<?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 validation failed";
}
?>

Пример #2 openssl_spki_verify() example from <keygen>

Validates an existing signed public key and challenge issued from the <keygen> element

<?php
if (openssl_spki_verify(preg_replace('/SPKAC=/', '', $_POST['spkac']))) {
    echo $spkac;
} else {
    echo "SPKAC validation failed";
}
?>
<keygen name="spkac" challenge="challenge string" keytype="RSA">

Смотрите также

  • openssl_spki_new() - Generate a new signed public key and challenge
  • openssl_spki_export_challenge() - Exports the challenge assoicated with a signed public key and challenge
  • openssl_spki_export() - Exports a valid PEM formatted public key signed public key and challenge
  • openssl_md_method()
  • openssl_csr_new() - Generates a CSR
  • openssl_csr_sign() - Sign a CSR with another certificate (or itself) and generate a certificate


Verify signature

  • « openssl_spki_verify
  • openssl_x509_check_private_key »
  • PHP Manual
  • OpenSSL
  • Verify signature

openssl_verify

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_verify — Verify signature

Описание

int openssl_verify ( string $data , string $signature , mixed $pub_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA1 ] )

openssl_verify() verifies that the signature is correct for the specified data using the public key associated with pub_key_id. This must be the public key corresponding to the private key used for signing.

Список параметров

data

The string of data used to generate the signature previously

signature

A raw binary string, generated by openssl_sign() or similar means

pub_key_id

resource - a key, returned by openssl_get_publickey()

string - a PEM formatted key, example, "-----BEGIN PUBLIC KEY----- MIIBCgK..."

signature_alg

int - one of these Signature Algorithms.

string - a valid string returned by openssl_get_md_methods() example, "sha1WithRSAEncryption" or "sha512".

Возвращаемые значения

Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

Список изменений

Версия | Описание
5.2.0 | The signature_alg parameter was added.

Примеры

Пример #1 openssl_verify() example

<?php
// $data and $signature are assumed to contain the data and the signature

// fetch public key from certificate and ready it
$pubkeyid = openssl_pkey_get_public("file://src/openssl-0.9.6/demos/sign/cert.pem");

// state whether signature is okay or not
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1) {
    echo "good";
} elseif ($ok == 0) {
    echo "bad";
} else {
    echo "ugly, error checking signature";
}
// free the key from memory
openssl_free_key($pubkeyid);
?>

Пример #2 openssl_verify() example

<?php
//data you want to sign
$data = 'my data';

//create new private and public key
$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']);

//create signature
openssl_sign($data, $signature, $private_key_res, "sha1WithRSAEncryption");

//verify signature
$ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA1);
if ($ok == 1) {
    echo "valid";
} elseif ($ok == 0) {
    echo "invalid";
} else {
    echo "error: ".openssl_error_string();
}
?>

Смотрите также

  • openssl_sign() - Generate signature


Checks if a private key corresponds to a certificate

  • « openssl_verify
  • openssl_x509_checkpurpose »
  • PHP Manual
  • OpenSSL
  • Checks if a private key corresponds to a certificate

openssl_x509_check_private_key

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_x509_check_private_key — Checks if a private key corresponds to a certificate

Описание

bool openssl_x509_check_private_key ( mixed $cert , mixed $key )

Checks whether the given key is the private key that corresponds to cert.

Список параметров

cert

The certificate.

key

The private key.

Возвращаемые значения

Returns TRUE if key is the private key that corresponds to cert, or FALSE otherwise.


Verifies if a certificate can be used for a particular purpose

  • « openssl_x509_check_private_key
  • openssl_x509_export_to_file »
  • PHP Manual
  • OpenSSL
  • Verifies if a certificate can be used for a particular purpose

openssl_x509_checkpurpose

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_checkpurpose — Verifies if a certificate can be used for a particular purpose

Описание

int openssl_x509_checkpurpose ( mixed $x509cert , int $purpose [, array $cainfo = array() [, string $untrustedfile ]] )

openssl_x509_checkpurpose() examines a certificate to see if it can be used for the specified purpose.

Список параметров

x509cert

The examined certificate.

purpose

openssl_x509_checkpurpose() purposes
Constant | Description
X509_PURPOSE_SSL_CLIENT | Can the certificate be used for the client side of an SSL connection?
X509_PURPOSE_SSL_SERVER | Can the certificate be used for the server side of an SSL connection?
X509_PURPOSE_NS_SSL_SERVER | Can the cert be used for Netscape SSL server?
X509_PURPOSE_SMIME_SIGN | Can the cert be used to sign S/MIME email?
X509_PURPOSE_SMIME_ENCRYPT | Can the cert be used to encrypt S/MIME email?
X509_PURPOSE_CRL_SIGN | Can the cert be used to sign a certificate revocation list (CRL)?
X509_PURPOSE_ANY | Can the cert be used for Any/All purposes?
These options are not bitfields - you may specify one only!

cainfo

cainfo should be an array of trusted CA files/dirs as described in Certificate Verification.

untrustedfile

If specified, this should be the name of a PEM encoded file holding certificates that can be used to help verify the certificate, although no trust is placed in the certificates that come from that file.

Возвращаемые значения

Returns TRUE if the certificate can be used for the intended purpose, FALSE if it cannot, or -1 on error.


Exports a certificate to file

  • « openssl_x509_checkpurpose
  • openssl_x509_export »
  • PHP Manual
  • OpenSSL
  • Exports a certificate to file

openssl_x509_export_to_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_x509_export_to_file — Exports a certificate to file

Описание

bool openssl_x509_export_to_file ( mixed $x509 , string $outfilename [, bool $notext = TRUE ] )

openssl_x509_export_to_file() stores x509 into a file named by outfilename in a PEM encoded format.

Список параметров

x509

Для списка корректных значений смотрите Параметры ключей/сертификатов.

outfilename

Path to the output file.

notext

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в FALSE, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является TRUE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Exports a certificate as a string

  • « openssl_x509_export_to_file
  • openssl_x509_fingerprint »
  • PHP Manual
  • OpenSSL
  • Exports a certificate as a string

openssl_x509_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

openssl_x509_export — Exports a certificate as a string

Описание

bool openssl_x509_export ( mixed $x509 , string &$output [, bool $notext = TRUE ] )

openssl_x509_export() stores x509 into a string named by output in a PEM encoded format.

Список параметров

x509

Для списка корректных значений смотрите Параметры ключей/сертификатов.

output

On success, this will hold the PEM.

notext

Необязательный параметр notext влияет на детализацию сообщений вывода; если он установлен в FALSE, то в вывод добавляется дополнительная человекочитаемая информация. Значением по умолчанию notext является TRUE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Calculates the fingerprint, or digest, of a given X.509 certificate

  • « openssl_x509_export
  • openssl_x509_free »
  • PHP Manual
  • OpenSSL
  • Calculates the fingerprint, or digest, of a given X.509 certificate

openssl_x509_fingerprint

(PHP 5.6, PHP 7)

openssl_x509_fingerprint — Calculates the fingerprint, or digest, of a given X.509 certificate

Описание

bool openssl_x509_fingerprint ( mixed $x509 [, string $hash_algorithm = "sha1" [, bool $raw_output = FALSE ]] )

openssl_x509_fingerprint() returns the digest of x509 as a string.

Список параметров

x509

Для списка корректных значений смотрите Параметры ключей/сертификатов.

hash_algorithm

The hash algorithm to use, e.g. "md5" or "sha1"

raw_output

When set to TRUE, outputs raw binary data. FALSE outputs lowercase hexits.

Возвращаемые значения

Returns a string containing the calculated certificate fingerprint as lowercase hexits unless raw_output is set to TRUE in which case the raw binary representation of the message digest is returned.

Returns FALSE on failure.


Free certificate resource

  • « openssl_x509_fingerprint
  • openssl_x509_parse »
  • PHP Manual
  • OpenSSL
  • Free certificate resource

openssl_x509_free

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_free — Free certificate resource

Описание

void openssl_x509_free ( resource $x509cert )

openssl_x509_free() frees the certificate associated with the specified x509cert resource from memory.

Список параметров

x509cert

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Parse an X509 certificate and return the information as an array

  • « openssl_x509_free
  • openssl_x509_read »
  • PHP Manual
  • OpenSSL
  • Parse an X509 certificate and return the information as an array

openssl_x509_parse

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_parse — Parse an X509 certificate and return the information as an array

Описание

array openssl_x509_parse ( mixed $x509cert [, bool $shortnames = true ] )

openssl_x509_parse() returns information about the supplied x509cert, including fields such as subject name, issuer name, purposes, valid from and valid to dates etc.

Список параметров

x509cert

shortnames

shortnames controls how the data is indexed in the array - if shortnames is TRUE (the default) then fields will be indexed with the short name form, otherwise, the long name form will be used - e.g.: CN is the shortname form of commonName.

Возвращаемые значения

The structure of the returned data is (deliberately) not yet documented, as it is still subject to change.


Parse an X.509 certificate and return a resource identifier for it

  • « openssl_x509_parse
  • Хэширование паролей »
  • PHP Manual
  • OpenSSL
  • Parse an X.509 certificate and return a resource identifier for it

openssl_x509_read

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

openssl_x509_read — Parse an X.509 certificate and return a resource identifier for it

Описание

resource openssl_x509_read ( mixed $x509certdata )

openssl_x509_read() parses the certificate supplied by x509certdata and returns a resource identifier for it.

Список параметров

x509certdata

Возвращаемые значения

Returns a resource identifier on success или FALSE в случае возникновения ошибки.


Хэширование паролей

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Password Hashing Функции
    • password_get_info — Returns information about the given hash
    • password_hash — Creates a password hash
    • password_needs_rehash — Checks if the given hash matches the given options
    • password_verify — Verifies that a password matches a hash


Введение

API хэширования паролей предоставляет простую в использовании обертку функции crypt(), для легкого создания и управления паролями.

Это расширение доступно с PHP 5.5.0, а для более ранних версий PHP >= 5.3.7 существует » пользовательская реализация.


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

PASSWORD_BCRYPT (integer)

PASSWORD_BCRYPT is used to create new password hashes using the CRYPT_BLOWFISH algorithm.

This will always result in a hash using the "$2y$" crypt format, which is always 60 characters wide.

Supported Options:

  • salt - to manually provide a salt to use when hashing the password. Note that this will override and prevent a salt from being automatically generated.

    If omitted, a random salt will be generated by password_hash() for each password hashed. This is the intended mode of operation.

  • cost - which denotes the algorithmic cost that should be used. Examples of these values can be found on the crypt() page.

    If ommitted, a default value of 10 will be used. This is a good baseline cost, but you may want to consider increasing it depending on your hardware.

PASSWORD_DEFAULT (integer)

The default algorithm to use for hashing if no algorithm is provided. This may change in newer PHP releases when newer, stronger hashing algorithms are supported.

It is worth noting that over time this constant can (and likely will) change. Therefore you should be aware that the length of the resulting hash can change. Therefore, if you use PASSWORD_DEFAULT you should store the resulting hash in a way that can store more than 60 characters (255 is the recomended width).

Values for this constant:

  • PHP 5.5.0 - PASSWORD_BCRYPT


Password Hashing Функции

Содержание

  • password_get_info — Returns information about the given hash
  • password_hash — Creates a password hash
  • password_needs_rehash — Checks if the given hash matches the given options
  • password_verify — Verifies that a password matches a hash


Returns information about the given hash

  • « Password Hashing Функции
  • password_hash »
  • PHP Manual
  • Password Hashing Функции
  • Returns information about the given hash

password_get_info

(PHP 5 >= 5.5.0, PHP 7)

password_get_info — Returns information about the given hash

Описание

array password_get_info ( string $hash )

When passed in a valid hash created by an algorithm supported by password_hash(), this function will return an array of information about that hash.

Список параметров

hash

Хэш, созданный функцией password_hash().

Возвращаемые значения

Returns an associative array with three elements:

  • algo, which will match a password algorithm constant
  • algoName, which has the human readable name of the algorithm
  • options, which includes the options provided when calling password_hash()


Creates a password hash

  • « password_get_info
  • password_needs_rehash »
  • PHP Manual
  • Password Hashing Функции
  • Creates a password hash

password_hash

(PHP 5 >= 5.5.0, PHP 7)

password_hash — Creates a password hash

Описание

string password_hash ( string $password , integer $algo [, array $options ] )

password_hash() creates a new password hash using a strong one-way hashing algorithm. password_hash() is compatible with crypt(). Therefore, password hashes created by crypt() can be used with password_hash().

The following algorithms are currently supported:

  • PASSWORD_DEFAULT - Use the bcrypt algorithm (default as of PHP 5.5.0). Note that this constant is designed to change over time as new and stronger algorithms are added to PHP. For that reason, the length of the result from using this identifier can change over time. Therefore, it is recommended to store the result in a database column that can expand beyond 60 characters (255 characters would be a good choice).
  • PASSWORD_BCRYPT - Use the CRYPT_BLOWFISH algorithm to create the hash. This will produce a standard crypt() compatible hash using the "$2y$" identifier. The result will always be a 60 character string, или FALSE в случае возникновения ошибки.

Supported Options:

  • salt - to manually provide a salt to use when hashing the password. Note that this will override and prevent a salt from being automatically generated.

    If omitted, a random salt will be generated by password_hash() for each password hashed. This is the intended mode of operation.

    Внимание

    The salt option has been deprecated as of PHP 7.0.0. It is now preferred to simply use the salt that is generated by default.

  • cost - which denotes the algorithmic cost that should be used. Examples of these values can be found on the crypt() page.

    If omitted, a default value of 10 will be used. This is a good baseline cost, but you may want to consider increasing it depending on your hardware.

Список параметров

password

Пользовательский пароль.

Предостережение

Using the PASSWORD_BCRYPT as the algorithm, will result in the password parameter being truncated to a maximum length of 72 characters.

algo

Константа, обозначающая используемый алгоритм хэширования пароля.

options

Ассоциативный массив с опциями. За документацией по поддерживаемым опциям для каждого алгоритма обратитесь к разделу "Константы алгоритмов хэширования паролей".

If omitted, a random salt will be created and the default cost will be used.

Возвращаемые значения

Returns the hashed password, или FALSE в случае возникновения ошибки.

The used algorithm, cost and salt are returned as part of the hash. Therefore, all information that's needed to verify the hash is included in it. This allows the password_verify() function to verify the hash without needing separate storage for the salt or algorithm information.

Примеры

Пример #1 password_hash() example

<?php
/**
 * We just want to hash our password using the current DEFAULT algorithm.
 * This is presently BCRYPT, and will produce a 60 character result.
 *
 * Beware that DEFAULT may change over time, so you would want to prepare
 * By allowing your storage to expand past 60 characters (255 would be good)
 */
echo password_hash("rasmuslerdorf", PASSWORD_DEFAULT)."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a

Пример #2 password_hash() example setting cost manually

<?php
/**
 * In this case, we want to increase the default cost for BCRYPT to 12.
 * Note that we also switched to BCRYPT, which will always be 60 characters.
 */
$options = [
    'cost' => 12,
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options)."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K

Пример #3 password_hash() example setting salt manually

<?php
/**
 * Note that the salt here is randomly generated.
 * Never use a static salt or one that is not randomly generated.
 *
 * For the VAST majority of use-cases, let password_hash generate the salt randomly for you
 */
$options = [
    'cost' => 11,
    'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options)."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

$2y$11$q5MkhSBtlsJcNEVsYh64a.aCluzHnGog7TQAKVmQwO9C8xb.t89F.

Пример #4 password_hash() example finding a good cost

<?php
/**
 * This code will benchmark your server to determine how high of a cost you can
 * afford. You want to set the highest cost that you can without slowing down
 * you server too much. 8-10 is a good baseline, and more is good if your servers
 * are fast enough. The code below aims for ? 50 milliseconds stretching time,
 * which is a good baseline for systems handling interactive logins.
 */
$timeTarget = 0.05; // 50 milliseconds

$cost = 8;
do {
    $cost++;
    $start = microtime(true);
    password_hash("test", PASSWORD_BCRYPT, ["cost" => $cost]);
    $end = microtime(true);
} while (($end - $start) < $timeTarget);

echo "Appropriate Cost Found: " . $cost . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Appropriate Cost Found: 10

Примечания

Предостережение

It is strongly recommended that you do not generate your own salt for this function. It will create a secure salt automatically for you if you do not specify one.

As noted above, providing the salt option in PHP 7.0 will generate a deprecation warning. Support for providing a salt manually may be removed in a future PHP release.

Замечание:

It is recommended that you test this function on your servers, and adjust the cost parameter so that execution of the function takes less than 100 milliseconds on interactive systems. The script in the above example will help you choose a good cost value for your hardware.

Замечание: Updates to supported algorithms by this function (or changes to the default one) must follow the following rules:

  • Any new algorithm must be in core for at least 1 full release of PHP prior to becoming default. So if, for example, a new algorithm is added in 7.5.5, it would not be eligible for default until 7.7 (since 7.6 would be the first full release). But if a different algorithm was added in 7.6.0, it would also be eligible for default at 7.7.0.
  • The default should only change in a full release (7.3.0, 8.0.0, etc) and not in a revision release. The only exception to this is in an emergency when a critical security flaw is found in the current default.

Смотрите также

  • password_verify() - Verifies that a password matches a hash
  • crypt() - Необратимое хэширование строки
  • » userland implementation


Checks if the given hash matches the given options

  • « password_hash
  • password_verify »
  • PHP Manual
  • Password Hashing Функции
  • Checks if the given hash matches the given options

password_needs_rehash

(PHP 5 >= 5.5.0, PHP 7)

password_needs_rehash — Checks if the given hash matches the given options

Описание

boolean password_needs_rehash ( string $hash , integer $algo [, array $options ] )

This function checks to see if the supplied hash implements the algorithm and options provided. If not, it is assumed that the hash needs to be rehashed.

Список параметров

hash

Хэш, созданный функцией password_hash().

algo

Константа, обозначающая используемый алгоритм хэширования пароля.

options

Ассоциативный массив с опциями. За документацией по поддерживаемым опциям для каждого алгоритма обратитесь к разделу "Константы алгоритмов хэширования паролей".

Примеры

Пример #1 Usage of password_needs_rehash()

<?php

$password = 'rasmuslerdorf';
$hash = '$2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS';

// The cost parameter can change over time as hardware improves
$options = array('cost' => 11);

// Verify stored hash against plain-text password
if (password_verify($password, $hash)) {
    // Check if a newer hashing algorithm is available
    // or the cost has changed
    if (password_needs_rehash($hash, PASSWORD_DEFAULT, $options)) {
        // If so, create a new hash, and replace the old one
        $newHash = password_hash($password, PASSWORD_DEFAULT, $options);
    }

    // Log user in
}
?>

Возвращаемые значения

Returns TRUE if the hash should be rehashed to match the given algo and options, or FALSE otherwise.


Verifies that a password matches a hash

  • « password_needs_rehash
  • Расширения для работы с базами данных »
  • PHP Manual
  • Password Hashing Функции
  • Verifies that a password matches a hash

password_verify

(PHP 5 >= 5.5.0, PHP 7)

password_verify — Verifies that a password matches a hash

Описание

boolean password_verify ( string $password , string $hash )

Verifies that the given hash matches the given password.

Note that password_hash() returns the algorithm, cost and salt as part of the returned hash. Therefore, all information that's needed to verify the hash is included in it. This allows the verify function to verify the hash without needing separate storage for the salt or algorithm information.

This function is safe against timing attacks.

Список параметров

password

Пользовательский пароль.

hash

Хэш, созданный функцией password_hash().

Возвращаемые значения

Returns TRUE if the password and hash match, or FALSE otherwise.

Примеры

Пример #1 password_verify() example

<?php
// See the password_hash() example to see where this came from.
$hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';

if (password_verify('rasmuslerdorf', $hash)) {
    echo 'Password is valid!';
} else {
    echo 'Invalid password.';
}
?>

Результат выполнения данного примера:

Password is valid!

Смотрите также

  • password_hash() - Creates a password hash
  • » userland implementation


Расширения для работы с базами данных

  • Уровни абстракции
    • DBA — Database (dbm-style) Abstraction Layer
    • dbx
    • ODBC — ODBC (Unified)
    • PDO — Объекты данных PHP
  • Расширения для работы с базами данных отдельных производителей
    • CUBRID
    • DB++
    • dBase
    • filePro
    • Firebird/InterBase
    • FrontBase
    • IBM DB2 — IBM DB2, Cloudscape и Apache Derby
    • Informix
    • Ingres — Ingres DBMS, EDBC, and Enterprise Access Gateways
    • MaxDB
    • Mongo — Драйвер MongoDB (наследие)
    • MongoDB — MongoDB driver
    • mSQL
    • Mssql — Microsoft SQL Server
    • MySQL — MySQL драйверы и плагины
    • OCI8 — Oracle OCI8
    • Paradox — Paradox File Access
    • PostgreSQL
    • SQLite
    • SQLite3
    • SQLSRV — Драйвер СУБД Microsoft SQL Server для PHP
    • Sybase
    • tokyo_tyrant


Уровни абстракции

  • DBA — Database (dbm-style) Abstraction Layer
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции DBA
  • dbx
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции dbx
  • ODBC — ODBC (Unified)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • ODBC Функции
  • PDO — Объекты данных PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Подключения и Управление подключениями
    • Транзакции и автоматическая фиксация изменений
    • Подготовленные запросы и хранимые процедуры
    • Ошибки и их обработка
    • Большие объекты (LOB)
    • PDO — Класс PDO
    • PDOStatement — Класс PDOStatement
    • PDOException — Класс PDOException
    • PDO Драйверы


Database (dbm-style) Abstraction Layer

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
  • Функции DBA
    • dba_close — Закрывает базу данных DBA
    • dba_delete — Удаляет запись базы данных определенную ключем
    • dba_exists — Проверяет, существует ли ключ
    • dba_fetch — Извлекает данные по0 указанному ключу
    • dba_firstkey — Извлекает первый ключ
    • dba_handlers — Список всех доступных обработчиков
    • dba_insert — Вставляет запись
    • dba_key_split — Разделяет ключ, заданный в виде строки и создает массив из полученых частей
    • dba_list — Список всех открытых файлов базы данных
    • dba_nextkey — Извлекает следующий ключ
    • dba_open — Открывает базу данных
    • dba_optimize — Оптимизирует database
    • dba_popen — Open database persistently
    • dba_replace — Replace or insert entry
    • 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. Эта опция доступна с PHP 4.3.2. Может быть использована с BDB 5 начиная с PHP 5.3.3.
cdb | Cdb - это "быстрый, надежный, легкий пакет для создания и чтения постоянных баз данных." от автора qmail. Может быть найден по ссылке » http://cr.yp.to/cdb.html. Так как база неизменяема, мы поддерживаем только операции чтения. С PHP 4.3.0 также поддерживается запись (не UPDATE!) через внутренную библиотеку cdb.
cdb_make | С PHP 4.3.0 мы поддерживаем создание (не изменение) файлов cdb при использовании встроенной библиотеки cdb.
flatfile | Доступно с PHP 4.3.0 только для поддержки совместимости с устаревшим расширением dbm. Использовать не рекомендуется. Тем не менее вы можете использовать этот обработчик для файлов, которые ранее были созданы в таком формате.
inifile | Доступно с PHP 4.3.3 для реализауии возможности изменения файлов php.ini из скриптов PHP. При работе с ini-файлами вы должны передавать массивы формата array(0=>group,1=>value_name) или строки формата "[group]value_name", где group - опционально. Так как функции dba_firstkey() и dba_nextkey() возвращают строковое представление ключей, в PHP 5 была введена новая функция dba_key_split(), позволяющая конвертировать строковые ключи в ключи массива без потери FALSE.
qdbm | Доступно с PHP 5.0.0. Библиотека qdbm доступна по ссылке » http://fallabs.com/qdbm/index.html.
tcadb | Доступно с PHP 5.4.0. Библиотека Tokyo Cabinet доступна по ссылке » http://fallabs.com/tokyocabinet/.

При вызове функций dba_open() или dba_popen(), в качестве одно из аргументов необходимо передать имя обработчика. Актуальный список доступных обработчиков можно посмотреть с помощью функций phpinfo() или dba_handlers().


Установка

Для включения базовой поддержки баз данных в стиле dbm, необходимо собрать PHP с поддержкой динамически загружаемого модуля, используя опцию --enable-dba=shared . Также вы можете добавить поддержку конкретных обработчиков, задав их скрипту конфигурации с помощью опций --with-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.

Замечание:

Опция db4 добавлена в PHP 4.3.2. В более ранних версиях PHP используйте --with-db3=DIR , задав в DIR путь к библиотеке db4. Невозможно использовать базу данных версии 4.1 и выше в версиях PHP до 4.3.0. Тажке, библиотеки версий с 4.1 по 4.1.24 вообще не могут использоваться в PHP.

Поддержка BDB 5 добавлена в PHP 5.3.3.

cdb

Для включения поддержки cdb, добавьте --with-cdb[=DIR] .

Замечание:

С PHP 4.3.0 вы можете не указывать DIR для использования встроенной библиотеки cdb, которая добавляет обработчик cdb_make, что позволяет создавать файлы базы cdb и предоставляет доступ к ним по сети, через потоки PHP.

flatfile

Для включения поддержки flatfile, добавьте --with-flatfile .

Замечание:

Добавлен в PHP 4.3.0 для обеспечения совместимости с устаревшим расширением dbm. Используйте этот обработчик только если вы не можете установить одну из библиотек, требуемую другим обработчиком и если вам не достаточно встроенного обработчика cdb.

inifile

Для включения поддержки inifile, добавьте --with-inifile .

Замечание:

Добавлен в PHP 5.0.0 и позволяет получить доступ на чтение и запись к .ini файлам в стиле Microsoft (например php.ini).

qdbm

Для включения поддержки qdbm, добавьте --with-qdbm[=DIR] .

Замечание:

qdbm конфликтует с dbm и gdbm.

Замечание:

Добавлен в PHP 5.0.0. Библиотеку qdbm можно найти по ссылке » http://fallabs.com/qdbm/index.html.

tcadb

Для включения поддержки Tokyo Cabinet, добавьте --with-tcadb[=DIR] .

Замечание:

Добавлен в PHP 5.4.0. Библиотеку можно найти по ссылке » http://fallabs.com/tokyocabinet/.

Замечание:

До PHP 4.3.0 вы могли добавить оба обработчика db2 и db3, но использовать можно было только один. Тоесть вы не могли иметь файлы обоих форматов. Начиная с PHP 5.0.0 производится проверка, для того, что бы избежать подобной ошибки конфигурирования.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки DBA
Имя | По умолчанию | Меняемо | Список изменений
dba.default_handler | DBA_DEFAULT | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

dba.default_handler string

Имя обработчика по умолчанию


Типы ресурсов

Функции dba_open() и dba_popen() возвращают обработчик для доступа к указанному файлу базы данных и используется для всех остальных функций расширения.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • DBA
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • DBA
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

Пример #1 DBA пример

<?php

$id = dba_open("/tmp/test.db", "n", "db2");

if (!$id) {
    echo "dba_open failed\n";
    exit;
}

dba_replace("key", "This is an example!", $id);

if (dba_exists("key", $id)) {
    echo dba_fetch("key", $id);
    dba_delete("key", $id);
}

dba_close($id);
?>

DBA является бинарно безопасным и не имеет каких-либо произвольных ограничений. Тем не менее, он наследует все ограничения, установленные базовой реализацией базы данных

Все файловые базы данных должны обеспечивать способ задания файлового режима только что созданной базы данных, если это вообще возможно. Файловый режим обычно передается как четвертый аргумент в dba_open() или dba_popen().

Вы можете получить все записи базы данных в процедурном стиле используя функции dba_firstkey() и dba_nextkey(). Вы не можете изменить базу данных во время её обхода.

Пример #2 Обход базы данных

<?php

// ...open database...

$key = dba_firstkey($id);

while ($key !== false) {
    if (true) {          // запоминаем ключ для выполнения некоторых действий далее
        $handle_later[] = $key;
    }
    $key = dba_nextkey($id);
}

foreach ($handle_later as $val) {
    dba_delete($val, $id);
}

?>


Функции DBA

Содержание

  • dba_close — Закрывает базу данных DBA
  • dba_delete — Удаляет запись базы данных определенную ключем
  • dba_exists — Проверяет, существует ли ключ
  • dba_fetch — Извлекает данные по0 указанному ключу
  • dba_firstkey — Извлекает первый ключ
  • dba_handlers — Список всех доступных обработчиков
  • dba_insert — Вставляет запись
  • dba_key_split — Разделяет ключ, заданный в виде строки и создает массив из полученых частей
  • dba_list — Список всех открытых файлов базы данных
  • dba_nextkey — Извлекает следующий ключ
  • dba_open — Открывает базу данных
  • dba_optimize — Оптимизирует database
  • dba_popen — Open database persistently
  • dba_replace — Replace or insert entry
  • dba_sync — Синхронизирует базу данных


Закрывает базу данных DBA

  • « Функции DBA
  • dba_delete »
  • PHP Manual
  • Функции DBA
  • Закрывает базу данных DBA

dba_close

(PHP 4, PHP 5, PHP 7)

dba_close — Закрывает базу данных DBA

Описание

void dba_close ( resource $handle )

dba_close() закрывает установленную базу данных и освобождает все связанные с ней ресурсы.

Список параметров

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • dba_open() - Открывает базу данных
  • dba_popen() - Open database persistently


Удаляет запись базы данных определенную ключем

  • « dba_close
  • dba_exists »
  • PHP Manual
  • Функции DBA
  • Удаляет запись базы данных определенную ключем

dba_delete

(PHP 4, PHP 5, PHP 7)

dba_delete — Удаляет запись базы данных определенную ключем

Описание

bool dba_delete ( string $key , resource $handle )

dba_delete() удаляет указанную запись в базе данных.

Список параметров

key

Ключ записи, которую надо удалить.

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_exists() - Проверяет, существует ли ключ
  • dba_fetch() - Извлекает данные по0 указанному ключу
  • dba_insert() - Вставляет запись
  • dba_replace() - Replace or insert entry


Проверяет, существует ли ключ

  • « dba_delete
  • dba_fetch »
  • PHP Manual
  • Функции DBA
  • Проверяет, существует ли ключ

dba_exists

(PHP 4, PHP 5, PHP 7)

dba_exists — Проверяет, существует ли ключ

Описание

bool dba_exists ( string $key , resource $handle )

dba_exists() проверяет, если в базе данных заданный ключ key.

Список параметров

key

Проверяемый ключ.

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE если ключ существует и FALSE в обратном случае.

Смотрите также

  • dba_delete() - Удаляет запись базы данных определенную ключем
  • dba_fetch() - Извлекает данные по0 указанному ключу
  • dba_insert() - Вставляет запись
  • dba_replace() - Replace or insert entry


Извлекает данные по0 указанному ключу

  • « dba_exists
  • dba_firstkey »
  • PHP Manual
  • Функции DBA
  • Извлекает данные по0 указанному ключу

dba_fetch

(PHP 4, PHP 5, PHP 7)

dba_fetch — Извлекает данные по0 указанному ключу

Описание

string dba_fetch ( string $key , resource $handle )
string dba_fetch ( string $key , int $skip , resource $handle )

dba_fetch() извлекает данные из базы данных, заданной handle, определенные ключем key .

Список параметров

key

Ключ, для которого надо извлеч данные.

Замечание:

Когда работает с ini-файлом, эта функция принимает массив в качестве ключа, где по инкексу 0 задана группа, а по индексу 1 - имя параметра. Дополнительно смотрите dba_key_split().

skip

Число пар ключ-значение, которые нужно проигнорировать при работе с базой данных cdb. Этот параметр игнорируется при работе со всеми остальными базами данных, в которых не поддерживаются множественные ключи с одинаковым именем.

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает строку, если пара ключ/данные найдена, иначе возвращает FALSE.

Список изменений

Версия | Описание
4.3.0 | Добавленв поддержка параметра skip, для базы данных cdb, поддерживающей множественные ключи с одинаковым именем.

Смотрите также

  • dba_exists() - Проверяет, существует ли ключ
  • dba_delete() - Удаляет запись базы данных определенную ключем
  • dba_insert() - Вставляет запись
  • dba_replace() - Replace or insert entry
  • dba_key_split() - Разделяет ключ, заданный в виде строки и создает массив из полученых частей


Извлекает первый ключ

  • « dba_fetch
  • dba_handlers »
  • PHP Manual
  • Функции DBA
  • Извлекает первый ключ

dba_firstkey

(PHP 4, PHP 5, PHP 7)

dba_firstkey — Извлекает первый ключ

Описание

string dba_firstkey ( resource $handle )

dba_firstkey() возвращает первый ключ из базы данных и сбрасывает внутренний указатель. Это позволяет производить прямой поиск по всей базе.

Список параметров

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает ключ в случае успеха, или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_nextkey() - Извлекает следующий ключ
  • dba_key_split() - Разделяет ключ, заданный в виде строки и создает массив из полученых частей
  • Второй пример в примерах DBA


Список всех доступных обработчиков

  • « dba_firstkey
  • dba_insert »
  • PHP Manual
  • Функции DBA
  • Список всех доступных обработчиков

dba_handlers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

dba_handlers — Список всех доступных обработчиков

Описание

array dba_handlers ([ bool $full_info = false ] )

dba_handlers() возвращает список всех доступных в этом расширении обработчиков.

Список параметров

full_info

Включает, либо выключает, вывод полной информации в результат.

Возвращаемые значения

Возвращает массив обработчиков баз данных. Если параметр full_info задан как TRUE, массив будет содержать ассоциативный массив, где ключами будут имена обработчиков, а значением информация о версии. В ином случае, массив будет индексированных и содержать имена обработчиков в качестве значений.

Замечание:

Если используется встроенная база данных, вы увидите и cdb и cdb_make.

Примеры

Пример #1 Пример использования dba_handlers()

<?php

echo "Доступные обработчики DBA:\n";
foreach (dba_handlers(true) as $handler_name => $handler_version) {
  // Очищаем строки с версиями
  $handler_version = str_replace('$', '', $handler_version);
  echo " - $handler_name: $handler_version\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Доступные обработчики DBA:
 - cdb: 0.75, Revision: 1.3.2.3
 - cdb_make: 0.75, Revision: 1.2.2.4
 - db2: Sleepycat Software: Berkeley DB 2.7.7: (08/20/99)
 - inifile: 1.0, Revision: 1.6.2.3
 - flatfile: 1.0, Revision: 1.5.2.4


Вставляет запись

  • « dba_handlers
  • dba_key_split »
  • PHP Manual
  • Функции DBA
  • Вставляет запись

dba_insert

(PHP 4, PHP 5, PHP 7)

dba_insert — Вставляет запись

Описание

bool dba_insert ( string $key , string $value , resource $handle )

dba_insert() вставляет в базу данных запись заданную параметрами key и value.

Список параметров

key

Ключ записи для вставки. Если такой ключ уже существует в базе данных, функция завершится с ошибкой. Для замены записи используйте функцию dba_replace().

value

Значение для вставки.

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_exists() - Проверяет, существует ли ключ
  • dba_delete() - Удаляет запись базы данных определенную ключем
  • dba_fetch() - Извлекает данные по0 указанному ключу
  • dba_replace() - Replace or insert entry


Разделяет ключ, заданный в виде строки и создает массив из полученых частей

  • « dba_insert
  • dba_list »
  • PHP Manual
  • Функции DBA
  • Разделяет ключ, заданный в виде строки и создает массив из полученых частей

dba_key_split

(PHP 5, PHP 7)

dba_key_split — Разделяет ключ, заданный в виде строки и создает массив из полученых частей

Описание

mixed dba_key_split ( mixed $key )

dba_key_split() разделяет ключ, заданный в виде строки и создает массив из полученых частей.

Список параметров

key

Ключ в виде строки.

Возвращаемые значения

Возвращает массив следующего вида array(0 => group, 1 => value_name). Эта функция возвращает FALSE если key равен NULL или FALSE.

Смотрите также

  • dba_firstkey() - Извлекает первый ключ
  • dba_nextkey() - Извлекает следующий ключ
  • dba_fetch() - Извлекает данные по0 указанному ключу


Список всех открытых файлов базы данных

  • « dba_key_split
  • dba_nextkey »
  • PHP Manual
  • Функции DBA
  • Список всех открытых файлов базы данных

dba_list

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

dba_list — Список всех открытых файлов базы данных

Описание

array dba_list ( void )

dba_list() возвращает список всех открытых файлов базы данных.

Возвращаемые значения

Ассоциативный массив типа resourceid => filename.


Извлекает следующий ключ

  • « dba_list
  • dba_open »
  • PHP Manual
  • Функции DBA
  • Извлекает следующий ключ

dba_nextkey

(PHP 4, PHP 5, PHP 7)

dba_nextkey — Извлекает следующий ключ

Описание

string dba_nextkey ( resource $handle )

dba_nextkey() возвращает следующий ключ из базы данных и перемещает внутренний указатель.

Список параметров

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает ключ в случае успеха, или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_firstkey() - Извлекает первый ключ
  • dba_key_split() - Разделяет ключ, заданный в виде строки и создает массив из полученых частей
  • Второй пример в примерах DBA


Открывает базу данных

  • « dba_nextkey
  • dba_optimize »
  • PHP Manual
  • Функции DBA
  • Открывает базу данных

dba_open

(PHP 4, PHP 5, PHP 7)

dba_open — Открывает базу данных

Описание

resource dba_open ( string $path , string $mode [, string $handler [, mixed $... ]] )

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().

Возвращаемые значения

Возвращает обработчик в случае успеха, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
4.3.0 | Стало возможным открывать файлы баз данных через сетевое соединение. Однако в случае, когда используется соединение через сокеты (такие как http или ftp), блокировка будет устанавливаться на соединение, а не на сам ресурс. Это важно знать, так как в таких случаях блокировка на ресурсе просто игнорируется и необходимо будет искать другие решения.

Смотрите также

  • dba_popen() - Open database persistently
  • dba_close() - Закрывает базу данных DBA


Оптимизирует database

  • « dba_open
  • dba_popen »
  • PHP Manual
  • Функции DBA
  • Оптимизирует database

dba_optimize

(PHP 4, PHP 5, PHP 7)

dba_optimize — Оптимизирует database

Описание

bool dba_optimize ( resource $handle )

dba_optimize() оптимизирует основную базу данных.

Список параметров

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_sync() - Синхронизирует базу данных


Open database persistently

  • « dba_optimize
  • dba_replace »
  • PHP Manual
  • Функции DBA
  • Open database persistently

dba_popen

(PHP 4, PHP 5, PHP 7)

dba_popen — Open database persistently

Описание

resource dba_popen ( string $path , string $mode [, string $handler [, mixed $... ]] )

dba_open() устанавливает постоянный экземпляр базы данных по пути path в режиме mode используя обработчик handler.

Список параметров

path

Путь до файлов базы данных.

mode

r для режима чтения, w для режима чтения/записи с уже существующей базой данных. c для режима чтения/записи и создания базы данных, если она еще не была создана, и n для создания, обрезания и доступа для чтения/записи. База данных создается с архитектурой BTree, другие архитектуры (вроде Hash или Queue) не поддерживаются.

handler

Имя обработчика, который будет использоваться для доступа по пути path. Ему передаются все необязательные параметры, заданные в dba_open().

Возвращаемые значения

Возвращает обработчик в случае успеха, или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_open() - Открывает базу данных
  • dba_close() - Закрывает базу данных DBA


Replace or insert entry

  • « dba_popen
  • dba_sync »
  • PHP Manual
  • Функции DBA
  • Replace or insert entry

dba_replace

(PHP 4, PHP 5, PHP 7)

dba_replace — Replace or insert entry

Описание

bool dba_replace ( string $key , string $value , resource $handle )

dba_replace() перезаписывает или вставляет запись, заданную ключем key и значением value в базу данных определенную обработчиком handle.

Список параметров

key

Ключ записи, которую надо заменить.

value

Новое значение.

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_exists() - Проверяет, существует ли ключ
  • dba_delete() - Удаляет запись базы данных определенную ключем
  • dba_fetch() - Извлекает данные по0 указанному ключу
  • dba_insert() - Вставляет запись


Синхронизирует базу данных

  • « dba_replace
  • dbx »
  • PHP Manual
  • Функции DBA
  • Синхронизирует базу данных

dba_sync

(PHP 4, PHP 5, PHP 7)

dba_sync — Синхронизирует базу данных

Описание

bool dba_sync ( resource $handle )

dba_sync() синхронизирует базу данных. Скорее всего эта функция, если поддерживается, вызовет запись на диск.

Список параметров

handle

Обработчик базы данных, возвращенный dba_open() или dba_popen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • dba_optimize() - Оптимизирует database


dbx

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции dbx
    • dbx_close — Закрыть открытое соединение/базу данных
    • dbx_compare — Сравнивает две строки в целях сортировки
    • dbx_connect — Открывает соединение/базу данных
    • dbx_error — Возвращает сообщение об ошибке последней запущенной функции расширения
    • dbx_escape_string — Экранирует строку таким образом, что ее можно безопасно использовать для запроса
    • dbx_fetch_row — Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED
    • dbx_query — Посылает запрос и извлекает возвращенные строки (если есть)
    • dbx_sort — Сортирует результат dbx_query с помощью пользовательской функции


Введение

Модуль dbx - это уровень обстрации базы данных (db 'x'', где 'x' - это поддерживаемая база данных). Функции dbx позволяют получить доступ ко всем поддерживаемым базам данных используя единые договоренности по синтаксису вызовов. Сами эти функции не взаимодействуют с базами данных, а предоставляют интерфейс к расширениям конкретных баз данных.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.


Требования

Для использования базы данных совместно с dbx, необходимо, чтобы это расширение было загружено и поддерживало эту базу данных. На данный момент поддерживаются следующие базы данных:

  • FrontBase (доступно с PHP 4.1.0).
  • Microsoft SQL Server
  • MySQL
  • ODBC
  • PostgreSQL
  • Sybase-CT (доступно с PHP 4.2.0).
  • Oracle (oci8) (доступно с PHP 4.3.0).
  • SQLite (доступно с PHP 5).

Документацию по добавлению поддержки для других баз данных можно найти по ссылке » http://www.guidance.nl/php/dbx/doc/.


Установка

Для включения данного расширения необходимо конфигурировать PHP с ключем --enable-dbx и с поддержкой тех баз данных, которые предполагается использовать. Например для mysql надо будет дополнительно указать --with-mysql=[DIR] . Для настройки работы всех остальных поддерживаемых dbx баз данных обратитесь к их документации.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки DBX
Имя | По умолчанию | Меняемо | Список изменений
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM | Доступно с PHP 4.3.0. Удалено в PHP 5.1.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

dbx.colnames_case string

Имена столбцов могут быть возвращены в их изначальном виде, либо быть приведены к верхнему или нижнему регистру. Эту настройку можно переопределить флагом в dbx_query().


Типы ресурсов

Данное расширение использует два типа ресурсов. Первый - ссылка (object) на соединение с базой. Второй - результирующий набор (object), содержащий результат запроса.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

DBX_MYSQL (integer)
DBX_ODBC (integer)
DBX_PGSQL (integer)
DBX_MSSQL (integer)
DBX_FBSQL (integer)
DBX_OCI8 (integer) (доступна с PHP 4.3.0)
DBX_SYBASECT (integer)
DBX_SQLITE (integer) (PHP 5)
DBX_PERSISTENT (integer)
DBX_RESULT_INFO (integer)
DBX_RESULT_INDEX (integer)
DBX_RESULT_ASSOC (integer)
DBX_RESULT_UNBUFFERED (integer) (PHP 5)
DBX_COLNAMES_UNCHANGED (integer) (доступна с PHP 4.3.0)
DBX_COLNAMES_UPPERCASE (integer) (доступна с PHP 4.3.0)
DBX_COLNAMES_LOWERCASE (integer) (доступна с PHP 4.3.0)
DBX_CMP_NATIVE (integer)
DBX_CMP_TEXT (integer)
DBX_CMP_NUMBER (integer)
DBX_CMP_ASC (integer)
DBX_CMP_DESC (integer)


Функции dbx

Содержание

  • dbx_close — Закрыть открытое соединение/базу данных
  • dbx_compare — Сравнивает две строки в целях сортировки
  • dbx_connect — Открывает соединение/базу данных
  • dbx_error — Возвращает сообщение об ошибке последней запущенной функции расширения
  • dbx_escape_string — Экранирует строку таким образом, что ее можно безопасно использовать для запроса
  • dbx_fetch_row — Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED
  • dbx_query — Посылает запрос и извлекает возвращенные строки (если есть)
  • dbx_sort — Сортирует результат dbx_query с помощью пользовательской функции


Закрыть открытое соединение/базу данных

  • « Функции dbx
  • dbx_compare »
  • PHP Manual
  • Функции dbx
  • Закрыть открытое соединение/базу данных

dbx_close

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_close — Закрыть открытое соединение/базу данных

Описание

int dbx_close ( object $link_identifier )

Список параметров

link_identifier

Ссылка на соединение.

Возвращаемые значения

Возвращает 1 в случае успеха и 0 в противном случае.

Примеры

Пример #1 Пример использования dbx_close()

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

echo "Connected successfully";
dbx_close($link);
?>

Примечания

Замечание:

Всегда внимательно изучайте документацию по расширению для используемой базы данных.

Смотрите также

  • dbx_connect() - Открывает соединение/базу данных


Сравнивает две строки в целях сортировки

  • « dbx_close
  • dbx_connect »
  • PHP Manual
  • Функции dbx
  • Сравнивает две строки в целях сортировки

dbx_compare

(PHP 4 >= 4.1.0, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_compare — Сравнивает две строки в целях сортировки

Описание

int dbx_compare ( array $row_a , array $row_b , string $column_key [, int $flags = DBX_CMP_ASC | DBX_CMP_NATIVE ] )

dbx_compare() - это вспомогательная функция для dbx_sort(), позволяющая реализовать пользовательскую сортировку.

Список параметров

row_a

Первая строка

row_b

Вторая строка

column_key

Сравниваемый столбец

flags

Флаг flags задает направление сортировки:

  • DBX_CMP_ASC - по возрастанию
  • DBX_CMP_DESC - по убыванию
и предпочитаемый тип сравнения:
  • DBX_CMP_NATIVE - без конвертации типа
  • DBX_CMP_TEXT - сравнивать как строки
  • DBX_CMP_NUMBER - сравнивать как числа
Можно комбинировать одну константу направления с одной константой типа с помощью побитового ИЛИ (|).

Возвращаемые значения

Возвращает 0 если row_a[$column_key] равно row_b[$column_key], и 1 или -1 если первая больше, либо меньше второй соответственно. Если флаг flag задан как DBX_CMP_DESC, то порядок будет инфертирован.

Примеры

Пример #1 Пример использования dbx_compare()

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "SELECT id, parentid, description FROM table ORDER BY id");
    // данные в $result отсортированы по столбцу id

dbx_sort($result, "user_re_order");
    // А теперь в обратном порядке по parentid, а потом уже по id

dbx_close($link);
?>

Смотрите также

  • dbx_sort() - Сортирует результат dbx_query с помощью пользовательской функции


Открывает соединение/базу данных

  • « dbx_compare
  • dbx_error »
  • PHP Manual
  • Функции dbx
  • Открывает соединение/базу данных

dbx_connect

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_connect — Открывает соединение/базу данных

Описание

object dbx_connect ( mixed $module , string $host , string $database , string $username , string $password [, int $persistent ] )

Открывает соединение с базой данных.

Список параметров

module

Параметр module может быть как строкой, так и константой. Предпочтение следует отдавать использованию константы. Возможные значения перечислены ниже. Помните, что они будут работать только если соответствующее расширение загружено.

  • DBX_MYSQL или "mysql"
  • DBX_ODBC или "odbc"
  • DBX_PGSQL или "pgsql"
  • DBX_MSSQL или "mssql"
  • DBX_FBSQL или "fbsql"
  • DBX_SYBASECT или "sybase_ct"
  • DBX_OCI8 или "oci8"
  • DBX_SQLITE или "sqlite"

host

Хост, на котором запущен сервер баз данных

database

имя базы данных

username

Ипя пользователя

password

Пароль

persistent

Если persistent задать как DBX_PERSISTENT, то будет установлено постоянное соединение.

Параметры host, database, username и password ожидаются, но не всегда используются в зависимости от функции соединения конкретного расширения.

Возвращаемые значения

Возвращает объект в случае успеха, либо FALSE в обратном случае. Если соединение было установлено, но база данных не выбрана, то соединение будет закрыто и вернется FALSE.

Возвращенный объект object имеет три свойства:

database
Имя выбранной базы данных.
handle

Обработчик соединения. Его можно напрямую использовать в функциях расширения базы данных, в обход dbx.

<?php
$link = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password");
mysql_close($link->handle); // но лучше использовать dbx_close($link)
?>

module
Используется для внутренних нужд dbx. Фактически является номером модуля, которые перечислены выше.

Список изменений

Версия | Описание
5.0.0 | Добавлена константа DBX_SQLITE.
4.3.0 | Добавлена константа DBX_OCI8.
4.2.0 | Добавлена константа DBX_SYBASECT.
4.1.0 | Добавлена константа DBX_FBSQL.

Примеры

Пример #1 Пример использования dbx_connect()

<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password", DBX_PERSISTENT)
    or die("Could not connect");

echo "Connected successfully";
dbx_close($link);
?>

Примечания

Замечание:

Всегда внимательно изучайте документацию по расширению для используемой базы данных.

Смотрите также

  • dbx_close() - Закрыть открытое соединение/базу данных


Возвращает сообщение об ошибке последней запущенной функции расширения

  • « dbx_connect
  • dbx_escape_string »
  • PHP Manual
  • Функции dbx
  • Возвращает сообщение об ошибке последней запущенной функции расширения

dbx_error

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_error — Возвращает сообщение об ошибке последней запущенной функции расширения

Описание

string dbx_error ( object $link_identifier )

dbx_error() возвращает последнее сообщение об ошибке.

Список параметров

link_identifier

Ссылка на соединение, открытое с помощью dbx_connect()

Возвращаемые значения

Возвращает строку, содержащую сообщение об ошибке из последнего вызова функции абстрактного модуля (например mysql). Если для данного модуля создано несколько соединений, то будет возвращено самое последнее сообщение. Если существуют соединения с другими модулями, то будет возвращено сообщение относящееся только к модулю, заданному параметром link_identifier.

Примеры

Пример #1 Пример использования dbx_error()

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "select id from non_existing_table");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

Примечания

Замечание:

Всегда внимательно изучайте документацию по расширению для используемой базы данных.

Сообщение для Microsoft SQL Server фактически будет сообщением, полученным функцией mssql_get_last_message().

Сообщения об ошибках Oracle (oci8) пока не реализованы.


Экранирует строку таким образом, что ее можно безопасно использовать для запроса

  • « dbx_error
  • dbx_fetch_row »
  • PHP Manual
  • Функции dbx
  • Экранирует строку таким образом, что ее можно безопасно использовать для запроса

dbx_escape_string

(PHP 4 >= 4.3.0, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_escape_string — Экранирует строку таким образом, что ее можно безопасно использовать для запроса

Описание

string dbx_escape_string ( object $link_identifier , string $text )

Экранирует строку таким образом, что ее можно безопасно использовать для запроса.

Список параметров

link_identifier

Ссылка на соединение, открытое с помощью dbx_connect()

text

Строка для экранирования.

Возвращаемые значения

Возвращает экранированный, если необходимо, текст (кавычки, обратные слеши и т.д.) В случае ошибки возвращает NULL.

Примеры

Пример #1 Пример использования dbx_escape_string()

<?php
$link   = dbx_connect(DBX_MYSQL, "localhost", "db", "username", "password")
    or die("Could not connect");

$text = dbx_escape_string($link, "It\'s quoted and backslashed (\\).");
$result = dbx_query($link, "insert into tbl (txt) values ('" . $text . "')");
if ($result == 0) {
    echo dbx_error($link);
}
dbx_close($link);
?>

Смотрите также

  • dbx_query() - Посылает запрос и извлекает возвращенные строки (если есть)


Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED

  • « dbx_escape_string
  • dbx_query »
  • PHP Manual
  • Функции dbx
  • Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED

dbx_fetch_row

(PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_fetch_row — Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED

Описание

mixed dbx_fetch_row ( object $result_identifier )

Функция dbx_fetch_row() извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED.

Если для запроса не был задан флаг DBX_RESULT_UNBUFFERED, dbx_fetch_row() завершится с ошибкой, так как все строки уже были извлечены и помещены в свойства результата data.

Побочный эфект таков, что свойство объекта результата запроса rows будет увеличиваться при каждом успешном запуске dbx_fetch_row().

Список параметров

result_identifier

Ссылка на соединение, открытое с помощью dbx_connect()

Возвращаемые значения

Возвращает объект, содержащий ту же информацию, что и любая строка в свойстве объекта результата data после выполнения dbx_query(), включая доступ к столбцам по индексу или имени, если был выставлен соответствующий флаг для dbx_query().

В случае неудачи возвращает 0 (например если больше нет строк).

Примеры

Пример #1 Как обрабатывать возвращенные значения

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Смотрите также

  • dbx_query() - Посылает запрос и извлекает возвращенные строки (если есть)


Посылает запрос и извлекает возвращенные строки (если есть)

  • « dbx_fetch_row
  • dbx_sort »
  • PHP Manual
  • Функции dbx
  • Посылает запрос и извлекает возвращенные строки (если есть)

dbx_query

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_query — Посылает запрос и извлекает возвращенные строки (если есть)

Описание

mixed dbx_query ( object $link_identifier , string $sql_statement [, int $flags ] )

Посылает запрос и извлекает возвращенные строки.

Список параметров

link_identifier

Ссылка на соединение, открытое с помощью dbx_connect()

sql_statement

SQL запрос.

Данные в запросе должны быть корректно экранированы.

flags

Параметр flags используется для контроля количества возвращаемой информации. Можно использовать любую комбинацию из нижеперечисленных констант, объедененных побитовым ИЛИ (|). Флаги DBX_COLNAMES_* переопределяют настройку dbx.colnames_case в php.ini.

DBX_RESULT_INDEX
Всегда установлена. Возвращенный объект содержит двуменрый индексированный массив data. К примеру, в выражении data[2][3], 2 означает номер строки, а 3 номер столбца. Отсчет начинается с индекса [0][0]. Если задана константа DBX_RESULT_ASSOC, возвращенный объект будет также содержать информацию, относящуюся к DBX_RESULT_INFO, даже если она не будет задана.
DBX_RESULT_INFO
Предоставляет информацию о столбцах. Их имена и типы.
DBX_RESULT_ASSOC
Позволяет получать доступ к столбцам data по имени. Элементы ассоциативного массива являются ссылками на соответствующие элементы индексированного. Так что изменяя data[0][0] вы измените и data[0]['field_name_for_first_column'].
DBX_RESULT_UNBUFFERED
Этот флаг указывает не создавать свойство data. Соответственно, свойство rows изначально будет равно 0. Используйте этот флаг для больших выборок. Для доступа к строкам используйте функцию dbx_fetch_row(). Функция dbx_fetch_row() возвращает строки учитывая все остальные, выставленные для запроса, флаги. Также, каждый успешный вызов этой функции, увеличивает rows на единицу.
DBX_COLNAMES_UNCHANGED
Имена столбцов возвращают неизменными.
DBX_COLNAMES_UPPERCASE
Имена столбцов преобразуются к верхнему регистру.
DBX_COLNAMES_LOWERCASE
Имена столбцов преобразуются к нижнему регистру.
Обратите внимание, что DBX_RESULT_INDEX используется всегда, независимо от выставленного параметра flags. Это значит, что только следующий комбинации имеют смысл:
  • DBX_RESULT_INDEX
  • DBX_RESULT_INDEX | DBX_RESULT_INFO
  • DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - по умолчанию, если flags не задан.

Возвращаемые значения

dbx_query() возвращает либо объект, либо 1 в случае успеха и 0 в обратной ситуации. Объект возвращается только если sql_statement является запросом, возвращающим результирующий набор (т.е. запрос типа SELECT, если он не возвращает пустой набор).

Возвращенный объект содержит четыре, либо пять свойств, в зависимости от параметра flags:

handle

Это рабочий обработчик соединения с базой данных, который можно использовать с родными функциями расширения базы данных, в обход dbx.

<?php
$result = dbx_query($link, "SELECT id FROM table");
mysql_field_len($result->handle, 0);
?>

cols и rows

Количество столбцов и строк в результирующем наборе соответственно.

<?php
$result = dbx_query($link, 'SELECT id FROM table');
echo $result->rows; // количество строк
echo $result->cols; // количество столбцов
?>

info (опциональный)
Заполняется значениями только если константы DBX_RESULT_INFO или DBX_RESULT_ASSOC переданы в параметр flags. Представляет из себя двумерный массив, имеющий две строки (name и type), содержащие информацию о столбцах.

Пример #1 Вывод всех имен и типов столбцов

<?php
$result = dbx_query($link, 'SELECT id FROM table',
                     DBX_RESULT_INDEX | DBX_RESULT_INFO);

for ($i = 0; $i < $result->cols; $i++ ) {
    echo $result->info['name'][$i] . "\n";
    echo $result->info['type'][$i] . "\n";
}
?>
data
Это свойство содержит актуальный результирующий набор, возможно ассоциированный с именами столбцов в зависимости от значения flags. Если задана DBX_RESULT_ASSOC, можно обращаться к столбцам по имени - $result->data[2]["field_name"].

Пример #2 Вывод содержимого свойства data в таблицу HTML

<?php
$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

echo "<table>\n";
foreach ($result->data as $row) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";
?>

Пример #3 Как обрабатывать UNBUFFERED запросы

<?php

$result = dbx_query ($link, 'SELECT id, parentid, description FROM table', DBX_RESULT_UNBUFFERED);

echo "<table>\n";
while ($row = dbx_fetch_row($result)) {
    echo "<tr>\n";
    foreach ($row as $field) {
        echo "<td>$field</td>";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Список изменений

Версия | Описание
5.0.0 | Добавлена константа DBX_RESULT_UNBUFFERED.
4.3.0 | Добавлены константы DBX_COLNAMES_UNCHANGED, DBX_COLNAMES_UPPERCASE и DBX_COLNAMES_LOWERCASE.

Примеры

Пример #4 Как обрабатывать возвращенное значение

<?php
$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, 'SELECT id, parentid, description FROM table');

if (is_object($result) ) {
    // ... do some stuff here, see detailed examples below ...
    // first, print out field names and types
    // then, draw a table filled with the returned field values
} else {
    exit("Query failed");
}

dbx_close($link);
?>

Примечания

Замечание:

Всегда внимательно изучайте документацию по расширению для используемой базы данных.

Имена столбцов Oracle возвращаются в нижнем регистре.

Смотрите также

  • dbx_escape_string() - Экранирует строку таким образом, что ее можно безопасно использовать для запроса
  • dbx_fetch_row() - Извлекает строки из результата запроса, для которого был задан флаг DBX_RESULT_UNBUFFERED
  • dbx_connect() - Открывает соединение/базу данных


Сортирует результат dbx_query с помощью пользовательской функции

  • « dbx_query
  • ODBC »
  • PHP Manual
  • Функции dbx
  • Сортирует результат dbx_query с помощью пользовательской функции

dbx_sort

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)

dbx_sort — Сортирует результат dbx_query с помощью пользовательской функции

Описание

bool dbx_sort ( object $result , string $user_compare_function )

Сортирует результат dbx_query() с помощью пользовательской функции.

Список параметров

result

Результирующий набор, возвращенный dbx_query().

user_compare_function

Определенная пользователем функция сравнения. Должна принимать два параметра и возвращать -1,0,1 в зависимости от того, меньше, равен или меньше первый параметр второго.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования dbx_sort()

<?php
function user_re_order($a, $b)
{
    $rv = dbx_compare($a, $b, "parentid", DBX_CMP_DESC);
    if (!$rv) {
        $rv = dbx_compare($a, $b, "id", DBX_CMP_NUMBER);
    }
    return $rv;
}

$link   = dbx_connect(DBX_ODBC, "", "db", "username", "password")
    or die("Could not connect");

$result = dbx_query($link, "SELECT id, parentid, description FROM tbl ORDER BY id");
    // data в $result отсортированы по id

dbx_sort($result, "user_re_order");
    // а теперь по parentid, по убыванию, а потом уже по id

dbx_close($link);
?>

Примечания

Замечание:

В любом случае лучше использовать SQL оператор ORDER BY вместо dbx_sort().

Смотрите также

  • dbx_compare() - Сравнивает две строки в целях сортировки


ODBC (Unified)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • ODBC Функции
    • odbc_autocommit — Toggle autocommit behaviour
    • odbc_binmode — Handling of binary column data
    • odbc_close_all — Close all ODBC connections
    • odbc_close — Close an ODBC connection
    • odbc_columnprivileges — Lists columns and associated privileges for the given table
    • odbc_columns — Lists the column names in specified tables
    • odbc_commit — Commit an ODBC transaction
    • odbc_connect — Соединяет с источником данных
    • odbc_cursor — Get cursorname
    • odbc_data_source — Returns information about a current connection
    • odbc_do — Псевдоним odbc_exec
    • odbc_error — Get the last error code
    • odbc_errormsg — Get the last error message
    • odbc_exec — Prepare and execute an SQL statement
    • odbc_execute — Execute a prepared statement
    • odbc_fetch_array — Fetch a result row as an associative array
    • odbc_fetch_into — Fetch one result row into array
    • odbc_fetch_object — Fetch a result row as an object
    • odbc_fetch_row — Fetch a row
    • odbc_field_len — Get the length (precision) of a field
    • odbc_field_name — Get the columnname
    • odbc_field_num — Return column number
    • odbc_field_precision — Псевдоним odbc_field_len
    • odbc_field_scale — Get the scale of a field
    • odbc_field_type — Datatype of a field
    • odbc_foreignkeys — Retrieves a list of foreign keys
    • odbc_free_result — Free resources associated with a result
    • odbc_gettypeinfo — Retrieves information about data types supported by the data source
    • odbc_longreadlen — Handling of LONG columns
    • odbc_next_result — Checks if multiple results are available
    • odbc_num_fields — Number of columns in a result
    • odbc_num_rows — Number of rows in a result
    • odbc_pconnect — Open a persistent database connection
    • odbc_prepare — Prepares a statement for execution
    • odbc_primarykeys — Gets the primary keys for a table
    • odbc_procedurecolumns — Retrieve information about parameters to procedures
    • odbc_procedures — Get the list of procedures stored in a specific data source
    • odbc_result_all — Print result as HTML table
    • odbc_result — Get result data
    • odbc_rollback — Rollback a transaction
    • odbc_setoption — Adjust ODBC settings
    • odbc_specialcolumns — Retrieves special columns
    • odbc_statistics — Retrieve statistics about a table
    • odbc_tableprivileges — Lists tables and the privileges associated with each table
    • odbc_tables — Get the list of table names stored in a specific data source


Введение

In addition to normal ODBC support, the Unified ODBC functions in PHP allow you to access several databases that have borrowed the semantics of the ODBC API to implement their own API. Instead of maintaining multiple database drivers that were all nearly identical, these drivers have been unified into a single set of ODBC functions.

The following databases are supported by the Unified ODBC functions: » Adabas D, » IBM DB2, » iODBC, » Solid, and » Sybase SQL Anywhere.

Замечание:

With the exception of iODBC, there is no ODBC involved when connecting to the above databases. The functions that you use to speak natively to them just happen to share the same names and syntax as the ODBC functions. However, building PHP with iODBC support enables you to use any ODBC-compliant drivers with your PHP applications. More information on iODBC, is available at » www.iodbc.org with the alternative unixODBC available at » www.unixodbc.org.


Требования

To access any of the supported databases you need to have the required libraries installed.


Установка

--with-adabas[=DIR]

Include Adabas D support. DIR is the Adabas base install directory, defaults to /usr/local.

--with-sapdb[=DIR]

Include SAP DB support. DIR is SAP DB base install directory, defaults to /usr/local.

--with-solid[=DIR]

Include Solid support. DIR is the Solid base install directory, defaults to /usr/local/solid.

--with-ibm-db2[=DIR]

Include IBM DB2 support. DIR is the DB2 base install directory, defaults to /home/db2inst1/sqllib.

--with-empress[=DIR]

Include Empress support. DIR is the Empress base install directory, defaults to $EMPRESSPATH. This option only supports Empress Version 8.60 and above.

--with-empress-bcs[=DIR]

Include "Empress Local Access" support. DIR is the Empress base install directory, defaults to $EMPRESSPATH. This option only supports Empress Version 8.60 and above.

--with-birdstep[=DIR]

Include Birdstep support. DIR is the Birdstep base install directory, defaults to /usr/local/birdstep.

--with-custom-odbc[=DIR]

Include a user defined ODBC support. The DIR is ODBC install base directory, which defaults to /usr/local. Make sure to define CUSTOM_ODBC_LIBS and have some odbc.h in your include dirs. E.g., you should define following for Sybase SQL Anywhere 5.5.00 on QNX, prior to run configure script:

   CPPFLAGS="-DODBC_QNX -DSQLANY_BUG"
   LDFLAGS=-lunix
   CUSTOM_ODBC_LIBS="-ldblib -lodbc".

--with-iodbc[=DIR]

Include iODBC support. DIR is the iODBC base install directory, defaults to /usr/local.

--with-esoob[=DIR]

Include Easysoft OOB support. DIR is the OOB base install directory, defaults to /usr/local/easysoft/oob/client.

--with-unixODBC[=DIR]

Include unixODBC support. DIR is the unixODBC base install directory, defaults to /usr/local.

--with-openlink[=DIR]

Include OpenLink ODBC support. DIR is the OpenLink base install directory, defaults to /usr/local. This is the same as iODBC.

--with-dbmaker[=DIR]

Include DBMaker support. DIR is the DBMaker base install directory, defaults to where the latest version of DBMaker is installed (such as /home/dbmaker/3.6).

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Unified ODBC Configuration Options
Имя | По умолчанию | Меняемо | Список изменений
odbc.default_db * | NULL | PHP_INI_ALL |
odbc.default_user * | NULL | PHP_INI_ALL |
odbc.default_pw * | NULL | PHP_INI_ALL |
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.defaultbinmode | "1" | PHP_INI_ALL |
odbc.default_cursortype | "3" | PHP_INI_ALL | Available as of PHP 5.3.0

Замечание: Entries marked with * are not implemented yet.

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

odbc.default_db string

ODBC data source to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.default_user string

User name to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.default_pw string

Password to use if none is specified in odbc_connect() or odbc_pconnect().

odbc.allow_persistent boolean

Whether to allow persistent ODBC connections.

odbc.check_persistent boolean

Check that a connection is still valid before reuse.

odbc.max_persistent integer

The maximum number of persistent ODBC connections per process.

odbc.max_links integer

The maximum number of ODBC connections per process, including persistent connections.

odbc.defaultlrl integer

Handling of LONG fields. Specifies the number of bytes returned to variables.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ.
odbc.defaultbinmode integer

Handling of binary data.

odbc.default_cursortype integer

Controls the ODBC cursor model. Possible values are SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_KEYSET_DRIVEN, SQL_CURSOR_DYNAMIC and SQL_CURSOR_STATIC (default).


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

This extension defines two resource types: an ODBC connection identifier and an ODBC result identifier.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

ODBC_TYPE (integer)
ODBC_BINMODE_PASSTHRU (integer)
ODBC_BINMODE_RETURN (integer)
ODBC_BINMODE_CONVERT (integer)
SQL_ODBC_CURSORS (integer)
SQL_CUR_USE_DRIVER (integer)
SQL_CUR_USE_IF_NEEDED (integer)
SQL_CUR_USE_ODBC (integer)
SQL_CONCURRENCY (integer)
SQL_CONCUR_READ_ONLY (integer)
SQL_CONCUR_LOCK (integer)
SQL_CONCUR_ROWVER (integer)
SQL_CONCUR_VALUES (integer)
SQL_CURSOR_TYPE (integer)
SQL_CURSOR_FORWARD_ONLY (integer)
SQL_CURSOR_KEYSET_DRIVEN (integer)
SQL_CURSOR_DYNAMIC (integer)
SQL_CURSOR_STATIC (integer)
SQL_KEYSET_SIZE (integer)
SQL_CHAR (integer)
SQL_VARCHAR (integer)
SQL_LONGVARCHAR (integer)
SQL_DECIMAL (integer)
SQL_NUMERIC (integer)
SQL_BIT (integer)
SQL_TINYINT (integer)
SQL_SMALLINT (integer)
SQL_INTEGER (integer)
SQL_BIGINT (integer)
SQL_REAL (integer)
SQL_FLOAT (integer)
SQL_DOUBLE (integer)
SQL_BINARY (integer)
SQL_VARBINARY (integer)
SQL_LONGVARBINARY (integer)
SQL_DATE (integer)
SQL_TIME (integer)
SQL_TIMESTAMP (integer)
SQL_TYPE_DATE (integer)
SQL_TYPE_TIME (integer)
SQL_TYPE_TIMESTAMP (integer)
SQL_BEST_ROWID (integer)
SQL_ROWVER (integer)
SQL_SCOPE_CURROW (integer)
SQL_SCOPE_TRANSACTION (integer)
SQL_SCOPE_SESSION (integer)
SQL_NO_NULLS (integer)
SQL_NULLABLE (integer)
SQL_INDEX_UNIQUE (integer)
SQL_INDEX_ALL (integer)
SQL_ENSURE (integer)
SQL_QUICK (integer)


ODBC Функции

Содержание

  • odbc_autocommit — Toggle autocommit behaviour
  • odbc_binmode — Handling of binary column data
  • odbc_close_all — Close all ODBC connections
  • odbc_close — Close an ODBC connection
  • odbc_columnprivileges — Lists columns and associated privileges for the given table
  • odbc_columns — Lists the column names in specified tables
  • odbc_commit — Commit an ODBC transaction
  • odbc_connect — Соединяет с источником данных
  • odbc_cursor — Get cursorname
  • odbc_data_source — Returns information about a current connection
  • odbc_do — Псевдоним odbc_exec
  • odbc_error — Get the last error code
  • odbc_errormsg — Get the last error message
  • odbc_exec — Prepare and execute an SQL statement
  • odbc_execute — Execute a prepared statement
  • odbc_fetch_array — Fetch a result row as an associative array
  • odbc_fetch_into — Fetch one result row into array
  • odbc_fetch_object — Fetch a result row as an object
  • odbc_fetch_row — Fetch a row
  • odbc_field_len — Get the length (precision) of a field
  • odbc_field_name — Get the columnname
  • odbc_field_num — Return column number
  • odbc_field_precision — Псевдоним odbc_field_len
  • odbc_field_scale — Get the scale of a field
  • odbc_field_type — Datatype of a field
  • odbc_foreignkeys — Retrieves a list of foreign keys
  • odbc_free_result — Free resources associated with a result
  • odbc_gettypeinfo — Retrieves information about data types supported by the data source
  • odbc_longreadlen — Handling of LONG columns
  • odbc_next_result — Checks if multiple results are available
  • odbc_num_fields — Number of columns in a result
  • odbc_num_rows — Number of rows in a result
  • odbc_pconnect — Open a persistent database connection
  • odbc_prepare — Prepares a statement for execution
  • odbc_primarykeys — Gets the primary keys for a table
  • odbc_procedurecolumns — Retrieve information about parameters to procedures
  • odbc_procedures — Get the list of procedures stored in a specific data source
  • odbc_result_all — Print result as HTML table
  • odbc_result — Get result data
  • odbc_rollback — Rollback a transaction
  • odbc_setoption — Adjust ODBC settings
  • odbc_specialcolumns — Retrieves special columns
  • odbc_statistics — Retrieve statistics about a table
  • odbc_tableprivileges — Lists tables and the privileges associated with each table
  • odbc_tables — Get the list of table names stored in a specific data source


Toggle autocommit behaviour

  • « ODBC Функции
  • odbc_binmode »
  • PHP Manual
  • ODBC Функции
  • Toggle autocommit behaviour

odbc_autocommit

(PHP 4, PHP 5, PHP 7)

odbc_autocommit — Toggle autocommit behaviour

Описание

mixed odbc_autocommit ( resource $connection_id [, bool $OnOff = false ] )

Toggles autocommit behaviour.

By default, auto-commit is on for a connection. Disabling auto-commit is equivalent with starting a transaction.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

OnOff

If OnOff is TRUE, auto-commit is enabled, if it is FALSE auto-commit is disabled.

Возвращаемые значения

Without the OnOff parameter, this function returns auto-commit status for connection_id. Non-zero is returned if auto-commit is on, 0 if it is off, or FALSE if an error occurs.

If OnOff is set, this function returns TRUE on success and FALSE on failure.

Смотрите также

  • odbc_commit() - Commit an ODBC transaction
  • odbc_rollback() - Rollback a transaction


Handling of binary column data

  • « odbc_autocommit
  • odbc_close_all »
  • PHP Manual
  • ODBC Функции
  • Handling of binary column data

odbc_binmode

(PHP 4, PHP 5, PHP 7)

odbc_binmode — Handling of binary column data

Описание

bool odbc_binmode ( resource $result_id , int $mode )

Enables handling of binary column data. ODBC SQL types affected are BINARY, VARBINARY, and LONGVARBINARY.

When binary SQL data is converted to character C data, each byte (8 bits) of source data is represented as two ASCII characters. These characters are the ASCII character representation of the number in its hexadecimal form. For example, a binary 00000001 is converted to "01" and a binary 11111111 is converted to "FF".

LONGVARBINARY handling
binmode | longreadlen | result
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_RETURN | 0 | passthru
ODBC_BINMODE_CONVERT | 0 | passthru
ODBC_BINMODE_PASSTHRU | 0 | passthru
ODBC_BINMODE_PASSTHRU | >0 | passthru
ODBC_BINMODE_RETURN | >0 | return as is
ODBC_BINMODE_CONVERT | >0 | return as char

If odbc_fetch_into() is used, passthru means that an empty string is returned for these columns.

Список параметров

result_id

The result identifier.

If result_id is 0, the settings apply as default for new results.

Замечание: Default for longreadlen is 4096 and mode defaults to ODBC_BINMODE_RETURN. Handling of binary long columns is also affected by odbc_longreadlen().

mode

Possible values for mode are:

  • ODBC_BINMODE_PASSTHRU: Passthru BINARY data
  • ODBC_BINMODE_RETURN: Return as is
  • ODBC_BINMODE_CONVERT: Convert to char and return

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Close all ODBC connections

  • « odbc_binmode
  • odbc_close »
  • PHP Manual
  • ODBC Функции
  • Close all ODBC connections

odbc_close_all

(PHP 4, PHP 5, PHP 7)

odbc_close_all — Close all ODBC connections

Описание

void odbc_close_all ( void )

odbc_close_all() will close down all connections to database server(s).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

This function will fail if there are open transactions on a connection. This connection will remain open in this case.


Close an ODBC connection

  • « odbc_close_all
  • odbc_columnprivileges »
  • PHP Manual
  • ODBC Функции
  • Close an ODBC connection

odbc_close

(PHP 4, PHP 5, PHP 7)

odbc_close — Close an ODBC connection

Описание

void odbc_close ( resource $connection_id )

Closes down the connection to the database server.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

This function will fail if there are open transactions on this connection. The connection will remain open in this case.


Lists columns and associated privileges for the given table

  • « odbc_close
  • odbc_columns »
  • PHP Manual
  • ODBC Функции
  • Lists columns and associated privileges for the given table

odbc_columnprivileges

(PHP 4, PHP 5, PHP 7)

odbc_columnprivileges — Lists columns and associated privileges for the given table

Описание

resource odbc_columnprivileges ( resource $connection_id , string $qualifier , string $owner , string $table_name , string $column_name )

Lists columns and associated privileges for the given table.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner.

table_name

The table name.

column_name

The column_name argument accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

The owner, table_name, and column_name accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Возвращаемые значения

Returns an ODBC result identifier или FALSE в случае возникновения ошибки. This result identifier can be used to fetch a list of columns and associated privileges.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.


Lists the column names in specified tables

  • « odbc_columnprivileges
  • odbc_commit »
  • PHP Manual
  • ODBC Функции
  • Lists the column names in specified tables

odbc_columns

(PHP 4, PHP 5, PHP 7)

odbc_columns — Lists the column names in specified tables

Описание

resource odbc_columns ( resource $connection_id [, string $qualifier [, string $schema [, string $table_name [, string $column_name ]]]] )

Lists all columns in the requested range.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

schema

The owner.

table_name

The table name.

column_name

The column name.

The schema, table_name, and column_name accept search patterns ('%' to match zero or more characters and '_' to match a single character).

Возвращаемые значения

Returns an ODBC result identifier или FALSE в случае возникновения ошибки.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_SCHEM
  • TABLE_NAME
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • RADIX
  • NULLABLE
  • REMARKS

The result set is ordered by TABLE_QUALIFIER, TABLE_SCHEM and TABLE_NAME.

Смотрите также

  • odbc_columnprivileges() - Lists columns and associated privileges for the given table to retrieve associated privileges


Commit an ODBC transaction

  • « odbc_columns
  • odbc_connect »
  • PHP Manual
  • ODBC Функции
  • Commit an ODBC transaction

odbc_commit

(PHP 4, PHP 5, PHP 7)

odbc_commit — Commit an ODBC transaction

Описание

bool odbc_commit ( resource $connection_id )

Commits all pending transactions on the connection.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Соединяет с источником данных

  • « odbc_commit
  • odbc_cursor »
  • PHP Manual
  • ODBC Функции
  • Соединяет с источником данных

odbc_connect

(PHP 4, PHP 5, PHP 7)

odbc_connect — Соединяет с источником данных

Описание

resource odbc_connect ( string $dsn , string $user , string $password [, int $cursor_type ] )

Идентификатор соединения, возвращаемый этой функцией, необходим для других 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 (DNS) для соединения. В качестве альтернативы можно производить соединение и без DNS.

user

Имя.

password

Пароль.

cursor_type

Устанавливает тип используемого курсора для соединения. Обычно этот параметр не нужен, но может оказаться полезным для обхода проблем с некоторыми драйверами ODBC.

Следующие константы определены для типа курсора:

  • SQL_CUR_USE_IF_NEEDED
  • SQL_CUR_USE_ODBC
  • SQL_CUR_USE_DRIVER

Возвращаемые значения

Возвращает соединение ODBC или FALSE в случае ошибки.

Примеры

Пример #1 Соединения без DSN

<?php
// Microsoft SQL Server используя SQL Native Client 10.0 ODBC Driver - позволяет соединяться
// с SQL 7, 2000, 2005 и 2008
$connection = odbc_connect("Driver={SQL Server Native Client 10.0};Server=$server;Database=$database;", $user, $password);

// Microsoft Access
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);

// Microsoft Excel
$excelFile = realpath('C:/ExcelData.xls');
$excelDir = dirname($excelFile);
$connection = odbc_connect("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=$excelFile;DefaultDir=$excelDir" , '', '');
?>

Смотрите также

  • Для постоянных соединений: odbc_pconnect() - Open a persistent database connection


Get cursorname

  • « odbc_connect
  • odbc_data_source »
  • PHP Manual
  • ODBC Функции
  • Get cursorname

odbc_cursor

(PHP 4, PHP 5, PHP 7)

odbc_cursor — Get cursorname

Описание

string odbc_cursor ( resource $result_id )

Gets the cursorname for the given result_id.

Список параметров

result_id

The result identifier.

Возвращаемые значения

Returns the cursor name, as a string.


Returns information about a current connection

  • « odbc_cursor
  • odbc_do »
  • PHP Manual
  • ODBC Функции
  • Returns information about a current connection

odbc_data_source

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

odbc_data_source — Returns information about a current connection

Описание

array odbc_data_source ( resource $connection_id , int $fetch_type )

This function will return the list of available DSN (after calling it several times).

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

fetch_type

The fetch_type can be one of two constant types: SQL_FETCH_FIRST, SQL_FETCH_NEXT. Use SQL_FETCH_FIRST the first time this function is called, thereafter use the SQL_FETCH_NEXT.

Возвращаемые значения

Returns FALSE on error, and an array upon success.


Псевдоним odbc_exec

  • « odbc_data_source
  • odbc_error »
  • PHP Manual
  • ODBC Функции
  • Псевдоним odbc_exec

odbc_do

(PHP 4, PHP 5, PHP 7)

odbc_do — Псевдоним odbc_exec()

Описание

Эта функция является псевдонимом: odbc_exec().


Get the last error code

  • « odbc_do
  • odbc_errormsg »
  • PHP Manual
  • ODBC Функции
  • Get the last error code

odbc_error

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

odbc_error — Get the last error code

Описание

string odbc_error ([ resource $connection_id ] )

Returns a six-digit ODBC state, or an empty string if there has been no errors.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

This function returns meaningful value only if last odbc query failed (i.e. odbc_exec() returned FALSE).

Смотрите также

  • odbc_errormsg() - Get the last error message
  • odbc_exec() - Prepare and execute an SQL statement


Get the last error message

  • « odbc_error
  • odbc_exec »
  • PHP Manual
  • ODBC Функции
  • Get the last error message

odbc_errormsg

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

odbc_errormsg — Get the last error message

Описание

string odbc_errormsg ([ resource $connection_id ] )

Returns a string containing the last ODBC error message, or an empty string if there has been no errors.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

If connection_id is specified, the last state of that connection is returned, else the last state of any connection is returned.

This function returns meaningful value only if last odbc query failed (i.e. odbc_exec() returned FALSE).

Смотрите также

  • odbc_error() - Get the last error code
  • odbc_exec() - Prepare and execute an SQL statement


Prepare and execute an SQL statement

  • « odbc_errormsg
  • odbc_execute »
  • PHP Manual
  • ODBC Функции
  • Prepare and execute an SQL statement

odbc_exec

(PHP 4, PHP 5, PHP 7)

odbc_exec — Prepare and execute an SQL statement

Описание

resource odbc_exec ( resource $connection_id , string $query_string [, int $flags ] )

Sends an SQL statement to the database server.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

query_string

The SQL statement.

flags

This parameter is currently not used.

Возвращаемые значения

Returns an ODBC result identifier if the SQL command was executed successfully, or FALSE on error.

Смотрите также

  • odbc_prepare() - Prepares a statement for execution
  • odbc_execute() - Execute a prepared statement


Execute a prepared statement

  • « odbc_exec
  • odbc_fetch_array »
  • PHP Manual
  • ODBC Функции
  • Execute a prepared statement

odbc_execute

(PHP 4, PHP 5, PHP 7)

odbc_execute — Execute a prepared statement

Описание

bool odbc_execute ( resource $result_id [, array $parameters_array ] )

Executes a statement prepared with odbc_prepare().

Список параметров

result_id

The result id resource, from odbc_prepare().

parameters_array

Parameters in parameter_array will be substituted for placeholders in the prepared statement in order. Elements of this array will be converted to strings by calling this function.

Any parameters in parameter_array which start and end with single quotes will be taken as the name of a file to read and send to the database server as the data for the appropriate placeholder.

If you wish to store a string which actually begins and ends with single quotes, you must add a space or other non-single-quote character to the beginning or end of the parameter, which will prevent the parameter from being taken as a file name. If this is not an option, then you must use another mechanism to store the string, such as executing the query directly with odbc_exec()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 odbc_execute() and odbc_prepare() example

In the following code, $success will only be TRUE if all three parameters to myproc are IN parameters:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt    = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

If you need to call a stored procedure using INOUT or OUT parameters, the recommended workaround is to use a native extension for your database (for example, mssql for MS SQL Server, or oci8 for Oracle).

Список изменений

Версия | Описание
4.2.0 | File reading is now subject to безопасный режим and open-basedir restrictions in parameters_array.

Смотрите также

  • odbc_prepare() - Prepares a statement for execution


Fetch a result row as an associative array

  • « odbc_execute
  • odbc_fetch_into »
  • PHP Manual
  • ODBC Функции
  • Fetch a result row as an associative array

odbc_fetch_array

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

odbc_fetch_array — Fetch a result row as an associative array

Описание

array odbc_fetch_array ( resource $result [, int $rownumber ] )

Fetch an associative array from an ODBC query.

Список параметров

result

The result resource from odbc_exec().

rownumber

Optionally choose which row number to retrieve.

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Примечания

Замечание: This function exists when compiled with DBMaker, IBM DB2 or UnixODBC support.

Смотрите также

  • odbc_fetch_row() - Fetch a row
  • odbc_fetch_object() - Fetch a result row as an object
  • odbc_num_rows() - Number of rows in a result


Fetch one result row into array

  • « odbc_fetch_array
  • odbc_fetch_object »
  • PHP Manual
  • ODBC Функции
  • Fetch one result row into array

odbc_fetch_into

(PHP 4, PHP 5, PHP 7)

odbc_fetch_into — Fetch one result row into array

Описание

int odbc_fetch_into ( resource $result_id , array &$result_array [, int $rownumber ] )

Fetch one result row into array.

Список параметров

result_id

The result resource.

result_array

The result array that can be of any type since it will be converted to type array. The array will contain the column values starting at array index 0.

rownumber

The row number.

Возвращаемые значения

Returns the number of columns in the result; FALSE on error.

Примеры

Пример #1 odbc_fetch_into() examples

<?php
$rc = odbc_fetch_into($res_id, $my_array);
?>

or

<?php
$rc = odbc_fetch_into($res_id, $my_array, 2);
?>


Fetch a result row as an object

  • « odbc_fetch_into
  • odbc_fetch_row »
  • PHP Manual
  • ODBC Функции
  • Fetch a result row as an object

odbc_fetch_object

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

odbc_fetch_object — Fetch a result row as an object

Описание

object odbc_fetch_object ( resource $result [, int $rownumber ] )

Fetch an object from an ODBC query.

Список параметров

result

The result resource from odbc_exec().

rownumber

Optionally choose which row number to retrieve.

Возвращаемые значения

Returns an object that corresponds to the fetched row, or FALSE if there are no more rows.

Примечания

Замечание: This function exists when compiled with DBMaker, IBM DB2 or UnixODBC support.

Смотрите также

  • odbc_fetch_row() - Fetch a row
  • odbc_fetch_array() - Fetch a result row as an associative array
  • odbc_num_rows() - Number of rows in a result


Fetch a row

  • « odbc_fetch_object
  • odbc_field_len »
  • PHP Manual
  • ODBC Функции
  • Fetch a row

odbc_fetch_row

(PHP 4, PHP 5, PHP 7)

odbc_fetch_row — Fetch a row

Описание

bool odbc_fetch_row ( resource $result_id [, int $row_number ] )

Fetches a row of the data that was returned by odbc_do() or odbc_exec(). After odbc_fetch_row() is called, the fields of that row can be accessed with odbc_result().

Список параметров

result_id

The result identifier.

row_number

If row_number is not specified, odbc_fetch_row() will try to fetch the next row in the result set. Calls to odbc_fetch_row() with and without row_number can be mixed.

To step through the result more than once, you can call odbc_fetch_row() with row_number 1, and then continue doing odbc_fetch_row() without row_number to review the result. If a driver doesn't support fetching rows by number, the row_number parameter is ignored.

Возвращаемые значения

Returns TRUE if there was a row, FALSE otherwise.


Get the length (precision) of a field

  • « odbc_fetch_row
  • odbc_field_name »
  • PHP Manual
  • ODBC Функции
  • Get the length (precision) of a field

odbc_field_len

(PHP 4, PHP 5, PHP 7)

odbc_field_len — Get the length (precision) of a field

Описание

int odbc_field_len ( resource $result_id , int $field_number )

Gets the length of the field referenced by number in the given result identifier.

Список параметров

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

Возвращаемые значения

Returns the field length, or FALSE on error.

Смотрите также

  • odbc_field_scale() - Get the scale of a field to get the scale of a floating point number


Get the columnname

  • « odbc_field_len
  • odbc_field_num »
  • PHP Manual
  • ODBC Функции
  • Get the columnname

odbc_field_name

(PHP 4, PHP 5, PHP 7)

odbc_field_name — Get the columnname

Описание

string odbc_field_name ( resource $result_id , int $field_number )

Gets the name of the field occupying the given column number in the given result identifier.

Список параметров

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

Возвращаемые значения

Returns the field name as a string, or FALSE on error.


Return column number

  • « odbc_field_name
  • odbc_field_precision »
  • PHP Manual
  • ODBC Функции
  • Return column number

odbc_field_num

(PHP 4, PHP 5, PHP 7)

odbc_field_num — Return column number

Описание

int odbc_field_num ( resource $result_id , string $field_name )

Gets the number of the column slot that corresponds to the named field in the given result identifier.

Список параметров

result_id

The result identifier.

field_name

The field name.

Возвращаемые значения

Returns the field number as a integer, or FALSE on error. Field numbering starts at 1.


Псевдоним odbc_field_len

  • « odbc_field_num
  • odbc_field_scale »
  • PHP Manual
  • ODBC Функции
  • Псевдоним odbc_field_len

odbc_field_precision

(PHP 4, PHP 5, PHP 7)

odbc_field_precision — Псевдоним odbc_field_len()

Описание

Эта функция является псевдонимом: odbc_field_len().

Смотрите также

  • odbc_field_scale() - Get the scale of a field to get the scale of a floating point number.


Get the scale of a field

  • « odbc_field_precision
  • odbc_field_type »
  • PHP Manual
  • ODBC Функции
  • Get the scale of a field

odbc_field_scale

(PHP 4, PHP 5, PHP 7)

odbc_field_scale — Get the scale of a field

Описание

int odbc_field_scale ( resource $result_id , int $field_number )

Gets the scale of the field referenced by number in the given result identifier.

Список параметров

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

Возвращаемые значения

Returns the field scale as a integer, or FALSE on error.


Datatype of a field

  • « odbc_field_scale
  • odbc_foreignkeys »
  • PHP Manual
  • ODBC Функции
  • Datatype of a field

odbc_field_type

(PHP 4, PHP 5, PHP 7)

odbc_field_type — Datatype of a field

Описание

string odbc_field_type ( resource $result_id , int $field_number )

Gets the SQL type of the field referenced by number in the given result identifier.

Список параметров

result_id

The result identifier.

field_number

The field number. Field numbering starts at 1.

Возвращаемые значения

Returns the field type as a string, or FALSE on error.


Retrieves a list of foreign keys

  • « odbc_field_type
  • odbc_free_result »
  • PHP Manual
  • ODBC Функции
  • Retrieves a list of foreign keys

odbc_foreignkeys

(PHP 4, PHP 5, PHP 7)

odbc_foreignkeys — Retrieves a list of foreign keys

Описание

resource odbc_foreignkeys ( resource $connection_id , string $pk_qualifier , string $pk_owner , string $pk_table , string $fk_qualifier , string $fk_owner , string $fk_table )

Retrieves a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

pk_qualifier

The primary key qualifier.

pk_owner

The primary key owner.

pk_table

The primary key table.

fk_qualifier

The foreign key qualifier.

fk_owner

The foreign key owner.

fk_table

The foreign key table.

Возвращаемые значения

Returns an ODBC result identifier или FALSE в случае возникновения ошибки.

The result set has the following columns:

  • PKTABLE_QUALIFIER
  • PKTABLE_OWNER
  • PKTABLE_NAME
  • PKCOLUMN_NAME
  • FKTABLE_QUALIFIER
  • FKTABLE_OWNER
  • FKTABLE_NAME
  • FKCOLUMN_NAME
  • KEY_SEQ
  • UPDATE_RULE
  • DELETE_RULE
  • FK_NAME
  • PK_NAME

If pk_table contains a table name, odbc_foreignkeys() returns a result set containing the primary key of the specified table and all of the foreign keys that refer to it.

If fk_table contains a table name, odbc_foreignkeys() returns a result set containing all of the foreign keys in the specified table and the primary keys (in other tables) to which they refer.

If both pk_table and fk_table contain table names, odbc_foreignkeys() returns the foreign keys in the table specified in fk_table that refer to the primary key of the table specified in pk_table. This should be one key at most.


Free resources associated with a result

  • « odbc_foreignkeys
  • odbc_gettypeinfo »
  • PHP Manual
  • ODBC Функции
  • Free resources associated with a result

odbc_free_result

(PHP 4, PHP 5, PHP 7)

odbc_free_result — Free resources associated with a result

Описание

bool odbc_free_result ( resource $result_id )

Free resources associated with a result.

odbc_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script is finished.

Список параметров

result_id

The result identifier.

Возвращаемые значения

Always returns TRUE.

Примечания

Замечание:

If auto-commit is disabled (see odbc_autocommit()) and you call odbc_free_result() before committing, all pending transactions are rolled back.


Retrieves information about data types supported by the data source

  • « odbc_free_result
  • odbc_longreadlen »
  • PHP Manual
  • ODBC Функции
  • Retrieves information about data types supported by the data source

odbc_gettypeinfo

(PHP 4, PHP 5, PHP 7)

odbc_gettypeinfo — Retrieves information about data types supported by the data source

Описание

resource odbc_gettypeinfo ( resource $connection_id [, int $data_type ] )

Retrieves information about data types supported by the data source.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

data_type

The data type, which can be used to restrict the information to a single data type.

Возвращаемые значения

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • TYPE_NAME
  • DATA_TYPE
  • PRECISION
  • LITERAL_PREFIX
  • LITERAL_SUFFIX
  • CREATE_PARAMS
  • NULLABLE
  • CASE_SENSITIVE
  • SEARCHABLE
  • UNSIGNED_ATTRIBUTE
  • MONEY
  • AUTO_INCREMENT
  • LOCAL_TYPE_NAME
  • MINIMUM_SCALE
  • MAXIMUM_SCALE

The result set is ordered by DATA_TYPE and TYPE_NAME.


Handling of LONG columns

  • « odbc_gettypeinfo
  • odbc_next_result »
  • PHP Manual
  • ODBC Функции
  • Handling of LONG columns

odbc_longreadlen

(PHP 4, PHP 5, PHP 7)

odbc_longreadlen — Handling of LONG columns

Описание

bool odbc_longreadlen ( resource $result_id , int $length )

Enables handling of LONG and LONGVARBINARY columns.

Список параметров

result_id

The result identifier.

length

The number of bytes returned to PHP is controlled by the parameter length. If it is set to 0, Long column data is passed through to the client.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Handling of LONGVARBINARY columns is also affected by odbc_binmode().


Checks if multiple results are available

  • « odbc_longreadlen
  • odbc_num_fields »
  • PHP Manual
  • ODBC Функции
  • Checks if multiple results are available

odbc_next_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

odbc_next_result — Checks if multiple results are available

Описание

bool odbc_next_result ( resource $result_id )

Checks if there are more result sets available as well as allowing access to the next result set via odbc_fetch_array(), odbc_fetch_row(), odbc_result(), etc.

Список параметров

result_id

The result identifier.

Возвращаемые значения

Returns TRUE if there are more result sets, FALSE otherwise.

Примеры

Пример #1 odbc_next_result()

<?php
$r_Connection = odbc_connect($dsn, $username, $password);

$s_SQL = <<<END_SQL
SELECT 'A'
SELECT 'B'
SELECT 'C'
END_SQL;

$r_Results = odbc_exec($r_Connection, $s_SQL);

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump first result set";
var_dump($a_Row1, $a_Row2);

echo "Get second results set ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump second result set ";
var_dump($a_Row1, $a_Row2);

echo "Get third results set ";
var_dump(odbc_next_result($r_Results));

$a_Row1 = odbc_fetch_array($r_Results);
$a_Row2 = odbc_fetch_array($r_Results);
echo "Dump third result set ";
var_dump($a_Row1, $a_Row2);

echo "Try for a fourth result set ";
var_dump(odbc_next_result($r_Results));
?>

Результат выполнения данного примера:

Dump first result set array(1) {
  ["A"]=>
  string(1) "A"
}
bool(false)
Get second results set bool(true)
Dump second result set array(1) {
  ["B"]=>
  string(1) "B"
}
bool(false)
Get third results set bool(true)
Dump third result set array(1) {
  ["C"]=>
  string(1) "C"
}
bool(false)
Try for a fourth result set bool(false)


Number of columns in a result

  • « odbc_next_result
  • odbc_num_rows »
  • PHP Manual
  • ODBC Функции
  • Number of columns in a result

odbc_num_fields

(PHP 4, PHP 5, PHP 7)

odbc_num_fields — Number of columns in a result

Описание

int odbc_num_fields ( resource $result_id )

Gets the number of fields (columns) in an ODBC result.

Список параметров

result_id

The result identifier returned by odbc_exec().

Возвращаемые значения

Returns the number of fields, or -1 on error.


Number of rows in a result

  • « odbc_num_fields
  • odbc_pconnect »
  • PHP Manual
  • ODBC Функции
  • Number of rows in a result

odbc_num_rows

(PHP 4, PHP 5, PHP 7)

odbc_num_rows — Number of rows in a result

Описание

int odbc_num_rows ( resource $result_id )

Gets the number of rows in a result. For INSERT, UPDATE and DELETE statements odbc_num_rows() returns the number of rows affected. For a SELECT clause this can be the number of rows available.

Список параметров

result_id

The result identifier returned by odbc_exec().

Возвращаемые значения

Returns the number of rows in an ODBC result. This function will return -1 on error.

Примечания

Замечание:

Using odbc_num_rows() to determine the number of rows available after a SELECT will return -1 with many drivers.


Open a persistent database connection

  • « odbc_num_rows
  • odbc_prepare »
  • PHP Manual
  • ODBC Функции
  • Open a persistent database connection

odbc_pconnect

(PHP 4, PHP 5, PHP 7)

odbc_pconnect — Open a persistent database connection

Описание

resource odbc_pconnect ( string $dsn , string $user , string $password [, int $cursor_type ] )

Opens a persistent database connection.

This function is much like odbc_connect(), except that the connection is not really closed when the script has finished. Future requests for a connection with the same dsn, user, password combination (via odbc_connect() and odbc_pconnect()) can reuse the persistent connection.

Список параметров

See odbc_connect() for details.

Возвращаемые значения

Returns an ODBC connection id or 0 (FALSE) on error.

Примечания

Замечание: Persistent connections have no effect if PHP is used as a CGI program.

Смотрите также

  • odbc_connect() - Соединяет с источником данных
  • Persistent Database Connections


Prepares a statement for execution

  • « odbc_pconnect
  • odbc_primarykeys »
  • PHP Manual
  • ODBC Функции
  • Prepares a statement for execution

odbc_prepare

(PHP 4, PHP 5, PHP 7)

odbc_prepare — Prepares a statement for execution

Описание

resource odbc_prepare ( resource $connection_id , string $query_string )

Prepares a statement for execution. The result identifier can be used later to execute the statement with odbc_execute().

Some databases (such as IBM DB2, MS SQL Server, and Oracle) support stored procedures that accept parameters of type IN, INOUT, and OUT as defined by the ODBC specification. However, the Unified ODBC driver currently only supports parameters of type IN to stored procedures.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

query_string

The query string statement being prepared.

Возвращаемые значения

Returns an ODBC result identifier if the SQL command was prepared successfully. Returns FALSE on error.

Примеры

Пример #1 odbc_execute() and odbc_prepare() example

In the following code, $success will only be TRUE if all three parameters to myproc are IN parameters:

<?php
$a = 1;
$b = 2;
$c = 3;
$stmt    = odbc_prepare($conn, 'CALL myproc(?,?,?)');
$success = odbc_execute($stmt, array($a, $b, $c));
?>

If you need to call a stored procedure using INOUT or OUT parameters, the recommended workaround is to use a native extension for your database (for example, mssql for MS SQL Server, or oci8 for Oracle).

Смотрите также

  • odbc_execute() - Execute a prepared statement


Gets the primary keys for a table

  • « odbc_prepare
  • odbc_procedurecolumns »
  • PHP Manual
  • ODBC Функции
  • Gets the primary keys for a table

odbc_primarykeys

(PHP 4, PHP 5, PHP 7)

odbc_primarykeys — Gets the primary keys for a table

Описание

resource odbc_primarykeys ( resource $connection_id , string $qualifier , string $owner , string $table )

Returns a result identifier that can be used to fetch the column names that comprise the primary key for a table.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

owner

table

Возвращаемые значения

Returns an ODBC result identifier или FALSE в случае возникновения ошибки.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • COLUMN_NAME
  • KEY_SEQ
  • PK_NAME


Retrieve information about parameters to procedures

  • « odbc_primarykeys
  • odbc_procedures »
  • PHP Manual
  • ODBC Функции
  • Retrieve information about parameters to procedures

odbc_procedurecolumns

(PHP 4, PHP 5, PHP 7)

odbc_procedurecolumns — Retrieve information about parameters to procedures

Описание

resource odbc_procedurecolumns ( resource $connection_id )
resource odbc_procedurecolumns ( resource $connection_id , string $qualifier , string $owner , string $proc , string $column )

Retrieve information about parameters to procedures.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner. Этот параметр принимает следующие шаблоны поиска: "%" соответствующий нулю или более символам, и "_" соответствующий ровно одному символу.

proc

The proc. Этот параметр принимает следующие шаблоны поиска: "%" соответствующий нулю или более символам, и "_" соответствующий ровно одному символу.

column

The column. Этот параметр принимает следующие шаблоны поиска: "%" соответствующий нулю или более символам, и "_" соответствующий ровно одному символу.

Возвращаемые значения

Returns the list of input and output parameters, as well as the columns that make up the result set for the specified procedures. Returns an ODBC result identifier или FALSE в случае возникновения ошибки.

The result set has the following columns:

  • PROCEDURE_QUALIFIER
  • PROCEDURE_OWNER
  • PROCEDURE_NAME
  • COLUMN_NAME
  • COLUMN_TYPE
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • RADIX
  • NULLABLE
  • REMARKS

The result set is ordered by PROCEDURE_QUALIFIER, PROCEDURE_OWNER, PROCEDURE_NAME and COLUMN_TYPE.


Get the list of procedures stored in a specific data source

  • « odbc_procedurecolumns
  • odbc_result_all »
  • PHP Manual
  • ODBC Функции
  • Get the list of procedures stored in a specific data source

odbc_procedures

(PHP 4, PHP 5, PHP 7)

odbc_procedures — Get the list of procedures stored in a specific data source

Описание

resource odbc_procedures ( resource $connection_id )
resource odbc_procedures ( resource $connection_id , string $qualifier , string $owner , string $name )

Lists all procedures in the requested range.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner. Этот параметр принимает следующие шаблоны поиска: "%" соответствующий нулю или более символам, и "_" соответствующий ровно одному символу.

name

The name. Этот параметр принимает следующие шаблоны поиска: "%" соответствующий нулю или более символам, и "_" соответствующий ровно одному символу.

Возвращаемые значения

Returns an ODBC result identifier containing the information или FALSE в случае возникновения ошибки.

The result set has the following columns:

  • PROCEDURE_QUALIFIER
  • PROCEDURE_OWNER
  • PROCEDURE_NAME
  • NUM_INPUT_PARAMS
  • NUM_OUTPUT_PARAMS
  • NUM_RESULT_SETS
  • REMARKS
  • PROCEDURE_TYPE


Print result as HTML table

  • « odbc_procedures
  • odbc_result »
  • PHP Manual
  • ODBC Функции
  • Print result as HTML table

odbc_result_all

(PHP 4, PHP 5, PHP 7)

odbc_result_all — Print result as HTML table

Описание

int odbc_result_all ( resource $result_id [, string $format ] )

Prints all rows from a result identifier produced by odbc_exec(). The result is printed in HTML table format.

Список параметров

result_id

The result identifier.

format

Additional overall table formatting.

Возвращаемые значения

Returns the number of rows in the result or FALSE on error.


Get result data

  • « odbc_result_all
  • odbc_rollback »
  • PHP Manual
  • ODBC Функции
  • Get result data

odbc_result

(PHP 4, PHP 5, PHP 7)

odbc_result — Get result data

Описание

mixed odbc_result ( resource $result_id , mixed $field )

Get result data

Список параметров

result_id

The ODBC resource.

field

The field name being retrieved. It can either be an integer containing the column number of the field you want; or it can be a string containing the name of the field.

Возвращаемые значения

Returns the string contents of the field, FALSE on error, NULL for NULL data, or TRUE for binary data.

Примеры

The first call to odbc_result() returns the value of the third field in the current record of the query result. The second function call to odbc_result() returns the value of the field whose field name is "val" in the current record of the query result. An error occurs if a column number parameter for a field is less than one or exceeds the number of columns (or fields) in the current record. Similarly, an error occurs if a field with a name that is not one of the fieldnames of the table(s) that is(are) being queried.

Пример #1 odbc_result() examples

<?php
$item_3   = odbc_result($Query_ID, 3);
$item_val = odbc_result($Query_ID, "val");
?>

Примечания

Field indices start from 1. Regarding the way binary or long column data is returned refer to odbc_binmode() and odbc_longreadlen().


Rollback a transaction

  • « odbc_result
  • odbc_setoption »
  • PHP Manual
  • ODBC Функции
  • Rollback a transaction

odbc_rollback

(PHP 4, PHP 5, PHP 7)

odbc_rollback — Rollback a transaction

Описание

bool odbc_rollback ( resource $connection_id )

Rolls back all pending statements on the connection.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Adjust ODBC settings

  • « odbc_rollback
  • odbc_specialcolumns »
  • PHP Manual
  • ODBC Функции
  • Adjust ODBC settings

odbc_setoption

(PHP 4, PHP 5, PHP 7)

odbc_setoption — Adjust ODBC settings

Описание

bool odbc_setoption ( resource $id , int $function , int $option , int $param )

This function allows fiddling with the ODBC options for a particular connection or query result. It was written to help find work around to problems in quirky ODBC drivers. You should probably only use this function if you are an ODBC programmer and understand the effects the various options will have. You will certainly need a good ODBC reference to explain all the different options and values that can be used. Different driver versions support different options.

Because the effects may vary depending on the ODBC driver, use of this function in scripts to be made publicly available is strongly discouraged. Also, some ODBC options are not available to this function because they must be set before the connection is established or the query is prepared. However, if on a particular job it can make PHP work so your boss doesn't tell you to use a commercial product, that's all that really matters.

Список параметров

id

Is a connection id or result id on which to change the settings. For SQLSetConnectOption(), this is a connection id. For SQLSetStmtOption(), this is a result id.

function

Is the ODBC function to use. The value should be 1 for SQLSetConnectOption() and 2 for SQLSetStmtOption().

option

The option to set.

param

The value for the given option.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 odbc_setoption() examples

<?php
// 1. Option 102 of SQLSetConnectOption() is SQL_AUTOCOMMIT.
//    Value 1 of SQL_AUTOCOMMIT is SQL_AUTOCOMMIT_ON.
//    This example has the same effect as
//    odbc_autocommit($conn, true);

odbc_setoption($conn, 1, 102, 1);

// 2. Option 0 of SQLSetStmtOption() is SQL_QUERY_TIMEOUT.
//    This example sets the query to timeout after 30 seconds.

$result = odbc_prepare($conn, $sql);
odbc_setoption($result, 2, 0, 30);
odbc_execute($result);
?>


Retrieves special columns

  • « odbc_setoption
  • odbc_statistics »
  • PHP Manual
  • ODBC Функции
  • Retrieves special columns

odbc_specialcolumns

(PHP 4, PHP 5, PHP 7)

odbc_specialcolumns — Retrieves special columns

Описание

resource odbc_specialcolumns ( resource $connection_id , int $type , string $qualifier , string $owner , string $table , int $scope , int $nullable )

Retrieves either the optimal set of columns that uniquely identifies a row in the table, or columns that are automatically updated when any value in the row is updated by a transaction.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

type
When the type argument is SQL_BEST_ROWID, odbc_specialcolumns() returns the column or columns that uniquely identify each row in the table. When the type argument is SQL_ROWVER, odbc_specialcolumns() returns the column or columns in the specified table, if any, that are automatically updated by the data source when any value in the row is updated by any transaction.
qualifier

The qualifier.

owner

The owner.

table

The table.

scope

The scope, which orders the result set.

nullable

The nullable option.

Возвращаемые значения

Returns an ODBC result identifier or FALSE on failure.

The result set has the following columns:

  • SCOPE
  • COLUMN_NAME
  • DATA_TYPE
  • TYPE_NAME
  • PRECISION
  • LENGTH
  • SCALE
  • PSEUDO_COLUMN


Retrieve statistics about a table

  • « odbc_specialcolumns
  • odbc_tableprivileges »
  • PHP Manual
  • ODBC Функции
  • Retrieve statistics about a table

odbc_statistics

(PHP 4, PHP 5, PHP 7)

odbc_statistics — Retrieve statistics about a table

Описание

resource odbc_statistics ( resource $connection_id , string $qualifier , string $owner , string $table_name , int $unique , int $accuracy )

Get statistics about a table and its indexes.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner.

table_name

The table name.

unique

The unique attribute.

accuracy

The accuracy.

Возвращаемые значения

Returns an ODBC result identifier или FALSE в случае возникновения ошибки.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • NON_UNIQUE
  • INDEX_QUALIFIER
  • INDEX_NAME
  • TYPE
  • SEQ_IN_INDEX
  • COLUMN_NAME
  • COLLATION
  • CARDINALITY
  • PAGES
  • FILTER_CONDITION

The result set is ordered by NON_UNIQUE, TYPE, INDEX_QUALIFIER, INDEX_NAME and SEQ_IN_INDEX.


Lists tables and the privileges associated with each table

  • « odbc_statistics
  • odbc_tables »
  • PHP Manual
  • ODBC Функции
  • Lists tables and the privileges associated with each table

odbc_tableprivileges

(PHP 4, PHP 5, PHP 7)

odbc_tableprivileges — Lists tables and the privileges associated with each table

Описание

resource odbc_tableprivileges ( resource $connection_id , string $qualifier , string $owner , string $name )

Lists tables in the requested range and the privileges associated with each table.

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner. Accepts the following search patterns: ('%' to match zero or more characters and '_' to match a single character)

name

The name. Accepts the following search patterns: ('%' to match zero or more characters and '_' to match a single character)

Возвращаемые значения

An ODBC result identifier или FALSE в случае возникновения ошибки.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • GRANTOR
  • GRANTEE
  • PRIVILEGE
  • IS_GRANTABLE

The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.


Get the list of table names stored in a specific data source

  • « odbc_tableprivileges
  • PDO »
  • PHP Manual
  • ODBC Функции
  • Get the list of table names stored in a specific data source

odbc_tables

(PHP 4, PHP 5, PHP 7)

odbc_tables — Get the list of table names stored in a specific data source

Описание

resource odbc_tables ( resource $connection_id [, string $qualifier [, string $owner [, string $name [, string $types ]]]] )

Lists all tables in the requested range.

To support enumeration of qualifiers, owners, and table types, the following special semantics for the qualifier, owner, name, and table_type are available:

  • If qualifier is a single percent character (%) and owner and name are empty strings, then the result set contains a list of valid qualifiers for the data source. (All columns except the TABLE_QUALIFIER column contain NULLs.)
  • If owner is a single percent character (%) and qualifier and name are empty strings, then the result set contains a list of valid owners for the data source. (All columns except the TABLE_OWNER column contain NULLs.)
  • If table_type is a single percent character (%) and qualifier, owner and name are empty strings, then the result set contains a list of valid table types for the data source. (All columns except the TABLE_TYPE column contain NULLs.)

Список параметров

connection_id

Идентификатор соединения ODBC, за подробностями обращайтесь к odbc_connect().

qualifier

The qualifier.

owner

The owner. Accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

name

The name. Accepts search patterns ('%' to match zero or more characters and '_' to match a single character).

types

If table_type is not an empty string, it must contain a list of comma-separated values for the types of interest; each value may be enclosed in single quotes (') or unquoted. For example, "'TABLE','VIEW'" or "TABLE, VIEW". If the data source does not support a specified table type, odbc_tables() does not return any results for that type.

Возвращаемые значения

Returns an ODBC result identifier containing the information или FALSE в случае возникновения ошибки.

The result set has the following columns:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • TABLE_TYPE
  • REMARKS

The result set is ordered by TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER and TABLE_NAME.

Смотрите также

  • odbc_tableprivileges() - Lists tables and the privileges associated with each table


Объекты данных PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Подключения и Управление подключениями
  • Транзакции и автоматическая фиксация изменений
  • Подготовленные запросы и хранимые процедуры
  • Ошибки и их обработка
  • Большие объекты (LOB)
  • PDO — Класс PDO
    • PDO::beginTransaction — Инициализация транзакции
    • PDO::commit — Фиксирует транзакцию
    • PDO::__construct — Создает экземпляр PDO, предоставляющий соединение с базой данных
    • PDO::errorCode — Возвращает код SQLSTATE результата последней операции с базой данных
    • PDO::errorInfo — Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
    • PDO::exec — Запускает SQL запрос на выполнение и возвращает количество строк, задействованных в ходе его выполнения
    • PDO::getAttribute — Получить атрибут соединения с базой данных
    • PDO::getAvailableDrivers — Возвращает массив доступных драйверов PDO
    • PDO::inTransaction — Проверяет, начата ли транзакция
    • PDO::lastInsertId — Возвращает ID последней вставленной строки или последовательное значение
    • PDO::prepare — Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
    • PDO::query — Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement
    • PDO::quote — Заключает строку в кавычки для использования в запросе
    • PDO::rollBack — Откат транзакции
    • PDO::setAttribute — Присвоение атрибута
  • PDOStatement — Класс PDOStatement
    • PDOStatement::bindColumn — Связывает столбец с PHP переменной
    • PDOStatement::bindParam — Привязывает параметр запроса к переменной
    • PDOStatement::bindValue — Связывает параметр с заданным значением
    • PDOStatement::closeCursor — Закрывает курсор, переводя запрос в состояние готовности к повторному запуску
    • PDOStatement::columnCount — Возвращает количество столбцов в результирующем наборе
    • PDOStatement::debugDumpParams — Вывод информации о подготовленной SQL команде в целях отладки
    • PDOStatement::errorCode — Определяет SQLSTATE код соответствующий последней операции объекта PDOStatement
    • PDOStatement::errorInfo — Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement
    • PDOStatement::execute — Запускает подготовленный запрос на выполнение
    • PDOStatement::fetch — Извлечение следующей строки из результирующего набора
    • PDOStatement::fetchAll — Возвращает массив, содержащий все строки результирующего набора
    • PDOStatement::fetchColumn — Возвращает данные одного столбца следующей строки результирующего набора
    • PDOStatement::fetchObject — Извлекает следующую строку и возвращает ее в виде объекта
    • PDOStatement::getAttribute — Получение значения атрибута запроса PDOStatement
    • PDOStatement::getColumnMeta — Возвращает метаданные столбца в результирующей таблице
    • PDOStatement::nextRowset — Переход к следующему набору строк в результате запроса
    • PDOStatement::rowCount — Возвращает количество строк, модифицированных последним SQL запросом
    • PDOStatement::setAttribute — Присваивает атрибут объекту PDOStatement
    • PDOStatement::setFetchMode — Задает режим выборки по умолчанию для объекта запроса
  • PDOException — Класс PDOException
  • PDO Драйверы
    • CUBRID (PDO) — CUBRID Functions (PDO_CUBRID)
    • MS SQL Server (PDO) — Microsoft SQL Server and Sybase Functions (PDO_DBLIB)
    • Firebird (PDO) — Firebird Functions (PDO_FIREBIRD)
    • IBM (PDO) — IBM Functions (PDO_IBM)
    • Informix (PDO) — Informix Functions (PDO_INFORMIX)
    • MySQL (PDO) — Функции MySQL (PDO_MYSQL)
    • MS SQL Server (PDO) — Функции расширения PDO_SQLSRV для Microsoft SQL Server
    • Oracle (PDO) — Oracle Functions (PDO_OCI)
    • ODBC and DB2 (PDO) — ODBC and DB2 Functions (PDO_ODBC)
    • PostgreSQL (PDO) — PostgreSQL Functions (PDO_PGSQL)
    • SQLite (PDO) — Функции SQLite (PDO_SQLITE)
    • 4D (PDO) — 4D Functions (PDO_4D)


Введение

Расширение Объекты данных PHP (PDO) определяет простой и согласованный интерфейс для доступа к базам данных в PHP. Каждый драйвер базы данных, в котором реализован этот интерфейс, может представить специфичный для базы данных функционал в виде стандартных функций расширения. Но надо заметить, что само по себе расширение PDO не позволяет манипулировать доступом к базе данных. Чтобы воспользоваться возможностями PDO, необходимо использовать соответствующий конкретной базе данныхPDO драйвер.

PDO обеспечивает абстракцию (доступа к данным). Это значит, что вне зависимости от того, какая конкретная база данных используется, вы можете пользоваться одними и теми функциями для выполнения запросов и выборки данных. PDO не абстрагирует саму базу данных, это расширение не переписывает SQL запросы и не эмулирует отсутствующий в СУБД функционал. Если нужно именно это, необходимо воспользоваться полноценной абстракцией базы данных.

Расширение PDO внедрено в PHP 5.1, но также доступно в 5.0 в виде PECL расширения; PDO использует новый OO функционал из ядра PHP 5, соответственно оно не будет работать с ранними версиями PHP.


Установка

Инсталляция PDO на Unix системах

  1. PDO и драйвер PDO_SQLITE включены по умолчанию в PHP, начиная с версии 5.1.0. Чтобы включить PDO драйвер для произвольной базы данных, обратитесь к документации PDO драйверы баз данных.

    Замечание:

    Если PDO собирается, как подгружаемое расширение (не рекомендуется), то все PDO драйверы должны быть загружены после загрузки самого PDO.

  2. При инсталляции PDO в качестве подгружаемого модуля в файл php.ini необходимо внести изменения, чтобы расширение PDO загружалось автоматически при запуске PHP. Также туда придется включить загрузку некоторых драйверов баз данных; при этом убедитесь, что они перечислены после строки pdo.so, так как PDO должно загрузиться первым. Если вы устанавливаете PDO и драйверы как статичные модули, этот шаг можно пропустить

    extension=pdo.so

Пользователи Windows

  1. PDO и все основные драйверы внедрены в PHP как загружаемые модули. Чтобы их использовать, требуется их просто включить, отредактировав файл php.ini следующим образом:

    extension=php_pdo.dll

    Замечание:

    Этот шаг необязателен для версий PHP 5.3 и выше, так как для работы PDO больше не требуются DLL.

  2. Далее нужно выбрать DLL конкретных баз данных и либо загружать их во время выполнения функцией dl(), либо включить их в php.ini после php_pdo.dll. Например:

    extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_informix.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

    Эти DLL должны лежать в директории extension_dir.

Замечание:

Не забывайте, что после внесения изменений в php.ini необходим перезапуск PHP.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки конфигурации PDO
Имя | По умолчанию | Меняемо | Список изменений
pdo.dsn.* |  | только php.ini |

Краткое разъяснение конфигурационных директив.

pdo.dsn.* string

Определяет DSN псевдоним. Дополнительно см. PDO::__construct().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Внимание

PDO использует константы класса с PHP 5.1. До этого использовались глобальные константы в форме PDO_PARAM_BOOL.

PDO::PARAM_BOOL (integer)
Представляет булевый тип данных.
PDO::PARAM_NULL (integer)
Представляет тип данных SQL NULL.
PDO::PARAM_INT (integer)
Представляет тип данных SQL INTEGER.
PDO::PARAM_STR (integer)
Представляет типы данных SQL CHAR, VARCHAR и другие строковые типы.
PDO::PARAM_LOB (integer)
Представляет тип данных больших объектов SQL.
PDO::PARAM_STMT (integer)
Представляет тип recordset. На данных момент не поддерживается драйверами.
PDO::PARAM_INPUT_OUTPUT (integer)
Указывает, что параметр является INOUT параметром для хранимой процедуры. Для задания типа данных необходимо применить побитовое ИЛИ этой константы с константой типа PDO::PARAM_*.
PDO::FETCH_LAZY (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку выборки в виде объекта, в котором имена переменных соответствуют именам столбцов результирующего набора. PDO::FETCH_LAZY создает объект с такими же именами переменных, с которыми осуществлялась выборка. Константа недействительна для функции PDOStatement::fetchAll().
PDO::FETCH_ASSOC (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде ассоциативного массива, индексы которого соответствуют именам столбцов результата выборки. Если в результирующем наборе несколько столбцов с одинаковыми именами, PDO::FETCH_ASSOC будет возвращать по одному значению для каждого столбца. Значения дублирующихся столбцов будут утеряны.
PDO::FETCH_NAMED (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде ассоциативного массива, индексы которого соответствуют именам столбцов результата выборки. Если в результирующем наборе несколько столбцов с одинаковыми именами, PDO::FETCH_NAMED возвращает массив значений для каждого имени столбца.
PDO::FETCH_NUM (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде массива, индексы которого соответствуют порядковым номерам столбцов результата выборки. Нумерация начинается с 0.
PDO::FETCH_BOTH (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде массива. Индексация массива производится и по именам столбцов и по их порядковым номерам в результирующей таблице. Нумерация начинается с 0.
PDO::FETCH_OBJ (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать каждую строку результирующего набора в виде объекта, имена свойств которого соответствуют именам столбцов результирующей таблицы.
PDO::FETCH_BOUND (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать TRUE и присваивать значения столбцов таблицы переменным PHP, которые были привязаны методами PDOStatement::bindParam() или PDOStatement::bindColumn().
PDO::FETCH_COLUMN (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать значение только одного столбца из следующей строки результирующего набора.
PDO::FETCH_CLASS (integer)
Указывает, что метод, осуществляющий выборку данных, должен возвращать новый объект запрашиваемого класса, заполняя именованные свойства класса значениями столбцов результирующей таблицы.

Замечание: Если в классе нет свойства с необходимым именем, будет вызван магический метод __set().

PDO::FETCH_INTO (integer)
Указывает, что метод, осуществляющий выборку данных, должен обновлять существующий объект запрашиваемого класса, заполняя именованные свойства класса значениями столбцов результирующей таблицы.
PDO::FETCH_FUNC (integer)
Позволяет настроить обработку данных налету во время выборки (константа действительна только для функции PDOStatement::fetchAll()).
PDO::FETCH_GROUP (integer)
Группировка возвращаемых значений. Обычно комбинируется с константами PDO::FETCH_COLUMN или PDO::FETCH_KEY_PAIR.
PDO::FETCH_UNIQUE (integer)
Выбирать только уникальные значения, исключать дубли из результата.
PDO::FETCH_KEY_PAIR (integer)
Выборка из двух столбцов будет помещена в массив, в котором значения первого столбца принимаются за ключи, а значения второго - за значения. Константа доступна с версии PHP 5.2.3.
PDO::FETCH_CLASSTYPE (integer)
Определение имени класса по значению первого столбца.
PDO::FETCH_SERIALIZE (integer)
Аналогична PDO::FETCH_INTO, но объект представлен в виде сериализованной строки. Константа доступна с версии PHP 5.1.0. С версии PHP 5.3.0 конструктор класса не будет вызван, если этот флаг установлен.
PDO::FETCH_PROPS_LATE (integer)
Вызывать конструктор, до установки свойств. Константа доступна с версии PHP 5.2.0.
PDO::ATTR_AUTOCOMMIT (integer)
Если значение FALSE, PDO попытается отключить автоматическую фиксацию изменений в базе данных, таким образом началом транзакции будет установление соединения.
PDO::ATTR_PREFETCH (integer)
Изменение размера буфера предвыборки позволяет регулировать баланс между затрачиваемой памятью и скоростью работы с базой данных. Не все связки база/драйвер поддерживают изменение размера этого буфера. Чем больше этот размер, тем выше быстродействие, но и выше затраты памяти.
PDO::ATTR_TIMEOUT (integer)
Задает время в секундах, в течение которого должен быть завершен обмен с базой данных.
PDO::ATTR_ERRMODE (integer)
Подробно об этом атрибуте см. раздел Ошибки и их обработка.
PDO::ATTR_SERVER_VERSION (integer)
Этот атрибут предназначен только для чтения; он содержит информацию о версии сервера баз данных, к которому подключен PDO.
PDO::ATTR_CLIENT_VERSION (integer)
Этот атрибут предназначен только для чтения; он содержит информацию о версии клиентских библиотек, которые использует PDO драйвер.
PDO::ATTR_SERVER_INFO (integer)
Этот атрибут предназначен только для чтения; он содержит информацию о сервере баз данных, к которому подключен PDO.
PDO::ATTR_CONNECTION_STATUS (integer)
PDO::ATTR_CASE (integer)
Приведение имен столбцов к нужному регистру, который задается константами PDO::CASE_*.
PDO::ATTR_CURSOR_NAME (integer)
Получение или задание имени курсора. Особенно полезно при использовании прокручиваемых курсоров или обновления данных в конкретных позициях.
PDO::ATTR_CURSOR (integer)
Выбор типа курсора. PDO на данный момент поддерживает PDO::CURSOR_FWDONLY и PDO::CURSOR_SCROLL. Если вы не уверены, что вам нужен именно прокручиваемый курсор, выбирайте PDO::CURSOR_FWDONLY.
PDO::ATTR_DRIVER_NAME (string)
Возвращает имя драйвера.

Пример #1 using PDO::ATTR_DRIVER_NAME

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
  echo "Работаем с mysql; делаем что-то специфичное для mysql\n";
}
?>

PDO::ATTR_ORACLE_NULLS (integer)
Преобразование пустых строк в SQL NULL в выборках.
PDO::ATTR_PERSISTENT (integer)
Запрашивать постоянное соединение вместо создания нового подключения. Подробнее об этом атрибуте см. раздел Подключения и управление подключениями.
PDO::ATTR_STATEMENT_CLASS (integer)
PDO::ATTR_FETCH_CATALOG_NAMES (integer)
Предписание предварять имена столбцов именами каталогов в результирующем наборе. Имя столбца отделяется от имени каталога десятичной точкой (.). Поддержка этого атрибута заложена на уровне драйвера; этот функционал поддерживается не всеми драйверами.
PDO::ATTR_FETCH_TABLE_NAMES (integer)
Предписание предварять имена столбцов именами исходных таблиц в результирующем наборе. Имя столбца отделяется от имени таблицы десятичной точкой (.). Поддержка этого атрибута заложена на уровне драйвера; этот функционал поддерживается не всеми драйверами.
PDO::ATTR_STRINGIFY_FETCHES (integer)
PDO::ATTR_MAX_COLUMN_LEN (integer)
PDO::ATTR_DEFAULT_FETCH_MODE (integer)
Константа доступна с версии PHP 5.2.0
PDO::ATTR_EMULATE_PREPARES (integer)
Константа доступна с версии PHP 5.1.3.
PDO::ERRMODE_SILENT (integer)
Предписание не выбрасывать исключений в случае ошибок. Предполагается, что разработчик скрипта явно проверяет все исключительные ситуации. Это режим по умолчанию. Подробнее об этом атрибуте см. в разделе Ошибки и их обработка.
PDO::ERRMODE_WARNING (integer)
Предписание выдавать сообщение об ошибке PHP уровня E_WARNING. Подробнее об этом атрибуте см. в разделе Ошибки и их обработка.
PDO::ERRMODE_EXCEPTION (integer)
Предписание выбрасывать исключение PDOException в случае ошибки. Подробнее об этом атрибуте см. в разделе Ошибки и их обработка.
PDO::CASE_NATURAL (integer)
Предписание оставлять имена столбцов такими, какие выдал драйвер базы данных.
PDO::CASE_LOWER (integer)
Приводить имена столбцов к нижнему регистру.
PDO::CASE_UPPER (integer)
Приводить имена столбцов к верхнему регистру.
PDO::NULL_NATURAL (integer)
PDO::NULL_EMPTY_STRING (integer)
PDO::NULL_TO_STRING (integer)
PDO::FETCH_ORI_NEXT (integer)
Предписание выбрать следующую строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_PRIOR (integer)
Предписание выбрать предыдущую строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_FIRST (integer)
Предписание выбрать первую строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_LAST (integer)
Предписание выбрать последнюю строку из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_ABS (integer)
Предписание выбрать строку с указанным номером из результирующего набора. Константа действительна только для прокручиваемых курсоров.
PDO::FETCH_ORI_REL (integer)
Предписание выбрать строку из результирующего набора относительно текущего положения курсора. Константа действительна только для прокручиваемых курсоров.
PDO::CURSOR_FWDONLY (integer)
Предписание создать объект PDOStatement с последовательным курсором. Последовательные курсоры выбираются по умолчанию, так как это наиболее общий и быстрый способ доступа к данным в БД из PHP.
PDO::CURSOR_SCROLL (integer)
Предписание создать объект PDOStatement с прокручиваемым курсором. Передача констант PDO::FETCH_ORI_* позволяет задать режим работы курсора, то, как будут выбираться строки из результирующего набора запроса.
PDO::ERR_NONE (string)
Соответствует коду SQLSTATE '00000'. Это означает, что SQL запрос выполнен успешно без ошибок или предупреждений. Эта константа внедрена для удобства при проверке, есть ли ошибки, функциями PDO::errorCode() или PDOStatement::errorCode(). Также можно проверять, есть ли ошибка внутри метода, сравнивая его код возврата с этой константой.
PDO::PARAM_EVT_ALLOC (integer)
Событие, возникающее при выделении памяти под объект
PDO::PARAM_EVT_FREE (integer)
Событие, возникающее при освобождении занимаемой объектом памяти
PDO::PARAM_EVT_EXEC_PRE (integer)
Событие, возникающее перед запуском подготовленного запроса.
PDO::PARAM_EVT_EXEC_POST (integer)
Событие, возникающее после запуска подготовленного запроса.
PDO::PARAM_EVT_FETCH_PRE (integer)
Событие, возникающее перед выборкой данных из результирующего набора.
PDO::PARAM_EVT_FETCH_POST (integer)
Событие, возникающее после выборки данных из результирующего набора.
PDO::PARAM_EVT_NORMALIZE (integer)
Событие, возникающее во время регистрации параметров, позволяющее драйверу нормализовать имена параметров.


Подключения и Управление подключениями

Соединения устанавливаются автоматически при создании объекта PDO от его базового класса. Не имеет значения, какой драйвер вы хотите использовать; все что требуется, это имя базового класса. Конструктор класса принимает аргументы для задания источника данных (DSN), а также необязательные имя пользователя и пароль (если есть).

Пример #1 Подключение к MySQL

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>

В случае ошибки при подключении будет выброшено исключение PDOException. Его можно перехватить и обработать, либо оставить на откуп глобальному обработчику ошибок, который вы задали функцией set_exception_handler().

Пример #2 Обработка ошибок подключения

<?php
try {
    $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    foreach($dbh->query('SELECT * from FOO') as $row) {
        print_r($row);
    }
    $dbh = null;
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>

Внимание

Если ваше приложение не перехватывает исключение PDO конструктора, движок zend выполнит стандартные операции для завершения работы скрипта и вывода обратной трассировки. В этой трассировке будет содержаться детальная информация о соединении с базой данных, включая имя пользователя и пароль. Ответственность за перехват исключений лежит на вас. Перехватить исключение можно явно (с помощью выражения catch), либо неявно, задав глобальный обработчик ошибок функцией set_exception_handler().

При успешном подключении к базе данных в скрипт будет возвращен созданный PDO объект. Соединение остается активным на протяжении всего времени жизни объекта. Чтобы закрыть соединение, необходимо уничтожить объект путем удаления всех ссылок на него (этого можно добиться, присваивая NULL всем переменным, указывающим на объект). Если не сделать этого явно, PHP автоматически закроет соединение по окончании работы скрипта.

Замечание: Если существуют другие ссылки на данный инстанс PDO (например из объекта PDOStatement, или другие переменные, ссылающиеся на него), они также должны быть удалены (например присвоением NULL переменной, ссылающейся на PDOStatement).

Пример #3 Закрытие соединения

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
// здесь мы каким-то образом используем соединение
$sth = $dbh->query('SELECT * FROM foo');

// соединение больше не нужно, закрываем
$sth = null;
$dbh = null;
?>

Во многих приложениях может оказаться полезным использование постоянных соединений к базам данных. Постоянные соединения не закрываются при завершении работы скрипта, они кэшируются и используются повторно, когда другой скрипт запрашивает соединение с теми же учетными данными. Постоянные соединения позволяют избежать создания новых подключений каждый раз, когда требуется обмен данными с базой, что в результате дает прирост скорости работы таких приложений.

Пример #4 Постоянные соединения

<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));
?>

Замечание:

Чтобы использовать постоянные соединения, необходимо добавить константу PDO::ATTR_PERSISTENT в массив параметров драйвера, который передается конструктору PDO. Если просто задать этот атрибут функцией PDO::setAttribute() уже после создания объекта, драйвер не будет использовать постоянные соединения.

Замечание:

Если вы используете PDO ODBC драйвер и ваши ODBC библиотеки поддерживают объединение подключений в пул (ODBC Connection Pooling) (unixODBC и Windows точно поддерживают, но могут быть и другие), то рекомендуется вместо постоянных соединений пользоваться этим пулом. Пул подключений ODBC доступен всем модулям текущего процесса; если PDO сам кэширует соединение, то это соединение будет недоступно другим модулям и не попадет в пул. В результате каждый модуль будет создавать дополнительные подключения для своих нужд.


Транзакции и автоматическая фиксация изменений

Теперь вы знаете, как подключаться к базам данных посредством PDO. Но перед тем как выполнять запросы, вам необходимо понять, как PDO управляет транзакциями. Если вы прежде не сталкивались с транзакциями, они обладают четырьмя главными свойствами, это Атомарность, Согласованность, Изолированность и Долговечность (ACID). Говоря простым языком, любые действия, совершенные в рамках транзакции, гарантированно будут выполнены безопасно для базы данных, и на них не повлияют другие подключения к этой базе, даже если эти действия совершаются в несколько этапов. Транзакционные операции можно отменять по запросу (если транзакция еще не зафиксирована), что упрощает обработку ошибок в скрипте.

Механизм транзакций реализован путем "временного сохранения" всех изменений и дальнейшего применения этих изменений, как единого целого. Это позволяет добиться резкого увеличения эффективности подобных изменений. Другими словами, транзакции могут сделать ваш скрипт более быстрым и потенциально более стабильным (но для этого необходимо корректно использовать этот механизм).

К сожалению, не все базы данных поддерживают транзакции, поэтому PDO при создании подключения работает в режиме так называемой "автоматической фиксации". Режим автофиксации означает, что каждый запрос к базе данных, который вы выполняете, неявно заключается в транзакцию, если СУБД их поддерживает. Если база данных не поддерживает этот механизм, запрос обрабатывается без транзакции. Чтобы явно обозначить начало транзакции, вы должны использовать метод PDO::beginTransaction(). Однако, в этом случае, если драйвер не поддерживает механизм транзакций, будет выброшено исключение PDOException (вне зависимости от выбранного способа обработки ошибок: подобные ситуации - это всегда серьезная недоработка). Будучи внутри границ транзакции, ее можно зафиксировать методом PDO::commit() или откатить методом PDO::rollBack(), в зависимости от того, успешно выполнен ваш код внутри транзакции или нет.

Внимание

PDO проверяет возможность использования транзакций только на уровне драйвера. Если по каким-то причинам механизм транзакций недоступен, но сервер баз данных принял запрос на открытие транзакции, PDO::beginTransaction() вернет TRUE без ошибок.

В качестве примера можно попробовать использовать транзакции для изменения MyISAM таблиц базы данных MySQL.

При завершении работы скрипта или при закрытии соединения, PDO автоматически откатывает все незавершенные транзакции. Это делается, чтобы предотвратить нарушения целостности базы данных в случаях, когда скрипт неожиданно прерывает работу. Если вы явно не зафиксировали изменения, предполагается, что что-то пошло не так. Поэтому откат изменений - наиболее безопасный выход из ситуации.

Внимание

Изменения будут откачены автоматически, только если транзакция открыта методом PDO::beginTransaction(). Если транзакцию открыть вручную в тексте запроса, PDO об этом никак не узнает, и, соответственно, не сможет принять мер, если произойдет что-то плохое.

Пример #1 Выполнение пакета изменений в рамках транзакции

В следующем примере предположим, что мы создаем несколько записей для нового сотрудника с номером ID 23. Помимо ввода основной информации необходимо записать его зарплату. Довольно просто сделать два отдельных обновления таблиц, однако путем заключения этих запросов в рамки PDO::beginTransaction() и PDO::commit() мы сможем гарантировать, что никто не увидит этих изменений, пока все они не завершатся. Если что-то пойдет не так, catch-блок откатит все изменения с начала транзакции и напечатает сообщение об ошибке.

<?php
try {
  $dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',
      array(PDO::ATTR_PERSISTENT => true));
  echo "Подключились\n";
} catch (Exception $e) {
  die("Не удалось подключиться: " . $e->getMessage());
}

try {
  $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $dbh->beginTransaction();
  $dbh->exec("insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')");
  $dbh->exec("insert into salarychange (id, amount, changedate)
      values (23, 50000, NOW())");
  $dbh->commit();

} catch (Exception $e) {
  $dbh->rollBack();
  echo "Ошибка: " . $e->getMessage();
}
?>

Вы никак не ограничены в количестве запросов в рамках транзакции; вы также можете выполнять сложные запросы, чтобы извлечь данные, а затем использовать их для создания других запросов на обновление и извлечение данных; если транзакция активна, вы можете быть уверены, что никто не сможет изменить ваши данные, пока вы с ними работаете. За дополнительной информацией о транзакциях обращайтесь к документации к вашему серверу баз данных.


Подготовленные запросы и хранимые процедуры

Большинство баз данных поддерживают концепцию подготовленных запросов. Что это такое? Это можно описать, как некий вид скомпилированного шаблона SQL запроса, который будет запускаться приложением и настраиваться с помощью входных параметров. У подготовленных запросов есть два главных преимущества:

  • Запрос необходимо однажды подготовить и затем его можно запускать столько раз, сколько нужно, причем как с теми же, так и с отличающимися параметрами. Когда запрос подготовлен, СУБД анализирует его, компилирует и оптимизирует план его выполнения. В случае сложных запросов этот процесс может занимать ощутимое время и заметно замедлить работу приложения, если потребуется много раз выполнять запрос с разными параметрами. При использовании подготовленного запроса СУБД анализирует/компилирует/оптимизирует запрос любой сложности только один раз, а приложение запускает на выполнение уже подготовленный шаблон. Таким образом подготовленные запросы потребляют меньше ресурсов и работают быстрее.
  • Параметры подготовленного запроса не требуется экранировать кавычками; драйвер это делает автоматически. Если в приложении используются исключительно подготовленные запросы, разработчик может быть уверен, что никаких SQL инъекций случиться не может (однако, если другие части текста запроса записаны с неэкранированными символами, SQL инъекции все же возможны; здесь речь идет именно о параметрах).

Подготовленные запросы также полезны тем, что PDO может эмулировать их, если драйвер базы данных не имеет подобного функционала. Это значит, что приложение может пользоваться одной и той же методикой доступа к данным независимо от возможностей СУБД.

Пример #1 Повторяющиеся вставки в базу с использованием подготовленных запросов

В этом примере 2 раза выполняется INSERT запрос с разными значениями name и value, которые подставляются вместо соответствующих псевдопеременных:

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

// вставим одну строку
$name = 'one';
$value = 1;
$stmt->execute();

// теперь другую строку с другими значениями
$name = 'two';
$value = 2;
$stmt->execute();
?>

Пример #2 Повторяющиеся вставки в базу с использованием подготовленных запросов

В этом примере 2 раза выполняется INSERT запрос с разными значениями name и value, которые подставляются вместо псевдопеременных ?.

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

// вставим одну строку
$name = 'one';
$value = 1;
$stmt->execute();

// теперь другую строку с другими значениями
$name = 'two';
$value = 2;
$stmt->execute();
?>

Пример #3 Выборка данных с использованием подготовленных запросов

В этом примере производится выборка из базы по ключу, который вводит пользователь через форму. Пользовательский ввод автоматически заключается в кавычки, поэтому нет риска SQL иньекции.

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
  while ($row = $stmt->fetch()) {
    print_r($row);
  }
}
?>

Пример #4 Вызов хранимой процедуры с выходными параметрами

Если СУБД поддерживает выходные параметры, приложение может пользоваться ими также как и входными. Выходные параметры обычно используют для получения данных из хранимых процедур. Пользоваться выходными параметрами несколько сложнее, так как разработчику необходимо знать максимальный размер извлекаемых значений еще на этапе задания этих параметров. Если извлекаемое значение окажется больше, чем предполагалось, будет вызвана ошибка.

<?php
$stmt = $dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);

// вызов хранимой процедуры
$stmt->execute();

print "процедура вернула $return_value\n";
?>

Пример #5 Вызов хранимой процедуры с входным/выходным параметром

Можно задать параметр одновременно входным и выходным; синтаксис при этом тот же, что и для выходных параметров. В следующем примере строка 'привет' передается в хранимую процедуру, а затем эта строка будет заменена возвращаемым значением.

<?php
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = 'привет';
$stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000);

// вызов хранимой процедуры
$stmt->execute();

print "процедура вернула $value\n";
?>

Пример #6 Неправильное использование псевдопеременной

<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE '%?%'");
$stmt->execute(array($_GET['name']));

// псевдопеременная может использоваться только в виде отдельного значения
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name LIKE ?");
$stmt->execute(array("%$_GET[name]%"));
?>


Ошибки и их обработка

PDO предлагает на выбор 3 стратегии обработки ошибок в зависимости от вашего стиля разработки приложений.

  • PDO::ERRMODE_SILENT

    Это режим по умолчанию. PDO просто предоставит вам код ошибки, который можно получить методами PDO::errorCode() и PDO::errorInfo(). Эти методы реализованы как в объектах запросов так и в объектах баз данных. Если ошибка вызвана во время выполнения кода объекта запроса, нужно вызвать метод PDOStatement::errorCode() или PDOStatement::errorInfo() этого объекта. Если ошибка вызова объекта базы данных, нужно вызвать аналогичные методы у этого объекта.

  • PDO::ERRMODE_WARNING

    Помимо задания кода ошибки PDO выдаст обычное E_WARNING сообщение. Это может быть полезно при отладке или тестировании, когда нужно видеть, что произошло, но не нужно прерывать работу приложения.

  • PDO::ERRMODE_EXCEPTION

    Помимо задания кода ошибки PDO будет выбрасывать исключение PDOException, свойства которого будут отражать код ошибки и ее описание. Этот режим также полезен при отладке, так как сразу известно, где в программе произошла ошибка. Это позволяет быстро локализовать и решить проблему. (Не забывайте, что если исключение является причиной завершения работы скрипта, все активные транзакции будут откачены.)

    Режим исключений также полезен, так как дает возможность структурировать обработку ошибок более тщательно, нежели с обычными PHP предупреждениями, а также с меньшей вложенностью кода, чем в случае работы в тихом режиме с явной проверкой возвращаемых значений при каждом обращении к базе данных.

    Подробнее об исключениях в PHP см. в разделе Исключения.

PDO стандартизирован для работы со строковыми кодами ошибок SQL-92 SQLSTATE. Отдельные PDO драйверы могут задавать соответствия своих собственных кодов кодам SQLSTATE. Метод PDO::errorCode() возвращает одиночный SQLSTATE код. Если необходима специфичная информация об ошибке, PDO предлагает метод PDO::errorInfo(), который возвращает массив, содержащий SQLSTATE код, код ошибки драйвера, а также строку ошибки драйвера.

Пример #1 Создание PDO объекта и задание режима обработки ошибок

<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo 'Подключение не удалось: ' . $e->getMessage();
}

?>

Замечание:

Метод PDO::__construct() будет всегда бросать исключение PDOException, если соединение оборвалось, независимо от установленного значения PDO::ATTR_ERRMODE. Непойманные исключения фатальны.

Пример #2 Создание экземпляра класса PDO и задание режима обработки ошибок в конструкторе

<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'googleguy';
$password = 'googleguy';

/*
    По прежнему оберните конструктор в блок try/catch, так как, даже при установке ERRMODE в WARNING,
    PDO::__construct всегда будет бросать исключение PDOException, если соединение оборвалось.
*/
try {
    $dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
} catch (PDOException $e) {
    echo 'Соединение оборвалось: ' . $e->getMessage();
    exit;
}

// Следующий запрос приводит к ошибке уровня E_WARNING вместо исключения (когда таблица не существует)
$dbh->query("SELECT wrongcolumn FROM wrongtable");
?>

Результат выполнения данного примера:

Warning: PDO::query(): SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.wrongtable' doesn't exist in
/tmp/pdo_test.php on line 18


Большие объекты (LOB)

Иногда для работы приложения необходимо хранить "большие" порции данных в базе. Обычно, под большим понимают объем данных около 4 килобайт или больше, хотя некоторые базы данных могут спокойно обрабатывать до 32 килобайт, прежде чем размер данных становится "большим". Большие объекты могут быть текстовыми или двоичными. PDO позволяет работать с такими объектами путем задания типа данных PDO::PARAM_LOB в методах PDOStatement::bindParam() или PDOStatement::bindColumn(). PDO::PARAM_LOB сообщает PDO, что нужно пометить эти данные, как поток. И соответственно работать с такими объектами можно, используя API потоков PHP.

Пример #1 Вывод изображения, хранящегося в базе данных

В этом примере переменной $lob задают в соответствие большой объект LOB, а затем отсылают ее в браузер с помощью функции fpassthru(). Так как LOB представляется в виде потока, с ним могут работать такие функции, как fgets(), fread() и stream_get_contents().

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("select contenttype, imagedata from images where id=?");
$stmt->execute(array($_GET['id']));
$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);
$stmt->bindColumn(2, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

header("Content-Type: $type");
fpassthru($lob);
?>

Пример #2 Вставка изображения в базу данных

В этом примере будет открывается файл с изображением, его файловый указатель передается PDO, который в свою очередь вставляет изображение в базу в виде LOB. PDO извлечет содержимое файла и поместит его в базу наиболее эффективным способом.

<?php
$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) values (?, ?, ?)");
$id = get_new_id(); // какая-то функция для выделения ID

// предположим, что мы находимся на странице загрузки файлов на удаленный сервер

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>

Пример #3 Вставка изображения в базу данных: Oracle

В случае с базами Oracle требуется несколько иной синтаксис для извлечения содержимого файла и помещения в базу. Также необходимо выполнять вставку в рамках транзакции, иначе вставленный LOB будет зафиксирован в базе с нулевой длиной, так как если не обозначить границы транзакции, изменения будут фиксироваться после каждого выполненного запроса.

<?php
$db = new PDO('oci:', 'scott', 'tiger');
$stmt = $db->prepare("insert into images (id, contenttype, imagedata) " .
"VALUES (?, ?, EMPTY_BLOB()) RETURNING imagedata INTO ?");
$id = get_new_id(); // какая-то функция для выделения ID

// предположим, что мы находимся на странице загрузки файлов на удаленный сервер

$fp = fopen($_FILES['file']['tmp_name'], 'rb');

$stmt->bindParam(1, $id);
$stmt->bindParam(2, $_FILES['file']['type']);
$stmt->bindParam(3, $fp, PDO::PARAM_LOB);

$db->beginTransaction();
$stmt->execute();
$db->commit();
?>


Класс PDO

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

Введение

Представляет соединение между PHP и сервером базы данных.

Обзор классов

PDO {
public __construct ( string $dsn [, string $username [, string $password [, array $options ]]] )
public bool beginTransaction ( void )
public bool commit ( void )
public mixed errorCode ( void )
public array errorInfo ( void )
public int exec ( string $statement )
public mixed getAttribute ( int $attribute )
public static array getAvailableDrivers ( void )
public bool inTransaction ( void )
public string lastInsertId ([ string $name = NULL ] )
public PDOStatement prepare ( string $statement [, array $driver_options = array() ] )
public PDOStatement query ( string $statement )
public string quote ( string $string [, int $parameter_type = PDO::PARAM_STR ] )
public bool rollBack ( void )
public bool setAttribute ( int $attribute , mixed $value )
}

Содержание

  • PDO::beginTransaction — Инициализация транзакции
  • PDO::commit — Фиксирует транзакцию
  • PDO::__construct — Создает экземпляр PDO, предоставляющий соединение с базой данных
  • PDO::errorCode — Возвращает код SQLSTATE результата последней операции с базой данных
  • PDO::errorInfo — Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
  • PDO::exec — Запускает SQL запрос на выполнение и возвращает количество строк, задействованных в ходе его выполнения
  • PDO::getAttribute — Получить атрибут соединения с базой данных
  • PDO::getAvailableDrivers — Возвращает массив доступных драйверов PDO
  • PDO::inTransaction — Проверяет, начата ли транзакция
  • PDO::lastInsertId — Возвращает ID последней вставленной строки или последовательное значение
  • PDO::prepare — Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDO::query — Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement
  • PDO::quote — Заключает строку в кавычки для использования в запросе
  • PDO::rollBack — Откат транзакции
  • PDO::setAttribute — Присвоение атрибута


Инициализация транзакции

  • « PDO
  • PDO::commit »
  • PHP Manual
  • PDO
  • Инициализация транзакции

PDO::beginTransaction

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::beginTransaction — Инициализация транзакции

Описание

public bool PDO::beginTransaction ( void )

Выключает режим автоматической фиксации транзакции. В то время, как режим автоматической фиксации выключен, изменения, внесенные в базу данных через объект экземпляра PDO, не применяются, пока вы не завершите транзакцию, вызвав PDO::commit(). Вызов PDO::rollBack() откатит все изменения в базе данных и вернет соединение к режиму автоматической фиксации.

Некоторые базы данных, включая MySQL, автоматически выполняют неявную фиксацию, когда выражения языка описания данных (DDL), такие как DROP TABLE или CREATE TABLE, находятся внутри транзакции. Неявная фиксация предотвратит вам откат любых изменений в рамках границ транзакции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает PDOException есди транзакция уже стартована, либо если драйвер не поддерживает транзакционность.

Замечание: Если аттрибут PDO::ATTR_ERRMODE не будет выставлен в PDO::ERRMODE_EXCEPTION, будет вызвано исключение.

Примеры

Пример #1 Откат транзакции

Следующий пример начинает транзакцию и выполняет два заявления, что изменяет базу данных до отката изменений. В MySQL, тем не менее, выражение DROP TABLE автоматически фиксирует транзакцию так, что ни одно из изменений в транзакции не откатывается назад.

<?php
/* Начало транзакции, отключение автоматической фиксации */
$dbh->beginTransaction();

/* Изменение схемы базы данных и данных */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* Распознаем ошибку и откатываем назад изменения */
$dbh->rollBack();

/* Соединение с базой данных снова в режиме автоматической фиксации */
?>

Смотрите также

  • PDO::commit() - Фиксирует транзакцию
  • PDO::rollBack() - Откат транзакции
  • Транзакции и автоматическая фиксация


Фиксирует транзакцию

  • « PDO::beginTransaction
  • PDO::__construct »
  • PHP Manual
  • PDO
  • Фиксирует транзакцию

PDO::commit

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::commit — Фиксирует транзакцию

Описание

public bool PDO::commit ( void )

Фиксирует транзакцию, возвращая соединение с базой данных в режим автоматической фиксации до тех пор, пока следующий вызов PDO::beginTransaction() не начнет новую транзакцию.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает исключение PDOException если нет активной транзакции.

Замечание: Если аттрибут PDO::ATTR_ERRMODE не будет выставлен в PDO::ERRMODE_EXCEPTION, будет вызвано исключение.

Примеры

Пример #1 Фиксация обычной транзакции

<?php
/* Начало транзакции, отключение автоматической фиксации */
$dbh->beginTransaction();

/* Вставка множества записей по принципу "все или ничего" */
$sql = 'INSERT INTO fruit
    (name, colour, calories)
    VALUES (?, ?, ?)';

$sth = $dbh->prepare($sql);

foreach ($fruits as $fruit) {
    $sth->execute(array(
        $fruit->name,
        $fruit->colour,
        $fruit->calories,
    ));
}

/* Фиксация изменений */
$dbh->commit();

/* Соединение с базой данных снова в режиме автоматической фиксации */
?>

Пример #2 Фиксация DDL-транзакции

<?php
/* Начало транзакции, отключение автоматической фиксации */
$dbh->beginTransaction();

/* Изменение схемы базы данных */
$sth = $dbh->exec("DROP TABLE fruit");

/* Фиксация изменений */
$dbh->commit();

/* Соединение с базой данных снова в режиме автоматической фиксации */
?>

Замечание: Не все базы данных позволяют транзакциям работать с DDL-выражениями: в некоторых генерируются ошибки, тогда как в других (включая MySQL) транзакция автоматически фиксируется после первого встретившегося DDL-выражения.

Смотрите также

  • PDO::beginTransaction() - Инициализация транзакции
  • PDO::rollBack() - Откат транзакции
  • Транзакции и автоматическая фиксация


Создает экземпляр PDO, предоставляющий соединение с базой данных

  • « PDO::commit
  • PDO::errorCode »
  • PHP Manual
  • PDO
  • Создает экземпляр PDO, предоставляющий соединение с базой данных

PDO::__construct

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::__construct — Создает экземпляр PDO, предоставляющий соединение с базой данных

Описание

public PDO::__construct ( string $dsn [, string $username [, string $password [, array $options ]]] )

Создает экземпляр PDO, предоставляющий подключение к необходимой базе данных.

Список параметров

dsn

Имя источника данных или DSN, содержащее информацию, необходимую для подключения к базе данных.

В общем, DSN состоит из имени драйвера PDO, за которым следует двоеточие и специфический синтаксис подключения драйвера PDO. Дополнительную информацию можно получить из раздела Документация по специфическим драйверам PDO.

Параметр dsn поддерживает три разные метода указания аргументов, необходимых для создания соединения с базой данных:

Вызов драйвера

dsn содержит полный DSN.

Вызов URI

Параметр dsn состоит из строки uri: с последующим URI, который определяет расположение файла, содержащего строку DSN. URI может указывать на локальный файл или удаленный URL.

uri:file:///path/to/dsnfile

Совмещение имен

dsn состоит из имени name, которое соответствует параметру pdo.dsn.name в php.ini, определяющему строку DSN.

Замечание:

Псевдоним должен быть определен в php.ini, но не в .htaccess или httpd.conf

username

Имя пользователя для строки DSN. Этот параметр опционален для некоторых драйверов PDO.

password

Пароль для строки DSN. Этот параметр опционален для некоторых драйверов PDO.

options

Массив специфичных для драйвера настроек подключения ключ=>значение.

Возвращаемые значения

Возвращает объект PDO в случае успеха.

Ошибки

PDO::__construct() выбрасывает исключение PDOException, если попытка соединения с необходимой базой данных не удается.

Примеры

Пример #1 Создание экземпляра PDO через вызов драйвера

<?php
/* Подключение к базе данных MySQL, используя вызов драйвера */
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Подключение не удалось: ' . $e->getMessage();
}

?>

Пример #2 Создание экземпляра PDO через вызов URI

В следующем примере предполагается, что файл /usr/local/dbconnect существует с правами доступа, которые позволяют PHP прочитать файл. Файл содержит PDO DSN для подключения к базе данных DB2 через драйвер PDO_ODBC:

odbc:DSN=SAMPLE;UID=john;PWD=mypass

PHP-скрипт может создать подключение к базе данных путем простой передачи параметра uri:, указывающим на на файл URI:

<?php
/* Подключение к базе данных ODBC, используя вызов драйвера */
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Подключение не удалось: ' . $e->getMessage();
}

?>

Пример #3 Создание экземпляра PDO, используя псевдоним

В следующем примере предполагается, что php.ini содержит следующую запись, позволяющую подключение к базе данных MySQL, используя только псевдонимmydb:

[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?php
/* Подключение к базе данных ODBC, используя псевдоним */
$dsn = 'mydb';
$user = '';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
    echo 'Подключение не удалось: ' . $e->getMessage();
}

?>

Замечание:

До PHP 5.3, класс, наследуемый от PDO и реализующий магический метод __call, всегда получал параметр $method в нижнем регистре.


Возвращает код SQLSTATE результата последней операции с базой данных

  • « PDO::__construct
  • PDO::errorInfo »
  • PHP Manual
  • PDO
  • Возвращает код SQLSTATE результата последней операции с базой данных

PDO::errorCode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::errorCode — Возвращает код SQLSTATE результата последней операции с базой данных

Описание

public mixed PDO::errorCode ( void )

Возвращаемые значения

Возвращает 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 PDOStatement::errorCode().

Возвращает NULL, если никаких операций над базой данных средствами PDO объекта не производилось.

Примеры

Пример #1 Получение кода SQLSTATE

<?php
/* Спровоцируем ошибку -- таблицы BONES не существует */
$dbh->exec("INSERT INTO bones(skull) VALUES ('lucy')");

echo "\nPDO::errorCode(): ", $dbh->errorCode();
?>

Результат выполнения данного примера:

PDO::errorCode(): 42S02

Смотрите также

  • PDO::errorInfo() - Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
  • PDOStatement::errorCode() - Определяет SQLSTATE код соответствующий последней операции объекта PDOStatement
  • PDOStatement::errorInfo() - Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement


Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных

  • « PDO::errorCode
  • PDO::exec »
  • PHP Manual
  • PDO
  • Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных

PDO::errorInfo

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::errorInfo — Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных

Описание

public array PDO::errorInfo ( void )

Возвращаемые значения

PDO::errorInfo() возвращает массив с информацией об ошибке произошедшей в ходе выполнения последней операции с базой данных. Массив содержит следующие поля:

Элемент | Информация
0 | Код ошибки SQLSTATE (пятисимвольный идентификатор определенный в стандарте ANSI SQL).
1 | Код ошибки, заданный драйвером.
2 | Выданное драйвером сообщение об ошибке.

Замечание:

Если не задан SQLSTATE код или драйвер не сообщил об ошибке, то элементы следующие за нулевым будут иметь значение NULL.

PDO::errorInfo() выдает информацию об ошибке только для операций совершаемых с базой данных напрямую из PDO. Если создать объект PDOStatement методами PDO::prepare() или PDO::query(), и вызвать ошибку его методами, PDO::errorInfo() эту ошибку не отобразит. В таких случаях нужно пользоваться собственными методами получения информации об ошибках объекта PDOStatement PDOStatement::errorInfo().

Примеры

Пример #1 Вывод полей массива errorInfo() для PDO_ODBC подключения к базе данных DB2

<?php
/* Спровоцируем синтаксическую ошибку SQL */
$stmt = $dbh->prepare('bogus sql');
if (!$stmt) {
    echo "\nPDO::errorInfo():\n";
    print_r($dbh->errorInfo());
}
?>

Результат выполнения данного примера:

PDO::errorInfo():
Array
(
    [0] => HY000
    [1] => 1
    [2] => near "bogus": syntax error
)

Смотрите также

  • PDO::errorCode() - Возвращает код SQLSTATE результата последней операции с базой данных
  • PDOStatement::errorCode() - Определяет SQLSTATE код соответствующий последней операции объекта PDOStatement
  • PDOStatement::errorInfo() - Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement


Запускает SQL запрос на выполнение и возвращает количество строк, задействованных в ходе его выполнения

  • « PDO::errorInfo
  • PDO::getAttribute »
  • PHP Manual
  • PDO
  • Запускает SQL запрос на выполнение и возвращает количество строк, задействованных в ходе его выполнения

PDO::exec

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::exec — Запускает SQL запрос на выполнение и возвращает количество строк, задействованных в ходе его выполнения

Описание

public int PDO::exec ( string $statement )

PDO::exec() запускает SQL запрос на выполнение и возвращает количество строк, задействованых в ходе его выполнения.

PDO::exec() не возвращает результат выборки оператором SELECT. Если вам нужно выбрать данные этим оператором единожды в ходе выполнения программы, пользуйтесь методом PDO::query(). Если требуется запускать один и тот же запрос на выборку множество раз, лучше создать подготовленный запрос PDOStatement методом PDO::prepare(), а затем запускать его методом PDOStatement::execute() столько раз, сколько потребуется.

Список параметров

statement

SQL выражение, которое необходимо подготовить и запустить.

Данные внутри запроса должны быть правильно экранированы.

Возвращаемые значения

PDO::exec() возвращает количество строк, которые были модифицированы или удалены в ходе его выполнения. Если таких строк нет, PDO::exec() вернет 0.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

В этом примере разработчик допустил ошибку, полагаясь на возвращаемый результат PDO::exec(). В результате, если запрос отработал без ошибок, но не модифицировал ни одной строки, работа скрипта будет завершена функцией die():

<?php
$db->exec() or die(print_r($db->errorInfo(), true));
?>

Примеры

Пример #1 Выполнение DELETE запроса

Получение количества удаленных записей DELETE запросом без WHERE условий.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

/* Удаляем все записи из таблицы FRUIT */
$count = $dbh->exec("DELETE FROM fruit WHERE colour = 'red'");

/* Получим количество удаленных записей */
print("Удалено $count строк.\n");
?>

Результат выполнения данного примера:

Deleted 1 rows.

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDO::query() - Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение


Получить атрибут соединения с базой данных

  • « PDO::exec
  • PDO::getAvailableDrivers »
  • PHP Manual
  • PDO
  • Получить атрибут соединения с базой данных

PDO::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDO::getAttribute — Получить атрибут соединения с базой данных

Описание

public mixed PDO::getAttribute ( int $attribute )

Эта функция возвращает значение атрибута соединения с базой данных. Чтобы получить атрибуты 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

(PHP 5 >= 5.1.3, PHP 7, PECL pdo >= 1.0.3)

PDO::getAvailableDrivers — Возвращает массив доступных драйверов PDO

Описание

public static array PDO::getAvailableDrivers ( void )
array pdo_drivers ( void )

Эта функция возвращает все имеющиеся в настоящее время драйверы PDO, которые можно использовать в DSN-параметре PDO::__construct().

Возвращаемые значения

Функция PDO::getAvailableDrivers() возвращает массив имен драйверов PDO. Если нет драйверов, она возвращает пустой массив.

Примеры

Пример #1 Пример PDO::getAvailableDrivers()

<?php
print_r(PDO::getAvailableDrivers());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => mysql
    [1] => sqlite
)


Проверяет, начата ли транзакция

  • « PDO::getAvailableDrivers
  • PDO::lastInsertId »
  • PHP Manual
  • PDO
  • Проверяет, начата ли транзакция

PDO::inTransaction

(PHP 5 >= 5.3.3, Bundled pdo_pgsql, PHP 7)

PDO::inTransaction — Проверяет, начата ли транзакция

Описание

public bool PDO::inTransaction ( void )

Проверяет, активна ли в данный момент транзакция в драйвере. Этот метод работает только для тех драйверов БД, которые поддерживают транзакции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если транзакция в данный момент активна и FALSE, если нет.


Возвращает ID последней вставленной строки или последовательное значение

  • « PDO::inTransaction
  • PDO::prepare »
  • PHP Manual
  • PDO
  • Возвращает ID последней вставленной строки или последовательное значение

PDO::lastInsertId

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::lastInsertId — Возвращает ID последней вставленной строки или последовательное значение

Описание

public string PDO::lastInsertId ([ string $name = NULL ] )

Возвращает ID последней вставленной строки либо последнее значение, которое выдал объект последовательности. Что именно будет возвращено, зависит от нижележащего драйвера. Например, метод PDO_PGSQL требует задать имя объекта последовательности для параметра name.

Замечание:

В зависимости от PDO драйвера этот метод может вообще не выдать осмысленного результата, так как база данных может не поддерживать автоинкремент или последовательности.

Список параметров

name

Имя объекта последовательности, который должен выдать ID.

Возвращаемые значения

Если объект последовательности для name не задан, PDO::lastInsertId() вернет строку представляющую ID последней добавленной в базу записи.

Если же объект последовательности для name задан, PDO::lastInsertId() вернет строку представляющую последнее значение, полученное от этого объекта.

Если PDO драйвер не поддерживает эту возможность, PDO::lastInsertId() запишет IM001 в SQLSTATE.


Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект

  • « PDO::lastInsertId
  • PDO::query »
  • PHP Manual
  • PDO
  • Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект

PDO::prepare

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::prepare — Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект

Описание

public PDOStatement PDO::prepare ( string $statement [, array $driver_options = array() ] )

Подготавливает SQL запрос к базе данных к запуску посредством метода PDOStatement::execute(). Запрос может содержать именованные (:name) или неименованные (?) псевдопеременные, которые будут заменены реальными значениями во время запуска запроса на выполнение. Использовать одновременно и именованные, и неименованные псевдопеременные в одном запросе нельзя, необходимо выбрать что-то одно. Используйте псевдопеременные, чтобы привязать к запросу пользовательский ввод, не включайте данные, введенные пользователем, напрямую в запрос.

Вы должны подбирать уникальные имена псевдопеременных для каждого значения, которое необходимо передавать в запрос при вызове PDOStatement::execute(). Нельзя использовать одну псевдопеременную в запросе более одного раза, кроме варианта, когда включен режим эмуляции.

Замечание:

Псевдопеременные должны представлять только единичный объем данных. Не часть значения, ни служебное слово, ни имя поля, ни какую либо произвольную часть запроса. К примеру, вы не можете связать псевдопеременную с несколькими значениями для последующего вставления в конструкцию IN().

Вызов PDO::prepare() и PDOStatement::execute() для запросов, которые будут запускаться многократно с различными параметрами, повышает производительность приложения, так как позволяет драйверу кэшировать на клиенте и/или сервере план выполнения запроса и метаданные, а также помогает избежать SQL иньекций, так как нет необходимости экранировать передаваемые параметры.

Если драйвер не поддерживает подготавливаемые запросы, PDO умеет их эмулировать. Также, PDO может заменять псевдопеременные на то, что больше подходит, если, например, драйвер поддерживает только именованные или, наоборот, только неименованные маркеры.

Список параметров

statement

Это должен быть корректный SQL-запрос с точки зрения целевой СУБД.

driver_options

Этот массив содержит одну или более пар ключ=>значение для установки значений атрибутов объекта PDOStatement, который будет возвращен из этого метода. В основном, вы будете использовать этот массив для присвоения значения PDO::ATTR_CURSOR атрибуту PDO::CURSOR_SCROLL, чтобы получить прокручиваемый курсор. У некоторых драйверов могут быть свои специфические настройки, которые можно задать во время подготовки запроса.

Возвращаемые значения

Если СУБД успешно подготовила запрос, PDO::prepare() возвращает объект PDOStatement. Если подготовить запрос не удалось, PDO::prepare() возвращает FALSE или выбрасывает исключение PDOException (зависит от текущего режима обработки ошибок).

Замечание:

Эмулируемые подготовленные запросы не создаются на сервере баз данных, поэтому PDO::prepare() не может проверить правильность построенного запроса.

Примеры

Пример #1 Подготовка SQL запроса с именованными параметрами

<?php
/* Выполнение запроса с передачей ему массива параметров */
$sql = 'SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>

Пример #2 Подготовка SQL запроса с неименованными параметрами (символ '?')

<?php
/* Выполнение запроса с передачей ему массива параметров */
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array(150, 'red'));
$red = $sth->fetchAll();
$sth->execute(array(175, 'yellow'));
$yellow = $sth->fetchAll();
?>

Смотрите также

  • PDO::exec() - Запускает SQL запрос на выполнение и возвращает количество строк, задействованных в ходе его выполнения
  • PDO::query() - Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение


Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement

  • « PDO::prepare
  • PDO::quote »
  • PHP Manual
  • PDO
  • Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement

PDO::query

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDO::query — Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement

Описание

public PDOStatement PDO::query ( string $statement )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_COLUMN , int $colno )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_INTO , object $object )

PDO::query() выполняет SQL запрос без подготовки и возвращает результирующий набор (если есть) в виде объекта PDOStatement.

Если запрос будет запускаться многократно, для улучшения производительности приложения имеет смысл этот запрос один раз подготовить методом PDO::prepare(), а затем запускать на выполнение методом PDOStatement::execute() столько раз, сколько потребуется.

Если после выполнения предыдущего запроса вы не выбрали все данные из результирующего набора, следующий вызов PDO::query() может потерпеть неудачу. В таких случаях следует вызывать метод PDOStatement::closeCursor(), который освободит ресурсы базы данных занятые предыдущим объектом PDOStatement. После этого можно безопасно вызывать PDO::query().

Замечание:

Несмотря на то, что функция документирована, как принимающая один аргумент, вы можете передать дополнительные аргументы. Они будут обработаны, как если бы вы вызвали PDOStatement::setFetchMode() применительно к возвращаемому объекту.

Список параметров

statement

Текст SQL запроса для подготовки и выполнения.

Данные в запросе должны быть правильно экранированы.

Возвращаемые значения

PDO::query() возвращает объект PDOStatement или FALSE, если запрос выполнить не удалось.

Примеры

Пример #1 Демонстрация работы PDO::query

Приятной особенностью PDO::query() является то, что после выполнения SELECT запроса можно сразу работать с результирующим набором посредством курсора.

<?php
function getFruit($conn) {
    $sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
    foreach ($conn->query($sql) as $row) {
        print $row['name'] . "\t";
        print $row['color'] . "\t";
        print $row['calories'] . "\n";
    }
}
?>

Результат выполнения данного примера:

apple   red     150
banana  yellow  250
kiwi    brown   75
lemon   yellow  25
orange  orange  300
pear    green   150
watermelon      pink    90

Смотрите также

  • PDO::exec() - Запускает SQL запрос на выполнение и возвращает количество строк, задействованных в ходе его выполнения
  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение


Заключает строку в кавычки для использования в запросе

  • « PDO::query
  • PDO::rollBack »
  • PHP Manual
  • PDO
  • Заключает строку в кавычки для использования в запросе

PDO::quote

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.1)

PDO::quote — Заключает строку в кавычки для использования в запросе

Описание

public string PDO::quote ( string $string [, int $parameter_type = PDO::PARAM_STR ] )

PDO::quote() заключает строку в кавычки (если требуется) и экранирует специальные символы внутри строки подходящим для драйвера способом.

Если вы используете эту функцию для построения SQL запросов, настоятельно рекомендуется пользоваться методом PDO::prepare() для подготовки запроса с псевдопеременными вместо использования PDO::quote() для вставки данных введенных пользователем в SQL запрос. Подготавливаемые запросы с параметрами не только компактней, удобней, устойчивей к SQL инъекциям, но и работают быстрее, нежели вручную построенные запросы, так как и клиент и сервер могут кэшировать такие запросы в уже скомпилированном виде.

Не все PDO драйверы реализуют этот метод (особенно PDO_ODBC). Предполагается, что вместо него будут использоваться подготавливаемые запросы.

Предостережение

Безопасность: набор символов по умолчанию

Для корректной работы PDO::quote() набор символов должен быть задан либо на сервере, либо задаваться самим соединением с базой данных (это зависит от драйвера). Подробнее см. документацию к драйверу базы данных.

Список параметров

string

Экранируемая строка.

parameter_type

Представляет подсказку о типе данных первого параметра для драйверов, которые имеют альтернативные способы экранирования.

Возвращаемые значения

Возвращает экранированную строку, которую теоретически безопасно использовать в теле SQL запроса. Возвращает FALSE, если драйвер не поддерживает экранирование.

Примеры

Пример #1 Экранирование обычной строки

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* простая строка */
$string = 'Nice';
print "Неэкранированная строка: $string\n";
print "Экранированная строка: " . $conn->quote($string) . "\n";
?>

Результат выполнения данного примера:

Неэкранированная строка: Nice
Экранированная строка: 'Nice'

Пример #2 Экранирование небезопасной строки

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* небезопасная строка */
$string = 'Naughty \' string';
print "Неэкранированная строка: $string\n";
print "Экранированная строка:" . $conn->quote($string) . "\n";
?>

Результат выполнения данного примера:

Неэкранированная строка: Naughty ' string
Экранированная строка: 'Naughty '' string'

Пример #3 Экранирование сложной строки

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* сложная строка */
$string = "Co'mpl''ex \"st'\"ring";
print "Неэкранированная строка: $string\n";
print "Экранированная строка: " . $conn->quote($string) . "\n";
?>

Результат выполнения данного примера:

Неэкранированная строка: Co'mpl''ex "st'"ring
Экранированная строка: 'Co''mpl''''ex "st''"ring'

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение


Откат транзакции

  • « PDO::quote
  • PDO::setAttribute »
  • PHP Manual
  • PDO
  • Откат транзакции

PDO::rollBack

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::rollBack — Откат транзакции

Описание

public bool PDO::rollBack ( void )

Откатывает изменения в базе данных сделанные в рамках текущей транзакции, которая была создана методом PDO::beginTransaction().

Если в СУБД включен режим автофиксации изменений, эта функция восстановит этот режим после отката.

Некоторые СУБД, включая MySQL, автоматически неявно фиксируют изменения, когда встречаются операторы языка определения баз данных (DDL), выполняемые в рамках транзакции. Эта неявная фиксация делает невозможным откат других изменений, сделанных в рамках этой транзакции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Если активной транзакции нет, будет выброшено исключение PDOException.

Замечание: Если аттрибут PDO::ATTR_ERRMODE не будет выставлен в PDO::ERRMODE_EXCEPTION, будет вызвано исключение.

Примеры

Пример #1 Откат транзакции

В следующем примере создается транзакция и выполняются два запроса, которые модифицируют данные в базе, а затем база возвращается к исходному состоянию. В MySQL, тем не менее, выражение DROP TABLE автоматически фиксирует изменения, поэтому ничего откачено не будет.

<?php
/* Начинаем транзакцию, выключаем автофиксацию */
$dbh->beginTransaction();

/* Изменяем схему базы данных и данные в таблицах */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
    SET name = 'hamburger'");

/* Осознаем свою ошибку и откатываем транзакцию */
$dbh->rollBack();

/* База данных возвращается в режим автофиксации */
?>

Смотрите также

  • PDO::beginTransaction() - Инициализация транзакции
  • PDO::commit() - Фиксирует транзакцию
  • Транзакции и автофиксация изменений


Присвоение атрибута

  • « PDO::rollBack
  • PDOStatement »
  • PHP Manual
  • PDO
  • Присвоение атрибута

PDO::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO::setAttribute — Присвоение атрибута

Описание

public bool PDO::setAttribute ( int $attribute , mixed $value )

Присваивает атрибут PDO объекту. Некоторые основные атрибуты приведены ниже; отдельные драйверы могут имеет свои дополнительные атрибуты.

  • PDO::ATTR_CASE: Приводить имена столбцов к заданному регистру.

    • PDO::CASE_LOWER: Приводить имена столбцов к нижнему регистру.

    • PDO::CASE_NATURAL: Оставлять имена столбцов в том виде, в котором они выданы драйвером.

    • PDO::CASE_UPPER: Приводить имена столбцов к верхнему регистру.

  • PDO::ATTR_ERRMODE: Режим сообщений об ошибках.

    • PDO::ERRMODE_SILENT: Только установка кодов ошибок.

    • PDO::ERRMODE_WARNING: Вызывать E_WARNING.

    • PDO::ERRMODE_EXCEPTION: Выбрасывать исключения.

  • PDO::ATTR_ORACLE_NULLS (доступен для всех драйверов, не только для Oracle): Преобразование NULL в пустые строки.

    • PDO::NULL_NATURAL: Без преобразования.

    • PDO::NULL_EMPTY_STRING: Пустые строки преобразовывать в NULL.

    • PDO::NULL_TO_STRING: NULL преобразовывать в пустые строки.

  • PDO::ATTR_STRINGIFY_FETCHES: Преобразовывать числовые значения в строки во время выборки. Значение типа bool.

  • PDO::ATTR_STATEMENT_CLASS: Задает пользовательский класс производный от PDOStatement. Атрибут нельзя использовать с PDO, использующими постоянные соединения. Принимает массив array(string classname, array(mixed constructor_args)).

  • PDO::ATTR_TIMEOUT: Задает таймаут в секундах. Не все драйверы поддерживают эту опцию. Также назначение этого таймаута может отличаться в разных драйверах. Например, sqlite будет ждать это количество времени получения блокировки на запись. А другие драйверы могут использовать его, как таймаут подключения или чтения. Атрибут принимает значение типа int.

  • PDO::ATTR_AUTOCOMMIT (доступен в OCI, Firebird и MySQL): Требуется ли автоматическая фиксация каждого отдельного выражения в запросе.

  • PDO::ATTR_EMULATE_PREPARES Включение или выключение эмуляции подготавливаемых запросов. Некоторые драйверы не поддерживают подготавливаемые запросы, либо их поддержка ограничена. Эта настройка указывает PDO всегда эмулировать подготавливаемые запросы (если TRUE и эмуляция поддерживается драйвером) или пытаться использовать родные средства драйвера (если FALSE). Если драйвер не сможет подготовить запрос, эта настройка сбросится в режим эмуляции. Атрибут принимает значение типа bool.

  • PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (доступен в MySQL): Использовать буферизованные запросы.

  • PDO::ATTR_DEFAULT_FETCH_MODE: Задает режим выборки данных по умолчанию. Описание возможных режимов приведено в документации к методу PDOStatement::fetch().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Класс PDOStatement

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)

Введение

Представляет подготовленный запрос к базе данных, а после выполнения запроса соответствующий результирующий набор.

Обзор классов

PDOStatement implements Traversable {
/* Свойства */
readonly string $queryString;
/* Методы */
public bool bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] )
public bool bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )
public bool bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] )
public bool closeCursor ( void )
public int columnCount ( void )
public void debugDumpParams ( void )
public string errorCode ( void )
public array errorInfo ( void )
public bool execute ([ array $input_parameters ] )
public mixed fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )
public array fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
public mixed fetchColumn ([ int $column_number = 0 ] )
public mixed fetchObject ([ string $class_name = "stdClass" [, array $ctor_args ]] )
public mixed getAttribute ( int $attribute )
public array getColumnMeta ( int $column )
public bool nextRowset ( void )
public int rowCount ( void )
public bool setAttribute ( int $attribute , mixed $value )
public bool setFetchMode ( int $mode )
}

Свойства

queryString

Использованная строка запроса.

Содержание

  • PDOStatement::bindColumn — Связывает столбец с PHP переменной
  • PDOStatement::bindParam — Привязывает параметр запроса к переменной
  • PDOStatement::bindValue — Связывает параметр с заданным значением
  • PDOStatement::closeCursor — Закрывает курсор, переводя запрос в состояние готовности к повторному запуску
  • PDOStatement::columnCount — Возвращает количество столбцов в результирующем наборе
  • PDOStatement::debugDumpParams — Вывод информации о подготовленной SQL команде в целях отладки
  • PDOStatement::errorCode — Определяет SQLSTATE код соответствующий последней операции объекта PDOStatement
  • PDOStatement::errorInfo — Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement
  • PDOStatement::execute — Запускает подготовленный запрос на выполнение
  • PDOStatement::fetch — Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchAll — Возвращает массив, содержащий все строки результирующего набора
  • PDOStatement::fetchColumn — Возвращает данные одного столбца следующей строки результирующего набора
  • PDOStatement::fetchObject — Извлекает следующую строку и возвращает ее в виде объекта
  • PDOStatement::getAttribute — Получение значения атрибута запроса PDOStatement
  • PDOStatement::getColumnMeta — Возвращает метаданные столбца в результирующей таблице
  • PDOStatement::nextRowset — Переход к следующему набору строк в результате запроса
  • PDOStatement::rowCount — Возвращает количество строк, модифицированных последним SQL запросом
  • PDOStatement::setAttribute — Присваивает атрибут объекту PDOStatement
  • PDOStatement::setFetchMode — Задает режим выборки по умолчанию для объекта запроса


Связывает столбец с PHP переменной

  • « PDOStatement
  • PDOStatement::bindParam »
  • PHP Manual
  • PDOStatement
  • Связывает столбец с PHP переменной

PDOStatement::bindColumn

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::bindColumn — Связывает столбец с PHP переменной

Описание

public bool PDOStatement::bindColumn ( mixed $column , mixed &$param [, int $type [, int $maxlen [, mixed $driverdata ]]] )

PDOStatement::bindColumn() привязывает переменную к заданному столбцу в результирующем наборе запроса. Каждый вызов PDOStatement::fetch() или PDOStatement::fetchAll() будет обновлять все переменные, задавать им значения столбцов, с которыми они связаны.

Замечание:

В связи с тем, что информация о столбцах результирующего набора запроса не всегда доступна объекту PDO, пока запрос не будет запущен, приложениям следует вызывать этот метод после вызова PDOStatement::execute().

Однако, при работе с PgSQL драйвером, когда привязывается столбец с LOB данными, приложению необходимо вызывать этот метод до вызова PDOStatement::execute(). В противном случае идентификатор большого объекта OID будет иметь тип integer.

Список параметров

column

Номер столбца (начиная с 1) или его имя в результирующем наборе запроса. Используя имя столбца, будьте внимательны, имя должно быть в том же регистре, в каком оно выдано драйвером.

param

Имя PHP переменной, к которой требуется привязать столбец.

type

Тип данных параметра, заданный одной из констант PDO::PARAM_*.

maxlen

Подсказка для предварительного выделения памяти под переменную.

driverdata

Дополнительные параметры для драйвера.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Связывание результирующего набора с PHP переменными

Привязывание столбцов результирующего набора к PHP переменным является эффективным способом сразу сделать данные каждой строки набора доступными приложению. В следующем примере показано, как PDO позволяет привязывать переменные и получать данные столбцов, принимая различные настройки и умолчания.

<?php
function readData($dbh) {
  $sql = 'SELECT name, colour, calories FROM fruit';
  try {
    $stmt = $dbh->prepare($sql);
    $stmt->execute();

    /* Связывание по номеру столбца */
    $stmt->bindColumn(1, $name);
    $stmt->bindColumn(2, $colour);

    /* Связывание по имени столбца */
    $stmt->bindColumn('calories', $cals);

    while ($row = $stmt->fetch(PDO::FETCH_BOUND)) {
      $data = $name . "\t" . $colour . "\t" . $cals . "\n";
      print $data;
    }
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
readData($dbh);
?>

Результат выполнения данного примера:

apple   red     150
banana  yellow  175
kiwi    green   75
orange  orange  150
mango   red     200
strawberry      red     25

Смотрите также

  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение
  • PDOStatement::fetch() - Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchAll() - Возвращает массив, содержащий все строки результирующего набора
  • PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора


Привязывает параметр запроса к переменной

  • « PDOStatement::bindColumn
  • PDOStatement::bindValue »
  • PHP Manual
  • PDOStatement
  • Привязывает параметр запроса к переменной

PDOStatement::bindParam

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::bindParam — Привязывает параметр запроса к переменной

Описание

public bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )

Связывает PHP переменную с именованным или неименованным параметром подготавливаемого SQL запроса. В отличие от PDOStatement::bindValue(), переменная привязывается по ссылке, и ее значение будет вычисляться во время вызова PDOStatement::execute().

В большинстве случаев в подготавливаемых запросах используются только входные параметры, то есть при построении запроса доступ к ним осуществляется только в режиме чтения. Тем не менее, некоторые драйверы позволяют запускать хранимые процедуры, которые, в свою очередь, могут возвращать данные посредством выходных параметров. Зачастую, такие параметры используются одновременно как входные и как выходные.

Список параметров

parameter

Идентификатор параметра. Для подготавливаемых запросов с именованными параметрами это будет имя в виде :name. Если используются неименованные параметры (знаки вопроса ?) это будет позиция псевдопеременной в запросе (начиная с 1).

variable

Имя PHP переменной, которую требуется привязать к параметру SQL запроса.

data_type

Явно заданный тип данных параметра. Тип задается одной из констант PDO::PARAM_*. Если параметр используется в том числе для вывода информации из хранимой процедуры, к значению аргумента data_type необходимо добавить PDO::PARAM_INPUT_OUTPUT, используя оператор побитовое ИЛИ.

length

Размер типа данных. Чтобы указать, что параметр используется для вывода данных из хранимой процедуры, необходимо явно задать его размер.

driver_options

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Выполнение подготовленного запроса с именованными псевдопеременными

<?php
/* Выполнение запроса с привязкой PHP переменных */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Пример #2 Выполнение подготовленного запроса с неименованными псевдопеременными (?)

<?php
/* Выполнение запроса с привязкой PHP переменных */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Пример #3 Вызов хранимой процедуры с INOUT параметром

<?php
/* Вызов хранимой процедуры с INOUT параметром */
$colour = 'red';
$sth = $dbh->prepare('CALL puree_fruit(?)');
$sth->bindParam(1, $colour, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 12);
$sth->execute();
print("After pureeing fruit, the colour is: $colour");
?>

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение
  • PDOStatement::bindValue() - Связывает параметр с заданным значением


Связывает параметр с заданным значением

  • « PDOStatement::bindParam
  • PDOStatement::closeCursor »
  • PHP Manual
  • PDOStatement
  • Связывает параметр с заданным значением

PDOStatement::bindValue

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)

PDOStatement::bindValue — Связывает параметр с заданным значением

Описание

public bool PDOStatement::bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] )

Задает значение именованной или неименованной псевдопеременной в подготовленном SQL запросе.

Список параметров

parameter

Идентификатор параметра запроса. Для подготавливаемых запросов с именованными параметрами это будет имя в виде :name. Если используются неименованные параметры (знаки вопроса ?) это будет позиция псевдопеременной в запросе (начиная с 1).

value

Значение, которое требуется привязать к параметру.

data_type

Явно заданный тип данных параметра. Тип задается одной из констант PDO::PARAM_*.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Выполнение подготовленного запроса с именованными псевдопеременными

<?php
/* Выполнение запроса с привязкой PHP переменных */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindValue(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR);
$sth->execute();
?>

Пример #2 Выполнение подготовленного запроса с неименованными псевдопеременными (?)

<?php
/* Выполнение запроса с привязкой PHP переменных */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindValue(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();
?>

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение
  • PDOStatement::bindParam() - Привязывает параметр запроса к переменной


Закрывает курсор, переводя запрос в состояние готовности к повторному запуску

  • « PDOStatement::bindValue
  • PDOStatement::columnCount »
  • PHP Manual
  • PDOStatement
  • Закрывает курсор, переводя запрос в состояние готовности к повторному запуску

PDOStatement::closeCursor

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::closeCursor — Закрывает курсор, переводя запрос в состояние готовности к повторному запуску

Описание

public bool PDOStatement::closeCursor ( void )

PDOStatement::closeCursor() освобождает соединение с сервером, давая возможность запускать другие SQL запросы. Метод оставляет запрос в состоянии готовности к повторному запуску.

Этот метод полезен при использовании драйверов баз данных, которые не позволяют запустить PDOStatement, пока предыдущий объект PDOStatement не выберет все данные из результирующего набора. Если это ограничение распространяется на ваш драйвер, будет вызвана ошибка нарушения последовательности запросов (out-of-sequence error).

PDOStatement::closeCursor() может быть реализован как дополнительный метод конкретного драйвера (позволяющий добиться максимальной эффективности работы), либо как внутренний метод PDO, если такой функции в драйвере нет. Реализация внутреннего метода PDO семантически схожа с приведенной ниже:

<?php
do {
    while ($stmt->fetch())
        ;
    if (!$stmt->nextRowset())
        break;
} while (true);
?>

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования PDOStatement::closeCursor()

В приведенном примере, объект PDOStatement $stmt возвращает несколько строк, однако приложение считывает только первую из них, оставляя объект PDOStatement в состоянии, когда есть еще невыбранные строки. Чтобы быть уверенным в том, что приложение будет работать со всеми драйверами баз данных, автор добавил вызов метода PDOStatement::closeCursor() объекта $stmt перед тем как запустить другой запрос PDOStatement $otherStmt.

<?php
/* Создание объекта PDOStatement */
$stmt = $dbh->prepare('SELECT foo FROM bar');

/* Создание другого объекта PDOStatement */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');

/* запуск первого запроса */
$stmt->execute();

/* выборка только первой строки результирующего набора первого запроса */
$stmt->fetch();

/* следующий вызов closeCursor() может быть обязательным для некоторых драйверов */
$stmt->closeCursor();

/* теперь можно запускать второй запрос */
$otherStmt->execute();
?>

Смотрите также

  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение


Возвращает количество столбцов в результирующем наборе

  • « PDOStatement::closeCursor
  • PDOStatement::debugDumpParams »
  • PHP Manual
  • PDOStatement
  • Возвращает количество столбцов в результирующем наборе

PDOStatement::columnCount

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::columnCount — Возвращает количество столбцов в результирующем наборе

Описание

public int PDOStatement::columnCount ( void )

Используйте PDOStatement::columnCount(), чтобы узнать количество столбцов в результирующем наборе, который представляет объект PDOStatement.

Если объект PDOStatement был возвращен из метода PDO::query(), число столбцов можно узнать сразу же.

Если объект PDOStatement был возвращен из метода PDO::prepare(), точное количество столбцов можно будет узнать только после запуска метода PDOStatement::execute().

Возвращаемые значения

Возвращает количество столбцов в результирующем наборе запроса PDOStatement, даже если он пуст. Если результирующего набора нет, PDOStatement::columnCount() возвращает 0.

Примеры

Пример #1 Подсчет столбцов

В этом примере показано, как PDOStatement::columnCount() работает в случае наличия и отсутствия результирующего набора.

<?php
$dbh = new PDO('odbc:sample', 'db2inst1', 'ibmdb2');

$sth = $dbh->prepare("SELECT name, colour FROM fruit");

/* Подсчет количества столбцов в (несуществующем) результирующем наборе */
$colcount = $sth->columnCount();
print("Перед вызовом execute(), в результирующем наборе $colcount столбцов (должно быть 0)\n");

$sth->execute();

/* Подсчет количества столбцов в результирующем наборе */
$colcount = $sth->columnCount();
print("После вызова execute(), в результирующем наборе $colcount столбцов (должно быть 2)\n");

?>

Результат выполнения данного примера:

Перед вызовом execute(), в результирующем наборе 0 столбцов (должно быть 0)
После вызова execute(), в результирующем наборе 2 столбцов (должно быть 2)

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение
  • PDOStatement::rowCount() - Возвращает количество строк, модифицированных последним SQL запросом


Вывод информации о подготовленной SQL команде в целях отладки

  • « PDOStatement::columnCount
  • PDOStatement::errorCode »
  • PHP Manual
  • PDOStatement
  • Вывод информации о подготовленной SQL команде в целях отладки

PDOStatement::debugDumpParams

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::debugDumpParams — Вывод информации о подготовленной SQL команде в целях отладки

Описание

public void PDOStatement::debugDumpParams ( void )

Выводит информацию о подготовленном запросе в выходной поток. Будет выводиться текст используемого SQL запроса, количество задействованных параметров (Params), список параметров с их именами ключей или индексами, их именами, индексами в запросе (если поддерживается в драйвере PDO, иначе -1), типом (param_type) в виде целого числа, и значение is_param типа boolean.

Это отладочная функция, которая направляет данные на стандартный вывод.

Подсказка

Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в string.

Эта функция выведет информацию о параметрах запроса, существующих на момент вызова. Дополнительные параметры не хранятся в запросе, поэтому отображены не будут.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования PDOStatement::debugDumpParams() с именованными параметрами

<?php
/* Выполнение запроса с привязкой PHP переменных */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', $colour, PDO::PARAM_STR, 12);
$sth->execute();

$sth->debugDumpParams();

?>

Результат выполнения данного примера:

SQL: [96] SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour
Params:  2
Key: Name: [9] :calories
paramno=-1
name=[9] ":calories"
is_param=1
param_type=1
Key: Name: [7] :colour
paramno=-1
name=[7] ":colour"
is_param=1
param_type=2

Пример #2 Пример использования PDOStatement::debugDumpParams() с неименованными (?) параметрами

<?php

/* Выполнение запроса с привязкой PHP переменных */
$calories = 150;
$colour = 'red';
$name = 'apple';

$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindValue(2, $colour, PDO::PARAM_STR);
$sth->execute();

$sth->debugDumpParams();

?>

Результат выполнения данного примера:

SQL: [82] SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?
Params:  2
Key: Position #0:
paramno=0
name=[0] ""
is_param=1
param_type=1
Key: Position #1:
paramno=1
name=[0] ""
is_param=1
param_type=2

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDOStatement::bindParam() - Привязывает параметр запроса к переменной
  • PDOStatement::bindValue() - Связывает параметр с заданным значением


Определяет SQLSTATE код соответствующий последней операции объекта PDOStatement

  • « PDOStatement::debugDumpParams
  • PDOStatement::errorInfo »
  • PHP Manual
  • PDOStatement
  • Определяет SQLSTATE код соответствующий последней операции объекта PDOStatement

PDOStatement::errorCode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::errorCode — Определяет SQLSTATE код соответствующий последней операции объекта PDOStatement

Описание

public string PDOStatement::errorCode ( void )

Возвращаемые значения

Метод идентичен PDO::errorCode() за исключением того, что PDOStatement::errorCode() возвращает коды ошибок, произошедших в результате работы объекта PDOStatement.

Примеры

Пример #1 Получение кода SQLSTATE

<?php
/* Спровоцируем ошибку -- таблицы BONES не существует */
$err = $dbh->prepare('SELECT skull FROM bones');
$err->execute();

echo "\nPDOStatement::errorCode(): ";
print $err->errorCode();
?>

Результат выполнения данного примера:

PDOStatement::errorCode(): 42S02

Смотрите также

  • PDO::errorCode() - Возвращает код SQLSTATE результата последней операции с базой данных
  • PDO::errorInfo() - Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
  • PDOStatement::errorInfo() - Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement


Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement

  • « PDOStatement::errorCode
  • PDOStatement::execute »
  • PHP Manual
  • PDOStatement
  • Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement

PDOStatement::errorInfo

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::errorInfo — Получение расширенной информации об ошибке, произошедшей в результате работы объекта PDOStatement

Описание

public array PDOStatement::errorInfo ( void )

Возвращаемые значения

PDOStatement::errorInfo() возвращает массив с информацией об ошибке, соответствующей последней операции объекта PDOStatement. Массив состоит из следующих полей:

Элемент | Информация
0 | Код ошибки SQLSTATE (пятисимвольный код состоящий из букв и цифр, определенный в стандарте ANSI SQL).
1 | Код ошибки, возвращаемый драйвером.
2 | Сообщение об ошибке, выданное драйвером.

Примеры

Пример #1 Вывод полей errorInfo() при PDO_ODBC подключении к DB2

<?php
/* Спровоцируем ошибку -- таблицы BONES не существует */
$sth = $dbh->prepare('SELECT skull FROM bones');
$sth->execute();

echo "\nPDOStatement::errorInfo():\n";
$arr = $sth->errorInfo();
print_r($arr);
?>

Результат выполнения данного примера:

PDOStatement::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

Смотрите также

  • PDO::errorCode() - Возвращает код SQLSTATE результата последней операции с базой данных
  • PDO::errorInfo() - Получает расширенную информацию об ошибке, произошедшей в ходе последнего обращения к базе данных
  • PDOStatement::errorCode() - Определяет SQLSTATE код соответствующий последней операции объекта PDOStatement


Запускает подготовленный запрос на выполнение

  • « PDOStatement::errorInfo
  • PDOStatement::fetch »
  • PHP Manual
  • PDOStatement
  • Запускает подготовленный запрос на выполнение

PDOStatement::execute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::execute — Запускает подготовленный запрос на выполнение

Описание

public bool PDOStatement::execute ([ array $input_parameters ] )

Запускает подготовленный запрос. Если запрос содержит метки параметров (псевдопеременные), вы должны либо:

  • вызвать PDOStatement::bindParam() и/или PDOStatement::bindValue(), чтобы связать эти маркеры, соответственно, с переменными или значениями. Связанные переменные передают свои значения как входные данные и получают выходные значения

  • или передать массив значений только на вход

Список параметров

input_parameters

Массив значений, содержащий столько элементов, сколько параметров заявлено в SQL запросе. Все значения будут приняты, как имеющие тип PDO::PARAM_STR.

Нельзя привязать несколько значений к одному параметру; например, нельзя привязать два значения к именованному параметру в выражении IN().

Нельзя привязать больше значений, чем заявлено в запросе; если в массиве input_parameters больше элементов, чем заявлено в SQL запросе методом PDO::prepare(), выполнение запроса завершится неудачей, и будет вызвана ошибка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.0 | Ключи массива input_parameters должны совпадать с именами параметров, заявленными в SQL запросе. До PHP 5.2.0 на это не обращалось внимания.

Примеры

Пример #1 Выполнение подготовленного запроса с привязкой переменных и значений

<?php
/* Выполнение подготовленного запроса с привязкой переменных и значений */
$calories = 150;
$colour = 'gre';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour LIKE :colour');
$sth->bindParam(':calories', $calories, PDO::PARAM_INT);
$sth->bindValue(':colour', "%{$colour}%");
$sth->execute();
?>

Пример #2 Выполнение подготовленного запроса с передачей массива входных значений (именованные псевдопеременные)

<?php
/* Выполнение подготовленного запроса с передачей массива входных значений */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour');
$sth->execute(array(':calories' => $calories, ':colour' => $colour));
?>

Пример #3 Выполнение подготовленного запроса с передачей массива входных значений (неименованные псевдопеременные - знаки вопроса (?))

<?php
/* Выполнение подготовленного запроса с передачей массива входных значений */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->execute(array($calories, $colour));
?>

Пример #4 Выполнение подготовленного запроса с привязкой значений к неименованным псевдопеременным (знакам вопроса)

<?php
/* Выполнение подготовленного запроса с привязкой PHP переменных */
$calories = 150;
$colour = 'red';
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');
$sth->bindParam(1, $calories, PDO::PARAM_INT);
$sth->bindParam(2, $colour, PDO::PARAM_STR, 12);
$sth->execute();
?>

Пример #5 Выполнение подготовленного запроса с использованием массива для IN выражения

<?php
/* Выполнение подготовленного запроса с использованием массива для IN выражения */
$params = array(1, 21, 63, 171);
/* Создаем строку из знаков вопроса (?) в количестве равном количеству параметров */
$place_holders = implode(',', array_fill(0, count($params), '?'));

/*
    В этом примере подготавливается запрос с достаточным количеством неименованных
    псевдопеременных (?) для каждого значения из массива $params. Когда запрос будет
    выполняться, эти знаки вопроса будут заменены на элементы массива. Это не то же
    самое, что использовать PDOStatement::bindParam(), где привязка осуществлялась по
    ссылке на переменную. PDOStatement::execute() связывает параметры по значению.
*/
$sth = $dbh->prepare("SELECT id, name FROM contacts WHERE id IN ($place_holders)");
$sth->execute($params);
?>

Примечания

Замечание:

Для некоторых драйверов необходимо закрывать курсор, прежде чем выполнять следующий запрос.

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDOStatement::bindParam() - Привязывает параметр запроса к переменной
  • PDOStatement::fetch() - Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchAll() - Возвращает массив, содержащий все строки результирующего набора
  • PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора


Извлечение следующей строки из результирующего набора

  • « PDOStatement::execute
  • PDOStatement::fetchAll »
  • PHP Manual
  • PDOStatement
  • Извлечение следующей строки из результирующего набора

PDOStatement::fetch

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::fetch — Извлечение следующей строки из результирующего набора

Описание

public mixed PDOStatement::fetch ([ int $fetch_style [, int $cursor_orientation = PDO::FETCH_ORI_NEXT [, int $cursor_offset = 0 ]]] )

Извлекает следующую строку из результирующего набора объекта PDOStatement. Параметр fetch_style определяет, в каком виде PDO вернет эту строку.

Список параметров

fetch_style

Определяет, в каком виде следующая строка будет возвращена в вызывающий метод. Это может быть одна из констант PDO::FETCH_*. По умолчанию PDO::ATTR_DEFAULT_FETCH_MODE (что равносильно PDO::FETCH_BOTH).

  • PDO::FETCH_ASSOC: возвращает массив, индексированный именами столбцов результирующего набора

  • PDO::FETCH_BOTH (по умолчанию): возвращает массив, индексированный именами столбцов результирующего набора, а также их номерами (начиная с 0)

  • PDO::FETCH_BOUND: возвращает TRUE и присваивает значения столбцов результирующего набора переменным PHP, которые были привязаны к этим столбцам методом PDOStatement::bindColumn()

  • PDO::FETCH_CLASS: создает и возвращает объект запрошенного класса, присваивая значения столбцов результирующего набора именованным свойствам класса, и следом вызывает конструктор, если не задан PDO::FETCH_PROPS_LATE. Если fetch_style включает в себя атрибут PDO::FETCH_CLASSTYPE (например, PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE), то имя класса, от которого нужно создать объект, будет взято из первого столбца.

  • PDO::FETCH_INTO: обновляет существующий объект запрошенного класса, присваивая значения столбцов результирующего набора именованным свойствам объекта

  • PDO::FETCH_LAZY: комбинирует PDO::FETCH_BOTH и PDO::FETCH_OBJ, создавая новый объект со свойствами, соответствующими именам столбцов результирующего набора

  • PDO::FETCH_NAMED: возвращает массив такого же вида, как и PDO::FETCH_ASSOC, но, если есть несколько полей с одинаковым именем, то значением с этим ключом будет массив со всеми значениями из рядов, в которых это поле указано.

  • PDO::FETCH_NUM: возвращает массив, индексированный номерами столбцов (начиная с 0)

  • PDO::FETCH_OBJ: создает анонимный объект со свойствами, соответствующими именам столбцов результирующего набора

  • PDO::FETCH_PROPS_LATE: если используется с PDO::FETCH_CLASS, конструктор класса будет вызван перед назначением свойств из значений столбцов.

cursor_orientation

Для объектов PDOStatement представляющих прокручиваемый курсор, этот параметр определяет, какая строка будет возвращаться в вызывающий метод. Значением параметра должна быть одна из констант PDO::FETCH_ORI_*, по умолчанию PDO::FETCH_ORI_NEXT. Чтобы запросить прокручиваемый курсор для запроса PDOStatement, необходимо задать атрибут PDO::ATTR_CURSOR со значением PDO::CURSOR_SCROLL во время подготовки запроса методом PDO::prepare().

offset

Для объектов PDOStatement, представляющих прокручиваемый курсор, параметр cursor_orientation которых принимает значение PDO::FETCH_ORI_ABS, эта величина означает абсолютный номер строки, которую необходимо извлечь из результирующего набора.

Для объектов PDOStatement, представляющих прокручиваемый курсор, параметр cursor_orientation которых принимает значение PDO::FETCH_ORI_REL, эта величина указывает, какая строка относительно текущего положения курсора будет извлечена функцией PDOStatement::fetch().

Возвращаемые значения

В случае успешного выполнения функции возвращаемое значение зависит от режима выборки. В случае неудачи, функция всегда возвращает FALSE.

Примеры

Пример #1 Извлечение строк в разных режимах выборки

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Примеры различных режимов работы PDOStatement::fetch */
print("PDO::FETCH_ASSOC: ");
print("Возвращаем следующую строку в виде массива, индексированного именами столбцов\n");
$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
print("\n");

print("PDO::FETCH_BOTH: ");
print("Возвращаем следующую строку в виде массива, индексированного как именами столбцов, так и их номерами\n");
$result = $sth->fetch(PDO::FETCH_BOTH);
print_r($result);
print("\n");

print("PDO::FETCH_LAZY: ");
print("Возвращаем следующую строку в виде анонимного объекта со свойствами, соответствующими столбцам\n");
$result = $sth->fetch(PDO::FETCH_LAZY);
print_r($result);
print("\n");

print("PDO::FETCH_OBJ: ");
print("Возвращаем следующую строку в виде анонимного объекта со свойствами, соответствующими столбцам\n");
$result = $sth->fetch(PDO::FETCH_OBJ);
print $result->name;
print("\n");
?>

Результат выполнения данного примера:

PDO::FETCH_ASSOC: Возвращаем следующую строку в виде массива, индексированного именами столбцов
Array
(
    [name] => apple
    [colour] => red
)

PDO::FETCH_BOTH: Возвращаем следующую строку в виде массива, индексированного как именами столбцов, так и их номерами
Array
(
    [name] => banana
    [0] => banana
    [colour] => yellow
    [1] => yellow
)

PDO::FETCH_LAZY: Возвращаем следующую строку в виде анонимного объекта со свойствами, соответствующими столбцам
PDORow Object
(
    [name] => orange
    [colour] => orange
)

PDO::FETCH_OBJ: Возвращаем следующую строку в виде анонимного объекта со свойствами, соответствующими столбцам
kiwi

Пример #2 Выборка строк средствами прокручиваемого курсора

<?php
function readDataForwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY BET';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
    $stmt->execute();
    while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    }
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}
function readDataBackwards($dbh) {
  $sql = 'SELECT hand, won, bet FROM mynumbers ORDER BY bet';
  try {
    $stmt = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_LAST);
    do {
      $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
      print $data;
    } while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_PRIOR));
    $stmt = null;
  }
  catch (PDOException $e) {
    print $e->getMessage();
  }
}

print "Читаем в прямой последовательности:\n";
readDataForwards($conn);

print "Читаем в обратной последовательности:\n";
readDataBackwards($conn);
?>

Результат выполнения данного примера:

Читаем в прямой последовательности:
21    10    5
16    0     5
19    20    10

Читаем в обратной последовательности:
19    20    10
16    0     5
21    10    5

Пример #3 Порядок конструкторов

Если объекты забираются с помощью PDO::FETCH_CLASS, сначала присваиваются свойства объекта, а следом вызывается конструктор объекта. Если также задано PDO::FETCH_PROPS_LATE, этот порядок меняется на обратный.

<?php
class Person
{
    private $name;

    public function __construct()
    {
        $this->tell();
    }

    public function tell()
    {
        if (isset($this->name)) {
            echo "I am {$this->name}.\n";
        } else {
            echo "I don't have a name yet.\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();
?>

Результатом выполнения данного примера будет что-то подобное:

I am Alice.
I am Alice.
I don't have a name yet.
I am Bob.

Смотрите также

  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение
  • PDOStatement::fetchAll() - Возвращает массив, содержащий все строки результирующего набора
  • PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора
  • PDOStatement::fetchObject() - Извлекает следующую строку и возвращает ее в виде объекта
  • PDOStatement::setFetchMode() - Задает режим выборки по умолчанию для объекта запроса


Возвращает массив, содержащий все строки результирующего набора

  • « PDOStatement::fetch
  • PDOStatement::fetchColumn »
  • PHP Manual
  • PDOStatement
  • Возвращает массив, содержащий все строки результирующего набора

PDOStatement::fetchAll

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::fetchAll — Возвращает массив, содержащий все строки результирующего набора

Описание

public array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )

Список параметров

fetch_style

Определяет содержимое возвращаемого массива. Подробней можно узнать из документации к методу PDOStatement::fetch(). По умолчанию параметр принимает значение PDO::ATTR_DEFAULT_FETCH_MODE (которое в свою очередь имеет умолчание PDO::FETCH_BOTH)

Чтобы извлечь значения только одного столбца, передайте в качестве значения этого параметра константу PDO::FETCH_COLUMN. С помощью параметра column-index можно задать столбец, из которого требуется извлечь данные.

Если требуется извлечь только уникальные строки одного столбца, нужно передать побитовое ИЛИ констант PDO::FETCH_COLUMN и PDO::FETCH_UNIQUE.

Чтобы получить ассоциативный массив строк сгруппированный по значениям определенного столбца, нужно передать побитовое ИЛИ констант PDO::FETCH_COLUMN и PDO::FETCH_GROUP.

fetch_argument

Смысл этого аргумента зависит от значения параметра fetch_style:

  • PDO::FETCH_COLUMN: Будет возвращен указанный столбец. Индексация столбцов начинается с 0.

  • PDO::FETCH_CLASS: Будет создан и возвращен новый объект указанного класса. Свойствам объекта будут присвоены значения столбцов, имена которых совпадут с именами свойств.

  • PDO::FETCH_FUNC: Будут возвращены результаты вызовов указанной функции. Данные каждой строки результирующего набора будут передаваться в эту функцию.

ctor_args

Аргументы конструктора класса. Для случаев, когда параметру fetch_style присвоено значение PDO::FETCH_CLASS.

Возвращаемые значения

PDOStatement::fetchAll() возвращает массив, содержащий все оставшиеся строки результирующего набора. Массив представляет каждую строку либо в виде массива значений одного столбца, либо в виде объекта, имена свойств которого совпадают с именами столбцов.

Использование этого метода для извлечения строк больших результирующих наборов может пагубно сказаться на производительности системы и сетевых ресурсов. Вместо извлечения всех данных и их обработки в PHP рекомендуется использовать встроенные средства СУБД. Например, использование выражений WHERE и ORDER BY языка SQL может уменьшить размеры результирующего набора.

Примеры

Пример #1 Извлечение всех оставшихся строк результирующего набора

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Извлечение всех оставшихся строк результирующего набора */
print("Извлечение всех оставшихся строк результирующего набора:\n");
$result = $sth->fetchAll();
print_r($result);
?>

Результатом выполнения данного примера будет что-то подобное:

Извлечение всех оставшихся строк результирующего набора:
Array
(
    [0] => Array
        (
            [name] => pear
            [0] => pear
            [colour] => green
            [1] => green
        )

    [1] => 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) "green"
  }
}

Пример #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"
  }
}

Пример #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"
}

Смотрите также

  • PDO::query() - Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement
  • PDOStatement::fetch() - Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора
  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDOStatement::setFetchMode() - Задает режим выборки по умолчанию для объекта запроса


Возвращает данные одного столбца следующей строки результирующего набора

  • « PDOStatement::fetchAll
  • PDOStatement::fetchObject »
  • PHP Manual
  • PDOStatement
  • Возвращает данные одного столбца следующей строки результирующего набора

PDOStatement::fetchColumn

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)

PDOStatement::fetchColumn — Возвращает данные одного столбца следующей строки результирующего набора

Описание

public mixed PDOStatement::fetchColumn ([ int $column_number = 0 ] )

Возвращает данные одного столбца следующей строки результирующей таблицы. Если в результате запроса строк больше нет, функция вернет FALSE.

Замечание:

Не следует использовать PDOStatement::fetchColumn() для получения булевых полей, так как невозможно отличить значение FALSE от отсутствия оставшихся строк результата. Вместо этого используйте метод PDOStatement::fetch().

Список параметров

column_number

Номер столбца, данные которого необходимо извлечь. Нумерация начинается с 0. Если параметр не задан, PDOStatement::fetchColumn() выберет данные первого столбца.

Возвращаемые значения

PDOStatement::fetchColumn() возвращает значение одного столбца следующей строки результирующего набора или FALSE, если больше нет строк.

Внимание

При использовании PDOStatement::fetchColumn() для извлечения данных из результирующего набора невозможно получить значение другого столбца той же строки.

Примеры

Пример #1 Получение значения первого столбца следующей строки

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

print("Получение значения первого столбца первой строки:\n");
$result = $sth->fetchColumn();
print("name = $result\n");

print("Получение значения второго столбца второй строки:\n");
$result = $sth->fetchColumn(1);
print("colour = $result\n");
?>

Результат выполнения данного примера:

Получение значения первого столбца первой строки:
name = lemon
Получение значения первого столбца второй строки:
colour = red

Смотрите также

  • PDO::query() - Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement
  • PDOStatement::fetch() - Извлечение следующей строки из результирующего набора
  • PDOStatement::fetchAll() - Возвращает массив, содержащий все строки результирующего набора
  • PDO::prepare() - Подготавливает запрос к выполнению и возвращает ассоциированный с этим запросом объект
  • PDOStatement::setFetchMode() - Задает режим выборки по умолчанию для объекта запроса


Извлекает следующую строку и возвращает ее в виде объекта

  • « PDOStatement::fetchColumn
  • PDOStatement::getAttribute »
  • PHP Manual
  • PDOStatement
  • Извлекает следующую строку и возвращает ее в виде объекта

PDOStatement::fetchObject

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.4)

PDOStatement::fetchObject — Извлекает следующую строку и возвращает ее в виде объекта

Описание

public mixed PDOStatement::fetchObject ([ string $class_name = "stdClass" [, array $ctor_args ]] )

Извлекает следующую строку и возвращает ее в виде объекта. Этот метод
является альтернативой вызову PDOStatement::fetch() с
параметром PDO::FETCH_CLASS или
PDO::FETCH_OBJ.

Когда объект извлечен, его свойства наполняются значениями соответствующих столбцов, и, после этого, вызывается его конструктор.

Список параметров

class_name

Имя класса создаваемого объекта.

ctor_args

Элементы этого массива будут переданы в конструктор класса.

Возвращаемые значения

Возвращает новый объект указанного класса, имена свойств которого соответствуют именам столбцов результирующего набора или FALSE в случае возникновения ошибки.

Смотрите также

  • PDOStatement::fetch() - Извлечение следующей строки из результирующего набора


Получение значения атрибута запроса PDOStatement

  • « PDOStatement::fetchObject
  • PDOStatement::getColumnMeta »
  • PHP Manual
  • PDOStatement
  • Получение значения атрибута запроса PDOStatement

PDOStatement::getAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::getAttribute — Получение значения атрибута запроса PDOStatement

Описание

public mixed PDOStatement::getAttribute ( int $attribute )

Получает значение атрибута запроса. На данный момент не существует общих атрибутов, есть только характерные для конкретного драйвера:

  • PDO::ATTR_CURSOR_NAME (характерен для Firebird и ODBC): Получение имени курсора для запроса UPDATE ... WHERE CURRENT OF.

Возвращаемые значения

Возвращает значение атрибута.

Смотрите также

  • PDO::getAttribute() - Получить атрибут соединения с базой данных
  • PDO::setAttribute() - Присвоение атрибута
  • PDOStatement::setAttribute() - Присваивает атрибут объекту PDOStatement


Возвращает метаданные столбца в результирующей таблице

  • « PDOStatement::getAttribute
  • PDOStatement::nextRowset »
  • PHP Manual
  • PDOStatement
  • Возвращает метаданные столбца в результирующей таблице

PDOStatement::getColumnMeta

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::getColumnMeta — Возвращает метаданные столбца в результирующей таблице

Описание

public array PDOStatement::getColumnMeta ( int $column )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращает метаданные столбца результирующей таблицы в виде ассоциативного массива. Индексация столбцов начинается с 0.

Внимание

Не все PDO драйверы поддерживают PDOStatement::getColumnMeta().

Список параметров

column

Индекс (начиная с 0) столбца результирующего набора.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий следующие значения метаданных:

Метаданные столбца
Имя | Значение
native_type | Внутренний тип PHP, в котором будет представлено значение столбца.
driver:decl_type | SQL тип в котором значение столбца хранится в базе данных. Если значение столбца результирующей таблицы было возвращено из функции, PDOStatement::getColumnMeta() не будет определять этот тип.
flags | Какие-либо флаги, установленные для столбца.
name | Имя столбца в том виде, в котором его вернула СУБД.
table | Имя таблицы базы данных, содержащей этот столбец.
len | Размер поля столбца. Как правило, для типов, отличных от чисел с плавающей запятой, это значение равно -1.
precision | Числовая точность значений этого поля. Как правило, для типов, отличных от чисел с плавающей запятой, это значение равно 0.
pdo_type | PDO тип значения столбца в виде одной из констант PDO::PARAM_*.

Возвращает FALSE в случаях, когда указанного столбца нет в результирующей таблице, а также если не существует самого результирующего набора.

Список изменений

Версия | Описание
5.2.3 | Поле table

Примеры

Пример #1 Извлечение метаданных столбца

В следующем примере показаны результаты извлечения метаданных одного столбца сгенерированного функцией COUNT драйвера PDO_SQLITE.

<?php
$select = $DB->query('SELECT COUNT(*) FROM fruit');
$meta = $select->getColumnMeta(0);
var_dump($meta);
?>

Результат выполнения данного примера:

array(6) {
  ["native_type"]=>
  string(7) "integer"
  ["flags"]=>
  array(0) {
  }
  ["name"]=>
  string(8) "COUNT(*)"
  ["len"]=>
  int(-1)
  ["precision"]=>
  int(0)
  ["pdo_type"]=>
  int(2)
}

Смотрите также

  • PDOStatement::columnCount() - Возвращает количество столбцов в результирующем наборе
  • PDOStatement::rowCount() - Возвращает количество строк, модифицированных последним SQL запросом


Переход к следующему набору строк в результате запроса

  • « PDOStatement::getColumnMeta
  • PDOStatement::rowCount »
  • PHP Manual
  • PDOStatement
  • Переход к следующему набору строк в результате запроса

PDOStatement::nextRowset

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::nextRowset — Переход к следующему набору строк в результате запроса

Описание

public bool PDOStatement::nextRowset ( void )

Некоторые СУБД поддерживают хранимые процедуры, которые возвращают более одного набора строк (его еще называют результирующим набором). 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 "Result set $i:\n";
    foreach ($rowset as $row) {
        foreach ($row as $col) {
            print $col . "\t";
        }
        print "\n";
    }
    print "\n";
}
?>

Результат выполнения данного примера:

Result set 1:
apple    red
banana   yellow

Result set 2:
orange   orange    150
banana   yellow    175

Result set 3:
lime     green
apple    red
banana   yellow

Смотрите также

  • PDOStatement::columnCount() - Возвращает количество столбцов в результирующем наборе
  • PDOStatement::execute() - Запускает подготовленный запрос на выполнение
  • PDOStatement::getColumnMeta() - Возвращает метаданные столбца в результирующей таблице
  • PDO::query() - Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement


Возвращает количество строк, модифицированных последним SQL запросом

  • « PDOStatement::nextRowset
  • PDOStatement::setAttribute »
  • PHP Manual
  • PDOStatement
  • Возвращает количество строк, модифицированных последним SQL запросом

PDOStatement::rowCount

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDOStatement::rowCount — Возвращает количество строк, модифицированных последним SQL запросом

Описание

public int PDOStatement::rowCount ( void )

PDOStatement::rowCount() возвращает количество строк, которые были затронуты в ходе выполнения последнего запроса DELETE, INSERT или UPDATE, запущенного соответствующим объектом PDOStatement.

Если последним запросом, запущенным соответствующим объектом PDOStatement, было SQL выражение SELECT, некоторые СУБД могут вернуть количество строк в результирующем наборе. Однако, такое поведение метода не гарантируется для всех баз данных, и это нужно учитывать при проектировании приложений.

Возвращаемые значения

Возвращает количество строк.

Примеры

Пример #1 Получение количества удаленных строк

PDOStatement::rowCount() возвращает количество строк, измененных выражениями DELETE, INSERT или UPDATE.

<?php
/* Удалим все строки из таблицы FRUIT */
$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();

/* Выведем число удаленных строк */
print("Количество удаленных строк:\n");
$count = $del->rowCount();
print("Удалено $count строк.\n");
?>

Результат выполнения данного примера:

Количество удаленных строк:
Удалено 9 строк.

Пример #2 Подсчет строк, возвращаемых выражением SELECT

Для большинства СУБД PDOStatement::rowCount() не возвращает количество строк, затронутых SELECT запросом. Вместо этого метода запустите через PDO::query() выражение SELECT COUNT(*) с тем же текстом запроса. Затем методом PDOStatement::fetchColumn() вы получите число строк в результирующем наборе. Эта методика будет работать со всеми СУБД.

<?php
$sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
if ($res = $conn->query($sql)) {

    /* Определим количество строк, подходящих под условия выражения SELECT */
  if ($res->fetchColumn() > 0) {

        /* Выполняем реальный SELECT и работаем с его результатами */
         $sql = "SELECT name FROM fruit WHERE calories > 100";
       foreach ($conn->query($sql) as $row) {
           print "Name: " .  $row['NAME'] . "\n";
         }
    }
    /* Результатов нет -- делаем что-то другое */
  else {
      print "Нет строк соответствующих запросу.";
    }
}

$res = null;
$conn = null;
?>

Результат выполнения данного примера:

apple
banana
orange
pear

Смотрите также

  • PDOStatement::columnCount() - Возвращает количество столбцов в результирующем наборе
  • PDOStatement::fetchColumn() - Возвращает данные одного столбца следующей строки результирующего набора
  • PDO::query() - Выполняет SQL запрос и возвращает результирующий набор в виде объекта PDOStatement


Присваивает атрибут объекту PDOStatement

  • « PDOStatement::rowCount
  • PDOStatement::setFetchMode »
  • PHP Manual
  • PDOStatement
  • Присваивает атрибут объекту PDOStatement

PDOStatement::setAttribute

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::setAttribute — Присваивает атрибут объекту PDOStatement

Описание

public bool PDOStatement::setAttribute ( int $attribute , mixed $value )

Задает атрибут объекта PDOStatement. На данный момент никаких общих атрибутов устанавливать нельзя, только характерные для конкретного драйвера:

  • PDO::ATTR_CURSOR_NAME (Firebird и ODBC): Задает имя курсора для запросов вида UPDATE ... WHERE CURRENT OF.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • PDO::getAttribute() - Получить атрибут соединения с базой данных
  • PDO::setAttribute() - Присвоение атрибута
  • PDOStatement::getAttribute() - Получение значения атрибута запроса PDOStatement


Задает режим выборки по умолчанию для объекта запроса

  • « PDOStatement::setAttribute
  • PDOException »
  • PHP Manual
  • PDOStatement
  • Задает режим выборки по умолчанию для объекта запроса

PDOStatement::setFetchMode

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)

PDOStatement::setFetchMode — Задает режим выборки по умолчанию для объекта запроса

Описание

public bool PDOStatement::setFetchMode ( int $mode )
public bool PDOStatement::setFetchMode ( int $PDO::FETCH_COLUMN , int $colno )
public bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
public bool PDOStatement::setFetchMode ( int $PDO::FETCH_INTO , object $object )

Список параметров

mode

Режим выборки можно задавать только одной из констант PDO::FETCH_*.

colno

Номер столбца.

classname

Имя класса.

ctorargs

Аргументы конструктора класса.

object

Объект.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Изменение режима выборки

В следующем примере показано, как метод PDOStatement::setFetchMode() меняет режим выборки по умолчанию для объекта PDOStatement.

<?php
$sql = 'SELECT name, colour, calories FROM fruit';
try {
  $stmt = $dbh->query($sql);
  $result = $stmt->setFetchMode(PDO::FETCH_NUM);
  while ($row = $stmt->fetch()) {
    print $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n";
  }
}
catch (PDOException $e) {
  print $e->getMessage();
}
?>

Результат выполнения данного примера:

apple   red     150
banana  yellow  250
orange  orange  300
kiwi    brown   75
lemon   yellow  25
pear    green   150
watermelon      pink    90


Класс PDOException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Представляет ошибку, вызываемую PDO. Вам не следует выбрасывать исключения PDOException из своего кода. Дополнительную информацию об исключениях в PHP можно почерпнуть из раздела See Исключения.

Обзор классов

PDOException extends RuntimeException {
/* Свойства */
public array $errorInfo ;
protected string $code ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Свойства

errorInfo

Соответствует PDO::errorInfo() или PDOStatement::errorInfo()

code

SQLSTATE код ошибки. Чтобы его получить, используйте Exception::getCode().


PDO Драйверы

Содержание

  • CUBRID (PDO)
  • MS SQL Server (PDO)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • MS SQL Server (PDO)
  • Oracle (PDO)
  • ODBC and DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)
  • 4D (PDO)

Следующие драйверы в настоящее время реализованы в PDO:

Наименование драйвера | Поддерживаемые базы данных
PDO_CUBRID | Cubrid
PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase
PDO_FIREBIRD | Firebird
PDO_IBM | IBM DB2
PDO_INFORMIX | IBM Informix Dynamic Server
PDO_MYSQL | MySQL 3.x/4.x/5.x
PDO_OCI | Oracle Call Interface
PDO_ODBC | ODBC v3 (IBM DB2, unixODBC и win32 ODBC)
PDO_PGSQL | PostgreSQL
PDO_SQLITE | SQLite 3 и SQLite 2
PDO_SQLSRV | Microsoft SQL Server / SQL Azure
PDO_4D | 4D


CUBRID Functions (PDO_CUBRID)

Введение

PDO_CUBRID is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to CUBRID databases.

Замечание:

Current version of PDO_CUBRID doesn't support persistent connection now.

Установка

To build the PDO_CUBRID extension, the CUBRID DBMS must be installed on the same system as PHP. PDO_CUBRID is a » PECL extension, so follow the instructions in Установка расширений PECL to install the PDO_CUBRID extension. Issue the configure command to point to the location of your CUBRID base dir as follows:

   $ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
The configure command defaults to the value of the CUBRID environment variable.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows. Detailed information about installation on Linux and Windows manually, please read build-guide.html in PECL package CUBRID for reference.

Features

PDO_CUBRID Features
Feature | Description
Scrollable cursors | PDO_CUBRID supports scrollable cursors. The default cursor type is forward only, and you can use parameter driver_options in PDO::prepare() to change cursor type.
Timeout | PDO_CUBRID supports sql statement execution timeout setting; You can use PDO::setAttribute() to set timeout value.
Autocommit_mode and Transaction PDO_CUBRID supports both autocommit_mode and transaction, and autocommit_mode is enabled by default. You can use PDO::setAttribute() to change its state.

If you use PDO::beginTransaction() to begin a transaction, it will disable autocommit_mode automatically and restore it after PDO::commit() or PDO::rollBack(). Note that before disabling the autocommit_mode, any pending work is automatically committed.

Multiple SQL Statements | PDO_CUBRID supports Multiple SQL statements. Multiple SQL statements are separated by semicolons (;)
Schema Information | PDO_CUBRID implements a function PDO::cubrid_schema() to get schema information.
LOBs PDO_CUBRID supports BLOB/CLOB data type. The LOB in PDO is represented as a stream, so you can insert LOBs by binding a stream, and get LOBs by reading a stream returned by CUBRID PDO. For example:

Пример #1 Insert LOBs in 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 Fetch LOBs in 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]);
?>

Column meta The PDOStatement::getColumnMeta() in CUBRID PDO will return an associative array containing the following values:
  • type
  • name
  • table
  • def
  • precision
  • scale
  • not_null
  • auto_increment
  • unique_key
  • multiple_key
  • primary_key
  • foreign_key
  • reverse_index
  • reverse_unique
Collection Data Type PDO_CUBRID supports SET/MULTISET/SEQUENCE data type. If you don't specify data type, the default data type is char,for example:

Пример #3 Insert set in CUBRID PDO with default data type.

<?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 Specify data type when insert set in 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 Bind Data Types:(The fifth parameter of 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 для проверки драйвера.

The following constants can be used when setting the database attribute. They can be passed to PDO::getAttribute() or PDO::setAttribute().

PDO::CUBRID attribute flags
Constant | Description
PDO::CUBRID_ATTR_ISOLATION_LEVEL | Transaction isolation level for the database connection.
PDO::CUBRID_ATTR_LOCK_TIMEOUT | Transaction timeout in seconds.
PDO::CUBRID_ATTR_MAX_STRING_LENGTH | Read only. The maximum string length for bit, varbit, char, varchar, nchar, nchar varying data types when using CUBRID PDO API.

The following constants can be used when setting the transaction isolation level. They can be passed to PDO::getAttribute() or returned by PDO::setAttribute().

PDO::CUBRID isolation level flags
Constant | Description
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE | The lowest isolation level (1). A dirty, non-repeatable or phantom read may occur for the tuple and a non-repeatable read may occur for the table as well.
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE | A relatively low isolation level (2). A dirty read does not occur, but non-repeatable or phantom read may occur.
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE | The default isolation of CUBRID (3). A dirty, non-repeatable or phantom read may occur for the tuple, but repeatable read is ensured for the table.
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE | A relatively low isolation level (4). A dirty read does not occur, but non-repeatable or phantom read may.
PDO::TRAN_REP_CLASS_REP_INSTANCE | A relatively high isolation level (5). A dirty or non-repeatable read does not occur, but a phantom read may.
PDO::TRAN_SERIALIZABLE | The highest isolation level (6). Problems concerning concurrency (e.g. dirty read, non-repeatable read, phantom read, etc.) do not occur.

The following constants can be used when getting schema information. They can be passed to PDO::cubrid_schema().

PDO::CUBRID schema flags
Constant | Description
PDO::CUBRID_SCH_TABLE | Get name and type of table in CUBRID.
PDO::CUBRID_SCH_VIEW | Get name and type of view in CUBRID.
PDO::CUBRID_SCH_QUERY_SPEC | Get the query definition of view.
PDO::CUBRID_SCH_ATTRIBUTE | Get the attributes of table column.
PDO::CUBRID_SCH_TABLE_ATTRIBUTE | Get the attributes of table.
PDO::CUBRID_SCH_METHOD | Get the instance method. The instance method is a method called by a class instance. It is used more often than the class method because most operations are executed in the instance.
PDO::CUBRID_SCH_TABLE_METHOD | Get the class method. The class method is a method called by a class object. It is usually used to create a new class instance or to initialize it. It is also used to access or update class attributes.
PDO::CUBRID_SCH_METHOD_FILE | Get the information of the file where the method of the table is defined.
PDO::CUBRID_SCH_SUPER_TABLE | Get the name and type of table which table inherites attributes from.
PDO::CUBRID_SCH_SUB_TABLE | Get the name and type of table which inherites attributes from this table.
PDO::CUBRID_SCH_CONSTRAINT | Get the table constraints.
PDO::CUBRID_SCH_TRIGGER | Get the table triggers.
PDO::CUBRID_SCH_TABLE_PRIVILEGE | Get the privilege information of table.
PDO::CUBRID_SCH_COL_PRIVILEGE | Get the privilege information of column.
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE | Get the direct super table of table.
PDO::CUBRID_SCH_PRIMARY_KEY | Get the table primary key.
PDO::CUBRID_SCH_IMPORTED_KEYS | Get imported keys of table.
PDO::CUBRID_SCH_EXPORTED_KEYS | Get exported keys of table.
PDO::CUBRID_SCH_CROSS_REFERENCE | Get reference relationship of tow tables.

Содержание

  • PDO_CUBRID DSN — Connecting to CUBRID databases
  • PDO::cubrid_schema — Get the requested schema information


Connecting to CUBRID databases

  • « CUBRID (PDO)
  • PDO::cubrid_schema »
  • PHP Manual
  • CUBRID (PDO)
  • Connecting to CUBRID databases

PDO_CUBRID DSN

(Информация о версии неизвестна, возможно, только в SVN)

PDO_CUBRID DSN — Connecting to CUBRID databases

Описание

The PDO_CUBRID Data Source Name (DSN) is composed of the following elements, delimited by semicolons:

DSN prefix

The DSN prefix is cubrid:.

host

The hostname on which the database server resides.

port

The port on which the database server is running.

dbname

The name of the database.

Примечания

Замечание:

When you estalish the connection to CUBRID, you should give username and password except DSN.

Примеры

Пример #1 PDO_CUBRID DSN examples

The following example shows a PDO_CUBRID DSN for connecting to a CUBRID database:

cubrid:host=localhost;port=33000;dbname=demodb


Get the requested schema information

  • « PDO_CUBRID DSN
  • MS SQL Server (PDO) »
  • PHP Manual
  • CUBRID (PDO)
  • Get the requested schema information

PDO::cubrid_schema

(Информация о версии неизвестна, возможно, только в SVN)

PDO::cubrid_schema — Get the requested schema information

Описание

public array PDO::cubrid_schema ( int $schema_type [, string $table_name [, string $col_name ]] )

This function is used to get the requested schema information from database. You have to designate table_name, if you want to get information on certain table, col_name, if you want to get information on certain column (can be used only with PDO::CUBRID_SCH_COL_PRIVILEGE).

The result of this function is returned as a two-dimensional array (column (associative array) * row (numeric array)). The following tables shows types of schema and the column structure of the result array to be returned based on the schema type.

Result Composition of Each Type
Schema | Column Number | Column Name | Value
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

Schema type that you want to know.

table_name

Table you want to know the schema of.

col_name

Column you want to know the schema of.

Возвращаемые значения

Array containing the schema information, when process is successful;

FALSE, when process is unsuccessful

Примеры

Пример #1 A PDO::cubrid_schema() example

This example shows how to get primary key and foreign keys of table 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 and Sybase Functions (PDO_DBLIB)

Введение

PDO_DBLIB is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Microsoft SQL Server and Sybase databases through the FreeTDS library.

This extension is not available anymore on Windows with PHP 5.3 or later.

On Windows, you should use SqlSrv, an alternative driver for MS SQL is available from Microsoft: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx .

If it is not possible to use SqlSrv, you can use the PDO_ODBC driver to connect to Microsoft SQL Server and Sybase databases, as the native Windows DB-LIB is ancient, thread un-safe and no longer supported by Microsoft.

Содержание

  • PDO_DBLIB DSN — Connecting to Microsoft SQL Server and Sybase databases


Connecting to Microsoft SQL Server and Sybase databases

  • « MS SQL Server (PDO)
  • Firebird (PDO) »
  • PHP Manual
  • MS SQL Server (PDO)
  • Connecting to Microsoft SQL Server and Sybase databases

PDO_DBLIB DSN

(PECL PDO_DBLIB >= 0.9.0)

PDO_DBLIB DSN — Connecting to Microsoft SQL Server and Sybase databases

Описание

The PDO_DBLIB Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is sybase: if PDO_DBLIB was linked against the Sybase ct-lib libraries, mssql: if PDO_DBLIB was linked against the Microsoft SQL Server libraries, or dblib: if PDO_DBLIB was linked against the FreeTDS libraries.

host

The hostname on which the database server resides. Defaults to 127.0.0.1.

dbname

The name of the database.

charset

The client character set.

appname

The application name (used in sysprocesses). Defaults to "PHP Generic DB-lib" or "PHP freetds".

secure

Currently unused.

Примеры

Пример #1 PDO_DBLIB DSN examples

The following examples show a PDO_DBLIB DSN for connecting to Microsoft SQL Server and Sybase databases:

mssql:host=localhost;dbname=testdb
sybase:host=localhost;dbname=testdb
dblib:host=localhost;dbname=testdb


Firebird Functions (PDO_FIREBIRD)

Введение

PDO_FIREBIRD is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Firebird database.

Установка

Use --with-pdo-firebird[=DIR] to install the PDO Firebird extension, where the optional [=DIR] is the Firebird base install directory.

$ ./configure --with-pdo-firebird

Предопределенные константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO_ATTR_DRIVER_NAME для проверки драйвера.

PDO::FB_ATTR_DATE_FORMAT (integer)

Available since PHP 5.3.0.

Sets the date format.

PDO::FB_ATTR_TIME_FORMAT (integer)

Sets the time format.

Available since PHP 5.3.0.

PDO::FB_ATTR_TIMESTAMP_FORMAT (integer)

Sets the timestamp format.

Available since PHP 5.3.0.

Содержание

  • PDO_FIREBIRD DSN — Connecting to Firebird databases


Connecting to Firebird databases

  • « Firebird (PDO)
  • IBM (PDO) »
  • PHP Manual
  • Firebird (PDO)
  • Connecting to Firebird databases

PDO_FIREBIRD DSN

(PECL PDO_FIREBIRD >= 0.1.0)

PDO_FIREBIRD DSN — Connecting to Firebird databases

Описание

The PDO_FIREBIRD Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is firebird:.

dbname

The name of the database.

charset

The character set.

role

The SQL role name.

Примеры

Пример #1 PDO_FIREBIRD DSN example with path

The following example shows a PDO_FIREBIRD DSN for connecting to Firebird databases:

firebird:dbname=/path/to/DATABASE.FDB

Пример #2 PDO_FIREBIRD DSN example with port and path

The following example shows a PDO_FIREBIRD DSN for connecting to a Firebird database using hostname port and path:

firebird:dbname=hostname/port:/path/to/DATABASE.FDB

Пример #3 PDO_FIREBIRD DSN example with localhost and path to employee.fdb on Debian system

The following example shows a PDO_FIREBIRD DSN for connecting to a Firebird database employee.fdb using localhost:

firebird:dbname=localhost:/var/lib/firebird/2.5/data/employee.fdb


IBM Functions (PDO_IBM)

Введение

PDO_IBM is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to IBM databases.

Установка

To build the PDO_IBM extension, the DB2 Client v9.1 or later must be installed on the same system as PHP. The DB2 Client can be downloaded from the IBM » Application Development Site.

Замечание: Note

The DB2 Client v9.1 or later supports direct access to DB2 for Linux, UNIX, and Windows v8 and v9.1 servers.

The DB2 Client v9.1 also supports access to DB2 UDB for i5 and DB2 UDB for z/OS servers using the separately purchased » DB2 Connect product.

PDO_IBM is a » PECL extension, so follow the instructions in Установка расширений PECL to install the PDO_IBM extension. Issue the configure command to point to the location of your DB2 Client header files and libraries as follows:

bash$ ./configure --with-pdo-ibm=/path/to/sqllib[,shared]
The configure command defaults to the value of the DB2DIR environment variable.

Содержание

  • PDO_IBM DSN — Connecting to IBM databases


Connecting to IBM databases

  • « IBM (PDO)
  • Informix (PDO) »
  • PHP Manual
  • IBM (PDO)
  • Connecting to IBM databases

PDO_IBM DSN

(PECL PDO_IBM >= 0.9.0)

PDO_IBM DSN — Connecting to IBM databases

Описание

The PDO_IBM Data Source Name (DSN) is based on the IBM CLI DSN. The major components of the PDO_IBM DSN are:

DSN prefix

The DSN prefix is ibm:.

DSN

The DSN can be any of the following:

  • a) Data source setup using db2cli.ini or odbc.ini

  • b) Catalogued database name i.e. database alias in the DB2 client catalog

  • c) Complete connection string in the following format: DRIVER={IBM DB2 ODBC DRIVER};DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password; where the parameters represent the following values:

    database

    The name of the database.

    hostname

    The hostname or IP address of the database server.

    port

    The TCP/IP port on which the database is listening for requests.

    username

    The username with which you are connecting to the database.

    password

    The password with which you are connecting to the database.

Примеры

Пример #1 PDO_IBM DSN example using db2cli.ini

The following example shows a PDO_IBM DSN for connecting to an DB2 database cataloged as DB2_9 in 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 example using a connection string

The following example shows a PDO_IBM DSN for connecting to an DB2 database named testdb using the DB2 CLI connection string syntax.

$db = new PDO("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE=testdb;" .
  "HOSTNAME=11.22.33.444;PORT=56789;PROTOCOL=TCPIP;", "testuser", "tespass");


Informix Functions (PDO_INFORMIX)

Введение

PDO_INFORMIX is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to Informix databases.

Установка

To build the PDO_INFORMIX extension, the Informix Client SDK 2.81 UC1 or higher must be installed on the same system as PHP. The Informix Client SDK is available from the » IBM Informix Support Site.

PDO_INFORMIX is a » PECL extension, so follow the instructions in Установка расширений PECL to install the PDO_INFORMIX extension. Issue the configure command to point to the location of your Informix Client SDK header files and libraries as follows:

   bash$ ./configure --with-pdo-informix=/path/to/SDK[,shared]
The configure command defaults to the value of the INFORMIXDIR environment variable.

Scrollable cursors

PDO_INFORMIX supports scrollable cursors; however, they are not enabled by default. To enable scrollable cursor support, you must either set ENABLESCROLLABLECURSORS=1 in the corresponding ODBC connection settings in odbc.ini or pass the EnableScrollableCursors=1 clause in the DSN connection string.

Содержание

  • PDO_INFORMIX DSN — Connecting to Informix databases


Connecting to Informix databases

  • « Informix (PDO)
  • MySQL (PDO) »
  • PHP Manual
  • Informix (PDO)
  • Connecting to Informix databases

PDO_INFORMIX DSN

(PECL PDO_INFORMIX >= 0.1.0)

PDO_INFORMIX DSN — Connecting to Informix databases

Описание

The PDO_INFORMIX Data Source Name (DSN) is based on the Informix ODBC DSN string. Details on configuring an Informix ODBC DSN are available from the » Informix Dynamic Server Information Center. The major components of the PDO_INFORMIX DSN are:

DSN prefix

The DSN prefix is informix:.

DSN

The DSN can be either a data source setup using odbc.ini or a complete » connection string.

Примеры

Пример #1 PDO_INFORMIX DSN example using odbc.ini

The following example shows a PDO_INFORMIX DSN for connecting to an Informix database cataloged as Infdrv33 in 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 PDO_INFORMIX DSN example using a connection string

The following example shows a PDO_INFORMIX DSN for connecting to an Informix database named common_db using the Informix connection string syntax.

$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 версий 3.x, 4.x и 5.x.

PDO_MYSQL будет использовать родную поддержку подготовленных запросов, пристутствущих в MySQL 4.1 и выше. Если вы используете более старую версию клиентских библиотек mysql, PDO будет эмулировать их для вас.

Внимание

Осторожно: Некоторые типы MySQL таблиц (механизмы хранения, движков) не поддерживают транзакции. При написании кода с использованием транзацкий применительно к таблицам, которые их не поддерживают, MySQL будет считать, что транзакция была начата успешно. Так же, выполенение любого DDL запроса завершит все открытые транзакции а так же выполнит весь стек не завершенных запросов.

Установка

Обычно, установочные пакеты Unix имеют в своем составе бинарные пакеты PHP. Несмотря на то, что эти бинарные пакеты обычно собраны с поддержкой расширения MySQL, возможно понадобится устанавливать библиотеки расширений отдельно. Проверьте свой дистрибутив на наличие нужных библиотек через пакетный менеджер.

К примеру, на Ubuntu, установка пакета php5-mysql устанавливает расширения ext/mysql, ext/mysqli, и PDO_MYSQL. На CentOS, пакет php-mysql так же устанавливает эти три расширения.

Также вы всегда можете скомпилировать необходимые расширения самостоятельно. Сборка PHP из исходных кодов позволит вам собрать именно те расширения MySQL, которые вам нужны, а также выбрать нужную клиентскую библиотеку для каждого расширения.

Используйте --with-pdo-mysql[=DIR] для установки расширения PDO MySQL, где необязательный параметр [=DIR] указывает директорию, где установлена MySQL. Начиная с PHP 5.4, по умолчанию используется библиотека mysqlnd. Более детальный разбор по выбору библиотеки можно почитать в разделе "Выбор библиотеки MySQL".

Дополнительный параметр --with-mysql-sock[=DIR] указывает расположение unix-сокета MySQL для всех MySQL расширений, включая PDO_MYSQL. Если параметр не указан, поиск производится в директориях по умолчанию.

Дополнительный параметр --with-zlib-dir[=DIR] используется как префикс пути к libz.

$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock

Поддержка SSL включается, используя соответствующую константу PDO_MySQL, которая эквивалентна вызову » MySQL C API функции mysql_ssl_set(). К тому же SSL не может быть включен с помощью PDO::setAttribute, потому что соединение уже существует. Смотрите документацию MySQL о » подключении к MySQL с SSL.

Список изменений
Версия | Описание
5.4.0 | Библиотека mysqlnd выбирается по умолчанию, если вы собираете PHP с поддержкой PDO_MYSQL. Ранее библиотекой по умолчанию для MySQL была libmysqlclient.
5.4.0 | Клиентские библиотеки MySQL версии 4.1 и ниже больше не поддерживаются.
5.3.9 | Добавлена поддержка SSL в mysqlnd с OpenSSL.
5.3.7 | Добавлена поддержка SSL в libmysqlclient с OpenSSL.

Предопределенные константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO_ATTR_DRIVER_NAME для проверки драйвера.

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (integer)
Если этот атрибут установлен в TRUE в PDOStatement, MySQL драйвер будет использовать буферизованные версии MySQL API. Если вы пишете переносимый на другие библиотеки код, вы должны использовать PDOStatement::fetchAll().

Пример #1 Буферизация запросов в MySQL

<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
    $stmt = $db->prepare('select * from foo',
        array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
} else {
    die("my application only works with mysql; I should use \$stmt->fetchAll() instead");
}
?>

PDO::MYSQL_ATTR_LOCAL_INFILE (integer)

Включить LOAD LOCAL INFILE.

Обратите внимание, что эта константа может быть использована только в массиве driver_options при создании дескриптора новой базы данных.

PDO::MYSQL_ATTR_INIT_COMMAND (integer)

Команда, которую необходимо выполнить при подключении к MySQL серверу. Также будет автоматически выполнена при переподключении.

Обратите внимание, что эта константа может быть использована только в массиве driver_options при создании дескриптора новой базы данных.

PDO::MYSQL_ATTR_READ_DEFAULT_FILE (integer)

Чтение именованных параметров из файла my.cnf. Эта опция не доступна, если используется mysqlnd, потому что mysqlnd не читает файлы конфигурации MySQL.

PDO::MYSQL_ATTR_READ_DEFAULT_GROUP (integer)

Чтение именованной группы параметров из файла my.cnf или из файла, определенного в константе MYSQL_READ_DEFAULT_FILE. Эта опция не доступна, если используется mysqlnd, потому что mysqlnd не читает файлы конфигурации MySQL.

PDO::MYSQL_ATTR_MAX_BUFFER_SIZE (integer)

Максимальный размер буфера. По умолчанию равен 1 Мб. Эта константа не поддерживается при компиляции вместе с mysqlnd.

PDO::MYSQL_ATTR_DIRECT_QUERY (integer)

Выполнять прямые запросы, не использовать подготовленные конструкции.

PDO::MYSQL_ATTR_FOUND_ROWS (integer)

Возвращает количество найденных (совпавших) строк (не количество измененных строк).

PDO::MYSQL_ATTR_IGNORE_SPACE (integer)

Разрешает пробелы после имен функций. Делает все имена функций зарезервированными словами.

PDO::MYSQL_ATTR_COMPRESS (integer)

Включить сжатие сетевого соединения. Эта константа поддерживается при компиляции вместе с mysqlnd начиная c PHP 5.3.11.

PDO::MYSQL_ATTR_SSL_CA (integer)

Путь к файлу сертификата SSL.

Существует, начиная с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CAPATH (integer)

Путь к директории, которая содержит SSL сертификаты доверенных центров (CA), хранящиеся в формате PEM.

Существует, начиная с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CERT (integer)

Путь к файлу с SSL сертификатом.

Существует, начиная с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_CIPHER (integer)

Список из одного или более допустимых шифров для использования в SSL шифровании в формате, который понимает OpenSSL. Например: DHE-RSA-AES256-SHA:AES128-SHA

Существует, начиная с PHP 5.3.7.

PDO::MYSQL_ATTR_SSL_KEY (integer)

Путь к файлу с ключом SSL.

Существует, начиная с PHP 5.3.7.

PDO::MYSQL_ATTR_MULTI_STATEMENTS (integer)

Если установлено как FALSE, запрещает запуск множественных запросов как для PDO::prepare(), так и для PDO::query().

Обратите внимание, что эта константа может ыбть использована только в массиве driver_options при создании нового дескриптора БД.

Существует, начиная с PHP 5.5.21 and PHP 5.6.5.

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации PDO_MYSQL
Имя | По умолчанию | Меняемо
pdo_mysql.default_socket | "/tmp/mysql.sock" | PHP_INI_SYSTEM
pdo_mysql.debug | NULL | PHP_INI_SYSTEM
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

pdo_mysql.default_socket string

Устанавливает сокет домена UNIX. Эту опцию необходимо указать во время компиляции, если сокет домена найден во время конфигурирования. Эта настройка только для Unix.

pdo_mysql.debug boolean

Разрешает отладку для PDO_MYSQL. Эта настройка доступна только, если PDO_MYSQL скомпилирован с "mysqlnd" и в режиме отладки PDO.

Содержание

  • PDO_MYSQL DSN — Соединение с базой данных MySQL


Соединение с базой данных MySQL

  • « MySQL (PDO)
  • MS SQL Server (PDO) »
  • PHP Manual
  • MySQL (PDO)
  • Соединение с базой данных MySQL

PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSN — Соединение с базой данных MySQL

Описание

Имя источника данных PDO_MYSQL (Data Source Name или DSN) состоит из следующих элементов:

DSN префикc

DSN префикс это mysql:.

host

Имя хоста, где находиться сервер баз данных.

port

Номер порта, который слушает сервер баз данных.

dbname

Имя базы данных.

unix_socket

Сокет MySQL Unix (не должен использоваться совместно с host или port).

charset

Кодировка. Смотри раздел Кодировки для дополнительной информации.

До PHP 5.3.6 этот элемент игнорировался. Частично этот параметр можно заменить с помощью PDO::MYSQL_ATTR_INIT_COMMAND, как показанно в примере ниже.

Внимание

Метод в примере ниже может быть использован только с кодировками, которые совпадают в части 7-битного представления ASCII, таких как ISO-8859-1 и UTF-8. Пользователи, использующие кодировки с другим представлением (такие как UTF-16 или Big5) должны исползовать опцию charset, добавленную в PHP 5.3.6 и более поздних версия.

Пример #1 Установка набора символов соединения UTF-8 до PHP 5.3.6

<?php
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'username';
$password = 'password';
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

$dbh = new PDO($dsn, $username, $password, $options);
?>

Список изменений

Версия | Описание
5.3.6 | До версии 5.3.6, параметр charset игнорировался.

Примеры

Пример #2 Примеры DNS для PDO_MYSQL

Следующие примеры показывают использование PDO_MYSQL DSN для соединения с базой данных MySQL:

mysql:host=localhost;dbname=testdb
Более сложный пример:
mysql:host=localhost;port=3307;dbname=testdb
mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

Примечания

Замечание: Только Unix:

Если имя хоста установленно как "localhost", то соединение поисходит через сокет домена. Если PDO_MYSQL скомпилировано с использованием libmysqlclient, то путь к файлу-сокета будет совпадать с в путем, по которому скомпилирован libmysqlclient. Если PDO_MYSQL скомпилирован с использованием mysqlnd, значение сокета по умолчанию, может быть выставленно с использованием настройки pdo_mysql.default_socket.


Функции расширения PDO_SQLSRV для Microsoft SQL Server

Введение

PDO_SQLSRV - это драйвер, реализующий интерфейс PHP Data Objects (PDO) для получения доступа из PHP к базам данных MS SQL Server (начиная с версии SQL Server 2005) и SQL Azure.

Установка

Расширение PDO_SQLSRV включается добавлением соответствующего файла DLL в директорию расширений вашей установленной копии PHP и соответствующей записи в файл php.ini. Загружаемая копия расширения PDO_SQLSRV включает в себя восемь файлов драйверов, четыре из них для поддержки PDO. Если вы используете потоконебезопасную сборку PHP (PHP 5.3), используйте php_pdo_sqlsrv_53_nts.dll (вы должны использовать потоконебезопасную версию, если в качестве веб-сервера у вас установлен IIS). Если же вы используете потокобезопасную сборку, то должны использовать php_pdo_sqlsrv_52_ts_vc6.dll. Аналогично, для PHP 5.4, используйте php_pdo_sqlsrv_54_nts.dll или php_pdo_sqlsrv_54_ts.dll.

Наиболее часто используемая версия драйвера доступны здесь: » Загрузка SQLSRV 3.0. Если вам нужна поддержка PHP 5.2 и/или PHP скомпилирован с использованием VC6, используйте релиз драйвера 2.0: » Загрузка SQLSRV 2.0.

За подробностями о системных требованиях обратитесь к разделу » Системные требования SQLSRV.

Расширение PDO_SQLSRV может использоваться с PHP только в ОС Windows. Для Linux, используйте ODBC и » Microsoft's SQL Server ODBC Driver для Linux.

Предопределенные константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO_ATTR_DRIVER_NAME для проверки драйвера.

PDO::SQLSRV_TXN_READ_UNCOMMITTED (integer)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Read Uncommitted.
PDO::SQLSRV_TXN_READ_COMMITTED (integer)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Read Committed.
PDO::SQLSRV_TXN_REPEATABLE_READ (integer)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Repeateable Read.
PDO::SQLSRV_TXN_SNAPSHOT (integer)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Snapshot.
PDO::SQLSRV_TXN_SERIALIZABLE (integer)
Данная константа - допустимое значение для ключа TransactionIsolation SQLSRV DSN. Устанавливает уровень изоляции транзакций для соединения в значение Serializable.
PDO::SQLSRV_ENCODING_BINARY (integer)
Определяет, что данные отправляются/получаются в виде потока байтов к/от сервера без выполнения преобразования кодировки или другого преобразования. Константа может быть передана в функции PDOStatement::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_SYSTEM (integer)
Определяет, что данные отправляются/получаются к/от сервера в 8ми-битной кодировке локали Windows, установленной в системе. Все мультибайтовые символы и символы, не преобразуемые в данную кодировку, заменяются символом вопроса (?). Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_UTF8 (integer)
Определяет, что данные отправляются/получаются к/от сервера в кодировке UTF-8. Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ENCODING_DEFAULT (integer)
Определяет, что данные отправляются/получаются к/от сервера согласно значению PDO::SQLSRV_ENCODING_SYSTEM, указанному при подключении. Для подключения может использоваться кодировка, указанная при подготовке выражения. Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute, PDO::prepare, PDOStatement::bindColumn и PDOStatement::bindParam.
PDO::SQLSRV_ATTR_QUERY_TIMEOUT (integer)
Неотрицательное целое число, отражающее период таймаута в секундах. Ноль (0) - это значение по умолчанию, означающее, что время таймаута не учитывается. Константа может быть передана в функции PDOStatement::setAttribute, PDO::setAttribute и PDO::prepare.
PDO::SQLSRV_ATTR_DIRECT_QUERY (integer)
Показывает, что запрос должен быть немедленно выполнен, без подготовки выражения. Константа может быть передана в функции PDO::setAttribute и PDO::prepare. За подробностями обратитесь к разделу документации » Немедленное выполнение выражений и выполнение подготовленных выражений.

Содержание

  • PDO_SQLSRV DSN — Подключение к базам данных MS SQL Server и SQL Azure


Подключение к базам данных MS SQL Server и SQL Azure

  • « MS SQL Server (PDO)
  • Oracle (PDO) »
  • PHP Manual
  • MS SQL Server (PDO)
  • Подключение к базам данных MS SQL Server и SQL Azure

PDO_SQLSRV DSN

(Информация о версии неизвестна, возможно, только в SVN)

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 Functions (PDO_OCI)

Установка

Use --with-pdo-oci[=DIR] to install the PDO Oracle OCI extension, where the optional [=DIR] is the Oracle Home directory. [=DIR] defaults to the $ORACLE_HOME environment variable.

Use --with-pdo-oci=instantclient,prefix,version for an Oracle Instant Client SDK, where prefix and version are configured.

// Using $ORACLE_HOME
$ ./configure --with-pdo-oci

// Using OIC for Linux with 10.2.0.3 RPMs with a /usr prefix
$ ./configure --with-pdo-oci=instantclient,/usr,10.2.0.3

Содержание

  • PDO_OCI DSN — Connecting to Oracle databases


Connecting to Oracle databases

  • « Oracle (PDO)
  • ODBC and DB2 (PDO) »
  • PHP Manual
  • Oracle (PDO)
  • Connecting to Oracle databases

PDO_OCI DSN

(PECL PDO_OCI >= 0.1.0)

PDO_OCI DSN — Connecting to Oracle databases

Описание

The PDO_OCI Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is oci:.

dbname (Oracle Instant Client)

The URI for the Oracle Instant Client connection takes the form of dbname=//hostname:port-number/database. If you are connecting to a database defined in tnsnames.ora, use only the name of the database: dbname=database.

charset

The client-side character set for the current environment handle.

Примеры

Пример #1 PDO_OCI DSN examples

The following examples show a PDO_OCI DSN for connecting to Oracle databases:

// Connect to a database defined in tnsnames.ora
oci:dbname=mydb

// Connect using the Oracle Instant Client
oci:dbname=//localhost:1521/mydb


ODBC and DB2 Functions (PDO_ODBC)

Введение

PDO_ODBC is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to databases through ODBC drivers or through the IBM DB2 Call Level Interface (DB2 CLI) library. PDO_ODBC currently supports three different "flavours" of database drivers:

ibm-db2

Supports access to IBM DB2 Universal Database, Cloudscape, and Apache Derby servers through the free DB2 client.

unixODBC

Supports access to database servers through the unixODBC driver manager and the database's own ODBC drivers.

generic

Offers a compile option for ODBC driver managers that are not explicitly supported by PDO_ODBC.

On Windows, PDO_ODBC is built into the PHP core by default. It is linked against the Windows ODBC Driver Manager so that PHP can connect to any database cataloged as a System DSN, and is the recommended driver for connecting to Microsoft SQL Server databases.

Установка

PDO_ODBC on UNIX systems

  1. As of PHP 5.1, PDO_ODBC is included in the PHP source. You can compile the PDO_ODBC extension as either a static or shared module using the following configure commands.

    ibm_db2

    ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
    To build PDO_ODBC with the ibm-db2 flavour, you have to have previously installed the DB2 application development headers on the same machine on which you are compiling PDO_ODBC. The DB2 application development headers are an installable option in the DB2 servers, and are also available as part of the DB2 Application Development Client freely available for download from the IBM DB2 Universal Database » support site.

    If you do not supply a location for the DB2 libraries and headers to the configure command, PDO_ODBC defaults to /home/db2inst1/sqllib.

    unixODBC

    ./configure --with-pdo-odbc=unixODBC,/usr/local
    If you do not supply a location for the unixODBC libraries and headers to the configure command, PDO_ODBC defaults to /usr/local.

    generic
    ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags

Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

PDO_ODBC Configuration Options
Имя | По умолчанию | Меняемо | Список изменений
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Available since PHP 5.1.0.
pdo_odbc.db2_instance_name | NULL | PHP_INI_SYSTEM | Available since PHP 5.1.1. Эта возможность устарела и будет обязательно удалена в будущем.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

pdo_odbc.connection_pooling string

Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" (equals to ""). The parameter describes how strict the connection manager should be when matching connection parameters to existing pooled connections. strict is the recommend default, and will result in the use of cached connections only when all the connection parameters match exactly. relaxed will result in the use of cached connections when similar connection parameters are used. This can result in increased use of the cache, at the risk of bleeding connection information between (for example) virtual hosts.

This setting can only be changed from the php.ini file, and affects the entire process; any other modules loaded into the process that use the same ODBC libraries will be affected too, including the Unified ODBC extension.

Внимание

relaxed matching should not be used on a shared server, for security reasons.

Подсказка

Leave this setting at the default strict setting unless you have good reason to change it.

pdo_odbc.db2_instance_name string

If you compile PDO_ODBC using the db2 flavour, this setting sets the value of the DB2INSTANCE environment variable on Linux and UNIX operating systems to the specified name of the DB2 instance. This enables PDO_ODBC to resolve the location of the DB2 libraries and make cataloged connections to DB2 databases.

This setting can only be changed from the php.ini file, and affects the entire process; any other modules loaded into the process that use the same ODBC libraries will be affected too, including the Unified ODBC extension.

This setting has no effect on Windows.

Содержание

  • PDO_ODBC DSN — Connecting to ODBC or DB2 databases


Connecting to ODBC or DB2 databases

  • « ODBC and DB2 (PDO)
  • PostgreSQL (PDO) »
  • PHP Manual
  • ODBC and DB2 (PDO)
  • Connecting to ODBC or DB2 databases

PDO_ODBC DSN

(PECL PDO_ODBC >= 0.1.0)

PDO_ODBC DSN — Connecting to ODBC or DB2 databases

Описание

The PDO_ODBC Data Source Name (DSN) is composed of the following elements:

DSN prefix

The DSN prefix is odbc:. If you are connecting to a database cataloged in the ODBC driver manager or the DB2 catalog, you can append the cataloged name of the database to the DSN.

DSN

The name of the database as cataloged in the ODBC driver manager or the DB2 catalog. Alternately, you can provide a complete ODBC connection string to connect to a database as described at » http://www.connectionstrings.com/.

UID

The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

PWD

The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

Примеры

Пример #1 PDO_ODBC DSN example (ODBC driver manager)

The following example shows a PDO_ODBC DSN for connecting to an ODBC database cataloged as testdb in the ODBC driver manager:

odbc:testdb

Пример #2 PDO_ODBC DSN example (IBM DB2 uncataloged connection)

The following example shows a PDO_ODBC DSN for connecting to an IBM DB2 database named SAMPLE using the full ODBC DSN syntax:

odbc:DRIVER={IBM DB2 ODBC DRIVER};HOSTNAME=localhost;PORT=50000;DATABASE=SAMPLE;PROTOCOL=TCPIP;UID=db2inst1;PWD=ibmdb2;

Пример #3 PDO_ODBC DSN example (Microsoft Access uncataloged connection)

The following example shows a PDO_ODBC DSN for connecting to a Microsoft Access database stored at C:\db.mdb using the full ODBC DSN syntax:

odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\\db.mdb;Uid=Admin


PostgreSQL Functions (PDO_PGSQL)

Введение

PDO_PGSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to PostgreSQL databases.

Типы ресурсов

This extension defines a stream resource returned by PDO::pgsqlLOBOpen().

Установка

Use --with-pdo-pgsql[=DIR] to install the PDO PostgreSQL extension, where the optional [=DIR] is the PostgreSQL base install directory, or the path to pg_config.

$ ./configure --with-pdo-pgsql

Содержание

  • PDO_PGSQL DSN — Connecting to PostgreSQL databases
  • PDO::pgsqlCopyFromArray — Copy data from PHP array into table
  • PDO::pgsqlCopyFromFile — Copy data from file into table
  • PDO::pgsqlCopyToArray — Copy data from database table into PHP array
  • PDO::pgsqlCopyToFile — Copy data from table into file
  • PDO::pgsqlGetNotify — Get asynchronous notification
  • PDO::pgsqlGetPid — Get the server PID
  • PDO::pgsqlLOBCreate — Creates a new large object
  • PDO::pgsqlLOBOpen — Opens an existing large object stream
  • PDO::pgsqlLOBUnlink — Deletes the large object


Connecting to PostgreSQL databases

  • « PostgreSQL (PDO)
  • PDO::pgsqlCopyFromArray »
  • PHP Manual
  • PostgreSQL (PDO)
  • Connecting to PostgreSQL databases

PDO_PGSQL DSN

(PECL PDO_PGSQL >= 0.1.0)

PDO_PGSQL DSN — Connecting to PostgreSQL databases

Описание

The PDO_PGSQL Data Source Name (DSN) is composed of the following elements, delimited by spaces or semicolons:

DSN prefix

The DSN prefix is pgsql:.

host

The hostname on which the database server resides.

port

The port on which the database server is running.

dbname

The name of the database.

user

The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

password

The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

Замечание:

The bytea fields are returned as streams.

Примеры

Пример #1 PDO_PGSQL DSN examples

The following example shows a PDO_PGSQL DSN for connecting to a PostgreSQL database:

pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass


Copy data from PHP array into table

  • « PDO_PGSQL DSN
  • PDO::pgsqlCopyFromFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from PHP array into table

PDO::pgsqlCopyFromArray

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyFromArray — Copy data from PHP array into table

Описание

public bool PDO::pgsqlCopyFromArray ( string $table_name , array $rows [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] )

Copies data from rows array to table table_name using delimiter as fields delimiter and fields list

Список параметров

table_name

String containing table name

rows

Array of strings with fields separated by delimiter

delimiter

Delimiter used in rows array

null_as

How to interpret null values

fields

List of fields to insert

Возвращаемые значения

Returns TRUE on success, или FALSE в случае возникновения ошибки.


Copy data from file into table

  • « PDO::pgsqlCopyFromArray
  • PDO::pgsqlCopyToArray »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from file into table

PDO::pgsqlCopyFromFile

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyFromFile — Copy data from file into table

Описание

public bool PDO::pgsqlCopyFromFile ( string $table_name , string $filename [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] )

Copies data from file specified by filename into table table_name using delimiter as fields delimiter and fields list

Список параметров

table_name

String containing table name

filename

Filename containing data to import

delimiter

Delimiter used in file specified by filename

null_as

How to interpret null values

fields

List of fields to insert

Возвращаемые значения

Returns TRUE on success, или FALSE в случае возникновения ошибки.


Copy data from database table into PHP array

  • « PDO::pgsqlCopyFromFile
  • PDO::pgsqlCopyToFile »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from database table into PHP array

PDO::pgsqlCopyToArray

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyToArray — Copy data from database table into PHP array

Описание

public array PDO::pgsqlCopyToArray ( string $table_name , array $rows [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] )

Copies data from table into array using delimiter as fields delimiter and fields list

Список параметров

table_name

String containing table name

delimiter

Delimiter used in rows array

null_as

How to interpret null values

fields

List of fields to export

Возвращаемые значения

Returns an array of rows, или FALSE в случае возникновения ошибки.


Copy data from table into file

  • « PDO::pgsqlCopyToArray
  • PDO::pgsqlGetNotify »
  • PHP Manual
  • PostgreSQL (PDO)
  • Copy data from table into file

PDO::pgsqlCopyToFile

(PHP 5 >= 5.3.3, PHP 7)

PDO::pgsqlCopyToFile — Copy data from table into file

Описание

public bool PDO::pgsqlCopyToFile ( string $table_name , string $filename [, string $delimiter = '\t' [, string $null_as = "\\\\N" [, string $fields ]]] )

Copies data from table into file specified by filename using delimiter as fields delimiter and fields list

Список параметров

table_name

String containing table name

filename

Filename to export data

delimiter

Delimiter used in file specified by filename

null_as

How to interpret null values

fields

List of fields to insert

Возвращаемые значения

Returns TRUE on success, или FALSE в случае возникновения ошибки.


Get asynchronous notification

  • « PDO::pgsqlCopyToFile
  • PDO::pgsqlGetPid »
  • PHP Manual
  • PostgreSQL (PDO)
  • Get asynchronous notification

PDO::pgsqlGetNotify

(PHP 5 >= 5.6.0, PHP 7)

PDO::pgsqlGetNotify — Get asynchronous notification

Описание

public array PDO::pgsqlGetNotify ([ int $result_type = PDO::FETCH_USE_DEFAULT [, int $ms_timeout = 0 ]] )

Returns a result set representing a pending asynchronous notification.

Список параметров

result_type

The format the result set should be returned as, represented as a PDO::FETCH_* constant.

ms_timeout

The length of time to wait for a response, in milliseconds.

Возвращаемые значения

If one or more notifications is pending, returns a single row, with fields message and pid, otherwise returns FALSE.


Get the server PID

  • « PDO::pgsqlGetNotify
  • PDO::pgsqlLOBCreate »
  • PHP Manual
  • PostgreSQL (PDO)
  • Get the server PID

PDO::pgsqlGetPid

(PHP 5 >= 5.6.0, PHP 7)

PDO::pgsqlGetPid — Get the server PID

Описание

public int PDO::pgsqlGetPid ( void )

Returns the server's PID.

Возвращаемые значения

The server's PID.


Creates a new large object

  • « PDO::pgsqlGetPid
  • PDO::pgsqlLOBOpen »
  • PHP Manual
  • PostgreSQL (PDO)
  • Creates a new large object

PDO::pgsqlLOBCreate

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBCreate — Creates a new large object

Описание

public string PDO::pgsqlLOBCreate ( void )

PDO::pgsqlLOBCreate() creates a large object and returns the OID of that object. You may then open a stream on the object using PDO::pgsqlLOBOpen() to read or write data to it. The OID can be stored in columns of type OID and be used to reference the large object, without causing the row to grow arbitrarily large. The large object will continue to live in the database until it is removed by calling PDO::pgsqlLOBUnlink().

Large objects can be up to 2GB in size, but are cumbersome to use; you need to ensure that PDO::pgsqlLOBUnlink() is called prior to deleting the last row that references its OID from your database. In addition, large objects have no access controls. As an alternative, try the bytea column type; recent versions of PostgreSQL allow bytea columns of up to 1GB in size and transparently manage the storage for optimal row size.

Замечание: This function must be called within a transaction.

Список параметров

PDO::pgsqlLOBCreate() takes no parameters.

Возвращаемые значения

Returns the OID of the newly created large object on success, or FALSE on failure.

Примеры

Пример #1 A PDO::pgsqlLOBCreate() example

This example creates a new large object and copies the contents of a file into it. The OID is then stored into a table.

<?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() - Opens an existing large object stream
  • PDO::pgsqlLOBUnlink() - Deletes the large object
  • pg_lo_create() - Создает большой объект


Opens an existing large object stream

  • « PDO::pgsqlLOBCreate
  • PDO::pgsqlLOBUnlink »
  • PHP Manual
  • PostgreSQL (PDO)
  • Opens an existing large object stream

PDO::pgsqlLOBOpen

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBOpen — Opens an existing large object stream

Описание

public resource PDO::pgsqlLOBOpen ( string $oid [, string $mode = "rb" ] )

PDO::pgsqlLOBOpen() opens a stream to access the data referenced by oid. If mode is r, the stream is opened for reading, if mode is w, then the stream will be opened for writing. You can use all the usual filesystem functions, such as fread(), fwrite() and fgets() to manipulate the contents of the stream.

Замечание: This function, and all manipulations of the large object, must be called and carried out within a transaction.

Список параметров

oid

A large object identifier.

mode

If mode is r, open the stream for reading. If mode is w, open the stream for writing.

Возвращаемые значения

Returns a stream resource on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 A PDO::pgsqlLOBOpen() example

Following on from the PDO::pgsqlLOBCreate() example, this code snippet retrieves the large object from the database and outputs it to the browser.

<?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() - Creates a new large object
  • PDO::pgsqlLOBUnlink() - Deletes the large object
  • pg_lo_open() - Открывает большой объект базы данных


Deletes the large object

  • « PDO::pgsqlLOBOpen
  • SQLite (PDO) »
  • PHP Manual
  • PostgreSQL (PDO)
  • Deletes the large object

PDO::pgsqlLOBUnlink

(PHP 5 >= 5.1.2, PHP 7, PECL pdo_pgsql >= 1.0.2)

PDO::pgsqlLOBUnlink — Deletes the large object

Описание

public bool PDO::pgsqlLOBUnlink ( string $oid )

Deletes a large object from the database identified by OID.

Замечание: This function must be called within a transaction.

Список параметров

oid

A large object identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 A PDO::pgsqlLOBUnlink() example

This example unlinks a large object from the database prior to deleting the row that references it from the blobs table we've been using in our PDO::pgsqlLOBCreate() and PDO::pgsqlLOBOpen() examples.

<?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() - Opens an existing large object stream
  • PDO::pgsqlLOBCreate() - Creates a new large object


Функции SQLite (PDO_SQLITE)

Введение

PDO_SQLITE — это драйвер, который реализует интерфейс Data Objects (PDO) для обеспечения доступа к базам данных SQLite 3.

В PHP 5.1, расширение SQLite также обеспечивает работу драйвера для базы данных SQLite 2; хотя это не техническая часть драйвера PDO_SQLITE, но он работает аналогично, так что это тоже документировано. Драйвер SQLite 2 для PDO предоставляется прежде всего для того, чтобы упростить импорт устаревших файлов базы данных SQLite 2 в приложение, использующее более быстрый эффективный драйвер SQLite 3. Как результат, драйвер SQLite 2 не такой многофункциональный как драйвер SQLite 3.

Замечание:

PDO_SQLITE позволяет использовать строки помимо потоков вместе с PDO::PARAM_LOB.

Установка

PDO_SQLITE PDO driver доступен по умолчанию. Для отключения используйте --without-pdo-sqlite[=DIR] , где [=DIR] директория, куда установлен sqlite.

Содержание

  • PDO_SQLITE DSN — Соединение с базой данных SQLite
  • PDO::sqliteCreateAggregate — Registers an aggregating User Defined Function for use in SQL statements
  • PDO::sqliteCreateCollation — Registers a User Defined Function for use as a collating function in SQL statements
  • PDO::sqliteCreateFunction — Registers a User Defined Function for use in SQL statements


Соединение с базой данных SQLite

  • « SQLite (PDO)
  • PDO::sqliteCreateAggregate »
  • PHP Manual
  • SQLite (PDO)
  • Соединение с базой данных SQLite

PDO_SQLITE DSN

(PECL PDO_SQLITE >= 0.2.0)

PDO_SQLITE DSN — Соединение с базой данных SQLite

Описание

PDO_SQLITE Data Source Name (DSN) состоит из следующих элементов:

DSN-префикс (SQLite 3)

DSN-префикс - это sqlite:.

  • Для доступа к базе данных на диске, добавьте абсолютный путь к DSN-префиксу.

  • Для создания базы данных в памяти, добавьте :memory: к DSN-префиксу.

DSN-префикс (SQLite 2)

Расширение SQLite в PHP 5.1 предоставляет драйвер PDO, поддерживающий доступ и создание баз данных SQLite 2. Это дает вам возможность работать с базами данных, созданных с помощью SQLite в более ранних версия PHP.

Замечание:

Драйвер sqlite2 доступен в PHP 5.1.x только если вы разрешили и PDO and ext/sqlite. На данный момент он не доступен в PECL.

DSN-префикс для соединения с SQLite 2 - sqlite2:.

  • Для доступа к базе данных на диске, добавьте абсолютный путь к DSN-префиксу.

  • Для создания базы данных в памяти, добавьте :memory: к DSN-префиксу.

Примеры

Пример #1 Пример PDO_SQLITE DSN

В следующем примере показаны PDO_SQLITE DSN для соединения с SQLite:

sqlite:/opt/databases/mydb.sq3
sqlite::memory:
sqlite2:/opt/databases/mydb.sq2
sqlite2::memory:


Registers an aggregating User Defined Function for use in SQL statements

  • « PDO_SQLITE DSN
  • PDO::sqliteCreateCollation »
  • PHP Manual
  • SQLite (PDO)
  • Registers an aggregating User Defined Function for use in SQL statements

PDO::sqliteCreateAggregate

(PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateAggregate — Registers an aggregating User Defined Function for use in SQL statements

Описание

public bool PDO::sqliteCreateAggregate ( string $function_name , callable $step_func , callable $finalize_func [, int $num_args ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This method is similar to PDO::sqliteCreateFunction except that it registers functions that can be used to calculate a result aggregated across all the rows of a query.

The key difference between this method and PDO::sqliteCreateFunction is that two functions are required to manage the aggregate.

Список параметров

function_name

The name of the function used in SQL statements.

step_func

Callback function called for each row of the result set. Your PHP function should accumulate the result and store it in the aggregation context.

This function need to be defined as:

mixed step ( mixed $context , int $rownumber , mixed $value1 [, mixed $value2 [, mixed $.. ]] )

context will be NULL for the first row; on subsequent rows it will have the value that was previously returned from the step function; you should use this to maintain the aggregate state.

rownumber will hold the current row number.

The return value of this function will be used as the context argument in the next call of the step or finalize functions.

finalize_func

Callback function to aggregate the "stepped" data from each row. Once all the rows have been processed, this function will be called and it should then take the data from the aggregation context and return the result. Callback functions should return a type understood by SQLite (i.e. scalar type).

This function need to be defined as:

mixed fini ( mixed $context , int $rownumber )

context will hold the return value from the very last call to the step function.

rownumber will hold the number of rows over which the aggregate was performed.

The return value of this function will be used as the return value for the aggregate.

num_args

Hint to the SQLite parser if the callback function accepts a predetermined number of arguments.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 max_length aggregation function example

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = new PDO('sqlite::memory:');
$db->exec("CREATE TABLE strings(a)");
$insert = $db->prepare('INSERT INTO strings VALUES (?)');
foreach ($data as $str) {
    $insert->execute(array($str));
}
$insert = null;

function max_len_step(&$context, $rownumber, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
    return $context;
}

function max_len_finalize(&$context, $rownumber)
{
    return $context;
}

$db->sqliteCreateAggregate('max_len', 'max_len_step', 'max_len_finalize');

var_dump($db->query('SELECT max_len(a) from strings')->fetchAll());

?>

In this example, we are creating an aggregating function that will calculate the length of the longest string in one of the columns of the table. For each row, the max_len_step function is called and passed a context parameter. The context parameter is just like any other PHP variable and be set to hold an array or even an object value. In this example, we are simply using it to hold the maximum length we have seen so far; if the string has a length longer than the current maximum, we update the context to hold this new maximum length.

After all of the rows have been processed, SQLite calls the max_len_finalize function to determine the aggregate result. Here, we could perform some kind of calculation based on the data found in the context. In our simple example though, we have been calculating the result as the query progressed, so we simply need to return the context value.

Подсказка

It is NOT recommended for you to store a copy of the values in the context and then process them at the end, as you would cause SQLite to use a lot of memory to process the query - just think of how much memory you would need if a million rows were stored in memory, each containing a string 32 bytes in length.

Подсказка

You can use PDO::sqliteCreateFunction and PDO::sqliteCreateAggregate to override SQLite native SQL functions.

Замечание:

This method is not available with the SQLite2 driver. Use the old style sqlite API for that instead.

Смотрите также

  • PDO::sqliteCreateFunction
  • sqlite_create_function() - Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_create_aggregate() - Регистрирует агрегирующую функцию для использования в SQL-запросах


Registers a User Defined Function for use as a collating function in SQL statements

  • « PDO::sqliteCreateAggregate
  • PDO::sqliteCreateFunction »
  • PHP Manual
  • SQLite (PDO)
  • Registers a User Defined Function for use as a collating function in SQL statements

PDO::sqliteCreateCollation

(PHP 5 >= 5.3.11, PHP 7)

PDO::sqliteCreateCollation — Registers a User Defined Function for use as a collating function in SQL statements

Описание

public bool PDO::sqliteCreateCollation ( string $name , callable $callback )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

name

Name of the SQL collating function to be created or redefined.

callback

The name of a PHP function or user-defined function to apply as a callback, defining the behavior of the collation. It should accept two strings and return as strcmp() does, i.e. it should return -1, 1, or 0 if the first string sorts before, sorts after, or is equal to the second.

This function need to be defined as:

int collation ( string $string1 , string $string2 )

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 PDO::sqliteCreateCollation() example

<?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

Примечания

Замечание:

This method is not available with the SQLite2 driver. Use the old style sqlite API for that instead.


Registers a User Defined Function for use in SQL statements

  • « PDO::sqliteCreateCollation
  • 4D (PDO) »
  • PHP Manual
  • SQLite (PDO)
  • Registers a User Defined Function for use in SQL statements

PDO::sqliteCreateFunction

(PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)

PDO::sqliteCreateFunction — Registers a User Defined Function for use in SQL statements

Описание

public bool PDO::sqliteCreateFunction ( string $function_name , callable $callback [, int $num_args ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This method allows you to register a PHP function with SQLite as an UDF (User Defined Function), so that it can be called from within your SQL statements.

The UDF can be used in any SQL statement that can call functions, such as SELECT and UPDATE statements and also in triggers.

Список параметров

function_name

The name of the function used in SQL statements.

callback

Callback function to handle the defined SQL function.

Замечание: Callback functions should return a type understood by SQLite (i.e. scalar type).

num_args

Hint to the SQLite parser if the callback function accepts a predetermined number of arguments.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 PDO::sqliteCreateFunction() example

<?php
function md5_and_reverse($string)
{
    return strrev(md5($string));
}

$db = new PDO('sqlite:sqlitedb');
$db->sqliteCreateFunction('md5rev', 'md5_and_reverse', 1);
$rows = $db->query('SELECT md5rev(filename) FROM files')->fetchAll();
?>

In this example, we have a function that calculates the md5 sum of a string, and then reverses it. When the SQL statement executes, it returns the value of the filename transformed by our function. The data returned in $rows contains the processed result.

The beauty of this technique is that you do not need to process the result using a foreach loop after you have queried for the data.

Подсказка

You can use PDO::sqliteCreateFunction and PDO::sqliteCreateAggregate to override SQLite native SQL functions.

Замечание:

This method is not available with the SQLite2 driver. Use the old style sqlite API for that instead.

Смотрите также

  • PDO::sqliteCreateAggregate
  • sqlite_create_function() - Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_create_aggregate() - Регистрирует агрегирующую функцию для использования в SQL-запросах


4D Functions (PDO_4D)

Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

PDO_4D is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to 4D databases.

4D is an integrated platform that speeds and simplifies the development and deployment of business applications, used in over 70 countries, by a community of thousands of developers and vertical solution providers, with millions of end-users worldwide.

By offering a suite of integrated tools such as an ANSI SQL relational and transactional database, a graphical development environment, a fourth-generation language with over 1000 high-level commands, a built-in HTTP server, application server, etc., 4D facilitates the creation and maintenance of applications from one to hundreds of simultaneous users, whether on Windows, Mac or from any Web client.

4D is also an open platform, offering a complete API for plug-in creation, including various connectors that allow it to act as a back-end or front-end for many environments (Oracle via OCI, SOAP client or server, Flex data source, all ODBC databases, XML over HTTP, etc.)

In addition to the ability to interact with 4D applications across Web Services, 4D databases can now be directly accessed using the PDO_4D driver.

More details about the 4D development environment on » http://www.4d.com/.

PDO_4D is known to work with 4D versions 12 beta and up, for Mac OS X and Windows. Older plat-forms may work, but are unsupported.

Содержание

  • PDO_4D DSN — Connecting to 4D SQL server
  • Constants for PDO_4D — Constants for PDO_4D
  • SQL types with PDO_4D and PHP — SQL types with PDO_4D and PHP
  • SQL acceptable by 4D — PDO and SQL 4D
  • Examples with PDO_4D — Examples PDO_4D


Connecting to 4D SQL server

  • « 4D (PDO)
  • Constants for PDO_4D »
  • PHP Manual
  • 4D (PDO)
  • Connecting to 4D SQL server

PDO_4D DSN

(Информация о версии неизвестна, возможно, только в SVN)

PDO_4D DSN — Connecting to 4D SQL server

Описание

The PDO_4D DSN consists of:

DSN prefix

The DSN prefix is 4D:.

host

The host on which the 4D SQL server is.

port

The port number for the server. This is optional.

user

The login name when connecting to the database.

password

The password for the above login.

dbname

The name of the database. This parameter is optional, and it is not used.

charset

The 4D character set.

Примеры

Пример #1 DSN examples for PDO_4D

The following examples has two DSN for PDO_4D, that connects to a 4D database :

4D:host=localhost;CHARSET=Windows-1251
Other possible values :
4D:host=localhost
4D:


Constants for PDO_4D

(Информация о версии неизвестна, возможно, только в SVN)

Constants for PDO_4D — Constants for PDO_4D

Предопределенные константы

Перечисленные ниже константы определены данным драйвером и будут доступны только в случае, если PHP был собран с поддержкой этого расширения или данное расширение было подгружено динамически во время выполнения. Вдобавок, эти драйверо-зависимые константы должны быть использованы только совместно с этим драйвером. Использование атрибутов, специфичных для некоторого драйвера с другим драйвером может вызвать неожиданное поведение. Если ваш код выполняется с несколькими драйверами, то можно использовать функцию PDO::getAttribute() для получения атрибута PDO_ATTR_DRIVER_NAME для проверки драйвера.

PDO::FOURD_ATTR_CHARSET (integer)

Change the charset in which 4D returns data. (Default is UTF-8).

PDO::FOURD_ATTR_PREFERRED_IMAGE_TYPES (integer)

The requested format of the image, when selecting a row with a column type PICTURE. It may be any type that 4D supports.


SQL types with PDO_4D and PHP

(Информация о версии неизвестна, возможно, только в SVN)

SQL types with PDO_4D and PHP — SQL types with PDO_4D and PHP

Supported SQL types
Type SQL 4D | Equivalent 4D | Note
ALPHA_NUMERIC | TEXT |
VARCHAR | TEXT |
TEXT | TEXT |
TIMESTAMP | DATE |
INTERVAL | HOUR |
DURATION | HOUR |
BOOLEAN | BOOLEAN |
BIT | BOOLEAN |
BYTE | INT32 |
INT16 | SMALLINT |
SMALLINT | SMALLINT |
INT32 | INT32 |
INT | INT32 |
INT64 | INT64 |
NUMERIC | INT64 |
REAL | REAL | Unsupported (use VARCHAR conversion)
FLOAT | FLOAT | Unsupported (use VARCHAR conversion)
DOUBLE PRECISION | FLOAT |
BLOB | BLOB | Must use a prepared statement, and PDO::PARAM_LOB
BIT VARYING | BLOB | Must use a prepared statement, and PDO::PARAM_LOB
CLOB | TEXT |
PICTURE | PICTURE | Must use a prepared statement, and PDO::PARAM_LOB


PDO and SQL 4D

  • « SQL types with PDO_4D and PHP
  • Examples with PDO_4D »
  • PHP Manual
  • 4D (PDO)
  • PDO and SQL 4D

SQL acceptable by 4D

(Информация о версии неизвестна, возможно, только в SVN)

SQL acceptable by 4D — PDO and SQL 4D

Описание

4D implements strictly the ANSI 89 standard, and have it enforced. It is highly recommended to read the 4D SQL documentation to learn about the available commands. The URL of the manual is : » http://doc.4d.com/. Below is a list of 4D SQL characteristics: it is not exhaustive, but may serve as an introduction.

Characteristics of 4D SQL
Characteristics | Alternative | Note
INTEGER | Modify the SQL to use INT. | INT is the supported integer type in 4Dv12.0.
CHAR | Use VARCHAR instead. | Unsupported in 4Dv12.0
UNION | Unsupported. Make separate queries. | Unsupported in 4Dv12.0
SELECT 1 + 1; | SELECT 1 + 1 FROM _USER_SCHEMAS; | FROM is required
FLOAT | Cast the FLOAT value into a FLOAT or STRING, with an SQL 4D function (CAST, ROUND, TRUNC or TRUNCATE) | Unsupported in current versions of the PDO_4D driver
Strong typing | Take care your SQL query, or your PHP code provides data with the expected type | One must provide the right type that 4D expect. One can't insert '1' (as a string) in an INTEGER column.
PDO::execute($row)() : only works if all the table's column are of type TEXT or VARCHAR | Use the prepared statements, and use the right types. | The PDO extension cast all values through execute() as string, and expect the SQL database to parse the values.
SELECT NULL FROM TABLE | Do not use NULL constants. Extract them from the table | It is not allowed to use the NULL constant in the select list
SELECT * FROM TABLE WHERE 1 | Use WHERE 1 = 1 | A constant can't be used in a WHERE clause
SHOW TABLES | Use system tables | The list of tables, schemas, index, etc. are in these system tables : _USER_TABLES, _USER_COLUMNS, _USER_INDEXES, _USER_CONSTRAINTS, _USER_IND_COLUMNS, _USER_CONS_COLUMNS, and _USER_SCHEMAS.
SQL structure delimiter | Use the following function to protect SQL elements: function sqlEscapeElement(elem) { return '[' . str_replace(']',']]', $elem) . ']'; } | To escape SQL elements names (tables, fields, users, groups, schema, primary key, etc.), the whole identifier must be between square brackets, and the closing brackets ']' must be doubled.


Examples PDO_4D

  • « SQL acceptable by 4D
  • Расширения для работы с базами данных отдельных производителей »
  • PHP Manual
  • 4D (PDO)
  • Examples PDO_4D

Examples with PDO_4D

(Информация о версии неизвестна, возможно, только в SVN)

Examples with PDO_4D — Examples PDO_4D

This basic example show how to connect, execute a query, read data and disconnect from a 4D SQL server.

Пример #1 Basic example with PDO_4D

<?php
$dsn = '4D:host=localhost;CHARSET=Windows-1251';
$user = 'test';
$pass = 'test';

// Connection to the 4D SQL server
$db = new PDO($dsn, $user, $pass);

try {
    $db->exec('CREATE TABLE test(id varCHAR(1) NOT NULL, val VARCHAR(10))');
} catch (PDOException $e) {
    die("Erreur 4D : " . $e->getMessage());
}

$db->exec("INSERT INTO test VALUES('A', 'B')");
$db->exec("INSERT INTO test VALUES('C', 'D')");
$db->exec("INSERT INTO test VALUES('E', 'F')");

$stmt = $db->prepare('SELECT id, val from test');

$stmt->execute();
print_r($stmt->fetchAll());

unset($stmt);
unset($db);
?>

Результат выполнения данного примера:

    Array
(
    [0] => Array
        (
            [ID] => A
            [0] => A
            [VAL] => B
            [1] => B
        )

    [1] => Array
        (
            [ID] => C
            [0] => C
            [VAL] => D
            [1] => D
        )

    [2] => Array
        (
            [ID] => E
            [0] => E
            [VAL] => F
            [1] => F
        )

)

This example shows how to execute a query in 4D language, and how to read the result through PDO_4D.

Пример #2 Accessing 4D language from pdo_4d

Set up a 4D method, called method. Make sure in the method properties that the option Available via SQL is checked. The 4D code is the following.

C_TEXT($0)
$0:=Application Version(*)

The PHP code to use the above 4D method is :

<?php
$dsn = '4D:host=localhost;CHARSET=Windows-1251';
$user = 'test';
$pass = 'test';

// Connection to the 4D server
$db = new PDO($dsn, $user, $pass);

$stmt = $db->prepare('SELECT {FN method() AS VARCHAR } FROM _USER_SCHEMAS LIMIT 1');

$stmt->execute();
print_r($stmt->fetchAll());

unset($stmt);
unset($db);
?>

Результат выполнения данного примера:

(
    [0] => Array
        (
            [<expression>] => F0011140
            [0] => F0011140
        )

)

Пример #3 Escaping 4D table names

This examples illustrates how to escape characters in a 4D SQL query.

<?php
$dsn = '4D:host=localhost;CHARSET=Windows-1251';
$user = 'test';
$pass = 'test';

// Connection to 4D server 4D
$db = new PDO($dsn, $user, $pass);

$objects = array('[',']','[]','][','[[',']]','[[[',']]]','TBL ]]32[23');

foreach($objects as $id => $object) {
    $object = str_replace(']',']]', $object);
    print "$object\n";

    $db->exec('CREATE TABLE IF NOT EXISTS ['.$object.'](['.$object.'] FLOAT)');

    $req = "INSERT INTO [$object] ([$object]) VALUES ($id);";
    $db->query($req);

    $q = $db->prepare("SELECT [$object] FROM [$object]");
    $q->execute();
    $x[] = $q->fetch(PDO::FETCH_NUM);

    $db->exec('DROP TABLE ['.$object.'];');
}

?>

Результат выполнения данного примера:

[
]]
[]]
]][
[[
]]]]
[[[
]]]]]]
TBL ]]]]32[23


Расширения для работы с базами данных отдельных производителей

  • CUBRID
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции CUBRID
    • Функиции совместимости CUBRID MySQL
    • Устаревшие псевдонимы и функции CUBRID
  • DB++
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции DB++
  • dBase
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • dBase
  • filePro
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции filePro
  • Firebird/InterBase
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Firebird/InterBase Функции
  • FrontBase
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции FrontBase
  • IBM DB2 — IBM DB2, Cloudscape и Apache Derby
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции IBM DB2
  • Informix
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Informix
  • Ingres — Ingres DBMS, EDBC, and Enterprise Access Gateways
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Ingres Функции
  • MaxDB
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • MaxDB Функции
  • Mongo — Драйвер MongoDB (наследие)
    • Установка и настройка
    • Предопределенные константы
    • Manual
    • Базовые классы
    • Types
    • Классы GridFS
    • Batch Classes
    • Дополнительно
    • Mongo Функции
    • Exceptions
    • Список изменений
  • MongoDB — MongoDB driver
    • Установка и настройка
    • Tutorials
    • Driver Architecture and Internals — Explains the driver architecure, and special features
    • Security
    • MongoDB\Driver — MongoDB driver classes
    • MongoDB\BSON — BSON type classes and serialization functions
    • MongoDB\Driver\Exception — Exception classes
  • mSQL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • mSQL Функции
  • Mssql — Microsoft SQL Server
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Mssql Функции
  • MySQL — MySQL драйверы и плагины
    • Обзор PHP драйверов MySQL
    • MySQLi — Улучшенный модуль MySQL (MySQL Improved)
    • MySQL (Original) — Оригинальное API MySQL
    • Mysqlnd — Встроенный драйвер MySQL
    • mysqlnd_ms — Плагин репликации и балансировки нагрузки для mysqlnd
    • mysqlnd_qc — Mysqlnd query result cache plugin
    • mysqlnd_uh — Mysqlnd user handler plugin
    • mysqlnd_mux — Mysqlnd connection multiplexing plugin
    • mysqlnd_memcache — Mysqlnd Memcache plugin
  • OCI8 — Oracle OCI8
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Работа с соединениями OCI8 и Connection Pooling
    • OCI8 Fast Application Notification (FAN) Support
    • OCI8 and DTrace Dynamic Tracing
    • Поддерживаемые типы данных
    • OCI8 Функции
    • OCI-Collection — The OCI-Collection class
    • OCI-Lob — The OCI-Lob class
    • Устаревшие наименования и функции OCI8
  • Paradox — Paradox File Access
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Paradox Функции
  • PostgreSQL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • PostgreSQL
  • SQLite
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • SQLite
  • SQLite3
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • SQLite3 — Класс SQLite3
    • SQLite3Stmt — The SQLite3Stmt class
    • SQLite3Result — The SQLite3Result class
  • SQLSRV — Драйвер СУБД Microsoft SQL Server для PHP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции SQLSRV
  • Sybase
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Sybase Функции
  • tokyo_tyrant
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • TokyoTyrant — The TokyoTyrant class
    • TokyoTyrantTable — The TokyoTyrantTable class
    • TokyoTyrantQuery — The TokyoTyrantQuery class
    • TokyoTyrantIterator — The TokyoTyrantIterator class
    • TokyoTyrantException — The TokyoTyrantException class


CUBRID

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции CUBRID
    • cubrid_bind — Связывает переменные с подготовленным запросом
    • cubrid_close_prepare — Закрывает обработчик запроса
    • cubrid_close_request — Закрывает обработчик запроса
    • cubrid_col_get — Получение контента столбца типа коллекция по OID
    • cubrid_col_size — Получает количество элементов в столбце типа коллекция по OID
    • cubrid_column_names — Получить имена столбцов в результирующем наборе
    • cubrid_column_types — Получить типы столбцов в результирующем наборе
    • cubrid_commit — Подтверждение транзакции
    • cubrid_connect_with_url — Создает окружение для соединения с сервером CUBRID
    • cubrid_connect — Открывает соединение к серверу CUBRID
    • cubrid_current_oid — Возвращает OID текущей позиции курсора
    • cubrid_disconnect — Закрывает соединение с базой данных
    • cubrid_drop — Удаление экземпляра по OID
    • cubrid_error_code_facility — Получить код уровня, на котором произошла ошибка
    • cubrid_error_code — Получить код ошибки
    • cubrid_error_msg — Возвращает текст последней произошедшей ошибки
    • cubrid_execute — Execute a prepared SQL statement
    • cubrid_fetch — Fetch the next row from a result set
    • cubrid_free_result — Free the memory occupied by the result data
    • cubrid_get_autocommit — Возвращает настройку авто-коммита для соединения
    • cubrid_get_charset — Возвращает кодировку текущего соединения CUBRID
    • cubrid_get_class_name — Get the class name using OID
    • cubrid_get_client_info — Return the client library version
    • cubrid_get_db_parameter — Returns the CUBRID database parameters
    • cubrid_get_query_timeout — Get the query timeout value of the request
    • cubrid_get_server_info — Return the CUBRID server version
    • cubrid_get — Get a column using OID
    • cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column
    • cubrid_is_instance — Check whether the instance pointed by OID exists
    • cubrid_lob_close — Close BLOB/CLOB data
    • cubrid_lob_export — Export BLOB/CLOB data to file
    • cubrid_lob_get — Get BLOB/CLOB data
    • cubrid_lob_send — Read BLOB/CLOB data and send straight to browser
    • cubrid_lob_size — Get BLOB/CLOB data size
    • cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters.
    • cubrid_lob2_close — Close LOB object.
    • cubrid_lob2_export — Export the lob object to a file.
    • cubrid_lob2_import — Import BLOB/CLOB data from a file.
    • cubrid_lob2_new — Create a lob object.
    • cubrid_lob2_read — Read from BLOB/CLOB data.
    • cubrid_lob2_seek64 — Move the cursor of a lob object.
    • cubrid_lob2_seek — Move the cursor of a lob object.
    • cubrid_lob2_size64 — Get a lob object's size.
    • cubrid_lob2_size — Get a lob object's size.
    • cubrid_lob2_tell64 — Tell the cursor position of the LOB object.
    • cubrid_lob2_tell — Tell the cursor position of the LOB object.
    • cubrid_lob2_write — Write to a lob object.
    • cubrid_lock_read — Set a read lock on the given OID
    • cubrid_lock_write — Set a write lock on the given OID
    • cubrid_move_cursor — Move the cursor in the result
    • cubrid_next_result — Get result of next query when executing multiple SQL statements
    • cubrid_num_cols — Return the number of columns in the result set
    • cubrid_num_rows — Get the number of rows in the result set
    • cubrid_pconnect_with_url — Open a persistent connection to CUBRID server
    • cubrid_pconnect — Open a persistent connection to a CUBRID server
    • cubrid_prepare — Prepare a SQL statement for execution
    • cubrid_put — Update a column using OID
    • cubrid_rollback — Roll back a transaction
    • cubrid_schema — Get the requested schema information
    • cubrid_seq_drop — Delete an element from sequence type column using OID
    • cubrid_seq_insert — Insert an element to a sequence type column using OID
    • cubrid_seq_put — Update the element value of sequence type column using OID
    • cubrid_set_add — Insert a single element to set type column using OID
    • cubrid_set_autocommit — Устанавливает режим авто-коммита для соединения
    • cubrid_set_db_parameter — Sets the CUBRID database parameters
    • cubrid_set_drop — Delete an element from set type column using OID
    • cubrid_set_query_timeout — Set the timeout time of query execution
    • cubrid_version — Получить версию модуля CUBRID PHP
  • Функиции совместимости CUBRID MySQL
    • cubrid_affected_rows — Return the number of rows affected by the last SQL statement
    • cubrid_client_encoding — Возвращает кодировку текущего соединения CUBRID
    • cubrid_close — Закрывает соединение с базой данных
    • cubrid_data_seek — Move the internal row pointer of the CUBRID result
    • cubrid_db_name — Get db name from results of cubrid_list_dbs
    • cubrid_errno — Возвращает код ошибки предыдущей операции CUBRID
    • cubrid_error — Возвращает текст последней произошедшей ошибки
    • cubrid_fetch_array — Fetch a result row as an associative array, a numeric array, or both
    • cubrid_fetch_assoc — Return the associative array that corresponds to the fetched row
    • cubrid_fetch_field — Get column information from a result and return as an object
    • cubrid_fetch_lengths — Return an array with the lengths of the values of each field from the current row
    • cubrid_fetch_object — Fetche the next row and returns it as an object
    • cubrid_fetch_row — Return a numerical array with the values of the current row
    • cubrid_field_flags — Return a string with the flags of the given field offset
    • cubrid_field_len — Get the maximum length of the specified field
    • cubrid_field_name — Return the name of the specified field index
    • cubrid_field_seek — Move the result set cursor to the specified field offset
    • cubrid_field_table — Return the name of the table of the specified field
    • cubrid_field_type — Return the type of the column corresponding to the given field offset
    • cubrid_list_dbs — Return an array with the list of all existing CUBRID databases
    • cubrid_num_fields — Return the number of columns in the result set
    • cubrid_ping — Проверяет, живо ли соединение к серверу и переподнимает его, если нет
    • cubrid_query — Send a CUBRID query
    • cubrid_real_escape_string — Escape special characters in a string for use in an SQL statement
    • cubrid_result — Return the value of a specific field in a specific row
    • cubrid_unbuffered_query — Perform a query without fetching the results into memory
  • Устаревшие псевдонимы и функции 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, может быть найдена здесь: » http://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 "Database Connection Error";
            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 "Database Connection Error";
            exit;
        }
    ?>
    <?php
        $sql = "insert into olympic (host_year,host_nation,host_city,"
            . "opening_date,closing_date) values (2008, 'China', 'Beijing',"
            . "to_date('08-08-2008','mm-dd- yyyy'),to_date('08-24-2008','mm-dd-yyyy')) ;"
        $result = cubrid_execute($cubrid_con, $sql);
        if ($result) {
            /**
             * Обработали успешно, можно коммитить.
             */
            cubrid_commit($cubrid_con);
            echo("Inserted successfully ");
        } else {
            /**
             * Произошла ошибка, значит выводим ее на экран и откатываемся.
             */
            echo(cubrid_error_msg());
            cubrid_rollback($cubrid_con);
        }
        cubrid_disconnect($cubrid_con);
    ?>
    </body>
    </html>


Функции CUBRID

Содержание

  • cubrid_bind — Связывает переменные с подготовленным запросом
  • cubrid_close_prepare — Закрывает обработчик запроса
  • cubrid_close_request — Закрывает обработчик запроса
  • cubrid_col_get — Получение контента столбца типа коллекция по OID
  • cubrid_col_size — Получает количество элементов в столбце типа коллекция по OID
  • cubrid_column_names — Получить имена столбцов в результирующем наборе
  • cubrid_column_types — Получить типы столбцов в результирующем наборе
  • cubrid_commit — Подтверждение транзакции
  • cubrid_connect_with_url — Создает окружение для соединения с сервером CUBRID
  • cubrid_connect — Открывает соединение к серверу CUBRID
  • cubrid_current_oid — Возвращает OID текущей позиции курсора
  • cubrid_disconnect — Закрывает соединение с базой данных
  • cubrid_drop — Удаление экземпляра по OID
  • cubrid_error_code_facility — Получить код уровня, на котором произошла ошибка
  • cubrid_error_code — Получить код ошибки
  • cubrid_error_msg — Возвращает текст последней произошедшей ошибки
  • cubrid_execute — Execute a prepared SQL statement
  • cubrid_fetch — Fetch the next row from a result set
  • cubrid_free_result — Free the memory occupied by the result data
  • cubrid_get_autocommit — Возвращает настройку авто-коммита для соединения
  • cubrid_get_charset — Возвращает кодировку текущего соединения CUBRID
  • cubrid_get_class_name — Get the class name using OID
  • cubrid_get_client_info — Return the client library version
  • cubrid_get_db_parameter — Returns the CUBRID database parameters
  • cubrid_get_query_timeout — Get the query timeout value of the request
  • cubrid_get_server_info — Return the CUBRID server version
  • cubrid_get — Get a column using OID
  • cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column
  • cubrid_is_instance — Check whether the instance pointed by OID exists
  • cubrid_lob_close — Close BLOB/CLOB data
  • cubrid_lob_export — Export BLOB/CLOB data to file
  • cubrid_lob_get — Get BLOB/CLOB data
  • cubrid_lob_send — Read BLOB/CLOB data and send straight to browser
  • cubrid_lob_size — Get BLOB/CLOB data size
  • cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters.
  • cubrid_lob2_close — Close LOB object.
  • cubrid_lob2_export — Export the lob object to a file.
  • cubrid_lob2_import — Import BLOB/CLOB data from a file.
  • cubrid_lob2_new — Create a lob object.
  • cubrid_lob2_read — Read from BLOB/CLOB data.
  • cubrid_lob2_seek64 — Move the cursor of a lob object.
  • cubrid_lob2_seek — Move the cursor of a lob object.
  • cubrid_lob2_size64 — Get a lob object's size.
  • cubrid_lob2_size — Get a lob object's size.
  • cubrid_lob2_tell64 — Tell the cursor position of the LOB object.
  • cubrid_lob2_tell — Tell the cursor position of the LOB object.
  • cubrid_lob2_write — Write to a lob object.
  • cubrid_lock_read — Set a read lock on the given OID
  • cubrid_lock_write — Set a write lock on the given OID
  • cubrid_move_cursor — Move the cursor in the result
  • cubrid_next_result — Get result of next query when executing multiple SQL statements
  • cubrid_num_cols — Return the number of columns in the result set
  • cubrid_num_rows — Get the number of rows in the result set
  • cubrid_pconnect_with_url — Open a persistent connection to CUBRID server
  • cubrid_pconnect — Open a persistent connection to a CUBRID server
  • cubrid_prepare — Prepare a SQL statement for execution
  • cubrid_put — Update a column using OID
  • cubrid_rollback — Roll back a transaction
  • cubrid_schema — Get the requested schema information
  • cubrid_seq_drop — Delete an element from sequence type column using OID
  • cubrid_seq_insert — Insert an element to a sequence type column using OID
  • cubrid_seq_put — Update the element value of sequence type column using OID
  • cubrid_set_add — Insert a single element to set type column using OID
  • cubrid_set_autocommit — Устанавливает режим авто-коммита для соединения
  • cubrid_set_db_parameter — Sets the CUBRID database parameters
  • cubrid_set_drop — Delete an element from set type column using OID
  • cubrid_set_query_timeout — Set the timeout time of query execution
  • cubrid_version — Получить версию модуля CUBRID PHP


Связывает переменные с подготовленным запросом

  • « Функции CUBRID
  • cubrid_close_prepare »
  • PHP Manual
  • Функции CUBRID
  • Связывает переменные с подготовленным запросом

cubrid_bind

(PECL CUBRID >= 8.3.0)

cubrid_bind — Связывает переменные с подготовленным запросом

Описание

bool cubrid_bind ( resource $req_identifier , int $bind_index , mixed $bind_value [, string $bind_value_type ] )

Функция cubrid_bind() используется для привязки значений к указанным меткам, либо знакам вопроса, в SQL-запросе, заданном cubrid_prepare(). Если не задан параметр bind_value_type, то будет использоваться строковый тип.

Замечание:

Если привязываемые данные имеют тип BLOB/CLOB, CUBRID попытается использовать их как потоки PHP. Если фактическое привязываемое значение не является потоком, то CUBRID сконвертирует его в строку и будет считать полным путем к файлу, где эти данные лежат.

Если тип данных, которые будут связаны явно является ENUM, то параметр $bind_value должен быть элементом ENUM заданным в виде строки.

В окружении сегмента CUBRID, $bind_value_type должен быть включен в функцию cubrid_bind.

В следующей таблице приведены типы замещающих значений.

Привязка типов в CUBRID
Уровень поддержки | Тип привязки | Соответствующий SQL-тип
Поддерживается | STRING | CHAR, VARCHAR
 | NCHAR | NCHAR, NVARCHAR
 | BIT | BIT, VARBIT
 | NUMERIC or NUMBER | SHORT, INT, NUMERIC
 | FLOAT | FLOAT
 | DOUBLE | DOUBLE
 | TIME | TIME
 | DATE | DATE
 | TIMESTAMP | TIMESTAMP
 | OBJECT | OBJECT
 | ENUM | ENUM
 | BLOB | BLOB
 | CLOB | CLOB
 | NULL | NULL
Не поддерживается | SET | SET
 | MULTISET | MULTISET
 | SEQUENCE | SEQUENCE

Список параметров

req_identifier

Идентификатор запроса, полученный из cubrid_prepare().

bind_index

Расположение связавыемых параметров. Начинаются с 1.

bind_value

Фактическое значения для привязки.

bind_value_type

Тип связываемого значения. (По умолчанию не задано. Таким образом, по умолчанию используется тип STRING. Однако, вы должны явно указать тип для значений NCHAR, BIT, или BLOB/CLOB).

Возвращаемые значения

TRUE, в случае успеха.

FALSE, в случае неудачи.

Список изменений

Версия | Описание
8.3.1 | Добавлена поддержка типов данных BLOB/CLOB.

Примеры

Пример #1 Пример использования cubrid_bind()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE sports='Basketball' and gender='M'");
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$game_req = cubrid_prepare($conn, "SELECT athlete_code FROM game WHERE host_year=1992 and event_code=? and nation_code='USA'");
cubrid_bind($game_req, 1, $event_code, "number");
cubrid_execute($game_req);

printf("--- Dream Team (1992 United States men's Olympic basketball team) ---\n");
while ($athlete_code = cubrid_fetch_array($game_req, CUBRID_NUM)) {
    $athlete_req = cubrid_prepare($conn, "SELECT name FROM athlete WHERE code=? AND nation_code='USA' AND event='Basketball' AND gender='M'");
    cubrid_bind($athlete_req, 1, $athlete_code[0], "number");
    cubrid_execute($athlete_req);
    $row = cubrid_fetch_assoc($athlete_req);
    printf("%s\n", $row["name"]);
}

cubrid_close_request($game_req);
cubrid_close_request($athlete_req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

--- Dream Team (1992 United States men's Olympic basketball team) ---
Stockton John
Robinson David
Pippen Scottie
Mullin C.
Malone Karl
Laettner C.
Jordan Michael
Johnson Earvin
Ewing Patrick
Drexler Clyde
Bird Larry
Barkley Charles

Пример #2 Пример использования cubrid_bind() с BLOB/CLOB

<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
    cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
    cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (doc_content CLOB)");
    $sql = "INSERT INTO php_cubrid_lob_test(doc_content) VALUES(?)";
    $req = cubrid_prepare($con, $sql);

    $fp = fopen("book.txt", "rb");

    cubrid_bind($req, 1, $fp, "clob");
    cubrid_execute($req);
}
?>

Пример #3 Пример использования cubrid_bind() с BLOB/CLOB

<?php
$con = cubrid_connect("localhost", 33000, "demodb", "dba", "");
if ($con) {
    cubrid_execute($con,"DROP TABLE if exists php_cubrid_lob_test");
    cubrid_execute($con,"CREATE TABLE php_cubrid_lob_test (image BLOB)");
    $sql = "INSERT INTO php_cubrid_lob_test(image) VALUES(?)";
    $req = cubrid_prepare($con, $sql);

    cubrid_bind($req, 1, "cubrid_logo.png", "blob");
    cubrid_execute($req);
}
?>

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_prepare() - Prepare a SQL statement for execution


Закрывает обработчик запроса

  • « cubrid_bind
  • cubrid_close_request »
  • PHP Manual
  • Функции CUBRID
  • Закрывает обработчик запроса

cubrid_close_prepare

(PECL CUBRID >= 8.3.0)

cubrid_close_prepare — Закрывает обработчик запроса

Описание

bool cubrid_close_prepare ( resource $req_identifier )

Функция 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 — Закрывает обработчик запроса

Описание

bool cubrid_close_request ( resource $req_identifier )

Функция 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

Описание

array cubrid_col_get ( resource $conn_identifier , string $oid , string $attr_name )

Функция 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

Описание

int cubrid_col_size ( resource $conn_identifier , string $oid , string $attr_name )

Функция 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 — Получить имена столбцов в результирующем наборе

Описание

array cubrid_column_names ( resource $req_identifier )

Функция cubrid_column_names() используется для получения имен столбцов в результирующем наборе, заданном в req_identifier.

Список параметров

req_identifier

Идентификатор запроса.

Возвращаемые значения

Массив строк, содержащих имена столбцов, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_column_names()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
    $column_len = cubrid_field_len($result, $i);
    printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10

Смотрите также

  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_column_types() - Получить типы столбцов в результирующем наборе


Получить типы столбцов в результирующем наборе

  • « cubrid_column_names
  • cubrid_commit »
  • PHP Manual
  • Функции CUBRID
  • Получить типы столбцов в результирующем наборе

cubrid_column_types

(PECL CUBRID >= 8.3.0)

cubrid_column_types — Получить типы столбцов в результирующем наборе

Описание

array cubrid_column_types ( resource $req_identifier )

Функция cubrid_column_types() используется для получения типов столбцов в результирующем наборе, заданном в req_identifier.

Список параметров

req_identifier

Request identifier.

Возвращаемые значения

Массив строк, содержащих типы столбцов, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 cubrid_column_types() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");
$result = cubrid_execute($conn, "SELECT * FROM game WHERE host_year=2004 AND nation_code='AUS' AND medal='G'");

$column_names = cubrid_column_names($result);
$column_types = cubrid_column_types($result);

printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Maxlen");
for($i = 0, $size = count($column_names); $i < $size; $i++) {
    $column_len = cubrid_field_len($result, $i);
    printf("%-30s %-30s %-15s\n", $column_names[$i], $column_types[$i], $column_len);
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Column Names                   Column Types                   Column Maxlen
host_year                      integer                        11
event_code                     integer                        11
athlete_code                   integer                        11
stadium_code                   integer                        11
nation_code                    char                           3
medal                          char                           1
game_date                      date                           10

Смотрите также

  • cubrid_column_names() - Получить имена столбцов в результирующем наборе
  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_execute() - Execute a prepared SQL statement


Подтверждение транзакции

  • « cubrid_column_types
  • cubrid_connect_with_url »
  • PHP Manual
  • Функции CUBRID
  • Подтверждение транзакции

cubrid_commit

(PECL CUBRID >= 8.3.0)

cubrid_commit — Подтверждение транзакции

Описание

bool cubrid_commit ( resource $conn_identifier )

Функция cubrid_commit() используется для подтверждения изменений, произведенных в транзакции в соединении conn_identifier, После вызова функции cubrid_commit(), соединение с сервером будет закрыто, но обработчик соединения все еще будет корректным.

В CUBRID PHP, режим авто-коммита для транзакций по умолчанию отключен. Вы можете разрешить или запретить его принудительно с помощью функции cubrid_set_autocommit(). Узнать текущий статус можно функцией cubrid_get_autocommit(). Перед тем как начать транзакцию, убедитесь, что авто-коммит запрещен.

Список параметров

conn_identifier

Идентификатор соединения.

Возвращаемые значения

TRUE, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_commit()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;
cubrid_set_autocommit($conn,false);
if (!cubrid_execute($conn, $sql)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n", cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}

$req = cubrid_prepare($conn, "INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01", "P02", "P03", "P04");
$name_list = array("Abatis Publishers", "Core Dump Books", "Schadenfreude Press", "Tenterhooks Press");
$city_list = array("New York", "San Francisco", "Hamburg", "Berkeley");
$state_list = array("NY", "CA", NULL, "CA");
$country_list = array("USA", "USA", "Germany", "USA");

for ($i = 0, $size = count($id_list); $i < $size; $i++) {
    cubrid_bind($req, 1, $id_list[$i]);
    cubrid_bind($req, 2, $name_list[$i]);
    cubrid_bind($req, 3, $city_list[$i]);
    cubrid_bind($req, 4, $state_list[$i]);
    cubrid_bind($req, 5, $country_list[$i]);

    if (!($ret = cubrid_execute($req))) {
        break;
    }
}

if (!$ret) {
    cubrid_rollback($conn);
} else {
    cubrid_commit($conn);

    $req = cubrid_execute($conn, "SELECT * FROM publishers");
    while ($result = cubrid_fetch_assoc($req)) {
        printf("%-3s %-20s %-15s %-3s %-15s\n",
            $result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
    }
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

P01 Abatis Publishers    New York        NY  USA
P02 Core Dump Books      San Francisco   CA  USA
P03 Schadenfreude Press  Hamburg             Germany
P04 Tenterhooks Press    Berkeley        CA  USA

Смотрите также

  • cubrid_rollback() - Roll back a transaction
  • cubrid_get_autocommit() - Возвращает настройку авто-коммита для соединения
  • cubrid_set_autocommit() - Устанавливает режим авто-коммита для соединения


Создает окружение для соединения с сервером CUBRID

  • « cubrid_commit
  • cubrid_connect »
  • PHP Manual
  • Функции CUBRID
  • Создает окружение для соединения с сервером CUBRID

cubrid_connect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_connect_with_url — Создает окружение для соединения с сервером CUBRID

Описание

resource cubrid_connect_with_url ( string $conn_url [, string $userid [, string $passwd [, bool $new_link = false ]]] )

Функция cubrid_connect_with_url() используется для создания окружения для соединения с сервером посредством информации заданной в виде строки URL. Если в CUBRID разрешена функциональность высокой доступности, необходимо задать информация для соединения с резервным сервером, которая будет использоваться для соединения, если с основным что-то случится. Если логин и пароль не заданы, то по умолчанию будет использоваться соединение "PUBLIC".

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : Имя хоста или IP-адрес основного сервера
  • db_name : имя базы данных
  • db_user : Имя пользователя
  • db_password : пароль
  • alhosts : Задает информацию о брокере резервного сервера, который будет использоваться в случае недоступности основного. Если вы зададите несколько резервных брокеров, то попытки соединения будут происходить в том же порядке, как они описаны в URL.
  • rctime : Интервал между попытками подключения к активному брокеру, в котором произошел сбой. после возникновения ошибки, система соединится с резервным брокерам, указанном в в althosts (failover), откатит незавершенные транзакции, и затем попытается соединиться с активным брокером основного узла через каждые rctime. Значение по умолчанию 600 секунд.
  • login_timeout : Максимальное время (миллисекунды) ожидания авторизации. По умолчанию 0, что обозначает бесконечное время ожидания.
  • query_timeout : Максимальное время (миллисекунды) ожидания выполнения запроса. По исчерпании этого времени на сервер будет отослано сообщение о прекращении запроса. Возвращенное значение запроса будет зависить от настройки disconnect_on_query_timeout; даже если будет послано сообщение о прекращении запроса, он все еще может завершиться удачно.
  • disconnect_on_query_timeout : Определяет, будет ли сразу после истечения таймаута для запроса возвращена ошибка. По умолчанию FALSE.

Замечание:

Символы ? и : являются специальными в URL соединения и не могут быть использованы в пароле. Пример некорректного пароля, который нельзя использовать в строке соединения, потому, что в нем используются символы "?:".

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

Пароли, содержащие ? или : могут быть посланы отдельно.

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_connect_with_url($url, "dba", "12?");

Если логин или пароль пусты, необходимо все равно сохранять символы ":":

$url = "CUBRID:localhost:33000:demodb:::";

Список параметров

conn_url

Строка, содержащая информацию для соединения.

userid

Имя пользователя.

passwd

пароль.

new_link

Если функция cubrid_connect_with_url() была вызвана повторно с такими же аргументами, новое соединение не будет создано, вместо него будет возвращен идентификатор уже существующего подключения. Параметр new_link меняет такое поведение и вынуждает cubrid_connect_with_url() в любом случае создать новое соединение, даже если функция cubrid_connect_with_url() ранее была вызвана с такими же аргументами.

Возвращаемые значения

Идентификатор подключения в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_connect_with_url() без задания свойств

<?php
$conn_url = "CUBRID:localhost:33000:demodb:dba::";
$con = cubrid_connect_with_url($conn_url);

if ($con) {
   echo "connected successfully";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }
   cubrid_disconnect($con);
}
?>

Пример #2 Пример использования cubrid_connect_with_url() с заданием свойств

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::?login_timeout=100"
$con = cubrid_connect_with_url ($conn_url);

if ($con) {
   echo "connected successfully";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request($req);
      cubrid_commit($con);
   } else {
      cubrid_rollback($con);
   }
   cubrid_disconnect($con);
}
?>

Смотрите также

  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных


Открывает соединение к серверу CUBRID

  • « cubrid_connect_with_url
  • cubrid_current_oid »
  • PHP Manual
  • Функции CUBRID
  • Открывает соединение к серверу CUBRID

cubrid_connect

(PECL CUBRID >= 8.3.1)

cubrid_connect — Открывает соединение к серверу CUBRID

Описание

resource cubrid_connect ( string $host , int $port , string $dbname [, string $userid [, string $passwd [, bool $new_link = false ]]] )

Функция cubrid_connect() используется для создания соединения с сервером, используя его адрес, порт, имя базы данных, имени пользователя и пароля. Если логин и пароль не заданы, то по умолчанию будет использоваться соединение "PUBLIC".

Список параметров

host

Имя хоста или IP-адрес сервера CUBRID CAS.

port

Порт сервера CUBRID CAS (BROKER_PORT в $CUBRID/conf/cubrid_broker.conf).

dbname

Имя базы данных.

userid

Имя пользователя. Если не задано, то будет использовано имя по умолчанию "public".

passwd

Пароль. Если не задан, то будет использоваться "".

new_link

Если функция cubrid_connect_with_url() была вызвана повторно с такими же аргументами, новое соединение не будет создано, вместо него будет возвращен идентификатор уже существующего подключения. Параметр new_link меняет такое поведение и вынуждает cubrid_connect_with_url() в любом случае создать новое соединение, даже если функция cubrid_connect_with_url() ранее была вызвана с такими же аргументами.

Возвращаемые значения

Идентификатор подключения в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_connect()

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Смотрите также

  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_connect_with_url() - Создает окружение для соединения с сервером CUBRID
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных


Возвращает OID текущей позиции курсора

  • « cubrid_connect
  • cubrid_disconnect »
  • PHP Manual
  • Функции CUBRID
  • Возвращает OID текущей позиции курсора

cubrid_current_oid

(PECL CUBRID >= 8.3.0)

cubrid_current_oid — Возвращает OID текущей позиции курсора

Описание

string cubrid_current_oid ( resource $req_identifier )

Функция cubrid_current_oid() используется для получения oid текущего положения курсора в результирующем наборе. Для использования функции cubrid_current_oid(), запущенный запрос должен быть обновляемым, и при запуске запроса была задана опция CUBRID_INCLUDE_OID.

Список параметров

req_identifier

Идентификатор запроса.

Возвращаемые значения

Oid текущего положения курсора, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_current_oid()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code", CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);
$res = cubrid_get($conn, $oid);

print_r($res);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Array
(
    [s_name] => X
    [f_name] => Mixed
)

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement


Закрывает соединение с базой данных

  • « cubrid_current_oid
  • cubrid_drop »
  • PHP Manual
  • Функции CUBRID
  • Закрывает соединение с базой данных

cubrid_disconnect

(PECL CUBRID >= 8.3.0)

cubrid_disconnect — Закрывает соединение с базой данных

Описание

bool cubrid_disconnect ([ resource $conn_identifier ] )

Функция 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

Описание

bool cubrid_drop ( resource $conn_identifier , string $oid )

Функция cubrid_drop() используется для удаления экземпляра из из базы данных, заданного его oid.

Список параметров

conn_identifier

Connection identifier.

oid

Oid экземпляра, который надо удалить.

Возвращаемые значения

TRUE, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_drop()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

printf("--- Before Drop: ---\n");
$attr = cubrid_get($conn, $oid);
var_dump($attr);

if (cubrid_drop($conn, $oid)) {
    cubrid_commit($conn);
} else {
    cubrid_rollback($conn);
}

cubrid_close_request($req);

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

printf("\n--- After Drop: ---\n");
$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

--- Before Drop: ---
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

--- After Drop: ---
array(4) {
  ["a"]=>
  string(1) "2"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "4"
    [1]=>
    string(1) "5"
    [2]=>
    string(1) "7"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "44"
    [1]=>
    string(2) "55"
    [2]=>
    string(2) "66"
    [3]=>
    string(3) "666"
  }
  ["d"]=>
  string(10) "b         "
}

Смотрите также

  • cubrid_is_instance() - Check whether the instance pointed by OID exists


Получить код уровня, на котором произошла ошибка

  • « cubrid_drop
  • cubrid_error_code »
  • PHP Manual
  • Функции CUBRID
  • Получить код уровня, на котором произошла ошибка

cubrid_error_code_facility

(PECL CUBRID >= 8.3.0)

cubrid_error_code_facility — Получить код уровня, на котором произошла ошибка

Описание

int cubrid_error_code_facility ( void )

Функция 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 — Получить код ошибки

Описание

int cubrid_error_code ( void )

Функция 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 — Возвращает текст последней произошедшей ошибки

Описание

string cubrid_error_msg ( void )

Функция cubrid_error_msg() используется для получения текста произошедшей ошибки. Обычно вы можете получить текст ошибки, если какая либо функция вернула FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текст ошибки.

Примеры

Пример #1 Пример использования cubrid_error_msg()

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

if (!@cubrid_schema($conn, 100000)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n",
        cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}
?>

Результат выполнения данного примера:

Error facility: 2
Error code: -10015
Error msg: Invalid T_CCI_SCH_TYPE value

Смотрите также

  • cubrid_error_code() - Получить код ошибки
  • cubrid_error_code_facility() - Получить код уровня, на котором произошла ошибка


Execute a prepared SQL statement

  • « cubrid_error_msg
  • cubrid_fetch »
  • PHP Manual
  • Функции CUBRID
  • Execute a prepared SQL statement

cubrid_execute

(PECL CUBRID >= 8.3.0)

cubrid_execute — Execute a prepared SQL statement

Описание

resource cubrid_execute ( resource $conn_identifier , string $sql [, int $option ] )
bool cubrid_execute ( resource $request_identifier [, int $option ] )

The cubrid_execute() function is used to execute the given SQL statement. It executes the query by using conn_identifier and SQL, and then returns the request identifier created. It is used for simple execution of query, where the parameter binding is not needed. In addition, the cubrid_execute() function is used to execute the prepared statement by means of cubrid_prepare() and cubrid_bind(). At this time, you need to specify arguments of request_identifier and option.

The option is used to determine whether to get OID after query execution and whether to execute the query in synchronous or asynchronous mode. CUBRID_INCLUDE_OID and CUBRID_ASYNC (or CUBRID_EXEC_QUERY_ALL if you want to execute multiple SQL statements) can be specified by using a bitwise OR operator. If not specified, neither of them isselected. If the flag CUBRID_EXEC_QUERY_ALL is set, a synchronous mode (sync_mode) is used to retrieve query results, and in such cases the following rules are applied:

  • The return value is the result of the first query.
  • If an error occurs in any query, the execution is processed as a failure.
  • In a query composed of q1 q2 q3, if an error occurs in q2 after q1 succeeds the execution, the result of q1 remains valid. That is, the previous successful query executions are not rolled back when an error occurs.
  • If a query is executed successfully, the result of the second query can be obtained using cubrid_next_result().

If the first argument is request_identifier to execute the cubrid_prepare() function, you can specify an option, CUBRID_ASYNC only.

Список параметров

conn_identifier

Connection identifier.

sql

SQL to be executed.

option

Query execution option CUBRID_INCLUDE_OID, CUBRID_ASYNC, CUBRID_EXEC_QUERY_ALL.

request_identifier

cubrid_prepare() identifier.

Возвращаемые значения

Request identifier, when process is successful and first param is conn_identifier; TRUE, when process is successful and first argument is request_identifier.

FALSE, when process is unsuccessful.

Список изменений

Версия | Описание
8.4.0 | Add new option CUBRID_EXEC_QUERY_ALL.

Примеры

Пример #1 cubrid_execute() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$result = cubrid_execute($conn, "SELECT code FROM event WHERE name='100m Butterfly' and gender='M'", CUBRID_ASYNC);
$row = cubrid_fetch_array($result, CUBRID_ASSOC);
$event_code = $row["code"];

cubrid_close_request($result);

$history_req = cubrid_prepare($conn, "SELECT * FROM history WHERE event_code=?");
cubrid_bind($history_req, 1, $event_code, "number");
cubrid_execute($history_req);

printf("%-20s %-9s %-10s %-5s\n", "athlete", "host_year", "score", "unit");
while ($row = cubrid_fetch_array($history_req, CUBRID_ASSOC)) {
    printf("%-20s %-9s %-10s %-5s\n",
        $row["athlete"], $row["host_year"], $row["score"], $row["unit"]);
}

cubrid_close_request($history_req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

athlete              host_year score      unit
Phelps Michael       2004      51.25      time

Смотрите также

  • cubrid_prepare() - Prepare a SQL statement for execution
  • cubrid_bind() - Связывает переменные с подготовленным запросом
  • cubrid_next_result() - Get result of next query when executing multiple SQL statements
  • cubrid_close_request() - Закрывает обработчик запроса
  • cubrid_commit() - Подтверждение транзакции
  • cubrid_rollback() - Roll back a transaction


Fetch the next row from a result set

  • « cubrid_execute
  • cubrid_free_result »
  • PHP Manual
  • Функции CUBRID
  • Fetch the next row from a result set

cubrid_fetch

(PECL CUBRID >= 8.3.0)

cubrid_fetch — Fetch the next row from a result set

Описание

mixed cubrid_fetch ( resource $result [, int $type = CUBRID_BOTH ] )

The cubrid_fetch() function is used to get a single row from the query result. The cursor automatically moves to the next row after getting the result.

Список параметров

result

result comes from a call to cubrid_execute()

type

Array type of the fetched result CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH, CUBRID_OBJECT. If you want to operate the lob object, you can use CUBRID_LOB.

Возвращаемые значения

Result array or object, when process is successful.

FALSE, when there are no more rows; NULL, when process is unsuccessful.

The result can be received either as an array or as an object, and you can decide which data type to use by setting the type argument. The type variable can be set to one of the following values:

  • CUBRID_NUM : Numerical array (0-based)
  • CUBRID_ASSOC : Associative array
  • CUBRID_BOTH : Numerical & Associative array (default)
  • CUBRID_OBJECT : object that has the attribute name as the column name of query result

When type argument is omitted, the result will be received using CUBRID_BOTH option as default. When you want to receive query result in object data type, the column name of the result must obey the naming rules for identifiers in PHP. For example, column name such as "count(*)" cannot be received in object type.

Примеры

Пример #1 cubrid_fetch() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$req = cubrid_execute($conn, "SELECT * FROM stadium WHERE nation_code='GRE' AND seats > 10000");

printf("%-40s %-10s %-6s %-20s\n", "name", "area", "seats", "address");
while ($row = cubrid_fetch($req)) {
    printf("%-40s %-10s %-6s %-20s\n",
        $row["name"], $row["area"], $row["seats"], $row["address"]);
}

// if you want to operate lob object, you can use cubrid_fetch($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_row() - Return a numerical array with the values of the current row
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_object() - Fetche the next row and returns it as an object


Free the memory occupied by the result data

  • « cubrid_fetch
  • cubrid_get_autocommit »
  • PHP Manual
  • Функции CUBRID
  • Free the memory occupied by the result data

cubrid_free_result

(PECL CUBRID >= 8.3.0)

cubrid_free_result — Free the memory occupied by the result data

Описание

bool cubrid_free_result ( resource $req_identifier )

This function frees the memory occupied by the result data. It returns TRUE on success or FALSE on failure. Note that it can only frees the client fetch buffer now, and if you want free all memory, use function cubrid_close_request().

Список параметров

req_identifier

This is the request identifier.

Возвращаемые значения

TRUE on success.

FALSE on failure.

Примеры

Пример #1 cubrid_free_result() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$req = cubrid_execute($conn, "SELECT * FROM history WHERE host_year=2004 ORDER BY event_code");
$row = cubrid_fetch_assoc($req);
var_dump($row);

cubrid_free_result($req);
cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(5) {
  ["event_code"]=>
  string(5) "20005"
  ["athlete"]=>
  string(12) "Hayes Joanna"
  ["host_year"]=>
  string(4) "2004"
  ["score"]=>
  string(5) "12.37"
  ["unit"]=>
  string(4) "time"
}


Возвращает настройку авто-коммита для соединения

  • « cubrid_free_result
  • cubrid_get_charset »
  • PHP Manual
  • Функции CUBRID
  • Возвращает настройку авто-коммита для соединения

cubrid_get_autocommit

(PECL CUBRID >= 8.4.0)

cubrid_get_autocommit — Возвращает настройку авто-коммита для соединения

Описание

bool cubrid_get_autocommit ( resource $conn_identifier )

Функция 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

Описание

string cubrid_get_charset ( resource $conn_identifier )

Эта функция возвращает кодировку текущего соединения CUBRID и аналогична функции совместимости CUBRID MySQL cubrid_client_encoding().

Список параметров

conn_identifier

Идентификатор соединения.

Возвращаемые значения

Строка, содержащая кодировку текущего соединения CUBRID в случае успеха.

FALSE в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_get_charset()

<?php

$con = cubrid_connect("localhost", 33000, "demodb");
if (!$con)
{
    die('Could not connect.');
}

printf("CUBRID current charset: %s\n", cubrid_get_charset($con));

?>

Результат выполнения данного примера:

CUBRID current charset: iso8859-1

Смотрите также

  • cubrid_client_encoding() - Возвращает кодировку текущего соединения CUBRID


Get the class name using OID

  • « cubrid_get_charset
  • cubrid_get_client_info »
  • PHP Manual
  • Функции CUBRID
  • Get the class name using OID

cubrid_get_class_name

(PECL CUBRID >= 8.3.0)

cubrid_get_class_name — Get the class name using OID

Описание

string cubrid_get_class_name ( resource $conn_identifier , string $oid )

The cubrid_get_class_name() function is used to get the class name from oid. It doesn't work when selecting data from the system tables, for example db_class.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to check the existence.

Возвращаемые значения

Class name when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_get_class_name() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code", CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);
$class_name = cubrid_get_class_name($conn, $oid);

print_r($class_name);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

code

Смотрите также

  • cubrid_is_instance() - Check whether the instance pointed by OID exists
  • cubrid_drop() - Удаление экземпляра по OID


Return the client library version

  • « cubrid_get_class_name
  • cubrid_get_db_parameter »
  • PHP Manual
  • Функции CUBRID
  • Return the client library version

cubrid_get_client_info

(PECL CUBRID >= 8.3.0)

cubrid_get_client_info — Return the client library version

Описание

string cubrid_get_client_info ( void )

This function returns a string that represents the client library version.

Список параметров

Возвращаемые значения

A string that represents the client library version; on success.

FALSE on failure.

Примеры

Пример #1 cubrid_get_client_info() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

Результат выполнения данного примера:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1


Returns the CUBRID database parameters

  • « cubrid_get_client_info
  • cubrid_get_query_timeout »
  • PHP Manual
  • Функции CUBRID
  • Returns the CUBRID database parameters

cubrid_get_db_parameter

(PECL CUBRID >= 8.3.0)

cubrid_get_db_parameter — Returns the CUBRID database parameters

Описание

array cubrid_get_db_parameter ( resource $conn_identifier )

This function returns the CUBRID database parameters or it returns FALSE on failure. It returns an associative array with the values for the following parameters:

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT
  • PARAM_MAX_STRING_LENGTH
  • PARAM_AUTO_COMMIT

Database parameters
Parameter | Description
PARAM_ISOLATION_LEVEL | The transaction isolation level.
LOCK_TIMEOUT | CUBRID provides the lock timeout feature, which sets the waiting time (in seconds) for the lock until the transaction lock setting is allowed. The default value of the lock_timeout_in_secs parameter is -1, which means the application client will wait indefinitely until the transaction lock is allowed.
PARAM_AUTO_COMMIT | In CUBRID PHP, auto-commit mode is disabled by default for transaction management. It can be set by using cubrid_set_autocommit().

The following table shows the isolation levels from 1 to 6. It consists of table schema (row) and isolation level:

Levels of Isolation Supported by CUBRID
Name | Description
SERIALIZABLE (6) | In this isolation level, problems concerning concurrency (e.g. dirty read, non-repeatable read, phantom read, etc.) do not occur.
REPEATABLE READ CLASS with REPEATABLE READ INSTANCES (5) | Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience phantom read for the record R that was inserted by another transaction T2 when it is repeatedly retrieving a specific record.
REPEATABLE READ CLASS with READ COMMITTED INSTANCES (or CURSOR STABILITY) (4) | Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience R read (non-repeatable read) that was updated and committed by another transaction T2 when it is repeatedly retrieving the record R.
REPEATABLE READ CLASS with READ UNCOMMITTED INSTANCES (3) | Default isolation level. Another transaction T2 cannot update the schema of table A while transaction T1 is viewing table A. Transaction T1 may experience R' read (dirty read) for the record that was updated but not committed by another transaction T2.
READ COMMITTED CLASS with READ COMMITTED INSTANCES (2) | Transaction T1 may experience A' read (non-repeatable read) for the table that was updated and committed by another transaction T2 while it is viewing table A repeatedly. Transaction T1 may experience R' read (non-repeatable read) for the record that was updated and committed by another transaction T2 while it is retrieving the record R repeatedly.
READ COMMITTED CLASS with READ UNCOMMITTED INSTANCES (1) | Transaction T1 may experience A' read (non-repeatable read) for the table that was updated and committed by another transaction T2 while it is repeatedly viewing table A. Transaction T1 may experience R' read (dirty read) for the record that was updated but not committed by another transaction T2.

Список параметров

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opened by cubrid_connect() is assumed.

Возвращаемые значения

An associative array with CUBRID database parameters; on success.

FALSE on failure.

Список изменений

Версия | Описание
8.4.0 | Change LOCK_TIMEOUT to PARAM_LOCK_TIMEOUT, and MAX_STRING_LENGTH to PARAM_MAX_STRING_LENGTH in result.

Примеры

Пример #1 cubrid_get_db_parameter() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

Результат выполнения данного примера:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Смотрите также

  • cubrid_set_db_parameter() - Sets the CUBRID database parameters
  • cubrid_get_autocommit() - Возвращает настройку авто-коммита для соединения


Get the query timeout value of the request

  • « cubrid_get_db_parameter
  • cubrid_get_server_info »
  • PHP Manual
  • Функции CUBRID
  • Get the query timeout value of the request

cubrid_get_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_get_query_timeout — Get the query timeout value of the request

Описание

int cubrid_get_query_timeout ( resource $req_identifier )

The cubrid_get_query_timeout() function is used to get the query timeout of the request.

Список параметров

req_identifier

Request identifier.

Возвращаемые значения

Success: the query timeout value of the current request. Units of msec.

Failure: FALSE

Примеры

Пример #1 cubrid_get_query_timeout() example

<?php

$host = "localhost";
$port = 33000;
$db = "demodb";

$conn =
cubrid_connect_with_url("CUBRID:$host:$port:$db:::?login_timeout=50000&query_timeout=5000&disconnect_on_query_timeout=yes");

$req = cubrid_prepare($conn, "SELECT * FROM code");

$timeout = cubrid_get_query_timeout($req);
var_dump($timeout);

cubrid_set_query_timeout($req, 1000);
$timeout = cubrid_get_query_timeout($req);
var_dump($timeout);

cubrid_close($conn);
?>

Результат выполнения данного примера:

int(5000)
int(1000)

Смотрите также

  • cubrid_set_query_timeout() - Set the timeout time of query execution


Return the CUBRID server version

  • « cubrid_get_query_timeout
  • cubrid_get »
  • PHP Manual
  • Функции CUBRID
  • Return the CUBRID server version

cubrid_get_server_info

(PECL CUBRID >= 8.3.0)

cubrid_get_server_info — Return the CUBRID server version

Описание

string cubrid_get_server_info ( resource $conn_identifier )

This function returns a string that represents the CUBRID server version.

Список параметров

conn_identifier

The CUBRID connection.

Возвращаемые значения

A string that represents the CUBRID server version; on success.

FALSE on failure.

Примеры

Пример #1 cubrid_get_server_info() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);

?>

Результат выполнения данного примера:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1


Get a column using OID

  • « cubrid_get_server_info
  • cubrid_insert_id »
  • PHP Manual
  • Функции CUBRID
  • Get a column using OID

cubrid_get

(PECL CUBRID >= 8.3.0)

cubrid_get — Get a column using OID

Описание

mixed cubrid_get ( resource $conn_identifier , string $oid [, mixed $attr ] )

The cubrid_get() function is used to get the attribute of the instance of the given oid. You can get single attribute by using string data type for the attr argument, or many attributes by using array data type for the attr argument.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to read.

attr

Name of the attribute that you want to read.

Возвращаемые значения

Content of the requested attribute, when process is successful; When attr is set with string data type, the result is returned as a string; when attr is set with array data type (0-based numerical array), then the result is returned in associative array. When attr is omitted, then all attributes are received in array form.

FALSE when process is unsuccessful or result is NULL (If error occurs to distinguish empty string from NULL, then it prints the warning message. You can check the error by using cubrid_error_code())

Примеры

Пример #1 cubrid_get() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_get($conn, $oid, "b");
var_dump($attr);

$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Смотрите также

  • cubrid_put() - Update a column using OID


Return the ID generated for the last updated AUTO_INCREMENT column

  • « cubrid_get
  • cubrid_is_instance »
  • PHP Manual
  • Функции CUBRID
  • Return the ID generated for the last updated AUTO_INCREMENT column

cubrid_insert_id

(PECL CUBRID >= 8.3.0)

cubrid_insert_id — Return the ID generated for the last updated AUTO_INCREMENT column

Описание

string cubrid_insert_id ([ resource $conn_identifier ] )

The cubrid_insert_id() function retrieves the ID generated for the AUTO_INCREMENT column which is updated by the previous INSERT query. It returns 0 if the previous query does not generate new rows, or FALSE on failure.

Замечание:

CUBRID supports AUTO_INCREMENT for more than one columns in a table. In most cases, there will be a single AUTO_INCREMENT column in a table. If there are multiple AUTO_INCREMENT columns, this function should not be used even if it will return a value.

Список параметров

conn_identifier

The connection identifier previously obtained by a call to cubrid_connect().

Возвращаемые значения

A string representing the ID generated for an AUTO_INCREMENT column by the previous query, on success.

0, if the previous query does not generate new rows.

FALSE on failure.

Список изменений

Версия | Описание
8.4.0 | Change the return value from an array to string; Remove the first parameter class_name.

Примеры

Пример #1 cubrid_insert_id() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

@cubrid_execute($conn, "DROP TABLE cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (d int AUTO_INCREMENT(1, 2), t varchar)");

for ($i = 0; $i < 10; $i++) {
    cubrid_execute($conn, "INSERT INTO cubrid_test(t) VALUES('cubrid_test')");
}

$id = cubrid_insert_id();
var_dump($id);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

string(2) "19"


Check whether the instance pointed by OID exists

  • « cubrid_insert_id
  • cubrid_lob_close »
  • PHP Manual
  • Функции CUBRID
  • Check whether the instance pointed by OID exists

cubrid_is_instance

(PECL CUBRID >= 8.3.0)

cubrid_is_instance — Check whether the instance pointed by OID exists

Описание

int cubrid_is_instance ( resource $conn_identifier , string $oid )

The cubrid_is_instance() function is used to check whether the instance pointed by the given oid exists or not.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to check the existence.

Возвращаемые значения

1, if such instance exists;

0, if such instance does not exist;

-1, in case of error

Примеры

Пример #1 cubrid_is_instance() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$sql = <<<EOD
SELECT host_year, medal, game_date
FROM game
WHERE athlete_code IN
    (SELECT code FROM athlete WHERE name='Thorpe Ian');
EOD;

$req = cubrid_execute($conn, $sql, CUBRID_INCLUDE_OID);
$oid = cubrid_current_oid($req);

$res = cubrid_is_instance ($conn, $oid);
if ($res == 1) {
    echo "Instance pointed by $oid exists.\n";
} else if ($res == 0){
    echo "Instance pointed by $oid doesn't exist.\n";
} else {
    echo "error\n";
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Instance pointed by @0|0|0 doesn't exist.

Смотрите также

  • cubrid_drop() - Удаление экземпляра по OID
  • cubrid_get_class_name() - Get the class name using OID


Close BLOB/CLOB data

  • « cubrid_is_instance
  • cubrid_lob_export »
  • PHP Manual
  • Функции CUBRID
  • Close BLOB/CLOB data

cubrid_lob_close

(PECL CUBRID >= 8.3.1)

cubrid_lob_close — Close BLOB/CLOB data

Описание

bool cubrid_lob_close ( array $lob_identifier_array )

cubrid_lob_close() is used to close all BLOB/CLOB returned from cubrid_lob_get().

Список параметров

lob_identifier_array

LOB identifier array return from cubrid_lob_get.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lob_close() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Export BLOB/CLOB data to file

  • « cubrid_lob_close
  • cubrid_lob_get »
  • PHP Manual
  • Функции CUBRID
  • Export BLOB/CLOB data to file

cubrid_lob_export

(PECL CUBRID >= 8.3.1)

cubrid_lob_export — Export BLOB/CLOB data to file

Описание

bool cubrid_lob_export ( resource $conn_identifier , resource $lob_identifier , string $path_name )

cubrid_lob_export() is used to get BLOB/CLOB data from CUBRID database, and saves its contents to a file. To use this function, you must use cubrid_lob_get() first to get BLOB/CLOB info from CUBRID.

Список параметров

conn_identifier

Connection identifier.

lob_identifier

LOB identifier.

path_name

Path name of the file.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lob_export() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Get BLOB/CLOB data

  • « cubrid_lob_export
  • cubrid_lob_send »
  • PHP Manual
  • Функции CUBRID
  • Get BLOB/CLOB data

cubrid_lob_get

(PECL CUBRID >= 8.3.1)

cubrid_lob_get — Get BLOB/CLOB data

Описание

array cubrid_lob_get ( resource $conn_identifier , string $sql )

cubrid_lob_get() is used to get BLOB/CLOB meta info from CUBRID database, CUBRID gets BLOB/CLOB by executing the SQL statement, and returns all LOBs as a resource array. Be sure that the SQL retrieves only one column and its data type is BLOB or CLOB.

Remember to use cubrid_lob_close() to release the LOBs if you don't need it any more.

Список параметров

conn_identifier

Connection identifier.

sql

SQL statement to be executed.

Возвращаемые значения

Return an array of LOB resources, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lob_get() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");
echo "Doc size: ".cubrid_lob_size($lobs[0])." bytes";
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Read BLOB/CLOB data and send straight to browser

  • « cubrid_lob_get
  • cubrid_lob_size »
  • PHP Manual
  • Функции CUBRID
  • Read BLOB/CLOB data and send straight to browser

cubrid_lob_send

(PECL CUBRID >= 8.3.1)

cubrid_lob_send — Read BLOB/CLOB data and send straight to browser

Описание

bool cubrid_lob_send ( resource $conn_identifier , resource $lob_identifier )

cubrid_lob_send() reads BLOB/CLOB data and passes it straight through to the browser. To use this function, you must use cubrid_lob_get() first to get BLOB/CLOB info from CUBRID.

Список параметров

conn_identifier

Connection identifier.

lob_identifier

LOB identifier.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lob_send() example

<?php
$conn = cubrid_connect ("localhost", 33000, "demodb", "dba");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$lobs = cubrid_lob_get($conn, "SELECT doc_content FROM doc WHERE id=5");

cubrid_lob_send($conn, $lobs[0]);
cubrid_lob_close($lobs);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_size() - Get BLOB/CLOB data size
  • cubrid_lob_export() - Export BLOB/CLOB data to file


Get BLOB/CLOB data size

  • « cubrid_lob_send
  • cubrid_lob2_bind »
  • PHP Manual
  • Функции CUBRID
  • Get BLOB/CLOB data size

cubrid_lob_size

(PECL CUBRID >= 8.3.1)

cubrid_lob_size — Get BLOB/CLOB data size

Описание

string cubrid_lob_size ( resource $lob_identifier )

cubrid_lob_size() is used to get BLOB/CLOB data size.

Список параметров

lob_identifier

LOB identifier.

Возвращаемые значения

A string representing LOB data size, when process is successful.

FALSE, when process is unsuccessful.

Список изменений

Версия | Описание
8.4.0 | Change return value type from int to string.

Примеры

Пример #1 cubrid_lob_size() example

<?php
$lobs = cubrid_lob_get($con, "SELECT doc_content FROM doc WHERE doc_id=5");
echo "Doc size:".cubrid_lob_size($lobs[0]);
cubrid_lob_export($conn, $lobs[0], "doc_5.txt");
cubrid_lob_close($lobs);
?>

Смотрите также

  • cubrid_lob_get() - Get BLOB/CLOB data
  • cubrid_lob_close() - Close BLOB/CLOB data
  • cubrid_lob_export() - Export BLOB/CLOB data to file
  • cubrid_lob_send() - Read BLOB/CLOB data and send straight to browser


Bind a lob object or a string as a lob object to a prepared statement as parameters.

  • « cubrid_lob_size
  • cubrid_lob2_close »
  • PHP Manual
  • Функции CUBRID
  • Bind a lob object or a string as a lob object to a prepared statement as parameters.

cubrid_lob2_bind

(PECL CUBRID >= 8.4.1)

cubrid_lob2_bind — Bind a lob object or a string as a lob object to a prepared statement as parameters.

Описание

bool cubrid_lob2_bind ( resource $req_identifier , int $bind_index , mixed $bind_value [, string $bind_value_type ] )

The cubrid_lob2_bind() function is used to bind BLOB/CLOB datas to a corresponding question mark placeholder in the SQL statement that was passed to cubrid_prepare(). If bind_value_type is not given, string will be "BLOB" as the default. But if you use cubrid_lob2_new() before, bind_value_type will be consistent with type in cubrid_lob2_new() as the default.

Список параметров

req_identifier

Request identifier as a result of cubrid_prepare().

bind_index

Location of binding parameters. It starts with 1.

bind_value

Actual value for binding.

bind_value_type

It must be "BLOB" or "CLOB" and it won't be case-sensitive. If it not be given, the default value is "BLOB".

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lob2_bind() example

<?php
// Table: test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");

cubrid_bind($req,1, 3);

$lob = cubrid_lob2_new($conn, 'CLOB');
cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_bind($req, 1, 4);

cubrid_lob2_bind($req, 2, 'CUBRID LOB2 TEST', 'CLOB');

cubrid_execute($req);

cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_new() - Create a lob object.
  • cubrid_lob2_close() - Close LOB object.


Close LOB object.

  • « cubrid_lob2_bind
  • cubrid_lob2_export »
  • PHP Manual
  • Функции CUBRID
  • Close LOB object.

cubrid_lob2_close

(PECL CUBRID >= 8.4.1)

cubrid_lob2_close — Close LOB object.

Описание

bool cubrid_lob2_close ( resource $lob_identifier )

The cubrid_lob2_close() function is used to close LOB object returned from cubrid_lob2_new() or got from the result set.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Возвращаемые значения

TRUE, on success.

FALSE, on failure.

Смотрите также

  • cubrid_lob2_new() - Create a lob object.


Export the lob object to a file.

  • « cubrid_lob2_close
  • cubrid_lob2_import »
  • PHP Manual
  • Функции CUBRID
  • Export the lob object to a file.

cubrid_lob2_export

(PECL CUBRID >= 8.4.1)

cubrid_lob2_export — Export the lob object to a file.

Описание

bool cubrid_lob2_export ( resource $lob_identifier , string $file_name )

The cubrid_lob2_export() function is used to save the contents of BLOB/CLOB data to a file. To use this function, you must use cubrid_lob2_new() or fetch a lob object from CUBRID database first. If the file already exists, the operation will fail. This function will not influence the cursor position of the lob object. It operates the entire lob object.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

filename

File name you want to store BLOB/CLOB data. It also supports the path of the file.

Возвращаемые значения

TRUE if the process is successful and FALSE for failure.

Примеры

Пример #1 cubrid_lob2_export() example

<?php
// Table: test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists doc");
cubrid_execute($conn,"CREATE TABLE doc (id INT, doc_content CLOB)");
cubrid_execute($conn,"INSERT INTO doc VALUES (5,'hello,cubrid')");

$req = cubrid_prepare($conn, "select * from doc");

cubrid_execute($req);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);

$row = cubrid_fetch($req, CUBRID_NUM | CUBRID_LOB);

cubrid_lob2_export($row[1], "doc_3.txt");

cubrid_lob2_close($row[1]);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_new() - Create a lob object.
  • cubrid_lob2_close() - Close LOB object.
  • cubrid_lob2_import() - Import BLOB/CLOB data from a file.
  • cubrid_lob2_bind() - Bind a lob object or a string as a lob object to a prepared statement as parameters.


Import BLOB/CLOB data from a file.

  • « cubrid_lob2_export
  • cubrid_lob2_new »
  • PHP Manual
  • Функции CUBRID
  • Import BLOB/CLOB data from a file.

cubrid_lob2_import

(PECL CUBRID >= 8.4.1)

cubrid_lob2_import — Import BLOB/CLOB data from a file.

Описание

bool cubrid_lob2_import ( resource $lob_identifier , string $file_name )

The cubrid_lob2_import() function is used to save the contents of BLOB/CLOB data from a file. To use this function, you must use cubrid_lob2_new() or fetch a lob object from CUBRID database first. If the file already exists, the operation will fail. This function will not influence the cursor position of the lob object. It operates the entire lob object.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

filename

File name you want to import BLOB/CLOB data. It also supports the path of the file.

Возвращаемые значения

TRUE if the process is successful and FALSE for failure.

Примеры

Пример #1 cubrid_lob2_export() example

<?php

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);

$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // or cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_lob2_close($lob);
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_new() - Create a lob object.
  • cubrid_lob2_close() - Close LOB object.
  • cubrid_lob2_export() - Export the lob object to a file.
  • cubrid_lob2_bind() - Bind a lob object or a string as a lob object to a prepared statement as parameters.


Create a lob object.

  • « cubrid_lob2_import
  • cubrid_lob2_read »
  • PHP Manual
  • Функции CUBRID
  • Create a lob object.

cubrid_lob2_new

(PECL CUBRID >= 8.4.1)

cubrid_lob2_new — Create a lob object.

Описание

resource cubrid_lob2_new ([ resource $conn_identifier [, string $type = "BLOB" ]] )

The cubrid_lob2_new() function is used to create a lob object (both BLOB and CLOB). This function should be used before you bind a lob object.

Список параметров

conn_identifier

Connection identifier. If the connection identifier is not specified, the last connection opened by cubrid_connect() or cubrid_connect_with_url() is assumed.

type

It may be "BLOB" or "CLOB", it won't be case-sensitive. The default value is "BLOB".

Возвращаемые значения

Lob identifier when it is successful.

FALSE on failure.

Смотрите также

  • cubrid_lob2_close() - Close LOB object.


Read from BLOB/CLOB data.

  • « cubrid_lob2_new
  • cubrid_lob2_seek64 »
  • PHP Manual
  • Функции CUBRID
  • Read from BLOB/CLOB data.

cubrid_lob2_read

(PECL CUBRID >= 8.4.1)

cubrid_lob2_read — Read from BLOB/CLOB data.

Описание

string cubrid_lob2_read ( resource $lob_identifier , int $len )

The cubrid_lob2_read() function reads len bytes from the LOB data and returns the bytes read.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

len

Length from buffer you want to read from the lob data.

Возвращаемые значения

Returns the contents as a string.

FALSE when there is no more data.

NULL on failure.

Примеры

Пример #1 cubrid_lob2_read() example 1

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "public", "");

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);

print "position now is " . cubrid_lob2_tell($row[1]) . "\n";

cubrid_lob2_seek($row[1], 10, CUBRID_CURSOR_FIRST);

print "\nposition after moving farword is " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 12);

print "\nposition after reading is " . cubrid_lob2_tell($row[1]) . "\n";

print $data . "\n";

cubrid_lob2_seek($row[1], 5, CUBRID_CURSOR_CURRENT);

print "\nposition after moving again is " . cubrid_lob2_tell($row[1]) . "\n";

$data = cubrid_lob2_read($row[1], 20);
print $data . "\n";

cubrid_disconnect($conn);
?>

Пример #2 cubrid_lob2_read() example 2

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);

while (true) {
    if ($data = cubrid_lob2_read($row[1], 1024)) {
        print $data . "\n";
    }
    elseif ($data === false) {
        print "There is no more data\n";
        break;
    }
    else {
        print "There must some errors\n";
        break;
    }
}

cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_write() - Write to a lob object.
  • cubrid_lob2_seek() - Move the cursor of a lob object.
  • cubrid_lob2_seek64() - Move the cursor of a lob object.
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object.
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object.
  • cubrid_lob2_size() - Get a lob object's size.
  • cubrid_lob2_size64() - Get a lob object's size.


Move the cursor of a lob object.

  • « cubrid_lob2_read
  • cubrid_lob2_seek »
  • PHP Manual
  • Функции CUBRID
  • Move the cursor of a lob object.

cubrid_lob2_seek64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek64 — Move the cursor of a lob object.

Описание

bool cubrid_lob2_seek64 ( resource $lob_identifier , string $offset [, int $origin = CUBRID_CURSOR_CURRENT ] )

The cubrid_lob2_seek64() function is used to move the cursor position of a lob object by the value set in the offset argument, to the direction set in the origin argument. If the offset you want to move is larger than an integer data can be stored, you can use this function.

To set the origin argument, you can use CUBRID_CURSOR_FIRST to set the cursor position moving forward offset units from the first beginning. In this case, offset must be a positive value.

If you use CUBRID_CURSOR_CURRENT for origin, you can move forward or backward. and offset can be positive or negative.

If you use CUBRID_CURSOR_LAST for origin, you can move backward offset units from the end of LOB object and offset only can be positive.

Замечание:

If you use this function to move the cursor position of the lob object, you should pass offset as a string.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

offset

Number of units you want to move the cursor.

origin

This parameter can be the following values:

CUBRID_CURSOR_FIRST: move forward from the first beginning.

CUBRID_CURSOR_CURRENT: move forward or backward from the current position.

CUBRID_CURSOR_LAST: move backward at the end of LOB object.

Возвращаемые значения

TRUE if the process is successful and FALSE for failure.

Примеры

Пример #1 cubrid_lob2_seek64() example

<?php
// test_lob (id INT, contents CLOB)
// Data length of doc_1.txt should be greater than 20101029056306120215.

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES (?, ?)");
cubrid_bind($req, 1, 1);

$lob = cubrid_lob2_new($conn, "clob");
cubrid_lob2_import($lob, "doc_1.txt");
cubrid_lob2_bind($req, 2, $lob, 'CLOB'); // or cubrid_lob2_bind($req, 2, $lob);

cubrid_execute($req);

cubrid_lob2_close($lob);

$req = cubrid_execute($conn, "select * from test_lob");
$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob = $row[1];

cubrid_lob2_seek64($lob, "20101029056306120215", CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 20);
echo $data."\n";
cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data.
  • cubrid_lob2_write() - Write to a lob object.
  • cubrid_lob2_seek() - Move the cursor of a lob object.
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object.
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object.
  • cubrid_lob2_size() - Get a lob object's size.
  • cubrid_lob2_size64() - Get a lob object's size.


Move the cursor of a lob object.

  • « cubrid_lob2_seek64
  • cubrid_lob2_size64 »
  • PHP Manual
  • Функции CUBRID
  • Move the cursor of a lob object.

cubrid_lob2_seek

(PECL CUBRID >= 8.4.1)

cubrid_lob2_seek — Move the cursor of a lob object.

Описание

bool cubrid_lob2_seek ( resource $lob_identifier , int $offset [, int $origin = CUBRID_CURSOR_CURRENT ] )

The cubrid_lob2_seek() function is used to move the cursor position of a lob object by the value set in the offset argument, to the direction set in the origin argument.

To set the origin argument, you can use CUBRID_CURSOR_FIRST to set the cursor position moving forward offset units from the first beginning. In this case, offset must be a positive value.

If you use CUBRID_CURSOR_CURRENT for origin, you can move forward or backward. and offset can be positive or negative.

If you use CUBRID_CURSOR_LAST for origin, you can move backward offset units from the end of LOB object and offset only can be positive.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

offset

Number of units you want to move the cursor.

origin

This parameter can be the following values:

CUBRID_CURSOR_FIRST: move forward from the first beginning.

CUBRID_CURSOR_CURRENT: move forward or backward from the current position.

CUBRID_CURSOR_LAST: move backward at the end of LOB object.

Возвращаемые значения

TRUE if the process is successful and FALSE for failure.

Примеры

Пример #1 cubrid_lob2_seek() example

<?php
// test_lob (id INT, contents CLOB)
$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");
$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(2, ?)");

$lob = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob, "Hello world");

cubrid_lob2_seek($lob, 0, CUBRID_CURSOR_LAST);
cubrid_lob2_write($lob, "beautiful");

cubrid_lob2_seek($lob, 15, CUBRID_CURSOR_FIRST);
$data = cubrid_lob2_read($lob, 5);

echo $data."\n";

cubrid_lob2_bind($req, 1, $lob);
cubrid_execute($req);

cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data.
  • cubrid_lob2_write() - Write to a lob object.
  • cubrid_lob2_seek64() - Move the cursor of a lob object.
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object.
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object.
  • cubrid_lob2_size() - Get a lob object's size.
  • cubrid_lob2_size64() - Get a lob object's size.


Get a lob object's size.

  • « cubrid_lob2_seek
  • cubrid_lob2_size »
  • PHP Manual
  • Функции CUBRID
  • Get a lob object's size.

cubrid_lob2_size64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size64 — Get a lob object's size.

Описание

string cubrid_lob2_size64 ( resource $lob_identifier )

The cubrid_lob2_size64() function is used to get the size of a lob object. If the size of a lob object is larger than an integer data can be stored, you can use this function and it will return the size as a string.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Возвращаемые значения

It will return the size of the LOB object as a string when it processes successfully.

FALSE on failure.

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data.
  • cubrid_lob2_write() - Write to a lob object.
  • cubrid_lob2_seek() - Move the cursor of a lob object.
  • cubrid_lob2_seek64() - Move the cursor of a lob object.
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object.
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object.
  • cubrid_lob2_size() - Get a lob object's size.


Get a lob object's size.

  • « cubrid_lob2_size64
  • cubrid_lob2_tell64 »
  • PHP Manual
  • Функции CUBRID
  • Get a lob object's size.

cubrid_lob2_size

(PECL CUBRID >= 8.4.1)

cubrid_lob2_size — Get a lob object's size.

Описание

int cubrid_lob2_size ( resource $lob_identifier )

The cubrid_lob2_size() function is used to get the size of a lob object.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Возвращаемые значения

It will return the size of the LOB object when it processes successfully.

FALSE on failure.

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data.
  • cubrid_lob2_write() - Write to a lob object.
  • cubrid_lob2_seek() - Move the cursor of a lob object.
  • cubrid_lob2_seek64() - Move the cursor of a lob object.
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object.
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object.
  • cubrid_lob2_size64() - Get a lob object's size.


Tell the cursor position of the LOB object.

  • « cubrid_lob2_size
  • cubrid_lob2_tell »
  • PHP Manual
  • Функции CUBRID
  • Tell the cursor position of the LOB object.

cubrid_lob2_tell64

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell64 — Tell the cursor position of the LOB object.

Описание

string cubrid_lob2_tell64 ( resource $lob_identifier )

The cubrid_lob2_tell64() function is used to tell the cursor position of the LOB object. If the size of a lob object is larger than an integer data can be stored, you can use this function and it will return the position information as a string.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Возвращаемые значения

It will return the cursor position on the LOB object as a string when it processes successfully.

FALSE on failure.

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data.
  • cubrid_lob2_write() - Write to a lob object.
  • cubrid_lob2_seek() - Move the cursor of a lob object.
  • cubrid_lob2_seek64() - Move the cursor of a lob object.
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object.
  • cubrid_lob2_size() - Get a lob object's size.
  • cubrid_lob2_size64() - Get a lob object's size.


Tell the cursor position of the LOB object.

  • « cubrid_lob2_tell64
  • cubrid_lob2_write »
  • PHP Manual
  • Функции CUBRID
  • Tell the cursor position of the LOB object.

cubrid_lob2_tell

(PECL CUBRID >= 8.4.1)

cubrid_lob2_tell — Tell the cursor position of the LOB object.

Описание

int cubrid_lob2_tell ( resource $lob_identifier )

The cubrid_lob2_tell() function is used to tell the cursor position of the LOB object.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

Возвращаемые значения

It will return the cursor position on the LOB object when it processes successfully.

FALSE on failure.

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data.
  • cubrid_lob2_write() - Write to a lob object.
  • cubrid_lob2_seek() - Move the cursor of a lob object.
  • cubrid_lob2_seek64() - Move the cursor of a lob object.
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object.
  • cubrid_lob2_size() - Get a lob object's size.
  • cubrid_lob2_size64() - Get a lob object's size.


Write to a lob object.

  • « cubrid_lob2_tell
  • cubrid_lock_read »
  • PHP Manual
  • Функции CUBRID
  • Write to a lob object.

cubrid_lob2_write

(PECL CUBRID >= 8.4.1)

cubrid_lob2_write — Write to a lob object.

Описание

bool cubrid_lob2_write ( resource $lob_identifier , string $buf )

The cubrid_lob2_write() function reads as much as data from buf and stores it to the LOB object. Note that this function can only append characters now.

Список параметров

lob_identifier

Lob identifier as a result of cubrid_lob2_new() or get from the result set.

buf

Data that need to be written to the lob object.

Возвращаемые значения

TRUE if the process is successful and FALSE for failure.

Примеры

Пример #1 cubrid_lob2_write() example 1

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(2, ?)");

$lob = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob, "Hello world");

cubrid_lob2_bind($req, 1, $lob);
cubrid_execute($req);

cubrid_disconnect($conn);
?>

Пример #2 cubrid_lob2_write() example 2

<?php
// test_lob (id INT, contents CLOB)

$conn = cubrid_connect("localhost", 33000, "demodb", "dba", "");

cubrid_execute($conn,"DROP TABLE if exists test_lob");
cubrid_execute($conn,"CREATE TABLE test_lob (id INT, contents CLOB)");

$req = cubrid_prepare($conn, "INSERT INTO test_lob VALUES(1, ?)");
$lob1 = cubrid_lob2_new($conn, 'CLOB');
$len = cubrid_lob2_write($lob1, "cubrid php driver");
cubrid_lob2_bind($req, 1, $lob1);
cubrid_execute($req);

$req = cubrid_execute($conn, "select * from test_lob");

$row = cubrid_fetch_row($req, CUBRID_LOB);
$lob2 = $row[1];
cubrid_lob2_seek($lob2, 0, CUBRID_CURSOR_LAST);

$pos = cubrid_lob2_tell($lob2);
print "pos before write: $pos\n";

cubrid_lob2_write($lob2, "Hello world");

$pos = cubrid_lob2_tell($lob2);
print "pos after write: $pos\n";

cubrid_disconnect($conn);
?>

Смотрите также

  • cubrid_lob2_read() - Read from BLOB/CLOB data.
  • cubrid_lob2_seek() - Move the cursor of a lob object.
  • cubrid_lob2_seek64() - Move the cursor of a lob object.
  • cubrid_lob2_tell() - Tell the cursor position of the LOB object.
  • cubrid_lob2_tell64() - Tell the cursor position of the LOB object.
  • cubrid_lob2_size() - Get a lob object's size.
  • cubrid_lob2_size64() - Get a lob object's size.


Set a read lock on the given OID

  • « cubrid_lob2_write
  • cubrid_lock_write »
  • PHP Manual
  • Функции CUBRID
  • Set a read lock on the given OID

cubrid_lock_read

(PECL CUBRID >= 8.3.0)

cubrid_lock_read — Set a read lock on the given OID

Описание

bool cubrid_lock_read ( resource $conn_identifier , string $oid )

The cubrid_lock_read() function is used to put read lock on the instance pointed by given oid.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to put read lock on.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lock_read() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

cubrid_lock_read($conn, $oid);

$attr = cubrid_get($conn, $oid, "b");
var_dump($attr);

$attr = cubrid_get($conn, $oid);
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

string(9) "{1, 2, 3}"
array(4) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  array(3) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "2"
    [2]=>
    string(1) "3"
  }
  ["c"]=>
  array(4) {
    [0]=>
    string(2) "11"
    [1]=>
    string(2) "22"
    [2]=>
    string(2) "33"
    [3]=>
    string(3) "333"
  }
  ["d"]=>
  string(10) "a         "
}

Смотрите также

  • cubrid_lock_write() - Set a write lock on the given OID


Set a write lock on the given OID

  • « cubrid_lock_read
  • cubrid_move_cursor »
  • PHP Manual
  • Функции CUBRID
  • Set a write lock on the given OID

cubrid_lock_write

(PECL CUBRID >= 8.3.0)

cubrid_lock_write — Set a write lock on the given OID

Описание

bool cubrid_lock_write ( resource $conn_identifier , string $oid )

The cubrid_lock_write() function is used to put write lock on the instance pointed by the given oid.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to put write lock on.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_lock_write() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

cubrid_lock_write($conn, $oid);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_put($conn, $oid, "b", array(2, 4, 8));

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Смотрите также

  • cubrid_lock_read() - Set a read lock on the given OID


Move the cursor in the result

  • « cubrid_lock_write
  • cubrid_next_result »
  • PHP Manual
  • Функции CUBRID
  • Move the cursor in the result

cubrid_move_cursor

(PECL CUBRID >= 8.3.0)

cubrid_move_cursor — Move the cursor in the result

Описание

int cubrid_move_cursor ( resource $req_identifier , int $offset [, int $origin = CUBRID_CURSOR_CURRENT ] )

The cubrid_move_cursor() function is used to move the current cursor location of req_identifier by the value set in the offset argument, to the direction set in the origin argument. To set the origin argument, you can use CUBRID_CURSOR_FIRST for the first part of the result, CUBRID_CURSOR_CURRENT for the current location of the result, or CUBRID_CURSOR_LAST for the last part of the result. If origin argument is not explicitly designated, then the function uses CUBRID_CURSOR_CURRENT as its default value.

If the value of cursor movement range goes over the valid limit, then the cursor moves to the next location after the valid range for the cursor. For example, if you move 20 units in the result with the size of 10, then the cursor will move to 11th place and return CUBRID_NO_MORE_DATA.

Список параметров

req_identifier

Request identifier.

offset

Number of units you want to move the cursor.

origin

Location where you want to move the cursor from CUBRID_CURSOR_FIRST, CUBRID_CURSOR_CURRENT, CUBRID_CURSOR_LAST.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsucceful.

Примеры

Пример #1 cubrid_move_cursor() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");
cubrid_move_cursor($req, 1, CUBRID_CURSOR_LAST);

$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_CURRENT);
$result = cubrid_fetch_row($req);
var_dump($result);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  string(1) "G"
  [1]=>
  string(4) "Gold"
}
array(2) {
  [0]=>
  string(1) "X"
  [1]=>
  string(5) "Mixed"
}
array(2) {
  [0]=>
  string(1) "M"
  [1]=>
  string(3) "Man"
}

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement


Get result of next query when executing multiple SQL statements

  • « cubrid_move_cursor
  • cubrid_num_cols »
  • PHP Manual
  • Функции CUBRID
  • Get result of next query when executing multiple SQL statements

cubrid_next_result

(PECL CUBRID >= 8.4.0)

cubrid_next_result — Get result of next query when executing multiple SQL statements

Описание

bool cubrid_next_result ( resource $result )

The cubrid_next_result() function is used to get results of next query if multiple SQL statements are executed and CUBRID_EXEC_QUERY_ALL flag is set upon cubrid_execute().

Список параметров

result

result comes from a call to cubrid_execute()

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_next_result() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");

$sql_stmt = "SELECT * FROM code; SELECT * FROM history WHERE host_year=2004 AND event_code=20281";
$res = cubrid_execute($conn, $sql_stmt, CUBRID_EXEC_QUERY_ALL);

get_result_info($res);
cubrid_next_result($res);
get_result_info($res);

function get_result_info($req)
{
    printf("\n------------ get_result_info --------------------\n");

    $row_num = cubrid_num_rows($req);
    $col_num = cubrid_num_cols($req);

    $column_name_list = cubrid_column_names($req);
    $column_type_list = cubrid_column_types($req);

    $column_last_name = cubrid_field_name($req, $col_num - 1);
    $column_last_table = cubrid_field_table($req, $col_num - 1);

    $column_last_type = cubrid_field_type($req, $col_num - 1);
    $column_last_len = cubrid_field_len($req, $col_num - 1);

    $column_1_flags = cubrid_field_flags($req, 1);

    printf("%-30s %d\n", "Row count:", $row_num);
    printf("%-30s %d\n", "Column count:", $col_num);
    printf("\n");

    printf("%-30s %-30s %-15s\n", "Column Names", "Column Types", "Column Len");
    printf("------------------------------------------------------------------------------\n");

    $size = count($column_name_list);
    for($i = 0; $i < $size; $i++) {
        $column_len = cubrid_field_len($req, $i);
        printf("%-30s %-30s %-15s\n", $column_name_list[$i], $column_type_list[$i], $column_len);
    }
    printf("\n\n");

    printf("%-30s %s\n", "Last Column Name:", $column_last_name);
    printf("%-30s %s\n", "Last Column Table:", $column_last_table);
    printf("%-30s %s\n", "Last Column Type:", $column_last_type);
    printf("%-30s %d\n", "Last Column Len:", $column_last_len);
    printf("%-30s %s\n", "Second Column Flags:", $column_1_flags);

    printf("\n\n");
}
?>

Результат выполнения данного примера:

------------ get_result_info --------------------
Row count:                     6
Column count:                  2

Column Names                   Column Types                   Column Len
------------------------------------------------------------------------------
s_name                         char                           1
f_name                         varchar                        6

Last Column Name:              f_name
Last Column Table:             code
Last Column Type:              varchar
Last Column Len:               6
Second Column Flags:

------------ get_result_info --------------------
Row count:                     4
Column count:                  5

Column Names                   Column Types                   Column Len
------------------------------------------------------------------------------
event_code                     integer                        11
athlete                        varchar                        40
host_year                      integer                        11
score                          varchar                        10
unit                           varchar                        5

Last Column Name:              unit
Last Column Table:             history
Last Column Type:              varchar
Last Column Len:               5
Second Column Flags:           not_null primary_key unique_key

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement


Return the number of columns in the result set

  • « cubrid_next_result
  • cubrid_num_rows »
  • PHP Manual
  • Функции CUBRID
  • Return the number of columns in the result set

cubrid_num_cols

(PECL CUBRID >= 8.3.0)

cubrid_num_cols — Return the number of columns in the result set

Описание

int cubrid_num_cols ( resource $result )

The cubrid_num_cols() function is used to get the number of columns from the query result. It can only be used when the query executed is a select statement.

Список параметров

result

Result.

Возвращаемые значения

Number of columns, when process is successful.

FALSE, if SQL statement is not SELECT.

Примеры

Пример #1 cubrid_num_cols() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Row Num: 6
Column Num: 2

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_num_rows() - Get the number of rows in the result set


Get the number of rows in the result set

  • « cubrid_num_cols
  • cubrid_pconnect_with_url »
  • PHP Manual
  • Функции CUBRID
  • Get the number of rows in the result set

cubrid_num_rows

(PECL CUBRID >= 8.3.0)

cubrid_num_rows — Get the number of rows in the result set

Описание

int cubrid_num_rows ( resource $result )

The cubrid_num_rows() function is used to get the number of rows from the query result. You can use it only when the query executed is a select statement. When you want to know such value for INSERT, UPDATE, or DELETE query, you have to use the cubrid_affected_rows() function.

Note: The cubrid_num_rows() function can only be used for synchronous query; it returns 0 when it is used for asynchronous query.

Список параметров

result

result comes from a call to cubrid_execute(), cubrid_query() and cubrid_prepare()

Возвращаемые значения

Number of rows, when process is successful.

0 when the query was done in async mode.

-1, if SQL statement is not SELECT.

FALSE when process is unsuccessful.

Примеры

Пример #1 cubrid_num_rows() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$req = cubrid_execute($conn, "SELECT * FROM code");

$row_num = cubrid_num_rows($req);
$col_num = cubrid_num_cols($req);

printf("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Row Num: 6
Column Num: 2

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_num_cols() - Return the number of columns in the result set
  • cubrid_affected_rows() - Return the number of rows affected by the last SQL statement


Open a persistent connection to CUBRID server

  • « cubrid_num_rows
  • cubrid_pconnect »
  • PHP Manual
  • Функции CUBRID
  • Open a persistent connection to CUBRID server

cubrid_pconnect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_pconnect_with_url — Open a persistent connection to CUBRID server

Описание

resource cubrid_pconnect_with_url ( string $conn_url [, string $userid [, string $passwd ]] )

Establishes a persistent connection to a CUBRID server.

cubrid_pconnect_with_url() acts very much like cubrid_connect_with_url() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, port, dbname and userid. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (cubrid_close() or cubrid_disconnect() will not close links established by cubrid_pconnect_with_url()).

This type of link is therefore called 'persistent'.

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : A host name or IP address of the master database
  • db_name : A name of the database
  • db_user : A name of the database user
  • db_password : A database user password
  • alhosts : Specifies the broker information of the standby server, which is used for failover when it is impossible to connect to the active server. You can specify multiple brokers for failover, and the connection to the brokers is attempted in the order listed in alhosts
  • rctime : An interval between the attempts to connect to the active broker in which failure occurred. After a failure occurs, the system connects to the broker specified by althosts (failover), terminates the transaction, and then attempts to connect to the active broker of the master database at every rctime. The default value is 600 seconds.
  • login_timeout : Timeout value (unit: msec.) for database login. The default value is 0, which means infinite postponement.
  • query_timeout : Timeout value (unit: msec.) for query request. Upon timeout, a message to cancel requesting a query transferred to server is sent. The return value can depend on the disconnect_on_query_timeout configuration; even though the message to cancel a request is sent to server, that request may succeed.
  • disconnect_on_query_timeout : Configures a value whether to immediately return an error of function being executed upon timeout. The default value is false.

Замечание:

? and : that are used as identifiers in PHP connection URL can't be included in the password. The following is an example of a password that is invalid to use as connection URL because it contains "?:".

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

Passwords that contain ? or : may be passed as a separate parameter.

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_pconnect_with_url ($url, "dba", "12?");

If user or password is empty,you can't delete ":",the following is an example.

$url = "CUBRID:localhost:33000:demodb:::";

Список параметров

conn_url

A character string that contains server connection information.

userid

User name for the database.

passwd

User password.

Возвращаемые значения

Connection identifier, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_pconnect_with_url() url without properties example

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::"
$con = cubrid_pconnect_with_url ($conn_url);

if ($con) {
   echo "connected successfully";
   cubrid_execute($con, "create table person(id int,name char(16))");
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_disconnect ($con);
}
?>

Пример #2 cubrid_pconnect_with_url() url with properties example

<?php
$conn_url = "CUBRID:127.0.0.1:33000:demodb:dba::?althost=10.34.63.132:33088&rctime=100"
$con = cubrid_pconnect_with_url ($conn_url);

if ($con) {
   echo "connected successfully";
   $req =cubrid_execute($con, "insert into person values(1,'James')");

   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_disconnect ($con);
}
?>

Смотрите также

  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_pconnect() - Open a persistent connection to a CUBRID server
  • cubrid_pconnect_with_url()
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных


Open a persistent connection to a CUBRID server

  • « cubrid_pconnect_with_url
  • cubrid_prepare »
  • PHP Manual
  • Функции CUBRID
  • Open a persistent connection to a CUBRID server

cubrid_pconnect

(PECL CUBRID >= 8.3.1)

cubrid_pconnect — Open a persistent connection to a CUBRID server

Описание

resource cubrid_pconnect ( string $host , int $port , string $dbname [, string $userid [, string $passwd ]] )

Establishes a persistent connection to a CUBRID server.

cubrid_pconnect() acts very much like cubrid_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, port, dbname and userid. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (cubrid_close() or cubrid_disconnect() will not close links established by cubrid_pconnect()).

This type of link is therefore called 'persistent'.

Список параметров

host

Host name or IP address of CUBRID CAS server.

port

Port number of CUBRID CAS server (BROKER_PORT configured in $CUBRID/conf/cubrid_broker.conf).

dbname

Name of database.

userid

User name for the database.

passwd

User password.

Возвращаемые значения

Connection identifier, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_connect() example

<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());

printf("\n");

$conn = cubrid_pconnect("localhost", 33000, "demodb", "dba");

if (!$conn) {
    die('Connect Error ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list($param_name, $param_value) = each($db_params)) {
    printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "Server Info:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID Charset:", $charset);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

Смотрите также

  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_connect_with_url() - Создает окружение для соединения с сервером CUBRID
  • cubrid_pconnect_with_url() - Open a persistent connection to CUBRID server
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных


Prepare a SQL statement for execution

  • « cubrid_pconnect
  • cubrid_put »
  • PHP Manual
  • Функции CUBRID
  • Prepare a SQL statement for execution

cubrid_prepare

(PECL CUBRID >= 8.3.0)

cubrid_prepare — Prepare a SQL statement for execution

Описание

resource cubrid_prepare ( resource $conn_identifier , string $prepare_stmt [, int $option = 0 ] )

The cubrid_prepare() function is a sort of API which represents SQL statements compiled previously to a given connection handle. This pre-compiled SQL statement will be included in the cubrid_prepare().

Accordingly, you can use this statement effectively to execute several times repeatedly or to process long data. Only a single statement can be used and a parameter may put a question mark (?) to appropriate area in the SQL statement. Add a parameter when you bind a value in the VALUES clause of INSERT statement or in the WHERE clause. Note that it is allowed to bind a value to a MARK(?) by using the cubrid_bind() function only.

Список параметров

conn_identifier

Connection identifier.

prepare_stmt

Prepare query.

option

OID return option CUBRID_INCLUDE_OID.

Возвращаемые значения

Request identifier, if process is successful;

FALSE, if process is unsuccessful.

Примеры

Пример #1 cubrid_prepare() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");

$sql = <<<EOD
SELECT g.event_code, e.name
FROM game g
JOIN event e ON g.event_code=e.code
WHERE host_year = ? AND event_code NOT IN (SELECT event_code FROM game WHERE host_year=?) GROUP BY event_code;
EOD;

$req = cubrid_prepare($conn, $sql);

cubrid_bind($req, 1, 2004);
cubrid_bind($req, 2, 2000);
cubrid_execute($req);

$row_num = cubrid_num_rows($req);
printf("There are %d event that exits in 2004 olympic but not in 2000. For example:\n\n", $row_num);

printf("%-15s %s\n", "Event_code", "Event_name");
printf("----------------------------\n");

$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);
$row = cubrid_fetch_assoc($req);
printf("%-15d %s\n", $row["event_code"], $row["name"]);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

There are 27 event that exits in 2004 olympic but not in 2000. For example:

Event_code      Event_name
----------------------------
20063           +91kg
20070           64kg

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_bind() - Связывает переменные с подготовленным запросом


Update a column using OID

  • « cubrid_prepare
  • cubrid_rollback »
  • PHP Manual
  • Функции CUBRID
  • Update a column using OID

cubrid_put

(PECL CUBRID >= 8.3.0)

cubrid_put — Update a column using OID

Описание

int cubrid_put ( resource $conn_identifier , string $oid [, string $attr ], mixed $value )

The cubrid_put() function is used to update an attribute of the instance of the given oid.

You can update single attribute by using string data type to set attr. In such case, you can use integer, floating point or string type data for the value argument. To update multiple number of attributes, you can disregard the attr argument, and set value argument with associative array data type.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance that you want to update.

attr

Name of the attribute that you want to update.

value

New value that you want to assign to the attribute.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_put() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(2, {4,5,7}, {44,55,66,666}, 'b')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_put($conn, $oid, "b", array(2, 4, 8));

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(3) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "4"
  [2]=>
  string(1) "8"
}

Смотрите также

  • cubrid_get() - Get a column using OID
  • cubrid_set_add() - Insert a single element to set type column using OID
  • cubrid_set_drop() - Delete an element from set type column using OID
  • cubrid_seq_insert() - Insert an element to a sequence type column using OID
  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Roll back a transaction

  • « cubrid_put
  • cubrid_schema »
  • PHP Manual
  • Функции CUBRID
  • Roll back a transaction

cubrid_rollback

(PECL CUBRID >= 8.3.0)

cubrid_rollback — Roll back a transaction

Описание

bool cubrid_rollback ( resource $conn_identifier )

The cubrid_rollback() function executes rollback on the transaction pointed by conn_identifier, currently in progress.

Connection to server is closed after calling cubrid_rollback(). Connection handle, however, is still valid.

Список параметров

conn_identifier

Connection identifier.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_rollback() example

<?php
$conn = cubrid_connect("127.0.0.1", 33000, "demodb", "dba");
cubrid_set_autocommit($conn,false);

@cubrid_execute($conn, "DROP TABLE publishers");

$sql = <<<EOD
CREATE TABLE publishers(
pub_id CHAR(3),
pub_name VARCHAR(20),
city VARCHAR(15),
state CHAR(2),
country VARCHAR(15)
)
EOD;

if (!cubrid_execute($conn, $sql)) {
    printf("Error facility: %d\nError code: %d\nError msg: %s\n", cubrid_error_code_facility(), cubrid_error_code(), cubrid_error_msg());

    cubrid_disconnect($conn);
    exit;
}

$req = cubrid_prepare($conn, "INSERT INTO publishers VALUES(?, ?, ?, ?, ?)");

$id_list = array("P01", "P02", "P03", "P04");
$name_list = array("Abatis Publishers", "Core Dump Books", "Schadenfreude Press", "Tenterhooks Press");
$city_list = array("New York", "San Francisco", "Hamburg", "Berkeley");
$state_list = array("NY", "CA", NULL, "CA");
$country_list = array("USA", "USA", "Germany", "USA");

for ($i = 0, $size = count($id_list); $i < $size; $i++) {
    cubrid_bind($req, 1, $id_list[$i]);
    cubrid_bind($req, 2, $name_list[$i]);
    cubrid_bind($req, 3, $city_list[$i]);
    cubrid_bind($req, 4, $state_list[$i]);
    cubrid_bind($req, 5, $country_list[$i]);

    if (!($ret = cubrid_execute($req))) {
        break;
    }
}

if (!$ret) {
    cubrid_rollback($conn);
} else {
    cubrid_commit($conn);

    $req = cubrid_execute($conn, "SELECT * FROM publishers");
    while ($result = cubrid_fetch_assoc($req)) {
        printf("%-3s %-20s %-15s %-3s %-15s\n",
            $result["pub_id"], $result["pub_name"], $result["city"], $result["state"], $result["country"]);
    }
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

P01 Abatis Publishers    New York        NY  USA
P02 Core Dump Books      San Francisco   CA  USA
P03 Schadenfreude Press  Hamburg             Germany
P04 Tenterhooks Press    Berkeley        CA  USA

Смотрите также

  • cubrid_commit() - Подтверждение транзакции
  • cubrid_disconnect() - Закрывает соединение с базой данных


Get the requested schema information

  • « cubrid_rollback
  • cubrid_seq_drop »
  • PHP Manual
  • Функции CUBRID
  • Get the requested schema information

cubrid_schema

(PECL CUBRID >= 8.3.0)

cubrid_schema — Get the requested schema information

Описание

array cubrid_schema ( resource $conn_identifier , int $schema_type [, string $class_name [, string $attr_name ]] )

The cubrid_schema() function is used to get the requested schema information from database. You have to designate class_name, if you want to get information on certain class, attr_name, if you want to get information on certain attribute (can be used only with CUBRID_ SCH_ATTR_PRIVILEGE).

The result of the cubrid_schema function is returned as a two-dimensional array (column (associative array) * row (numeric array)). The following tables shows types of schema and the column structure of the result array to be returned based on the schema type.

Result Composition of Each Type
Schema | Column Number | Column Name | Value
CUBRID_SCH_CLASS | 1 | NAME |
 | 2 | TYPE | 0:system class 1:vclass 2:class
CUBRID_SCH_VCLASS | 1 | NAME |
 | 2 | TYPE | 1:vclass
CUBRID_SCH_QUERY_SPEC | 1 | QUERY_SPEC |
CUBRID_SCH_ATTRIBUTE / CUBRID_SCH_CLASS_ATTRIBUTE | 1 | ATTR_NAME |
 | 2 | DOMAIN |
 | 3 | SCALE |
 | 4 | PRECISION |
 | 5 | INDEXED | 1:indexed
 | 6 | NOT NULL | 1:not null
 | 7 | SHARED | 1:shared
 | 8 | UNIQUE | 1:unique
 | 9 | DEFAULT |
 | 10 | ATTR_ORDER | base:1
 | 11 | CLASS_NAME |
 | 12 | SOURCE_CLASS |
 | 13 | IS_KEY | 1:key
CUBRID_SCH_METHOD / CUBRID_SCH_CLASS_METHOD | 1 | NAME |
 | 2 | RET_DOMAIN |
 | 3 | ARG_DOMAIN |
CUBRID_SCH_METHOD_FILE | 1 | METHOD_FILE |
CUBRID_SCH_SUPERCLASS / CUBRID_SCH_DIRECT_SUPER_CLASS / CUBRID_SCH_SUBCLASS | 1 | CLASS_NAME |
 | 2 | TYPE | 0:system class 1:vclass 2:class
CUBRID_SCH_CONSTRAINT | 1 | TYPE | 0:unique 1:index 2:reverse unique 3:reverse index
 | 2 | NAME |
 | 3 | ATTR_NAME |
 | 4 | NUM_PAGES |
 | 5 | NUM_KEYS |
 | 6 | PRIMARY_KEY | 1:primary key
 | 7 | KEY_ORDER | base:1
CUBRID_SCH_TRIGGER | 1 | NAME |
 | 2 | STATUS |
 | 3 | EVENT |
 | 4 | TARGET_CLASS |
 | 5 | TARGET_ATTR |
 | 6 | ACTION_TIME |
 | 7 | ACTION |
 | 8 | PRIORITY |
 | 9 | CONDITION_TIME |
 | 10 | CONDITION |
CUBRID_SCH_CLASS_PRIVILEGE / CUBRID_SCH_ATTR_PRIVILEGE | 1 | CLASS_NAME / ATTR_NAME |
 | 2 | PRIVILEGE |
 | 3 | GRANTABLE |
CUBRID_SCH_PRIMARY_KEY | 1 | CLASS_NAME |
 | 2 | ATTR_NAME |
 | 3 | KEY_SEQ | base:1
 | 4 | KEY_NAME |
CUBRID_SCH_IMPORTED_KEYS / CUBRID_SCH_EXPORTED_KEYS / CUBRID_SCH_CROSS_REFERENCE | 1 | PKTABLE_NAME |
 | 2 | PKCOLUMN_NAME |
 | 3 | FKTABLE_NAME | base:1
 | 4 | FKCOLUMN_NAME |
 | 5 | KEY_SEQ | base:1
 | 6 | UPDATE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 7 | DELETE_ACTION | 0:cascade 1:restrict 2:no action 3:set null
 | 8 | FK_NAME |
 | 9 | PK_NAME |

Список параметров

conn_identifier

Connection identifier.

schema_type

Schema data that you want to know.

class_name

Class you want to know the schema of.

attr_name

Attribute you want to know the schema of.

Возвращаемые значения

Array containing the schema information, when process is successful;

FALSE, when process is unsuccessful

Список изменений

Версия | Описание
8.3.1 | Change return value: when process is unsuccessful, return false, not -1.

Примеры

Пример #1 cubrid_schema() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

printf("\n--- Primary Key ---\n");
$pk = cubrid_schema($conn, CUBRID_SCH_PRIMARY_KEY, "game");
var_dump($pk);

printf("\n--- Foreign Keys ---\n");
$fk = cubrid_schema($conn, CUBRID_SCH_IMPORTED_KEYS, "game");
var_dump($fk);

printf("\n--- Column Attribute ---\n");
$attr = cubrid_schema($conn, CUBRID_SCH_ATTRIBUTE, "stadium", "area");
var_dump($attr);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

--- Primary Key ---
array(3) {
  [0]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "3"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [1]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "2"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
  [2]=>
  array(4) {
    ["CLASS_NAME"]=>
    string(4) "game"
    ["ATTR_NAME"]=>
    string(9) "host_year"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["KEY_NAME"]=>
    string(41) "pk_game_host_year_event_code_athlete_code"
  }
}

--- Foreign Keys ---
array(2) {
  [0]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(7) "athlete"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(12) "athlete_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(20) "fk_game_athlete_code"
    ["PK_NAME"]=>
    string(15) "pk_athlete_code"
  }
  [1]=>
  array(9) {
    ["PKTABLE_NAME"]=>
    string(5) "event"
    ["PKCOLUMN_NAME"]=>
    string(4) "code"
    ["FKTABLE_NAME"]=>
    string(4) "game"
    ["FKCOLUMN_NAME"]=>
    string(10) "event_code"
    ["KEY_SEQ"]=>
    string(1) "1"
    ["UPDATE_RULE"]=>
    string(1) "1"
    ["DELETE_RULE"]=>
    string(1) "1"
    ["FK_NAME"]=>
    string(18) "fk_game_event_code"
    ["PK_NAME"]=>
    string(13) "pk_event_code"
  }
}

--- Column Attribute ---
array(1) {
  [0]=>
  array(13) {
    ["ATTR_NAME"]=>
    string(4) "area"
    ["DOMAIN"]=>
    string(1) "7"
    ["SCALE"]=>
    string(1) "2"
    ["PRECISION"]=>
    string(2) "10"
    ["INDEXED"]=>
    string(1) "0"
    ["NON_NULL"]=>
    string(1) "0"
    ["SHARED"]=>
    string(1) "0"
    ["UNIQUE"]=>
    string(1) "0"
    ["DEFAULT"]=>
    NULL
    ["ATTR_ORDER"]=>
    string(1) "4"
    ["CLASS_NAME"]=>
    string(7) "stadium"
    ["SOURCE_CLASS"]=>
    string(7) "stadium"
    ["IS_KEY"]=>
    string(1) "0"
  }
}


Delete an element from sequence type column using OID

  • « cubrid_schema
  • cubrid_seq_insert »
  • PHP Manual
  • Функции CUBRID
  • Delete an element from sequence type column using OID

cubrid_seq_drop

(PECL CUBRID >= 8.3.0)

cubrid_seq_drop — Delete an element from sequence type column using OID

Описание

bool cubrid_seq_drop ( resource $conn_identifier , string $oid , string $attr_name , int $index )

The cubrid_seq_drop() function is used to delete an element you request from the given sequence type attribute in the database.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute that you want to delete an element from.

index

Index of the element that you want to delete (1-based).

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_seq_drop() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_drop($conn, $oid, "c", 4);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(3) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
}

Смотрите также

  • cubrid_seq_insert() - Insert an element to a sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Insert an element to a sequence type column using OID

  • « cubrid_seq_drop
  • cubrid_seq_put »
  • PHP Manual
  • Функции CUBRID
  • Insert an element to a sequence type column using OID

cubrid_seq_insert

(PECL CUBRID >= 8.3.0)

cubrid_seq_insert — Insert an element to a sequence type column using OID

Описание

bool cubrid_seq_insert ( resource $conn_identifier , string $oid , string $attr_name , int $index , string $seq_element )

The cubrid_col_insert() function is used to insert an element to a sequence type attribute in a requested location.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to insert an instance to.

index

Location of the element, you want to insert the element to (1-based).

seq_element

Content of the element that you want to insert.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_seq_insert() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_insert($conn, $oid, "c", 5, "44");

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(5) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
  [4]=>
  string(2) "44"
}

Смотрите также

  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_put() - Update the element value of sequence type column using OID


Update the element value of sequence type column using OID

  • « cubrid_seq_insert
  • cubrid_set_add »
  • PHP Manual
  • Функции CUBRID
  • Update the element value of sequence type column using OID

cubrid_seq_put

(PECL CUBRID >= 8.3.0)

cubrid_seq_put — Update the element value of sequence type column using OID

Описание

bool cubrid_seq_put ( resource $conn_identifier , string $oid , string $attr_name , int $index , string $seq_element )

The cubrid_seq_put() function is used to update the content of the requested element in a sequent type attribute using OID.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute that you want to update an element.

index

Index (1-based) of the element that you want to update.

seq_element

New content that you want to use for the update.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_seq_put() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c sequence(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_seq_put($conn, $oid, "c", 1, "111");

$attr = cubrid_col_get($conn, $oid, "c");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(2) "11"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}
array(4) {
  [0]=>
  string(3) "111"
  [1]=>
  string(2) "22"
  [2]=>
  string(2) "33"
  [3]=>
  string(3) "333"
}

Смотрите также

  • cubrid_seq_drop() - Delete an element from sequence type column using OID
  • cubrid_seq_insert() - Insert an element to a sequence type column using OID


Insert a single element to set type column using OID

  • « cubrid_seq_put
  • cubrid_set_autocommit »
  • PHP Manual
  • Функции CUBRID
  • Insert a single element to set type column using OID

cubrid_set_add

(PECL CUBRID >= 8.3.0)

cubrid_set_add — Insert a single element to set type column using OID

Описание

bool cubrid_set_add ( resource $conn_identifier , string $oid , string $attr_name , string $set_element )

The cubrid_set_add() function is used to insert a single element to a set type attribute (set, multiset, sequence) you requested.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to insert an element.

set_element

Content of the element you want to insert.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_set_add() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_set_add($conn, $oid, "b", "4");

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(4) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
  [3]=>
  string(1) "4"
}

Смотрите также

  • cubrid_seq_drop() - Delete an element from sequence type column using OID


Устанавливает режим авто-коммита для соединения

  • « cubrid_set_add
  • cubrid_set_db_parameter »
  • PHP Manual
  • Функции CUBRID
  • Устанавливает режим авто-коммита для соединения

cubrid_set_autocommit

(PECL CUBRID >= 8.4.0)

cubrid_set_autocommit — Устанавливает режим авто-коммита для соединения

Описание

bool cubrid_set_autocommit ( resource $conn_identifier , bool $mode )

Функция cubrid_set_autocommit() используется для установки режима авто-коммита для соединения.

В CUBRID PHP, авто-коммит транзакций по умолчанию запрещен. Если вы его включите, все ожидающие транзакции будут автоматически подтверждены.

Список параметров

conn_identifier

Идентификатор соединения.

mode

Режим авто-коммита. Одна из двух констант:

  • CUBRID_AUTOCOMMIT_FALSE
  • CUBRID_AUTOCOMMIT_TRUE

Возвращаемые значения

TRUE, в случае успеха.

FALSE, в случае неудачи.

Смотрите также

  • cubrid_get_autocommit() - Возвращает настройку авто-коммита для соединения
  • cubrid_commit() - Подтверждение транзакции


Sets the CUBRID database parameters

  • « cubrid_set_autocommit
  • cubrid_set_drop »
  • PHP Manual
  • Функции CUBRID
  • Sets the CUBRID database parameters

cubrid_set_db_parameter

(PECL CUBRID >= 8.4.0)

cubrid_set_db_parameter — Sets the CUBRID database parameters

Описание

bool cubrid_set_db_parameter ( resource $conn_identifier , int $param_type , int $param_value )

The cubrid_set_db_parameter() function is used to set the CUBRID database parameters. It can set the following CUBRID database parameters:

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT

Замечание:

The auto-commit mode can be set by using cubrid_set_autocommit().

Список параметров

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opened by cubrid_connect() is assumed.

param_type

Database parameter type.

param_value

Isolation level value (1-6) or lock timeout (in seconds) value.

Возвращаемые значения

TRUE on success.

FALSE on failure.

Примеры

Пример #1 cubrid_get_db_parameter() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

$params = cubrid_get_db_parameter($conn);
var_dump($params);

cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_TRUE);
cubrid_set_db_parameter($conn, CUBRID_PARAM_ISOLATION_LEVEL, 2);

$params_new = cubrid_get_db_parameter($conn);
var_dump($params_new);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(4) {
  ["PARAM_ISOLATION_LEVEL"]=>
  int(3)
  ["PARAM_LOCK_TIMEOUT"]=>
  int(-1)
  ["PARAM_MAX_STRING_LENGTH"]=>
  int(1073741823)
  ["PARAM_AUTO_COMMIT"]=>
  int(0)
}
array(4) {
  ["PARAM_ISOLATION_LEVEL"]=>
  int(2)
  ["PARAM_LOCK_TIMEOUT"]=>
  int(-1)
  ["PARAM_MAX_STRING_LENGTH"]=>
  int(1073741823)
  ["PARAM_AUTO_COMMIT"]=>
  int(1)
}

Смотрите также

  • cubrid_get_db_parameter() - Returns the CUBRID database parameters
  • cubrid_set_autocommit() - Устанавливает режим авто-коммита для соединения


Delete an element from set type column using OID

  • « cubrid_set_db_parameter
  • cubrid_set_query_timeout »
  • PHP Manual
  • Функции CUBRID
  • Delete an element from set type column using OID

cubrid_set_drop

(PECL CUBRID >= 8.3.0)

cubrid_set_drop — Delete an element from set type column using OID

Описание

bool cubrid_set_drop ( resource $conn_identifier , string $oid , string $attr_name , string $set_element )

The cubrid_set_drop() function is used to delete an element that you request from the given set type (set, multiset) attribute of the database.

Список параметров

conn_identifier

Connection identifier.

oid

OID of the instance you want to work with.

attr_name

Name of the attribute you want to delete an element from.

set_element

Content of the element you want to delete.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Примеры

Пример #1 cubrid_set_drop() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb", "dba");

@cubrid_execute($conn, "DROP TABLE foo");
cubrid_execute($conn, "CREATE TABLE foo(a int AUTO_INCREMENT, b set(int), c list(int), d char(10))");
cubrid_execute($conn, "INSERT INTO foo(a, b, c, d) VALUES(1, {1,2,3}, {11,22,33,333}, 'a')");

$req = cubrid_execute($conn, "SELECT * FROM foo", CUBRID_INCLUDE_OID);

cubrid_move_cursor($req, 1, CUBRID_CURSOR_FIRST);
$oid = cubrid_current_oid($req);

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_set_drop($conn, $oid, "b", "1");

$attr = cubrid_col_get($conn, $oid, "b");
var_dump($attr);

cubrid_close_request($req);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(1) "1"
  [1]=>
  string(1) "2"
  [2]=>
  string(1) "3"
}
array(2) {
  [0]=>
  string(1) "2"
  [1]=>
  string(1) "3"
}

Смотрите также

  • cubrid_set_add() - Insert a single element to set type column using OID


Set the timeout time of query execution

  • « cubrid_set_drop
  • cubrid_version »
  • PHP Manual
  • Функции CUBRID
  • Set the timeout time of query execution

cubrid_set_query_timeout

(PECL CUBRID >= 8.4.1)

cubrid_set_query_timeout — Set the timeout time of query execution

Описание

bool cubrid_set_query_timeout ( resource $req_identifier , int $timeout )

The cubrid_set_query_timeout() function is used to set the timeout time of query execution.

Список параметров

req_identifier

Request identifier.

timeout

Timeout time, unit of msec.

Возвращаемые значения

TRUE, when process is successful.

FALSE, when process is unsuccessful.

Смотрите также

  • cubrid_get_query_timeout() - Get the query timeout value of the request


Получить версию модуля CUBRID PHP

  • « cubrid_set_query_timeout
  • Функиции совместимости CUBRID MySQL »
  • PHP Manual
  • Функции CUBRID
  • Получить версию модуля CUBRID PHP

cubrid_version

(PECL CUBRID >= 8.3.0)

cubrid_version — Получить версию модуля CUBRID PHP

Описание

string cubrid_version ( void )

Функция 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 — Return the number of rows affected by the last SQL statement
  • cubrid_client_encoding — Возвращает кодировку текущего соединения CUBRID
  • cubrid_close — Закрывает соединение с базой данных
  • cubrid_data_seek — Move the internal row pointer of the CUBRID result
  • cubrid_db_name — Get db name from results of cubrid_list_dbs
  • cubrid_errno — Возвращает код ошибки предыдущей операции CUBRID
  • cubrid_error — Возвращает текст последней произошедшей ошибки
  • cubrid_fetch_array — Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_assoc — Return the associative array that corresponds to the fetched row
  • cubrid_fetch_field — Get column information from a result and return as an object
  • cubrid_fetch_lengths — Return an array with the lengths of the values of each field from the current row
  • cubrid_fetch_object — Fetche the next row and returns it as an object
  • cubrid_fetch_row — Return a numerical array with the values of the current row
  • cubrid_field_flags — Return a string with the flags of the given field offset
  • cubrid_field_len — Get the maximum length of the specified field
  • cubrid_field_name — Return the name of the specified field index
  • cubrid_field_seek — Move the result set cursor to the specified field offset
  • cubrid_field_table — Return the name of the table of the specified field
  • cubrid_field_type — Return the type of the column corresponding to the given field offset
  • cubrid_list_dbs — Return an array with the list of all existing CUBRID databases
  • cubrid_num_fields — Return the number of columns in the result set
  • cubrid_ping — Проверяет, живо ли соединение к серверу и переподнимает его, если нет
  • cubrid_query — Send a CUBRID query
  • cubrid_real_escape_string — Escape special characters in a string for use in an SQL statement
  • cubrid_result — Return the value of a specific field in a specific row
  • cubrid_unbuffered_query — Perform a query without fetching the results into memory


Return the number of rows affected by the last SQL statement

  • « Функиции совместимости CUBRID MySQL
  • cubrid_client_encoding »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Return the number of rows affected by the last SQL statement

cubrid_affected_rows

(PECL CUBRID >= 8.3.0)

cubrid_affected_rows — Return the number of rows affected by the last SQL statement

Описание

int cubrid_affected_rows ([ resource $conn_identifier ] )
int cubrid_affected_rows ([ resource $req_identifier ] )

The cubrid_affected_rows() function is used to get the number of rows affected by the SQL statement (INSERT, DELETE, UPDATE).

Список параметров

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last link opend by cubrid_connect() is assumed.

req_identifier

Request Identifier, could be returned from either cubrid_prepare() or cubrid_execute(). If the request identifier is not specified, the last identifier requested by cubrid_prepare() or cubrid_execute() is assumed.

Возвращаемые значения

Number of rows affected by the SQL statement, when process is successful.

-1, when SQL statement is not INSERT, DELETE or UPDATE.

FALSE, when the request identifier is not specified, and there is no last request.

Примеры

Пример #1 cubrid_affected_rows() example

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb', 'dba', '');
cubrid_execute($conn, "DROP TABLE IF EXISTS cubrid_test");
cubrid_execute($conn, "CREATE TABLE cubrid_test (d varchar)");
$sql_stmt = "INSERT INTO cubrid_test(d) VALUES('php-test')";
$req = cubrid_prepare($conn, $sql_stmt);

for ($i = 0; $i < 10; $i++) {
    cubrid_execute($req);
}
cubrid_commit($conn);

$req = cubrid_execute($conn, "DELETE FROM cubrid_test WHERE d='php-test'", CUBRID_ASYNC);
var_dump(cubrid_affected_rows());
var_dump(cubrid_affected_rows($conn));
var_dump(cubrid_affected_rows($req));

cubrid_disconnect($conn);

print "done!";
?>

Результат выполнения данного примера:

Rows deleted: 5

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement


Возвращает кодировку текущего соединения CUBRID

  • « cubrid_affected_rows
  • cubrid_close »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Возвращает кодировку текущего соединения CUBRID

cubrid_client_encoding

(PECL CUBRID >= 8.3.1)

cubrid_client_encoding — Возвращает кодировку текущего соединения CUBRID

Описание

string cubrid_client_encoding ([ resource $conn_identifier ] )

Эта функция возвращает кодировку текущего соединения CUBRID и аналогична функции cubrid_get_encoding().

Список параметров

conn_identifier

Идентификатор соединения. Если не задано, то будет использовано последнее открытое с помощью cubrid_connect() соединение.

Возвращаемые значения

Строка, содержащая кодировку текущего соединения CUBRID в случае успеха.

FALSE в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_client_encoding()

<?php

$con = cubrid_connect("localhost", 33000, "demodb");
if (!$con)
{
    die('Could not connect.');
}

printf("CUBRID current charset: %s\n", cubrid_client_encoding($con));

?>

Результат выполнения данного примера:

CUBRID current charset: 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 — Закрывает соединение с базой данных

Описание

bool cubrid_close ([ resource $conn_identifier ] )

Функция cubrid_close() используется для закрытия обработчика соединения и отсоединения от сервера. Если какой либо обработчик запроса не будет закрыт к этому моменту, он будет принудительно закрыт. Функция аналогична функции CUBRID cubrid_disconnect().

Список параметров

conn_identifier

Идентификатор соединения. Если не задано, то будет использовано последнее открытое с помощью cubrid_connect() соединение.

Возвращаемые значения

TRUE, в случае успеха.

FALSE, в случае неудачи.

Примеры

Пример #1 Пример использования cubrid_close()

<?php
$con = cubrid_connect ("localhost", 33000, "demodb");
if ($con) {
   echo "connected successfully";
   $req = cubrid_execute ( $con, "insert into person values(1,'James')");
   if ($req) {
      cubrid_close_request ($req);
      cubrid_commit ($con);
   } else {
      cubrid_rollback ($con);
   }
   cubrid_close ($con);
}
?>

Смотрите также

  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_connect_with_url() - Создает окружение для соединения с сервером CUBRID


Move the internal row pointer of the CUBRID result

  • « cubrid_close
  • cubrid_db_name »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Move the internal row pointer of the CUBRID result

cubrid_data_seek

(PECL CUBRID >= 8.3.0)

cubrid_data_seek — Move the internal row pointer of the CUBRID result

Описание

bool cubrid_data_seek ( resource $result , int $row_number )

This function performs the moving of the internal row pointer of the CUBRID result (associated with the specified result identifier) to point to a specific row number. There are functions, such as cubrid_fetch_assoc(), which use the current stored value of row number.

Список параметров

result

The result.

row_number

This is the desired row number of the new result pointer.

Возвращаемые значения

Returns TRUE on success or FALSE on failure.

Примеры

Пример #1 cubrid_data_seek() example

<?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"
}


Get db name from results of cubrid_list_dbs

  • « cubrid_data_seek
  • cubrid_errno »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Get db name from results of cubrid_list_dbs

cubrid_db_name

(PECL CUBRID >= 8.3.1)

cubrid_db_name — Get db name from results of cubrid_list_dbs

Описание

string cubrid_db_name ( array $result , int $index )

Retrieve the database name from a call to cubrid_list_dbs().

Список параметров

result

The result pointer from a call to cubrid_list_dbs().

index

The index into the result set.

Возвращаемые значения

Returns the database name on success, and FALSE on failure. If FALSE is returned, use cubrid_error() to determine the nature of the error.

Примеры

Пример #1 cubrid_db_name() example

<?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() - Return an array with the list of all existing CUBRID databases


Возвращает код ошибки предыдущей операции CUBRID

  • « cubrid_db_name
  • cubrid_error »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Возвращает код ошибки предыдущей операции CUBRID

cubrid_errno

(PECL CUBRID >= 8.3.1)

cubrid_errno — Возвращает код ошибки предыдущей операции CUBRID

Описание

int cubrid_errno ([ resource $conn_identifier ] )

Возвращает код ошибки предыдущей операции 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 "Error Code: ", cubrid_errno($con);
    echo "Error Message: ", cubrid_error($con);
}
?>

Результат выполнения данного примера:

Error Code: -493 Error Message: 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 — Возвращает текст последней произошедшей ошибки

Описание

string cubrid_error ([ resource $connection ] )

Функция 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 "Error Code: ", cubrid_errno($con);
    echo "Error Message: ", cubrid_error($con);
}
?>

Результат выполнения данного примера:

Error Code: -493 Error Message: Syntax: Unknown class "person". select id, [name] from person

Смотрите также

  • cubrid_errno() - Возвращает код ошибки предыдущей операции CUBRID
  • cubrid_error_code() - Получить код ошибки
  • cubrid_error_msg() - Возвращает текст последней произошедшей ошибки


Fetch a result row as an associative array, a numeric array, or both

  • « cubrid_error
  • cubrid_fetch_assoc »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Fetch a result row as an associative array, a numeric array, or both

cubrid_fetch_array

(PECL CUBRID >=8.3.0)

cubrid_fetch_array — Fetch a result row as an associative array, a numeric array, or both

Описание

array cubrid_fetch_array ( resource $result [, int $type = CUBRID_BOTH ] )

The cubrid_fetch_array() function is used to get a single row from the query result and returns an array. The cursor automatically moves to the next row after getting the result.

Список параметров

result

Result comes from a call to cubrid_execute()

type

Array type of the fetched result CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH. If you need to operate the lob object, you can use CUBRID_LOB.

Возвращаемые значения

Returns an array of strings that corresponds to the fetched row, when process is successful.

FALSE, when there are no more rows; NULL, when process is unsuccessful.

The type of returned array depends on how type is defined. By using CUBRID_BOTH (default), you'll get an array with both associative and number indices, and you can decide which data type to use by setting the type argument. The type variable can be set to one of the following values:

  • CUBRID_NUM : Numerical array (0-based)
  • CUBRID_ASSOC : Associative array
  • CUBRID_BOTH : Numerical & Associative array (default)

Примеры

Пример #1 cubrid_fetch_array() example

<?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]);
}

// if you want to operate LOB object, you can use cubrid_fetch_array($req, CUBRID_NUM | CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_row() - Return a numerical array with the values of the current row
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_object() - Fetche the next row and returns it as an object


Return the associative array that corresponds to the fetched row

  • « cubrid_fetch_array
  • cubrid_fetch_field »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Return the associative array that corresponds to the fetched row

cubrid_fetch_assoc

(PECL CUBRID >= 8.3.0)

cubrid_fetch_assoc — Return the associative array that corresponds to the fetched row

Описание

array cubrid_fetch_assoc ( resource $result [, int $type ] )

This function returns the associative array, that corresponds to the fetched row, and then moves the internal data pointer ahead, or returns FALSE when the end is reached.

Список параметров

result

result comes from a call to cubrid_execute()

type

Type can only be CUBRID_LOB, this parameter will be used only when you need to operate the lob object.

Возвращаемые значения

Associative array, when process is successful.

FALSE, when there are no more rows; NULL, when process is unsuccessful.

Примеры

Пример #1 cubrid_fetch_assoc() example

<?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"]);
}

// if you want to operate LOB object, you can use cubrid_fetch_assoc($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_row() - Return a numerical array with the values of the current row
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_object() - Fetche the next row and returns it as an object


Get column information from a result and return as an object

  • « cubrid_fetch_assoc
  • cubrid_fetch_lengths »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Get column information from a result and return as an object

cubrid_fetch_field

(PECL CUBRID >= 8.3.1)

cubrid_fetch_field — Get column information from a result and return as an object

Описание

object cubrid_fetch_field ( resource $result [, int $field_offset = 0 ] )

This function returns an object with certain properties of the specific column. The properties of the object are:

name

column name

table

name of the table that the column belongs to

def

default value of the column

max_length

maximum length of the column

not_null

1 if the column cannot be NULL

primary_key

1 if the column is a primary key

unique_key

1 if the column is an unique key

multiple_key

1 if the column is a non-unique key

numeric

1 if the column is numeric

blob

1 if the column is a BLOB

type

the type of the column

unsigned

1 if the column is unsigned

zerofill

1 if the column is zero-filled

Список параметров

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. If the field offset is not specified, the next field (that was not yet retrieved by this function) is retrieved. The field_offset starts at 0.

Возвращаемые значения

Object with certain properties of the specific column, when process is successful.

FALSE on failure.

Примеры

Пример #1 cubrid_fetch_field() example

<?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", "name:", $field->name);
printf("%-30s %s\n", "table:", $field->table);
printf("%-30s \"%s\"\n", "default value:", $field->def);
printf("%-30s %d\n", "max length:", $field->max_length);
printf("%-30s %d\n", "not null:", $field->not_null);
printf("%-30s %d\n", "primary key:", $field->primary_key);
printf("%-30s %d\n", "unique key:", $field->unique_key);
printf("%-30s %d\n", "multiple key:", $field->multiple_key);
printf("%-30s %d\n", "numeric:", $field->numeric);
printf("%-30s %d\n", "blob:", $field->blob);
printf("%-30s %s\n", "type:", $field->type);
printf("%-30s %d\n", "unsigned:", $field->unsigned);
printf("%-30s %d\n", "zerofill:", $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 ---
name:                          athlete_code
table:                         game
default value:                 ""
max length:                    0
not null:                      1
primary key:                   1
unique key:                    1
multiple key:                  0
numeric:                       1
blob:                          0
type:                          integer
unsigned:                      0
zerofill:                      0


Return an array with the lengths of the values of each field from the current row

  • « cubrid_fetch_field
  • cubrid_fetch_object »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Return an array with the lengths of the values of each field from the current row

cubrid_fetch_lengths

(PECL CUBRID >= 8.3.0)

cubrid_fetch_lengths — Return an array with the lengths of the values of each field from the current row

Описание

array cubrid_fetch_lengths ( resource $result )

This function returns an numeric array with the lengths of the values of each field from the current row of the result set or it returns FALSE on failure.

Замечание:

If field data type is BLOB/CLOB, you should get its length by using cubrid_lob_size().

Список параметров

result

result comes from a call to cubrid_execute()

Возвращаемые значения

An numeric array, when process is successful.

FALSE on failure.

Примеры

Пример #1 cubrid_fetch_lengths() example

<?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
)


Fetche the next row and returns it as an object

  • « cubrid_fetch_lengths
  • cubrid_fetch_row »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Fetche the next row and returns it as an object

cubrid_fetch_object

(PECL CUBRID >= 8.3.0)

cubrid_fetch_object — Fetche the next row and returns it as an object

Описание

object cubrid_fetch_object ( resource $result [, string $class_name [, array $params [, int $type ]]] )

This function returns an object with the column names of the result set as properties. The values of these properties are extracted from the current row of the result.

Список параметров

result

result comes from a call to cubrid_execute()

class_name

The name of the class to instantiate. If not specified, a stdClass (stdClass is PHP's generic empty class that's used when casting other types to objects) object is returned.

params

An optional array of parameters to pass to the constructor for class_name objects.

type

Type can only be CUBRID_LOB, this parameter will be used only when you need to operate the lob object.

Возвращаемые значения

An object, when process is successful.

FALSE, when there are no more rows; NULL, when process is unsuccessful.

Примеры

Пример #1 cubrid_fetch_object() example

<?php
$conn = cubrid_connect("localhost", 33000, "demodb");
$res = cubrid_execute($conn, "SELECT * FROM code");

var_dump(cubrid_fetch_object($res));

// if you want to operate LOB object, you can use 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"));

// if you want to operate LOB object, you can use 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')));

// if you want to operate LOB object, you can use cubrid_fetch_object($res, 'demodb_code_construct', array('s_name', 'f_name'), CUBRID_LOB)

var_dump(cubrid_fetch_object($res));

cubrid_close_request($res);
cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "X"
  ["f_name"]=>
  string(5) "Mixed"
}
object(demodb_code)#1 (2) {
  ["s_name"]=>
  string(1) "W"
  ["f_name"]=>
  string(5) "Woman"
}
object(demodb_code_construct)#1 (2) {
  ["s_name"]=>
  string(6) "s_name"
  ["f_name"]=>
  string(6) "f_name"
}
object(stdClass)#1 (2) {
  ["s_name"]=>
  string(1) "B"
  ["f_name"]=>
  string(6) "Bronze"
}

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_row() - Return a numerical array with the values of the current row


Return a numerical array with the values of the current row

  • « cubrid_fetch_object
  • cubrid_field_flags »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Return a numerical array with the values of the current row

cubrid_fetch_row

(PECL CUBRID >= 8.3.0)

cubrid_fetch_row — Return a numerical array with the values of the current row

Описание

array cubrid_fetch_row ( resource $result [, int $type ] )

This function returns a numerical array with the values of the current row from the result set, starting from 0, and moves the internal data pointer ahead.

Список параметров

result

result comes from a call to cubrid_execute()

type

Type can only be CUBRID_LOB, this parameter will be used only when you need to operate the lob object.

Возвращаемые значения

A numerical array, when process is successful.

FALSE, when there are no more rows; NULL, when process is unsuccessful.

Примеры

Пример #1 cubrid_fetch_row() example

<?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_row($req)) {
    printf("%-40s %-10s %-6s %-20s\n", $row[0], $row[1], $row[2], $row[3]);
}

// if you want to operate LOB object, you can use cubrid_fetch_row($req, CUBRID_LOB)

cubrid_close_request($req);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

name                                     area       seats  address
Panathinaiko Stadium                     86300.00   50000  Athens, Greece
Olympic Stadium                          54700.00   13000  Athens, Greece
Olympic Indoor Hall                      34100.00   18800  Athens, Greece
Olympic Hall                             52400.00   21000  Athens, Greece
Olympic Aquatic Centre                   42500.00   11500  Athens, Greece
Markopoulo Olympic Equestrian Centre     64000.00   15000  Markopoulo, Athens, Greece
Faliro Coastal Zone Olympic Complex      34650.00   12171  Faliro, Athens, Greece
Athens Olympic Stadium                   120400.00  71030  Maroussi, Athens, Greece
Ano Liossia                              34000.00   12000  Ano Liosia, Athens, Greece

Смотрите также

  • cubrid_execute() - Execute a prepared SQL statement
  • cubrid_fetch() - Fetch the next row from a result set
  • cubrid_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_fetch_object() - Fetche the next row and returns it as an object


Return a string with the flags of the given field offset

  • « cubrid_fetch_row
  • cubrid_field_len »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Return a string with the flags of the given field offset

cubrid_field_flags

(PECL CUBRID >= 8.3.0)

cubrid_field_flags — Return a string with the flags of the given field offset

Описание

string cubrid_field_flags ( resource $result , int $field_offset )

This function returns a string with the flags of the given field offset separated by space. You can split the returned value using explode. The possible flags could be: not_null, primary_key, unique_key, foreign_key, auto_increment, shared, reverse_index, reverse_unique and timestamp.

Список параметров

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Возвращаемые значения

A string with flags, when process is successful.

FALSE when invalid field_offset value.

-1 if SQL sentence is not SELECT.

Примеры

Пример #1 cubrid_field_flags() example

<?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", "Field Name", "Field Flags");
for($i = 0; $i < $col_num; $i++) {
    printf("%-30s %s\n", cubrid_field_name($result, $i), cubrid_field_flags($result, $i));
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Field Name                     Field Flags
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


Get the maximum length of the specified field

  • « cubrid_field_flags
  • cubrid_field_name »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Get the maximum length of the specified field

cubrid_field_len

(PECL CUBRID >= 8.3.0)

cubrid_field_len — Get the maximum length of the specified field

Описание

int cubrid_field_len ( resource $result , int $field_offset )

This function returns the maximum length of the specified field on success, or it returns FALSE on failure.

Список параметров

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Возвращаемые значения

Maximum length, when process is successful.

FALSE on failure.

Примеры

Пример #1 cubrid_field_len() example

<?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", "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


Return the name of the specified field index

  • « cubrid_field_len
  • cubrid_field_seek »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Return the name of the specified field index

cubrid_field_name

(PECL CUBRID >= 8.3.0)

cubrid_field_name — Return the name of the specified field index

Описание

string cubrid_field_name ( resource $result , int $field_offset )

This function returns the name of the specified field index on success or it returns FALSE on failure.

Список параметров

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Возвращаемые значения

Name of specified field index, on success.

FALSE on failure.

Примеры

Пример #1 cubrid_field_name() example

<?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", "Field Name", "Field Flags");
for($i = 0; $i < $col_num; $i++) {
    printf("%-30s %s\n", cubrid_field_name($result, $i), cubrid_field_flags($result, $i));
}

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Field Name                     Field Flags
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


Move the result set cursor to the specified field offset

  • « cubrid_field_name
  • cubrid_field_table »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Move the result set cursor to the specified field offset

cubrid_field_seek

(PECL CUBRID >= 8.3.0)

cubrid_field_seek — Move the result set cursor to the specified field offset

Описание

bool cubrid_field_seek ( resource $result [, int $field_offset = 0 ] )

This function moves the result set cursor to the specified field offset. This offset is used by cubrid_fetch_field() if it doesn't include a field offset. It returns TRUE on success or FALSE on failure.

Список параметров

result

result comes from a call to cubrid_execute()

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Возвращаемые значения

TRUE on success.

FALSE on failure.

Примеры

Пример #1 cubrid_field_seek() example

<?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", "name:", $field->name);
printf("%-30s %s\n", "table:", $field->table);
printf("%-30s \"%s\"\n", "default value:", $field->def);
printf("%-30s %d\n", "max length:", $field->max_length);
printf("%-30s %d\n", "not null:", $field->not_null);
printf("%-30s %d\n", "unique key:", $field->unique_key);
printf("%-30s %d\n", "multiple key:", $field->multiple_key);
printf("%-30s %d\n", "numeric:", $field->numeric);
printf("%-30s %s\n", "type:", $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"
}

--- Field Properties ---
name:                          athlete_code
table:                         game
default value:                 ""
max length:                    0
not null:                      1
unique key:                    1
multiple key:                  0
numeric:                       1
type:                          integer


Return the name of the table of the specified field

  • « cubrid_field_seek
  • cubrid_field_type »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Return the name of the table of the specified field

cubrid_field_table

(PECL CUBRID >= 8.3.0)

cubrid_field_table — Return the name of the table of the specified field

Описание

string cubrid_field_table ( resource $result , int $field_offset )

This function returns the name of the table of the specified field. This is useful when using large select queries with JOINS.

Список параметров

result

Array type of the fetched result CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH.

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Возвращаемые значения

Name of the table of the specified field, on success.

FALSE when invalid field_offset value.

-1 if SQL sentence is not SELECT.

Примеры

Пример #1 cubrid_field_table() example

<?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", "Field Table", "Field Name", "Field Type");
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);
?>

Результат выполнения данного примера:

Field Table     Field Name      Field Type
code            s_name          char
code            f_name          varchar


Return the type of the column corresponding to the given field offset

  • « cubrid_field_table
  • cubrid_list_dbs »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Return the type of the column corresponding to the given field offset

cubrid_field_type

(PECL CUBRID >= 8.3.0)

cubrid_field_type — Return the type of the column corresponding to the given field offset

Описание

string cubrid_field_type ( resource $result , int $field_offset )

This function returns the type of the column corresponding to the given field offset. The returned field type could be one of the following: "int", "real", "string", etc.

Список параметров

result

Array type of the fetched result CUBRID_NUM, CUBRID_ASSOC, CUBRID_BOTH.

field_offset

The numerical field offset. The field_offset starts at 0. If field_offset does not exist, an error of level E_WARNING is also issued.

Возвращаемые значения

Type of the column, on success.

FALSE when invalid field_offset value.

-1 if SQL sentence is not SELECT.

Примеры

Пример #1 cubrid_field_type() example

<?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", "Field Table", "Field Name", "Field Type");
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);
?>

Результат выполнения данного примера:

Field Table     Field Name      Field Type
code            s_name          char
code            f_name          varchar


Return an array with the list of all existing CUBRID databases

  • « cubrid_field_type
  • cubrid_num_fields »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Return an array with the list of all existing CUBRID databases

cubrid_list_dbs

(PECL CUBRID >= 8.3.0)

cubrid_list_dbs — Return an array with the list of all existing CUBRID databases

Описание

array cubrid_list_dbs ([ resource $conn_identifier ] )

This function returns an array with the list of all existing Cubrid databases.

Список параметров

conn_identifier

The CUBRID connection.

Возвращаемые значения

An numeric array with all existing Cubrid databases; on success.

FALSE on failure.

Примеры

Пример #1 cubrid_list_dbs() example

<?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"
}


Return the number of columns in the result set

  • « cubrid_list_dbs
  • cubrid_ping »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Return the number of columns in the result set

cubrid_num_fields

(PECL CUBRID >= 8.3.0)

cubrid_num_fields — Return the number of columns in the result set

Описание

int cubrid_num_fields ( resource $result )

This function returns the number of columns in the result set, on success, or it returns FALSE on failure.

Список параметров

result

result comes from a call to cubrid_execute(), cubrid_query() and cubrid_prepare()

Возвращаемые значения

Number of columns, on success.

-1 if SQL sentence is not SELECT.

FALSE when process is unsuccessful.

Примеры

Пример #1 cubrid_num_fields() example

<?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("Row Num: %d\nColumn Num: %d\n", $row_num, $col_num);

cubrid_disconnect($conn);
?>

Результат выполнения данного примера:

Row Num: 6
Column Num: 2


Проверяет, живо ли соединение к серверу и переподнимает его, если нет

  • « cubrid_num_fields
  • cubrid_query »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Проверяет, живо ли соединение к серверу и переподнимает его, если нет

cubrid_ping

(PECL CUBRID >= 8.3.1)

cubrid_ping — Проверяет, живо ли соединение к серверу и переподнимает его, если нет

Описание

bool cubrid_ping ([ resource $conn_identifier ] )

Проверяет, живо ли соединение к серверу.

Список параметров

conn_identifier

Идентификатор соединения. Если не задано, то будет использовано последнее открытое с помощью cubrid_connect() соединение.

Возвращаемые значения

Возвращает TRUE если соединение работает, иначе FALSE.

Примеры

Пример #1 cubrid_ping() example

<?php
set_time_limit(0);

$conn = cubrid_connect('localhost', 33000, 'demodb');

/* Предположим, что это ну очень длинный запрос */
$sql = "select * from athlete";
$result = cubrid_query($sql);
if (!$result) {
    echo 'Query #1 failed, exiting.';
    exit;
}

/* Проверяем, живо ли еще соединение и пересоздаем его, если нет */
if (!cubrid_ping($conn)) {
    echo 'Lost connection, exiting after query #1';
    exit;
}
cubrid_free_result($result);

/* Так так, соединение работает. Тогда еще один запрос! */
$sql2 = "select * from code";
$result2 = cubrid_query($sql2);
?>


Send a CUBRID query

  • « cubrid_ping
  • cubrid_real_escape_string »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Send a CUBRID query

cubrid_query

(PECL CUBRID >= 8.3.1)

cubrid_query — Send a CUBRID query

Описание

resource cubrid_query ( string $query [, resource $conn_identifier ] )

cubrid_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified conn_identifier.

Список параметров

query

An SQL query

Data inside the query should be properly escaped.

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Возвращаемые значения

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, cubrid_query() returns a resource on success, or FALSE on error.

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, cubrid_query() returns TRUE on success or FALSE on error.

The returned result resource should be passed to cubrid_fetch_array(), and other functions for dealing with result tables, to access the returned data.

Use cubrid_num_rows() to find out how many rows were returned for a SELECT statement or cubrid_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

cubrid_query() will also fail and return FALSE if the user does not have permission to access the table(s) referenced by the query.

Примеры

Пример #1 Invalid Query

The following query is syntactically invalid, so cubrid_query() fails and returns FALSE.

<?php
$conn = cubrid_connect('localhost', 33000, 'demodb');

$result = cubrid_query('SELECT * WHERE 1=1');
if (!$result) {
    die('Invalid query: ' . cubrid_error());
}

?>

Пример #2 Valid Query

The following query is valid, so cubrid_query() returns a resource.

<?php
// This could be supplied by a user, for example
$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')");
// Formulate Query
// This is the best way to perform an SQL query
// For more examples, see 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));

// Perform Query
$result = cubrid_query($query);

// Check result
// This shows the actual query sent to CUBRID, and the error. Useful for debugging.
if (!$result) {
    $message  = 'Invalid query: ' . cubrid_error() . "\n";
    $message .= 'Whole query: ' . $query;
    die($message);
}

// Use result
// Attempting to print $result won't allow access to information in the resource
// One of the cubrid result functions must be used
// See also cubrid_result(), cubrid_fetch_array(), cubrid_fetch_row(), etc.
while ($row = cubrid_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
}

// Free the resources associated with the result set
// This is done automatically at the end of the script
cubrid_free_result($result);
?>

Смотрите также

  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_error() - Возвращает текст последней произошедшей ошибки
  • cubrid_real_escape_string() - Escape special characters in a string for use in an SQL statement
  • cubrid_result() - Return the value of a specific field in a specific row
  • cubrid_fetch_assoc() - Return the associative array that corresponds to the fetched row
  • cubrid_unbuffered_query() - Perform a query without fetching the results into memory


Escape special characters in a string for use in an SQL statement

  • « cubrid_query
  • cubrid_result »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Escape special characters in a string for use in an SQL statement

cubrid_real_escape_string

(PECL CUBRID >= 8.3.0)

cubrid_real_escape_string — Escape special characters in a string for use in an SQL statement

Описание

string cubrid_real_escape_string ( string $unescaped_string [, resource $conn_identifier ] )

This function returns the escaped string version of the given string. It will escape the following characters: '. In general, single quotations are used to enclose character string. Double quotations may be used as well depending on the value of ansi_quotes, which is a parameter related to SQL statement. If the ansi_quotes value is set to no, character string enclosed by double quotations is handled as character string, not as an identifier. The default value is yes. If you want to include a single quote as part of a character string, enter two single quotes in a row.

Список параметров

unescaped_string

The string that is to be escaped.

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Возвращаемые значения

Escaped string version of the given string, on success.

FALSE on failure.

Примеры

Пример #1 cubrid_real_escape_string() example

<?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{|}~"
}


Return the value of a specific field in a specific row

  • « cubrid_real_escape_string
  • cubrid_unbuffered_query »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Return the value of a specific field in a specific row

cubrid_result

(PECL CUBRID >= 8.3.0)

cubrid_result — Return the value of a specific field in a specific row

Описание

string cubrid_result ( resource $result , int $row [, mixed $field = 0 ] )

This function returns the value of a specific field in a specific row from a result set.

Список параметров

result

result comes from a call to cubrid_execute()

row

The row number from the result that is being retrieved. Row numbers start at 0.

field

The name or offset of the field being retrieved. It can be the field's offset, the field's name, or the field's table dot field name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name. If undefined, the first field is retrieved.

Возвращаемые значения

Value of a specific field, on success (NULL if value if null).

FALSE on failure.

Примеры

Пример #1 cubrid_result() example

<?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"


Perform a query without fetching the results into memory

  • « cubrid_result
  • Устаревшие псевдонимы и функции CUBRID »
  • PHP Manual
  • Функиции совместимости CUBRID MySQL
  • Perform a query without fetching the results into memory

cubrid_unbuffered_query

(PECL CUBRID >= 8.3.0)

cubrid_unbuffered_query — Perform a query without fetching the results into memory

Описание

resource cubrid_unbuffered_query ( string $query [, resource $conn_identifier ] )

This function performs a query without waiting for that all query results have been complete. It will return when the results are being generated.

Список параметров

query

A SQL query.

conn_identifier

The CUBRID connection. If the connection identifier is not specified, the last connection opened by cubrid_connect() is assumed.

Возвращаемые значения

For SELECT, SHOW, DESCRIBE or EXPLAIN statements returns a request identifier resource on success.

For other type of SQL statements, UPDATE, DELETE, DROP, etc, returns TRUE on success.

FALSE on failure.

Примечания

Замечание:

The benefits of cubrid_unbuffered_query() come at a cost: you cannot use cubrid_num_rows() and cubrid_data_seek() on a result set returned from cubrid_unbuffered_query().

Примеры

Пример #1 cubrid_unbuffered_query() example

<?php
    $link = cubrid_connect("localhost", 30000, "demodb", "dba", "");
    if (!$link)
    {
        die('Could not connect.');
    }
    $query = "select * from code";
    $result = cubrid_unbuffered_query($query, $link);

    while ($row = cubrid_fetch($result))
    {
        var_dump($row);
    }

    cubrid_close_request($result);
    cubrid_disconnect($link);
?>


Устаревшие псевдонимы и функции CUBRID

Содержание

  • cubrid_load_from_glo — Читает данные из экземпляра GLO и записывает их файл
  • cubrid_new_glo — Создает экземпляр glo
  • cubrid_save_to_glo — Сохраняет запрошенный файл в экземпляре GLO
  • cubrid_send_glo — Чтение данных из glo и вывод их в стандартное устройство вывода


Читает данные из экземпляра GLO и записывает их файл

  • « Устаревшие псевдонимы и функции CUBRID
  • cubrid_new_glo »
  • PHP Manual
  • Устаревшие псевдонимы и функции CUBRID
  • Читает данные из экземпляра GLO и записывает их файл

cubrid_load_from_glo

(PECL CUBRID >= 8.3.0)

cubrid_load_from_glo — Читает данные из экземпляра GLO и записывает их файл

Описание

int cubrid_load_from_glo ( resource $conn_identifier , string $oid , string $file_name )

Функция 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 "image changed successfully";
   }
}
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: 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

Описание

string cubrid_new_glo ( resource $conn_identifier , string $class_name , string $file_name )

Функция 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){
   // the type of column "image" is "object"
   $req = cubrid_execute ($con, "insert into person(image) values($oid)");
   if ($req) {
      echo "image inserted successfully";
      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

Описание

int cubrid_save_to_glo ( resource $conn_identifier , string $oid , string $file_name )

Функция 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 "image changed successfully";
   }
}
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: cubrid_save_to_glo()

Замечание:

Функция удалена в CUBRID 3.1.

Смотрите также

  • cubrid_new_glo() - Создает экземпляр glo
  • cubrid_load_from_glo() - Читает данные из экземпляра GLO и записывает их файл
  • cubrid_send_glo() - Чтение данных из glo и вывод их в стандартное устройство вывода


Чтение данных из glo и вывод их в стандартное устройство вывода

  • « cubrid_save_to_glo
  • DB++ »
  • PHP Manual
  • Устаревшие псевдонимы и функции CUBRID
  • Чтение данных из glo и вывод их в стандартное устройство вывода

cubrid_send_glo

(PECL CUBRID >= 8.3.0)

cubrid_send_glo — Чтение данных из glo и вывод их в стандартное устройство вывода

Описание

int cubrid_send_glo ( resource $conn_identifier , string $oid )

Функция cubrid_send_glo() используется для чтения данных из glo и вывода их в стандартное устройство вывода PHP.

Список параметров

conn_identifier

Идентификатор соединения.

oid

Oid инстанса glo из которого вы хотите прочитать данные.

Возвращаемые значения

TRUE, когда удачно.

FALSE, когда неудачно.

Примеры

Пример #1 Пример использования cubrid_send_glo()

<?php
$req = cubrid_execute ($con, "select image from person where id =1");
if ($req) {
  list ($oid) = cubrid_fetch($req);
  cubrid_close_request($req);
  Header ("Content-type: image/jpeg");
  cubrid_send_glo ($con, $oid);
}
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: cubrid_send_glo()

Замечание:

Функция удалена в CUBRID 3.1.

Смотрите также

  • cubrid_new_glo() - Создает экземпляр glo
  • cubrid_save_to_glo() - Сохраняет запрошенный файл в экземпляре GLO
  • cubrid_load_from_glo() - Читает данные из экземпляра GLO и записывает их файл


DB++

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Коды ошибок db++
  • Функции DB++
    • dbplus_add — Добавляет кортеж к связи
    • dbplus_aql — Выполняет запрос AQL
    • dbplus_chdir — Получить/установить текущую виртуальную директорию базы данных
    • dbplus_close — Закрыть отношение
    • dbplus_curr — Взять текущий кортеж для отношения
    • dbplus_errcode — Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки
    • dbplus_errno — Возвращает код ошибки последней операции
    • dbplus_find — Устанавливает ограничения для отношения
    • dbplus_first — Получить первый кортеж для отношения
    • dbplus_flush — Сбрасывает все изменения сделанные для отношения
    • dbplus_freealllocks — Освобождает все блокировки, сделанные клиентом
    • dbplus_freelock — Снимает блокировку записи с кортежа
    • dbplus_freerlocks — Снимает все блокировки для отношения
    • dbplus_getlock — Запрашивает блокировку на запись для кортежа
    • dbplus_getunique — Получить уникальный идентификатор (номер) для отношения
    • dbplus_info — Получает информацию об отношении
    • dbplus_last — Получает последний кортеж для отношения
    • dbplus_lockrel — Запрашивает блокировку записи для отношения
    • dbplus_next — Получить следующий кортеж для отношения
    • dbplus_open — Открыть файл отношений
    • dbplus_prev — Получить предыдущий кортеж для отношения
    • dbplus_rchperm — Изменить разрешения для отношения
    • dbplus_rcreate — Создает новое отношение DB++
    • dbplus_rcrtexact — Создает точную, но пустую копию соотношения включая индексы
    • dbplus_rcrtlike — Создает пустую копию отношения с индексами по умолчанию
    • dbplus_resolve — Извлекает информацию о хосте отношения
    • dbplus_restorepos — Позиция восстановления
    • dbplus_rkeys — Задает новый первичный ключ для отношения
    • dbplus_ropen — Открыть файл отношений локально
    • dbplus_rquery — Выполнить локальный (сырой) AQL запрос
    • dbplus_rrename — Переименовывает отношение
    • dbplus_rsecindex — Создает новый вторичный индекс для отношения
    • dbplus_runlink — Удалить файл отношения
    • dbplus_rzap — Удаляет все кортежи для отношения
    • dbplus_savepos — Сохранить позицию
    • dbplus_setindex — Задать индекс
    • dbplus_setindexbynumber — Установить индекс по номеру
    • dbplus_sql — Выполнить SQL запрос
    • dbplus_tcl — Выполняет код TCL на стороне сервера
    • dbplus_tremove — Удалить кортеж и вернуть новый кортеж
    • dbplus_undo — Отмена
    • dbplus_undoprepare — Подготовить отмену
    • dbplus_unlockrel — Снять блокировку записи с отношения
    • dbplus_unselect — Удалить ограничения с отношения
    • dbplus_update — Заменяет заданный кортеж для отношения
    • dbplus_xlockrel — Запрашивает эксключивную блокировку для отношения
    • dbplus_xunlockrel — Освобождает эксклюзивную блокировку для отношения


Введение

db++ создана неметцкой компанией » Concept asa. Представляет из себя высокопроизводительную реляционную базу данных, потребляющую мало памяти и дискового пространстав, в теории. Не смотря на то, что она предоставляет SQL и еще один дополнительный языковой интерфейс, она, на самом деле, в первую очередь не база данных SQL, а база, предоставляющая свой собственный язык запросов AQL, который более близок к реляционной алгебре, нежели к SQL.

Concept asa всегда поддерживала языки с открытым исходным кодом. db++ имеет интерфейсы вызовов Perl и Tcl и использует Tcl как язык внутренних хранимых процедур.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Требования

Это расширение базируется на клиентских библиотеках db++, так что для его использования вам будет необходимо установить эти библиотеки.

» Concept asa предоставляет » Демонстрационную версию db++ и » документацию для Linux и некоторых других Unix. Также есть версия под Windows, но это расширение ее пока не поддерживает.


Установка

Для сборки расширения необходимо сперва установить клиентские библиотеки и заголовочные файлы db++ (они по умолчанию входят в установочный пакет db++). Необходимо добавить в строку configure опцию with option --with-dbplus .

configure будет искать библиотеки и заголовочные файлы по путям /usr/dbplus, /usr/local/dbplus и /opt/dblus. Если db++ установлен по другому пути, то необходимо указать этот путь в строке configure следующим образом: --with-dbplus=/your/installation/path .


Типы ресурсов

dbplus_relation

Большинство функций db++ оперируют либо возвращают ресурс dbplus_relation. dbplus_relation - это обработчик для хранимых связей, либо связей созданных в результате запроса.


Предопределенные константы

Содержание

  • Коды ошибок db++

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Коды ошибок db++

Коды ошибок DB++
Константа PHP | Константа db++ | Значение
DBPLUS_ERR_NOERR (integer) | ERR_NOERR | Ошибка "Нет ошибки"
DBPLUS_ERR_DUPLICATE (integer) | ERR_DUPLICATE | Попытка вставки дубликата кортежа
DBPLUS_ERR_EOSCAN (integer) | ERR_EOSCAN | Конец сканирования из rget()
DBPLUS_ERR_EMPTY (integer) | ERR_EMPTY | Отношение пусто (сервер)
DBPLUS_ERR_CLOSE (integer) | ERR_CLOSE | Сервер не может закрыться
DBPLUS_ERR_WLOCKED (integer) | ERR_WLOCKED | Отношение заблокировано на запись
DBPLUS_ERR_LOCKED (integer) | ERR_LOCKED | Отношение уже заблокировано
DBPLUS_ERR_NOLOCK (integer) | ERR_NOLOCK | Отношение не может быть заблокировано
DBPLUS_ERR_READ (integer) | ERR_READ | Ошибка чтения отношения
DBPLUS_ERR_WRITE (integer) | ERR_WRITE | Ошибка записи в отношение
DBPLUS_ERR_CREATE (integer) | ERR_CREATE | Ошибка системного вызова Create()
DBPLUS_ERR_LSEEK (integer) | ERR_LSEEK | Ошибка системного вызова Lseek()
DBPLUS_ERR_LENGTH (integer) | ERR_LENGTH | Кортеж превысил максимальную длину
DBPLUS_ERR_OPEN (integer) | ERR_OPEN | Ошибка системного вызова Open()
DBPLUS_ERR_WOPEN (integer) | ERR_WOPEN | Отношение уже открыто для записи
DBPLUS_ERR_MAGIC (integer) | ERR_MAGIC | Файл не является отношением
DBPLUS_ERR_VERSION (integer) | ERR_VERSION | Фпйл является очень старым отношением
DBPLUS_ERR_PGSIZE (integer) | ERR_PGSIZE | Отношение использует другой размер страницы
DBPLUS_ERR_CRC (integer) | ERR_CRC | Некорректная контрольная сумма суперстраницы
DBPLUS_ERR_PIPE (integer) | ERR_PIPE | Конвеерная связь требует lseek()
DBPLUS_ERR_NIDX (integer) | ERR_NIDX | Слишком много вторичных индексов
DBPLUS_ERR_MALLOC (integer) | ERR_MALLOC | Ошибка системного вызова Malloc()
DBPLUS_ERR_NUSERS (integer) | ERR_NUSERS | Ошибка максимального количества пользователей
DBPLUS_ERR_PREEXIT (integer) | ERR_PREEXIT | Вызвана некорректным использованием
DBPLUS_ERR_ONTRAP (integer) | ERR_ONTRAP | Вызвана сигналом
DBPLUS_ERR_PREPROC (integer) | ERR_PREPROC | Ошибка в препроцессоре
DBPLUS_ERR_DBPARSE (integer) | ERR_DBPARSE | Ошибка в парсере
DBPLUS_ERR_DBRUNERR (integer) | ERR_DBRUNERR | Ошибка запуска в базе
DBPLUS_ERR_DBPREEXIT (integer) | ERR_DBPREEXIT | Состояние выхода вызвано процедурой prexit() *
DBPLUS_ERR_WAIT (integer) | ERR_WAIT | Подождите немного (Simple only)
DBPLUS_ERR_CORRUPT_TUPLE (integer) | ERR_CORRUPT_TUPLE | Клиент прислал испорченный кортеж
DBPLUS_ERR_WARNING0 (integer) | ERR_WARNING0 | Простые процедуры столкнулись с нефатальной ошибкой и были скорректированы
DBPLUS_ERR_PANIC (integer) | ERR_PANIC | Сервер на самом деле не умер, но после аварии послал ERR_PANIC всем своим клиентам
DBPLUS_ERR_FIFO (integer) | ERR_FIFO | Не могу создать fifo
DBPLUS_ERR_PERM (integer) | ERR_PERM | Доступ запрещен
DBPLUS_ERR_TCL (integer) | ERR_TCL | Ошибка TCL
DBPLUS_ERR_RESTRICTED (integer) | ERR_RESTRICTED | Только два пользователя
DBPLUS_ERR_USER (integer) | ERR_USER | Ошибка для использования програмистом в приложении
DBPLUS_ERR_UNKNOWN (integer) | ERR_UNKNOWN |


Функции DB++

Содержание

  • dbplus_add — Добавляет кортеж к связи
  • dbplus_aql — Выполняет запрос AQL
  • dbplus_chdir — Получить/установить текущую виртуальную директорию базы данных
  • dbplus_close — Закрыть отношение
  • dbplus_curr — Взять текущий кортеж для отношения
  • dbplus_errcode — Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки
  • dbplus_errno — Возвращает код ошибки последней операции
  • dbplus_find — Устанавливает ограничения для отношения
  • dbplus_first — Получить первый кортеж для отношения
  • dbplus_flush — Сбрасывает все изменения сделанные для отношения
  • dbplus_freealllocks — Освобождает все блокировки, сделанные клиентом
  • dbplus_freelock — Снимает блокировку записи с кортежа
  • dbplus_freerlocks — Снимает все блокировки для отношения
  • dbplus_getlock — Запрашивает блокировку на запись для кортежа
  • dbplus_getunique — Получить уникальный идентификатор (номер) для отношения
  • dbplus_info — Получает информацию об отношении
  • dbplus_last — Получает последний кортеж для отношения
  • dbplus_lockrel — Запрашивает блокировку записи для отношения
  • dbplus_next — Получить следующий кортеж для отношения
  • dbplus_open — Открыть файл отношений
  • dbplus_prev — Получить предыдущий кортеж для отношения
  • dbplus_rchperm — Изменить разрешения для отношения
  • dbplus_rcreate — Создает новое отношение DB++
  • dbplus_rcrtexact — Создает точную, но пустую копию соотношения включая индексы
  • dbplus_rcrtlike — Создает пустую копию отношения с индексами по умолчанию
  • dbplus_resolve — Извлекает информацию о хосте отношения
  • dbplus_restorepos — Позиция восстановления
  • dbplus_rkeys — Задает новый первичный ключ для отношения
  • dbplus_ropen — Открыть файл отношений локально
  • dbplus_rquery — Выполнить локальный (сырой) AQL запрос
  • dbplus_rrename — Переименовывает отношение
  • dbplus_rsecindex — Создает новый вторичный индекс для отношения
  • dbplus_runlink — Удалить файл отношения
  • dbplus_rzap — Удаляет все кортежи для отношения
  • dbplus_savepos — Сохранить позицию
  • dbplus_setindex — Задать индекс
  • dbplus_setindexbynumber — Установить индекс по номеру
  • dbplus_sql — Выполнить SQL запрос
  • dbplus_tcl — Выполняет код TCL на стороне сервера
  • dbplus_tremove — Удалить кортеж и вернуть новый кортеж
  • dbplus_undo — Отмена
  • dbplus_undoprepare — Подготовить отмену
  • dbplus_unlockrel — Снять блокировку записи с отношения
  • dbplus_unselect — Удалить ограничения с отношения
  • dbplus_update — Заменяет заданный кортеж для отношения
  • dbplus_xlockrel — Запрашивает эксключивную блокировку для отношения
  • dbplus_xunlockrel — Освобождает эксклюзивную блокировку для отношения


Добавляет кортеж к связи

  • « Функции DB++
  • dbplus_aql »
  • PHP Manual
  • Функции DB++
  • Добавляет кортеж к связи

dbplus_add

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_add — Добавляет кортеж к связи

Описание

int dbplus_add ( resource $relation , array $tuple )

Добавляет кортеж к отношению relation.

Список параметров

relation

tuple

Массив пар аттрибут/значение для вставки в relation.

После успешного запуска этот массив будет содержать данные созданного кортежа, включая все созданные косвенно доменные поля, вроде последовательностей.

Возвращаемые значения

В случае успеха возвращает DBPLUS_ERR_NOERR, либо другой код db++ в случае ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_errcode() - Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки


Выполняет запрос AQL

  • « dbplus_add
  • dbplus_chdir »
  • PHP Manual
  • Функции DB++
  • Выполняет запрос AQL

dbplus_aql

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_aql — Выполняет запрос AQL

Описание

resource dbplus_aql ( string $query [, string $server [, string $dbpath ]] )

Выполняет запрос AQL query на заданном сервере server и по пути dbpath.

Список параметров

query

Запрос AQL. Подробное описание AQL (Algebraic Query Language) читайте в документации по db++.

server

dbpath

Возвращаемые значения

Возвращает обработчик связи в случае успеха. Результирующие данные можно извлечь из этого обработчика с помощью dbplus_next() и dbplus_curr(). Другие функции доступа к связям не будут работать с этим обработчиком.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Получить/установить текущую виртуальную директорию базы данных

  • « dbplus_aql
  • dbplus_close »
  • PHP Manual
  • Функции DB++
  • Получить/установить текущую виртуальную директорию базы данных

dbplus_chdir

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_chdir — Получить/установить текущую виртуальную директорию базы данных

Описание

string dbplus_chdir ([ string $newdir ] )

Изменяет текущую виртуальную директорию, файлы отношений в которой будут просматриваться при помощи dbplus_open().

Список параметров

newdir

Новая директория. Если этот параметр опустить, то будет просто возвращена текущая директория.

Возвращаемые значения

Возвращает абсолютный путь текущей директории.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Закрыть отношение

  • « dbplus_chdir
  • dbplus_curr »
  • PHP Manual
  • Функции DB++
  • Закрыть отношение

dbplus_close

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_close — Закрыть отношение

Описание

mixed dbplus_close ( resource $relation )

Закрывает отношение, открытое с помощью dbplus_open().

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

В случае успеха возвращает TRUE, в случае неудачи DBPLUS_ERR_UNKNOWN.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Взять текущий кортеж для отношения

  • « dbplus_close
  • dbplus_errcode »
  • PHP Manual
  • Функции DB++
  • Взять текущий кортеж для отношения

dbplus_curr

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_curr — Взять текущий кортеж для отношения

Описание

int dbplus_curr ( resource $relation , array &$tuple )

Читает данные текущего кортежа для отношения relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Данные помещаются в этот параметр в виде ассоциативного массива.

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успеха, либо другую константу db++ в случае ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_first() - Получить первый кортеж для отношения
  • dbplus_prev() - Получить предыдущий кортеж для отношения
  • dbplus_next() - Получить следующий кортеж для отношения
  • dbplus_last() - Получает последний кортеж для отношения
  • dbplus_errcode() - Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки


Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки

  • « dbplus_curr
  • dbplus_errno »
  • PHP Manual
  • Функции DB++
  • Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки

dbplus_errcode

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_errcode — Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки

Описание

string dbplus_errcode ([ int $errno ] )

Возвращает текстовое описание для заданного кода ошибки, либо последнюю ошибку.

Список параметров

errno

Код ошибки. Если не задан, то используется код ошибки последней операции.

Возвращаемые значения

Возвращает текст ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает код ошибки последней операции

  • « dbplus_errcode
  • dbplus_find »
  • PHP Manual
  • Функции DB++
  • Возвращает код ошибки последней операции

dbplus_errno

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_errno — Возвращает код ошибки последней операции

Описание

int dbplus_errno ( void )

Возвращает код ошибки последней операции db++.

Возвращаемые значения

Код ошибки в виде целого числа.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_errcode() - Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки


Устанавливает ограничения для отношения

  • « dbplus_errno
  • dbplus_first »
  • PHP Manual
  • Функции DB++
  • Устанавливает ограничения для отношения

dbplus_find

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_find — Устанавливает ограничения для отношения

Описание

int dbplus_find ( resource $relation , array $constraints , mixed $tuple )

Устанавливает ограничения для отношения relation.

Все последующие вызовы dbplus_curr() или dbplus_next() будут возвращать только те кортежи, которые подходят под это ограничение.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

constraints

Ограничения представляют собой триплеты строк, содержащие доменное имя, оператор сравнения и значение сравнения. Параметр constraints может быть массивом, содержащим коллекцию массивов, которые содержат по три соответствующих элемента, либо массивом, содержащим кратное трем количество строк.

Можно использовать следующие операторы сравнения: '==', '>', '>=', '<', '<=', '!=', '~' для регулярных выражений, и 'BAND' или 'BOR' для побитовых операций.

tuple

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_unselect() - Удалить ограничения с отношения


Получить первый кортеж для отношения

  • « dbplus_find
  • dbplus_flush »
  • PHP Manual
  • Функции DB++
  • Получить первый кортеж для отношения

dbplus_first

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_first — Получить первый кортеж для отношения

Описание

int dbplus_first ( resource $relation , array &$tuple )

Читает данные первого кортежа для отношения relation, делает его текущим и возвращает в виде ассоциативного массива в tuple.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успеха, либо другую константу db++ в случае ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_curr() - Взять текущий кортеж для отношения
  • dbplus_prev() - Получить предыдущий кортеж для отношения
  • dbplus_next() - Получить следующий кортеж для отношения
  • dbplus_last() - Получает последний кортеж для отношения
  • dbplus_errcode() - Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки


Сбрасывает все изменения сделанные для отношения

  • « dbplus_first
  • dbplus_freealllocks »
  • PHP Manual
  • Функции DB++
  • Сбрасывает все изменения сделанные для отношения

dbplus_flush

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_flush — Сбрасывает все изменения сделанные для отношения

Описание

int dbplus_flush ( resource $relation )

Записывает все изменения, сделанные для отношения relation с момента последней записи.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успеха, либо другую константу db++ в случае ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_errcode() - Возвращает текстовое описание для заданного кода ошибки, либо для последней ошибки


Освобождает все блокировки, сделанные клиентом

  • « dbplus_flush
  • dbplus_freelock »
  • PHP Manual
  • Функции DB++
  • Освобождает все блокировки, сделанные клиентом

dbplus_freealllocks

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freealllocks — Освобождает все блокировки, сделанные клиентом

Описание

int dbplus_freealllocks ( void )

Освобождает все блокировки кортежей, сделанные клиентом.

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_getlock() - Запрашивает блокировку на запись для кортежа
  • dbplus_freelock() - Снимает блокировку записи с кортежа
  • dbplus_freerlocks() - Снимает все блокировки для отношения


Снимает блокировку записи с кортежа

  • « dbplus_freealllocks
  • dbplus_freerlocks »
  • PHP Manual
  • Функции DB++
  • Снимает блокировку записи с кортежа

dbplus_freelock

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freelock — Снимает блокировку записи с кортежа

Описание

int dbplus_freelock ( resource $relation , string $tuple )

Снимает блокировку записи с кортежа tuple, установленную с помощью dbplus_getlock().

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_getlock() - Запрашивает блокировку на запись для кортежа
  • dbplus_freerlocks() - Снимает все блокировки для отношения
  • dbplus_freealllocks() - Освобождает все блокировки, сделанные клиентом


Снимает все блокировки для отношения

  • « dbplus_freelock
  • dbplus_getlock »
  • PHP Manual
  • Функции DB++
  • Снимает все блокировки для отношения

dbplus_freerlocks

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_freerlocks — Снимает все блокировки для отношения

Описание

int dbplus_freerlocks ( resource $relation )

Снимает все блокировки кортежей для отношения relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_getlock() - Запрашивает блокировку на запись для кортежа
  • dbplus_freelock() - Снимает блокировку записи с кортежа
  • dbplus_freealllocks() - Освобождает все блокировки, сделанные клиентом


Запрашивает блокировку на запись для кортежа

  • « dbplus_freerlocks
  • dbplus_getunique »
  • PHP Manual
  • Функции DB++
  • Запрашивает блокировку на запись для кортежа

dbplus_getlock

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_getlock — Запрашивает блокировку на запись для кортежа

Описание

int dbplus_getlock ( resource $relation , string $tuple )

Запрашивает блокировку на запись для заданного кортежа tuple.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Возвращает 0 в случае успеха или другой код ошибки, обычно DBPLUS_ERR_WLOCKED, при неудаче.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_freelock() - Снимает блокировку записи с кортежа
  • dbplus_freerlocks() - Снимает все блокировки для отношения
  • dbplus_freealllocks() - Освобождает все блокировки, сделанные клиентом


Получить уникальный идентификатор (номер) для отношения

  • « dbplus_getlock
  • dbplus_info »
  • PHP Manual
  • Функции DB++
  • Получить уникальный идентификатор (номер) для отношения

dbplus_getunique

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_getunique — Получить уникальный идентификатор (номер) для отношения

Описание

int dbplus_getunique ( resource $relation , int $uniqueid )

Получает гарантированно уникальное число для заданного отношения relation и заносит его в переменную указанную в uniqueid.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

uniqueid

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успеха, либо другую константу db++ в случае ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Получает информацию об отношении

  • « dbplus_getunique
  • dbplus_last »
  • PHP Manual
  • Функции DB++
  • Получает информацию об отношении

dbplus_info

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_info — Получает информацию об отношении

Описание

int dbplus_info ( resource $relation , string $key , array &$result )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

key

result

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Получает последний кортеж для отношения

  • « dbplus_info
  • dbplus_lockrel »
  • PHP Manual
  • Функции DB++
  • Получает последний кортеж для отношения

dbplus_last

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_last — Получает последний кортеж для отношения

Описание

int dbplus_last ( resource $relation , array &$tuple )

Читает данные последнего кортежа для отношения relation, делает его текущим и записывает в виде ассоциативного массива в tuple.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успеха, либо другую константу db++ в случае ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_first() - Получить первый кортеж для отношения
  • dbplus_curr() - Взять текущий кортеж для отношения
  • dbplus_prev() - Получить предыдущий кортеж для отношения
  • dbplus_next() - Получить следующий кортеж для отношения


Запрашивает блокировку записи для отношения

  • « dbplus_last
  • dbplus_next »
  • PHP Manual
  • Функции DB++
  • Запрашивает блокировку записи для отношения

dbplus_lockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_lockrel — Запрашивает блокировку записи для отношения

Описание

int dbplus_lockrel ( resource $relation )

Запрашивает блокировку записи для отношения relation.

Другие клиенты могут продолжать читать связь, но не могут ее изменять.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Получить следующий кортеж для отношения

  • « dbplus_lockrel
  • dbplus_open »
  • PHP Manual
  • Функции DB++
  • Получить следующий кортеж для отношения

dbplus_next

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_next — Получить следующий кортеж для отношения

Описание

int dbplus_next ( resource $relation , array &$tuple )

Читает данные следующего кортежа для отношения relation, делает его текущим и записывает в виде ассоциативного массива в tuple.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успеха, либо другую константу db++ в случае ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_first() - Получить первый кортеж для отношения
  • dbplus_curr() - Взять текущий кортеж для отношения
  • dbplus_prev() - Получить предыдущий кортеж для отношения
  • dbplus_last() - Получает последний кортеж для отношения


Открыть файл отношений

  • « dbplus_next
  • dbplus_prev »
  • PHP Manual
  • Функции DB++
  • Открыть файл отношений

dbplus_open

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_open — Открыть файл отношений

Описание

resource dbplus_open ( string $name )

Открывает указанный файл отношений.

Список параметров

name

Абсолютный, либо относительный путь к файлу. В любом случае он будет отражен как абсолютный путь к файлу на конкретном хосте и сервере.

Возвращаемые значения

В случае успеша будет возвращен ресурс файла отношений (курсор), который можно использовать последующей работы с файлом отношений. В случае неудачи будет возвращен 0. Конкретную ошибку можно узнать вызвав функцию dbplus_errno().

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Получить предыдущий кортеж для отношения

  • « dbplus_open
  • dbplus_rchperm »
  • PHP Manual
  • Функции DB++
  • Получить предыдущий кортеж для отношения

dbplus_prev

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_prev — Получить предыдущий кортеж для отношения

Описание

int dbplus_prev ( resource $relation , array &$tuple )

Читает данные предыдущего кортежа для отношения relation, делает его текущим и записывает в виде ассоциативного массива в tuple.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Функция возвращает 0 (оно же DBPLUS_ERR_NOERR) в случае успеха, либо другую константу db++ в случае ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_first() - Получить первый кортеж для отношения
  • dbplus_curr() - Взять текущий кортеж для отношения
  • dbplus_next() - Получить следующий кортеж для отношения
  • dbplus_last() - Получает последний кортеж для отношения


Изменить разрешения для отношения

  • « dbplus_prev
  • dbplus_rcreate »
  • PHP Manual
  • Функции DB++
  • Изменить разрешения для отношения

dbplus_rchperm

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rchperm — Изменить разрешения для отношения

Описание

int dbplus_rchperm ( resource $relation , int $mask , string $user , string $group )

Изменяет права доступа к файлу отношения в соответствии с mask, user и group. Значения зависят от используемой операционной системы.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

mask

user

group

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает новое отношение DB++

  • « dbplus_rchperm
  • dbplus_rcrtexact »
  • PHP Manual
  • Функции DB++
  • Создает новое отношение DB++

dbplus_rcreate

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcreate — Создает новое отношение DB++

Описание

resource dbplus_rcreate ( string $name , mixed $domlist [, bool $overwrite ] )

Создает новое отношение. Любое существующее отношение с таким же именем name будет перезаписано, если оно в данный момент не используется и overwrite задано как TRUE.

Список параметров

name

domlist

Комбинация доменов. Можно передать как строку с одним доменом, так и массив строк.

Этот параметр должен содержать спецификацию доменов для создаваемого отношения в виде строки, либо массива. Спецификация должна состоять из уникальных доменных имен для данного отношения, слешей и символов типа спецификации. Смотрите документацию db++, раздел dbcreate(1), для получения более подробной информации.

Замечание:

Эта функция, также, принимает строку с несколькими доменами разделенными пробелами, но рекомендуется использовать массив.

overwrite

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает точную, но пустую копию соотношения включая индексы

  • « dbplus_rcreate
  • dbplus_rcrtlike »
  • PHP Manual
  • Функции DB++
  • Создает точную, но пустую копию соотношения включая индексы

dbplus_rcrtexact

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcrtexact — Создает точную, но пустую копию соотношения включая индексы

Описание

mixed dbplus_rcrtexact ( string $name , resource $relation [, bool $overwrite ] )

dbplus_rcrtexact() создает точную, но пустую копию заданного отношения relation под новым именем name.

Список параметров

name

relation

Копируемое отношение, открытое с помощью dbplus_open().

overwrite

Если отношение с именем name уже существует, никакой процесс его не использует и этот парамерт установлен как TRUE, то оно будет перезаписано.

Возвращаемые значения

В случае успеха возвращает ресурс, в случае неудачи DBPLUS_ERR_UNKNOWN.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает пустую копию отношения с индексами по умолчанию

  • « dbplus_rcrtexact
  • dbplus_resolve »
  • PHP Manual
  • Функции DB++
  • Создает пустую копию отношения с индексами по умолчанию

dbplus_rcrtlike

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rcrtlike — Создает пустую копию отношения с индексами по умолчанию

Описание

mixed dbplus_rcrtlike ( string $name , resource $relation [, int $overwrite ] )

dbplus_rcrtexact() создает пустую копию отношения relation с именем name, но с индексами по умолчанию.

Список параметров

name

relation

Копируемое отношение, открытое с помощью dbplus_open().

overwrite

Если отношение с именем name уже существует, никакой процесс его не использует и этот парамерт установлен как TRUE, то оно будет перезаписано.

Возвращаемые значения

В случае успеха возвращает ресурс, в случае неудачи DBPLUS_ERR_UNKNOWN.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Извлекает информацию о хосте отношения

  • « dbplus_rcrtlike
  • dbplus_restorepos »
  • PHP Manual
  • Функции DB++
  • Извлекает информацию о хосте отношения

dbplus_resolve

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_resolve — Извлекает информацию о хосте отношения

Описание

array dbplus_resolve ( string $relation_name )

dbplus_resolve() пытается извлечь информацию о внутреннем идентификаторе сервера, реальном имени хоста и абсолютном пути до файла отношения на этом хосте по заданному relation_name.

Список параметров

relation_name

Имя отношения.

Возвращаемые значения

Возвращает массив со следующими ключами: sid, host host_path, или FALSE в случае ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_tcl() - Выполняет код TCL на стороне сервера


Позиция восстановления

  • « dbplus_resolve
  • dbplus_rkeys »
  • PHP Manual
  • Функции DB++
  • Позиция восстановления

dbplus_restorepos

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_restorepos — Позиция восстановления

Описание

int dbplus_restorepos ( resource $relation , array $tuple )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Задает новый первичный ключ для отношения

  • « dbplus_restorepos
  • dbplus_ropen »
  • PHP Manual
  • Функции DB++
  • Задает новый первичный ключ для отношения

dbplus_rkeys

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rkeys — Задает новый первичный ключ для отношения

Описание

mixed dbplus_rkeys ( resource $relation , mixed $domlist )

dbplus_rkeys() заменяет текущий первичный ключ для relation с помощью комбинации доменов, заданных с помощью domlist.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

domlist

Комбинация доменов. Можно передать как строку с одним именем домена, так и массив строк.

Возвращаемые значения

В случае успеха возвращает ресурс, а в случае неудачи DBPLUS_ERR_UNKNOWN.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Открыть файл отношений локально

  • « dbplus_rkeys
  • dbplus_rquery »
  • PHP Manual
  • Функции DB++
  • Открыть файл отношений локально

dbplus_ropen

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_ropen — Открыть файл отношений локально

Описание

resource dbplus_ropen ( string $name )

dbplus_ropen() открывает файл отношений file локально. Это даст быстрый доступ к нему, без накладных расходом на клиент-серверное взаимодействие. Доступ будет только на чтение и можно будет использовать только dbplus_curr() и dbplus_next().

Список параметров

name

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Выполнить локальный (сырой) AQL запрос

  • « dbplus_ropen
  • dbplus_rrename »
  • PHP Manual
  • Функции DB++
  • Выполнить локальный (сырой) AQL запрос

dbplus_rquery

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rquery — Выполнить локальный (сырой) AQL запрос

Описание

resource dbplus_rquery ( string $query [, string $dbpath ] )

dbplus_rquery() выполняет локальный (сырой) AQL запрос, используя встроенный в клиентскую библиотеку db++ интерпритатор AQL. Функция dbplus_rquery() работает быстрее чем dbplus_aql(), но только с локальными данными.

Список параметров

query

dbpath

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Переименовывает отношение

  • « dbplus_rquery
  • dbplus_rsecindex »
  • PHP Manual
  • Функции DB++
  • Переименовывает отношение

dbplus_rrename

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rrename — Переименовывает отношение

Описание

int dbplus_rrename ( resource $relation , string $name )

dbplus_rrename() изменяет имя отношения с relation на name.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

name

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает новый вторичный индекс для отношения

  • « dbplus_rrename
  • dbplus_runlink »
  • PHP Manual
  • Функции DB++
  • Создает новый вторичный индекс для отношения

dbplus_rsecindex

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rsecindex — Создает новый вторичный индекс для отношения

Описание

mixed dbplus_rsecindex ( resource $relation , mixed $domlist , int $type )

dbplus_rsecindex() создает новый вторичный индекс для отношения relation, состоящий из доменов указанных в domlist и имеющий тип type

Список параметров

relation

Отношение, открытое dbplus_open().

domlist

Комбинация доменов. Можно передать как строку с одним доменом, так и массив строк.

type

Возвращаемые значения

В случае успеха возвращает ресурс, в случае неудачи DBPLUS_ERR_UNKNOWN.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Удалить файл отношения

  • « dbplus_rsecindex
  • dbplus_rzap »
  • PHP Manual
  • Функции DB++
  • Удалить файл отношения

dbplus_runlink

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_runlink — Удалить файл отношения

Описание

int dbplus_runlink ( resource $relation )

dbplus_runlink() закрывает и удаляет отношение relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Удаляет все кортежи для отношения

  • « dbplus_runlink
  • dbplus_savepos »
  • PHP Manual
  • Функции DB++
  • Удаляет все кортежи для отношения

dbplus_rzap

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_rzap — Удаляет все кортежи для отношения

Описание

int dbplus_rzap ( resource $relation )

dbplus_rzap() удалит все кортежи для отношения relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Сохранить позицию

  • « dbplus_rzap
  • dbplus_setindex »
  • PHP Manual
  • Функции DB++
  • Сохранить позицию

dbplus_savepos

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_savepos — Сохранить позицию

Описание

int dbplus_savepos ( resource $relation )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Задать индекс

  • « dbplus_savepos
  • dbplus_setindexbynumber »
  • PHP Manual
  • Функции DB++
  • Задать индекс

dbplus_setindex

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_setindex — Задать индекс

Описание

int dbplus_setindex ( resource $relation , string $idx_name )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

idx_name

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Установить индекс по номеру

  • « dbplus_setindex
  • dbplus_sql »
  • PHP Manual
  • Функции DB++
  • Установить индекс по номеру

dbplus_setindexbynumber

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_setindexbynumber — Установить индекс по номеру

Описание

int dbplus_setindexbynumber ( resource $relation , int $idx_number )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

idx_number

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Выполнить SQL запрос

  • « dbplus_setindexbynumber
  • dbplus_tcl »
  • PHP Manual
  • Функции DB++
  • Выполнить SQL запрос

dbplus_sql

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_sql — Выполнить SQL запрос

Описание

resource dbplus_sql ( string $query [, string $server [, string $dbpath ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

query

server

dbpath

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Выполняет код TCL на стороне сервера

  • « dbplus_sql
  • dbplus_tremove »
  • PHP Manual
  • Функции DB++
  • Выполняет код TCL на стороне сервера

dbplus_tcl

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_tcl — Выполняет код TCL на стороне сервера

Описание

string dbplus_tcl ( int $sid , string $script )

Сервер db++ подготавливает интерпритатор TCL для каждого клиентского подключения. Этот интерпритатор позволяет серверу запускать присланный клиентом код TCL как хранимую процедуру. Это позволяет увеличить производительность операций базы данных избегая лишней передачи данных от сервера клиенту и переключения контекста.

В функцию dbplus_tcl() необходимо передать идентификатор соединения и скрипт TCL (script), который необходимо выполнить. Идентификатор соединения можно получить из функции dbplus_resolve(). Функция возвращает код возврата TCL, либо сообщение об ошибке TCL.

Список параметров

sid

script

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_resolve() - Извлекает информацию о хосте отношения


Удалить кортеж и вернуть новый кортеж

  • « dbplus_tcl
  • dbplus_undo »
  • PHP Manual
  • Функции DB++
  • Удалить кортеж и вернуть новый кортеж

dbplus_tremove

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_tremove — Удалить кортеж и вернуть новый кортеж

Описание

int dbplus_tremove ( resource $relation , array $tuple [, array &$current ] )

dbplus_tremove() удаляет tuple из relation, если он идеально соответствует кортежу в связи. current, если задано, будет содержать данные нового текущего кортежа, который станет текущим после вызова dbplus_tremove().

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

tuple

current

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Отмена

  • « dbplus_tremove
  • dbplus_undoprepare »
  • PHP Manual
  • Функции DB++
  • Отмена

dbplus_undo

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_undo — Отмена

Описание

int dbplus_undo ( resource $relation )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Подготовить отмену

  • « dbplus_undo
  • dbplus_unlockrel »
  • PHP Manual
  • Функции DB++
  • Подготовить отмену

dbplus_undoprepare

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_undoprepare — Подготовить отмену

Описание

int dbplus_undoprepare ( resource $relation )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Снять блокировку записи с отношения

  • « dbplus_undoprepare
  • dbplus_unselect »
  • PHP Manual
  • Функции DB++
  • Снять блокировку записи с отношения

dbplus_unlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_unlockrel — Снять блокировку записи с отношения

Описание

int dbplus_unlockrel ( resource $relation )

Снимает блокировку записи с отношения, установленную dbplus_lockrel().

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Удалить ограничения с отношения

  • « dbplus_unlockrel
  • dbplus_update »
  • PHP Manual
  • Функции DB++
  • Удалить ограничения с отношения

dbplus_unselect

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_unselect — Удалить ограничения с отношения

Описание

int dbplus_unselect ( resource $relation )

Вызов dbplus_unselect() удаляет ограничения установленные функцией dbplus_find() для отношения relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Заменяет заданный кортеж для отношения

  • « dbplus_unselect
  • dbplus_xlockrel »
  • PHP Manual
  • Функции DB++
  • Заменяет заданный кортеж для отношения

dbplus_update

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_update — Заменяет заданный кортеж для отношения

Описание

int dbplus_update ( resource $relation , array $old , array $new )

dbplus_update() заменяет кортеж old данными кортежа new, только если old точно соответствует кортежу для отношения relation.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

old

Старый кортеж.

new

Новый кортеж.

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Запрашивает эксключивную блокировку для отношения

  • « dbplus_update
  • dbplus_xunlockrel »
  • PHP Manual
  • Функции DB++
  • Запрашивает эксключивную блокировку для отношения

dbplus_xlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_xlockrel — Запрашивает эксключивную блокировку для отношения

Описание

int dbplus_xlockrel ( resource $relation )

Запрашивает эксключивную блокировку для отношения relation, запрещая доступ на чтение для других клиентов.

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Смотрите также

  • dbplus_xunlockrel() - Освобождает эксклюзивную блокировку для отношения


Освобождает эксклюзивную блокировку для отношения

  • « dbplus_xlockrel
  • dBase »
  • PHP Manual
  • Функции DB++
  • Освобождает эксклюзивную блокировку для отношения

dbplus_xunlockrel

(PHP 4 <= 4.1.0, PECL dbplus >= 0.9)

dbplus_xunlockrel — Освобождает эксклюзивную блокировку для отношения

Описание

int dbplus_xunlockrel ( resource $relation )

Освобождает эксклюзивную блокировку для отношения полученную с помощью dbplus_xlockrel().

Список параметров

relation

Отношение, открытое с помощью dbplus_open().

Возвращаемые значения

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


dBase

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • dBase
    • dbase_add_record — Добавляет запись в базу данных
    • dbase_close — Закрывает базу данных
    • dbase_create — Создает базу данных
    • dbase_delete_record — Удаление записей из базы данных
    • dbase_get_header_info — Получает информацию о свойствах полей базы данных
    • dbase_get_record_with_names — Получает запись из базы данных в виде ассоциативного массива
    • dbase_get_record — Получает записи из базы данных, как из индексированного массива
    • dbase_numfields — Получает количество полей базы данных
    • dbase_numrecords — Получает количество записей в базе данных
    • dbase_open — Открывает базу данных
    • dbase_pack — Фиксирует удаление из базы данных
    • dbase_replace_record — Заменяет запись в базе данных


Введение

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.3.0.

Эти функции позволяют получить доступ к записям, хранящимся в DBase-формате (DBF) баз данных.

Внимание

Мы не рекомендуем использовать файлы DBase файлы для использования в промышленной эксплуатации. Лучше выберите » SQLite или какую либо настоящую базу данных; » MySQL или » Postgres являются наиболее частым выбором при работе с PHP. Поддержка dBase больше нужна для импорта и экспорта данных вашей базы данных, поскольку формат ее файлов понятен большинству пакетов электронных таблиц (например Excel).

Предостережение

С версии dbase 7.0.0, база данных автоматически блокируется с помощью flock(). Ранее поддержки блокировок небыло, так что два конкурирующих процесса веб-сервера, изменяющие один и тот-же файл dBase могли с легкостью испортить базу. Такое может произойти даже и в dbase 7.0.0+ на системах, которые реализуют блокировку на уровне процесса с многопоточными SAPI, такими как ISAPI.

База данных dBase является просто последовательностью файлов с фиксированной длиной записи. Записи добавляются в конец файла и удаленные записи будут (физически) хранится до вызова dbase_pack().

Поддерживаются только dbf-файлы уровня 3 (dBASE III+) - 5 (dBASE V). Доступные типы полей dBase:

Типы полей
Поле | dBase тип | Формат | Дополнительная информация
M | Memo | n/a | Тип не поддерживается PHP, такое поле будет игнорироваться
D | Date | YYYYMMDD | Длина поля установлена в 8
T | DateTime | YYYYMMDDhhmmss.uuu | (FoxPro) Проверка на корректность не производится. Доступно с dbase 7.0.0.
N | Number | Число | Вы должны указать длину и точность (количество цифр после десятичной точки).
F | Float | Число с плавающей запятой | То же, что и N. Доступно с PHP 5.2.0
C | String | A string | Вы должны указать длину. При получении данных, строка будет дополнена справа пробелами до заявленной длины. Более длинные строки будут обрезаны без предупреждения.
L | Boolean | T или Y для TRUE, F или N для FALSE, ? - не инициализированно. | С dbase 7.0.0, возвращается как bool (TRUE или FALSE), или NULL для не инициализированных полей. Ранее возвращалось как int (1 или 0).

Замечание:

Начиная с dbase 7.0.0 поддерживаются обнуляемые поля для баз данных DBASE_TYPE_FOXPRO. Если поле обнуляемое. При передаче NULL будет установлен соответствующий флаг и, при дальней шем извлечении поля, будет возвращено значение NULL.

Замечание:

Поддержки для индексов и memo-полей нет.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://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 — Добавляет запись в базу данных

Описание

bool dbase_add_record ( resource $dbase_identifier , array $record )

Добавляет данные в базу данных

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

record

Индексированный массив с данными. Количество элементов должно быть равно числу полей в базе данных, в противном случае dbase_add_record() не удастся выполнить.

Замечание:

Если вы используете в качестве параметра запись, которую вернула функция dbase_get_record(), не забудьте сбросить ключ deleted. (прим пер. - unset(record['deleted']);

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Вставка записи в базу данных dBase

<?php

// открыть БД в режиме чтения и записи
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  dbase_add_record($db, array(
      date('Ymd'),
      'Maxim Topolov',
      '23',
      'max@example.com',
      'T'));
  dbase_close($db);
}

?>

Смотрите также

  • dbase_delete_record() - Удаление записей из базы данных
  • dbase_replace_record() - Заменяет запись в базе данных


Закрывает базу данных

  • « dbase_add_record
  • dbase_create »
  • PHP Manual
  • dBase
  • Закрывает базу данных

dbase_close

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_close — Закрывает базу данных

Описание

bool dbase_close ( resource $dbase_identifier )

Закрывает базу данных согласно полученному идентификатору.

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Закрытие файла базы данных dBase

<?php

// открыть БД в режиме чтения
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  // получить некоторые данные

  dbase_close($db);
}

?>

Смотрите также

  • dbase_open() - Открывает базу данных
  • dbase_create() - Создает базу данных


Создает базу данных

  • « dbase_close
  • dbase_delete_record »
  • PHP Manual
  • dBase
  • Создает базу данных

dbase_create

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_create — Создает базу данных

Описание

resource dbase_create ( string $filename , array $fields , int $type = DBASE_TYPE_DBASE )

dbase_create() создает базу данных dBase с заданными свойствами. Если файл уже существует, то он не будет предварительно очищен. Для принудительной очистки используйте функцию dbase_pack().

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание:

На поведение этой функции влияет значение директивы open_basedir.

Список параметров

filename

Имя базы данных. Это может быть относительный или абсолютный путь к файлу, в котором dBase будет хранить ваши данные.

fields

Массив массивов, в котором каждый массив описывает формат одного поля базы данных. Формат каждого поля состоит из имени этого поля, символа, указывающего тип поля, и, при необходимости, его длину, точность и флаг обнуляемости. Поддерживаемые типы файлов перечислены в вводной секции.

Замечание:

Имена полей ограничены в длину и не должны превышать 10 символов.

type

Тип создаваемой базы данных. Либо DBASE_TYPE_DBASE либо DBASE_TYPE_FOXPRO.

Замечание:

Имена полей ограничены в длину и не должны превышать 10 символов.

Возвращаемые значения

Возвращает идентификатор связи с базой данных, если база данных успешно создана, или FALSE в случае ошибки.

Список изменений

Версия | Описание
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 — Удаление записей из базы данных

Описание

bool dbase_delete_record ( resource $dbase_identifier , int $record_number )

Помечает указанные записи для удаления из базы данных.

Замечание:

Для окончательного удаления записей из базы данных, необходимо вызвать dbase_pack().

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

record_number

Целое число, в промежутке от 1 до количества записей в базе дынных (количество записей возвращает функция dbase_numrecords()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Смотрите также

  • dbase_add_record() - Добавляет запись в базу данных
  • dbase_replace_record() - Заменяет запись в базе данных


Получает информацию о свойствах полей базы данных

  • « dbase_delete_record
  • dbase_get_record_with_names »
  • PHP Manual
  • dBase
  • Получает информацию о свойствах полей базы данных

dbase_get_header_info

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_header_info — Получает информацию о свойствах полей базы данных

Описание

array dbase_get_header_info ( resource $dbase_identifier )

Возвращает информацию о структуре полей (столбцов) базы данных, согласно заданному идентификатору.

Список параметров

dbase_identifier

Идентификатор базы данных, полученный с помощью dbase_open() или dbase_create().

Возвращаемые значения

Индексированный массив значений для каждой колонки (поля). Индекс массива начинается с 0.

Каждый элемент массива содержит ассоциативный массив информации о столбцах БД следующего вида:

name
Наименование поля
type
Тип поля dBase в удобном для восприятия виде (date, boolean, и т.д.) Поддерживаемые типы файлов перечислены в вводной секции.
length
Максимально хранимое число байт данного поля (включая "precision" - прим. пер.)
precision
Количество цифр после запятой
format
Предложенный в printf() формат спецификации для данного типа
offset
Байт смещения, указывающий размещение поля от начала записи (строки).

Если информация в заголовке базы данных не может быть прочитана, возвращает FALSE.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Получение свойств полей файла базы данных dBase

<?php
// Путь к файлу БД
$db_path = "/tmp/test.dbf";

// Открываем файл БД
$dbh = dbase_open($db_path, 0)
  or die("Ошибка! Не получается открыть файл '$db_path'.");

// Получаем информацию о столбцах
$column_info = dbase_get_header_info($dbh);

// Отображение информации
print_r($column_info);
?>


Получает запись из базы данных в виде ассоциативного массива

  • « dbase_get_header_info
  • dbase_get_record »
  • PHP Manual
  • dBase
  • Получает запись из базы данных в виде ассоциативного массива

dbase_get_record_with_names

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_record_with_names — Получает запись из базы данных в виде ассоциативного массива

Описание

array dbase_get_record_with_names ( resource $dbase_identifier , int $record_number )

Получает запись из базы данных dBase в виде ассоциативного массива (вместе с именами соответствующих полей).

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

record_number

Индекс записи (Здесь соответствует физическому номеру записи. - прим. пер.) в диапазоне от 1 до dbase_numrecords($dbase_identifier)

Возвращаемые значения

Ассоциативный массив с данными строки. Массив будет включать в себя ключ deleted который равен 1, если запись помечена на удаление (см. dbase_delete_record()). Возвращает и пустые записи. Следовательно, этой функцией невозможно извлечь значение или имя поля delete.

Каждое поле преобразуется в соответствующий тип PHP, за исключением:

  • Date преобразуется в строку.
  • DateTime преобразуется в строку.
  • Целые, выходящие из диапазона PHP_INT_MIN..PHP_INT_MAX преобразуются в строки.
  • До dbase 7.0.0, логические значение (L) преобразуются в 1 или 0.

В случае ошибки, dbase_get_record_with_names() возвращает FALSE.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Список всех зарегистрированных пользователей в базе данных

<?php
// открываем базу в режиме чтения
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
      $row = dbase_get_record_with_names($db, $i);
      if ($row['ismember'] == 1) {
          echo "Member #$i: " . trim($row['name']) . "\n";
      }
  }
}
// Прим. пер. -
// к полученным с помощью dbase_get_record_with_names значениям записи
// обращаемся по имени - $row['ismember'],
// а в случае с dbase_get_record к значениям записи
// обращаемся по номеру - $row[4]
?>

Смотрите также

  • dbase_get_record() - Получает записи из базы данных, как из индексированного массива


Получает записи из базы данных, как из индексированного массива

  • « dbase_get_record_with_names
  • dbase_numfields »
  • PHP Manual
  • dBase
  • Получает записи из базы данных, как из индексированного массива

dbase_get_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_get_record — Получает записи из базы данных, как из индексированного массива

Описание

array dbase_get_record ( resource $dbase_identifier , int $record_number )

Получает записи из базы данных, как из индексированного массива.

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

record_number

Индекс записи (Здесь соответствует физическому номеру записи. - прим. пер.) в диапазоне от 1 до dbase_numrecords($dbase_identifier)

Возвращаемые значения

Возвращает запись в виде массива. Массив будет включать в себя ключ deleted который равен 1, если запись помечена на удаление (см. dbase_delete_record()).

Каждое поле преобразуется в соответствующий тип PHP, за исключением:

  • Date преобразуется в строку.
  • DateTime преобразуется в строку.
  • Целые, выходящие из диапазона PHP_INT_MIN..PHP_INT_MAX преобразуются в строки.
  • До dbase 7.0.0, логические значение (L) преобразуются в 1 или 0.

В случае ошибки, dbase_get_record() возвращает FALSE.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Смотрите также

  • dbase_get_record_with_names() - Получает запись из базы данных в виде ассоциативного массива


Получает количество полей базы данных

  • « dbase_get_record
  • dbase_numrecords »
  • PHP Manual
  • dBase
  • Получает количество полей базы данных

dbase_numfields

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_numfields — Получает количество полей базы данных

Описание

int dbase_numfields ( resource $dbase_identifier )

Получает количество полей (колонок) в указанной базе данных.

Замечание:

Поле номеруются от 0 до dbase_numfields($db)-1, тогда как записи базы данных от 1 до dbase_numrecords($db).

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Количество полей в базе данных, или FALSE в случае ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Пример использования dbase_numfields()

<?php
//открытие БД для чтения
$db = dbase_open('.\tmp\test.dbf', 0);

//если соединение успешно, то выполняем действия
if ($db) {
  //получение количества записей БД
  $record_numbers = dbase_numrecords($db);
  //получение количества полей БД
  $nf  = dbase_numfields($db);
  //вывод всех записей БД
  //построчный обход
  for ($j = 1;  $j <= $record_numbers;  $j++) {
    //вывод номера строки
    echo $j."=>" ;
    //получение строки по номеру (индексу)
    $rec = dbase_get_record($db, $j);

    //обход по столбцам
    for ($i = 0; $i < $nf; $i++) {
      //вывод данных поля
      echo $rec[$i], "\t";
    }
  echo "<br>";
  }
dbase_close($db);
} else echo "Не удалось подключиться к БД";

?>

Смотрите также

  • dbase_numrecords() - Получает количество записей в базе данных


Получает количество записей в базе данных

  • « dbase_numfields
  • dbase_open »
  • PHP Manual
  • dBase
  • Получает количество записей в базе данных

dbase_numrecords

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_numrecords — Получает количество записей в базе данных

Описание

int dbase_numrecords ( resource $dbase_identifier )

Получает количество записей (строк) в указанной базе данных.

Замечание:

Записи базы данных нумеруются от 1 dbase_numrecords($db), тогда как поля от 0 до dbase_numfields($db)-1.

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Количество записей в базе данных, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Цикл по всем записям базы данных

<?php

// открываем в режиме для чтения
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
      //выполнение каких-либо действий с записью
  }
}

?>

Смотрите также

  • dbase_numfields() - Получает количество полей базы данных


Открывает базу данных

  • « dbase_numrecords
  • dbase_pack »
  • PHP Manual
  • dBase
  • Открывает базу данных

dbase_open

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_open — Открывает базу данных

Описание

resource dbase_open ( string $filename , int $mode )

dbase_open() открывает базу данных dBase с заданным режимом доступа.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание:

На поведение этой функции влияет значение директивы open_basedir.

Список параметров

filename

Имя базы данных. Это может быть относительный или абсолютный путь к файлу, в котором dBase будет хранить ваши данные.

mode

Целое число, которое соответствует аналогичному в системном вызове open() (Обычно 0 означает режим для чтения, 1 - режим для записи, и 2 - режим для чтения и записи).

Замечание:

Вы не можете открыть файл в dBase в режиме только для записи, потому что функция будет не в состоянии читать информацию из заголовка БД, и, таким образом, вы не можете использовать 1 в качестве значения mode.

С версии dbase 7.0.0 вы можете использовать DBASE_RDONLY и DBASE_RDWR, для задания режима открытия базы в mode.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Открытие dBase файл базы данных

<?php

// открытие в режиме чтения
$db = dbase_open('/tmp/test.dbf', 0);

if ($db) {
  // чтение некотрых данных

  dbase_close($db);
}

?>

Возвращаемые значения

Возвращает идентификатор ссылки на базу данных, если база данных успешно открыта, или FALSE если произошла ошибка.

Смотрите также

  • dbase_create() - Создает базу данных
  • dbase_close() - Закрывает базу данных


Фиксирует удаление из базы данных

  • « dbase_open
  • dbase_replace_record »
  • PHP Manual
  • dBase
  • Фиксирует удаление из базы данных

dbase_pack

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_pack — Фиксирует удаление из базы данных

Описание

bool dbase_pack ( resource $dbase_identifier )

Фиксирует удаление из базы данных, окончательно удаляет записи, которые были помечены на удаление с помощью dbase_delete_record(). Обратите внимание, что после выполнения этой операции файл будет усечен (в отличии от команды dBASE III's PACK)

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Очистка базы данных dBase

<?php

// открываем в режиме чтения и записи
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  $record_numbers = dbase_numrecords($db);
  for ($i = 1; $i <= $record_numbers; $i++) {
      dbase_delete_record($db, $i);
  }
  // стираем базу
  dbase_pack($db);
}

?>

Смотрите также

  • dbase_delete_record() - Удаление записей из базы данных


Заменяет запись в базе данных

  • « dbase_pack
  • filePro »
  • PHP Manual
  • dBase
  • Заменяет запись в базе данных

dbase_replace_record

(PHP 5 < 5.3.0, dbase 5, dbase 7)

dbase_replace_record — Заменяет запись в базе данных

Описание

bool dbase_replace_record ( resource $dbase_identifier , array $record , int $record_number )

Заменяет данную запись в базе данных на заданные значения.

Список параметров

dbase_identifier

Идентификатор базы данных, возвращаемый функцией dbase_open() или dbase_create().

record

Индексированный массив данных. Количество элементов должно быть равно количеству полей в базе данных, в противном случае вызов dbase_replace_record() не удастся.

Замечание:

Если вы используете в качестве параметра запись, которую вернула dbase_get_record(), не забудьте сбросить ключ с именем deleted.

record_number

Целое число, которое может быть в диапазоне от 1 до числа записей в базе данных (которое вернула функция dbase_numrecords()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
dbase 7.0.0 | Параметр dbase_identifier теперь имеет тип resource а не int.

Примеры

Пример #1 Обновление записи в базе данных

<?php

// откроем в режиме чтения и записи
$db = dbase_open('/tmp/test.dbf', 2);

if ($db) {
  // получим старую запись
  $row = dbase_get_record_with_names($db, 1);

  // сбросим пометку 'deleted'
  unset($row['deleted']);

  // Установим в поле даты текущую дату
  $row['date'] = date('Ymd');

  // Преобразуем $row в массив
  $row = array_values($row);

  // Заменим запись
  dbase_replace_record($db, $row, 1);
  dbase_close($db);
}

?>

Примечания

Замечание:

При использовании dbase_get_record() и dbase_get_record_with_names(), поля типа Boolean возвращаются как целочисленное значение (0 либо 1). Если вы собираетесь записывать эти значения обратно, необходимо помнить, что результат станет равным 0.

Смотрите также

  • dbase_add_record() - Добавляет запись в базу данных
  • dbase_delete_record() - Удаление записей из базы данных


filePro

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции filePro
    • filepro_fieldcount — Получить число полей в базе данных filePro
    • filepro_fieldname — Получить имя поля
    • filepro_fieldtype — Получить тип поля
    • filepro_fieldwidth — Возвращает ширину поля
    • filepro_retrieve — Извлечение данных из базы filePro
    • filepro_rowcount — Полчение количества строк в базе данных filePro
    • filepro — Прочитать и проверить файл соотношений


Введение

Эти функции предоставляют доступ к содержимому базы данных filePro в режиме только для чтения.

filePro - зарегистрированная торговая марка fP Technologies, Inc. Больше информации о filePro доступно по ссылке » http://www.fptech.com/.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.2.0.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/filepro.


  • « Типы ресурсов
  • Функции filePro »
  • PHP Manual
  • filePro
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции filePro

Содержание

  • filepro_fieldcount — Получить число полей в базе данных filePro
  • filepro_fieldname — Получить имя поля
  • filepro_fieldtype — Получить тип поля
  • filepro_fieldwidth — Возвращает ширину поля
  • filepro_retrieve — Извлечение данных из базы filePro
  • filepro_rowcount — Полчение количества строк в базе данных filePro
  • filepro — Прочитать и проверить файл соотношений


Получить число полей в базе данных filePro

  • « Функции filePro
  • filepro_fieldname »
  • PHP Manual
  • Функции filePro
  • Получить число полей в базе данных filePro

filepro_fieldcount

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_fieldcount — Получить число полей в базе данных filePro

Описание

int filepro_fieldcount ( void )

Возвращает число полей (столбцов) в открытой базе данных filePro.

Возвращаемые значения

Возвращает число полей (столбцов) в открытой базе данных filePro, или FALSE в случае ошибки.

Смотрите также

  • filepro() - Прочитать и проверить файл соотношений


Получить имя поля

  • « filepro_fieldcount
  • filepro_fieldtype »
  • PHP Manual
  • Функции filePro
  • Получить имя поля

filepro_fieldname

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_fieldname — Получить имя поля

Описание

string filepro_fieldname ( int $field_number )

Возвращает имя поля в соотвествии с field_number.

Список параметров

field_number

Номер поля.

Возвращаемые значения

Возвращает строку с именем поля, либо FALSE в случае ошибки.


Получить тип поля

  • « filepro_fieldname
  • filepro_fieldwidth »
  • PHP Manual
  • Функции filePro
  • Получить тип поля

filepro_fieldtype

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_fieldtype — Получить тип поля

Описание

string filepro_fieldtype ( int $field_number )

Возвращает тип поля в соотвествии с field_number.

Список параметров

field_number

Номер поля.

Возвращаемые значения

Возвращает строку с типом поля, либо FALSE в случае ошибки.


Возвращает ширину поля

  • « filepro_fieldtype
  • filepro_retrieve »
  • PHP Manual
  • Функции filePro
  • Возвращает ширину поля

filepro_fieldwidth

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_fieldwidth — Возвращает ширину поля

Описание

int filepro_fieldwidth ( int $field_number )

Возвращает ширину поля в соотвествии с field_number.

Список параметров

field_number

Номер поля.

Возвращаемые значения

Возвращает целое число с шириной поля, либо FALSE в случае ошибки.


Извлечение данных из базы filePro

  • « filepro_fieldwidth
  • filepro_rowcount »
  • PHP Manual
  • Функции filePro
  • Извлечение данных из базы filePro

filepro_retrieve

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_retrieve — Извлечение данных из базы filePro

Описание

string filepro_retrieve ( int $row_number , int $field_number )

Возвращает данные из указанной позиции в базе данных..

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Список параметров

row_number

Номер строки. Должно быть в диапазоне от нуля до общего количества строк в базе минус 1. (0..filepro_rowcount() - 1)

field_number

Номер поля. (0..filepro_fieldcount() - 1)

Возвращаемые значения

Возвращает запрашиваемые данные, либо FALSE в случае ошибки.


Полчение количества строк в базе данных filePro

  • « filepro_retrieve
  • filepro »
  • PHP Manual
  • Функции filePro
  • Полчение количества строк в базе данных filePro

filepro_rowcount

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro_rowcount — Полчение количества строк в базе данных filePro

Описание

int filepro_rowcount ( void )

Возвращает количество строк в открытой базе данных filePro.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Возвращаемые значения

Возвращает количество строк в открытой базе данных filePro, или FALSE в случае ошибки.

Смотрите также

  • filepro() - Прочитать и проверить файл соотношений


Прочитать и проверить файл соотношений

  • « filepro_rowcount
  • Firebird/InterBase »
  • PHP Manual
  • Функции filePro
  • Прочитать и проверить файл соотношений

filepro

(PHP 4, PHP 5 <= 5.1.6, PHP 7)

filepro — Прочитать и проверить файл соотношений

Описание

bool filepro ( string $directory )

Прочитать и проверить файл соотношений, хранящий информацию и количество полей.

Блокировка не выставляется, так что следует избегать внесения изменений в базу filePro, когда она открыта в PHP скрипте.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Список параметров

directory

Директория базы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Firebird/InterBase

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Firebird/InterBase Функции
    • ibase_add_user — Add a user to a security database
    • ibase_affected_rows — Return the number of rows that were affected by the previous query
    • ibase_backup — Initiates a backup task in the service manager and returns immediately
    • ibase_blob_add — Add data into a newly created blob
    • ibase_blob_cancel — Cancel creating blob
    • ibase_blob_close — Close blob
    • ibase_blob_create — Create a new blob for adding data
    • ibase_blob_echo — Output blob contents to browser
    • ibase_blob_get — Get len bytes data from open blob
    • ibase_blob_import — Create blob, copy file in it, and close it
    • ibase_blob_info — Return blob length and other useful info
    • ibase_blob_open — Open blob for retrieving data parts
    • ibase_close — Close a connection to an InterBase database
    • ibase_commit_ret — Commit a transaction without closing it
    • ibase_commit — Commit a transaction
    • ibase_connect — Open a connection to a database
    • ibase_db_info — Request statistics about a database
    • ibase_delete_user — Delete a user from a security database
    • ibase_drop_db — Drops a database
    • ibase_errcode — Return an error code
    • ibase_errmsg — Return error messages
    • ibase_execute — Execute a previously prepared query
    • ibase_fetch_assoc — Fetch a result row from a query as an associative array
    • ibase_fetch_object — Get an object from a InterBase database
    • ibase_fetch_row — Fetch a row from an InterBase database
    • ibase_field_info — Get information about a field
    • ibase_free_event_handler — Cancels a registered event handler
    • ibase_free_query — Free memory allocated by a prepared query
    • ibase_free_result — Free a result set
    • ibase_gen_id — Increments the named generator and returns its new value
    • ibase_maintain_db — Execute a maintenance command on the database server
    • ibase_modify_user — Modify a user to a security database
    • ibase_name_result — Assigns a name to a result set
    • ibase_num_fields — Get the number of fields in a result set
    • ibase_num_params — Return the number of parameters in a prepared query
    • ibase_param_info — Return information about a parameter in a prepared query
    • ibase_pconnect — Open a persistent connection to an InterBase database
    • ibase_prepare — Prepare a query for later binding of parameter placeholders and execution
    • ibase_query — Execute a query on an InterBase database
    • ibase_restore — Initiates a restore task in the service manager and returns immediately
    • ibase_rollback_ret — Roll back a transaction without closing it
    • ibase_rollback — Roll back a transaction
    • ibase_server_info — Request information about a database server
    • ibase_service_attach — Connect to the service manager
    • ibase_service_detach — Disconnect from the service manager
    • ibase_set_event_handler — Register a callback function to be called when events are posted
    • ibase_trans — Begin a transaction
    • ibase_wait_event — Wait for an event to be posted by the database


Введение

Firebird is a relational database offering many ISO SQL-2003 features that runs on Linux, Windows, and a variety of Unix platforms. Firebird offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names since 1981.

InterBase is the name of the closed-source variant of this RDBMS that was developed by Embarcadero/Inprise. More information about InterBase is available at » http://www.embarcadero.com/products/interbase.

Firebird is a commercially independent project (fundation) of C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Embarcadero) under the InterBase Public License v.1.0 on 25 July, 2000. More information about Firebird is available at » http://www.firebirdsql.org/.

Замечание:

This extension supports InterBase versions 6 and up and Firebird version 2.0 and up.

This database uses a single quote (') character for escaping add to your php.ini the following directive(Deprecated in PHP 5.3.0. Removed in PHP 5.4.0):

magic_quotes_sybase = On


Установка

To enable Firebird/InterBase support configure PHP --with-interbase[=DIR] , where DIR is the Firebird/InterBase base install directory, which defaults to /usr.

Замечание: Note to Win32/Win64 Users

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: fbclient.dll,gds32.dll

If you installed the Firebird/InterBase database server on the same machine PHP is running on, you will have this DLL already and fbclient.dll,gds32.dll (gds32.dll is generated from the installer for legacy applications) will already be in the PATH.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

InterBase configuration options
Имя | По умолчанию | Меняемо | Список изменений
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.default_db | NULL | PHP_INI_SYSTEM | Available since PHP 5.0.0.
ibase.default_user | NULL | PHP_INI_ALL |
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL | Available since PHP 5.0.0.
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ibase.allow_persistent boolean

Whether to allow persistent connections to Firebird/InterBase.

ibase.max_persistent integer

The maximum number of persistent Firebird/InterBase connections per process. New connections created with ibase_pconnect() will be non-persistent if this number would be exceeded.

ibase.max_links integer

The maximum number of Firebird/InterBase connections per process, including persistent connections.

ibase.default_db string

The default database to connect to when ibase_[p]connect() is called without specifying a database name. If this value is set and SQL safe mode is enabled, no other connections than to this database will be allowed.

ibase.default_user string

The user name to use when connecting to a database if no user name is specified.

ibase.default_password string

The password to use when connecting to a database if no password is specified.

ibase.default_charset string

The character set to use when connecting to a database if no character set is specified.

ibase.timestampformat string

ibase.dateformat string

ibase.timeformat string

These directives are used to set the date and time formats that are used when returning dates and times from a result set, or when binding arguments to date and time parameters.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Следующие константы можно задавать в функции 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_BKP_METADATA_ONLY
IBASE_BKP_NO_GARBAGE_COLLECT
IBASE_BKP_OLD_DESCRIPTIONS
IBASE_BKP_NON_TRANSPORTABLE
IBASE_BKP_CONVERT
Опция для ibase_backup()
IBASE_RES_DEACTIVATE_IDX
IBASE_RES_NO_SHADOW
IBASE_RES_NO_VALIDITY
IBASE_RES_ONE_AT_A_TIME
IBASE_RES_REPLACE
IBASE_RES_CREATE
IBASE_RES_USE_ALL_SPACE
Опция для 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_SVC_IMPLEMENTATION
IBASE_SVC_GET_ENV
IBASE_SVC_GET_ENV_LOCK
IBASE_SVC_GET_ENV_MSG
IBASE_SVC_USER_DBPATH
IBASE_SVC_SVR_DB_INFO
IBASE_SVC_GET_USERS
Опция для ibase_server_info()


Firebird/InterBase Функции

Содержание

  • ibase_add_user — Add a user to a security database
  • ibase_affected_rows — Return the number of rows that were affected by the previous query
  • ibase_backup — Initiates a backup task in the service manager and returns immediately
  • ibase_blob_add — Add data into a newly created blob
  • ibase_blob_cancel — Cancel creating blob
  • ibase_blob_close — Close blob
  • ibase_blob_create — Create a new blob for adding data
  • ibase_blob_echo — Output blob contents to browser
  • ibase_blob_get — Get len bytes data from open blob
  • ibase_blob_import — Create blob, copy file in it, and close it
  • ibase_blob_info — Return blob length and other useful info
  • ibase_blob_open — Open blob for retrieving data parts
  • ibase_close — Close a connection to an InterBase database
  • ibase_commit_ret — Commit a transaction without closing it
  • ibase_commit — Commit a transaction
  • ibase_connect — Open a connection to a database
  • ibase_db_info — Request statistics about a database
  • ibase_delete_user — Delete a user from a security database
  • ibase_drop_db — Drops a database
  • ibase_errcode — Return an error code
  • ibase_errmsg — Return error messages
  • ibase_execute — Execute a previously prepared query
  • ibase_fetch_assoc — Fetch a result row from a query as an associative array
  • ibase_fetch_object — Get an object from a InterBase database
  • ibase_fetch_row — Fetch a row from an InterBase database
  • ibase_field_info — Get information about a field
  • ibase_free_event_handler — Cancels a registered event handler
  • ibase_free_query — Free memory allocated by a prepared query
  • ibase_free_result — Free a result set
  • ibase_gen_id — Increments the named generator and returns its new value
  • ibase_maintain_db — Execute a maintenance command on the database server
  • ibase_modify_user — Modify a user to a security database
  • ibase_name_result — Assigns a name to a result set
  • ibase_num_fields — Get the number of fields in a result set
  • ibase_num_params — Return the number of parameters in a prepared query
  • ibase_param_info — Return information about a parameter in a prepared query
  • ibase_pconnect — Open a persistent connection to an InterBase database
  • ibase_prepare — Prepare a query for later binding of parameter placeholders and execution
  • ibase_query — Execute a query on an InterBase database
  • ibase_restore — Initiates a restore task in the service manager and returns immediately
  • ibase_rollback_ret — Roll back a transaction without closing it
  • ibase_rollback — Roll back a transaction
  • ibase_server_info — Request information about a database server
  • ibase_service_attach — Connect to the service manager
  • ibase_service_detach — Disconnect from the service manager
  • ibase_set_event_handler — Register a callback function to be called when events are posted
  • ibase_trans — Begin a transaction
  • ibase_wait_event — Wait for an event to be posted by the database


Add a user to a security database

  • « Firebird/InterBase Функции
  • ibase_affected_rows »
  • PHP Manual
  • Firebird/InterBase Функции
  • Add a user to a security database

ibase_add_user

(PHP 5, PHP 7)

ibase_add_user — Add a user to a security database

Описание

bool ibase_add_user ( resource $service_handle , string $user_name , string $password [, string $first_name [, string $middle_name [, string $last_name ]]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_modify_user() - Modify a user to a security database
  • ibase_delete_user() - Delete a user from a security database


Return the number of rows that were affected by the previous query

  • « ibase_add_user
  • ibase_backup »
  • PHP Manual
  • Firebird/InterBase Функции
  • Return the number of rows that were affected by the previous query

ibase_affected_rows

(PHP 5, PHP 7)

ibase_affected_rows — Return the number of rows that were affected by the previous query

Описание

int ibase_affected_rows ([ resource $link_identifier ] )

This function returns the number of rows that were affected by the previous query (INSERT, UPDATE or DELETE) that was executed from within the specified transaction context.

Список параметров

link_identifier

A transaction context. If link_identifier is a connection resource, its default transaction is used.

Возвращаемые значения

Returns the number of rows as an integer.

Смотрите также

  • ibase_query() - Execute a query on an InterBase database
  • ibase_execute() - Execute a previously prepared query


Initiates a backup task in the service manager and returns immediately

  • « ibase_affected_rows
  • ibase_blob_add »
  • PHP Manual
  • Firebird/InterBase Функции
  • Initiates a backup task in the service manager and returns immediately

ibase_backup

(PHP 5, PHP 7)

ibase_backup — Initiates a backup task in the service manager and returns immediately

Описание

mixed ibase_backup ( resource $service_handle , string $source_db , string $dest_file [, int $options = 0 [, bool $verbose = false ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Add data into a newly created blob

  • « ibase_backup
  • ibase_blob_cancel »
  • PHP Manual
  • Firebird/InterBase Функции
  • Add data into a newly created blob

ibase_blob_add

(PHP 5, PHP 7)

ibase_blob_add — Add data into a newly created blob

Описание

void ibase_blob_add ( resource $blob_handle , string $data )

ibase_blob_add() adds data into a blob created with ibase_blob_create().

Список параметров

blob_handle

A blob handle opened with ibase_blob_create().

data

The data to be added.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_close() - Close blob
  • ibase_blob_create() - Create a new blob for adding data
  • ibase_blob_import() - Create blob, copy file in it, and close it


Cancel creating blob

  • « ibase_blob_add
  • ibase_blob_close »
  • PHP Manual
  • Firebird/InterBase Функции
  • Cancel creating blob

ibase_blob_cancel

(PHP 5, PHP 7)

ibase_blob_cancel — Cancel creating blob

Описание

bool ibase_blob_cancel ( resource $blob_handle )

This function will discard a BLOB if it has not yet been closed by ibase_blob_close().

Список параметров

blob_handle

A BLOB handle opened with ibase_blob_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_blob_close() - Close blob
  • ibase_blob_create() - Create a new blob for adding data
  • ibase_blob_import() - Create blob, copy file in it, and close it


Close blob

  • « ibase_blob_cancel
  • ibase_blob_create »
  • PHP Manual
  • Firebird/InterBase Функции
  • Close blob

ibase_blob_close

(PHP 5, PHP 7)

ibase_blob_close — Close blob

Описание

mixed ibase_blob_close ( resource $blob_handle )

This function closes a BLOB that has either been opened for reading by ibase_blob_open() or has been opened for writing by ibase_blob_create().

Список параметров

blob_handle

A BLOB handle opened with ibase_blob_create() or ibase_blob_open().

Возвращаемые значения

If the BLOB was being read, this function returns TRUE on success, if the BLOB was being written to, this function returns a string containing the BLOB id that has been assigned to it by the database. On failure, this function returns FALSE.

Смотрите также

  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_open() - Open blob for retrieving data parts


Create a new blob for adding data

  • « ibase_blob_close
  • ibase_blob_echo »
  • PHP Manual
  • Firebird/InterBase Функции
  • Create a new blob for adding data

ibase_blob_create

(PHP 5, PHP 7)

ibase_blob_create — Create a new blob for adding data

Описание

resource ibase_blob_create ([ resource $link_identifier = NULL ] )

ibase_blob_create() creates a new BLOB for filling with data.

Список параметров

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

Возвращаемые значения

Returns a BLOB handle for later use with ibase_blob_add() или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_blob_add() - Add data into a newly created blob
  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_close() - Close blob
  • ibase_blob_import() - Create blob, copy file in it, and close it


Output blob contents to browser

  • « ibase_blob_create
  • ibase_blob_get »
  • PHP Manual
  • Firebird/InterBase Функции
  • Output blob contents to browser

ibase_blob_echo

(PHP 5, PHP 7)

ibase_blob_echo — Output blob contents to browser

Описание

bool ibase_blob_echo ( string $blob_id )
bool ibase_blob_echo ( resource $link_identifier , string $blob_id )

This function opens a BLOB for reading and sends its contents directly to standard output (the browser, in most cases).

Список параметров

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

blob_id

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_blob_open() - Open blob for retrieving data parts
  • ibase_blob_close() - Close blob
  • ibase_blob_get() - Get len bytes data from open blob


Get len bytes data from open blob

  • « ibase_blob_echo
  • ibase_blob_import »
  • PHP Manual
  • Firebird/InterBase Функции
  • Get len bytes data from open blob

ibase_blob_get

(PHP 5, PHP 7)

ibase_blob_get — Get len bytes data from open blob

Описание

string ibase_blob_get ( resource $blob_handle , int $len )

This function returns at most len bytes from a BLOB that has been opened for reading by ibase_blob_open().

Замечание:

It is not possible to read from a BLOB that has been opened for writing by ibase_blob_create().

Список параметров

blob_handle

A BLOB handle opened with ibase_blob_open().

len

Size of returned data.

Возвращаемые значения

Returns at most len bytes from the BLOB, or FALSE on failure.

Примеры

Пример #1 ibase_blob_get() example

<?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]);
?>
Whilst this example doesn't do much more than a 'ibase_blob_echo($data->BLOB_VALUE)' would do, it does show you how to get information into a $variable to manipulate as you please.

Смотрите также

  • ibase_blob_open() - Open blob for retrieving data parts
  • ibase_blob_close() - Close blob
  • ibase_blob_echo() - Output blob contents to browser


Create blob, copy file in it, and close it

  • « ibase_blob_get
  • ibase_blob_info »
  • PHP Manual
  • Firebird/InterBase Функции
  • Create blob, copy file in it, and close it

ibase_blob_import

(PHP 5, PHP 7)

ibase_blob_import — Create blob, copy file in it, and close it

Описание

string ibase_blob_import ( resource $link_identifier , resource $file_handle )
string ibase_blob_import ( resource $file_handle )

This function creates a BLOB, reads an entire file into it, closes it and returns the assigned BLOB id.

Список параметров

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

file_handle

The file handle is a handle returned by fopen().

Возвращаемые значения

Returns the BLOB id on success, or FALSE on error.

Примеры

Пример #1 ibase_blob_import() example

<?php
$dbh = ibase_connect($host, $username, $password);
$filename = '/tmp/bar';

$fd = fopen($filename, 'r');
if ($fd) {

    $blob = ibase_blob_import($dbh, $fd);
    fclose($fd);

    if (!is_string($blob)) {
        // import failed
    } else {
        $query = "INSERT INTO foo (name, data) VALUES ('$filename', ?)";
        $prepared = ibase_prepare($dbh, $query);
        if (!ibase_execute($prepared, $blob)) {
            // record insertion failed
        }
    }
} else {
    // unable to open the data file
}
?>

Смотрите также

  • ibase_blob_add() - Add data into a newly created blob
  • ibase_blob_cancel() - Cancel creating blob
  • ibase_blob_close() - Close blob
  • ibase_blob_create() - Create a new blob for adding data


Return blob length and other useful info

  • « ibase_blob_import
  • ibase_blob_open »
  • PHP Manual
  • Firebird/InterBase Функции
  • Return blob length and other useful info

ibase_blob_info

(PHP 5, PHP 7)

ibase_blob_info — Return blob length and other useful info

Описание

array ibase_blob_info ( resource $link_identifier , string $blob_id )
array ibase_blob_info ( string $blob_id )

Returns the BLOB length and other useful information.

Список параметров

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

blob_id

A BLOB id.

Возвращаемые значения

Returns an array containing information about a BLOB. The information returned consists of the length of the BLOB, the number of segments it contains, the size of the largest segment, and whether it is a stream BLOB or a segmented BLOB.


Open blob for retrieving data parts

  • « ibase_blob_info
  • ibase_close »
  • PHP Manual
  • Firebird/InterBase Функции
  • Open blob for retrieving data parts

ibase_blob_open

(PHP 5, PHP 7)

ibase_blob_open — Open blob for retrieving data parts

Описание

resource ibase_blob_open ( resource $link_identifier , string $blob_id )
resource ibase_blob_open ( string $blob_id )

Opens an existing BLOB for reading.

Список параметров

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

blob_id

A BLOB id.

Возвращаемые значения

Returns a BLOB handle for later use with ibase_blob_get() или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_blob_close() - Close blob
  • ibase_blob_echo() - Output blob contents to browser
  • ibase_blob_get() - Get len bytes data from open blob


Close a connection to an InterBase database

  • « ibase_blob_open
  • ibase_commit_ret »
  • PHP Manual
  • Firebird/InterBase Функции
  • Close a connection to an InterBase database

ibase_close

(PHP 5, PHP 7)

ibase_close — Close a connection to an InterBase database

Описание

bool ibase_close ([ resource $connection_id = NULL ] )

Closes the link to an InterBase database that's associated with a connection id returned from ibase_connect(). Default transaction on link is committed, other transactions are rolled back.

Список параметров

connection_id

An InterBase link identifier returned from ibase_connect(). If omitted, the last opened link is assumed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_connect() - Open a connection to a database
  • ibase_pconnect() - Open a persistent connection to an InterBase database


Commit a transaction without closing it

  • « ibase_close
  • ibase_commit »
  • PHP Manual
  • Firebird/InterBase Функции
  • Commit a transaction without closing it

ibase_commit_ret

(PHP 5, PHP 7)

ibase_commit_ret — Commit a transaction without closing it

Описание

bool ibase_commit_ret ([ resource $link_or_trans_identifier = NULL ] )

Commits a transaction without closing it.

Список параметров

link_or_trans_identifier

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed. The transaction context will be retained, so statements executed from within this transaction will not be invalidated.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Commit a transaction

  • « ibase_commit_ret
  • ibase_connect »
  • PHP Manual
  • Firebird/InterBase Функции
  • Commit a transaction

ibase_commit

(PHP 5, PHP 7)

ibase_commit — Commit a transaction

Описание

bool ibase_commit ([ resource $link_or_trans_identifier = NULL ] )

Commits a transaction.

Список параметров

link_or_trans_identifier

If called without an argument, this function commits the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be committed. If the argument is a transaction identifier, the corresponding transaction will be committed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Open a connection to a database

  • « ibase_commit
  • ibase_db_info »
  • PHP Manual
  • Firebird/InterBase Функции
  • Open a connection to a database

ibase_connect

(PHP 5, PHP 7)

ibase_connect — Open a connection to a database

Описание

resource ibase_connect ([ string $database [, string $username [, string $password [, string $charset [, int $buffers [, int $dialect [, string $role [, int $sync ]]]]]]]] )

Establishes a connection to an Firebird/InterBase server.

In case a second call is made to ibase_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned. The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling ibase_close().

Список параметров

database

The database argument has to be a valid path to database file on the server it resides on. If the server is not local, it must be prefixed with either 'hostname:' (TCP/IP), 'hostname/port:' (TCP/IP with interbase server on custom TCP port), '//hostname/' (NetBEUI), depending on the connection protocol used.

username

The user name. Can be set with the ibase.default_user php.ini directive.

password

The password for username. Can be set with the ibase.default_password php.ini directive.

charset

charset is the default character set for a database.

buffers

buffers is the number of database buffers to allocate for the server-side cache. If 0 or omitted, server chooses its own default.

dialect

dialect selects the default SQL dialect for any statement executed within a connection, and it defaults to the highest one supported by client libraries.

role

Functional only with InterBase 5 and up.

sync

Возвращаемые значения

Returns an Firebird/InterBase link identifier on success, or FALSE on error.

Ошибки

If you get some error like "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (this occurs when you try use some character with accents) when using this and after ibase_query() you must set the character set (i.e. ISO8859_1 or your current character set).

Примеры

Пример #1 ibase_connect() example

<?php
$host = 'localhost:/path/to/your.gdb';

$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';
$sth = ibase_query($dbh, $stmt);
while ($row = ibase_fetch_object($sth)) {
    echo $row->email, "\n";
}
ibase_free_result($sth);
ibase_close($dbh);
?>

Смотрите также

  • ibase_pconnect() - Open a persistent connection to an InterBase database
  • ibase_close() - Close a connection to an InterBase database


Request statistics about a database

  • « ibase_connect
  • ibase_delete_user »
  • PHP Manual
  • Firebird/InterBase Функции
  • Request statistics about a database

ibase_db_info

(PHP 5, PHP 7)

ibase_db_info — Request statistics about a database

Описание

string ibase_db_info ( resource $service_handle , string $db , int $action [, int $argument = 0 ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Delete a user from a security database

  • « ibase_db_info
  • ibase_drop_db »
  • PHP Manual
  • Firebird/InterBase Функции
  • Delete a user from a security database

ibase_delete_user

(PHP 5, PHP 7)

ibase_delete_user — Delete a user from a security database

Описание

bool ibase_delete_user ( resource $service_handle , string $user_name )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_add_user() - Add a user to a security database
  • ibase_modify_user() - Modify a user to a security database


Drops a database

  • « ibase_delete_user
  • ibase_errcode »
  • PHP Manual
  • Firebird/InterBase Функции
  • Drops a database

ibase_drop_db

(PHP 5, PHP 7)

ibase_drop_db — Drops a database

Описание

bool ibase_drop_db ([ resource $connection = NULL ] )

This functions drops a database that was opened by either ibase_connect() or ibase_pconnect(). The database is closed and deleted from the server.

Список параметров

connection

An InterBase link identifier. If omitted, the last opened link is assumed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_connect() - Open a connection to a database
  • ibase_pconnect() - Open a persistent connection to an InterBase database


Return an error code

  • « ibase_drop_db
  • ibase_errmsg »
  • PHP Manual
  • Firebird/InterBase Функции
  • Return an error code

ibase_errcode

(PHP 5, PHP 7)

ibase_errcode — Return an error code

Описание

int ibase_errcode ( void )

Returns the error code that resulted from the most recent InterBase function call.

Возвращаемые значения

Returns the error code as an integer, or FALSE if no error occurred.

Смотрите также

  • ibase_errmsg() - Return error messages


Return error messages

  • « ibase_errcode
  • ibase_execute »
  • PHP Manual
  • Firebird/InterBase Функции
  • Return error messages

ibase_errmsg

(PHP 5, PHP 7)

ibase_errmsg — Return error messages

Описание

string ibase_errmsg ( void )

Returns the error message that resulted from the most recent InterBase function call.

Возвращаемые значения

Returns the error message as a string, or FALSE if no error occurred.

Смотрите также

  • ibase_errcode() - Return an error code


Execute a previously prepared query

  • « ibase_errmsg
  • ibase_fetch_assoc »
  • PHP Manual
  • Firebird/InterBase Функции
  • Execute a previously prepared query

ibase_execute

(PHP 5, PHP 7)

ibase_execute — Execute a previously prepared query

Описание

resource ibase_execute ( resource $query [, mixed $bind_arg [, mixed $... ]] )

Execute a query prepared by ibase_prepare().

This is a lot more effective than using ibase_query() if you are repeating a same kind of query several times with only some parameters changing.

Список параметров

query

An InterBase query prepared by ibase_prepare().

bind_arg

...

Возвращаемые значения

If the query raises an error, returns FALSE. If it is successful and there is a (possibly empty) result set (such as with a SELECT query), returns a result identifier. If the query was successful and there were no results, returns TRUE.

Замечание:

This function returns the number of rows affected by the query (if > 0 and applicable to the statement type). A query that succeeded, but did not affect any rows (e.g. an UPDATE of a non-existent record) will return TRUE.

Примеры

Пример #1 ibase_execute() example

<?php

$dbh = ibase_connect($host, $username, $password);

$updates = array(
    1 => 'Eric',
    5 => 'Filip',
    7 => 'Larry'
);

$query = ibase_prepare($dbh, "UPDATE FOO SET BAR = ? WHERE BAZ = ?");

foreach ($updates as $baz => $bar) {
    ibase_execute($query, $bar, $baz);
}

?>

Смотрите также

  • ibase_query() - Execute a query on an InterBase database


Fetch a result row from a query as an associative array

  • « ibase_execute
  • ibase_fetch_object »
  • PHP Manual
  • Firebird/InterBase Функции
  • Fetch a result row from a query as an associative array

ibase_fetch_assoc

(PHP 5, PHP 7)

ibase_fetch_assoc — Fetch a result row from a query as an associative array

Описание

array ibase_fetch_assoc ( resource $result [, int $fetch_flag = 0 ] )

Fetch a result row from a query as an associative array.

ibase_fetch_assoc() fetches one row of data from the result. If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using ibase_fetch_row() or use alias names in your query.

Список параметров

result

The result handle.

fetch_flag

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

Возвращаемые значения

Returns an associative array that corresponds to the fetched row. Subsequent calls will return the next row in the result set, or FALSE if there are no more rows.

Смотрите также

  • ibase_fetch_row() - Fetch a row from an InterBase database
  • ibase_fetch_object() - Get an object from a InterBase database


Get an object from a InterBase database

  • « ibase_fetch_assoc
  • ibase_fetch_row »
  • PHP Manual
  • Firebird/InterBase Функции
  • Get an object from a InterBase database

ibase_fetch_object

(PHP 5, PHP 7)

ibase_fetch_object — Get an object from a InterBase database

Описание

object ibase_fetch_object ( resource $result_id [, int $fetch_flag = 0 ] )

Fetches a row as a pseudo-object from a given result identifier.

Subsequent calls to ibase_fetch_object() return the next row in the result set.

Список параметров

result_id

An InterBase result identifier obtained either by ibase_query() or ibase_execute().

fetch_flag

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

Возвращаемые значения

Returns an object with the next row information, or FALSE if there are no more rows.

Примеры

Пример #1 ibase_fetch_object() example

<?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() - Fetch a row from an InterBase database
  • ibase_fetch_assoc() - Fetch a result row from a query as an associative array


Fetch a row from an InterBase database

  • « ibase_fetch_object
  • ibase_field_info »
  • PHP Manual
  • Firebird/InterBase Функции
  • Fetch a row from an InterBase database

ibase_fetch_row

(PHP 5, PHP 7)

ibase_fetch_row — Fetch a row from an InterBase database

Описание

array ibase_fetch_row ( resource $result_identifier [, int $fetch_flag = 0 ] )

ibase_fetch_row() fetches one row of data from the given result set.

Subsequent calls to ibase_fetch_row() return the next row in the result set, or FALSE if there are no more rows.

Список параметров

result_identifier

An InterBase result identifier.

fetch_flag

fetch_flag is a combination of the constants IBASE_TEXT and IBASE_UNIXTIME ORed together. Passing IBASE_TEXT will cause this function to return BLOB contents instead of BLOB ids. Passing IBASE_UNIXTIME will cause this function to return date/time values as Unix timestamps instead of as formatted strings.

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows. Each result column is stored in an array offset, starting at offset 0.

Смотрите также

  • ibase_fetch_assoc() - Fetch a result row from a query as an associative array
  • ibase_fetch_object() - Get an object from a InterBase database


Get information about a field

  • « ibase_fetch_row
  • ibase_free_event_handler »
  • PHP Manual
  • Firebird/InterBase Функции
  • Get information about a field

ibase_field_info

(PHP 5, PHP 7)

ibase_field_info — Get information about a field

Описание

array ibase_field_info ( resource $result , int $field_number )

Returns an array with information about a field after a select query has been run.

Список параметров

result

An InterBase result identifier.

field_number

Field offset.

Возвращаемые значения

Returns an array with the following keys: name, alias, relation, length and type.

Примеры

Пример #1 ibase_field_info() example

<?php
$rs = ibase_query("SELECT * FROM tablename");
$coln = ibase_num_fields($rs);
for ($i = 0; $i < $coln; $i++) {
    $col_info = ibase_field_info($rs, $i);
    echo "name: ". $col_info['name']. "\n";
    echo "alias: ". $col_info['alias']. "\n";
    echo "relation: ". $col_info['relation']. "\n";
    echo "length: ". $col_info['length']. "\n";
    echo "type: ". $col_info['type']. "\n";
}
?>

Смотрите также

  • ibase_num_fields() - Get the number of fields in a result set


Cancels a registered event handler

  • « ibase_field_info
  • ibase_free_query »
  • PHP Manual
  • Firebird/InterBase Функции
  • Cancels a registered event handler

ibase_free_event_handler

(PHP 5, PHP 7)

ibase_free_event_handler — Cancels a registered event handler

Описание

bool ibase_free_event_handler ( resource $event )

This function causes the registered event handler specified by event to be cancelled. The callback function will no longer be called for the events it was registered to handle.

Список параметров

event

An event resource, created by ibase_set_event_handler().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_set_event_handler() - Register a callback function to be called when events are posted


Free memory allocated by a prepared query

  • « ibase_free_event_handler
  • ibase_free_result »
  • PHP Manual
  • Firebird/InterBase Функции
  • Free memory allocated by a prepared query

ibase_free_query

(PHP 5, PHP 7)

ibase_free_query — Free memory allocated by a prepared query

Описание

bool ibase_free_query ( resource $query )

Frees a prepared query.

Список параметров

query

A query prepared with ibase_prepare().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Free a result set

  • « ibase_free_query
  • ibase_gen_id »
  • PHP Manual
  • Firebird/InterBase Функции
  • Free a result set

ibase_free_result

(PHP 5, PHP 7)

ibase_free_result — Free a result set

Описание

bool ibase_free_result ( resource $result_identifier )

Frees a result set.

Список параметров

result_identifier

A result set created by ibase_query() or ibase_execute().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Increments the named generator and returns its new value

  • « ibase_free_result
  • ibase_maintain_db »
  • PHP Manual
  • Firebird/InterBase Функции
  • Increments the named generator and returns its new value

ibase_gen_id

(PHP 5, PHP 7)

ibase_gen_id — Increments the named generator and returns its new value

Описание

mixed ibase_gen_id ( string $generator [, int $increment = 1 [, resource $link_identifier = NULL ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Returns new generator value as integer, or as string if the value is too big.


Execute a maintenance command on the database server

  • « ibase_gen_id
  • ibase_modify_user »
  • PHP Manual
  • Firebird/InterBase Функции
  • Execute a maintenance command on the database server

ibase_maintain_db

(PHP 5, PHP 7)

ibase_maintain_db — Execute a maintenance command on the database server

Описание

bool ibase_maintain_db ( resource $service_handle , string $db , int $action [, int $argument = 0 ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Modify a user to a security database

  • « ibase_maintain_db
  • ibase_name_result »
  • PHP Manual
  • Firebird/InterBase Функции
  • Modify a user to a security database

ibase_modify_user

(PHP 5, PHP 7)

ibase_modify_user — Modify a user to a security database

Описание

bool ibase_modify_user ( resource $service_handle , string $user_name , string $password [, string $first_name [, string $middle_name [, string $last_name ]]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ibase_add_user() - Add a user to a security database
  • ibase_delete_user() - Delete a user from a security database


Assigns a name to a result set

  • « ibase_modify_user
  • ibase_num_fields »
  • PHP Manual
  • Firebird/InterBase Функции
  • Assigns a name to a result set

ibase_name_result

(PHP 5, PHP 7)

ibase_name_result — Assigns a name to a result set

Описание

bool ibase_name_result ( resource $result , string $name )

This function assigns a name to a result set. This name can be used later in UPDATE|DELETE ... WHERE CURRENT OF name statements.

Список параметров

result

An InterBase result set.

name

The name to be assigned.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ibase_name_result() example

<?php
$result = ibase_query("SELECT field1,field2 FROM table FOR UPDATE");
ibase_name_result($result, "my_cursor");

$updateqry = ibase_prepare("UPDATE table SET field2 = ? WHERE CURRENT OF my_cursor");

for ($i = 0; ibase_fetch_row($result); ++$i) {
    ibase_execute($updateqry, $i);
}
?>

Смотрите также

  • ibase_prepare() - Prepare a query for later binding of parameter placeholders and execution
  • ibase_execute() - Execute a previously prepared query


Get the number of fields in a result set

  • « ibase_name_result
  • ibase_num_params »
  • PHP Manual
  • Firebird/InterBase Функции
  • Get the number of fields in a result set

ibase_num_fields

(PHP 5, PHP 7)

ibase_num_fields — Get the number of fields in a result set

Описание

int ibase_num_fields ( resource $result_id )

Get the number of fields in a result set.

Список параметров

result_id

An InterBase result identifier.

Возвращаемые значения

Returns the number of fields as an integer.

Примеры

Пример #1 ibase_num_fields() example

<?php
$rs = ibase_query("SELECT * FROM tablename");
$coln = ibase_num_fields($rs);
for ($i = 0; $i < $coln; $i++) {
    $col_info = ibase_field_info($rs, $i);
    echo "name: " . $col_info['name'] . "\n";
    echo "alias: " . $col_info['alias'] . "\n";
    echo "relation: " . $col_info['relation'] . "\n";
    echo "length: " . $col_info['length'] . "\n";
    echo "type: " . $col_info['type'] . "\n";
}
?>

Смотрите также

  • ibase_field_info() - Get information about a field


Return the number of parameters in a prepared query

  • « ibase_num_fields
  • ibase_param_info »
  • PHP Manual
  • Firebird/InterBase Функции
  • Return the number of parameters in a prepared query

ibase_num_params

(PHP 5, PHP 7)

ibase_num_params — Return the number of parameters in a prepared query

Описание

int ibase_num_params ( resource $query )

This function returns the number of parameters in the prepared query specified by query. This is the number of binding arguments that must be present when calling ibase_execute().

Список параметров

query

The prepared query handle.

Возвращаемые значения

Returns the number of parameters as an integer.

Смотрите также

  • ibase_prepare() - Prepare a query for later binding of parameter placeholders and execution
  • ibase_param_info() - Return information about a parameter in a prepared query


Return information about a parameter in a prepared query

  • « ibase_num_params
  • ibase_pconnect »
  • PHP Manual
  • Firebird/InterBase Функции
  • Return information about a parameter in a prepared query

ibase_param_info

(PHP 5, PHP 7)

ibase_param_info — Return information about a parameter in a prepared query

Описание

array ibase_param_info ( resource $query , int $param_number )

Returns an array with information about a parameter after a query has been prepared.

Список параметров

query

An InterBase prepared query handle.

param_number

Parameter offset.

Возвращаемые значения

Returns an array with the following keys: name, alias, relation, length and type.

Смотрите также

  • ibase_field_info() - Get information about a field
  • ibase_num_params() - Return the number of parameters in a prepared query


Open a persistent connection to an InterBase database

  • « ibase_param_info
  • ibase_prepare »
  • PHP Manual
  • Firebird/InterBase Функции
  • Open a persistent connection to an InterBase database

ibase_pconnect

(PHP 5, PHP 7)

ibase_pconnect — Open a persistent connection to an InterBase database

Описание

resource ibase_pconnect ([ string $database [, string $username [, string $password [, string $charset [, int $buffers [, int $dialect [, string $role [, int $sync ]]]]]]]] )

Opens a persistent connection to an InterBase database.

ibase_pconnect() acts very much like ibase_connect() with two major differences.

First, when connecting, the function will first try to find a (persistent) link that's already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the InterBase server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ibase_close() will not close links established by ibase_pconnect()). This type of link is therefore called 'persistent'.

Список параметров

database

The database argument has to be a valid path to database file on the server it resides on. If the server is not local, it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/' (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection protocol used.

username

The user name. Can be set with the ibase.default_user php.ini directive.

password

The password for username. Can be set with the ibase.default_password php.ini directive.

charset

charset is the default character set for a database.

buffers

buffers is the number of database buffers to allocate for the server-side cache. If 0 or omitted, server chooses its own default.

dialect

dialect selects the default SQL dialect for any statement executed within a connection, and it defaults to the highest one supported by client libraries. Functional only with InterBase 6 and up.

role

Functional only with InterBase 5 and up.

sync

Возвращаемые значения

Returns an InterBase link identifier on success, or FALSE on error.

Смотрите также

  • ibase_close() - Close a connection to an InterBase database
  • ibase_connect() - Open a connection to a database


Prepare a query for later binding of parameter placeholders and execution

  • « ibase_pconnect
  • ibase_query »
  • PHP Manual
  • Firebird/InterBase Функции
  • Prepare a query for later binding of parameter placeholders and execution

ibase_prepare

(PHP 5, PHP 7)

ibase_prepare — Prepare a query for later binding of parameter placeholders and execution

Описание

resource ibase_prepare ( string $query )
resource ibase_prepare ( resource $link_identifier , string $query )
resource ibase_prepare ( resource $link_identifier , string $trans , string $query )

Prepare a query for later binding of parameter placeholders and execution (via ibase_execute()).

Список параметров

query

An InterBase query.

link_identifier

An InterBase link identifier returned from ibase_connect(). If omitted, the last opened link is assumed.

trans

An InterBase transaction handle the query should be associated with. If omitted, the default transaction of the connection is assumed.

Возвращаемые значения

Returns a prepared query handle, or FALSE on error.


Execute a query on an InterBase database

  • « ibase_prepare
  • ibase_restore »
  • PHP Manual
  • Firebird/InterBase Функции
  • Execute a query on an InterBase database

ibase_query

(PHP 5, PHP 7)

ibase_query — Execute a query on an InterBase database

Описание

resource ibase_query ([ resource $link_identifier ], string $query [, int $bind_args ] )

Performs a query on an InterBase database.

Список параметров

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

query

An InterBase query.

bind_args

Возвращаемые значения

If the query raises an error, returns FALSE. If it is successful and there is a (possibly empty) result set (such as with a SELECT query), returns a result identifier. If the query was successful and there were no results, returns TRUE.

Замечание:

In PHP 5.0.0 and up, this function will return the number of rows affected by the query for INSERT, UPDATE and DELETE statements. In order to retain backward compatibility, it will return TRUE for these statements if the query succeeded without affecting any rows.

Ошибки

If you get some error like "arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets" (this occurs when you try use some character with accents) when using this and after ibase_query() you must set the character set (i.e. ISO8859_1 or your current character set).

Список изменений

Версия | Описание
5.3.1 | On success the function now returns TRUE if there were no affected rows, where it previously returned 0 (a zero followed by an empty space).

Примеры

Пример #1 ibase_query() example

<?php

$host = 'localhost:/path/to/your.gdb';

$dbh = ibase_connect($host, $username, $password);
$stmt = 'SELECT * FROM tblname';

$sth = ibase_query($dbh, $stmt) or die(ibase_errmsg());

?>

Смотрите также

  • ibase_errmsg() - Return error messages
  • ibase_fetch_row() - Fetch a row from an InterBase database
  • ibase_fetch_object() - Get an object from a InterBase database
  • ibase_free_result() - Free a result set


Initiates a restore task in the service manager and returns immediately

  • « ibase_query
  • ibase_rollback_ret »
  • PHP Manual
  • Firebird/InterBase Функции
  • Initiates a restore task in the service manager and returns immediately

ibase_restore

(PHP 5, PHP 7)

ibase_restore — Initiates a restore task in the service manager and returns immediately

Описание

mixed ibase_restore ( resource $service_handle , string $source_file , string $dest_db [, int $options = 0 [, bool $verbose = false ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Roll back a transaction without closing it

  • « ibase_restore
  • ibase_rollback »
  • PHP Manual
  • Firebird/InterBase Функции
  • Roll back a transaction without closing it

ibase_rollback_ret

(PHP 5, PHP 7)

ibase_rollback_ret — Roll back a transaction without closing it

Описание

bool ibase_rollback_ret ([ resource $link_or_trans_identifier = NULL ] )

Rolls back a transaction without closing it.

Список параметров

link_or_trans_identifier

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back. The transaction context will be retained, so statements executed from within this transaction will not be invalidated.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Roll back a transaction

  • « ibase_rollback_ret
  • ibase_server_info »
  • PHP Manual
  • Firebird/InterBase Функции
  • Roll back a transaction

ibase_rollback

(PHP 5, PHP 7)

ibase_rollback — Roll back a transaction

Описание

bool ibase_rollback ([ resource $link_or_trans_identifier = NULL ] )

Rolls back a transaction.

Список параметров

link_or_trans_identifier

If called without an argument, this function rolls back the default transaction of the default link. If the argument is a connection identifier, the default transaction of the corresponding connection will be rolled back. If the argument is a transaction identifier, the corresponding transaction will be rolled back.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Request information about a database server

  • « ibase_rollback
  • ibase_service_attach »
  • PHP Manual
  • Firebird/InterBase Функции
  • Request information about a database server

ibase_server_info

(PHP 5, PHP 7)

ibase_server_info — Request information about a database server

Описание

string ibase_server_info ( resource $service_handle , int $action )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Connect to the service manager

  • « ibase_server_info
  • ibase_service_detach »
  • PHP Manual
  • Firebird/InterBase Функции
  • Connect to the service manager

ibase_service_attach

(PHP 5, PHP 7)

ibase_service_attach — Connect to the service manager

Описание

resource ibase_service_attach ( string $host , string $dba_username , string $dba_password )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Disconnect from the service manager

  • « ibase_service_attach
  • ibase_set_event_handler »
  • PHP Manual
  • Firebird/InterBase Функции
  • Disconnect from the service manager

ibase_service_detach

(PHP 5, PHP 7)

ibase_service_detach — Disconnect from the service manager

Описание

bool ibase_service_detach ( resource $service_handle )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Register a callback function to be called when events are posted

  • « ibase_service_detach
  • ibase_trans »
  • PHP Manual
  • Firebird/InterBase Функции
  • Register a callback function to be called when events are posted

ibase_set_event_handler

(PHP 5, PHP 7)

ibase_set_event_handler — Register a callback function to be called when events are posted

Описание

resource ibase_set_event_handler ( callable $event_handler , string $event_name1 [, string $event_name2 [, string $... ]] )
resource ibase_set_event_handler ( resource $connection , callable $event_handler , string $event_name1 [, string $event_name2 [, string $... ]] )

This function registers a PHP user function as event handler for the specified events.

Список параметров

event_handler

The callback is called with the event name and the link resource as arguments whenever one of the specified events is posted by the database.

The callback must return FALSE if the event handler should be canceled. Any other return value is ignored. This function accepts up to 15 event arguments.

event_name1

An event name.

event_name2

At most 15 events allowed.

Возвращаемые значения

The return value is an event resource. This resource can be used to free the event handler using ibase_free_event_handler().

Примеры

Пример #1 ibase_set_event_handler() example

<?php

function event_handler($event_name, $link)
{
    if ($event_name == "NEW ORDER") {
        // process new order
        ibase_query($link, "UPDATE orders SET status='handled'");
    } else if ($event_name == "DB_SHUTDOWN") {
        // free event handler
        return false;
    }
}

ibase_set_event_handler($link, "event_handler", "NEW_ORDER", "DB_SHUTDOWN");
?>

Смотрите также

  • ibase_free_event_handler() - Cancels a registered event handler
  • ibase_wait_event() - Wait for an event to be posted by the database


Begin a transaction

  • « ibase_set_event_handler
  • ibase_wait_event »
  • PHP Manual
  • Firebird/InterBase Функции
  • Begin a transaction

ibase_trans

(PHP 5, PHP 7)

ibase_trans — Begin a transaction

Описание

resource ibase_trans ([ int $trans_args [, resource $link_identifier ]] )
resource ibase_trans ([ resource $link_identifier [, int $trans_args ]] )

Begins a transaction.

Замечание:

The first call to ibase_trans() will not return the default transaction of a connection. All transactions started by ibase_trans() will be rolled back at the end of the script if they were not committed or rolled back by either ibase_commit() or ibase_rollback().

Замечание:

This function will accept multiple trans_args and link_identifier arguments. This allows transactions over multiple database connections, which are committed using a 2-phase commit algorithm. This means you can rely on the updates to either succeed in every database, or fail in every database. It does NOT mean you can use tables from different databases in the same query!

If you use transactions over multiple databases, you will have to specify both the link_id and transaction_id in calls to ibase_query() and ibase_prepare().

Список параметров

trans_args

trans_args can be a combination of IBASE_READ, IBASE_WRITE, IBASE_COMMITTED, IBASE_CONSISTENCY, IBASE_CONCURRENCY, IBASE_REC_VERSION, IBASE_REC_NO_VERSION, IBASE_WAIT and IBASE_NOWAIT.

link_identifier

An InterBase link identifier. If omitted, the last opened link is assumed.

Возвращаемые значения

Returns a transaction handle, or FALSE on error.


Wait for an event to be posted by the database

  • « ibase_trans
  • FrontBase »
  • PHP Manual
  • Firebird/InterBase Функции
  • Wait for an event to be posted by the database

ibase_wait_event

(PHP 5, PHP 7)

ibase_wait_event — Wait for an event to be posted by the database

Описание

string ibase_wait_event ( string $event_name1 [, string $event_name2 [, string $... ]] )
string ibase_wait_event ( resource $connection , string $event_name1 [, string $event_name2 [, string $... ]] )

This function suspends execution of the script until one of the specified events is posted by the database. The name of the event that was posted is returned. This function accepts up to 15 event arguments.

Список параметров

event_name1

The event name.

event_name2

...

Возвращаемые значения

Returns the name of the event that was posted.

Смотрите также

  • ibase_set_event_handler() - Register a callback function to be called when events are posted
  • ibase_free_event_handler() - Cancels a registered event handler


FrontBase

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции FrontBase
    • fbsql_affected_rows — Возвращает число затронутых строк в предыдущем FrontBase действии
    • fbsql_autocommit — Enable or disable autocommit
    • fbsql_blob_size — Get the size of a BLOB
    • fbsql_change_user — Change logged in user of the active connection
    • fbsql_clob_size — Get the size of a CLOB
    • fbsql_close — Close FrontBase connection
    • fbsql_commit — Commits a transaction to the database
    • fbsql_connect — Open a connection to a FrontBase Server
    • fbsql_create_blob — Create a BLOB
    • fbsql_create_clob — Create a CLOB
    • fbsql_create_db — Create a FrontBase database
    • fbsql_data_seek — Move internal result pointer
    • fbsql_database_password — Sets or retrieves the password for a FrontBase database
    • fbsql_database — Get or set the database name used with a connection
    • fbsql_db_query — Send a FrontBase query
    • fbsql_db_status — Get the status for a given database
    • fbsql_drop_db — Drop (delete) a FrontBase database
    • fbsql_errno — Returns the error number from previous operation
    • fbsql_error — Returns the error message from previous operation
    • fbsql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
    • fbsql_fetch_assoc — Fetch a result row as an associative array
    • fbsql_fetch_field — Get column information from a result and return as an object
    • fbsql_fetch_lengths — Get the length of each output in a result
    • fbsql_fetch_object — Fetch a result row as an object
    • fbsql_fetch_row — Get a result row as an enumerated array
    • fbsql_field_flags — Get the flags associated with the specified field in a result
    • fbsql_field_len — Returns the length of the specified field
    • fbsql_field_name — Get the name of the specified field in a result
    • fbsql_field_seek — Set result pointer to a specified field offset
    • fbsql_field_table — Get name of the table the specified field is in
    • fbsql_field_type — Get the type of the specified field in a result
    • fbsql_free_result — Free result memory
    • fbsql_get_autostart_info — Описание
    • fbsql_hostname — Get or set the host name used with a connection
    • fbsql_insert_id — Get the id generated from the previous INSERT operation
    • fbsql_list_dbs — List databases available on a FrontBase server
    • fbsql_list_fields — List FrontBase result fields
    • fbsql_list_tables — List tables in a FrontBase database
    • fbsql_next_result — Move the internal result pointer to the next result
    • fbsql_num_fields — Get number of fields in result
    • fbsql_num_rows — Get number of rows in result
    • fbsql_password — Get or set the user password used with a connection
    • fbsql_pconnect — Open a persistent connection to a FrontBase Server
    • fbsql_query — Send a FrontBase query
    • fbsql_read_blob — Read a BLOB from the database
    • fbsql_read_clob — Read a CLOB from the database
    • fbsql_result — Get result data
    • fbsql_rollback — Rollback a transaction to the database
    • fbsql_rows_fetched — Get the number of rows affected by the last statement
    • fbsql_select_db — Select a FrontBase database
    • fbsql_set_characterset — Change input/output character set
    • fbsql_set_lob_mode — Set the LOB retrieve mode for a FrontBase result set
    • fbsql_set_password — Change the password for a given user
    • fbsql_set_transaction — Set the transaction locking and isolation
    • fbsql_start_db — Start a database on local or remote server
    • fbsql_stop_db — Stop a database on local or remote server
    • fbsql_table_name — Get table name of field
    • fbsql_tablename — Псевдоним fbsql_table_name
    • fbsql_username — Get or set the username for the connection
    • fbsql_warnings — Enable or disable FrontBase warnings


Введение

Эти функции позволяют получить доступ к серверам баз данных FrontBase. Больше информации о FrontBase можно найти тут » http://www.frontbase.com/.

Документация на FrontBase лежит тут » http://www.frontbase.com/cgi-bin/WebObjects/FBWebSite.woa.

Поддержка Frontbase добавлена в PHP 4.0.6.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.3.0.


Требования

Для использования функций этого расширения вы должны как минимум установить клиентские библиотеки FrontBase, либо сам сервер баз данных. Дистрибутив FrontBase можно взять здесь » http://www.frontbase.com/.


Установка

Чтобы использовать это расширение, PHP должен быть собран с опцией --with-fbsql[=DIR] . Если вы зададите этот параметр без указания пути, то PHP постарается самостоятельно найти клиентские библиотеки fbsql по пути, являющимся путем по умолчанию для данной платформы. Пользователи установившие FrontBase в нестандартную директорию должны указать путь до нее: --with-fbsql=/path/to/fbsql . Это позволит PHP использовать указанные клиентские библиотеки.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настроек FrontBase
Имя | По умолчанию | Меняемо | Список изменений
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.autocommit | "1" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.max_links | "128" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.max_connections | "128" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.max_results | "128" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.batchSize | "1000" | PHP_INI_SYSTEM | Доступно с PHP 4.2.0. Удалено в PHP 5.1.0.
fbsql.default_host | NULL | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.default_password | "" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.default_database | "" | PHP_INI_SYSTEM | Доступно сPHP 4.0.6.
fbsql.default_database_password | "" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.mbatchSize | "1000" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6. Удалено в PHP 4.2.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

FBSQL_ASSOC (integer)
FBSQL_NUM (integer)
FBSQL_BOTH (integer)
FBSQL_LOCK_DEFERRED (integer)
FBSQL_LOCK_OPTIMISTIC (integer)
FBSQL_LOCK_PESSIMISTIC (integer)
FBSQL_ISO_READ_UNCOMMITTED (integer)
FBSQL_ISO_READ_COMMITTED (integer)
FBSQL_ISO_REPEATABLE_READ (integer)
FBSQL_ISO_SERIALIZABLE (integer)
FBSQL_ISO_VERSIONED (integer)
FBSQL_UNKNOWN (integer)
FBSQL_STOPPED (integer)
FBSQL_STARTING (integer)
FBSQL_RUNNING (integer)
FBSQL_STOPPING (integer)
FBSQL_NOEXEC (integer)
FBSQL_LOB_DIRECT (integer)
FBSQL_LOB_HANDLE (integer)


Функции FrontBase

Содержание

  • fbsql_affected_rows — Возвращает число затронутых строк в предыдущем FrontBase действии
  • fbsql_autocommit — Enable or disable autocommit
  • fbsql_blob_size — Get the size of a BLOB
  • fbsql_change_user — Change logged in user of the active connection
  • fbsql_clob_size — Get the size of a CLOB
  • fbsql_close — Close FrontBase connection
  • fbsql_commit — Commits a transaction to the database
  • fbsql_connect — Open a connection to a FrontBase Server
  • fbsql_create_blob — Create a BLOB
  • fbsql_create_clob — Create a CLOB
  • fbsql_create_db — Create a FrontBase database
  • fbsql_data_seek — Move internal result pointer
  • fbsql_database_password — Sets or retrieves the password for a FrontBase database
  • fbsql_database — Get or set the database name used with a connection
  • fbsql_db_query — Send a FrontBase query
  • fbsql_db_status — Get the status for a given database
  • fbsql_drop_db — Drop (delete) a FrontBase database
  • fbsql_errno — Returns the error number from previous operation
  • fbsql_error — Returns the error message from previous operation
  • fbsql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_assoc — Fetch a result row as an associative array
  • fbsql_fetch_field — Get column information from a result and return as an object
  • fbsql_fetch_lengths — Get the length of each output in a result
  • fbsql_fetch_object — Fetch a result row as an object
  • fbsql_fetch_row — Get a result row as an enumerated array
  • fbsql_field_flags — Get the flags associated with the specified field in a result
  • fbsql_field_len — Returns the length of the specified field
  • fbsql_field_name — Get the name of the specified field in a result
  • fbsql_field_seek — Set result pointer to a specified field offset
  • fbsql_field_table — Get name of the table the specified field is in
  • fbsql_field_type — Get the type of the specified field in a result
  • fbsql_free_result — Free result memory
  • fbsql_get_autostart_info — Описание
  • fbsql_hostname — Get or set the host name used with a connection
  • fbsql_insert_id — Get the id generated from the previous INSERT operation
  • fbsql_list_dbs — List databases available on a FrontBase server
  • fbsql_list_fields — List FrontBase result fields
  • fbsql_list_tables — List tables in a FrontBase database
  • fbsql_next_result — Move the internal result pointer to the next result
  • fbsql_num_fields — Get number of fields in result
  • fbsql_num_rows — Get number of rows in result
  • fbsql_password — Get or set the user password used with a connection
  • fbsql_pconnect — Open a persistent connection to a FrontBase Server
  • fbsql_query — Send a FrontBase query
  • fbsql_read_blob — Read a BLOB from the database
  • fbsql_read_clob — Read a CLOB from the database
  • fbsql_result — Get result data
  • fbsql_rollback — Rollback a transaction to the database
  • fbsql_rows_fetched — Get the number of rows affected by the last statement
  • fbsql_select_db — Select a FrontBase database
  • fbsql_set_characterset — Change input/output character set
  • fbsql_set_lob_mode — Set the LOB retrieve mode for a FrontBase result set
  • fbsql_set_password — Change the password for a given user
  • fbsql_set_transaction — Set the transaction locking and isolation
  • fbsql_start_db — Start a database on local or remote server
  • fbsql_stop_db — Stop a database on local or remote server
  • fbsql_table_name — Get table name of field
  • fbsql_tablename — Псевдоним fbsql_table_name
  • fbsql_username — Get or set the username for the connection
  • fbsql_warnings — Enable or disable FrontBase warnings


Возвращает число затронутых строк в предыдущем FrontBase действии

  • « Функции FrontBase
  • fbsql_autocommit »
  • PHP Manual
  • Функции FrontBase
  • Возвращает число затронутых строк в предыдущем FrontBase действии

fbsql_affected_rows

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_affected_rows — Возвращает число затронутых строк в предыдущем FrontBase действии

Описание

int fbsql_affected_rows ([ resource $link_identifier ] )

fbsql_affected_rows() возвращает число затронутых строк в последнем INSERT, UPDATE или DELETE запросе, связанным с link_identifier.

Замечание:

Если используются транзакции, то нужно вызвать fbsql_affected_rows() после INSERT, UPDATE, или DELETE запроса, но не после коммита.

Если последний запрос был DELETE запросом без условий в WHERE, то все записи будут удалены из таблицы, функция вернет 0.

Замечание:

Если используется UPDATE, то FrontBase не обновит столбцы, где новое значение идентично предыдущему значению. Это создает вероятность, что fbsql_affected_rows() может фактически не быть равной числу соответствующих строк, только число строк, которые были буквально затронуты запросом.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Если последний запрос не был произведен, то функция возвращает -1.

Смотрите также

  • fbsql_num_rows() - Get number of rows in result


Enable or disable autocommit

  • « fbsql_affected_rows
  • fbsql_blob_size »
  • PHP Manual
  • Функции FrontBase
  • Enable or disable autocommit

fbsql_autocommit

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_autocommit — Enable or disable autocommit

Описание

bool fbsql_autocommit ( resource $link_identifier [, bool $OnOff ] )

Returns the current autocommit status.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

OnOff

If this optional parameter is given the auto commit status will be changed.

With OnOff set to TRUE each statement will be committed automatically, if no errors was found.

With OnOff set to FALSE the user must commit or rollback the transaction using either fbsql_commit() or fbsql_rollback().

Возвращаемые значения

Returns the current autocommit status, as a boolean.

Смотрите также

  • fbsql_commit() - Commits a transaction to the database
  • fbsql_rollback() - Rollback a transaction to the database


Get the size of a BLOB

  • « fbsql_autocommit
  • fbsql_change_user »
  • PHP Manual
  • Функции FrontBase
  • Get the size of a BLOB

fbsql_blob_size

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_blob_size — Get the size of a BLOB

Описание

int fbsql_blob_size ( string $blob_handle [, resource $link_identifier ] )

Returns the size of the given BLOB.

Список параметров

blob_handle

A BLOB handle, returned by fbsql_create_blob().

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns the BLOB size as an integer, or FALSE on error.

Смотрите также

  • fbsql_clob_size() - Get the size of a CLOB


Change logged in user of the active connection

  • « fbsql_blob_size
  • fbsql_clob_size »
  • PHP Manual
  • Функции FrontBase
  • Change logged in user of the active connection

fbsql_change_user

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_change_user — Change logged in user of the active connection

Описание

bool fbsql_change_user ( string $user , string $password [, string $database [, resource $link_identifier ]] )

fbsql_change_user() changes the logged in user of the specified connection. If the new user and password authorization fails, the current connected user stays active.

Список параметров

user

The new user name.

password

The new user password.

database

If specified, this will be the default or current database after the user has been changed.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Get the size of a CLOB

  • « fbsql_change_user
  • fbsql_close »
  • PHP Manual
  • Функции FrontBase
  • Get the size of a CLOB

fbsql_clob_size

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_clob_size — Get the size of a CLOB

Описание

int fbsql_clob_size ( string $clob_handle [, resource $link_identifier ] )

Returns the size of the given CLOB.

Список параметров

clob_handle

A CLOB handle, returned by fbsql_create_clob().

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns the CLOB size as an integer, or FALSE on error.

Смотрите также

  • fbsql_blob_size() - Get the size of a BLOB


Close FrontBase connection

  • « fbsql_clob_size
  • fbsql_commit »
  • PHP Manual
  • Функции FrontBase
  • Close FrontBase connection

fbsql_close

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_close — Close FrontBase connection

Описание

bool fbsql_close ([ resource $link_identifier ] )

Closes the connection to the FrontBase server that's associated with the specified link identifier.

Using fbsql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 fbsql_close() example

<?php
$link = fbsql_connect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
echo "Connected successfully";
fbsql_close($link);
?>

Смотрите также

  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server


Commits a transaction to the database

  • « fbsql_close
  • fbsql_connect »
  • PHP Manual
  • Функции FrontBase
  • Commits a transaction to the database

fbsql_commit

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_commit — Commits a transaction to the database

Описание

bool fbsql_commit ([ resource $link_identifier ] )

Ends the current transaction by writing all inserts, updates and deletes to the disk and unlocking all row and table locks held by the transaction. This command is only needed if autocommit is set to false.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_autocommit() - Enable or disable autocommit
  • fbsql_rollback() - Rollback a transaction to the database


Open a connection to a FrontBase Server

  • « fbsql_commit
  • fbsql_create_blob »
  • PHP Manual
  • Функции FrontBase
  • Open a connection to a FrontBase Server

fbsql_connect

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_connect — Open a connection to a FrontBase Server

Описание

 resource fbsql_connect
  ([ string $hostname = ini_get("fbsql.default_host")
 [, string $username = ini_get("fbsql.default_user")
 [, string $password = ini_get("fbsql.default_password")
]]] )

fbsql_connect() establishes a connection to a FrontBase server.

If a second call is made to fbsql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling fbsql_close().

Список параметров

hostname

The server host name.

username

The user name for the connection.

password

The password for the connection.

Возвращаемые значения

Returns a positive FrontBase link identifier on success, or FALSE on errors.

Примеры

Пример #1 fbsql_connect() example

<?php

$link = fbsql_connect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
echo "Connected successfully";
fbsql_close($link);

?>

Смотрите также

  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server
  • fbsql_close() - Close FrontBase connection


Create a BLOB

  • « fbsql_connect
  • fbsql_create_clob »
  • PHP Manual
  • Функции FrontBase
  • Create a BLOB

fbsql_create_blob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_create_blob — Create a BLOB

Описание

string fbsql_create_blob ( string $blob_data [, resource $link_identifier ] )

Creates a BLOB from the given data.

Список параметров

blob_data

The BLOB data.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a resource handle to the newly created BLOB, which can be used with insert and update commands to store the BLOB in the database.

Примеры

Пример #1 fbsql_create_blob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$filename = "blobfile.bin";
$fp = fopen($filename, "rb");
$blobdata = fread($fp, filesize($filename));
fclose($fp);

$blobHandle = fbsql_create_blob($blobdata, $link);

$sql = "INSERT INTO BLOB_TABLE (BLOB_COLUMN) VALUES ($blobHandle);";
$rs = fbsql_query($sql, $link);
?>

Смотрите также

  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set


Create a CLOB

  • « fbsql_create_blob
  • fbsql_create_db »
  • PHP Manual
  • Функции FrontBase
  • Create a CLOB

fbsql_create_clob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_create_clob — Create a CLOB

Описание

string fbsql_create_clob ( string $clob_data [, resource $link_identifier ] )

Creates a CLOB from the given data.

Список параметров

clob_data

The CLOB data.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a resource handle to the newly created CLOB, which can be used with insert and update commands to store the CLOB in the database.

Примеры

Пример #1 fbsql_create_clob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$filename = "clob_file.txt";
$fp = fopen($filename, "rb");
$clobdata = fread($fp, filesize($filename));
fclose($fp);

$clobHandle = fbsql_create_clob($clobdata, $link);

$sql = "INSERT INTO CLOB_TABLE (CLOB_COLUMN) VALUES ($clobHandle);";
$rs = fbsql_query($sql, $link);
?>

Смотрите также

  • fbsql_create_blob() - Create a BLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set


Create a FrontBase database

  • « fbsql_create_clob
  • fbsql_data_seek »
  • PHP Manual
  • Функции FrontBase
  • Create a FrontBase database

fbsql_create_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_create_db — Create a FrontBase database

Описание

bool fbsql_create_db ( string $database_name [, resource $link_identifier [, string $database_options ]] )

Attempts to create a new database on the specified server.

Список параметров

database_name

The database name, as a string.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

database_options

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 fbsql_create_db() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
if (fbsql_create_db("my_db")) {
    echo "Database created successfully\n";
} else {
    printf("Error creating database: %s\n", fbsql_error());
}
?>

Смотрите также

  • fbsql_drop_db() - Drop (delete) a FrontBase database


Move internal result pointer

  • « fbsql_create_db
  • fbsql_database_password »
  • PHP Manual
  • Функции FrontBase
  • Move internal result pointer

fbsql_data_seek

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_data_seek — Move internal result pointer

Описание

bool fbsql_data_seek ( resource $result , int $row_number )

Moves the internal row pointer of the FrontBase result associated with the specified result identifier to point to the specified row number.

The next call to fbsql_fetch_row() would return that row.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

row_number

The row number. Starts at 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 fbsql_data_seek() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");

fbsql_select_db("samp_db")
    or die("Could not select database");

$query = "SELECT last_name, first_name FROM friends;";
$result = fbsql_query($query)
    or die("Query failed");

// fetch rows in reverse order

for ($i = fbsql_num_rows($result) - 1; $i >=0; $i--) {
    if (!fbsql_data_seek($result, $i)) {
        printf("Cannot seek to row %d\n", $i);
        continue;
    }

    if (!($row = fbsql_fetch_object($result)))
        continue;

    echo $row->last_name . $row->first_name . "<br />\n";
}

fbsql_free_result($result);
?>


Sets or retrieves the password for a FrontBase database

  • « fbsql_data_seek
  • fbsql_database »
  • PHP Manual
  • Функции FrontBase
  • Sets or retrieves the password for a FrontBase database

fbsql_database_password

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_database_password — Sets or retrieves the password for a FrontBase database

Описание

string fbsql_database_password ( resource $link_identifier [, string $database_password ] )

Sets and retrieves the database password used by the connection. If a database is protected by a database password, the user must call this function before calling fbsql_select_db().

If no link is open, the function will try to establish a link as if fbsql_connect() was called, and use it.

This function does not change the database password in the database nor can it be used to retrieve the database password for a database.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

database_password

The database password, as a string. If given, the function sets the database password for the specified link identifier.

Возвращаемые значения

Returns the database password associated with the link identifier.

Примеры

Пример #1 fbsql_create_clob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
fbsql_database_password($link, "secret db password");
fbsql_select_db($database, $link);
?>

Смотрите также

  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server
  • fbsql_select_db() - Select a FrontBase database


Get or set the database name used with a connection

  • « fbsql_database_password
  • fbsql_db_query »
  • PHP Manual
  • Функции FrontBase
  • Get or set the database name used with a connection

fbsql_database

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_database — Get or set the database name used with a connection

Описание

string fbsql_database ( resource $link_identifier [, string $database ] )

Get or set the database name used with the connection.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

database

The database name. If given, the default database of the connexion will be changed to database.

Возвращаемые значения

Returns the name of the database used with this connection.


Send a FrontBase query

  • « fbsql_database
  • fbsql_db_status »
  • PHP Manual
  • Функции FrontBase
  • Send a FrontBase query

fbsql_db_query

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_db_query — Send a FrontBase query

Описание

resource fbsql_db_query ( string $database , string $query [, resource $link_identifier ] )

Selects a database and executes a query on it.

Список параметров

database

The database to be selected.

query

The SQL query to be executed.

Замечание:

The query string shall always end with a semicolon.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a positive FrontBase result identifier to the query result, or FALSE on error.

Смотрите также

  • fbsql_query() - Send a FrontBase query
  • fbsql_connect() - Open a connection to a FrontBase Server


Get the status for a given database

  • « fbsql_db_query
  • fbsql_drop_db »
  • PHP Manual
  • Функции FrontBase
  • Get the status for a given database

fbsql_db_status

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

fbsql_db_status — Get the status for a given database

Описание

int fbsql_db_status ( string $database_name [, resource $link_identifier ] )

Gets the current status of the specified database.

Список параметров

database_name

The database name.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns an integer value with the current status. This can be one of the following constants:

  • FALSE - The exec handler for the host was invalid. This error will occur when the link_identifier connects directly to a database by using a port number. FBExec can be available on the server but no connection has been made for it.
  • FBSQL_UNKNOWN - The Status is unknown.
  • FBSQL_STOPPED - The database is not running. Use fbsql_start_db() to start the database.
  • FBSQL_STARTING - The database is starting.
  • FBSQL_RUNNING - The database is running and can be used to perform SQL operations.
  • FBSQL_STOPPING - The database is stopping.
  • FBSQL_NOEXEC - FBExec is not running on the server and it is not possible to get the status of the database.

Смотрите также

  • fbsql_start_db() - Start a database on local or remote server
  • fbsql_stop_db() - Stop a database on local or remote server


Drop (delete) a FrontBase database

  • « fbsql_db_status
  • fbsql_errno »
  • PHP Manual
  • Функции FrontBase
  • Drop (delete) a FrontBase database

fbsql_drop_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_drop_db — Drop (delete) a FrontBase database

Описание

bool fbsql_drop_db ( string $database_name [, resource $link_identifier ] )

fbsql_drop_db() attempts to drop (remove) an entire database from the server associated with the specified link identifier.

Список параметров

database_name

The database name, as a string.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_create_db() - Create a FrontBase database


Returns the error number from previous operation

  • « fbsql_drop_db
  • fbsql_error »
  • PHP Manual
  • Функции FrontBase
  • Returns the error number from previous operation

fbsql_errno

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_errno — Returns the error number from previous operation

Описание

int fbsql_errno ([ resource $link_identifier ] )

Returns the numerical value of the error message from previous FrontBase operation.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_errno() to retrieve the error code. Note that this function only returns the error code from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns the error number from the last fbsql function, or 0 (zero) if no error occurred.

Примеры

Пример #1 fbsql_errno() Example

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

Смотрите также

  • fbsql_error() - Returns the error message from previous operation
  • fbsql_warnings() - Enable or disable FrontBase warnings


Returns the error message from previous operation

  • « fbsql_errno
  • fbsql_fetch_array »
  • PHP Manual
  • Функции FrontBase
  • Returns the error message from previous operation

fbsql_error

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_error — Returns the error message from previous operation

Описание

string fbsql_error ([ resource $link_identifier ] )

Returns the error message from previous FrontBase operation.

Errors coming back from the fbsql database backend don't issue warnings. Instead, use fbsql_error() to retrieve the error text. Note that this function only returns the error code from the most recently executed fbsql function (not including fbsql_error() and fbsql_errno()), so if you want to use it, make sure you check the value before calling another fbsql function.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns the error text from the last fbsql function, or '' (the empty string) if no error occurred.

Примеры

Пример #1 fbsql_error() Example

<?php
fbsql_connect("marliesle");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
fbsql_select_db("nonexistentdb");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
$conn = fbsql_query("SELECT * FROM nonexistenttable;");
echo fbsql_errno() . ": " . fbsql_error() . "<br />";
?>

Смотрите также

  • fbsql_errno() - Returns the error number from previous operation
  • fbsql_warnings() - Enable or disable FrontBase warnings


Fetch a result row as an associative array, a numeric array, or both

  • « fbsql_error
  • fbsql_fetch_assoc »
  • PHP Manual
  • Функции FrontBase
  • Fetch a result row as an associative array, a numeric array, or both

fbsql_fetch_array

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_array — Fetch a result row as an associative array, a numeric array, or both

Описание

array fbsql_fetch_array ( resource $result [, int $result_type ] )

fbsql_fetch_array() is a combination of
fbsql_fetch_row() and
fbsql_fetch_assoc().

An important thing to note is that using fbsql_fetch_array() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

result_type

A constant and can take the following values: FBSQL_ASSOC, FBSQL_NUM, or FBSQL_BOTH.

When using FBSQL_BOTH, in addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must the numeric index of the column or make an alias for the column.

select t1.f1 as foo t2.f1 as bar from t1, t2

Примеры

Пример #1 fbsql_fetch_array() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select user_id, fullname from table");
while ($row = fbsql_fetch_array($result)) {
    echo "user_id: " . $row["user_id"] . "<br />\n";
    echo "user_id: " . $row[0] . "<br />\n";
    echo "fullname: " . $row["fullname"] . "<br />\n";
    echo "fullname: " . $row[1] . "<br />\n";
}
fbsql_free_result($result);
?>

Смотрите также

  • fbsql_fetch_row() - Get a result row as an enumerated array
  • fbsql_fetch_assoc() - Fetch a result row as an associative array
  • fbsql_fetch_object() - Fetch a result row as an object


Fetch a result row as an associative array

  • « fbsql_fetch_array
  • fbsql_fetch_field »
  • PHP Manual
  • Функции FrontBase
  • Fetch a result row as an associative array

fbsql_fetch_assoc

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_assoc — Fetch a result row as an associative array

Описание

array fbsql_fetch_assoc ( resource $result )

Calling fbsql_fetch_assoc() is equivalent to calling fbsql_fetch_array() with FBSQL_ASSOC as second parameter. It only returns an associative array.

This is the way fbsql_fetch_array() originally worked. If you need the numeric indices as well as the associative, use fbsql_fetch_array().

An important thing to note is that using fbsql_fetch_assoc() is NOT significantly slower than using fbsql_fetch_row(), while it provides a significant added value.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you must use fbsql_fetch_array() and have it return the numeric indices as well.

Примеры

Пример #1 fbsql_fetch_assoc() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_assoc($result)) {
    echo $row["user_id"];
    echo $row["fullname"];
}
fbsql_free_result($result);
?>

Смотрите также

  • fbsql_fetch_row() - Get a result row as an enumerated array
  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_object() - Fetch a result row as an object


Get column information from a result and return as an object

  • « fbsql_fetch_assoc
  • fbsql_fetch_lengths »
  • PHP Manual
  • Функции FrontBase
  • Get column information from a result and return as an object

fbsql_fetch_field

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_field — Get column information from a result and return as an object

Описание

object fbsql_fetch_field ( resource $result [, int $field_offset ] )

Used in order to obtain information about fields in a certain query result.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0. If not specified, the next field that wasn't yet retrieved by fbsql_fetch_field() is retrieved.

Возвращаемые значения

Returns an object containing field information, or FALSE on errors.

The properties of the object are:

  • name - column name
  • table - name of the table the column belongs to
  • max_length - maximum length of the column
  • not_null - 1 if the column cannot be NULL
  • type - the type of the column

Примеры

Пример #1 fbsql_fetch_field() example

<?php
fbsql_connect($host, $user, $password)
    or die("Could not connect");
$result = fbsql_db_query("database", "select * from table")
    or die("Query failed");
# get column metadata
$i = 0;
while ($i < fbsql_num_fields($result)) {
    echo "Information for column $i:<br />\n";
    $meta = fbsql_fetch_field($result);
    if (!$meta) {
        echo "No information available<br />\n";
    }
    echo "<pre>
max_length:   $meta->max_length
name:         $meta->name
not_null:     $meta->not_null
table:        $meta->table
type:         $meta->type
</pre>";
    $i++;
}
fbsql_free_result($result);
?>

Смотрите также

  • fbsql_field_seek() - Set result pointer to a specified field offset


Get the length of each output in a result

  • « fbsql_fetch_field
  • fbsql_fetch_object »
  • PHP Manual
  • Функции FrontBase
  • Get the length of each output in a result

fbsql_fetch_lengths

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_lengths — Get the length of each output in a result

Описание

array fbsql_fetch_lengths ( resource $result )

Stores the lengths of each result column in the last row returned by
fbsql_fetch_row(),
fbsql_fetch_array() and
fbsql_fetch_object() in an array.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns an array, starting at offset 0, that corresponds to the lengths of each field in the last row fetched by fbsql_fetch_row(), or FALSE on error.

Смотрите также

  • fbsql_fetch_row() - Get a result row as an enumerated array


Fetch a result row as an object

  • « fbsql_fetch_lengths
  • fbsql_fetch_row »
  • PHP Manual
  • Функции FrontBase
  • Fetch a result row as an object

fbsql_fetch_object

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_object — Fetch a result row as an object

Описание

object fbsql_fetch_object ( resource $result )

fbsql_fetch_object() is similar to fbsql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Speed-wise, the function is identical to fbsql_fetch_array(), and almost as quick as fbsql_fetch_row() (the difference is insignificant).

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 fbsql_fetch_object() example

<?php
fbsql_connect($host, $user, $password);
$result = fbsql_db_query("database", "select * from table");
while ($row = fbsql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
fbsql_free_result($result);
?>

Смотрите также

  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_row() - Get a result row as an enumerated array
  • fbsql_fetch_assoc() - Fetch a result row as an associative array


Get a result row as an enumerated array

  • « fbsql_fetch_object
  • fbsql_field_flags »
  • PHP Manual
  • Функции FrontBase
  • Get a result row as an enumerated array

fbsql_fetch_row

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_fetch_row — Get a result row as an enumerated array

Описание

array fbsql_fetch_row ( resource $result )

fbsql_fetch_row() fetches one row of data from the result associated with the specified result identifier.

Subsequent call to fbsql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns an array that corresponds to the fetched row where each result column is stored in an offset, starting at offset 0, or FALSE if there are no more rows.

Смотрите также

  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_assoc() - Fetch a result row as an associative array
  • fbsql_fetch_object() - Fetch a result row as an object
  • fbsql_data_seek() - Move internal result pointer
  • fbsql_fetch_lengths() - Get the length of each output in a result
  • fbsql_result() - Get result data


Get the flags associated with the specified field in a result

  • « fbsql_fetch_row
  • fbsql_field_len »
  • PHP Manual
  • Функции FrontBase
  • Get the flags associated with the specified field in a result

fbsql_field_flags

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_flags — Get the flags associated with the specified field in a result

Описание

string fbsql_field_flags ( resource $result [, int $field_offset ] )

Gets the flags associated with the specified field in a result.

Список параметров

result

A result pointer returned by fbsql_list_fields().

field_offset

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Returns the field flags of the specified field as a single word per flag separated by a single space, so that you can split the returned value using explode().


Returns the length of the specified field

  • « fbsql_field_flags
  • fbsql_field_name »
  • PHP Manual
  • Функции FrontBase
  • Returns the length of the specified field

fbsql_field_len

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_len — Returns the length of the specified field

Описание

int fbsql_field_len ( resource $result [, int $field_offset ] )

Returns the length of the specified field.

Список параметров

result

A result pointer returned by fbsql_list_fields().

field_offset

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Returns the length of the specified field.


Get the name of the specified field in a result

  • « fbsql_field_len
  • fbsql_field_seek »
  • PHP Manual
  • Функции FrontBase
  • Get the name of the specified field in a result

fbsql_field_name

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_name — Get the name of the specified field in a result

Описание

string fbsql_field_name ( resource $result [, int $field_index ] )

Returns the name of the specified field index.

Список параметров

result

A result pointer returned by fbsql_list_fields().

field_index

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Returns the name as a string, or FALSE if the field doesn't exist.

Примеры

Пример #1 fbsql_field_name() example

<?php
// The users table consists of three fields:
//   user_id
//   username
//   password.

$res = fbsql_db_query("users", "select * from users", $link);

echo fbsql_field_name($res, 0) . "\n";
echo fbsql_field_name($res, 2);
?>

Результат выполнения данного примера:

user_id
password

Смотрите также

  • fbsql_field_type() - Get the type of the specified field in a result


Set result pointer to a specified field offset

  • « fbsql_field_name
  • fbsql_field_table »
  • PHP Manual
  • Функции FrontBase
  • Set result pointer to a specified field offset

fbsql_field_seek

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_seek — Set result pointer to a specified field offset

Описание

bool fbsql_field_seek ( resource $result [, int $field_offset ] )

Seeks to the specified field offset. If the next call to fbsql_fetch_field() doesn't include a field offset, the field offset specified in fbsql_field_seek() will be returned.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_fetch_field() - Get column information from a result and return as an object


Get name of the table the specified field is in

  • « fbsql_field_seek
  • fbsql_field_type »
  • PHP Manual
  • Функции FrontBase
  • Get name of the table the specified field is in

fbsql_field_table

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_table — Get name of the table the specified field is in

Описание

string fbsql_field_table ( resource $result [, int $field_offset ] )

Returns the name of the table that the specified field is in.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Returns the name of the table, as a string.


Get the type of the specified field in a result

  • « fbsql_field_table
  • fbsql_free_result »
  • PHP Manual
  • Функции FrontBase
  • Get the type of the specified field in a result

fbsql_field_type

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_field_type — Get the type of the specified field in a result

Описание

string fbsql_field_type ( resource $result [, int $field_offset ] )

fbsql_field_type() is similar to the fbsql_field_name() function, but the field type is returned instead.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

field_offset

The numerical offset of the field. The field index starts at 0.

Возвращаемые значения

Returns the field type, as a string.

This can be one of int, real, string, blob, and others as detailed in the » FrontBase documentation.

Примеры

Пример #1 fbsql_field_type() example

<?php

fbsql_connect("localhost", "_SYSTEM", "");
fbsql_select_db("wisconsin");
$result = fbsql_query("SELECT * FROM onek;");
$fields = fbsql_num_fields($result);
$rows   = fbsql_num_rows($result);
$i = 0;
$table = fbsql_field_table($result, $i);
echo "Your '" . $table . "' table has " . $fields . " fields and " . $rows . " records <br />";
echo "The table has the following fields <br />";
while ($i < $fields) {
    $type  = fbsql_field_type($result, $i);
    $name  = fbsql_field_name($result, $i);
    $len   = fbsql_field_len($result, $i);
    $flags = fbsql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "<br />";
    $i++;
}
fbsql_close();

?>

Смотрите также

  • fbsql_field_name() - Get the name of the specified field in a result


Free result memory

  • « fbsql_field_type
  • fbsql_get_autostart_info »
  • PHP Manual
  • Функции FrontBase
  • Free result memory

fbsql_free_result

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_free_result — Free result memory

Описание

bool fbsql_free_result ( resource $result )

Frees all memory associated with the given result identifier.

fbsql_free_result() only needs to be called if you are concerned about how much memory is being used for queries that return large result sets. All associated result memory is automatically freed at the end of the script's execution.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Описание

  • « fbsql_free_result
  • fbsql_hostname »
  • PHP Manual
  • Функции FrontBase
  • Описание

fbsql_get_autostart_info

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

fbsql_get_autostart_info —

Описание

array fbsql_get_autostart_info ([ resource $link_identifier ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.


Get or set the host name used with a connection

  • « fbsql_get_autostart_info
  • fbsql_insert_id »
  • PHP Manual
  • Функции FrontBase
  • Get or set the host name used with a connection

fbsql_hostname

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_hostname — Get or set the host name used with a connection

Описание

string fbsql_hostname ( resource $link_identifier [, string $host_name ] )

Gets or sets the host name used with a connection.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

host_name

If provided, this will be the new connection host name.

Возвращаемые значения

Returns the current host name used for the connection.

Смотрите также

  • fbsql_username() - Get or set the username for the connection
  • fbsql_password() - Get or set the user password used with a connection


Get the id generated from the previous INSERT operation

  • « fbsql_hostname
  • fbsql_list_dbs »
  • PHP Manual
  • Функции FrontBase
  • Get the id generated from the previous INSERT operation

fbsql_insert_id

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_insert_id — Get the id generated from the previous INSERT operation

Описание

int fbsql_insert_id ([ resource $link_identifier ] )

Gets the id generated from the previous INSERT operation which created a DEFAULT UNIQUE value.

Замечание:

The value of the FrontBase SQL function fbsql_insert_id() always contains the most recently generated DEFAULT UNIQUE value, and is not reset between queries.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns the ID generated from the previous INSERT query, or 0 if the previous query does not generate an DEFAULT UNIQUE value.

If you need to save the value for later, be sure to call this function immediately after the query that generates the value.

Смотрите также

  • fbsql_affected_rows() - Возвращает число затронутых строк в предыдущем FrontBase действии


List databases available on a FrontBase server

  • « fbsql_insert_id
  • fbsql_list_fields »
  • PHP Manual
  • Функции FrontBase
  • List databases available on a FrontBase server

fbsql_list_dbs

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_list_dbs — List databases available on a FrontBase server

Описание

resource fbsql_list_dbs ([ resource $link_identifier ] )

Return a result pointer containing the databases available from the current fbsql daemon. Use the fbsql_tablename() to traverse this result pointer.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a result pointer or FALSE on error.

Примеры

Пример #1 fbsql_list_dbs() example

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');
$db_list = fbsql_list_dbs($link);

while ($row = fbsql_fetch_object($db_list)) {
    echo $row->Database . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

database1
database2
database3
...

Замечание:

The above code would just as easily work with fbsql_fetch_row() or other similar functions.

Смотрите также

  • fbsql_list_fields() - List FrontBase result fields
  • fbsql_list_tables() - List tables in a FrontBase database


List FrontBase result fields

  • « fbsql_list_dbs
  • fbsql_list_tables »
  • PHP Manual
  • Функции FrontBase
  • List FrontBase result fields

fbsql_list_fields

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_list_fields — List FrontBase result fields

Описание

resource fbsql_list_fields ( string $database_name , string $table_name [, resource $link_identifier ] )

Retrieves information about the given table.

Список параметров

database_name

The database name.

table_name

The table name.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a result pointer which can be used with the fbsql_field_xxx functions, or FALSE on error.

Ошибки

A string describing the error will be placed in $phperrmsg, and unless the function was called as @fbsql() then this error string will also be printed out.

Примеры

Пример #1 fbsql_list_fields() example

<?php
$link = fbsql_connect('localhost', 'myname', 'secret');

$fields = fbsql_list_fields("database1", "table1", $link);
$columns = fbsql_num_fields($fields);

for ($i = 0; $i < $columns; $i++) {
    echo fbsql_field_name($fields, $i) . "\n";;
}
?>

Результатом выполнения данного примера будет что-то подобное:

field1
field2
field3
...

Смотрите также

  • fbsql_field_len() - Returns the length of the specified field
  • fbsql_field_name() - Get the name of the specified field in a result
  • fbsql_field_type() - Get the type of the specified field in a result
  • fbsql_field_flags() - Get the flags associated with the specified field in a result


List tables in a FrontBase database

  • « fbsql_list_fields
  • fbsql_next_result »
  • PHP Manual
  • Функции FrontBase
  • List tables in a FrontBase database

fbsql_list_tables

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_list_tables — List tables in a FrontBase database

Описание

resource fbsql_list_tables ( string $database [, resource $link_identifier ] )

Returns a result pointer describing the database.

Список параметров

database

The database name.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a result pointer which can be used with the fbsql_tablename() function to read the actual table names, or FALSE on error.

Смотрите также

  • fbsql_list_fields() - List FrontBase result fields
  • fbsql_list_dbs() - List databases available on a FrontBase server


Move the internal result pointer to the next result

  • « fbsql_list_tables
  • fbsql_num_fields »
  • PHP Manual
  • Функции FrontBase
  • Move the internal result pointer to the next result

fbsql_next_result

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_next_result — Move the internal result pointer to the next result

Описание

bool fbsql_next_result ( resource $result )

When sending more than one SQL statement to the server or executing a stored procedure with multiple results will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the words from the new result set.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns TRUE if an additional result set was available or FALSE otherwise.

Примеры

Пример #1 fbsql_next_result() example

<?php
$link = fbsql_connect("localhost", "_SYSTEM", "secret");
fbsql_select_db("MyDB", $link);
$SQL = "Select * from table1; select * from table2;";
$rs = fbsql_query($SQL, $link);
do {
    while ($row = fbsql_fetch_row($rs)) {
    }
} while (fbsql_next_result($rs));
fbsql_free_result($rs);
fbsql_close($link);
?>


Get number of fields in result

  • « fbsql_next_result
  • fbsql_num_rows »
  • PHP Manual
  • Функции FrontBase
  • Get number of fields in result

fbsql_num_fields

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_num_fields — Get number of fields in result

Описание

int fbsql_num_fields ( resource $result )

Returns the number of fields in the given result set.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns the number of fields, as an integer.

Смотрите также

  • fbsql_db_query() - Send a FrontBase query
  • fbsql_query() - Send a FrontBase query
  • fbsql_fetch_field() - Get column information from a result and return as an object
  • fbsql_num_rows() - Get number of rows in result


Get number of rows in result

  • « fbsql_num_fields
  • fbsql_password »
  • PHP Manual
  • Функции FrontBase
  • Get number of rows in result

fbsql_num_rows

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_num_rows — Get number of rows in result

Описание

int fbsql_num_rows ( resource $result )

Gets the number of rows in the given result set.

This function is only valid for SELECT statements. To retrieve the number of rows returned from a INSERT, UPDATE or DELETE query, use fbsql_affected_rows().

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns the number of rows returned by the last SELECT statement.

Примеры

Пример #1 fbsql_num_rows() example

<?php

$link = fbsql_connect("localhost", "username", "password");
fbsql_select_db("database", $link);

$result = fbsql_query("SELECT * FROM table1;", $link);
$num_rows = fbsql_num_rows($result);

echo "$num_rows Rows\n";

?>

Смотрите также

  • fbsql_affected_rows() - Возвращает число затронутых строк в предыдущем FrontBase действии
  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_select_db() - Select a FrontBase database
  • fbsql_query() - Send a FrontBase query


Get or set the user password used with a connection

  • « fbsql_num_rows
  • fbsql_pconnect »
  • PHP Manual
  • Функции FrontBase
  • Get or set the user password used with a connection

fbsql_password

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_password — Get or set the user password used with a connection

Описание

string fbsql_password ( resource $link_identifier [, string $password ] )

Get or set the user password used with a connection.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

password

If provided, this will be the new connection password.

Возвращаемые значения

Returns the current password used for the connection.

Смотрите также

  • fbsql_username() - Get or set the username for the connection
  • fbsql_hostname() - Get or set the host name used with a connection


Open a persistent connection to a FrontBase Server

  • « fbsql_password
  • fbsql_query »
  • PHP Manual
  • Функции FrontBase
  • Open a persistent connection to a FrontBase Server

fbsql_pconnect

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_pconnect — Open a persistent connection to a FrontBase Server

Описание

 resource fbsql_pconnect
  ([ string $hostname = ini_get("fbsql.default_host")
 [, string $username = ini_get("fbsql.default_user")
 [, string $password = ini_get("fbsql.default_password")
]]] )

Establishes a persistent connection to a FrontBase server.

To set the server port number, use fbsql_select_db().

fbsql_pconnect() acts very much like fbsql_connect() with two major differences:

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use.

This type of links is therefore called 'persistent'.

Список параметров

hostname

The server host name.

username

The user name for the connection.

password

The password for the connection.

Возвращаемые значения

Returns a positive FrontBase persistent link identifier on success, or FALSE on error.

Смотрите также

  • fbsql_connect() - Open a connection to a FrontBase Server


Send a FrontBase query

  • « fbsql_pconnect
  • fbsql_read_blob »
  • PHP Manual
  • Функции FrontBase
  • Send a FrontBase query

fbsql_query

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_query — Send a FrontBase query

Описание

resource fbsql_query ( string $query [, resource $link_identifier [, int $batch_size ]] )

Sends a query to the currently active database on the server.

If the query succeeds, you can call fbsql_num_rows() to find out how many rows were returned for a SELECT statement or fbsql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.

Список параметров

query

The SQL query to be executed.

Замечание:

The query string shall always end with a semicolon.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

batch_size

Возвращаемые значения

fbsql_query() returns TRUE (non-zero) or FALSE to indicate whether or not the query succeeded. A return value of TRUE means that the query was legal and could be executed by the server. It does not indicate anything about the number of rows affected or returned. It is perfectly possible for a query to succeed but affect no rows or return no rows.

For SELECT statements, fbsql_query() returns a new result identifier that you can pass to fbsql_result().

fbsql_query() will also fail and return FALSE if you don't have permission to access the table(s) referenced by the query.

Примеры

The following query is syntactically invalid, so fbsql_query() fails and returns FALSE:

Пример #1 fbsql_query() example

<?php
$result = fbsql_query("SELECT * WHERE 1=1")
    or die ("Invalid query");
?>

The following query is semantically invalid if my_col is not a column in the table my_tbl, so fbsql_query() fails and returns FALSE:

Пример #2 fbsql_query() example

<?php
$result = fbsql_query ("SELECT my_col FROM my_tbl;")
    or die ("Invalid query");
?>

Смотрите также

  • fbsql_affected_rows() - Возвращает число затронутых строк в предыдущем FrontBase действии
  • fbsql_db_query() - Send a FrontBase query
  • fbsql_free_result() - Free result memory
  • fbsql_result() - Get result data
  • fbsql_select_db() - Select a FrontBase database
  • fbsql_connect() - Open a connection to a FrontBase Server


Read a BLOB from the database

  • « fbsql_query
  • fbsql_read_clob »
  • PHP Manual
  • Функции FrontBase
  • Read a BLOB from the database

fbsql_read_blob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_read_blob — Read a BLOB from the database

Описание

string fbsql_read_blob ( string $blob_handle [, resource $link_identifier ] )

Reads BLOB data from the database.

If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_blob() to get the actual BLOB data from the database.

Список параметров

blob_handle

A BLOB handle, returned by fbsql_create_blob().

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a string containing the specified BLOB data.

Примеры

Пример #1 fbsql_read_blob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$sql = "SELECT BLOB_COLUMN FROM BLOB_TABLE;";
$rs = fbsql_query($sql, $link);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain the blob data for the first row
fbsql_free_result($rs);

$rs = fbsql_query($sql, $link);
fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain a handle to the BLOB data in the first row
$blob_data = fbsql_read_blob($row_data[0]);
fbsql_free_result($rs);

?>

Смотрите также

  • fbsql_create_blob() - Create a BLOB
  • fbsql_read_clob() - Read a CLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set


Read a CLOB from the database

  • « fbsql_read_blob
  • fbsql_result »
  • PHP Manual
  • Функции FrontBase
  • Read a CLOB from the database

fbsql_read_clob

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_read_clob — Read a CLOB from the database

Описание

string fbsql_read_clob ( string $clob_handle [, resource $link_identifier ] )

Reads CLOB data from the database.

If a select statement contains BLOB and/or CLOB columns FrontBase will return the data directly when data is fetched. This default behavior can be changed with fbsql_set_lob_mode() so the fetch functions will return handles to BLOB and CLOB data. If a handle is fetched a user must call fbsql_read_clob() to get the actual CLOB data from the database.

Список параметров

clob_handle

A CLOB handle, returned by fbsql_create_clob().

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Returns a string containing the specified CLOB data.

Примеры

Пример #1 fbsql_read_clob() example

<?php
$link = fbsql_pconnect("localhost", "_SYSTEM", "secret")
    or die("Could not connect");
$sql = "SELECT CLOB_COLUMN FROM CLOB_TABLE;";
$rs = fbsql_query($sql, $link);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain the clob data for the first row
fbsql_free_result($rs);

$rs = fbsql_query($sql, $link);
fbsql_set_lob_mode($rs, FBSQL_LOB_HANDLE);
$row_data = fbsql_fetch_row($rs);
// $row_data[0] will now contain a handle to the CLOB data in the first row
$clob_data = fbsql_read_clob($row_data[0]);
fbsql_free_result($rs);

?>

Смотрите также

  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_set_lob_mode() - Set the LOB retrieve mode for a FrontBase result set


Get result data

  • « fbsql_read_clob
  • fbsql_rollback »
  • PHP Manual
  • Функции FrontBase
  • Get result data

fbsql_result

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_result — Get result data

Описание

mixed fbsql_result ( resource $result [, int $row [, mixed $field ]] )

Returns the contents of one cell from a FrontBase result set.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than fbsql_result().

Calls to fbsql_result() should not be mixed with calls to other functions that deal with the result set.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

row

field

Can be the field's offset, or the field's name, or the field's table dot field's name (tablename.fieldname).

If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

Замечание:

Specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Возвращаемые значения

Смотрите также

Recommended high-performance alternatives:

  • fbsql_fetch_row() - Get a result row as an enumerated array
  • fbsql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • fbsql_fetch_assoc() - Fetch a result row as an associative array
  • fbsql_fetch_object() - Fetch a result row as an object


Rollback a transaction to the database

  • « fbsql_result
  • fbsql_rows_fetched »
  • PHP Manual
  • Функции FrontBase
  • Rollback a transaction to the database

fbsql_rollback

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_rollback — Rollback a transaction to the database

Описание

bool fbsql_rollback ([ resource $link_identifier ] )

Ends the current transaction by rolling back all statements issued since last commit.

This command is only needed if autocommit is set to false.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_autocommit() - Enable or disable autocommit
  • fbsql_commit() - Commits a transaction to the database


Get the number of rows affected by the last statement

  • « fbsql_rollback
  • fbsql_select_db »
  • PHP Manual
  • Функции FrontBase
  • Get the number of rows affected by the last statement

fbsql_rows_fetched

(PHP 5 >= 5.1.0, PHP 7)

fbsql_rows_fetched — Get the number of rows affected by the last statement

Описание

int fbsql_rows_fetched ( resource $result )

Gets the number of rows affected by the last statement.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

Возвращаемые значения

Returns the number of rows, as an integer.


Select a FrontBase database

  • « fbsql_rows_fetched
  • fbsql_set_characterset »
  • PHP Manual
  • Функции FrontBase
  • Select a FrontBase database

fbsql_select_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_select_db — Select a FrontBase database

Описание

bool fbsql_select_db ([ string $database_name [, resource $link_identifier ]] )

Sets the current active database on the given link identifier.

The client contacts FBExec to obtain the port number to use for the connection to the database. If the database name is a number the system will use that as a port number and it will not ask FBExec for the port number. The FrontBase server can be stared as FRontBase -FBExec=No -port=<port number> <database name>.

Every subsequent call to fbsql_query() will be made on the active database.

Список параметров

database_name

The name of the database to be selected.

If the database is protected with a database password, the you must call fbsql_database_password() before selecting the database.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_connect() - Open a connection to a FrontBase Server
  • fbsql_pconnect() - Open a persistent connection to a FrontBase Server
  • fbsql_database_password() - Sets or retrieves the password for a FrontBase database
  • fbsql_query() - Send a FrontBase query


Change input/output character set

  • « fbsql_select_db
  • fbsql_set_lob_mode »
  • PHP Manual
  • Функции FrontBase
  • Change input/output character set

fbsql_set_characterset

(PHP 5 >= 5.1.0, PHP 7)

fbsql_set_characterset — Change input/output character set

Описание

void fbsql_set_characterset ( resource $link_identifier , int $characterset [, int $in_out_both ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Set the LOB retrieve mode for a FrontBase result set

  • « fbsql_set_characterset
  • fbsql_set_password »
  • PHP Manual
  • Функции FrontBase
  • Set the LOB retrieve mode for a FrontBase result set

fbsql_set_lob_mode

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_set_lob_mode — Set the LOB retrieve mode for a FrontBase result set

Описание

bool fbsql_set_lob_mode ( resource $result , int $lob_mode )

Sets the mode for retrieving LOB data from the database.

When BLOB and CLOB data is retrieved in FrontBase it can be retrieved direct or indirect. Direct retrieved LOB data will always be fetched no matter the setting of the lob mode. If the LOB data is less than 512 bytes it will always be retrieved directly.

Список параметров

result

Идентификатор результата запроса, полученный из fbsql_query() или fbsql_db_query().

lob_mode

Can be one of:

  • FBSQL_LOB_DIRECT - LOB data is retrieved directly. When data is fetched from the database with fbsql_fetch_row(), and other fetch functions, all CLOB and BLOB columns will be returned as ordinary columns. This is the default value on a new FrontBase result.
  • FBSQL_LOB_HANDLE - LOB data is retrieved as handles to the data. When data is fetched from the database with fbsql_fetch_row(), and other fetch functions, LOB data will be returned as a handle to the data if the data is stored indirect or the data if it is stored direct. If a handle is returned it will be a 27 byte string formatted as @'000000000000000000000000'.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_create_blob() - Create a BLOB
  • fbsql_create_clob() - Create a CLOB
  • fbsql_read_blob() - Read a BLOB from the database
  • fbsql_read_clob() - Read a CLOB from the database


Change the password for a given user

  • « fbsql_set_lob_mode
  • fbsql_set_transaction »
  • PHP Manual
  • Функции FrontBase
  • Change the password for a given user

fbsql_set_password

(PHP 5, PHP 7)

fbsql_set_password — Change the password for a given user

Описание

bool fbsql_set_password ( resource $link_identifier , string $user , string $password , string $old_password )

Changes the password for the given user.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

user

The user name.

password

The new password to be set.

old_password

The old password to be replaced.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set the transaction locking and isolation

  • « fbsql_set_password
  • fbsql_start_db »
  • PHP Manual
  • Функции FrontBase
  • Set the transaction locking and isolation

fbsql_set_transaction

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_set_transaction — Set the transaction locking and isolation

Описание

void fbsql_set_transaction ( resource $link_identifier , int $locking , int $isolation )

Sets the transaction locking and isolation.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

locking

The type of locking to be set. It can be one of the following constants: FBSQL_LOCK_DEFERRED, FBSQL_LOCK_OPTIMISTIC, or FBSQL_LOCK_PESSIMISTIC.

isolation

The type of isolation to be set. It can be one of the following constants: FBSQL_ISO_READ_UNCOMMITTED, FBSQL_ISO_READ_COMMITTED, FBSQL_ISO_REPEATABLE_READ, FBSQL_ISO_SERIALIZABLE, or FBSQL_ISO_VERSIONED.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Start a database on local or remote server

  • « fbsql_set_transaction
  • fbsql_stop_db »
  • PHP Manual
  • Функции FrontBase
  • Start a database on local or remote server

fbsql_start_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_start_db — Start a database on local or remote server

Описание

bool fbsql_start_db ( string $database_name [, resource $link_identifier [, string $database_options ]] )

Start a database on local or remote server.

Список параметров

database_name

The database name.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

database_options

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_db_status() - Get the status for a given database
  • fbsql_stop_db() - Stop a database on local or remote server


Stop a database on local or remote server

  • « fbsql_start_db
  • fbsql_table_name »
  • PHP Manual
  • Функции FrontBase
  • Stop a database on local or remote server

fbsql_stop_db

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_stop_db — Stop a database on local or remote server

Описание

bool fbsql_stop_db ( string $database_name [, resource $link_identifier ] )

Stops a database on local or remote server.

Список параметров

database_name

The database name.

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fbsql_db_status() - Get the status for a given database
  • fbsql_start_db() - Start a database on local or remote server


Get table name of field

  • « fbsql_stop_db
  • fbsql_tablename »
  • PHP Manual
  • Функции FrontBase
  • Get table name of field

fbsql_table_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_table_name — Get table name of field

Описание

string fbsql_table_name ( resource $result , int $index )

fbsql_table_name() gets the name of the current table in the given result set.

The fbsql_num_rows() function may be used to determine the number of tables in the result pointer.

Список параметров

result

A result pointer returned by fbsql_list_tables().

index

Integer index for the current table.

Возвращаемые значения

Returns the name of the table, as a string.

Примеры

Пример #1 fbsql_table_name() example

<?php
fbsql_connect("localhost", "_SYSTEM", "");
$result = fbsql_list_tables("wisconsin");
$i = 0;
while ($i < fbsql_num_rows($result)) {
    $tb_names[$i] = fbsql_table_name($result, $i);
    echo $tb_names[$i] . "<br />";
    $i++;
}
?>


Псевдоним fbsql_table_name

  • « fbsql_table_name
  • fbsql_username »
  • PHP Manual
  • Функции FrontBase
  • Псевдоним fbsql_table_name

fbsql_tablename

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fbsql_tablename — Псевдоним fbsql_table_name()

Описание

Эта функция является псевдонимом: fbsql_table_name().


Get or set the username for the connection

  • « fbsql_tablename
  • fbsql_warnings »
  • PHP Manual
  • Функции FrontBase
  • Get or set the username for the connection

fbsql_username

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_username — Get or set the username for the connection

Описание

string fbsql_username ( resource $link_identifier [, string $username ] )

Get or set the username used for the connection.

Список параметров

link_identifier

Идентификатор соединения FrontBase, полученный из fbsql_connect() или fbsql_pconnect().

Если он не был указан, то функция попытается найти открытое соединение к серверу FrontBase, в случае неудачи попытается создать новое, как если бы fbsql_connect() была вызвана без аргументов.

username

If provided, this is the new username to set.

Возвращаемые значения

Returns the current username used with the connection, as a string.

Смотрите также

  • fbsql_password() - Get or set the user password used with a connection
  • fbsql_hostname() - Get or set the host name used with a connection


Enable or disable FrontBase warnings

  • « fbsql_username
  • IBM DB2 »
  • PHP Manual
  • Функции FrontBase
  • Enable or disable FrontBase warnings

fbsql_warnings

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

fbsql_warnings — Enable or disable FrontBase warnings

Описание

bool fbsql_warnings ([ bool $OnOff ] )

Enables or disables FrontBase warnings.

Список параметров

OnOff

Whether to enable warnings or no.

Возвращаемые значения

Returns TRUE if warnings is turned on, FALSE otherwise.

Смотрите также

  • fbsql_errno() - Returns the error number from previous operation
  • fbsql_error() - Returns the error message from previous operation


IBM DB2, Cloudscape и Apache Derby

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции IBM DB2
    • db2_autocommit — Возвращает или устанавливает режим автоподтверждения транзакций для соединения
    • db2_bind_param — Binds a PHP variable to an SQL statement parameter
    • db2_client_info — Возвращает объект со свойствами, описывающими клиента DB2
    • db2_close — Закрывает соединение с базой данных
    • db2_column_privileges — Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
    • db2_columns — Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
    • db2_commit — Подтверждает транзакцию
    • db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt
    • db2_conn_errormsg — Returns the last connection error message and SQLCODE value
    • db2_connect — Returns a connection to a database
    • db2_cursor_type — Возвращает тип курсора, который используется в ресурсе оператора
    • db2_escape_string — Используется для экранирования некоторых символов
    • db2_exec — Executes an SQL statement directly
    • db2_execute — Executes a prepared SQL statement
    • db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set
    • db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set
    • db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set
    • db2_fetch_object — Returns an object with properties representing columns in the fetched row
    • db2_fetch_row — Sets the result set pointer to the next row or requested row
    • db2_field_display_size — Returns the maximum number of bytes required to display a column
    • db2_field_name — Returns the name of the column in the result set
    • db2_field_num — Returns the position of the named column in a result set
    • db2_field_precision — Returns the precision of the indicated column in a result set
    • db2_field_scale — Returns the scale of the indicated column in a result set
    • db2_field_type — Returns the data type of the indicated column in a result set
    • db2_field_width — Returns the width of the current value of the indicated column in a result set
    • db2_foreign_keys — Returns a result set listing the foreign keys for a table
    • db2_free_result — Frees resources associated with a result set
    • db2_free_stmt — Frees resources associated with the indicated statement resource
    • db2_get_option — Retrieves an option value for a statement resource or a connection resource
    • db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection
    • db2_lob_read — Gets a user defined size of LOB files with each invocation
    • db2_next_result — Requests the next result set from a stored procedure
    • db2_num_fields — Возвращает количество полей в результирующем наборе
    • db2_num_rows — Returns the number of rows affected by an SQL statement
    • db2_pclose — Closes a persistent database connection
    • db2_pconnect — Returns a persistent connection to a database
    • db2_prepare — Prepares an SQL statement to be executed
    • db2_primary_keys — Returns a result set listing primary keys for a table
    • db2_procedure_columns — Returns a result set listing stored procedure parameters
    • db2_procedures — Returns a result set listing the stored procedures registered in a database
    • db2_result — Returns a single column from a row in the result set
    • db2_rollback — Откатывает транзакцию
    • db2_server_info — Returns an object with properties that describe the DB2 database server
    • db2_set_option — Установка опции для соединения или ресурса оператора
    • db2_special_columns — Returns a result set listing the unique row identifier columns for a table
    • db2_statistics — Returns a result set listing the index and statistics for a table
    • db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement
    • db2_stmt_errormsg — Returns a string containing the last SQL statement error message
    • db2_table_privileges — Returns a result set listing the tables and associated privileges in a database
    • db2_tables — Returns a result set listing the tables and associated metadata in a database


Введение

Эти функции позволят вам получить доступ к базам данных IBM DB2 Universal Database, IBM Cloudscape и Apache Derby, используя DB2 Call Level Interface (DB2 CLI).


Требования

Для соединения с IBM DB2 Universal Database под Linux, UNIX и Windows, IBM Cloudscape или Apache Derby, вы должны установить клиента IBM DB2 Universal Database на той же машине, где будет работать PHP. Это расширение разрабатывалось и тестировалось с DB2 версии 8.2.

Для соединения с IBM DB2 Universal Database под z/OS или iSeries, вам нужен IBM DB2 Connect или эквивалентное ПО, способное быть шлюзом DRDA.

Требования под Linux или Unix

Для доступа к функциям расширения из PHP, вам необходимо сначала задать экземпляр DB2, с которым вы будете работать. Его можно задать в php.ini с помощью опции ibm_db2.instance_name, или вы можете создать профиль экземпляра DB2.

Если вы, к примеру, создадите экземпляр DB2 с именем db2inst1 в /home/db2inst1/, вы можете добавить следующую запись в php.ini:

ibm_db2.instance_name=db2inst1
Если вы не задали имя экземпляра php.ini, вы должны выполнить следующую команду, изменяющую переменные окружения, для доступа к DB2:
bash$ source /home/db2inst1/sqllib/db2profile
Для разрешения доступа вашеву веб-серверу к функциям этого расширения, вы должны либо задать опцию ibm_db2.instance_name в php.ini, либо обеспечить выставление соответствующих переменных окружения DB2 в вашем скрипте запуска веб-сервера (обычно это /etc/init.d/httpd или /etc/init.d/apache).


Установка

Для сборки расширения ibm_db2, сначала необходимо установить разработческие библиотеки и заголовочные файлы DB2. DB2 не устанавлиыает их по умолчанию, так что вам придется запустить пакет установки DB2 и добавить эти опции. Заголовочные файлы включены в DB2 Application Development Client, доступный для свободного скачивания с » сайта поддержки IBM DB2 Universal Database.

Если вы добавили необходимые библиотеки и заголовочные файлы на Linux или Unix системе, где уже была установлена база DB2, вам будет нужно запустить команду db2iupdt -e для обновления символических ссылок на них в вашем экземпляре DB2.

ibm_db2 является расширением » PECL, так что действуйте в соответствии с инструкциями Установка расширений PECL для его установки. Используйте команду configure для задания расположения библиотек и заголовочных файлов DB2, таким образом:

bash$ ./configure --with-IBM_DB2=/path/to/DB2
По умолчанию, configure использует путь /opt/IBM/db2/V8.1.

Замечание: Замечание для пользователей IIS

Если вы используете драйвер ibm_db2 с Microsoft Internet Information Server (IIS), вы должны сделать следующее:

  • Установите DB2 с расширенной безопасностью операционной системы.
  • Добавьте путь к исполняемому файлу PHP в системную переменную окружения PATH (по умолчанию C:\php\).
  • Создайте еще одну системную переменную окружения, содержащую путь к PHP.INI (например: PHPRC = C:\php\).
  • Добавьте IUSR_COMPUTERNAME в группу DB2USERS.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

ibm_db2 Опции настройки
Имя | По умолчанию | Меняемо | Лог изменений
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.i5_all_pconnect | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.4.9.
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.5.0.
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM | Доступно с ibm_db2 1.0.2.
ibm_db2.i5_ignore_userid | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.8.0.

Краткое разъяснение конфигурационных директив.

ibm_db2.binmode integer

Эта опция контролирует режим конвертации из/в бинарные данные в приложении PHP.

  • 1 (DB2_BINARY)

  • 2 (DB2_CONVERT)

  • 3 (DB2_PASSTHRU)

ibm_db2.i5_all_pconnect integer

Эта опция полностью переопределяет поведение i5 db2_connect(). Если ibm_db2.i5_all_pconnect = 1, все соединения с DB2 будут постоянными (db2_pconnect()). На i5/OS использовать db2_pconnect() гораздо, категорически, лучше чем db2_connect(). Эта установка переопределяет db2_connect() таким образом, что всегда вызывается db2_pconnect(), что позволяет не переписывать код приложения.

  • 0 - db2_connect() работает штатно

  • 1 - db2_connect() работает как db2_pconnect()

ibm_db2.i5_allow_commit integer

Эта опция контролирует уровень изоляции, используемый для i5 схемы коллекций в приложении PHP (смотри i5_commit для переопределения).

  • 0 - контроль обязательств не используется.

  • 1 - read uncommitted, возможно грязное чтение.

  • 2 - read committed, грязное чтение не возможно.

  • 3 - repeatable read, грязное и неповторяющееся чтение не возможны.

  • 4 - serializeable, грязное чтение, неповторяющееся чтение и фантомы не возможны.

ibm_db2.i5_dbcs_alloc integer

Эта опция контролирует внутреннют схему расположения для больших буферов колонок DBCS.

  • 0 - нет расширенного размещения (смотри i5_dbcs_alloc для переопределения)

  • 1 - использовать расширенное размещение (смотри i5_dbcs_alloc для переопределения)

ibm_db2.instance_name string

В операционных системах Linux и UNIX, эта опция задает имя экземпляра для использования каталогизированных соединений с базой данных. Если эта опция определена, ее значение используется вместо значения переменной окружения DB2INSTANCE.

Эта опция игнорируется в Windows .

ibm_db2.i5_ignore_userid integer

Эта опция переопределяет userid и password для i5 db2_(p)connect в приложении PHP. Если ibm_db2.i5_ignore_userid = 1, все соединения будут происходить с userid=NULL и password=NULL. Следовательно задания Apache будут соединяться с текущим профайлом (NOBODY). Используйте это переопределение только для простых вебсайтов, не требующих переключения профайлов и, следовательно, сможете избежать всех накладных расходов связанных с дополнительными задачами QSQSRVR. Это простое решение для обнуления userid и password без внесения изменений в код PHP. Это переопределение можно использовать вместе с ibm_db2.i5_all_pconnect = 1.

  • 0 - db2_(p)connect использует переданные userid и password

  • 1 - db2_(p)connect считает userid и password за NULL


Типы ресурсов

Расширение ibm_db2 возвращает три типа ресурсов: ресурс соединения, ресурс оператора и ресурс результирующего набора.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

DB2_BINARY (integer)
Указывает, что бинарные данные должны быть возвращены как есть. Этот режим используется по умолчанию.
DB2_CONVERT (integer)
Указывает, что бинарные данные должны конвертироваться в шестнадцатеричный формат и возвращаться как строка ASCII.
DB2_PASSTHRU (integer)
Указывает, что бинарные данные должны быть конвертированы в NULL.
DB2_SCROLLABLE (integer)
Курсор "scrollable" - перематываемый. Этот режим разрешает случайный доступ к строкам в результирующем наборе, но в данный момент поддерживается только для IBM DB2 Universal Database.
DB2_FORWARD_ONLY (integer)
Курсор "forward-only" - только вперед. Используется по умолчанию и поддерживается всеми серверами баз данных.
DB2_PARAM_IN (integer)
Указанная переменная PHP должна быть привязана как параметр IN для хранимой процедуры.
DB2_PARAM_OUT (integer)
Указанная переменная PHP должна быть привязана как параметр OUT для хранимой процедуры.
DB2_PARAM_INOUT (integer)
Указанная переменная PHP должна быть привязана как параметр INOUT для хранимой процедуры.
DB2_PARAM_FILE (integer)
Указывает, что столбец должен быть привязан непосредственно к файлу для ввода.
DB2_AUTOCOMMIT_ON (integer)
Указывает, что необходимо включить режим автоподтверждения транзакции.
DB2_AUTOCOMMIT_OFF (integer)
Указывает, что необходимо отключить режим автоподтверждения транзакции.
DB2_DOUBLE (integer)
Указывает, что переменная должна быть связана как тип данных DOUBLE, FLOAT или REAL.
DB2_LONG (integer)
Указывает, что переменная должна быть связана как тип данных SMALLINT, INTEGER или BIGINT.
DB2_CHAR (integer)
Указывает, что переменная должна быть связана как тип данных CHAR или VARCHAR.
DB2_CASE_NATURAL (integer)
Указывает, что имена столбцов должны возвращаться как есть, без изменения регистра символов.
DB2_CASE_LOWER (integer)
Указывает, что имена столбцов должны возвращаться в нижнем регистре.
DB2_CASE_UPPER (integer)
Указывает, что имена столбцов должны возвращаться в верхнем регистре.
DB2_DEFERRED_PREPARE_ON (integer)
Указывает, что для данного ресурса оператора должен быть включен режим отложенной подготовки запроса.
DB2_DEFERRED_PREPARE_OFF (integer)
Указывает, что для данного ресурса оператора должен быть отключен режим отложенной подготовки запроса.


Функции IBM DB2

Содержание

  • db2_autocommit — Возвращает или устанавливает режим автоподтверждения транзакций для соединения
  • db2_bind_param — Binds a PHP variable to an SQL statement parameter
  • db2_client_info — Возвращает объект со свойствами, описывающими клиента DB2
  • db2_close — Закрывает соединение с базой данных
  • db2_column_privileges — Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns — Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_commit — Подтверждает транзакцию
  • db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg — Returns the last connection error message and SQLCODE value
  • db2_connect — Returns a connection to a database
  • db2_cursor_type — Возвращает тип курсора, который используется в ресурсе оператора
  • db2_escape_string — Используется для экранирования некоторых символов
  • db2_exec — Executes an SQL statement directly
  • db2_execute — Executes a prepared SQL statement
  • db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object — Returns an object with properties representing columns in the fetched row
  • db2_fetch_row — Sets the result set pointer to the next row or requested row
  • db2_field_display_size — Returns the maximum number of bytes required to display a column
  • db2_field_name — Returns the name of the column in the result set
  • db2_field_num — Returns the position of the named column in a result set
  • db2_field_precision — Returns the precision of the indicated column in a result set
  • db2_field_scale — Returns the scale of the indicated column in a result set
  • db2_field_type — Returns the data type of the indicated column in a result set
  • db2_field_width — Returns the width of the current value of the indicated column in a result set
  • db2_foreign_keys — Returns a result set listing the foreign keys for a table
  • db2_free_result — Frees resources associated with a result set
  • db2_free_stmt — Frees resources associated with the indicated statement resource
  • db2_get_option — Retrieves an option value for a statement resource or a connection resource
  • db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection
  • db2_lob_read — Gets a user defined size of LOB files with each invocation
  • db2_next_result — Requests the next result set from a stored procedure
  • db2_num_fields — Возвращает количество полей в результирующем наборе
  • db2_num_rows — Returns the number of rows affected by an SQL statement
  • db2_pclose — Closes a persistent database connection
  • db2_pconnect — Returns a persistent connection to a database
  • db2_prepare — Prepares an SQL statement to be executed
  • db2_primary_keys — Returns a result set listing primary keys for a table
  • db2_procedure_columns — Returns a result set listing stored procedure parameters
  • db2_procedures — Returns a result set listing the stored procedures registered in a database
  • db2_result — Returns a single column from a row in the result set
  • db2_rollback — Откатывает транзакцию
  • db2_server_info — Returns an object with properties that describe the DB2 database server
  • db2_set_option — Установка опции для соединения или ресурса оператора
  • db2_special_columns — Returns a result set listing the unique row identifier columns for a table
  • db2_statistics — Returns a result set listing the index and statistics for a table
  • db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg — Returns a string containing the last SQL statement error message
  • db2_table_privileges — Returns a result set listing the tables and associated privileges in a database
  • db2_tables — Returns a result set listing the tables and associated metadata in a database


Возвращает или устанавливает режим автоподтверждения транзакций для соединения

  • « Функции IBM DB2
  • db2_bind_param »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает или устанавливает режим автоподтверждения транзакций для соединения

db2_autocommit

(PECL ibm_db2 >= 1.0.0)

db2_autocommit — Возвращает или устанавливает режим автоподтверждения транзакций для соединения

Описание

mixed db2_autocommit ( resource $connection [, bool $value ] )

Возвращает или устанавливает режим автоподтверждения транзакций для указанного соединения.

Список параметров

connection

Переменная содержащая активный ресурс подключения, полученный с помощью db2_connect() или db2_pconnect().

value

Одна из следующих констант:

DB2_AUTOCOMMIT_OFF

Отключает автоподтверждение.

DB2_AUTOCOMMIT_ON

Включает автоподтверждение.

Возвращаемые значения

Если в db2_autocommit() передать только параметр connection, она вернет значение текущего режима для этого соединения в виде целого числа принимающего значение 0, если автоподтверждение отключено и 1, если включено.

Если в 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 == 0) {
    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 == 0) {
    print "$ac -- автоподтверждение включено.";
} else {
    print "$ac -- автоподтверждение отключено.";
}
?>

Результат выполнения данного примера:

Автоподтверждение успешно включено.
1 -- автоподтверждение включено.

Смотрите также

  • db2_connect() - Returns a connection to a database
  • db2_pconnect() - Returns a persistent connection to a database


Binds a PHP variable to an SQL statement parameter

  • « db2_autocommit
  • db2_client_info »
  • PHP Manual
  • Функции IBM DB2
  • Binds a PHP variable to an SQL statement parameter

db2_bind_param

(PECL ibm_db2 >= 1.0.0)

db2_bind_param — Binds a PHP variable to an SQL statement parameter

Описание

bool db2_bind_param ( resource $stmt , int $parameter-number , string $variable-name [, int $parameter-type [, int $data-type = 0 [, int $precision = -1 [, int $scale = 0 ]]]] )

Binds a PHP variable to an SQL statement parameter in a statement resource returned by db2_prepare(). This function gives you more control over the parameter type, data type, precision, and scale for the parameter than simply passing the variable as part of the optional input array to db2_execute().

Список параметров

stmt

A prepared statement returned from db2_prepare().

parameter-number

Specifies the 1-indexed position of the parameter in the prepared statement.

variable-name

A string specifying the name of the PHP variable to bind to the parameter specified by parameter-number.

parameter-type

A constant specifying whether the PHP variable should be bound to the SQL parameter as an input parameter (DB2_PARAM_IN), an output parameter (DB2_PARAM_OUT), or as a parameter that accepts input and returns output (DB2_PARAM_INOUT). To avoid memory overhead, you can also specify DB2_PARAM_FILE to bind the PHP variable to the name of a file that contains large object (BLOB, CLOB, or DBCLOB) data.

data-type

A constant specifying the SQL data type that the PHP variable should be bound as: one of DB2_BINARY, DB2_CHAR, DB2_DOUBLE, or DB2_LONG .

precision

Specifies the precision with which the variable should be bound to the database. This parameter can also be used for retrieving XML output values from stored procedures. A non-negative value specifies the maximum size of the XML data that will be retrieved from the database. If this parameter is not used, a default of 1MB will be assumed for retrieving the XML output value from the stored procedure.

scale

Specifies the scale with which the variable should be bound to the database.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Binding PHP variables to a prepared statement

The SQL statement in the following example uses two input parameters in the WHERE clause. We call db2_bind_param() to bind two PHP variables to the corresponding SQL parameters. Notice that the PHP variables do not have to be declared or assigned before the call to db2_bind_param(); in the example, $lower_limit is assigned a value before the call to db2_bind_param(), but $upper_limit is assigned a value after the call to db2_bind_param(). The variables must be bound and, for parameters that accept input, must have any value assigned, before calling db2_execute().

<?php

$sql = 'SELECT name, breed, weight FROM animals
    WHERE weight > ? AND weight < ?';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

// We can declare the variable before calling db2_bind_param()
$lower_limit = 1;

db2_bind_param($stmt, 1, "lower_limit", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "upper_limit", DB2_PARAM_IN);

// We can also declare the variable after calling db2_bind_param()
$upper_limit = 15.0;

if (db2_execute($stmt)) {
    while ($row = db2_fetch_array($stmt)) {
        print "{$row[0]}, {$row[1]}, {$row[2]}\n";
    }
}
?>

Результат выполнения данного примера:

Pook, cat, 3.2
Rickety Ride, goat, 9.7
Peaches, dog, 12.3

Пример #2 Calling stored procedures with IN and OUT parameters

The stored procedure match_animal in the following example accepts three different parameters:

  1. an input (IN) parameter that accepts the name of the first animal as input

  2. an input-output (INOUT) parameter that accepts the name of the second animal as input and returns the string TRUE if an animal in the database matches that name

  3. an output (OUT) parameter that returns the sum of the weight of the two identified animals

In addition, the stored procedure returns a result set consisting of the animals listed in alphabetic order starting at the animal corresponding to the input value of the first parameter and ending at the animal corresponding to the input value of the second parameter.

<?php

$sql = 'CALL match_animal(?, ?, ?)';
$conn = db2_connect($database, $user, $password);
$stmt = db2_prepare($conn, $sql);

$name = "Peaches";
$second_name = "Rickety Ride";
$weight = 0;

db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
db2_bind_param($stmt, 2, "second_name", DB2_PARAM_INOUT);
db2_bind_param($stmt, 3, "weight", DB2_PARAM_OUT);

print "Values of bound parameters _before_ CALL:\n";
print "  1: {$name} 2: {$second_name} 3: {$weight}\n\n";

if (db2_execute($stmt)) {
    print "Values of bound parameters _after_ CALL:\n";
    print "  1: {$name} 2: {$second_name} 3: {$weight}\n\n";

    print "Results:\n";
    while ($row = db2_fetch_array($stmt)) {
        print "  {$row[0]}, {$row[1]}, {$row[2]}\n";
    }
}
?>

Результат выполнения данного примера:

Values of bound parameters _before_ CALL:
  1: Peaches 2: Rickety Ride 3: 0

Values of bound parameters _after_ CALL:
  1: Peaches 2: TRUE 3: 22

Results:
  Peaches, dog, 12.3
  Pook, cat, 3.2
  Rickety Ride, goat, 9.7

Пример #3 Inserting a binary large object (BLOB) directly from a file

The data for large objects are typically stored in files, such as XML documents or audio files. Rather than reading an entire file into a PHP variable, and then binding that PHP variable into an SQL statement, you can avoid some memory overhead by binding the file directly to the input parameter of your SQL statement. The following example demonstrates how to bind a file directly into a BLOB column.

<?php
$stmt = db2_prepare($conn, "INSERT INTO animal_pictures(picture) VALUES (?)");

$picture = "/opt/albums/spook/grooming.jpg";
$rc = db2_bind_param($stmt, 1, "picture", DB2_PARAM_FILE);
$rc = db2_execute($stmt);
?>

Смотрите также

  • db2_execute() - Executes a prepared SQL statement
  • db2_prepare() - Prepares an SQL statement to be executed


Возвращает объект со свойствами, описывающими клиента DB2

  • « db2_bind_param
  • db2_close »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает объект со свойствами, описывающими клиента DB2

db2_client_info

(PECL ibm_db2 >= 1.1.1)

db2_client_info — Возвращает объект со свойствами, описывающими клиента DB2

Описание

object db2_client_info ( resource $connection )

Эта функция возвращает объект с доступными только на чтение свойствами, возвращающими информацию о клиенте DB2. Эти свойства перечислены в следующей таблице:

Свойства клиента DB2
Имя свойства | Возвращаемый тип | Описание
APPL_CODEPAGE | int | Кодовая страница приложения.
CONN_CODEPAGE | int | Кодовая страница текущего соединения.
DATA_SOURCE_NAME | string | Имя источника данных (DSN) использовавшееся для создания текущего соединения.
DRIVER_NAME | string | Имя библиотеки реализующей спецификацию DB2 Call Level Interface (CLI).
DRIVER_ODBC_VER | string | Версия ODBC, которую поддерживает клиент DB2. Возвращает строку "MM.mm", где MM - мажор, а mm - минор. Клиент DB2 всегда возвращает "03.51".
DRIVER_VER | string | Версия клиента в виде строки "MM.mm.uuuu", где MM - мажор, mm - минор, а uuuu - уровень обновления. К примеру, "08.02.0001" означает мажорную версию 8, минорную 2 и уровень обновления 1.
ODBC_SQL_CONFORMANCE string

Уровень поддержки клиентом грамматики ODBC SQL:

MINIMUM

Минимальная поддержка грамматики ODBC SQL.

CORE

Базовая поддержка грамматики ODBC SQL.

EXTENDED

Расширенная поддержка грамматики ODBC SQL.

ODBC_VER | string | Версия ODBC, которую поддерживает драйвер ODBC. Возвращает строку формата "MM.mm.rrrr", где MM - мажор, mm - минор и rrrr - версия релиза. Клиент DB2 всегда возвращает "03.01.0000".

Список параметров

connection

Задает активное соединение DB2.

Возвращаемые значения

В случае успеха возвращает объект, иначе FALSE.

Примеры

Пример #1 Пример использования db2_client_info()

Для получения информации вы должны передать корректный ресурс соединения в db2_client_info().

<?php
$conn = db2_connect( 'SAMPLE', 'db2inst1', 'ibmdb2' );
$client = db2_client_info( $conn );

if ($client) {
    echo "DRIVER_NAME: ";           var_dump( $client->DRIVER_NAME );
    echo "DRIVER_VER: ";            var_dump( $client->DRIVER_VER );
    echo "DATA_SOURCE_NAME: ";      var_dump( $client->DATA_SOURCE_NAME );
    echo "DRIVER_ODBC_VER: ";       var_dump( $client->DRIVER_ODBC_VER );
    echo "ODBC_VER: ";              var_dump( $client->ODBC_VER );
    echo "ODBC_SQL_CONFORMANCE: ";  var_dump( $client->ODBC_SQL_CONFORMANCE );
    echo "APPL_CODEPAGE: ";         var_dump( $client->APPL_CODEPAGE );
    echo "CONN_CODEPAGE: ";         var_dump( $client->CONN_CODEPAGE );
}
else {
    echo "Error retrieving client information.
     Perhaps your database connection was invalid.";
}
db2_close($conn);

?>

Результат выполнения данного примера:

DRIVER_NAME: string(8) "libdb2.a"
DRIVER_VER: string(10) "08.02.0001"
DATA_SOURCE_NAME: string(6) "SAMPLE"
DRIVER_ODBC_VER: string(5) "03.51"
ODBC_VER: string(10) "03.01.0000"
ODBC_SQL_CONFORMANCE: string(8) "EXTENDED"
APPL_CODEPAGE: int(819)
CONN_CODEPAGE: int(819)

Смотрите также

  • db2_server_info() - Returns an object with properties that describe the DB2 database server


Закрывает соединение с базой данных

  • « db2_client_info
  • db2_column_privileges »
  • PHP Manual
  • Функции IBM DB2
  • Закрывает соединение с базой данных

db2_close

(PECL ibm_db2 >= 1.0.0)

db2_close — Закрывает соединение с базой данных

Описание

bool db2_close ( resource $connection )

Функция закрывает соединение с базой DB2, созданное с помощью db2_connect() и возвращает соответствующие ресурсы серверу баз данных.

Если вы попытаетесь закрыть постоянное соединение, созданное с помощью db2_pconnect(), то запрос на закрытие будет проигнорирован и соединение будет доступно для последующего использования.

Список параметров

connection

Активное соединение с DB2.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Закрытие соединения

Следующий пример демонстрирует успешную попытку закрыть соединение с IBM DB2, Cloudscape, или базой данных Apache Derby.

<?php
$conn = db2_connect('SAMPLE', 'db2inst1', 'ibmdb2');
$rc = db2_close($conn);
if ($rc) {
    echo "Соединение закрыто.";
}
?>

Результат выполнения данного примера:

Соединение закрыто.

Смотрите также

  • db2_connect() - Returns a connection to a database
  • db2_pclose() - Closes a persistent database connection
  • db2_pconnect() - Returns a persistent connection to a database


Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы

  • « db2_close
  • db2_columns »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы

db2_column_privileges

(PECL ibm_db2 >= 1.0.0)

db2_column_privileges — Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы

Описание

resource db2_column_privileges ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $column-name ]]]] )

Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы.

Список параметров

connection

Ресурс соединения с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз DB2, работающих на серверах OS/390 или z/OS. В остальных случаях указывайте NULL или пустую строку.

schema

Схема, содержащая таблицы. Для выбора всех схем укажите NULL или пустую строку.

table-name

Имя таблицы или представления. Для выбора всех таблиц укажите NULL или пустую строку.

column-name

Имя столбца. Для выбора всех столбцов укажите NULL или пустую строку.

Возвращаемые значения

Возвращает ресурс оператора с результирующим набором, содержащим строки, описывающие привилегии заданных условиями столбцов. Строки содержат следующие поля:

Имя столбца | Описание
TABLE_CAT | Имя каталога. Если таблица не имеет каталогов, то это поле будет содержать NULL.
TABLE_SCHEM | Имя схемы.
TABLE_NAME | Имя таблицы или представления.
COLUMN_NAME | Имя столбца.
GRANTOR | Идентификатор пользователя, установившего привилегию.
GRANTEE | Идентификатор пользователя, для которого установлена привилегия.
PRIVILEGE | Установленная привилегия.
IS_GRANTABLE | Может ли GRANTEE выдавать эту привилегию другим пользователям.

Смотрите также

  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы

  • « db2_column_privileges
  • db2_commit »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы

db2_columns

(PECL ibm_db2 >= 1.0.0)

db2_columns — Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы

Описание

resource db2_columns ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $column-name ]]]] )

Returns a result set listing the columns and associated metadata for a table.

Список параметров

connection

Ресурс соединения с базой данных IBM DB2, Cloudscape или Apache Derby.

qualifier

Квалификатор для баз DB2, работающих на серверах OS/390 или z/OS. В остальных случаях указывайте NULL или пустую строку.

schema

Схема, содержащая таблицы. Для выбора всех схем укажите '%'.

table-name

Имя таблицы или представления. Для выбора всех таблиц укажите NULL или пустую строку.

column-name

Имя столбца. Для выбора всех столбцов укажите NULL или пустую строку.

Возвращаемые значения

Возвращает ресурс оператора с результирующим набором, содержащим строки, описывающие заданные условиями столбцы. Строки содержат следующие поля:

Имя столбца | Описание
TABLE_CAT | Имя каталога. Если таблица не имеет каталогов, то это поле будет содержать NULL.
TABLE_SCHEM | Имя схемы.
TABLE_NAME | Имя таблицы или представления.
COLUMN_NAME | Имя столбца.
DATA_TYPE | Тип данных SQL в виде целого числа.
TYPE_NAME | Текстовое представление типа данных.
COLUMN_SIZE | Размер столбца в виде целого числа.
BUFFER_LENGTH | Максимальное количество байт, необходимое для хранения данных из этого столбца.
DECIMAL_DIGITS | Количество цифр после запятой, или NULL, если не применимо.
NUM_PREC_RADIX | Целое число, равное 10 (если длина числа измеряется в десятичных цифрах), 2 (если длина измеряется в битах), или NULL (если не применимо).
NULLABLE | Целое число, определяющее, может ли столбец принимать значение NULL.
REMARKS | Описание столбца.
COLUMN_DEF | Значение поля по умолчанию.
SQL_DATA_TYPE | Целое число, определяющее длину записи.
SQL_DATETIME_SUB | Возвращает целое число, описывающее подтип данных Datrtime или NULL, если не применимо.
CHAR_OCTET_LENGTH | Максимальная длина в октетах для символьных типов данных. Совпадает с COLUMN_SIZE для однобайтовых символьных данных или NULL для несимвольных данных.
ORDINAL_POSITION | Порядковый номер столбца в таблице. Начинаются с 1.
IS_NULLABLE | Строка равная 'YES', если столбец может быть NULL и 'NO', если нет.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Подтверждает транзакцию

  • « db2_columns
  • db2_conn_error »
  • PHP Manual
  • Функции IBM DB2
  • Подтверждает транзакцию

db2_commit

(PECL ibm_db2 >= 1.0.0)

db2_commit — Подтверждает транзакцию

Описание

bool db2_commit ( resource $connection )

Подтверждает текущую транзакцию на указанном соединении и начинает новую. По умолчанию, в PHP, используется автоподтверждение транзакций, так что функция db2_commit() нужна только в том случае, если вы принудительно отключили автоподтверждение транзакций для соединения.

Список параметров

connection

Переменная содержащая активный ресурс подключения, полученный с помощью db2_connect() или db2_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • db2_autocommit() - Возвращает или устанавливает режим автоподтверждения транзакций для соединения
  • db2_rollback() - Откатывает транзакцию


Returns a string containing the SQLSTATE returned by the last connection attempt

  • « db2_commit
  • db2_conn_errormsg »
  • PHP Manual
  • Функции IBM DB2
  • Returns a string containing the SQLSTATE returned by the last connection attempt

db2_conn_error

(PECL ibm_db2 >= 1.0.0)

db2_conn_error — Returns a string containing the SQLSTATE returned by the last connection attempt

Описание

string db2_conn_error ([ resource $connection ] )

db2_conn_error() returns an SQLSTATE value representing the reason the last attempt to connect to a database failed. As db2_connect() returns FALSE in the event of a failed connection attempt, you do not pass any parameters to db2_conn_error() to retrieve the SQLSTATE value.

If, however, the connection was successful but becomes invalid over time, you can pass the connection parameter to retrieve the SQLSTATE value for a specific connection.

To learn what the SQLSTATE value means, you can issue the following command at a DB2 Command Line Processor prompt: db2 '? sqlstate-value'. You can also call db2_conn_errormsg() to retrieve an explicit error message and the associated SQLCODE value.

Список параметров

connection

A connection resource associated with a connection that initially succeeded, but which over time became invalid.

Возвращаемые значения

Returns the SQLSTATE value resulting from a failed connection attempt. Returns an empty string if there is no error associated with the last connection attempt.

Примеры

Пример #1 Retrieving an SQLSTATE value for a failed connection attempt

The following example demonstrates how to return an SQLSTATE value after deliberately passing invalid parameters to db2_connect().

<?php
$conn = db2_connect('badname', 'baduser', 'badpassword');
if (!$conn) {
    print "SQLSTATE value: " . db2_conn_error();
}
?>

Результат выполнения данного примера:

SQLSTATE value: 08001

Смотрите также

  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_connect() - Returns a connection to a database
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns the last connection error message and SQLCODE value

  • « db2_conn_error
  • db2_connect »
  • PHP Manual
  • Функции IBM DB2
  • Returns the last connection error message and SQLCODE value

db2_conn_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_conn_errormsg — Returns the last connection error message and SQLCODE value

Описание

string db2_conn_errormsg ([ resource $connection ] )

db2_conn_errormsg() returns an error message and SQLCODE value representing the reason the last database connection attempt failed. As db2_connect() returns FALSE in the event of a failed connection attempt, do not pass any parameters to db2_conn_errormsg() to retrieve the associated error message and SQLCODE value.

If, however, the connection was successful but becomes invalid over time, you can pass the connection parameter to retrieve the associated error message and SQLCODE value for a specific connection.

Список параметров

connection

A connection resource associated with a connection that initially succeeded, but which over time became invalid.

Возвращаемые значения

Returns a string containing the error message and SQLCODE value resulting from a failed connection attempt. If there is no error associated with the last connection attempt, db2_conn_errormsg() returns an empty string.

Примеры

Пример #1 Retrieving the error message returned by a failed connection attempt

The following example demonstrates how to return an error message and SQLCODE value after deliberately passing invalid parameters to db2_connect().

<?php
$conn = db2_connect('badname', 'baduser', 'badpassword');
if (!$conn) {
    print db2_conn_errormsg();
}
?>

Результат выполнения данного примера:

[IBM][CLI Driver] SQL1013N  The database alias name
or database name "BADNAME" could not be found.  SQLSTATE=42705
 SQLCODE=-1013

Смотрите также

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_connect() - Returns a connection to a database
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns a connection to a database

  • « db2_conn_errormsg
  • db2_cursor_type »
  • PHP Manual
  • Функции IBM DB2
  • Returns a connection to a database

db2_connect

(PECL ibm_db2 >= 1.0.0)

db2_connect — Returns a connection to a database

Описание

resource db2_connect ( string $database , string $username , string $password [, array $options ] )

Creates a new connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database.

Список параметров

database

For a cataloged connection to a database, database represents the database alias in the DB2 client catalog.

For an uncataloged connection to a database, database represents a complete connection string in the following format:

DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;
where the parameters represent the following values:
database

The name of the database.

hostname

The hostname or IP address of the database server.

port

The TCP/IP port on which the database is listening for requests.

username

The username with which you are connecting to the database.

password

The password with which you are connecting to the database.

username

The username with which you are connecting to the database.

For uncataloged connections, you must pass a NULL value or empty string.

password

The password with which you are connecting to the database.

For uncataloged connections, you must pass a NULL value or empty string.

options

An associative array of connection options that affect the behavior of the connection, where valid array keys include:

autocommit

Passing the DB2_AUTOCOMMIT_ON value turns autocommit on for this connection handle.

Passing the DB2_AUTOCOMMIT_OFF value turns autocommit off for this connection handle.

DB2_ATTR_CASE

Passing the DB2_CASE_NATURAL value specifies that column names are returned in natural case.

Passing the DB2_CASE_LOWER value specifies that column names are returned in lower case.

Passing the DB2_CASE_UPPER value specifies that column names are returned in upper case.

CURSOR

Passing the DB2_FORWARD_ONLY value specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.

Passing the DB2_SCROLLABLE value specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.

The following new option is available in ibm_db2 version 1.7.0 and later.

trustedcontext

Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context on for this connection handle. This parameter cannot be set using db2_set_option().

This key works only if the database is cataloged (even if the database is local), or if you specify the full DSN when you create the connection.

To catalog the database, use following commands:

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later.

i5_lib

A character value that indicates the default library that will be used for resolving unqualified file references. This is not valid if the connection is using system naming mode.

i5_naming

DB2_I5_NAMING_ON value turns on DB2 UDB CLI iSeries system naming mode. Files are qualified using the slash (/) delimiter. Unqualified files are resolved using the library list for the job.

DB2_I5_NAMING_OFF value turns off DB2 UDB CLI default naming mode, which is SQL naming. Files are qualified using the period (.) delimiter. Unqualified files are resolved using either the default library or the current user ID.

i5_commit

The i5_commit attribute should be set before the db2_connect(). If the value is changed after the connection has been established, and the connection is to a remote data source, the change does not take effect until the next successful db2_connect() for the connection handle.

Замечание:

The php.ini setting ibm_db2.i5_allow_commit==0 or DB2_I5_TXN_NO_COMMIT is the default, but may be overridden with the i5_commit option.

DB2_I5_TXN_NO_COMMIT - Commitment control is not used.

DB2_I5_TXN_READ_UNCOMMITTED - Dirty reads, nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_READ_COMMITTED - Dirty reads are not possible. Nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_REPEATABLE_READ - Dirty reads and nonrepeatable reads are not possible. Phantoms are possible.

DB2_I5_TXN_SERIALIZABLE - Transactions are serializable. Dirty reads, non-repeatable reads, and phantoms are not possible

i5_query_optimize

DB2_FIRST_IO All queries are optimized with the goal of returning the first page of output as fast as possible. This goal works well when the output is controlled by a user who is most likely to cancel the query after viewing the first page of output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.

DB2_ALL_IO All queries are optimized with the goal of running the entire query to completion in the shortest amount of elapsed time. This is a good option when the output of a query is being written to a file or report, or the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause. This is the default.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON value turns on DB2 6X allocation scheme for DBCS translation column size growth.

DB2_I5_DBCS_ALLOC_OFF value turns off DB2 6X allocation scheme for DBCS translation column size growth.

Note: php.ini setting ibm_db2.i5_dbcs_alloc==0 or DB2_I5_DBCS_ALLOC_OFF is the default, but may be overridden with the i5_dbcs_alloc option.

i5_date_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) date format yyyy-mm-dd is used. This is the default.

DB2_I5_FMT_USA - The United States date format mm/dd/yyyy is used.

DB2_I5_FMT_EUR - The European date format dd.mm.yyyy is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard date format yyyy-mm-dd is used.

DB2_I5_FMT_MDY - The date format mm/dd/yyyy is used.

DB2_I5_FMT_DMY - The date format dd/mm/yyyy is used.

DB2_I5_FMT_YMD - The date format yy/mm/dd is used.

DB2_I5_FMT_JUL - The Julian date format yy/ddd is used.

DB2_I5_FMT_JOB - The job default is used.

i5_date_sep

DB2_I5_SEP_SLASH - A slash ( / ) is used as the date separator. This is the default.

DB2_I5_SEP_DASH - A dash ( - ) is used as the date separator.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the date separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the date separator.

DB2_I5_SEP_BLANK - A blank is used as the date separator.

DB2_I5_SEP_JOB - The job default is used

i5_time_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) time format hh.mm.ss is used. This is the default.

DB2_I5_FMT_USA - The United States time format hh:mmxx is used, where xx is AM or PM.

DB2_I5_FMT_EUR - The European time format hh.mm.ss is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard time format hh:mm:ss is used.

DB2_I5_FMT_HMS - The hh:mm:ss format is used.

i5_time_sep

DB2_I5_SEP_COLON - A colon ( : ) is used as the time separator. This is the default.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the time separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the time separator.

DB2_I5_SEP_BLANK - A blank is used as the time separator.

DB2_I5_SEP_JOB - The job default is used.

i5_decimal_sep

DB2_I5_SEP_PERIOD - A period ( . ) is used as the decimal separator. This is the default.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the decimal separator.

DB2_I5_SEP_JOB - The job default is used.

The following new i5/OS option is available in ibm_db2 version 1.8.0 and later.

i5_libl

A character value that indicates the library list that will be used for resolving unqualified file references. Specify the library list elements separated by blanks 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Замечание:

i5_libl calls qsys2/qcmdexc('cmd',cmdlen), which is only available in i5/OS V5R4 and later.

Возвращаемые значения

Returns a connection handle resource if the connection attempt is successful. If the connection attempt fails, db2_connect() returns FALSE.

Примеры

Пример #1 Creating a cataloged connection

Cataloged connections require you to have previously cataloged the target database through the DB2 Command Line Processor (CLP) or DB2 Configuration Assistant.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$conn = db2_connect($database, $user, $password);

if ($conn) {
    echo "Connection succeeded.";
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Результат выполнения данного примера:

Connection succeeded.

Пример #2 Creating an uncataloged connection

An uncataloged connection enables you to dynamically connect to a database.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$hostname = 'localhost';
$port = 50000;

$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
  "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP;UID=$user;PWD=$password;";
$conn = db2_connect($conn_string, '', '');

if ($conn) {
    echo "Connection succeeded.";
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Результат выполнения данного примера:

Connection succeeded.

Пример #3 Creating a connection with autocommit off by default

Passing an array of options to db2_connect() enables you to modify the default behavior of the connection handle.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF);

$conn = db2_connect($database, $user, $password, $options);

if ($conn) {
    echo "Connection succeeded.\n";
    if (db2_autocommit($conn)) {
         echo "Autocommit is on.\n";
    }
    else {
         echo "Autocommit is off.\n";
    }
    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Результат выполнения данного примера:

Connection succeeded.
Autocommit is off.

Пример #4 i5/OS best performance

To achieve best performance for your i5/OS ibm_db2 1.5.1 PHP application use the default host, userid, and password for your db2_connect().

<?php
  $library = "ADC";
  $i5 = db2_connect("", "", "", array("i5_lib"=>"qsys2"));
  $result = db2_exec($i5,
       "select * from systables where table_schema = '$library'");
  while ($row = db2_fetch_both($result)) {
     echo $row['TABLE_NAME']."</br>";
  }
  db2_close($i5);
?>

Результат выполнения данного примера:

ANIMALS
NAMES
PICTURES

Пример #5 Using trusted context

The following example shows how to enable trusted context, switch users, and get the current user ID.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_connect($dsn, "", "", $options);
if($tc_conn) {
    echo "Explicit trusted connection succeeded.\n";

    if(db2_get_option($tc_conn, "trustedcontext")) {
        $userBefore = db2_get_option($tc_conn, "trusted_user");

        //Do some work as user 1.

        //Switching to trusted user.
        $parameters = array("trusted_user" => $tc_user,
          "trusted_password" => $tcuser_pass);
        $res = db2_set_option ($tc_conn, $parameters, 1);

        $userAfter = db2_get_option($tc_conn, "trusted_user");
        //Do more work as trusted user.

        if($userBefore != $userAfter) {
            echo "User has been switched." . "\n";
        }
    }

    db2_close($tc_conn);
}
else {
    echo "Explicit trusted connection failed.\n";
}
?>

Результат выполнения данного примера:

Explicit trusted connection succeeded.
User has been switched.

Смотрите также

  • db2_close() - Закрывает соединение с базой данных
  • db2_pconnect() - Returns a persistent connection to a database


Возвращает тип курсора, который используется в ресурсе оператора

  • « db2_connect
  • db2_escape_string »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает тип курсора, который используется в ресурсе оператора

db2_cursor_type

(PECL ibm_db2 >= 1.0.0)

db2_cursor_type — Возвращает тип курсора, который используется в ресурсе оператора

Описание

int db2_cursor_type ( resource $stmt )

Возвращает тип курсора, который используется в ресурсе оператора.

Список параметров

stmt

Корректный ресурс оператора.

Возвращаемые значения

Возвращает либо DB2_FORWARD_ONLY, либо DB2_SCROLLABLE, в зависимости от типа используемого курсора.

Смотрите также

  • db2_prepare() - Prepares an SQL statement to be executed


Используется для экранирования некоторых символов

  • « db2_cursor_type
  • db2_exec »
  • PHP Manual
  • Функции IBM DB2
  • Используется для экранирования некоторых символов

db2_escape_string

(PECL ibm_db2 >= 1.6.0)

db2_escape_string — Используется для экранирования некоторых символов

Описание

string db2_escape_string ( string $string_literal )

Добавляет обратных слеши перед специальными символами в переданной строке.

Список параметров

string_literal

Строка, содержащая символы, которые надо экранировать. Символы, которые надо экранировать: \x00, \n, \r, \, ', " и \x1a.

Возвращаемые значения

Возвращает string_literal с экранированными специальными символами.

Примеры

Пример #1 Пример использования db2_escape_string()

Результат выполнения функции db2_escape_string()

<?php

$conn = db2_connect($database, $user, $password);

if ($conn) {
    $str[0] = "All characters: \x00 , \n , \r , \ , ' , \" , \x1a .";
    $str[1] = "Backslash (\). Single quote ('). Double quote (\")";
    $str[2] = "The NULL character \0 must be quoted as well";
    $str[3] = "Intersting characters: \x1a , \x00 .";
    $str[4] = "Nothing to quote";
    $str[5] = 200676;
    $str[6] = "";

    foreach( $str as $string ) {
        echo "db2_escape_string: " . db2_escape_string($string). "\n";
    }
}
?>

Результат выполнения данного примера:

db2_escape_string: All characters: \0 , \n , \r , \\ , \' , \" , \Z .
db2_escape_string: Backslash (\\). Single quote (\'). Double quote (\")
db2_escape_string: The NULL character \0 must be quoted as well
db2_escape_string: Intersting characters: \Z , \0 .
db2_escape_string: Nothing to quote
db2_escape_string: 200676
db2_escape_string:

Смотрите также

  • db2_prepare() - Prepares an SQL statement to be executed


Executes an SQL statement directly

  • « db2_escape_string
  • db2_execute »
  • PHP Manual
  • Функции IBM DB2
  • Executes an SQL statement directly

db2_exec

(PECL ibm_db2 >= 1.0.0)

db2_exec — Executes an SQL statement directly

Описание

resource db2_exec ( resource $connection , string $statement [, array $options ] )

Executes an SQL statement directly.

If you plan to interpolate PHP variables into the SQL statement, understand that this is one of the more common security exposures. Consider calling db2_prepare() to prepare an SQL statement with parameter markers for input values. Then you can call db2_execute() to pass in the input values and avoid SQL injection attacks.

If you plan to repeatedly issue the same SQL statement with different parameters, consider calling db2_prepare() and db2_execute() to enable the database server to reuse its access plan and increase the efficiency of your database access.

Список параметров

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

statement

An SQL statement. The statement cannot contain any parameter markers.

options

An associative array containing statement options. You can use this parameter to request a scrollable cursor on database servers that support this functionality.

For a description of valid statement options, see db2_set_option().

Возвращаемые значения

Returns a statement resource if the SQL statement was issued successfully, or FALSE if the database failed to execute the SQL statement.

Примеры

Пример #1 Creating a table with db2_exec()

The following example uses db2_exec() to issue a set of DDL statements in the process of creating a table.

<?php
$conn = db2_connect($database, $user, $password);

// Create the test table
$create = 'CREATE TABLE animals (id INTEGER, breed VARCHAR(32),
    name CHAR(16), weight DECIMAL(7,2))';
$result = db2_exec($conn, $create);
if ($result) {
    print "Successfully created the table.\n";
}

// Populate the test table
$animals = array(
    array(0, 'cat', 'Pook', 3.2),
    array(1, 'dog', 'Peaches', 12.3),
    array(2, 'horse', 'Smarty', 350.0),
    array(3, 'gold fish', 'Bubbles', 0.1),
    array(4, 'budgerigar', 'Gizmo', 0.2),
    array(5, 'goat', 'Rickety Ride', 9.7),
    array(6, 'llama', 'Sweater', 150)
);

foreach ($animals as $animal) {
    $rc = db2_exec($conn, "INSERT INTO animals (id, breed, name, weight)
      VALUES ({$animal[0]}, '{$animal[1]}', '{$animal[2]}', {$animal[3]})");
    if ($rc) {
        print "Insert... ";
    }
}
?>

Результат выполнения данного примера:

Successfully created the table.
Insert... Insert... Insert... Insert... Insert... Insert... Insert...

Пример #2 Executing a SELECT statement with a scrollable cursor

The following example demonstrates how to request a scrollable cursor for an SQL statement issued by db2_exec().

<?php
$conn = db2_connect($database, $user, $password);
$sql = "SELECT name FROM animals
    WHERE weight < 10.0
    ORDER BY name";
if ($conn) {
    require_once('prepare.inc');
    $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
    while ($row = db2_fetch_array($stmt)) {
        print "$row[0]\n";
    }
}
?>

Результат выполнения данного примера:

Bubbles
Gizmo
Pook
Rickety Ride

Пример #3 Returning XML data as an SQL ResultSet

The following example demonstrates how to work with documents stored in a XML column using the SAMPLE database. Using some pretty simple SQL/XML, this example returns some of the nodes in a XML document in an SQL ResultSet format that most users are familiar with.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = \'Kathy Smith\'
    ';
$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE\n");
}
db2_close($conn);

?>

Результат выполнения данного примера:

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Пример #4 Performing a "JOIN" with XML data

The following example works with documents stored in 2 different XML columns in the SAMPLE database. It creates 2 temporary tables from the XML documents from 2 different columns and returns an SQL ResultSet with information regarding shipping status for the customer.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
    SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
    FROM
    XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" BIGINT PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) as A,
    PURCHASEORDER AS B,
    XMLTABLE (
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
    COLUMNS
    "PONUM"  BIGINT PATH \'@PoNum\',
    "STATUS" VARCHAR (50) PATH \'@Status\'
    ) as C
    WHERE A.CID = B.CUSTID AND
    B.POID = C.PONUM AND
    A.NAME = \'Kathy Smith\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
}

db2_close($conn);

?>

Результат выполнения данного примера:

1001     Kathy Smith     905-555-7258     5002     Shipped

Пример #5 Returning SQL data as part of a larger XML document

The following example works with a portion of the PRODUCT.DESCRIPTION documents in the SAMPLE database. It creates a XML document containing product description (XML data) and pricing info (SQL data).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
    for $prod in $doc/product
    where $prod/description/price < 10.00
    order by $prod/description/price ascending
    return(
        <promoitem> {
        $prod,
        <startdate> {$start} </startdate>,
        <enddate> {$end} </enddate>,
        <promoprice> {$promo} </promoprice>
        } </promoitem>
    )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = \'100-100-01\'
';

$stmt = db2_exec($conn, $query);

while($row = db2_fetch_array($stmt)){
    printf("$row[0]\n");
}
db2_close($conn);

?>

Результат выполнения данного примера:

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Смотрите также

  • db2_execute() - Executes a prepared SQL statement
  • db2_prepare() - Prepares an SQL statement to be executed


Executes a prepared SQL statement

  • « db2_exec
  • db2_fetch_array »
  • PHP Manual
  • Функции IBM DB2
  • Executes a prepared SQL statement

db2_execute

(PECL ibm_db2 >= 1.0.0)

db2_execute — Executes a prepared SQL statement

Описание

bool db2_execute ( resource $stmt [, array $parameters ] )

db2_execute() executes an SQL statement that was prepared by db2_prepare().

If the SQL statement returns a result set, for example, a SELECT statement or a CALL to a stored procedure that returns one or more result sets, you can retrieve a row as an array from the stmt resource using db2_fetch_assoc(), db2_fetch_both(), or db2_fetch_array(). Alternatively, you can use db2_fetch_row() to move the result set pointer to the next row and fetch a column at a time from that row with db2_result().

Refer to db2_prepare() for a brief discussion of the advantages of using db2_prepare() and db2_execute() rather than db2_exec().

Список параметров

stmt

A prepared statement returned from db2_prepare().

parameters

An array of input parameters matching any parameter markers contained in the prepared statement.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Preparing and executing an SQL statement with parameter markers

The following example prepares an INSERT statement that accepts four parameter markers, then iterates over an array of arrays containing the input values to be passed to db2_execute().

<?php
$pet = array(0, 'cat', 'Pook', 3.2);

$insert = 'INSERT INTO animals (id, breed, name, weight)
    VALUES (?, ?, ?, ?)';

$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    $result = db2_execute($stmt, $pet);
    if ($result) {
        print "Successfully added new pet.";
    }
}
?>

Результат выполнения данного примера:

Successfully added new pet.

Пример #2 Calling a stored procedure with an OUT parameter

The following example prepares a CALL statement that accepts one parameter marker representing an OUT parameter, binds the PHP variable $my_pets to the parameter using db2_bind_param(), then issues db2_execute() to execute the CALL statement. After the CALL to the stored procedure has been made, the value of $num_pets changes to reflect the value returned by the stored procedure for that OUT parameter.

<?php
$num_pets = 0;
$res = db2_prepare($conn, "CALL count_my_pets(?)");
$rc = db2_bind_param($res, 1, "num_pets", DB2_PARAM_OUT);
$rc = db2_execute($res);
print "I have $num_pets pets!";
?>

Результат выполнения данного примера:

I have 7 pets!

Пример #3 Returning XML data as an SQL ResultSet

The following example demonstrates how to work with documents stored in a XML column using the SAMPLE database. Using some pretty simple SQL/XML, this example returns some of the nodes in a XML document in an SQL ResultSet format that most users are familiar with.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = 'SELECT * FROM XMLTABLE(
    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
    COLUMNS
    "CID" VARCHAR (50) PATH \'@Cid\',
    "NAME" VARCHAR (50) PATH \'name\',
    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
    ) AS T
    WHERE NAME = ?
    ';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE\n");
    }
}
db2_close($conn);

?>

Результат выполнения данного примера:

1000     Kathy Smith     416-555-1358
1001     Kathy Smith     905-555-7258

Пример #4 Performing a "JOIN" with XML data

The following example works with documents stored in 2 different XML columns in the SAMPLE database. It creates 2 temporary tables from the XML documents from 2 different columns and returns an SQL ResultSet with information regarding shipping status for the customer.

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
FROM
XMLTABLE(
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
COLUMNS
"CID" BIGINT PATH \'@Cid\',
"NAME" VARCHAR (50) PATH \'name\',
"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
) as A,
PURCHASEORDER AS B,
XMLTABLE (
XMLNAMESPACES (DEFAULT \'http://posample.org\'),
\'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
COLUMNS
"PONUM"  BIGINT PATH \'@PoNum\',
"STATUS" VARCHAR (50) PATH \'@Status\'
) as C
WHERE A.CID = B.CUSTID AND
    B.POID = C.PONUM AND
    A.NAME = ?
';

$stmt = db2_prepare($conn, $query);

$name = 'Kathy Smith';

if ($stmt) {
    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_object($stmt)){
    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
    }
}

db2_close($conn);

?>

Результат выполнения данного примера:

1001     Kathy Smith     905-555-7258     5002     Shipped

Пример #5 Returning SQL data as part of a larger XML document

The following example works with a portion of the PRODUCT.DESCRIPTION documents in the SAMPLE database. It creates a XML document containing product description (XML data) and pricing info (SQL data).

<?php

$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");

$query = '
SELECT
XMLSERIALIZE(
XMLQUERY(\'
    declare boundary-space strip;
    declare default element namespace "http://posample.org";
    <promoList> {
    for $prod in $doc/product
    where $prod/description/price < 10.00
    order by $prod/description/price ascending
    return(
        <promoitem> {
        $prod,
        <startdate> {$start} </startdate>,
        <enddate> {$end} </enddate>,
        <promoprice> {$promo} </promoprice>
            } </promoitem>
    )
    } </promoList>
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = ?
';

$stmt = db2_prepare($conn, $query);

$pid = "100-100-01";

if ($stmt) {
    db2_bind_param($stmt, 1, "pid", DB2_PARAM_IN);
    db2_execute($stmt);

    while($row = db2_fetch_array($stmt)){
    printf("$row[0]\n");
    }
}

db2_close($conn);

?>

Результат выполнения данного примера:

<promoList xmlns="http://posample.org">
    <promoitem>
    <product pid="100-100-01">
        <description>
            <name>Snow Shovel, Basic 22 inch</name>
            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
            <price>9.99</price>
            <weight>1 kg</weight>
        </description>
    </product>
    <startdate>2004-11-19</startdate>
    <enddate>2004-12-19</enddate>
    <promoprice>7.25</promoprice>
    </promoitem>
</promoList>

Смотрите также

  • db2_exec() - Executes an SQL statement directly
  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_result() - Returns a single column from a row in the result set


Returns an array, indexed by column position, representing a row in a result set

  • « db2_execute
  • db2_fetch_assoc »
  • PHP Manual
  • Функции IBM DB2
  • Returns an array, indexed by column position, representing a row in a result set

db2_fetch_array

(PECL ibm_db2 >= 1.0.1)

db2_fetch_array — Returns an array, indexed by column position, representing a row in a result set

Описание

array db2_fetch_array ( resource $stmt [, int $row_number = -1 ] )

Returns an array, indexed by column position, representing a row in a result set. The columns are 0-indexed.

Список параметров

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Возвращаемые значения

Returns a 0-indexed array with column values indexed by the column position representing the next or requested row in the result set. Returns FALSE if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Примеры

Пример #1 Iterating through a forward-only cursor

If you call db2_fetch_array() without a specific row number, it automatically retrieves the next row in the result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_array($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row[1], $row[2], $row[3]);
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Пример #2 Retrieving specific rows with db2_fetch_array() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_array() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_array($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row[1], $row[2], $row[3]);
    $i = $i + 2;
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Смотрите также

  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Returns an array, indexed by column name, representing a row in a result set

  • « db2_fetch_array
  • db2_fetch_both »
  • PHP Manual
  • Функции IBM DB2
  • Returns an array, indexed by column name, representing a row in a result set

db2_fetch_assoc

(PECL ibm_db2 >= 1.0.0)

db2_fetch_assoc — Returns an array, indexed by column name, representing a row in a result set

Описание

array db2_fetch_assoc ( resource $stmt [, int $row_number = -1 ] )

Returns an array, indexed by column name, representing a row in a result set.

Список параметров

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Возвращаемые значения

Returns an associative array with column values indexed by the column name representing the next or requested row in the result set. Returns FALSE if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Примеры

Пример #1 Iterating through a forward-only cursor

If you call db2_fetch_assoc() without a specific row number, it automatically retrieves the next row in the result set.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_assoc($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Пример #2 Retrieving specific rows with db2_fetch_assoc() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_assoc() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_assoc($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row['NAME'], $row['BREED'], $row['WEIGHT']);
    $i = $i + 2;
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Смотрите также

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Returns an array, indexed by both column name and position, representing a row in a result set

  • « db2_fetch_assoc
  • db2_fetch_object »
  • PHP Manual
  • Функции IBM DB2
  • Returns an array, indexed by both column name and position, representing a row in a result set

db2_fetch_both

(PECL ibm_db2 >= 1.0.0)

db2_fetch_both — Returns an array, indexed by both column name and position, representing a row in a result set

Описание

array db2_fetch_both ( resource $stmt [, int $row_number = -1 ] )

Returns an array, indexed by both column name and position, representing a
row in a result set. Note that the row returned by
db2_fetch_both() requires more memory than the
single-indexed arrays returned by db2_fetch_assoc() or
db2_fetch_array().

Список параметров

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Возвращаемые значения

Returns an associative array with column values indexed by both the column name and 0-indexed column number. The array represents the next or requested row in the result set. Returns FALSE if there are no rows left in the result set, or if the row requested by row_number does not exist in the result set.

Примеры

Пример #1 Iterating through a forward-only cursor

If you call db2_fetch_both() without a specific row number, it automatically retrieves the next row in the result set. The following example accesses columns in the returned array by both column name and by numeric index.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
$result = db2_execute($stmt);

while ($row = db2_fetch_both($stmt)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row['ID'], $row[0], $row['BREED'], $row[3]);
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Пример #2 Retrieving specific rows with db2_fetch_both() from a scrollable cursor

If your result set uses a scrollable cursor, you can call db2_fetch_both() with a specific row number. The following example retrieves every other row in the result set, starting with the second row.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result = db2_exec($stmt, $sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while ($row = db2_fetch_both($result, $i)) {
    printf ("%-5d %-16s %-32s %10s\n",
        $row[0], $row['NAME'], $row[2], $row['WEIGHT']);
    $i = $i + 2;
}
?>

Результат выполнения данного примера:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Смотрите также

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Returns an object with properties representing columns in the fetched row

  • « db2_fetch_both
  • db2_fetch_row »
  • PHP Manual
  • Функции IBM DB2
  • Returns an object with properties representing columns in the fetched row

db2_fetch_object

(PECL ibm_db2 >= 1.0.0)

db2_fetch_object — Returns an object with properties representing columns in the fetched row

Описание

object db2_fetch_object ( resource $stmt [, int $row_number = -1 ] )

Returns an object in which each property represents a column returned in the row fetched from a result set.

Список параметров

stmt

A valid stmt resource containing a result set.

row_number

Requests a specific 1-indexed row from the result set. Passing this parameter results in a PHP warning if the result set uses a forward-only cursor.

Возвращаемые значения

Returns an object representing a single row in the result set. The properties of the object map to the names of the columns in the result set.

The IBM DB2, Cloudscape, and Apache Derby database servers typically fold column names to upper-case, so the object properties will reflect that case.

If your SELECT statement calls a scalar function to modify the value of a column, the database servers return the column number as the name of the column in the result set. If you prefer a more descriptive column name and object property, you can use the AS clause to assign a name to the column in the result set.

Returns FALSE if no row was retrieved.

Примеры

Пример #1 A db2_fetch_object() example

The following example issues a SELECT statement with a scalar function, RTRIM, that removes whitespace from the end of the column. Rather than creating an object with the properties "BREED" and "2", we use the AS clause in the SELECT statement to assign the name "name" to the modified column. The database server folds the column names to upper-case, resulting in an object with the properties "BREED" and "NAME".

<?php
$conn = db2_connect($database, $user, $password);

$sql = "SELECT breed, RTRIM(name) AS name
    FROM animals
    WHERE id = ?";

if ($conn) {
    $stmt = db2_prepare($conn, $sql);
    db2_execute($stmt, array(0));

    while ($pet = db2_fetch_object($stmt)) {
        echo "Come here, {$pet->NAME}, my little {$pet->BREED}!";
    }
    db2_close($conn);
}
?>

Результат выполнения данного примера:

Come here, Pook, my little cat!

Смотрите также

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_result() - Returns a single column from a row in the result set


Sets the result set pointer to the next row or requested row

  • « db2_fetch_object
  • db2_field_display_size »
  • PHP Manual
  • Функции IBM DB2
  • Sets the result set pointer to the next row or requested row

db2_fetch_row

(PECL ibm_db2 >= 1.0.0)

db2_fetch_row — Sets the result set pointer to the next row or requested row

Описание

bool db2_fetch_row ( resource $stmt [, int $row_number ] )

Use db2_fetch_row() to iterate through a result set, or to point to a specific row in a result set if you requested a scrollable cursor.

To retrieve individual fields from the result set, call the db2_result() function.

Rather than calling db2_fetch_row() and db2_result(), most applications will call one of db2_fetch_assoc(), db2_fetch_both(), or db2_fetch_array() to advance the result set pointer and return a complete row as an array.

Список параметров

stmt

A valid stmt resource.

row_number

With scrollable cursors, you can request a specific row number in the result set. Row numbering is 1-indexed.

Возвращаемые значения

Returns TRUE if the requested row exists in the result set. Returns FALSE if the requested row does not exist in the result set.

Примеры

Пример #1 Iterating through a result set

The following example demonstrates how to iterate through a result set with db2_fetch_row() and retrieve columns from the result set with db2_result().

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $name = db2_result($stmt, 0);
    $breed = db2_result($stmt, 1);
    print "$name $breed";
}
?>

Результат выполнения данного примера:

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

Пример #2 i5/OS recommended alternatives to db2_fetch_row/db2_result

On i5/OS it is recommended that you use db2_fetch_both(), db2_fetch_array(), or db2_fetch_object() over db2_fetch_row()/db2_result(). In general db2_fetch_row()/db2_result() have more issues with various column types in EBCIDIC to ASCII translation, including possible truncation in DBCS applications. You may also find the performance of db2_fetch_both(), db2_fetch_array(), and db2_fetch_object() to be superior to db2_fetch_row()/db2_result().

<?php
  $conn = db2_connect("","","");
  $sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_both($stmt)){
    echo "<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_array($stmt)){
    echo "<br>db2_fetch_array {$row[1]}  {$row[5]}";
  }
  $stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
  while ($row = db2_fetch_object($stmt)){
    echo "<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
  }
  db2_close($conn);
?>

Результат выполнения данного примера:

db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000

Смотрите также

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_result() - Returns a single column from a row in the result set


Returns the maximum number of bytes required to display a column

  • « db2_fetch_row
  • db2_field_name »
  • PHP Manual
  • Функции IBM DB2
  • Returns the maximum number of bytes required to display a column

db2_field_display_size

(PECL ibm_db2 >= 1.0.0)

db2_field_display_size — Returns the maximum number of bytes required to display a column

Описание

int db2_field_display_size ( resource $stmt , mixed $column )

Returns the maximum number of bytes required to display a column in a result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns an integer value with the maximum number of bytes required to display the specified column. If the column does not exist in the result set, db2_field_display_size() returns FALSE.

Смотрите также

  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the name of the column in the result set

  • « db2_field_display_size
  • db2_field_num »
  • PHP Manual
  • Функции IBM DB2
  • Returns the name of the column in the result set

db2_field_name

(PECL ibm_db2 >= 1.0.0)

db2_field_name — Returns the name of the column in the result set

Описание

string db2_field_name ( resource $stmt , mixed $column )

Returns the name of the specified column in the result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns a string containing the name of the specified column. If the specified column does not exist in the result set, db2_field_name() returns FALSE.

Смотрите также

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the position of the named column in a result set

  • « db2_field_name
  • db2_field_precision »
  • PHP Manual
  • Функции IBM DB2
  • Returns the position of the named column in a result set

db2_field_num

(PECL ibm_db2 >= 1.0.0)

db2_field_num — Returns the position of the named column in a result set

Описание

int db2_field_num ( resource $stmt , mixed $column )

Returns the position of the named column in a result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns an integer containing the 0-indexed position of the named column in the result set. If the specified column does not exist in the result set, db2_field_num() returns FALSE.

Смотрите также

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the precision of the indicated column in a result set

  • « db2_field_num
  • db2_field_scale »
  • PHP Manual
  • Функции IBM DB2
  • Returns the precision of the indicated column in a result set

db2_field_precision

(PECL ibm_db2 >= 1.0.0)

db2_field_precision — Returns the precision of the indicated column in a result set

Описание

int db2_field_precision ( resource $stmt , mixed $column )

Returns the precision of the indicated column in a result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns an integer containing the precision of the specified column. If the specified column does not exist in the result set, db2_field_precision() returns FALSE.

Смотрите также

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the scale of the indicated column in a result set

  • « db2_field_precision
  • db2_field_type »
  • PHP Manual
  • Функции IBM DB2
  • Returns the scale of the indicated column in a result set

db2_field_scale

(PECL ibm_db2 >= 1.0.0)

db2_field_scale — Returns the scale of the indicated column in a result set

Описание

int db2_field_scale ( resource $stmt , mixed $column )

Returns the scale of the indicated column in a result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns an integer containing the scale of the specified column. If the specified column does not exist in the result set, db2_field_scale() returns FALSE.

Смотрите также

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the data type of the indicated column in a result set

  • « db2_field_scale
  • db2_field_width »
  • PHP Manual
  • Функции IBM DB2
  • Returns the data type of the indicated column in a result set

db2_field_type

(PECL ibm_db2 >= 1.0.0)

db2_field_type — Returns the data type of the indicated column in a result set

Описание

string db2_field_type ( resource $stmt , mixed $column )

Returns the data type of the indicated column in a result set.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns a string containing the defined data type of the specified column. If the specified column does not exist in the result set, db2_field_type() returns FALSE.

Смотрите также

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the width of the current value of the indicated column in a result set

  • « db2_field_type
  • db2_foreign_keys »
  • PHP Manual
  • Функции IBM DB2
  • Returns the width of the current value of the indicated column in a result set

db2_field_width

(PECL ibm_db2 >= 1.0.0)

db2_field_width — Returns the width of the current value of the indicated column in a result set

Описание

int db2_field_width ( resource $stmt , mixed $column )

Returns the width of the current value of the indicated column in a result set. This is the maximum width of the column for a fixed-length data type, or the actual width of the column for a variable-length data type.

Список параметров

stmt

Specifies a statement resource containing a result set.

column

Specifies the column in the result set. This can either be an integer representing the 0-indexed position of the column, or a string containing the name of the column.

Возвращаемые значения

Returns an integer containing the width of the specified character or binary data type column in a result set. If the specified column does not exist in the result set, db2_field_width() returns FALSE.

Смотрите также

  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set


Returns a result set listing the foreign keys for a table

  • « db2_field_width
  • db2_free_result »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the foreign keys for a table

db2_foreign_keys

(PECL ibm_db2 >= 1.0.0)

db2_foreign_keys — Returns a result set listing the foreign keys for a table

Описание

resource db2_foreign_keys ( resource $connection , string $qualifier , string $schema , string $table-name )

Returns a result set listing the foreign keys for a table.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. If schema is NULL, db2_foreign_keys() matches the schema for the current connection.

table-name

The name of the table.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the foreign keys for the specified table. The result set is composed of the following columns:

Column name | Description
PKTABLE_CAT | Name of the catalog for the table containing the primary key. The value is NULL if this table does not have catalogs.
PKTABLE_SCHEM | Name of the schema for the table containing the primary key.
PKTABLE_NAME | Name of the table containing the primary key.
PKCOLUMN_NAME | Name of the column containing the primary key.
FKTABLE_CAT | Name of the catalog for the table containing the foreign key. The value is NULL if this table does not have catalogs.
FKTABLE_SCHEM | Name of the schema for the table containing the foreign key.
FKTABLE_NAME | Name of the table containing the foreign key.
FKCOLUMN_NAME | Name of the column containing the foreign key.
KEY_SEQ | 1-indexed position of the column in the key.
UPDATE_RULE | Integer value representing the action applied to the foreign key when the SQL operation is UPDATE.
DELETE_RULE | Integer value representing the action applied to the foreign key when the SQL operation is DELETE.
FK_NAME | The name of the foreign key.
PK_NAME | The name of the primary key.
DEFERRABILITY | An integer value representing whether the foreign key deferrability is SQL_INITIALLY_DEFERRED, SQL_INITIALLY_IMMEDIATE, or SQL_NOT_DEFERRABLE.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Frees resources associated with a result set

  • « db2_foreign_keys
  • db2_free_stmt »
  • PHP Manual
  • Функции IBM DB2
  • Frees resources associated with a result set

db2_free_result

(PECL ibm_db2 >= 1.0.0)

db2_free_result — Frees resources associated with a result set

Описание

bool db2_free_result ( resource $stmt )

Frees the system and database resources that are associated with a result set. These resources are freed implicitly when a script finishes, but you can call db2_free_result() to explicitly free the result set resources before the end of the script.

Список параметров

stmt

A valid statement resource.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • db2_free_stmt() - Frees resources associated with the indicated statement resource


Frees resources associated with the indicated statement resource

  • « db2_free_result
  • db2_get_option »
  • PHP Manual
  • Функции IBM DB2
  • Frees resources associated with the indicated statement resource

db2_free_stmt

(PECL ibm_db2 >= 1.0.0)

db2_free_stmt — Frees resources associated with the indicated statement resource

Описание

bool db2_free_stmt ( resource $stmt )

Frees the system and database resources that are associated with a statement resource. These resources are freed implicitly when a script finishes, but you can call db2_free_stmt() to explicitly free the statement resources before the end of the script.

Список параметров

stmt

A valid statement resource.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • db2_free_result() - Frees resources associated with a result set


Retrieves an option value for a statement resource or a connection resource

  • « db2_free_stmt
  • db2_last_insert_id »
  • PHP Manual
  • Функции IBM DB2
  • Retrieves an option value for a statement resource or a connection resource

db2_get_option

(PECL ibm_db2 >= 1.6.0)

db2_get_option — Retrieves an option value for a statement resource or a connection resource

Описание

string db2_get_option ( resource $resource , string $option )

Retrieves the value of a specified option value for a statement resource or a connection resource.

Список параметров

resource

A valid statement resource as returned from db2_prepare() or a valid connection resource as returned from db2_connect() or db2_pconnect().

option

A valid statement or connection options. The following new options are available as of ibm_db2 version 1.6.0. They provide useful tracking information that can be set during execution with db2_get_option().

Замечание:

Prior versions of ibm_db2 do not support these new options.

When the value in each option is being set, some servers might not handle the entire length provided and might truncate the value.

To ensure that the data specified in each option is converted correctly when transmitted to a host system, use only the characters A through Z, 0 through 9, and the underscore (_) or period (.).

userid

SQL_ATTR_INFO_USERID - A pointer to a null-terminated character string used to identify the client user ID sent to the host database server when using DB2 Connect.

Замечание:

DB2 for z/OS and OS/390 servers support up to a length of 16 characters. This user-id is not to be confused with the authentication user-id, it is for identification purposes only and is not used for any authorization.

acctstr

SQL_ATTR_INFO_ACCTSTR - A pointer to a null-terminated character string used to identify the client accounting string sent to the host database server when using DB2 Connect.

Замечание:

DB2 for z/OS and OS/390 servers support up to a length of 200 characters.

applname

SQL_ATTR_INFO_APPLNAME - A pointer to a null-terminated character string used to identify the client application name sent to the host database server when using DB2 Connect.

Замечание:

DB2 for z/OS and OS/390 servers support up to a length of 32 characters.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME - A pointer to a null-terminated character string used to identify the client workstation name sent to the host database server when using DB2 Connect.

Замечание:

DB2 for z/OS and OS/390 servers support up to a length of 18 characters.

The following table specifies which options are compatible with the available resource types:

Resource-Parameter Matrix
Key | Value | Resource Type
 |  | Connection | Statement | Result Set
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

Возвращаемые значения

Returns the current setting of the connection attribute provided on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Setting and retrieving parameters through a connection resource

<?php
/* Database Connection Parameters */
$database = 'SAMPLE';
$user     = 'db2inst1';
$password = 'ibmdb2';

/* Obtain Connection Resource */
$conn = db2_connect($database, $user, $password);

echo "Client attributes passed through connection string:\n";

/* Create the associative options array with valid key-value pairs */
/* Assign the attributes through connection string */
/* Access the options specified */
$options1 = array('userid' => 'db2inst1');
$conn1 = db2_connect($database, $user, $password, $options1);
$val = db2_get_option($conn1, 'userid');
echo $val . "\n";

$options2 = array('acctstr' => 'account');
$conn2 = db2_connect($database, $user, $password, $options2);
$val = db2_get_option($conn2, 'acctstr');
echo $val . "\n";

$options3 = array('applname' => 'myapp');
$conn3 = db2_connect($database, $user, $password, $options3);
$val = db2_get_option($conn3, 'applname');
echo $val . "\n";

$options4 = array('wrkstnname' => 'workstation');
$conn4 = db2_connect($database, $user, $password, $options4);
$val = db2_get_option($conn4, 'wrkstnname');
echo $val . "\n";

echo "Client attributes passed post-connection:\n";

/* Create the associative options array with valid key-value pairs */
/* Assign the attributes after a connection is made */
/* Access the options specified */
$options5 = array('userid' => 'db2inst1');
$conn5 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn5, $options5, 1);
$val = db2_get_option($conn5, 'userid');
echo $val . "\n";

$options6 = array('acctstr' => 'account');
$conn6 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn6, $options6, 1);
$val = db2_get_option($conn6, 'acctstr');
echo $val . "\n";

$options7 = array('applname' => 'myapp');
$conn7 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn7, $options7, 1);
$val = db2_get_option($conn7, 'applname');
echo $val . "\n";

$options8 = array('wrkstnname' => 'workstation');
$conn8 = db2_connect($database, $user, $password);
$rc = db2_set_option($conn8, $options8, 1);
$val = db2_get_option($conn8, 'wrkstnname');
echo $val . "\n";
?>

Результат выполнения данного примера:

Client attributes passed through connection string:
db2inst1
account
myapp
workstation
Client attributes passed post-connection:
db2inst1
account
myapp
workstation

Смотрите также

  • db2_connect() - Returns a connection to a database
  • db2_cursor_type() - Возвращает тип курсора, который используется в ресурсе оператора
  • db2_exec() - Executes an SQL statement directly
  • db2_set_option() - Установка опции для соединения или ресурса оператора
  • db2_pconnect() - Returns a persistent connection to a database
  • db2_prepare() - Prepares an SQL statement to be executed


Returns the auto generated ID of the last insert query that successfully executed on this connection

  • « db2_get_option
  • db2_lob_read »
  • PHP Manual
  • Функции IBM DB2
  • Returns the auto generated ID of the last insert query that successfully executed on this connection

db2_last_insert_id

(PECL ibm_db2 >= 1.7.1)

db2_last_insert_id — Returns the auto generated ID of the last insert query that successfully executed on this connection

Описание

string db2_last_insert_id ( resource $resource )

Returns the auto generated ID of the last insert query that successfully executed on this connection.

The result of this function is not affected by any of the following:

  • A single row INSERT statement with a VALUES clause for a table without an identity column.

  • A multiple row INSERT statement with a VALUES clause.

  • An INSERT statement with a fullselect.

  • A ROLLBACK TO SAVEPOINT statement.

Список параметров

resource

A valid connection resource as returned from db2_connect() or db2_pconnect(). The value of this parameter cannot be a statement resource or result set resource.

Возвращаемые значения

Returns the auto generated ID of last insert query that successfully executed on this connection.

Примеры

Пример #1 A db2_last_insert_id() example

The following example shows how to return the auto generated ID of last insert query that successfully executed on this connection.

<?php

$database = "SAMPLE";
$user = "db2inst1";
$password = "ibmdb2";

$conn = db2_connect($database, $user, $password);
if($conn) {
    $createTable = "CREATE TABLE lastInsertID
      (id integer GENERATED BY DEFAULT AS IDENTITY, name varchar(20))";
    $insertTable = "INSERT INTO lastInsertID (name) VALUES ('Temp Name')";

    $stmt = @db2_exec($conn, $createTable);

    /* Checking for single row inserted. */
    $stmt = db2_exec($conn, $insertTable);
    $ret =  db2_last_insert_id($conn);
    if($ret) {
        echo "Last Insert ID is : " . $ret . "\n";
    } else {
        echo "No Last insert ID.\n";
    }

    db2_close($conn);
}
else {
    echo "Connection failed.";
}
?>

Результат выполнения данного примера:

Last Insert ID is : 1


Gets a user defined size of LOB files with each invocation

  • « db2_last_insert_id
  • db2_next_result »
  • PHP Manual
  • Функции IBM DB2
  • Gets a user defined size of LOB files with each invocation

db2_lob_read

(PECL ibm_db2 >= 1.6.0)

db2_lob_read — Gets a user defined size of LOB files with each invocation

Описание

string db2_lob_read ( resource $stmt , int $colnum , int $length )

Use db2_lob_read() to iterate through a specified column of a result set and retrieve a user defined size of LOB data.

Список параметров

stmt

A valid stmt resource containing LOB data.

colnum

A valid column number in the result set of the stmt resource.

length

The size of the LOB data to be retrieved from the stmt resource.

Возвращаемые значения

Returns the amount of data the user specifies. Returns FALSE if the data cannot be retrieved.

Примеры

Пример #1 Iterating through different types of data

<?php

/* Database Connection Parameters */
$db = 'SAMPLE';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Obtain Connection Resource */
$conn = db2_connect($db,$username,$password);

if ($conn) {
    $drop = 'DROP TABLE clob_stream';
    $result = @db2_exec( $conn, $drop );

    $create = 'CREATE TABLE clob_stream (id INTEGER, my_clob CLOB)';
    $result = db2_exec( $conn, $create );

    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO clob_stream (id,my_clob) VALUES (1, ?)");
    $variable = "THIS IS A CLOB TEST. THIS IS A CLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);

    $sql = "SELECT id,my_clob FROM clob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Read LOB data */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Loop $i: $data\n";
        $i = $i + 1;
    }

    $drop = 'DROP TABLE blob_stream';
    $result = @db2_exec( $conn, $drop );

    $create = 'CREATE TABLE blob_stream (id INTEGER, my_blob CLOB)';
    $result = db2_exec( $conn, $create );

    $variable = "";
    $stmt = db2_prepare($conn, "INSERT INTO blob_stream (id,my_blob) VALUES (1, ?)");
    $variable = "THIS IS A BLOB TEST. THIS IS A BLOB TEST.";
    db2_bind_param($stmt, 1, "variable", DB2_PARAM_IN);
    db2_execute($stmt);

    $sql = "SELECT id,my_blob FROM blob_stream";
    $result = db2_prepare($conn, $sql);
    db2_execute($result);
    db2_fetch_row($result);
    $i = 0;
    /* Read LOB data */
    while ($data = db2_lob_read($result, 2, 6)) {
        echo "Loop $i: $data\n";
        $i = $i + 1;
    }
} else {
    echo 'no connection: ' . db2_conn_errormsg();
}

?>

Результат выполнения данного примера:

Loop 0: THIS I
Loop 1: S A CL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  CLOB
Loop 6: TEST.
Loop 0: THIS I
Loop 1: S A BL
Loop 2: OB TES
Loop 3: T. THI
Loop 4: S IS A
Loop 5:  BLOB
Loop 6: TEST.

Смотрите также

  • db2_bind_param() - Binds a PHP variable to an SQL statement parameter
  • db2_exec() - Executes an SQL statement directly
  • db2_execute() - Executes a prepared SQL statement
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_result() - Returns a single column from a row in the result set


Requests the next result set from a stored procedure

  • « db2_lob_read
  • db2_num_fields »
  • PHP Manual
  • Функции IBM DB2
  • Requests the next result set from a stored procedure

db2_next_result

(PECL ibm_db2 >= 1.0.0)

db2_next_result — Requests the next result set from a stored procedure

Описание

resource db2_next_result ( resource $stmt )

A stored procedure can return zero or more result sets. While you handle the first result set in exactly the same way you would handle the results returned by a simple SELECT statement, to fetch the second and subsequent result sets from a stored procedure you must call the db2_next_result() function and return the result to a uniquely named PHP variable.

Список параметров

stmt

A prepared statement returned from db2_exec() or db2_execute().

Возвращаемые значения

Returns a new statement resource containing the next result set if the stored procedure returned another result set. Returns FALSE if the stored procedure did not return another result set.

Примеры

Пример #1 Calling a stored procedure that returns multiple result sets

In the following example, we call a stored procedure that returns three result sets. The first result set is fetched directly from the same statement resource on which we invoked the CALL statement, while the second and third result sets are fetched from statement resources returned from our calls to the db2_next_result() function.

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
  $stmt = db2_exec($conn, 'CALL multiResults()');

  print "Fetching first result set\n";
  while ($row = db2_fetch_array($stmt)) {
    var_dump($row);
  }

  print "\nFetching second result set\n";
  $res = db2_next_result($stmt);
  if ($res) {
    while ($row = db2_fetch_array($res)) {
      var_dump($row);
    }
  }

  print "\nFetching third result set\n";
  $res2 = db2_next_result($stmt);
  if ($res2) {
    while ($row = db2_fetch_array($res2)) {
      var_dump($row);
    }
  }

  db2_close($conn);
}
?>

Результат выполнения данного примера:

Fetching first result set
array(2) {
  [0]=>
  string(16) "Bubbles         "
  [1]=>
  int(3)
}
array(2) {
  [0]=>
  string(16) "Gizmo           "
  [1]=>
  int(4)
}

Fetching second result set
array(4) {
  [0]=>
  string(16) "Sweater         "
  [1]=>
  int(6)
  [2]=>
  string(5) "llama"
  [3]=>
  string(6) "150.00"
}
array(4) {
  [0]=>
  string(16) "Smarty          "
  [1]=>
  int(2)
  [2]=>
  string(5) "horse"
  [3]=>
  string(6) "350.00"
}

Fetching third result set
array(1) {
  [0]=>
  string(16) "Bubbles         "
}
array(1) {
  [0]=>
  string(16) "Gizmo           "
}


Возвращает количество полей в результирующем наборе

  • « db2_next_result
  • db2_num_rows »
  • PHP Manual
  • Функции IBM DB2
  • Возвращает количество полей в результирующем наборе

db2_num_fields

(PECL ibm_db2 >= 1.0.0)

db2_num_fields — Возвращает количество полей в результирующем наборе

Описание

int db2_num_fields ( resource $stmt )

Возвращает количество полей в результирующем наборе. Это полезно при обработке результирующих наборов динамически сформированных запросов, или в случае использования хранимых процедур.

Список параметров

stmt

Корректный ресурс оператора, содержащий результирующий набор.

Возвращаемые значения

Возвращает число полей в результирующем наборе или FALSE, если передан некорректный ресурс оператора.

Примеры

Пример #1 Получение количества полей в результирующем наборе

Следующий пример демонстрирует получение количества полей в результирующем наборе.

<?php

$sql = "SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, $sql);
$columns = db2_num_fields($stmt);

echo "В результирующем наборе {$columns} столбцов.";
?>

Результат выполнения данного примера:

В результирующем наборе 4 столбцов.

Смотрите также

  • db2_execute() - Executes a prepared SQL statement
  • db2_field_display_size() - Returns the maximum number of bytes required to display a column
  • db2_field_name() - Returns the name of the column in the result set
  • db2_field_num() - Returns the position of the named column in a result set
  • db2_field_precision() - Returns the precision of the indicated column in a result set
  • db2_field_scale() - Returns the scale of the indicated column in a result set
  • db2_field_type() - Returns the data type of the indicated column in a result set
  • db2_field_width() - Returns the width of the current value of the indicated column in a result set


Returns the number of rows affected by an SQL statement

  • « db2_num_fields
  • db2_pclose »
  • PHP Manual
  • Функции IBM DB2
  • Returns the number of rows affected by an SQL statement

db2_num_rows

(PECL ibm_db2 >= 1.0.0)

db2_num_rows — Returns the number of rows affected by an SQL statement

Описание

int db2_num_rows ( resource $stmt )

Returns the number of rows deleted, inserted, or updated by an SQL statement.

To determine the number of rows that will be returned by a SELECT statement, issue SELECT COUNT(*) with the same predicates as your intended SELECT statement and retrieve the value.

If your application logic checks the number of rows returned by a SELECT statement and branches if the number of rows is 0, consider modifying your application to attempt to return the first row with one of db2_fetch_assoc(), db2_fetch_both(), db2_fetch_array(), or db2_fetch_row(), and branch if the fetch function returns FALSE.

Замечание:

If you issue a SELECT statement using a scrollable cursor, db2_num_rows() returns the number of rows returned by the SELECT statement. However, the overhead associated with scrollable cursors significantly degrades the performance of your application, so if this is the only reason you are considering using scrollable cursors, you should use a forward-only cursor and either call SELECT COUNT(*) or rely on the boolean return value of the fetch functions to achieve the equivalent functionality with much better performance.

Список параметров

stmt

A valid stmt resource containing a result set.

Возвращаемые значения

Returns the number of rows affected by the last SQL statement issued by the specified statement handle.


Closes a persistent database connection

  • « db2_num_rows
  • db2_pconnect »
  • PHP Manual
  • Функции IBM DB2
  • Closes a persistent database connection

db2_pclose

(PECL ibm_db2 >= 1.8.0)

db2_pclose — Closes a persistent database connection

Описание

bool db2_pclose ( resource $resource )

This function closes a DB2 client connection created with db2_pconnect() and returns the corresponding resources to the database server.

Замечание:

This function is only available on i5/OS in response to i5/OS system administration requests.

If you have a persistent DB2 client connection created with db2_pconnect(), you may use this function to close the connection. To avoid substantial connection performance penalties, this function should only be used in rare cases when the persistent connection has become unresponsive or the persistent connection will not be needed for a long period of time.

Список параметров

connection

Specifies an active DB2 client connection.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Closing a persistent connection

The following example demonstrates a successful attempt to close a connection to an IBM DB2 i5/OS database.

<?php
$conn = db2_pconnect('', '', '');
$rc = db2_pclose($conn);
if ($rc) {
    echo "Connection was successfully closed.";
}
?>

Результат выполнения данного примера:

Connection was successfully closed.

Смотрите также

  • db2_close() - Закрывает соединение с базой данных
  • db2_pconnect() - Returns a persistent connection to a database


Returns a persistent connection to a database

  • « db2_pclose
  • db2_prepare »
  • PHP Manual
  • Функции IBM DB2
  • Returns a persistent connection to a database

db2_pconnect

(PECL ibm_db2 >= 1.0.0)

db2_pconnect — Returns a persistent connection to a database

Описание

resource db2_pconnect ( string $database , string $username , string $password [, array $options ] )

Returns a persistent connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database.

For more information on persistent connections, refer to Постоянные соединения с базами данных.

Calling db2_close() on a persistent connection always returns TRUE, but the underlying DB2 client connection remains open and waiting to serve the next matching db2_pconnect() request.

Users running version 1.9.0 or later of ibm_db2 should be aware that the extension will perform a transaction rollback on persistent connections at the end of a request, thus ending the transaction. This prevents the transaction block from carrying over to the next request which uses that connection if script execution ends before the transaction block does.

Список параметров

database

The database alias in the DB2 client catalog.

username

The username with which you are connecting to the database.

password

The password with which you are connecting to the database.

options

An associative array of connection options that affect the behavior of the connection, where valid array keys include:

autocommit

Passing the DB2_AUTOCOMMIT_ON value turns autocommit on for this connection handle.

Passing the DB2_AUTOCOMMIT_OFF value turns autocommit off for this connection handle.

DB2_ATTR_CASE

Passing the DB2_CASE_NATURAL value specifies that column names are returned in natural case.

Passing the DB2_CASE_LOWER value specifies that column names are returned in lower case.

Passing the DB2_CASE_UPPER value specifies that column names are returned in upper case.

CURSOR

Passing the DB2_FORWARD_ONLY value specifies a forward-only cursor for a statement resource. This is the default cursor type and is supported on all database servers.

Passing the DB2_SCROLLABLE value specifies a scrollable cursor for a statement resource. This mode enables random access to rows in a result set, but currently is supported only by IBM DB2 Universal Database.

The following new option is available in ibm_db2 version 1.7.0 and later.

trustedcontext

Passing the DB2_TRUSTED_CONTEXT_ENABLE value turns trusted context on for this connection handle. This parameter cannot be set using db2_set_option().

This key works only if the database is cataloged (even if the database is local), or if you specify the full DSN when you create the connection.

To catalog the database, use following commands:

db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

The following new i5/OS options are available in ibm_db2 version 1.5.1 and later.

Подсказка

Conflicting connection attributes used in conjunction with persistent connections can produce indeterminate results on i5/OS. Site policies should be establish for all applications using each persistent connection user profile. The default DB2_AUTOCOMMIT_ON is suggested when using persistent connections.

i5_lib

A character value that indicates the default library that will be used for resolving unqualified file references. This is not valid if the connection is using system naming mode.

i5_naming

DB2_I5_NAMING_ON value turns on DB2 UDB CLI iSeries system naming mode. Files are qualified using the slash (/) delimiter. Unqualified files are resolved using the library list for the job.

DB2_I5_NAMING_OFF value turns off DB2 UDB CLI default naming mode, which is SQL naming. Files are qualified using the period (.) delimiter. Unqualified files are resolved using either the default library or the current user ID.

i5_commit

The i5_commit attribute should be set before the db2_pconnect(). If the value is changed after the connection has been established, and the connection is to a remote data source, the change does not take effect until the next successful db2_pconnect() for the connection handle.

Замечание:

The php.ini setting ibm_db2.i5_allow_commit==0 or DB2_I5_TXN_NO_COMMIT is the default, but may be overridden with the i5_commit option.

DB2_I5_TXN_NO_COMMIT - Commitment control is not used.

DB2_I5_TXN_READ_UNCOMMITTED - Dirty reads, nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_READ_COMMITTED - Dirty reads are not possible. Nonrepeatable reads, and phantoms are possible.

DB2_I5_TXN_REPEATABLE_READ - Dirty reads and nonrepeatable reads are not possible. Phantoms are possible.

DB2_I5_TXN_SERIALIZABLE - Transactions are serializable. Dirty reads, non-repeatable reads, and phantoms are not possible

i5_query_optimize

DB2_FIRST_IO All queries are optimized with the goal of returning the first page of output as fast as possible. This goal works well when the output is controlled by a user who is most likely to cancel the query after viewing the first page of output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause.

DB2_ALL_IO All queries are optimized with the goal of running the entire query to completion in the shortest amount of elapsed time. This is a good option when the output of a query is being written to a file or report, or the interface is queuing the output data. Queries coded with an OPTIMIZE FOR nnn ROWS clause honor the goal specified by the clause. This is the default.

i5_dbcs_alloc

DB2_I5_DBCS_ALLOC_ON value turns on DB2 6X allocation scheme for DBCS translation column size growth.

DB2_I5_DBCS_ALLOC_OFF value turns off DB2 6X allocation scheme for DBCS translation column size growth.

Замечание:

The php.ini setting ibm_db2.i5_dbcs_alloc==0 or DB2_I5_DBCS_ALLOC_OFF is the default, but may be overridden with the i5_dbcs_alloc option.

i5_date_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) date format yyyy-mm-dd is used. This is the default.

DB2_I5_FMT_USA - The United States date format mm/dd/yyyy is used.

DB2_I5_FMT_EUR - The European date format dd.mm.yyyy is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard date format yyyy-mm-dd is used.

DB2_I5_FMT_MDY - The date format mm/dd/yyyy is used.

DB2_I5_FMT_DMY - The date format dd/mm/yyyy is used.

DB2_I5_FMT_YMD - The date format yy/mm/dd is used.

DB2_I5_FMT_JUL - The Julian date format yy/ddd is used.

DB2_I5_FMT_JOB - The job default is used.

i5_date_sep

DB2_I5_SEP_SLASH - A slash ( / ) is used as the date separator. This is the default.

DB2_I5_SEP_DASH - A dash ( - ) is used as the date separator.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the date separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the date separator.

DB2_I5_SEP_BLANK - A blank is used as the date separator.

DB2_I5_SEP_JOB - The job default is used

i5_time_fmt

DB2_I5_FMT_ISO - The International Organization for Standardization (ISO) time format hh.mm.ss is used. This is the default.

DB2_I5_FMT_USA - The United States time format hh:mmxx is used, where xx is AM or PM.

DB2_I5_FMT_EUR - The European time format hh.mm.ss is used.

DB2_I5_FMT_JIS - The Japanese Industrial Standard time format hh:mm:ss is used.

DB2_I5_FMT_HMS - The hh:mm:ss format is used.

i5_time_sep

DB2_I5_SEP_COLON - A colon ( : ) is used as the time separator. This is the default.

DB2_I5_SEP_PERIOD - A period ( . ) is used as the time separator.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the time separator.

DB2_I5_SEP_BLANK - A blank is used as the time separator.

DB2_I5_SEP_JOB - The job default is used.

i5_decimal_sep

DB2_I5_SEP_PERIOD - A period ( . ) is used as the decimal separator. This is the default.

DB2_I5_SEP_COMMA - A comma ( , ) is used as the decimal separator.

DB2_I5_SEP_JOB - The job default is used.

The following new i5/OS option is available in ibm_db2 version 1.8.0 and later.

i5_libl

A character value that indicates the library list that will be used for resolving unqualified file references. Specify the library list elements separated by blanks 'i5_libl'=>"MYLIB YOURLIB ANYLIB".

Замечание:

i5_libl calls qsys2/qcmdexc('cmd',cmdlen), which is only available in i5/OS V5R4 and later.

Возвращаемые значения

Returns a connection handle resource if the connection attempt is successful. db2_pconnect() tries to reuse an existing connection resource that exactly matches the database, username, and password parameters. If the connection attempt fails, db2_pconnect() returns FALSE.

Список изменений

Версия | Описание
ibm_db2 1.9.0 | Active transactions within a persistent connection will be rolled back at the end of each request.
ibm_db2 1.8.0 | The i5_libl option is available for i5/OS users.
ibm_db2 1.7.0 | The trustedcontext option is available.
ibm_db2 1.5.1 | The i5_lib, i5_naming, i5_commit, i5_query_optimize, i5_dbcs_alloc, i5_date_fmt, i5_date_sep, i5_time_fmt, i5_time_sep and i5_decimal_sep options are available for i5/OS users.

Примеры

Пример #1 A db2_pconnect() example

In the following example, the first call to db2_pconnect() returns a new persistent connection resource. The second call to db2_pconnect() returns a persistent connection resource that simply reuses the first persistent connection resource.

<?php
$database = 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$pconn = db2_pconnect($database, $user, $password);

if ($pconn) {
    echo "Persistent connection succeeded.";
}
else {
    echo "Persistent connection failed.";
}

$pconn2 = db2_pconnect($database, $user, $password);
if ($pconn) {
    echo "Second persistent connection succeeded.";
}
else {
    echo "Second persistent connection failed.";
}
?>

Результат выполнения данного примера:

Persistent connection succeeded.
Second persistent connection succeeded.

Пример #2 Using trusted context

The following example shows how to enable trusted context, switch users, and get the current user ID.

<?php

$database = "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
  PROTOCOL=TCPIP;UID=$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_pconnect($dsn, "", "", $options);
if($tc_conn) {
    echo "Explicit trusted connection succeeded.\n";

    if(db2_get_option($tc_conn, "trustedcontext")) {
        $userBefore = db2_get_option($tc_conn, "trusted_user");

        //Do some work as user 1.

        //Switching to trusted user.
        $parameters = array("trusted_user" => $tc_user,
          "trusted_password" => $tcuser_pass);
        $res = db2_set_option ($tc_conn, $parameters, 1);

        $userAfter = db2_get_option($tc_conn, "trusted_user");
        //Do more work as trusted user.

        if($userBefore != $userAfter) {
            echo "User has been switched." . "\n";
        }
    }

    db2_close($tc_conn);
}
else {
    echo "Explicit trusted connection failed.\n";
}
?>

Результат выполнения данного примера:

Explicit trusted connection succeeded.
User has been switched.

Смотрите также

  • db2_connect() - Returns a connection to a database


Prepares an SQL statement to be executed

  • « db2_pconnect
  • db2_primary_keys »
  • PHP Manual
  • Функции IBM DB2
  • Prepares an SQL statement to be executed

db2_prepare

(PECL ibm_db2 >= 1.0.0)

db2_prepare — Prepares an SQL statement to be executed

Описание

resource db2_prepare ( resource $connection , string $statement [, array $options ] )

db2_prepare() creates a prepared SQL statement which can include 0 or more parameter markers (? characters) representing parameters for input, output, or input/output. You can pass parameters to the prepared statement using db2_bind_param(), or for input values only, as an array passed to db2_execute().

There are three main advantages to using prepared statements in your application:

  • Performance: when you prepare a statement, the database server creates an optimized access plan for retrieving data with that statement. Subsequently issuing the prepared statement with db2_execute() enables the statements to reuse that access plan and avoids the overhead of dynamically creating a new access plan for every statement you issue.

  • Security: when you prepare a statement, you can include parameter markers for input values. When you execute a prepared statement with input values for placeholders, the database server checks each input value to ensure that the type matches the column definition or parameter definition.

  • Advanced functionality: Parameter markers not only enable you to pass input values to prepared SQL statements, they also enable you to retrieve OUT and INOUT parameters from stored procedures using db2_bind_param().

Список параметров

connection

A valid database connection resource variable as returned from db2_connect() or db2_pconnect().

statement

An SQL statement, optionally containing one or more parameter markers..

options

An associative array containing statement options. You can use this parameter to request a scrollable cursor on database servers that support this functionality.

For a description of valid statement options, see db2_set_option().

Возвращаемые значения

Returns a statement resource if the SQL statement was successfully parsed and prepared by the database server. Returns FALSE if the database server returned an error. You can determine which error was returned by calling db2_stmt_error() or db2_stmt_errormsg().

Примеры

Пример #1 Preparing and executing an SQL statement with parameter markers

The following example prepares an INSERT statement that accepts four parameter markers, then iterates over an array of arrays containing the input values to be passed to db2_execute().

<?php
$animals = array(
    array(0, 'cat', 'Pook', 3.2),
    array(1, 'dog', 'Peaches', 12.3),
    array(2, 'horse', 'Smarty', 350.0),
);

$insert = 'INSERT INTO animals (id, breed, name, weight)
    VALUES (?, ?, ?, ?)';
$stmt = db2_prepare($conn, $insert);
if ($stmt) {
    foreach ($animals as $animal) {
        $result = db2_execute($stmt, $animal);
    }
}
?>

Смотрите также

  • db2_bind_param() - Binds a PHP variable to an SQL statement parameter
  • db2_execute() - Executes a prepared SQL statement
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns a result set listing primary keys for a table

  • « db2_prepare
  • db2_procedure_columns »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing primary keys for a table

db2_primary_keys

(PECL ibm_db2 >= 1.0.0)

db2_primary_keys — Returns a result set listing primary keys for a table

Описание

resource db2_primary_keys ( resource $connection , string $qualifier , string $schema , string $table-name )

Returns a result set listing the primary keys for a table.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. If schema is NULL, db2_primary_keys() matches the schema for the current connection.

table-name

The name of the table.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the primary keys for the specified table. The result set is composed of the following columns:

Column name | Description
TABLE_CAT | Name of the catalog for the table containing the primary key. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema for the table containing the primary key.
TABLE_NAME | Name of the table containing the primary key.
COLUMN_NAME | Name of the column containing the primary key.
KEY_SEQ | 1-indexed position of the column in the key.
PK_NAME | The name of the primary key.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing stored procedure parameters

  • « db2_primary_keys
  • db2_procedures »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing stored procedure parameters

db2_procedure_columns

(PECL ibm_db2 >= 1.0.0)

db2_procedure_columns — Returns a result set listing stored procedure parameters

Описание

resource db2_procedure_columns ( resource $connection , string $qualifier , string $schema , string $procedure , string $parameter )

Returns a result set listing the parameters for one or more stored procedures.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the procedures. This parameter accepts a search pattern containing _ and % as wildcards.

procedure

The name of the procedure. This parameter accepts a search pattern containing _ and % as wildcards.

parameter

The name of the parameter. This parameter accepts a search pattern containing _ and % as wildcards. If this parameter is NULL, all parameters for the specified stored procedures are returned.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the parameters for the stored procedures matching the specified parameters. The rows are composed of the following columns:

Column name | Description
PROCEDURE_CAT | The catalog that contains the procedure. The value is NULL if this table does not have catalogs.
PROCEDURE_SCHEM | Name of the schema that contains the stored procedure.
PROCEDURE_NAME | Name of the procedure.
COLUMN_NAME | Name of the parameter.
COLUMN_TYPE

An integer value representing the type of the parameter:

Return value | Parameter type
1 (SQL_PARAM_INPUT) | Input (IN) parameter.
2 (SQL_PARAM_INPUT_OUTPUT) | Input/output (INOUT) parameter.
3 (SQL_PARAM_OUTPUT) | Output (OUT) parameter.
DATA_TYPE | The SQL data type for the parameter represented as an integer value.
TYPE_NAME | A string representing the data type for the parameter.
COLUMN_SIZE | An integer value representing the size of the parameter.
BUFFER_LENGTH | Maximum number of bytes necessary to store data for this parameter.
DECIMAL_DIGITS | The scale of the parameter, or NULL where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or NULL (representing a data type for which radix is not applicable).
NULLABLE | An integer value representing whether the parameter is nullable or not.
REMARKS | Description of the parameter.
COLUMN_DEF | Default value for the parameter.
SQL_DATA_TYPE | An integer value representing the size of the parameter.
SQL_DATETIME_SUB | Returns an integer value representing a datetime subtype code, or NULL for SQL data types to which this does not apply.
CHAR_OCTET_LENGTH | Maximum length in octets for a character data type parameter, which matches COLUMN_SIZE for single-byte character set data, or NULL for non-character data types.
ORDINAL_POSITION | The 1-indexed position of the parameter in the CALL statement.
IS_NULLABLE | A string value where 'YES' means that the parameter accepts or returns NULL values and 'NO' means that the parameter does not accept or return NULL values.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the stored procedures registered in a database

  • « db2_procedure_columns
  • db2_result »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the stored procedures registered in a database

db2_procedures

(PECL ibm_db2 >= 1.0.0)

db2_procedures — Returns a result set listing the stored procedures registered in a database

Описание

resource db2_procedures ( resource $connection , string $qualifier , string $schema , string $procedure )

Returns a result set listing the stored procedures registered in a database.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the procedures. This parameter accepts a search pattern containing _ and % as wildcards.

procedure

The name of the procedure. This parameter accepts a search pattern containing _ and % as wildcards.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the stored procedures matching the specified parameters. The rows are composed of the following columns:

Column name | Description
PROCEDURE_CAT | The catalog that contains the procedure. The value is NULL if this table does not have catalogs.
PROCEDURE_SCHEM | Name of the schema that contains the stored procedure.
PROCEDURE_NAME | Name of the procedure.
NUM_INPUT_PARAMS | Number of input (IN) parameters for the stored procedure.
NUM_OUTPUT_PARAMS | Number of output (OUT) parameters for the stored procedure.
NUM_RESULT_SETS | Number of result sets returned by the stored procedure.
REMARKS | Any comments about the stored procedure.
PROCEDURE_TYPE | Always returns 1, indicating that the stored procedure does not return a return value.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a single column from a row in the result set

  • « db2_procedures
  • db2_rollback »
  • PHP Manual
  • Функции IBM DB2
  • Returns a single column from a row in the result set

db2_result

(PECL ibm_db2 >= 1.0.0)

db2_result — Returns a single column from a row in the result set

Описание

mixed db2_result ( resource $stmt , mixed $column )

Use db2_result() to return the value of a specified column in the current row of a result set. You must call db2_fetch_row() before calling db2_result() to set the location of the result set pointer.

Список параметров

stmt

A valid stmt resource.

column

Either an integer mapping to the 0-indexed field in the result set, or a string matching the name of the column.

Возвращаемые значения

Returns the value of the requested field if the field exists in the result set. Returns NULL if the field does not exist, and issues a warning.

Примеры

Пример #1 A db2_result() example

The following example demonstrates how to iterate through a result set with db2_fetch_row() and retrieve columns from the result set with db2_result().

<?php
$sql = 'SELECT name, breed FROM animals WHERE weight < ?';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt, array(10));
while (db2_fetch_row($stmt)) {
    $name = db2_result($stmt, 0);
    $breed = db2_result($stmt, 'BREED');
    print "$name $breed";
}
?>

Результат выполнения данного примера:

cat Pook
gold fish Bubbles
budgerigar Gizmo
goat Rickety Ride

Смотрите также

  • db2_fetch_array() - Returns an array, indexed by column position, representing a row in a result set
  • db2_fetch_assoc() - Returns an array, indexed by column name, representing a row in a result set
  • db2_fetch_both() - Returns an array, indexed by both column name and position, representing a row in a result set
  • db2_fetch_object() - Returns an object with properties representing columns in the fetched row
  • db2_fetch_row() - Sets the result set pointer to the next row or requested row


Откатывает транзакцию

  • « db2_result
  • db2_server_info »
  • PHP Manual
  • Функции IBM DB2
  • Откатывает транзакцию

db2_rollback

(PECL ibm_db2 >= 1.0.0)

db2_rollback — Откатывает транзакцию

Описание

bool db2_rollback ( resource $connection )

Откатывает текущую транзакцию на указанном соединении и начинает новую. По умолчанию, в PHP, используется автоподтверждение транзакций, так что функция db2_rollback() нужна только в том случае, если вы принудительно отключили автоподтверждение транзакций для соединения.

Список параметров

connection

Переменная содержащая активный ресурс подключения, полученный с помощью db2_connect() или db2_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Откат операции DELETE

В следующем примере мы посчитаем количество строк в таблице, отключим автоподтверждение транзакций, удалим все строки в таблице и убедимся, что их стало 0. После этого мы используем функцию db2_rollback() и проверим, что число строк в таблице стало таким же, как и до удаления - это подтвердит, что транзакция успешно откатилась.

<?php
$conn = db2_connect($database, $user, $password);

if ($conn) {
    $stmt = db2_exec($conn, "SELECT count(*) FROM animals");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Отключаем автоподтверждение
    db2_autocommit($conn, DB2_AUTOCOMMIT_OFF);

    // Удаляем все строки из ANIMALS
    db2_exec($conn, "DELETE FROM animals");

    $stmt = db2_exec($conn, "SELECT count(*) FROM animals");
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";

    // Откатываем операцию DELETE
    db2_rollback( $conn );

    $stmt = db2_exec( $conn, "SELECT count(*) FROM animals" );
    $res = db2_fetch_array( $stmt );
    echo $res[0] . "\n";
    db2_close($conn);
}
?>

Результат выполнения данного примера:

7
0
7

Смотрите также

  • db2_autocommit() - Возвращает или устанавливает режим автоподтверждения транзакций для соединения
  • db2_commit() - Подтверждает транзакцию


Returns an object with properties that describe the DB2 database server

  • « db2_rollback
  • db2_set_option »
  • PHP Manual
  • Функции IBM DB2
  • Returns an object with properties that describe the DB2 database server

db2_server_info

(PECL ibm_db2 >= 1.1.1)

db2_server_info — Returns an object with properties that describe the DB2 database server

Описание

object db2_server_info ( resource $connection )

This function returns an object with read-only properties that return information about the IBM DB2, Cloudscape, or Apache Derby database server. The following table lists the database server properties:

Database server properties
Property name | Return type | Description
DBMS_NAME | string | The name of the database server to which you are connected. For DB2 servers this is a combination of DB2 followed by the operating system on which the database server is running.
DBMS_VER | string | The version of the database server, in the form of a string "MM.mm.uuuu" where MM is the major version, mm is the minor version, and uuuu is the update. For example, "08.02.0001" represents major version 8, minor version 2, update 1.
DB_CODEPAGE | int | The code page of the database to which you are connected.
DB_NAME | string | The name of the database to which you are connected.
DFT_ISOLATION string

The default transaction isolation level supported by the server:

UR

Uncommitted read: changes are immediately visible by all concurrent transactions.

CS

Cursor stability: a row read by one transaction can be altered and committed by a second concurrent transaction.

RS

Read stability: a transaction can add or remove rows matching a search condition or a pending transaction.

RR

Repeatable read: data affected by pending transaction is not available to other transactions.

NC

No commit: any changes are visible at the end of a successful operation. Explicit commits and rollbacks are not allowed.

IDENTIFIER_QUOTE_CHAR | string | The character used to delimit an identifier.
INST_NAME | string | The instance on the database server that contains the database.
ISOLATION_OPTION | array | An array of the isolation options supported by the database server. The isolation options are described in the DFT_ISOLATION property.
KEYWORDS | array | An array of the keywords reserved by the database server.
LIKE_ESCAPE_CLAUSE | bool | TRUE if the database server supports the use of % and _ wildcard characters. FALSE if the database server does not support these wildcard characters.
MAX_COL_NAME_LEN | int | Maximum length of a column name supported by the database server, expressed in bytes.
MAX_IDENTIFIER_LEN | int | Maximum length of an SQL identifier supported by the database server, expressed in characters.
MAX_INDEX_SIZE | int | Maximum size of columns combined in an index supported by the database server, expressed in bytes.
MAX_PROC_NAME_LEN | int | Maximum length of a procedure name supported by the database server, expressed in bytes.
MAX_ROW_SIZE | int | Maximum length of a row in a base table supported by the database server, expressed in bytes.
MAX_SCHEMA_NAME_LEN | int | Maximum length of a schema name supported by the database server, expressed in bytes.
MAX_STATEMENT_LEN | int | Maximum length of an SQL statement supported by the database server, expressed in bytes.
MAX_TABLE_NAME_LEN | int | Maximum length of a table name supported by the database server, expressed in bytes.
NON_NULLABLE_COLUMNS | bool | TRUE if the database server supports columns that can be defined as NOT NULL, FALSE if the database server does not support columns defined as NOT NULL.
PROCEDURES | bool | TRUE if the database server supports the use of the CALL statement to call stored procedures, FALSE if the database server does not support the CALL statement.
SPECIAL_CHARS | string | A string containing all of the characters other than a-Z, 0-9, and underscore that can be used in an identifier name.
SQL_CONFORMANCE string

The level of conformance to the ANSI/ISO SQL-92 specification offered by the database server:

ENTRY

Entry-level SQL-92 compliance.

FIPS127

FIPS-127-2 transitional compliance.

FULL

Full level SQL-92 compliance.

INTERMEDIATE

Intermediate level SQL-92 compliance.

Список параметров

connection

Specifies an active DB2 client connection.

Возвращаемые значения

Returns an object on a successful call. Returns FALSE on failure.

Примеры

Пример #1 A db2_server_info() example

To retrieve information about the server, you must pass a valid database connection resource to db2_server_info().

<?php

$conn = db2_connect('sample', 'db2inst1', 'ibmdb2');

$server = db2_server_info( $conn );

if ($server) {
    echo "DBMS_NAME: ";                 var_dump( $server->DBMS_NAME );
    echo "DBMS_VER: ";                  var_dump( $server->DBMS_VER );
    echo "DB_CODEPAGE: ";               var_dump( $server->DB_CODEPAGE );
    echo "DB_NAME: ";                   var_dump( $server->DB_NAME );
    echo "INST_NAME: ";                 var_dump( $server->INST_NAME );
    echo "SPECIAL_CHARS: ";             var_dump( $server->SPECIAL_CHARS );
    echo "KEYWORDS: ";                  var_dump( sizeof($server->KEYWORDS) );
    echo "DFT_ISOLATION: ";             var_dump( $server->DFT_ISOLATION );
    echo "ISOLATION_OPTION: ";
    $il = '';
    foreach( $server->ISOLATION_OPTION as $opt )
    {
       $il .= $opt." ";
    }
    var_dump( $il );
    echo "SQL_CONFORMANCE: ";           var_dump( $server->SQL_CONFORMANCE );
    echo "PROCEDURES: ";                var_dump( $server->PROCEDURES );
    echo "IDENTIFIER_QUOTE_CHAR: ";     var_dump( $server->IDENTIFIER_QUOTE_CHAR );
    echo "LIKE_ESCAPE_CLAUSE: ";        var_dump( $server->LIKE_ESCAPE_CLAUSE );
    echo "MAX_COL_NAME_LEN: ";          var_dump( $server->MAX_COL_NAME_LEN );
    echo "MAX_ROW_SIZE: ";              var_dump( $server->MAX_ROW_SIZE );
    echo "MAX_IDENTIFIER_LEN: ";        var_dump( $server->MAX_IDENTIFIER_LEN );
    echo "MAX_INDEX_SIZE: ";            var_dump( $server->MAX_INDEX_SIZE );
    echo "MAX_PROC_NAME_LEN: ";         var_dump( $server->MAX_PROC_NAME_LEN );
    echo "MAX_SCHEMA_NAME_LEN: ";       var_dump( $server->MAX_SCHEMA_NAME_LEN );
    echo "MAX_STATEMENT_LEN: ";         var_dump( $server->MAX_STATEMENT_LEN );
    echo "MAX_TABLE_NAME_LEN: ";        var_dump( $server->MAX_TABLE_NAME_LEN );
    echo "NON_NULLABLE_COLUMNS: ";      var_dump( $server->NON_NULLABLE_COLUMNS );

    db2_close($conn);
}
?>

Результат выполнения данного примера:

DBMS_NAME: string(9) "DB2/LINUX"
DBMS_VER: string(10) "08.02.0000"
DB_CODEPAGE: int(1208)
DB_NAME: string(6) "SAMPLE"
INST_NAME: string(8) "db2inst1"
SPECIAL_CHARS: string(2) "@#"
KEYWORDS: int(179)
DFT_ISOLATION: string(2) "CS"
ISOLATION_OPTION: string(12) "UR CS RS RR "
SQL_CONFORMANCE: string(7) "FIPS127"
PROCEDURES: bool(true)
IDENTIFIER_QUOTE_CHAR: string(1) """
LIKE_ESCAPE_CLAUSE: bool(true)
MAX_COL_NAME_LEN: int(30)
MAX_ROW_SIZE: int(32677)
MAX_IDENTIFIER_LEN: int(18)
MAX_INDEX_SIZE: int(1024)
MAX_PROC_NAME_LEN: int(128)
MAX_SCHEMA_NAME_LEN: int(30)
MAX_STATEMENT_LEN: int(2097152)
MAX_TABLE_NAME_LEN: int(128)
NON_NULLABLE_COLUMNS: bool(true)

Смотрите также

  • db2_client_info() - Возвращает объект со свойствами, описывающими клиента DB2


Установка опции для соединения или ресурса оператора

  • « db2_server_info
  • db2_special_columns »
  • PHP Manual
  • Функции IBM DB2
  • Установка опции для соединения или ресурса оператора

db2_set_option

(PECL ibm_db2 >= 1.0.0)

db2_set_option — Установка опции для соединения или ресурса оператора

Описание

bool db2_set_option ( resource $resource , array $options , int $type )

Установка опции для соединения или ресурса оператора. Для ресурса результирующего набора опции задавать нельзя.

Список параметров

resource

Корректный ресурс оператора, полученный из db2_prepare() или же ресурс соединения, полученный из db2_connect() или db2_pconnect().

options

Ассоциативный массив, содержащий опции, соответствующие ресурсу. Этот параметр можно использовать для изменения режима автоподтверждения транзакций, типа курсора и задания регистра имен столбцов (нижний, верхний, как есть) в результирующем наборе.

autocommit

DB2_AUTOCOMMIT_ON - включить режим автоподтверждения транзакций для заданного соединения.

DB2_AUTOCOMMIT_OFF - отключить режим автоподтверждения транзакций для заданного соединения.

cursor

DB2_FORWARD_ONLY - задать тип курсора "только вперед". Это тип по умолчанию и он поддерживается всеми базами данных.

DB2_SCROLLABLE - задать тип курсора как "перематываемый". Данный тип курсора позволяет получать доступ к произвольным строкам результирующего набора и доступен только для IBM DB2 Universal Database.

binmode

DB2_BINARY - определяет, что бинарные данные будут возвращены как есть. Это режим по умолчанию, он равносилен заданию ibm_db2.binmode=1 в php.ini.

DB2_CONVERT - определяет, что бинарные данные будут сконвертированы в шестнадцатеричное предстваление. Равносильно заданию ibm_db2.binmode=2 в php.ini.

DB2_CONVERT - определяет, что бинарные данные будут сконвертированы в NULL. Равносильно заданию ibm_db2.binmode=3 в php.ini.

db2_attr_case

DB2_CASE_LOWER - определяет, что имена столбцов будут возвращены в нижнем регистре.

DB2_CASE_UPPER - определяет, что имена столбцов будут возвращены в верхнем регистре.

DB2_CASE_NATURAL - определяет, что имена столбцов будут возвращены как есть.

deferred_prepare

DB2_DEFERRED_PREPARE_ON - включает отложенную подготовку ресурса оператора.

DB2_DEFERRED_PREPARE_OFF - выключает отложенную подготовку ресурса оператора.

Следующие новые опции i5/OS доступны в ibm_db2 версии 1.5.1 и выше. Эти опции доступны только если PHP и ibm_db2 запущены на системе i5.

i5_fetch_only

DB2_I5_FETCH_ON - курсоры могут быть только для чтения и не могут использоваться для позиционирования при DELETE или UPDATE. Является поведением по умолчанию, только если переменная окружения SQL_ATTR_FOR_FETCH_ONLY не установлена в SQL_FALSE.

DB2_I5_FETCH_OFF - курсоры можно использовать для позиционирования при DELETE или UPDATE.

Следующие новые опции доступны в ibm_db2 версии 1.8.0 и выше.

rowcount

DB2_ROWCOUNT_PREFETCH_ON - клиент может запросить количество строк перед извлечением, что означает, что функция db2_num_rows() возвратит количество выбранных строк, даже если используется курсор ROLLFORWARD_ONLY.

DB2_ROWCOUNT_PREFETCH_OFF - клиент не может запросить количество строк перед извлечением

Следующие новые опции доступны в ibm_db2 версии 1.7.0 и выше.

trusted_user

Для переведения пользователя в статус доверенного пользователя, укажите идентификатор (строка) доверенного пользователя в качестве значения этого параметра. Эта опция может быть задана только для ресурса соединения. Для использования этой опции необходимо, чтобы для соединения был разрешендоверенный контекст.

trusted_password

Пароль (строка), соответствующий идентификатору пользователя, заданному в trusted_user.

Следующие новые опции доступны в ibm_db2 версии 1.6.0 и выше. Эти опции предоставляют полезную информацию, которую можно получить через db2_get_option().

Замечание:

Если значения каждой опции задано, некоторые серверы могут не суметь обработать все значение и обрежут его.

Для уверенности в том, что все опции сконвертированы корректно при передаче на хост, используйте только символы A-Z, 0-9, подчеркивание(_) и точку (.).

userid

SQL_ATTR_INFO_USERID - указатель на символьную строку, кончающуюся null-байтом и содержащую идентификатор пользователя, переданный базе данный при соединении.

Замечание:

DB2 для серверов z/OS и OS/390 поддерживает длину вплоть до 16 символов. Идентификатор пользователя никак не скомпрометирует идентификатор авторизации - это разные сущности.

acctstr

SQL_ATTR_INFO_ACCTSTR - указатель на символьную строку, кончающуюся null-байтом и использующуюся для идентификации учетной строки клиента, соответствующей посланой на сервер при соединении.

Замечание:

DB2 для серверов z/OS и OS/390 поддерживает длину вплоть до 200 символов.

applname

SQL_ATTR_INFO_APPLNAME - указатель на символьную строку, кончающуюся null-байтом и использующуюся для идентификации имени клиентского приложения, соответствующей посланой на сервер при соединении.

Замечание:

DB2 для серверов z/OS и OS/390 поддерживает длину вплоть до 32 символов.

wrkstnname

SQL_ATTR_INFO_WRKSTNNAME - указатель на символьную строку, кончающуюся null-байтом и использующуюся для идентификации имени рабочей станции, соответствующей посланой на сервер при соединении.

Замечание:

DB2 для серверов z/OS и OS/390 поддерживает длину вплоть до 18 символов.

type

Целочисленное значение, определяющее тип ресурса, который был передан в функцию.

1 - передан ресурс соединения.

Любое другое значение, отличное от 1 означает ресурс оператора.

Следующая таблица показывает, какие параметры совместимы с какими ресурсами:

Матрица ресурс/параметр
Ключ | Значение | Тип ресурса
 |  | Соединение | Оператор | Результирующий набор
autocommit | DB2_AUTOCOMMIT_ON | X | - | -
autocommit | DB2_AUTOCOMMIT_OFF | X | - | -
cursor | DB2_SCROLLABLE | - | X | -
cursor | DB2_FORWARD_ONLY | - | X | -
binmode | DB2_BINARY | X | X | -
binmode | DB2_CONVERT | X | X | -
binmode | DB2_PASSTHRU | X | X | -
db2_attr_case | DB2_CASE_LOWER | X | X | -
db2_attr_case | DB2_CASE_UPPER | X | X | -
db2_attr_case | DB2_CASE_NATURAL | X | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_ON | - | X | -
deferred_prepare | DB2_DEFERRED_PREPARE_OFF | - | X | -
i5_fetch_only | DB2_I5_FETCH_ON | - | X | -
i5_fetch_only | DB2_I5_FETCH_OFF | - | X | -
rowcount | DB2_ROWCOUNT_PREFETCH_ON | - | X | -
rowcount | DB2_ROWCOUNT_PREFETCH_OFF | - | X | -
trusted_user | <USER NAME> (String) | X | - | -
trusted_password | <PASSWORD> (String) | X | - | -
userid | SQL_ATTR_INFO_USERID | X | X | -
acctstr | SQL_ATTR_INFO_ACCTSTR | X | X | -
applname | SQL_ATTR_INFO_APPLNAME | X | X | -
wrkstnname | SQL_ATTR_INFO_WRKSTNNAME | X | X | -

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка одного параметра для ресурса соединения

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_ON);

/* Вызываем функцию */
$result = db2_set_option($conn, $options, 1);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Options Set Successfully

Пример #2 Установка нескольких параметров для ресурса соединения

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Вызываем функцию */
$result = db2_set_option($conn, $options, 1);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Options Set Successfully

Пример #3 Установка нескольких параметров с одним некорректным ключем

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
             'MY_INVALID_KEY' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Вызываем функцию */
$result = db2_set_option($conn, $options, 1);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Could Not Set Options

Пример #4 Установка нескольких параметров с одним некорректным значением

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => 'INVALID_VALUE',
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Вызываем функцию */
$result = db2_set_option($conn, $options, 1);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Could Not Set Options

Пример #5 Setting multiple parameters with a connection resource and the wrong type

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

/* Вызываем функцию */
$result = db2_set_option($conn, $options, 2);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Could Not Set Options

Пример #6 Setting multiple parameters with the wrong resource

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('autocommit' => DB2_AUTOCOMMIT_OFF,
                    'binmode' => DB2_PASSTHRU,
              'db2_attr_case' => DB2_CASE_UPPER,
                     'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE');

/* Вызываем функцию */
$result = db2_set_option($stmt, $options, 1);

/* Проверяем, все ли опции установились */
if($result)
{
  echo 'Options Set Successfully';
}
else
{
  echo 'Could Not Set Options';
}
?>

Результат выполнения данного примера:

Could Not Set Options

Пример #7 Putting it all together

<?php
/* Параметры соединения с базой данных */
$database = 'SAMPLE';
$hostname = 'localhost';
$port = 50000;
$protocol = 'TCPIP';
$username = 'db2inst1';
$password = 'ibmdb2';

/* Строка соединения */
$conn_string = "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;";
$conn_string .= "HOSTNAME=$hostname;PORT=$port;PROTOCOL=$protocol;";
$conn_string .= "UID=$username;PWD=$password;";

/* Получаем ресурс соединения */
$conn = db2_connect($conn_string, '', '');

/* Создаем ассоциативный массив опций */
$options = array('db2_attr_case' => DB2_CASE_LOWER,
                        'cursor' => DB2_SCROLLABLE);

$stmt = db2_prepare($conn, 'SELECT * FROM EMPLOYEE WHERE EMPNO = ? OR EMPNO = ?');

/* Вызываем функцию */
$option_result = db2_set_option($stmt, $options, 2);
$result = db2_execute($stmt, array('000130', '000140'));

/* Получаем строку 2 перед строкой 1. Перематываемый курсор! */
print_r(db2_fetch_assoc($stmt, 2));
print '<br /><br />';
print_r(db2_fetch_assoc($stmt, 1));

?>

Результат выполнения данного примера:

Array
(
    [empno] => 000140
    [firstnme] => HEATHER
    [midinit] => A
    [lastname] => NICHOLLS
    [workdept] => C01
    [phoneno] => 1793
    [hiredate] => 1976-12-15
    [job] => ANALYST
    [edlevel] => 18
    [sex] => F
    [birthdate] => 1946-01-19
    [salary] => 28420.00
    [bonus] => 600.00
    [comm] => 2274.00
)

Array
(
    [empno] => 000130
    [firstnme] => DELORES
    [midinit] => M
    [lastname] => QUINTANA
    [workdept] => C01
    [phoneno] => 4578
    [hiredate] => 1971-07-28
    [job] => ANALYST
    [edlevel] => 16
    [sex] => F
    [birthdate] => 1925-09-15
    [salary] => 23800.00
    [bonus] => 500.00
    [comm] => 1904.00
)

Пример #8 Курсор i5/OS только для чтения

<?php
  $conn = db2_connect("", "", "", array("i5_lib"=>"nobody"));
  $stmt = db2_prepare($conn, 'select * from names where first = ?');
  $name = "first2";
  db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
  $options = array("i5_fetch_only"=>DB2_I5_FETCH_ON);
  db2_set_option($stmt,$options,0);
  if (db2_execute($stmt)) {
    while ($row = db2_fetch_array($stmt)) {
      echo "{$row[0]} {$row[1]}";
    }
  }
?>

Результат выполнения данного примера:

first2 last2

Смотрите также

  • db2_connect() - Returns a connection to a database
  • db2_pconnect() - Returns a persistent connection to a database
  • db2_exec() - Executes an SQL statement directly
  • db2_prepare() - Prepares an SQL statement to be executed
  • db2_cursor_type() - Возвращает тип курсора, который используется в ресурсе оператора


Returns a result set listing the unique row identifier columns for a table

  • « db2_set_option
  • db2_statistics »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the unique row identifier columns for a table

db2_special_columns

(PECL ibm_db2 >= 1.0.0)

db2_special_columns — Returns a result set listing the unique row identifier columns for a table

Описание

resource db2_special_columns ( resource $connection , string $qualifier , string $schema , string $table_name , int $scope )

Returns a result set listing the unique row identifier columns for a table.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables.

table_name

The name of the table.

scope

Integer value representing the minimum duration for which the unique row identifier is valid. This can be one of the following values:

Integer value | SQL constant | Description
0 | SQL_SCOPE_CURROW | Row identifier is valid only while the cursor is positioned on the row.
1 | SQL_SCOPE_TRANSACTION | Row identifier is valid for the duration of the transaction.
2 | SQL_SCOPE_SESSION | Row identifier is valid for the duration of the connection.

Возвращаемые значения

Returns a statement resource with a result set containing rows with unique row identifier information for a table. The rows are composed of the following columns:

Column name | Description
SCOPE

Integer value | SQL constant | Description
0 | SQL_SCOPE_CURROW | Row identifier is valid only while the cursor is positioned on the row.
1 | SQL_SCOPE_TRANSACTION | Row identifier is valid for the duration of the transaction.
2 | SQL_SCOPE_SESSION | Row identifier is valid for the duration of the connection.
COLUMN_NAME | Name of the unique column.
DATA_TYPE | SQL data type for the column.
TYPE_NAME | Character string representation of the SQL data type for the column.
COLUMN_SIZE | An integer value representing the size of the column.
BUFFER_LENGTH | Maximum number of bytes necessary to store data from this column.
DECIMAL_DIGITS | The scale of the column, or NULL where scale is not applicable.
NUM_PREC_RADIX | An integer value of either 10 (representing an exact numeric data type), 2 (representing an approximate numeric data type), or NULL (representing a data type for which radix is not applicable).
PSEUDO_COLUMN | Always returns 1.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the index and statistics for a table

  • « db2_special_columns
  • db2_stmt_error »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the index and statistics for a table

db2_statistics

(PECL ibm_db2 >= 1.0.0)

db2_statistics — Returns a result set listing the index and statistics for a table

Описание

resource db2_statistics ( resource $connection , string $qualifier , string $schema , string $table-name , bool $unique )

Returns a result set listing the index and statistics for a table.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema that contains the targeted table. If this parameter is NULL, the statistics and indexes are returned for the schema of the current user.

table_name

The name of the table.

unique

An integer value representing the type of index information to return.

0

Return only the information for unique indexes on the table.

1

Return the information for all indexes on the table.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the statistics and indexes for the base tables matching the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
NON_UNIQUE

An integer value representing whether the index prohibits unique values, or whether the row represents statistics on the table itself:

Return value | Parameter type
0 (SQL_FALSE) | The index allows duplicate values.
1 (SQL_TRUE) | The index values must be unique.
NULL | This row is statistics information for the table itself.
INDEX_QUALIFIER | A string value representing the qualifier that would have to be prepended to INDEX_NAME to fully qualify the index.
INDEX_NAME | A string representing the name of the index.
TYPE

An integer value representing the type of information contained in this row of the result set:

Return value | Parameter type
0 (SQL_TABLE_STAT) | The row contains statistics about the table itself.
1 (SQL_INDEX_CLUSTERED) | The row contains information about a clustered index.
2 (SQL_INDEX_HASH) | The row contains information about a hashed index.
3 (SQL_INDEX_OTHER) | The row contains information about a type of index that is neither clustered nor hashed.
ORDINAL_POSITION | The 1-indexed position of the column in the index. NULL if the row contains statistics information about the table itself.
COLUMN_NAME | The name of the column in the index. NULL if the row contains statistics information about the table itself.
ASC_OR_DESC | A if the column is sorted in ascending order, D if the column is sorted in descending order, NULL if the row contains statistics information about the table itself.
CARDINALITY

If the row contains information about an index, this column contains an integer value representing the number of unique values in the index.

If the row contains information about the table itself, this column contains an integer value representing the number of rows in the table.

PAGES

If the row contains information about an index, this column contains an integer value representing the number of pages used to store the index.

If the row contains information about the table itself, this column contains an integer value representing the number of pages used to store the table.

FILTER_CONDITION | Always returns NULL.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a string containing the SQLSTATE returned by an SQL statement

  • « db2_statistics
  • db2_stmt_errormsg »
  • PHP Manual
  • Функции IBM DB2
  • Returns a string containing the SQLSTATE returned by an SQL statement

db2_stmt_error

(PECL ibm_db2 >= 1.0.0)

db2_stmt_error — Returns a string containing the SQLSTATE returned by an SQL statement

Описание

string db2_stmt_error ([ resource $stmt ] )

Returns a string containing the SQLSTATE value returned by an SQL statement.

If you do not pass a statement resource as an argument to db2_stmt_error(), the driver returns the SQLSTATE value associated with the last attempt to return a statement resource, for example, from db2_prepare() or db2_exec().

To learn what the SQLSTATE value means, you can issue the following command at a DB2 Command Line Processor prompt: db2 '? sqlstate-value'. You can also call db2_stmt_errormsg() to retrieve an explicit error message and the associated SQLCODE value.

Список параметров

stmt

A valid statement resource.

Возвращаемые значения

Returns a string containing an SQLSTATE value.

Смотрите также

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_stmt_errormsg() - Returns a string containing the last SQL statement error message


Returns a string containing the last SQL statement error message

  • « db2_stmt_error
  • db2_table_privileges »
  • PHP Manual
  • Функции IBM DB2
  • Returns a string containing the last SQL statement error message

db2_stmt_errormsg

(PECL ibm_db2 >= 1.0.0)

db2_stmt_errormsg — Returns a string containing the last SQL statement error message

Описание

string db2_stmt_errormsg ([ resource $stmt ] )

Returns a string containing the last SQL statement error message.

If you do not pass a statement resource as an argument to db2_stmt_errormsg(), the driver returns the error message associated with the last attempt to return a statement resource, for example, from db2_prepare() or db2_exec().

Список параметров

stmt

A valid statement resource.

Возвращаемые значения

Returns a string containing the error message and SQLCODE value for the last error that occurred issuing an SQL statement.

Смотрите также

  • db2_conn_error() - Returns a string containing the SQLSTATE returned by the last connection attempt
  • db2_conn_errormsg() - Returns the last connection error message and SQLCODE value
  • db2_stmt_error() - Returns a string containing the SQLSTATE returned by an SQL statement


Returns a result set listing the tables and associated privileges in a database

  • « db2_stmt_errormsg
  • db2_tables »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the tables and associated privileges in a database

db2_table_privileges

(PECL ibm_db2 >= 1.0.0)

db2_table_privileges — Returns a result set listing the tables and associated privileges in a database

Описание

resource db2_table_privileges ( resource $connection [, string $qualifier [, string $schema [, string $table_name ]]] )

Returns a result set listing the tables and associated privileges in a database.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. This parameter accepts a search pattern containing _ and % as wildcards.

table_name

The name of the table. This parameter accepts a search pattern containing _ and % as wildcards.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the privileges for the tables that match the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
GRANTOR | Authorization ID of the user who granted the privilege.
GRANTEE | Authorization ID of the user to whom the privilege was granted.
PRIVILEGE | The privilege that has been granted. This can be one of ALTER, CONTROL, DELETE, INDEX, INSERT, REFERENCES, SELECT, or UPDATE.
IS_GRANTABLE | A string value of "YES" or "NO" indicating whether the grantee can grant the privilege to other users.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_tables() - Returns a result set listing the tables and associated metadata in a database


Returns a result set listing the tables and associated metadata in a database

  • « db2_table_privileges
  • Informix »
  • PHP Manual
  • Функции IBM DB2
  • Returns a result set listing the tables and associated metadata in a database

db2_tables

(PECL ibm_db2 >= 1.0.0)

db2_tables — Returns a result set listing the tables and associated metadata in a database

Описание

resource db2_tables ( resource $connection [, string $qualifier [, string $schema [, string $table-name [, string $table-type ]]]] )

Returns a result set listing the tables and associated metadata in a database.

Список параметров

connection

A valid connection to an IBM DB2, Cloudscape, or Apache Derby database.

qualifier

A qualifier for DB2 databases running on OS/390 or z/OS servers. For other databases, pass NULL or an empty string.

schema

The schema which contains the tables. This parameter accepts a search pattern containing _ and % as wildcards.

table-name

The name of the table. This parameter accepts a search pattern containing _ and % as wildcards.

table-type

A list of comma-delimited table type identifiers. To match all table types, pass NULL or an empty string. Valid table type identifiers include: ALIAS, HIERARCHY TABLE, INOPERATIVE VIEW, NICKNAME, MATERIALIZED QUERY TABLE, SYSTEM TABLE, TABLE, TYPED TABLE, TYPED VIEW, and VIEW.

Возвращаемые значения

Returns a statement resource with a result set containing rows describing the tables that match the specified parameters. The rows are composed of the following columns:

Column name | Description
TABLE_CAT | The catalog that contains the table. The value is NULL if this table does not have catalogs.
TABLE_SCHEM | Name of the schema that contains the table.
TABLE_NAME | Name of the table.
TABLE_TYPE | Table type identifier for the table.
REMARKS | Description of the table.

Смотрите также

  • db2_column_privileges() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ним привилегии для таблицы
  • db2_columns() - Возвращает результирующий набор, перечисляющий столбцы и связанные с ними метаданные для таблицы
  • db2_foreign_keys() - Returns a result set listing the foreign keys for a table
  • db2_primary_keys() - Returns a result set listing primary keys for a table
  • db2_procedure_columns() - Returns a result set listing stored procedure parameters
  • db2_procedures() - Returns a result set listing the stored procedures registered in a database
  • db2_special_columns() - Returns a result set listing the unique row identifier columns for a table
  • db2_statistics() - Returns a result set listing the index and statistics for a table
  • db2_table_privileges() - Returns a result set listing the tables and associated privileges in a database


Informix

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Informix
    • ifx_affected_rows — Получить число строк затронутых запросом
    • ifx_blobinfile_mode — Устанавливает режим BLOB для всех запросов типа SELECT
    • ifx_byteasvarchar — Установить поведение по умолчанию для BYTE
    • ifx_close — Закрыть соединение с Informix
    • ifx_connect — Открытия соединения с базой данных Informix
    • ifx_copy_blob — Создать дубликат заданного объекта BLOB
    • ifx_create_blob — Создать объект BLOB
    • ifx_create_char — Создает символьный объект
    • ifx_do — Запускает подготовленный SQL-запрос
    • ifx_error — Возвращает код ошибки последней операции Informix
    • ifx_errormsg — Возвращает сообщение об ошибке последнего выполненого оператора Informix
    • ifx_fetch_row — Получить строку в виде ассоциативного массива
    • ifx_fieldproperties — Список свойств полей
    • ifx_fieldtypes — Список столбцов
    • ifx_free_blob — Удалить объект BLOB
    • ifx_free_char — Удалить символьный объект
    • ifx_free_result — Высвобождает ресурсы для запроса
    • ifx_get_blob — Возвращает контент объекта BLOB
    • ifx_get_char — Возвращает контент символьного объекта
    • ifx_getsqlca — Получить содержимое sqlca.sqlerrd[0..5] после выполнения запроса
    • ifx_htmltbl_result — Форматирует все строки запроса в виде таблицы HTML
    • ifx_nullformat — Установить возвращаемое по умолчанию значение для NULL
    • ifx_num_fields — Возвращает количество столбцов в запросе
    • ifx_num_rows — Число строк уже извлененных из запроса
    • ifx_pconnect — Open persistent Informix connection
    • ifx_prepare — Подготавливает SQL-запрос для выполнения
    • ifx_query — Send Informix query
    • ifx_textasvarchar — Устанавливает режим чтения TEXT
    • ifx_update_blob — Обновление контента объекта BLOB
    • ifx_update_char — Обновление контента символьного объекта
    • ifxus_close_slob — Удалить объект SLOB
    • ifxus_create_slob — Создать и открыть объект SLOB
    • ifxus_free_slob — Удалить объект SLOB
    • ifxus_open_slob — Открыть объект SLOBt
    • ifxus_read_slob — Прочитать заданное количество байт из SLOB
    • ifxus_seek_slob — Задать текущий файл или переместится на позицию
    • ifxus_tell_slob — Возвращает текущий файл или позицию
    • ifxus_write_slob — Записать строку в объект SLOB


Введение

Драйвер для баз данных Informix (IDS) 7.x, SE 7.x, Universal Server (IUS) 9.x и IDS 2000 реализован в "ifx.ec" и "php_informix.h" в директории расширения informix. Поддержка IDS 7.x готова практически полность, с полной поддержкой столбцов типа BYTE и TEXT. IUS 9.x частично готова: новые типы данных добавлены, но поддержка SLOB и CLOB в процессе создания.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.2.1.


Требования

Замечание: Configuration notes

Вам необходим ESQL/C для компиляции драйвера PHP Informix. ESQL/C версии 7.2x и выше должен подойти. ESQL/C - это часть Informix Client SDK.

Убедитесь, что переменная "INFORMIXDIR" установлена корректно и $INFORMIXDIR/bin находится в PATH перед тем как запустать скрипт "configure".


Установка

Для включения этого расширения используйте ключ клнфигурации --with-informix[=DIR] , где DIR соответствует INFORMIXDIR, т.е. директории установки базы данных.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Замечание:

Убедитесь, что драйверу ifx доступны переменные окружения INFORMIXDIR и INFORMIXSERVER и что директория INFORMIX/bin включена в PATH. Проверить можно запустив скрипт, содержащий команду phpinfo(). В вывод phpinfo() перечислены все установленые переменные окружения. Это работает и для CGI и для Apache mod_php. Необходимо задать эти переменные в скрипте запуска Apache.

Разделяемые библиотеки Informix также должны доступны загрузчику (проверьте LD_LIBRARY_PATH или ld.so.conf/ldconfig).

Замечание: Несколько замечаний по использованию BLOB (столбцы TEXT и BYTE)

BLOB адресуются по своему идентификатору. Запросы типа SELECT возвращают "blob id" для столбцов BYTE и TEXT. Контент данных полей можно получить с помощью "string_var = ifx_get_blob($blob_id);" если хотите сохранить его в памяти ("ifx_blobinfile(0);"). Если предпочитаете сохранить в файл, используйте "ifx_blobinfile(1);" и "ifx_get_blob($blob_id);", который вернет имя файла. Для получения контента блоба используйте обычные функции работы с файлами.

Для запросов INSERT/UPDATE вам необходимо создать эти "blob id's" самостоятельно с помощью "ifx_create_blob();". После этого поместите BLOB в массив и замените в запросе соответствующие поля на знаки вопроса (?). Для запросов INSERT/UPDATE контент полей BLOB задается функцией ifx_update_blob().

Поведение столбцов BLOB можно изменить с помощью параметров конфигурации, которые можно менять во время исполнения:

переменная конфигурации: ifx.textasvarchar

переменная конфигурации: ifx.byteasvarchar

функции времени исполнения:

ifx_textasvarchar(0): использовать идентификаторы BLOB для запросов SELECT с типом TEXT

ifx_byteasvarchar(0): использовать идентификаторы BLOB для запросов SELECT с типом BYTE

ifx_textasvarchar(1): возвращать столбцы TEXT как будто они типа VARCHAR. В данном случае необходимость в использовании идентификатора BLOB отпадает.

ifx_byteasvarchar(1): возвращать столбцы BYTE как будто они типа VARCHAR. В данном случае необходимость в использовании идентификатора BLOB отпадает.

переменная конфигурации: ifx.blobinfile

функции времени исполнения:

ifx_blobinfile_mode(0): сохранение столбцов BYTE в памяти, идентификатор BLOB позволит получить их контент.

ifx_blobinfile_mode(1): сохранение столбцов BYTE в файл, идентификатор BLOB позволит получить имя файла.

Если вы установите ifx_text/byteasvarchar равным 1, вы сможете использовать TEXT и BYTE в запросах SELECT как обычные (но очень длинные) поля VARCHAR. Подобное использование бинарно безопасно, так что можете смело пользоваться. Если возвращаемые данные содержат что-то странное, то вы сами несете полную ответственность за результаты.

Если вы установили set ifx_blobinfile равным 1, используйте имя файла, возвращенное ifx_get_blob(..) для получения контента. Не забывайте УДАЛЯТЬ ВРЕМЕННЫЕ ФАЙЛЫ СОЗДАННЫЕ INFORMIX для выгрузки BLOB. Каждая извлеченная строка создаст новый временный файл для каждого поля BYTE.

Местоположение временных файлов определяется переменной окружения "blobdir" и по умолчанию равно "." (текущая директория). Что-то типа: putenv(blobdir=tmpblob"); сильно облегчит последующую очистку временной директории. Имена временных файлов начинаются с "blb".

Замечание: Автоматическое обрезание данных "char" (SQLCHAR и SQLNCHAR)

Такое поведение можно задать переменной конфигурации

ifx.charasvarchar: если установлено в 1, концевые пробельные символы будут автоматически обрезаны.

Замечание: Значения NULL

Переменная конфигурации ifx.nullformat (и функция времени выполнения ifx_nullformat()) установленная в TRUE возвратит поля NULL как строку "NULL", если установлена в FALSE - вернет пустую строку. Эта настройка позволит различать пустые строки и NULL.

Настройки конфигурации Informix
Имя | По умолчанию | Меняемо | Список изменений
ifx.allow_persistent | "1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.max_persistent | "-1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.max_links | "-1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.default_host | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.default_user | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.default_password | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.blobinfile | "1" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.textasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.byteasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.charasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.nullformat | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ifx.allow_persistent boolean

Разрешать или нет постоянные соединения Informix.

ifx.max_persistent integer

Максимальное количество постоянных соединений на процесс.

ifx.max_links integer

Максимальное количество соединений на процесс, включая постоянные.

ifx.default_host string

Хост для соединения по умолчанию, если не задан в ifx_connect() или ifx_pconnect(). Не применяется в безопасный режим.

ifx.default_user string

Пользователь по умолчанию, если не задан в ifx_connect() ifx_pconnect(). Не применяется в безопасный режим.

ifx.default_password string

Пароль по умолчанию, если не задан в в ifx_connect() или ifx_pconnect(). Не применяется в безопасный режим.

ifx.blobinfile boolean

Если хотите помещать поля BLOB в файл, установите в TRUE. Если в память, то установите как FALSE. Можно переопределить во время исполнения с функцией ifx_blobinfile_mode().

ifx.textasvarchar boolean

Если хотите возвращать TEXT как обычную строку, установите в TRUE. Если хотите получать идентификатор BLOB, установите в FALSE. Можно переопределить во время исполнения с функцией ifx_textasvarchar().

ifx.byteasvarchar boolean

Если хотите возвращать BYTE как обычную строку, установите в TRUE. Если хотите получать идентификатор BLOB, установите в FALSE. Можно переопределить во время исполнения с функцией ifx_textasvarchar().

ifx.charasvarchar boolean

Установите как TRUE, если хотите обрезать конечные пробельные символы у CHAR.

ifx.nullformat boolean

Если хотите получать NULL как строку "NULL" - установите в TRUE. Если хотите получать NULL как пустую строку - установите в FALSE. Можно переопределить во время исполнения с функцией ifx_nullformat().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

IFX_SCROLL (integer)
IFX_HOLD (integer)
IFX_LO_RDONLY (integer)
IFX_LO_WRONLY (integer)
IFX_LO_APPEND (integer)
IFX_LO_RDWR (integer)
IFX_LO_BUFFER (integer)
IFX_LO_NOBUFFER (integer)


Функции Informix

Содержание

  • ifx_affected_rows — Получить число строк затронутых запросом
  • ifx_blobinfile_mode — Устанавливает режим BLOB для всех запросов типа SELECT
  • ifx_byteasvarchar — Установить поведение по умолчанию для BYTE
  • ifx_close — Закрыть соединение с Informix
  • ifx_connect — Открытия соединения с базой данных Informix
  • ifx_copy_blob — Создать дубликат заданного объекта BLOB
  • ifx_create_blob — Создать объект BLOB
  • ifx_create_char — Создает символьный объект
  • ifx_do — Запускает подготовленный SQL-запрос
  • ifx_error — Возвращает код ошибки последней операции Informix
  • ifx_errormsg — Возвращает сообщение об ошибке последнего выполненого оператора Informix
  • ifx_fetch_row — Получить строку в виде ассоциативного массива
  • ifx_fieldproperties — Список свойств полей
  • ifx_fieldtypes — Список столбцов
  • ifx_free_blob — Удалить объект BLOB
  • ifx_free_char — Удалить символьный объект
  • ifx_free_result — Высвобождает ресурсы для запроса
  • ifx_get_blob — Возвращает контент объекта BLOB
  • ifx_get_char — Возвращает контент символьного объекта
  • ifx_getsqlca — Получить содержимое sqlca.sqlerrd[0..5] после выполнения запроса
  • ifx_htmltbl_result — Форматирует все строки запроса в виде таблицы HTML
  • ifx_nullformat — Установить возвращаемое по умолчанию значение для NULL
  • ifx_num_fields — Возвращает количество столбцов в запросе
  • ifx_num_rows — Число строк уже извлененных из запроса
  • ifx_pconnect — Open persistent Informix connection
  • ifx_prepare — Подготавливает SQL-запрос для выполнения
  • ifx_query — Send Informix query
  • ifx_textasvarchar — Устанавливает режим чтения TEXT
  • ifx_update_blob — Обновление контента объекта BLOB
  • ifx_update_char — Обновление контента символьного объекта
  • ifxus_close_slob — Удалить объект SLOB
  • ifxus_create_slob — Создать и открыть объект SLOB
  • ifxus_free_slob — Удалить объект SLOB
  • ifxus_open_slob — Открыть объект SLOBt
  • ifxus_read_slob — Прочитать заданное количество байт из SLOB
  • ifxus_seek_slob — Задать текущий файл или переместится на позицию
  • ifxus_tell_slob — Возвращает текущий файл или позицию
  • ifxus_write_slob — Записать строку в объект SLOB


Получить число строк затронутых запросом

  • « Функции Informix
  • ifx_blobinfile_mode »
  • PHP Manual
  • Функции Informix
  • Получить число строк затронутых запросом

ifx_affected_rows

(PHP 4, PHP <=5.2.0)

ifx_affected_rows — Получить число строк затронутых запросом

Описание

int ifx_affected_rows ( resource $result_id )

Возвращает количество строк затронутых запросом, ассоциированным с ресурсом result_id.

Для INSERT, UPDATE и DELETE, это число является корректным (sqlerrd[2]) количеством затронутых строк. Для SELECT оно является предположительным (sqlerrd[0]). Не полагайтесь на него. Сервер баз данных никогда не возвращает количество строк, возвращенных запросом SELECT, потому что он даже не начал подгружать их на данном этапе (только после "PREPARE", когда оптимизатор составил план запроса).

Полезно использовать после ifx_prepare() для ограничения необходимого результирующего набора.

Список параметров

result_id

Корректный идентификатор результата, возвращенный ifx_query() или ifx_prepare().

Возвращаемые значения

Возвращает количество строк в виде целого числа..

Примеры

Пример #1 Informix, затронутые строки

<?php
$rid = ifx_prepare("select * from emp
                     where name like " . $name, $connid);
if (! $rid) {
    /* ... ошибка ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
?>

Смотрите также

  • ifx_num_rows() - Число строк уже извлененных из запроса


Устанавливает режим BLOB для всех запросов типа SELECT

  • « ifx_affected_rows
  • ifx_byteasvarchar »
  • PHP Manual
  • Функции Informix
  • Устанавливает режим BLOB для всех запросов типа SELECT

ifx_blobinfile_mode

(PHP 4, PHP <=5.2.0)

ifx_blobinfile_mode — Устанавливает режим BLOB для всех запросов типа SELECT

Описание

bool ifx_blobinfile_mode ( int $mode )

Устанавливает режим BLOB для всех запросов типа SELECT.

Список параметров

mode

Режим "0" означает, что BLOB будут сохраняться в памяти, а "0", что в файл.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установить поведение по умолчанию для BYTE

  • « ifx_blobinfile_mode
  • ifx_close »
  • PHP Manual
  • Функции Informix
  • Установить поведение по умолчанию для BYTE

ifx_byteasvarchar

(PHP 4, PHP <=5.2.0)

ifx_byteasvarchar — Установить поведение по умолчанию для BYTE

Описание

bool ifx_byteasvarchar ( int $mode )

Устанавливает поведение по умолчанию для BYTE для запросов типа SELECT.

Список параметров

mode

При режиме "0" будут возвращаться идентификаторы BLOB, при "1" VARCHAR с контентом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_textasvarchar() - Устанавливает режим чтения TEXT


Закрыть соединение с Informix

  • « ifx_byteasvarchar
  • ifx_connect »
  • PHP Manual
  • Функции Informix
  • Закрыть соединение с Informix

ifx_close

(PHP 4, PHP <=5.2.0)

ifx_close — Закрыть соединение с Informix

Описание

bool ifx_close ([ resource $link_identifier ] )

ifx_close() закрывает соединение с базой данных Informix.

Обратите внимание, что обычно исользовать эту функцию нет смысла. Все не постоянные соединения автоматически закрываются по окончанию работы скрипта.

ifx_close() не закрывает постоянные соединения, полученные из ifx_pconnect().

Список параметров

link_identifier

Идентификатор соединения. Если не задан, то закроется последнее открытое соединение.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Закрытие соединения с Informix

<?php
$conn_id = ifx_connect ("mydb@ol_srv", "itsme", "mypassword");
/* ... всякие запросы и их обработки ... */
ifx_close($conn_id);
?>

Смотрите также

  • ifx_connect() - Открытия соединения с базой данных Informix
  • ifx_pconnect() - Open persistent Informix connection


Открытия соединения с базой данных Informix

  • « ifx_close
  • ifx_copy_blob »
  • PHP Manual
  • Функции Informix
  • Открытия соединения с базой данных Informix

ifx_connect

(PHP 4, PHP <=5.2.0)

ifx_connect — Открытия соединения с базой данных Informix

Описание

resource ifx_connect ([ string $database [, string $userid [, string $password ]]] )

ifx_connect() устанавливает соединение с базой данных Informix.

Если функция ifx_connect() будет повторно вызвана с такими же аргументами, то новое соединение не будет установлено и, вместо него, вернется уже существующее.

Соединение с сервером будет автоматически закрыто после окончания работы скрипта. Либо его можно закрыть самостоятельно функией ifx_close().

Список параметров

Все аргументы опциональны. Если они не заданы, то будут использованы значения по умолчанию, заданные в php.ini (ifx.default_host для хоста (библиотеки Informix будут использовать переменную окружения INFORMIXSERVER, если значение не задано), ifx.default_user для пользователя, ifx.default_password для пароля (если не задано, то будеет пытаться соединиться без пароля).

database

Строка, содержащая имя базы данных.

userid

Строка с именем пользователя.

password

Строка с паролем.

Возвращаемые значения

В случае успеха возвращает идентификатор соединения, в случае ошибки FALSE.

Примеры

Пример #1 Соединение с базой данных

<?php
$conn_id = ifx_connect ("mydb@ol_srv1", "imyself", "mypassword");
?>

Смотрите также

  • ifx_pconnect() - Open persistent Informix connection
  • ifx_close() - Закрыть соединение с Informix


Создать дубликат заданного объекта BLOB

  • « ifx_connect
  • ifx_create_blob »
  • PHP Manual
  • Функции Informix
  • Создать дубликат заданного объекта BLOB

ifx_copy_blob

(PHP 4, PHP <=5.2.0)

ifx_copy_blob — Создать дубликат заданного объекта BLOB

Описание

int ifx_copy_blob ( int $bid )

Создает дубликат заданного объекта BLOB.

Список параметров

bid

Идентификатор BLOB.

Возвращаемые значения

Возвращает идентификатор нового объекта BLOB, или FALSE в случае ошибки.

Смотрите также

  • ifx_create_blob() - Создать объект BLOB
  • ifx_free_blob() - Удалить объект BLOB


Создать объект BLOB

  • « ifx_copy_blob
  • ifx_create_char »
  • PHP Manual
  • Функции Informix
  • Создать объект BLOB

ifx_create_blob

(PHP 4, PHP <=5.2.0)

ifx_create_blob — Создать объект BLOB

Описание

int ifx_create_blob ( int $type , int $mode , string $param )

Создает объект BLOB.

Список параметров

type

1 = TEXT, 0 = BYTE

mode

0 = объект BLOB держит контент в памяти, 1 = объект BLOB держит контент в файле.

param

Если mode = 0: указывает на контент. Если mode = 1: указывает на строку с именем файла.

Возвращаемые значения

Возвращает идентификатор нового объекта BLOB, или FALSE в случае ошибки.

Смотрите также

  • ifx_copy_blob() - Создать дубликат заданного объекта BLOB
  • ifx_free_blob() - Удалить объект BLOB


Создает символьный объект

  • « ifx_create_blob
  • ifx_do »
  • PHP Manual
  • Функции Informix
  • Создает символьный объект

ifx_create_char

(PHP 4, PHP <=5.2.0)

ifx_create_char — Создает символьный объект

Описание

int ifx_create_char ( string $param )

Создает символьный объект.

Список параметров

param

Контент создаваемого объекта.

Возвращаемые значения

Возвращает идентификатор объекта, или FALSE в случае ошибки.

Смотрите также

  • ifx_free_char() - Удалить символьный объект


Запускает подготовленный SQL-запрос

  • « ifx_create_char
  • ifx_error »
  • PHP Manual
  • Функции Informix
  • Запускает подготовленный SQL-запрос

ifx_do

(PHP 4, PHP <=5.2.0)

ifx_do — Запускает подготовленный SQL-запрос

Описание

bool ifx_do ( resource $result_id )

Запускает подготовленный SQL-запрос или открывает для него курсор.

НЕ освобождает result_id в случае ошибки.

Также задает корректное значение ifx_affected_rows() для не-SELECT запросов. Извлечь можно функцией ifx_affected_rows().

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

Пример #1 Пример использования ifx_do()

<?php
$conn = fx_connect( "db", "user", "password" );
$result = ifx_prepare("SELECT customer_num, company FROM customer", $conn);
ifx_do($result);
?>

Смотрите также

  • ifx_prepare() - Подготавливает SQL-запрос для выполнения


Возвращает код ошибки последней операции Informix

  • « ifx_do
  • ifx_errormsg »
  • PHP Manual
  • Функции Informix
  • Возвращает код ошибки последней операции Informix

ifx_error

(PHP 4, PHP <=5.2.0)

ifx_error — Возвращает код ошибки последней операции Informix

Описание

string ifx_error ([ resource $link_identifier ] )

Возвращает строку, состоящую из одного символа, описывающего результат в целом, и значений SQLSTATE и SQLCODE.

Список параметров

link_identifier

Идентификатор соединения.

Возвращаемые значения

Коды ошибок Informix (SQLSTATE & SQLCODE) в виде x [SQLSTATE = aa bbb SQLCODE=cccc].

где x = пробел : нет ошибки

E : ошибка

N : данных больше нет

W : предупреждение

? : не задано

Если символ "x" не является пробелом, то подробное описание ошибки можно получить проанализировав SQLSTATE и SQLCODE.

Описание кодов ошибок SQLSTATE и SQLCODE читайте в документации к Informix.

Смотрите также

  • ifx_errormsg() - Возвращает сообщение об ошибке последнего выполненого оператора Informix


Возвращает сообщение об ошибке последнего выполненого оператора Informix

  • « ifx_error
  • ifx_fetch_row »
  • PHP Manual
  • Функции Informix
  • Возвращает сообщение об ошибке последнего выполненого оператора Informix

ifx_errormsg

(PHP 4, PHP <=5.2.0)

ifx_errormsg — Возвращает сообщение об ошибке последнего выполненого оператора Informix

Описание

string ifx_errormsg ([ int $errorcode ] )

Возвращает сообщение об ошибке последнего выполненого оператора Informix.

Список параметров

errorcode

Если задано, то функция вернет сообщение од ошибке, соответствующее этому коду.

Возвращаемые значения

Возвращает строку с описанием ошибки..

Примеры

Пример #1 Пример использования ifx_errormsg()

<?php
printf("%s\n<br>", ifx_errormsg(-201));
?>

Смотрите также

  • ifx_error() - Возвращает код ошибки последней операции Informix


Получить строку в виде ассоциативного массива

  • « ifx_errormsg
  • ifx_fieldproperties »
  • PHP Manual
  • Функции Informix
  • Получить строку в виде ассоциативного массива

ifx_fetch_row

(PHP 4, PHP <=5.2.0)

ifx_fetch_row — Получить строку в виде ассоциативного массива

Описание

array ifx_fetch_row ( resource $result_id [, mixed $position ] )

Извлекает строку в виде ассоциативного массива.

Каждый запуск ifx_fetch_row() будет возвращать следующую строку из результирующего набора и FALSE, когда строки кончатся.

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

position

Опциональный параметр при использовании проматываемого курсора: NEXT, PREVIOUS, CURRENT, FIRST, LAST или число. Если вы укажете число, будет возвращена строка с данным номером. Этот папаметр опционален и применяется только с курсорами типа SCROLL.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий строку результирующего набора, либо FALSE, если строки закончились.

Столбцы BLOB возвращаются в виде их числовых идентификаторов, которые можно использовать с функцией ifx_get_blob(), если не используется ifx_textasvarchar(1) или ifx_byteasvarchar(1), в этом случае они будут возвращаться как VARCHAR.

Примеры

Пример #1 Извлечение строк

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... ошибка ... */
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
    printf ("Слишком много строк в результирующем наборе (%d)\n<br />", $rowcount);
    die ("Пожалуйста ограничьте запрос<br />\n");
}
if (! ifx_do ($rid)) {
   /* ... ошибка ... */
}
$row = ifx_fetch_row ($rid, "NEXT");
while (is_array($row)) {
    for (reset($row); $fieldname=key($row); next($row)) {
        $fieldvalue = $row[$fieldname];
        printf ("%s = %s,", $fieldname, $fieldvalue);
    }
    printf("\n<br />");
    $row = ifx_fetch_row($rid, "NEXT");
}
ifx_free_result ($rid);
?>


Список свойств полей

  • « ifx_fetch_row
  • ifx_fieldtypes »
  • PHP Manual
  • Функции Informix
  • Список свойств полей

ifx_fieldproperties

(PHP 4, PHP <=5.2.0)

ifx_fieldproperties — Список свойств полей

Описание

array ifx_fieldproperties ( resource $result_id )

Возвращает список свойств для каждого поля в запросе в виде ассоциативного массива. Свойства описываются в следующем формате: "SQLTYPE;length;precision;scale;ISNULLABLE" где SQLTYPE = тип столбца Informix, например "SQLVCHAR" и ISNULLABLE = "Y" или "N".

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает ассоциативный массив с ключами равными именам столбцов и значениями, состоящими из описания их свойств для запроса с идентификатором result_id. Возвращает FALSE в случае ошибки.

Примеры

Пример #1 Свойства полей

<?php
$properties = ifx_fieldproperties($resultid);
if (!isset($properties)) {
    /* ... error ... */
}
foreach ($properties as $fname => $val) {
    echo "$fname:\t property = $val\n";
}
?>

Смотрите также

  • ifx_fieldtypes() - Список столбцов


Список столбцов

  • « ifx_fieldproperties
  • ifx_free_blob »
  • PHP Manual
  • Функции Informix
  • Список столбцов

ifx_fieldtypes

(PHP 4, PHP <=5.2.0)

ifx_fieldtypes — Список столбцов

Описание

array ifx_fieldtypes ( resource $result_id )

Возвращает ассоциативный массив с ключами равными именам столбцов и значениями равными их типу для запроса с идентификатором result_id.

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает ассоциативный массив с ключами равными именам столбцов и значениями равными их типу для запроса с идентификатором result_id. Возвращает FALSE в случае ошибки.

Примеры

Пример #1 Имена и типы столбцов

<?php
$types = ifx_fieldtypes($resultid);
if (is_array($types)) {
    foreach ($types as $fname => $val) {
        echo "$fname:\t type = $val\n";
    }
}
?>

Смотрите также

  • ifx_fieldproperties() - Список свойств полей


Удалить объект BLOB

  • « ifx_fieldtypes
  • ifx_free_char »
  • PHP Manual
  • Функции Informix
  • Удалить объект BLOB

ifx_free_blob

(PHP 4, PHP <=5.2.0)

ifx_free_blob — Удалить объект BLOB

Описание

bool ifx_free_blob ( int $bid )

Удаляет объект BLOB по его идентификатору.

Список параметров

bid

Идентификатор BLOB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_create_blob() - Создать объект BLOB


Удалить символьный объект

  • « ifx_free_blob
  • ifx_free_result »
  • PHP Manual
  • Функции Informix
  • Удалить символьный объект

ifx_free_char

(PHP 4, PHP <=5.2.0)

ifx_free_char — Удалить символьный объект

Описание

bool ifx_free_char ( int $bid )

Удаляет символьный объект по его идентификатору.

Список параметров

bid

Идентификатор объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_create_char() - Создает символьный объект


Высвобождает ресурсы для запроса

  • « ifx_free_char
  • ifx_get_blob »
  • PHP Manual
  • Функции Informix
  • Высвобождает ресурсы для запроса

ifx_free_result

(PHP 4, PHP <=5.2.0)

ifx_free_result — Высвобождает ресурсы для запроса

Описание

bool ifx_free_result ( resource $result_id )

Высвобождает ресурсы, связанные с идентификатором запроса result_id.

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_do() - Запускает подготовленный SQL-запрос


Возвращает контент объекта BLOB

  • « ifx_free_result
  • ifx_get_char »
  • PHP Manual
  • Функции Informix
  • Возвращает контент объекта BLOB

ifx_get_blob

(PHP 4, PHP <=5.2.0)

ifx_get_blob — Возвращает контент объекта BLOB

Описание

string ifx_get_blob ( int $bid )

Возвращает контент объекта BLOB.

Список параметров

bid

Идентификатор BLOB.

Возвращаемые значения

Контент объекта BLOB в виде строки, или FALSE в случае ошибки.

Смотрите также

  • ifx_get_char() - Возвращает контент символьного объекта


Возвращает контент символьного объекта

  • « ifx_get_blob
  • ifx_getsqlca »
  • PHP Manual
  • Функции Informix
  • Возвращает контент символьного объекта

ifx_get_char

(PHP 4, PHP <=5.2.0)

ifx_get_char — Возвращает контент символьного объекта

Описание

string ifx_get_char ( int $bid )

Возвращает контент символьного объекта.

Список параметров

bid

Идентификатор объекта.

Возвращаемые значения

Возвращает контент символьного объекта в виде строки, или FALSE в случае ошибки.

Смотрите также

  • ifx_get_blob() - Возвращает контент объекта BLOB


Получить содержимое sqlca.sqlerrd[0..5] после выполнения запроса

  • « ifx_get_char
  • ifx_htmltbl_result »
  • PHP Manual
  • Функции Informix
  • Получить содержимое sqlca.sqlerrd[0..5] после выполнения запроса

ifx_getsqlca

(PHP 4, PHP <=5.2.0)

ifx_getsqlca — Получить содержимое sqlca.sqlerrd[0..5] после выполнения запроса

Описание

array ifx_getsqlca ( resource $result_id )

Возвращает псевдостроку с sqlca.sqlerrd[0] ... sqlca.sqlerrd[5] после выполнения запроса с идентификатором result_id.

Для запросов INSERT, UPDATE и DELETE, возвращаемые значение являются значениями, возвращенными сервером после их выполнения. Они дают доступ к числу затронутых строк и значению SERIAL для операторов INSERT. Для запросов SELECT эти значения выставляются после оператора PREPARE. Это дает доступ к *ожидаемому* количеству затронутых строк. Использование этой функции сокращает накладные расходы, которые могут возникнуть при вызове SELECT dbinfo('sqlca.sqlerrdx'), так как она извлекает значения, сохраненные драйвером ifx.

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает ассоциативный массив со следующими полями: sqlerrd0, sqlerrd1, sqlerrd2, sqlerrd3, sqlerrd4 и sqlerrd5.

Примеры

Пример #1 Извлечение значений sqlca.sqlerrd[x]

<?php
/* Считаем первый столбец таблицы 'sometable' как тип SERIAL */
$qid = ifx_query("insert into sometable
                  values (0, '2nd column', 'another column') ", $connid);
if (!$qid) {
    /* ... jib,rf ... */
}
$sqlca = ifx_getsqlca($qid);
$serial_value = $sqlca["sqlerrd1"];
echo "Номер вставленной строки : $serial_value<br />\n";
?>


Форматирует все строки запроса в виде таблицы HTML

  • « ifx_getsqlca
  • ifx_nullformat »
  • PHP Manual
  • Функции Informix
  • Форматирует все строки запроса в виде таблицы HTML

ifx_htmltbl_result

(PHP 4, PHP <=5.2.0)

ifx_htmltbl_result — Форматирует все строки запроса в виде таблицы HTML

Описание

int ifx_htmltbl_result ( resource $result_id [, string $html_table_options ] )

Форматирует все строки запроса result_id в таблицу HTML.

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

html_table_options

Этот опциональный аргумент задает опции тега <table>.

Возвращаемые значения

Возвращает число извлеченных строк, или FALSE в случае ошибки.

Примеры

Пример #1 Результаты запроса в виде таблицы HTML

<?php
$rid = ifx_prepare ("select * from emp where name like " . $name,
                     $connid, IFX_SCROLL);
if (! $rid) {
    /* ... ошибка ... */
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
    printf ("Too many rows in result set (%d)\n<br />", $rowcount);
    die ("Please restrict your query<br />\n");
}
if (! ifx_do($rid)) {
    /* ... ошибка ... */
}

ifx_htmltbl_result ($rid, "border=\"2\"");

ifx_free_result($rid);
?>


Установить возвращаемое по умолчанию значение для NULL

  • « ifx_htmltbl_result
  • ifx_num_fields »
  • PHP Manual
  • Функции Informix
  • Установить возвращаемое по умолчанию значение для NULL

ifx_nullformat

(PHP 4, PHP <=5.2.0)

ifx_nullformat — Установить возвращаемое по умолчанию значение для NULL

Описание

bool ifx_nullformat ( int $mode )

Установить возвращаемое по умолчанию значение для NULL.

Список параметров

mode

Режим "0" возвратит "", режим "1" возвратит "NULL".

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает количество столбцов в запросе

  • « ifx_nullformat
  • ifx_num_rows »
  • PHP Manual
  • Функции Informix
  • Возвращает количество столбцов в запросе

ifx_num_fields

(PHP 4, PHP <=5.2.0)

ifx_num_fields — Возвращает количество столбцов в запросе

Описание

int ifx_num_fields ( resource $result_id )

После подготовки запроса возвращает число столбцов в нем.

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает количество столбцов в запросе result_id, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования ifx_num_fields()

<?php
$conn_id = ifx_connect("db", "user", "password");
$res_id = ifx_query("select * from systables", $conn_id);
echo ifx_num_fields($res_id);
?>

Смотрите также

  • ifx_num_rows() - Число строк уже извлененных из запроса


Число строк уже извлененных из запроса

  • « ifx_num_fields
  • ifx_pconnect »
  • PHP Manual
  • Функции Informix
  • Число строк уже извлененных из запроса

ifx_num_rows

(PHP 4, PHP <=5.2.0)

ifx_num_rows — Число строк уже извлененных из запроса

Описание

int ifx_num_rows ( resource $result_id )

Число строк уже извлененных для запроса result_id после ifx_query() или ifx_do().

Список параметров

result_id

result_id - идентификатор запроса, полученный ifx_query() или ifx_prepare() (только для запросов типа SELECT!).

Возвращаемые значения

Возвращает число извлеченных строк или FALSE в случае ошибки.

Смотрите также

  • ifx_num_fields() - Возвращает количество столбцов в запросе


Open persistent Informix connection

  • « ifx_num_rows
  • ifx_prepare »
  • PHP Manual
  • Функции Informix
  • Open persistent Informix connection

ifx_pconnect

(PHP 4, PHP <=5.2.0)

ifx_pconnect — Open persistent Informix connection

Описание

resource ifx_pconnect ([ string $database [, string $userid [, string $password ]]] )

ifx_pconnect() работает так же как ifx_connect() с двумя значительными отличиями.

Первое отличие. При соединении эта функция сперва пытается найти уже открытое постоянное соединение с такими же хостом, именем пользователя и паролем. Если таковое будет найдено, то оно будет возвращено вместо создания нового.

Второе отличие. Соединение с сервером не будет прервано по окончанию работы скрипта. Вместо этого данное соединение будет доступно для всех последующих запросов на соединение. Также, функция ifx_close() не работает с ifx_pconnect().

This type of links is therefore called 'persistent'.

Список параметров

Все аргументы опциональны. Если они не заданы, то будут использованы значения по умолчанию, заданные в php.ini (ifx.default_host для хоста (библиотеки Informix будут использовать переменную окружения INFORMIXSERVER, если значение не задано), ifx.default_user для пользователя, ifx.default_password для пароля (если не задано, то будеет пытаться соединиться без пароля).

database

Строка, содержащая имя базы данных.

userid

Строка с именем пользователя.

password

Строка с паролем.

Возвращаемые значения

Возвращает идентификатор постоянного соединения, либо FALSE в случае ошибки.

Смотрите также

  • ifx_connect() - Открытия соединения с базой данных Informix


Подготавливает SQL-запрос для выполнения

  • « ifx_pconnect
  • ifx_query »
  • PHP Manual
  • Функции Informix
  • Подготавливает SQL-запрос для выполнения

ifx_prepare

(PHP 4, PHP <=5.2.0)

ifx_prepare — Подготавливает SQL-запрос для выполнения

Описание

resource ifx_prepare ( string $query , resource $link_identifier [, int $cursor_def ], mixed $blobidarray )

Подготавливает query для использования в ifx_do().

Для запросов типа SELECT задается и открывается курсор. Остальные типы запросов сразу же запускаются.

Для всех типов запросов сохраняется число (реальное или предполагаемое) затронутых строк, которое можно извлечь функцией ifx_affected_rows().

Если контент столбцов TEXT (или BYTE) позволяют, вы можете использовать ifx_textasvarchar(1) и ifx_byteasvarchar(1). Это позволит получать контент столбцов TEXT (или BYTE) как обычный (но длинный) VARCHAR и не заморачиваться идентификаторов объектов BLOB.

С ifx_textasvarchar(0) или ifx_byteasvarchar(0) (ситуация по умолчанию), запросы типа SELECT будут возвращать столбцы с BLOB в виде их идентификаторовs (целое число). Контент данных столбцов придется извлекать из памяти или файла успользуя специальные функции.

Список параметров

query

Строка запроса.

link_identifier

Идентификатор соединения.

cursor_def

Опциональный параметр, позволяющий задать тип курсора равным scroll и/или hold. Может быть IFX_SCROLL, IFX_HOLD, или обоими сразу, побитово сложенными (ИЛИ).

blobidarray

Если в запросе используются поля BLOB (BYTE или TEXT), вы можете добавить параметр blobidarray, содержащий соответствующие "blob ids", и тогда будет необходимо заменить соответствующие поля в запросе на "?".

Возвращаемые значения

Возвращает идентификатор результата для использования в ifx_do(), или FALSE в случае ошибки.

Смотрите также

  • ifx_do() - Запускает подготовленный SQL-запрос


Send Informix query

  • « ifx_prepare
  • ifx_textasvarchar »
  • PHP Manual
  • Функции Informix
  • Send Informix query

ifx_query

(PHP 4, PHP <=5.2.0)

ifx_query — Send Informix query

Описание

resource ifx_query ( string $query , resource $link_identifier [, int $cursor_type [, mixed $blobidarray ]] )

Посылает query в базу данных используя идентификатор соединения.

Для запросов типа SELECT задается и открывается курсор. Остальные типы запросов сразу же запускаются.

Для всех типов запросов сохраняется число (реальное или предполагаемое) затронутых строк, которое можно извлечь функцией ifx_affected_rows().

Если контент столбцов TEXT (или BYTE) позволяют, вы можете использовать ifx_textasvarchar(1) и ifx_byteasvarchar(1). Это позволит получать контент столбцов TEXT (или BYTE) как обычный (но длинный) VARCHAR и не заморачиваться идентификаторов объектов BLOB.

С ifx_textasvarchar(0) или ifx_byteasvarchar(0) (ситуация по умолчанию), запросы типа SELECT будут возвращать столбцы с BLOB в виде их идентификаторовs (целое число). Контент данных столбцов придется извлекать из памяти или файла успользуя специальные функции.

Список параметров

query

Строка запроса.

link_identifier

Идентификатор соединения.

cursor_def

Опциональный параметр, позволяющий задать тип курсора равным scroll и/или hold. Может быть IFX_SCROLL, IFX_HOLD, или обоими сразу, побитово сложенными (ИЛИ). Если вы опустите этот параметр, то курсор будет обычным последовательным курсором.

blobidarray

Если в запросе используются поля BLOB (BYTE или TEXT), вы можете добавить параметр blobidarray, содержащий соответствующие "blob ids", и тогда будет необходимо заменить соответствующие поля в запросе на "?".

Возвращаемые значения

Возвращает идентификатор результата, или FALSE в случае ошибки.

Примеры

Пример #1 Вывод всех строк таблицы "orders" в виде таблицы HTML

<?php
ifx_textasvarchar(1);      // используем "text mode" для BLOB
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Не могу выполнить запрос : %s\n<br />%s<br />\n", ifx_error(), ifx_errormsg());
    die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);
?>

Пример #2 Вставка значений в таблицу "catalog"

<?php

// Создаем идентификаторы BLOB для столбцов BYTE и TEXT
$textid = ifx_create_blob(0, 0, "Столбец Text в памяти");
$byteid = ifx_create_blob(1, 0, "Столбец Byte в памяти");

// Сохраняем идентификаторы BLOB в массиве blobid
$blobidarray[] = $textid;
$blobidarray[] = $byteid;

// Запускаем запрос
$query = "insert into catalog (stock_num, manu_code, " .
         "cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id = ifx_query($query, $conn_id, $blobidarray);
if (! $res_id) {
    /* ... error ... */
}

// free result id
ifx_free_result($res_id);
?>

Смотрите также

  • ifx_connect() - Открытия соединения с базой данных Informix


Устанавливает режим чтения TEXT

  • « ifx_query
  • ifx_update_blob »
  • PHP Manual
  • Функции Informix
  • Устанавливает режим чтения TEXT

ifx_textasvarchar

(PHP 4, PHP <=5.2.0)

ifx_textasvarchar — Устанавливает режим чтения TEXT

Описание

bool ifx_textasvarchar ( int $mode )

Устанавливает режим чтения TEXT.

Список параметров

mode

Режим "0" вернет идентификаторы BLOB, режим "1" вернет VARCHAR.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_byteasvarchar() - Установить поведение по умолчанию для BYTE


Обновление контента объекта BLOB

  • « ifx_textasvarchar
  • ifx_update_char »
  • PHP Manual
  • Функции Informix
  • Обновление контента объекта BLOB

ifx_update_blob

(PHP 4, PHP <=5.2.0)

ifx_update_blob — Обновление контента объекта BLOB

Описание

bool ifx_update_blob ( int $bid , string $content )

Обновление контента объекта BLOB с идентификатором bid.

Список параметров

bid

Идентификатор BLOB.

content

Новые данные в виде строки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_update_char() - Обновление контента символьного объекта


Обновление контента символьного объекта

  • « ifx_update_blob
  • ifxus_close_slob »
  • PHP Manual
  • Функции Informix
  • Обновление контента символьного объекта

ifx_update_char

(PHP 4, PHP <=5.2.0)

ifx_update_char — Обновление контента символьного объекта

Описание

bool ifx_update_char ( int $bid , string $content )

Обновление контента символьного объекта с идентификатором bid.

Список параметров

bid

Идентификатор обхекта.

content

Новые данные в виде строки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifx_update_blob() - Обновление контента объекта BLOB


Удалить объект SLOB

  • « ifx_update_char
  • ifxus_create_slob »
  • PHP Manual
  • Функции Informix
  • Удалить объект SLOB

ifxus_close_slob

(PHP 4, PHP <=5.2.0)

ifxus_close_slob — Удалить объект SLOB

Описание

bool ifxus_close_slob ( int $bid )

Удалить объект SLOB с идентификатором bid.

Список параметров

bid

Идентификатор объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifxus_open_slob() - Открыть объект SLOBt


Создать и открыть объект SLOB

  • « ifxus_close_slob
  • ifxus_free_slob »
  • PHP Manual
  • Функции Informix
  • Создать и открыть объект SLOB

ifxus_create_slob

(PHP 4, PHP <=5.2.0)

ifxus_create_slob — Создать и открыть объект SLOB

Описание

int ifxus_create_slob ( int $mode )

Создать и открыть объект SLOB.

Список параметров

mode

Комбинация констант IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

Возвращаемые значения

Возвращает идентификатор нового объекта, или FALSE в случае ошибки.

Смотрите также

  • ifxus_close_slob() - Удалить объект SLOB
  • ifxus_free_slob() - Удалить объект SLOB


Удалить объект SLOB

  • « ifxus_create_slob
  • ifxus_open_slob »
  • PHP Manual
  • Функции Informix
  • Удалить объект SLOB

ifxus_free_slob

(PHP 4, PHP <=5.2.0)

ifxus_free_slob — Удалить объект SLOB

Описание

bool ifxus_free_slob ( int $bid )

Удаляет объект SLOB.

Список параметров

bid

Идентификатор объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ifxus_close_slob() - Удалить объект SLOB


Открыть объект SLOBt

  • « ifxus_free_slob
  • ifxus_read_slob »
  • PHP Manual
  • Функции Informix
  • Открыть объект SLOBt

ifxus_open_slob

(PHP 4, PHP <=5.2.0)

ifxus_open_slob — Открыть объект SLOBt

Описание

int ifxus_open_slob ( int $bid , int $mode )

Открыть объект SLOB. bid должен быть существующим идентификатором SLOB.

Список параметров

bid

Идентификатор SLOB.

mode

Комбинация констант IFX_LO_RDONLY, IFX_LO_WRONLY, IFX_LO_APPEND IFX_LO_RDWR, IFX_LO_BUFFER, IFX_LO_NOBUFFER.

Возвращаемые значения

Возвращает идентификатор объекта, или FALSE в случае ошибки.

Смотрите также

  • ifxus_close_slob() - Удалить объект SLOB
  • ifxus_free_slob() - Удалить объект SLOB


Прочитать заданное количество байт из SLOB

  • « ifxus_open_slob
  • ifxus_seek_slob »
  • PHP Manual
  • Функции Informix
  • Прочитать заданное количество байт из SLOB

ifxus_read_slob

(PHP 4, PHP <=5.2.0)

ifxus_read_slob — Прочитать заданное количество байт из SLOB

Описание

string ifxus_read_slob ( int $bid , int $nbytes )

Читает nbytes байт из SLOB.

Список параметров

bid

Идентификатор SLOB.

nbytes

Количество байт для чтения.

Возвращаемые значения

Возвращает контент SLOB в виде строки, или FALSE в случае ошибки.

Смотрите также

  • ifxus_write_slob() - Записать строку в объект SLOB


Задать текущий файл или переместится на позицию

  • « ifxus_read_slob
  • ifxus_tell_slob »
  • PHP Manual
  • Функции Informix
  • Задать текущий файл или переместится на позицию

ifxus_seek_slob

(PHP 4, PHP <=5.2.0)

ifxus_seek_slob — Задать текущий файл или переместится на позицию

Описание

int ifxus_seek_slob ( int $bid , int $mode , int $offset )

Задать текущий файл или переместится на позицию.

Список параметров

bid

Идентификатор SLOB.

mode

0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END.

offset

Смещение в байтах.

Возвращаемые значения

Возвращает текущую позицию в виде целого числа, или FALSE в случае ошибки.

Смотрите также

  • ifxus_tell_slob() - Возвращает текущий файл или позицию


Возвращает текущий файл или позицию

  • « ifxus_seek_slob
  • ifxus_write_slob »
  • PHP Manual
  • Функции Informix
  • Возвращает текущий файл или позицию

ifxus_tell_slob

(PHP 4, PHP <=5.2.0)

ifxus_tell_slob — Возвращает текущий файл или позицию

Описание

int ifxus_tell_slob ( int $bid )

Возвращает текущий файл или позицию объекта SLOB

Список параметров

bid

Идентификатор SLOB.

Возвращаемые значения

Возвращает текущую позицию в виде целого числа, или FALSE в случае ошибки.

Смотрите также

  • ifxus_seek_slob() - Задать текущий файл или переместится на позицию


Записать строку в объект SLOB

  • « ifxus_tell_slob
  • Ingres »
  • PHP Manual
  • Функции Informix
  • Записать строку в объект SLOB

ifxus_write_slob

(PHP 4, PHP <=5.2.0)

ifxus_write_slob — Записать строку в объект SLOB

Описание

int ifxus_write_slob ( int $bid , string $content )

Записать строку в объект SLOB.

Список параметров

bid

Идентификатор SLOB.

content

Строка для записи.

Возвращаемые значения

Возвращает число записанных байт, или FALSE в случае ошибки.

Смотрите также

  • ifxus_read_slob() - Прочитать заданное количество байт из SLOB


Ingres DBMS, EDBC, and Enterprise Access Gateways

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Basic usage
  • Ingres Функции
    • ingres_autocommit_state — Test if the connection is using autocommit
    • ingres_autocommit — Switch autocommit on or off
    • ingres_charset — Returns the installation character set
    • ingres_close — Close an Ingres database connection
    • ingres_commit — Commit a transaction
    • ingres_connect — Open a connection to an Ingres database
    • ingres_cursor — Get a cursor name for a given result resource
    • ingres_errno — Get the last Ingres error number generated
    • ingres_error — Get a meaningful error message for the last error generated
    • ingres_errsqlstate — Get the last SQLSTATE error code generated
    • ingres_escape_string — Escape special characters for use in a query
    • ingres_execute — Execute a prepared query
    • ingres_fetch_array — Fetch a row of result into an array
    • ingres_fetch_assoc — Fetch a row of result into an associative array
    • ingres_fetch_object — Fetch a row of result into an object
    • ingres_fetch_proc_return — Get the return value from a procedure call
    • ingres_fetch_row — Fetch a row of result into an enumerated array
    • ingres_field_length — Get the length of a field
    • ingres_field_name — Get the name of a field in a query result
    • ingres_field_nullable — Test if a field is nullable
    • ingres_field_precision — Get the precision of a field
    • ingres_field_scale — Get the scale of a field
    • ingres_field_type — Get the type of a field in a query result
    • ingres_free_result — Free the resources associated with a result identifier
    • ingres_next_error — Get the next Ingres error
    • ingres_num_fields — Get the number of fields returned by the last query
    • ingres_num_rows — Get the number of rows affected or returned by a query
    • ingres_pconnect — Open a persistent connection to an Ingres database
    • ingres_prepare — Prepare a query for later execution
    • ingres_query — Send an SQL query to Ingres
    • ingres_result_seek — Set the row position before fetching data
    • ingres_rollback — Roll back a transaction
    • ingres_set_environment — Set environment features controlling output options
    • ingres_unbuffered_query — Send an unbuffered SQL query to Ingres


Введение

The Ingres driver for PHP enables you to connect to and query the Ingres DBMS, EDBC, and Enterprise Access Gateways.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.


Требования

To use or build the PHP extension for Ingres you must have a working Ingres client environment. You can download the client software for Ingres from » http://esd.ingres.com/.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/ingres.

You can download the DLL for this PECL extension from » http://esd.ingres.com/product/drivers/PHP/.

To have these functions available, you must » download and compile this extension, enabling Ingres support using the --with-ingres[=DIR] option, where DIR is the Ingres base directory. If the II_SYSTEM environment variable is not set correctly you may need to use --with-ingres=DIR to specify your Ingres installation directory.

PHP code written for version 2.x and later is not backward-compatible with earlier versions of this PHP extension. However, it is possible to run two incompatible releases within the same PHP environment using the --enable-ingres2 option. This configuration option renames the extension to ingres2, changing function names, configuration settings, and constants. For example, with this option enabled, ingres_connect() becomes ingres2_connect().

To use this extension the system environment variable II_SYSTEM must be defined. Linux and UNIX users will also need to define the shared library search path, for example, LD_LIBRARY_PATH. When used with the Apache web server these variables must be set explicitly in the startup script for Apache. In addition, the PassEnv directive is required for the Ingres extension to load the correct shared libraries. For example:

Пример #1 Example usage of PassEnv for Ingres

<IfModule mod_env.c>
    PassEnv II_SYSTEM
    PassEnv LD_LIBRARY_PATH
</IfModule>

Замечание:

For example configurations for different web servers and operating systems see » http://community.ingres.com/wiki/Ingres_Articles#Ingres_and_Web_Servers.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Ingres configuration options
Имя | По умолчанию | Меняемо | Список изменений
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Available since ingres 1.0.0
ingres.array_index_start | "1" | PHP_INI_ALL | Available since ingres 1.4.0.
ingres.auto | "1" | PHP_INI_ALL | Available since ingres 2.0.0.
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Available since ingres 1.2.0.
ingres.cursor_mode | "0" | PHP_INI_ALL | Available since ingres 1.1.0.
ingres.default_database | NULL | PHP_INI_ALL | Available since ingres 1.0.0
ingres.default_password | NULL | PHP_INI_ALL | Available since ingres 1.0.0
ingres.default_user | NULL | PHP_INI_ALL | Available since ingres 1.0.0
ingres.describe | 1 | PHP_INI_ALL | Available since ingres 2.1.0
ingres.fetch_buffer_size | 100 | PHP_INI_ALL | Available since ingres 2.1.0
ingres.max_links | "-1" | PHP_INI_SYSTEM | Available since ingres 1.0.0
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Available since ingres 1.0.0
ingres.reuse_connection | "1" | PHP_INI_ALL | Available since ingres 2.0.0
ingres.scrollable | "1" | PHP_INI_ALL | Available since ingres 2.0.0.
ingres.trace | "0" | PHP_INI_ALL | Available since ingres 2.0.0.
ingres.trace_connect | "0" | PHP_INI_ALL | Available since ingres 1.2.1.
ingres.utf8 | "1" | PHP_INI_ALL | Available since ingres 2.0.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ingres.allow_persistent boolean

Specifies whether to allow persistent connections to Ingres

ingres.array_index_start integer

Specifies the start value for an integer key for arrays generated by ingres_fetch_row() or ingres_fetch_array(). By default ingres.array_index_start is set to 1. If you wish to make the ingres extension behave like other database extensions set this configuration option to 0.

ingres.auto boolean

Enables or disables autocommit emulation. Ingres cannot have multiple cursors open with autocommit enabled. When enabled, the driver emulates autocommit.

ingres.blob_segment_length integer

Specifies the amount of memory to use when reading BLOB data, in bytes

ingres.cursor_mode integer

Specifies the default mode for cursors opened with ingres_prepare(). Valid values are INGRES_CURSOR_UPDATE or INGRES_CURSOR_READONLY.

ingres.default_database string

Specifies the default database name to use when connecting to the database server if no other name is specified. Does not apply in SQL safe mode.

ingres.default_password string

Specifies the default password to use when connecting to the database server if no other name is specified. Does not apply in SQL safe mode.

ingres.default_user string

Specifies the default user name to use when connecting to the database server if no other name is specified. Does not apply in SQL safe mode.

ingres.describe boolean

Enables the use of DESCRIBE INPUT to determine the expected data types for queries that use parameters. Available with Ingres 9.1.0 and later. When disabled, queries that have parameters passed may need to manually describe the types of those parameters using the types parameter in ingres_query().

Замечание:

Enabling this feature with ingres_query() will cause additional communications traffic between this extension and the server. To minimize this additional traffic, use ingres_prepare() and ingres_execute().

ingres.fetch_buffer_size integer

Specifies the number of pre-fetch rows that ingres_fetch_array(), ingres_fetch_object() and ingres_fetch_row() will try and fetch in one fetch operation.

ingres.max_links integer

Specifies the maximum number of Ingres sessions allowed per process or thread. The number of sessions should not exceed the total number of connected sessions configured within Ingres.

ingres.max_persistent integer

Specifies the maximum number of persistent Ingres sessions allowed per process or thread. The number of sessions should not exceed the total number of connected sessions configured within Ingres.

ingres.reuse_connection boolean

Reuses an existing active connection if connecting to the same database with the same user name

ingres.scrollable boolean

Enables support for scrollable cursors. When fetching CLOB or BLOB data, this should be set to FALSE. Available with Ingres 9.2.0 or later.

ingres.trace boolean

Enables simple tracing using E_NOTICE messages

ingres.trace_connect boolean

Prints E_NOTICE messages during ingres_connect() or ingres_pconnect() calls

ingres.utf8 boolean

Assumes that strings being passed to National Character column types (NVARCHAR or NCHAR) are using UTF8 encoding and converts them to UTF16 for the server


Типы ресурсов

ingres_connect() and ingres_pconnect() return an Ingres link identifier.

ingres_query() and ingres_unbuffered_query() return an Ingres result identifier.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

INGRES_ASSOC (integer)
Columns are returned into the array having the fieldname as the array index. Used with ingres_fetch_array().
INGRES_NUM (integer)
Columns are returned into the array having a numerical index to the fields. By default this index starts at 1, the first field in the result. To change this value, see ingres.array_index_start. Used with ingres_fetch_array().
INGRES_BOTH (integer)
Columns are returned into the array having both a numerical index and the fieldname as the array index. Used with ingres_fetch_array().
INGRES_EXT_VERSION (string)
Specifies the version of the Ingres Extension. Available since version 1.2.0 of the PECL extension.
INGRES_API_VERSION (integer)
Specifies the version of Ingres OpenAPI that the extension was built against. Available since version 1.2.0 of the PECL extension.
INGRES_CURSOR_READONLY (integer)
Specifies that Ingres cursors should be opened in "readonly" mode. Available since version 1.2.0 of the PECL extension. Used with ingres.cursor_mode.
INGRES_CURSOR_UPDATE (integer)
Specifies that Ingres cursors should be opened "for update." Available since version 1.2.0 of the PECL extension. Used with ingres.cursor_mode.
INGRES_DATE_MULTINATIONAL (integer)
Equivalent to the II_DATE_FORMAT setting of MULTINATIONAL. Available since version 1.2.0 of the PECL extension. Used with ingres_connect(), ingres_pconnect() and ingres_set_environment(). See options in ingres_set_environment().
INGRES_DATE_MULTINATIONAL4 (integer)
Equivalent to the II_DATE_FORMAT setting of MULTINATIONAL4. Available since version 1.2.0 of the PECL extension.
Used with
ingres_connect(), ingres_pconnect()
and ingres_set_environment(). See options
in ingres_set_environment().
INGRES_DATE_FINNISH (integer)
Equivalent to the II_DATE_FORMAT setting of FINNISH. Available since version 1.2.0 of the PECL extension.
Used with
ingres_connect(), ingres_pconnect()
and ingres_set_environment(). See options
in ingres_set_environment().
INGRES_DATE_ISO (integer)
Equivalent to the II_DATE_FORMAT setting of ISO. Available since version 1.2.0 of the PECL extension.
Used with
ingres_connect(), ingres_pconnect()
and ingres_set_environment(). See options
in ingres_set_environment().
INGRES_DATE_ISO4 (integer)
Equivalent to the II_DATE_FORMAT setting of ISO4. Available since version 1.2.0 of the PECL extension.
Used with
ingres_connect(), ingres_pconnect()
and ingres_set_environment(). See options
in ingres_set_environment().
INGRES_DATE_GERMAN (integer)
Equivalent to the II_DATE_FORMAT setting of GERMAN. Available since version 1.2.0 of the PECL extension.
Used with
ingres_connect(), ingres_pconnect()
and ingres_set_environment(). See options
in ingres_set_environment().
INGRES_DATE_MDY (integer)
Equivalent to the II_DATE_FORMAT setting of MDY. Available since version 1.2.0 of the PECL extension.
Used with
ingres_connect(), ingres_pconnect()
and ingres_set_environment(). See options
in ingres_set_environment().
INGRES_DATE_DMY (integer)
Equivalent to the II_DATE_FORMAT setting of DMY. Available since version 1.2.0 of the PECL extension.
Used with
ingres_connect(), ingres_pconnect()
and ingres_set_environment(). See options
in ingres_set_environment().
INGRES_DATE_YMD (integer)
Equivalent to the II_DATE_FORMAT setting of YMD. Available since version 1.2.0 of the PECL extension.
Used with
ingres_connect(), ingres_pconnect()
and ingres_set_environment(). See options
in ingres_set_environment().
INGRES_MONEY_LEADING (integer)
Specifies the currency character that should be placed at the start of a money value. Equivalent to setting II_MONEY_FORMAT to "L:". Available since version 1.2.0 of the PECL extension. Used with ingres_connect(), ingres_pconnect() and ingres_set_environment(). See options in ingres_set_environment().
INGRES_MONEY_TRAILING (integer)
Specifies the currency character that should be placed at the end of a money value. Equivalent to setting II_MONEY_FORMAT to "T:". Available since version 1.2.0 of the PECL extension. Used with ingres_connect(), ingres_pconnect() and ingres_set_environment(). See options in ingres_set_environment().
INGRES_STRUCTURE_BTREE (integer)
Specifies the default table or index structure to BTREE when used in combination with the
options or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
Used with ingres_connect() and
ingres_pconnect(). See options
in ingres_connect().
INGRES_STRUCTURE_CBTREE (integer)
Specifies the default table or index structure to COMPRESSED BTREE when used in combination with the
options or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
Used with ingres_connect() and
ingres_pconnect(). See options
in ingres_connect().
INGRES_STRUCTURE_HASH (integer)
Specifies the default table or index structure to HASH when used in combination with the
options or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
Used with ingres_connect() and
ingres_pconnect(). See options
in ingres_connect().
INGRES_STRUCTURE_CHASH (integer)
Specifies the default table or index structure to COMPRESSED HASH when used in combination with the
options or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
Used with ingres_connect() and
ingres_pconnect(). See options
in ingres_connect().
INGRES_STRUCTURE_HEAP (integer)
Specifies the default table structure to HEAP when used in combination with the
options option when connecting. Available since version 1.4.0 of the PECL extension.
Used with ingres_connect() and
ingres_pconnect(). See options
in ingres_connect().
INGRES_STRUCTURE_CHEAP (integer)
Specifies the default table structure to COMPRESSED HEAP when used in combination with the
options option when connecting. Available since version 1.4.0 of the PECL extension.
Used with ingres_connect() and
ingres_pconnect(). See options
in ingres_connect().
INGRES_STRUCTURE_ISAM (integer)
Specifies the default table or index structure to ISAM when used in combination with the
options or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
Used with ingres_connect() and
ingres_pconnect(). See options
in ingres_connect().
INGRES_STRUCTURE_CISAM (integer)
Specifies the default table or index structure to COMPRESSED ISAM when used in combination with the
options or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.
Used with ingres_connect() and
ingres_pconnect(). See options
in ingres_connect().


  • « Предопределенные константы
  • Basic usage »
  • PHP Manual
  • Ingres
  • Примеры

Примеры

Содержание

  • Basic usage


Basic usage

The following simple example shows how to connect to an Ingres database, execute a query, print resulting rows and disconnect from the database.

Пример #1 Simple Ingres Example

<?php
// Connecting, selecting database
$link = ingres_connect("database", "user", "password")
    or die("Could not connect: " . ingres_error($link));
echo "Connected successfully";

// Select from a table that exists in all Ingres databases
$query = "SELECT * FROM iitables";
$result = ingres_query($link,$query) or die("Query failed: " .
ingres_error($link));

// Print results in HTML
// relid - table name
// relowner - table owner
echo "<table>\n";
while ($iitables = ingres_fetch_object($result)) {
    echo "\t<tr>\n";
    echo "\t\t<td>" . $iitables->relid . "</td>\n";
    echo "\t\t<td>" . $iitables->relowner . "</td>\n";
    echo "\t</tr>\n";
}
echo "</table>\n";

// Free results
ingres_free_result($result);

// Commit transaction
ingres_commit($link);

// Closing connection
ingres_close($link);
?>


Ingres Функции

Содержание

  • ingres_autocommit_state — Test if the connection is using autocommit
  • ingres_autocommit — Switch autocommit on or off
  • ingres_charset — Returns the installation character set
  • ingres_close — Close an Ingres database connection
  • ingres_commit — Commit a transaction
  • ingres_connect — Open a connection to an Ingres database
  • ingres_cursor — Get a cursor name for a given result resource
  • ingres_errno — Get the last Ingres error number generated
  • ingres_error — Get a meaningful error message for the last error generated
  • ingres_errsqlstate — Get the last SQLSTATE error code generated
  • ingres_escape_string — Escape special characters for use in a query
  • ingres_execute — Execute a prepared query
  • ingres_fetch_array — Fetch a row of result into an array
  • ingres_fetch_assoc — Fetch a row of result into an associative array
  • ingres_fetch_object — Fetch a row of result into an object
  • ingres_fetch_proc_return — Get the return value from a procedure call
  • ingres_fetch_row — Fetch a row of result into an enumerated array
  • ingres_field_length — Get the length of a field
  • ingres_field_name — Get the name of a field in a query result
  • ingres_field_nullable — Test if a field is nullable
  • ingres_field_precision — Get the precision of a field
  • ingres_field_scale — Get the scale of a field
  • ingres_field_type — Get the type of a field in a query result
  • ingres_free_result — Free the resources associated with a result identifier
  • ingres_next_error — Get the next Ingres error
  • ingres_num_fields — Get the number of fields returned by the last query
  • ingres_num_rows — Get the number of rows affected or returned by a query
  • ingres_pconnect — Open a persistent connection to an Ingres database
  • ingres_prepare — Prepare a query for later execution
  • ingres_query — Send an SQL query to Ingres
  • ingres_result_seek — Set the row position before fetching data
  • ingres_rollback — Roll back a transaction
  • ingres_set_environment — Set environment features controlling output options
  • ingres_unbuffered_query — Send an unbuffered SQL query to Ingres


Test if the connection is using autocommit

  • « Ingres Функции
  • ingres_autocommit »
  • PHP Manual
  • Ingres Функции
  • Test if the connection is using autocommit

ingres_autocommit_state

(PECL ingres >= 2.0.0)

ingres_autocommit_state — Test if the connection is using autocommit

Описание

bool ingres_autocommit_state ( resource $link )

ingres_autocommit_state() is called to determine whether the current link has autocommit enabled or not.

Список параметров

link

The connection link identifier

Возвращаемые значения

Returns TRUE if autocommit is enabled or FALSE when autocommit is disabled

Смотрите также

  • ingres_autocommit() - Switch autocommit on or off
  • ingres_query() - Send an SQL query to Ingres


Switch autocommit on or off

  • « ingres_autocommit_state
  • ingres_charset »
  • PHP Manual
  • Ingres Функции
  • Switch autocommit on or off

ingres_autocommit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_autocommit — Switch autocommit on or off

Описание

bool ingres_autocommit ( resource $link )

ingres_autocommit() is called before opening a transaction (before the first call to ingres_query() or just after a call to ingres_rollback() or ingres_commit()) to switch the autocommit mode of the server on or off (when the script begins the autocommit mode is off).

When autocommit mode is on, every query is automatically committed by the server, as if ingres_commit() was called after every call to ingres_query(). To see if autocommit is enabled use, ingres_autocommit_state().

By default Ingres will rollback any uncommitted transactions at the end of a request. Use this function or ingres_commit() to ensure your data is committed to the database.

Список параметров

link

The connection link identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ingres_autocommit_state() - Test if the connection is using autocommit
  • ingres_query() - Send an SQL query to Ingres
  • ingres_rollback() - Roll back a transaction
  • ingres_commit() - Commit a transaction


Returns the installation character set

  • « ingres_autocommit
  • ingres_close »
  • PHP Manual
  • Ingres Функции
  • Returns the installation character set

ingres_charset

(PECL ingres >= 2.1.0)

ingres_charset — Returns the installation character set

Описание

string ingres_charset ( resource $link )

ingres_charset() is called to determine the character set being used by the Ingres client, from II_CHARSETxx (where xx is the installation code).

Замечание:

You can override the value returned by using the function putenv(). Changing the value of II_CHARSETxx in a running Ingres installation can cause data corruption.

Список параметров

link

The connection link identifier

Возвращаемые значения

Returns a string with the value for II_CHARSETxx or returns NULL if the value could not be determined.

Примеры

Пример #1 ingres_charset() - Get the installation character set

<?php
$link = ingres_connect($database, $user, $password);

echo ingres_charset($link) . "\n";

ingres_close($link);
?>

Смотрите также

  • ingres_connect() - Open a connection to an Ingres database
  • ingres_query() - Send an SQL query to Ingres


Close an Ingres database connection

  • « ingres_charset
  • ingres_commit »
  • PHP Manual
  • Ingres Функции
  • Close an Ingres database connection

ingres_close

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_close — Close an Ingres database connection

Описание

bool ingres_close ( resource $link )

ingres_close() closes the connection to the Ingres server that is associated with the specified link.

ingres_close() is usually unnecessary, as it will not close persistent connections and all non-persistent connections are automatically closed at the end of the script.

Список параметров

link

The connection link identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ingres_connect() - Open a connection to an Ingres database
  • ingres_pconnect() - Open a persistent connection to an Ingres database


Commit a transaction

  • « ingres_close
  • ingres_connect »
  • PHP Manual
  • Ingres Функции
  • Commit a transaction

ingres_commit

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_commit — Commit a transaction

Описание

bool ingres_commit ( resource $link )

ingres_commit() commits the currently open transaction, making all changes made to the database permanent.

This closes the transaction. A new transaction can be opened by sending a query with ingres_query().

You can also have the server commit automatically after every query by calling ingres_autocommit() before opening the transaction.

By default Ingres will roll back any uncommitted transactions at the end of a request. Use this function or ingres_autocommit() to ensure your that data is committed to the database.

Список параметров

link

The connection link identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off


Open a connection to an Ingres database

  • « ingres_commit
  • ingres_cursor »
  • PHP Manual
  • Ingres Функции
  • Open a connection to an Ingres database

ingres_connect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_connect — Open a connection to an Ingres database

Описание

resource ingres_connect ([ string $database [, string $username [, string $password [, array $options ]]]] )

ingres_connect() opens a connection with the given Ingres database.

The connection is closed when the script ends or when ingres_close() is called on this link.

Список параметров

If some parameters are missing, ingres_connect() uses the values in php.ini for ingres.default_database, ingres.default_user and ingres.default_password.

database

The database name. Must follow the syntax:

[vnode::]dbname[/svr_class]

username

The Ingres user name

password

The password associated with username

options

ingres_connect() options

Option name | Option type | Description | Example
date_century_boundary | integer | The threshold by which a 2-digit year is determined to be in the current century or in the next century. Equivalent to II_DATE_CENTURY_BOUNDARY. | 50
group | string | Specifies the group ID of the user, equivalent to the "-G" flag | payroll
role | string | The role ID of the application. If a role password is required, the parameter value should be specified as "role/password"
effective_user | string | The ingres user account being impersonated, equivalent to the "-u" flag | another_user
dbms_password | string | The internal database password for the user connecting to Ingres | s3cr3t
table_structure string

The default structure for new tables. Valid values for table_structure are:

  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_HEAP
  • INGRES_STRUCTURE_ISAM
  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_CHEAP

 INGRES_STRUCTURE_BTREE
index_structure string

The default structure for new secondary indexes. Valid values for index_structure are:

  • INGRES_STRUCTURE_CBTREE
  • INGRES_STRUCTURE_CISAM
  • INGRES_STRUCTURE_CHASH
  • INGRES_STRUCTURE_BTREE
  • INGRES_STRUCTURE_HASH
  • INGRES_STRUCTURE_ISAM

 INGRES_STRUCTURE_HASH
login_local | boolean | Determines how the connection user ID and password are used when a VNODE is included in the target database string. If set to TRUE, the user ID and password are used to locally access the VNODE, and the VNODE login information is used to establish the DBMS connection. If set to FALSE, the process user ID is used to access the VNODE, and the connection user ID and password are used in place of the VNODE login information to establish the DBMS connection. This parameter is ignored if no VNODE is included in the target database string. The default is FALSE. | TRUE
timezone | string | Controls the timezone of the session. If not set it will default to the value defined by II_TIMEZONE_NAME. If II_TIMEZONE_NAME is not defined, NA-PACIFIC (GMT-8 with Daylight Savings) is used.
date_format integer

Sets the allowable input and output format for Ingres dates. Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is not set the default date format is US, e.g. mm/dd/yy. Valid values for date_format are:

  • INGRES_DATE_DMY
  • INGRES_DATE_FINISH
  • INGRES_DATE_GERMAN
  • INGRES_DATE_ISO
  • INGRES_DATE_ISO4
  • INGRES_DATE_MDY
  • INGRES_DATE_MULTINATIONAL
  • INGRES_DATE_MULTINATIONAL4
  • INGRES_DATE_YMD
  • INGRES_DATE_US

 INGRES_DATE_MULTINATIONAL4
decimal_separator string The character identifier for decimal data ","
money_lort integer

Leading or trailing currency sign. Valid values for money_lort are:

  • INGRES_MONEY_LEADING
  • INGRES_MONEY_TRAILING

 INGRES_MONEY_TRAILING
money_sign string The currency symbol to be used with the MONEY datatype €
money_precision | integer | The precision of the MONEY datatype | 3
float4_precision | integer | Precision of the FLOAT4 datatype | 10
float8_precision | integer | Precision of the FLOAT8 data | 10
blob_segment_length | integer | The amount of data in bytes to fetch at a time when retrieving BLOB or CLOB data, defaults to 4096 bytes when not explicitly set | 8192

Возвращаемые значения

Returns a Ingres link resource on success или FALSE в случае возникновения ошибки

Примеры

Пример #1 Open a connection to an Ingres database

<?php
$link = ingres_connect("mydb", "user", "pass")
    or die("Could not connect");
echo "Connected successfully";
ingres_close($link);
?>

Смотрите также

  • ingres_pconnect() - Open a persistent connection to an Ingres database
  • ingres_close() - Close an Ingres database connection


Get a cursor name for a given result resource

  • « ingres_connect
  • ingres_errno »
  • PHP Manual
  • Ingres Функции
  • Get a cursor name for a given result resource

ingres_cursor

(PECL ingres >= 1.1.0)

ingres_cursor — Get a cursor name for a given result resource

Описание

string ingres_cursor ( resource $result )

Returns a string with the active cursor name. If no cursor is active then NULL is returned.

Список параметров

result

The query result identifier

Возвращаемые значения

Returns a string containing the active cursor name. If no cursor is active then NULL is returned.

Примеры

Пример #1 Get cursor name for a query resource

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_prepare($link, "select * from table");

$cursor_name = ingres_cursor($result);

echo $cursor_name;

?>

Смотрите также

  • ingres_prepare() - Prepare a query for later execution
  • ingres_execute() - Execute a prepared query


Get the last Ingres error number generated

  • « ingres_cursor
  • ingres_error »
  • PHP Manual
  • Ingres Функции
  • Get the last Ingres error number generated

ingres_errno

(PECL ingres >= 1.1.0)

ingres_errno — Get the last Ingres error number generated

Описание

int ingres_errno ([ resource $link ] )

Returns an integer containing the last error number. If no error was reported 0 is returned.

If a link resource is passed to ingres_errno() it returns the last error recorded for the link. If no link is passed, then ingres_errno() returns the last error reported using the default link.

The function, ingres_errno(), should always be called after executing a database query. Calling another function before ingres_errno() is called will reset or change any error code from the last Ingres function call.

Список параметров

link

The connection link identifier

Возвращаемые значения

Returns an integer containing the last error number. If no error was reported, 0 is returned.

Примеры

Пример #1 Get the last Ingres error number generated

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

$error_code = ingres_errno($link);

if ( $error_code != 0 ) {
   echo "An error occurred - " . $error_code;
}
?>

Смотрите также

  • ingres_error() - Get a meaningful error message for the last error generated
  • ingres_errsqlstate() - Get the last SQLSTATE error code generated
  • ingres_next_error() - Get the next Ingres error


Get a meaningful error message for the last error generated

  • « ingres_errno
  • ingres_errsqlstate »
  • PHP Manual
  • Ingres Функции
  • Get a meaningful error message for the last error generated

ingres_error

(PECL ingres >= 1.1.0)

ingres_error — Get a meaningful error message for the last error generated

Описание

string ingres_error ([ resource $link ] )

Returns a string containing the last error, or NULL if no error has occurred.

If a link resource is passed to ingres_error(), it returns the last error recorded for the link. If no link is passed then ingres_error() returns the last error reported using the default link.

The function, ingres_error(), should always be called after executing any database query. Calling another function before ingres_error() is called will reset or change any error message from the last Ingres function call.

Список параметров

link

The connection link identifier

Возвращаемые значения

Returns a string containing the last error, or NULL if no error has occurred.

Примеры

Пример #1 Get a message for the last error generated

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

$error_text = ingres_error();

if (!is_null($error_text)) {
   echo "An error occurred - " . $error_text;
}
?>

Смотрите также

  • ingres_errno() - Get the last Ingres error number generated
  • ingres_errsqlstate() - Get the last SQLSTATE error code generated
  • ingres_next_error() - Get the next Ingres error


Get the last SQLSTATE error code generated

  • « ingres_error
  • ingres_escape_string »
  • PHP Manual
  • Ingres Функции
  • Get the last SQLSTATE error code generated

ingres_errsqlstate

(PECL ingres >= 1.1.0)

ingres_errsqlstate — Get the last SQLSTATE error code generated

Описание

string ingres_errsqlstate ([ resource $link ] )

Returns a string containing the last SQLSTATE, or NULL if no error has occurred.

If a link resource is passed to ingres_errsqlstate(), it returns the last error recorded for the link. If no link is passed, then ingres_errsqlstate() returns the last error reported using the default link.

The function, ingres_errsqlstate(), should always be called after executing any database query. Calling another function before ingres_errsqlstate() is called will reset or change any error message from the last Ingres function call.

Список параметров

link

The connection link identifier

Возвращаемые значения

Returns a string containing the last SQLSTATE, or NULL if no error has occurred.

Примеры

Пример #1 Get the last SQLSTATE error code generated

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

$error_sqlstate = ingres_errsqlstate($link);

if (!is_null($error_sqlstate)) {
   echo "An error occurred - " . $error_sqlstate;
}
?>

Смотрите также

  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated
  • ingres_next_error() - Get the next Ingres error


Escape special characters for use in a query

  • « ingres_errsqlstate
  • ingres_execute »
  • PHP Manual
  • Ingres Функции
  • Escape special characters for use in a query

ingres_escape_string

(PECL ingres >= 2.1.0)

ingres_escape_string — Escape special characters for use in a query

Описание

string ingres_escape_string ( resource $link , string $source_string )

ingres_escape_string() is used to escape certain characters within a string before it is sent to the database server.

Список параметров

link

The connection link identifier

source_string

The source string to be parsed

Возвращаемые значения

Returns a string containing the escaped data.

Примеры

Пример #1 Escape special characters for use in a query

<?php
$link = ingres_connect($database, $user, $password);

$last_name = "O'Connor";

$sql = sprintf("select * from user_profile where up_last = '%s'", ingres_escape_string( $link, $last_name));

$result = ingres_query($link, $sql);

while ($user = ingres_fetch_object($result))
{
  echo $user->up_first . '<BR/>';
}

ingres_commit($link);

ingres_close($link);

?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres


Execute a prepared query

  • « ingres_escape_string
  • ingres_fetch_array »
  • PHP Manual
  • Ingres Функции
  • Execute a prepared query

ingres_execute

(PECL ingres >= 1.1.0)

ingres_execute — Execute a prepared query

Описание

bool ingres_execute ( resource $result [, array $params [, string $types ]] )

Execute a query prepared using ingres_prepare().

Замечание: Related Configurations

See also the ingres.describe, ingres.scrollable and ingres.utf8 directives in Runtime Configuration.

Список параметров

result

The result query identifier

params

An array of parameter values to be used with the query

types

A string containing a sequence of types for the parameter values passed. See the types parameter in ingres_query() for the list of type codes.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ingres_unbuffered_query() - Send an unbuffered SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array
  • ingres_commit() - Commit a transaction
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off
  • ingres_set_environment() - Set environment features controlling output options
  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated


Fetch a row of result into an array

  • « ingres_execute
  • ingres_fetch_assoc »
  • PHP Manual
  • Ingres Функции
  • Fetch a row of result into an array

ingres_fetch_array

( PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_array — Fetch a row of result into an array

Описание

array ingres_fetch_array ( resource $result [, int $result_type ] )

This function is an extended version of ingres_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

If two or more columns of the result have the same field names, the last column will take precedence. To access the another column or columns of the same name, you must use the numeric index of the column or make an alias for the column. For example:

<?php

$result = ingres_query($link, "select ap_place as city, ap_ccode as country from airport where ap_iatacode = 'VLL'");
$result = ingres_fetch_array($result);
$foo = $result["city"];
$bar = $result["country"];

?>

With regard to speed, the function is identical to ingres_fetch_object(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

By default, arrays created by ingres_fetch_array() start from position 1 and not 0 as with other DBMS extensions. The starting position can be adjusted to 0 using the configuration parameter ingres.array_index_start.

Замечание: Related Configurations

See also the ingres.array_index_start, ingres.fetch_buffer_size and ingres.utf8 directives in Runtime Configuration.

Список параметров

result

The query result identifier

result_type

The result type. This result_type can be INGRES_NUM for enumerated array, INGRES_ASSOC for associative array, or INGRES_BOTH (default).

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows

Примеры

Пример #1 Fetch a row of result into an array

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link,"select * from table");
while ($row = ingres_fetch_array($result)) {
    echo $row["user_id"];  // using associative array
    echo $row["fullname"];
    echo $row[1];          // using enumerated array
    echo $row[2];
}
?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_num_fields() - Get the number of fields returned by the last query
  • ingres_field_name() - Get the name of a field in a query result
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Fetch a row of result into an associative array

  • « ingres_fetch_array
  • ingres_fetch_object »
  • PHP Manual
  • Ingres Функции
  • Fetch a row of result into an associative array

ingres_fetch_assoc

(PECL ingres >= 2.2.2)

ingres_fetch_assoc — Fetch a row of result into an associative array

Описание

array ingres_fetch_assoc ( resource $result )

This function is stores the data fetched from a query executed using ingres_query() in an associative array, using the field names as keys.

With regard to speed, the function is identical to ingres_fetch_object(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

By default, arrays created by ingres_fetch_assoc() start from position 1 and not 0 as with other DBMS extensions. The starting position can be adjusted to 0 using the configuration parameter ingres.array_index_start.

Замечание: Related Configurations

See also the ingres.array_index_start, ingres.fetch_buffer_size and ingres.utf8 directives in Runtime Configuration.

Список параметров

result

The query result identifier

Возвращаемые значения

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows

Примеры

Пример #1 Fetch a row into an associative array

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link,"select * from table");
while ($row = ingres_fetch_assoc($result)) {
    echo $row["user_id"];  // using associative array
    echo $row["fullname"];
}
?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_num_fields() - Get the number of fields returned by the last query
  • ingres_field_name() - Get the name of a field in a query result
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Fetch a row of result into an object

  • « ingres_fetch_assoc
  • ingres_fetch_proc_return »
  • PHP Manual
  • Ingres Функции
  • Fetch a row of result into an object

ingres_fetch_object

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_object — Fetch a row of result into an object

Описание

object ingres_fetch_object ( resource $result [, int $result_type ] )

This function is similar to ingres_fetch_array(), with one difference - an object is returned instead of an array. Indirectly, this means that you can access the data only by the field names and not by their offsets (numbers are illegal property names).

With regard to speed, the function is identical to ingres_fetch_array(), and almost as quick as ingres_fetch_row() (the difference is insignificant).

Замечание: Related Configurations

See also the ingres.fetch_buffer_size and ingres.utf8 directives in Runtime Configuration.

Список параметров

link

The query result identifier

result_type

(Optional argument.) result_type is a constant and can take the following values: INGRES_ASSOC, INGRES_NUM, and INGRES_BOTH.

Возвращаемые значения

Returns an object that corresponds to the fetched row, or FALSE if there are no more rows

Примеры

Пример #1 Fetch a row into an object

<?php
$link = ingres_connect($database, $user, $password);
$result = ingres_query($link, "select * from table");
while ($row = ingres_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_num_fields() - Get the number of fields returned by the last query
  • ingres_field_name() - Get the name of a field in a query result
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the return value from a procedure call

  • « ingres_fetch_object
  • ingres_fetch_row »
  • PHP Manual
  • Ingres Функции
  • Get the return value from a procedure call

ingres_fetch_proc_return

(PECL ingres >= 1.4.0)

ingres_fetch_proc_return — Get the return value from a procedure call

Описание

int ingres_fetch_proc_return ( resource $result )

This function is used to retrieve the return value following the execution of an Ingres database procedure (stored procedure).

Замечание:

If used with a row-producing procedure, this function should be called after all the rows from the procedure have been fetched using ingres_fetch_array(), ingres_fetch_object() or ingres_fetch_row(). This function will eliminate any rows yet to be fetched should there be any left over.

Список параметров

result

The result identifier for a query

Возвращаемые значения

Returns an integer if there is a return value otherwise it will return NULL.

Примеры

Пример #1 Get the return value from a procedure call

<?php

$link = ingres_connect($database);

if ( ingres_errno() != 0 ) {
    $error_text = ingres_error();
    die($error_text);
}

$result = ingres_query($link, "execute procedure php_proc (value = 1000)");

if ( ingres_errno() != 0 ) {
    $error_text = ingres_error();
    die($error_text);
}

echo "return value - " . ingres_fetch_proc_return($result) . "\n";

ingres_close($link);

?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Fetch a row of result into an enumerated array

  • « ingres_fetch_proc_return
  • ingres_field_length »
  • PHP Manual
  • Ingres Функции
  • Fetch a row of result into an enumerated array

ingres_fetch_row

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_fetch_row — Fetch a row of result into an enumerated array

Описание

array ingres_fetch_row ( resource $result )

ingres_fetch_row() returns an array that corresponds to the fetched row, or FALSE if there are no more rows. Each result column is stored in an array offset, starting at offset 1.

Subsequent calls to ingres_fetch_row() return the next row in the result set, or FALSE if there are no more rows.

By default, arrays created by ingres_fetch_row() start from position 1 and not 0 as with other DBMS extensions. The starting position can be adjusted to 0 using the configuration parameter ingres.array_index_start.

Замечание: Related Configurations

See also the ingres.array_index_start, ingres.fetch_buffer_size and ingres.utf8 directives in Runtime Configuration.

Список параметров

result

The query result identifier

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows

Примеры

Пример #1 Fetch a row of result into an enumerated array

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Смотрите также

  • ingres_num_fields() - Get the number of fields returned by the last query
  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object


Get the length of a field

  • « ingres_fetch_row
  • ingres_field_name »
  • PHP Manual
  • Ingres Функции
  • Get the length of a field

ingres_field_length

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_length — Get the length of a field

Описание

int ingres_field_length ( resource $result , int $index )

ingres_field_length() returns the length of a field. This is the number of bytes the server uses to store the field. For detailed information, see the Ingres OpenAPI User Guide, Appendix "Data Types" in the Ingres documentation.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the column number whose length will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

Returns the length of a field.

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the name of a field in a query result

  • « ingres_field_length
  • ingres_field_nullable »
  • PHP Manual
  • Ingres Функции
  • Get the name of a field in a query result

ingres_field_name

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_name — Get the name of a field in a query result

Описание

string ingres_field_name ( resource $result , int $index )

ingres_field_name() returns the name of a field in a query result.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the field whose name will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

Returns the name of a field in a query result или FALSE в случае возникновения ошибки

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Test if a field is nullable

  • « ingres_field_name
  • ingres_field_precision »
  • PHP Manual
  • Ingres Функции
  • Test if a field is nullable

ingres_field_nullable

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_nullable — Test if a field is nullable

Описание

bool ingres_field_nullable ( resource $result , int $index )

Test if a field is nullable.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the field whose nullability will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

ingres_field_nullable() returns TRUE if the field can be set to the NULL value and FALSE if it cannot

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the precision of a field

  • « ingres_field_nullable
  • ingres_field_scale »
  • PHP Manual
  • Ingres Функции
  • Get the precision of a field

ingres_field_precision

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_precision — Get the precision of a field

Описание

int ingres_field_precision ( resource $result , int $index )

ingres_field_precision() returns the precision of a field. This value is used only for decimal, float, and money SQL data types. For detailed information, see the Ingres OpenAPI User Guide, Appendix "Data Types" in the Ingres documentation.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the field whose precision will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

Returns the field precision as an integer

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the scale of a field

  • « ingres_field_precision
  • ingres_field_type »
  • PHP Manual
  • Ingres Функции
  • Get the scale of a field

ingres_field_scale

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_scale — Get the scale of a field

Описание

int ingres_field_scale ( resource $result , int $index )

ingres_field_scale() returns the scale of a field. This value is used only for the decimal SQL data type. For detailed information, see the Ingres OpenAPI User Guide, Appendix "Data Types" in the Ingres documentation.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the field whose scale will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

Returns the scale of the field, as an integer

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the type of a field in a query result

  • « ingres_field_scale
  • ingres_free_result »
  • PHP Manual
  • Ingres Функции
  • Get the type of a field in a query result

ingres_field_type

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_field_type — Get the type of a field in a query result

Описание

string ingres_field_type ( resource $result , int $index )

Get the type of a field in a query result.

Замечание: Related Configurations

See ingres.array_index_start in Runtime Configuration

Список параметров

result

The query result identifier

index

index is the field whose type will be retrieved.

The possible values of index depend upon the value of ingres.array_index_start. If ingres.array_index_start is 1 (the default) then index must be between 1 and the value returned by ingres_num_fields(). If ingres.array_index_start is 0 then index must be between 0 and ingres_num_fields() - 1.

Возвращаемые значения

ingres_field_type() returns the type of a field in a query result или FALSE в случае возникновения ошибки. Examples of types returned are IIAPI_BYTE_TYPE, IIAPI_CHA_TYPE, IIAPI_DTE_TYPE, IIAPI_FLT_TYPE, IIAPI_INT_TYPE, IIAPI_VCH_TYPE. Some of these types can map to more than one SQL type depending on the length of the field (see ingres_field_length()). For example IIAPI_FLT_TYPE can be a float4 or a float8. For detailed information, see the Ingres OpenAPI User Guide, Appendix "Data Types" in the Ingres documentation.

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Free the resources associated with a result identifier

  • « ingres_field_type
  • ingres_next_error »
  • PHP Manual
  • Ingres Функции
  • Free the resources associated with a result identifier

ingres_free_result

(PECL ingres >= 2.0.0)

ingres_free_result — Free the resources associated with a result identifier

Описание

bool ingres_free_result ( resource $result )

Список параметров

result

The query result identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Free a result resource

<?php
$link = ingres_connect($database, $user, $password);

$result = ingres_query($link, "select * from table");

while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
ingres_free_result($result);

ingres_close($link)

?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres


Get the next Ingres error

  • « ingres_free_result
  • ingres_num_fields »
  • PHP Manual
  • Ingres Функции
  • Get the next Ingres error

ingres_next_error

(PECL ingres >= 2.0.0)

ingres_next_error — Get the next Ingres error

Описание

bool ingres_next_error ([ resource $link ] )

Get the next Ingres error for the last executed query. Each call to ingres_next_error() can be followed by a call to ingres_errno(), ingres_error() or ingres_errsqlstate() to get the respective error number, error text, or SQL STATE. While ingres_next_error() returns TRUE, there are more errors to fetch.

Список параметров

link

The connection link identifier

Возвращаемые значения

ingres_next_error() returns TRUE if there is another error to retrieve or FALSE when there are no more errors

Смотрите также

  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated
  • ingres_errsqlstate() - Get the last SQLSTATE error code generated


Get the number of fields returned by the last query

  • « ingres_next_error
  • ingres_num_rows »
  • PHP Manual
  • Ingres Функции
  • Get the number of fields returned by the last query

ingres_num_fields

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_num_fields — Get the number of fields returned by the last query

Описание

int ingres_num_fields ( resource $result )

ingres_num_fields() returns the number of fields in the results returned by the Ingres server after a call to ingres_query().

Список параметров

result

The query result identifier

Возвращаемые значения

Returns the number of fields

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Get the number of rows affected or returned by a query

  • « ingres_num_fields
  • ingres_pconnect »
  • PHP Manual
  • Ingres Функции
  • Get the number of rows affected or returned by a query

ingres_num_rows

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_num_rows — Get the number of rows affected or returned by a query

Описание

int ingres_num_rows ( resource $result )

This function primarily is meant to get the number of rows modified in the database. However, it can be used to retrieve the number of rows to fetch for a SELECT statement.

Замечание:

If scrollable cursors are disabled and this function is called before using ingres_fetch_array(), ingres_fetch_object(), or ingres_fetch_row(), the server will delete the result's data and the script will be unable to get them.

Instead, you should retrieve the result's data using one of these fetch functions in a loop until it returns FALSE, indicating that no more results are available.

Список параметров

result

The result identifier for a query

Возвращаемые значения

For delete, insert, or update queries, ingres_num_rows() returns the number of rows affected by the query. For other queries, ingres_num_rows() returns the number of rows in the query's result.

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Open a persistent connection to an Ingres database

  • « ingres_num_rows
  • ingres_prepare »
  • PHP Manual
  • Ingres Функции
  • Open a persistent connection to an Ingres database

ingres_pconnect

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_pconnect — Open a persistent connection to an Ingres database

Описание

resource ingres_pconnect ([ string $database [, string $username [, string $password [, array $options ]]]] )

Open a persistent connection to an Ingres database.

There are only two differences between this function and ingres_connect(): First, when connecting, the function will initially try to find a (persistent) link that is already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection. Second, the connection to the Ingres server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ingres_close() will not close links established by ingres_pconnect()). This type of link is therefore called "persistent".

Список параметров

database

The database name. Must follow the syntax:

[vnode::]dbname[/svr_class]

username

The Ingres user name

password

The password associated with username

options

See ingres_connect() for the list of options that can be passed

Возвращаемые значения

Returns an Ingres link resource on success или FALSE в случае возникновения ошибки

Смотрите также

  • ingres_connect() - Open a connection to an Ingres database
  • ingres_close() - Close an Ingres database connection


Prepare a query for later execution

  • « ingres_pconnect
  • ingres_query »
  • PHP Manual
  • Ingres Функции
  • Prepare a query for later execution

ingres_prepare

(PECL ingres >= 1.1.0)

ingres_prepare — Prepare a query for later execution

Описание

mixed ingres_prepare ( resource $link , string $query )

Prepares a query for execution by ingres_execute().

The query becomes part of the currently open transaction. If there is no open transaction, ingres_query() opens a new transaction. To close the transaction, you can call either ingres_commit() to commit the changes made to the database or ingres_rollback() to cancel these changes. When the script ends, any open transaction is rolled back (by calling ingres_rollback()). You can also use ingres_autocommit() before opening a new transaction to have every SQL query immediately committed.

Замечание: Related Configurations

See also the ingres.describe, ingres.scrollable and ingres.utf8 directives in Runtime Configuration.

Список параметров

link

The connection link identifier

query

A valid SQL query (see the Ingres SQL reference guide) in the Ingres documentation. See the query parameter in ingres_query() for a list of SQL statements which cannot be executed using ingres_prepare()

Возвращаемые значения

ingres_prepare() returns a query result identifier that
is used with ingres_execute() to execute the query. To see
if an error occurred, use ingres_errno(),
ingres_error(), or
ingres_errsqlstate().

Смотрите также

  • ingres_unbuffered_query() - Send an unbuffered SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array
  • ingres_commit() - Commit a transaction
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off
  • ingres_set_environment() - Set environment features controlling output options
  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated


Send an SQL query to Ingres

  • « ingres_prepare
  • ingres_result_seek »
  • PHP Manual
  • Ingres Функции
  • Send an SQL query to Ingres

ingres_query

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_query — Send an SQL query to Ingres

Описание

mixed ingres_query ( resource $link , string $query [, array $params [, string $types ]] )

ingres_query() sends the given query to the Ingres server.

The query becomes part of the currently open transaction. If there is no open transaction, ingres_query() opens a new transaction. To close the transaction, you can call either ingres_commit() to commit the changes made to the database or ingres_rollback() to cancel these changes. When the script ends, any open transaction is rolled back (by calling ingres_rollback()). You can also use ingres_autocommit() before opening a new transaction to have every SQL query immediately committed.

Замечание: Related Configurations

See also the ingres.describe, ingres.scrollable and ingres.utf8 directives in Runtime Configuration

Список параметров

link

The connection link identifier.

query

A valid SQL query (see the Ingres SQL reference guide) in the Ingres documentation.

Data inside the query should be properly escaped.

The following types of SQL queries cannot be sent with this function:

  • close (see ingres_close())
  • commit (see ingres_commit())
  • connect (see ingres_connect())
  • disconnect (see ingres_close())
  • get dbevent
  • prepare to commit
  • rollback (see ingres_rollback())
  • savepoint
  • set autocommit (see ingres_autocommit())
  • all cursor-related queries are unsupported

params

An array of parameter values to be used with the query

types

A string containing a sequence of types for the parameter values passed. When ingres.describe is enabled, this parameter can be ignored as the driver automatically fetches the expected parameter types from the server.

Type code | Ingres type
a | BOOLEAN
b | BYTE
B | LONG BYTE/BLOB
c | CHAR
d | DATE/ANSIDATE/TIMESTAMP/TIME
f | FLOAT
i | INTEGER
L | LONG TEXT
m | MONEY
M | LONG NVARCHAR
n | NCHAR
N | NVARCHAR
t | TEXT
v | VARCHAR
V | LONG VARCHAR

Возвращаемые значения

ingres_query() returns a query result identifier on
success else it returns FALSE. To see if an error
occurred use ingres_errno(),
ingres_error() or
ingres_errsqlstate().

Примеры

Пример #1 Send a simple select

<?php
$link = ingres_connect("demodb");

$result = ingres_query($link, "select * from user_profile");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Пример #2 Passing query parameters to ingres_query()

<?php
$link = ingres_connect("demodb");

$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$result = ingres_query($link, $query, $params);
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Пример #3 Inserting a BLOB with parameter types

<?php
$link = ingres_connect("demodb");

//Open a photo
$fh = fopen("photo.jpg","r");
$blob_data = stream_get_contents($fh);
fclose($fh);

//Prepare parameters
$params[] = $blob_data;
$params[] = 1201;

//Define parameter types
$param_types = "Bi";

$query = "update user_profile set up_image = ? where up_id = ?";
$result = ingres_query($link, $query , $params, $param_types);

if (ingres_errno())
{
    echo ingres_errno() . "-" . ingres_error() . "\n";
}

ingres_commit($link);

ingres_close($link);
?>

Смотрите также

  • ingres_unbuffered_query() - Send an unbuffered SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array
  • ingres_commit() - Commit a transaction
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off
  • ingres_set_environment() - Set environment features controlling output options
  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated


Set the row position before fetching data

  • « ingres_query
  • ingres_rollback »
  • PHP Manual
  • Ingres Функции
  • Set the row position before fetching data

ingres_result_seek

(PECL ingres >= 2.1.0)

ingres_result_seek — Set the row position before fetching data

Описание

bool ingres_result_seek ( resource $result , int $position )

This function is used to position the cursor associated with the result resource before issuing a fetch. If ingres.array_index_start is set to 0 then the first row is 0 else it is 1. ingres_result_seek() can be used only with queries that make use of scrollable cursors. It cannot be used with ingres_unbuffered_query().

Замечание: Related Configurations

See also the ingres.scrollable and ingres.array_index_start directives in Runtime Configuration.

Список параметров

result

The result identifier for a query

position

The row to position the cursor on. If ingres.array_index_start is set to 0, then the first row is 0, else it is 1

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Position the cursor on the 3rd row

<?php

$result=ingres_query($link, "select * from airport where ap_ccode = 'ES' order by ap_place asc");

/* goto row 3 */
if (!ingres_result_seek($result, 3))
{
    echo ingres_errno() . " - " . ingres_error . "\n";
    die("i died");
}
else
{
    $airport = ingres_fetch_object ($result);
    {
        echo $airport->ap_iatacode . " - " .  $airport->ap_name . "\n";
    }
}

ingres_commit($link);

?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array


Roll back a transaction

  • « ingres_result_seek
  • ingres_set_environment »
  • PHP Manual
  • Ingres Функции
  • Roll back a transaction

ingres_rollback

(PHP 4 >= 4.0.2, PHP 5 <= 5.0.5, PECL ingres >= 1.0.0)

ingres_rollback — Roll back a transaction

Описание

bool ingres_rollback ( resource $link )

ingres_rollback() rolls back the currently open transaction, actually cancelling all changes made to the database during the transaction.

This closes the transaction. A new transaction can be opened by sending a query with ingres_query().

Список параметров

link

The connection link identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_commit() - Commit a transaction
  • ingres_autocommit() - Switch autocommit on or off


Set environment features controlling output options

  • « ingres_rollback
  • ingres_unbuffered_query »
  • PHP Manual
  • Ingres Функции
  • Set environment features controlling output options

ingres_set_environment

(PECL ingres >= 1.2.0)

ingres_set_environment — Set environment features controlling output options

Описание

bool ingres_set_environment ( resource $link , array $options )

ingres_set_environment() is called to set environmental options that affect the output of certain values from Ingres, such as the timezone, date format, decimal character separator, and float precision.

Список параметров

link

The connection link identifier

options

An enumerated array of option name/value pairs. The following table lists the option name and the expected type

Option name | Option type | Description | Example
date_century_boundary | integer | The threshold by which a 2-digit year is determined to be in the current century or in the next century. Equivalent to II_DATE_CENTURY_BOUNDARY | 50
timezone | string | Controls the timezone of the session. If not set, it will default the value defined by II_TIMEZONE_NAME. If II_TIMEZONE_NAME is not defined, NA-PACIFIC (GMT-8 with Daylight Savings) is used. | UNITED-KINGDOM
date_format integer

Sets the allowable input and output format for Ingres dates. Defaults to the value defined by II_DATE_FORMAT. If II_DATE_FORMAT is not set, the default date format is US, for example mm/dd/yy. Valid values for date_format are:

  • INGRES_DATE_DMY
  • INGRES_DATE_FINISH
  • INGRES_DATE_GERMAN
  • INGRES_DATE_ISO
  • INGRES_DATE_ISO4
  • INGRES_DATE_MDY
  • INGRES_DATE_MULTINATIONAL
  • INGRES_DATE_MULTINATIONAL4
  • INGRES_DATE_YMD
  • INGRES_DATE_US

 INGRES_DATE_ISO4
decimal_separator string The character identifier for decimal data ","
money_lort integer

Leading or trailing currency sign. Valid values for money_lort are:

  • INGRES_MONEY_LEADING
  • INGRES_MONEY_TRAILING

 INGRES_MONEY_LEADING
money_sign string The currency symbol to be used with the MONEY datatype €
money_precision | integer | The precision of the MONEY datatype | 2
float4_precision | integer | Precision of the FLOAT4 datatype | 10
float8_precision | integer | Precision of the FLOAT8 data | 10
blob_segment_length | integer | The amount of data in bytes to fetch at a time when retrieving BLOB or CLOB data. Defaults to 4096 bytes when not set explicitly | 8192

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Set date_format to ISO4

<?php
$options = array( "date_format" => INGRES_DATE_ISO4 );

if (ingres_set_environment($link, $options))
{
    $result=ingres_query($link,"select date('now') as date");

    while ( $object = ingres_fetch_object ($result) ) {
        echo $object->date."\n";
    }
}
?>

Пример #2 Set timezone to HONG-KONG

<?php

$options = array( "timezone" => "HONG-KONG");

if (ingres_set_environment($link, $options))
{
    $result=ingres_query($link,"select date('now') as date");

    while ( $object = ingres_fetch_object ($result) ) {
        echo $object->date."\n";
    }
}
?>

Смотрите также

  • ingres_connect() - Open a connection to an Ingres database
  • ingres_query() - Send an SQL query to Ingres


Send an unbuffered SQL query to Ingres

  • « ingres_set_environment
  • MaxDB »
  • PHP Manual
  • Ingres Функции
  • Send an unbuffered SQL query to Ingres

ingres_unbuffered_query

(Информация о версии неизвестна, возможно, только в SVN)

ingres_unbuffered_query — Send an unbuffered SQL query to Ingres

Описание

mixed ingres_unbuffered_query ( resource $link , string $query [, array $params [, string $types ]] )

ingres_unbuffered_query() sends the given query to the Ingres server.

The query becomes part of the currently open transaction. If there is no open transaction, ingres_unbuffered_query() opens a new transaction. To close the transaction, you can call either ingres_commit() to commit the changes made to the database or ingres_rollback() to cancel these changes. When the script ends, any open transaction is rolled back (by calling ingres_rollback()). You can also use ingres_autocommit() before opening a new transaction to have every SQL query immediately committed. Ingres allows only a single unbuffered statement to be active at any one time. The extension will close any active unbuffered statements before executing any SQL. In addition you cannot use ingres_result_seek() to position the row before fetching.

Замечание: Related Configurations

See also the ingres.describe and ingres.utf8 directives in Runtime Configuration.

Список параметров

link

The connection link identifier

query

A valid SQL query (see the Ingres SQL reference guide) in the Ingres documentation. See the query parameter in ingres_query() for a list of SQL statements that cannot be executed via ingres_unbuffered_query().

Data inside the query should be properly escaped.

params

An array of parameter values to be used with the query

types

A string containing a sequence of types for the parameter values passed. See the types parameter in ingres_query() for the list of type codes.

Возвращаемые значения

ingres_unbuffered_query() returns a query result identifier when there are rows to fetch; else it returns FALSE when there are no rows, as is the case of an INSERT, UPDATE, or DELETE statement. To see if an error occurred, use ingres_errno(), ingres_error(), or ingres_errsqlstate().

Примеры

Пример #1 Issue a simple un-buffered select

<?php
$link = ingres_connect("demodb");

$result = ingres_unbuffered_query($link, "select * from user_profile");
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Пример #2 Passing query parameters to ingres_unbuffered_query()

<?php
$link = ingres_connect("demodb");

$params[] = "Emma";
$query = "select * from user_profile where up_first = ?";
$result = ingres_unbuffered_query($link, $query, $params);
while ($row = ingres_fetch_row($result)) {
    echo $row[1];
    echo $row[2];
}
?>

Пример #3 Inserting a BLOB with parameter types

<?php
$link = ingres_connect("demodb");

//Open a photo
$fh = fopen("photo.jpg","r");
$blob_data = stream_get_contents($fh);
fclose($fh);

//Prepare parameters
$params[] = $blob_data;
$params[] = 1201;

//Define parameter types
$param_types = "Bi";

$query = "update user_profile set up_image = ? where up_id = ?";
$result = ingres_unbuffered_query($link, $query , $params, $param_types);

if (ingres_errno())
{
    echo ingres_errno() . "-" . ingres_error() . "\n";
}
?>

Смотрите также

  • ingres_query() - Send an SQL query to Ingres
  • ingres_fetch_array() - Fetch a row of result into an array
  • ingres_fetch_assoc() - Fetch a row of result into an associative array
  • ingres_fetch_object() - Fetch a row of result into an object
  • ingres_fetch_row() - Fetch a row of result into an enumerated array
  • ingres_commit() - Commit a transaction
  • ingres_rollback() - Roll back a transaction
  • ingres_autocommit() - Switch autocommit on or off
  • ingres_set_environment() - Set environment features controlling output options
  • ingres_errno() - Get the last Ingres error number generated
  • ingres_error() - Get a meaningful error message for the last error generated


MaxDB

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Basic usage
  • MaxDB Функции
    • maxdb_affected_rows — Gets the number of affected rows in a previous MaxDB operation
    • maxdb_autocommit — Turns on or off auto-commiting database modifications
    • maxdb_bind_param — Псевдоним maxdb_stmt_bind_param
    • maxdb_bind_result — Псевдоним maxdb_stmt_bind_result
    • maxdb_change_user — Changes the user of the specified database connection
    • maxdb_character_set_name — Returns the default character set for the database connection
    • maxdb_client_encoding — Псевдоним maxdb_character_set_name
    • maxdb_close_long_data — Псевдоним maxdb_stmt_close_long_data
    • maxdb_close — Closes a previously opened database connection
    • maxdb_commit — Commits the current transaction
    • maxdb_connect_errno — Returns the error code from last connect call
    • maxdb_connect_error — Returns a string description of the last connect error
    • maxdb_connect — Open a new connection to the MaxDB server
    • maxdb_data_seek — Adjusts the result pointer to an arbitary row in the result
    • maxdb_debug — Performs debugging operations
    • maxdb_disable_reads_from_master — Disable reads from master
    • maxdb_disable_rpl_parse — Disable RPL parse
    • maxdb_dump_debug_info — Dump debugging information into the log
    • maxdb_embedded_connect — Open a connection to an embedded MaxDB server
    • maxdb_enable_reads_from_master — Enable reads from master
    • maxdb_enable_rpl_parse — Enable RPL parse
    • maxdb_errno — Returns the error code for the most recent function call
    • maxdb_error — Returns a string description of the last error
    • maxdb_escape_string — Псевдоним maxdb_real_escape_string
    • maxdb_execute — Псевдоним maxdb_stmt_execute
    • maxdb_fetch_array — Fetch a result row as an associative, a numeric array, or both
    • maxdb_fetch_assoc — Fetch a result row as an associative array
    • maxdb_fetch_field_direct — Fetch meta-data for a single field
    • maxdb_fetch_field — Returns the next field in the result set
    • maxdb_fetch_fields — Returns an array of resources representing the fields in a result set
    • maxdb_fetch_lengths — Returns the lengths of the columns of the current row in the result set
    • maxdb_fetch_object — Returns the current row of a result set as an object
    • maxdb_fetch_row — Get a result row as an enumerated array
    • maxdb_fetch — Псевдоним maxdb_stmt_fetch
    • maxdb_field_count — Returns the number of columns for the most recent query
    • maxdb_field_seek — Set result pointer to a specified field offset
    • maxdb_field_tell — Get current field offset of a result pointer
    • maxdb_free_result — Frees the memory associated with a result
    • maxdb_get_client_info — Returns the MaxDB client version as a string
    • maxdb_get_client_version — Get MaxDB client info
    • maxdb_get_host_info — Returns a string representing the type of connection used
    • maxdb_get_metadata — Псевдоним maxdb_stmt_result_metadata
    • maxdb_get_proto_info — Returns the version of the MaxDB protocol used
    • maxdb_get_server_info — Returns the version of the MaxDB server
    • maxdb_get_server_version — Returns the version of the MaxDB server as an integer
    • maxdb_info — Retrieves information about the most recently executed query
    • maxdb_init — Initializes MaxDB and returns an resource for use with maxdb_real_connect
    • maxdb_insert_id — Returns the auto generated id used in the last query
    • maxdb_kill — Disconnects from a MaxDB server
    • maxdb_master_query — Enforce execution of a query on the master in a master/slave setup
    • maxdb_more_results — Check if there any more query results from a multi query
    • maxdb_multi_query — Performs a query on the database
    • maxdb_next_result — Prepare next result from multi_query
    • maxdb_num_fields — Get the number of fields in a result
    • maxdb_num_rows — Gets the number of rows in a result
    • maxdb_options — Set options
    • maxdb_param_count — Псевдоним maxdb_stmt_param_count
    • maxdb_ping — Pings a server connection, or tries to reconnect if the connection has gone down
    • maxdb_prepare — Prepare an SQL statement for execution
    • maxdb_query — Performs a query on the database
    • maxdb_real_connect — Opens a connection to a MaxDB server
    • maxdb_real_escape_string — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
    • maxdb_real_query — Execute an SQL query
    • maxdb_report — Enables or disables internal report functions
    • maxdb_rollback — Rolls back current transaction
    • maxdb_rpl_parse_enabled — Check if RPL parse is enabled
    • maxdb_rpl_probe — RPL probe
    • maxdb_rpl_query_type — Returns RPL query type
    • maxdb_select_db — Selects the default database for database queries
    • maxdb_send_long_data — Псевдоним maxdb_stmt_send_long_data
    • maxdb_send_query — Send the query and return
    • maxdb_server_end — Shut down the embedded server
    • maxdb_server_init — Initialize embedded server
    • maxdb_set_opt — Псевдоним maxdb_options
    • maxdb_sqlstate — Returns the SQLSTATE error from previous MaxDB operation
    • maxdb_ssl_set — Used for establishing secure connections using SSL
    • maxdb_stat — Gets the current system status
    • maxdb_stmt_affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement
    • maxdb_stmt_bind_param — Binds variables to a prepared statement as parameters
    • maxdb_stmt_bind_result — Binds variables to a prepared statement for result storage
    • maxdb_stmt_close_long_data — Ends a sequence of maxdb_stmt_send_long_data
    • maxdb_stmt_close — Closes a prepared statement
    • maxdb_stmt_data_seek — Seeks to an arbitray row in statement result set
    • maxdb_stmt_errno — Returns the error code for the most recent statement call
    • maxdb_stmt_error — Returns a string description for last statement error
    • maxdb_stmt_execute — Executes a prepared Query
    • maxdb_stmt_fetch — Fetch results from a prepared statement into the bound variables
    • maxdb_stmt_free_result — Frees stored result memory for the given statement handle
    • maxdb_stmt_init — Initializes a statement and returns an resource for use with maxdb_stmt_prepare
    • maxdb_stmt_num_rows — Return the number of rows in statements result set
    • maxdb_stmt_param_count — Returns the number of parameter for the given statement
    • maxdb_stmt_prepare — Prepare an SQL statement for execution
    • maxdb_stmt_reset — Resets a prepared statement
    • maxdb_stmt_result_metadata — Returns result set metadata from a prepared statement
    • maxdb_stmt_send_long_data — Send data in blocks
    • maxdb_stmt_sqlstate — Returns SQLSTATE error from previous statement operation
    • maxdb_stmt_store_result — Transfers a result set from a prepared statement
    • maxdb_store_result — Transfers a result set from the last query
    • maxdb_thread_id — Returns the thread ID for the current connection
    • maxdb_thread_safe — Returns whether thread safety is given or not
    • maxdb_use_result — Initiate a result set retrieval
    • maxdb_warning_count — Returns the number of warnings from the last query for the given link


Введение

The MaxDB PHP extension allows you to access the functionality provided by MaxDB 7.5.0 and above. More information about the MaxDB Database server can be found at » http://www.sdn.sap.com/irj/sdn/maxdb.

The MaxDB PHP extension is compatible to the MySQL mysqli extension. There are only minor differences in the behaviour of some functions due to the differences of the underlying database servers, MaxDB and MySQL.

The main differences to mysqli are in the following functions:

  • maxdb_character_set_name() - Returns only ascii or unicode.
  • maxdb_get_client_info() - Returns a different version string.
  • maxdb_get_client_version() - Returns a different version string.
  • maxdb_get_host_info() - Returns localhost or hostname.
  • maxdb_get_server_info() - Returns a different version string.
  • maxdb_get_server_version() - Returns a different version string.
  • maxdb_kill() - Only disconnects the session.
  • maxdb_multi_query() - Can not handle multiple SQL statements.
  • maxdb_next_result() - Function returns always false.
  • maxdb_options() - Supports a different set of options.
  • maxdb_report() - Supports a different report mode.
  • maxdb_stat() - Returns a different system status string.
  • maxdb_stmt_store_result() - Is not necessary for MaxDB.
  • maxdb_store_result() - Is not necessary for MaxDB.

Documentation for MaxDB can be found at » http://maxdb.sap.com/documentation/.


Требования

In order to have these functions available, you must compile PHP with MaxDB support. Additionally, you must have the MaxDB SQLDBC runtime library available to access the MaxDB server.

Documentation for MaxDB SQLDBC can be found at » http://maxdb.sap.com/documentation/.

Download the MaxDB SQLDBC package from » http://www.sdn.sap.com/irj/sdn/maxdb-downloads.


Установка

By using the --with-maxdb[=DIR] configuration option you enable PHP to access MaxDB databases. [DIR] points to the directory that contains the installed MaxDB SQLDBC package.

Windows users will need to enable php_maxdb.dll inside of php.ini.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

MaxDB Configuration Options
Имя | По умолчанию | Меняемо | Список изменений
maxdb.default_host | NULL | PHP_INI_ALL |
maxdb.default_db | NULL | PHP_INI_ALL |
maxdb.default_user | NULL | PHP_INI_ALL |
maxdb.default_pw | NULL | PHP_INI_ALL |
maxdb.long_readlen | "200" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

maxdb.default_host string

The default server host to use when connecting to the database server if no other host is specified.

maxdb.default_db string

The default server database to use when connecting if no other database is specified.

maxdb.default_user string

The default user name to use when connecting to the database server if no other name is specified.

maxdb.default_pw string

The default password to use when connecting to the database server if no other password is specified.

maxdb.long_readlen integer

The default maximum length of bytes that is transferred to the client if long data is retrieved from the MaxDB database server.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

This extension defines resources.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

The following constants to use with maxdb_options() are defined. For further description of these constants see » http://maxdb.sap.com/documentation/.

MaxDB PHP client constants
Constant | Description
MAXDB_COMPNAME | The component name used to initialise the SQLDBC runtime environment.
MAXDB_APPLICATION | The application to be connected to the database.
MAXDB_APPVERSION | The version of the application.
MAXDB_SQLMODE | The SQL mode.
MAXDB_UNICODE | TRUE, if the connection is an unicode (UCS2) client or FALSE, if not.
MAXDB_TIMEOUT | The maximum allowed time of inactivity after which the connection to the database is closed by the system.
MAXDB_ISOLATIONLEVEL | Specifies whether and how shared locks and exclusive locks are implicitly requested or released.
MAXDB_PACKETCOUNT | The number of different request packets used for the connection.
MAXDB_STATEMENTCACHESIZE | The number of prepared statements to be cached for the connection for re-use.
MAXDB_CURSORPREFIX | The prefix to use for result tables that are automatically named.

The function maxdb_fetch_array() uses a constant for the different types of result arrays. The following constants are defined:

MaxDB fetch constants
Constant | Description
MAXDB_ASSOC | Columns are returned into the array having the fieldname as the array index.
MAXDB_ASSOC_UPPER | Columns are returned into the array having the upper case fieldname as the array index.
MAXDB_ASSOC_LOWER | Columns are returned into the array having the lower case fieldname as the array index.
MAXDB_BOTH | Columns are returned into the array having both a numerical index and the fieldname as the array index.
MAXDB_NUM | Columns are returned into the array having a numerical index to the fields. This index starts with 0, the first field in the result.


  • « Предопределенные константы
  • Basic usage »
  • PHP Manual
  • MaxDB
  • Примеры

Примеры

Содержание

  • Basic usage


Basic usage

All examples in the MaxDB PHP documentation use the HOTELDB demo database from MaxDB. More about this database can be found at » http://maxdb.sap.com/doc/7_7/44/d8c25164bb38d0e10000000a1553f7/content.htm.

To use the examples in the MaxDB PHP documentation, you have to load the tutorial data into your database. Then you have to set maxdb.default_db in php.ini to the database that contains the tutorial data.

This simple example shows how to connect, execute a query, print resulting rows and disconnect from a MaxDB database.

Пример #1 MaxDB extension overview example

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Performing SQL query */
$query = "SELECT * FROM hotel.city";
$result = maxdb_query($link, $query) or die("Query failed : " . maxdb_error());

/* Printing results in HTML */
echo "<table>\n";
while ($line = maxdb_fetch_array($result, MAXDB_ASSOC)) {
    echo "  <tr>\n";
    foreach ($line as $col_value) {
        echo "    <td>$col_value</td>\n";
    }
    echo "  </tr>\n";
}
echo "</table>\n";

/* Free resultset */
maxdb_free_result($result);

/* Closing connection */
maxdb_close($link);
?>

The following example shows how to bind variables to a SELECT INTO statement.

Пример #2 Example for use of SELECT INTO statements

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "SELECT percentage INTO ? FROM hotel.countrylanguage where language = ?");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

$name = "Mbundu";

maxdb_stmt_bind_param($stmt, 'ds', $percentage, $name);
maxdb_stmt_execute($stmt);

printf ("%f\n", $percentage);

maxdb_stmt_close ($stmt);
?>

The following example shows how to use MaxDB database procedures.

Пример #3 Example fore using database procedures

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link, $query);

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "CALL test_proc (?)");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

maxdb_stmt_bind_param($stmt, 's', $result);
maxdb_stmt_execute($stmt);

printf ("%s\n", $result);

maxdb_stmt_close ($stmt);
?>


MaxDB Функции

Предопределенные классы

maxdb

Represents a connection between PHP and a MaxDB database.

Конструктор

  • maxdb - construct a new maxdb object

Методы

  • autocommit - turns on or off auto-commiting database modifications

  • change_user - changes the user of the specified database connection

  • character_set_name - returns the default character set for the database connection

  • close - closes a previously opened connection

  • commit - commits the current transaction

  • connect - opens a new connection to MaxDB database server

  • debug - performs debugging operations

  • dump_debug_info - dumps debug information

  • get_client_info - returns client version

  • get_host_info - returns type of connection used

  • get_server_info - returns version of the MaxDB server

  • get_server_version - returns version of the MaxDB server

  • init - initializes maxdb object

  • info - retrieves information about the most recently executed query

  • kill - asks the server to kill a MaxDB thread

  • multi_query - performs multiple queries

  • more_results - check if more results exist from currently executed multi-query

  • next_result - reads next result from currently executed multi-query

  • options - set options

  • ping - pings a server connection or reconnects if there is no connection

  • prepare - prepares an SQL query

  • query - performs a query

  • real_connect - attempts to open a connection to MaxDB database server

  • escape_string - escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

  • rollback - rolls back the current transaction

  • select_db - selects the default database

  • ssl_set - sets ssl parameters

  • stat - gets the current system status

  • stmt_init- initializes a statement for use with maxdb_stmt_prepare

  • store_result - transfers a resultset from last query

  • use_result - transfers an unbuffered resultset from last query

  • thread-safe - returns whether thread safety is given or not

Свойства

  • affected_rows - gets the number of affected rows in a previous MaxDB operation

  • client_info - returns the MaxDB client version as a string

  • client_version - returns the MaxDB client version as an integer

  • errno - returns the error code for the most recent function call

  • error - returns the error string for the most recent function call

  • field_count - returns the number of columns for the most recent query

  • host_info - returns a string representing the type of connection used

  • info - retrieves information about the most recently executed query

  • insert_id - returns the auto generated id used in the last query

  • protocol_version - returns the version of the MaxDB protocol used

  • sqlstate - returns a string containing the SQLSTATE error code for the last error

  • thread_id - returns the thread ID for the current connection

  • warning_count - returns the number of warnings generated during execution of the previous SQL statement

maxdb_stmt

Represents a prepared statement.

Методы

  • bind_param - binds variables to a prepared statement

  • bind_result - binds variables to a prepared statement for result storage

  • close - closes a prepared statement

  • data-seek - seeks to an arbitrary row in a statement result set

  • execute - executes a prepared statement

  • fetch - fetches result from a prepared statement into bound variables

  • free_result - frees stored result memory for the given statement handle

  • result_metadata - retrieves a resultset from a prepared statement for metadata information

  • prepare - prepares an SQL query

  • send_long_data - sends data in chunks

  • close_long_data - end sending long data

  • reset - resets a prepared statement

  • store_result - buffers complete resultset from a prepared statement

Свойства

  • affected_rows - returns affected rows from last statement execution

  • errno - returns errorcode for last statement function

  • errno - returns errormessage for last statement function

  • param_count - returns number of parameter for a given prepare statement

  • sqlstate - returns a string containing the SQLSTATE error code for the last statement function

maxdb_result

Represents the result set obtained from a query against the database.

Методы

  • close - closes resultset

  • data_seek - moves internal result pointer

  • fetch_field - gets column information from a resultset

  • fetch_fields - gets information for all columns from a resulset

  • fetch_field_direct - gets column information for specified column

  • fetch_array - fetches a result row as an associative array, a numeric array, or both.

  • fetch_assoc - fetches a result row as an associative array

  • fetch_object - fetches a result row as an object

  • fetch_row - gets a result row as an enumerated array

  • close - frees result memory

  • field_seek - set result pointer to a specified field offset

Свойства

  • current_field - returns offset of current fieldpointer

  • field_count - returns number of fields in resultset

  • lengths - returns an array of columnlengths

  • num_rows - returns number of rows in resultset

Содержание

  • maxdb_affected_rows — Gets the number of affected rows in a previous MaxDB operation
  • maxdb_autocommit — Turns on or off auto-commiting database modifications
  • maxdb_bind_param — Псевдоним maxdb_stmt_bind_param
  • maxdb_bind_result — Псевдоним maxdb_stmt_bind_result
  • maxdb_change_user — Changes the user of the specified database connection
  • maxdb_character_set_name — Returns the default character set for the database connection
  • maxdb_client_encoding — Псевдоним maxdb_character_set_name
  • maxdb_close_long_data — Псевдоним maxdb_stmt_close_long_data
  • maxdb_close — Closes a previously opened database connection
  • maxdb_commit — Commits the current transaction
  • maxdb_connect_errno — Returns the error code from last connect call
  • maxdb_connect_error — Returns a string description of the last connect error
  • maxdb_connect — Open a new connection to the MaxDB server
  • maxdb_data_seek — Adjusts the result pointer to an arbitary row in the result
  • maxdb_debug — Performs debugging operations
  • maxdb_disable_reads_from_master — Disable reads from master
  • maxdb_disable_rpl_parse — Disable RPL parse
  • maxdb_dump_debug_info — Dump debugging information into the log
  • maxdb_embedded_connect — Open a connection to an embedded MaxDB server
  • maxdb_enable_reads_from_master — Enable reads from master
  • maxdb_enable_rpl_parse — Enable RPL parse
  • maxdb_errno — Returns the error code for the most recent function call
  • maxdb_error — Returns a string description of the last error
  • maxdb_escape_string — Псевдоним maxdb_real_escape_string
  • maxdb_execute — Псевдоним maxdb_stmt_execute
  • maxdb_fetch_array — Fetch a result row as an associative, a numeric array, or both
  • maxdb_fetch_assoc — Fetch a result row as an associative array
  • maxdb_fetch_field_direct — Fetch meta-data for a single field
  • maxdb_fetch_field — Returns the next field in the result set
  • maxdb_fetch_fields — Returns an array of resources representing the fields in a result set
  • maxdb_fetch_lengths — Returns the lengths of the columns of the current row in the result set
  • maxdb_fetch_object — Returns the current row of a result set as an object
  • maxdb_fetch_row — Get a result row as an enumerated array
  • maxdb_fetch — Псевдоним maxdb_stmt_fetch
  • maxdb_field_count — Returns the number of columns for the most recent query
  • maxdb_field_seek — Set result pointer to a specified field offset
  • maxdb_field_tell — Get current field offset of a result pointer
  • maxdb_free_result — Frees the memory associated with a result
  • maxdb_get_client_info — Returns the MaxDB client version as a string
  • maxdb_get_client_version — Get MaxDB client info
  • maxdb_get_host_info — Returns a string representing the type of connection used
  • maxdb_get_metadata — Псевдоним maxdb_stmt_result_metadata
  • maxdb_get_proto_info — Returns the version of the MaxDB protocol used
  • maxdb_get_server_info — Returns the version of the MaxDB server
  • maxdb_get_server_version — Returns the version of the MaxDB server as an integer
  • maxdb_info — Retrieves information about the most recently executed query
  • maxdb_init — Initializes MaxDB and returns an resource for use with maxdb_real_connect
  • maxdb_insert_id — Returns the auto generated id used in the last query
  • maxdb_kill — Disconnects from a MaxDB server
  • maxdb_master_query — Enforce execution of a query on the master in a master/slave setup
  • maxdb_more_results — Check if there any more query results from a multi query
  • maxdb_multi_query — Performs a query on the database
  • maxdb_next_result — Prepare next result from multi_query
  • maxdb_num_fields — Get the number of fields in a result
  • maxdb_num_rows — Gets the number of rows in a result
  • maxdb_options — Set options
  • maxdb_param_count — Псевдоним maxdb_stmt_param_count
  • maxdb_ping — Pings a server connection, or tries to reconnect if the connection has gone down
  • maxdb_prepare — Prepare an SQL statement for execution
  • maxdb_query — Performs a query on the database
  • maxdb_real_connect — Opens a connection to a MaxDB server
  • maxdb_real_escape_string — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
  • maxdb_real_query — Execute an SQL query
  • maxdb_report — Enables or disables internal report functions
  • maxdb_rollback — Rolls back current transaction
  • maxdb_rpl_parse_enabled — Check if RPL parse is enabled
  • maxdb_rpl_probe — RPL probe
  • maxdb_rpl_query_type — Returns RPL query type
  • maxdb_select_db — Selects the default database for database queries
  • maxdb_send_long_data — Псевдоним maxdb_stmt_send_long_data
  • maxdb_send_query — Send the query and return
  • maxdb_server_end — Shut down the embedded server
  • maxdb_server_init — Initialize embedded server
  • maxdb_set_opt — Псевдоним maxdb_options
  • maxdb_sqlstate — Returns the SQLSTATE error from previous MaxDB operation
  • maxdb_ssl_set — Used for establishing secure connections using SSL
  • maxdb_stat — Gets the current system status
  • maxdb_stmt_affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement
  • maxdb_stmt_bind_param — Binds variables to a prepared statement as parameters
  • maxdb_stmt_bind_result — Binds variables to a prepared statement for result storage
  • maxdb_stmt_close_long_data — Ends a sequence of maxdb_stmt_send_long_data
  • maxdb_stmt_close — Closes a prepared statement
  • maxdb_stmt_data_seek — Seeks to an arbitray row in statement result set
  • maxdb_stmt_errno — Returns the error code for the most recent statement call
  • maxdb_stmt_error — Returns a string description for last statement error
  • maxdb_stmt_execute — Executes a prepared Query
  • maxdb_stmt_fetch — Fetch results from a prepared statement into the bound variables
  • maxdb_stmt_free_result — Frees stored result memory for the given statement handle
  • maxdb_stmt_init — Initializes a statement and returns an resource for use with maxdb_stmt_prepare
  • maxdb_stmt_num_rows — Return the number of rows in statements result set
  • maxdb_stmt_param_count — Returns the number of parameter for the given statement
  • maxdb_stmt_prepare — Prepare an SQL statement for execution
  • maxdb_stmt_reset — Resets a prepared statement
  • maxdb_stmt_result_metadata — Returns result set metadata from a prepared statement
  • maxdb_stmt_send_long_data — Send data in blocks
  • maxdb_stmt_sqlstate — Returns SQLSTATE error from previous statement operation
  • maxdb_stmt_store_result — Transfers a result set from a prepared statement
  • maxdb_store_result — Transfers a result set from the last query
  • maxdb_thread_id — Returns the thread ID for the current connection
  • maxdb_thread_safe — Returns whether thread safety is given or not
  • maxdb_use_result — Initiate a result set retrieval
  • maxdb_warning_count — Returns the number of warnings from the last query for the given link


Gets the number of affected rows in a previous MaxDB operation

  • « MaxDB Функции
  • maxdb_autocommit »
  • PHP Manual
  • MaxDB Функции
  • Gets the number of affected rows in a previous MaxDB operation

maxdb_affected_rows

maxdb::affected_rows

(PECL maxdb >= 1.0)

maxdb_affected_rows -- maxdb::affected_rows — Gets the number of affected rows in a previous MaxDB operation

Описание

Процедурный стиль

int maxdb_affected_rows ( resource $link )

Объектно-ориентированный стиль

int $maxdb->affected_rows;

maxdb_affected_rows() returns the number of rows affected by the last INSERT, UPDATE, or DELETE query associated with the provided link parameter. If this number cannot be determined, this function will return -1.

Замечание:

For SELECT statements maxdb_affected_rows() works like maxdb_num_rows().

The maxdb_affected_rows() function only works with queries which modify a table. In order to return the number of rows from a SELECT query, use the maxdb_num_rows() function instead.

Возвращаемые значения

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the number of rows affected can not be determined.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insert rows */
$maxdb->query("CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Affected rows (INSERT): %d\n", $maxdb->affected_rows);

$maxdb->query("ALTER TABLE mycustomer ADD Status int default 0");

/* update rows */
$maxdb->query("UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Affected rows (UPDATE): %d\n", $maxdb->affected_rows);

/* delete rows */
$maxdb->query("DELETE FROM mycustomer WHERE cno < 50");
printf("Affected rows (DELETE): %d\n", $maxdb->affected_rows);

/* select all rows */
$result = $maxdb->query("SELECT title FROM mycustomer");
printf("Affected rows (SELECT): %d\n", $maxdb->affected_rows);

$result->close();

/* Delete table Language */
$maxdb->query("DROP TABLE mycustomer");

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

if (!$link) {
   printf("Can't connect to localhost. Error: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

/* Insert rows */
maxdb_query($link, "CREATE TABLE mycustomer AS SELECT * from hotel.customer");
printf("Affected rows (INSERT): %d\n", maxdb_affected_rows($link));

maxdb_query($link, "ALTER TABLE mycustomer ADD Status int default 0");

/* update rows */
maxdb_query($link, "UPDATE mycustomer SET Status=1 WHERE cno > 50");
printf("Affected rows (UPDATE): %d\n", maxdb_affected_rows($link));

/* delete rows */
maxdb_query($link, "DELETE FROM mycustomer WHERE cno < 50");
printf("Affected rows (DELETE): %d\n", maxdb_affected_rows($link));

/* select all rows */
$result = maxdb_query($link, "SELECT title FROM mycustomer");
printf("Affected rows (SELECT): %d\n", maxdb_affected_rows($link));

maxdb_free_result($result);

/* Delete table Language */
maxdb_query($link, "DROP TABLE mycustomer");

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Affected rows (INSERT): 15
Affected rows (UPDATE): 15
Affected rows (DELETE): 0
Affected rows (SELECT): 15

Смотрите также

  • maxdb_num_rows() - Gets the number of rows in a result
  • maxdb_info() - Retrieves information about the most recently executed query


Turns on or off auto-commiting database modifications

  • « maxdb_affected_rows
  • maxdb_bind_param »
  • PHP Manual
  • MaxDB Функции
  • Turns on or off auto-commiting database modifications

maxdb_autocommit

maxdb::auto_commit

(PECL maxdb >= 1.0)

maxdb_autocommit -- maxdb::auto_commit — Turns on or off auto-commiting database modifications

Описание

Процедурный стиль

bool maxdb_autocommit ( resource $link , bool $mode )

Объектно-ориентированный стиль

bool maxdb::auto_commit ( bool $mode )

maxdb_autocommit() is used to turn on or off auto-commit mode on queries for the database connection represented by the link resource.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* turn autocommit on */
$maxdb->autocommit(TRUE);

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

if (!$link) {
   printf("Can't connect to localhost. Error: %s\n", maxdb_connect_error());
   exit();
}

/* turn autocommit on */
maxdb_autocommit($link, TRUE);

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • maxdb_commit() - Commits the current transaction
  • maxdb_rollback() - Rolls back current transaction


Псевдоним maxdb_stmt_bind_param

  • « maxdb_autocommit
  • maxdb_bind_result »
  • PHP Manual
  • MaxDB Функции
  • Псевдоним maxdb_stmt_bind_param

maxdb_bind_param

(PECL maxdb 1.0)

maxdb_bind_param — Псевдоним maxdb_stmt_bind_param()

Описание

Эта функция является псевдонимом: maxdb_stmt_bind_param()

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Псевдоним maxdb_stmt_bind_result

  • « maxdb_bind_param
  • maxdb_change_user »
  • PHP Manual
  • MaxDB Функции
  • Псевдоним maxdb_stmt_bind_result

maxdb_bind_result

(PECL maxdb 1.0)

maxdb_bind_result — Псевдоним maxdb_stmt_bind_result()

Описание

Эта функция является псевдонимом: maxdb_stmt_bind_result().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Changes the user of the specified database connection

  • « maxdb_bind_result
  • maxdb_character_set_name »
  • PHP Manual
  • MaxDB Функции
  • Changes the user of the specified database connection

maxdb_change_user

maxdb::change_user

(PECL maxdb >= 1.0)

maxdb_change_user -- maxdb::change_user — Changes the user of the specified database connection

Описание

Процедурный стиль

bool maxdb_change_user ( resource $link , string $user , string $password , string $database )

Объектно-ориентированный стиль

bool maxdb::change_user ( string $user , string $password , string $database )

maxdb_change_user() is used to change the user of the specified database connection as given by the link parameter and to set the current database to that specified by the database parameter.

In order to successfully change users a valid username and password parameters must be provided and that user must have sufficient permissions to access the desired database. If for any reason authorization fails, the current user authentication will remain.

Замечание:

Using this command will always cause the current database connection to behave as if was a completely new database connection, regardless of if the operation was completed successfully. This reset includes performing a rollback on any active transactions, closing all temporary tables, and unlocking all locked tables.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* connect database test */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = $maxdb->query("SELECT * FROM dual")) {
   $row = $result->fetch_row();
   printf("Result: %s\n", $row[0]);
   $result->free();
}

/* reset all and select a new database */
if (!$maxdb->change_user("DBADMIN", "SECRET", "DEMODB")) {
  printf("Database not running\n");
} else {
  printf("Database running\n");
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = maxdb_query($link, "SELECT * FROM dual")) {
   $row = maxdb_fetch_row($result);
   printf("Result: %s\n", $row[0]);
   maxdb_free_result($result);
}

/* reset all and select a new database */
if (!maxdb_change_user($link, "DBADMIN", "SECRET", "DEMODB")) {
  printf("Database not running\n");
} else {
  printf("Database running\n");
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Result: a
Database running

Смотрите также

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_select_db() - Selects the default database for database queries


Returns the default character set for the database connection

  • « maxdb_change_user
  • maxdb_client_encoding »
  • PHP Manual
  • MaxDB Функции
  • Returns the default character set for the database connection

maxdb_character_set_name

maxdb::character_set_name

(PECL maxdb >= 1.0)

maxdb_character_set_name -- maxdb::character_set_name — Returns the default character set for the database connection

Описание

Процедурный стиль

string maxdb_character_set_name ( resource $link )

Объектно-ориентированный стиль

string maxdb::character_set_name ( void )

Returns the current character set for the database connection specified by the link parameter.

Возвращаемые значения

The default character set for the current connection, either ascii or unicode.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Print current character set */
$charset = $maxdb->character_set_name();
printf ("Current character set is %s\n", $charset);

$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Print current character set */
$charset = maxdb_character_set_name($link);
printf ("Current character set is %s\n",$charset);

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Current character set is ascii

Смотрите также

  • maxdb_client_encoding() - Псевдоним maxdb_character_set_name
  • maxdb_real_escape_string() - Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection


Псевдоним maxdb_character_set_name

  • « maxdb_character_set_name
  • maxdb_close_long_data »
  • PHP Manual
  • MaxDB Функции
  • Псевдоним maxdb_character_set_name

maxdb_client_encoding

(PECL maxdb 1.0)

maxdb_client_encoding — Псевдоним maxdb_character_set_name()

Описание

Эта функция является псевдонимом: maxdb_character_set_name().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Псевдоним maxdb_stmt_close_long_data

  • « maxdb_client_encoding
  • maxdb_close »
  • PHP Manual
  • MaxDB Функции
  • Псевдоним maxdb_stmt_close_long_data

maxdb_close_long_data

maxdb::close_long_data

(PECL maxdb >= 1.0)

maxdb_close_long_data -- maxdb::close_long_data — Псевдоним maxdb_stmt_close_long_data()

Описание

Эта функция является псевдонимом: maxdb_stmt_close_long_data().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Closes a previously opened database connection

  • « maxdb_close_long_data
  • maxdb_commit »
  • PHP Manual
  • MaxDB Функции
  • Closes a previously opened database connection

maxdb_close

maxdb::close

(PECL maxdb >= 1.0)

maxdb_close -- maxdb::close — Closes a previously opened database connection

Описание

Процедурный стиль

bool maxdb_close ( resource $link )

Объектно-ориентированный стиль

bool maxdb::close ( void )

The maxdb_close() function closes a previously opened database connection specified by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_init() - Initializes MaxDB and returns an resource for use with maxdb_real_connect
  • maxdb_real_connect() - Opens a connection to a MaxDB server


Commits the current transaction

  • « maxdb_close
  • maxdb_connect_errno »
  • PHP Manual
  • MaxDB Функции
  • Commits the current transaction

maxdb_commit

maxdb::commit

(PECL maxdb >= 1.0)

maxdb_commit -- maxdb::commit — Commits the current transaction

Описание

Процедурный стиль

bool maxdb_commit ( resource $link )

Объектно-ориентированный стиль

bool maxdb::commit ( void )

Commits the current transaction for the database connection specified by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* set autocommit to off */
$maxdb->autocommit(FALSE);

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycustomer LIKE hotel.customer");

/* Insert some values */
$maxdb->query("INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
$maxdb->query("INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* commit transaction */
$maxdb->commit();

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* set autocommit to off */
maxdb_autocommit($link, FALSE);

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycustomer");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE mycustomer LIKE hotel.customer");

/* Insert some values */
maxdb_query($link, "INSERT INTO mycustomer VALUES (3000,'Mrs','Jenny','Porter','10580','1340 N.Ash Street, #3')");
maxdb_query($link, "INSERT INTO mycustomer VALUES (3100,'Mr','Peter','Brown','48226','1001 34th Str., APT.3')");

/* commit transaction */
maxdb_commit($link);

/* close connection */
maxdb_close($link);
?>

The above examples produces no output.

Смотрите также

  • maxdb_autocommit() - Turns on or off auto-commiting database modifications
  • maxdb_rollback() - Rolls back current transaction


Returns the error code from last connect call

  • « maxdb_commit
  • maxdb_connect_error »
  • PHP Manual
  • MaxDB Функции
  • Returns the error code from last connect call

maxdb_connect_errno

(PECL maxdb >= 1.0)

maxdb_connect_errno — Returns the error code from last connect call

Описание

int maxdb_connect_errno ( void )

The maxdb_connect_errno() function will return the last error code number for last call to maxdb_connect(). If no errors have occurred, this function will return zero.

Возвращаемые значения

An error code value for the last call to maxdb_connect(), if it failed. zero means no error occurred.

Примеры

Пример #1 maxdb_connect_errno sample

<?php
$link = maxdb_connect("localhost", "XXXXXXXX", "YYYYYYYYY");

if (!$link) {
   printf("Can't connect to localhost. Errorcode: %d\n", maxdb_connect_errno());
}
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination [08004] <...>
Can't connect to localhost. Errorcode: -4008

Смотрите также

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_connect_error() - Returns a string description of the last connect error
  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation


Returns a string description of the last connect error

  • « maxdb_connect_errno
  • maxdb_connect »
  • PHP Manual
  • MaxDB Функции
  • Returns a string description of the last connect error

maxdb_connect_error

(PECL maxdb >= 1.0)

maxdb_connect_error — Returns a string description of the last connect error

Описание

string maxdb_connect_error ( void )

The maxdb_connect_error() function is identical to the corresponding maxdb_connect_errno() function in every way, except instead of returning an integer error code the maxdb_connect_error() function will return a string representation of the last error to occur for the last maxdb_connect() call. If no error has occurred, this function will return an empty string.

Возвращаемые значения

A string that describes the error. An empty string if no error occurred.

Примеры

Пример #1 maxdb_connect_error sample

<?php

$link = maxdb_connect("localhost", "nonexisting_user", "");

if (!$link) {
   printf("Can't connect to localhost. Error: %s\n", maxdb_connect_error());
}
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Warning:  maxdb_connect(): -4008 POS(1) Unknown user name/password combination <...>
Can't connect to localhost. Error: POS(1) Unknown user name/password combination

Смотрите также

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_connect_errno() - Returns the error code from last connect call
  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation


Open a new connection to the MaxDB server

  • « maxdb_connect_error
  • maxdb_data_seek »
  • PHP Manual
  • MaxDB Функции
  • Open a new connection to the MaxDB server

maxdb_connect

maxdb::__construct

(PECL maxdb >= 1.0)

maxdb_connect -- maxdb::__construct — Open a new connection to the MaxDB server

Описание

Процедурный стиль

resource maxdb_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

Объектно-ориентированный стиль

maxdb::__construct ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

The maxdb_connect() function attempts to open a connection to the MaxDB Server running on host which can be either a host name or an IP address. Passing the string "localhost" to this parameter, the local host is assumed. If successful, the maxdb_connect() will return an resource representing the connection to the database или FALSE в случае возникновения ошибки.

The username and password parameters specify the username and password under which to connect to the MaxDB server. If the password is not provided (the NULL value is passed), the MaxDB server will attempt to authenticate the user against the maxdb.default_pw in php.ini.

The dbname parameter if provided will specify the default database to be used when performing queries. If not provied, the entry maxdb.default_db in php.ini is used.

The port and socket parameters are ignored for the MaxDB server.

Возвращаемые значения

Returns a resource which represents the connection to a MaxDB Server or FALSE if the connection failed.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf("Host information: %s\n", $maxdb->host_info);

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf("Host information: %s\n", maxdb_get_host_info($link));

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Host information: localhost


Adjusts the result pointer to an arbitary row in the result

  • « maxdb_connect
  • maxdb_debug »
  • PHP Manual
  • MaxDB Функции
  • Adjusts the result pointer to an arbitary row in the result

maxdb_data_seek

maxdb_result::data_seek

(PECL maxdb >= 1.0)

maxdb_data_seek -- maxdb_result::data_seek — Adjusts the result pointer to an arbitary row in the result

Описание

Процедурный стиль

bool maxdb_data_seek ( resource $result , int $offset )

Объектно-ориентированный стиль

bool maxdb_result::data_seek ( int $offset )

The maxdb_data_seek() function seeks to an arbitrary result pointer specified by the offset in the result set represented by result. The offset parameter must be between zero and the total number of rows minus one (0..maxdb_num_rows() - 1).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER BY name";
if ($result = $maxdb->query( $query)) {

   /* seek to row no. 10 */
   $result->data_seek(10);

   /* fetch row */
   $row = $result->fetch_row();

   printf ("City: %s  State: %s\n", $row[0], $row[1]);

   /* free result set*/
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER BY name";

if ($result = maxdb_query($link, $query)) {

   /* seek to row no. 400 */
   maxdb_data_seek($result, 10);

   /* fetch row */
   $row = maxdb_fetch_row($result);

   printf ("City: %s  State: %s\n", $row[0], $row[1]);

   /* free result set*/
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

City: Irvine  State: CA

Смотрите также

  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_fetch_row() - Get a result row as an enumerated array
  • maxdb_num_rows() - Gets the number of rows in a result


Performs debugging operations

  • « maxdb_data_seek
  • maxdb_disable_reads_from_master »
  • PHP Manual
  • MaxDB Функции
  • Performs debugging operations

maxdb_debug

(PECL maxdb >= 1.0)

maxdb_debug — Performs debugging operations

Описание

void maxdb_debug ( string $debug )

The maxdb_debug() can be used to trace the SQLDBC communication. The following strings can be used as a parameter to maxdb_debug():

  • TRACE SHORT ON|OFF - Enables/disables method call trace.
  • TRACE LONG ON|OFF - Enables/disables method argument and detail debug trace.
  • TRACE PACKET ON|OFF|<size> - Enables/disables packet trace, limiting the size of the traced object to the specified number of bytes, or 1000 if no size is specified.
  • TRACE SQL ON|OFF - Enables/disables high level api trace.
  • TRACE TIMESTAMP ON|OFF - Enables/disables a timestamp prefix on each line that is traced.
  • TRACE SIZE <size> - Limits the size of the trace file to <size> bytes, at least 8192 bytes are required.

Возвращаемые значения

maxdb_debug() doesn't return any value.

Примеры

Пример #1 Процедурный стиль

<?php

maxdb_debug("trace packet 200");

$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* close connection */
maxdb_close($link);
?>

The above example produces no output.


Disable reads from master

  • « maxdb_debug
  • maxdb_disable_rpl_parse »
  • PHP Manual
  • MaxDB Функции
  • Disable reads from master

maxdb_disable_reads_from_master

maxdb::disable_reads_from_master

(PECL maxdb >= 1.0)

maxdb_disable_reads_from_master -- maxdb::disable_reads_from_master — Disable reads from master

Описание

Процедурный стиль

bool maxdb_disable_reads_from_master ( resource $link )

Объектно-ориентированный стиль

void maxdb::disable_reads_from_master ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Disable RPL parse

  • « maxdb_disable_reads_from_master
  • maxdb_dump_debug_info »
  • PHP Manual
  • MaxDB Функции
  • Disable RPL parse

maxdb_disable_rpl_parse

(PECL maxdb >= 1.0)

maxdb_disable_rpl_parse — Disable RPL parse

Описание

bool maxdb_disable_rpl_parse ( resource $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Dump debugging information into the log

  • « maxdb_disable_rpl_parse
  • maxdb_embedded_connect »
  • PHP Manual
  • MaxDB Функции
  • Dump debugging information into the log

maxdb_dump_debug_info

(PECL maxdb >= 1.0)

maxdb_dump_debug_info — Dump debugging information into the log

Описание

bool maxdb_dump_debug_info ( resource $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Open a connection to an embedded MaxDB server

  • « maxdb_dump_debug_info
  • maxdb_enable_reads_from_master »
  • PHP Manual
  • MaxDB Функции
  • Open a connection to an embedded MaxDB server

maxdb_embedded_connect

(PECL maxdb >= 1.0)

maxdb_embedded_connect — Open a connection to an embedded MaxDB server

Описание

resource maxdb_embedded_connect ([ string $dbname ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Enable reads from master

  • « maxdb_embedded_connect
  • maxdb_enable_rpl_parse »
  • PHP Manual
  • MaxDB Функции
  • Enable reads from master

maxdb_enable_reads_from_master

(PECL maxdb >= 1.0)

maxdb_enable_reads_from_master — Enable reads from master

Описание

bool maxdb_enable_reads_from_master ( resource $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Enable RPL parse

  • « maxdb_enable_reads_from_master
  • maxdb_errno »
  • PHP Manual
  • MaxDB Функции
  • Enable RPL parse

maxdb_enable_rpl_parse

(PECL maxdb >= 1.0)

maxdb_enable_rpl_parse — Enable RPL parse

Описание

bool maxdb_enable_rpl_parse ( resource $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns the error code for the most recent function call

  • « maxdb_enable_rpl_parse
  • maxdb_error »
  • PHP Manual
  • MaxDB Функции
  • Returns the error code for the most recent function call

maxdb_errno

maxdb::errno

(PECL maxdb >= 1.0)

maxdb_errno -- maxdb::errno — Returns the error code for the most recent function call

Описание

Процедурный стиль

int maxdb_errno ( resource $link )

Объектно-ориентированный стиль

int $maxdb->errno;

The maxdb_errno() function will return the last error code for the most recent MaxDB function call that can succeed or fail with respect to the database link defined by the link parameter. If no errors have occurred, this function will return zero.

Возвращаемые значения

An error code value for the last call, if it failed. zero means no error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!$maxdb->query("SELECT xxx FROM hotel.city")) {
   printf("Errorcode: %d\n", $maxdb->errno);
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!maxdb_query($link, "SELECT xxx FROM hotel.city")) {
   printf("Errorcode: %d\n", maxdb_errno($link));
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000] <...>
Errorcode: -4005

Смотрите также

  • maxdb_connect_errno() - Returns the error code from last connect call
  • maxdb_connect_error() - Returns a string description of the last connect error
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation


Returns a string description of the last error

  • « maxdb_errno
  • maxdb_escape_string »
  • PHP Manual
  • MaxDB Функции
  • Returns a string description of the last error

maxdb_error

maxdb::error

(PECL maxdb >= 1.0)

maxdb_error -- maxdb::error — Returns a string description of the last error

Описание

Процедурный стиль

string maxdb_error ( resource $link )

Объектно-ориентированный стиль

string $maxdb->error;

The maxdb_error() function is identical to the corresponding maxdb_errno() function in every way, except instead of returning an integer error code the maxdb_error() function will return a string representation of the last error to occur for the database connection represented by the link parameter. If no error has occurred, this function will return an empty string.

Возвращаемые значения

A string that describes the error. An empty string if no error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!$maxdb->query("SELECT xxx FROM hotel.city")) {
   printf("Errormessage: %s\n", $maxdb->error);
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if (!maxdb_query($link, "SELECT xxx FROM hotel.city")) {
   printf("Errormessgae: %s\n", maxdb_error($link));
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Warning:  maxdb_query(): -4005 POS(8) Unknown column name:XXX [42000]
Errormessgae: POS(8) Unknown column name:XXX

Смотрите также

  • maxdb_connect_errno() - Returns the error code from last connect call
  • maxdb_connect_error() - Returns a string description of the last connect error
  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation


Псевдоним maxdb_real_escape_string

  • « maxdb_error
  • maxdb_execute »
  • PHP Manual
  • MaxDB Функции
  • Псевдоним maxdb_real_escape_string

maxdb_escape_string

(PECL maxdb 1.0)

maxdb_escape_string — Псевдоним maxdb_real_escape_string()

Описание

Эта функция является псевдонимом: maxdb_real_escape_string().


Псевдоним maxdb_stmt_execute

  • « maxdb_escape_string
  • maxdb_fetch_array »
  • PHP Manual
  • MaxDB Функции
  • Псевдоним maxdb_stmt_execute

maxdb_execute

(PECL maxdb 1.0)

maxdb_execute — Псевдоним maxdb_stmt_execute()

Описание

Эта функция является псевдонимом: maxdb_stmt_execute().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Fetch a result row as an associative, a numeric array, or both

  • « maxdb_execute
  • maxdb_fetch_assoc »
  • PHP Manual
  • MaxDB Функции
  • Fetch a result row as an associative, a numeric array, or both

maxdb_fetch_array

maxdb_result::fetch_array

(PECL maxdb >= 1.0)

maxdb_fetch_array -- maxdb_result::fetch_array — Fetch a result row as an associative, a numeric array, or both

Описание

Процедурный стиль

mixed maxdb_fetch_array ( resource $result [, int $resulttype ] )

Объектно-ориентированный стиль

mixed maxdb_result::fetch_array ([ int $resulttype ] )

Returns an array that corresponds to the fetched row or NULL if there are no more rows for the resultset represented by the result parameter.

maxdb_fetch_array() is an extended version of the maxdb_fetch_row() function. In addition to storing the data in the numeric indices of the result array, the maxdb_fetch_array() function can also store the data in associative indices, using the field names of the result set as keys.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

If two or more columns of the result have the same field names, the last column will take precedence and overwrite the earlier data. In order to access multiple columns with the same name, the numerically indexed version of the row must be used.

The optional second argument resulttype is a constant indicating what type of array should be produced from the current row data. The possible values for this parameter are the constants MAXDB_ASSOC, MAXDB_ASSOC_UPPER, MAXDB_ASSOC_LOWER, MAXDB_NUM, or MAXDB_BOTH. By default the maxdb_fetch_array() function will assume MAXDB_BOTH, which is a combination of MAXDB_NUM and MAXDB_ASSOC for this parameter.

By using the MAXDB_ASSOC constant this function will behave identically to the maxdb_fetch_assoc(), while MAXDB_NUM will behave identically to the maxdb_fetch_row() function. The final option MAXDB_BOTH will create a single array with the attributes of both.

By using the MAXDB_ASSOC_UPPER constant, the behaviour of this function is identical to the use of MAXDB_ASSOC except the array index of a column is the fieldname in upper case.

By using the MAXDB_ASSOC_LOWER constant, the behaviour of this function is identical to the use of MAXDB_ASSOC except the array index of a column is the fieldname in lower case.

Возвращаемые значения

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";
$result = $maxdb->query($query);

/* numeric array */
$row = $result->fetch_array(MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = $result->fetch_array(MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);

/* associative and numeric array */
$row = $result->fetch_array(MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);

/* free result set */
$result->close();

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";
$result = maxdb_query($link, $query);

/* numeric array */
$row = maxdb_fetch_array($result, MAXDB_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* associative array */
$row = maxdb_fetch_array($result, MAXDB_ASSOC);
printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);

/* associative and numeric array */
$row = maxdb_fetch_array($result, MAXDB_BOTH);
printf ("%s (%s)\n", $row[0], $row["STATE"]);

/* free result set */
maxdb_free_result($result);

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

New York (NY)
New York (NY)
Long Island (NY)

Смотрите также

  • maxdb_fetch_assoc() - Fetch a result row as an associative array
  • maxdb_fetch_row() - Get a result row as an enumerated array
  • maxdb_fetch_resource()


Fetch a result row as an associative array

  • « maxdb_fetch_array
  • maxdb_fetch_field_direct »
  • PHP Manual
  • MaxDB Функции
  • Fetch a result row as an associative array

maxdb_fetch_assoc

maxdb_result::fetch_assoc

(PECL maxdb >= 1.0)

maxdb_fetch_assoc -- maxdb_result::fetch_assoc — Fetch a result row as an associative array

Описание

Процедурный стиль

array maxdb_fetch_assoc ( resource $result )

Объектно-ориентированный стиль

array maxdb_result::fetch_assoc ( void )

Returns an associative array that corresponds to the fetched row or NULL if there are no more rows.

The maxdb_fetch_assoc() function is used to return an associative array representing the next row in the result set for the result represented by the result parameter, where each key in the array represents the name of one of the result set's columns.

If two or more columns of the result have the same field names, the last column will take precedence. To access the other column(s) of the same name, you either need to access the result with numeric indices by using maxdb_fetch_row() or add alias names.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Возвращаемые значения

Returns an array that corresponds to the fetched row or NULL if there are no more rows in resultset.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

   /* fetch associative array */
   while ($row = $result->fetch_assoc()) {
       printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);
   }

   /* free result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

   /* fetch associative array */
   while ($row = maxdb_fetch_assoc($result)) {
       printf ("%s (%s)\n", $row["NAME"], $row["STATE"]);
   }

   /* free result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Смотрите также

  • maxdb_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • maxdb_fetch_row() - Get a result row as an enumerated array
  • maxdb_fetch_resource()


Fetch meta-data for a single field

  • « maxdb_fetch_assoc
  • maxdb_fetch_field »
  • PHP Manual
  • MaxDB Функции
  • Fetch meta-data for a single field

maxdb_fetch_field_direct

maxdb_result::fetch_field_direct

(PECL maxdb >= 1.0)

maxdb_fetch_field_direct -- maxdb_result::fetch_field_direct — Fetch meta-data for a single field

Описание

Процедурный стиль

mixed maxdb_fetch_field_direct ( resource $result , int $fieldnr )

Объектно-ориентированный стиль

mixed maxdb_result::fetch_field_direct ( int $fieldnr )

maxdb_fetch_field_direct() returns an resource which contains field definition information from specified resultset. The value of fieldnr must be in the range from 0 to number of fields - 1.

Возвращаемые значения

Returns an resource which contains field definition information or FALSE if no field information for specified fieldnr is available.

Object attributes
Attribute | Description
name | The name of the column
max_length | The maximum width of the field for the result set.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY name";

if ($result = $maxdb->query($query)) {

   /* Get field information for column 'SurfaceArea' */
   $finfo = $result->fetch_field_direct(1);

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n", $finfo->type);

   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY name";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for column 'cno' */
   $finfo = maxdb_fetch_field_direct($result, 1);

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n", $finfo->type);

   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

Смотрите также

  • maxdb_num_fields() - Get the number of fields in a result
  • maxdb_fetch_field() - Returns the next field in the result set
  • maxdb_fetch_fields() - Returns an array of resources representing the fields in a result set


Returns the next field in the result set

  • « maxdb_fetch_field_direct
  • maxdb_fetch_fields »
  • PHP Manual
  • MaxDB Функции
  • Returns the next field in the result set

maxdb_fetch_field

maxdb_result::fetch_field

(PECL maxdb >= 1.0)

maxdb_fetch_field -- maxdb_result::fetch_field — Returns the next field in the result set

Описание

Процедурный стиль

mixed maxdb_fetch_field ( resource $result )

Объектно-ориентированный стиль

mixed maxdb_result::fetch_field ( void )

The maxdb_fetch_field() returns the definition of one column of a result set as an resource. Call this function repeatedly to retrieve information about all columns in the result set. maxdb_fetch_field() returns FALSE when no more fields are left.

Возвращаемые значения

Returns an resource which contains field definition information or FALSE if no field information is available.

Object properties
Property | Description
name | The name of the column
max_length | The maximum width of the field for the result set.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for all columns */
   while ($finfo = $result->fetch_field()) {

       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for all fields */
   while ($finfo = maxdb_fetch_field($result)) {

       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

Смотрите также

  • maxdb_num_fields() - Get the number of fields in a result
  • maxdb_fetch_field_direct() - Fetch meta-data for a single field
  • maxdb_fetch_fields() - Returns an array of resources representing the fields in a result set
  • maxdb_field_seek() - Set result pointer to a specified field offset


Returns an array of resources representing the fields in a result set

  • « maxdb_fetch_field
  • maxdb_fetch_lengths »
  • PHP Manual
  • MaxDB Функции
  • Returns an array of resources representing the fields in a result set

maxdb_fetch_fields

maxdb_result::fetch_fields

(PECL maxdb >= 1.0)

maxdb_fetch_fields -- maxdb_result::fetch_fields — Returns an array of resources representing the fields in a result set

Описание

Процедурный стиль

mixed maxdb_fetch_fields ( resource $result )

Объектно-ориентированный стиль

mixed maxdb_result::fetch_fields ( void )

This function serves an identical purpose to the maxdb_fetch_field() function with the single difference that, instead of returning one resource at a time for each field, the columns are returned as an array of resources.

Возвращаемые значения

Returns an array of resources which contains field definition information or FALSE if no field information is available.

Object properties
Property | Description
name | The name of the column
max_length | The maximum width of the field for the result set.
type | The data type used for this field
decimals | The number of decimals used (for integer fields)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for all columns */
   $finfo = $result->fetch_fields();

   foreach ($finfo as $val) {
       printf("Name:     %s\n", $val->name);
       printf("Table:    %s\n", $val->table);
       printf("max. Len: %d\n", $val->max_length);
       printf("Flags:    %d\n", $val->flags);
       printf("Type:     %d\n\n", $val->type);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for all columns */
   $finfo = maxdb_fetch_fields($result);

   foreach ($finfo as $val) {
       printf("Name:     %s\n", $val->name);
       printf("Table:    %s\n", $val->table);
       printf("max. Len: %d\n", $val->max_length);
       printf("Flags:    %d\n", $val->flags);
       printf("Type:     %d\n\n", $val->type);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

Смотрите также

  • maxdb_num_fields() - Get the number of fields in a result
  • maxdb_fetch_field() - Returns the next field in the result set
  • maxdb_fetch_field_direct() - Fetch meta-data for a single field


Returns the lengths of the columns of the current row in the result set

  • « maxdb_fetch_fields
  • maxdb_fetch_object »
  • PHP Manual
  • MaxDB Функции
  • Returns the lengths of the columns of the current row in the result set

maxdb_fetch_lengths

maxdb_result::lengths

(PECL maxdb >= 1.0)

maxdb_fetch_lengths -- maxdb_result::lengths — Returns the lengths of the columns of the current row in the result set

Описание

Процедурный стиль

array maxdb_fetch_lengths ( resource $result )

Объектно-ориентированный стиль

array $maxdb_result->lengths;

The maxdb_fetch_lengths() function returns an array containing the lengths of every column of the current row within the result set represented by the result parameter. If successful, a numerically indexed array representing the lengths of each column is returned или FALSE в случае возникновения ошибки.

Возвращаемые значения

An array of integers representing the size of each column (not including any terminating null characters). FALSE if an error occurred.

maxdb_fetch_lengths() is valid only for the current row of the result set. It returns FALSE if you call it before calling maxdb_fetch_row/array/resource or after retrieving all rows in the result.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT * from hotel.customer WHERE cno = 3000";

if ($result = $maxdb->query($query)) {

   $row = $result->fetch_row();

   /* display column lengths */
   foreach ($result->lengths as $i => $val) {
       printf("Field %2d has Length %2d\n", $i+1, $val);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT * from hotel.customer WHERE cno = 3000";

if ($result = maxdb_query($link, $query)) {

   $row = maxdb_fetch_row($result);

   /* display column lengths */
   foreach (maxdb_fetch_lengths($result) as $i => $val) {
       printf("Field %2d has Length %2d\n", $i+1, $val);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Field  1 has Length  4
Field  2 has Length  3
Field  3 has Length  5
Field  4 has Length  6
Field  5 has Length  5
Field  6 has Length 21


Returns the current row of a result set as an object

  • « maxdb_fetch_lengths
  • maxdb_fetch_row »
  • PHP Manual
  • MaxDB Функции
  • Returns the current row of a result set as an object

maxdb_fetch_object

maxdb_result::fetch_object

(PECL maxdb >= 1.0)

maxdb_fetch_object -- maxdb_result::fetch_object — Returns the current row of a result set as an object

Описание

Процедурный стиль

object maxdb_fetch_object ( object $result )

Объектно-ориентированный стиль

object maxdb_result::fetch_object ( void )

The maxdb_fetch_object() will return the current row result set as an object where the attributes of the object represent the names of the fields found within the result set. If no more rows exist in the current result set, NULL is returned.

Возвращаемые значения

Returns an object that corresponds to the fetched row or NULL if there are no more rows in resultset.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

   /* fetch object array */
   while ($obj = $result->fetch_object()) {
       printf ("%s (%s)\n", $obj->NAME, $obj->STATE);
   }

   /* free result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

   /* fetch object array */
   while ($obj = maxdb_fetch_object($result)) {
       printf ("%s (%s)\n", $obj->NAME, $obj->STATE);
   }

   /* free result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Смотрите также

  • maxdb_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • maxdb_fetch_assoc() - Fetch a result row as an associative array
  • maxdb_fetch_row() - Get a result row as an enumerated array


Get a result row as an enumerated array

  • « maxdb_fetch_object
  • maxdb_fetch »
  • PHP Manual
  • MaxDB Функции
  • Get a result row as an enumerated array

maxdb_fetch_row

maxdb_result::fetch_row

(PECL maxdb >= 1.0)

maxdb_fetch_row -- maxdb_result::fetch_row — Get a result row as an enumerated array

Описание

Процедурный стиль

mixed maxdb_fetch_row ( resource $result )

Объектно-ориентированный стиль

mixed maxdb_result::fetch_row ( void )

Returns an array that corresponds to the fetched row, or NULL if there are no more rows.

maxdb_fetch_row() fetches one row of data from the result set represented by result and returns it as an enumerated array, where each column is stored in an array offset starting from 0 (zero). Each subsequent call to the maxdb_fetch_row() function will return the next row within the result set, or FALSE if there are no more rows.

Возвращаемые значения

maxdb_fetch_row() returns an array that corresponds to the fetched row or NULL if there are no more rows in result set.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = $maxdb->query($query)) {

   /* fetch enumerated array */
   while ($row = $result->fetch_row()) {
       printf ("%s (%s)\n", $row[0], $row[1]);
   }

   /* free result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, state FROM hotel.city ORDER by zip";

if ($result = maxdb_query($link, $query)) {

   /* fetch enumerated array */
   while ($row = maxdb_fetch_row($result)) {
       printf ("%s (%s)\n", $row[0], $row[1]);
   }

   /* free result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

New York (NY)
New York (NY)
Long Island (NY)
Albany (NY)
Washington (DC)
Washington (DC)
Washington (DC)
Silver Spring (MD)
Daytona Beach (FL)
Deerfield Beach (FL)
Clearwater (FL)
Cincinnati (OH)
Detroit (MI)
Rosemont (IL)
Chicago (IL)
Chicago (IL)
New Orleans (LA)
Dallas (TX)
Los Angeles (CA)
Hollywood (CA)
Long Beach (CA)
Palm Springs (CA)
Irvine (CA)
Santa Clara (CA)
Portland (OR)

Смотрите также

  • maxdb_fetch_array() - Fetch a result row as an associative, a numeric array, or both
  • maxdb_fetch_assoc() - Fetch a result row as an associative array
  • maxdb_fetch_resource()


Псевдоним maxdb_stmt_fetch

  • « maxdb_fetch_row
  • maxdb_field_count »
  • PHP Manual
  • MaxDB Функции
  • Псевдоним maxdb_stmt_fetch

maxdb_fetch

(PECL maxdb 1.0)

maxdb_fetch — Псевдоним maxdb_stmt_fetch()

Описание

Эта функция является псевдонимом: maxdb_stmt_fetch().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Returns the number of columns for the most recent query

  • « maxdb_fetch
  • maxdb_field_seek »
  • PHP Manual
  • MaxDB Функции
  • Returns the number of columns for the most recent query

maxdb_field_count

maxdb::field_count

(PECL maxdb >= 1.0)

maxdb_field_count -- maxdb::field_count — Returns the number of columns for the most recent query

Описание

Процедурный стиль

int maxdb_field_count ( resource $link )

Объектно-ориентированный стиль

int maxdb::field_count ( void )

Returns the number of columns for the most recent query on the connection represented by the link parameter. This function can be useful when using the maxdb_store_result() function to determine if the query should have produced a non-empty result set or not without knowing the nature of the query.

Возвращаемые значения

An integer representing the number of fields in a result set.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query( "CREATE TABLE friends (id int, name varchar(20))");

$maxdb->query( "INSERT INTO friends VALUES (1,'Hartmut')");
$maxdb->query( "INSERT INTO friends VALUES (2, 'Ulf')");

if ($maxdb->field_count()) {
   /* this was a select/show or describe query */
   $result = $maxdb->store_result();

   /* process resultset */
   $row = $result->fetch_row();

   /* free resultset */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE friends");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE friends (id int, name varchar(20))");

maxdb_query($link, "INSERT INTO friends VALUES (1,'Hartmut')");
maxdb_query($link, "INSERT INTO friends VALUES (2, 'Ulf')");

if (maxdb_field_count($link)) {
   /* this was a select/show or describe query */
   $result = maxdb_store_result($link);

   /* process resultset */
   $row = maxdb_fetch_row($result);

   /* free resultset */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

The above example produces no output.


Set result pointer to a specified field offset

  • « maxdb_field_count
  • maxdb_field_tell »
  • PHP Manual
  • MaxDB Функции
  • Set result pointer to a specified field offset

maxdb_field_seek

maxdb_result::field_seek

(PECL maxdb >= 1.0)

maxdb_field_seek -- maxdb_result::field_seek — Set result pointer to a specified field offset

Описание

Процедурный стиль

bool maxdb_field_seek ( resource $result , int $fieldnr )

Объектно-ориентированный стиль

bool maxdb_result::field_seek ( int $fieldnr )

Sets the field cursor to the given offset. The next call to maxdb_fetch_field() will retrieve the field definition of the column associated with that offset.

Замечание:

To seek to the beginning of a row, pass an offset value of zero.

Возвращаемые значения

maxdb_field_seek() returns previuos value of field cursor.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for 2nd column */
   $result->field_seek(1);
   $finfo = $result->fetch_field();

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n\n", $finfo->type);

   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for 2nd column */
   maxdb_field_seek($result, 1);
   $finfo = maxdb_fetch_field($result);

   printf("Name:     %s\n", $finfo->name);
   printf("Table:    %s\n", $finfo->table);
   printf("max. Len: %d\n", $finfo->max_length);
   printf("Flags:    %d\n", $finfo->flags);
   printf("Type:     %d\n\n", $finfo->type);

   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Смотрите также

  • maxdb_fetch_field() - Returns the next field in the result set


Get current field offset of a result pointer

  • « maxdb_field_seek
  • maxdb_free_result »
  • PHP Manual
  • MaxDB Функции
  • Get current field offset of a result pointer

maxdb_field_tell

maxdb_result::current_field

(PECL maxdb >= 1.0)

maxdb_field_tell -- maxdb_result::current_field — Get current field offset of a result pointer

Описание

Процедурный стиль

int maxdb_field_tell ( resource $result )

Объектно-ориентированный стиль

int $maxdb_result->current_field;

Returns the position of the field cursor used for the last maxdb_fetch_field() call. This value can be used as an argument to maxdb_field_seek().

Возвращаемые значения

Returns current offset of field cursor.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = $maxdb->query($query)) {

   /* Get field information for all columns */
   while ($finfo = $result->fetch_field()) {

       /* get fieldpointer offset */
       $currentfield = $result->current_field;

       printf("Column    %d:\n", $currentfield);
       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, cno from hotel.customer ORDER BY cno";

if ($result = maxdb_query($link, $query)) {

   /* Get field information for all fields */
   while ($finfo = maxdb_fetch_field($result)) {

       /* get fieldpointer offset */
       $currentfield = maxdb_field_tell($result);

       printf("Column    %d:\n", $currentfield);
       printf("Name:     %s\n", $finfo->name);
       printf("Table:    %s\n", $finfo->table);
       printf("max. Len: %d\n", $finfo->max_length);
       printf("Flags:    %d\n", $finfo->flags);
       printf("Type:     %d\n\n", $finfo->type);
   }
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Column    1:
Name:     NAME
Table:
max. Len: 10
Flags:    -1
Type:     2

Column    2:
Name:     CNO
Table:
max. Len: 4
Flags:    -1
Type:     0

Смотрите также

  • maxdb_fetch_field() - Returns the next field in the result set
  • maxdb_field_seek() - Set result pointer to a specified field offset


Frees the memory associated with a result

  • « maxdb_field_tell
  • maxdb_get_client_info »
  • PHP Manual
  • MaxDB Функции
  • Frees the memory associated with a result

maxdb_free_result

maxdb_result::free

(PECL maxdb >= 1.0)

maxdb_free_result -- maxdb_result::free — Frees the memory associated with a result

Описание

Процедурный стиль

void maxdb_free_result ( resource $result )

Объектно-ориентированный стиль

void maxdb_result::free ( void )

The maxdb_free_result() function frees the memory associated with the result represented by the result parameter, which was allocated by maxdb_query(), maxdb_store_result() or maxdb_use_result().

Замечание:

You should always free your result with maxdb_free_result(), when your result resource is not needed anymore.

Возвращаемые значения

This function doesn't return any value.

Смотрите также

  • maxdb_query() - Performs a query on the database
  • maxdb_stmt_store_result() - Transfers a result set from a prepared statement
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval


Returns the MaxDB client version as a string

  • « maxdb_free_result
  • maxdb_get_client_version »
  • PHP Manual
  • MaxDB Функции
  • Returns the MaxDB client version as a string

maxdb_get_client_info

(PECL maxdb >= 1.0)

maxdb_get_client_info — Returns the MaxDB client version as a string

Описание

string maxdb_get_client_info ( void )

The maxdb_get_client_info() function is used to return a string representing the client version being used in the MaxDB extension.

Возвращаемые значения

A string that represents the MaxDB client library version

Примеры

Пример #1 maxdb_get_client_info

<?php

/* We don't need a connection to determine
   the version of MaxDB client library */

printf("Client library version: %s\n", maxdb_get_client_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Client library version: libSQLDBC <...>

Смотрите также

  • maxdb_get_client_version() - Get MaxDB client info
  • maxdb_get_server_info() - Returns the version of the MaxDB server
  • maxdb_get_server_version() - Returns the version of the MaxDB server as an integer


Get MaxDB client info

  • « maxdb_get_client_info
  • maxdb_get_host_info »
  • PHP Manual
  • MaxDB Функции
  • Get MaxDB client info

maxdb_get_client_version

(PECL maxdb >= 1.0)

maxdb_get_client_version — Get MaxDB client info

Описание

int maxdb_get_client_version ( void )

Returns client version number as an integer.

Возвращаемые значения

A number that represents the MaxDB client library version in format: main_version*10000 + minor_version *100 + sub_version. For example, 7.5.0 is returned as 70500.

This is useful to quickly determine the version of the client library to know if some capability exists.

Примеры

Пример #1 maxdb_get_client_version

<?php

/* We don't need a connection to determine
   the version of MaxDB client library */

printf("Client library version: %d\n", maxdb_get_client_version());
?>

Результатом выполнения данного примера будет что-то подобное:

Client library version: 7.<...>

Смотрите также

  • maxdb_get_client_info() - Returns the MaxDB client version as a string
  • maxdb_get_server_info() - Returns the version of the MaxDB server
  • maxdb_get_server_version() - Returns the version of the MaxDB server as an integer


Returns a string representing the type of connection used

  • « maxdb_get_client_version
  • maxdb_get_metadata »
  • PHP Manual
  • MaxDB Функции
  • Returns a string representing the type of connection used

maxdb_get_host_info

maxdb::get_host_info

(PECL maxdb >= 1.0)

maxdb_get_host_info -- maxdb::get_host_info — Returns a string representing the type of connection used

Описание

Процедурный стиль

string maxdb_get_host_info ( resource $link )

Объектно-ориентированный стиль

string $maxdb->host_info;

The maxdb_get_host_info() function returns a string describing the connection represented by the link parameter is using.

Возвращаемые значения

A character string representing the server hostname and the connection type.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print host information */
printf("Host info: %s\n", $maxdb->host_info);

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print host information */
printf("Host info: %s\n", maxdb_get_host_info($link));

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Host info: localhost

Смотрите также

  • maxdb_get_proto_info() - Returns the version of the MaxDB protocol used


Псевдоним maxdb_stmt_result_metadata

  • « maxdb_get_host_info
  • maxdb_get_proto_info »
  • PHP Manual
  • MaxDB Функции
  • Псевдоним maxdb_stmt_result_metadata

maxdb_get_metadata

(PECL maxdb 1.0)

maxdb_get_metadata — Псевдоним maxdb_stmt_result_metadata()

Описание

Эта функция является псевдонимом: maxdb_stmt_result_metadata().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Returns the version of the MaxDB protocol used

  • « maxdb_get_metadata
  • maxdb_get_server_info »
  • PHP Manual
  • MaxDB Функции
  • Returns the version of the MaxDB protocol used

maxdb_get_proto_info

maxdb::protocol_version

(PECL maxdb >= 1.0)

maxdb_get_proto_info -- maxdb::protocol_version — Returns the version of the MaxDB protocol used

Описание

Процедурный стиль

int maxdb_get_proto_info ( resource $link )

Объектно-ориентированный стиль

string $maxdb->protocol_version;

Returns an integer representing the MaxDB protocol version used by the connection represented by the link parameter.

Возвращаемые значения

Returns an integer representing the protocol version (constant 10).

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print protocol version */
printf("Protocol version: %d\n", $maxdb->protocol_version);

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print protocol version */
printf("Protocol version: %d\n", maxdb_get_proto_info($link));

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Protocol version: 10

Смотрите также

  • maxdb_get_host_info() - Returns a string representing the type of connection used


Returns the version of the MaxDB server

  • « maxdb_get_proto_info
  • maxdb_get_server_version »
  • PHP Manual
  • MaxDB Функции
  • Returns the version of the MaxDB server

maxdb_get_server_info

maxdb::server_info

(PECL maxdb >= 1.0)

maxdb_get_server_info -- maxdb::server_info — Returns the version of the MaxDB server

Описание

Процедурный стиль

string maxdb_get_server_info ( resource $link )

Объектно-ориентированный стиль

string $maxdb->server_info;

Returns a string representing the version of the MaxDB server that the MaxDB extension is connected to (represented by the link parameter).

Возвращаемые значения

A character string representing the server version.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %s\n", $maxdb->server_info);

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %s\n", maxdb_get_server_info($link));

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Server version: Kernel    7<...>

Смотрите также

  • maxdb_get_client_info() - Returns the MaxDB client version as a string
  • maxdb_get_client_version() - Get MaxDB client info
  • maxdb_get_server_version() - Returns the version of the MaxDB server as an integer


Returns the version of the MaxDB server as an integer

  • « maxdb_get_server_info
  • maxdb_info »
  • PHP Manual
  • MaxDB Функции
  • Returns the version of the MaxDB server as an integer

maxdb_get_server_version

maxdb::server_version

(PECL maxdb >= 1.0)

maxdb_get_server_version -- maxdb::server_version — Returns the version of the MaxDB server as an integer

Описание

Процедурный стиль

int maxdb_get_server_version ( resource $link )

Объектно-ориентированный стиль

int $maxdb->server_version;

The maxdb_get_server_version() function returns the version of the server connected to (represented by the link parameter) as an integer.

The form of this version number is main_version * 10000 + minor_version * 100 + sub_version (i.e. version 7.5.0 is 70500).

Возвращаемые значения

An integer representing the server version.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %d\n", $maxdb->server_version);

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* print server version */
printf("Server version: %d\n", maxdb_get_server_version($link));

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Server version: 7<...>

Смотрите также

  • maxdb_get_client_info() - Returns the MaxDB client version as a string
  • maxdb_get_client_version() - Get MaxDB client info
  • maxdb_get_server_info() - Returns the version of the MaxDB server


Retrieves information about the most recently executed query

  • « maxdb_get_server_version
  • maxdb_init »
  • PHP Manual
  • MaxDB Функции
  • Retrieves information about the most recently executed query

maxdb_info

maxdb::info

(PECL maxdb >= 1.0)

maxdb_info -- maxdb::info — Retrieves information about the most recently executed query

Описание

Процедурный стиль

string maxdb_info ( resource $link )

Объектно-ориентированный стиль

string $maxdb->info;

The maxdb_info() function returns a string providing information about the last query executed. The nature of this string is provided below:

Possible maxdb_info return values
Query type | Example result string
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Замечание:

Queries which do not fall into one of the above formats are not supported. In these situations, maxdb_info() will return an empty string.

Возвращаемые значения

A character string representing additional information about the most recently executed query.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
$maxdb->query("INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n", $maxdb->info);

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.t1 LIKE hotel.city");

/* INSERT INTO .. SELECT */
maxdb_query($link, "INSERT INTO temp.t1 SELECT * FROM hotel.city");
printf("%s\n", maxdb_info($link));

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Records: 25 Duplicates: 0 Warnings: 0

Смотрите также

  • maxdb_affected_rows() - Gets the number of affected rows in a previous MaxDB operation
  • maxdb_warning_count() - Returns the number of warnings from the last query for the given link
  • maxdb_num_rows() - Gets the number of rows in a result


Initializes MaxDB and returns an resource for use with maxdb_real_connect

  • « maxdb_info
  • maxdb_insert_id »
  • PHP Manual
  • MaxDB Функции
  • Initializes MaxDB and returns an resource for use with maxdb_real_connect

maxdb_init

(PECL maxdb >= 1.0)

maxdb_init — Initializes MaxDB and returns an resource for use with maxdb_real_connect

Описание

resource maxdb_init ( void )

Allocates or initializes a MaxDB resource suitable for maxdb_options() and maxdb_real_connect().

Замечание:

Any subsequent calls to any maxdb function (except maxdb_options()) will fail until maxdb_real_connect() was called.

Возвращаемые значения

Returns an resource.

Смотрите также

  • maxdb_options() - Set options
  • maxdb_close() - Closes a previously opened database connection
  • maxdb_real_connect() - Opens a connection to a MaxDB server
  • maxdb_connect() - Open a new connection to the MaxDB server


Returns the auto generated id used in the last query

  • « maxdb_init
  • maxdb_kill »
  • PHP Manual
  • MaxDB Функции
  • Returns the auto generated id used in the last query

maxdb_insert_id

maxdb::insert_id

(PECL maxdb >= 1.0)

maxdb_insert_id -- maxdb::insert_id — Returns the auto generated id used in the last query

Описание

Процедурный стиль

mixed maxdb_insert_id ( resource $link )

Объектно-ориентированный стиль

mixed $maxdb->insert_id;

The maxdb_insert_id() function returns the ID generated by a query on a table with a column having the DEFAULT SERIAL attribute. If the last query wasn't an INSERT or UPDATE statement or if the modified table does not have a column with the DEFAULT SERIAL attribute, this function will return zero.

Возвращаемые значения

The value of the DEFAULT SERIAL field that was updated by the previous query. Returns zero if there was no previous query on the connection or if the query did not update an DEFAULT_SERIAL value.

Замечание:

If the number is greater than maximal int value, maxdb_insert_id() will return a string.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
$maxdb->query("DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

$maxdb->query("CREATE TABLE mycity LIKE hotel.city");
$maxdb->query("ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query = "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
$maxdb->query($query);

printf ("New Record has id %d.\n", $maxdb->insert_id);

/* drop table */
$maxdb->query("DROP TABLE mycity");

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP TABLE mycity");
maxdb_report (MAXDB_REPORT_ERROR);

maxdb_query($link, "CREATE TABLE mycity LIKE hotel.city");
maxdb_query($link, "ALTER TABLE mycity ADD id FIXED(11) DEFAULT SERIAL");

$query = "INSERT INTO mycity (zip,name,state) VALUES ('12203','Albany' ,'NY')";
maxdb_query($link, $query);

printf ("New Record has id %d.\n", maxdb_insert_id($link));

/* drop table */
maxdb_query($link, "DROP TABLE mycity");

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

New Record has id 1.


Disconnects from a MaxDB server

  • « maxdb_insert_id
  • maxdb_master_query »
  • PHP Manual
  • MaxDB Функции
  • Disconnects from a MaxDB server

maxdb_kill

maxdb::kill

(PECL maxdb >= 1.0)

maxdb_kill -- maxdb::kill — Disconnects from a MaxDB server

Описание

Процедурный стиль

bool maxdb_kill ( resource $link , int $processid )

Объектно-ориентированный стиль

bool maxdb::kill ( int $processid )

This function is used to disconnect from a MaxDB server specified by the processid parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = $maxdb->thread_id;

/* Kill connection */
$maxdb->kill($thread_id);

/* This should produce an error */
if (!$maxdb->query("CREATE TABLE myCity LIKE City")) {
   printf("Error: %s\n", $maxdb->error);
   exit;
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = maxdb_thread_id($link);

/* Kill connection */
maxdb_kill($link, $thread_id);

/* This should produce an error */
if (!maxdb_query($link, "CREATE TABLE myCity LIKE City")) {
   printf("Error: %s\n", maxdb_error($link));
   exit;
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Error: Session not connected

Смотрите также

  • maxdb_thread_id() - Returns the thread ID for the current connection


Enforce execution of a query on the master in a master/slave setup

  • « maxdb_kill
  • maxdb_more_results »
  • PHP Manual
  • MaxDB Функции
  • Enforce execution of a query on the master in a master/slave setup

maxdb_master_query

(PECL maxdb >= 1.0)

maxdb_master_query — Enforce execution of a query on the master in a master/slave setup

Описание

bool maxdb_master_query ( resource $link , string $query )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Check if there any more query results from a multi query

  • « maxdb_master_query
  • maxdb_multi_query »
  • PHP Manual
  • MaxDB Функции
  • Check if there any more query results from a multi query

maxdb_more_results

maxdb::more_results

(PECL maxdb >= 1.0)

maxdb_more_results -- maxdb::more_results — Check if there any more query results from a multi query

Описание

bool maxdb_more_results ( resource $link )

maxdb_more_results() indicates if one or more result sets are available from a previous call to maxdb_multi_query().

Возвращаемые значения

Always FALSE.

Примеры

See maxdb_multi_query().

Смотрите также

  • maxdb_multi_query() - Performs a query on the database
  • maxdb_next_result() - Prepare next result from multi_query
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval


Performs a query on the database

  • « maxdb_more_results
  • maxdb_next_result »
  • PHP Manual
  • MaxDB Функции
  • Performs a query on the database

maxdb_multi_query

maxdb::multi_query

(PECL maxdb >= 1.0)

maxdb_multi_query -- maxdb::multi_query — Performs a query on the database

Описание

Процедурный стиль

bool maxdb_multi_query ( resource $link , string $query )

Объектно-ориентированный стиль

bool maxdb::multi_query ( string $query )

The maxdb_multi_query() works like the function maxdb_query(). Multiple queries are not yet supported.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query  = "SELECT * FROM dual";

/* execute multi query */
if ($maxdb->multi_query($query)) {
   do {
       /* store first result set */
       if ($result = $maxdb->store_result()) {
           while ($row = $result->fetch_row()) {
               printf("%s\n", $row[0]);
           }
           $result->close();
       }
       /* print divider */
       if ($maxdb->more_results()) {
           printf("-----------------\n");
       }
   } while ($maxdb->next_result());
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT * FROM dual";

/* execute multi query */
if (maxdb_multi_query($link, $query)) {
   do {
       /* store first result set */
       if ($result = maxdb_store_result($link)) {
           while ($row = maxdb_fetch_row($result)) {
               printf("%s\n", $row[0]);
           }
           maxdb_free_result($result);
       }
       /* print divider */
       if (maxdb_more_results($link)) {
           printf("-----------------\n");
       }
   } while (maxdb_next_result($link));
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

a

Смотрите также

  • maxdb_use_result() - Initiate a result set retrieval
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_next_result() - Prepare next result from multi_query
  • maxdb_more_results() - Check if there any more query results from a multi query


Prepare next result from multi_query

  • « maxdb_multi_query
  • maxdb_num_fields »
  • PHP Manual
  • MaxDB Функции
  • Prepare next result from multi_query

maxdb_next_result

maxdb::next_result

(PECL maxdb >= 1.0)

maxdb_next_result -- maxdb::next_result — Prepare next result from multi_query

Описание

bool maxdb_next_result ( resource $link )

Since multiple queries are not yet supported, maxdb_next_result() returns always FALSE.

Возвращаемые значения

Returns FALSE.

Смотрите также

  • maxdb_multi_query() - Performs a query on the database
  • maxdb_more_results() - Check if there any more query results from a multi query
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval


Get the number of fields in a result

  • « maxdb_next_result
  • maxdb_num_rows »
  • PHP Manual
  • MaxDB Функции
  • Get the number of fields in a result

maxdb_num_fields

maxdb_result::field_count

(PECL maxdb >= 1.0)

maxdb_num_fields -- maxdb_result::field_count — Get the number of fields in a result

Описание

Процедурный стиль

int maxdb_num_fields ( resource $result )

Объектно-ориентированный стиль

int $maxdb_result->field_count;

maxdb_num_fields() returns the number of fields from specified result set.

Возвращаемые значения

The number of fields from a result set

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = $maxdb->query("SELECT * FROM hotel.city ORDER BY zip")) {

   /* determine number of fields in result set */
   $field_cnt = $result->field_count;

   printf("Result set has %d fields.\n", $field_cnt);

   /* close result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = maxdb_query($link, "SELECT * FROM hotel.city ORDER BY zip")) {

   /* determine number of fields in result set */
   $field_cnt = maxdb_num_fields($result);

   printf("Result set has %d fields.\n", $field_cnt);

   /* close result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Result set has 3 fields.

Смотрите также

  • maxdb_fetch_field() - Returns the next field in the result set


Gets the number of rows in a result

  • « maxdb_num_fields
  • maxdb_options »
  • PHP Manual
  • MaxDB Функции
  • Gets the number of rows in a result

maxdb_num_rows

maxdb::num_rows

(PECL maxdb >= 1.0)

maxdb_num_rows -- maxdb::num_rows — Gets the number of rows in a result

Описание

Процедурный стиль

int maxdb_num_rows ( resource $result )

Объектно-ориентированный стиль

int $maxdb->num_rows;

Returns the number of rows in the result set.

The use of maxdb_num_rows() depends on whether you use buffered or unbuffered result sets. In case you use unbuffered resultsets maxdb_num_rows() will not correct the correct number of rows until all the rows in the result have been retrieved.

Возвращаемые значения

Returns number of rows in the result set.

Замечание:

If the number of rows is greater than maximal int value, the number will be returned as a string.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = $maxdb->query("SELECT cno, name FROM hotel.customer ORDER BY name")) {

   /* determine number of rows result set */
   $row_cnt = $result->num_rows;

   printf("Result set has %d rows.\n", $row_cnt);

   /* close result set */
   $result->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($result = maxdb_query($link, "SELECT cno, name FROM hotel.customer ORDER BY name")) {

   /* determine number of rows result set */
   $row_cnt = maxdb_num_rows($result);

   printf("Result set has %d rows.\n", $row_cnt);

   /* close result set */
   maxdb_free_result($result);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Result set has 15 rows.

Смотрите также

  • maxdb_affected_rows() - Gets the number of affected rows in a previous MaxDB operation
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval
  • maxdb_query() - Performs a query on the database


Set options

  • « maxdb_num_rows
  • maxdb_param_count »
  • PHP Manual
  • MaxDB Функции
  • Set options

maxdb_options

maxdb::options

(PECL maxdb >= 1.0)

maxdb_options -- maxdb::options — Set options

Описание

Процедурный стиль

bool maxdb_options ( resource $link , int $option , mixed $value )

Объектно-ориентированный стиль

bool maxdb::options ( int $option , mixed $value )

maxdb_options() can be used to set extra connect options and affect behavior for a connection.

This function may be called multiple times to set several options.

maxdb_options() should be called after maxdb_init() and before maxdb_real_connect().

The parameter option is the option that you want to set, the value is the value for the option. For detailed description of the options see » http://maxdb.sap.com/documentation/ The parameter option can be one of the following values:

Valid options
Name | Description
MAXDB_COMPNAME | The component name used to initialise the SQLDBC runtime environment.
MAXDB_APPLICATION | The application to be connected to the database.
MAXDB_APPVERSION | The version of the application.
MAXDB_SQLMODE | The SQL mode.
MAXDB_UNICODE | TRUE, if the connection is an unicode (UCS2) client or FALSE, if not.
MAXDB_TIMEOUT | The maximum allowed time of inactivity after which the connection to the database is closed by the system.
MAXDB_ISOLATIONLEVEL | Specifies whether and how shared locks and exclusive locks are implicitly requested or released.
MAXDB_PACKETCOUNT | The number of different request packets used for the connection.
MAXDB_STATEMENTCACHESIZE | The number of prepared statements to be cached for the connection for re-use.
MAXDB_CURSORPREFIX | The prefix to use for result tables that are automatically named.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

See maxdb_real_connect().

Смотрите также

  • maxdb_init() - Initializes MaxDB and returns an resource for use with maxdb_real_connect
  • maxdb_real_connect() - Opens a connection to a MaxDB server


Псевдоним maxdb_stmt_param_count

  • « maxdb_options
  • maxdb_ping »
  • PHP Manual
  • MaxDB Функции
  • Псевдоним maxdb_stmt_param_count

maxdb_param_count

(PECL maxdb 1.0)

maxdb_param_count — Псевдоним maxdb_stmt_param_count()

Описание

Эта функция является псевдонимом: maxdb_stmt_param_count().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Pings a server connection, or tries to reconnect if the connection has gone down

  • « maxdb_param_count
  • maxdb_prepare »
  • PHP Manual
  • MaxDB Функции
  • Pings a server connection, or tries to reconnect if the connection has gone down

maxdb_ping

maxdb::ping

(PECL maxdb >= 1.0)

maxdb_ping -- maxdb::ping — Pings a server connection, or tries to reconnect if the connection has gone down

Описание

Процедурный стиль

bool maxdb_ping ( resource $link )

Объектно-ориентированный стиль

bool maxdb::ping ( void )

Checks whether the connection to the server is working. If it has gone down, and global option maxdb.reconnect is enabled an automatic reconnection is attempted.

This function can be used by clients that remain idle for a long while, to check whether the server has closed the connection and reconnect if necessary.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* check if server is alive */
if ($maxdb->ping()) {
   printf ("Our connection is ok!\n");
} else {
   printf ("Error: %s\n", $maxdb->error);
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* check if server is alive */
if (maxdb_ping($link)) {
   printf ("Our connection is ok!\n");
} else {
   printf ("Error: %s\n", maxdb_error($link));
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Our connection is ok!


Prepare an SQL statement for execution

  • « maxdb_ping
  • maxdb_query »
  • PHP Manual
  • MaxDB Функции
  • Prepare an SQL statement for execution

maxdb_prepare

maxdb::prepare

(PECL maxdb >= 1.0)

maxdb_prepare -- maxdb::prepare — Prepare an SQL statement for execution

Описание

Процедурный стиль

resource maxdb_prepare ( resource $link , string $query )

Объектно-ориентированный стиль

maxdb_stmt maxdb::prepare ( string $query )

maxdb_prepare() prepares the SQL query pointed to by the null-terminated string query, and returns a statement handle to be used for further operations on the statement. The query must consist of a single SQL statement.

Замечание:

You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Замечание:

The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using maxdb_stmt_bind_param() and/or maxdb_stmt_bind_result() before executing the statement or fetching rows.

Возвращаемые значения

maxdb_prepare() returns a statement resource or FALSE if an error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Rosemont";

/* create a prepared statement */
if ($stmt = $maxdb->prepare("SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   $stmt->bind_param("s", $city);

   /* execute query */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($district);

   /* fetch value */
   $stmt->fetch();

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Rosemont";

/* create a prepared statement */
if ($stmt = maxdb_prepare($link, "SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   maxdb_stmt_bind_param($stmt, "s", $city);

   /* execute query */
   maxdb_stmt_execute($stmt);

  /* bind result variables */
   maxdb_stmt_bind_result($stmt, $district);

   /* fetch value */
   maxdb_stmt_fetch($stmt);

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Rosemont is in district IL

Смотрите также

  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters
  • maxdb_stmt_bind_result() - Binds variables to a prepared statement for result storage
  • maxdb_stmt_close() - Closes a prepared statement


Performs a query on the database

  • « maxdb_prepare
  • maxdb_real_connect »
  • PHP Manual
  • MaxDB Функции
  • Performs a query on the database

maxdb_query

maxdb::query

(PECL maxdb >= 1.0)

maxdb_query -- maxdb::query — Performs a query on the database

Описание

Процедурный стиль

mixed maxdb_query ( resource $link , string $query [, int $resultmode ] )

Объектно-ориентированный стиль

mixed maxdb::query ( string $query )

The maxdb_query() function is used to simplify the act of performing a query against the database represented by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. For SELECT, SHOW, DESCRIBE or EXPLAIN maxdb_query() will return a result resource.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Create table doesn't return a resultset */
if ($maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
   printf("Table mycity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = $maxdb->query("SELECT name FROM hotel.city")) {
   printf("Select returned %d rows.\n", $result->num_rows);

   /* free result set */
   $result->close();
}

/* If we have to retrieve large amount of data we use MAXDB_USE_RESULT */
if ($result = $maxdb->query("SELECT * FROM hotel.city", MAXDB_USE_RESULT)) {
   $result->close();
}

$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Create table doesn't return a resultset */
if (maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city") === TRUE) {
   printf("Table mycity successfully created.\n");
}

/* Select queries return a resultset */
if ($result = maxdb_query($link, "SELECT name FROM hotel.city")) {
   printf("Select returned %d rows.\n", maxdb_num_rows($result));

   /* free result set */
   maxdb_free_result($result);
}

/* If we have to retrieve large amount of data we use MAXDB_USE_RESULT */
if ($result = maxdb_query($link, "SELECT * FROM hotel.city", MAXDB_USE_RESULT)) {
   maxdb_free_result($result);
}

maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Table mycity successfully created.
Select returned 25 rows.

Смотрите также

  • maxdb_real_query() - Execute an SQL query
  • maxdb_multi_query() - Performs a query on the database
  • maxdb_free_result() - Frees the memory associated with a result


Opens a connection to a MaxDB server

  • « maxdb_query
  • maxdb_real_escape_string »
  • PHP Manual
  • MaxDB Функции
  • Opens a connection to a MaxDB server

maxdb_real_connect

maxdb::real_connect

(PECL maxdb >= 1.0)

maxdb_real_connect -- maxdb::real_connect — Opens a connection to a MaxDB server

Описание

Процедурный стиль

bool maxdb_real_connect ( resource $link [, string $hostname [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

Объектно-ориентированный стиль

bool maxdb::real_connect ([ string $hostname [, string $username [, string $passwd [, string $dbname [, int $port = 0 [, string $socket ]]]]]] )

maxdb_real_connect() attempts to establish a connection to a MaxDB database engine running on hostname.

This function differs from maxdb_connect():

  • maxdb_real_connect() needs a valid resource which has to be created by function maxdb_init()

  • With function maxdb_options() you can set various options for connection.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* create a connection object which is not connected */
$maxdb = maxdb_init();

/* set connection options */
$maxdb->options(MAXDB_UNICODE, "FALSE");
$maxdb->options(MAXDB_TIMEOUT, 5);

/* connect to server */
$maxdb->real_connect('localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf ("Connection: %s\n.", $maxdb->host_info);

$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php

/* create a connection object which is not connected */
$link = maxdb_init();

/* set connection options */
maxdb_options($link, MAXDB_UNICODE, "FALSE");
maxdb_options($link, MAXDB_TIMEOUT, 5);

/* connect to server */
maxdb_real_connect($link, 'localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf ("Connection: %s\n.", maxdb_get_host_info($link));

maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Connection: localhost <...>

Смотрите также

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_init() - Initializes MaxDB and returns an resource for use with maxdb_real_connect
  • maxdb_options() - Set options
  • maxdb_ssl_set() - Used for establishing secure connections using SSL
  • maxdb_close() - Closes a previously opened database connection


Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

  • « maxdb_real_connect
  • maxdb_real_query »
  • PHP Manual
  • MaxDB Функции
  • Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

maxdb_real_escape_string

maxdb::real_escape_string

(PECL maxdb >= 1.0)

maxdb_real_escape_string -- maxdb::real_escape_string — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

Описание

Процедурный стиль

string maxdb_real_escape_string ( resource $link , string $escapestr )

Объектно-ориентированный стиль

string maxdb::real_escape_string ( string $escapestr )

This function is used to create a legal SQL string that you can use in an SQL statement. The string escapestr is encoded to an escaped SQL string, taking into account the current character set of the connection.

Characters encoded are ', ".

Возвращаемые значения

Returns an escaped string.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!$maxdb->query("INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
   printf("Error: %s\n", $maxdb->sqlstate);
}

$city = $maxdb->real_escape_string($city);

/* this query with escaped $city will work */
if ($maxdb->query("INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
   printf("%d Row inserted.\n", $maxdb->affected_rows);
}

$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

$city = "'s Hertogenbosch";

/* this query will fail, cause we didn't escape $city */
if (!maxdb_query($link, "INSERT into temp.mycity VALUES ('11111','$city','NY')")) {
   printf("Error: %s\n", maxdb_sqlstate($link));
}

$city = maxdb_real_escape_string($link, $city);

/* this query with escaped $city will work */
if (maxdb_query($link, "INSERT into temp.mycity VALUES ('22222','$city','NY')")) {
   printf("%d Row inserted.\n", maxdb_affected_rows($link));
}

maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_query(): -5016 POS(43) Missing delimiter: ) <...>
Error: 42000
1 Row inserted.

Смотрите также

  • maxdb_character_set_name() - Returns the default character set for the database connection


Execute an SQL query

  • « maxdb_real_escape_string
  • maxdb_report »
  • PHP Manual
  • MaxDB Функции
  • Execute an SQL query

maxdb_real_query

maxdb::real_query

(PECL maxdb >= 1.0)

maxdb_real_query -- maxdb::real_query — Execute an SQL query

Описание

Процедурный стиль

bool maxdb_real_query ( resource $link , string $query )

Объектно-ориентированный стиль

bool maxdb::real_query ( string $query )

The maxdb_real_query() is functionally identical with the maxdb_query().

Замечание:

In order to determine if a given query should return a result set or not, see maxdb_field_count().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • maxdb_query() - Performs a query on the database
  • maxdb_store_result() - Transfers a result set from the last query
  • maxdb_use_result() - Initiate a result set retrieval


Enables or disables internal report functions

  • « maxdb_real_query
  • maxdb_rollback »
  • PHP Manual
  • MaxDB Функции
  • Enables or disables internal report functions

maxdb_report

(PECL maxdb 1.0)

maxdb_report — Enables or disables internal report functions

Описание

bool maxdb_report ( int $flags )

Список параметров

flags

One of the MAXDB_REPORT_XXX constants.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Процедурный стиль

<?php
/* activate reporting */
maxdb_report(MAXDB_REPORT_ERROR);

$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* this query should report an error */
$result = maxdb_query($link,"SELECT Name FROM Nonexistingtable WHERE population > 50000");

maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_query(): -4004 POS(18) Unknown table name:NONEXISTINGTABLE <...>


Rolls back current transaction

  • « maxdb_report
  • maxdb_rpl_parse_enabled »
  • PHP Manual
  • MaxDB Функции
  • Rolls back current transaction

maxdb_rollback

maxdb::rollback

(PECL maxdb >= 1.0)

maxdb_rollback -- maxdb::rollback — Rolls back current transaction

Описание

Процедурный стиль

bool maxdb_rollback ( resource $link )

Объектно-ориентированный стиль

bool maxdb::rollback ( void )

Rollbacks the current transaction for the database specified by the link parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* disable autocommit */
$maxdb->autocommit(FALSE);

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* commit insert */
$maxdb->commit();

/* delete all rows */
$maxdb->query("DELETE FROM temp.mycity");

if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
   $row = $result->fetch_row();
   printf("%d rows in table mycity.\n", $row[0]);
   /* Free result */
   $result->close();
}

/* Rollback */
$maxdb->rollback();

if ($result = $maxdb->query("SELECT COUNT(*) FROM temp.mycity")) {
   $row = $result->fetch_row();
   printf("%d rows in table mycity (after rollback).\n", $row[0]);
   /* Free result */
   $result->close();
}

/* Drop table myCity */
$maxdb->query("DROP TABLE temp.mycity");

$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* disable autocommit */
maxdb_autocommit($link, FALSE);

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

/* commit insert */
maxdb_commit($link);

/* delete all rows */
maxdb_query($link, "DELETE FROM temp.mycity");

if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
   $row = maxdb_fetch_row($result);
   printf("%d rows in table mycity.\n", $row[0]);
   /* Free result */
   maxdb_free_result($result);
}

/* Rollback */
maxdb_rollback($link);

if ($result = maxdb_query($link, "SELECT COUNT(*) FROM temp.mycity")) {
   $row = maxdb_fetch_row($result);
   printf("%d rows in table mycity (after rollback).\n", $row[0]);
   /* Free result */
   maxdb_free_result($result);
}

/* Drop table myCity */
maxdb_query($link, "DROP TABLE temp.mycity");

maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

0 rows in table mycity.
25 rows in table mycity (after rollback).

Смотрите также

  • maxdb_commit() - Commits the current transaction
  • maxdb_autocommit() - Turns on or off auto-commiting database modifications


Check if RPL parse is enabled

  • « maxdb_rollback
  • maxdb_rpl_probe »
  • PHP Manual
  • MaxDB Функции
  • Check if RPL parse is enabled

maxdb_rpl_parse_enabled

(PECL maxdb >= 1.0)

maxdb_rpl_parse_enabled — Check if RPL parse is enabled

Описание

int maxdb_rpl_parse_enabled ( resource $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


RPL probe

  • « maxdb_rpl_parse_enabled
  • maxdb_rpl_query_type »
  • PHP Manual
  • MaxDB Функции
  • RPL probe

maxdb_rpl_probe

(PECL maxdb >= 1.0)

maxdb_rpl_probe — RPL probe

Описание

bool maxdb_rpl_probe ( resource $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns RPL query type

  • « maxdb_rpl_probe
  • maxdb_select_db »
  • PHP Manual
  • MaxDB Функции
  • Returns RPL query type

maxdb_rpl_query_type

maxdb::rpl_query_type

(PECL maxdb >= 1.0)

maxdb_rpl_query_type -- maxdb::rpl_query_type — Returns RPL query type

Описание

Процедурный стиль

int maxdb_rpl_query_type ( resource $link )

Объектно-ориентированный стиль

int maxdb::rpl_query_type ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Selects the default database for database queries

  • « maxdb_rpl_query_type
  • maxdb_send_long_data »
  • PHP Manual
  • MaxDB Функции
  • Selects the default database for database queries

maxdb_select_db

maxdb::select_db

(PECL maxdb >= 1.0)

maxdb_select_db -- maxdb::select_db — Selects the default database for database queries

Описание

bool maxdb_select_db ( resource $link , string $dbname )

The maxdb_select_db() function selects the default database (specified by the dbname parameter) to be used when performing queries against the database connection represented by the link parameter.

Замечание:

This function should only be used to change the default database for the connection. You can select the default database with 4th parameter in maxdb_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* return name of current default database */
if ($result = $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = $result->fetch_row();
   printf("Default database is %s.\n", $row[0]);
   $result->close();
}

/* change db to non existing db */
$maxdb->select_db("XXXXXXXX");

/* return name of current default database */
if ($result = $maxdb->query("SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = $result->fetch_row();
   printf("Default database is %s.\n", $row[0]);
   $result->close();
}

$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* return name of current default database */
if ($result = maxdb_query($link, "SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = maxdb_fetch_row($result);
   printf("Default database is %s.\n", $row[0]);
   maxdb_free_result($result);
}

/* change db to non existing db */
maxdb_select_db($link, "XXXXXXXX");

/* return name of current default database */
if ($result = maxdb_query($link, "SELECT SERVERDB FROM USERS WHERE USERNAME='MONA'")) {
   $row = maxdb_fetch_row($result);
   printf("Default database is %s.\n", $row[0]);
   maxdb_free_result($result);
}

maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Default database is <...>.

Warning: maxdb_select_db(): -10709 Connection failed (RTE:database not running) <...>

Warning: maxdb_query(): -10821 Session not connected [] <...>

Warning: maxdb_close(): -10821 Session not connected [] <...>

Смотрите также

  • maxdb_connect() - Open a new connection to the MaxDB server
  • maxdb_real_connect() - Opens a connection to a MaxDB server


Псевдоним maxdb_stmt_send_long_data

  • « maxdb_select_db
  • maxdb_send_query »
  • PHP Manual
  • MaxDB Функции
  • Псевдоним maxdb_stmt_send_long_data

maxdb_send_long_data

(PECL maxdb >= 1.0)

maxdb_send_long_data — Псевдоним maxdb_stmt_send_long_data()

Описание

Эта функция является псевдонимом: maxdb_stmt_send_long_data().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Send the query and return

  • « maxdb_send_long_data
  • maxdb_server_end »
  • PHP Manual
  • MaxDB Функции
  • Send the query and return

maxdb_send_query

maxdb::send_query

(PECL maxdb >= 1.0)

maxdb_send_query -- maxdb::send_query — Send the query and return

Описание

Процедурный стиль

bool maxdb_send_query ( resource $link , string $query )

Объектно-ориентированный стиль

bool maxdb::send_query ( string $query )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Shut down the embedded server

  • « maxdb_send_query
  • maxdb_server_init »
  • PHP Manual
  • MaxDB Функции
  • Shut down the embedded server

maxdb_server_end

(PECL maxdb >= 1.0)

maxdb_server_end — Shut down the embedded server

Описание

void maxdb_server_end ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Initialize embedded server

  • « maxdb_server_end
  • maxdb_set_opt »
  • PHP Manual
  • MaxDB Функции
  • Initialize embedded server

maxdb_server_init

(PECL maxdb >= 1.0)

maxdb_server_init — Initialize embedded server

Описание

bool maxdb_server_init ([ array $server [, array $groups ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Псевдоним maxdb_options

  • « maxdb_server_init
  • maxdb_sqlstate »
  • PHP Manual
  • MaxDB Функции
  • Псевдоним maxdb_options

maxdb_set_opt

(PECL maxdb 1.0)

maxdb_set_opt — Псевдоним maxdb_options()

Описание

Эта функция является псевдонимом: maxdb_options().


Returns the SQLSTATE error from previous MaxDB operation

  • « maxdb_set_opt
  • maxdb_ssl_set »
  • PHP Manual
  • MaxDB Функции
  • Returns the SQLSTATE error from previous MaxDB operation

maxdb_sqlstate

maxdb::sqlstate

(PECL maxdb >= 1.0)

maxdb_sqlstate -- maxdb::sqlstate — Returns the SQLSTATE error from previous MaxDB operation

Описание

Процедурный стиль

string maxdb_sqlstate ( resource $link )

Объектно-ориентированный стиль

string $maxdb->sqlstate;

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC.

Замечание:

Note that not all MaxDB errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Возвращаемые значения

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Table City already exists, so we should get an error */
if (!$maxdb->query("CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
   printf("Error - SQLSTATE %s.\n", $maxdb->sqlstate);
}

$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Table City already exists, so we should get an error */
if (!maxdb_query($link, "CREATE TABLE hotel.city (ID INT, Name VARCHAR(30))")) {
   printf("Error - SQLSTATE %s.\n", maxdb_sqlstate($link));
}

maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_query(): -6000 POS(20) Duplicate table name:CITY [I6000] <...>
Error - SQLSTATE I6000.

Смотрите также

  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error


Used for establishing secure connections using SSL

  • « maxdb_sqlstate
  • maxdb_stat »
  • PHP Manual
  • MaxDB Функции
  • Used for establishing secure connections using SSL

maxdb_ssl_set

maxdb::ssl_set

(PECL maxdb >= 1.0)

maxdb_ssl_set -- maxdb::ssl_set — Used for establishing secure connections using SSL

Описание

Процедурный стиль

bool maxdb_ssl_set ( resource $link , string $key , string $cert , string $ca , string $capath , string $cipher )

Объектно-ориентированный стиль

bool maxdb::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Gets the current system status

  • « maxdb_ssl_set
  • maxdb_stmt_affected_rows »
  • PHP Manual
  • MaxDB Функции
  • Gets the current system status

maxdb_stat

maxdb::stat

(PECL maxdb >= 1.0)

maxdb_stat -- maxdb::stat — Gets the current system status

Описание

Процедурный стиль

string maxdb_stat ( resource $link )

Объектно-ориентированный стиль

string maxdb::stat ( void )

maxdb_stat() returns a string containing several information about the MaxDB server running.

Возвращаемые значения

A string describing the server status. FALSE if an error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf ("System status: %s\n", $maxdb->stat());

$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

printf("System status: %s\n", maxdb_stat($link));

maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

System status: Kernel    7<...>

Смотрите также

  • maxdb_get_server_info() - Returns the version of the MaxDB server


Returns the total number of rows changed, deleted, or inserted by the last executed statement

  • « maxdb_stat
  • maxdb_stmt_bind_param »
  • PHP Manual
  • MaxDB Функции
  • Returns the total number of rows changed, deleted, or inserted by the last executed statement

maxdb_stmt_affected_rows

maxdb_stmt::affected_rows

(PECL maxdb >= 1.0)

maxdb_stmt_affected_rows -- maxdb_stmt::affected_rows — Returns the total number of rows changed, deleted, or inserted by the last executed statement

Описание

Процедурный стиль

int maxdb_stmt_affected_rows ( resource $stmt )

Объектно-ориентированный стиль

int $maxdb_stmt->affected_rows;

maxdb_stmt_affected_rows() returns the number of rows affected by INSERT, UPDATE, or DELETE query. If the last query was invalid or the number of rows can not determined, this function will return -1.

Возвращаемые значения

An integer greater than zero indicates the number of rows affected or retrieved. Zero indicates that no records where updated for an UPDATE/DELETE statement, no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query has returned an error or the number of rows can not determined.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* create temp table */
$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

$query = "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* prepare statement */
if ($stmt = $maxdb->prepare($query)) {

   /* Bind variable for placeholder */
   $code = 'N%';
   $stmt->bind_param("s", $code);

   /* execute statement */
   $stmt->execute();

   printf("rows inserted: %d\n", $stmt->affected_rows);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* create temp table */
maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

$query = "INSERT INTO temp.mycity SELECT * FROM hotel.city WHERE state LIKE ?";

/* prepare statement */
if ($stmt = maxdb_prepare($link, $query)) {

   /* Bind variable for placeholder */
   $code = 'N%';
   maxdb_stmt_bind_param($stmt, "s", $code);

   /* execute statement */
   maxdb_stmt_execute($stmt);

   printf("rows inserted: %d\n", maxdb_stmt_affected_rows($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

rows inserted: 4

Смотрите также

  • maxdb_stmt_num_rows() - Return the number of rows in statements result set
  • maxdb_prepare() - Prepare an SQL statement for execution


Binds variables to a prepared statement as parameters

  • « maxdb_stmt_affected_rows
  • maxdb_stmt_bind_result »
  • PHP Manual
  • MaxDB Функции
  • Binds variables to a prepared statement as parameters

maxdb_stmt_bind_param

maxdb_stmt::bind_param

(PECL maxdb >= 1.0)

maxdb_stmt_bind_param -- maxdb_stmt::bind_param — Binds variables to a prepared statement as parameters

Описание

Процедурный стиль

bool maxdb_stmt_bind_param ( resource $stmt , string $types , mixed &$var1 [, mixed &$... ] )

Объектно-ориентированный стиль

bool maxdb_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

Процедурный стиль (extended syntax):

bool maxdb_stmt_bind_param ( resource $stmt , string $types , array &$var )

Объектно-ориентированный стиль (extended syntax):

bool maxdb_stmt::bind_param ( string $types , array &$var )

maxdb_stmt_bind_param() is used to bind variables for the parameter markers in the SQL statement that was passed to maxdb_prepare(). The string types contains one or more characters which specify the types for the corresponding bind variables.

The extended syntax of maxdb_stmt_bind_param() allows to give the parameters as an array instead of a variable list of PHP variables to the function. If the array variable has not been used before calling maxdb_stmt_bind_param(), it has to be initialized as an emtpy array. See the examples how to use maxdb_stmt_bind_param() with extended syntax.

Variables for SELECT INTO SQL statements can also be bound using maxdb_stmt_bind_param(). Parameters for database procedures can be bound using maxdb_stmt_bind_param(). See the examples how to use maxdb_stmt_bind_param() in this cases.

If a variable bound as INTO variable to an SQL statement was used before, the content of this variable is overwritten by the data of the SELECT INTO statement. A reference to this variable will be invalid after a call to maxdb_stmt_bind_param().

For INOUT parameters of database procedures the content of the bound INOUT variable is overwritten by the output value of the database procedure. A reference to this variable will be invalid after a call to maxdb_stmt_bind_param().

Type specification chars
Character | Description
i | corresponding variable has type integer
d | corresponding variable has type double
s | corresponding variable has type string
b | corresponding variable is a blob and will be sent in packages

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");
$stmt->bind_param('sss', $zip, $name, $state);

$zip = '11111';
$name = 'Georgetown';
$state = 'NY';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d Row deleted.\n", $maxdb->affected_rows);

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query ($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query ($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = maxdb_prepare($link, "INSERT INTO temp.mycity VALUES (?, ?, ?)");
maxdb_stmt_bind_param($stmt, 'sss', $zip, $name, $state);

$zip = '11111';
$name = 'Georgetown';
$state = 'NY';

/* execute prepared statement */
maxdb_stmt_execute($stmt);

printf("%d Row inserted.\n", maxdb_stmt_affected_rows($stmt));

/* close statement and connection */
maxdb_stmt_close($stmt);

/* Clean up table CountryLanguage */
maxdb_query($link, "DELETE FROM temp.mycity WHERE name='Georgetown'");
printf("%d Row deleted.\n", maxdb_affected_rows($link));

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

1 Row inserted.
1 Row deleted.

Пример #3 Процедурный стиль (SELECT INTO)

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "SELECT price INTO ? FROM hotel.room where hno = ? and type = ?");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

$hno = "50";
$rtype = "suite";

maxdb_stmt_bind_param($stmt, 'dss', $price, $hno, $rtype);
maxdb_stmt_execute($stmt);

printf ("%f\n", $price);

maxdb_stmt_close ($stmt);
?>

Результатом выполнения данного примера будет что-то подобное:

21.600000

Пример #4 Процедурный стиль (DB procedure)

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_report (MAXDB_REPORT_OFF);
maxdb_query($link,"DROP DBPROC test_proc");
maxdb_report (MAXDB_REPORT_ERROR);

$query = "create dbproc test_proc (INOUT e_text char(72)) AS select * from SYSDBA.DUAL; fetch into :e_text;";

maxdb_query($link, $query);

/* Performing SQL query */
$stmt = maxdb_prepare ($link, "CALL test_proc (?)");
if (!$stmt) {
  printf ("Prepare failed: %s\n", maxdb_error($link));
}

maxdb_stmt_bind_param($stmt, 's', $result);
maxdb_stmt_execute($stmt);

printf ("%s\n", $result);

maxdb_stmt_close ($stmt);
?>

Результатом выполнения данного примера будет что-то подобное:

a

Пример #5 Объектно-ориентированный стиль (extended syntax)

<?php
$maxdb = new maxdb('localhost', 'MONA', 'RED', 'DEMODB');

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query ("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query ("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$stmt = $maxdb->prepare("INSERT INTO temp.mycity VALUES (?, ?, ?)");

$arr = array();

$stmt->bind_param('iss', $arr);

$arr[0] = 11111;
$arr[1] = 'Georgetown';
$arr[2] = 'NY';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", maxdb_stmt_affected_rows($stmt));

$arr[0] = 22222;
$arr[1] = 'New Orleans';
$arr[2] = 'LA';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

$result = $maxdb->query("SELECT * from temp.mycity WHERE zip = '11111' OR zip = '22222'");
if ($result) {
  while ($row = $result->fetch_row()) {
    printf ("%s %s %s\n", $row[0], $row[1], $row[2]);
  }
}

/* Clean up table CountryLanguage */
$maxdb->query("DELETE FROM temp.mycity WHERE name='Georgetown'");
$maxdb->query("DELETE FROM temp.mycity WHERE name='New Orleans'");
printf("%d Rows deleted.\n", $maxdb->affected_rows);

/* close connection */
$maxdb->close();
?>

Результатом выполнения данного примера будет что-то подобное:

1 Row inserted.
1 Row inserted.
11111 Georgetown NY
22222 New Orleans LA
2 Rows deleted.

Смотрите также

  • maxdb_stmt_bind_result() - Binds variables to a prepared statement for result storage
  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_send_long_data() - Send data in blocks
  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_error() - Returns a string description for last statement error


Binds variables to a prepared statement for result storage

  • « maxdb_stmt_bind_param
  • maxdb_stmt_close_long_data »
  • PHP Manual
  • MaxDB Функции
  • Binds variables to a prepared statement for result storage

maxdb_stmt_bind_result

maxdb_stmt::bind_result

(PECL maxdb >= 1.0)

maxdb_stmt_bind_result -- maxdb_stmt::bind_result — Binds variables to a prepared statement for result storage

Описание

Процедурный стиль

bool maxdb_stmt_bind_result ( resource $stmt , mixed &$var1 [, mixed &$... ] )

Объектно-ориентированный стиль

bool maxdb_stmt::bind_result ( mixed &$var1 [, mixed &$... ] )

maxdb_stmt_bind_result() is used to associate (bind) columns in the result set to variables. When maxdb_stmt_fetch() is called to fetch data, the MaxDB client/server protocol places the data for the bound columns into the specified variables var1, ....

Замечание:

Note that all columns must be bound prior to calling maxdb_stmt_fetch(). Depending on column types bound variables can silently change to the corresponding PHP type.

A column can be bound or rebound at any time, even after a result set has been partially retrieved. The new binding takes effect the next time maxdb_stmt_fetch() is called.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* prepare statement */
if ($stmt = $maxdb->prepare("SELECT zip, name FROM hotel.city ORDER BY name")) {
   $stmt->execute();

   /* bind variables to prepared statement */
   $stmt->bind_result($col1, $col2);

   /* fetch values */
   while ($stmt->fetch()) {
       printf("%s %s\n", $col1, $col2);
   }

   /* close statement */
   $stmt->close();
}
/* close connection */
$maxdb->close();

?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (!$link) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* prepare statement */
if ($stmt = maxdb_prepare($link, "SELECT zip, name FROM hotel.city ORDER BY name")) {
   maxdb_stmt_execute($stmt);

   /* bind variables to prepared statement */
   maxdb_stmt_bind_result($stmt, $col1, $col2);

   /* fetch values */
   while (maxdb_stmt_fetch($stmt)) {
       printf("%s %s\n", $col1, $col2);
   }

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

12203 Albany
60601 Chicago
60615 Chicago
45211 Cincinnati
33575 Clearwater
75243 Dallas
32018 Daytona Beach
33441 Deerfield Beach
48226 Detroit
90029 Hollywood
92714 Irvine
90804 Long Beach
11788 Long Island
90018 Los Angeles
70112 New Orleans
10019 New York
10580 New York
92262 Palm Springs
97213 Portland
60018 Rosemont
95054 Santa Clara
20903 Silver Spring
20005 Washington
20019 Washington
20037 Washington

Смотрите также

  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters
  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_init() - Initializes a statement and returns an resource for use with maxdb_stmt_prepare
  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_error() - Returns a string description for last statement error


Ends a sequence of maxdb_stmt_send_long_data

  • « maxdb_stmt_bind_result
  • maxdb_stmt_close »
  • PHP Manual
  • MaxDB Функции
  • Ends a sequence of maxdb_stmt_send_long_data

maxdb_stmt_close_long_data

maxdb_stmt::close_long_data

(PECL maxdb 1.0)

maxdb_stmt_close_long_data -- maxdb_stmt::close_long_data — Ends a sequence of maxdb_stmt_send_long_data()

Описание

Процедурный стиль

bool maxdb_stmt_close_long_data ( resource $stmt , int $param_nr )

Объектно-ориентированный стиль

bool maxdb_stmt::close_long_data ( void )

This function has to be called after a sequence of maxdb_stmt_send_long_data(), that was started after maxdb_execute().

param_nr indicates which parameter to associate the end of data with. Parameters are numbered beginning with 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters


Closes a prepared statement

  • « maxdb_stmt_close_long_data
  • maxdb_stmt_data_seek »
  • PHP Manual
  • MaxDB Функции
  • Closes a prepared statement

maxdb_stmt_close

maxdb_stmt::close

(PECL maxdb >= 1.0)

maxdb_stmt_close -- maxdb_stmt::close — Closes a prepared statement

Описание

Процедурный стиль

bool maxdb_stmt_close ( resource $stmt )

Объектно-ориентированный стиль

bool maxdb_stmt::close ( void )

Closes a prepared statement. maxdb_stmt_close() also deallocates the statement handle pointed to by stmt. If the current statement has pending or unread results, this function cancels them so that the next query can be executed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution


Seeks to an arbitray row in statement result set

  • « maxdb_stmt_close
  • maxdb_stmt_errno »
  • PHP Manual
  • MaxDB Функции
  • Seeks to an arbitray row in statement result set

maxdb_stmt_data_seek

maxdb_stmt::data_seek

(PECL maxdb >= 1.0)

maxdb_stmt_data_seek -- maxdb_stmt::data_seek — Seeks to an arbitray row in statement result set

Описание

Процедурный стиль

bool maxdb_stmt_data_seek ( resource $statement , int $offset )

Объектно-ориентированный стиль

bool maxdb_stmt::data_seek ( int $offset )

The maxdb_stmt_data_seek() function seeks to an arbitrary result pointer specified by the offset in the statement result set represented by statement. The offset parameter must be between zero and the total number of rows minus one (0..maxdb_stmt_num_rows() - 1).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* execute query */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($name, $code);

   /* store result */
   $stmt->store_result();

   /* seek to row no. 5 */
   $stmt->data_seek(5);

   /* fetch values */
   $stmt->fetch();

   printf ("City: %s  Zip: %s\n", $name, $code);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* bind result variables */
   maxdb_stmt_bind_result($stmt, $name, $code);

   /* store result */
   maxdb_stmt_store_result($stmt);

   /* seek to row no. 5 */
   maxdb_stmt_data_seek($stmt, 5);

   /* fetch values */
   maxdb_stmt_fetch($stmt);

   printf ("City: %s  Zip: %s\n", $name, $code);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

City: Dallas  Zip: 75243

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution


Returns the error code for the most recent statement call

  • « maxdb_stmt_data_seek
  • maxdb_stmt_error »
  • PHP Manual
  • MaxDB Функции
  • Returns the error code for the most recent statement call

maxdb_stmt_errno

maxdb_stmt::errno

(PECL maxdb >= 1.0)

maxdb_stmt_errno -- maxdb_stmt::errno — Returns the error code for the most recent statement call

Описание

Процедурный стиль

int maxdb_stmt_errno ( resource $stmt )

Объектно-ориентированный стиль

int $maxdb_stmt->errno;

For the statement specified by stmt, maxdb_stmt_errno() returns the error code for the most recently invoked statement function that can succeed or fail.

Замечание:

For possible error codes see documentation of SQLDBC: » http://maxdb.sap.com/documentation/.

Возвращаемые значения

An error code value. Zero means no error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* drop table */
   $maxdb->query("DROP TABLE temp.mycity");

   /* execute query */
   $stmt->execute();

   printf("Error: %d.\n", $stmt->errno);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* drop table */
   maxdb_query($link, "DROP TABLE temp.mycity");

   /* execute query */
   maxdb_stmt_execute($stmt);

   printf("Error: %d.\n", maxdb_stmt_errno($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: -4004.

Смотрите также

  • maxdb_stmt_error() - Returns a string description for last statement error
  • maxdb_stmt_sqlstate() - Returns SQLSTATE error from previous statement operation


Returns a string description for last statement error

  • « maxdb_stmt_errno
  • maxdb_stmt_execute »
  • PHP Manual
  • MaxDB Функции
  • Returns a string description for last statement error

maxdb_stmt_error

maxdb_stmt::error

(PECL maxdb >= 1.0)

maxdb_stmt_error -- maxdb_stmt::error — Returns a string description for last statement error

Описание

Процедурный стиль

string maxdb_stmt_error ( resource $stmt )

Объектно-ориентированный стиль

string $maxdb_stmt->error;

For the statement specified by stmt, maxdb_stmt_error() returns a containing the error message for the most recently invoked statement function that can succeed or fail.

Возвращаемые значения

A string that describes the error. An empty string if no error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* drop table */
   $maxdb->query("DROP TABLE temp.mycity");

   /* execute query */
   $stmt->execute();

   printf("Error: %s.\n", $stmt->error);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* drop table */
   maxdb_query($link, "DROP TABLE temp.mycity");

   /* execute query */
   maxdb_stmt_execute($stmt);

   printf("Error: %s.\n", maxdb_stmt_error($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: POS(23) Unknown table name:MYCITY.

Смотрите также

  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_sqlstate() - Returns SQLSTATE error from previous statement operation


Executes a prepared Query

  • « maxdb_stmt_error
  • maxdb_stmt_fetch »
  • PHP Manual
  • MaxDB Функции
  • Executes a prepared Query

maxdb_stmt_execute

maxdb_stmt::execute

(PECL maxdb >= 1.0)

maxdb_stmt_execute -- maxdb_stmt::execute — Executes a prepared Query

Описание

Процедурный стиль

bool maxdb_stmt_execute ( resource $stmt )

Объектно-ориентированный стиль

bool maxdb_stmt::execute ( void )

The maxdb_stmt_execute() function executes a query that has been previously prepared using the maxdb_prepare() function represented by the stmt resource. When executed any parameter markers which exist will automatically be replaced with the appropiate data.

If the statement is UPDATE, DELETE, or INSERT, the total number of affected rows can be determined by using the maxdb_stmt_affected_rows() function. Likewise, if the query yields a result set the maxdb_fetch() function is used.

Замечание:

When using maxdb_stmt_execute(), the maxdb_fetch() function must be used to fetch the data prior to preforming any additional queries.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* Prepare an insert statement */
$query = "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt = $maxdb->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = '11111';
$val2 = 'Georgetown';
$val3 = 'NY';

/* Execute the statement */
$stmt->execute();

$val1 = '22222';
$val2 = 'Hubbatown';
$val3 = 'CA';

/* Execute the statement */
$stmt->execute();

/* close statement */
$stmt->close();

/* retrieve all rows from myCity */
$query = "SELECT zip, name, state FROM temp.mycity";
if ($result = $maxdb->query($query)) {
   while ($row = $result->fetch_row()) {
       printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
   }
   /* free result set */
   $result->close();
}

/* remove table */
$maxdb->query("DROP TABLE temp.mycity");

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

/* Prepare an insert statement */
$query = "INSERT INTO temp.mycity (zip, name, state) VALUES (?,?,?)";
$stmt = maxdb_prepare($link, $query);

maxdb_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = '11111';
$val2 = 'Georgetown';
$val3 = 'NY';

/* Execute the statement */
maxdb_stmt_execute($stmt);

$val1 = '22222';
$val2 = 'Hubbatown';
$val3 = 'CA';

/* Execute the statement */
maxdb_stmt_execute($stmt);

/* close statement */
maxdb_stmt_close($stmt);

/* retrieve all rows from myCity */
$query = "SELECT zip, name, state FROM temp.mycity";
if ($result = maxdb_query($link, $query)) {
   while ($row = maxdb_fetch_row($result)) {
       printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
   }
   /* free result set */
   maxdb_free_result($result);
}

/* remove table */
maxdb_query($link, "DROP TABLE temp.mycity");

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

11111 (Georgetown,NY)
22222 (Hubbatown,CA)

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters


Fetch results from a prepared statement into the bound variables

  • « maxdb_stmt_execute
  • maxdb_stmt_free_result »
  • PHP Manual
  • MaxDB Функции
  • Fetch results from a prepared statement into the bound variables

maxdb_stmt_fetch

maxdb_stmt::fetch

(PECL maxdb >= 1.0)

maxdb_stmt_fetch -- maxdb_stmt::fetch — Fetch results from a prepared statement into the bound variables

Описание

Процедурный стиль

bool maxdb_stmt_fetch ( resource $stmt )

Объектно-ориентированный стиль

bool maxdb_stmt::fetch ( void )

maxdb_stmt_fetch() returns row data using the variables bound by maxdb_stmt_bind_result().

Замечание:

Note that all columns must be bound by the application before calling maxdb_stmt_fetch().

Возвращаемые значения

Return values
Value | Description
TRUE | Success. Data has been fetched
FALSE | Error occurred
NULL | No more rows/data exists

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER by name";

if ($stmt = $maxdb->prepare($query)) {

   /* execute statement */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($name, $code);

   /* fetch values */
   while ($stmt->fetch()) {
       printf ("%s (%s)\n", $name, $code);
   }

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER by name";

if ($stmt = maxdb_prepare($link, $query)) {

   /* execute statement */
   maxdb_stmt_execute($stmt);

   /* bind result variables */
   maxdb_stmt_bind_result($stmt, $name, $code);

   /* fetch values */
   while (maxdb_stmt_fetch($stmt)) {
       printf ("%s (%s)\n", $name, $code);
   }

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

12203 (Albany)
60601 (Chicago)
60615 (Chicago)
45211 (Cincinnati)
33575 (Clearwater)
75243 (Dallas)
32018 (Daytona Beach)
33441 (Deerfield Beach)
48226 (Detroit)
90029 (Hollywood)
92714 (Irvine)
90804 (Long Beach)
11788 (Long Island)
90018 (Los Angeles)
70112 (New Orleans)
10019 (New York)
10580 (New York)
92262 (Palm Springs)
97213 (Portland)
60018 (Rosemont)
95054 (Santa Clara)
20903 (Silver Spring)
20005 (Washington)
20019 (Washington)
20037 (Washington)

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_error() - Returns a string description for last statement error
  • maxdb_stmt_bind_result() - Binds variables to a prepared statement for result storage


Frees stored result memory for the given statement handle

  • « maxdb_stmt_fetch
  • maxdb_stmt_init »
  • PHP Manual
  • MaxDB Функции
  • Frees stored result memory for the given statement handle

maxdb_stmt_free_result

maxdb_stmt::free_result

(PECL maxdb >= 1.0)

maxdb_stmt_free_result -- maxdb_stmt::free_result — Frees stored result memory for the given statement handle

Описание

Процедурный стиль

void maxdb_stmt_free_result ( resource $stmt )

Объектно-ориентированный стиль

void maxdb_stmt::free_result ( void )

The maxdb_stmt_free_result() function frees the result memory associated with the statement represented by the stmt parameter, which was allocated by maxdb_stmt_store_result().

Возвращаемые значения

This function doesn't return any value.

Смотрите также

  • maxdb_stmt_store_result() - Transfers a result set from a prepared statement


Initializes a statement and returns an resource for use with maxdb_stmt_prepare

  • « maxdb_stmt_free_result
  • maxdb_stmt_num_rows »
  • PHP Manual
  • MaxDB Функции
  • Initializes a statement and returns an resource for use with maxdb_stmt_prepare

maxdb_stmt_init

maxdb::stmt_init

(PECL maxdb >= 1.0)

maxdb_stmt_init -- maxdb::stmt_init — Initializes a statement and returns an resource for use with maxdb_stmt_prepare

Описание

Процедурный стиль

resource maxdb_stmt_init ( resource $link )

Объектно-ориентированный стиль

object maxdb::stmt_init ( void )

Allocates and initializes a statement resource suitable for maxdb_stmt_prepare().

Замечание:

Any subsequent calls to any maxdb_stmt function will fail until maxdb_stmt_prepare() was called.

Возвращаемые значения

Returns an resource.

Смотрите также

  • maxdb_stmt_prepare() - Prepare an SQL statement for execution


Return the number of rows in statements result set

  • « maxdb_stmt_init
  • maxdb_stmt_param_count »
  • PHP Manual
  • MaxDB Функции
  • Return the number of rows in statements result set

maxdb_stmt_num_rows

maxdb_stmt::num_rows

(PECL maxdb >= 1.0)

maxdb_stmt_num_rows -- maxdb_stmt::num_rows — Return the number of rows in statements result set

Описание

Процедурный стиль

int maxdb_stmt_num_rows ( resource $stmt )

Объектно-ориентированный стиль

int $maxdb_stmt->num_rows;

Returns the number of rows in the result set.

Возвращаемые значения

An integer representing the number of rows in result set.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* execute query */
   $stmt->execute();

   /* store result */
   $stmt->store_result();

   printf("Number of rows: %d.\n", $stmt->num_rows);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT zip, name FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* store result */
   maxdb_stmt_store_result($stmt);

   printf("Number of rows: %d.\n", maxdb_stmt_num_rows($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Number of rows: 25.

Смотрите также

  • maxdb_stmt_affected_rows() - Returns the total number of rows changed, deleted, or inserted by the last executed statement
  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_store_result() - Transfers a result set from a prepared statement


Returns the number of parameter for the given statement

  • « maxdb_stmt_num_rows
  • maxdb_stmt_prepare »
  • PHP Manual
  • MaxDB Функции
  • Returns the number of parameter for the given statement

maxdb_stmt_param_count

maxdb_stmt::param_count

(PECL maxdb >= 1.0)

maxdb_stmt_param_count -- maxdb_stmt::param_count — Returns the number of parameter for the given statement

Описание

Процедурный стиль

int maxdb_stmt_param_count ( resource $stmt )

Объектно-ориентированный стиль

int $maxdb_stmt->param_count;

maxdb_stmt_param_count() returns the number of parameter markers present in the prepared statement.

Возвращаемые значения

returns an integer representing the number of parameters.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($stmt = $maxdb->prepare("SELECT name FROM hotel.city WHERE name=? OR state=?")) {

   $marker = $stmt->param_count;
   printf("Statement has %d markers.\n", $marker);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

if ($stmt = maxdb_prepare($link, "SELECT name FROM hotel.city WHERE name=? OR state=?")) {

   $marker = maxdb_stmt_param_count($stmt);
   printf("Statement has %d markers.\n", $marker);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Statement has 2 markers.

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution


Prepare an SQL statement for execution

  • « maxdb_stmt_param_count
  • maxdb_stmt_reset »
  • PHP Manual
  • MaxDB Функции
  • Prepare an SQL statement for execution

maxdb_stmt_prepare

maxdb_stmt::prepare

(PECL maxdb >= 1.0)

maxdb_stmt_prepare -- maxdb_stmt::prepare — Prepare an SQL statement for execution

Описание

Процедурный стиль

bool maxdb_stmt_prepare ( resource $stmt , string $query )

Объектно-ориентированный стиль

mixed maxdb_stmt::prepare ( string $query )

maxdb_stmt_prepare() prepares the SQL query pointed to by the null-terminated string query. The statement resource has to be allocated by maxdb_stmt_init(). The query must consist of a single SQL statement.

Замечание:

You should not add a terminating semicolon or \g to the statement.

The parameter query can include one or more parameter markers in the SQL statement by embedding question mark (?) characters at the appropriate positions.

Замечание:

The markers are legal only in certain places in SQL statements. For example, they are allowed in the VALUES() list of an INSERT statement (to specify column values for a row), or in a comparison with a column in a WHERE clause to specify a comparison value.

However, they are not allowed for identifiers (such as table or column names), in the select list that names the columns to be returned by a SELECT statement), or to specify both operands of a binary operator such as the = equal sign. The latter restriction is necessary because it would be impossible to determine the parameter type. In general, parameters are legal only in Data Manipulation Languange (DML) statements, and not in Data Defination Language (DDL) statements.

The parameter markers must be bound to application variables using maxdb_stmt_bind_param() and/or maxdb_stmt_bind_result() before executing the statement or fetching rows.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Portland";

/* create a prepared statement */
$stmt =  $maxdb->stmt_init();
if ($stmt->prepare("SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   $stmt->bind_param("s", $city);

   /* execute query */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($district);

   /* fetch value */
   $stmt->fetch();

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$city = "Portland";

/* create a prepared statement */
$stmt = maxdb_stmt_init($link);
if (maxdb_stmt_prepare($stmt, "SELECT state FROM hotel.city WHERE name=?")) {

   /* bind parameters for markers */
   maxdb_stmt_bind_param($stmt, "s", $city);

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* bind result variables */
   maxdb_stmt_bind_result($stmt, $district);

   /* fetch value */
   maxdb_stmt_fetch($stmt);

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Portland is in district OR

Смотрите также

  • maxdb_stmt_init() - Initializes a statement and returns an resource for use with maxdb_stmt_prepare
  • maxdb_stmt_execute() - Executes a prepared Query
  • maxdb_stmt_fetch() - Fetch results from a prepared statement into the bound variables
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters
  • maxdb_stmt_bind_result() - Binds variables to a prepared statement for result storage
  • maxdb_stmt_close() - Closes a prepared statement


Resets a prepared statement

  • « maxdb_stmt_prepare
  • maxdb_stmt_result_metadata »
  • PHP Manual
  • MaxDB Функции
  • Resets a prepared statement

maxdb_stmt_reset

maxdb_stmt::reset

(PECL maxdb >= 1.0)

maxdb_stmt_reset -- maxdb_stmt::reset — Resets a prepared statement

Описание

Процедурный стиль

bool maxdb_stmt_reset ( resource $stmt )

Объектно-ориентированный стиль

bool maxdb_stmt::reset ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns result set metadata from a prepared statement

  • « maxdb_stmt_reset
  • maxdb_stmt_send_long_data »
  • PHP Manual
  • MaxDB Функции
  • Returns result set metadata from a prepared statement

maxdb_stmt_result_metadata

maxdb_stmt::result_metadata

(PECL maxdb >= 1.0)

maxdb_stmt_result_metadata -- maxdb_stmt::result_metadata — Returns result set metadata from a prepared statement

Описание

Процедурный стиль

resource maxdb_stmt_result_metadata ( resource $stmt )

Объектно-ориентированный стиль

resource maxdb_stmt::result_metadata ( void )

If a statement passed to maxdb_prepare() is one that produces a result set, maxdb_stmt_result_metadata() returns the result resource that can be used to process the meta information such as total number of fields and individual field information.

Замечание:

This result set pointer can be passed as an argument to any of the field-based functions that process result set metadata, such as:

  • maxdb_num_fields()

  • maxdb_fetch_field()

  • maxdb_fetch_field_direct()

  • maxdb_fetch_fields()

  • maxdb_field_count()

  • maxdb_field_seek()

  • maxdb_field_tell()

  • maxdb_free_result()

The result set structure should be freed when you are done with it, which you can do by passing it to maxdb_free_result()

Замечание:

The result set returned by maxdb_stmt_result_metadata() contains only metadata. It does not contain any row results. The rows are obtained by using the statement handle with maxdb_fetch().

Возвращаемые значения

maxdb_stmt_result_metadata() returns a result resource or FALSE if an error occurred.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

$maxdb->query("CREATE TABLE temp.friends (id int, name varchar(20))");

$maxdb->query("INSERT INTO temp.friends VALUES (1,'Hartmut')");
$maxdb->query("INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt = $maxdb->prepare("SELECT id, name FROM temp.friends");
$stmt->execute();

/* get resultset for metadata */
$result = $stmt->result_metadata();

/* retrieve field information from metadata result set */
$field = $result->fetch_field();

printf("Fieldname: %s\n", $field->name);

/* close resultset */
$result->close();

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

maxdb_query($link, "CREATE TABLE temp.friends (id int, name varchar(20))");

maxdb_query($link, "INSERT INTO temp.friends VALUES (1,'Hartmut')");
maxdb_query($link, "INSERT INTO temp.friends VALUES (2, 'Ulf')");

$stmt = maxdb_prepare($link, "SELECT id, name FROM temp.friends");
maxdb_stmt_execute($stmt);

/* get resultset for metadata */
$result = maxdb_stmt_result_metadata($stmt);

/* retrieve field information from metadata result set */
$field = maxdb_fetch_field($result);

printf("Fieldname: %s\n", $field->name);

/* close resultset */
maxdb_free_result($result);

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Fieldname: ID

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_free_result() - Frees the memory associated with a result


Send data in blocks

  • « maxdb_stmt_result_metadata
  • maxdb_stmt_sqlstate »
  • PHP Manual
  • MaxDB Функции
  • Send data in blocks

maxdb_stmt_send_long_data

maxdb_stmt::send_long_data

(PECL maxdb 1.0)

maxdb_stmt_send_long_data -- maxdb_stmt::send_long_data — Send data in blocks

Описание

Процедурный стиль

bool maxdb_stmt_send_long_data ( resource $stmt , int $param_nr , string $data )

Объектно-ориентированный стиль

bool maxdb_stmt::stmt_send_long_data ( int $param_nr , string $data )

Allows to send parameter data to the server in pieces (or chunks). This function can be called multiple times to send the parts of a character or binary data value for a column, which must be one of the TEXT or BLOB datatypes.

param_nr indicates which parameter to associate the data with. Parameters are numbered beginning with 0. data is a string containing data to be sent.

Замечание:

For efficiency reasons, this function should be used after calling maxdb_execute(). In this case, the data is not stored on the client side. The end of the sequence must end with a call to maxdb_stmt_close_long_data().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_bind_param() - Binds variables to a prepared statement as parameters


Returns SQLSTATE error from previous statement operation

  • « maxdb_stmt_send_long_data
  • maxdb_stmt_store_result »
  • PHP Manual
  • MaxDB Функции
  • Returns SQLSTATE error from previous statement operation

maxdb_stmt_sqlstate

(PECL maxdb >= 1.0)

maxdb_stmt_sqlstate — Returns SQLSTATE error from previous statement operation

Описание

string maxdb_stmt_sqlstate ( resource $stmt )

Returns a string containing the SQLSTATE error code for the most recently invoked prepared statement function that can succeed or fail. The error code consists of five characters. '00000' means no error. The values are specified by ANSI SQL and ODBC.

Замечание:

Note that not all MaxDB errors are yet mapped to SQLSTATE's. The value HY000 (general error) is used for unmapped errors.

Возвращаемые значения

Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");
$maxdb->query("INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* drop table */
   $maxdb->query("DROP TABLE temp.mycity");

   /* execute query */
   $stmt->execute();

   printf("Error: %s.\n", $stmt->sqlstate);

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");
maxdb_query($link, "INSERT INTO temp.mycity SELECT * FROM hotel.city");

$query = "SELECT name, zip FROM temp.mycity ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* drop table */
   maxdb_query($link, "DROP TABLE temp.mycity");

   /* execute query */
   maxdb_stmt_execute($stmt);

   printf("Error: %s.\n", maxdb_stmt_sqlstate($stmt));

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_stmt_execute(): -4004 POS(23) Unknown table name:MYCITY [42000] <...>
Error: 42000.

Смотрите также

  • maxdb_stmt_errno() - Returns the error code for the most recent statement call
  • maxdb_stmt_error() - Returns a string description for last statement error


Transfers a result set from a prepared statement

  • « maxdb_stmt_sqlstate
  • maxdb_store_result »
  • PHP Manual
  • MaxDB Функции
  • Transfers a result set from a prepared statement

maxdb_stmt_store_result

maxdb_stmt::store_result

(PECL maxdb >= 1.0)

maxdb_stmt_store_result -- maxdb_stmt::store_result — Transfers a result set from a prepared statement

Описание

Процедурный стиль

bool maxdb_stmt_store_result ( resource $stmt )

Объектно-ориентированный стиль

object maxdb_stmt::store_result ( void )

maxdb_stmt_store_result() has no functionally effect and should not be used for retrieving data from MaxDB server.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Open a connection */
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = $maxdb->prepare($query)) {

   /* execute query */
   $stmt->execute();

   /* store result */
   $stmt->store_result();

   printf("Number of rows: %d.\n", $stmt->num_rows);

   /* free result */
   $stmt->free_result();

   /* close statement */
   $stmt->close();
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
/* Open a connection */
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query = "SELECT name, zip FROM hotel.city ORDER BY name";
if ($stmt = maxdb_prepare($link, $query)) {

   /* execute query */
   maxdb_stmt_execute($stmt);

   /* store result */
   maxdb_stmt_store_result($stmt);

   printf("Number of rows: %d.\n", maxdb_stmt_num_rows($stmt));

   /* free result */
   maxdb_stmt_free_result($stmt);

   /* close statement */
   maxdb_stmt_close($stmt);
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Number of rows: 25.

Смотрите также

  • maxdb_prepare() - Prepare an SQL statement for execution
  • maxdb_stmt_result_metadata() - Returns result set metadata from a prepared statement
  • maxdb_fetch() - Псевдоним maxdb_stmt_fetch


Transfers a result set from the last query

  • « maxdb_stmt_store_result
  • maxdb_thread_id »
  • PHP Manual
  • MaxDB Функции
  • Transfers a result set from the last query

maxdb_store_result

maxdb::store_result

(PECL maxdb >= 1.0)

maxdb_store_result -- maxdb::store_result — Transfers a result set from the last query

Описание

Процедурный стиль

resource maxdb_store_result ( resource $link )

Объектно-ориентированный стиль

object maxdb::store_result ( void )

This function has no functionally effect.

Возвращаемые значения

Returns a result resource or FALSE if an error occurred.

Примеры

See maxdb_multi_query().

Смотрите также

  • maxdb_real_query() - Execute an SQL query
  • maxdb_use_result() - Initiate a result set retrieval


Returns the thread ID for the current connection

  • « maxdb_store_result
  • maxdb_thread_safe »
  • PHP Manual
  • MaxDB Функции
  • Returns the thread ID for the current connection

maxdb_thread_id

maxdb::thread_id

(PECL maxdb >= 1.0)

maxdb_thread_id -- maxdb::thread_id — Returns the thread ID for the current connection

Описание

Процедурный стиль

int maxdb_thread_id ( resource $link )

Объектно-ориентированный стиль

int $maxdb->thread_id;

The maxdb_thread_id() function returns the thread ID for the current connection which can then be killed using the maxdb_kill() function. If the connection is lost and you reconnect with maxdb_ping(), the thread ID will be other. Therefore you should get the thread ID only when you need it.

Замечание:

The thread ID is assigned on a connection-by-connection basis. Hence, if the connection is broken and then re-established a new thread ID will be assigned.

Возвращаемые значения

maxdb_thread_id() returns the Thread ID for the current connection.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = $maxdb->thread_id;

/* Kill connection */
$maxdb->kill($thread_id);

/* This should produce an error */
if (!$maxdb->query("CREATE TABLE mycity LIKE hotel.city")) {
   printf("Error: %s\n", $maxdb->error);
   exit;
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

/* determine our thread id */
$thread_id = maxdb_thread_id($link);

/* Kill connection */
maxdb_kill($link, $thread_id);

/* This should produce an error */
if (!maxdb_query($link, "CREATE TABLE mycity LIKE hotel.city")) {
   printf("Error: %s\n", maxdb_error($link));
   exit;
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_query(): -10821 Session not connected <...>
Error: Session not connected

Смотрите также

  • maxdb_kill() - Disconnects from a MaxDB server


Returns whether thread safety is given or not

  • « maxdb_thread_id
  • maxdb_use_result »
  • PHP Manual
  • MaxDB Функции
  • Returns whether thread safety is given or not

maxdb_thread_safe

(PECL maxdb >= 7.6.06.04)

maxdb_thread_safe — Returns whether thread safety is given or not

Описание

bool maxdb_thread_safe ( void )

maxdb_thread_safe() indicates whether the client library is compiled as thread-safe.

Возвращаемые значения

TRUE if the client library is thread-safe, otherwise FALSE.


Initiate a result set retrieval

  • « maxdb_thread_safe
  • maxdb_warning_count »
  • PHP Manual
  • MaxDB Функции
  • Initiate a result set retrieval

maxdb_use_result

maxdb::use_result

(PECL maxdb >= 1.0)

maxdb_use_result -- maxdb::use_result — Initiate a result set retrieval

Описание

Процедурный стиль

resource maxdb_use_result ( resource $link )

Объектно-ориентированный стиль

resource maxdb::use_result ( void )

maxdb_use_result() has no effect.

Возвращаемые значения

Returns result или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query  = "SELECT * FROM DUAL";

/* execute multi query */
if ($maxdb->multi_query($query)) {
   do {
       /* store first result set */
       if ($result = $maxdb->use_result()) {
           while ($row = $result->fetch_row()) {
               printf("%s\n", $row[0]);
           }
           $result->close();
       }
       /* print divider */
       if ($maxdb->more_results()) {
           printf("-----------------\n");
       }
   } while ($maxdb->next_result());
}

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$query  = "SELECT * FROM DUAL";

/* execute multi query */
if (maxdb_multi_query($link, $query)) {
   do {
       /* store first result set */
       if ($result = maxdb_use_result($link)) {
           while ($row = maxdb_fetch_row($result)) {
               printf("%s\n", $row[0]);
           }
           maxdb_free_result($result);
       }
       /* print divider */
       if (maxdb_more_results($link)) {
           printf("-----------------\n");
       }
   } while (maxdb_next_result($link));
}

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

a

Смотрите также

  • maxdb_real_query() - Execute an SQL query
  • maxdb_store_result() - Transfers a result set from the last query


Returns the number of warnings from the last query for the given link

  • « maxdb_use_result
  • Mongo »
  • PHP Manual
  • MaxDB Функции
  • Returns the number of warnings from the last query for the given link

maxdb_warning_count

maxdb::warning_count

(PECL maxdb >= 1.0)

maxdb_warning_count -- maxdb::warning_count — Returns the number of warnings from the last query for the given link

Описание

Процедурный стиль

int maxdb_warning_count ( resource $link )

Объектно-ориентированный стиль

int $maxdb->warning_count;

maxdb_warning_count() returns the number of warnings from the last query in the connection represented by the link parameter.

Возвращаемые значения

Number of warnings or zero if there are no warnings.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$maxdb = new maxdb("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

$maxdb->query("CREATE TABLE temp.mycity LIKE hotel.city");

/* a remarkable city in Wales */
$query = "INSERT INTO temp.mycity (zip, name) VALUES('11111',
       'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$maxdb->query($query);

printf ("Number of warning: %d\n", $maxdb->warning_count);

/* close connection */
$maxdb->close();
?>

Пример #2 Процедурный стиль

<?php
$link = maxdb_connect("localhost", "MONA", "RED", "DEMODB");

/* check connection */
if (maxdb_connect_errno()) {
   printf("Connect failed: %s\n", maxdb_connect_error());
   exit();
}

maxdb_query($link, "CREATE TABLE temp.mycity LIKE hotel.city");

/* a remarkable long city name in Wales */
$query = "INSERT INTO temp.mycity (zip, name) VALUES('11111',
       'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

maxdb_query($link, $query);

printf ("Number of warning: %d\n", maxdb_warning_count($link));

/* close connection */
maxdb_close($link);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: maxdb_query(): -8004 POS(62) Constant must be compatible with column type and length <...>
Number of warning: 0

Смотрите также

  • maxdb_errno() - Returns the error code for the most recent function call
  • maxdb_error() - Returns a string description of the last error
  • maxdb_sqlstate() - Returns the SQLSTATE error from previous MaxDB operation


Драйвер MongoDB (наследие)

  • Установка и настройка
    • Требования
    • Установка
    • Опции php.ini
  • Предопределенные константы
  • Manual
    • Tutorial
    • Read Preferences
    • Write Concerns
    • SQL to Mongo Mapping Chart
    • Connecting
    • Stream Context Options
    • Writes
    • Querying
    • Updates
    • Security
    • Troubleshooting
    • Running the Driver's Tests
  • Базовые классы
    • MongoClient — Класс MongoClient
    • MongoDB — The MongoDB class
    • MongoCollection — The MongoCollection class
    • MongoCursor — The MongoCursor class
    • MongoCursorInterface — The MongoCursorInterface interface
    • MongoCommandCursor — The MongoCommandCursor class
  • Types
    • MongoId — Класс MongoId
    • MongoCode — The MongoCode class
    • MongoDate — The MongoDate class
    • MongoRegex — The MongoRegex class
    • MongoBinData — Класс MongoBinData
    • MongoInt32 — The MongoInt32 class
    • MongoInt64 — The MongoInt64 class
    • MongoDBRef — Класс MongoDBRef
    • MongoMinKey — The MongoMinKey class
    • MongoMaxKey — The MongoMaxKey class
    • MongoTimestamp — The MongoTimestamp class
  • Классы GridFS
    • MongoGridFS — The MongoGridFS class
    • MongoGridFSFile — The MongoGridFSFile class
    • MongoGridFSCursor — The MongoGridFSCursor class
  • Batch Classes
    • MongoWriteBatch — The MongoWriteBatch class
    • MongoInsertBatch — The MongoInsertBatch class
    • MongoUpdateBatch — The MongoUpdateBatch class
    • MongoDeleteBatch — The MongoDeleteBatch class
  • Дополнительно
    • MongoLog — The MongoLog class
    • MongoPool — The MongoPool class
    • Mongo — Класс Mongo [устарел]
  • Mongo Функции
    • bson_decode — Преобразовывает объект BSON в массив PHP
    • bson_encode — Преобразовывет переменную PHP в строку BSON
  • Exceptions
    • MongoException — The MongoException class
    • MongoResultException — The MongoResultException class
    • MongoCursorException — The MongoCursorException class
    • MongoCursorTimeoutException — The MongoCursorTimeoutException class
    • MongoConnectionException — The MongoConnectionException class
    • MongoGridFSException — The MongoGridFSException class
    • MongoDuplicateKeyException — The MongoDuplicateKeyException class
    • MongoProtocolException — The MongoProtocolException class
    • MongoExecutionTimeoutException — The MongoExecutionTimeoutException class
    • MongoWriteConcernException — The MongoWriteConcernException class
  • Список изменений


Установка и настройка

Содержание

  • Требования
  • Установка
  • Опции php.ini
Внимание

Это расширение объявлено устаревшим. Вместо него используйте расширение MongoDB.


Установка

Внимание

Это расширение объявлено устаревшим. Вместо него используйте расширение MongoDB.

The MongoDB PHP driver should work on nearly any system: Windows, Mac OS X, Unix, and Linux; little- and big-endian machines; 32- and 64-bit machines; PHP 5.3 through 5.6 (versions prior to 1.6 also support PHP 5.2).

Это расширение » PECL не поставляется вместе с PHP.

  • Manual Installation
  • Installing on *NIX
  • Installing on Windows
  • OS X
  • Gentoo
  • Red Hat
  • Third-Party Installation Instructions

Manual Installation

For driver developers and people interested in the latest bugfixes, you can compile the driver from the latest source code on » Github. Go to Github and click the "download" button. Then run:

$ tar zxvf mongodb-mongodb-php-driver-<commit_id>.tar.gz
$ cd mongodb-mongodb-php-driver-<commit_id>
$ phpize
$ ./configure
$ make all
$ sudo make install

Make the following changes to php.ini:

  • Make sure the extension_dir variable is pointing to the directory containing mongo.so. The build will display where it is installing the PHP driver with output that looks something like:

    Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/mongo.so'
    Make sure that it is the same as the PHP extension directory by running:
    $ 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
    If it's not, change the extension_dir in php.ini or move mongo.so.

  • To load the extension on PHP startup, add a line:

    extension=mongo.so

Installing on *NIX

Run:

$ sudo pecl install mongo

If you are using CentOS or Redhat, you may wish to install from an » RPM.

Add the following line to your php.ini file:

extension=mongo.so

If pecl runs out of memory while installing, make sure memory_limit in php.ini is set to at least 128MB.

Installing on Windows

Precompiled binaries for each release are available from » PECL for a variety of combinations of versions, thread safety, and VC libraries. Unzip the archive and put php_mongo.dll in your PHP extension directory ("ext" by default).

Add the following line to your php.ini file:

extension=php_mongo.dll

Замечание: Additional DLL dependencies for Windows Users

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: libsasl.dll

OS X

In most cases installing from pecl is the easiest way:

$ sudo pecl install mongo

If you are using » Homebrew, the PHP tap includes formulae for the driver. For example, you might install the driver for PHP 5.6 using the following command:

$ brew install php56-mongo

If you are using » XAMPP, note that it has its own pecl binary and php.ini configuration. You should be able to install the driver with the following command:

$ sudo /Applications/XAMPP/xamppfiles/bin/pecl install mongo

Замечание: Xcode dependency for compiling on OS X

Compiling the driver on OS X will require Xcode developer tools, which may be installed with xcode-select --install. If that command is not available, you may first need to install the » Command Line Tools package.

Gentoo

Gentoo has a package for the PHP PECL driver called dev-php/pecl-mongo, which can be installed with:

$ sudo emerge -va dev-php/pecl-mongo

If you use PECL, you may get an error that libtool is the wrong version. Compiling from source you'll need to run aclocal and autoconf.

$ phpize
$ aclocal
$ autoconf
$ ./configure
$ make
$ sudo make install

Red Hat

This includes Fedora and CentOS.

The default Apache settings on these systems do not let requests make network connections, meaning that the driver will get "Permission denied" errors when it tries to connect to the database. If you run into this, try running:

$ /usr/sbin/setsebool -P httpd_can_network_connect 1
Then restart Apache. (This issue has also occurred with SELinux.)

Third-Party Installation Instructions

A number of people have created excellent tutorials on installing the PHP driver.

  • » (Re)installing PHP on Mac OS X

    This article by Justin Hileman details the process of installing PHP and additional extensions with Homebrew on OS X. This complements the earlier instructions on this page for installing the driver with Homebrew.

  • » PHP 5.3.1 with Xdebug, MongoDB and Lithium on Ubuntu 9.10 / Apache 2.2

    This screencast by Jon Adams demonstrates how to quickly get up and running with PHP 5.3.1, Xdebug, and MongoDB on Ubuntu 9.10 with Apache.


Опции php.ini

Поведение этих функций зависит от установок в php.ini.

Опции настройки Mongo
Имя | По умолчанию | Меняемо | Список изменений
mongo.allow_empty_keys | 0 | PHP_INI_ALL |
mongo.allow_persistent | 1 | PHP_INI_ALL | Удалено в 1.2.0
mongo.chunk_size | 262144 | PHP_INI_ALL |
mongo.cmd | "$" | PHP_INI_ALL |
mongo.default_host | "localhost" | PHP_INI_ALL |
mongo.default_port | 27017 | PHP_INI_ALL |
mongo.is_master_interval | 15 | PHP_INI_ALL | Добавлено в версии 1.2.10, до 1.3.0, значение по умолчанию 60.
mongo.long_as_object | 0 | PHP_INI_ALL |
mongo.native_long | 1 | PHP_INI_ALL | До версии 1.5.0, значение по умолчанию 0.
mongo.ping_interval | 5 | PHP_INI_ALL | Добавлено в версии 1.2.10
mongo.utf8 | 1 | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mongo.allow_empty_keys int

Добавлено в версии 1.0.11.

Разрешить использование пустых строк ("") в качестве ключевых имен. По умолчанию драйвер будет бросать исключение при попытке установки пустой строки в качестве ключа в базе данных. Это очень легко допустить используя двойные кавычки с $-оператором, так что рекомендуется оставить этот параметр по умолчанию. Однако, если вам нужно хранить пустые ключи, вы можете включить эту опцию, чтобы драйвер позволил вам передать пустые строки в базу данных.

mongo.allow_persistent int

Разрешены ли постоянные соединения. (Удалено в 1.2.0 - теперь все соединения постоянны)

mongo.chunk_size int

Количество байт в фрагменте. Используется для разделения файлов GridFS. Это число должно быть как минимум на 100 байт меньше четырех мегабайт (максимум: 4194204 байт), но рекомендуется не использовать максимальное значение.

mongo.cmd string

Символ, который будет использоваться в модификаторах и сравнениях вместо $.

Так как легко можно забыть экранировать "$", вы можете выбрать свой собственный символ для экранирования. Выбирать имеет смысл чимвол, который не встречается в именах ваших ключей, например ":".

mongo.cmd = ":"

Теперь произведем сравнение:

<?php

$query = array( "i" => array( ":gt" => 20, ":lte" => 30 ) );

?>

Вы так же можете изменить этот символ используя ini_set("mongo.cmd", ":"). Вы так же можете использовать одинарные кавычки или \$.

mongo.default_host string

Имя хоста по умолчанию. Оно используется, если небыло задано в конструкторе.

mongo.default_port string

Порт, который будет использоваться для соединения с базуой данных, если он небыл указан в конструкторе. По умолчанию установлено как 27017.

mongo.is_master_interval int

Добавлено в версии 1.2.10.

Для соединения с репликой: Минимальный интервал, с которым драйвер будет посылать запросы "isMaster" на сервер MongoDB. Чем ниже будет эта величина, тем чаще будут отправляться такие запросы, но и тем быстрее драйвер будет обнаруживать изменения в топологии репликации.

mongo.long_as_object int

Возвращает BSON_LONG как экземпляр MongoInt64, а не как примитивный тип.

mongo.native-long int

Значение по умолчанию для этой опции будет изменен на TRUE в 1.5.0, так что обязательно установите эту опцию в значение, которое вы хотите (вероятно TRUE), чтобы работа драйвера внезапно не изменилась при обновлении.

На 64-битных платформах, опция mongo.native_long позволяет хранить 64-битные целые числа в MongoDB. Если данная опция не установлена, храниться будут только 32-битные числа. Если опция включена, тип данных в MongoDB будет BSON LONG, а не BSON INT, как в случае выключения данной опции.

Эта опция также меняет поведение при чтении полей BSON LONG из MohdoDB. Если mongo.native_long не будет разрешена, драйвер преобразует каждое BSON LONG в PHP тип float, что может привести к потере точности.

На 32-битных платформах, опция mongo.native_long не влияет на хранение целочисленных значений в MongoDB: целые будут храниться как BSON INT как и раньше. Однако, если этот параметр будет включен, при попытке прочитать BSON LONG из базы, будет вызвано исключение MongoCursorException, предупреждая о возможной потере точности.

Для 32-битных систем рекомендуется использовать эту настройку совместно с mongo.long_as_object.

mongo.ping_interval int

Добавлено в версии 1.2.10.

Для соединения с репликой: Минимальный интервал, с которым драйвер будет посылать запросы "ping" на сервер MongoDB. Чем ниже будет эта величина, тем чаще будут отправляться такие запросы, но и тем быстрее драйвер будет обнаруживать недоступность реплики.

mongo.utf8 int

Включает вызов исключений при получении не-UTF8 строки. До версии 1.0.4, PHP драйвер проигнорирует не UTF8 строки, даже если вы отключили работу с ними в Mongo. По состоянию на 1.0.4, драйвер выдает MongoException . Для облегчения перехода на новую версию драйвера приложений которые вставляют не UTF8 строки, в таблицы вы можете отключить эту опцию, чтобы съэмитировать работу предыдущей версии, без вызова исключений. Эта опция пропадет начиная с версии 1.1.0 и исключения будут всегда вызываться при попытки вставить не-UTF8 строки.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MONGO_STREAMS (integer)
Alias of MONGO_SUPPORTS_STREAMS
MONGO_SUPPORTS_STREAMS (integer)
1 when compiled against PHP Streams (default since 1.4.0).
MONGO_SUPPORTS_SSL (integer)
1 when OpenSSL is enabled and available.
MONGO_SUPPORTS_AUTH_MECHANISM_MONGODB_CR (integer)
1 when MongoDB-Challenge/Reponse authentication is compiled in.
MONGO_SUPPORTS_AUTH_MECHANISM_MONGODB_X509 (integer)
1 when x.509 authentication is compiled in.
MONGO_SUPPORTS_AUTH_MECHANISM_GSSAPI (integer)
1 when GSSAPI authentication is compiled in.
MONGO_SUPPORTS_AUTH_MECHANISM_PLAIN (integer)
1 when PLAIN authentication is compiled in.
MONGO_STREAM_NOTIFY_TYPE_IO_INIT (integer)
MONGO_STREAM_NOTIFY_TYPE_LOG (integer)
MONGO_STREAM_NOTIFY_IO_READ (integer)
MONGO_STREAM_NOTIFY_IO_WRITE (integer)
MONGO_STREAM_NOTIFY_IO_PROGRESS (integer)
MONGO_STREAM_NOTIFY_IO_COMPLETED (integer)
MONGO_STREAM_NOTIFY_LOG_INSERT (integer)
MONGO_STREAM_NOTIFY_LOG_QUERY (integer)
MONGO_STREAM_NOTIFY_LOG_UPDATE (integer)
MONGO_STREAM_NOTIFY_LOG_DELETE (integer)
MONGO_STREAM_NOTIFY_LOG_GETMORE (integer)
MONGO_STREAM_NOTIFY_LOG_KILLCURSOR (integer)
MONGO_STREAM_NOTIFY_LOG_BATCHINSERT (integer)
MONGO_STREAM_NOTIFY_LOG_RESPONSE_HEADER (integer)
MONGO_STREAM_NOTIFY_LOG_WRITE_REPLY (integer)
MONGO_STREAM_NOTIFY_LOG_CMD_INSERT (integer)
MONGO_STREAM_NOTIFY_LOG_CMD_UPDATE (integer)
MONGO_STREAM_NOTIFY_LOG_CMD_DELETE (integer)
MONGO_STREAM_NOTIFY_LOG_WRITE_BATCH (integer)


Manual

Содержание

  • Tutorial
  • Read Preferences
  • Write Concerns
  • SQL to Mongo Mapping Chart
  • Connecting
  • Stream Context Options
  • Writes
  • Querying
  • Updates
  • Security
  • Troubleshooting
  • Running the Driver's Tests
Внимание

Это расширение объявлено устаревшим. Вместо него используйте расширение MongoDB.

Это руководство дает представление об использовании MongoDB, но по большей части оно рассказывает об использовании драйвера PHP. Для подробной информации о проектировании схемы, значении терминов и настройки сервера баз данных, читайте » документацию MongoDB.


Tutorial

Содержание

  • Making a Connection
  • Getting a Database
  • Getting A Collection
  • Inserting a Document
  • Finding Documents using MongoCollection::findOne
  • Adding Multiple Documents
  • Counting Documents in A Collection
  • Using a Cursor to Get All of the Documents
  • Setting Criteria for a Query
  • Getting A Set of Documents With a Query
  • Creating An Index
Внимание

Это расширение объявлено устаревшим. Вместо него используйте расширение MongoDB.

This is the official MongoDB driver for PHP.

Here's a quick code sample that connects, inserts documents, queries for documents, iterates through query results, and disconnects from MongoDB. There are more details on each step in the tutorial below.

<?php

// connect
$m = new MongoClient();

// select a database
$db = $m->comedy;

// select a collection (analogous to a relational database's table)
$collection = $db->cartoons;

// add a record
$document = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" );
$collection->insert($document);

// add another record, with a different "shape"
$document = array( "title" => "XKCD", "online" => true );
$collection->insert($document);

// find everything in the collection
$cursor = $collection->find();

// iterate through the results
foreach ($cursor as $document) {
    echo $document["title"] . "\n";
}

?>

Результат выполнения данного примера:

Calvin and Hobbes
XKCD


Making a Connection

To connect to the database server, use one of the following:

<?php
$connection = new MongoClient(); // connects to localhost:27017
$connection = new MongoClient( "mongodb://example.com" ); // connect to a remote host (default port: 27017)
$connection = new MongoClient( "mongodb://example.com:65432" ); // connect to a remote host at a given port
?>

You do not have to explicitly disconnect from the database. The driver uses persistent connections and will re-use already established connections.

See Also

The chapter on connecting covers different types of connections.

The API documentation on the MongoClient class and MongoClient::__construct() give a comprehensive look at all possible options with a number of examples.


Getting a Database

To select a database, use:

<?php
$connection = new MongoClient();
$db = $connection->dbname;
?>

The database does not need to be created in advance, you can create new databases by selecting them.

Be careful of typos! You can inadvertently create a new database, which can cause confusing errors (here name is misspelled as anme in the second selection:

<?php
$connection = new MongoClient();

$db = $connection->mybiglongdbname;
// do some stuff

$db = $connection->mybiglongdbanme;
// now connected to a different database!
?>

See Also

The API documentation on the MongoDB class contains more information about database objects.


Getting A Collection

Getting a collection has the same syntax as getting a database:

<?php
$connection = new MongoClient();
$db = $connection->baz;

// select a collection:
$collection = $db->foobar;

// or, directly selecting a database and collection:
$collection = $connection->baz->foobar;
?>

A collection is analogous to a table (if you are familiar with relational databases).

See Also

The API documentation on the MongoCollection class contains more information about collection objects.


Inserting a Document

Associative arrays are the basic object that can be saved to a collection in the database. A somewhat random "document" might be:

<?php
$doc = array(
    "name" => "MongoDB",
    "type" => "database",
    "count" => 1,
    "info" => (object)array( "x" => 203, "y" => 102),
    "versions" => array("0.9.7", "0.9.8", "0.9.9")
);
?>

Note that you can have nested arrays and objects. The driver will always store an associative array as an object in the database. A numerically indexed array is stored as an array in case the keys start at 0 and are not interrupted, and as an object if the array keys don't start at 0 or have gaps (ie: 0, 1, 4, 5).

To insert this document, use MongoCollection::insert():

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$collection->insert( $doc );
?>

See Also

The API documentation on MongoCollection::insert() contains more information about inserting data.


Finding Documents using MongoCollection::findOne

  • « Inserting a Document
  • Adding Multiple Documents »
  • PHP Manual
  • Tutorial
  • Finding Documents using MongoCollection::findOne

Finding Documents using MongoCollection::findOne()

To show that the document we inserted in the previous step is stored in the database, we can do a simple MongoCollection::findOne() operation to get a single document from the collection. This method is useful when there is only one document matching the query or you are only interested in one result.

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$document = $collection->findOne();
var_dump( $document );
?>

Результат выполнения данного примера:

array(6) {
  ["_id"]=>
  object(MongoId)#8 (1) {
    ["$id"]=>
    string(24) "4e2995576803fab768000000"
  }
  ["name"]=>
  string(7) "MongoDB"
  ["type"]=>
  string(8) "database"
  ["count"]=>
  int(1)
  ["info"]=>
  array(2) {
    ["x"]=>
    int(203)
    ["y"]=>
    int(102)
  }
  ["versions"]=>
  array(3) {
    [0]=>
    string(5) "0.9.7"
    [1]=>
    string(5) "0.9.8"
    [2]=>
    string(5) "0.9.9"
  }
}

Note that there is an _id field that has been added automatically to your document. _id is the "primary key" field. If your document does not specify one, the driver will add one automatically.

If you specify your own _id field, it must be unique to the collection. See the example here:

<?php
$connection = new MongoClient();
$db = $connection->database;

$db->foo->insert(array("_id" => 1));
// this will throw an exception
$db->foo->insert(array("_id" => 1));

// this is fine, as it is a different collection
$db->bar->insert(array("_id" => 1));
?>

By default the driver will ensure the server has acknowledged the write before returning. You can optionally turn this behaviour off by passing array("w" => 0) as the second argument. This means that the driver should not wait for the database to acknowledge the write and would not throw the duplicate _id exception.

See Also

MongoCollection::findOne() for more information about finding data.

MongoId goes into more detail on unique ids.

The writes section covers writes in more depth, and the Write Concerns chapter goes into details of the various Write Concern options.


Adding Multiple Documents

In order to do more interesting things with queries, let's add multiple simple documents to the collection. These documents will just be of the form array( "i" => value ); and we can do this fairly efficiently in a loop:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

for ( $i = 0; $i < 100; $i++ )
{
    $collection->insert( array( 'i' => $i, "field{$i}" => $i * 2 ) );
}
?>

Notice that we can insert arrays with different keys into the same collection. This aspect is what we mean when we say that MongoDB is "schema-free". In the example above each document has an i field, but also a field name in the form of field + $i.


Counting Documents in A Collection

Now that we've inserted 101 documents (the 100 we did in the loop, plus the first one), we can check to see if we have them all using the MongoCollection::count() method.

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

echo $collection->count();
?>
and it should print 101.


Using a Cursor to Get All of the Documents

In order to get all the documents in the collection, we will use MongoCollection::find(). The find() method returns a MongoCursor object which allows us to iterate over the set of documents that matched our query. So to query all of the documents and print them out:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$cursor = $collection->find();
foreach ( $cursor as $id => $value )
{
    echo "$id: ";
    var_dump( $value );
}
?>
and that should print all 101 documents in the collection. $id is the _id field of a document (cast to a string) and $value is the document itself.

See Also

The API documentation on MongoCollection::find() contains more information about finding data.


Setting Criteria for a Query

We can create a query to pass to the MongoCollection::find() method to get a subset of the documents in our collection. For example, if we wanted to find the document for which the value of the "i" field is 71, we would do the following:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( 'i' => 71 );
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}
?>

Результат выполнения данного примера:

array(2) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["i"]=>
  int(71)
  ["_ns"]=>
  "testCollection"
}


Getting A Set of Documents With a Query

We can use the query to get a set of documents from our collection. For example, if we wanted to get all documents where "i" > 50, we could write:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( "i" => array( '$gt' => 50 ) ); //note the single quotes around '$gt'
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}
?>

which should print the documents where "i" > 50. We could also get a range, say 20 < i <= 30:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$query = array( 'i' => array( '$gt' => 20, "\$lte" => 30 ) );
$cursor = $collection->find( $query );

while ( $cursor->hasNext() )
{
    var_dump( $cursor->getNext() );
}
?>

Remember to always escape the $-symbol or use single quotes. Otherwise PHP will interpret it to be the variable $gt.


Creating An Index

MongoDB supports indexes, and they are very easy to add on a collection. To create an index, you specify the field name and direction: ascending (1) or descending (-1). The following creates an ascending index on the "i" field:

<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;

$collection->ensureIndex( array( "i" => 1 ) );  // create index on "i"
$collection->ensureIndex( array( "i" => -1, "j" => 1 ) );  // index on "i" descending, "j" ascending
?>

Indexing is critical for good read performance as your data grows. If you are not familiar with indexing, check out the MongoCollection::ensureIndex() documentation and the core » MongoDB indexing documentation.


Read Preferences

MongoDB 2.2 and version 1.3.0 of the driver add support for » read preferences, which allow control over how queries are directed to mongod instances in a replica set environment. Read preferences may be specified on either a per-connection, per-database, or per-collection basis. Preferences defined at a higher level will be inherited by default (e.g. MongoCollection will inherit read preferences defined on the corresponding MongoDB instance).

Read preferences are specified with a combination of modes and tag sets. Modes determine how mongod instances are prioritized, while » tag sets specify criteria for eligible mongod instances. Mongod instances are only eligible if they are within a 15ms difference in ping time from the nearest mongod instance.

Read Preference Modes

Внимание

All read preference modes except MongoClient::RP_PRIMARY may return stale data as secondaries replicate operations from the primary with some delay. Ensure that your application can tolerate stale data if you choose to use a mode other than MongoClient::RP_PRIMARY.

  • MongoClient::RP_PRIMARY

    All read operations use only the current replica set primary. This is the default. If the primary is unavailable, read operations will produce an exception.

    This mode is incompatible with use of tag sets. Specifying a tag set with MongoClient::RP_PRIMARY will result in an exception.

  • MongoClient::RP_PRIMARY_PREFERRED

    In most situations, operations read from the primary member of the set. However, if the primary is unavailable, as is the case during failover situations, operations read from secondary members.

    When the read preference includes a tag set, the client reads first from the primary, if available, and then from secondaries that match the specified tags. If no secondaries have matching tags, the read operation will produce an exception.

    Внимание

    Version 2.2 of mongos added full support for read preferences. When connecting to older mongos instances, MongoClient::RP_PRIMARY_PREFERRED will send queries to secondaries.

  • MongoClient::RP_SECONDARY

    Operations read only from the secondary members of the set. If no secondaries are available, read operations will produce an exception.

    Most sets have at least one secondary, but there are situations where there may be no available secondary. For example, a set with a primary, a secondary, and an arbiter may not have any secondaries if a member is in recovering state or unavailable.

    When the read preference includes a tag set, the client attempts to find secondary members that match the specified tag set and directs reads to a random secondary from among the nearest group. If no secondaries have matching tags, the read operation will produce an exception.

  • MongoClient::RP_SECONDARY_PREFERRED

    In most situations, operations read from secondary members, but in situations where the set consists of a single primary with no other members, the read operation will use the set's primary.

    When the read preference includes a tag set, the client attempts to find a secondary member that matches the specified tag set and directs reads to a random secondary from among the nearest group. If no secondaries have matching tags, the read operation will produce an exception.

  • MongoClient::RP_NEAREST

    The driver reads from a random member of the set that has a ping time that is less than 15ms slower than the member with the lowest ping time. Reads in the MongoClient::RP_NEAREST mode do not consider the member's type and may read from both primaries and secondaries.

    Set this mode to minimize the effect of network latency on read operations without preference for current or stale data.

    If you specify a tag set, the client attempts to find a member that matches the specified tag set and directs reads to a random node from among the nearest group.

    Замечание:

    All operations read from the nearest member of the replica set that matches the specified read preference mode. The MongoClient::RP_NEAREST mode prefers low latency reads over a member's primary or secondary status.

Tag Sets

» Tag sets allow you to specify criteria so that your application can target read operations to specific members, based on custom parameters. Tag sets make it possible to ensure that read operations target members in a particular data center or target mongod instances designated for a particular class of operations, such as reporting or analytics.

You can specify tag sets with the following read preference modes:

  • MongoClient::RP_PRIMARY_PREFERRED

  • MongoClient::RP_SECONDARY

  • MongoClient::RP_SECONDARY_PREFERRED

  • MongoClient::RP_NEAREST

You cannot specify tag sets with the MongoClient::RP_PRIMARY read preference mode. Tags apply only when selecting a secondary member of a set, except for the when in the nearest mode.

Specifying Read Preferences

Read preferences may be specified in either the connection URI provided to MongoClient::__construct(), which uses a query string syntax, or via setter methods on the core classes, which use an array syntax for tag sets.

When specifying read preference modes in a query string, the tag sets for the readPreferenceTags value should be a comma-delimited sequence of colon-delimited key/value pairs.

Замечание:

Each tag set defined in the query string will use the readPreferenceTags name. Unlike how PHP might handle URL query strings, successive values for readPreferenceTags will not overwrite each other. The driver will collect tag sets in the order they appear in the query string.

Внимание

If the driver cannot find a matching tag set the read will fail! It is your responsibility of providing suitable fallback, such as an empty readPreferenceTags value to fallback to "no tag set preference".

Пример #1 Connection URI read preferences with query string syntax

<?php
// Prefer the nearest server with no tag preference
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));

// Pick the nearest server in the "east" data center
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east,use:reporting';
$uri .= '&readPreferenceTags=dc:west';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));

// Prefer the nearest server in the "east" data center, then a server in the
// "west" data center, and finally fall back to no tag set preference
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$uri .= '&readPreferenceTags=dc:west';
$uri .= '&readPreferenceTags=';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));
?>

Пример #2 Setting read preferences with array syntax for tag sets

<?php

$m = new MongoClient('mongodb://rs1.example.com,rs2.example.com', array(
    'replicaSet' => 'rs',
));

// Prefer the nearest server with no tag preference
$m->setReadPreference(MongoClient::RP_NEAREST, array());

// Pick the nearest server in the "east" data center
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east'),
));

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));

// Prefer the nearest server in the "east" data center, then a server in the
// "west" data center, and finally fall back to no tag set preference
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east'),
    array('dc' => 'west'),
    array(),
));
?>


Write Concerns

MongoDB provides several different ways of selecting how durable a write to the database should be. These ways are called Write Concerns and span everything from completely ignoring all errors, to specifically targetting which servers are required to confirm the write before returning the operation.

When a write (such as with MongoCollection::insert(), MongoCollection::update(), and MongoCollection::remove()) is given a Write Concern option ("w") the driver will send the query to MongoDB and piggy back a getLastError command (GLE) with the Write Concern option at the same time. The server only returns when the Write Concern condition is verified to be fullfilled, or the query times out (controlled with the "wtimeout" option, 10000 milliseconds is the default).

Внимание

Even though a getLastError command times out the data will most likely have been written to the primary server and will be replicated to all the secondaries once they have cought up.

The typical reasons for a timeout to happen is if you specify a Write Concern which requires confirmation from more servers then you currently have available.

When using acknowledged writes and the replica set has failed over, the driver will automatically disconnect from the primary, throw an exception, and attempt to find a new primary on the next operation (your application must decide whether or not to retry the operation on the new primary).

When using unacknowledged writes (w=0) and the replica set has failed over, there will be no way for the driver to know about the change so it will continue and silently fail to write.

The default Write Concern for the MongoClient is 1: acknowledge write operations.

Available Write Concerns
Write Concern | Meaning | Description
w=0 | Unacknowledged | A write will not be followed up with a GLE call, and therefore not checked ("fire and forget")
w=1 | Acknowledged | The write will be acknowledged by the server (the primary on replica set configuration)
w=N | Replica Set Acknowledged | The write will be acknowledged by the primary server, and replicated to N-1 secondaries.
w=majority | Majority Acknowledged | The write will be acknowledged by the majority of the replica set (including the primary). This is a special reserved string.
w=<tag set> | Replica Set Tag Set Acknowledged | The write will be acknowledged by members of the entire tag set
j=true | Journaled | The write will be acknowledged by primary and the journal flushed to disk

Using WriteConcerns

Each of the methods that causes writes (MongoCollection::insert(), MongoCollection::update(), MongoCollection::remove(), and MongoCollection::batchInsert()) allow an optional argument to send a set of options to the MongoDB server. With this option array you can set the WriteConcern as the following example illustrates:

Пример #1 Passing a WriteConcern to a write operation

<?php
// Setting w=0 for insert:
$collection->insert($someDoc, array("w" => 0));

// Setting w=majority for update:
$collection->update($someDoc, $someUpdates, array("w" => "majority"));

// Setting w=5 and j=true for remove:
$collection->update($someDoc, array("w" => 5, "j" => true));

// Setting w="AllDCs" for batchInsert:
$collection->update(array($someDoc1, $someDoc2), array("w" => "AllDCs"));
?>

Besides setting WriteConcerns per operation as an option argument, it is also possible to set a default WriteConcern in different ways.

The first way is through the connection string. The connection string accepts the journal, w, and wTimeoutMS options:

Пример #2 Connection string WriteConcerns

<?php
$m = new MongoClient("mongodb://localhost/?journal=true&w=majority&wTimeoutMS=20000");
?>

Since driver version 1.5 it is also possible to call MongoDB::setWriteConcern() and MongoCollection::setWriteConcern() to set a default WriteConcern for all operations created from that specific MongoDB or MongoCollection object:

Пример #3 MongoDB::setWriteConcern and MongoCollection::setWriteConcern

<?php
$m = new MongoClient("mongodb://localhost/");
$d = $m->demoDb;
$c = $d->demoCollection;

// Set w=3 on the database object with a timeout of 25000ms
$d->setWriteConcern(3, 25000);

// Set w=majority on the collection object without changing the timeout
$c->setWriteConcern("majority");
?>

Unacknowledged Writes

By not requiring the server to acknowledge writes the writes can be performed extremely quickly, but you don't know whether or not they actually succeeded. Writes can fail for a number of reasons: if there are network problems, if a database server goes down, or if the write was simply invalid (e.g., writing to a system collection; or duplicate key errors).

While developing, you should always use acknowledged writes (to protect against inadvertent mistakes, such as syntax errors, invalid operators, duplicate key errors and so on). In production, unacknowledged writes can be used for "unimportant" data. Unimportant data varies on application, but it's generally automatically (instead of user generated) data, such as click tracking or GPS locations, where you can get thousands of records per second.

It is strongly recommended that you do an acknowledged write at the end of series of unacknowledged writes. Doing so will not incur in a too large performance penalty, but still allow you to catch any errors that may have occurred.

Пример #4 Unacknowledged WriteConcern, followed with Acknowledged Write

<?php
$collection->insert($someDoc, array("w" => 0));
$collection->update($criteria, $newObj, array("w" => 0));
$collection->insert($somethingElse, array("w" => 0));
try {
    $collection->remove($something, array("w" => 1));
} catch(MongoCursorException $e) {
    /* Handle the exception.. */
    /* Here we should issue find() queries on the IDs generated for
    $somethingElse and $someDoc to verify they got written to the database and
    attempt to figureout where in the chain something happened. */
}
?>

If the last write throws an exception, you know that there's a problem with your database.

Acknowledged Writes

These type of write operations will make sure that the database has accepted the write operation before returning success. If the write failed, it will throw a MongoCursorException with an explanation of the failure. The MongoClient default behaviour is to acknowledge the write (w=1).

It is possible to specify how many members of an replica set have to acknowledge the write (i.e. have it replicated) before the write is deemed acknowledged and the operation returns.

Пример #5 Acknowledged Writes

<?php
// Force acknowledgement from the primary only
$collection->insert($doc, array("w" => 1));

// Force acknowledgement from the primary, and one other member of the
// replica set
$collection->insert($doc, array("w" => 2));

// Force acknowledgement from the primary, and six other members of the
// replica set (you probably never should do this):
$collection->insert($doc, array("w" => 7));
?>

Keep in mind to select your Write Concern carefully. If you have a replica set with 5 members, and you select Write Concern of 4 you will risk the write blocking forever when one member of the replica set goes down for maintenance or a temporary network outage happens.

Внимание

Passing in a string value for Write Concern has a specific meaning (Replica Set Tag Set Acknowledged). Please be careful of NOT using string values for numbers (i.e. array("w" => "1")) as it will be treated as a tag set name.

Majority Acknowledged Writes

Using the special majority Write Concern option is the recommended way for writes that are required to survive the apocalypse, as it will ensure the majority of your replica set will have the write and will therefore be guaranteed to survive all usual suspect outage scenarios.

Пример #6 Majority Acknowledged Write

<?php
$collection->insert($someDoc, array("w" => "majority"));
?>

Journaled Writes

When connecting to a replica set the default Write Concern is only to have the primary server acknowledge the write. There is however a 100ms window until the write gets journaled and flushed to disk. It is possible to force the write to be journaled before acknowledging the write by setting the j option:

Пример #7 Acknowledged and Journaled Write

Forcing journal flush

<?php
$options = array(
    "w" => 1,
    "j" => true,
);
try {
    $collection->insert($document, $options);
} catch(MongoCursorException $e) {
    /* handle the exception */
}
?>

Смотрите также

  • » MongoDB WriteConcern docs

Список изменений

Версия | Описание
1.3.0 | MongoClient was introduced and defaults to acknowledged writes. The deprecated Mongo defaults to unacknowledged writes.
1.3.0 | The "safe" write option has been deprecated and is not available with the new MongoClient class. Use the "w" option instead.


SQL to Mongo Mapping Chart

This is a PHP-specific version of the » SQL to Mongo mapping chart in the main docs.

SQL Statement | Mongo Query Language Statement
CREATE TABLE USERS (a Number, b Number) | Implicit or use MongoDB::createCollection().
INSERT INTO USERS VALUES(1,1) | $db->users->insert(array("a" => 1, "b" => 1));
SELECT a,b FROM users | $db->users->find(array(), array("a" => 1, "b" => 1));
SELECT * FROM users WHERE age=33 | $db->users->find(array("age" => 33));
SELECT a,b FROM users WHERE age=33 | $db->users->find(array("age" => 33), array("a" => 1, "b" => 1));
SELECT a,b FROM users WHERE age=33 ORDER BY name | $db->users->find(array("age" => 33), array("a" => 1, "b" => 1))->sort(array("name" => 1));
SELECT * FROM users WHERE age>33 | $db->users->find(array("age" => array('$gt' => 33)));
SELECT * FROM users WHERE age<33 | $db->users->find(array("age" => array('$lt' => 33)));
SELECT * FROM users WHERE name LIKE "%Joe%" | $db->users->find(array("name" => new MongoRegex("/Joe/")));
SELECT * FROM users WHERE name LIKE "Joe%" | $db->users->find(array("name" => new MongoRegex("/^Joe/")));
SELECT * FROM users WHERE age>33 AND age<=40 | $db->users->find(array("age" => array('$gt' => 33, '$lte' => 40)));
SELECT * FROM users ORDER BY name DESC | $db->users->find()->sort(array("name" => -1));
CREATE INDEX myindexname ON users(name) | $db->users->ensureIndex(array("name" => 1));
CREATE INDEX myindexname ON users(name,ts DESC) | $db->users->ensureIndex(array("name" => 1, "ts" => -1));
SELECT * FROM users WHERE a=1 and b='q' | $db->users->find(array("a" => 1, "b" => "q"));
SELECT * FROM users LIMIT 20, 10 | $db->users->find()->limit(10)->skip(20);
SELECT * FROM users WHERE a=1 or b=2 | $db->users->find(array('$or' => array(array("a" => 1), array("b" => 2))));
SELECT * FROM users LIMIT 1 | $db->users->find()->limit(1);
EXPLAIN SELECT * FROM users WHERE z=3 | $db->users->find(array("z" => 3))->explain()
SELECT DISTINCT last_name FROM users | $db->command(array("distinct" => "users", "key" => "last_name"));
SELECT COUNT(*y) FROM users | $db->users->count();
SELECT COUNT(*y) FROM users where AGE > 30 | $db->users->find(array("age" => array('$gt' => 30)))->count();
SELECT COUNT(AGE) from users | $db->users->find(array("age" => array('$exists' => true)))->count();
UPDATE users SET a=1 WHERE b='q' | $db->users->update(array("b" => "q"), array('$set' => array("a" => 1)));
UPDATE users SET a=a+2 WHERE b='q' | $db->users->update(array("b" => "q"), array('$inc' => array("a" => 2)));
DELETE FROM users WHERE z="abc" | $db->users->remove(array("z" => "abc"));


Connecting

Содержание

  • Connecting over SSL
  • Authentication
  • Replica Sets
  • Sharding
  • Domain Socket Support
  • Persistent Connections (version 1.3.0+)
  • Connection Pooling (version 1.2.0-1.2.12 *only*)
  • Manually Persistent Connections (version up to 1.1.4 *only*)

Connecting to MongoDB can be as easy as new MongoClient, but there are many additional options and configurations. The documentation for MongoClient::__construct() covers all of the API options, but this page gives some more details and advice for practical use cases.


Connecting over SSL

The driver supports connecting to » MongoDB over SSL and can optionally use SSL Stream Context options to provide more details, such as verifying certificates against specific certificate chain, or authenticate to » MongoDB using X509 certificates.

Пример #1 Connect to MongoDB Instance with SSL Encryption

<?php
$mc = new MongoClient("mongodb://server1", array("ssl" => true));
?>

Пример #2 Connect to MongoDB Instance with SSL Encryption, verifying it is who we think it is

<?php
$SSL_DIR = "/vagrant/certs";
$SSL_FILE = "CA_Root_Certificate.pem";

$ctx = stream_context_create(array(
    "ssl" => array(
        /* Certificate Authority the remote server certificate must be signed by */
        "cafile"            => $SSL_DIR . "/" . $SSL_FILE,

        /* Disable self signed certificates */
        "allow_self_signed" => false,

        /* Verify the peer certificate against our provided Certificate Authority root certificate */
        "verify_peer"       => true, /* Default to false pre PHP 5.6 */

        /* Verify the peer name (e.g. hostname validation) */
        /* Will use the hostname used to connec to the node */
        "verify_peer_name"  => true,

        /* Verify the server certificate has not expired */
        "verify_expiry"     => true, /* Only available in the MongoDB PHP Driver */
    ),
);

$mc = new MongoClient(
    "mongodb://server1",
    array("ssl" => true),
    array("context" => $ctx)
);
?>

Замечание:

The "verify_peer_name" is new in PHP 5.6.0. The MongoDB driver as of 1.6.5 however has backported this feature into the driver itself, so it works with PHP 5.3 and 5.4 too

Пример #3 Connect to MongoDB Instance that Requires Client Certificates

<?php
$SSL_DIR  = "/vagrant/certs";
$SSL_FILE = "CA_Root_Certificate.pem";

$MYCERT   = "/vagrant/certs/ca-signed-client.pem";

$ctx = stream_context_create(array(
    "ssl" => array(
        "local_cert"        => $MYCERT,
        /* If the certificate we are providing was passphrase encoded, we need to set it here */
        "passphrase"        => "My Passphrase for the local_cert",

        /* Optionally verify the server is who he says he is */
        "cafile"            => $SSL_DIR . "/" . $SSL_FILE,
        "allow_self_signed" => false,
        "verify_peer"       => true,
        "verify_peer_name"  => true,
        "verify_expiry"     => true,
    ),
));

$mc = new MongoClient(
    "mongodb://server1/?ssl=true",
    array(),
    array("context" => $ctx)
);
?>

Пример #4 Authenticating with X.509 certificates

The username is the certificate subject from the X509, which can be extracted like this:

openssl x509 -in /vagrant/certs/ca-signed-client.pem -inform PEM -subject -nameopt RFC2253
<?php
$ctx = stream_context_create( array(
    "ssl" => array(
        "local_cert" => "/vagrant/certs/ca-signed-client.pem",
    )
) );

$mc = new MongoClient(
    'mongodb://username@server1/?authSource=$external&authMechanism=MONGODB-X509&ssl=true',
    array(),
    array("context" => $ctx)
);
?>

Where username is the certificate subject.

Список изменений

Версия | Описание
1.5.0 | Added support for X509 authentication.
1.4.0 | Added support for connecting to SSL enabled MongoDB.


Authentication

If MongoDB is started with the --auth or --keyFile options, you must authenticate before you can do any operations with the driver. You may authenticate a connection by specifying the username and password in either the connection URI or the "username" and "password" options for MongoClient::__construct().

Пример #1 Authenticating against the "admin" database

<?php
// Specifying the username and password in the connection URI (preferred)
$m = new MongoClient("mongodb://${username}:${password}@localhost");

// Specifying the username and password via the options array (alternative)
$m = new MongoClient("mongodb://localhost", array("username" => $username, "password" => $password));
?>

By default, the driver will authenticate against the admin database. You may authenticate against a different database by specifying it in either the connection URI or the "db" option for MongoClient::__construct().

Пример #2 Authenticating against normal databases

<?php
// Specifying the authentication database in the connection URI (preferred)
$m = new MongoClient("mongodb://${username}:${password}@localhost/myDatabase");

// Specifying the authentication database via the options array (alternative)
$m = new MongoClient("mongodb://${username}:${password}@localhost", array("db" => "myDatabase"));
?>

If your connection is dropped, the driver will automatically attempt to reconnect and reauthenticate you.


Replica Sets

To connect to a replica set, specify one or more members of the set and use the "replicaSet" option. Multiple servers may be delimited by a comma.

Пример #1 ReplicaSet seed list

<?php
// Using multiple servers as the seed list (prefered)
$m = new MongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017/?replicaSet=myReplSetName");

// Using one server as the seed list
$m = new MongoClient("mongodb://rs1.example.com:27017", array("replicaSet" => "myReplSetName"));

// Using multiple servers as the seed list
$m = new MongoClient("mongodb://rs1.example.com:27017,rs2.example.com:27017", array("replicaSet" => "myReplSetName"));
?>

The PHP driver will query the database server(s) listed to determine the primary. So long as it can connect to at least one host listed and find a primary, the connection will succeed. If it cannot make a connection to any servers listed or cannot find a primary, a MongoConnectionException will be thrown.

Подсказка

You should always provide a seed list with more than one member of the ReplicaSet. For highest availability you should seed with at least one server from each of your datacenters.

Внимание

The host names that you specify in the seed list must match the host names in the replica set configuration. This is because the driver only uses the host names in the replica set configuration to create the hash for its persistent connections.

For example, if an IP address is used in the seed list and the replica set is configured with host names, the driver will discard any seed list connection(s) that differ from the canonical host names reported by the replica set. Effectively, these non-canonical seed list connections will be recreated on each request, greatly reducing the benefit of using persistent connections.

Внимание

The driver does not support connecting to different replica sets with the same name. This extends beyond one script so make sure to have separate names for each of your replica sets. That also means that you can not do this:

Пример #2 Wrong replica set name duplication

<?php
$m = new MongoClient("mongodb://devserver1,devserver2,devserver3/?replicaSet=repset");
$m = new MongoClient("mongodb://prodserver1,prodserver2,prodserver3/?replicaSet=repset");
?>

Instead, you need to have two different names for your replica sets:

Пример #3 Correct use of two replica set names

<?php
$m = new MongoClient("mongodb://devserver1,devserver2,devserver3/?replicaSet=devset");
$m = new MongoClient("mongodb://prodserver1,prodserver2,prodserver3/?replicaSet=prodset");
?>

If the primary becomes unavailable, an election will take place and a secondary will be promoted to the role of primary (unless a majority vote cannot be established). During this time (» 20-60 seconds), the connection will not be able to perform any write operations and attempts to do so will result in an exception. Connections to secondaries will still be able to perform reads.

Замечание:

The default Read Preference is to only read from the primary. During the election process there is no primary, and all read will therefore fail.

It is recommended to use MongoClient::RP_PRIMARY_PREFERRED Read Preference for applications that require high availability for reads, as reads will only be executed on the secondaries when there simply isn't a primary available.

Once a primary is elected, attempting to perform a read or write will allow the driver to detect the new primary. The driver will make this its primary database connection and continue operating normally.

The health and state of a secondary is checked every 5 seconds (configurable with mongo.ping_interval) or when the next operation occurs after 5 seconds. It will also recheck the configuration when the driver has a problem reaching a server.

Replica set failovers are checked every 60 seconds (configurable with mongo.is_master_interval), and whenever a write operation fails when using acknowledged writes.

Предостережение

Secondaries may be behind the primary in operations, so your application must be able to handle out-of-date data when using Read Preferences other then MongoClient::RP_PRIMARY.

For more information on replica sets, see the » core documentation.

Смотрите также

  • Read Preferences
  • Write Concerns

Список изменений

Версия | Описание
1.0.9 | Added support for connecting to ReplicaSet and automatic failover.


Sharding

To connect to a shard cluster, specify the address of one or more mongos instances in the connection string. Multiple servers may be delimited by a comma.

<?php
// Using one server as the seed list
$m = new MongoClient("mongodb://mongos1.example.com:27017");

// Using multiple servers as the seed list
$m = new MongoClient("mongodb://mongos1.example.com:27017,mongos2.example.com:27017");
?>

Regardless of whether each shard is a stand-alone mongod server or a full replica set, the driver's connection process is the same. All database communication will be routed through mongos.

For more information on sharding with MongoDB, see the » sharding documentation.


Domain Socket Support

MongoDB has built-in support for connecting via Unix Domain Sockets and will open the socket on startup. By default, the socket is located in /tmp/mongodb-<port>.sock.

To connect to the socket file, specify the path in your MongoDB connection string:

<?php
$m = new MongoClient("mongodb:///tmp/mongo-27017.sock");
?>

If you would like to authenticate against a database (as described above) with a socket file, you must specify a port of 0 so that the connection string parser can detect the end of the socket path. Alternatively, you can use the constructor options.

<?php
$m = new MongoClient("mongodb://username:password@/tmp/mongo-27017.sock:0/foo");
?>

Список изменений

Версия | Описание
1.0.9 | Added support for Unix Domain Sockets.


Persistent Connections (version 1.3.0+)

All versions of the driver since 1.3.0 utilize persistent connections to minimize the number of connections made to each database server. These connections are saved by the PHP worker process and may be reused between multiple requests.

Before connecting to a database server, the driver will create a hash for the connection based on its host, port, replica set name (if any), any authentication credentials (e.g. username, password, database), and the process ID. If a connection already exists for that hash, it will be used in lieu of creating a new connection associated with that hash. MongoClient::getConnections() may be used to retrieve info about each persistent connection. Consider the following program:

<?php

$m1 = new MongoClient('mongodb://localhost');
$m2 = new MongoClient('mongodb://localhost');
$m3 = new MongoClient('mongodb://user:pw@localhost');
$m4 = new MongoClient('mongodb://127.0.0.1');
$m5 = new MongoClient('mongodb://rs1.local:30017,rs2.local:30018/?replicaSet=rs');
$m6 = new MongoClient('mongodb://sharding.local:40017');

foreach (MongoClient::getConnections() as $conn) {
    echo $conn['hash'], "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

localhost:27017;-;X;15487
localhost:27017;-;admin/user/c56c...8bbc;15487
127.0.0.1:27017;-;X;15487
rs1.local:30017;rs;X;15487
rs2.local:30018;rs;X;15487
sharding.local:40017;-;X;15487

In this example $m1 and $m2 have the same hash and share a persistent connection. Connections for each other MongoClient instance hash to unique values and use their own sockets. Note that "localhost" and "127.0.0.1" do not share the same hash; DNS resolution is not taken into account.


Connection Pooling (version 1.2.0-1.2.12 *only*)

Замечание:

This section is no longer relevant as of the 1.3.0 release of the driver and only serves as a historical information on how the pooling used to work.

The latest versions of the driver have no concept of pooling anymore and will maintain only one connection per process, for each connection type (ReplicaSet/standalone/mongos), for each credentials combination.

Creating connections is one of the most heavyweight things that the driver does. It can take hundreds of milliseconds to set up a connection correctly, even on a fast network. Thus, the driver tries to minimize the number of new connections created by reusing connections from a pool.

When a user creates a new instance of MongoClient, all necessary connections will be taken from their pools (replica sets may require multiple connections, one for each member of the set). When the MongoClient instance goes out of scope, the connections will be returned to the pool. When the PHP process exits, all connections in the pools will be closed.

"Why do I have so many open connections?"

Connection pools can generate a large number of connections. This is expected and, using a little arithmetic, you can figure out how many connections will be created. There are three factors in determining the total number of connections:

  • connections_per_pool

    Each connection pool will create, by default, an unlimited number of connections. One might assume that this is a problem: if it can create an unlimited number of connections, couldn't it create thousands and the server would run out of file descriptors? In practice, this is unlikely, as unused connections are returned to the pool to be used later, so future connections will use the same connection instead of creating a new one. Unless you create thousands of connections at once without letting any go out of scope, the number of connections open should stay at a reasonable number.

    You can see how many connections you have in a pool using the MongoPool::info() function. Add up the "in use" and "in pool" fields for a given server. That is the total number of connections for that pool.

  • pools_per_process

    Each MongoDB server address you're connecting to gets its own connection pool. For example, if your local hostname is "example.net", connecting to "example.net:27017", "localhost:27017", and "/tmp/mongodb-27017.sock" will create three connection pools. You can see how many connection pools you have open using MongoPool::info().

  • processes

    Each PHP process has a separate set of pools. PHP-FPM and Apache generally create between 6 and a couple of dozen PHP worker children. Check your settings to see what the max number of PHP processes is that can be spawned.

    If you are using PHP-FPM, estimating the number of connections can be tricky because it will spawn more PHP-FPM workers under heavy load. To be on the safe side, look at the max_children parameter or add up spare_servers + start_servers (choose whichever number is higher). That will indicate how many PHP processes (i.e. sets of pools) you should plan for.

The three variables above can be multiplied together to give the max number of connections expected: connections_per_pool * pools_per_process * processes. Note that connections_per_pool can be different for different pools, so connections_per_pool should be the max.

For example, suppose we're getting 30 connections per pool, 10 pools per PHP process, and 128 PHP processes. Then we can expect 38400 connections from this machine. Thus, we should set this machine's file descriptor limit to be high enough to handle all of these connections or it may run out of file descriptors.

See MongoPool for more information on connection pooling.


Manually Persistent Connections (version up to 1.1.4 *only*)

Замечание:

This section is not relevant for 1.2.0+. In 1.2.0+, connections are always persistent and managed automatically by the driver. If you are using a 1.2.x release (but not 1.3.x or later), see MongoPool for more information on pooling.

Creating new connection to the database is very slow. To minimize the number of connections that you need to make, you can use persistent connections. A persistent connection is saved by PHP, so you can use the same connection for multiple requests.

For example, this simple program connects to the database 1000 times:

<?php

for ($i=0; $i<1000; $i++) {
  $m = new MongoClient();
}

?>

It takes approximately 18 seconds to execute. If we change it to use a persistent connection:

<?php

for ($i=0; $i<1000; $i++) {
  $m = new MongoClient("localhost:27017", array("persist" => "x"));
}

?>

...it takes less than .02 seconds to execute, as it only makes one database connection.

Persistent connections need an identifier string (which is "x" in the above example) to uniquely identify them. For a persistent connection to be used, the hostname, port, persist string, and authentication credentials (username, password and database, if given) must match an existing persistent connection. Otherwise, a new connection will be created with this identifying information.

Persistent connections are highly recommended and should always be used in production unless there is a compelling reason not to. Most of the reasons that they are not recommended for relational databases are irrelevant to MongoDB.


Stream Context Options

The PHP MongoDB extension provides Stream Context Support using the mongodb context.

A stream context must be created with stream_context_create() and passed to the MongoClient::__construct() before the actual connection to MongoDB is made. It is not possible to apply a stream context to already created streams.

Additional context options and parameters, such as ssl and notification parameters, are also supported.

The MongoDB context options provide a rich interface to log network traffic between the driver and the MongoDB servers. This interface can be used to provide query logging, profiler, debuggers, or anything that would need to inspect the underlaying commands and protocol options.

Смотрите также

  • Опции контекста SSL
  • Контекстные опции сокета
  • Параметры контекста

Содержание

  • log_cmd_delete — Callback When Deleting Documents
  • log_cmd_insert — Callback When Inserting Documents
  • log_cmd_update — Callback When Updating Documents
  • log_getmore — Callback When Retrieving Next Cursor Batch
  • log_killcursor — Callback When Executing KILLCURSOR operations
  • log_reply — Callback When Reading the MongoDB reply
  • log_write_batch — Callback When Writing Batches


Callback When Deleting Documents

  • « Stream Context Options
  • log_cmd_insert »
  • PHP Manual
  • Stream Context Options
  • Callback When Deleting Documents

log_cmd_delete

(PECL mongo >= 1.5.0)

log_cmd_delete — Callback When Deleting Documents

Описание

log_cmd_delete ( array $server , array $writeOptions , array $deleteOptions , array $protocolOptions )

A callable function, used by the log_cmd_delete context option, when deleteing a document

Замечание:

This is not a real function, only a prototype of how the function should be.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

writeOptions

key | value
ordered | булево, если операция (в случае пакетных операций) должна выполняться последовательно (ordered=true)
writeConcern | Массив опций контроля записи (writeConcern, смотри ниже)
значения массива writeConcern
ключ | значение
fsync | булево, сбрасывать на диск перед запуском
j | булево, записывать в журнал перед запуском
wtimeout | целое число, миллисекунды, максимальное время, которое основной сервер (primary) ждет подтверждение репликации
w | integer=число серверов, или string=тэг-репликации

deleteOptions

key | value
limit | integer, 1 or 0. If 0, delete all matching documents.
q | Array, the search criteria

protocolOptions

key | value
message_length | Общий размер в байтах закодированного сообщения, отправляемого по сети
request_id | Идентификатор для сообщения: 42
namespace | Пространство имен MongoDB , используемого для сообщений протокола dbname.collectionname

Список изменений

Версия | Описание
1.5.0 | Only available when connected to MongoDB 2.6.0+


Callback When Inserting Documents

  • « log_cmd_delete
  • log_cmd_update »
  • PHP Manual
  • Stream Context Options
  • Callback When Inserting Documents

log_cmd_insert

(PECL mongo >= 1.5.0)

log_cmd_insert — Callback When Inserting Documents

Описание

log_cmd_insert ( array $server , array $document , array $writeOptions , array $protocolOptions )

A callable function, used by the log_cmd_insert context option, when inserting a document

Замечание:

This is not a real function, only a prototype of how the function should be.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

document

The document that has been prepared to be inserted

writeOptions

key | value
ordered | булево, если операция (в случае пакетных операций) должна выполняться последовательно (ordered=true)
writeConcern | Массив опций контроля записи (writeConcern, смотри ниже)
значения массива writeConcern
ключ | значение
fsync | булево, сбрасывать на диск перед запуском
j | булево, записывать в журнал перед запуском
wtimeout | целое число, миллисекунды, максимальное время, которое основной сервер (primary) ждет подтверждение репликации
w | integer=число серверов, или string=тэг-репликации

protocolOptions

key | value
message_length | Общий размер в байтах закодированного сообщения, отправляемого по сети
request_id | Идентификатор для сообщения: 42
namespace | Пространство имен MongoDB , используемого для сообщений протокола dbname.collectionname

Список изменений

Версия | Описание
1.5.0 | Only available when connected to MongoDB 2.6.0+


Callback When Updating Documents

  • « log_cmd_insert
  • log_getmore »
  • PHP Manual
  • Stream Context Options
  • Callback When Updating Documents

log_cmd_update

(PECL mongo >= 1.5.0)

log_cmd_update — Callback When Updating Documents

Описание

log_cmd_update ( array $server , array $writeOptions , array $updateOptions , array $protocolOptions )

A callable function, used by the log_cmd_update context option, when updateing a document

Замечание:

This is not a real function, only a prototype of how the function should be.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

writeOptions

key | value
ordered | булево, если операция (в случае пакетных операций) должна выполняться последовательно (ordered=true)
writeConcern | Массив опций контроля записи (writeConcern, смотри ниже)
значения массива writeConcern
ключ | значение
fsync | булево, сбрасывать на диск перед запуском
j | булево, записывать в журнал перед запуском
wtimeout | целое число, миллисекунды, максимальное время, которое основной сервер (primary) ждет подтверждение репликации
w | integer=число серверов, или string=тэг-репликации

updateOptions

key | value
multi | Boolean, true if this update is allowed to update all matched criteria
upsert | Boolean, true if the document should be created if criteria does not match
q | Array, the search criteria
u | Array, the new object/modifications

protocolOptions

key | value
message_length | Общий размер в байтах закодированного сообщения, отправляемого по сети
request_id | Идентификатор для сообщения: 42
namespace | Пространство имен MongoDB , используемого для сообщений протокола dbname.collectionname

Список изменений

Версия | Описание
1.5.0 | Only available when connected to MongoDB 2.6.0+


Callback When Retrieving Next Cursor Batch

  • « log_cmd_update
  • log_killcursor »
  • PHP Manual
  • Stream Context Options
  • Callback When Retrieving Next Cursor Batch

log_getmore

(PECL mongo >= 1.5.0)

log_getmore — Callback When Retrieving Next Cursor Batch

Описание

log_getmore ( array $server , array $info )

A callable function, used by the log_getmore context option, when executing a GET_MORE operation.

Замечание:

This is not a real function, only a prototype of how the function should be.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

info

key | value
request_id | integer, the driver request identifier
cursor_id | integer, the cursor identifier being used to fetch more data
batch_size | integer, maximum number of documents being requested


Callback When Executing KILLCURSOR operations

  • « log_getmore
  • log_reply »
  • PHP Manual
  • Stream Context Options
  • Callback When Executing KILLCURSOR operations

log_killcursor

(PECL mongo >= 1.5.0)

log_killcursor — Callback When Executing KILLCURSOR operations

Описание

log_killcursor ( array $server , array $info )

A callable function, used by the log_killcursor context option, when reading a killcursor from MongoDB.

Замечание:

This is not a real function, only a prototype of how the function should be.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

info

key | value
cursor_id | integer, the cursor identifier to kill


Callback When Reading the MongoDB reply

  • « log_killcursor
  • log_write_batch »
  • PHP Manual
  • Stream Context Options
  • Callback When Reading the MongoDB reply

log_reply

(PECL mongo >= 1.5.0)

log_reply — Callback When Reading the MongoDB reply

Описание

log_reply ( array $server , array $messageHeaders , array $operationHeaders )

A callable function, used by the log_reply context option, when reading a reply from MongoDB.

Замечание:

This is not a real function, only a prototype of how the function should be.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

messageHeaders

key | value
length | integer, bytes, message reply length
request_id | integer, the server request identifier
response_id | integer, the driver request identifier this message is a response of
opcode | integer, the opcode id

operationHeaders

key | value
flags | integer, bitmask of protocol flags
cursor_id | integer, ID of the cursor created on the server (0 if none created, or its been exhausted)
start | The starting offset of this cursor
returned | integer, how many documents are returned in this trip

Смотрите также

  • The » OP_REPLY definition in the Wire Protocol


Callback When Writing Batches

  • « log_reply
  • Writes »
  • PHP Manual
  • Stream Context Options
  • Callback When Writing Batches

log_write_batch

(PECL mongo >= 1.5.0)

log_write_batch — Callback When Writing Batches

Описание

log_write_batch ( array $server , array $writeOptions , array $batch , array $protocolOptions )

A callable function, used by the log_write_batch context option, when executing a batch operation.

Замечание:

This is not a real function, only a prototype of how the function should be.

Список параметров

server

Массив, содержащий основную информацию о выбранном сервере.

ключ | значение
hash | хэш сервера, например: localhost:27017;-;X;56052
type | Тип узла (primary/secondary/mongos/arbiter): 2
max_bson_size | максимальный размер BSON, который этот узел поддерживает: 16777216
max_message_size | Максимальный размер сообщения, который этот узел поддерживает: 48000000
request_id | Идентификатор запроса для этого сообщения: 42

writeOptions

key | value
ordered | булево, если операция (в случае пакетных операций) должна выполняться последовательно (ordered=true)
writeConcern | Массив опций контроля записи (writeConcern, смотри ниже)
значения массива writeConcern
ключ | значение
fsync | булево, сбрасывать на диск перед запуском
j | булево, записывать в журнал перед запуском
wtimeout | целое число, миллисекунды, максимальное время, которое основной сервер (primary) ждет подтверждение репликации
w | integer=число серверов, или string=тэг-репликации

batch

Array, the actual batch operation.

protocolOptions

key | value
message_length | Общий размер в байтах закодированного сообщения, отправляемого по сети
request_id | Идентификатор для сообщения: 42
namespace | Пространство имен MongoDB , используемого для сообщений протокола dbname.collectionname

Список изменений

Версия | Описание
1.5.0 | Only available when connected to MongoDB 2.6.0+


Writes

Updating Nested Objects

Suppose we wish to change the name of a comment's author in this document:

{
    "_id" : ObjectId("4b06c282edb87a281e09dad9"),
    "content" : "this is a blog post.",
    "comments" :
    [
        {
            "author" : "Mike",
            "comment" : "I think that blah blah blah...",
        },
        {
            "author" : "John",
            "comment" : "I disagree."
        }
    ]
}
In order to change an inner field, we use $set (so that all of the other fields are not removed!) with the index of comment to change:
<?php

$blog->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));

?>

The Positional Operator

The positional operator $ is useful for updating objects that are in arrays. In the example above, for instance, suppose that we did not know the index of the comment that we needed to change, merely that we needed to change "John" to "Jim". We can use $ to do so.

<?php

$blog->update(
    array('comments.author' => 'John'),
    array('$set' => array('comments.$.author' => 'Jim')));

?>


Querying

Distributing queries to secondaries

All queries (reads and writes) are only sent to the primary member of a replica set by default. This is however easily configurable by using the Read Preferences which allow you to set some generic read preferences (such as allowing secondary reads of the nearest server), and also provide ways to specifically target a server in a specific country, datacenter, or even hardware, by the use of replica set tag sets.

Read preferences can be configured at every level of the driver:

  • As a query parameter or option to MongoClient::__construct()
  • Specifically by calling MongoClient::setReadPreference()
  • At the database level with MongoDB::setReadPreference()
  • At the collection level with MongoCollection::setReadPreference()
  • At the cursor level with MongoCursor::setReadPreference() or MongoCommandCursor::setReadPreference()
Each class inherits its read preference setting from the "parent" context.

Пример #1 Inheriting read preferences from the database level down to the cursor

<?php
$db->setReadPreference(MongoClient::RP_SECONDARY_PREFERRED);
$c = $db->myCollection;

$cursor = $c->find();
?>

In this example, the the query will be executed against a secondary. The collection inherits MongoClient::RP_SECONDARY_PREFERRED from the database and the cursor inherits it from the collection.

How secondaries are chosen

Each instance of MongoClient chooses its own secondary using the available secondary with the lowest ping time. So, if we had a PHP client in Europe and one in Australia and we had one secondary in each of these data centers, we could do:

<?php
$options = array("replicaSet" => "setName", "readPreference" => MongoClient::RP_SECONDARY_PREFERRED);

// on the Australian client
$m = new MongoClient("mongodb://primary,australianhost.secondary,europeanhost.secondary", $options);
$cursor = $m->foo->bar->find();
$cursor->getNext();
echo "Reading from: ", $cursor->info()["server"], "\n";

// on the European client
$m = new MongoClient("mongodb://primary,australianhost.secondary,europeanhost.secondary", $options);
$cursor = $m->foo->bar->find();
$cursor->getNext();
echo "Reading from: ", $cursor->info()["server"], "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Reading from: australianHost
Reading from: europeanHost

Note that we have to do a query before a secondary is chosen: secondaries are chosen lazily by the driver, and for each query separately.

You can see what the driver thinks is the current status of the set members by running MongoClient::getHosts() or MongoClient::getConnections().

If no secondary is readable, the driver will send reads to the primary as we specified MongoClient::RP_SECONDARY_PREFERRED which will fallback to execute a query on a primary if no secondaries are available. A server is considered readable if its state is 2 (SECONDARY) and its health is 1. You can check this with MongoClient::getHosts() and MongoClient::getConnections().

Random notes

Writes are always sent to the primary—and by default all reads are sent to the primary too.

Querying by _id

Every object inserted is automatically assigned a unique _id field, which is often a useful field to use in queries. This works similarly to "get last insert ID" functionality, except that the _id is chosen by the client.

Suppose that we wish to find the document we just inserted. Inserting adds an _id field to the document, so we can query by that:

<?php
$person = array("name" => "joe");

$people->insert($person);

// now $joe has an _id field
$joe = $people->findOne(array("_id" => $person['_id']));
?>

Unless the user has specified otherwise, the _id field is a MongoId. The most common mistake is attempting to use a string to match a MongoId. Keep in mind that these are two different datatypes, and will not match each other in the same way that the string "array()" is not the same as an empty array. For example:

<?php
$person = array("name" => "joe");

$people->insert($person);

// convert the _id to a string
$pid = $person['_id'] . "";

// FAILS - $pid is a string, not a MongoId
$joe = $people->findOne(array("_id" => $pid));
?>

Arrays

Arrays are special in a couple ways. First, there are two types that MongoDB uses: "normal" arrays and associative arrays. Associative arrays can have any mix of key types and values. "Normal" arrays are defined as arrays with ascending numeric indexes starting at 0 and increasing by one for each element. These are, typically, just your usual PHP array.

For instance, if you want to save a list of awards in a document, you could say:

<?php

$collection->save(array("awards" => array("gold", "silver", "bronze")));

?>

Queries can reach into arrays to search for elements. Suppose that we wish to find all documents with an array element of a given value. For example, documents with a "gold" award, such as:

{ "_id" : ObjectId("4b06c282edb87a281e09dad9"), "awards" : ["gold", "silver", "bronze"]}

This can be done with a simple query, ignoring the fact that "awards" is an array:

<?php

  $cursor = $collection->find(array("awards" => "gold"));

?>

Suppose we are querying for a more complex object, if each element of the array were an object itself, such as:

{
     "_id" : ObjectId("4b06c282edb87a281e09dad9"),
     "awards" :
     [
        {
            "first place" : "gold"
        },
        {
            "second place" : "silver"
        },
        {
            "third place" :  "bronze"
        }
     ]
}

Still ignoring that this is an array, we can use dot notation to query the subobject:

<?php

$cursor = $collection->find(array("awards.first place" => "gold"));

?>

Notice that it doesn't matter that there is a space in the field name (although it may be best not to use spaces, just to make things more readable).

You can also use an array to query for a number of possible values. For instance, if we were looking for documents "gold" or "copper", we could do:

<?php

$cursor = $collection->find(array("awards" => array('$in' => array("gold", "copper"))));

?>

Список изменений

Версия | Описание
1.3.0 | Introduced the Read Preferences framework to allow more fine grained control over secondary reads.
1.3.0 | Deprecated slaveOkay usage, the alternative is Read Preferences.
1.1.0 | Introduced the possiblity of routing reads to secondaries of replica set members using Mongo::setSlaveOkay()


Updates

Updates can be one of the most complicated operation available with MongoDB. They combine a query with an action, modifying documents that match the criteria. They are also extremely powerful, allowing you to change documents quickly and replace them altogether. They are done in-place (when possible) with little overhead.

Modifying vs. replacing documents

There are two types of updates you can use: modifying updates and replacing updates. Modifying updates contain $-operators and change fields in a document: they might increment counters, push new elements onto an array, or change the type of a field.

For example, a modifying update could add a new field to a document.

<?php
/** suppose documents look like:
 * {"username" : "...", "password" : "...", "email" : "..."}
 */
$coll->update(array("username" => "joe"), array('$set' => array("twitter" => "@joe4153")));

/** now the document will look like:
 * {"username" : "joe", "password" : "...", "email" : "...", "twitter" : "@joe4153"}
 */
?>

Replacing updates replace the entire matching document with a new document. They are generally not as efficient as using $-modifiers, but can be very usefully for complex operations or updates that can't be expressed in terms of $-operators.

For example, a replacing update can completely change the structure of a document.

<?php
/** suppose documents look like:
 * {"username" : "...", "password" : "...", "email" : "..."}
 */
$coll->update(array("username" => "joe"), array("userId" => 12345, "info" => array(
    "name" => "joe", "twitter" => "@joe4153", "email" => "..."), "likes" => array()));

/** now the document will look like:
 * {
 *     "userId" : 12345,
 *     "info" : {
 *         "name" : "joe",
 *         "twitter" : "@joe4153",
 *         "email" : "..."
 *     },
 *     "likes" : []
 * }
 */
?>

Updating Nested Objects

Suppose we wish to change the name of a comment's author in this document:

{
    "_id" : ObjectId("4b06c282edb87a281e09dad9"),
    "content" : "this is a blog post.",
    "comments" :
    [
        {
            "author" : "Mike",
            "comment" : "I think that blah blah blah...",
        },
        {
            "author" : "John",
            "comment" : "I disagree."
        }
    ]
}
In order to change an inner field, we use $set (so that all of the other fields are not removed!) with the index of comment to change:
<?php

$blog->update($criteria, array('$set' => array("comments.1" => array("author" => "Jim"))));

?>

The Positional Operator

The positional operator $ is useful for updating objects that are in arrays. In the example above, for instance, suppose that we did not know the index of the comment that we needed to change, merely that we needed to change "John" to "Jim". We can use $ to do so.

<?php

$blog->update(
    array("comments.author" => "John"),
    array('$set' => array('comments.$.author' => "Jim")));

?>


Security

Request Injection Attacks

If you are passing $_GET (or $_POST) parameters to your queries, make sure that they are cast to strings first. Users can insert associative arrays in GET and POST requests, which could then become unwanted $-queries.

A fairly innocuous example: suppose you are looking up a user's information with the request http://www.example.com?username=bob. Your application does the query $collection->find(array("username" => $_GET['username'])).

Someone could subvert this by getting http://www.example.com?username[$ne]=foo, which PHP will magically turn into an associative array, turning your query into $collection->find(array("username" => array('$ne' => "foo"))), which will return all users not named "foo" (all of your users, probably).

This is a fairly easy attack to defend against: make sure $_GET and $_POST parameters are the type you expect before you send them to the database (cast them to strings, in this case).

Note that this type of attack can be used with any databases interation that locates a document, including updates, upserts, find-and-modifies, and removes.

Thanks to » Phil for pointing this out.

See » the main documentation for more information about SQL-injection-like issues with MongoDB.

Script Injection Attacks

If you are using JavaScript, make sure that any variables that cross the PHP- to-JavaScript boundry are passed in the scope field of MongoCode, not interpolated into the JavaScript string. This can come up when using MongoDB::execute(), $where clauses, MapReduces, group-bys, and any other time you may pass JavaScript into the database.

Замечание:

MapReduce ignore the scope field of MongoCode, but there is a scope option on the command that can be used instead.

For example, suppose we have some JavaScript to greet a user in the database logs. We could do:

<?php

// don't do this!

$username = $_POST['username'];
$db->execute("print('Hello, $username!');");

?>

However, what if a malicious user passes in some JavaScript?

<?php

// don't do this!

// $username is set to "'); db.users.drop(); print('"
$db->execute("print('Hello, $username!');");

?>

Now MongoDB executes the JavaScript string "print('Hello, '); db.users.drop(); print('!');". This attack is easy to avoid: use scope to pass variables from PHP to JavaScript:

<?php

$scope = array("user" => $username);
$db->execute(new MongoCode("print('Hello, '+user+'!');", $scope));

?>

This adds a variable user to the JavaScript scope. Now if someone tries to send malicious code, MongoDB will harmlessly print Hello, '); db.dropDatabase(); print('!.

Using scope helps prevent malicious input from being executed by the database. However, you must make sure that your code does not turn around and execute the input anyway! For example, never use the JavaScript eval function on user input:

<?php

// don't do this!

// $jsShellInput is "db.users.drop();"
$scope = array("input" => $jsShellInput);
$db->execute(new MongoCode("eval(input);", $scope));

?>

Always use scope and never allow the database to execute user input as code.


Troubleshooting

If you're having trouble, there are lots of resources you can turn to.

  • IRC

    The official MongoDB IRC room is irc.freenode.net/#mongodb. This is the fastest way to get help.

  • Mailing List

    » MongoDB's mailing list is a good (and usually very fast) way to get answers to questions.

  • Bug Tracker

    Found a bug? Want a feature? Have a question? File it in the » PHP driver's bug tracker.

You can make the driver log all kinds of error messages as E_NOTICE level PHP error messages. Have a look at the MongoLog for an example.


Running the Driver's Tests

The PECL package does not come with the tests, but they are available at » Github.

.phpt Tests

.phpt tests are the standard way of testing PHP extensions. After compiling the MongoDB driver with "make" you can then issue "make test" to run the tests. These tests require MongoDB to be working, and hence, you need to configure the test suite itself.

There is more information on running the tests in the contributing guidelines on » GitHub.

Reporting Errors

Please report any failures or errors in the » bugtracker. There may be skipped tests, these are normal and can be ignored.

New tests are always welcome! Please feel free to contribute new tests of any type testing any functionality.


Базовые классы

Содержание

  • MongoClient
  • MongoDB
  • MongoCollection
  • MongoCursor
  • MongoCursorInterface
  • MongoCommandCursor
Внимание

Это расширение объявлено устаревшим. Вместо него используйте расширение MongoDB.

Базовые классы - это основная часть драйвера.


Класс MongoClient

(PECL mongo >=1.3.0)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\Driver\Manager

Введение

Менеджер подключения между PHP и MongoDB.

Данный класс служит для создания и управления подключениями. Типичное использование:

Пример #1 Типичное использование MongoClient

<?php

$m = new MongoClient(); // соединение
$db = $m->foo; // получаем базу данных "foo"

?>

Смотрите MongoClient::__construct() и раздел по созданию подключений для более подробной информации по подключению к Mongo.

Обзор классов

MongoClient {
/* Константы */
const string VERSION ;
const string DEFAULT_HOST = "localhost" ;
const int DEFAULT_PORT = 27017 ;
const string RP_PRIMARY = "primary" ;
const string RP_PRIMARY_PREFERRED = "primaryPreferred" ;
const string RP_SECONDARY = "secondary" ;
const string RP_SECONDARY_PREFERRED = "secondaryPreferred" ;
const string RP_NEAREST = "nearest" ;
/* Свойства */
public boolean $connected = FALSE ;
public string $status = NULL ;
protected string $server = NULL ;
protected boolean $persistent = NULL ;
/* Методы */
public __construct ([ string $server = "mongodb://localhost:27017" [, array $options = array("connect" => TRUE) [, array $driver_options ]]] )
public bool close ([ boolean|string $connection ] )
public bool connect ( void )
public array dropDB ( mixed $db )
public MongoDB __get ( string $dbname )
public static array getConnections ( void )
public array getHosts ( void )
public array getReadPreference ( void )
public array getWriteConcern ( void )
public bool killCursor ( string $server_hash , int|MongoInt64 $id )
public array listDBs ( void )
public MongoCollection selectCollection ( string $db , string $collection )
public MongoDB selectDB ( string $name )
public bool setReadPreference ( string $read_preference [, array $tags ] )
public bool setWriteConcern ( mixed $w [, int $wtimeout ] )
public string __toString ( void )
}

Предопределенные константы

Константы MongoClient

MongoClient::VERSION
Версия PHP драйвера. Может оканчиваться суффиксом "dev", "+" или "-", если это промежуточная версия.
MongoClient::DEFAULT_HOST
"localhost"
Адрес сервера Mongo, к которому будет происходить подключение, если адрес не указан.
MongoClient::DEFAULT_PORT
27017
Порт, к которому будет производиться подключение, если он не указан.
MongoClient::RP_PRIMARY
"primary"
Предпочтение по выборке для основного члена набора реплик.
MongoClient::RP_PRIMARY_PREFERRED
"primaryPreferred"
Предпочтение по выборке для предпочтительного основного члена набора реплик.
MongoClient::RP_SECONDARY
"secondary"
Предпочтение по выборке для вторичного члена набора реплик.
MongoClient::RP_SECONDARY_PREFERRED
"secondaryPreferred"
Предпочтение по выборке для предпочтительного вторичного члена набора реплик.
MongoClient::RP_NEAREST
"nearest"
Предпочтение по выборке для ближайшего члена набора реплик.

Параметры

connected

Этот параметр будет установлен в TRUE, если есть открытое соединение с базой, иначе - FALSE. Если соединение происходит к набору реплик, то это свойство может быть равным TRUE в случае, если есть соединение к узлу, соответствующему текущей настройке на чтение. Этот параметр не учитывает аутентификацию.

Это свойство устарело с версии 1.5.0.

status

Это свойство больше не используется и должно быть установлено в NULL. В драйвере версии 1.1.x и ранее, это свойство можно задать строками (т.е. "recycled", "new"), если используется постоянное соединение.

Это свойство устарело с версии 1.5.0.

Смотрите также

  • Read Preferences
  • Write Concerns
  • Connecting
  • Основная документация MongoDB о » соединениях

Содержание

  • MongoClient::close — Closes this connection
  • MongoClient::connect — Connects to a database server
  • MongoClient::__construct — Creates a new database connection object
  • MongoClient::dropDB — Drops a database [deprecated]
  • MongoClient::__get — Gets a database
  • MongoClient::getConnections — Return info about all open connections
  • MongoClient::getHosts — Updates status for all associated hosts
  • MongoClient::getReadPreference — Get the read preference for this connection
  • MongoClient::getWriteConcern — Get the write concern for this connection
  • MongoClient::killCursor — Kills a specific cursor on the server
  • MongoClient::listDBs — Lists all of the databases available.
  • MongoClient::selectCollection — Gets a database collection
  • MongoClient::selectDB — Gets a database
  • MongoClient::setReadPreference — Set the read preference for this connection
  • MongoClient::setWriteConcern — Set the write concern for this connection
  • MongoClient::__toString — String representation of this connection


Closes this connection

  • « MongoClient
  • MongoClient::connect »
  • PHP Manual
  • MongoClient
  • Closes this connection

MongoClient::close

(PECL mongo >=1.3.0)

MongoClient::close — Closes this connection

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public bool MongoClient::close ([ boolean|string $connection ] )

The MongoClient::close() method forcefully closes a connection to the database, even if persistent connections are being used. You should never have to do this under normal circumstances.

Список параметров

connection

If connection is not given, or FALSE then connection that would be selected for writes would be closed. In a single-node configuration, that is then the whole connection, but if you are connected to a replica set, close() will only close the connection to the primary server.

If connection is TRUE then all connections as known by the connection manager will be closed. This can include connections that are not referenced in the connection string used to create the object that you are calling close on.

If connection is a string argument, then it will only close the connection identified by this hash. Hashes are identifiers for a connection and can be obtained by calling MongoClient::getConnections().

Возвращаемые значения

Returns if the connection was successfully closed.

Примеры

Пример #1 MongoClient::close() example

This example demonstrates how to selectively close all connections for secondaries only.

<?php
// Connect to a replicaset
$a = new MongoClient("mongodb://whisky:13000/?replicaset=seta");

$connections = $a->getConnections();

foreach ( $connections as $con )
{
    // Loop over all the connections, and when the type is "SECONDARY"
    // we close the connection
    if ( $con['connection']['connection_type_desc'] == "SECONDARY" )
    {
        echo "Closing '{$con['hash']}': ";
        $closed = $a->close( $con['hash'] );
        echo $closed ? "ok" : "failed", "\n";
    }
}
?>

Результат выполнения данного примера:

Closing 'whisky:13001;X;4948': ok

Список изменений

Версия | Описание
1.3.0 | The connection parameter to this function was added in 1.3.0. Before that, only the write connection would be closed by this method.
1.2.0 | Before version 1.2.0 the driver would not use persistent connections by default, and all connections would be closed as soon as a MongoDB connection went out if scope. Since version 1.2.0 this is no longer the case and it is a bad idea to call close as you might end up overloading the server with connections under high load.

Смотрите также

  • MongoClient::getConnections() - Return info about all open connections


Connects to a database server

  • « MongoClient::close
  • MongoClient::__construct »
  • PHP Manual
  • MongoClient
  • Connects to a database server

MongoClient::connect

(PECL mongo >=1.3.0)

MongoClient::connect — Connects to a database server

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public bool MongoClient::connect ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

If the connection was successful.

Ошибки

Throws MongoConnectionException if it fails to connect to the database.


Creates a new database connection object

  • « MongoClient::connect
  • MongoClient::dropDB »
  • PHP Manual
  • MongoClient
  • Creates a new database connection object

MongoClient::__construct

(PECL mongo >=1.3.0)

MongoClient::__construct — Creates a new database connection object

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\Driver\Manager::__construct()

Описание

 public MongoClient::__construct
  ([ string $server = "mongodb://localhost:27017"
 [, array $options = array("connect" => TRUE)
 [, array $driver_options
]]] )

If no parameters are passed, this connects to "localhost:27017" (or whatever was specified in php.ini for mongo.default_host and mongo.default_port).

server should have the form:

mongodb://[username:password@]host1[:port1][,host2[:port2:],...]/db

The connection string always starts with mongodb://, to indicate it is a connection string in this form.

If username and password are specified, the constructor will attempt to authenticate the connection with the database before returning. Username and password are optional and must be followed by an @, if specified.

At least one host must be given (port optional, always defaulting to 27017) and as many hosts as desired may be connected to. Host names are comma-separated and the constructor will return successfully if it connected to at least one host. If it could not connect to any of the hosts, it will throw a MongoConnectionException. Please see the Replica Sets section for information on how to connect to Replica Sets.

If you specified a username and password, you may specify a database to authenticate with. If db is not specified, "admin" will be used.

An optional query string may be used to specify extra options. The same options are supported through the options array as well, and are therefore redescribed there. See the examples below on how to set those options.

One part of the options governs how the driver reads from secondary nodes in a replica set environment. Extra information on how these read preferences work is available as well through the read preferences documentation page.

Список параметров

server

The server name.

options

An array of options for the connection. Currently available options include:

  • "authMechanism"

    Available mechanisms are:

    authMechanism | Description | Availability
    MONGODB-CR | Authenticate using Challenge Response mechanism. This is the default value. | All MongoDB versions
    X509 | Authenticates using X509 certificates | MongoDB 2.6. Only available when OpenSSL is enabled
    PLAIN | Authenticates using unencrypted plain username+password. Must be used over SSL connections. Generally used by MongoDB to login via 3rd party LDAP server | MongoDB Enterprise 2.4. The Driver must be compiled against CyrusSASL2
    GSSAPI | Authenticates via kerberos systems | MongoDB Enterprise 2.4. The Driver must be compiled against CyrusSASL2

  • "authSource"

    Should be set to the database name where the user is defined it.

  • "connect"

    If the constructor should connect before returning. Default is TRUE. When set to FALSE the driver will automatically connect to the server whenever it is necessary to do a query. Alternatively, you can run MongoClient::connect() manually.

    Внимание

    This option is not supported through the connection string.

  • "connectTimeoutMS"

    How long a connection can take to be opened before timing out in milliseconds. Defaults to 60000 (60 seconds).

    If -1 is specified, no connection timeout will be applied and PHP will use default_socket_timeout.

  • "db"

    The database to authenticate against can be specified here, instead of including it in the host list. This overrides a database given in the host list.

  • "fsync"

    When "fsync" is set, all write operations will block until the database has flushed the changes to disk. This makes the write operations slower, but it guarantees that writes have succeeded and that the operations can be recovered in case of total system failure.

    If the MongoDB server has journaling enabled, this option is identical to "journal". If journaling is not enabled, this option ensures that write operations will be synced to database files on disk.

    Замечание: If journaling is enabled, users are strongly encouraged to use the "journal" option instead of "fsync". Do not use "fsync" and "journal" simultaneously, as that will result in an error.

  • "journal"

    When "journal" is set, all write operations will block until the database has flushed the changes to the journal on disk. This makes the write operations slower, but it guarantees that writes have succeeded and that the operations can be recovered in case of total system failure.

    Замечание: If this option is used and journaling is disabled, MongoDB 2.6+ will raise an error and the write will fail; older server versions will simply ignore the option.

  • "gssapiServiceName"

    Sets the » Kerberos service principal. Only applicable when authMechanism=GSSAPI. Defaults to "mongodb".

  • "password"

    The password can be specified here, instead of including it in the host list. This is especially useful if a password has a "@" in it. This overrides a password set in the host list.

  • "readPreference"

    Specifies the read preference type. Read preferences provide you with control from which secondaries data can be read from.

    Allowed values are: MongoClient::RP_PRIMARY,
MongoClient::RP_PRIMARY_PREFERRED,
MongoClient::RP_SECONDARY,
MongoClient::RP_SECONDARY_PREFERRED and
MongoClient::RP_NEAREST.

    See the documentation on read preferences for more information.

  • "readPreferenceTags"

    Specifies the read preference tags as an array of strings. Tags can be used in combination with the readPreference option to further control which secondaries data might be read from.

    See the documentation on read preferences for more information.

  • "replicaSet"

    The name of the replica set to connect to. If this is given, the primary will be automatically be determined. This means that the driver may end up connecting to a server that was not even listed. See the replica set example below for details.

  • "secondaryAcceptableLatencyMS"

    When reading from a secondary (using ReadPreferences), do not read from secondaries known to be more then secondaryAcceptableLatencyMS away from us. Defaults to 15

  • "socketTimeoutMS"

    How long a socket operation (read or write) can take before timing out in milliseconds. Defaults to 30000 (30 seconds).

    If -1 is specified, socket operations may block indefinitely. This option may also be set on a per-operation basis using MongoCursor::timeout() for queries or the "socketTimeoutMS" option for write methods.

    Замечание: This is a client-side timeout. If a write operation times out, there is no way to know if the server actually handled the write or not, as a MongoCursorTimeoutException will be thrown in lieu of returning a write result.

  • "ssl"

    A boolean to specify whether you want to enable SSL for the connections to MongoDB. Extra options such as certificates can be set with Опции контекста SSL.

  • "username"

    The username can be specified here, instead of including it in the host list. This is especially useful if a username has a ":" in it. This overrides a username set in the host list.

  • "w"

    The w option specifies the Write Concern for the driver, which determines how long the driver blocks when writing. The default value is 1.

    This option is applicable when connecting to both single servers and replica sets. A positive value controls how many nodes must acknowledge the write instruction before the driver continues. A value of 1 would require the single server or primary (in a replica set) to acknowledge the write operation. A value of 3 would cause the driver to block until the write has been applied to the primary as well as two secondary servers (in a replica set).

    A string value is used to control which tag sets are taken into account for write concerns. "majority" is special and ensures that the write operation has been applied to the majority (more than 50%) of the participating nodes.

  • "wTimeoutMS"

    This option specifies the time limit, in milliseconds, for write concern acknowledgement. It is only applicable for write operations where "w" is greater than 1, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of 0 may be specified to block indefinitely. The default value is 10000 (ten seconds).

The following options are deprecated and should no longer be used:

  • "slaveOkay"

    Deprecated. Please use the read preference options.

  • "timeout"

    Deprecated alias for "connectTimeoutMS".

  • "wTimeout"

    Deprecated alias for "wTimeoutMS".

driver_options

An array of options for the MongoDB driver. Options include setting connection context options for SSL or logging callbacks.

  • "context"

    The Stream Context to attach to all new connections. This allows you for example to configure SSL certificates and are described at SSL context options. See the Connecting over SSL tutorial.

Возвращаемые значения

Returns a new database connection object.

Ошибки

Throws MongoConnectionException if it tries and fails to connect to the database for all hostnames given. It will also throw a MongoConnnectionException if an invalid username or password is given. See MongoConnectionException documentation for common exceptions and their causes.

Примеры

Пример #1 MongoClient::__construct() replica set example

This example shows how to connect the driver to a replica set. It assumes that there is a set of three servers: sf1.example.com, sf2.example.com, and ny1.example.com. The primary could be any one of these servers.

<?php

// pass a comma-separated list of server names to the constructor
// Note that we don't need to pass in all the members of the replicaset, the driver
// will derive the full list.
$m1 = new MongoClient("mongodb://sf2.example.com,ny1.example.com", array("replicaSet" => "myReplSet"));

?>

If the current primary fails, the driver will figure out which secondary server became the new primary and automatically start using that connection. Automatic failover will not work correctly if replicaSet is not specified.

At least one seed in the seed list must be up for the driver to connect to the replica set.

If you include seeds from two separate replica sets, behavior is undefined.

See the » core documentation on replica sets for more information.

Пример #2 Connecting to a domain socket

In version 1.0.9+, you can use a UNIX domain socket to connect to an instance of MongoDB running locally. This should be slightly faster than using a network connection.

In version 1.5.0, the MongoDB server automatically opens a socket at /tmp/mongodb-<port>.sock. You can connect to this by specifying the path in your connection string:

<?php

// MongoDB server running locally on port 20000
$m = new MongoClient("mongodb:///tmp/mongodb-20000.sock");

?>

You can combine this with any other connections you'd like:

<?php

// try to connect to the domain socket, fall back to localhost connection
$m = new MongoClient("mongodb:///tmp/mongodb-27017.sock,localhost:27017");

?>

Пример #3 MongoClient::__construct() authentication example

A user must exist in the admin database before attempting to use authentication. You can create one with the Mongo shell by running:

> use admin
switched to db admin
> db.addUser("testUser", "testPass");
{
        "_id" : ObjectId("4b21272fd9ab21611d19095c"),
        "user" : "testUser",
        "pwd" : "03b9b27e0abf1865e2f6fcbd9845dd59"
}
>

After creating a user with, in this case, username "testUser" and password "testPass", you can create an authenticated connection:

<?php

$m = new MongoClient("mongodb://testUser:testPass@localhost");

?>

Пример #4 MongoClient::__construct() read preference example

<?php

// Prefer the nearest server in the "east" data center
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));
?>

See the read preferences section of this manual for further information.

Пример #5 MongoClient::__construct() options example

Options can be passed both through the query string in the connection string, or as an array passed as second argument to the constructor.

Here we set the journal option to true and readPreference to secondary preferred as default for all write operations:

<?php
$m = new MongoClient("mongodb://localhost/?journal=true&readPreference=secondary");
?>

And now we do the same, but as an options array:

<?php
$options = array(
    'journal' => true,
    'readPreference' => 'secondary',
);
$m = new MongoClient("mongodb://localhost/", $options);
?>

Пример #6 MongoClient::__construct() read preference example

<?php

// Prefer the nearest server in the "east" data center
$uri  = 'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));
?>

See the read preferences section of this manual for further information.

Список изменений

Версия | Описание
1.5.0

Added "authMechanism", "gssapiServiceName", and "secondaryAcceptableLatencyMS".

1.4.0

Added "ssl" option and support for connecting over SSL.

Added "wTimeoutMS" option, which replaces "wTimeout".

Emits E_DEPRECATED when "slaveOkay" or "timeout" is used.

1.5.0

Added "authSource".

1.3.4

Added "connectTimeoutMS" and "socketTimeoutMS" options.

1.3.0

Added "readPreference", "readPreferenceTags", "w", and "wTimeout" options.

1.2.0

Added "username" and "password" options.

Removed "persist" option, as all connections are now persistent. It can still be used, but it doesn't affect anything.

"persist"

If the connection should be persistent. If set, the connection will be persistent. The string representation of the value is used as an ID for the connection, so two instances of MongoClient that are initialized with array("persist" => "foobar") will share the same database connection, whereas an instance initialized with array("persist" => "barbaz") will use a different database connection.

The "replicaSet" option now takes a string, not a boolean.

1.0.9 | Added "replicaSet" option.
1.0.2

Changed constructor to take an array of options. Pre-1.0.2, the constructor took the following parameters:

server

The server name.

connect

Optional boolean parameter specifying if the constructor should connect to the database before returning. Defaults to TRUE.

persistent

If the connection should be persistent.

paired

If the connection should be paired.


Drops a database [deprecated]

  • « MongoClient::__construct
  • MongoClient::__get »
  • PHP Manual
  • MongoClient
  • Drops a database [deprecated]

MongoClient::dropDB

(PECL mongo >=1.3.0)

MongoClient::dropDB — Drops a database [deprecated]

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено, но можно использовать функции из библиотеки PHP:

  • » MongoDB\Database\drop

Описание

public array MongoClient::dropDB ( mixed $db )
Внимание

Deprecated

Use MongoDB::drop() instead.

Список параметров

db

The database to drop. Can be a MongoDB object or the name of the database.

Возвращаемые значения

Returns the database response.


Gets a database

  • « MongoClient::dropDB
  • MongoClient::getConnections »
  • PHP Manual
  • MongoClient
  • Gets a database

MongoClient::__get

(PECL mongo >=1.3.0)

MongoClient::__get — Gets a database

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено, но можно использовать функции из библиотеки PHP:

  • » MongoDB\Client\selectDatabase

Описание

public MongoDB MongoClient::__get ( string $dbname )

This is the cleanest way of getting a database. If the database name has any special characters, MongoClient::selectDB() will need to be used; however, this should be sufficient for most cases.

<?php

$mongo = new MongoClient();

// the following two lines are equivalent
$db = $mongo->selectDB("foo");
$db = $mongo->foo;

?>

Список параметров

dbname

The database name.

Возвращаемые значения

Returns a new db object.

Ошибки

Throws a generic exception if the database name is invalid.


Return info about all open connections

  • « MongoClient::__get
  • MongoClient::getHosts »
  • PHP Manual
  • MongoClient
  • Return info about all open connections

MongoClient::getConnections

(PECL mongo >=1.3.0)

MongoClient::getConnections — Return info about all open connections

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public static array MongoClient::getConnections ( void )

Returns an array of all open connections, and information about each of the servers

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of open connections.

Примеры

Пример #1 MongoClient::getConnections() example

<?php
$m = new MongoClient;
var_dump($m->getConnections());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(3) {
    ["hash"]=>
    string(26) "localhost:27017;-;X;56052"
    ["server"]=>
    array(3) {
      ["host"]=>
      string(10) "localhost"
      ["port"]=>
      int(27017)
      ["pid"]=>
      int(56052)
    }
    ["connection"]=>
    array(8) {
      ["last_ping"]=>
      int(1354076401)
      ["last_ismaster"]=>
      int(0)
      ["ping_ms"]=>
      int(0)
      ["connection_type"]=>
      int(1)
      ["connection_type_desc"]=>
      string(10) "STANDALONE"
      ["max_bson_size"]=>
      int(16777216)
      ["tag_count"]=>
      int(0)
      ["tags"]=>
      array(0) {
      }
    }
  }
}


Updates status for all associated hosts

  • « MongoClient::getConnections
  • MongoClient::getReadPreference »
  • PHP Manual
  • MongoClient
  • Updates status for all associated hosts

MongoClient::getHosts

(PECL mongo >=1.3.0)

MongoClient::getHosts — Updates status for all associated hosts

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\Driver\Manager::getServers()

Описание

public array MongoClient::getHosts ( void )

This method is only useful with a connection to a replica set. It returns the status of all of the hosts in the set. Without a replica set, it will just return an array with one element containing the host that you are connected to.

See the query section of this manual for information on distributing reads to secondaries.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of information about the hosts in the set. Includes each host's hostname, its health (1 is healthy), its state (1 is primary, 2 is secondary, 0 is anything else), the amount of time it took to ping the server, and when the last ping occurred. For example, on a three-member replica set, it might look something like:

array(3) {
  ["A:27017"]=>
  array(4) {
    ["host"]=>
    "A"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(2)
    ["ping"]=>
    int(369)
    ["lastPing"]=>
    int(1309470644)
  }
  ["B:27017"]=>
  array(4) {
    ["host"]=>
    "B"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(1)
    ["ping"]=>
    int(139)
    ["lastPing"]=>
    int(1309470644)
  }
  ["C:27017"]=>
  array(4) {
    ["host"]=>
    "C"
    ["port"]=>
    27017
    ["health"]=>
    int(1)
    ["state"]=>
    int(2)
    ["ping"]=>
    int(1012)
    ["lastPing"]=>
    int(1309470644)
  }
}

Список изменений

Версия | Описание
1.2.10 | Support for non-replicasets was added. The returned array elements now also include the hostname and port.

Смотрите также

  • MongoClient::getConnections() - Return info about all open connections


Get the read preference for this connection

  • « MongoClient::getHosts
  • MongoClient::getWriteConcern »
  • PHP Manual
  • MongoClient
  • Get the read preference for this connection

MongoClient::getReadPreference

(PECL mongo >=1.3.0)

MongoClient::getReadPreference — Get the read preference for this connection

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public array MongoClient::getReadPreference ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Список изменений

Версия | Описание
1.3.3 | The return value has changed to be consistent with MongoClient::setReadPreference(). The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.

Примеры

Пример #1 MongoClient::getReadPreference() return value example

<?php

$m = new MongoClient();
$m->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($m->getReadPreference());
?>

Результат выполнения данного примера:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Смотрите также

  • The read preferences documentation.
  • MongoClient::setReadPreference() - Set the read preference for this connection


Get the write concern for this connection

  • « MongoClient::getReadPreference
  • MongoClient::killCursor »
  • PHP Manual
  • MongoClient
  • Get the write concern for this connection

MongoClient::getWriteConcern

(PECL mongo >=1.5.0)

MongoClient::getWriteConcern — Get the write concern for this connection

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public array MongoClient::getWriteConcern ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция возвращает массив, описывающий контроль записи. Массив содержит значения w - уровень подтверждения или режим в виде строки, и wtimeout определяющий максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Примеры

Пример #1 MongoClient::getWriteConcern() return value example

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
var_dump($mc->getWriteConcern());

$mc->setWriteConcern(1, 1000);
var_dump($mc->getWriteConcern());
?>

Результат выполнения данного примера:

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Смотрите также

  • The write concern documentation.
  • MongoClient::setWriteConcern() - Set the write concern for this connection


Kills a specific cursor on the server

  • « MongoClient::getWriteConcern
  • MongoClient::listDBs »
  • PHP Manual
  • MongoClient
  • Kills a specific cursor on the server

MongoClient::killCursor

(PECL mongo >=1.5.0)

MongoClient::killCursor — Kills a specific cursor on the server

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public bool MongoClient::killCursor ( string $server_hash , int|MongoInt64 $id )

In certain situations it might be needed to kill a cursor on the server. Usually cursors time out after 10 minutes of inactivity, but it is possible to create an immortal cursor with MongoCursor::immortal() that never times out. In order to be able to kill such an immortal cursor, you can call this method with the information supplied by MongoCursor::info().

Список параметров

server_hash

The server hash that has the cursor. This can be obtained through MongoCursor::info().

id

The ID of the cursor to kill. You can either supply an int containing the 64 bit cursor ID, or an object of the MongoInt64 class. The latter is necessary on 32 bit platforms (and Windows).

Возвращаемые значения

Returns TRUE if the method attempted to kill a cursor, and FALSE if there was something wrong with the arguments (such as a wrong server_hash). The return status does not reflect where the cursor was actually killed as the server does not provide that information.

Ошибки

This method displays a warning if the supplied server_hash does not match up with an existing connection. No attempt to kill a cursor is attempted in that case either.

Примеры

Пример #1 MongoClient::killCursor() example

This example shows how to connect, do a query, obtain the cursor information and then kill the cursor.

<?php
$m = new MongoClient();
$c = $m->testdb->collection;
$cursor = $c->find();
$result = $cursor->next();

// Now the cursor is valid, so we can get the hash and ID out:
$info = $cursor->info();

// Kill the cursor
MongoClient::killCursor( $info['server'], $info['id'] );
?>


Lists all of the databases available.

  • « MongoClient::killCursor
  • MongoClient::selectCollection »
  • PHP Manual
  • MongoClient
  • Lists all of the databases available.

MongoClient::listDBs

(PECL mongo >=1.3.0)

MongoClient::listDBs — Lists all of the databases available.

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено, но можно использовать функции из библиотеки PHP:

  • » MongoDB\Client\listDatabases

Описание

public array MongoClient::listDBs ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an associative array containing three fields. The first field is databases, which in turn contains an array. Each element of the array is an associative array corresponding to a database, giving th database's name, size, and if it's empty. The other two fields are totalSize (in bytes) and ok, which is 1 if this method ran successfully.

Примеры

Пример #1 MongoClient::listDBs() example

Example demonstrating how to use listDBs and the returned data structure.

<?php

$mongo = new MongoClient();
$dbs = $mongo->listDBs();
print_r($dbs);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [databases] => Array
        (
            [0] => Array
                (
                    [name] => doctrine
                    [sizeOnDisk] => 218103808
                    [empty] =>
                )
        )

    [totalSize] => 218103808
    [ok] => 1
)


Gets a database collection

  • « MongoClient::listDBs
  • MongoClient::selectDB »
  • PHP Manual
  • MongoClient
  • Gets a database collection

MongoClient::selectCollection

(PECL mongo >=1.3.0)

MongoClient::selectCollection — Gets a database collection

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено, но можно использовать функции из библиотеки PHP:

  • » MongoDB\Client\selectCollection

Описание

public MongoCollection MongoClient::selectCollection ( string $db , string $collection )

Список параметров

db

The database name.

collection

The collection name.

Возвращаемые значения

Returns a new collection object.

Ошибки

Throws Exception if the database or collection name is invalid.

Примеры

Пример #1 MongoClient::selectCollection() example

<?php
$m = new MongoClient();

$c1 = $m->selectCollection("foo", "bar.baz");
// which is equivalent to
$c2 = $m->selectDB("foo")->selectCollection("bar.baz");

// $c1 and $c2 now represent the same collection
?>


Gets a database

  • « MongoClient::selectCollection
  • MongoClient::setReadPreference »
  • PHP Manual
  • MongoClient
  • Gets a database

MongoClient::selectDB

(PECL mongo >=1.3.0)

MongoClient::selectDB — Gets a database

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено, но можно использовать функции из библиотеки PHP:

  • » MongoDB\Client\selectDatabase

Описание

public MongoDB MongoClient::selectDB ( string $name )

Список параметров

name

The database name.

Возвращаемые значения

Returns a new database object.

Ошибки

Throws Exception if the database name is invalid.


Set the read preference for this connection

  • « MongoClient::selectDB
  • MongoClient::setWriteConcern »
  • PHP Manual
  • MongoClient
  • Set the read preference for this connection

MongoClient::setReadPreference

(PECL mongo >=1.3.0)

MongoClient::setReadPreference — Set the read preference for this connection

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public bool MongoClient::setReadPreference ( string $read_preference [, array $tags ] )

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Возвращает TRUE в случае успеха, иначе - FALSE.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Примеры

Пример #1 MongoClient::setReadPreference() tag set array syntax example

<?php

$m = new MongoClient();

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$m->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Смотрите также

  • The read preferences documentation.
  • MongoClient::getReadPreference() - Get the read preference for this connection


Set the write concern for this connection

  • « MongoClient::setReadPreference
  • MongoClient::__toString »
  • PHP Manual
  • MongoClient
  • Set the write concern for this connection

MongoClient::setWriteConcern

(PECL mongo >=1.5.0)

MongoClient::setWriteConcern — Set the write concern for this connection

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public bool MongoClient::setWriteConcern ( mixed $w [, int $wtimeout ] )

Список параметров

w

Контроль записи. Может быть числом означающим число серверов, требуемых для подтверждения записи, или режим в виде строки (например "majority").

wtimeout

Максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Возвращаемые значения

Возвращает TRUE в случае успеха, или FALSE в противном случае.

Ошибки

Бросает предупреждение E_WARNING в случае, если параметр w не является целым числом или строкой.

Примеры

Пример #1 MongoClient::setWriteConcern() example

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');

// Require that the majority of servers in the replica set acknowledge writes
// within three seconds.
$mc->setWriteConcern('majority', 3000);
?>

Смотрите также

  • The write concern documentation.
  • MongoClient::getWriteConcern() - Get the write concern for this connection


String representation of this connection

  • « MongoClient::setWriteConcern
  • MongoDB »
  • PHP Manual
  • MongoClient
  • String representation of this connection

MongoClient::__toString

(PECL mongo >=1.3.0)

MongoClient::__toString — String representation of this connection

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public string MongoClient::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns hostname and port for this connection.


The MongoDB class

(PECL mongo >=0.9.0)

Введение

Instances of this class are used to interact with a database. To get a database:

Пример #1 Selecting a database

<?php

$m = new MongoClient(); // connect
$db = $m->selectDB("example");

?>
Database names can use almost any character in the ASCII range. However, they cannot contain " ", "." or be the empty string. The name "system" is also reserved.

A few unusual, but valid, database names: "null", "[x,y]", "3", "\"", "/".

Unlike collection names, database names may contain "$".

Обзор классов

MongoDB {
/* Константы */
const int PROFILING_OFF = 0 ;
const int PROFILING_SLOW = 1 ;
const int PROFILING_ON = 2 ;
/* Fields */
public integer $w = 1 ;
public integer $wtimeout = 10000 ;
/* Методы */
public array authenticate ( string $username , string $password )
public array command ( array $command [, array $options = array() [, string &$hash ]] )
public __construct ( MongoClient $conn , string $name )
public MongoCollection createCollection ( string $name [, array $options ] )
public array createDBRef ( string $collection , mixed $document_or_id )
public array drop ( void )
public array dropCollection ( mixed $coll )
public array execute ( mixed $code [, array $args = array() ] )
public bool forceError ( void )
public MongoCollection __get ( string $name )
public array getCollectionInfo ([ array $options = array() ] )
public array getCollectionNames ([ array $options = array() ] )
public array getDBRef ( array $ref )
public MongoGridFS getGridFS ([ string $prefix = "fs" ] )
public int getProfilingLevel ( void )
public array getReadPreference ( void )
public bool getSlaveOkay ( void )
public array getWriteConcern ( void )
public array lastError ( void )
public array listCollections ([ array $options = array() ] )
public array prevError ( void )
public array repair ([ bool $preserve_cloned_files = FALSE [, bool $backup_original_files = FALSE ]] )
public array resetError ( void )
public MongoCollection selectCollection ( string $name )
public int setProfilingLevel ( int $level )
public bool setReadPreference ( string $read_preference [, array $tags ] )
public bool setSlaveOkay ([ bool $ok = true ] )
public bool setWriteConcern ( mixed $w [, int $wtimeout ] )
public string __toString ( void )
}

Предопределенные константы

MongoDB Log Levels

MongoDB::PROFILING_OFF
0
Profiling is off.
MongoDB::PROFILING_SLOW
1
Profiling is on for slow operations (>100 ms).
MongoDB::PROFILING_ON
2
Profiling is on for all operations.

Fields

w
1

The number of servers to replicate a change to before returning success. Inherited by instances of MongoCollection derived from this. w functionality is only available in version 1.5.1+ of the MongoDB server and 1.0.8+ of the driver.

w is used whenever you need to adjust the acknowledgement level (MongoCollection::insert(), MongoCollection::update(), MongoCollection::remove(), MongoCollection::save(), and MongoCollection::ensureIndex() all support this option). With the default value (1), an acknowledged operation will return once the database server has the operation. If the server goes down before the operation has been replicated to a secondary, it is possible to lose the operation forever. Thus, you can specify w to be higher than one and guarantee that at least one secondary has the operation before it is considered successful.

For example, if w is 2, the primary and one secondary must have a record of the operation or the driver will throw a MongoCursorException. It is tempting to set w to the total number of secondaries + primary, but then if one secondary is down the operation will fail and an exception will be thrown, so usually w=2 is safest (primary and one secondary).

wtimeout
10000

The number of milliseconds to wait for MongoDB::$w replications to take place. Inherited by instances of MongoCollection derived from this. w functionality is only available in version 1.5.1+ of the MongoDB server and 1.0.8+ of the driver.

Unless wtimeout is set, the server waits forever for replicating to w servers to finish. The driver defaults to waiting for 10 seconds, you can change this value to alter its behavior.

Смотрите также

MongoDB core docs on » databases.

Содержание

  • MongoDB::authenticate — Log in to this database
  • MongoDB::command — Execute a database command
  • MongoDB::__construct — Creates a new database
  • MongoDB::createCollection — Creates a collection
  • MongoDB::createDBRef — Creates a database reference
  • MongoDB::drop — Удалаяет базу данных
  • MongoDB::dropCollection — Drops a collection [deprecated]
  • MongoDB::execute — Runs JavaScript code on the database server [deprecated]
  • MongoDB::forceError — Creates a database error
  • MongoDB::__get — Получить коллекцию
  • MongoDB::getCollectionInfo — Returns information about collections in this database
  • MongoDB::getCollectionNames — Gets an array of names for all collections in this database
  • MongoDB::getDBRef — Fetches the document pointed to by a database reference
  • MongoDB::getGridFS — Fetches toolkit for dealing with files stored in this database
  • MongoDB::getProfilingLevel — Gets this database's profiling level
  • MongoDB::getReadPreference — Get the read preference for this database
  • MongoDB::getSlaveOkay — Get slaveOkay setting for this database
  • MongoDB::getWriteConcern — Get the write concern for this database
  • MongoDB::lastError — Check if there was an error on the most recent db operation performed
  • MongoDB::listCollections — Gets an array of MongoCollection objects for all collections in this database
  • MongoDB::prevError — Checks for the last error thrown during a database operation
  • MongoDB::repair — Repairs and compacts this database
  • MongoDB::resetError — Clears any flagged errors on the database
  • MongoDB::selectCollection — Gets a collection
  • MongoDB::setProfilingLevel — Sets this database's profiling level
  • MongoDB::setReadPreference — Set the read preference for this database
  • MongoDB::setSlaveOkay — Change slaveOkay setting for this database
  • MongoDB::setWriteConcern — Set the write concern for this database
  • MongoDB::__toString — The name of this database


Log in to this database

  • « MongoDB
  • MongoDB::command »
  • PHP Manual
  • MongoDB
  • Log in to this database

MongoDB::authenticate

(PECL mongo >=1.0.1)

MongoDB::authenticate — Log in to this database

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Instead, you need to provide credentials through the connection string.

Описание

public array MongoDB::authenticate ( string $username , string $password )

This method causes its connection to be authenticated. If authentication is enabled for the database server (it's not, by default), you need to log in before the database will allow you to do anything.

In general, you should use the authenticate built into MongoClient::__construct() in preference to this method. If you authenticate on connection and the connection drops and reconnects during your session, you'll be reauthenticated. If you manually authenticated using this method and the connection drops, you'll have to call this method again once you're reconnected.

This method is identical to running:

<?php

$salted = "${username}:mongo:${password}";
$hash = md5($salted);

$nonce = $db->command(array("getnonce" => 1));

$saltedHash = md5($nonce["nonce"]."${username}${hash}");

$result = $db->command(array("authenticate" => 1,
    "user" => $username,
    "nonce" => $nonce["nonce"],
    "key" => $saltedHash
));

?>

Once a connection has been authenticated, it can only be un-authenticated by using the "logout" database command:

<?php

$db->command(array("logout" => 1));

?>

Список параметров

username

The username.

password

The password (in plaintext).

Возвращаемые значения

Returns database response. If the login was successful, it will return

<?php
array("ok" => 1);
?>
If something went wrong, it will return
<?php
array("ok" => 0, "errmsg" => "auth fails");
?>
("auth fails" could be another message, depending on database version and what when wrong).

Смотрите также

MongoDB core docs on » authenticate.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used. Please pass in the authentication details to the constructor.


Execute a database command

  • « MongoDB::authenticate
  • MongoDB::__construct »
  • PHP Manual
  • MongoDB
  • Execute a database command

MongoDB::command

(PECL mongo >=0.9.2)

MongoDB::command — Execute a database command

Описание

public array MongoDB::command ( array $command [, array $options = array() [, string &$hash ]] )

Almost everything that is not a CRUD operation can be done with a database command. Need to know the database version? There's a command for that. Need to do aggregation? There's a command for that. Need to turn up logging? You get the idea.

This method is identical to:

<?php

public function command($data) {
    return $this->selectCollection('$cmd')->findOne($data);
}

?>

Список параметров

command

The query to send.

options

An array of options for the index creation. Currently available options include:

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

The following options are deprecated and should no longer be used:

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

hash

Set to the connection hash of the server that executed the command. When the command result is suitable for creating a MongoCommandCursor, the hash is intended to be passed to MongoCommandCursor::createFromDocument().

The hash will also correspond to a connection returned from MongoClient::getConnections().

Список изменений

Версия | Описание
1.5.0 | Renamed the "timeout" option to "socketTimeoutMS". Emits E_DEPRECATED when "timeout" is used. Added hash by-reference parameter.
1.2.0 | Added options parameter with a single option: "timeout".

Возвращаемые значения

Returns database response. Every database response is always maximum one document, which means that the result of a database command can never exceed 16MB. The resulting document's structure depends on the command, but most results will have the ok field to indicate success or failure and results containing an array of each of the resulting documents.

Примеры

Пример #1 MongoDB::command() "distinct" example

Finding all of the distinct values for a key.

<?php

$people = $db->people;

$people->insert(array("name" => "Joe", "age" => 4));
$people->insert(array("name" => "Sally", "age" => 22));
$people->insert(array("name" => "Dave", "age" => 22));
$people->insert(array("name" => "Molly", "age" => 87));

$ages = $db->command(array("distinct" => "people", "key" => "age"));

foreach ($ages['values'] as $age) {
    echo "$age\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

4
22
87

Пример #2 MongoDB::command() "distinct" example

Finding all of the distinct values for a key, where the value is larger than or equal to 18.

<?php

$people = $db->people;

$people->insert(array("name" => "Joe", "age" => 4));
$people->insert(array("name" => "Sally", "age" => 22));
$people->insert(array("name" => "Dave", "age" => 22));
$people->insert(array("name" => "Molly", "age" => 87));

$ages = $db->command(
    array(
        "distinct" => "people",
        "key" => "age",
        "query" => array("age" => array('$gte' => 18))
    )
);

foreach ($ages['values'] as $age) {
    echo "$age\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

22
87

Пример #3 MongoDB::command() MapReduce example

Get all users with at least on "sale" event, and how many times each of these users has had a sale.

<?php

// sample event document
$events->insert(array("user_id" => $id,
    "type" => $type,
    "time" => new MongoDate(),
    "desc" => $description));

// construct map and reduce functions
$map = new MongoCode("function() { emit(this.user_id,1); }");
$reduce = new MongoCode("function(k, vals) { ".
    "var sum = 0;".
    "for (var i in vals) {".
        "sum += vals[i];".
    "}".
    "return sum; }");

$sales = $db->command(array(
    "mapreduce" => "events",
    "map" => $map,
    "reduce" => $reduce,
    "query" => array("type" => "sale"),
    "out" => array("merge" => "eventCounts")));

$users = $db->selectCollection($sales['result'])->find();

foreach ($users as $user) {
    echo "{$user['_id']} had {$user['value']} sale(s).\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

User 47cc67093475061e3d9536d2 had 3 sale(s).
User 49902cde5162504500b45c2c had 14 sale(s).
User 4af467e4fd543cce7b0ea8e2 had 1 sale(s).

Замечание: Using MongoCode

This example uses MongoCode, which can also take a scope argument. However, at the moment, MongoDB does not support using scopes in MapReduce. If you would like to use client-side variables in the MapReduce functions, you can add them to the global scope by using the optional scope field with the database command. See the » MapReduce documentation for more information.

Замечание: The out argument

Before 1.8.0, the out argument was optional. If you did not use it, MapReduce results would be written to a temporary collection, which would be deleted when your connection was closed. In 1.8.0+, the out argument is required. See the » MapReduce documentation for more information.

Пример #4 MongoDB::command() "geoNear" example

This example shows how to use the geoNear command.

<?php
$m = new MongoClient();
$d = $m->demo;
$c = $d->poiConcat;

$r = $d->command(array(
    'geoNear' => "poiConcat",      // Search in the poiConcat collection
    'near' => array(-0.08, 51.48), // Search near 51.48°N, 0.08°E
    'spherical' => true,           // Enable spherical search
    'num' => 5,                    // Maximum 5 returned documents
));
print_r($r);
?>

Смотрите также

  • MongoCollection::aggregate() - Perform an aggregation using the aggregation framework
  • MongoCollection::findAndModify() - Update a document and return it
  • MongoCollection::group() - Performs an operation similar to SQL's GROUP BY command

MongoDB core docs on » database commands and on individual commands: » findAndModify, » getLastError, and » repairDatabase (dozens more exist, there are merely a few examples).


Creates a new database

  • « MongoDB::command
  • MongoDB::createCollection »
  • PHP Manual
  • MongoDB
  • Creates a new database

MongoDB::__construct

(PECL mongo >=0.9.0)

MongoDB::__construct — Creates a new database

Описание

public MongoDB::__construct ( MongoClient $conn , string $name )

This method is not meant to be called directly. The preferred way to create an instance of MongoDB is through MongoClient::__get() or MongoClient::selectDB().

If you're ignoring the previous paragraph and want to call it directly you can do so:

<?php

$m = new MongoClient();
$db = new MongoDB($m, 'mydbname');

?>

But don't. Isn't this much nicer:

<?php

$m = new MongoClient();
$db = $m->mydbname;

// or, if the name contains weird characters:

$db = $m->selectDB('my,db:name');

?>

Список параметров

MongoClient conn

Database connection.

name

Database name.

Возвращаемые значения

Returns the database.

Ошибки

Throws default exception if the database name is invalid.


Creates a collection

  • « MongoDB::__construct
  • MongoDB::createDBRef »
  • PHP Manual
  • MongoDB
  • Creates a collection

MongoDB::createCollection

(PECL mongo >=0.9.0)

MongoDB::createCollection — Creates a collection

Описание

public MongoCollection MongoDB::createCollection ( string $name [, array $options ] )

This method is used to create capped collections and other collections requiring special options. It is identical to running:

<?php

$collection = $db->command(array(
    "create" => $name,
    "capped" => $options["capped"],
    "size" => $options["size"],
    "max" => $options["max"],
    "autoIndexId" => $options["autoIndexId"],
));

?>
See MongoDB::command() for more information about database commands.

Список параметров

name

The name of the collection.

options

An array containing options for the collections. Each option is its own element in the options array, with the option name listed below being the key of the element. The supported options depend on the MongoDB server version and storage engine, and the driver passes any option that you give it straight to the server. A few of the supported options are, but you can find a full list in the MongoDB core docs on » createCollection:

capped

If the collection should be a fixed size.

size

If the collection is fixed size, its size in bytes.

max

If the collection is fixed size, the maximum number of elements to store in the collection.

autoIndexId

If capped is TRUE you can specify FALSE to disable the automatic index created on the _id field. Before MongoDB 2.2, the default value for autoIndexId was FALSE.

Возвращаемые значения

Returns a collection object representing the new collection.

Примеры

Пример #1 MongoDB::createCollection() capped collection example

A capped collection is a special type of collection that has either a fixed or a fixed number of elements. Once the collection is "full," the oldest elements will be removed when new elements are added. Capped collections can be very useful for applications like logging, where you may want to reserve a certain amount of space for logs and not worry about them getting too big.

This example creates a very tiny log collection that will keep a maximum of 10 documents.

<?php

$log = $db->createCollection(
    "logger",
    array(
        'capped' => true,
        'size' => 10*1024,
        'max' => 10
    )
);

for ($i = 0; $i < 100; $i++) {
    $log->insert(array("level" => WARN, "msg" => "sample log message #$i", "ts" => new MongoDate()));
}

$msgs = $log->find();

foreach ($msgs as $msg) {
    echo $msg['msg']."\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

sample log message #90
sample log message #91
sample log message #92
sample log message #93
sample log message #94
sample log message #95
sample log message #96
sample log message #97
sample log message #98
sample log message #99

Список изменений

Версия Описание
1.4.0

In versions before 1.4.0, the options were all arguments to the method. The function synopsis in those older versions is:

public MongoCollection MongoDB::createCollection ( string $name [, bool $capped = FALSE [, int $size = 0 [, int $max = 0 ]]] )

The meaning of the options is the same as described under the options argument above.


Creates a database reference

  • « MongoDB::createCollection
  • MongoDB::drop »
  • PHP Manual
  • MongoDB
  • Creates a database reference

MongoDB::createDBRef

(PECL mongo >=0.9.0)

MongoDB::createDBRef — Creates a database reference

Описание

public array MongoDB::createDBRef ( string $collection , mixed $document_or_id )

This method is a flexible interface for creating database refrences (see MongoDBRef).

Список параметров

collection

The collection to which the database reference will point.

document_or_id

If an array or object is given, its _id field will be used as the reference ID. If a MongoId or scalar is given, it will be used as the reference ID.

Возвращаемые значения

Returns a database reference array.

If an array without an _id field was provided as the document_or_id parameter, NULL will be returned.

Примеры

Пример #1 MongoDB::createDBRef() example

Example demonstrating how to programatically create a DB reference array from a document.

<?php

$articles = $db->articles;

$article = array(
 'title' => 'Test article',
 'description' => 'Test article description'
);

$articles->insert($article);
$ref = $db->createDBRef('articles', $article);

print_r($article);
print_r($ref);
?>

Результатом выполнения данного примера будет что-то подобное:

     Array
     (
         [title] => Test article
         [description] => Test article description
         [_id] => MongoId Object
             (
             )

     )
     Array
     (
         [$ref] => articles
         [$id] => MongoId Object
             (
             )

     )

Now the $ref can be stored on another document and retrieved later with MongoDB::getDBRef() or MongoCollection::getDBRef().

Пример #2 MongoDB::createDBRef() example

Example demonstrating how to programatically create a DB reference from just an id.

<?php

$id = new MongoId('47cc67093475061e3d9536d2');
$ref = $db->createDBRef('articles', $id);
?>


Удалаяет базу данных

  • « MongoDB::createDBRef
  • MongoDB::dropCollection »
  • PHP Manual
  • MongoDB
  • Удалаяет базу данных

MongoDB::drop

(PECL mongo >=0.9.0)

MongoDB::drop — Удалаяет базу данных

Описание

public array MongoDB::drop ( void )

Удаляет текущую используемую базу данных.

Это аналогичто запуску:

<?php

public function drop() {
    $this->command(array("dropDatabase" => 1));
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает резульата операции.

Примеры

Пример #1 MongoDB::drop() example

Этот пример показывает, как можно удалить базу данных Mongo и узнать результат операции.

<?php

$db = $mongo->foo;
$response = $db->drop();
print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [dropped] => foo.$cmd
    [ok] => 1
)


Drops a collection [deprecated]

  • « MongoDB::drop
  • MongoDB::execute »
  • PHP Manual
  • MongoDB
  • Drops a collection [deprecated]

MongoDB::dropCollection

(PECL mongo >=0.9.0)

MongoDB::dropCollection — Drops a collection [deprecated]

Описание

public array MongoDB::dropCollection ( mixed $coll )
Внимание

Deprecated

Use MongoCollection::drop() instead.

This function leaks memory in version 1.0.7 and earlier!

Список параметров

coll

MongoCollection or name of collection to drop.

Возвращаемые значения

Returns the database response.


Runs JavaScript code on the database server [deprecated]

  • « MongoDB::dropCollection
  • MongoDB::forceError »
  • PHP Manual
  • MongoDB
  • Runs JavaScript code on the database server [deprecated]

MongoDB::execute

(PECL mongo >=0.9.3)

MongoDB::execute — Runs JavaScript code on the database server [deprecated]

Описание

public array MongoDB::execute ( mixed $code [, array $args = array() ] )
Внимание

The » eval command, which this method invokes, is deprecated in MongoDB 3.0+.

The Mongo database server runs a JavaScript engine. This method allows you to run arbitary JavaScript on the database. This can be useful if you want touch a number of collections lightly, or process some results on the database side to reduce the amount that has to be sent to the client.

Running JavaScript in the database takes a write lock, meaning it blocks other operations. Make sure you consider this before running a long script.

This is a wrapper for the » eval database command. This method is basically:

<?php

public function execute($code, $args) {
    return $this->command(array('eval' => $code, 'args' => $args));
}

?>

MongoDB implies a return statement if you have a single statement on a single line. This can cause some unintuitive behavior. For example, this returns "foo":

<?php

$db->execute('"foo";');

?>

However, these return NULL:

<?php

$db->execute('"bar"; "foo";'); // more than one statement

$db->execute('db.foo.count(
);'); // more than one line

?>

To avoid surprising behavior, it is best not to depend on MongoDB to decide what to return, but to explicitly state a return value. In the examples above, we can change them to:

<?php

$db->execute('"bar"; return "foo";');

$db->execute('return db.foo.count(
);');

?>

Now the first statement will return "foo" and the second statement will return a count of the "foo" collection.

Список параметров

code

MongoCode or string to execute.

args

Arguments to be passed to code.

Возвращаемые значения

Returns the result of the evaluation.

Примеры

Пример #1 Simple MongoDB::execute() example

<?php

$response = $db->execute("function() { return 'Hello, world!'; }");
echo $response['retval'];

?>

Результатом выполнения данного примера будет что-то подобное:

Hello, world!

Пример #2 Parameter MongoDB::execute() example

The optional array of parameters will be passed to the JavaScript function.

<?php

$response = $db->execute("function(greeting, name) { return greeting+', '+name+'!'; }", array("Good bye", "Joe"));
echo $response['retval'];

?>

Результатом выполнения данного примера будет что-то подобное:

Good bye, Joe!

Пример #3 Scope example

If a MongoCode object is used instead of a string for the first parameter, a scope can be passed in which the JavaScript will be executed.

<?php

$func =
    "function(greeting, name) { ".
        "return greeting+', '+name+', says '+greeter;".
    "}";
$scope = array("greeter" => "Fred");

$code = new MongoCode($func, $scope);

$response = $db->execute($code, array("Goodbye", "Joe"));
echo $response['retval'];

?>

Результатом выполнения данного примера будет что-то подобное:

Goodbye, Joe, says Fred

Смотрите также

  • The MongoDB » eval command docs

Список изменений

Версия | Описание
1.7.0 | This method has been deprecated as a result of the underlaying » eval command being deprecated in MongoDB 3.0+.


Creates a database error

  • « MongoDB::execute
  • MongoDB::__get »
  • PHP Manual
  • MongoDB
  • Creates a database error

MongoDB::forceError

(PECL mongo >=0.9.5)

MongoDB::forceError — Creates a database error

Описание

public bool MongoDB::forceError ( void )

This method is not very useful for normal MongoDB use. It forces a database error to occur. This means that MongoDB::lastError() will return a generic database error after running this command.

This command is identical to running:

<?php

public function forceError() {
    return $this->command(array('forceerror' => 1));
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the database response.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.


Получить коллекцию

  • « MongoDB::forceError
  • MongoDB::getCollectionInfo »
  • PHP Manual
  • MongoDB
  • Получить коллекцию

MongoDB::__get

(PECL mongo >=1.0.2)

MongoDB::__get — Получить коллекцию

Описание

public MongoCollection MongoDB::__get ( string $name )

Это самый простой путь получить коллекцию из объекта базы данных. Если название коллекции содержит странные символы, то вы можете использовать метод MongoDB::selectCollection().

<?php

$mongo = new MongoClient();

// следующие две стрки эквивалентны
$collection = $mongo->selectDB("foo")->selectCollection("bar");
$collection = $mongo->foo->bar;

?>

Список параметров

name

Имя коллекции.

Возвращаемые значения

Возвращает коллекцию.


Returns information about collections in this database

  • « MongoDB::__get
  • MongoDB::getCollectionNames »
  • PHP Manual
  • MongoDB
  • Returns information about collections in this database

MongoDB::getCollectionInfo

(PECL mongo >=1.6.0)

MongoDB::getCollectionInfo — Returns information about collections in this database

Описание

public array MongoDB::getCollectionInfo ([ array $options = array() ] )

Gets a list of all collections in the database and returns them as an array of documents, which contain their names and options.

Замечание: Этот метод использует комманду » listCollections когда общается с MongoDB 2.8+. Для более старых баз данных, этот метод запрашивает специальную коллекцию system.namespaces.

Список параметров

options

An array of options for listing the collections. Currently available options include:

  • "filter"

    Опциональный критерий запроса. Если задан, то будет использован для фильтрации коллекций, включенных в результирующий набор.

    Подходящие поля для запроса включают "name" (строка с именем коллекции, без префикса в виде имени базы данных) и "options" (объект, включающий опции, использованные при создании этой коллекции)..

    Замечание: MongoDB 2.6 и более ранние версии, требуют, чтобы критерий "name" был строго строкового типа. Потому, что драйвер должен добавть к этому значению префикс в виде имени базы данныхдля запроса коллекции system.namespaces. Более поздние версии MongoDB не имеют этого ограничения, так как драйвер использует комманду listCollections.

  • "includeSystemCollections"

    Логическое значение, по умолчанию FALSE. Определяет, должны ли системные коллекции входить в результирующий набор.

The following option may be used with MongoDB 2.8+:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

This function returns an array where each element is an array describing a collection. Elements will contain a name key denoting the name of the collection, and optionally contain an options key denoting an array of objects used to create the collection. For example, capped collections will include capped and size options.

Ошибки

For MongoDB 2.6 and earlier, MongoException will be thrown if a non-string value was specified for the "filter" option's "name" criteria.

Примеры

Пример #1 MongoDB::getCollectionInfo() example

<?php
$m = new MongoClient();
$db = $m->selectDB("demo");
var_dump($db->getCollectionInfo());
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  array(2) {
    ["name"]=>
    string(4) "logs"
    ["options"]=>
    array(2) {
      ["capped"]=>
      bool(true)
      ["size"]=>
      int(10240)
    }
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(5) "users"
    ["options"]=>
    array(1) {
      ["flags"]=>
      int(1)
    }
  }
}

Смотрите также

  • MongoDB::getCollectionNames() - Gets an array of names for all collections in this database
  • MongoDB::listCollections() - Gets an array of MongoCollection objects for all collections in this database


Gets an array of names for all collections in this database

  • « MongoDB::getCollectionInfo
  • MongoDB::getDBRef »
  • PHP Manual
  • MongoDB
  • Gets an array of names for all collections in this database

MongoDB::getCollectionNames

(PECL mongo >=1.3.0)

MongoDB::getCollectionNames — Gets an array of names for all collections in this database

Описание

public array MongoDB::getCollectionNames ([ array $options = array() ] )

Gets a list of all collections in the database and returns their names as an array of strings.

Замечание: Этот метод использует комманду » listCollections когда общается с MongoDB 2.8+. Для более старых баз данных, этот метод запрашивает специальную коллекцию system.namespaces.

Список параметров

options

An array of options for listing the collections. Currently available options include:

  • "filter"

    Опциональный критерий запроса. Если задан, то будет использован для фильтрации коллекций, включенных в результирующий набор.

    Подходящие поля для запроса включают "name" (строка с именем коллекции, без префикса в виде имени базы данных) и "options" (объект, включающий опции, использованные при создании этой коллекции)..

    Замечание: MongoDB 2.6 и более ранние версии, требуют, чтобы критерий "name" был строго строкового типа. Потому, что драйвер должен добавть к этому значению префикс в виде имени базы данныхдля запроса коллекции system.namespaces. Более поздние версии MongoDB не имеют этого ограничения, так как драйвер использует комманду listCollections.

  • "includeSystemCollections"

    Логическое значение, по умолчанию FALSE. Определяет, должны ли системные коллекции входить в результирующий набор.

The following option may be used with MongoDB 2.8+:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Returns the collection names as an array of strings.

Ошибки

For MongoDB 2.6 and earlier, MongoException will be thrown if a non-string value was specified for the "filter" option's "name" criteria.

Список изменений

Версия | Описание
1.6.0 | Changed first parameter to be an array of options. Pre-1.6.0, the first parameter was a boolean indicating the "includeSystemCollections" option.

Примеры

Пример #1 MongoDB::getCollectionNames() example

<?php
$m = new MongoClient();
$db = $m->selectDB("demo");
$collections = $db->getCollectionNames();

foreach ($collections as $collectionName) {
    echo "Found collection: ", $collectionName, "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

...
Found collection: img
Found collection: beer
Found collection: collation
...

Смотрите также

  • MongoDB::listCollections() - Gets an array of MongoCollection objects for all collections in this database
  • MongoDB::getCollectionInfo() - Returns information about collections in this database


Fetches the document pointed to by a database reference

  • « MongoDB::getCollectionNames
  • MongoDB::getGridFS »
  • PHP Manual
  • MongoDB
  • Fetches the document pointed to by a database reference

MongoDB::getDBRef

(PECL mongo >=0.9.0)

MongoDB::getDBRef — Fetches the document pointed to by a database reference

Описание

public array MongoDB::getDBRef ( array $ref )

Список параметров

ref

A database reference.

Возвращаемые значения

Returns the document pointed to by the reference.

Примеры

Пример #1 MongoDB::getDBRef() example

Example demonstrating how to get a database reference and what the expected input is.

<?php

 $ref = array(
   '$ref' => 'profiles',
   '$id' => new MongoId('47cc67093475061e3d9536d2')
 );

 $profile = $db->getDBRef($ref);
 ?>

See MongoDB::createDBRef() for more information about how to programatically create DB references.


Fetches toolkit for dealing with files stored in this database

  • « MongoDB::getDBRef
  • MongoDB::getProfilingLevel »
  • PHP Manual
  • MongoDB
  • Fetches toolkit for dealing with files stored in this database

MongoDB::getGridFS

(PECL mongo >=0.9.0)

MongoDB::getGridFS — Fetches toolkit for dealing with files stored in this database

Описание

public MongoGridFS MongoDB::getGridFS ([ string $prefix = "fs" ] )

Список параметров

prefix

The prefix for the files and chunks collections.

Возвращаемые значения

Returns a new gridfs object for this database.

Примеры

Пример #1 MongoDB::getGridFS() example

This example demonstrates how get a MongoGridFS instance.

<?php

$db = $mongo->my_db;

$prefix = 'files';
$collection = $db->getGridFS($prefix);

?>

Read more about the MongoGridFS to learn how to store files with MongoDB.


Gets this database's profiling level

  • « MongoDB::getGridFS
  • MongoDB::getReadPreference »
  • PHP Manual
  • MongoDB
  • Gets this database's profiling level

MongoDB::getProfilingLevel

(PECL mongo >=0.9.0)

MongoDB::getProfilingLevel — Gets this database's profiling level

Описание

public int MongoDB::getProfilingLevel ( void )

This returns the current database profiling level.

The database profiler tracks query execution times. If you turn it on (say, using MongoDB::setProfilingLevel() or the shell), you can see how many queries took longer than a given number of milliseconds or the timing for all queries.

Note that profiling slows down queries, so it is better to use in development or testing than in a time-sensitive application.

This function is equivalent to running:

<?php

public function getProfilingLevel() {
    return $this->command(array('profile' => -1));
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the profiling level.

Смотрите также

  • MongoDB core docs on » profiling
  • MongoDB::setProfilingLevel() - Sets this database's profiling level


Get the read preference for this database

  • « MongoDB::getProfilingLevel
  • MongoDB::getSlaveOkay »
  • PHP Manual
  • MongoDB
  • Get the read preference for this database

MongoDB::getReadPreference

(PECL mongo >=1.3.0)

MongoDB::getReadPreference — Get the read preference for this database

Описание

public array MongoDB::getReadPreference ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Список изменений

Версия | Описание
1.3.3 | The return value has changed to be consistent with MongoDB::setReadPreference(). The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.

Примеры

Пример #1 MongoDB::getReadPreference() return value example

<?php

$m = new MongoClient();
$db = $m->test;
$db->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($db->getReadPreference());
?>

Результат выполнения данного примера:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Смотрите также

  • The read preferences documentation.
  • MongoDB::setReadPreference() - Set the read preference for this database


Get slaveOkay setting for this database

  • « MongoDB::getReadPreference
  • MongoDB::getWriteConcern »
  • PHP Manual
  • MongoDB
  • Get slaveOkay setting for this database

MongoDB::getSlaveOkay

(PECL mongo >=1.1.0)

MongoDB::getSlaveOkay — Get slaveOkay setting for this database

Описание

public bool MongoDB::getSlaveOkay ( void )

See the query section of this manual for information on distributing reads to secondaries.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the value of slaveOkay for this instance.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Смотрите также

  • Read Preferences
  • MongoDB::getReadPreference() - Get the read preference for this database
  • MongoDB::setReadPreference() - Set the read preference for this database


Get the write concern for this database

  • « MongoDB::getSlaveOkay
  • MongoDB::lastError »
  • PHP Manual
  • MongoDB
  • Get the write concern for this database

MongoDB::getWriteConcern

(PECL mongo >=1.5.0)

MongoDB::getWriteConcern — Get the write concern for this database

Описание

public array MongoDB::getWriteConcern ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция возвращает массив, описывающий контроль записи. Массив содержит значения w - уровень подтверждения или режим в виде строки, и wtimeout определяющий максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Примеры

Пример #1 MongoDB::getWriteConcern() return value example

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
$db = $mc->selectDB('test');
var_dump($db->getWriteConcern());

$db->setWriteConcern(1, 1000);
var_dump($db->getWriteConcern());
?>

Результат выполнения данного примера:

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Смотрите также

  • The write concern documentation.
  • MongoDB::setWriteConcern() - Set the write concern for this database


Check if there was an error on the most recent db operation performed

  • « MongoDB::getWriteConcern
  • MongoDB::listCollections »
  • PHP Manual
  • MongoDB
  • Check if there was an error on the most recent db operation performed

MongoDB::lastError

(PECL mongo >=0.9.5)

MongoDB::lastError — Check if there was an error on the most recent db operation performed

Описание

public array MongoDB::lastError ( void )

This method is equivalent to:

<?php

public function lastError() {
    return $this->command(array('getlasterror' => 1));
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the error, if there was one.

Примеры

Пример #1 MongoDB::lastError() NULL error example

<?php
$db->resetError();
var_dump($db->lastError());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["err"]=>
  NULL
  ["n"]=>
  int(0)
  ["ok"]=>
  float(1)
}

Пример #2 MongoDB::lastError() duplicate key example

<?php
$c = $db->selectCollection("foo");

// insert two documents with the same _id
$c->insert(array("_id" => 1));
$c->insert(array("_id" => 1));

var_dump($db->lastError());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["err"]=>
  string(64) "E11000 duplicate key errorindex: foo.foo.$_id_  dup key: { : 1 }"
  ["n"]=>
  int(0)
  ["ok"]=>
  float(1)
}


Gets an array of MongoCollection objects for all collections in this database

  • « MongoDB::lastError
  • MongoDB::prevError »
  • PHP Manual
  • MongoDB
  • Gets an array of MongoCollection objects for all collections in this database

MongoDB::listCollections

(PECL mongo >=0.9.0)

MongoDB::listCollections — Gets an array of MongoCollection objects for all collections in this database

Описание

public array MongoDB::listCollections ([ array $options = array() ] )

Gets a list of all collections in the database and returns them as an array of MongoCollection objects.

Замечание: Этот метод использует комманду » listCollections когда общается с MongoDB 2.8+. Для более старых баз данных, этот метод запрашивает специальную коллекцию system.namespaces.

Список параметров

options

An array of options for listing the collections. Currently available options include:

  • "filter"

    Опциональный критерий запроса. Если задан, то будет использован для фильтрации коллекций, включенных в результирующий набор.

    Подходящие поля для запроса включают "name" (строка с именем коллекции, без префикса в виде имени базы данных) и "options" (объект, включающий опции, использованные при создании этой коллекции)..

    Замечание: MongoDB 2.6 и более ранние версии, требуют, чтобы критерий "name" был строго строкового типа. Потому, что драйвер должен добавть к этому значению префикс в виде имени базы данныхдля запроса коллекции system.namespaces. Более поздние версии MongoDB не имеют этого ограничения, так как драйвер использует комманду listCollections.

  • "includeSystemCollections"

    Логическое значение, по умолчанию FALSE. Определяет, должны ли системные коллекции входить в результирующий набор.

The following option may be used with MongoDB 2.8+:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Returns an array of MongoCollection objects.

Ошибки

For MongoDB 2.6 and earlier, MongoException will be thrown if a non-string value was specified for the "filter" option's "name" criteria.

Список изменений

Версия | Описание
1.6.0 | Changed first parameter to be an array of options. Pre-1.6.0, the first parameter was a boolean indicating the "includeSystemCollections" option.
1.3.0 | Added the includeSystemCollections parameter.

Примеры

Пример #1 MongoDB::listCollections() example

The following example demonstrates running count on each collection in a database.

<?php

$m = new MongoClient();
$db = $m->selectDB("demo");
$collections = $db->listCollections();

foreach ($collections as $collection) {
    echo "amount of documents in $collection: ";
    echo $collection->count(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

...
amount of documents in demo.pubs: 4
amount of documents in demo.elephpants: 3
amount of documents in demo.cities: 22840
...

Смотрите также

  • MongoDB::getCollectionNames() - Gets an array of names for all collections in this database
  • MongoDB::getCollectionInfo() - Returns information about collections in this database


Checks for the last error thrown during a database operation

  • « MongoDB::listCollections
  • MongoDB::repair »
  • PHP Manual
  • MongoDB
  • Checks for the last error thrown during a database operation

MongoDB::prevError

(PECL mongo >=0.9.5)

MongoDB::prevError — Checks for the last error thrown during a database operation

Описание

public array MongoDB::prevError ( void )

MongoDB::lastError() is usually preferred to this. This method returns the last database error that occurred and how many operations ago it occurred. It is mostly deprecated.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the error and the number of operations ago it occurred.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.


Repairs and compacts this database

  • « MongoDB::prevError
  • MongoDB::resetError »
  • PHP Manual
  • MongoDB
  • Repairs and compacts this database

MongoDB::repair

(PECL mongo >=0.9.0)

MongoDB::repair — Repairs and compacts this database

Описание

public array MongoDB::repair ([ bool $preserve_cloned_files = FALSE [, bool $backup_original_files = FALSE ]] )

This creates a fresh copy of all database data. It will remove any corrupt data and compact and large stretches of free space it finds. This is a very slow operation on a large database.

This is usually run from the shell or the command line, not the driver.

It is equivalent to the function:

<?php

public function repair() {
    return $this->command(array('repairDatabase' => 1));
}

?>

Список параметров

preserve_cloned_files

If cloned files should be kept if the repair fails.

backup_original_files

If original files should be backed up.

Возвращаемые значения

Returns db response.

Смотрите также

MongoDB core docs on » repairDatabase.

Примеры

Пример #1 MongoDB::repair() example

This example demonstrates how to repare and compact a database.

<?php

$db = $mongo->foo;

$response = $db->repair();
print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [ok] => 1
)


Clears any flagged errors on the database

  • « MongoDB::repair
  • MongoDB::selectCollection »
  • PHP Manual
  • MongoDB
  • Clears any flagged errors on the database

MongoDB::resetError

(PECL mongo >=0.9.5)

MongoDB::resetError — Clears any flagged errors on the database

Описание

public array MongoDB::resetError ( void )

This method is not used in normal operations. It resets the database error tracker (which can be incremented with MongoDB::forceError(), also not normally used).

It is equivalent to running:

<?php

public function resetError() {
    return $this->command(array('reseterror' => 1));
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the database response.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.


Gets a collection

  • « MongoDB::resetError
  • MongoDB::setProfilingLevel »
  • PHP Manual
  • MongoDB
  • Gets a collection

MongoDB::selectCollection

(PECL mongo >=0.9.0)

MongoDB::selectCollection — Gets a collection

Описание

public MongoCollection MongoDB::selectCollection ( string $name )

Список параметров

name

The collection name.

Возвращаемые значения

Returns a new collection object.

Ошибки

Throws Exception if the collection name is invalid.


Sets this database's profiling level

  • « MongoDB::selectCollection
  • MongoDB::setReadPreference »
  • PHP Manual
  • MongoDB
  • Sets this database's profiling level

MongoDB::setProfilingLevel

(PECL mongo >=0.9.0)

MongoDB::setProfilingLevel — Sets this database's profiling level

Описание

public int MongoDB::setProfilingLevel ( int $level )

This changes the current database profiling level.

This function is equivalent to running:

<?php

public function setProfilingLevel($level) {
    return $this->command(array('profile' => $level));
}

?>

The options for level are 0 (off), 1 (queries > 100ms), and 2 (all queries). If you would like to profile queries that take longer than another time period, use the database command and pass it a second option, the number of milliseconds. For example, to profile all queries that take longer than one second, run:

<?php

$result = $this->command(array('profile' => 1, 'slowms' => 1000));

?>

Profiled queries will appear in the system.profile collection of this database.

Список параметров

level

Profiling level.

Возвращаемые значения

Returns the previous profiling level.

Смотрите также

  • MongoDB core docs on » profiling
  • MongoDB::getProfilingLevel() - Gets this database's profiling level


Set the read preference for this database

  • « MongoDB::setProfilingLevel
  • MongoDB::setSlaveOkay »
  • PHP Manual
  • MongoDB
  • Set the read preference for this database

MongoDB::setReadPreference

(PECL mongo >=1.3.0)

MongoDB::setReadPreference — Set the read preference for this database

Описание

public bool MongoDB::setReadPreference ( string $read_preference [, array $tags ] )

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Возвращает TRUE в случае успеха, иначе - FALSE.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Примеры

Пример #1 MongoDB::setReadPreference() tag set array syntax example

<?php

$m = new MongoClient();
$db = $m->test;

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$db->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Смотрите также

  • The read preferences documentation.
  • MongoDB::getReadPreference() - Get the read preference for this database


Change slaveOkay setting for this database

  • « MongoDB::setReadPreference
  • MongoDB::setWriteConcern »
  • PHP Manual
  • MongoDB
  • Change slaveOkay setting for this database

MongoDB::setSlaveOkay

(PECL mongo >=1.1.0)

MongoDB::setSlaveOkay — Change slaveOkay setting for this database

Описание

public bool MongoDB::setSlaveOkay ([ bool $ok = true ] )

See the query section of this manual for information on distributing reads to secondaries.

Список параметров

ok

If reads should be sent to secondary members of a replica set for all possible queries using this MongoDB instance.

Возвращаемые значения

Returns the former value of slaveOkay for this instance.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Смотрите также

  • Read Preferences
  • MongoDB::setReadPreference() - Set the read preference for this database
  • MongoDB::getReadPreference() - Get the read preference for this database


Set the write concern for this database

  • « MongoDB::setSlaveOkay
  • MongoDB::__toString »
  • PHP Manual
  • MongoDB
  • Set the write concern for this database

MongoDB::setWriteConcern

(PECL mongo >=1.5.0)

MongoDB::setWriteConcern — Set the write concern for this database

Описание

public bool MongoDB::setWriteConcern ( mixed $w [, int $wtimeout ] )

Список параметров

w

Контроль записи. Может быть числом означающим число серверов, требуемых для подтверждения записи, или режим в виде строки (например "majority").

wtimeout

Максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Возвращаемые значения

Возвращает TRUE в случае успеха, или FALSE в противном случае.

Ошибки

Бросает предупреждение E_WARNING в случае, если параметр w не является целым числом или строкой.

Примеры

Пример #1 MongoDB::setWriteConcern() example

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');
$db = $mc->selectDB('test');

// Require that the majority of servers in the replica set acknowledge writes
// within three seconds.
$db->setWriteConcern('majority', 3000);
?>

Смотрите также

  • The write concern documentation.
  • MongoDB::getWriteConcern() - Get the write concern for this database


The name of this database

  • « MongoDB::setWriteConcern
  • MongoCollection »
  • PHP Manual
  • MongoDB
  • The name of this database

MongoDB::__toString

(PECL mongo >=0.9.0)

MongoDB::__toString — The name of this database

Описание

public string MongoDB::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns this database's name.


The MongoCollection class

(PECL mongo >=0.9.0)

Введение

Represents a MongoDB collection.

Collection names can use any character in the ASCII set. Some valid collection names are "", "...", "my collection", and "*&#@".

User-defined collection names cannot contain the $ symbol. There are certain system collections which use a $ in their names (e.g., local.oplog.$main), but it is a reserved character. If you attempt to create and use a collection with a $ in the name, MongoDB will assert.

Обзор классов

MongoCollection {
/* Константы */
const int ASCENDING = 1 ;
const int DESCENDING = -1 ;
/* Fields */
public MongoDB $db = NULL ;
public integer $w ;
public integer $wtimeout ;
/* Методы */
public array aggregate ( array $pipeline [, array $options ] )
public MongoCommandCursor aggregateCursor ( array $command [, array $options ] )
public mixed batchInsert ( array $a [, array $options = array() ] )
public __construct ( MongoDB $db , string $name )
public int count ([ array $query = array() [, array $options = array() ]] )
public array createDBRef ( mixed $document_or_id )
public bool createIndex ( array $keys [, array $options = array() ] )
public array deleteIndex ( string|array $keys )
public array deleteIndexes ( void )
public array distinct ( string $key [, array $query ] )
public array drop ( void )
public bool ensureIndex ( string|array $key|keys [, array $options = array() ] )
public MongoCursor find ([ array $query = array() [, array $fields = array() ]] )
public array findAndModify ( array $query [, array $update [, array $fields [, array $options ]]] )
 public array findOne
  ([ array $query = array()
 [, array $fields = array()
 [, array $options = array()
]]] )
public MongoCollection __get ( string $name )
public array getDBRef ( array $ref )
public array getIndexInfo ( void )
public string getName ( void )
public array getReadPreference ( void )
public bool getSlaveOkay ( void )
public array getWriteConcern ( void )
public array group ( mixed $keys , array $initial , MongoCode $reduce [, array $options = array() ] )
public bool|array insert ( array|object $document [, array $options = array() ] )
public array[MongoCommandCursor] parallelCollectionScan ( int $num_cursors )
public bool|array remove ([ array $criteria = array() [, array $options = array() ]] )
public mixed save ( array|object $document [, array $options = array() ] )
public bool setReadPreference ( string $read_preference [, array $tags ] )
public bool setSlaveOkay ([ bool $ok = true ] )
public bool setWriteConcern ( mixed $w [, int $wtimeout ] )
static protected string toIndexString ( mixed $keys )
public string __toString ( void )
public bool|array update ( array $criteria , array $new_object [, array $options = array() ] )
public array validate ([ bool $scan_data = FALSE ] )
}

Предопределенные константы

MongoCollection::ASCENDING
1
Ascending direction for sorts and index creation.
MongoCollection::DESCENDING
-1
Descending direction for sorts and index creation.

Fields

db

The "parent" database for this collection.

w

The number of servers to replicate a change to before returning success. Value is inherited from the parent database. The MongoDB class has a more detailed description of how w works.

wtimeout

The number of milliseconds to wait for $this->w replications to take place. Value is inherited from the parent database. The MongoDB class has a more detailed description of how wtimeout works.

Смотрите также

MongoDB core docs on » collections.

Содержание

  • MongoCollection::aggregate — Perform an aggregation using the aggregation framework
  • MongoCollection::aggregateCursor — Execute an aggregation pipeline command and retrieve results through a cursor
  • MongoCollection::batchInsert — Inserts multiple documents into this collection
  • MongoCollection::__construct — Creates a new collection
  • MongoCollection::count — Считает количество записей в коллекции
  • MongoCollection::createDBRef — Creates a database reference
  • MongoCollection::createIndex — Creates an index on the specified field(s) if it does not already exist.
  • MongoCollection::deleteIndex — Deletes an index from this collection
  • MongoCollection::deleteIndexes — Delete all indices for this collection
  • MongoCollection::distinct — Возвращает список уникальных значений для данного ключа в коллекции
  • MongoCollection::drop — Drops this collection
  • MongoCollection::ensureIndex — Creates an index on the specified field(s) if it does not already exist.
  • MongoCollection::find — Queries this collection, returning a MongoCursor for the result set
  • MongoCollection::findAndModify — Update a document and return it
  • MongoCollection::findOne — Queries this collection, returning a single element
  • MongoCollection::__get — Gets a collection
  • MongoCollection::getDBRef — Fetches the document pointed to by a database reference
  • MongoCollection::getIndexInfo — Returns information about indexes on this collection
  • MongoCollection::getName — Получить имя коллекции
  • MongoCollection::getReadPreference — Get the read preference for this collection
  • MongoCollection::getSlaveOkay — Get slaveOkay setting for this collection
  • MongoCollection::getWriteConcern — Get the write concern for this collection
  • MongoCollection::group — Performs an operation similar to SQL's GROUP BY command
  • MongoCollection::insert — Inserts a document into the collection
  • MongoCollection::parallelCollectionScan — Returns an array of cursors to iterator over a full collection in parallel
  • MongoCollection::remove — Удаление записей из коллекции
  • MongoCollection::save — Saves a document to this collection
  • MongoCollection::setReadPreference — Set the read preference for this collection
  • MongoCollection::setSlaveOkay — Change slaveOkay setting for this collection
  • MongoCollection::setWriteConcern — Set the write concern for this database
  • MongoCollection::toIndexString — Converts keys specifying an index to its identifying string
  • MongoCollection::__toString — String representation of this collection
  • MongoCollection::update — Update records based on a given criteria
  • MongoCollection::validate — Validates this collection


Perform an aggregation using the aggregation framework

  • « MongoCollection
  • MongoCollection::aggregateCursor »
  • PHP Manual
  • MongoCollection
  • Perform an aggregation using the aggregation framework

MongoCollection::aggregate

(PECL mongo >=1.3.0)

MongoCollection::aggregate — Perform an aggregation using the aggregation framework

Описание

public array MongoCollection::aggregate ( array $pipeline [, array $options ] )
public array MongoCollection::aggregate ( array $op [, array $op [, array $... ]] )

The MongoDB » aggregation framework provides a means to calculate aggregated values without having to use MapReduce. While MapReduce is powerful, it is often more difficult than necessary for many simple aggregation tasks, such as totaling or averaging field values.

This method accepts either a variable amount of pipeline operators, or a single array of operators constituting the pipeline.

Список параметров

pipeline

An array of pipeline operators.

options

Options for the aggregation command. Valid options include:

  • "allowDiskUse"

    Allow aggregation stages to write to temporary files

  • "cursor"

    Options controlling the creation of the cursor object. This option causes the command to return a result document suitable for constructing a MongoCommandCursor. If you need to use this option, you should consider using MongoCollection::aggregateCursor().

  • "explain"

    Return information on the processing of the pipeline.

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Or

op

First pipeline operator.

op

The second pipeline operator.

...

Additional pipeline operators.

Возвращаемые значения

The result of the aggregation as an array. The ok will be set to 1 on success, 0 on failure.

Ошибки

When an error occurs an array with the following keys will be returned:

  • errmsg - containing the reason for the failure
  • code - the errorcode of the failure
  • ok - will be set to 0.

Список изменений

Версия | Описание
1.5.0 | Added optional options argument

Примеры

Пример #1 MongoCollection::aggregate() example

The following example aggregation operation pivots data to create a set of author names grouped by tags applied to an article. Call the aggregation framework by issuing the following command:

<?php
$m = new MongoClient("localhost");
$c = $m->selectDB("examples")->selectCollection("article");
$data = array (
    'title' => 'this is my title',
    'author' => 'bob',
    'posted' => new MongoDate,
    'pageViews' => 5,
    'tags' => array ( 'fun', 'good', 'fun' ),
    'comments' => array (
      array (
        'author' => 'joe',
        'text' => 'this is cool',
      ),
      array (
        'author' => 'sam',
        'text' => 'this is bad',
      ),
    ),
    'other' =>array (
      'foo' => 5,
    ),
);
$d = $c->insert($data, array("w" => 1));

$ops = array(
    array(
        '$project' => array(
            "author" => 1,
            "tags"   => 1,
        )
    ),
    array('$unwind' => '$tags'),
    array(
        '$group' => array(
            "_id" => array("tags" => '$tags'),
            "authors" => array('$addToSet' => '$author'),
        ),
    ),
);
$results = $c->aggregate($ops);
var_dump($results);
?>

Результат выполнения данного примера:

array(2) {
  ["result"]=>
  array(2) {
    [0]=>
    array(2) {
      ["_id"]=>
      array(1) {
        ["tags"]=>
        string(4) "good"
      }
      ["authors"]=>
      array(1) {
        [0]=>
        string(3) "bob"
      }
    }
    [1]=>
    array(2) {
      ["_id"]=>
      array(1) {
        ["tags"]=>
        string(3) "fun"
      }
      ["authors"]=>
      array(1) {
        [0]=>
        string(3) "bob"
      }
    }
  }
  ["ok"]=>
  float(1)
}

The following examples use the » zipcode data set. Use mongoimport to load this data set into your mongod instance.

Пример #2 MongoCollection::aggregate() example

To return all states with a population greater than 10 million, use the following aggregation operation:

<?php
$m = new MongoClient("localhost");
$c = $m->selectDB("test")->selectCollection("zips");

$pipeline = array(
    array(
        '$group' => array(
            '_id' => array('state' => '$state'),
            'totalPop' => array('$sum' => '$pop')
        )
    ),
    array(
        '$match' => array(
            'totalPop' => array('$gte' => 10 * 1000 * 1000)
        )
    ),
);
$out = $c->aggregate($pipeline);
var_dump($out);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["result"]=>
  array(7) {
    [0]=>
    array(2) {
      ["_id"]=>
      string(2) "TX"
      ["totalPop"]=>
      int(16986510)
    }
    [1]=>
    array(2) {
      ["_id"]=>
      string(2) "PA"
      ["totalPop"]=>
      int(11881643)
    }
    [2]=>
    array(2) {
      ["_id"]=>
      string(2) "NY"
      ["totalPop"]=>
      int(17990455)
    }
    [3]=>
    array(2) {
      ["_id"]=>
      string(2) "IL"
      ["totalPop"]=>
      int(11430602)
    }
    [4]=>
    array(2) {
      ["_id"]=>
      string(2) "CA"
      ["totalPop"]=>
      int(29760021)
    }
    [5]=>
    array(2) {
      ["_id"]=>
      string(2) "OH"
      ["totalPop"]=>
      int(10847115)
    }
    [6]=>
    array(2) {
      ["_id"]=>
      string(2) "FL"
      ["totalPop"]=>
      int(12937926)
    }
  }
  ["ok"]=>
  float(1)
}

Пример #3 MongoCollection::aggregate() example

To return the average populations for cities in each state, use the following aggregation operation:

<?php
$m = new MongoClient;
$c = $m->selectDB("test")->selectCollection("zips");

$out = $c->aggregate(
    array(
        '$group' => array(
            '_id' => array('state' => '$state', 'city' => '$city' ),
            'pop' => array('$sum' => '$pop' )
        )
    ),
    array(
        '$group' => array(
            '_id' => '$_id.state',
            'avgCityPop' => array('$avg' => '$pop')
        )
    )
);

var_dump($out);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["result"]=>
  array(51) {
    [0]=>
    array(2) {
      ["_id"]=>
      string(2) "DC"
      ["avgCityPop"]=>
      float(303450)
    }
    [1]=>
    array(2) {
      ["_id"]=>
      string(2) "DE"
      ["avgCityPop"]=>
      float(14481.913043478)
    }
...
    [49]=>
    array(2) {
      ["_id"]=>
      string(2) "WI"
      ["avgCityPop"]=>
      float(7323.0074850299)
    }
    [50]=>
    array(2) {
      ["_id"]=>
      string(2) "WV"
      ["avgCityPop"]=>
      float(2759.1953846154)
    }
  }
  ["ok"]=>
  float(1)
}

Пример #4 MongoCollection::aggregate() with command options

To return information on how the pipeline will be processed we use the explain command option:

<?php
$m = new MongoClient;
$c = $m->selectDB("test")->selectCollection("zips");

$pipeline = array(
    array(
        '$group' => array(
            '_id' => '$state',
           'totalPop' => array('$sum' => '$pop'),
        ),
    ),
    array(
        '$match' => array(
            'totalPop' => array('$gte' => 10 * 1000 * 1000)
        )
    ),
    array(
        '$sort' => array("totalPop" => -1),
    ),
);

$options = array("explain" => true);
$out = $c->aggregate($pipeline, $options);
var_dump($out);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["stages"]=>
  array(4) {
    [0]=>
    array(1) {
      ["$cursor"]=>
      array(3) {
        ["query"]=>
        array(0) {
        }
        ["fields"]=>
        array(3) {
          ["pop"]=>
          int(1)
          ["state"]=>
          int(1)
          ["_id"]=>
          int(0)
        }
        ["plan"]=>
        array(4) {
          ["cursor"]=>
          string(11) "BasicCursor"
          ["isMultiKey"]=>
          bool(false)
          ["scanAndOrder"]=>
          bool(false)
          ["allPlans"]=>
          array(1) {
            [0]=>
            array(3) {
              ["cursor"]=>
              string(11) "BasicCursor"
              ["isMultiKey"]=>
              bool(false)
              ["scanAndOrder"]=>
              bool(false)
            }
          }
        }
      }
    }
    [1]=>
    array(1) {
      ["$group"]=>
      array(2) {
        ["_id"]=>
        string(6) "$state"
        ["totalPop"]=>
        array(1) {
          ["$sum"]=>
          string(4) "$pop"
        }
      }
    }
    [2]=>
    array(1) {
      ["$match"]=>
      array(1) {
        ["totalPop"]=>
        array(1) {
          ["$gte"]=>
          int(10000000)
        }
      }
    }
    [3]=>
    array(1) {
      ["$sort"]=>
      array(1) {
        ["sortKey"]=>
        array(1) {
          ["totalPop"]=>
          int(-1)
        }
      }
    }
  }
  ["ok"]=>
  float(1)
}

Смотрите также

  • MongoCollection::aggregateCursor() - Execute an aggregation pipeline command and retrieve results through a cursor
  • The MongoDB » aggregation framework


Execute an aggregation pipeline command and retrieve results through a cursor

  • « MongoCollection::aggregate
  • MongoCollection::batchInsert »
  • PHP Manual
  • MongoCollection
  • Execute an aggregation pipeline command and retrieve results through a cursor

MongoCollection::aggregateCursor

(PECL mongo >=1.5.0)

MongoCollection::aggregateCursor — Execute an aggregation pipeline command and retrieve results through a cursor

Описание

public MongoCommandCursor MongoCollection::aggregateCursor ( array $command [, array $options ] )

With this method you can execute Aggregation Framework pipelines and retrieve the results through a cursor, instead of getting just one document back as you would with MongoCollection::aggregate(). This method returns a MongoCommandCursor object. This cursor object implements the Iterator interface just like the MongoCursor objects that are returned by the MongoCollection::find() method.

Замечание: The resulting MongoCommandCursor will inherit this collection's read preference. MongoCommandCursor::setReadPreference() may be used to change the read preference before iterating on the cursor.

Список параметров

pipeline

The Aggregation Framework pipeline to execute.

options

Options for the aggregation command. Valid options include:

  • "allowDiskUse"

    Allow aggregation stages to write to temporary files

  • "cursor"

    It is possible to configure how many initial documents the server should return with the first result set. The default initial batch size is 101. You can change it by adding the batchSize option:

    <?php
    $collection    ->aggregateCursor(
            $pipeline,
        [     "cursor" => [ "batchSize" => 4 ] ]
    );

    This option only configures the size of the first batch. To configure the size of future batches, please use the MongoCommandCursor::batchSize() method on the returned MongoCommandCursor object.

  • "explain"

    Return information on the processing of the pipeline. This option may cause the command to return a result document that is unsuitable for constructing a MongoCommandCursor. If you need to use this option, you should consider using MongoCollection::aggregate().

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Returns a MongoCommandCursor object. Because this implements the Iterator interface you can iterate over each of the results as returned by the command query. The MongoCommandCursor also implements the MongoCursorInterface interface which adds the MongoCommandCursor::batchSize(), MongoCommandCursor::dead(), MongoCommandCursor::info() methods.

Примеры

Пример #1 MongoCollection::aggregateCursor() example

Finding all of the distinct values for a key.

<?php
$m = new MongoClient;
$db = $m->test;
$people = $db->people;
$people->drop();

$people->insert(array("name" => "Joe", "points" => 4));
$people->insert(array("name" => "Molly", "points" => 43));
$people->insert(array("name" => "Sally", "points" => 22));
$people->insert(array("name" => "Joe", "points" => 22));
$people->insert(array("name" => "Molly", "points" => 87));

$ages = $people->aggregateCursor( [
        [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
        [ '$sort' => [ 'points' => -1 ] ],
] );

foreach ($ages as $person) {
    echo "{$person['_id']}: {$person['points']}\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Molly: 130
Joe: 26
Sally: 22

Пример #2 MongoCollection::aggregateCursor() example with different initial batch size

Finding all of the distinct values for a key.

<?php
$m = new MongoClient;
$db = $m->test;
$people = $db->people;
$people->drop();

/* Insert some sample data */
$people->insert(array("name" => "Joe", "points" => 4));
$people->insert(array("name" => "Molly", "points" => 43));
$people->insert(array("name" => "Sally", "points" => 22));
$people->insert(array("name" => "Joe", "points" => 22));
$people->insert(array("name" => "Molly", "points" => 87));

/* Run the command cursor */
$ages = $people->aggregateCursor(
    [
        [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
        [ '$sort' => [ 'points' => -1 ] ],
    ],
    [ "cursor" => [ "batchSize" => 4 ] ]
);

foreach ($ages as $person) {
    echo "{$person['_id']}: {$person['points']}\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Molly: 130
Joe: 26
Sally: 22

Смотрите также

  • MongoDB::command() - Execute a database command
  • MongoCommandCursor
  • MongoCommandCursor::batchSize() - Limits the number of elements returned in one batch.
  • MongoCollection::aggregate() - Perform an aggregation using the aggregation framework
  • The MongoDB » aggregation framework


Inserts multiple documents into this collection

  • « MongoCollection::aggregateCursor
  • MongoCollection::__construct »
  • PHP Manual
  • MongoCollection
  • Inserts multiple documents into this collection

MongoCollection::batchInsert

(PECL mongo >=0.9.0)

MongoCollection::batchInsert — Inserts multiple documents into this collection

Описание

public mixed MongoCollection::batchInsert ( array $a [, array $options = array() ] )

Список параметров

a

An array of arrays or objects. If any objects are used, they may not have protected or private properties.

Замечание:

If the documents to insert do not have an _id key or property, a new MongoId instance will be created and assigned to it. See MongoCollection::insert() for additional information on this behavior.

options

An array of options for the batch of insert operations. Currently available options include:

  • "continueOnError"

    Boolean, defaults to FALSE. If set, the database will not stop processing a bulk insert if one fails (eg due to duplicate IDs). This makes bulk insert behave similarly to a series of single inserts, except that calling MongoDB::lastError() will have an error set if any insert fails, not just the last one. If multiple errors occur, only the most recent will be reported by MongoDB::lastError().

    Замечание:

    Please note that continueOnError affects errors on the database side only. If you try to insert a document that has errors (for example it contains a key with an empty name), then the document is not even transferred to the database as the driver detects this error and bails out. continueOnError has no effect on errors detected in the documents by the driver.

  • "fsync"

    Булево, по умолчанию FALSE. Если включено журналирование, то работает также как и "j". Если журналирование не включено, то операции записи блокируются пока не будут синхронизированы с файлами на жестком диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если журналирование включено, то пользователю настоятельно рекомендуется использовать опцию "j" вместо "fsync". Не используйте "fsync" и "j" одновременно,так как это может привести к ошибке.

  • "j"

    Булево, по умолчанию FALSE. Блокирует операции записи пока они не будут синхронизированы с журналом на диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если применяется эта опция и журналирование отключено, то MongoDB 2.6+ выбросит ошибку и прервет запись; старые версии сервера просто игнорируют эту опцию.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

The following options are deprecated and should no longer be used:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

If the w parameter is set to acknowledge the write, returns an associative array with the status of the inserts ("ok") and any error that may have occurred ("err"). Otherwise, returns TRUE if the batch insert was successfully sent, FALSE otherwise.

Ошибки

Throws MongoException if any inserted documents are empty or if they contains zero-length keys. Attempting to insert an object with protected and private properties will cause a zero-length key error.

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Список изменений

Версия | Описание
1.5.0 | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
1.3.4 | Added "wtimeout" option.
1.3.0 | Added "w" option.
1.2.7 | Added "continueOnError" option.
1.0.9 | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option.
1.0.5 | Added options parameter.

Примеры

Пример #1 MongoCollection::batchInsert() example

Batch insertion is a quick way to add many elements to the database at once

<?php

$users = array();
for ($i = 0; $i<100; $i++) {
  $users[] = array('username' => 'user'.$i, 'i' => $i);
}

$mongo = new MongoClient();
$collection = $mongo->my_db->users;
$collection->drop();

$collection->batchInsert($users);

foreach ($users as $user) {
  echo $user['_id']."\n"; // populated with instanceof MongoId
}

$users = $collection->find()->sort(array('i' => 1));
foreach ($users as $user) {
    var_dump($user['username']);
}

?>

Результатом выполнения данного примера будет что-то подобное:

4bf43ac68ead0e1971000000
4bf43ac68ead0e1971010000
4bf43ac68ead0e1971020000
...
string(5) "user1"
string(5) "user2"
string(5) "user3"
...

Пример #2 MongoCollection::batchInsert() example with ignoring errors

<?php

$con = new Mongo;
$db = $con->demo;

$doc1 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010001'),
        'id' => 1,
        'desc' => "ONE",
);
$doc2 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010002'),
        'id' => 2,
        'desc' => "TWO",
);
$doc3 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010002'), // same _id as above
        'id' => 3,
        'desc' => "THREE",
);
$doc4 = array(
        '_id' => new MongoId('4cb4ab6d7addf98506010004'),
        'id' => 4,
        'desc' => "FOUR",
);

$c = $db->selectCollection('c');
$c->batchInsert(
    array($doc1, $doc2, $doc3, $doc4),
    array('continueOnError' => true)
);

$docs = $c->find();
foreach ($docs as $doc) {
    var_dump($doc['desc']);
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(3) "ONE"
string(3) "TWO"
string(4) "FOUR"

Смотрите также

  • MongoCollection::insert() - Inserts a document into the collection
  • MongoCollection::update() - Update records based on a given criteria
  • MongoCollection::find() - Queries this collection, returning a MongoCursor for the result set
  • MongoCollection::remove() - Удаление записей из коллекции
  • MongoDB core docs on » insert.


Creates a new collection

  • « MongoCollection::batchInsert
  • MongoCollection::count »
  • PHP Manual
  • MongoCollection
  • Creates a new collection

MongoCollection::__construct

(PECL mongo >=0.9.0)

MongoCollection::__construct — Creates a new collection

Описание

public MongoCollection::__construct ( MongoDB $db , string $name )

Список параметров

MongoDB db

Parent database.

name

Name for this collection.

Возвращаемые значения

Returns a new collection object.

Ошибки

Throws default exception if the collection name is invalid.


Считает количество записей в коллекции

  • « MongoCollection::__construct
  • MongoCollection::createDBRef »
  • PHP Manual
  • MongoCollection
  • Считает количество записей в коллекции

MongoCollection::count

(PECL mongo >=0.9.0)

MongoCollection::count — Считает количество записей в коллекции

Описание

 public int MongoCollection::count
  ([ array $query = array()
 [, array $options = array()
]] )

Список параметров

query

Ассоциативный массив или объект с полями для запроса

options

Массив опций для создания индекса. В настоящее время доступны следующие опции:

Имя | Тип | Описание
hint mixed

Индекс используемый для запроса. Если передается строка, то она должна соответствовать названию индекса. Если массив или объект, то он должен соответсвовать спецификации используемой для создания индекса т.е. первому аргументу в MongoCollection::createIndex())

Эта опция поддерживается только в MongoDB 2.6+.
limit | integer | Максимальное количество возвращаемых документов
maxTimeMS integer

Определяет совокупный лимит врмени в миллисекундах для выполнения операций (не включает в себя время простоя). Если операция не выполнится в течении этого времени, то будет вызвано исключение MongoExecutionTimeoutException

Эта опция поддерживается только в MongoDB 2.6+.
skip | integer | Количество документов которые нужно пропустить перед посчетом возвращаемого результата

Возвращаемые значения

Возвращает количество документов в коллекции, соответствующих условиям

Ошибки

Исключение MongoResultException вызывается в том случае, если сервер не может выполнить команду из-за ошибки

Исключение MongoExecutionTimeoutException вызывается в том случае, если выполнение команды прекратилось связи с ограничениями опции maxTimeMS.

Список изменений

Версия | Описание
1.6.0 | Теперь второй параметр options является массивом опций. limit и skip в качестве второго и третьего параметра, соотвественно, являются устаревшими
1.0.7 | Добавлены limit и skip как второй и третий параметр соотвественно

Примеры

Пример #1 Пример использования MongoCollection::count()

<?php

// Вставить записи в коллекцию
$collection->insert(array('x'=>1));
$collection->insert(array('x'=>2));
$collection->insert(array('x'=>3));

// Вывод количества записей во всей коллекции
var_dump($collection->count());

// Вывод количества записей в коллекции по определенному полю
var_dump($collection->count(array('x'=>1)));

?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(1)


Creates a database reference

  • « MongoCollection::count
  • MongoCollection::createIndex »
  • PHP Manual
  • MongoCollection
  • Creates a database reference

MongoCollection::createDBRef

(PECL mongo >=0.9.0)

MongoCollection::createDBRef — Creates a database reference

Описание

public array MongoCollection::createDBRef ( mixed $document_or_id )

Список параметров

document_or_id

If an array or object is given, its _id field will be used as the reference ID. If a MongoId or scalar is given, it will be used as the reference ID.

Возвращаемые значения

Returns a database reference array.

If an array without an _id field was provided as the document_or_id parameter, NULL will be returned.

Примеры

Пример #1 MongoCollection::createDBRef() example

<?php

$songs = $db->songs;
$playlists = $db->playlists;

// create a reference to a song
$manamana = $songs->findOne(array('title' => 'Ma na ma na'));
$refToSong = $songs->createDBRef($manamana);

// add the reference to my playlist
$playlists->update(array('username' => 'me'), array('$push' => array('songlist' => $refToSong)));

?>

Смотрите также

  • MongoCollection::getDBRef() - Fetches the document pointed to by a database reference


Creates an index on the specified field(s) if it does not already exist.

  • « MongoCollection::createDBRef
  • MongoCollection::deleteIndex »
  • PHP Manual
  • MongoCollection
  • Creates an index on the specified field(s) if it does not already exist.

MongoCollection::createIndex

(PECL mongo >=1.5.0)

MongoCollection::createIndex — Creates an index on the specified field(s) if it does not already exist.

Описание

public bool MongoCollection::createIndex ( array $keys [, array $options = array() ] )

Creates an index on the specified field(s) if it does not already exist. Fields may be indexed with a direction (e.g. ascending or descending) or a special type (e.g. text, geospatial, hashed).

Замечание:

This method will use the » createIndexes database command when communicating with MongoDB 2.6+. For previous database versions, the method will perform an insert operation on the special system.indexes collection.

Список параметров

keys

An array specifying the index's fields as its keys. For each field, the value is either the index direction or » index type. If specifying direction, specify 1 for ascending or -1 for descending.

options

An array of options for the index creation. We pass all given options straight to the server, but a non-exhaustive list of currently available options include:

  • "unique"

    Укажите TRUE для создания уникального индекса. По умолчанию значение равно FALSE. Эта опция применяется только к возрастающим/убывающим индексам.

    Замечание:

    При индексации MongoDB поля, если не имеет значения для указанного поля, будет проиндексировано значение NULL. Если несколько документов не содержат поля, то уникальный индекс отклонит все документы, кроме первого. Можно использовать опцию "sparse", чтобы обойти это ограничение, так как документы без указанного поля не будут индексироваться.

  • "sparse"

    Укажите TRUE для создания разреженного (sparse) индекса, который индексирует только документы содержащие указанное поле. Значение по умолчанию FALSE.

  • "expireAfterSeconds"

    Значение этой опции определяет количество секунд, после которого документ считается устаревшим и автоматически удаляется из коллекции. Эта опция совместима только с индексами на одно поле, где поле содержит значения MongoDate.

    Замечание:

    Эта опция доступна в MongoDB 2.2+. Смотрите » Устаревание данных в коллекциях с помощью задания TTL для получения более подробной информации.

  • "name"

    Необязательное имя, которое уникально идентифицирует индекс.

    Замечание:

    По умолчанию, драйвер создает имя индекса на основе полей индекса и их порядке или типе. Например, составной индекс array("x" => 1, "y" => -1) будет назван "x_1_y_-1", а геоиндекс array("loc" => "2dsphere") будет назван "loc_2dsphere". Для индексов из нескольких полей возможно превышение именем » максимальной длины имени индекса MongoDB. В этом случае можно применить опцию "name", чтобы указать более короткое имя.

  • "background"

    Перестраивать индекс в фоновом режиме, чтобы не блокировать другие задачи базы данных. Укажите TRUE для перестроения в фоновом режиме. Значение по умолчанию - FALSE.

    Внимание

    До MongoDB 2.6.0, перестраивание индекса запускалось на ведомом сервере как приоритетная операция, независимо от этой опции. Смотрите » Перестроение индексов с Replica Sets для дополнительной информации.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

The following option may be used with MongoDB 2.6+:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

The following options may be used with MongoDB versions before 2.8:

  • "dropDups"

    Укажите TRUE для принудительного создания уникального индекса, где коллекция может содержать одинаковые значения для ключа. MongoDB будет индексировать первое вхождение ключа и удалять все последующие документы из коллекции, которые содержат такие же значения для ключа. Значение по умолчанию - FALSE.

    Внимание

    "dropDups" может удалить данные из вашей базы данных. Используйте с особой осторожностью.

    Замечание:

    Эта опция не поддерживается в MongoDB 2.8+. Создание индекса не выполнится, если коллекция содержит одинаковые значения.

The following options may be used with MongoDB versions before 2.6:

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

The following options are deprecated and should no longer be used:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

Returns an array containing the status of the index creation. The array contains whether the operation succeeded ("ok"), the number of indexes before and after the operation ("numIndexesBefore" and "numIndexesAfter"), and whether the collection that the index belongs to has been created ("createdCollectionAutomatically"). If the index already existed and did not need to be created, a "note" field may be present in lieu of "numIndexesAfter".

With MongoDB 2.4 and earlier, a status document is only returned if the write concern is at least 1. Otherwise, TRUE is returned. The fields in the status document are different, except for the "ok" field, which signals whether the index creation was successful. Additional fields are described in the documentation for MongoCollection::insert().

Ошибки

Throws MongoException if the index name is longer than 128 bytes, or if the index specification is not an array.

Throws MongoDuplicateKeyException if the server could not create the unique index due to conflicting documents.

Throws MongoResultException if the server could not create the index due to an error.

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Примеры

Пример #1 MongoCollection::createIndex() example

<?php

$c = new MongoCollection($db, 'foo');

// create an index on 'x' ascending
$c->createIndex(array('x' => 1));

// create a unique index on 'y'
$c->createIndex(array('y' => 1), array('unique' => true));

// create a compound index on 'za' ascending and 'zb' descending
$c->createIndex(array('za' => 1, 'zb' => -1));

?>

Пример #2 Geospatial Indexing

Mongo supports geospatial indexes, which allow you to search for documents near a given location or within a shape. The following example creates a geospatial index on the "loc" field:

<?php

$collection->createIndex(array('loc' => '2dsphere'));

?>

Пример #3 Drop duplicates example

<?php

$collection->insert(array('username' => 'joeschmoe'));
$collection->insert(array('username' => 'joeschmoe'));

/* Index creation fails, since you cannot create a unique index on a field when
 * duplicates exist.
 */
$collection->createIndex(array('username' => 1), array('unique' => 1));

/* MongoDB will one of the conflicting documents and allow the unique index to
 * be created.
 */
$collection->createIndex(array('username' => 1), array('unique' => 1, 'dropDups' => 1));

/* We now have a unique index and subsequent inserts with the same username will
 * fail.
 */
$collection->insert(array('username' => 'joeschmoe'));

?>

Смотрите также

  • MongoCollection::deleteIndex() - Deletes an index from this collection
  • MongoCollection::deleteIndexes() - Delete all indices for this collection
  • The MongoDB » index and » index type documentation.


Deletes an index from this collection

  • « MongoCollection::createIndex
  • MongoCollection::deleteIndexes »
  • PHP Manual
  • MongoCollection
  • Deletes an index from this collection

MongoCollection::deleteIndex

(PECL mongo >=0.9.0)

MongoCollection::deleteIndex — Deletes an index from this collection

Описание

public array MongoCollection::deleteIndex ( string|array $keys )

This method is identical to:

<?php

public function deleteIndexes($keys) {
  $indexName = $this->toIndexString($keys);

  return $this->db->command(array(
    "deleteIndexes" => $this->getName(),
    "index" => $indexName,
  ));
}

?>

Each index is given a unique name when it is created. This is often generated by the driver based on the index key(s) and order/type, but custom names may also be specified with MongoCollection::createIndex()'s "name" option).

Unfortunately, MongoCollection::deleteIndex() cannot delete custom-named indexes due to a backwards compatibility issue. When a string argument is provided, it is assumed to be the single field name in an ascending index (e.g. the name "x_1" would be used for the argument "x"). If an array or object is provided, an index name is generated just as if that argument was passed to MongoCollection::createIndex().

In order to delete a custom-named index with the PHP driver, the deleteIndexes database command must be used. For instance, an index named "myIndex" could be deleted with the PHP driver by running:

<?php

$db->command(array(
  "deleteIndexes" => $collection->getName(),
  "index" => "myIndex",
));

?>

To determine the name of an index with the PHP driver, you can query the system.indexes collection of a database and look for the "name" field of each result. The "ns" field will indicate the collection to which each index belongs.

Список параметров

keys

An array specifying the index's fields as its keys. For each field, the value is either the index direction or » index type. If specifying direction, specify 1 for ascending or -1 for descending.

If a string is provided, it is assumed to be the single field name in an ascending index.

Возвращаемые значения

Returns the database response.

Примеры

Пример #1 MongoCollection::deleteIndex() example

This example passes the function string and array parameters.

<?php

$m = new MongoClient();
$c = $m->example->indices;

// create and remove a simple index
$c->createIndex(array("i"=>1));
$c->deleteIndex("i");

// create and remove a multi-key index
$c->ensureIndex(array("j" => 1, "k" => 1));
$c->deleteIndex(array("j" => 1, "k" => 1));

?>

Смотрите также

  • MongoCollection::createIndex() - Creates an index on the specified field(s) if it does not already exist.
  • MongoCollection::deleteIndexes() - Delete all indices for this collection
  • MongoCollection::toIndexString() - Converts keys specifying an index to its identifying string
  • The MongoDB » index and » index type documentation.


Delete all indices for this collection

  • « MongoCollection::deleteIndex
  • MongoCollection::distinct »
  • PHP Manual
  • MongoCollection
  • Delete all indices for this collection

MongoCollection::deleteIndexes

(PECL mongo >=0.9.0)

MongoCollection::deleteIndexes — Delete all indices for this collection

Описание

public array MongoCollection::deleteIndexes ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the database response.

Примеры

Пример #1 MongoCollection::deleteIndexes() example

This example demonstrates how to delete all indexes from a collection and the response to expect.

<?php

$collection = $mongo->my_db->articles;
$response = $collection->deleteIndexes();
print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [nIndexesWas] => 1
    [msg] => all indexes deleted for collection
    [ok] => 1
)

Смотрите также

  • MongoCollection::createIndex() - Creates an index on the specified field(s) if it does not already exist.
  • MongoCollection::deleteIndex() - Deletes an index from this collection


Возвращает список уникальных значений для данного ключа в коллекции

  • « MongoCollection::deleteIndexes
  • MongoCollection::drop »
  • PHP Manual
  • MongoCollection
  • Возвращает список уникальных значений для данного ключа в коллекции

MongoCollection::distinct

(PECL mongo >=1.2.11)

MongoCollection::distinct — Возвращает список уникальных значений для данного ключа в коллекции

Описание

public array MongoCollection::distinct ( string $key [, array $query ] )

Команда distinct возвращает список уникальных значений для данного ключа в коллекции.

Список параметров

key

Ключ, используемый для получения уникальных значений

query

Опциональные параметры запроса.

Возвращаемые значения

Возвращает массив уникальных значений, или FALSE в случае возникновения ошибки

Примеры

Пример #1 Пример использования MongoCollection::distinct()

<?php
// Подключение и создание документа и коллекции
$m = new Mongo;
$db = $m->selectDB("test");
$db->dropCollection("distinct");
$c = $db->distinct;

// Вставка данных в коллекцию
$c->insert(array("stuff" => "bar", "zip-code" => 10010));
$c->insert(array("stuff" => "foo", "zip-code" => 10010));
$c->insert(array("stuff" => "bar", "zip-code" => 99701), array("w" => 1));

// Получение уникальных данных по ключу zip-code
$retval = $c->distinct("zip-code");
var_dump($retval);

// Получение уникальных данных по ключу zip-code с использованием запроса
$retval = $c->distinct("zip-code", array("stuff" => "foo"));
var_dump($retval);

$retval = $c->distinct("zip-code", array("stuff" => "bar"));
var_dump($retval);

?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  int(10010)
  [1]=>
  int(99701)
}
array(1) {
  [0]=>
  int(10010)
}
array(2) {
  [0]=>
  int(10010)
  [1]=>
  int(99701)
}

Пример #2 Пример использования MongoCollection::distinct() с вложенным документом

<?php
$c->insert(array("user" => array("points" => 25)));
$c->insert(array("user" => array("points" => 31)));
$c->insert(array("user" => array("points" => 25)));

$retval = $c->distinct("user.points");
var_dump($retval);

$retval = $c->distinct("user.nonexisting");
var_dump($retval);
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  int(25)
  [1]=>
  int(31)
}
array(0) {
}


Drops this collection

  • « MongoCollection::distinct
  • MongoCollection::ensureIndex »
  • PHP Manual
  • MongoCollection
  • Drops this collection

MongoCollection::drop

(PECL mongo >=0.9.0)

MongoCollection::drop — Drops this collection

Описание

public array MongoCollection::drop ( void )

Drops this collection and deletes its indices.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the database response.

Примеры

Пример #1 MongoCollection::drop() example

This example demonstrates how to drop a collection and the response to expect.

<?php

$collection = $mongo->my_db->articles;
$response = $collection->drop();
print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [nIndexesWas] => 1
    [msg] => all indexes deleted for collection
    [ns] => my_db.articles
    [ok] => 1
)


Creates an index on the specified field(s) if it does not already exist.

  • « MongoCollection::drop
  • MongoCollection::find »
  • PHP Manual
  • MongoCollection
  • Creates an index on the specified field(s) if it does not already exist.

MongoCollection::ensureIndex

(PECL mongo >=0.9.0)

MongoCollection::ensureIndex — Creates an index on the specified field(s) if it does not already exist.

Описание

public bool MongoCollection::ensureIndex ( string|array $key|keys [, array $options = array() ] )
Внимание

This method is deprecated since version 1.5.0. Please use MongoCollection::createIndex() instead.

Creates an index on the specified field(s) if it does not already exist. Fields may be indexed with a direction (e.g. ascending or descending) or a special type (e.g. text, geospatial, hashed).

Замечание:

This method will use the » createIndexes database command when communicating with MongoDB 2.6+. For previous database versions, the method will perform an insert operation on the special system.indexes collection.

Список параметров

keys

An array specifying the index's fields as its keys. For each field, the value is either the index direction or » index type. If specifying direction, specify 1 for ascending or -1 for descending.

options

An array of options for the index creation. Currently available options include:

  • "unique"

    Укажите TRUE для создания уникального индекса. По умолчанию значение равно FALSE. Эта опция применяется только к возрастающим/убывающим индексам.

    Замечание:

    При индексации MongoDB поля, если не имеет значения для указанного поля, будет проиндексировано значение NULL. Если несколько документов не содержат поля, то уникальный индекс отклонит все документы, кроме первого. Можно использовать опцию "sparse", чтобы обойти это ограничение, так как документы без указанного поля не будут индексироваться.

  • "sparse"

    Укажите TRUE для создания разреженного (sparse) индекса, который индексирует только документы содержащие указанное поле. Значение по умолчанию FALSE.

  • "expireAfterSeconds"

    Значение этой опции определяет количество секунд, после которого документ считается устаревшим и автоматически удаляется из коллекции. Эта опция совместима только с индексами на одно поле, где поле содержит значения MongoDate.

    Замечание:

    Эта опция доступна в MongoDB 2.2+. Смотрите » Устаревание данных в коллекциях с помощью задания TTL для получения более подробной информации.

  • "name"

    Необязательное имя, которое уникально идентифицирует индекс.

    Замечание:

    По умолчанию, драйвер создает имя индекса на основе полей индекса и их порядке или типе. Например, составной индекс array("x" => 1, "y" => -1) будет назван "x_1_y_-1", а геоиндекс array("loc" => "2dsphere") будет назван "loc_2dsphere". Для индексов из нескольких полей возможно превышение именем » максимальной длины имени индекса MongoDB. В этом случае можно применить опцию "name", чтобы указать более короткое имя.

  • "background"

    Перестраивать индекс в фоновом режиме, чтобы не блокировать другие задачи базы данных. Укажите TRUE для перестроения в фоновом режиме. Значение по умолчанию - FALSE.

    Внимание

    До MongoDB 2.6.0, перестраивание индекса запускалось на ведомом сервере как приоритетная операция, независимо от этой опции. Смотрите » Перестроение индексов с Replica Sets для дополнительной информации.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

The following option may be used with MongoDB 2.6+:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

The following options may be used with MongoDB versions before 2.8:

  • "dropDups"

    Укажите TRUE для принудительного создания уникального индекса, где коллекция может содержать одинаковые значения для ключа. MongoDB будет индексировать первое вхождение ключа и удалять все последующие документы из коллекции, которые содержат такие же значения для ключа. Значение по умолчанию - FALSE.

    Внимание

    "dropDups" может удалить данные из вашей базы данных. Используйте с особой осторожностью.

    Замечание:

    Эта опция не поддерживается в MongoDB 2.8+. Создание индекса не выполнится, если коллекция содержит одинаковые значения.

The following options may be used with MongoDB versions before 2.6:

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

The following options are deprecated and should no longer be used:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

Returns an array containing the status of the index creation. The array contains whether the operation succeeded ("ok"), the number of indexes before and after the operation ("numIndexesBefore" and "numIndexesAfter"), and whether the collection that the index belongs to has been created ("createdCollectionAutomatically"). If the index already existed and did not need to be created, a "note" field may be present in lieu of "numIndexesAfter".

With MongoDB 2.4 and earlier, a status document is only returned if the write concern is at least 1. Otherwise, TRUE is returned. The fields in the status document are different, except for the "ok" field, which signals whether the index creation was successful. Additional fields are described in the documentation for MongoCollection::insert().

Список изменений

Версия | Описание
1.5.0 | Renamed the "wtimeout" option to "wTimeoutMS". Emits E_DEPRECATED when "wtimeout" is used. Renamed the "timeout" option to "socketTimeoutMS". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
1.3.4 | Added "wtimeout" option.
1.3.0 | Added "w" option. The options parameter no longer accepts a boolean to signify a unique index. Instead, this now has to be done with array('unique' => true).
1.2.11 | Emits E_DEPRECATED when options is scalar.
1.2.0 | Added "timeout" option.
1.0.11 | The "safe" option will trigger a primary failover, if necessary. MongoException will be thrown if the index name (either generated or set) is longer than 128 bytes.
1.0.5 | Added the "name" option to override index name creation.
1.0.2 | Changed options parameter from boolean to array. Pre-1.0.2, the second parameter was an optional boolean value specifying a unique index.

Ошибки

Throws MongoException if the index name is longer than 128 bytes, or if the index specification is not an array.

Throws MongoDuplicateKeyException if the server could not create the unique index due to conflicting documents.

Throws MongoResultException if the server could not create the index due to an error.

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Примеры

Пример #1 MongoCollection::ensureIndex() example

<?php

$c = new MongoCollection($db, 'foo');

// create an index on 'x' ascending
$c->ensureIndex(array('x' => 1));

// create a unique index on 'y'
$c->ensureIndex(array('y' => 1), array('unique' => true));

// create a compound index on 'za' ascending and 'zb' descending
$c->ensureIndex(array('za' => 1, 'zb' => -1));

?>

Пример #2 Geospatial Indexing

Mongo supports geospatial indexes, which allow you to search for documents near a given location or within a shape. The following example creates a geospatial index on the "loc" field:

<?php

$collection->ensureIndex(array('loc' => '2dsphere'));

?>

Пример #3 Drop duplicates example

<?php

$collection->insert(array('username' => 'joeschmoe'));
$collection->insert(array('username' => 'joeschmoe'));

/* Index creation fails, since you cannot create a unique index on a field when
 * duplicates exist.
 */
$collection->ensureIndex(array('username' => 1), array('unique' => 1));

/* MongoDB will one of the conflicting documents and allow the unique index to
 * be created.
 */
$collection->ensureIndex(array('username' => 1), array('unique' => 1, 'dropDups' => 1));

/* We now have a unique index and subsequent inserts with the same username will
 * fail.
 */
$collection->insert(array('username' => 'joeschmoe'));

?>

Смотрите также

  • MongoCollection::createIndex() - Creates an index on the specified field(s) if it does not already exist.
  • MongoCollection::deleteIndex() - Deletes an index from this collection
  • MongoCollection::deleteIndexes() - Delete all indices for this collection
  • The MongoDB » index and » index type documentation.


Queries this collection, returning a MongoCursor for the result set

  • « MongoCollection::ensureIndex
  • MongoCollection::findAndModify »
  • PHP Manual
  • MongoCollection
  • Queries this collection, returning a MongoCursor for the result set

MongoCollection::find

(PECL mongo >=0.9.0)

MongoCollection::find — Queries this collection, returning a MongoCursor for the result set

Описание

 public MongoCursor MongoCollection::find
  ([ array $query = array()
 [, array $fields = array()
]] )

Список параметров

query

The fields for which to search. MongoDB's query language is quite extensive. The PHP driver will in almost all cases pass the query straight through to the server, so reading the MongoDB core docs on » find is a good idea.

Внимание

Please make sure that for all special query operators (starting with $) you use single quotes so that PHP doesn't try to replace "$exists" with the value of the variable $exists.

fields

Fields of the results to return. The array is in the format array('fieldname' => true, 'fieldname2' => true). The _id field is always returned.

Возвращаемые значения

Returns a cursor for the search results.

Примеры

Пример #1 MongoCollection::find() example

This example demonstrates basic search options.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'produce');

// search for fruits
$fruitQuery = array('Type' => 'Fruit');

$cursor = $collection->find($fruitQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

// search for produce that is sweet. Taste is a child of Details.
$sweetQuery = array('Details.Taste' => 'Sweet');
echo "Sweet\n";
$cursor = $collection->find($sweetQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

Результат выполнения данного примера:

array(4) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "50a87dd084f045a19b220dd6"
  }
  ["Name"]=>
  string(5) "Apple"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(5) "Sweet"
    ["Colour"]=>
    string(3) "Red"
  }
}
array(4) {
  ["_id"]=>
  object(MongoId)#8 (1) {
    ["$id"]=>
    string(24) "50a87de084f045a19b220dd7"
  }
  ["Name"]=>
  string(5) "Lemon"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(4) "Sour"
    ["Colour"]=>
    string(5) "Green"
  }
}

Sweet:
array(4) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "50a87dd084f045a19b220dd6"
  }
  ["Name"]=>
  string(5) "Apple"
  ["Type"]=>
  string(5) "Fruit"
  ["Details"]=>
  array(2) {
    ["Taste"]=>
    string(5) "Sweet"
    ["Colour"]=>
    string(3) "Red"
  }
}

See MongoCursor for more information how to work with cursors.

Пример #2 MongoCollection::find() example

This example demonstrates how to search for a range.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

// search for documents where 5 < x < 20
$rangeQuery = array('x' => array( '$gt' => 5, '$lt' => 20 ));

$cursor = $collection->find($rangeQuery);
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

Результат выполнения данного примера:

array(2) {
  ["_id"]=>
  object(MongoId)#10 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000000"
  }
  ["x"]=>
  int(12)
}
array(2) {
  ["_id"]=>
  object(MongoId)#11 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000001"
  }
  ["x"]=>
  int(12)
}

See MongoCursor for more information how to work with cursors.

Пример #3 MongoCollection::find() example using $where

This example demonstrates how to search a collection using javascript code to reduce the resultset.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$js = "function() {
    return this.name == 'Joe' || this.age == 50;
}";
$cursor = $collection->find(array('$where' => $js));
foreach ($cursor as $doc) {
    var_dump($doc);
}

?>

Результат выполнения данного примера:

array(3) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000002"
  }
  ["name"]=>
  string(3) "Joe"
  ["age"]=>
  int(20)
}

Пример #4 MongoCollection::find() example using $in

This example demonstrates how to search a collection using the $in operator.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$cursor = $collection->find(array(
    'name' => array('$in' => array('Joe', 'Wendy'))
));

?>

Результат выполнения данного примера:

array(3) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "4ebc3e3710b89f2349000002"
  }
  ["name"]=>
  string(3) "Joe"
  ["age"]=>
  int(20)
}

Пример #5 Getting results as an array

This returns a MongoCursor. Often, when people are starting out, they are more comfortable using an array. To turn a cursor into an array, use the iterator_to_array() function.

<?php

$m = new MongoClient();
$db = $m->selectDB('test');
$collection = new MongoCollection($db, 'phpmanual');

$cursor = $collection->find();
$array = iterator_to_array($cursor);

?>

Результат выполнения данного примера:

array(3) {
  ["4ebc40af10b89f5149000000"]=>
  array(2) {
    ["_id"]=>
    object(MongoId)#6 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000000"
    }
    ["x"]=>
    int(12)
  }
  ["4ebc40af10b89f5149000001"]=>
  array(2) {
    ["_id"]=>
    object(MongoId)#11 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000001"
    }
    ["x"]=>
    int(12)
  }
  ["4ebc40af10b89f5149000002"]=>
  array(3) {
    ["_id"]=>
    object(MongoId)#12 (1) {
      ["$id"]=>
      string(24) "4ebc40af10b89f5149000002"
    }
    ["name"]=>
    string(3) "Joe"
    ["age"]=>
    int(20)
  }
}

Using iterator_to_array() forces the driver to load all of the results into memory, so do not do this for result sets that are larger than memory!

Also, certain system collections do not have an _id field. If you are dealing with a collection that might have documents without _ids, pass FALSE as the second argument to iterator_to_array() (so that it will not try to use the non-existent _id values as keys).

Смотрите также

  • MongoCollection::findOne() - Queries this collection, returning a single element
  • MongoCollection::insert() - Inserts a document into the collection
  • MongoDB core docs on » find.


Update a document and return it

  • « MongoCollection::find
  • MongoCollection::findOne »
  • PHP Manual
  • MongoCollection
  • Update a document and return it

MongoCollection::findAndModify

(PECL mongo >=1.3.0)

MongoCollection::findAndModify — Update a document and return it

Описание

public array MongoCollection::findAndModify ( array $query [, array $update [, array $fields [, array $options ]]] )

The findAndModify command atomically modifies and returns a single document. By default, the returned document does not include the modifications made on the update. To return the document with the modifications made on the update, use the new option.

Список параметров

query

The query criteria to search for.

update

The update criteria.

fields

Optionally only return these fields.

options

An array of options to apply, such as remove the match document from the DB and return it.

Option | Описание
sort array | Determines which document the operation will modify if the query selects multiple documents. findAndModify will modify the first document in the sort order specified by this argument.
remove boolean | Optional if update field exists. When TRUE, removes the selected document. The default is FALSE.
update array | Optional if remove field exists. Performs an update of the selected document.
new boolean | Optional. When TRUE, returns the modified document rather than the original. The findAndModify method ignores the new option for remove operations. The default is FALSE.
upsert boolean | Optional. Used in conjunction with the update field. When TRUE, the findAndModify command creates a new document if the query returns no documents. The default is false. In MongoDB 2.2, the findAndModify command returns NULL when upsert is TRUE.

Возвращаемые значения

Returns the original document, or the modified document when new is set.

Ошибки

Throws MongoResultException on failure.

Примеры

Пример #1 MongoCollection::findAndModify() example

<?php
$m = new Mongo;
$col = $m->selectDB("test")->jobs;

$col->insert(array(
     "name" => "Next promo",
     "inprogress" => false,
     "priority" => 0,
     "tasks" => array( "select product", "add inventory", "do placement"),
) );

$col->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 1,
     "tasks" => array( "run sales report", "email report" )
) );

$col->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 2,
     "tasks" => array( "run marketing report", "email report" )
    ),
    array("w" => 1)
);

$retval = $col->findAndModify(
     array("inprogress" => false, "name" => "Biz report"),
     array('$set' => array('inprogress' => true, "started" => new MongoDate())),
     null,
     array(
        "sort" => array("priority" => -1),
        "new" => true,
    )
);

var_dump($retval);
?>

Результатом выполнения данного примера будет что-то подобное:

array(6) {
  ["_id"]=>
  object(MongoId)#7 (1) {
    ["$id"]=>
    string(24) "5091b5b244415e8cc3000002"
  }
  ["inprogress"]=>
  bool(true)
  ["name"]=>
  string(10) "Biz report"
  ["priority"]=>
  int(2)
  ["started"]=>
  object(MongoDate)#8 (2) {
    ["sec"]=>
    int(1351726514)
    ["usec"]=>
    int(925000)
  }
  ["tasks"]=>
  array(2) {
    [0]=>
    string(20) "run marketing report"
    [1]=>
    string(12) "email report"
  }
}

Пример #2 MongoCollection::findAndModify() error handling

<?php
$m = new Mongo;
$col = $m->selectDB("test")->jobs;
try {
    $retval = $col->findAndModify(
         array("inprogress" => false, "name" => "Next promo"),
         array('$pop' => array("tasks" => -1)),
         array("tasks" => array('$pop' => array("stuff"))),
         array("new" => true)
    );
} catch(MongoResultException $e) {
    echo $e->getCode(), " : ", $e->getMessage(), "\n";
    var_dump($e->getDocument());
}

?>

Результатом выполнения данного примера будет что-то подобное:

13097 : exception: Unsupported projection option: $pop
array(3) {
  ["errmsg"]=>
  string(46) "exception: Unsupported projection option: $pop"
  ["code"]=>
  int(13097)
  ["ok"]=>
  float(0)
}

Смотрите также

  • The MongoDB » findAndModify command docs


Queries this collection, returning a single element

  • « MongoCollection::findAndModify
  • MongoCollection::__get »
  • PHP Manual
  • MongoCollection
  • Queries this collection, returning a single element

MongoCollection::findOne

(PECL mongo >=0.9.0)

MongoCollection::findOne — Queries this collection, returning a single element

Описание

 public array MongoCollection::findOne
  ([ array $query = array()
 [, array $fields = array()
 [, array $options = array()
]]] )

As opposed to MongoCollection::find(), this method will return only the first result from the result set, and not a MongoCursor that can be iterated over.

Список параметров

query

The fields for which to search. MongoDB's query language is quite extensive. The PHP driver will in almost all cases pass the query straight through to the server, so reading the MongoDB core docs on » find is a good idea.

Внимание

Please make sure that for all special query operaters (starting with $) you use single quotes so that PHP doesn't try to replace "$exists" with the value of the variable $exists.

fields

Fields of the results to return. The array is in the format array('fieldname' => true, 'fieldname2' => true). The _id field is always returned.

options

This parameter is an associative array of the form array("name" => <value>, ...). Currently supported options are:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Returns record matching the search or NULL.

Ошибки

Throws MongoConnectionException if it cannot reach the database.

Список изменений

Версия | Описание
1.5.0 | Added optional options argument.

Примеры

Пример #1 MongoCollection::findOne() document by its id.

This example demonstrates how to find a single document in a collection by its id.

<?php

$articles = $mongo->my_db->articles;

$article = $articles->findOne(array('_id' => new MongoId('47cc67093475061e3d9536d2')));

?>

Пример #2 MongoCollection::findOne() document by some condition.

This example demonstrates how to find a single document in a collection by some condition and limiting the returned fields.

<?php

$users = $mongo->my_db->users;
$user = $users->findOne(array('username' => 'jwage'), array('password'));
print_r($user);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [_id] => MongoId Object
        (
        )

    [password] => test
)

Notice how even though the document does have a username field, we limited the results to only contain the password field.

Смотрите также

  • MongoCollection::find() - Queries this collection, returning a MongoCursor for the result set
  • MongoCollection::insert() - Inserts a document into the collection
  • MongoDB core docs on » find.


Gets a collection

  • « MongoCollection::findOne
  • MongoCollection::getDBRef »
  • PHP Manual
  • MongoCollection
  • Gets a collection

MongoCollection::__get

(PECL mongo >=1.0.2)

MongoCollection::__get — Gets a collection

Описание

public MongoCollection MongoCollection::__get ( string $name )

A concise syntax for getting a collection with a dot-separated name. If a collection name contains strange characters, you may have to use MongoDB::selectCollection() instead.

<?php

$mongo = new MongoClient();

// the following two lines are equivalent
$collection = $mongo->selectDB("foo")->selectCollection("bar.baz");
$collection = $mongo->foo->bar->baz;

?>

Список параметров

name

The next string in the collection name.

Возвращаемые значения

Returns the collection.


Fetches the document pointed to by a database reference

  • « MongoCollection::__get
  • MongoCollection::getIndexInfo »
  • PHP Manual
  • MongoCollection
  • Fetches the document pointed to by a database reference

MongoCollection::getDBRef

(PECL mongo >=0.9.0)

MongoCollection::getDBRef — Fetches the document pointed to by a database reference

Описание

public array MongoCollection::getDBRef ( array $ref )

Список параметров

ref

A database reference.

Возвращаемые значения

Returns the database document pointed to by the reference.

Примеры

Пример #1 MongoCollection::getDBRef() example

<?php

$playlists = $db->playlists;

$myList = $playlists->findOne(array('username' => 'me'));

// fetch each song in the playlist
foreach ($myList['songlist'] as $songRef) {
    $song = $playlists->getDBRef($songRef);
    echo $song['title'] . "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Dazed and Confused
Ma na ma na
Bohemian Rhapsody

In the above example each $songRef looks something like the following:
    Array
    (
        [$ref] => songs
        [$id] => 49902cde5162504500b45c2c
    )

Смотрите также

  • MongoCollection::createDBRef() - Creates a database reference


Returns information about indexes on this collection

  • « MongoCollection::getDBRef
  • MongoCollection::getName »
  • PHP Manual
  • MongoCollection
  • Returns information about indexes on this collection

MongoCollection::getIndexInfo

(PECL mongo >=0.9.0)

MongoCollection::getIndexInfo — Returns information about indexes on this collection

Описание

public array MongoCollection::getIndexInfo ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This function returns an array in which each element describes an index. Elements will contain the values name for the name of the index, ns for the namespace (a combination of the database and collection name), and key for a list of all fields in the index and their ordering. Additional values may be present for special indexes, such as unique or sparse.

Примеры

Пример #1 MongoCollection::getIndexInfo() example

<?php

$m = new MongoClient();
$c = $m->selectCollection('test', 'venues');
var_dump($c->getIndexInfo());

?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  [0]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["_id"]=>
      int(1)
    }
    ["name"]=>
    string(4) "_id_"
    ["ns"]=>
    string(11) "test.venues"
  }
  [1]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["name"]=>
      float(1)
    }
    ["name"]=>
    string(6) "name_1"
    ["ns"]=>
    string(11) "test.venues"
  }
  [2]=>
  array(4) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(2) {
      ["type"]=>
      float(1)
      ["createdAt"]=>
      float(-1)
    }
    ["name"]=>
    string(19) "type_1_createdAt_-1"
    ["ns"]=>
    string(11) "test.venues"
  }
  [3]=>
  array(5) {
    ["v"]=>
    int(1)
    ["key"]=>
    array(1) {
      ["location"]=>
      string(8) "2dsphere"
    }
    ["name"]=>
    string(17) "location_2dsphere"
    ["ns"]=>
    string(11) "test.venues"
    ["2dsphereIndexVersion"]=>
    int(2)
  }
}

Смотрите также

MongoDB core docs on » vanilla indexes and » geospatial indexes.


Получить имя коллекции

  • « MongoCollection::getIndexInfo
  • MongoCollection::getReadPreference »
  • PHP Manual
  • MongoCollection
  • Получить имя коллекции

MongoCollection::getName

(PECL mongo >=0.9.0)

MongoCollection::getName — Получить имя коллекции

Описание

public string MongoCollection::getName ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя коллекции.

Примеры

Пример #1 Пример использования MongoCollection::getName()

<?php

$m = new MongoClient();
$c = $m->foo->bar->baz;

echo "Working with collection " . $c->getName() . ".\n";

// Метод MongoCollection::__toString() возвращает полное пространство имен
echo "Working in namespace $c.\n";

?>

Результатом выполнения данного примера будет что-то подобное:

Working with collection bar.baz.
Working in namespace foo.bar.baz.


Get the read preference for this collection

  • « MongoCollection::getName
  • MongoCollection::getSlaveOkay »
  • PHP Manual
  • MongoCollection
  • Get the read preference for this collection

MongoCollection::getReadPreference

(PECL mongo >=1.3.0)

MongoCollection::getReadPreference — Get the read preference for this collection

Описание

public array MongoCollection::getReadPreference ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Список изменений

Версия | Описание
1.3.3 | The return value has changed to be consistent with MongoCollection::setReadPreference(). The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.

Примеры

Пример #1 MongoCollection::getReadPreference() return value example

<?php

$m = new MongoClient();
$c = $m->test->users;
$c->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($c->getReadPreference());
?>

Результат выполнения данного примера:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Смотрите также

  • The read preferences documentation.
  • MongoCollection::setReadPreference() - Set the read preference for this collection


Get slaveOkay setting for this collection

  • « MongoCollection::getReadPreference
  • MongoCollection::getWriteConcern »
  • PHP Manual
  • MongoCollection
  • Get slaveOkay setting for this collection

MongoCollection::getSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::getSlaveOkay — Get slaveOkay setting for this collection

Описание

public bool MongoCollection::getSlaveOkay ( void )

See the query section of this manual for information on distributing reads to secondaries.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the value of slaveOkay for this instance.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Смотрите также

  • Read Preferences
  • MongoCollection::getReadPreference() - Get the read preference for this collection


Get the write concern for this collection

  • « MongoCollection::getSlaveOkay
  • MongoCollection::group »
  • PHP Manual
  • MongoCollection
  • Get the write concern for this collection

MongoCollection::getWriteConcern

(PECL mongo >=1.5.0)

MongoCollection::getWriteConcern — Get the write concern for this collection

Описание

public array MongoCollection::getWriteConcern ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция возвращает массив, описывающий контроль записи. Массив содержит значения w - уровень подтверждения или режим в виде строки, и wtimeout определяющий максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Примеры

Пример #1 MongoCollection::getWriteConcern() return value example

<?php

$mc = new MongoClient('mongodb://localhost:27017', array('wTimeoutMS' => 500));
$coll = $mc->selectCollection('test', 'foo');
var_dump($coll->getWriteConcern());

$coll->setWriteConcern(1, 1000);
var_dump($coll->getWriteConcern());
?>

Результат выполнения данного примера:

array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(500)
}
array(2) {
  ["w"]=>
  int(1)
  ["wtimeout"]=>
  int(1000)
}

Смотрите также

  • The write concern documentation.
  • MongoCollection::setWriteConcern() - Set the write concern for this database


Performs an operation similar to SQL's GROUP BY command

  • « MongoCollection::getWriteConcern
  • MongoCollection::insert »
  • PHP Manual
  • MongoCollection
  • Performs an operation similar to SQL's GROUP BY command

MongoCollection::group

(PECL mongo >=0.9.2)

MongoCollection::group — Performs an operation similar to SQL's GROUP BY command

Описание

public array MongoCollection::group ( mixed $keys , array $initial , MongoCode $reduce [, array $options = array() ] )

Список параметров

keys

Fields to group by. If an array or non-code object is passed, it will be the key used to group results.

1.0.4+: If keys is an instance of MongoCode, keys will be treated as a function that returns the key to group by (see the "Passing a keys function" example below).

initial

Initial value of the aggregation counter object.

reduce

A function that takes two arguments (the current document and the aggregation to this point) and does the aggregation.

options

Optional parameters to the group command. Valid options include:

  • "condition"

    Criteria for including a document in the aggregation.

  • "finalize"

    Function called once per unique key that takes the final output of the reduce function.

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Returns an array containing the result.

Список изменений

Версия | Описание
1.5.0 | Added "maxTimeMS" option.
1.2.11 | Emits E_DEPRECATED when options is scalar.

Примеры

Пример #1 MongoCollection::group() example

This groups documents by category and creates a list of names within that category.

<?php

$collection->insert(array("category" => "fruit", "name" => "apple"));
$collection->insert(array("category" => "fruit", "name" => "peach"));
$collection->insert(array("category" => "fruit", "name" => "banana"));
$collection->insert(array("category" => "veggie", "name" => "corn"));
$collection->insert(array("category" => "veggie", "name" => "broccoli"));

$keys = array("category" => 1);

$initial = array("items" => array());

$reduce = "function (obj, prev) { prev.items.push(obj.name); }";

$g = $collection->group($keys, $initial, $reduce);

echo json_encode($g['retval']);

?>

Результатом выполнения данного примера будет что-то подобное:

[{"category":"fruit","items":["apple","peach","banana"]},{"category":"veggie","items":["corn","broccoli"]}]

Пример #2 MongoCollection::group() example

This example doesn't use any key, so every document will be its own group. It also uses a condition: only documents that match this condition will be processed by the grouping function.

<?php

$collection->save(array("a" => 2));
$collection->save(array("b" => 5));
$collection->save(array("a" => 1));

// use all fields
$keys = array();

// set intial values
$initial = array("count" => 0);

// JavaScript function to perform
$reduce = "function (obj, prev) { prev.count++; }";

// only use documents where the "a" field is greater than 1
$condition = array('condition' => array("a" => array( '$gt' => 1)));

$g = $collection->group($keys, $initial, $reduce, $condition);

var_dump($g);

?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  ["retval"]=>
  array(1) {
    [0]=>
    array(1) {
      ["count"]=>
      float(1)
    }
  }
  ["count"]=>
  float(1)
  ["keys"]=>
  int(1)
  ["ok"]=>
  float(1)
}

Пример #3 Passing a keys function

If you want to group by something other than a field name, you can pass a function as the first parameter of MongoCollection::group() and it will be run against each document. The return value of the function will be used as its grouping value.

This example demonstrates grouping by the num field modulo 4.

<?php

$c->group(new MongoCode('function(doc) { return {mod : doc.num % 4}; }'),
     array("count" => 0),
     new MongoCode('function(current, total) { total.count++; }'));

?>


Inserts a document into the collection

  • « MongoCollection::group
  • MongoCollection::parallelCollectionScan »
  • PHP Manual
  • MongoCollection
  • Inserts a document into the collection

MongoCollection::insert

(PECL mongo >=0.9.0)

MongoCollection::insert — Inserts a document into the collection

Описание

public bool|array MongoCollection::insert ( array|object $document [, array $options = array() ] )

All strings sent to the database must be UTF-8. If a string is not UTF-8, a MongoException will be thrown. To insert (or query for) a non-UTF-8 string, use MongoBinData.

Список параметров

document

An array or object. If an object is used, it may not have protected or private properties.

Замечание:

If the parameter does not have an _id key or property, a new MongoId instance will be created and assigned to it. This special behavior does not mean that the parameter is passed by reference.

options

An array of options for the insert operation. Currently available options include:

  • "fsync"

    Булево, по умолчанию FALSE. Если включено журналирование, то работает также как и "j". Если журналирование не включено, то операции записи блокируются пока не будут синхронизированы с файлами на жестком диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если журналирование включено, то пользователю настоятельно рекомендуется использовать опцию "j" вместо "fsync". Не используйте "fsync" и "j" одновременно,так как это может привести к ошибке.

  • "j"

    Булево, по умолчанию FALSE. Блокирует операции записи пока они не будут синхронизированы с журналом на диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если применяется эта опция и журналирование отключено, то MongoDB 2.6+ выбросит ошибку и прервет запись; старые версии сервера просто игнорируют эту опцию.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

The following options are deprecated and should no longer be used:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

Returns an array containing the status of the insertion if the "w" option is set. Otherwise, returns TRUE if the inserted array is not empty (a MongoException will be thrown if the inserted array is empty).

If an array is returned, the following keys may be present:

ok

This should almost always be 1 (unless last_error itself failed).

err

If this field is non-null, an error occurred on the previous operation. If this field is set, it will be a string describing the error that occurred.

code

If a database error occurred, the relevant error code will be passed back to the client.

errmsg

This field is set if something goes wrong with a database command. It is coupled with ok being 0. For example, if w is set and times out, errmsg will be set to "timed out waiting for slaves" and ok will be 0. If this field is set, it will be a string describing the error that occurred.

n

If the last operation was an update, upsert, or a remove, the number of documents affected will be returned. For insert operations, this value is always 0.

wtimeout

If the previous option timed out waiting for replication.

waited

How long the operation waited before timing out.

wtime

If w was set and the operation succeeded, how long it took to replicate to w servers.

upserted

If an upsert occurred, this field will contain the new record's _id field. For upserts, either this field or updatedExisting will be present (unless an error occurred).

updatedExisting

If an upsert updated an existing element, this field will be true. For upserts, either this field or upserted will be present (unless an error occurred).

Ошибки

Throws MongoException if the inserted document is empty or if it contains zero-length keys. Attempting to insert an object with protected and private properties will cause a zero-length key error.

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Список изменений

Версия | Описание
1.5.0 | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
1.3.4 | Added "wtimeout" option.
1.3.0 | Added "w" option. The options parameter no longer accepts a boolean to signify an acknowledged write. Instead, this now has to be done with array('w' => 1) (the default behaviour of MongoClient).
1.2.0 | Added "timeout" option.
1.0.11 | Disconnects on "not master" errors if "safe" is set.
1.0.9 | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option. The return type was changed to be an array containing error information if the "safe" option is used. Otherwise, a boolean is returned as before.
1.0.2 | Changed second parameter to be an array of options. Pre-1.0.2, the second parameter was a boolean indicating the "safe" option.
1.0.1 | Throw a MongoCursorException if the "safe" option is set and the insert fails.

Примеры

Пример #1 MongoCollection::insert() _id example

An _id field will be added to the inserted document if not already present. Depending on how the parameter is passed, a generated _id may or may not be available to calling code.

<?php

$m = new MongoClient();
$collection = $m->selectCollection('test', 'phpmanual');

// If an array literal is used, there is no way to access the generated _id
$collection->insert(array('x' => 1));

// The _id is available on an array passed by value
$a = array('x' => 2);
$collection->insert($a);
var_dump($a);

// The _id is not available on an array passed by reference
$b = array('x' => 3);
$ref = &$b;
$collection->insert($ref);
var_dump($ref);

// The _id is available if a wrapping function does not trigger copy-on-write
function insert_no_cow($collection, $document)
{
    $collection->insert($document);
}

$c = array('x' => 4);
insert_no_cow($collection, $c);
var_dump($c);

// The _id is not available if a wrapping function triggers copy-on-write
function insert_cow($collection, $document)
{
    $document['y'] = 1;
    $collection->insert($document);
}

$d = array('x' => 5);
insert_cow($collection, $d);
var_dump($d);

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["x"]=>
  int(2)
  ["_id"]=>
  object(MongoId)#4 (0) {
  }
}
array(1) {
  ["x"]=>
  int(3)
}
array(2) {
  ["x"]=>
  int(4)
  ["_id"]=>
  object(MongoId)#5 (0) {
  }
}
array(1) {
  ["x"]=>
  int(5)
}

Пример #2 MongoCollection::insert() acknowledged write example

This example shows inserting two elements with the same _id, which causes a MongoCursorException to be thrown, as w was set.

<?php

$person = array("name" => "Joe", "age" => 20);
$collection->insert($person);

// now $person has an _id field, so if we save it
// again, we will get an exception
try {
    $collection->insert($person, array("w" => 1));
} catch(MongoCursorException $e) {
    echo "Can't save the same person twice!\n";
}

?>

Смотрите также

  • MongoCollection::batchInsert() - Inserts multiple documents into this collection
  • MongoCollection::update() - Update records based on a given criteria
  • MongoCollection::find() - Queries this collection, returning a MongoCursor for the result set
  • MongoCollection::remove() - Удаление записей из коллекции
  • MongoDB core docs on » insert.


Returns an array of cursors to iterator over a full collection in parallel

  • « MongoCollection::insert
  • MongoCollection::remove »
  • PHP Manual
  • MongoCollection
  • Returns an array of cursors to iterator over a full collection in parallel

MongoCollection::parallelCollectionScan

(PECL mongo >=1.5.0)

MongoCollection::parallelCollectionScan — Returns an array of cursors to iterator over a full collection in parallel

Описание

public array[MongoCommandCursor] MongoCollection::parallelCollectionScan ( int $num_cursors )

This method returns an array of a maximum of num_cursors cursors. An iteration over one of the returned cursors results in a partial set of documents for a collection. Iteration over all the returned cursors results in getting every document back from the collection.

This method is a wrapper for the parallelCollectionScan MongoDB command.

Список параметров

num_cursors

The number of cursors to request from the server. Please note, that the server can return less cursors than you requested.

Возвращаемые значения

Returns an array of MongoCommandCursor objects.

Примеры

Пример #1 MongoCollection::parallelCollectionScan() example

Returning all documents in a collection by using multiple cursors.

<?php
$m = new MongoClient;
$c = $m->demo->cities;

/* Request three cursors */
$cursors = $c->parallelCollectionScan( 3 );

/* Add all the cursors to the MultipleIterator */
$mi = new MultipleIterator( MultipleIterator::MIT_NEED_ANY );
foreach ( $cursors as $cursor )
{
    $mi->attachIterator( $cursor );
}

/* Iterate over all the associated cursors */
foreach ( $mi as $items )
{
    foreach ( $items as $item )
    {
        if ( $item !== NULL )
        {
            echo $item['name'], "\n";
        }
    }
}
?>

Смотрите также

  • MultipleIterator
  • MongoCommandCursor
  • MongoDB::command() - Execute a database command


Удаление записей из коллекции

  • « MongoCollection::parallelCollectionScan
  • MongoCollection::save »
  • PHP Manual
  • MongoCollection
  • Удаление записей из коллекции

MongoCollection::remove

(PECL mongo >=0.9.0)

MongoCollection::remove — Удаление записей из коллекции

Описание

 public bool|array MongoCollection::remove
  ([ array $criteria = array()
 [, array $options = array()
]] )

Список параметров

criteria

Критерии запроса для удаления из документа

options

Массив опций для операции удаления. В данный момент доступны следующие опции:

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "justOne"

    Задайте как TRUE для удаления тьолько одного элемента. Если задать как FALSE, либо пропустить, то будут удалены все документы, удовлетворяющие критерию.

  • "fsync"

    Булево, по умолчанию FALSE. Если включено журналирование, то работает также как и "j". Если журналирование не включено, то операции записи блокируются пока не будут синхронизированы с файлами на жестком диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если журналирование включено, то пользователю настоятельно рекомендуется использовать опцию "j" вместо "fsync". Не используйте "fsync" и "j" одновременно,так как это может привести к ошибке.

  • "j"

    Булево, по умолчанию FALSE. Блокирует операции записи пока они не будут синхронизированы с журналом на диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если применяется эта опция и журналирование отключено, то MongoDB 2.6+ выбросит ошибку и прервет запись; старые версии сервера просто игнорируют эту опцию.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

Следующие опции считаются устаревшими и не рекомендованы к использованию:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

Возвращает массив, содержащий статус удаления, если установлена опция "w". Иначе возвращает TRUE

Поля этого массива описаны в документации для функции MongoCollection::insert().

Ошибки

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Список изменений

Версия | Описание
1.5.0

Добавлена опция "wTimeoutMS" в замен устаревшей "wtimeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "wtimeout".

Добавлена опция "socketTimeoutMS" в замен устаревшей "timeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "timeout".

Ошибка уровня E_DEPRECATED будет вызвана в случае использования "safe".

1.3.4 | Добавлена опция "wtimeout".
1.3.0

Добавлена опция "w".

Параметр options больше не принимает логические значения для определения поведения как "justOne". Вместо этого необходимо использовать array('justOne' => true).

1.2.11 | Ошибка уровня E_DEPRECATED если options скалярного типа.
1.2.0 | Добавлена опция "timeout".
1.0.11 | Ошибки сброса соединения на "не мастере" если установлена "safe".
1.0.9

Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения.

Добавлена опция "fsync".

Тип возвращаемого значения изменен на массив, содержащий информацию об ошибке если установлена опция "safe". В протовном случае, как и раньше, возвращается логическое значения.

1.0.5 | Второй парамент теперь принимает массив опция. До версии 1.0.5 второй параметр принимал логическое значение, устанавливавшее опцию "safe".

Примеры

Пример #1 Пример использования MongoCollection::remove() с опцией justOne

<?php

$radioactive = $db->radioactive;

// Посчитаем, сколько у нас еще плутония
$remaining = $radioactive->count(array('type' => 94));

$halflife = $remaining/2;

// удалим половину
while ($halflife > 0) {
    $radioactive->remove(array('type' => 94), array("justOne" => true));
    $halflife--;
}

?>

Смотрите также

  • MongoCollection::insert() - Inserts a document into the collection
  • MongoCollection::update() - Update records based on a given criteria
  • MongoDB core docs on » remove.


Saves a document to this collection

  • « MongoCollection::remove
  • MongoCollection::setReadPreference »
  • PHP Manual
  • MongoCollection
  • Saves a document to this collection

MongoCollection::save

(PECL mongo >=0.9.0)

MongoCollection::save — Saves a document to this collection

Описание

public mixed MongoCollection::save ( array|object $document [, array $options = array() ] )

If the object is from the database, update the existing database object, otherwise insert this object.

Список параметров

document

Array or object to save. If an object is used, it may not have protected or private properties.

Замечание:

If the parameter does not have an _id key or property, a new MongoId instance will be created and assigned to it. See MongoCollection::insert() for additional information on this behavior.

options

Options for the save.

  • "fsync"

    Булево, по умолчанию FALSE. Если включено журналирование, то работает также как и "j". Если журналирование не включено, то операции записи блокируются пока не будут синхронизированы с файлами на жестком диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если журналирование включено, то пользователю настоятельно рекомендуется использовать опцию "j" вместо "fsync". Не используйте "fsync" и "j" одновременно,так как это может привести к ошибке.

  • "j"

    Булево, по умолчанию FALSE. Блокирует операции записи пока они не будут синхронизированы с журналом на диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если применяется эта опция и журналирование отключено, то MongoDB 2.6+ выбросит ошибку и прервет запись; старые версии сервера просто игнорируют эту опцию.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

Возвращаемые значения

If w was set, returns an array containing the status of the save. Otherwise, returns a boolean representing if the array was not empty (an empty array will not be inserted).

Ошибки

Throws MongoException if the inserted document is empty or if it contains zero-length keys. Attempting to insert an object with protected and private properties will cause a zero-length key error.

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Список изменений

Версия | Описание
1.5.0 | Added "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
1.2.0 | Added "timeout" option.
1.0.11 | Disconnects on "not master" errors if "safe" is set.
1.0.9 | Added "fsync" option.
1.0.5 | Added options parameter.

Примеры

Пример #1 MongoCollection::save() example

<?php

$obj = array('x' => 1);

// insert $obj into the db
$collection->save($obj);
var_dump($obj);

// add another field
$obj['foo'] = 'bar';

// $obj cannot be inserted again, causes duplicate _id error
$collection->insert($obj);

// save updates $obj with the new field
$collection->save($obj);

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["x"]=>
  int(1)
  ["_id"]=>
  object(MongoId)#4 (1) {
    ["$id"]=>
    string(24) "50b6afe544415ed606000000"
  }
}


Set the read preference for this collection

  • « MongoCollection::save
  • MongoCollection::setSlaveOkay »
  • PHP Manual
  • MongoCollection
  • Set the read preference for this collection

MongoCollection::setReadPreference

(PECL mongo >=1.3.0)

MongoCollection::setReadPreference — Set the read preference for this collection

Описание

public bool MongoCollection::setReadPreference ( string $read_preference [, array $tags ] )

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Возвращает TRUE в случае успеха, иначе - FALSE.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Примеры

Пример #1 MongoCollection::setReadPreference() tag set array syntax example

<?php

$m = new MongoClient();
$c = $m->test->users;

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$c->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Смотрите также

  • The read preferences documentation.
  • MongoCollection::getReadPreference() - Get the read preference for this collection


Change slaveOkay setting for this collection

  • « MongoCollection::setReadPreference
  • MongoCollection::setWriteConcern »
  • PHP Manual
  • MongoCollection
  • Change slaveOkay setting for this collection

MongoCollection::setSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::setSlaveOkay — Change slaveOkay setting for this collection

Описание

public bool MongoCollection::setSlaveOkay ([ bool $ok = true ] )

See the query section of this manual for information on distributing reads to secondaries.

Список параметров

ok

If reads should be sent to secondary members of a replica set for all possible queries using this MongoCollection instance.

Возвращаемые значения

Returns the former value of slaveOkay for this instance.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Смотрите также

  • Read Preferences
  • MongoCollection::setReadPreference() - Set the read preference for this collection


Set the write concern for this database

  • « MongoCollection::setSlaveOkay
  • MongoCollection::toIndexString »
  • PHP Manual
  • MongoCollection
  • Set the write concern for this database

MongoCollection::setWriteConcern

(PECL mongo >=1.5.0)

MongoCollection::setWriteConcern — Set the write concern for this database

Описание

public bool MongoCollection::setWriteConcern ( mixed $w [, int $wtimeout ] )

Список параметров

w

Контроль записи. Может быть числом означающим число серверов, требуемых для подтверждения записи, или режим в виде строки (например "majority").

wtimeout

Максимальное количество миллисекунд ожидания для сервера, чтобы удовлетворить контроль записи.

Возвращаемые значения

Возвращает TRUE в случае успеха, или FALSE в противном случае.

Ошибки

Бросает предупреждение E_WARNING в случае, если параметр w не является целым числом или строкой.

Примеры

Пример #1 MongoDB::setWriteConcern() example

<?php

$mc = new MongoClient('mongodb://rs1.example.com,rs2.example.com');
$coll = $mc->selectCollection('test', 'foo');

// Require that the majority of servers in the replica set acknowledge writes
// within three seconds.
$coll->setWriteConcern('majority', 3000);
?>

Смотрите также

  • The write concern documentation.
  • MongoCollection::getWriteConcern() - Get the write concern for this collection


Converts keys specifying an index to its identifying string

  • « MongoCollection::setWriteConcern
  • MongoCollection::__toString »
  • PHP Manual
  • MongoCollection
  • Converts keys specifying an index to its identifying string

MongoCollection::toIndexString

(PECL mongo >=0.9.0)

MongoCollection::toIndexString — Converts keys specifying an index to its identifying string

Описание

static protected string MongoCollection::toIndexString ( mixed $keys )
Внимание

This method is deprecated since version 1.5.0.

Список параметров

keys

Field or fields to convert to the identifying string

Возвращаемые значения

Returns a string that describes the index.

Примеры

Пример #1 MongoCollection::toIndexString() example

This example shows how you can create an index name out of keys. Because this is a protected (static) method, you need to overload it in a child class first.

<?php
// Create inherited class to make the method "public".
class MyCollection extends MongoCollection
{
    static public function toIndexString($a)
    {
        return parent::toIndexString($a);
    }
}

echo MyCollection::toIndexString("foo"), "\n";
// Outputs: foo_1

echo MyCollection::toIndexString(array('name' => 1, 'age' => -1)), "\n";
// Outputs: name_1_age_-1
?>

Смотрите также

MongoDB core docs on » indexes.

Список изменений

Версия | Описание
1.5.0 | This method has been deprecated.


String representation of this collection

  • « MongoCollection::toIndexString
  • MongoCollection::update »
  • PHP Manual
  • MongoCollection
  • String representation of this collection

MongoCollection::__toString

(PECL mongo >=0.9.0)

MongoCollection::__toString — String representation of this collection

Описание

public string MongoCollection::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the full name of this collection.

Примеры

Пример #1 MongoCollection::__toString() example

<?php

$m = new MongoClient();

$c1 = $m->foo->bar->baz;
echo "Working with collection $c1.";

$c2 = $m->selectCollection('[]', '&');
echo "Working with collection $c2.";

?>

Результатом выполнения данного примера будет что-то подобное:

Working with collection foo.bar.baz.
Working with collection [].&.


Update records based on a given criteria

  • « MongoCollection::__toString
  • MongoCollection::validate »
  • PHP Manual
  • MongoCollection
  • Update records based on a given criteria

MongoCollection::update

(PECL mongo >=0.9.0)

MongoCollection::update — Update records based on a given criteria

Описание

public bool|array MongoCollection::update ( array $criteria , array $new_object [, array $options = array() ] )

Список параметров

criteria

Query criteria for the documents to update.

new_object

The object used to update the matched documents. This may either contain update operators (for modifying specific fields) or be a replacement document.

options

An array of options for the update operation. Currently available options include:

  • "upsert"

    If no document matches $criteria, a new document will be inserted.

    If a new document would be inserted and $new_object contains atomic modifiers (i.e. $ operators), those operations will be applied to the $criteria parameter to create the new document. If $new_object does not contain atomic modifiers, it will be used as-is for the inserted document. See the upsert examples below for more information.

  • "multiple"

    All documents matching $criteria will be updated. MongoCollection::update() has exactly the opposite behavior of MongoCollection::remove(): it updates one document by default, not all matching documents. It is recommended that you always specify whether you want to update multiple documents or a single document, as the database may change its default behavior at some point in the future.

  • "fsync"

    Булево, по умолчанию FALSE. Если включено журналирование, то работает также как и "j". Если журналирование не включено, то операции записи блокируются пока не будут синхронизированы с файлами на жестком диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если журналирование включено, то пользователю настоятельно рекомендуется использовать опцию "j" вместо "fsync". Не используйте "fsync" и "j" одновременно,так как это может привести к ошибке.

  • "j"

    Булево, по умолчанию FALSE. Блокирует операции записи пока они не будут синхронизированы с журналом на диске. Если TRUE, то применяется подтвержденная вставка и эта опция переопределяет опцию "w" в значение 0.

    Замечание: Если применяется эта опция и журналирование отключено, то MongoDB 2.6+ выбросит ошибку и прервет запись; старые версии сервера просто игнорируют эту опцию.

  • "socketTimeoutMS"

    Эта опция определяет время в миллисекундах для общения в socket. Если сервер не ответил за отведенное время, то будет брошено исключение MongoCursorTimeoutException, и не будет никакой возможности определить произвел ли сервер запись или нет. Значение -1 используется для постоянно отключения этой функции. Значением по умолчанию для MongoClient является 30000 (30 секунд).

  • "w"

    Смотрите Контроль записи. Значение по умолчанию для MongoClient является 1.

  • "wTimeoutMS"

    Эта опция определяет лимит времени в миллисекундах для подтверждения контроля записи. Она применима только, если "w" больше 1, так как ограничение времени относится к репликации. Если контроль записи не подтвержден за отведенное время, то будет выброшено исключение MongoCursorException. Значение 0 для постоянного отключения. Значением по умолчанию для MongoClient является 10000 (десять секунд).

The following options are deprecated and should no longer be used:

  • "safe"

    Устаревшая опция. Используйте опцию "w" контроля записи.

  • "timeout"

    Устаревший псевдоним для "socketTimeoutMS".

  • "wtimeout"

    Устаревший псевдоним для "wTimeoutMS".

Возвращаемые значения

Returns an array containing the status of the update if the "w" option is set. Otherwise, returns TRUE.

Fields in the status array are described in the documentation for MongoCollection::insert().

Ошибки

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.

Список изменений

Версия | Описание
1.5.0 | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
1.3.4 | Added "wtimeout" option.
1.3.0 | Added "w" option. The options parameter no longer accepts a boolean to signify an upsert. Instead, this now has to be done with array('upsert' => true).
1.2.11 | Emits E_DEPRECATED when options is scalar.
1.2.0 | Added "timeout" option.
1.0.11 | Disconnects on "not master" errors if "safe" is set.
1.0.9 | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option. The return type was changed to be an array containing error information if the "safe" option is used. Otherwise, a boolean is returned as before.
1.0.5 | Added "safe" option.
1.0.1 | Changed options parameter from boolean to array. Pre-1.0.1, the second parameter was an optional boolean value specifying an upsert.

Примеры

Пример #1 MongoCollection::update()

Adding an address field to a document.

<?php

$c->insert(array("firstname" => "Bob", "lastname" => "Jones" ));
$newdata = array('$set' => array("address" => "1 Smith Lane"));
$c->update(array("firstname" => "Bob"), $newdata);

var_dump($c->findOne(array("firstname" => "Bob")));

?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["firstname"]=>
  string(3) "Bob"
  ["lastname"]=>
  string(5) "Jones"
  ["address"]=>
  string(12) "1 Smith Lane"
}

Пример #2 MongoCollection::update() upsert examples

Upserts can simplify code, as a single line can create the document if it does not exist (based on $criteria), or update an existing document if it matches.

In the following example, $new_object contains an atomic modifier. Since the collection is empty and upsert must insert a new document, it will apply those operations to the $criteria parameter in order to create the document.

<?php

$c->drop();
$c->update(
    array("uri" => "/summer_pics"),
    array('$inc' => array("page hits" => 1)),
    array("upsert" => true)
);
var_dump($c->findOne());

?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["_id"]=>
  object(MongoId)#9 (0) {
  }
  ["uri"]=>
  string(12) "/summer_pics"
  ["page hits"]=>
  int(1)
}

If $new_object does not contain atomic modifiers (i.e. $ operators), upsert will use $new_object as-is for the new document. This matches the behavior of a normal update, where not using atomic modifiers causes the document to be overwritten.

<?php

$c->drop();
$c->update(
    array("name" => "joe"),
    array("username" => "joe312", "createdAt" => new MongoDate()),
    array("upsert" => true)
);
var_dump($c->findOne());

?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["_id"]=>
  object(MongoId)#10 (0) {
  }
  ["username"]=>
  string(6) "joe312"
  ["createdAt"]=>
  object(MongoDate)#4 (0) {
  }
}

Пример #3 MongoCollection::update() multiple example

By default, MongoCollection::update() will only update the first document matching $criteria that it finds. Using the "multiple" option can override this behavior, if needed.

This example adds a "gift" field to every person whose birthday is in the next day.

<?php

$today = array('$gt' => new MongoDate(), '$lt' => new MongoDate(strtotime("+1 day")));
$people->update(
    array("birthday" => $today),
    array('$set' => array('gift' => $surprise)),
    array("multiple" => true)
);

?>

Смотрите также

The PHP documentation on updates and the » MongoDB core docs.


Validates this collection

  • « MongoCollection::update
  • MongoCursor »
  • PHP Manual
  • MongoCollection
  • Validates this collection

MongoCollection::validate

(PECL mongo >=0.9.0)

MongoCollection::validate — Validates this collection

Описание

public array MongoCollection::validate ([ bool $scan_data = FALSE ] )

Список параметров

scan_data

Only validate indices, not the base collection.

Возвращаемые значения

Returns the database's evaluation of this object.


The MongoCursor class

(PECL mongo >=0.9.0)

Введение

A cursor is used to iterate through the results of a database query. For example, to query the database and see all results, you could do:

Пример #1 MongoCursor basic usage

<?php

$cursor = $collection->find();
var_dump(iterator_to_array($cursor));

?>

You don't generally create cursors using the MongoCursor constructor, you get a new cursor by calling MongoCollection::find() (as shown above).

Suppose that, in the example above, $collection was a 50GB collection. We certainly wouldn't want to load that into memory all at once, which is what a cursor is for: allowing the client to access the collection in dribs and drabs.

If we have a large result set, we can iterate through it, loading a few megabytes of results into memory at a time. For example, we could do:

Пример #2 Iterating over MongoCursor

<?php

$cursor = $collection->find();

foreach ($cursor as $doc) {
    // do something to each document
}

?>
This will go through each document in the collection, loading and garbage collecting documents as needed.

Note that this means that a cursor does not "contain" the database results, it just manages them. Thus, if you print a cursor (with, say, var_dump() or print_r()), you'll just get the cursor object, not your documents. To get the documents themselves, you can use one of the methods shown above.

Cursor Stages

A MongoCursor has two "life stages": pre- and post- query. When a cursor is created, it has not yet contacted the database, so it is in its pre-query state. In this state, the client can further specify what they want the query to do, including adding limits, skips, sorts, and more advanced options.

When the client attempts to get a result (by calling MongoCursor::next(), directly or indirectly), the cursor moves into the post-query stage. At this point, the query has been executed by the database and cannot be modified anymore.

Пример #3 Adding options to MongoCursor

<?php

$cursor = $collection->find()->limit(10);

// database has not yet been queried, so more search options can be added
$cursor = $cursor->sort(array("a" => 1));

var_dump($cursor->getNext());
// now database has been queried and more options cannot be added

// so this will throw an exception:
$cursor->skip(4);
?>

Обзор классов

MongoCursor implements MongoCursorInterface , Iterator {
/* Static Fields */
static boolean $slaveOkay = FALSE ;
static integer $timeout = 30000 ;
/* Методы */
public MongoCursor addOption ( string $key , mixed $value )
public MongoCursor awaitData ([ bool $wait = true ] )
public MongoCursor batchSize ( int $batchSize )
public __construct ( MongoClient $connection , string $ns [, array $query = array() [, array $fields = array() ]] )
public int count ([ bool $foundOnly = FALSE ] )
public array current ( void )
public bool dead ( void )
protected void doQuery ( void )
public array explain ( void )
public MongoCursor fields ( array $f )
public array getNext ( void )
public array getReadPreference ( void )
public bool hasNext ( void )
public MongoCursor hint ( mixed $index )
public MongoCursor immortal ([ bool $liveForever = true ] )
public array info ( void )
public string|int key ( void )
public MongoCursor limit ( int $num )
public MongoCursor maxTimeMS ( int $ms )
public array next ( void )
public MongoCursor partial ([ bool $okay = true ] )
public void reset ( void )
public void rewind ( void )
public MongoCursor setFlag ( int $flag [, bool $set = true ] )
public MongoCursor setReadPreference ( string $read_preference [, array $tags ] )
public MongoCursor skip ( int $num )
public MongoCursor slaveOkay ([ bool $okay = true ] )
public MongoCursor snapshot ( void )
public MongoCursor sort ( array $fields )
public MongoCursor tailable ([ bool $tail = true ] )
public MongoCursor timeout ( int $ms )
public bool valid ( void )
}

Static Variables

slaveOkay

If the query should have the "slaveOkay" flag set, which allows reads on the secondary (secondaries are, by default, just for backup and not queried). Can be overridden with MongoCursor::slaveOkay().

This functionality is deprecated. Please use Read Preferences instead.

timeout

Set timeout in milliseconds for all database responses. Use -1 to wait forever. Can be overridden with MongoCursor::timeout(). This does not cause the MongoDB server to cancel the operation; it only instructs the driver to stop waiting for a response and throw a MongoCursorTimeoutException after a set time.

Смотрите также

MongoDB core docs on » cursors.

Содержание

  • MongoCursor::addOption — Adds a top-level key/value pair to a query
  • MongoCursor::awaitData — Sets whether this cursor will wait for a while for a tailable cursor to return more data
  • MongoCursor::batchSize — Limits the number of elements returned in one batch.
  • MongoCursor::__construct — Create a new cursor
  • MongoCursor::count — Counts the number of results for this query
  • MongoCursor::current — Returns the current element
  • MongoCursor::dead — Checks if there are results that have not yet been sent from the database
  • MongoCursor::doQuery — Execute the query.
  • MongoCursor::explain — Return an explanation of the query, often useful for optimization and debugging
  • MongoCursor::fields — Sets the fields for a query
  • MongoCursor::getNext — Advances the cursor to the next result, and returns that result
  • MongoCursor::getReadPreference — Get the read preference for this query
  • MongoCursor::hasNext — Checks if there are any more elements in this cursor
  • MongoCursor::hint — Gives the database a hint about the query
  • MongoCursor::immortal — Sets whether this cursor will timeout
  • MongoCursor::info — Gets information about the cursor's creation and iteration
  • MongoCursor::key — Returns the current result's _id, or its index within the result set
  • MongoCursor::limit — Limits the number of results returned
  • MongoCursor::maxTimeMS — Sets a server-side timeout for this query
  • MongoCursor::next — Advances the cursor to the next result, and returns that result
  • MongoCursor::partial — If this query should fetch partial results from mongos if a shard is down
  • MongoCursor::reset — Clears the cursor
  • MongoCursor::rewind — Returns the cursor to the beginning of the result set
  • MongoCursor::setFlag — Sets arbitrary flags in case there is no method available the specific flag
  • MongoCursor::setReadPreference — Set the read preference for this query
  • MongoCursor::skip — Skips a number of results
  • MongoCursor::slaveOkay — Sets whether this query can be done on a secondary [deprecated]
  • MongoCursor::snapshot — Use snapshot mode for the query
  • MongoCursor::sort — Sorts the results by given fields
  • MongoCursor::tailable — Sets whether this cursor will be left open after fetching the last results
  • MongoCursor::timeout — Sets a client-side timeout for this query
  • MongoCursor::valid — Checks if the cursor is reading a valid result.


Adds a top-level key/value pair to a query

  • « MongoCursor
  • MongoCursor::awaitData »
  • PHP Manual
  • MongoCursor
  • Adds a top-level key/value pair to a query

MongoCursor::addOption

(PECL mongo >=1.0.4)

MongoCursor::addOption — Adds a top-level key/value pair to a query

Описание

public MongoCursor MongoCursor::addOption ( string $key , mixed $value )

This is an advanced function and should not be used unless you know what you're doing.

A query can optionally be nested in a "query" field if other options, such as a sort or hint, are given. For instance, adding a sort causes the query to become a subfield of a bigger query object, like:

<?php

$query = array("query" => $query, "orderby" => $sort);

?>

This method is for adding a top-level field to a query. It makes the query a subobject (if it isn't already) and adds the key/value pair of your chosing to the top level.

Внимание

It cannot be used to add extra criteria to a query on the fly. For instance, this will not work:

<?php

// NOT CORRECT
$cursor = $users->find()->addOption("name", "joe")->addOption("age", 20);

?>
This does not query for a user named "joe" with an age of 20.

Список параметров

key

Fieldname to add.

value

Value to add.

Возвращаемые значения

Returns this cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating.

Примеры

Пример #1 Adding a comment with MongoCursor::addOption() example

MongoDB supports special options to be send to the server. The shell uses the _addSpecial option to send a $comment to the server. This comment will show up in the profiling log (for slow queries f.e.). In the PHP driver, you use the MongoCursor::addOption() method.

<?php
$m = new MongoClient;
$c = $m->demo->demo;
$cursor = $c->find();
$cursor->addOption('$comment', "This comment will show up in the profiling log");

foreach ($cursor as $document) { /* empty */ }
?>

Результатом выполнения данного примера будет что-то подобное:

{
    "op" : "query",
    "ns" : "demo.demo",
    "query" : {
        "$query" : {

        },
        "$comment" : "This comment will show up in the profiling log"
    },
    "cursorid" : 168463566447,
    "ntoreturn" : 0,
    "ntoskip" : 0,
    "nscanned" : 101,
    "nscannedObjects" : 101,
    "keyUpdates" : 0,
    "numYield" : 0,
...

Пример #2 MongoCursor::addOption() example

Using MongoCursor::skip() to skip over millions of results can become slow. One way around this is to use $min or $max options for the query. These can be handy, but they require an index on exactly the fields being searched for. This is an example of how to use $min as an alternative to MongoCursor::skip().

<?php

// make sure we have an index
$c->ensureIndex(array("ts" => 1));

// you may have to modify this to run in a reasonable amount of time on slow
// machines (should take about 30 seconds on a good machine)
for ($i = 0; $i < 30000000; $i++) {
    $c->insert(array("ts" => new MongoDate(), "i" => $i));
}

$now = strtotime("now");

// find documents inserted in the last 2 seconds
$cursor = $c->find()->addOption('$min', array("ts" => $now-2));

?>


Sets whether this cursor will wait for a while for a tailable cursor to return more data

  • « MongoCursor::addOption
  • MongoCursor::batchSize »
  • PHP Manual
  • MongoCursor
  • Sets whether this cursor will wait for a while for a tailable cursor to return more data

MongoCursor::awaitData

(PECL mongo >=1.2.11)

MongoCursor::awaitData — Sets whether this cursor will wait for a while for a tailable cursor to return more data

Описание

public MongoCursor MongoCursor::awaitData ([ bool $wait = true ] )

This method is to be used with tailable cursors. If we are at the end of the data, block for a while rather than returning no data. After a timeout period, we do return as normal.

Список параметров

wait

If the cursor should wait for more data to become available.

Возвращаемые значения

Returns this cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating.

Примеры

Пример #1 MongoCursor::awaitData() example

In this example we tail the "oplog" and instead of sleeping during every iteration, we set the MongoCursor::awaitData() option. MongoCursor::hasNext() will now block until there is more data available.

<?php
$m = new MongoClient( 'mongodb://localhost:13000', array( 'replSet' => 'seta' ) );
$c = $m->local->selectCollection( 'oplog.rs' );
$cursor = $c->find( array( 'ns' => 'demo.article', 'op' => 'i' ) );
$cursor->tailable( true );
$cursor->awaitData( true );

while (true) {
    if (!$cursor->hasNext()) {
        // we've read all the results, exit
        if ($cursor->dead()) {
            break;
        }
    } else {
        var_dump( $cursor->getNext() );
    }
}
?>

Смотрите также

MongoDB core docs on » tailable cursors.

  • MongoCursor::tailable() - Sets whether this cursor will be left open after fetching the last results


Limits the number of elements returned in one batch.

  • « MongoCursor::awaitData
  • MongoCursor::__construct »
  • PHP Manual
  • MongoCursor
  • Limits the number of elements returned in one batch.

MongoCursor::batchSize

(PECL mongo >=1.0.11)

MongoCursor::batchSize — Limits the number of elements returned in one batch.

Описание

public MongoCursor MongoCursor::batchSize ( int $batchSize )

A cursor typically fetches a batch of result objects and store them locally. This method sets the batchSize value to configure the amount of documents retrieved from the server in one round trip. However, it will never return more documents than fit in the max batch size limit (usually 4MB).

Список параметров

batchSize

The number of results to return per batch. Each batch requires a round-trip to the server.

If batchSize is 2 or more, it represents the size of each batch of objects retrieved. It can be adjusted to optimize performance and limit data transfer.

If batchSize is 1 or negative, it will limit of number returned documents to the absolute value of batchSize, and the cursor will be closed. For example if batchSize is -10, then the server will return a maximum of 10 documents and as many as can fit in 4MB, then close the cursor.

Внимание

A batchSize of 1 is special, and means the same as -1, i.e. a value of 1 makes the cursor only capable of returning one document.

Note that this feature is different from MongoCursor::limit() in that documents must fit within a maximum size, and it removes the need to send a request to close the cursor server-side. The batch size can be changed even after a cursor is iterated, in which case the setting will apply on the next batch retrieval.

This cannot override MongoDB's limit on the amount of data it will return to the client (i.e., if you set batch size to 1,000,000,000, MongoDB will still only return 4-16MB of results per batch).

To ensure consistent behavior, the rules of MongoCursor::batchSize() and MongoCursor::limit() behave a little complex but work "as expected". The rules are: hard limits override soft limits with preference given to MongoCursor::limit() over MongoCursor::batchSize(). After that, whichever is set and lower than the other will take precedence. See below. section for some examples.

Возвращаемые значения

Returns this cursor.

Примеры

Пример #1 MongoCursor::batchSize() and combinations with MongoCursor::limit()

<?php

// one batch, at most 10 items. The -10 makes the server to return 10 items,
// and then remove the cursor.
$cursor->limit(20)->batchSize(-10);

// first batch: at most 10 items
$cursor->limit(10);

// first batch: at most 10 items
$cursor->limit(10)->batchSize(20);

// results are fetched in batches of 10 each, with a maximum of 20 items
// returned (that means two batches of 10).
$cursor->limit(20)->batchSize(10);

// results are fetched in batches of 7 each, with a maximum of 30 items
// returned (that means that the driver requests 4 batches of 7, and one batch
// of 2).
$cursor->limit(30)->batchSize(7)
?>

Смотрите также

MongoDB core docs on » batchSize.

  • MongoCursor::limit() - Limits the number of results returned
  • MongoCursorInterface::batchSize() - Limits the number of elements returned in one batch.

Список изменений

Версия | Описание
1.4.5 | Before 1.4.5, this method would throw an MongoCursorException if the cursor had already started iterating.


Create a new cursor

  • « MongoCursor::batchSize
  • MongoCursor::count »
  • PHP Manual
  • MongoCursor
  • Create a new cursor

MongoCursor::__construct

(PECL mongo >=0.9.0)

MongoCursor::__construct — Create a new cursor

Описание

public MongoCursor::__construct ( MongoClient $connection , string $ns [, array $query = array() [, array $fields = array() ]] )

Список параметров

connection

Database connection.

ns

Full name of database and collection.

query

Database query.

fields

Fields to return.

Возвращаемые значения

Returns the new cursor.


Counts the number of results for this query

  • « MongoCursor::__construct
  • MongoCursor::current »
  • PHP Manual
  • MongoCursor
  • Counts the number of results for this query

MongoCursor::count

(PECL mongo >=0.9.2)

MongoCursor::count — Counts the number of results for this query

Описание

public int MongoCursor::count ([ bool $foundOnly = FALSE ] )

This method does not affect the state of the cursor: if you haven't queried yet, you can still apply limits, skips, etc. If you have started iterating through results, it will not move the current position of the cursor. If you have exhasted the cursor, it will not reset it.

Список параметров

foundOnly

Send cursor limit and skip information to the count function, if applicable.

Возвращаемые значения

The number of documents returned by this cursor's query.

Примеры

Пример #1 MongoCursor::count() example

<?php

$collection->insert(array('x'=>1));
$collection->insert(array('x'=>2));
$collection->insert(array('x'=>3));

$cursor = $collection->find();

var_dump($cursor->count());
var_dump($cursor->count(true));

$cursor->limit(2);

var_dump($cursor->count());
var_dump($cursor->count(true));

?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(3)
int(3)
int(2)

Ошибки

Throws MongoConnectionException if it cannot reach the database.


Returns the current element

  • « MongoCursor::count
  • MongoCursor::dead »
  • PHP Manual
  • MongoCursor
  • Returns the current element

MongoCursor::current

(PECL mongo >=0.9.0)

MongoCursor::current — Returns the current element

Описание

public array MongoCursor::current ( void )

This returns NULL until MongoCursor::next() is called.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current result document as an associative array. NULL will be returned if there is no result.

Смотрите также

  • Iterator::current() - Возвращает текущий элемент


Checks if there are results that have not yet been sent from the database

  • « MongoCursor::current
  • MongoCursor::doQuery »
  • PHP Manual
  • MongoCursor
  • Checks if there are results that have not yet been sent from the database

MongoCursor::dead

(PECL mongo >=0.9.6)

MongoCursor::dead — Checks if there are results that have not yet been sent from the database

Описание

public bool MongoCursor::dead ( void )

The database sends responses in batches of documents, up to 4MB of documents per response. This method checks if the database has more batches or if the result set has been exhausted.

A cursor being "dead" does not mean that MongoCursor::hasNext() will return FALSE, it only means that the database is done sending results to the client. The client should continue iterating through results until MongoCursor::hasNext() is FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if there are more results that have not yet been sent to the client, and FALSE otherwise.

Смотрите также

  • MongoCursorInterface::dead() - Checks if there are results that have not yet been sent from the database


Execute the query.

  • « MongoCursor::dead
  • MongoCursor::explain »
  • PHP Manual
  • MongoCursor
  • Execute the query.

MongoCursor::doQuery

(PECL mongo >=0.9.0 <1.6.0)

MongoCursor::doQuery — Execute the query.

Описание

protected void MongoCursor::doQuery ( void )
Внимание

Please do not use me.

This function actually queries the database. All queries and commands go through this function. Thus, this function can be overridden to provide custom query handling.

This handles serializing your query, sending it to the database, receiving a response, and deserializing it. Thus, if you are planning to override this, your code should probably call out to the original to use the existing functionality (see the example below).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

NULL.

Ошибки

Throws MongoConnectionException if it cannot reach the database.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Примеры

Пример #1 MongoCursor::doQuery() example

You could override this function to attempt a query on a secondary and, if that fails, try it again on the primary.

<?php

class MyCursor extends MongoCursor {

    protected function doQuery() {

        $this->slaveOkay();

        try {
            MongoCursor::doQuery();
        }
        catch(MongoCursorException $e) {
            $this->slaveOkay(false);
            MongoCursor::doQuery();
        }
    }
}

?>


Return an explanation of the query, often useful for optimization and debugging

  • « MongoCursor::doQuery
  • MongoCursor::fields »
  • PHP Manual
  • MongoCursor
  • Return an explanation of the query, often useful for optimization and debugging

MongoCursor::explain

(PECL mongo >=0.9.2)

MongoCursor::explain — Return an explanation of the query, often useful for optimization and debugging

Описание

public array MongoCursor::explain ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an explanation of the query.

Примеры

Пример #1 MongoCursor::explain() example

<?php

$cursor = $collection->find(array("x"=>1), array("y"));
$cursor->sort(array("z" => 1))->limit(4)->skip(5);

var_dump($cursor->explain());

?>

Результатом выполнения данного примера будет что-то подобное:

array(8) {
  ["cursor"]=>
  string(15) "BtreeCursor x_1"
  ["startKey"]=>
  array(1) {
    ["x"]=>
    int(1)
  }
  ["endKey"]=>
  array(1) {
    ["x"]=>
    int(1)
  }
  ["nscanned"]=>
  float(4)
  ["n"]=>
  int(4)
  ["scanAndOrder"]=>
  int(1)
  ["millis"]=>
  int(3)
  ["allPlans"]=>
  array(2) {
    [0]=>
    array(3) {
      ["cursor"]=>
      string(15) "BtreeCursor x_1"
      ["startKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
      ["endKey"]=>
      array(1) {
        ["x"]=>
        int(1)
      }
    }
    [1]=>
    array(3) {
      ["cursor"]=>
      string(11) "BasicCursor"
      ["startKey"]=>
      array(0) {
      }
      ["endKey"]=>
      array(0) {
      }
    }
  }
}

Ошибки

Throws MongoConnectionException if it cannot reach the database.

Смотрите также

MongoDB core docs on » explain.


Sets the fields for a query

  • « MongoCursor::explain
  • MongoCursor::getNext »
  • PHP Manual
  • MongoCursor
  • Sets the fields for a query

MongoCursor::fields

(PECL mongo >=1.0.6)

MongoCursor::fields — Sets the fields for a query

Описание

public MongoCursor MongoCursor::fields ( array $f )

Fields are specified by "fieldname" : bool. TRUE indicates that a field should be returned, FALSE indicates that it should not be returned. You can also use 1 and 0 instead of TRUE and FALSE.

Thus, to return only the "summary" field, one could say:

<?php

$cursor->fields(array("summary" => true));

?>

To return all fields except the "hidden" field:

<?php

$cursor->fields(array("hidden" => false));

?>

Список параметров

f

Fields to return (or not return).

Возвращаемые значения

Returns this cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating or a scalar argument is given.


Advances the cursor to the next result, and returns that result

  • « MongoCursor::fields
  • MongoCursor::getReadPreference »
  • PHP Manual
  • MongoCursor
  • Advances the cursor to the next result, and returns that result

MongoCursor::getNext

(PECL mongo >=0.9.0)

MongoCursor::getNext — Advances the cursor to the next result, and returns that result

Описание

public array MongoCursor::getNext ( void )

Замечание:

MongoCursor::getNext() is an alias of MongoCursor::next().


Get the read preference for this query

  • « MongoCursor::getNext
  • MongoCursor::hasNext »
  • PHP Manual
  • MongoCursor
  • Get the read preference for this query

MongoCursor::getReadPreference

(PECL mongo >=1.3.3)

MongoCursor::getReadPreference — Get the read preference for this query

Описание

public array MongoCursor::getReadPreference ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Примеры

Пример #1 MongoCursor::getReadPreference() return value example

<?php

$m = new MongoClient();
$cursor = $m->test->users->find();
$cursor->setReadPreference(MongoClient::RP_SECONDARY, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
    array(),
));
var_dump($cursor->getReadPreference());
?>

Результат выполнения данного примера:

array(2) {
  ["type"]=>
  string(9) "secondary"
  ["tagsets"]=>
  array(3) {
    [0]=>
    array(2) {
      ["dc"]=>
      string(4) "east"
      ["use"]=>
      string(9) "reporting"
    }
    [1]=>
    array(1) {
      ["dc"]=>
      string(7) "west"
    }
    [2]=>
    array(0) {
    }
  }
}

Смотрите также

  • The read preferences documentation.
  • MongoCursor::setReadPreference() - Set the read preference for this query
  • MongoCursorInterface::getReadPreference() - Get the read preference for this query


Checks if there are any more elements in this cursor

  • « MongoCursor::getReadPreference
  • MongoCursor::hint »
  • PHP Manual
  • MongoCursor
  • Checks if there are any more elements in this cursor

MongoCursor::hasNext

(PECL mongo >=0.9.0)

MongoCursor::hasNext — Checks if there are any more elements in this cursor

Описание

public bool MongoCursor::hasNext ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns if there is another element.

Ошибки

Throws MongoConnectionException if it cannot reach the database and MongoCursorTimeoutException if the timeout is exceeded.


Gives the database a hint about the query

  • « MongoCursor::hasNext
  • MongoCursor::immortal »
  • PHP Manual
  • MongoCursor
  • Gives the database a hint about the query

MongoCursor::hint

(PECL mongo >=0.9.0)

MongoCursor::hint — Gives the database a hint about the query

Описание

public MongoCursor MongoCursor::hint ( mixed $index )

Список параметров

index

Index to use for the query. If a string is passed, it should correspond to an index name. If an array or object is passed, it should correspond to the specification used to create the index (i.e. the first argument to MongoCollection::ensureIndex()).

Возвращаемые значения

Returns this cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating.

Список изменений

Версия | Описание
1.4.0 | The index argument now supports index names as string values. In versions before 1.4.0, only array or object values were accepted.


Sets whether this cursor will timeout

  • « MongoCursor::hint
  • MongoCursor::info »
  • PHP Manual
  • MongoCursor
  • Sets whether this cursor will timeout

MongoCursor::immortal

(PECL mongo >=1.0.1)

MongoCursor::immortal — Sets whether this cursor will timeout

Описание

public MongoCursor MongoCursor::immortal ([ bool $liveForever = true ] )

After remaining idle on the server for some amount of time, cursors, by default, "die." This is generally the behavior one wants. The database cleans up a cursor once all of its results have been sent to the client, but if the client doesn't request all of the results, the cursor will languish there, taking up resources. Thus, after a few minutes, the cursor "times out" and the database assumes the client has gotten everything it needs and cleans up its the cursor's resources.

If, for some reason, you need a cursor to hang around for a long time, you can prevent the database from cleaning it up by using this method. However, if you make a cursor immortal, you need to iterate through all of its results (or at least until MongoCursor::dead() returns TRUE) or the cursor will hang around the database forever, taking up resources.

Список параметров

liveForever

If the cursor should be immortal.

Возвращаемые значения

Returns this cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating.


Gets information about the cursor's creation and iteration

  • « MongoCursor::immortal
  • MongoCursor::key »
  • PHP Manual
  • MongoCursor
  • Gets information about the cursor's creation and iteration

MongoCursor::info

(PECL mongo >=1.0.5)

MongoCursor::info — Gets information about the cursor's creation and iteration

Описание

public array MongoCursor::info ( void )

This can be called before or after the cursor has started iterating.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the namespace, batch size, limit, skip, flags, query, and projected fields for this cursor. If the cursor has started iterating, additional information about iteration and the connection will be included.

Список изменений

Версия | Описание
1.1.0 | Added a number of other fields, including id (the cursor id), at (the driver's counter of which document is current), numReturned (the number returned by the server in the current batch), and server (which server the query was sent to—useful in conjunction with Read Preferences.
1.0.10 | Added started_iterating field, a boolean indicating if cursor is pre- or post-query.

Примеры

Пример #1 MongoCursor::info() example

<?php
$m = new MongoClient();

$cursor = $m->test->foo->find(array("x" => 4), array("y" => 0));

echo "Before iteration started:\n";
var_dump($cursor->info());

echo "\nAfter iteration started:\n";
$cursor->rewind();
var_dump($cursor->info());

?>

Результатом выполнения данного примера будет что-то подобное:

Before iteration started:
array(8) {
  ["ns"]=>
  string(8) "test.foo"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["fields"]=>
  array(1) {
    ["y"]=>
    int(0)
  }
  ["started_iterating"]=>
  bool(false)
}

After iteration started:
array(15) {
  ["ns"]=>
  string(8) "test.foo"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["fields"]=>
  array(1) {
    ["y"]=>
    int(0)
  }
  ["started_iterating"]=>
  bool(true)
  ["id"]=>
  int(0)
  ["at"]=>
  int(0)
  ["numReturned"]=>
  int(1)
  ["server"]=>
  string(25) "localhost:27017;-;.;26450"
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["connection_type_desc"]=>
  string(10) "STANDALONE"
}

Смотрите также

  • MongoCursorInterface::info() - Gets information about the cursor's creation and iteration


Returns the current result's _id, or its index within the result set

  • « MongoCursor::info
  • MongoCursor::limit »
  • PHP Manual
  • MongoCursor
  • Returns the current result's _id, or its index within the result set

MongoCursor::key

(PECL mongo >=0.9.0)

MongoCursor::key — Returns the current result's _id, or its index within the result set

Описание

public string|int MongoCursor::key ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current result's _id as a string. If the result has no _id, its numeric index within the result set will be returned as an integer.

Смотрите также

  • Iterator::key() - Возвращает ключ текущего элемента


Limits the number of results returned

  • « MongoCursor::key
  • MongoCursor::maxTimeMS »
  • PHP Manual
  • MongoCursor
  • Limits the number of results returned

MongoCursor::limit

(PECL mongo >=0.9.0)

MongoCursor::limit — Limits the number of results returned

Описание

public MongoCursor MongoCursor::limit ( int $num )

Список параметров

num

The number of results to return.

Возвращаемые значения

Returns this cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating.

Смотрите также

  • MongoDB core docs on » limit.
  • MongoCursor::batchSize() - Limits the number of elements returned in one batch.
  • MongoCursor::skip() - Skips a number of results


Sets a server-side timeout for this query

  • « MongoCursor::limit
  • MongoCursor::next »
  • PHP Manual
  • MongoCursor
  • Sets a server-side timeout for this query

MongoCursor::maxTimeMS

(PECL mongo >=1.5.0)

MongoCursor::maxTimeMS — Sets a server-side timeout for this query

Описание

public MongoCursor MongoCursor::maxTimeMS ( int $ms )

Specifies a cumulative time limit in milliseconds to be allowed by the server for processing operations on the cursor.

Список параметров

ms

Specifies a cumulative time limit in milliseconds to be allowed by the server for processing operations on the cursor.

Возвращаемые значения

This cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating.

Causes methods that fetch results to throw a MongoExecutionTimeoutException if the query takes longer than the specified number of milliseconds in processing time.

Примеры

Пример #1 MongoCursor::maxTimeMS() example

In the following example, the server will abort the query if the cursor requires more than two seconds in processing time to return its results.

<?php

$cursor = $collection->find();
$cursor->maxTimeMS(2000);

try {
    $results = iterator_to_array($cursor);
} catch (MongoExecutionTimeoutException $e) {
    echo "query took too long!";
}

?>

Примечания

Внимание

Unlike MongoCursor::timeout(), which specifies a client-side timeout, MongoCursor::maxTimeMS() can be used to cause the MongoDB server to abort long-running queries. This timeout is cumulative for the lifetime of the cursor (i.e. each batch will contribute to this time limit). The timeout only considers processing time; idle time is not considered.


Advances the cursor to the next result, and returns that result

  • « MongoCursor::maxTimeMS
  • MongoCursor::partial »
  • PHP Manual
  • MongoCursor
  • Advances the cursor to the next result, and returns that result

MongoCursor::next

(PECL mongo >=0.9.0)

MongoCursor::next — Advances the cursor to the next result, and returns that result

Описание

public array MongoCursor::next ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the next document.

Ошибки

Throws MongoConnectionException if it cannot reach the database and MongoCursorTimeoutException if the timeout is exceeded.

Смотрите также

  • Iterator::next() - Переходит к следующему элементу


If this query should fetch partial results from mongos if a shard is down

  • « MongoCursor::next
  • MongoCursor::reset »
  • PHP Manual
  • MongoCursor
  • If this query should fetch partial results from mongos if a shard is down

MongoCursor::partial

(PECL mongo >=1.2.0)

MongoCursor::partial — If this query should fetch partial results from mongos if a shard is down

Описание

public MongoCursor MongoCursor::partial ([ bool $okay = true ] )

This option allows mongos to send partial query results if a shard is unreachable. This is only applicable when running a sharded MongoDB cluster and connecting to a mongos.

If a shard goes down and a query needs to be sent to that shard, mongos will return the results (if any) from shards it already contacted, then an error message that it could not reach the shard (a MongoCursorException in PHP). If you would like to get whatever results mongos can provide and no exception, you can use this method. Note that this means that you won't have an indication that a shard is down in your query response.

This has no effect on the query if all shards are reachable. This flag was implemented in MongoDB version 1.7.5, so will only work with that version and higher.

Список параметров

okay

If receiving partial results is okay.

Возвращаемые значения

Returns this cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating.


Clears the cursor

  • « MongoCursor::partial
  • MongoCursor::rewind »
  • PHP Manual
  • MongoCursor
  • Clears the cursor

MongoCursor::reset

(PECL mongo >=0.9.0)

MongoCursor::reset — Clears the cursor

Описание

public void MongoCursor::reset ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

NULL.


Returns the cursor to the beginning of the result set

  • « MongoCursor::reset
  • MongoCursor::setFlag »
  • PHP Manual
  • MongoCursor
  • Returns the cursor to the beginning of the result set

MongoCursor::rewind

(PECL mongo >=0.9.0)

MongoCursor::rewind — Returns the cursor to the beginning of the result set

Описание

public void MongoCursor::rewind ( void )

This is identical to the function:

<?php

public function rewind() {
    $this->reset();
    $this->next();
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

NULL.

Ошибки

Throws MongoConnectionException if it cannot reach the database and MongoCursorTimeoutException if the timeout is exceeded.

Смотрите также

  • Iterator::rewind() - Возвращает итератор на первый элемент


Sets arbitrary flags in case there is no method available the specific flag

  • « MongoCursor::rewind
  • MongoCursor::setReadPreference »
  • PHP Manual
  • MongoCursor
  • Sets arbitrary flags in case there is no method available the specific flag

MongoCursor::setFlag

(PECL mongo >=1.2.11)

MongoCursor::setFlag — Sets arbitrary flags in case there is no method available the specific flag

Описание

public MongoCursor MongoCursor::setFlag ( int $flag [, bool $set = true ] )

The MongoCursor class has several methods for setting flags on the query object. This method is available in case the MongoDB wire protocol has acquired a new flag, and the driver has not been updated with a method for this new flag. In all other cases, the method should be used. See the "See also" section for available methods.

Список параметров

flag

Which flag to set. You can not set flag 6 (EXHAUST) as the driver does not know how to handle them. You will get a warning if you try to use this flag. For available flags, please refer to the wire protocol » documentation.

set

Whether the flag should be set (TRUE) or unset (FALSE).

Возвращаемые значения

Returns this cursor.

Ошибки

Shows a warning when an unsupport flag is attempted to be set.

Список изменений

Версия | Описание
1.4.0 | Support for flag 3 (OPLOG_REPLAY) is added. Versions before 1.4.0 would throw a warning saying that the flag is unsupported.

Примеры

Пример #1 MongoCursor::setFlag() example

<?php
$m = new MongoClient( 'mongodb://localhost:13000', array( 'replSet' => 'seta' ) );
$c = $m->local->selectCollection( 'oplog.rs' );
$cursor = $c->find( array( 'ns' => 'demo.article', 'op' => 'i' ) );
$cursor->setFlag( 1, true ); // sets the tailable flag
$cursor->setFlag( 5, true ); // sets the await data flag
?>

Смотрите также

  • MongoCursor::tailable() - Sets whether this cursor will be left open after fetching the last results
  • MongoCursor::immortal() - Sets whether this cursor will timeout
  • MongoCursor::awaitData() - Sets whether this cursor will wait for a while for a tailable cursor to return more data
  • MongoCursor::partial() - If this query should fetch partial results from mongos if a shard is down
  • MongoDB core docs on» wire protocol query flags


Set the read preference for this query

  • « MongoCursor::setFlag
  • MongoCursor::skip »
  • PHP Manual
  • MongoCursor
  • Set the read preference for this query

MongoCursor::setReadPreference

(PECL mongo >=1.3.3)

MongoCursor::setReadPreference — Set the read preference for this query

Описание

public MongoCursor MongoCursor::setReadPreference ( string $read_preference [, array $tags ] )

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Returns this cursor.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Примеры

Пример #1 MongoCursor::setReadPreference() tag set array syntax example

<?php

$m = new MongoClient();
$cursor = $m->test->users->find();

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$cursor->setReadPreference(MongoClient::RP_NEAREST, array(
    array('dc' => 'east', 'use' => 'reporting'),
    array('dc' => 'west'),
));
?>

Смотрите также

  • The read preferences documentation.
  • MongoCursor::getReadPreference() - Get the read preference for this query
  • MongoCursorInterface::setReadPreference() - Set the read preference for this query


Skips a number of results

  • « MongoCursor::setReadPreference
  • MongoCursor::slaveOkay »
  • PHP Manual
  • MongoCursor
  • Skips a number of results

MongoCursor::skip

(PECL mongo >=0.9.0)

MongoCursor::skip — Skips a number of results

Описание

public MongoCursor MongoCursor::skip ( int $num )

Список параметров

num

The number of results to skip.

Возвращаемые значения

Returns this cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating.

Смотрите также

  • MongoCursor::limit() - Limits the number of results returned


Sets whether this query can be done on a secondary [deprecated]

  • « MongoCursor::skip
  • MongoCursor::snapshot »
  • PHP Manual
  • MongoCursor
  • Sets whether this query can be done on a secondary [deprecated]

MongoCursor::slaveOkay

(PECL mongo >=0.9.4)

MongoCursor::slaveOkay — Sets whether this query can be done on a secondary [deprecated]

Описание

public MongoCursor MongoCursor::slaveOkay ([ bool $okay = true ] )
Внимание

This method is deprecated since version 1.5.0. Instead, please use MongoCursor::setReadPreference() and Read Preferences.

Calling this will make the driver route reads to secondaries if:

  • You are using a replica set, and
  • You created a MongoClient instance using the option "replicaSet" => "setName", and
  • There is a healthy secondary that can be reached by the driver.
You can check which server was used for this query by calling MongoCursor::info() after running the query. It's server field will show which server the query was sent to.

Note that you should use this function even if you do not use the automatic routing to secondaries. If you connect directly to a secondary in a replica set, you still need to call this function, which basically tells the database that you are aware that you might be getting older data and you're okay with that. If you do not call this, you'll get "not master" errors when you try to query.

This method will override the static class variable
MongoCursor::$slaveOkay.  It will also override
Mongo::setSlaveOkay(),
MongoDB::setSlaveOkay() and
MongoCollection::setSlaveOkay().

Список параметров

okay

If it is okay to query the secondary.

Возвращаемые значения

Returns this cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating.

Примеры

Пример #1 MongoCursor::slaveOkay() example

<?php

MongoCursor::$slaveOkay = false;

// cannot query secondary
$cursor = $collection->find();

// can query secondary
$cursor = $collection->find()->slaveOkay();

MongoCursor::$slaveOkay = true;

// can query secondary
$cursor = $collection->find();

// cannot query secondary
$cursor = $collection->find()->slaveOkay(false);

?>

Смотрите также

  • Read Preferences
  • MongoCursor::setReadPreference() - Set the read preference for this query
  • MongoCursor::getReadPreference() - Get the read preference for this query

Список изменений

Версия | Описание
1.5.0 | This method has been deprecated in favour of MongoCursor::setReadPreference() and Read Preferences.


Use snapshot mode for the query

  • « MongoCursor::slaveOkay
  • MongoCursor::sort »
  • PHP Manual
  • MongoCursor
  • Use snapshot mode for the query

MongoCursor::snapshot

(PECL mongo >=0.9.4)

MongoCursor::snapshot — Use snapshot mode for the query

Описание

public MongoCursor MongoCursor::snapshot ( void )

Use snapshot mode for the query. Snapshot mode ensures that a document will not be returned more than once because an intervening write operation results in a move of the document. Documents inserted or deleted during the lifetime of the cursor may or may not be returned, irrespective of snapshot mode.

Queries with short responses (less than 1MB) are always effectively snapshotted.

Snapshot mode may not be used with sorting, explicit hints, or queries on sharded collections.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns this cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating.

Смотрите также

MongoDB core docs on » $snapshot operator.


Sorts the results by given fields

  • « MongoCursor::snapshot
  • MongoCursor::tailable »
  • PHP Manual
  • MongoCursor
  • Sorts the results by given fields

MongoCursor::sort

(PECL mongo >=0.9.0)

MongoCursor::sort — Sorts the results by given fields

Описание

public MongoCursor MongoCursor::sort ( array $fields )

Список параметров

fields

An array of fields by which to sort. Each element in the array has as key the field name, and as value either 1 for ascending sort, or -1 for descending sort.

Each result is first sorted on the first field in the array, then (if it exists) on the second field in the array, etc. This means that the order of the fields in the fields array is important. See also the examples section.

Возвращаемые значения

Returns the same cursor that this method was called on.

Ошибки

Throws MongoCursorException if this cursor has started iterating.

Примеры

Пример #1 MongoCursor::sort() example

<?php
// Sort on field x, ascending
$cursor->sort(array('x' => 1));

// The order in the associative array is important. For instance, these two
// examples will yield different results:

// Sort on date ascending and age descending
$cursor->sort(array('date' => 1, 'age' => -1));

// Sort on age descending and date ascending
$cursor->sort(array('age' => -1, 'date' => 1));
?>


Sets whether this cursor will be left open after fetching the last results

  • « MongoCursor::sort
  • MongoCursor::timeout »
  • PHP Manual
  • MongoCursor
  • Sets whether this cursor will be left open after fetching the last results

MongoCursor::tailable

(PECL mongo >=0.9.4)

MongoCursor::tailable — Sets whether this cursor will be left open after fetching the last results

Описание

public MongoCursor MongoCursor::tailable ([ bool $tail = true ] )

Mongo has a feature known as tailable cursors which are similar to the Unix "tail -f" command.

Tailable means cursor is not closed when the last data is retrieved. Rather, the cursor marks the final object's position. you can resume using the cursor later, from where it was located, if more data were received.

Like any "latent cursor", the cursor may become invalid at some point -- for example if that final object it references were deleted. Thus, you should be prepared to requery if the cursor is MongoCursor::dead().

Список параметров

tail

If the cursor should be tailable.

Возвращаемые значения

Returns this cursor.

Ошибки

Throws MongoCursorException if this cursor has started iterating.

Примеры

Пример #1 MongoCursor::tailable() example

<?php

$cursor = $collection->find()->tailable();

$results = array();

while (1) {
    if (!$cursor->hasNext()) {
        // we've read all the results, exit
        if ($cursor->dead()) {
            break;
        }
        // read all results so far, wait for more
        sleep(10);
    }
    else {
        $results[] = $cursor->getNext();
    }
}

?>

Смотрите также

MongoDB core docs on » tailable cursors.

  • MongoCursor::awaitData() - Sets whether this cursor will wait for a while for a tailable cursor to return more data


Sets a client-side timeout for this query

  • « MongoCursor::tailable
  • MongoCursor::valid »
  • PHP Manual
  • MongoCursor
  • Sets a client-side timeout for this query

MongoCursor::timeout

(PECL mongo >=1.0.3)

MongoCursor::timeout — Sets a client-side timeout for this query

Описание

public MongoCursor MongoCursor::timeout ( int $ms )

A timeout can be set at any time and will affect subsequent queries on the cursor, including fetching more results from the database.

Список параметров

ms

The number of milliseconds for the cursor to wait for a response. Use -1 to wait forever. By default, the cursor will wait 30000 milliseconds (30 seconds).

Возвращаемые значения

This cursor.

Ошибки

Causes methods that fetch results to throw a MongoCursorTimeoutException if the query takes longer than the specified number of milliseconds.

Примеры

Пример #1 MongoCursor::timeout() example

In the following example, the driver will wait forever for the initial database response, and then wait 100ms for subsequent responses.

<?php

$cursor = $collection->find();
$cursor->timeout(-1);

/* $cursor->hasNext() executes the query. An infinite timeout has been set, so
 * the driver will wait as long as necessary for a response.
 */
while ($cursor->hasNext()) {
    $cursor->timeout(100);

    /* A timeout has now been set, so if the cursor needs to get more results
     * from the database, it will only wait 100ms for a response.
     */
    try {
        print_r($cursor->getNext());
    } catch (MongoCursorTimeoutException $e) {
        echo "query took too long!";
    }
}

?>

Примечания

Внимание

This does not cause the MongoDB server to cancel long-running operations; it only instructs the driver to stop waiting for a response and throw a MongoCursorTimeoutException after a set time. If you need to specify a server-side timeout for a query, consider using MongoCursor::maxTimeMS().

Смотрите также

  • MongoCursorInterface::timeout() - Sets a client-side timeout for this query
  • The socketTimeoutMS option for MongoClient::__construct()


Checks if the cursor is reading a valid result.

  • « MongoCursor::timeout
  • MongoCursorInterface »
  • PHP Manual
  • MongoCursor
  • Checks if the cursor is reading a valid result.

MongoCursor::valid

(PECL mongo >=0.9.0)

MongoCursor::valid — Checks if the cursor is reading a valid result.

Описание

public bool MongoCursor::valid ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE if the current result is not null, and FALSE otherwise.

Смотрите также

  • Iterator::valid() - Проверка корректности позиции


The MongoCursorInterface interface

(PECL mongo >=1.5.0)

Введение

Interface for cursors, which can be used to iterate through results of a database query or command. This interface is implemented by the MongoCursor and MongoCommandCursor classes.

Замечание: Similar to Traversable, this interface cannot be implemented in PHP scripts.

Обзор классов

MongoCursorInterface extends Iterator {
/* Методы */
abstract public MongoCursorInterface batchSize ( int $batchSize )
abstract public bool dead ( void )
abstract public array getReadPreference ( void )
abstract public array info ( void )
abstract public MongoCursorInterface setReadPreference ( string $read_preference [, array $tags ] )
abstract public MongoCursorInterface timeout ( int $ms )
/* Наследуемые методы */
abstract public mixed Iterator::current ( void )
abstract public scalar Iterator::key ( void )
abstract public void Iterator::next ( void )
abstract public void Iterator::rewind ( void )
abstract public boolean Iterator::valid ( void )
}

Содержание

  • MongoCursorInterface::batchSize — Limits the number of elements returned in one batch.
  • MongoCursorInterface::dead — Checks if there are results that have not yet been sent from the database
  • MongoCursorInterface::getReadPreference — Get the read preference for this query
  • MongoCursorInterface::info — Gets information about the cursor's creation and iteration
  • MongoCursorInterface::setReadPreference — Set the read preference for this query
  • MongoCursorInterface::timeout — Sets a client-side timeout for this query


Limits the number of elements returned in one batch.

  • « MongoCursorInterface
  • MongoCursorInterface::dead »
  • PHP Manual
  • MongoCursorInterface
  • Limits the number of elements returned in one batch.

MongoCursorInterface::batchSize

(PECL mongo >=1.5.0)

MongoCursorInterface::batchSize — Limits the number of elements returned in one batch.

Описание

abstract public MongoCursorInterface MongoCursorInterface::batchSize ( int $batchSize )

A cursor typically fetches a batch of result objects and stores them locally. This method sets the batch size value to configure the amount of documents retrieved from the server in one round trip.

Список параметров

batchSize

The number of results to return per batch.

Возвращаемые значения

Returns this cursor.


Checks if there are results that have not yet been sent from the database

  • « MongoCursorInterface::batchSize
  • MongoCursorInterface::getReadPreference »
  • PHP Manual
  • MongoCursorInterface
  • Checks if there are results that have not yet been sent from the database

MongoCursorInterface::dead

(PECL mongo >=1.5.0)

MongoCursorInterface::dead — Checks if there are results that have not yet been sent from the database

Описание

abstract public bool MongoCursorInterface::dead ( void )

This method checks whether the cursor has been exhausted and the database has no more results to send to the client. A cursor being "dead" does not necessarily mean that there are no more results available for iteration.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if there are more results that have not yet been sent to the client, and FALSE otherwise.


Get the read preference for this query

  • « MongoCursorInterface::dead
  • MongoCursorInterface::info »
  • PHP Manual
  • MongoCursorInterface
  • Get the read preference for this query

MongoCursorInterface::getReadPreference

(PECL mongo >=1.6.0)

MongoCursorInterface::getReadPreference — Get the read preference for this query

Описание

abstract public array MongoCursorInterface::getReadPreference ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Смотрите также

  • The read preferences documentation.
  • MongoCursorInterface::setReadPreference() - Set the read preference for this query


Gets information about the cursor's creation and iteration

  • « MongoCursorInterface::getReadPreference
  • MongoCursorInterface::setReadPreference »
  • PHP Manual
  • MongoCursorInterface
  • Gets information about the cursor's creation and iteration

MongoCursorInterface::info

(PECL mongo >=1.5.0)

MongoCursorInterface::info — Gets information about the cursor's creation and iteration

Описание

abstract public array MongoCursorInterface::info ( void )

Returns information about the cursor's creation and iteration. This can be called before or after the cursor has started iterating.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the namespace, batch size, limit, skip, flags, query, and projected fields for this cursor. If the cursor has started iterating, additional information about iteration and the connection will be included.


Set the read preference for this query

  • « MongoCursorInterface::info
  • MongoCursorInterface::timeout »
  • PHP Manual
  • MongoCursorInterface
  • Set the read preference for this query

MongoCursorInterface::setReadPreference

(PECL mongo >=1.6.0)

MongoCursorInterface::setReadPreference — Set the read preference for this query

Описание

abstract public MongoCursorInterface MongoCursorInterface::setReadPreference ( string $read_preference [, array $tags ] )

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Returns this cursor.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Смотрите также

  • The read preferences documentation.
  • MongoCursorInterface::getReadPreference() - Get the read preference for this query


Sets a client-side timeout for this query

  • « MongoCursorInterface::setReadPreference
  • MongoCommandCursor »
  • PHP Manual
  • MongoCursorInterface
  • Sets a client-side timeout for this query

MongoCursorInterface::timeout

(PECL mongo >=1.5.0)

MongoCursorInterface::timeout — Sets a client-side timeout for this query

Описание

abstract public MongoCursorInterface MongoCursorInterface::timeout ( int $ms )

A timeout can be set at any time and will affect subsequent data retrieval associated with this cursor, including fetching more results from the database.

Список параметров

ms

The number of milliseconds for the cursor to wait for a response. Use -1 to wait forever. By default, the cursor will wait 30000 milliseconds (30 seconds).

Возвращаемые значения

Returns this cursor.

Ошибки

Causes methods that fetch results to throw a MongoCursorTimeoutException if the data fetch takes longer than the specified number of milliseconds.

Смотрите также

  • The socketTimeoutMS option for MongoClient::__construct()


The MongoCommandCursor class

(PECL mongo >=1.5.0)

Введение

A command cursor is similar to a MongoCursor except that you use it for iterating through the results of a database command instead of a normal query. Command cursors are useful for iterating over large result sets that might exceed the document size limit (currently 16MB) of a single MongoDB::command() response.

While you can create command cursors using MongoCommandCursor::__construct() or the MongoCommandCursor::createFromDocument() factory method, you will generally want to use command-specific helpers such as MongoCollection::aggregateCursor().

Note that the cursor does not "contain" the database command's results; it just manages iteration through them. Thus, if you print a cursor (f.e. with var_dump() or print_r()), you will see the cursor object but not the result documents.

Cursor Stages

A MongoCommandCursor has two "life stages": pre- and post- command. When a cursor is created, it has not yet contacted the database, so it is in its pre-command state. When the client first attempts to get a result (by calling MongoCommandCursor::rewind(), directly or indirectly), the cursor moves into the post-command state.

The command cursor's batch size and socket timeout may be configured in both the pre- and post- command states.

Пример #1 Adding options to MongoCommandCursor

<?php

$cursor = new MongoCommandCursor(...);

$cursor = $cursor->batchSize( 4 );

foreach ($cursor as $result) {
    var_dump($result);
}
?>

Обзор классов

MongoCommandCursor implements MongoCursorInterface , Iterator {
/* Методы */
public MongoCommandCursor batchSize ( int $batchSize )
public __construct ( MongoClient $connection , string $ns , array $command = array() )
public static MongoCommandCursor createFromDocument ( MongoClient $connection , string $hash , array $document )
public array current ( void )
public bool dead ( void )
public array getReadPreference ( void )
public array info ( void )
public int key ( void )
public void next ( void )
public array rewind ( void )
public MongoCommandCursor setReadPreference ( string $read_preference [, array $tags ] )
public MongoCommandCursor timeout ( int $ms )
public bool valid ( void )
}

Смотрите также

  • MongoDB::command()
  • MongoCollection::aggregateCursor()

Содержание

  • MongoCommandCursor::batchSize — Limits the number of elements returned in one batch.
  • MongoCommandCursor::__construct — Create a new command cursor
  • MongoCommandCursor::createFromDocument — Create a new command cursor from an existing command response document
  • MongoCommandCursor::current — Returns the current element
  • MongoCommandCursor::dead — Checks if there are results that have not yet been sent from the database
  • MongoCommandCursor::getReadPreference — Get the read preference for this command
  • MongoCommandCursor::info — Gets information about the cursor's creation and iteration
  • MongoCommandCursor::key — Returns the current result's index within the result set
  • MongoCommandCursor::next — Advances the cursor to the next result
  • MongoCommandCursor::rewind — Executes the command and resets the cursor to the start of the result set
  • MongoCommandCursor::setReadPreference — Set the read preference for this command
  • MongoCommandCursor::timeout — Sets a client-side timeout for this command
  • MongoCommandCursor::valid — Checks if the cursor is reading a valid result.


Limits the number of elements returned in one batch.

  • « MongoCommandCursor
  • MongoCommandCursor::__construct »
  • PHP Manual
  • MongoCommandCursor
  • Limits the number of elements returned in one batch.

MongoCommandCursor::batchSize

(PECL mongo >=1.5.0)

MongoCommandCursor::batchSize — Limits the number of elements returned in one batch.

Описание

public MongoCommandCursor MongoCommandCursor::batchSize ( int $batchSize )

A cursor typically fetches a batch of result objects and store them locally. This method sets the batchSize value to configure the amount of documents retrieved from the server in one round trip.

Список параметров

batchSize

The number of results to return per batch. Each batch requires a round-trip to the server.

This cannot override MongoDB's limit on the amount of data it will return to the client (i.e., if you set batch size to 1,000,000,000, MongoDB will still only return 4-16MB of results per batch).

Возвращаемые значения

Returns this cursor.

Примеры

Пример #1 MongoCommandCursor::batchSize()

<?php
$commandCursor->batchSize(20);
?>

Смотрите также

  • MongoCursorInterface::batchSize() - Limits the number of elements returned in one batch.


Create a new command cursor

  • « MongoCommandCursor::batchSize
  • MongoCommandCursor::createFromDocument »
  • PHP Manual
  • MongoCommandCursor
  • Create a new command cursor

MongoCommandCursor::__construct

(PECL mongo >=1.5.0)

MongoCommandCursor::__construct — Create a new command cursor

Описание

public MongoCommandCursor::__construct ( MongoClient $connection , string $ns , array $command = array() )

Generally, you should not have to construct a MongoCommandCursor manually, as there are helper functions such as MongoCollection::aggregateCursor() and MongoCollection::parallelCollectionScan(); however, if the server introduces new commands that can return cursors, this constructor will be useful in the absence of specific helper methods. You may also consider using MongoCommandCursor::createFromDocument().

Список параметров

connection

Database connection.

ns

Full name of the database and collection (e.g. "test.foo")

command

Database command.

Возвращаемые значения

Returns the new cursor.

Примеры

Пример #1 MongoCommandCursor example

<?php
$m = new MongoClient;

// Define the aggregation pipeline
$pipeline = [
    [ '$group' => [
        '_id' => '$country_code',
        'timezones' => [ '$addToSet' => '$timezone' ]
    ] ],
    [ '$sort' => [ '_id' => 1 ] ],
];

// Construct a MongoCommandCursor object
$cursor = new MongoCommandCursor(
    $m, // MongoClient object
    'demo.cities', // namespace
    [
        'aggregate' => 'cities',
        'pipeline' => $pipeline,
        'cursor' => [ 'batchSize' => 0 ],
    ]
);

foreach($cursor as $result) {
   ...
}
?>

Смотрите также

  • MongoCommandCursor::createFromDocument() - Create a new command cursor from an existing command response document
  • MongoCollection::aggregateCursor() - Execute an aggregation pipeline command and retrieve results through a cursor
  • MongoCollection::parallelCollectionScan() - Returns an array of cursors to iterator over a full collection in parallel


Create a new command cursor from an existing command response document

  • « MongoCommandCursor::__construct
  • MongoCommandCursor::current »
  • PHP Manual
  • MongoCommandCursor
  • Create a new command cursor from an existing command response document

MongoCommandCursor::createFromDocument

(PECL mongo >=1.5.0)

MongoCommandCursor::createFromDocument — Create a new command cursor from an existing command response document

Описание

public static MongoCommandCursor MongoCommandCursor::createFromDocument ( MongoClient $connection , string $hash , array $document )

Use this method if you have a raw command result with cursor information in it. Note that cursors created with this method cannot be iterated multiple times, as they will lack the original command necessary for re-execution.

Список параметров

connection

Database connection.

hash

The connection hash, as obtained through the third by-reference argument to MongoDB::command().

document

Document with cursor information in it. This document needs to contain the id, ns and firstBatch fields. Such a document is obtained by calling the MongoDB::command() with appropriate arguments to return a cursor, and not just an inline result. See the example below.

Возвращаемые значения

Returns the new cursor.

Примеры

Пример #1 MongoCommandCursor::createFromDocument()

<?php
$m = new MongoClient;
$d = $m->demo;

// Define the aggregation pipeline
$pipeline = [
    [ '$group' => [
        '_id' => '$country_code',
        'timezones' => [ '$addToSet' => '$timezone' ]
    ] ],
    [ '$sort' => [ '_id' => 1 ] ],
];

// Execute the command. The "cursor" option instructs the server to return
// cursor information in the response instead of inline results.
$r = $d->command(
    [
        'aggregate' => 'cities',
        'pipeline' => $pipeline,
        'cursor' => [ 'batchSize' => 1 ],
    ],
    null,
    $hash
);

// Show result and hash
var_dump( $r, $hash );

// Construct the command cursor
$cursor = MongoCommandCursor::createFromDocument( $m, $hash, $r );
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["cursor"]=>
  array(3) {
    ["id"]=>
    object(MongoInt64)#5 (1) {
      ["value"]=>
      string(12) "392143983421"
    }
    ["ns"]=>
    string(11) "demo.cities"
    ["firstBatch"]=>
    array(1) {
      [0]=>
      array(2) {
        ["_id"]=>
        string(2) "AD"
        ["timezones"]=>
        array(1) {
          [0]=>
          string(14) "Europe/Andorra"
        }
      }
    }
  }
  ["ok"]=>
  float(1)
}
string(25) "localhost:27017;-;.;17617"

As you can see, the returned cursor information has the id, ns and firstBatch fields.

Смотрите также

  • MongoCommandCursor::__construct() - Create a new command cursor


Returns the current element

  • « MongoCommandCursor::createFromDocument
  • MongoCommandCursor::dead »
  • PHP Manual
  • MongoCommandCursor
  • Returns the current element

MongoCommandCursor::current

(PECL mongo >=1.5.0)

MongoCommandCursor::current — Returns the current element

Описание

public array MongoCommandCursor::current ( void )

This returns NULL until MongoCommandCursor::rewind() is called.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current result document as an associative array. NULL will be returned if there is no result.

Смотрите также

  • Iterator::current() - Возвращает текущий элемент


Checks if there are results that have not yet been sent from the database

  • « MongoCommandCursor::current
  • MongoCommandCursor::getReadPreference »
  • PHP Manual
  • MongoCommandCursor
  • Checks if there are results that have not yet been sent from the database

MongoCommandCursor::dead

(PECL mongo >=1.5.0)

MongoCommandCursor::dead — Checks if there are results that have not yet been sent from the database

Описание

public bool MongoCommandCursor::dead ( void )

This method checks whether the MongoCommandCursor cursor has been exhausted and the database has no more results to send to the client. A cursor being "dead" does not necessarily mean that there are no more results available for iteration.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if there are more results that have not yet been sent to the client, and FALSE otherwise.

Смотрите также

  • MongoCursorInterface::dead() - Checks if there are results that have not yet been sent from the database


Get the read preference for this command

  • « MongoCommandCursor::dead
  • MongoCommandCursor::info »
  • PHP Manual
  • MongoCommandCursor
  • Get the read preference for this command

MongoCommandCursor::getReadPreference

(PECL mongo >=1.6.0)

MongoCommandCursor::getReadPreference — Get the read preference for this command

Описание

public array MongoCommandCursor::getReadPreference ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данная функция возвращает массив, описывающий режимы предпочтения чтения. Массив содержит следующие значения: type для строкового значения режима предпочтения чтения (соответствующий константам MongoClient) и tagsets, содержащее список всех критерий наборов тегов. Если наборы тегов не были указаны, то tagsets в массиве не будет.

Примеры

Пример #1 MongoCommandCursor::getReadPreference() return value example

<?php

$m = new MongoClient('mongodb://rs1.example.com:27017', array('replicaSet' => 'myReplSetName'));
$collection = $m->selectCollection('test', 'people');

// If a MongoCommandCursor is constructed directly, it will inherit the read
// preference of the MongoClient instance passed to its constructor; however,
// MongoCollection::aggregateCursor() will have the MongoCommandCursor inherit
// the collection's read preference.
$collection->setReadPreference(MongoClient::RP_SECONDARY);

$cursor = $collection->aggregateCursor( [
    [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
    [ '$sort' => [ 'points' => -1 ] ],
] );

var_dump($cursor->getReadPreference());

?>

Результат выполнения данного примера:

array(1) {
  ["type"]=>
  string(9) "secondary"
}

Смотрите также

  • The read preferences documentation.
  • MongoCommandCursor::setReadPreference() - Set the read preference for this command
  • MongoCursorInterface::getReadPreference() - Get the read preference for this query


Gets information about the cursor's creation and iteration

  • « MongoCommandCursor::getReadPreference
  • MongoCommandCursor::key »
  • PHP Manual
  • MongoCommandCursor
  • Gets information about the cursor's creation and iteration

MongoCommandCursor::info

(PECL mongo >=1.5.0)

MongoCommandCursor::info — Gets information about the cursor's creation and iteration

Описание

public array MongoCommandCursor::info ( void )

This can be called before or after the cursor has started iterating.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the namespace, batch size, limit, skip, flags, query, and projected fields for this cursor. If the cursor has started iterating, additional information about iteration and the connection will be included.

Примеры

Пример #1 MongoCommandCursor::info() example

<?php
$m = new MongoClient();

$cursor = new MongoCommandCursor(
    $m, // MongoClient object
    'demo.cities', // namespace
    [
        'aggregate' => 'cities',
        'pipeline' => [ [ '$match' => [ '_id' => [ '$exists' => true ] ] ] ],
        'cursor' => [ 'batchSize' => 1 ],
    ]
);

echo "Before iteration started:\n";
var_dump($cursor->info());

echo "\nAfter iteration started:\n";
$cursor->rewind();
var_dump($cursor->info());

?>

Результатом выполнения данного примера будет что-то подобное:

Before iteration started:
array(8) {
  ["ns"]=>
  string(11) "demo.cities"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(3) {
    ["aggregate"]=>
    string(6) "cities"
    ["pipeline"]=>
    array(1) {
      [0]=>
      array(1) {
        ["$match"]=>
        array(1) {
          ["_id"]=>
          array(1) {
            ["$exists"]=>
            bool(true)
          }
        }
      }
    }
    ["cursor"]=>
    array(1) {
      ["batchSize"]=>
      int(1)
    }
  }
  ["fields"]=>
  NULL
  ["started_iterating"]=>
  bool(false)
}

After iteration started:
array(17) {
  ["ns"]=>
  string(11) "demo.cities"
  ["limit"]=>
  int(0)
  ["batchSize"]=>
  int(0)
  ["skip"]=>
  int(0)
  ["flags"]=>
  int(0)
  ["query"]=>
  array(3) {
    ["aggregate"]=>
    string(6) "cities"
    ["pipeline"]=>
    array(1) {
      [0]=>
      array(1) {
        ["$match"]=>
        array(1) {
          ["_id"]=>
          array(1) {
            ["$exists"]=>
            bool(true)
          }
        }
      }
    }
    ["cursor"]=>
    array(1) {
      ["batchSize"]=>
      int(1)
    }
  }
  ["fields"]=>
  NULL
  ["started_iterating"]=>
  bool(true)
  ["id"]=>
  int(185840310129)
  ["at"]=>
  int(0)
  ["numReturned"]=>
  int(0)
  ["server"]=>
  string(25) "localhost:27017;-;.;23991"
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["connection_type_desc"]=>
  string(10) "STANDALONE"
  ["firstBatchAt"]=>
  int(0)
  ["firstBatchNumReturned"]=>
  int(1)
}

Смотрите также

  • MongoCursorInterface::info() - Gets information about the cursor's creation and iteration


Returns the current result's index within the result set

  • « MongoCommandCursor::info
  • MongoCommandCursor::next »
  • PHP Manual
  • MongoCommandCursor
  • Returns the current result's index within the result set

MongoCommandCursor::key

(PECL mongo >=1.5.0)

MongoCommandCursor::key — Returns the current result's index within the result set

Описание

public int MongoCommandCursor::key ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current result's index within the result set.

Смотрите также

  • Iterator::key() - Возвращает ключ текущего элемента


Advances the cursor to the next result

  • « MongoCommandCursor::key
  • MongoCommandCursor::rewind »
  • PHP Manual
  • MongoCommandCursor
  • Advances the cursor to the next result

MongoCommandCursor::next

(PECL mongo >=1.5.0)

MongoCommandCursor::next — Advances the cursor to the next result

Описание

public void MongoCommandCursor::next ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

NULL.

Ошибки

Throws MongoConnectionException if it cannot reach the database and MongoCursorTimeoutException if the timeout is exceeded.

Смотрите также

  • Iterator::next() - Переходит к следующему элементу


Executes the command and resets the cursor to the start of the result set

  • « MongoCommandCursor::next
  • MongoCommandCursor::setReadPreference »
  • PHP Manual
  • MongoCommandCursor
  • Executes the command and resets the cursor to the start of the result set

MongoCommandCursor::rewind

(PECL mongo >=1.5.0)

MongoCommandCursor::rewind — Executes the command and resets the cursor to the start of the result set

Описание

public array MongoCommandCursor::rewind ( void )

If the cursor has already started iteration, the command will be re-executed.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The raw server result document.

Ошибки

Throws MongoConnectionException if it cannot reach the database and MongoCursorTimeoutException if the timeout is exceeded.

Throws MongoCursorException if the cursor was created with MongoCommandCursor::createFromDocument() and has already started iteration. Such cursors cannot be iterated multiple times, as they lack the original command necessary for re-execution.

Примеры

Пример #1 MongoCommandCursor::rewind()

<?php
$rawResult = $commandCursor->rewind();

// Command cursor is now reset to the start of the result set

var_dump($rawResult);
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["cursor"]=>
  array(3) {
    ["id"]=>
    object(MongoInt64)#5 (1) {
      ["value"]=>
      string(12) "310050110216"
    }
    ["ns"]=>
    string(9) "demo.test"
    ["firstBatch"]=>
    array(1) {
      [0]=>
      array(2) {
        ["_id"]=>
        object(MongoId)#6 (1) {
          ["$id"]=>
          string(24) "52f5691544670a8077b0dc51"
        }
        ["value"]=>
        string(2) "42"
      }
    }
  }
  ["ok"]=>
  float(1)
}

Смотрите также

  • Iterator::rewind() - Возвращает итератор на первый элемент


Set the read preference for this command

  • « MongoCommandCursor::rewind
  • MongoCommandCursor::timeout »
  • PHP Manual
  • MongoCommandCursor
  • Set the read preference for this command

MongoCommandCursor::setReadPreference

(PECL mongo >=1.6.0)

MongoCommandCursor::setReadPreference — Set the read preference for this command

Описание

public MongoCommandCursor MongoCommandCursor::setReadPreference ( string $read_preference [, array $tags ] )

Список параметров

read_preference

Режимы предпочтения чтения: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED и MongoClient::RP_NEAREST.

tags

Пустой массив, либо содержащий наборы тегов, где каждый такой набор является массивом из критериев, используемых в соответствии с тегами членов набора реплик.

Возвращаемые значения

Returns this cursor.

Ошибки

Генерирует ошибку уровня E_WARNING, в случае неверных параметров, либо если один или более наборов тегов были переданы с режимом чтения MongoClient::RP_PRIMARY.

Примеры

Пример #1 MongoCommandCursor::setReadPreference() tag set array syntax example

<?php

$m = new MongoClient('mongodb://rs1.example.com:27017', array('replicaSet' => 'myReplSetName'));
$collection = $m->selectCollection('test', 'people');

$cursor = $collection->aggregateCursor( [
    [ '$group' => [ '_id' => '$name', 'points' => [ '$sum' => '$points' ] ] ],
    [ '$sort' => [ 'points' => -1 ] ],
] );

// Prefer the nearest server in the "east" data center also used for reporting,
// but fall back to a server in the "west" data center
$cursor->setReadPreference(MongoClient::RP_NEAREST, [
    [ 'dc' => 'east', 'use' => 'reporting' ],
    [ 'dc' => 'west' ],
] );

foreach ($cursor as $person) {
    // ...
}

// If the read preference is changed, it will be used the next time the cursor
// is rewound and the command is re-executed.
$cursor->setReadPreference(MongoClient::RP_PRIMARY);

foreach ($cursor as $person) {
    // ...
}

?>

Смотрите также

  • The read preferences documentation.
  • MongoCommandCursor::getReadPreference() - Get the read preference for this command
  • MongoCursorInterface::setReadPreference() - Set the read preference for this query


Sets a client-side timeout for this command

  • « MongoCommandCursor::setReadPreference
  • MongoCommandCursor::valid »
  • PHP Manual
  • MongoCommandCursor
  • Sets a client-side timeout for this command

MongoCommandCursor::timeout

(PECL mongo >=1.6.0)

MongoCommandCursor::timeout — Sets a client-side timeout for this command

Описание

public MongoCommandCursor MongoCommandCursor::timeout ( int $ms )

A timeout can be set at any time and will affect subsequent data retrieval associated with this cursor, including fetching more results from the database.

Список параметров

ms

The number of milliseconds for the cursor to wait for a response. Use -1 to wait forever. By default, the cursor will wait 30000 milliseconds (30 seconds).

Возвращаемые значения

This cursor.

Ошибки

Causes methods that fetch results to throw a MongoCursorTimeoutException if the data fetch takes longer than the specified number of milliseconds.

Примеры

Пример #1 MongoCommandCursor::timeout() example

In the following example, the driver will wait for 60 seconds for the first response from the aggregate command. It will also wait for 60 seconds each time the server needs to be polled for more information.

<?php

$m = new MongoClient;
$col = $m->database->collection;

$pipeline = [ ... ];

$cursor = $col->aggregateCursor( $pipeline );
$cursor->timeout( 60000 ); // for 60 seconds

foreach ( $cursor as $result ) {
   ...
}

?>

Примечания

Внимание

This does not cause the MongoDB server to cancel long-running operations; it only instructs the driver to stop waiting for a response and throw a MongoCursorTimeoutException after a set time. If you need to specify a server-side timeout for a command, considering passing the maxTimeMS option to MongoCollection::aggregateCursor().

Смотрите также

  • MongoCollection::aggregateCursor() - Execute an aggregation pipeline command and retrieve results through a cursor
  • MongoCursorInterface::timeout() - Sets a client-side timeout for this query
  • The socketTimeoutMS option for MongoClient::__construct()


Checks if the cursor is reading a valid result.

  • « MongoCommandCursor::timeout
  • Types »
  • PHP Manual
  • MongoCommandCursor
  • Checks if the cursor is reading a valid result.

MongoCommandCursor::valid

(PECL mongo >=1.5.0)

MongoCommandCursor::valid — Checks if the cursor is reading a valid result.

Описание

public bool MongoCommandCursor::valid ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE if the current result is not null, and FALSE otherwise.

Смотрите также

  • Iterator::valid() - Проверка корректности позиции


Types

Содержание

  • MongoId
  • MongoCode
  • MongoDate
  • MongoRegex
  • MongoBinData
  • MongoInt32
  • MongoInt64
  • MongoDBRef
  • MongoMinKey
  • MongoMaxKey
  • MongoTimestamp

MongoDB allows programmers to save and query for data expressed in all of the basic PHP types, compound types (arrays, associative arrays, and objects), and a half-dozen classes provided by the MongoDB PHP driver (for regular expressions, dates, and other specialized applications).

Booleans and NULL

TRUE, FALSE, and NULL can be used as-is.

Numbers

Numbers are distinct from strings in MongoDB: "123" does not match 123. Thus, if you want to make sure numbers are sorted and matched correctly, you must make sure that they are actually saved as numbers.

<?php

$doc = array("a" => 123, "b" => "123");
$collection->insert($doc);

$doc->find(array("a" => 123));   // matches
$doc->find(array("a" => "123")); // doesn't match
$doc->find(array("a" => 123.0)); // matches
$doc->find(array("b" => 123));   // doesn't match
$doc->find(array("b" => "123")); // matches

?>

As noted above, floating point numbers do compare with/match integer numbers as one would expect.

Large Numbers

By default, on a 32-bit system, numbers are sent to the database as 32-bit integers. On a 64-bit system, they are sent as 64-bit integers. For backwards compatibility, all systems deserialize 64-bit integers as floating point numbers. Floating point numbers are not exact. If you need exact values, you must tweak your php.ini settings.

On a 32-bit system, if mongo.long_as_object is set, 64-bit integers will be returns as MongoInt64 objects. The integer will be stored in the value field with perfect precision (as a string). You can also use MongoInt64 to save 64-bit integers on 32-bit machines.

On 64-bit systems, you can either set mongo.long_as_object or set mongo.native_long. mongo.native_long will return 64-bit integers and "normal" PHP integers. You can use MongoInt32 to save 32-bit integers on 64-bit machines.

You should set the mongo.long_as_object and mongo.native_long behavior that you plan to use, even if it is the default behavior (to protect against future changes to the defaults).

See also: php.ini Options, MongoInt32, MongoInt64.

Strings

Strings must be UTF-8. Non-UTF-8 strings must either be converted to UTF-8 before being sent to the database or saved as binary data.

Regular expressions can be used to match strings, and are expressed using the MongoRegex class.

Binary Data

Non-UTF-8 strings, images, and any other binary data should be sent to the database using the MongoBinData type.

Dates

Dates can be created using the MongoDate class. They are stored as milliseconds since the epoch.

MongoTimestamp is not for saving dates or timestamps, it is used internally by MongoDB. Unless you are creating a tool that interacts with the internals of replication or sharding, you should use MongoDate, not MongoTimestamp.

Unique Ids

The driver will automatically create an _id field before inserting a document (unless one is specified by the user). This field is an instance of MongoId (called "ObjectId" in most other languages).

These ids are 12 bytes long and composed of:

  • 4 bytes of timestamp

    No two records can have the same id if they were inserted at different times.

  • 3 bytes machine id

    No two records can have the same id if they were inserted on different machines

  • 2 bytes thread id

    No two records can have the same id if they were inserted by different threads running on the same machine.

  • 3 bytes incrementing value

    Each time an id is created, a global counter is incremented and used as the increment value of the next id.

Thus, no two records can have the same id unless a single process on a single machine managed to insert 256^3 (over 16 million) documents in one second, overflowing the increment field.

JavaScript

MongoDB comes with a JavaScript engine, so you can embed JavaScript in queries (using a $where clause), send it directly to the database to be executed, and use it to perform aggregations.

For security, use MongoCode's scope field to use PHP variables in JavaScript. Code that does not require external values can either use MongoCode or just be a string. See the section on security for more information about sending JavaScript to the database.

Arrays and Objects

Arrays and objects can also be saved to the database. An array with ascending numeric keys will be saved as a an array, anything else will be saved as an object.

<?php

// $scores will be saved as an array
$scores = array(98, 100, 73, 85);
$collection->insert(array("scores" => $scores));

// $scores will be saved as an object
$scores = array("quiz1" => 98, "midterm" => 100, "quiz2" => 73, "final" => 85);
$collection->insert(array("scores" => $scores));

?>

If you query for these objects using the database shell, they will look like:

> db.students.find()
{ "_id" : ObjectId("4b06beada9ad6390dab17c43"), "scores" : [ 98, 100, 73, 85 ] }
{ "_id" : ObjectId("4b06bebea9ad6390dab17c44"), "scores" : { "quiz1" : 98, "midterm" : 100, "quiz2" : 73, "final" : 85 } }

The database can also save arbitrary PHP objects (although they will be returned as associative arrays). The fields are used for the key/value pairs. For example, a blog post might look like:

<?php

  // the blog post class
  class Post {

  var $author;
  var $content;
  var $comments = array();
  var $date;

  public function __construct($author, $content) {
  $this->author = $author;
$this->content = $content;
    $this->date = new MongoDate();
  }

  public function setTitle($title) {
    $this->title = $title;
  }
}

// create a simple blog post and insert it into the database
$post1 = new Post("Adam", "This is a blog post");

$blog->insert($post1);

// there is nothing restricting the type of the "author" field, so we can make
// it a nested object
$author = array("name" => "Fred", "karma" => 42);
$post2 = new Post($author, "This is another blog post.");

// we create an extra field by setting the title
$post2->setTitle("Second Post");

$blog->insert($post2);

?>

From the database shell, this will look something like:

> db.blog.find()
{ "_id" : ObjectId("4b06c263edb87a281e09dad8"), "author" : "Adam", "content" : "This is a blog post", "comments" : [ ], "date" : "Fri Nov 20 2009 11:22:59 GMT-0500 (EST)" }
{ "_id" : ObjectId("4b06c282edb87a281e09dad9"), "author" : { "name" : "Fred", "karma" : 42 }, "content" : "This is a blog post", "comments" : [ ], "date" : "Fri Nov 20 2009 11:23:30 GMT-0500 (EST)", "title" : "Second Post" }

The driver will not detect reference loops in arrays and objects. For example, this will give a fatal error:

<?php

$collection->insert($GLOBALS);

?>
Fatal error: Nesting level too deep - recursive dependency?
If you need to insert documents that may have recursive dependency, you have to check for it yourself before passing it to the driver.


Класс MongoId

(PECL mongo >=0.8.0)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\ObjectID

Введение

Уникальный идентификатор, созданный для объектов базы данных. При добавлении записи в базу данных без поля _id, такое поле будет автоматически добавлено и инициализировано объектом MongoId. Если хранимые записи предположительно и так будут содержать уникальные поля, (такие как имя пользователя или отметку времени), возможно использовать их вместо поля _id , и это не будет изменено MongoId.

Экземпляры класса MongoId выполняют роль автоинкремента реляционных базах данных: обеспечивает кортеж уникальным ключом в случае отсутствия такового. Однако автоинкремент не очень хорошо работает с секционированными (sharded) базами данных, так как в таком случае невозможно обеспечить быстрый поиск следующего инкремента. Данный класс удовлетворяет требованиям к быстрой генерации значения, уникального в пределах секции.

Каждый MongoId состоит из 12 байт (преобразующихся в 24 шестнадцатеричных символа). Первые 4 байта занимает отметка времени, следующие 3 хеш имени хоста клиента, следующие 2 - последние 2 значащих байта идентификатора процесса исполнения скрипта, и последние 3 байта - автоинкрементное значение.

Объекты MongoIdмогуть быть сериализованы и десериализованы. Пример сериализованного значения:

C:7:"MongoId":24:{4af9f23d8ead0e1d32000000}

Обзор классов

MongoId {
public string $$id = NULL ;
/* Методы */
public __construct ([ string|MongoId $id = NULL ] )
public static string getHostname ( void )
public int getInc ( void )
public int getPID ( void )
public int getTimestamp ( void )
public static bool isValid ( mixed $value )
public static MongoId __set_state ( array $props )
public string __toString ( void )
}

Поля

id
Поле содержит строчное представление объекта.

Замечание: Имя свойства начинается с символа $. К нему можно обратиться используя сложный синтаксис разбора переменных (т.е. $mongoId->{'$id'}).

Смотрите также

Документация MongoDB об » идентификаторах.

Содержание

  • MongoId::__construct — Creates a new id
  • MongoId::getHostname — Gets the hostname being used for this machine's ids
  • MongoId::getInc — Gets the incremented value to create this id
  • MongoId::getPID — Gets the process ID
  • MongoId::getTimestamp — Gets the number of seconds since the epoch that this id was created
  • MongoId::isValid — Check if a value is a valid ObjectId
  • MongoId::__set_state — Create a dummy MongoId
  • MongoId::__toString — Returns a hexidecimal representation of this id


Creates a new id

  • « MongoId
  • MongoId::getHostname »
  • PHP Manual
  • MongoId
  • Creates a new id

MongoId::__construct

(PECL mongo >= 0.8.0)

MongoId::__construct — Creates a new id

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\ObjectID::__construct()

Описание

public MongoId::__construct ([ string|MongoId $id = NULL ] )

Список параметров

id

A string (must be 24 hexadecimal characters) or a MongoId instance.

Возвращаемые значения

Returns a new id.

Список изменений

Версия | Описание
1.4.0 | An exception is thrown when passed invalid string

Примеры

Пример #1 MongoId::__construct() example

This example shows how to create a new id. This is seldom necessary, as the driver adds an id to arrays automatically before storing them in the database.

<?php

  $id1 = new MongoId();
  echo "$id1\n";

  $id2 = new MongoId();
  echo "$id2\n";

  ?>

Результатом выполнения данного примера будет что-то подобное:

49a7011a05c677b9a916612a
49a702d5450046d3d515d10d

Пример #2 Parameter example

This example shows how to use a string parameter to initialize a MongoId with a given value.

<?php
  $id1 = new MongoId();

  // create a new id from $id1
  $id2 = new MongoId("$id1");

  // show that $id1 and $id2 have the same hexidecimal value
  var_dump($id1 == $id2);
  ?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)

Смотрите также

  • MongoId::__toString() - Returns a hexidecimal representation of this id
  • MongoId::isvalid() - Check if a value is a valid ObjectId


Gets the hostname being used for this machine's ids

  • « MongoId::__construct
  • MongoId::getInc »
  • PHP Manual
  • MongoId
  • Gets the hostname being used for this machine's ids

MongoId::getHostname

(PECL mongo >= 1.0.8)

MongoId::getHostname — Gets the hostname being used for this machine's ids

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public static string MongoId::getHostname ( void )

This returns the hostname MongoId is using to generate unique ids. This should be the same value gethostname() returns.

It is identical to the function:

<?php

public static function getHostname() {
    return gethostname();
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the hostname.


Gets the incremented value to create this id

  • « MongoId::getHostname
  • MongoId::getPID »
  • PHP Manual
  • MongoId
  • Gets the incremented value to create this id

MongoId::getInc

(PECL mongo >= 1.0.11)

MongoId::getInc — Gets the incremented value to create this id

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public int MongoId::getInc ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the incremented value used to create this MongoId.


Gets the process ID

  • « MongoId::getInc
  • MongoId::getTimestamp »
  • PHP Manual
  • MongoId
  • Gets the process ID

MongoId::getPID

(PECL mongo >= 1.0.11)

MongoId::getPID — Gets the process ID

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public int MongoId::getPID ( void )

Extracts the pid from the Mongo ID

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the PID of the MongoId.


Gets the number of seconds since the epoch that this id was created

  • « MongoId::getPID
  • MongoId::isValid »
  • PHP Manual
  • MongoId
  • Gets the number of seconds since the epoch that this id was created

MongoId::getTimestamp

(PECL mongo >= 1.0.1)

MongoId::getTimestamp — Gets the number of seconds since the epoch that this id was created

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public int MongoId::getTimestamp ( void )

This returns the same thing as running time() when the id is created.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of seconds since the epoch that this id was created. There are only four bytes of timestamp stored, so MongoDate is a better choice for storing exact or wide-ranging times.


Check if a value is a valid ObjectId

  • « MongoId::getTimestamp
  • MongoId::__set_state »
  • PHP Manual
  • MongoId
  • Check if a value is a valid ObjectId

MongoId::isValid

(PECL mongo >= 1.5.0)

MongoId::isValid — Check if a value is a valid ObjectId

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public static bool MongoId::isValid ( mixed $value )

This method may be used to check a variable before passing it as an argument to MongoId::__construct().

Список параметров

value

The value to check for validity.

Возвращаемые значения

Returns TRUE if value is a MongoId instance or a string consisting of exactly 24 hexadecimal characters; otherwise, FALSE is returned.


Create a dummy MongoId

  • « MongoId::isValid
  • MongoId::__toString »
  • PHP Manual
  • MongoId
  • Create a dummy MongoId

MongoId::__set_state

(PECL mongo >= 1.0.8)

MongoId::__set_state — Create a dummy MongoId

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public static MongoId MongoId::__set_state ( array $props )

This function is only used by PHP internally, it shouldn't need to ever be called by the user.

It is identical to the function:

<?php

public static function __set_state($props) {
    return new MongoId("000000000000000000000000");
}

?>

Список параметров

props

Theoretically, an array of properties used to create the new id. However, as MongoId instances have no properties, this is not used.

Возвращаемые значения

A new id with the value "000000000000000000000000".


Returns a hexidecimal representation of this id

  • « MongoId::__set_state
  • MongoCode »
  • PHP Manual
  • MongoId
  • Returns a hexidecimal representation of this id

MongoId::__toString

(PECL mongo >= 0.8.0)

MongoId::__toString — Returns a hexidecimal representation of this id

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\ObjectID::__toString()

Описание

public string MongoId::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This id.

Примеры

Пример #1 MongoId::__toString() example

<?php

$m = new MongoClient();
$collection = $m->selectDB("foo")->selectCollection("bar");

$collection->insert(array( "x" => "y" ));
$collection->insert(array( "x" => "y" ));

$cursor = $collection->find();
$r1 = $cursor->next();
$r2 = $cursor->next();

echo $r1["_id"] . "\n";
echo $r2["_id"] . "\n";

?>

Результатом выполнения данного примера будет что-то подобное:

49a7011a05c677b9a916612a
49a702d5450046d3d515d10d


The MongoCode class

(PECL mongo >=0.8.3)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\JavaScript

Введение

Represents JavaScript code for the database.

MongoCode objects are composed of two parts: a string of code and an optional scope. The string of code must be valid JavaScript. The scope is a associative array of variable name/value pairs.

Обзор классов

MongoCode {
/* Методы */
public __construct ( string $code [, array $scope = array() ] )
public string __toString ( void )
}

Содержание

  • MongoCode::__construct — Creates a new code object
  • MongoCode::__toString — Returns this code as a string


Creates a new code object

  • « MongoCode
  • MongoCode::__toString »
  • PHP Manual
  • MongoCode
  • Creates a new code object

MongoCode::__construct

(PECL mongo >= 0.8.3)

MongoCode::__construct — Creates a new code object

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\JavaScript::__construct()

Описание

public MongoCode::__construct ( string $code [, array $scope = array() ] )

Список параметров

code

A string of code.

scope

The scope to use for the code.

Возвращаемые значения

Returns a new code object.

Примеры

Пример #1 MongoCode::__construct() example

<?php

$code = new MongoCode('function() { '.
    'for(i=0;i<10;i++) {'.
        'db.foo.update({z : i}, {z : x});'.
    '}'.
    'return x-1;'.
 '}', array("x" => 4));
var_dump($code);

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoCode)#1 (2) {
  ["scope"]=>
  array(1) {
    ["x"]=>
    int(4)
  }
  ["code"]=>
  string(80) "function() { for(i=0;i<10;i++) { db.foo.update({z : i}, {z : x}); } return x-1; }"
}

Пример #2 Using MongoCode with $where

This example queries a collection for elements where the 'x' fields is less than $y. Notice that PHP objects can be passed into the JavaScript scope and that the JavaScript function returns a boolean.

<?php

$cursor = $collection->find(array('$where' => new MongoCode('function() { return this.x < y; }', array('y'=>$y))));

?>


Returns this code as a string

  • « MongoCode::__construct
  • MongoDate »
  • PHP Manual
  • MongoCode
  • Returns this code as a string

MongoCode::__toString

(PECL mongo >= 0.8.3)

MongoCode::__toString — Returns this code as a string

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному методу не предусмотрено.

Описание

public string MongoCode::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This code, the scope is not returned.

Примеры

Пример #1 MongoCode::__toString() example

<?php

$code = new MongoCode('return x;', array("x"=>"hi"));
echo "$code\n";

$code = new MongoCode('function() { for(i=0;i<10;i++) { db.foo.update({x:i}, {x:i+1}); } }');
echo "$code\n";

?>

Результатом выполнения данного примера будет что-то подобное:

return x;
function() { for(i=0;i<10;i++) { db.foo.update({x:i}, {x:i+1}); } }


The MongoDate class

(PECL mongo >=0.8.1)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\UTCDateTime

Введение

Represent date objects for the database. This class should be used to save dates to the database and to query for dates. For example:

Пример #1 Storing dates with MongoDate

<?php

// save a date to the database
$collection->save(array("ts" => new MongoDate()));

$start = new MongoDate(strtotime("2010-01-15 00:00:00"));
$end = new MongoDate(strtotime("2010-01-30 00:00:00"));

// find dates between 1/15/2010 and 1/30/2010
$collection->find(array("ts" => array('$gt' => $start, '$lte' => $end)));

?>

MongoDB stores dates as milliseconds past the epoch. This means that dates do not contain timezone information. Timezones must be stored in a separate field if needed. Second, this means that any precision beyond milliseconds will be lost when the document is sent to/from the database.

Обзор классов

MongoDate {
/* Fields */
public int $sec ;
public int $usec ;
/* Методы */
public __construct ([ int $sec = time() [, int $usec = 0 ]] )
public DateTime toDateTime ( void )
public string __toString ( void )
}

Содержание

  • MongoDate::__construct — Creates a new date.
  • MongoDate::toDateTime — Returns a DateTime object representing this date
  • MongoDate::__toString — Returns a string representation of this date


Creates a new date.

  • « MongoDate
  • MongoDate::toDateTime »
  • PHP Manual
  • MongoDate
  • Creates a new date.

MongoDate::__construct

(PECL mongo >= 0.8.1)

MongoDate::__construct — Creates a new date.

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\UTCDateTime::__construct()

Описание

public MongoDate::__construct ([ int $sec = time() [, int $usec = 0 ]] )

Creates a new date. If no parameters are given, the current time is used.

Список параметров

sec

Number of seconds since the epoch (i.e. 1 Jan 1970 00:00:00.000 UTC).

usec

Microseconds. Please be aware though that MongoDB's resolution is milliseconds and not microseconds, which means this value will be truncated to millisecond resolution.

Возвращаемые значения

Returns this new date.

Примеры

Пример #1 MongoDate::__construct() example

This example demonstrates creating a new date with the current time and a new date with a given time.

<?php

$d = new MongoDate();
echo "$d\n";
$d = new MongoDate(1234567890);
echo "$d\n";
$d = new MongoDate(strtotime("2009-05-01 00:00:01"));
echo "$d\n";

?>

Результатом выполнения данного примера будет что-то подобное:

0.23660600 1235685067
0.00000000 1234567890
0.00000000 1241150401

Смотрите также

  • MongoDate::__toString() - Returns a string representation of this date


Returns a DateTime object representing this date

  • « MongoDate::__construct
  • MongoDate::__toString »
  • PHP Manual
  • MongoDate
  • Returns a DateTime object representing this date

MongoDate::toDateTime

(PECL mongo >= 1.6.0; PHP > 5.3.4)

MongoDate::toDateTime — Returns a DateTime object representing this date

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\UTCDateTime::toDateTime()

Описание

public DateTime MongoDate::toDateTime ( void )

Returns a DateTime object representation of this date.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This date as a DateTime object.

Примеры

Пример #1 MongoDate::toDateTime() example

This example demonstrates creating a DateTime object from a MongoDate object.

<?php
$d = new MongoDate(strtotime("2014-11-18 11:01:25"));
var_dump( $d->toDateTime() );
?>

Результатом выполнения данного примера будет что-то подобное:

class DateTime#2 (3) {
  public $date =>
  string(26) "2014-11-18 11:01:25.000000"
  public $timezone_type =>
  int(1)
  public $timezone =>
  string(6) "+00:00"
}


Returns a string representation of this date

  • « MongoDate::toDateTime
  • MongoRegex »
  • PHP Manual
  • MongoDate
  • Returns a string representation of this date

MongoDate::__toString

(PECL mongo >= 0.8.1)

MongoDate::__toString — Returns a string representation of this date

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\UTCDateTime::__toString()

Описание

public string MongoDate::__toString ( void )

Returns a string representation of this date, similar to the representation returned by microtime().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This date.


The MongoRegex class

(PECL mongo >=0.8.1)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Regex

Введение

This class can be used to create regular expressions. Typically, these expressions will be used to query the database and find matching strings. More unusually, they can be saved to the database and retrieved.

Regular expressions consist of four parts. First a / as starting delimiter, then the pattern, another / and finally a string containing flags.

Пример #1 Regular expression pattern

/pattern/flags

MongoDB recognizes six regular expression flags:

  • i: Case insensitive

  • m: Multiline

  • x: Can contain comments

  • l: locale

  • s: dotall, "." matches everything, including newlines

  • u: match unicode

Обзор классов

MongoRegex {
/* Fields */
public string $regex ;
public string $flags ;
/* Методы */
public __construct ( string $regex )
public string __toString ( void )
}

Содержание

  • MongoRegex::__construct — Creates a new regular expression
  • MongoRegex::__toString — A string representation of this regular expression


Creates a new regular expression

  • « MongoRegex
  • MongoRegex::__toString »
  • PHP Manual
  • MongoRegex
  • Creates a new regular expression

MongoRegex::__construct

(PECL mongo >= 0.8.1)

MongoRegex::__construct — Creates a new regular expression

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Regex::__construct()

Описание

public MongoRegex::__construct ( string $regex )

Creates a new regular expression.

Список параметров

regex

Regular expression string of the form /expr/flags.

Возвращаемые значения

Returns a new regular expression.

Примеры

Пример #1 MongoRegex::__construct() example

This example uses a regular expression to query for all documents with a username field starting (^) with an l and a vowel ([aeiouy]), case-insensitive (/i).

<?php
$luke_search = new MongoRegex("/^l[aeiouy]/i");
$cursor = $collection->find(array("username" => $luke_search));
?>

Смотрите также

  • MongoRegex::__toString() - A string representation of this regular expression


A string representation of this regular expression

  • « MongoRegex::__construct
  • MongoBinData »
  • PHP Manual
  • MongoRegex
  • A string representation of this regular expression

MongoRegex::__toString

(PECL mongo >= 0.8.1)

MongoRegex::__toString — A string representation of this regular expression

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Regex::__toString()

Описание

public string MongoRegex::__toString ( void )

Returns a string representation of this regular expression.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This regular expression in the form "/expr/flags".

Примеры

Пример #1 MongoRegex::__toString() example

<?php

$r = new MongoRegex( "/[a-fA-F0-9]{16}/g" );
echo $r->regex . "\n";
echo $r->flags . "\n";
echo "$r\n";

?>

Результатом выполнения данного примера будет что-то подобное:

[a-fA-F0-9]{16}
g
/[a-fA-F0-9]{16}/g


Класс MongoBinData

(PECL mongo >= 0.8.1)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Binary

Введение

Объект, который может использоваться для хранения или получения бинарных данных из базы данных.

Максимальный размер одного документа, вставляемого в базу данных составляет 16 МБ. Для данных превышающих этот размер (видео, аудио, автобиографии Генри Киссенджера) используйте MongoGridFS. Данные менее 16МБ, возможно, будет лучше вставлять непосредственно в документ, используя MongoBinData.

Например, для вставки изображения в документ, можно написать:

<?php

$profile = array(
    "username" => "foobity",
    "pic" => new MongoBinData(file_get_contents("gravatar.jpg"), MongoBinData::GENERIC),
);

$users->save($profile);

?>

Данный класс содержит поле type, который на данный момент не предоствляют дополнительной функциональности в базе данных или драйвере PHP. Существует семь предопределенных типов, которые являются константами класса и описаны ниже. Для обратной совместимости, драйвер PHP по умолчанию использует тип MongoBinData::BYTE_ARRAY; однако, в будущем, его могут поменять на MongoBinData::GENERIC. Пользователи поощряются указывать тип в конструкторе MongoBinData::__construct().

Обзор классов

MongoBinData {
/* Константы */
const int GENERIC = 0 ;
const int FUNC = 1 ;
const int BYTE_ARRAY = 2 ;
const int UUID = 3 ;
const int UUID_RFC4122 = 4 ;
const int MD5 = 5 ;
const int CUSTOM = 128 ;
/* Fields */
public string $bin ;
public int $type = 2 ;
/* Методы */
public __construct ( string $data [, int $type = 0 ] )
public string __toString ( void )
}

Предопределенные константы

Типы бинарных данных

MongoBinData::GENERIC
0x00
Двоичные данные общего назначения.
MongoBinData::FUNC
0x01
Функция.
MongoBinData::BYTE_ARRAY
0x02
Двоичные данные общего назначения. (Объявлен устаревшим в пользу MongoBinData::GENERIC).
MongoBinData::UUID
0x03
Универсальный уникальный идентификатор. (Объявлен устаревшим в пользу MongoBinData::UUID_RFC4122).
MongoBinData::UUID_RFC4122
0x04
Универсальный уникальный идентификатор (в соответствии с » RFC 4122).
MongoBinData::MD5
0x05
MD5.
MongoBinData::CUSTOM
0xf0
Определенный пользователем тип.

Список изменений

Версия | Описание
1.5.0 | Добавлены константы MongoBinData::GENERIC и MongoBinData::UUID_RFC4122.

Содержание

  • MongoBinData::__construct — Creates a new binary data object.
  • MongoBinData::__toString — The string representation of this binary data object.


Creates a new binary data object.

  • « MongoBinData
  • MongoBinData::__toString »
  • PHP Manual
  • MongoBinData
  • Creates a new binary data object.

MongoBinData::__construct

(PECL mongo >= 0.8.1)

MongoBinData::__construct — Creates a new binary data object.

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Binary::__construct()

Описание

public MongoBinData::__construct ( string $data [, int $type = 0 ] )

Creates a new binary data object.

There are seven types of binary data currently recognized by the BSON spec, which are defined as class constants. For backwards compatibility, the PHP driver uses MongoBinData::BYTE_ARRAY as the default; however, this may change to MongoBinData::GENERIC in the future. Users are encouraged to specify a type instead of relying on the default.

Список параметров

data

Binary data.

type

Data type.

Возвращаемые значения

Returns a new binary data object.

Список изменений

Версия | Описание
1.5.0 | The default changed from 2 (MongoBinData::BYTE_ARRAY) to 0 (MongoBinData::GENERIC).
1.2.11 | Emits E_DEPRECATED when the second argument is not used. The default value for type may change in the near future.


The string representation of this binary data object.

  • « MongoBinData::__construct
  • MongoInt32 »
  • PHP Manual
  • MongoBinData
  • The string representation of this binary data object.

MongoBinData::__toString

(PECL mongo >= 0.8.1)

MongoBinData::__toString — The string representation of this binary data object.

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Binary::getData()

Описание

public string MongoBinData::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the string "<Mongo Binary Data>". To access the contents of a MongoBinData, use the bin field.


The MongoInt32 class

(PECL mongo >=1.0.9)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Введение

The class can be used to save 32-bit integers to the database on a 64-bit system.

Обзор классов

MongoInt32 {
/* Fields */
public string $value ;
/* Методы */
public __construct ( string $value )
public string __toString ( void )
}

Fields

value
This is the string value of the 32-bit number. For instance, 123's value would be "123".

Содержание

  • MongoInt32::__construct — Creates a new 32-bit integer.
  • MongoInt32::__toString — Returns the string representation of this 32-bit integer.


Creates a new 32-bit integer.

  • « MongoInt32
  • MongoInt32::__toString »
  • PHP Manual
  • MongoInt32
  • Creates a new 32-bit integer.

MongoInt32::__construct

(PECL mongo >= 1.0.9)

MongoInt32::__construct — Creates a new 32-bit integer.

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Описание

public MongoInt32::__construct ( string $value )

Creates a new 32-bit number with the given value.

Список параметров

value

A number.

Возвращаемые значения

Returns a new integer.


Returns the string representation of this 32-bit integer.

  • « MongoInt32::__construct
  • MongoInt64 »
  • PHP Manual
  • MongoInt32
  • Returns the string representation of this 32-bit integer.

MongoInt32::__toString

(PECL mongo >= 1.0.9)

MongoInt32::__toString — Returns the string representation of this 32-bit integer.

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Описание

public string MongoInt32::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the string representation of this integer.


The MongoInt64 class

(PECL mongo >=1.0.9)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Введение

The class can be used to save 64-bit integers to the database on a 32-bit system.

Обзор классов

MongoInt64 {
/* Fields */
public string $value ;
/* Методы */
public __construct ( string $value )
public string __toString ( void )
}

Fields

value
This is the string value of the 64-bit number. For instance, 123's value would be "123".

Содержание

  • MongoInt64::__construct — Creates a new 64-bit integer.
  • MongoInt64::__toString — Returns the string representation of this 64-bit integer.


Creates a new 64-bit integer.

  • « MongoInt64
  • MongoInt64::__toString »
  • PHP Manual
  • MongoInt64
  • Creates a new 64-bit integer.

MongoInt64::__construct

(PECL mongo >= 1.0.9)

MongoInt64::__construct — Creates a new 64-bit integer.

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Описание

public MongoInt64::__construct ( string $value )

Creates a new 64-bit number with the given value.

Список параметров

value

A number.

Возвращаемые значения

Returns a new integer.


Returns the string representation of this 64-bit integer.

  • « MongoInt64::__construct
  • MongoDBRef »
  • PHP Manual
  • MongoInt64
  • Returns the string representation of this 64-bit integer.

MongoInt64::__toString

(PECL mongo >= 1.0.9)

MongoInt64::__toString — Returns the string representation of this 64-bit integer.

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Instead, the new extension chooses the appropriate database type depending on the integer's value.

Описание

public string MongoInt64::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the string representation of this integer.


Класс MongoDBRef

(PECL mongo >=0.9.0)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Концепция ссылок на базу данных, а следовательно и данный класс, являются устаревшими.

Введение

Этот класс может быть использован для создания простых связей между объектами разных коллекций.

Основание: Предположим, что нам нужно сослаться на документ из другой коллекции. Самый простой способ - создать специальное поле в текущем документе. Например, если у нас есть коллекции людей и адресов, мы можем создать связь между документом адреса и документом человека:

Пример #1 Связывание документов

<?php

$people = $db->people;
$addresses = $db->addresses;

$myAddress = array("line 1" => "123 Main Street",
    "line 2" => null,
    "city" => "Springfield",
    "state" => "Vermont",
    "country" => "USA");

// сохраняем адрес
$addresses->insert($myAddress);

// сохраняем человека со ссылкой на адрес
$me = array("name" => "Fred", "address" => $myAddress['_id']);
$people->insert($me);

?>

Позже мы можем найти адрес человека с помощью запроса в коллекцию адресов с использованием MongoId который мы сохранили в коллекции людей.

Теперь предположим, что мы имеем более общий случай, когда не известно какая коллекция (или даже база данных) содержит указанный документ. MongoDBRef является хорошим выбором в такой ситуации, так как это общий формат, который понимают все драйверы и базы данных.

Если каждый человек имеет список понравившихся вещей и все они находятся в разных коллекциях, таких как: "hobbies", "sports", "books", и т.д., мы можем использовать MongoDBRef для отслеживания того, что и из какой коллекции "лайкнул" человек:

Пример #2 Создание MongoDBRef связи

<?php

$people = $db->selectCollection("people");

// модель поезда в коллекции "hobbies"
$trainRef = MongoDBRef::create("hobbies", $modelTrains['_id']);
// футбол в "sports" коллекции
$soccerRef = MongoDBRef::create("sports", $soccer['_id']);

//теперь мы знаем, какие коллекции элементов в массиве "likes" придут, когда
// мы будем извлекать этот документ
$people->insert(array("name" => "Fred", "likes" => array($trainRef, $soccerRef)));

?>

Ссылки в базе данных можно рассматривать как гиперссылки: он предоставляет уникальный адрес другого документа, но не загружает его автоматически и не переходит по этим ссылкам.

Ссылки в базе данных это обычный ассоциативный массив, не экземплр MongoDBRef, поэтому этот класс немного оличается от других классов типов данных. Этот класс содержит только ститические методы для манипуляции ссылками базы данных.

Обзор классов

MongoDBRef {
/* Методы */
public static array create ( string $collection , mixed $id [, string $database ] )
public static array get ( MongoDB $db , array $ref )
public static bool isRef ( mixed $ref )
}

Смотрите также

Базовая документация на MongoDB лежит тут » databases references.

Содержание

  • MongoDBRef::create — Создает новую ссылку в базе данных
  • MongoDBRef::get — Извлекает объект, на который указывает ссылка
  • MongoDBRef::isRef — Проверяет, что массив является ссылкой


Создает новую ссылку в базе данных

  • « MongoDBRef
  • MongoDBRef::get »
  • PHP Manual
  • MongoDBRef
  • Создает новую ссылку в базе данных

MongoDBRef::create

(PECL mongo >= 0.9.0)

MongoDBRef::create — Создает новую ссылку в базе данных

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Концепция ссылок на базу данных, а следовательно и данный класс, являются устаревшими.

Описание

public static array MongoDBRef::create ( string $collection , mixed $id [, string $database ] )

Если база данных не задана, будет использоваться текущая.

Список параметров

collection

Имя коллекции (без имени базы данных).

id

Поле _id связываемого объекта.

database

Название базы данных.

Возвращаемые значения

Возвращает ссылку.

Примеры

Пример #1 Пример MongoDBRef::create()

Здесь создается ссылка базы данных на документ из коллекции addresses. MongoCollection::getName() функция возвращает имя коллекции (без имени базы данных).

<?php
$addresses = $db->addresses;
$people = $db->people;

//сохраняем $address в который будет добавлен _id
$addresses->insert($address);

// создаем ссылку
$ref = MongoDBRef::create($addresses->getName(), $address['_id']);

// добавляем ее как поле в $person
$person['address'] = $ref;
$people->save($person);
?>

Смотрите также

  • MongoDB::createDBRef() - Creates a database reference
  • MongoCollection::createDBRef() - Creates a database reference


Извлекает объект, на который указывает ссылка

  • « MongoDBRef::create
  • MongoDBRef::isRef »
  • PHP Manual
  • MongoDBRef
  • Извлекает объект, на который указывает ссылка

MongoDBRef::get

(PECL mongo >= 0.9.0)

MongoDBRef::get — Извлекает объект, на который указывает ссылка

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Концепция ссылок на базу данных, а следовательно и данный класс, являются устаревшими.

Описание

public static array MongoDBRef::get ( MongoDB $db , array $ref )

Список параметров

db

База данных для использования.

ref

Ссылка для выборки.

Возвращаемые значения

Возвращает документ, на который есть ссылка или NULL если этот документ не существует (битая ссылка).

Примеры

Пример #1 MongoCollection::createDBRef() пример

<?php

// получаем данные $person из бд
$person = $people->findOne();

// разыменовываем адрес
$address = MongoDBRef::get($people->db, $person['address']);

?>

Смотрите также

  • MongoDB::getDBRef() - Fetches the document pointed to by a database reference
  • MongoCollection::getDBRef() - Fetches the document pointed to by a database reference


Проверяет, что массив является ссылкой

  • « MongoDBRef::get
  • MongoMinKey »
  • PHP Manual
  • MongoDBRef
  • Проверяет, что массив является ссылкой

MongoDBRef::isRef

(PECL mongo >= 0.9.0)

MongoDBRef::isRef — Проверяет, что массив является ссылкой

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Никакой замены данному классу не предусмотрено.

Концепция ссылок на базу данных, а следовательно и данный класс, являются устаревшими.

Описание

public static bool MongoDBRef::isRef ( mixed $ref )

Этот метод фактически не переходит по ссылке, поэтому он не может определить является ли ссылка "битой". Он просто проверяет, что ref это правильная ссылка в нужном формате (что это объект или массив с $ref and $id полями).

Список параметров

ref

Массив или объект для проверки

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


The MongoMinKey class

(PECL mongo >= 1.0.2)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\MinKey

Введение

MongoMinKey is an special type used by the database that compares less than all other possible BSON values. Thus, if a query is sorted by a given field in ascending order, any document with a MongoMinKey as its value will be returned first.

MongoMinKey has no associated fields, methods, or constants. It is merely the "smallest" value that can be represented in the database.

Замечание: MongoMinKey is used internally by MongoDB for indexing and sharding. There is generally no reason to use this class in an application.

Обзор классов

MongoMinKey {
}

Using MongoMinKey as a value

<?php

$collection->insert(array("task" => "lunch", "doBy" => new MongoMinKey));
$collection->insert(array("task" => "staff meeting", "doBy" => new MongoDate(strtotime("+4 days"))));

$cursor = $collection->find()->sort(array("doBy" => 1));

?>

The cursor will return the lunch document followed by the staff meeting document. The lunch document will always be returned first, regardless of what else is added to the collection (unless other documents are added with MongoMinKey in their "doBy" field).

Смотрите также

  • MongoMaxKey


The MongoMaxKey class

(PECL mongo >= 1.0.2)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\MaxKey

Введение

MongoMaxKey is an special type used by the database that compares greater than all other possible BSON values. Thus, if a query is sorted by a given field in ascending order, any document with a MongoMaxKey as its value will be returned last.

MongoMaxKey has no associated fields, methods, or constants. It is merely the "greatest" value that can be represented in the database.

Замечание: MongoMaxKey is used internally by MongoDB for indexing and sharding. There is generally no reason to use this class in an application.

Обзор классов

MongoMaxKey {
}

Using MongoMaxKey as a value

<?php

$collection->insert(array("task" => "dishes", "doBy" => new MongoMaxKey));
$collection->insert(array("task" => "staff meeting", "doBy" => new MongoDate(strtotime("+4 days"))));

$cursor = $collection->find()->sort(array("doBy" => 1));

?>

The cursor will return the staff meeting document followed by the dishes document. The dishes document will always be returned last, regardless of what else is added to the collection (unless other documents are added with MongoMaxKey in their "doBy" field).

Смотрите также

  • MongoMinKey


The MongoTimestamp class

(PECL mongo >=1.0.1)

Внимание

Расширение, задающее этот класс, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Timestamp

Введение

MongoTimestamp is an internal type used by MongoDB for replication and sharding. It consists of a 4-byte timestamp (i.e. seconds since the epoch) and a 4-byte increment. This type is not intended for storing time or date values (e.g. a "createdAt" field on a document).

Замечание: Unless you are writing an application that interacts with MongoDB's replication oplog or sharding internals: stop, go directly to MongoDate, do not pass go, and do not collect 200 dollars. This is not the class you are looking for.

Обзор классов

MongoTimestamp {
/* Fields */
public int $sec = 0 ;
public int $inc = 0 ;
/* Методы */
public __construct ([ int $sec = time() [, int $inc ]] )
public string __toString ( void )
}

Содержание

  • MongoTimestamp::__construct — Creates a new timestamp.
  • MongoTimestamp::__toString — Returns a string representation of this timestamp


Creates a new timestamp.

  • « MongoTimestamp
  • MongoTimestamp::__toString »
  • PHP Manual
  • MongoTimestamp
  • Creates a new timestamp.

MongoTimestamp::__construct

(PECL mongo >= 1.0.1)

MongoTimestamp::__construct — Creates a new timestamp.

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Timestamp::__construct()

Описание

public MongoTimestamp::__construct ([ int $sec = time() [, int $inc ]] )

Creates a new timestamp. If no parameters are given, the current time is used and the increment is automatically provided. The increment is set to 0 when the module is loaded and is incremented every time this constructor is called (without the $inc parameter passed in).

Список параметров

sec

Number of seconds since the epoch (i.e. 1 Jan 1970 00:00:00.000 UTC).

inc

Increment.

Возвращаемые значения

Returns this new timestamp.

Смотрите также

  • MongoTimestamp::__toString() - Returns a string representation of this timestamp


Returns a string representation of this timestamp

  • « MongoTimestamp::__construct
  • Классы GridFS »
  • PHP Manual
  • MongoTimestamp
  • Returns a string representation of this timestamp

MongoTimestamp::__toString

(PECL mongo >= 1.0.1)

MongoTimestamp::__toString — Returns a string representation of this timestamp

Расширение, задающее этот метод, объявлено устаревшим. Вместо него используйте расширение MongoDB. Есть такие альтернативы:

  • MongoDB\BSON\Timestamp::__toString()

Описание

public string MongoTimestamp::__toString ( void )

Returns the "sec" field of this timestamp.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The seconds since epoch represented by this timestamp.


  • « MongoTimestamp::__toString
  • MongoGridFS »
  • PHP Manual
  • Mongo
  • Классы GridFS

Классы GridFS

Содержание

  • MongoGridFS
  • MongoGridFSFile
  • MongoGridFSCursor


The MongoGridFS class

(PECL mongo >=0.9.0)

Введение

Utilities for storing and retrieving files from the database.

GridFS is a storage specification all supported drivers implement. Basically, it defines two collections: files, for file metadata, and chunks, for file content. If the file is large, it will automatically be split into smaller chunks and each chunk will be saved as a document in the chunks collection.

Each document in the files collection contains the filename, upload date, and md5 hash. It also contains a unique _id field, which can be used to query the chunks collection for the file's content. Each document in the chunks collection contains a chunk of binary data, a files_id field that matches its file's _id, and the position of this chunk in the overall file.

For example, the files document is something like:

<?php
array("_id" => 123456789, "filename" => "foo.txt", "chunkSize" => 3, "length" => 12);
?>
and the chunks documents look like:
<?php
array("files_id" => 123456789, "n" => 0, "data" => new MongoBinData("abc"));
array("files_id" => 123456789, "n" => 1, "data" => new MongoBinData("def"));
array("files_id" => 123456789, "n" => 2, "data" => new MongoBinData("ghi"));
array("files_id" => 123456789, "n" => 3, "data" => new MongoBinData("jkl"));
?>
Of course, the default chunk size is thousands of bytes, but that makes an unwieldy example.

Inter-Language Compatibility

You should be able to use any files created by MongoGridFS with any other drivers, and vice versa. However, some drivers expect that all metadata associated with a file be in a "metadata" field. If you're going to be using other languages, it's a good idea to wrap info you might want them to see in a "metadata" field. For example, instead of:

<?php

$grid->storeFile("somefile.txt", array("date" => new MongoDate()));

?>

use something like:

<?php

$grid->storeFile("somefile.txt", array("metadata" => array("date" => new MongoDate())));

?>

The MongoGridFS Family

MongoGridFS represents the files and chunks collections. MongoGridFS extends MongoCollection, and an instance of MongoGridFS has access to all of MongoCollection methods, which act on the files collection:

<?php

$grid = $db->getGridFS();
$grid->update(array("filename" => "foo"), $newObj); // update on the files collection

?>

Another example of manipulating metadata:

<?php

// save a file
$id = $grid->storeFile("game.tgz");
$game = $grid->findOne();

// add a downloads counter
$game->file['downloads'] = 0;
$grid->save($game->file);

// increment the counter
$grid->update(array("_id" => $id), array('$inc' => array("downloads" => 1)));

?>

You can also access the chunks collection from an instance of MongoGridFS:

<?php

  $chunks = $grid->chunks; // $chunks is a normal MongoCollection
$chunks->insert(array("x" => 4));

?>

There are some methods for MongoGridFS with the same name as MongoCollection methods, that behave slightly differently. For example, MongoGridFS::remove() will remove any objects that match the criteria from the files collection and their content from the chunks collection.

To store something new in GridFS, there are a couple options. If you have a filename, you can say:

<?php

$grid->storeFile($filename, array("whatever" => "metadata", "you" => "want"));

?>

If you have a string of bytes that isn't a file, you can also store that using MongoGridFS::storeBytes():

<?php

$grid->storeBytes($bytes, array("whatever" => "metadata", "you" => "want"));

?>

Querying a MongoGridFS collection returns a MongoGridFSCursor, which behaves like a normal MongoCursor except that it returns MongoGridFSFiles instead of associative arrays.

MongoGridFSFiles can be written back to disc using MongoGridFSFile::write() or retrieved in memory using MongoGridFSFile::getBytes(). There is currently no method that automatically streams chunks, but it would be fairly easy to write by querying the $grid->chunks collection.

MongoGridFSFile objects contain a field file which contains any file metadata.

Обзор классов

extends MongoCollection {
/* Fields */
public MongoCollection $chunks = NULL ;
protected string $filesName = NULL ;
protected string $chunksName = NULL ;
/* Методы */
public __construct ( MongoDB $db [, string $prefix = "fs" [, mixed $chunks = "fs" ]] )
public bool|array delete ( mixed $id )
public array drop ( void )
public MongoGridFSCursor find ([ array $query = array() [, array $fields = array() ]] )
public MongoGridFSFile findOne ([ mixed $query = array() [, mixed $fields = array() ]] )
public MongoGridFSFile get ( mixed $id )
public mixed put ( string $filename [, array $metadata = array() [, array $options = array() ]] )
public bool|array remove ([ array $criteria = array() [, array $options = array() ]] )
public mixed storeBytes ( string $bytes [, array $metadata = array() [, array $options = array() ]] )
public mixed storeFile ( string|resource $filename [, array $metadata = array() [, array $options = array() ]] )
public mixed storeUpload ( string $name [, array $metadata ] )
}

Смотрите также

  • MongoDB core docs on » GridFS
  • LightCube Solutions blog post on » saving user uploads
  • LightCube Solutions blog post on » adding metadata to files

Содержание

  • MongoGridFS::__construct — Creates new file collections
  • MongoGridFS::delete — Remove a file and its chunks from the database
  • MongoGridFS::drop — Drops the files and chunks collections
  • MongoGridFS::find — Queries for files
  • MongoGridFS::findOne — Returns a single file matching the criteria
  • MongoGridFS::get — Retrieve a file from the database
  • MongoGridFS::put — Stores a file in the database
  • MongoGridFS::remove — Remove files and their chunks from the database
  • MongoGridFS::storeBytes — Stores a string of bytes in the database
  • MongoGridFS::storeFile — Stores a file in the database
  • MongoGridFS::storeUpload — Stores an uploaded file in the database


Creates new file collections

  • « MongoGridFS
  • MongoGridFS::delete »
  • PHP Manual
  • MongoGridFS
  • Creates new file collections

MongoGridFS::__construct

(PECL mongo >=0.9.0)

MongoGridFS::__construct — Creates new file collections

Описание

public MongoGridFS::__construct ( MongoDB $db [, string $prefix = "fs" [, mixed $chunks = "fs" ]] )

Files as stored across two collections, the first containing file meta information, the second containing chunks of the actual file. By default, fs.files and fs.chunks are the collection names used.

Use one argument to specify a prefix other than "fs":

$fs = new MongoGridFS($db, "myfiles");
uses myfiles.files and myfiles.chunks collections.

Список параметров

db

Database.

files

Optional collection name prefix.


Remove a file and its chunks from the database

  • « MongoGridFS::__construct
  • MongoGridFS::drop »
  • PHP Manual
  • MongoGridFS
  • Remove a file and its chunks from the database

MongoGridFS::delete

(PECL mongo >=1.0.8)

MongoGridFS::delete — Remove a file and its chunks from the database

Описание

public bool|array MongoGridFS::delete ( mixed $id )

Замечание:

MongoGridFS::delete() is a convenience method for calling MongoGridFS::remove() with specific criteria and default options parameters.

Список параметров

id

_id of the file to remove.

Возвращаемые значения

Returns an array containing the status of the removal (with respect to the files collection) if a write concern is applied. Otherwise, returns TRUE.

Fields in the status array are described in the documentation for MongoCollection::insert().

Ошибки

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.


Drops the files and chunks collections

  • « MongoGridFS::delete
  • MongoGridFS::find »
  • PHP Manual
  • MongoGridFS
  • Drops the files and chunks collections

MongoGridFS::drop

(PECL mongo >=0.9.0)

MongoGridFS::drop — Drops the files and chunks collections

Описание

public array MongoGridFS::drop ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The database response.


Queries for files

  • « MongoGridFS::drop
  • MongoGridFS::findOne »
  • PHP Manual
  • MongoGridFS
  • Queries for files

MongoGridFS::find

(PECL mongo >=0.9.0)

MongoGridFS::find — Queries for files

Описание

 public MongoGridFSCursor MongoGridFS::find
  ([ array $query = array()
 [, array $fields = array()
]] )

Список параметров

query

The query.

fields

Fields to return.

Возвращаемые значения

A MongoGridFSCursor.


Returns a single file matching the criteria

  • « MongoGridFS::find
  • MongoGridFS::get »
  • PHP Manual
  • MongoGridFS
  • Returns a single file matching the criteria

MongoGridFS::findOne

(PECL mongo >=0.9.0)

MongoGridFS::findOne — Returns a single file matching the criteria

Описание

 public MongoGridFSFile MongoGridFS::findOne
  ([ mixed $query = array()
 [, mixed $fields = array()
]] )

Список параметров

query

The filename or criteria for which to search.

Возвращаемые значения

Returns a MongoGridFSFile or NULL.

Примеры

Пример #1 MongoGridFS::findOne() example

Example demonstrating how to find a single file from the MongoGridFS.

<?php

$downloads = $mongo->my_db->getGridFS('downloads');

$downloads->storeFile('filename.tgz');

$download = $downloads->findOne('filename.tgz'); // instance of MongoGridFSFile

print_r($download);
?>

See MongoGridFSFile for more information about how to work with files.

Результатом выполнения данного примера будет что-то подобное:

MongoGridFSFile Object
(
    [file] => Array
        (
            [_id] => MongoId Object
                (
                )

            [filename] => filename.tgz
            [uploadDate] => MongoDate Object
                (
                    [sec] => 1274288014
                    [usec] => 467000
                )

            [chunkSize] => 262144
            [md5] => d41d8cd98f00b204e9800998ecf8427e
        )

    [gridfs:protected] => MongoGridFS Object
        (
            [chunks] => MongoCollection Object
                (
                )

            [filesName:protected] => downloads.files
            [chunksName:protected] => downloads.chunks
        )

)


Retrieve a file from the database

  • « MongoGridFS::findOne
  • MongoGridFS::put »
  • PHP Manual
  • MongoGridFS
  • Retrieve a file from the database

MongoGridFS::get

(PECL mongo >=1.0.8)

MongoGridFS::get — Retrieve a file from the database

Описание

public MongoGridFSFile MongoGridFS::get ( mixed $id )

Список параметров

id

_id of the file to find.

Возвращаемые значения

Returns the file, if found, or NULL.


Stores a file in the database

  • « MongoGridFS::get
  • MongoGridFS::remove »
  • PHP Manual
  • MongoGridFS
  • Stores a file in the database

MongoGridFS::put

(PECL mongo >=1.0.8)

MongoGridFS::put — Stores a file in the database

Описание

public mixed MongoGridFS::put ( string $filename [, array $metadata = array() [, array $options = array() ]] )

Замечание:

MongoGridFS::put() is an alias of MongoGridFS::storeFile().

Список параметров

filename

Name of the file to store.

metadata

Other metadata fields to include in the file document.

Замечание:

Данные поля могут перезаписать поля, автоматически созданные драйвером, как указано в основной документации MongoDB » коллекции файлов. В качестве практического применения данного поведения можно указать собственный chunkSize или _id для файла.

options

An array of options for the insert operations executed against the chunks and files collections. See MongoCollection::insert() for documentation on these these options.

Возвращаемые значения

Возвращает _id сохраненного документа. Это будет сгенерированный MongoId, за исключением случая, когда _id был явно указан в параметре metadata.

Ошибки

Throws MongoGridFSException if there is an error reading filename or inserting into the chunks or files collections.

Смотрите также

  • MongoGridFS::storeBytes() - Stores a string of bytes in the database
  • MongoGridFS::storeFile() - Stores a file in the database
  • MongoGridFS::storeUpload() - Stores an uploaded file in the database
  • MongoDB core docs on » GridFS


Remove files and their chunks from the database

  • « MongoGridFS::put
  • MongoGridFS::storeBytes »
  • PHP Manual
  • MongoGridFS
  • Remove files and their chunks from the database

MongoGridFS::remove

(PECL mongo >=0.9.0)

MongoGridFS::remove — Remove files and their chunks from the database

Описание

 public bool|array MongoGridFS::remove
  ([ array $criteria = array()
 [, array $options = array()
]] )

Список параметров

criteria

The filename or criteria for which to search.

options

An array of options for the remove operations executed against the chunks and files collections. See MongoCollection::remove() for documentation on these options.

Возвращаемые значения

Returns an array containing the status of the removal (with respect to the files collection) if the "w" option is set. Otherwise, returns TRUE.

Fields in the status array are described in the documentation for MongoCollection::insert().

Ошибки

Исключение MongoCursorException бросается, если установлена опция "w" и не прошла запись.

Исключение MongoCursorTimeoutException бросается, если опция "w" установлена в значение больше одного и операция заняла больше, чем MongoCursor::$timeout миллисекунд. При этом операция на сервере не прерывается, так как это ограничение времени работает на клиентской стороне. Операция в миллисекундах в MongoCollection::$wtimeout.


Stores a string of bytes in the database

  • « MongoGridFS::remove
  • MongoGridFS::storeFile »
  • PHP Manual
  • MongoGridFS
  • Stores a string of bytes in the database

MongoGridFS::storeBytes

(PECL mongo >=0.9.2)

MongoGridFS::storeBytes — Stores a string of bytes in the database

Описание

public mixed MongoGridFS::storeBytes ( string $bytes [, array $metadata = array() [, array $options = array() ]] )

Список параметров

bytes

String of bytes to store.

metadata

Other metadata fields to include in the file document.

Замечание:

Данные поля могут перезаписать поля, автоматически созданные драйвером, как указано в основной документации MongoDB » коллекции файлов. В качестве практического применения данного поведения можно указать собственный chunkSize или _id для файла.

options

An array of options for the insert operations executed against the chunks and files collections. See MongoCollection::insert() for documentation on these these options.

Возвращаемые значения

Возвращает _id сохраненного документа. Это будет сгенерированный MongoId, за исключением случая, когда _id был явно указан в параметре metadata.

Ошибки

Throws MongoGridFSException if there is an error inserting into the chunks or files collections.

Примеры

Пример #1 MongoGridFS::storeBytes() with additional metadata

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$bytes = 'abcdefghijklmnopqrstuvwxyz';
$id = $gridfs->storeBytes($bytes, array('_id' => 'alphabet'));
$gridfsFile = $gridfs->get($id);

var_dump($gridfsFile->file);
?>

Результатом выполнения данного примера будет что-то подобное:

array(7) {
  ["_id"]=>
  string(8) "alphabet"
  ["uploadDate"]=>
  object(MongoDate)#7 (0) {
  }
  ["length"]=>
  int(26)
  ["chunkSize"]=>
  int(262144)
  ["md5"]=>
  string(32) "c3fcd3d76192e4007dfb496cca67e13b"
}

Смотрите также

  • MongoGridFS::put() - Stores a file in the database
  • MongoGridFS::storeFile() - Stores a file in the database
  • MongoGridFS::storeUpload() - Stores an uploaded file in the database
  • MongoDB core docs on » GridFS


Stores a file in the database

  • « MongoGridFS::storeBytes
  • MongoGridFS::storeUpload »
  • PHP Manual
  • MongoGridFS
  • Stores a file in the database

MongoGridFS::storeFile

(PECL mongo >=0.9.0)

MongoGridFS::storeFile — Stores a file in the database

Описание

public mixed MongoGridFS::storeFile ( string|resource $filename [, array $metadata = array() [, array $options = array() ]] )

Список параметров

filename

Name of the file or a readable stream to store.

metadata

Other metadata fields to include in the file document.

Замечание:

Данные поля могут перезаписать поля, автоматически созданные драйвером, как указано в основной документации MongoDB » коллекции файлов. В качестве практического применения данного поведения можно указать собственный chunkSize или _id для файла.

options

An array of options for the insert operations executed against the chunks and files collections. See MongoCollection::insert() for documentation on these these options.

Возвращаемые значения

Возвращает _id сохраненного документа. Это будет сгенерированный MongoId, за исключением случая, когда _id был явно указан в параметре metadata.

Ошибки

Throws MongoGridFSException if there is an error reading filename or inserting into the chunks or files collections.

Примеры

Пример #1 MongoGridFS::storeFile() with additional metadata

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$id = $gridfs->storeFile('example.txt', array('contentType' => 'plain/text'));
$gridfsFile = $gridfs->get($id);

var_dump($gridfsFile->file);
?>

Результатом выполнения данного примера будет что-то подобное:

array(7) {
  ["_id"]=>
  object(MongoId)#6 (0) {
  }
  ["contentType"]=>
  string(10) "plain/text"
  ["filename"]=>
  string(11) "example.txt"
  ["uploadDate"]=>
  object(MongoDate)#7 (0) {
  }
  ["length"]=>
  int(26)
  ["chunkSize"]=>
  int(262144)
  ["md5"]=>
  string(32) "c3fcd3d76192e4007dfb496cca67e13b"
}

Смотрите также

  • MongoGridFS::put() - Stores a file in the database
  • MongoGridFS::storeBytes() - Stores a string of bytes in the database
  • MongoGridFS::storeUpload() - Stores an uploaded file in the database
  • MongoDB core docs on » GridFS


Stores an uploaded file in the database

  • « MongoGridFS::storeFile
  • MongoGridFSFile »
  • PHP Manual
  • MongoGridFS
  • Stores an uploaded file in the database

MongoGridFS::storeUpload

(PECL mongo >=0.9.0)

MongoGridFS::storeUpload — Stores an uploaded file in the database

Описание

public mixed MongoGridFS::storeUpload ( string $name [, array $metadata ] )

Список параметров

name

The name of the uploaded file(s) to store. This should correspond to the file field's name attribute in the HTML form.

metadata

Other metadata fields to include in the file document.

Замечание:

Данные поля могут перезаписать поля, автоматически созданные драйвером, как указано в основной документации MongoDB » коллекции файлов. В качестве практического применения данного поведения можно указать собственный chunkSize или _id для файла.

Замечание:

The filename field will be populated with the client's filename (e.g. $_FILES['foo']['name']).

Возвращаемые значения

Возвращает _id сохраненного документа. Это будет сгенерированный MongoId, за исключением случая, когда _id был явно указан в параметре metadata.

Замечание:

If multiple files are uploaded using the same field name, this method will not return anything; however, the files themselves will still be processed.

Ошибки

Throws MongoGridFSException if there is an error reading the uploaded file(s) or inserting into the chunks or files collections.

Список изменений

Версия | Описание
1.2.5 | Changed second parameter to an array of metadata. Pre-1.2.5, the second parameter was an optional string overriding the filename.

Примеры

Пример #1 MongoGridFS::storeUpload() HTML form example

Suppose you have the following HTML form:

<form method="POST" enctype="multipart/form-data">
    <label for="username">Username:</label>
    <input type="text" name="username" id="username" />

    <label for="pic">Please upload a profile picture:</label>
    <input type="file" name="pic" id="pic" />

    <input type="submit" />
</form>

If you wanted to store the uploaded image in MongoDB, you could do the following in the script handling the form submission:

<?php
$m = new MongoClient();
$gridfs = $m->selectDB('test')->getGridFS();

$gridfs->storeUpload('pic', array('username' => $_POST['username']));
?>

Смотрите также

  • MongoGridFS::put() - Stores a file in the database
  • MongoGridFS::storeBytes() - Stores a string of bytes in the database
  • MongoGridFS::storeFile() - Stores a file in the database
  • MongoDB core docs on » GridFS


The MongoGridFSFile class

(PECL mongo >=0.9.0)

Введение

A database file object.

Обзор классов

MongoGridFSFile {
/* Fields */
public array $file = NULL ;
protected MongoGridFS $gridfs = NULL ;
/* Методы */
public MongoGridfsFile::__construct ( MongoGridFS $gridfs , array $file )
public string getBytes ( void )
public string getFilename ( void )
public resource getResource ( void )
public int getSize ( void )
public int write ([ string $filename = NULL ] )
}

Содержание

  • MongoGridfsFile::__construct — Create a new GridFS file
  • MongoGridFSFile::getBytes — Returns this file's contents as a string of bytes
  • MongoGridFSFile::getFilename — Returns this file's filename
  • MongoGridFSFile::getResource — Returns a resource that can be used to read the stored file
  • MongoGridFSFile::getSize — Returns this file's size
  • MongoGridFSFile::write — Writes this file to the filesystem


Create a new GridFS file

  • « MongoGridFSFile
  • MongoGridFSFile::getBytes »
  • PHP Manual
  • MongoGridFSFile
  • Create a new GridFS file

MongoGridfsFile::__construct

(PECL mongo >=0.9.0)

MongoGridfsFile::__construct — Create a new GridFS file

Описание

public MongoGridfsFile::__construct ( MongoGridFS $gridfs , array $file )

Список параметров

gridfs

The parent MongoGridFS instance.

file

A file from the database.

Возвращаемые значения

Returns a new MongoGridFSFile.


Returns this file's contents as a string of bytes

  • « MongoGridfsFile::__construct
  • MongoGridFSFile::getFilename »
  • PHP Manual
  • MongoGridFSFile
  • Returns this file's contents as a string of bytes

MongoGridFSFile::getBytes

(PECL mongo >=0.9.0)

MongoGridFSFile::getBytes — Returns this file's contents as a string of bytes

Описание

public string MongoGridFSFile::getBytes ( void )

Warning: this will load the file into memory. If the file is bigger than your memory, this will cause problems!

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string of the bytes in the file.

Примеры

Пример #1 MongoGridFSFile::getBytes() example

<?php

$images = $db->my_db->getGridFS('images');

$image = $images->findOne('jwage.png');

header('Content-type: image/png;');
echo $image->getBytes();
?>


Returns this file's filename

  • « MongoGridFSFile::getBytes
  • MongoGridFSFile::getResource »
  • PHP Manual
  • MongoGridFSFile
  • Returns this file's filename

MongoGridFSFile::getFilename

(PECL mongo >=0.9.0)

MongoGridFSFile::getFilename — Returns this file's filename

Описание

public string MongoGridFSFile::getFilename ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the filename.


Returns a resource that can be used to read the stored file

  • « MongoGridFSFile::getFilename
  • MongoGridFSFile::getSize »
  • PHP Manual
  • MongoGridFSFile
  • Returns a resource that can be used to read the stored file

MongoGridFSFile::getResource

(PECL mongo >=1.3.0)

MongoGridFSFile::getResource — Returns a resource that can be used to read the stored file

Описание

public resource MongoGridFSFile::getResource ( void )

This method returns a stream resource that can be used with all file functions in PHP that deal with reading files. The contents of the file are pulled out of MongoDB on the fly, so that the whole file does not have to be loaded into memory first.

At most two GridFSFile chunks will be loaded in memory.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a resource that can be used to read the file with

Примеры

Пример #1 MongoGridFSFile::getResource() example

<?php
$m = new Mongo;
$images = $m->my_db->getGridFS('images');

$image = $images->findOne('mongo.png');

header('Content-type: image/png;');
$stream = $image->getResource();

while (!feof($stream)) {
    echo fread($stream, 8192);
}
?>


Returns this file's size

  • « MongoGridFSFile::getResource
  • MongoGridFSFile::write »
  • PHP Manual
  • MongoGridFSFile
  • Returns this file's size

MongoGridFSFile::getSize

(PECL mongo >=0.9.0)

MongoGridFSFile::getSize — Returns this file's size

Описание

public int MongoGridFSFile::getSize ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns this file's size


Writes this file to the filesystem

  • « MongoGridFSFile::getSize
  • MongoGridFSCursor »
  • PHP Manual
  • MongoGridFSFile
  • Writes this file to the filesystem

MongoGridFSFile::write

(PECL mongo >=0.9.0)

MongoGridFSFile::write — Writes this file to the filesystem

Описание

public int MongoGridFSFile::write ([ string $filename = NULL ] )

Список параметров

filename

The location to which to write the file. If none is given, the stored filename will be used.

Возвращаемые значения

Returns the number of bytes written.

Примеры

Пример #1 MongoGridFSFile::write() example

<?php

$images = $db->my_db->getGridFS('images');

$image = $images->findOne('jwage.png');
$image->write('/path/to/write/jwage.png');
?>


The MongoGridFSCursor class

(PECL mongo >=0.9.0)

Введение

Cursor for database file results.

Обзор классов

extends MongoCursor {
/* Fields */
protected MongoGridFS $gridfs = NULL ;
/* Методы */
public __construct ( MongoGridFS $gridfs , resource $connection , string $ns , array $query , array $fields )
public MongoGridFSFile current ( void )
public MongoGridFSFile getNext ( void )
public string key ( void )
}

Содержание

  • MongoGridFSCursor::__construct — Create a new cursor
  • MongoGridFSCursor::current — Returns the current file
  • MongoGridFSCursor::getNext — Return the next file to which this cursor points, and advance the cursor
  • MongoGridFSCursor::key — Returns the current result's filename


Create a new cursor

  • « MongoGridFSCursor
  • MongoGridFSCursor::current »
  • PHP Manual
  • MongoGridFSCursor
  • Create a new cursor

MongoGridFSCursor::__construct

(PECL mongo >=0.9.0)

MongoGridFSCursor::__construct — Create a new cursor

Описание

public MongoGridFSCursor::__construct ( MongoGridFS $gridfs , resource $connection , string $ns , array $query , array $fields )

Список параметров

gridfs

Related GridFS collection.

connection

Database connection.

ns

Full name of database and collection.

query

Database query.

fields

Fields to return.

Возвращаемые значения

Returns the new cursor.


Returns the current file

  • « MongoGridFSCursor::__construct
  • MongoGridFSCursor::getNext »
  • PHP Manual
  • MongoGridFSCursor
  • Returns the current file

MongoGridFSCursor::current

(PECL mongo >=0.9.0)

MongoGridFSCursor::current — Returns the current file

Описание

public MongoGridFSFile MongoGridFSCursor::current ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current file.


Return the next file to which this cursor points, and advance the cursor

  • « MongoGridFSCursor::current
  • MongoGridFSCursor::key »
  • PHP Manual
  • MongoGridFSCursor
  • Return the next file to which this cursor points, and advance the cursor

MongoGridFSCursor::getNext

(PECL mongo >=0.9.0)

MongoGridFSCursor::getNext — Return the next file to which this cursor points, and advance the cursor

Описание

public MongoGridFSFile MongoGridFSCursor::getNext ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the next file.


Returns the current result's filename

  • « MongoGridFSCursor::getNext
  • Batch Classes »
  • PHP Manual
  • MongoGridFSCursor
  • Returns the current result's filename

MongoGridFSCursor::key

(PECL mongo >=0.9.0)

MongoGridFSCursor::key — Returns the current result's filename

Описание

public string MongoGridFSCursor::key ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current result's _id as a string.

Список изменений

Версия | Описание
1.3.0 | The document's _id is returned as a string value, since the key should be unique. Pre-1.3.0, filename was returned.


Batch Classes

Содержание

  • MongoWriteBatch
  • MongoInsertBatch
  • MongoUpdateBatch
  • MongoDeleteBatch


The MongoWriteBatch class

(PECL mongo >=1.5.0)

Введение

MongoWriteBatch is the base class for the MongoInsertBatch, MongoUpdateBatch and MongoDeleteBatch classes.

MongoWriteBatch allows you to "batch up" multiple operations (of same type) and shipping them all to MongoDB at the same time. This can be especially useful when operating on many documents at the same time to reduce roundtrips.

Prior to version 1.5.0 of the driver it was possible to use MongoCollection::batchInsert(), however, as of 1.5.0 that method is now discouraged.

Note: This class is only available when talking to MongoDB 2.6.0 (and later) servers. It will throw MongoProtocolException if attempting to use it on older MongoDB servers.

Обзор классов

MongoWriteBatch {
/* Константы */
const int COMMAND_INSERT = 1 ;
const int COMMAND_UPDATE = 2 ;
const int COMMAND_DELETE = 3 ;
/* Методы */
protected __construct ( MongoCollection $collection [, string $batch_type [, array $write_options ]] )
public bool add ( array $item )
final public array execute ( array $write_options )
}

MongoWriteBatch types

MongoWriteBatch::COMMAND_INSERT

Create an Insert Write Batch

MongoWriteBatch::COMMAND_UPDATE

Create an Update Write Batch

MongoWriteBatch::COMMAND_DELETE

Create an Delete Write Batch

Описание

When executing a batch, by calling MongoWriteBatch::execute(), MongoWriteBatch will send over » maxWriteBatchSize (defaults to 1000) documents or up to » maxBsonObjectSize (defaults to 16777216 bytes), whichever comes first.

Замечание:

Documents will never be partially transferred. When adding documents to the batch, that overflows the limit, a new batch will be created and the document put into the new batch.

Ошибки

  • Exception on parameter parsing failures
  • Exception on argument validation errors (e.g. missing keys)
  • MongoProtocolException when talking to MongoDB server older then 2.6.0.
  • MongoProtocolException on socket errors.
  • MongoWriteConcernException when a write fails due to WriteConcerns

Примеры

Пример #1 MongoWriteBatch example

Adding documents to a Insert batch and then execute it

<?php
$mc = new MongoClient("localhost");

$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

Результат выполнения данного примера:

array(2) {
  ["nInserted"]=>
  int(3)
  ["ok"]=>
  bool(true)
}

Содержание

  • MongoWriteBatch::add — Adds a write operation to a batch
  • MongoWriteBatch::__construct — Creates a new batch of write operations
  • MongoWriteBatch::execute — Executes a batch of write operations


Adds a write operation to a batch

  • « MongoWriteBatch
  • MongoWriteBatch::__construct »
  • PHP Manual
  • MongoWriteBatch
  • Adds a write operation to a batch

MongoWriteBatch::add

(PECL mongo >= 1.5.0)

MongoWriteBatch::add — Adds a write operation to a batch

Описание

public bool MongoWriteBatch::add ( array $item )

Adds a write operation to the batch.

If $item causes the batch to exceed the » maxWriteBatchSize or » maxBsonObjectSize limits, the driver will internally split the batches into multiple write commands upon calling MongoWriteBatch::execute().

Список параметров

item

An array that describes a write operation. The structure of this value depends on the batch's operation type.

Batch type | Argument expectation
MongoWriteBatch::COMMAND_INSERT | The document to add.
MongoWriteBatch::COMMAND_UPDATE

Raw update operation.

Required keys are "q" and "u", which correspond to the $criteria and $new_object parameters of MongoCollection::update(), respectively.

Optional keys are "multi" and "upsert", which correspond to the "multiple" and "upsert" options for MongoCollection::update(), respectively. If unspecified, both options default to FALSE.
MongoWriteBatch::COMMAND_DELETE

Raw delete operation.

Required keys are: "q" and "limit", which correspond to the $criteria parameter and "justOne" option of MongoCollection::remove(), respectively.

The "limit" option is an integer; however, MongoDB only supports 0 (i.e. remove all matching documents) and 1 (i.e. remove at most one matching document) at this time.

Возвращаемые значения

Returns TRUE on success and throws an exception on failure.

Ошибки

  • Exception on parameter parsing failures
  • Exception on argument validation errors (e.g. missing keys)

Примеры

Пример #1 MongoWriteBatch::add() example

Batching up multiple insert operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$batch->execute(array("w" => 1));
?>

Пример #2 MongoWriteBatch::add() example

Batching up multiple update operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "u" => array('$set' => array("try" => 1)),
    "multi"  => false, /* default value */
    "upsert" => false, /* default value */
);
$item2 = array(
    "q" => array("is" => "working"),
    "u" => array('$set' => array("try" => 2)),
    "multi" => true,
);
$item3 = array(
    "q" => array("created" => "new-document"),
    "u" => array('$set' => array("try" => 3)),
    "upsert" => true,
);

$batch = new MongoUpdateBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->add($item3);
$batch->execute(array("w" => 1));

?>

Пример #3 MongoWriteBatch::add() example

Batching up multiple delete operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "limit" => 1,
);
$item2 = array(
    "q" => array("try" => 3),
    "limit" => 1,
);

$batch = new MongoDeleteBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->execute(array("w" => 1));
?>


Creates a new batch of write operations

  • « MongoWriteBatch::add
  • MongoWriteBatch::execute »
  • PHP Manual
  • MongoWriteBatch
  • Creates a new batch of write operations

MongoWriteBatch::__construct

(PECL mongo >= 1.5.0)

MongoWriteBatch::__construct — Creates a new batch of write operations

Описание

protected MongoWriteBatch::__construct ( MongoCollection $collection [, string $batch_type [, array $write_options ]] )

Constructs a new MongoWriteBatch.

Замечание:

This is a protected constructor. Please use one of the classes inheriting MongoWriteBatch.

Список параметров

collection

Объект MongoCollection для выполняемого пакета. Его опции контроля записи будут скопированы и использованы по умолчанию, если не будут переданы через $write_options или MongoWriteBatch::execute().

batch_type

One of:

  • 0 - make an MongoWriteBatch::COMMAND_INSERT batch
  • 1 - make an MongoWriteBatch::COMMAND_UPDATE batch
  • 2 - make a MongoWriteBatch::COMMAND_DELETE batch

write_options

Массив опций записи.

ключ | значение
w (int|string) | Значения контроля записи
wtimeout (int) | Максимальное время ожидания репликации
ordered | Определяет, должна ли MongoDB применять этот пакет в определенном по порядку. Упорядоченная запись запускается последовательно (по одному элементу за раз) и запись прекращается после первой же ошибки. Неупорядоченная запись может запускаться параллельно и ошибки не приводят к остановке записи. По умолчанию TRUE
j (bool) | Ожидать журналирование на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)
fsync (bool) | Ожидать fsync на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)

Возвращаемые значения

A new MongoWriteBatch of type batch_type.

Смотрите также

  • MongoInsertBatch
  • MongoUpdateBatch
  • MongoDeleteBatch


Executes a batch of write operations

  • « MongoWriteBatch::__construct
  • MongoInsertBatch »
  • PHP Manual
  • MongoWriteBatch
  • Executes a batch of write operations

MongoWriteBatch::execute

(PECL mongo >= 1.5.0)

MongoWriteBatch::execute — Executes a batch of write operations

Описание

final public array MongoWriteBatch::execute ( array $write_options )

Executes the batch of write operations.

Список параметров

write_options

See MongoWriteBatch::__construct.

Возвращаемые значения

Returns an array containing statistical information for the full batch. If the batch had to be split into multiple batches, the return value will aggregate the values from individual batches and return only the totals.

If the batch was empty, an array containing only the 'ok' field is returned (as TRUE) although nothing will be shipped over the wire (NOOP).

Array key | Value meaning | Returned for batch type
nInserted | Number of inserted documents | MongoWriteBatch::COMMAND_INSERT batch
nMatched | Number of documents matching the query criteria | MongoWriteBatch::COMMAND_UPDATE batch
nModified | Number of documents actually needed to be modied | MongoWriteBatch::COMMAND_UPDATE batch
nUpserted | Number of upserted documents | MongoWriteBatch::COMMAND_UPDATE batch
nRemoved | Number of documents removed | MongoWriteBatch::COMMAND_DELETE batch
ok | Command success indicator | All

Ошибки

A MongoWriteConcernException exception is thrown on failure.

Примеры

Пример #1 MongoWriteBatch::add() example

Batching up multiple insert operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$docs = array();
$docs[] = array("my" => "demo");
$docs[] = array("is" => "working");
$docs[] = array("pretty" => "well");

$batch = new MongoInsertBatch($collection);
foreach($docs as $document) {
    $batch->add($document);
}
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

Результат выполнения данного примера:

array(2) {
  ["nInserted"]=>
  int(3)
  ["ok"]=>
  bool(true)
}

Пример #2 MongoWriteBatch::add() example

Batching up multiple update operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "u" => array('$set' => array("try" => 1)),
    "multi"  => false, /* default value */
    "upsert" => false, /* default value */
);
$item2 = array(
    "q" => array("is" => "working"),
    "u" => array('$set' => array("try" => 2)),
    "multi" => true,
);
$item3 = array(
    "q" => array("created" => "new-document"),
    "u" => array('$set' => array("try" => 3)),
    "upsert" => true,
);

$batch = new MongoUpdateBatch($collection);
$batch->add($item1);
$batch->add($item2);
$batch->add($item3);
$retval = $batch->execute(array("w" => 1));
var_dump($retval);

?>

Результат выполнения данного примера:

array(4) {
  ["nMatched"]=>
  int(18)
  ["nModified"]=>
  int(2)
  ["nUpserted"]=>
  int(0)
  ["ok"]=>
  bool(true)
}

Пример #3 MongoWriteBatch::add() example

Batching up multiple delete operations

<?php
$mc = new MongoClient("localhost");
$collection = $mc->selectCollection("test", "test");

$item1 = array(
    "q" => array("my" => "demo"),
    "limit" => 1,
);
$item2 = array(
    "q" => array("try" => 3),
    "limit" => 1,
);

$batch = new MongoDeleteBatch($collection);
$batch->add($item1);
$batch->add($item2);
$retval = $batch->execute(array("w" => 1));
var_dump($retval);
?>

Результат выполнения данного примера:

array(2) {
  ["nRemoved"]=>
  int(1)
  ["ok"]=>
  bool(true)
}


The MongoInsertBatch class

(PECL mongo >=1.5.0)

Введение

Constructs a batch of INSERT operations. See MongoWriteBatch.

Обзор классов

MongoInsertBatch extends MongoWriteBatch {
/* Методы */
public __construct ( MongoCollection $collection [, array $write_options ] )
/* Наследуемые методы */
public bool MongoWriteBatch::add ( array $item )
final public array MongoWriteBatch::execute ( array $write_options )
}

Содержание

  • MongoInsertBatch::__construct — Description


Description

  • « MongoInsertBatch
  • MongoUpdateBatch »
  • PHP Manual
  • MongoInsertBatch
  • Description

MongoInsertBatch::__construct

(PECL mongo >= 1.5.0)

MongoInsertBatch::__construct — Description

Описание

public MongoInsertBatch::__construct ( MongoCollection $collection [, array $write_options ] )

Constructs a batch of INSERT operations. See MongoWriteBatch.

Список параметров

collection

Объект MongoCollection для выполняемого пакета. Его опции контроля записи будут скопированы и использованы по умолчанию, если не будут переданы через $write_options или MongoWriteBatch::execute().

write_options

Массив опций записи.

ключ | значение
w (int|string) | Значения контроля записи
wtimeout (int) | Максимальное время ожидания репликации
ordered | Определяет, должна ли MongoDB применять этот пакет в определенном по порядку. Упорядоченная запись запускается последовательно (по одному элементу за раз) и запись прекращается после первой же ошибки. Неупорядоченная запись может запускаться параллельно и ошибки не приводят к остановке записи. По умолчанию TRUE
j (bool) | Ожидать журналирование на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)
fsync (bool) | Ожидать fsync на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)

Возвращаемые значения

A new MongoInsertBatch.


The MongoUpdateBatch class

(PECL mongo >=1.5.0)

Введение

Constructs a batch of UPDATE operations. See MongoWriteBatch.

Обзор классов

MongoUpdateBatch extends MongoWriteBatch {
/* Методы */
public __construct ( MongoCollection $collection [, array $write_options ] )
/* Наследуемые методы */
public bool MongoWriteBatch::add ( array $item )
final public array MongoWriteBatch::execute ( array $write_options )
}

Содержание

  • MongoUpdateBatch::__construct — Description


Description

  • « MongoUpdateBatch
  • MongoDeleteBatch »
  • PHP Manual
  • MongoUpdateBatch
  • Description

MongoUpdateBatch::__construct

(PECL mongo >= 1.5.0)

MongoUpdateBatch::__construct — Description

Описание

public MongoUpdateBatch::__construct ( MongoCollection $collection [, array $write_options ] )

Constructs a batch of UPDATE operations. See MongoWriteBatch.

Список параметров

collection

Объект MongoCollection для выполняемого пакета. Его опции контроля записи будут скопированы и использованы по умолчанию, если не будут переданы через $write_options или MongoWriteBatch::execute().

write_options

Массив опций записи.

ключ | значение
w (int|string) | Значения контроля записи
wtimeout (int) | Максимальное время ожидания репликации
ordered | Определяет, должна ли MongoDB применять этот пакет в определенном по порядку. Упорядоченная запись запускается последовательно (по одному элементу за раз) и запись прекращается после первой же ошибки. Неупорядоченная запись может запускаться параллельно и ошибки не приводят к остановке записи. По умолчанию TRUE
j (bool) | Ожидать журналирование на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)
fsync (bool) | Ожидать fsync на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)

Возвращаемые значения

A new MongoUpdateBatch.


The MongoDeleteBatch class

(PECL mongo >=1.5.0)

Введение

Constructs a batch of DELETE operations. See MongoWriteBatch.

Обзор классов

MongoDeleteBatch extends MongoWriteBatch {
/* Методы */
public __construct ( MongoCollection $collection [, array $write_options ] )
/* Наследуемые методы */
public bool MongoWriteBatch::add ( array $item )
final public array MongoWriteBatch::execute ( array $write_options )
}

Содержание

  • MongoDeleteBatch::__construct — Description


Description

  • « MongoDeleteBatch
  • Дополнительно »
  • PHP Manual
  • MongoDeleteBatch
  • Description

MongoDeleteBatch::__construct

(PECL mongo >= 1.5.0)

MongoDeleteBatch::__construct — Description

Описание

public MongoDeleteBatch::__construct ( MongoCollection $collection [, array $write_options ] )

Constructs a batch of DELETE operations. See MongoWriteBatch.

Список параметров

collection

Объект MongoCollection для выполняемого пакета. Его опции контроля записи будут скопированы и использованы по умолчанию, если не будут переданы через $write_options или MongoWriteBatch::execute().

write_options

Массив опций записи.

ключ | значение
w (int|string) | Значения контроля записи
wtimeout (int) | Максимальное время ожидания репликации
ordered | Определяет, должна ли MongoDB применять этот пакет в определенном по порядку. Упорядоченная запись запускается последовательно (по одному элементу за раз) и запись прекращается после первой же ошибки. Неупорядоченная запись может запускаться параллельно и ошибки не приводят к остановке записи. По умолчанию TRUE
j (bool) | Ожидать журналирование на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)
fsync (bool) | Ожидать fsync на основном сервере (primary). Не рекомендуется, используйте вместо него опцию Контроля Записи (WriteConcern)

Возвращаемые значения

A new MongoDeleteBatch.


  • « MongoDeleteBatch::__construct
  • MongoLog »
  • PHP Manual
  • Mongo
  • Дополнительно

Дополнительно

Содержание

  • MongoLog
  • MongoPool
  • Mongo


The MongoLog class

(PECL mongo >=1.2.3)

Введение

Logging can be used to get detailed information about what the driver is doing. Logging is disabled by default, but this class allows you to activate specific levels of logging for various parts of the driver. Some examples:

<?php

// print every log message possible
MongoLog::setLevel(MongoLog::ALL); // all log levels
MongoLog::setModule(MongoLog::ALL); // all parts of the driver

// print significant events about replica set failover
MongoLog::setLevel(MongoLog::INFO);
MongoLog::setModule(MongoLog::RS);

// print info- and diagnostic-level events for replica sets and connections
MongoLog::setLevel(MongoLog::INFO|MongoLog::FINE);
MongoLog::setModule(MongoLog::RS|MongoLog::CON);

?>

Замечание:

By default, MongoLog emits all log messages as PHP notices. Depending on the SAPI you use, messages may be sent to stderr (for CLI) or the web server's error log. If, after configuring MongoLog, log messages are not appearing as expected, ensure that the E_NOTICE bit is included in error_reporting and that display_errors is on.

Обзор классов

MongoLog {
/* Константы */
const int NONE = 0 ;
const int ALL = 31 ;
level constants {
const int WARNING = 1 ;
const int INFO = 2 ;
const int FINE = 4 ;
module constants {
const int RS = 1 ;
const int POOL = 1 ;
const int CON = 2 ;
const int IO = 4 ;
const int SERVER = 8 ;
const int PARSE = 16 ;
/* Fields */
private static int $callback ;
private static int $level ;
private static int $module ;
/* Методы */
public static callable getCallback ( void )
public static int getLevel ( void )
public static int getModule ( void )
public static void setCallback ( callable $log_function )
public static void setLevel ( int $level )
public static void setModule ( int $module )
}

Предопределенные константы

MongoLog Constants

These constants can be used by both MongoLog::setLevel() and MongoLog::setModule().

MongoLog::NONE
Log nothing.
MongoLog::ALL
Log everything.

MongoLog Level Constants

These constants can be used by MongoLog::setLevel().

MongoLog::WARNING
Log events that are somewhat exceptional, but not quite worthy of an actual exception (e.g. recoverable connection errors).
MongoLog::INFO
Log events that may be of interest to administrators, but are not particularly noteworthy (e.g. option parsing, authentication steps).
MongoLog::FINE
Log most events that the driver performs (e.g. server selection, socket communication). Depending on the module being logged, this can be extremely noisy and is primarily useful for debugging.

MongoLog Module Constants

These constants can be used by MongoLog::setModule().

MongoLog::CON
Log connection activity. Creating new connections, authentication, pinging, timeouts, etc.
MongoLog::IO
Log traffic to/from the database. Unless your program is trivial, this will create an enormous number of log messages.
MongoLog::PARSE
Log parsing of the connection string and options when constructing MongoClient.
MongoLog::POOL
Previously used to log connection pool activity. This option is now a deprecated alias of MongoLog::RS.
MongoLog::RS
Log replica set activity. Failovers, read preference selection, etc.
MongoLog::SERVER
Previously used to log server status changes. This option is deprecated in favor of MongoLog::RS.

Список изменений

Версия | Описание
1.3.0 | Added MongoLog::CON and deprecated MongoLog::POOL and MongoLog::SERVER.

Содержание

  • MongoLog::getCallback — Gets the previously set callback function
  • MongoLog::getLevel — Gets the level(s) currently being logged
  • MongoLog::getModule — Gets the module(s) currently being logged
  • MongoLog::setCallback — Sets a callback function to be invoked for events
  • MongoLog::setLevel — Sets the level(s) to be logged
  • MongoLog::setModule — Sets the module(s) to be logged


Gets the previously set callback function

  • « MongoLog
  • MongoLog::getLevel »
  • PHP Manual
  • MongoLog
  • Gets the previously set callback function

MongoLog::getCallback

(PECL mongo >= 1.3.0)

MongoLog::getCallback — Gets the previously set callback function

Описание

public static callable MongoLog::getCallback ( void )

Retrieves the callback function.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the callback function, or FALSE if not set yet.

Примечания

Предостережение

This function is only available with PHP 5.3.0 and later.


Gets the level(s) currently being logged

  • « MongoLog::getCallback
  • MongoLog::getModule »
  • PHP Manual
  • MongoLog
  • Gets the level(s) currently being logged

MongoLog::getLevel

(PECL mongo >= 1.2.3)

MongoLog::getLevel — Gets the level(s) currently being logged

Описание

public static int MongoLog::getLevel ( void )

This function can be used to see which log levels are currently enabled. The returned integer may be compared with the MongoLog level constants using bitwise operators to check for specific log levels.

<?php

if (MongoLog::getLevel() & MongoLog::FINE) {
    echo "lots of logs\n";
}

if (MongoLog::getLevel() ^ MongoLog::NONE) {
    echo "logging, at least a little\n";
}

if (MongoLog::getLevel() == MongoLog::ALL) {
    echo "logging at the highest levels\n";
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the level(s) currently being logged.


Gets the module(s) currently being logged

  • « MongoLog::getLevel
  • MongoLog::setCallback »
  • PHP Manual
  • MongoLog
  • Gets the module(s) currently being logged

MongoLog::getModule

(PECL mongo >= 1.2.3)

MongoLog::getModule — Gets the module(s) currently being logged

Описание

public static int MongoLog::getModule ( void )

This function can be used to see which driver modules are currently being logged. The returned integer may be compared with the MongoLog module constants using bitwise operators to check if specific modules are being logged.

<?php

if (MongoLog::getModule() & MongoLog::RS) {
    echo "logging replica sets\n";
}

if (MongoLog::getModule() ^ MongoLog::NONE) {
    echo "logging something\n";
}

if ((MongoLog::getModule() & MongoLog::IO) == 0) {
    echo "not logging io\n";
}

?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the module(s) currently being logged.


Sets a callback function to be invoked for events

  • « MongoLog::getModule
  • MongoLog::setLevel »
  • PHP Manual
  • MongoLog
  • Sets a callback function to be invoked for events

MongoLog::setCallback

(PECL mongo >= 1.3.0)

MongoLog::setCallback — Sets a callback function to be invoked for events

Описание

public static void MongoLog::setCallback ( callable $log_function )

This function will set a callback function to be invoked for events in lieu of emitting of PHP notice.

Список параметров

log_function

The callback function to be invoked on events. It should have the following prototype:

log_function ( int $module , int $level , string $message )
module
One of the MongoLog module constants.
level
One of the MongoLog level constants.
message
The log message itself.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 MongoLog::setCallback() example

<?php

function module2string($module)
{
    switch ($module) {
        case MongoLog::RS: return "REPLSET";
        case MongoLog::CON: return "CON";
        case MongoLog::IO: return "IO";
        case MongoLog::SERVER: return "SERVER";
        case MongoLog::PARSE: return "PARSE";
        default: return "UNKNOWN";
    }
}

function level2string($level)
{
    switch ($level) {
        case MongoLog::WARNING: return "WARN";
        case MongoLog::INFO: return "INFO";
        case MongoLog::FINE: return "FINE";
        default: return "UNKNOWN";
    }
}

function callback($module, $level, $message)
{
    echo date("Y-m-d H:i:s - ");
    printf("%s (%s): %s\n", module2string($module), level2string($level), $message);
}

MongoLog::setLevel(MongoLog::ALL);
MongoLog::setModule(MongoLog::ALL);

// We specify the function name here, but any callable (e.g. anonymous function) will work
MongoLog::setCallback("callback");

new MongoClient();
?>

Результатом выполнения данного примера будет что-то подобное:

2013-07-09 09:41:42 - PARSE (INFO): Parsing localhost:27017
2013-07-09 09:41:42 - PARSE (INFO): - Found node: localhost:27017
2013-07-09 09:41:42 - PARSE (INFO): - Connection type: STANDALONE
2013-07-09 09:41:42 - CON (INFO): mongo_get_read_write_connection: finding a STANDALONE connection
2013-07-09 09:41:42 - CON (INFO): connection_create: creating new connection for localhost:27017
2013-07-09 09:41:42 - CON (INFO): stream_connect: Not establishing SSL for localhost:27017
2013-07-09 09:41:42 - CON (INFO): get_server_flags: start
2013-07-09 09:41:42 - CON (FINE): send_packet: read from header: 36
2013-07-09 09:41:42 - CON (FINE): send_packet: data_size: 95
2013-07-09 09:41:42 - CON (FINE): get_server_flags: setting maxBsonObjectSize to 16777216
2013-07-09 09:41:42 - CON (FINE): get_server_flags: setting maxMessageSizeBytes to 48000000
2013-07-09 09:41:42 - CON (INFO): is_ping: pinging localhost:27017;-;.;1543
2013-07-09 09:41:42 - CON (FINE): send_packet: read from header: 36
2013-07-09 09:41:42 - CON (FINE): send_packet: data_size: 17
2013-07-09 09:41:42 - CON (INFO): is_ping: last pinged at 1373359302; time: 0ms
2013-07-09 09:41:42 - REPLSET (FINE): finding candidate servers
2013-07-09 09:41:42 - REPLSET (FINE): - all servers
2013-07-09 09:41:42 - REPLSET (FINE): filter_connections: adding connections:
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): filter_connections: done
2013-07-09 09:41:42 - REPLSET (FINE): limiting by seeded/discovered servers
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): limiting by seeded/discovered servers: done
2013-07-09 09:41:42 - REPLSET (FINE): limiting by credentials
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): limiting by credentials: done
2013-07-09 09:41:42 - REPLSET (FINE): sorting servers by priority and ping time
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): sorting servers: done
2013-07-09 09:41:42 - REPLSET (FINE): selecting near servers
2013-07-09 09:41:42 - REPLSET (FINE): selecting near servers: nearest is 0ms
2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
2013-07-09 09:41:42 - REPLSET (FINE): selecting near server: done
2013-07-09 09:41:42 - REPLSET (INFO): pick server: random element 0
2013-07-09 09:41:42 - REPLSET (INFO): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543

Примечания

Предостережение

This function is only available with PHP 5.3.0 and later.


Sets the level(s) to be logged

  • « MongoLog::setCallback
  • MongoLog::setModule »
  • PHP Manual
  • MongoLog
  • Sets the level(s) to be logged

MongoLog::setLevel

(PECL mongo >= 1.2.3)

MongoLog::setLevel — Sets the level(s) to be logged

Описание

public static void MongoLog::setLevel ( int $level )

This function can be used to control logging verbosity and the types of activities that should be logged. The MongoLog level constants may be used with bitwise operators to specify multiple levels.

<?php

// first, specify a logging module
MongoLog::setModule(MongoLog::CON);

// log messages for every level
MongoLog::setLevel(MongoLog::ALL);

// log warning and info messages only
MongoLog::setLevel(MongoLog::WARNING|MongoLog::INFO);

// log everything except fine activity
MongoLog::setLevel(MongoLog::ALL & (~MongoLog::FINE));

?>

Note that you must also call MongoLog::setModule() to specify which modules(s) of the driver should log.

Список параметров

level

The level(s) you would like to log.


Sets the module(s) to be logged

  • « MongoLog::setLevel
  • MongoPool »
  • PHP Manual
  • MongoLog
  • Sets the module(s) to be logged

MongoLog::setModule

(PECL mongo >= 1.2.3)

MongoLog::setModule — Sets the module(s) to be logged

Описание

public static void MongoLog::setModule ( int $module )

This function can be used to set which driver modules should be logged. The MongoLog module constants may be used with bitwise operators to specify multiple modules.

<?php

// first, specify a logging level
MongoLog::setLevel(MongoLog::ALL);

// log replica set activity
MongoLog::setModule(MongoLog::RS);

// log replica sets and connection activity
MongoLog::setModule(MongoLog::RS|MongoLog::CON);

// log everything except IO activity
MongoLog::setModule(MongoLog::ALL & (~MongoLog::IO));

?>

Note that you must also call MongoLog::setLevel() to enable logging.

Список параметров

module

The module(s) you would like to log.


The MongoPool class

(PECL mongo >= 1.2.3)

Введение

Внимание

The current (1.3.0+) releases of the driver no longer implements pooling. This class and its methods are therefore deprecated and should not be used.

Обзор классов

MongoPool {
/* Методы */
public static int getSize ( void )
public array info ( void )
public static bool setSize ( int $size )
}

Список изменений

Версия | Описание
1.3.0 | This functionality has been removed and no longer does anything other than emit deprecation warnings. This class is only kept around for backwards compatability and will be removed in the near future.
1.2.11 | Emits E_DEPRECATED when used.

Содержание

  • MongoPool::getSize — Get pool size for connection pools
  • MongoPool::info — Returns information about all connection pools.
  • MongoPool::setSize — Set the size for future connection pools.


Get pool size for connection pools

  • « MongoPool
  • MongoPool::info »
  • PHP Manual
  • MongoPool
  • Get pool size for connection pools

MongoPool::getSize

(PECL mongo >= 1.2.3)

MongoPool::getSize — Get pool size for connection pools

Описание

public static int MongoPool::getSize ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current pool size.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Примеры

Пример #1 Changing pool size

This returns the default pool size, sets a new pool size, then prints the new pool size and the pool debugging information. Note that changing the pool size only affects new connection pools, it does not change old ones.

<?php

$connection = new Mongo("host1");

// pool size is -1
echo "pool size is: ".MongoPool::getSize()."\n";

echo "setting pool size to 200\n";

MongoPool::setSize(200);

// pool size is 200
echo "pool size is: ".MongoPool::getSize()."\n";

$conn2 = new Mongo("host2");

// remaining for host1 is -2
// remaining for host2 is 199
var_dump(Mongo::poolDebug());

?>

Смотрите также

  • MongoPool::setSize() - Set the size for future connection pools.
  • MongoPool::info() - Returns information about all connection pools.
  • The connection documentation.


Returns information about all connection pools.

  • « MongoPool::getSize
  • MongoPool::setSize »
  • PHP Manual
  • MongoPool
  • Returns information about all connection pools.

MongoPool::info

(PECL mongo >= 1.2.3)

MongoPool::info — Returns information about all connection pools.

Описание

public array MongoPool::info ( void )

Returns an array of information about all connection pools.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Each connection pool has an identifier, which starts with the host. For each pool, this function shows the following fields:

in use

The number of connections currently being used by Mongo instances.

in pool

The number of connections currently in the pool (not being used).

remaining

The number of connections that could be created by this pool. For example, suppose a pool had 5 connections remaining and 3 connections in the pool. We could create 8 new instances of MongoClient before we exhausted this pool (assuming no instances of MongoClient went out of scope, returning their connections to the pool).

A negative number means that this pool will spawn unlimited connections.

Before a pool is created, you can change the max number of connections by calling Mongo::setPoolSize(). Once a pool is showing up in the output of this function, its size cannot be changed.

total

The total number of connections allowed for this pool. This should be greater than or equal to "in use" + "in pool" (or -1).

timeout

The socket timeout for connections in this pool. This is how long connections in this pool will attempt to connect to a server before giving up.

waiting

If you have capped the pool size, workers requesting connections from the pool may block until other workers return their connections. This field shows how many milliseconds workers have blocked for connections to be released. If this number keeps increasing, you may want to use MongoPool::setSize() to add more connections to your pool.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.


Set the size for future connection pools.

  • « MongoPool::info
  • Mongo »
  • PHP Manual
  • MongoPool
  • Set the size for future connection pools.

MongoPool::setSize

(PECL mongo >= 1.2.3)

MongoPool::setSize — Set the size for future connection pools.

Описание

public static bool MongoPool::setSize ( int $size )

Sets the max number of connections new pools will be able to create.

Список параметров

size

The max number of connections future pools will be able to create. Negative numbers mean that the pool will spawn an infinite number of connections.

Возвращаемые значения

Returns the former value of pool size.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Примеры

Пример #1 Mongo::setPoolSize() example

If you set the pool size to n and then create n connections, attempting to create an n+1st connection will throw a MongoConnectionException.

<?php

// only allow one connection to a server
MongoPool::setSize(1);

// creates one connection to localhost:27017
$m1 = new Mongo();

// attempt to create a second connection to localhost:27017
// only one connection is allowed, so this will throw an exception
$m2 = new Mongo();

?>

Результатом выполнения данного примера будет что-то подобное:

Fatal error: Uncaught exception 'MongoConnectionException' with message 'no more connections in pool' in /path/to/php/script.php:10
Stack trace:
#0 /path/to/php/script.php(10): Mongo->__construct()
#1 {main}
  thrown in /path/to/php/script.php on line 10

Смотрите также

  • MongoPool::getSize() - Get pool size for connection pools
  • MongoPool::info() - Returns information about all connection pools.
  • The connection documentation.


Класс Mongo [устарел]

(PECL mongo >=0.9.0)

Введение

Подключение между PHP и MongoDB.

Данный класс расширяет MongoClient и обеспечивает доступ к нескольким устаревшим методам.

В целях обратной совместимости данный класс устанавливает значением по умолчанию 0 для параметра конструктора "w", что отменяет необходимость подтверждения операций записи от сервера. Подробнее смотрите в документации MongoClient::__construct().

Внимание

Данный класс УСТАРЕЛ начиная с версии 1.3.0, его использование строго не рекомендуется. Пожалуйста, используйте вместо него класс MongoClient

Обзор классов

Mongo extends MongoClient {
/* Методы */
protected bool connectUtil ( void )
public static int getPoolSize ( void )
public string getSlave ( void )
public bool getSlaveOkay ( void )
public array poolDebug ( void )
public static bool setPoolSize ( int $size )
public bool setSlaveOkay ([ bool $ok = true ] )
public string switchSlave ( void )
/* Наследуемые методы */
public bool MongoClient::close ([ boolean|string $connection ] )
public bool MongoClient::connect ( void )
public array MongoClient::dropDB ( mixed $db )
public MongoDB MongoClient::__get ( string $dbname )
public static array MongoClient::getConnections ( void )
public array MongoClient::getHosts ( void )
public array MongoClient::getReadPreference ( void )
public array MongoClient::getWriteConcern ( void )
public bool MongoClient::killCursor ( string $server_hash , int|MongoInt64 $id )
public array MongoClient::listDBs ( void )
public MongoCollection MongoClient::selectCollection ( string $db , string $collection )
public MongoDB MongoClient::selectDB ( string $name )
public bool MongoClient::setReadPreference ( string $read_preference [, array $tags ] )
public bool MongoClient::setWriteConcern ( mixed $w [, int $wtimeout ] )
public string MongoClient::__toString ( void )
}

Содержание

  • Mongo::connectUtil — Connects with a database server
  • Mongo::__construct — The __construct purpose
  • Mongo::getPoolSize — Get pool size for connection pools
  • Mongo::getSlave — Returns the address being used by this for slaveOkay reads
  • Mongo::getSlaveOkay — Get slaveOkay setting for this connection
  • Mongo::poolDebug — Returns information about all connection pools.
  • Mongo::setPoolSize — Set the size for future connection pools.
  • Mongo::setSlaveOkay — Change slaveOkay setting for this connection
  • Mongo::switchSlave — Choose a new secondary for slaveOkay reads


Connects with a database server

  • « Mongo
  • Mongo::__construct »
  • PHP Manual
  • Mongo
  • Connects with a database server

Mongo::connectUtil

(PECL mongo >=0.9.0)

Mongo::connectUtil — Connects with a database server

Описание

protected bool Mongo::connectUtil ( void )
Внимание

This is an internal function that you should never call yourself.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

If the connection was successful.

Ошибки

Throws MongoConnectionException if it fails to connect to the databases.


The __construct purpose

  • « Mongo::connectUtil
  • Mongo::getPoolSize »
  • PHP Manual
  • Mongo
  • The __construct purpose

Mongo::__construct

(PECL mongo >=0.9.0)

Mongo::__construct — The __construct purpose

Описание

public Mongo::__construct ([ string $server [, array $options ]] )

This method overwrites the MongoClient constructor and turns off acknowledged writes.

Please see MongoClient::__construct() for description of the parameters.

Возвращаемые значения

Внимание

Instanciating this class will emit E_DEPRECATED warning, and turn off acknowledged writes.

Please use the MongoClient instead.


Get pool size for connection pools

  • « Mongo::__construct
  • Mongo::getSlave »
  • PHP Manual
  • Mongo
  • Get pool size for connection pools

Mongo::getPoolSize

(PECL mongo >=1.2.0)

Mongo::getPoolSize — Get pool size for connection pools

Описание

public static int Mongo::getPoolSize ( void )
Внимание

This feature has been DEPRECATED as of version 1.2.3. Relying on this feature is highly discouraged. Please use MongoPool::getSize() instead.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current pool size.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Примеры

Пример #1 Changing pool size

This returns the default pool size, sets a new pool size, then prints the new pool size and the pool debugging information. Note that changing the pool size only affects new connection pools, it does not change old ones.

<?php

$connection = new Mongo("host1");

// pool size is -1
echo "pool size is: ".Mongo::getPoolSize()."\n";

echo "setting pool size to 200\n";

Mongo::setPoolSize(200);

// pool size is 200
echo "pool size is: ".Mongo::getPoolSize()."\n";

$conn2 = new Mongo("host2");

// remaining for host1 is -2
// remaining for host2 is 199
var_dump(Mongo::poolDebug());

?>

Смотрите также

  • Mongo::setPoolSize() - Set the size for future connection pools.
  • Mongo::poolDebug() - Returns information about all connection pools.
  • The connection documentation.


Returns the address being used by this for slaveOkay reads

  • « Mongo::getPoolSize
  • Mongo::getSlaveOkay »
  • PHP Manual
  • Mongo
  • Returns the address being used by this for slaveOkay reads

Mongo::getSlave

(PECL mongo >=1.1.0)

Mongo::getSlave — Returns the address being used by this for slaveOkay reads

Описание

public string Mongo::getSlave ( void )

This finds the address of the secondary currently being used for reads. It is a read-only method: it does not change anything about the internal state of the object.

When you create a connection to the database, the driver will not immediately decide on a secondary to use. Thus, after you connect, this function will return NULL even if there are secondaries available. When you first do a query with slaveOkay set, at that point the driver will choose a secondary for this connection. At that point, this function will return the chosen secondary.

See the query section of this manual for information on distributing reads to secondaries.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The address of the secondary this connection is using for reads.

This returns NULL if this is not connected to a replica set or not yet initialized.

Ошибки

Вызывает ошибку уровня E_DEPRECATED

The returned results aren't really useful as the secondary selection process is done on each query and database command execution.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Смотрите также

  • MongoCursor::info() - Gets information about the cursor's creation and iteration


Get slaveOkay setting for this connection

  • « Mongo::getSlave
  • Mongo::poolDebug »
  • PHP Manual
  • Mongo
  • Get slaveOkay setting for this connection

Mongo::getSlaveOkay

(PECL mongo >=1.1.0)

Mongo::getSlaveOkay — Get slaveOkay setting for this connection

Описание

public bool Mongo::getSlaveOkay ( void )

See the query section of this manual for information on distributing reads to secondaries.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the value of slaveOkay for this instance.

Ошибки

Вызывает ошибку уровня E_DEPRECATED

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Смотрите также

  • Read Preferences
  • MongoClient::getReadPreference() - Get the read preference for this connection


Returns information about all connection pools.

  • « Mongo::getSlaveOkay
  • Mongo::setPoolSize »
  • PHP Manual
  • Mongo
  • Returns information about all connection pools.

Mongo::poolDebug

(PECL mongo >=1.2.0)

Mongo::poolDebug — Returns information about all connection pools.

Описание

public array Mongo::poolDebug ( void )
Внимание

This feature has been DEPRECATED as of version 1.2.3. Relying on this feature is highly discouraged. Please use MongoPool::info() instead.

Returns an array of information about all connection pools.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Each connection pool has an identifier, which starts with the host. For each pool, this function shows the following fields:

in use

The number of connections currently being used by MongoClient instances.

in pool

The number of connections currently in the pool (not being used).

remaining

The number of connections that could be created by this pool. For example, suppose a pool had 5 connections remaining and 3 connections in the pool. We could create 8 new instances of MongoClient before we exhausted this pool (assuming no instances of MongoClient went out of scope, returning their connections to the pool).

A negative number means that this pool will spawn unlimited connections.

Before a pool is created, you can change the max number of connections by calling Mongo::setPoolSize(). Once a pool is showing up in the output of this function, its size cannot be changed.

timeout

The socket timeout for connections in this pool. This is how long connections in this pool will attempt to connect to a server before giving up.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.


Set the size for future connection pools.

  • « Mongo::poolDebug
  • Mongo::setSlaveOkay »
  • PHP Manual
  • Mongo
  • Set the size for future connection pools.

Mongo::setPoolSize

(PECL mongo >=1.2.0)

Mongo::setPoolSize — Set the size for future connection pools.

Описание

public static bool Mongo::setPoolSize ( int $size )
Внимание

This method has been DEPRECATED as of version 1.2.3. Relying on this feature is highly discouraged. Please use MongoPool::setSize() instead.

Sets the max number of connections new pools will be able to create.

Список параметров

size

The max number of connections future pools will be able to create. Negative numbers mean that the pool will spawn an infinite number of connections.

Возвращаемые значения

Returns the former value of pool size.

Примеры

Пример #1 Mongo::setPoolSize() example

If you set the pool size to n and then create n connections, attempting to create an n+1st connection will throw a MongoConnectionException.

<?php

// only allow one connection to a server
Mongo::setPoolSize(1);

// creates one connection to localhost:27017
$m1 = new Mongo();

// attempt to create a second connection to localhost:27017
// only one connection is allowed, so this will throw an exception
$m2 = new Mongo();

?>

Результатом выполнения данного примера будет что-то подобное:

Fatal error: Uncaught exception 'MongoConnectionException' with message 'no more connections in pool' in /path/to/php/script.php:10
Stack trace:
#0 /path/to/php/script.php(10): Mongo->__construct()
#1 {main}
  thrown in /path/to/php/script.php on line 10

Смотрите также

  • Mongo::getPoolSize() - Get pool size for connection pools
  • Mongo::poolDebug() - Returns information about all connection pools.
  • The connection documentation.


Change slaveOkay setting for this connection

  • « Mongo::setPoolSize
  • Mongo::switchSlave »
  • PHP Manual
  • Mongo
  • Change slaveOkay setting for this connection

Mongo::setSlaveOkay

(PECL mongo >=1.1.0)

Mongo::setSlaveOkay — Change slaveOkay setting for this connection

Описание

public bool Mongo::setSlaveOkay ([ bool $ok = true ] )

See the query section of this manual for information on distributing reads to secondaries.

Список параметров

ok

If reads should be sent to secondary members of a replica set for all possible queries using this MongoClient instance.

Возвращаемые значения

Returns the former value of slaveOkay for this instance.

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Смотрите также

  • Read Preferences
  • MongoClient::setReadPreference() - Set the read preference for this connection


Choose a new secondary for slaveOkay reads

  • « Mongo::setSlaveOkay
  • Mongo Функции »
  • PHP Manual
  • Mongo
  • Choose a new secondary for slaveOkay reads

Mongo::switchSlave

(PECL mongo >=1.1.0)

Mongo::switchSlave — Choose a new secondary for slaveOkay reads

Описание

public string Mongo::switchSlave ( void )

This choses a random secondary for a connection to read from. It is called automatically by the driver and should not need to be used. It calls MongoClient::getHosts() (to refresh the status of hosts) and Mongo::getSlave() (to get the return value).

See the query section of this manual for information on distributing reads to secondaries.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The address of the secondary this connection is using for reads. This may be the same as the previous address as addresses are randomly chosen. It may return only one address if only one secondary (or only the primary) is available.

For example, if we had a three member replica set with a primary, secondary, and arbiter this method would always return the address of the secondary. If the secondary became unavailable, this method would always return the address of the primary. If the primary also became unavailable, this method would throw an exception, as an arbiter cannot handle reads.

Ошибки

Throws a MongoException (error code 15) if it is called on a non-replica-set connection. It will also throw MongoExceptions if it cannot find anyone (primary or secondary) to read from (error code 16).

Список изменений

Версия | Описание
1.2.11 | Emits E_DEPRECATED when used.

Смотрите также

  • Read Preferences


Mongo Функции

Содержание

  • bson_decode — Преобразовывает объект BSON в массив PHP
  • bson_encode — Преобразовывет переменную PHP в строку BSON


Преобразовывает объект BSON в массив PHP

  • « Mongo Функции
  • bson_encode »
  • PHP Manual
  • Mongo Функции
  • Преобразовывает объект BSON в массив PHP

bson_decode

(PECL mongo >=1.0.1)

bson_decode — Преобразовывает объект BSON в массив PHP

Описание

array bson_decode ( string $bson )

Функция нестабильная и совершенно бесполезна для 99% пользователей. Может быть полезна только в случае если вы пишете что-нибудь странное, как, например, написание собственного драйвера поверх стандартного драйвера PHP.

Список параметров

bson

Преобразуемый BSON объект.

Возвращаемые значения

Возвращает десериализованный BSON объект.


Преобразовывет переменную PHP в строку BSON

  • « bson_decode
  • Exceptions »
  • PHP Manual
  • Mongo Функции
  • Преобразовывет переменную PHP в строку BSON

bson_encode

(PECL mongo >=1.0.1)

bson_encode — Преобразовывет переменную PHP в строку BSON

Описание

string bson_encode ( mixed $anything )

Функция нестабильна и совершенно бесполезна для 99% пользователей. Может быть полезна только в случае если вы пишете что-нибудь странное, как, например, написание собственного драйвера поверх стандартного драйвера PHP.

Список параметров

anything

Преобразуемая переменная.

Возвращаемые значения

Возвращает сериализованную строку.


Exceptions

Содержание

  • MongoException
  • MongoResultException
  • MongoCursorException
  • MongoCursorTimeoutException
  • MongoConnectionException
  • MongoGridFSException
  • MongoDuplicateKeyException
  • MongoProtocolException
  • MongoExecutionTimeoutException
  • MongoWriteConcernException

VMWare Oddities

If you are running VMWare on Windows and are using CIFS, pausing the VM will cause CIFS to go out of sync and cause weird errors on un-pausing it ("The Mongo object has not been correctly initialized by its constructor"). Permanently mounting the Windows shares will fix this and you'll be able to pause and unpause at will.

To permanently mount the Windows shares, run:

$ sudo update-rc.d -f umountnfs.sh remove
$ sudo update-rc.d umountnfs.sh stop 15 0 6 .

See » the Ubuntu docs for the most up-to-date instructions.


The MongoException class

(PECL mongo >= 1.0.0)

Введение

Default Mongo exception.

This covers a bunch of different error conditions that may eventually be moved to more specific exceptions, but will always extend MongoException.

  • The MongoSomething object has not been correctly initialized by its constructor

    Code: 0

    Probably your Mongo object is not connected to a database server.

  • zero-length keys are not allowed, did you use $ with double quotes?

    Code: 1

    You tried to save "" as a key. You generally should not do this. "" can mess up subobject access and is used by MongoDB internally. However, if you really want, you can set mongo.allow_empty_keys to true in your php.ini file to override this sanity check. If you override this, it is highly recommended that you set error checking to strict to avoid string interpolation errors.

  • '.' not allowed in key: <key>

    Code: 2

    You attempted to write a key with '.' in it, which is prohibited.

  • insert too large: <size>, max: <max>

    Code: 3

    You're attempting to send too much data to the database at once: the database will only accept inserts up to a certain size (currently 16 MB).

  • no elements in doc

    Code: 4

    You're attempting to save a document with no fields.

  • size of BSON doc is <size> bytes, max <max>MB

    Code: 5

    You're attempting to save a document that is larger than MongoDB can save.

  • no documents given

    Code: 6

    You're attempting to batch insert an empty array of documents.

  • MongoCollection::group takes an array, object, or MongoCode key

    Code: 7

    Wrong type parameter send to MongoCollection::group().

  • field names must be strings

    Code: 8

    You should format field selectors as array("field1" => 1, "field2" => 1, ..., "fieldN" => 1).

  • invalid regex

    Code: 9

    The regex passed to MongoRegex is not of the correct form.

  • MongoDBRef::get: $ref field must be a string

    Code: 10

  • MongoDBRef::get: $db field must be a string

    Code: 11

  • non-utf8 string: <str>

    Code: 12

    This error occurs if you attempt to send a non-utf8 string to the database. All strings going into the database should be UTF8. See php.ini options for the transition option of quieting this exception.

  • mutex error: <err>

    Code: 13

    The driver uses mutexes for synchronizing requests and responses in multithreaded environments. This is a fairly serious error and may not have a stack trace. It's unusual and should be reported to maintainers with any system information and steps to reproduce that you can provide.

  • index name too long: <len>, max <max> characters

    Code: 14

    Indexes with names longer than 128 characters cannot be created. If you get this error, you should use MongoCollection::ensureIndex()'s "name" option to create a shorter name for your index.

Обзор классов

MongoException extends Exception {
}


The MongoResultException class

(PECL mongo >=1.3.0)

Введение

The MongoResultException is thrown by several command helpers (such as MongoCollection::findAndModify()) in the event of failure. The original result document is available through MongoResultException::getDocument().

Обзор классов

MongoResultException extends MongoException {
/* Свойства */
public $document ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public array getDocument ( void )
}

Свойства

document

The raw result document as an array.

Содержание

  • MongoResultException::getDocument — Retrieve the full result document


Retrieve the full result document

  • « MongoResultException
  • MongoCursorException »
  • PHP Manual
  • MongoResultException
  • Retrieve the full result document

MongoResultException::getDocument

(PECL mongo >=1.3.0)

MongoResultException::getDocument — Retrieve the full result document

Описание

public array MongoResultException::getDocument ( void )

Retrieves the full error result document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The full result document as an array, including partial data if available and additional keys.

Примеры

Пример #1 MongoResultException::getDocument() example

<?php
$mc = new MongoClient("localhost");
$c = $mc->selectCollection("test", "test");

$c->insert(array(
     "name" => "Next promo",
     "inprogress" => false,
     "priority" => 0,
     "tasks" => array( "select product", "add inventory", "do placement"),
) );

$c->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 1,
     "tasks" => array( "run sales report", "email report" )
) );

$c->insert(array(
     "name" => "Biz report",
     "inprogress" => false,
     "priority" => 2,
     "tasks" => array( "run marketing report", "email report" )
    ),
    array("w" => true)
);

try {
    $retval = $c->findAndModify(
         array("inprogress" => false, "name" => "Biz report"),
         array('$set' => array('$set' => array('inprogress' => true, "started" => new MongoDate()))),
         null,
         array(
            "sort" => array("priority" => -1),
            "new" => true,
        )
    );
} catch(MongoResultException $e) {
    echo $e->getMessage(), "\n";
    $res = $e->getDocument();
    var_dump($res);
}
?>

Результатом выполнения данных примеров будет что-то подобное:

$set is not valid for storage.
array(3) {
  ["lastErrorObject"]=>
  array(5) {
    ["connectionId"]=>
    int(6)
    ["err"]=>
    string(30) "$set is not valid for storage."
    ["code"]=>
    int(52)
    ["n"]=>
    int(0)
    ["ok"]=>
    float(1)
  }
  ["ok"]=>
  float(0)
  ["errmsg"]=>
  string(30) "$set is not valid for storage."
}


The MongoCursorException class

(PECL mongo >= 1.0.0)

Введение

Caused by accessing a cursor incorrectly or a error receiving a reply. Note that this can be thrown by any database request that receives a reply, not just queries. Writes, commands, and any other operation that sends information to the database and waits for a response can throw a MongoCursorException. The only exception is new MongoClient() (creating a new connection), which will only throw MongoConnectionExceptions.

This returns a specific error message to help diagnose the problem and a numeric error code associated with the cause of the exception.

For example, suppose you tried to insert two documents with the same _id:

<?php

try {
    $collection->insert(array("_id" => 1), array("w" => 1));
    $collection->insert(array("_id" => 1), array("w" => 1));
}
catch (MongoCursorException $e) {
    echo "error message: ".$e->getMessage()."\n";
    echo "error code: ".$e->getCode()."\n";
}

?>
This would produce output like:
error message: E11000 duplicate key error index: foo.bar.$_id_  dup key: { : 1 }
error code: 11000
Note that the MongoDB error code (11000) is used for the PHP error code. The PHP driver uses the "native" error code wherever possible.

The following is a list of common errors, codes, and causes. Exact errors are in italics, errors where the message can vary are described in obliques.

  • cannot modify cursor after beginning iteration

    Code: 0

    You are calling a method that sets up the query after executing the query. Reset the cursor and try again.

    An example:

    <?php

    try {
            $cursor = $collection->find();
            var_dump($cursor->getNext());

            // getNext() queried the database, it's too late to set a limit
            $cursor->limit(1);
    }
    catch (    MongoCursorException $e) {
        echo     "error message: ".$e->getMessage()."\n";
        echo     "error code: ".$e->getCode()."\n";
    }

    // this will work, though:
    $cursor->getNext();
    $cursor->reset();
    $cursor->limit(1);

    ?>

  • Get next batch send errors

    Code: 1

    Could not send the query to the database. Make sure the database is still up and the network is okay.

  • cursor not found

    Code: 2

    The driver was trying to fetch more results from the database, but the database did not have a record of the query. This usually means that the cursor timed out on the server side: after a few minutes of inactivity, the database will kill a cursor (see MongoCursor::immortal() for information on preventing this).

    An example:

    <?php

    try {
            $cursor = $collection->find();
            $cursor->getNext();

            // sleep for 15 minutes
            sleep(60*15);

        while (    $cursor->hasNext()) {
                $cursor->getNext();
        }
    }
    catch (    MongoCursorException $e) {
        echo     "error message: ".$e->getMessage()."\n";
        echo     "error code: ".$e->getCode()."\n";
    }

    ?>

  • cursor->buf.pos is null

    Code: 3

    This may indicate you are out of RAM or some other extraordinary circumstance.

  • couldn't get response header

    Code: 4

    A common error if the database or network goes down. This means that the driver couldn't get a response from the connection.

  • no db response

    Code: 5

    This may not even be an error, for example, the database command "shutdown" returns no response. However, if you were expecting a response, this means the database didn't give one.

  • bad response length: %d, did the db assert?

    Code: 6

    This means that the database said that its response was less than 0. This error probably indicates a network error or database corruption.

  • incomplete header

    Code: 7

    Highly unusual. Occurs if the database response started out correctly, but broke off in the middle. Probably indicates a network problem.

  • incomplete response

    Code: 8

    Highly unusual. Occurs if the database response started out correctly, but broke off in the middle. Probably indicates a network problem.

  • couldn't find a response

    Code: 9

    If the response was cached and now cannot be located.

  • error getting socket

    Code: 10

    The socket was closed or encountered an error. The driver should automatically reconnect (if possible) on the next operation.

  • couldn't find reply, please try again

    Code: 11

    The driver saves any database responses it cannot immediately match with a request. This exception occurs if the driver has already passed your request's response and cannot find your response in its cache.

  • error getting database response: errstr

    WSA error getting database response: errstr

    "errstr" is an io error reported directly from the C socket subsystem. On Windows, the error message is prefixed with "WSA".

  • Timeout error

    Code: 13

    If there was an error while waiting for a query to complete.

  • couldn't send query: <various>

    Code: 14

    C socket error on send.

  • max number of retries exhausted, couldn't send query

    Code: 19

    The driver will automatically retry "plain" queries (not commands) a couple of times if the first attempt failed for certain reasons. This is to cause fewer exceptions during replica set failover (although you will probably still have to deal with some) and gloss over transient network issues.

    This can also be caused by the driver not being able to reconnect at all to the database (if, for example, the database is unreachable).

    Version 1.2.2+.

Errors passed through by the database

Database errors should always trigger MongoCursorExceptions on queries. Error messages and codes are sent directly from the database and you should be able to see matching errors in the database log.

A few common database errors are listed below:

  • E11000 duplicate key error index: foo.bar.$X dup key: { /* ... */ }

    Code: 11000

    Database error for duplicate keys.

  • not master

    Codes: 10107, 13435, and 10058

    Not master errors, piped through by the database. ach of these will cause the driver to disconnect and attempt to find a new primary. The actual error you get on failover may not be a "not master" error, depending on when the change in primary occurs.

Обзор классов

MongoCursorException extends MongoException {
}

Содержание

  • MongoCursorException::getHost — The hostname of the server that encountered the error


The hostname of the server that encountered the error

  • « MongoCursorException
  • MongoCursorTimeoutException »
  • PHP Manual
  • MongoCursorException
  • The hostname of the server that encountered the error

MongoCursorException::getHost

(PECL mongo >= 1.0.0)

MongoCursorException::getHost — The hostname of the server that encountered the error

Описание

public string MongoCursorException::getHost ( void )

Returns the hostname of the server the query was sent too.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the hostname, or NULL if the hostname is unknown.


The MongoCursorTimeoutException class

(PECL mongo >= 1.0.0)

Введение

Caused by a query timing out. You can set the length of time to wait before this exception is thrown by calling MongoCursor::timeout() on the cursor or setting MongoCursor::$timeout. The static variable is useful for queries such as database commands and MongoCollection::findOne(), both of which implicitly use cursors.

Обзор классов

MongoCursorTimeoutException extends MongoCursorException {
}


The MongoConnectionException class

(PECL mongo >= 1.0.0)

Введение

Thrown when the driver fails to connect to the database.

There are a number of possible error messages to help you diagnose the connection problem. These are:

  • No candidate servers found

    Thrown when the driver cannot establish a connection to MongoDB (fulfilling the ReadPreferences, if specified).

  • No server name given.

    This error occurs if you pass in "" as the server name, probably because of an typo with string interpolation, e.g., "$servr" instead of "$server".

  • failed to get host [hostname] or port [portnum] from [server].

    This indicated that the server string was malformed. "[hostname]" and "[portnum]" will be as much as the driver could dicipher of it.

  • Operation in progress

    Connecting to the database timed out.

  • Transport endpoint is not connected

    Generally means that the connection string isn't correct, the driver couldn't even find the database server.

  • couldn't determine master

    No server in a replica set connection was identified as the primary.

  • couldn't get host info for [server]

    This indicated that DNS could not resolve the server address you gave. This could easily be caused by a typo, for example, "server" instead of "$server".

  • Invalid Argument

    This can be caused by attempting to connect to a machine that is up but that the database isn't actually running on. Make sure that you've started the database server before connecting.

  • Permission denied

    This means that the socket could not be opened due to permissions issues. On Red Hat variants, this can be caused by a default setting that does not allow Apache to create network connections. You can override this setting by running:

    $ /usr/sbin/setsebool -P httpd_can_network_connect 1
    then restarting Apache.

If the error message is not listed above, it is probably an error from the C socket, and you can search the web for its usual cause.

Обзор классов

MongoConnectionException extends MongoException {
}


The MongoGridFSException class

(PECL mongo >= 1.0.0)

Введение

Thrown when there are errors reading or writing files to or from the database.

Обзор классов

MongoGridFSException extends MongoException {
}

Error codes

MongoGridFSException error codes
Code | Message | Reason
3 | Could not open file $filename | Attempting to store an invalid file, such as directory
4 | File $filename is too large: $filesize bytes | Maximum filesize in GridFS is 4GB
5 | could not find filehandle | Resource doesn't have a filehandle
6 | no file is associate with this filehandle | Resource isn't a file resource
7 | error setting up file: $filenames | Could not open file for reading
9 | error reading file $filenames | Failed reading file
10 | error reading filehandle | Failed reading from a resource
11 | could not find uploaded file %s | Filename doesn't seem to be uploaded file
12 | Couldn't find tmp_name in the $_FILES array. Are you sure the upload worked? | Uploaded filename probably failed
13 | tmp_name was not a string or an array | Invalid filename given
14 | couldn't find file size | The length property is missing
15 | Cannot find filename | No filename provided, and no filename property set
16 | could not open destination file %s | Destination filename not writable
17 | error reading chunk of file | Chunk corruption
18 | couldn't create a php_stream | Couldn't create a stream resource
19 | couldn't find property | Chunk corruption
20 | chunk number has wrong size (size) when the max is maxchunksize | Chunk larger then expected
21 | chunk has wrong format | Chunk corruption


The MongoDuplicateKeyException class

(PECL mongo >= 1.5.0)

Введение

Thrown when attempting to insert a document into a collection which already contains the same values for the unique keys.

Обзор классов

MongoDuplicateKeyException extends MongoWriteConcernException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
public array MongoWriteConcernException::getDocument ( void )
}

Примеры

Пример #1 Catching MongoDuplicateKeyException

<?php
$mc = new MongoClient("localhost");

$c = $mc->selectCollection("test", "test");

$c->insert(array('_id' => 1));
try {
    $c->insert(array('_id' => 1));
} catch (MongoWriteConcernException $e) {
    echo $e->getMessage(), "\n";
}
?>

Результатом выполнения данных примеров будет что-то подобное:

localhost:27017: insertDocument :: caused by :: 11000 E11000 duplicate key error index: test.test.$_id_  dup key: { : 1 }


The MongoProtocolException class

(PECL mongo >= 1.5.0)

Введение

When talking to MongoDB 2.6.0, and later, certain operations (such as writes) may throw MongoProtocolException when the response from the server did not make sense - for example during network failure (we could read the entire response) or data corruption.

This exception is also thrown when attempting to talk newer protocols then the server supports, for example using the MongoWriteBatch when talking to a MongoDB server prior to 2.6.0.

Обзор классов

MongoProtocolException extends MongoException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}

Примеры

Пример #1 Catching MongoProtocolException

Running the following example against MongoDB prior to 2.6.0 will throw an MongoProtocolException

<?php
$mc = new MongoClient("localhost");
$c = $mc->selectCollection("test", "test");

try {
    $batch = new MongoInsertBatch($c);
} catch(MongoProtocolException $e) {
    echo $e->getMessage();
}
?>

Результатом выполнения данных примеров будет что-то подобное:

Current primary does not have a Write API


The MongoExecutionTimeoutException class

(PECL mongo >= 1.5.0)

Введение

Thrown when a operation times out server side (i.e. in MongoDB).

To configure the operation timeout threshold, use MongoCursor::maxTimeMS() or the "maxTimeMS" command option.

Обзор классов

MongoExecutionTimeoutException extends MongoException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}


The MongoWriteConcernException class

(PECL mongo >= 1.5.0)

Введение

MongoWriteConcernException is thrown when a write fails. See Write Concerns for how to set failure thresholds.

Prior to MongoDB 2.6.0 » GLE would determin when a write failed.

Обзор классов

MongoWriteConcernException extends MongoCursorException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public array getDocument ( void )
/* Наследуемые методы */
public string MongoCursorException::getHost ( void )
}

Содержание

  • MongoWriteConcernException::getDocument — Get the error document


Get the error document

  • « MongoWriteConcernException
  • Список изменений »
  • PHP Manual
  • MongoWriteConcernException
  • Get the error document

MongoWriteConcernException::getDocument

(PECL mongo >= 1.5.0)

MongoWriteConcernException::getDocument — Get the error document

Описание

public array MongoWriteConcernException::getDocument ( void )

Returns the actual response from the server that was interperated as an error.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A MongoDB document, if available, as an array.


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного расширения.

MongoDB PHP Driver 1.5.0

It supports all new features for MongoDB 2.6, including:

  • Aggregate can now return a cursor
  • Aggregation pipelines can now be explained
  • Possible to set maxTimeMS for commands and queries
  • Transparent support for the new command-based MongoDB write API
  • New MongoWriteBatch classes (using the new MongoDB write API)
  • Support for MongoDB Enterprise features (e.g. Kerberos, LDAP, X509)
  • Option to tune acceptable server latency for secondary reads (secondaryAcceptableLatencyMS)

With this release, some driver functionality which was previously documented as deprecated will now formally raise deprecation notices. This includes:

  • Instantiating the Mongo class
  • Calling MongoCursor::slaveOkay()
  • "wtimeout" and "safe" options for MongoCollection write operations
  • Manipulating public properties on core classes (such as $collection->w)

Замечание:

No previously deprecated features have been removed.

Changes in behaviour:

  • Setting the mongo.native_long INI setting now raises an error on 32-bit platforms, and now defaults to true for 64-bit platforms.

MongoDB PHP Driver 1.4.0

The 1.4 series introduced fundemental changes in how connections are created to the MongoDB servers. The driver now utilizes PHP native streams, so all normal PHP stream options apply. Furthermore, an experimental Stream Context Support was added.

The 1.4.x series also added support for MongoDB 2.4.x.

The most important improvements however deal with the handling of replica sets, especially nodes that timeout and nodes that are unreachable for various reasons. Besides the improvements to replica set handling, this release addresses issues with read preferences through mongos nodes. It also adds support for SSL enabled connections as well as journal and fsync connection string options.

MongoDB PHP Driver 1.3.0

The 1.3 series introduced several major changes to the extension such as completely rewritten connection handling (and removal of the pooling mechanism), support for ReadPreferences and change the default WriteConcerns to be acknowledged by introducing a new class MongoClient which serves as a replacement class for the now deprecated Mongo class.

The driver now also supports connecting to multiple mongos instances (the Mongo Shard router) for loadbalancing.

Other enhancements include improved logging for easier connection handling debugging with MongoLog and support for the » Aggregation Framework via the MongoCollection::aggregate() method.

Changes to existing methods

Following is a list of all improvements to existing methods since their inception.

Version | Function | Description
1.7.0 | MongoDB::execute | This method has been deprecated as a result of the underlaying eval command being deprecated in MongoDB 3.0+.
1.6.0 | MongoCollection::count | Теперь второй параметр options является массивом опций. limit и skip в качестве второго и третьего параметра, соотвественно, являются устаревшими
 | MongoDB::getCollectionNames | Changed first parameter to be an array of options. Pre-1.6.0, the first parameter was a boolean indicating the "includeSystemCollections" option.
 | MongoDB::listCollections | Changed first parameter to be an array of options. Pre-1.6.0, the first parameter was a boolean indicating the "includeSystemCollections" option.
1.5.0 | log_cmd_delete | Only available when connected to MongoDB 2.6.0+
 | log_cmd_insert | Only available when connected to MongoDB 2.6.0+
 | log_cmd_update | Only available when connected to MongoDB 2.6.0+
 | log_write_batch | Only available when connected to MongoDB 2.6.0+
 | MongoBinData::__construct | The default changed from 2 (MongoBinData::BYTE_ARRAY) to 0 (MongoBinData::GENERIC).
 | MongoClient::__construct | Added "authSource".
 | MongoClient::__construct | Added "authMechanism", "gssapiServiceName", and "secondaryAcceptableLatencyMS".
 | MongoCollection::aggregate | Added optional options argument
 | MongoCollection::batchInsert | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
 | MongoCollection::ensureIndex | Renamed the "wtimeout" option to "wTimeoutMS". Emits E_DEPRECATED when "wtimeout" is used. Renamed the "timeout" option to "socketTimeoutMS". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
 | MongoCollection::findOne | Added optional options argument.
 | MongoCollection::group | Added "maxTimeMS" option.
 | MongoCollection::insert | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
 | MongoCollection::remove | Добавлена опция "wTimeoutMS" в замен устаревшей "wtimeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "wtimeout". Добавлена опция "socketTimeoutMS" в замен устаревшей "timeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "timeout". Ошибка уровня E_DEPRECATED будет вызвана в случае использования "safe".
 | MongoCollection::save | Added "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
 | MongoCollection::toIndexString | This method has been deprecated.
 | MongoCollection::update | Added the "wTimeoutMS" option, which replaces "wtimeout". Emits E_DEPRECATED when "wtimeout" is used. Added the "socketTimeoutMS" option, which replaces "timeout". Emits E_DEPRECATED when "timeout" is used. Emits E_DEPRECATED when "safe" is used.
 | MongoCursor::slaveOkay | This method has been deprecated in favour of MongoCursor::setReadPreference and .
 | MongoDB::command | Renamed the "timeout" option to "socketTimeoutMS". Emits E_DEPRECATED when "timeout" is used. Added hash by-reference parameter.
1.4.5 | MongoCursor::batchSize | Before 1.4.5, this method would throw an MongoCursorException if the cursor had already started iterating.
1.4.0 | MongoClient::__construct | Added "ssl" option and support for connecting over SSL. Added "wTimeoutMS" option, which replaces "wTimeout". Emits E_DEPRECATED when "slaveOkay" or "timeout" is used.
 | MongoCursor::hint | The index argument now supports index names as string values. In versions before 1.4.0, only array or object values were accepted.
 | MongoCursor::setFlag | Support for flag 3 (OPLOG_REPLAY) is added. Versions before 1.4.0 would throw a warning saying that the flag is unsupported.
 | MongoDB::createCollection | In versions before 1.4.0, the options were all arguments to the method. The function synopsis in those older versions is: public MongoCollectionMongoDB::createCollection stringname boolcappedFALSE intsize0 intmax0 The meaning of the options is the same as described under the options argument above.
 | MongoId::__construct | An exception is thrown when passed invalid string
1.3.4 | MongoClient::__construct | Added "connectTimeoutMS" and "socketTimeoutMS" options.
 | MongoCollection::batchInsert | Added "wtimeout" option.
 | MongoCollection::ensureIndex | Added "wtimeout" option.
 | MongoCollection::insert | Added "wtimeout" option.
 | MongoCollection::remove | Добавлена опция "wtimeout".
 | MongoCollection::update | Added "wtimeout" option.
1.3.3 | MongoClient::getReadPreference | The return value has changed to be consistent with MongoClient::setReadPreference. The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.
 | MongoCollection::getReadPreference | The return value has changed to be consistent with MongoCollection::setReadPreference. The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.
 | MongoDB::getReadPreference | The return value has changed to be consistent with MongoDB::setReadPreference. The type value was changed from a number to a string, type_string was removed, and tagsets now expresses tags as key/value pairs instead of colon-delimited strings.
1.3.0 | MongoClient::close | The connection parameter to this function was added in 1.3.0. Before that, only the write connection would be closed by this method.
 | MongoClient::__construct | Added "readPreference", "readPreferenceTags", "w", and "wTimeout" options.
 | MongoCollection::batchInsert | Added "w" option.
 | MongoCollection::ensureIndex | Added "w" option. The options parameter no longer accepts a boolean to signify a unique index. Instead, this now has to be done with array('unique' => true).
 | MongoCollection::insert | Added "w" option. The options parameter no longer accepts a boolean to signify an acknowledged write. Instead, this now has to be done with array('w' => 1) (the default behaviour of MongoClient).
 | MongoCollection::remove | Добавлена опция "w". Параметр options больше не принимает логические значения для определения поведения как "justOne". Вместо этого необходимо использовать array('justOne' => true).
 | MongoCollection::update | Added "w" option. The options parameter no longer accepts a boolean to signify an upsert. Instead, this now has to be done with array('upsert' => true).
 | MongoDB::listCollections | Added the includeSystemCollections parameter.
 | MongoGridFSCursor::key | The document's _id is returned as a string value, since the key should be unique. Pre-1.3.0, filename was returned.
1.2.11 | Mongo::getPoolSize | Emits E_DEPRECATED when used.
 | Mongo::getSlave | Emits E_DEPRECATED when used.
 | Mongo::getSlaveOkay | Emits E_DEPRECATED when used.
 | Mongo::poolDebug | Emits E_DEPRECATED when used.
 | Mongo::setSlaveOkay | Emits E_DEPRECATED when used.
 | Mongo::switchSlave | Emits E_DEPRECATED when used.
 | MongoBinData::__construct | Emits E_DEPRECATED when the second argument is not used. The default value for type may change in the near future.
 | MongoCollection::ensureIndex | Emits E_DEPRECATED when options is scalar.
 | MongoCollection::getSlaveOkay | Emits E_DEPRECATED when used.
 | MongoCollection::group | Emits E_DEPRECATED when options is scalar.
 | MongoCollection::remove | Ошибка уровня E_DEPRECATED если options скалярного типа.
 | MongoCollection::setSlaveOkay | Emits E_DEPRECATED when used.
 | MongoCollection::update | Emits E_DEPRECATED when options is scalar.
 | MongoCursor::doQuery | Emits E_DEPRECATED when used.
 | MongoDB::authenticate | Emits E_DEPRECATED when used. Please pass in the authentication details to the constructor.
 | MongoDB::forceError | Emits E_DEPRECATED when used.
 | MongoDB::getSlaveOkay | Emits E_DEPRECATED when used.
 | MongoDB::prevError | Emits E_DEPRECATED when used.
 | MongoDB::resetError | Emits E_DEPRECATED when used.
 | MongoDB::setSlaveOkay | Emits E_DEPRECATED when used.
 | MongoPool::getSize | Emits E_DEPRECATED when used.
 | MongoPool::info | Emits E_DEPRECATED when used.
 | MongoPool::setSize | Emits E_DEPRECATED when used.
1.2.10 | MongoClient::getHosts | Support for non-replicasets was added. The returned array elements now also include the hostname and port.
1.2.7 | MongoCollection::batchInsert | Added "continueOnError" option.
1.2.5 | MongoGridFS::storeUpload | Changed second parameter to an array of metadata. Pre-1.2.5, the second parameter was an optional string overriding the filename.
1.2.0 | MongoClient::close | Before version 1.2.0 the driver would not use persistent connections by default, and all connections would be closed as soon as a MongoDB connection went out if scope. Since version 1.2.0 this is no longer the case and it is a bad idea to call close as you might end up overloading the server with connections under high load.
 | MongoClient::__construct | Added "username" and "password" options. Removed "persist" option, as all connections are now persistent. It can still be used, but it doesn't affect anything. "persist" If the connection should be persistent. If set, the connection will be persistent. The string representation of the value is used as an ID for the connection, so two instances of MongoClient that are initialized with array("persist" => "foobar") will share the same database connection, whereas an instance initialized with array("persist" => "barbaz") will use a different database connection. The "replicaSet" option now takes a string, not a boolean.
 | MongoCollection::ensureIndex | Added "timeout" option.
 | MongoCollection::insert | Added "timeout" option.
 | MongoCollection::remove | Добавлена опция "timeout".
 | MongoCollection::save | Added "timeout" option.
 | MongoCollection::update | Added "timeout" option.
 | MongoDB::command | Added options parameter with a single option: "timeout".
1.1.0 | MongoCursor::info | Added a number of other fields, including id (the cursor id), at (the driver's counter of which document is current), numReturned (the number returned by the server in the current batch), and server (which server the query was sent to—useful in conjunction with .
1.0.11 | MongoCollection::ensureIndex | The "safe" option will trigger a primary failover, if necessary. MongoException will be thrown if the index name (either generated or set) is longer than 128 bytes.
 | MongoCollection::insert | Disconnects on "not master" errors if "safe" is set.
 | MongoCollection::remove | Ошибки сброса соединения на "не мастере" если установлена "safe".
 | MongoCollection::save | Disconnects on "not master" errors if "safe" is set.
 | MongoCollection::update | Disconnects on "not master" errors if "safe" is set.
1.0.10 | MongoCursor::info | Added started_iterating field, a boolean indicating if cursor is pre- or post-query.
1.0.9 | MongoClient::__construct | Added "replicaSet" option.
 | MongoCollection::batchInsert | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option.
 | MongoCollection::insert | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option. The return type was changed to be an array containing error information if the "safe" option is used. Otherwise, a boolean is returned as before.
 | MongoCollection::remove | Добавлена возможность передавать целые числа в опцию "safe", которая ранее принимала только логические значения. Добавлена опция "fsync". Тип возвращаемого значения изменен на массив, содержащий информацию об ошибке если установлена опция "safe". В протовном случае, как и раньше, возвращается логическое значения.
 | MongoCollection::save | Added "fsync" option.
 | MongoCollection::update | Added ability to pass integers to the "safe" option, which previously only accepted booleans. Added "fsync" option. The return type was changed to be an array containing error information if the "safe" option is used. Otherwise, a boolean is returned as before.
1.0.7 | MongoCollection::count | Добавлены limit и skip как второй и третий параметр соотвественно
1.0.5 | MongoCollection::batchInsert | Added options parameter.
 | MongoCollection::ensureIndex | Added the "name" option to override index name creation.
 | MongoCollection::remove | Второй парамент теперь принимает массив опция. До версии 1.0.5 второй параметр принимал логическое значение, устанавливавшее опцию "safe".
 | MongoCollection::save | Added options parameter.
 | MongoCollection::update | Added "safe" option.
1.0.2 | MongoClient::__construct | Changed constructor to take an array of options. Pre-1.0.2, the constructor took the following parameters: server The server name. connect Optional boolean parameter specifying if the constructor should connect to the database before returning. Defaults to TRUE. persistent If the connection should be persistent. paired If the connection should be paired.
 | MongoCollection::ensureIndex | Changed options parameter from boolean to array. Pre-1.0.2, the second parameter was an optional boolean value specifying a unique index.
 | MongoCollection::insert | Changed second parameter to be an array of options. Pre-1.0.2, the second parameter was a boolean indicating the "safe" option.
1.0.1 | MongoCollection::insert | Throw a MongoCursorException if the "safe" option is set and the insert fails.
 | MongoCollection::update | Changed options parameter from boolean to array. Pre-1.0.1, the second parameter was an optional boolean value specifying an upsert.


MongoDB driver

Unlike the mongo extension, this extension supports both PHP and HHVM and is developed atop the » libmongoc and » libbson libraries. It provides a minimal API for core driver functionality: commands, queries, writes, connection management, and BSON serialization.

Userland PHP libraries that depend on this extension may provide higher level APIs, such as query builders, individual command helper methods, and GridFS. Application developers should consider using this extension in conjunction with the » MongoDB PHP library, which implements the same higher level APIs found in MongoDB drivers for other languages. This separation of concerns allows the driver to focus on essential features for which an extension implementation is paramount for performance.

  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Предопределенные константы
  • Tutorials
    • Getting Started with HHVM
    • Using the PHP Library for MongoDB (PHPLIB)
  • Driver Architecture and Internals — Explains the driver architecure, and special features
    • Architecture — Architecture Overview
    • Connections — Connection handling and persistence
    • Persisting Data — Serialization and deserialization of PHP variables into MongoDB
  • Security
    • Request Injection Attacks
    • Script Injection Attacks
  • MongoDB\Driver — MongoDB driver classes
    • MongoDB\Driver\Manager — The MongoDB\Driver\Manager class
    • MongoDB\Driver\Command — The MongoDB\Driver\Command class
    • MongoDB\Driver\Query — The MongoDB\Driver\Query class
    • MongoDB\Driver\BulkWrite — The MongoDB\Driver\BulkWrite class
    • MongoDB\Driver\WriteConcern — The MongoDB\Driver\WriteConcern class
    • MongoDB\Driver\ReadPreference — The MongoDB\Driver\ReadPreference class
    • MongoDB\Driver\ReadConcern — The MongoDB\Driver\ReadConcern class
    • MongoDB\Driver\Cursor — The MongoDB\Driver\Cursor class
    • MongoDB\Driver\CursorId — The MongoDB\Driver\CursorId class
    • MongoDB\Driver\Server — The MongoDB\Driver\Server class
    • MongoDB\Driver\WriteConcernError — The MongoDB\Driver\WriteConcernError class
    • MongoDB\Driver\WriteError — The MongoDB\Driver\WriteError class
    • MongoDB\Driver\WriteResult — The MongoDB\Driver\WriteResult class
  • MongoDB\BSON — BSON type classes and serialization functions
    • Функции
    • MongoDB\BSON\Binary — The MongoDB\BSON\Binary class
    • MongoDB\BSON\Decimal128 — The MongoDB\BSON\Decimal128 class
    • MongoDB\BSON\Javascript — The MongoDB\BSON\Javascript class
    • MongoDB\BSON\MaxKey — The MongoDB\BSON\MaxKey class
    • MongoDB\BSON\MinKey — The MongoDB\BSON\MinKey class
    • MongoDB\BSON\ObjectID — The MongoDB\BSON\ObjectID class
    • MongoDB\BSON\Regex — The MongoDB\BSON\Regex class
    • MongoDB\BSON\Timestamp — The MongoDB\BSON\Timestamp class
    • MongoDB\BSON\UTCDateTime — The MongoDB\BSON\UTCDateTime class
    • MongoDB\BSON\Type — The MongoDB\BSON\Type interface
    • MongoDB\BSON\Persistable — The MongoDB\BSON\Persistable interface
    • MongoDB\BSON\Serializable — The MongoDB\BSON\Serializable interface
    • MongoDB\BSON\Unserializable — The MongoDB\BSON\Unserializable interface
  • MongoDB\Driver\Exception — Exception classes
    • MongoDB\Driver\Exception\AuthenticationException — The MongoDB\Driver\Exception\AuthenticationException class
    • MongoDB\Driver\Exception\BulkWriteException — The MongoDB\Driver\Exception\BulkWriteException class
    • MongoDB\Driver\Exception\ConnectionException — The MongoDB\Driver\Exception\ConnectionException class
    • MongoDB\Driver\Exception\ConnectionTimeoutException — The MongoDB\Driver\Exception\ConnectionTimeoutException class
    • MongoDB\Driver\Exception\Exception — The MongoDB\Driver\Exception\Exception interface
    • MongoDB\Driver\Exception\ExecutionTimeoutException — The MongoDB\Driver\Exception\ExecutionTimeoutException class
    • MongoDB\Driver\Exception\InvalidArgumentException — The MongoDB\Driver\Exception\InvalidArgumentException class
    • MongoDB\Driver\Exception\LogicException — The MongoDB\Driver\Exception\LogicException class
    • MongoDB\Driver\Exception\RuntimeException — The MongoDB\Driver\Exception\RuntimeException class
    • MongoDB\Driver\Exception\SSLConnectionException — The MongoDB\Driver\Exception\SSLConnectionException class
    • MongoDB\Driver\Exception\UnexpectedValueException — The MongoDB\Driver\Exception\UnexpectedValueException class
    • MongoDB\Driver\Exception\WriteException — The MongoDB\Driver\Exception\WriteException class


Установка и настройка

  • Требования
  • Установка
    • Installing the MongoDB PHP Driver with PECL
    • Installing the MongoDB PHP Driver on OSX with Homebrew
    • Installing the MongoDB PHP Driver on Windows
    • Manually Installing the MongoDB PHP Driver
    • Manually Installing the MongoDB HHVM Driver
  • Настройка во время выполнения
  • Предопределенные константы


Требования

The PHP variant of the driver requires PHP 5.4 or higher.

The HHVM variant of the driver requires HHVM 3.9 or higher.

The driver requires » libbson and » libmongoc, and will use bundled versions of both libraries by default.

The driver requires » OpenSSL and will rely on PHP to find its headers (i.e. PHP_SETUP_OPENSSL). If the build process fails to find OpenSSL, check that the OpenSSL development package (e.g. libssl-dev) and » pkg-config are both installed.

» Cyrus SASL is an optional dependency and will be used if available.


Установка

Содержание

  • Installing the MongoDB PHP Driver with PECL
  • Installing the MongoDB PHP Driver on OSX with Homebrew
  • Installing the MongoDB PHP Driver on Windows
  • Manually Installing the MongoDB PHP Driver
  • Manually Installing the MongoDB HHVM Driver


Installing the MongoDB PHP Driver with PECL

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/mongodb

Linux, Unix, and OS X users may run the following command to install the driver:

$ sudo pecl install mongodb

Замечание: Installing the driver via PECL will use bundled versions of » libbson and » libmongoc and rely on PHP to find OpenSSL (i.e. PHP_SETUP_OPENSSL). If the build process fails to find OpenSSL, check that the OpenSSL development package (e.g. libssl-dev) and » pkg-config are both installed.

Add the following line to your php.ini file:

extension=mongodb.so


Installing the MongoDB PHP Driver on OSX with Homebrew

If you are using » Homebrew, the PHP tap includes formulae for installing the driver on various PHP versions.

  • php54-mongodb
  • php55-mongodb
  • php56-mongodb
  • php70-mongodb

For example, you might install the driver for PHP 7.0 using the following command:

$ brew install php70-mongodb


Installing the MongoDB PHP Driver on Windows

Precompiled binaries for each release are available from » PECL for a variety of combinations of versions, thread safety, and VC libraries. Extract the archive and put php_mongodb.dll in your PHP extension directory ("ext" by default).

Add the following line to your php.ini file:

extension=php_mongodb.dll


Manually Installing the MongoDB PHP Driver

For driver developers and people interested in the latest bugfixes, you can compile the driver from the latest source code on » Github. Run the following commands to clone and build the project:

$ git clone https://github.com/mongodb/mongo-php-driver.git
$ cd mongo-php-driver
$ git submodule sync && git submodule update --init
$ phpize
$ ./configure
$ make all -j 5
$ sudo make install

Замечание: By default, the driver will use bundled versions of » libbson and » libmongoc and rely on PHP to find OpenSSL (i.e. PHP_SETUP_OPENSSL). If the build process fails to find OpenSSL, check that the OpenSSL development package (e.g. libssl-dev) and » pkg-config are both installed.

The last step will report where mongodb.so has been installed, similar to:

Installing shared extensions:     /usr/lib/php/extensions/debug-non-zts-20151012/

Ensure that the extension_dir option in php.ini points to the directory where mongodb.so was installed. You can query the option by running:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/debug-non-zts-20151012 =>
                   /usr/lib/php/extensions/debug-non-zts-20151012

If the directories differ, either change extension_dir in php.ini or manually move mongodb.so to the correct directory.

Add the following line to your php.ini file:

extension=mongodb.so


Manually Installing the MongoDB HHVM Driver

At the time of this writing, HHVM does not have a package manager for extensions. Download the latest driver from » GitHub. Alternatively, you may clone the repository to build the latest source code:

$ git clone https://github.com/mongodb/mongo-hhvm-driver.git
$ cd mongo-hhvm-driver
$ git submodule sync && git submodule update --init --recursive

Set up the make files by running:

$ hphpize
$ cmake .

Generate the configure files for the bundled libraries. For this this to work, you need to have the automake, autoconf, and libtool packages installed (e.g. through apt-get).

$ make configlib

Build and install the driver by running:

$ make -j 5
$ sudo make install

Замечание:

If the hphpize command is not available, you will need to either compile HHVM from source or install the hhvm-dev package (e.g. through apt-get).

The last step will report where mongodb.so has been installed, similar to:

Installing:     /usr/local/hhvm/3.9.1/lib/hhvm/extensions/20150212/mongodb.so

Add the following line to your php.ini file (usually found in "/etc/hhvm"):

hhvm.dynamic_extension_path=/usr/local/hhvm/3.9.1/lib/hhvm/extensions/20150212
hhvm.dynamic_extensions[mongodb]=mongodb.so


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

mongodb Опции настройки
Имя | По умолчанию | Меняемо | Список изменений | Comments
mongodb.debug | "" | PHP_INI_ALL |  | Only available for the PHP driver, and not the HHVM one

Краткое разъяснение конфигурационных директив.

mongodb.debug string

Store full activity debug log in this directory or stream. The special value "stderr" can be provided to write to STDERR.

Замечание:

Not available for HHVM


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MONGODB_VERSION (string)
x.y.z style version number of the extension
MONGODB_STABILITY (string)
Current stability (alpha/beta/stable)


Tutorials

In this section you will find several tutorials on how to use the MongoDB driver for PHP and HHVM. Because the drivers work exactly the same, they share common usage tutorials, but have a separate installation sections.

  • Getting Started with HHVM
  • Using the PHP Library for MongoDB (PHPLIB)


Getting Started with HHVM

In this section you will learn how to set-up NGINX with HHVM and MongoDB. However, this tutorial is not meant to be an all inclusive guide on how to run NGINX and HHVM in a production environment.

In this tutorial, we will be using a Debian system with NGINX installed through apt-get and HHVM installed from source or pre-built packages into /usr/local/hhvm/3.9.1 (with the binary located at /usr/local/hhvm/3.9.1/bin/hhvm).

Installing NGINX

We simply install NGINX by running apt-get install nginx-full. If NGINX fails to start after installation, it is likely that you already have another web server (e.g. Apache) running on the same port. In that case, you will see the following lines in /var/log/nginx/error.log:

2015/09/29 10:19:27 [emerg] 22445#22445: bind() to 0.0.0.0:80 failed (98:Address already in use)
2015/09/29 10:19:27 [emerg] 22445#22445: bind() to [::]:80 failed (98: Address already in use)

To resolve this, you can either change the default port for NGINX or Apache, stop the Apache process with service apache2 stop, or remove Apache entirely with apt-get remove apache2.

Installing HHVM

This tutorial is written from the perspective of an extension developer, so we've installed HHVM from source to faciliate patch development and ensure that debug symbols are available. That said, the folks at Facebook also provide pre-built packages, which is probably what you will want to use in production and development. You can find installation instructions for these packages on the » HHVM Wiki.

You will need to install both the the hhvm and hhvm-dev packages. The latter is needed so that we can compile the MongoDB HHVM extension later on.

If you are compiling HHVM from source, you will need to create /var/run/hhvm:

sudo mkdir -p /var/run/hhvm
sudo chown www-data.www-data /var/run/hhvm
sudo mkdir /etc/hhvm
sudo touch /etc/hhvm/php.ini
# So that you don't have to ``sudo`` to edit the file
sudo chown derick /etc/hhvm/php.ini
# To see whether it actually works
echo "date.timezone=Europe/London" >> /etc/hhvm/php.ini

HHVM should be started as the www-data user. For the purposes of this tutorial, we can run it in the foreground in server mode as follows:

sudo -u www-data -s /usr/local/hhvm/3.9.1/bin/hhvm \
 --mode server \
 -vServer.Type=fastcgi \
 -vServer.FileSocket=/var/run/hhvm/sock

Making NGINX Talk to HHVM

Once HHVM runs, we need to tell NGINX how to talk to HHVM for executing .php files. Although this is perhaps not the cleanest approach, you can add the following snippet to /etc/nginx/sites-enabled/default, just after the location / { ... } section:

location ~ \.php$ {
   fastcgi_pass unix:/var/run/hhvm/sock;
   fastcgi_index index.php;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   include fastcgi_params;
}

After adding that snippet, you should restart NGINX:

sudo service nginx restart

To confirm that everything works so far, we will create a project directory with an index.php file that calls phpinfo():

  • Create the project directory: sudo mkdir -p /var/www/html/my-first-project

  • Change permissions to your user and the www-data group: sudo chown derick.www-data /var/www/html/my-first-project

  • Create the file /var/www/html/my-first-project/index.php. From now on, I will not include the full path /var/www/html/my-first-project/ when I mention file names. Put the following content in this file:

    <?php
    phpinfo    ();
    ?>

Now, in your browser, request the page http://gargleblaster/my-first-project/index.php (but adjust the hostname). This should then show a page starting with "HHVM Version 3.9.1" followed by several tables with information.

Installing the MongoDB Driver for HHVM

The MongoDB driver is the part that links up the PHP in HHVM with the database server. To install and register the driver with HHVM, you need to follow the steps in Manually Installing the MongoDB HHVM Driver.

After you have installed and enabled the extension, HHVM will need to be restarted. If you have HHVM running in the shell from earlier, stop it with Ctrl-C and restart it again as above:

sudo -u www-data -s /usr/local/hhvm/3.9.1/bin/hhvm \
   --mode server \
   -vServer.Type=fastcgi \
   -vServer.FileSocket=/var/run/hhvm/sock

In order to test that the driver is loaded, edit the index.php file and replace its contents with:

<?php
var_dump(phpversion("mongodb"));
?>

This should output something similar to:

string(5) "x.y.z"

Further Reading

Continue this tutorial by jumping to Using the PHP Library for MongoDB (PHPLIB).


Using the PHP Library for MongoDB (PHPLIB)

After the initial driver set-up, we will continue explaining how to get started with the MongoDB driver and corresponding userland library to write our first project.

Installing the PHP Library with Composer

The last thing we still need to install to get started on the application itself, is the PHP library.

The library needs to be installed with » Composer, a package manager for PHP. Instructions for installing Composer on various platforms may be found on its website.

Install the library by running:

$ composer require "mongodb/mongodb=^1.0.0"

It will output something akin to:

./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 will create several files: composer.json, composer.lock, and a vendor directory that will contain the library and any other dependencies your project might require.

Using the PHP Library

In addition to managing your dependencies, Composer will also provide you with an autoloader (for those dependencies' classes). Ensure that it is included at the start of your script or in your application's bootstrap code:

<?php
// This path should point to Composer's autoloader
require 'vendor/autoload.php';

With this done, you can now use any of the functionality as described in the » library documentation and its » API.

If you have previously used the old driver (i.e. mongo extension), the library's API should look familiar. It contains a » Client class for connecting to MongoDB, and » Database class for database-level operations (e.g. commands, collection management) and a » Collection class for collection-level operations (e.g. » CRUD methods, index management). Various Collection methods have been renamed for clarity, and to be in accordance with a new language-agnostic » specification.

As an example, this is how you insert a document into the beers collection of the demo database:

<?php
require 'vendor/autoload.php'; // include Composer goodies

$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;

$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );

echo "Inserted with Object ID '{$result->getInsertedId()}'";
?>

Instead of injecting the generated _id field into the input document (as was done in the old driver), it is now made available through the result object returned by the insertOne method.

After insertion, you can of course also query the data that you have just inserted. For that, you use the find method, which returns an iterable cursor:

<?php
require 'vendor/autoload.php'; // include Composer goodies

$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";
}
?>

While it may not be apparent in the examples, BSON documents and arrays are unserialized as type classes in the library by default. These classes ensure that values preserve their type when being serialized back into BSON, which avoids a caveat in the old driver where arrays might turn into documents, and vice versa. Additionally, the classes extend ArrayObject for enhanced usability. You can find more information on how serialization and deserialization between PHP variables and BSON is handled by the driver and library by reading the Persisting Data specification.


Explains the driver architecure, and special features

  • Architecture — Architecture Overview
  • Connections — Connection handling and persistence
  • Persisting Data — Serialization and deserialization of PHP variables into MongoDB
    • Serialization to BSON
    • Deserialization from BSON


Architecture Overview

This section explains how all the different parts of the driver fit together. From the different language runtimes, through the extensions and to the PHP libraries on top. This new architecture has replaced the old mongo extension. We refer to the new one as the mongodb extension.

At the top of this stack sits a pure » PHP library, which we will distribute as a Composer package. This library will provide an API similar to what users have come to expect from the old mongo driver (e.g. CRUD methods, database and collection objects, command helpers) and we expect it to be a common dependency for most applications built with MongoDB. This library will also implement common » specifications, in the interest of improving API consistency across all of the » drivers maintained by MongoDB (and hopefully some community drivers, too).

Sitting below that library we have the lower level drivers—one per platform. These extensions will effectively form the glue between PHP and HHVM and our system libraries (» libmongoc and » libbson). These extensions will expose an identical public API for the most essential and performance-sensitive functionality:

  • Connection management
  • BSON encoding and decoding
  • Object document serialization (to support ODM libraries)
  • Executing commands and write operations
  • Handling queries and cursors

By decoupling the driver internals and a high-level API into extensions and PHP libraries, respectively, we hope to reduce our maintainence burden and allow for faster iteration on new features. As a welcome side effect, this also makes it easier for anyone to contribute to the driver. Additionally, an identical public API for these extensions will make it that much easier to port an application across PHP runtimes, whether the application uses the low-level driver directly or a higher-level PHP library.

» GridFS is a great example of why we chose this direction. Although we implemented GridFS in C for our old mongo driver, it is actually quite a high-level specification. Its API is just an abstraction for accessing two collections: files (i.e. metadata) and chunks (i.e. blocks of data). Likewise, all of the syntactic sugar found in the old mongo driver, such as processing uploaded files or exposing GridFS files as PHP streams, can be implemented in pure PHP. Provided we have performant methods for reading from and writing to GridFS' collections - and thanks to our low level extensions, we will - shifting this API to PHP is win-win.

Earlier I mentioned that we expect the PHP library to be a common dependency for most applications, but not all. Some users may prefer to stick to the no-frills API offered by the extensions, or create their own high-level abstraction (akin to » Doctrine MongoDB for the old mongo driver). Future libraries could include a PHP library geared for MongoDB administration, which provides an API for various user management and ops commands. The next major version of » Doctrine MongoDB ODM will likely also sit directly atop the extensions.

While we will continue to maintain and support the old mongo driver and its users for the foreseeable future, we invite everyone to use the next-generation driver and consider it for any new projects going forward. You can find all of the essential components across GitHub and JIRA:

Driver Source Code and JIRA Locations
Project | GitHub | JIRA
PHP Library | » mongodb/mongo-php-library | » PHPLIB
PHP 5 and PHP 7 Driver (phongo) | » mongodb/mongo-php-driver | » PHPC
HHVM Driver (hippo) | » mongodb/mongo-hhvm-driver | » HHVM

The existing » PHP project in JIRA will remain open for reporting bugs against the old mongo driver, but we would ask that you use the new projects above for anything pertaining to our next-generation drivers.


Connection handling and persistence

Подсказка

На Unix, драйвер MongoDB чувствителен к сценариям, которые используют системный вызов fork() без последующего exec(). Пользователям рекомендуется не переиспользовать экземпляр MongoDB\Driver\Manager в дочернем процессе. child process.

Connection and topology persistence (PHP and HHVM versions since 1.2.0)

All versions of the driver since 1.2.0 persist the » libmongoc client object in the PHP worker process, which allows it to re-use database connections, authentication states, and topology information across multiple requests.

When MongoDB\Driver\Manager::__construct() is invoked, a hash is created from its arguments (i.e. URI string and array options). The driver will attempt to find a previously persisted » libmongoc client object for that hash. If an existing client cannot be found for the hash, a new client will be created (and persisted for future use).

Each client contains its own database connections and a view of the server topology (e.g. standalone, replica set, shard cluster). By persisting the client between PHP requests, the driver is able to re-use established database connections and remove the need for » discovering the server topology on each request.

Consider the following example:

<?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]));
}

?>

The first two Manager objects will share the same » libmongoc client since their constructor arguments are identical. The third and fourth objects will each use their own client. In total, three clients will be created and the PHP worker executing this script will open two connections to 127.0.0.1 and one connection to each of rs1.example.com and rs2.example.com. If the driver discovers additional members of the replica set after issuing isMaster commands, it will open additional connections to those servers as well.

If the same worker executes the script again in a second request, the three clients will be re-used and no new connections should be made. Depending on how long ago the previous request was served, the driver may need to issue additional isMaster commands to update its view of the topologies.

Socket persistence (PHP versions before 1.2.0)

Versions of the PHP driver before 1.2.0 utilize PHP's Streams API for database connections, using an API within » libmongoc to designate custom handlers for socket communication; however, a new libmongoc client is created for each MongoDB\Driver\Manager. As a result, the driver persists individual database connections but not authentication state or topology information. This means that the driver needs to issue commands at the start of each request to authenticate and » discover the server topology.

Database connections are persisted by a hash derived from the server's host, port, and the URI string used to construct the MongoDB\Driver\Manager. The constructor's array options are not included in this hash.

Замечание: Versions of the driver >= 1.1.8 and < 1.2.0 do not persist sockets for SSL connections. See » PHPC-720 for additional information.

Despite its shortcomings with persisting SSL connections when and topology information, this version of the driver supports all SSL context options since it uses PHP's Streams API.

No persistence (HHVM versions before 1.2.0)

Versions of the HHVM driver before 1.2.0 do not persist sockets, authentication state, or topology information. Socket communication uses » libmongoc entirely.


Serialization and deserialization of PHP variables into MongoDB

Содержание

  • Serialization to BSON
  • Deserialization from BSON

This document discusses the methods how compound structures (documents, arrays, objects) are persisted through the drivers. And how they are brought back into PHP land.


Serialization to BSON

Arrays

If an array is a packed array — i.e. the keys start at 0 and are sequential without gaps: BSON array.

If the array is not packed — i.e. having associative (string) keys, the keys don't start at 0, or when there are gaps:: BSON object

A top-level (root) document, always serializes as a BSON document.

Examples

These serialize as a BSON array:

[ 8, 5, 2, 3 ] => [ 8, 5, 2, 3 ]
[ 0 => 4, 1 => 9 ] => [ 4, 9 ]

These serialize as a BSON document:

[ 0 => 1, 2 => 8, 3 => 12 ] => { "0" : 1, "2" : 8, "3" : 12 }
[ "foo" => 42 ] => { "foo" : 42 }
[ 1 => 9, 0 => 10 ] => { "1" : 9, "0" : 10 }

Note that the five examples are extracts of a full document, and represent only one value inside a document.

Objects

If an object is of the stdClass class, serialize as a BSON document.

If an object is a supported class that implements MongoDB\BSON\Type, then use the BSON serialization logic for that specific type. MongoDB\BSON\Type instances (excluding MongoDB\BSON\Serializable may only be serialized as a document field value. Attempting to serialize such an object as a root document will throw a MongoDB\Driver\Exception\UnexpectedValueException

If an object is of an unknown class implementing the MongoDB\BSON\Type interface, then throw a MongoDB\Driver\Exception\UnexpectedValueException

If an object is of any other class, without implementing any special interface, serialize as a BSON document. Keep only public properties, and ignore protected and private properties.

If an object is of a class that implements the MongoDB\BSON\Serializable interface, call MongoDB\BSON\Serializable::bsonSerialize() and use the returned array or stdClass to serialize as a BSON document or array. The BSON type will be determined by the following:

  1. Root documents must be serialized as a BSON document.

  2. MongoDB\BSON\Persistable objects must be serialized as a BSON document.

  3. If MongoDB\BSON\Serializable::bsonSerialize() returns a packed array, serialize as a BSON array.

  4. If MongoDB\BSON\Serializable::bsonSerialize() returns a non-packed array or stdClass, serialize as a BSON document.

  5. If MongoDB\BSON\Serializable::bsonSerialize() did not return an array or stdClass, throw an MongoDB\Driver\Exception\UnexpectedValueException exception.

If an object is of a class that implements the MongoDB\BSON\Persistable interface (which implies MongoDB\BSON\Serializable obtain the properties in a similar way as in the previous paragraphs, but also add an additional property __pclass as a Binary value, with subtype 0x80 and data bearing the fully qualified class name of the object that is being serialized.

The __pclass property is added to the array or object returned by MongoDB\BSON\Serializable::bsonSerialize(), which means it will overwrite any __pclass key/property in the MongoDB\BSON\Serializable::bsonSerialize() return value. If you want to avoid this behaviour and set your own __pclass value, you must not implement MongoDB\BSON\Persistable and should instead implement MongoDB\BSON\Serializable directly.

Examples

<?php

class stdClass {
  public $foo = 42;
} // => { "foo" : 42 }

class MyClass {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
} // => { "foo" : 42 }

class AnotherClass1 implements MongoDB\BSON\Serializable {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
  function bsonSerialize() {
      return [ 'foo' => $this->foo, 'prot' => $this->prot ];
  }
} // => { "foo" : 42, "prot" : "wine" }

class AnotherClass2 implements MongoDB\BSON\Serializable {
  public $foo = 42;
  function bsonSerialize() {
      return $this;
  }
} // => MongoDB\Driver\Exception\UnexpectedValueException("bsonSerialize() did not return an array or stdClass")

class AnotherClass3 implements MongoDB\BSON\Serializable {
  private $elements = [ 'foo', 'bar' ];
  function bsonSerialize() {
      return $this->elements;
  }
} // => { "0" : "foo", "1" : "bar" }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass4 implements MongoDB\BSON\Serializable {
    private $elements = [ 0 => 'foo', 2 => 'bar' ];
    function bsonSerialize() {
      return $this->elements;
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : { "0" : "foo", "2" : "bar" } }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass5 implements MongoDB\BSON\Serializable {
    private $elements = [ 0 => 'foo', 2 => 'bar' ];
    function bsonSerialize() {
      return array_values($this->elements);
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : [ "foo", "bar" ] }

class ContainerClass implements MongoDB\BSON\Serializable {
  public $things = AnotherClass6 implements MongoDB\BSON\Serializable {
    private $elements = [ 'foo', 'bar' ];
    function bsonSerialize() {
      return (object) $this->elements;
    }
  }
  function bsonSerialize() {
      return [ 'things' => $this->things ];
  }
} // => { "things" : { "0" : "foo", "1" : "bar" } }

class UpperClass implements MongoDB\BSON\Persistable {
  public $foo = 42;
  protected $prot = "wine";
  private $fpr = "cheese";
  function bsonSerialize() {
      return [ 'foo' => $this->foo, 'prot' => $this->prot ];
  }
} // => { "foo" : 42, "prot" : "wine", "__pclass" : { "$type" : "80", "$binary" : "VXBwZXJDbGFzcw==" } }


Deserialization from BSON

For compound types, there are three data types:

root

refers to the top-level BSON document only

document

refers to embedded BSON documents only

array

refers to a BSON array

Each of those three data types can be mapped against different PHP types. The possible mapping values are:

not set or NULL (the is the default)

  • A BSON array will be deserialized as a PHP array.

  • A BSON document (root or embedded) without a __pclass property [1] becomes a PHP stdClass object, with each BSON document key set as a public stdClass property.

  • A BSON document (root or embedded) with a __pclass property [1] becomes a PHP object of the class name as defined by the __pclass property.

    If the named class implements the MongoDB\BSON\Persistable interface, then the properties of the BSON document, including the __pclass property, are sent as an associative array to the MongoDB\BSON\Unserializable::bsonUnserialize() function to initialise the object's properties.

    If the named class does not exist or does not implement the MongoDB\BSON\Persistable interface, stdClass will be used and each BSON document key (including __pclass) will be set as a public stdClass property.

"array"

Turns a BSON array or BSON document into a PHP array. There will be no special treatment of a __pclass property [1], but it may be set as an element in the returned array if it was present in the BSON document.

"object" or "stdClass"

Turns a BSON array or BSON document into a stdClass object. There will be no special treatment of a __pclass property [1], but it may be set as a public property in the returned object if it was present in the BSON document.

any other string

Defines the class name that the BSON array or BSON object should be deserialized as. For BSON objects that include __pclass properties, that class will take priority.

If the named class does not exist, is not concrete (i.e. it is abstract or an interface), or does not implement MongoDB\BSON\Unserializable then an MongoDB\Driver\Exception\InvalidArgumentException exception is thrown.

If the BSON object has a __pclass property and that class exists and implements MongoDB\BSON\Persistable it will supersede the class provided in the type map.

The properties of the BSON document, including the __pclass property if it exists, will be sent as an associative array to the MongoDB\BSON\Unserializable::bsonUnserialize() function to initialise the object's properties.

TypeMaps

TypeMaps can be set through the MongoDB\Driver\Cursor::setTypeMap() method on a MongoDB\Driver\Cursor object, or the $typeMap argument of MongoDB\BSON\toPHP(). Each of the three classes (root, document and array) can be individually set.

If the value in the map is NULL, it means the same as the default value for that item.

Examples

These examples use the following classes:

MyClass

which does not implement any interface

YourClass

which implements MongoDB\BSON\Unserializable

OurClass

which implements MongoDB\BSON\Persistable

TheirClass

which extends OurClass

The MongoDB\BSON\Unserializable::bsonUnserialize() method of YourClass, OurClass, TheirClass iterate over the array and set the properties without modifications. It also sets the $unserialized property to true:

<?php

function bsonUnserialize( array $map )
{
    foreach ( $map as $k => $value )
    {
        $this->$k = $value;
    }
    $this->unserialized = true;
}

/* typemap: [] (all defaults) */
{ "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") }


  • « Deserialization from BSON
  • Request Injection Attacks »
  • PHP Manual
  • MongoDB
  • Security

Security

  • Request Injection Attacks
  • Script Injection Attacks


Request Injection Attacks

If you are passing $_GET (or $_POST) parameters to your queries, make sure that they are cast to strings first. Users can insert associative arrays in GET and POST requests, which could then become unwanted $-queries.

A fairly innocuous example: suppose you are looking up a user's information with the request http://www.example.com?username=bob. Your application creates the query $q = new \MongoDB\Driver\Query( [ 'username' => $_GET['username'] ]).

Someone could subvert this by getting http://www.example.com?username[$ne]=foo, which PHP will magically turn into an associative array, turning your query into $q = new \MongoDB\Driver\Query( [ 'username' => [ '$ne' => 'foo' ] ] ), which will return all users not named "foo" (all of your users, probably).

This is a fairly easy attack to defend against: make sure $_GET and $_POST parameters are the type you expect before you send them to the database. PHP has the filter_var() function to assist with this.

Note that this type of attack can be used with any databases interation that locates a document, including updates, upserts, deletes, and findAndModify commands.

See » the main documentation for more information about SQL-injection-like issues with MongoDB.


Script Injection Attacks

If you are using JavaScript, make sure that any variables that cross the PHP- to-JavaScript boundry are passed in the scope field of MongoDB\BSON\Javascript, not interpolated into the JavaScript string. This can come up when using $where clauses in queries, mapReduce and group commands, and any other time you may pass JavaScript into the database.

For example, suppose we have some JavaScript to greet a user in the database logs. We could do:

<?php
$m = new MongoDB\Driver\Manager;

// Don't do this!!!
$username = $_GET['field'];

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "print('Hello, $username!');"
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

However, what if a malicious user passes in some JavaScript?

<?php
$m = new MongoDB\Driver\Manager;

// Don't do this!!!
$username = $_GET['field'];
// $username is set to "'); db.users.drop(); print('"

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "print('Hello, $username!');"
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

Now MongoDB executes the JavaScript string "print('Hello, '); db.users.drop(); print('!');". This attack is easy to avoid: use args to pass variables from PHP to JavaScript:

<?php
$m = new MongoDB\Driver\Manager;

$_GET['field'] = 'derick';
$args = [ $_GET['field'] ];

$cmd = new \MongoDB\Driver\Command( [
    'eval' => "function greet(username) { print('Hello, ' + username + '!'); }",
    'args' => $args,
] );

$r = $m->executeCommand( 'dramio', $cmd );
?>

This adds an argument to the JavaScript scope, which gets used as argument for the greet function. Now if someone tries to send malicious code, MongoDB will harmlessly print Hello, '); db.dropDatabase(); print('!.

Using arguments helps to prevent malicious input from being executed by the database. However, you must make sure that your code does not turn around and execute the input anyway! It is best to avoid executing any JavaScript on the server in the first place.

You are strongly recommended to stay clear of the » $where clause with queries, as it impacts performance significantly. Where possible, use either normal query operators, or the » Aggregation Framework.

As alternative to » MapReduce, which uses JavaScript, consider using the » Aggregation Framework. Unlike Map/Reduce, it uses an idiomatic language to construct queries, without having to write, and use, the slower JavaScript approach that Map/Reduce requires.

The » eval command has been deprecated since MongoDB 3.0, and should also be avoided.


MongoDB driver classes

  • MongoDB\Driver\Manager — The MongoDB\Driver\Manager class
    • MongoDB\Driver\Manager::__construct — Create new MongoDB Manager
    • MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations
    • MongoDB\Driver\Manager::executeCommand — Execute a database command
    • MongoDB\Driver\Manager::executeQuery — Execute a database query
    • MongoDB\Driver\Manager::getServers — Return the servers to which this manager is connected
    • MongoDB\Driver\Manager::selectServer — Select a server matching a read preference
  • MongoDB\Driver\Command — The MongoDB\Driver\Command class
    • MongoDB\Driver\Command::__construct — Create a new Command
  • MongoDB\Driver\Query — The MongoDB\Driver\Query class
    • MongoDB\Driver\Query::__construct — Construct new Query
  • MongoDB\Driver\BulkWrite — The MongoDB\Driver\BulkWrite class
    • MongoDB\Driver\BulkWrite::__construct — Create a new BulkWrite
    • MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk
    • MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk
    • MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk
    • MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk
  • MongoDB\Driver\WriteConcern — The MongoDB\Driver\WriteConcern class
    • MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\WriteConcern::__construct — Construct immutable WriteConcern
    • MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option
    • MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option
    • MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option
  • MongoDB\Driver\ReadPreference — The MongoDB\Driver\ReadPreference class
    • MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ReadPreference::__construct — Construct immutable ReadPreference
    • MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option
    • MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option
  • MongoDB\Driver\ReadConcern — The MongoDB\Driver\ReadConcern class
    • MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization
    • MongoDB\Driver\ReadConcern::__construct — Construct immutable ReadConcern
    • MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option
  • MongoDB\Driver\Cursor — The MongoDB\Driver\Cursor class
    • MongoDB\Driver\Cursor::__construct — Create a new Cursor (not used)
    • MongoDB\Driver\Cursor::getId — Returns the ID for this cursor
    • MongoDB\Driver\Cursor::getServer — Returns the server associated with this cursor
    • MongoDB\Driver\Cursor::isDead — Checks if the cursor is still open on the server
    • MongoDB\Driver\Cursor::setTypeMap — Sets a type map to use for BSON unserialization
    • MongoDB\Driver\Cursor::toArray — Returns an array containing all results for this cursor
  • MongoDB\Driver\CursorId — The MongoDB\Driver\CursorId class
    • MongoDB\Driver\CursorId::__construct — Create a new CursorId (not used)
    • MongoDB\Driver\CursorId::__toString — String representation of the cursor ID
  • MongoDB\Driver\Server — The MongoDB\Driver\Server class
    • MongoDB\Driver\Server::__construct — Create a new Server (not used)
    • MongoDB\Driver\Server::executeBulkWrite — Execute one or more write operations on this server
    • MongoDB\Driver\Server::executeCommand — Execute a database command on this server
    • MongoDB\Driver\Server::executeQuery — Execute a database query on this server
    • MongoDB\Driver\Server::getHost — Returns the hostname of this server
    • MongoDB\Driver\Server::getInfo — Returns an array of information about this server
    • MongoDB\Driver\Server::getLatency — Returns the latency of this server
    • MongoDB\Driver\Server::getPort — Returns the port on which this server is listening
    • MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set
    • MongoDB\Driver\Server::getType — Returns an integer denoting the type of this server
    • MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set
    • MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set
    • MongoDB\Driver\Server::isPassive — Checks if this server is a passive member of a replica set
    • MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set
    • MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set
  • MongoDB\Driver\WriteConcernError — The MongoDB\Driver\WriteConcernError class
    • MongoDB\Driver\WriteConcernError::getCode — Returns the WriteConcernError's error code
    • MongoDB\Driver\WriteConcernError::getInfo — Returns additional metadata for the WriteConcernError
    • MongoDB\Driver\WriteConcernError::getMessage — Returns the WriteConcernError's error message
  • MongoDB\Driver\WriteError — The MongoDB\Driver\WriteError class
    • MongoDB\Driver\WriteError::getCode — Returns the WriteError's error code
    • MongoDB\Driver\WriteError::getIndex — Returns the index of the write operation corresponding to this WriteError
    • MongoDB\Driver\WriteError::getInfo — Returns additional metadata for the WriteError
    • MongoDB\Driver\WriteError::getMessage — Returns the WriteError's error message
  • MongoDB\Driver\WriteResult — The MongoDB\Driver\WriteResult class
    • MongoDB\Driver\WriteResult::getDeletedCount — Returns the number of documents deleted
    • MongoDB\Driver\WriteResult::getInsertedCount — Returns the number of documents inserted (excluding upserts)
    • MongoDB\Driver\WriteResult::getMatchedCount — Returns the number of documents selected for update
    • MongoDB\Driver\WriteResult::getModifiedCount — Returns the number of existing documents updated
    • MongoDB\Driver\WriteResult::getServer — Returns the server associated with this write result
    • MongoDB\Driver\WriteResult::getUpsertedCount — Returns the number of documents inserted by an upsert
    • MongoDB\Driver\WriteResult::getUpsertedIds — Returns an array of identifiers for upserted documents
    • MongoDB\Driver\WriteResult::getWriteConcernError — Returns any write concern error that occurred
    • MongoDB\Driver\WriteResult::getWriteErrors — Returns any write errors that occurred
    • MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged


The MongoDB\Driver\Manager class

(mongodb >=1.0.0)

Введение

The MongoDB\Driver\Manager is the main entry point to the extension. It is responsible for maintaining connections to MongoDB (be it standalone server, replica set, or sharded cluster).

No connection to MongoDB is made upon instantiating the Manager. This means the MongoDB\Driver\Manager can always be constructed, even though one or more MongoDB servers are down.

Any write or query can throw connection exceptions as connections are created lazily. A MongoDB server may also become unavailable during the life time of the script. It is therefore important that all actions on the Manager to be wrapped in try/catch statements.

Обзор классов

final MongoDB\Driver\Manager {
/* Методы */
final public __construct ( string $uri [, array $options [, array $driverOptions ]] )
final public MongoDB\Driver\WriteResult executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, MongoDB\Driver\WriteConcern $writeConcern ] )
final public MongoDB\Driver\Cursor executeCommand ( string $db , MongoDB\Driver\Command $command [, MongoDB\Driver\ReadPreference $readPreference ] )
final public MongoDB\Driver\Cursor executeQuery ( string $namespace , MongoDB\Driver\Query $query [, MongoDB\Driver\ReadPreference $readPreference ] )
final public array getServers ( void )
final public MongoDB\Driver\Server selectServer ( MongoDB\Driver\ReadPreference $readPreference )
}

Примеры

Пример #1 MongoDB\Driver\Manager::__construct() basic example

var_dump()ing a MongoDB\Driver\Manager will print out various details about the manager that are otherwise not normally exposed. This can be useful to debug how the driver views your MongoDB setup, and which options are used.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
var_dump($manager);

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\Driver\Manager)#1 (3) {
  ["request_id"]=>
  int(1714636915)
  ["uri"]=>
  string(25) "mongodb://localhost:27017"
  ["cluster"]=>
  array(13) {
    ["mode"]=>
    string(6) "direct"
    ["state"]=>
    string(4) "born"
    ["request_id"]=>
    int(0)
    ["sockettimeoutms"]=>
    int(300000)
    ["last_reconnect"]=>
    int(0)
    ["uri"]=>
    string(25) "mongodb://localhost:27017"
    ["requires_auth"]=>
    int(0)
    ["nodes"]=>
    array(...)
    ["max_bson_size"]=>
    int(16777216)
    ["max_msg_size"]=>
    int(50331648)
    ["sec_latency_ms"]=>
    int(15)
    ["peers"]=>
    array(0) {
    }
    ["replSet"]=>
    NULL
  }
}

Содержание

  • MongoDB\Driver\Manager::__construct — Create new MongoDB Manager
  • MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations
  • MongoDB\Driver\Manager::executeCommand — Execute a database command
  • MongoDB\Driver\Manager::executeQuery — Execute a database query
  • MongoDB\Driver\Manager::getServers — Return the servers to which this manager is connected
  • MongoDB\Driver\Manager::selectServer — Select a server matching a read preference


Create new MongoDB Manager

  • « MongoDB\Driver\Manager
  • MongoDB\Driver\Manager::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Create new MongoDB Manager

MongoDB\Driver\Manager::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Manager::__construct — Create new MongoDB Manager

Описание

final public MongoDB\Driver\Manager::__construct ( string $uri [, array $options [, array $driverOptions ]] )

Constructs a new MongoDB\Driver\Manager object with the specified options.

Подсказка

На Unix, драйвер MongoDB чувствителен к сценариям, которые используют системный вызов fork() без последующего exec(). Пользователям рекомендуется не переиспользовать экземпляр MongoDB\Driver\Manager в дочернем процессе. child process.

Список параметров

uri

A » mongodb:// connection URI:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]

The uri is a URL, hence any special characters in its components need to be URL encoded according to » RFC 3986. This is particularly relevant to the username and password, which can often include special characters such as @, :, or %. When connecting via a Unix domain socket, the socket path may contain special characters such as slashes and must be encoded. The rawurlencode() function may be used to encode constituent parts of the URI.

options

» Connection string options.

Замечание:

Specifying options via the options argument will overwrite any options with the same name in the uri argument.

driverOptions

driverOptions
Option | Type | Description
allow_invalid_hostname bool

Disables hostname validation if TRUE. Defaults to FALSE.

Allowing invalid hostnames may expose the driver to a » man-in-the-middle attack.

ca_dir string

Path to a correctly hashed certificate directory. The system certificate store will be used by default.

Falls back to the deprecated "capath" SSL context option if not specified.

ca_file string

Path to a certificate authority file. The system certificate store will be used by default.

Falls back to the deprecated "cafile" SSL context option if not specified.

crl_file | string | Path to a certificate revocation list file.
pem_file string

Path to a PEM encoded certificate to use for client authentication.

Falls back to the deprecated "local_cert" SSL context option if not specified.

pem_pwd string

Passphrase for the PEM encoded certificate (if applicable).

Falls back to the deprecated "passphrase" SSL context option if not specified.

context resource

SSL context options to be used as fallbacks for other driver options (as specified). Note that the driver does not consult the default stream context.

This option is supported for backwards compatibility, but should be considered deprecated.

weak_cert_validation bool

Disables certificate validation if TRUE. Defaults to FALSE

Falls back to the deprecated "allow_self_signed" SSL context option if not specified.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Throws MongoDB\Driver\Exception\RuntimeException if the uri format is invalid

Список изменений

Версия Описание
1.2.0

Added the "allow_invalid_hostname", "ca_file", "ca_dir", "clr_file", "pem_file", "pem_pwd", and "weak_cert_validation" driver options.

The driver no longer supports all SSL context options via the "context" driver option, since the PHP Streams API is no longer used for socket communication.

Примеры

Пример #1 MongoDB\Driver\Manager::__construct() basic examples

Connecting to standalone MongoDB node:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://example.com:27017");

?>

Connecting to standalone MongoDB node via a Unix domain socket. The socket path may include special characters such as slashes and should be encoded with rawurlencode().

<?php

$manager = new MongoDB\Driver\Manager("mongodb://" . rawurlencode("/tmp/mongodb-27017.sock"));

?>

Connecting to a replica set:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

?>

Connecting to a sharded cluster (i.e. one or more mongos instances):

<?php

$manager = new MongoDB\Driver\Manager("mongodb://mongos1.example.com,mongos2.example.com/");

?>

Connecting to MongoDB with authentication credentials for a particular user and database:

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:mypassword@example.com/mydatabase");

?>

Connecting to MongoDB with authentication credentials for a particular user and database, where the username or password includes special characters (e.g. @, :, %). In the following example, the password string myp@ss:w%rd has been manually escaped; however, rawurlencode() may also be used to escape URI components that may contain special characters.

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:myp%40ss%3Aw%25rd@example.com/mydatabase");

?>

Connecting to MongoDB with X509 authentication:

<?php

$manager = new MongoDB\Driver\Manager(
    "mongodb://example.com/?ssl=true&authMechanism=MONGODB-X509",
    [],
    [
        "pem_file" => "/path/to/client.pem",
    ]
);
?>

Смотрите также

  • » MongoDB Connection String Format


Execute one or more write operations

  • « MongoDB\Driver\Manager::__construct
  • MongoDB\Driver\Manager::executeCommand »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute one or more write operations

MongoDB\Driver\Manager::executeBulkWrite

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeBulkWrite — Execute one or more write operations

Описание

final public MongoDB\Driver\WriteResult MongoDB\Driver\Manager::executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, MongoDB\Driver\WriteConcern $writeConcern ] )

Executes one or more write operations on the primary server.

A MongoDB\Driver\BulkWrite can be constructed with one or more write operations of varying types (e.g. updates, deletes, and inserts). The driver will attempt to send operations of the same type to the server in as few requests as possible to optimize round trips.

Список параметров

namespace (string)

Полностью определенное имя (т.е. "databaseName.collectionName").

bulk (MongoDB\Driver\BulkWrite)

MongoDB\Driver\BulkWrite для выполнения.

writeConcern (MongoDB\Driver\WriteConcern)

Опционально MongoDB\Driver\WriteConcern для наложения на операцию записи. Если не задано, то будет использовано значение из URI соединения MongoDB.

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\WriteResult.

Ошибки

  • При ошибке записи бросает исключение MongoDB\Driver\Exception\BulkWriteException.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Примеры

Пример #1 MongoDB\Driver\Manager::executeBulkWrite() example

<?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("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Matched  %d document(s)\n", $result->getMatchedCount());
printf("Updated  %d document(s)\n", $result->getModifiedCount());
printf("Upserted %d document(s)\n", $result->getUpsertedCount());
printf("Deleted  %d document(s)\n", $result->getDeletedCount());

foreach ($result->getUpsertedIds() as $index => $id) {
    printf('upsertedId[%d]: ', $index);
    var_dump($id);
}

/* If the WriteConcern could not be fulfilled */
if ($writeConcernError = $result->getWriteConcernError()) {
    printf("%s (%d): %s\n", $writeConcernError->getMessage(), $writeConcernError->getCode(), var_export($writeConcernError->getInfo(), true));
}

/* If a write could not happen at all */
foreach ($result->getWriteErrors() as $writeError) {
    printf("Operation#%d: %s (%d)\n", $writeError->getIndex(), $writeError->getMessage(), $writeError->getCode());
}
?>

Результатом выполнения данного примера будет что-то подобное:

Inserted 3 document(s)
Matched  1 document(s)
Updated  1 document(s)
Upserted 2 document(s)
Deleted  1 document(s)
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() - Execute one or more write operations on this server


Execute a database command

  • « MongoDB\Driver\Manager::executeBulkWrite
  • MongoDB\Driver\Manager::executeQuery »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database command

MongoDB\Driver\Manager::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeCommand — Execute a database command

Описание

final public MongoDB\Driver\Cursor MongoDB\Driver\Manager::executeCommand ( string $db , MongoDB\Driver\Command $command [, MongoDB\Driver\ReadPreference $readPreference ] )

Executes command on a server If readPreference is provided, it will be used for server selection; otherwise, the default read preference will be used.

Список параметров

db (string)

Имя базы данных, в которой запускается комманда.

command (MongoDB\Driver\Command)

MongoDB\Driver\Command для выполнения.

readPreference (MongoDB\Driver\ReadPreference)

Опционально MongoDB\Driver\ReadPreference для выбора сервера для этой операции. Если не задано, то он будет выбран из URI соединения MongoDB.

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).

Примеры

Пример #1 MongoDB\Driver\Manager::executeCommand() with a command returning a single result document

<?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;
}

/* The ping command returns a single result document, so we need to access the
 * first result in the cursor. */
$response = $cursor->toArray()[0];

var_dump($response);

?>

Результат выполнения данного примера:

array(1) {
  ["ok"]=>
  float(1)
}

Пример #2 MongoDB\Driver\Manager::executeCommand() with a command returning a cursor

<?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);

/* The aggregate command can optionally return its results in a cursor instead
 * of a single result document. In this case, we can iterate on the cursor
 * directly to access those results. */
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)
}

Примечания

Замечание:

This method does not take a MongoDB\Driver\WriteConcern parameter. For write commands (e.g. » findAndModify in MongoDB 3.2+), the write concern should be included in the command document itself.

If a secondary readPreference is used, it is the caller's responsibility to ensure that the command can be executed on a secondary. No validation is done by the driver.

Смотрите также

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server


Execute a database query

  • « MongoDB\Driver\Manager::executeCommand
  • MongoDB\Driver\Manager::getServers »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Execute a database query

MongoDB\Driver\Manager::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeQuery — Execute a database query

Описание

final public MongoDB\Driver\Cursor MongoDB\Driver\Manager::executeQuery ( string $namespace , MongoDB\Driver\Query $query [, MongoDB\Driver\ReadPreference $readPreference ] )

Executes query on a server. If readPreference is provided, it will be used for server selection; otherwise, the default read preference will be used.

Список параметров

namespace (string)

Полностью определенное имя (т.е. "databaseName.collectionName").

query (MongoDB\Driver\Query)

The MongoDB\Driver\Query для выполнения.

readPreference (MongoDB\Driver\ReadPreference)

Опционально MongoDB\Driver\ReadPreference для выбора сервера для этой операции. Если не задано, то он будет выбран из URI соединения MongoDB.

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid query operators).

Примеры

Пример #1 MongoDB\Driver\Manager::executeQuery() example

<?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)
}

Смотрите также

  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Query
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Server::executeQuery() - Execute a database query on this server


Return the servers to which this manager is connected

  • « MongoDB\Driver\Manager::executeQuery
  • MongoDB\Driver\Manager::selectServer »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Return the servers to which this manager is connected

MongoDB\Driver\Manager::getServers

(mongodb >=1.0.0)

MongoDB\Driver\Manager::getServers — Return the servers to which this manager is connected

Описание

final public array MongoDB\Driver\Manager::getServers ( void )

Returns an array of MongoDB\Driver\Server instances to which this manager is connected.

Замечание:

Since the driver connects to the database lazily, this method may return an empty array if called before executing an operation on the MongoDB\Driver\Manager.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of MongoDB\Driver\Server instances to which this manager is connected.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\Manager::getServers() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

/* The driver connects to the database server lazily, so Manager::getServers()
 * may initially return an empty array. */
var_dump($manager->getServers());

$command = new MongoDB\Driver\Command(['ping' => 1]);
$manager->executeCommand('db', $command);

var_dump($manager->getServers());

?>

Результатом выполнения данного примера будет что-то подобное:

array(0) {
}
array(1) {
  [0]=>
  object(MongoDB\Driver\Server)#3 (10) {
    ["host"]=>
    string(9) "localhost"
    ["port"]=>
    int(27017)
    ["type"]=>
    int(1)
    ["is_primary"]=>
    bool(false)
    ["is_secondary"]=>
    bool(false)
    ["is_arbiter"]=>
    bool(false)
    ["is_hidden"]=>
    bool(false)
    ["is_passive"]=>
    bool(false)
    ["last_is_master"]=>
    array(8) {
      ["ismaster"]=>
      bool(true)
      ["maxBsonObjectSize"]=>
      int(16777216)
      ["maxMessageSizeBytes"]=>
      int(48000000)
      ["maxWriteBatchSize"]=>
      int(1000)
      ["localTime"]=>
      object(MongoDB\BSON\UTCDateTime)#4 (1) {
        ["milliseconds"]=>
        int(1447267964517)
      }
      ["maxWireVersion"]=>
      int(3)
      ["minWireVersion"]=>
      int(0)
      ["ok"]=>
      float(1)
    }
    ["round_trip_time"]=>
    int(554)
  }
}

Смотрите также

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::selectServer() - Select a server matching a read preference


Select a server matching a read preference

  • « MongoDB\Driver\Manager::getServers
  • MongoDB\Driver\Command »
  • PHP Manual
  • MongoDB\Driver\Manager
  • Select a server matching a read preference

MongoDB\Driver\Manager::selectServer

(mongodb >=1.0.0)

MongoDB\Driver\Manager::selectServer — Select a server matching a read preference

Описание

final public MongoDB\Driver\Server MongoDB\Driver\Manager::selectServer ( MongoDB\Driver\ReadPreference $readPreference )

Selects a MongoDB\Driver\Server matching readPreference. This may be used to preselect a server in order to perform version checking before executing an operation.

Список параметров

readPreference (MongoDB\Driver\ReadPreference)

Опционально MongoDB\Driver\ReadPreference для выбора сервера для этой операции. Если не задано, то он будет выбран из URI соединения MongoDB.

Возвращаемые значения

Returns an MongoDB\Driver\Server matching the read preference.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Throws MongoDB\Driver\Exception\RuntimeException if a server matching the read preference could not be found.

Смотрите также

  • MongoDB\Driver\Server
  • MongoDB\Driver\Manager::getServers() - Return the servers to which this manager is connected
  • » Server Selection Specification


The MongoDB\Driver\Command class

(mongodb >=1.0.0)

Введение

The MongoDB\Driver\Command class is a value object that represents a database command.

To provide "Command Helpers" the MongoDB\Driver\Command object should be composed.

Обзор классов

final MongoDB\Driver\Command {
/* Методы */
final public __construct ( array|object $document )
}

Примеры

Пример #1 Composing MongoDB\Driver\Command to provide a helper to create collections

<?php
class CreateCollection {
    protected $cmd = array();

    function __construct($collectionName) {
        $this->cmd["create"] = (string)$collectionName;
    }
    function setAutoIndexId($bool) {
        $this->cmd["autoIndexId"] = (bool)$bool;
    }
    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 — Create a new Command


Create a new Command

  • « MongoDB\Driver\Command
  • MongoDB\Driver\Query »
  • PHP Manual
  • MongoDB\Driver\Command
  • Create a new Command

MongoDB\Driver\Command::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Command::__construct — Create a new Command

Описание

final public MongoDB\Driver\Command::__construct ( array|object $document )

Список параметров

document

The complete command to construct

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\Command::__construct() example

<?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)
}

Смотрите также

  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Cursor


The MongoDB\Driver\Query class

(mongodb >=1.0.0)

Введение

The MongoDB\Driver\Query class is a value object that represents a database query.

Обзор классов

final MongoDB\Driver\Query {
/* Методы */
final public __construct ( array|object $filter [, array $queryOptions ] )
}

Содержание

  • MongoDB\Driver\Query::__construct — Construct new Query


Construct new Query

  • « MongoDB\Driver\Query
  • MongoDB\Driver\BulkWrite »
  • PHP Manual
  • MongoDB\Driver\Query
  • Construct new Query

MongoDB\Driver\Query::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Query::__construct — Construct new Query

Описание

final public MongoDB\Driver\Query::__construct ( array|object $filter [, array $queryOptions ] )

Список параметров

filter (array|object)

» Предикат запроса. Пустой предикат совпадет со всеми элементами коллекции.

queryOptions

queryOptions
Option | Type | Description
allowPartialResults bool

For queries against a sharded collection, returns partial results from the mongos if some shards are unavailable instead of throwing an error.

Falls back to the deprecated "partial" option if not specified.

awaitData | bool | Use in conjunction with the "tailable" option to block a getMore operation on the cursor temporarily if at the end of data rather than returning no data. After a timeout period, the query returns as normal.
batchSize integer

The number of documents to return in the first batch. Defaults to 101. A batch size of 0 means that the cursor will be established, but no documents will be returned in the first batch.

In versions of MongoDB before 3.2, where queries use the legacy wire protocol OP_QUERY, a batch size of 1 will close the cursor irrespective of the number of matched documents.

collation array|object

» Сопоставление позволяет пользователям указывать специфичные для конкретного языка правила для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки. Если задано сопоставление, то поле "locale" также обязательно. Описание полей смотрите в разделе » Сопоставление.

Если сопоставление не задано явно, но у коллекции определено сопоставление по умолчанию, то будет использовано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк.

Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения.

comment string

A comment to attach to the query to help interpret and trace query profile data.

Falls back to the deprecated "$comment" modifier if not specified.

exhaust bool

Stream the data down full blast in multiple "more" packages, on the assumption that the client will fully read all data queried. Faster when you are pulling a lot of data and know you want to pull it all down. Note: the client is not allowed to not read all the data unless it closes the connection.

This option is not supported by the find command in MongoDB 3.2+ and will force the driver to use the legacy wire protocol version (i.e. OP_QUERY).

explain bool

If TRUE, the returned MongoDB\Driver\Cursor will contain a single document that describes the process and indexes used to return the query.

Falls back to the deprecated "$explain" modifier if not specified.

This option is not supported by the find command in MongoDB 3.2+ and will only be respected when using the legacy wire protocol version (i.e. OP_QUERY). The » explain command should be used on MongoDB 3.0+.

hint string|array|object

Index specification. Specify either the index name as a string or the index key pattern. If specified, then the query system will only consider plans using the hinted index.

Falls back to the deprecated "hint" option if not specified.

limit integer

The maximum number of documents to return. If unspecified, then defaults to no limit. A limit of 0 is equivalent to setting no limit.

A negative limit is will be interpreted as a positive limit with the "singleBatch" option set to TRUE. This behavior is supported for backwards compatibility, but should be considered deprecated.

max array|object

The exclusive upper bound for a specific index.

Falls back to the deprecated "$max" modifier if not specified.

maxScan integer

Positive integer denoting the maximum number of documents or index keys to scan when executing the query.

Falls back to the deprecated "$maxScan" modifier if not specified.

maxTimeMS integer

The cumulative time limit in milliseconds for processing operations on the cursor. MongoDB aborts the operation at the earliest following interrupt point.

Falls back to the deprecated "$maxTimeMS" modifier if not specified.

min array|object

The inclusive lower bound for a specific index.

Falls back to the deprecated "$min" modifier if not specified.

modifiers | array | » Meta operators modifying the output or behavior of a query. Use of these operators is deprecated in favor of named options.
noCursorTimeout | bool | Prevents the server from timing out idle cursors after an inactivity period (10 minutes).
oplogReplay bool

Internal use for replica sets. To use oplogReplay, you must include the following condition in the filter:

[ 'ts' => [ '$gte' => <timestamp> ] ]
projection | array|object | The » projection specification to determine which fields to include in the returned documents.
returnKey bool

If TRUE, returns only the index keys in the resulting documents. Default value is FALSE. If TRUE and the find command does not use an index, the returned documents will be empty.

Falls back to the deprecated "$returnKey" modifier if not specified.

showRecordId bool

Determines whether to return the record identifier for each document. If TRUE, adds a top-level "$recordId" field to the returned documents.

Falls back to the deprecated "$showDiskLoc" modifier if not specified.

singleBatch | bool | Determines whether to close the cursor after the first batch. Defaults to FALSE.
readConcern MongoDB\Driver\ReadConcern

Specifies the » read concern. The default level is "local".

To use a read concern level of "majority", you must use the WiredTiger storage engine with MongoDB 3.2+ and enable the feature in the server configuration.

skip | integer | Number of documents to skip. Defaults to 0.
slaveOk | bool | Allow query of replica set secondaries
sort array|object

The sort specification for the ordering of the results.

Falls back to the deprecated "$orderby" modifier if not specified.

snapshot bool

Prevents the cursor from returning a document more than once because of an intervening write operation.

Falls back to the deprecated "$snapshot" modifier if not specified.

tailable | bool | Returns a tailable cursor for a capped collection.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.2.0

Added the "allowPartialResults", "collation", "comment", "hint", "max", "maxScan", "maxTimeMS", "min", "returnKey", "showRecordId", and "snapshot" options.

Renamed the "partial" option to "allowPartialResults". For backwards compatibility, "partial" will still be read if "allowPartialResults" is not specified.

Removed the "slaveOk" option, which is obsolete. For queries using the legacy wire protocol OP_QUERY, the driver will set the slaveOk bit as needed in accordance with the » Server Selection Specification.

1.1.0 | Added the "readConcern" option.

Примеры

Пример #1 MongoDB\Driver\Query::__construct() example

<?php
/* Select only documents authord by "bjori" with at least 100 views */
$filter = [
    'author' => 'bjori',
    'views' => [
        '$gte' => 100,
    ],
];

$options = [
    /* Only return the following fields in the matching documents */
    'projection' => [
        'title' => 1,
        'article' => 1,
    ],
    /* Return the documents in descending order of views */
    '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() - Execute a database query
  • MongoDB\Driver\Cursor


The MongoDB\Driver\BulkWrite class

(mongodb >=1.0.0)

Введение

The MongoDB\Driver\BulkWrite collects one or more write operations that should be sent to the server. After adding any number of insert, update, and delete operations, the collection may be executed via MongoDB\Driver\Manager::executeBulkWrite().

Write operations may either be ordered (default) or unordered. Ordered write operations are sent to the server, in the order provided, for serial execution. If a write fails, any remaining operations will be aborted. Unordered operations are sent to the server in an arbitrary order where they may be executed in parallel. Any errors that occur are reported after all operations have been attempted.

Обзор классов

final MongoDB\Driver\BulkWrite implements Countable {
/* Методы */
public __construct ([ array $options ] )
public int count ( void )
public void delete ( array|object $filter [, array $deleteOptions ] )
public mixed insert ( array|object $document )
public void update ( array|object $filter , array|object $newObj [, array $updateOptions ] )
}

Примеры

Пример #1 Mixed write operations are grouped by type

Mixed write operations (i.e. inserts, updates, and deletes) will be assembled into typed write commands to be sent sequentially to the server.

<?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]);

?>

Will result in four write commands (i.e. roundtrips) being executed. Since the operations are ordered, the third insertion cannot be sent until the preceding update is executed.

Пример #2 Ordered write operations causing an error

<?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();

    // Check if the write concern could not be fulfilled
    if ($writeConcernError = $result->getWriteConcernError()) {
        printf("%s (%d): %s\n",
            $writeConcernError->getMessage(),
            $writeConcernError->getCode(),
            var_export($writeConcernError->getInfo(), true)
        );
    }

    // Check if any write operations did not complete at all
    foreach ($result->getWriteErrors() as $writeError) {
        printf("Operation#%d: %s (%d)\n",
            $writeError->getIndex(),
            $writeError->getMessage(),
            $writeError->getCode()
        );
    }
} catch (MongoDB\Driver\Exception\Exception $e) {
    printf("Other error: %s\n", $e->getMessage());
    exit;
}

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated  %d document(s)\n", $result->getModifiedCount());

?>

Результат выполнения данного примера:

Operation#7: E11000 duplicate key error index: db.collection.$_id_ dup key: { : 3 } (11000)
Inserted 4 document(s)
Updated  2 document(s)

If the write concern could not be fullfilled, the example above would output something like:

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)

If we execute the example above, but allow for unordered writes:

<?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 — Create a new BulkWrite
  • MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk
  • MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk
  • MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk
  • MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk


Create a new BulkWrite

  • « MongoDB\Driver\BulkWrite
  • MongoDB\Driver\BulkWrite::count »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Create a new BulkWrite

MongoDB\Driver\BulkWrite::__construct

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::__construct — Create a new BulkWrite

Описание

public MongoDB\Driver\BulkWrite::__construct ([ array $options ] )

Constructs a new ordered (default) or unordered MongoDB\Driver\BulkWrite.

Список параметров

options (array)

options
Option | Type | Description | Default
ordered | bool | Ordered operations (TRUE) are executed serially on the MongoDB server, while unordered operations (FALSE) are sent to the server in an arbitrary order and may be executed in parallel. | TRUE

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\BulkWrite::__construct() example

<?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(MongoDB\Driver\WriteConcern::MAJORITY, 1000);

try {
    $result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
    $result = $e->getWriteResult();

    // Check if the write concern could not be fulfilled
    if ($writeConcernError = $result->getWriteConcernError()) {
        printf("%s (%d): %s\n",
            $writeConcernError->getMessage(),
            $writeConcernError->getCode(),
            var_export($writeConcernError->getInfo(), true)
        );
    }

    // Check if any write operations did not complete at all
    foreach ($result->getWriteErrors() as $writeError) {
        printf("Operation#%d: %s (%d)\n",
            $writeError->getIndex(),
            $writeError->getMessage(),
            $writeError->getCode()
        );
    }
} catch (MongoDB\Driver\Exception\Exception $e) {
    printf("Other error: %s\n", $e->getMessage());
    exit;
}

printf("Inserted %d document(s)\n", $result->getInsertedCount());
printf("Updated  %d document(s)\n", $result->getModifiedCount());
printf("Upserted %d document(s)\n", $result->getUpsertedCount());
printf("Deleted  %d document(s)\n", $result->getDeletedCount());

?>

Результат выполнения данного примера:

Inserted 2 document(s)
Updated  1 document(s)
Upserted 1 document(s)
Deleted  1 document(s)

Смотрите также

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


Count number of write operations in the bulk

  • « MongoDB\Driver\BulkWrite::__construct
  • MongoDB\Driver\BulkWrite::delete »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Count number of write operations in the bulk

MongoDB\Driver\BulkWrite::count

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::count — Count number of write operations in the bulk

Описание

public int MongoDB\Driver\BulkWrite::count ( void )

Returns the number of write operations added to the MongoDB\Driver\BulkWrite object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns number of write operations added to the MongoDB\Driver\BulkWrite object.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.2.0 | Returns the number of write operations added to the MongoDB\Driver\BulkWrite object. Earlier versions returned the expected number of client-to-server roundtrips required to execute all write operations.

Примеры

Пример #1 MongoDB\Driver\BulkWrite::count() example

<?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)


Add a delete operation to the bulk

  • « MongoDB\Driver\BulkWrite::count
  • MongoDB\Driver\BulkWrite::insert »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add a delete operation to the bulk

MongoDB\Driver\BulkWrite::delete

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::delete — Add a delete operation to the bulk

Описание

public void MongoDB\Driver\BulkWrite::delete ( array|object $filter [, array $deleteOptions ] )

Adds a delete operation to the MongoDB\Driver\BulkWrite.

Список параметров

filter (array|object)

» Предикат запроса. Пустой предикат совпадет со всеми элементами коллекции.

deleteOptions

deleteOptions
Option | Type | Description | Default
collation array|object

» Сопоставление позволяет пользователям указывать специфичные для конкретного языка правила для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки. Если задано сопоставление, то поле "locale" также обязательно. Описание полей смотрите в разделе » Сопоставление.

Если сопоставление не задано явно, но у коллекции определено сопоставление по умолчанию, то будет использовано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк.

Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения.

limit | bool | Delete all matching documents (FALSE), or only the first matching document (TRUE) | FALSE

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.2.0 | Added the "collation" option.

Примеры

Пример #1 MongoDB\Driver\BulkWrite::delete() example

<?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');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);

?>

Смотрите также

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


Add an insert operation to the bulk

  • « MongoDB\Driver\BulkWrite::delete
  • MongoDB\Driver\BulkWrite::update »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add an insert operation to the bulk

MongoDB\Driver\BulkWrite::insert

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::insert — Add an insert operation to the bulk

Описание

public mixed MongoDB\Driver\BulkWrite::insert ( array|object $document )

Adds an insert operation to the MongoDB\Driver\BulkWrite.

Список параметров

document (array|object)

A document to insert.

Возвращаемые значения

If the document did not have an _id, a MongoDB\BSON\ObjectID will be generated and returned; otherwise, no value is returned.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\BulkWrite::insert() example

<?php

$bulk = new MongoDB\Driver\BulkWrite;

$document1 = ['title' => 'one'];
$document2 = ['_id' => 'custom ID', 'title' => 'two'];
$document3 = ['_id' => new MongoDB\BSON\ObjectID, 'title' => 'three'];

$_id1 = $bulk->insert($document1);
$_id2 = $bulk->insert($document2);
$_id3 = $bulk->insert($document3);

var_dump($_id1, $_id2, $_id3);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\BSON\ObjectID)#3 (1) {
  ["oid"]=>
  string(24) "54d51146bd21b91405401d92"
}
NULL
NULL

Смотрите также

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult
  • MongoDB\BSON\ObjectID
  • MongoDB\BSON\Persistable


Add an update operation to the bulk

  • « MongoDB\Driver\BulkWrite::insert
  • MongoDB\Driver\WriteConcern »
  • PHP Manual
  • MongoDB\Driver\BulkWrite
  • Add an update operation to the bulk

MongoDB\Driver\BulkWrite::update

(mongodb >=1.0.0)

MongoDB\Driver\BulkWrite::update — Add an update operation to the bulk

Описание

public void MongoDB\Driver\BulkWrite::update ( array|object $filter , array|object $newObj [, array $updateOptions ] )

Adds an update operation to the MongoDB\Driver\BulkWrite.

Список параметров

filter (array|object)

» Предикат запроса. Пустой предикат совпадет со всеми элементами коллекции.

newObj (array|object)

A document containing either update operators (e.g. $set) or a replacement document (i.e. only field:value expressions).

updateOptions

updateOptions
Option | Type | Description | Default
collation array|object

» Сопоставление позволяет пользователям указывать специфичные для конкретного языка правила для сравнения строк, такие как реакцию на регистр букв и надстрочные знаки. Если задано сопоставление, то поле "locale" также обязательно. Описание полей смотрите в разделе » Сопоставление.

Если сопоставление не задано явно, но у коллекции определено сопоставление по умолчанию, то будет использовано оно. Если нет ни того ни того, то MongoDB будет использовать простое бинарное сравнение строк.

Эта опция доступна в MongoDB 3.4+ и, если будет использована для более старых версий, вызовет исключение во время исполнения.

multi | bool | Update only the first matching document (multi=false), or all matching documents (multi=true). | FALSE
upsert | bool | If filter does not match an existing document, insert a single document. The document will be created from newObj if it is a replacement document (i.e. no update operators); otherwise, the operators in newObj will be applied to filter to create the new document. | FALSE

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Список изменений

Версия | Описание
1.2.0 | Added the "collation" option.

Примеры

Пример #1 MongoDB\Driver\BulkWrite::update() example

<?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');
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 1000);
$result = $manager->executeBulkWrite('db.collection', $bulk, $writeConcern);

?>

Смотрите также

  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations
  • MongoDB\Driver\WriteResult


The MongoDB\Driver\WriteConcern class

(mongodb >=1.0.0)

Введение

MongoDB\Driver\WriteConcern describes the level of acknowledgement requested from MongoDB for write operations to a standalone mongod or to replica sets or to sharded clusters. In sharded clusters, mongos instances will pass the write concern on to the shards.

Обзор классов

final MongoDB\Driver\WriteConcern implements MongoDB\BSON\Serializable {
/* Constants */
const string MAJORITY = majority ;
/* Методы */
final public object bsonSerialize ( void )
final public __construct ( string|int $w [, integer $wtimeout [, boolean $journal ]] )
final public bool|null getJournal ( void )
final public string|int|null getW ( void )
final public int getWtimeout ( void )
}

Предопределенные константы

MongoDB\Driver\WriteConcern::MAJORITY

Majority of all the members in the set; arbiters, non-voting members, passive members, hidden members and delayed members are all included in the definition of majority write concern.

Содержание

  • MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\WriteConcern::__construct — Construct immutable WriteConcern
  • MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option
  • MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option
  • MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option


Returns an object for BSON serialization

  • « MongoDB\Driver\WriteConcern
  • MongoDB\Driver\WriteConcern::__construct »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns an object for BSON serialization

MongoDB\Driver\WriteConcern::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\WriteConcern::bsonSerialize — Returns an object for BSON serialization

Описание

final public object MongoDB\Driver\WriteConcern::bsonSerialize ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an object for serializing the WriteConcern as BSON.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteConcern::bsonSerialize() with majority write concern

<?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() with wtimeout and journal

<?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() - Provides an array or document to serialize as BSON
  • » Write Concern reference


Construct immutable WriteConcern

  • « MongoDB\Driver\WriteConcern::bsonSerialize
  • MongoDB\Driver\WriteConcern::getJournal »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Construct immutable WriteConcern

MongoDB\Driver\WriteConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::__construct — Construct immutable WriteConcern

Описание

final public MongoDB\Driver\WriteConcern::__construct ( string|int $w [, integer $wtimeout [, boolean $journal ]] )

Creates a new WriteConcern.

Список параметров

w

Write concern
Value | Description
1 | Requests acknowledgement that the write operation has propagated to the standalone mongod or the primary in a replica set. This is the default write concern for MongoDB.
0 | Requests no acknowledgment of the write operation. However, this may return information about socket exceptions and networking errors to the application.
<integer greater than 1> | Numbers greater than 1 are valid only for replica sets to request acknowledgement from specified number of members, including the primary.
MongoDB\Driver\WriteConcern::MAJORITY

Requests acknowledgment that write operations have propagated to the majority of voting nodes, including the primary, and have been written to the on-disk journal for these nodes.

Prior to MongoDB 3.0, this refers to the majority of replica set members (not just voting nodes).

string | A string value is interpereted as a tag set. Requests acknowledgement that the write operations have propagated to a replica set member with the specified tag.

wtimeout

How long to wait (in milliseconds) for secondaries before failing.

wtimeout causes write operations to return with an error (WriteConcernError) after the specified limit, even if the required write concern will eventually succeed. When these write operations return, MongoDB does not undo successful data modifications performed before the write concern exceeded the wtimeout time limit.

Write concern timeout
Value | Description
0 | Block indefinitely. This is the default.
<integer greater than 0> | Milliseconds to wait until returning.

journal

Wait until mongod has applied the write to the journal.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if w is invalid or wtimeout is negative.

Примеры

Пример #1 MongoDB\Driver\WriteConcern::__construct() example

<?php

/* Request write acknowledgement from the majority of the replica set nodes */
$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 500);

/* Request write acknowledgement from a node configured with the "MultipleDC" tag */
$wc = new MongoDB\Driver\WriteConcern("MultipleDC", 500);

?>

Смотрите также

  • » Write Concern reference


Returns the WriteConcern's "journal" option

  • « MongoDB\Driver\WriteConcern::__construct
  • MongoDB\Driver\WriteConcern::getW »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "journal" option

MongoDB\Driver\WriteConcern::getJournal

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getJournal — Returns the WriteConcern's "journal" option

Описание

final public bool|null MongoDB\Driver\WriteConcern::getJournal ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the WriteConcern's "journal" option.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteConcern::getJournal() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getJournal());

$wc = new MongoDB\Driver\WriteConcern(1, 0, true);
var_dump($wc->getJournal());

$wc = new MongoDB\Driver\WriteConcern(1, 0, false);
var_dump($wc->getJournal());

?>

Результат выполнения данного примера:

NULL
bool(true)
bool(false)

Смотрите также

  • » Write Concern reference


Returns the WriteConcern's "w" option

  • « MongoDB\Driver\WriteConcern::getJournal
  • MongoDB\Driver\WriteConcern::getWtimeout »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "w" option

MongoDB\Driver\WriteConcern::getW

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getW — Returns the WriteConcern's "w" option

Описание

final public string|int|null MongoDB\Driver\WriteConcern::getW ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the WriteConcern's "w" option.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteConcern::getW() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getW());

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY);
var_dump($wc->getW());

?>

Результат выполнения данного примера:

int(1)
string(8) "majority"

Смотрите также

  • » Write Concern reference


Returns the WriteConcern's "wtimeout" option

  • « MongoDB\Driver\WriteConcern::getW
  • MongoDB\Driver\ReadPreference »
  • PHP Manual
  • MongoDB\Driver\WriteConcern
  • Returns the WriteConcern's "wtimeout" option

MongoDB\Driver\WriteConcern::getWtimeout

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcern::getWtimeout — Returns the WriteConcern's "wtimeout" option

Описание

final public int MongoDB\Driver\WriteConcern::getWtimeout ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the WriteConcern's "wtimeout" option.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteConcern::getWtimeout() example

<?php

$wc = new MongoDB\Driver\WriteConcern(1);
var_dump($wc->getWtimeout());

$wc = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 3000);
var_dump($wc->getWtimeout());

?>

Результат выполнения данного примера:

int(0)
int(3000)

Смотрите также

  • » Write Concern reference


The MongoDB\Driver\ReadPreference class

(mongodb >=1.0.0)

Введение

Обзор классов

final MongoDB\Driver\ReadPreference implements MongoDB\BSON\Serializable {
/* Constants */
const integer RP_PRIMARY = 1 ;
const integer RP_PRIMARY_PREFERRED = 5 ;
const integer RP_SECONDARY = 2 ;
const integer RP_SECONDARY_PREFERRED = 6 ;
const integer RP_NEAREST = 10 ;
/* Методы */
final public object bsonSerialize ( void )
final public __construct ( int $mode [, array $tagSets ] )
final public integer getMode ( void )
final public array getTagSets ( void )
}

Предопределенные константы

MongoDB\Driver\ReadPreference::RP_PRIMARY

All operations read from the current replica set primary. This is the default read preference for MongoDB.

MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED

In most situations, operations read from the primary but if it is unavailable, operations read from secondary members.

MongoDB\Driver\ReadPreference::RP_SECONDARY

All operations read from the secondary members of the replica set.

MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED

In most situations, operations read from secondary members but if no secondary members are available, operations read from the primary.

MongoDB\Driver\ReadPreference::RP_NEAREST

Operations read from member of the replica set with the least network latency, irrespective of the member's type.

Содержание

  • MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ReadPreference::__construct — Construct immutable ReadPreference
  • MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option
  • MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option


Returns an object for BSON serialization

  • « MongoDB\Driver\ReadPreference
  • MongoDB\Driver\ReadPreference::__construct »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns an object for BSON serialization

MongoDB\Driver\ReadPreference::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\ReadPreference::bsonSerialize — Returns an object for BSON serialization

Описание

final public object MongoDB\Driver\ReadPreference::bsonSerialize ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an object for serializing the ReadPreference as BSON.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\ReadPreference::bsonSerialize() with primary read preference

<?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() with secondary read preference and tag sets

<?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" }, {  } ] }

Смотрите также

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
  • » Read Preference reference


Construct immutable ReadPreference

  • « MongoDB\Driver\ReadPreference::bsonSerialize
  • MongoDB\Driver\ReadPreference::getMode »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Construct immutable ReadPreference

MongoDB\Driver\ReadPreference::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::__construct — Construct immutable ReadPreference

Описание

final public MongoDB\Driver\ReadPreference::__construct ( int $mode [, array $tagSets ] )

Creates a new ReadPreference.

Список параметров

mode

Read preference mode
Value Description
MongoDB\Driver\ReadPreference::RP_PRIMARY

All operations read from the current replica set primary. This is the default read preference for MongoDB.

MongoDB\Driver\ReadPreference::RP_PRIMARY_PREFERRED

In most situations, operations read from the primary but if it is unavailable, operations read from secondary members.

MongoDB\Driver\ReadPreference::RP_SECONDARY

All operations read from the secondary members of the replica set.

MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED

In most situations, operations read from secondary members but if no secondary members are available, operations read from the primary.

MongoDB\Driver\ReadPreference::RP_NEAREST

Operations read from member of the replica set with the least network latency, irrespective of the member's type.

tagSets

Tag sets allow you to target read operations to specific members of a replica set. This parameter should be an array of associative arrays, each of which contain zero or more key/value pairs. When selecting a server for a read operation, the driver attempt to select a node having all tags in a set (i.e. the associative array of key/value pairs). If selection fails, the driver will attempt subsequent sets. An empty tag set (array()) will match any node and may be used as a fallback.

Tags are not compatible with the MongoDB\Driver\ReadPreference::RP_PRIMARY mode and, in general, only apply when selecting a secondary member of a set for a read operation. However, the MongoDB\Driver\ReadPreference::RP_NEAREST mode, when combined with a tag set, selects the matching member with the lowest network latency. This member may be a primary or secondary.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if mode is invalid or if tagSets is provided for a primary read preference.

Примеры

Пример #1 MongoDB\Driver\ReadPreference::__construct() example

<?php

/* Prefer a secondary node but fall back to a primary. */
$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED);

/* Prefer a node in the New York data center with lowest latency. */
$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_NEAREST, [['dc' => 'ny']]);

?>

Смотрите также

  • » Read Preference reference


Returns the ReadPreference's "mode" option

  • « MongoDB\Driver\ReadPreference::__construct
  • MongoDB\Driver\ReadPreference::getTagSets »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "mode" option

MongoDB\Driver\ReadPreference::getMode

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::getMode — Returns the ReadPreference's "mode" option

Описание

final public integer MongoDB\Driver\ReadPreference::getMode ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the ReadPreference's "mode" option.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\ReadPreference::getMode() example

<?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)

Смотрите также

  • » Read Preference reference


Returns the ReadPreference's "tagSets" option

  • « MongoDB\Driver\ReadPreference::getMode
  • MongoDB\Driver\ReadConcern »
  • PHP Manual
  • MongoDB\Driver\ReadPreference
  • Returns the ReadPreference's "tagSets" option

MongoDB\Driver\ReadPreference::getTagSets

(mongodb >=1.0.0)

MongoDB\Driver\ReadPreference::getTagSets — Returns the ReadPreference's "tagSets" option

Описание

final public array MongoDB\Driver\ReadPreference::getTagSets ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the ReadPreference's "tagSets" option.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\ReadPreference::getTagSets() example

<?php

$mode = MongoDB\Driver\ReadPreference::RP_SECONDARY_PREFERRED);

/* Null and an empty array both denote no tag set preference. */
$rp = new MongoDB\Driver\ReadPreference($mode, null);
var_dump($rp->getTagSets());

$rp = new MongoDB\Driver\ReadPreference($mode, []);
var_dump($rp->getTagSets());

/* Prefer a node in New York, but fall back to any available node. */
$rp = new MongoDB\Driver\ReadPreference($mode, [['dc' => 'ny']]);
var_dump($rp->getTagSets());

/* Prefer a node in the New York, followed by a node in San Francisco that is
   labeled for reporting usage, and finally fall back to any available node. */
$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) {
  }
}

Смотрите также

  • » Read Preference reference


The MongoDB\Driver\ReadConcern class

(mongodb >=1.1.0)

Введение

MongoDB\Driver\ReadConcern controls the level of isolation for read operations for replica sets and replica set shards. This option requires the WiredTiger storage engine and MongoDB 3.2 or later.

Обзор классов

final MongoDB\Driver\ReadConcern implements MongoDB\BSON\Serializable {
/* Constants */
const string LINEARIZABLE = linearizable ;
const string LOCAL = local ;
const string MAJORITY = majority ;
/* Методы */
final public object bsonSerialize ( void )
final public __construct ([ string $level ] )
final public string|null getLevel ( void )
}

Предопределенные константы

MongoDB\Driver\ReadConcern::LINEARIZABLE

A linearizable read avoids returning reads from a stale primary (one that has already been superseded by a new primary but doesn't know it yet). It is important to note that this read concern level does not by itself produce linearizable reads; they must be issued in conjunction with MongoDB\Driver\WriteConcern::MAJORITY writes to the same document(s) in order to be linearizable.

MongoDB\Driver\ReadConcern::LOCAL

Queries using this read concern will return the node's most recent copy of the data. This provides no guarantee that the data has been written to a majority of the nodes (i.e. it may be rolled back).

This is the default read concern level.

MongoDB\Driver\ReadConcern::MAJORITY

Queries using this read concern will return the node's most recent copy of the data confirmed as having been written to a majority of the nodes (i.e. the data cannot be rolled back).

Список изменений

Версия | Описание
1.2.0 | Added the MongoDB\Driver\ReadConcern::LINEARIZABLE constant.

Содержание

  • MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization
  • MongoDB\Driver\ReadConcern::__construct — Construct immutable ReadConcern
  • MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option


Returns an object for BSON serialization

  • « MongoDB\Driver\ReadConcern
  • MongoDB\Driver\ReadConcern::__construct »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Returns an object for BSON serialization

MongoDB\Driver\ReadConcern::bsonSerialize

(mongodb >=1.2.0)

MongoDB\Driver\ReadConcern::bsonSerialize — Returns an object for BSON serialization

Описание

final public object MongoDB\Driver\ReadConcern::bsonSerialize ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an object for serializing the ReadConcern as BSON.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\ReadConcern::bsonSerialize() with empty read concern

<?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() with local read concern

<?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() - Provides an array or document to serialize as BSON
  • » Read Concern reference


Construct immutable ReadConcern

  • « MongoDB\Driver\ReadConcern::bsonSerialize
  • MongoDB\Driver\ReadConcern::getLevel »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Construct immutable ReadConcern

MongoDB\Driver\ReadConcern::__construct

(mongodb >=1.0.0)

MongoDB\Driver\ReadConcern::__construct — Construct immutable ReadConcern

Описание

final public MongoDB\Driver\ReadConcern::__construct ([ string $level ] )

Creates a new ReadConcern.

Список параметров

level

Read concern
Value | Description
MongoDB\Driver\ReadConcern::LOCAL | Queries using this read concern will return the node's most recent copy of the data. This provides no guarantee that the data has been written to a majority of the nodes (i.e. it may be rolled back). This is the default read concern for MongoDB.
MongoDB\Driver\ReadConcern::MAJORITY | Queries using this read concern will return the node's most recent copy of the data confirmed as having been written to a majority of the nodes (i.e. the data cannot be rolled back).

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\ReadConcern::__construct() example

<?php

/* Unspecified read isolation level (uses the server's default behavior) */
$rc = new MongoDB\Driver\ReadConcern();

/* Request read isolation from a single replica set node */
$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::LOCAL);

/* Request read isolation from a majority of the replica set nodes */
$rc = new MongoDB\Driver\ReadConcern(MongoDB\Driver\ReadConcern::MAJORITY);

?>

Смотрите также

  • » Read Concern reference


Returns the ReadConcern's "level" option

  • « MongoDB\Driver\ReadConcern::__construct
  • MongoDB\Driver\Cursor »
  • PHP Manual
  • MongoDB\Driver\ReadConcern
  • Returns the ReadConcern's "level" option

MongoDB\Driver\ReadConcern::getLevel

(mongodb >=1.0.0)

MongoDB\Driver\ReadConcern::getLevel — Returns the ReadConcern's "level" option

Описание

final public string|null MongoDB\Driver\ReadConcern::getLevel ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the ReadConcern's "level" option.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\ReadConcern::getLevel() example

<?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"

Смотрите также

  • » Read Concern reference


The MongoDB\Driver\Cursor class

(mongodb >=1.0.0)

Введение

The MongoDB\Driver\Cursor class encapsulates the results of a MongoDB command or query and may be returned by MongoDB\Driver\Manager::executeCommand() or MongoDB\Driver\Manager::executeQuery(), respectively.

Обзор классов

MongoDB\Driver\Cursor implements Traversable {
/* Методы */
final private __construct ( void )
final public MongoDB\Driver\CursorId getId ( void )
final public MongoDB\Driver\Server getServer ( void )
final public bool isDead ( void )
final public void setTypeMap ( array $typemap )
final public array toArray ( void )
}

Содержание

  • MongoDB\Driver\Cursor::__construct — Create a new Cursor (not used)
  • MongoDB\Driver\Cursor::getId — Returns the ID for this cursor
  • MongoDB\Driver\Cursor::getServer — Returns the server associated with this cursor
  • MongoDB\Driver\Cursor::isDead — Checks if the cursor is still open on the server
  • MongoDB\Driver\Cursor::setTypeMap — Sets a type map to use for BSON unserialization
  • MongoDB\Driver\Cursor::toArray — Returns an array containing all results for this cursor


Create a new Cursor (not used)

  • « MongoDB\Driver\Cursor
  • MongoDB\Driver\Cursor::getId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Create a new Cursor (not used)

MongoDB\Driver\Cursor::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::__construct — Create a new Cursor (not used)

Описание

final private MongoDB\Driver\Cursor::__construct ( void )

MongoDB\Driver\Cursor objects are returned as the result of an executed command or query and cannot be constructed directly.

Список параметров

У этой функции нет параметров.

Смотрите также

  • MongoDB\Driver\Manager::executeCommand() - Execute a database command
  • MongoDB\Driver\Manager::executeQuery() - Execute a database query
  • MongoDB\Driver\Server::executeCommand() - Execute a database command on this server
  • MongoDB\Driver\Server::executeQuery() - Execute a database query on this server


Returns the ID for this cursor

  • « MongoDB\Driver\Cursor::__construct
  • MongoDB\Driver\Cursor::getServer »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the ID for this cursor

MongoDB\Driver\Cursor::getId

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getId — Returns the ID for this cursor

Описание

final public MongoDB\Driver\CursorId MongoDB\Driver\Cursor::getId ( void )

Returns the MongoDB\Driver\CursorId associated with this cursor. A cursor ID uniquely identifies the cursor on the server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the MongoDB\Driver\CursorId for this cursor.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\Cursor::getId() example

<?php

/* In this example, we insert several documents into the collection and specify
 * a smaller batchSize to ensure that the first batch contains only a subset of
 * our results and the cursor remains open on the server. */
$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() - String representation of the cursor ID


Returns the server associated with this cursor

  • « MongoDB\Driver\Cursor::getId
  • MongoDB\Driver\Cursor::isDead »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns the server associated with this cursor

MongoDB\Driver\Cursor::getServer

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::getServer — Returns the server associated with this cursor

Описание

final public MongoDB\Driver\Server MongoDB\Driver\Cursor::getServer ( void )

Returns the MongoDB\Driver\Server associated with this cursor. This is the server that executed the MongoDB\Driver\Query or MongoDB\Driver\Command.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the MongoDB\Driver\Server associated with this cursor.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\Cursor::getServer() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$query = new MongoDB\Driver\Query([]);

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$manager->executeBulkWrite('db.collection', $bulk);

$cursor = $manager->executeQuery('db.collection', $query);
var_dump($cursor->getServer());

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\Driver\Server)#5 (10) {
  ["host"]=>
  string(9) "localhost"
  ["port"]=>
  int(27017)
  ["type"]=>
  int(1)
  ["is_primary"]=>
  bool(false)
  ["is_secondary"]=>
  bool(false)
  ["is_arbiter"]=>
  bool(false)
  ["is_hidden"]=>
  bool(false)
  ["is_passive"]=>
  bool(false)
  ["last_is_master"]=>
  array(8) {
    ["ismaster"]=>
    bool(true)
    ["maxBsonObjectSize"]=>
    int(16777216)
    ["maxMessageSizeBytes"]=>
    int(48000000)
    ["maxWriteBatchSize"]=>
    int(1000)
    ["localTime"]=>
    object(MongoDB\BSON\UTCDateTime)#6 (1) {
      ["milliseconds"]=>
      int(1446505367907)
    }
    ["maxWireVersion"]=>
    int(3)
    ["minWireVersion"]=>
    int(0)
    ["ok"]=>
    float(1)
  }
  ["round_trip_time"]=>
  int(584)
}

Смотрите также

  • MongoDB\Driver\Server


Checks if the cursor is still open on the server

  • « MongoDB\Driver\Cursor::getServer
  • MongoDB\Driver\Cursor::setTypeMap »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Checks if the cursor is still open on the server

MongoDB\Driver\Cursor::isDead

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::isDead — Checks if the cursor is still open on the server

Описание

final public bool MongoDB\Driver\Cursor::isDead ( void )

Returns whether the cursor is still open on the server (i.e. the server has more results that have yet to be sent to the client).

A cursor being "dead" does not mean that it cannot be iterated further. The database sends responses in batches of documents (up to 4MB of documents per response). The client's cursor may still have results to be iterated even if the server has no more batches to send.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if there are more results that have not yet been sent to the client, and FALSE otherwise.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\Cursor::isDead() example

<?php

/* In this example, we insert several documents into the collection and specify
 * a smaller batchSize to ensure that the first batch contains only a subset of
 * our results and the cursor remains open on the server. */
$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->isDead());
$cursor->toArray();
var_dump($cursor->isDead());

?>

Результат выполнения данного примера:

bool(false)
bool(true)


Sets a type map to use for BSON unserialization

  • « MongoDB\Driver\Cursor::isDead
  • MongoDB\Driver\Cursor::toArray »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Sets a type map to use for BSON unserialization

MongoDB\Driver\Cursor::setTypeMap

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::setTypeMap — Sets a type map to use for BSON unserialization

Описание

final public void MongoDB\Driver\Cursor::setTypeMap ( array $typemap )

Sets the type map configuration to use when unserializing the BSON results into PHP values.

Список параметров

typeMap (array)

Конфигурация карты типов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\Cursor::setTypeMap() example

<?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)
}

Смотрите также

  • Persisting Data


Returns an array containing all results for this cursor

  • « MongoDB\Driver\Cursor::setTypeMap
  • MongoDB\Driver\CursorId »
  • PHP Manual
  • MongoDB\Driver\Cursor
  • Returns an array containing all results for this cursor

MongoDB\Driver\Cursor::toArray

(mongodb >=1.0.0)

MongoDB\Driver\Cursor::toArray — Returns an array containing all results for this cursor

Описание

final public array MongoDB\Driver\Cursor::toArray ( void )

Iterates the cursor and returns its results in an array. MongoDB\Driver\Cursor::setTypeMap() may be used to control how documents are unserialized into PHP values.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array containing all results for this cursor.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\Cursor::toArray() example

<?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() - Sets a type map to use for BSON unserialization


The MongoDB\Driver\CursorId class

(mongodb >=1.0.0)

Введение

Обзор классов

final MongoDB\Driver\CursorId {
/* Методы */
final private __construct ( void )
final public string __toString ( void )
}

Содержание

  • MongoDB\Driver\CursorId::__construct — Create a new CursorId (not used)
  • MongoDB\Driver\CursorId::__toString — String representation of the cursor ID


Create a new CursorId (not used)

  • « MongoDB\Driver\CursorId
  • MongoDB\Driver\CursorId::__toString »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • Create a new CursorId (not used)

MongoDB\Driver\CursorId::__construct

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__construct — Create a new CursorId (not used)

Описание

final private MongoDB\Driver\CursorId::__construct ( void )

MongoDB\Driver\CursorId objects are returned from MongoDB\Driver\Cursor::getId() and cannot be constructed directly.

Список параметров

У этой функции нет параметров.

Смотрите также

  • MongoDB\Driver\Cursor::getId() - Returns the ID for this cursor


String representation of the cursor ID

  • « MongoDB\Driver\CursorId::__construct
  • MongoDB\Driver\Server »
  • PHP Manual
  • MongoDB\Driver\CursorId
  • String representation of the cursor ID

MongoDB\Driver\CursorId::__toString

(mongodb >=1.0.0)

MongoDB\Driver\CursorId::__toString — String representation of the cursor ID

Описание

final public string MongoDB\Driver\CursorId::__toString ( void )

Returns the string representation of the cursor ID.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the string representation of the cursor ID.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\CursorId::__toString() example

<?php

/* In this example, we insert several documents into the collection and specify
 * a smaller batchSize to ensure that the first batch contains only a subset of
 * our results and the cursor remains open on the server. */
$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() - Returns the ID for this cursor


The MongoDB\Driver\Server class

(mongodb >=1.0.0)

Введение

Обзор классов

final MongoDB\Driver\Server {
/* Constants */
const integer TYPE_UNKNOWN = 0 ;
const integer TYPE_STANDALONE = 1 ;
const integer TYPE_MONGOS = 2 ;
const integer TYPE_POSSIBLE_PRIMARY = 3 ;
const integer TYPE_RS_PRIMARY = 4 ;
const integer TYPE_RS_SECONDARY = 5 ;
const integer TYPE_RS_ARBITER = 6 ;
const integer TYPE_RS_OTHER = 7 ;
const integer TYPE_RS_GHOST = 8 ;
/* Методы */
final private __construct ( void )
final public MongoDB\Driver\WriteResult executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, MongoDB\Driver\WriteConcern $writeConcern ] )
final public MongoDB\Driver\Cursor executeCommand ( string $db , MongoDB\Driver\Command $command [, MongoDB\Driver\ReadPreference $readPreference ] )
final public MongoDB\Driver\Cursor executeQuery ( string $namespace , MongoDB\Driver\Query $query [, MongoDB\Driver\ReadPreference $readPreference ] )
final public string getHost ( void )
final public array getInfo ( void )
final public string getLatency ( void )
final public int getPort ( void )
final public array getTags ( void )
final public int getType ( void )
final public bool isArbiter ( void )
final public bool isHidden ( void )
final public bool isPassive ( void )
final public bool isPrimary ( void )
final public bool isSecondary ( void )
}

Предопределенные константы

MongoDB\Driver\Server::TYPE_UNKNOWN

Unknown server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_STANDALONE

Standalone server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_MONGOS

Mongos server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_POSSIBLE_PRIMARY

Replica set possible primary server type, returned by MongoDB\Driver\Server::getType().

A server may be identified as a possible primary if it has not yet been checked but another memory of the replica set thinks it is the primary.

MongoDB\Driver\Server::TYPE_RS_PRIMARY

Replica set primary server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_SECONDARY

Replica set secondary server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_ARBITER

Replica set arbiter server type, returned by MongoDB\Driver\Server::getType().

MongoDB\Driver\Server::TYPE_RS_OTHER

Replica set other server type, returned by MongoDB\Driver\Server::getType().

Such servers may be hidden, starting up, or recovering. They cannot be queried, but their hosts lists are useful for discovering the current replica set configuration.

MongoDB\Driver\Server::TYPE_RS_GHOST

Replica set ghost server type, returned by MongoDB\Driver\Server::getType().

Servers may be identified as such in at least three situations: briefly during server startup; in an uninitialized replica set; or when the server is shunned (i.e. removed from the replica set config). They cannot be queried, nor can their host list be used to discover the current replica set configuration; however, the client may monitor this server in hope that it transitions to a more useful state.

Содержание

  • MongoDB\Driver\Server::__construct — Create a new Server (not used)
  • MongoDB\Driver\Server::executeBulkWrite — Execute one or more write operations on this server
  • MongoDB\Driver\Server::executeCommand — Execute a database command on this server
  • MongoDB\Driver\Server::executeQuery — Execute a database query on this server
  • MongoDB\Driver\Server::getHost — Returns the hostname of this server
  • MongoDB\Driver\Server::getInfo — Returns an array of information about this server
  • MongoDB\Driver\Server::getLatency — Returns the latency of this server
  • MongoDB\Driver\Server::getPort — Returns the port on which this server is listening
  • MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set
  • MongoDB\Driver\Server::getType — Returns an integer denoting the type of this server
  • MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set
  • MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set
  • MongoDB\Driver\Server::isPassive — Checks if this server is a passive member of a replica set
  • MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set
  • MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set


Create a new Server (not used)

  • « MongoDB\Driver\Server
  • MongoDB\Driver\Server::executeBulkWrite »
  • PHP Manual
  • MongoDB\Driver\Server
  • Create a new Server (not used)

MongoDB\Driver\Server::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Server::__construct — Create a new Server (not used)

Описание

final private MongoDB\Driver\Server::__construct ( void )

MongoDB\Driver\Server objects are created internally by MongoDB\Driver\Manager when a database connection is established and may be returned by MongoDB\Driver\Manager::getServers() and MongoDB\Driver\Manager::selectServer().

Список параметров

У этой функции нет параметров.

Смотрите также

  • MongoDB\Driver\Manager::getServers() - Return the servers to which this manager is connected
  • MongoDB\Driver\Manager::selectServer() - Select a server matching a read preference


Execute one or more write operations on this server

  • « MongoDB\Driver\Server::__construct
  • MongoDB\Driver\Server::executeCommand »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute one or more write operations on this server

MongoDB\Driver\Server::executeBulkWrite

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeBulkWrite — Execute one or more write operations on this server

Описание

final public MongoDB\Driver\WriteResult MongoDB\Driver\Server::executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, MongoDB\Driver\WriteConcern $writeConcern ] )

Executes one or more write operations on this server.

A MongoDB\Driver\BulkWrite can be constructed with one or more write operations of varying types (e.g. updates, deletes, and inserts). The driver will attempt to send operations of the same type to the server in as few requests as possible to optimize round trips.

Список параметров

namespace (string)

Полностью определенное имя (т.е. "databaseName.collectionName").

bulk (MongoDB\Driver\BulkWrite)

MongoDB\Driver\BulkWrite для выполнения.

writeConcern (MongoDB\Driver\WriteConcern)

Опционально MongoDB\Driver\WriteConcern для наложения на операцию записи. Если не задано, то будет использовано значение из URI соединения MongoDB.

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\WriteResult.

Ошибки

  • При ошибке записи бросает исключение MongoDB\Driver\Exception\BulkWriteException.
  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors.

Примечания

Замечание:

It is the caller's responsibility to ensure that the server is capable of executing the write operation. For example, executing a write operation on a secondary (excluding its "local" database) will fail.

Смотрите также

  • MongoDB\Driver\BulkWrite
  • MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteConcern
  • MongoDB\Driver\Manager::executeBulkWrite() - Execute one or more write operations


Execute a database command on this server

  • « MongoDB\Driver\Server::executeBulkWrite
  • MongoDB\Driver\Server::executeQuery »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database command on this server

MongoDB\Driver\Server::executeCommand

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeCommand — Execute a database command on this server

Описание

final public MongoDB\Driver\Cursor MongoDB\Driver\Server::executeCommand ( string $db , MongoDB\Driver\Command $command [, MongoDB\Driver\ReadPreference $readPreference ] )

Executes command on this server.

Замечание:

The readPreference parameter does not control the server to which the driver issues the command; the command will always be executed on this server object. Instead, it may be used when issuing the command to a secondary (from a replica set connection, not standalone) or mongos node to ensure that the driver sets the wire protocol accordingly or adds the read preference to the command document, respectively.

Список параметров

db (string)

Имя базы данных, в которой запускается комманда.

command (MongoDB\Driver\Command)

MongoDB\Driver\Command для выполнения.

readPreference (MongoDB\Driver\ReadPreference)

Опционально MongoDB\Driver\ReadPreference для выбора сервера для этой операции. Если не задано, то он будет выбран из URI соединения MongoDB.

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid command, issuing a write command to a secondary).

Примечания

Замечание:

This method does not take a MongoDB\Driver\WriteConcern parameter. For write commands (e.g. » findAndModify in MongoDB 3.2+), the write concern should be included in the command document itself.

It is the caller's responsibility to ensure that the server is capable of executing the command. For example, executing a write operation on a secondary (excluding its "local" database) will fail.

Смотрите также

  • MongoDB\Driver\Command
  • MongoDB\Driver\Cursor
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::executeCommand() - Execute a database command


Execute a database query on this server

  • « MongoDB\Driver\Server::executeCommand
  • MongoDB\Driver\Server::getHost »
  • PHP Manual
  • MongoDB\Driver\Server
  • Execute a database query on this server

MongoDB\Driver\Server::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Server::executeQuery — Execute a database query on this server

Описание

final public MongoDB\Driver\Cursor MongoDB\Driver\Server::executeQuery ( string $namespace , MongoDB\Driver\Query $query [, MongoDB\Driver\ReadPreference $readPreference ] )

Executes query on this server.

Замечание:

The readPreference parameter does not control the server to which the driver issues the query; the query will always be executed on this server object. Instead, it may be used when issuing the command to a secondary (from a replica set connection, not standalone) or mongos node to ensure that the driver sets the wire protocol accordingly or adds the read preference to the query document, respectively.

Список параметров

namespace (string)

Полностью определенное имя (т.е. "databaseName.collectionName").

query (MongoDB\Driver\Query)

The MongoDB\Driver\Query для выполнения.

readPreference (MongoDB\Driver\ReadPreference)

Опционально MongoDB\Driver\ReadPreference для выбора сервера для этой операции. Если не задано, то он будет выбран из URI соединения MongoDB.

Возвращаемые значения

В случае успеха возвращает MongoDB\Driver\Cursor.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • При неудачном соединении с сервером (кроме ошибок аутентификации), бросает исключение MongoDB\Driver\Exception\ConnectionException.
  • При неудачной аутентификации бросает исключение MongoDB\Driver\Exception\AuthenticationException.
  • Throws MongoDB\Driver\Exception\RuntimeException on other errors (e.g. invalid query operators).

Смотрите также

  • MongoDB\Driver\Cursor
  • MongoDB\Driver\Query
  • MongoDB\Driver\ReadPreference
  • MongoDB\Driver\Manager::executeQuery() - Execute a database query


Returns the hostname of this server

  • « MongoDB\Driver\Server::executeQuery
  • MongoDB\Driver\Server::getInfo »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns the hostname of this server

MongoDB\Driver\Server::getHost

(mongodb >=1.0.0)

MongoDB\Driver\Server::getHost — Returns the hostname of this server

Описание

final public string MongoDB\Driver\Server::getHost ( void )

Returns the hostname of this server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the hostname of this server.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\Server::getHost() example

<?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() - Returns an array of information about this server


Returns an array of information about this server

  • « MongoDB\Driver\Server::getHost
  • MongoDB\Driver\Server::getLatency »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns an array of information about this server

MongoDB\Driver\Server::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\Server::getInfo — Returns an array of information about this server

Описание

final public array MongoDB\Driver\Server::getInfo ( void )

Returns an array of information about this server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of information about this server.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\Server::getInfo() example

<?php

$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017/");

$rp = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
$server = $manager->selectServer($rp);

var_dump($server->getInfo());

?>

Результатом выполнения данного примера будет что-то подобное:

array(8) {
  ["ismaster"]=>
  bool(true)
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["maxMessageSizeBytes"]=>
  int(48000000)
  ["maxWriteBatchSize"]=>
  int(1000)
  ["localTime"]=>
  object(MongoDB\BSON\UTCDateTime)#4 (1) {
    ["milliseconds"]=>
    int(1447276242774)
  }
  ["maxWireVersion"]=>
  int(3)
  ["minWireVersion"]=>
  int(0)
  ["ok"]=>
  float(1)
}


Returns the latency of this server

  • « MongoDB\Driver\Server::getInfo
  • MongoDB\Driver\Server::getPort »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns the latency of this server

MongoDB\Driver\Server::getLatency

(mongodb >=1.0.0)

MongoDB\Driver\Server::getLatency — Returns the latency of this server

Описание

final public string MongoDB\Driver\Server::getLatency ( void )

Returns the latency of this server (i.e. the client's measured » round trip time of an ismaster command).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the latency of this server.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\Server::getLatency() example

<?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() - Returns an array of information about this server
  • » Server Discovery and Monitoring Specification


Returns the port on which this server is listening

  • « MongoDB\Driver\Server::getLatency
  • MongoDB\Driver\Server::getTags »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns the port on which this server is listening

MongoDB\Driver\Server::getPort

(mongodb >=1.0.0)

MongoDB\Driver\Server::getPort — Returns the port on which this server is listening

Описание

final public int MongoDB\Driver\Server::getPort ( void )

Returns the port on which this server is listening.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the port on which this server is listening.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\Server::getPort() example

<?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() - Returns an array of information about this server


Returns an array of tags describing this server in a replica set

  • « MongoDB\Driver\Server::getPort
  • MongoDB\Driver\Server::getType »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns an array of tags describing this server in a replica set

MongoDB\Driver\Server::getTags

(mongodb >=1.0.0)

MongoDB\Driver\Server::getTags — Returns an array of tags describing this server in a replica set

Описание

final public array MongoDB\Driver\Server::getTags ( void )

Returns an array of » tags used to describe this server in a replica set. The array will contain zero or more string key and value pairs.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of tags used to describe this server in a replica set.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Returns an integer denoting the type of this server

  • « MongoDB\Driver\Server::getTags
  • MongoDB\Driver\Server::isArbiter »
  • PHP Manual
  • MongoDB\Driver\Server
  • Returns an integer denoting the type of this server

MongoDB\Driver\Server::getType

(mongodb >=1.0.0)

MongoDB\Driver\Server::getType — Returns an integer denoting the type of this server

Описание

final public int MongoDB\Driver\Server::getType ( void )

Returns an integer denoting the type of this server. The value will correlate with a MongoDB\Driver\Server constant.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer denoting the type of this server.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Checks if this server is an arbiter member of a replica set

  • « MongoDB\Driver\Server::getType
  • MongoDB\Driver\Server::isHidden »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is an arbiter member of a replica set

MongoDB\Driver\Server::isArbiter

(mongodb >=1.0.0)

MongoDB\Driver\Server::isArbiter — Checks if this server is an arbiter member of a replica set

Описание

final public bool MongoDB\Driver\Server::isArbiter ( void )

Returns whether this server is an » arbiter member of a replica set.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if this server is an arbiter member of a replica set, and FALSE otherwise.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Checks if this server is a hidden member of a replica set

  • « MongoDB\Driver\Server::isArbiter
  • MongoDB\Driver\Server::isPassive »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a hidden member of a replica set

MongoDB\Driver\Server::isHidden

(mongodb >=1.0.0)

MongoDB\Driver\Server::isHidden — Checks if this server is a hidden member of a replica set

Описание

final public bool MongoDB\Driver\Server::isHidden ( void )

Returns whether this server is a » hidden member of a replica set.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if this server is a hidden member of a replica set, and FALSE otherwise.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Checks if this server is a passive member of a replica set

  • « MongoDB\Driver\Server::isHidden
  • MongoDB\Driver\Server::isPrimary »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a passive member of a replica set

MongoDB\Driver\Server::isPassive

(mongodb >=1.0.0)

MongoDB\Driver\Server::isPassive — Checks if this server is a passive member of a replica set

Описание

final public bool MongoDB\Driver\Server::isPassive ( void )

Returns whether this server is a » passive member of a replica set (i.e. its priority is 0).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if this server is a passive member of a replica set, and FALSE otherwise.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Checks if this server is a primary member of a replica set

  • « MongoDB\Driver\Server::isPassive
  • MongoDB\Driver\Server::isSecondary »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a primary member of a replica set

MongoDB\Driver\Server::isPrimary

(mongodb >=1.0.0)

MongoDB\Driver\Server::isPrimary — Checks if this server is a primary member of a replica set

Описание

final public bool MongoDB\Driver\Server::isPrimary ( void )

Returns whether this server is a » primary member of a replica set.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if this server is a primary member of a replica set, and FALSE otherwise.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


Checks if this server is a secondary member of a replica set

  • « MongoDB\Driver\Server::isPrimary
  • MongoDB\Driver\WriteConcernError »
  • PHP Manual
  • MongoDB\Driver\Server
  • Checks if this server is a secondary member of a replica set

MongoDB\Driver\Server::isSecondary

(mongodb >=1.0.0)

MongoDB\Driver\Server::isSecondary — Checks if this server is a secondary member of a replica set

Описание

final public bool MongoDB\Driver\Server::isSecondary ( void )

Returns whether this server is a » secondary member of a replica set.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if this server is a secondary member of a replica set, and FALSE otherwise.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Смотрите также

  • MongoDB\Driver\Server::getInfo() - Returns an array of information about this server


The MongoDB\Driver\WriteConcernError class

(mongodb >=1.0.0)

Введение

The MongoDB\Driver\WriteConcernError class encapsulates information about a write concern error and may be returned by MongoDB\Driver\WriteResult::getWriteConcernError().

Обзор классов

final MongoDB\Driver\WriteConcernError {
/* Методы */
final public int getCode ( void )
final public mixed getInfo ( void )
final public string getMessage ( void )
}

Содержание

  • MongoDB\Driver\WriteConcernError::getCode — Returns the WriteConcernError's error code
  • MongoDB\Driver\WriteConcernError::getInfo — Returns additional metadata for the WriteConcernError
  • MongoDB\Driver\WriteConcernError::getMessage — Returns the WriteConcernError's error message


Returns the WriteConcernError's error code

  • « MongoDB\Driver\WriteConcernError
  • MongoDB\Driver\WriteConcernError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Returns the WriteConcernError's error code

MongoDB\Driver\WriteConcernError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getCode — Returns the WriteConcernError's error code

Описание

final public int MongoDB\Driver\WriteConcernError::getCode ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the WriteConcernError's error code.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteConcernError::getCode() example

<?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)

Смотрите также

  • » Write Concern reference


Returns additional metadata for the WriteConcernError

  • « MongoDB\Driver\WriteConcernError::getCode
  • MongoDB\Driver\WriteConcernError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Returns additional metadata for the WriteConcernError

MongoDB\Driver\WriteConcernError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getInfo — Returns additional metadata for the WriteConcernError

Описание

final public mixed MongoDB\Driver\WriteConcernError::getInfo ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns additional metadata for the WriteConcernError, or NULL if no metadata is available.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteConcernError::getInfo() example

<?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)
}

Смотрите также

  • » Write Concern reference


Returns the WriteConcernError's error message

  • « MongoDB\Driver\WriteConcernError::getInfo
  • MongoDB\Driver\WriteError »
  • PHP Manual
  • MongoDB\Driver\WriteConcernError
  • Returns the WriteConcernError's error message

MongoDB\Driver\WriteConcernError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteConcernError::getMessage — Returns the WriteConcernError's error message

Описание

final public string MongoDB\Driver\WriteConcernError::getMessage ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the WriteConcernError's error message.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteConcernError::getMessage() example

<?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"

Смотрите также

  • » Write Concern reference


The MongoDB\Driver\WriteError class

(mongodb >=1.0.0)

Введение

The MongoDB\Driver\WriteError class encapsulates information about a write error and may be returned as an array element from MongoDB\Driver\WriteResult::getWriteErrors().

Обзор классов

final MongoDB\Driver\WriteError {
/* Методы */
final public int getCode ( void )
final public int getIndex ( void )
final public mixed getInfo ( void )
final public string getMessage ( void )
}

Содержание

  • MongoDB\Driver\WriteError::getCode — Returns the WriteError's error code
  • MongoDB\Driver\WriteError::getIndex — Returns the index of the write operation corresponding to this WriteError
  • MongoDB\Driver\WriteError::getInfo — Returns additional metadata for the WriteError
  • MongoDB\Driver\WriteError::getMessage — Returns the WriteError's error message


Returns the WriteError's error code

  • « MongoDB\Driver\WriteError
  • MongoDB\Driver\WriteError::getIndex »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns the WriteError's error code

MongoDB\Driver\WriteError::getCode

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getCode — Returns the WriteError's error code

Описание

final public int MongoDB\Driver\WriteError::getCode ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the WriteError's error code.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteError::getCode() example

<?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)


Returns the index of the write operation corresponding to this WriteError

  • « MongoDB\Driver\WriteError::getCode
  • MongoDB\Driver\WriteError::getInfo »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns the index of the write operation corresponding to this WriteError

MongoDB\Driver\WriteError::getIndex

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getIndex — Returns the index of the write operation corresponding to this WriteError

Описание

final public int MongoDB\Driver\WriteError::getIndex ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the index of the write operation (from MongoDB\Driver\BulkWrite) corresponding to this WriteError.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteError::getIndex() example

<?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


Returns additional metadata for the WriteError

  • « MongoDB\Driver\WriteError::getIndex
  • MongoDB\Driver\WriteError::getMessage »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns additional metadata for the WriteError

MongoDB\Driver\WriteError::getInfo

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getInfo — Returns additional metadata for the WriteError

Описание

final public mixed MongoDB\Driver\WriteError::getInfo ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns additional metadata for the WriteError, or NULL if no metadata is available.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.


Returns the WriteError's error message

  • « MongoDB\Driver\WriteError::getInfo
  • MongoDB\Driver\WriteResult »
  • PHP Manual
  • MongoDB\Driver\WriteError
  • Returns the WriteError's error message

MongoDB\Driver\WriteError::getMessage

(mongodb >=1.0.0)

MongoDB\Driver\WriteError::getMessage — Returns the WriteError's error message

Описание

final public string MongoDB\Driver\WriteError::getMessage ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the WriteError's error message.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteError::getMessage() example

<?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 }"


The MongoDB\Driver\WriteResult class

(mongodb >=1.0.0)

Введение

The MongoDB\Driver\WriteResult class encapsulates information about an executed MongoDB\Driver\BulkWrite and may be returned by MongoDB\Driver\Manager::executeBulkWrite().

Обзор классов

final MongoDB\Driver\WriteResult {
/* Методы */
final public int|null getDeletedCount ( void )
final public int|null getInsertedCount ( void )
final public int|null getMatchedCount ( void )
final public int|null getModifiedCount ( void )
final public MongoDB\Driver\Server getServer ( void )
final public int|null getUpsertedCount ( void )
final public array getUpsertedIds ( void )
final public MongoDB\Driver\WriteConcernError|null getWriteConcernError ( void )
final public array getWriteErrors ( void )
final public bool isAcknowledged ( void )
}

Содержание

  • MongoDB\Driver\WriteResult::getDeletedCount — Returns the number of documents deleted
  • MongoDB\Driver\WriteResult::getInsertedCount — Returns the number of documents inserted (excluding upserts)
  • MongoDB\Driver\WriteResult::getMatchedCount — Returns the number of documents selected for update
  • MongoDB\Driver\WriteResult::getModifiedCount — Returns the number of existing documents updated
  • MongoDB\Driver\WriteResult::getServer — Returns the server associated with this write result
  • MongoDB\Driver\WriteResult::getUpsertedCount — Returns the number of documents inserted by an upsert
  • MongoDB\Driver\WriteResult::getUpsertedIds — Returns an array of identifiers for upserted documents
  • MongoDB\Driver\WriteResult::getWriteConcernError — Returns any write concern error that occurred
  • MongoDB\Driver\WriteResult::getWriteErrors — Returns any write errors that occurred
  • MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged


Returns the number of documents deleted

  • « MongoDB\Driver\WriteResult
  • MongoDB\Driver\WriteResult::getInsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents deleted

MongoDB\Driver\WriteResult::getDeletedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getDeletedCount — Returns the number of documents deleted

Описание

final public int|null MongoDB\Driver\WriteResult::getDeletedCount ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of documents deleted, or NULL if the write was not acknowledged.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteResult::getDeletedCount() example

<?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() - Returns whether the write was acknowledged


Returns the number of documents inserted (excluding upserts)

  • « MongoDB\Driver\WriteResult::getDeletedCount
  • MongoDB\Driver\WriteResult::getMatchedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents inserted (excluding upserts)

MongoDB\Driver\WriteResult::getInsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getInsertedCount — Returns the number of documents inserted (excluding upserts)

Описание

final public int|null MongoDB\Driver\WriteResult::getInsertedCount ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of documents inserted (excluding upserts), or NULL if the write was not acknowledged.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteResult::getInsertedCount() example

<?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() - Returns whether the write was acknowledged


Returns the number of documents selected for update

  • « MongoDB\Driver\WriteResult::getInsertedCount
  • MongoDB\Driver\WriteResult::getModifiedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents selected for update

MongoDB\Driver\WriteResult::getMatchedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getMatchedCount — Returns the number of documents selected for update

Описание

final public int|null MongoDB\Driver\WriteResult::getMatchedCount ( void )

If the update operation results in no change to the document (e.g. setting the value of a field to its current value), the matched count may be greater than the value returned by MongoDB\Driver\WriteResult::getModifiedCount().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of documents selected for update, or NULL if the write was not acknowledged.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteResult::getMatchedCount() example

<?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() - Returns the number of existing documents updated
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns the number of existing documents updated

  • « MongoDB\Driver\WriteResult::getMatchedCount
  • MongoDB\Driver\WriteResult::getServer »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of existing documents updated

MongoDB\Driver\WriteResult::getModifiedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getModifiedCount — Returns the number of existing documents updated

Описание

final public int|null MongoDB\Driver\WriteResult::getModifiedCount ( void )

If the update operation results in no change to the document (e.g. setting the value of a field to its current value), the modified count may be less than the value returned by MongoDB\Driver\WriteResult::getMatchedCount().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of existing documents updated, or NULL if the write was not acknowledged.

The modified count is not available on versions of MongoDB before 2.6, which used the legacy wire protocol version (i.e. OP_UPDATE). If this is the case, the modified count will also be NULL.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteResult::getModifiedCount() example

<?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() - Returns the number of documents selected for update
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns the server associated with this write result

  • « MongoDB\Driver\WriteResult::getModifiedCount
  • MongoDB\Driver\WriteResult::getUpsertedCount »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the server associated with this write result

MongoDB\Driver\WriteResult::getServer

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getServer — Returns the server associated with this write result

Описание

final public MongoDB\Driver\Server MongoDB\Driver\WriteResult::getServer ( void )

Returns the MongoDB\Driver\Server associated with this write result. This is the server that executed the MongoDB\Driver\BulkWrite.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the MongoDB\Driver\Server associated with this write result.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteResult::getServer() example

<?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


Returns the number of documents inserted by an upsert

  • « MongoDB\Driver\WriteResult::getServer
  • MongoDB\Driver\WriteResult::getUpsertedIds »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns the number of documents inserted by an upsert

MongoDB\Driver\WriteResult::getUpsertedCount

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedCount — Returns the number of documents inserted by an upsert

Описание

final public int|null MongoDB\Driver\WriteResult::getUpsertedCount ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of documents inserted by an upsert.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteResult::getUpsertedCount() example

<?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() - Returns an array of identifiers for upserted documents
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns an array of identifiers for upserted documents

  • « MongoDB\Driver\WriteResult::getUpsertedCount
  • MongoDB\Driver\WriteResult::getWriteConcernError »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns an array of identifiers for upserted documents

MongoDB\Driver\WriteResult::getUpsertedIds

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getUpsertedIds — Returns an array of identifiers for upserted documents

Описание

final public array MongoDB\Driver\WriteResult::getUpsertedIds ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of identifiers (i.e. "_id" field values) for upserted documents. The array keys will correspond to the index of the write operation (from MongoDB\Driver\BulkWrite) responsible for the upsert.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteResult::getUpsertedIds() example

<?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() - Returns the number of documents inserted by an upsert
  • MongoDB\Driver\WriteResult::isAcknowledged() - Returns whether the write was acknowledged


Returns any write concern error that occurred

  • « MongoDB\Driver\WriteResult::getUpsertedIds
  • MongoDB\Driver\WriteResult::getWriteErrors »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns any write concern error that occurred

MongoDB\Driver\WriteResult::getWriteConcernError

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteConcernError — Returns any write concern error that occurred

Описание

final public MongoDB\Driver\WriteConcernError|null MongoDB\Driver\WriteResult::getWriteConcernError ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a MongoDB\Driver\WriteConcernError if a write concern error was encountered during the write operation, and NULL otherwise.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteResult::getWriteConcernError() example

<?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
  • » Write Concern reference


Returns any write errors that occurred

  • « MongoDB\Driver\WriteResult::getWriteConcernError
  • MongoDB\Driver\WriteResult::isAcknowledged »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns any write errors that occurred

MongoDB\Driver\WriteResult::getWriteErrors

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::getWriteErrors — Returns any write errors that occurred

Описание

final public array MongoDB\Driver\WriteResult::getWriteErrors ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of MongoDB\Driver\WriteError objects for any write errors encountered during the write operation. The array will be empty if no write errors occurred.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteResult::getWriteErrors() with a single error

<?php

$manager = new MongoDB\Driver\Manager;

/* By default, bulk write operations are executed serially in order and
 * execution will stop after the first error.
 */
$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() with multiple errors

<?php

$manager = new MongoDB\Driver\Manager;

/* The "ordered" option may be used to allow bulk write operations to continue
 * executing after the first error is encountered.
 */
$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


Returns whether the write was acknowledged

  • « MongoDB\Driver\WriteResult::getWriteErrors
  • MongoDB\BSON »
  • PHP Manual
  • MongoDB\Driver\WriteResult
  • Returns whether the write was acknowledged

MongoDB\Driver\WriteResult::isAcknowledged

(mongodb >=1.0.0)

MongoDB\Driver\WriteResult::isAcknowledged — Returns whether the write was acknowledged

Описание

final public bool MongoDB\Driver\WriteResult::isAcknowledged ( void )

If the write is acknowledged, other count fields will be available on the MongoDB\Driver\WriteResult object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the write was acknowledged, and FALSE otherwise.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\Driver\WriteResult::isAcknowledged() with acknowledged write concern

<?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() with unacknowledged write concern

<?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
  • » Write Concern reference


BSON type classes and serialization functions

  • Функции
    • MongoDB\BSON\fromJSON — Returns the BSON representation of a JSON value
    • MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value
    • MongoDB\BSON\toJSON — Returns the JSON representation of a BSON value
    • MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value
  • MongoDB\BSON\Binary — The MongoDB\BSON\Binary class
    • MongoDB\BSON\Binary::__construct — Construct a new Binary
    • MongoDB\BSON\Binary::getData — Returns the Binary's data
    • MongoDB\BSON\Binary::getType — Returns the Binary's type
  • MongoDB\BSON\Decimal128 — The MongoDB\BSON\Decimal128 class
    • MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128
    • MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128
  • MongoDB\BSON\Javascript — The MongoDB\BSON\Javascript class
    • MongoDB\BSON\Javascript::__construct — Construct a new Javascript
  • MongoDB\BSON\MaxKey — The MongoDB\BSON\MaxKey class
    • MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey
  • MongoDB\BSON\MinKey — The MongoDB\BSON\MinKey class
    • MongoDB\BSON\MinKey::__construct — Construct a new MinKey
  • MongoDB\BSON\ObjectID — The MongoDB\BSON\ObjectID class
    • MongoDB\BSON\ObjectID::__construct — Construct a new ObjectID
    • MongoDB\BSON\ObjectID::__toString — Returns the hexidecimal representation of this ObjectID
  • MongoDB\BSON\Regex — The MongoDB\BSON\Regex class
    • MongoDB\BSON\Regex::__construct — Construct a new Regex
    • MongoDB\BSON\Regex::getFlags — Returns the Regex's flags
    • MongoDB\BSON\Regex::getPattern — Returns the Regex's pattern
    • MongoDB\BSON\Regex::__toString — Returns the string representation of this Regex
  • MongoDB\BSON\Timestamp — The MongoDB\BSON\Timestamp class
    • MongoDB\BSON\Timestamp::__construct — Construct a new Timestamp
    • MongoDB\BSON\Timestamp::__toString — Returns the string representation of this Timestamp
  • MongoDB\BSON\UTCDateTime — The MongoDB\BSON\UTCDateTime class
    • MongoDB\BSON\UTCDateTime::__construct — Construct a new UTCDateTime
    • MongoDB\BSON\UTCDateTime::toDateTime — Returns the DateTime representation of this UTCDateTime
    • MongoDB\BSON\UTCDateTime::__toString — Returns the string representation of this UTCDateTime
  • MongoDB\BSON\Type — The MongoDB\BSON\Type interface
  • MongoDB\BSON\Persistable — The MongoDB\BSON\Persistable interface
  • MongoDB\BSON\Serializable — The MongoDB\BSON\Serializable interface
    • MongoDB\BSON\Serializable::bsonSerialize — Provides an array or document to serialize as BSON
  • MongoDB\BSON\Unserializable — The MongoDB\BSON\Unserializable interface
    • MongoDB\BSON\Unserializable::bsonUnserialize — Constructs the object from a BSON array or document


Функции

Содержание

  • MongoDB\BSON\fromJSON — Returns the BSON representation of a JSON value
  • MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value
  • MongoDB\BSON\toJSON — Returns the JSON representation of a BSON value
  • MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value


Returns the BSON representation of a JSON value

  • « Функции
  • MongoDB\BSON\fromPHP »
  • PHP Manual
  • Функции
  • Returns the BSON representation of a JSON value

MongoDB\BSON\fromJSON

(mongodb >=1.0.0)

MongoDB\BSON\fromJSON — Returns the BSON representation of a JSON value

Описание

string MongoDB\BSON\fromJSON ( string $json )

Converts an » extended JSON string to its BSON representation.

Список параметров

json (string)

JSON value to be converted.

Возвращаемые значения

The serialized BSON document as a binary string.

Ошибки

Throws MongoDB\Driver\Exception\UnexpectedValueException if the JSON value cannot be converted to BSON (e.g. due to a syntax error).

Примеры

Пример #1 MongoDB\BSON\fromJSON() example

<?php

$json = '{ "_id": { "$oid": "563143b280d2387c91807965" } }';
$bson = MongoDB\BSON\fromJSON($json);
$value = MongoDB\BSON\toPHP($bson);
var_dump($value);

?>

Результат выполнения данного примера:

object(stdClass)#2 (1) {
  ["_id"]=>
  object(MongoDB\BSON\ObjectID)#1 (1) {
    ["oid"]=>
    string(24) "563143b280d2387c91807965"
  }
}

Смотрите также

  • MongoDB\BSON\toJSON() - Returns the JSON representation of a BSON value
  • » MongoDB Extended JSON
  • » MongoDB BSON


Returns the BSON representation of a PHP value

  • « MongoDB\BSON\fromJSON
  • MongoDB\BSON\toJSON »
  • PHP Manual
  • Функции
  • Returns the BSON representation of a PHP value

MongoDB\BSON\fromPHP

(mongodb >=1.0.0)

MongoDB\BSON\fromPHP — Returns the BSON representation of a PHP value

Описание

string MongoDB\BSON\fromPHP ( array|object $value )

Serializes a PHP array or object (e.g. document) to its » BSON representation. The returned binary string will describe a BSON document.

Список параметров

value (array|object)

PHP value to be serialized.

Возвращаемые значения

The serialized BSON document as a binary string.

Ошибки

Throws MongoDB\Driver\Exception\UnexpectedValueException if the PHP value cannot be converted to BSON. Possible reasons include, but are not limited to, encountering an unexpected MongoDB\BSON\Type instance or MongoDB\BSON\Serializable::bsonSerialize() failing to return an array or stdClass.

Примеры

Пример #1 MongoDB\BSON\fromPHP() example

<?php

$bson = MongoDB\BSON\fromPHP(['foo' => 1]);
echo bin2hex($bson), "\n";

?>

Результат выполнения данного примера:

0e00000010666f6f000100000000cat

Смотрите также

  • MongoDB\BSON\toPHP() - Returns the PHP representation of a BSON value
  • » MongoDB BSON
  • Persisting Data


Returns the JSON representation of a BSON value

  • « MongoDB\BSON\fromPHP
  • MongoDB\BSON\toPHP »
  • PHP Manual
  • Функции
  • Returns the JSON representation of a BSON value

MongoDB\BSON\toJSON

(mongodb >=1.0.0)

MongoDB\BSON\toJSON — Returns the JSON representation of a BSON value

Описание

string MongoDB\BSON\toJSON ( string $bson )

Converts a BSON string to its » extended JSON representation.

Список параметров

bson (string)

BSON value to be converted.

Возвращаемые значения

The converted JSON value.

Ошибки

Throws MongoDB\Driver\Exception\UnexpectedValueException if the input did not contain exactly one BSON document. Possible reasons include, but are not limited to, invalid BSON, extra data (after reading one BSON document), or an unexpected » libbson error.

Примеры

Пример #1 MongoDB\BSON\toJSON() example

<?php

$document = ['_id' => new MongoDB\BSON\ObjectId('56315a7c6118fd1b920270b1')];
$bson = MongoDB\BSON\fromPHP($document);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Результат выполнения данного примера:

{ "_id" : { "$oid" : "56315a7c6118fd1b920270b1" } }

Смотрите также

  • MongoDB\BSON\fromJSON() - Returns the BSON representation of a JSON value
  • » MongoDB Extended JSON
  • » MongoDB BSON


Returns the PHP representation of a BSON value

  • « MongoDB\BSON\toJSON
  • MongoDB\BSON\Binary »
  • PHP Manual
  • Функции
  • Returns the PHP representation of a BSON value

MongoDB\BSON\toPHP

(mongodb >=1.0.0)

MongoDB\BSON\toPHP — Returns the PHP representation of a BSON value

Описание

array|object MongoDB\BSON\toPHP ( string $bson [, array $typeMap = array() ] )

Unserializes a BSON document (i.e. binary string) to its PHP representation. The typeMap paramater may be used to control the PHP types used for converting BSON arrays and documents (both root and embedded).

Список параметров

bson (string)

BSON value to be unserialized.

typeMap (array)

Конфигурация карты типов.

Возвращаемые значения

The unserialized PHP value.

Ошибки

Throws MongoDB\Driver\Exception\InvalidArgumentException if a class in the type map cannot be instantiated or does not implement MongoDB\BSON\Unserializable.

Throws MongoDB\Driver\Exception\UnexpectedValueException if the input did not contain exactly one BSON document. Possible reasons include, but are not limited to, invalid BSON, extra data (after reading one BSON document), or an unexpected » libbson error.

Примеры

Пример #1 MongoDB\BSON\toPHP() example

<?php

$bson = hex2bin('0e00000010666f6f000100000000');
$value = MongoDB\BSON\toPHP($bson);
var_dump($value);

?>

Результат выполнения данного примера:

object(stdClass)#1 (1) {
  ["foo"]=>
  int(1)
}

Смотрите также

  • MongoDB\BSON\fromPHP() - Returns the BSON representation of a PHP value
  • » MongoDB BSON
  • Persisting Data


The MongoDB\BSON\Binary class

(mongodb >=1.0.0)

Введение

Обзор классов

MongoDB\BSON\Binary implements MongoDB\BSON\Type {
/* Constants */
const integer TYPE_GENERIC = 0 ;
const integer TYPE_FUNCTION = 1 ;
const integer TYPE_OLD_BINARY = 2 ;
const integer TYPE_OLD_UUID = 3 ;
const integer TYPE_UUID = 4 ;
const integer TYPE_MD5 = 5 ;
const integer TYPE_USER_DEFINED = 128 ;
/* Методы */
final public __construct ( string $data , integer $type )
final public string getData ( void )
final public integer getType ( void )
}

Предопределенные константы

MongoDB\BSON\Binary::TYPE_GENERIC

MongoDB\BSON\Binary::TYPE_FUNCTION

MongoDB\BSON\Binary::TYPE_OLD_BINARY

MongoDB\BSON\Binary::TYPE_OLD_UUID

MongoDB\BSON\Binary::TYPE_UUID

MongoDB\BSON\Binary::TYPE_MD5

MongoDB\BSON\Binary::TYPE_USER_DEFINED

Содержание

  • MongoDB\BSON\Binary::__construct — Construct a new Binary
  • MongoDB\BSON\Binary::getData — Returns the Binary's data
  • MongoDB\BSON\Binary::getType — Returns the Binary's type


Construct a new Binary

  • « MongoDB\BSON\Binary
  • MongoDB\BSON\Binary::getData »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Construct a new Binary

MongoDB\BSON\Binary::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Binary::__construct — Construct a new Binary

Описание

final public MongoDB\BSON\Binary::__construct ( string $data , integer $type )

Список параметров

data (string)

Binary data.

type (integer)

Binary type.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\Binary::__construct() example

<?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 Types


Returns the Binary's data

  • « MongoDB\BSON\Binary::__construct
  • MongoDB\BSON\Binary::getType »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns the Binary's data

MongoDB\BSON\Binary::getData

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getData — Returns the Binary's data

Описание

final public string MongoDB\BSON\Binary::getData ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the Binary's data

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\Binary::getData() example

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary->getData());

?>

Результат выполнения данного примера:

string(3) "foo"

Смотрите также

  • » BSON Types


Returns the Binary's type

  • « MongoDB\BSON\Binary::getData
  • MongoDB\BSON\Decimal128 »
  • PHP Manual
  • MongoDB\BSON\Binary
  • Returns the Binary's type

MongoDB\BSON\Binary::getType

(mongodb >=1.0.0)

MongoDB\BSON\Binary::getType — Returns the Binary's type

Описание

final public integer MongoDB\BSON\Binary::getType ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the Binary's type.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\Binary::getType() example

<?php

$binary = new MongoDB\BSON\Binary('foo', MongoDB\BSON\Binary::TYPE_GENERIC);
var_dump($binary->getType());

?>

Результат выполнения данного примера:

int(0)

Смотрите также

  • » BSON Types


The MongoDB\BSON\Decimal128 class

(mongodb >=1.2.0)

Введение

BSON type for the » Decimal128 floating-point format, which supports numbers with up to 34 decimal digits (i.e. significant digits) and an exponent range of ?6143 to +6144.

Unlike the double BSON type (i.e. float in PHP), which only stores an approximation of the decimal values, the decimal data type stores the exact value. For example, MongoDB\BSON\Decimal128('9.99') has a precise value of 9.99 where as a double 9.99 would have an approximate value of 9.9900000000000002131628....

Замечание: MongoDB\BSON\Decimal128 совместим только с MongoDB 3.4+. При попытке использовать тип BSON с более ранними версиями приведет к ошибке.

Обзор классов

MongoDB\BSON\Decimal128 implements MongoDB\BSON\Type {
/* Методы */
final public __construct ([ string $value ] )
final public string __toString ( void )
}

Содержание

  • MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128
  • MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128


Construct a new Decimal128

  • « MongoDB\BSON\Decimal128
  • MongoDB\BSON\Decimal128::__toString »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Construct a new Decimal128

MongoDB\BSON\Decimal128::__construct

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__construct — Construct a new Decimal128

Описание

final public MongoDB\BSON\Decimal128::__construct ([ string $value ] )

Замечание: MongoDB\BSON\Decimal128 совместим только с MongoDB 3.4+. При попытке использовать тип BSON с более ранними версиями приведет к ошибке.

Список параметров

value (string)

A decimal string.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if value is not a valid decimal string.

Примеры

Пример #1 MongoDB\BSON\Decimal128::__construct() example

<?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 floating-point format
  • » BSON Types


Returns the string representation of this Decimal128

  • « MongoDB\BSON\Decimal128::__construct
  • MongoDB\BSON\Javascript »
  • PHP Manual
  • MongoDB\BSON\Decimal128
  • Returns the string representation of this Decimal128

MongoDB\BSON\Decimal128::__toString

(mongodb >=1.2.0)

MongoDB\BSON\Decimal128::__toString — Returns the string representation of this Decimal128

Описание

final public string MongoDB\BSON\Decimal128::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the string representation of this Decimal128.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\Decimal128::__toString() example

<?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 floating-point format
  • » BSON Types


The MongoDB\BSON\Javascript class

(mongodb >=1.0.0)

Введение

Обзор классов

MongoDB\BSON\Javascript implements MongoDB\BSON\Type {
/* Методы */
final public __construct ( string $code [, array|object $scope ] )
}

Содержание

  • MongoDB\BSON\Javascript::__construct — Construct a new Javascript


Construct a new Javascript

  • « MongoDB\BSON\Javascript
  • MongoDB\BSON\MaxKey »
  • PHP Manual
  • MongoDB\BSON\Javascript
  • Construct a new Javascript

MongoDB\BSON\Javascript::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Javascript::__construct — Construct a new Javascript

Описание

final public MongoDB\BSON\Javascript::__construct ( string $code [, array|object $scope ] )

Список параметров

code (string)

Javascript code.

scope (array|object)

Javascript scope.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\Javascript::__construct() example

<?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 Types


The MongoDB\BSON\MaxKey class

(mongodb >=1.0.0)

Введение

Обзор классов

MongoDB\BSON\MaxKey implements MongoDB\BSON\Type {
/* Методы */
final public __construct ( void )
}

Содержание

  • MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey


Construct a new MaxKey

  • « MongoDB\BSON\MaxKey
  • MongoDB\BSON\MinKey »
  • PHP Manual
  • MongoDB\BSON\MaxKey
  • Construct a new MaxKey

MongoDB\BSON\MaxKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MaxKey::__construct — Construct a new MaxKey

Описание

final public MongoDB\BSON\MaxKey::__construct ( void )

Список параметров

У этой функции нет параметров.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\MaxKey::__construct() example

<?php

var_dump(new MongoDB\BSON\MaxKey());

?>

Результат выполнения данного примера:

object(MongoDB\BSON\MaxKey)#1 (0) {
}

Смотрите также

  • » BSON Types


The MongoDB\BSON\MinKey class

(mongodb >=1.0.0)

Введение

Обзор классов

MongoDB\BSON\MinKey implements MongoDB\BSON\Type {
/* Методы */
final public __construct ( void )
}

Содержание

  • MongoDB\BSON\MinKey::__construct — Construct a new MinKey


Construct a new MinKey

  • « MongoDB\BSON\MinKey
  • MongoDB\BSON\ObjectID »
  • PHP Manual
  • MongoDB\BSON\MinKey
  • Construct a new MinKey

MongoDB\BSON\MinKey::__construct

(mongodb >=1.0.0)

MongoDB\BSON\MinKey::__construct — Construct a new MinKey

Описание

final public MongoDB\BSON\MinKey::__construct ( void )

Список параметров

У этой функции нет параметров.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\MinKey::__construct() example

<?php

var_dump(new MongoDB\BSON\MinKey());

?>

Результат выполнения данного примера:

object(MongoDB\BSON\MinKey)#1 (0) {
}

Смотрите также

  • » BSON Types


The MongoDB\BSON\ObjectID class

(mongodb >=1.0.0)

Введение

Обзор классов

MongoDB\BSON\ObjectID implements MongoDB\BSON\Type {
/* Методы */
final public __construct ([ string $id ] )
final public string __toString ( void )
}

Содержание

  • MongoDB\BSON\ObjectID::__construct — Construct a new ObjectID
  • MongoDB\BSON\ObjectID::__toString — Returns the hexidecimal representation of this ObjectID


Construct a new ObjectID

  • « MongoDB\BSON\ObjectID
  • MongoDB\BSON\ObjectID::__toString »
  • PHP Manual
  • MongoDB\BSON\ObjectID
  • Construct a new ObjectID

MongoDB\BSON\ObjectID::__construct

(mongodb >=1.0.0)

MongoDB\BSON\ObjectID::__construct — Construct a new ObjectID

Описание

final public MongoDB\BSON\ObjectID::__construct ([ string $id ] )

Список параметров

id (string)

A 24-character hexadecimal string. If not provided, the driver will generate an ObjectID.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.
  • Throws MongoDB\Driver\Exception\InvalidArgumentException if id is not a 24-character hexadecimal string.

Примеры

Пример #1 MongoDB\BSON\ObjectID::__construct() example

<?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 Reference
  • » BSON Types: ObjectID


Returns the hexidecimal representation of this ObjectID

  • « MongoDB\BSON\ObjectID::__construct
  • MongoDB\BSON\Regex »
  • PHP Manual
  • MongoDB\BSON\ObjectID
  • Returns the hexidecimal representation of this ObjectID

MongoDB\BSON\ObjectID::__toString

(mongodb >=1.0.0)

MongoDB\BSON\ObjectID::__toString — Returns the hexidecimal representation of this ObjectID

Описание

final public string MongoDB\BSON\ObjectID::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the hexidecimal representation of this ObjectID.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\ObjectID::__toString() example

<?php

var_dump((string) new MongoDB\BSON\ObjectId());
var_dump((string) new MongoDB\BSON\ObjectId('000000000000000000000001'));

?>

Результатом выполнения данного примера будет что-то подобное:

string(24) "56731b49da14d8747d701211"
string(24) "000000000000000000000001"

Смотрите также

  • » ObjectID Reference
  • » BSON Types: ObjectID


The MongoDB\BSON\Regex class

(mongodb >=1.0.0)

Введение

Обзор классов

MongoDB\BSON\Regex implements MongoDB\BSON\Type {
/* Методы */
final public __construct ( string $pattern , string $flags )
final public ReturnType getFlags ( void )
final public string getPattern ( void )
final public string __toString ( void )
}

Содержание

  • MongoDB\BSON\Regex::__construct — Construct a new Regex
  • MongoDB\BSON\Regex::getFlags — Returns the Regex's flags
  • MongoDB\BSON\Regex::getPattern — Returns the Regex's pattern
  • MongoDB\BSON\Regex::__toString — Returns the string representation of this Regex


Construct a new Regex

  • « MongoDB\BSON\Regex
  • MongoDB\BSON\Regex::getFlags »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Construct a new Regex

MongoDB\BSON\Regex::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Regex::__construct — Construct a new Regex

Описание

final public MongoDB\BSON\Regex::__construct ( string $pattern , string $flags )

Список параметров

pattern (string)

The regular expression pattern.

Замечание:

The pattern should not be wrapped with delimiter characters.

flags (string)

The » regular expression flags.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\Regex::__construct() example

<?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 Types
  • » Supported regular expression flags


Returns the Regex's flags

  • « MongoDB\BSON\Regex::__construct
  • MongoDB\BSON\Regex::getPattern »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Returns the Regex's flags

MongoDB\BSON\Regex::getFlags

(mongodb >=1.0.0)

MongoDB\BSON\Regex::getFlags — Returns the Regex's flags

Описание

final public ReturnType MongoDB\BSON\Regex::getFlags ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the Regex's flags.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\Regex::getFlags() example

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump($regex->getFlags());

?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "i"

Смотрите также

  • » BSON Types
  • » Supported regular expression flags


Returns the Regex's pattern

  • « MongoDB\BSON\Regex::getFlags
  • MongoDB\BSON\Regex::__toString »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Returns the Regex's pattern

MongoDB\BSON\Regex::getPattern

(mongodb >=1.0.0)

MongoDB\BSON\Regex::getPattern — Returns the Regex's pattern

Описание

final public string MongoDB\BSON\Regex::getPattern ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the Regex's pattern.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\Regex::getPattern() example

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump($regex->getPattern());

?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "regex"

Смотрите также

  • » BSON Types


Returns the string representation of this Regex

  • « MongoDB\BSON\Regex::getPattern
  • MongoDB\BSON\Timestamp »
  • PHP Manual
  • MongoDB\BSON\Regex
  • Returns the string representation of this Regex

MongoDB\BSON\Regex::__toString

(mongodb >=1.0.0)

MongoDB\BSON\Regex::__toString — Returns the string representation of this Regex

Описание

final public string MongoDB\BSON\Regex::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the string representation of this Regex.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\Regex::__toString() example

<?php

$regex = new MongoDB\BSON\Regex('regex', 'i');
var_dump((string) $regex);

?>

Результат выполнения данного примера:

string(8) "/regex/i"

Смотрите также

  • » BSON Types


The MongoDB\BSON\Timestamp class

(mongodb >=1.0.0)

Введение

Represents a » BSON timestamp, which is an internal MongoDB type not intended for general date storage.

Обзор классов

MongoDB\BSON\Timestamp implements MongoDB\BSON\Type {
/* Методы */
final public __construct ( integer $increment , integer $timestamp )
final public string __toString ( void )
}

Содержание

  • MongoDB\BSON\Timestamp::__construct — Construct a new Timestamp
  • MongoDB\BSON\Timestamp::__toString — Returns the string representation of this Timestamp


Construct a new Timestamp

  • « MongoDB\BSON\Timestamp
  • MongoDB\BSON\Timestamp::__toString »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Construct a new Timestamp

MongoDB\BSON\Timestamp::__construct

(mongodb >=1.0.0)

MongoDB\BSON\Timestamp::__construct — Construct a new Timestamp

Описание

final public MongoDB\BSON\Timestamp::__construct ( integer $increment , integer $timestamp )

Список параметров

increment (integer)

32-bit integer denoting the incrementing ordinal for operations within a given second.

timestamp (integer)

32-bit integer denoting seconds since the Unix epoch.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\Timestamp::__construct() example

<?php

$timestamp = new MongoDB\BSON\Timestamp(1234, 5678);

?>

Результат выполнения данного примера:

object(MongoDB\BSON\Timestamp)#1 (2) {
  ["increment"]=>
  int(1234)
  ["timestamp"]=>
  int(5678)
}

Смотрите также

  • » BSON Types: Timestamps


Returns the string representation of this Timestamp

  • « MongoDB\BSON\Timestamp::__construct
  • MongoDB\BSON\UTCDateTime »
  • PHP Manual
  • MongoDB\BSON\Timestamp
  • Returns the string representation of this Timestamp

MongoDB\BSON\Timestamp::__toString

(mongodb >=1.0.0)

MongoDB\BSON\Timestamp::__toString — Returns the string representation of this Timestamp

Описание

final public string MongoDB\BSON\Timestamp::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the string representation of this Timestamp.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\Timestamp::__toString() example

<?php

$timestamp = new MongoDB\BSON\Timestamp(1234, 5678);
var_dump((string) $timestamp);

?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "[1234:5678]"

Смотрите также

  • » BSON Types: Timestamps


The MongoDB\BSON\UTCDateTime class

(mongodb >=1.0.0)

Введение

Represents a » BSON date.

Обзор классов

MongoDB\BSON\UTCDateTime implements MongoDB\BSON\Type {
/* Методы */
final public __construct ( integer $milliseconds )
final public DateTime toDateTime ( void )
final public string __toString ( void )
}

Содержание

  • MongoDB\BSON\UTCDateTime::__construct — Construct a new UTCDateTime
  • MongoDB\BSON\UTCDateTime::toDateTime — Returns the DateTime representation of this UTCDateTime
  • MongoDB\BSON\UTCDateTime::__toString — Returns the string representation of this UTCDateTime


Construct a new UTCDateTime

  • « MongoDB\BSON\UTCDateTime
  • MongoDB\BSON\UTCDateTime::toDateTime »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Construct a new UTCDateTime

MongoDB\BSON\UTCDateTime::__construct

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::__construct — Construct a new UTCDateTime

Описание

final public MongoDB\BSON\UTCDateTime::__construct ( integer $milliseconds )

Список параметров

milliseconds (integer)

64-bit integer that represents the number of milliseconds since the Unix epoch (Jan 1, 1970). Negative values represent dates before 1970.

On 32-bit systems, this parameter may be provided as a string.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\UTCDateTime::__construct() example

<?php

$utcdatetime = new MongoDB\BSON\UTCDateTime(1416445411987);
var_dump($utcdatetime);

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\BSON\UTCDateTime)#1 (1) {
  ["milliseconds"]=>
  int(1416445411987)
}

Смотрите также

  • » BSON Types: Date


Returns the DateTime representation of this UTCDateTime

  • « MongoDB\BSON\UTCDateTime::__construct
  • MongoDB\BSON\UTCDateTime::__toString »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Returns the DateTime representation of this UTCDateTime

MongoDB\BSON\UTCDateTime::toDateTime

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::toDateTime — Returns the DateTime representation of this UTCDateTime

Описание

final public DateTime MongoDB\BSON\UTCDateTime::toDateTime ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the DateTime representation of this UTCDateTime. The returned DateTime will use the UTC time zone.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\UTCDatetime::toDateTime() example

<?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 Types: Date


Returns the string representation of this UTCDateTime

  • « MongoDB\BSON\UTCDateTime::toDateTime
  • MongoDB\BSON\Type »
  • PHP Manual
  • MongoDB\BSON\UTCDateTime
  • Returns the string representation of this UTCDateTime

MongoDB\BSON\UTCDateTime::__toString

(mongodb >=1.0.0)

MongoDB\BSON\UTCDateTime::__toString — Returns the string representation of this UTCDateTime

Описание

final public string MongoDB\BSON\UTCDateTime::__toString ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the string representation of this UTCDateTime.

Ошибки

  • При ошибке парсинга аргумента бросает исключение MongoDB\Driver\Exception\InvalidArgumentException.

Примеры

Пример #1 MongoDB\BSON\UTCDateTime::__toString() example

<?php

$utcdatetime = new MongoDB\BSON\UTCDateTime(1416445411987);
var_dump((string) $utcdatetime);

?>

Результат выполнения данного примера:

string(13) "1416445411987"

Смотрите также

  • » BSON Types: Date


  • « MongoDB\BSON\UTCDateTime::__toString
  • MongoDB\BSON\Persistable »
  • PHP Manual
  • MongoDB\BSON
  • The MongoDB\BSON\Type interface

The MongoDB\BSON\Type interface

(mongodb >=1.0.0)

Введение

Обзор классов

MongoDB\BSON\Type {
}


The MongoDB\BSON\Persistable interface

(mongodb >=1.0.0)

Введение

Classes may implement this interface to take advantage of automatic ODM (object document mapping) behavior in the driver. During serialization, the driver will inject a __pclass property containing the PHP class name into the data returned by MongoDB\BSON\Serializable::bsonSerialize(). During unserialization, the same __pclass property will then be used to infer the PHP class (independent of any type map configuration) to be constructed before MongoDB\BSON\Unserializable::bsonUnserialize() is invoked. See Persisting Data for additional information.

Замечание:

Even if MongoDB\BSON\Serializable::bsonSerialize() would return a sequential array, injection of the __pclass property will cause the object to be serialized as a BSON document.

Обзор классов

MongoDB\BSON\Persistable implements MongoDB\BSON\Unserializable , MongoDB\BSON\Serializable {
/* Наследуемые методы */
abstract public array|object MongoDB\BSON\Serializable::bsonSerialize ( void )
abstract public void MongoDB\BSON\Unserializable::bsonUnserialize ( array $data )
}


The MongoDB\BSON\Serializable interface

(mongodb >=1.0.0)

Введение

Classes that implement this interface may return data to be serialized as a BSON array or document in lieu of the object's public properties.

Обзор классов

MongoDB\BSON\Serializable implements MongoDB\BSON\Type {
/* Методы */
abstract public array|object bsonSerialize ( void )
}

Содержание

  • MongoDB\BSON\Serializable::bsonSerialize — Provides an array or document to serialize as BSON


Provides an array or document to serialize as BSON

  • « MongoDB\BSON\Serializable
  • MongoDB\BSON\Unserializable »
  • PHP Manual
  • MongoDB\BSON\Serializable
  • Provides an array or document to serialize as BSON

MongoDB\BSON\Serializable::bsonSerialize

(mongodb >=1.0.0)

MongoDB\BSON\Serializable::bsonSerialize — Provides an array or document to serialize as BSON

Описание

abstract public array|object MongoDB\BSON\Serializable::bsonSerialize ( void )

Called during serialization of the object to BSON. The method must return an array or stdClass.

Root documents (e.g. a MongoDB\BSON\Serializable passed to MongoDB\BSON\fromPHP()) will always be serialized as a BSON document. For field values, associative arrays and stdClass instances will be serialized as a BSON document and sequential arrays (i.e. sequential, numeric indexes starting at 0) will be serialized as a BSON array.

Users are encouraged to include an _id property (e.g. a MongoDB\BSON\ObjectID initialized in your constructor) when returning data for a BSON root document; otherwise, the driver or database will need to generate a MongoDB\BSON\ObjectID when inserting or upserting the document, respectively.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array or stdClass to be serialized as a BSON array or document.

Примеры

Пример #1 MongoDB\BSON\Serializable::bsonSerialize() returning an associative array for root document

<?php

class MyDocument implements MongoDB\BSON\Serializable
{
    private $id;

    function __construct()
    {
        $this->id = new MongoDB\BSON\ObjectID;
    }

    function bsonSerialize()
    {
        return ['_id' => $this->id, 'foo' => 'bar'];
    }
}

$bson = MongoDB\BSON\fromPHP(new MyDocument);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Результатом выполнения данного примера будет что-то подобное:

{ "_id" : { "$oid" : "56cccdcada14d8755a58c591" }, "foo" : "bar" }

Пример #2 MongoDB\BSON\Serializable::bsonSerialize() returning a sequential array for root document

<?php

class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return [1, 2, 3];
    }
}

$bson = MongoDB\BSON\fromPHP(new MyArray);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Результат выполнения данного примера:

{ "0" : 1, "1" : 2, "2" : 3 }

Пример #3 MongoDB\BSON\Serializable::bsonSerialize() returning an associative array for document field

<?php

class MyDocument implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return ['foo' => 'bar'];
    }
}

$value = ['document' => new MyDocument];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Результат выполнения данного примера:

{ "document" : { "foo" : "bar" } }

Пример #4 MongoDB\BSON\Serializable::bsonSerialize() returning a sequential array for document field

<?php

class MyArray implements MongoDB\BSON\Serializable
{
    function bsonSerialize()
    {
        return [1, 2, 3];
    }
}

$value = ['array' => new MyArray];
$bson = MongoDB\BSON\fromPHP($value);
echo MongoDB\BSON\toJSON($bson), "\n";

?>

Результат выполнения данного примера:

{ "array" : [ 1, 2, 3 ] }

Смотрите также

  • MongoDB\BSON\Unserializable::bsonUnserialize() - Constructs the object from a BSON array or document
  • MongoDB\BSON\Persistable
  • Persisting Data


The MongoDB\BSON\Unserializable interface

(mongodb >=1.0.0)

Введение

Classes that implement this interface may be specified in a type map for unserializing BSON arrays and documents (both root and embedded).

Обзор классов

MongoDB\BSON\Unserializable {
/* Методы */
abstract public void bsonUnserialize ( array $data )
}

Содержание

  • MongoDB\BSON\Unserializable::bsonUnserialize — Constructs the object from a BSON array or document


Constructs the object from a BSON array or document

  • « MongoDB\BSON\Unserializable
  • MongoDB\Driver\Exception »
  • PHP Manual
  • MongoDB\BSON\Unserializable
  • Constructs the object from a BSON array or document

MongoDB\BSON\Unserializable::bsonUnserialize

(mongodb >=1.0.0)

MongoDB\BSON\Unserializable::bsonUnserialize — Constructs the object from a BSON array or document

Описание

abstract public void MongoDB\BSON\Unserializable::bsonUnserialize ( array $data )

Called during unserialization of the object from BSON. The properties of the BSON array or document will be passed to the method as an array.

Remember to check for an _id property when handling data from a BSON document.

Замечание:

This method acts as the constructor of the object. The __construct() method will not be called after this method.

Список параметров

data (array)

Properties within the BSON array or document.

Возвращаемые значения

The return value from this method is ignored.

Примеры

Пример #1 MongoDB\BSON\Unserializable::bsonUnserialize() example

<?php

class MyDocument implements MongoDB\BSON\Unserializable
{
    private $data = [];

    function bsonUnserialize(array $data)
    {
        $this->data = $data;
    }
}

$bson = MongoDB\BSON\fromJSON('{ "foo": "bar" }');
$value = MongoDB\BSON\toPHP($bson, ['root' => 'MyDocument']);
var_dump($value);

?>

Результат выполнения данного примера:

object(MyDocument)#1 (1) {
  ["data":"MyDocument":private]=>
  array(1) {
    ["foo"]=>
    string(3) "bar"
  }
}

Смотрите также

  • MongoDB\BSON\Serializable::bsonSerialize() - Provides an array or document to serialize as BSON
  • MongoDB\BSON\Persistable
  • Persisting Data


Exception classes

  • MongoDB\Driver\Exception\AuthenticationException — The MongoDB\Driver\Exception\AuthenticationException class
  • MongoDB\Driver\Exception\BulkWriteException — The MongoDB\Driver\Exception\BulkWriteException class
  • MongoDB\Driver\Exception\ConnectionException — The MongoDB\Driver\Exception\ConnectionException class
  • MongoDB\Driver\Exception\ConnectionTimeoutException — The MongoDB\Driver\Exception\ConnectionTimeoutException class
  • MongoDB\Driver\Exception\Exception — The MongoDB\Driver\Exception\Exception interface
  • MongoDB\Driver\Exception\ExecutionTimeoutException — The MongoDB\Driver\Exception\ExecutionTimeoutException class
  • MongoDB\Driver\Exception\InvalidArgumentException — The MongoDB\Driver\Exception\InvalidArgumentException class
  • MongoDB\Driver\Exception\LogicException — The MongoDB\Driver\Exception\LogicException class
  • MongoDB\Driver\Exception\RuntimeException — The MongoDB\Driver\Exception\RuntimeException class
  • MongoDB\Driver\Exception\SSLConnectionException — The MongoDB\Driver\Exception\SSLConnectionException class
  • MongoDB\Driver\Exception\UnexpectedValueException — The MongoDB\Driver\Exception\UnexpectedValueException class
  • MongoDB\Driver\Exception\WriteException — The MongoDB\Driver\Exception\WriteException class
    • MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation


The MongoDB\Driver\Exception\AuthenticationException class

(mongodb >= 1.0.0)

Введение

Thrown when the driver fails to authenticate with the server.

Обзор классов

MongoDB\Driver\Exception\AuthenticationException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\BulkWriteException class

(mongodb >= 1.0.0)

Введение

Thrown when a bulk write operation fails.

Обзор классов

MongoDB\Driver\Exception\BulkWriteException extends MongoDB\Driver\Exception\WriteException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected MongoDB\Driver\WriteResult $writeResult ;
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public MongoDB\Driver\WriteResult MongoDB\Driver\Exception\WriteException::getWriteResult ( void )
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\ConnectionException class

(mongodb >= 1.0.0)

Введение

Base class for exceptions thrown when the driver fails to establish a database connection.

Обзор классов

MongoDB\Driver\Exception\ConnectionException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\ConnectionTimeoutException class

(mongodb >= 1.0.0)

Введение

Thrown when the driver fails to establish a database connection within a specified time limit (e.g. » connectTimeoutMS).

Обзор классов

MongoDB\Driver\Exception\ConnectionTimeoutException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\Exception interface

(mongodb >= 1.0.0)

Введение

Common interface for all driver exceptions. This may be used to catch only exceptions originating from the driver itself.

Обзор классов

MongoDB\Driver\Exception\Exception {
}


The MongoDB\Driver\Exception\ExecutionTimeoutException class

(mongodb >= 1.0.0)

Введение

Thrown when a query or command fails to complete within a specified time limit (e.g. » maxTimeMS).

Обзор классов

MongoDB\Driver\Exception\ExecutionTimeoutException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\InvalidArgumentException class

(mongodb >= 1.0.0)

Введение

Thrown when a driver method is given invalid arguments (e.g. invalid option types).

Обзор классов

MongoDB\Driver\Exception\InvalidArgumentException extends InvalidArgumentException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\LogicException class

(mongodb >= 1.0.0)

Введение

Thrown when the driver is incorrectly used (e.g. rewinding a cursor).

Обзор классов

MongoDB\Driver\Exception\LogicException extends LogicException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\RuntimeException class

(mongodb >= 1.0.0)

Введение

Thrown when the driver encounters a runtime error (e.g. internal error from » libmongoc).

Обзор классов

MongoDB\Driver\Exception\RuntimeException extends RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\SSLConnectionException class

(mongodb >= 1.0.0)

Введение

Thrown when the driver fails to establish an SSL connection with the server.

Обзор классов

MongoDB\Driver\Exception\SSLConnectionException extends MongoDB\Driver\Exception\ConnectionException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\UnexpectedValueException class

(mongodb >= 1.0.0)

Введение

Thrown when the driver encounters an unexpected value (e.g. during BSON serialization or deserialization).

Обзор классов

MongoDB\Driver\Exception\UnexpectedValueException extends UnexpectedValueException implements MongoDB\Driver\Exception\Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The MongoDB\Driver\Exception\WriteException class

(mongodb >= 1.0.0)

Введение

Base class for exceptions thrown by a failed write operation. The exception encapsulates a MongoDB\Driver\WriteResult object.

Обзор классов

abstract MongoDB\Driver\Exception\WriteException extends MongoDB\Driver\Exception\RuntimeException implements MongoDB\Driver\Exception\Exception {
/* Свойства */
protected MongoDB\Driver\WriteResult $writeResult ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
final public MongoDB\Driver\WriteResult getWriteResult ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Свойства

writeResult

The MongoDB\Driver\WriteResult associated with the failed write operation.

Содержание

  • MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation


Returns the WriteResult for the failed write operation

  • « MongoDB\Driver\Exception\WriteException
  • mSQL »
  • PHP Manual
  • MongoDB\Driver\Exception\WriteException
  • Returns the WriteResult for the failed write operation

MongoDB\Driver\Exception\WriteException::getWriteResult

(mongodb >= 1.0.0)

MongoDB\Driver\Exception\WriteException::getWriteResult — Returns the WriteResult for the failed write operation

Описание

final public MongoDB\Driver\WriteResult MongoDB\Driver\Exception\WriteException::getWriteResult ( void )

Returns the MongoDB\Driver\WriteResult for the failed write operation. The MongoDB\Driver\WriteResult::getWriteErrors() and MongoDB\Driver\WriteResult::getWriteConcernError() methods may be used to get more details about the failure.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The MongoDB\Driver\WriteResult for the failed write operation.

Примеры

Пример #1 MongoDB\Driver\Exception\WriteException::getWriteResult() example

<?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() - Execute one or more write operations


mSQL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Основы использования
  • mSQL Функции
    • msql_affected_rows — Returns number of affected rows
    • msql_close — Close mSQL connection
    • msql_connect — Open mSQL connection
    • msql_create_db — Create mSQL database
    • msql_createdb — Псевдоним msql_create_db
    • msql_data_seek — Move internal row pointer
    • msql_db_query — Send mSQL query
    • msql_dbname — Псевдоним msql_result
    • msql_drop_db — Drop (delete) mSQL database
    • msql_error — Returns error message of last msql call
    • msql_fetch_array — Fetch row as array
    • msql_fetch_field — Get field information
    • msql_fetch_object — Fetch row as object
    • msql_fetch_row — Get row as enumerated array
    • msql_field_flags — Get field flags
    • msql_field_len — Get field length
    • msql_field_name — Get the name of the specified field in a result
    • msql_field_seek — Set field offset
    • msql_field_table — Get table name for field
    • msql_field_type — Get field type
    • msql_fieldflags — Alias of msql_field_flags
    • msql_fieldlen — Alias of msql_field_len
    • msql_fieldname — Alias of msql_field_name
    • msql_fieldtable — Alias of msql_field_table
    • msql_fieldtype — Alias of msql_field_type
    • msql_free_result — Free result memory
    • msql_list_dbs — List mSQL databases on server
    • msql_list_fields — List result fields
    • msql_list_tables — List tables in an mSQL database
    • msql_num_fields — Get number of fields in result
    • msql_num_rows — Get number of rows in result
    • msql_numfields — Alias of msql_num_fields
    • msql_numrows — Alias of msql_num_rows
    • msql_pconnect — Open persistent mSQL connection
    • msql_query — Send mSQL query
    • msql_regcase — Alias of sql_regcase
    • msql_result — Get result data
    • msql_select_db — Select mSQL database
    • msql_tablename — Alias of msql_result
    • msql — Alias of msql_db_query


Введение

Эти функции позволяют вам получить доступ к базе mSQL. Более подробную информацию о mSQL можно найти по адресу » http://www.hughes.com.au/.


Установка

Для работы с этими функциями PHP должен быть скомпилирован с поддержкой msql при помощи опции --with-msql[=DIR] , где DIR - это директория установки mSQL, по умолчанию равная /usr/local/msql3.

Замечание: Замечание для пользователей Win32

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: msql.dll


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки mSQL
Имя | По умолчанию | Меняемо | Список изменений
msql.allow_persistent | "1" | PHP_INI_ALL |
msql.max_persistent | "-1" | PHP_INI_ALL |
msql.max_links | "-1" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

msql.allow_persistent boolean

Разрешить постоянные mSQL соединения.

msql.max_persistent integer

Максимальное количество постоянных соединений с mSQL на процесс.

msql.max_links integer

Максимальное количество соединений с mSQL на процесс, включая постоянные соединения.


Типы ресурсов

В модуле mSQL используется два типа ресурсов. Первый является ссылкой на идентификатор соединения с базой, второй содержит результат запроса.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MSQL_ASSOC (integer)
MSQL_NUM (integer)
MSQL_BOTH (integer)


  • « Предопределенные константы
  • Основы использования »
  • PHP Manual
  • mSQL
  • Примеры

Примеры

Содержание

  • Основы использования


Основы использования

Этот простой пример демонстрирует как установить соединение с базой данных, выполнить запрос, вывести результат запроса и разорвать соединение с базой.

Пример #1 mSQL пример использования

<?php
/* Соединяемся, выбираем базу данных */
$link = msql_connect('localhost', 'username', 'password')
    or die('Невозможно соединиться: ' . msql_error($link));

msql_select_db('database', $link)
    or die('Невозможно выбрать базу данных');

/* Выполнение SQL запроса */
$query = 'SELECT * FROM my_table';
$result = msql_query($query, $link) or die('Ошибка при выполнении запроса: ' . msql_error());

/* Выводим результат в HTML */
echo "<table>\n";
while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($row as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

/* Очищаем результат выборки */
msql_free_result($result);

/* Закрываем соединение */
msql_close($link);
?>


mSQL Функции

Содержание

  • msql_affected_rows — Returns number of affected rows
  • msql_close — Close mSQL connection
  • msql_connect — Open mSQL connection
  • msql_create_db — Create mSQL database
  • msql_createdb — Псевдоним msql_create_db
  • msql_data_seek — Move internal row pointer
  • msql_db_query — Send mSQL query
  • msql_dbname — Псевдоним msql_result
  • msql_drop_db — Drop (delete) mSQL database
  • msql_error — Returns error message of last msql call
  • msql_fetch_array — Fetch row as array
  • msql_fetch_field — Get field information
  • msql_fetch_object — Fetch row as object
  • msql_fetch_row — Get row as enumerated array
  • msql_field_flags — Get field flags
  • msql_field_len — Get field length
  • msql_field_name — Get the name of the specified field in a result
  • msql_field_seek — Set field offset
  • msql_field_table — Get table name for field
  • msql_field_type — Get field type
  • msql_fieldflags — Alias of msql_field_flags
  • msql_fieldlen — Alias of msql_field_len
  • msql_fieldname — Alias of msql_field_name
  • msql_fieldtable — Alias of msql_field_table
  • msql_fieldtype — Alias of msql_field_type
  • msql_free_result — Free result memory
  • msql_list_dbs — List mSQL databases on server
  • msql_list_fields — List result fields
  • msql_list_tables — List tables in an mSQL database
  • msql_num_fields — Get number of fields in result
  • msql_num_rows — Get number of rows in result
  • msql_numfields — Alias of msql_num_fields
  • msql_numrows — Alias of msql_num_rows
  • msql_pconnect — Open persistent mSQL connection
  • msql_query — Send mSQL query
  • msql_regcase — Alias of sql_regcase
  • msql_result — Get result data
  • msql_select_db — Select mSQL database
  • msql_tablename — Alias of msql_result
  • msql — Alias of msql_db_query


Returns number of affected rows

  • « mSQL Функции
  • msql_close »
  • PHP Manual
  • mSQL Функции
  • Returns number of affected rows

msql_affected_rows

(PHP 4, PHP 5, PHP 7)

msql_affected_rows — Returns number of affected rows

Описание

int msql_affected_rows ( resource $result )

Returns number of affected rows by the last SELECT, UPDATE or DELETE query associated with result.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

Возвращаемые значения

Returns the number of affected rows on success, or FALSE on error.

Смотрите также

  • msql_query() - Send mSQL query


Close mSQL connection

  • « msql_affected_rows
  • msql_connect »
  • PHP Manual
  • mSQL Функции
  • Close mSQL connection

msql_close

(PHP 4, PHP 5, PHP 7)

msql_close — Close mSQL connection

Описание

bool msql_close ([ resource $link_identifier ] )

msql_close() closes the non-persistent connection to the mSQL server that's associated with the specified link identifier.

Using msql_close() isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution. See also freeing resources.

Список параметров

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_connect() - Open mSQL connection
  • msql_pconnect() - Open persistent mSQL connection


Open mSQL connection

  • « msql_close
  • msql_create_db »
  • PHP Manual
  • mSQL Функции
  • Open mSQL connection

msql_connect

(PHP 4, PHP 5, PHP 7)

msql_connect — Open mSQL connection

Описание

resource msql_connect ([ string $hostname ] )

msql_connect() establishes a connection to a mSQL server.

If a second call is made to msql_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling msql_close().

Список параметров

hostname

The hostname can also include a port number. e.g. hostname,port.

If not specified, the connection is established by the means of a Unix domain socket, being then more efficient then a localhost TCP socket connection.

Замечание:

While this function will accept a colon (:) as a host/port separator, a comma (,) is the preferred method.

Возвращаемые значения

Returns a positive mSQL link identifier on success, or FALSE on error.

Смотрите также

  • msql_pconnect() - Open persistent mSQL connection
  • msql_close() - Close mSQL connection


Create mSQL database

  • « msql_connect
  • msql_createdb »
  • PHP Manual
  • mSQL Функции
  • Create mSQL database

msql_create_db

(PHP 4, PHP 5, PHP 7)

msql_create_db — Create mSQL database

Описание

bool msql_create_db ( string $database_name [, resource $link_identifier ] )

msql_create_db() attempts to create a new database on the mSQL server.

Список параметров

database_name

The name of the mSQL database.

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_drop_db() - Drop (delete) mSQL database


Псевдоним msql_create_db

  • « msql_create_db
  • msql_data_seek »
  • PHP Manual
  • mSQL Функции
  • Псевдоним msql_create_db

msql_createdb

(PHP 4, PHP 5, PHP 7)

msql_createdb — Псевдоним msql_create_db()

Описание

Эта функция является псевдонимом: msql_create_db().


Move internal row pointer

  • « msql_createdb
  • msql_db_query »
  • PHP Manual
  • mSQL Функции
  • Move internal row pointer

msql_data_seek

(PHP 4, PHP 5, PHP 7)

msql_data_seek — Move internal row pointer

Описание

bool msql_data_seek ( resource $result , int $row_number )

msql_data_seek() moves the internal row pointer of the mSQL result associated with the specified query identifier to point to the specified row number. The next call to msql_fetch_row() would return that row.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

row_number

The seeked row number.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_fetch_array() - Fetch row as array
  • msql_fetch_object() - Fetch row as object
  • msql_fetch_row() - Get row as enumerated array
  • msql_result() - Get result data


Send mSQL query

  • « msql_data_seek
  • msql_dbname »
  • PHP Manual
  • mSQL Функции
  • Send mSQL query

msql_db_query

(PHP 4, PHP 5, PHP 7)

msql_db_query — Send mSQL query

Описание

resource msql_db_query ( string $database , string $query [, resource $link_identifier ] )

msql_db_query() selects a database and executes a query on it.

Список параметров

database

The name of the mSQL database.

query

The SQL query.

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Returns a positive mSQL query identifier to the query result, or FALSE on error.

Смотрите также

  • msql_query() - Send mSQL query


Псевдоним msql_result

  • « msql_db_query
  • msql_drop_db »
  • PHP Manual
  • mSQL Функции
  • Псевдоним msql_result

msql_dbname

(PHP 4, PHP 5, PHP 7)

msql_dbname — Псевдоним msql_result()

Описание

Эта функция является псевдонимом: msql_result().


Drop (delete) mSQL database

  • « msql_dbname
  • msql_error »
  • PHP Manual
  • mSQL Функции
  • Drop (delete) mSQL database

msql_drop_db

(PHP 4, PHP 5, PHP 7)

msql_drop_db — Drop (delete) mSQL database

Описание

bool msql_drop_db ( string $database_name [, resource $link_identifier ] )

msql_drop_db() attempts to drop (remove) a database from the mSQL server.

Список параметров

database_name

The name of the database.

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_create_db() - Create mSQL database


Returns error message of last msql call

  • « msql_drop_db
  • msql_fetch_array »
  • PHP Manual
  • mSQL Функции
  • Returns error message of last msql call

msql_error

(PHP 4, PHP 5, PHP 7)

msql_error — Returns error message of last msql call

Описание

string msql_error ( void )

msql_error() returns the last issued error by the mSQL server. Note that only the last error message is accessible with msql_error().

Возвращаемые значения

The last error message or an empty string if no error was issued.


Fetch row as array

  • « msql_error
  • msql_fetch_field »
  • PHP Manual
  • mSQL Функции
  • Fetch row as array

msql_fetch_array

(PHP 4, PHP 5, PHP 7)

msql_fetch_array — Fetch row as array

Описание

array msql_fetch_array ( resource $result [, int $result_type ] )

msql_fetch_array() is an extended version of msql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using msql_fetch_array() is NOT significantly slower than using msql_fetch_row(), while it provides a significant added value.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

result_type

A constant that can take the following values: MSQL_ASSOC, MSQL_NUM, and MSQL_BOTH with MSQL_BOTH being the default.

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 msql_fetch_array() example

<?php
$con = msql_connect();
if (!$con) {
    die('Server connection problem: ' . msql_error());
}

if (!msql_select_db('test', $con)) {
    die('Database connection problem: ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
    die('Query execution problem: ' . msql_error());
}

while ($row = msql_fetch_array($result, MSQL_ASSOC)) {
    echo $row['id'] . ': ' . $row['name'] . "\n";
}

msql_free_result($result);
?>

Список изменений

Версия | Описание
5.0.4 | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.

Смотрите также

  • msql_fetch_row() - Get row as enumerated array
  • msql_fetch_object() - Fetch row as object
  • msql_data_seek() - Move internal row pointer
  • msql_result() - Get result data


Get field information

  • « msql_fetch_array
  • msql_fetch_object »
  • PHP Manual
  • mSQL Функции
  • Get field information

msql_fetch_field

(PHP 4, PHP 5, PHP 7)

msql_fetch_field — Get field information

Описание

object msql_fetch_field ( resource $result [, int $field_offset = 0 ] )

msql_fetch_field() can be used in order to obtain information about fields in a certain query result.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

The field offset. If not specified, the next field that wasn't yet retrieved by msql_fetch_field() is retrieved.

Возвращаемые значения

Returns an object containing field information. The properties of the object are:

  • name - column name

  • table - name of the table the column belongs to

  • not_null - 1 if the column cannot be NULL

  • unique - 1 if the column is a unique key

  • type - the type of the column

Смотрите также

  • msql_field_seek() - Set field offset


Fetch row as object

  • « msql_fetch_field
  • msql_fetch_row »
  • PHP Manual
  • mSQL Функции
  • Fetch row as object

msql_fetch_object

(PHP 4, PHP 5, PHP 7)

msql_fetch_object — Fetch row as object

Описание

object msql_fetch_object ( resource $result )

msql_fetch_object() is similar to msql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Speed-wise, the function is identical to msql_fetch_array(), and almost as quick as msql_fetch_row() (the difference is insignificant).

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

Возвращаемые значения

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 msql_fetch_object() example

<?php
$con = msql_connect();
if (!$con) {
    die('Server connection problem: ' . msql_error());
}

if (!msql_select_db('test', $con)) {
    die('Database connection problem: ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
    die('Query execution problem: ' . msql_error());
}

while ($row = msql_fetch_object($result, MSQL_ASSOC)) {
    echo $row->id . ': ' . $row->name . "\n";
}

msql_free_result($result);
?>

Список изменений

Версия | Описание
5.0.4 | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.

Смотрите также

  • msql_fetch_array() - Fetch row as array
  • msql_fetch_row() - Get row as enumerated array
  • msql_data_seek() - Move internal row pointer
  • msql_result() - Get result data


Get row as enumerated array

  • « msql_fetch_object
  • msql_field_flags »
  • PHP Manual
  • mSQL Функции
  • Get row as enumerated array

msql_fetch_row

(PHP 4, PHP 5, PHP 7)

msql_fetch_row — Get row as enumerated array

Описание

array msql_fetch_row ( resource $result )

msql_fetch_row() fetches one row of data from the result associated with the specified query identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to msql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 msql_fetch_row() example

<?php
$con = msql_connect();
if (!$con) {
    die('Server connection problem: ' . msql_error());
}

if (!msql_select_db('test', $con)) {
    die('Database connection problem: ' . msql_error());
}

$result = msql_query('SELECT id, name FROM people', $con);
if (!$result) {
    die('Query execution problem: ' . msql_error());
}

while ($row = msql_fetch_row($result)) {
    echo $row[0] . ': ' . $row[1] . "\n";
}

msql_free_result($result);
?>

Список изменений

Версия | Описание
5.0.4 | A bug was fixed when retrieving data from columns containing NULL values. Such columns were not placed into the resulting array.

Смотрите также

  • msql_fetch_array() - Fetch row as array
  • msql_fetch_object() - Fetch row as object
  • msql_data_seek() - Move internal row pointer
  • msql_result() - Get result data


Get field flags

  • « msql_fetch_row
  • msql_field_len »
  • PHP Manual
  • mSQL Функции
  • Get field flags

msql_field_flags

(PHP 4, PHP 5, PHP 7)

msql_field_flags — Get field flags

Описание

string msql_field_flags ( resource $result , int $field_offset )

msql_field_flags() returns the field flags of the specified field.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 1.

Возвращаемые значения

Returns a string containing the field flags of the specified key. This can be: primary key not null, not null, primary key, unique not null or unique.


Get field length

  • « msql_field_flags
  • msql_field_name »
  • PHP Manual
  • mSQL Функции
  • Get field length

msql_field_len

(PHP 4, PHP 5, PHP 7)

msql_field_len — Get field length

Описание

int msql_field_len ( resource $result , int $field_offset )

msql_field_len() returns the length of the specified field.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 1.

Возвращаемые значения

Returns the length of the specified field or FALSE on error.


Get the name of the specified field in a result

  • « msql_field_len
  • msql_field_seek »
  • PHP Manual
  • mSQL Функции
  • Get the name of the specified field in a result

msql_field_name

(PHP 4, PHP 5, PHP 7)

msql_field_name — Get the name of the specified field in a result

Описание

string msql_field_name ( resource $result , int $field_offset )

msql_field_name() gets the name of the specified field index.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 1.

Возвращаемые значения

The name of the field или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_field_len() - Get field length


Set field offset

  • « msql_field_name
  • msql_field_table »
  • PHP Manual
  • mSQL Функции
  • Set field offset

msql_field_seek

(PHP 4, PHP 5, PHP 7)

msql_field_seek — Set field offset

Описание

bool msql_field_seek ( resource $result , int $field_offset )

Seeks to the specified field offset. If the next call to msql_fetch_field() won't include a field offset, this field would be returned.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_fetch_field() - Get field information


Get table name for field

  • « msql_field_seek
  • msql_field_type »
  • PHP Manual
  • mSQL Функции
  • Get table name for field

msql_field_table

(PHP 4, PHP 5, PHP 7)

msql_field_table — Get table name for field

Описание

int msql_field_table ( resource $result , int $field_offset )

Returns the name of the table that the specified field is in.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 1.

Возвращаемые значения

The name of the table on success или FALSE в случае возникновения ошибки.


Get field type

  • « msql_field_table
  • msql_fieldflags »
  • PHP Manual
  • mSQL Функции
  • Get field type

msql_field_type

(PHP 4, PHP 5, PHP 7)

msql_field_type — Get field type

Описание

string msql_field_type ( resource $result , int $field_offset )

msql_field_type() gets the type of the specified field index.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

field_offset

Числовое смещение поля. field_offset начинается с 1.

Возвращаемые значения

The type of the field. One of int, char, real, ident, null or unknown. This functions will return FALSE on failure.


Alias of msql_field_flags

  • « msql_field_type
  • msql_fieldlen »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_field_flags

msql_fieldflags

(PHP 4, PHP 5, PHP 7)

msql_fieldflags — Alias of msql_field_flags()

Описание

This function is an alias of msql_field_flags().


Alias of msql_field_len

  • « msql_fieldflags
  • msql_fieldname »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_field_len

msql_fieldlen

(PHP 4, PHP 5, PHP 7)

msql_fieldlen — Alias of msql_field_len()

Описание

This function is an alias of msql_field_len().


Alias of msql_field_name

  • « msql_fieldlen
  • msql_fieldtable »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_field_name

msql_fieldname

(PHP 4, PHP 5, PHP 7)

msql_fieldname — Alias of msql_field_name()

Описание

This function is an alias of msql_field_name().


Alias of msql_field_table

  • « msql_fieldname
  • msql_fieldtype »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_field_table

msql_fieldtable

(PHP 4, PHP 5, PHP 7)

msql_fieldtable — Alias of msql_field_table()

Описание

This function is an alias of msql_field_table().


Alias of msql_field_type

  • « msql_fieldtable
  • msql_free_result »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_field_type

msql_fieldtype

(PHP 4, PHP 5, PHP 7)

msql_fieldtype — Alias of msql_field_type()

Описание

This function is an alias of msql_field_type().


Free result memory

  • « msql_fieldtype
  • msql_list_dbs »
  • PHP Manual
  • mSQL Функции
  • Free result memory

msql_free_result

(PHP 4, PHP 5, PHP 7)

msql_free_result — Free result memory

Описание

bool msql_free_result ( resource $result )

msql_free_result() frees the memory associated with query_identifier. When PHP completes a request, this memory is freed automatically, so you only need to call this function when you want to make sure you don't use too much memory while the script is running.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


List mSQL databases on server

  • « msql_free_result
  • msql_list_fields »
  • PHP Manual
  • mSQL Функции
  • List mSQL databases on server

msql_list_dbs

(PHP 4, PHP 5, PHP 7)

msql_list_dbs — List mSQL databases on server

Описание

resource msql_list_dbs ([ resource $link_identifier ] )

msql_list_tables() lists the databases available on the specified link_identifier.

Список параметров

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Returns a result set which may be traversed with any function that fetches result sets, such as msql_fetch_array(). On failure, this function will return FALSE.

Смотрите также

  • msql_list_tables() - List tables in an mSQL database
  • msql_list_fields() - List result fields


List result fields

  • « msql_list_dbs
  • msql_list_tables »
  • PHP Manual
  • mSQL Функции
  • List result fields

msql_list_fields

(PHP 4, PHP 5, PHP 7)

msql_list_fields — List result fields

Описание

resource msql_list_fields ( string $database , string $tablename [, resource $link_identifier ] )

msql_list_fields() returns information about the given table.

Список параметров

database

The name of the database.

tablename

The name of the table.

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Returns a result set which may be traversed with any function that fetches result sets, such as msql_fetch_array(). On failure, this function will return FALSE.

Смотрите также

  • msql_list_tables() - List tables in an mSQL database
  • msql_list_dbs() - List mSQL databases on server


List tables in an mSQL database

  • « msql_list_fields
  • msql_num_fields »
  • PHP Manual
  • mSQL Функции
  • List tables in an mSQL database

msql_list_tables

(PHP 4, PHP 5, PHP 7)

msql_list_tables — List tables in an mSQL database

Описание

resource msql_list_tables ( string $database [, resource $link_identifier ] )

msql_list_tables() lists the tables on the specified database.

Список параметров

database

The name of the database.

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Returns a result set which may be traversed with any function that fetches result sets, such as msql_fetch_array(). On failure, this function will return FALSE.

Смотрите также

  • msql_list_fields() - List result fields
  • msql_list_dbs() - List mSQL databases on server


Get number of fields in result

  • « msql_list_tables
  • msql_num_rows »
  • PHP Manual
  • mSQL Функции
  • Get number of fields in result

msql_num_fields

(PHP 4, PHP 5, PHP 7)

msql_num_fields — Get number of fields in result

Описание

int msql_num_fields ( resource $result )

msql_num_fields() returns the number of fields in a result set.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

Возвращаемые значения

Returns the number of fields in the result set.

Смотрите также

  • msql_query() - Send mSQL query
  • msql_fetch_field() - Get field information
  • msql_num_rows() - Get number of rows in result


Get number of rows in result

  • « msql_num_fields
  • msql_numfields »
  • PHP Manual
  • mSQL Функции
  • Get number of rows in result

msql_num_rows

(PHP 4, PHP 5, PHP 7)

msql_num_rows — Get number of rows in result

Описание

int msql_num_rows ( resource $query_identifier )

msql_num_rows() returns the number of rows in a result set.

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

Возвращаемые значения

Returns the number of rows in the result set.

Смотрите также

  • msql_num_fields() - Get number of fields in result


Alias of msql_num_fields

  • « msql_num_rows
  • msql_numrows »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_num_fields

msql_numfields

(PHP 4, PHP 5, PHP 7)

msql_numfields — Alias of msql_num_fields()

Описание

This function is an alias of msql_num_fields().


Alias of msql_num_rows

  • « msql_numfields
  • msql_pconnect »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_num_rows

msql_numrows

(PHP 4, PHP 5, PHP 7)

msql_numrows — Alias of msql_num_rows()

Описание

This function is an alias of msql_num_rows().


Open persistent mSQL connection

  • « msql_numrows
  • msql_query »
  • PHP Manual
  • mSQL Функции
  • Open persistent mSQL connection

msql_pconnect

(PHP 4, PHP 5, PHP 7)

msql_pconnect — Open persistent mSQL connection

Описание

resource msql_pconnect ([ string $hostname ] )

msql_pconnect() acts very much like msql_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (msql_close() will not close links established by this function).

Список параметров

hostname

The hostname can also include a port number. e.g. hostname,port.

If not specified, the connection is established by the means of a Unix domain socket, being more efficient than a localhost TCP socket connection.

Замечание: While this function will accept a colon (:) as a host/port separator, a comma (,) is the preferred method.

Возвращаемые значения

Returns a positive mSQL link identifier on success, or FALSE on error.

Смотрите также

  • msql_connect() - Open mSQL connection
  • msql_close() - Close mSQL connection


Send mSQL query

  • « msql_pconnect
  • msql_regcase »
  • PHP Manual
  • mSQL Функции
  • Send mSQL query

msql_query

(PHP 4, PHP 5, PHP 7)

msql_query — Send mSQL query

Описание

resource msql_query ( string $query [, resource $link_identifier ] )

msql_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

Список параметров

query

The SQL query.

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Returns a positive mSQL query identifier on success, or FALSE on error.

Примеры

Пример #1 msql_query() example

<?php
$link = msql_connect("dbserver")
   or die("unable to connect to msql server: " . msql_error());
msql_select_db("db", $link)
   or die("unable to select database 'db': " . msql_error());

$result = msql_query("SELECT * FROM table WHERE id=1", $link);
if (!$result) {
   die("query failed: " . msql_error());
}

while ($row = msql_fetch_array($result)) {
    echo $row["id"];
}
?>

Смотрите также

  • msql_db_query() - Send mSQL query
  • msql_select_db() - Select mSQL database
  • msql_connect() - Open mSQL connection


Alias of sql_regcase

  • « msql_query
  • msql_result »
  • PHP Manual
  • mSQL Функции
  • Alias of sql_regcase

msql_regcase

(PHP 4, PHP 5, PHP 7)

msql_regcase — Alias of sql_regcase()

Описание

This function is an alias of sql_regcase().


Get result data

  • « msql_regcase
  • msql_select_db »
  • PHP Manual
  • mSQL Функции
  • Get result data

msql_result

(PHP 4, PHP 5, PHP 7)

msql_result — Get result data

Описание

string msql_result ( resource $result , int $row [, mixed $field ] )

msql_result() returns the contents of one cell from a mSQL result set.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they are often much quicker than msql_result().

Recommended high-performance alternatives:
msql_fetch_row(),
msql_fetch_array(), and
msql_fetch_object().

Список параметров

result

Обрабатываемый результат запроса, полученный с помощью функции msql_query().

row

The row offset.

field

Can be the field's offset, or the field's name, or the field's table dot field's name (tablename.fieldname.). If the column name has been aliased ('select foo as bar from ...'), use the alias instead of the column name.

Замечание:

Specifying a numeric field offset is much quicker than specifying a fieldname or tablename.fieldname.

Возвращаемые значения

Returns the contents of the cell at the row and offset in the specified mSQL result set.


Select mSQL database

  • « msql_result
  • msql_tablename »
  • PHP Manual
  • mSQL Функции
  • Select mSQL database

msql_select_db

(PHP 4, PHP 5, PHP 7)

msql_select_db — Select mSQL database

Описание

bool msql_select_db ( string $database_name [, resource $link_identifier ] )

msql_select_db() sets the current active database on the server that's associated with the specified link_identifier.

Subsequent calls to msql_query() will be made on the active database.

Список параметров

database_name

The database name.

link_identifier

Соединение mSQL. Если не указан, используется последнее соединение, открытое msql_connect(). Если такое соединение не было найдено, функция попытается установить новое, как если бы была вызвана функция msql_connect(), и использовать его.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msql_connect() - Open mSQL connection
  • msql_pconnect() - Open persistent mSQL connection
  • msql_query() - Send mSQL query


Alias of msql_result

  • « msql_select_db
  • msql »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_result

msql_tablename

(PHP 4, PHP 5, PHP 7)

msql_tablename — Alias of msql_result()

Описание

This function is an alias of msql_result().


Alias of msql_db_query

  • « msql_tablename
  • Mssql »
  • PHP Manual
  • mSQL Функции
  • Alias of msql_db_query

msql

(PHP 4, PHP 5, PHP 7)

msql — Alias of msql_db_query()

Описание

This function is an alias of msql_db_query().


Microsoft SQL Server

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Mssql Функции
    • mssql_bind — Добавляет параметр хранимой процедуре или удаленной хранимой процедуре
    • mssql_close — Закрывает соединение с MS SQL Server
    • mssql_connect — Открывает соединение с MS SQL server
    • mssql_data_seek — Перемещает внутренний указатель на строку
    • mssql_execute — Запускает хранимую процедуру на сервере MS SQL
    • mssql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
    • mssql_fetch_assoc — Returns an associative array of the current row in the result
    • mssql_fetch_batch — Returns the next batch of records
    • mssql_fetch_field — Возвращает информацию о столбце
    • mssql_fetch_object — Fetch row as object
    • mssql_fetch_row — Get row as enumerated array
    • mssql_field_length — Получить длину поля
    • mssql_field_name — Получить имя поля
    • mssql_field_seek — Перемещение к указанному полю
    • mssql_field_type — Возвращает тип поля
    • mssql_free_result — Освобоздает память, занятую результирующим набором
    • mssql_free_statement — Освобождает память, занятую оператором
    • mssql_get_last_message — Возвращает последнее сообщение от сервера
    • mssql_guid_string — Преобразует 16-байтовый бинарный GUID в строку
    • mssql_init — Инициализирует хранимую процедуру или удаленную хранимую процедуру
    • mssql_min_error_severity — Устанавливает минимальную серьезность ошибок
    • mssql_min_message_severity — Устанавливает минимальную серьезность сообщений
    • mssql_next_result — Move the internal result pointer to the next result
    • mssql_num_fields — Возвращает количество столбцов в результирующем наборе
    • mssql_num_rows — Возвращает количество строк в результате
    • mssql_pconnect — Открывает постоянное соединение с MS SQL
    • mssql_query — Send MS SQL query
    • mssql_result — Get result data
    • mssql_rows_affected — Возвращает количество строк, затронутых последним запросом
    • mssql_select_db — Select MS SQL database


Введение

Внимание

Эта функциональность УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDO_SQLSRV (только Windows)
  • PDO_ODBC
  • SQLSRV (только Windows)
  • Унифицированное ODBC API

Данные функции позволяют вам организовать доступ к базам данных MS SQL Server.

Это расширение более недоступно под Windows для версии PHP 5.3 и выше.

SQLSRV, альтернативный драйвер для MS SQL предоставляемый Microsoft: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.


Требования

Требования для платформ Win32.

Расширение требует установленного в системе "MS SQL Client Tools". "Client Tools" можно установить с "MS SQL Server CD" или скопировав ntwdblib.dll из \winnt\system32 на сервере в \winnt\system32 туда, где установлен PHP. Копирование ntwdblib.dll предоставит доступ через именованные каналы, но и только. Конфигурирование клиента потребует установки всех инструментов.

Это расширение более не доступно для Windows с версии PHP 5.3 и выше.

SqlSrv - альтернативный драйвер MS SQL, доступный на сайте Microsoft: » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx.

Требования для платформ Unix/Linux.

Для использования расширения MSSQL под Unix/Linux, вы сначала должны собрать и установить библиотеку FreeTDS. Исходники и инструкции доступны на домашней странице проекта: » http://www.freetds.org/

Замечание:

На Windows, используется DBLIB от Microsoft. Финкции, возвращающие имена столбцов, базируются на функции dbcolname() в DBLIB. DBLIB разработана для SQL Server 6.x, где максимальная длина идентификатора равна 30. Из-за этого, длина столбца ограничена 30 символами. Для платформ, где используется FreeTDS (Linux), это не является проблемой.

Замечание:

В Windows, если вы используете MSSQL 2005 или выше, вы должны скопировать ntwdblib.dll в директорию, в которую у вас установлен PHP и перезаписать его, если он там уже есть. Это из-за того, что поставляемая версия старая. В качестве альтернативы вы можете использовать » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx, ODBC, PDO_DBLIB или PDO_ODBC.


Установка

Расширение MSSQL включается при добавлении extension=php_mssql.dll в php.ini.

Чтобы оно заработало, вы должны собрать PHP с опцией --with-mssql[=DIR] , где DIR - директория установки FreeTDS. И FreeTDS должен быть собран с опцией --enable-msdblib .

Внимание

Функции MS SQL являются синонимами на функции Sybase, если PHP собран с поддержкой расширения Sybase и без расширения MS SQL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки MS SQL Server
Имя | По умолчанию | Меняемо | Список изменений
mssql.allow_persistent | "1" | PHP_INI_SYSTEM |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM |
mssql.max_links | "-1" | PHP_INI_SYSTEM |
mssql.min_error_severity | "10" | PHP_INI_ALL |
mssql.min_message_severity | "10" | PHP_INI_ALL |
mssql.compatability_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL | Доступно с версии PHP 4.1.0.
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.batchsize | "0" | PHP_INI_ALL | Доступно с версии PHP 4.0.4.
mssql.datetimeconvert | "1" | PHP_INI_ALL | Доступно с версии PHP 4.2.0.
mssql.secure_connection | "0" | PHP_INI_SYSTEM | Доступно с версии PHP 4.3.0.
mssql.max_procs | "-1" | PHP_INI_ALL | Доступно с версии PHP 4.3.0.
mssql.charset | "" | PHP_INI_ALL | Доступно с версии PHP 5.1.2 собранной с использованием FreeTDS 7.0 или выше.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.


Типы ресурсов

mssql link

Соединение, возвращаемое mssql_connect() и mssql_pconnect().

mssql result

Указатель на результат, возвращаемый mssql_query() при запросе типа SELECT.

mssql statement

Указатель на оператор SQL, возвращаемый mssql_init().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MSSQL_ASSOC (integer)
Возвращение ассоциативного массива. Используется в функции mssql_fetch_array() в параметре result_type.
MSSQL_NUM (integer)
Возвращение обычного массива (с числовыми ключами). Используется в функции mssql_fetch_array() в параметре result_type.
MSSQL_BOTH (integer)
Возвращение как ассоциативного, так и обычно массива одновременно. Используется в функции mssql_fetch_array() в параметре result_type и является значением по умолчанию.
SQLTEXT (integer)
Обозначает MSSQL тип 'TEXT'. Используется в функции mssql_bind() в параметре type.
SQLVARCHAR (integer)
Обозначает MSSQL тип 'VARCHAR'. Используется в функции mssql_bind() в параметре type.
SQLCHAR (integer)
Обозначает MSSQL тип 'CHAR'. Используется в функции mssql_bind() в параметре type.
SQLINT1 (integer)
Представляет один байт, с диапазоном значений от -128 до 127.
SQLINT2 (integer)
Представляет два байта, с диапазоном значений от -32768 до 32767.
SQLINT4 (integer)
Представляет четыре байта, с диапазоном значений от -2147483648 до 2147483647.
SQLBIT (integer)
Обозначает MSSQL тип 'BIT'. Используется в функции mssql_bind() в параметре type.
SQLFLT4 (integer)
Представляет четырех-байтовое число с плавающей запятой.
SQLFLT8 (integer)
Представляет восьми-байтовое число с плавающей запятой.


Mssql Функции

Содержание

  • mssql_bind — Добавляет параметр хранимой процедуре или удаленной хранимой процедуре
  • mssql_close — Закрывает соединение с MS SQL Server
  • mssql_connect — Открывает соединение с MS SQL server
  • mssql_data_seek — Перемещает внутренний указатель на строку
  • mssql_execute — Запускает хранимую процедуру на сервере MS SQL
  • mssql_fetch_array — Fetch a result row as an associative array, a numeric array, or both
  • mssql_fetch_assoc — Returns an associative array of the current row in the result
  • mssql_fetch_batch — Returns the next batch of records
  • mssql_fetch_field — Возвращает информацию о столбце
  • mssql_fetch_object — Fetch row as object
  • mssql_fetch_row — Get row as enumerated array
  • mssql_field_length — Получить длину поля
  • mssql_field_name — Получить имя поля
  • mssql_field_seek — Перемещение к указанному полю
  • mssql_field_type — Возвращает тип поля
  • mssql_free_result — Освобоздает память, занятую результирующим набором
  • mssql_free_statement — Освобождает память, занятую оператором
  • mssql_get_last_message — Возвращает последнее сообщение от сервера
  • mssql_guid_string — Преобразует 16-байтовый бинарный GUID в строку
  • mssql_init — Инициализирует хранимую процедуру или удаленную хранимую процедуру
  • mssql_min_error_severity — Устанавливает минимальную серьезность ошибок
  • mssql_min_message_severity — Устанавливает минимальную серьезность сообщений
  • mssql_next_result — Move the internal result pointer to the next result
  • mssql_num_fields — Возвращает количество столбцов в результирующем наборе
  • mssql_num_rows — Возвращает количество строк в результате
  • mssql_pconnect — Открывает постоянное соединение с MS SQL
  • mssql_query — Send MS SQL query
  • mssql_result — Get result data
  • mssql_rows_affected — Возвращает количество строк, затронутых последним запросом
  • mssql_select_db — Select MS SQL database


Добавляет параметр хранимой процедуре или удаленной хранимой процедуре

  • « Mssql Функции
  • mssql_close »
  • PHP Manual
  • Mssql Функции
  • Добавляет параметр хранимой процедуре или удаленной хранимой процедуре

mssql_bind

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_bind — Добавляет параметр хранимой процедуре или удаленной хранимой процедуре

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::bindParam()
  • PDOStatement::bindValue()
  • sqlsrv_prepare()
  • odbc_prepare()

Описание

bool mssql_bind ( resource $stmt , string $param_name , mixed &$var , int $type [, bool $is_output = false [, bool $is_null = false [, int $maxlen = -1 ]]] )

Добавляет параметр хранимой процедуре или удаленной хранимой процедуре.

Список параметров

stmt

Подготовленный оператор, возвращаемый mssql_init().

param_name

Имя параметра в виде строки.

Замечание:

Вы должны использовать символ @, как в синтаксисе T-SQL. Подробное опеисание в разделе, посвященном mssql_execute().

var

Переменная PHP, которую вы связываете с параметром MSSQL. Она передается по ссылке, для извлечения OUTPUT и RETVAL после запуска процедуры.

type

Одна из констант: SQLTEXT, SQLVARCHAR, SQLCHAR, SQLINT1, SQLINT2, SQLINT4, SQLBIT, SQLFLT4, SQLFLT8, SQLFLTN.

is_output

Определяет, что параметр является OUTPUT. Если этот параметр является OUTPUT, но вы его не обозначили таковым, то он будет считаться обычным параметром и ошибка вызвана не будет.

is_null

Определяет, имеет ли параметр значение NULL или нет. Простая передача NULL через var для этого не подходит.

maxlen

Используется с типами CHAR и VARCHAR. Вы должны указывать длину данных, так что если параметр VARCHAR(50), то тип необходимо указать как SQLVARCHAR, а этот параметр как 50.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_bind()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Создаем новую хранимую процедуру
$stmt = mssql_init('NewUserRecord');

// Связываем имена полей
mssql_bind($stmt, '@username',  'Kalle',  SQLVARCHAR,  false,  false,  60);
mssql_bind($stmt, '@name',      'Kalle',  SQLVARCHAR,  false,  false,  60);
mssql_bind($stmt, '@age',       19,       SQLINT1,     false,  false,   3);

// Запускаем
mssql_execute($stmt);

// Освобождаем
mssql_free_statement($stmt);
?>

Смотрите также

  • mssql_execute() - Запускает хранимую процедуру на сервере MS SQL
  • mssql_free_statement() - Освобождает память, занятую оператором
  • mssql_init() - Инициализирует хранимую процедуру или удаленную хранимую процедуру


Закрывает соединение с MS SQL Server

  • « mssql_bind
  • mssql_connect »
  • PHP Manual
  • Mssql Функции
  • Закрывает соединение с MS SQL Server

mssql_close

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_close — Закрывает соединение с MS SQL Server

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • sqlsrv_close()
  • odbc_close()
  • odbc_close_all()

Описание

bool mssql_close ([ resource $link_identifier ] )

Закрывает соединение с MS SQL Server, заданное ассоциированным с ним идентификатором. Если идентификатор не указан, то будет закрыто последнее открытое соединение.

Обратите внимание, что обычно это делать не обязательно, так как непостоянные соединения закрываются автоматически после окончания работы скрипта.

Список параметров

link_identifier

Идентификатор соединения MS SQL, возвращенный функцией mssql_connect().

Эта функция не закрывает постоянные соединения, открытые функцией mssql_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_close()

<?php
// Соединяемся с MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Тут творим, что хотим

// Закрываем соединение с MSSQL
mssql_close($link);
?>

Смотрите также

  • mssql_connect() - Открывает соединение с MS SQL server
  • mssql_pconnect() - Открывает постоянное соединение с MS SQL


Открывает соединение с MS SQL server

  • « mssql_close
  • mssql_data_seek »
  • PHP Manual
  • Mssql Функции
  • Открывает соединение с MS SQL server

mssql_connect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_connect — Открывает соединение с MS SQL server

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDO::__construct()
  • sqlsrv_connect()
  • odbc_connect()

Описание

resource mssql_connect ([ string $servername [, string $username [, string $password [, bool $new_link = false ]]]] )

mssql_connect() устанавливает соединение с MS SQL server.

Подключение к серверу будет закрыто как только будет завершено выполнение скрипта, если его не закрыть раньше с помощью функции mssql_close().

Список параметров

servername

Сервер MS SQL. Может также включать номер порта, например hostname:port (Linux), или hostname,port (Windows).

username

Имя пользователя.

password

Пароль.

new_link

Если mssql_connect() будет вызвана повторно с теми же аргументами, то нового соединения создано не будет, а ,вместо этого, будет возвращен уже существующий идентификатор подключения. Этот параметр изменяет такое поведение, и заставляет mssql_connect() всегда создавать новое соединение, даже если mssql_connect() была вызвана ранее с такими же параметрами.

Возвращаемые значения

Возвращает идентификатор соединения с MS SQL в случае успеха, или FALSE при ошибке.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр new_link

Примеры

Пример #1 Пример использования mssql_connect()

<?php
// Сервер в формате: <computer>\<instance name> или
// <server>,<port> при использовании нестандартного порта
$server = 'KALLESPC\SQLEXPRESS';

// Подключение к MSSQL
$link = mssql_connect($server, 'sa', 'phpfi');

if (!$link) {
    die('Something went wrong while connecting to MSSQL');
}
?>

Смотрите также

  • mssql_close() - Закрывает соединение с MS SQL Server
  • mssql_pconnect() - Открывает постоянное соединение с MS SQL


Перемещает внутренний указатель на строку

  • « mssql_connect
  • mssql_execute »
  • PHP Manual
  • Mssql Функции
  • Перемещает внутренний указатель на строку

mssql_data_seek

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_data_seek — Перемещает внутренний указатель на строку

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • Используйте OFFSET с PDO_SQLSRV, PDO_ODBC, SQLSRV, or the унифицированным драйвером ODBC.

Описание

bool mssql_data_seek ( resource $result_identifier , int $row_number )

mssql_data_seek() перемещает указатель на строку в заданном результирующем наборе MS SQL на указанную позицию. Первая строка имеет индекс 0. Следующий вызов mssql_fetch_row() вернет строку, на которую указывает указатель.

Список параметров

result_identifier

Результирующий набор.

row_number

Выбранная позиция, на которую надо переместить указатель.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_data_seek()

<?php
// Соединяемся с MSSQL и выбираем базу
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Делаем выборку
$result = mssql_query('SELECT [name], [age] FROM [persons] WHERE [age] >= 13');

if (!$result) {
    die('Query failed.');
}

// Выбираем каждую четвертую строку
for ($i = mssql_num_rows($result) - 1; $i % 4; $i++) {
    if (!mssql_data_seek($result, $i)) {
        continue;
    }

    // Забираем строку ...
}

// Очищаем результат
mssql_free_result($result);
?>


Запускает хранимую процедуру на сервере MS SQL

  • « mssql_data_seek
  • mssql_fetch_array »
  • PHP Manual
  • Mssql Функции
  • Запускает хранимую процедуру на сервере MS SQL

mssql_execute

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_execute — Запускает хранимую процедуру на сервере MS SQL

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • Используйте запрос EXEC с PDO_SQLSRV, PDO_ODBC, SQLSRV, или унифицированным драйвером ODBC.

Описание

mixed mssql_execute ( resource $stmt [, bool $skip_results = false ] )

Запускает хранимую процедуру на сервере MS SQL

Список параметров

stmt

Подготовленный оператор, возвращаемый mssql_init().

skip_results

Возвращать результат или нет.

Примеры

Пример #1 Пример mssql_execute()

<?php
// Создание нового оператора
$stmt = mssql_init('NewBlogEntry');

// Несколько строк с данными
$title = 'Тестирование системы блогов';
$content = 'Если вы читаете это, значит система совместима с MSSQL';

// Bind values
mssql_bind($stmt, '@author',    'Felipe Pena',  SQLVARCHAR,     false,  false,   60);
mssql_bind($stmt, '@date',      '08/10/2008',   SQLVARCHAR,     false,  false,   20);
mssql_bind($stmt, '@title',     $title,         SQLVARCHAR,     false,  false,   60);
mssql_bind($stmt, '@content',   $content,       SQLTEXT);

// Запускаем процедуру
mssql_execute($stmt);

// Очищаем оператор
mssql_free_statement($stmt);
?>

Примечания

Замечание:

Если хранимая процедура возвращает параметры, или некоторое значение, они будут доступны сразу после запуска mssql_execute(), только если процедура не возвращает несколько результирующих наборов. В таком случае необходимо использовать mssql_next_result() для перебора результирующих наборов. Как только будет обработан последний результирующий набор, станут доступны возвращаемые параметры и значения.

Смотрите также

  • mssql_bind() - Добавляет параметр хранимой процедуре или удаленной хранимой процедуре
  • mssql_free_statement() - Освобождает память, занятую оператором
  • mssql_init() - Инициализирует хранимую процедуру или удаленную хранимую процедуру


Fetch a result row as an associative array, a numeric array, or both

  • « mssql_execute
  • mssql_fetch_assoc »
  • PHP Manual
  • Mssql Функции
  • Fetch a result row as an associative array, a numeric array, or both

mssql_fetch_array

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_array — Fetch a result row as an associative array, a numeric array, or both

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::fetch()
  • sqlsrv_fetch_array()
  • odbc_fetch_array()

Описание

array mssql_fetch_array ( resource $result [, int $result_type = MSSQL_BOTH ] )

mssql_fetch_array() is an extended version of mssql_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using mssql_fetch_array() is NOT significantly slower than using mssql_fetch_row(), while it provides a significant added value.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

result_type

The type of array that is to be fetched. It's a constant and can take the following values: MSSQL_ASSOC, MSSQL_NUM, and MSSQL_BOTH.

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 mssql_fetch_array() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Check if there were any records
if (!mssql_num_rows($query)) {
    echo 'No records found';
} else {
    // The following is equal to the code below:
    //
    // while ($row = mssql_fetch_row($query)) {

    while ($row = mssql_fetch_array($query, MSSQL_NUM)) {
        // ...
    }
}

// Free the query result
mssql_free_result($query);
?>

Примечания

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mssql_fetch_row() - Get row as enumerated array


Returns an associative array of the current row in the result

  • « mssql_fetch_array
  • mssql_fetch_batch »
  • PHP Manual
  • Mssql Функции
  • Returns an associative array of the current row in the result

mssql_fetch_assoc

(PHP 4 >= 4.2.0, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_assoc — Returns an associative array of the current row in the result

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::fetch()
  • sqlsrv_fetch_array()
  • odbc_fetch_array()

Описание

array mssql_fetch_assoc ( resource $result_id )

Returns an associative array that corresponds to the fetched row and moves the internal data pointer ahead. mssql_fetch_assoc() is equivalent to calling mssql_fetch_array() with MSSQL_ASSOC for the optional second parameter.

Список параметров

result_id

The result resource that is being evaluated. This result comes from a call to mssql_query().

Возвращаемые значения

Returns an associative array that corresponds to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 mssql_fetch_assoc() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Check if there were any records
if (!mssql_num_rows($query)) {
    echo 'No records found';
}
else
{
    // Print a nice list of users in the format of:
    // * name (username)

    echo '<ul>';

    while ($row = mssql_fetch_assoc($query)) {
        echo '<li>' . $row['name'] . ' (' . $row['username'] . ')</li>';
    }

    echo '</ul>';
}

// Free the query result
mssql_free_result($query);
?>


Returns the next batch of records

  • « mssql_fetch_assoc
  • mssql_fetch_field »
  • PHP Manual
  • Mssql Функции
  • Returns the next batch of records

mssql_fetch_batch

(PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_batch — Returns the next batch of records

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

int mssql_fetch_batch ( resource $result )

Returns the next batch of records.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

Возвращаемые значения

Returns the number of rows in the returned batch.

Примеры

Пример #1 mssql_fetch_batch() example

<?php
// Connect to MSSQL and select the database
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Send a query
$result = mssql_query('SELECT * FROM [php].[dbo].[people]', $link, 100);
$records = 10;

while ($records >= 0) {
    while ($row = mssql_fetch_assoc($result)) {
        // Do stuff ...
    }

    --$records;
}

if ($batchsize = mssql_fetch_batch($result)) {
    // $batchsize is the number of records left
    // in the result, but not shown above
}
?>


Возвращает информацию о столбце

  • « mssql_fetch_batch
  • mssql_fetch_object »
  • PHP Manual
  • Mssql Функции
  • Возвращает информацию о столбце

mssql_fetch_field

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_field — Возвращает информацию о столбце

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • Различные функции odbc_field_* в унифицированном драйвере ODBC.

Описание

object mssql_fetch_field ( resource $result [, int $field_offset = -1 ] )

mssql_fetch_field() используется для получения информации о столбце из результирующего набора.

Список параметров

result

Результирующий набор, полученный как результат вызова mssql_query().

field_offset

Числовой индекс столбца. Если не задано, то будет использован следующий еще не извлеченный столбец. field_offset начинаются с 0.

Возвращаемые значения

ВОзвращает обхект, содержащий информацию о столбце.

Объект содержит следующие свойства:

  • name - имя столбца. Если столбец является результатом функции, то имя задастся автоматически следующим образом - "computed#N", где #N - серийный номер.
  • column_source - имя таблицы, из которой выбран этот столбец.
  • max_length - максимальная длина поля.
  • numeric - 1, если поле числовое.
  • type - тип поля.

Примеры

Пример #1 Пример mssql_fetch_field()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Делаем выборку
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

// Рисуем таблицу
echo '<h3>Структура таблицы \'persons\'</h3>';
echo '<table border="1">';

// Заголовок таблицы
echo '<thead>';
echo '<tr>';
echo '<td>Имя столбца</td>';
echo '<td>Тип</td>';
echo '<td>Максимальная длина</td>';
echo '</tr>';
echo '</thead>';

// Выводим поля
echo '<tbody>';

for ($i = 0; $i < mssql_num_fields($query); ++$i) {
    // Fetch the field information
    $field = mssql_fetch_field($query, $i);

    // Print the row
    echo '<tr>';
    echo '<td>' . $field->name . '</td>';
    echo '<td>' . strtoupper($field->type) . '</td>';
    echo '<td>' . $field->max_length . '</td>';
    echo '</tr>';
}

echo '</tbody>';
echo '</table>';

// Освобождаем результирующий набор
mssql_free_result($query);
?>

Смотрите также

  • mssql_field_seek() - Перемещение к указанному полю


Fetch row as object

  • « mssql_fetch_field
  • mssql_fetch_row »
  • PHP Manual
  • Mssql Функции
  • Fetch row as object

mssql_fetch_object

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_object — Fetch row as object

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::fetchObject()
  • sqlsrv_fetch_object()
  • odbc_fetch_object()

Описание

object mssql_fetch_object ( resource $result )

mssql_fetch_object() is similar to mssql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

Speed-wise, the function is identical to mssql_fetch_array(), and almost as quick as mssql_fetch_row() (the difference is insignificant).

Список параметров

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

Возвращаемые значения

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 mssql_fetch_object() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// Check if there were any records
if (!mssql_num_rows($query)) {
    echo 'No records found';
} else {
    // Print a nice list of users in the format of:
    // * name (username)

    echo '<ul>';

    while ($row = mssql_fetch_object($query)) {
        echo '<li>' . $row->name . ' (' . $row->username . ')</li>';
    }

    echo '</ul>';
}

// Free the query result
mssql_free_result($query);
?>

Примечания

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mssql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mssql_fetch_row() - Get row as enumerated array


Get row as enumerated array

  • « mssql_fetch_object
  • mssql_field_length »
  • PHP Manual
  • Mssql Функции
  • Get row as enumerated array

mssql_fetch_row

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_row — Get row as enumerated array

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::fetch()
  • sqlsrv_fetch_array()
  • odbc_fetch_row()

Описание

array mssql_fetch_row ( resource $result )

mssql_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.

Subsequent call to mssql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 mssql_fetch_row() example

<?php
// Connect to MSSQL and select the database
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Query to execute
$query = mssql_query('SELECT [id], [quote] FROM [quotes] WHERE [id] = \'42\'', $link);

// Did the query fail?
if (!$query) {
    die('MSSQL error: ' . mssql_get_last_message());
}

// Fetch the row
$row = mssql_fetch_row($query);

// Print the 'quote'
echo 'Quote #' . $row[0] . ': "' . $row[1] . '"';
?>

Результатом выполнения данного примера будет что-то подобное:

Quote #42: "The answer to everything..."

Примечания

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mssql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mssql_fetch_object() - Fetch row as object
  • mssql_data_seek() - Перемещает внутренний указатель на строку
  • mssql_result() - Get result data


Получить длину поля

  • « mssql_fetch_row
  • mssql_field_name »
  • PHP Manual
  • Mssql Функции
  • Получить длину поля

mssql_field_length

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_length — Получить длину поля

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • odbc_field_len()

Описание

int mssql_field_length ( resource $result [, int $offset = -1 ] )

Возвращает длину поля с индексом offset в result.

Список параметров

result

Результирующий набор, полученный после запуска mssql_query().

offset

Индекс поля. Первое поле имеет индекс 0. Если пропущено, то используется текущее поле.

Возвращаемые значения

Возвращает длину поля по указанному индексу, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_field_length()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Делаем выборку
$query = mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');

// Печатаем длину поля
echo 'Поле \'age\' имеет размер ' . mssql_field_length($query, 1);

// Очищаем результат
mssql_free_result($query);
?>

Результатом выполнения данного примера будет что-то подобное:

Поле 'age' имеет размер 4

Примечания

Замечание: Замечание для пользователей Windows

В связи с ограничениями, лежащими в основе API используемого PHP (MS DBLib C API), длина поля VARCHAR ограничена 255. Если вам нужно манипулировать более длинными строками, используйте поле TEXT.

Смотрите также

  • mssql_field_name() - Получить имя поля
  • mssql_field_type() - Возвращает тип поля


Получить имя поля

  • « mssql_field_length
  • mssql_field_seek »
  • PHP Manual
  • Mssql Функции
  • Получить имя поля

mssql_field_name

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_name — Получить имя поля

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • odbc_field_name()

Описание

string mssql_field_name ( resource $result [, int $offset = -1 ] )

Возвращает имя поля по индексу offset в result.

Список параметров

result

Результирующий набор, полученный из mssql_query().

offset

Индекс поля. Первое поле имеет индекс 0. Если опущено, то используется текущее поле.

Возвращаемые значения

Возвращает имя поля по указанному индексу, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_field_name()

<?php
// Соединяемся с MSSQL и выбираем базу
$query = mssql_query('SELECT [username], [name], [email] FROM [php].[dbo].[userlist]');

echo 'Результирующий набор содержит поля:', PHP_EOL;

// Выводим все имена полей
for ($i = 0; $i < mssql_num_fields($query); ++$i) {
    echo ' - ' . mssql_field_name($query, $i), PHP_EOL;
}

// Освобождаем результат
mssql_free_result($query);
?>

Результатом выполнения данного примера будет что-то подобное:

Результирующий набор содержит поля:
 - username
 - name
 - email

Смотрите также

  • mssql_field_length() - Получить длину поля
  • mssql_field_type() - Возвращает тип поля


Перемещение к указанному полю

  • « mssql_field_name
  • mssql_field_type »
  • PHP Manual
  • Mssql Функции
  • Перемещение к указанному полю

mssql_field_seek

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_seek — Перемещение к указанному полю

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

bool mssql_field_seek ( resource $result , int $field_offset )

Перемещение к указанному полю. Если в следующем вызове mssql_fetch_field() индекс поля указан не будет, то вернется это поле.

Список параметров

result

Результирующий набор, полученный из mssql_query().

field_offset

Индекс поля. Первое поле имеет индекс 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Использование mssql_field_seek() для mssql_fetch_field()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Делаем выборку
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

// Создаем структуру таблицы
echo '<h3>Структура \'persons\'</h3>';
echo '<table border="1">';

// Заголовок таблицы
echo '<thead>';
echo '<tr>';
echo '<td>Имя поля</td>';
echo '<td>Тип данных</td>';
echo '<td>Максимальная длина</td>';
echo '</tr>';
echo '</thead>';

// Выводим все поля
echo '<tbody>';

for ($i = 0; $i < mssql_num_fields($query); ++$i) {
    // Забираем информацию по полю, помните, что
    // field_offset не должен быть задан.
    $field = mssql_fetch_field($query);

    // Печатаем строку
    echo '<tr>';
    echo '<td>' . $field->name . '</td>';
    echo '<td>' . strtoupper($field->type) . '</td>';
    echo '<td>' . $field->max_length . '</td>';
    echo '</tr>';

    // Перемещаем внутренний указатель
    // к следующей строке
    mssql_field_seek($query, $i + 1);
}

echo '</tbody>';
echo '</table>';

// Освобождаем результат
mssql_free_result($query);
?>

Смотрите также

  • mssql_fetch_field() - Возвращает информацию о столбце


Возвращает тип поля

  • « mssql_field_seek
  • mssql_free_result »
  • PHP Manual
  • Mssql Функции
  • Возвращает тип поля

mssql_field_type

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_type — Возвращает тип поля

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::getColumnMeta()
  • sqlsrv_field_metadata()
  • odbc_field_type()

Описание

string mssql_field_type ( resource $result [, int $offset = -1 ] )

Возвращает тип поля по индексу offset в result.

Список параметров

result

Результирующий набор, полученный из mssql_query().

offset

Индекс поля. Первое поле имеет индекс 0. Если опущено, то используется текущее поле.

Возвращаемые значения

Возвращает тип поля по указанному индексу, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_field_type()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Делаем выборку
$query = mssql_query('SELECT [name] FROM [php].[dbo].[persons]');

// Печатаем длину и тип поля
echo '\'' . mssql_field_name($query, 0) . '\' типа ' .
     strtoupper(mssql_field_type($query, 0)) .
     '(' . mssql_field_length($query, 0) . ')';

// Free the query result
mssql_free_result($query);
?>

Результатом выполнения данного примера будет что-то подобное:

'name' типа CHAR(50)

Смотрите также

  • mssql_field_length() - Получить длину поля
  • mssql_field_name() - Получить имя поля


Освобоздает память, занятую результирующим набором

  • « mssql_field_type
  • mssql_free_statement »
  • PHP Manual
  • Mssql Функции
  • Освобоздает память, занятую результирующим набором

mssql_free_result

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_free_result — Освобоздает память, занятую результирующим набором

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • odbc_free_result()

Описание

bool mssql_free_result ( resource $result )

Запускать mssql_free_result() имеет смысл только в том случае, если вы сильно обеспокоены потреблением памяти во время работы вашего скрипта. Вся память, занятая результатами запросов, автоматически освобождается после окончания работы скрипта. Используя функцию mssql_free_result(), вы освобождаете память, занятую результатом запроса, сразу же.

Список параметров

result

Результирующий набор, полученный в результате выполнения mssql_query(), который надо удалить.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_free_result()

<?php
// Делаем выборку
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]', $link);

// Работаем с полученными данными

// Как только данные больше не нужны, очищаем их
mssql_free_result($query);
?>

Смотрите также

  • mssql_free_statement() - Освобождает память, занятую оператором


Освобождает память, занятую оператором

  • « mssql_free_result
  • mssql_get_last_message »
  • PHP Manual
  • Mssql Функции
  • Освобождает память, занятую оператором

mssql_free_statement

(PHP 4 >= 4.3.2, PHP 5, PECL odbtp >= 1.1.1)

mssql_free_statement — Освобождает память, занятую оператором

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • sqlsrv_free_stmt()

Описание

bool mssql_free_statement ( resource $stmt )

Запускать mssql_free_statement() имеет смысл только в том случае, если вы сильно обеспокоены потреблением памяти во время работы вашего скрипта. Вся память, занятая оператором, автоматически освобождается после окончания работы скрипта. Используя функцию mssql_free_statement(), вы освобождаете память, занятую оператором, сразу же.

Список параметров

stmt

Оператор, полученный из mssql_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример mssql_free_statement()

<?php
// Создаем оператор
$stmt = mssql_init('test');

// тут связываем значения и запускаем

// Как закончили - освобождаем занятую память
mssql_free_statement($stmt);
?>

Смотрите также

  • mssql_bind() - Добавляет параметр хранимой процедуре или удаленной хранимой процедуре
  • mssql_execute() - Запускает хранимую процедуру на сервере MS SQL
  • mssql_init() - Инициализирует хранимую процедуру или удаленную хранимую процедуру
  • mssql_free_result() - Освобоздает память, занятую результирующим набором


Возвращает последнее сообщение от сервера

  • « mssql_free_statement
  • mssql_guid_string »
  • PHP Manual
  • Mssql Функции
  • Возвращает последнее сообщение от сервера

mssql_get_last_message

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_get_last_message — Возвращает последнее сообщение от сервера

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::errorInfo()
  • sqlsrv_errors()
  • odbc_errormsg()

Описание

string mssql_get_last_message ( void )

Возвращает последнее сообщение от сервера MS-SQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает последнее сообщение об ошибке, или пустую строку, если ошибок небыло.

Примеры

Пример #1 Пример mssql_get_last_message()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Запускаем запрос с ошибкой
$query = @mssql_query('SELECT * FROM [php].[dbo].[not-found]');

if (!$query) {
    // Если выполнение запроса завершилось с ошибкой,
    // печатаем человекочитаемую ошибку mssql_get_last_message()
    die('MSSQL error: ' . mssql_get_last_message());
}
?>

Результатом выполнения данного примера будет что-то подобное:

MSSQL error: Invalid object name 'php.dbo.not-found'.

Смотрите также

  • mssql_min_error_severity() - Устанавливает минимальную серьезность ошибок
  • mssql_min_message_severity() - Устанавливает минимальную серьезность сообщений


Преобразует 16-байтовый бинарный GUID в строку

  • « mssql_get_last_message
  • mssql_init »
  • PHP Manual
  • Mssql Функции
  • Преобразует 16-байтовый бинарный GUID в строку

mssql_guid_string

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_guid_string — Преобразует 16-байтовый бинарный GUID в строку

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

string mssql_guid_string ( string $binary [, bool $short_format = false ] )

Преобразует 16-байтовый бинарный GUID в строку.

Список параметров

binary

16-байтовый бинарный GUID.

short_format

Для использования короткого формата.

Возвращаемые значения

В случае успеха возвращает преобразованную строку.

Примеры

Пример #1 Пример mssql_guid_string()

<?php
$binary = '19555081977808608437941339997619274330352755554827939936';

var_dump(mssql_guid_string($binary));
var_dump(mssql_guid_string($binary, true));
?>

Результат выполнения данного примера:

string(36) "35353931-3035-3138-3937-373830383630"
string(32) "31393535353038313937373830383630"


Инициализирует хранимую процедуру или удаленную хранимую процедуру

  • « mssql_guid_string
  • mssql_min_error_severity »
  • PHP Manual
  • Mssql Функции
  • Инициализирует хранимую процедуру или удаленную хранимую процедуру

mssql_init

(PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)

mssql_init — Инициализирует хранимую процедуру или удаленную хранимую процедуру

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • Используйте запрос EXEC с PDO_SQLSRV, PDO_ODBC, SQLSRV, или унифицированным драйвером ODBC.

Описание

resource mssql_init ( string $sp_name [, resource $link_identifier ] )

Инициализирует хранимую процедуру или удаленную хранимую процедуру.

Список параметров

sp_name

Имя хранимой процедуры, такое как ownew.sp_name или otherdb.owner.sp_name.

link_identifier

Идентификатор соединения MS SQL, возвращенный mssql_connect().

Возвращаемые значения

Возвращает идентификатор ресурса "оператора", используемого в последующих вызовах mssql_bind() и mssql_execute(), или FALSE в случае ошибки.

Примеры

Пример #1 mssql_init() example

<?php
// Соединение с MSSQL и выбор базы
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Создание нового оператора
$stmt = mssql_init('StatementTest', $link);

// Тут связываем значения

// Как только значения связаны, вызываем наш оператор
// используя mssql_execute:
mssql_execute($stmt);

// А теперь освобождаем его:
mssql_free_statement($stmt);
?>

Смотрите также

  • mssql_bind() - Добавляет параметр хранимой процедуре или удаленной хранимой процедуре
  • mssql_execute() - Запускает хранимую процедуру на сервере MS SQL
  • mssql_free_statement() - Освобождает память, занятую оператором


Устанавливает минимальную серьезность ошибок

  • « mssql_init
  • mssql_min_message_severity »
  • PHP Manual
  • Mssql Функции
  • Устанавливает минимальную серьезность ошибок

mssql_min_error_severity

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_min_error_severity — Устанавливает минимальную серьезность ошибок

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

void mssql_min_error_severity ( int $severity )

Устанавливает минимальную серьезность ошибок.

Список параметров

severity

новое значение минимальной серьезности ошибок.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример mssql_min_error_severity()

<?php
// Соединяемся с MSSQL и выбираем базу
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Устанавливаем серьезность так, что бы синтаксические
// ошибки  не включались. Для этого задаем ее больше или равной 1
mssql_min_error_severity(1);

// Посылаем запрос с синтаксической ошибкой.
// В этом случае мы использовали синтаксис MySQl
// для обертки имен полей (`) вместо синтаксиса MSSQL - квадратные скобки.
$query = mssql_query('SELECT `syntax`, `error` FROM `MSSQL`');

if (!$query) {
    // Обработчик ошибок ...
}
?>


Устанавливает минимальную серьезность сообщений

  • « mssql_min_error_severity
  • mssql_next_result »
  • PHP Manual
  • Mssql Функции
  • Устанавливает минимальную серьезность сообщений

mssql_min_message_severity

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_min_message_severity — Устанавливает минимальную серьезность сообщений

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

void mssql_min_message_severity ( int $severity )

Устанавливает минимальную серьезность сообщений.

Список параметров

severity

Новая минимальная серьезность сообщений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример mssql_min_message_severity()

<?php
// Соединяемся с MSSQL
mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Устанавливаем минимальную серьезность сообщений равной 17,
// это не позволит выводить сообщения API, о том, что мы выбрали
// несуществующую базу данных
mssql_min_message_severity(17);

// Выбираем несуществующую базу данных
mssql_select_db('THIS_DATABASE_DOES_NOT_EXISTS');
?>

Результат выполнения данного примера:

mssql_select_db(): Unable to select database:  THIS_DATABASE_DOES_NOT_EXISTS


Move the internal result pointer to the next result

  • « mssql_min_message_severity
  • mssql_num_fields »
  • PHP Manual
  • Mssql Функции
  • Move the internal result pointer to the next result

mssql_next_result

(PHP 4 >= 4.0.5, PHP 5, PECL odbtp >= 1.1.1)

mssql_next_result — Move the internal result pointer to the next result

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::nextRowset()
  • sqlsrv_next_result()
  • odbc_next_result()

Описание

bool mssql_next_result ( resource $result_id )

When sending more than one SQL statement to the server or executing a stored procedure with multiple results, it will cause the server to return multiple result sets. This function will test for additional results available form the server. If an additional result set exists it will free the existing result set and prepare to fetch the rows from the new result set.

Список параметров

result_id

The result resource that is being evaluated. This result comes from a call to mssql_query().

Возвращаемые значения

Returns TRUE if an additional result set was available or FALSE otherwise.

Примеры

Пример #1 mssql_next_result() example

<?php
// Connect to MSSQL and select the database
$link = mssql_connect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Send a query to MSSQL
$sql = 'SELECT [name], [age] FROM [php].[dbo].[persons]';
$query = mssql_query($sql, $link);

// Iterate through returned records
do {
    while ($row = mssql_fetch_row($query)) {
        // Handle record ...
    }
} while (mssql_next_result($query));

// Clean up
mssql_free_result($query);
mssql_close($link);
?>


Возвращает количество столбцов в результирующем наборе

  • « mssql_next_result
  • mssql_num_rows »
  • PHP Manual
  • Mssql Функции
  • Возвращает количество столбцов в результирующем наборе

mssql_num_fields

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_num_fields — Возвращает количество столбцов в результирующем наборе

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::columnCount()
  • sqlsrv_num_fields()
  • odbc_num_fields()

Описание

int mssql_num_fields ( resource $result )

mssql_num_fields() возвращает количество столбцов в результирующем наборе.

Список параметров

result

Результирующий набор, полученный как результат вызова mssql_query().

Возвращаемые значения

Возвращает целое число, равное количеству столбцов в результирующем наборе.

Примеры

Пример #1 Пример mssql_num_fields()

<?php
// Соединяемся с MSSQL и выбираем базу
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link);

// Делаем запрос
$data = mssql_query('SELECT [name], [age] FROM [php].[dbo].[persons]');

// Создаем таблицу
echo '<table border="1">';

$header = false;

// Проходим по результирующему набору
while ($row = mssql_fetch_array($data)) {
    // Строим заголовок таблицы
    if (!$header) {
        echo '<thead>';
        echo '<tr>';

        for ($i = 1; ($i + 1) <= mssql_num_fields($data); ++$i) {
            echo '<td>' . ucfirst($row[$i]) . '</td>';
        }

        echo '</tr>';
        echo '</thead>';
        echo '<tbody>';

        $header = true;
    }

    // Строим строку
    echo '<tr>';

    foreach($row as $value) {
        echo '<td>' . $value . '</td>';
    }

    echo '</tr>';
}

// Закрываем таблицу
echo '</tbody>';
echo '</table>';

// CОчищаем результат
mssql_free_result($data);
mssql_close($link);
?>

Смотрите также

  • mssql_query() - Send MS SQL query
  • mssql_fetch_field() - Возвращает информацию о столбце
  • mssql_num_rows() - Возвращает количество строк в результате


Возвращает количество строк в результате

  • « mssql_num_fields
  • mssql_pconnect »
  • PHP Manual
  • Mssql Функции
  • Возвращает количество строк в результате

mssql_num_rows

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_num_rows — Возвращает количество строк в результате

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::rowCount()
  • sqlsrv_num_rows()
  • odbc_num_rows()

Описание

int mssql_num_rows ( resource $result )

mssql_num_rows() возвращает количество строк в результирующем наборе.

Список параметров

result

Результирующий набор, полученный как результат вызова mssql_query().

Возвращаемые значения

Возвращает целое число, равное количеству строк в результирующем наборе.

Примеры

Пример #1 Пример mssql_num_rows()

<?php
// Соединяемся с MSSQL и выбираем базу
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php');

// Выбираем все строки из таблицы
$query = mssql_query('SELECT * FROM [php].[dbo].[persons]');

echo 'Всего записей в таблице: ' . mssql_num_rows($query);

// Очищаем результат
mssql_free_result($query);
?>

Смотрите также

  • mssql_query() - Send MS SQL query
  • mssql_fetch_row() - Get row as enumerated array


Открывает постоянное соединение с MS SQL

  • « mssql_num_rows
  • mssql_query »
  • PHP Manual
  • Mssql Функции
  • Открывает постоянное соединение с MS SQL

mssql_pconnect

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_pconnect — Открывает постоянное соединение с MS SQL

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDO::__construct()
  • sqlsrv_connect()
  • odbc_pconnect()

Описание

resource mssql_pconnect ([ string $servername [, string $username [, string $password [, bool $new_link = false ]]]] )

mssql_pconnect() работает практически также как и mssql_connect(), но с двумя большими отличиями.

Первое: когда происходит соединение, функция сначала пытается найти уже открытое соединение к тому же хосту, с теми же логином и паролем. Если такое соединение будет найдено, то вместо создания нового соединения, будет возвращен идентификатор найденного.

Второе: соединение с сервером MS SQL не будет закрыто после того, как скрипт завершит свою работу. Вместо этого, ссылка останется открытой для последующего использования. (mssql_close() не закрывает соединения, открытые mssql_pconnect()).

Такой тип соединения называется 'постоянным' (persistent).

Список параметров

servername

Сервер MS SQL. Также может содержать порт, т.е. hostname:port.

username

Имя пользователя.

password

Пароль.

new_link

Если функция mssql_pconnect() будет вызвана повторно с теми же самыми аргументами, то будет возвращен идентификатор уже существующего соединения, а не создание нового. Этот параметр меняет заданное поведение, вынуждая mssql_pconnect() всегда создавать новое соединение, даже если mssql_pconnect() была вызвана ранее с теми же аргументами.

Возвращаемые значения

Возвращает корректный идентификатор постоянного соединения с MS SQL, или FALSE в случае ошибки.

Примеры

Пример #1 Использование mssql_pconnect() с параметром new_link

<?php
// Соединяемся с MSSQL и выбираем базу
$link1 = mssql_pconnect('MANGO\SQLEXPRESS', 'sa', 'phpfi');
mssql_select_db('php', $link1);

// Создаем второе соединение
$link2 = mssql_pconnect('MANGO\SQLEXPRESS', 'sa', 'phpfi', true);
mssql_select_db('random', $link2);
?>


Send MS SQL query

  • « mssql_pconnect
  • mssql_result »
  • PHP Manual
  • Mssql Функции
  • Send MS SQL query

mssql_query

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_query — Send MS SQL query

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDO::query()
  • sqlsrv_query()
  • odbc_exec()

Описание

mixed mssql_query ( string $query [, resource $link_identifier [, int $batch_size = 0 ]] )

mssql_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

Список параметров

query

An SQL query.

link_identifier

A MS SQL link identifier, returned by mssql_connect() or mssql_pconnect().

If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if mssql_connect() was called, and use it.

batch_size

The number of records to batch in the buffer.

Возвращаемые значения

Returns a MS SQL result resource on success, TRUE if no rows were returned, or FALSE on error.

Примеры

Пример #1 mssql_query() example

<?php
// Connect to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

if (!$link || !mssql_select_db('php', $link)) {
    die('Unable to connect or select database!');
}

// Do a simple query, select the version of
// MSSQL and print it.
$version = mssql_query('SELECT @@VERSION');
$row = mssql_fetch_array($version);

echo $row[0];

// Clean up
mssql_free_result($version);
?>

Примечания

Замечание:

If the query returns multiple results then it is necessary to fetch all results by mssql_next_result() or free the results by mssql_free_result() before executing next query.

Смотрите также

  • mssql_select_db() - Select MS SQL database
  • mssql_connect() - Открывает соединение с MS SQL server


Get result data

  • « mssql_query
  • mssql_rows_affected »
  • PHP Manual
  • Mssql Функции
  • Get result data

mssql_result

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_result — Get result data

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • odbc_result()

Описание

string mssql_result ( resource $result , int $row , mixed $field )

mssql_result() returns the contents of one cell from a MS SQL result set.

Список параметров

result

The result resource that is being evaluated. This result comes from a call to mssql_query().

row

The row number.

field

Can be the field's offset, the field's name or the field's table dot field's name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), it uses the alias instead of the column name.

Замечание:

Specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Возвращаемые значения

Returns the contents of the specified cell.

Примеры

Пример #1 mssql_result() example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username] FROM [php].[dbo].[userlist]');

// Check if there were any records
if (!mssql_num_rows($query)) {
    echo 'No records found';
} else {
    for ($i = 0; $i < mssql_num_rows($query); ++$i) {
        echo mssql_result($query, $i, 'username'), PHP_EOL;
    }
}

// Free the query result
mssql_free_result($query);
?>

Результатом выполнения данного примера будет что-то подобное:

Kalle
Felipe
Emil
Ross

Пример #2 Faster alternative to above example

<?php
// Send a select query to MSSQL
$query = mssql_query('SELECT [username] FROM [php].[dbo].[userlist]');

// Check if there were any records
if (!mssql_num_rows($query)) {
    echo 'No records found';
} else {
    while ($row = mssql_fetch_array($query)) {
        echo $row['username'], PHP_EOL;
    }
}

// Free the query result
mssql_free_result($query);
?>

Примечания

Замечание:

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than mssql_result().

Смотрите также

Recommended high-performance alternatives:

  • mssql_fetch_row() - Get row as enumerated array
  • mssql_fetch_array() - Fetch a result row as an associative array, a numeric array, or both
  • mssql_fetch_assoc() - Returns an associative array of the current row in the result
  • mssql_fetch_object() - Fetch row as object


Возвращает количество строк, затронутых последним запросом

  • « mssql_result
  • mssql_select_db »
  • PHP Manual
  • Mssql Функции
  • Возвращает количество строк, затронутых последним запросом

mssql_rows_affected

(PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)

mssql_rows_affected — Возвращает количество строк, затронутых последним запросом

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDOStatement::rowCount()
  • sqlsrv_rows_affected()

Описание

int mssql_rows_affected ( resource $link_identifier )

Возвращает количество строк, затронутых последним запросом, изменяющим данные (например INSERT, UPDATE, DELETE, но не SELECT).

Список параметров

link_identifier

Идентификатор соединения MS SQL, возвращаемый mssql_connect() или mssql_pconnect().

Возвращаемые значения

Возвращает количество строк, затронутых последним запросом.

Примеры

Пример #1 Пример mssql_rows_affected()

<?php
// Удаление всех строк в таблице
mssql_query('TRUNCATE TABLE [php].[dbo].[persons]');

echo 'Deleted ' . mssql_rows_affected($link) . ' row(s)';
?>


Select MS SQL database

  • « mssql_rows_affected
  • MySQL »
  • PHP Manual
  • Mssql Функции
  • Select MS SQL database

mssql_select_db

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_select_db — Select MS SQL database

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Есть следующие альтернативы:

  • PDO_SQLSRV DSN
  • PDO_ODBC DSN
  • sqlsrv_connect()
  • odbc_connect()

Описание

bool mssql_select_db ( string $database_name [, resource $link_identifier ] )

mssql_select_db() sets the current active database on the server that's associated with the specified link identifier.

Every subsequent call to mssql_query() will be made on the active database.

Список параметров

database_name

The database name.

To escape the name of a database that contains spaces, hyphens ("-"), or any other exceptional characters, the database name must be enclosed in brackets, as is shown in the example, below. This technique must also be applied when selecting a database name that is also a reserved word (such as primary).

link_identifier

A MS SQL link identifier, returned by mssql_connect() or mssql_pconnect().

If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if mssql_connect() was called, and use it.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 mssql_select_db() example

<?php
// Create a link to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Select the database 'php'
mssql_select_db('php', $link);
?>

Пример #2 Escaping the database name with square brackets

<?php
// Create a link to MSSQL
$link = mssql_connect('KALLESPC\SQLEXPRESS', 'sa', 'phpfi');

// Select the database 'my.database-name'
mssql_select_db('[my.database-name]', $link);
?>

Смотрите также

  • mssql_connect() - Открывает соединение с MS SQL server
  • mssql_pconnect() - Открывает постоянное соединение с MS SQL
  • mssql_query() - Send MS SQL query


MySQL драйверы и плагины

В PHP имеется несколько драйверов и плагинов для доступа к MySQL.

В данном разделе педставлен обзор отличий и функционала различных расширений для работы с MySQL.

  • Обзор PHP драйверов MySQL
    • Обзор терминологии
    • Выбор API
    • Выбор библиотеки
    • Concepts
  • MySQLi — Улучшенный модуль MySQL (MySQL Improved)
    • Введение
    • Краткий обзор
    • Краткое руководство
    • Установка и настройка
    • Расширение mysqli и постоянные соединения
    • Предопределенные константы
    • Основная информация о функциях расширения MySQLi
    • Примеры
    • mysqli — Класс mysqli
    • mysqli_stmt — The mysqli_stmt class
    • mysqli_result — The mysqli_result class
    • mysqli_driver — Класс mysqli_driver
    • mysqli_warning — Класс mysqli_warning
    • mysqli_sql_exception — Класс mysqli_sql_exception
    • Синонимы и устаревшие Функции Mysqli
    • Список изменений
  • MySQL (Original) — Оригинальное API MySQL
    • Введение
    • Установка и настройка
    • Список изменений
    • Предопределенные константы
    • Примеры
    • MySQL — Функции СУБД MySQL
  • Mysqlnd — Встроенный драйвер MySQL
    • Введение
    • Обзор
    • Установка
    • Настройка во время выполнения
    • Несовместимости
    • Постоянное соединение
    • Statistics
    • Записки
    • Управление памятью
    • API для плагинов к встроенному драйверу MySQL
  • mysqlnd_ms — Плагин репликации и балансировки нагрузки для mysqlnd
    • Введение
    • Quickstart and Examples
    • Concepts
    • Установка и настройка
    • Предопределенные константы
    • Mysqlnd_ms Функции
    • Change History
  • mysqlnd_qc — Mysqlnd query result cache plugin
    • Введение
    • Quickstart and Examples
    • Установка и настройка
    • Предопределенные константы
    • mysqlnd_qc Функции
    • Change History
  • mysqlnd_uh — Mysqlnd user handler plugin
    • Введение
    • Quickstart and Examples
    • Установка и настройка
    • Предопределенные константы
    • MysqlndUhConnection — The MysqlndUhConnection class
    • MysqlndUhPreparedStatement — The MysqlndUhPreparedStatement class
    • Mysqlnd_uh Функции
    • Change History
  • mysqlnd_mux — Mysqlnd connection multiplexing plugin
    • Введение
    • Concepts
    • Установка и настройка
    • Предопределенные константы
    • Change History
  • mysqlnd_memcache — Mysqlnd Memcache plugin
    • Введение
    • Quickstart and Examples
    • Установка и настройка
    • Предопределенные константы
    • Mysqlnd_memcache Функции
    • Change History


Обзор PHP драйверов MySQL

Введение

В зависимости от версии PHP, можно использовать два либо три различных PHP API для доступа к базе данных MySQL. В PHP 5 доступны следующие расширения: устаревшее mysql, mysqli и PDO_MySQL. В PHP 7, устаревшее расширение mysql не доступно и оставлены только два последних.

В этом руководстве описывается терминология используемая в описаниях каждого API, информация по выбору подходящего API ,и информация которая поможет вам выбрать подходящую, для использования с этим API, MySQL библиотеку.

  • Обзор терминологии
  • Выбор API
  • Выбор библиотеки
  • Concepts
    • Buffered and Unbuffered queries
    • Character sets


Обзор терминологии

В этом разделе рассказывается про имеющиеся возможности взаимодействия между PHP приложением и базой данных MySQL.

Что такое API?

Интерфейс программирования приложений(Application Programming Interface или API), описывает классы, методы, функции и переменные, которые ваше приложение должно использовать для выполнения поставленной задачи. В случае PHP, API для доступа к базам данных доступны в качестве расширений PHP.

API может быть процедурным или объектно ориентированным. В процедурном API, для совершения необходимых действий вы вызываете функции, тогда как в объектно ориентированном API вы инстанциируете классы и вызываете их методы. Более предпочтительным является использование объектно ориентированого API, так как подобный подход более современен и позволяет лучше организовать код.

Если вы пишите PHP приложение, которому необходимо взаимодействовать с базой данных MySQL, то у вас есть несколько API на выбор. В этом документе рассказывается про то, какие API есть и как выбрать наиболее подходящее для вашего приложения.

Что такое Коннектор?

В документации MySQL, термин коннектор(connector) отсылает к той части программного обеспечения, которая позволяет вашему приложению соединиться с базой данных MySQL. MySQL предоставляет коннекторы для многих языков программирования, в том числе и для PHP.

Если ваше приложение должно взаимодействовать с базой данных, вы должны написать PHP код для выполнения таких задач как соединение с базой данных, выполнение запросов и прочих функций. Для предоставления вашему приложению необходимого API и для обеспечения взаимодествия между приложением и базой данных требуется специальное программное обеспечение. Это ПО обычно называют коннектором. И именно оно позволяет вашему приложению соединиться(connect) с базой данных.

Что такое Драйвер?

Драйвер - это специализированное ПО, созданное для взаимодействием с определенным сервером баз данных. Драйвер также может использовать сторонние библиотеки, такие как "MySQL Client Library" или "MySQL Native Driver". Эти библиотеки реализуют низкоуровневый протокол взаимодействия с сервером MySQL.

Для примера, коннектор PHP Data Objects (PDO) может использовать различные специализированные драйверы для различных баз данных. Один из них "PDO MYSQL driver", предназначенный для взаимодействия с MySQL.

Иногда люди используют термины коннектор и драйвер, понимая под ними одно и то же. Это неправильно и может привести к путанице. В документации относящейся к MySQL, термин "драйвер" обозначает ПО, предоставляющее специфичную для конкретного сервера баз данных часть коннектора.

Что такое Расширение?

В документации PHP вы наверняка сталкивались с термином расширение(extension). Код PHP состоит из базового функционала(ядра) и опциональных расширений, дополняющих функционал ядра. Расширения связанные с MySQL, такие как mysqli и mysql, реализованы с использованием фреймворка расширений PHP.

Обычно, расширения предоставляют API для программиста, что бы он мог использовать из функционал в своих программах. Однако существуют расширения не предоставляющие никакого API.

Например расширение "PDO MySQL driver" не предоставляет никакого API для разработчика. Вместо этого оно предоставляет интерфейс для вышестоящего уровня PDO.

Термины API и Расширение обозначают разные вещи, так как расширение может не предоставлять никакого API.


Выбор API

PHP предоставляет три различных API для доступа к MySQL. Ниже показаны API, предоставляемые расширениями mysql, mysqli и PDO. В каждом примере кода создается соединение с сервером MySQL запущенном на сервере "example.com" с использованием логина "user" и пароля "password" и выполняется запроса к нему.

Пример #1 Сравнение трех MySQL API

<?php
// mysqli
$mysqli = new mysqli("example.com", "user", "password", "database");
$result = $mysqli->query("SELECT 'Привет, дорогой пользователь MySQL!' AS _message FROM DUAL");
$row = $result->fetch_assoc();
echo htmlentities($row['_message']);

// PDO
$pdo = new PDO('mysql:host=example.com;dbname=database', 'user', 'password');
$statement = $pdo->query("SELECT 'Привет, дорогой пользователь MySQL!' AS _message FROM DUAL");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);

// mysql
$c = mysql_connect("example.com", "user", "password");
mysql_select_db("database");
$result = mysql_query("SELECT 'Привет, дорогой пользователь MySQL!' AS _message FROM DUAL");
$row = mysql_fetch_assoc($result);
echo htmlentities($row['_message']);
?>

Рекомендованные API

Рекомендуется использовать mysqli или PDO_MySQL. Не рекомендуется использовать старое расширение mysql ,так как оно объявлено устаревшим в PHP 5.5.0 и окончательно убрано в PHP 7. Детальная матрица сравнения представлена ниже. Общая производительность всех трех расширений примерно одинакова. Производительность расширения привносит крайне малую лепту в общую длительность выполнения веб-запроса, обычно не более 0.1%.

Сравнение возможностей

 | ext/mysqli | PDO_MySQL | ext/mysql
Появилось в версии PHP | 5.0 | 5.1 | 2.0
Работает в PHP 5.x | Да | Да | Да
Работает в PHP 7.x | Да | Да | Нет
Статус разработки | Активный | Активный | Поддержка в 5.x; убрано в 7.x
Жизненный цикл | Активный | Активный | Устаревшее в 5.x; убрано в 7.x
Рекомендовано для новых проектов | Да | Да | Нет
ООП интерфейс | Да | Да | Нет
Процедурный интерфейс | Да | Нет | Да
API поддерживает асинхронные, неблокирующие запросы mysqlnd | Да | Нет | Нет
Постоянные(persistent) соединения | Да | Да | Да
API поддерживает кодировки(charset) | Да | Да | Да
API поддерживает подготовленные запросы на стороне сервера | Да | Да | Нет
API поддерживает подготовленные запросы на стороне клиента | Нет | Да | Нет
API подерживает хранимые процедуры | Да | Да | Нет
API поддерживает множественные запросы | Да | Большинство | нет
API поддерживает транзакции | Да | Да | нет
Можно контролировать транзакции посредством SQL | Да | Да | Да
Поддерживает всю функциональность MySQL 5.1+ | Да | Большинство | нет


Выбор библиотеки

Расширения mysqli, PDO_MySQL и mysql - всего лишь легковесные обертки над библиотеками написанными на языке C. Эти расширения могут использовать библиотеки mysqlnd и libmysqlclient. Выбор библиотеки необходимо сделать на этапе компиляции.

Библиотека mysqlnd является частью дистрибутива PHP начиная с версии 5.3.0. Она предоставляет такие возможности как ленивое соединение(lazy connections) и кеширование запросов. В библиотеке libmysqlclient данные возможности недоступны. Так что крайне рекомендуется использовать именно встроенную библиотеку mysqlnd. Для дополнительных сведений смотрите документацию mysqlnd.

Пример #1 Комманды конфигурирования для mysqlnd и libmysqlclient

//Рекомендованная, компилирует с mysqlnd
$ ./configure --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd

//Рекомендованная, компилирует с mysqlnd начиная с PHP 5.4
$ ./configure --with-mysqli --with-pdo-mysql --with-mysql

//Не рекомендованная, компилирует с libmysqlclient
$ ./configure --with-mysqli=/path/to/mysql_config --with-pdo-mysql=/path/to/mysql_config --with-mysql=/path/to/mysql_config

Сравнение возможностей библиотек

Рекомендуется использовать библеотеку mysqlnd, а не MySQL Client Server library (libmysqlclient). Обе библиотеки развиваются и поддерживаются производителями.

 | MySQL native driver (mysqlnd) | MySQL client server library (libmysqlclient)
Часть дистрибутива PHP | Да | Нет
Появилась в версии PHP | 5.3.0 | Нет данных
Лицензия | PHP License 3.01 | Двойная лицензия
Статус разработки | Активный | Активный
Жизненный цикл | Окончание не анонсировано | Окончание не анонсировано
PHP 5.4 и выше; компилируется по умолчанию | Да | Нет
PHP 5.3; компилируется по умолчанию | Нет | Да
Поддержка протокола сжатия | Да (5.3.1+) | Да
Поддержка SSL | Да (5.3.3+) | Да
Поддержка именованных конвееров(named pipes) | Да (5.3.4+) | Да
Неблокирующие, асинхронные запросы | Да | Нет
Статистика производительности | Да | Нет
LOAD LOCAL INFILE уважает директиву open_basedir | Да | нет
Использует штатный менеджер памяти PHP (т.е., ограничения памяти PHP) | Да | Нет
Возвращает числовые значения как значения с плавающей запятой(float) (COM_QUERY) | Да | нет
Возвращает числовые значения как строки (string) (COM_QUERY) | Да | Да
Поддержка плагинов | Да | Ограниченно
Разделение Read/Write для репликации MySQL | Да, с плагином | Нет
Балансировка нагрузки | Да, с плагином | Нет
отказоустойчивость | Да, с плагином | нет
Ленивые соединения | Да, с плагином | Нет
Кеширование запросов | Да, с плагином | нет
Прозрачная манипуляция запросами (т.е., auto-EXPLAIN или мониторинг) | Да, с плагином | Нет
Автоматическое переподключение | нет | опционально


Concepts

Содержание

  • Buffered and Unbuffered queries
  • Character sets

These concepts are specific to the MySQL drivers for PHP.


Buffered and Unbuffered queries

Queries are using the buffered mode by default. This means that query results are immediately transferred from the MySQL Server to PHP and then are kept in the memory of the PHP process. This allows additional operations like counting the number of rows, and moving (seeking) the current result pointer. It also allows issuing further queries on the same connection while working on the result set. The downside of the buffered mode is that larger result sets might require quite a lot memory. The memory will be kept occupied till all references to the result set are unset or the result set was explicitly freed, which will automatically happen during request end the latest. The terminology "store result" is also used for buffered mode, as the whole result set is stored at once.

Замечание:

When using libmysqlclient as library PHP's memory limit won't count the memory used for result sets unless the data is fetched into PHP variables. With mysqlnd the memory accounted for will include the full result set.

Unbuffered MySQL queries execute the query and then return a resource while the data is still waiting on the MySQL server for being fetched. This uses less memory on the PHP-side, but can increase the load on the server. Unless the full result set was fetched from the server no further queries can be sent over the same connection. Unbuffered queries can also be referred to as "use result".

Following these characteristics buffered queries should be used in cases where you expect only a limited result set or need to know the amount of returned rows before reading all rows. Unbuffered mode should be used when you expect larger results.

Because buffered queries are the default, the examples below will demonstrate how to execute unbuffered queries with each API.

Пример #1 Unbuffered query example: mysqli

<?php
$mysqli  = new mysqli("localhost", "my_user", "my_password", "world");
$uresult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT);

if ($uresult) {
   while ($row = $uresult->fetch_assoc()) {
       echo $row['Name'] . PHP_EOL;
   }
}
$uresult->close();
?>

Пример #2 Unbuffered query example: pdo_mysql

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world", 'my_user', 'my_pass');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$uresult = $pdo->query("SELECT Name FROM City");
if ($uresult) {
   while ($row = $uresult->fetch(PDO::FETCH_ASSOC)) {
       echo $row['Name'] . PHP_EOL;
   }
}
?>

Пример #3 Unbuffered query example: mysql

<?php
$conn = mysql_connect("localhost", "my_user", "my_pass");
$db   = mysql_select_db("world");

$uresult = mysql_unbuffered_query("SELECT Name FROM City");
if ($uresult) {
   while ($row = mysql_fetch_assoc($uresult)) {
       echo $row['Name'] . PHP_EOL;
   }
}
?>


Character sets

Ideally a proper character set will be set at the server level, and doing this is described within the » Character Set Configuration section of the MySQL Server manual. Alternatively, each MySQL API offers a method to set the character set at runtime.

Предостережение

The character set and character escaping

The character set should be understood and defined, as it has an affect on every action, and includes security implications. For example, the escaping mechanism (e.g., mysqli_real_escape_string() for mysqli, mysql_real_escape_string() for mysql, and PDO::quote() for PDO_MySQL) will adhere to this setting. It is important to realize that these functions will not use the character set that is defined with a query, so for example the following will not have an effect on them:

Пример #1 Problems with setting the character set with SQL

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

// Will NOT affect $mysqli->real_escape_string();
$mysqli->query("SET NAMES utf8");

// Will NOT affect $mysqli->real_escape_string();
$mysqli->query("SET CHARACTER SET utf8");

// But, this will affect $mysqli->real_escape_string();
$mysqli->set_charset('utf8');

// But, this will NOT affect it (utf-8 vs utf8) -- don't use dashes here
$mysqli->set_charset('utf-8');

?>

Below are examples that demonstrate how to properly alter the character set at runtime using each API.

Замечание: Possible UTF-8 confusion

Because character set names in MySQL do not contain dashes, the string "utf8" is valid in MySQL to set the character set to UTF-8. The string "utf-8" is not valid, as using "utf-8" will fail to change the character set.

Пример #2 Setting the character set example: mysqli

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

printf("Initial character set: %s\n", $mysqli->character_set_name());

if (!$mysqli->set_charset('utf8')) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
    exit;
}

echo "New character set information:\n";
print_r( $mysqli->get_charset() );

?>

Пример #3 Setting the character set example: pdo_mysql

Note: This only works as of PHP 5.3.6.

<?php
$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8", 'my_user', 'my_pass');
?>

Пример #4 Setting the character set example: mysql

<?php
$conn = mysql_connect("localhost", "my_user", "my_pass");
$db   = mysql_select_db("world");

echo 'Initial character set: ' .  mysql_client_encoding($conn) . "\n";

if (!mysql_set_charset('utf8', $conn)) {
    echo "Error: Unable to set the character set.\n";
    exit;
}

echo 'Your current character set is: ' .  mysql_client_encoding($conn);
?>


Улучшенный модуль MySQL (MySQL Improved)

  • Введение
  • Краткий обзор
  • Краткое руководство
    • Процедурный и объектно-ориентированный интерфейс
    • Соединения
    • Выполнение запросов
    • Подготавливаемые запросы
    • Хранимые процедуры
    • Множественные запросы
    • API поддержка транзакций
    • Метаданные
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Расширение mysqli и постоянные соединения
  • Предопределенные константы
  • Основная информация о функциях расширения MySQLi
  • Примеры
    • Базовые примеры расширения MySQLi
  • mysqli — Класс mysqli
    • mysqli::$affected_rows — Получает число строк, затронутых предыдущей операцией MySQL
    • mysqli::autocommit — Включает или отключает автоматическую фиксацию изменений базы данных
    • mysqli::begin_transaction — Стартует транзакцию
    • mysqli::change_user — Позволяет сменить пользователя подключенного к базе данных
    • mysqli::character_set_name — Возвращает кодировку по умолчанию, установленную для соединения с БД
    • mysqli::$client_info — Получает информацию о клиенте MySQL
    • mysqli::$client_version — Возвращает информацию о клиенте MySQL в виде строки
    • mysqli::close — Закрывает ранее открытое соединение с базой данных
    • mysqli::commit — Фиксирует текущую транзакцию
    • mysqli::$connect_errno — Возвращает код ошибки последней попытки соединения
    • mysqli::$connect_error — Возвращает описание последней ошибки подключения
    • mysqli::__construct — Устанавливает новое соединение с сервером MySQL
    • mysqli::debug — Выполняет процедуры отладки
    • mysqli::dump_debug_info — Журналирование отладочной информации
    • mysqli::$errno — Возвращает код ошибки последнего вызова функции
    • mysqli::$error_list — Возвращает список ошибок выполнения последней запущенной команды
    • mysqli::$error — Возвращает строку с описанием последней ошибки
    • mysqli::$field_count — Возвращает число столбцов, затронутых последним запросом
    • mysqli::get_charset — Возвращает объект, описывающий кодировку
    • mysqli::get_client_info — Получает информацию о клиенте MySQL
    • mysqli_get_client_stats — Возвращает статистику клиента для каждого процесса
    • mysqli_get_client_version — Возвращает информацию о клиенте MySQL в виде строки
    • mysqli::get_connection_stats — Возвращает статистику соединения с клиентом
    • mysqli::$host_info — Возвращает строку, содержащую тип используемого соединения
    • mysqli::$protocol_version — Возвращает версию используемого MySQL протокола
    • mysqli::$server_info — Возвращает версию MySQL сервера
    • mysqli::$server_version — Возвращает версию сервера MySQL, представленную в виде integer
    • mysqli::get_warnings — Получает результат SHOW WARNINGS
    • mysqli::$info — Извлекает информацию о последнем выполненном запросе
    • mysqli::init — Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
    • mysqli::$insert_id — Возвращает автоматически генерируемый ID, используя последний запрос
    • mysqli::kill — Запрос для сервера завершить выполнение процесса MySQL
    • mysqli::more_results — Проверка, есть ли еще результаты в мультизапросе
    • mysqli::multi_query — Выполняет запрос к базе данных
    • mysqli::next_result — Подготовка следующего доступного результирующего набора из multi_query
    • mysqli::options — Задание настроек
    • mysqli::ping — Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано
    • mysqli::poll — Опрос подключений
    • mysqli::prepare — Подготавливает SQL выражение к выполнению
    • mysqli::query — Выполняет запрос к базе данных
    • mysqli::real_connect — Устанавливает соединение с сервером mysql
    • mysqli::real_escape_string — Экранирует специальные символы в строке для использования в SQL выражении, используя текущий набор символов соединения
    • mysqli::real_query — Выполнение SQL запроса
    • mysqli::reap_async_query — Получение результата асинхронного запроса
    • mysqli::refresh — Обновление
    • mysqli::release_savepoint — Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции
    • mysqli::rollback — Откат текущей транзакции
    • mysqli::rpl_query_type — Возвращает RPL тип запроса
    • mysqli::savepoint — Устанавливает именованную точку отката для текущей транзакции
    • mysqli::select_db — Устанавливает базу данных для выполняемых запросов
    • mysqli::send_query — Отправка запроса и возврат
    • mysqli::set_charset — Задает набор символов по умолчанию
    • mysqli::set_local_infile_default — Отмена привязки callback-функции для команды load local infile
    • mysqli::set_local_infile_handler — Задает callback-функцию для команды LOAD DATA LOCAL INFILE
    • mysqli::$sqlstate — Возвращает код состояния SQLSTATE последней MySQL операции
    • mysqli::ssl_set — Используется для установления безопасных соединений, используя SSL
    • mysqli::stat — Получение информации о текущем состоянии системы
    • mysqli::stmt_init — Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare
    • mysqli::store_result — Передает на клиента результирующий набор последнего запроса
    • mysqli::$thread_id — Возвращает ID процесса текущего подключения
    • mysqli::thread_safe — Показывает, безопасна ли работа с процессами
    • mysqli::use_result — Готовит результирующий набор на сервере к использованию
    • mysqli::$warning_count — Возвращает количество предупреждений из последнего запроса заданного подключения
  • mysqli_stmt — The mysqli_stmt class
    • mysqli_stmt::$affected_rows — Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением
    • mysqli_stmt::attr_get — Получает текущее значение атрибута запроса
    • mysqli_stmt::attr_set — Изменяет поведение подготовленного запроса
    • mysqli_stmt::bind_param — Привязка переменных к параметрам подготавливаемого запроса
    • mysqli_stmt::bind_result — Привязка переменных к подготовленному запросу для размещения результата
    • mysqli_stmt::close — Закрывает подготовленный запрос
    • mysqli_stmt::__construct — Конструктор для объекта mysqli_stmt
    • mysqli_stmt::data_seek — Переход к заданной строке в результирующем наборе
    • mysqli_stmt::$errno — Возвращает код ошибки выполнения последнего запроса
    • mysqli_stmt::$error_list — Возвращает список ошибок выполнения последнего запроса
    • mysqli_stmt::$error — Возвращает строку с пояснением последней ошибки при выполнении запроса
    • mysqli_stmt::execute — Выполняет подготовленный запрос
    • mysqli_stmt::fetch — Связывает результаты подготовленного выражения с переменными
    • mysqli_stmt::$field_count — Возвращает число полей в заданном выражении
    • mysqli_stmt::free_result — Освобождает память от результата запроса, указанного дескриптором
    • mysqli_stmt::get_result — Получает результат из подготовленного запроса
    • mysqli_stmt::get_warnings — Получает результат от SHOW WARNINGS
    • mysqli_stmt::$insert_id — Получает ID сгенерированный предыдущей операцией INSERT
    • mysqli_stmt::more_results — Проверяет, есть ли еще наборы строк в результате мультизапроса
    • mysqli_stmt::next_result — Читает следующий набор строк из мультизапроса
    • mysqli_stmt::$num_rows — Возвращает число строк в результате запроса
    • mysqli_stmt::$param_count — Возвращает количество параметров в запросе
    • mysqli_stmt::prepare — Подготовка SQL запроса к выполнению
    • mysqli_stmt::reset — Сбрасывает результаты выполнения подготовленного запроса
    • mysqli_stmt::result_metadata — Возвращает метаданные результирующей таблицы подготавливаемого запроса
    • mysqli_stmt::send_long_data — Отправка данных блоками
    • mysqli_stmt::$sqlstate — Возвращает код SQLSTATE ошибки, вызванной в ходе выполнения последней операции над запросом
    • mysqli_stmt::store_result — Передает результирующий набор запроса на клиента
  • mysqli_result — The mysqli_result class
    • mysqli_result::$current_field — Получает смещение указателя по отношению к текущему полю
    • mysqli_result::data_seek — Перемещает указатель результата на выбранную строку
    • mysqli_result::fetch_all — Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба
    • mysqli_result::fetch_array — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
    • mysqli_result::fetch_assoc — Извлекает результирующий ряд в виде ассоциативного массива
    • mysqli_result::fetch_field_direct — Получение метаданных конкретного поля
    • mysqli_result::fetch_field — Возвращает следующее поле результирующего набора
    • mysqli_result::fetch_fields — Возвращает массив объектов, представляющих поля результирующего набора
    • mysqli_result::fetch_object — Возвращает текущую строку результирующего набора в виде объекта
    • mysqli_result::fetch_row — Получение строки результирующей таблицы в виде массива
    • mysqli_result::$field_count — Получение количества полей в результирующем наборе
    • mysqli_result::field_seek — Установить указатель поля на определенное смещение
    • mysqli_result::free — Освобождает память занятую результатами запроса
    • mysqli_result::$lengths — Возвращает длины полей текущей строки результирующего набора
    • mysqli_result::$num_rows — Получает число рядов в результирующей выборке
  • mysqli_driver — Класс mysqli_driver
    • mysqli_driver::embedded_server_end — Останов встроенного сервера
    • mysqli_driver::embedded_server_start — Инициализирует и запускает встроенный сервер
    • mysqli_driver::$report_mode — Включает или отключает внутренние функции протоколирования
  • mysqli_warning — Класс mysqli_warning
    • mysqli_warning::__construct — Выполняет функции конструктора
    • mysqli_warning::next — Переход к следующему предупреждению
  • mysqli_sql_exception — Класс mysqli_sql_exception
  • Синонимы и устаревшие Функции Mysqli
    • mysqli_bind_param — Синоним функции mysqli_stmt_bind_param
    • mysqli_bind_result — Синоним функции mysqli_stmt_bind_result
    • mysqli_client_encoding — Синоним функции mysqli_character_set_name
    • mysqli_connect — Псевдоним mysqli::__construct
    • mysqli::disable_reads_from_master — Блокирует чтение с мастера
    • mysqli_disable_rpl_parse — Блокировать разбор RPL
    • mysqli_enable_reads_from_master — Включает чтение с мастера
    • mysqli_enable_rpl_parse — Включает разбор RPL
    • mysqli_escape_string — Псевдоним функции mysqli_real_escape_string
    • mysqli_execute — Синоним для mysqli_stmt_execute
    • mysqli_fetch — Синоним для mysqli_stmt_fetch
    • mysqli_get_cache_stats — Возвращает статистические данные о Zval кэше клиента
    • mysqli_get_links_stats — Возвращает информацию об открытых и закешированных соединениях MySQL
    • mysqli_get_metadata — Синоним для mysqli_stmt_result_metadata
    • mysqli_master_query — Принудительный запуск запроса на хозяине в случае установки хозяин/раб
    • mysqli_param_count — Синоним для mysqli_stmt_param_count
    • mysqli_report — Псевдоним mysqli_driver->report_mode
    • mysqli_rpl_parse_enabled — Проверка, включен ли RPL разбор
    • mysqli_rpl_probe — RPL зонд
    • mysqli_send_long_data — Синоним для mysqli_stmt_send_long_data
    • mysqli::set_opt — Alias of mysqli_options
    • mysqli_slave_query — Принудительный запуск запроса на рабе в установке хозяин/раб
  • Список изменений


Введение

Расширение mysqli позволяет вам получить доступ к функциональности, которую предоставляет MySQL версии 4.1 и выше. Больше информации о сервере баз данных MySQL вы можете получить по адресу » http://www.mysql.com/.

Информация об использовании MySQL из PHP находится по адресу Краткий обзор

Документация MySQL находится по адресу » http://dev.mysql.com/doc/.

Некоторые части данной документации включены из руководства по MySQL с разрешения корпорации Oracle.

Все примеры, приведенные в документации, используют доступные свободно базы данных » world и » sakila.


Краткий обзор

Этот раздел посвящен описанию инструментов для взаимодействия PHP приложений с базами данных MySQL.

Что такое API?

Интерфейс программирования приложений, или API, определяет набор классов, методов, функций и переменных, которые можно вызывать из вашего приложения для выполнения поставленных задач. Применительно к PHP приложениям, которые должны взаимодействовать с базами данных, необходимые для этого API, как правило, представлены PHP расширениями.

API могут быть процедурными или объектно-ориентированными. При использовании процедурных API вы вызываете функции для выполнения каких-либо операций, а в случае объектно-ориентированных вы инстанцируете классы и затем вызываете методы созданных объектов. Второй подход, обычно, предпочтительнее, так как он более современный и способствует написанию более организованного кода.

API MySQL предоставляет несколько способов подключения к базе данных из PHP приложения. В этом документе приводится описание этих способов и даются рекомендации, как выбрать наиболее подходящее решение в конкретной ситуации.

Что такое Коннектор?

В документации MySQL термин коннектор (connector) относится к части программного обеспечения, отвечающей за подключение к серверу MySQL. MySQL предоставляет множество коннекторов для различных языков программирования, в частности для PHP.

Для обеспечения взаимодействия PHP приложения с сервером баз данных вам необходимо написать PHP код, выполняющий подключение к серверу, выполнение запросов к базе данных и тому подобные операции. От программного обеспечения сервера требуется предоставить API, которое ваше PHP приложение сможет использовать, а также функционал, ответственный за взаимодействие вашего приложения с сервером. Программное обеспечение, реализующее такой функционал, обычно называют коннектором, так как оно позволяет вашему приложению подключиться (to connect) к серверу баз данных. В ряде случаев коннектор для своих нужд может потребовать дополнительные библиотеки.

Что такое драйвер?

Драйвером называется часть программного обеспечения, отвечающая за взаимодействие приложения с конкретным типом серверов баз данных. Драйвер также может обращаться к внешним библиотекам, таким как клиентская библиотека MySQL или нативный драйвер MySQL. Эти библиотеки реализуют низкоуровневый протокол взаимодействия с сервером MySQL.

В качестве примера можно привести уровень абстракции для работы с базами данных Объекты данных PHP (PDO), который может использовать один из нескольких драйверов, специфичных для конкретных баз данных. В качестве такого драйвера может выступать драйвер PDO MYSQL, который позволяет PDO взаимодействовать с MySQL сервером.

Иногда, люди употребляют термины коннектор и драйвер, как синонимы, и это может сбить с толку. В документации MySQL термин "драйвер" означает участок программного кода, входящий в состав коннектора и отвечающий за связь с конкретной СУБД.

Что такое расширение?

В документации к PHP вы будете неоднократно сталкиваться с термином расширение. Код PHP как такового состоит из ядра и присоединенных к нему необязательных расширений, которые увеличивают круг задач, которые может выполнять ядро. Относящиеся к MySQL расширения, такие как mysqli и mysql, взаимодействуют с ядром с помощью фреймворка PHP расширений.

Обычно, расширения предоставляют свой API-интерфейс PHP программисту, чтобы тот мог программно использовать возможности расширения. Однако, некоторые расширения, использующие фреймворк PHP расширений, не предоставляют программистам никаких интерфейсов.

Драйвер PDO MySQL, например, не предоставляет своего API. Он предоставляет интерфейс только абстрактному слою PDO, лежащему выше.

Термины API и расширение нельзя воспринимать как синонимы, так как расширение может и не предоставлять API программисту.

Какие инструменты для работы с MySQL предлагает PHP API?

API предоставляет на выбор три набора инструментов для подключения к серверу баз данных MySQL:

  • Расширение PHP MySQL

  • Расширение PHP mysqli

  • Объекты данных PHP (PDO)

Каждый из них имеет свои достоинства и недостатки. Целью данного обзора является краткое описание ключевых особенностей каждого API.

Что такое расширение PHP MySQL?

Это оригинальное расширение позволяет разрабатывать PHP приложения, которые могут взаимодействовать с базой данных MySQL. Расширение mysql предоставляет процедурный интерфейс и предназначено для использования с MySQL версии 4.1.3 или более ранними версиями. Его также можно использовать и с более свежими версиями СУБД, но в этом случае многие возможности сервера, появившиеся после версии 4.1.3, будут недоступны программисту.

Замечание:

Если вы работаете с сервером MySQL 4.1.3 или более поздних версий, настоятельно рекомендуется использовать расширение mysqli.

Исходные коды расширения mysql расположены в директории расширений PHP ext/mysql.

Дополнительную информацию о расширении mysql можно почерпнуть из ресурса MySQL (Original).

Что такое PHP расширение mysqli?

Расширение mysqli, или как его еще называют улучшенное (improved) MySQL расширение, было разработано, чтобы дать возможность программистам в полной мере воспользоваться функционалом MySQL сервера версий 4.1.3 и выше. Расширение mysqli включается в поставку PHP версий 5 и выше.

mysqli имеет ряд преимуществ и усовершенствований по сравнению с mysql, которые заключаются в следующем:

  • Объектно-ориентированный интерфейс

  • Поддержка подготавливаемых запросов

  • Поддержка мультизапросов

  • Поддержка транзакций

  • Улучшенные возможности отладки

  • Поддержка встроенного сервера

Замечание:

При работе с MySQL версий 4.1.3 и выше настоятельно рекомендуется использовать именно это расширение.

Наравне с объектно-ориентированным расширение предоставляет и процедурный интерфейс.

Расширение mysqli собирается при помощи фреймворка расширений PHP, его исходный код расположен в директории ext/mysqli.

За дополнительной информацией о расширении mysqli, обращайтесь к разделу MySQLi.

Что такое PDO?

Объекты данных PHP, или PDO, представляют из себя абстракцию коннектора баз данных для PHP приложений. PDO предоставляет API интерфейс взаимодействия с базой данных, не зависящий от конкретной СУБД. Теоретически, при использовании PDO можно поменять сервер баз данных, например с Firebird на MySQL, и это приведет лишь к незначительным изменениям в PHP коде.

В качестве других подобных абстракций можно привести JDBC для Java приложений и DBI для Perl.

Наряду с преимуществами PDO, такими как простота и переносимость API, есть его главный недостаток: PDO поддерживает не все возможности сервера баз данных, доступные в последних версиях MySQL. Например, средствами PDO нельзя создавать множественные запросы, хотя MySQL их и поддерживает.

PDO собирается при помощи фреймворка расширений PHP, его исходный код расположен в директории ext/pdo.

Дополнительную информацию о PDO см. в разделе PDO.

Что такое драйвер PDO MYSQL?

Драйвер PDO MYSQL не является API как таковым, во всяком случае с точки зрения программиста. Драйвер PDO MYSQL располагается между самим PDO и сервером MySQL. Программист вызывает функции интерфейса PDO API, а PDO в свою очередь использует драйвер PDO MYSQL для обмена данными и командами с сервером MySQL.

Драйвер PDO MYSQL лишь один из многих PDO драйверов. Для большинства СУБД есть свои PDO драйверы, как например драйверы для Firebird или PostgreSQL серверов.

Драйвер PDO MYSQL собирается при помощи фреймворка расширений PHP, его исходный код расположен в директории ext/pdo_mysql. Он не предоставляет API-интерфейс программисту PHP.

Дополнительно о драйвере PDO MYSQL можно прочитать в разделе MySQL (PDO).

Что такое нативный драйвер MySQL для PHP?

Чтобы обеспечить взаимодействие с сервером MySQL, расширения mysql и mysqli, а также драйвер PDO MYSQL используют низкоуровневую библиотеку, в которой реализованы необходимые протоколы. В прошлом была доступна только одна такая библиотека: Клиентская библиотека MySQL (MySQL Client Library), также известная как libmysqlclient.

Однако, интерфейс, который предоставляла libmysqlclient, не был оптимизирован для взаимодействия с PHP приложениями, так как изначально libmysqlclient разрабатывалась для работы с С приложениями. Несколько позже был разработан нативный драйвер MySQL (MySQL Native Driver) mysqlnd, который представляет собой альтернативу libmysqlclient для PHP.

Каждое из расширений mysql или mysqli, а также драйвер PDO MySQL можно индивидуально настроить для работы либо с libmysqlclient, либо с mysqlnd. Так как mysqlnd создавался специально для PHP систем, у него есть преимущество в скорости и расходах памяти перед libmysqlclient. Поэтому его использование предпочтительней.

Замечание:

Нативный драйвер MySQL может использоваться только с MySQL версии 4.1.3 и выше.

Нативный драйвер MYSQL собирается при помощи фреймворка расширений PHP, его исходный код расположен в директории ext/mysqlnd. Он не предоставляет API-интерфейс программисту PHP.

Сравнение возможностей

В приведенной таблице приводится сравнение функционала трех основных методов подключения к MySQL из PHP:

Сравнение опций MySQL API в PHP
 | Расширение PHP mysqli | PDO (Используя драйвер PDO MySQL и нативный драйвер MySQL) | Расширение PHP MySQL
Версия PHP, в которой был внедрен функционал | 5.0 | 5.0 | До 3.0
Включено в PHP 5.x | Да | Да | Да
Статус разработки MySQL | Разработка продолжается | Разработка продолжается по состоянию на PHP 5.3 | Только поддержка
Рекомендовано MySQL для разработки новых проектов | Да - отдается предпочтение | Да | Нет
API поддерживает наборы символов | Да | Да | Нет
API поддерживает подготавливаемые запросы на стороне сервера | Да | Да | Нет
API поддерживает подготавливаемые запросы на стороне клиента | Нет | Да | Нет
API поддерживает хранимые процедуры | Да | Да | Нет
API поддерживает множественные запросы | Да | По большей части | Нет
Поддержка всего функционала MySQL 4.1+ | Да | По большей части | Нет


Краткое руководство

Содержание

  • Процедурный и объектно-ориентированный интерфейс
  • Соединения
  • Выполнение запросов
  • Подготавливаемые запросы
  • Хранимые процедуры
  • Множественные запросы
  • API поддержка транзакций
  • Метаданные

Данное практическое руководство поможет освоить основные моменты API-интерфейса MySQL сервера.

В этом руководстве приводится краткий обзор расширения mysqli. Для всех основных особенностей API-интерфейса приведены примеры PHP кода. Также объясняются принципы работы баз данных в целом, чтобы иметь возможность описать какие-то отдельные моменты, присущие конкретно MySQL.

Требования: Знакомство с языком программирования PHP, SQL, а также знание основ работы с MySQL сервером.


Процедурный и объектно-ориентированный интерфейс

Расширение mysqli предоставляет двойной интерфейс программисту. Поддерживаются как процедурная, так и объектно-ориентированная парадигмы программирования.

Пользователи, переходящие со старого mysql расширения, возможно, предпочтут процедурный интерфейс. Он весьма схож с интерфейсом старого расширения, и во многих случаях функции отличаются только префиксом в имени. Некоторые mysqli функции принимают дескриптор соединения первым аргументом, в отличие от соответствующих им функций старого расширения, которые принимают его в качестве последнего необязательного аргумента.

Пример #1 Простота перехода со старого mysql расширения

<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
$res = mysqli_query($mysqli, "SELECT 'Пожалуйста, не используйте ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];

$mysql = mysql_connect("example.com", "user", "password");
mysql_select_db("test");
$res = mysql_query("SELECT 'расширение mysql в новых проектах.' AS _msg FROM DUAL", $mysql);
$row = mysql_fetch_assoc($res);
echo $row['_msg'];
?>

Результат выполнения данного примера:

Пожалуйста, не используйте расширение mysql в новых проектах.

Объектно-ориентированный интерфейс

В дополнение к процедурному пользователи могут использовать объектно-ориентированный интерфейс. Документация заточена именно под объектный интерфейс. Объектно-ориентированный интерфейс предлагает функции сгруппированные по цели их применения, что облегчает их поиск и освоение. Тем не менее, в практических примерах к функциям приводится код для обеих парадигм.

Каких-либо принципиальных отличий в производительности между интерфейсами нет. Пользователи вольны в выборе интерфейса, основываясь на личных предпочтениях.

Пример #2 Объектно-ориентированный и процедурный интерфейсы

<?php
$mysqli = mysqli_connect("example.com", "user", "password", "database");
if (mysqli_connect_errno($mysqli)) {
    echo "Не удалось подключиться к MySQL: " . mysqli_connect_error();
}

$res = mysqli_query($mysqli, "SELECT 'A world full of ' AS _msg FROM DUAL");
$row = mysqli_fetch_assoc($res);
echo $row['_msg'];

$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: " . $mysqli->connect_error;
}

$res = $mysqli->query("SELECT 'choices to please everybody.' AS _msg FROM DUAL");
$row = $res->fetch_assoc();
echo $row['_msg'];
?>

Результат выполнения данного примера:

A world full of choices to please everybody.

Примеры в этом руководстве будут написаны в объектном стиле в виду того, что объектному подходу отдавалось предпочтение при создании документации.

Смешивание стилей

Переключаться между стилями программирования можно сколь угодно часто и в любое время, однако делать этого не рекомендуется, так как это ухудшает читаемость кода и затрудняет его поддержку.

Пример #3 Плохой стиль программирования

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: " . $mysqli->connect_error;
}

$res = mysqli_query($mysqli, "SELECT 'Этот код работает, но лучше так не писать.' AS _msg FROM DUAL");
if (!$res) {
    echo "Не удалось выполнить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if ($row = $res->fetch_assoc()) {
    echo $row['_msg'];
}
?>

Результат выполнения данного примера:

Этот код работает, но лучше так не писать.

См. также

  • mysqli::__construct()
  • mysqli::query()
  • mysqli_result::fetch_assoc()
  • $mysqli::connect_errno
  • $mysqli::connect_error
  • $mysqli::errno
  • $mysqli::error
  • Общее описание функций расширения MySQLi


Соединения

Сервер MySQL поддерживает различные способы передачи данных. Соединения могут использовать TCP/IP протоколы, сокеты Unix доменов или именованные пайпы Windows.

Имя хоста localhost имеет специальное назначение. Оно используется только в сокетах Unix доменов. Невозможно открыть TCP/IP соединение, используя в качестве имени хоста localhost. Вместо него нужно задать 127.0.0.1.

Пример #1 Специальное назначение localhost

<?php
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
echo $mysqli->host_info . "\n";

$mysqli = new mysqli("127.0.0.1", "user", "password", "database", 3306);
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

echo $mysqli->host_info . "\n";
?>

Результат выполнения данного примера:

Localhost via UNIX socket
127.0.0.1 via TCP/IP

Умолчания для параметров соединений

В зависимости от функции, осуществляющей подключение, какие-то параметры можно не задавать. Если параметр не задан, расширение попытается использовать значение по умолчанию для этого параметра, которое задано в конфигурационном файле PHP.

Пример #2 Задание значений по умолчанию

mysqli.default_host=192.168.2.27
mysqli.default_user=root
mysqli.default_pw=""
mysqli.default_port=3306
mysqli.default_socket=/tmp/mysql.sock

Далее, чтобы установить соединение, функция передает параметры в клиентскую библиотеку, которой пользуется расширение. Если библиотека обнаружит пустые или отсутствующие параметры, она может подставить вместо них свои встроенные значения по умолчанию.

Встроенные библиотечные умолчания для параметров соединения

Если имя хоста не задано или передана пустая строка, клиентская библиотека использует для подключения к Unix сокету хоста localhost. Если сокет не задан или передана пустая строка, и при этом запрошено подключение к Unix сокету, библиотека попытается подключиться к сокету /tmp/mysql.sock.

В Windows системах, если в качестве имени хоста передается ., библиотека попытается открыть соединение на основе именованного пайпа. В этом случае имя сокета будет воспринято, как имя пайпа. Если имя сокета не задано, то будет использовано значение \\.\pipe\MySQL.

Если соединение не использует ни сокет Unix домена, ни именованный пайп Windows, и при этом не задан порт для подключения, библиотека использует номер порта 3306.

В драйвере mysqlnd и Клиентской библиотеке MySQL (libmysqlclient) заложена та же логика определения умолчаний.

Настройки соединения

Настройки соединения позволяют, например, задать какие-то команды, которые нужно выполнить сразу после подключения, или отдать распоряжение использовать определенный набор символов. Настройки должны быть заданы до подключения к серверу.

Когда требуется задать настройки соединения, операция подключения выполняется в три этапа: функцией mysqli_init() создается дескриптор подключения, затем подключение настраивается с помощью функции mysqli_options(), и наконец устанавливается сетевое соединение с сервером посредством функции mysqli_real_connect().

Объединение подключений в пул

Расширение mysqli поддерживает постоянные соединения с базой данных, которые представляют из себя специальный вид объединяемых соединений. По умолчанию, каждое открытое скриптом соединение закрывается либо самим скриптом в ходе выполнения, либо автоматически по завершении работы скрипта. Постоянные соединения отличаются тем, что не закрываются, а помещаются в пул для повторного использования в дальнейшем. Если требуется подключиться к тому же серверу и базе данных, с тем же именем пользователя, паролем, сокетом и портом, то вместо создания нового подключения из пула извлекается уже существующее. Повторное использование подключений позволяет избежать накладных расходов на создание новых соединений.

Каждый PHP процесс использует свой пул подключений mysqli. В зависимости от конфигурации веб-сервера, PHP процесс может обслуживать один или несколько запросов. Соответственно, соединение из пула могут последовательно использовать несколько скриптов.

Постоянное соединение

Новое подключение создается, только если в пуле не найдется свободного подключения с теми же данными хоста, имени пользователя, пароля, сокета, порта и базы данных по умолчанию. Механизм постоянных соединений можно включать и выключать PHP директивой mysqli.allow_persistent. Максимальное количество соединений, которые может открыть скрипт, ограничено значением mysqli.max_links. Максимальное количество соединений, которые может открыть один PHP процесс, ограничено значением mysqli.max_persistent. Следует заметить, что веб-сервер может порождать множество PHP процессов.

Главный недостаток постоянных подключений заключается в том, что перед повторным использованием их состояние не сбрасывается к изначальному. Например, открытые и незавершенные транзакции не будут автоматически откатываться. Также, если во время нахождения соединения в пуле для процесса изменились какие-либо разрешения или уровни доступа, этот факт никак не отразится на подключении при его извлечении из пула. Такое поведение может привести к нежелательным результатам. Хотя, с другой стороны, название постоянный можно рассматривать, как обещание, что подключение и правда останется в том состоянии, в котором оно было помещено в пул.

Расширение mysqli поддерживает обе интерпретации термина постоянное соединение: состояние соединения может сохраняться, а может и сбрасываться в изначальное. По умолчанию, при извлечении из пула соединение сбрасывается. mysqli делает это неявным вызовом функции mysqli_change_user() каждый раз, когда подключение используется повторно. С точки зрения пользователя подключение выглядит, как только что созданное.

Однако, вызов функции mysqli_change_user() довольно дорогостоящая операция. Для улучшения быстродействия можно перекомпилировать расширение с установленным флагом MYSQLI_NO_CHANGE_USER_ON_PCONNECT.

Выбор между безопасным поведением подключений и наилучшим быстродействием остается за пользователем. Здесь нельзя дать однозначного совета. Для простоты использования, по умолчанию включен безопасный режим с очисткой соединений.

См. также

  • mysqli::__construct()
  • mysqli::init()
  • mysqli::options()
  • mysqli::real_connect()
  • mysqli::change_user()
  • $mysqli::host_info
  • Настройки конфигурации MySQLi
  • Постоянные соединения с базами данных


Выполнение запросов

За выполнение запросов отвечают функции mysqli_query(), mysqli_real_query() и mysqli_multi_query(). Чаще всего применяется функция mysqli_query(), так как она выполняет сразу две задачи: выполняет запрос и буферизует на клиенте результат этого запроса (если он есть). Вызов mysqli_query() идентичен последовательному вызову функций mysqli_real_query() и mysqli_store_result().

Пример #1 Подключение к MySQL

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Буферизация результатов запроса

После выполнения запроса его результаты можно целиком буферизовать на клиенте, либо читать построчно с сервера. Буферизация на клиенте позволяет серверу как можно быстрее освобождать занятые запросом ресурсы. Построчное же чтение и дальнейшая обработка результатов клиентом довольно медленный процесс. Поэтому рекомендуется использовать буферизацию результирующих наборов. Функция mysqli_query() совмещает в себе операции выполнения запроса и буферизации результирующего набора.

PHP приложения могут свободно оперировать данными внутри буферизованных результирующих наборов. Быстрая навигация по строкам наборов обусловлена тем, что наборы полностью располагаются в памяти клиента. Следует помнить, что зачастую обработка результатов на клиенте проще, нежели средствами сервера.

Пример #2 Навигация по строкам буферизованной результирующей таблицы

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id FROM test ORDER BY id ASC");

echo "Обратный порядок...\n";
for ($row_no = $res->num_rows - 1; $row_no >= 0; $row_no--) {
    $res->data_seek($row_no);
    $row = $res->fetch_assoc();
    echo " id = " . $row['id'] . "\n";
}

echo "Исходный порядок строк...\n";
$res->data_seek(0);
while ($row = $res->fetch_assoc()) {
    echo " id = " . $row['id'] . "\n";
}
?>

Результат выполнения данного примера:

Обратный порядок...
 id = 3
 id = 2
 id = 1
Исходный порядок строк...
 id = 1
 id = 2
 id = 3

Небуферизуемые результирующие наборы

Если клиентские ресурсы ограничены, и в тоже время не требуется поддерживать низкую нагрузку на сервер, можно использовать не буферизованные результирующие наборы. Навигация по таким таблицам невозможна, потому что так или иначе должны быть обработаны все строки набора.

Пример #3 Навигация по строкам не буферизованной результирующей таблицы

<?php
$mysqli->real_query("SELECT id FROM test ORDER BY id ASC");
$res = $mysqli->use_result();

echo "Порядок строк в результирующем наборе...\n";
while ($row = $res->fetch_assoc()) {
    echo " id = " . $row['id'] . "\n";
}
?>

Типы данных значений в результирующей таблице

Функции mysqli_query(), mysqli_real_query() и mysqli_multi_query() предназначены для выполнения не подготавливаемых запросов. На уровне протокола клиент-серверного взаимодействия MySQL за выполнение запросов отвечают команда COM_QUERY и текстовый протокол. Когда используется текстовый протокол, сервер MySQL перед отправкой клиенту преобразует все данные в результирующем наборе в текстовые строки. Это преобразование выполняется вне зависимости от типа данных SQL столбца результирующей таблицы. Клиентские библиотеки mysql, в свою очередь, получают все данные, принимая их за строки. На клиенте не проводится никакого обратного преобразования к исходным типам, все данные, полученные приложением остаются PHP строками.

Пример #4 Текстовый протокол по умолчанию возвращает строки

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

Результат выполнения данного примера:

id = 1 (string)
label = a (string)

Если используется библиотека mysqlnd, можно включить преобразование целочисленных значений и чисел с плавающей запятой из столбцов таблицы в PHP числа. Делается это заданием настройки подключения MYSQLI_OPT_INT_AND_FLOAT_NATIVE. В таком случае mysqlnd будет проверять метаданные столбцов и преобразовывать SQL числа этих полей в PHP числа, если эти значения не выходят за рамки допустимых диапазонов типов данных PHP. То есть, например, SQL INT число попадет в PHP приложение в виде целого (integer).

Пример #5 Получение исходных типов данных в приложении

<?php
$mysqli = mysqli_init();
$mysqli->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
$mysqli->real_connect("example.com", "user", "password", "database");

if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

$res = $mysqli->query("SELECT id, label FROM test WHERE id = 1");
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

Результат выполнения данного примера:

id = 1 (integer)
label = a (string)

См. также

  • mysqli::__construct()
  • mysqli::init()
  • mysqli::options()
  • mysqli::real_connect()
  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::use_result()
  • mysqli::store_result()
  • mysqli_result::free()


Подготавливаемые запросы

СУБД MySQL поддерживает подготавливаемые запросы. Подготавливаемые (или параметризованные) запросы используются для повышения эффективности, когда один запрос выполняется многократно.

Принцип работы

Выполнение подготавливаемого запроса проводится в два этапа: подготовка и исполнение. На этапе подготовки на сервер посылается шаблон запроса. Сервер выполняет синтаксическую проверку этого шаблона, строит план выполнения запроса и выделяет под него ресурсы.

MySQL сервер поддерживает неименованные, или позиционные, псевдопеременные ?.

Пример #1 Первый этап: подготовка

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

/* обычный запрос */
if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

/* подготавливаемый запрос, первая стадия: подготовка */
if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

За подготовкой идет выполнение. Во время запуска запроса клиент привязывает к псевдопеременным реальные значения и посылает их на сервер. Сервер, в свою очередь, подставляет их в шаблон и запускает уже готовый запрос на выполнение.

Пример #2 Второй этап: привязка параметров и выполнение

<?php
/* подготавливаемый запрос, вторая стадия: привязка и выполнение */
$id = 1;
if (!$stmt->bind_param("i", $id)) {
    echo "Не удалось привязать параметры: (" . $stmt->errno . ") " . $stmt->error;
}

if (!$stmt->execute()) {
    echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}
?>

Повторное выполнение запроса

Подготовленный запрос можно запускать многократно. Перед каждым запуском значения привязанных переменных будут передаваться на сервер и подставляться в текст запроса. Сам текст запроса повторно не анализируется, равно как и не отсылается повторно шаблон.

Пример #3 Выражение INSERT один раз подготавливается, а затем многократно выполняется

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

/* обычный запрос */
if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

/* подготавливаемый запрос, первая стадия: подготовка */
if (!($stmt = $mysqli->prepare("INSERT INTO test(id) VALUES (?)"))) {
     echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

/* подготавливаемый запрос, вторая стадия: привязка и выполнение */
$id = 1;
if (!$stmt->bind_param("i", $id)) {
    echo "Не удалось привязать параметры: (" . $stmt->errno . ") " . $stmt->error;
}

if (!$stmt->execute()) {
    echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}

/* подготавливаемый запрос: повторные выполнения, на сервер передаются только значения переменных */
for ($id = 2; $id < 5; $id++) {
    if (!$stmt->execute()) {
        echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
    }
}

/* рекомендуется явно закрывать запросы */
$stmt->close();

/* обычный запрос */
$res = $mysqli->query("SELECT id FROM test");
var_dump($res->fetch_all());
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [3]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}

Каждый подготавливаемый запрос использует ресурсы сервера. Если запрос больше не нужен, его необходимо сразу закрыть. Если не сделать этого явно, запрос закроется сам, но только когда PHP освободит его дескриптор, как правило это происходит при выходе запроса из области видимости или при завершении работы скрипта.

Использование подготавливаемых запросов не всегда приводит к повышению эффективности. Если параметризованный запрос запускается лишь раз, это приводит к большему количеству клиент-серверных обменов данными, нежели при выполнении простого запроса. Именно по этой причине в примере выше выражение SELECT выполнялось, как обычный запрос.

Также, имеет смысл рассмотреть SQL синтаксис вставки множества значений в выражении INSERT. В примере выше мультивставка (значения для вставки перечисляются через запятую) в предложении INSERT обошлась бы дешевле, чем подготовленный запрос.

Пример #4 Меньше обменов данными при использовании мультивставок SQL

<?php
if (!$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3), (4)")) {
    echo "Не удалось выполнить множественную вставку: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Типы данных значений в результирующей таблице

В протоколе клиент-серверного взаимодействия MySQL для обычных и подготавливаемых запросово пределены разные протоколы передачи данных клиенту. Параметризованные запросы используют так называемый двоичный протокол. Сервер MySQL посылает результирующий набор клиенту "как есть" в двоичном формате. Данные в таблице не преобразуются в текст. Соответственно, клиентские библиотеки, получив двоичные данные, пытаются привести их к подходящим типам данных PHP. Например, столбец результатов запроса типа SQL INT PHP примет и преобразует в тип integer.

Пример #5 Исходные типы данных

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

$stmt = $mysqli->prepare("SELECT id, label FROM test WHERE id = 1");
$stmt->execute();
$res = $stmt->get_result();
$row = $res->fetch_assoc();

printf("id = %s (%s)\n", $row['id'], gettype($row['id']));
printf("label = %s (%s)\n", $row['label'], gettype($row['label']));
?>

Результат выполнения данного примера:

id = 1 (integer)
label = a (string)

Такое поведение не характерно для обычных запросов, которые по умолчанию все результаты возвращают в виде текстовых строк. Это умолчание можно изменить, настроив соединение соответствующим образом. После такой настройки разницы между данными подготавливаемого и обычного запросов уже не будет.

Получение результатов запроса с привязкой переменных

Результаты из подготовленного запроса можно получить либо привязав выходные переменные, либо запросив объект mysqli_result.

Выходные параметры нужно привязывать после выполнения запроса. Каждому столбцу результирующей таблицы должна соответствовать ровно одна переменная.

Пример #6 Привязка переменных к результату запроса

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Не удалось выполнить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

$out_id    = NULL;
$out_label = NULL;
if (!$stmt->bind_result($out_id, $out_label)) {
    echo "Не удалось привязать выходные параметры: (" . $stmt->errno . ") " . $stmt->error;
}

while ($stmt->fetch()) {
    printf("id = %s (%s), label = %s (%s)\n", $out_id, gettype($out_id), $out_label, gettype($out_label));
}
?>

Результат выполнения данного примера:

id = 1 (integer), label = a (string)

Объекты подготавливаемых запросов по умолчанию возвращают не буферизованные результирующие наборы. Эти таблицы никаким неявным образом не переносятся на клиента, они остаются на сервере, занимая его ресурсы, пока клиентский процесс самостоятельно не извлечет все данные. Если клиент не может извлечь данные результирующего набора, или после закрытия объекта запроса остаются невыбранными какие-то данные, то на mysqli ложится ответственность неявно подчистить этот мусор за клиентским процессом.

Также можно буферизовать данные результирующих таблиц подготовленного запроса с помощью функции mysqli_stmt_store_result().

Извлечение результатов запроса посредством mysqli_result интерфейса

Вместо использования привязки переменных к результатам запроса, результирующие таблицы можно извлекать средствами mysqli_result интерфейса. Функция mysqli_stmt_get_result() возвращает буферизованный результирующий набор строк.

Пример #7 Использование mysqli_result для выборки результатов запроса

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test ORDER BY id ASC"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
     echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}

if (!($res = $stmt->get_result())) {
    echo "Не удалось получить результат: (" . $stmt->errno . ") " . $stmt->error;
}

var_dump($res->fetch_all());
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  array(2) {
    [0]=>
    int(1)
    [1]=>
    string(1) "a"
  }
}

Использование mysqli_result interface имеет дополнительное преимущество в том, что буферизация результирующих таблиц на клиенте предлагает гибкую систему навигации по этим таблицам.

Пример #8 Буферизация результирующего набора для удобства чтения данных

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT, label CHAR(1))") ||
    !$mysqli->query("INSERT INTO test(id, label) VALUES (1, 'a'), (2, 'b'), (3, 'c')")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("SELECT id, label FROM test"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
     echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}

if (!($res = $stmt->get_result())) {
    echo "Не удалось получить результат: (" . $stmt->errno . ") " . $stmt->error;
}

for ($row_no = ($res->num_rows - 1); $row_no >= 0; $row_no--) {
    $res->data_seek($row_no);
    var_dump($res->fetch_assoc());
}
$res->close();
?>

Результат выполнения данного примера:

array(2) {
  ["id"]=>
  int(3)
  ["label"]=>
  string(1) "c"
}
array(2) {
  ["id"]=>
  int(2)
  ["label"]=>
  string(1) "b"
}
array(2) {
  ["id"]=>
  int(1)
  ["label"]=>
  string(1) "a"
}

Экранирование и SQL инъекции

Значения привязанных к запросу переменных сервер экранирует автоматически. Серверу необходима подсказка в виде указания типов привязываемых переменных, чтобы правильно преобразовать их значения. Дополнительную информацию см. в описании функции mysqli_stmt_bind_param(). Привязанные переменные отправляются на сервер отдельно от запроса и таким образом не могут влиять на него. Сервер использует эти значения непосредственно в момент выполнения, уже после того, как был обработан шаблон выражения. Привязанные параметры не нуждаются в экранировании, так как они никогда не подставляются непосредственно в строку запроса. Необходимо отправлять тип привязанной переменной на сервер, чтобы определить соответствующее преобразование. Смотрите функцию mysqli_stmt_bind_param() для получения большей информации.

Такое разделение часто считается единственным способом обезопаситься от SQL-инъекции, но на самом деле такого же уровня безопасности можно добиться и с не подготовленными выражениями, если правильно отформатировать все значения. Важно отметить, что правильное форматирование - не то же самое, что и экранирование, и включает в себя больше логики. Таким образом, подготовленные выражения - просто более удобный и менее подверженный ошибкам способ для достижения такой безопасности базы данных.

Эмуляция подготовленного запроса на клиенте

В API нет возможности эмулировать подготавливаемые запросы на клиенте.

Сравнение обычного и подготавливаемого запросов

В таблице ниже приведено сравнение обычного и подготовленного на сервере запросов.

Сравнение подготовленных и не-подготовленных выражений
 | Подготовленный запрос | Обычный запрос
Количество обращений к серверу, SELECT, однократное выполнение | 2 | 1
Количество строк с текстом запроса, переданных клиентом на сервер | 1 | 1
Количество обращений к серверу, SELECT, n-кратное выполнение | 1 + n | n
Количество строк с текстом запроса, переданных клиентом на сервер | 1 шаблон, n раз параметры, если есть | n раз весь текст вместе с параметрами, если они есть
Привязка входных параметров средствами API | Есть, автоматическое экранирование значений параметров | Нет, параметры экранируются вручную
Привязка выходных параметров средствами API | Есть | Нет
Поддерживает использование API mysqli_result | Да, используется mysqli_stmt_get_result() | Да
Буферизация результирующих наборов | Есть, можно использовать функцию mysqli_stmt_get_result() или mysqli_stmt_store_result() | Есть, это умолчание для mysqli_query()
Работа с не буферизованными результирующими наборами | Возможна, используется привязка выходных параметров с помощью API | Возможна, используется функция mysqli_real_query() совместно с mysqli_use_result()
Способ передачи данных протокола клиент-серверного взаимодействия MySQL | Двоичный протокол | Текстовый протокол
SQL типы значений результирующего набора | Сохраняются при извлечении | Преобразовываются в строки или сохраняются при извлечении
Поддерживает все SQL выражения | Последние версии MySQL поддерживают большинство, но не все | Да

См. также

  • mysqli::__construct()
  • mysqli::query()
  • mysqli::prepare()
  • mysqli_stmt::prepare()
  • mysqli_stmt::execute()
  • mysqli_stmt::bind_param()
  • mysqli_stmt::bind_result()


Хранимые процедуры

СУБД MySQL поддерживает хранимые процедуры. Под этим термином понимается последовательность операций, хранящаяся как единое целое в каталоге базы данных на сервере. Приложения могут вызывать и запускать хранимые процедуры. Для запуска хранимой процедуры используется SQL выражение CALL.

Параметры

Хранимые процедуры могут иметь IN, INOUT и OUT параметры в зависимости от версии MySQL. Интерфейс mysqli не делает различий между этими типами параметров.

Параметр IN

Входные параметры указываются внутри предложения CALL. При передаче входных параметров важно убедиться, что их значения корректно экранированы.

Пример #1 Вызов хранимой процедуры

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query("CREATE PROCEDURE p(IN id_val INT) BEGIN INSERT INTO test(id) VALUES(id_val); END;")) {
    echo "Не удалось создать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("CALL p(1)")) {
    echo "Не удалось вызвать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($res = $mysqli->query("SELECT id FROM test"))) {
    echo "Запрос SELECT потерпел неудачу: (" . $mysqli->errno . ") " . $mysqli->error;
}

var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

array(1) {
  ["id"]=>
  string(1) "1"
}

Параметр INOUT/OUT

Значения INOUT/OUT параметров доступны через переменные сессии.

Пример #2 Использование переменных сессии

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p(OUT msg VARCHAR(50)) BEGIN SELECT "Hi!" INTO msg; END;')) {
    echo "Не удалось создать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("SET @msg = ''") || !$mysqli->query("CALL p(@msg)")) {
    echo "Не удалось вызвать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($res = $mysqli->query("SELECT @msg as _p_out"))) {
    echo "Получить данные не удалось: (" . $mysqli->errno . ") " . $mysqli->error;
}

$row = $res->fetch_assoc();
echo $row['_p_out'];
?>

Результат выполнения данного примера:

Hi!

Разработчики приложений и фреймворков могут предоставить более удобный API, в котором наряду с сессионными переменными используется просмотр каталогов базы данных напрямую. Однако, стоит учитывать, что такой подход снижает быстродействие.

Обработка результирующих наборов

Хранимые процедуры могут возвращать результирующие наборы строк. Таблицы результатов работы хранимой процедуры нельзя корректно извлечь средствами mysqli_query(). Функция mysqli_query() выполняет две операции: запускает запрос и извлекает первый результирующий набор, помещая его в буфер. Хранимые процедуры могут возвращать более одного результирующего набора, но при использовании mysqli_query() все они, кроме первого, станут недоступны пользователю.

Результирующие таблицы хранимых процедур извлекаются функциями mysqli_real_query() или mysqli_multi_query(). Обе функции позволяют получить любое количество результирующих наборов, возвращенных SQL запросами, таких как CALL. Если в процессе работы не удается извлечь все доступные результаты вызова хранимой процедуры, будет вызываться ошибка.

Пример #3 Извлечение результатов работы хранимой процедуры

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;')) {
    echo "Не удалось создать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->multi_query("CALL p()")) {
    echo "Не удалось вызвать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

do {
    if ($res = $mysqli->store_result()) {
        printf("---\n");
        var_dump($res->fetch_all());
        $res->free();
    } else {
        if ($mysqli->errno) {
            echo "Не удалось получить результат на клиенте: (" . $mysqli->errno . ") " . $mysqli->error;
        }
    }
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Результат выполнения данного примера:

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}

Использование подготавливаемых запросов

Специальных средств для извлечения данных при использовании подготавливаемых запросов не требуется. Интерфейсы подготавливаемых и обычных запросов одинаковы. Однако, нужно учитывать, что не все версии MYSQL поддерживают подготовку в запросе SQL выражения CALL.

Пример #4 Хранимые процедуры и подготавливаемые запросы

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$mysqli->query("DROP PROCEDURE IF EXISTS p") ||
    !$mysqli->query('CREATE PROCEDURE p() READS SQL DATA BEGIN SELECT id FROM test; SELECT id + 1 FROM test; END;')) {
    echo "Не удалось создать хранимую процедуру: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!($stmt = $mysqli->prepare("CALL p()"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}

do {
    if ($res = $stmt->get_result()) {
        printf("---\n");
        var_dump(mysqli_fetch_all($res));
        mysqli_free_result($res);
    } else {
        if ($stmt->errno) {
            echo "Не удалось получить результат на клиенте: (" . $stmt->errno . ") " . $stmt->error;
        }
    }
} while ($stmt->more_results() && $stmt->next_result());
?>

Само собой, поддерживается привязка результатов к объекту запроса.

Пример #5 Хранимые процедуры и подготавливаемые запросы с использованием привязки результатов

<?php
if (!($stmt = $mysqli->prepare("CALL p()"))) {
    echo "Не удалось подготовить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

if (!$stmt->execute()) {
    echo "Не удалось выполнить запрос: (" . $stmt->errno . ") " . $stmt->error;
}

do {

    $id_out = NULL;
    if (!$stmt->bind_result($id_out)) {
        echo "Не удалось связать результат с объектом запроса: (" . $stmt->errno . ") " . $stmt->error;
    }

    while ($stmt->fetch()) {
        echo "id = $id_out\n";
    }
} while ($stmt->more_results() && $stmt->next_result());
?>

См. также

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli_result::next-result()
  • mysqli_result::more-results()


Множественные запросы

MySQL поддерживает наличие нескольких SQL предложений в тексте одного запроса. Пересылка на сервер нескольких выражений в одном запроса уменьшает количество клиент-серверных взаимодействий, но требует специальной обработки.

Множественные запросы, или мультизапросы, должны запускаться функцией mysqli_multi_query(). Отдельные SQL предложения в мультизапросе отделяются точкой с запятой. После выполнения мультизапроса все результирующие наборы, которые он вернул, необходимо извлечь.

MySQL сервер поддерживает наличие в одном мультизапросе подзапросов, как возвращающих результирующий набор, так и не возвращающих.

Пример #1 Множественные запросы

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

if (!$mysqli->query("DROP TABLE IF EXISTS test") || !$mysqli->query("CREATE TABLE test(id INT)")) {
    echo "Не удалось создать таблицу: (" . $mysqli->errno . ") " . $mysqli->error;
}

$sql = "SELECT COUNT(*) AS _num FROM test; ";
$sql.= "INSERT INTO test(id) VALUES (1); ";
$sql.= "SELECT COUNT(*) AS _num FROM test; ";

if (!$mysqli->multi_query($sql)) {
    echo "Не удалось выполнить мультизапрос: (" . $mysqli->errno . ") " . $mysqli->error;
}

do {
    if ($res = $mysqli->store_result()) {
        var_dump($res->fetch_all(MYSQLI_ASSOC));
        $res->free();
    }
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  array(1) {
    ["_num"]=>
    string(1) "0"
  }
}
array(1) {
  [0]=>
  array(1) {
    ["_num"]=>
    string(1) "1"
  }
}

Рассмотрение аспектов безопасности

Функции API mysqli_query() и mysqli_real_query() во время работы не устанавливают на сервере специальный флаг, необходимый для выполнения мультизапросов. Отдельная API функция для мультизапросов позволяет снизить вероятность случайных SQL инъекций. Злоумышленник может попытаться добавить в конец запроса выражения, вроде ; DROP DATABASE mysql или ; SELECT SLEEP(999). Если ему это удастся, но не будет использоваться функция mysqli_multi_query, сервер не выполнит второе внедренное и опасное SQL выражение.

Пример #2 SQL инъекция

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
$res    = $mysqli->query("SELECT 1; DROP TABLE mysql.user");
if (!$res) {
    echo "Ошибка при выполнении запроса: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Результат выполнения данного примера:

Ошибка при выполнении запроса: (1064) You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax
to use near 'DROP TABLE mysql.user' at line 1

Подготавливаемые запросы

Использование множества выражений в подготавливаемом запросе не поддерживается.

См. также

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli_result::next-result()
  • mysqli_result::more-results()


API поддержка транзакций

Поддержка транзакций в СУБД MySQL зависит от используемого движка хранилища данных. Начиная с MySQL 5.5, по умолчанию используется движок InnoDB. InnoDB полностью поддерживает ACID модель транзакций.

Транзакциями можно управлять как средствами SQL, так и вызовами API функций. Для включения и выключения режима автофиксации изменений рекомендуется пользоваться API функциями.

Пример #1 Установка режима автофиксации средствами SQL и функциями API

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

/* Рекомендуется управлять настройками транзакций средствами API */
$mysqli->autocommit(false);

/* Не будет распознаваться и учитываться плагинами репликации и балансировки нагрузки */
if (!$mysqli->query('SET AUTOCOMMIT = 0')) {
    echo "Не удалось выполнить запрос: (" . $mysqli->errno . ") " . $mysqli->error;
}
?>

Дополнительные службы сервера, такие как плагины репликации и балансировки нагрузки, могут отслеживать вызовы API функций. Плагин репликации может сообщать балансировщику нагрузки о запущенной транзакции, если эта транзакция обслуживается API функциями. Сервер не сможет распределять нагрузку между репликами базы, если смена режима автофиксации, фиксация и откат транзакций осуществляются SQL запросами.

Пример #2 Фиксация и откат

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
$mysqli->autocommit(false);

$mysqli->query("INSERT INTO test(id) VALUES (1)");
$mysqli->rollback();

$mysqli->query("INSERT INTO test(id) VALUES (2)");
$mysqli->commit();
?>

Следует заметить, что сервер MySQL не может откатить результаты всех запросов. Некоторые изменения фиксируются неявно.

См. также

  • mysqli::autocommit()
  • mysqli_result::commit()
  • mysqli_result::rollback()


Метаданные

Результирующий набор MySQL содержит метаданные. Эти данные описывают столбцы результирующей таблицы. Все сведения, которые передает MySQL, доступны через mysqli интерфейс. Расширение не изменяет получаемые данные, либо эти изменения незначительны. Различия между версиями MySQL также можно не принимать во внимание.

Метаданные доступны через mysqli_result интерфейс.

Пример #1 Доступ к метаданным результирующей таблицы

<?php
$mysqli = new mysqli("example.com", "user", "password", "database");
if ($mysqli->connect_errno) {
    echo "Не удалось подключиться к MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}

$res = $mysqli->query("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
var_dump($res->fetch_fields());
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  object(stdClass)#3 (13) {
    ["name"]=>
    string(4) "_one"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(1)
    ["length"]=>
    int(1)
    ["charsetnr"]=>
    int(63)
    ["flags"]=>
    int(32897)
    ["type"]=>
    int(8)
    ["decimals"]=>
    int(0)
  }
  [1]=>
  object(stdClass)#4 (13) {
    ["name"]=>
    string(4) "_two"
    ["orgname"]=>
    string(0) ""
    ["table"]=>
    string(0) ""
    ["orgtable"]=>
    string(0) ""
    ["def"]=>
    string(0) ""
    ["db"]=>
    string(0) ""
    ["catalog"]=>
    string(3) "def"
    ["max_length"]=>
    int(5)
    ["length"]=>
    int(5)
    ["charsetnr"]=>
    int(8)
    ["flags"]=>
    int(1)
    ["type"]=>
    int(253)
    ["decimals"]=>
    int(31)
  }
}

Подготавливаемые запросы

Метаданные результирующих наборов, полученных в результате выполнения подготовленных запросов, можно получить аналогичным образом. Подходящий дескриптор mysqli_result можно получить функцией mysqli_stmt_result_metadata().

Пример #2 Prepared statements metadata

<?php
$stmt = $mysqli->prepare("SELECT 1 AS _one, 'Hello' AS _two FROM DUAL");
$stmt->execute();
$res = $stmt->result_metadata();
var_dump($res->fetch_fields());
?>

См. также

  • mysqli::query()
  • mysqli_result::fetch_fields()


Требования

Чтобы эти функции были доступны, PHP должен быть собран с поддержкой расширения mysqli.

Замечание:

Расширение mysqli разработано для работы с MySQL версии 4.1.3 и выше или 5.0.7 и выше. Для работы с более старыми версиями, обратитесь к документации расширения MySQL.


Установка

Расширение mysqli было представлено с версией PHP 5.0.0. MySQL Native Driver был включен в PHP версии 5.3.0.

Установка для Linux

Большинство дистрибутивов Unix включает бинарные версии PHP, которые в дальнейшем могут быть установлены. Несмотря на то, что бинарные версии, как правило, собраны с включенной поддержкой расширений MySQL, может потребоваться установка дополнительных пакетов с библиотеками расширений. Убедитесь, что менеджер пакетов, идущий с выбранным дистрибутивом, позволяет установить такие пакеты.

К примеру, на Ubuntu пакет php5-mysql устанавливает расширения ext/mysql, ext/mysqli, и pdo_mysql. На CentOS, пакет php-mysql так же их устанавливает.

Конечно, вы всегда можете собрать PHP из исходного кода. Сборка PHP из исходного кода позволяет выделить только те расширения MySQL (а также клиентские библиотеки для каждого из расширений), которые требуется использовать.

Рекомендуется использовать библиотеку MySQL Native Driver, в результате повышается производительность и имеется доступ к функциям, недоступным при использовании MySQL Client Library. См. Что такое MySQL Native Driver в PHP? для ознакомления с возможностями MySQL Native Driver.

Под /path/to/mysql_config подразумевается расположение программы mysql_config, поставляемой вместе с MySQL Server.

Вспомогательная таблица времени компиляции mysqli
Версия PHP | По умолчанию | Опции настройки: mysqlnd | Опции настройки: libmysqlclient | Список изменений
5.4.x и выше | mysqlnd | --with-mysqli | --with-mysqli=/path/to/mysql_config | по умолчанию mysqlnd
5.3.x | libmysqlclient | --with-mysqli=mysqlnd | --with-mysqli=/path/to/mysql_config | mysqlnd поддерживается
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Недоступно | --with-mysqli=/path/to/mysql_config | mysqlnd не поддерживается

Необходимо отметить, что существует возможность свободно перемешивать расширения MySQL и клиентские библиотеки. Например, можно активировать расширение MySQL, позволяющее использовать MySQL Client Library (libmysqlclient), и при этом настроить расширение mysqli для использования MySQL Native Driver. Таким образом, возможны любые перестановки расширений и клиентских библиотек.

Установка для Windows

Для Windows PHP в большинстве случаев устанавливается с помощью установщика.

PHP 5.3.0 and newer

В Windows, для PHP версии 5.3 и выше, расширение mysqli разрешено и использует MySQL Native Driver по умолчанию. Это означает, что вам не нужно париться, настраивая доступ кlibmysql.dll.

PHP 5.0, 5.1, 5.2

Для старых, неподдерживаемых версий PHP (PHP 5.2 не поддерживается с 6 января 2011 года), необходимо произвести настройку для включения расширения mysqli и определения используемой им клиентской библиотеки.

Расширение mysqli не включено по умолчанию, а следовательно в php.ini необходимо указать файл DLL php_mysqli.dll. Для этого вам необходимо найти файл php.ini (обычно расположен в c:\php) и убедиться, что вы сняли знак комментирования (";") в начале строки extension=php_mysqli.dll, в разделе [PHP_MYSQLI].

Также, если вы хотите использовать MySQL Client Library с mysqli, то вам необходимо убедиться, что PHP может получить доступ к файлу клиентской библиотеки. MySQL Client Library включен в дистрибутив Windows PHP в виде файла libmysql.dll. Этот файл должен быть доступен в переменной окружения Windows PATH для того, чтобы его можно было успешно загрузить. По ссылке "Как мне добавить мою PHP директорию в Windows PATH" находится статья с информацией о том, как это сделать. Если системная директория Windows прописана в PATH, то можно скопировать libmysql.dll в системную директорию Windows (обычно c:\Windows\system). Однако такой путь не рекомендуется.

При включении любого расширения PHP (например php_mysqli.dll), директива PHP extension_dir должна содержать путь к директории, где находятся расширения PHP. Смотрите также Инструкции по Самостоятельной Установке для Windows. Для примера в PHP 5 значением extension_dir является c:\php\ext.

Замечание:

Если при загрузке сервера появляется следующее сообщение: "Unable to load dynamic library './php_mysqli.dll'", то система не может найти файлы php_mysqli.dll и/или libmysql.dll.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации MySQLi
Имя | По умолчанию | Меняемо | Список изменений
mysqli.allow_local_infile | "1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.2.4.
mysqli.allow_persistent | "1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.3.0.
mysqli.max_persistent | "-1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.3.0.
mysqli.max_links | "-1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.0.0.
mysqli.default_port | "3306" | PHP_INI_ALL | Доступна начиная с версии PHP 5.0.0.
mysqli.default_socket | NULL | PHP_INI_ALL | Доступна начиная с версии 5.0.0.
mysqli.default_host | NULL | PHP_INI_ALL | Доступна начиная с версии PHP 5.0.0.
mysqli.default_user | NULL | PHP_INI_ALL | Доступна начиная с версии PHP 5.0.0.
mysqli.default_pw | NULL | PHP_INI_ALL | Доступна начиная с версии PHP 5.0.0.
mysqli.reconnect | "0" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 4.3.5.
mysqli.rollback_on_cached_plink | TRUE | PHP_INI_SYSTEM | Доступна с версии PHP 5.6.0.
mysqli.cache_size | "2000" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.3.0.

Прочие детали и определения PHP_INI_* констант смотрите в разделе конфигурационные изменения.

Краткое разъяснение конфигурационных директив.

mysqli.allow_local_infile integer

Разрешает доступ к локальным файлам, с точки зрения PHP, с помощью инструкций LOAD DATA

mysqli.allow_persistent integer

Включает возможность создавать постоянные соединения с помощью mysqli_connect().

mysqli.max_persistent integer

Максимально возможное количество постоянных соединений. Для неограниченного количества установите в 0.

mysqli.max_links integer

Максимальное количество соединений MySQL на процесс.

mysqli.default_port integer

TCP порт, используемый по умолчанию для соединения с сервером баз данных, если другое значение явно не указано. Если значение по умолчанию не указано, оно будет получено из переменной среды окружения MYSQL_TCP_PORT, директивы mysql-tcp в файле /etc/services или константы MYSQL_PORT, которая задаётся во время компиляции, в указанном порядке. Win32 использует только константу MYSQL_PORT.

mysqli.default_socket string

Имя сокета по умолчанию, которое используется для соединения с локальной базой данных, если имя сокета не было указано явно.

mysqli.default_host string

Имя сервера, которое используется, если имя не было указано явно. Это имя не используется в безопасном режиме.

mysqli.default_user string

Имя пользователя, используемое по умолчанию, если имя не было указано явно. Игнорируется в безопасном режиме.

mysqli.default_pw string

Пароль, используемый по умолчанию для подключения к БД, если пароль не был явно указан. Игнорируется в безопасном режиме.

mysqli.reconnect integer

Автоматически восстанавливать соединение при его потере.

Замечание: Эта настройка игнорируется драйвером "mysqlnd".

mysqli.rollback_on_cached_plink bool

Для соединений поддерживающих откат транзакций эта директива указывает, нужно ли помещать их в пул постоянных соединений.

mysqli.cache_size integer

Доступно только с расширением mysqlnd.

Пользователи не могут устанавливать MYSQL_OPT_READ_TIMEOUT с помощью API-вызовов или установки конфигурационных значений во время работы скрипта. Учтите, что если бы это было возможно, то libmysqlclient и потоки по-разному обрабатывали бы значение MYSQL_OPT_READ_TIMEOUT.


  • « Настройка во время выполнения
  • Расширение mysqli и постоянные соединения »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Расширение mysqli и постоянные соединения

Для расширения mysqli поддержка постоянных соединений была внедрена в PHP 5.3. В PDO MYSQL и ext/mysql на тот момент она уже была. Идея постоянных подключений состоит в том, чтобы соединение между клиентским процессом и базой данных можно было использовать повторно, особенно когда требуется создавать и закрывать соединения множество раз. Это бы позволило снизить накладные расходы на создание новых подключений каждый раз, когда они требуются, за счет использования существующих кэшированных подключений, свободных для повторного использования.

В отличие от расширения mysql, в mysqli нет отдельной функции для создания постоянных соединений. Чтобы открыть постоянное соединение, при создании подключения к имени хоста нужно добавить префикс p:.

При использовании постоянных соединений можно столкнуться с проблемой, которая заключается в том, что клиенты могут оставлять такие подключения в непредсказуемом состоянии. Например, клиент ставит блокировку на таблицу, а затем аварийно завершает работу. То есть блокировка снята не будет. Новый клиентский процесс, использующий это подключение повторно, получит его "как есть", и вынужден будет провести какую-то очистку подключения, прежде чем начать его использовать. Соответственно в задачи программиста входит еще и проверка подобных ситуаций и внедрение кода, осуществляющего такую очистку.

Тем не менее, в mysqli эта проблема решена. В расширении есть встроенный функционал, осуществляющий очистку соединений и переводящий их в состояние пригодное для использования. Код очистки, реализованный в mysqli включает следующие операции:

  • Откат активных транзакций

  • Закрытие и удаление временных таблиц

  • Снятие блокировки с таблиц

  • Сброс переменных сессии

  • Закрытие подготовленных запросов (всегда происходит в PHP)

  • Закрытие обработчиков

  • Снятие блокировок, установленных функцией GET_LOCK()

Это позволяет быть уверенным в том, что возвращенные из пула соединения готовы к использованию в клиентских процессах.

Расширение mysqli делает очистку соединений автоматически путем вызова C-API функции mysql_change_user().

Автоматическая очистка имеет свои достоинства и недостатки. Как плюс, программисту больше не надо заботиться об очистке соединения, все делается автоматически. Однако, это не лучшим образом влияет на производительность, скрипт потенциально может работать медленней, так как автоматическая чистка запускается каждый раз, когда соединение извлекается из пула.

Есть возможность отключить автоматическую очистку соединений, если скомпилировать PHP с директивой MYSQLI_NO_CHANGE_USER_ON_PCONNECT.

Замечание:

Постоянные соединения поддерживаются расширением mysqli как при работе с родным MySQL драйвером, так и при работе с клиентской библиотекой MySQL.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MYSQLI_READ_DEFAULT_GROUP

Читать опции из указанной группы в файле my.cnf или файле, указанном с помощью MYSQLI_READ_DEFAULT_FILE

MYSQLI_READ_DEFAULT_FILE

Читать опции из указанного файла, вместо my.cnf

MYSQLI_OPT_CONNECT_TIMEOUT

Тайм-аут подключения в секундах.

MYSQLI_OPT_LOCAL_INFILE

Включает команду LOAD LOCAL INFILE.

MYSQLI_INIT_COMMAND

Команда, которая будет выполнена при подключении к серверу MySQL. Эта команда будет повторно вызвана при переподключении.

MYSQLI_CLIENT_SSL

Использовать SSL (шифрованный протокол). Эта опция не может быть уставовлена приложениями; она устанавливается внутри библиотеки клиента MySQL.

MYSQLI_CLIENT_COMPRESS

Использовать компрессию.

MYSQLI_CLIENT_INTERACTIVE

Ждать interactive_timeout секунд (вместо wait_timeout) бездействия перед закрытием соединения. Переменная сессии клиента wait_timeout будет установлена в значение переменной сессии interactive_timeout.

MYSQLI_CLIENT_IGNORE_SPACE

Разрешить пробелы после имен функций. Делает все имена функций зарезервированными словами.

MYSQLI_CLIENT_NO_SCHEMA

Запретить синтаксис db_name.tbl_name.col_name.

MYSQLI_CLIENT_MULTI_QUERIES

Разрешить выполнение в одном вызове функции mysqli_query() нескольких запросов, разделенных точкой с запятой.

MYSQLI_STORE_RESULT

Для использования буферизации наборов данных.

MYSQLI_USE_RESULT

Для использования не буферизированных наборов данных.

MYSQLI_ASSOC

Результат возвращается в виде ассоциативного массива с именами полей в качестве индексов.

MYSQLI_NUM

Результат возвращается в виде индексного массива.

MYSQLI_BOTH

Результат возвращается в виде массива, который содержит как числовой, так и ассоциативный индексы.

MYSQLI_NOT_NULL_FLAG

Информирует о том, что поле определено как NOT NULL.

MYSQLI_PRI_KEY_FLAG

Поле является частью первичного индекса.

MYSQLI_UNIQUE_KEY_FLAG

Поле является частью уникального индекса.

MYSQLI_MULTIPLE_KEY_FLAG

Поле является частью индекса.

MYSQLI_BLOB_FLAG

Поле определено как BLOB.

MYSQLI_UNSIGNED_FLAG

Поле определено как UNSIGNED.

MYSQLI_ZEROFILL_FLAG

Поле определено как ZEROFILL.

MYSQLI_AUTO_INCREMENT_FLAG

Поле определено как AUTO_INCREMENT.

MYSQLI_TIMESTAMP_FLAG

Поле определено как TIMESTAMP.

MYSQLI_SET_FLAG

Поле определено как SET.

MYSQLI_NUM_FLAG

Поле определено как NUMERIC.

MYSQLI_PART_KEY_FLAG

Поле является частью мульти-индекса.

MYSQLI_GROUP_FLAG

Поле является частью GROUP BY.

MYSQLI_TYPE_DECIMAL

Поле определено как DECIMAL.

MYSQLI_TYPE_NEWDECIMAL

Математическая точность полей DECIMAL или NUMERIC (MySQL 5.0.3 и выше).

MYSQLI_TYPE_BIT

Поле определено как BIT (MySQL 5.0.3 и выше).

MYSQLI_TYPE_TINY

Поле определено как TINYINT.

MYSQLI_TYPE_SHORT

Поле определено как SMALLINT.

MYSQLI_TYPE_LONG

Поле определено как INT.

MYSQLI_TYPE_FLOAT

Поле определено как FLOAT.

MYSQLI_TYPE_DOUBLE

Поле определено как DOUBLE.

MYSQLI_TYPE_NULL

Поле определено как DEFAULT NULL.

MYSQLI_TYPE_TIMESTAMP

Поле определено как TIMESTAMP.

MYSQLI_TYPE_LONGLONG

Поле определено как BIGINT.

MYSQLI_TYPE_INT24

Поле определено как MEDIUMINT.

MYSQLI_TYPE_DATE

Поле определено как DATE.

MYSQLI_TYPE_TIME

Поле определено как TIME.

MYSQLI_TYPE_DATETIME

Поле определено как DATETIME.

MYSQLI_TYPE_YEAR

Поле определено как YEAR.

MYSQLI_TYPE_NEWDATE

Поле определено как DATE.

MYSQLI_TYPE_INTERVAL

Поле определено как INTERVAL

MYSQLI_TYPE_ENUM

Поле определено как ENUM.

MYSQLI_TYPE_SET

Поле определено как SET.

MYSQLI_TYPE_TINY_BLOB

Поле определено как TINYBLOB.

MYSQLI_TYPE_MEDIUM_BLOB

Поле определено как MEDIUMBLOB.

MYSQLI_TYPE_LONG_BLOB

Поле определено как LONGBLOB.

MYSQLI_TYPE_BLOB

Поле определено как BLOB.

MYSQLI_TYPE_VAR_STRING

Поле определено как VARCHAR.

MYSQLI_TYPE_STRING

Поле определено как CHAR или BINARY

MYSQLI_TYPE_CHAR

Поле определено как TINYINT. Для CHAR смотрите MYSQLI_TYPE_STRING

MYSQLI_TYPE_GEOMETRY

Поле определено как GEOMETRY.

MYSQLI_NEED_DATA

Имеются еще данные, доступные для связанных переменных.

MYSQLI_NO_DATA

Больше нет доступных данных для связанных переменных.

MYSQLI_DATA_TRUNCATED

Произошло усечение данных. Доступно начиная с PHP 5.1.0 и MySQL 5.0.5.

MYSQLI_ENUM_FLAG

Поле определено как ENUM. Доступно начиная с PHP 5.3.0.

MYSQLI_BINARY_FLAG

Поле определено как BINARY. Доступно начиная с PHP 5.3.0.

MYSQLI_CURSOR_TYPE_FOR_UPDATE

MYSQLI_CURSOR_TYPE_NO_CURSOR

MYSQLI_CURSOR_TYPE_READ_ONLY

MYSQLI_CURSOR_TYPE_SCROLLABLE

MYSQLI_STMT_ATTR_CURSOR_TYPE

MYSQLI_STMT_ATTR_PREFETCH_ROWS

MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH

MYSQLI_SET_CHARSET_NAME

MYSQLI_REPORT_INDEX

Уведомлять, если индекс, используемый в запросе, не указан либо превышает максимум.

MYSQLI_REPORT_ERROR

Уведомлять об ошибках вызова функций mysqli.

MYSQLI_REPORT_STRICT

Обрабатывать mysqli_sql_exception как ошибки, а не как предупреждения.

MYSQLI_REPORT_ALL

Включить все уведомления.

MYSQLI_REPORT_OFF

Отключает уведомления.

MYSQLI_DEBUG_TRACE_ENABLED

Установлено в 1 если используется функция mysqli_debug().

MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED

MYSQLI_SERVER_QUERY_NO_INDEX_USED

MYSQLI_REFRESH_GRANT

Обновляет таблицу прав доступа.

MYSQLI_REFRESH_LOG

Сбрасывает логи, точно так же, как и SQL выражение FLUSH LOGS.

MYSQLI_REFRESH_TABLES

Очищает кеш таблицы, точно так же, как и SQL выражение FLUSH TABLES.

MYSQLI_REFRESH_HOSTS

Очищает кеш хоста, точно так же, как и SQL выражение FLUSH HOSTS.

MYSQLI_REFRESH_STATUS

Сбрасывает переменные состояния, точно так же, как и SQL выражение FLUSH STATUS.

MYSQLI_REFRESH_THREADS

Очищает кеш потока.

MYSQLI_REFRESH_SLAVE

На ведомом реплицируемом сервере (slave): сбросить информацию ведущего сервера (master) и перезапустить ведомый сервер. Аналогично выполнению SQL выражения RESET SLAVE.

MYSQLI_REFRESH_MASTER

На ведущем реплицируемом сервере (master): удалить бинарные файлы логов в бинарном индексе логов, и обрезать файл индекса. Аналогично выполнению SQL выражения RESET MASTER.

MYSQLI_TRANS_COR_AND_CHAIN

Добавляет "AND CHAIN" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_COR_AND_NO_CHAIN

Добавляет "AND NO CHAIN" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_COR_RELEASE

Добавляет "RELEASE" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_COR_NO_RELEASE

Добавляет "NO RELEASE" в mysqli_commit() или mysqli_rollback().

MYSQLI_TRANS_START_READ_ONLY

Начинает тразакцию как "START TRANSACTION READ ONLY" с mysqli_begin_transaction().

MYSQLI_TRANS_START_READ_WRITE

Начинает транзакцию как "START TRANSACTION READ WRITE" с mysqli_begin_transaction().

MYSQLI_TRANS_START_CONSISTENT_SNAPSHOT

Начинает транзакцию как "START TRANSACTION WITH CONSISTENT SNAPSHOT" с mysqli_begin_transaction().


Основная информация о функциях расширения MySQLi

Основная информация о методах mysqli
Класс mysqli
ООП-интерфейс | Процедурный интерфейс | Синоним (не используйте!) | Описание
Свойства
$mysqli::affected_rows | mysqli_affected_rows() | - | Получает число строк, затронутых предыдущей операцией MySQL
$mysqli::client_info | mysqli_get_client_info() | - | Возвращает информацию о версии клиента MySQL в виде строки (string)
$mysqli::client_version | mysqli_get_client_version() | - | Возвращает информацию о версии клиента MySQL в виде числа (integer)
$mysqli::connect_errno | mysqli_connect_errno() | - | Возвращает код ошибки последнего соединения
$mysqli::connect_error | mysqli_connect_error() | - | Возвращает строковое описание ошибки последнего подключения
$mysqli::errno | mysqli_errno() | - | Возвращает код ошибки последнего вызова функции
$mysqli::error | mysqli_error() | - | Возвращает строковое описание последней ошибки
$mysqli::field_count | mysqli_field_count() | - | Возвращает число столбцов для последнего запроса
$mysqli::host_info | mysqli_get_host_info() | - | Возвращает строку, содержащую тип используемого соединения
$mysqli::protocol_version | mysqli_get_proto_info() | - | Возвращает версию используемого протокола MySQL
$mysqli::server_info | mysqli_get_server_info() | - | Возвращает версию сервера MySQL
$mysqli::server_version | mysqli_get_server_version() | - | Возвращает версию сервера MySQL в виде числа (integer)
$mysqli::info | mysqli_info() | - | Отображает информацию о наиболее часто исполняемом запросе
$mysqli::insert_id | mysqli_insert_id() | - | Возвращает автоматически сгенерированный id, использованный в последнем запросе
$mysqli::sqlstate | mysqli_sqlstate() | - | Возвращает ошибку SQLSTATE предыдущей операции MySQL
$mysqli::warning_count | mysqli_warning_count() | - | Возвращает число предупреждений последнего запроса для заданной ссылки
Методы
mysqli::autocommit() | mysqli_autocommit() | - | Выключает или выключает автоматическое подтверждение изменений базы данных
mysqli::change_user() | mysqli_change_user() | - | Изменяет пользователя (user) для указанного соединения с базой данных
mysqli::character_set_name(), mysqli::client_encoding | mysqli_character_set_name() | mysqli_client_encoding() | Возвращает кодировку, установленную по умолчанию для соединения с базой данных
mysqli::close() | mysqli_close() | - | Закрывает открытое соединение с базой данных
mysqli::commit() | mysqli_commit() | - | Подтверждает текущую транзакцию
mysqli::__construct() | mysqli_connect() | - | Открыть новое соединение с MySQL сервером [Примечание: статический метод (т.е. метод класса)]
mysqli::debug() | mysqli_debug() | - | Выполняет операции отладки
mysqli::dump_debug_info() | mysqli_dump_debug_info() | - | Сбор отладочной информации в лог
mysqli::get_charset() | mysqli_get_charset() | - | Возвращает объект, описывающий кодировку
mysqli::get_connection_stats() | mysqli_get_connection_stats() | - | Возвращает статистку соединения клиента. Доступно только с расширением mysqlnd.
mysqli::get_client_info() | mysqli_get_client_info() | - | Возвращает версию клиента MySQL в виде строки
mysqli::get_client_stats() | mysqli_get_client_stats() | - | Возвращает статистку клиента для каждого процесса. Доступно только с расширением mysqlnd.
mysqli::get_cache_stats() | mysqli_get_cache_stats() | - | Возвращает статистику клиента по кэшу Zval. Доступно только с расширением mysqlnd.
mysqli::get_server_info() | mysqli_get_server_info() | - | Возвращает строку, содержащую версию сервера MySQL, к которому произведено подключение
mysqli::get_warnings() | mysqli_get_warnings() | - | Не документировано
mysqli::init() | mysqli_init() | - | Инициализирует MySQLi и возвращает ресурс для использования с mysqli_real_connect. [Не вызывается из объекта, так как возвращает объект $mysqli.]
mysqli::kill() | mysqli_kill() | - | Создает запрос серверу на уничтожение MySQL потока
mysqli::more_results() | mysqli_more_results() | - | Проверяет на наличие дополнительных результатов запроса из мульти-запроса
mysqli::multi_query() | mysqli_multi_query() | - | Выполняет запрос к базе данных
mysqli::next_result() | mysqli_next_result() | - | Выполняет подготовку следующего результата из multi_query
mysqli::options() | mysqli_options() | mysqli_set_opt() | Устанавливает опции
mysqli::ping() | mysqli_ping() | - | Производит пинг соединения с сервером, либо переподключение, если соединение было сброшено
mysqli::prepare() | mysqli_prepare() | - | Выполняет подготовку SQL оператора (Prepared statement)
mysqli::query() | mysqli_query() | - | Выполняет запрос к базе данных
mysqli::real_connect() | mysqli_real_connect() | - | Открывает соединение с сервером MySQL
mysqli::real_escape_string(), mysqli::escape_string() | mysqli_real_escape_string() | mysqli_escape_string() | Экранирует специальные символы в строке, используемой в SQL-запросе, принимая во внимание кодировку соединения
mysqli::real_query() | mysqli_real_query() | - | Выполняет SQL запрос
mysqli::refresh() | mysqli_refresh() | - | Очищает таблицы или кеш, или сбрасывает информацию сервера репликации
mysqli::rollback() | mysqli_rollback() | - | Откатывает текущую транзакцию
mysqli::select_db() | mysqli_select_db() | - | Выбирает базу данных по умолчанию для выполнения запросов
mysqli::set_charset() | mysqli_set_charset() | - | Устанавливает кодировку клиента по умолчанию
mysqli::set_local_infile_default() | mysqli_set_local_infile_default() | - | Сбрасывает пользовательский обработчик для загрузки команды из локального файла
mysqli::set_local_infile_handler() | mysqli_set_local_infile_handler() | - | Установить функцию-обработчик команды LOAD DATA LOCAL INFILE
mysqli::ssl_set() | mysqli_ssl_set() | - | Используется для установления защищенных соединений, используя SSL
mysqli::stat() | mysqli_stat() | - | Получает текущее состояние системы
mysqli::stmt_init() | mysqli_stmt_init() | - | Инициализирует и возвращает объект для использования с mysqli_stmt_prepare
mysqli::store_result() | mysqli_store_result() | - | Локально сохраняет результат, полученный последним запросом
mysqli::thread_id() | mysqli_thread_id() | - | Возвращает идентификатор потока для текущего соединения
mysqli::thread_safe() | mysqli_thread_safe() | - | Возвращает состояние безопасности потока
mysqli::use_result() | mysqli_use_result() | - | Инициирует получение результата
Основная информация о методах mysqli_stmt
MySQL_STMT
ООП-интерфейс | Процедурный интерфейс | Синоним (не используйте!) | Описание
Свойства
$mysqli_stmt::affected_rows | mysqli_stmt_affected_rows() | - | Возвращает число строк, измененных, удаленных или вставленных при выполнении последней инструкции
$mysqli_stmt::errno | mysqli_stmt_errno() | - | Возвращает код ошибки последнего выполненного запроса
$mysqli_stmt::error | mysqli_stmt_error() | - | Возвращает строковое описание ошибки последнего запроса
$mysqli_stmt::field_count | mysqli_stmt_field_count() | - | Возвращает число полей в заданном запросе - не документировано
$mysqli_stmt::insert_id | mysqli_stmt_insert_id() | - | Получает ID, сгенерированное последней операцией INSERT
$mysqli_stmt::num_rows | mysqli_stmt_num_rows() | - | Возвращает число строк в результате выполнения запроса
$mysqli_stmt::param_count | mysqli_stmt_param_count() | mysqli_param_count() | Возвращает число параметров для заданного запроса
$mysqli_stmt::sqlstate | mysqli_stmt_sqlstate() | - | Возвращает ошибку SQLSTATE для последнего выполненого запроса
Методы
mysqli_stmt::attr_get() | mysqli_stmt_attr_get() | - | Используется для получения текущего значения атрибута запроса
mysqli_stmt::attr_set() | mysqli_stmt_attr_set() | - | Используется для модификации поведения подготовленного запроса
mysqli_stmt::bind_param() | mysqli_stmt_bind_param() | mysqli_bind_param() | Передается переменные в подготовленный запрос как параметры
mysqli_stmt::bind_result() | mysqli_stmt_bind_result() | mysqli_bind_result() | Передает переменные в подготовленный запрос для сохранения результатов
mysqli_stmt::close() | mysqli_stmt_close() | - | Закрывает подготовленный запрос
mysqli_stmt::data_seek() | mysqli_stmt_data_seek() | - | Производит поиск произвольной строки в результатах запроса
mysqli_stmt::execute() | mysqli_stmt_execute() | mysqli_execute() | Исполняет подготовленный запрос
mysqli_stmt::fetch() | mysqli_stmt_fetch() | mysqli_fetch() | Выборка результатов подготовленного запроса в связанные переменные
mysqli_stmt::free_result() | mysqli_stmt_free_result() | - | Освобождает память, хранящую результаты заданного дескриптором запроса
mysqli_stmt::get_result() | mysqli_stmt_get_result() | - | Получает результаты подготовленного запроса. Доступно только с расширением mysqlnd.
mysqli_stmt::get_warnings() | mysqli_stmt_get_warnings() | - | Не документировано
$mysqli_stmt::more_results() | mysqli_stmt_more_results() | - | Проверяет наличие дополнительных результатов запроса в случае множественного запроса
$mysqli_stmt::next_result() | mysqli_stmt_next_result() | - | Читает следующий результат из множественного запроса
mysqli_stmt::num_rows() | mysqli_stmt_num_rows() | - | См. также $mysqli_stmt::num_rows
mysqli_stmt::prepare() | mysqli_stmt_prepare() | - | Выполняет подготовку SQL запроса для запуска
mysqli_stmt::reset() | mysqli_stmt_reset() | - | Сбрасывает подготовленный запрос
mysqli_stmt::result_metadata() | mysqli_stmt_result_metadata() | mysqli_get_metadata() | Возвращает метаданные результатов подготовленного запроса
mysqli_stmt::send_long_data() | mysqli_stmt_send_long_data() | mysqli_send_long_data() | Передача данных блоками
mysqli_stmt::store_result() | mysqli_stmt_store_result() | - | Передает результат из подготовленного запроса
Основная информация о методах mysqli_result
mysqli_result
ООП-интерфейс | Процедурный интерфейс | Синоним (не используйте!) | Описание
Свойства
$mysqli_result::current_field | mysqli_field_tell() | - | Получить смещение указателя на результат для текущего поля
$mysqli_result::field_count | mysqli_num_fields() | - | Получить количество полей в результате
$mysqli_result::lengths | mysqli_fetch_lengths() | - | Возвращает длины столбцов текущей строки в наборе результатов
$mysqli_result::num_rows | mysqli_num_rows() | - | Получает число строк в результате
Методы
mysqli_result::data_seek() | mysqli_data_seek() | - | Устанавливает указатель результата на произвольную строку в результате
mysqli_result::fetch_all() | mysqli_fetch_all() | - | Получает все результирующие строки и возвращает массив со строками в виде ассоциативного массива и/или нумерованного массива. Доступно только с расширением mysqlnd.
mysqli_result::fetch_array() | mysqli_fetch_array() | - | Получает результирующую строку в виде ассоциативного массива и/или нумерованного массива
mysqli_result::fetch_assoc() | mysqli_fetch_assoc() | - | Получает результирующую строку в виде ассоциативного массива
mysqli_result::fetch_field_direct() | mysqli_fetch_field_direct() | - | Получает мета-данные для одного поля
mysqli_result::fetch_field() | mysqli_fetch_field() | - | Возвращает из результата следующее поле
mysqli_result::fetch_fields() | mysqli_fetch_fields() | - | Возвращает массив объектов из полей результата
mysqli_result::fetch_object() | mysqli_fetch_object() | - | Возвращает текущую строку результата в виде объекта
mysqli_result::fetch_row() | mysqli_fetch_row() | - | Получает строку результата как нумерованный массив
mysqli_result::field_seek() | mysqli_field_seek() | - | Устанавливает смещение указателя результата на определенное поле
mysqli_result::free(), mysqli_result::close, mysqli_result::free_result | mysqli_free_result() | - | Освобождает память, связанную с результатом
Основная информация о методах mysqli_driver
MySQL_Driver
ООП-интерфейс | Процедурный интерфейс | Синоним (не используйте!) | Описание
Свойства
-
Методы
mysqli_driver::embedded_server_end() | mysqli_embedded_server_end() | - | Не документировано
mysqli_driver::embedded_server_start() | mysqli_embedded_server_start() | - | Не документировано

Замечание:

Псевдонимы функций предназначены только для обеспечения обратной совместимости. Не используйте их в новых проектах.


  • « Основная информация о функциях расширения MySQLi
  • Базовые примеры расширения MySQLi »
  • PHP Manual
  • MySQLi
  • Примеры

Примеры

Содержание

  • Базовые примеры расширения MySQLi


Базовые примеры расширения MySQLi

Этот пример показывает как соединяться, выполнять запрос, использовать базовую обработку ошибок, распечатывать результирующую выборку и отключаться от базы данных MySQL.

В этом примере используется свободно доступная база данных Sakila которая может быть загружена с » dev.mysql.com, как описано здесь. Для того, чтобы этот пример работал (a) установите sakila и (b) измените переменные для соединения с БД (host, your_user, your_pass).

Пример #1 Обзорный пример работы с расширением MySQLi

<?php
// Давайте начнем с переменной $_GET в нашем примере.
// Она содержит идентификатор aid для поля actor_id в БД Sakila.
// Пусть ее значение по-умолчанию будет 1
// и тип этой переменной будет строго целочисленным во избежание SQL injection
// и/или связанных с этим проблем безопасности. Контроль всего перечисленного выше
// лежит за пределами этого простого примера.
// Пример:
//   http://example.org/script.php?aid=42
if (isset($_GET['aid']) && is_numeric($_GET['aid'])) {
    $aid = (int) $_GET['aid'];
} else {
    $aid = 1;
}

// Подключаемся к базе MySQL и выбираем базу под названием sakila
// Хост: 127.0.0.1, имя пользователя: your_user, пароль: your_pass, база: sakila
$mysqli = new mysqli('127.0.0.1', 'your_user', 'your_pass', 'sakila');

// О нет!! переменная connect_errno существует, а это значит, что соединение не было успешным!
if ($mysqli->connect_errno) {
    // Соединение не удалось. Что нужно делать в этом случае?
    // Можно отправить письмо администратору, отразить ошибку в журнале,
    // информировать пользователя об ошибке на экране и т.п.
    // Вам не нужно при этом раскрывать конфиденциальную информацию, поэтому
    // просто попробуем так:
    echo "Извините, возникла проблема на сайте";

    // На реальном сайте этого делать не следует, но в качестве примера мы покажем
    // как распечатывать информацию о подробностях возникшей ошибки MySQL
    echo "Ошибка: Не удалсь создать соединение с базой MySQL и вот почему: \n";
    echo "Номер_ошибки: " . $mysqli->connect_errno . "\n";
    echo "Ошибка: " . $mysqli->connect_error . "\n";

    // Вы можете захотеть показать что-то еще, но мы просто выйдем
    exit;
}

// Выполняем запрос SQL
$sql = "SELECT actor_id, first_name, last_name FROM actor WHERE actor_id = $aid";
if (!$result = $mysqli->query($sql)) {
    // О нет! запрос не удался.
    echo "Извините, возникла проблема в работе сайта.";

    // И снова: не делайте этого на реальном сайте, но в этом примере мы покажем,
    // как получить информацию об ошибке:
    echo "Ошибка: Наш запрос не удался и вот почему: \n";
    echo "Запрос: " . $sql . "\n";
    echo "Номер_ошибки: " . $mysqli->errno . "\n";
    echo "Ошибка: " . $mysqli->error . "\n";
    exit;
}

// Уфф, мы это сделали. У нас есть соединение с базой даннх и успешный запрос.
// Но где же его результат?
if ($result->num_rows === 0) {
    // Упс! в запросе нет ни одной строки! Иногда это ожидаемо и нормально, иногда нет.
    // Решать Вам. В данном случае, может быть actor_id был слишком большим?
    echo "Мы не смогли найти совпадение для $aid, простите. Пожалуйста, попробуйте еще раз.";
    exit;
}

// Теперь мы знаем только, что результат выполнения запроса существует, поэтому давайте
// перенесем его в ассоциативный массив, в котором ключами массива будут названия
 // столбцов.
$actor = $result->fetch_assoc();
echo "Иногда я вижу " . $actor['first_name'] . " " . $actor['last_name'] . " по телевизору.";

// Теперь давайте выгрузим пять случайных актеров и выведем их имена в список.
// Здесь мы добавим меньше степеней обработки ошибок, чтобы Вы сделали это самостоятельно
$sql = "SELECT actor_id, first_name, last_name FROM actor ORDER BY rand() LIMIT 5";
if (!$result = $mysqli->query($sql)) {
    echo "Извините, возникла проблема в работе сайта.";
    exit;
}

// Распечатываем список из пяти случайно выбранных актеров и создаем ссылку на id
// каждого из них
echo "<ul>\n";
while ($actor = $result->fetch_assoc()) {
    echo "<li><a href='" . $_SERVER['SCRIPT_FILENAME'] . "?aid=" . $actor['actor_id'] . "'>\n";
    echo $actor['first_name'] . ' ' . $actor['last_name'];
    echo "</a></li>\n";
}
echo "</ul>\n";

// Скрипт автоматически закрывает соединение MySQL и освобождает память, тем не
//менее давайте сделаем это вручную
$result->free();
$mysqli->close();
?>


Класс mysqli

(PHP 5, PHP 7)

Введение

Представляет связь между PHP и базой данных MySQL.

Обзор классов

mysqli {
/* Свойства */
int $affected_rows;
string $client_info;
int $client_version;
int $connect_errno;
string $connect_error;
int $errno;
array $error_list;
string $error;
int $field_count;
int $client_version;
string $host_info;
string $protocol_version;
string $server_info;
int $server_version;
string $info;
mixed $insert_id;
string $sqlstate;
int $thread_id;
int $warning_count;
/* Методы */
 __construct
  ([ string $host = ini_get("mysqli.default_host")
 [, string $username = ini_get("mysqli.default_user")
 [, string $passwd = ini_get("mysqli.default_pw")
 [, string $dbname = ""
 [, int $port = ini_get("mysqli.default_port")
 [, string $socket = ini_get("mysqli.default_socket")
]]]]]] )
bool autocommit ( bool $mode )
bool change_user ( string $user , string $password , string $database )
string character_set_name ( void )
bool close ( void )
bool commit ([ int $flags [, string $name ]] )
bool debug ( string $message )
bool dump_debug_info ( void )
object get_charset ( void )
string get_client_info ( void )
bool get_connection_stats ( void )
mysqli_warning get_warnings ( void )
mysqli init ( void )
bool kill ( int $processid )
bool more_results ( void )
bool multi_query ( string $query )
bool next_result ( void )
bool options ( int $option , mixed $value )
bool ping ( void )
public static int poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )
mysqli_stmt prepare ( string $query )
mixed query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
bool real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )
string escape_string ( string $escapestr )
bool real_query ( string $query )
public mysqli_result reap_async_query ( void )
public bool refresh ( int $options )
bool rollback ([ int $flags [, string $name ]] )
int rpl_query_type ( string $query )
bool select_db ( string $dbname )
bool send_query ( string $query )
bool set_charset ( string $charset )
bool set_local_infile_handler ( mysqli $link , callable $read_func )
bool ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )
string stat ( void )
mysqli_stmt stmt_init ( void )
mysqli_result store_result ([ int $option ] )
mysqli_result use_result ( void )
}

Содержание

  • mysqli::$affected_rows — Получает число строк, затронутых предыдущей операцией MySQL
  • mysqli::autocommit — Включает или отключает автоматическую фиксацию изменений базы данных
  • mysqli::begin_transaction — Стартует транзакцию
  • mysqli::change_user — Позволяет сменить пользователя подключенного к базе данных
  • mysqli::character_set_name — Возвращает кодировку по умолчанию, установленную для соединения с БД
  • mysqli::$client_info — Получает информацию о клиенте MySQL
  • mysqli::$client_version — Возвращает информацию о клиенте MySQL в виде строки
  • mysqli::close — Закрывает ранее открытое соединение с базой данных
  • mysqli::commit — Фиксирует текущую транзакцию
  • mysqli::$connect_errno — Возвращает код ошибки последней попытки соединения
  • mysqli::$connect_error — Возвращает описание последней ошибки подключения
  • mysqli::__construct — Устанавливает новое соединение с сервером MySQL
  • mysqli::debug — Выполняет процедуры отладки
  • mysqli::dump_debug_info — Журналирование отладочной информации
  • mysqli::$errno — Возвращает код ошибки последнего вызова функции
  • mysqli::$error_list — Возвращает список ошибок выполнения последней запущенной команды
  • mysqli::$error — Возвращает строку с описанием последней ошибки
  • mysqli::$field_count — Возвращает число столбцов, затронутых последним запросом
  • mysqli::get_charset — Возвращает объект, описывающий кодировку
  • mysqli::get_client_info — Получает информацию о клиенте MySQL
  • mysqli_get_client_stats — Возвращает статистику клиента для каждого процесса
  • mysqli_get_client_version — Возвращает информацию о клиенте MySQL в виде строки
  • mysqli::get_connection_stats — Возвращает статистику соединения с клиентом
  • mysqli::$host_info — Возвращает строку, содержащую тип используемого соединения
  • mysqli::$protocol_version — Возвращает версию используемого MySQL протокола
  • mysqli::$server_info — Возвращает версию MySQL сервера
  • mysqli::$server_version — Возвращает версию сервера MySQL, представленную в виде integer
  • mysqli::get_warnings — Получает результат SHOW WARNINGS
  • mysqli::$info — Извлекает информацию о последнем выполненном запросе
  • mysqli::init — Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
  • mysqli::$insert_id — Возвращает автоматически генерируемый ID, используя последний запрос
  • mysqli::kill — Запрос для сервера завершить выполнение процесса MySQL
  • mysqli::more_results — Проверка, есть ли еще результаты в мультизапросе
  • mysqli::multi_query — Выполняет запрос к базе данных
  • mysqli::next_result — Подготовка следующего доступного результирующего набора из multi_query
  • mysqli::options — Задание настроек
  • mysqli::ping — Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано
  • mysqli::poll — Опрос подключений
  • mysqli::prepare — Подготавливает SQL выражение к выполнению
  • mysqli::query — Выполняет запрос к базе данных
  • mysqli::real_connect — Устанавливает соединение с сервером mysql
  • mysqli::real_escape_string — Экранирует специальные символы в строке для использования в SQL выражении, используя текущий набор символов соединения
  • mysqli::real_query — Выполнение SQL запроса
  • mysqli::reap_async_query — Получение результата асинхронного запроса
  • mysqli::refresh — Обновление
  • mysqli::release_savepoint — Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции
  • mysqli::rollback — Откат текущей транзакции
  • mysqli::rpl_query_type — Возвращает RPL тип запроса
  • mysqli::savepoint — Устанавливает именованную точку отката для текущей транзакции
  • mysqli::select_db — Устанавливает базу данных для выполняемых запросов
  • mysqli::send_query — Отправка запроса и возврат
  • mysqli::set_charset — Задает набор символов по умолчанию
  • mysqli::set_local_infile_default — Отмена привязки callback-функции для команды load local infile
  • mysqli::set_local_infile_handler — Задает callback-функцию для команды LOAD DATA LOCAL INFILE
  • mysqli::$sqlstate — Возвращает код состояния SQLSTATE последней MySQL операции
  • mysqli::ssl_set — Используется для установления безопасных соединений, используя SSL
  • mysqli::stat — Получение информации о текущем состоянии системы
  • mysqli::stmt_init — Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare
  • mysqli::store_result — Передает на клиента результирующий набор последнего запроса
  • mysqli::$thread_id — Возвращает ID процесса текущего подключения
  • mysqli::thread_safe — Показывает, безопасна ли работа с процессами
  • mysqli::use_result — Готовит результирующий набор на сервере к использованию
  • mysqli::$warning_count — Возвращает количество предупреждений из последнего запроса заданного подключения


Получает число строк, затронутых предыдущей операцией MySQL

  • « mysqli
  • mysqli::autocommit »
  • PHP Manual
  • mysqli
  • Получает число строк, затронутых предыдущей операцией MySQL

mysqli::$affected_rows

mysqli_affected_rows

(PHP 5, PHP 7)

mysqli::$affected_rows -- mysqli_affected_rows — Получает число строк, затронутых предыдущей операцией MySQL

Описание

Объектно-ориентированный стиль

int $mysqli->affected_rows;

Процедурный стиль

int mysqli_affected_rows ( mysqli $link )

Возвращает число строк, затронутых последним INSERT, UPDATE, REPLACE или DELETE запросом.

Для запросов вида SELECT mysqli_affected_rows() работает как mysqli_num_rows().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Целое число, большее нуля, означает количество затронутых или полученных строк. Ноль означает, что запросом вида UPDATE не обновлено ни одной записи, или что ни одна строка не соответствует условию WHERE в запросе, или что запрос еще не был выполнен. Значение -1 указывает на то, что запрос вернул ошибку.

Замечание:

Если число затронутых строк больше чем максимальное значение int ( PHP_INT_MAX ), то число затронутых строк будет возвращено в строковом виде (string).

Примеры

Пример #1 Пример $mysqli->affected_rows

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверка соединения */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* Добавление строк (Insert) */
$mysqli->query("CREATE TABLE Language SELECT * from CountryLanguage");
printf("Затронутые строки (INSERT): %d\n", $mysqli->affected_rows);

$mysqli->query("ALTER TABLE Language ADD Status int default 0");

/* Обновление строк (Update) */
$mysqli->query("UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Затронутые строки (UPDATE): %d\n", $mysqli->affected_rows);

/* Удаление строк (Delete) */
$mysqli->query("DELETE FROM Language WHERE Percentage < 50");
printf("Затронутые строки (DELETE): %d\n", $mysqli->affected_rows);

/* Выбор всех строк (Select) */
$result = $mysqli->query("SELECT CountryCode FROM Language");
printf("Затронутые строки (SELECT): %d\n", $mysqli->affected_rows);

$result->close();

/* Удаление таблицы Language */
$mysqli->query("DROP TABLE Language");

/* Закрытие соединения */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Не могу подключиться к localhost. Ошибка: %s\n", mysqli_connect_error());
    exit();
}

/* Добавление строк (Insert) */
mysqli_query($link, "CREATE TABLE Language SELECT * from CountryLanguage");
printf("Затронутые строки (INSERT): %d\n", mysqli_affected_rows($link));

mysqli_query($link, "ALTER TABLE Language ADD Status int default 0");

/* Обновление строк (Update) */
mysqli_query($link, "UPDATE Language SET Status=1 WHERE Percentage > 50");
printf("Затронутые строки (UPDATE): %d\n", mysqli_affected_rows($link));

/* Удаление строк (Delete) */
mysqli_query($link, "DELETE FROM Language WHERE Percentage < 50");
printf("Затронутые строки (DELETE): %d\n", mysqli_affected_rows($link));

/* Выбор всех строк (Select) */
$result = mysqli_query($link, "SELECT CountryCode FROM Language");
printf("Затронутые строки (SELECT): %d\n", mysqli_affected_rows($link));

mysqli_free_result($result);

/* Удаление таблицы Language */
mysqli_query($link, "DROP TABLE Language");

/* Закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Затронутые строки (INSERT): 984
Затронутые строки (UPDATE): 168
Затронутые строки (DELETE): 815
Затронутые строки (SELECT): 169

Смотрите также

  • mysqli_num_rows() - Получает число рядов в результирующей выборке
  • mysqli_info() - Извлекает информацию о последнем выполненном запросе


Включает или отключает автоматическую фиксацию изменений базы данных

  • « mysqli::$affected_rows
  • mysqli::begin_transaction »
  • PHP Manual
  • mysqli
  • Включает или отключает автоматическую фиксацию изменений базы данных

mysqli::autocommit

mysqli_autocommit

(PHP 5, PHP 7)

mysqli::autocommit -- mysqli_autocommit — Включает или отключает автоматическую фиксацию изменений базы данных

Описание

Объектно-ориентированный стиль

bool mysqli::autocommit ( bool $mode )

Процедурный стиль

bool mysqli_autocommit ( mysqli $link , bool $mode )

Включает или отключает режим автоматической фиксации изменений для соединения с базой данных.

Чтобы определить текущее состояние режима используйте команду SQL SELECT @@autocommit.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

mode

Включает или отключает режим автоматической фиксации изменений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Эта функция не работает с таблицами без транзакций (MyISAM или ISAM).

Примеры

Пример #1 Пример использования mysqli::autocommit()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Включить режим фиксации */
$mysqli->autocommit(TRUE);

if ($result = $mysqli->query("SELECT @@autocommit")) {
    $row = $result->fetch_row();
    printf("Autocommit is %s\n", $row[0]);
    $result->free();
}

/* Закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

if (!$link) {
    printf("Can't connect to localhost. Error: %s\n", mysqli_connect_error());
    exit();
}

/* Включить режим фиксации */
mysqli_autocommit($link, TRUE);

if ($result = mysqli_query($link, "SELECT @@autocommit")) {
    $row = mysqli_fetch_row($result);
    printf("Autocommit is %s\n", $row[0]);
    mysqli_free_result($result);
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Autocommit is 1

Смотрите также

  • mysqli_begin_transaction() - Стартует транзакцию
  • mysqli_commit() - Фиксирует текущую транзакцию
  • mysqli_rollback() - Откат текущей транзакции


Стартует транзакцию

  • « mysqli::autocommit
  • mysqli::change_user »
  • PHP Manual
  • mysqli
  • Стартует транзакцию

mysqli::begin_transaction

mysqli_begin_transaction

(PHP 5 >= 5.5.0, PHP 7)

mysqli::begin_transaction -- mysqli_begin_transaction — Стартует транзакцию

Описание

Объектно-ориентированный стиль (method):

public bool mysqli::begin_transaction ([ int $flags [, string $name ]] )

Процедурный стиль:

bool mysqli_begin_transaction ( mysqli $link [, int $flags [, string $name ]] )

Стартует транзакцию. Требуется MySQL 5.6 или выше, использующий InnoDB (разрешен по умолчанию). Для дополнительной информации, как работают транзакции в MySQL, читайте » http://dev.mysql.com/doc/mysql/en/commit.html.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

flags

Корректные флаги:

  • MYSQLI_TRANS_START_READ_ONLY: Стартовать транзакцию как "START TRANSACTION READ ONLY".

  • MYSQLI_TRANS_START_READ_WRITE: Стартовать транзакцию как "START TRANSACTION READ WRITE".

  • MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT: Стартовать транзакцию как "START TRANSACTION WITH CONSISTENT SNAPSHOT".

name

Точка сохранения транзакции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример $mysqli->begin_transaction()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("127.0.0.1", "my_user", "my_password", "sakila");

if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$mysqli->begin_transaction(MYSQLI_TRANS_START_READ_ONLY);

$mysqli->query("SELECT first_name, last_name FROM actor");
$mysqli->commit();

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");

if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

mysqli_begin_transaction($link, MYSQLI_TRANS_START_READ_ONLY);

mysqli_query($link, "SELECT first_name, last_name FROM actor LIMIT 1");
mysqli_commit($link);

mysqli_close($link);
?>

Смотрите также

  • mysqli_autocommit() - Включает или отключает автоматическую фиксацию изменений базы данных
  • mysqli_commit() - Фиксирует текущую транзакцию
  • mysqli_rollback() - Откат текущей транзакции


Позволяет сменить пользователя подключенного к базе данных

  • « mysqli::begin_transaction
  • mysqli::character_set_name »
  • PHP Manual
  • mysqli
  • Позволяет сменить пользователя подключенного к базе данных

mysqli::change_user

mysqli_change_user

(PHP 5, PHP 7)

mysqli::change_user -- mysqli_change_user — Позволяет сменить пользователя подключенного к базе данных

Описание

Объектно-ориентированный стиль

bool mysqli::change_user ( string $user , string $password , string $database )

Процедурный стиль

bool mysqli_change_user ( mysqli $link , string $user , string $password , string $database )

Меняет пользователя, от имени которого выполнено подключение к базе данных, и устанавливает текущую базу данных

Для успешной смены пользователя необходимы корректные username и password, а так же наличие достаточных прав для работы с базой. Если смена пользователя закончится ошибкой, сохранится текущая авторизация пользователя, до вызова функции.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

user

Имя пользователя для доступа к MySQL

password

Пароль для доступа к MySQL

database

Имя базы данных

Если требуется сменить пользователя, без выбора базы данных, следует указывать NULL. Для выбора базы данных, необходимо использовать функцию mysqli_select_db().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

В результате вызова функции текущее соединение с базой данных начинает вести себя так, как будто было создано новое соединение. Независимо от результата операции, вызов функции приводит к откату всех активных транзакций, закрытию временных таблиц и разблокировки всех заблокированных таблиц.

Примеры

Пример #1 Пример использования mysqli::change_user()

Объектно-ориентированный стиль

<?php

/* создаем подключение к базе данных test */
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %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("Default database: %s\n", $row[0]);
    $result->close();
}

if ($result = $mysqli->query("SELECT @a")) {
    $row = $result->fetch_row();
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    $result->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
/* создаем подключение к базе данных test */
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* проверяем соединение */
if (!$link) {
    printf("Connect failed: %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("Default database: %s\n", $row[0]);
    mysqli_free_result($result);
}

if ($result = mysqli_query($link, "SELECT @a")) {
    $row = mysqli_fetch_row($result);
    if ($row[0] === NULL) {
        printf("Value of variable a is NULL\n");
    }
    mysqli_free_result($result);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Default database: world
Value of variable a is NULL

Смотрите также

  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysqli_select_db() - Устанавливает базу данных для выполняемых запросов


Возвращает кодировку по умолчанию, установленную для соединения с БД

  • « mysqli::change_user
  • mysqli::$client_info »
  • PHP Manual
  • mysqli
  • Возвращает кодировку по умолчанию, установленную для соединения с БД

mysqli::character_set_name

mysqli_character_set_name

(PHP 5, PHP 7)

mysqli::character_set_name -- mysqli_character_set_name — Возвращает кодировку по умолчанию, установленную для соединения с БД

Описание

Объектно-ориентированный стиль

string mysqli::character_set_name ( void )

Процедурный стиль

string mysqli_character_set_name ( mysqli $link )

Возвращает текущую кодировку, установленную для соединения с БД.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Кодировка по умолчанию, установленная для текущего соединения

Примеры

Пример #1 mysqli::character_set_name() example

Объектно-ориентированный стиль

<?php
/* Открыть соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* Вывод текущей кодировки */
$charset = $mysqli->character_set_name();
printf ("Текущая кодировка - %s\n", $charset);

$mysqli->close();
?>

Процедурный стиль

<?php
/* Открыть соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (!$link) {
    printf("Подключение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* Вывод текущей кодировки */
$charset = mysqli_character_set_name($link);
printf ("Текущая кодировка - %s\n",$charset);

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Текущая кодировка - latin1_swedish_ci

Смотрите также

  • mysqli_set_charset() - Задает набор символов по умолчанию
  • mysqli_client_encoding() - Синоним функции mysqli_character_set_name
  • mysqli_real_escape_string() - Экранирует специальные символы в строке для использования в SQL выражении, используя текущий набор символов соединения


Получает информацию о клиенте MySQL

  • « mysqli::character_set_name
  • mysqli::$client_version »
  • PHP Manual
  • mysqli
  • Получает информацию о клиенте MySQL

mysqli::$client_info

mysqli_get_client_info

(PHP 5, PHP 7)

mysqli::$client_info -- mysqli_get_client_info — Получает информацию о клиенте MySQL

Описание

Объектно-ориентированный стиль

string $mysqli->client_info;

Процедурный стиль

string mysqli_get_client_info ( mysqli $link )

Возвращает строку, содержащую версию библиотеки клиента MySQL.

Возвращаемые значения

Строка, содержащая версию библиотеки клиента MySQL

Примеры

Пример #1 mysqli_get_client_info

<?php

/* Для определения версии библиотеки клиента
   нет необходимсоти в создании подключения */

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::close »
  • PHP Manual
  • mysqli
  • Возвращает информацию о клиенте MySQL в виде строки

mysqli::$client_version

mysqli_get_client_version

(PHP 5, PHP 7)

mysqli::$client_version -- mysqli_get_client_version — Возвращает информацию о клиенте MySQL в виде строки

Описание

Объектно-ориентированный стиль

int $mysqli->client_version;

Процедурный стиль

int mysqli_get_client_version ( mysqli $link )

Возвращает версию клиента в виде целого числа.

Возвращаемые значения

Число, отражающее версию библиотеки клиента MySQL в формате: main_version*10000 + minor_version *100 + sub_version. К примеру, для версии 4.1.0 будет возвращено 40100.

Это полезно чтобы быстро определить версию клиентской библиотеки и узнать о существующих возможностях.

Примеры

Пример #1 mysqli_get_client_version

<?php

/* Для определения версии клиентской библиотеки
 не требуется подключение*/

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::commit »
  • PHP Manual
  • mysqli
  • Закрывает ранее открытое соединение с базой данных

mysqli::close

mysqli_close

(PHP 5, PHP 7)

mysqli::close -- mysqli_close — Закрывает ранее открытое соединение с базой данных

Описание

Объектно-ориентированный стиль

bool mysqli::close ( void )

Процедурный стиль

bool mysqli_close ( mysqli $link )

Закрывает ранее открытое соединение с базой данных.

Открытые непостоянные соединения MySQL и результирующие наборы автоматически удаляются сразу по окончании работы PHP скрипта. Следовательно, закрывать соединения и очищать результирующие наборы не обязательно, но рекомендуется, так как это сразу же освободит ресурсы базы данных и память, занимаемую результатами выборки, что может положительно сказаться на производительности. Больше информации можно почерпнуть в разделе Освобождение ресурсов

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

См. mysqli_connect().

Примечания

Замечание:

mysqli_close() не закрывает постоянные соединения. Для получения подробностей см. руководство по persistent connections.

Смотрите также

  • mysqli::__construct() - Устанавливает новое соединение с сервером MySQL
  • mysqli_init() - Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_free_result() - Освобождает память занятую результатами запроса


Фиксирует текущую транзакцию

  • « mysqli::close
  • mysqli::$connect_errno »
  • PHP Manual
  • mysqli
  • Фиксирует текущую транзакцию

mysqli::commit

mysqli_commit

(PHP 5, PHP 7)

mysqli::commit -- mysqli_commit — Фиксирует текущую транзакцию

Описание

Объектно-ориентированный стиль

bool mysqli::commit ([ int $flags [, string $name ]] )

Процедурный стиль

bool mysqli_commit ( mysqli $link [, int $flags [, string $name ]] )

Фиксирует транзакцию для установленного соединения с базой данных.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

flags

Битмаска констант MYSQLI_TRANS_COR_*.

name

Если передан, то выполняется COMMIT/*name*/.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | Добавлены параметры flags и name.

Примеры

Пример #1 Пример использования mysqli::commit()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE Language LIKE CountryLanguage");

/* Откл. автофиксацию изменений */
$mysqli->autocommit(FALSE);

/* Вставить некоторые значения */
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* Фиксировать транзакцию */
if (!$mysqli->commit()) {
    print("Не удалось зафиксировать транзакцию\n");
    exit();
}

/* Удалить таблицу */
$mysqli->query("DROP TABLE Language");

/* Закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* Проверить соединение */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Откл. автофиксацию изменений */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE Language LIKE CountryLanguage");

/* Вставить некоторые значения */
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
mysqli_query($link, "INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

/* Фиксировать транзакцию */
if (!mysqli_commit($link)) {
    print("Не удалось зафиксировать транзакцию\n");
    exit();
}

/* Закрыть соединение */
mysqli_close($link);
?>

Смотрите также

  • mysqli_autocommit() - Включает или отключает автоматическую фиксацию изменений базы данных
  • mysqli_begin_transaction() - Стартует транзакцию
  • mysqli_rollback() - Откат текущей транзакции
  • mysqli_savepoint() - Устанавливает именованную точку отката для текущей транзакции


Возвращает код ошибки последней попытки соединения

  • « mysqli::commit
  • mysqli::$connect_error »
  • PHP Manual
  • mysqli
  • Возвращает код ошибки последней попытки соединения

mysqli::$connect_errno

mysqli_connect_errno

(PHP 5, PHP 7)

mysqli::$connect_errno -- mysqli_connect_errno — Возвращает код ошибки последней попытки соединения

Описание

Объектно-ориентированный стиль

int $mysqli->connect_errno;

Процедурный стиль

int mysqli_connect_errno ( void )

Возвращает код ошибки последнего вызова mysqli_connect().

Замечание:

Номера ошибок клиента MySQL перечислены в файле errmsg.h, номера ошибок сервера перечислены в mysqld_error.h. В исходном пакете MySQL вы можете найти полный список сообщений об ошибках и их номерах в файле Docs/mysqld_error.txt.

Возвращаемые значения

Код ошибки последнего вызова mysqli_connect(). При отсутствие ошибок выводит 0.

Примеры

Пример #1 Пример использования $mysqli->connect_errno

Объектно-ориентированный стиль

<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');

if ($mysqli->connect_errno) {
    die('Ошибка соединения: ' . $mysqli->connect_errno);
}
?>

Процедурный стиль

<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');

if (!$link) {
    die('Ошибка соединения: ' . mysqli_connect_errno());
}
?>

Результат выполнения данных примеров:

Ошибка соединения: 1045

Смотрите также

  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysqli_connect_error() - Возвращает описание последней ошибки подключения
  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


Возвращает описание последней ошибки подключения

  • « mysqli::$connect_errno
  • mysqli::__construct »
  • PHP Manual
  • mysqli
  • Возвращает описание последней ошибки подключения

mysqli::$connect_error

mysqli_connect_error

(PHP 5, PHP 7)

mysqli::$connect_error -- mysqli_connect_error — Возвращает описание последней ошибки подключения

Описание

Объектно-ориентированный стиль

string $mysqli->connect_error;

Процедурный стиль

string mysqli_connect_error ( void )

Возвращает последнее сообщение об ошибке после вызова mysqli_connect().

Возвращаемые значения

Сообщение об ошибке. NULL, если ошибка отсутствует.

Примеры

Пример #1 Пример использования $mysqli->connect_error

Объектно-ориентированный стиль

<?php
$mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db');

// Работает в версиях PHP 5.2.9 и 5.3.0.
if ($mysqli->connect_error) {
    die('Connect Error: ' . $mysqli->connect_error);
}
?>

Процедурный стиль

<?php
$link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db');

if (!$link) {
    die('Connect Error: ' . mysqli_connect_error());
}
?>

Результат выполнения данных примеров:

Connect Error: Access denied for user 'fake_user'@'localhost' (using password: YES)

Примечания

Внимание

mysqli->connect_error() работает в версиях PHP 5.2.9 и 5.3.0. Для совместимости с более ранними версиями следует использовать mysqli_connect_error()

Смотрите также

  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysqli_connect_errno() - Возвращает код ошибки последней попытки соединения
  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


Устанавливает новое соединение с сервером MySQL

  • « mysqli::$connect_error
  • mysqli::debug »
  • PHP Manual
  • mysqli
  • Устанавливает новое соединение с сервером MySQL

mysqli::__construct

mysqli_connect

(PHP 5, PHP 7)

mysqli::__construct -- mysqli_connect — Устанавливает новое соединение с сервером MySQL

Описание

Объектно-ориентированный стиль

 mysqli::__construct
  ([ string $host = ini_get("mysqli.default_host")
 [, string $username = ini_get("mysqli.default_user")
 [, string $passwd = ini_get("mysqli.default_pw")
 [, string $dbname = ""
 [, int $port = ini_get("mysqli.default_port")
 [, string $socket = ini_get("mysqli.default_socket")
]]]]]] )

Процедурный стиль

 mysqli mysqli_connect
  ([ string $host = ini_get("mysqli.default_host")
 [, string $username = ini_get("mysqli.default_user")
 [, string $passwd = ini_get("mysqli.default_pw")
 [, string $dbname = ""
 [, int $port = ini_get("mysqli.default_port")
 [, string $socket = ini_get("mysqli.default_socket")
]]]]]] )

Устанавливает соединение с работающим сервером MySQL.

Список параметров

host

Может быть именем хоста или IP адресом. Передача NULL или строки "localhost" этому параметру означает, что в качестве хоста будет использоваться локальная машина, на которой запущен скрипт. Если есть такая возможность, будут использоваться пайпы вместо протокола TCP/IP.

Если перед именем хоста задать строку p:, то будет открыто постоянное соединение. Если соединение открыто из пула подключений, будет автоматически вызвана функция mysqli_change_user().

username

Имя пользователя MySQL.

passwd

Если не задан или равен NULL, MySQL сервер в первую очередь попытается аутентифицировать пользователя в принципе имеющего пароль, а затем будет искать среди пользователей, у которых нет пароля. Такой подход позволяет одному пользователю назначать различные права (в зависимости от того, задан пароль или нет).

dbname

Если параметр задан, его значение будет использоваться в качестве имени базы данных по умолчанию при выполнении запросов.

port

Задает номер порта для подключения к серверу MySQL.

socket

Задает сокет или именованный пайп, который необходимо использовать.

Замечание:

Передача параметра socket не будет явно задавать тип соединения при подключении к серверу MySQL. То, как будет устанавливаться соединение с MySQL сервером, определяется параметром host.

Возвращаемые значения

Возвращает объект, представляющий подключение к серверу MySQL.

Список изменений

Версия | Описание
5.3.0 | Добавлена возможность устанавливать постоянные соединения.

Примеры

Пример #1 Пример использования mysqli::__construct()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

/*
 * Это "официальный" объектно-ориентированный способ сделать это
 * однако $connect_error не работал вплоть до версий PHP 5.2.9 и 5.3.0.
 */
if ($mysqli->connect_error) {
    die('Ошибка подключения (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}

/*
 * Если нужно быть уверенным в совместимости с версиями до 5.2.9,
 * лучше использовать такой код
 */
if (mysqli_connect_error()) {
    die('Ошибка подключения (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Соединение установлено... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

Объектно-ориентированный стиль, когда расширяем класс mysqli

<?php

class foo_mysqli extends mysqli {
    public function __construct($host, $user, $pass, $db) {
        parent::__construct($host, $user, $pass, $db);

        if (mysqli_connect_error()) {
            die('Ошибка подключения (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
}

$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');

echo 'Соединение установлено... ' . $db->host_info . "\n";

$db->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

if (!$link) {
    die('Ошибка подключения (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Соединение установлено... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>

Результат выполнения данных примеров:

Соединение установлено... MySQL host info: localhost via TCP/IP

Примечания

Замечание:

MySQLnd всегда подразумевает кодировку, которую использует по умолчанию сервер. Эта кодировка передается во время установки соединения/авторизации, которые использует mysqlnd.

Libmysqlclient по умолчанию использует кодировку, установленную в my.cnf или специальным вызовом mysqli_options() до использования mysqli_real_connect(), но после mysqli_init().

Замечание:

Только для ОО подхода: Если соединение установить не удалось, метод все равно вернет объект. Проверить успешность создания подключения можно либо функцией mysqli_connect_error() или с помощью свойства mysqli->connect_error, как показано в примерах.

Замечание:

Если необходимо задать дополнительные параметры подключения, вроде таймаута и т.п., то вместо этого метода необходимо использовать функцию mysqli_real_connect().

Замечание:

Вызов конструктора без параметров идентичен вызову функции mysqli_init().

Замечание:

Ошибка "Can't create TCP/IP socket (10106)" обычно означает, что директива конфигурации variables_order не содержит символ E. В Windows системах, если окружение не скопировано, переменная среды SYSTEMROOT будет недоступна, и у PHP возникнут проблемы с загрузкой Winsock.

Смотрите также

  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_options() - Задание настроек
  • mysqli_connect_errno() - Возвращает код ошибки последней попытки соединения
  • mysqli_connect_error() - Возвращает описание последней ошибки подключения
  • mysqli_close() - Закрывает ранее открытое соединение с базой данных


Выполняет процедуры отладки

  • « mysqli::__construct
  • mysqli::dump_debug_info »
  • PHP Manual
  • mysqli
  • Выполняет процедуры отладки

mysqli::debug

mysqli_debug

(PHP 5, PHP 7)

mysqli::debug -- mysqli_debug — Выполняет процедуры отладки

Описание

Объектно-ориентированный стиль

bool mysqli::debug ( string $message )

Процедурный стиль

bool mysqli_debug ( string $message )

Выполняет процедуры отладки, используя библиотеку Fred Fish.

Список параметров

message

Строка, содержащая выполняемую процедуру отладки

Возвращаемые значения

Возвращает TRUE.

Примечания

Замечание:

Чтобы использовать функцию mysqli_debug() вы должны скомпилировать клиентскую библиотеку MySQL с поддержкой отладки.

Примеры

Пример #1 Generating a Trace File

<?php

/* Создать файл трассировки в '/tmp/client.trace' на локальной машине (клиенте): */
mysqli_debug("d:t:o,/tmp/client.trace");

?>

Смотрите также

  • mysqli_dump_debug_info() - Журналирование отладочной информации
  • mysqli_report() - Псевдоним mysqli_driver->report_mode


Журналирование отладочной информации

  • « mysqli::debug
  • mysqli::$errno »
  • PHP Manual
  • mysqli
  • Журналирование отладочной информации

mysqli::dump_debug_info

mysqli_dump_debug_info

(PHP 5, PHP 7)

mysqli::dump_debug_info -- mysqli_dump_debug_info — Журналирование отладочной информации

Описание

Объектно-ориентированный стиль

bool mysqli::dump_debug_info ( void )

Процедурный стиль

bool mysqli_dump_debug_info ( mysqli $link )

Эта функция разработана для запуска от имени пользователя с привилегиями SUPER и используется для сборка отладочной информации в журнал сервера MySQL к которому произведено подключение.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_debug() - Выполняет процедуры отладки


Возвращает код ошибки последнего вызова функции

  • « mysqli::dump_debug_info
  • mysqli::$error_list »
  • PHP Manual
  • mysqli
  • Возвращает код ошибки последнего вызова функции

mysqli::$errno

mysqli_errno

(PHP 5, PHP 7)

mysqli::$errno -- mysqli_errno — Возвращает код ошибки последнего вызова функции

Описание

Объектно-ориентированный стиль

int $mysqli->errno;

Процедурный стиль

int mysqli_errno ( mysqli $link )

Возвращает код ошибки последнего вызова функции MySQLi, завершившейся успехом или провалом.

Номера ошибок клиента MySQL перечислены в файле errmsg.h, номера ошибок сервера перечислены в mysqld_error.h. В исходном пакете MySQL вы можете найти полный список сообщений об ошибках и их номерах в файле Docs/mysqld_error.txt.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Код ошибки последнего вызова функции в случае провала. При отсутствие ошибок выводит 0.

Примеры

Пример #1 Пример использования $mysqli->errno

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Errorcode: %d\n", $mysqli->errno);
}

/* Закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errorcode: %d\n", mysqli_errno($link));
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Errorcode: 1193

Смотрите также

  • mysqli_connect_errno() - Возвращает код ошибки последней попытки соединения
  • mysqli_connect_error() - Возвращает описание последней ошибки подключения
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


Возвращает список ошибок выполнения последней запущенной команды

  • « mysqli::$errno
  • mysqli::$error »
  • PHP Manual
  • mysqli
  • Возвращает список ошибок выполнения последней запущенной команды

mysqli::$error_list

mysqli_error_list

(PHP 5 >= 5.4.0, PHP 7)

mysqli::$error_list -- mysqli_error_list — Возвращает список ошибок выполнения последней запущенной команды

Описание

Объектно-ориентированный стиль

array $mysqli->error_list;

Процедурный стиль

array mysqli_error_list ( mysqli $link )

Возвращает массив ошибок последнего вызова функции MySQLi, которая может завершать работу успехом или неудачей.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Список ошибок, каждая из которых представлена ассоциативным массивом (array) и содержит номер ошибки, ее описание, а также код состояния sqlstate.

Примеры

Пример #1 Пример использования $mysqli->error_list

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "nobody", "");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

if (!$mysqli->query("SET a=1")) {
    print_r($mysqli->error_list);
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    print_r(mysqli_error_list($link));
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Array
(
    [0] => Array
        (
            [errno] => 1193
            [sqlstate] => HY000
            [error] => Unknown system variable 'a'
        )

)

Смотрите также

  • mysqli_connect_errno() - Возвращает код ошибки последней попытки соединения
  • mysqli_connect_error() - Возвращает описание последней ошибки подключения
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


Возвращает строку с описанием последней ошибки

  • « mysqli::$error_list
  • mysqli::$field_count »
  • PHP Manual
  • mysqli
  • Возвращает строку с описанием последней ошибки

mysqli::$error

mysqli_error

(PHP 5, PHP 7)

mysqli::$error -- mysqli_error — Возвращает строку с описанием последней ошибки

Описание

Объектно-ориентированный стиль

string $mysqli->error;

Процедурный стиль

string mysqli_error ( mysqli $link )

Возвращает сообщение об ошибке последнего вызова функции MySQLi, который может успешно выполниться или провалиться.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Строка с описанием ошибки. Пустая строка, если ошибки нет.

Примеры

Пример #1 Пример с $mysqli->error

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

if (!$mysqli->query("SET a=1")) {
    printf("Errormessage: %s\n", $mysqli->error);
}

/* close connection */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

if (!mysqli_query($link, "SET a=1")) {
    printf("Errormessage: %s\n", mysqli_error($link));
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Errormessage: Unknown system variable 'a'

Смотрите также

  • mysqli_connect_errno() - Возвращает код ошибки последней попытки соединения
  • mysqli_connect_error() - Возвращает описание последней ошибки подключения
  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


Возвращает число столбцов, затронутых последним запросом

  • « mysqli::$error
  • mysqli::get_charset »
  • PHP Manual
  • mysqli
  • Возвращает число столбцов, затронутых последним запросом

mysqli::$field_count

mysqli_field_count

(PHP 5, PHP 7)

mysqli::$field_count -- mysqli_field_count — Возвращает число столбцов, затронутых последним запросом

Описание

Объектно-ориентированный стиль

int $mysqli->field_count;

Процедурный стиль

int mysqli_field_count ( mysqli $link )

Возвращает число столбцов, затронутых последним запросом для соединения, указанного в link. Эта функция может быть полезной при использовании mysqli_store_result() для того, чтобы определить выдан ли непустой результат, или в случае неизвестного назначения запроса.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Целое число, содержащее число полей в результате запроса.

Примеры

Пример #1 Пример использования $mysqli->field_count

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query( "DROP TABLE IF EXISTS friends");
$mysqli->query( "CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query( "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$mysqli->real_query("SELECT * FROM friends");

if ($mysqli->field_count) {
    /* Определить тип запроса (select/show или describe) */
    $result = $mysqli->store_result();

    /* Создать выборку */
    $row = $result->fetch_row();

    /* Очистить выборку */
    $result->close();
}

/* Закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

mysqli_real_query($link, "SELECT * FROM friends");

if (mysqli_field_count($link)) {
    /* Определить тип запроса (select/show или describe) */
    $result = mysqli_store_result($link);

    /* Создать выборку */
    $row = mysqli_fetch_row($result);

    /* Очистить выборку */
    mysqli_free_result($result);
}

/* Закрыть соединение */
mysqli_close($link);
?>


Возвращает объект, описывающий кодировку

  • « mysqli::$field_count
  • mysqli::get_client_info »
  • PHP Manual
  • mysqli
  • Возвращает объект, описывающий кодировку

mysqli::get_charset

mysqli_get_charset

(PHP 5 >= 5.1.0, PHP 7)

mysqli::get_charset -- mysqli_get_charset — Возвращает объект, описывающий кодировку

Описание

Объектно-ориентированный стиль

object mysqli::get_charset ( void )

Процедурный стиль

object mysqli_get_charset ( mysqli $link )

Возвращает объект, содержащий свойства текущей кодировки.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Функция возвращает объект с следующими свойствами:

charset

Имя кодировки

collation

Имя сопоставления

dir

Директория, из которой получено описание кодировки. (?) или "" для встроенных наборов

min_length

Минимальная длина символа в байтах

max_length

Максимальная длина символа в байтах

number

Внутренний номер кодировки

state

Состояние набора символов (?)

Примеры

Пример #1 Пример использования mysqli::get_charset()

Объектно-ориентированный стиль

<?php
  $db = mysqli_init();
  $db->real_connect("localhost","root","","test");
  var_dump($db->get_charset());
?>

Процедурный стиль

<?php
  $db = mysqli_init();
  mysqli_real_connect($db, "localhost","root","","test");
  var_dump(mysqli_get_charset($db));
?>

Результат выполнения данных примеров:

object(stdClass)#2 (7) {
  ["charset"]=>
  string(6) "latin1"
  ["collation"]=>
  string(17) "latin1_swedish_ci"
  ["dir"]=>
  string(0) ""
  ["min_length"]=>
  int(1)
  ["max_length"]=>
  int(1)
  ["number"]=>
  int(8)
  ["state"]=>
  int(801)
}

Смотрите также

  • mysqli_character_set_name() - Возвращает кодировку по умолчанию, установленную для соединения с БД
  • mysqli_set_charset() - Задает набор символов по умолчанию


Получает информацию о клиенте MySQL

  • « mysqli::get_charset
  • mysqli_get_client_stats »
  • PHP Manual
  • mysqli
  • Получает информацию о клиенте MySQL

mysqli::get_client_info

mysqli_get_client_info

(PHP 5, PHP 7)

mysqli::get_client_info -- mysqli_get_client_info — Получает информацию о клиенте MySQL

Описание

Объектно-ориентированный стиль

string mysqli::get_client_info ( void )

Процедурный стиль

string mysqli_get_client_info ( mysqli $link )

Возвращает строку, содержащую версию клиентской библиотеки MySQL.

Возвращаемые значения

Строка, содержащая версию клиентской библиотеки MySQL

Примеры

Пример #1 mysqli_get_client_info

<?php

/* Для определения версии клиентской библиотеки MySQL
   нет необходимости в создании соединения */

printf("Версия клиентской библиотеки: %s\n", mysqli_get_client_info());
?>

Смотрите также

  • mysqli_get_client_version() - Возвращает информацию о клиенте MySQL в виде строки
  • mysqli_get_server_info() - Возвращает версию MySQL сервера
  • mysqli_get_server_version() - Возвращает версию сервера MySQL, представленную в виде integer


Возвращает статистику клиента для каждого процесса

  • « mysqli::get_client_info
  • mysqli_get_client_version »
  • PHP Manual
  • mysqli
  • Возвращает статистику клиента для каждого процесса

mysqli_get_client_stats

(PHP 5 >= 5.3.0, PHP 7)

mysqli_get_client_stats — Возвращает статистику клиента для каждого процесса

Описание

array mysqli_get_client_stats ( void )

Возвращает статистику клиента для каждого процесса. Доступно только с расширением mysqlnd.

Список параметров

Возвращаемые значения

Возвращает массив со статистикой, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования mysqli_get_client_stats()

<?php
$link = mysqli_connect();
print_r(mysqli_get_client_stats());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

Смотрите также

  • Описание статистики


Возвращает информацию о клиенте MySQL в виде строки

  • « mysqli_get_client_stats
  • mysqli::get_connection_stats »
  • PHP Manual
  • mysqli
  • Возвращает информацию о клиенте MySQL в виде строки

mysqli_get_client_version

mysqli::$client_version

(PHP 5, PHP 7)

mysqli_get_client_version -- mysqli::$client_version — Возвращает информацию о клиенте MySQL в виде строки

Описание

Объектно-ориентированный стиль

int $mysqli->client_version;

Процедурный стиль

int mysqli_get_client_version ( mysqli $link )

Возвращает версию клиента в виде целого числа.

Возвращаемые значения

Число, содержащее версию клиентской библиотеки 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_get_client_version
  • mysqli::$host_info »
  • PHP Manual
  • mysqli
  • Возвращает статистику соединения с клиентом

mysqli::get_connection_stats

mysqli_get_connection_stats

(PHP 5 >= 5.3.0, PHP 7)

mysqli::get_connection_stats -- mysqli_get_connection_stats — Возвращает статистику соединения с клиентом

Описание

Объектно-ориентированный стиль

bool mysqli::get_connection_stats ( void )

Процедурный стиль

array mysqli_get_connection_stats ( mysqli $link )

Возвращает статистику соединения с клиентом. Доступно только с расширением mysqlnd.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает массив статистики соединения, либо FALSE при ошибке.

Примеры

Пример #1 Пример использования mysqli_get_connection_stats()

<?php
$link = mysqli_connect();
print_r(mysqli_get_connection_stats($link));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [bytes_sent] => 43
    [bytes_received] => 80
    [packets_sent] => 1
    [packets_received] => 2
    [protocol_overhead_in] => 8
    [protocol_overhead_out] => 4
    [bytes_received_ok_packet] => 11
    [bytes_received_eof_packet] => 0
    [bytes_received_rset_header_packet] => 0
    [bytes_received_rset_field_meta_packet] => 0
    [bytes_received_rset_row_packet] => 0
    [bytes_received_prepare_response_packet] => 0
    [bytes_received_change_user_packet] => 0
    [packets_sent_command] => 0
    [packets_received_ok] => 1
    [packets_received_eof] => 0
    [packets_received_rset_header] => 0
    [packets_received_rset_field_meta] => 0
    [packets_received_rset_row] => 0
    [packets_received_prepare_response] => 0
    [packets_received_change_user] => 0
    [result_set_queries] => 0
    [non_result_set_queries] => 0
    [no_index_used] => 0
    [bad_index_used] => 0
    [slow_queries] => 0
    [buffered_sets] => 0
    [unbuffered_sets] => 0
    [ps_buffered_sets] => 0
    [ps_unbuffered_sets] => 0
    [flushed_normal_sets] => 0
    [flushed_ps_sets] => 0
    [ps_prepared_never_executed] => 0
    [ps_prepared_once_executed] => 0
    [rows_fetched_from_server_normal] => 0
    [rows_fetched_from_server_ps] => 0
    [rows_buffered_from_client_normal] => 0
    [rows_buffered_from_client_ps] => 0
    [rows_fetched_from_client_normal_buffered] => 0
    [rows_fetched_from_client_normal_unbuffered] => 0
    [rows_fetched_from_client_ps_buffered] => 0
    [rows_fetched_from_client_ps_unbuffered] => 0
    [rows_fetched_from_client_ps_cursor] => 0
    [rows_skipped_normal] => 0
    [rows_skipped_ps] => 0
    [copy_on_write_saved] => 0
    [copy_on_write_performed] => 0
    [command_buffer_too_small] => 0
    [connect_success] => 1
    [connect_failure] => 0
    [connection_reused] => 0
    [reconnect] => 0
    [pconnect_success] => 0
    [active_connections] => 1
    [active_persistent_connections] => 0
    [explicit_close] => 0
    [implicit_close] => 0
    [disconnect_close] => 0
    [in_middle_of_command_close] => 0
    [explicit_free_result] => 0
    [implicit_free_result] => 0
    [explicit_stmt_close] => 0
    [implicit_stmt_close] => 0
    [mem_emalloc_count] => 0
    [mem_emalloc_ammount] => 0
    [mem_ecalloc_count] => 0
    [mem_ecalloc_ammount] => 0
    [mem_erealloc_count] => 0
    [mem_erealloc_ammount] => 0
    [mem_efree_count] => 0
    [mem_malloc_count] => 0
    [mem_malloc_ammount] => 0
    [mem_calloc_count] => 0
    [mem_calloc_ammount] => 0
    [mem_realloc_count] => 0
    [mem_realloc_ammount] => 0
    [mem_free_count] => 0
    [proto_text_fetched_null] => 0
    [proto_text_fetched_bit] => 0
    [proto_text_fetched_tinyint] => 0
    [proto_text_fetched_short] => 0
    [proto_text_fetched_int24] => 0
    [proto_text_fetched_int] => 0
    [proto_text_fetched_bigint] => 0
    [proto_text_fetched_decimal] => 0
    [proto_text_fetched_float] => 0
    [proto_text_fetched_double] => 0
    [proto_text_fetched_date] => 0
    [proto_text_fetched_year] => 0
    [proto_text_fetched_time] => 0
    [proto_text_fetched_datetime] => 0
    [proto_text_fetched_timestamp] => 0
    [proto_text_fetched_string] => 0
    [proto_text_fetched_blob] => 0
    [proto_text_fetched_enum] => 0
    [proto_text_fetched_set] => 0
    [proto_text_fetched_geometry] => 0
    [proto_text_fetched_other] => 0
    [proto_binary_fetched_null] => 0
    [proto_binary_fetched_bit] => 0
    [proto_binary_fetched_tinyint] => 0
    [proto_binary_fetched_short] => 0
    [proto_binary_fetched_int24] => 0
    [proto_binary_fetched_int] => 0
    [proto_binary_fetched_bigint] => 0
    [proto_binary_fetched_decimal] => 0
    [proto_binary_fetched_float] => 0
    [proto_binary_fetched_double] => 0
    [proto_binary_fetched_date] => 0
    [proto_binary_fetched_year] => 0
    [proto_binary_fetched_time] => 0
    [proto_binary_fetched_datetime] => 0
    [proto_binary_fetched_timestamp] => 0
    [proto_binary_fetched_string] => 0
    [proto_binary_fetched_blob] => 0
    [proto_binary_fetched_enum] => 0
    [proto_binary_fetched_set] => 0
    [proto_binary_fetched_geometry] => 0
    [proto_binary_fetched_other] => 0
)

Смотрите также

  • Описание статистики


Возвращает строку, содержащую тип используемого соединения

  • « mysqli::get_connection_stats
  • mysqli::$protocol_version »
  • PHP Manual
  • mysqli
  • Возвращает строку, содержащую тип используемого соединения

mysqli::$host_info

mysqli_get_host_info

(PHP 5, PHP 7)

mysqli::$host_info -- mysqli_get_host_info — Возвращает строку, содержащую тип используемого соединения

Описание

Объектно-ориентированный стиль

string $mysqli->host_info;

Процедурный стиль

string mysqli_get_host_info ( mysqli $link )

Возвращает строку, описывающую соединение, которое обозначено в параметре link (включая имя хоста сервера).

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Символьная строка, содержащая имя хоста сервера и тип подключения.

Примеры

Пример #1 Пример использования $mysqli->host_info

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* вывод информации о хосте */
printf("Host info: %s\n", $mysqli->host_info);

/* закрытие соединения */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* вывод информации о хосте */
printf("Host info: %s\n", mysqli_get_host_info($link));

/* закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Host info: Localhost via UNIX socket

Смотрите также

  • mysqli_get_proto_info() - Возвращает версию используемого MySQL протокола


Возвращает версию используемого MySQL протокола

  • « mysqli::$host_info
  • mysqli::$server_info »
  • PHP Manual
  • mysqli
  • Возвращает версию используемого MySQL протокола

mysqli::$protocol_version

mysqli_get_proto_info

(PHP 5, PHP 7)

mysqli::$protocol_version -- mysqli_get_proto_info — Возвращает версию используемого MySQL протокола

Описание

Объектно-ориентированный стиль

string $mysqli->protocol_version;

Процедурный стиль

int mysqli_get_proto_info ( mysqli $link )

Возвращает целое число, представляющее собой версию протокола MySQL, используемого для соединения, переданного в link.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает целое число, представляющее версию протокола.

Примеры

Пример #1 Пример использования $mysqli->protocol_version

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Вывести версию протокола */
printf("Protocol version: %d\n", $mysqli->protocol_version);

/* Закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* Вывести версию протокола */
printf("Protocol version: %d\n", mysqli_get_proto_info($link));

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Protocol version: 10

Смотрите также

  • mysqli_get_host_info() - Возвращает строку, содержащую тип используемого соединения


Возвращает версию MySQL сервера

  • « mysqli::$protocol_version
  • mysqli::$server_version »
  • PHP Manual
  • mysqli
  • Возвращает версию MySQL сервера

mysqli::$server_info

mysqli_get_server_info

(PHP 5, PHP 7)

mysqli::$server_info -- mysqli_get_server_info — Возвращает версию MySQL сервера

Описание

Объектно-ориентированный стиль

string $mysqli->server_info;

Процедурный стиль

string mysqli_get_server_info ( mysqli $link )

Возвращает строку, содержащую версию сервера MySQL, к которому также подключено расширение MySQLi.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Строка символов, содержащая версию сервера.

Примеры

Пример #1 Пример использования $mysqli->server_info

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* проверить соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* вывести версию сервера */
printf("Server version: %s\n", $mysqli->server_info);

/* закрыть соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* проверить соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* вывести версию сервера */
printf("Server version: %s\n", mysqli_get_server_info($link));

/* закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Server version: 4.1.2-alpha-debug

Смотрите также

  • mysqli_get_client_info() - Получает информацию о клиенте MySQL
  • mysqli_get_client_version() - Возвращает информацию о клиенте MySQL в виде строки
  • mysqli_get_server_version() - Возвращает версию сервера MySQL, представленную в виде integer


Возвращает версию сервера MySQL, представленную в виде integer

  • « mysqli::$server_info
  • mysqli::get_warnings »
  • PHP Manual
  • mysqli
  • Возвращает версию сервера MySQL, представленную в виде integer

mysqli::$server_version

mysqli_get_server_version

(PHP 5, PHP 7)

mysqli::$server_version -- mysqli_get_server_version — Возвращает версию сервера MySQL, представленную в виде integer

Описание

Объектно-ориентированный стиль

int $mysqli->server_version;

Процедурный стиль

int mysqli_get_server_version ( mysqli $link )

Функция mysqli_get_server_version() возвращает версию сервера, к которому создано соединение (переданое в параметре link), как integer.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Целочисленное представление версии сервера.

Это число собирается следующим образом main_version * 10000 + minor_version * 100 + sub_version (т.е. версия 4.1.0 будет представлена как 40100).

Примеры

Пример #1 Пример использования $mysqli->server_version

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

/* выводим версию сервера */
printf("Версия сервера: %d\n", $mysqli->server_version);

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* выводим версию сервера */
printf("Версия сервера: %d\n", mysqli_get_server_version($link));

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Server version: 40102

Смотрите также

  • mysqli_get_client_info() - Получает информацию о клиенте MySQL
  • mysqli_get_client_version() - Возвращает информацию о клиенте MySQL в виде строки
  • mysqli_get_server_info() - Возвращает версию MySQL сервера


Получает результат SHOW WARNINGS

  • « mysqli::$server_version
  • mysqli::$info »
  • PHP Manual
  • mysqli
  • Получает результат SHOW WARNINGS

mysqli::get_warnings

mysqli_get_warnings

(PHP 5 >= 5.1.0, PHP 7)

mysqli::get_warnings -- mysqli_get_warnings — Получает результат SHOW WARNINGS

Описание

Объектно-ориентированный стиль

mysqli_warning mysqli::get_warnings ( void )

Процедурный стиль

mysqli_warning mysqli_get_warnings ( mysqli $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Извлекает информацию о последнем выполненном запросе

  • « mysqli::get_warnings
  • mysqli::init »
  • PHP Manual
  • mysqli
  • Извлекает информацию о последнем выполненном запросе

mysqli::$info

mysqli_info

(PHP 5, PHP 7)

mysqli::$info -- mysqli_info — Извлекает информацию о последнем выполненном запросе

Описание

Объектно-ориентированный стиль

string $mysqli->info;

Процедурный стиль

string mysqli_info ( mysqli $link )

Функция mysqli_info() возвращает строку с информацией о последнем выполненном запросе к базе данных. Описание строки приведено ниже:

Возможные возвращаемые значения mysqli_info
Тип запроса | Пример результирующей строки
INSERT INTO...SELECT... | Records: 100 Duplicates: 0 Warnings: 0
INSERT INTO...VALUES (...),(...),(...) | Records: 3 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ... | Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE ... | Records: 3 Duplicates: 0 Warnings: 0
UPDATE ... | Rows matched: 40 Changed: 40 Warnings: 0

Замечание:

Запросы, не попадающие в приведенный список, не поддерживаются. В таких ситуациях mysqli_info() вернет пустую строку.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Строка символов представляющая дополнительную информацию о последнем запущенном запросе.

Примеры

Пример #1 Пример использования $mysqli->info

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
$mysqli->query("INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", $mysqli->info);

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE t1 LIKE City");

/* INSERT INTO .. SELECT */
mysqli_query($link, "INSERT INTO t1 SELECT * FROM City ORDER BY ID LIMIT 150");
printf("%s\n", mysqli_info($link));

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Records: 150  Duplicates: 0  Warnings: 0

Смотрите также

  • mysqli_affected_rows() - Получает число строк, затронутых предыдущей операцией MySQL
  • mysqli_warning_count() - Возвращает количество предупреждений из последнего запроса заданного подключения
  • mysqli_num_rows() - Получает число рядов в результирующей выборке


Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()

  • « mysqli::$info
  • mysqli::$insert_id »
  • PHP Manual
  • mysqli
  • Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()

mysqli::init

mysqli_init

(PHP 5, PHP 7)

mysqli::init -- mysqli_init — Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()

Описание

Объектно-ориентированный стиль

mysqli mysqli::init ( void )

Процедурный стиль

mysqli mysqli_init ( void )

Выделяет память или инициализирует объект MYSQL пригодный для использования в функциях mysqli_options() и mysqli_real_connect().

Замечание:

Любые последующие вызовы mysqli функций с этим ресурсом (кроме mysqli_options()) потерпят неудачу, пока не будет вызвана функцияmysqli_real_connect().

Возвращаемые значения

Возвращает объект.

Примеры

См. mysqli_real_connect().

Смотрите также

  • mysqli_options() - Задание настроек
  • mysqli_close() - Закрывает ранее открытое соединение с базой данных
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_connect() - Псевдоним mysqli::__construct


Возвращает автоматически генерируемый ID, используя последний запрос

  • « mysqli::init
  • mysqli::kill »
  • PHP Manual
  • mysqli
  • Возвращает автоматически генерируемый ID, используя последний запрос

mysqli::$insert_id

mysqli_insert_id

(PHP 5, PHP 7)

mysqli::$insert_id -- mysqli_insert_id — Возвращает автоматически генерируемый ID, используя последний запрос

Описание

Объектно-ориентированный стиль

mixed $mysqli->insert_id;

Процедурный стиль

mixed mysqli_insert_id ( mysqli $link )

Функция mysqli_insert_id() возвращает ID, генерируемый запросом к таблице, которая содержит колонку с атрибутом AUTO_INCREMENT. Если последний запрос не был INSERT или UPDATE или в модифицируемой таблице отсутствует колонка с атрибутом AUTO_INCREMENT, данная функция вернет ноль.

Замечание:

Выполнение выражения INSERT или UPDATE, используя функцию LAST_INSERT_ID(), также изменяет значение, возвращаемое функцией mysqli_insert_id().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Значение поля AUTO_INCREMENT, которое было затронуто предыдущим запросом. Возвращает ноль, если предыдущий запрос не затронул таблицы, содержащие поле AUTO_INCREMENT.

Замечание:

Если число больше максимального значения int, функция mysqli_insert_id() вернет строку.

Примеры

Пример #1 Пример функции $mysqli->insert_id

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не установлено: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("ID новой записи: %d.\n", $mysqli->insert_id);

/* удаление таблицы */
$mysqli->query("DROP TABLE myCity");

/* закрытие соединения */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не установлено: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
mysqli_query($link, $query);

printf ("ID новой записи: %d.\n", mysqli_insert_id($link));

/* удаление таблицы */
mysqli_query($link, "DROP TABLE myCity");

/* закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

ID новой записи: 1.


Запрос для сервера завершить выполнение процесса MySQL

  • « mysqli::$insert_id
  • mysqli::more_results »
  • PHP Manual
  • mysqli
  • Запрос для сервера завершить выполнение процесса MySQL

mysqli::kill

mysqli_kill

(PHP 5, PHP 7)

mysqli::kill -- mysqli_kill — Запрос для сервера завершить выполнение процесса MySQL

Описание

Объектно-ориентированный стиль

bool mysqli::kill ( int $processid )

Процедурный стиль

bool mysqli_kill ( mysqli $link , int $processid )

Эта функция используется, чтобы отправить на сервер команду завершить MySQL процесс заданный параметром processid. Значение этого параметра должно быть получено с помощью функции mysqli_thread_id().

Для завершения работы текущего запроса используйте SQL команду KILL QUERY processid.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::kill()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* определим id нашего процесса */
$thread_id = $mysqli->thread_id;

/* убиваем соединение */
$mysqli->kill($thread_id);

/* здесь должна произойти ошибка */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Ошибка: %s\n", $mysqli->error);
    exit;
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* определим id нашего процесса */
$thread_id = mysqli_thread_id($link);

/* убиваем соединение */
mysqli_kill($link, $thread_id);

/* здесь должна произойти ошибка */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Ошибка: %s\n", mysqli_error($link));
    exit;
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Error: MySQL server has gone away

Смотрите также

  • mysqli_thread_id() - Возвращает ID процесса текущего подключения


Проверка, есть ли еще результаты в мультизапросе

  • « mysqli::kill
  • mysqli::multi_query »
  • PHP Manual
  • mysqli
  • Проверка, есть ли еще результаты в мультизапросе

mysqli::more_results

mysqli_more_results

(PHP 5, PHP 7)

mysqli::more_results -- mysqli_more_results — Проверка, есть ли еще результаты в мультизапросе

Описание

Объектно-ориентированный стиль

bool mysqli::more_results ( void )

Процедурный стиль

bool mysqli_more_results ( mysqli $link )

Указывает, есть ли еще доступные результирующие наборы от предыдущего вызова функции mysqli_multi_query().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращается TRUE в случае, если один или более результирующих наборов доступны после предыдущего вызова функции mysqli_multi_query(), иначе FALSE.

Примеры

См. mysqli_multi_query().

Смотрите также

  • mysqli_multi_query() - Выполняет запрос к базе данных
  • mysqli_next_result() - Подготовка следующего доступного результирующего набора из multi_query
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Выполняет запрос к базе данных

  • « mysqli::more_results
  • mysqli::next_result »
  • PHP Manual
  • mysqli
  • Выполняет запрос к базе данных

mysqli::multi_query

mysqli_multi_query

(PHP 5, PHP 7)

mysqli::multi_query -- mysqli_multi_query — Выполняет запрос к базе данных

Описание

Объектно-ориентированный стиль

bool mysqli::multi_query ( string $query )

Процедурный стиль

bool mysqli_multi_query ( mysqli $link , string $query )

Запускает на выполнение один или несколько запросов, перечисленных через точку с запятой.

Чтобы получить результирующий набор первого запроса, можно использовать функции
mysqli_use_result() или
mysqli_store_result(). Остальные результирующие наборы
извлекаются функциями mysqli_more_results()
и mysqli_next_result().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

query

Текст запроса в виде строки.

Данные внутри запроса должны быть правильно экранированы.

Возвращаемые значения

Возвращает FALSE, если первое выражение вызвало ошибку. Чтобы получить доступ к ошибкам остальных подзапросов, нужно сначала вызвать функцию mysqli_next_result().

Примеры

Пример #1 Пример использования mysqli::multi_query()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* запускаем мультизапрос */
if ($mysqli->multi_query($query)) {
    do {
        /* получаем первый результирующий набор */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* печатаем разделитель */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* запускаем мультизапрос */
if (mysqli_multi_query($link, $query)) {
    do {
        /* получаем первый результирующий набор */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* печатаем разделитель */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* закрываем соединение */
mysqli_close($link);
?>

Результатом выполнения данных примеров будет что-то подобное:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Смотрите также

  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_next_result() - Подготовка следующего доступного результирующего набора из multi_query
  • mysqli_more_results() - Проверка, есть ли еще результаты в мультизапросе


Подготовка следующего доступного результирующего набора из multi_query

  • « mysqli::multi_query
  • mysqli::options »
  • PHP Manual
  • mysqli
  • Подготовка следующего доступного результирующего набора из multi_query

mysqli::next_result

mysqli_next_result

(PHP 5, PHP 7)

mysqli::next_result -- mysqli_next_result — Подготовка следующего доступного результирующего набора из multi_query

Описание

Объектно-ориентированный стиль

bool mysqli::next_result ( void )

Процедурный стиль

bool mysqli_next_result ( mysqli $link )

Подготавливает следующий доступный результирующий набор предыдущего вызова
функции mysqli_multi_query(), который затем можно получить
функциями mysqli_store_result() или
mysqli_use_result().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

См. mysqli_multi_query().

Смотрите также

  • mysqli_multi_query() - Выполняет запрос к базе данных
  • mysqli_more_results() - Проверка, есть ли еще результаты в мультизапросе
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Задание настроек

  • « mysqli::next_result
  • mysqli::ping »
  • PHP Manual
  • mysqli
  • Задание настроек

mysqli::options

mysqli_options

(PHP 5, PHP 7)

mysqli::options -- mysqli_options — Задание настроек

Описание

Объектно-ориентированный стиль

bool mysqli::options ( int $option , mixed $value )

Процедурный стиль

bool mysqli_options ( mysqli $link , int $option , mixed $value )

Используется для задания дополнительных настроек соединения и поведения подключения к базе данных.

Эту функцию можно вызывать неоднократно, чтобы задать несколько настроек.

mysqli_options() нужно вызывать после
mysqli_init() и перед
mysqli_real_connect().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

option

Настройка, которую требуется задать. Это может быть одно из следующих значений:

Допустимые настройки
Имя | Описание
MYSQLI_OPT_CONNECT_TIMEOUT | таймаут соединения в секундах (поддерживается в Windows с TCP/IP, начиная с PHP 5.3.1)
MYSQLI_OPT_LOCAL_INFILE | включение/выключение LOAD LOCAL INFILE
MYSQLI_INIT_COMMAND | команда, которую требуется выполнить сразу после подключения к серверу MySQL
MYSQLI_READ_DEFAULT_FILE | Читать настройки из именованного файла вместо my.cnf
MYSQLI_READ_DEFAULT_GROUP | Читать настройки из именованной группы в файле my.cnf или другом файле, заданным настройкой MYSQL_READ_DEFAULT_FILE.
MYSQLI_SERVER_PUBLIC_KEY | Файл публичного ключа RSA для авторизации на базе SHA-2560.
MYSQLI_OPT_NET_CMD_BUFFER_SIZE | Размер внутреннего коммандного/сетевого буфера. Работает только с mysqlnd.
MYSQLI_OPT_NET_READ_BUFFER_SIZE | Максимальный размер блока для чтения в байтах при чтении командного пакета MySQL. Работает только с mysqlnd.
MYSQLI_OPT_INT_AND_FLOAT_NATIVE | Преобразовывает столбцы типов integer и float к числам PHP, а не строкам. Работает только с mysqlnd.
MYSQLI_OPT_SSL_VERIFY_SERVER_CERT

value

Значение настройки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | Добавлены опции MYSQLI_SERVER_PUBLIC_KEY и MYSQLI_SERVER_PUBLIC_KEY.
5.3.0 | Добавлены опции MYSQLI_OPT_INT_AND_FLOAT_NATIVE, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, MYSQLI_OPT_NET_READ_BUFFER_SIZE, и MYSQLI_OPT_SSL_VERIFY_SERVER_CERT.

Примеры

См. mysqli_real_connect().

Примечания

Замечание:

MySQLnd всегда подразумевает кодировку, которую использует по умолчанию сервер. Эта кодировка передается во время установки соединения/авторизации, которые использует mysqlnd.

Libmysqlclient по умолчанию использует кодировку, установленную в my.cnf или специальным вызовом mysqli_options() до использования mysqli_real_connect(), но после mysqli_init().

Смотрите также

  • mysqli_init() - Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql


Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано

  • « mysqli::options
  • mysqli::poll »
  • PHP Manual
  • mysqli
  • Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано

mysqli::ping

mysqli_ping

(PHP 5, PHP 7)

mysqli::ping -- mysqli_ping — Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано

Описание

Объектно-ориентированный стиль

bool mysqli::ping ( void )

Процедурный стиль

bool mysqli_ping ( mysqli $link )

Проверяет работоспособность соединения с сервером. Если соединение разорвано, а глобальная настройка mysqli.reconnect включена, PHP попытается автоматически переподключиться.

Замечание: Настройка php.ini mysqli.reconnect игнорируется драйвером "mysqlnd", так что автоматического переподключения не произойдет.

Эта функция может использоваться клиентами, которые простаивают без дела долгое время, чтобы проверить, что сервер их не отключил, и переподключиться в случае необходимости.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::ping()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if ($mysqli->connect_errno) {
    printf("Не удалось подключиться: %s\n", $mysqli->connect_error);
    exit();
}

/* проверим, жив ли сервер */
if ($mysqli->ping()) {
    printf ("Соединение в порядке!\n");
} else {
    printf ("Ошибка: %s\n", $mysqli->error);
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* проверим, жив ли сервер */
if (mysqli_ping($link)) {
    printf ("Соединение в порядке!\n");
} else {
    printf ("Ошибка: %s\n", mysqli_error($link));
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Our connection is ok!


Опрос подключений

  • « mysqli::ping
  • mysqli::prepare »
  • PHP Manual
  • mysqli
  • Опрос подключений

mysqli::poll

mysqli_poll

(PHP 5 >= 5.3.0, PHP 7)

mysqli::poll -- mysqli_poll — Опрос подключений

Описание

Объектно-ориентированный стиль

public static int mysqli::poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )

Процедурный стиль

int mysqli_poll ( array &$read , array &$error , array &$reject , int $sec [, int $usec ] )

Опрос подключений. Доступно только с расширением mysqlnd. Метод может использоваться как статический.

Список параметров

read

Список соединений для проверки наличия оставшихся результатов, которые можно прочитать.

error

Список соединений, на которых произошли ошибки, например, не удался запрос или соединение было потеряно.

reject

Список соединений, которые были отклонены, потому что на них не был запущен асинхронный запрос, с которым функция может получить результат опроса.

sec

Число секунд ожидания, должно быть неотрицательным.

usec

Число миллисекунд ожидания, должно быть неотрицательным.

Возвращаемые значения

Возвращает количество готовых к работе соединений в случае успеха, FALSE в случае неудачи.

Примеры

Пример #1 Пример использования mysqli_poll()

<?php
$link1 = mysqli_connect();
$link1->query("SELECT 'test'", MYSQLI_ASYNC);
$all_links = array($link1);
$processed = 0;
do {
    $links = $errors = $reject = array();
    foreach ($all_links as $link) {
        $links[] = $errors[] = $reject[] = $link;
    }
    if (!mysqli_poll($links, $errors, $reject, 1)) {
        continue;
    }
    foreach ($links as $link) {
        if ($result = $link->reap_async_query()) {
            print_r($result->fetch_row());
            if (is_object($result))
                mysqli_free_result($result);
        } else die(sprintf("Ошибка MySQLi: %s", mysqli_error($link)));
        $processed++;
    }
} while ($processed < count($all_links));
?>

Результат выполнения данного примера:

Array
(
    [0] => test
)

Смотрите также

  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_reap_async_query() - Получение результата асинхронного запроса


Подготавливает SQL выражение к выполнению

  • « mysqli::poll
  • mysqli::query »
  • PHP Manual
  • mysqli
  • Подготавливает SQL выражение к выполнению

mysqli::prepare

mysqli_prepare

(PHP 5, PHP 7)

mysqli::prepare -- mysqli_prepare — Подготавливает SQL выражение к выполнению

Описание

Объектно-ориентированный стиль

mysqli_stmt mysqli::prepare ( string $query )

Процедурный стиль

mysqli_stmt mysqli_prepare ( mysqli $link , string $query )

Подготавливает SQL запрос и возвращает указатель на это выражение, который может использоваться для дальнейших операций с этим выражением. Запрос должен состоять из одного SQL выражения.

Метки параметров должны быть связаны с переменными приложения функциями mysqli_stmt_bind_param() и/или mysqli_stmt_bind_result() до запуска запроса или выборки строк.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

query

Текст запроса в виде строки.

Замечание:

Нет необходимости в завершающей точке с запятой или символе \g в конце выражения.

Этот параметр может содержать одну или несколько меток параметров SQL запроса. Эти метки можно добавить путем встраивания знаков вопроса (?) в места выражения, где требуется подставлять параметры.

Замечание:

Эти метки можно встраивать только в определенные места в выражении. Например, они допустимы в списке VALUES() выражения INSERT (чтобы задать значения столбцов для строки), или в операциях сравнения предложения WHERE для задания сравниваемого значения.

Тем не менее, эти метки недопустимы в качестве идентификаторов (таких как имена столбцов или таблиц), а также в списке псевдонимов столбцов предложения SELECT. Нельзя также использовать параметры для задания обоих операндов бинарного оператора (например, знак равенства =). Последнее ограничение необходимо, так как в противном случае невозможно будет определить тип операндов. Еще недопустимо сравнивать метку параметра с NULL выражением ? IS NULL. В основном, параметры допустимы в выражениях языка манипулирования данными (DML), и недопустимы в выражениях языка определения данных (DDL).

Возвращаемые значения

mysqli_prepare() возвращает объект запроса или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования mysqli::prepare()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* создаем подготавливаемый запрос */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

    /* связываем параметры с метками */
    $stmt->bind_param("s", $city);

    /* запускаем запрос */
    $stmt->execute();

    /* связываем переменные с результатами запроса */
    $stmt->bind_result($district);

    /* получаем значения */
    $stmt->fetch();

    printf("%s находится в округе %s\n", $city, $district);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* создаем подготавливаемый запрос */
if ($stmt = mysqli_prepare($link, "SELECT District FROM City WHERE Name=?")) {

    /* связываем параметры с метками */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* запускаем запрос */
    mysqli_stmt_execute($stmt);

    /* связываем переменные с результатами запроса */
    mysqli_stmt_bind_result($stmt, $district);

    /* получаем значения */
    mysqli_stmt_fetch($stmt);

    printf("%s находится в округе %s\n", $city, $district);

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Amersfoort is in district Utrecht

Смотрите также

  • mysqli_stmt_execute() - Выполняет подготовленный запрос
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата
  • mysqli_stmt_close() - Закрывает подготовленный запрос


Выполняет запрос к базе данных

  • « mysqli::prepare
  • mysqli::real_connect »
  • PHP Manual
  • mysqli
  • Выполняет запрос к базе данных

mysqli::query

mysqli_query

(PHP 5, PHP 7)

mysqli::query -- mysqli_query — Выполняет запрос к базе данных

Описание

Объектно-ориентированный стиль

mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

Процедурный стиль

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

Выполняет запрос query к базе данных.

Для не-DML запросов (не INSERT, UPDATE или DELETE),
эта функция равносильна вызову
функции mysqli_real_query(), а затем
mysqli_use_result() или
mysqli_store_result().

Замечание:

В случае, если длина выражения, которое вы передаете в mysqli_query(), больше, чем max_allowed_packet сервера, возвращаемые коды ошибки могут различаться в зависимости от используемого драйвера. А это может быть либо родной MySQL драйвер (mysqlnd), либо клиентская библиотека MySQL (libmysqlclient). Поведение функции будет следующим:

  • mysqlnd на платформе Linux возвращает код ошибки 1153. Сообщение об ошибке означает "размер пакета превышает max_allowed_packet байт".

  • mysqlnd на платформе Windows возвращает код ошибки 2006. Это сообщение об ошибке означает "отказ сервера".

  • libmysqlclient на всех платформах возвращает код ошибки 2006. Это сообщение об ошибке означает "отказ сервера".

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

query

Текст запроса.

Данные в тексте запроса должны быть правильно экранированы.

resultmode

Либо константа MYSQLI_USE_RESULT, либо MYSQLI_STORE_RESULT в зависимости от требуемого поведения функции. По умолчанию используется MYSQLI_STORE_RESULT.

При использовании MYSQLI_USE_RESULT все последующие вызовы этой функции будут возвращать ошибку Commands out of sync до тех пор, пока не будет вызвана функция mysqli_free_result()

С константой MYSQLI_ASYNC (доступна при использовании mysqlnd) возможно выполнять запросы асинхронно. В этом случае для получения результатов каждого запроса необходимо использовать функцию mysqli_poll().

Возвращаемые значения

Возвращает FALSE в случае неудачи. В случае успешного выполнения запросов SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query() вернет объект mysqli_result. Для остальных успешных запросов mysqli_query() вернет TRUE.

Список изменений

Версия | Описание
5.3.0 | Добавлена возможность выполнять асинхронные запросы.

Примеры

Пример #1 Пример использования mysqli::query()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if ($mysqli->connect_errno) {
    printf("Не удалось подключиться: %s\n", $mysqli->connect_error);
    exit();
}

/* Создание таблицы не возвращает результирующего набора */
if ($mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Таблица myCity успешно создана.\n");
}

/* Select запросы возвращают результирующий набор */
if ($result = $mysqli->query("SELECT Name FROM City LIMIT 10")) {
    printf("Select вернул %d строк.\n", $result->num_rows);

    /* очищаем результирующий набор */
    $result->close();
}

/* Если нужно извлечь большой объем данных, используем MYSQLI_USE_RESULT */
if ($result = $mysqli->query("SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Важно заметить, что мы не можем вызывать функции, которые взаимодействуют
       с сервером, пока не закроем результирующий набор. Все подобные вызовы
       будут вызывать ошибку 'out of sync' */
    if (!$mysqli->query("SET @a:='this will not work'")) {
        printf("Ошибка: %s\n", $mysqli->error);
    }
    $result->close();
}

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* Создание таблицы не возвращает результирующего набора */
if (mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City") === TRUE) {
    printf("Таблица myCity успешно создана.\n");
}

/* Select запросы возвращают результирующий набор */
if ($result = mysqli_query($link, "SELECT Name FROM City LIMIT 10")) {
    printf("Select вернул %d строк.\n", mysqli_num_rows($result));

    /* очищаем результирующий набор */
    mysqli_free_result($result);
}

/* Если нужно извлечь большой объем данных, используем MYSQLI_USE_RESULT */
if ($result = mysqli_query($link, "SELECT * FROM City", MYSQLI_USE_RESULT)) {

    /* Важно заметить, что мы не можем вызывать функции, которые взаимодействуют
       с сервером, пока не закроем результирующий набор. Все подобные вызовы
       будут вызывать ошибку 'out of sync' */
    if (!mysqli_query($link, "SET @a:='this will not work'")) {
        printf("Ошибка: %s\n", mysqli_error($link));
    }
    mysqli_free_result($result);
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

Таблица myCity успешно создана.
Select вернул 10 строк.
Ошибка: Commands out of sync;  You can't run this command now

Смотрите также

  • mysqli_real_query() - Выполнение SQL запроса
  • mysqli_multi_query() - Выполняет запрос к базе данных
  • mysqli_free_result() - Освобождает память занятую результатами запроса


Устанавливает соединение с сервером mysql

  • « mysqli::query
  • mysqli::real_escape_string »
  • PHP Manual
  • mysqli
  • Устанавливает соединение с сервером mysql

mysqli::real_connect

mysqli_real_connect

(PHP 5, PHP 7)

mysqli::real_connect -- mysqli_real_connect — Устанавливает соединение с сервером mysql

Описание

Объектно-ориентированный стиль

bool mysqli::real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )

Процедурный стиль

bool mysqli_real_connect ( mysqli $link [, string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )

Устанавливает соединение с СУБД MySQL.

Эта функция отличается от mysqli_connect():

  • Для работы mysqli_real_connect() необходим действительный объект, созданный функцией mysqli_init().

  • С помощью функции mysqli_options() можно задать различные настройки подключения.

  • Параметр flags.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

host

Может быть именем хоста или IP адресом. Передача NULL или строки "localhost" этому параметру означает, что в качестве хоста будет использоваться локальная машина, на которой запущен скрипт. Если есть такая возможность, будут использоваться пайпы вместо протокола TCP/IP.

username

Имя пользователя MySQL.

passwd

Если не задан или равен NULL, MySQL сервер в первую очередь попытается аутентифицировать пользователя в принципе имеющего пароль, а затем будет искать среди пользователей, у которых нет пароля. Такой подход позволяет одному пользователю назначать различные права (в зависимости от того, задан пароль или нет).

dbname

Если параметр задан, его значение будет использоваться в качестве имени базы данных по умолчанию при выполнении запросов.

port

Порт, к которому будет производиться подключение.

socket

Задает номер порта для подключения к серверу MySQL.

Замечание:

Передача параметра socket не будет явно задавать тип соединения при подключении к серверу MySQL. То, как будет устанавливаться соединение с MySQL сервером, определяется параметром host.

flags

С помощью параметра flags можно задать некоторые настройки соединения:

Поддерживаемые флаги
Имя | Описание
MYSQLI_CLIENT_COMPRESS | Использовать протокол сжатия
MYSQLI_CLIENT_FOUND_ROWS | Возвращать количество строк, подошедших условиям выборки, вместо количества затронутых запросом строк
MYSQLI_CLIENT_IGNORE_SPACE | Допускать пробелы после имен функций. Делает все имена функций зарезервированными словами.
MYSQLI_CLIENT_INTERACTIVE | Допускать interactive_timeout секунд (вместо wait_timeout) простоя, прежде чем закрыть соединение
MYSQLI_CLIENT_SSL | Использовать SSL (шифрование)
MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT | Аналогично MYSQLI_CLIENT_SSL, но запрещает проверку SSL сертификата. Работает только с MySQL Native Driver и MySQL 5.6 и выше.

Замечание:

По причинам безопасности, флаг MULTI_STATEMENT не поддерживается в PHP. Если необходимо выполнять мультизапросы, используйте функцию mysqli_multi_query().

Список изменений

Версия | Описание
5.6.16 | Добавлен флаг MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT для MySQL Native Driver

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::real_connect()

Объектно-ориентированный стиль

<?php

$mysqli = mysqli_init();
if (!$mysqli) {
    die('mysqli_init завершилась провалом');
}

if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
    die('Установка MYSQLI_INIT_COMMAND завершилась провалом');
}

if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
    die('Установка MYSQLI_OPT_CONNECT_TIMEOUT завершилась провалом');
}

if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) {
    die('Ошибка подключения (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Выполнено... ' . $mysqli->host_info . "\n";

$mysqli->close();
?>

Объектно-ориентированный стиль при расширении класса mysqli

<?php

class foo_mysqli extends mysqli {
    public function __construct($host, $user, $pass, $db) {
        parent::init();

        if (!parent::options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
            die('Установка MYSQLI_INIT_COMMAND завершилась провалом');
        }

        if (!parent::options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
            die('Установка MYSQLI_OPT_CONNECT_TIMEOUT завершилась провалом');
        }

        if (!parent::real_connect($host, $user, $pass, $db)) {
            die('Ошибка подключения (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
}

$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');

echo 'Выполнено... ' . $db->host_info . "\n";

$db->close();
?>

Процедурный стиль

<?php

$link = mysqli_init();
if (!$link) {
    die('mysqli_init завершилась провалом');
}

if (!mysqli_options($link, MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
    die('Установка MYSQLI_INIT_COMMAND завершилась провалом');
}

if (!mysqli_options($link, MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
    die('Установка MYSQLI_OPT_CONNECT_TIMEOUT завершилась провалом');
}

if (!mysqli_real_connect($link, 'localhost', 'my_user', 'my_password', 'my_db')) {
    die('Ошибка подключения (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Выполнено... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>

Результат выполнения данных примеров:

Выполнено... MySQL host info: localhost via TCP/IP

Примечания

Замечание:

MySQLnd всегда подразумевает кодировку, которую использует по умолчанию сервер. Эта кодировка передается во время установки соединения/авторизации, которые использует mysqlnd.

Libmysqlclient по умолчанию использует кодировку, установленную в my.cnf или специальным вызовом mysqli_options() до использования mysqli_real_connect(), но после mysqli_init().

Смотрите также

  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysqli_init() - Инициализирует MySQLi и возвращает ресурс для использования в функции mysqli_real_connect()
  • mysqli_options() - Задание настроек
  • mysqli_ssl_set() - Используется для установления безопасных соединений, используя SSL
  • mysqli_close() - Закрывает ранее открытое соединение с базой данных


Экранирует специальные символы в строке для использования в SQL выражении, используя текущий набор символов соединения

  • « mysqli::real_connect
  • mysqli::real_query »
  • PHP Manual
  • mysqli
  • Экранирует специальные символы в строке для использования в SQL выражении, используя текущий набор символов соединения

mysqli::real_escape_string

mysqli_real_escape_string

(PHP 5, PHP 7)

mysqli::real_escape_string -- mysqli_real_escape_string — Экранирует специальные символы в строке для использования в SQL выражении, используя текущий набор символов соединения

Описание

Объектно-ориентированный стиль

string mysqli::escape_string ( string $escapestr )
string mysqli::real_escape_string ( string $escapestr )

Процедурный стиль

string mysqli_real_escape_string ( mysqli $link , string $escapestr )

Эта функция используется для создания допустимых в SQL строк, которые можно использовать в SQL выражениях. Заданная строка кодируется в экранированную SQL строку, используя текущий набор символов подключения.

Предостережение

Безопасность: набор символов по умолчанию

Набор символов должен быть задан либо на стороне сервера, либо с помощью API функции mysqli_set_charset(). В противном случае mysqli_real_escape_string() работать не будет. За дополнительной информацией обращайтесь к документации наборы символов.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

escapestr

Строка, которую требуется экранировать.

Экранируемые символы NUL (ASCII 0), \n, \r, \, ', ", и Control-Z.

Возвращаемые значения

Возвращает экранированную строку.

Примеры

Пример #1 Пример использования mysqli::real_escape_string()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* этот запрос вызовет ошибку, так как мы не экранировали $city */
if (!$mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Ошибка: %s\n", $mysqli->sqlstate);
}

$city = $mysqli->real_escape_string($city);

/* этот запрос отработает нормально */
if ($mysqli->query("INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d строк вставлено.\n", $mysqli->affected_rows);
}

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TEMPORARY TABLE myCity LIKE City");

$city = "'s Hertogenbosch";

/* этот запрос вызовет ошибку, так как мы не экранировали $city */
if (!mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("Ошибка: %s\n", mysqli_sqlstate($link));
}

$city = mysqli_real_escape_string($link, $city);

/* этот запрос отработает нормально */
if (mysqli_query($link, "INSERT into myCity (Name) VALUES ('$city')")) {
    printf("%d строк вставлено.\n", mysqli_affected_rows($link));
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка: 42000
1 строк вставлено.

Примечания

Замечание:

Тем, кто привык использовать функцию mysql_real_escape_string(), следует обратить внимание, что аргументы mysqli_real_escape_string() отличаются от аргументов mysql_real_escape_string(). Идентификатор link в mysqli_real_escape_string() идет первым, в то время как в mysql_real_escape_string() первой идет экранируемая строка.

Смотрите также

  • mysqli_set_charset() - Задает набор символов по умолчанию
  • mysqli_character_set_name() - Возвращает кодировку по умолчанию, установленную для соединения с БД


Выполнение SQL запроса

  • « mysqli::real_escape_string
  • mysqli::reap_async_query »
  • PHP Manual
  • mysqli
  • Выполнение SQL запроса

mysqli::real_query

mysqli_real_query

(PHP 5, PHP 7)

mysqli::real_query -- mysqli_real_query — Выполнение SQL запроса

Описание

Объектно-ориентированный стиль

bool mysqli::real_query ( string $query )

Процедурный стиль

bool mysqli_real_query ( mysqli $link , string $query )

Выполняет одиночный запрос к базе данных, результаты которого можно получить или использовать функциями mysqli_store_result() или mysqli_use_result().

Чтобы определить, должен ли запрос возвращать результирующий набор, см. mysqli_field_count().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

query

Текст запроса в виде строки.

Данные в тексте запроса должны быть правильно экранированы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Получение результата асинхронного запроса

  • « mysqli::real_query
  • mysqli::refresh »
  • PHP Manual
  • mysqli
  • Получение результата асинхронного запроса

mysqli::reap_async_query

mysqli_reap_async_query

(PHP 5 >= 5.3.0, PHP 7)

mysqli::reap_async_query -- mysqli_reap_async_query — Получение результата асинхронного запроса

Описание

Объектно-ориентированный стиль

public mysqli_result mysqli::reap_async_query ( void )

Процедурный стиль

mysqli_result mysqli_reap_async_query ( mysqli $link )

Получает результат асинхронного запроса. Доступно только с расширением mysqlnd.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает mysqli_result в случае успешного завершения, FALSE в противном случае.

Смотрите также

  • mysqli_poll() - Опрос подключений


Обновление

  • « mysqli::reap_async_query
  • mysqli::release_savepoint »
  • PHP Manual
  • mysqli
  • Обновление

mysqli::refresh

mysqli_refresh

(PHP 5 <= 5.3.0)

mysqli::refresh -- mysqli_refresh — Обновление

Описание

Объектно-ориентированный стиль

public bool mysqli::refresh ( int $options )

Процедурный стиль

int mysqli_refresh ( resource $link , int $options )

Очищает таблицы или кэш, либо сбрасывает копию серверной информации.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

options

Настройки обновления задаются константами MYSQLI_REFRESH_*, которые описаны в разделе документации Константы MySQLi.

См. также официальную документацию » MySQL Refresh.

Возвращаемые значения

TRUE в случае успешного выполнения, FALSE в противном случае.

Смотрите также

  • mysqli_poll() - Опрос подключений


Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции

  • « mysqli::refresh
  • mysqli::rollback »
  • PHP Manual
  • mysqli
  • Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции

mysqli::release_savepoint

mysqli_release_savepoint

(PHP 5 >= 5.5.0, PHP 7)

mysqli::release_savepoint -- mysqli_release_savepoint — Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции

Описание

Объектно-ориентированный стиль (method):

public bool mysqli::release_savepoint ( string $name )

Процедурный стиль:

bool mysqli_release_savepoint ( mysqli $link , string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

name

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_rollback() - Откат текущей транзакции


Откат текущей транзакции

  • « mysqli::release_savepoint
  • mysqli::rpl_query_type »
  • PHP Manual
  • mysqli
  • Откат текущей транзакции

mysqli::rollback

mysqli_rollback

(PHP 5, PHP 7)

mysqli::rollback -- mysqli_rollback — Откат текущей транзакции

Описание

Объектно-ориентированный стиль

bool mysqli::rollback ([ int $flags [, string $name ]] )

Процедурный стиль

bool mysqli_rollback ( mysqli $link [, int $flags [, string $name ]] )

Откатывает текущую транзакцию.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

flags

Битовая маска констант MYSQLI_TRANS_COR_*.

name

Если передана, то выполняется ROLLBACK/*name*/.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | Добавлены параметры flags и name.

Примеры

Пример #1 Пример использования mysqli::rollback()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* выключаем автофиксацию */
$mysqli->autocommit(FALSE);

$mysqli->query("CREATE TABLE myCity LIKE City");
$mysqli->query("ALTER TABLE myCity Type=InnoDB");
$mysqli->query("INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* фиксируем вставленные строки */
$mysqli->commit();

/* удаляем все строки */
$mysqli->query("DELETE FROM myCity");

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d строк в таблице myCity.\n", $row[0]);
    /* очищаем результат */
    $result->close();
}

/* откат */
$mysqli->rollback();

if ($result = $mysqli->query("SELECT COUNT(*) FROM myCity")) {
    $row = $result->fetch_row();
    printf("%d строк в таблице myCity (after rollback).\n", $row[0]);
    /* очищаем результат */
    $result->close();
}

/* удаляем таблицу myCity */
$mysqli->query("DROP TABLE myCity");

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* выключаем автофиксацию */
mysqli_autocommit($link, FALSE);

mysqli_query($link, "CREATE TABLE myCity LIKE City");
mysqli_query($link, "ALTER TABLE myCity Type=InnoDB");
mysqli_query($link, "INSERT INTO myCity SELECT * FROM City LIMIT 50");

/* фиксируем вставленные строки */
mysqli_commit($link);

/* удаляем все строки */
mysqli_query($link, "DELETE FROM myCity");

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d строк в таблице myCity.\n", $row[0]);
    /* очищаем результат */
    mysqli_free_result($result);
}

/* откат */
mysqli_rollback($link);

if ($result = mysqli_query($link, "SELECT COUNT(*) FROM myCity")) {
    $row = mysqli_fetch_row($result);
    printf("%d строк в таблице myCity (после отката).\n", $row[0]);
    /* очищаем результат */
    mysqli_free_result($result);
}

/* удаляем таблицу myCity */
mysqli_query($link, "DROP TABLE myCity");

mysqli_close($link);
?>

Результат выполнения данных примеров:

0 строк в таблице myCity.
50 строк в таблице myCity (после отката).

Смотрите также

  • mysqli_begin_transaction() - Стартует транзакцию
  • mysqli_commit() - Фиксирует текущую транзакцию
  • mysqli_autocommit() - Включает или отключает автоматическую фиксацию изменений базы данных
  • mysqli_release_savepoint() - Удаляет именованную точку сохранения из списка точек сохранения текущей транзакции


Возвращает RPL тип запроса

  • « mysqli::rollback
  • mysqli::savepoint »
  • PHP Manual
  • mysqli
  • Возвращает RPL тип запроса

mysqli::rpl_query_type

mysqli_rpl_query_type

(PHP 5, PHP 7)

mysqli::rpl_query_type -- mysqli_rpl_query_type — Возвращает RPL тип запроса

Описание

Объектно-ориентированный стиль

int mysqli::rpl_query_type ( string $query )

Процедурный стиль

int mysqli_rpl_query_type ( mysqli $link , string $query )

Возвращает MYSQLI_RPL_MASTER, MYSQLI_RPL_SLAVE или MYSQLI_RPL_ADMIN в зависимости от типа запроса. INSERT, UPDATE и подобные являются master запросами, SELECT - slave, а FLUSH, REPAIR и им подобные - admin запросы.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА начиная с версии PHP 5.3.0.


Устанавливает именованную точку отката для текущей транзакции

  • « mysqli::rpl_query_type
  • mysqli::select_db »
  • PHP Manual
  • mysqli
  • Устанавливает именованную точку отката для текущей транзакции

mysqli::savepoint

mysqli_savepoint

(PHP 5 >= 5.5.0, PHP 7)

mysqli::savepoint -- mysqli_savepoint — Устанавливает именованную точку отката для текущей транзакции

Описание

Объектно-ориентированный стиль (method):

public bool mysqli::savepoint ( string $name )

Процедурный стиль:

bool mysqli_savepoint ( mysqli $link , string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

name

Имя точки отката

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_commit() - Фиксирует текущую транзакцию


Устанавливает базу данных для выполняемых запросов

  • « mysqli::savepoint
  • mysqli::send_query »
  • PHP Manual
  • mysqli
  • Устанавливает базу данных для выполняемых запросов

mysqli::select_db

mysqli_select_db

(PHP 5, PHP 7)

mysqli::select_db -- mysqli_select_db — Устанавливает базу данных для выполняемых запросов

Описание

Объектно-ориентированный стиль

bool mysqli::select_db ( string $dbname )

Процедурный стиль

bool mysqli_select_db ( mysqli $link , string $dbname )

Устанавливает базу данных, которая будет использоваться при выполнении запросов к базе данных

Замечание:

Эта функция используется только для смены базы данных во время подключения. Вы можете выбрать базу данных, передав ее четвертым параметром в функции mysqli_connect().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

dbname

Имя базы данных.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::select_db()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* возвращаем имя текущей базы данных */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

/* изменяем текущую базу данных на world */
$mysqli->select_db("world");

/* возвращаем имя текущей базы данных */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.\n", $row[0]);
    $result->close();
}

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* возвращаем имя текущей базы данных */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

/* изменяем текущую базу данных на world */
mysqli_select_db($link, "world");

/* возвращаем имя текущей базы данных */
if ($result = mysqli_query($link, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("Default database is %s.\n", $row[0]);
    mysqli_free_result($result);
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

Default database is test.
Default database is world.

Смотрите также

  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql


Отправка запроса и возврат

  • « mysqli::select_db
  • mysqli::set_charset »
  • PHP Manual
  • mysqli
  • Отправка запроса и возврат

mysqli::send_query

mysqli_send_query

(PHP 5, PHP 7)

mysqli::send_query -- mysqli_send_query — Отправка запроса и возврат

Описание

Объектно-ориентированный стиль

bool mysqli::send_query ( string $query )

Процедурный стиль

bool mysqli_send_query ( mysqli $link , string $query )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА начиная с версии PHP 5.3.0.


Задает набор символов по умолчанию

  • « mysqli::send_query
  • mysqli::set_local_infile_default »
  • PHP Manual
  • mysqli
  • Задает набор символов по умолчанию

mysqli::set_charset

mysqli_set_charset

(PHP 5 >= 5.0.5, PHP 7)

mysqli::set_charset -- mysqli_set_charset — Задает набор символов по умолчанию

Описание

Объектно-ориентированный стиль

bool mysqli::set_charset ( string $charset )

Процедурный стиль

bool mysqli_set_charset ( mysqli $link , string $charset )

Задает набор символов по умолчанию, который будет использоваться при обмене данными с сервером баз данных.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

charset

Набор символов, который необходимо установить.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Чтобы использовать эту функцию на Windows платформах, вам потребуется клиентская библиотека MySQL версии 4.1.11 или выше (для MySQL 5.0 соответственно 5.0.6 или выше).

Замечание:

Это предпочтительный способ задания набора символов. Использование для этих целей функции mysqli_query() (например SET NAMES utf8) не рекомендуется. Дополнительно см. Наборы символов в MySQL.

Примеры

Пример #1 Пример использования mysqli::set_charset()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

printf("Изначальная кодировка: %s\n", $mysqli->character_set_name());

/* изменение набора символов на utf8 */
if (!$mysqli->set_charset("utf8")) {
    printf("Ошибка при загрузке набора символов utf8: %s\n", $mysqli->error);
    exit();
} else {
    printf("Текущий набор символов: %s\n", $mysqli->character_set_name());
}

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

printf("Изначальная кодировка: %s\n", $mysqli->character_set_name());

/* изменение набора символов на utf8 */
if (!mysqli_set_charset($link, "utf8")) {
    printf("Ошибка при загрузке набора символов utf8: %s\n", mysqli_error($link));
    exit();
} else {
    printf("Текущий набор символов: %s\n", mysqli_character_set_name($link));
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

Изначальная кодировка: latin1
Текущий набор символов: utf8

Смотрите также

  • mysqli_character_set_name() - Возвращает кодировку по умолчанию, установленную для соединения с БД
  • mysqli_real_escape_string() - Экранирует специальные символы в строке для использования в SQL выражении, используя текущий набор символов соединения
  • Концепции кодировок MySQL
  • » Список поддерживаемых MySQL наборов символов


Отмена привязки callback-функции для команды load local infile

  • « mysqli::set_charset
  • mysqli::set_local_infile_handler »
  • PHP Manual
  • mysqli
  • Отмена привязки callback-функции для команды load local infile

mysqli::set_local_infile_default

mysqli_set_local_infile_default

(PHP 5, PHP 7)

mysqli::set_local_infile_default -- mysqli_set_local_infile_default — Отмена привязки callback-функции для команды load local infile

Описание

void mysqli_set_local_infile_default ( mysqli $link )

Отменяет привязку функции обработчика для команды LOAD DATA INFILE LOCAL, которую ранее задали функцией mysqli_set_local_infile_handler().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

См. примеры к функции mysqli_set_local_infile_handler()

Смотрите также

  • mysqli_set_local_infile_handler() - Задает callback-функцию для команды LOAD DATA LOCAL INFILE


Задает callback-функцию для команды LOAD DATA LOCAL INFILE

  • « mysqli::set_local_infile_default
  • mysqli::$sqlstate »
  • PHP Manual
  • mysqli
  • Задает callback-функцию для команды LOAD DATA LOCAL INFILE

mysqli::set_local_infile_handler

mysqli_set_local_infile_handler

(PHP 5, PHP 7)

mysqli::set_local_infile_handler -- mysqli_set_local_infile_handler — Задает callback-функцию для команды LOAD DATA LOCAL INFILE

Описание

Объектно-ориентированный стиль

bool mysqli::set_local_infile_handler ( mysqli $link , callable $read_func )

Процедурный стиль

bool mysqli_set_local_infile_handler ( mysqli $link , callable $read_func )

Задает callback-функцию для команды LOAD DATA LOCAL INFILE

Задача callback-функции состоит в том, чтобы считать данные из файла, заданного в LOAD DATA LOCAL INFILE, и преобразовать их в формат понятный для LOAD DATA INFILE.

Возвращаемые данные должны соответствовать формату, заданному в LOAD DATA

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

read_func

Callback-функция или объектный метод принимающий следующие параметры:

stream

PHP поток ассоциированный с SQL командами INFILE

&buffer

Строковый буфер для хранения перезаписанных данных

buflen

Максимальное количество символов, которое может вместить буфер

&errormsg

В случае ошибки сюда можно поместить ее описание

Callback-функция должна возвращать число символов, размещенное в буфере buffer или отрицательное число, если произошла ошибка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysqli::set_local_infile_handler()

Объектно-ориентированный стиль

<?php
  $db = mysqli_init();
  $db->real_connect("localhost","root","","test");

  function callme($stream, &$buffer, $buflen, &$errmsg)
  {
    $buffer = fgets($stream);

    echo $buffer;

    // приведение к верхнему регистру и замена разделителя "," на [TAB]
    $buffer = strtoupper(str_replace(",", "\t", $buffer));

    return strlen($buffer);
  }

  echo "Входные данные:\n";

  $db->set_local_infile_handler("callme");
  $db->query("LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
  $db->set_local_infile_default();

  $res = $db->query("SELECT * FROM t1");

  echo "\nРезультат:\n";
  while ($row = $res->fetch_assoc()) {
    echo join(",", $row)."\n";
  }
?>

Процедурный стиль

<?php
  $db = mysqli_init();
  mysqli_real_connect($db, "localhost","root","","test");

  function callme($stream, &$buffer, $buflen, &$errmsg)
  {
    $buffer = fgets($stream);

    echo $buffer;

    // приведение к верхнему регистру и замена разделителя "," на [TAB]
    $buffer = strtoupper(str_replace(",", "\t", $buffer));

    return strlen($buffer);
  }

  echo "Входные данные:\n";

  mysqli_set_local_infile_handler($db, "callme");
  mysqli_query($db, "LOAD DATA LOCAL INFILE 'input.txt' INTO TABLE t1");
  mysqli_set_local_infile_default($db);

  $res = mysqli_query($db, "SELECT * FROM t1");

  echo "\nРезультат:\n";
  while ($row = mysqli_fetch_assoc($res)) {
    echo join(",", $row)."\n";
  }
?>

Результат выполнения данных примеров:

Входные данные:
23,foo
42,bar

Результат:
23,FOO
42,BAR

Смотрите также

  • mysqli_set_local_infile_default() - Отмена привязки callback-функции для команды load local infile


Возвращает код состояния SQLSTATE последней MySQL операции

  • « mysqli::set_local_infile_handler
  • mysqli::ssl_set »
  • PHP Manual
  • mysqli
  • Возвращает код состояния SQLSTATE последней MySQL операции

mysqli::$sqlstate

mysqli_sqlstate

(PHP 5, PHP 7)

mysqli::$sqlstate -- mysqli_sqlstate — Возвращает код состояния SQLSTATE последней MySQL операции

Описание

Объектно-ориентированный стиль

string $mysqli->sqlstate;

Процедурный стиль

string mysqli_sqlstate ( mysqli $link )

Возвращает строку с SQLSTATE кодом последней ошибки. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок. Эти коды определены в стандарте ANSI, а также в ODBC. Посмотреть список возможных значений можно на странице » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Замечание:

Следует заметить, что еще не все MySQL ошибки имеют отражение в SQLSTATE кодах. Для подобных ошибок используется код HY000 (общая ошибка).

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает строку с SQLSTATE кодом последней ошибки. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок.

Примеры

Пример #1 Пример использования $mysqli->sqlstate

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* таблица City уже существует, так что мы должны получить ошибку */
if (!$mysqli->query("CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Ошибка - SQLSTATE %s.\n", $mysqli->sqlstate);
}

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* таблица City уже существует, так что мы должны получить ошибку */
if (!mysqli_query($link, "CREATE TABLE City (ID INT, Name VARCHAR(30))")) {
    printf("Ошибка - SQLSTATE %s.\n", mysqli_sqlstate($link));
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка - SQLSTATE 42S01.

Смотрите также

  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysqli_error() - Возвращает строку с описанием последней ошибки


Используется для установления безопасных соединений, используя SSL

  • « mysqli::$sqlstate
  • mysqli::stat »
  • PHP Manual
  • mysqli
  • Используется для установления безопасных соединений, используя SSL

mysqli::ssl_set

mysqli_ssl_set

(PHP 5, PHP 7)

mysqli::ssl_set -- mysqli_ssl_set — Используется для установления безопасных соединений, используя SSL

Описание

Объектно-ориентированный стиль

bool mysqli::ssl_set ( string $key , string $cert , string $ca , string $capath , string $cipher )

Процедурный стиль

bool mysqli_ssl_set ( mysqli $link , string $key , string $cert , string $ca , string $capath , string $cipher )

Используется для установления безопасных соединений, используя SSL. Функцию необходимо вызывать до вызова mysqli_real_connect(). Для работы функции требуется включить поддержку OpenSSL, в противном случае функция делать ничего не будет.

Следует упомянуть, что MySQL Native Driver не поддерживает SSL до версии PHP 5.3.3, так что вызов функции при использовании этого драйвера приведет к ошибке. MySQL Native Driver включен по умолчанию на платформах Microsoft Windows в версиях PHP 5.3 и выше.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

key

Путь и имя ключевого файла.

cert

Путь и имя файла сертификата.

ca

Путь и имя файла с разрешениями сертификата.

capath

Путь к директории, в которой хранятся доверенные SSL CA сертификаты в формате PEM.

cipher

Список допустимых шифров для использования в SSL шифровании.

Неиспользуемые SSL параметры можно задать как NULL

Возвращаемые значения

Функция всегда возвращает TRUE. Если SSL установлен некорректно mysqli_real_connect() вернет ошибку при попытке подключения.

Смотрите также

  • mysqli_options() - Задание настроек
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql


Получение информации о текущем состоянии системы

  • « mysqli::ssl_set
  • mysqli::stmt_init »
  • PHP Manual
  • mysqli
  • Получение информации о текущем состоянии системы

mysqli::stat

mysqli_stat

(PHP 5, PHP 7)

mysqli::stat -- mysqli_stat — Получение информации о текущем состоянии системы

Описание

Объектно-ориентированный стиль

string mysqli::stat ( void )

Процедурный стиль

string mysqli_stat ( mysqli $link )

mysqli_stat() возвращает строку с информацией, схожей с той, что предоставляет команда 'mysqladmin status'. Сюда включается время работы с момента загрузки в секундах, количество запущенных процессов, запросов, перезагрузок и открытых таблиц.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Строка с информацией о состоянии системы. FALSE в случае ошибки.

Примеры

Пример #1 Пример использования mysqli::stat()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

printf ("Состояние системы: %s\n", $mysqli->stat());

$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

printf("Состояние системы: %s\n", mysqli_stat($link));

mysqli_close($link);
?>

Результат выполнения данных примеров:

Состояние системы: Uptime: 272  Threads: 1  Questions: 5340  Slow queries: 0
Opens: 13  Flush tables: 1  Open tables: 0  Queries per second avg: 19.632
Memory in use: 8496K  Max memory used: 8560K

Смотрите также

  • mysqli_get_server_info() - Возвращает версию MySQL сервера


Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare

  • « mysqli::stat
  • mysqli::store_result »
  • PHP Manual
  • mysqli
  • Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare

mysqli::stmt_init

mysqli_stmt_init

(PHP 5, PHP 7)

mysqli::stmt_init -- mysqli_stmt_init — Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare

Описание

Объектно-ориентированный стиль

mysqli_stmt mysqli::stmt_init ( void )

Процедурный стиль

mysqli_stmt mysqli_stmt_init ( mysqli $link )

Выделяет память и инициализирует объект запроса, который можно использовать в функции mysqli_stmt_prepare().

Замечание:

Все последующие вызовы mysqli_stmt функций вызовут ошибку, пока не будет вызвана функция mysqli_stmt_prepare().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает объект.

Смотрите также

  • mysqli_stmt_prepare() - Подготовка SQL запроса к выполнению


Передает на клиента результирующий набор последнего запроса

  • « mysqli::stmt_init
  • mysqli::$thread_id »
  • PHP Manual
  • mysqli
  • Передает на клиента результирующий набор последнего запроса

mysqli::store_result

mysqli_store_result

(PHP 5, PHP 7)

mysqli::store_result -- mysqli_store_result — Передает на клиента результирующий набор последнего запроса

Описание

Объектно-ориентированный стиль

mysqli_result mysqli::store_result ([ int $option ] )

Процедурный стиль

mysqli_result mysqli_store_result ( mysqli $link [, int $option ] )

Передает результирующий набор последнего запроса на соединении link. Дальнейшая работа с этим набором осуществляется функцией mysqli_data_seek().

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

option

Устанавливаемая опция. Может иметь одно из следующих значений:

Valid options
Имя | Описание
MYSQLI_STORE_RESULT_COPY_DATA | Копирует результаты из внутреннего буффера mysqlnd в получаемые PHP переменные. По умолчанию, mysqlnd использует ссылки, предотвращая копирование и дублирование результатов в памяти. В некоторых случаях, например, если результаты содержат много небольших рядов, копирование может уменьшить общее потребление памяти, так как переменные PHP, содержащие результат, можно освобождать раньше (доступно только при сипользовании mysqlnd, c версии PHP 5.6.0)

Возвращаемые значения

Возвращает буферизованный объект результата запроса или FALSE в случае ошибки.

Замечание:

mysqli_store_result() возвращает FALSE, если запрос не возвращает результирующей таблицы (например, в случае выражения INSERT). Также функция вернет FALSE, если данные из результирующего набора не удалось прочитать. Наличие ошибки можно проверить функцией mysqli_error(), которая в этом случае вернет непустую строку; mysqli_errno() вернет ненулевое значение; и mysqli_field_count() также вернет ненулевое значение. Также возможной причиной возврата FALSE после успешного вызова mysqli_query() может быть слишком большой результирующий набор (не хватает памяти для его размещения). Если функция mysqli_field_count() возвращает ненулевое значение, значит запрос вернул непустой результирующий набор.

Примечания

Замечание:

Даже несмотря на хорошую практику очищать память, занятую результатами запросов, посредством функции mysqli_free_result(), если mysqli_store_result() передает большой результирующий набор, это может стать проблемой.

Примеры

См. mysqli_multi_query().

Смотрите также

  • mysqli_real_query() - Выполнение SQL запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Возвращает ID процесса текущего подключения

  • « mysqli::store_result
  • mysqli::thread_safe »
  • PHP Manual
  • mysqli
  • Возвращает ID процесса текущего подключения

mysqli::$thread_id

mysqli_thread_id

(PHP 5, PHP 7)

mysqli::$thread_id -- mysqli_thread_id — Возвращает ID процесса текущего подключения

Описание

Объектно-ориентированный стиль

int $mysqli->thread_id;

Процедурный стиль

int mysqli_thread_id ( mysqli $link )

mysqli_thread_id() возвращает ID процесса текущего подключения, который можно завершить функцией mysqli_kill(). Если соединение было разорвано и восстановлено функцией mysqli_ping(), ID процесса будет уже другим. Поэтому нужно получать этот идентификатор, когда это действительно необходимо.

Замечание:

ID процесса назначается по принципу подключение-за-подключением. Соответственно, если соединение разорвано и заново установлено, ему будет присвоен новый идентификатор.

Для завершения работы запущенного запроса можно использовать SQL команду KILL QUERY processid.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Возвращает ID процесса текущего подключения.

Примеры

Пример #1 Пример использования $mysqli->thread_id

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* определяем наш id процесса */
$thread_id = $mysqli->thread_id;

/* убиваем соединение */
$mysqli->kill($thread_id);

/* тут должна произойти ошибка */
if (!$mysqli->query("CREATE TABLE myCity LIKE City")) {
    printf("Ошибка: %s\n", $mysqli->error);
    exit;
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* определяем наш id процесса */
$thread_id = mysqli_thread_id($link);

/* убиваем соединение */
mysqli_kill($link, $thread_id);

/* тут должна произойти ошибка */
if (!mysqli_query($link, "CREATE TABLE myCity LIKE City")) {
    printf("Ошибка: %s\n", mysqli_error($link));
    exit;
}

/* close connection */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка: MySQL server has gone away

Смотрите также

  • mysqli_kill() - Запрос для сервера завершить выполнение процесса MySQL


Показывает, безопасна ли работа с процессами

  • « mysqli::$thread_id
  • mysqli::use_result »
  • PHP Manual
  • mysqli
  • Показывает, безопасна ли работа с процессами

mysqli::thread_safe

mysqli_thread_safe

(PHP 5, PHP 7)

mysqli::thread_safe -- mysqli_thread_safe — Показывает, безопасна ли работа с процессами

Описание

Процедурный стиль

bool mysqli_thread_safe ( void )

Показывает, клиентская библиотека скомпилирована как потокобезопасная или нет.

Возвращаемые значения

TRUE, если клиентская библиотека потокобезопасна, в противном случае FALSE.


Готовит результирующий набор на сервере к использованию

  • « mysqli::thread_safe
  • mysqli::$warning_count »
  • PHP Manual
  • mysqli
  • Готовит результирующий набор на сервере к использованию

mysqli::use_result

mysqli_use_result

(PHP 5, PHP 7)

mysqli::use_result -- mysqli_use_result — Готовит результирующий набор на сервере к использованию

Описание

Объектно-ориентированный стиль

mysqli_result mysqli::use_result ( void )

Процедурный стиль

mysqli_result mysqli_use_result ( mysqli $link )

Используется для подготовки к использованию результирующего набора последнего запроса, запущенного функцией mysqli_real_query().

Чтобы результаты запроса стали доступны, после самого запроса необходимо вызывать либо эту функцию, либо mysqli_store_result(). Также вызов какой-либо из них предотвратит отказ следующих запросов на этом же соединении.

Замечание:

mysqli_use_result() не передает весь результирующий набор на клиента, а следовательно невозможно воспользоваться функцией mysqli_data_seek(), чтобы перемещаться по нему. Для этого нужно воспользоваться функцией mysqli_store_result(). mysqli_use_result() не следует использовать, если на стороне клиента данные результирующего набора долго обрабатываются, так как это задерживает работу сервера и не дает другим процессам обновлять таблицы, данные из которых есть в результирующем наборе.

Возвращаемые значения

Возвращает не буферизованный объект результата запроса или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования mysqli::use_result()

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* выполняем мультизапрос */
if ($mysqli->multi_query($query)) {
    do {
        /* получаем первый результирующий набор */
        if ($result = $mysqli->use_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->close();
        }
        /* печатаем разделитель */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* выполняем мультизапрос */
if (mysqli_multi_query($link, $query)) {
    do {
        /* получаем первый результирующий набор */
        if ($result = mysqli_use_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* печатаем разделитель */
        if (mysqli_more_results($link)) {
            printf("-----------------\n");
        }
    } while (mysqli_next_result($link));
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

Смотрите также

  • mysqli_real_query() - Выполнение SQL запроса
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса


Возвращает количество предупреждений из последнего запроса заданного подключения

  • « mysqli::use_result
  • mysqli_stmt »
  • PHP Manual
  • mysqli
  • Возвращает количество предупреждений из последнего запроса заданного подключения

mysqli::$warning_count

mysqli_warning_count

(PHP 5, PHP 7)

mysqli::$warning_count -- mysqli_warning_count — Возвращает количество предупреждений из последнего запроса заданного подключения

Описание

Объектно-ориентированный стиль

int $mysqli->warning_count;

Процедурный стиль

int mysqli_warning_count ( mysqli $link )

Возвращает количество предупреждений из последнего запроса.

Замечание:

Для получения самих предупреждений можно использовать SQL команду SHOW WARNINGS [limit row_count].

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

Возвращаемые значения

Количество предупреждений или ноль, если таковых нет.

Примеры

Пример #1 Пример использования $mysqli->warning_count

Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* знаменитый город в Уэльсе */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

$mysqli->query($query);

if ($mysqli->warning_count) {
    if ($result = $mysqli->query("SHOW WARNINGS")) {
        $row = $result->fetch_row();
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        $result->close();
    }
}

/* закрываем соединение */
$mysqli->close();
?>

Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* знаменитый город в Уэльсе */
$query = "INSERT INTO myCity (CountryCode, Name) VALUES('GBR',
        'Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch')";

mysqli_query($link, $query);

if (mysqli_warning_count($link)) {
    if ($result = mysqli_query($link, "SHOW WARNINGS")) {
        $row = mysqli_fetch_row($result);
        printf("%s (%d): %s\n", $row[0], $row[1], $row[2]);
        mysqli_free_result($result);
    }
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Warning (1264): Data truncated for column 'Name' at row 1

Смотрите также

  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysqli_sqlstate() - Возвращает код состояния SQLSTATE последней MySQL операции


The mysqli_stmt class

(PHP 5, PHP 7)

Введение

Представляет подготовленное выражение.

Обзор классов

mysqli_stmt {
/* Свойства */
int $affected_rows;
int $errno;
array $error_list;
string $error;
int $field_count;
int $insert_id;
int $num_rows;
int $param_count;
string $sqlstate;
/* Методы */
__construct ( mysqli $link [, string $query ] )
int attr_get ( int $attr )
bool attr_set ( int $attr , int $mode )
bool bind_param ( string $types , mixed &$var1 [, mixed &$... ] )
bool bind_result ( mixed &$var1 [, mixed &$... ] )
bool close ( void )
void data_seek ( int $offset )
bool execute ( void )
bool fetch ( void )
void free_result ( void )
mysqli_result get_result ( void )
object get_warnings ( mysqli_stmt $stmt )
mixed prepare ( string $query )
bool reset ( void )
mysqli_result result_metadata ( void )
bool send_long_data ( int $param_nr , string $data )
bool store_result ( void )
}

Содержание

  • mysqli_stmt::$affected_rows — Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением
  • mysqli_stmt::attr_get — Получает текущее значение атрибута запроса
  • mysqli_stmt::attr_set — Изменяет поведение подготовленного запроса
  • mysqli_stmt::bind_param — Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt::bind_result — Привязка переменных к подготовленному запросу для размещения результата
  • mysqli_stmt::close — Закрывает подготовленный запрос
  • mysqli_stmt::__construct — Конструктор для объекта mysqli_stmt
  • mysqli_stmt::data_seek — Переход к заданной строке в результирующем наборе
  • mysqli_stmt::$errno — Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt::$error_list — Возвращает список ошибок выполнения последнего запроса
  • mysqli_stmt::$error — Возвращает строку с пояснением последней ошибки при выполнении запроса
  • mysqli_stmt::execute — Выполняет подготовленный запрос
  • mysqli_stmt::fetch — Связывает результаты подготовленного выражения с переменными
  • mysqli_stmt::$field_count — Возвращает число полей в заданном выражении
  • mysqli_stmt::free_result — Освобождает память от результата запроса, указанного дескриптором
  • mysqli_stmt::get_result — Получает результат из подготовленного запроса
  • mysqli_stmt::get_warnings — Получает результат от SHOW WARNINGS
  • mysqli_stmt::$insert_id — Получает ID сгенерированный предыдущей операцией INSERT
  • mysqli_stmt::more_results — Проверяет, есть ли еще наборы строк в результате мультизапроса
  • mysqli_stmt::next_result — Читает следующий набор строк из мультизапроса
  • mysqli_stmt::$num_rows — Возвращает число строк в результате запроса
  • mysqli_stmt::$param_count — Возвращает количество параметров в запросе
  • mysqli_stmt::prepare — Подготовка SQL запроса к выполнению
  • mysqli_stmt::reset — Сбрасывает результаты выполнения подготовленного запроса
  • mysqli_stmt::result_metadata — Возвращает метаданные результирующей таблицы подготавливаемого запроса
  • mysqli_stmt::send_long_data — Отправка данных блоками
  • mysqli_stmt::$sqlstate — Возвращает код SQLSTATE ошибки, вызванной в ходе выполнения последней операции над запросом
  • mysqli_stmt::store_result — Передает результирующий набор запроса на клиента


Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением

  • « mysqli_stmt
  • mysqli_stmt::attr_get »
  • PHP Manual
  • mysqli_stmt
  • Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением

mysqli_stmt::$affected_rows

mysqli_stmt_affected_rows

(PHP 5, PHP 7)

mysqli_stmt::$affected_rows -- mysqli_stmt_affected_rows — Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->affected_rows;

Процедурный стиль

int mysqli_stmt_affected_rows ( mysqli_stmt $stmt )

Возвращает количество строк, измененных запросом INSERT, UPDATE или DELETE.

Эта функция работает только с запросами, обновляющими таблицу. Для получения количества строк для запроса SELECT используйте вместо нее mysqli_stmt_num_rows().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Целое число больше нуля показывает количество измененных или найденных строк. Ноль показывает, что не было обновлено ни одной записи для оператора UPDATE/DELETE, ни одна строка не удовлетворила условию WHERE в запросе или что ни один запрос еще не выполнен. -1 показывает, что запрос выполнен с ошибкой. NULL показывает, что функция получила неверный аргумент.

Замечание:

Если количество измененных строк больше, чем максимальное значение для типа int в PHP, то это количество будет возвращено в виде строкового значения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* создание временной таблицы */
$mysqli->query("CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* подготовленное выражение */
if ($stmt = $mysqli->prepare($query)) {

    /* привязка переменной к метке */
    $code = 'A%';
    $stmt->bind_param("s", $code);

    /* выполнение выражения */
    $stmt->execute();

    printf("rows inserted: %d\n", $stmt->affected_rows);

    /* закрытие подготовленного выражения */
    $stmt->close();
}

/* закрытие соединения */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* создание временной таблицы */
mysqli_query($link, "CREATE TEMPORARY TABLE myCountry LIKE Country");

$query = "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?";

/* подготовленное выражение */
if ($stmt = mysqli_prepare($link, $query)) {

    /* привязка переменной к метке */
    $code = 'A%';
    mysqli_stmt_bind_param($stmt, "s", $code);

    /* выполнение выражения */
    mysqli_stmt_execute($stmt);

    printf("rows inserted: %d\n", mysqli_stmt_affected_rows($stmt));

    /* закрытие подготовленного выражения */
    mysqli_stmt_close($stmt);
}

/* закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

rows inserted: 17

Смотрите также

  • mysqli_stmt_num_rows() - Возвращает число строк в результате запроса
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Получает текущее значение атрибута запроса

  • « mysqli_stmt::$affected_rows
  • mysqli_stmt::attr_set »
  • PHP Manual
  • mysqli_stmt
  • Получает текущее значение атрибута запроса

mysqli_stmt::attr_get

mysqli_stmt_attr_get

(PHP 5, PHP 7)

mysqli_stmt::attr_get -- mysqli_stmt_attr_get — Получает текущее значение атрибута запроса

Описание

Объектно-ориентированный стиль

int mysqli_stmt::attr_get ( int $attr )

Процедурный стиль

int mysqli_stmt_attr_get ( mysqli_stmt $stmt , int $attr )

Используется для получения текущего значения атрибута запроса.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

attr

Атрибут, который необходимо получить.

Возвращаемые значения

Возвращает FALSE если атрибут не найден, либо возвращает текущее значение атрибута.


Изменяет поведение подготовленного запроса

  • « mysqli_stmt::attr_get
  • mysqli_stmt::bind_param »
  • PHP Manual
  • mysqli_stmt
  • Изменяет поведение подготовленного запроса

mysqli_stmt::attr_set

mysqli_stmt_attr_set

(PHP 5, PHP 7)

mysqli_stmt::attr_set -- mysqli_stmt_attr_set — Изменяет поведение подготовленного запроса

Описание

Объектно-ориентированный стиль

bool mysqli_stmt::attr_set ( int $attr , int $mode )

Процедурный стиль

bool mysqli_stmt_attr_set ( mysqli_stmt $stmt , int $attr , int $mode )

Используется для изменения поведения подготовленного запроса. Эта функция может быть вызвана несколько раз для установки нескольких атрибутов.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

attr

Устанавливаемый атрибут. Он может принимать следующие значения:

Значения атрибута
Символ | Описание
MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | Если равен TRUE, то mysqli_stmt_store_result() обновляет метаданные значением MYSQL_FIELD->max_length.
MYSQLI_STMT_ATTR_CURSOR_TYPE | Тип указателя, который надо открыть для запроса при вызове mysqli_stmt_execute(). mode может быть MYSQLI_CURSOR_TYPE_NO_CURSOR (по умолчанию) или MYSQLI_CURSOR_TYPE_READ_ONLY.
MYSQLI_STMT_ATTR_PREFETCH_ROWS | Число строк, которые необходимо выбрать с сервера при использовании указателя. mode может быть в диапазоне от 1 максимального значения типа unsigned long. По умолчанию равно 1.

Если используется опция MYSQLI_STMT_ATTR_CURSOR_TYPE вместе с MYSQLI_CURSOR_TYPE_READ_ONLY, то указатель будет открыт для запроса когда будет запущена mysqli_stmt_execute(). Если есть уже открытый указатель от предыдущего запуска mysqli_stmt_execute(), то указатель будет закрыт перед открытием нового. mysqli_stmt_reset() также закрывает любой открытый указатель перед подготовкой запроса перед перезапуском. mysqli_stmt_free_result() закрывает любой открытый указатель.

Если вы открываете указатель для подготовленного запроса, то в использовании mysqli_stmt_store_result() нет необходимости..

mode

Значение присваиваемое атрибуту.

Смотрите также

  • » Connector/MySQL mysql_stmt_attr_set()


Привязка переменных к параметрам подготавливаемого запроса

  • « mysqli_stmt::attr_set
  • mysqli_stmt::bind_result »
  • PHP Manual
  • mysqli_stmt
  • Привязка переменных к параметрам подготавливаемого запроса

mysqli_stmt::bind_param

mysqli_stmt_bind_param

(PHP 5, PHP 7)

mysqli_stmt::bind_param -- mysqli_stmt_bind_param — Привязка переменных к параметрам подготавливаемого запроса

Описание

Объектно-ориентированный стиль

bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

Процедурный стиль

bool mysqli_stmt_bind_param ( mysqli_stmt $stmt , string $types , mixed &$var1 [, mixed &$... ] )

Привязывает переменные к меткам параметров в SQL выражении, которое было подготовлено фукнцией mysqli_prepare().

Замечание:

Если размер данных переменной превышает максимально допустимый размер пакета (max_allowed_packet), необходимо задать значение b параметру types и использовать функцию mysqli_stmt_send_long_data(), которая будет передавать данные пакетами.

Замечание:

При использовании mysqli_stmt_bind_param() совместно с call_user_func_array() необходимо соблюдать особую осторожность. Нужно принимать во внимание, что mysqli_stmt_bind_param() принимает в качестве параметров только ссылки на значения, в то время как call_user_func_array() принимает список параметров, которые могут передаваться как по ссылке, так и по значению.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

types

Строка содержащая один или более символов, каждый из которых задает тип значения привязываемой переменной:

Символы задающие тип
Символ | Описание
i | соответствующая переменная имеет тип integer
d | соответствующая переменная имеет тип double
s | соответствующая переменная имеет тип string
b | соответствующая переменная является большим двоичным объектом (blob) и будет пересылаться пакетами

var1

Количество переменных и длина строки types должны в точности соответствовать количеству параметров в запросе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* выполнение подготовленного запроса */
$stmt->execute();

printf("%d строк вставлено.\n", $stmt->affected_rows);

/* закрываем запрос */
$stmt->close();

/* очищаем таблицу CountryLanguage */
$mysqli->query("DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d строк удалено.\n", $mysqli->affected_rows);

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'world');

/* проверка подключения */
if (!$link) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$stmt = mysqli_prepare($link, "INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* выполнение подготовленного запроса */
mysqli_stmt_execute($stmt);

printf("%d строк вставлено.\n", mysqli_stmt_affected_rows($stmt));

/* закрываем запрос */
mysqli_stmt_close($stmt);

/* очищаем таблицу CountryLanguage */
mysqli_query($link, "DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf("%d строк удалено.\n", mysqli_affected_rows($link));

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

1 строк вставлено.
1 Row deleted.

Смотрите также

  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата
  • mysqli_stmt_execute() - Выполняет подготовленный запрос
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_send_long_data() - Отправка данных блоками
  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса


Привязка переменных к подготовленному запросу для размещения результата

  • « mysqli_stmt::bind_param
  • mysqli_stmt::close »
  • PHP Manual
  • mysqli_stmt
  • Привязка переменных к подготовленному запросу для размещения результата

mysqli_stmt::bind_result

mysqli_stmt_bind_result

(PHP 5, PHP 7)

mysqli_stmt::bind_result -- mysqli_stmt_bind_result — Привязка переменных к подготовленному запросу для размещения результата

Описание

Объектно-ориентированный стиль

bool mysqli_stmt::bind_result ( mixed &$var1 [, mixed &$... ] )

Процедурный стиль

bool mysqli_stmt_bind_result ( mysqli_stmt $stmt , mixed &$var1 [, mixed &$... ] )

Привязывает столбцы результирующего набора к переменным.

При вызове mysqli_stmt_fetch() для выборки данных, протокол клиент-серверного взаимодействия MySQL помещает выбранные данные в переменные var1, ... привязанные к столбцам результата выборки.

Замечание:

Следует заметить, что все столбцы должны быть привязаны к переменным после вызова mysqli_stmt_execute() и до вызова mysqli_stmt_fetch(). В зависимости от типов данных столбцов привязанные переменные могут неявно изменять свой PHP тип.

Столбцы можно привязывать и перепривязывать многократно, даже когда результирующий набор уже частично выбран. Новая привязка даст эффект при следующем вызове mysqli_stmt_fetch().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

var1

Привязываемая переменная.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* подготовка запроса */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    $stmt->execute();

    /* привязка переменных к запросу */
    $stmt->bind_result($col1, $col2);

    /* выборка данных */
    while ($stmt->fetch()) {
        printf("%s %s\n", $col1, $col2);
    }

    /* закрываем запрос */
    $stmt->close();
}
/* закрываем подключение */
$mysqli->close();

?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* попытка подключения */
if (!$link) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* подготовка запроса */
if ($stmt = mysqli_prepare($link, "SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
    mysqli_stmt_execute($stmt);

    /* привязка переменных к запросу */
    mysqli_stmt_bind_result($stmt, $col1, $col2);

    /* выборка данных */
    while (mysqli_stmt_fetch($stmt)) {
        printf("%s %s\n", $col1, $col2);
    }

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

AFG Afghanistan
ALB Albania
DZA Algeria
ASM American Samoa
AND Andorra

Смотрите также

  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_execute() - Выполняет подготовленный запрос
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_prepare() - Подготовка SQL запроса к выполнению
  • mysqli_stmt_init() - Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare
  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса


Закрывает подготовленный запрос

  • « mysqli_stmt::bind_result
  • mysqli_stmt::__construct »
  • PHP Manual
  • mysqli_stmt
  • Закрывает подготовленный запрос

mysqli_stmt::close

mysqli_stmt_close

(PHP 5, PHP 7)

mysqli_stmt::close -- mysqli_stmt_close — Закрывает подготовленный запрос

Описание

Объектно-ориентированный стиль

bool mysqli_stmt::close ( void )

Процедурный стиль

bool mysqli_stmt_close ( mysqli_stmt $stmt )

Закрывает подготовленный запрос. mysqli_stmt_close() также освобождает дескриптор запроса. Если по текущему запросу получен результат, то эта функция очищает его для того, чтобы мог быть выполнен следующий запрос.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Конструктор для объекта mysqli_stmt

  • « mysqli_stmt::close
  • mysqli_stmt::data_seek »
  • PHP Manual
  • mysqli_stmt
  • Конструктор для объекта mysqli_stmt

mysqli_stmt::__construct

(PHP 5, PHP 7)

mysqli_stmt::__construct — Конструктор для объекта mysqli_stmt

Описание

mysqli_stmt::__construct ( mysqli $link [, string $query ] )

Этот метод создает новый объект класса mysqli_stmt.

Замечание:

В общем случае, для создания объекта mysqli_stmt, вместо прямого инстанцирования через конструктор (new mysqli_stmt), рекомендуется использовать функции mysqli_prepare() или mysqli_stmt_init(). Этот метод (как и в принципе возможность прямого инстанцирования mysqli_stmt) в будущем может быть объявлен устаревшим и удален.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения, полученный с помощью mysqli_connect() или mysqli_init()

query

Строка, содержащая SQL-запрос. Если данный параметр не указан, то результат будет аналогичен вызову mysqli_stmt_init(). Если указан, то результат будет аналогичен вызову mysqli_prepare().

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_init() - Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare


Переход к заданной строке в результирующем наборе

  • « mysqli_stmt::__construct
  • mysqli_stmt::$errno »
  • PHP Manual
  • mysqli_stmt
  • Переход к заданной строке в результирующем наборе

mysqli_stmt::data_seek

mysqli_stmt_data_seek

(PHP 5, PHP 7)

mysqli_stmt::data_seek -- mysqli_stmt_data_seek — Переход к заданной строке в результирующем наборе

Описание

Объектно-ориентированный стиль

void mysqli_stmt::data_seek ( int $offset )

Процедурный стиль

void mysqli_stmt_data_seek ( mysqli_stmt $stmt , int $offset )

Перемещает указатель на заданную строку в результирующем наборе.

mysqli_stmt_store_result() must be called prior to mysqli_stmt_data_seek().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

offset

Значение должно быть в диапазоне от 0 до числа строк минус один (0.. mysqli_stmt_num_rows() - 1).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* выполняем запрос */
    $stmt->execute();

    /* привязываем переменные к результату запроса */
    $stmt->bind_result($name, $code);

    /* помещаем результаты запроса в переменные */
    $stmt->store_result();

    /* переходим к строке 400 результирующей таблицы */
    $stmt->data_seek(399);

    /* извлекаем данные */
    $stmt->fetch();

    printf ("Город: %s  Код страны: %s\n", $name, $code);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    /* привязываем переменные к результату запроса */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* помещаем результаты запроса в переменные */
    mysqli_stmt_store_result($stmt);

    /* переходим к строке 400 результирующей таблицы */
    mysqli_stmt_data_seek($stmt, 399);

    /* извлекаем данные */
    mysqli_stmt_fetch($stmt);

    printf ("Город: %s  Код страны: %s\n", $name, $code);

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Город: Benin City  Код страны: NGA

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Возвращает код ошибки выполнения последнего запроса

  • « mysqli_stmt::data_seek
  • mysqli_stmt::$error_list »
  • PHP Manual
  • mysqli_stmt
  • Возвращает код ошибки выполнения последнего запроса

mysqli_stmt::$errno

mysqli_stmt_errno

(PHP 5, PHP 7)

mysqli_stmt::$errno -- mysqli_stmt_errno — Возвращает код ошибки выполнения последнего запроса

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->errno;

Процедурный стиль

int mysqli_stmt_errno ( mysqli_stmt $stmt )

Возвращает код ошибки для последнего вызова функции, которая могла завершиться удачно или неудачно.

Список клиентских кодов ошибок приведен в заголовочном файле MySQL errmsg.h, серверные ошибки перечислены в mysqld_error.h. В файле документации к MySQL Docs/mysqld_error.txt можно найти полный список возможных кодов и сообщений об ошибках.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Код ошибки. Ноль означает отсутствие ошибок.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* удаляем таблицу */
    $mysqli->query("DROP TABLE myCountry");

    /* выполняем запрос */
    $stmt->execute();

    printf("Ошибка: %d.\n", $stmt->errno);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* удаляем таблицу */
    mysqli_query($link, "DROP TABLE myCountry");

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    printf("Ошибка: %d.\n", mysqli_stmt_errno($stmt));

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка: 1146.

Смотрите также

  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса
  • mysqli_stmt_sqlstate() - Возвращает код SQLSTATE ошибки, вызванной в ходе выполнения последней операции над запросом


Возвращает список ошибок выполнения последнего запроса

  • « mysqli_stmt::$errno
  • mysqli_stmt::$error »
  • PHP Manual
  • mysqli_stmt
  • Возвращает список ошибок выполнения последнего запроса

mysqli_stmt::$error_list

mysqli_stmt_error_list

(PHP 5 >= 5.4.0, PHP 7)

mysqli_stmt::$error_list -- mysqli_stmt_error_list — Возвращает список ошибок выполнения последнего запроса

Описание

Объектно-ориентированный стиль

array $mysqli_stmt->error_list;

Процедурный стиль

array mysqli_stmt_error_list ( mysqli_stmt $stmt )

Возвращает список ошибок, возникших при выполнении последней операции над запросом, которая может завершаться успешно или неуспешно.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Список ошибок, каждая из которых представлена в виде массива (array) содержащего код ошибки, сообщение об ошибке, а также код состояния sqlstate.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* удаляем таблицу */
    $mysqli->query("DROP TABLE myCountry");

    /* выполняем запрос */
    $stmt->execute();

    echo "Ошибка:\n";
    print_r($stmt->error_list);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* удаляем таблицу */
    mysqli_query($link, "DROP TABLE myCountry");

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    echo "Ошибка:\n";
    print_r(mysql_stmt_error_list($stmt));

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Array
(
    [0] => Array
        (
            [errno] => 1146
            [sqlstate] => 42S02
            [error] => Table 'world.myCountry' doesn't exist
        )

)

Смотрите также

  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса
  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_sqlstate() - Возвращает код SQLSTATE ошибки, вызванной в ходе выполнения последней операции над запросом


Возвращает строку с пояснением последней ошибки при выполнении запроса

  • « mysqli_stmt::$error_list
  • mysqli_stmt::execute »
  • PHP Manual
  • mysqli_stmt
  • Возвращает строку с пояснением последней ошибки при выполнении запроса

mysqli_stmt::$error

mysqli_stmt_error

(PHP 5, PHP 7)

mysqli_stmt::$error -- mysqli_stmt_error — Возвращает строку с пояснением последней ошибки при выполнении запроса

Описание

Объектно-ориентированный стиль

string $mysqli_stmt->error;

Процедурный стиль

string mysqli_stmt_error ( mysqli_stmt $stmt )

Возвращает строку с сообщением об ошибке для последнего вызова функции, которая могла ее вызвать.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Строка сообщения об ошибке. Пустая строка означает отсутствие ошибок.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* удаляем таблицу */
    $mysqli->query("DROP TABLE myCountry");

    /* выполняем запрос */
    $stmt->execute();

    printf("Ошибка: %s.\n", $stmt->error);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* удаляем таблицу */
    mysqli_query($link, "DROP TABLE myCountry");

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    printf("Ошибка: %s.\n", mysqli_stmt_error($stmt));

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка: Table 'world.myCountry' doesn't exist.

Смотрите также

  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_sqlstate() - Возвращает код SQLSTATE ошибки, вызванной в ходе выполнения последней операции над запросом


Выполняет подготовленный запрос

  • « mysqli_stmt::$error
  • mysqli_stmt::fetch »
  • PHP Manual
  • mysqli_stmt
  • Выполняет подготовленный запрос

mysqli_stmt::execute

mysqli_stmt_execute

(PHP 5, PHP 7)

mysqli_stmt::execute -- mysqli_stmt_execute — Выполняет подготовленный запрос

Описание

Объектно-ориентированный стиль

bool mysqli_stmt::execute ( void )

Процедурный стиль

bool mysqli_stmt_execute ( mysqli_stmt $stmt )

Выполняет запрос, который был ранее подготовлен функцией mysqli_prepare(). Если в запросе есть метки параметров, они будут заменены привязанными к ним значениями.

Если выполняются запросы UPDATE, DELETE, или INSERT, то количество измененных строк можно определить функцией mysqli_stmt_affected_rows(). Если запрос возвращает результирующий набор, для извлечения данных из него можно использовать функцию mysqli_stmt_fetch().

Замечание:

Если используется mysqli_stmt_execute(), то прежде чем выполнить следующий запрос, необходимо выбрать все данные из текущего результирующего набора функцией mysqli_stmt_fetch().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCity LIKE City");

/* подготавливаем запрос на вставку строк */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = $mysqli->prepare($query);

$stmt->bind_param("sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* выполняем запрос */
$stmt->execute();

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* выполняем запрос */
$stmt->execute();

/* закрываем запрос */
$stmt->close();

/* получаем все строки из таблицы myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* очищаем результирующий набор */
    $result->close();
}

/* удаляем таблицу */
$mysqli->query("DROP TABLE myCity");

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCity LIKE City");

/* подготавливаем запрос на вставку строк */
$query = "INSERT INTO myCity (Name, CountryCode, District) VALUES (?,?,?)";
$stmt = mysqli_prepare($link, $query);

mysqli_stmt_bind_param($stmt, "sss", $val1, $val2, $val3);

$val1 = 'Stuttgart';
$val2 = 'DEU';
$val3 = 'Baden-Wuerttemberg';

/* выполняем запрос */
mysqli_stmt_execute($stmt);

$val1 = 'Bordeaux';
$val2 = 'FRA';
$val3 = 'Aquitaine';

/* выполняем запрос */
mysqli_stmt_execute($stmt);

/* закрываем запрос */
mysqli_stmt_close($stmt);

/* получаем все строки из таблицы myCity */
$query = "SELECT Name, CountryCode, District FROM myCity";
if ($result = mysqli_query($link, $query)) {
    while ($row = mysqli_fetch_row($result)) {
        printf("%s (%s,%s)\n", $row[0], $row[1], $row[2]);
    }
    /* очищаем результирующий набор */
    mysqli_free_result($result);
}

/* удаляем таблицу */
mysqli_query($link, "DROP TABLE myCity");

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Stuttgart (DEU,Baden-Wuerttemberg)
Bordeaux (FRA,Aquitaine)

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса


Связывает результаты подготовленного выражения с переменными

  • « mysqli_stmt::execute
  • mysqli_stmt::$field_count »
  • PHP Manual
  • mysqli_stmt
  • Связывает результаты подготовленного выражения с переменными

mysqli_stmt::fetch

mysqli_stmt_fetch

(PHP 5, PHP 7)

mysqli_stmt::fetch -- mysqli_stmt_fetch — Связывает результаты подготовленного выражения с переменными

Описание

Объектно-ориентированный стиль

bool mysqli_stmt::fetch ( void )

Процедурный стиль

bool mysqli_stmt_fetch ( mysqli_stmt $stmt )

Связывает результаты подготовленного выражения с переменными, определенными с помощью mysqli_stmt_bind_result().

Замечание:

Необходимо отметить, что все столбцы должны быть связаны перед вызовом mysqli_stmt_fetch().

Замечание:

Данные не буферизуются при передаче когда вызывается mysqli_stmt_store_result(), что снижает производительность (но также снижает затраты памяти).

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращаемые значения
Значение | Описание
TRUE | Успех. Данные были выбраны
FALSE | Произошла ошибка
NULL | Больше нет строк/данных или произошло усечение данных

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Попытка соединения не удалась: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = $mysqli->prepare($query)) {

    /* Запустить выражение */
    $stmt->execute();

    /* Определить переменные для результата */
    $stmt->bind_result($name, $code);

    /* Выбрать значения */
    while ($stmt->fetch()) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* Завершить запрос */
    $stmt->close();
}

/* Закрыть соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Попытка соединения не удалась: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 150,5";

if ($stmt = mysqli_prepare($link, $query)) {

    /* Запустить запрос */
    mysqli_stmt_execute($stmt);

    /* Определить переменные для результата */
    mysqli_stmt_bind_result($stmt, $name, $code);

    /* Выбрать значения */
    while (mysqli_stmt_fetch($stmt)) {
        printf ("%s (%s)\n", $name, $code);
    }

    /* Завершить запрос */
    mysqli_stmt_close($stmt);
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Rockford (USA)
Tallahassee (USA)
Salinas (USA)
Santa Clarita (USA)
Springfield (USA)

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса
  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата


Возвращает число полей в заданном выражении

  • « mysqli_stmt::fetch
  • mysqli_stmt::free_result »
  • PHP Manual
  • mysqli_stmt
  • Возвращает число полей в заданном выражении

mysqli_stmt::$field_count

mysqli_stmt_field_count

(PHP 5, PHP 7)

mysqli_stmt::$field_count -- mysqli_stmt_field_count — Возвращает число полей в заданном выражении

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->field_count;

Процедурный стиль

int mysqli_stmt_field_count ( mysqli_stmt $stmt )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Освобождает память от результата запроса, указанного дескриптором

  • « mysqli_stmt::$field_count
  • mysqli_stmt::get_result »
  • PHP Manual
  • mysqli_stmt
  • Освобождает память от результата запроса, указанного дескриптором

mysqli_stmt::free_result

mysqli_stmt_free_result

(PHP 5, PHP 7)

mysqli_stmt::free_result -- mysqli_stmt_free_result — Освобождает память от результата запроса, указанного дескриптором

Описание

Объектно-ориентированный стиль

void mysqli_stmt::free_result ( void )

Процедурный стиль

void mysqli_stmt_free_result ( mysqli_stmt $stmt )

Освобождает от результата запроса память, которая была зарезервирована с помощью mysqli_stmt_store_result().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • mysqli_stmt_store_result() - Передает результирующий набор запроса на клиента


Получает результат из подготовленного запроса

  • « mysqli_stmt::free_result
  • mysqli_stmt::get_warnings »
  • PHP Manual
  • mysqli_stmt
  • Получает результат из подготовленного запроса

mysqli_stmt::get_result

mysqli_stmt_get_result

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::get_result -- mysqli_stmt_get_result — Получает результат из подготовленного запроса

Описание

Объектно-ориентированный стиль

mysqli_result mysqli_stmt::get_result ( void )

Процедурный стиль

mysqli_result mysqli_stmt_get_result ( mysqli_stmt $stmt )

Получает результат из подготовленного запроса.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает результат для успешных запросов типа SELECT и FALSE для любых DML(INSERT, UPDATE, DELETE) запросов, либо в случае ошибки. Для точного установления причины получения FALSE необходимо воспользоваться функцией mysqli_errno().

Только для MySQL Native Driver

Доступно только с расширением mysqlnd.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$mysqli = new mysqli("127.0.0.1", "user", "password", "world");

if($mysqli->connect_error)
{
    die("$mysqli->connect_errno: $mysqli->connect_error");
}

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = $mysqli->stmt_init();
if(!$stmt->prepare($query))
{
    print "Ошибка подготовки запроса\n";
}
else
{
    $stmt->bind_param("s", $continent);

    $continent_array = array('Europe','Africa','Asia','North America');

    foreach($continent_array as $continent)
    {
        $stmt->execute();
        $result = $stmt->get_result();
        while ($row = $result->fetch_array(MYSQLI_NUM))
        {
            foreach ($row as $r)
            {
                print "$r ";
            }
            print "\n";
        }
    }
}

$stmt->close();
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php

$link = mysqli_connect("127.0.0.1", "user", "password", "world");

if (!$link)
{
    $error = mysqli_connect_error();
    $errno = mysqli_connect_errno();
    print "$errno: $error\n";
    exit();
}

$query = "SELECT Name, Population, Continent FROM Country WHERE Continent=? ORDER BY Name LIMIT 1";

$stmt = mysqli_stmt_init($link);
if(!mysqli_stmt_prepare($stmt, $query))
{
    print "Ошибка подготовки запроса\n";
}
else
{
    mysqli_stmt_bind_param($stmt, "s", $continent);

    $continent_array = array('Europe','Africa','Asia','North America');

    foreach($continent_array as $continent)
    {
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        while ($row = mysqli_fetch_array($result, MYSQLI_NUM))
        {
            foreach ($row as $r)
            {
                print "$r ";
            }
            print "\n";
        }
    }
}
mysqli_stmt_close($stmt);
mysqli_close($link);
?>

Результат выполнения данных примеров:

Albania 3401200 Europe
Algeria 31471000 Africa
Afghanistan 22720000 Asia
Anguilla 8000 North America

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_result_metadata() - Возвращает метаданные результирующей таблицы подготавливаемого запроса
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_stmt_store_result() - Передает результирующий набор запроса на клиента
  • mysqli_errno() - Возвращает код ошибки последнего вызова функции


Получает результат от SHOW WARNINGS

  • « mysqli_stmt::get_result
  • mysqli_stmt::$insert_id »
  • PHP Manual
  • mysqli_stmt
  • Получает результат от SHOW WARNINGS

mysqli_stmt::get_warnings

mysqli_stmt_get_warnings

(PHP 5 >= 5.1.0, PHP 7)

mysqli_stmt::get_warnings -- mysqli_stmt_get_warnings — Получает результат от SHOW WARNINGS

Описание

Объектно-ориентированный стиль

object mysqli_stmt::get_warnings ( mysqli_stmt $stmt )

Процедурный стиль

object mysqli_stmt_get_warnings ( mysqli_stmt $stmt )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получает ID сгенерированный предыдущей операцией INSERT

  • « mysqli_stmt::get_warnings
  • mysqli_stmt::more_results »
  • PHP Manual
  • mysqli_stmt
  • Получает ID сгенерированный предыдущей операцией INSERT

mysqli_stmt::$insert_id

mysqli_stmt_insert_id

(PHP 5, PHP 7)

mysqli_stmt::$insert_id -- mysqli_stmt_insert_id — Получает ID сгенерированный предыдущей операцией INSERT

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->insert_id;

Процедурный стиль

mixed mysqli_stmt_insert_id ( mysqli_stmt $stmt )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Проверяет, есть ли еще наборы строк в результате мультизапроса

  • « mysqli_stmt::$insert_id
  • mysqli_stmt::next_result »
  • PHP Manual
  • mysqli_stmt
  • Проверяет, есть ли еще наборы строк в результате мультизапроса

mysqli_stmt::more_results

mysqli_stmt_more_results

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::more_results -- mysqli_stmt_more_results — Проверяет, есть ли еще наборы строк в результате мультизапроса

Описание

Объектно-ориентированный стиль (method):

public bool mysqli_stmt::more_results ( void )

Процедурный стиль:

bool mysqli_stmt_more_results ( mysql_stmt $stmt )

Проверяет, есть ли еще наборы строк в результате мультизапроса.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE, если еще есть доступные результирующие наборы, FALSE в противном случае.

Только для MySQL Native Driver

Доступно только с расширением mysqlnd.

Смотрите также

  • mysqli_stmt::next_result() - Читает следующий набор строк из мультизапроса
  • mysqli::multi_query() - Выполняет запрос к базе данных


Читает следующий набор строк из мультизапроса

  • « mysqli_stmt::more_results
  • mysqli_stmt::$num_rows »
  • PHP Manual
  • mysqli_stmt
  • Читает следующий набор строк из мультизапроса

mysqli_stmt::next_result

mysqli_stmt_next_result

(PHP 5 >= 5.3.0, PHP 7)

mysqli_stmt::next_result -- mysqli_stmt_next_result — Читает следующий набор строк из мультизапроса

Описание

Объектно-ориентированный стиль (method):

public bool mysqli_stmt::next_result ( void )

Процедурный стиль:

bool mysqli_stmt_next_result ( mysql_stmt $stmt )

Читает следующий набор строк из мультизапроса.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_STRICT, если нет доступного результирующего набора. Следует проверять наличие доступных наборов функцией mysqli_stmt::more_results() непосредственно перед вызовом mysqli_stmt::next_result().

Только для MySQL Native Driver

Доступно только с расширением mysqlnd.

Смотрите также

  • mysqli_stmt::more_results() - Проверяет, есть ли еще наборы строк в результате мультизапроса
  • mysqli::multi_query() - Выполняет запрос к базе данных


Возвращает число строк в результате запроса

  • « mysqli_stmt::next_result
  • mysqli_stmt::$param_count »
  • PHP Manual
  • mysqli_stmt
  • Возвращает число строк в результате запроса

mysqli_stmt::$num_rows

mysqli_stmt_num_rows

(PHP 5, PHP 7)

mysqli_stmt::$num_rows -- mysqli_stmt_num_rows — Возвращает число строк в результате запроса

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->num_rows;

Процедурный стиль

int mysqli_stmt_num_rows ( mysqli_stmt $stmt )

Возвращает число строк в результате запроса. Результат выполнения mysqli_stmt_num_rows() зависит от того использовалась ли mysqli_stmt_store_result() для буферизации результата выборки в дескрипторе.

Если используется mysqli_stmt_store_result(), mysqli_stmt_num_rows() может быть вызвана в тот же момент.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Целое число, отражающее число строк в результате запроса.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Открыть соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* Выполнить запрос */
    $stmt->execute();

    /* Сохранить результат */
    $stmt->store_result();

    printf("Число строк: %d.\n", $stmt->num_rows);

    /* Закрыть выражение */
    $stmt->close();
}

/* Закрыть соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* Открыть соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* Выполнить запрос */
    mysqli_stmt_execute($stmt);

    /* Сохранить результат */
    mysqli_stmt_store_result($stmt);

    printf("Число строк: %d.\n", mysqli_stmt_num_rows($stmt));

    /* Закрыть выражение */
    mysqli_stmt_close($stmt);
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Число строк: 20.

Смотрите также

  • mysqli_stmt_affected_rows() - Возвращает общее количество строк, измененных, удаленных или добавленных последним выполненным выражением
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_store_result() - Передает результирующий набор запроса на клиента


Возвращает количество параметров в запросе

  • « mysqli_stmt::$num_rows
  • mysqli_stmt::prepare »
  • PHP Manual
  • mysqli_stmt
  • Возвращает количество параметров в запросе

mysqli_stmt::$param_count

mysqli_stmt_param_count

(PHP 5, PHP 7)

mysqli_stmt::$param_count -- mysqli_stmt_param_count — Возвращает количество параметров в запросе

Описание

Объектно-ориентированный стиль

int $mysqli_stmt->param_count;

Процедурный стиль

int mysqli_stmt_param_count ( mysqli_stmt $stmt )

Возвращает количество меток параметров в подготовленном запросе.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает целое число равное количеству параметров.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = $mysqli->prepare("SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = $stmt->param_count;
    printf("В запросе %d меток.\n", $marker);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

if ($stmt = mysqli_prepare($link, "SELECT Name FROM Country WHERE Name=? OR Code=?")) {

    $marker = mysqli_stmt_param_count($stmt);
    printf("В запросе %d меток.\n", $marker);

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

В запросе 2 меток.

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Подготовка SQL запроса к выполнению

  • « mysqli_stmt::$param_count
  • mysqli_stmt::reset »
  • PHP Manual
  • mysqli_stmt
  • Подготовка SQL запроса к выполнению

mysqli_stmt::prepare

mysqli_stmt_prepare

(PHP 5, PHP 7)

mysqli_stmt::prepare -- mysqli_stmt_prepare — Подготовка SQL запроса к выполнению

Описание

Объектно-ориентированный стиль

mixed mysqli_stmt::prepare ( string $query )

Процедурный стиль

bool mysqli_stmt_prepare ( mysqli_stmt $stmt , string $query )

Подготавливает SQL запрос переданный в виде строки с завершающим нулем.

Метки параметров должны быть связаны с переменными приложения функциями mysqli_stmt_bind_param() и/или mysqli_stmt_bind_result() до запуска запроса или выборки строк.

Замечание:

В случае, если длина выражения, которое вы передаете в mysqli_stmt_prepare(), больше, чем max_allowed_packet сервера, возвращаемые коды ошибки могут различаться в зависимости от используемого драйвера. А это может быть либо родной MySQL драйвер (mysqlnd), либо клиентская библиотека MySQL (libmysqlclient). Поведение функции будет следующим:

  • mysqlnd на платформе Linux возвращает код ошибки 1153. Сообщение об ошибке означает "размер пакета превышает max_allowed_packet байт".

  • mysqlnd на платформе Windows возвращает код ошибки 2006. Это сообщение об ошибке означает "сервер недоступен".

  • libmysqlclient на всех платформах возвращает код ошибки 2006. Это сообщение об ошибке означает "сервер недоступен".

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

query

Текст запроса в виде строки. Запрос должен состоять из одного SQL выражения.

Запрос может содержать одну или несколько меток параметров SQL запроса. Эти метки можно добавить путем встраивания знаков вопроса (?) в места выражения, где требуется подставлять параметры.

Замечание:

Нет необходимости в завершающей точке с запятой или символе \g в конце выражения.

Замечание:

Метки параметров запроса можно встраивать только в определенные места в выражении. Например, они допустимы в списке VALUES() выражения INSERT (чтобы задать значения столбцов для строки), или в операциях сравнения предложения WHERE для задания сравниваемого значения.

Однако, эти метки недопустимы в качестве идентификаторов (таких как имена столбцов или таблиц), а также в списке псевдонимов столбцов предложения SELECT. Нельзя также использовать параметры для задания обоих операндов бинарного оператора (например, знак равенства =). Последнее ограничение необходимо, так как в противном случае невозможно будет определить тип операндов. В основном, параметры допустимы в выражениях языка манипулирования данными (DML), и недопустимы в выражениях языка определения данных (DDL).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* создаем подготавливаемый запрос */
$stmt =  $mysqli->stmt_init();
if ($stmt->prepare("SELECT District FROM City WHERE Name=?")) {

    /* привязываем переменные к параметрам */
    $stmt->bind_param("s", $city);

    /* выполняем запрос */
    $stmt->execute();

    /* привязываем результаты к переменным */
    $stmt->bind_result($district);

    /* выбираем данные из результата */
    $stmt->fetch();

    printf("%s находится в округе %s\n", $city, $district);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$city = "Amersfoort";

/* создаем подготавливаемый запрос */
$stmt = mysqli_stmt_init($link);
if (mysqli_stmt_prepare($stmt, 'SELECT District FROM City WHERE Name=?')) {

    /* привязываем переменные к параметрам */
    mysqli_stmt_bind_param($stmt, "s", $city);

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    /* привязываем результаты к переменным */
    mysqli_stmt_bind_result($stmt, $district);

    /* выбираем данные из результата */
    mysqli_stmt_fetch($stmt);

    printf("%s находится в округе %s\n", $city, $district);

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Amersfoort находится в округе Utrecht

Смотрите также

  • mysqli_stmt_init() - Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare
  • mysqli_stmt_execute() - Выполняет подготовленный запрос
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса
  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата
  • mysqli_stmt_get_result() - Получает результат из подготовленного запроса
  • mysqli_stmt_close() - Закрывает подготовленный запрос


Сбрасывает результаты выполнения подготовленного запроса

  • « mysqli_stmt::prepare
  • mysqli_stmt::result_metadata »
  • PHP Manual
  • mysqli_stmt
  • Сбрасывает результаты выполнения подготовленного запроса

mysqli_stmt::reset

mysqli_stmt_reset

(PHP 5, PHP 7)

mysqli_stmt::reset -- mysqli_stmt_reset — Сбрасывает результаты выполнения подготовленного запроса

Описание

Объектно-ориентированный стиль

bool mysqli_stmt::reset ( void )

Процедурный стиль

bool mysqli_stmt_reset ( mysqli_stmt $stmt )

Сбрасывает результаты выполнения подготовленного запроса на клиенте и на сервере и переводит запрос в состояние, как после подготовки.

Сбрасывает запрос на сервере, а также данные, переданные на сервер функцией mysqli_stmt_send_long_data(), очищает буфер результатов запроса и текущие ошибки. Функция не удаляет привязки параметров запроса, а также переданные на клиента результирующие наборы. Содержащиеся на клиенте результирующие наборы будут очищены при следующем выполнении запроса (или его закрытии).

Для подготовки запроса с другим SQL текстом используйте функцию mysqli_stmt_prepare().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Возвращает метаданные результирующей таблицы подготавливаемого запроса

  • « mysqli_stmt::reset
  • mysqli_stmt::send_long_data »
  • PHP Manual
  • mysqli_stmt
  • Возвращает метаданные результирующей таблицы подготавливаемого запроса

mysqli_stmt::result_metadata

mysqli_stmt_result_metadata

(PHP 5, PHP 7)

mysqli_stmt::result_metadata -- mysqli_stmt_result_metadata — Возвращает метаданные результирующей таблицы подготавливаемого запроса

Описание

Объектно-ориентированный стиль

mysqli_result mysqli_stmt::result_metadata ( void )

Процедурный стиль

mysqli_result mysqli_stmt_result_metadata ( mysqli_stmt $stmt )

Если запрос, переданный в mysqli_prepare(), генерирует результирующую таблицу, mysqli_stmt_result_metadata() возвращает объект, с помощью которого можно получить описание этого результирующего набора. В частности, можно получить количество полей и описание каждого отдельного поля.

Замечание:

Полученный объектный указатель можно передавать в качестве аргумента в функции обработки метаданных результирующих таблиц, как например:

  • mysqli_num_fields()

  • mysqli_fetch_field()

  • mysqli_fetch_field_direct()

  • mysqli_fetch_fields()

  • mysqli_field_count()

  • mysqli_field_seek()

  • mysqli_field_tell()

  • mysqli_free_result()

После завершения работы с этим объектом, занимаемую им память необходимо освободить. Сделать это можно, передав объектный указатель в функцию mysqli_free_result().

Замечание:

Результирующий набор, возвращаемый из mysqli_stmt_result_metadata(), содержит только метаданные. В нем не будет строк выборки. Результаты запроса можно получить с помощью функции mysqli_stmt_fetch().

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает объект или FALSE случае ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

$mysqli->query("DROP TABLE IF EXISTS friends");
$mysqli->query("CREATE TABLE friends (id int, name varchar(20))");

$mysqli->query("INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = $mysqli->prepare("SELECT id, name FROM friends");
$stmt->execute();

/* получаем результирующий набор метаданных */
$result = $stmt->result_metadata();

/* извлекаем информацию о столбце из метаданных */
$field = $result->fetch_field();

printf("Имя столбца: %s\n", $field->name);

/* закрываем результирующий набор */
$result->close();

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "test");

mysqli_query($link, "DROP TABLE IF EXISTS friends");
mysqli_query($link, "CREATE TABLE friends (id int, name varchar(20))");

mysqli_query($link, "INSERT INTO friends VALUES (1,'Hartmut'), (2, 'Ulf')");

$stmt = mysqli_prepare($link, "SELECT id, name FROM friends");
mysqli_stmt_execute($stmt);

/* получаем результирующий набор метаданных */
$result = mysqli_stmt_result_metadata($stmt);

/* извлекаем информацию о столбце из метаданных */
$field = mysqli_fetch_field($result);

printf("Имя столбца: %s\n", $field->name);

/* закрываем результирующий набор */
mysqli_free_result($result);

/* закрываем подключение */
mysqli_close($link);
?>

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_free_result() - Освобождает память занятую результатами запроса


Отправка данных блоками

  • « mysqli_stmt::result_metadata
  • mysqli_stmt::$sqlstate »
  • PHP Manual
  • mysqli_stmt
  • Отправка данных блоками

mysqli_stmt::send_long_data

mysqli_stmt_send_long_data

(PHP 5, PHP 7)

mysqli_stmt::send_long_data -- mysqli_stmt_send_long_data — Отправка данных блоками

Описание

Объектно-ориентированный стиль

bool mysqli_stmt::send_long_data ( int $param_nr , string $data )

Процедурный стиль

bool mysqli_stmt_send_long_data ( mysqli_stmt $stmt , int $param_nr , string $data )

Позволяет пересылать данные параметра на сервер частями (или чанками), например, когда размер большого объекта (blob) превышает max_allowed_packet. Эту функцию можно запускать многократно, чтобы переслать части символьных или двоичных данных столбца. Данные в столбце должны иметь тип TEXT или BLOB.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

param_nr

Указывает, с каким параметром связаны данные. Параметры нумеруются с нуля.

data

Строка содержащая пересылаемые данные.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$stmt = $mysqli->prepare("INSERT INTO messages (message) VALUES (?)");
$null = NULL;
$stmt->bind_param("b", $null);
$fp = fopen("messages.txt", "r");
while (!feof($fp)) {
    $stmt->send_long_data(0, fread($fp, 8192));
}
fclose($fp);
$stmt->execute();
?>

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса


Возвращает код SQLSTATE ошибки, вызванной в ходе выполнения последней операции над запросом

  • « mysqli_stmt::send_long_data
  • mysqli_stmt::store_result »
  • PHP Manual
  • mysqli_stmt
  • Возвращает код SQLSTATE ошибки, вызванной в ходе выполнения последней операции над запросом

mysqli_stmt::$sqlstate

mysqli_stmt_sqlstate

(PHP 5, PHP 7)

mysqli_stmt::$sqlstate -- mysqli_stmt_sqlstate — Возвращает код SQLSTATE ошибки, вызванной в ходе выполнения последней операции над запросом

Описание

Объектно-ориентированный стиль

string $mysqli_stmt->sqlstate;

Процедурный стиль

string mysqli_stmt_sqlstate ( mysqli_stmt $stmt )

Возвращает строку содержащую код SQLSTATE ошибки, вызванной в результате выполнения последней операции над запросом, которая может завершаться успешно или неуспешно. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок. Значения этого кода определены в стандарте ANSI SQL, а также в ODBC. Полный список возможных кодов можно посмотреть на странице » http://dev.mysql.com/doc/mysql/en/error-handling.html.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает строку содержащую SQLSTATE код ошибки последней совершенной операции. Этот код состоит из пяти символов. '00000' означает отсутствие ошибок.

Примечания

Замечание:

Следует отметить, что еще не все ошибки MySQL имеют отражение в кодах SQLSTATE. Для таких ошибок используется общий код HY000 (общая ошибка).

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$mysqli->query("CREATE TABLE myCountry LIKE Country");
$mysqli->query("INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = $mysqli->prepare($query)) {

    /* удаляем таблицу */
    $mysqli->query("DROP TABLE myCountry");

    /* выполняем запрос */
    $stmt->execute();

    printf("Ошибка: %s.\n", $stmt->sqlstate);

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* Открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

mysqli_query($link, "CREATE TABLE myCountry LIKE Country");
mysqli_query($link, "INSERT INTO myCountry SELECT * FROM Country");

$query = "SELECT Name, Code FROM myCountry ORDER BY Name";
if ($stmt = mysqli_prepare($link, $query)) {

    /* удаляем таблицу */
    mysqli_query($link, "DROP TABLE myCountry");

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    printf("Ошибка: %s.\n", mysqli_stmt_sqlstate($stmt));

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Ошибка: 42S02.

Смотрите также

  • mysqli_stmt_errno() - Возвращает код ошибки выполнения последнего запроса
  • mysqli_stmt_error() - Возвращает строку с пояснением последней ошибки при выполнении запроса


Передает результирующий набор запроса на клиента

  • « mysqli_stmt::$sqlstate
  • mysqli_result »
  • PHP Manual
  • mysqli_stmt
  • Передает результирующий набор запроса на клиента

mysqli_stmt::store_result

mysqli_stmt_store_result

(PHP 5, PHP 7)

mysqli_stmt::store_result -- mysqli_stmt_store_result — Передает результирующий набор запроса на клиента

Описание

Объектно-ориентированный стиль

bool mysqli_stmt::store_result ( void )

Процедурный стиль

bool mysqli_stmt_store_result ( mysqli_stmt $stmt )

Функцию mysqli_stmt_store_result() нужно вызывать после выполнения запросов, возвращающих результирующий набор (SELECT, SHOW, DESCRIBE, EXPLAIN), и только если требуется сохранить результирующий набор целиком на клиенте. Далее, последовательные вызовы mysqli_stmt_fetch() будут возвращать уже буферизованные данные.

Замечание:

В остальных случаях вызывать mysqli_stmt_store_result() нет необходимости. Но если такой вызов совершен, ничего страшного не случится, это не повлияет на производительность и целостность данных. Чтобы убедиться, что запрос вернул результирующий набор, можно воспользоваться функцией mysqli_stmt_result_metadata(), которая в этом случае вернет NULL.

Список параметров

stmt

Только для процедурного стиля: Идентификатор выражения, полученный с помощью mysqli_stmt_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Открываем соединение */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = $mysqli->prepare($query)) {

    /* выполняем запрос */
    $stmt->execute();

    /* передаем результат */
    $stmt->store_result();

    printf("Количество строк: %d.\n", $stmt->num_rows);

    /* очищаем результат */
    $stmt->free_result();

    /* закрываем запрос */
    $stmt->close();
}

/* закрываем соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* Открываем соединение */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 20";
if ($stmt = mysqli_prepare($link, $query)) {

    /* выполняем запрос */
    mysqli_stmt_execute($stmt);

    /* передаем результат */
    mysqli_stmt_store_result($stmt);

    printf("Количество строк: %d.\n", mysqli_stmt_num_rows($stmt));

    /* очищаем результат */
    mysqli_stmt_free_result($stmt);

    /* закрываем запрос */
    mysqli_stmt_close($stmt);
}

/* закрываем соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Количество строк: 20.

Смотрите также

  • mysqli_prepare() - Подготавливает SQL выражение к выполнению
  • mysqli_stmt_result_metadata() - Возвращает метаданные результирующей таблицы подготавливаемого запроса
  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными


The mysqli_result class

(PHP 5, PHP 7)

Введение

Представляет результирующий набор, полученный из запроса в базу данных.

Список изменений

Список изменений
Версия | Описание
5.4.0 | Добавлена поддержка Iterator, так как mysqli_result теперь реализует Traversable.

Обзор классов

mysqli_result implements Traversable {
/* Свойства */
int $current_field ;
int $field_count;
array $lengths;
int $num_rows;
/* Методы */
bool data_seek ( int $offset )
mixed fetch_all ([ int $resulttype = MYSQLI_NUM ] )
mixed fetch_array ([ int $resulttype = MYSQLI_BOTH ] )
array fetch_assoc ( void )
object fetch_field_direct ( int $fieldnr )
object fetch_field ( void )
array fetch_fields ( void )
object fetch_object ([ string $class_name = "stdClass" [, array $params ]] )
mixed fetch_row ( void )
bool field_seek ( int $fieldnr )
void free ( void )
}

Содержание

  • mysqli_result::$current_field — Получает смещение указателя по отношению к текущему полю
  • mysqli_result::data_seek — Перемещает указатель результата на выбранную строку
  • mysqli_result::fetch_all — Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба
  • mysqli_result::fetch_array — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_result::fetch_assoc — Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_result::fetch_field_direct — Получение метаданных конкретного поля
  • mysqli_result::fetch_field — Возвращает следующее поле результирующего набора
  • mysqli_result::fetch_fields — Возвращает массив объектов, представляющих поля результирующего набора
  • mysqli_result::fetch_object — Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_result::fetch_row — Получение строки результирующей таблицы в виде массива
  • mysqli_result::$field_count — Получение количества полей в результирующем наборе
  • mysqli_result::field_seek — Установить указатель поля на определенное смещение
  • mysqli_result::free — Освобождает память занятую результатами запроса
  • mysqli_result::$lengths — Возвращает длины полей текущей строки результирующего набора
  • mysqli_result::$num_rows — Получает число рядов в результирующей выборке


Получает смещение указателя по отношению к текущему полю

  • « mysqli_result
  • mysqli_result::data_seek »
  • PHP Manual
  • mysqli_result
  • Получает смещение указателя по отношению к текущему полю

mysqli_result::$current_field

mysqli_field_tell

(PHP 5, PHP 7)

mysqli_result::$current_field -- mysqli_field_tell — Получает смещение указателя по отношению к текущему полю

Описание

Объектно-ориентированный стиль

int $mysqli_result->current_field ;

Процедурный стиль

int mysqli_field_tell ( mysqli_result $result )

Возвращает позицию указателя поля, используемую при последнем вызове mysqli_fetch_field(). Это значение может быть использовано как аргумент для mysqli_field_seek().

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Возвращает текущее смещение указателя поля.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Получить информацию о поле для всех столбцов */
    while ($finfo = $result->fetch_field()) {

        /* Получить смещение указателя поля */
        $currentfield = $result->current_field;

        printf("Столбец %d:\n", $currentfield);
        printf("Имя:     %s\n", $finfo->name);
        printf("Таблица:    %s\n", $finfo->table);
        printf("макс. Длина: %d\n", $finfo->max_length);
        printf("Флаги:    %d\n", $finfo->flags);
        printf("Тип:     %d\n\n", $finfo->type);
    }
    $result->close();
}

/* Закрыть соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Получить информацию о поле для всех столбцов */
    while ($finfo = mysqli_fetch_field($result)) {

        /* Получить смещение указателя поля */
        $currentfield = mysqli_field_tell($result);

        printf("Столбец %d:\n", $currentfield);
        printf("Имя:     %s\n", $finfo->name);
        printf("Таблица:    %s\n", $finfo->table);
        printf("макс. Длина: %d\n", $finfo->max_length);
        printf("Флаги:    %d\n", $finfo->flags);
        printf("Тип:     %d\n\n", $finfo->type);
    }
    mysqli_free_result($result);
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Столбец 1:
Имя:     Name
Таблица:    Country
макс. Длина: 11
Флаги:    1
Тип:     254

Столбец 2:
Имя:     SurfaceArea
Таблица:    Country
макс. Длина: 10
Флаги:    32769
Тип:     4

Смотрите также

  • mysqli_fetch_field() - Возвращает следующее поле результирующего набора
  • mysqli_field_seek() - Установить указатель поля на определенное смещение


Перемещает указатель результата на выбранную строку

  • « mysqli_result::$current_field
  • mysqli_result::fetch_all »
  • PHP Manual
  • mysqli_result
  • Перемещает указатель результата на выбранную строку

mysqli_result::data_seek

mysqli_data_seek

(PHP 5, PHP 7)

mysqli_result::data_seek -- mysqli_data_seek — Перемещает указатель результата на выбранную строку

Описание

Объектно-ориентированный стиль

bool mysqli_result::data_seek ( int $offset )

Процедурный стиль

bool mysqli_data_seek ( mysqli_result $result , int $offset )

Функция mysqli_data_seek() перемещает указатель в результате на строку, указанную в параметре offset.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

offset

Смещение. Должно быть между нулем и числом строк в результате минус один (0..mysqli_num_rows() - 1).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Эта функция может быть использована только с буферизованными результатами, которые можно получить использованием функций mysqli_store_result() или mysqli_query().

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Создание подключения */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверка подключения */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";
if ($result = $mysqli->query($query)) {

    /* Переход к строке №400 */
    $result->data_seek(399);

    /* Получение строки */
    $row = $result->fetch_row();

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* Закрытие набора данных */
    $result->close();
}

/* Закрытие соединения */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
/* Создание подключения */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверка подключения */
if (!$link) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER BY Name";

if ($result = mysqli_query($link, $query)) {

    /* Переход к строке №400 */
    mysqli_data_seek($result, 399);

    /* Получение строки */
    $row = mysqli_fetch_row($result);

    printf ("City: %s  Countrycode: %s\n", $row[0], $row[1]);

    /* Закрытие набора данных */
    mysqli_free_result($result);
}

/* Закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

City: Benin City  Countrycode: NGA

Смотрите также

  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_fetch_row() - Получение строки результирующей таблицы в виде массива
  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_assoc() - Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_fetch_object() - Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_num_rows() - Получает число рядов в результирующей выборке


Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба

  • « mysqli_result::data_seek
  • mysqli_result::fetch_array »
  • PHP Manual
  • mysqli_result
  • Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба

mysqli_result::fetch_all

mysqli_fetch_all

(PHP 5 >= 5.3.0, PHP 7)

mysqli_result::fetch_all -- mysqli_fetch_all — Выбирает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба

Описание

Объектно-ориентированный стиль

mixed mysqli_result::fetch_all ([ int $resulttype = MYSQLI_NUM ] )

Процедурный стиль

mixed mysqli_fetch_all ( mysqli_result $result [, int $resulttype = MYSQLI_NUM ] )

mysqli_fetch_all() извлекает все строки из результирующего набора и помещает их в ассоциативный массив, обычный массив или в оба.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

resulttype

Этот необязательный параметр принимает значение константы, которая указывает на тип массива, в который требуется поместить данные. Возможные значения параметра: MYSQLI_ASSOC, MYSQLI_NUM или MYSQLI_BOTH.

Возвращаемые значения

Возвращает массив содержащий ассоциативные или обычные массивы с данными результирующей таблицы.

Только для MySQL Native Driver

Доступно только с расширением mysqlnd.

Так как mysqli_fetch_all() сразу возвращает все строки в виде массива, это может заметно увеличить расходы памяти, нежели несколько запусков функций, вроде mysqli_fetch_array(), которые помещают в массив только одну строку результирующей таблицы. С другой стороны, если требуется многократно переходить от одной строки к другой и выбирать при этом по одной строке, придется каждый раз конструировать новый массив, что тоже не добавит быстродействия. Поэтому, mysqli_fetch_all() нужно использовать только в тех ситуациях, когда весь результирующий набор будет передаваться для обработки в какое-то другое место.

Смотрите также

  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_query() - Выполняет запрос к базе данных


Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба

  • « mysqli_result::fetch_all
  • mysqli_result::fetch_assoc »
  • PHP Manual
  • mysqli_result
  • Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба

mysqli_result::fetch_array

mysqli_fetch_array

(PHP 5, PHP 7)

mysqli_result::fetch_array -- mysqli_fetch_array — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба

Описание

Объектно-ориентированный стиль

mixed mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] )

Процедурный стиль

mixed mysqli_fetch_array ( mysqli_result $result [, int $resulttype = MYSQLI_BOTH ] )

Возвращает массив соответствующий выбранной строке или NULL, если в результирующей таблице, представленной параметром result, больше нет доступных строк.

mysqli_fetch_array() является расширенной версией функции mysqli_fetch_row(). В добавок к сохранению данных в обычном массиве, mysqli_fetch_array() может сохранять строки в ассоциативном массиве, где имена полей результирующей таблицы будут ключами элементов.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Если два столбца или более имеют одинаковые имена, данные последнего столбца будут перезаписывать данные предыдущих. В таких ситуациях для доступа к данным всех столбцов с одинаковыми именами лучше пользоваться обычными массивами, индексированными номерами столбцов.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

resulttype

Этот необязательный параметр принимает значение константы, которая указывает на тип массива, в который требуется поместить данные. Возможные значения параметра: MYSQLI_ASSOC, MYSQLI_NUM или MYSQLI_BOTH.

При использовании константы MYSQLI_ASSOC функция будет вести себя идентично mysqli_fetch_assoc(), а при MYSQLI_NUM идентично функции mysqli_fetch_row(). При задании MYSQLI_BOTH функция создаст один массив, включающий атрибуты обоих вариантов.

Возвращаемые значения

Возвращает массив строк соответствующих выбранной строке набора или NULL, если в результирующей таблице больше нет данных.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if ($mysqli->connect_errno) {
    printf("Не удалось подключиться: %s\n", $mysqli->connect_error);
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = $mysqli->query($query);

/* обычный массив */
$row = $result->fetch_array(MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* ассоциативный массив */
$row = $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* ассоциативный и обычный массивы */
$row = $result->fetch_array(MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* очищаем результаты выборки */
$result->free();

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";
$result = mysqli_query($link, $query);

/* обычный массив */
$row = mysqli_fetch_array($result, MYSQLI_NUM);
printf ("%s (%s)\n", $row[0], $row[1]);

/* ассоциативный массив */
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);

/* ассоциативный и обычный массивы */
$row = mysqli_fetch_array($result, MYSQLI_BOTH);
printf ("%s (%s)\n", $row[0], $row["CountryCode"]);

/* очищаем результаты выборки */
mysqli_free_result($result);

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Kabul (AFG)
Qandahar (AFG)
Herat (AFG)

Смотрите также

  • mysqli_fetch_assoc() - Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_fetch_row() - Получение строки результирующей таблицы в виде массива
  • mysqli_fetch_object() - Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Извлекает результирующий ряд в виде ассоциативного массива

  • « mysqli_result::fetch_array
  • mysqli_result::fetch_field_direct »
  • PHP Manual
  • mysqli_result
  • Извлекает результирующий ряд в виде ассоциативного массива

mysqli_result::fetch_assoc

mysqli_fetch_assoc

(PHP 5, PHP 7)

mysqli_result::fetch_assoc -- mysqli_fetch_assoc — Извлекает результирующий ряд в виде ассоциативного массива

Описание

Объектно-ориентированный стиль

array mysqli_result::fetch_assoc ( void )

Процедурный стиль

array mysqli_fetch_assoc ( mysqli_result $result )

Возвращает ассоциативный массив, соответствующий результирующей выборке или NULL, если других рядов не существует.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Возвращает ассоциативный массив строк, соответствующий результирующей выборке, где каждый ключ в массиве соответствует имени одного из столбцов выборки или NULL, если других рядов не существует.

Если два или более столбца в выборке имеют одинаковое название полей, то приоритет отдается последнему столбцу. Для доступа к другому столбцу с таким же именем вам необходимо произвести нумерованную выборку с помощью функцию mysqli_fetch_row() или добавить псевдонимы.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if ($mysqli->connect_errno) {
    printf("Соединение не удалось: %s\n", $mysqli->connect_error);
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* извлечение ассоциативного массива */
    while ($row = $result->fetch_assoc()) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* удаление выборки */
    $result->free();
}

/* закрытие соединения */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* извлечение ассоциативного массива */
    while ($row = mysqli_fetch_assoc($result)) {
        printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
    }

    /* удаление выборки */
    mysqli_free_result($result);
}

/* закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Пример #3 Пример mysqli_result с использованием класса iterator

<?php
$c = mysqli_connect('127.0.0.1','user', 'pass');

// Использование итераторов (поддержка была добавлена начиная с PHP 5.4)
foreach ( $c->query('SELECT user,host FROM mysql.user') as $row ) {
    printf("'%s'@'%s'\n", $row['user'], $row['host']);
}

echo "\n==================\n";

// Без использования итераторов
$result = $c->query('SELECT user,host FROM mysql.user');
while ($row = $result->fetch_assoc()) {
    printf("'%s'@'%s'\n", $row['user'], $row['host']);
}

?>

Результатом выполнения данного примера будет что-то подобное:

'root'@'192.168.1.1'
'root'@'127.0.0.1'
'dude'@'localhost'
'lebowski'@'localhost'

==================

'root'@'192.168.1.1'
'root'@'127.0.0.1'
'dude'@'localhost'
'lebowski'@'localhost'

Смотрите также

  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_row() - Получение строки результирующей таблицы в виде массива
  • mysqli_fetch_object() - Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Получение метаданных конкретного поля

  • « mysqli_result::fetch_assoc
  • mysqli_result::fetch_field »
  • PHP Manual
  • mysqli_result
  • Получение метаданных конкретного поля

mysqli_result::fetch_field_direct

mysqli_fetch_field_direct

(PHP 5, PHP 7)

mysqli_result::fetch_field_direct -- mysqli_fetch_field_direct — Получение метаданных конкретного поля

Описание

Объектно-ориентированный стиль

object mysqli_result::fetch_field_direct ( int $fieldnr )

Процедурный стиль

object mysqli_fetch_field_direct ( mysqli_result $result , int $fieldnr )

Возвращает информацию о столбце результирующего набора в виде объекта.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

fieldnr

Номер поля. Число должно лежать в диапазоне от 0 до количество полей - 1.

Возвращаемые значения

Возвращает объект содержащий определение поля или FALSE, если поле с номером fieldnr недоступно.

Свойства объекта
Свойство | Описание
name | Имя столбца
orgname | Исходное имя столбца, если у него есть псевдоним
table | Имя таблицы, которой принадлежит столбец (если не вычислено)
orgtable | Исходное имя таблицы, если есть псевдоним
def | Зарезервировано для значения по умолчанию, на данный момент всегда ""
max_length | Максимальная ширина поля результирующего набора.
length | Ширина поля, как она задана при определении таблицы.
charsetnr | Количество наборов символов для поля.
flags | Целое число, представляющее битовые флаги для поля.
type | Тип данных поля
decimals | Число знаков после запятой (для числовых полей)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* получение метаданных столбца 'SurfaceArea' */
    $finfo = $result->fetch_field_direct(1);

        printf("Имя:         %s\n", $finfo->name);
        printf("Таблица:     %s\n", $finfo->table);
        printf("макс. длина: %d\n", $finfo->max_length);
        printf("Флаги:       %d\n", $finfo->flags);
        printf("Тип:         %d\n\n", $finfo->type);

    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* получение метаданных столбца 'SurfaceArea' */
    $finfo = mysqli_fetch_field_direct($result, 1);

    printf("Имя:         %s\n", $finfo->name);
    printf("Таблица:     %s\n", $finfo->table);
    printf("макс. длина: %d\n", $finfo->max_length);
    printf("Флаги:       %d\n", $finfo->flags);
    printf("Тип:         %d\n\n", $finfo->type);

    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Имя:         SurfaceArea
Таблица:     Country
макс. длина: 10
Флаги:       32769
Тип:         4

Смотрите также

  • mysqli_num_fields() - Получение количества полей в результирующем наборе
  • mysqli_fetch_field() - Возвращает следующее поле результирующего набора
  • mysqli_fetch_fields() - Возвращает массив объектов, представляющих поля результирующего набора


Возвращает следующее поле результирующего набора

  • « mysqli_result::fetch_field_direct
  • mysqli_result::fetch_fields »
  • PHP Manual
  • mysqli_result
  • Возвращает следующее поле результирующего набора

mysqli_result::fetch_field

mysqli_fetch_field

(PHP 5, PHP 7)

mysqli_result::fetch_field -- mysqli_fetch_field — Возвращает следующее поле результирующего набора

Описание

Объектно-ориентированный стиль

object mysqli_result::fetch_field ( void )

Процедурный стиль

object mysqli_fetch_field ( mysqli_result $result )

Возвращает информацию об одном столбце результирующего набора в виде объекта. Чтобы получить определения всех столбцов, просто запустите эту функцию многократно.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Возвращает объект содержащий определение поля или FALSE, если столбцы в результирующей таблице закончились.

Свойства объекта
Свойство | Описание
name | Имя столбца
orgname | Исходное имя столбца, если у него есть псевдоним
table | Имя таблицы, которой принадлежит столбец (если не вычислено)
orgtable | Исходное имя таблицы, если есть псевдоним
def | Зарезервировано для значения по умолчанию, на данный момент всегда ""
db | База данных (с PHP 5.3.6)
catalog | Имя каталога, всегда "def" (с PHP 5.3.6)
max_length | Максимальная ширина поля результирующего набора.
length | Ширина поля, как она задана при определении таблицы.
charsetnr | Количество наборов символов для поля.
flags | Целое число, представляющее битовые флаги для поля.
type | Тип данных поля
decimals | Число знаков после запятой (для целочисленных полей)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Получим информацию обо всех столбцах */
    while ($finfo = $result->fetch_field()) {

        printf("Имя:         %s\n", $finfo->name);
        printf("Таблица:     %s\n", $finfo->table);
        printf("макс. длина: %d\n", $finfo->max_length);
        printf("Флаги:       %d\n", $finfo->flags);
        printf("Тип:         %d\n\n", $finfo->type);
    }
    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Получим информацию обо всех столбцах */
    while ($finfo = mysqli_fetch_field($result)) {

        printf("Имя:         %s\n", $finfo->name);
        printf("Таблица:     %s\n", $finfo->table);
        printf("макс. длина: %d\n", $finfo->max_length);
        printf("Флаги:       %d\n", $finfo->flags);
        printf("Тип:         %d\n\n", $finfo->type);    }
    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Имя:         Name
Таблица:     Country
макс. длина: 11
Флаги:       1
Тип:         254

Имя:         SurfaceArea
Таблица:     Country
макс. длина: 10
Флаги:       32769
Тип:         4

Смотрите также

  • mysqli_num_fields() - Получение количества полей в результирующем наборе
  • mysqli_fetch_field_direct() - Получение метаданных конкретного поля
  • mysqli_fetch_fields() - Возвращает массив объектов, представляющих поля результирующего набора
  • mysqli_field_seek() - Установить указатель поля на определенное смещение


Возвращает массив объектов, представляющих поля результирующего набора

  • « mysqli_result::fetch_field
  • mysqli_result::fetch_object »
  • PHP Manual
  • mysqli_result
  • Возвращает массив объектов, представляющих поля результирующего набора

mysqli_result::fetch_fields

mysqli_fetch_fields

(PHP 5, PHP 7)

mysqli_result::fetch_fields -- mysqli_fetch_fields — Возвращает массив объектов, представляющих поля результирующего набора

Описание

Объектно-ориентированный стиль

array mysqli_result::fetch_fields ( void )

Процедурный стиль

array mysqli_fetch_fields ( mysqli_result $result )

Эта функция служит для тех же целей, что и mysqli_fetch_field(), с той лишь разницей, что возвращает не один объект для столбца, а массив таких объектов.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Возвращает массив объектов, содержащих метаданные полей или FALSE, если доступных столбцов нет.

Свойства объекта
Свойство | Описание
name | Имя столбца
orgname | Исходное имя столбца, если у него есть псевдоним
table | Имя таблицы, которой принадлежит столбец (если не вычислено)
orgtable | Исходное имя таблицы, если есть псевдоним
max_length | Максимальная ширина поля результирующего набора.
length | Длина поля в байтах, как она задана при определении таблицы. Обратите внимание, что данная величина(в байтах) может отличаться от величины в символах, указанной в опредлелении поля таблицы, так как в разных кодировках один символ может может записываться несколькими байтами. Например, поле VARCHAR(10) в кодировке UTF-8 вернет длину 30 = 10 символов * 3 байта на символ, а для кодировки LATIN1 - длину 10, так как в этой кодировке один символ занимает один байт.
charsetnr | Числовой идентификатор кодировки.
flags | Целое число, представляющее битовые флаги для поля.
type | Тип данных поля
decimals | Число знаков после запятой (для целочисленных полей)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("127.0.0.1", "root", "foofoo", "sakila");

/* Проверяем соединение */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

foreach (array('latin1', 'utf8') as $charset) {

    // Устанавливаем кодировку для демонстрации ее влияния на некоторые
    $mysqli->set_charset($charset);

    $query = "SELECT actor_id, last_name from actor ORDER BY actor_id";

    echo "======================\n";
    echo "Character Set: $charset\n";
    echo "======================\n";

    if ($result = $mysqli->query($query)) {

        /* Читаем информацию по всем столбцам */
        $finfo = $result->fetch_fields();

        foreach ($finfo as $val) {
            printf("Name:      %s\n",   $val->name);
            printf("Table:     %s\n",   $val->table);
            printf("Max. Len:  %d\n",   $val->max_length);
            printf("Length:    %d\n",   $val->length);
            printf("charsetnr: %d\n",   $val->charsetnr);
            printf("Flags:     %d\n",   $val->flags);
            printf("Type:      %d\n\n", $val->type);
        }
        $result->free();
    }
}
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "sakila");

/* Проверяем соединение */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

foreach (array('latin1', 'utf8') as $charset) {

    // Устанавливаем кодировку для демонстрации ее влияния на некоторые
    mysqli_set_charset($link, $charset);

    $query = "SELECT actor_id, last_name from actor ORDER BY actor_id";

    echo "======================\n";
    echo "Character Set: $charset\n";
    echo "======================\n";

    if ($result = mysqli_query($link, $query)) {

        /* Читаем информацию по всем столбцам */
        $finfo = mysqli_fetch_fields($result);

        foreach ($finfo as $val) {
            printf("Name:      %s\n",   $val->name);
            printf("Table:     %s\n",   $val->table);
            printf("Max. Len:  %d\n",   $val->max_length);
            printf("Length:    %d\n",   $val->length);
            printf("charsetnr: %d\n",   $val->charsetnr);
            printf("Flags:     %d\n",   $val->flags);
            printf("Type:      %d\n\n", $val->type);
        }
        mysqli_free_result($result);
    }
}

mysqli_close($link);
?>

Результат выполнения данных примеров:

======================
Character Set: latin1
======================
Name:      actor_id
Table:     actor
Max. Len:  3
Length:    5
charsetnr: 63
Flags:     49699
Type:      2

Name:      last_name
Table:     actor
Max. Len:  12
Length:    45
charsetnr: 8
Flags:     20489
Type:      253

======================
Character Set: utf8
======================
Name:      actor_id
Table:     actor
Max. Len:  3
Length:    5
charsetnr: 63
Flags:     49699
Type:      2

Name:      last_name
Table:     actor
Max. Len:  12
Length:    135
charsetnr: 33
Flags:     20489

Смотрите также

  • mysqli_num_fields() - Получение количества полей в результирующем наборе
  • mysqli_fetch_field_direct() - Получение метаданных конкретного поля
  • mysqli_fetch_field() - Возвращает следующее поле результирующего набора


Возвращает текущую строку результирующего набора в виде объекта

  • « mysqli_result::fetch_fields
  • mysqli_result::fetch_row »
  • PHP Manual
  • mysqli_result
  • Возвращает текущую строку результирующего набора в виде объекта

mysqli_result::fetch_object

mysqli_fetch_object

(PHP 5, PHP 7)

mysqli_result::fetch_object -- mysqli_fetch_object — Возвращает текущую строку результирующего набора в виде объекта

Описание

Объектно-ориентированный стиль

object mysqli_result::fetch_object ([ string $class_name = "stdClass" [, array $params ]] )

Процедурный стиль

object mysqli_fetch_object ( mysqli_result $result [, string $class_name = "stdClass" [, array $params ]] )

mysqli_fetch_object() вернет текущую строку результирующей таблицы в виде объекта, атрибуты которого будут соответствовать именам столбцов таблицы.

Важно заметить, что mysqli_fetch_object() задает значения свойств объекта до вызова его конструктора.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

class_name

Имя класса, объект которого требуется инстанцировать, задать значения его свойств и вернуть. Если параметр не задан, будет возвращен объект stdClass.

params

Необязательный массив (array) параметров, которые будут переданы конструктору класса class_name.

Возвращаемые значения

Возвращает объект со строковыми свойствами, соответствующими значениям в выбранной строке или NULL, если в результирующем наборе нет доступных строк.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* выборка данных и помещение их в объекты */
    while ($obj = $result->fetch_object()) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* очищаем результирующий набор */
    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* выборка данных и помещение их в объекты */
    while ($obj = mysqli_fetch_object($result)) {
        printf ("%s (%s)\n", $obj->Name, $obj->CountryCode);
    }

    /* очищаем результирующий набор */
    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Смотрите также

  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_assoc() - Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_fetch_row() - Получение строки результирующей таблицы в виде массива
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Получение строки результирующей таблицы в виде массива

  • « mysqli_result::fetch_object
  • mysqli_result::$field_count »
  • PHP Manual
  • mysqli_result
  • Получение строки результирующей таблицы в виде массива

mysqli_result::fetch_row

mysqli_fetch_row

(PHP 5, PHP 7)

mysqli_result::fetch_row -- mysqli_fetch_row — Получение строки результирующей таблицы в виде массива

Описание

Объектно-ориентированный стиль

mixed mysqli_result::fetch_row ( void )

Процедурный стиль

mixed mysqli_fetch_row ( mysqli_result $result )

Выбирает одну строку данных из результирующего набора и возвращает ее в виде массива, в котором индексы элементов соответствуют номерам столбцов (начиная с 0). Каждый последующий вызов функции будет возвращать массив с данными следующей строки набора или NULL, если строки закончились.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

mysqli_fetch_row() возвращает массив строк, соответствующих данным в выбранной строке результирующей таблицы, или NULL, если доступных строк больше нет.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* выборка данных и помещение их в массив */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* очищаем результирующий набор */
    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = mysqli_query($link, $query)) {

    /* выборка данных и помещение их в массив */
    while ($row = mysqli_fetch_row($result)) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* очищаем результирующий набор */
    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Pueblo (USA)
Arvada (USA)
Cape Coral (USA)
Green Bay (USA)
Santa Clara (USA)

Смотрите также

  • mysqli_fetch_array() - Выбирает одну строку из результирующего набора и помещает ее в ассоциативный массив, обычный массив или в оба
  • mysqli_fetch_assoc() - Извлекает результирующий ряд в виде ассоциативного массива
  • mysqli_fetch_object() - Возвращает текущую строку результирующего набора в виде объекта
  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_data_seek() - Перемещает указатель результата на выбранную строку


Получение количества полей в результирующем наборе

  • « mysqli_result::fetch_row
  • mysqli_result::field_seek »
  • PHP Manual
  • mysqli_result
  • Получение количества полей в результирующем наборе

mysqli_result::$field_count

mysqli_num_fields

(PHP 5, PHP 7)

mysqli_result::$field_count -- mysqli_num_fields — Получение количества полей в результирующем наборе

Описание

Объектно-ориентированный стиль

int $mysqli_result->field_count;

Процедурный стиль

int mysqli_num_fields ( mysqli_result $result )

Возвращает количество полей в результирующем наборе.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Количество столбцов в результирующей таблице.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* определяем количество стобцов в результирующей таблице */
    $field_cnt = $result->field_count;

    printf("Результат содержит %d полей.\n", $field_cnt);

    /* закрываем результирующий набор */
    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT * FROM City ORDER BY ID LIMIT 1")) {

    /* определяем количество стобцов в результирующей таблице */
    $field_cnt = mysqli_num_fields($result);

    printf("Результат содержит %d полей.\n", $field_cnt);

    /* закрываем результирующий набор */
    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Результат содержит 5 полей.

Смотрите также

  • mysqli_fetch_field() - Возвращает следующее поле результирующего набора


Установить указатель поля на определенное смещение

  • « mysqli_result::$field_count
  • mysqli_result::free »
  • PHP Manual
  • mysqli_result
  • Установить указатель поля на определенное смещение

mysqli_result::field_seek

mysqli_field_seek

(PHP 5, PHP 7)

mysqli_result::field_seek -- mysqli_field_seek — Установить указатель поля на определенное смещение

Описание

Объектно-ориентированный стиль

bool mysqli_result::field_seek ( int $fieldnr )

Процедурный стиль

bool mysqli_field_seek ( mysqli_result $result , int $fieldnr )

Устанавливает указатель поля на заданное смещение. Следующий вызов mysqli_fetch_field() позволит получить информацию о столбце с позицией смещения.

Замечание:

Для поиска с начала строки необходимо установить нулевое значение смещения.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

fieldnr

Номер поля. Это значение должно быть в следующем диапазоне: от 0 до число полей - 1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = $mysqli->query($query)) {

    /* Получить информацию о поле во втором столбце */
    $result->field_seek(1);
    $finfo = $result->fetch_field();

    printf("Имя:     %s\n", $finfo->name);
    printf("Таблица:    %s\n", $finfo->table);
    printf("макс. Длина: %d\n", $finfo->max_length);
    printf("Флаги:    %d\n", $finfo->flags);
    printf("Тип:     %d\n\n", $finfo->type);

    $result->close();
}

/* Закрыть соединение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверить соединение */
if (mysqli_connect_errno()) {
    printf("Ошибка соединения: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT Name, SurfaceArea from Country ORDER BY Code LIMIT 5";

if ($result = mysqli_query($link, $query)) {

    /* Получить информацию о поле во втором столбце */
    mysqli_field_seek($result, 1);
    $finfo = mysqli_fetch_field($result);

    printf("Имя:     %s\n", $finfo->name);
    printf("Таблица:    %s\n", $finfo->table);
    printf("макс. Длина: %d\n", $finfo->max_length);
    printf("Флаги:    %d\n", $finfo->flags);
    printf("Тип:     %d\n\n", $finfo->type);

    mysqli_free_result($result);
}

/* Закрыть соединение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Имя:     SurfaceArea
Таблица:    Country
макс. Длина: 10
Флаги:    32769
Тип:     4

Смотрите также

  • mysqli_fetch_field() - Возвращает следующее поле результирующего набора


Освобождает память занятую результатами запроса

  • « mysqli_result::field_seek
  • mysqli_result::$lengths »
  • PHP Manual
  • mysqli_result
  • Освобождает память занятую результатами запроса

mysqli_result::free

mysqli_free_result

(PHP 5, PHP 7)

mysqli_result::free -- mysqli_free_result — Освобождает память занятую результатами запроса

Описание

Объектно-ориентированный стиль

void mysqli_result::free ( void )
void mysqli_result::close ( void )
void mysqli_result::free_result ( void )

Процедурный стиль

void mysqli_free_result ( mysqli_result $result )

Освобождает память занятую результатами запроса.

Замечание:

Нужно всегда очищать память функцией mysqli_free_result(), если результаты запроса больше не нужны.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • mysqli_query() - Выполняет запрос к базе данных
  • mysqli_stmt_store_result() - Передает результирующий набор запроса на клиента
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию


Возвращает длины полей текущей строки результирующего набора

  • « mysqli_result::free
  • mysqli_result::$num_rows »
  • PHP Manual
  • mysqli_result
  • Возвращает длины полей текущей строки результирующего набора

mysqli_result::$lengths

mysqli_fetch_lengths

(PHP 5, PHP 7)

mysqli_result::$lengths -- mysqli_fetch_lengths — Возвращает длины полей текущей строки результирующего набора

Описание

Объектно-ориентированный стиль

array $mysqli_result->lengths;

Процедурный стиль

array mysqli_fetch_lengths ( mysqli_result $result )

mysqli_fetch_lengths() возвращает массив, элементы которого представляют длины каждого поля текущей строки результирующего набора.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Массив целых чисел, представляющих размеры значений столбцов (исключая какие-либо завершающие нуль-символы). FALSE в случае ошибки.

mysqli_fetch_lengths() относится только к текущей строке. Функция вернет FALSE, если будет вызвана до вызова mysqli_fetch_row/array/object или если в результирующем наборе больше нет строк.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = $mysqli->query($query)) {

    $row = $result->fetch_row();

    /* выведем длины полей */
    foreach ($result->lengths as $i => $val) {
        printf("Поле %2d имеет длину %2d\n", $i+1, $val);
    }
    $result->close();
}

/* закрываем подключение */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка подключения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

$query = "SELECT * from Country ORDER BY Code LIMIT 1";

if ($result = mysqli_query($link, $query)) {

    $row = mysqli_fetch_row($result);

    /* выведем длины полей */
    foreach (mysqli_fetch_lengths($result) as $i => $val) {
        printf("Поле %2d имеет длину %2d\n", $i+1, $val);
    }
    mysqli_free_result($result);
}

/* закрываем подключение */
mysqli_close($link);
?>

Результат выполнения данных примеров:

Поле  1 имеет длину  3
Поле  2 имеет длину  5
Поле  3 имеет длину 13
Поле  4 имеет длину  9
Поле  5 имеет длину  6
Поле  6 имеет длину  1
Поле  7 имеет длину  6
Поле  8 имеет длину  4
Поле  9 имеет длину  6
Поле 10 имеет длину  6
Поле 11 имеет длину  5
Поле 12 имеет длину 44
Поле 13 имеет длину  7
Поле 14 имеет длину  3
Поле 15 имеет длину  2


Получает число рядов в результирующей выборке

  • « mysqli_result::$lengths
  • mysqli_driver »
  • PHP Manual
  • mysqli_result
  • Получает число рядов в результирующей выборке

mysqli_result::$num_rows

mysqli_num_rows

(PHP 5, PHP 7)

mysqli_result::$num_rows -- mysqli_num_rows — Получает число рядов в результирующей выборке

Описание

Объектно-ориентированный стиль

int $mysqli_result->num_rows;

Процедурный стиль

int mysqli_num_rows ( mysqli_result $result )

Возвращает число рядов в результирующей выборке.

Поведение функции mysqli_num_rows() зависит от того, используется ли буферизованная или не буферизованная результирующая выборка. Для не буферизованной выборки mysqli_num_rows() не вернет правильное число рядов пока все ряды не будут получены и обработаны.

Список параметров

result

Только для процедурного стиля: Идентификатор результата запроса, полученный с помощью mysqli_query(), mysqli_store_result() или mysqli_use_result().

Возвращаемые значения

Возвращает число рядов в результирующей выборке.

Замечание:

Если число рядов больше чем PHP_INT_MAX, то число будет возвращено в виде строки.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

if ($result = $mysqli->query("SELECT Code, Name FROM Country ORDER BY Name")) {

    /* определение числа рядов в выборке */
    $row_cnt = $result->num_rows;

    printf("В выборке %d рядов.\n", $row_cnt);

    /* закрытие выборки */
    $result->close();
}

/* закрытие соединения */
$mysqli->close();
?>

Пример #2 Процедурный стиль

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* проверка соединения */
if (mysqli_connect_errno()) {
    printf("Соединение не удалось: %s\n", mysqli_connect_error());
    exit();
}

if ($result = mysqli_query($link, "SELECT Code, Name FROM Country ORDER BY Name")) {

    /* определение числа рядов в выборке */
    $row_cnt = mysqli_num_rows($result);

    printf("В выборке %d рядов.\n", $row_cnt);

    /* закрытие выборки */
    mysqli_free_result($result);
}

/* закрытие соединения */
mysqli_close($link);
?>

Результат выполнения данных примеров:

В выборке 239 рядов.

Смотрите также

  • mysqli_affected_rows() - Получает число строк, затронутых предыдущей операцией MySQL
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию
  • mysqli_query() - Выполняет запрос к базе данных


Класс mysqli_driver

(PHP 5, PHP 7)

Введение

MySQLi Driver.

Обзор классов

mysqli_driver {
/* Свойства */
public readonly string $client_info ;
public readonly string $client_version ;
public readonly string $driver_version ;
public readonly string $embedded ;
public bool $reconnect ;
public int $report_mode ;
/* Методы */
void embedded_server_end ( void )
bool embedded_server_start ( bool $start , array $arguments , array $groups )
}

Свойства

client_info

Версия заголовка Client API

client_version

Версия Client

driver_version

Версия MySQLi Driver

embedded

Статус поддержки MySQLi Embedded

reconnect

Разрешить или запретить переподключение (см. mysqli.reconnect INI директиву)

report_mode

Установить MYSQLI_REPORT_OFF, MYSQLI_REPORT_ALL или любую комбинацию из MYSQLI_REPORT_STRICT (вызов исключений для ошибок), MYSQLI_REPORT_ERROR (сообщение об ошибках) и MYSQLI_REPORT_INDEX (ошибки, связанные с индексами). Смотрите также mysqli_report().

Содержание

  • mysqli_driver::embedded_server_end — Останов встроенного сервера
  • mysqli_driver::embedded_server_start — Инициализирует и запускает встроенный сервер
  • mysqli_driver::$report_mode — Включает или отключает внутренние функции протоколирования


Останов встроенного сервера

  • « mysqli_driver
  • mysqli_driver::embedded_server_start »
  • PHP Manual
  • mysqli_driver
  • Останов встроенного сервера

mysqli_driver::embedded_server_end

mysqli_embedded_server_end

(PHP 5, PHP 7)

mysqli_driver::embedded_server_end -- mysqli_embedded_server_end — Останов встроенного сервера

Описание

Объектно-ориентированный стиль

void mysqli_driver::embedded_server_end ( void )

Процедурный стиль

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, PHP 7)

mysqli_driver::embedded_server_start -- mysqli_embedded_server_start — Инициализирует и запускает встроенный сервер

Описание

Объектно-ориентированный стиль

bool mysqli_driver::embedded_server_start ( bool $start , array $arguments , array $groups )

Процедурный стиль

bool mysqli_embedded_server_start ( bool $start , array $arguments , array $groups )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Включает или отключает внутренние функции протоколирования

  • « mysqli_driver::embedded_server_start
  • mysqli_warning »
  • PHP Manual
  • mysqli_driver
  • Включает или отключает внутренние функции протоколирования

mysqli_driver::$report_mode

mysqli_report

(PHP 5, PHP 7)

mysqli_driver::$report_mode -- mysqli_report — Включает или отключает внутренние функции протоколирования

Описание

Объектно-ориентированный стиль

int $mysqli_driver->report_mode ;

Процедурный стиль

bool mysqli_report ( int $flags )

Эта функция может оказаться полезной при выполнении запросов на этапе разработки и тестирования. В зависимости от установленных флагов, в протокол будут заноситься ошибки вызовов функций mysqli или сообщения о выполнении запросов не использующих индекс (или использующих неверный индекс).

Список параметров

flags

Поддерживаемые флаги
Имя | Описание
MYSQLI_REPORT_OFF | Отключить протоколирование
MYSQLI_REPORT_ERROR | Заносить в протокол ошибки вызовов функций mysqli
MYSQLI_REPORT_STRICT | Вместо сообщений об ошибках выбрасывать исключение mysqli_sql_exception
MYSQLI_REPORT_INDEX | Заносить в протокол факты использования в запросах неверного индекса (или когда индекс не используется вообще)
MYSQLI_REPORT_ALL | Включить все настройки (заносить в протокол все события)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.4 | Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.
5.2.15 | Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* Проверка соединения */
if (mysqli_connect_errno()) {
    printf("Не удалось подключиться: %s\n", mysqli_connect_error());
    exit();
}

/* включение протоколирования */
$driver = new mysqli_driver();
$driver->report_mode = MYSQLI_REPORT_ALL;

try {

    /* этот запрос должен отчитаться об ошибке */
    $result = $mysqli->query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

    /* этот запрос должен отчитаться об использовании неверного индекса */
    $result = $mysqli->query("SELECT Name FROM City WHERE population > 50000");

    $result->close();

    $mysqli->close();

} catch (mysqli_sql_exception $e) {

    echo $e->__toString();
}
?>

Пример #2 Процедурный стиль

<?php
/* включение протоколирования */
mysqli_report(MYSQLI_REPORT_ALL);

$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* Проверка соединения */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* этот запрос должен отчитаться об ошибке */
$result = mysqli_query("SELECT Name FROM Nonexistingtable WHERE population > 50000");

/* этот запрос должен отчитаться об использовании неверного индекса */
$result = mysqli_query("SELECT Name FROM City WHERE population > 50000");

mysqli_free_result($result);

mysqli_close($link);
?>

Смотрите также

  • mysqli_debug() - Выполняет процедуры отладки
  • mysqli_dump_debug_info() - Журналирование отладочной информации
  • mysqli_sql_exception
  • set_exception_handler() - Задает пользовательский обработчик исключений
  • error_reporting() - Задает, какие ошибки PHP попадут в отчет


Класс mysqli_warning

(PHP 5, PHP 7)

Введение

Представляет предупреждение MySQL.

Обзор классов

mysqli_warning {
/* Свойства */
public $message ;
public $sqlstate ;
public $errno ;
/* Методы */
public __construct ( void )
public void next ( void )
}

Свойства

message

Строка сообщения

sqlstate

Код SQLstate

errno

Номер ошибки

Содержание

  • mysqli_warning::__construct — Выполняет функции конструктора
  • mysqli_warning::next — Переход к следующему предупреждению


Выполняет функции конструктора

  • « mysqli_warning
  • mysqli_warning::next »
  • PHP Manual
  • mysqli_warning
  • Выполняет функции конструктора

mysqli_warning::__construct

(PHP 5, PHP 7)

mysqli_warning::__construct — Выполняет функции конструктора

Описание

public mysqli_warning::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Переход к следующему предупреждению

  • « mysqli_warning::__construct
  • mysqli_sql_exception »
  • PHP Manual
  • mysqli_warning
  • Переход к следующему предупреждению

mysqli_warning::next

(PHP 5, PHP 7)

mysqli_warning::next — Переход к следующему предупреждению

Описание

public void mysqli_warning::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс mysqli_sql_exception

(PHP 5, PHP 7)

Введение

Класс для обработки исключений mysqli.

Обзор классов

mysqli_sql_exception extends RuntimeException {
/* Свойства */
protected string $sqlstate ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}

Свойства

sqlstate

Код sqlstate.


Синонимы и устаревшие Функции Mysqli

Содержание

  • mysqli_bind_param — Синоним функции mysqli_stmt_bind_param
  • mysqli_bind_result — Синоним функции mysqli_stmt_bind_result
  • mysqli_client_encoding — Синоним функции mysqli_character_set_name
  • mysqli_connect — Псевдоним mysqli::__construct
  • mysqli::disable_reads_from_master — Блокирует чтение с мастера
  • mysqli_disable_rpl_parse — Блокировать разбор RPL
  • mysqli_enable_reads_from_master — Включает чтение с мастера
  • mysqli_enable_rpl_parse — Включает разбор RPL
  • mysqli_escape_string — Псевдоним функции mysqli_real_escape_string
  • mysqli_execute — Синоним для mysqli_stmt_execute
  • mysqli_fetch — Синоним для mysqli_stmt_fetch
  • mysqli_get_cache_stats — Возвращает статистические данные о Zval кэше клиента
  • mysqli_get_links_stats — Возвращает информацию об открытых и закешированных соединениях MySQL
  • mysqli_get_metadata — Синоним для mysqli_stmt_result_metadata
  • mysqli_master_query — Принудительный запуск запроса на хозяине в случае установки хозяин/раб
  • mysqli_param_count — Синоним для mysqli_stmt_param_count
  • mysqli_report — Псевдоним mysqli_driver->report_mode
  • mysqli_rpl_parse_enabled — Проверка, включен ли RPL разбор
  • mysqli_rpl_probe — RPL зонд
  • mysqli_send_long_data — Синоним для mysqli_stmt_send_long_data
  • mysqli::set_opt — Alias of mysqli_options
  • mysqli_slave_query — Принудительный запуск запроса на рабе в установке хозяин/раб


Синоним функции mysqli_stmt_bind_param

  • « Синонимы и устаревшие Функции Mysqli
  • mysqli_bind_result »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Синоним функции mysqli_stmt_bind_param

mysqli_bind_param

(PHP 5 < 5.4.0)

mysqli_bind_param — Синоним функции mysqli_stmt_bind_param()

Описание

Эта функция является синонимом функции mysqli_stmt_bind_param().

Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Смотрите также

  • mysqli_stmt_bind_param() - Привязка переменных к параметрам подготавливаемого запроса


Синоним функции mysqli_stmt_bind_result

  • « mysqli_bind_param
  • mysqli_client_encoding »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Синоним функции mysqli_stmt_bind_result

mysqli_bind_result

(PHP 5 < 5.4.0)

mysqli_bind_result — Синоним функции mysqli_stmt_bind_result()

Описание

Эта функция является синонимом функции mysqli_stmt_bind_result().

Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Смотрите также

  • mysqli_stmt_bind_result() - Привязка переменных к подготовленному запросу для размещения результата


Синоним функции mysqli_character_set_name

  • « mysqli_bind_result
  • mysqli_connect »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Синоним функции mysqli_character_set_name

mysqli_client_encoding

(PHP 5 < 5.4.0)

mysqli_client_encoding — Синоним функции mysqli_character_set_name()

Описание

Эта функция является синонимом функции mysqli_character_set_name().

Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Смотрите также

  • mysqli_real_escape_string() - Экранирует специальные символы в строке для использования в SQL выражении, используя текущий набор символов соединения


Псевдоним mysqli::__construct

  • « mysqli_client_encoding
  • mysqli::disable_reads_from_master »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Псевдоним mysqli::__construct

mysqli_connect

(PHP 5, PHP 7)

mysqli_connect — Псевдоним mysqli::__construct()

Описание

Эта функция является псевдонимом: mysqli::__construct()

Несмотря на то, что документация на mysqli::__construct() содержит примеры процедурного способа использования mysqli_connect(), здесь представлен короткий пример:

Примеры

Пример #1 Пример использования mysqli_connect()

<?php
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");

if (!$link) {
    echo "Ошибка: Невозможно установить соединение с MySQL." . PHP_EOL;
    echo "Код ошибки errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Текст ошибки error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

echo "Соединение с MySQL установлено!" . PHP_EOL;
echo "Информация о сервере: " . mysqli_get_host_info($link) . PHP_EOL;

mysqli_close($link);
?>

Результат выполнения данных примеров:

Соединение с MySQL установлено!
Информация о сервере: localhost via TCP/IP


Блокирует чтение с мастера

  • « mysqli_connect
  • mysqli_disable_rpl_parse »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Блокирует чтение с мастера

mysqli::disable_reads_from_master

mysqli_disable_reads_from_master

(PHP 5 < 5.3.0)

mysqli::disable_reads_from_master -- mysqli_disable_reads_from_master — Блокирует чтение с мастера

Описание

Объектно-ориентированный стиль

void mysqli::disable_reads_from_master ( void )

Процедурный стиль

bool mysqli_disable_reads_from_master ( mysqli $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА начиная с версии PHP 5.3.0.


Блокировать разбор RPL

  • « mysqli::disable_reads_from_master
  • mysqli_enable_reads_from_master »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Блокировать разбор RPL

mysqli_disable_rpl_parse

(PHP 5 < 5.3.0)

mysqli_disable_rpl_parse — Блокировать разбор RPL

Описание

bool mysqli_disable_rpl_parse ( mysqli $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА начиная с версии PHP 5.3.0.


Включает чтение с мастера

  • « mysqli_disable_rpl_parse
  • mysqli_enable_rpl_parse »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Включает чтение с мастера

mysqli_enable_reads_from_master

(PHP 5 < 5.3.0)

mysqli_enable_reads_from_master — Включает чтение с мастера

Описание

bool mysqli_enable_reads_from_master ( mysqli $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА начиная с версии PHP 5.3.0.


Включает разбор RPL

  • « mysqli_enable_reads_from_master
  • mysqli_escape_string »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Включает разбор RPL

mysqli_enable_rpl_parse

(PHP 5 < 5.3.0)

mysqli_enable_rpl_parse — Включает разбор RPL

Описание

bool mysqli_enable_rpl_parse ( mysqli $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА начиная с версии PHP 5.3.0.


Псевдоним функции mysqli_real_escape_string

  • « mysqli_enable_rpl_parse
  • mysqli_execute »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Псевдоним функции mysqli_real_escape_string

mysqli_escape_string

(PHP 5, PHP 7)

mysqli_escape_string — Псевдоним функции mysqli_real_escape_string()

Описание

Эта функция является псевдонимом: mysqli_real_escape_string().


Синоним для mysqli_stmt_execute

  • « mysqli_escape_string
  • mysqli_fetch »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Синоним для mysqli_stmt_execute

mysqli_execute

(PHP 5, PHP 7)

mysqli_execute — Синоним для mysqli_stmt_execute()

Описание

Эта функция является синонимом mysqli_stmt_execute().

Примечания

Замечание:

Функция mysqli_execute() устарела и будет удалена.

Смотрите также

  • mysqli_stmt_execute() - Выполняет подготовленный запрос


Синоним для mysqli_stmt_fetch

  • « mysqli_execute
  • mysqli_get_cache_stats »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Синоним для mysqli_stmt_fetch

mysqli_fetch

(PHP 5 < 5.4.0)

mysqli_fetch — Синоним для mysqli_stmt_fetch()

Описание

Функция является синонимом mysqli_stmt_fetch().

Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Смотрите также

  • mysqli_stmt_fetch() - Связывает результаты подготовленного выражения с переменными


Возвращает статистические данные о Zval кэше клиента

  • « mysqli_fetch
  • mysqli_get_links_stats »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Возвращает статистические данные о Zval кэше клиента

mysqli_get_cache_stats

(PHP 5 >= 5.3.0 and < 5.4.0)

mysqli_get_cache_stats — Возвращает статистические данные о Zval кэше клиента

Внимание

Эта функция была УДАЛЕНА начиная с PHP 5.4.0.

Описание

array mysqli_get_cache_stats ( void )

Возвращает пустой массив. Доступно только с расширением mysqlnd.

Список параметров

Возвращаемые значения

Возвращает пустой массив в случае успешного выполнения и FALSE в противном случае.

Список изменений

Версия | Описание
5.4.0 | Функция mysqli_get_cache_stats() удалена.
5.3.0 | Функция mysqli_get_cache_stats() добавлена в виде заглушки.


Возвращает информацию об открытых и закешированных соединениях MySQL

  • « mysqli_get_cache_stats
  • mysqli_get_metadata »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Возвращает информацию об открытых и закешированных соединениях MySQL

mysqli_get_links_stats

(PHP 5 >= 5.6.0, PHP 7)

mysqli_get_links_stats — Возвращает информацию об открытых и закешированных соединениях MySQL

Описание

array mysqli_get_links_stats ( void )

mysqli_get_links_stats() возвращает информацию об открытых и закешированных соединениях MySQL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

mysqli_get_links_stats() возвращает ассоциативный массив из трех целочисленных значений со следующими ключами:

total

Общее количество соединений с любыми статусами.

active_plinks

Количество активных постоянных(persistent) соединениях.

cached_plinks

Количество неактивных постоянных(persistent) соединениях.


Синоним для mysqli_stmt_result_metadata

  • « mysqli_get_links_stats
  • mysqli_master_query »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Синоним для mysqli_stmt_result_metadata

mysqli_get_metadata

(PHP 5 < 5.4.0)

mysqli_get_metadata — Синоним для mysqli_stmt_result_metadata()

Описание

Функция является синонимом mysqli_stmt_result_metadata().

Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Смотрите также

  • mysqli_stmt_result_metadata() - Возвращает метаданные результирующей таблицы подготавливаемого запроса


Принудительный запуск запроса на хозяине в случае установки хозяин/раб

  • « mysqli_get_metadata
  • mysqli_param_count »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Принудительный запуск запроса на хозяине в случае установки хозяин/раб

mysqli_master_query

(PHP 5 < 5.3.0)

mysqli_master_query — Принудительный запуск запроса на хозяине в случае установки хозяин/раб

Описание

bool mysqli_master_query ( mysqli $link , string $query )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА начиная с версии PHP 5.3.0.


Синоним для mysqli_stmt_param_count

  • « mysqli_master_query
  • mysqli_report »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Синоним для mysqli_stmt_param_count

mysqli_param_count

(PHP 5 < 5.4.0)

mysqli_param_count — Синоним для mysqli_stmt_param_count()

Описание

Функция является синонимом mysqli_stmt_param_count().

Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Смотрите также

  • mysqli_stmt_param_count() - Возвращает количество параметров в запросе


Псевдоним mysqli_driver->report_mode

  • « mysqli_param_count
  • mysqli_rpl_parse_enabled »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Псевдоним mysqli_driver->report_mode

mysqli_report

(PHP 5, PHP 7)

mysqli_report — Псевдоним mysqli_driver->report_mode

Описание

Эта функция является псевдонимом: mysqli_driver->report_mode


Проверка, включен ли RPL разбор

  • « mysqli_report
  • mysqli_rpl_probe »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Проверка, включен ли RPL разбор

mysqli_rpl_parse_enabled

(PHP 5 < 5.3.0)

mysqli_rpl_parse_enabled — Проверка, включен ли RPL разбор

Описание

int mysqli_rpl_parse_enabled ( mysqli $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА начиная с версии PHP 5.3.0.


RPL зонд

  • « mysqli_rpl_parse_enabled
  • mysqli_send_long_data »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • RPL зонд

mysqli_rpl_probe

(PHP 5 < 5.3.0)

mysqli_rpl_probe — RPL зонд

Описание

bool mysqli_rpl_probe ( mysqli $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА начиная с версии PHP 5.3.0.


Синоним для mysqli_stmt_send_long_data

  • « mysqli_rpl_probe
  • mysqli::set_opt »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Синоним для mysqli_stmt_send_long_data

mysqli_send_long_data

(PHP 5 < 5.4.0)

mysqli_send_long_data — Синоним для mysqli_stmt_send_long_data()

Описание

Функция является синонимом mysqli_stmt_send_long_data().

Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Смотрите также

  • mysqli_stmt_send_long_data() - Отправка данных блоками


Alias of mysqli_options

  • « mysqli_send_long_data
  • mysqli_slave_query »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Alias of mysqli_options

mysqli::set_opt

mysqli_set_opt

(PHP 5, PHP 7)

mysqli::set_opt -- mysqli_set_opt — Alias of mysqli_options()

Описание

Функция является синонимом mysqli_options().


Принудительный запуск запроса на рабе в установке хозяин/раб

  • « mysqli::set_opt
  • Список изменений »
  • PHP Manual
  • Синонимы и устаревшие Функции Mysqli
  • Принудительный запуск запроса на рабе в установке хозяин/раб

mysqli_slave_query

(PHP 5 < 5.3.0)

mysqli_slave_query — Принудительный запуск запроса на рабе в установке хозяин/раб

Описание

bool mysqli_slave_query ( mysqli $link , string $query )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Внимание

Эта функция УСТАРЕЛА и была УДАЛЕНА начиная с версии PHP 5.3.0.


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного расширения.

Version | Function | Description
5.6.16 | mysqli::real_connect | Добавлен флаг MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT для MySQL Native Driver
5.5.0 | mysqli::commit | Добавлены параметры flags и name.
 | mysqli::options | Добавлены опции MYSQLI_SERVER_PUBLIC_KEY и MYSQLI_SERVER_PUBLIC_KEY.
 | mysqli::rollback | Добавлены параметры flags и name.
5.4.0 | mysqli_get_cache_stats | Функция mysqli_get_cache_stats удалена.
5.3.4 | mysqli_driver::$report_mode | Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.
5.3.0 | mysqli_get_cache_stats | Функция mysqli_get_cache_stats добавлена в виде заглушки.
 | mysqli::__construct | Добавлена возможность устанавливать постоянные соединения.
 | mysqli::options | Добавлены опции MYSQLI_OPT_INT_AND_FLOAT_NATIVE, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, MYSQLI_OPT_NET_READ_BUFFER_SIZE, и MYSQLI_OPT_SSL_VERIFY_SERVER_CERT.
 | mysqli::query | Добавлена возможность выполнять асинхронные запросы.
5.2.15 | mysqli_driver::$report_mode | Изменен режим протоколирования. Если ранее режим задавался для процесса, то теперь он задается для каждого запроса.


Оригинальное API MySQL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Список изменений
  • Предопределенные константы
  • Примеры
    • Обзорный пример расширения MySQL
  • MySQL — Функции СУБД MySQL
    • mysql_affected_rows — Возвращает число затронутых прошлой операцией рядов
    • mysql_client_encoding — Возвращает кодировку соединения
    • mysql_close — Закрывает соединение с сервером MySQL
    • mysql_connect — Открывает соединение с сервером MySQL
    • mysql_create_db — Создает базу данных MySQL
    • mysql_data_seek — Перемещает внутренний указатель в результате запроса
    • mysql_db_name — Возвращает название базы данных из вызова к mysql_list_dbs
    • mysql_db_query — Переключается на указанную базу данных и посылает запрос
    • mysql_drop_db — Уничтожает базу данных MySQL
    • mysql_errno — Возвращает численный код ошибки выполнения последней операции с MySQL
    • mysql_error — Возвращает текст ошибки последней операции с MySQL
    • mysql_escape_string — Экранирует строку для использования в mysql_query
    • mysql_fetch_array — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
    • mysql_fetch_assoc — Возвращает ряд результата запроса в качестве ассоциативного массива
    • mysql_fetch_field — Возвращает информацию о колонке из результата запроса в виде объекта
    • mysql_fetch_lengths — Возвращает длину каждого поля в результате
    • mysql_fetch_object — Обрабатывает ряд результата запроса и возвращает объект
    • mysql_fetch_row — Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
    • mysql_field_flags — Возвращает флаги, связанные с указанным полем результата запроса
    • mysql_field_len — Возвращает длину указанного поля
    • mysql_field_name — Возвращает название указанной колонки результата запроса
    • mysql_field_seek — Устанавливает внутренний указатель результата на переданное смещение поля
    • mysql_field_table — Возвращает название таблицы, которой принадлежит указанное поле
    • mysql_field_type — Возвращает тип указанного поля из результата запроса
    • mysql_free_result — Освобождает память от результата запроса
    • mysql_get_client_info — Возвращает данные о MySQL-клиенте
    • mysql_get_host_info — Возвращает информацию о соединении с MySQL
    • mysql_get_proto_info — Возвращает информацию о протоколе MySQL
    • mysql_get_server_info — Возвращает информацию о сервере MySQL
    • mysql_info — Возвращает информацию о последнем запросе
    • mysql_insert_id — Возвращает идентификатор, сгенерированный при последнем INSERT-запросе
    • mysql_list_dbs — Возвращает список баз данных, доступных на сервере
    • mysql_list_fields — Возвращает список колонок таблицы
    • mysql_list_processes — Возвращает список процессов MySQL
    • mysql_list_tables — Возвращает список таблиц базы данных MySQL
    • mysql_num_fields — Возвращает количество полей результата запроса
    • mysql_num_rows — Возвращает количество рядов результата запроса
    • mysql_pconnect — Устанавливает постоянное соединение с сервером MySQL
    • mysql_ping — Проверяет соединение с сервером и пересоединяется при необходимости
    • mysql_query — Посылает запрос MySQL
    • mysql_real_escape_string — Экранирует специальные символы в строках для использования в выражениях SQL
    • mysql_result — Возвращает данные результата запроса
    • mysql_select_db — Выбирает базу данных MySQL
    • mysql_set_charset — Устанавливает кодировку клиента
    • mysql_stat — Возвращает текущий статус сервера
    • mysql_tablename — Возвращает имя таблицы, содержащей указанное поле
    • mysql_thread_id — Возвращает идентификатор текущего потока
    • mysql_unbuffered_query — Посылает запрос MySQL без авто-обработки результата и его буферизации


Введение

Это расширение устарело с версии PHP 5.5.0, и удално с выпуска 7.0.0. Вместо него используйте mysqli или PDO_MySQL. Ознакомьтесь также с обзором MySQL API для более детальной информации по выбору MySQL API.

Эти функции позволяют вам работать с MySQL. За информацией о MySQL обращайтесь к » http://www.mysql.com/.

Документация MySQL находится по адресу » http://dev.mysql.com/doc/.


Требования

Для использования этих функций PHP должен быть собран с поддержкой MySQL.

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:


Установка

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

Для компиляции просто используйте опцию конфигурации --with-mysql[=DIR] , где необязательный параметр [DIR] указывает на директорию с установленным MySQL.

Несмотря на то, что это расширение MySQL совместимо с MySQL 4.1.0 и выше, оно не поддерживает дополнительную функциональность, предоставляемую этими версиями. Для получения такой возможности воспользуйтесь расширением MySQLi.

Если вы хотите установить расширение mysql совместно с mysqli, то для избежания каких-либо конфликтов необходимо использовать одну и ту же клиентскую библиотеку.

Установка на Linux-системы

Примечание: [DIR] является путем к файлам клиентской библиотеки MySQL (заголовкам и библиотекам), которые можно скачать с » MySQL.

Таблица компиляции ext/mysql по версиям PHP
PHP Версия | По умолчанию | Опции настройки: mysqlnd | Опции настройки: libmysqlclient | Список изменений
4.x.x | libmysqlclient | Недоступно | --without-mysql для отключения | MySQL включен по умолчанию, клиентские библиотеки MySQL входят в поставку PHP
5.0.x, 5.1.x, 5.2.x | libmysqlclient | Недоступно | --with-mysql=[DIR] | MySQL больше не включен по умолчанию, и клиентские библиотеки MySQL больше не входят в поставку PHP
5.3.x | libmysqlclient | --with-mysql=mysqlnd | --with-mysql=[DIR] | Стал доступен mysqlnd
5.4.x | mysqlnd | --with-mysql | --with-mysql=[DIR] | mysqlnd выбирается по умолчанию

Установка на Windows-системы

PHP 5.0.x, 5.1.x, 5.2.x

Поддержка MySQL больше не включена по умолчанию, поэтому для ее включения необходимо подключить php_mysql.dll DLL внутри php.ini. Кроме этого, PHP понадобится доступ к клиентской библиотеке MySQL. Файл libmysql.dll поставляется в Windows дистрибутиве PHP, и для корректного общения PHP с MySQL, данный файл должен быть доступен в системном пути Windows PATH. О том как это сделать, смотрите FAQ "Как добавить мою PHP директорию в системный PATH на Windows?". Хотя копирование libmysql.dll в системную папку Windows также сработает (потому что системная папка находится по умолчанию в PATH), это не рекомендуется.

Как и при включении любого другого расширения PHP (в том числе и php_mysql.dll), директива extension_dir должна указывать на директорию, содержащую PHP-расширения. Смотрите также Инструкции по ручной установке в Windows . Пример значения extension_dir для PHP 5: c:\php\ext

Замечание:

Если при старте веб-сервера происходит подобная ошибка: "Unable to load dynamic library './php_mysql.dll'", ("Невозможно подгрузить динамическую библиотеку './php_mysql.dll'"), то это случается из-за того, что на вашей системе не может быть найдена php_mysql.dll и/или libmysql.dll.

PHP 5.3.0+

MySQL Native Driver включен по умолчанию. В том числе php_mysql.dll, но без требования и использования libmysql.dll.

Замечания по установке MySQL

Внимание

Сбои в работе PHP могут иметь место при загрузке совместно этого расширения и расширения recode. За дополнительной информацией обращайтесь к разделу о расширении для recode.

Замечание:

Если вам требуется поддержка кодировок отличных от latin, (установленной по умолчанию), вам придётся установить внешнюю библиотеку libmysqlclient, скомпилированную с их поддержкой.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Директивы конфигурации MySQL
Имя | По умолчанию | Меняемо | Список изменений
mysql.allow_local_infile | "1" | PHP_INI_SYSTEM |
mysql.allow_persistent | "1" | PHP_INI_SYSTEM |
mysql.max_persistent | "-1" | PHP_INI_SYSTEM |
mysql.max_links | "-1" | PHP_INI_SYSTEM |
mysql.trace_mode | "0" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.1.
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_SYSTEM в PHP <= 4.3.2. Доступна с версии PHP 4.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mysql.allow_local_infile integer

Разрешает доступ к локальным файлам, с точки зрения PHP, с помощью инструкций LOAD DATA

mysql.allow_persistent boolean

Позволять ли постоянные соединения с MySQL.

mysql.max_persistent integer

Максимальное количество постоянных соединений c MySQL на один процесс.

mysql.max_links integer

Максимальное количество соединений с MySQL на один процесс, включая постоянные соединения.

mysql.trace_mode boolean

Режим трассировки. Если включена опция mysql.trace_mode, будут отображаться предупреждения при сканировании таблиц/индексов, непустых результирующих наборов (result sets), а также ошибки SQL. (Добавлено в версии PHP 4.3.0)

mysql.default_port string

TCP-порт, используемый для соединения с базой данных по умолчанию (если не был указан другой). Если эта директива опущена, порт будет взят из переменной среды MYSQL_TCP_PORT, значения mysql-tcp в файле /etc/services или константы MYSQL_PORT, указанной при компиляции, в указанном порядке. Win32 использует только константу MYSQL_PORT.

mysql.default_socket string

Имя сокета по умолчанию, используемого для соединения с локальной базой данных, если не был указан другой.

mysql.default_host string

Адрес сервера по умолчанию, используемый для соединения с сервером базы данных, если не указан другой. Не работает в SQL safe mode.

mysql.default_user string

Имя пользователя по умолчанию, используемое для соединения с сервером базы данных, если не указано другое. Не работает в SQL safe mode.

mysql.default_password string

Пароль по умолчанию, используемый для соединения с сервером базы данных, если не указан другой. Не работает в SQL safe mode.

mysql.connect_timeout integer

Время ожидания ответа до разрыва соединения в секундах. Linux также использует это значение при ожидании первого ответа от сервера.


Типы ресурсов

Есть два типа ресурсов, используемых в модуле MySQL. Первый является идентификатором соединения для подключения к базе данных, а второй ресурс содержит результат выполнения запроса.


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного расширения.

Общий список изменений для расширения ext/mysql

Этот список изменений ссылается на расширение ext/mysql.

Глобальные изменения в ext/mysql

Следующий список представляет собой подборку изменений расширения ext/mysql.

Версия | Описание
7.0.0 | Это расширение удалено из PHP PHP. Подробности тут Выбор API.
5.5.0 | Это расширение является устаревшим. Подключение к БД MySQL с использованием функции mysql_connect(), mysql_pconnect() или неявное подключение с использование любых функций mysql_* будет генерировать ошибку E_DEPRECATED.
5.5.0 | Все устаревшие функции и алиасы будут вызывать ошибки E_DEPRECATED. Эти функции: mysql(), mysql_fieldname(), mysql_fieldtable(), mysql_fieldlen(), mysql_fieldtype(), mysql_fieldflags(), mysql_selectdb(), mysql_createdb(), mysql_dropdb(), mysql_freeresult(), mysql_numfields(), mysql_numrows(), mysql_listdbs(), mysql_listtables(), mysql_listfields(), mysql_db_name(), mysql_dbname(), mysql_tablename(), and mysql_table_name().

Изменения в существующих фугкциях

Нижеследующий список является компиляцией всех изменений в функциях ext/mysql.

Version | Function | Description
5.5.0 | mysql_connect | Функция вызывает ошибку E_DEPRECATED.
 | mysql_db_name | Функция mysql_list_dbs устарела, и вызывает ошибку уровня E_DEPRECATED.
 | mysql_pconnect | Эта функция теперь вызывает ошибку E_DEPRECATED.
 | mysql_tablename | Функция mysql_tablename устарела, и вызывает ошибку уровня E_DEPRECATED.
5.3.0 | mysql_db_query | Функция теперь выдает предупреждение уровня E_DEPRECATED.
 | mysql_escape_string | Данная функция теперь выдает предупреждение уровня E_DEPRECATED.
4.3.7 | mysql_list_tables | Функция помечена устаревшей.
4.3.0 | mysql_escape_string | Функция помечена как устаревшая, ее не следует больше использовать. Используйте вместо нее mysql_real_escape_string.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Можно указать дополнительные клиентские флаги для функций mysql_connect() и mysql_pconnect() functions. Предопределены следующие константы:

Клиентские константы MySQL
Константа | Описание
MYSQL_CLIENT_COMPRESS | Использовать протокол сжатия
MYSQL_CLIENT_IGNORE_SPACE | Разрешает использовать пробелы после имён функций
MYSQL_CLIENT_INTERACTIVE | Позволяет interactive_timeout секунд (вместо wait_timeout ) бездействия до закрытия соединения.
MYSQL_CLIENT_SSL | Использовать SSL-шифрование. Этот флаг доступен только начиная с версии 4.x клиентской библиотеки MySQL. Версия 3.23.x поставляется как в PHP 4, так и с бинарным дистрибутивом Windows в PHP 5.

Функция mysql_fetch_array() использует константы для определения типа возвращаемого массива. Предопределены следующие константы:

Константы выборки MySQL
Константа | Описание
MYSQL_ASSOC | Результат возвращается в ассоциативном массиве с именами колонок в качестве индексов.
MYSQL_BOTH | Результат возвращается в массиве, содержащем как численные индексы, так и имена колонок в качестве индексов.
MYSQL_NUM | Результат возвращается в массиве, содержащем численные индексы. Индексы начинаются с 0 (0 содержит первую колонку).


  • « Предопределенные константы
  • Обзорный пример расширения MySQL »
  • PHP Manual
  • MySQL (Original)
  • Примеры

Примеры

Содержание

  • Обзорный пример расширения MySQL


Обзорный пример расширения MySQL

Этот простой пример показывает, как соединиться с базой данных, выполнить запрос, распечатать результат и отсоединиться.

Пример #1 Пример работы с MySQL

<?php
// Соединяемся, выбираем базу данных
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    or die('Не удалось соединиться: ' . mysql_error());
echo 'Соединение успешно установлено';
mysql_select_db('my_database') or die('Не удалось выбрать базу данных');

// Выполняем SQL-запрос
$query = 'SELECT * FROM my_table';
$result = mysql_query($query) or die('Запрос не удался: ' . mysql_error());

// Выводим результаты в html
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td>$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
echo "</table>\n";

// Освобождаем память от результата
mysql_free_result($result);

// Закрываем соединение
mysql_close($link);
?>


Функции СУБД MySQL

Примечания

Замечание:

Большинство функций MySQL принимают link_identifier как последний, опциональный параметр. Если он не указан, то используется последнее открытое соединение. Если соединений нет, то модуль пытается открыть соединение используя параметры, указанные в php.ini. В случае неудачи, функции возвращают FALSE. FALSE.

Содержание

  • mysql_affected_rows — Возвращает число затронутых прошлой операцией рядов
  • mysql_client_encoding — Возвращает кодировку соединения
  • mysql_close — Закрывает соединение с сервером MySQL
  • mysql_connect — Открывает соединение с сервером MySQL
  • mysql_create_db — Создает базу данных MySQL
  • mysql_data_seek — Перемещает внутренний указатель в результате запроса
  • mysql_db_name — Возвращает название базы данных из вызова к mysql_list_dbs
  • mysql_db_query — Переключается на указанную базу данных и посылает запрос
  • mysql_drop_db — Уничтожает базу данных MySQL
  • mysql_errno — Возвращает численный код ошибки выполнения последней операции с MySQL
  • mysql_error — Возвращает текст ошибки последней операции с MySQL
  • mysql_escape_string — Экранирует строку для использования в mysql_query
  • mysql_fetch_array — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_assoc — Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_field — Возвращает информацию о колонке из результата запроса в виде объекта
  • mysql_fetch_lengths — Возвращает длину каждого поля в результате
  • mysql_fetch_object — Обрабатывает ряд результата запроса и возвращает объект
  • mysql_fetch_row — Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_field_flags — Возвращает флаги, связанные с указанным полем результата запроса
  • mysql_field_len — Возвращает длину указанного поля
  • mysql_field_name — Возвращает название указанной колонки результата запроса
  • mysql_field_seek — Устанавливает внутренний указатель результата на переданное смещение поля
  • mysql_field_table — Возвращает название таблицы, которой принадлежит указанное поле
  • mysql_field_type — Возвращает тип указанного поля из результата запроса
  • mysql_free_result — Освобождает память от результата запроса
  • mysql_get_client_info — Возвращает данные о MySQL-клиенте
  • mysql_get_host_info — Возвращает информацию о соединении с MySQL
  • mysql_get_proto_info — Возвращает информацию о протоколе MySQL
  • mysql_get_server_info — Возвращает информацию о сервере MySQL
  • mysql_info — Возвращает информацию о последнем запросе
  • mysql_insert_id — Возвращает идентификатор, сгенерированный при последнем INSERT-запросе
  • mysql_list_dbs — Возвращает список баз данных, доступных на сервере
  • mysql_list_fields — Возвращает список колонок таблицы
  • mysql_list_processes — Возвращает список процессов MySQL
  • mysql_list_tables — Возвращает список таблиц базы данных MySQL
  • mysql_num_fields — Возвращает количество полей результата запроса
  • mysql_num_rows — Возвращает количество рядов результата запроса
  • mysql_pconnect — Устанавливает постоянное соединение с сервером MySQL
  • mysql_ping — Проверяет соединение с сервером и пересоединяется при необходимости
  • mysql_query — Посылает запрос MySQL
  • mysql_real_escape_string — Экранирует специальные символы в строках для использования в выражениях SQL
  • mysql_result — Возвращает данные результата запроса
  • mysql_select_db — Выбирает базу данных MySQL
  • mysql_set_charset — Устанавливает кодировку клиента
  • mysql_stat — Возвращает текущий статус сервера
  • mysql_tablename — Возвращает имя таблицы, содержащей указанное поле
  • mysql_thread_id — Возвращает идентификатор текущего потока
  • mysql_unbuffered_query — Посылает запрос MySQL без авто-обработки результата и его буферизации


Возвращает число затронутых прошлой операцией рядов

  • « MySQL
  • mysql_client_encoding »
  • PHP Manual
  • MySQL
  • Возвращает число затронутых прошлой операцией рядов

mysql_affected_rows

(PHP 4, PHP 5)

mysql_affected_rows — Возвращает число затронутых прошлой операцией рядов

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_affected_rows()
  • PDOStatement::rowCount()

Описание

int mysql_affected_rows ([ resource $link_identifier = NULL ] )

Возвращает количество рядов, затронутых последним INSERT, UPDATE, REPLACE или DELETE запросом, связанным с дескриптором link_identifier.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает количество измененных записей в случае успеха, и -1 в случае если последний запрос не удался.

Если последний запрос был DELETE без указания WHERE и, соответственно, таблица была очищена, функция вернёт ноль во всех версиях MySQL до 4.1.2.

При использовании UPDATE, MySQL не обновит колонки, уже содержащие новое значение. Вследствие этого, функция mysql_affected_rows() не всегда возвращает количество рядов, подошедших под условия, только количество рядов, обновлённых запросом.

Запрос REPLACE сначала удаляет запись с указанным первичным ключом, а потом вставляет новую. Данная функция возвращает количество удаленных записей вместе с количеством вставленных.

В случае использования запросов типа "INSERT ... ON DUPLICATE KEY UPDATE", возвращаемое значение будет равно 1 в случае, если была произведена вставка, или 2 при обновлении существующего ряда.

Примеры

Пример #1 Пример использования mysql_affected_rows()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
mysql_select_db('mydb');

/* здесь функция вернёт корректное число удалённых записей */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Удалено записей: %d\n", mysql_affected_rows());

/* если WHERE всегда возвращает false, то функция возвращает 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Удалено записей: %d\n", mysql_affected_rows());
?>

Результатом выполнения данного примера будет что-то подобное:

Удалено записей: 10
Удалено записей: 0

Пример #2 Пример использования mysql_affected_rows() с транзакциями

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
mysql_select_db('mydb');

/* Обновляем ряды */
mysql_query("UPDATE mytable SET used=1 WHERE id < 10");
printf ("Обновлено записей: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
?>

Результатом выполнения данного примера будет что-то подобное:

Обновлено записей: 10

Примечания

Замечание: Транзакции

При использовании транзакций mysql_affected_rows() нужно вызывать после запросов INSERT, UPDATE, DELETE, но не после COMMIT.

Замечание: Запросы SELECT

Чтобы получить количество рядов, возвращённых SELECT-запросом, используйте функцию mysql_num_rows().

Замечание: Каскадные внешние ключи

mysql_affected_rows() не подсчитывает ряды, неявно измененные ограничениями ON DELETE CASCADE и/или ON UPDATE CASCADE.

Смотрите также

  • mysql_num_rows() - Возвращает количество рядов результата запроса
  • mysql_info() - Возвращает информацию о последнем запросе


Возвращает кодировку соединения

  • « mysql_affected_rows
  • mysql_close »
  • PHP Manual
  • MySQL
  • Возвращает кодировку соединения

mysql_client_encoding

(PHP 4 >= 4.3.0, PHP 5)

mysql_client_encoding — Возвращает кодировку соединения

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_character_set_name()

Описание

string mysql_client_encoding ([ resource $link_identifier = NULL ] )

Возвращает значение переменной MySQL character_set.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает используемую по умолчанию кодировку для данного соединения.

Примеры

Пример #1 Пример использования mysql_client_encoding()

<?php
$link    = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$charset = mysql_client_encoding($link);

echo "Текущая кодировка: $charset\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Текущая кодировка: latin1

Смотрите также

  • mysql_set_charset() - Устанавливает кодировку клиента
  • mysql_real_escape_string() - Экранирует специальные символы в строках для использования в выражениях SQL


Закрывает соединение с сервером MySQL

  • « mysql_client_encoding
  • mysql_connect »
  • PHP Manual
  • MySQL
  • Закрывает соединение с сервером MySQL

mysql_close

(PHP 4, PHP 5)

mysql_close — Закрывает соединение с сервером MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_close()
  • PDO: Присвоить значение NULL объекту PDO

Описание

bool mysql_close ([ resource $link_identifier = NULL ] )

mysql_close() закрывает непостоянное соединение с базой данных MySQL, на которое указывает переданный дескриптор. Если параметр link_identifier не указан, закрывается последнее открытое (текущее) соединение.

Открытые непостоянные соединения MySQL и результирующие наборы автоматически удаляются сразу по окончании работы PHP скрипта. Следовательно, закрывать соединения и очищать результирующие наборы не обязательно, но рекомендуется, так как это сразу же освободит ресурсы базы данных и память, занимаемую результатами выборки, что может положительно сказаться на производительности. Больше информации можно почерпнуть в разделе Освобождение ресурсов

Список параметров

link_identifier

Соединение MySQL. Если не указано, то используется последнее соединение, открытое mysql_connect(). Если соединение не найдено или не установлено, то будет сгенерирована ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_close()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
?>

Результат выполнения данного примера:

Успешно соединились

Примечания

Замечание:

mysql_close() не закрывает постоянные соединения, созданные функцией mysql_pconnect(). Для дополнительной информации см. руководство по постоянным соединениям.

Смотрите также

  • mysql_connect() - Открывает соединение с сервером MySQL
  • mysql_free_result() - Освобождает память от результата запроса


Открывает соединение с сервером MySQL

  • « mysql_close
  • mysql_create_db »
  • PHP Manual
  • MySQL
  • Открывает соединение с сервером MySQL

mysql_connect

(PHP 4, PHP 5)

mysql_connect — Открывает соединение с сервером MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_connect()
  • PDO::__construct()

Описание

resource 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 ]]]]] )

Открывает новое соединение с сервером MySQL или использует уже существующее.

Список параметров

server

Сервер MySQL. Может также включать номер порта, например, "hostname:port" или путь к локальному сокету, например, ":/path/to/socket" для локального сервера.

Если PHP-директива mysql.default_host не определена (по умолчанию), то значением по умолчанию является 'localhost:3306'. В SQL safe mode этот параметр игнорируется и всегда используется значение 'localhost:3306'.

username

Имя пользователя. Значение по умолчанию определяется директивой mysql.default_user. В SQL safe mode этот параметр будет проигнорирован и будет использован пользователь, владеющий процессом сервера.

password

Пароль. Значение по умолчанию определяется директивой mysql.default_password. В SQL safe mode этот параметр будет проигнорирован и в качестве пароля будет использована пустая строка.

new_link

Если второй вызов функции mysql_connect() произошёл с теми же аргументами, то новое соединение не будет установлено. Вместо этого функция вернёт ссылку на уже установленное соединение. Параметр new_link может заставить функцию mysql_connect() открыть ещё одно соединение, даже если соединение с аналогичными параметрами уже открыто. В SQL safe mode этот параметр игнорируется.

client_flags

Параметр client_flags должен быть комбинацией из следующих констант: 128 (включает обработку LOAD DATA LOCAL), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE or MYSQL_CLIENT_INTERACTIVE. Подробнее читайте в разделе Клиентские константы MySQL. В SQL safe mode этот параметр игнорируется.

Возвращаемые значения

Возвращает дескриптор соединения с MySQL в случае успешного выполнения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | Функция вызывает ошибку E_DEPRECATED.

Примеры

Пример #1 Пример использования mysql_connect()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
?>

Пример #2 Пример использования mysql_connect() с синтаксисом hostname:port

<?php
// соединяемся с example.com на порту 3307
$link = mysql_connect('example.com:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);

// соединяемся с localhost на порту 3307
$link = mysql_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
?>

Пример #3 Пример использования mysql_connect() с синтаксисом ":/path/to/socket"

<?php
// соединяемся к localhost по сокету, т.е. /tmp/mysql.sock

// вариант 1: не указываем localhost
$link = mysql_connect(':/tmp/mysql', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);

// вариант 2: указываем localhost
$link = mysql_connect('localhost:/tmp/mysql.sock', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
echo 'Успешно соединились';
mysql_close($link);
?>

Примечания

Замечание:

При указании параметру server значения "localhost" или "localhost:port" клиентская библиотека MySQL будет пытаться соединиться с локальным сокетом. Если вы всё же хотите использовать TCP/IP, используйте адрес "127.0.0.1" вместо "localhost". Если клиентская библиотека пытается подключиться не к тому локальному сокету, это можно исправить через указание директивы в конфигурации PHP, после чего можно оставлять параметр server пустым.

Замечание:

Соединение с сервером будет закрыто при завершении исполнения скрипта, если только до этого оно не было закрыто с помощью функции mysql_close().

Замечание:

Подавить вывод ошибок можно добавив @ в начало названия функции.

Замечание:

Ошибка "Can't create TCP/IP socket (10106)" (Невозможно создать сокет TCP/IP) обычно означает, что конфигурационная директива variables_order не содержит символ E. В Windows, если в окружение не будет скопирована переменная окружения SYSTEMROOT, то PHP будет испытывать проблемы при загрузке Winsock.

Смотрите также

  • mysql_pconnect() - Устанавливает постоянное соединение с сервером MySQL
  • mysql_close() - Закрывает соединение с сервером MySQL


Создает базу данных MySQL

  • « mysql_connect
  • mysql_data_seek »
  • PHP Manual
  • MySQL
  • Создает базу данных MySQL

mysql_create_db

(PHP 4, PHP 5)

mysql_create_db — Создает базу данных MySQL

Внимание

Данная функция объявлена устаревшей в PHP 4.3.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • mysqli_query()
  • PDO::query()

Описание

bool mysql_create_db ( string $database_name [, resource $link_identifier = NULL ] )

mysql_create_db() пытается создать базу данных на сервере, с которым ассоциирован переданный дескриптор соединения.

Список параметров

database_name

Имя создаваемой базы данных.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример создания базы данных MySQL

Функция mysql_create_db() не рекомендуется к использованию. Предпочтительнее использовать mysql_query() с SQL-запросом создания базы данных CREATE DATABASE.

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}

$sql = 'CREATE DATABASE my_db';
if (mysql_query($sql, $link)) {
    echo "База my_db успешно создана\n";
} else {
    echo 'Ошибка при создании базы данных: ' . mysql_error() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

База my_db успешно создана

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_createdb()

Замечание:

Данная функция не будет доступна, если расширение MySQL было скомпилировано клиентской библиотекой MySQL версии 4.x.

Смотрите также

  • mysql_query() - Посылает запрос MySQL
  • mysql_select_db() - Выбирает базу данных MySQL


Перемещает внутренний указатель в результате запроса

  • « mysql_create_db
  • mysql_db_name »
  • PHP Manual
  • MySQL
  • Перемещает внутренний указатель в результате запроса

mysql_data_seek

(PHP 4, PHP 5)

mysql_data_seek — Перемещает внутренний указатель в результате запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_data_seek()
  • PDO::FETCH_ORI_ABS

Описание

bool mysql_data_seek ( resource $result , int $row_number )

mysql_data_seek() перемещает внутренний указатель результата запроса, с которым связан переданный дескриптор, к ряду с указанным номером. Следующий вызов к функции получения данных MySQL, такой как mysql_fetch_assoc(), вернёт именно его.

Нумерация row_number начинается с 0. row_number должен быть значением в диапазоне от 0 до mysql_num_rows() - 1. Однако, если результат пуст (mysql_num_rows() == 0), то попытка сдвига указателя к нулевому ряду завершится неудачей - будет вызвана ошибка уровня E_WARNING и mysql_data_seek() вернет FALSE.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

row_number

Желаемый номер ряда в полученном дескрипторе результата.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_data_seek()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
$db_selected = mysql_select_db('sample_db');
if (!$db_selected) {
    die('Не удалось выбрать базу данных: ' . mysql_error());
}
$query = 'SELECT last_name, first_name FROM friends';
$result = mysql_query($query);
if (!$result) {
    die('Ошибка запроса: ' . mysql_error());
}
/* получение рядов в обратном порядке */
for ($i = mysql_num_rows($result) - 1; $i >= 0; $i--) {
    if (!mysql_data_seek($result, $i)) {
        echo "Не удалось переместиться к ряду $i: " . mysql_error() . "\n";
        continue;
    }

    if (!($row = mysql_fetch_assoc($result))) {
        continue;
    }

    echo $row['last_name'] . ' ' . $row['first_name'] . "<br />\n";
}

mysql_free_result($result);
?>

Примечания

Замечание:

Функция mysql_data_seek() может быть использована
только с mysql_query(), но не с
mysql_unbuffered_query().

Смотрите также

  • mysql_query() - Посылает запрос MySQL
  • mysql_num_rows() - Возвращает количество рядов результата запроса
  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект


Возвращает название базы данных из вызова к mysql_list_dbs

  • « mysql_data_seek
  • mysql_db_query »
  • PHP Manual
  • MySQL
  • Возвращает название базы данных из вызова к mysql_list_dbs

mysql_db_name

(PHP 4, PHP 5)

mysql_db_name — Возвращает название базы данных из вызова к mysql_list_dbs()

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • Запрос: SELECT DATABASE()

Описание

string mysql_db_name ( resource $result , int $row [, mixed $field = NULL ] )

Возвращает название базы данных из вызова к mysql_list_dbs().

Список параметров

result

Дескриптор результата, полученный из вызова mysql_list_dbs().

row

Индекс в результате.

field

Имя поля.

Возвращаемые значения

Возвращает название базы данных в случае успеха, или FALSE в случае ошибки. В случае возврата FALSE используйте mysql_error() для определения природы ошибок.

Список изменений

Версия | Описание
5.5.0 | Функция mysql_list_dbs() устарела, и вызывает ошибку уровня E_DEPRECATED.

Примеры

Пример #1 Пример использования mysql_db_name()

<?php
error_reporting(E_ALL);

$link = mysql_connect('dbhost', 'username', 'password');
$db_list = mysql_list_dbs($link);

$i = 0;
$cnt = mysql_num_rows($db_list);
while ($i < $cnt) {
    echo mysql_db_name($db_list, $i) . "\n";
    $i++;
}
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_dbname()

Смотрите также

  • mysql_list_dbs() - Возвращает список баз данных, доступных на сервере
  • mysql_tablename() - Возвращает имя таблицы, содержащей указанное поле


Переключается на указанную базу данных и посылает запрос

  • « mysql_db_name
  • mysql_drop_db »
  • PHP Manual
  • MySQL
  • Переключается на указанную базу данных и посылает запрос

mysql_db_query

(PHP 4, PHP 5)

mysql_db_query — Переключается на указанную базу данных и посылает запрос

Внимание

Данная функция объявлена устаревшей в PHP 5.3.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • mysqli_select_db() then the query
  • PDO::__construct()

Описание

resource mysql_db_query ( string $database , string $query [, resource $link_identifier = NULL ] )

mysql_db_query() выбирает базу данных и выполняет запрос к ней.

Список параметров

database

Имя базы данных, на которую произойдет переключение.

query

Запрос MySQL.

Данные в запросе должны быть корректно проэкранированы.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает ресурс результата запроса к MySQL или FALSE в случае ошибки. Функция также возвращает TRUE/FALSE для INSERT/UPDATE/DELETE запросов для индикации успеха/провала.

Список изменений

Версия | Описание
5.3.0 | Функция теперь выдает предупреждение уровня E_DEPRECATED.

Примеры

Пример #1 Пример использования альтернативы mysql_db_query()

<?php

if (!$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Не удалось подключиться к mysql';
    exit;
}

if (!mysql_select_db('mysql_dbname', $link)) {
    echo 'Не удалось выбрать базу данных';
    exit;
}

$sql    = 'SELECT foo FROM bar WHERE id = 42';
$result = mysql_query($sql, $link);

if (!$result) {
    echo "Ошибка DB, запрос не удался\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_assoc($result)) {
    echo $row['foo'];
}

mysql_free_result($result);

?>

Примечания

Замечание:

Учтите, что эта функция НЕ переключает соединение обратно к предыдущей базе данных. Другими словами, вы не можете использовать эту функцию, чтобы временно переключиться на другую базу данных и выполнить запрос. Переключиться обратно вам придётся вручную. Крайне рекомендуется использовать синтаксис database.table в SQL-запросах или функцию mysql_select_db(), вместо использования этой функции.

Смотрите также

  • mysql_query() - Посылает запрос MySQL
  • mysql_select_db() - Выбирает базу данных MySQL


Уничтожает базу данных MySQL

  • « mysql_db_query
  • mysql_errno »
  • PHP Manual
  • MySQL
  • Уничтожает базу данных MySQL

mysql_drop_db

(PHP 4, PHP 5)

mysql_drop_db — Уничтожает базу данных MySQL

Внимание

Данная функция объявлена устаревшей в PHP 4.3.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • Выполнить запрос DROP DATABASE

Описание

bool mysql_drop_db ( string $database_name [, resource $link_identifier = NULL ] )

mysql_drop_db() пытается уничтожить базу данных на сервере, на который ссылается переданный дескриптор соединения. Данная функция устарела, используйте вместо нее mysql_query() с запросом DROP DATABASE.

Список параметров

database_name

Имя удаляемой базы данных.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Альтернативный пример использования mysql_drop_db()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Не удалось подключиться к базе данных: ' . mysql_error());
}

$sql = 'DROP DATABASE my_db';
if (mysql_query($sql, $link)) {
    echo "База данных my_db была успешно удалена\n";
} else {
    echo 'Ошибка при удалении базы данных: ' . mysql_error() . "\n";
}
?>

Примечания

Внимание

Эта функция недоступна, если расширение было скомпилировано с клиентской библиотекой MySQL версии 4.x.

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_dropdb()

Смотрите также

  • mysql_query() - Посылает запрос MySQL


Возвращает численный код ошибки выполнения последней операции с MySQL

  • « mysql_drop_db
  • mysql_error »
  • PHP Manual
  • MySQL
  • Возвращает численный код ошибки выполнения последней операции с MySQL

mysql_errno

(PHP 4, PHP 5)

mysql_errno — Возвращает численный код ошибки выполнения последней операции с MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_errno()
  • PDO::errorCode()

Описание

int mysql_errno ([ resource $link_identifier = NULL ] )

Возвращает код ошибки последней функции работы с MySQL.

Ошибки работы с MySQL больше не вызывают сообщений в PHP. Вместо этого используйте функцию mysql_errno(), чтобы получить код ошибки. Учтите, что функция возвращает код ошибки только последней выполненной функции (исключая mysql_error() и mysql_errno()). Проверяйте результат работы функции до вызова следующей.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает код ошибки последней функции работы с MySQL, или 0 (ноль), если операция выполнена успешно.

Примеры

Пример #1 Пример использования mysql_errno()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!mysql_select_db("nonexistentdb", $link)) {
    echo mysql_errno($link) . ": " . mysql_error($link). "\n";
}

mysql_select_db("kossu", $link);
if (!mysql_query("SELECT * FROM nonexistenttable", $link)) {
    echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Смотрите также

  • mysql_error() - Возвращает текст ошибки последней операции с MySQL
  • » Коды ошибок MySQL


Возвращает текст ошибки последней операции с MySQL

  • « mysql_errno
  • mysql_escape_string »
  • PHP Manual
  • MySQL
  • Возвращает текст ошибки последней операции с MySQL

mysql_error

(PHP 4, PHP 5)

mysql_error — Возвращает текст ошибки последней операции с MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_error()
  • PDO::errorInfo()

Описание

string mysql_error ([ resource $link_identifier = NULL ] )

Возвращает текст ошибки выполнения последней функции MySQL. Ошибки работы с MySQL больше не вызывают сообщений в PHP. Вместо этого используйте функцию mysql_error(), для получения сообщения об ошибке. Учтите, что функция возвращает текст ошибки только последней выполненной функции MySQL (исключая mysql_error() и mysql_errno()), поэтому убедитесь, что вы вызываете данную функцию до вызова следующей функции MySQL.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает текст ошибки выполнения последней функции MySQL, или '' (пустую строку), если операция выполнена успешно.

Примеры

Пример #1 Пример использования mysql_error()

<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");

mysql_select_db("nonexistentdb", $link);
echo mysql_errno($link) . ": " . mysql_error($link). "\n";

mysql_select_db("kossu", $link);
mysql_query("SELECT * FROM nonexistenttable", $link);
echo mysql_errno($link) . ": " . mysql_error($link) . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

1049: Unknown database 'nonexistentdb'
1146: Table 'kossu.nonexistenttable' doesn't exist

Смотрите также

  • mysql_errno() - Возвращает численный код ошибки выполнения последней операции с MySQL
  • » Коды ошибок MySQL


Экранирует строку для использования в mysql_query

  • « mysql_error
  • mysql_fetch_array »
  • PHP Manual
  • MySQL
  • Экранирует строку для использования в mysql_query

mysql_escape_string

(PHP 4 >= 4.0.3, PHP 5)

mysql_escape_string — Экранирует строку для использования в mysql_query

Внимание

Данная функция объявлена устаревшей в PHP 4.3.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • mysqli_escape_string()
  • PDO::quote()

Описание

string mysql_escape_string ( string $unescaped_string )

Функция экранирует unescaped_string таким образом, после чего её можно безопасно использовать в mysql_query(). Данная функция устарела.

Функция идентична mysql_real_escape_string(), исключая тот факт, что mysql_real_escape_string() принимает параметром ещё и идентификатор соединения и экранирует строку с учетом текущей кодировки. mysql_escape_string() не делает этого и результат работы не зависит от кодировки, в который вы работаете с БД.

Список параметров

unescaped_string

Экранируемая строка.

Возвращаемые значения

Возвращает экранируемую строку.

Список изменений

Версия | Описание
5.3.0 | Данная функция теперь выдает предупреждение уровня E_DEPRECATED.
4.3.0 | Функция помечена как устаревшая, ее не следует больше использовать. Используйте вместо нее mysql_real_escape_string().

Примеры

Пример #1 Пример использования mysql_escape_string()

<?php
$item = "Zak's Laptop";
$escaped_item = mysql_escape_string($item);
printf("Escaped string: %s\n", $escaped_item);
?>

Результат выполнения данного примера:

Escaped string: Zak\'s Laptop

Примечания

Замечание:

mysql_escape_string() не экранирует символы % и _.

Смотрите также

  • mysql_real_escape_string() - Экранирует специальные символы в строках для использования в выражениях SQL
  • addslashes() - Экранирует строку с помощью слешей
  • Директиву magic_quotes_gpc.


Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба

  • « mysql_escape_string
  • mysql_fetch_assoc »
  • PHP Manual
  • MySQL
  • Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба

mysql_fetch_array

(PHP 4, PHP 5)

mysql_fetch_array — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_array()
  • PDOStatement::fetch()

Описание

array mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )

Возвращает массив, соответствующий обработанному ряду результата запроса и сдвигает внутренний указатель данных вперед.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

result_type

Тип возвращаемого массива. Является константой и может принимать следующие значения: MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH.

Возвращаемые значения

Возвращает массив строк, соответствующих обработанному ряду результата запроса, или FALSE, если рядов больше нет. Тип возвращаемого массива зависит от значения параметра result_type. При использовании MYSQL_BOTH (по умолчанию), вы получите массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернёт только ассоциативные индексы (аналогично функции mysql_fetch_assoc()), а MYSQL_NUM - только численные (аналогично функции mysql_fetch_row()).

Если несколько колонок в результате будут иметь одинаковые названия, то будет возвращена последняя колонка. Чтобы получить доступ к другим колонкам с тем же именем, используйте численные индексы массива или псевдонимы в запросе. В случае псевдонимов используйте именно их - вы не сможете использовать настоящие имена колонок.

Примеры

Пример #1 Запрос с применением псевдонимов для дублирующихся имен колонок

SELECT table1.field AS foo, table2.field AS bar FROM table1, table2

Пример #2 mysql_fetch_array() с MYSQL_NUM

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Ошибка соединения: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    printf("ID: %s  Имя: %s", $row[0], $row[1]);
}

mysql_free_result($result);
?>

Пример #3 mysql_fetch_array() с MYSQL_ASSOC

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Ошибка соединения: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    printf("ID: %s  Имя: %s", $row["id"], $row["name"]);
}

mysql_free_result($result);
?>

Пример #4 mysql_fetch_array() с MYSQL_BOTH

<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Ошибка соединения: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
    printf ("ID: %s  Имя: %s", $row[0], $row["name"]);
}

mysql_free_result($result);
?>

Примечания

Замечание: Производительность

Важно заметить, что mysql_fetch_array() работает незначительно медленнее, чем mysql_fetch_row(), в то же время предоставляя намного более удобный доступ к данным.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_data_seek() - Перемещает внутренний указатель в результате запроса
  • mysql_query() - Посылает запрос MySQL


Возвращает ряд результата запроса в качестве ассоциативного массива

  • « mysql_fetch_array
  • mysql_fetch_field »
  • PHP Manual
  • MySQL
  • Возвращает ряд результата запроса в качестве ассоциативного массива

mysql_fetch_assoc

(PHP 4 >= 4.0.3, PHP 5)

mysql_fetch_assoc — Возвращает ряд результата запроса в качестве ассоциативного массива

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_assoc()
  • PDOStatement::fetch(PDO::FETCH_ASSOC)

Описание

array mysql_fetch_assoc ( resource $result )

Возвращает ассоциативный массив, соответствующий полученному ряду и сдвигает вперед внутренний указатель результата. Функция mysql_fetch_assoc() аналогична вызову функции mysql_fetch_array() со вторым необязательным параметром, равным MYSQL_ASSOC. Функция возвращает только ассоциативный массив.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Возвращает ассоциативный массив строк, соответствующий полученному ряду, либо FALSE если рядов больше нет.

Если два или более столбцов результата имеют одинаковые имена, приоритет будет иметь последний столбец. Для доступа к другому одноименному столбцу (или столбцам), вам необходимо либо обратиться к результату запроса по числовому индексу с помощью mysql_fetch_row() либо добавить псевдонимы к нужным столбцам. Для более подробной информации о псевдонимах смотрите описание примера mysql_fetch_array().

Примеры

Пример #1 Расширенный пример использования mysql_fetch_assoc()

<?php

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!$conn) {
    echo "Unable to connect to DB: " . mysql_error();
    exit;
}

if (!mysql_select_db("mydbname")) {
    echo "Unable to select mydbname: " . mysql_error();
    exit;
}

$sql = "SELECT id as userid, fullname, userstatus
        FROM   sometable
        WHERE  userstatus = 1";

$result = mysql_query($sql);

if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print so am exiting";
    exit;
}

// До тех пор, пока в результате содержатся ряды, помещаем их в ассоциативный массив.
// Замечание: если запрос возвращает только один ряд - нет нужды в цикле.
// Замечание: если вы добавите extract($row); в начало цикла, вы сделаете
//            доступными переменные $userid, $fullname и $userstatus
while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
    echo $row["fullname"];
    echo $row["userstatus"];
}

mysql_free_result($result);

?>

Примечания

Замечание: Производительность

Важно отметить, что mysql_fetch_assoc() лишь незначительно медленнее, чем mysql_fetch_row(), но в то же время предоставляет важную дополнительную информацию.

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_data_seek() - Перемещает внутренний указатель в результате запроса
  • mysql_query() - Посылает запрос MySQL
  • mysql_error() - Возвращает текст ошибки последней операции с MySQL


Возвращает информацию о колонке из результата запроса в виде объекта

  • « mysql_fetch_assoc
  • mysql_fetch_lengths »
  • PHP Manual
  • MySQL
  • Возвращает информацию о колонке из результата запроса в виде объекта

mysql_fetch_field

(PHP 4, PHP 5)

mysql_fetch_field — Возвращает информацию о колонке из результата запроса в виде объекта

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field()
  • PDOStatement::getColumnMeta()

Описание

object mysql_fetch_field ( resource $result [, int $field_offset = 0 ] )

Возвращает объект, содержащий информацию о колонке. Эту функцию можно использовать для получения информации о полях в переданном результате запроса.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. Если смещение не указано, функция возвращает информацию о первой колонке, которая ещё не была обработана этой функцией. Нумерация field_offset начинается с 0.

Возвращаемые значения

Возвращает object, содержащий информацию о колонке. Объект содержит следующие свойства:

  • name - название колонки
  • table - название таблицы, которой принадлежит колонка, или псевдоним таблицы, если он был определен
  • max_length - максимальная длина колонки
  • not_null - 1, если колонка не может быть NULL
  • primary_key - 1, если колонка является первичным индексом
  • unique_key - 1, если колонка является уникальным индексом
  • multiple_key - 1, если колонка является неуникальным индексом
  • numeric - 1, если колонка численная
  • blob - 1, если колонка является BLOB
  • type - тип колонки
  • unsigned - 1, если колонка не содержит знака (unsigned)
  • zerofill - 1, если колонка заполняется нулями (zero-filled)

Примеры

Пример #1 Пример использования mysql_fetch_field()

<?php
$conn = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$conn) {
    die('Ошибка при соединении: ' . mysql_error());
}
mysql_select_db('database');
$result = mysql_query('select * from table');
if (!$result) {
    die('Ошибка в запросе: ' . mysql_error());
}
/* получаем данные о колонке */
$i = 0;
while ($i < mysql_num_fields($result)) {
    echo "Информация о колонке $i:<br />\n";
    $meta = mysql_fetch_field($result, $i);
    if (!$meta) {
        echo "Информация недоступна<br />\n";
    }
    echo "<pre>
blob:         $meta->blob
max_length:   $meta->max_length
multiple_key: $meta->multiple_key
name:         $meta->name
not_null:     $meta->not_null
numeric:      $meta->numeric
primary_key:  $meta->primary_key
table:        $meta->table
type:         $meta->type
unique_key:   $meta->unique_key
unsigned:     $meta->unsigned
zerofill:     $meta->zerofill
</pre>";
    $i++;
}
mysql_free_result($result);
?>

Примечания

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание:

Если поля или таблицы имеют дополнительные имена в запросе SQL, то будет возвращены эти дополнительные имена. Исходное имя может быть получено, например, с помощью mysqli_result::fetch_field().

Смотрите также

  • mysql_field_seek() - Устанавливает внутренний указатель результата на переданное смещение поля


Возвращает длину каждого поля в результате

  • « mysql_fetch_field
  • mysql_fetch_object »
  • PHP Manual
  • MySQL
  • Возвращает длину каждого поля в результате

mysql_fetch_lengths

(PHP 4, PHP 5)

mysql_fetch_lengths — Возвращает длину каждого поля в результате

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_lengths()
  • PDOStatement::getColumnMeta()

Описание

array mysql_fetch_lengths ( resource $result )

Возвращает массив длин для каждого поля, содержащегося в последнем ряду результата, полученном из MySQL.

mysql_fetch_lengths() возвращает длины каждого поля,
содержащегося в последнем ряду, обработанном функциями
mysql_fetch_row(),
mysql_fetch_assoc(),
mysql_fetch_array() и
mysql_fetch_object() в массиве, начинающемся с 0.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Массив (array) длин в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_fetch_lengths()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Ошибка выполнения запроса: ' . mysql_error();
    exit;
}
$row     = mysql_fetch_assoc($result);
$lengths = mysql_fetch_lengths($result);

print_r($row);
print_r($lengths);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [id] => 42
    [email] => user@example.com
)
Array
(
    [0] => 2
    [1] => 16
)

Смотрите также

  • mysql_field_len() - Возвращает длину указанного поля
  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • strlen() - Возвращает длину строки


Обрабатывает ряд результата запроса и возвращает объект

  • « mysql_fetch_lengths
  • mysql_fetch_row »
  • PHP Manual
  • MySQL
  • Обрабатывает ряд результата запроса и возвращает объект

mysql_fetch_object

(PHP 4, PHP 5)

mysql_fetch_object — Обрабатывает ряд результата запроса и возвращает объект

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_object()
  • PDOStatement::fetch(PDO::FETCH_OBJ)

Описание

object mysql_fetch_object ( resource $result [, string $class_name [, array $params ]] )

Возвращает объект со свойствами, соответствующими колонкам в обработанном ряду и сдвигает внутренний указатель результата вперед.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

class_name

Имя класса. Будет создан экземпляр указанного класса, заполнен свойствами и возвращен. Если не указан, возвращается экземпляр stdClass.

params

Необязательный массив (array) параметров, передаваемых в конструктор создаваемого экземпляра class_name.

Возвращаемые значения

Возвращает объект (object) со строковыми свойствами, соответствующими полученному ряду, или FALSE, если рядов больше нет.

Примеры

Пример #1 Пример использования mysql_fetch_object()

<?php
mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");
$result = mysql_query("select * from mytable");
while ($row = mysql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}
mysql_free_result($result);
?>

Пример #2 Пример использования mysql_fetch_object()

<?php
class foo {
    public $name;
}

mysql_connect("hostname", "user", "password");
mysql_select_db("mydb");

$result = mysql_query("select name from mytable limit 1");
$obj = mysql_fetch_object($result, 'foo');
var_dump($obj);
?>

Примечания

Замечание: Производительность

В плане скорости эта функция аналогична mysql_fetch_array() и почти также быстра, как mysql_fetch_row() (разница незначительна).

Замечание:

mysql_fetch_object() работает аналогично mysql_fetch_array(), с единственным отличием - функция возвращает объект вместо массива. Это, кроме всего прочего, означает, что вы сможете работать с полями только по имени колонок, а не индексов (числа не могут быть свойствами объекта).

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_data_seek() - Перемещает внутренний указатель в результате запроса
  • mysql_query() - Посылает запрос MySQL


Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами

  • « mysql_fetch_object
  • mysql_field_flags »
  • PHP Manual
  • MySQL
  • Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами

mysql_fetch_row

(PHP 4, PHP 5)

mysql_fetch_row — Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_row()
  • PDOStatement::fetch(PDO::FETCH_NUM)

Описание

array mysql_fetch_row ( resource $result )

Возвращает массив с числовыми индексами, содержащий данные обработанного ряда, и сдвигает внутренний указатель результата вперед.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Возвращает массив строк с числовыми индексами, содержащий данные обработанного ряда, или FALSE, если рядов не осталось.

mysql_fetch_row() обрабатывает один ряд результата, на который ссылается переданный указатель. Ряд возвращается в виде массива. Каждая колонка располагается в следующей ячейке массива, начиная с нулевого индекса

Примеры

Пример #1 Получение одного ряда с помощью mysql_fetch_row()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Ошибка запроса: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);

echo $row[0]; // 42
echo $row[1]; // email
?>

Примечания

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Смотрите также

  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект
  • mysql_data_seek() - Перемещает внутренний указатель в результате запроса
  • mysql_fetch_lengths() - Возвращает длину каждого поля в результате
  • mysql_result() - Возвращает данные результата запроса


Возвращает флаги, связанные с указанным полем результата запроса

  • « mysql_fetch_row
  • mysql_field_len »
  • PHP Manual
  • MySQL
  • Возвращает флаги, связанные с указанным полем результата запроса

mysql_field_flags

(PHP 4, PHP 5)

mysql_field_flags — Возвращает флаги, связанные с указанным полем результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [flags]
  • PDOStatement::getColumnMeta() [flags]

Описание

string mysql_field_flags ( resource $result , int $field_offset )

mysql_field_flags() возвращает флаги, связанные с указанным полем. Каждый флаг возвращается как отдельное слово, отделённое от предыдущего пробелом. Полученное значение можно разбить в массив, используя функцию explode().

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает строку с флагами, связанными с результатом или FALSE в случае возникновения ошибки.

Возвращаются следующие флаги, если ваша версия MySQL их уже поддерживает: "not_null", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment" и "timestamp".

Примеры

Пример #1 Пример использования mysql_field_flags()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Ошибка в запросе: ' . mysql_error();
    exit;
}
$flags = mysql_field_flags($result, 0);

echo $flags;
print_r(explode(' ', $flags));
?>

Результатом выполнения данного примера будет что-то подобное:

not_null primary_key auto_increment
Array
(
    [0] => not_null
    [1] => primary_key
    [2] => auto_increment
)

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_fieldflags()

Смотрите также

  • mysql_field_type() - Возвращает тип указанного поля из результата запроса
  • mysql_field_len() - Возвращает длину указанного поля


Возвращает длину указанного поля

  • « mysql_field_flags
  • mysql_field_name »
  • PHP Manual
  • MySQL
  • Возвращает длину указанного поля

mysql_field_len

(PHP 4, PHP 5)

mysql_field_len — Возвращает длину указанного поля

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [length]
  • PDOStatement::getColumnMeta() [len]

Описание

int mysql_field_len ( resource $result , int $field_offset )

mysql_field_len() возвращает длину указанного поля.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Длина указанного поля в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_field_len()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Не удалось выполнить запрос: ' . mysql_error();
    exit;
}

// Получит длину поля id так, как указано в структуре базы данных
$length = mysql_field_len($result, 0);
echo $length;
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_fieldlen()

Смотрите также

  • mysql_fetch_lengths() - Возвращает длину каждого поля в результате
  • strlen() - Возвращает длину строки


Возвращает название указанной колонки результата запроса

  • « mysql_field_len
  • mysql_field_seek »
  • PHP Manual
  • MySQL
  • Возвращает название указанной колонки результата запроса

mysql_field_name

(PHP 4, PHP 5)

mysql_field_name — Возвращает название указанной колонки результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [name] или [orgname]
  • PDOStatement::getColumnMeta() [name]

Описание

string mysql_field_name ( resource $result , int $field_offset )

mysql_field_name() возвращает название колонки с указанным индексом.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Название поля по указанному индексу в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_field_name()

<?php
/* Таблица пользователей состоит из трёх колонок:
 *   user_id
 *   username
 *   password.
 */
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения с MySQL: ' . mysql_error());
}
$dbname = 'mydb';
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
    die("Не удалось выбрать базу $dbname: " . mysql_error());
}
$res = mysql_query('select * from users', $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
?>

Результат выполнения данного примера:

user_id
password

Примечания

Замечание: Имена полей, возвращаемые этой функцией являются регистро-зависимыми.

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_fieldname()

Смотрите также

  • mysql_field_type() - Возвращает тип указанного поля из результата запроса
  • mysql_field_len() - Возвращает длину указанного поля


Устанавливает внутренний указатель результата на переданное смещение поля

  • « mysql_field_name
  • mysql_field_table »
  • PHP Manual
  • MySQL
  • Устанавливает внутренний указатель результата на переданное смещение поля

mysql_field_seek

(PHP 4, PHP 5)

mysql_field_seek — Устанавливает внутренний указатель результата на переданное смещение поля

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_field_seek()
  • PDOStatement::fetch() с использованием параметров cursor_orientation и offset

Описание

bool mysql_field_seek ( resource $result , int $field_offset )

Перемещает указатель к полю с указанным смещением. Если следующий вызов функции mysql_fetch_field() не содержит смещения, то будет возвращено смещение, содержащееся в mysql_field_seek().

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mysql_fetch_field() - Возвращает информацию о колонке из результата запроса в виде объекта


Возвращает название таблицы, которой принадлежит указанное поле

  • « mysql_field_seek
  • mysql_field_type »
  • PHP Manual
  • MySQL
  • Возвращает название таблицы, которой принадлежит указанное поле

mysql_field_table

(PHP 4, PHP 5)

mysql_field_table — Возвращает название таблицы, которой принадлежит указанное поле

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [table] или [orgtable]
  • PDOStatement::getColumnMeta() [table]

Описание

string mysql_field_table ( resource $result , int $field_offset )

Возвращает название таблицы, которой принадлежит указанное поле.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Имя таблицы в случае успеха.

Примеры

Пример #1 Пример использования mysql_field_table()

<?php

$query = "SELECT account.*, country.* FROM account, country WHERE country.name = 'Portugal' AND account.country_id = country.id";

// получаем результат из базы данных
$result = mysql_query($query);

// выводит имя таблицы и имя поля
for ($i = 0; $i < mysql_num_fields($result); ++$i) {
    $table = mysql_field_table($result, $i);
    $field = mysql_field_name($result, $i);

    echo  "$table: $field\n";
}

?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_fieldtable()

Смотрите также

  • mysql_list_tables() - Возвращает список таблиц базы данных MySQL


Возвращает тип указанного поля из результата запроса

  • « mysql_field_table
  • mysql_free_result »
  • PHP Manual
  • MySQL
  • Возвращает тип указанного поля из результата запроса

mysql_field_type

(PHP 4, PHP 5)

mysql_field_type — Возвращает тип указанного поля из результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_fetch_field_direct() [type]
  • PDOStatement::getColumnMeta() [driver:decl_type] или [pdo_type]

Описание

string mysql_field_type ( resource $result , int $field_offset )

Функция mysql_field_type() аналогична функции mysql_field_name(). Аргументы одинаковы, но вместо имени колонки возвращается её тип.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

field_offset

Числовое смещение поля. field_offset начинается с 0. Если field_offset не существует, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Поля могут быть следующих типов: "int", "real", "string", "blob" и других, подробно описанных » документации MySQL.

Примеры

Пример #1 Пример использования mysql_field_type()

<?php
mysql_connect("localhost", "mysql_username", "mysql_password");
mysql_select_db("mysql");
$result = mysql_query("SELECT * FROM func");
$fields = mysql_num_fields($result);
$rows   = mysql_num_rows($result);
$table  = mysql_field_table($result, 0);
echo "Ваша таблица '" . $table . "' содержит " . $fields . " поля и " . $rows . " запись\n";
echo "В таблице есть следующие поля:\n";
for ($i=0; $i < $fields; $i++) {
    $type  = mysql_field_type($result, $i);
    $name  = mysql_field_name($result, $i);
    $len   = mysql_field_len($result, $i);
    $flags = mysql_field_flags($result, $i);
    echo $type . " " . $name . " " . $len . " " . $flags . "\n";
}
mysql_free_result($result);
mysql_close();
?>

Результатом выполнения данного примера будет что-то подобное:

Ваша таблица 'func' содержит 4 поля и 1 запись
В таблице есть следующие поля:
string name 64 not_null primary_key binary
int ret 1 not_null
string dl 128 not_null
string type 9 not_null enum

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_fieldtype()

Смотрите также

  • mysql_field_name() - Возвращает название указанной колонки результата запроса
  • mysql_field_len() - Возвращает длину указанного поля


Освобождает память от результата запроса

  • « mysql_field_type
  • mysql_get_client_info »
  • PHP Manual
  • MySQL
  • Освобождает память от результата запроса

mysql_free_result

(PHP 4, PHP 5)

mysql_free_result — Освобождает память от результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_free_result()
  • Присвоение значения NULL переменной PDO объекта, или PDOStatement::closeCursor()

Описание

bool mysql_free_result ( resource $result )

mysql_free_result() высвободит всю память, занимаемую результатом, на который ссылается переданный дескриптор result.

mysql_free_result() нуждается в вызове только в том случае, если вы всерьёз обеспокоены тем, сколько памяти используют ваши запросы к БД, возвращающие большое количество данных. Вся память, используемая для хранения этих данных автоматически очистится в конце работы скрипта.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Если в качестве параметра result передан не ресурс, то будет вызвана ошибка уровня E_WARNING. Стоит также заметить, что mysql_query() возвращает resource только для запросов SELECT, SHOW, EXPLAIN и DESCRIBE.

Примеры

Пример #1 Пример использования mysql_free_result()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Не удалось выполнить запрос: ' . mysql_error();
    exit;
}
/* Используем результат, подразумевая, что после этого он нам больше не нужен */
$row = mysql_fetch_assoc($result);

/* Теперь освобождаем результат и продолжаем дальнейшую работу над нашим скриптом */
mysql_free_result($result);

echo $row['id'];
echo $row['email'];
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_freeresult()

Смотрите также

  • mysql_query() - Посылает запрос MySQL
  • is_resource() - Проверяет, является ли переменная ресурсом


Возвращает данные о MySQL-клиенте

  • « mysql_free_result
  • mysql_get_host_info »
  • PHP Manual
  • MySQL
  • Возвращает данные о MySQL-клиенте

mysql_get_client_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_client_info — Возвращает данные о MySQL-клиенте

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_get_client_info()
  • PDO::getAttribute(PDO::ATTR_CLIENT_VERSION)

Описание

string mysql_get_client_info ( void )

mysql_get_client_info() возвращает строку, содержащую версию клиентской библиотеки.

Возвращаемые значения

Версия клиентской библиотеки MySQL.

Примеры

Пример #1 Пример использования mysql_get_client_info()

<?php
printf("Версия клиентской библиотеки MySQL: %s\n", mysql_get_client_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Версия клиентской библиотеки MySQL: 3.23.39

Смотрите также

  • mysql_get_host_info() - Возвращает информацию о соединении с MySQL
  • mysql_get_proto_info() - Возвращает информацию о протоколе MySQL
  • mysql_get_server_info() - Возвращает информацию о сервере MySQL


Возвращает информацию о соединении с MySQL

  • « mysql_get_client_info
  • mysql_get_proto_info »
  • PHP Manual
  • MySQL
  • Возвращает информацию о соединении с MySQL

mysql_get_host_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_host_info — Возвращает информацию о соединении с MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_get_host_info()
  • PDO::getAttribute(PDO::ATTR_CONNECTION_STATUS)

Описание

string mysql_get_host_info ([ resource $link_identifier = NULL ] )

Описывает тип используемого соединения, указанного переданным дескриптором соединения, включая имя хоста.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает строку, описывающую тип используемого соединения, указанного переданным дескриптором соединения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_get_host_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
printf("Тип соединения с MySQL: %s\n", mysql_get_host_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Тип соединения с MySQL: Localhost via UNIX socket

Смотрите также

  • mysql_get_client_info() - Возвращает данные о MySQL-клиенте
  • mysql_get_proto_info() - Возвращает информацию о протоколе MySQL
  • mysql_get_server_info() - Возвращает информацию о сервере MySQL


Возвращает информацию о протоколе MySQL

  • « mysql_get_host_info
  • mysql_get_server_info »
  • PHP Manual
  • MySQL
  • Возвращает информацию о протоколе MySQL

mysql_get_proto_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_proto_info — Возвращает информацию о протоколе MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_get_proto_info()

Описание

int mysql_get_proto_info ([ resource $link_identifier = NULL ] )

Возвращает информацию о протоколе MySQL.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает используемый протокол MySQL в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_get_proto_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
printf("Версия протокола MySQL: %s\n", mysql_get_proto_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Версия протокола MySQL: 10

Смотрите также

  • mysql_get_client_info() - Возвращает данные о MySQL-клиенте
  • mysql_get_host_info() - Возвращает информацию о соединении с MySQL
  • mysql_get_server_info() - Возвращает информацию о сервере MySQL


Возвращает информацию о сервере MySQL

  • « mysql_get_proto_info
  • mysql_info »
  • PHP Manual
  • MySQL
  • Возвращает информацию о сервере MySQL

mysql_get_server_info

(PHP 4 >= 4.0.5, PHP 5)

mysql_get_server_info — Возвращает информацию о сервере MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_get_server_info()
  • PDO::getAttribute(PDO::ATTR_SERVER_VERSION)

Описание

string mysql_get_server_info ([ resource $link_identifier = NULL ] )

Возвращает версию сервера MySQL.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает версию сервера MySQL в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_get_server_info()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
printf("Версия сервера MySQL: %s\n", mysql_get_server_info());
?>

Результатом выполнения данного примера будет что-то подобное:

Версия сервера MySQL: 4.0.1-alpha

Смотрите также

  • mysql_get_client_info() - Возвращает данные о MySQL-клиенте
  • mysql_get_host_info() - Возвращает информацию о соединении с MySQL
  • mysql_get_proto_info() - Возвращает информацию о протоколе MySQL
  • phpversion() - Выдает текущую версию PHP


Возвращает информацию о последнем запросе

  • « mysql_get_server_info
  • mysql_insert_id »
  • PHP Manual
  • MySQL
  • Возвращает информацию о последнем запросе

mysql_info

(PHP 4 >= 4.3.0, PHP 5)

mysql_info — Возвращает информацию о последнем запросе

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_info()

Описание

string mysql_info ([ resource $link_identifier = NULL ] )

Возвращает подробную информацию о последнем запросе.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает информацию о запросе в случае успеха, или FALSE в случае ошибки. Смотрите пример ниже для каких запросов возвращается информация и как выглядят возвращаемые значения. Для не перечисленных запросов будет возвращено значение FALSE.

Примеры

Пример #1 Корректные виды запросов MySQL

Числа расставлены только для примера -- их значения зависят от результата запроса.

INSERT INTO ... SELECT ...
String format: Records: 23 Duplicates: 0 Warnings: 0
INSERT INTO ... VALUES (...),(...),(...)...
String format: Records: 37 Duplicates: 0 Warnings: 0
LOAD DATA INFILE ...
String format: Records: 42 Deleted: 0 Skipped: 0 Warnings: 0
ALTER TABLE
String format: Records: 60 Duplicates: 0 Warnings: 0
UPDATE
String format: Rows matched: 65 Changed: 65 Warnings: 0

Примечания

Замечание:

mysql_info() возвращает значение не равное FALSE для INSERT ... VALUES только в том случае, если в запросе присутствует несколько списков значений.

Смотрите также

  • mysql_affected_rows() - Возвращает число затронутых прошлой операцией рядов
  • mysql_insert_id() - Возвращает идентификатор, сгенерированный при последнем INSERT-запросе
  • mysql_stat() - Возвращает текущий статус сервера


Возвращает идентификатор, сгенерированный при последнем INSERT-запросе

  • « mysql_info
  • mysql_list_dbs »
  • PHP Manual
  • MySQL
  • Возвращает идентификатор, сгенерированный при последнем INSERT-запросе

mysql_insert_id

(PHP 4, PHP 5)

mysql_insert_id — Возвращает идентификатор, сгенерированный при последнем INSERT-запросе

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_insert_id()
  • PDO::lastInsertId()

Описание

int mysql_insert_id ([ resource $link_identifier = NULL ] )

Возвращает идентификатор, сгенерированный колонкой с AUTO_INCREMENT последним запросом (обычно INSERT).

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Идентификатор, сгенерированный колонкой с AUTO_INCREMENT последним запросом в случае успеха , 0, если последний запрос не генерирует значение AUTO_INCREMENT value, и FALSE, если соединение MySQL не было установлено.

Примеры

Пример #1 Пример использования mysql_insert_id()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
mysql_select_db('mydb');

mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Идентификатор последней вставленной записи %d\n", mysql_insert_id());
?>

Примечания

Предостережение

mysql_insert_id() конвертирует возвращаемый функцией MySQL C API тип значения функции mysql_insert_id() в тип long (называемый int в PHP). Если ваша колонка AUTO_INCREMENT имеет тип BIGINT (64 бита), то значение, возвращаемое функцией в результате преобразования может быть искажено. Используйте вместо данной функции внутреннюю MySQL-функцию LAST_INSERT_ID() в SQL-запросе. Подробнее о максимальных значениях целых чисел смотрите в разделе документации, посвященном целым числам.

Замечание:

Так как mysql_insert_id() работает с последним выполненным запросом, вызывайте mysql_insert_id() сразу же после запроса, генерирующего новое значение.

Замечание:

Значение в SQL функции MySQL LAST_INSERT_ID() всегда содержит последний сгенерированный ID и не обнуляется между запросами.

Смотрите также

  • mysql_query() - Посылает запрос MySQL
  • mysql_info() - Возвращает информацию о последнем запросе


Возвращает список баз данных, доступных на сервере

  • « mysql_insert_id
  • mysql_list_fields »
  • PHP Manual
  • MySQL
  • Возвращает список баз данных, доступных на сервере

mysql_list_dbs

(PHP 4, PHP 5)

mysql_list_dbs — Возвращает список баз данных, доступных на сервере

Внимание

Данная функция объявлена устаревшей в PHP 5.4.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • SQL запрос: SHOW DATABASES

Описание

resource mysql_list_dbs ([ resource $link_identifier = NULL ] )

Возвращает указатель на результат, содержащий список баз данных, доступных на указанном сервере.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает resource результата в случае успеха, или FALSE в случае ошибки. Используйте функцию mysql_tablename(), чтобы получить данные из результата, или любую другую функцию, работающую с результатами запросов, например mysql_fetch_array().

Примеры

Пример #1 Пример использования mysql_list_dbs()

<?php
// Без использования mysql_list_dbs()
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$res = mysql_query("SHOW DATABASES");

while ($row = mysql_fetch_assoc($res)) {
    echo $row['Database'] . "\n";
}

// Устарело, начиная с PHP 5.4.0
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$db_list = mysql_list_dbs($link);

while ($row = mysql_fetch_object($db_list)) {
     echo $row->Database . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

database1
database2
database3

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_listdbs()

Смотрите также

  • mysql_db_name() - Возвращает название базы данных из вызова к mysql_list_dbs
  • mysql_select_db() - Выбирает базу данных MySQL


Возвращает список колонок таблицы

  • « mysql_list_dbs
  • mysql_list_processes »
  • PHP Manual
  • MySQL
  • Возвращает список колонок таблицы

mysql_list_fields

(PHP 4, PHP 5)

mysql_list_fields — Возвращает список колонок таблицы

Внимание

Данная функция объявлена устаревшей в PHP 5.4.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • SQL запрос: SHOW COLUMNS FROM sometable

Описание

resource mysql_list_fields ( string $database_name , string $table_name [, resource $link_identifier = NULL ] )

Возвращает информацию о таблице с переданным именем.

Эта функция устарела. Вместо нее рекомендуется использовать mysql_query() с SQL-запросом SHOW COLUMNS FROM table [LIKE 'name'].

Список параметров

database_name

Имя опрашиваемой базы данных.

table_name

Имя опрашиваемой таблицы.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Дескриптор результата (resource) в случае успеха, или FALSE в случае ошибки.

Возвращаемый результат может быть обработан с помощью следующих
функций: mysql_field_flags(),
mysql_field_len(),
mysql_field_name() и
mysql_field_type().

Примеры

Пример #1 Пример использования mysql_list_fields()

<?php
$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
    echo 'Ошибка при выполнении запроса: ' . mysql_error();
    exit;
}
if (mysql_num_rows($result) > 0) {
    while ($row = mysql_fetch_assoc($result)) {
        print_r($row);
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [Field] => id
    [Type] => int(7)
    [Null] =>
    [Key] => PRI
    [Default] =>
    [Extra] => auto_increment
)
Array
(
    [Field] => email
    [Type] => varchar(100)
    [Null] =>
    [Key] =>
    [Default] =>
    [Extra] =>
)

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_listfields()

Смотрите также

  • mysql_field_flags() - Возвращает флаги, связанные с указанным полем результата запроса
  • mysql_info() - Возвращает информацию о последнем запросе


Возвращает список процессов MySQL

  • « mysql_list_fields
  • mysql_list_tables »
  • PHP Manual
  • MySQL
  • Возвращает список процессов MySQL

mysql_list_processes

(PHP 4 >= 4.3.0, PHP 5)

mysql_list_processes — Возвращает список процессов MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_thread_id()

Описание

resource mysql_list_processes ([ resource $link_identifier = NULL ] )

Возвращает список текущих процессов на сервере MySQL.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Дескриптор результата (resource) в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_list_processes()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$result = mysql_list_processes($link);
while ($row = mysql_fetch_assoc($result)){
    printf("%s %s %s %s %s\n", $row["Id"], $row["Host"], $row["db"],
        $row["Command"], $row["Time"]);
}
mysql_free_result($result);
?>

Результатом выполнения данного примера будет что-то подобное:

1 localhost test Processlist 0
4 localhost mysql sleep 5

Смотрите также

  • mysql_thread_id() - Возвращает идентификатор текущего потока
  • mysql_stat() - Возвращает текущий статус сервера


Возвращает список таблиц базы данных MySQL

  • « mysql_list_processes
  • mysql_num_fields »
  • PHP Manual
  • MySQL
  • Возвращает список таблиц базы данных MySQL

mysql_list_tables

(PHP 4, PHP 5)

mysql_list_tables — Возвращает список таблиц базы данных MySQL

Внимание

Данная функция объявлена устаревшей в PHP 4.3.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • SQL запрос: SHOW TABLES FROM dbname

Описание

resource mysql_list_tables ( string $database [, resource $link_identifier = NULL ] )

Возвращает список имен таблиц базы данных MySQL.

Данная функция устарела. Вместо нее рекомендуется использовать mysql_query() с запросом SHOW TABLES [FROM db_name] [LIKE 'pattern'].

Список параметров

database

Имя базы данных

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Дескриптор результата (resource) в случае успеха или FALSE в случае возникновения ошибки.

Используйте функцию mysql_tablename() для работы с результатом запроса, либо любую другую функцию, способную это делать, например, mysql_fetch_array().

Список изменений

Версия | Описание
4.3.7 | Функция помечена устаревшей.

Примеры

Пример #1 Пример использования mysql_list_tables()

<?php
$dbname = 'mysql_dbname';

if (!mysql_connect('mysql_host', 'mysql_user', 'mysql_password')) {
    echo 'Ошибка подключения к mysql';
    exit;
}

$sql = "SHOW TABLES FROM $dbname";
$result = mysql_query($sql);

if (!$result) {
    echo "Ошибка базы, не удалось получить список таблиц\n";
    echo 'Ошибка MySQL: ' . mysql_error();
    exit;
}

while ($row = mysql_fetch_row($result)) {
    echo "Таблица: {$row[0]}\n";
}

mysql_free_result($result);
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_listtables()

Смотрите также

  • mysql_list_dbs() - Возвращает список баз данных, доступных на сервере
  • mysql_tablename() - Возвращает имя таблицы, содержащей указанное поле


Возвращает количество полей результата запроса

  • « mysql_list_tables
  • mysql_num_rows »
  • PHP Manual
  • MySQL
  • Возвращает количество полей результата запроса

mysql_num_fields

(PHP 4, PHP 5)

mysql_num_fields — Возвращает количество полей результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_num_fields()
  • PDOStatement::columnCount()

Описание

int mysql_num_fields ( resource $result )

Возвращает количество полей в результате запроса.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Возвращает количество полей в результате запроса (resource) в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_num_fields()

<?php
$result = mysql_query("SELECT id,email FROM people WHERE id = '42'");
if (!$result) {
    echo 'Не удалось выполнить запрос: ' . mysql_error();
    exit;
}

/* возвращает 2, так как id,email === двум полям */
echo mysql_num_fields($result);
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_numfields()

Смотрите также

  • mysql_select_db() - Выбирает базу данных MySQL
  • mysql_query() - Посылает запрос MySQL
  • mysql_fetch_field() - Возвращает информацию о колонке из результата запроса в виде объекта
  • mysql_num_rows() - Возвращает количество рядов результата запроса


Возвращает количество рядов результата запроса

  • « mysql_num_fields
  • mysql_pconnect »
  • PHP Manual
  • MySQL
  • Возвращает количество рядов результата запроса

mysql_num_rows

(PHP 4, PHP 5)

mysql_num_rows — Возвращает количество рядов результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_num_rows()
  • mysqli_stmt_num_rows()
  • PDOStatement::rowCount()

Описание

int mysql_num_rows ( resource $result )

Возвращает количество рядов результата запроса. Эта команда работает только с запросами SELECT или SHOW, возвращающих актуальный результат запроса. Чтобы получить количество рядов, обработанных функциями INSERT, UPDATE, REPLACE и DELETE, используйте функцию mysql_affected_rows().

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

Возвращаемые значения

Количество рядов в результате запроса в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_num_rows()

<?php

$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "Получено $num_rows рядов\n";

?>

Примечания

Замечание:

При использовании mysql_unbuffered_query() функция mysql_num_rows() не вернёт корректного значения до тех пор, пока все ряды не будут получены.

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_numrows()

Смотрите также

  • mysql_affected_rows() - Возвращает число затронутых прошлой операцией рядов
  • mysql_connect() - Открывает соединение с сервером MySQL
  • mysql_data_seek() - Перемещает внутренний указатель в результате запроса
  • mysql_select_db() - Выбирает базу данных MySQL
  • mysql_query() - Посылает запрос MySQL


Устанавливает постоянное соединение с сервером MySQL

  • « mysql_num_rows
  • mysql_ping »
  • PHP Manual
  • MySQL
  • Устанавливает постоянное соединение с сервером MySQL

mysql_pconnect

(PHP 4, PHP 5)

mysql_pconnect — Устанавливает постоянное соединение с сервером MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_connect() с p: префиксом хоста
  • PDO::__construct() с опцией драйвера PDO::ATTR_PERSISTENT

Описание

resource 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 ]]]] )

Устанавливает постоянное соединение с сервером MySQL.

mysql_pconnect() работает аналогично mysql_connect() с двумя важными отличиями.

Во-первых, при соединении функция пытается найти уже открытый (постоянный) указатель на тот же сервер с тем же пользователем и паролем. Если он найден, возвращён функцией будет именно он, вместо открытия нового соединения.

Во-вторых, соединение с SQL-сервером не будет закрыто, когда работа скрипта закончится. Вместо этого, оно останется рабочим для будущего использования (mysql_close() также не закрывает постоянные соединения, открытые mysql_pconnect()).

Соединения такого типа называют 'постоянными'.

Список параметров

server

Сервер MySQL. Может также включать номер порта, например, "hostname:port" или путь к локальному сокету, например, ":/path/to/socket" для локального хоста.

Если директива mysql.default_host не определена (по умолчанию), то по умолчанию используется значение 'localhost:3306'

username

Имя пользователя. По умолчанию используется имя пользователя, владеющего серверным процессом.

password

Пароль. По умолчанию используется пустая строка.

client_flags

Параметр client_flags может быть комбинацией следующих констант: 128 (включает обработку LOAD DATA LOCAL), MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE и MYSQL_CLIENT_INTERACTIVE.

Возвращаемые значения

Возвращает дескриптор постоянного соединения MySQL в случае успеха, и FALSE в случае ошибки.

Список изменений

Версия | Описание
5.5.0 | Эта функция теперь вызывает ошибку E_DEPRECATED.

Примечания

Замечание:

Учтите, что соединения такого типа работают только, если PHP установлен как модуль. За дополнительной информацией обращайтесь к разделу "Постоянные соединения с базами данных".

Внимание

Использование постоянных соединений может потребовать некоторой настройки Apache и MySQL. Убедитесь, что вы не превысите максимальное число дозволенных соединений в MySQL.

Замечание:

Можно подавить сообщение об ошибке при неудачном соединении поставив перед вызовом функции оператор @.

Смотрите также

  • mysql_connect() - Открывает соединение с сервером MySQL
  • "Постоянные соединения с базами данных"


Проверяет соединение с сервером и пересоединяется при необходимости

  • « mysql_pconnect
  • mysql_query »
  • PHP Manual
  • MySQL
  • Проверяет соединение с сервером и пересоединяется при необходимости

mysql_ping

(PHP 4 >= 4.3.0, PHP 5)

mysql_ping — Проверяет соединение с сервером и пересоединяется при необходимости

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_ping()

Описание

bool mysql_ping ([ resource $link_identifier = NULL ] )

Проверяет работает ли соединение с сервером. Если оно утеряно, автоматически предпринимается попытка пересоединения. Эта функция может быть использована в скриптах, работающих на протяжении долгого времени.

Замечание:

Автоматическое восстановление соединения по умолчанию отключено в версиях MySQL >= 5.0.3.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE, если соединение в рабочем состоянии и FALSE в противном случае.

Примеры

Пример #1 Пример использования mysql_ping()

<?php
set_time_limit(0);

$conn = mysql_connect('localhost', 'mysqluser', 'mypass');
$db   = mysql_select_db('mydb');

/* Подразумевается что этот запрос будет выполняться достаточно долго */
$result = mysql_query($sql);
if (!$result) {
    echo 'Запрос #1 не удался, выходим.';
    exit;
}

/* Проверяем что соединение еще работает, если нет, соединяемся заново */
if (!mysql_ping($conn)) {
    echo 'Соединение потеряно, выходим после запроса #1';
    exit;
}
mysql_free_result($result);

/* Соединение еще работает, выполняем еще один запрос */
$result2 = mysql_query($sql2);
?>

Смотрите также

  • mysql_thread_id() - Возвращает идентификатор текущего потока
  • mysql_list_processes() - Возвращает список процессов MySQL


Посылает запрос MySQL

  • « mysql_ping
  • mysql_real_escape_string »
  • PHP Manual
  • MySQL
  • Посылает запрос MySQL

mysql_query

(PHP 4, PHP 5)

mysql_query — Посылает запрос MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_query()
  • PDO::query()

Описание

mixed mysql_query ( string $query [, resource $link_identifier = NULL ] )

mysql_query() посылает один запрос (посылка нескольких запросов не поддерживается) активной базе данных сервера, на который ссылается переданный дескриптор link_identifier.

Список параметров

query

SQL-запрос

Запрос не должен заканчиваться точкой с запятой. Данные в запросе должны быть корректно проэкранированы.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Для запросов SELECT, SHOW, DESCRIBE, EXPLAIN и других запросов, возвращающих результат из нескольких рядов, mysql_query() возвращает дескриптор результата запроса (resource), или FALSE в случае ошибки.

Для других типов SQL-запросов, INSERT, UPDATE, DELETE, DROP и других, mysql_query() возвращает TRUE в случае успеха и FALSE в случае ошибки.

Полученный дескриптор результата нужно передать в функцию mysql_fetch_assoc() или любую другую функцию, работающую с результатами запросов.

Используйте mysql_num_rows() для выяснения количества рядов в результате SELECT-запроса или mysql_affected_rows() для выяснения количества обработанных рядов запросами DELETE, INSERT, REPLACE и UPDATE.

mysql_query() также завершится с ошибкой и вернет FALSE, если у пользователя нет доступа к какой-либо из таблиц, фигурирующих в запросе.

Примеры

Пример #1 Неверный запрос

Следующий запрос составлен неправильно и mysql_query() вернёт FALSE.

<?php
$result = mysql_query('SELECT * WHERE 1 = 1');
if (!$result) {
    die('Неверный запрос: ' . mysql_error());
}

?>

Пример #2 Верный запрос

Следующий запрос верен, поэтому mysql_query() вернет resource.

<?php
// Эти данные, к примеру, могли быть получены от пользователя
$firstname = 'fred';
$lastname  = 'fox';

// Формируем запрос
// Это лучший способ выполнить SQL-запрос
// Еще примеры можно найти в документации mysql_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends
    WHERE firstname='%s' AND lastname='%s'",
    mysql_real_escape_string($firstname),
    mysql_real_escape_string($lastname));

// Выполняем запрос
$result = mysql_query($query);

// Проверяем результат
// Это показывает реальный запрос, посланный к MySQL, а также ошибку. Удобно при отладке.
if (!$result) {
    $message  = 'Неверный запрос: ' . mysql_error() . "\n";
    $message .= 'Запрос целиком: ' . $query;
    die($message);
}

// Используем результат
// Попытка напечатать $result не выведет информацию, которая в нем хранится
// Необходимо использовать какую-либо mysql-функцию, работающую с результатом запроса
// См. также mysql_result(), mysql_fetch_array(), mysql_fetch_row() и т.п.
while ($row = mysql_fetch_assoc($result)) {
    echo $row['firstname'];
    echo $row['lastname'];
    echo $row['address'];
    echo $row['age'];
}

// Освобождаем ресурсы, ассоциированные с результатом
// Это делается автоматически в конце скрипта
mysql_free_result($result);
?>

Смотрите также

  • mysql_connect() - Открывает соединение с сервером MySQL
  • mysql_error() - Возвращает текст ошибки последней операции с MySQL
  • mysql_real_escape_string() - Экранирует специальные символы в строках для использования в выражениях SQL
  • mysql_result() - Возвращает данные результата запроса
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_unbuffered_query() - Посылает запрос MySQL без авто-обработки результата и его буферизации


Экранирует специальные символы в строках для использования в выражениях SQL

  • « mysql_query
  • mysql_result »
  • PHP Manual
  • MySQL
  • Экранирует специальные символы в строках для использования в выражениях SQL

mysql_real_escape_string

(PHP 4 >= 4.3.0, PHP 5)

mysql_real_escape_string — Экранирует специальные символы в строках для использования в выражениях SQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_real_escape_string()
  • PDO::quote()

Описание

string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier = NULL ] )

Экранирует специальные символы в unescaped_string, принимая во внимание кодировку соединения, таким образом, что результат можно безопасно использовать в SQL-запросе в функции mysql_query(). Если вставляются бинарные данные, то к ним так же необходимо применять эту функцию.

mysql_real_escape_string() вызывает библиотечную функцию MySQL mysql_real_escape_string, которая добавляет обратную косую черту к следующим символам: \x00, \n, \r, \, ', " и \x1a.

Эта функция должна всегда (за несколькими исключениями) использоваться для того, чтобы обезопасить данные, вставляемые в запрос перед отправкой его в MySQL.

Предостережение

Безопасность: кодировка символов по умолчанию

Кодировка символов должна устанваливаться как на сервере, так и с помощью функции mysql_set_charset(), чтобы влиять на поведение mysql_real_escape_string(). Подробнее описано в разделе кодировка символов.

Список параметров

unescaped_string

Экранируемая строка.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает строку, в которой экранированы все необходимые символы, или FALSE в случае ошибки.

Ошибки

Запуск этой функции без существующего соединения с MySQL вызовет ошибку уровня E_WARNING. Данную функцию можно запускать только если есть соединение сMySQL.

Примеры

Пример #1 Простой пример использования mysql_real_escape_string()

<?php
// Соединение
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Запрос
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>

Пример #2 Пример использования mysql_real_escape_string() без наличия соединения

Этот пример показывает, что произойдет, если вызвать эту функцию без наличия соединения с MySQL.

<?php
// Коннекта к MySQL нет

$lastname  = "O'Reilly";
$_lastname = mysql_real_escape_string($lastname);

$query = "SELECT * FROM actors WHERE last_name = '$_lastname'";

var_dump($_lastname);
var_dump($query);
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: mysql_real_escape_string(): No such file or directory in /this/test/script.php on line 5
Warning: mysql_real_escape_string(): A link to the server could not be established in /this/test/script.php on line 5

bool(false)
string(41) "SELECT * FROM actors WHERE last_name = ''"

Пример #3 Пример взлома с использованием SQL-инъекции

<?php
// Мы никак не проверили переменную $_POST['password'],
// а она может содержать совсем не то, что мы ожидали. Например:
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

// посылаем запрос, чтобы проверить имя и пароль пользователя
$query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($query);

// посмотрим, какой запрос будет отправлен в MySQL:
echo $query;
?>

Запрос, который будет отправлен в MySQL:

SELECT * FROM users WHERE user='aidan' AND password='' OR ''=''

Это позволит кому угодно войти в систему без пароля.

Примечания

Замечание:

Функцию mysql_real_escape_string() можно использовать только после того, как установлено соединение с MySQL. В противном случае возникнет ошибка уровня E_WARNING, а функция возвратит FALSE. Если link_identifier не указан, используется последнее открытое соединение.

Замечание:

Если magic_quotes_gpc включены, то сначала данные следует обработать функцией stripslashes(). Если данную функцию применить к уже проэкранированным данным, то данные будут проэкранированы дважды.

Замечание:

Если не пользоваться этой функцией, то запрос становится уязвимым для взлома с помощью SQL-инъекций.

Замечание: mysql_real_escape_string() не экранирует символы % и _. Эти знаки являются масками групп символов в операторах MySQL LIKE, GRANT и REVOKE.

Смотрите также

  • mysql_set_charset() - Устанавливает кодировку клиента
  • mysql_client_encoding() - Возвращает кодировку соединения
  • addslashes() - Экранирует строку с помощью слешей
  • stripslashes() - Удаляет экранирование символов
  • Директива magic_quotes_gpc
  • Директива magic_quotes_runtime


Возвращает данные результата запроса

  • « mysql_real_escape_string
  • mysql_select_db »
  • PHP Manual
  • MySQL
  • Возвращает данные результата запроса

mysql_result

(PHP 4, PHP 5)

mysql_result — Возвращает данные результата запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_data_seek() в связке с
mysqli_field_seek() и
mysqli_fetch_field()
  • PDOStatement::fetchColumn()

Описание

string mysql_result ( resource $result , int $row [, mixed $field = 0 ] )

Возвращает содержимое одного поля из набора результата MySQL.

Работая с большими результатами запросов, следует использовать одну из функций, обрабатывающих сразу целый ряд результата (указаны ниже). Так как эти функции возвращают значение нескольких ячеек сразу, они НАМНОГО быстрее mysql_result(). Кроме того, учтите, что указание численного смещения работает намного быстрее, чем указание колонки, или колонки с таблицей через точку.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

row

Номер получаемого ряда из результата. Нумерация рядов начинается с 0.

field

Имя или смещение получаемого поля.

Может быть как смещением поля, именем поля, так и именем поля вместе с таблицей (таблица.поле). Если для поля был указан псевдоним ('select foo as bar from...'), используйте его вместо имени самого поля. Если не указан, возвращается первое поле.

Возвращаемые значения

Содержимое одного поля из набора результата MySQL в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования mysql_result()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Ошибка соединения: ' . mysql_error());
}
if (!mysql_select_db('database_name')) {
    die('Ошибка выбора базы данных: ' . mysql_error());
}
$result = mysql_query('SELECT name FROM work.employee');
if (!$result) {
    die('Ошибка выполнения запроса:' . mysql_error());
}
echo mysql_result($result, 2); // выведет имя третьего сотрудника

mysql_close($link);
?>

Примечания

Замечание:

Вызовы функции mysql_result() не должны смешиваться с другими функциями, работающими с результатом запроса.

Смотрите также

  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект


Выбирает базу данных MySQL

  • « mysql_result
  • mysql_set_charset »
  • PHP Manual
  • MySQL
  • Выбирает базу данных MySQL

mysql_select_db

(PHP 4, PHP 5)

mysql_select_db — Выбирает базу данных MySQL

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_select_db()
  • PDO::__construct() (раздел о dsn)

Описание

bool mysql_select_db ( string $database_name [, resource $link_identifier = NULL ] )

Выбирает для работы указанную базу данных на сервере, на который ссылается переданный дескриптор соединения. Каждый последующий вызов функции mysql_query() будет работать с выбранной базой данных.

Список параметров

database_name

Имя выбираемой базы данных.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_select_db()

<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Не удалось соединиться : ' . mysql_error());
}

// выбираем foo в качестве текущей базы данных
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Не удалось выбрать базу foo: ' . mysql_error());
}
?>

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_selectdb()

Смотрите также

  • mysql_connect() - Открывает соединение с сервером MySQL
  • mysql_pconnect() - Устанавливает постоянное соединение с сервером MySQL
  • mysql_query() - Посылает запрос MySQL


Устанавливает кодировку клиента

  • « mysql_select_db
  • mysql_stat »
  • PHP Manual
  • MySQL
  • Устанавливает кодировку клиента

mysql_set_charset

(PHP 5 >= 5.2.3)

mysql_set_charset — Устанавливает кодировку клиента

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_set_charset()
  • PDO: Добавлением charset в строку соединения, например charset=utf8

Описание

bool mysql_set_charset ( string $charset [, resource $link_identifier = NULL ] )

Устанавливает кодировку по умолчанию для текущего соединения.

Список параметров

charset

Корректное название кодировки.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Данная функция требует MySQL версии 5.0.7 или выше.

Замечание:

Это наиболее предпочитаемый способ для смены кодировки. Использование mysql_query() в этих целях (например SET NAMES utf8) не рекомендуется. Смотрите раздел кодировка символов в MySQL для подробной информации.

Смотрите также

  • Настройка кодировок символов в MySQL
  • » Список поддерживаемых MySQL кодировок
  • mysql_client_encoding() - Возвращает кодировку соединения


Возвращает текущий статус сервера

  • « mysql_set_charset
  • mysql_tablename »
  • PHP Manual
  • MySQL
  • Возвращает текущий статус сервера

mysql_stat

(PHP 4 >= 4.3.0, PHP 5)

mysql_stat — Возвращает текущий статус сервера

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_stat()
  • PDO::getAttribute(PDO::ATTR_SERVER_INFO)

Описание

string mysql_stat ([ resource $link_identifier = NULL ] )

mysql_stat() возвращает текущий статус сервера.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Возвращает строку с данными аптайма, количества потоков, запросов, количеством открытых таблиц и таблиц с сброшенным внутренним кэшем (flush tables), а также количество запросов в секунду. Для получения полного списка других переменных вам необходимо будет использовать SQL-запрос SHOW STATUS. Если передан некорректный link_identifier, то будет возвращен NULL.

Примеры

Пример #1 Пример использования mysql_stat()

<?php
$link   = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$status = explode('  ', mysql_stat($link));
print_r($status);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Uptime: 5380
    [1] => Threads: 2
    [2] => Questions: 1321299
    [3] => Slow queries: 0
    [4] => Opens: 26
    [5] => Flush tables: 1
    [6] => Open tables: 17
    [7] => Queries per second avg: 245.595
)

Пример #2 Альтернативный пример использования mysql_stat()

<?php
$link   = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query('SHOW STATUS', $link);
while ($row = mysql_fetch_assoc($result)) {
    echo $row['Variable_name'] . ' = ' . $row['Value'] . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

back_log = 50
basedir = /usr/local/
bdb_cache_size = 8388600
bdb_log_buffer_size = 32768
bdb_home = /var/db/mysql/
bdb_max_lock = 10000
bdb_logdir =
bdb_shared_data = OFF
bdb_tmpdir = /var/tmp/
...

Смотрите также

  • mysql_get_server_info() - Возвращает информацию о сервере MySQL
  • mysql_list_processes() - Возвращает список процессов MySQL


Возвращает имя таблицы, содержащей указанное поле

  • « mysql_stat
  • mysql_thread_id »
  • PHP Manual
  • MySQL
  • Возвращает имя таблицы, содержащей указанное поле

mysql_tablename

(PHP 4, PHP 5)

mysql_tablename — Возвращает имя таблицы, содержащей указанное поле

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • SQL запрос: SHOW TABLES

Описание

string mysql_tablename ( resource $result , int $i )

Возвращает имя таблицы из result.

Данная функция устарела. Вместо нее рекомендуется использование mysql_query() с SQL-запросом SHOW TABLES [FROM db_name] [LIKE 'pattern'].

Список параметров

result

Дескриптор результата типа resource, полученный из вызова mysql_list_tables().

i

Целочисленный индекс (номер ряда/таблицы)

Возвращаемые значения

Имя таблицы в случае успеха или FALSE в случае возникновения ошибки.

Используйте функцию mysql_tablename() для работы с результатом запроса, либо любую другую функцию, способную это делать, например, mysql_fetch_array().

Список изменений

Версия | Описание
5.5.0 | Функция mysql_tablename() устарела, и вызывает ошибку уровня E_DEPRECATED.

Примеры

Пример #1 Пример использования mysql_tablename()

<?php
mysql_connect("localhost", "mysql_user", "mysql_password");
$result = mysql_list_tables("mydb");
$num_rows = mysql_num_rows($result);
for ($i = 0; $i < $num_rows; $i++) {
    echo "Table: ", mysql_tablename($result, $i), "\n";
}

mysql_free_result($result);
?>

Примечания

Замечание:

Для определения количества таблиц в результате запроса можно использовать функцию mysql_num_rows().

Смотрите также

  • mysql_list_tables() - Возвращает список таблиц базы данных MySQL
  • mysql_field_table() - Возвращает название таблицы, которой принадлежит указанное поле
  • mysql_db_name() - Возвращает название базы данных из вызова к mysql_list_dbs


Возвращает идентификатор текущего потока

  • « mysql_tablename
  • mysql_unbuffered_query »
  • PHP Manual
  • MySQL
  • Возвращает идентификатор текущего потока

mysql_thread_id

(PHP 4 >= 4.3.0, PHP 5)

mysql_thread_id — Возвращает идентификатор текущего потока

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • mysqli_thread_id()

Описание

int mysql_thread_id ([ resource $link_identifier = NULL ] )

mysql_thread_id() возвращает идентификатор текущего потока. Если соединение потеряно и вы пересоединились с помощью mysql_ping(), то идентификатор потока изменится. Это означает, что вам не следует получать данный идентификатор и хранить его для дальнейшего использования. Вызывайте функцию тогда, когда он вам нужен.

Список параметров

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Идентификатор потока в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_thread_id()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$thread_id = mysql_thread_id($link);
if ($thread_id){
    printf("Идентификатор текущего потока: %d\n", $thread_id);
}
?>

Результатом выполнения данного примера будет что-то подобное:

Идентификатор текущего потока: 73

Смотрите также

  • mysql_ping() - Проверяет соединение с сервером и пересоединяется при необходимости
  • mysql_list_processes() - Возвращает список процессов MySQL


Посылает запрос MySQL без авто-обработки результата и его буферизации

  • « mysql_thread_id
  • Mysqlnd »
  • PHP Manual
  • MySQL
  • Посылает запрос MySQL без авто-обработки результата и его буферизации

mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query — Посылает запрос MySQL без авто-обработки результата и его буферизации

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

  • See: Буферизованные и не буферизованные запросы

Описание

resource mysql_unbuffered_query ( string $query [, resource $link_identifier = NULL ] )

mysql_unbuffered_query() посылает запрос MySQL query без автоматической обработки и буферизации её результата, в отличие от функции mysql_query(). Это позволяет сохранить достаточно большое количество памяти для SQL-запросов, возвращающих большое количество данных. Кроме того, вы можете начать работу с полученными данными сразу после того, как первый ряд был получен: вам не приходится ждать до конца SQL-запроса. При использовании mysql_unbuffered_query() с несколькими соединениями MySQL, вы должны указать необязательный параметр link_identifier.

Список параметров

query

Запускаемый SQL-запрос.

Данные в запросе должны быть корректно проэкранированы.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Для SELECT, SHOW, DESCRIBE и EXPLAIN запросов mysql_unbuffered_query() возвращает resource в случае успеха, или FALSE в случае ошибки.

Для остальных типов SQL-запросов, UPDATE, DELETE, DROP и т.д., mysql_unbuffered_query() возвращает TRUE в случае успеха и FALSE в случае ошибки.

Примечания

Замечание:

Однако, плюсы использования mysql_unbuffered_query() имеют свою цену: вы не можете использовать функции mysql_num_rows() и mysql_data_seek() с результатом запроса, возвращённым этой функцией, пока не будут получены все ряды. Кроме того, вы должны будете обработать все ряды запроса до отправки нового запроса, используя тот же link_identifier.

Смотрите также

  • mysql_query() - Посылает запрос MySQL


Встроенный драйвер MySQL

  • Введение
  • Обзор
  • Установка
  • Настройка во время выполнения
  • Несовместимости
  • Постоянное соединение
  • Statistics
  • Записки
  • Управление памятью
  • API для плагинов к встроенному драйверу MySQL
    • Сравнение плагинов mysqlnd с MySQL Proxy
    • Получение API плагинов mysqlnd
    • Архитектура плагинов MySQL Native Driver
    • API плагинов mysqlnd
    • Начинаем разработку плагина mysqlnd


Введение

MySQL Native Driver является заменой для клиентской библиотеки MySQL (libmysqlclient). MySQL Native Driver является частью официальных исходных кодов PHP начиная с PHP 5.3.0.

Расширения баз данных MySQL mysqli и PDO MYSQL соединяются с сервером MySQL. В прошлом это делалось с помощью расширения, использующего сервисы, которые предоставляет клиентская библиотека MySQL. Такие расширения компилировались с клиентской библиотекой MySQL для того, чтобы использовать собственный клиент-серверный протокол.

С появлением MySQL Native Driver появилась альтернатива, так как расширения баз данных могут компилироваться для использования MySQL Native Driver вместо клиентской библиотеки MySQL.

MySQL Native Driver написан на C в виде расширения PHP.


Обзор

Чем он не является

Хотя встроенный драйвер MySQL написан как расширение PHP, важно понимать, что он не предоставляет программисту PHP нового API. API к базе данных MySQL для программиста предоставляются расширениями MySQL, mysqli и PDO MYSQL. Эти расширения могут использовать возможности встроенного драйвера MySQL для общения с сервером MySQL. Таким образом, вы не должны думать о встроенном драйвере MySQL как об API.

Зачем его использовать?

Использование встроенного драйвера MySQL дает некоторые плюсы относительно клиентской библиотеки MySQL.

Более старая клиентская библиотека MySQL была написана MySQL AB (сейчас Oracle Corporation) и выпускалась под лицензией MySQL. В конечном итоге это привело к тому, что поддержка MySQL в PHP была по умолчанию выключена. С другой стороны, встроенный драйвер MySQL был разработан как часть проекта PHP, и выпущен под лицензией PHP. Это снимает вопросы с лицензированием, бывшие проблемными в прошлом.

Также, в прошлом вам требовалось собирать расширения, работающие с базой данных MySQL, рядом с клиентской библиотекой MySQL. Обычно это означало, что на машине, на которой вы разрабатывали PHP-код, требовался установленный MySQL. К тому же, когда PHP-приложение работало, расширения, работающие с MySQL, могли обращаться к клиентской библиотеке MySQL во время работы, так что ее файл должен был быть установлен в вашей системе. Со встроенным драйвером MySQL эта проблема исчезла, поскольку он является частью стандартного дистрибутива. Таким образом, вам не потребуется установленный MySQL, чтобы собирать PHP или использовать работающие с базой данных PHP-приложения.

Поскольку встроенный драйвер MySQL написан как расширение PHP, он тесно связан с работой PHP. Это приводит к приросту эффективности, особенно в плане использования оперативной памяти, поскольку драйвер использует систему управления памятью PHP. Он также поддерживает настройки лимита памяти PHP. Использование встроенного драйвера MySQL приводит к сопоставимой или даже лучшей производительности, чем в случае клиентской библиотеки MySQL, поскольку всегда гарантируется наиболее эффективное использование памяти. Одним из примеров эффективности работы с памятью является то, что при использовании клиентской библиотеки MySQL каждая строка хранится в памяти дважды, тогда как в случае встроенного драйвера MySQL каждая строка хранится в памяти только один раз.

Замечание: Контроль использования памяти

Так как встроенный драйвер MySQL использует систему контроля памяти PHP, используемая им память может быть отслежена с помощью функции memory_get_usage(). Это нельзя сделать с libmysqlclient, так как он использует функцию языка Си malloc().

Особые возможности

Встроенный драйвер MySQL также предоставляет некоторые особые возможности, недоступные при использовании расширениями клиентской библиотеки MySQL. Список этих возможностей приведен ниже:

  • Улучшены постоянные соединения

  • Особая функция mysqli_fetch_all()

  • Вызов статистики производительности:
mysqli_get_cache_stats(),
mysqli_get_client_stats(),
mysqli_get_connection_stats()

Статистика производительности может быть очень полезна для нахождения узких мест в производительности.

Встроенный драйвер MySQL также поддерживает постоянные соединения при использовании расширения mysqli.

Поддержка SSL

Встроенный драйвер MySQL поддерживает SSL с версии PHP 5.3.3

Поддержка протокола с использованием сжатия

Начиная с PHP 5.3.2, встроенный драйвер MySQL поддерживает клиент-серверный протокол с использованием сжатия. Этой поддержки нет в версиях 5.3.0 и 5.3.1. Расширения, например ext/mysql или ext/mysqli, настроенные на использование встроенного драйвера MySQL, могут также воспользоваться этой возможностью. Обратите внимание, что PDO_MYSQL НЕ поддерживает сжатие при использовании совместно с mysqlnd.

Поддержка именованных каналов

Поддержка именованных каналов для Windows была добавлена в PHP версии 5.4.0.


Установка

Список изменений

Список изменений
Версия | Описание
5.3.0 | Был добавлен встроенный драйвер MySQL, поддерживающий все MySQL-расширения (то есть mysql, mysqli и PDO_MYSQL). Указание параметра mysqlnd в соответствующий параметр конфигурации включает эту поддержку.
5.4.0 | Встроенный драйвер MySQL теперь по умолчанию работает для всех MySQL-расширений (то есть mysql, mysqli и PDO_MYSQL). Указание параметра mysqlnd при конфигурации теперь необязательно.
5.5.0 | Добавлена поддержка плагина аутентификации SHA-256.

Установка в Unix

Расширения для работы с MySQL должны быть сконфигурированы для использования клиентской библиотеки MySQL. Для работы встроенного драйвере MySQL требуется собрать PHP, указав, что расширения для работы с MySQL должны быть скомпилированы с поддержкой встроенного драйвера MySQL. Это делается с помощью параметров конфигурации перед сборкой PHP из исходного кода.

Например, чтобы собрать расширения MySQL mysqli и PDO MYSQL, использующие встроенный драйвер MySQL, должна быть выполнена следующая команда:

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
[other options]

Установка в Windows

В официальных Windows-дистрибутивах PHP 5.3 и выше встроенный драйвер MySQl включен по умолчанию, так что никаких дополнительных настроек для его использования не требуется. В этом случае все расширения для работы с MySQL будут использовать встроенный драйвер MySQL.

Поддержка плагина аутентификации SHA-256

Для встроенного драйвера MySQL требуется подключить и включить OpenSSL функционал PHP, чтобы подключаться к MySQL через аккаунты использующие плагин аутентификации MySQL SHA-256. Например можно настроить PHP следующим образом:

./configure --with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl
[other options]


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации встроенного драйвера MySQL
Имя | По умолчанию | Меняемо | Список изменений
mysqlnd.collect_statistics | "1" | PHP_INI_SYSTEM | Доступен с PHP 5.3.0.
mysqlnd.collect_memory_statistics | "0" | PHP_INI_SYSTEM | Доступен с PHP 5.3.0.
mysqlnd.debug | "" | PHP_INI_SYSTEM | Доступен с PHP 5.3.0.
mysqlnd.log_mask | 0 | PHP_INI_ALL | Доступен с PHP 5.3.0
mysqlnd.mempool_default_size | 16000 | PHP_INI_ALL | Доступен с PHP 5.3.3
mysqlnd.net_read_timeout | "31536000" | PHP_INI_SYSTEM | Доступен с PHP 5.3.0.
mysqlnd.net_cmd_buffer_size | 5.3.0 - "2048", 5.3.1 - "4096" | PHP_INI_SYSTEM | Доступен с PHP 5.3.0.
mysqlnd.net_read_buffer_size | "32768" | PHP_INI_SYSTEM | Доступен с PHP 5.3.0.
mysqlnd.sha256_server_public_key | "" | PHP_INI_PERDIR | Доступен с PHP 5.5.0.
mysqlnd.fetch_data_copy | 0 | PHP_INI_ALL | Доступен с PHP 5.6.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mysqlnd.collect_statistics boolean

Включает сбор различной статистики клиента, доступ к которой можно
получить с помощью mysqli_get_client_stats(),
mysqli_get_connection_stats(),
mysqli_get_cache_stats() и которая отображается
в разделе mysqlnd вывода функции
phpinfo().

Этот параметр конфигурации включает всю статистику встроенного драйвера MySQL, кроме относящейся к работе с оперативной памятью.

mysqlnd.collect_memory_statistics boolean

Включает сбор различной статистики оперативной памяти, доступ к
которой можно получить с помощью mysqli_get_client_stats(),
mysqli_get_connection_stats(),
mysqli_get_cache_stats() и которая отображается
в разделе mysqlnd вывода функции
phpinfo().

Этот параметр конфигурации включает всю статистику, относящуюся к работе с оперативной памятью, в общий набор данных статистики встроенного драйвера MySQL.

mysqlnd.debug string

Записывает команды из всех расширений, использующих mysqlnd, в указанный файл с логами.

Формат параметра следующий: mysqlnd.debug = "option1[,parameter_option1][:option2[,parameter_option2]]".

Возможны нижеуказанные значения для строки форматирования:

  • A[,file] - добавляет вывод трассировки в указанный файл. Также каждый раз проверяет успешность записи данных. Это реализовано путем закрытия и повторного открытия файла (что достаточно медленно). Дает гарантию целостности файла с логами в случае ошибки приложения.

  • a[,file] - добавляет вывод трассировки в указанный файл.

  • d - Включает вывод из макроса DBUG_<N> для текущего состояния. Может быть дополнено списком ключевых слов, чтобы выбрать вывод только содержащего эти ключевые слова макросов DBUG. Пустой список ключевых слов подразумевает вывод всех для макросов.

  • f[,functions] - ограничивает действия отладчика указанным списком функций. Пустой список функций подразумевает выбор всех функций.

  • F - помечает вывод каждой строчки отладчика названием исходного файла, содержащего код, вызвавший вывод.

  • i - помечает вывод каждой строчки отладчика PID текущего процесса.

  • L - помечает вывод каждой строчки отладчика названием исходного файла, вызвавшего вывод, и номером строки в ней.

  • n - помечает вывод каждой строчки отладчика уровнем вложенности текущей функции.

  • o[,file] - сходно с a[,file], но перезаписывает старый файл, а не дописывает его.

  • O[,file] - сходно с A[,file] но перезаписывает старый файл, а не дописывает его.

  • t[,N] - включает контроль функций во время трассировки. Максимальный уровень вложенности определен N и по умолчанию равен 200.

  • x - этот параметр активирует профилирование.

  • m - отслеживать вызовы, связанные с выделениями и высвобождением памяти.

Пример:

d:t:x:O,/tmp/mysqlnd.trace

Замечание:

Эта возможность доступна только для отладочной сборки PHP. Работает на Microsoft Windows при использовании отладочной сборки PHP, если PHP был собран с помощью Microsoft Visual C версии 9 и выше.

mysqlnd.log_mask integer

Определяет, какие запросы будут журналироваться. Значение по умолчанию - 0, что отключает журналирование. Значение параметра - только целое число, константы PHP использовать нельзя. Например, при значении 48 (16 + 32) в журнал будут записываться медленные запросы, которые либо используют неподходящие индексы (SERVER_QUERY_NO_GOOD_INDEX_USED = 16), либо не используют их вообще SERVER_QUERY_NO_INDEX_USED = 32). При значении 2043 (1 + 2 + 8 + ... + 1024) в журнал будут записываться все типы медленных запросов.

Используются следующие типы запросов: SERVER_STATUS_IN_TRANS=1, SERVER_STATUS_AUTOCOMMIT=2,
SERVER_MORE_RESULTS_EXISTS=8, SERVER_QUERY_NO_GOOD_INDEX_USED=16, SERVER_QUERY_NO_INDEX_USED=32,
SERVER_STATUS_CURSOR_EXISTS=64, SERVER_STATUS_LAST_ROW_SENT=128, SERVER_STATUS_DB_DROPPED=256,
SERVER_STATUS_NO_BACKSLASH_ESCAPES=512, and SERVER_QUERY_WAS_SLOW=1024.

mysqlnd.mempool_default_size integer

Default size of the mysqlnd memory pool, which is used by result sets.

mysqlnd.net_read_timeout integer

mysqlnd и клиентская библиотека MySQL, libmysqlclient, используют разные сетевые API. mysqlnd использует потоки PHP, тогда как libmysqlclient - собственную обертку над сетевыми вызовами операционной системы. В PHP по умолчанию выставлен 60-секундный таймаут для потоков. Этот параметр выставляется в php.ini директивой default_socket_timeout. По умолчанию это относится ко всем потокам, которым не установлено другое значение таймаута. mysqlnd не устанавливал других значений, поэтому подключения долго выполняющихся запросов могут быть отключены после default_socket_timeout секунд с ошибкой "2006 - MySQL Server has gone away". Клиентская библиотека MySQL устанавливает таймаут по умолчанию равным 365 * 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 long

mysqlnd резервирует внутренний командно-сетевой буфер размером mysqlnd.net_cmd_buffer_size (в php.ini) байт для каждого соединения. Если команда клиент-серверного протокола MySQL, например, COM_QUERY ("обычный" запрос), не умещается в буфер, mysqlnd увеличит буфер до размера, необходимого для отправки команды. Каждый раз, когда буфер был увеличен, переменная статистики command_buffer_too_small будет увеличена на один.

Если mysqlnd приходится увеличивать буфер сверх его заданного размера в mysqlnd.net_cmd_buffer_size байт для большинства соединений, вам следует обдумать необходимость увеличения размера по умолчанию, чтобы избежать повторных резерваций буфера.

Размер буфера по умолчанию равен 2048 байт в PHP 5.3.0. В дальнейших версиях значение по умолчанию составляет 4096 байт.

Рекомендуется устанавливать размер буфера не менее 4096 байт, поскольку mysqlnd также использует его при считывании определенных пакетов данных из MySQL. В PHP 5.3.0 mysqlnd не станет увеличивать размер буфера, если MySQL пришлет пакет большего размера, чем текущий размер буфера. Как следствие, mysqlnd будет не в состоянии расшифровать пакет и клиентское приложение получит ошибку. В PHP 5.3.0 есть только два случая, в которых пакет может быть больше указанных по умолчанию в mysqlnd.net_cmd_buffer_size 2048 байт: в пакете передается очень длинное сообщение об ошибке или пакет содержит метаданные из COM_LIST_FIELD (mysql_list_fields()) и эти данные получаются из строкового столбца с очень длинным значением по умолчанию (более 1900 байт).

Начиная с PHP 5.3.2 mysqlnd не дает установить значение буфера менее 4096 байт.

Это значение также может быть установлено функцией mysqli_options(link, MYSQLI_OPT_NET_CMD_BUFFER_SIZE, size).

mysqlnd.net_read_buffer_size long

Максимальный размер части данных при считывании, в байтах, при обработке тела командного пакета 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.fetch_data_copy long

Принуждает копировать наборы из внутреннего буфера наборов в PHP переменные вместо использования логики с ссылками и "копированием при записи" по умолчанию. Смотрите реализация управления памятью для получения большей информации.

Копирование результирующих наборов вместо PHP переменных ссылающихся на них позволяют выделять память для PHP переменных заранее. В зависимости от пользовательского кода, реальных запросов к базе данных и размеров их результатов, можно снизить потребление памяти mysqlnd.

Не применяйте, если используется PDO_MySQL. В PDO_MySQL еще не добавлена поддержка этого нового режима.


Несовместимости

Встроенный драйвер MySQL (mysqlnd), в большинстве случаев, совместим с клиентской библиотекой MySQL libmysql. Этот раздел описывает несовместимости между этими библиотеками.

  • Значения в полях данных типа bit в библиотеке libmysql возвращаются как бинарные строки (например, "\0" или "\x1F"), а в библиотеке mysqlnd - как десятичные строки (например, "0" или "31"). Если необходимо, чтобы код был совместим с обеими библиотеками, то всегда из MySQL возвращайте данные из полей типа bit в виде чисел, используя подобный запрос: SELECT bit + 0 FROM table.


Постоянное соединение

Использование постоянных соединений

Если mysqli используется с mysqlnd,\ при создании постоянного соединения оно генерирует на сервере запрос COM_CHANGE_USER (mysql_change_user()). Это гарантирует, что при подключении будет повторно произведена авторизация.

Поскольку из-за вызовов COM_CHANGE_USER увеличиваются накладные расходы, возможно отключить такое поведение во время компиляции. В таком случае повторное использование постоянного соединения будет генерировать вызов COM_PING (mysql_ping), для проверки возможности повторного использования соединения.

Генерация вызова COM_CHANGE_USER может быть отключена флагом компиляции MYSQLI_NO_CHANGE_USER_ON_PCONNECT. Например:

shell# CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT" ./configure --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --enable-debug && make clean && make -j6

Or alternatively:

shell# export CFLAGS="-DMYSQLI_NO_CHANGE_USER_ON_PCONNECT"
shell# configure --whatever-option
shell# make clean
shell# make

Обратите внимание, что только mysqli совместно с mysqlnd используют COM_CHANGE_USER. Остальные комбинации расширение-драйвер используют COM_PING при инициации постоянного соединения.


Statistics

Using Statistical Data

MySQL Native Driver contains support for gathering statistics on the communication between the client and the server. The statistics gathered are of two main types:

  • Client statistics

  • Connection statistics

If you are using the mysqli extension, these statistics can be obtained through two API calls:

  • mysqli_get_client_stats()

  • mysqli_get_connection_stats()

Замечание:

Statistics are aggregated among all extensions that use MySQL Native Driver. For example, when compiling both ext/mysql and ext/mysqli against MySQL Native Driver, both function calls of ext/mysql and ext/mysqli will change the statistics. There is no way to find out how much a certain API call of any extension that has been compiled against MySQL Native Driver has impacted a certain statistic. You can configure the PDO MySQL Driver, ext/mysql and ext/mysqli to optionally use the MySQL Native Driver. When doing so, all three extensions will change the statistics.

Accessing Client Statistics

To access client statistics, you need to call mysqli_get_client_stats(). The function call does not require any parameters.

The function returns an associative array that contains the name of the statistic as the key and the statistical data as the value.

Client statistics can also be accessed by calling the phpinfo() function.

Accessing Connection Statistics

To access connection statistics call mysqli_get_connection_stats(). This takes the database connection handle as the parameter.

The function returns an associative array that contains the name of the statistic as the key and the statistical data as the value.

Buffered and Unbuffered Result Sets

Result sets can be buffered or unbuffered. Using default settings, ext/mysql and ext/mysqli work with buffered result sets for normal (non prepared statement) queries. Buffered result sets are cached on the client. After the query execution all results are fetched from the MySQL Server and stored in a cache on the client. The big advantage of buffered result sets is that they allow the server to free all resources allocated to a result set, once the results have been fetched by the client.

Unbuffered result sets on the other hand are kept much longer on the server. If you want to reduce memory consumption on the client, but increase load on the server, use unbuffered results. If you experience a high server load and the figures for unbuffered result sets are high, you should consider moving the load to the clients. Clients typically scale better than servers. "Load" does not only refer to memory buffers - the server also needs to keep other resources open, for example file handles and threads, before a result set can be freed.

Prepared Statements use unbuffered result sets by default. However, you can use mysqli_stmt_store_result() to enable buffered result sets.

Statistics returned by MySQL Native Driver

The following tables show a list of statistics returned by the mysqli_get_client_stats() and mysqli_get_connection_stats() functions.

Returned mysqlnd statistics: Network
Statistic | Scope | Description | Notes
bytes_sent | Connection | Number of bytes sent from PHP to the MySQL server | Can be used to check the efficiency of the compression protocol
bytes_received | Connection | Number of bytes received from MySQL server | Can be used to check the efficiency of the compression protocol
packets_sent | Connection | Number of MySQL Client Server protocol packets sent | Used for debugging Client Server protocol implementation
packets_received | Connection | Number of MySQL Client Server protocol packets received | Used for debugging Client Server protocol implementation
protocol_overhead_in | Connection | MySQL Client Server protocol overhead in bytes for incoming traffic. Currently only the Packet Header (4 bytes) is considered as overhead. protocol_overhead_in = packets_received * 4 | Used for debugging Client Server protocol implementation
protocol_overhead_out | Connection | 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 | Used for debugging Client Server protocol implementation
bytes_received_ok_packet | Connection | Total size of bytes of MySQL Client Server protocol OK packets received. OK packets can contain a status message. The length of the status message can vary and thus the size of an OK packet is not fixed. | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_ok | Connection | Number of MySQL Client Server protocol OK packets received. | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_eof_packet | Connection | Total size in bytes of MySQL Client Server protocol EOF packets received. EOF can vary in size depending on the server version. Also, EOF can transport an error message. | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_eof | Connection | Number of MySQL Client Server protocol EOF packets. Like with other packet statistics the number of packets will be increased even if PHP does not receive the expected packet but, for example, an error message. | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_rset_header_packet | Connection | Total size in bytes of MySQL Client Server protocol result set header packets. The size of the packets varies depending on the payload (LOAD LOCAL INFILE, INSERT, UPDATE, SELECT, error message). | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_rset_header | Connection | Number of MySQL Client Server protocol result set header packets. | Used for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_rset_field_meta_packet | Connection | Total size in bytes of MySQL Client Server protocol result set meta data (field information) packets. Of course the size varies with the fields in the result set. The packet may also transport an error or an EOF packet in case of COM_LIST_FIELDS. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_rset_field_meta | Connection | Number of MySQL Client Server protocol result set meta data (field information) packets. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_rset_row_packet | Connection | Total size in bytes of MySQL Client Server protocol result set row data packets. The packet may also transport an error or an EOF packet. You can reverse engineer the number of error and EOF packets by subtracting rows_fetched_from_server_normal and rows_fetched_from_server_ps from bytes_received_rset_row_packet. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_rset_row | Connection | Number of MySQL Client Server protocol result set row data packets and their total size in bytes. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_prepare_response_packet | Connection | Total size in bytes of MySQL Client Server protocol OK for Prepared Statement Initialization packets (prepared statement init packets). The packet may also transport an error. The packet size depends on the MySQL version: 9 bytes with MySQL 4.1 and 12 bytes from MySQL 5.0 on. There is no safe way to know how many errors happened. You may be able to guess that an error has occurred if, for example, you always connect to MySQL 5.0 or newer and, bytes_received_prepare_response_packet != packets_received_prepare_response * 12. See also ps_prepared_never_executed, ps_prepared_once_executed. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_prepare_response | Connection | Number of MySQL Client Server protocol OK for Prepared Statement Initialization packets (prepared statement init packets). | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
bytes_received_change_user_packet | Connection | Total size in bytes of MySQL Client Server protocol COM_CHANGE_USER packets. The packet may also transport an error or EOF. | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_received_change_user | Connection | Number of MySQL Client Server protocol COM_CHANGE_USER packets | Only useful for debugging CS protocol implementation. Note that the total size in bytes includes the size of the header packet (4 bytes, see protocol overhead).
packets_sent_command | Connection | Number of MySQL Client Server protocol commands sent from PHP to MySQL. There is no way to know which specific commands and how many of them have been sent. At its best you can use it to check if PHP has sent any commands to MySQL to know if you can consider to disable MySQL support in your PHP binary. There is also no way to reverse engineer the number of errors that may have occurred while sending data to MySQL. The only error that is recorded is command_buffer_too_small (see below). | Only useful for debugging CS protocol implementation.
bytes_received_real_data_normal Connection Number of bytes of payload fetched by the PHP client from mysqlnd using the text protocol. This is the size of the actual data contained in result sets that do not originate from prepared statements and which have been fetched by the PHP client. Note that although a full result set may have been pulled from MySQL by mysqlnd, this statistic only counts actual data pulled from mysqlnd by the PHP client. An example of a code sequence that will increase the value is as follows:
$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->fetch_assoc();
$res->close();

Every fetch operation will increase the value.

The statistic will not be increased if the result set is only buffered on the client, but not fetched, such as in the following example:

$mysqli = new mysqli();
$res = $mysqli->query("SELECT 'abc'");
$res->close();

This statistic is available as of PHP version 5.3.4.

bytes_received_real_data_ps | Connection | Number of bytes of the payload fetched by the PHP client from mysqlnd using the prepared statement protocol. | This is the size of the actual data contained in result sets that originate from prepared statements and which has been fetched by the PHP client. The value will not be increased if the result set is not subsequently read by the PHP client. Note that although a full result set may have been pulled from MySQL by mysqlnd, this statistic only counts actual data pulled from mysqlnd by the PHP client. See also bytes_received_real_data_normal. This statistic is available as of PHP version 5.3.4.

Result Set

Returned mysqlnd statistics: Result Set
Statistic | Scope | Description | Notes
result_set_queries | Connection | Number of queries that have generated a result set. Examples of queries that generate a result set: SELECT, SHOW. The statistic will not be incremented if there is an error reading the result set header packet from the line. | You may use it as an indirect measure for the number of queries PHP has sent to MySQL, for example, to identify a client that causes a high database load.
non_result_set_queries | Connection | Number of queries that did not generate a result set. Examples of queries that do not generate a result set: INSERT, UPDATE, LOAD DATA, SHOW. The statistic will not be incremented if there is an error reading the result set header packet from the line. | You may use it as an indirect measure for the number of queries PHP has sent to MySQL, for example, to identify a client that causes a high database load.
no_index_used | Connection | Number of queries that have generated a result set but did not use an index (see also mysqld start option -log-queries-not-using-indexes). If you want these queries to be reported you can use mysqli_report(MYSQLI_REPORT_INDEX) to make ext/mysqli throw an exception. If you prefer a warning instead of an exception use mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT).
bad_index_used | Connection | Number of queries that have generated a result set and did not use a good index (see also mysqld start option -log-slow-queries). | If you want these queries to be reported you can use mysqli_report(MYSQLI_REPORT_INDEX) to make ext/mysqli throw an exception. If you prefer a warning instead of an exception use mysqli_report(MYSQLI_REPORT_INDEX ^ MYSQLI_REPORT_STRICT)
slow_queries | Connection | SQL statements that took more than long_query_time seconds to execute and required at least min_examined_row_limit rows to be examined. | Not reported through mysqli_report()
buffered_sets | Connection | Number of buffered result sets returned by "normal" queries. "Normal" means "not prepared statement" in the following notes. | Examples of API calls that will buffer result sets on the client: mysql_query(), mysqli_query(), mysqli_store_result(), mysqli_stmt_get_result(). Buffering result sets on the client ensures that server resources are freed as soon as possible and it makes result set scrolling easier. The downside is the additional memory consumption on the client for buffering data. Note that mysqlnd (unlike the MySQL Client Library) respects the PHP memory limit because it uses PHP internal memory management functions to allocate memory. This is also the reason why memory_get_usage() reports a higher memory consumption when using mysqlnd instead of the MySQL Client Library. memory_get_usage() does not measure the memory consumption of the MySQL Client Library at all because the MySQL Client Library does not use PHP internal memory management functions monitored by the function!
unbuffered_sets | Connection | Number of unbuffered result sets returned by normal (non prepared statement) queries. | Examples of API calls that will not buffer result sets on the client: mysqli_use_result()
ps_buffered_sets | Connection | Number of buffered result sets returned by prepared statements. By default prepared statements are unbuffered. | Examples of API calls that will not buffer result sets on the client: mysqli_stmt_store_result
ps_unbuffered_sets | Connection | Number of unbuffered result sets returned by prepared statements. | By default prepared statements are unbuffered.
flushed_normal_sets Connection Number of result sets from normal (non prepared statement) queries with unread data which have been flushed silently for you. Flushing happens only with unbuffered result sets. Unbuffered result sets must be fetched completely before a new query can be run on the connection otherwise MySQL will throw an error. If the application does not fetch all rows from an unbuffered result set, mysqlnd does implicitly fetch the result set to clear the line. See also rows_skipped_normal, rows_skipped_ps. Some possible causes for an implicit flush:

  • Faulty client application

  • Client stopped reading after it found what it was looking for but has made MySQL calculate more records than needed

  • Client application has stopped unexpectedly

flushed_ps_sets Connection Number of result sets from prepared statements with unread data which have been flushed silently for you. Flushing happens only with unbuffered result sets. Unbuffered result sets must be fetched completely before a new query can be run on the connection otherwise MySQL will throw an error. If the application does not fetch all rows from an unbuffered result set, mysqlnd does implicitly fetch the result set to clear the line. See also rows_skipped_normal, rows_skipped_ps. Some possible causes for an implicit flush:

  • Faulty client application

  • Client stopped reading after it found what it was looking for but has made MySQL calculate more records than needed

  • Client application has stopped unexpectedly

ps_prepared_never_executed | Connection | Number of statements prepared but never executed. | Prepared statements occupy server resources. You should not prepare a statement if you do not plan to execute it.
ps_prepared_once_executed | Connection | Number of prepared statements executed only one. | One of the ideas behind prepared statements is that the same query gets executed over and over again (with different parameters) and some parsing and other preparation work can be saved, if statement execution is split up in separate prepare and execute stages. The idea is to prepare once and "cache" results, for example, the parse tree to be reused during multiple statement executions. If you execute a prepared statement only once the two stage processing can be inefficient compared to "normal" queries because all the caching means extra work and it takes (limited) server resources to hold the cached information. Consequently, prepared statements that are executed only once may cause performance hurts.
rows_fetched_from_server_normal, rows_fetched_from_server_ps | Connection | Total number of result set rows successfully fetched from MySQL regardless if the client application has consumed them or not. Some of the rows may not have been fetched by the client application but have been flushed implicitly. | See also packets_received_rset_row
rows_buffered_from_client_normal, rows_buffered_from_client_ps | Connection | Total number of successfully buffered rows originating from a "normal" query or a prepared statement. This is the number of rows that have been fetched from MySQL and buffered on client. Note that there are two distinct statistics on rows that have been buffered (MySQL to mysqlnd internal buffer) and buffered rows that have been fetched by the client application (mysqlnd internal buffer to client application). If the number of buffered rows is higher than the number of fetched buffered rows it can mean that the client application runs queries that cause larger result sets than needed resulting in rows not read by the client. | Examples of queries that will buffer results: mysqli_query(), mysqli_store_result()
rows_fetched_from_client_normal_buffered, rows_fetched_from_client_ps_buffered | Connection | Total number of rows fetched by the client from a buffered result set created by a normal query or a prepared statement.
rows_fetched_from_client_normal_unbuffered, rows_fetched_from_client_ps_unbuffered | Connection | 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 | Connection | Total number of rows fetch by the client from a cursor created by a prepared statement.
rows_skipped_normal, rows_skipped_ps | Connection | Reserved for future use (currently not supported)
copy_on_write_saved, copy_on_write_performed | Process | With mysqlnd, variables returned by the extensions point into mysqlnd internal network result buffers. If you do not change the variables, fetched data will be kept only once in memory. If you change the variables, mysqlnd has to perform a copy-on-write to protect the internal network result buffers from being changed. With the MySQL Client Library you always hold fetched data twice in memory. Once in the internal MySQL Client Library buffers and once in the variables returned by the extensions. In theory mysqlnd can save up to 40% memory. However, note that the memory saving cannot be measured using memory_get_usage().
explicit_free_result, implicit_free_result | Connection, Process (only during prepared statement cleanup) | Total number of freed result sets. | The free is always considered explicit but for result sets created by an init command, for example, 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 Connection Total number of columns of a certain type fetched from a normal query (MySQL text protocol). Mapping from C API / MySQL meta data type to statistics name:

  • 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

  • Any MYSQL_TYPE_* not listed before (there should be none) - proto_text_fetched_other

Note that the MYSQL_*-type constants may not be associated with the very same SQL column types in every version of 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 | Connection | Total number of columns of a certain type fetched from a prepared statement (MySQL binary protocol). | For type mapping see proto_text_* described in the preceding text.
Returned mysqlnd statistics: Connection
Statistic | Scope | Description | Notes
connect_success, connect_failure | Connection | Total number of successful / failed connection attempt. | Reused connections and all other kinds of connections are included.
reconnect | Process | Total number of (real_)connect attempts made on an already opened connection handle. | The code sequence $link = new mysqli(...); $link->real_connect(...) will cause a reconnect. But $link = new mysqli(...); $link->connect(...) will not because $link->connect(...) will explicitly close the existing connection before a new connection is established.
pconnect_success | Connection | Total number of successful persistent connection attempts. | Note that connect_success holds the sum of successful persistent and non-persistent connection attempts. The number of successful non-persistent connection attempts is connect_success - pconnect_success.
active_connections | Connection | Total number of active persistent and non-persistent connections.
active_persistent_connections | Connection | Total number of active persistent connections. | The total number of active non-persistent connections is active_connections - active_persistent_connections.
explicit_close Connection Total number of explicitly closed connections (ext/mysqli only). Examples of code snippets that cause an explicit close :
$link = new mysqli(...); $link->close(...)
$link = new mysqli(...); $link->connect(...)
implicit_close Connection Total number of implicitly closed connections (ext/mysqli only). Examples of code snippets that cause an implicit close :

  • $link = new mysqli(...); $link->real_connect(...)

  • unset($link)

  • Persistent connection: pooled connection has been created with real_connect and there may be unknown options set - close implicitly to avoid returning a connection with unknown options

  • Persistent connection: ping/change_user fails and ext/mysqli closes the connection

  • end of script execution: close connections that have not been closed by the user

disconnect_close | Connection | Connection failures indicated by the C API call mysql_real_connect() during an attempt to establish a connection. | It is called disconnect_close because the connection handle passed to the C API call will be closed.
in_middle_of_command_close | Process | A connection has been closed in the middle of a command execution (outstanding result sets not fetched, after sending a query and before retrieving an answer, while fetching data, while transferring data with LOAD DATA). | Unless you use asynchronous queries this should only happen if your script stops unexpectedly and PHP shuts down the connections for you.
init_command_executed_count | Connection | Total number of init command executions, for example, mysqli_options(MYSQLI_INIT_COMMAND , ...). | The number of successful executions is init_command_executed_count - init_command_failed_count.
init_command_failed_count | Connection | Total number of failed init commands.
Returned mysqlnd statistics: COM_* Command
Statistic Scope Description Notes
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 Connection Total number of attempts to send a certain COM_* command from PHP to MySQL.

The statistics are incremented after checking the line and immediately before sending the corresponding MySQL client server protocol packet. If mysqlnd fails to send the packet over the wire the statistics will not be decremented. In case of a failure mysqlnd emits a PHP warning "Error while sending %s packet. PID=%d."

Usage examples:

  • Check if PHP sends certain commands to MySQL, for example, check if a client sends COM_PROCESS_KILL

  • Calculate the average number of prepared statement executions by comparing COM_EXECUTE with COM_PREPARE

  • Check if PHP has run any non-prepared SQL statements by checking if COM_QUERY is zero

  • Identify PHP scripts that run an excessive number of SQL statements by checking COM_QUERY and COM_EXECUTE

Miscellaneous

Returned mysqlnd statistics: Miscellaneous
Statistic | Scope | Description | Notes
explicit_stmt_close, implicit_stmt_close | Process | Total number of close prepared statements. | A close is always considered explicit but for a failed prepare.
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 | Process | Memory management calls. | Development only.
command_buffer_too_small Connection Number of network command buffer extensions while sending commands from PHP to MySQL.

mysqlnd allocates an internal command/network buffer of mysqlnd.net_cmd_buffer_size (php.ini) bytes for every connection. If a MySQL Client Server protocol command, for example, COM_QUERY (normal query), does not fit into the buffer, mysqlnd will grow the buffer to what is needed for sending the command. Whenever the buffer gets extended for one connection command_buffer_too_small will be incremented by one.

If mysqlnd has to grow the buffer beyond its initial size of mysqlnd.net_cmd_buffer_size (php.ini) bytes for almost every connection, you should consider to increase the default size to avoid re-allocations.

The default buffer size is 2048 bytes in PHP 5.3.0. In future versions the default will be 4kB or larger. The default can changed either through the php.ini setting mysqlnd.net_cmd_buffer_size or using mysqli_options(MYSQLI_OPT_NET_CMD_BUFFER_SIZE, int size).

It is recommended to set the buffer size to no less than 4096 bytes because mysqlnd also uses it when reading certain communication packet from MySQL. In PHP 5.3.0, mysqlnd will not grow the buffer if MySQL sends a packet that is larger than the current size of the buffer. As a consequence mysqlnd is unable to decode the packet and the client application will get an error. There are only two situations when the packet can be larger than the 2048 bytes default of mysqlnd.net_cmd_buffer_size in PHP 5.3.0: the packet transports a very long error message or the packet holds column meta data from COM_LIST_FIELD (mysql_list_fields()) and the meta data comes from a string column with a very long default value (>1900 bytes). No bug report on this exists - it should happen rarely.

As of PHP 5.3.2 mysqlnd does not allow setting buffers smaller than 4096 bytes.

connection_reused


Записки

Этот раздел содержит набор различных записок по поводу использования встроенного драйвера MySQL.

  • Использование mysqlnd подразумевает использование потоков PHP как основу для подключений. При работе с mysqlnd следует обращаться к документации потоков PHP (Потоки), а не к документации клиентской библиотеки MySQL, по поводу таких вещей, как, например, настройка таймаута.


Управление памятью

Введение

Встроенный драйвер MySQL (mysqlnd) управляет памятью по-другому, в отличии от клиентской библиотеки MySQL (libmysql). Библиотеки различаются способом выделения и освобождения памяти, тем, как память выделяется по кускам во время чтения результатов из MySQL, существующими опциями для отладки и разработки, и тем, как результаты, считанные из MySQL, связаны с пользовательскими переменными PHP.

Следующая информация предназначена в качестве введения и обобщения для пользователей, заинтересованых в понимании mysqlnd на уровне C-кода.

Используемые функции для управления памятью

Все операции выделения и освобождения памяти происходят используя PHP-функции, предназначенные для управления памятью. Поэтому, потребление памяти встроенного драйвера MySQL может быть отслежено при помощи вызовов PHP API, таких как memory_get_usage(). Из-за того, что память выделяется и освобождается при помощи системы управления памятью PHP, изменения на уровне операционной системы могут быть видны не мгновенно. Система управления памятью PHP ведет себя как прокси, которая может вызывать задержку в освобождении памяти. Ввиду этого, сравнение использования памяти встроенного драйвера MySQL и клиентской библиотеки MySQL (libmysql) довольно сложно. Клиентская библиотека MySQL (libmysql) использует систему управления памятью операционной системы напрямую, следовательно, эффект на уровне операционной системы может быть виден незамедлительно.

Любое ограничение памяти, установленное в PHP, также влияет на встроенный драйвер MySQL. Это может вызвать ошибки переполнения памяти при извлечении больших массивов данных, которые превышают размер оставшейся памяти, предоставленных РНР. Из-за того, что клиентская библиотека MySQL не использует функций управления памяти PHP, она не подчиняется ограничению памяти, установленному в PHP. При использовании libmysql, в зависимости от модели развертывания, объем памяти, занимаемый PHP-процессом, может вырасти за пределы ограничений, установленных в PHP. В тоже время, PHP-скрипты могут обрабатывать больший объем массивов данных, так как области памяти, выделенные для хранения данных, не находятся под управлением РНР.

Функции системы управления памятью PHP вызываются встроенным драйвером MySQL через легковесную обертку. Среди прочего, обертка делает отладку легче.

Обработка массивов полученных данных

Различные MySQL-сервера и различные клиенткие API различают буферизированные и небуферизированные результаты. Небуферизированные результаты передаются строка за строкой от MySQL к клиенту и клиент читает их по порядку. Буферизированные результаты забираются клиентской библиотекой целиком до передачи их клиенту.

Встроенный драйвер MySQL использует PHP-потоки для сетевого общения с сервером MySQL. Результаты, посланные MySQL-сервером, выбираются из сетевых буферов PHP-потоков в результирующий буфер mysqlnd. Результирующий буфер состоит из zvals. На втором шаге результаты становятся доступными PHP-скрипту. Последняя передача из результирующего буфера в PHP-переменные вызывает потребление памяти и в большинстве случаев оно заметно при использовании буферизированных результатов.

По умолчанию встроенный драйвер MySQL пытается избежать двойного хранения буферного результа в памяти. Результаты хранятся только один раз во внутренних результирующих буферах и их zvals. Когда результаты забираются в РНР-переменные PHP-скриптом, переменные будут ссылаться на внутренние результаты буферов. Результаты запросов к базам данных не копируются и хранятся в памяти только один раз. Достаточно пользователю изменить содержимое переменной, содержащей результаты работы базы данных, как будет выполнен механизм копирования при записи (Copy-On-Write), для того, чтобы избежать изменения ссылающего внутреннего буфера результата. Содержимое буфера не должно быть изменено, так как пользователь может принять решение прочитать результат во второй раз. Механизм копирования при записи реализуется с помощью дополнительного управления списком ссылок и использования стандартных zval счетчиков ссылок. Копирование при записи также должно быть сделано, если пользователь читает данные результата в PHP переменных и освобождает данные результата прежде, чем переменные будут уничтожены.

В общем, этот шаблон работает хорошо для скриптов, которые читают наборы данных единожды и не изменяют переменных, содержащих результаты. Его главный недостаток в накладных расходах памяти, вызванных дополнительным управлением ссылками, причина которого в первую очередь связана с тем, что пользовательские переменные, удерживающие результаты, не могут быть полностью освобождены до того, как система управления ссылками mysqlnd содержит ссылки на них. Встроенный драйвер MySQL удаляет ссылку на на пользовательские переменные когда массив полученных данных освобождается или выполняется механизм копирования при записи. Наблюдатель увидит рост общего потребления памяти пока массив полученных данных не освободится. Используйте статистику, чтобы проверить, скрипт явно произвел освобождение данных результата или же драйвер сделал это неявно и поэтому память используется в течение более долгого времени, чем это необходимо. Статистика также помогает увидеть количество операций копирования при записи.

PHP-скрипт, читающий множество небольших строк в буферизированном массиве данных, использующий код, подобный while ($row = $res->fetch_assoc()) { ... }, может оптимизировать потребление памяти, запросив копии вместо ссылок. Хотя и запрос копий означает хранение тех же результатов в памяти дважды, это позволяет PHP уничтожить копию, содержащую в $row в качестве итерируемого массива данных и перед уничтожением результат устанавливает сам себя. На загруженном сервере оптимизация использования памяти может помочь улучшить общую производительность системы, хотя для отдельного скрипта подход с копией вместо ссылок может быть медленнее в связи с дополнительным выделением памяти и дополнительными операциями копирования в памяти.

Режим копирования может быть включен принудительно, установив mysqlnd.fetch_data_copy=1.

Контроль и отладка

Существует несколько методов отслеживания использования памяти во встроенном драйвере MySQL "mysqlnd". Если цель - получить быстрый высокоуровневый обзор или проверить эффективность PHP-скриптов при работе с памятью, то проверьте статистику, собранную библиотекой. Статистика позволит вам, например, поймать SQL-запрос, который генерирует больше результатов, чем обрабатываются PHP-скриптом.

Журнал отладки может быть сконфигурирован для записи вызовов системы управления памятью. Это помогает увидеть когда память выделяется и освобождается. Однако, размер запрошенных кусков памяти может не быть в списке.

В некоторых последних версиях встроенного драйвера MySQL "mysqlnd" присутствует возможность эмуляции случайных ситуаций нехватки памяти. Эта возможность была задумана для использования только C-разработчиками библиотеки или авторами плагина mysqlnd. Пожалуйста, используйте поиск по исходному коду для соответствующей настройки PHP и для дальнейшей информации. Это возможность является недокументированной и может быть изменена в любое время без дополнительного уведомления.


API для плагинов к встроенному драйверу MySQL

Содержание

  • Сравнение плагинов mysqlnd с MySQL Proxy
  • Получение API плагинов mysqlnd
  • Архитектура плагинов MySQL Native Driver
  • API плагинов mysqlnd
  • Начинаем разработку плагина mysqlnd

API для плагинов к встроенному драйверу MySQL является особенностью встроенного драйвера MySQL (mysqlnd). Плагины mysqlnd работают на уровне между PHP-приложениями и сервером MySQL. Это похоже на работу MySQL Proxy. Плагины mysqlnd могут реализовывать стандартные задачи MySQL Proxy, такие как балансирование нагрузки, мониторинг и оптимизация быстродействия. При этом, вследствие другой архитектуры и месторасположения, плагины mysqlnd не имеют некоторых недочетов MySQL Proxy. Например, нет единой точки точки отказа, не требуется установка отдельного proxy-сервера и нет необходимости в изучении нового языка программирования Lua.

Плагин mysqlnd можно рассматривать как расширение mysqlnd. Плагины могут перехватывать большую часть функций mysqlnd. Эти функции вызываются расширениями PHP, такими как ext/mysql, ext/mysqli и PDO_MYSQL. В конечном счете, плагины mysqlnd могут перехватывать все запросы, сделанные этими расширениями из клиентского приложения.

Внутренние вызовы функций mysqlnd также могут быть перехвачены или заменены. Ограничения по работе с внутренней таблицей функций mysqlnd отсутствуют. Возможно настроить все таким образом, что при вызове определенных функций mysqlnd из расширений, использующих mysqlnd, этот вызов будет перенаправляться в соответствующую функцию плагина mysqlnd. Возможность манипулировать внутренней таблицей функций mysqlnd дает плагинам максимум гибкости.

Плагины mysqlnd фактически являются расширениями PHP, написанными на C и использующими API для плагинов mysqlnd (встроенном в драйвер mysqlnd). Плагины могут быть полностью прозрачными для PHP-приложений. Изменять приложение не потребуется, поскольку плагины работают на другом уровне. Плагины mysqlnd можно рассматривать как работающие на уровень ниже mysqlnd.

Нижеуказанный список показывает несколько возможных вариантов плагинов mysqlnd.

  • Балансировка нагрузки

    • Разделение чтения и записи. Примером является расширение PECL/mysqlnd_ms (Master Slave). Это расширение разделяет запросы на чтение и запись для настройки репликации.

    • Отказоустойчивость

    • Равномерная загрузка, запросы на наименее загруженный сервер

  • Мониторинг

    • Логирование запросов

    • Анализ запросов

    • Аудит запросов. Примером является расширение PECL/mysqlnd_sip (SQL Injection Protection, защита от SQL-инъекций). Это расширение анализирует запросы и выполняет только подходящие под набор правил.

  • Производительность.

    • Кеширование. Примером является расширение PECL/mysqlnd_qc (Query Cache, кеширование запросов).

    • Ограничение ресурсов выделяемых запросу

    • Шардинг. Примером является расширение PECL/mysqlnd_mc (Multi Connect). Это расширение пытается разбить запрос SELECT на n частей, используя SELECT ... LIMIT part_1, SELECT LIMIT part_n. Оно отправляет запросы на отдельные MySQL-сервера и собирает результат на клиенте.

Доступные плагины к встроенному драйверу MySQL

Существует несколько уже доступных плагинов mysqlnd. Список включает:

  • PECL/mysqlnd_mc - Multi Connect plugin.

  • PECL/mysqlnd_ms - Master Slave plugin.

  • PECL/mysqlnd_qc - Query Cache (кеширование запросов) plugin.

  • PECL/mysqlnd_pscache - Prepared Statement Handle Cache plugin (обработка кеширования подготовленных запросов)

  • PECL/mysqlnd_sip - SQL Injection Protection plugin (защита от SQL-инъекций)

  • PECL/mysqlnd_uh - User Handler plugin (обработка пользователей)


Сравнение плагинов mysqlnd с MySQL Proxy

Плагины mysqlnd и MySQL Proxy - это разные технологии, использующие разные подходы. Оба варианта являются подходящими инструментами для решения разнообразных стандартных задач, таких как балансировка нагрузки, мониторинг и улучшение производительности. Важным отличием является то, что MySQL Proxy работает со всеми клиентами MySQL, тогда как плагины mysqlnd - только для PHP-приложений.

Как расширение PHP, плагин mysqlnd устанавливается на сервере приложений PHP вместе с остальным PHP. MySQL Proxy может быть запущен на сервере приложений PHP или же быть установлен на отдельной машине для поддержки множественных серверов приложений PHP.

Установка MySQL Proxy на сервере приложений имеет два преимущества:

  1. Отсутствие единой точки отказа

  2. Легкость в масштабировании (горизонтальном или же клиентском)

MySQL Proxy (а также плагины mysqlnd) могут легко решать проблемы, ради решения которых иначе понадобились бы изменения в существующих приложениях.

Тем не менее, у MySQL Proxy есть некоторые недостатки:

  • MySQL Proxy - это новый элемент и технология, которую потребуется изучить и установить

  • MySQL Proxy требует знания скриптового языка Lua

MySQL Proxy может быть изменен с помощью C и Lua. Lua является предпочтительным скриптовым языком для MySQL Proxy. Для большинства экспертов PHP, Lua является новым языком, который надо изучать. Плагин mysqlnd может быть написан на C. Также можно написать плагин на PHP, используя » PECL/mysqlnd_uh.

MySQL Proxy работает как демон - фоновый процесс. MySQL Proxy может вспомнить ранее принятые решения, так как все состояние может быть сохранено. Однако плагины mysqlnd привязаны к жизненному циклу PHP, базирующемуся на запросах. Также MySQL Proxy может разделять единожды полученный результат между разными серверами приложений. Плагины mysqlnd для решения этой задачи должны использовать какое нибудь постоянное хранилище, для сохранения результатов между запросами. Например для этого может быть использован другой демон, такой как Memcache. Так что в этом случае MySQL Proxy работает явно лучше.

MySQL Proxy работает поверх сетевых протоколов. С помощью MySQL Proxy вы можете разобрать и подвергнуть инженерному анализу протокол MySQL Client Server. Что либо поменять можно только манипулируя протоколом обмена. Если протокол вдруг поменяется (что случается крайне редко), скрипты MySQL Proxy будет необходимо переписывать.

Плагины Mysqlnd работают поверх C API, который дублирует клиент libmysqlclient и Connector/C API. Это C API по сути обычная обертка вокруг протокола MySQL Client Server. Вы можете перехватывать все вызовы C API. PHP использует C API, фактически вы можете перехватывать вообще все вызовы PHP, без необходимости програмировать на уровне протокола обмена.

Mysqlnd реализует протокол обмена. Плагины, таким образом, перехватывать, исследовать, менять и даже целиком заменять коммуникационный протокол. Хотя обычно ничего этого не требуется.

Плагины позволяют вам использовать два уровня (C API и протокол обмена), в этом они гораздо гибче, чем MySQL Proxy. Если плагин mysqlnd реализован с использованием C API, изменения протокола обмена не потребуют изменения плагина.


Получение API плагинов mysqlnd

API плагинов mysqlnd является частью стандартного расширения ext/mysqlnd. API плагинов mysqlnd начали разрабатывать в декабре 2009 года. Он разрабатывался как часть репозитороия исходных кодов PHP и, соответственно, доступен через публичный репозиторий Git либо через загрузку снапшота исходных кодов.

В следующей таблице указаны соответствия версий PHP и входящего в него mysqlnd.

Версии mysqlnd, поставляющиеся с PHP
Версия PHP | Версия MySQL Native Driver
5.3.0 | 5.0.5
5.3.1 | 5.0.5
5.3.2 | 5.0.7
5.3.3 | 5.0.7
5.3.4 | 5.0.7

Разработчики плагинов могут узнать версию mysqlnd путем доступа к MYSQLND_VERSION, являющейся строкой формата "mysqlnd 5.0.7-dev - 091210 - $Revision: 300535", или через MYSQLND_VERSION_ID, являющейся числовым представлением версии, например 50007. Расчитать версию из этого числа можно так:

Таблица расчета MYSQLND_VERSION_ID
Версия (часть) | Пример
Major*10000 | 5*10000 = 50000
Minor*100 | 0*100 = 0
Patch | 7 = 7
MYSQLND_VERSION_ID | 50007

В процессе разработки, разработчики должны отслеживать версию mysqlnd на предмет совместимости и версионного тестирования, так как версии mysqlndимеют свойство меняться и это может случиться в процессе работы над плагином.


Архитектура плагинов MySQL Native Driver

В этой секции рассмотрена архитектура плагинов mysqlnd.

Поверхностный обзор MySQL Native Driver

Перед началом разработки плагинов mysqlnd, полезно ознакомиться, как сам по себе организован mysqlnd. Mysqlnd состоит из следующих модулей:

Организационная схема mysqlnd, помодульно
Модули статистики | mysqlnd_statistics.c
СОединение | mysqlnd.c
Результирующий набор | mysqlnd_result.c
Метаданные результирующего набора | mysqlnd_result_meta.c
Оператор | mysqlnd_ps.c
Сеть | mysqlnd_net.c
Протокол обмена | mysqlnd_wireprotocol.c

Объектно ориентированная парадигма C

На уровне кода, mysqlnd использует паттерн C для реализации объектно ориентированного подхода.

В C объекты описывают используя struct. Члены структуры являются свойствами объекта. Члены структуры, указывающие на функции, являются методами.

В отличии от таких языков как C++ или Java, в C нет фиксированных правил наследования. Однако существуют некоторые договоренности, которым необходимо следовать, но это мы обсудим позже.

Жизненный цикл PHP

При рассмотрении жизненного цикла PHP существует два основных цикла:

  • Цикл старта и остановки движка PHP

  • Цикл обработки запроса

При старте движка PHP, первым делом вызывается функция инициализации модулей (MINIT) для каждого зарегистрированного расширения. Это позволяет каждому расширению установить переменные и выделить ресурсы, которые будут задействованы все время жизни процесса движка PHP. Когда движек PHP выключается, он вызывает функцию остановки модулей (MSHUTDOWN) для каждого расширения.

На протяжении жизненного цикла движка PHP, он принимает некоторое количество запросов. Каждый запрос порождает новый жизненный цикл. На каждый запрос, движек PHP вызывает функцию инициализации для каждого расширения. Расширение может предпринять выставление переменных и выделение ресурсов, требуемых для обслуживания запроса. По окончанию жизни запроса, движек вызывает функцию остановки запроса (RSHUTDOWN) для каждого расштрения, что позволяет им произвести необходимые чистки.

Как работает плагин

Плагин mysqlnd работает перехватывая вызовы расширений, использующих mysqlnd, к mysqlnd. Это достигается подменой таблицы функций mysqlnd на созданную плагином.

Следующий код демонстрирует замену таблицы функций mysqlnd:

/* хранилище оригинальной таблицы */
struct st_mysqlnd_conn_methods org_methods;

void minit_register_hooks(TSRMLS_D) {
  /* активная таблица функций */
  struct st_mysqlnd_conn_methods * current_methods
    = mysqlnd_conn_get_methods();

  /* бэкап оригинальной таблицы */
  memcpy(&org_methods, current_methods,
    sizeof(struct st_mysqlnd_conn_methods);

  /* установка новых методов */
  current_methods->query = MYSQLND_METHOD(my_conn_class, query);
}

Манипуляция таблицей функций соединения необходимо заниматься на этапе инициализации модуля (MINIT). Таблица функций - это глобальный разделяемый ресурс. В многопоточном окружении, со сборкой TSRM, манипуляция глобальным разделяемым ресурсом на этапе обработки запроса приведет к конфликтам.

Замечание:

Не используйте какую либо логику связанную с фиксированным размером при манипуляции с таблицей функций mysqlnd. Всегда добавляйте новые методы в конец таблицы, так как сама таблица может в будущем в любой момент измениться.

Вызов родительских методов

Если записи оригинальной таблицы функций были сохранены, то всегда остается возможность вызвать оригинальный метод - родительский.

В некоторых случаях, например для Connection::stmt_init(), жизненно важно сначала вызвать родительский метод, и только потом делать что либо в новом методе.

MYSQLND_METHOD(my_conn_class, query)(MYSQLND *conn,
  const char *query, unsigned int query_len TSRMLS_DC) {

  php_printf("my_conn_class::query(query = %s)\n", query);

  query = "SELECT 'query rewritten' FROM DUAL";
  query_len = strlen(query);

  return org_methods.query(conn, query, query_len); /* возврат с вызовом родителя */
}

Расширение свойств

Объекты mysqlnd представлены как C struct. Невозможно добавить члена в C struct во время исполнения. Пользователи объектов mysqlnd не могут просто добавить свойства объекту.

Произвольные данные (свойства) могут быть добавлены к объекту mysqlnd с использованием соответствующей функции из семейства mysqlnd_plugin_get_plugin_<object>_data(). При размещении объекта mysqlnd резервируется место в конце объекта для удержания void * указателя на произвольные данные. mysqlnd резервирует место для одного void * указателя на плагин.

В следующей таблице показано, как вычислить положение указателя для конкретного плагина:

Расчет указателя для mysqlnd
Адрес памяти | Содержимое
0 | Начало объекта mysqlnd (C struct)
n | Конец объекта mysqlnd (C struct)
n + (m x sizeof(void*)) | void* для данных объекта плагина номер m

Если вы планируете делать подкласс от одного из конструкторов объекта mysqlnd, которые разрешены, имейте это в виду!

Следующий код демонстрирует расширение свойств:

/* Любые данные, которые мы хотим добавить */
typedef struct my_conn_properties {
  unsigned long query_counter;
} MY_CONN_PROPERTIES;

/* идентификатор плагина */
unsigned int my_plugin_id;

void minit_register_hooks(TSRMLS_D) {
  /* получаем уникальный идентификатор плагина */
  my_plugin_id = mysqlnd_plugin_register();
  /* snip - see Extending Connection: methods */
}

static MY_CONN_PROPERTIES** get_conn_properties(const MYSQLND *conn TSRMLS_DC) {
  MY_CONN_PROPERTIES** props;
  props = (MY_CONN_PROPERTIES**)mysqlnd_plugin_get_plugin_connection_data(
    conn, my_plugin_id);
  if (!props || !(*props)) {
    *props = mnd_pecalloc(1, sizeof(MY_CONN_PROPERTIES), conn->persistent);
    (*props)->query_counter = 0;
  }
  return props;
}

Разработчик плагин отвечает за управление памятью данных плагина.

Рекомендуется использовать управление памятью mysqlnd для данных плагина. Эти функции именуются используя такие соглашения: mnd_*loc(). Управление памятью mysqlnd имеет ряд полезных свойств, таких как использование отладочного модуля управления памятью в неотладочных сборках.

Когда и как создавать подкласс
 | Когда создавать подкласс? | Каждый экземпляр имеет свою собственную таблицу функций? | Как создавать подкласс?
Срединение (MYSQLND) | MINIT | Нет | mysqlnd_conn_get_methods()
Результирующий набор (MYSQLND_RES) | MINIT or later | Да | mysqlnd_result_get_methods() или меодом объекта, манипулирующим таблицей функций
Результирующий набор (MYSQLND_RES_METADATA) | MINIT | Нет | mysqlnd_result_metadata_get_methods()
Оператор (MYSQLND_STMT) | MINIT | Нет | mysqlnd_stmt_get_methods()
Сеть (MYSQLND_NET) | MINIT или позже | Да | mysqlnd_net_get_methods() или меодом объекта, манипулирующим таблицей функций
Протокол обмена (MYSQLND_PROTOCOL) | MINIT или позже | Да | mysqlnd_protocol_get_methods() или меодом объекта, манипулирующим таблицей функций

Вы не должны манипулировать таблицей функций после MINIT, если это прямо не разрешено в таблице выше.

Некоторые классы содержат указатель на таблицу функций методов. Все экземпляры подобных классов должны делить одну и ту же таблицу функций. Для того, что бы избежать хаоса, особенно в многопоточном окружении, управлять такими таблицами функций стоит только во время MINIT.

Прочие классы используют копии глобально разделенных таблиц функций. Таблица функций создается одновременно с объектом. Каждый объект использует свою таблицу. Это дает вам две возможности: вы можете управлять таблицей функций по умолчанию для объекта во время MINIT, а также вы можете изменять методы объекта не затрагивая другие экземпляры этого же класса.

Преимущество разделяемой таблицы функций в производительности, так как нет нужды копировать таблицу функций отдельно для каждого объекта.

Статус конструктора
Размещение, создание, сброс | Может быть изменено? | Вызывающий
Connection (MYSQLND) | mysqlnd_init() | Нет | mysqlnd_connect()
Результирующий набор (MYSQLND_RES)

Размещение:

  • Connection::result_init()

Сброс и повторная инициализация во время:

  • Result::use_result()

  • Result::store_result

Да, но вызовите родителя!

  • Connection::list_fields()

  • Statement::get_result()

  • Statement::prepare() (Только метаданные)

  • Statement::resultMetaData()

Метаданные результирующего набора (MYSQLND_RES_METADATA) | Connection::result_meta_init() | Да, но вызовите родителя! | Result::read_result_metadata()
Оператор (MYSQLND_STMT) | Connection::stmt_init() | Да, но вызовите родителя!! | Connection::stmt_init()
Сеть (MYSQLND_NET) | mysqlnd_net_init() | Нет | Connection::init()
Протокол обмена (MYSQLND_PROTOCOL) | mysqlnd_protocol_init() | Нет | Connection::init()

Настоятельно рекомендуется не заменять конструктор целиком Конструкторы производят выделение памяти. Выделение памяти жизненно необходимо для API плагинов mysqlnd и для логики объекта mysqlnd. Если вам не страшны предупреждения и хотите сильно поменять конструктор, то хотя бы вызовите родительский конструктор прежде, чем что либо делать.

Несмотря на все предупреждения, это может быть полезным для конструктора подкласса. Конструкторы - отличное место для изменения таблицы функций для объектов, не использующих разделенную таблицу, таких как результирующий набор, сеть, протокол обмена.

Статус уничтожения
 | Производный метод должен вызвать родительский? | Деструктор
Соединение | да, после выполнения метода | free_contents(), end_psession()
Результирующий набор | да, после выполнения метода | free_result()
Метаданные результирующего набора | да, после выполнения метода | free()
Оператор | да, после выполнения метода | dtor(), free_stmt_content()
Сеть | да, после выполнения метода | free()
Протокол обмена | да, после выполнения метода | free()

Деструкторы являются подходящим местом, чтобы освободить ресуры занимаемые свойствами, mysqlnd_plugin_get_plugin_<object>_data().

Перечисленные деструкторы могут быть не совпадать с актуальными методами mysqlnd для очистки самого объекта. Однако они являются самым лучшим местом, куда вы можете вклиниться для очистки данных своего плагина. Так же как и с конструкторами, вы можете полностью переопределить эти методы, но делать это не рекомендуется. Если вам необходимо вставить в каждый из перечисленных методов очистку данных своего плагина, то необходимо обеспечить запуск родительских методов mysqlnd.

Рекомендованный метод для плагинов - выполнить код очистки данных плагина и сразу же после этого вызывать родительский метод.

Предостережение

В связи с ошибкой в PHP с 5.3.0 по 5.3.3, плагины не ассоциировали свои данные с постоянными соединениями. Это происходило потому, что ext/mysql и ext/mysqli не вызывали все необходимые методы mysqlnd end_psession() и, теоретически, это могло приводить к утечкам памяти в плагинах. Эта ошибка исправлена в PHP 5.3.4.


API плагинов mysqlnd

API плагинов mysqlnd предоставляет следующие функции:

  • mysqlnd_plugin_register()

  • mysqlnd_plugin_count()

  • mysqlnd_plugin_get_plugin_connection_data()

  • mysqlnd_plugin_get_plugin_result_data()

  • mysqlnd_plugin_get_plugin_stmt_data()

  • mysqlnd_plugin_get_plugin_net_data()

  • mysqlnd_plugin_get_plugin_protocol_data()

  • mysqlnd_conn_get_methods()

  • mysqlnd_result_get_methods()

  • mysqlnd_result_meta_get_methods()

  • mysqlnd_stmt_get_methods()

  • mysqlnd_net_get_methods()

  • mysqlnd_protocol_get_methods()

Нет стандартных определений того, что такое плагин и как он работает.

Часто встречающиеся в плагинах компоненты:

  • Менеджер плагина

  • API плагина

  • Сервисы приложения (или модули)

  • API сервисов приложения (или API модулей)

Концепция плагина mysqlnd эксплуатирует эту функциональность и, кроме того, радует нас открытой архитектурой.

Нет запретов

Плагин имеет полный доступ ко всем внутренностям mysqlnd. Нет ограничений или запретов, связанных с безопасностью. Все что угодно можно переписать для реализации дружественных или враждебных алгоритмов, так что рекомендуется ставить плагины только из доверенных источников.

Как обсуждалось выше, плагины могут свободно использовать указатели. Эти указатели ничем не ограничены и могут указывать на данные другого плагина. Простейшая арифметическая операция позволит получить доступ к данным другого плагина.

Рекомендуется писать сотрудничающие плагины, которые могут работать сообща с другими плагинами и всегда вызывать родительские методы. Плагины никогда не должны вести себя враждебно к самому mysqlnd.

Проблемы: пример сотрудничества и построения цепочки
Расширение | Указатель mysqlnd.query() | Стек вызова, если вызывается родитель
ext/mysqlnd | mysqlnd.query() | mysqlnd.query
ext/mysqlnd_cache mysqlnd_cache.query()

  1. mysqlnd_cache.query()

  2. mysqlnd.query

ext/mysqlnd_monitor mysqlnd_monitor.query()

  1. mysqlnd_monitor.query()

  2. mysqlnd_cache.query()

  3. mysqlnd.query

В этом сценарии загружены плагины кеша(ext/mysqlnd_cache) и мониторинга (ext/mysqlnd_monitor). Оба наследуют класс Connection::query(). регистрация плагинов происходит на этапе MINIT в соответствии с описанной выше логикой. PHP, по умолчанию, вызывает расширения в алфавитном порядке. Плагины не знают друг о друге и не накладывают каких либо зависимостей.

По умолчанию, плагины вызывают родительский метод query из своей, переопределенной, версии этого метода.

Резюме по расширению PHP

Повторение пройденного материала на примере поведения плагина ext/mysqlnd_plugin, использующего API плагинов mysqlnd для PHP:

  • Любое приложение PHP, использующее MySQL пытается установить соединение по адресу 192.168.2.29

  • Приложение использует одно из следующих расширений ext/mysql, ext/mysqli или PDO_MYSQL. Все три расширения используют mysqlnd для соединения с 192.168.2.29.

  • Mysqlnd вызывает метод соединения, который наследуется плагином ext/mysqlnd_plugin.

  • ext/mysqlnd_plugin вызывает зарегистрированный пользователем метод proxy::connect().

  • Этот метод подменяет IP адрес соединения с 192.168.2.29 на 127.0.0.1 и возвращает установленное parent::connect() соединение.

  • ext/mysqlnd_plugin делает то же самое, что и parent::connect(127.0.0.1) вызывая оригинальный метод mysqlnd для соединения.

  • ext/mysqlnd устанавливает соединение и возвращает его ext/mysqlnd_plugin. ext/mysqlnd_plugin, в свою очередь, передает его дальше.

  • Без разницы, какое расширение было использовано, оно все равно получит соединение к 127.0.0.1. После этого, расширение возвращает это соединение приложению. Круг замкнулся.


Начинаем разработку плагина mysqlnd

Важно помнить, что плагин mysqlnd сам по себе является расширением PHP.

Следующий пример показывает базовую структуру функции MINIT, использующуюся в типичном плагине mysqlnd:

/* my_php_mysqlnd_plugin.c */

 static PHP_MINIT_FUNCTION(mysqlnd_plugin) {
  /* глобальные переменные, ini-настройки, ресурсы, классы */

  /* регистрируем плагин mysqlnd */
  mysqlnd_plugin_id = mysqlnd_plugin_register();

  conn_m = mysqlnd_get_conn_methods();
  memcpy(org_conn_m, conn_m,
    sizeof(struct st_mysqlnd_conn_methods));

  conn_m->query = MYSQLND_METHOD(mysqlnd_plugin_conn, query);
  conn_m->connect = MYSQLND_METHOD(mysqlnd_plugin_conn, connect);
}

/* my_mysqlnd_plugin.c */

 enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, query)(/* ... */) {
  /* ... */
}
enum_func_status MYSQLND_METHOD(mysqlnd_plugin_conn, connect)(/* ... */) {
  /* ... */
}

Анализ задачи: от C до пользовательского пространства

 class proxy extends mysqlnd_plugin_connection {
  public function connect($host, ...) { .. }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

Процесс:

  1. PHP: пользователь регистрирует функцию обратного вызова плагина

  2. PHP: пользователь вызывает PHP MySQL API для соединения с MySQL

  3. C: ext/*mysql* вызывает метод mysqlnd

  4. C: mysqlnd обрывается в ext/mysqlnd_plugin

  5. C: ext/mysqlnd_plugin

    1. Вызывает пользовательскую функцию обратного вызова

    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("Connecting to host = '%s'\n", $host);
    debug_print_backtrace();
    return parent::connect($conn);
  }

  public function query($conn, $query) {
    /* после внедрения */
    $ret = parent::query($conn, $query);
    printf("Query = '%s'\n", $query);
    return $ret;
  }
}
mysqlnd_plugin_set_conn_proxy(new proxy());

Пользователи PHP должны иметь возможность вызывать родительские реализации переопределенных методов.

В результате наследования возможно "уточнить" только выбранные методы и вы можете выбрать, когда выполнять ваш код, до или после родительского.

Встроенный класс: mysqlnd_plugin_connection::connect()

/*  my_mysqlnd_plugin_classes.c */

 PHP_METHOD("mysqlnd_plugin_connection", connect) {
  /* ... упрощенный! ... */
  zval* mysqlnd_rsrc;
  MYSQLND* conn;
  char* host; int host_len;
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs",
    &mysqlnd_rsrc, &host, &host_len) == FAILURE) {
    RETURN_NULL();
  }
  ZEND_FETCH_RESOURCE(conn, MYSQLND* conn, &mysqlnd_rsrc, -1,
    "Mysqlnd Connection", le_mysqlnd_plugin_conn);
  if (PASS == org_methods.connect(conn, host, /* simplified! */ TSRMLS_CC))
    RETVAL_TRUE;
  else
    RETVAL_FALSE;
}


Плагин репликации и балансировки нагрузки для mysqlnd

  • Введение
  • Quickstart and Examples
    • Setup
    • Running statements
    • Connection state
    • SQL Hints
    • Local transactions
    • XA/Distributed Transactions
    • Service level and consistency
    • Global transaction IDs
    • Cache integration
    • Failover
    • Partitioning and Sharding
    • MySQL Fabric
  • Concepts
    • Architecture
    • Connection pooling and switching
    • Local transaction handling
    • Error handling
    • Transient errors
    • Failover
    • Load balancing
    • Read-write splitting
    • Filter
    • Service level and consistency
    • Global transaction IDs
    • Cache integration
    • Supported clusters
    • XA/Distributed transactions
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Plugin configuration file (>=1.1.x)
  • Предопределенные константы
  • Mysqlnd_ms Функции
    • mysqlnd_ms_dump_servers — Returns a list of currently configured servers
    • mysqlnd_ms_fabric_select_global — Switch to global sharding server for a given table
    • mysqlnd_ms_fabric_select_shard — Switch to shard
    • mysqlnd_ms_get_last_gtid — Returns the latest global transaction ID
    • mysqlnd_ms_get_last_used_connection — Returns an array which describes the last used connection
    • mysqlnd_ms_get_stats — Returns query distribution and connection statistics
    • mysqlnd_ms_match_wild — Finds whether a table name matches a wildcard pattern or not
    • mysqlnd_ms_query_is_select — Find whether to send the query to the master, the slave or the last used MySQL server
    • mysqlnd_ms_set_qos — Sets the quality of service needed from the cluster
    • mysqlnd_ms_set_user_pick_server — Sets a callback for user-defined read/write splitting
    • mysqlnd_ms_xa_begin — Starts a distributed/XA transaction among MySQL servers
    • mysqlnd_ms_xa_commit — Commits a distributed/XA transaction among MySQL servers
    • mysqlnd_ms_xa_gc — Garbage collects unfinished XA transactions after severe errors
    • mysqlnd_ms_xa_rollback — Rolls back a distributed/XA transaction among MySQL servers
  • Change History
    • PECL/mysqlnd_ms 1.6 series
    • PECL/mysqlnd_ms 1.5 series
    • PECL/mysqlnd_ms 1.4 series
    • PECL/mysqlnd_ms 1.3 series
    • PECL/mysqlnd_ms 1.2 series
    • PECL/mysqlnd_ms 1.1 series
    • PECL/mysqlnd_ms 1.0 series


Введение

Плагин репликации и балансировки нагрузки (mysqlnd_ms) для mysqlnd позволяет легко добавить поддержку репликации в MySQL ко всем PHP MySQL расширениям, которые используют mysqlnd.

Начиная с версии PHP 5.3.3, встроенный драйвер MySQL (mysqlnd) имеет возможность написания внутренних плагинов, ипользуя API языка C. C-плагины, такие как плагин репликации и балансировки нагрузки, могут расширить функциональность mysqlnd.

Встроенный драйвер MySQL (mysqlnd) - это C-библиотека, которая поставляется вместе с PHP, начиная с версии 5.3.0. Она служит полноценной заменой для клиентской библиотеки MySQL (libmysqlclient). Использование библиотеки mysqlnd имеет несколько преимуществ: не нужно дополнительных библиотек, так как она идет в комплекте с PHP, она под лицензией PHP, ниже потребление памяти в определенных случаях, и она содержит новую функциональность, такую как асинхронные запросы.

Плагины mysqlnd, такие как mysqlnd_ms, в большей части работают прозрачно для пользователя. Плагины репликации и балансировки нагрузки поддерживают все приложения на PHP и все MySQL-раcширения для PHP. Они не изменяют существующее API. Поэтому это может быть легко использовано с существующими PHP-приложениями.

Ключевые особенности

Ключевые особенности плагина PECL/mysqlnd_ms следующие:

  • Прозрачность и, следовательно, легкость в использовании.

    • Поддержка всех MySQL-раcширений для PHP.

    • Поддержка SSL.

    • Совместимое API.

    • Требуется небольшое или вовсе не требуется изменение приложения, в зависимости от задач.

    • Ленивые соединения: соединение к master- и slave-серверу не открываются до непосредственного выполнения SQL-запроса.

    • Дополнительно: автоматическая использование master-сервера после первой записи в веб-запрос, для того, чтобы снизить возможное влияние задержки репликации.

  • Может быть использовано совместно с любыми кластерными решениями MySQL.

    • MySQL-репликация: разделение чтения и записи выполняется с помощью плагина. Это основное назначение плагина.

    • Кластер MySQL: разделение чтения и записи может быть отключено. Возможна версия конфигурации с многими master-серверами.

    • Сторонние решения: плагин оптимизирован для MySQL-репликации, но может быть использован с другими типами решений для кластеризации MySQL.

  • Возможности стратегии разделения чтения и записи.

    • Автоматическое определение SELECT-запросов.

    • Поддержка подсказок SQL (SQL hints) для переопределения действий по-умолчанию.

    • Возможно определение пользователем.

    • Может быть отключено для, например, случая использования синхронных кластеров, таких как MySQL-кластер.

  • Возможности стратегии балансировки нагрузки.

    • Round-robin-алгоритм: позволяет выбрать slave-сервер на основе Round-robin-алгоритма для каждого запроса на slave-сервер.

    • Алгоритм случайности: выбирает случайный slave-сервер для каждого slave-запроса.

    • Алгоритм случайности на запрос: выбирает slave-сервер для выполнения всех запросов с течение одного web-запроса.

    • Возможно определение пользователем: в приложении можно зарегистрировать callback-функцию для mysqlnd_ms.

    • PHP 5.4.0 или выше: транзакции знают об использовании API-вызовов только для управления транзакциями.

    • Взвешенная балансировка нагрузки: сервера могут быть назначены с разными приоритетами, например, можно задать перенаправление большего количества запросов к более мощному серверу, чем к другому менее мощному. Или же задать желаемый сервер, находящийся недалеко, для уменьшения задержки.

  • Глобальный идентификатор транзакции.

    • Эмуляция на стороне клиента. Осуществляет ручной перенос master-сервера и повышение slave-сервера легче с асинронными кластерами, такими как MySQL Replication.

    • Поддержка встроенных глобальных идентификаторов транзакций для MySQL 5.6.5 или выше.

    • Поддержка использования идентификаторов транзакции для идентификации текущих асинхронных slave-серверов для чтения в случае, когда требуется сессионная согласованность. Пожалуйста, обратите внимание на ограничения, упоминаемые в руководстве.

    • Регулирование: в дополнение, плагин может ожидать "синхронное" состояние slave-сервера перед продолжением.

  • Обслуживание и последовательность уровней.

    • Приложения могут запросить сессионную и сильную согласованность, а также согласованность в конечном счете для соединений. Поиск оответствущих узлов кластера будет выполнен автоматически.

    • Доступ к slave-серверам в MySQL-репликации с согласованностью в конечном счете может быть заменен на доступ к быстрому локальному кэшу для уменьшения загрузки сервера.

  • Партиционирование и шардинг.

    • Сервера в кластере репликации могут быть организованы в группы. Подсказки SQL могут быть использованы для ручного направления запросов к определенной группе. Группировка может быть использована для секционирования (шардинга) данных или же для решения проблемы горячих точек с обновлениями.

    • Фильтры MySQL-репликации поддерживаются через фильтр таблицы.

  • MySQL-фабрика

    • Экспериментальная функция для поддержки MySQL-фабрики также включена.

Ограничения

Встроенный механизм разграничения чтения и записи очень простой. Каждый запрос, начинающийся с ключевого слова SELECT, рассматривается как читающий запрос и будет отправлен на slave-сервер. Все другие запросы (такие как SHOW) рассматриваются как записывающие запросы и будут посланы к master-серверу MySQL. Этот встроенный механизм может быть переопределен, используя подсказки SQL (SQL hints) или пользовательские callback-функции.

Механизм разграничения чтения и записи не знает об мульти-запросах. Мульти-запросы рассматриваются как один запрос. Решение о перенаправлении запроса основано на начале запроса. Например, при использовании mysqli_multi_query() для выполнения мульти-запроса SELECT id FROM test ; INSERT INTO test(id) VALUES (1), запрос будет перенаправлен к slave-серверу из-за того, что он начинается с ключевого слова SELECT. INSERT-запрос, который является частью мульти-запроса, не будет перенаправлен к master-серверу.

Замечание:

Приложения должны быть осведомлены о последствиях переключения соединений, которые выполняются с целью балансировки. Пожалуйста, обратитесь к документации за информацией об объединении и переключении соединений, обработки транзакций, отказоустойчивости при балансировки нагрузки и механизме разграничения чтения и записи.

Номенклатура

Сокращение mysqlnd_ms означает mysqlnd master slave plugin. Над названием особо не задумывались и он было выбрано быстро. В самом начале разработчики не рассчитывали продолжать дальнейшее использование кода.


Quickstart and Examples

Содержание

  • Setup
  • Running statements
  • Connection state
  • SQL Hints
  • Local transactions
  • XA/Distributed Transactions
  • Service level and consistency
  • Global transaction IDs
  • Cache integration
  • Failover
  • Partitioning and Sharding
  • MySQL Fabric

The mysqlnd replication load balancing plugin is easy to use. This quickstart will demo typical use-cases, and provide practical advice on getting started.

It is strongly recommended to read the reference sections in addition to the quickstart. The quickstart tries to avoid discussing theoretical concepts and limitations. Instead, it will link to the reference sections. It is safe to begin with the quickstart. However, before using the plugin in mission critical environments we urge you to read additionally the background information from the reference sections.

The focus is on using PECL mysqlnd_ms for work with an asynchronous MySQL cluster, namely MySQL replication. Generally speaking an asynchronous cluster is more difficult to use than a synchronous one. Thus, users of, for example, MySQL Cluster will find more information than needed.


Setup

The plugin is implemented as a PHP extension. See also the installation instructions to install the » PECL/mysqlnd_ms extension.

Compile or configure the PHP MySQL extension (API) (mysqli, PDO_MYSQL, mysql) that you plan to use with support for the mysqlnd library. PECL/mysqlnd_ms is a plugin for the mysqlnd library. To use the plugin with any of the PHP MySQL extensions, the extension has to use the mysqlnd library.

Then, load the extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_ms.enable.

Пример #1 Enabling the plugin (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini

The plugin uses its own configuration file. Use the PHP configuration directive mysqlnd_ms.config_file to set the full file path to the plugin-specific configuration file. This file must be readable by PHP (e.g., the web server user). Please note, the configuration directive mysqlnd_ms.config_file superseeds mysqlnd_ms.ini_file since 1.4.0. It is a common pitfall to use the old, no longer available configuration directive.

Create a plugin-specific configuration file. Save the file to the path set by the PHP configuration directive mysqlnd_ms.config_file.

The plugins configuration file is JSON based. It is divided into one or more sections. Each section has a name, for example, myapp. Every section makes its own set of configuration settings.

A section must, at a minimum, list the MySQL replication master server, and set a list of slaves. The plugin supports using only one master server per section. Multi-master MySQL replication setups are not yet fully supported. Use the configuration setting master to set the hostname, and the port or socket of the MySQL master server. MySQL slave servers are configured using the slave keyword.

Пример #2 Minimal plugin-specific configuration file (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": [

        ]
    }
}

Configuring a MySQL slave server list is required, although it may contain an empty list. It is recommended to always configure at least one slave server.

Server lists can use anonymous or non-anonymous syntax. Non-anonymous lists include alias names for the servers, such as master_0 for the master in the above example. The quickstart uses the more verbose non-anonymous syntax.

Пример #3 Recommended minimal plugin-specific config (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

If there are at least two servers in total, the plugin can start to load balance and switch connections. Switching connections is not always transparent and can cause issues in certain cases. The reference sections about connection pooling and switching, transaction handling, fail over load balancing and read-write splitting all provide more details. And potential pitfalls are described later in this guide.

It is the responsibility of the application to handle potential issues caused by connection switches, by configuring a master with at least one slave server, which allows switching to work therefore related problems can be found.

The MySQL master and MySQL slave servers, which you configure, do not need to be part of MySQL replication setup. For testing purpose you can use single MySQL server and make it known to the plugin as a master and slave server as shown below. This could help you to detect many potential issues with connection switches. However, such a setup will not be prone to the issues caused by replication lag.

Пример #4 Using one server as a master and as a slave (testing only!)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

The plugin attempts to notify you of invalid configurations. Since 1.5.0 it will throw a warning during PHP startup if the configuration file cannot be read, is empty or parsing the JSON failed. Depending on your PHP settings those errors may appear in some log files only. Further validation is done when a connection is to be established and the configuration file is searched for valid sections. Setting mysqlnd_ms.force_config_usage may help debugging a faulty setup. Please, see also configuration file debugging notes.


Running statements

The plugin can be used with any PHP MySQL extension (mysqli, mysql, and PDO_MYSQL) that is compiled to use the mysqlnd library. PECL/mysqlnd_ms plugs into the mysqlnd library. It does not change the API or behavior of those extensions.

Whenever a connection to MySQL is being opened, the plugin compares the host parameter value of the connect call, with the section names from the plugin specific configuration file. If, for example, the plugin specific configuration file has a section myapp then the section should be referenced by opening a MySQL connection to the host myapp

Пример #1 Plugin specific configuration file (mysqlnd_ms_plugin.ini)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Пример #2 Opening a load balanced connection

<?php
/* Load balanced following "myapp" section rules from the plugins config file */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");
?>

The connection examples above will be load balanced. The plugin will send read-only statements to the MySQL slave server with the IP 192.168.2.27 and will listen on port 3306 for the MySQL client connection. All other statements will be directed to the MySQL master server running on the host localhost. If on Unix like operating systems, the master on localhost will be accepting MySQL client connections on the Unix domain socket /tmp/mysql.sock, while TCP/IP is the default port on Windows. The plugin will use the user name username and the password password to connect to any of the MySQL servers listed in the section myapp of the plugins configuration file. Upon connect, the plugin will select database as the current schemata.

The username, password and schema name are taken from the connect API calls and used for all servers. In other words: you must use the same username and password for every MySQL server listed in a plugin configuration file section. The is not a general limitation. As of PECL/mysqlnd_ms 1.1.0, it is possible to set the username and password for any server in the plugins configuration file, to be used instead of the credentials passed to the API call.

The plugin does not change the API for running statements. Read-write splitting works out of the box. The following example assumes that there is no significant replication lag between the master and the slave.

Пример #3 Executing statements

<?php
/* Load balanced following "myapp" section rules from the plugins config file */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno()) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Statements will be run on the master */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* read-only: statement will be run on a slave */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("Slave returns id = '%s'\n", $row['id']);
}
$mysqli->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Slave returns id = '1'


Connection state

The plugin changes the semantics of a PHP MySQL connection handle. A new connection handle represents a connection pool, instead of a single MySQL client-server network connection. The connection pool consists of a master connection, and optionally any number of slave connections.

Every connection from the connection pool has its own state. For example, SQL user variables, temporary tables and transactions are part of the state. For a complete list of items that belong to the state of a connection, see the connection pooling and switching concepts documentation. If the plugin decides to switch connections for load balancing, the application could be given a connection which has a different state. Applications must be made aware of this.

Пример #1 Plugin config with one slave and one master

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Пример #2 Pitfall: connection state and SQL user variables

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 2, run on slave because SELECT */
if (!($res = $mysqli->query("SELECT @myrole AS _role"))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

Результат выполнения данного примера:

@myrole = ''

The example opens a load balanced connection and executes two statements. The first statement SET @myrole='master' does not begin with the string SELECT. Therefore the plugin does not recognize it as a read-only query which shall be run on a slave. The plugin runs the statement on the connection to the master. The statement sets a SQL user variable which is bound to the master connection. The state of the master connection has been changed.

The next statement is SELECT @myrole AS _role. The plugin does recognize it as a read-only query and sends it to the slave. The statement is run on a connection to the slave. This second connection does not have any SQL user variables bound to it. It has a different state than the first connection to the master. The requested SQL user variable is not set. The example script prints @myrole = ''.

It is the responsibility of the application developer to take care of the connection state. The plugin does not monitor all connection state changing activities. Monitoring all possible cases would be a very CPU intensive task, if it could be done at all.

The pitfalls can easily be worked around using SQL hints.


SQL Hints

SQL hints can force a query to choose a specific server from the connection pool. It gives the plugin a hint to use a designated server, which can solve issues caused by connection switches and connection state.

SQL hints are standard compliant SQL comments. Because SQL comments are supposed to be ignored by SQL processing systems, they do not interfere with other programs such as the MySQL Server, the MySQL Proxy, or a firewall.

Three SQL hints are supported by the plugin: The MYSQLND_MS_MASTER_SWITCH hint makes the plugin run a statement on the master, MYSQLND_MS_SLAVE_SWITCH enforces the use of the slave, and MYSQLND_MS_LAST_USED_SWITCH will run a statement on the same server that was used for the previous statement.

The plugin scans the beginning of a statement for the existence of an SQL hint. SQL hints are only recognized if they appear at the beginning of the statement.

Пример #1 Plugin config with one slave and one master

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Пример #2 SQL hints to prevent connection switches

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno()) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 1, run on master because of SQL hint */
if (!($res = $mysqli->query(sprintf("/*%s*/SELECT @myrole AS _role", MYSQLND_MS_LAST_USED_SWITCH)))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
    $row = $res->fetch_assoc();
    $res->close();
    printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

Результат выполнения данного примера:

@myrole = 'master'

In the above example, using MYSQLND_MS_LAST_USED_SWITCH prevents session switching from the master to a slave when running the SELECT statement.

SQL hints can also be used to run SELECT statements on the MySQL master server. This may be desired if the MySQL slave servers are typically behind the master, but you need current data from the cluster.

In version 1.2.0 the concept of a service level has been introduced to address cases when current data is required. Using a service level requires less attention and removes the need of using SQL hints for this use case. Please, find more information below in the service level and consistency section.

Пример #3 Fighting replication lag

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Force use of master, master has always fresh and current data */
if (!$mysqli->query(sprintf("/*%s*/SELECT critical_data FROM important_table", MYSQLND_MS_MASTER_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
?>

A use case may include the creation of tables on a slave. If an SQL hint is not given, then the plugin will send CREATE and INSERT statements to the master. Use the SQL hint MYSQLND_MS_SLAVE_SWITCH if you want to run any such statement on a slave, for example, to build temporary reporting tables.

Пример #4 Table creation on a slave

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Force use of slave */
if (!$mysqli->query(sprintf("/*%s*/CREATE TABLE slave_reporting(id INT)", MYSQLND_MS_SLAVE_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
/* Continue using this particular slave connection */
if (!$mysqli->query(sprintf("/*%s*/INSERT INTO slave_reporting(id) VALUES (1), (2), (3)", MYSQLND_MS_LAST_USED_SWITCH))) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
/* Don't use MYSQLND_MS_SLAVE_SWITCH which would allow switching to another slave! */
if ($res = $mysqli->query(sprintf("/*%s*/SELECT COUNT(*) AS _num FROM slave_reporting", MYSQLND_MS_LAST_USED_SWITCH))) {
    $row = $res->fetch_assoc();
    $res->close();
    printf("There are %d rows in the table 'slave_reporting'", $row['_num']);
} else {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
$mysqli->close();
?>

The SQL hint MYSQLND_MS_LAST_USED forbids switching a connection, and forces use of the previously used connection.


Local transactions

The current version of the plugin is not transaction safe by default, because it is not aware of running transactions in all cases. SQL transactions are units of work to be run on a single server. The plugin does not always know when the unit of work starts and when it ends. Therefore, the plugin may decide to switch connections in the middle of a transaction.

No kind of MySQL load balancer can detect transaction boundaries without any kind of hint from the application.

You can either use SQL hints to work around this limitation. Alternatively, you can activate transaction API call monitoring. In the latter case you must use API calls only to control transactions, see below.

Пример #1 Plugin config with one slave and one master

[myapp]
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            }
        }
    }
}

Пример #2 Using SQL hints for transactions

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Not a SELECT, will use master */
if (!$mysqli->query("START TRANSACTION")) {
    /* Please use better error handling in your code */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Prevent connection switch! */
if (!$mysqli->query(sprintf("/*%s*/INSERT INTO test(id) VALUES (1)", MYSQLND_MS_LAST_USED_SWITCH))) {
    /* Please do proper ROLLBACK in your code, don't just die */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if ($res = $mysqli->query(sprintf("/*%s*/SELECT COUNT(*) AS _num FROM test", MYSQLND_MS_LAST_USED_SWITCH))) {
    $row = $res->fetch_assoc();
    $res->close();
    if ($row['_num'] > 1000) {
        if (!$mysqli->query(sprintf("/*%s*/INSERT INTO events(task) VALUES ('cleanup')", MYSQLND_MS_LAST_USED_SWITCH))) {
            die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
        }
    }
} else {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query(sprintf("/*%s*/UPDATE log SET last_update = NOW()", MYSQLND_MS_LAST_USED_SWITCH))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query(sprintf("/*%s*/COMMIT", MYSQLND_MS_LAST_USED_SWITCH))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

$mysqli->close();
?>

Starting with PHP 5.4.0, the mysqlnd library allows the plugin to monitor the status of the autocommit mode, if the mode is set by API calls instead of using SQL statements such as SET AUTOCOMMIT=0. This makes it possible for the plugin to become transaction aware. In this case, you do not need to use SQL hints.

If using PHP 5.4.0 or newer, API calls that enable autocommit mode, and when setting the plugin configuration option trx_stickiness=master, the plugin can automatically disable load balancing and connection switches for SQL transactions. In this configuration, the plugin stops load balancing if autocommit is disabled and directs all statements to the master. This prevents connection switches in the middle of a transaction. Once autocommit is re-enabled, the plugin starts to load balance statements again.

API based transaction boundary detection has been improved with PHP 5.5.0 and PECL/mysqlnd_ms 1.5.0 to cover not only calls to mysqli_autocommit() but also mysqli_begin(), mysqli_commit() and mysqli_rollback().

Пример #3 Transaction aware load balancing: trx_stickiness setting

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "trx_stickiness": "master"
    }
}

Пример #4 Transaction aware

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Disable autocommit, plugin will run all statements on the master */
$mysqli->autocommit(false);

if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    /* Please do proper ROLLBACK in your code, don't just die */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if ($res = $mysqli->query("SELECT COUNT(*) AS _num FROM test")) {
    $row = $res->fetch_assoc();
    $res->close();
    if ($row['_num'] > 1000) {
        if (!$mysqli->query("INSERT INTO events(task) VALUES ('cleanup')")) {
            die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
        }
    }
} else {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->query("UPDATE log SET last_update = NOW()")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
if (!$mysqli->commit()) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin assumes that the transaction has ended and starts load balancing again */
$mysqli->autocommit(true);
$mysqli->close();
?>

Замечание: Version requirement

The plugin configuration option trx_stickiness=master requires PHP 5.4.0 or newer.

Please note the restrictions outlined in the transaction handling concepts section.


XA/Distributed Transactions

Замечание: Version requirement

XA related functions have been introduced in PECL mysqlnd_ms version 1.6.0-alpha.

Замечание: Early adaptors wanted

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments, although early lab tests indicate reasonable quality.

Please, contact the development team if you are interested in this feature. We are looking for real life feedback to complement the feature.

XA transactions are a standardized method for executing transactions across multiple resources. Those resources can be databases or other transactional systems. The MySQL server supports XA SQL statements which allows users to carry out a distributed SQL transaction that spawns multiple database servers or any kind as long as they support the SQL statements too. In such a scenario it is in the responsibility of the user to coordinate the participating servers.

PECL/mysqlnd_ms can act as a transaction coordinator for a global (distributed, XA) transaction carried out on MySQL servers only. As a transaction coordinator, the plugin tracks all servers involved in a global transaction and transparently issues appropriate SQL statements on the participants. The global transactions are controlled with mysqlnd_ms_xa_begin(), mysqlnd_ms_xa_commit() and mysqlnd_ms_xa_rollback(). SQL details are mostly hidden from the application as is the need to track and coordinate participants.

Пример #1 General pattern for XA transactions

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* start a global transaction */
$gtrid_id = "12345";
if (!mysqlnd_ms_xa_begin($mysqli, $gtrid_id)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* run queries as usual: XA BEGIN will be injected upon running a query */
if (!$mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')")) {
    /* Either INSERT failed or the injected XA BEGIN failed */
    if ('XA' == substr($mysqli->sqlstate, 0, 2)) {
        printf("Global transaction/XA related failure, [%d] %s\n", $mysqli->errno, $mysqli->error);
    } else {
        printf("INSERT failed, [%d] %s\n", $mysqli->errno, $mysqli->error);
    }
    /* rollback global transaction */
    mysqlnd_ms_xa_rollback($mysqli, $xid);
    die("Stopping.");
}

/* continue carrying out queries on other servers, e.g. other shards */

/* commit the global transaction */
if (!mysqlnd_ms_xa_commit($mysqli, $xa_id)) {
    printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}
?>

Unlike with local transactions, which are carried out on a single server, XA transactions have an identifier (xid) associated with them. The XA transaction identifier is composed of a global transaction identifier (gtrid), a branch qualifier (bqual) a format identifier (formatID). Only the global transaction identifier can and must be given when calling any of the plugins XA functions.

Once a global transaction has been started, the plugin begins tracking servers until the global transaction ends. When a server is picked for query execution, the plugin injects the SQL statement XA BEGIN prior to executing the actual SQL statement on the server. XA BEGIN makes the server participate in the global transaction. If the injected SQL statement fails, the plugin will report the issue in reply to the query execution function that was used. In the above example, $mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')") would indicate such an error. You may want to check the errors SQL state code to determine whether the actual query (here: INSERT) has failed or the error is related to the global transaction. It is up to you to ignore the failure to start the global transaction on a server and continue execution without having the server participate in the global transaction.

Пример #2 Local and global transactions are mutually exclusive

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* start a local transaction */
if (!$mysqli->begin_transaction()) {
    die(sprintf("[%d/%s] %s\n", $mysqli->errno, $mysqli->sqlstate, $mysqli->error));
}

/* cannot start global transaction now - must end local transaction first */
$gtrid_id = "12345";
if (!mysqlnd_ms_xa_begin($mysqli, $gtrid_id)) {
    die(sprintf("[%d/%s] %s\n", $mysqli->errno, $mysqli->sqlstate, $mysqli->error));
}
?>

Результат выполнения данного примера:

Warning: mysqlnd_ms_xa_begin(): (mysqlnd_ms) Some work is done outside global transaction. You must end the active local transaction first in ... on line ...
[1400/XAE09] (mysqlnd_ms) Some work is done outside global transaction. You must end the active local transaction first

A global transaction cannot be started when a local transaction is active. The plugin tries to detect this situation as early as possible, that is when mysqlnd_ms_xa_begin() is called. If using API calls only to control transactions, the plugin will know that a local transaction is open and return an error for mysqlnd_ms_xa_begin(). However, note the plugins limitations on detecting transaction boundaries.. In the worst case, if using direct SQL for local transactions (BEGIN, COMMIT, ...), it may happen that an error is delayed until some SQL is executed on a server.

To end a global transaction invoke mysqlnd_ms_xa_commit() or mysqlnd_ms_xa_rollback(). When a global transaction is ended all participants must be informed of the end. Therefore, PECL/mysqlnd_ms transparently issues appropriate XA related SQL statements on some or all of them. Any failure during this phase will cause an implicit rollback. The XA related API is intentionally kept simple here. A more complex API that gave more control would bare few, if any, advantages over a user implementation that issues all lower level XA SQL statements itself.

XA transactions use the two-phase commit protocol. The two-phase commit protocol is a blocking protocol. There are cases when no progress can be made, not even when using timeouts. Transaction coordinators should survive their own failure, be able to detect blockades and break ties. PECL/mysqlnd_ms takes the role of a transaction coordinator and can be configured to survive its own crash to avoid issues with blocked MySQL servers. Therefore, the plugin can and should be configured to use a persistent and crash-safe state to allow garbage collection of unfinished, aborted global transactions. A global transaction can be aborted in an open state if either the plugin fails (crashes) or a connection from the plugin to a global transaction participant fails.

Пример #3 Transaction coordinator state store

{
    "myapp": {
        "xa": {
            "state_store": {
                "participant_localhost_ip": "192.168.2.12",
                "mysql": {
                    "host": "192.168.2.13",
                    "user": "root",
                    "password": "",
                    "db": "test",
                    "port": "3312",
                    "socket": null
                }
            }
        },
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.14",
                "port": "3306"
            }
        }
    }
}

Currently, PECL/mysqlnd_ms supports only using MySQL database tables as a state store. The SQL definitions of the tables are given in the plugin configuration section. Please, make sure to use a transactional and crash-safe storage engine for the tables, such as InnoDB. InnoDB is the default table engine in recent versions of the MySQL server. Make also sure the database server itself is highly available.

If a state store has been configured, the plugin can perform a garbage collection. During garbage collection it may be necessary to connect to a participant of a failed global transaction. Thus, the state store holds a list of participants and, among others, their host names. If the garbage collection is run on another host but the one that has written a participant entry with the host name localhost, then localhost resolves to different machines. There are two solutions to the problem. Either you do not configure any servers with the host name localhost but configure an IP address (and port) or, you hint the garbage collection. In the above example, localhost is used for master_0, hence it may not resolve to the correct host during garbage collection. However, participant_localhost_ip is also set to hint the garbage collection that localhost stands for the IP 192.168.2.12.


Service level and consistency

Замечание: Version requirement

Service levels have been introduced in PECL mysqlnd_ms version 1.2.0-alpha. mysqlnd_ms_set_qos() is available with PHP 5.4.0 or newer.

Different types of MySQL cluster solutions offer different service and data consistency levels to their users. An asynchronous MySQL replication cluster offers eventual consistency by default. A read executed on an asynchronous slave may return current, stale or no data at all, depending on whether the slave has replayed all changesets from the master or not.

Applications using an MySQL replication cluster need to be designed to work correctly with eventual consistent data. In some cases, however, stale data is not acceptable. In those cases only certain slaves or even only master accesses are allowed to achieve the required quality of service from the cluster.

As of PECL mysqlnd_ms 1.2.0 the plugin is capable of selecting MySQL replication nodes automatically that deliver session consistency or strong consistency. Session consistency means that one client can read its writes. Other clients may or may not see the clients' write. Strong consistency means that all clients will see all writes from the client.

Пример #1 Session consistency: read your writes

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

Пример #2 Requesting session consistency

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* read-write splitting: master used */
if (!$mysqli->query("INSERT INTO orders(order_id, item) VALUES (1, 'christmas tree, 1.8m')")) {
    /* Please use better error handling in your code */
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Request session consistency: read your writes */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks a node which has the changes, here: master */
if (!$res = $mysqli->query("SELECT item FROM orders WHERE order_id = 1")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());

/* Back to eventual consistency: stale data allowed */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks any slave, stale data is allowed */
if (!$res = $mysqli->query("SELECT item, price FROM specials")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

Service levels can be set in the plugins configuration file and at runtime using mysqlnd_ms_set_qos(). In the example the function is used to enforce session consistency (read your writes) for all future statements until further notice. The SELECT statement on the orders table is run on the master to ensure the previous write can be seen by the client. Read-write splitting logic has been adapted to fulfill the service level.

After the application has read its changes from the orders table it returns to the default service level, which is eventual consistency. Eventual consistency puts no restrictions on choosing a node for statement execution. Thus, the SELECT statement on the specials table is executed on a slave.

The new functionality supersedes the use of SQL hints and the master_on_write configuration option. In many cases mysqlnd_ms_set_qos() is easier to use, more powerful improves portability.

Пример #3 Maximum age/slave lag

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "failover" : "master"
    }
}

Пример #4 Limiting slave lag

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Read from slaves lagging no more than four seconds */
$ret = mysqlnd_ms_set_qos(
    $mysqli,
    MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL,
    MYSQLND_MS_QOS_OPTION_AGE,
    4
);

if (!$ret) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks any slave, which may or may not have the changes */
if (!$res = $mysqli->query("SELECT item, price FROM daytrade")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Back to default: use of all slaves and masters permitted */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

The eventual consistency service level can be used with an optional parameter to set a maximum slave lag for choosing slaves. If set, the plugin checks SHOW SLAVE STATUS for all configured slaves. In case of the example, only slaves for which Slave_IO_Running=Yes, Slave_SQL_Running=Yes and Seconds_Behind_Master <= 4 is true are considered for executing the statement SELECT item, price FROM daytrade.

Checking SHOW SLAVE STATUS is done transparently from an applications perspective. Errors, if any, are reported as warnings. No error will be set on the connection handle. Even if all SHOW SLAVE STATUS SQL statements executed by the plugin fail, the execution of the users statement is not stopped, given that master fail over is enabled. Thus, no application changes are required.

Замечание: Expensive and slow operation

Checking SHOW SLAVE STATUS for all slaves adds overhead to the application. It is an expensive and slow background operation. Try to minimize the use of it. Unfortunately, a MySQL replication cluster does not give clients the possibility to request a list of candidates from a central instance. Thus, a more efficient way of checking the slaves lag is not available.

Please, note the limitations and properties of SHOW SLAVE STATUS as explained in the MySQL reference manual.

To prevent mysqlnd_ms from emitting a warning if no slaves can be found that lag no more than the defined number of seconds behind the master, it is necessary to enable master fail over in the plugins configuration file. If no slaves can be found and fail over is turned on, the plugin picks a master for executing the statement.

If no slave can be found and fail over is turned off, the plugin emits a warning, it does not execute the statement and it sets an error on the connection.

Пример #5 Fail over not set

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        }
    }
}

Пример #6 No slave within time limit

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Read from slaves lagging no more than four seconds */
$ret = mysqlnd_ms_set_qos(
    $mysqli,
    MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL,
    MYSQLND_MS_QOS_OPTION_AGE,
    4
);

if (!$ret) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Plugin picks any slave, which may or may not have the changes */
if (!$res = $mysqli->query("SELECT item, price FROM daytrade")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Back to default: use of all slaves and masters permitted */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

Результат выполнения данного примера:

PHP Warning:  mysqli::query(): (mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from. Something is wrong in %s on line %d
PHP Warning:  mysqli::query(): (mysqlnd_ms) No connection selected by the last filter in %s on line %d
[2000] (mysqlnd_ms) No connection selected by the last filter


Global transaction IDs

Замечание: Version requirement

A client-side global transaction ID injection has been introduced in mysqlnd_ms version 1.2.0-alpha. The feature is not required for synchronous clusters, such as MySQL Cluster. Use it with asynchronous clusters such as classical MySQL replication.

As of MySQL 5.6.5-m8 release candidate the MySQL server features built-in global transaction identifiers. The MySQL built-in global transaction ID feature is supported by PECL/mysqlnd_ms 1.3.0-alpha or later. However, the final feature set found in MySQL 5.6 production releases to date is not sufficient to support the ideas discussed below in all cases. Please, see also the concepts section.

PECL/mysqlnd_ms can either use its own global transaction ID emulation or the global transaction ID feature built-in to MySQL 5.6.5-m8 or later. From a developer perspective the client-side and server-side approach offer the same features with regards to service levels provided by PECL/mysqlnd_ms. Their differences are discussed in the concepts section.

The quickstart first demonstrates the use of the client-side global transaction ID emulation built-in to PECL/mysqlnd_ms before its show how to use the server-side counterpart. The order ensures that the underlying idea is discussed first.

Idea and client-side emulation

In its most basic form a global transaction ID (GTID) is a counter in a table on the master. The counter is incremented whenever a transaction is committed on the master. Slaves replicate the table. The counter serves two purposes. In case of a master failure, it helps the database administrator to identify the most recent slave for promoting it to the new master. The most recent slave is the one with the highest counter value. Applications can use the global transaction ID to search for slaves which have replicated a certain write (identified by a global transaction ID) already.

PECL/mysqlnd_ms can inject SQL for every committed transaction to increment a GTID counter. The so created GTID is accessible by the application to identify an applications write operation. This enables the plugin to deliver session consistency (read your writes) service level by not only querying masters but also slaves which have replicated the change already. Read load is taken away from the master.

Client-side global transaction ID emulation has some limitations. Please, read the concepts section carefully to fully understand the principles and ideas behind it, before using in production environments. The background knowledge is not required to continue with the quickstart.

First, create a counter table on your master server and insert a record into it. The plugin does not assist creating the table. Database administrators must make sure it exists. Depending on the error reporting mode, the plugin will silently ignore the lack of the table or bail out.

Пример #1 Create counter table on master

CREATE TABLE `trx` (
  `trx_id` int(11) DEFAULT NULL,
  `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1
INSERT INTO `trx`(`trx_id`) VALUES (1);

In the plugins configuration file set the SQL to update the global transaction ID table using on_commit from the global_transaction_id_injection section. Make sure the table name used for the UPDATE statement is fully qualified. In the example, test.trx is used to refer to table trx in the schema (database) test. Use the table that was created in the previous step. It is important to set the fully qualified table name because the connection on which the injection is done may use a different default database. Make sure the user that opens the connection is allowed to execute the UPDATE.

Enable reporting of errors that may occur when mysqlnd_ms does global transaction ID injection.

Пример #2 Plugin config: SQL for client-side GTID injection

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "report_error":true
        }
    }
}

Пример #3 Transparent global transaction ID injection

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("INSERT INTO test(id) VALUES (1)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* auto commit mode, read on slave, no increment */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

array(1) {
  ["id"]=>
  string(1) "1"
}

The example runs three statements in auto commit mode on the master, causing three transactions on the master. For every such statement, the plugin will inject the configured UPDATE transparently before executing the users SQL statement. When the script ends the global transaction ID counter on the master has been incremented by three.

The fourth SQL statement executed in the example, a SELECT, does not trigger an increment. Only transactions (writes) executed on a master shall increment the GTID counter.

Замечание: SQL for global transaction ID: efficient solution wanted!

The SQL used for the client-side global transaction ID emulation is inefficient. It is optimized for clearity not for performance. Do not use it for production environments. Please, help finding an efficient solution for inclusion in the manual. We appreciate your input.

Пример #4 Plugin config: SQL for fetching GTID

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "fetch_last_gtid" : "SELECT MAX(trx_id) FROM test.trx",
            "report_error":true
        }
    }
}

Пример #5 Obtaining GTID after injection

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("DROP TABLE IF EXISTS test")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("CREATE TABLE test(id INT)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
?>

Результат выполнения данного примера:

GTID after transaction 7
GTID after transaction 8

Applications can ask PECL mysqlnd_ms for a global transaction ID which belongs to the last write operation performed by the application. The function mysqlnd_ms_get_last_gtid() returns the GTID obtained when executing the SQL statement from the fetch_last_gtid entry of the global_transaction_id_injection section from the plugins configuration file. The function may be called after the GTID has been incremented.

Applications are adviced not to run the SQL statement themselves as this bares the risk of accidently causing an implicit GTID increment. Also, if the function is used, it is easy to migrate an application from one SQL statement for fetching a transaction ID to another, for example, if any MySQL server ever features built-in global transaction ID support.

The quickstart shows a SQL statement which will return a GTID equal or greater to that created for the previous statement. It is exactly the GTID created for the previous statement if no other clients have incremented the GTID in the time span between the statement execution and the SELECT to fetch the GTID. Otherwise, it is greater.

Пример #6 Plugin config: Checking for a certain GTID

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "on_commit":"UPDATE test.trx SET trx_id = trx_id + 1",
            "fetch_last_gtid" : "SELECT MAX(trx_id) FROM test.trx",
            "check_for_gtid" : "SELECT trx_id FROM test.trx WHERE trx_id >= #GTID",
            "report_error":true
        }
    }
}

Пример #7 Session consistency service level and GTID combined

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* auto commit mode, transaction on master, GTID must be incremented */
if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* GTID as an identifier for the last write */
$gtid = mysqlnd_ms_get_last_gtid($mysqli);

/* Session consistency (read your writes): try to read from slaves not only master */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION, MYSQLND_MS_QOS_OPTION_GTID, $gtid)) {
    die(sprintf("[006] [%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Either run on master or a slave which has replicated the INSERT */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

var_dump($res->fetch_assoc());
?>

A GTID returned from mysqlnd_ms_get_last_gtid() can be used as an option for the session consistency service level. Session consistency delivers read your writes. Session consistency can be requested by calling mysqlnd_ms_set_qos(). In the example, the plugin will execute the SELECT statement either on the master or on a slave which has replicated the previous INSERT already.

PECL mysqlnd_ms will transparently check every configured slave if it has replicated the INSERT by checking the slaves GTID table. The check is done running the SQL set with the check_for_gtid option from the global_transaction_id_injection section of the plugins configuration file. Please note, that this is a slow and expensive procedure. Applications should try to use it sparsely and only if read load on the master becomes to high otherwise.

Use of the server-side global transaction ID feature

Замечание: Insufficient server support in MySQL 5.6

The plugin has been developed against a pre-production version of MySQL 5.6. It turns out that all released production versions of MySQL 5.6 do not provide clients with enough information to enforce session consistency based on GTIDs. Please, read the concepts section for details.

Starting with MySQL 5.6.5-m8 the MySQL Replication system features server-side global transaction IDs. Transaction identifiers are automatically generated and maintained by the server. Users do not need to take care of maintaining them. There is no need to setup any tables in advance, or for setting on_commit. A client-side emulation is no longer needed.

Clients can continue to use global transaction identifier to achieve session consistency when reading from MySQL Replication slaves in some cases but not all! The algorithm works as described above. Different SQL statements must be configured for fetch_last_gtid and check_for_gtid. The statements are given below. Please note, MySQL 5.6.5-m8 is a development version. Details of the server implementation may change in the future and require adoption of the SQL statements shown.

Using the following configuration any of the above described functionality can be used together with the server-side global transaction ID feature. mysqlnd_ms_get_last_gtid() and mysqlnd_ms_set_qos() continue to work as described above. The only difference is that the server does not use a simple sequence number but a string containing of a server identifier and a sequence number. Thus, users cannot easily derive an order from GTIDs returned by mysqlnd_ms_get_last_gtid().

Пример #8 Plugin config: using MySQL 5.6.5-m8 built-in GTID feature

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
        "global_transaction_id_injection":{
            "fetch_last_gtid" : "SELECT @@GLOBAL.GTID_DONE AS trx_id FROM DUAL",
            "check_for_gtid" : "SELECT GTID_SUBSET('#GTID', @@GLOBAL.GTID_DONE) AS trx_id FROM DUAL",
            "report_error":true
        }
    }
}


Cache integration

Замечание: Version requirement, dependencies and status

Please, find more about version requirements, extension load order dependencies and the current status in the concepts section!

Databases clusters can deliver different levels of consistency. As of PECL/mysqlnd_ms 1.2.0 it is possible to advice the plugin to consider only cluster nodes that can deliver the consistency level requested. For example, if using asynchronous MySQL Replication with its cluster-wide eventual consistency, it is possible to request session consistency (read your writes) at any time using mysqlnd_ms_set_quos(). Please, see also the service level and consistency introduction.

Пример #1 Recap: quality of service to request read your writes

/* Request session consistency: read your writes */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

Assuming PECL/mysqlnd has been explicitly told to deliver no consistency level higher than eventual consistency, it is possible to replace a database node read access with a client-side cache using time-to-live (TTL) as its invalidation strategy. Both the database node and the cache may or may not serve current data as this is what eventual consistency defines.

Replacing a database node read access with a local cache access can improve overall performance and lower the database load. If the cache entry is every reused by other clients than the one creating the cache entry, a database access is saved and thus database load is lowered. Furthermore, system performance can become better if computation and delivery of a database query is slower than a local cache access.

Пример #2 Plugin config: no special entries for caching

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "127.0.0.1",
                "port": "3306"
            }
        },
    }
}

Пример #3 Caching a slave request

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Explicitly allow eventual consistency and caching (TTL <= 60 seconds) */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_OPTION_CACHE, 60)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* To make this example work, we must wait for a slave to catch up. Brute force style. */
$attempts = 0;
do {
    /* check if slave has the table */
    if ($res = $mysqli->query("SELECT id FROM test")) {
        break;
    } else if ($mysqli->errno) {
        die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
    }
    /* wait for slave to catch up */
    usleep(200000);
} while ($attempts++ < 10);

/* Query has been run on a slave, result is in the cache */
assert($res);
var_dump($res->fetch_assoc());

/* Served from cache */
$res = $mysqli->query("SELECT id FROM test");
?>

The example shows how to use the cache feature. First, you have to set the quality of service to eventual consistency and explicitly allow for caching. This is done by calling mysqlnd_ms_set_qos(). Then, the result set of every read-only statement is cached for upto that many seconds as allowed with mysqlnd_ms_set_qos().

The actual TTL is lower or equal to the value set with mysqlnd_ms_set_qos(). The value passed to the function sets the maximum age (seconds) of the data delivered. To calculate the actual TTL value the replication lag on a slave is checked and subtracted from the given value. If, for example, the maximum age is set to 60 seconds and the slave reports a lag of 10 seconds the resulting TTL is 50 seconds. The TTL is calculated individually for every cached query.

Пример #4 Read your writes and caching combined

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

if (   !$mysqli->query("DROP TABLE IF EXISTS test")
    || !$mysqli->query("CREATE TABLE test(id INT)")
    || !$mysqli->query("INSERT INTO test(id) VALUES (1)")
) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Explicitly allow eventual consistency and caching (TTL <= 60 seconds) */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_OPTION_CACHE, 60)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* To make this example work, we must wait for a slave to catch up. Brute force style. */
$attempts = 0;
do {
    /* check if slave has the table */
    if ($res = $mysqli->query("SELECT id FROM test")) {
        break;
    } else if ($mysqli->errno) {
        die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
    }
    /* wait for slave to catch up */
    usleep(200000);
} while ($attempts++ < 10);

assert($res);

/* Query has been run on a slave, result is in the cache */
var_dump($res->fetch_assoc());

/* Served from cache */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
var_dump($res->fetch_assoc());

/* Update on master */
if (!$mysqli->query("UPDATE test SET id = 2")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Read your writes */
if (false == mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION)) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Fetch latest data */
if (!($res = $mysqli->query("SELECT id FROM test"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
var_dump($res->fetch_assoc());
?>

The quality of service can be changed at any time to avoid further cache usage. If needed, you can switch to read your writes (session consistency). In that case, the cache will not be used and fresh data is read.


Failover

By default, the plugin does not attempt to fail over if connecting to a host fails. This prevents pitfalls related to connection state. It is recommended to manually handle connection errors in a way similar to a failed transaction. You should catch the error, rebuild the connection state and rerun your query as shown below.

If connection state is no issue to you, you can alternatively enable automatic and silent failover. Depending on the configuration, the automatic and silent failover will either attempt to fail over to the master before issuing and error or, try to connect to other slaves, given the query allowes for it, before attempting to connect to a master. Because automatic failover is not fool-proof, it is not discussed in the quickstart. Instead, details are given in the concepts section below.

Пример #1 Manual failover, automatic optional

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "simulate_slave_failure",
                "port": "0"
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
       "filters": { "roundrobin": [] }
    }
 }

Пример #2 Manual failover

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

$sql = "SELECT 1 FROM DUAL";

/* error handling as it should be done regardless of the plugin */
if (!($res = $link->query($sql))) {
    /* plugin specific: check for connection error */
    switch ($link->errno) {
    case 2002:
    case 2003:
    case 2005:
        printf("Connection error - trying next slave!\n");
        /* load balancer will pick next slave */
        $res = $link->query($sql);
        break;
    default:
        /* no connection error, failover is unlikely to help */
        die(sprintf("SQL error: [%d] %s", $link->errno, $link->error));
        break;
    }
}
if ($res) {
    var_dump($res->fetch_assoc());
}
?>


Partitioning and Sharding

Database clustering is done for various reasons. Clusters can improve availability, fault tolerance, and increase performance by applying a divide and conquer approach as work is distributed over many machines. Clustering is sometimes combined with partitioning and sharding to further break up a large complex task into smaller, more manageable units.

The mysqlnd_ms plugin aims to support a wide variety of MySQL database clusters. Some flavors of MySQL database clusters have built-in methods for partitioning and sharding, which could be transparent to use. The plugin supports the two most common approaches: MySQL Replication table filtering, and Sharding (application based partitioning).

MySQL Replication supports partitioning as filters that allow you to create slaves that replicate all or specific databases of the master, or tables. It is then in the responsibility of the application to choose a slave according to the filter rules. You can either use the mysqlnd_ms node_groups filter to manually support this, or use the experimental table filter.

Manual partitioning or sharding is supported through the node grouping filter, and SQL hints as of 1.5.0. The node_groups filter lets you assign a symbolic name to a group of master and slave servers. In the example, the master master_0 and slave_0 form a group with the name Partition_A. It is entirely up to you to decide what makes up a group. For example, you may use node groups for sharding, and use the group names to address shards like Shard_A_Range_0_100.

Пример #1 Cluster node groups

{
  "myapp": {
       "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "simulate_slave_failure",
                "port": "0"
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
        "filters": {
            "node_groups": {
                "Partition_A" : {
                    "master": ["master_0"],
                    "slave": ["slave_0"]
                }
            },
           "roundrobin": []
        }
    }
}

Пример #2 Manual partitioning using SQL hints

<?php
function select($mysqli, $msg, $hint = '')
{
    /* Note: weak test, two connections to two servers may have the same thread id */
    $sql = sprintf("SELECT CONNECTION_ID() AS _thread, '%s' AS _hint FROM DUAL", $msg);
    if ($hint) {
        $sql = $hint . $sql;
    }
    if (!($res = $mysqli->query($sql))) {
        printf("[%d] %s", $mysqli->errno, $mysqli->error);
        return false;
    }
    $row =  $res->fetch_assoc();
    printf("%d - %s - %s\n", $row['_thread'], $row['_hint'], $sql);
    return true;
}

$mysqli = new mysqli("myapp", "user", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* All slaves allowed */
select($mysqli, "slave_0");
select($mysqli, "slave_1");

/* only servers of node group "Partition_A" allowed */
select($mysqli, "slave_1", "/*Partition_A*/");
select($mysqli, "slave_1", "/*Partition_A*/");
?>
6804 - slave_0 - SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL
2442 - slave_1 - SELECT CONNECTION_ID() AS _thread, 'slave2' AS _hint FROM DUAL
6804 - slave_0 - /*Partition_A*/SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL
6804 - slave_0 - /*Partition_A*/SELECT CONNECTION_ID() AS _thread, 'slave1' AS _hint FROM DUAL

By default, the plugin will use all configured master and slave servers for query execution. But if a query begins with a SQL hint like /*node_group*/, the plugin will only consider the servers listed in the node_group for query execution. Thus, SELECT queries prefixed with /*Partition_A*/ will only be executed on slave_0.


MySQL Fabric

Замечание: Version requirement and status

Work on supporting MySQL Fabric started in version 1.6. Please, consider the support to be of pre-alpha quality. The manual may not list all features or feature limitations. This is work in progress.

Sharding is the only use case supported by the plugin to date.

Замечание: MySQL Fabric concepts

Please, check the MySQL reference manual for more information about MySQL Fabric and how to set it up. The PHP manual assumes that you are familiar with the basic concepts and ideas of MySQL Fabric.

MySQL Fabric is a system for managing farms of MySQL servers to achive High Availability and optionally support sharding. Technically, it is a middleware to manage and monitor MySQL servers.

Clients query MySQL Fabric to obtain lists of MySQL servers, their state and their roles. For example, clients can request a list of slaves for a MySQL Replication group and whether they are ready to handle SQL requests. Another example is a cluster of sharded MySQL servers where the client seeks to know which shard to query for a given table and shard key. If configured to use Fabric, the plugin uses XML RCP over HTTP to obtain the list at runtime from a MySQL Fabric host. The XML remote procedure call itself is done in the background and transparent from a developers point of view.

Instead of listing MySQL servers directly in the plugins configuration file it contains a list of one or more MySQL Fabric hosts

Пример #1 Plugin config: Fabric hosts instead of MySQL servers

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ]
        }
    }
}

Users utilize the new functions mysqlnd_ms_fabric_select_shard() and mysqlnd_ms_fabric_select_global() to switch to the set of servers responsible for a given shard key. Then, the plugin picks an appropriate server for running queries on. When doing so, the plugin takes care of additional load balancing rules set.

The below example assumes that MySQL Fabric has been setup to shard the table test.fabrictest using the id column of the table as a shard key.

Пример #2 Manual partitioning using SQL hints

<?php
$mysqli = new mysqli("myapp", "user", "password", "database");
if (!$mysqli) {
    /* Of course, your error handling is nicer... */
    die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
}

/* Create a global table - a table available on all shards */
mysqlnd_ms_fabric_select_global($mysqli, "test.fabrictest");
if (!$mysqli->query("CREATE TABLE test.fabrictest(id INT NOT NULL PRIMARY KEY)")) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Switch connection to appropriate shard and insert record */
mysqlnd_ms_fabric_select_shard($mysqli, "test.fabrictest", 10);
if (!($res = $mysqli->query("INSERT INTO fabrictest(id) VALUES (10)"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}

/* Try to read newly inserted record */
mysqlnd_ms_fabric_select_shard($mysqli, "test.fabrictest", 10);
if (!($res = $mysqli->query("SELECT id FROM test WHERE id = 10"))) {
    die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
}
?>

The example creates the sharded table, inserts a record and reads the record thereafter. All SQL data definition language (DDL) operations on a sharded table must be applied to the so called global server group. Prior to creating or altering a sharded table, mysqlnd_ms_fabric_select_global() is called to switch the given connection to the corresponding servers of the global group. Data manipulation (DML) SQL statements must be sent to the shards directly. The mysqlnd_ms_fabric_select_shard() switches a connection to shards handling a certain shard key.


Concepts

Содержание

  • Architecture
  • Connection pooling and switching
  • Local transaction handling
  • Error handling
  • Transient errors
  • Failover
  • Load balancing
  • Read-write splitting
  • Filter
  • Service level and consistency
  • Global transaction IDs
  • Cache integration
  • Supported clusters
  • XA/Distributed transactions

This explains the architecture and related concepts for this plugin, and describes the impact that MySQL replication and this plugin have on developmental tasks while using a database cluster. Reading and understanding these concepts is required, in order to use this plugin with success.


Architecture

The mysqlnd replication and load balancing plugin is implemented as a PHP extension. It is written in C and operates under the hood of PHP. During the startup of the PHP interpreter, in the module init phase of the PHP engine, it gets registered as a mysqlnd plugin to replace selected mysqlnd C methods.

At PHP runtime, it inspects queries sent from mysqlnd (PHP) to the MySQL server. If a query is recognized as read-only, it will be sent to one of the configured slave servers. Statements are considered read-only if they either start with SELECT, the SQL hint /*ms=slave*/ or a slave had been chosen for running the previous query, and the query started with the SQL hint /*ms=last_used*/. In all other cases, the query will be sent to the MySQL replication master server.

For better portability, applications should use the MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH, and MYSQLND_MS_LAST_USED_SWITCH predefined mysqlnd_ms constants, instead of their literal values, such as /*ms=slave*/.

The plugin handles the opening and closing of database connections to both master and slave servers. From an application point of view, there continues to be only one connection handle. However, internally, this one public connection handle represents a pool of network connections that are managed by the plugin. The plugin proxies queries to the master server, and to the slaves using multiple connections.

Database connections have a state consisting of, for example, transaction status, transaction settings, character set settings, and temporary tables. The plugin will try to maintain the same state among all internal connections, whenever this can be done in an automatic and transparent way. In cases where it is not easily possible to maintain state among all connections, such as when using BEGIN TRANSACTION, the plugin leaves it to the user to handle.


Connection pooling and switching

The replication and load balancing plugin changes the semantics of a PHP MySQL connection handle. The existing API of the PHP MySQL extensions (mysqli, mysql, and PDO_MYSQL) are not changed in a way that functions are added or removed. But their behavior changes when using the plugin. Existing applications do not need to be adapted to a new API, but they may need to be modified because of the behavior changes.

The plugin breaks the one-by-one relationship between a mysqli, mysql, and PDO_MYSQL connection handle and a MySQL network connection. And a mysqli, mysql, and PDO_MYSQL connection handle represents a local pool of connections to the configured MySQL replication master and MySQL replication slave servers. The plugin redirects queries to the master and slave servers. At some point in time one and the same PHP connection handle may point to the MySQL master server. Later on, it may point to one of the slave servers or still the master. Manipulating and replacing the network connection referenced by a PHP MySQL connection handle is not a transparent operation.

Every MySQL connection has a state. The state of the connections in the connection pool of the plugin can differ. Whenever the plugin switches from one wire connection to another, the current state of the user connection may change. The applications must be aware of this.

The following list shows what the connection state consists of. The list may not be complete.

  • Transaction status
  • Temporary tables
  • Table locks
  • Session system variables and session user variables
  • The current database set using USE and other state chaining SQL commands
  • Prepared statements
  • HANDLER variables
  • Locks acquired with GET_LOCK()

Connection switches happen right before queries are executed. The plugin does not switch the current connection until the next statement is executed.

Замечание: Replication issues

See also the MySQL reference manual chapter about » replication features and related issues. Some restrictions may not be related to the PHP plugin, but are properties of the MySQL replication system.

Broadcasted messages

The plugins philosophy is to align the state of connections in the pool only if the state is under full control of the plugin, or if it is necessary for security reasons. Just a few actions that change the state of the connection fall into this category.

The following is a list of connection client library calls that change state, and are broadcasted to all open connections in the connection pool.

If any of the listed calls below are to be executed, the plugin loops over all open master and slave connections. The loop continues until all servers have been contacted, and the loop does not break if a server indicates a failure. If possible, the failure will propagate to the called user API function, which may be detected depending on which underlying library function was triggered.

Library call | Notes | Version
change_user() | Called by the mysqli_change_user() user API call. Also triggered upon reuse of a persistent mysqli connection. | Since 1.0.0.
select_db | Called by the following user API calls: mysql_select_db(), mysql_list_tables(), mysql_db_query(), mysql_list_fields(), mysqli_select_db(). Note, that SQL USE is not monitored. | Since 1.0.0.
set_charset() | Called by the following user API calls: mysql_set_charset(). mysqli_set_charset(). Note, that SQL SET NAMES is not monitored. | Since 1.0.0.
set_server_option() | Called by the following user API calls: mysqli_multi_query(), mysqli_real_query(), mysqli_query(), mysql_query(). | Since 1.0.0.
set_client_option() | Called by the following user API calls: mysqli_options(), mysqli_ssl_set(), mysqli_connect(), mysql_connect(), mysql_pconnect(). | Since 1.0.0.
set_autocommit() | Called by the following user API calls: mysqli_autocommit(), PDO::setAttribute(PDO::ATTR_AUTOCOMMIT). | Since 1.0.0. PHP >= 5.4.0.
ssl_set() | Called by the following user API calls: mysqli_ssl_set(). | Since 1.1.0.

Broadcasting and lazy connections

The plugin does not proxy or "remember" all settings to apply them on connections opened in the future. This is important to remember, if using lazy connections. Lazy connections are connections which are not opened before the client sends the first connection. Use of lazy connections is the default plugin action.

The following connection library calls each changed state, and their execution is recorded for later use when lazy connections are opened. This helps ensure that the connection state of all connections in the connection pool are comparable.

Library call | Notes | Version
change_user() | User, password and database recorded for future use. | Since 1.1.0.
select_db | Database recorded for future use. | Since 1.1.0.
set_charset() | Calls set_client_option(MYSQL_SET_CHARSET_NAME, charset) on lazy connection to ensure charset will be used upon opening the lazy connection. | Since 1.1.0.
set_autocommit() | Adds SET AUTOCOMMIT=0|1 to the list of init commands of a lazy connection using set_client_option(MYSQL_INIT_COMMAND, "SET AUTOCOMMIT=...%quot;). | Since 1.1.0. PHP >= 5.4.0.
Предостережение

Connection state

The connection state is not only changed by API calls. Thus, even if PECL mysqlnd_ms monitors all API calls, the application must still be aware. Ultimately, it is the applications responsibility to maintain the connection state, if needed.

Charsets and string escaping

Due to the use of lazy connections, which are a default, it can happen that an application tries to escape a string for use within SQL statements before a connection has been established. In this case string escaping is not possible. The string escape function does not know what charset to use before a connection has been established.

To overcome the problem a new configuration setting server_charset has been introduced in version 1.4.0.

Attention has to be paid on escaping strings with a certain charset but using the result on a connection that uses a different charset. Please note, that PECL/mysqlnd_ms manipulates connections and one application level connection represents a pool of multiple connections that all may have different default charsets. It is recommended to configure the servers involved to use the same default charsets. The configuration setting server_charset does help with this situation as well. If using server_charset, the plugin will set the given charset on all newly opened connections.


Local transaction handling

Transaction handling is fundamentally changed. An SQL transaction is a unit of work that is run on one database server. The unit of work consists of one or more SQL statements.

By default the plugin is not aware of SQL transactions. The plugin may switch connections for load balancing at any point in time. Connection switches may happen in the middle of a transaction. This is against the nature of an SQL transaction. By default, the plugin is not transaction safe.

Any kind of MySQL load balancer must be hinted about the begin and end of a transaction. Hinting can either be done implicitly by monitoring API calls or using SQL hints. Both options are supported by the plugin, depending on your PHP version. API monitoring requires PHP 5.4.0 or newer. The plugin, like any other MySQL load balancer, cannot detect transaction boundaries based on the MySQL Client Server Protocol. Thus, entirely transparent transaction aware load balancing is not possible. The least intrusive option is API monitoring, which requires little to no application changes, depending on your application.

Please, find examples of using SQL hints or the API monitoring in the examples section. The details behind the API monitoring, which makes the plugin transaction aware, are described below.

Beginning with PHP 5.4.0, the mysqlnd library allows this plugin to subclass the library C API call set_autocommit(), to detect the status of autocommit mode.

The PHP MySQL extensions either issue a query (such as SET AUTOCOMMIT=0|1), or use the mysqlnd library call set_autocommit() to control the autocommit setting. If an extension makes use of set_autocommit(), the plugin can be made transaction aware. Transaction awareness cannot be achieved if using SQL to set the autocommit mode. The library function set_autocommit() is called by the mysqli_autocommit() and PDO::setAttribute(PDO::ATTR_AUTOCOMMIT) user API calls.

The plugin configuration option trx_stickiness=master can be used to make the plugin transactional aware. In this mode, the plugin stops load balancing if autocommit becomes disabled, and directs all statements to the master until autocommit gets enabled.

An application that does not want to set SQL hints for transactions but wants to use the transparent API monitoring to avoid application changes must make sure that the autocommit settings is changed exclusively through the listed API calls.

API based transaction boundary detection has been improved with PHP 5.5.0 and PECL/mysqlnd_ms 1.5.0 to cover not only calls to mysqli_autocommit() but also mysqli_begin(), mysqli_commit() and mysqli_rollback().


Error handling

Applications using PECL/mysqlnd_ms should implement proper error handling for all user API calls. And because the plugin changes the semantics of a connection handle, API calls may return unexpected errors. If using the plugin on a connection handle that no longer represents an individual network connection, but a connection pool, an error code and error message will be set on the connection handle whenever an error occurs on any of the network connections behind.

If using lazy connections, which is the default, connections are not opened until they are needed for query execution. Therefore, an API call for a statement execution may return a connection error. In the example below, an error is provoked when trying to run a statement on a slave. Opening a slave connection fails because the plugin configuration file lists an invalid host name for the slave.

Пример #1 Provoking a connection error

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "invalid_host_name",
            }
        },
        "lazy_connections": 1
    }
}

The explicit activation of lazy connections is for demonstration purpose only.

Пример #2 Connection error on query execution

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 2, run on slave because SELECT, provoke connection error */
if (!($res = $mysqli->query("SELECT @myrole AS _role"))) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
} else {
 $row = $res->fetch_assoc();
 $res->close();
 printf("@myrole = '%s'\n", $row['_role']);
}
$mysqli->close();
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Warning:  mysqli::query(): php_network_getaddresses: getaddrinfo failed: Name or service not known in %s on line %d
PHP Warning:  mysqli::query(): [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (trying to connect via tcp://invalid_host_name:3306) in %s on line %d
[2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

Applications are expected to handle possible connection errors by implementing proper error handling.

Depending on the use case, applications may want to handle connection errors differently from other errors. Typical connection errors are 2002 (CR_CONNECTION_ERROR) - Can't connect to local MySQL server through socket '%s' (%d), 2003 (CR_CONN_HOST_ERROR) - Can't connect to MySQL server on '%s' (%d) and 2005 (CR_UNKNOWN_HOST) - Unknown MySQL server host '%s' (%d). For example, the application may test for the error codes and manually perform a fail over. The plugins philosophy is not to offer automatic fail over, beyond master fail over, because fail over is not a transparent operation.

Пример #3 Provoking a connection error

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "invalid_host_name"
            },
            "slave_1": {
                "host": "192.168.78.136"
            }
        },
        "lazy_connections": 1,
        "filters": {
            "roundrobin": [

            ]
        }
    }
}

Explicitly activating lazy connections is done for demonstration purposes, as is round robin load balancing as opposed to the default random once type.

Пример #4 Most basic failover

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Connection 1, connection bound SQL user variable, no SELECT thus run on master */
if (!$mysqli->query("SET @myrole='master'")) {
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Connection 2, first slave */
$res = $mysqli->query("SELECT VERSION() AS _version");
/* Hackish manual fail over */
if (2002 == $mysqli->errno || 2003 == $mysqli->errno || 2004 == $mysqli->errno) {
  /* Connection 3, first slave connection failed, trying next slave */
  $res = $mysqli->query("SELECT VERSION() AS _version");
}

if (!$res) {
  printf("ERROR, [%d] '%s'\n", $mysqli->errno, $mysqli->error);
} else {
 /* Error messages are taken from connection 3, thus no error */
 printf("SUCCESS, [%d] '%s'\n", $mysqli->errno, $mysqli->error);
 $row = $res->fetch_assoc();
 $res->close();
 printf("version = %s\n", $row['_version']);
}
$mysqli->close();
?>

Результатом выполнения данного примера будет что-то подобное:

[1045] Access denied for user 'username'@'localhost' (using password: YES)
PHP Warning:  mysqli::query(): php_network_getaddresses: getaddrinfo failed: Name or service not known in %s on line %d
PHP Warning:  mysqli::query(): [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known (trying to connect via tcp://invalid_host_name:3306) in %s on line %d
SUCCESS, [0] ''
version = 5.6.2-m5-log

In some cases, it may not be easily possible to retrieve all errors that occur on all network connections through a connection handle. For example, let's assume a connection handle represents a pool of three open connections. One connection to a master and two connections to the slaves. The application changes the current database using the user API call mysqli_select_db(), which then calls the mysqlnd library function to change the schemata. mysqlnd_ms monitors the function, and tries to change the current database on all connections to harmonize their state. Now, assume the master succeeds in changing the database, and both slaves fail. Upon the initial error from the first slave, the plugin will set an appropriate error on the connection handle. The same is done when the second slave fails to change the database. The error message from the first slave is lost.

Such cases can be debugged by either checking for errors of the type E_WARNING (see above) or, if no other option, investigation of the mysqlnd_ms debug and trace log.


Transient errors

Some distributed database clusters make use of transient errors. A transient error is a temporary error that is likely to disappear soon. By definition it is safe for a client to ignore a transient error and retry the failed operation on the same database server. The retry is free of side effects. Clients are not forced to abort their work or to fail over to another database server immediately. They may enter a retry loop before to wait for the error to disappear before giving up on the database server. Transient errors can be seen, for example, when using MySQL Cluster. But they are not bound to any specific clustering solution per se.

PECL/mysqlnd_ms can perform an automatic retry loop in case of a transient error. This increases distribution transparency and thus makes it easier to migrate an application running on a single database server to run on a cluster of database servers without having to change the source of the application.

The automatic retry loop will repeat the requested operation up to a user configurable number of times and pause between the attempts for a configurable amount of time. If the error disappears during the loop, the application will never see it. If not, the error is forwarded to the application for handling.

In the example below a duplicate key error is provoked to make the plugin retry the failing query two times before the error is passed to the application. Between the two attempts the plugin sleeps for 100 milliseconds.

Пример #1 Provoking a transient error

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
       },
       "transient_error": {
          "mysql_error_codes": [
            1062
          ],
          "max_retries": 2,
          "usleep_retry": 100
       }
    }
}

Пример #2 Transient error retry loop

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

if (!$mysqli->query("DROP TABLE IF EXISTS test") ||
    !$mysqli->query("CREATE TABLE test(id INT PRIMARY KEY)") ||
    !$mysqli->query("INSERT INTO test(id) VALUES (1))")) {
  printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

/* Retry loop is completely transparent. Checking statistics is
 the only way to know about implicit retries */
$stats = mysqlnd_ms_get_stats();
printf("Transient error retries before error: %d\n", $stats['transient_error_retries']);

/* Provoking duplicate key error to see statistics change */
if (!$mysqli->query("INSERT INTO test(id) VALUES (1))")) {
  printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
}

$stats = mysqlnd_ms_get_stats();
printf("Transient error retries after error: %d\n", $stats['transient_error_retries']);

$mysqli->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Transient error retries before error: 0
[1062] Duplicate entry '1' for key 'PRIMARY'
Transient error retries before error: 2

Because the execution of the retry loop is transparent from a users point of view, the example checks the statistics provided by the plugin to learn about it.

As the example shows, the plugin can be instructed to consider any error transient regardless of the database servers error semantics. The only error that a stock MySQL server considers temporary has the error code 1297. When configuring other error codes but 1297 make sure your configuration reflects the semantics of your clusters error codes.

The following mysqlnd C API calls are monitored by the plugin to check
for transient errors: query(),
change_user(), select_db(),
set_charset(), set_server_option()
prepare(), execute(),
set_autocommit(),
tx_begin(), tx_commit(),
tx_rollback(), tx_commit_or_rollback().
The corresponding user API calls have similar names.

The maximum time the plugin may sleep during the retry loop depends on the function in question. The a retry loop for query(), prepare() or execute() will sleep for up to max_retries * usleep_retry milliseconds.

However, functions that control connection state are dispatched to all connections. The retry loop settings are applied to every connection on which the command is to be run. Thus, such a function may interrupt program execution for longer than a function that is run on one server only. For example, set_autocommit() is dispatched to connections and may sleep up to (max_retries * usleep_retry) * number_of_open_connections) milliseconds. Please, keep this in mind when setting long sleep times and large retry numbers. Using the default settings of max_retries=1, usleep_retry=100 and lazy_connections=1 it is unlikely that you will ever see a delay of more than 1 second.


Failover

By default, connection failover handling is left to the user. The application is responsible for checking return values of the database functions it calls and reacting to possible errors. If, for example, the plugin recognizes a query as a read-only query to be sent to the slave servers, and the slave server selected by the plugin is not available, the plugin will raise an error after not executing the statement.

Default: manual failover

It is up to the application to handle the error and, if required, re-issue the query to trigger the selection of another slave server for statement execution. The plugin will make no attempts to failover automatically, because the plugin cannot ensure that an automatic failover will not change the state of the connection. For example, the application may have issued a query which depends on SQL user variables which are bound to a specific connection. Such a query might return incorrect results if the plugin would switch the connection implicitly as part of automatic failover. To ensure correct results, the application must take care of the failover, and rebuild the required connection state. Therefore, by default, no automatic failover is performed by the plugin.

A user that does not change the connection state after opening a connection may activate automatic failover. Please note, that automatic failover logic is limited to connection attempts. Automatic failover is not used for already established connections. There is no way to instruct the plugin to attempt failover on a connection that has been connected to MySQL already in the past.

Automatic failover

The failover policy is configured in the plugins configuration file, by using the failover configuration directive.

Automatic and silent failover can be enabled through the failover configuration directive. Automatic failover can either be configured to try exactly one master after a slave failure or, alternatively, loop over slaves and masters before returning an error to the user. The number of connection attempts can be limited and failed hosts can be excluded from future load balancing attempts. Limiting the number of retries and remembering failed hosts are considered experimental features, albeit being reasonable stable. Syntax and semantics may change in future versions.

Please note, since version 1.5.0 automatic failover is disabled for the duration of a transaction if transaction stickiness is enabled and transaction boundaries have been detected. The plugin will not switch connections for the duration of a transaction. It will also not perform automatic and silent failover. Instead an error will be thrown. It is then left to the user to handle the failure of the transaction. Please check, the trx_stickiness documentation how to do this.

A basic manual failover example is provided within the error handling section.

Standby servers

Using weighted load balancing, introduced in PECL/mysqlnd 1.4.0, it is possible to configure standby servers that are sparsely used during normal operations. A standby server that is primarily used as a worst-case standby failover target can be assigned a very low weight/priority in relation to all other servers. As long as all servers are up and running the majority of the workload is assigned to the servers which have hight weight values. Few requests will be directed to the standby system which has a very low weight value.

Upon failure of the servers with a high priority, you can still failover to the standby, which has been given a low load balancing priority by assigning a low weight to it. Failover can be some manually or automatically. If done automatically, you may want to combine it with the remember_failed option.

At this point, it is not possible to instruct the load balancer to direct no requests at all to a standby. This may not be much of a limitation given that the highest weight you can assign to a server is 65535. Given two slaves, of which one shall act as a standby and has been assigned a weight of 1, the standby will have to handle far less than one percent of the overall workload.

Failover and primary copy

Please note, if using a primary copy cluster, such as MySQL Replication, it is difficult to do connection failover in case of a master failure. At any time there is only one master in the cluster for a given dataset. The master is a single point of failure. If the master fails, clients have no target to fail over write requests. In case of a master outage the database administrator must take care of the situation and update the client configurations, if need be.


Load balancing

Four load balancing strategies are supported to distribute statements over the configured MySQL slave servers:

random

Chooses a random server whenever a statement is executed.

random once (default)

Chooses a random server after the first statement is executed, and uses the decision for the rest of the PHP request.

It is the default, and the lowest impact on the connection state.

round robin

Iterates over the list of configured servers.

user-defined via callback

Is used to implement any other strategy.

The load balancing policy is configured in the plugins configuration file using the random, roundrobin, and user filters.

Servers can be prioritized assigning a weight. A server that has been given a weight of two will get twice as many requests as a server that has been given the default weight of one. Prioritization can be handy in heterogenous environments. For example, you may want to assign more requests to a powerful machine than to a less powerful. Or, you may have configured servers that are close or far from the client, thus expose different latencies.


Read-write splitting

The plugin executes read-only statements on the configured MySQL slaves, and all other queries on the MySQL master. Statements are considered read-only if they either start with SELECT, the SQL hint /*ms=slave*/, or if a slave had been chosen for running the previous query and the query starts with the SQL hint /*ms=last_used*/. In all other cases, the query will be sent to the MySQL replication master server. It is recommended to use the constants MYSQLND_MS_SLAVE_SWITCH, MYSQLND_MS_MASTER_SWITCH and MYSQLND_MS_LAST_USED_SWITCH instead of /*ms=slave*/. See also the list of mysqlnd_ms constants.

SQL hints are a special kind of standard compliant SQL comments. The plugin does check every statement for certain SQL hints. The SQL hints are described within the mysqlnd_ms constants documentation, constants that are exported by the extension. Other systems involved with the statement processing, such as the MySQL server, SQL firewalls, and SQL proxies, are unaffected by the SQL hints, because those systems are designed to ignore SQL comments.

The built-in read-write splitter can be replaced by a user-defined filter, see also the user filter documentation.

A user-defined read-write splitter can request the built-in logic to send a statement to a specific location, by invoking mysqlnd_ms_is_select().

Замечание:

The built-in read-write splitter is not aware of multi-statements. Multi-statements are seen as one statement. The splitter will check the beginning of the statement to decide where to run the statement. If, for example, a multi-statement begins with SELECT 1 FROM DUAL; INSERT INTO test(id) VALUES (1); ... the plugin will run it on a slave although the statement is not read-only.


Filter

Замечание: Version requirement

Filters exist as of mysqlnd_ms version 1.1.0-beta.

filters. PHP applications that implement a MySQL replication cluster must first identify a group of servers in the cluster which could execute a statement before the statement is executed by one of the candidates. In other words: a defined list of servers must be filtered until only one server is available.

The process of filtering may include using one or more filters, and filters can be chained. And they are executed in the order they are defined in the plugins configuration file.

Замечание: Explanation: comparing filter chaining to pipes

The concept of chained filters can be compared to using pipes to connect command line utilities on an operating system command shell. For example, an input stream is passed to a processor, filtered, and then transferred to be output. Then, the output is passed as input to the next command, which is connected to the previous using the pipe operator.

Available filters:

  • Load balancing filters: random and roundrobin.
  • Selection filter: user, user_multi, quality_of_service.

The random filter implements the 'random' and 'random once' load balancing policies. The 'round robin' load balancing can be configured through the roundrobin filter. Setting a 'user defined callback' for server selection is possible with the user filter. The quality_of_service filter finds cluster nodes capable of delivering a certain service, for example, read-your-writes or, not lagging more seconds behind the master than allowed.

Filters can accept parameters to change their behavior. The random filter accepts an optional sticky parameter. If set to true, the filter changes load balancing from random to random once. Random picks a random server every time a statement is to be executed. Random once picks a random server when the first statement is to be executed and uses the same server for the rest of the PHP request.

One of the biggest strength of the filter concept is the possibility to chain filters. This strength does not become immediately visible because the random, roundrobin and user filters are supposed to output no more than one server. If a filter reduces the list of candidates for running a statement to only one server, it makes little sense to use that one server as input for another filter for further reduction of the list of candidates.

An example filter sequence that will fail:

  • Statement to be executed: SELECT 1 FROM DUAL. Passed to all filters.
  • All configured nodes are passed as input to the first filter. Master nodes: master_0. Slave nodes:slave_0, slave_1
  • Filter: random, argument sticky=1. Picks a random slave once to be used for the rest of the PHP request. Output: slave_0.
  • Output of slave_0 and the statement to be executed is passed as input to the next filter. Here: roundrobin, server list passed to filter is: slave_0.
  • Filter: roundrobin. Server list consists of one server only, round robin will always return the same server.
If trying to use such a filter sequence, the plugin may emit a warning like (mysqlnd_ms) Error while creating filter '%s' . Non-multi filter '%s' already created. Stopping in %s on line %d. Furthermore, an appropriate error on the connection handle may be set.

A second type of filter exists: multi filter. A multi filter emits zero, one or multiple servers after processing. The quality_of_service filter is an example. If the service quality requested sets an upper limit for the slave lag and more than one slave is lagging behind less than the allowed number of seconds, the filter returns more than one cluster node. A multi filter must be followed by other to further reduce the list of candidates for statement execution until a candidate is found.

A filter sequence with the quality_of_service multi filter followed by a load balancing filter.

  • Statement to be executed: SELECT sum(price) FROM orders WHERE order_id = 1. Passed to all filters.
  • All configured nodes are passed as input to the first filter. Master nodes: master_0. Slave nodes: slave_0, slave_1, slave_2, slave_3
  • Filter: quality_of_service, rule set: session_consistency (read-your-writes) Output: master_0
  • Output of master_0 and the statement to be executed is passed as input to the next filter, which is roundrobin.
  • Filter: roundrobin. Server list consists of one server. Round robin selects master_0.

A filter sequence must not end with a multi filter. If trying to use a filter sequence which ends with a multi filter the plugin may emit a warning like (mysqlnd_ms) Error in configuration. Last filter is multi filter. Needs to be non-multi one. Stopping in %s on line %d. Furthermore, an appropriate error on the connection handle may be set.

Замечание: Speculation towards the future: MySQL replication filtering

In future versions, there may be additional multi filters. For example, there may be a table filter to support MySQL replication filtering. This would allow you to define rules for which database or table is to be replicated to which node of a replication cluster. Assume your replication cluster consists of four slaves (slave_0, slave_1, slave_2, slave_3) two of which replicate a database named sales (slave_0, slave_1). If the application queries the database slaves, the hypothetical table filter reduces the list of possible servers to slave_0 and slave_1. Because the output and list of candidates consists of more than one server, it is necessary and possible to add additional filters to the candidate list, for example, using a load balancing filter to identify a server for statement execution.


Service level and consistency

Замечание: Version requirement

Service levels have been introduced in mysqlnd_ms version 1.2.0-alpha. mysqlnd_ms_set_qos() requires PHP 5.4.0 or newer.

The plugin can be used with different kinds of MySQL database clusters. Different clusters can deliver different levels of service to applications. The service levels can be grouped by the data consistency levels that can be achieved. The plugin knows about:

  • eventual consistency
  • session consistency
  • strong consistency

Depending how a cluster is used it may be possible to achieve higher service levels than the default one. For example, a read from an asynchronous MySQL replication slave is eventual consistent. Thus, one may say the default consistency level of a MySQL replication cluster is eventual consistency. However, if the master only is used by a client for reading and writing during a session, session consistency (read your writes) is given. PECL mysqlnd 1.2.0 abstracts the details of choosing an appropriate node for any of the above service levels from the user.

Service levels can be set through the qualify-of-service filter in the plugins configuration file and at runtime using the function mysqlnd_ms_set_qos().

The plugin defines the different service levels as follows.

Eventual consistency is the default service provided by an asynchronous cluster, such as classical MySQL replication. A read operation executed on an arbitrary node may or may not return stale data. The applications view of the data is eventual consistent.

Session consistency is given if a client can always read its own writes. An asynchronous MySQL replication cluster can deliver session consistency if clients always use the master after the first write or never query a slave which has not yet replicated the clients write operation.

The plugins understanding of strong consistency is that all clients always see the committed writes of all other clients. This is the default when using MySQL Cluster or any other cluster offering synchronous data distribution.

Service level parameters

Eventual consistency and session consistency service level accept parameters.

Eventual consistency is the service provided by classical MySQL replication. By default, all nodes qualify for read requests. An optional age parameter can be given to filter out nodes which lag more than a certain number of seconds behind the master. The plugin is using SHOW SLAVE STATUS to measure the lag. Please, see the MySQL reference manual to learn about accuracy and reliability of the SHOW SLAVE STATUS command.

Session consistency (read your writes) accepts an optional GTID parameter to consider reading not only from the master but also from slaves which already have replicated a certain write described by its transaction identifier. This way, when using asynchronous MySQL replication, read requests may be load balanced over slaves while still ensuring session consistency.

The latter requires the use of client-side global transaction id injection.

Advantages of the new approach

The new approach supersedes the use of SQL hints and the configuration option master_on_write in some respects. If an application running on top of an asynchronous MySQL replication cluster cannot accept stale data for certain reads, it is easier to tell the plugin to choose appropriate nodes than prefixing all read statements in question with the SQL hint to enforce the use of the master. Furthermore, the plugin may be able to use selected slaves for reading.

The master_on_write configuration option makes the plugin use the master after the first write (session consistency, read your writes). In some cases, session consistency may not be needed for the rest of the session but only for some, few read operations. Thus, master_on_write may result in more read load on the master than necessary. In those cases it is better to request a higher than default service level only for those reads that actually need it. Once the reads are done, the application can return to default service level. Switching between service levels is only possible using mysqlnd_ms_set_qos().

Performance considerations

A MySQL replication cluster cannot tell clients which slaves are capable of delivering which level of service. Thus, in some cases, clients need to query the slaves to check their status. PECL mysqlnd_ms transparently runs the necessary SQL in the background. However, this is an expensive and slow operation. SQL statements are run if eventual consistency is combined with an age (slave lag) limit and if session consistency is combined with a global transaction ID.

If eventual consistency is combined with an maximum age (slave lag), the plugin selects candidates for statement execution and load balancing for each statement as follows. If the statement is a write all masters are considered as candidates. Slaves are not checked and not considered as candidates. If the statement is a read, the plugin transparently executes SHOW SLAVE STATUS on every slaves connection. It will loop over all connections, send the statement and then start checking for results. Usually, this is slightly faster than a loop over all connections in which for every connection a query is send and the plugin waits for its results. A slave is considered a candidate if SHOW SLAVE STATUS reports Slave_IO_Running=Yes, Slave_SQL_Running=Yes and Seconds_Behind_Master is less or equal than the allowed maximum age. In case of an SQL error, the plugin emits a warning but does not set an error on the connection. The error is not set to make it possible to use the plugin as a drop-in.

If session consistency is combined with a global transaction ID, the plugin executes the SQL statement set with the fetch_last_gtid entry of the global_transaction_id_injection section from the plugins configuration file. Further details are identical to those described above.

In version 1.2.0 no additional optimizations are done for executing background queries. Future versions may contain optimizations, depending on user demand.

If no parameters and options are set, no SQL is needed. In that case, the plugin consider all nodes of the type shown below.

  • eventual consistency, no further options set: all masters, all slaves
  • session consistency, no further options set: all masters
  • strong consistency (no options allowed): all masters

Throttling

The quality of service filter can be combined with Global transaction IDs to throttle clients. Throttling does reduce the write load on the master by slowing down clients. If session consistency is requested and global transactions identifier are used to check the status of a slave, the check can be done in two ways. By default a slave is checked and skipped immediately if it does not match the criteria for session consistency. Alternatively, the plugin can wait for a slave to catch up to the master until session consistency is possible. To enable the throttling, you have to set wait_for_gtid_timeout configuration option.


Global transaction IDs

Замечание: Version requirement

Client side global transaction ID injection exists as of mysqlnd_ms version 1.2.0-alpha. Transaction boundaries are detected by monitoring API calls. This is possible as of PHP 5.4.0. Please, see also Transaction handling.

As of MySQL 5.6.5-m8 the MySQL server features built-in global transaction identifiers. The MySQL built-in global transaction ID feature is supported by PECL/mysqlnd_ms 1.3.0-alpha or later. Neither are client-side transaction boundary monitoring nor any setup activities required if using the server feature.

Please note, all MySQL 5.6 production versions do not provide clients with enough information to use GTIDs for enforcing session consistency. In the worst case, the plugin will choose the master only.

Idea and client-side emulation

PECL/mysqlnd_ms can do client-side transparent global transaction ID injection. In its most basic form, a global transaction identifier is a counter which is incremented for every transaction executed on the master. The counter is held in a table on the master. Slaves replicate the counter table.

In case of a master failure a database administrator can easily identify the most recent slave for promoting it as a new master. The most recent slave has the highest transaction identifier.

Application developers can ask the plugin for the global transaction identifier (GTID) for their last successful write operation. The plugin will return an identifier that refers to an transaction no older than that of the clients last write operation. Then, the GTID can be passed as a parameter to the quality of service (QoS) filter as an option for session consistency. Session consistency ensures read your writes. The filter ensures that all reads are either directed to a master or a slave which has replicated the write referenced by the GTID.

When injection is done

The plugin transparently maintains the GTID table on the master. In autocommit mode the plugin injects an UPDATE statement before executing the users statement for every master use. In manual transaction mode, the injection is done before the application calls commit() to close a transaction. The configuration option report_error of the GTID section in the plugins configuration file is used to control whether a failed injection shall abort the current operation or be ignored silently (default).

Please note, the PHP version requirements for transaction boundary monitoring and their limits.

Limitations

Client-side global transaction ID injection has shortcomings. The potential issues are not specific to PECL/mysqlnd_ms but are rather of general nature.

  • Global transaction ID tables must be deployed on all masters and replicas.
  • The GTID can have holes. Only PHP clients using the plugin will maintain the table. Other clients will not.
  • Client-side transaction boundary detection is based on API calls only.
  • Client-side transaction boundary detection does not take implicit commit into account. Some MySQL SQL statements cause an implicit commit and cannot be rolled back.

Using server-side global transaction identifier

Starting with PECL/mysqlnd_ms 1.3.0-alpha the MySQL 5.6.5-m8 or newer built-in global transaction identifier feature is supported. Use of the server feature lifts all of the above listed limitations. Please, see the MySQL Reference Manual for limitations and preconditions for using server built-in global transaction identifiers.

Whether to use the client-side emulation or the server built-in functionality is a question not directly related to the plugin, thus it is not discussed in depth. There are no plans to remove the client-side emulation and you can continue to use it, if the server-side solution is no option. This may be the case in heterogenous environments with old MySQL server or, if any of the server-side solution limitations is not acceptable.

From an applications perspective there is hardly a difference in using one or the other approach. The following properties differ.

  • Client-side emulation, as shown in the manual, is using an easy to compare sequence number for global transactions. Multi-master is not handled to keep the manual examples easy. Server-side built-in feature is using a combination of a server identifier and a sequence number as a global transaction identifier. Comparison cannot use numeric algebra. Instead a SQL function must be used. Please, see the MySQL Reference Manual for details. Server-side built-in feature of MySQL 5.6 cannot be used to ensure session consistency under all circumstances. Do not use it for the quality-of-service feature. Here is a simple example why it will not give reliable results. There are more edge cases that cannot be covered with limited functionality exported by the server. Currently, clients can ask a MySQL replication master for a list of all executed global transaction IDs only. If a slave is configured not to replicate all transactions, for example, because replication filters are set, then the slave will never show the same set of executed global transaction IDs. Albeit the slave may have replicated a clients writes and it may be a candidate for a consistent read, it will never be considered by the plugin. Upon write the plugin learns from the master that the servers complete transaction history consists of GTID=1..3. There is no way for the plugin to ask for the GTID of the write transaction itself, say GTID=3. Assume that a slave does not replicate the transactions GTID=1..2 but only GTID=3 because of a replication feature. Then, the slaves transaction history is GTID=3. However, the plugin tries to find a node which has a transaction history of GITD=1...3. Albeit the slave has replicated the clients write and session consistency may be achieved when reading from the slave, it will not be considered by the plugin. This is not a fault of the plugin implementation but a feature gap on the server side. Please note, this is a trivial case to illustrate the issue there are other issues. In sum you are asked not to attempt using MySQL 5.6 built-in GTIDs for enforcing session consistency. Sooner or later the load balancing will stop working properly and the plugin will direct all session consistency requests to the master.
  • Plugin global transaction ID statistics are only available with client-side emulation because they monitor the emulation.

Замечание: Global transaction identifiers in distributed systems

Global transaction identifiers can serve multiple purposes in the context of distributed systems, such as a database cluster. Global transaction identifiers can be used for, for example, system wide identification of transactions, global ordering of transactions, heartbeat mechanism and for checking the replication status of replicas. PECL/mysqlnd_ms, a clientside driver based software, does focus on using GTIDs for tasks that can be handled at the client, such as checking the replication status of replicas for asynchronous replication setups.


Cache integration

Замечание: Version requirement

The feature requires use of PECL/mysqlnd_ms 1.3.0-beta or later, and PECL/mysqlnd_qc 1.1.0-alpha or newer. PECL/mysqlnd_ms must be compiled to support the feature. PHP 5.4.0 or newer is required.

Замечание: Setup: extension load order

PECL/mysqlnd_ms must be loaded before PECL/mysqlnd_qc, when using shared extensions.

Замечание: Feature stability

The cache integration is of beta quality.

Замечание: Suitable MySQL clusters

The feature is targeted for use with MySQL Replication (primary copy). Currently, no other kinds of MySQL clusters are supported. Users of such cluster must control PECL/mysqlnd_qc manually if they are interested in client-side query caching.

Support for MySQL replication clusters (asynchronous primary copy) is the main focus of PECL/mysqlnd_ms. The slaves of a MySQL replication cluster may or may not reflect the latest updates from the master. Slaves are asynchronous and can lag behind the master. A read from a slave is eventual consistent from a cluster-wide perspective.

The same level of consistency is offered by a local cache using time-to-live (TTL) invalidation strategy. Current data or stale data may be served. Eventually, data searched for in the cache is not available and the source of the cache needs to be accessed.

Given that both a MySQL Replication slave (asynchronous secondary) and a local TTL-driven cache deliver the same level of service it is possible to transparently replace a remote database access with a local cache access to gain better possibility.

As of PECL/mysqlnd_ms 1.3.0-beta the plugin is capable of transparently controlling PECL/mysqlnd_ms 1.1.0-alpha or newer to cache a read-only query if explicitly allowed by setting an appropriate quality of service through mysqlnd_ms_set_qos(). P lease, see the quickstart for a code example. Both plugins must be installed, PECL/mysqlnd_ms must be compiled to support the cache feature and PHP 5.4.0 or newer has to be used.

Applications have full control of cache usage and can request fresh data at any time, if need be. The cache usage can be enabled and disabled time during the execution of a script. The cache will be used if mysqlnd_ms_set_qos() sets the quality of service to eventual consistency and enables cache usage. Cache usage is disabled by requesting higher consistency levels, for example, session consistency (read your writes). Once the quality of service has been relaxed to eventual consistency the cache can be used again.

If caching is enabled for a read-only statement, PECL/mysqlnd_ms may inject SQL hints to control caching by PECL/mysqlnd_qc. It may modify the SQL statement it got from the application. Subsequent SQL processors are supposed to ignore the SQL hints. A SQL hint is a SQL comment. Comments must not be ignored, for example, by the database server.

The TTL of a cache entry is computed on a per statement basis. Applications set an maximum age for the data they want to retrieve using mysqlnd_ms_set_qos(). The age sets an approximate upper limit of how many seconds the data returned may lag behind the master.

The following logic is used to compute the actual TTL if caching is enabled. The logic takes the estimated slave lag into account for choosing a TTL. If, for example, there are two slaves lagging 5 and 10 seconds behind and the maximum age allowed is 60 seconds, the TTL is set to 50 seconds. Please note, the age setting is no more than an estimated guess.

  • Check whether the statement is read-only. If not, don't cache.
  • If caching is enabled, check the slave lag of all configured slaves. Establish slave connections if none exist so far and lazy connections are used.
  • Send SHOW SLAVE STATUS to all slaves. Do not wait for the first slave to reply before sending to the second slave. Clients often wait long for replies, thus we send out all requests in a burst before fetching in a second stage.
  • Loop over all slaves. For every slave wait for its reply. Do not start checking another slave before the currently waited for slave has replied. Check for Slave_IO_Running=Yes and Slave_SQL_Running=Yes. If both conditions hold true, fetch the value of Seconds_Behind_Master. In case of any errors or if conditions fail, set an error on the slave connection. Skip any such slave connection for the rest of connection filtering.
  • Search for the maximum value of Seconds_Behind_Master from all slaves that passed the previous conditions. Subtract the value from the maximum age provided by the user with mysqlnd_ms_set_qos(). Use the result as a TTL.
  • The filtering may sort out all slaves. If so, the maximum age is used as TTL, because the maximum lag found equals zero. It is perfectly valid to sort out all slaves. In the following it is up to subsequent filter to decide what to do. The built-in load balancing filter will pick the master.
  • Inject the appropriate SQL hints to enable caching by PECL/mysqlnd_qc.
  • Proceed with the connection filtering, e.g. apply load balancing rules to pick a slave.
  • PECL/mysqlnd_qc is loaded after PECL/mysqlnd_ms by PHP. Thus, it will see all query modifications of PECL/mysqlnd_ms and cache the query if instructed to do so.

The algorithm may seem expensive. SHOW SLAVE STATUS is a very fast operation. Given a sufficient number of requests and cache hits per second the cost of checking the slaves lag can easily outweigh the costs of the cache decision.

Suggestions on a better algorithm are always welcome.


Supported clusters

Any application using any kind of MySQL cluster is faced with the same tasks:

  • Identify nodes capable of executing a given statement with the required service level
  • Load balance requests within the list of candidates
  • Automatic fail over within candidates, if needed

The plugin is optimized for fulfilling these tasks in the context of a classical asynchronous MySQL replication cluster consisting of a single master and many slaves (primary copy). When using classical, asynchronous MySQL replication all of the above listed tasks need to be mastered at the client side.

Other types of MySQL cluster may have lower requirements on the application side. For example, if all nodes in the cluster can answer read and write requests, no read-write splitting needs to be done (multi-master, update-all). If all nodes in the cluster are synchronous, they automatically provide the highest possible quality of service which makes choosing a node easier. In this case, the plugin may serve the application after some reconfiguration to disable certain features, such as built-in read-write splitting.

Замечание: Documentation focus

The documentation focusses describing the use of the plugin with classical asynchronous MySQL replication clusters (primary copy). Support for this kind of cluster has been the original development goal. Use of other clusters is briefly described below. Please note, that this is still work in progress.

Primary copy (MySQL Replication)

This is the primary use case of the plugin. Follow the hints given in the descriptions of each feature.

  • Configure one master and one or more slaves. Server configuration details are given in the setup section.
  • Use random load balancing policy together with the sticky flag.
  • If you do not plan to use the service level API calls, add the master on write flag.
  • Please, make yourself aware of the properties of automatic failover before adding a failover directive.
  • Consider the use of trx_stickiness to execute transactions on the primary only. Please, read carefully how it works before you rely on it.

Пример #1 Enabling the plugin (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini

Пример #2 Basic plugin configuration (mysqlnd_ms_plugin.ini) for MySQL Replication

{
  "myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      }
    },
    "slave": {
      "slave_0": {
        "host": "127.0.0.1",
        "port": 3308
      },
      "slave_1": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "filters": {
      "random": {
        "sticky": "1"
      }
    }
  }
}

Primary copy with multi primaries (MMM - MySQL Multi Master)

MySQL Replication allows you to create cluster topologies with multiple masters (primaries). Write-write conflicts are not handled by the replication system. This is no update anywhere setup. Thus, data must be partitioned manually and clients must redirected in accordance to the partitioning rules. The recommended setup is equal to the sharding setup below.

Manual sharding, possibly combined with primary copy and multiple primaries

Use SQL hints and the node group filter for clusters that use data partitioning but leave query redirection to the client. The example configuration shows a multi master setup with two shards.

Пример #3 Multiple primaries - multi master (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini
mysqlnd_ms.multi_master=1

Пример #4 Primary copy with multiple primaries and paritioning

{
  "myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      }
      "master_2": {
        "host": "192.168.2.27",
        "socket": "3306"
      }
    },
    "slave": {
      "slave_1": {
        "host": "127.0.0.1",
        "port": 3308
      },
      "slave_2": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "filters": {
      "node_groups": {
        "Partition_A" : {
          "master": ["master_1"],
          "slave": ["slave_1"]
        },
        "Partition_B" : {
          "master": ["master_2"],
          "slave": ["slave_2"]
        }
      },
      "roundrobin": []
    }
  }
}

The plugin can also be used with a loose collection of unrelated shards. For such a cluster, configure masters only and disable read write splitting. The nodes of such a cluster are called masters in the plugin configuration as they accept both reads and writes for their partition.

Using synchronous update everywhere clusters such as MySQL Cluster

MySQL Cluster is a synchronous cluster solution. All cluster nodes accept read and write requests. In the context of the plugin, all nodes shall be considered as masters.

Use the load balancing and fail over features only.

  • Disable the plugins built-in read-write splitting.
  • Configure masters only.
  • Consider random once load balancing strategy, which is the plugins default. If random once is used, only masters are configured and no SQL hints are used to force using a certain node, no connection switches will happen for the duration of a web request. Thus, no special handling is required for transactions. The plugin will pick one master at the beginning of the PHP script and use it until the script terminates.
  • Do not set the quality of service. All nodes have all the data. This automatically gives you the highest possible service quality (strong consistency).
  • Do not enable client-side global transaction injection. It is neither required to help with server-side fail over nor to assist the quality of service filter choosing an appropriate node.

Disabling built-in read-write splitting.

  • Set mysqlnd_ms.disable_rw_split=1
  • Do not use SQL hints to enforce the use of slaves

Configure masters only.

  • Set mysqlnd_ms.multi_master=1.
  • Do not configure any slaves.
  • Set failover=loop_before_master in the plugins configuration file to avoid warnings about the empty slave list and to make the failover logic loop over all configured masters before emitting an error. Please, note the warnings about automatic failover given in the previous sections.

Пример #5 Multiple primaries - multi master (php.ini)

mysqlnd_ms.enable=1
mysqlnd_ms.config_file=/path/to/mysqlnd_ms_plugin.ini
mysqlnd_ms.multi_master=1
mysqlnd_ms.disable_rw_split=1

Пример #6 Synchronous update anywhere cluster

"myapp": {
    "master": {
      "master_1": {
        "host": "localhost",
        "socket": "\/tmp\/mysql57.sock"
      },
      "master_2": {
        "host": "192.168.2.28",
        "port": 3306
      }
    },
    "slave": {
    },
    "filters": {
      "roundrobin": {
      }
    },
    "failover": {
      "strategy": "loop_before_master",
      "remember_failed": true
    }
  }
}

If running an update everywhere cluster that has no built-in partitioning to avoid hot spots and high collision rates, consider using the node groups filter to keep updates on a frequently accessed table on one of the nodes. This may help to reduce collision rates and thus improve performance.


XA/Distributed transactions

Замечание: Version requirement

XA related functions have been introduced in PECL/mysqlnd_ms version 1.6.0-alpha.

Замечание: Early adaptors wanted

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments, although early lab tests indicate reasonable quality.

Please, contact the development team if you are interested in this feature. We are looking for real life feedback to complement the feature.

Below is a list of some feature restrictions.

  • The feature is not yet compatible with the MySQL Fabric support . This limitation is soon to be lifted.

    XA transaction identifier are currently restricted to numbers. This limitation will be lifted upon request, it is a simplification used during the initial implementation.

Замечание: MySQL server restrictions

The XA support by the MySQL server has some restrictions. Most noteably, the servers binary log may lack changes made by XA transactions in case of certain errors. Please, see the MySQL manual for details.

XA/Distributed transactions can spawn multiple MySQL servers. Thus, they may seem like a perfect tool for sharded MySQL clusters, for example, clusters managed with MySQL Fabric. PECL/mysqlnd_ms hides most of the SQL commands to control XA transactions and performs automatic administrative tasks in cases of errors, to provide the user with a comprehensive API. Users should setup the plugin carefully and be well aware of server restrictions prior to using the feature.

Пример #1 General pattern for XA transactions

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");

/* BEGIN */
mysqlnd_ms_xa_begin($mysqli, 1 /* xa id */);

/* run queries on various servers */
$mysqli->query("UPDATE some_table SET col_a = 1");
...

/* COMMIT */
mysqlnd_ms_xa_commit($link, 1);
?>

XA transactions use the two-phase commit protocol. The two-phase commit protocol is a blocking protocol. During the first phase participating servers begin a transaction and the client carries out its work. This phase is followed by a second voting phase. During voting, the servers first make a firm promise that they are ready to commit the work even in case of their possible unexpected failure. Should a server crash in this phase, it will still recall the aborted transaction after recover and wait for the client to decide on whether it shall be committed or rolled back.

Should a client that has initiated a global transaction crash after all the participating servers gave their promise to be ready to commit, then the servers must wait for a decision. The servers are not allowed to unilaterally decide on the transaction.

A client crash or disconnect from a participant, a server crash or server error during the fist phase of the protocol is uncritical. In most cases, the server will forget about the XA transaction and its work is rolled back. Additionally, the plugin tries to reach out to as many participants as it can to instruct the server to roll back the work immediately. It is not possible to disable this implicit rollback carried out by PECL/mysqlnd_ms in case of errors during the first phase of the protocol. This design decision has been made to keep the implementation simple.

An error during the second phase of the commit protocol can develop into a more severe situation. The servers will not forget about prepared but unfinished transactions in all cases. The plugin will not attempt to solve these cases immediately but waits for optional background garbage collection to ensure progress of the commit protocol. It is assumed that a solution will take significant time as it may include waiting for a participating server to recover from a crash. This time span may be longer than a developer and end user expects when trying to commit a global transaction with mysqlnd_ms_xa_commit(). Thus, the function returns with the unfinished global transaction still requiring attention. Please, be warned that at this point, it is not yet clear whether the global transaction will be committed or rolled back later on.

Errors during the second phase can be ignored, handled by yourself or solved by the build-int garbage collection logic. Ignoring them is not recommended as you may experience unfinished global transactions on your servers that block resources virtually indefinitely. Handling the errors requires knowing the participants, checking their state and issuing appropriate SQL commands on them. There are no user API calls to expose this very information. You will have to configure a state store and make the plugin record its actions in it to receive the desired facts.

Please, see the quickstart and related plugin configuration file settings for an example how to configure a state. In addition to configuring a state store, you have to setup some SQL tables. The table definitions are given in the description of the plugin configuration settings.

Setting up and configuring a state store is also a precondition for using the built-in garbage collection for XA transactions that fail during the second commit phase. Recording information about ongoing XA transactions is an unavoidable extra task. The extra task consists of updating the state store after each and every operation that changes the state of the global transaction itself (started, committed, rolled back, errors and aborts), the addition of participants (host, optionally user and password required to connect) and any changes to a participants state. Please note, depending on configuration and your security policies, these recordings may be considered sensitive. It is therefore recommended to restrict access to the state store. Unless the state store itself becomes overloaded, writing the state information may contribute noteworthy to the runtime but should overall be only a minor factor.

It is possible that the effort it takes to implement your own routines for handling XA transactions that failed during the second commit phase exceeds the benefits of using the XA feature of PECL/mysqlnd_ms in the first place. Thus, the manual focussed on using the built-on garbage collection only.

Garbage collection can be triggered manually or automatically in the background. You may want to call mysqlnd_ms_xa_gc() immediately after a commit failure to attempt to solve any failed but still open global transactions as soon as possible. You may also decide to disable the automatic background garbage collection, implement your own rule set for invoking the built-in garbage collection and trigger it when desired.

By default the plugin will start the garbage collection with a certain probability in the extensions internal RSHUTDOWN method. The request shutdown is called after your script finished. Whether the garbage collection will be triggered is determined by computing a random value between 1...1000 and comparing it with the configuration setting probability (default: 5). If the setting is greater or equal to the random value, the garbage collection will be triggered.

Once started, the garbage collection acts upon up to max_transactions_per_run (default: 100) global transactions recorded. Records include successfully finished but also unfinished XA transactions. Records for successful transactions are removed and unfinished transactions are attempted to be solved. There are no statistics that help you finding the right balance between keeping garbage collection runs short by limiting the number of transactions considered per run and preventing the garbage collection to fall behind, resulting in many records.

For each failed XA transaction the garbage collection makes max_retries (default: 5) attempts to finish it. After that PECL/mysqlnd_ms gives up. There are two possible reasons for this. Either a participating server crashed and has not become accessible again within max_retries invocations of the garbage collection, or there is a situation that the built-in garbage collection cannot cope with. Likely, the latter would be considered a bug. However, you can manually force more garbage collection runs calling mysqlnd_ms_xa_gc() with the appropriate parameter set. Should even those function runs fail to solve the situation, then the problem must be solved by an operator.

The function mysqlnd_ms_get_stats() provides some statistics on how many XA transactions have been started, committed, failed or rolled back.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Plugin configuration file (>=1.1.x)


Требования

PHP 5.3.6 or newer. Some advanced functionality requires PHP 5.4.0 or newer.

The mysqlnd_ms replication and load balancing plugin supports all PHP applications and all available PHP MySQL extensions (mysqli, mysql, PDO_MYSQL). The PHP MySQL extension must be configured to use mysqlnd in order to be able to use the mysqlnd_ms plugin for mysqlnd.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/mysqlnd_ms

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Mysqlnd_ms Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
mysqlnd_ms.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.force_config_usage | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.ini_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.config_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.collect_statistics | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.multi_master | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.disable_rw_split | 0 | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

mysqlnd_ms.enable integer

Enables or disables the plugin. If disabled, the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.

mysqlnd_ms.force_config_usage integer

If enabled, the plugin checks if the host (server) parameters value of any MySQL connection attempt, matches a section name from the plugin configuration file. If not, the connection attempt is blocked.

This setting is not only useful to restrict PHP to certain servers but also to debug configuration file problems. The configuration file validity is checked at two different stages. The first check is performed when PHP begins to handle a web request. At this point the plugin reads and decodes the configuration file. Errors thrown at this early stage in an extensions life cycle may not be shown properly to the user. Thus, the plugin buffers the errors, if any, and additionally displays them when establishing a connection to MySQL. By default a buffered startup error will emit an error of type E_WARNING. If force_config_usage is set, the error type used is E_RECOVERABLE_ERROR.

Please, see also configuration file debugging notes.

mysqlnd_ms.ini_file string

Plugin specific configuration file. This setting has been renamed to mysqlnd_ms.config_file in version 1.4.0.

mysqlnd_ms.config_file string

Plugin specific configuration file. This setting superseeds mysqlnd_ms.ini_file since 1.4.0.

mysqlnd_ms.collect_statistics integer

Enables or disables the collection of statistics. The collection of statistics is disabled by default for performance reasons. Statistics are returned by the function mysqlnd_ms_get_stats().

mysqlnd_ms.multi_master integer

Enables or disables support of MySQL multi master replication setups. Please, see also supported clusters.

mysqlnd_ms.disable_rw_split integer

Enables or disables built-in read write splitting.

Controls whether load balancing and lazy connection functionality can be used independently of read write splitting. If read write splitting is disabled, only servers from the master list will be used for statement execution. All configured slave servers will be ignored.

The SQL hint MYSQLND_MS_USE_SLAVE will not be recognized. If found, the statement will be redirected to a master.

Disabling read write splitting impacts the return value of mysqlnd_ms_query_is_select(). The function will no longer propose query execution on slave servers.

Замечание: Multiple master servers

Setting mysqlnd_ms.multi_master=1 allows the plugin to use multiple master servers, instead of only the first master server of the master list.

Please, see also supported clusters.


Plugin configuration file (>=1.1.x)

The following documentation applies to PECL/mysqlnd_ms >= 1.1.0-beta. It is not valid for prior versions. For documentation covering earlier versions, see the configuration documentation for mysqlnd_ms 1.0.x and below.

Introduction

Замечание: Changelog: Feature was added in PECL/mysqlnd_ms 1.1.0-beta

The below description applies to PECL/mysqlnd_ms >= 1.1.0-beta. It is not valid for prior versions.

The plugin uses its own configuration file. The configuration file holds information about the MySQL replication master server, the MySQL replication slave servers, the server pick (load balancing) policy, the failover strategy, and the use of lazy connections.

The plugin loads its configuration file at the beginning of a web request. It is then cached in memory and used for the duration of the web request. This way, there is no need to restart PHP after deploying the configuration file. Configuration file changes will become active almost instantly.

The PHP configuration directive mysqlnd_ms.config_file is used to set the plugins configuration file. Please note, that the PHP configuration directive may not be evaluated for every web request. Therefore, changing the plugins configuration file name or location may require a PHP restart. However, no restart is required to read changes if an already existing plugin configuration file is updated.

Using and parsing JSON is efficient, and using JSON makes it easier to express hierarchical data structures than the standard php.ini format.

Пример #1 Converting a PHP array (hash) into JSON format

Or alternatively, a developer may be more familiar with the PHP array syntax, and prefer it. This example demonstrates how a developer might convert a PHP array to JSON.

<?php
$config = array(
  "myapp" => array(
    "master" => array(
      "master_0" => array(
        "host"   => "localhost",
        "socket" => "/tmp/mysql.sock",
      ),
    ),
    "slave" => array(),
  ),
);

file_put_contents("mysqlnd_ms.ini", json_encode($config, JSON_PRETTY_PRINT));
printf("mysqlnd_ms.ini file created...\n");
printf("Dumping file contents...\n");
printf("%s\n", str_repeat("-", 80));
echo file_get_contents("mysqlnd_ms.ini");
printf("\n%s\n", str_repeat("-", 80));
?>

Результат выполнения данного примера:

mysqlnd_ms.ini file created...
Dumping file contents...
--------------------------------------------------------------------------------
{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": [

        ]
    }
}
--------------------------------------------------------------------------------

A plugin configuration file consists of one or more sections. Sections are represented by the top-level object properties of the object encoded in the JSON file. Sections could also be called configuration names.

Applications reference sections by their name. Applications use section names as the host (server) parameter to the various connect methods of the mysqli, mysql and PDO_MYSQL extensions. Upon connect, the mysqlnd plugin compares the hostname with all of the section names from the plugin configuration file. If the hostname and section name match, then the plugin will load the settings for that section.

Пример #2 Using section names example

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27"
            },
            "slave_1": {
                "host": "192.168.2.27",
                "port": 3306
            }
        }
    },
    "localhost": {
        "master": [
            {
                "host": "localhost",
                "socket": "\/path\/to\/mysql.sock"
            }
        ],
        "slave": [
            {
                "host": "192.168.3.24",
                "port": "3305"
            },
            {
                "host": "192.168.3.65",
                "port": "3309"
            }
        ]
    }
}
<?php
/* All of the following connections will be load balanced */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");

$mysqli = new mysqli("localhost", "username", "password", "database");
?>

Section names are strings. It is valid to use a section name such as 192.168.2.1, 127.0.0.1 or localhost. If, for example, an application connects to localhost and a plugin configuration section localhost exists, the semantics of the connect operation are changed. The application will no longer only use the MySQL server running on the host localhost, but the plugin will start to load balance MySQL queries following the rules from the localhost configuration section. This way you can load balance queries from an application without changing the applications source code. Please keep in mind, that such a configuration may not contribute to overall readability of your applications source code. Using section names that can be mixed up with host names should be seen as a last resort.

Each configuration section contains, at a minimum, a list of master servers and a list of slave servers. The master list is configured with the keyword master, while the slave list is configured with the slave keyword. Failing to provide a slave list will result in a fatal E_ERROR level error, although a slave list may be empty. It is possible to allow no slaves. However, this is only recommended with synchronous clusters, please see also supported clusters. The main part of the documentation focusses on the use of asynchronous MySQL replication clusters.

The master and slave server lists can be optionally indexed by symbolic names for the servers they describe. Alternatively, an array of descriptions for slave and master servers may be used.

Пример #3 List of anonymous slaves

"slave": [
    {
        "host": "192.168.3.24",
        "port": "3305"
    },
    {
        "host": "192.168.3.65",
        "port": "3309"
    }
]

An anonymous server list is encoded by the JSON array type. Optionally, symbolic names may be used for indexing the slave or master servers of a server list, and done so using the JSON object type.

Пример #4 Master list using symbolic names

"master": {
    "master_0": {
        "host": "localhost"
    }
}

It is recommended to index the server lists with symbolic server names. The alias names will be shown in error messages.

The order of servers is preserved and taken into account by mysqlnd_ms. If, for example, you configure round robin load balancing strategy, the first SELECT statement will be executed on the slave that appears first in the slave server list.

A configured server can be described with the host, port, socket, db, user, password and connect_flags. It is mandatory to set the database server host using the host keyword. All other settings are optional.

Пример #5 Keywords to configure a server

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "db_server_host",
                "port": "db_server_port",
                "socket": "db_server_socket",
                "db": "database_resp_schema",
                "user": "user",
                "password": "password",
                "connect_flags": 0
            }
        },
        "slave": {
            "slave_0": {
                "host": "db_server_host",
                "port": "db_server_port",
                "socket": "db_server_socket"
            }
        }
    }
}

If a setting is omitted, the plugin will use the value provided by the user API call used to open a connection. Please, see the using section names example above.

The configuration file format has been changed in version 1.1.0-beta to allow for chained filters. Filters are responsible for filtering the configured list of servers to identify a server for execution of a given statement. Filters are configured with the filter keyword. Filters are executed by mysqlnd_ms in the order of their appearance. Defining filters is optional. A configuration section in the plugins configuration file does not need to have a filters entry.

Filters replace the pick[] setting from prior versions. The new random and roundrobin provide the same functionality.

Пример #6 New roundrobin filter, old functionality

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.137",
                "port": "3306"
            }
        },
        "filters": {
            "roundrobin": [

            ]
        }
    }
}

The function mysqlnd_ms_set_user_pick_server() has been removed. Setting a callback is now done with the user filter. Some filters accept parameters. The user filter requires and accepts a mandatory callback parameter to set the callback previously set through the function mysqlnd_ms_set_user_pick_server().

Пример #7 The user filter replaces mysqlnd_ms_set_user_pick_server()

"filters": {
    "user": {
        "callback": "pick_server"
    }
}

The validity of the configuration file is checked both when reading the configuration file and later when establishing a connection. The configuration file is read during PHP request startup. At this early stage a PHP extension may not display error messages properly. In the worst case, no error is shown and a connection attempt fails without an adequate error message. This problem has been cured in version 1.5.0.

Пример #8 Common error message in case of configuration file issues (upto version 1.5.0)

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
?>

Результат выполнения данного примера:

Warning: mysqli::mysqli(): (mysqlnd_ms) (mysqlnd_ms) Failed to parse config file [s1.json]. Please, verify the JSON in Command line code

Warning: mysqli::mysqli(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: Name or service not known in Command line code on line 1

Warning: mysqli::query(): Couldn't fetch mysqli in Command line code on line 1

Fatal error: Call to a member function fetch_assoc() on a non-object in Command line code on line 1

Since version 1.5.0 startup errors are additionally buffered and emitted when a connection attempt is made. Use the configuration directive mysqlnd_ms.force_config_usage to set the error type used to display buffered errors. By default an error of type E_WARNING will be emitted.

Пример #9 Improved configuration file validation since 1.5.0

<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
?>

Результат выполнения данного примера:

Warning: mysqli::mysqli(): (mysqlnd_ms) (mysqlnd_ms) Failed to parse config file [s1.json]. Please, verify the JSON in Command line code on line 1

It can be useful to set mysqlnd_ms.force_config_usage = 1 when debugging potential configuration file errors. This will not only turn the type of buffered startup errors into E_RECOVERABLE_ERROR but also help detecting misspelled section names.

Пример #10 Possibly more precise error due to mysqlnd_ms.force_config_usage=1

mysqlnd_ms.force_config_usage=1
<?php
$mysqli = new mysqli("invalid_section", "username", "password", "database");
?>

Результат выполнения данного примера:

Warning: mysqli::mysqli(): (mysqlnd_ms) Exclusive usage of configuration enforced but did not find the correct INI file section (invalid_section) in Command line code on line 1 line 1

Configuration Directives

Here is a short explanation of the configuration directives that can be used.

master array or object

List of MySQL replication master servers. The list of either of the JSON type array to declare an anonymous list of servers or of the JSON type object. Please, see above for examples.

Setting at least one master server is mandatory. The plugin will issue an error of type E_ERROR if the user has failed to provide a master server list for a configuration section. The fatal error may read (mysqlnd_ms) Section [master] doesn't exist for host [name_of_a_config_section] in %s on line %d.

A server is described with the host, port, socket, db, user, password and connect_flags. It is mandatory to provide at a value for host. If any of the other values is not given, it will be taken from the user API connect call, please, see also: using section names example.

Table of server configuration keywords.

Keyword Description Version
host

Database server host. This is a mandatory setting. Failing to provide, will cause an error of type E_RECOVERABLE_ERROR when the plugin tries to connect to the server. The error message may read (mysqlnd_ms) Cannot find [host] in [%s] section in config in %s on line %d.

Since 1.1.0.
port

Database server TCP/IP port.

Since 1.1.0.
socket

Database server Unix domain socket.

Since 1.1.0.
db

Database (schemata).

Since 1.1.0.
user

MySQL database user.

Since 1.1.0.
password

MySQL database user password.

Since 1.1.0.
connect_flags

Connection flags.

Since 1.1.0.

The plugin supports using only one master server. An experimental setting exists to enable multi-master support. The details are not documented. The setting is meant for development only.

slave array or object

List of one or more MySQL replication slave servers. The syntax is identical to setting master servers, please, see master above for details.

The plugin supports using one or more slave servers.

Setting a list of slave servers is mandatory. The plugin will report an error of the type E_ERROR if slave is not given for a configuration section. The fatal error message may read (mysqlnd_ms) Section [slave] doesn't exist for host [%s] in %s on line %d. Note, that it is valid to use an empty slave server list. The error has been introduced to prevent accidently setting no slaves by forgetting about the slave setting. A master-only setup is still possible using an empty slave server list.

If an empty slave list is configured and an attempt is made to execute a statement on a slave the plugin may emit a warning like mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from. upon statement execution. It is possible that another warning follows such as (mysqlnd_ms) No connection selected by the last filter.

global_transaction_id_injection array or object

Global transaction identifier configuration related to both the use of the server built-in global transaction ID feature and the client-side emulation.

Keyword Description Version
fetch_last_gtid

SQL statement for accessing the latest global transaction identifier. The SQL statement is run if the plugin needs to know the most recent global transaction identifier. This can be the case, for example, when checking MySQL Replication slave status. Also used with mysqlnd_ms_get_last_gtid().

Since 1.2.0.
check_for_gtid

SQL statement for checking if a replica has replicated all transactions up to and including ones searched for. The SQL statement is run when searching for replicas which can offer a higher level of consistency than eventual consistency. The statement must contain a placeholder #GTID which is to be replaced with the global transaction identifier searched for by the plugin. Please, check the quickstart for examples.

Since 1.2.0.
report_errors

Whether to emit an error of type warning if an issue occurs while executing any of the configured SQL statements.

Since 1.2.0.
on_commit

Client-side global transaction ID emulation only. SQL statement to run when a transaction finished to update the global transaction identifier sequence number on the master. Please, see the quickstart for examples.

Since 1.2.0.
wait_for_gtid_timeout

Instructs the plugin to wait up to wait_for_gtid_timeout seconds for a slave to catch up when searching for slaves that can deliver session consistency. The setting limits the time spend for polling the slave status. If polling the status takes very long, the total clock time spend waiting may exceed wait_for_gtid_timeout. The plugin calls sleep(1) to sleep one second between each two polls.

The setting can be used both with the plugins client-side emulation and the server-side global transaction identifier feature of MySQL 5.6.

Waiting for a slave to replicate a certain GTID needed for session consistency also means throttling the client. By throttling the client the write load on the master is reduced indirectly. A primary copy based replication system, such as MySQL Replication, is given more time to reach a consistent state. This can be desired, for example, to increase the number of data copies for high availability considerations or to prevent the master from being overloaded.

Since 1.4.0.
fabric object

MySQL Fabric related settings. If the plugin is used together with MySQL Fabric, then the plugins configuration file no longer contains lists of MySQL servers. Instead, the plugin will ask MySQL Fabric which list of servers to use to perform a certain task.

A minimum plugin configuration for use with MySQL Fabric contains a list of one or more MySQL Fabric hosts that the plugin can query. If more than one MySQL Fabric host is configured, the plugin will use a roundrobin strategy to choose among them. Other strategies are currently not available.

Пример #11 Minimum pluging configuration for use with MySQL Fabric

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ]
        }
    }
}

Each MySQL Fabric host is described using a JSON object with the following members.

Keyword Description Version
host

Host name of the MySQL Fabric host.

Since 1.6.0.
port

The TCP/IP port on which the MySQL Fabric host listens for remote procedure calls sent by clients such as the plugin.

Since 1.6.0.

The plugin is using PHP streams to communicate with MySQL Fabric through XML RPC over HTTP. By default no timeouts are set for the network communication. Thus, the plugin defaults to PHP stream default timeouts. Those defaults are out of control of the plugin itself.

An optional timeout value can be set to overrule the PHP streams default timeout setting. Setting the timeout in the plugins configuration file has the same effect as setting a timeout for a PHP user space HTTP connection established through PHP streams.

The plugins Fabric timeout value unit is seconds. The allowed value range is from 0 to 65535. The setting exists since version 1.6.

Пример #12 Optional timeout for communication with Fabric

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ],
            "timeout": 2
        }
    }
}

Transaction stickiness and MySQL Fabric logic can collide. The stickiness option disables switching between servers for the duration of a transaction. When using Fabric and sharding the user may (erroneously) start a local transaction on one share and then attempt to switch to a different shard using either mysqlnd_ms_fabric_select_shard() or mysqlnd_ms_fabric_select_global(). In this case, the plugin will not reject the request to switch servers in the middle of a transaction but allow the user to switch to another server regardless of the transaction stickiness setting used. It is clearly a user error to write such code.

If transaction stickiness is enabled and you would like to get an error of type warning when calling mysqlnd_ms_fabric_select_shard() or mysqlnd_ms_fabric_select_global(), set the boolean flag trx_warn_server_list_changes.

Пример #13 Warnings about the violation of transaction boundaries

{
    "myapp": {
        "fabric": {
            "hosts": [
                {
                    "host" : "127.0.0.1",
                    "port" : 8080
                }
            ],
            "trx_warn_serverlist_changes": 1
        },
        "trx_stickiness": "on"
    }
}
<?php
$link = new mysqli("myapp", "root", "", "test");
/*
  For the demo the call may fail.
  Failed or not we get into the state
  needed for the example.
*/
@mysqlnd_ms_fabric_select_global($link, 1);
$link->begin_transaction();
@$link->query("DROP TABLE IF EXISTS test");
/*
  Switching servers/shards is a mistake due to open
  local transaction!
*/
mysqlnd_ms_select_global($link, 1);
?>

Результат выполнения данного примера:

PHP Warning: mysqlnd_ms_fabric_select_global(): (mysqlnd_ms) Fabric server exchange in the middle of a transaction in %s on line %d

Please, consider the feature experimental. Changes to syntax and semantics may happen.

filters object

List of filters. A filter is responsible to filter the list of available servers for executing a given statement. Filters can be chained. The random and roundrobin filter replace the pick[] directive used in prior version to select a load balancing policy. The user filter replaces the mysqlnd_ms_set_user_pick_server() function.

Filters may accept parameters to refine their actions.

If no load balancing policy is set, the plugin will default to random_once. The random_once policy picks a random slave server when running the first read-only statement. The slave server will be used for all read-only statements until the PHP script execution ends. No load balancing policy is set and thus, defaulting takes place, if neither the random nor the roundrobin are part of a configuration section.

If a filter chain is configured so that a filter which output no more than once server is used as input for a filter which should be given more than one server as input, the plugin may emit a warning upon opening a connection. The warning may read: (mysqlnd_ms) Error while creating filter '%s' . Non-multi filter '%s' already created. Stopping in %s on line %d. Furthermore, an error of the error code 2000, the sql state HY000 and an error message similar to the warning may be set on the connection handle.

Пример #14 Invalid filter sequence

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": [
            "roundrobin",
            "random"
        ]
    }
}
<?php
$link = new mysqli("myapp", "root", "", "test");
printf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
$link->query("SELECT 1 FROM DUAL");
?>

Результат выполнения данного примера:

PHP Warning:  mysqli::mysqli(): (HY000/2000): (mysqlnd_ms) Error while creating filter 'random' . Non-multi filter 'roundrobin' already created. Stopping in filter_warning.php on line 1
[2000] (mysqlnd_ms) Error while creating filter 'random' . Non-multi filter 'roundrobin' already created. Stopping
PHP Warning:  mysqli::query(): Couldn't fetch mysqli in filter_warning.php on line 3

Filter: random object

The random filter features the random and random once load balancing policies, set through the pick[] directive in older versions.

The random policy will pick a random server whenever a read-only statement is to be executed. The random once strategy picks a random slave server once and continues using the slave for the rest of the PHP web request. Random once is a default, if load balancing is not configured through a filter.

If the random filter is not given any arguments, it stands for random load balancing policy.

Пример #15 Random load balancing with random filter

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.137",
                "port": "3306"
            }
        },
        "filters": [
            "random"
        ]
    }
}

Optionally, the sticky argument can be passed to the filter. If the parameter sticky is set to the string 1, the filter follows the random once load balancing strategy.

Пример #16 Random once load balancing with random filter

{
    "filters": {
        "random": {
            "sticky": "1"
        }
    }
}

Both the random and roundrobin filters support setting a priority, a weight for a server, since PECL/mysqlnd_ms 1.4.0. If the weight argument is passed to the filter, it must assign a weight for all servers. Servers must be given an alias name in the slave respectively master server lists. The alias must be used to reference servers for assigning a priority with weight.

Пример #17 Referencing error

[E_RECOVERABLE_ERROR] mysqli_real_connect(): (mysqlnd_ms) Unknown server 'slave3' in 'random' filter configuration. Stopping in %s on line %d

Using a wrong alias name with weight may result in an error similar to the shown above.

If weight is omitted, the default weight of all servers is one.

Пример #18 Assigning a weight for load balancing

{
   "myapp": {
       "master": {
           "master1":{
               "host":"localhost",
               "socket":"\/var\/run\/mysql\/mysql.sock"
           }
       },
       "slave": {
           "slave1": {
               "host":"192.168.2.28",
               "port":3306
           },
           "slave2": {
               "host":"192.168.2.29",
               "port":3306
           },
           "slave3": {
               "host":"192.0.43.10",
               "port":3306
           },
       },
       "filters": {
           "random": {
               "weights": {
                   "slave1":8,
                   "slave2":4,
                   "slave3":1,
                   "master1":1
               }
           }
       }
   }
}

At the average a server assigned a weight of two will be selected twice as often as a server assigned a weight of one. Different weights can be assigned to reflect differently sized machines, to prefer co-located slaves which have a low network latency or, to configure a standby failover server. In the latter case, you may want to assign the standby server a very low weight in relation to the other servers. For example, given the configuration above slave3 will get only some eight percent of the requests in the average. As long as slave1 and slave2 are running, it will be used sparsely, similar to a standby failover server. Upon failure of slave1 and slave2, the usage of slave3 increases. Please, check the notes on failover before using weight this way.

Valid weight values range from 1 to 65535.

Unknown arguments are ignored by the filter. No warning or error is given.

The filter expects one or more servers as input. Outputs one server. A filter sequence such as random, roundrobin may cause a warning and an error message to be set on the connection handle when executing a statement.

List of filter arguments.

Keyword Description Version
sticky

Enables or disabled random once load balancing policy. See above.

Since 1.2.0.
weight

Assigns a load balancing weight/priority to a server. Please, see above for a description.

Since 1.4.0.
Filter: roundrobin object

If using the roundrobin filter, the plugin iterates over the list of configured slave servers to pick a server for statement execution. If the plugin reaches the end of the list, it wraps around to the beginning of the list and picks the first configured slave server.

Пример #19 roundrobin filter

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": [
            "roundrobin"
        ]
    }
}

Expects one or more servers as input. Outputs one server. A filter sequence such as roundrobin, random may cause a warning and an error message to be set on the connection handle when executing a statement.

List of filter arguments.

Keyword Description Version
weight

Assigns a load balancing weight/priority to a server. Please, find a description above.

Since 1.4.0.
Filter: user object

The user replaces mysqlnd_ms_set_user_pick_server() function, which was removed in 1.1.0-beta. The filter sets a callback for user-defined read/write splitting and server selection.

The plugins built-in read/write query split mechanism decisions can be overwritten in two ways. The easiest way is to prepend a query string with the SQL hints MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH or MYSQLND_MS_LAST_USED_SWITCH. Using SQL hints one can control, for example, whether a query shall be send to the MySQL replication master server or one of the slave servers. By help of SQL hints it is not possible to pick a certain slave server for query execution.

Full control on server selection can be gained using a callback function. Use of a callback is recommended to expert users only because the callback has to cover all cases otherwise handled by the plugin.

The plugin will invoke the callback function for selecting a server from the lists of configured master and slave servers. The callback function inspects the query to run and picks a server for query execution by returning the hosts URI, as found in the master and slave list.

If the lazy connections are enabled and the callback chooses a slave server for which no connection has been established so far and establishing the connection to the slave fails, the plugin will return an error upon the next action on the failed connection, for example, when running a query. It is the responsibility of the application developer to handle the error. For example, the application can re-run the query to trigger a new server selection and callback invocation. If so, the callback must make sure to select a different slave, or check slave availability, before returning to the plugin to prevent an endless loop.

Пример #20 Setting a callback

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "user": {
                "callback": "pick_server"
            }
        }
    }
}

The callback is supposed to return a host to run the query on. The host URI is to be taken from the master and slave connection lists passed to the callback function. If callback returns a value neither found in the master nor in the slave connection lists the plugin will emit an error of the type E_RECOVERABLE_ERROR The error may read like (mysqlnd_ms) User filter callback has returned an unknown server. The server 'server that is not in master or slave list' can neither be found in the master list nor in the slave list. If the application catches the error to ignore it, follow up errors may be set on the connection handle, for example, (mysqlnd_ms) No connection selected by the last filter with the error code 2000 and the sqlstate HY000. Furthermore a warning may be emitted.

Referencing a non-existing function as a callback will result in any error of the type E_RECOVERABLE_ERROR whenever the plugin tries to callback function. The error message may reads like: (mysqlnd_ms) Specified callback (pick_server) is not a valid callback. If the application catches the error to ignore it, follow up errors may be set on the connection handle, for example, (mysqlnd_ms) Specified callback (pick_server) is not a valid callback with the error code 2000 and the sqlstate HY000. Furthermore a warning may be emitted.

The following parameters are passed from the plugin to the callback.

Parameter Description Version
connected_host

URI of the currently connected database server.

Since 1.1.0.
query

Query string of the statement for which a server needs to be picked.

Since 1.1.0.
masters

List of master servers to choose from. Note, that the list of master servers may not be identical to the list of configured master servers if the filter is not the first in the filter chain. Previously run filters may have reduced the master list already.

Since 1.1.0.
slaves

List of slave servers to choose from. Note, that the list of master servers may not be identical to the list of configured master servers if the filter is not the first in the filter chain. Previously run filters may have reduced the master list already.

Since 1.1.0.
last_used_connection

URI of the server of the connection used to execute the previous statement on.

Since 1.1.0.
in_transaction

Boolean flag indicating whether the statement is part of an open transaction. If autocommit mode is turned off, this will be set to TRUE. Otherwise it is set to FALSE.

Transaction detection is based on monitoring the mysqlnd library call set_autocommit. Monitoring is not possible before PHP 5.4.0. Please, see connection pooling and switching concepts discussion for further details.

Since 1.1.0.

Пример #21 Using a callback

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "user": {
                "callback": "pick_server"
            }
        }
    }
}
<?php
function pick_server($connected, $query, $masters, $slaves, $last_used_connection, $in_transaction)
{
 static $slave_idx = 0;
 static $num_slaves = NULL;
 if (is_null($num_slaves))
  $num_slaves = count($slaves);

 /* default: fallback to the plugins build-in logic */
 $ret = NULL;

 printf("User has connected to '%s'...\n", $connected);
 printf("... deciding where to run '%s'\n", $query);

 $where = mysqlnd_ms_query_is_select($query);
 switch ($where)
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("... using master\n");
   $ret = $masters[0];
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   /* SELECT or SQL hint for using slave */
   if (stristr($query, "FROM table_on_slave_a_only"))
   {
    /* a table which is only on the first configured slave  */
    printf("... access to table available only on slave A detected\n");
    $ret = $slaves[0];
   }
   else
   {
    /* round robin */
    printf("... some read-only query for a slave\n");
    $ret = $slaves[$slave_idx++ % $num_slaves];
   }
   break;
  case MYSQLND_MS_QUERY_LAST_USED:
   printf("... using last used server\n");
   $ret = $last_used_connection;
   break;
 }

 printf("... ret = '%s'\n", $ret);
 return $ret;
}

$mysqli = new mysqli("myapp", "root", "", "test");

if (!($res = $mysqli->query("SELECT 1 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT 2 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT * FROM table_on_slave_a_only")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

$mysqli->close();
?>

Результат выполнения данного примера:

User has connected to 'myapp'...
... deciding where to run 'SELECT 1 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.2.27:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT 2 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.78.136:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT * FROM table_on_slave_a_only'
... access to table available only on slave A detected
... ret = 'tcp://192.168.2.27:3306'

Filter: user_multi object

The user_multi differs from the user only in one aspect. Otherwise, their syntax is identical. The user filter must pick and return exactly one node for statement execution. A filter chain usually ends with a filter that emits only one node. The filter chain shall reduce the list of candidates for statement execution down to one. This, only one node left, is the case after the user filter has been run.

The user_multi filter is a multi filter. It returns a list of slave and a list of master servers. This list needs further filtering to identify exactly one node for statement execution. A multi filter is typically placed at the top of the filter chain. The quality_of_service filter is another example of a multi filter.

The return value of the callback set for user_multi must be an array with two elements. The first element holds a list of selected master servers. The second element contains a list of selected slave servers. The lists shall contain the keys of the slave and master servers as found in the slave and master lists passed to the callback. The below example returns random master and slave lists extracted from the functions input.

Пример #22 Returning random masters and slaves

<?php
function pick_server($connected, $query, $masters, $slaves, $last_used_connection, $in_transaction)
{
  $picked_masters = array()
  foreach ($masters as $key => $value) {
    if (mt_rand(0, 2) > 1)
      $picked_masters[] = $key;
  }
  $picked_slaves = array()
  foreach ($slaves as $key => $value) {
    if (mt_rand(0, 2) > 1)
      $picked_slaves[] = $key;
  }
  return array($picked_masters, $picked_slaves);
}
?>

The plugin will issue an error of type E_RECOVERABLE if the callback fails to return a server list. The error may read (mysqlnd_ms) User multi filter callback has not returned a list of servers to use. The callback must return an array in %s on line %d. In case the server list is not empty but has invalid servers key/ids in it, an error of type E_RECOVERABLE will the thrown with an error message like (mysqlnd_ms) User multi filter callback has returned an invalid list of servers to use. Server id is negative in %s on line %d, or similar.

Whether an error is emitted in case of an empty slave or master list depends on the configuration. If an empty master list is returned for a write operation, it is likely that the plugin will emit a warning that may read (mysqlnd_ms) Couldn't find the appropriate master connection. 0 masters to choose from. Something is wrong in %s on line %d. Typically a follow up error of type E_ERROR will happen. In case of a read operation and an empty slave list the behavior depends on the fail over configuration. If fail over to master is enabled, no error should appear. If fail over to master is deactivated the plugin will emit a warning that may read (mysqlnd_ms) Couldn't find the appropriate slave connection. 0 slaves to choose from. Something is wrong in %s on line %d.

Filter: node_groups object

The node_groups filter lets you group cluster nodes and query selected groups, for example, to support data partitioning. Data partitioning can be required for manual sharding, primary copy based clusters running multiple masters, or to avoid hot spots in update everywhere clusters that have no built-in partitioning. The filter is a multi filter which returns zero, one or multiple of its input servers. Thus, it must be followed by other filters to reduce the number of candidates down to one for statement execution.

Keyword Description Version
user defined node group name

One or more node groups must be defined. A node group can have an arbitrary user defined name. The name is used in combination with a SQL hint to restrict query execution to the nodes listed for the node group. To run a query on any of the servers of a node group, the query must begin with the SQL hint /*user defined node group name*/. Please note, no white space is allowed around user defined node group name. Because user defined node group name is used as-is as part of a SQL hint, you should choose the name that is compliant with the SQL language.

Each node group entry must contain a list of master servers. Additional slave servers are allowed. Failing to provide a list of master for a node group name_of_group may cause an error of type E_RECOVERABLE_ERROR like (mysqlnd_ms) No masters configured in node group 'name_of_group' for 'node_groups' filter.

The list of master and slave servers must reference corresponding entries in the global master respectively slave server list. Referencing an unknown server in either of the both server lists may cause an E_RECOVERABLE_ERROR error like (mysqlnd_ms) Unknown master 'server_alias_name' (section 'name_of_group') in 'node_groups' filter configuration.

Пример #23 Manual partitioning

{
  "myapp": {
       "master": {
            "master_0": {
                "host": "localhost",
                "socket": "\/tmp\/mysql.sock"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.28",
                "port": 3306
            },
            "slave_1": {
                "host": "127.0.0.1",
                "port": 3311
            }
        },
        "filters": {
            "node_groups": {
                "Partition_A" : {
                    "master": ["master_0"],
                    "slave": ["slave_0"]
                }
            },
           "roundrobin": []
        }
    }
}

Please note, if a filter chain generates an empty slave list and the PHP configuration directive mysqlnd_ms.multi_master=0 is used, the plugin may emit a warning.

Since 1.5.0.
Filter: quality_of_service object

The quality_of_service identifies cluster nodes capable of delivering a certain quality of service. It is a multi filter which returns zero, one or multiple of its input servers. Thus, it must be followed by other filters to reduce the number of candidates down to one for statement execution.

The quality_of_service filter has been introduced in 1.2.0-alpha. In the 1.2 series the filters focus is on the consistency aspect of service quality. Different types of clusters offer different default data consistencies. For example, an asynchronous MySQL replication slave offers eventual consistency. The slave may not be able to deliver requested data because it has not replicated the write, it may serve stale database because its lagging behind or it may serve current information. Often, this is acceptable. In some cases higher consistency levels are needed for the application to work correct. In those cases, the quality_of_service can filter out cluster nodes which cannot deliver the necessary quality of service.

The quality_of_service filter can be replaced or created at runtime. A successful call to mysqlnd_ms_set_qos() removes all existing qos filter entries from the filter list and installs a new one at the very beginning. All settings that can be made through mysqlnd_ms_set_qos() can also be in the plugins configuration file. However, use of the function is by far the most common use case. Instead of setting session consistency and strong consistency service levels in the plugins configuration file it is recommended to define only masters and no slaves. Both service levels will force the use of masters only. Using an empty slave list shortens the configuration file, thus improving readability. The only service level for which there is a case of defining in the plugins configuration file is the combination of eventual consistency and maximum slave lag.

Keyword Description Version
eventual_consistency

Request eventual consistency. Allows the use of all master and slave servers. Data returned may or may not be current.

Eventual consistency accepts an optional age parameter. If age is given the plugin considers only slaves for reading for which MySQL replication reports a slave lag less or equal to age. The replication lag is measure using SHOW SLAVE STATUS. If the plugin fails to fetch the replication lag, the slave tested is skipped. Implementation details and tips are given in the quality of service concepts section.

Please note, if a filter chain generates an empty slave list and the PHP configuration directive mysqlnd_ms.multi_master=0 is used, the plugin may emit a warning.

Пример #24 Global limit on slave lag

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.2.27",
                "port": "3306"
            },
            "slave_1": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "filters": {
            "quality_of_service": {
                "eventual_consistency": {
                    "age":123
                }
            }
        }
    }
}

 Since 1.2.0.
session_consistency

Request session consistency (read your writes). Allows use of all masters and all slaves which are in sync with the master. If no further parameters are given slaves are filtered out as there is no reliable way to test if a slave has caught up to the master or is lagging behind. Please note, if a filter chain generates an empty slave list and the PHP configuration directive mysqlnd_ms.multi_master=0 is used, the plugin may emit a warning.

Session consistency temporarily requested using mysqlnd_ms_set_qos() is a valuable alternative to using master_on_write. master_on_write is likely to send more statements to the master than needed. The application may be able to continue operation at a lower consistency level after it has done some critical reads.

Since 1.1.0.
strong_consistency

Request strong consistency. Only masters will be used.

Since 1.2.0.
failover Up to and including 1.3.x: string. Since 1.4.0: object.

Failover policy. Supported policies: disabled (default), master, loop_before_master (Since 1.4.0).

If no failover policy is set, the plugin will not do any automatic failover (failover=disabled). Whenever the plugin fails to connect a server it will emit a warning and set the connections error code and message. Thereafter it is up to the application to handle the error and, for example, resent the last statement to trigger the selection of another server.

Please note, the automatic failover logic is applied when opening connections only. Once a connection has been opened no automatic attempts are made to reopen it in case of an error. If, for example, the server a connection is connected to is shut down and the user attempts to run a statement on the connection, no automatic failover will be tried. Instead, an error will be reported.

If using failover=master the plugin will implicitly failover to a master, if available. Please check the concepts documentation to learn about potential pitfalls and risks of using failover=master.

Пример #25 Optional master failover when failing to connect to slave (PECL/mysqlnd_ms < 1.4.0)

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "failover": "master"
    }
}

Since PECL/mysqlnd_ms 1.4.0 the failover configuration keyword refers to an object.

Пример #26 New syntax since 1.4.0

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "failover": {"strategy": "master" }
    }
}

Keyword Description Version
strategy

Failover policy. Possible values: disabled (default), master, loop_before_master

A value of disabled disables automatic failover.

Setting master instructs the plugin to try to connect to a master in case of a slave connection error. If the master connection attempt fails, the plugin exists the failover loop and returns an error to the user.

If using loop_before_master and a slave request is made, the plugin tries to connect to other slaves before failing over to a master. If multiple master are given and multi master is enabled, the plugin also loops over the list of masters and attempts to connect before returning an error to the user.

Since 1.4.0.
remember_failed

Remember failures for the duration of a web request. Default: false.

If set to true the plugin will remember failed hosts and skip the hosts in all future load balancing made for the duration of the current web request.

Since 1.4.0. The feature is only available together with the random and roundrobin load balancing filter. Use of the setting is recommended.
max_retries

Maximum number of connection attempts before skipping host. Default: 0 (no limit).

The setting is used to prevent hosts from being dropped of the host list upon the first failure. If set to n > 0, the plugin will keep the node in the node list even after a failed connection attempt. The node will not be removed immediately from the slave respectively master lists after the first connection failure but instead be tried to connect to up to n times in future load balancing rounds before being removed.

Since 1.4.0. The feature is only available together with the random and roundrobin load balancing filter.

Setting failover to any other value but disabled, master or loop_before_master will not emit any warning or error.

lazy_connections bool

Controls the use of lazy connections. Lazy connections are connections which are not opened before the client sends the first connection. Lazy connections are a default.

It is strongly recommended to use lazy connections. Lazy connections help to keep the number of open connections low. If you disable lazy connections and, for example, configure one MySQL replication master server and two MySQL replication slaves, the plugin will open three connections upon the first call to a connect function although the application might use the master connection only.

Lazy connections bare a risk if you make heavy use of actions which change the state of a connection. The plugin does not dispatch all state changing actions to all connections from the connection pool. The few dispatched actions are applied to already opened connections only. Lazy connections opened in the future are not affected. Only some settings are "remembered" and applied when lazy connections are opened.

Пример #27 Disabling lazy connection

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "lazy_connections": 0
    }
}

Please, see also server_charset to overcome potential problems with string escaping and servers using different default charsets.

server_charset string

The setting has been introduced in 1.4.0. It is recommended to set it if using lazy connections.

The server_charset setting serves two purposes. It acts as a fallback charset to be used for string escaping done before a connection has been established and it helps to avoid escaping pitfalls in heterogeneous environments which servers using different default charsets.

String escaping takes a connections charset into account. String escaping is not possible before a connection has been opened and the connections charset is known. The use of lazy connections delays the actual opening of connections until a statement is send.

An application using lazy connections may attempt to escape a string before sending a statement. In fact, this should be a common case as the statement string may contain the string that is to be escaped. However, due to the lazy connection feature no connection has been opened yet and escaping fails. The plugin may report an error of the type E_WARNING and a message like (mysqlnd_ms) string escaping doesn't work without established connection. Possible solution is to add server_charset to your configuration to inform you of the pitfall.

Setting server_charset makes the plugin use the given charset for string escaping done on lazy connection handles before establishing a network connection to MySQL. Furthermore, the plugin will enforce the use of the charset when the connection is established.

Enforcing the use of the configured charset used for escaping is done to prevent tapping into the pitfall of using a different charset for escaping than used later for the connection. This has the additional benefit of removing the need to align the charset configuration of all servers used. No matter what the default charset on any of the servers is, the plugin will set the configured one as a default.

The plugin does not stop the user from changing the charset at any time using the set_charset() call or corresponding SQL statements. Please, note that the use of SQL is not recommended as it cannot be monitored by the plugin. The user can, for example, change the charset on a lazy connection handle after escaping a string and before the actual connection is opened. The charset set by the user will be used for any subsequent escaping before the connection is established. The connection will be established using the configured charset, no matter what the server charset is or what the user has set before. Once a connection has been opened, set_charset is of no meaning anymore.

Пример #28 String escaping on a lazy connection handle

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "lazy_connections": 1,
        "server_charset" : "utf8"
    }
}
<?php
$mysqli = new mysqli("myapp", "username", "password", "database");
$mysqli->real_escape("this will be escaped using the server_charset setting - utf8");
$mysqli->set_charset("latin1");
$mysqli->real_escape("this will be escaped using latin1");
/* server_charset implicitly set - utf8 connection */
$mysqli->query("SELECT 'This connection will be set to server_charset upon establishing' AS _msg FROM DUAL");
/* latin1 used from now on */
$mysqli->set_charset("latin1");
?>

master_on_write bool

If set, the plugin will use the master server only after the first statement has been executed on the master. Applications can still send statements to the slaves using SQL hints to overrule the automatic decision.

The setting may help with replication lag. If an application runs an INSERT the plugin will, by default, use the master to execute all following statements, including SELECT statements. This helps to avoid problems with reads from slaves which have not replicated the INSERT yet.

Пример #29 Master on write for consistent reads

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "master_on_write": 1
    }
}

Please, note the quality_of_service filter introduced in version 1.2.0-alpha. It gives finer control, for example, for achieving read-your-writes and, it offers additional functionality introducing service levels.

All transaction stickiness settings, including trx_stickiness=on, are overruled by master_on_write=1.

trx_stickiness string

Transaction stickiness policy. Supported policies: disabled (default), master.

The setting requires 5.4.0 or newer. If used with PHP older than 5.4.0, the plugin will emit a warning like (mysqlnd_ms) trx_stickiness strategy is not supported before PHP 5.3.99.

If no transaction stickiness policy is set or, if setting trx_stickiness=disabled, the plugin is not transaction aware. Thus, the plugin may load balance connections and switch connections in the middle of a transaction. The plugin is not transaction safe. SQL hints must be used avoid connection switches during a transaction.

As of PHP 5.4.0 the mysqlnd library allows the plugin to monitor the autocommit mode set by calls to the libraries set_autocommit() function. If setting set_stickiness=master and autocommit gets disabled by a PHP MySQL extension invoking the mysqlnd library internal function call set_autocommit(), the plugin is made aware of the begin of a transaction. Then, the plugin stops load balancing and directs all statements to the master server until autocommit is enabled. Thus, no SQL hints are required.

An example of a PHP MySQL API function calling the mysqlnd library internal function call set_autocommit() is mysqli_autocommit().

Although setting trx_stickiness=master, the plugin cannot be made aware of autocommit mode changes caused by SQL statements such as SET AUTOCOMMIT=0 or BEGIN.

As of PHP 5.5.0, the mysqlnd library features additional C API calls to control transactions. The level of control matches the one offered by SQL statements. The mysqli API has been modified to use these calls. Since version 1.5.0, PECL/mysqlnd_ms can monitor not only mysqli_autocommit(), but also mysqli_begin(), mysqli_commit() and mysqli_rollback() to detect transaction boundaries and stop load balancing for the duration of a transaction.

Пример #30 Using master to execute transactions

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
        },
        "trx_stickiness": "master"
    }
}

Since version 1.5.0 automatic and silent failover is disabled for the duration of a transaction. If the boundaries of a transaction have been properly detected, transaction stickiness is enabled and a server fails, the plugin will not attempt to fail over to the next server, if any, regardless of the failover policy configured. The user must handle the error manually. Depending on the configuration, the plugin may emit an error of type E_WARNING reading like (mysqlnd_ms) Automatic failover is not permitted in the middle of a transaction. This error may then be overwritten by follow up errors such as (mysqlnd_ms) No connection selected by the last filter. Those errors will be generated by the failing query function.

Пример #31 No automatic failover, error handling pitfall

<?php
/* assumption: automatic failover configured */
$mysqli = new mysqli("myapp", "username", "password", "database");

/* sets plugin internal state in_trx = 1 */
$mysqli->autocommit(false);

/* assumption: server fails */
if (!($res = $mysqli->query("SELECT 'Assume this query fails' AS _msg FROM DUAL"))) {
 /* handle failure of transaction, plugin internal state is still in_trx = 1 */
 printf("[%d] %s", $mysqli->errno, $mysqli->error);
 /*
  If using autocommit() based transaction detection it is a
  MUST to call autocommit(true). Otherwise the plugin assumes
  the current transaction continues and connection
  changes remain forbidden.
 */
 $mysqli->autocommit(true);
 /* Likewise, you'll want to start a new transaction */
 $mysqli->autocommit(false);
}
/* latin1 used from now on */
$mysqli->set_charset("latin1");
?>

If a server fails in the middle of a transaction the plugin continues to refuse to switch connections until the current transaction has been finished. Recall that the plugin monitors API calls to detect transaction boundaries. Thus, you have to, for example, enable auto commit mode to end the current transaction before the plugin continues load balancing and switches the server. Likewise, you will want to start a new transaction immediately thereafter and disable auto commit mode again.

Not handling failed queries and not ending a failed transaction using API calls may cause all following commands emit errors such as Commands out of sync; you can't run this command now. Thus, it is important to handle all errors.

transient_error object

The setting has been introduced in 1.6.0.

A database cluster node may reply a transient error to a client. The client can then repeat the operation on the same node, fail over to a different node or abort the operation. Per definition is it safe for a client to retry the same operation on the same node before giving up.

PECL/mysqlnd_ms can perform the retry loop on behalf of the application. By configuring transient_error the plugin can be instructed to repeat operations failing with a certain error code for a certain maximum number of times with a pause between the retries. If the transient error disappears during loop execution, it is hidden from the application. Otherwise, the error is forwarded to the application by the end of the loop.

Пример #32 Retry loop for transient errors

{
    "myapp": {
        "master": {
            "master_0": {
                "host": "localhost"
            }
        },
        "slave": {
            "slave_0": {
                "host": "192.168.78.136",
                "port": "3306"
            }
       },
       "transient_error": {
          "mysql_error_codes": [
            1297
          ],
          "max_retries": 2,
          "usleep_retry": 100
       }
    }
}

Keyword Description Version
mysql_error_codes

List of transient error codes. You may add any MySQL error code to the list. It is possible to consider any error as transient not only 1297 (HY000 (ER_GET_TEMPORARY_ERRMSG), Message: Got temporary error %d '%s' from %s). Before adding other codes but 1297 to the list, make sure your cluster supports a new attempt without impacting the state of your application.

Since 1.6.0.
max_retries

How often to retry an operation which fails with a transient error before forwarding the failure to the user.

Default: 1

Since 1.6.0.
usleep_retry

Milliseconds to sleep between transient error retries. The value is passed to the C function usleep(), hence the name.

Default: 100

Since 1.6.0.
xa object

The setting has been introduced in 1.6.0.

Замечание: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

state_store
record_participant_credentials

Whether to store the username and password of a global transaction participant in the participants table. If disabled, the garbage collection will use the default username and password when connecting to the participants. Unless you are using a different username and password for each of your MySQL servers, you can use the default and avoid storing the sensible information in state store.

Please note, username and password are stored in clear text when using the MySQL state store, which is the only one available. It is in your responsibility to protect this sensible information.

Default: false

participant_localhost_ip

During XA garbage collection the plugin may find a participant server for which the host localhost has been recorded. If the garbage collection takes place on another host but the host that has written the participant record to the state store, the host name localhost now resolves to a different host. Therefore, when recording a participant servers host name in the state store, a value of localhost must be replaced with the actual IP address of localhost.

Setting participant_localhost_ip should be considered only if using localhost cannot be avoided. From a garbage collection point of view only, it is preferrable not to configure any socket connection but to provide an IP address and port for a node.

mysql

The MySQL state store is the only state store available.

global_trx_table

Name of the MySQL table used to store the state of an ongoing or aborted global transaction. Use the below SQL statement to create the table. Make sure to edit the table name to match your configuration.

Default: mysqlnd_ms_xa_trx

Пример #33 SQL definition for the MySQL state store transaction table

CREATE TABLE mysqlnd_ms_xa_trx (
  store_trx_id int(11) NOT NULL AUTO_INCREMENT,
  gtrid int(11) NOT NULL,
  format_id int(10) unsigned NOT NULL DEFAULT '1',
  state enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK') NOT NULL DEFAULT 'XA_NON_EXISTING',
  intend enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK') DEFAULT 'XA_NON_EXISTING',
  finished enum('NO','SUCCESS','FAILURE') NOT NULL DEFAULT 'NO',
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  started datetime DEFAULT NULL,
  timeout datetime DEFAULT NULL,
  PRIMARY KEY (store_trx_id),
  KEY idx_xa_id (gtrid,format_id,finished),
  KEY idx_state (state)
) ENGINE=InnoDB

participant_table

Name of the MySQL table used to store participants of an ongoing or aborted global transaction. Use the below SQL statement to create the table. Make sure to edit the table name to match your configuration.

Storing credentials can be enabled and disabled using record_participant_credentials

Default: mysqlnd_ms_xa_participants

Пример #34 SQL definition for the MySQL state store transaction table

CREATE TABLE mysqlnd_ms_xa_participants (
  fk_store_trx_id int(11) NOT NULL,
  bqual varbinary(64) NOT NULL DEFAULT '',
  participant_id int(10) unsigned NOT NULL AUTO_INCREMENT,
  server_uuid varchar(127) DEFAULT NULL,
  scheme varchar(1024) NOT NULL,
  host varchar(127) DEFAULT NULL,
  port smallint(5) unsigned DEFAULT NULL,
  socket varchar(127) DEFAULT NULL,
  user varchar(127) DEFAULT NULL,
  password varchar(127) DEFAULT NULL,
  state enum('XA_NON_EXISTING','XA_ACTIVE','XA_IDLE','XA_PREPARED','XA_COMMIT','XA_ROLLBACK')
   NOT NULL DEFAULT 'XA_NON_EXISTING',
  health enum('OK','GC_DONE','CLIENT ERROR','SERVER ERROR') NOT NULL DEFAULT 'OK',
  connection_id int(10) unsigned DEFAULT NULL,
  client_errno smallint(5) unsigned DEFAULT NULL,
  client_error varchar(1024) DEFAULT NULL,
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (participant_id),
  KEY idx_xa_bqual (bqual),
  KEY idx_store_trx (fk_store_trx_id),
  CONSTRAINT mysqlnd_ms_xa_participants_ibfk_1 FOREIGN KEY (fk_store_trx_id)
    REFERENCES mysqlnd_ms_xa_trx (store_trx_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB
garbage_collection_table

Name of the MySQL table used to track and synchronize garbage collection runs. Use the below SQL statement to create the table. Make sure to edit the table name to match your configuration.

Default: mysqlnd_ms_xa_gc

Пример #35 SQL definition for the MySQL state store garbage collection table

CREATE TABLE mysqlnd_ms_xa_gc (
  gc_id int(10) unsigned NOT NULL AUTO_INCREMENT,
  gtrid int(11) NOT NULL,
  format_id int(10) unsigned NOT NULL DEFAULT '1',
  fk_store_trx_id int(11) DEFAULT NULL,
  modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  attempts smallint(5) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (gc_id),
  KEY idx_store_trx (gtrid,format_id,fk_store_trx_id)
) ENGINE=InnoDB
host

Host name of the MySQL server.

user

Name of the user used to connect to the MySQL server.

password

Password for the MySQL server user.

db

Database that holds the garbage collection tables. Please note, you have to create the garbage collection tables prior to using the plugin. The tables will not be created implicitly during runtime but garbage collection will fail if the tables to not exist.

port

Port of the MySQL server.

socket

Unix domain socket of the MySQL server. Please note, if you have multiple PHP servers each of them will try to carry out garbage collection and need to be able to connect to the state store. In this case, you may prefer configuring an IP address and a port for the MySQL state store server to ensure all PHP servers can reach it.

rollback_on_close

Whether to automatically rollback an open global transaction when a connection is closed. If enabled, it mimics the default behaviour of local transactions. Should a client disconnect, the server rolls back any open and unfinished transactions.

Default: true

garbage_collection
max_retries

Maximum number of garbage collection runs before giving up. Allowed values are from 0 to 100. A setting of 0 means no limit, unless the state store enforces a limit. Should the state store enforce a limit, it can be supposed to be significantly higher than 100. Available since 1.6.0.

Please note, it is important to end failed XA transactions within reasonable time to make participating servers free resources bound to the transaction. The built-in garbage collection is not expected to fail for a long period as long as crashed servers become available again quickly. Still, a situation may arise where a human is required to act because the built-in garbage collection stopped or failed. In this case, you may first want to check if the transaction still cannot be fixed by forcing mysqlnd_ms_xa_gc() to ignore the setting, prior to handling it manually.

Default: 5

probability

Garbage collection probability. Allowed values are from 0 to 1000. A setting of 0 disables automatic background garbage collection. Despite a setting of 0 it is still possible to trigger garbage collection by calling mysqlnd_ms_gc(). Available since 1.6.0.

The automatic garbage collection of stalled XA transaction is only available if a state store have been configured. The state store is responsible to keep track of XA transactions. Based on its recordings it can find blocked XA transactions where the client has crashed, connect to the participants and rollback the unfinished transactions.

The garbage collection is triggered as part of PHP's request shutdown procedure at the end of a web request. That is after your PHP script has finished working. Do decide whether to run the garbage collection a random value between 0 and 1000 is computed. If the probability value is higher or equal to the random value, the state stores garbage collection routines are invoked.

Default: 5

max_transactions_per_run

Maximum number of unfinished XA transactions considered by the garbage collection during one run. Allowed values are from 1 to 32768. Available since 1.6.0.

Cleaning up an unfinished XA transaction takes considerable amounts of time and resources. The garbage collection routine may have to connect to several participants of a failed global transaction to issue the SQL commands for rolling back the unfinished tranaction.

Default: 100

Plugin configuration file (<= 1.0.x)

Замечание:

The below description applies to PECL/mysqlnd_ms < 1.1.0-beta. It is not valid for later versions.

The plugin is using its own configuration file. The configuration file holds information on the MySQL replication master server, the MySQL replication slave servers, the server pick (load balancing) policy, the failover strategy and the use of lazy connections.

The PHP configuration directive mysqlnd_ms.ini_file is used to set the plugins configuration file.

The configuration file mimics standard the php.ini format. It consists of one or more sections. Every section defines its own unit of settings. There is no global section for setting defaults.

Applications reference sections by their name. Applications use section names as the host (server) parameter to the various connect methods of the mysqli, mysql and PDO_MYSQL extensions. Upon connect the mysqlnd plugin compares the hostname with all section names from the plugin configuration file. If hostname and section name match, the plugin will load the sections settings.

Пример #36 Using section names example

[myapp]
master[] = localhost
slave[] = 192.168.2.27
slave[] = 192.168.2.28:3306
[localhost]
master[] = localhost:/tmp/mysql/mysql.sock
slave[] = 192.168.3.24:3305
slave[] = 192.168.3.65:3309
<?php
/* All of the following connections will be load balanced */
$mysqli = new mysqli("myapp", "username", "password", "database");
$pdo = new PDO('mysql:host=myapp;dbname=database', 'username', 'password');
$mysql = mysql_connect("myapp", "username", "password");

$mysqli = new mysqli("localhost", "username", "password", "database");
?>

Section names are strings. It is valid to use a section name such as 192.168.2.1, 127.0.0.1 or localhost. If, for example, an application connects to localhost and a plugin configuration section [localhost] exists, the semantics of the connect operation are changed. The application will no longer only use the MySQL server running on the host localhost but the plugin will start to load balance MySQL queries following the rules from the [localhost] configuration section. This way you can load balance queries from an application without changing the applications source code.

The master[], slave[] and pick[] configuration directives use a list-like syntax. Configuration directives supporting list-like syntax may appear multiple times in a configuration section. The plugin maintains the order in which entries appear when interpreting them. For example, the below example shows two slave[] configuration directives in the configuration section [myapp]. If doing round-robin load balancing for read-only queries, the plugin will send the first read-only query to the MySQL server mysql_slave_1 because it is the first in the list. The second read-only query will be send to the MySQL server mysql_slave_2 because it is the second in the list. Configuration directives supporting list-like syntax result are ordered from top to bottom in accordance to their appearance within a configuration section.

Пример #37 List-like syntax

[myapp]
master[] = mysql_master_server
slave[] = mysql_slave_1
slave[] = mysql_slave_2

Here is a short explanation of the configuration directives that can be used.

master[] string

URI of a MySQL replication master server. The URI follows the syntax hostname[:port|unix_domain_socket].

The plugin supports using only one master server.

Setting a master server is mandatory. The plugin will report a warning upon connect if the user has failed to provide a master server for a configuration section. The warning may read (mysqlnd_ms) Cannot find master section in config. Furthermore the plugin may set an error code for the connection handle such as HY000/2000 (CR_UNKNOWN_ERROR). The corresponding error message depends on your language settings.

slave[] string

URI of one or more MySQL replication slave servers. The URI follows the syntax hostname[:port|unix_domain_socket].

The plugin supports using one or more slave servers.

Setting a slave server is mandatory. The plugin will report a warning upon connect if the user has failed to provide at least one slave server for a configuration section. The warning may read (mysqlnd_ms) Cannot find slaves section in config. Furthermore the plugin may set an error code for the connection handle such as HY000/2000 (CR_UNKNOWN_ERROR). The corresponding error message depends on your language settings.

pick[] string

Load balancing (server picking) policy. Supported policies: random, random_once (default), roundrobin, user.

If no load balancing policy is set, the plugin will default to random_once. The random_once policy picks a random slave server when running the first read-only statement. The slave server will be used for all read-only statements until the PHP script execution ends.

The random policy will pick a random server whenever a read-only statement is to be executed.

If using roundrobin the plugin iterates over the list of configured slave servers to pick a server for statement execution. If the plugin reaches the end of the list, it wraps around to the beginning of the list and picks the first configured slave server.

Setting more than one load balancing policy for a configuration section makes only sense in conjunction with user and mysqlnd_ms_set_user_pick_server(). If the user defined callback fails to pick a server, the plugin falls back to the second configured load balancing policy.

failover string

Failover policy. Supported policies: disabled (default), master.

If no failover policy is set, the plugin will not do any automatic failover (failover=disabled). Whenever the plugin fails to connect a server it will emit a warning and set the connections error code and message. Thereafter it is up to the application to handle the error and, for example, resent the last statement to trigger the selection of another server.

If using failover=master the plugin will implicitly failover to a slave, if available. Please check the concepts documentation to learn about potential pitfalls and risks of using failover=master.

lazy_connections bool

Controls the use of lazy connections. Lazy connections are connections which are not opened before the client sends the first connection.

It is strongly recommended to use lazy connections. Lazy connections help to keep the number of open connections low. If you disable lazy connections and, for example, configure one MySQL replication master server and two MySQL replication slaves, the plugin will open three connections upon the first call to a connect function although the application might use the master connection only.

Lazy connections bare a risk if you make heavy use of actions which change the state of a connection. The plugin does not dispatch all state changing actions to all connections from the connection pool. The few dispatched actions are applied to already opened connections only. Lazy connections opened in the future are not affected. If, for example, the connection character set is changed using a PHP MySQL API call, the plugin will change the character set of all currently opened connection. It will not remember the character set change to apply it on lazy connections opened in the future. As a result the internal connection pool would hold connections using different character sets. This is not desired. Remember that character sets are taken into account for escaping.

master_on_write bool

If set, the plugin will use the master server only after the first statement has been executed on the master. Applications can still send statements to the slaves using SQL hints to overrule the automatic decision.

The setting may help with replication lag. If an application runs an INSERT the plugin will, by default, use the master to execute all following statements, including SELECT statements. This helps to avoid problems with reads from slaves which have not replicated the INSERT yet.

trx_stickiness string

Transaction stickiness policy. Supported policies: disabled (default), master.

Experimental feature.

The setting requires 5.4.0 or newer. If used with PHP older than 5.4.0, the plugin will emit a warning like (mysqlnd_ms) trx_stickiness strategy is not supported before PHP 5.3.99.

If no transaction stickiness policy is set or, if setting trx_stickiness=disabled, the plugin is not transaction aware. Thus, the plugin may load balance connections and switch connections in the middle of a transaction. The plugin is not transaction safe. SQL hints must be used avoid connection switches during a transaction.

As of PHP 5.4.0 the mysqlnd library allows the plugin to monitor the autocommit mode set by calls to the libraries trx_autocommit() function. If setting trx_stickiness=master and autocommit gets disabled by a PHP MySQL extension invoking the mysqlnd library internal function call trx_autocommit(), the plugin is made aware of the begin of a transaction. Then, the plugin stops load balancing and directs all statements to the master server until autocommit is enabled. Thus, no SQL hints are required.

An example of a PHP MySQL API function calling the mysqlnd library internal function call trx_autocommit() is mysqli_autocommit().

Although setting trx_stickiness=master, the plugin cannot be made aware of autocommit mode changes caused by SQL statements such as SET AUTOCOMMIT=0.

Testing

Замечание:

The section applies to mysqlnd_ms 1.1.0 or newer, not the 1.0 series.

The PECL/mysqlnd_ms test suite is in the tests/ directory of the source distribution. The test suite consists of standard phpt tests, which are described on the PHP Quality Assurance Teams website.

Running the tests requires setting up one to four MySQL servers. Some tests don't connect to MySQL at all. Others require one server for testing. Some require two distinct servers. In some cases two servers are used to emulate a replication setup. In other cases a master and a slave of an existing MySQL replication setup are required for testing. The tests will try to detect how many servers and what kind of servers are given. If the required servers are not found, the test will be skipped automatically.

Before running the tests, edit tests/config.inc to configure the MySQL servers to be used for testing.

The most basic configuration is as follows.

 putenv("MYSQL_TEST_HOST=localhost");
 putenv("MYSQL_TEST_PORT=3306");
 putenv("MYSQL_TEST_USER=root");
 putenv("MYSQL_TEST_PASSWD=");
 putenv("MYSQL_TEST_DB=test");
 putenv("MYSQL_TEST_ENGINE=MyISAM");
 putenv("MYSQL_TEST_SOCKET=");

 putenv("MYSQL_TEST_SKIP_CONNECT_FAILURE=1");
 putenv("MYSQL_TEST_CONNECT_FLAGS=0");
 putenv("MYSQL_TEST_EXPERIMENTAL=0");

 /* replication cluster emulation */
 putenv("MYSQL_TEST_EMULATED_MASTER_HOST=". getenv("MYSQL_TEST_HOST"));
 putenv("MYSQL_TEST_EMULATED_SLAVE_HOST=". getenv("MYSQL_TEST_HOST"));

 /* real replication cluster */
 putenv("MYSQL_TEST_MASTER_HOST=". getenv("MYSQL_TEST_EMULATED_MASTER_HOST"));
 putenv("MYSQL_TEST_SLAVE_HOST=". getenv("MYSQL_TEST_EMULATED_SLAVE_HOST"));

MYSQL_TEST_HOST, MYSQL_TEST_PORT and MYSQL_TEST_SOCKET define the hostname, TCP/IP port and Unix domain socket of the default database server. MYSQL_TEST_USER and MYSQL_TEST_PASSWD contain the user and password needed to connect to the database/schema configured with MYSQL_TEST_DB. All configured servers must have the same database user configured to give access to the test database.

Using host, host:port or host:/path/to/socket syntax one can set an alternate host, host and port or host and socket for any of the servers.

putenv("MYSQL_TEST_SLAVE_HOST=192.168.78.136:3307"));
putenv("MYSQL_TEST_MASTER_HOST=myserver_hostname:/path/to/socket"));

Debugging and Tracing

The mysqlnd debug log can be used to debug and trace the actitivities of PECL/mysqlnd_ms. As a mysqlnd PECL/mysqlnd_ms adds trace information to the mysqlnd library debug file. Please, see the mysqlnd.debug PHP configuration directive documentation for a detailed description on how to configure the debug log.

Configuration setting example to activate the debug log:

mysqlnd.debug=d:t:x:O,/tmp/mysqlnd.trace

Замечание:

This feature is only available with a debug build of PHP. Works on Microsoft Windows if using a debug build of PHP and PHP was built using Microsoft Visual C version 9 and above.

The debug log shows mysqlnd library and PECL/mysqlnd_ms plugin function calls, similar to a trace log. Mysqlnd library calls are usually prefixed with mysqlnd_. PECL/mysqlnd internal calls begin with mysqlnd_ms.

Example excerpt from the debug log (connect):

[...]
>mysqlnd_connect
| info : host=myapp user=root db=test port=3306 flags=131072
| >mysqlnd_ms::connect
| | >mysqlnd_ms_config_json_section_exists
| | | info : section=[myapp] len=[5]
| | | >mysqlnd_ms_config_json_sub_section_exists
| | | | info : section=[myapp] len=[5]
| | | | info : ret=1
| | | <mysqlnd_ms_config_json_sub_section_exists
| | | info : ret=1
| | <mysqlnd_ms_config_json_section_exists
[...]

The debug log is not only useful for plugin developers but also to find the cause of user errors. For example, if your application does not do proper error handling and fails to record error messages, checking the debug and trace log may help finding the cause. Use of the debug log to debug application issues should be considered only if no other option is available. Writing the debug log to disk is a slow operation and may have negative impact on the application performance.

Example excerpt from the debug log (connection failure):

[...]
| | | | | | | info : adding error [Access denied for user 'root'@'localhost' (using password: YES)] to the list
| | | | | | | info : PACKET_FREE(0)
| | | | | | | info : PACKET_FREE(0x7f3ef6323f50)
| | | | | | | info : PACKET_FREE(0x7f3ef6324080)
| | | | | | <mysqlnd_auth_handshake
| | | | | | info : switch_to_auth_protocol=n/a
| | | | | | info : conn->error_info.error_no = 1045
| | | | | <mysqlnd_connect_run_authentication
| | | | | info : PACKET_FREE(0x7f3ef63236d8)
| | | | | >mysqlnd_conn::free_contents
| | | | | | >mysqlnd_net::free_contents
| | | | | | <mysqlnd_net::free_contents
| | | | | | info : Freeing memory of members
| | | | | | info : scheme=unix:///tmp/mysql.sock
| | | | | | >mysqlnd_error_list_pdtor
| | | | | | <mysqlnd_error_list_pdtor
| | | | | <mysqlnd_conn::free_contents
| | | | <mysqlnd_conn::connect
[...]

The trace log can also be used to verify correct behaviour of PECL/mysqlnd_ms itself, for example, to check which server has been selected for query execution and why.

Example excerpt from the debug log (plugin decision):

[...]
>mysqlnd_ms::query
| info : query=DROP TABLE IF EXISTS test
| >_mysqlnd_plugin_get_plugin_connection_data
| | info : plugin_id=5
| <_mysqlnd_plugin_get_plugin_connection_data
| >mysqlnd_ms_pick_server_ex
| | info : conn_data=0x7fb6a7d3e5a0 *conn_data=0x7fb6a7d410d0
| | >mysqlnd_ms_select_servers_all
| | <mysqlnd_ms_select_servers_all
| | >mysqlnd_ms_choose_connection_rr
| | | >mysqlnd_ms_query_is_select
[...]
| | | <mysqlnd_ms_query_is_select
[...]
| | | info : Init the master context
| | | info : list(0x7fb6a7d3f598) has 1
| | | info : Using master connection
| | | >mysqlnd_ms_advanced_connect
| | | | >mysqlnd_conn::connect
| | | | | info : host=localhost user=root db=test port=3306 flags=131072 persistent=0 state=0

In this case the statement DROP TABLE IF EXISTS test has been executed. Note that the statement string is shown in the log file. You may want to take measures to restrict access to the log for security considerations.

The statement has been load balanced using round robin policy, as you can easily guess from the functions name >mysqlnd_ms_choose_connection_rr. It has been sent to a master server running on host=localhost user=root db=test port=3306 flags=131072 persistent=0 state=0.

Monitoring

Plugin activity can be monitored using the mysqlnd trace log, mysqlnd statistics, mysqlnd_ms plugin statistics and external PHP debugging tools. Use of the trace log should be limited to debugging. It is recommended to use the plugins statistics for monitoring.

Writing a trace log is a slow operation. If using an external PHP debugging tool, please refer to the vendors manual about its performance impact and the type of information collected. In many cases, external debugging tools will provide call stacks. Often, a call stack or a trace log is more difficult to interpret than the statistics provided by the plugin.

Plugin statistics tell how often which kind of cluster node has been used (slave or master), why the node was used, if lazy connections have been used and if global transaction ID injection has been performed. The monitoring information provided enables user to verify plugin decisions and to plan their cluster resources based on usage pattern. The function mysqlnd_ms_get_stats() is used to access the statistics. Please, see the functions description for a list of available statistics.

Statistics are collected on a per PHP process basis. Their scope is a PHP process. Depending on the PHP deployment model a process may serve one or multiple web requests. If using CGI model, a PHP process serves one web request. If using FastCGI or pre-fork web server models, a PHP process usually serves multiple web requests. The same is the case with a threaded web server. Please, note that threads running in parallel can update the statistics in parallel. Thus, if using a threaded PHP deployment model, statistics can be changed by more than one script at a time. A script cannot rely on the fact that it sees only its own changes to statistics.

Пример #38 Verify plugin activity in a non-threaded deployment model

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
<?php
/* Load balanced following "myapp" section rules from the plugins config file (not shown) */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (mysqli_connect_errno())
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

$stats_before = mysqlnd_ms_get_stats();
if ($res = $mysqli->query("SELECT 'Read request' FROM DUAL")) {
  var_dump($res->fetch_all());
}
$stats_after = mysqlnd_ms_get_stats();
if ($stats_after['use_slave'] <= $stats_before['use_slave']) {
  echo "According to the statistics the read request has not been run on a slave!";
}
?>

Statistics are aggregated for all plugin activities and all connections handled by the plugin. It is not possible to tell how much a certain connection handle has contributed to the overall statistics.

Utilizing PHPs register_shutdown_function() function or the auto_append_file PHP configuration directive it is easily possible to dump statistics into, for example, a log file when a script finishes. Instead of using a log file it is also possible to send the statistics to an external monitoring tool for recording and display.

Пример #39 Recording statistics during shutdown

mysqlnd_ms.enable=1
mysqlnd_ms.collect_statistics=1
error_log=/tmp/php_errors.log
<?php
function check_stats() {
  $msg = str_repeat("-", 80) . "\n";
  $msg .= var_export(mysqlnd_ms_get_stats(), true) . "\n";
  $msg .= str_repeat("-", 80) . "\n";
  error_log($msg);
}
register_shutdown_function("check_stats");
?>


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SQL hint related

Пример #1 Example demonstrating the usage of mysqlnd_ms constants

The mysqlnd replication and load balancing plugin (mysqlnd_ms) performs read/write splitting. This directs write queries to a MySQL master server, and read-only queries to the MySQL slave servers. The plugin has a built-in read/write split logic. All queries which start with SELECT are considered read-only queries, which are then sent to a MySQL slave server that is listed in the plugin configuration file. All other queries are directed to the MySQL master server that is also specified in the plugin configuration file.

User supplied SQL hints can be used to overrule automatic read/write splitting, to gain full control on the process. SQL hints are standards compliant SQL comments. The plugin will scan the beginning of a query string for an SQL comment for certain commands, which then control query redirection. Other systems involved in the query processing are unaffected by the SQL hints because other systems will ignore the SQL comments.

The plugin supports three SQL hints to direct queries to either the MySQL slave servers, the MySQL master server, or the last used MySQL server. SQL hints must be placed at the beginning of a query to be recognized by the plugin.

For better portability, it is recommended to use the string constants MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH and MYSQLND_MS_LAST_USED_SWITCH instead of their literal values.

<?php
/* Use constants for maximum portability */
$master_query = "/*" . MYSQLND_MS_MASTER_SWITCH . "*/SELECT id FROM test";

/* Valid but less portable: using literal instead of constant */
$slave_query = "/*ms=slave*/SHOW TABLES";

printf("master_query = '%s'\n", $master_query);
printf("slave_query = '%s'\n", $slave_query);
?>

Результат выполнения данных примеров:

master_query = /*ms=master*/SELECT id FROM test
slave_query = /*ms=slave*/SHOW TABLES

MYSQLND_MS_MASTER_SWITCH (string)
SQL hint used to send a query to the MySQL replication master server.
MYSQLND_MS_SLAVE_SWITCH (string)
SQL hint used to send a query to one of the MySQL replication slave servers.
MYSQLND_MS_LAST_USED_SWITCH (string)
SQL hint used to send a query to the last used MySQL server. The last used MySQL server can either be a master or a slave server in a MySQL replication setup.

mysqlnd_ms_query_is_select() related

MYSQLND_MS_QUERY_USE_MASTER (integer)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_MASTER for a given query, the built-in read/write split mechanism recommends sending the query to a MySQL replication master server.
MYSQLND_MS_QUERY_USE_SLAVE (integer)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_SLAVE for a given query, the built-in read/write split mechanism recommends sending the query to a MySQL replication slave server.
MYSQLND_MS_QUERY_USE_LAST_USED (integer)
If mysqlnd_ms_is_select() returns MYSQLND_MS_QUERY_USE_LAST_USED for a given query, the built-in read/write split mechanism recommends sending the query to the last used server.

mysqlnd_ms_set_qos(), quality of service filter and service level related

MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL (integer)
Use to request the service level eventual consistency from the mysqlnd_ms_set_qos(). Eventual consistency is the default quality of service when reading from an asynchronous MySQL replication slave. Data returned in this service level may or may not be stale, depending on whether the selected slaves happen to have replicated the latest changes from the MySQL replication master or not.
MYSQLND_MS_QOS_CONSISTENCY_SESSION (integer)
Use to request the service level session consistency from the mysqlnd_ms_set_qos(). Session consistency is defined as read your writes. The client is guaranteed to see his latest changes.
MYSQLND_MS_QOS_CONSISTENCY_STRONG (integer)
Use to request the service level strong consistency from the mysqlnd_ms_set_qos(). Strong consistency is used to ensure all clients see each others changes.
MYSQLND_MS_QOS_OPTION_GTID (integer)
Used as a service level option with mysqlnd_ms_set_qos() to parameterize session consistency.
MYSQLND_MS_QOS_OPTION_AGE (integer)
Used as a service level option with mysqlnd_ms_set_qos() to parameterize eventual consistency.

Other

The plugins version number can be obtained using MYSQLND_MS_VERSION or MYSQLND_MS_VERSION_ID. MYSQLND_MS_VERSION is the string representation of the numerical version number MYSQLND_MS_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_MS_VERSION_ID | 10000

MYSQLND_MS_VERSION (string)
Plugin version string, for example, "1.0.0-prototype".
MYSQLND_MS_VERSION_ID (integer)
Plugin version number, for example, 10000.


Mysqlnd_ms Функции

Содержание

  • mysqlnd_ms_dump_servers — Returns a list of currently configured servers
  • mysqlnd_ms_fabric_select_global — Switch to global sharding server for a given table
  • mysqlnd_ms_fabric_select_shard — Switch to shard
  • mysqlnd_ms_get_last_gtid — Returns the latest global transaction ID
  • mysqlnd_ms_get_last_used_connection — Returns an array which describes the last used connection
  • mysqlnd_ms_get_stats — Returns query distribution and connection statistics
  • mysqlnd_ms_match_wild — Finds whether a table name matches a wildcard pattern or not
  • mysqlnd_ms_query_is_select — Find whether to send the query to the master, the slave or the last used MySQL server
  • mysqlnd_ms_set_qos — Sets the quality of service needed from the cluster
  • mysqlnd_ms_set_user_pick_server — Sets a callback for user-defined read/write splitting
  • mysqlnd_ms_xa_begin — Starts a distributed/XA transaction among MySQL servers
  • mysqlnd_ms_xa_commit — Commits a distributed/XA transaction among MySQL servers
  • mysqlnd_ms_xa_gc — Garbage collects unfinished XA transactions after severe errors
  • mysqlnd_ms_xa_rollback — Rolls back a distributed/XA transaction among MySQL servers


Returns a list of currently configured servers

  • « Mysqlnd_ms Функции
  • mysqlnd_ms_fabric_select_global »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Returns a list of currently configured servers

mysqlnd_ms_dump_servers

(Информация о версии неизвестна, возможно, только в SVN)

mysqlnd_ms_dump_servers — Returns a list of currently configured servers

Описание

array mysqlnd_ms_dump_servers ( mixed $connection )

Returns a list of currently configured servers.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

Возвращаемые значения

FALSE on error. Otherwise, returns an array with two entries masters and slaves each of which contains an array listing all corresponding servers.

The function can be used to check and debug the list of servers currently used by the plugin. It is mostly useful when the list of servers changes at runtime, for example, when using MySQL Fabric.

masters and slaves server entries

Key | Description | Version
name_from_config | Server entry name from config, if appliciable. NULL if no configuration name is available. | Since 1.6.0.
hostname | Host name of the server. | Since 1.6.0.
user | Database user used to authenticate against the server. | Since 1.6.0.
port | TCP/IP port of the server. | Since 1.6.0.
socket | Unix domain socket of the server. | Since 1.6.0.

Примечания

Замечание:

mysqlnd_ms_dump_servers() requires PECL mysqlnd_ms >> 1.6.0.

Примеры

Пример #1 mysqlnd_ms_dump_servers() example

{
    "myapp": {
        "master": {
            "master1": {
                "host":"master1_host",
                "port":"master1_port",
                "socket":"master1_socket",
                "db":"master1_db",
                "user":"master1_user",
                "password":"master1_pw"
            }
        },
        "slave": {
             "slave_0": {
                 "host":"slave0_host",
                 "port":"slave0_port",
                 "socket":"slave0_socket",
                 "db":"slave0_db",
                 "user":"slave0_user",
                 "password":"slave0_pw"
             },
             "slave_1": {
                 "host":"slave1_host"
             }
        }
    }
}
<?php
$link = mysqli_connect("myapp", "global_user", "global_pass", "global_db", 1234, "global_socket");
var_dump(mysqlnd_ms_dump_servers($link);
?>

Результат выполнения данного примера:

array(2) {
  ["masters"]=>
  array(1) {
    [0]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "master1"
      ["hostname"]=>
      string(12) "master1_host"
      ["user"]=>
      string(12) "master1_user"
      ["port"]=>
      int(3306)
      ["socket"]=>
      string(14) "master1_socket"
    }
  }
  ["slaves"]=>
  array(2) {
    [0]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "slave_0"
      ["hostname"]=>
      string(11) "slave0_host"
      ["user"]=>
      string(11) "slave0_user"
      ["port"]=>
      int(3306)
      ["socket"]=>
      string(13) "slave0_socket"
    }
    [1]=>
    array(5) {
      ["name_from_config"]=>
      string(7) "slave_1"
      ["hostname"]=>
      string(11) "slave1_host"
      ["user"]=>
      string(12) "gloabal_user"
      ["port"]=>
      int(1234)
      ["socket"]=>
      string(13) "global_socket"
    }
  }
}


Switch to global sharding server for a given table

  • « mysqlnd_ms_dump_servers
  • mysqlnd_ms_fabric_select_shard »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Switch to global sharding server for a given table

mysqlnd_ms_fabric_select_global

(Информация о версии неизвестна, возможно, только в SVN)

mysqlnd_ms_fabric_select_global — Switch to global sharding server for a given table

Описание

array mysqlnd_ms_fabric_select_global ( mixed $connection , mixed $table_name )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

MySQL Fabric related.

Switch the connection to the nodes handling global sharding queries for the given table name.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

table_name

The table name to ask Fabric about.

Возвращаемые значения

FALSE on error. Otherwise, TRUE

Примечания

Замечание:

mysqlnd_ms_fabric_select_global() requires PECL mysqlnd_ms >> 1.6.0.


Switch to shard

  • « mysqlnd_ms_fabric_select_global
  • mysqlnd_ms_get_last_gtid »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Switch to shard

mysqlnd_ms_fabric_select_shard

(Информация о версии неизвестна, возможно, только в SVN)

mysqlnd_ms_fabric_select_shard — Switch to shard

Описание

array mysqlnd_ms_fabric_select_shard ( mixed $connection , mixed $table_name , mixed $shard_key )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

MySQL Fabric related.

Switch the connection to the shards responsible for the given table name and shard key.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

table_name

The table name to ask Fabric about.

shard_key

The shard key to ask Fabric about.

Возвращаемые значения

FALSE on error. Otherwise, TRUE

Примечания

Замечание:

mysqlnd_ms_fabric_select_shard() requires PECL mysqlnd_ms >> 1.6.0.


Returns the latest global transaction ID

  • « mysqlnd_ms_fabric_select_shard
  • mysqlnd_ms_get_last_used_connection »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Returns the latest global transaction ID

mysqlnd_ms_get_last_gtid

(PECL mysqlnd_ms >= 1.2.0)

mysqlnd_ms_get_last_gtid — Returns the latest global transaction ID

Описание

string mysqlnd_ms_get_last_gtid ( mixed $connection )

Returns a global transaction identifier which belongs to a write operation no older than the last write performed by the client. It is not guaranteed that the global transaction identifier is identical to that one created for the last write transaction performed by the client.

Список параметров

connection

A PECL/mysqlnd_ms connection handle to a MySQL server of the type PDO_MYSQL, mysqli> or ext/mysql. The connection handle is obtained when opening a connection with a host name that matches a mysqlnd_ms configuration file entry using any of the above three MySQL driver extensions.

Возвращаемые значения

Returns a global transaction ID (GTID) on success. Otherwise, returns FALSE.

The function mysqlnd_ms_get_last_gtid() returns the GTID obtained when executing the SQL statement from the fetch_last_gtid entry of the global_transaction_id_injection section from the plugins configuration file.

The function may be called after the GTID has been incremented.

Примечания

Замечание:

mysqlnd_ms_get_last_gtid() requires PHP >= 5.4.0 and PECL mysqlnd_ms >= 1.2.0. Internally, it is using a mysqlnd library C functionality not available with PHP 5.3.

Please note, all MySQL 5.6 production versions do not provide clients with enough information to use GTIDs for enforcing session consistency. In the worst case, the plugin will choose the master only.

Примеры

Пример #1 mysqlnd_ms_get_last_gtid() example

<?php
/* Open mysqlnd_ms connection using mysqli, PDO_MySQL or mysql extension */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("DROP TABLE IF EXISTS test"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));

/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("CREATE TABLE test(id INT)"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
?>

Смотрите также

  • Global Transaction IDs


Returns an array which describes the last used connection

  • « mysqlnd_ms_get_last_gtid
  • mysqlnd_ms_get_stats »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Returns an array which describes the last used connection

mysqlnd_ms_get_last_used_connection

(PECL mysqlnd_ms >= 1.1.0)

mysqlnd_ms_get_last_used_connection — Returns an array which describes the last used connection

Описание

array mysqlnd_ms_get_last_used_connection ( mixed $connection )

Returns an array which describes the last used connection from the plugins connection pool currently pointed to by the user connection handle. If using the plugin, a user connection handle represents a pool of database connections. It is not possible to tell from the user connection handles properties to which database server from the pool the user connection handle points.

The function can be used to debug or monitor PECL mysqlnd_ms.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

Возвращаемые значения

FALSE on error. Otherwise, an array which describes the connection used to execute the last statement on.

Array which describes the connection.

Property | Description | Version
scheme | Connection scheme. Either tcp://host:port or unix://host:socket. If you want to distinguish connections from each other use a combination of scheme and thread_id as a unique key. Neither scheme nor thread_id alone are sufficient to distinguish two connections from each other. Two servers may assign the same thread_id to two different connections. Thus, connections in the pool may have the same thread_id. Also, do not rely on uniqueness of scheme in a pool. Your QA engineers may use the same MySQL server instance for two distinct logical roles and add it multiple times to the pool. This hack is used, for example, in the test suite. | Since 1.1.0.
host | Database server host used with the connection. The host is only set with TCP/IP connections. It is empty with Unix domain or Windows named pipe connections, | Since 1.1.0.
host_info | A character string representing the server hostname and the connection type. | Since 1.1.2.
port | Database server port used with the connection. | Since 1.1.0.
socket_or_pipe | Unix domain socket or Windows named pipe used with the connection. The value is empty for TCP/IP connections. | Since 1.1.2.
thread_id | Connection thread id. | Since 1.1.0.
last_message | Info message obtained from the MySQL C API function mysql_info(). Please, see mysqli_info() for a description. | Since 1.1.0.
errno | Error code. | Since 1.1.0.
error | Error message. | Since 1.1.0.
sqlstate | Error SQLstate code. | Since 1.1.0.

Примечания

Замечание:

mysqlnd_ms_get_last_used_connection() requires PHP >= 5.4.0 and PECL mysqlnd_ms >> 1.1.0. Internally, it is using a mysqlnd library C call not available with PHP 5.3.

Примеры

The example assumes that myapp refers to a plugin configuration file section and represents a connection pool.

Пример #1 mysqlnd_ms_get_last_used_connection() example

<?php
$link = new mysqli("myapp", "user", "password", "database");
$res = $link->query("SELECT 1 FROM DUAL");
var_dump(mysqlnd_ms_get_last_used_connection($link));
?>

Результат выполнения данного примера:

array(10) {
  ["scheme"]=>
  string(22) "unix:///tmp/mysql.sock"
  ["host_info"]=>
  string(25) "Localhost via UNIX socket"
  ["host"]=>
  string(0) ""
  ["port"]=>
  int(3306)
  ["socket_or_pipe"]=>
  string(15) "/tmp/mysql.sock"
  ["thread_id"]=>
  int(46253)
  ["last_message"]=>
  string(0) ""
  ["errno"]=>
  int(0)
  ["error"]=>
  string(0) ""
  ["sqlstate"]=>
  string(5) "00000"
}


Returns query distribution and connection statistics

  • « mysqlnd_ms_get_last_used_connection
  • mysqlnd_ms_match_wild »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Returns query distribution and connection statistics

mysqlnd_ms_get_stats

(PECL mysqlnd_ms >= 1.0.0)

mysqlnd_ms_get_stats — Returns query distribution and connection statistics

Описание

array mysqlnd_ms_get_stats ( void )

Returns an array of statistics collected by the replication and load balancing plugin.

The PHP configuration setting mysqlnd_ms.collect_statistics controls the collection of statistics. The collection of statistics is disabled by default for performance reasons.

The scope of the statistics is the PHP process. Depending on your deployment model a PHP process may handle one or multiple requests.

Statistics are aggregated for all connections and all storage handler. It is not possible to tell how much queries originating from mysqli, PDO_MySQL or mysql API calls have contributed to the aggregated data values.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns NULL if the PHP configuration directive mysqlnd_ms.enable has disabled the plugin. Otherwise, returns array of statistics.

Array of statistics

Statistic | Description | Version
use_slave

The semantics of this statistic has changed between 1.0.1 - 1.1.0.

The meaning for version 1.0.1 is as follows. Number of statements considered as read-only by the built-in query analyzer. Neither statements which begin with a SQL hint to force use of slave nor statements directed to a slave by an user-defined callback are included. The total number of statements sent to the slaves is use_slave + use_slave_sql_hint + use_slave_callback.

PECL/mysqlnd_ms 1.1.0 introduces a new concept of chained filters. The statistics is now set by the internal load balancing filter. With version 1.1.0 the load balancing filter is always the last in the filter chain, if used. In future versions a load balancing filter may be followed by other filters causing another change in the meaning of the statistic. If, in the future, a load balancing filter is followed by another filter it is no longer guaranteed that the statement, which increments use_slave, will be executed on the slaves.

The meaning for version 1.1.0 is as follows. Number of statements sent to the slaves. Statements directed to a slave by the user filter (an user-defined callback) are not included. The latter are counted by use_slave_callback.

Since 1.0.0.
use_master

The semantics of this statistic has changed between 1.0.1 - 1.1.0.

The meaning for version 1.0.1 is as follows. Number of statements not considered as read-only by the built-in query analyzer. Neither statements which begin with a SQL hint to force use of master nor statements directed to a master by an user-defined callback are included. The total number of statements sent to the master is use_master + use_master_sql_hint + use_master_callback.

PECL/mysqlnd_ms 1.1.0 introduces a new concept of chained filters. The statictics is now set by the internal load balancing filter. With version 1.1.0 the load balancing filter is always the last in the filter chain, if used. In future versions a load balancing filter may be followed by other filters causing another change in the meaning of the statistic. If, in the future, a load balancing filter is followed by another filter it is no longer guaranteed that the statement, which increments use_master, will be executed on the slaves.

The meaning for version 1.1.0 is as follows. Number of statements sent to the masters. Statements directed to a master by the user filter (an user-defined callback) are not included. The latter are counted by use_master_callback.

Since 1.0.0.
use_slave_guess | Number of statements the built-in query analyzer recommends sending to a slave because they contain no SQL hint to force use of a certain server. The recommendation may be overruled in the following. It is not guaranteed whether the statement will be executed on a slave or not. This is how often the internal is_select function has guessed that a slave shall be used. Please, see also the user space function mysqlnd_ms_query_is_select(). | Since 1.1.0.
use_master_guess | Number of statements the built-in query analyzer recommends sending to a master because they contain no SQL hint to force use of a certain server. The recommendation may be overruled in the following. It is not guaranteed whether the statement will be executed on a slave or not. This is how often the internal is_select function has guessed that a master shall be used. Please, see also the user space function mysqlnd_ms_query_is_select(). | Since 1.1.0.
use_slave_sql_hint | Number of statements sent to a slave because statement begins with the SQL hint to force use of slave. | Since 1.0.0.
use_master_sql_hint | Number of statements sent to a master because statement begins with the SQL hint to force use of master. | Since 1.0.0.
use_last_used_sql_hint | Number of statements sent to server which has run the previous statement, because statement begins with the SQL hint to force use of previously used server. | Since 1.0.0.
use_slave_callback | Number of statements sent to a slave because an user-defined callback has chosen a slave server for statement execution. | Since 1.0.0.
use_master_callback | Number of statements sent to a master because an user-defined callback has chosen a master server for statement execution. | Since 1.0.0.
non_lazy_connections_slave_success | Number of successfully opened slave connections from configurations not using lazy connections. The total number of successfully opened slave connections is non_lazy_connections_slave_success + lazy_connections_slave_success | Since 1.0.0.
non_lazy_connections_slave_failure | Number of failed slave connection attempts from configurations not using lazy connections. The total number of failed slave connection attempts is non_lazy_connections_slave_failure + lazy_connections_slave_failure | Since 1.0.0.
non_lazy_connections_master_success | Number of successfully opened master connections from configurations not using lazy connections. The total number of successfully opened master connections is non_lazy_connections_master_success + lazy_connections_master_success | Since 1.0.0.
non_lazy_connections_master_failure | Number of failed master connection attempts from configurations not using lazy connections. The total number of failed master connection attempts is non_lazy_connections_master_failure + lazy_connections_master_failure | Since 1.0.0.
lazy_connections_slave_success | Number of successfully opened slave connections from configurations using lazy connections. | Since 1.0.0.
lazy_connections_slave_failure | Number of failed slave connection attempts from configurations using lazy connections. | Since 1.0.0.
lazy_connections_master_success | Number of successfully opened master connections from configurations using lazy connections. | Since 1.0.0.
lazy_connections_master_failure | Number of failed master connection attempts from configurations using lazy connections. | Since 1.0.0.
trx_autocommit_on | Number of autocommit mode activations via API calls. This figure may be used to monitor activity related to the plugin configuration setting trx_stickiness. If, for example, you want to know if a certain API call invokes the mysqlnd library function trx_autocommit(), which is a requirement for trx_stickiness, you may call the user API function in question and check if the statistic has changed. The statistic is modified only by the plugins internal subclassed trx_autocommit() method. | Since 1.0.0.
trx_autocommit_off | Number of autocommit mode deactivations via API calls. | Since 1.0.0.
trx_master_forced | Number of statements redirected to the master while trx_stickiness=master and autocommit mode is disabled. | Since 1.0.0.
gtid_autocommit_injections_success | Number of successful SQL injections in autocommit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_autocommit_injections_failure | Number of failed SQL injections in autocommit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_commit_injections_success | Number of successful SQL injections in commit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_commit_injections_failure | Number of failed SQL injections in commit mode as part of the plugins client-side global transaction id emulation. | Since 1.2.0.
gtid_implicit_commit_injections_success | Number of successful SQL injections when implicit commit is detected as part of the plugins client-side global transaction id emulation. Implicit commit happens, for example, when autocommit has been turned off, a query is executed and autocommit is enabled again. In that case, the statement will be committed by the server and SQL to maintain is injected before the autocommit is re-enabled. Another sequence causing an implicit commit is begin(), query(), begin(). The second call to begin() will implicitly commit the transaction started by the first call to begin(). begin() refers to internal library calls not actual PHP user API calls. | Since 1.2.0.
gtid_implicit_commit_injections_failure | Number of failed SQL injections when implicit commit is detected as part of the plugins client-side global transaction id emulation. Implicit commit happens, for example, when autocommit has been turned off, a query is executed and autocommit is enabled again. In that case, the statement will be committed by the server and SQL to maintain is injected before the autocommit is re-enabled. | Since 1.2.0.
transient_error_retries | How often an operation has been retried when a transient error was detected. See also, transient_error plugin configuration file setting. | Since 1.6.0.
fabric_sharding_lookup_servers_success | Number of successful sharding.lookup_servers remote procedure calls to MySQL Fabric. A call is considered successful if the plugin could reach MySQL Fabric and got any reply. The reply itself may or may not be understood by the plugin. Success refers to the network transport only. If the reply was not understood or indicates a valid error condition, fabric_sharding_lookup_servers_xml_failure gets incremented. | Since 1.6.0.
fabric_sharding_lookup_servers_failure | Number of failed sharding.lookup_servers remote procedure calls to MySQL Fabric. A remote procedure call is considered failed if there was a network error in connecting to, writing to or reading from MySQL Fabric. | Since 1.6.0.
fabric_sharding_lookup_servers_time_total | Time spent connecting to,writing to and reading from MySQL Fabrich during the sharding.lookup_servers remote procedure call. The value is aggregated for all calls. Time is measured in microseconds. | Since 1.6.0.
fabric_sharding_lookup_servers_bytes_total | Total number of bytes received from MySQL Fabric in reply to sharding.lookup_servers calls. | Since 1.6.0.
fabric_sharding_lookup_servers_xml_failure | How often a reply from MySQL Fabric to sharding.lookup_servers calls was not understood. Please note, the current experimental implementation does not distinguish between valid errors returned and malformed replies. | Since 1.6.0.
xa_begin | How many XA/distributed transactions have been started using mysqlnd_ms_xa_begin(). | Since 1.6.0.
xa_commit_success | How many XA/distributed transactions have been successfully committed using mysqlnd_ms_xa_commit(). | Since 1.6.0.
xa_commit_failure | How many XA/distributed transactions failed to commit during mysqlnd_ms_xa_commit(). | Since 1.6.0.
xa_rollback_success | How many XA/distributed transactions have been successfully rolled back using mysqlnd_ms_xa_rollback(). The figure does not include implict rollbacks performed as a result of mysqlnd_ms_xa_commit() failure. | Since 1.6.0.
xa_rollback_failure | How many XA/distributed transactions could not be rolled back. This includes failures of mysqlnd_ms_xa_rollback() but also failured during rollback when closing a connection, if rollback_on_close is set. Please, see also xa_rollback_on_close below. | Since 1.6.0.
xa_participants | Total number of participants in any XA transaction started with mysqlnd_ms_xa_begin(). | Since 1.6.0.
xa_rollback_on_close | How many XA transactions have been rolled back implicitly when a connection was close and rollback_on_close is set. Depending on your coding policies, this may hint a flaw in your code as you may prefer to explicitly clean up resources. | Since 1.6.0.
pool_masters_total | Number of master servers (connections) in the internal connection pool. | Since 1.6.0.
pool_slaves_total | Number of slave servers (connections) in the internal connection pool. | Since 1.6.0.
pool_masters_active | Number of master servers (connections) from the internal connection pool which are currently used for picking a connection. | Since 1.6.0.
pool_slaves_active | Number of slave servers (connections) from the internal connection pool which are currently used for picking a connection. | Since 1.6.0.
pool_updates | How often the active connection list has been replaced and a new set of master and slave servers had been installed. | Since 1.6.0.
pool_master_reactivated | How often a master connection has been reused after being flushed from the active list. | Since 1.6.0.
pool_slave_reactivated | How often a slave connection has been reused after being flushed from the active list. | Since 1.6.0.

Примеры

Пример #1 mysqlnd_ms_get_stats() example

<?php
printf("mysqlnd_ms.enable = %d\n", ini_get("mysqlnd_ms.enable"));
printf("mysqlnd_ms.collect_statistics = %d\n", ini_get("mysqlnd_ms.collect_statistics"));
var_dump(mysqlnd_ms_get_stats());
?>

Результат выполнения данного примера:

mysqlnd_ms.enable = 1
mysqlnd_ms.collect_statistics = 1
array(26) {
  ["use_slave"]=>
  string(1) "0"
  ["use_master"]=>
  string(1) "0"
  ["use_slave_guess"]=>
  string(1) "0"
  ["use_master_guess"]=>
  string(1) "0"
  ["use_slave_sql_hint"]=>
  string(1) "0"
  ["use_master_sql_hint"]=>
  string(1) "0"
  ["use_last_used_sql_hint"]=>
  string(1) "0"
  ["use_slave_callback"]=>
  string(1) "0"
  ["use_master_callback"]=>
  string(1) "0"
  ["non_lazy_connections_slave_success"]=>
  string(1) "0"
  ["non_lazy_connections_slave_failure"]=>
  string(1) "0"
  ["non_lazy_connections_master_success"]=>
  string(1) "0"
  ["non_lazy_connections_master_failure"]=>
  string(1) "0"
  ["lazy_connections_slave_success"]=>
  string(1) "0"
  ["lazy_connections_slave_failure"]=>
  string(1) "0"
  ["lazy_connections_master_success"]=>
  string(1) "0"
  ["lazy_connections_master_failure"]=>
  string(1) "0"
  ["trx_autocommit_on"]=>
  string(1) "0"
  ["trx_autocommit_off"]=>
  string(1) "0"
  ["trx_master_forced"]=>
  string(1) "0"
  ["gtid_autocommit_injections_success"]=>
  string(1) "0"
  ["gtid_autocommit_injections_failure"]=>
  string(1) "0"
  ["gtid_commit_injections_success"]=>
  string(1) "0"
  ["gtid_commit_injections_failure"]=>
  string(1) "0"
  ["gtid_implicit_commit_injections_success"]=>
  string(1) "0"
  ["gtid_implicit_commit_injections_failure"]=>
  string(1) "0"
  ["transient_error_retries"]=>
  string(1) "0"
}

Смотрите также

  • Runtime configuration
  • mysqlnd_ms.collect_statistics
  • mysqlnd_ms.enable
  • Monitoring


Finds whether a table name matches a wildcard pattern or not

  • « mysqlnd_ms_get_stats
  • mysqlnd_ms_query_is_select »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Finds whether a table name matches a wildcard pattern or not

mysqlnd_ms_match_wild

(PECL mysqlnd_ms >= 1.1.0)

mysqlnd_ms_match_wild — Finds whether a table name matches a wildcard pattern or not

Описание

bool mysqlnd_ms_match_wild ( string $table_name , string $wildcard )

Finds whether a table name matches a wildcard pattern or not.

This function is not of much practical relevance with PECL mysqlnd_ms 1.1.0 because the plugin does not support MySQL replication table filtering yet.

Список параметров

table_name

The table name to check if it is matched by the wildcard.

wildcard

The wildcard pattern to check against the table name. The wildcard pattern supports the same placeholders as MySQL replication filters do.

MySQL replication filters can be configured by using the MySQL Server configuration options --replicate-wild-do-table and --replicate-wild-do-db. Please, consult the MySQL Reference Manual to learn more about this MySQL Server feature.

The supported placeholders are:

  • % - zero or more literals
  • _ - one literal

Placeholders can be escaped using \.

Возвращаемые значения

Returns TRUE table_name is matched by wildcard. Otherwise, returns FALSE

Примеры

Пример #1 mysqlnd_ms_match_wild() example

<?php
var_dump(mysqlnd_ms_match_wild("schema_name.table_name", "schema%"));
var_dump(mysqlnd_ms_match_wild("abc", "_"));
var_dump(mysqlnd_ms_match_wild("table1", "table_"));
var_dump(mysqlnd_ms_match_wild("asia_customers", "%customers"));
var_dump(mysqlnd_ms_match_wild("funny%table","funny\%table"));
var_dump(mysqlnd_ms_match_wild("funnytable", "funny%table"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)


Find whether to send the query to the master, the slave or the last used MySQL server

  • « mysqlnd_ms_match_wild
  • mysqlnd_ms_set_qos »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Find whether to send the query to the master, the slave or the last used MySQL server

mysqlnd_ms_query_is_select

(PECL mysqlnd_ms >= 1.0.0)

mysqlnd_ms_query_is_select — Find whether to send the query to the master, the slave or the last used MySQL server

Описание

int mysqlnd_ms_query_is_select ( string $query )

Finds whether to send the query to the master, the slave or the last used MySQL server.

The plugins built-in read/write split mechanism will be used to analyze the query string to make a recommendation where to send the query. The built-in read/write split mechanism is very basic and simple. The plugin will recommend sending all queries to the MySQL replication master server but those which begin with SELECT, or begin with a SQL hint which enforces sending the query to a slave server. Due to the basic but fast algorithm the plugin may propose to run some read-only statements such as SHOW TABLES on the replication master.

Список параметров

query

Query string to test.

Возвращаемые значения

A return value of MYSQLND_MS_QUERY_USE_MASTER indicates that the query should be send to the MySQL replication master server. The function returns a value of MYSQLND_MS_QUERY_USE_SLAVE if the query can be run on a slave because it is considered read-only. A value of MYSQLND_MS_QUERY_USE_LAST_USED is returned to recommend running the query on the last used server. This can either be a MySQL replication master server or a MySQL replication slave server.

If read write splitting has been disabled by setting mysqlnd_ms.disable_rw_split, the function will always return MYSQLND_MS_QUERY_USE_MASTER or MYSQLND_MS_QUERY_USE_LAST_USED.

Примеры

Пример #1 mysqlnd_ms_query_is_select() example

<?php
function is_select($query)
{
 switch (mysqlnd_ms_query_is_select($query))
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("'%s' should be run on the master.\n", $query);
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   printf("'%s' should be run on a slave.\n", $query);
   break;
  case MYSQLND_MS_QUERY_USE_LAST_USED:
   printf("'%s' should be run on the server that has run the previous query\n", $query);
   break;
  default:
   printf("No suggestion where to run the '%s', fallback to master recommended\n", $query);
   break;
 }
}

is_select("INSERT INTO test(id) VALUES (1)");
is_select("SELECT 1 FROM DUAL");
is_select("/*" . MYSQLND_MS_LAST_USED_SWITCH . "*/SELECT 2 FROM DUAL");
?>

Результат выполнения данного примера:

INSERT INTO test(id) VALUES (1) should be run on the master.
SELECT 1 FROM DUAL should be run on a slave.
/*ms=last_used*/SELECT 2 FROM DUAL should be run on the server that has run the previous query

Смотрите также

  • Predefined Constants
  • user filter
  • Runtime configuration
  • mysqlnd_ms.disable_rw_split
  • mysqlnd_ms.enable


Sets the quality of service needed from the cluster

  • « mysqlnd_ms_query_is_select
  • mysqlnd_ms_set_user_pick_server »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Sets the quality of service needed from the cluster

mysqlnd_ms_set_qos

(PECL mysqlnd_ms < 1.2.0)

mysqlnd_ms_set_qos — Sets the quality of service needed from the cluster

Описание

bool mysqlnd_ms_set_qos ( mixed $connection , int $service_level [, int $service_level_option [, mixed $option_value ]] )

Sets the quality of service needed from the cluster. A database cluster delivers a certain quality of service to the user depending on its architecture. A major aspect of the quality of service is the consistency level the cluster can offer. An asynchronous MySQL replication cluster defaults to eventual consistency for slave reads: a slave may serve stale data, current data, or it may have not the requested data at all, because it is not synchronous to the master. In a MySQL replication cluster, only master accesses can give strong consistency, which promises that all clients see each others changes.

PECL/mysqlnd_ms hides the complexity of choosing appropriate nodes to achieve a certain level of service from the cluster. The "Quality of Service" filter implements the necessary logic. The filter can either be configured in the plugins configuration file, or at runtime using mysqlnd_ms_set_qos().

Similar results can be achieved with PECL mysqlnd_ms < 1.2.0, if using SQL hints to force the use of a certain type of node or using the master_on_write plugin configuration option. The first requires more code and causes more work on the application side. The latter is less refined than using the quality of service filter. Settings made through the function call can be reversed, as shown in the example below. The example temporarily switches to a higher service level (session consistency, read your writes) and returns back to the clusters default after it has performed all operations that require the better service. This way, read load on the master can be minimized compared to using master_on_write, which would continue using the master after the first write.

Since 1.5.0 calls will fail when done in the middle of a transaction if transaction stickiness is enabled and transaction boundaries have been detected. properly.

Список параметров

connection

A PECL/mysqlnd_ms connection handle to a MySQL server of the type PDO_MYSQL, mysqli or ext/mysql for which a service level is to be set. The connection handle is obtained when opening a connection with a host name that matches a mysqlnd_ms configuration file entry using any of the above three MySQL driver extensions.

service_level

The requested service level: MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL, MYSQLND_MS_QOS_CONSISTENCY_SESSION or MYSQLND_MS_QOS_CONSISTENCY_STRONG.

service_level_option

An option to parameterize the requested service level. The option can either be MYSQLND_MS_QOS_OPTION_GTID or MYSQLND_MS_QOS_OPTION_AGE.

The option MYSQLND_MS_QOS_OPTION_GTID can be used to refine the service level MYSQLND_MS_QOS_CONSISTENCY_SESSION. It must be combined with a fourth function parameter, the option_value. The option_value shall be a global transaction ID obtained from mysqlnd_ms_get_last_gtid(). If set, the plugin considers both master servers and asynchronous slaves for session consistency (read your writes). Otherwise, only masters are used to achieve session consistency. A slave is considered up-to-date and checked if it has already replicated the global transaction ID from option_value. Please note, searching appropriate slaves is an expensive and slow operation. Use the feature sparsely, if the master cannot handle the read load alone.

The MYSQLND_MS_QOS_OPTION_AGE option can be combined with the MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL service level, to filter out asynchronous slaves that lag more seconds behind the master than option_value. If set, the plugin will only consider slaves for reading if SHOW SLAVE STATUS reports Slave_IO_Running=Yes, Slave_SQL_Running=Yes and Seconds_Behind_Master <= option_value. Please note, searching appropriate slaves is an expensive and slow operation. Use the feature sparsely in version 1.2.0. Future versions may improve the algorithm used to identify candidates. Please, see the MySQL reference manual about the precision, accuracy and limitations of the MySQL administrative command SHOW SLAVE STATUS.

option_value

Parameter value for the service level option. See also the service_level_option parameter.

Возвращаемые значения

Returns TRUE if the connections service level has been switched to the requested. Otherwise, returns FALSE

Примечания

Замечание:

mysqlnd_ms_set_qos() requires PHP >= 5.4.0 and PECL mysqlnd_ms >= 1.2.0. Internally, it is using a mysqlnd library C functionality not available with PHP 5.3.

Please note, all MySQL 5.6 production versions do not provide clients with enough information to use GTIDs for enforcing session consistency. In the worst case, the plugin will choose the master only.

Примеры

Пример #1 mysqlnd_ms_set_qos() example

<?php
/* Open mysqlnd_ms connection using mysqli, PDO_MySQL or mysql extension */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
  /* Of course, your error handling is nicer... */
  die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));

/* Session consistency: read your writes */
$ret = mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_SESSION);
if (!$ret)
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

/* Will use master and return fresh data, client can see his last write */
if (!$res = $mysqli->query("SELECT item, price FROM orders WHERE order_id = 1"))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

/* Back to default: use of all slaves and masters permitted, stale data can happen */
if (!mysqlnd_ms_set_qos($mysqli, MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL))
  die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
?>

Смотрите также

  • mysqlnd_ms_get_last_gtid() - Returns the latest global transaction ID
  • Service level and consistency concept
  • Filter concept


Sets a callback for user-defined read/write splitting

  • « mysqlnd_ms_set_qos
  • mysqlnd_ms_xa_begin »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Sets a callback for user-defined read/write splitting

mysqlnd_ms_set_user_pick_server

(PECL mysqlnd_ms < 1.1.0)

mysqlnd_ms_set_user_pick_server — Sets a callback for user-defined read/write splitting

Описание

bool mysqlnd_ms_set_user_pick_server ( string $function )

Sets a callback for user-defined read/write splitting. The plugin will call the callback only if pick[]=user is the default rule for server picking in the relevant section of the plugins configuration file.

The plugins built-in read/write query split mechanism decisions can be overwritten in two ways. The easiest way is to prepend the query string with the SQL hints MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH or MYSQLND_MS_LAST_USED_SWITCH. Using SQL hints one can control, for example, whether a query shall be send to the MySQL replication master server or one of the slave servers. By help of SQL hints it is not possible to pick a certain slave server for query execution.

Full control on server selection can be gained using a callback function. Use of a callback is recommended to expert users only because the callback has to cover all cases otherwise handled by the plugin.

The plugin will invoke the callback function for selecting a server from the lists of configured master and slave servers. The callback function inspects the query to run and picks a server for query execution by returning the hosts URI, as found in the master and slave list.

If the lazy connections are enabled and the callback chooses a slave server for which no connection has been established so far and establishing the connection to the slave fails, the plugin will return an error upon the next action on the failed connection, for example, when running a query. It is the responsibility of the application developer to handle the error. For example, the application can re-run the query to trigger a new server selection and callback invocation. If so, the callback must make sure to select a different slave, or check slave availability, before returning to the plugin to prevent an endless loop.

Список параметров

function

The function to be called. Class methods may also be invoked statically using this function by passing array($classname, $methodname) to this parameter. Additionally class methods of an object instance may be called by passing array($objectinstance, $methodname) to this parameter.

Возвращаемые значения

Host to run the query on. The host URI is to be taken from the master and slave connection lists passed to the callback function. If callback returns a value neither found in the master nor in the slave connection lists the plugin will fallback to the second pick method configured via the pick[] setting in the plugin configuration file. If not second pick method is given, the plugin falls back to the build-in default pick method for server selection.

Примечания

Замечание:

mysqlnd_ms_set_user_pick_server() is available with PECL mysqlnd_ms < 1.1.0. It has been replaced by the user filter. Please, check the Change History for upgrade notes.

Примеры

Пример #1 mysqlnd_ms_set_user_pick_server() example

[myapp]
master[] = localhost
slave[] = 192.168.2.27:3306
slave[] = 192.168.78.136:3306
pick[] = user
<?php

function pick_server($connected, $query, $master, $slaves, $last_used)
{
 static $slave_idx = 0;
 static $num_slaves = NULL;
 if (is_null($num_slaves))
  $num_slaves = count($slaves);

 /* default: fallback to the plugins build-in logic */
 $ret = NULL;

 printf("User has connected to '%s'...\n", $connected);
 printf("... deciding where to run '%s'\n", $query);

 $where = mysqlnd_ms_query_is_select($query);
 switch ($where)
 {
  case MYSQLND_MS_QUERY_USE_MASTER:
   printf("... using master\n");
   $ret = $master[0];
   break;
  case MYSQLND_MS_QUERY_USE_SLAVE:
   /* SELECT or SQL hint for using slave */
   if (stristr($query, "FROM table_on_slave_a_only"))
   {
    /* a table which is only on the first configured slave  */
    printf("... access to table available only on slave A detected\n");
    $ret = $slaves[0];
   }
   else
   {
    /* round robin */
    printf("... some read-only query for a slave\n");
    $ret = $slaves[$slave_idx++ % $num_slaves];
   }
   break;
  case MYSQLND_MS_QUERY_LAST_USED:
   printf("... using last used server\n");
   $ret = $last_used;
   break;
 }

 printf("... ret = '%s'\n", $ret);
 return $ret;
}

mysqlnd_ms_set_user_pick_server("pick_server");

$mysqli = new mysqli("myapp", "root", "root", "test");

if (!($res = $mysqli->query("SELECT 1 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT 2 FROM DUAL")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

if (!($res = $mysqli->query("SELECT * FROM table_on_slave_a_only")))
 printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
else
 $res->close();

$mysqli->close();
?>

Результат выполнения данного примера:

User has connected to 'myapp'...
... deciding where to run 'SELECT 1 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.2.27:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT 2 FROM DUAL'
... some read-only query for a slave
... ret = 'tcp://192.168.78.136:3306'
User has connected to 'myapp'...
... deciding where to run 'SELECT * FROM table_on_slave_a_only'
... access to table available only on slave A detected
... ret = 'tcp://192.168.2.27:3306'

Смотрите также

  • mysqlnd_ms_query_is_select() - Find whether to send the query to the master, the slave or the last used MySQL server
  • Filter concept
  • user filter


Starts a distributed/XA transaction among MySQL servers

  • « mysqlnd_ms_set_user_pick_server
  • mysqlnd_ms_xa_commit »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Starts a distributed/XA transaction among MySQL servers

mysqlnd_ms_xa_begin

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_begin — Starts a distributed/XA transaction among MySQL servers

Описание

int mysqlnd_ms_xa_begin ( mixed $connection , string $gtrid [, int $timeout ] )

Starts a XA transaction among MySQL servers. PECL/mysqlnd_ms acts as a transaction coordinator the distributed transaction.

Once a global transaction has been started, the plugin injects appropriate XA BEGIN SQL statements on all MySQL servers used in the following. The global transaction is either ended by calling mysqlnd_ms_xa_commit(), mysqlnd_ms_xa_rollback() or by an implicit rollback in case of an error.

During a global transaction, the plugin tracks all server switches, for example, when switching from one MySQL shard to another MySQL shard. Immediately before a query is run on a server that has not been participating in the global transaction yet, XA BEGIN is executed on the server. From a users perspective the injection happens during a call to a query execution function such as mysqli_query(). Should the injection fail an error is reported to the caller of the query execution function. The failing server does not become a participant in the global transaction. The user may retry executing a query on the server and hereby retry injecting XA BEGIN, abort the global transaction because not all required servers can participate, or ignore and continue the global without the failed server.

Reasons to fail executing XA BEGIN include but are not limited to a server being unreachable or the server having an open, concurrent XA transaction using the same xid.

Please note, global and local transactions are mutually exclusive. You cannot start a XA transaction when you have a local transaction open. The local transaction must be ended first. The plugin tries to detect this conflict as early as possible. It monitors API calls for controlling local transactions to learn about the current state. However, if using SQL statements for local transactions such as BEGIN, the plugin may not know the current state and the conflict is not detected before XA BEGIN is injected and executed.

The use of other XA resources but MySQL servers is not supported by the function. To carry out a global transaction among, for example, a MySQL server and another vendors database system, you should issue the systems SQL commands yourself.

Замечание: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid). The gtrid is a binary string up to 64 bytes long. Please note, depending on your character set settings, 64 characters may require more than 64 bytes to store.

In accordance with the MySQL SQL syntax, XA transactions use identifiers made of three parts. An xid consists of a global transaction identifier (gtrid), a branch qualifier (bqual) and a format identifier (formatID). Only the global transaction identifier can and needs to be set.

The branch qualifier and format identifier are set automatically. The details should be considered implementation dependent, which may change without prior notice. In version 1.6 the branch qualifier is consecutive number which is incremented whenever a participant joins the global transaction.

timeout

Timeout in seconds. The default value is 60 seconds.

The timeout is a hint to the garbage collection. If a transaction is recorded to take longer than expected, the garbage collection begins checking the transactions status.

Setting a low value may make the garbage collection check the progress too often. Please note, checking the status of a global transaction may involve connecting to all recorded participants and possibly issuing queries on the servers.

Возвращаемые значения

Returns TRUE if there is no open local or global transaction and a new global transaction can be started. Otherwise, returns FALSE

Смотрите также

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Commits a distributed/XA transaction among MySQL servers

  • « mysqlnd_ms_xa_begin
  • mysqlnd_ms_xa_gc »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Commits a distributed/XA transaction among MySQL servers

mysqlnd_ms_xa_commit

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_commit — Commits a distributed/XA transaction among MySQL servers

Описание

int mysqlnd_ms_xa_commit ( mixed $connection , string $gtrid )

Commits a global transaction among MySQL servers started by mysqlnd_ms_xa_begin().

If any of the global transaction participants fails to commit an implicit rollback is performed. It may happen that not all cases can be handled during the rollback. For example, no attempts will be made to reconnect to a participant after the connection to the participant has been lost. Solving cases that cannot easily be rolled back is left to the garbage collection.

Замечание: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid).

Возвращаемые значения

Returns TRUE if the global transaction has been committed. Otherwise, returns FALSE

Смотрите также

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Garbage collects unfinished XA transactions after severe errors

  • « mysqlnd_ms_xa_commit
  • mysqlnd_ms_xa_rollback »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Garbage collects unfinished XA transactions after severe errors

mysqlnd_ms_xa_gc

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_gc — Garbage collects unfinished XA transactions after severe errors

Описание

int mysqlnd_ms_xa_gc ( mixed $connection [, string $gtrid [, boolean $ignore_max_retries ]] )

Garbage collects unfinished XA transactions.

The XA protocol is a blocking protocol. There exist cases when servers participating in a global transaction cannot make progress when the transaction coordinator crashes or disconnects. In such a case, the MySQL servers keep waiting for instructions to finish the XA transaction in question. Because transactions occupy resources, transactions should always be terminated properly.

Garbage collection requires configuring a state store to track global transactions. Should a PHP client crash in the middle of a transaction and a new PHP client be started, then the built-in garbage collection can learn about the aborted global transaction and terminate it. If you do not configure a state store, the garbage collection cannot perform any cleanup tasks.

The state store should be crash-safe and be highly available to survive its own crash. Currently, only MySQL is supported as a state store.

Garbage collection can also be performed automatically in the background. See the plugin configuration directive garbage_collection for details.

Замечание: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid). If given, the garbage collection considers the transaction only. Otherwise, the state store is scanned for any unfinished transaction.

ignore_max_retries

Whether to ignore the plugin configuration max_retries setting. If garbage collection continuously fails and the max_retries limit is reached prior to finishing the failed global transaction, you can attempt further runs prior to investigating the cause and solving the issue manually by issuing appropriate SQL statements on the participants. Setting the parameter has the same effect as temporarily setting max_retries = 0.

Возвращаемые значения

Returns TRUE if garbage collection was successful. Otherwise, returns FALSE

Смотрите также

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • State store configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Rolls back a distributed/XA transaction among MySQL servers

  • « mysqlnd_ms_xa_gc
  • Change History »
  • PHP Manual
  • Mysqlnd_ms Функции
  • Rolls back a distributed/XA transaction among MySQL servers

mysqlnd_ms_xa_rollback

(PECL mysqlnd_ms < 1.6.0)

mysqlnd_ms_xa_rollback — Rolls back a distributed/XA transaction among MySQL servers

Описание

int mysqlnd_ms_xa_rollback ( mixed $connection , string $gtrid )

Rolls back a global transaction among MySQL servers started by mysqlnd_ms_xa_begin().

If any of the global transaction participants fails to rollback the situation is left to be solved by the garbage collection.

Замечание: Experimental

The feature is currently under development. There may be issues and/or feature limitations. Do not use in production environments.

Список параметров

connection

A MySQL connection handle obtained from any of the connect functions of the mysqli, mysql or PDO_MYSQL extensions.

gtrid

Global transaction identifier (gtrid).

Возвращаемые значения

Returns TRUE if the global transaction has been rolled back. Otherwise, returns FALSE

Смотрите также

  • Quickstart XA/Distributed transactions
  • Runtime configuration
  • mysqlnd_ms_get_stats() - Returns query distribution and connection statistics


Change History

Содержание

  • PECL/mysqlnd_ms 1.6 series
  • PECL/mysqlnd_ms 1.5 series
  • PECL/mysqlnd_ms 1.4 series
  • PECL/mysqlnd_ms 1.3 series
  • PECL/mysqlnd_ms 1.2 series
  • PECL/mysqlnd_ms 1.1 series
  • PECL/mysqlnd_ms 1.0 series

This change history is a high level summary of selected changes that may impact applications and/or break backwards compatibility.

See also the CHANGES file in the source distribution for a complete list of changes.


PECL/mysqlnd_ms 1.6 series

1.6.0-alpha

  • Release date: TBD
  • Motto/theme: Maintenance and initial MySQL Fabric support

Замечание:

This is the current development series. All features are at an early stage. Changes may happen at any time without prior notice. Please, do not use this version in production environments.

The documentation may not reflect all changes yet.

Bug fixes

  • Won't fix: #66616 R/W split fails: QOS with mysqlnd_get_last_gtid with built-in MySQL GTID

    This is not a bug in the plugins implementation but a server side feature limitation not considered and documented before. MySQL 5.6 built-in GTIDs cannot be used to ensure session consistency when reading from slaves in all cases. In the worst case the plugin will not consider using the slaves and fallback to using the master. There will be no wrong results but no benefit from doing GTID checks either.

  • Fixed #66064 - Random once load balancer ignoring weights

    Due to a config parsing bug random load balancing has ignored node weights if, and only if, the sticky flag was set (random once).

  • Fixed #65496 - Wrong check for slave delay

    The quality of service filter has erroneously ignored slaves that lag for zero (0) seconds if a any maximum lag had been set. Although a slave was not lagging behind, it was excluded from the load balancing list if a maximum age was set by the QoS filter. This was due to using the wrong comparison operator in the source of the filter.

  • Fixed #65408 - Compile failure with -Werror=format-security

Feature changes

  • Introduced an internal connection pool. When using Fabric and switching from shard group A to shard group B, we are replacing the entire list of masters and slaves. This troubles the connections state alignment logic and some filters. Some filters cache information on the master and slave lists. The new internal connection pool abstraction allows us to inform the filters of changes, hence they can update their caches.

    Later on, the pool can also be used to reduce connection overhead. Assume you are switching from a shard group to another and back again. Whenever the switch is done, the pool's active server (and connection) lists are replaced. However, no longer used connections are not necessarily closed immediately but can be kept in the pool for later reuse.

    Please note, the connection pool is internalat this point. There are some new statistics to monitor it. However, you cannot yet configure pool size of behaviour.

  • Added a basic distributed transaction abstraction. XA transactions can are supported ever since using standard SQL calls. This is inconvenient as XA participants must be managed manually. PECL/mysqlnd_ms introduces API calls to control XA transaction among MySQL servers. When using the new functions, PECL/mysqlnd_ms acts as a transaction coordinator. After starting a distributed transaction, the plugin tracks all servers involved until the transaction is ended and issues appropriate SQL statements on the XA participants.

    This is useful, for example, when using Fabric and sharding. When using Fabric the actual shard servers involved in a business transaction may not be known in advance. Thus, manually controlling a transaction that spawns multiple shards becomes difficult. Please, be warned about current limitations.

  • Introduced automatic retry loop for transient errors and corresponding statistic to count the number of implicit retries. Some distributed database clusters use transient errors to hint a client to retry its operation in a bit. Most often, the client is then supposed to halt execution (sleep) for a short moment before retrying the desired operation. Immediately failing over to another node is not necessary in response to the error. Instead, a retry loop can be performed. Common situation when using MySQL Cluster.

  • Introduced automatic retry loop for transient errors and corresponding statistic to count the number of implicit retries. Some distributed database clusters use transient errors to hint a client to retry its operation in a bit. Most often, the client is then supposed to halt execution (sleep) for a short moment before retrying the desired operation. Immediately failing over to another node is not necessary in response to the error. Instead, a retry loop can be performed. Common situation when using MySQL Cluster.

  • Introduced most basic support for the MySQL Fabric High Availability and sharding framework.

    Please, consider this pre-alpha quality. Both the server side framework and the client side code is supposed to work flawless considering the MySQL Fabric quickstart examples only. However, testing has not been performed to the level of prior plugin alpha releases. Either sides are moving targets, API changes may happen at any time without prior warning.

    As this is work in progress, the manual may not yet reflect allow feature limitations and known bugs.

  • New statistics to monitor the Fabric XML RPC call sharding.lookup_servers: fabric_sharding_lookup_servers_success, fabric_sharding_lookup_servers_failure, fabric_sharding_lookup_servers_time_total, fabric_sharding_lookup_servers_bytes_total, fabric_sharding_lookup_servers_xml_failure.

  • New functions related to MySQL Fabric:
mysqlnd_ms_fabric_select_shard(),
mysqlnd_ms_fabric_select_global(),
mysqlnd_ms_dump_servers().


PECL/mysqlnd_ms 1.5 series

1.5.1-stable

  • Release date: 06/2013
  • Motto/theme: Sharding support, improved transaction support

Замечание:

This is the current stable series. Use this version in production environments.

The documentation is complete.

1.5.0-alpha

  • Release date: 03/2013
  • Motto/theme: Sharding support, improved transaction support

Bug fixes

  • Fixed #60605 PHP segmentation fault when mysqlnd_ms is enabled.

  • Setting transaction stickiness disables all load balancing, including automatic failover, for the duration of a transaction. So far connection switches could have happened in the middle of a transaction in multi-master configurations and during automatic failover although transaction monitoring had detected transaction boundaries properly.

  • BC break and bug fix. SQL hints enforcing the use of a specific kind of server (MYSQLND_MS_MASTER_SWITCH, MYSQLND_MS_SLAVE_SWITCH, MYSQLND_MS_LAST_USED_SWITCH) are ignored for the duration of a transaction of transaction stickiness is enabled and transaction boundaries have been detected properly.

    This is a change in behaviour. However, it is also a bug fix and a step to align behaviour. If, in previous versions, transaction stickiness, one of the above listed SQL hints and the quality of service filtering was combined it could happened that the SQL hints got ignored. In some case the SQL hints did work, in other cases they did not. The new behaviour is more consistent. SQL hints will always be ignore for the duration of a transaction, if transaction stickiness is enabled.

    Please note, transaction boundary detection continues to be based on API call monitoring. SQL commands controlling transactions are not monitored.

  • BC break and bug fix. Calls to mysqlnd_ms_set_qos() will fail when done in the middle of a transaction if transaction stickiness is enabled. Connection switches are not allowed for the duration of a transaction. Changing the quality of service likely results on a different set of servers qualifying for query execution, possibly making it necessary to switch connections. Thus, the call is not allowed in during an active transaction. The quality of server can, however, be changed in between transactions.

Feature changes

  • Introduced the node_group filter. The filter lets you organize servers (master and slaves) into groups. Queries can be directed to a certain group of servers by prefixing the query statement with a SQL hint/comment that contains the groups configured name. Grouping can be used for partitioning and sharding, and also to optimize for local caching. In the case of sharding, a group name can be thought of like a shard key. All queries for a given shard key will be executed on the configured shard. Note: both the client and server must support sharding for sharding to function with mysqlnd_ms.

  • Extended configuration file validation during PHP startup (RINIT). An E_WARNING level error will be thrown if the configuration file can not be read (permissions), is empty, or the file (JSON) could not be parsed. Warnings may appear in log files, which depending on how PHP is configured.

    Distributions that aim to provide a pre-configured setup, including a configuration file stub, are asked to put {} into the configuration file to prevent this warning about an invalid configuration file.

    Further configuration file validation is done when parsing sections upon opening a connection. Please, note that there may still be situations when an invalid plugin configuration file does not lead to proper error messages but a failure to connect.

  • As of PHP 5.5.0, improved support for transaction boundaries detection was added for mysqli. The mysqli extension has been modified to use the new C API calls of the mysqlnd library to begin, commit, and rollback a transaction or savepoint. If trx_stickiness is used to enable transaction aware load balancing, the mysqli_begin(), mysqli_commit() and mysqli_rollback() functions will now be monitered by the plugin, to go along with the mysqli_autocommit() function that was already supported. All SQL features to control transactions are also available through the improved mysqli transaction control related functions. This means that it is not required to issue SQL statements instead of using API calls. Applications using the appropriate API calls can be load balanced by PECL/mysqlnd_ms in a completely transaction-aware way.

    Please note, PDO_MySQL has not been updated yet to utilize the new mysqlnd API calls. Thus, transaction boundary detection with PDO_MySQL continues to be limited to the monitoring by passing in PDO::ATTR_AUTOCOMMIT to PDO::setAttribute().

  • Introduced trx_stickiness=on. This trx_stickiness option differs from trx_stickiness=master as it tries to execute a read-only transaction on a slave, if quality of service (consistency level) allows the use of a slave. Read-only transactions were introduced in MySQL 5.6, and they offer performance gains.

  • Query cache support is considered beta if used with the mysqli API. It should work fine with primary copy based clusters. For all other APIs, this feature continues to be called experimental.

  • The code examples in the mysqlnd_ms source were updated.


PECL/mysqlnd_ms 1.4 series

1.4.2-stable

  • Release date: 08/2012
  • Motto/theme: Tweaking based on user feedback

1.4.1-beta

  • Release date: 08/2012
  • Motto/theme: Tweaking based on user feedback

Bug fixes

  • Fixed build with PHP 5.5

1.4.0-alpha

  • Release date: 07/2012
  • Motto/theme: Tweaking based on user feedback

Feature changes

  • BC break: Renamed plugin configuration setting ini_file to config_file. In early versions the plugin configuration file used ini style. Back then the configuration setting was named accordingly. It has now been renamed to reflect the newer file format and to distinguish it from PHP's own ini file (configuration directives file).

  • Introduced new default charset setting server_charset to allow proper escaping before a connection is opened. This is most useful when using lazy connections, which are a default.

  • Introduced wait_for_gtid_timeout setting to throttle slave reads that need session consistency. If global transaction identifier are used and the service level is set to session consistency, the plugin tries to find up-to-date slaves. The slave status check is done by a SQL statement. If nothing else is set, the slave status is checked only one can the search for more up-to-date slaves continues immediately thereafter. Setting wait_for_gtid_timeout instructs the plugin to poll a slaves status for wait_for_gtid_timeout seconds if the first execution of the SQL statement has shown that the slave is not up-to-date yet. The poll will be done once per second. This way, the plugin will wait for slaves to catch up and throttle the client.

  • New failover strategy loop_before_master. By default the plugin does no failover. It is possible to enable automatic failover if a connection attempt fails. Upto version 1.3 only master strategy existed to failover to a master if a slave connection fails. loop_before_master is similar but tries all other slaves before attempting to connect to the master if a slave connection fails.

    The number of attempts can be limited using the max_retries option. Failed hosts can be remembered and skipped in load balancing for the rest of the web request. max_retries and remember_failed are considered experimental although decent stability is given. Syntax and semantics may change in the future without prior notice.


PECL/mysqlnd_ms 1.3 series

1.3.2-stable

  • Release date: 04/2012
  • Motto/theme: see 1.3.0-alpha

Bug fixes

  • Fixed problem with multi-master where although in a transaction the queries to the master weren't sticky and were spread all over the masters (RR). Still not sticky for Random. Random_once is not affected.

1.3.1-beta

  • Release date: 04/2012
  • Motto/theme: see 1.3.0-alpha

Bug fixes

  • Fixed problem with building together with QC.

1.3.0-alpha

  • Release date: 04/2012
  • Motto/theme: Query caching through quality-of-service concept

The 1.3 series aims to improve the performance of applications and the overall load of an asynchronous MySQL cluster, for example, a MySQL cluster using MySQL Replication. This is done by transparently replacing a slave access with a local cache access, if the application allows it by setting an appropriate quality of service flag. When using MySQL replication a slave can serve stale data. An application using MySQL replication must continue to work correctly with stale data. Given that the application is know to work correctly with stale data, the slave access can transparently be replace with a local cache access.

PECL/mysqlnd_qc serves as a cache backend. PECL/mysqlnd_qc supports use of various storage locations, among others main memory, APC and MEMCACHE.

Feature changes

  • Added cache option to quality-of-service (QoS) filter.

    • New configure option enable-mysqlnd-ms-cache-support
    • New constant MYSQLND_MS_HAVE_CACHE_SUPPORT.
    • New constant MYSQLND_MS_QOS_OPTION_CACHE to be used with mysqlnd_ms_set_qos().

  • Support for built-in global transaction identifier feature of MySQL 5.6.5-m8 or newer.


PECL/mysqlnd_ms 1.2 series

1.2.1-beta

  • Release date: 01/2012
  • Motto/theme: see 1.2.0-alpha

Minor test changes.

1.2.0-alpha

  • Release date: 11/2011
  • Motto/theme: Global Transaction ID injection and quality-of-service concept

In version 1.2 the focus continues to be on supporting MySQL database clusters with asynchronous replication. The plugin tries to make using the cluster introducing a quality-of-service filter which applications can use to define what service quality they need from the cluster. Service levels provided are eventual consistency with optional maximum age/slave slag, session consistency and strong consistency.

Additionally the plugin can do client-side global transaction id injection to make manual master failover easier.

Feature changes

  • Introduced quality-of-service (QoS) filter. Service levels provided by QoS filter:

    • eventual consistency, optional option slave lag
    • session consistency, optional option GTID
    • strong consistency

  • Added the mysqlnd_ms_set_qos() function to set the required connection quality at runtime. The new constants related to mysqlnd_ms_set_qos() are:

    • MYSQLND_MS_QOS_CONSISTENCY_STRONG
    • MYSQLND_MS_QOS_CONSISTENCY_SESSION
    • MYSQLND_MS_QOS_CONSISTENCY_EVENTUAL
    • MYSQLND_MS_QOS_OPTION_GTID
    • MYSQLND_MS_QOS_OPTION_AGE

  • Added client-side global transaction id injection (GTID).

  • New statistics related to GTID:

    • gtid_autocommit_injections_success
    • gtid_autocommit_injections_failure
    • gtid_commit_injections_success
    • gtid_commit_injections_failure
    • gtid_implicit_commit_injections_success
    • gtid_implicit_commit_injections_failure

  • Added mysqlnd_ms_get_last_gtid() to fetch the last global transaction id.

  • Enabled support for multi master without slaves.


PECL/mysqlnd_ms 1.1 series

1.1.0

  • Release date: 09/2011
  • Motto/theme: Cover replication basics with production quality

The 1.1 and 1.0 series expose a similar feature set. Internally, the 1.1 series has been refactored to plan for future feature additions. A new configuration file format has been introduced, and limitations have been lifted. And the code quality and quality assurance has been improved.

Feature changes

  • Added the (chainable) filter concept:

    • BC break: mysqlnd_ms_set_user_pick_server() has been removed. Thehttp://svn.php.net/viewvc/pecl/mysqlnd_ms/trunk/ user filter has been introduced to replace it. The filter offers similar functionality, but see below for an explanation of the differences.

  • New powerful JSON based configuration syntax.
  • Lazy connections improved: security relevant, and state changing commands are covered.
  • Support for (native) prepared statements.

  • New statistics: use_master_guess, use_slave_guess.

    • BC break: Semantics of statistics changed for use_slave, use_master. Future changes are likely. Please see, mysqlnd_ms_get_stats().

  • List of broadcasted messages extended by ssl_set.
  • Library calls now monitored to remember settings for lazy connections: change_user, select_db, set_charset, set_autocommit.
  • Introduced mysqlnd_ms.disable_rw_split. The configuration setting allows using the load balancing and lazy connection functionality independently of read write splitting.

Bug fixes

  • Fixed PECL #22724 - Server switching (mysqlnd_ms_query_is_select() case sensitive)
  • Fixed PECL #22784 - Using mysql_connect and mysql_select_db did not work
  • Fixed PECL #59982 - Unusable extension with --enable-mysqlnd-ms-table-filter. Use of the option is NOT supported. You must not used it. Added note to m4.
  • Fixed Bug #60119 - host="localhost" lost in mysqlnd_ms_get_last_used_connection()

The mysqlnd_ms_set_user_pick_server() function was removed, and replaced in favor of a new user filter. You can no longer set a callback function using mysqlnd_ms_set_user_pick_server() at runtime, but instead have to configure it in the plugins configuration file. The user filter will pass the same arguments to the callback as before. Therefore, you can continue to use the same procedural function as a callback.callback It is no longer possible to use static class methods, or class methods of an object instance, as a callback. Doing so will cause the function executing a statement handled by the plugin to emit an E_RECOVERABLE_ERROR level error, which might look like: "(mysqlnd_ms) Specified callback (picker) is not a valid callback." Note: this may halt your application.


PECL/mysqlnd_ms 1.0 series

1.0.1-alpha

  • Release date: 04/2011
  • Motto/theme: bug fix release

1.0.0-alpha

  • Release date: 04/2011
  • Motto/theme: Cover replication basics to test user feedback

The first release of practical use. It features basic automatic read-write splitting, SQL hints to overrule automatic redirection, load balancing of slave requests, lazy connections, and optional, automatic use of the master after the first write.

The public feature set is close to that of the 1.1 release.

1.0.0-pre-alpha

  • Release date: 09/2010
  • Motto/theme: Proof of concept

Initial check-in. Essentially a demo of the mysqlnd plugin API.


Mysqlnd query result cache plugin

  • Введение
  • Quickstart and Examples
    • Architecture and Concepts
    • Setup
    • Caching queries
    • Setting the TTL
    • Pattern based caching
    • Slam defense
    • Finding cache candidates
    • Measuring cache efficiency
    • Beyond TTL: user-defined storage
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • mysqlnd_qc Функции
    • mysqlnd_qc_clear_cache — Flush all cache contents
    • mysqlnd_qc_get_available_handlers — Returns a list of available storage handler
    • mysqlnd_qc_get_cache_info — Returns information on the current handler, the number of cache entries and cache entries, if available
    • mysqlnd_qc_get_core_stats — Statistics collected by the core of the query cache
    • mysqlnd_qc_get_normalized_query_trace_log — Returns a normalized query trace log for each query inspected by the query cache
    • mysqlnd_qc_get_query_trace_log — Returns a backtrace for each query inspected by the query cache
    • mysqlnd_qc_set_cache_condition — Set conditions for automatic caching
    • mysqlnd_qc_set_is_select — Installs a callback which decides whether a statement is cached
    • mysqlnd_qc_set_storage_handler — Change current storage handler
    • mysqlnd_qc_set_user_handlers — Sets the callback functions for a user-defined procedural storage handler
  • Change History
    • PECL/mysqlnd_qc 1.2 series
    • PECL/mysqlnd_qc 1.1 series
    • PECL/mysqlnd_qc 1.0 series


Введение

The mysqlnd query result cache plugin adds easy to use client-side query caching to all PHP MySQL extensions using mysqlnd.

As of version PHP 5.3.3 the MySQL native driver for PHP ( mysqlnd) features an internal plugin C API. C plugins, such as the query cache plugin, can extend the functionality of mysqlnd.

Mysqlnd plugins such as the query cache plugin operate transparent from a user perspective. The cache plugin supports all PHP applications and all PHP MySQL extensions ( mysqli, mysql, PDO_MYSQL). It does not change existing APIs.

No significant application changes are required to cache a query. The cache has two operation modes. It will either cache all queries (not recommended) or only those queries marked with a certain SQL hint (recommended).

Key Features

  • Transparent and therefore easy to use

    • supports all PHP MySQL extensions

    • no API changes

    • very little application changes required

  • Flexible invalidation strategy

    • Time-to-Live (TTL)

    • user-defined

  • Storage with different scope and life-span

    • Default (Hash, process memory)

    • APC

    • MEMCACHE

    • sqlite

    • user-defined

  • Built-in slam defense to prevent cache stampeding.

Limitations

The current 1.0.1 release of PECL mysqlnd_qc does not support PHP 5.4. Version 1.1.0-alpha lifts this limitation.

Prepared statements and unbuffered queries are fully supported. Thus, the plugin is capable of caching all statements issued with mysqli or PDO_MySQL, which are the only two PHP MySQL APIs to offer prepared statement support.

On the name

The shortcut mysqlnd_qc stands for mysqlnd query cache plugin. The name was chosen for a quick-and-dirty proof-of-concept. In the beginning the developers did not expect to continue using the code base. Sometimes PECL/mysqlnd_qc has also been called client-side query result set cache.


Quickstart and Examples

Содержание

  • Architecture and Concepts
  • Setup
  • Caching queries
  • Setting the TTL
  • Pattern based caching
  • Slam defense
  • Finding cache candidates
  • Measuring cache efficiency
  • Beyond TTL: user-defined storage

The mysqlnd query cache plugin is easy to use. This quickstart will demo typical use-cases, and provide practical advice on getting started.

It is strongly recommended to read the reference sections in addition to the quickstart. It is safe to begin with the quickstart. However, before using the plugin in mission critical environments we urge you to read additionally the background information from the reference sections.

Most of the examples use the mysqli extension because it is the most feature complete PHP MySQL extension. However, the plugin can be used with any PHP MySQL extension that is using the mysqlnd library.


Architecture and Concepts

The query cache plugin is implemented as a PHP extension. It is written in C and operates under the hood of PHP. During the startup of the PHP interpreter, it gets registered as a mysqlnd plugin to replace selected mysqlnd C methods. Hereby, it can change the behaviour of any PHP MySQL extension (mysqli, PDO_MYSQL, mysql) compiled to use the mysqlnd library without changing the extensions API. This makes the plugin compatible with each and every PHP MySQL application. Because existing APIs are not changed, it is almost transparent to use. Please, see the mysqlnd plugin API description for a discussion of the advantages of the plugin architecture and a comparison with proxy based solutions.

Transparent to use

At PHP run time PECL/mysqlnd_qc can proxy queries send from PHP (mysqlnd) to the MySQL server. It then inspects the statement string to find whether it shall cache its results. If so, result set is cached using a storage handler and further executions of the statement are served from the cache for a user-defined period. The Time to Live (TTL) of the cache entry can either be set globally or on a per statement basis.

A statement is either cached if the plugin is instructed to cache all statements globally using a or, if the query string starts with the SQL hint (/*qc=on*/). The plugin is capable of caching any query issued by calling appropriate API calls of any of the existing PHP MySQL extensions.

Flexible storage: various storage handler

Various storage handler are supported to offer different scopes for cache entries. Different scopes allow for different degrees in sharing cache entries among clients.

  • default (built-in): process memory, scope: process, one or more web requests depending on PHP deployment model used

  • APC: shared memory, scope: single server, multiple web requests

  • SQLite: memory or file, scope: single server, multiple web requests

  • MEMCACHE: main memory, scope: single or multiple server, multiple web requests

  • user (built-in): user-defined - any, scope: user-defined - any

Support for the APC, SQLite and MEMCACHE storage handler has to be enabled at compile time. The default and user handler are built-in. It is possible to switch between compiled-in storage handlers on a per query basis at run time. However, it is recommended to pick one storage handler and use it for all cache entries.

Built-in slam defense to avoid overloading

To avoid overload situations the cache plugin has a built-in slam defense mechanism. If a popular cache entries expires many clients using the cache entries will try to refresh the cache entry. For the duration of the refresh many clients may access the database server concurrently. In the worst case, the database server becomes overloaded and it takes more and more time to refresh the cache entry, which in turn lets more and more clients try to refresh the cache entry. To prevent this from happening the plugin has a slam defense mechanism. If slam defense is enabled and the plugin detects an expired cache entry it extends the life time of the cache entry before it refreshes the cache entry. This way other concurrent accesses to the expired cache entry are still served from the cache for a certain time. The other concurrent accesses to not trigger a concurrent refresh. Ideally, the cache entry gets refreshed by the client which extended the cache entries lifespan before other clients try to refresh the cache and potentially cause an overload situation.

Unique approach to caching

PECL/mysqlnd_qc has a unique approach to caching result sets that is superior to application based cache solutions. Application based solutions first fetch a result set into PHP variables. Then, the PHP variables are serialized for storage in a persistent cache, and then unserialized when fetching. The mysqlnd query cache stores the raw wire protocol data sent from MySQL to PHP in its cache and replays it, if still valid, on a cache hit. This way, it saves an extra serialization step for a cache put that all application based solutions have to do. It can store the raw wire protocol data in the cache without having to serialize into a PHP variable first and deserializing the PHP variable for storing in the cache again.


Setup

The plugin is implemented as a PHP extension. See also the installation instructions to install the » PECL/mysqlnd_qc extension.

Compile or configure the PHP MySQL extension (mysqli, PDO_MYSQL, mysql) that you plan to use with support for the mysqlnd library. PECL/mysqlnd_qc is a plugin for the mysqlnd library. To use the plugin with any of the existing PHP MySQL extensions (APIs), the extension has to use the mysqlnd library.

Then, load the extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_qc.enable_qc.

Пример #1 Enabling the plugin (php.ini)

mysqlnd_qc.enable_qc=1


Caching queries

There are four ways to trigger caching of a query.

  • Use of SQL hints on a per query basis
  • User supplied callbacks to decide on a per query basis, for example, using mysqlnd_qc_is_select()
  • mysqlnd_set_cache_condition() for rule based automatic per query decisions
  • mysqlnd_qc.cache_by_default = 1 to cache all queries blindly

Use of SQL hints and mysqlnd_qc.cache_by_default = 1 are explained below. Please, refer to the function reference on mysqlnd_qc_is_select() for a description of using a callback and, mysqlnd_qc_set_cache_condition() on how to set rules for automatic caching.

A SQL hint is a SQL standards compliant comment. As a SQL comment it is ignored by the database. A statement is considered eligible for caching if it either begins with the SQL hint enabling caching or it is a SELECT statement.

An individual query which shall be cached must begin with the SQL hint /*qc=on*/. It is recommended to use the PHP constant MYSQLND_QC_ENABLE_SWITCH instead of using the string value.

  • not eligible for caching and not cached: INSERT INTO test(id) VALUES (1)

  • not eligible for caching and not cached: SHOW ENGINES

  • eligible for caching but uncached: SELECT id FROM test

  • eligible for caching and cached: /*qc=on*/SELECT id FROM test

The examples SELECT statement string is prefixed with the MYSQLND_QC_ENABLE_SWITCH SQL hint to enable caching of the statement. The SQL hint must be given at the very beginning of the statement string to enable caching.

Пример #1 Using the MYSQLND_QC_ENABLE_SWITCH SQL hint

mysqlnd_qc.enable_qc=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* Will be cached because of the SQL hint */
$start = microtime(true);
$res   = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 1");

var_dump($res->fetch_assoc());
$res->free();

printf("Total time uncached query: %.6fs\n", microtime(true) - $start);

/* Cache hit */
$start = microtime(true);
$res   = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 1");

var_dump($res->fetch_assoc());
$res->free();

printf("Total time cached query: %.6fs\n", microtime(true) - $start);
?>

Результатом выполнения данных примеров будет что-то подобное:

array(1) {
  ["id"]=>
  string(1) "1"
}
Total time uncached query: 0.000740s
array(1) {
  ["id"]=>
  string(1) "1"
}
Total time cached query: 0.000098s

If nothing else is configured, as it is the case in the quickstart example, the plugin will use the built-in default storage handler. The default storage handler uses process memory to hold a cache entry. Depending on the PHP deployment model, a PHP process may serve one or more web requests. Please, consult the web server manual for details. Details make no difference for the examples given in the quickstart.

The query cache plugin will cache all queries regardless if the query string begins with the SQL hint which enables caching or not, if the PHP configuration directive mysqlnd_qc.cache_by_default is set to 1. The setting mysqlnd_qc.cache_by_default is evaluated by the core of the query cache plugins. Neither the built-in nor user-defined storage handler can overrule the setting.

The SQL hint /*qc=off*/ can be used to disable caching of individual queries if mysqlnd_qc.cache_by_default = 1 It is recommended to use the PHP constant MYSQLND_QC_DISABLE_SWITCH instead of using the string value.

Пример #2 Using the MYSQLND_QC_DISABLE_SWITCH SQL hint

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* Will be cached although no SQL hint is present because of mysqlnd_qc.cache_by_default = 1*/
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

$mysqli->query("DELETE FROM test WHERE id = 1");

/* Cache hit - no automatic invalidation and still valid! */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Cache miss - query must not be cached because of the SQL hint */
$res = $mysqli->query("/*" . MYSQLND_QC_DISABLE_SWITCH . "*/SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();
?>

Результат выполнения данных примеров:

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "1"
}
NULL

PECL/mysqlnd_qc forbids caching of statements for which at least one column from the statements result set shows no table name in its meta data by default. This is usually the case for columns originating from SQL functions such as NOW() or LAST_INSERT_ID(). The policy aims to prevent pitfalls if caching by default is used.

Пример #3 Example showing which type of statements are not cached

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");

for ($i = 0; $i < 3; $i++) {

    $start = microtime(true);

    /* Note: statement will not be cached because of NOW() use */
    $res = $mysqli->query("SELECT id, NOW() AS _time FROM test");
    $row = $res->fetch_assoc();

    /* dump results */
    var_dump($row);

    printf("Total time: %.6fs\n", microtime(true) - $start);

    /* pause one second */
    sleep(1);
}
?>

Результатом выполнения данных примеров будет что-то подобное:

array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:10"
}
Total time: 0.000540s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:11"
}
Total time: 0.000555s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:43:12"
}
Total time: 0.000549s

It is possible to enable caching for all statements including those which has columns in their result set for which MySQL reports no table, such as the statement from the example. Set mysqlnd_qc.cache_no_table = 1 to enable caching of such statements. Please, note the difference in the measured times for the above and below examples.

Пример #4 Enabling caching for all statements using the mysqlnd_qc.cache_no_table ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.cache_by_default=1
mysqlnd_qc.cache_no_table=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");

for ($i = 0; $i < 3; $i++) {

    $start = microtime(true);

    /* Note: statement will not be cached because of NOW() use */
    $res = $mysqli->query("SELECT id, NOW() AS _time FROM test");
    $row = $res->fetch_assoc();

    /* dump results */
    var_dump($row);

    printf("Total time: %.6fs\n", microtime(true) - $start);

    /* pause one second */
    sleep(1);
}
?>

Результатом выполнения данных примеров будет что-то подобное:

array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Total time: 0.000546s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Total time: 0.000187s
array(2) {
  ["id"]=>
  string(1) "1"
  ["_time"]=>
  string(19) "2012-01-11 15:47:45"
}
Total time: 0.000167s

Замечание:

Although mysqlnd_qc.cache_no_table = 1 has been created for use with mysqlnd_qc.cache_by_default = 1 it is bound it. The plugin will evaluate the mysqlnd_qc.cache_no_table whenever a query is to be cached, no matter whether caching has been enabled using a SQL hint or any other measure.


Setting the TTL

The default invalidation strategy of the query cache plugin is Time to Live (TTL). The built-in storage handlers will use the default TTL defined by the PHP configuration value mysqlnd_qc.ttl unless the query string contains a hint for setting a different TTL. The TTL is specified in seconds. By default cache entries expire after 30 seconds

The example sets mysqlnd_qc.ttl=3 to cache statements for three seconds by default. Every second it updates a database table record to hold the current time and executes a SELECT statement to fetch the record from the database. The SELECT statement is cached for three seconds because it is prefixed with the SQL hint enabling caching. The output verifies that the query results are taken from the cache for the duration of three seconds before they are refreshed.

Пример #1 Setting the TTL with the mysqlnd_qc.ttl ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.ttl=3
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id VARCHAR(255))");

for ($i = 0; $i < 7; $i++) {

    /* update DB row  */
    if (!$mysqli->query("DELETE FROM test") ||
        !$mysqli->query("INSERT INTO test(id) VALUES (NOW())"))
      /* Of course, a real-life script should do better error handling */
      die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));

    /* select latest row but cache results */
    $query  = "/*" . MYSQLND_QC_ENABLE_SWITCH . "*/";
    $query .= "SELECT id AS _time FROM test";
    if (!($res = $mysqli->query($query)) ||
        !($row = $res->fetch_assoc()))
    {
      printf("[%d] %s\n", $mysqli->errno, $mysqli->error);
    }
    $res->free();
    printf("Wall time %s - DB row time %s\n", date("H:i:s"), $row['_time']);

    /* pause one second */
    sleep(1);
}
?>

Результатом выполнения данных примеров будет что-то подобное:

Wall time 14:55:59 - DB row time 2012-01-11 14:55:59
Wall time 14:56:00 - DB row time 2012-01-11 14:55:59
Wall time 14:56:01 - DB row time 2012-01-11 14:55:59
Wall time 14:56:02 - DB row time 2012-01-11 14:56:02
Wall time 14:56:03 - DB row time 2012-01-11 14:56:02
Wall time 14:56:04 - DB row time 2012-01-11 14:56:02
Wall time 14:56:05 - DB row time 2012-01-11 14:56:05

As can be seen from the example, any TTL based cache can serve stale data. Cache entries are not automatically invalidated, if underlying data changes. Applications using the default TTL invalidation strategy must be able to work correctly with stale data.

A user-defined cache storage handler can implement any invalidation strategy to work around this limitation.

The default TTL can be overruled using the SQL hint /*qc_tt=seconds*/. The SQL hint must be appear immediately after the SQL hint which enables caching. It is recommended to use the PHP constant MYSQLND_QC_TTL_SWITCH instead of using the string value.

Пример #2 Setting TTL with SQL hints

<?php
$start = microtime(true);

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

printf("Default TTL\t: %d seconds\n", ini_get("mysqlnd_qc.ttl"));

/* Will be cached for 2 seconds */
$sql = sprintf("/*%s*//*%s%d*/SELECT id FROM test WHERE id = 1", MYSQLND_QC_ENABLE_SWITCH, MYSQLND_QC_TTL_SWITCH, 2);
$res = $mysqli->query($sql);

var_dump($res->fetch_assoc());
$res->free();

$mysqli->query("DELETE FROM test WHERE id = 1");
sleep(1);

/* Cache hit - no automatic invalidation and still valid! */
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

sleep(2);

/* Cache miss - cache entry has expired */
$res = $mysqli->query($sql);
var_dump($res->fetch_assoc());
$res->free();

printf("Script runtime\t: %d seconds\n", microtime(true) - $start);
?>

Результатом выполнения данных примеров будет что-то подобное:

Default TTL     : 30 seconds
array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "1"
}
NULL
Script runtime  : 3 seconds


Pattern based caching

An application has three options for telling PECL/mysqlnd_qc whether a particular statement shall be used. The most basic approach is to cache all statements by setting mysqlnd_qc.cache_by_default = 1. This approach is often of little practical value. But it enables users to make a quick estimation about the maximum performance gains from caching. An application designed to use a cache may be able to prefix selected statements with the appropriate SQL hints. However, altering an applications source code may not always be possible or desired, for example, to avoid problems with software updates. Therefore, PECL/mysqlnd_qc allows setting a callback which decides if a query is to be cached.

The callback is installed with the mysqlnd_qc_set_is_select() function. The callback is given the statement string of every statement inspected by the plugin. Then, the callback can decide whether to cache the function. The callback is supposed to return FALSE if the statement shall not be cached. A return value of TRUE makes the plugin try to add the statement into the cache. The cache entry will be given the default TTL ( mysqlnd_qc.ttl). If the callback returns a numerical value it is used as the TTL instead of the global default.

Пример #1 Setting a callback with mysqlnd_qc_set_is_select()

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_statistics=1
<?php
/* callback which decides if query is cached */
function is_select($query) {
    static $patterns = array(
      /* true - use default from mysqlnd_qc.ttl */
      "@SELECT\s+.*\s+FROM\s+test@ismU" => true,
      /* 3 - use TTL = 3 seconds */
      "@SELECT\s+.*\s+FROM\s+news@ismU" => 3
    );

    /* check if query does match pattern */
    foreach ($patterns as $pattern => $ttl) {
        if (preg_match($pattern, $query)) {
            printf("is_select(%45s): cache\n", $query);
            return $ttl;
        }
    }
    printf("is_select(%45s): do not cache\n", $query);
    return false;
}
/* install callback */
mysqlnd_qc_set_is_select("is_select");

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* cache put */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache hit */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache put */
$mysqli->query("SELECT * FROM test");

$stats = mysqlnd_qc_get_core_stats();
printf("Cache put: %d\n", $stats['cache_put']);
printf("Cache hit: %d\n", $stats['cache_hit']);
?>

Результатом выполнения данных примеров будет что-то подобное:

is_select(                    DROP TABLE IF EXISTS test): do not cache
is_select(                    CREATE TABLE test(id INT)): do not cache
is_select(    INSERT INTO test(id) VALUES (1), (2), (3)): do not cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(                           SELECT * FROM test): cache
Cache put: 2
Cache hit: 1

The examples callback tests if a statement string matches a pattern. If this is the case, it either returns TRUE to cache the statement using the global default TTL or an alternative TTL.

To minimize application changes the callback can put into and registered in an auto prepend file.


Slam defense

A badly designed cache can do more harm than good. In the worst case a cache can increase database server load instead of minimizing it. An overload situation can occur if a highly shared cache entry expires (cache stampeding).

Cache entries are shared and reused to a different degree depending on the storage used. The default storage handler stores cache entries in process memory. Thus, a cache entry can be reused for the life-span of a process. Other PHP processes cannot access it. If Memcache is used, a cache entry can be shared among multiple PHP processes and even among multiple machines, depending on the set up being used.

If a highly shared cache entry stored, for example, in Memcache expires, many clients gets a cache miss. Many client requests can no longer be served from the cache but try to run the underlying query on the database server. Until the cache entry is refreshed, more and more clients contact the database server. In the worst case, a total lost of service is the result.

The overload can be avoided using a storage handler which limits the reuse of cache entries to few clients. Then, at the average, its likely that only a limited number of clients will try to refresh a cache entry concurrently.

Additionally, the built-in slam defense mechanism can and should be used. If slam defense is activated an expired cache entry is given an extended life time. The first client getting a cache miss for the expired cache entry tries to refresh the cache entry within the extended life time. All other clients requesting the cache entry are temporarily served from the cache although the original TTL of the cache entry has expired. The other clients will not experience a cache miss before the extended life time is over.

Пример #1 Enabling the slam defense mechanism

mysqlnd_qc.slam_defense=1
mysqlnd_qc.slam_defense_ttl=1

The slam defense mechanism is enabled with the PHP configuration directive mysqlnd_qc.slam_defense. The extended life time of a cache entry is set with mysqlnd_qc.slam_defense_ttl.

The function mysqlnd_qc_get_core_stats() returns an array of statistics. The statistics slam_stale_refresh and slam_stale_hit are incremented if slam defense takes place.

It is not possible to give a one-fits-all recommendation on the slam defense configuration. Users are advised to monitor and test their setup and derive settings accordingly.


Finding cache candidates

A statement should be considered for caching if it is executed often and has a long run time. Cache candidates are found by creating a list of statements sorted by the product of the number of executions multiplied by the statements run time. The function mysqlnd_qc_get_query_trace_log() returns a query log which help with the task.

Collecting a query trace is a slow operation. Thus, it is disabled by default. The PHP configuration directive mysqlnd_qc.collect_query_trace is used to enable it. The functions trace contains one entry for every query issued before the function is called.

Пример #1 Collecting a query trace

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_query_trace=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");

/* dummy queries to fill the query trace */
for ($i = 0; $i < 2; $i++) {
    $res = $mysqli->query("SELECT 1 AS _one FROM DUAL");
    $res->free();
}

/* dump trace */
var_dump(mysqlnd_qc_get_query_trace_log());
?>

Результат выполнения данных примеров:

array(2) {
  [0]=>
  array(8) {
    ["query"]=>
    string(26) "SELECT 1 AS _one FROM DUAL"
    ["origin"]=>
    string(102) "#0 qc.php(7): mysqli->query('SELECT 1 AS _on...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(25)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [1]=>
  array(8) {
    ["query"]=>
    string(26) "SELECT 1 AS _one FROM DUAL"
    ["origin"]=>
    string(102) "#0 qc.php(7): mysqli->query('SELECT 1 AS _on...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(8)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
}

Assorted information is given in the trace. Among them timings and the origin of the query call. The origin property holds a code backtrace to identify the source of the query. The depth of the backtrace can be limited with the PHP configuration directive mysqlnd_qc.query_trace_bt_depth. The default depth is 3.

Пример #2 Setting the backtrace depth with the mysqlnd_qc.query_trace_bt_depth ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_query_trace=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries to fill the query trace */
for ($i = 0; $i < 3; $i++) {
    $res = $mysqli->query("SELECT id FROM test WHERE id = " . $mysqli->real_escape_string($i));
    $res->free();
}

$trace = mysqlnd_qc_get_query_trace_log();
$summary = array();
foreach ($trace as $entry) {
    if (!isset($summary[$entry['query']])) {
        $summary[$entry['query']] = array(
            "executions" => 1,
            "time"       => $entry['run_time'] + $entry['store_time'],
        );
    } else {
        $summary[$entry['query']]['executions']++;
        $summary[$entry['query']]['time'] += $entry['run_time'] + $entry['store_time'];
    }
}

foreach ($summary as $query => $details) {
    printf("%45s: %5dms (%dx)\n",
    $query, $details['time'], $details['executions']);
}
?>

Результатом выполнения данных примеров будет что-то подобное:

                    DROP TABLE IF EXISTS test:     0ms (1x)
                    CREATE TABLE test(id INT):     0ms (1x)
    INSERT INTO test(id) VALUES (1), (2), (3):     0ms (1x)
             SELECT id FROM test WHERE id = 0:    25ms (1x)
             SELECT id FROM test WHERE id = 1:    10ms (1x)
             SELECT id FROM test WHERE id = 2:     9ms (1x)


Measuring cache efficiency

PECL/mysqlnd_qc offers three ways to measure the cache efficiency. The function mysqlnd_qc_get_normalized_query_trace_log() returns statistics aggregated by the normalized query string, mysqlnd_qc_get_cache_info() gives storage handler specific information which includes a list of all cached items, depending on the storage handler. Additionally, the core of PECL/mysqlnd_qc collects high-level summary statistics aggregated per PHP process. The high-level statistics are returned by mysqlnd_qc_get_core_stats().

The functions mysqlnd_qc_get_normalized_query_trace_log() and mysqlnd_qc_get_core_stats() will not collect data unless data collection has been enabled through their corresponding PHP configuration directives. Data collection is disabled by default for performance considerations. It is configurable with the mysqlnd_qc.time_statistics option, which determines if timing information should be collected. Collection of time statistics is enabled by default but only performed if data collection as such has been enabled. Recording time statistics causes extra system calls. In most cases, the benefit of the monitoring outweighs any potential performance penalty of the additional system calls.

Пример #1 Collecting statistics data with the mysqlnd_qc.time_statistics ini setting

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_statistics=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries */
for ($i = 1; $i <= 4; $i++) {
    $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d", MYSQLND_QC_ENABLE_SWITCH, $i % 2);
    $res   = $mysqli->query($query);

    $res->free();
}

var_dump(mysqlnd_qc_get_core_stats());
?>

Результатом выполнения данных примеров будет что-то подобное:

array(26) {
  ["cache_hit"]=>
  string(1) "2"
  ["cache_miss"]=>
  string(1) "2"
  ["cache_put"]=>
  string(1) "2"
  ["query_should_cache"]=>
  string(1) "4"
  ["query_should_not_cache"]=>
  string(1) "3"
  ["query_not_cached"]=>
  string(1) "3"
  ["query_could_cache"]=>
  string(1) "4"
  ["query_found_in_cache"]=>
  string(1) "2"
  ["query_uncached_other"]=>
  string(1) "0"
  ["query_uncached_no_table"]=>
  string(1) "0"
  ["query_uncached_no_result"]=>
  string(1) "0"
  ["query_uncached_use_result"]=>
  string(1) "0"
  ["query_aggr_run_time_cache_hit"]=>
  string(2) "28"
  ["query_aggr_run_time_cache_put"]=>
  string(3) "900"
  ["query_aggr_run_time_total"]=>
  string(3) "928"
  ["query_aggr_store_time_cache_hit"]=>
  string(2) "14"
  ["query_aggr_store_time_cache_put"]=>
  string(2) "40"
  ["query_aggr_store_time_total"]=>
  string(2) "54"
  ["receive_bytes_recorded"]=>
  string(3) "136"
  ["receive_bytes_replayed"]=>
  string(3) "136"
  ["send_bytes_recorded"]=>
  string(2) "84"
  ["send_bytes_replayed"]=>
  string(2) "84"
  ["slam_stale_refresh"]=>
  string(1) "0"
  ["slam_stale_hit"]=>
  string(1) "0"
  ["request_counter"]=>
  int(1)
  ["process_hash"]=>
  int(1929695233)
}

For a quick overview, call mysqlnd_qc_get_core_stats(). It delivers cache usage, cache timing and traffic related statistics. Values are aggregated on a per process basis for all queries issued by any PHP MySQL API call.

Some storage handler, such as the default handler, can report cache entries, statistics related to the entries and meta data for the underlying query through the mysqlnd_qc_get_cache_info() function. Please note, that the information returned depends on the storage handler. Values are aggregated on a per process basis.

Пример #2 Example mysqlnd_qc_get_cache_info() usage

mysqlnd_qc.enable_qc=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries to fill the query trace */
for ($i = 1; $i <= 4; $i++) {
    $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d", MYSQLND_QC_ENABLE_SWITCH, $i % 2);
    $res   = $mysqli->query($query);

    $res->free();
}

var_dump(mysqlnd_qc_get_cache_info());
?>

Результатом выполнения данных примеров будет что-то подобное:

array(4) {
  ["num_entries"]=>
  int(2)
  ["handler"]=>
  string(7) "default"
  ["handler_version"]=>
  string(5) "1.0.0"
  ["data"]=>
  array(2) {
    ["Localhost via UNIX socket
3306
root
test|/*qc=on*/SELECT id FROM test WHERE id = 1"]=>
    array(2) {
      ["statistics"]=>
      array(11) {
        ["rows"]=>
        int(1)
        ["stored_size"]=>
        int(71)
        ["cache_hits"]=>
        int(1)
        ["run_time"]=>
        int(391)
        ["store_time"]=>
        int(27)
        ["min_run_time"]=>
        int(16)
        ["max_run_time"]=>
        int(16)
        ["min_store_time"]=>
        int(8)
        ["max_store_time"]=>
        int(8)
        ["avg_run_time"]=>
        int(8)
        ["avg_store_time"]=>
        int(4)
      }
      ["metadata"]=>
      array(1) {
        [0]=>
        array(8) {
          ["name"]=>
          string(2) "id"
          ["orig_name"]=>
          string(2) "id"
          ["table"]=>
          string(4) "test"
          ["orig_table"]=>
          string(4) "test"
          ["db"]=>
          string(4) "test"
          ["max_length"]=>
          int(1)
          ["length"]=>
          int(11)
          ["type"]=>
          int(3)
        }
      }
    }
    ["Localhost via UNIX socket
3306
root
test|/*qc=on*/SELECT id FROM test WHERE id = 0"]=>
    array(2) {
      ["statistics"]=>
      array(11) {
        ["rows"]=>
        int(0)
        ["stored_size"]=>
        int(65)
        ["cache_hits"]=>
        int(1)
        ["run_time"]=>
        int(299)
        ["store_time"]=>
        int(13)
        ["min_run_time"]=>
        int(11)
        ["max_run_time"]=>
        int(11)
        ["min_store_time"]=>
        int(6)
        ["max_store_time"]=>
        int(6)
        ["avg_run_time"]=>
        int(5)
        ["avg_store_time"]=>
        int(3)
      }
      ["metadata"]=>
      array(1) {
        [0]=>
        array(8) {
          ["name"]=>
          string(2) "id"
          ["orig_name"]=>
          string(2) "id"
          ["table"]=>
          string(4) "test"
          ["orig_table"]=>
          string(4) "test"
          ["db"]=>
          string(4) "test"
          ["max_length"]=>
          int(0)
          ["length"]=>
          int(11)
          ["type"]=>
          int(3)
        }
      }
    }
  }
}

It is possible to further break down the granularity of statistics to the level of the normalized statement string. The normalized statement string is the statements string with all parameters replaced with question marks. For example, the two statements SELECT id FROM test WHERE id = 0 and SELECT id FROM test WHERE id = 1 are normalized into SELECT id FROM test WHERE id = ?. Their both statistics are aggregated into one entry for SELECT id FROM test WHERE id = ?.

Пример #3 Example mysqlnd_qc_get_normalized_query_trace_log() usage

mysqlnd_qc.enable_qc=1
mysqlnd_qc.collect_normalized_query_trace=1
<?php
/* connect to MySQL */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* dummy queries to fill the query trace */
for ($i = 1; $i <= 4; $i++) {
    $query = sprintf("/*%s*/SELECT id FROM test WHERE id = %d", MYSQLND_QC_ENABLE_SWITCH, $i % 2);
    $res   = $mysqli->query($query);

    $res->free();
}

var_dump(mysqlnd_qc_get_normalized_query_trace_log());
?>

Результатом выполнения данных примеров будет что-то подобное:

array(4) {
  [0]=>
  array(9) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [1]=>
  array(9) {
    ["query"]=>
    string(27) "CREATE TABLE test (id INT )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [2]=>
  array(9) {
    ["query"]=>
    string(46) "INSERT INTO test (id ) VALUES (? ), (? ), (? )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [3]=>
  array(9) {
    ["query"]=>
    string(31) "SELECT id FROM test WHERE id =?"
    ["occurences"]=>
    int(4)
    ["eligible_for_caching"]=>
    bool(true)
    ["avg_run_time"]=>
    int(179)
    ["min_run_time"]=>
    int(11)
    ["max_run_time"]=>
    int(393)
    ["avg_store_time"]=>
    int(12)
    ["min_store_time"]=>
    int(7)
    ["max_store_time"]=>
    int(25)
  }
}

The source distribution of PECL/mysqlnd_qc contains a directory web/ in which web based monitoring scripts can be found which give an example how to write a cache monitor. Please, follow the instructions given in the source.

Since PECL/mysqlnd_qc 1.1.0 it is possible to write statistics into a log file. Please, see mysqlnd_qc.collect_statistics_log_file.


Beyond TTL: user-defined storage

The query cache plugin supports the use of user-defined storage handler. User-defined storage handler can use arbitrarily complex invalidation algorithms and support arbitrary storage media.

All user-defined storage handlers have to provide a certain interface. The functions of the user-defined storage handler will be called by the core of the cache plugin. The necessary interface consists of seven public functions. Both procedural and object oriented user-defined storage handler must implement the same set of functions.

Пример #1 Using a user-defined storage handler

<?php
/* Enable default caching of all statements */
ini_set("mysqlnd_qc.cache_by_default", 1);

/* Procedural user defined storage handler functions */

$__cache = array();

function get_hash($host_info, $port, $user, $db, $query) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    return md5(sprintf("%s%s%s%s%s", $host_info, $port, $user, $db, $query));
}

function find_query_in_cache($key) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    if (isset($__cache[$key])) {
        $tmp = $__cache[$key];
        if ($tmp["valid_until"] < time()) {
            unset($__cache[$key]);
            $ret = NULL;
        } else {
            $ret = $__cache[$key]["data"];
        }
    } else {
        $ret = NULL;
    }

    return $ret;
}

function return_to_cache($key) {
    /*
     Called on cache hit after cached data has been processed,
     may be used for reference counting
    */
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());
}

function add_query_to_cache_if_not_exists($key, $data, $ttl, $run_time, $store_time, $row_count) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    $__cache[$key] = array(
        "data"               => $data,
        "row_count"          => $row_count,
        "valid_until"        => time() + $ttl,
        "hits"               => 0,
        "run_time"           => $run_time,
        "store_time"         => $store_time,
        "cached_run_times"   => array(),
        "cached_store_times" => array(),
    );

    return TRUE;
}

function query_is_select($query) {
    printf("\t%s('%s'): ", __FUNCTION__, $query);

    $ret = FALSE;
    if (stristr($query, "SELECT") !== FALSE) {
        /* cache for 5 seconds */
        $ret = 5;
    }

    printf("%s\n", (FALSE === $ret) ? "FALSE" : $ret);
    return $ret;
}

function update_query_run_time_stats($key, $run_time, $store_time) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    if (isset($__cache[$key])) {
        $__cache[$key]['hits']++;
        $__cache[$key]["cached_run_times"][] = $run_time;
        $__cache[$key]["cached_store_times"][] = $store_time;
    }
}

function get_stats($key = NULL) {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    if ($key && isset($__cache[$key])) {
        $stats = $__cache[$key];
    } else {
        $stats = array();
        foreach ($__cache as $key => $details) {
            $stats[$key] = array(
               'hits'              => $details['hits'],
               'bytes'             => strlen($details['data']),
               'uncached_run_time' => $details['run_time'],
               'cached_run_time'   => (count($details['cached_run_times']))
                                      ? array_sum($details['cached_run_times']) / count($details['cached_run_times'])
                                      : 0,
            );
        }
    }

    return $stats;
}

function clear_cache() {
    global $__cache;
    printf("\t%s(%d)\n", __FUNCTION__, func_num_args());

    $__cache = array();
    return TRUE;
}

/* Install procedural user-defined storage handler */
if (!mysqlnd_qc_set_user_handlers("get_hash", "find_query_in_cache",
    "return_to_cache", "add_query_to_cache_if_not_exists",
    "query_is_select", "update_query_run_time_stats", "get_stats", "clear_cache")) {

        printf("Failed to install user-defined storage handler\n");
}

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

printf("\nCache put/cache miss\n");

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* Delete record to verify we get our data from the cache */
$mysqli->query("DELETE FROM test WHERE id = 1");

printf("\nCache hit\n");

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

printf("\nDisplay cache statistics\n");
var_dump(mysqlnd_qc_get_cache_info());

printf("\nFlushing cache, cache put/cache miss");
var_dump(mysqlnd_qc_clear_cache());

$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();
?>

Результатом выполнения данных примеров будет что-то подобное:

        query_is_select('DROP TABLE IF EXISTS test'): FALSE
        query_is_select('CREATE TABLE test(id INT)'): FALSE
        query_is_select('INSERT INTO test(id) VALUES (1), (2)'): FALSE

Cache put/cache miss
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        add_query_to_cache_if_not_exists(6)
array(1) {
  ["id"]=>
  string(1) "1"
}
        query_is_select('DELETE FROM test WHERE id = 1'): FALSE

Cache hit
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        return_to_cache(1)
        update_query_run_time_stats(3)
array(1) {
  ["id"]=>
  string(1) "1"
}

Display cache statistics
        get_stats(0)
array(4) {
  ["num_entries"]=>
  int(1)
  ["handler"]=>
  string(4) "user"
  ["handler_version"]=>
  string(5) "1.0.0"
  ["data"]=>
  array(1) {
    ["18683c177dc89bb352b29965d112fdaa"]=>
    array(4) {
      ["hits"]=>
      int(1)
      ["bytes"]=>
      int(71)
      ["uncached_run_time"]=>
      int(398)
      ["cached_run_time"]=>
      int(4)
    }
  }
}

Flushing cache, cache put/cache miss    clear_cache(0)
bool(true)
        query_is_select('SELECT id FROM test WHERE id = 1'): 5
        get_hash(5)
        find_query_in_cache(1)
        add_query_to_cache_if_not_exists(6)
NULL


  • « Beyond TTL: user-defined storage
  • Требования »
  • PHP Manual
  • mysqlnd_qc
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения


Требования

PHP 5.3.3 or a newer version of PHP.

PECL/mysqlnd_qc is a mysqlnd plugin. It plugs into the mysqlnd library. To use you this plugin with a PHP MySQL extension, the extension (mysqli, mysql, or PDO_MYSQL) must enable the mysqlnd library.

For using the APC storage handler with PECL/mysqlnd_qc 1.0 APC 3.1.3p1-beta or newer. PECL/mysqlnd_qc 1.2 has been tested with APC 3.1.13-beta. The APC storage handler cannot be used with a shared build. You cannot use the PHP configuration directive extension to load the APC and PECL/mysqlnd_qc extensions if PECL/mysqlnd_qc will use APC as a storage handler. For using the APC storage handler, you have to statically compile PHP with APC and PECL/mysqlnd_qc support into PHP.

For using MEMCACHE storage handler: Use libmemcache 0.38 or newer. PECL/mysqlnd_qc 1.2 has been tested with libmemcache 1.4.0.

For using sqlite storage handler: Use the sqlite3 extension that bundled with PHP.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/mysqlnd_qc

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

mysqlnd_qc Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
mysqlnd_qc.enable_qc | 1 | PHP_INI_SYSTEM |
mysqlnd_qc.ttl | 30 | PHP_INI_ALL |
mysqlnd_qc.cache_by_default | 0 | PHP_INI_ALL |
mysqlnd_qc.cache_no_table | 0 | PHP_INI_ALL |
mysqlnd_qc.use_request_time | 0 | PHP_INI_ALL |
mysqlnd_qc.time_statistics | 1 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics | 0 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics_log_file | /tmp/mysqlnd_qc.stats | PHP_INI_SYSTEM |
mysqlnd_qc.collect_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.query_trace_bt_depth | 3 | PHP_INI_SYSTEM |
mysqlnd_qc.collect_normalized_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.ignore_sql_comments | 1 | PHP_INI_ALL |
mysqlnd_qc.slam_defense | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.slam_defense_ttl | 30 | PHP_INI_SYSTEM |
mysqlnd_qc.std_data_copy | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.apc_prefix | qc_ | PHP_INI_ALL |
mysqlnd_qc.memc_server | 127.0.0.1 | PHP_INI_ALL |
mysqlnd_qc.memc_port | 11211 | PHP_INI_ALL |
mysqlnd_qc.sqlite_data_file | :memory: | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

mysqlnd_qc.enable_qc integer

Enables or disables the plugin. If disabled the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.

mysqlnd_qc.ttl integer

Default Time-to-Live (TTL) for cache entries in seconds.

mysqlnd_qc.cache_by_default integer

Cache all queries regardless if they begin with the SQL hint that enables caching of a query or not. Storage handler cannot overrule the setting. It is evaluated by the core of the plugin.

mysqlnd_qc.cache_no_table integer

Whether to cache queries with no table name in any of columns meta data of their result set, for example, SELECT SLEEP(1), SELECT NOW(), SELECT SUBSTRING().

mysqlnd_qc.use_request_time integer

Use PHP global request time to avoid gettimeofday() system calls? If using APC storage handler it should be set to the value of apc.use_request_time , if not warnings will be generated.

mysqlnd_qc.time_statistics integer

Collect run time and store time statistics using gettimeofday() system call? Data will be collected only if you also set mysqlnd_qc.collect_statistics = 1,

mysqlnd_qc.collect_statistics integer

Collect statistics for mysqlnd_qc_get_core_stats()? Does not influence storage handler statistics! Handler statistics can be an integral part of the handler internal storage format. Therefore, collection of some handler statistics cannot be disabled.

mysqlnd_qc.collect_statistics-log-file integer

If mysqlnd_qc.collect_statistics and mysqlnd_qc.collect_statistics_log_file are set, the plugin will dump statistics into the specified log file at every 10th web request during PHP request shutdown. The log file needs to be writable by the web server user.

Since 1.1.0.

mysqlnd_qc.collect_query_trace integer

Collect query back traces?

mysqlnd_qc.query_trace_bt_depth integer

Maximum depth/level of a query code backtrace.

mysqlnd_qc.ignore_sql_comments integer

Whether to remove SQL comments from a query string before hashing it to generate a cache key. Disable if you do not want two statemts such as SELECT /*my_source_ip=123*/ id FROM test and SELECT /*my_source_ip=456*/ id FROM test to refer to the same cache entry.

Since 1.1.0.

mysqlnd_qc.slam_defense integer

Activates handler based slam defense (cache stampeding protection) if available. Supported by Default and APC storage handler

mysqlnd_qc.slam_defense_ttl integer

TTL for stale cache entries which are served while another client updates the entries. Supported by APC storage handler.

mysqlnd_qc.collect_normalized_query_trace integer

Collect aggregated normalized query traces? The setting has no effect by default. You compile the extension using the define NORM_QUERY_TRACE_LOG to make use of the setting.

mysqlnd_qc.std_data_copy integer

Default storage handler: copy cached wire data? EXPERIMENTAL - use default setting!

mysqlnd_qc.apc_prefix string

The APC storage handler stores data in the APC user cache. The setting sets a prefix to be used for cache entries.

mysqlnd_qc.memc_server string

MEMCACHE storage handler: memcache server host.

mysqlnd_qc.memc_port integer

MEMCACHE storage handler: memcached server port.

mysqlnd_qc.sqlite_data_file string

sqlite storage handler: data file. Any setting but :memory: may be of little practical value.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SQL hint related

Пример #1 Using SQL hint constants

The query cache is controlled by SQL hints. SQL hints are used to enable and disable caching. SQL hints can be used to set the TTL of a query.

The SQL hints recognized by the query cache can be manually changed at compile time. This makes it possible to use mysqlnd_qc in environments in which the default SQL hints are already taken and interpreted by other systems. Therefore it is recommended to use the SQL hint string constants instead of manually adding the default SQL hints to the query string.

<?php
/* Use constants for maximum portability */
$query = "/*" . MYSQLND_QC_ENABLE_SWITCH . "*/SELECT id FROM test";

/* Valid but less portable: default TTL */
$query = "/*qc=on*/SELECT id FROM test";

/* Valid but less portable: per statement TTL */
$query = "/*qc=on*//*qc_ttl=5*/SELECT id FROM test";

printf("MYSQLND_QC_ENABLE_SWITCH: %s\n", MYSQLND_QC_ENABLE_SWITCH);
printf("MYSQLND_QC_DISABLE_SWITCH: %s\n", MYSQLND_QC_DISABLE_SWITCH);
printf("MYSQLND_QC_TTL_SWITCH: %s\n", MYSQLND_QC_TTL_SWITCH);
?>

Результат выполнения данных примеров:

MYSQLND_QC_ENABLE_SWITCH: qc=on
MYSQLND_QC_DISABLE_SWITCH: qc=off
MYSQLND_QC_TTL_SWITCH: qc_ttl=

MYSQLND_QC_ENABLE_SWITCH (string)
SQL hint used to enable caching of a query.
MYSQLND_QC_DISABLE_SWITCH (string)
SQL hint used to disable caching of a query if mysqlnd_qc.cache_by_default = 1.
MYSQLND_QC_TTL_SWITCH (string)
SQL hint used to set the TTL of a result set.
MYSQLND_QC_SERVER_ID_SWITCH (string)
This SQL hint should not be used in general. It is needed by PECL/mysqlnd_ms to group cache entries for one statement but originating from different physical connections. If the hint is used connection settings such as user, hostname and charset are not considered for generating a cache key of a query. Instead the given value and the query string are used as input to the hashing function that generates the key. PECL/mysqlnd_ms may, if instructed, cache results from MySQL Replication slaves. Because it can hold many connections to the slave the cache key shall not be formed from the user, hostname or other settings that may vary for the various slave connections. Instead, PECL/mysqlnd_ms provides an identifier which refers to the group of slave connections that shall be enabled to share cache entries no matter which physical slave connection was to generate the cache entry. Use of this feature outside of PECL/mysqlnd_ms is not recommended.

mysqlnd_qc_set_cache_condition() related

Пример #2 Example mysqlnd_qc_set_cache_condition() usage

The function mysqlnd_qc_set_cache_condition() allows setting conditions for automatic caching of statements which don't begin with the SQL hints necessary to manually enable caching.

<?php
/* Cache all accesses to tables with the name "new%" in schema/database "db_example" for 1 second */
if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "db_example.new%", 1)) {
  die("Failed to set cache condition!");
}

$mysqli = new mysqli("host", "user", "password", "db_example", "port");
/* cached although no SQL hint given  */
$mysqli->query("SELECT id, title FROM news");

$pdo_mysql = new PDO("mysql:host=host;dbname=db_example;port=port", "user", "password");
/* not cached: no SQL hint, no pattern match */
$pdo_mysql->query("SELECT id, title FROM latest_news");
/* cached: TTL 1 second, pattern match */
$pdo_mysql->query("SELECT id, title FROM news");
?>

MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN (int)
Used as a parameter of mysqlnd_qc_set_cache_condition() to set conditions for schema based automatic caching.

Other

The plugin version number can be obtained using either MYSQLND_QC_VERSION, which is the string representation of the numerical version number, or MYSQLND_QC_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_QC_VERSION_ID | 10000

MYSQLND_QC_VERSION (string)
Plugin version string, for example, "1.0.0-prototype".

MYSQLND_QC_VERSION_ID (int)
Plugin version number, for example, 10000.


mysqlnd_qc Функции

Содержание

  • mysqlnd_qc_clear_cache — Flush all cache contents
  • mysqlnd_qc_get_available_handlers — Returns a list of available storage handler
  • mysqlnd_qc_get_cache_info — Returns information on the current handler, the number of cache entries and cache entries, if available
  • mysqlnd_qc_get_core_stats — Statistics collected by the core of the query cache
  • mysqlnd_qc_get_normalized_query_trace_log — Returns a normalized query trace log for each query inspected by the query cache
  • mysqlnd_qc_get_query_trace_log — Returns a backtrace for each query inspected by the query cache
  • mysqlnd_qc_set_cache_condition — Set conditions for automatic caching
  • mysqlnd_qc_set_is_select — Installs a callback which decides whether a statement is cached
  • mysqlnd_qc_set_storage_handler — Change current storage handler
  • mysqlnd_qc_set_user_handlers — Sets the callback functions for a user-defined procedural storage handler


Flush all cache contents

  • « mysqlnd_qc Функции
  • mysqlnd_qc_get_available_handlers »
  • PHP Manual
  • mysqlnd_qc Функции
  • Flush all cache contents

mysqlnd_qc_clear_cache

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_clear_cache — Flush all cache contents

Описание

bool mysqlnd_qc_clear_cache ( void )

Flush all cache contents.

Flushing the cache is a storage handler responsibility. All built-in storage handler but the memcache storage handler support flushing the cache. The memcache storage handler cannot flush its cache contents.

User-defined storage handler may or may not support the operation.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

A return value of FALSE indicates that flushing all cache contents has failed or the operation is not supported by the active storage handler. Applications must not expect that calling the function will always flush the cache.


Returns a list of available storage handler

  • « mysqlnd_qc_clear_cache
  • mysqlnd_qc_get_cache_info »
  • PHP Manual
  • mysqlnd_qc Функции
  • Returns a list of available storage handler

mysqlnd_qc_get_available_handlers

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_available_handlers — Returns a list of available storage handler

Описание

array mysqlnd_qc_get_available_handlers ( void )

Which storage are available depends on the compile time configuration of the query cache plugin. The default storage handler is always available. All other storage handler must be enabled explicitly when building the extension.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of available built-in storage handler. For each storage handler the version number and version string is given.

Примеры

Пример #1 mysqlnd_qc_get_available_handlers() example

<?php
var_dump(mysqlnd_qc_get_available_handlers());
?>

Результат выполнения данных примеров:

array(5) {
  ["default"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["user"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["APC"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["MEMCACHE"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
  ["sqlite"]=>
  array(2) {
    ["version"]=>
    string(5) "1.0.0"
    ["version_number"]=>
    int(100000)
  }
}

Смотрите также

  • Installation
  • mysqlnd_qc_set_storage_handler() - Change current storage handler


Returns information on the current handler, the number of cache entries and cache entries, if available

  • « mysqlnd_qc_get_available_handlers
  • mysqlnd_qc_get_core_stats »
  • PHP Manual
  • mysqlnd_qc Функции
  • Returns information on the current handler, the number of cache entries and cache entries, if available

mysqlnd_qc_get_cache_info

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_cache_info — Returns information on the current handler, the number of cache entries and cache entries, if available

Описание

array mysqlnd_qc_get_cache_info ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns information on the current handler, the number of cache entries and cache entries, if available. If and what data will be returned for the cache entries is subject to the active storage handler. Storage handler are free to return any data. Storage handler are recommended to return at least the data provided by the default handler, if technically possible.

The scope of the information is the PHP process. Depending on the PHP deployment model a process may serve one or more web requests.

Values are aggregated for all cache activities on a per storage handler basis. It is not possible to tell how much queries originating from mysqli, PDO_MySQL or mysql.API calls have contributed to the aggregated data values. Use mysqlnd_qc_get_core_stats() to get timing data aggregated for all storage handlers.

Array of cache information

handler string

The active storage handler.

All storage handler. Since 1.0.0.

handler_version string

The version of the active storage handler.

All storage handler. Since 1.0.0.

num_entries int

The number of cache entries. The value depends on the storage handler in use.

The default, APC and SQLite storage handler provide the actual number of cache entries.

The MEMCACHE storage handler always returns 0. MEMCACHE does not support counting the number of cache entries.

If a user defined handler is used, the number of entries of the data property is reported.

Since 1.0.0.

data array

The version of the active storage handler.

Additional storage handler dependent data on the cache entries. Storage handler are requested to provide similar and comparable information. A user defined storage handler is free to return any data.

Since 1.0.0.

The following information is provided by the default storage handler for the data property.

The data property holds a hash. The hash is indexed by the internal cache entry identifier of the storage handler. The cache entry identifier is human-readable and contains the query string leading to the cache entry. Please, see also the example below. The following data is given for every cache entry.

statistics array

Statistics of the cache entry.

Since 1.0.0.

Property | Description | Version
rows | Number of rows of the cached result set. | Since 1.0.0.
stored_size | The size of the cached result set in bytes. This is the size of the payload. The value is not suited for calculating the total memory consumption of all cache entries including the administrative overhead of the cache entries. | Since 1.0.0.
cache_hits | How often the cached entry has been returned. | Since 1.0.0.
run_time | Run time of the statement to which the cache entry belongs. This is the run time of the uncached statement. It is the time between sending the statement to MySQL receiving a reply from MySQL. Run time saved by using the query cache plugin can be calculated like this: cache_hits * ((run_time - avg_run_time) + (store_time - avg_store_time)). | Since 1.0.0.
store_time | Store time of the statements result set to which the cache entry belongs. This is the time it took to fetch and store the results of the uncached statement. | Since 1.0.0.
min_run_time | Minimum run time of the cached statement. How long it took to find the statement in the cache. | Since 1.0.0.
min_store_time | Minimum store time of the cached statement. The time taken for fetching the cached result set from the storage medium and decoding | Since 1.0.0.
avg_run_time | Average run time of the cached statement. | Since 1.0.0.
avg_store_time | Average store time of the cached statement. | Since 1.0.0.
max_run_time | Average run time of the cached statement. | Since 1.0.0.
max_store_time | Average store time of the cached statement. | Since 1.0.0.
valid_until | Timestamp when the cache entry expires. | Since 1.1.0.
metadata array

Metadata of the cache entry. This is the metadata provided by MySQL together with the result set of the statement in question. Different versions of the MySQL server may return different metadata. Unlike with some of the PHP MySQL extensions no attempt is made to hide MySQL server version dependencies and version details from the caller. Please, refer to the MySQL C API documentation that belongs to the MySQL server in use for further details.

The metadata list contains one entry for every column.

Since 1.0.0.

Property | Description | Version
name | The field name. Depending on the MySQL version this may be the fields alias name. | Since 1.0.0.
org_name | The field name. | Since 1.0.0.
table | The table name. If an alias name was used for the table, this usually holds the alias name. | Since 1.0.0.
org_table | The table name. | Since 1.0.0.
db | The database/schema name. | Since 1.0.0.
max_length | The maximum width of the field. Details may vary by MySQL server version. | Since 1.0.0.
length | The width of the field. Details may vary by MySQL server version. | Since 1.0.0.
type | The data type of the field. Details may vary by the MySQL server in use. This is the MySQL C API type constants value. It is recommended to use type constants provided by the mysqli extension to test for its meaning. You should not test for certain type values by comparing with certain numbers. | Since 1.0.0.

The APC storage handler returns the same information for the data property but no metadata. The metadata of a cache entry is set to NULL.

The MEMCACHE storage handler does not fill the data property. Statistics are not available on a per cache entry basis with the MEMCACHE storage handler.

A user defined storage handler is free to provide any data.

Примеры

Пример #1 mysqlnd_qc_get_cache_info() example

The example shows the output from the built-in default storage handler. Other storage handler may report different data.

<?php
/* Populate the cache, e.g. using mysqli */
$mysqli = new mysqli("host", "user", "password", "schema");
$mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/SELECT id FROM test");

/* Display cache information */
var_dump(mysqlnd_qc_get_cache_info());
?>

Результат выполнения данных примеров:

array(4) {
 ["num_entries"]=>
 int(1)
 ["handler"]=>
 string(7) "default"
 ["handler_version"]=>
 string(5) "1.0.0"
 ["data"]=>
 array(1) {
   ["Localhost via UNIX socket 3306 user schema|/*qc=on*/SELECT id FROM test"]=>
   array(2) {
     ["statistics"]=>
     array(11) {
       ["rows"]=>
       int(6)
       ["stored_size"]=>
       int(101)
       ["cache_hits"]=>
       int(0)
       ["run_time"]=>
       int(471)
       ["store_time"]=>
       int(27)
       ["min_run_time"]=>
       int(0)
       ["max_run_time"]=>
       int(0)
       ["min_store_time"]=>
       int(0)
       ["max_store_time"]=>
       int(0)
       ["avg_run_time"]=>
       int(0)
       ["avg_store_time"]=>
       int(0)
     }
     ["metadata"]=>
     array(1) {
       [0]=>
       array(8) {
         ["name"]=>
         string(2) "id"
         ["orig_name"]=>
         string(2) "id"
         ["table"]=>
         string(4) "test"
         ["orig_table"]=>
         string(4) "test"
         ["db"]=>
         string(4) "schema"
         ["max_length"]=>
         int(1)
         ["length"]=>
         int(11)
         ["type"]=>
         int(3)
       }
     }
   }
 }
}

Смотрите также

  • mysqlnd_qc_get_core_stats() - Statistics collected by the core of the query cache


Statistics collected by the core of the query cache

  • « mysqlnd_qc_get_cache_info
  • mysqlnd_qc_get_normalized_query_trace_log »
  • PHP Manual
  • mysqlnd_qc Функции
  • Statistics collected by the core of the query cache

mysqlnd_qc_get_core_stats

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_core_stats — Statistics collected by the core of the query cache

Описание

array mysqlnd_qc_get_core_stats ( void )

Returns an array of statistics collected by the core of the cache plugin. The same data fields will be reported for any storage handler because the data is collected by the core.

The PHP configuration setting mysqlnd_qc.collect_statistics controls the collection of statistics. The collection of statistics is disabled by default for performance reasons. Disabling the collection of statistics will also disable the collection of time related statistics.

The PHP configuration setting mysqlnd_qc.collect_time_statistics controls the collection of time related statistics.

The scope of the core statistics is the PHP process. Depending on your deployment model a PHP process may handle one or multiple requests.

Statistics are aggregated for all cache entries and all storage handler. It is not possible to tell how much queries originating from mysqli, PDO_MySQL or mysql API calls have contributed to the aggregated data values.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Array of core statistics

Statistic | Description | Version
cache_hit | Statement is considered cacheable and cached data has been reused. Statement is considered cacheable and a cache miss happened but the statement got cached by someone else while we process it and thus we can fetch the result from the refreshed cache. | Since 1.0.0.
cache_miss Statement is considered cacheable...

  • ... and has been added to the cache

  • ... but the PHP configuration directive setting of mysqlnd_qc.cache_no_table = 1 has prevented caching.

  • ... but an unbuffered result set is requested.

  • ... but a buffered result set was empty.

Since 1.0.0.
cache_put | Statement is considered cacheable and has been added to the cache. Take care when calculating derived statistics. Storage handler with a storage life time beyond process scope may report cache_put = 0 together with cache_hit > 0, if another process has filled the cache. You may want to use num_entries from mysqlnd_qc_get_cache_info() if the handler supports it ( default, APC). | Since 1.0.0.
query_should_cache | Statement is considered cacheable based on query string analysis. The statement may or may not be added to the cache. See also cache_put. | Since 1.0.0.
query_should_not_cache | Statement is considered not cacheable based on query string analysis. | Since 1.0.0.
query_not_cached | Statement is considered not cacheable or it is considered cachable but the storage handler has not returned a hash key for it. | Since 1.0.0.
query_could_cache Statement is considered cacheable...

  • ... and statement has been run without errors

  • ... and meta data shows at least one column in the result set

The statement may or may not be in the cache already. It may or may not be added to the cache later on. 		Since 1.0.0.
query_found_in_cache | Statement is considered cacheable and we have found it in the cache but we have not replayed the cached data yet and we have not send the result set to the client yet. This is not considered a cache hit because the client might not fetch the result or the cached data may be faulty. | Since 1.0.0.
query_uncached_other | Statement is considered cacheable and it may or may not be in the cache already but either replaying cached data has failed, no result set is available or some other error has happened.
query_uncached_no_table | Statement has not been cached because the result set has at least one column which has no table name in its meta data. An example of such a query is SELECT SLEEP(1). To cache those statements you have to change default value of the PHP configuration directive mysqlnd_qc.cache_no_table and set mysqlnd_qc.cache_no_table = 1. Often, it is not desired to cache such statements. | Since 1.0.0.
query_uncached_use_result | Statement would have been cached if a buffered result set had been used. The situation is also considered as a cache miss and cache_miss will be incremented as well. | Since 1.0.0.
query_aggr_run_time_cache_hit | Aggregated run time (ms) of all cached queries. Cached queries are those which have incremented cache_hit. | Since 1.0.0.
query_aggr_run_time_cache_put | Aggregated run time (ms) of all uncached queries that have been put into the cache. See also cache_put. | Since 1.0.0.
query_aggr_run_time_total | Aggregated run time (ms) of all uncached and cached queries that have been inspected and executed by the query cache. | Since 1.0.0.
query_aggr_store_time_cache_hit | Aggregated store time (ms) of all cached queries. Cached queries are those which have incremented cache_hit. | Since 1.0.0.
query_aggr_store_time_cache_put | Aggregated store time ( ms) of all uncached queries that have been put into the cache. See also cache_put. | Since 1.0.0.
query_aggr_store_time_total | Aggregated store time (ms) of all uncached and cached queries that have been inspected and executed by the query cache. | Since 1.0.0.
receive_bytes_recorded | Recorded incoming network traffic ( bytes) send from MySQL to PHP. The traffic may or may not have been added to the cache. The traffic is the total for all queries regardless if cached or not. | Since 1.0.0.
receive_bytes_replayed | Network traffic replayed during cache. This is the total amount of incoming traffic saved because of the usage of the query cache plugin. | Since 1.0.0.
send_bytes_recorded | Recorded outgoing network traffic ( bytes) send from MySQL to PHP. The traffic may or may not have been added to the cache. The traffic is the total for all queries regardless if cached or not. | Since 1.0.0.
send_bytes_replayed | Network traffic replayed during cache. This is the total amount of outgoing traffic saved because of the usage of the query cache plugin. | Since 1.0.0.
slam_stale_refresh | Number of cache misses which triggered serving stale data until the client causing the cache miss has refreshed the cache entry. | Since 1.0.0.
slam_stale_hit | Number of cache hits while a stale cache entry gets refreshed. | Since 1.0.0.

Примеры

Пример #1 mysqlnd_qc_get_core_stats() example

<?php
/* Enable collection of statistics - default: disabled */
ini_set("mysqlnd_qc.collect_statistics", 1);

/* Enable collection of all timing related statistics -
default: enabled but overruled by mysqlnd_qc.collect_statistics = 0 */
ini_set("mysqlnd_qc.collect_time_statistics", 1);

/* Populate the cache, e.g. using mysqli */
$mysqli = new mysqli('host', 'user', 'password', 'schema');

/* Cache miss and cache put */
$mysqli->query("/*qc=on*/SELECT id FROM test");
/* Cache hit */
$mysqli->query("/*qc=on*/SELECT id FROM test");

/* Display core statistics */
var_dump(mysqlnd_qc_get_core_stats());
?>

Результат выполнения данных примеров:

array(26) {
  ["cache_hit"]=>
  string(1) "1"
  ["cache_miss"]=>
  string(1) "1"
  ["cache_put"]=>
  string(1) "1"
  ["query_should_cache"]=>
  string(1) "2"
  ["query_should_not_cache"]=>
  string(1) "0"
  ["query_not_cached"]=>
  string(1) "0"
  ["query_could_cache"]=>
  string(1) "2"
  ["query_found_in_cache"]=>
  string(1) "1"
  ["query_uncached_other"]=>
  string(1) "0"
  ["query_uncached_no_table"]=>
  string(1) "0"
  ["query_uncached_no_result"]=>
  string(1) "0"
  ["query_uncached_use_result"]=>
  string(1) "0"
  ["query_aggr_run_time_cache_hit"]=>
  string(1) "4"
  ["query_aggr_run_time_cache_put"]=>
  string(3) "395"
  ["query_aggr_run_time_total"]=>
  string(3) "399"
  ["query_aggr_store_time_cache_hit"]=>
  string(1) "2"
  ["query_aggr_store_time_cache_put"]=>
  string(1) "8"
  ["query_aggr_store_time_total"]=>
  string(2) "10"
  ["receive_bytes_recorded"]=>
  string(2) "65"
  ["receive_bytes_replayed"]=>
  string(2) "65"
  ["send_bytes_recorded"]=>
  string(2) "29"
  ["send_bytes_replayed"]=>
  string(2) "29"
  ["slam_stale_refresh"]=>
  string(1) "0"
  ["slam_stale_hit"]=>
  string(1) "0"
  ["request_counter"]=>
  int(1)
  ["process_hash"]=>
  int(3547549858)
}

Смотрите также

  • Runtime configuration
  • mysqlnd_qc.collect_statistics
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc_get_cache_info() - Returns information on the current handler, the number of cache entries and cache entries, if available


Returns a normalized query trace log for each query inspected by the query cache

  • « mysqlnd_qc_get_core_stats
  • mysqlnd_qc_get_query_trace_log »
  • PHP Manual
  • mysqlnd_qc Функции
  • Returns a normalized query trace log for each query inspected by the query cache

mysqlnd_qc_get_normalized_query_trace_log

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_normalized_query_trace_log — Returns a normalized query trace log for each query inspected by the query cache

Описание

array mysqlnd_qc_get_normalized_query_trace_log ( void )

Returns a normalized query trace log for each query inspected by the query cache. The collection of the trace log is disabled by default. To collect the trace log you have to set the PHP configuration directive mysqlnd_qc.collect_normalized_query_trace to 1

Entries in the trace log are grouped by the normalized query statement. The normalized query statement is the query statement with all statement parameter values being replaced with a question mark. For example, the two statements SELECT id FROM test WHERE id = 1 and SELECT id FROM test WHERE id = 2 are normalized as SELECT id FROM test WHERE id = ?. Whenever a statement is inspected by the query cache which matches the normalized statement pattern, its statistics are grouped by the normalized statement string.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of query log. Every list entry contains the normalized query stringand further detail information.

Key | Description
query | Normalized statement string.
occurences | How many statements have matched the normalized statement string in addition to the one which has created the log entry. The value is zero if a statement has been normalized, its normalized representation has been added to the log but no further queries inspected by PECL/mysqlnd_qc have the same normalized statement string.
eligible_for_caching | Whether the statement could be cached. An statement eligible for caching has not necessarily been cached. It not possible to tell for sure if or how many cached statement have contributed to the aggregated normalized statement log entry. However, comparing the minimum and average run time one can make an educated guess.
avg_run_time | The average run time of all queries contributing to the query log entry. The run time is the time between sending the query statement to MySQL and receiving an answer from MySQL.
avg_store_time | The average store time of all queries contributing to the query log entry. The store time is the time needed to fetch a statements result set from the server to the client and, storing it on the client.
min_run_time | The minimum run time of all queries contributing to the query log entry.
min_store_time | The minimum store time of all queries contributing to the query log entry.
max_run_time | The maximum run time of all queries contributing to the query log entry.
max_store_time | The maximum store time of all queries contributing to the query log entry.

Примеры

Пример #1 mysqlnd_qc_get_normalized_query_trace_log() example

mysqlnd_qc.collect_normalized_query_trace=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* not cached */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* cache put */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

/* cache hit */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

var_dump(mysqlnd_qc_get_normalized_query_trace_log());
?>

Результат выполнения данных примеров:

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(4) {
  [0]=>
  array(9) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [1]=>
  array(9) {
    ["query"]=>
    string(27) "CREATE TABLE test (id INT )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [2]=>
  array(9) {
    ["query"]=>
    string(40) "INSERT INTO test (id ) VALUES (? ), (? )"
    ["occurences"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["avg_run_time"]=>
    int(0)
    ["min_run_time"]=>
    int(0)
    ["max_run_time"]=>
    int(0)
    ["avg_store_time"]=>
    int(0)
    ["min_store_time"]=>
    int(0)
    ["max_store_time"]=>
    int(0)
  }
  [3]=>
  array(9) {
    ["query"]=>
    string(31) "SELECT id FROM test WHERE id =?"
    ["occurences"]=>
    int(2)
    ["eligible_for_caching"]=>
    bool(true)
    ["avg_run_time"]=>
    int(159)
    ["min_run_time"]=>
    int(12)
    ["max_run_time"]=>
    int(307)
    ["avg_store_time"]=>
    int(10)
    ["min_store_time"]=>
    int(8)
    ["max_store_time"]=>
    int(13)
  }
}

Смотрите также

  • Runtime configuration
  • mysqlnd_qc.collect_normalized_query_trace
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc_get_query_trace_log() - Returns a backtrace for each query inspected by the query cache


Returns a backtrace for each query inspected by the query cache

  • « mysqlnd_qc_get_normalized_query_trace_log
  • mysqlnd_qc_set_cache_condition »
  • PHP Manual
  • mysqlnd_qc Функции
  • Returns a backtrace for each query inspected by the query cache

mysqlnd_qc_get_query_trace_log

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_get_query_trace_log — Returns a backtrace for each query inspected by the query cache

Описание

array mysqlnd_qc_get_query_trace_log ( void )

Returns a backtrace for each query inspected by the query cache. The collection of the backtrace is disabled by default. To collect the backtrace you have to set the PHP configuration directive mysqlnd_qc.collect_query_trace to 1

The maximum depth of the backtrace is limited to the depth set with the PHP configuration directive mysqlnd_qc.query_trace_bt_depth.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of query backtrace. Every list entry contains the query string, a backtrace and further detail information.

Key | Description
query | Query string.
origin | Code backtrace.
run_time | Query run time in milliseconds. The collection of all times and the necessary gettimeofday system calls can be disabled by setting the PHP configuration directive mysqlnd_qc.time_statistics to 0
store_time | Query result set store time in milliseconds. The collection of all times and the necessary gettimeofday system calls can be disabled by setting the PHP configuration directive mysqlnd_qc.time_statistics to 0
eligible_for_caching | TRUE if query is cacheable otherwise FALSE.
no_table | TRUE if the query has generated a result set and at least one column from the result set has no table name set in its metadata. This is usually the case with queries which one probably do not want to cache such as SELECT SLEEP(1). By default any such query will not be added to the cache. See also PHP configuration directive mysqlnd_qc.cache_no_table.
was_added | TRUE if the query result has been put into the cache, otherwise FALSE.
was_already_in_cache | TRUE if the query result would have been added to the cache if it was not already in the cache (cache hit). Otherwise FALSE.

Примеры

Пример #1 mysqlnd_qc_get_query_trace_log() example

mysqlnd_qc.collect_query_trace=1
<?php
/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema", "port", "socket");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2)");

/* not cached */
$res = $mysqli->query("SELECT id FROM test WHERE id = 1");
var_dump($res->fetch_assoc());
$res->free();

/* cache put */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

/* cache hit */
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 2");
var_dump($res->fetch_assoc());
$res->free();

var_dump(mysqlnd_qc_get_query_trace_log());
?>

Результат выполнения данных примеров:

array(1) {
  ["id"]=>
  string(1) "1"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(1) {
  ["id"]=>
  string(1) "2"
}
array(6) {
  [0]=>
  array(8) {
    ["query"]=>
    string(25) "DROP TABLE IF EXISTS test"
    ["origin"]=>
    string(102) "#0 qc.php(4): mysqli->query('DROP TABLE IF E...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [1]=>
  array(8) {
    ["query"]=>
    string(25) "CREATE TABLE test(id INT)"
    ["origin"]=>
    string(102) "#0 qc.php(5): mysqli->query('CREATE TABLE te...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [2]=>
  array(8) {
    ["query"]=>
    string(36) "INSERT INTO test(id) VALUES (1), (2)"
    ["origin"]=>
    string(102) "#0 qc.php(6): mysqli->query('INSERT INTO tes...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(0)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [3]=>
  array(8) {
    ["query"]=>
    string(32) "SELECT id FROM test WHERE id = 1"
    ["origin"]=>
    string(102) "#0 qc.php(9): mysqli->query('SELECT id FROM ...')
#1 {main}"
    ["run_time"]=>
    int(0)
    ["store_time"]=>
    int(25)
    ["eligible_for_caching"]=>
    bool(false)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [4]=>
  array(8) {
    ["query"]=>
    string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2"
    ["origin"]=>
    string(103) "#0 qc.php(14): mysqli->query('/*qc=on*/SELECT...')
#1 {main}"
    ["run_time"]=>
    int(311)
    ["store_time"]=>
    int(13)
    ["eligible_for_caching"]=>
    bool(true)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(true)
    ["was_already_in_cache"]=>
    bool(false)
  }
  [5]=>
  array(8) {
    ["query"]=>
    string(41) "/*qc=on*/SELECT id FROM test WHERE id = 2"
    ["origin"]=>
    string(103) "#0 qc.php(19): mysqli->query('/*qc=on*/SELECT...')
#1 {main}"
    ["run_time"]=>
    int(13)
    ["store_time"]=>
    int(8)
    ["eligible_for_caching"]=>
    bool(true)
    ["no_table"]=>
    bool(false)
    ["was_added"]=>
    bool(false)
    ["was_already_in_cache"]=>
    bool(true)
  }
}

Смотрите также

  • Runtime configuration
  • mysqlnd_qc.collect_query_trace
  • mysqlnd_qc.query_trace_bt_depth
  • mysqlnd_qc.time_statistics
  • mysqlnd_qc.cache_no_table
  • mysqlnd_qc_get_normalized_query_trace_log() - Returns a normalized query trace log for each query inspected by the query cache


Set conditions for automatic caching

  • « mysqlnd_qc_get_query_trace_log
  • mysqlnd_qc_set_is_select »
  • PHP Manual
  • mysqlnd_qc Функции
  • Set conditions for automatic caching

mysqlnd_qc_set_cache_condition

(PECL mysqlnd_qc >= 1.1.0)

mysqlnd_qc_set_cache_condition — Set conditions for automatic caching

Описание

bool mysqlnd_qc_set_cache_condition ( int $condition_type , mixed $condition , mixed $condition_option )

Sets a condition for automatic caching of statements which do not contain the necessary SQL hints to enable caching of them.

Список параметров

condition_type

Type of the condition. The only allowed value is MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN.

condition

Parameter for the condition set with condition_type. Parameter type and structure depend on condition_type

If condition_type equals MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN condition must be a string. The string sets a pattern. Statements are cached if table and database meta data entry of their result sets match the pattern. The pattern is checked for a match with the db and org_table meta data entries provided by the underlying MySQL client server library. Please, check the MySQL Reference manual for details about the two entries. The db and org_table values are concatenated with a dot (.) before matched against condition. Pattern matching supports the wildcards % and _. The wildcard % will match one or many arbitrary characters. _ will match one arbitrary character. The escape symbol is backslash.

condition_option

Option for condition. Type and structure depend on condition_type.

If condition_type equals MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN condition_options is the TTL to be used.

Примеры

Пример #1 mysqlnd_qc_set_cache_condition() example

<?php
/* Cache all accesses to tables with the name "new%" in schema/database "db_example" for 1 second */
if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "db_example.new%", 1)) {
  die("Failed to set cache condition!");
}

$mysqli = new mysqli("host", "user", "password", "db_example", "port");
/* cached although no SQL hint given  */
$mysqli->query("SELECT id, title FROM news");

$pdo_mysql = new PDO("mysql:host=host;dbname=db_example;port=port", "user", "password");
/* not cached: no SQL hint, no pattern match */
$pdo_mysql->query("SELECT id, title FROM latest_news");
/* cached: TTL 1 second, pattern match */
$pdo_mysql->query("SELECT id, title FROM news");
?>

Возвращаемые значения

Returns TRUE on success or FALSE on FAILURE.

Смотрите также

  • Quickstart: pattern based caching


Installs a callback which decides whether a statement is cached

  • « mysqlnd_qc_set_cache_condition
  • mysqlnd_qc_set_storage_handler »
  • PHP Manual
  • mysqlnd_qc Функции
  • Installs a callback which decides whether a statement is cached

mysqlnd_qc_set_is_select

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_is_select — Installs a callback which decides whether a statement is cached

Описание

mixed mysqlnd_qc_set_is_select ( string $callback )

Installs a callback which decides whether a statement is cached.

There are several ways of hinting PELC/mysqlnd_qc to cache a query. By default, PECL/mysqlnd_qc attempts to cache a if caching of all statements is enabled or the query string begins with a certain SQL hint. The plugin internally calls a function named is_select() to find out. This internal function can be replaced with a user-defined callback. Then, the user-defined callback is responsible to decide whether the plugin attempts to cache a statement. Because the internal function is replaced with the callback, the callback gains full control. The callback is free to ignore the configuration setting mysqlnd_qc.cache_by_default and SQL hints.

The callback is invoked for every statement inspected by the plugin. It is given the statements string as a parameter. The callback returns FALSE if the statement shall not be cached. It returns TRUE to make the plugin attempt to cache the statements result set, if any. A so-created cache entry is given the default TTL set with the PHP configuration directive mysqlnd_qc.ttl. If a different TTL shall be used, the callback returns a numeric value to be used as the TTL.

The internal is_select function is part of the internal cache storage handler interface. Thus, a user-defined storage handler offers the same capabilities.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 mysqlnd_qc_set_is_select() example

<?php
/* callback which decides if query is cached */
function is_select($query) {
  static $patterns = array(
   /* true - use default from mysqlnd_qc.ttl */
   "@SELECT\s+.*\s+FROM\s+test@ismU" => true,
   /* 3 - use TTL = 3 seconds */
   "@SELECT\s+.*\s+FROM\s+news@ismU" => 3
  );
  /* check if query does match pattern */
  foreach ($patterns as $pattern => $ttl) {
    if (preg_match($pattern, $query)) {
      printf("is_select(%45s): cache\n", $query);
      return $ttl;
    }
  }
  printf("is_select(%45s): do not cache\n", $query);
  return false;
}
mysqlnd_qc_set_is_select("is_select");

/* Connect, create and populate test table */
$mysqli = new mysqli("host", "user", "password", "schema");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1), (2), (3)");

/* cache put */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache hit */
$mysqli->query("SELECT id FROM test WHERE id = 1");
/* cache put */
$mysqli->query("SELECT * FROM test");
?>

Результат выполнения данных примеров:

is_select(                    DROP TABLE IF EXISTS test): do not cache
is_select(                    CREATE TABLE test(id INT)): do not cache
is_select(    INSERT INTO test(id) VALUES (1), (2), (3)): do not cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(             SELECT id FROM test WHERE id = 1): cache
is_select(                           SELECT * FROM test): cache

Смотрите также

  • Runtime configuration
  • mysqlnd_qc.ttl
  • mysqlnd_qc.cache_by_default
  • mysqlnd_qc_set_user_handlers() - Sets the callback functions for a user-defined procedural storage handler


Change current storage handler

  • « mysqlnd_qc_set_is_select
  • mysqlnd_qc_set_user_handlers »
  • PHP Manual
  • mysqlnd_qc Функции
  • Change current storage handler

mysqlnd_qc_set_storage_handler

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_storage_handler — Change current storage handler

Описание

bool mysqlnd_qc_set_storage_handler ( string $handler )

Sets the storage handler used by the query cache. A list of available storage handler can be obtained from mysqlnd_qc_get_available_handlers(). Which storage are available depends on the compile time configuration of the query cache plugin. The default storage handler is always available. All other storage handler must be enabled explicitly when building the extension.

Список параметров

handler

Handler can be of type string representing the name of a built-in storage handler or an object of type mysqlnd_qc_handler_default. The names of the built-in storage handler are default, APC, MEMCACHE, sqlite.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

If changing the storage handler fails a catchable fatal error will be thrown. The query cache cannot operate if the previous storage handler has been shutdown but no new storage handler has been installed.

Примеры

Пример #1 mysqlnd_qc_set_storage_handler() example

The example shows the output from the built-in default storage handler. Other storage handler may report different data.

<?php
var_dump(mysqlnd_qc_set_storage_handler("memcache"));

if (true === mysqlnd_qc_set_storage_handler("default"))
  printf("Default storage handler activated");

/* Catchable fatal error */
var_dump(mysqlnd_qc_set_storage_handler("unknown"));
?>

Результат выполнения данных примеров:

bool(true)
Default storage handler activated
Catchable fatal error: mysqlnd_qc_set_storage_handler(): Unknown handler 'unknown' in (file) on line (line)

Смотрите также

  • Installation
  • mysqlnd_qc_get_available_handlers() - Returns a list of available storage handler


Sets the callback functions for a user-defined procedural storage handler

  • « mysqlnd_qc_set_storage_handler
  • Change History »
  • PHP Manual
  • mysqlnd_qc Функции
  • Sets the callback functions for a user-defined procedural storage handler

mysqlnd_qc_set_user_handlers

(PECL mysqlnd_qc >= 1.0.0)

mysqlnd_qc_set_user_handlers — Sets the callback functions for a user-defined procedural storage handler

Описание

bool mysqlnd_qc_set_user_handlers ( string $get_hash , string $find_query_in_cache , string $return_to_cache , string $add_query_to_cache_if_not_exists , string $query_is_select , string $update_query_run_time_stats , string $get_stats , string $clear_cache )

Sets the callback functions for a user-defined procedural storage handler.

Список параметров

get_hash

Name of the user function implementing the storage handler get_hash functionality.

find_query_in_cache

Name of the user function implementing the storage handler find_in_cache functionality.

return_to_cache

Name of the user function implementing the storage handler return_to_cache functionality.

add_query_to_cache_if_not_exists

Name of the user function implementing the storage handler add_query_to_cache_if_not_exists functionality.

query_is_select

Name of the user function implementing the storage handler query_is_select functionality.

update_query_run_time_stats

Name of the user function implementing the storage handler update_query_run_time_stats functionality.

get_stats

Name of the user function implementing the storage handler get_stats functionality.

clear_cache

Name of the user function implementing the storage handler clear_cache functionality.

Возвращаемые значения

Returns TRUE on success or FALSE on FAILURE.

Смотрите также

  • Procedural user-defined storage handler example


Change History

Содержание

  • PECL/mysqlnd_qc 1.2 series
  • PECL/mysqlnd_qc 1.1 series
  • PECL/mysqlnd_qc 1.0 series

This change history is a high level summary of selected changes that may impact applications and/or break backwards compatibility.

See also the CHANGES file in the source distribution for a complete list of changes.


PECL/mysqlnd_qc 1.2 series

1.2.0 - alpha

  • Release date: 03/2013
  • Motto/theme: PHP 5.5 compatibility

Feature changes

  • Update build for PHP 5.5 (Credits: Remi Collet)

  • APC storage handler update

    • Fix build for APC 3.1.13-beta and trunk

  • Introduced MYSQLND_QC_VERSION and MYSQLND_QC_VERSION_ID.


PECL/mysqlnd_qc 1.1 series

1.1.0 - stable

  • Release date: 04/2012
  • Motto/theme: PHP 5.4 compatibility, schema pattern based caching and mysqlnd_ms support

1.1.0 - beta

  • Release date: 04/2012
  • Motto/theme: PHP 5.4 compatibility, schema pattern based caching and mysqlnd_ms support

1.1.0 - alpha

  • Release date: 04/2012
  • Motto/theme: PHP 5.4 compatibility, schema pattern based caching and mysqlnd_ms support

Feature changes

  • APC storage handler update

    • Fix build for APC 3.1.9+
    • Note: Use of the APC storage handler is currently not recommended due to stability issues of APC itself.

  • New PHP configuration directives

    • mysqlnd_qc.collect_statistics_log_file. Aggregated cache statistics log file written after every 10th request served by the PHP process.
    • mysqlnd_qc.ignore_sql_comments. Control whether SQL comments are ignored for cache key hash generation.

  • New constants and SQL hints

    • MYSQLND_QC_SERVER_ID_SWITCH allows grouping of cache entries from different physical connections. This is needed by PECL/mysqlnd_ms.
    • MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN to be used with mysqlnd_qc_set_cache_condition().

  • New function mysqlnd_qc_set_cache_condition() for built-in schema pattern based caching. Likely to support a wider range of conditions in the future.

  • Report valid_until timestamp for cache entries of the default handler through mysqlnd_qc_get_cache_info().

  • Include charset number for cache entry hashing. This should prevent serving result sets which have the wrong charset.

    API change: get_hash_key expects new "charsetnr" (int) parameter after "port".

  • API change: changing is_select() signature from bool is_select() to mixed is_select(). Mixed can be either boolean or array(long ttl, string server_id). This is needed by PECL/mysqlnd_ms.

Other

  • Support acting as a cache backend for PECL/mysqlnd_ms 1.3.0-beta or later to transparently replace MySQL Replication slave reads with cache accesses, if the user explicitly allows.

Bug fixes

  • Fixed Bug #59959 (config.m4, wrong library - 64bit memcached handler builds) (Credits: Remi Collet)


PECL/mysqlnd_qc 1.0 series

1.0.1-stable

  • Release date: 12/2010
  • Motto/theme: Prepared statement support

Added support for Prepared statements and unbuffered queries.

1.0.0-beta

  • Release date: 07/2010
  • Motto/theme: TTL-based cache with various storage options (Memcache, APC, SQLite, user-defined)

Initial public release of the transparent TTL-based query result cache. Flexible storage of cached results. Various storage media supported.


Mysqlnd user handler plugin

  • Введение
  • Quickstart and Examples
    • Setup
    • How it works
    • Installing a proxy
    • Basic query monitoring
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • MysqlndUhConnection — The MysqlndUhConnection class
    • MysqlndUhConnection::changeUser — Changes the user of the specified mysqlnd database connection
    • MysqlndUhConnection::charsetName — Returns the default character set for the database connection
    • MysqlndUhConnection::close — Closes a previously opened database connection
    • MysqlndUhConnection::connect — Open a new connection to the MySQL server
    • MysqlndUhConnection::__construct — The __construct purpose
    • MysqlndUhConnection::endPSession — End a persistent connection
    • MysqlndUhConnection::escapeString — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
    • MysqlndUhConnection::getAffectedRows — Gets the number of affected rows in a previous MySQL operation
    • MysqlndUhConnection::getErrorNumber — Returns the error code for the most recent function call
    • MysqlndUhConnection::getErrorString — Returns a string description of the last error
    • MysqlndUhConnection::getFieldCount — Returns the number of columns for the most recent query
    • MysqlndUhConnection::getHostInformation — Returns a string representing the type of connection used
    • MysqlndUhConnection::getLastInsertId — Returns the auto generated id used in the last query.
    • MysqlndUhConnection::getLastMessage — Retrieves information about the most recently executed query
    • MysqlndUhConnection::getProtocolInformation — Returns the version of the MySQL protocol used
    • MysqlndUhConnection::getServerInformation — Returns the version of the MySQL server
    • MysqlndUhConnection::getServerStatistics — Gets the current system status
    • MysqlndUhConnection::getServerVersion — Returns the version of the MySQL server as an integer
    • MysqlndUhConnection::getSqlstate — Returns the SQLSTATE error from previous MySQL operation
    • MysqlndUhConnection::getStatistics — Returns statistics about the client connection.
    • MysqlndUhConnection::getThreadId — Returns the thread ID for the current connection
    • MysqlndUhConnection::getWarningCount — Returns the number of warnings from the last query for the given link
    • MysqlndUhConnection::init — Initialize mysqlnd connection
    • MysqlndUhConnection::killConnection — Asks the server to kill a MySQL thread
    • MysqlndUhConnection::listFields — List MySQL table fields
    • MysqlndUhConnection::listMethod — Wrapper for assorted list commands
    • MysqlndUhConnection::moreResults — Check if there are any more query results from a multi query
    • MysqlndUhConnection::nextResult — Prepare next result from multi_query
    • MysqlndUhConnection::ping — Pings a server connection, or tries to reconnect if the connection has gone down
    • MysqlndUhConnection::query — Performs a query on the database
    • MysqlndUhConnection::queryReadResultsetHeader — Read a result set header
    • MysqlndUhConnection::reapQuery — Get result from async query
    • MysqlndUhConnection::refreshServer — Flush or reset tables and caches
    • MysqlndUhConnection::restartPSession — Restart a persistent mysqlnd connection
    • MysqlndUhConnection::selectDb — Selects the default database for database queries
    • MysqlndUhConnection::sendClose — Sends a close command to MySQL
    • MysqlndUhConnection::sendQuery — Sends a query to MySQL
    • MysqlndUhConnection::serverDumpDebugInformation — Dump debugging information into the log for the MySQL server
    • MysqlndUhConnection::setAutocommit — Turns on or off auto-committing database modifications
    • MysqlndUhConnection::setCharset — Sets the default client character set
    • MysqlndUhConnection::setClientOption — Sets a client option
    • MysqlndUhConnection::setServerOption — Sets a server option
    • MysqlndUhConnection::shutdownServer — The shutdownServer purpose
    • MysqlndUhConnection::simpleCommand — Sends a basic COM_* command
    • MysqlndUhConnection::simpleCommandHandleResponse — Process a response for a basic COM_* command send to the client
    • MysqlndUhConnection::sslSet — Used for establishing secure connections using SSL
    • MysqlndUhConnection::stmtInit — Initializes a statement and returns a resource for use with mysqli_statement::prepare
    • MysqlndUhConnection::storeResult — Transfers a result set from the last query
    • MysqlndUhConnection::txCommit — Commits the current transaction
    • MysqlndUhConnection::txRollback — Rolls back current transaction
    • MysqlndUhConnection::useResult — Initiate a result set retrieval
  • MysqlndUhPreparedStatement — The MysqlndUhPreparedStatement class
    • MysqlndUhPreparedStatement::__construct — The __construct purpose
    • MysqlndUhPreparedStatement::execute — Executes a prepared Query
    • MysqlndUhPreparedStatement::prepare — Prepare an SQL statement for execution
  • Mysqlnd_uh Функции
    • mysqlnd_uh_convert_to_mysqlnd — Converts a MySQL connection handle into a mysqlnd connection handle
    • mysqlnd_uh_set_connection_proxy — Installs a proxy for mysqlnd connections
    • mysqlnd_uh_set_statement_proxy — Installs a proxy for mysqlnd statements
  • Change History
    • PECL/mysqlnd_uh 1.0 series


Введение

The mysqlnd user handler plugin (mysqlnd_uh) allows users to set hooks for most internal calls of the MySQL native driver for PHP (mysqlnd). Mysqlnd and its plugins, including PECL/mysqlnd_uh, operate on a layer beneath the PHP MySQL extensions. A mysqlnd plugin can be considered as a proxy between the PHP MySQL extensions and the MySQL server as part of the PHP executable on the client-side. Because the plugins operates on their own layer below the PHP MySQL extensions, they can monitor and change application actions without requiring application changes. If the PHP MySQL extensions (mysqli, mysql, PDO_MYSQL) are compiled to use mysqlnd this can be used for:

  • Monitoring

    • Queries executed by any of the PHP MySQL extensions

    • Prepared statements executing by any of the PHP MySQL extensions

  • Auditing

    • Detection of database usage

    • SQL injection protection using black and white lists

  • Assorted

    • Load Balancing connections

The MySQL native driver for PHP (mysqlnd) features an internal plugin C API. C plugins, such as the mysqlnd user handler plugin, can extend the functionality of mysqlnd. PECL/mysqlnd_uh makes parts of the internal plugin C API available to the PHP user for plugin development with PHP.

Замечание: Status

The mysqlnd user handler plugin is in alpha status. Take appropriate care before using it in production environments.

Security considerations

PECL/mysqlnd_uh gives users access to MySQL user names, MySQL password used by any of the PHP MySQL extensions to connect to MySQL. It allows monitoring of all queries and prepared statements exposing the statement string to the user. Therefore, the extension should be installed with care. The PHP_INI_SYSTEM configuration setting mysqlnd_uh.enable can be used to prevent users from hooking mysqlnd calls.

Code obfuscators and similar technologies are not suitable to prevent monitoring of mysqlnd library activities if PECL/mysqlnd_uh is made available and the user can install a proxy, for example, using auto_prepend_file.

Documentation note

Many of the mysqlnd_uh functions are briefly described because the mysqli extension is a thin abstraction layer on top of the MySQL C API that the mysqlnd library provides. Therefore, the corresponding mysqli documentation (along with the MySQL reference manual) can be consulted to receive more information about a particular function.

On the name

The shortcut mysqlnd_uh stands for mysqlnd user handler, and has been the name since early development.


Quickstart and Examples

Содержание

  • Setup
  • How it works
  • Installing a proxy
  • Basic query monitoring

The mysqlnd user handler plugin can be understood as a client-side proxy for all PHP MySQL extensions (mysqli, mysql, PDO_MYSQL), if they are compiled to use the mysqlnd library. The extensions use the mysqlnd library internally, at the C level, to communicate with the MySQL server. PECL/mysqlnd_uh allows it to hook many mysqlnd calls. Therefore, most activities of the PHP MySQL extensions can be monitored.

Because monitoring happens at the level of the library, at a layer below the application, it is possible to monitor applications without changing them.

On the C level, the mysqlnd library is structured in modules or classes. The extension hooks almost all methods of the mysqlnd internal connection class and exposes them through the user space class MysqlndUhConnection. Some few methods of the mysqlnd internal statement class are made available to the PHP user with the class MysqlndUhPreparedStatement. By subclassing the classes MysqlndUhConnection and MysqlndUhPreparedStatement users get access to mysqlnd internal function calls.

Замечание:

The internal mysqlnd function calls are not designed to be exposed to the PHP user. Manipulating their activities may cause PHP to crash or leak memory. Often, this is not considered a bug. Please, keep in mind that you are accessing C library functions through PHP which are expected to take certain actions, which you may not be able to emulate in user space. Therefore, it is strongly recommended to always call the parent method implementation when subclassing MysqlndUhConnection or MysqlndUhPreparedStatement. To prevent the worst case, the extension performs some sanity checks. Please, see also the Mysqlnd_uh Опции настройки.


Setup

The plugin is implemented as a PHP extension. See the installation instructions to install the » PECL/mysqlnd_uh extension. Then, load the extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_uh.enable. The below example shows the default settings of the extension.

Пример #1 Enabling the plugin (php.ini)

mysqlnd_uh.enable=1
mysqlnd_uh.report_wrong_types=1


How it works

This describes the background and inner workings of the mysqlnd_uh extension.

Two classes are provided by the extension: MysqlndUhConnection and MysqlndUhPreparedStatement. MysqlndUhConnection lets you access almost all methods of the mysqlnd internal connection class. The latter exposes some selected methods of the mysqlnd internal statement class. For example, MysqlndUhConnection::connect() maps to the mysqlnd library C function mysqlnd_conn__connect.

As a mysqlnd plugin, the PECL/mysqlnd_uh extension replaces mysqlnd library C functions with its own functions. Whenever a PHP MySQL extension compiled to use mysqlnd calls a mysqlnd function, the functions installed by the plugin are executed instead of the original mysqlnd ones. For example, mysqli_connect() invokes mysqlnd_conn__connect, so the connect function installed by PECL/mysqlnd_uh will be called. The functions installed by PECL/mysqlnd_uh are the methods of the built-in classes.

The built-in PHP classes and their methods do nothing but call their mysqlnd C library counterparts, to behave exactly like the original mysqlnd function they replace. The code below illustrates in pseudo-code what the extension does.

Пример #1 Pseudo-code: what a built-in class does

class MysqlndUhConnection {
  public function connect(($conn, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
    MYSQLND* c_mysqlnd_connection = convert_from_php_to_c($conn);
    ...
    return call_c_function(mysqlnd_conn__connect(c_mysqlnd_connection, ...));
  }
}

The build-in classes behave like a transparent proxy. It is possible for you to replace the proxy with your own. This is done by subclassing MysqlndUhConnection or MysqlndUhPreparedStatement to extend the functionality of the proxy, followed by registering a new proxy object. Proxy objects are installed by mysqlnd_uh_set_connection_proxy() and mysqlnd_uh_set_statement_proxy().

Пример #2 Installing a proxy

<?php
class proxy extends MysqlndUhConnection {
 public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

Результат выполнения данного примера:

proxy::connect(array (
  0 => NULL,
  1 => 'localhost',
  2 => 'root',
  3 => '',
  4 => 'test',
  5 => 3306,
  6 => NULL,
  7 => 131072,
))
proxy::connect returns true


Installing a proxy

The extension provides two built-in classes: MysqlndUhConnection and MysqlndUhPreparedStatement. The classes are used for hooking mysqlnd library calls. Their methods correspond to mysqlnd internal functions. By default they act like a transparent proxy and do nothing but call their mysqlnd counterparts. By subclassing the classes you can install your own proxy to monitor mysqlnd.

See also the How it works guide to learn about the inner workings of this extension.

Connection proxies are objects of the type MysqlndUhConnection. Connection proxy objects are installed by mysqlnd_uh_set_connection_proxy(). If you install the built-in class MysqlndUhConnection as a proxy, nothing happens. It behaves like a transparent proxy.

Пример #1 Proxy registration, mysqlnd_uh.enable=1

<?php
mysqlnd_uh_set_connection_proxy(new MysqlndUhConnection());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

The PHP_INI_SYSTEM configuration setting mysqlnd_uh.enable controls whether a proxy may be set. If disabled, the extension will throw errors of type E_WARNING

Пример #2 Proxy installation disabled

mysqlnd_uh.enable=0
<?php
mysqlnd_uh_set_connection_proxy(new MysqlndUhConnection());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

Результат выполнения данного примера:

PHP Warning:  MysqlndUhConnection::__construct(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enabled = false.  You must not use any of the base classes in %s on line %d
PHP Warning:  mysqlnd_uh_set_connection_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed  in %s on line %d

To monitor mysqlnd, you have to write your own proxy object subclassing MysqlndUhConnection. Please, see the function reference for a the list of methods that can be subclassed. Alternatively, you can use reflection to inspect the built-in MysqlndUhConnection.

Create a new class proxy. Derive it from the built-in class MysqlndUhConnection. Replace the MysqlndUhConnection::connect(). method. Print out the host parameter value passed to the method. Make sure that you call the parent implementation of the connect method. Failing to do so may give unexpected and undesired results, including memory leaks and crashes.

Register your proxy and open three connections using the PHP MySQL extensions mysqli, mysql, PDO_MYSQL. If the extensions have been compiled to use the mysqlnd library, the proxy::connect method will be called three times, once for each connection opened.

Пример #3 Connection proxy

<?php
class proxy extends MysqlndUhConnection {
  public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("Connection opened to '%s'\n", $host);
   /* Always call the parent implementation! */
   return parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
  }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysql = mysql_connect("localhost", "root", "");
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
?>

Результат выполнения данного примера:

Connection opened to 'localhost'
Connection opened to 'localhost'
Connection opened to 'localhost'

The use of prepared statement proxies follows the same pattern: create a proxy object of the type MysqlndUhPreparedStatement and install the proxy using mysqlnd_uh_set_statement_proxy().

Пример #4 Prepared statement proxy

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  printf("%s(%s)\n", __METHOD__, $query);
  return parent::prepare($res, $query);
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'mysqlnd hacking made easy' AS _msg FROM DUAL");
?>

Результат выполнения данного примера:

stmt_proxy::prepare(SELECT 'mysqlnd hacking made easy' AS _msg FROM DUAL)


Basic query monitoring

Basic monitoring of a query statement is easy with PECL/mysqlnd_uh. Combined with debug_print_backtrace() it can become a powerful tool, for example, to find the origin of certain statement. This may be desired when searching for slow queries but also after database refactoring to find code still accessing deprecated databases or tables. The latter may be a complicated matter to do otherwise, especially if the application uses auto-generated queries.

Пример #1 Basic Monitoring

<?php
class conn_proxy extends MysqlndUhConnection {
 public function query($res, $query) {
  debug_print_backtrace();
  return parent::query($res, $query);
 }
}
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  debug_print_backtrace();
  return parent::prepare($res, $query);
 }
}
mysqlnd_uh_set_connection_proxy(new conn_proxy());
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

printf("Proxies installed...\n");
$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
var_dump($pdo->query("SELECT 1 AS _one FROM DUAL")->fetchAll(PDO::FETCH_ASSOC));

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->prepare("SELECT 1 AS _two FROM DUAL");
?>

Результат выполнения данного примера:

#0  conn_proxy->query(Resource id #19, SELECT 1 AS _one FROM DUAL)
#1  PDO->query(SELECT 1 AS _one FROM DUAL) called at [example.php:19]
array(1) {
  [0]=>
  array(1) {
    ["_one"]=>
    string(1) "1"
  }
}
#0  stmt_proxy->prepare(Resource id #753, SELECT 1 AS _two FROM DUAL)
#1  mysqli->prepare(SELECT 1 AS _two FROM DUAL) called at [example.php:22]

For basic query monitoring you should install a connection and a prepared statement proxy. The connection proxy should subclass MysqlndUhConnection::query(). All database queries not using native prepared statements will call this method. In the example the query function is invoked by a PDO call. By default, PDO_MySQL is using prepared statement emulation.

All native prepared statements are prepared with the prepare method of mysqlnd exported through MysqlndUhPreparedStatement::prepare(). Subclass MysqlndUhPreparedStatement and overwrite prepare for native prepared statement monitoring.


Требования

PHP 5.3.3 or later. It is recommended to use PHP 5.4.0 or later to get access to the latest mysqlnd features.

The mysqlnd_uh user handler plugin supports all PHP applications and all available PHP MySQL extensions (mysqli, mysql, PDO_MYSQL). The PHP MySQL extension must be configured to use mysqlnd in order to be able to use the mysqlnd_uh plugin for mysqlnd.

The alpha versions makes use of some mysqli features. You must enable mysqli to compile the plugin. This requirement may be removed in the future. Note, that this requirement does not restrict you to use the plugin only with mysqli. You can use the plugin to monitor mysql, mysqli and PDO_MYSQL.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/mysqlnd-uh

PECL/mysqlnd_uh is currently not available on Windows. The source code of the extension makes use of C99 constructs not allowed with PHP Windows builds.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Mysqlnd_uh Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
mysqlnd_uh.enable | 1 | PHP_INI_SYSTEM |
mysqlnd_uh.report_wrong_types | 1 | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

mysqlnd_uh.enable integer

Enables or disables the plugin. If set to disabled, the extension will not allow users to plug into mysqlnd to hook mysqlnd calls.

mysqlnd_uh.report_wrong_types integer

Whether to report wrong return value types of user hooks as E_WARNING level errors. This is recommended for detecting errors.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Most of the constants refer to details of the MySQL Client Server Protocol. Please, refer to the MySQL reference manual to learn about their meaning. To avoid content duplication, only short descriptions are given.

MysqlndUhConnection::simpleCommand() related

The following constants can be used to detect what command is to be send through MysqlndUhConnection::simpleCommand().

MYSQLND_UH_MYSQLND_COM_SLEEP (integer)
MySQL Client Server protocol command: COM_SLEEP.
MYSQLND_UH_MYSQLND_COM_QUIT (integer)
MySQL Client Server protocol command: COM_QUIT.
MYSQLND_UH_MYSQLND_COM_INIT_DB (integer)
MySQL Client Server protocol command: COM_INIT_DB.
MYSQLND_UH_MYSQLND_COM_QUERY (integer)
MySQL Client Server protocol command: COM_QUERY.
MYSQLND_UH_MYSQLND_COM_FIELD_LIST (integer)
MySQL Client Server protocol command: COM_FIELD_LIST.
MYSQLND_UH_MYSQLND_COM_CREATE_DB (integer)
MySQL Client Server protocol command: COM_CREATE_DB.
MYSQLND_UH_MYSQLND_COM_DROP_DB (integer)
MySQL Client Server protocol command: COM_DROP_DB.
MYSQLND_UH_MYSQLND_COM_REFRESH (integer)
MySQL Client Server protocol command: COM_REFRESH.
MYSQLND_UH_MYSQLND_COM_SHUTDOWN (integer)
MySQL Client Server protocol command: COM_SHUTDOWN.
MYSQLND_UH_MYSQLND_COM_STATISTICS (integer)
MySQL Client Server protocol command: COM_STATISTICS.
MYSQLND_UH_MYSQLND_COM_PROCESS_INFO (integer)
MySQL Client Server protocol command: COM_PROCESS_INFO.
MYSQLND_UH_MYSQLND_COM_CONNECT (integer)
MySQL Client Server protocol command: COM_CONNECT.
MYSQLND_UH_MYSQLND_COM_PROCESS_KILL (integer)
MySQL Client Server protocol command: COM_PROCESS_KILL.
MYSQLND_UH_MYSQLND_COM_DEBUG (integer)
MySQL Client Server protocol command: COM_DEBUG.
MYSQLND_UH_MYSQLND_COM_PING (integer)
MySQL Client Server protocol command: COM_PING.
MYSQLND_UH_MYSQLND_COM_TIME (integer)
MySQL Client Server protocol command: COM_TIME.
MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT (integer)
MySQL Client Server protocol command: COM_DELAYED_INSERT.
MYSQLND_UH_MYSQLND_COM_CHANGE_USER (integer)
MySQL Client Server protocol command: COM_CHANGE_USER.
MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP (integer)
MySQL Client Server protocol command: COM_BINLOG_DUMP.
MYSQLND_UH_MYSQLND_COM_TABLE_DUMP (integer)
MySQL Client Server protocol command: COM_TABLE_DUMP.
MYSQLND_UH_MYSQLND_COM_CONNECT_OUT (integer)
MySQL Client Server protocol command: COM_CONNECT_OUT.
MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED (integer)
MySQL Client Server protocol command: COM_REGISTER_SLAVED.
MYSQLND_UH_MYSQLND_COM_STMT_PREPARE (integer)
MySQL Client Server protocol command: COM_STMT_PREPARE.
MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE (integer)
MySQL Client Server protocol command: COM_STMT_EXECUTE.
MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA (integer)
MySQL Client Server protocol command: COM_STMT_SEND_LONG_DATA.
MYSQLND_UH_MYSQLND_COM_STMT_CLOSE (integer)
MySQL Client Server protocol command: COM_STMT_CLOSE.
MYSQLND_UH_MYSQLND_COM_STMT_RESET (integer)
MySQL Client Server protocol command: COM_STMT_RESET.
MYSQLND_UH_MYSQLND_COM_SET_OPTION (integer)
MySQL Client Server protocol command: COM_SET_OPTION.
MYSQLND_UH_MYSQLND_COM_STMT_FETCH (integer)
MySQL Client Server protocol command: COM_STMT_FETCH.
MYSQLND_UH_MYSQLND_COM_DAEMON (integer)
MySQL Client Server protocol command: COM_DAEMON.
MYSQLND_UH_MYSQLND_COM_END (integer)
MySQL Client Server protocol command: COM_END.

The following constants can be used to analyze the ok_packet argument of MysqlndUhConnection::simpleCommand().

MYSQLND_UH_MYSQLND_PROT_GREET_PACKET (integer)
MySQL Client Server protocol packet: greeting.
MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET (integer)
MySQL Client Server protocol packet: authentication.
MYSQLND_UH_MYSQLND_PROT_OK_PACKET (integer)
MySQL Client Server protocol packet: OK.
MYSQLND_UH_MYSQLND_PROT_EOF_PACKET (integer)
MySQL Client Server protocol packet: EOF.
MYSQLND_UH_MYSQLND_PROT_CMD_PACKET (integer)
MySQL Client Server protocol packet: command.
MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET (integer)
MySQL Client Server protocol packet: result set header.
MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET (integer)
MySQL Client Server protocol packet: resultset field.
MYSQLND_UH_MYSQLND_PROT_ROW_PACKET (integer)
MySQL Client Server protocol packet: row.
MYSQLND_UH_MYSQLND_PROT_STATS_PACKET (integer)
MySQL Client Server protocol packet: stats.
MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET (integer)
MySQL Client Server protocol packet: prepare response.
MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET (integer)
MySQL Client Server protocol packet: change user response.
MYSQLND_UH_MYSQLND_PROT_LAST (integer)
No practical meaning. Last entry marker of internal C data structure list.

MysqlndUhConnection::close() related

The following constants can be used to detect why a connection has been closed through MysqlndUhConnection::close().

MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT (integer)
User has called mysqlnd to close the connection.
MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT (integer)
Implicitly closed, for example, during garbage connection.
MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED (integer)
Connection error.
MYSQLND_UH_MYSQLND_CLOSE_LAST (integer)
No practical meaning. Last entry marker of internal C data structure list.

MysqlndUhConnection::setServerOption() related

The following constants can be used to detect which option is set through MysqlndUhConnection::setServerOption().

MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON (integer)
Option: enables multi statement support.
MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_OFF (integer)
Option: disables multi statement support.

MysqlndUhConnection::setClientOption() related

The following constants can be used to detect which option is set through MysqlndUhConnection::setClientOption().

MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT (integer)
Option: connection timeout.
MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS (integer)
Option: whether the MySQL compressed protocol is to be used.
MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE (integer)
Option: named pipe to use for connection (Windows).
MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND (integer)
Option: init command to execute upon connect.
MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE (integer)
Option: MySQL server default file to read upon connect.
MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP (integer)
Option: MySQL server default file group to read upon connect.
MYSQLND_UH_MYSQLND_SET_CHARSET_DIR (integer)
Option: charset description files directory.
MYSQLND_UH_MYSQLND_SET_CHARSET_NAME (integer)
Option: charset name.
MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE (integer)
Option: Whether to allow LOAD DATA LOCAL INFILE use.
MYSQLND_UH_MYSQLND_OPT_PROTOCOL (integer)
Option: supported protocol version.
MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME (integer)
Option: shared memory base name for shared memory connections.
MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT (integer)
Option: connection read timeout.
MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT (integer)
Option: connection write timeout.
MYSQLND_UH_MYSQLND_OPT_USE_RESULT (integer)
Option: unbuffered result sets.
MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION (integer)
Embedded server related.
MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION (integer)
Embedded server related.
MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION (integer)
TODO
MYSQLND_UH_MYSQLND_SET_CLIENT_IP (integer)
TODO
MYSQLND_UH_MYSQLND_SECURE_AUTH (integer)
TODO
MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION (integer)
Option: Whether to report data truncation.
MYSQLND_UH_MYSQLND_OPT_RECONNECT (integer)
Option: Whether to reconnect automatically.
MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT (integer)
Option: TODO
MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE (integer)
Option: mysqlnd network buffer size for commands.
MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE (integer)
Option: mysqlnd network buffer size for reading from the server.
MYSQLND_UH_MYSQLND_OPT_SSL_KEY (integer)
Option: SSL key.
MYSQLND_UH_MYSQLND_OPT_SSL_CERT (integer)
Option: SSL certificate.
MYSQLND_UH_MYSQLND_OPT_SSL_CA (integer)
Option: SSL CA.
MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH (integer)
Option: Path to SSL CA.
MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER (integer)
Option: SSL cipher.
MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE (integer)
Option: SSL passphrase.
MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR (integer)
Option: server plugin directory.
MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH (integer)
Option: default authentication method.
MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP (integer)
TODO
MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET (integer)
Option: maximum allowed packet size. Available as of PHP 5.4.0.
MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL (integer)
Option: TODO. Available as of PHP 5.4.0.
MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE (integer)
Option: make mysqlnd return integer and float columns as long even when using the MySQL Client Server text protocol. Only available with a custom build of mysqlnd.

Other

The plugins version number can be obtained using MYSQLND_UH_VERSION or MYSQLND_UH_VERSION_ID. MYSQLND_UH_VERSION is the string representation of the numerical version number MYSQLND_UH_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_UH_VERSION_ID | 10000

MYSQLND_UH_VERSION (string)
Plugin version string, for example, "1.0.0-alpha".
MYSQLND_UH_VERSION_ID (integer)
Plugin version number, for example, 10000.


The MysqlndUhConnection class

(PECL mysqlnd-uh >= 1.0.0-alpha)

Введение

Обзор классов

MysqlndUhConnection {
/* Методы */
public bool changeUser ( mysqlnd_connection $connection , string $user , string $password , string $database , bool $silent , int $passwd_len )
public string charsetName ( mysqlnd_connection $connection )
public bool close ( mysqlnd_connection $connection , int $close_type )
public bool connect ( mysqlnd_connection $connection , string $host , string $use" , string $password , string $database , int $port , string $socket , int $mysql_flags )
public __construct ( void )
public bool endPSession ( mysqlnd_connection $connection )
public string escapeString ( mysqlnd_connection $connection , string $escape_string )
public int getAffectedRows ( mysqlnd_connection $connection )
public int getErrorNumber ( mysqlnd_connection $connection )
public string getErrorString ( mysqlnd_connection $connection )
public int getFieldCount ( mysqlnd_connection $connection )
public string getHostInformation ( mysqlnd_connection $connection )
public int getLastInsertId ( mysqlnd_connection $connection )
public void getLastMessage ( mysqlnd_connection $connection )
public string getProtocolInformation ( mysqlnd_connection $connection )
public string getServerInformation ( mysqlnd_connection $connection )
public string getServerStatistics ( mysqlnd_connection $connection )
public int getServerVersion ( mysqlnd_connection $connection )
public string getSqlstate ( mysqlnd_connection $connection )
public array getStatistics ( mysqlnd_connection $connection )
public int getThreadId ( mysqlnd_connection $connection )
public int getWarningCount ( mysqlnd_connection $connection )
public bool init ( mysqlnd_connection $connection )
public bool killConnection ( mysqlnd_connection $connection , int $pid )
public array listFields ( mysqlnd_connection $connection , string $table , string $achtung_wild )
public void listMethod ( mysqlnd_connection $connection , string $query , string $achtung_wild , string $par1 )
public bool moreResults ( mysqlnd_connection $connection )
public bool nextResult ( mysqlnd_connection $connection )
public bool ping ( mysqlnd_connection $connection )
public bool query ( mysqlnd_connection $connection , string $query )
public bool queryReadResultsetHeader ( mysqlnd_connection $connection , mysqlnd_statement $mysqlnd_stmt )
public bool reapQuery ( mysqlnd_connection $connection )
public bool refreshServer ( mysqlnd_connection $connection , int $options )
public bool restartPSession ( mysqlnd_connection $connection )
public bool selectDb ( mysqlnd_connection $connection , string $database )
public bool sendClose ( mysqlnd_connection $connection )
public bool sendQuery ( mysqlnd_connection $connection , string $query )
public bool serverDumpDebugInformation ( mysqlnd_connection $connection )
public bool setAutocommit ( mysqlnd_connection $connection , int $mode )
public bool setCharset ( mysqlnd_connection $connection , string $charset )
public bool setClientOption ( mysqlnd_connection $connection , int $option , int $value )
public void setServerOption ( mysqlnd_connection $connection , int $option )
public void shutdownServer ( string $MYSQLND_UH_RES_MYSQLND_NAME , string $"level" )
public bool simpleCommand ( mysqlnd_connection $connection , int $command , string $arg , int $ok_packet , bool $silent , bool $ignore_upsert_status )
public bool simpleCommandHandleResponse ( mysqlnd_connection $connection , int $ok_packet , bool $silent , int $command , bool $ignore_upsert_status )
public bool sslSet ( mysqlnd_connection $connection , string $key , string $cert , string $ca , string $capath , string $cipher )
public resource stmtInit ( mysqlnd_connection $connection )
public resource storeResult ( mysqlnd_connection $connection )
public bool txCommit ( mysqlnd_connection $connection )
public bool txRollback ( mysqlnd_connection $connection )
public resource useResult ( mysqlnd_connection $connection )
}

Содержание

  • MysqlndUhConnection::changeUser — Changes the user of the specified mysqlnd database connection
  • MysqlndUhConnection::charsetName — Returns the default character set for the database connection
  • MysqlndUhConnection::close — Closes a previously opened database connection
  • MysqlndUhConnection::connect — Open a new connection to the MySQL server
  • MysqlndUhConnection::__construct — The __construct purpose
  • MysqlndUhConnection::endPSession — End a persistent connection
  • MysqlndUhConnection::escapeString — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
  • MysqlndUhConnection::getAffectedRows — Gets the number of affected rows in a previous MySQL operation
  • MysqlndUhConnection::getErrorNumber — Returns the error code for the most recent function call
  • MysqlndUhConnection::getErrorString — Returns a string description of the last error
  • MysqlndUhConnection::getFieldCount — Returns the number of columns for the most recent query
  • MysqlndUhConnection::getHostInformation — Returns a string representing the type of connection used
  • MysqlndUhConnection::getLastInsertId — Returns the auto generated id used in the last query.
  • MysqlndUhConnection::getLastMessage — Retrieves information about the most recently executed query
  • MysqlndUhConnection::getProtocolInformation — Returns the version of the MySQL protocol used
  • MysqlndUhConnection::getServerInformation — Returns the version of the MySQL server
  • MysqlndUhConnection::getServerStatistics — Gets the current system status
  • MysqlndUhConnection::getServerVersion — Returns the version of the MySQL server as an integer
  • MysqlndUhConnection::getSqlstate — Returns the SQLSTATE error from previous MySQL operation
  • MysqlndUhConnection::getStatistics — Returns statistics about the client connection.
  • MysqlndUhConnection::getThreadId — Returns the thread ID for the current connection
  • MysqlndUhConnection::getWarningCount — Returns the number of warnings from the last query for the given link
  • MysqlndUhConnection::init — Initialize mysqlnd connection
  • MysqlndUhConnection::killConnection — Asks the server to kill a MySQL thread
  • MysqlndUhConnection::listFields — List MySQL table fields
  • MysqlndUhConnection::listMethod — Wrapper for assorted list commands
  • MysqlndUhConnection::moreResults — Check if there are any more query results from a multi query
  • MysqlndUhConnection::nextResult — Prepare next result from multi_query
  • MysqlndUhConnection::ping — Pings a server connection, or tries to reconnect if the connection has gone down
  • MysqlndUhConnection::query — Performs a query on the database
  • MysqlndUhConnection::queryReadResultsetHeader — Read a result set header
  • MysqlndUhConnection::reapQuery — Get result from async query
  • MysqlndUhConnection::refreshServer — Flush or reset tables and caches
  • MysqlndUhConnection::restartPSession — Restart a persistent mysqlnd connection
  • MysqlndUhConnection::selectDb — Selects the default database for database queries
  • MysqlndUhConnection::sendClose — Sends a close command to MySQL
  • MysqlndUhConnection::sendQuery — Sends a query to MySQL
  • MysqlndUhConnection::serverDumpDebugInformation — Dump debugging information into the log for the MySQL server
  • MysqlndUhConnection::setAutocommit — Turns on or off auto-committing database modifications
  • MysqlndUhConnection::setCharset — Sets the default client character set
  • MysqlndUhConnection::setClientOption — Sets a client option
  • MysqlndUhConnection::setServerOption — Sets a server option
  • MysqlndUhConnection::shutdownServer — The shutdownServer purpose
  • MysqlndUhConnection::simpleCommand — Sends a basic COM_* command
  • MysqlndUhConnection::simpleCommandHandleResponse — Process a response for a basic COM_* command send to the client
  • MysqlndUhConnection::sslSet — Used for establishing secure connections using SSL
  • MysqlndUhConnection::stmtInit — Initializes a statement and returns a resource for use with mysqli_statement::prepare
  • MysqlndUhConnection::storeResult — Transfers a result set from the last query
  • MysqlndUhConnection::txCommit — Commits the current transaction
  • MysqlndUhConnection::txRollback — Rolls back current transaction
  • MysqlndUhConnection::useResult — Initiate a result set retrieval


Changes the user of the specified mysqlnd database connection

  • « MysqlndUhConnection
  • MysqlndUhConnection::charsetName »
  • PHP Manual
  • MysqlndUhConnection
  • Changes the user of the specified mysqlnd database connection

MysqlndUhConnection::changeUser

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::changeUser — Changes the user of the specified mysqlnd database connection

Описание

public bool MysqlndUhConnection::changeUser ( mysqlnd_connection $connection , string $user , string $password , string $database , bool $silent , int $passwd_len )

Changes the user of the specified mysqlnd database connection

Список параметров

connection

Mysqlnd connection handle. Do not modify!

user

The MySQL user name.

password

The MySQL password.

database

The MySQL database to change to.

silent

Controls if mysqlnd is allowed to emit errors or not.

passwd_len

Length of the MySQL password.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::changeUser() example

<?php
class proxy extends MysqlndUhConnection {
 /* Hook mysqlnd's connection::change_user call */
 public function changeUser($res, $user, $passwd, $db, $silent, $passwd_len) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::changeUser($res, $user, $passwd, $db, $silent, $passwd_len);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
/* Install proxy/hooks to be used with all future mysqlnd connection */
mysqlnd_uh_set_connection_proxy(new proxy());

/* Create mysqli connection which is using the mysqlnd library */
$mysqli = new mysqli("localhost", "root", "", "test");

/* Example of a user API call which triggers the hooked mysqlnd call */
var_dump($mysqli->change_user("root", "bar", "test"));
?>

Результат выполнения данного примера:

proxy::changeUser(array (
  0 => NULL,
  1 => 'root',
  2 => 'bar',
  3 => 'test',
  4 => false,
  5 => 3,
))
proxy::changeUser returns false
bool(false)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_change_user() - Позволяет сменить пользователя подключенного к базе данных


Returns the default character set for the database connection

  • « MysqlndUhConnection::changeUser
  • MysqlndUhConnection::close »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the default character set for the database connection

MysqlndUhConnection::charsetName

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::charsetName — Returns the default character set for the database connection

Описание

public string MysqlndUhConnection::charsetName ( mysqlnd_connection $connection )

Returns the default character set for the database connection.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The default character set.

Примеры

Пример #1 MysqlndUhConnection::charsetName() example

<?php
class proxy extends MysqlndUhConnection {
  public function charsetName($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::charsetName($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump(mysqli_character_set_name($mysqli));
?>

Результат выполнения данного примера:

proxy::charsetName(array (
  0 => NULL,
))
proxy::charsetName returns 'latin1'
string(6) "latin1"

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_character_set_name() - Возвращает кодировку по умолчанию, установленную для соединения с БД


Closes a previously opened database connection

  • « MysqlndUhConnection::charsetName
  • MysqlndUhConnection::connect »
  • PHP Manual
  • MysqlndUhConnection
  • Closes a previously opened database connection

MysqlndUhConnection::close

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::close — Closes a previously opened database connection

Описание

public bool MysqlndUhConnection::close ( mysqlnd_connection $connection , int $close_type )

Closes a previously opened database connection.

Замечание:

Failing to call the parent implementation may cause memory leaks or crash PHP. This is not considered a bug. Please, keep in mind that the mysqlnd library functions have never been designed to be exposed to the user space.

Список параметров

connection

The connection to be closed. Do not modify!

close_type

Why the connection is to be closed. The value of close_type is one of MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT, MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT, MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED or MYSQLND_UH_MYSQLND_CLOSE_LAST. The latter should never be seen, unless the default behaviour of the mysqlnd library has been changed by a plugin.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::close() example

<?php
function close_type_to_string($close_type) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED => "MYSQLND_UH_MYSQLND_CLOSE_DISCONNECTED",
  MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT => "MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT",
  MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT => "MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT",
  MYSQLND_UH_MYSQLND_CLOSE_LAST => "MYSQLND_UH_MYSQLND_CLOSE_IMPLICIT"
 );
 return (isset($mapping[$close_type])) ? $mapping[$close_type] : 'unknown';
}

class proxy extends MysqlndUhConnection {
  public function close($res, $close_type) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   printf("close_type = %s\n", close_type_to_string($close_type));
   /* WARNING: you must call the parent */
   $ret = parent::close($res, $close_type);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->close();
?>

Результат выполнения данного примера:

proxy::close(array (
  0 => NULL,
  1 => 0,
))
close_type = MYSQLND_UH_MYSQLND_CLOSE_EXPLICIT
proxy::close returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_close() - Закрывает ранее открытое соединение с базой данных
  • mysql_close() - Закрывает соединение с сервером MySQL


Open a new connection to the MySQL server

  • « MysqlndUhConnection::close
  • MysqlndUhConnection::__construct »
  • PHP Manual
  • MysqlndUhConnection
  • Open a new connection to the MySQL server

MysqlndUhConnection::connect

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::connect — Open a new connection to the MySQL server

Описание

public bool MysqlndUhConnection::connect ( mysqlnd_connection $connection , string $host , string $use" , string $password , string $database , int $port , string $socket , int $mysql_flags )

Open a new connection to the MySQL server.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

host

Can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol.

user

The MySQL user name.

password

If not provided or NULL, the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not).

database

If provided will specify the default database to be used when performing queries.

port

Specifies the port number to attempt to connect to the MySQL server.

socket

Specifies the socket or named pipe that should be used. If NULL, mysqlnd will default to /tmp/mysql.sock.

mysql_flags

Connection options.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::connect() example

<?php
class proxy extends MysqlndUhConnection {
 public function connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::connect($res, $host, $user, $passwd, $db, $port, $socket, $mysql_flags);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

Результат выполнения данного примера:

proxy::connect(array (
  0 => NULL,
  1 => 'localhost',
  2 => 'root',
  3 => '',
  4 => 'test',
  5 => 3306,
  6 => NULL,
  7 => 131072,
))
proxy::connect returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_connect() - Псевдоним mysqli::__construct
  • mysql_connect() - Открывает соединение с сервером MySQL


The __construct purpose

  • « MysqlndUhConnection::connect
  • MysqlndUhConnection::endPSession »
  • PHP Manual
  • MysqlndUhConnection
  • The __construct purpose

MysqlndUhConnection::__construct

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::__construct — The __construct purpose

Описание

public MysqlndUhConnection::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


End a persistent connection

  • « MysqlndUhConnection::__construct
  • MysqlndUhConnection::escapeString »
  • PHP Manual
  • MysqlndUhConnection
  • End a persistent connection

MysqlndUhConnection::endPSession

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::endPSession — End a persistent connection

Описание

public bool MysqlndUhConnection::endPSession ( mysqlnd_connection $connection )

End a persistent connection

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::endPSession() example

<?php
class proxy extends MysqlndUhConnection {
 public function endPSession($conn) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::endPSession($conn);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("p:localhost", "root", "", "test");
$mysqli->close();
?>

Результат выполнения данного примера:

proxy::endPSession(array (
  0 => NULL,
))
proxy::endPSession returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

  • « MysqlndUhConnection::endPSession
  • MysqlndUhConnection::getAffectedRows »
  • PHP Manual
  • MysqlndUhConnection
  • Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

MysqlndUhConnection::escapeString

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::escapeString — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection

Описание

public string MysqlndUhConnection::escapeString ( mysqlnd_connection $connection , string $escape_string )

Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection.

Список параметров

MYSQLND_UH_RES_MYSQLND_NAME

Mysqlnd connection handle. Do not modify!

escape_string

The string to be escaped.

Возвращаемые значения

The escaped string.

Примеры

Пример #1 MysqlndUhConnection::escapeString() example

<?php
class proxy extends MysqlndUhConnection {
 public function escapeString($res, $string) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::escapeString($res, $string);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->set_charset("latin1");
$mysqli->real_escape_string("test0'test");
?>

Результат выполнения данного примера:

proxy::escapeString(array (
  0 => NULL,
  1 => 'test0\'test',
))
proxy::escapeString returns 'test0\\\'test'

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_escape_string() - Экранирует специальные символы в строке для использования в SQL выражении, используя текущий набор символов соединения
  • mysql_real_escape_string() - Экранирует специальные символы в строках для использования в выражениях SQL


Gets the number of affected rows in a previous MySQL operation

  • « MysqlndUhConnection::escapeString
  • MysqlndUhConnection::getErrorNumber »
  • PHP Manual
  • MysqlndUhConnection
  • Gets the number of affected rows in a previous MySQL operation

MysqlndUhConnection::getAffectedRows

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getAffectedRows — Gets the number of affected rows in a previous MySQL operation

Описание

public int MysqlndUhConnection::getAffectedRows ( mysqlnd_connection $connection )

Gets the number of affected rows in a previous MySQL operation.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Number of affected rows.

Примеры

Пример #1 MysqlndUhConnection::getAffectedRows() example

<?php
class proxy extends MysqlndUhConnection {
 public function getAffectedRows($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getAffectedRows($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT)");
$mysqli->query("INSERT INTO test(id) VALUES (1)");
var_dump($mysqli->affected_rows);
?>

Результат выполнения данного примера:

proxy::getAffectedRows(array (
  0 => NULL,
))
proxy::getAffectedRows returns 1
int(1)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_affected_rows() - Получает число строк, затронутых предыдущей операцией MySQL
  • mysql_affected_rows() - Возвращает число затронутых прошлой операцией рядов


Returns the error code for the most recent function call

  • « MysqlndUhConnection::getAffectedRows
  • MysqlndUhConnection::getErrorString »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the error code for the most recent function call

MysqlndUhConnection::getErrorNumber

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getErrorNumber — Returns the error code for the most recent function call

Описание

public int MysqlndUhConnection::getErrorNumber ( mysqlnd_connection $connection )

Returns the error code for the most recent function call.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Error code for the most recent function call.

Примеры

MysqlndUhConnection::getErrorNumber() is not only executed after the invocation of a user space API call which maps directly to it but also called internally.

Пример #1 MysqlndUhConnection::getErrorNumber() example

<?php
class proxy extends MysqlndUhConnection {
 public function getErrorNumber($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getErrorNumber($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

printf("connect...\n");
$mysqli = new mysqli("localhost", "root", "", "test");
printf("query...\n");
$mysqli->query("PLEASE_LET_THIS_BE_INVALID_SQL");
printf("errno...\n");
var_dump($mysqli->errno);
printf("close...\n");
$mysqli->close();
?>

Результат выполнения данного примера:

connect...
proxy::getErrorNumber(array (
  0 => NULL,
))
proxy::getErrorNumber returns 0
query...
errno...
proxy::getErrorNumber(array (
  0 => NULL,
))
proxy::getErrorNumber returns 1064
int(1064)
close...

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • MysqlndUhConnection::getErrorString() - Returns a string description of the last error
  • mysqli_errno() - Возвращает код ошибки последнего вызова функции
  • mysql_errno() - Возвращает численный код ошибки выполнения последней операции с MySQL


Returns a string description of the last error

  • « MysqlndUhConnection::getErrorNumber
  • MysqlndUhConnection::getFieldCount »
  • PHP Manual
  • MysqlndUhConnection
  • Returns a string description of the last error

MysqlndUhConnection::getErrorString

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getErrorString — Returns a string description of the last error

Описание

public string MysqlndUhConnection::getErrorString ( mysqlnd_connection $connection )

Returns a string description of the last error.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Error string for the most recent function call.

Примеры

MysqlndUhConnection::getErrorString() is not only executed after the invocation of a user space API call which maps directly to it but also called internally.

Пример #1 MysqlndUhConnection::getErrorString() example

<?php
class proxy extends MysqlndUhConnection {
 public function getErrorString($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getErrorString($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

printf("connect...\n");
$mysqli = new mysqli("localhost", "root", "", "test");
printf("query...\n");
$mysqli->query("WILL_I_EVER_LEARN_SQL?");
printf("errno...\n");
var_dump($mysqli->error);
printf("close...\n");
$mysqli->close();
?>

Результат выполнения данного примера:

connect...
proxy::getErrorString(array (
  0 => NULL,
))
proxy::getErrorString returns ''
query...
errno...
proxy::getErrorString(array (
  0 => NULL,
))
proxy::getErrorString returns 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'WILL_I_EVER_LEARN_SQL?\' at line 1'
string(168) "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WILL_I_EVER_LEARN_SQL?' at line 1"
close...

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • MysqlndUhConnection::getErrorNumber() - Returns the error code for the most recent function call
  • mysqli_error() - Возвращает строку с описанием последней ошибки
  • mysql_error() - Возвращает текст ошибки последней операции с MySQL


Returns the number of columns for the most recent query

  • « MysqlndUhConnection::getErrorString
  • MysqlndUhConnection::getHostInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the number of columns for the most recent query

MysqlndUhConnection::getFieldCount

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getFieldCount — Returns the number of columns for the most recent query

Описание

public int MysqlndUhConnection::getFieldCount ( mysqlnd_connection $connection )

Returns the number of columns for the most recent query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Number of columns.

Примеры

MysqlndUhConnection::getFieldCount() is not only executed after the invocation of a user space API call which maps directly to it but also called internally.

Пример #1 MysqlndUhConnection::getFieldCount() example

<?php
class proxy extends MysqlndUhConnection {
 public function getFieldCount($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getFieldCount($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("WILL_I_EVER_LEARN_SQL?");
var_dump($mysqli->field_count);
$mysqli->query("SELECT 1, 2, 3 FROM DUAL");
var_dump($mysqli->field_count);
?>

Результат выполнения данного примера:

proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount returns 0
int(0)
proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount returns 3
proxy::getFieldCount(array (
  0 => NULL,
))
proxy::getFieldCount returns 3
int(3)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_field_count() - Возвращает число столбцов, затронутых последним запросом


Returns a string representing the type of connection used

  • « MysqlndUhConnection::getFieldCount
  • MysqlndUhConnection::getLastInsertId »
  • PHP Manual
  • MysqlndUhConnection
  • Returns a string representing the type of connection used

MysqlndUhConnection::getHostInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getHostInformation — Returns a string representing the type of connection used

Описание

public string MysqlndUhConnection::getHostInformation ( mysqlnd_connection $connection )

Returns a string representing the type of connection used.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Connection description.

Примеры

Пример #1 MysqlndUhConnection::getHostInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function getHostInformation($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getHostInformation($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->host_info);
?>

Результат выполнения данного примера:

proxy::getHostInformation(array (
  0 => NULL,
))
proxy::getHostInformation returns 'Localhost via UNIX socket'
string(25) "Localhost via UNIX socket"

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_host_info() - Возвращает строку, содержащую тип используемого соединения
  • mysql_get_host_info() - Возвращает информацию о соединении с MySQL


Returns the auto generated id used in the last query.

  • « MysqlndUhConnection::getHostInformation
  • MysqlndUhConnection::getLastMessage »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the auto generated id used in the last query.

MysqlndUhConnection::getLastInsertId

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getLastInsertId — Returns the auto generated id used in the last query.

Описание

public int MysqlndUhConnection::getLastInsertId ( mysqlnd_connection $connection )

Returns the auto generated id used in the last query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Last insert id.

Примеры

Пример #1 MysqlndUhConnection::getLastInsertId() example

<?php
class proxy extends MysqlndUhConnection {
 public function getLastInsertId($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getLastInsertId($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("DROP TABLE IF EXISTS test");
$mysqli->query("CREATE TABLE test(id INT AUTO_INCREMENT PRIMARY KEY, col VARCHAR(255))");
$mysqli->query("INSERT INTO test(col) VALUES ('a')");
var_dump($mysqli->insert_id);
?>

Результат выполнения данного примера:

proxy::getLastInsertId(array (
  0 => NULL,
))
proxy::getLastInsertId returns 1
int(1)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_insert_id() - Возвращает автоматически генерируемый ID, используя последний запрос
  • mysql_insert_id() - Возвращает идентификатор, сгенерированный при последнем INSERT-запросе


Retrieves information about the most recently executed query

  • « MysqlndUhConnection::getLastInsertId
  • MysqlndUhConnection::getProtocolInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Retrieves information about the most recently executed query

MysqlndUhConnection::getLastMessage

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getLastMessage — Retrieves information about the most recently executed query

Описание

public void MysqlndUhConnection::getLastMessage ( mysqlnd_connection $connection )

Retrieves information about the most recently executed query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Last message. Trying to return a string longer than 511 bytes will cause an error of the type E_WARNING and result in the string being truncated.

Примеры

Пример #1 MysqlndUhConnection::getLastMessage() example

<?php
class proxy extends MysqlndUhConnection {
 public function getLastMessage($res) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::getLastMessage($res);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->info);
$mysqli->query("DROP TABLE IF EXISTS test");
var_dump($mysqli->info);
?>

Результат выполнения данного примера:

proxy::getLastMessage(array (
  0 => NULL,
))
proxy::getLastMessage returns ''
string(0) ""
proxy::getLastMessage(array (
  0 => NULL,
))
proxy::getLastMessage returns ''
string(0) ""

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_info() - Извлекает информацию о последнем выполненном запросе
  • mysql_info() - Возвращает информацию о последнем запросе


Returns the version of the MySQL protocol used

  • « MysqlndUhConnection::getLastMessage
  • MysqlndUhConnection::getServerInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the version of the MySQL protocol used

MysqlndUhConnection::getProtocolInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getProtocolInformation — Returns the version of the MySQL protocol used

Описание

public string MysqlndUhConnection::getProtocolInformation ( mysqlnd_connection $connection )

Returns the version of the MySQL protocol used.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The protocol version.

Примеры

Пример #1 MysqlndUhConnection::getProtocolInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function getProtocolInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getProtocolInformation($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->protocol_version);
?>

Результат выполнения данного примера:

proxy::getProtocolInformation(array (
  0 => NULL,
))
proxy::getProtocolInformation returns 10
int(10)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_proto_info() - Возвращает версию используемого MySQL протокола
  • mysql_get_proto_info() - Возвращает информацию о протоколе MySQL


Returns the version of the MySQL server

  • « MysqlndUhConnection::getProtocolInformation
  • MysqlndUhConnection::getServerStatistics »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the version of the MySQL server

MysqlndUhConnection::getServerInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerInformation — Returns the version of the MySQL server

Описание

public string MysqlndUhConnection::getServerInformation ( mysqlnd_connection $connection )

Returns the version of the MySQL server.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The server version.

Примеры

Пример #1 MysqlndUhConnection::getServerInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function getServerInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerInformation($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->server_info);
?>

Результат выполнения данного примера:

proxy::getServerInformation(array (
  0 => NULL,
))
proxy::getServerInformation returns '5.1.45-debug-log'
string(16) "5.1.45-debug-log"

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_server_info() - Возвращает версию MySQL сервера
  • mysql_get_server_info() - Возвращает информацию о сервере MySQL


Gets the current system status

  • « MysqlndUhConnection::getServerInformation
  • MysqlndUhConnection::getServerVersion »
  • PHP Manual
  • MysqlndUhConnection
  • Gets the current system status

MysqlndUhConnection::getServerStatistics

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerStatistics — Gets the current system status

Описание

public string MysqlndUhConnection::getServerStatistics ( mysqlnd_connection $connection )

Gets the current system status.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The system status message.

Примеры

Пример #1 MysqlndUhConnection::getServerStatistics() example

<?php
class proxy extends MysqlndUhConnection {
 public function getServerStatistics($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerStatistics($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump(mysqli_stat($mysqli));
?>

Результат выполнения данного примера:

proxy::getServerStatistics(array (
  0 => NULL,
))
proxy::getServerStatistics returns 'Uptime: 2059995  Threads: 1  Questions: 126157  Slow queries: 0  Opens: 6377  Flush tables: 1  Open tables: 18  Queries per second avg: 0.61'
string(140) "Uptime: 2059995  Threads: 1  Questions: 126157  Slow queries: 0  Opens: 6377  Flush tables: 1  Open tables: 18  Queries per second avg: 0.61"

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_stat() - Получение информации о текущем состоянии системы
  • mysql_stat() - Возвращает текущий статус сервера


Returns the version of the MySQL server as an integer

  • « MysqlndUhConnection::getServerStatistics
  • MysqlndUhConnection::getSqlstate »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the version of the MySQL server as an integer

MysqlndUhConnection::getServerVersion

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getServerVersion — Returns the version of the MySQL server as an integer

Описание

public int MysqlndUhConnection::getServerVersion ( mysqlnd_connection $connection )

Returns the version of the MySQL server as an integer.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The MySQL version.

Примеры

Пример #1 MysqlndUhConnection::getServerVersion() example

<?php
class proxy extends MysqlndUhConnection {
 public function getServerVersion($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getServerVersion($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->server_version);
?>

Результат выполнения данного примера:

proxy::getServerVersion(array (
  0 => NULL,
))
proxy::getServerVersion returns 50145
int(50145)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_server_version() - Возвращает версию сервера MySQL, представленную в виде integer
  • mysql_get_server_version()


Returns the SQLSTATE error from previous MySQL operation

  • « MysqlndUhConnection::getServerVersion
  • MysqlndUhConnection::getStatistics »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the SQLSTATE error from previous MySQL operation

MysqlndUhConnection::getSqlstate

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getSqlstate — Returns the SQLSTATE error from previous MySQL operation

Описание

public string MysqlndUhConnection::getSqlstate ( mysqlnd_connection $connection )

Returns the SQLSTATE error from previous MySQL operation.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

The SQLSTATE code.

Примеры

Пример #1 MysqlndUhConnection::getSqlstate() example

<?php
class proxy extends MysqlndUhConnection {
 public function getSqlstate($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getSqlstate($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->sqlstate);
$mysqli->query("AN_INVALID_REQUEST_TO_PROVOKE_AN_ERROR");
var_dump($mysqli->sqlstate);
?>

Результат выполнения данного примера:

proxy::getSqlstate(array (
  0 => NULL,
))
proxy::getSqlstate returns '00000'
string(5) "00000"
proxy::getSqlstate(array (
  0 => NULL,
))
proxy::getSqlstate returns '42000'
string(5) "42000"

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_sql_state()


Returns statistics about the client connection.

  • « MysqlndUhConnection::getSqlstate
  • MysqlndUhConnection::getThreadId »
  • PHP Manual
  • MysqlndUhConnection
  • Returns statistics about the client connection.

MysqlndUhConnection::getStatistics

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getStatistics — Returns statistics about the client connection.

Описание

public array MysqlndUhConnection::getStatistics ( mysqlnd_connection $connection )

Returns statistics about the client connection.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Connection statistics collected by mysqlnd.

Примеры

Пример #1 MysqlndUhConnection::getStatistics() example

<?php
class proxy extends MysqlndUhConnection {
 public function getStatistics($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getStatistics($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->get_connection_stats());
?>

Результат выполнения данного примера:

proxy::getStatistics(array (
  0 => NULL,
))
proxy::getStatistics returns array (
  'bytes_sent' => '73',
  'bytes_received' => '77',
  'packets_sent' => '2',
  'packets_received' => '2',
  'protocol_overhead_in' => '8',
  'protocol_overhead_out' => '8',
  'bytes_received_ok_packet' => '0',
  'bytes_received_eof_packet' => '0',
  'bytes_received_rset_header_packet' => '0',
  'bytes_received_rset_field_meta_packet' => '0',
  'bytes_received_rset_row_packet' => '0',
  'bytes_received_prepare_response_packet' => '0',
  'bytes_received_change_user_packet' => '0',
  'packets_sent_command' => '0',
  'packets_received_ok' => '0',
  'packets_received_eof' => '0',
  'packets_received_rset_header' => '0',
  'packets_received_rset_field_meta' => '0',
  'packets_received_rset_row' => '0',
  'packets_received_prepare_response' => '0',
  'packets_received_change_user' => '0',
  'result_set_queries' => '0',
  'non_result_set_queries' => '0',
  'no_index_used' => '0',
  'bad_index_used' => '0',
  'slow_queries' => '0',
  'buffered_sets' => '0',
  'unbuffered_sets' => '0',
  'ps_buffered_sets' => '0',
  'ps_unbuffered_sets' => '0',
  'flushed_normal_sets' => '0',
  'flushed_ps_sets' => '0',
  'ps_prepared_never_executed' => '0',
  'ps_prepared_once_executed' => '0',
  'rows_fetched_from_server_normal' => '0',
  'rows_fetched_from_server_ps' => '0',
  'rows_buffered_from_client_normal' => '0',
  'rows_buffered_from_client_ps' => '0',
  'rows_fetched_from_client_normal_buffered' => '0',
  'rows_fetched_from_client_normal_unbuffered' => '0',
  'rows_fetched_from_client_ps_buffered' => '0',
  'rows_fetched_from_client_ps_unbuffered' => '0',
  'rows_fetched_from_client_ps_cursor' => '0',
  'rows_affected_normal' => '0',
  'rows_affected_ps' => '0',
  'rows_skipped_normal' => '0',
  'rows_skipped_ps' => '0',
  'copy_on_write_saved' => '0',
  'copy_on_write_performed' => '0',
  'command_buffer_too_small' => '0',
  'connect_success' => '1',
  'connect_failure' => '0',
  'connection_reused' => '0',
  'reconnect' => '0',
  'pconnect_success' => '0',
  'active_connections' => '1',
  'active_persistent_connections' => '0',
  'explicit_close' => '0',
  'implicit_close' => '0',
  'disconnect_close' => '0',
  'in_middle_of_command_close' => '0',
  'explicit_free_result' => '0',
  'implicit_free_result' => '0',
  'explicit_stmt_close' => '0',
  'implicit_stmt_close' => '0',
  'mem_emalloc_count' => '0',
  'mem_emalloc_amount' => '0',
  'mem_ecalloc_count' => '0',
  'mem_ecalloc_amount' => '0',
  'mem_erealloc_count' => '0',
  'mem_erealloc_amount' => '0',
  'mem_efree_count' => '0',
  'mem_efree_amount' => '0',
  'mem_malloc_count' => '0',
  'mem_malloc_amount' => '0',
  'mem_calloc_count' => '0',
  'mem_calloc_amount' => '0',
  'mem_realloc_count' => '0',
  'mem_realloc_amount' => '0',
  'mem_free_count' => '0',
  'mem_free_amount' => '0',
  'mem_estrndup_count' => '0',
  'mem_strndup_count' => '0',
  'mem_estndup_count' => '0',
  'mem_strdup_count' => '0',
  'proto_text_fetched_null' => '0',
  'proto_text_fetched_bit' => '0',
  'proto_text_fetched_tinyint' => '0',
  'proto_text_fetched_short' => '0',
  'proto_text_fetched_int24' => '0',
  'proto_text_fetched_int' => '0',
  'proto_text_fetched_bigint' => '0',
  'proto_text_fetched_decimal' => '0',
  'proto_text_fetched_float' => '0',
  'proto_text_fetched_double' => '0',
  'proto_text_fetched_date' => '0',
  'proto_text_fetched_year' => '0',
  'proto_text_fetched_time' => '0',
  'proto_text_fetched_datetime' => '0',
  'proto_text_fetched_timestamp' => '0',
  'proto_text_fetched_string' => '0',
  'proto_text_fetched_blob' => '0',
  'proto_text_fetched_enum' => '0',
  'proto_text_fetched_set' => '0',
  'proto_text_fetched_geometry' => '0',
  'proto_text_fetched_other' => '0',
  'proto_binary_fetched_null' => '0',
  'proto_binary_fetched_bit' => '0',
  'proto_binary_fetched_tinyint' => '0',
  'proto_binary_fetched_short' => '0',
  'proto_binary_fetched_int24' => '0',
  'proto_binary_fetched_int' => '0',
  'proto_binary_fetched_bigint' => '0',
  'proto_binary_fetched_decimal' => '0',
  'proto_binary_fetched_float' => '0',
  'proto_binary_fetched_double' => '0',
  'proto_binary_fetched_date' => '0',
  'proto_binary_fetched_year' => '0',
  'proto_binary_fetched_time' => '0',
  'proto_binary_fetched_datetime' => '0',
  'proto_binary_fetched_timestamp' => '0',
  'proto_binary_fetched_string' => '0',
  'proto_binary_fetched_blob' => '0',
  'proto_binary_fetched_enum' => '0',
  'proto_binary_fetched_set' => '0',
  'proto_binary_fetched_geometry' => '0',
  'proto_binary_fetched_other' => '0',
  'init_command_executed_count' => '0',
  'init_command_failed_count' => '0',
  'com_quit' => '0',
  'com_init_db' => '0',
  'com_query' => '0',
  'com_field_list' => '0',
  'com_create_db' => '0',
  'com_drop_db' => '0',
  'com_refresh' => '0',
  'com_shutdown' => '0',
  'com_statistics' => '0',
  'com_process_info' => '0',
  'com_connect' => '0',
  'com_process_kill' => '0',
  'com_debug' => '0',
  'com_ping' => '0',
  'com_time' => '0',
  'com_delayed_insert' => '0',
  'com_change_user' => '0',
  'com_binlog_dump' => '0',
  'com_table_dump' => '0',
  'com_connect_out' => '0',
  'com_register_slave' => '0',
  'com_stmt_prepare' => '0',
  'com_stmt_execute' => '0',
  'com_stmt_send_long_data' => '0',
  'com_stmt_close' => '0',
  'com_stmt_reset' => '0',
  'com_stmt_set_option' => '0',
  'com_stmt_fetch' => '0',
  'com_deamon' => '0',
  'bytes_received_real_data_normal' => '0',
  'bytes_received_real_data_ps' => '0',
)
array(160) {
  ["bytes_sent"]=>
  string(2) "73"
  ["bytes_received"]=>
  string(2) "77"
  ["packets_sent"]=>
  string(1) "2"
  ["packets_received"]=>
  string(1) "2"
  ["protocol_overhead_in"]=>
  string(1) "8"
  ["protocol_overhead_out"]=>
  string(1) "8"
  ["bytes_received_ok_packet"]=>
  string(1) "0"
  ["bytes_received_eof_packet"]=>
  string(1) "0"
  ["bytes_received_rset_header_packet"]=>
  string(1) "0"
  ["bytes_received_rset_field_meta_packet"]=>
  string(1) "0"
  ["bytes_received_rset_row_packet"]=>
  string(1) "0"
  ["bytes_received_prepare_response_packet"]=>
  string(1) "0"
  ["bytes_received_change_user_packet"]=>
  string(1) "0"
  ["packets_sent_command"]=>
  string(1) "0"
  ["packets_received_ok"]=>
  string(1) "0"
  ["packets_received_eof"]=>
  string(1) "0"
  ["packets_received_rset_header"]=>
  string(1) "0"
  ["packets_received_rset_field_meta"]=>
  string(1) "0"
  ["packets_received_rset_row"]=>
  string(1) "0"
  ["packets_received_prepare_response"]=>
  string(1) "0"
  ["packets_received_change_user"]=>
  string(1) "0"
  ["result_set_queries"]=>
  string(1) "0"
  ["non_result_set_queries"]=>
  string(1) "0"
  ["no_index_used"]=>
  string(1) "0"
  ["bad_index_used"]=>
  string(1) "0"
  ["slow_queries"]=>
  string(1) "0"
  ["buffered_sets"]=>
  string(1) "0"
  ["unbuffered_sets"]=>
  string(1) "0"
  ["ps_buffered_sets"]=>
  string(1) "0"
  ["ps_unbuffered_sets"]=>
  string(1) "0"
  ["flushed_normal_sets"]=>
  string(1) "0"
  ["flushed_ps_sets"]=>
  string(1) "0"
  ["ps_prepared_never_executed"]=>
  string(1) "0"
  ["ps_prepared_once_executed"]=>
  string(1) "0"
  ["rows_fetched_from_server_normal"]=>
  string(1) "0"
  ["rows_fetched_from_server_ps"]=>
  string(1) "0"
  ["rows_buffered_from_client_normal"]=>
  string(1) "0"
  ["rows_buffered_from_client_ps"]=>
  string(1) "0"
  ["rows_fetched_from_client_normal_buffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_normal_unbuffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_buffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_unbuffered"]=>
  string(1) "0"
  ["rows_fetched_from_client_ps_cursor"]=>
  string(1) "0"
  ["rows_affected_normal"]=>
  string(1) "0"
  ["rows_affected_ps"]=>
  string(1) "0"
  ["rows_skipped_normal"]=>
  string(1) "0"
  ["rows_skipped_ps"]=>
  string(1) "0"
  ["copy_on_write_saved"]=>
  string(1) "0"
  ["copy_on_write_performed"]=>
  string(1) "0"
  ["command_buffer_too_small"]=>
  string(1) "0"
  ["connect_success"]=>
  string(1) "1"
  ["connect_failure"]=>
  string(1) "0"
  ["connection_reused"]=>
  string(1) "0"
  ["reconnect"]=>
  string(1) "0"
  ["pconnect_success"]=>
  string(1) "0"
  ["active_connections"]=>
  string(1) "1"
  ["active_persistent_connections"]=>
  string(1) "0"
  ["explicit_close"]=>
  string(1) "0"
  ["implicit_close"]=>
  string(1) "0"
  ["disconnect_close"]=>
  string(1) "0"
  ["in_middle_of_command_close"]=>
  string(1) "0"
  ["explicit_free_result"]=>
  string(1) "0"
  ["implicit_free_result"]=>
  string(1) "0"
  ["explicit_stmt_close"]=>
  string(1) "0"
  ["implicit_stmt_close"]=>
  string(1) "0"
  ["mem_emalloc_count"]=>
  string(1) "0"
  ["mem_emalloc_amount"]=>
  string(1) "0"
  ["mem_ecalloc_count"]=>
  string(1) "0"
  ["mem_ecalloc_amount"]=>
  string(1) "0"
  ["mem_erealloc_count"]=>
  string(1) "0"
  ["mem_erealloc_amount"]=>
  string(1) "0"
  ["mem_efree_count"]=>
  string(1) "0"
  ["mem_efree_amount"]=>
  string(1) "0"
  ["mem_malloc_count"]=>
  string(1) "0"
  ["mem_malloc_amount"]=>
  string(1) "0"
  ["mem_calloc_count"]=>
  string(1) "0"
  ["mem_calloc_amount"]=>
  string(1) "0"
  ["mem_realloc_count"]=>
  string(1) "0"
  ["mem_realloc_amount"]=>
  string(1) "0"
  ["mem_free_count"]=>
  string(1) "0"
  ["mem_free_amount"]=>
  string(1) "0"
  ["mem_estrndup_count"]=>
  string(1) "0"
  ["mem_strndup_count"]=>
  string(1) "0"
  ["mem_estndup_count"]=>
  string(1) "0"
  ["mem_strdup_count"]=>
  string(1) "0"
  ["proto_text_fetched_null"]=>
  string(1) "0"
  ["proto_text_fetched_bit"]=>
  string(1) "0"
  ["proto_text_fetched_tinyint"]=>
  string(1) "0"
  ["proto_text_fetched_short"]=>
  string(1) "0"
  ["proto_text_fetched_int24"]=>
  string(1) "0"
  ["proto_text_fetched_int"]=>
  string(1) "0"
  ["proto_text_fetched_bigint"]=>
  string(1) "0"
  ["proto_text_fetched_decimal"]=>
  string(1) "0"
  ["proto_text_fetched_float"]=>
  string(1) "0"
  ["proto_text_fetched_double"]=>
  string(1) "0"
  ["proto_text_fetched_date"]=>
  string(1) "0"
  ["proto_text_fetched_year"]=>
  string(1) "0"
  ["proto_text_fetched_time"]=>
  string(1) "0"
  ["proto_text_fetched_datetime"]=>
  string(1) "0"
  ["proto_text_fetched_timestamp"]=>
  string(1) "0"
  ["proto_text_fetched_string"]=>
  string(1) "0"
  ["proto_text_fetched_blob"]=>
  string(1) "0"
  ["proto_text_fetched_enum"]=>
  string(1) "0"
  ["proto_text_fetched_set"]=>
  string(1) "0"
  ["proto_text_fetched_geometry"]=>
  string(1) "0"
  ["proto_text_fetched_other"]=>
  string(1) "0"
  ["proto_binary_fetched_null"]=>
  string(1) "0"
  ["proto_binary_fetched_bit"]=>
  string(1) "0"
  ["proto_binary_fetched_tinyint"]=>
  string(1) "0"
  ["proto_binary_fetched_short"]=>
  string(1) "0"
  ["proto_binary_fetched_int24"]=>
  string(1) "0"
  ["proto_binary_fetched_int"]=>
  string(1) "0"
  ["proto_binary_fetched_bigint"]=>
  string(1) "0"
  ["proto_binary_fetched_decimal"]=>
  string(1) "0"
  ["proto_binary_fetched_float"]=>
  string(1) "0"
  ["proto_binary_fetched_double"]=>
  string(1) "0"
  ["proto_binary_fetched_date"]=>
  string(1) "0"
  ["proto_binary_fetched_year"]=>
  string(1) "0"
  ["proto_binary_fetched_time"]=>
  string(1) "0"
  ["proto_binary_fetched_datetime"]=>
  string(1) "0"
  ["proto_binary_fetched_timestamp"]=>
  string(1) "0"
  ["proto_binary_fetched_string"]=>
  string(1) "0"
  ["proto_binary_fetched_blob"]=>
  string(1) "0"
  ["proto_binary_fetched_enum"]=>
  string(1) "0"
  ["proto_binary_fetched_set"]=>
  string(1) "0"
  ["proto_binary_fetched_geometry"]=>
  string(1) "0"
  ["proto_binary_fetched_other"]=>
  string(1) "0"
  ["init_command_executed_count"]=>
  string(1) "0"
  ["init_command_failed_count"]=>
  string(1) "0"
  ["com_quit"]=>
  string(1) "0"
  ["com_init_db"]=>
  string(1) "0"
  ["com_query"]=>
  string(1) "0"
  ["com_field_list"]=>
  string(1) "0"
  ["com_create_db"]=>
  string(1) "0"
  ["com_drop_db"]=>
  string(1) "0"
  ["com_refresh"]=>
  string(1) "0"
  ["com_shutdown"]=>
  string(1) "0"
  ["com_statistics"]=>
  string(1) "0"
  ["com_process_info"]=>
  string(1) "0"
  ["com_connect"]=>
  string(1) "0"
  ["com_process_kill"]=>
  string(1) "0"
  ["com_debug"]=>
  string(1) "0"
  ["com_ping"]=>
  string(1) "0"
  ["com_time"]=>
  string(1) "0"
  ["com_delayed_insert"]=>
  string(1) "0"
  ["com_change_user"]=>
  string(1) "0"
  ["com_binlog_dump"]=>
  string(1) "0"
  ["com_table_dump"]=>
  string(1) "0"
  ["com_connect_out"]=>
  string(1) "0"
  ["com_register_slave"]=>
  string(1) "0"
  ["com_stmt_prepare"]=>
  string(1) "0"
  ["com_stmt_execute"]=>
  string(1) "0"
  ["com_stmt_send_long_data"]=>
  string(1) "0"
  ["com_stmt_close"]=>
  string(1) "0"
  ["com_stmt_reset"]=>
  string(1) "0"
  ["com_stmt_set_option"]=>
  string(1) "0"
  ["com_stmt_fetch"]=>
  string(1) "0"
  ["com_deamon"]=>
  string(1) "0"
  ["bytes_received_real_data_normal"]=>
  string(1) "0"
  ["bytes_received_real_data_ps"]=>
  string(1) "0"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_get_connection_stats() - Возвращает статистику соединения с клиентом


Returns the thread ID for the current connection

  • « MysqlndUhConnection::getStatistics
  • MysqlndUhConnection::getWarningCount »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the thread ID for the current connection

MysqlndUhConnection::getThreadId

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getThreadId — Returns the thread ID for the current connection

Описание

public int MysqlndUhConnection::getThreadId ( mysqlnd_connection $connection )

Returns the thread ID for the current connection.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Connection thread id.

Примеры

Пример #1 MysqlndUhConnection::getThreadId() example

<?php
class proxy extends MysqlndUhConnection {
 public function getThreadId($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getThreadId($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->thread_id);
?>

Результат выполнения данного примера:

proxy::getThreadId(array (
  0 => NULL,
))
proxy::getThreadId returns 27646
int(27646)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_thread_id() - Возвращает ID процесса текущего подключения
  • mysql_thread_id() - Возвращает идентификатор текущего потока


Returns the number of warnings from the last query for the given link

  • « MysqlndUhConnection::getThreadId
  • MysqlndUhConnection::init »
  • PHP Manual
  • MysqlndUhConnection
  • Returns the number of warnings from the last query for the given link

MysqlndUhConnection::getWarningCount

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::getWarningCount — Returns the number of warnings from the last query for the given link

Описание

public int MysqlndUhConnection::getWarningCount ( mysqlnd_connection $connection )

Returns the number of warnings from the last query for the given link.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Number of warnings.

Примеры

Пример #1 MysqlndUhConnection::getWarningCount() example

<?php
class proxy extends MysqlndUhConnection {
 public function getWarningCount($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::getWarningCount($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
var_dump($mysqli->warning_count);
?>

Результат выполнения данного примера:

proxy::getWarningCount(array (
  0 => NULL,
))
proxy::getWarningCount returns 0
int(0)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_warning_count() - Возвращает количество предупреждений из последнего запроса заданного подключения


Initialize mysqlnd connection

  • « MysqlndUhConnection::getWarningCount
  • MysqlndUhConnection::killConnection »
  • PHP Manual
  • MysqlndUhConnection
  • Initialize mysqlnd connection

MysqlndUhConnection::init

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::init — Initialize mysqlnd connection

Описание

public bool MysqlndUhConnection::init ( mysqlnd_connection $connection )

Initialize mysqlnd connection. This is an mysqlnd internal call to initialize the connection object.

Замечание:

Failing to call the parent implementation may cause memory leaks or crash PHP. This is not considered a bug. Please, keep in mind that the mysqlnd library functions have never been designed to be exposed to the user space.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::init() example

<?php
class proxy extends MysqlndUhConnection {
 public function init($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::init($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
?>

Результат выполнения данного примера:

proxy::init(array (
  0 => NULL,
))
proxy::init returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Asks the server to kill a MySQL thread

  • « MysqlndUhConnection::init
  • MysqlndUhConnection::listFields »
  • PHP Manual
  • MysqlndUhConnection
  • Asks the server to kill a MySQL thread

MysqlndUhConnection::killConnection

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::killConnection — Asks the server to kill a MySQL thread

Описание

public bool MysqlndUhConnection::killConnection ( mysqlnd_connection $connection , int $pid )

Asks the server to kill a MySQL thread.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

pid

Thread Id of the connection to be killed.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::kill() example

<?php
class proxy extends MysqlndUhConnection {
 public function killConnection($res, $pid) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::killConnection($res, $pid);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->kill($mysqli->thread_id);
?>

Результат выполнения данного примера:

proxy::killConnection(array (
  0 => NULL,
  1 => 27650,
))
proxy::killConnection returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_kill() - Запрос для сервера завершить выполнение процесса MySQL


List MySQL table fields

  • « MysqlndUhConnection::killConnection
  • MysqlndUhConnection::listMethod »
  • PHP Manual
  • MysqlndUhConnection
  • List MySQL table fields

MysqlndUhConnection::listFields

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::listFields — List MySQL table fields

Описание

public array MysqlndUhConnection::listFields ( mysqlnd_connection $connection , string $table , string $achtung_wild )

List MySQL table fields.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

table

The name of the table that's being queried.

pattern

Name pattern.

Возвращаемые значения

Примеры

Пример #1 MysqlndUhConnection::listFields() example

<?php
class proxy extends MysqlndUhConnection {
 public function listFields($res, $table, $pattern) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::listFields($res, $table, $pattern);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysql = mysql_connect("localhost", "root", "");
mysql_select_db("test", $mysql);
mysql_query("DROP TABLE IF EXISTS test_a", $mysql);
mysql_query("CREATE TABLE test_a(id INT, col1 VARCHAR(255))", $mysql);
$res = mysql_list_fields("test", "test_a", $mysql);
printf("num_rows = %d\n", mysql_num_rows($res));
while ($row = mysql_fetch_assoc($res))
 var_dump($row);
?>

Результат выполнения данного примера:

proxy::listFields(array (
  0 => NULL,
  1 => 'test_a',
  2 => '',
))
proxy::listFields returns NULL
num_rows = 0

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysql_list_fields() - Возвращает список колонок таблицы


Wrapper for assorted list commands

  • « MysqlndUhConnection::listFields
  • MysqlndUhConnection::moreResults »
  • PHP Manual
  • MysqlndUhConnection
  • Wrapper for assorted list commands

MysqlndUhConnection::listMethod

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::listMethod — Wrapper for assorted list commands

Описание

public void MysqlndUhConnection::listMethod ( mysqlnd_connection $connection , string $query , string $achtung_wild , string $par1 )

Wrapper for assorted list commands.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

query

SHOW command to be executed.

achtung_wild

par1

Возвращаемые значения

Возвращаемые значения

TODO

Примеры

Пример #1 MysqlndUhConnection::listMethod() example

<?php
class proxy extends MysqlndUhConnection {
 public function listMethod($res, $query, $pattern, $par1) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::listMethod($res, $query, $pattern, $par1);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysql = mysql_connect("localhost", "root", "");
$res = mysql_list_dbs($mysql);
printf("num_rows = %d\n", mysql_num_rows($res));
while ($row = mysql_fetch_assoc($res))
 var_dump($row);
?>

Результат выполнения данного примера:

proxy::listMethod(array (
  0 => NULL,
  1 => 'SHOW DATABASES',
  2 => '',
  3 => '',
))
proxy::listMethod returns NULL
num_rows = 6
array(1) {
  ["Database"]=>
  string(18) "information_schema"
}
array(1) {
  ["Database"]=>
  string(5) "mysql"
}
array(1) {
  ["Database"]=>
  string(8) "oxid_new"
}
array(1) {
  ["Database"]=>
  string(7) "phptest"
}
array(1) {
  ["Database"]=>
  string(7) "pushphp"
}
array(1) {
  ["Database"]=>
  string(4) "test"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysql_list_dbs() - Возвращает список баз данных, доступных на сервере


Check if there are any more query results from a multi query

  • « MysqlndUhConnection::listMethod
  • MysqlndUhConnection::nextResult »
  • PHP Manual
  • MysqlndUhConnection
  • Check if there are any more query results from a multi query

MysqlndUhConnection::moreResults

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::moreResults — Check if there are any more query results from a multi query

Описание

public bool MysqlndUhConnection::moreResults ( mysqlnd_connection $connection )

Check if there are any more query results from a multi query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::moreResults() example

<?php
class proxy extends MysqlndUhConnection {
 public function moreResults($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::moreResults($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1 AS _one; SELECT 2 AS _two");
do {
  $res = $mysqli->store_result();
  var_dump($res->fetch_assoc());
  printf("%s\n", str_repeat("-", 40));
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Результат выполнения данного примера:

array(1) {
  ["_one"]=>
  string(1) "1"
}
----------------------------------------
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults returns true
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults returns true
array(1) {
  ["_two"]=>
  string(1) "2"
}
----------------------------------------
proxy::moreResults(array (
  0 => NULL,
))
proxy::moreResults returns false

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_more_results() - Проверка, есть ли еще результаты в мультизапросе


Prepare next result from multi_query

  • « MysqlndUhConnection::moreResults
  • MysqlndUhConnection::ping »
  • PHP Manual
  • MysqlndUhConnection
  • Prepare next result from multi_query

MysqlndUhConnection::nextResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::nextResult — Prepare next result from multi_query

Описание

public bool MysqlndUhConnection::nextResult ( mysqlnd_connection $connection )

Prepare next result from multi_query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::nextResult() example

<?php
class proxy extends MysqlndUhConnection {
 public function nextResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::nextResult($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1 AS _one; SELECT 2 AS _two");
do {
  $res = $mysqli->store_result();
  var_dump($res->fetch_assoc());
  printf("%s\n", str_repeat("-", 40));
} while ($mysqli->more_results() && $mysqli->next_result());
?>

Результат выполнения данного примера:

array(1) {
  ["_one"]=>
  string(1) "1"
}
----------------------------------------
proxy::nextResult(array (
  0 => NULL,
))
proxy::nextResult returns true
array(1) {
  ["_two"]=>
  string(1) "2"
}
----------------------------------------

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_next_result() - Подготовка следующего доступного результирующего набора из multi_query


Pings a server connection, or tries to reconnect if the connection has gone down

  • « MysqlndUhConnection::nextResult
  • MysqlndUhConnection::query »
  • PHP Manual
  • MysqlndUhConnection
  • Pings a server connection, or tries to reconnect if the connection has gone down

MysqlndUhConnection::ping

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::ping — Pings a server connection, or tries to reconnect if the connection has gone down

Описание

public bool MysqlndUhConnection::ping ( mysqlnd_connection $connection )

Pings a server connection, or tries to reconnect if the connection has gone down.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::ping() example

<?php
class proxy extends MysqlndUhConnection {
 public function ping($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::ping($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ping();
?>

Результат выполнения данного примера:

proxy::ping(array (
  0 => NULL,
))
proxy::ping returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_ping() - Проверяет работоспособность соединения или пытается переподключиться, если соединение разорвано
  • mysql_ping() - Проверяет соединение с сервером и пересоединяется при необходимости


Performs a query on the database

  • « MysqlndUhConnection::ping
  • MysqlndUhConnection::queryReadResultsetHeader »
  • PHP Manual
  • MysqlndUhConnection
  • Performs a query on the database

MysqlndUhConnection::query

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::query — Performs a query on the database

Описание

public bool MysqlndUhConnection::query ( mysqlnd_connection $connection , string $query )

Performs a query on the database (COM_QUERY).

Список параметров

connection

Mysqlnd connection handle. Do not modify!

query

The query string.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::query() example

<?php
class proxy extends MysqlndUhConnection {
 public function query($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $query = "SELECT 'How about query rewriting?'";
  $ret = parent::query($res, $query);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Welcome mysqlnd_uh!' FROM DUAL");
var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Welcome mysqlnd_uh!\' FROM DUAL',
))
proxy::query returns true
array(1) {
  ["How about query rewriting?"]=>
  string(26) "How about query rewriting?"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_query() - Выполняет запрос к базе данных
  • mysql_query() - Посылает запрос MySQL


Read a result set header

  • « MysqlndUhConnection::query
  • MysqlndUhConnection::reapQuery »
  • PHP Manual
  • MysqlndUhConnection
  • Read a result set header

MysqlndUhConnection::queryReadResultsetHeader

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::queryReadResultsetHeader — Read a result set header

Описание

public bool MysqlndUhConnection::queryReadResultsetHeader ( mysqlnd_connection $connection , mysqlnd_statement $mysqlnd_stmt )

Read a result set header.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

mysqlnd_stmt

Mysqlnd statement handle. Do not modify! Set to NULL, if function is not used in the context of a prepared statement.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::queryReadResultsetHeader() example

<?php
class proxy extends MysqlndUhConnection {
 public function queryReadResultsetHeader($res, $stmt) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::queryReadResultsetHeader($res, $stmt);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Welcome mysqlnd_uh!' FROM DUAL");
var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

proxy::queryReadResultsetHeader(array (
  0 => NULL,
  1 => NULL,
))
proxy::queryReadResultsetHeader returns true
array(1) {
  ["Welcome mysqlnd_uh!"]=>
  string(19) "Welcome mysqlnd_uh!"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Get result from async query

  • « MysqlndUhConnection::queryReadResultsetHeader
  • MysqlndUhConnection::refreshServer »
  • PHP Manual
  • MysqlndUhConnection
  • Get result from async query

MysqlndUhConnection::reapQuery

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::reapQuery — Get result from async query

Описание

public bool MysqlndUhConnection::reapQuery ( mysqlnd_connection $connection )

Get result from async query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::reapQuery() example

<?php
class proxy extends MysqlndUhConnection {
 public function reapQuery($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::reapQuery($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$conn1 = new mysqli("localhost", "root", "", "test");
$conn2 = new mysqli("localhost", "root", "", "test");

$conn1->query("SELECT 1 as 'one', SLEEP(1) AS _sleep FROM DUAL", MYSQLI_ASYNC |  MYSQLI_USE_RESULT);
$conn2->query("SELECT 1.1 as 'one dot one' FROM DUAL", MYSQLI_ASYNC |  MYSQLI_USE_RESULT);

$links = array(
 $conn1->thread_id => array('link' => $conn1, 'processed' => false),
 $conn2->thread_id => array('link' => $conn2, 'processed' => false)
);

$saved_errors = array();
do {
 $poll_links = $poll_errors = $poll_reject = array();
 foreach ($links as $thread_id => $link) {
  if (!$link['processed']) {
   $poll_links[] = $link['link'];
   $poll_errors[] = $link['link'];
   $poll_reject[] = $link['link'];
  }
 }
 if (0 == count($poll_links))
  break;

 if (0 == ($num_ready = mysqli_poll($poll_links, $poll_errors, $poll_reject, 0, 200000)))
  continue;

 if (!empty($poll_errors)) {
  die(var_dump($poll_errors));
 }

 foreach ($poll_links as $link) {
  $thread_id = mysqli_thread_id($link);
  $links[$thread_id]['processed'] = true;

  if (is_object($res = mysqli_reap_async_query($link))) {
   // result set object
   while ($row = mysqli_fetch_assoc($res)) {
    // eat up all results
    var_dump($row);
   }
   mysqli_free_result($res);
  } else {
   // either there is no result (no SELECT) or there is an error
   if (mysqli_errno($link) > 0) {
    $saved_errors[$thread_id] = mysqli_errno($link);
    printf("'%s' caused %d\n", $links[$thread_id]['query'],     mysqli_errno($link));
   }
  }
 }
} while (true);
?>

Результат выполнения данного примера:

proxy::reapQuery(array (
  0 => NULL,
))
proxy::reapQuery returns true
array(1) {
  ["one dot one"]=>
  string(3) "1.1"
}
proxy::reapQuery(array (
  0 => NULL,
))
proxy::reapQuery returns true
array(2) {
  ["one"]=>
  string(1) "1"
  ["_sleep"]=>
  string(1) "0"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_async_query()


Flush or reset tables and caches

  • « MysqlndUhConnection::reapQuery
  • MysqlndUhConnection::restartPSession »
  • PHP Manual
  • MysqlndUhConnection
  • Flush or reset tables and caches

MysqlndUhConnection::refreshServer

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::refreshServer — Flush or reset tables and caches

Описание

public bool MysqlndUhConnection::refreshServer ( mysqlnd_connection $connection , int $options )

Flush or reset tables and caches.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

options

What to refresh.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::refreshServer() example

<?php
class proxy extends MysqlndUhConnection {
 public function refreshServer($res, $option) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::refreshServer($res, $option);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
mysqli_refresh($mysqli, 1);
?>

Результат выполнения данного примера:

proxy::refreshServer(array (
  0 => NULL,
  1 => 1,
))
proxy::refreshServer returns false

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Restart a persistent mysqlnd connection

  • « MysqlndUhConnection::refreshServer
  • MysqlndUhConnection::selectDb »
  • PHP Manual
  • MysqlndUhConnection
  • Restart a persistent mysqlnd connection

MysqlndUhConnection::restartPSession

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::restartPSession — Restart a persistent mysqlnd connection

Описание

public bool MysqlndUhConnection::restartPSession ( mysqlnd_connection $connection )

Restart a persistent mysqlnd connection.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::restartPSession() example

<?php
class proxy extends MysqlndUhConnection {
 public function ping($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::ping($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ping();
?>

Результат выполнения данного примера:

proxy::restartPSession(array (
  0 => NULL,
))
proxy::restartPSession returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Selects the default database for database queries

  • « MysqlndUhConnection::restartPSession
  • MysqlndUhConnection::sendClose »
  • PHP Manual
  • MysqlndUhConnection
  • Selects the default database for database queries

MysqlndUhConnection::selectDb

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::selectDb — Selects the default database for database queries

Описание

public bool MysqlndUhConnection::selectDb ( mysqlnd_connection $connection , string $database )

Selects the default database for database queries.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

database

The database name.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::selectDb() example

<?php
class proxy extends MysqlndUhConnection {
 public function selectDb($res, $database) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::selectDb($res, $database);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->select_db("mysql");
?>

Результат выполнения данного примера:

proxy::selectDb(array (
  0 => NULL,
  1 => 'mysql',
))
proxy::selectDb returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_select_db() - Устанавливает базу данных для выполняемых запросов
  • mysql_select_db() - Выбирает базу данных MySQL


Sends a close command to MySQL

  • « MysqlndUhConnection::selectDb
  • MysqlndUhConnection::sendQuery »
  • PHP Manual
  • MysqlndUhConnection
  • Sends a close command to MySQL

MysqlndUhConnection::sendClose

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sendClose — Sends a close command to MySQL

Описание

public bool MysqlndUhConnection::sendClose ( mysqlnd_connection $connection )

Sends a close command to MySQL.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::sendClose() example

<?php
class proxy extends MysqlndUhConnection {
 public function sendClose($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sendClose($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->close();
?>

Результат выполнения данного примера:

proxy::sendClose(array (
  0 => NULL,
))
proxy::sendClose returns true
proxy::sendClose(array (
  0 => NULL,
))
proxy::sendClose returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Sends a query to MySQL

  • « MysqlndUhConnection::sendClose
  • MysqlndUhConnection::serverDumpDebugInformation »
  • PHP Manual
  • MysqlndUhConnection
  • Sends a query to MySQL

MysqlndUhConnection::sendQuery

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sendQuery — Sends a query to MySQL

Описание

public bool MysqlndUhConnection::sendQuery ( mysqlnd_connection $connection , string $query )

Sends a query to MySQL.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

query

The query string.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::sendQuery() example

<?php
class proxy extends MysqlndUhConnection {
 public function sendQuery($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sendQuery($res, $query);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 1");
?>

Результат выполнения данного примера:

proxy::sendQuery(array (
  0 => NULL,
  1 => 'SELECT 1',
))
proxy::sendQuery returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Dump debugging information into the log for the MySQL server

  • « MysqlndUhConnection::sendQuery
  • MysqlndUhConnection::setAutocommit »
  • PHP Manual
  • MysqlndUhConnection
  • Dump debugging information into the log for the MySQL server

MysqlndUhConnection::serverDumpDebugInformation

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::serverDumpDebugInformation — Dump debugging information into the log for the MySQL server

Описание

public bool MysqlndUhConnection::serverDumpDebugInformation ( mysqlnd_connection $connection )

Dump debugging information into the log for the MySQL server.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::serverDumpDebugInformation() example

<?php
class proxy extends MysqlndUhConnection {
 public function serverDumpDebugInformation($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::serverDumpDebugInformation($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->dump_debug_info();
?>

Результат выполнения данного примера:

proxy::serverDumpDebugInformation(array (
  0 => NULL,
))
proxy::serverDumpDebugInformation returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_dump_debug_info() - Журналирование отладочной информации


Turns on or off auto-committing database modifications

  • « MysqlndUhConnection::serverDumpDebugInformation
  • MysqlndUhConnection::setCharset »
  • PHP Manual
  • MysqlndUhConnection
  • Turns on or off auto-committing database modifications

MysqlndUhConnection::setAutocommit

(PECL mysqlnd-uh >= 1.0.1-alpha, PHP >= 5.4.0)

MysqlndUhConnection::setAutocommit — Turns on or off auto-committing database modifications

Описание

public bool MysqlndUhConnection::setAutocommit ( mysqlnd_connection $connection , int $mode )

Turns on or off auto-committing database modifications

Список параметров

connection

Mysqlnd connection handle. Do not modify!

mode

Whether to turn on auto-commit or not.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::setAutocommit() example

<?php
class proxy extends MysqlndUhConnection {
 public function setAutocommit($res, $mode) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::setAutocommit($res, $mode);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->autocommit(false);
$mysqli->autocommit(true);
?>

Результат выполнения данного примера:

proxy::setAutocommit(array (
  0 => NULL,
  1 => 0,
))
proxy::setAutocommit returns true
proxy::setAutocommit(array (
  0 => NULL,
  1 => 1,
))
proxy::setAutocommit returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_autocommit() - Включает или отключает автоматическую фиксацию изменений базы данных


Sets the default client character set

  • « MysqlndUhConnection::setAutocommit
  • MysqlndUhConnection::setClientOption »
  • PHP Manual
  • MysqlndUhConnection
  • Sets the default client character set

MysqlndUhConnection::setCharset

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setCharset — Sets the default client character set

Описание

public bool MysqlndUhConnection::setCharset ( mysqlnd_connection $connection , string $charset )

Sets the default client character set.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

charset

The charset to be set as default.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::setCharset() example

<?php
class proxy extends MysqlndUhConnection {
 public function setCharset($res, $charset) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::setCharset($res, $charset);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->set_charset("latin1");
?>

Результат выполнения данного примера:

proxy::setCharset(array (
  0 => NULL,
  1 => 'latin1',
))
proxy::setCharset returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_set_charset() - Задает набор символов по умолчанию


Sets a client option

  • « MysqlndUhConnection::setCharset
  • MysqlndUhConnection::setServerOption »
  • PHP Manual
  • MysqlndUhConnection
  • Sets a client option

MysqlndUhConnection::setClientOption

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setClientOption — Sets a client option

Описание

public bool MysqlndUhConnection::setClientOption ( mysqlnd_connection $connection , int $option , int $value )

Sets a client option.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

option

The option to be set.

value

Optional option value, if required.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::setClientOption() example

<?php
function client_option_to_string($option) {
 static $mapping = array(
  MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT => "MYSQLND_UH_MYSQLND_OPTION_OPT_CONNECT_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS => "MYSQLND_UH_MYSQLND_OPTION_OPT_COMPRESS",
  MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE => "MYSQLND_UH_MYSQLND_OPTION_OPT_NAMED_PIPE",
  MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND => "MYSQLND_UH_MYSQLND_OPTION_INIT_COMMAND",
  MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE => "MYSQLND_UH_MYSQLND_READ_DEFAULT_FILE",
  MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP => "MYSQLND_UH_MYSQLND_READ_DEFAULT_GROUP",
  MYSQLND_UH_MYSQLND_SET_CHARSET_DIR => "MYSQLND_UH_MYSQLND_SET_CHARSET_DIR",
  MYSQLND_UH_MYSQLND_SET_CHARSET_NAME => "MYSQLND_UH_MYSQLND_SET_CHARSET_NAME",
  MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE => "MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE",
  MYSQLND_UH_MYSQLND_OPT_PROTOCOL => "MYSQLND_UH_MYSQLND_OPT_PROTOCOL",
  MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME => "MYSQLND_UH_MYSQLND_SHARED_MEMORY_BASE_NAME",
  MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT => "MYSQLND_UH_MYSQLND_OPT_READ_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT => "MYSQLND_UH_MYSQLND_OPT_WRITE_TIMEOUT",
  MYSQLND_UH_MYSQLND_OPT_USE_RESULT => "MYSQLND_UH_MYSQLND_OPT_USE_RESULT",
  MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_USE_REMOTE_CONNECTION",
  MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_USE_EMBEDDED_CONNECTION",
  MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION => "MYSQLND_UH_MYSQLND_OPT_GUESS_CONNECTION",
  MYSQLND_UH_MYSQLND_SET_CLIENT_IP => "MYSQLND_UH_MYSQLND_SET_CLIENT_IP",
  MYSQLND_UH_MYSQLND_SECURE_AUTH => "MYSQLND_UH_MYSQLND_SECURE_AUTH",
  MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION => "MYSQLND_UH_MYSQLND_REPORT_DATA_TRUNCATION",
  MYSQLND_UH_MYSQLND_OPT_RECONNECT => "MYSQLND_UH_MYSQLND_OPT_RECONNECT",
  MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT => "MYSQLND_UH_MYSQLND_OPT_SSL_VERIFY_SERVER_CERT",
  MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE => "MYSQLND_UH_MYSQLND_OPT_NET_CMD_BUFFER_SIZE",
  MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE => "MYSQLND_UH_MYSQLND_OPT_NET_READ_BUFFER_SIZE",
  MYSQLND_UH_MYSQLND_OPT_SSL_KEY => "MYSQLND_UH_MYSQLND_OPT_SSL_KEY",
  MYSQLND_UH_MYSQLND_OPT_SSL_CERT => "MYSQLND_UH_MYSQLND_OPT_SSL_CERT",
  MYSQLND_UH_MYSQLND_OPT_SSL_CA => "MYSQLND_UH_MYSQLND_OPT_SSL_CA",
  MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH => "MYSQLND_UH_MYSQLND_OPT_SSL_CAPATH",
  MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER => "MYSQLND_UH_MYSQLND_OPT_SSL_CIPHER",
  MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE => "MYSQLND_UH_MYSQLND_OPT_SSL_PASSPHRASE",
  MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR => "MYSQLND_UH_SERVER_OPTION_PLUGIN_DIR",
  MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH => "MYSQLND_UH_SERVER_OPTION_DEFAULT_AUTH",
  MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP => "MYSQLND_UH_SERVER_OPTION_SET_CLIENT_IP"
 );
 if (version_compare(PHP_VERSION, '5.3.99-dev', '>')) {
  $mapping[MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET] = "MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET";
  $mapping[MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL] = "MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL";
 }
 if (defined("MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE")) {
  /* special mysqlnd build */
  $mapping["MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE"] = "MYSQLND_UH_MYSQLND_OPT_INT_AND_FLOAT_NATIVE";
 }
 return (isset($mapping[$option])) ? $mapping[$option] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function setClientOption($res, $option, $value) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Option '%s' set to %s\n", client_option_to_string($option), var_export($value, true));
  $ret = parent::setClientOption($res, $option, $value);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
?>

Результат выполнения данного примера:

proxy::setClientOption(array (
  0 => NULL,
  1 => 210,
  2 => 3221225472,
))
Option 'MYSQLND_UH_MYSQLND_OPT_MAX_ALLOWED_PACKET' set to 3221225472
proxy::setClientOption returns true
proxy::setClientOption(array (
  0 => NULL,
  1 => 211,
  2 => 'mysql_native_password',
))
Option 'MYSQLND_UH_MYSQLND_OPT_AUTH_PROTOCOL' set to 'mysql_native_password'
proxy::setClientOption returns true
proxy::setClientOption(array (
  0 => NULL,
  1 => 8,
  2 => 1,
))
Option 'MYSQLND_UH_MYSQLND_OPT_LOCAL_INFILE' set to 1
proxy::setClientOption returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_options() - Задание настроек


Sets a server option

  • « MysqlndUhConnection::setClientOption
  • MysqlndUhConnection::shutdownServer »
  • PHP Manual
  • MysqlndUhConnection
  • Sets a server option

MysqlndUhConnection::setServerOption

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::setServerOption — Sets a server option

Описание

public void MysqlndUhConnection::setServerOption ( mysqlnd_connection $connection , int $option )

Sets a server option.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

option

The option to be set.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::setServerOption() example

<?php
function server_option_to_string($option) {
 $ret = 'unknown';
 switch ($option) {
  case MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON:
   $ret = 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON';
   break;
  case MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_OFF:
   $ret = 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON';
   break;
 }
 return $ret;
}

class proxy extends MysqlndUhConnection {
 public function setServerOption($res, $option) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Option '%s' set\n", server_option_to_string($option));
  $ret = parent::setServerOption($res, $option);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->multi_query("SELECT 1; SELECT 2");
?>

Результат выполнения данного примера:

proxy::setServerOption(array (
  0 => NULL,
  1 => 0,
))
Option 'MYSQLND_UH_SERVER_OPTION_MULTI_STATEMENTS_ON' set
proxy::setServerOption returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_real_connect() - Устанавливает соединение с сервером mysql
  • mysqli_options() - Задание настроек
  • mysqli_multi_query() - Выполняет запрос к базе данных


The shutdownServer purpose

  • « MysqlndUhConnection::setServerOption
  • MysqlndUhConnection::simpleCommand »
  • PHP Manual
  • MysqlndUhConnection
  • The shutdownServer purpose

MysqlndUhConnection::shutdownServer

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::shutdownServer — The shutdownServer purpose

Описание

public void MysqlndUhConnection::shutdownServer ( string $MYSQLND_UH_RES_MYSQLND_NAME , string $"level" )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

MYSQLND_UH_RES_MYSQLND_NAME

"level"

Возвращаемые значения


Sends a basic COM_* command

  • « MysqlndUhConnection::shutdownServer
  • MysqlndUhConnection::simpleCommandHandleResponse »
  • PHP Manual
  • MysqlndUhConnection
  • Sends a basic COM_* command

MysqlndUhConnection::simpleCommand

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::simpleCommand — Sends a basic COM_* command

Описание

public bool MysqlndUhConnection::simpleCommand ( mysqlnd_connection $connection , int $command , string $arg , int $ok_packet , bool $silent , bool $ignore_upsert_status )

Sends a basic COM_* command to MySQL.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

command

The COM command to be send.

arg

Optional COM command arguments.

ok_packet

The OK packet type.

silent

Whether mysqlnd may emit errors.

ignore_upsert_status

Whether to ignore UPDATE/INSERT status.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::simpleCommand() example

<?php
function server_cmd_2_string($command) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_COM_SLEEP => "MYSQLND_UH_MYSQLND_COM_SLEEP",
  MYSQLND_UH_MYSQLND_COM_QUIT => "MYSQLND_UH_MYSQLND_COM_QUIT",
  MYSQLND_UH_MYSQLND_COM_INIT_DB => "MYSQLND_UH_MYSQLND_COM_INIT_DB",
  MYSQLND_UH_MYSQLND_COM_QUERY => "MYSQLND_UH_MYSQLND_COM_QUERY",
  MYSQLND_UH_MYSQLND_COM_FIELD_LIST => "MYSQLND_UH_MYSQLND_COM_FIELD_LIST",
  MYSQLND_UH_MYSQLND_COM_CREATE_DB => "MYSQLND_UH_MYSQLND_COM_CREATE_DB",
  MYSQLND_UH_MYSQLND_COM_DROP_DB => "MYSQLND_UH_MYSQLND_COM_DROP_DB",
  MYSQLND_UH_MYSQLND_COM_REFRESH => "MYSQLND_UH_MYSQLND_COM_REFRESH",
  MYSQLND_UH_MYSQLND_COM_SHUTDOWN => "MYSQLND_UH_MYSQLND_COM_SHUTDOWN",
  MYSQLND_UH_MYSQLND_COM_STATISTICS => "MYSQLND_UH_MYSQLND_COM_STATISTICS",
  MYSQLND_UH_MYSQLND_COM_PROCESS_INFO => "MYSQLND_UH_MYSQLND_COM_PROCESS_INFO",
  MYSQLND_UH_MYSQLND_COM_CONNECT => "MYSQLND_UH_MYSQLND_COM_CONNECT",
  MYSQLND_UH_MYSQLND_COM_PROCESS_KILL => "MYSQLND_UH_MYSQLND_COM_PROCESS_KILL",
  MYSQLND_UH_MYSQLND_COM_DEBUG => "MYSQLND_UH_MYSQLND_COM_DEBUG",
  MYSQLND_UH_MYSQLND_COM_PING => "MYSQLND_UH_MYSQLND_COM_PING",
  MYSQLND_UH_MYSQLND_COM_TIME => "MYSQLND_UH_MYSQLND_COM_TIME",
  MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT => "MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT",
  MYSQLND_UH_MYSQLND_COM_CHANGE_USER => "MYSQLND_UH_MYSQLND_COM_CHANGE_USER",
  MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP => "MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP",
  MYSQLND_UH_MYSQLND_COM_TABLE_DUMP => "MYSQLND_UH_MYSQLND_COM_TABLE_DUMP",
  MYSQLND_UH_MYSQLND_COM_CONNECT_OUT => "MYSQLND_UH_MYSQLND_COM_CONNECT_OUT",
  MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED => "MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED",
  MYSQLND_UH_MYSQLND_COM_STMT_PREPARE => "MYSQLND_UH_MYSQLND_COM_STMT_PREPARE",
  MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE => "MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE",
  MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA => "MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA",
  MYSQLND_UH_MYSQLND_COM_STMT_CLOSE => "MYSQLND_UH_MYSQLND_COM_STMT_CLOSE",
  MYSQLND_UH_MYSQLND_COM_STMT_RESET => "MYSQLND_UH_MYSQLND_COM_STMT_RESET",
  MYSQLND_UH_MYSQLND_COM_SET_OPTION => "MYSQLND_UH_MYSQLND_COM_SET_OPTION",
  MYSQLND_UH_MYSQLND_COM_STMT_FETCH => "MYSQLND_UH_MYSQLND_COM_STMT_FETCH",
  MYSQLND_UH_MYSQLND_COM_DAEMON => "MYSQLND_UH_MYSQLND_COM_DAEMON",
  MYSQLND_UH_MYSQLND_COM_END => "MYSQLND_UH_MYSQLND_COM_END",
 );
 return (isset($mapping[$command])) ? $mapping[$command] : 'unknown';
}

function ok_packet_2_string($ok_packet) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_PROT_GREET_PACKET => "MYSQLND_UH_MYSQLND_PROT_GREET_PACKET",
  MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET => "MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET",
  MYSQLND_UH_MYSQLND_PROT_OK_PACKET => "MYSQLND_UH_MYSQLND_PROT_OK_PACKET",
  MYSQLND_UH_MYSQLND_PROT_EOF_PACKET => "MYSQLND_UH_MYSQLND_PROT_EOF_PACKET",
  MYSQLND_UH_MYSQLND_PROT_CMD_PACKET => "MYSQLND_UH_MYSQLND_PROT_CMD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_ROW_PACKET => "MYSQLND_UH_MYSQLND_PROT_ROW_PACKET",
  MYSQLND_UH_MYSQLND_PROT_STATS_PACKET => "MYSQLND_UH_MYSQLND_PROT_STATS_PACKET",
  MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET => "MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET",
  MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET => "MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET",
  MYSQLND_UH_MYSQLND_PROT_LAST => "MYSQLND_UH_MYSQLND_PROT_LAST",
 );
 return (isset($mapping[$ok_packet])) ? $mapping[$ok_packet] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function simpleCommand($conn, $command, $arg, $ok_packet, $silent, $ignore_upsert_status) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Command '%s'\n", server_cmd_2_string($command));
  printf("OK packet '%s'\n",  ok_packet_2_string($ok_packet));
  $ret = parent::simpleCommand($conn, $command, $arg, $ok_packet, $silent, $ignore_upsert_status);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 1");
?>

Результат выполнения данного примера:

proxy::simpleCommand(array (
  0 => NULL,
  1 => 3,
  2 => 'SELECT 1',
  3 => 13,
  4 => false,
  5 => false,
))
Command 'MYSQLND_UH_MYSQLND_COM_QUERY'
OK packet 'MYSQLND_UH_MYSQLND_PROT_LAST'
proxy::simpleCommand returns true
:)proxy::simpleCommand(array (
  0 => NULL,
  1 => 1,
  2 => '',
  3 => 13,
  4 => true,
  5 => true,
))
Command 'MYSQLND_UH_MYSQLND_COM_QUIT'
OK packet 'MYSQLND_UH_MYSQLND_PROT_LAST'
proxy::simpleCommand returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Process a response for a basic COM_* command send to the client

  • « MysqlndUhConnection::simpleCommand
  • MysqlndUhConnection::sslSet »
  • PHP Manual
  • MysqlndUhConnection
  • Process a response for a basic COM_* command send to the client

MysqlndUhConnection::simpleCommandHandleResponse

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::simpleCommandHandleResponse — Process a response for a basic COM_* command send to the client

Описание

public bool MysqlndUhConnection::simpleCommandHandleResponse ( mysqlnd_connection $connection , int $ok_packet , bool $silent , int $command , bool $ignore_upsert_status )

Process a response for a basic COM_* command send to the client.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

ok_packet

The OK packet type.

silent

Whether mysqlnd may emit errors.

command

The COM command to process results from.

ignore_upsert_status

Whether to ignore UPDATE/INSERT status.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::simpleCommandHandleResponse() example

<?php
function server_cmd_2_string($command) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_COM_SLEEP => "MYSQLND_UH_MYSQLND_COM_SLEEP",
  MYSQLND_UH_MYSQLND_COM_QUIT => "MYSQLND_UH_MYSQLND_COM_QUIT",
  MYSQLND_UH_MYSQLND_COM_INIT_DB => "MYSQLND_UH_MYSQLND_COM_INIT_DB",
  MYSQLND_UH_MYSQLND_COM_QUERY => "MYSQLND_UH_MYSQLND_COM_QUERY",
  MYSQLND_UH_MYSQLND_COM_FIELD_LIST => "MYSQLND_UH_MYSQLND_COM_FIELD_LIST",
  MYSQLND_UH_MYSQLND_COM_CREATE_DB => "MYSQLND_UH_MYSQLND_COM_CREATE_DB",
  MYSQLND_UH_MYSQLND_COM_DROP_DB => "MYSQLND_UH_MYSQLND_COM_DROP_DB",
  MYSQLND_UH_MYSQLND_COM_REFRESH => "MYSQLND_UH_MYSQLND_COM_REFRESH",
  MYSQLND_UH_MYSQLND_COM_SHUTDOWN => "MYSQLND_UH_MYSQLND_COM_SHUTDOWN",
  MYSQLND_UH_MYSQLND_COM_STATISTICS => "MYSQLND_UH_MYSQLND_COM_STATISTICS",
  MYSQLND_UH_MYSQLND_COM_PROCESS_INFO => "MYSQLND_UH_MYSQLND_COM_PROCESS_INFO",
  MYSQLND_UH_MYSQLND_COM_CONNECT => "MYSQLND_UH_MYSQLND_COM_CONNECT",
  MYSQLND_UH_MYSQLND_COM_PROCESS_KILL => "MYSQLND_UH_MYSQLND_COM_PROCESS_KILL",
  MYSQLND_UH_MYSQLND_COM_DEBUG => "MYSQLND_UH_MYSQLND_COM_DEBUG",
  MYSQLND_UH_MYSQLND_COM_PING => "MYSQLND_UH_MYSQLND_COM_PING",
  MYSQLND_UH_MYSQLND_COM_TIME => "MYSQLND_UH_MYSQLND_COM_TIME",
  MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT => "MYSQLND_UH_MYSQLND_COM_DELAYED_INSERT",
  MYSQLND_UH_MYSQLND_COM_CHANGE_USER => "MYSQLND_UH_MYSQLND_COM_CHANGE_USER",
  MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP => "MYSQLND_UH_MYSQLND_COM_BINLOG_DUMP",
  MYSQLND_UH_MYSQLND_COM_TABLE_DUMP => "MYSQLND_UH_MYSQLND_COM_TABLE_DUMP",
  MYSQLND_UH_MYSQLND_COM_CONNECT_OUT => "MYSQLND_UH_MYSQLND_COM_CONNECT_OUT",
  MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED => "MYSQLND_UH_MYSQLND_COM_REGISTER_SLAVED",
  MYSQLND_UH_MYSQLND_COM_STMT_PREPARE => "MYSQLND_UH_MYSQLND_COM_STMT_PREPARE",
  MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE => "MYSQLND_UH_MYSQLND_COM_STMT_EXECUTE",
  MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA => "MYSQLND_UH_MYSQLND_COM_STMT_SEND_LONG_DATA",
  MYSQLND_UH_MYSQLND_COM_STMT_CLOSE => "MYSQLND_UH_MYSQLND_COM_STMT_CLOSE",
  MYSQLND_UH_MYSQLND_COM_STMT_RESET => "MYSQLND_UH_MYSQLND_COM_STMT_RESET",
  MYSQLND_UH_MYSQLND_COM_SET_OPTION => "MYSQLND_UH_MYSQLND_COM_SET_OPTION",
  MYSQLND_UH_MYSQLND_COM_STMT_FETCH => "MYSQLND_UH_MYSQLND_COM_STMT_FETCH",
  MYSQLND_UH_MYSQLND_COM_DAEMON => "MYSQLND_UH_MYSQLND_COM_DAEMON",
  MYSQLND_UH_MYSQLND_COM_END => "MYSQLND_UH_MYSQLND_COM_END",
 );
 return (isset($mapping[$command])) ? $mapping[$command] : 'unknown';
}

function ok_packet_2_string($ok_packet) {
 $mapping = array(
  MYSQLND_UH_MYSQLND_PROT_GREET_PACKET => "MYSQLND_UH_MYSQLND_PROT_GREET_PACKET",
  MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET => "MYSQLND_UH_MYSQLND_PROT_AUTH_PACKET",
  MYSQLND_UH_MYSQLND_PROT_OK_PACKET => "MYSQLND_UH_MYSQLND_PROT_OK_PACKET",
  MYSQLND_UH_MYSQLND_PROT_EOF_PACKET => "MYSQLND_UH_MYSQLND_PROT_EOF_PACKET",
  MYSQLND_UH_MYSQLND_PROT_CMD_PACKET => "MYSQLND_UH_MYSQLND_PROT_CMD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_HEADER_PACKET",
  MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET => "MYSQLND_UH_MYSQLND_PROT_RSET_FLD_PACKET",
  MYSQLND_UH_MYSQLND_PROT_ROW_PACKET => "MYSQLND_UH_MYSQLND_PROT_ROW_PACKET",
  MYSQLND_UH_MYSQLND_PROT_STATS_PACKET => "MYSQLND_UH_MYSQLND_PROT_STATS_PACKET",
  MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET => "MYSQLND_UH_MYSQLND_PREPARE_RESP_PACKET",
  MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET => "MYSQLND_UH_MYSQLND_CHG_USER_RESP_PACKET",
  MYSQLND_UH_MYSQLND_PROT_LAST => "MYSQLND_UH_MYSQLND_PROT_LAST",
 );
 return (isset($mapping[$ok_packet])) ? $mapping[$ok_packet] : 'unknown';
}

class proxy extends MysqlndUhConnection {
 public function simpleCommandHandleResponse($conn, $ok_packet, $silent, $command, $ignore_upsert_status) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  printf("Command '%s'\n", server_cmd_2_string($command));
  printf("OK packet '%s'\n",  ok_packet_2_string($ok_packet));
  $ret = parent::simpleCommandHandleResponse($conn, $ok_packet, $silent, $command, $ignore_upsert_status);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysql = mysql_connect("localhost", "root", "");
mysql_query("SELECT 1 FROM DUAL", $mysql);
?>

Результат выполнения данного примера:

proxy::simpleCommandHandleResponse(array (
  0 => NULL,
  1 => 5,
  2 => false,
  3 => 27,
  4 => true,
))
Command 'MYSQLND_UH_MYSQLND_COM_SET_OPTION'
OK packet 'MYSQLND_UH_MYSQLND_PROT_EOF_PACKET'
proxy::simpleCommandHandleResponse returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections


Used for establishing secure connections using SSL

  • « MysqlndUhConnection::simpleCommandHandleResponse
  • MysqlndUhConnection::stmtInit »
  • PHP Manual
  • MysqlndUhConnection
  • Used for establishing secure connections using SSL

MysqlndUhConnection::sslSet

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::sslSet — Used for establishing secure connections using SSL

Описание

public bool MysqlndUhConnection::sslSet ( mysqlnd_connection $connection , string $key , string $cert , string $ca , string $capath , string $cipher )

Used for establishing secure connections using SSL.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

key

The path name to the key file.

cert

The path name to the certificate file.

ca

The path name to the certificate authority file.

capath

The pathname to a directory that contains trusted SSL CA certificates in PEM format.

cipher

A list of allowable ciphers to use for SSL encryption.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::sslSet() example

<?php
class proxy extends MysqlndUhConnection {
 public function sslSet($conn, $key, $cert, $ca, $capath, $cipher) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::sslSet($conn, $key, $cert, $ca, $capath, $cipher);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->ssl_set("key", "cert", "ca", "capath", "cipher");
?>

Результат выполнения данного примера:

proxy::sslSet(array (
  0 => NULL,
  1 => 'key',
  2 => 'cert',
  3 => 'ca',
  4 => 'capath',
  5 => 'cipher',
))
proxy::sslSet returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_ssl_set() - Используется для установления безопасных соединений, используя SSL


Initializes a statement and returns a resource for use with mysqli_statement::prepare

  • « MysqlndUhConnection::sslSet
  • MysqlndUhConnection::storeResult »
  • PHP Manual
  • MysqlndUhConnection
  • Initializes a statement and returns a resource for use with mysqli_statement::prepare

MysqlndUhConnection::stmtInit

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::stmtInit — Initializes a statement and returns a resource for use with mysqli_statement::prepare

Описание

public resource MysqlndUhConnection::stmtInit ( mysqlnd_connection $connection )

Initializes a statement and returns a resource for use with mysqli_statement::prepare.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Resource of type Mysqlnd Prepared Statement (internal only - you must not modify it!). The documentation may also refer to such resources using the alias name mysqlnd_prepared_statement.

Примеры

Пример #1 MysqlndUhConnection::stmtInit() example

<?php
class proxy extends MysqlndUhConnection {
 public function stmtInit($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  var_dump($res);
  $ret = parent::stmtInit($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());
$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 1 AS _one FROM DUAL");
$stmt->execute();
$one = NULL;
$stmt->bind_result($one);
$stmt->fetch();
var_dump($one);
?>

Результат выполнения данного примера:

proxy::stmtInit(array (
  0 => NULL,
))
resource(19) of type (Mysqlnd Connection)
proxy::stmtInit returns NULL
resource(246) of type (Mysqlnd Prepared Statement (internal only - you must not modify it!))
int(1)

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_stmt_init() - Инициализирует запрос и возвращает объект для использования в mysqli_stmt_prepare


Transfers a result set from the last query

  • « MysqlndUhConnection::stmtInit
  • MysqlndUhConnection::txCommit »
  • PHP Manual
  • MysqlndUhConnection
  • Transfers a result set from the last query

MysqlndUhConnection::storeResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::storeResult — Transfers a result set from the last query

Описание

public resource MysqlndUhConnection::storeResult ( mysqlnd_connection $connection )

Transfers a result set from the last query.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Resource of type Mysqlnd Resultset (internal only - you must not modify it!). The documentation may also refer to such resources using the alias name mysqlnd_resultset.

Примеры

Пример #1 MysqlndUhConnection::storeResult() example

<?php
class proxy extends MysqlndUhConnection {
 public function storeResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::storeResult($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$res = $mysqli->query("SELECT 'Also called buffered result' AS _msg FROM DUAL");
var_dump($res->fetch_assoc());

$mysqli->real_query("SELECT 'Good morning!' AS _msg FROM DUAL");
$res = $mysqli->store_result();
var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

proxy::storeResult(array (
  0 => NULL,
))
proxy::storeResult returns NULL
resource(475) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(27) "Also called buffered result"
}
proxy::storeResult(array (
  0 => NULL,
))
proxy::storeResult returns NULL
resource(730) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(13) "Good morning!"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_store_result() - Передает на клиента результирующий набор последнего запроса
  • mysqli_real_query() - Выполнение SQL запроса


Commits the current transaction

  • « MysqlndUhConnection::storeResult
  • MysqlndUhConnection::txRollback »
  • PHP Manual
  • MysqlndUhConnection
  • Commits the current transaction

MysqlndUhConnection::txCommit

(PECL mysqlnd-uh >= 1.0.1-alpha, PHP >= 5.4.0)

MysqlndUhConnection::txCommit — Commits the current transaction

Описание

public bool MysqlndUhConnection::txCommit ( mysqlnd_connection $connection )

Commits the current transaction.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::txCommit() example

<?php
class proxy extends MysqlndUhConnection {
 public function txCommit($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::txCommit($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->commit();
?>

Результат выполнения данного примера:

proxy::txCommit(array (
  0 => NULL,
))
proxy::txCommit returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_commit() - Фиксирует текущую транзакцию


Rolls back current transaction

  • « MysqlndUhConnection::txCommit
  • MysqlndUhConnection::useResult »
  • PHP Manual
  • MysqlndUhConnection
  • Rolls back current transaction

MysqlndUhConnection::txRollback

(PECL mysqlnd-uh >= 1.0.1-alpha, PHP >= 5.4.0)

MysqlndUhConnection::txRollback — Rolls back current transaction

Описание

public bool MysqlndUhConnection::txRollback ( mysqlnd_connection $connection )

Rolls back current transaction.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhConnection::txRollback() example

<?php
class proxy extends MysqlndUhConnection {
 public function txRollback($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::txRollback($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->rollback();
?>

Результат выполнения данного примера:

proxy::txRollback(array (
  0 => NULL,
))
proxy::txRollback returns true

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_commit() - Фиксирует текущую транзакцию


Initiate a result set retrieval

  • « MysqlndUhConnection::txRollback
  • MysqlndUhPreparedStatement »
  • PHP Manual
  • MysqlndUhConnection
  • Initiate a result set retrieval

MysqlndUhConnection::useResult

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhConnection::useResult — Initiate a result set retrieval

Описание

public resource MysqlndUhConnection::useResult ( mysqlnd_connection $connection )

Initiate a result set retrieval.

Список параметров

connection

Mysqlnd connection handle. Do not modify!

Возвращаемые значения

Resource of type Mysqlnd Resultset (internal only - you must not modify it!). The documentation may also refer to such resources using the alias name mysqlnd_resultset.

Примеры

Пример #1 MysqlndUhConnection::useResult() example

<?php
class proxy extends MysqlndUhConnection {
 public function useResult($res) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $ret = parent::useResult($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->real_query("SELECT 'Good morning!' AS _msg FROM DUAL");
$res = $mysqli->use_result();
var_dump($res->fetch_assoc());
?>

Результат выполнения данного примера:

proxy::useResult(array (
  0 => NULL,
))
proxy::useResult returns NULL
resource(425) of type (Mysqlnd Resultset (internal only - you must not modify it!))
array(1) {
  ["_msg"]=>
  string(13) "Good morning!"
}

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqli_use_result() - Готовит результирующий набор на сервере к использованию
  • mysqli_real_query() - Выполнение SQL запроса


The MysqlndUhPreparedStatement class

(PECL mysqlnd-uh >= 1.0.0-alpha)

Введение

Обзор классов

MysqlndUhPreparedStatement {
/* Методы */
public __construct ( void )
public bool execute ( mysqlnd_prepared_statement $statement )
public bool prepare ( mysqlnd_prepared_statement $statement , string $query )
}

Содержание

  • MysqlndUhPreparedStatement::__construct — The __construct purpose
  • MysqlndUhPreparedStatement::execute — Executes a prepared Query
  • MysqlndUhPreparedStatement::prepare — Prepare an SQL statement for execution


The __construct purpose

  • « MysqlndUhPreparedStatement
  • MysqlndUhPreparedStatement::execute »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • The __construct purpose

MysqlndUhPreparedStatement::__construct

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::__construct — The __construct purpose

Описание

public MysqlndUhPreparedStatement::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Executes a prepared Query

  • « MysqlndUhPreparedStatement::__construct
  • MysqlndUhPreparedStatement::prepare »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • Executes a prepared Query

MysqlndUhPreparedStatement::execute

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::execute — Executes a prepared Query

Описание

public bool MysqlndUhPreparedStatement::execute ( mysqlnd_prepared_statement $statement )

Executes a prepared Query.

Список параметров

statement

Mysqlnd prepared statement handle. Do not modify! Resource of type Mysqlnd Prepared Statement (internal only - you must not modify it!).

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhPreparedStatement::execute() example

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function execute($res) {
  printf("%s(", __METHOD__);
  var_dump($res);
  printf(")\n");
  $ret = parent::execute($res);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'Labskaus' AS _msg FROM DUAL");
$stmt->execute();
$msg = NULL;
$stmt->bind_result($msg);
$stmt->fetch();
var_dump($msg);
?>

Результат выполнения данного примера:

stmt_proxy::execute(resource(256) of type (Mysqlnd Prepared Statement (internal only - you must not modify it!))
)
stmt_proxy::execute returns true
bool(true)
string(8) "Labskaus"

Смотрите также

  • mysqlnd_uh_set_statement_proxy() - Installs a proxy for mysqlnd statements
  • mysqli_stmt_execute() - Выполняет подготовленный запрос


Prepare an SQL statement for execution

  • « MysqlndUhPreparedStatement::execute
  • Mysqlnd_uh Функции »
  • PHP Manual
  • MysqlndUhPreparedStatement
  • Prepare an SQL statement for execution

MysqlndUhPreparedStatement::prepare

(PECL mysqlnd-uh >= 1.0.0-alpha)

MysqlndUhPreparedStatement::prepare — Prepare an SQL statement for execution

Описание

public bool MysqlndUhPreparedStatement::prepare ( mysqlnd_prepared_statement $statement , string $query )

Prepare an SQL statement for execution.

Список параметров

statement

Mysqlnd prepared statement handle. Do not modify! Resource of type Mysqlnd Prepared Statement (internal only - you must not modify it!).

query

The query to be prepared.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 MysqlndUhPreparedStatement::prepare() example

<?php
class stmt_proxy extends MysqlndUhPreparedStatement {
 public function prepare($res, $query) {
  printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
  $query = "SELECT 'No more you-know-what-I-mean for lunch, please' AS _msg FROM DUAL";
  $ret = parent::prepare($res, $query);
  printf("%s returns %s\n", __METHOD__, var_export($ret, true));
  var_dump($ret);
  return $ret;
 }
}
mysqlnd_uh_set_statement_proxy(new stmt_proxy());

$mysqli = new mysqli("localhost", "root", "", "test");
$stmt = $mysqli->prepare("SELECT 'Labskaus' AS _msg FROM DUAL");
$stmt->execute();
$msg = NULL;
$stmt->bind_result($msg);
$stmt->fetch();
var_dump($msg);
?>

Результат выполнения данного примера:

stmt_proxy::prepare(array (
  0 => NULL,
  1 => 'SELECT \'Labskaus\' AS _msg FROM DUAL',
))
stmt_proxy::prepare returns true
bool(true)
string(46) "No more you-know-what-I-mean for lunch, please"

Смотрите также

  • mysqlnd_uh_set_statement_proxy() - Installs a proxy for mysqlnd statements
  • mysqli_stmt_prepare() - Подготовка SQL запроса к выполнению
  • mysqli_prepare() - Подготавливает SQL выражение к выполнению


Mysqlnd_uh Функции

Содержание

  • mysqlnd_uh_convert_to_mysqlnd — Converts a MySQL connection handle into a mysqlnd connection handle
  • mysqlnd_uh_set_connection_proxy — Installs a proxy for mysqlnd connections
  • mysqlnd_uh_set_statement_proxy — Installs a proxy for mysqlnd statements


Converts a MySQL connection handle into a mysqlnd connection handle

  • « Mysqlnd_uh Функции
  • mysqlnd_uh_set_connection_proxy »
  • PHP Manual
  • Mysqlnd_uh Функции
  • Converts a MySQL connection handle into a mysqlnd connection handle

mysqlnd_uh_convert_to_mysqlnd

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_convert_to_mysqlnd — Converts a MySQL connection handle into a mysqlnd connection handle

Описание

resource mysqlnd_uh_convert_to_mysqlnd ( mysqli &$mysql_connection )

Converts a MySQL connection handle into a mysqlnd connection handle. After conversion you can execute mysqlnd library calls on the connection handle. This can be used to access mysqlnd functionality not made available through user space API calls.

The function can be disabled with mysqlnd_uh.enable. If mysqlnd_uh.enable is set to FALSE the function will not install the proxy and always return TRUE. Additionally, an error of the type E_WARNING may be emitted. The error message may read like PHP Warning: mysqlnd_uh_convert_to_mysqlnd(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. You are not allowed to call this function [...].

Список параметров

MySQL connection handle

A MySQL connection handle of type mysql, mysqli or PDO_MySQL.

Возвращаемые значения

A mysqlnd connection handle.

Список изменений

Версия | Описание
5.4.0 | The mysql_connection parameter can now be of type mysql, PDO_MySQL, or mysqli. Before, only the mysqli type was allowed.

Примеры

Пример #1 mysqlnd_uh_convert_to_mysqlnd() example

<?php
/* PDO user API gives no access to connection thread id */
$mysql_connection = new PDO("mysql:host=localhost;dbname=test", "root", "");

/* Convert PDO MySQL handle to mysqlnd handle */
$mysqlnd = mysqlnd_uh_convert_to_mysqlnd($mysql_connection);

/* Create Proxy to call mysqlnd connection class methods */
$obj = new MySQLndUHConnection();
/* Call mysqlnd_conn::get_thread_id */
var_dump($obj->getThreadId($mysqlnd));

/* Use SQL to fetch connection thread id */
var_dump($mysql_connection->query("SELECT CONNECTION_ID()")->fetchAll());
?>

Результат выполнения данного примера:

int(27054)
array(1) {
  [0]=>
  array(2) {
    ["CONNECTION_ID()"]=>
    string(5) "27054"
    [0]=>
    string(5) "27054"
  }
}

Смотрите также

  • mysqlnd_uh.enable


Installs a proxy for mysqlnd connections

  • « mysqlnd_uh_convert_to_mysqlnd
  • mysqlnd_uh_set_statement_proxy »
  • PHP Manual
  • Mysqlnd_uh Функции
  • Installs a proxy for mysqlnd connections

mysqlnd_uh_set_connection_proxy

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_set_connection_proxy — Installs a proxy for mysqlnd connections

Описание

bool mysqlnd_uh_set_connection_proxy ( MysqlndUhConnection &$connection_proxy [, mysqli &$mysqli_connection ] )

Installs a proxy object to hook mysqlnd's connection objects methods. Once installed, the proxy will be used for all MySQL connections opened with mysqli, mysql or PDO_MYSQL, assuming that the listed extensions are compiled to use the mysqlnd library.

The function can be disabled with mysqlnd_uh.enable. If mysqlnd_uh.enable is set to FALSE the function will not install the proxy and always return TRUE. Additionally, an error of the type E_WARNING may be emitted. The error message may read like PHP Warning: mysqlnd_uh_set_connection_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed [...].

Список параметров

connection_proxy

A proxy object of type MysqlndUhConnection.

mysqli_connection

Object of type mysqli. If given, the proxy will be set for this particular connection only.

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Примеры

Пример #1 mysqlnd_uh_set_connection_proxy() example

<?php
$mysqli = new mysqli("localhost", "root", "", "test");
$mysqli->query("SELECT 'No proxy installed, yet'");

class proxy extends MysqlndUhConnection {
 public function query($res, $query) {
   printf("%s(%s)\n", __METHOD__, var_export(func_get_args(), true));
   $ret = parent::query($res, $query);
   printf("%s returns %s\n", __METHOD__, var_export($ret, true));
   return $ret;
 }
}
mysqlnd_uh_set_connection_proxy(new proxy());

$mysqli->query("SELECT 'mysqlnd rocks!'");

$mysql = mysql_connect("localhost", "root", "", "test");
mysql_query("SELECT 'Ahoy Andrey!'", $mysql);

$pdo = new PDO("mysql:host=localhost;dbname=test", "root", "");
$pdo->query("SELECT 'Moin Johannes!'");
?>

Результат выполнения данного примера:

proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'mysqlnd rocks!\'',
))
proxy::query returns true
proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Ahoy Andrey!\'',
))
proxy::query returns true
proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Moin Johannes!\'',
))
proxy::query returns true

Смотрите также

  • mysqlnd_uh_set_statement_proxy() - Installs a proxy for mysqlnd statements
  • mysqlnd_uh.enable


Installs a proxy for mysqlnd statements

  • « mysqlnd_uh_set_connection_proxy
  • Change History »
  • PHP Manual
  • Mysqlnd_uh Функции
  • Installs a proxy for mysqlnd statements

mysqlnd_uh_set_statement_proxy

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_set_statement_proxy — Installs a proxy for mysqlnd statements

Описание

bool mysqlnd_uh_set_statement_proxy ( MysqlndUhStatement &$statement_proxy )

Installs a proxy for mysqlnd statements. The proxy object will be used for all mysqlnd prepared statement objects, regardless which PHP MySQL extension (mysqli, mysql, PDO_MYSQL) has created them as long as the extension is compiled to use the mysqlnd library.

The function can be disabled with mysqlnd_uh.enable. If mysqlnd_uh.enable is set to FALSE the function will not install the proxy and always return TRUE. Additionally, an error of the type E_WARNING may be emitted. The error message may read like PHP Warning: mysqlnd_uh_set_statement_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed [...].

Список параметров

statement_proxy

The mysqlnd statement proxy object of type MysqlndUhStatement

Возвращаемые значения

Returns TRUE on success. Otherwise, returns FALSE

Смотрите также

  • mysqlnd_uh_set_connection_proxy() - Installs a proxy for mysqlnd connections
  • mysqlnd_uh.enable


Change History

Содержание

  • PECL/mysqlnd_uh 1.0 series

The Change History lists major changes users need to be aware if upgrading from one version to another. It is a high level summary of selected changes that may impact applications or might even break backwards compatibility. See also the CHANGES file contained in the source for additional changelog information. The commit history is also available.


PECL/mysqlnd_uh 1.0 series

1.0.1-alpha

  • Release date: TBD
  • Motto/theme: bug fix release

Feature changes

  • Support of PHP 5.4.0 or later.
  • BC break: MysqlndUhConnection::changeUser() requires additional passwd_len parameter.
  • BC break: MYSQLND_UH_VERSION_STR renamed to MYSQLND_UH_VERSION. MYSQLND_UH_VERSION renamed to MYSQLND_UH_VERSION_ID.
  • BC break: mysqlnd_uh.enabled configuration setting renamed to mysqlnd_uh.enable.

1.0.0-alpha

  • Release date: 08/2010
  • Motto/theme: Initial release


Mysqlnd connection multiplexing plugin

  • Введение
  • Concepts
    • Architecture
    • Connection pool
    • Sharing connections
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Change History
    • PECL/mysqlnd_mux 1.0 series


Введение

The mysqlnd multiplexing plugin (mysqlnd_mux) multiplexes MySQL connections established by all PHP MySQL extensions that use the MySQL native driver (mysqlnd) for PHP.

The MySQL native driver for PHP features an internal C API for plugins, such as the connection multiplexing plugin, which can extend the functionality of mysqlnd. See the mysqlnd for additional details about its benefits over the MySQL Client Library libmysqlclient.

Mysqlnd plugins like mysqlnd_mux operate, for the most part, transparently from a user perspective. The connection multiplexing plugin supports all PHP applications, and all MySQL PHP extensions. It does not change existing APIs. Therefore, it can easily be used with existing PHP applications.

Замечание:

This is a proof-of-concept. All features are at an early stage. Not all kinds of queries are handled by the plugin yet. Thus, it cannot be used in a drop-in fashion at the moment.

Please, do not use this version in production environments.

Key Features

The key features of mysqlnd_mux are as follows:

  • Transparent and therefore easy to use:

    • Supports all of the PHP MySQL extensions.

    • Little to no application changes are required, dependent on the required usage scenario.

  • Reduces server load and connection establishment latency:

    • Opens less connections to the MySQL server.

    • Less connections to MySQL mean less work for the MySQL server. In a client-server environment scaling the server is often more difficult than scaling the client. Multiplexing helps with horizontal scale-out (scale-by-client).

    • Pooling saves connection time.

    • Multiplexed connection: multiple user handles share the same network connection. Once opened, a network connection is cached and shared among multiple user handles. There is a 1:n relationship between internal network connection and user connection handles.

    • Persistent connection: a network connection is kept open at the end of the web request, if the PHP deployment model allows. Thus, subsequently web requests can reuse a previously opened connection. Like other resources, network connections are bound to the scope of a process. Thus, they can be reused for all web requests served by a process.

Limitations

The proof-of-concept does not support unbuffered queries, prepared statements, and asynchronous queries.

The connection pool is using a combination of the transport method and hostname as keys. As a consequence, two connections to the same host using the same transport method (TCP/IP, Unix socket, Windows named pipe) will be linked to the same pooled connection even if username and password differ. Be aware of the possible security implications.

The proof-of-concept is transaction agnostic. It does not know about SQL transactions.

Замечание:

Applications must be aware of the consequences of connection sharing connections.

About the name mysqlnd_mux

The shortcut mysqlnd_mux stands for mysqlnd connection multiplexing plugin.


Concepts

Содержание

  • Architecture
  • Connection pool
  • Sharing connections

This explains the architecture and related concepts for this plugin. Reading and understanding these concepts is required to successfully use this plugin.


Architecture

The mysqlnd connection multiplexing plugin is implemented as a PHP extension. It is written in C and operates under the hood of PHP. During the startup of the PHP interpreter, in the module initialization phase of the PHP engine, it gets registered as a mysqlnd plugin to replace specific mysqlnd C methods.

The mysqlnd library uses PHP streams to communicate with the MySQL server. PHP streams are accessed by the mysqlnd library through its net module. The mysqlnd connection multiplexing plugin proxies methods of the mysqlnd library net module to control opening and closing of network streams.

Upon opening a user connection to MySQL using the appropriate connection functions of either mysqli, PDO_MYSQL or ext/mysql, the plugin will search its connection pool for an open network connection. If the pool contains a network connection to the host specified by the connect function using the transport method requested (TCP/IP, Unix domain socket, Windows named pipe), the pooled connection is linked to the user handle. Otherwise, a new network connection is opened, put into the poolm and associated with the user connection handle. This way, multiple user handles can be linked to the same network connection.


Connection pool

The plugins connection pool is created when PHP initializes its modules (MINIT) and free'd when PHP shuts down the modules (MSHUTDOWN). This is the same as for persistent MySQL connections.

Depending on the deployment model, the pool is used for the duration of one or multiple web requests. Network connections are bound to the lifespan of an operating system level process. If the PHP process serves multiple web requests as it is the case for Fast-CGI or threaded web server deployments, then the pooled connections can be reused over multiple connections. Because multiplexing means sharing connections, it can even happen with a threaded deployment that two threads or two distinct web requests are linked to one pooled network connections.

A pooled connection is explicitly closed once the last reference to it is released. An implicit close happens when PHP shuts down its modules.


Sharing connections

The PHP mysqlnd connection multiplexing plugin changes the relationship between a users connection handle and the underlying MySQL connection. Without the plugin, every MySQL connection belongs to exactly one user connection at a time. The multiplexing plugin changes. A MySQL connection is shared among multiple user handles. There no one-to-one relation if using the plugin.

Sharing pooled connections has an impact on the connection state. State changing operations from multiple user handles pointing to one MySQL connection are not isolated from each other. If, for example, a session variable is set through one user connection handle, the session variable becomes visible to all other user handles that reference the same underlying MySQL connection.

This is similar in concept to connection state related phenomens described for the PHP mysqlnd replication and load balancing plugin. Please, check the PECL/mysqlnd_ms documentation for more details on the state of a connection.

The proof-of-concept takes no measures to isolate multiplexed connections from each other.


  • « Sharing connections
  • Требования »
  • PHP Manual
  • mysqlnd_mux
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения


Требования

PHP 5.5.0 or newer. Some advanced functionality requires PHP 5.5.0 or newer.

The mysqlnd_mux replication and load balancing plugin supports all PHP applications and all available PHP MySQL extensions (mysqli, mysql, PDO_MYSQL). The PHP MySQL extension must be configured to use mysqlnd in order to be able to use the mysqlnd_mux plugin for mysqlnd.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/mysqlnd_mux


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Mysqlnd_mux Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
mysqlnd_mux.enable | 0 | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

mysqlnd_mux.enable integer

Enables or disables the plugin. If disabled, the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Other

The plugins version number can be obtained using MYSQLND_MUX_VERSION or MYSQLND_MUX_VERSION_ID. MYSQLND_MUX_VERSION is the string representation of the numerical version number MYSQLND_MUX_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_MUX_VERSION_ID | 10000

MYSQLND_MUX_VERSION (string)
Plugin version string, for example, "1.0.0-prototype".
MYSQLND_MUX_VERSION_ID (integer)
Plugin version number, for example, 10000.


Change History

Содержание

  • PECL/mysqlnd_mux 1.0 series

This change history is a high level summary of selected changes that may impact applications and/or break backwards compatibility.

See also the CHANGES file in the source distribution for a complete list of changes.


PECL/mysqlnd_mux 1.0 series

1.0.0-pre-alpha

  • Release date: no package released, initial check-in 09/2012
  • Motto/theme: Proof of concept

Initial check-in. Essentially a demo of the mysqlnd plugin API.

Замечание:

This is the current development series. All features are at an early stage. Changes may happen at any time without prior notice. Please, do not use this version in production environments.

The documentation may not reflect all changes yet.


Mysqlnd Memcache plugin

  • Введение
  • Quickstart and Examples
    • Setup
    • Usage
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Mysqlnd_memcache Функции
    • mysqlnd_memcache_get_config — Returns information about the plugin configuration
    • mysqlnd_memcache_set — Associate a MySQL connection with a Memcache connection
  • Change History
    • PECL/mysqlnd_memcache 1.0 series


Введение

The mysqlnd memcache plugin (mysqlnd_memcache) is an PHP extension for transparently translating SQL into requests for the MySQL InnoDB Memcached Daemon Plugin (server plugin). It includes experimental support for the MySQL Cluster Memcached Daemon. The server plugin provides access to data stored inside MySQL InnoDB (respectively MySQL Cluster NDB) tables using the Memcache protocol. This PHP extension, which supports all PHP MySQL extensions that use mysqlnd, will identify tables exported in this way and will translate specific SELECT queries into Memcache requests.

mysqlnd_memcache data flow

Замечание:

This plugin depends on the MySQL InnoDB Memcached Daemon Plugin. It is not provided to be used with a stand-alone Memcached. For a generic query cache using Memcached look at the mysqlnd query cache plugin. For direct Memcache access look at the memcache and memcached extensions.

The MySQL native driver for PHP is a C library that ships together with PHP as of PHP 5.3.0. It serves as a drop-in replacement for the MySQL Client Library (libmysqlclient). Using mysqlnd has several advantages: no extra downloads are required because it's bundled with PHP, it's under the PHP license, there is lower memory consumption in certain cases, and it contains new functionality such as asynchronous queries.

The mysqlnd_mmemcache operates, for the most part, transparently from a user perspective. The mysqlnd memcache plugin supports all PHP applications, and all MySQL PHP extensions. It does not change existing APIs. Therefore, it can easily be used with existing PHP applications.

The MySQL Memcache plugins add key-value style access method for data stored in InnoDB resp. NDB (MySQL Cluster) SQL tables through the Memcache protocol. This type of key-value access if often faster than using SQL.

Key Features

The key features of PECL/mysqlnd_memcache are as follows.

  • Possible performance benefits

    • Client-side: light-weight protocol.

    • Server-side: no SQL parsing, direct access to the storage.

    • Please, run your own benchmarks! Actual performance results are highly dependent on setup and hardware used.

Limitations

The initial version is not binary safe. Due to the way the MySQL Memcache plugins works there are restrictions related to separators.

Prepared statements and asynchronous queries are not supported. Result set meta data support is limited.

The mapping information for tables accessible via Memcache is not cached in the plugin between requests but fetched from the MySQL server each time a MySQL connection is associated with a Memcache connection. See mysqlnd_memcache_set() for details.

On the name

The shortcut mysqlnd_memcache stands for mysqlnd memcache plugin. Memcache refers to support of the MySQL Memcache plugins for InnoDB and NDB (MySQL Cluster). The plugin is not related to the Memcached cache server.


Quickstart and Examples

Содержание

  • Setup
  • Usage

The mysqlnd memcache plugin is easy to use. This quickstart will demo typical use-cases, and provide practical advice on getting started.

It is strongly recommended to read the reference sections in addition to the quickstart. The quickstart tries to avoid discussing theoretical concepts and limitations. Instead, it will link to the reference sections. It is safe to begin with the quickstart. However, before using the plugin in mission critical environments we urge you to read additionally the background information from the reference sections.


Setup

The plugin is implemented as a PHP extension. See also the installation instructions to install this extension.

Compile or configure the PHP MySQL extension (API) (mysqli, PDO_MYSQL, mysql). That extension must use the mysqlnd library as because mysqlnd_memcache is a plugin for the mysqlnd library. For additional information, refer to the mysqlnd_memcache installation instructions.

Then, load this extension into PHP and activate the plugin in the PHP configuration file using the PHP configuration directive named mysqlnd_memcache.enable.

Пример #1 Enabling the plugin (php.ini)

; On Windows the filename is php_mysqnd_memcache.dll
; Load the extension
extension=mysqlnd_memcache.so
; Enable it
mysqlnd_memcache.enable=1

Follow the instructions given in the » MySQL Reference Manual on installing the Memcache plugins for the MySQL server. Activate the plugins and configure Memcache access for SQL tables.

The examples in this quickguide assume that the following table exists, and that Memcache is configured with access to it.

Пример #2 SQL table used for the Quickstart

CREATE TABLE test(
  id CHAR(16),
  f1 VARCHAR(255),
  f2 VARCHAR(255),
  f3 VARCHAR(255),
  flags INT NOT NULL,
  cas_column INT,
  expire_time_column INT,
  PRIMARY KEY(id)
  ) ENGINE=InnoDB;

INSERT INTO test (id, f1, f2, f3) VALUES (1, 'Hello', 'World', '!');
INSERT INTO test (id, f1, f2, f3) VALUES (2, 'Lady', 'and', 'the tramp');

INSERT INTO innodb_memcache.containers(
  name, db_schema, db_table, key_columns, value_columns,
  flags, cas_column, expire_time_column, unique_idx_name_on_key)
VALUES (
  'plugin_test', 'test', 'test', 'id', 'f1,f2,f3',
  'flags', 'cas_column', 'expire_time_column', 'PRIMARY KEY');


Usage

After associating a MySQL connection with a Memcache connection using mysqnd_memcache_set() the plugin attempts to transparently replace SQL SELECT statements by a memcache access. For that purpose the plugin monitors all SQL statements executed and tries to match the statement string against MYSQLND_MEMCACHE_DEFAULT_REGEXP. In case of a match, the mysqlnd memcache plugin checks whether the SELECT is accessing only columns of a mapped table and the WHERE clause is limited to a single key lookup.

In case of the example SQL table, the plugin will use the Memcache interface of the MySQL server to fetch results for a SQL query like SELECT f1, f2, f3 WHERE id = n.

Пример #1 Basic example.

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc);

/*
   This is a query which queries table test using id as key in the WHERE part
   and is accessing fields f1, f2 and f3. Therefore, mysqlnd_memcache
   will intercept it and route it via memcache.
*/
$result = $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");
while ($row = $result->fetch_row()) {
    print_r($row);
}

/*
   This is a query which queries table test but using f1 in the WHERE clause.
   Therefore, mysqlnd_memcache can't intercept it. This will be executed
   using the MySQL protocol
*/
$mysqli->query("SELECT id FROM test WHERE f1 = 'Lady'");
while ($row = $result->fetch_row()) {
    print_r($row);
}
?>

Результат выполнения данного примера:

array(
    [f1] => Hello
    [f2] => World
    [f3] => !
)
array(
    [id] => 2
)


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения


Требования

PHP: this extension requires PHP 5.4+, version PHP 5.4.4 or never. The required PHP extensions are PCRE (enabled by default), and the memcached extension version 2.0.x.

The mysqlnd_memcache Memcache plugin supports all PHP applications and all available PHP MySQL extensions (mysqli, mysql, PDO_MYSQL). The PHP MySQL extension must be configured with mysqlnd support.

For accessing InnoDB tables, this PHP extension requires MySQL Server 5.6.6 or newer with the InnoDB Memcache Daemon Plugin enabled.

For accessing MySQL Cluster NDB tables, this PHP extension requires MySQL Cluster 7.2 or newer with the NDB Memcache API nodes enabled.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/mysqlnd_memcache

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Mysqlnd_memcache Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
mysqlnd_memcache.enable | 1 | PHP_INI_SYSTEM | Available since 1.0.0

Краткое разъяснение конфигурационных директив.

mysqlnd_memcache.enable integer

Enables or disables the plugin. If disabled, the extension will not plug into mysqlnd to proxy internal mysqlnd C API calls.

Замечание:

This option is mainly used by developers to build this extension statically into PHP. General users are encouraged to build this extension as a shared object, and to unload it completely when it is not needed.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MySQL Memcache Plugin related

MYSQLND_MEMCACHE_DEFAULT_REGEXP (string)
Default regular expression (PCRE style) used for matching SELECT statements that will be mapped into a MySQL Memcache Plugin access point, if possible. It is also possible to use mysqlnd_memcache_set(), but the default approach is using this regular expression for pattern matching.

Assorted

The version number of this plugin can be obtained by using MYSQLND_MEMCACHE_VERSION or MYSQLND_MEMCACHE_VERSION_ID. MYSQLND_MEMCACHE_VERSION is the string representation of the numerical version number MYSQLND_MEMCACHE_VERSION_ID, which is an integer such as 10000. Developers can calculate the version number as follows.

Version (part) | Example
Major*10000 | 1*10000 = 10000
Minor*100 | 0*100 = 0
Patch | 0 = 0
MYSQLND_MEMCACHE_VERSION_ID | 10000

MYSQLND_MEMCACHE_VERSION (string)
Plugin version string, for example, "1.0.0-alpha".
MYSQLND_MEMCACHE_VERSION_ID (integer)
Plugin version number, for example, 10000.


Mysqlnd_memcache Функции

Содержание

  • mysqlnd_memcache_get_config — Returns information about the plugin configuration
  • mysqlnd_memcache_set — Associate a MySQL connection with a Memcache connection


Returns information about the plugin configuration

  • « Mysqlnd_memcache Функции
  • mysqlnd_memcache_set »
  • PHP Manual
  • Mysqlnd_memcache Функции
  • Returns information about the plugin configuration

mysqlnd_memcache_get_config

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_get_config — Returns information about the plugin configuration

Описание

array mysqlnd_memcache_get_config ( mixed $connection )

This function returns an array of all mysqlnd_memcache related configuration information that is attached to the MySQL connection. This includes MySQL, the Memcache object provided via mysqlnd_memcache_set(), and the table mapping configuration that was automatically collected from the MySQL Server.

Список параметров

connection

A handle to a MySQL Server using one of the MySQL API extensions for PHP, which are PDO_MYSQL, mysqli or ext/mysql.

Возвращаемые значения

An array of mysqlnd_memcache configuration information on success, otherwise FALSE.

The returned array has these elements:

mysqlnd_memcache_get_config() array structure
Array Key | Description
memcached | Instance of Memcached associated to this MySQL connection by mysqlnd_memcache_set(). You can use this to change settings of the memcache connection, or directly by querying the server on this connection.
pattern | The PCRE regular expression used to match the SQL query sent to the server. Queries matching this pattern will be further analyzed to decide whether the query can be intercepted and sent via the memcache interface or whether the query is sent using the general MySQL protocol to the server. The pattern is either the default pattern (MYSQLND_MEMCACHE_DEFAULT_REGEXP) or it is set via mysqlnd_memcache_set().
mappings | An associative array with a list of all configured containers as they were discovered by this plugin. The key for these elements is the name of the container in the MySQL configuration. The value is described below. The contents of this field is created by querying the MySQL Server during association to MySQL and a memcache connection using mysqlnd_memcache_set().
mapping_query | An SQL query used during mysqlnd_memcache_set() to identify the available containers and mappings. The result of that query is provided in the mappings element.
Mapping entry structure
Array Key | Description
prefix | A prefix used while accessing data via memcache. With the MySQL InnoDB Memcache Deamon plugin, this usually begins with @@ and ends with a configurable separator. This prefix is placed in front of the key value while using the memcache protocol.
schema_name | Name of the schema (database) which contains the table being accessed.
table_name | Name of the table which contains the data accessible via memcache protocol.
id_field_name | Name of the database field (column) with the id used as key when accessing the table via memcache. Often this is the database field having a primary key.
separator The separator used to split the different field values. This is needed as memcache only provides access to a single value while MySQL can map multiple columns to this value.

Замечание:

The separator, which can be set in the MySQL Server configuration, should not be part of any value retrieved via memcache because proper mapping can't be guaranteed.

fields | An array with the name of all fields available for this mapping.

Примеры

Пример #1 mysqlnd_memcache_get_config() example

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc);

var_dump(mysqlnd_memcache_get_config($mysqli));
?>

Результат выполнения данного примера:

array(4) {
  ["memcached"]=>
  object(Memcached)#2 (0) {
  }
  ["pattern"]=>
  string(125) "/^\s*SELECT\s*(.+?)\s*FROM\s*`?([a-z0-9_]+)`?\s*WHERE\s*`?([a-z0-9_]+)`?\s*=\s*(?(?=["'])["']([^"']*)["']|([0-9e\.]*))\s*$/is"
  ["mappings"]=>
  array(1) {
    ["mymem_test"]=>
    array(6) {
      ["prefix"]=>
      string(13) "@@mymem_test."
      ["schema_name"]=>
      string(4) "test"
      ["table_name"]=>
      string(10) "mymem_test"
      ["id_field_name"]=>
      string(2) "id"
      ["separator"]=>
      string(1) "|"
      ["fields"]=>
      array(3) {
        [0]=>
        string(2) "f1"
        [1]=>
        string(2) "f2"
        [2]=>
        string(2) "f3"
      }
    }
  }
  ["mapping_query"]=>
  string(209) "    SELECT c.name,
                          CONCAT('@@', c.name, (SELECT value FROM innodb_memcache.config_options WHERE name = 'table_map_delimiter')) AS key_prefix,
                          c.db_schema,
                          c.db_table,
                          c.key_columns,
                          c.value_columns,
                          (SELECT value FROM innodb_memcache.config_options WHERE name = 'separator') AS sep
                     FROM innodb_memcache.containers c"
}

Смотрите также

  • mysqlnd_memcache_set() - Associate a MySQL connection with a Memcache connection


Associate a MySQL connection with a Memcache connection

  • « mysqlnd_memcache_get_config
  • Change History »
  • PHP Manual
  • Mysqlnd_memcache Функции
  • Associate a MySQL connection with a Memcache connection

mysqlnd_memcache_set

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_set — Associate a MySQL connection with a Memcache connection

Описание

bool mysqlnd_memcache_set ( mixed $mysql_connection [, Memcached $memcache_connection [, string $pattern [, callback $callback ]]] )

Associate mysql_connection with memcache_connection using pattern as a PCRE regular expression, and callback as a notification callback or to unset the association of mysql_connection.

While associating a MySQL connection with a Memcache connection, this function will query the MySQL Server for its configuration. It will automatically detect whether the server is configured to use the InnoDB Memcache Daemon Plugin or MySQL Cluster NDB Memcache support. It will also query the server to automatically identify exported tables and other configuration options. The results of this automatic configuration can be retrieved using mysqlnd_memcache_get_config().

Список параметров

mysql_connection

A handle to a MySQL Server using one of the MySQL API extensions for PHP, which are PDO_MYSQL, mysqli or ext/mysql.

memcache_connection

A Memcached instance with a connection to the MySQL Memcache Daemon plugin. If this parameter is omitted, then mysql_connection will be unassociated from any memcache connection. And if a previous association exists, then it will be replaced.

pattern

A regular expression in Perl Compatible Regular Expression syntax used to identify potential Memcache-queries. The query should have three sub patterns. The first subpattern contains the requested field list, the second the name of the ID column from the query and the third the requested value. If this parameter is omitted or os set to NULL, then a default pattern will be used.

callback

A callback which will be used whenever a query is being sent to MySQL. The callback will receive a single boolean parameter telling if a query was sent via Memcache.

Возвращаемые значения

TRUE if the association or disassociation is successful, otherwise FALSE if there is an error.

Примеры

Пример #1 mysqlnd_memcache_set() example with var_dump() as a simple debugging callback.

<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc, NULL, 'var_dump');

/* This query will be intercepted and executed via Memcache protocol */
echo "Sending query for id via Memcache: ";
$mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");

/* f1 is not configured as valid key field, this won't be sent via Memcache */
echo "Sending query for f1 via Memcache: ";
$mysqli->query("SELECT id FROM test WHERE f1 = 1");

mysqlnd_memcache_set($mysqli);

/* Now the regular MySQL protocol will be used */
echo "var_dump won't be invoked: ";
$mysqli->query("SELECT f1, f2, f3 WHERE id = 1");

?>

Результат выполнения данного примера:

Sending query for id via Memcache: bool(true)
Sending query for f1 via Memcache: bool(false)
var_dump won't be invoked:

Смотрите также

  • mysqlnd_memcache_get_config() - Returns information about the plugin configuration


Change History

Содержание

  • PECL/mysqlnd_memcache 1.0 series

This change history is a high level summary of selected changes that may impact applications and/or break backwards compatibility.

See also the CHANGES file in the source distribution for a complete list of changes.


PECL/mysqlnd_memcache 1.0 series

1.0.0-alpha

  • Release date: TBD
  • Motto/theme: Basic mapping of SQL SELECT to a MySQL Memcache plugin access.

The initial release does map basic SQL SELECT statements to a MySQL Memcache plugin access. This bares potential performance benefits as the direct key-value access to MySQL storage using the Memcache protocol is usually faster than using SQL access.


Oracle OCI8

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Testing
    • Настройка во время выполнения
  • Предопределенные константы
  • Примеры
  • Работа с соединениями OCI8 и Connection Pooling
  • OCI8 Fast Application Notification (FAN) Support
  • OCI8 and DTrace Dynamic Tracing
  • Поддерживаемые типы данных
  • 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 — Returns the next child statement resource from a parent statement resource that has Oracle Database 12c Implicit Result Sets
    • 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_result — Возвращает значение поля из результата запроса
    • oci_rollback — Откатывает транзакции, ожидающие обработки
    • oci_server_version — Возвращает версию сервера Oracle
    • oci_set_action — Задает имя для действия
    • oci_set_client_identifier — Задает идентификатор клиента
    • oci_set_client_info — Задает информацию о клиенте
    • oci_set_edition — Задает выпуск (edition) базы данных
    • oci_set_module_name — Задает имя модулю
    • oci_set_prefetch — Устанавливает количество строк, которые будут автоматически выбраны в буфер
    • oci_statement_type — Возвращает тип выражения
  • OCI-Collection — The OCI-Collection class
    • OCI-Collection::append — Добавляет элемент в коллекцию
    • OCI-Collection::assign — Присваивает коллекции значение другой, уже существующей коллекции
    • OCI-Collection::assignElem — Присваивает значение элементу коллекции
    • OCI-Collection::free — Освобождает ресурсы, занимаемые объектом коллекции
    • OCI-Collection::getElem — Возвращает значение элемента
    • OCI-Collection::max — Возвращает максимальное количество элементов в коллекции
    • OCI-Collection::size — Возвращает количество элементов в коллекции
    • OCI-Collection::trim — Отсекает элементы с конца коллекции
  • OCI-Lob — The OCI-Lob class
    • OCI-Lob::append — Добавляет данные из объекта LOB в конец другого объекта
    • OCI-Lob::close — Закрывает дескриптор объекта LOB
    • OCI-Lob::eof — Проверяет, находится ли указатель LOB на конце объекта
    • OCI-Lob::erase — Очищает указанную часть объекта LOB
    • OCI-Lob::export — Сохраняет содержимое объекта LOB в файл
    • OCI-Lob::flush — Очищает и записывает буфер объекта LOB на сервер
    • OCI-Lob::free — Освобождает ресурсы, связанные с дескриптором LOB
    • OCI-Lob::getBuffering — Возвращает текущее состояние буферизации большого объекта (LOB)
    • OCI-Lob::import — Записывает содержимое файла в объект LOB
    • OCI-Lob::load — Возвращает содержимое объекта LOB
    • OCI-Lob::read — Возвращает часть объекта LOB
    • OCI-Lob::rewind — Переводит указатель объекта в начало большого объекта
    • OCI-Lob::save — Сохраняет данные в LOB
    • OCI-Lob::saveFile — Псевдоним OCI-Lob::import
    • OCI-Lob::seek — Устанавливает позицию внутреннего указателя LOB
    • OCI-Lob::setBuffering — Изменяет текущее состояние буферизации большого объекта (LOB)
    • OCI-Lob::size — Возвращает размер объекта LOB
    • OCI-Lob::tell — Возвращает текущую позицию внутреннего указателя объекта LOB
    • OCI-Lob::truncate — Обрезает большой объект
    • OCI-Lob::write — Записывает данные в объект LOB
    • OCI-Lob::writeTemporary — Записывает временный большой объект (LOB)
    • OCI-Lob::writeToFile — Псевдоним OCI-Lob::export
  • Устаревшие наименования и функции OCI8
    • ocibindbyname — Псевдоним oci_bind_by_name
    • ocicancel — Псевдоним oci_cancel
    • ocicloselob — Псевдоним OCI-Lob::close
    • ocicollappend — Псевдоним OCI-Collection::append
    • ocicollassign — Псевдоним OCI-Collection::assign
    • ocicollassignelem — Псевдоним OCI-Collection::assignElem
    • ocicollgetelem — Псевдоним OCI-Collection::getElem
    • ocicollmax — Псевдоним OCI-Collection::max
    • ocicollsize — Псевдоним OCI-Collection::size
    • ocicolltrim — Псевдоним OCI-Collection::trim
    • ocicolumnisnull — Псевдоним oci_field_is_null
    • ocicolumnname — Псевдоним oci_field_name
    • ocicolumnprecision — Псевдоним oci_field_precision
    • ocicolumnscale — Псевдоним oci_field_scale
    • ocicolumnsize — Псевдоним oci_field_size
    • ocicolumntype — Псевдоним oci_field_type
    • ocicolumntyperaw — Псевдоним oci_field_type_raw
    • ocicommit — Псевдоним oci_commit
    • ocidefinebyname — Псевдоним oci_define_by_name
    • ocierror — Псевдоним oci_error
    • ociexecute — Псевдоним oci_execute
    • ocifetch — Псевдоним oci_fetch
    • ocifetchinto — Устаревший вариант функций oci_fetch_array, oci_fetch_object, oci_fetch_assoc и oci_fetch_row
    • ocifetchstatement — Псевдоним oci_fetch_all
    • ocifreecollection — Псевдоним OCI-Collection::free
    • ocifreecursor — Псевдоним oci_free_statement
    • ocifreedesc — Псевдоним OCI-Lob::free
    • ocifreestatement — Псевдоним oci_free_statement
    • ociinternaldebug — Псевдоним oci_internal_debug
    • ociloadlob — Псевдоним OCI-Lob::load
    • ocilogoff — Псевдоним oci_close
    • ocilogon — Псевдоним oci_connect
    • ocinewcollection — Псевдоним oci_new_collection
    • ocinewcursor — Псевдоним oci_new_cursor
    • ocinewdescriptor — Псевдоним oci_new_descriptor
    • ocinlogon — Псевдоним oci_new_connect
    • ocinumcols — Псевдоним oci_num_fields
    • ociparse — Псевдоним oci_parse
    • ociplogon — Псевдоним oci_pconnect
    • ociresult — Псевдоним oci_result
    • ocirollback — Псевдоним oci_rollback
    • ocirowcount — Псевдоним oci_num_rows
    • ocisavelob — Псевдоним OCI-Lob::save
    • ocisavelobfile — Псевдоним OCI-Lob::import
    • ociserverversion — Псевдоним oci_server_version
    • ocisetprefetch — Псевдоним oci_set_prefetch
    • ocistatementtype — Псевдоним oci_statement_type
    • ociwritelobtofile — Псевдоним OCI-Lob::export
    • ociwritetemporarylob — Псевдоним OCI-Lob::writeTemporary


Введение

Эти функции позволяют работать с базой данных Oracle Database 12c, 11g, 10g, 9i и 8i. Поддерживаются SQL и PL/SQL-выражения. Основной функционал представляет собой поддержку транзакций, привязку переменных PHP к соответствующим плейсхолдерам Oracle, расширенную поддержку больших объектов (LOB) и коллекций. Также поддерживаются кэширование результатов и такие возможности масштабирования Oracle как пул постоянных соединений базы данных (Database Resident Connection Pooling, DRCP).


Установка и настройка

Содержание

  • Требования
  • Установка
  • Testing
  • Настройка во время выполнения


Требования

Расширение OCI8 1.4 входит в PHP 5.3, PHP 5.4 и PHP 5.5. Оно также доступно с » PECL. Новая версия OCI8 2.0 доступна с » PECL. OCI8 1.4 требует клиентские библиотеки Oracle версий 12c, 11g, 10g или 9iR2 и устанавливается на PHP 4.3.9 и новее. OCI8 2.0 требует клиентские библиотеки Oracle версий 12c, 11g или 10g и устанавливается на PHP 5.2 и новее.

Если база данных Oracle находится на той же машине, что и PHP, то все необходимые библиотеки уже установлены. Если PHP установлен на другую машину, то используйте бесплатные библиотеки с » Oracle Instant Client.

Для использования Oracle Instant Client, установите basic или basiclite zip-архив Oracle Instant Client или RPM-пакет. При сборке PHP из исходного кода, также установите zip-архив sdk или devel RPM-пакет.

Необходимо использовать PHP с теми же или более свежими версиями библиотек Oracle, чем те, с которыми было собрано расширение OCI8.

В Windows, DLL-библиотеке php_oci8 необходимы библиотеки из версии 10gR2 или выше. В версиях PHP от 5.3 и до 5.3.5 включительно, DLL-библиотеке необходимы клиентские библиотеки версии Oracle 11gR1 и выше. Начиная с версии PHP 5.3.6 DLL-библиотеке php_oci8_11g требуются клиентские библиотеки версии Oracle 11gR2 и выше. DLL файл php_oci8_12c DLL из PECL требует клиентские библиотеки версии Oracle 12сR1. В некоторых версиях Instant Client вам также могут дополнительно потребоваться библиотеки mfc71.dll и msvcr71.dll.

Замечание:

Если OCI8 использует клиентские библиотеки 9iR2, то PHP с может соединиться с базой данных Oracle 8i, 9iR2, 10g или 11g. Если OCI8 использует клиентские библиотеки 10g, то база данных может иметь версии 9iR2, 10g, 11g или 12c. Если OCI8 использует клиентские библиотеки 11g, то база данных может иметь версии 9iR2, 10g, 11g или 12c. Если OCI8 использует клиентские библиотеки 12с, то база данных может иметь версии 10g, 11g или 12c.

Замечание:

Полный набор возможностей OCI8 возможен только при использовании новейших версий клиентских библиотек Oracle и базы данных.


Установка

Сборка PHP совместно с OCI8

Перед сборкой OCI8 изучите предыдущий раздел "Требования".

Для работы расширения OCI8, укажите при настройке PHP опцию --with-oci8 .

Перед стартом веб-сервера, OCI8 обычно требуется несколько переменных окружения Oracle (см. ниже) для обнаружения библиотек, конфигурационных файлов и установки некоторых базовых свойств, таких как кодировка, используемая библиотеками Oracle. Эти переменные должны быть установлены перед запуском любого PHP-процесса.

Бинарный файл PHP должен использовать ту же, или более свежую основную версию библиотек Oracle, чем ту, с которой он был собран. Например, если вы собрали OCI8 с библиотеками Oracle 11.2, то PHP также должен работать с библиотеками Oracle 11.2. Приложения PHP могут подключаться к другим версиям Oracle Database, так как Oracle имеет клиент-серверную совместимость разных версий.

Установка OCI8 в виде подгружаемого (shared) расширения

Указание опции конфигурации shared позволяет собрать OCI8 в виде динамически подгружаемой библиотеки. Сборка в виде подгружаемого расширения позволяет легко обновлять OCI8 без пересборки всего PHP.

Соберите OCI8 с помощью одной из следующих опций.

  • При использовании бесплатных библиотек » Oracle Instant Client:

    ./configure --with-oci8=shared,instantclient,/путь/к/instant/client/lib

    Если Instant Client установлен из ZIP-архива, не забудьте в первую очередь создать символическую ссылку на библиотеку, например, так: ln -s libclntsh.so.11.1 libclntsh.so.

    Если Oracle Instant Client был установлен с помощью RPM, команда конфигурации будет выглядеть так:

    ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/<version>/client/lib

    Например, --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib

    Учтите, что поддержка Oracle Instant Client появилась только начиная с версий PHP 4.3.11 и 5.0.4 и ранее использовалась с опцией --with-oci8-instant-client .

  • При использовании базы данных Oracle database или полной установке Oracle Client:

    ./configure --with-oci8=shared,$ORACLE_HOME

    Убедитесь, что пользователь, под которым запущен веб-сервер, (nobody, www) имеет доступ к библиотекам, файлам инициализации и tnsnames.ora (если используется) в папке $ORACLE_HOME. При использовании Oracle 10gR2, может понадобиться запуск утилиты $ORACLE_HOME/install/changePerm.sh для получения доступа к этой папке.

После настройки следуйте обычной процедуре сборки PHP, например, make install, после чего будет создано подгружаемая библиотека oci8.so. Возможно, вам потребуется вручную перенести ее в папку расширений PHP, указанную опцией extension_dir вашего php.ini.

Для завершения установки OCI8 добавьте следующую строку в php.ini:

extension=oci8.so

Установка OCI8 в виде статически скомпилированного расширения

Сборка PHP с подключением OCI8, используя одну из следующих конфигурационных опций.

  • При использовании Oracle Instant Client:

    ./configure --with-oci8=instantclient,/путь/к/instant/client/lib

  • При использовании базы данных Oracle или полной установке Oracle Client:

    ./configure --with-oci8=$ORACLE_HOME

После настройки следуйте обычной процедуре установки PHP, например, make install. После успешной сборки нет необходимости добавлять oci8.so в файл php.ini. Никаких дополнительных шагов сборки больше не требуется.

Установка OCI8 из PECL

Расширение OCI8 может быть включено в текущую установку PHP как автоматически, так и вручную с помощью » PECL.

Для автоматической установки следуйте данным инструкциям:

  • Если ваш компьютер находится за файрволлом, установите прокси для PEAR, например:

    pear config-set http_proxy http://my-proxy.example.com:80/

  • Запустите

    pecl install oci8

    При запросе введите либо значение $ORACLE_HOME, либо instantclient,/path/to/instant/client/lib.

    Обратите внимание: Не вводите переменную $ORACLE_HOME, т.к. она не будет развернута. Вместо этого, введите реальный путь к домашней папке Oracle.

Для установки вручную, если команда pecl недоступна, то скачайте пакет установки PECL OCI8, например, oci8-1.4.10.tgz.

  • Разархивируйте пакет:

    tar -zxf oci8-1.4.10.tgz
cd oci8-1.4.10

  • Подготовьте к установке:

    phpize

  • Настройте пакет, указав $ORACLE_HOME или Instant Client:

    ./configure -with-oci8=shared,$ORACLE_HOME

    или

    ./configure -with-oci8=shared,instantclient,/path/to/instant/client/lib

  • Установите пакет:

    make install

После автоматической или ручной установки отредактируйте ваш php.ini, добавив в него следующую строку:

extension=oci8.so

Убедитесь, что директива php.ini extension_dir установлена на ту самую папку, в которую была установлена библиотека oci8.so.

Установка OCI8 в Windows

При использовании клиентских библиотек Oracle 10gR2 в Windows, раскомментируйте в php.ini строку extension=php_oci8.dll. При использовании клиентских библиотек Oracle 11gR2 и новее, раскомментируйте extension=php_oci8_11g.dll или extension=php_oci8.dll. С библиотеками Oracle 12c используйте extension=php_oci8_12c.dll или extension=php_oci8_11g.dll или extension=php_oci8.dll. Одновременно можно включить только одну из этих библиотек. DLL файлы с более высокой версией могут содержать больше функций. Не все библиотеки доступны во всех версиях PHP. Убедитесь, что директива php.ini extension_dir установлена на папку с DLL файлами расширений PHP.

При использовании Instant Client, установите системную переменную окружения PATH на папку с библиотекой Oracle.

Установка окружения Oracle

Перед использованием данного расширения, убедитесь, что переменные окружения Oracle правильно настроены для пользователя, под которым работает веб-сервер. Если ваш веб-сервер автоматически стартует при загрузке, то убедитесь, что окружение при загрузке также настроено корректно.

Замечание:

Не устанавливайте переменные окружения Oracle через putenv() в PHP-скрипте, потому что библиотеки Oracle могут быть загружены и проинициализированы до запуска вашего скрипта. Переменные, установленные через putenv() могут затем вызывать конфликты, падения и прочее непредсказуемое поведение. Некоторые функции могут работать, в то время как другие давать мелкие ошибки. Необходимо устанавливать эти переменные до запуска веб-сервера.

В Red Hat Linux и его вариантах, экспортируйте переменные в конце файла /etc/sysconfig/httpd. Другие системы с Apache 2 могут использовать скрипт envvars из папки bin в дистрибутиве Apache. Третьим вариантом является директива Apache SetEnv в файле httpd.conf, на каких-то системах она может работать, однако, известно, что на некоторых ее недостаточно.

Чтобы удостовериться в корректной настройке переменных окружения, используйте функцию phpinfo() и проверьте, что раздел Environment (не Apache Environment) содержит ожидаемые переменные.

Следующая таблица содержит переменные, которые могут вам потребоваться. За подробностями обо всех доступных переменных обращайтесь к документации Oracle.

Общие переменные окружения Oracle
Название | Цель
ORACLE_HOME | Указывает на папку, с полностью установленной базой данных Oracle. Не устанавливайте эту переменную при использовании Oracle Instant Client, т.к. в этом нет необходимости и может вызвать проблемы при установке.
ORACLE_SID | Содержит имя базы данных на локальной машине, к которой идет подключение. Нет необходимости устанавливать эту переменную при использовании Oracle Instant Client, или всегда передавать в параметрах соединения в функцию oci_connect().
LD_LIBRARY_PATH | Установите эту переменную (или ее эквивалент на используемой платформе, например, DYLD_LIBRARY_PATH, LIBPATH или SHLIB_PATH) в местоположение библиотек Oracle, например, $ORACLE_HOME/lib или /usr/lib/oracle/11.1/client/lib. В этой переменной нет необходимости, если библиотеки указываются другим механизмом поиска, например, ldconfig или LD_PRELOAD.
NLS_LANG | Это основная переменная, используемая для указания кодировки и настроек глобализации в библиотеках Oracle.
ORA_SDTZ | Устанавливает временную зону сессии Oracle.
TNS_ADMIN | Содержит папку, в которой хранятся конфигурационные файлы Oracle Net Services, такие как tnsnames.ora и sqlnet.ora. В ней нет необходимости, если строка соединения в функции oci_connect() использует синтаксис Easy Connect, такой как, например, localhost/XE. В ней также нет необходимости, если сетевые конфигурационные файлы содержатся в местах хранения по умолчанию, таких как $ORACLE_HOME/network/admin или /etc.
Менее используемые переменные окружения Oracle включают в себя TWO_TASK, ORA_TZFILE, а также различные установки глобализации Oracle наподобие переменных NLS* и ORA_NLS_*.

Решение проблем

Самой частой проблемой при установке OCI8 является неправильная установка окружения Oracle. Обычно это выражается в проблеме при использовании функций oci_connect() или oci_pconnect(). Ошибка может проявляться в виде ошибок PHP, например, Call to undefined function oci_connect(), ошибок Oracle, таких как ORA-12705, или даже крушения Apache. Проверьте лог-файлы Apache на наличие ошибок запуска и вышеописанные разделы для разрешения этой проблемы.

Несмотря на то, что сетевые ошибки, наподобие ORA-12154 или ORA-12514 сигнализируют ошибку в именовании или конфигурации сети Oracle, реальной причиной может быть некорректно установленное окружение PHP, из-за чего библиотеки Oracle не могут найти конфигурационный файл tnsnames.ora.

В Windows, использование нескольких версий Oracle на одной машине может легко вызвать их конфликты, которых можно избежать при соблюдении особых мер предосторожности, предусматривающих, что PHP использует корректную версию Oracle.

Утилита, помогающая определить искомые и загруженные в итоге библиотеки, может помочь в случае проблем при отсутствующих или конфликтующих библиотеках, особенно в Windows.

Замечание: Если веб-сервер не стартует или падает при старте

Проверьте, что Apache слинкован с библиотекой pthread:

# ldd /www/apache/bin/httpd
  libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000)
  libm.so.6 => /lib/libm.so.6 (0x4002f000)
  libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000)
  libdl.so.2 => /lib/libdl.so.2 (0x4007a000)
  libc.so.6 => /lib/libc.so.6 (0x4007e000)
  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Если libpthread нет в списке, переустановите Apache:

# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install

Имейте в виду, что на некоторых системах, наподобие UnixWare, libpthread называется libthread. Таким образом, PHP и Apache должны быть настроены с помощью EXTRA_LIBS=-lthread.


Testing

Набор тестов для OCI8 находится в директории ext/oci8/tests. После прогона этих тестов, в этой директории также окажутся файлы журналов произошедших событий и ошибок.

Перед запуском тестов необходимо отредактировать файл details.inc и задать значения переменным $user, $password и строке соединения $dbase. Набор тестов OCI8 разрабатывался с использованием учетной записи SYSTEM. Некоторые тесты не будут выполняться, если у тестирующего пользователя нет аналогичных прав доступа.

Для тестирования функции Oracle создания пулов соединений (Database Resident Connection Pooling) необходимо установить переменную $test_drcp в TRUE, а также убедитесь, что в строке соединения задан соответствующий адрес DRCP сервера.

В качестве альтернативы редактированию файла details.inc можно задать значения переменным окружения, например:

    $ export PHP_OCI8_TEST_USER=system
    $ export PHP_OCI8_TEST_PASS=oracle
    $ export PHP_OCI8_TEST_DB=localhost/XE
    $ export PHP_OCI8_TEST_DRCP=FALSE
Обратите внимание, что в некоторых оболочках эти переменные могут неправильно транслироваться в PHP процесс, и в тестах будут возникать ошибки подключения к базе данных. Будьте аккуратны при использовании этого метода настройки расширения.

Далее необходимо задать окружение базы данных Oracle. Для Oracle 10gR2 XE это:

    $ . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh

Для Oracle 11gR2 XE:

    $ . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh

Для других версий:

    $ . /usr/local/bin/oraenv

Некоторые оболочки требуют, чтобы в php.ini параметр variables_order содержал литеру E, например:

    variables_order = "EGPCS"

Запуск всех PHP тестов можно осуществить командой:

    $ cd your_php_src_directory
    $ make test
либо можно запустить только OCI8 тесты:
    $ cd your_php_src_directory
    $ make test TESTS=ext/oci8

По завершении тестирования, просмотрите журналы на наличие ошибок. На слабых машинах время выполнения некоторых тестов может превысить значение настройки таймаута в файле run-tests.php. Чтобы это исправить, задайте переменной окружения TEST_TIMEOUT значение побольше (значение в секундах).

На быстрых вычислительных системах с локальной базой данных, рассчитанных на небольшие нагрузки (например Oracle 11gR2 XE), некоторые тесты могут вызывать ORA-12516 или ORA-12520 ошибки. Для их предотвращения необходимо увеличить значение параметра базы данных PROCESSES по инструкции ниже:

Подключиться к базе данных в роли суперпользователя:

    $ su - oracle

Задать необходимое окружение с помощью сценариев oracle_env.sh или oraenv, как описано выше.

Запустить утилиту командной строки SQL*Plus и увеличить значение PROCESSES

    $ sqlplus / as sysdba
    SQL> alter system set processes=100 scope=spfile

Перезапустить базу данных:

    SQL> startup force


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации OCI8
Имя | По умолчанию | Меняемо | Список изменений
oci8.connection_class | "" | PHP_INI_ALL | Доступна начиная с версии PHP 5.3 (PECL OCI8 1.3).
oci8.default_prefetch | "100" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.events | Off | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.3 (PECL OCI8 1.3).
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.old_oci_close_semantics | Off | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.ping_interval | "60" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.privileged_connect | Off | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.1.2 (PECL OCI8 1.1).

Краткое разъяснение конфигурационных директив.

oci8.connection_class string

Этот определяемый пользователем текст используется соединениями Oracle 11g резидентного пула соединений базы данных (Database Resident Connection Pooling (DRCP)) для подразделения пула соединений. Это позволяет постоянным соединениям OCI8 из приложения заново использовать сессии базы данных от предыдущего PHP-скрипта, улучшая масштабируемость. Если приложение использует процесс из пула базы данных, ранее используемый с другим классом соединений, настройки сессии, такие как формат даты Oracle, будут сброшены. Это предотвращает случайное деление информации между различными приложениями.

Значение может быть установлено во время выполнения скрипта с помощью ini_set() до установки соединения.

Для использования DRCP, OCI8 должна быть слинкована с библиотеками Oracle 11g и база данных должна быть Oracle 11g. Пул соединений в базе данных должен быть включен, oci8.connection_class должно быть установлено в одно и то же строковое значение для всех веб-серверов, выполняющих одно и то же приложение, а строка соединения OCI8 должна указывать на сервер из пула.

oci8.default_prefetch int

Эта опция устанавливает значение по умолчанию для количества экстра рядов, которые будут возвращены и автоматически закэшированы при низкоуровневом запросе данных из базы данных. Установка значения в 0 выключает предварительную выборку (prefetching).

Значение предварительной выборки не меняет количество возвращаемых пользователю рядов такими функциями как oci_fetch_array(); OCI8 внутренне обрабатывает предварительную выборку и кэширование рядов.

Значение может быть установлено отдельно для каждого выражения (per-statement) с помощью oci_set_prefetch() до выполнения самого выражения.

В PHP 5.3 (PECL OCI8 1.3.4) значение по умолчанию было увеличено с 10 до 100.

В PHP 5.3.2 (PECL OCI8 1.4) минимально устанавливаемое значение было уменьшено с 1 до 0, разрешая таким образом выключение предварительной выборки.

При использовании Oracle Database 12c, предварительное значение, заданное PHP, может быть переопределено клиентским конфигурационным файлом Oracle oraaccess.xml. Обратитесь к документации Oracle.

Замечание: Большая предварительная выборка может улучшить производительность за счет некоторого увеличенного использования памяти. Для запросов, возвращающих большие массивы данных, выгода в производительности будет значительной.

oci8.events boolean

Включение (On) позволяет уведомить PHP о событиях Быстрого Уведомления Приложений базы данных (Fast Application Notification (FAN)).

Без FAN, если экземпляр базы данных или узел машины неожиданно даст сбой, PHP приложения могут быть заблокированы, ожидая ответа от базы данных до истечения таймаута TCP. С помощью событий FAN PHP приложения быстро будут уведомлены о сбоях, которые влияют на установленные ими соединения к базе данных. Расширение OCI8 подчистит неиспользуемые соединения в кэше постоянных соединений.

При использовании директивы (On), база данных также должна быть настроена на отправку FAN событий.

Поддержка FAN доступна, если OCI8 была слинкована с библиотеками Oracle 10gR2 (или более поздними) и соединение было осуществлено к Oracle Database 10gR2 (или более поздней версии).

oci8.max_persistent int

Максимальное количество постоянных соединений OCI8 на один PHP процесс. Установка этой опции в -1 означает отсутствие лимита.

oci8.old_oci_close_semantics boolean

Эта опция контролирует поведение функции oci_close(). Ее включение означает, что oci_close() не делает ничего; соединение не будет закрыто, пока не закончится выполнение скрипта. Это сделано только в целях обратной совместимости. Если вы ощущаете потребность в этой настройке, строго рекомендуется настроить вызовы oci_close() в ваших скриптах вместо включения этой опции.

oci8.persistent_timeout int

Максимальное количество секунд, которое разрешается PHP-процессу держать неиспользуемое постоянное соединение открытым. Установка этой опции в -1 означает, что неиспользуемые соединения будут удержаны, пока PHP-процесс не завершит свое выполнение или соединение не будет принудительно закрыто с помощью функции oci_close().

Замечание: В PHP истечение срока действия неиспользуемых ресурсов не основано на уведомлениях. Оно случается когда PHP завершает обработку скрипта и проверяет отметку времени последних использованных ресурсов. Отсюда возникает следующий парадокс: неиспользуемые соединения могут быть закрыты только когда есть некоторая активность (хотя и не обязательно связанная с OCI8) в PHP-процессе. Если присутствует более одного PHP-процесса, то каждый из них в отдельности должен быть приведен в действие для того, чтобы инициировать истечение срока действия простаивающих ресурсов. Введение резидентного пула соединений базы данных (DRCP) в Oracle 11g разрешает проблемы с памятью и ресурсами, которые ранее пытались решить oci8.max_persistent и oci8.persistent_timeout.

Замечание: В PHP 5.3 (PECL OCI8 1.3), постоянные соединения могут быть закрыты с помощью oci_close().

oci8.ping_interval int

Количество секунд, которое должно пройти до совершения пинга в течение выполнения oci_pconnect(). Пинг обеспечивает корректность соединения базы данных. Если установлена в 0, постоянные соединения будут пинговаться при каждом вызове oci_pconnect(). Для полного отключения пингов установите эту опцию в -1.

Замечание: Отключение пингов позволяет oci_pconnect() действовать с максимальной эффективностью, но PHP может быть неспособен определить непригодные соединения, например, при обрыве сети или при отключении базы данных Oracle после того, как PHP установил соединение, пока соединение вновь не будет использовано в скрипте. Проконсультируйтесь с документацией функции oci_pconnect() для более подробной информации.

oci8.privileged_connect boolean

Эта опция позволяет соединениям использовать привилегированные внешние учетные записи OCI_SYSOPER или OCI_SYSDBA.

Замечание: Установка этой директивы в On позволит скриптам, запущенных с соответствующими пользовательскими привилегиями операционной системы, соединяться с базой данных в качестве привилегированных пользователей базы данных без требования пароля. Это может быть брешью системы безопасности.

oci8.statement_cache_size int

Эта опция включает кэширование выражений, а также указывает сколько выражений необходимо кэшировать. Для отключения кэширования выражений просто установите значение этой опции в 0.

Кэширование выражений убирает необходимость передавать текст выражения к базе данных, а также обратную передачу различных метаданных об этом выражении обратно к PHP. Это может значительно улучшить общую производительность системы в приложениях, повторно использующих выражения в течение жизни одного соединения. Некоторые дополнительные "курсоры" баз данных могут остаться открытыми, подразумевая, что данные выражения будут использованы повторно.

Установите это значение размером рабочего набора выражений, используемых вашим приложением. Установка слишком малого значения может повлечь выброс выражений из кэша до их повторного использования.

Эта опция чаще всего используется с постоянными соединениями.

При использовании Oracle Database 12c, предварительное значение, заданное PHP, может быть переопределено клиентским конфигурационным файлом Oracle oraaccess.xml. Обратитесь к документации Oracle.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

OCI8 Function and Method Modes
Константа | Описание
OCI_ASSOC | Используется функциями oci_fetch_all() и oci_fetch_array() для получения результатов в виде ассоциативного массива.
OCI_BOTH | Используется функциями oci_fetch_all() и oci_fetch_array() для получения результатов в виде массива с ассоциативными и числовыми индексами.
OCI_COMMIT_ON_SUCCESS | Режим выполнения выражений для oci_execute(). Автоматически завершает транзакцию оператором COMMIT при успешном выполнении выражения.
OCI_CRED_EXT | Используется функцией oci_connect() для внешней или системной аутентификации. Добавлена Introduced в PHP 5.3 и PECL OCI8 1.3.4.
OCI_DEFAULT | Смотри OCI_NO_AUTO_COMMIT.
OCI_DESCRIBE_ONLY | Режим выполнения выражений для oci_execute(). Используйте этот режим, если вы хотите получить данные о выполнении запроса, а не выполнить сам запрос.
OCI_EXACT_FETCH | Устарело. Режим получения результатов запроса. Используется в том случае, если приложению известно заранее сколько строк будет получено в результате. Oracle 8 и более поздние версии не используют выборку результатов с упреждением в этом режиме, а курсоры уничтожаются автоматически после выборки ожидаемого количества строк, что может уменьшить требования сервера к ресурсам.
OCI_FETCHSTATEMENT_BY_COLUMN | Режим oci_fetch_all() по умолчанию.
OCI_FETCHSTATEMENT_BY_ROW | Альтернативный режим oci_fetch_all().
OCI_LOB_BUFFER_FREE | Используется функцией OCI-Lob::flush для освобождения используемых буферов.
OCI_NO_AUTO_COMMIT | Режим выполнения выражений для oci_execute(). В этом режиме транзакция не завершается автоматически оператором COMMIT. Для повышения читаемости используйте в новом коде эту константу вместо старой равносильной константы OCI_DEFAULT. Добавлена в PHP 5.3.2 (PECL OCI8 1.4).
OCI_NUM | Используется с oci_fetch_all() и oci_fetch_array() для получения массива с числовыми индексами.
OCI_RETURN_LOBS | Используется oci_fetch_array() для получения содержания объекта LOB вместо дескриптора.
OCI_RETURN_NULLS | Используется с oci_fetch_array() для получения пустых элементов массива, если соответствующее поле в результате равно NULL.
OCI_SEEK_CUR | Используется OCI-Lob::seek для задания позиции смещения.
OCI_SEEK_END | Используется OCI-Lob::seek для задания позиции смещения.
OCI_SEEK_SET | Используется OCI-Lob::seek для задания позиции смещения.
OCI_SYSDATE | Больше не используется.
OCI_SYSDBA | Используется функцией oci_connect() для соединения с привилегиями SYSOPER. Опция php.ini oci8.privileged_connect должна быть включена.
OCI_SYSOPER | Используется функцией oci_connect() для соединения с привилегиями SYSOPER. Опция php.ini oci8.privileged_connect должна быть включена.
OCI_TEMP_BLOB | Используется функцией OCI-Lob::writeTemporary для создания временного BLOB.
OCI_TEMP_CLOB | Используется функцией OCI-Lob::writeTemporary для создания временного CLOB.
OCI8 привязка переменных и определение типов
Константа | Описание
OCI_B_BFILE | Используется функцией oci_bind_by_name() для привязки переменных типа BFILE.
OCI_B_BIN | Используется совместно с функцией oci_bind_by_name() для привязки необработанных (RAW) данных.
OCI_B_BLOB | Используется функцией oci_bind_by_name() для привязки переменных типа BLOB.
OCI_B_BOL | Используется функцией oci_bind_by_name() для привязки переменных типа PL/SQL BOOLEAN.
OCI_B_CFILEE | Используется функцией oci_bind_by_name() для привязки переменных типа CFILE.
OCI_B_CLOB | Используется функцией oci_bind_by_name() для привязки переменных типа CLOB.
OCI_B_CURSOR | Используется функцией oci_bind_by_name() для привязки курсоров, ранее полученных из oci_new_descriptor().
OCI_B_INT | Используется функцией oci_bind_array_by_name() для привязки массивов элементов типа INTEGER.
OCI_B_NTY | Используется функцией oci_bind_by_name() для привязки именованных типов данных. Обратите внимание: в PHP < 5.0 константа называлась OCI_B_SQLT_NTY.
OCI_B_NUM | Используется функцией oci_bind_array_by_name() для привязки массивов элементов типа NUMBER.
OCI_B_ROWID | Используется функцией oci_bind_by_name() для привязки переменных типа ROWID.
SQLT_AFC | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа CHAR.
SQLT_AVC | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа VARCHAR2.
SQLT_BDOUBLE | Не поддерживается.
SQLT_BFILEE | То же, что и OCI_B_BFILE.
SQLT_BFLOAT | Не поддерживается.
SQLT_BIN | То же, что и OCI_B_BIN.
SQLT_BLOB | То же, что и OCI_B_BLOB.
SQLT_BOL | То же, что и OCI_B_BOL.
SQLT_CFILEE | То же, что и OCI_B_CFILEE.
SQLT_CHR | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа VARCHAR2. Также используется функцией oci_bind_by_name().
SQLT_CLOB | То же, что и OCI_B_CLOB.
SQLT_FLT | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа FLOAT.
SQLT_INT | То же, что и OCI_B_INT.
SQLT_LBI | Используется функцией oci_bind_by_name() для привязки переменных типа LONG RAW.
SQLT_LNG | Используется функцией oci_bind_by_name() для привязки переменных типа LONG.
SQLT_LVC | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа LONG VARCHAR.
SQLT_NTY | То же, что и OCI_B_NTY.
SQLT_NUM | То же, что и OCI_B_NUM.
SQLT_ODT | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа LONG.
SQLT_RDD | То же, что и OCI_B_ROWID.
SQLT_RSET | То же, что и OCI_B_CURSOR.
SQLT_STR | Используется функцией oci_bind_array_by_name() для привязки массивов с элементами типа STRING.
SQLT_UIN | Не поддерживается.
SQLT_VCS | Используется совместно с oci_bind_array_by_name() для привязки массивов VARCHAR.
Типы дескрипторов OCI8
Константа | Описание
OCI_DTYPE_FILE | Флаг используется oci_new_descriptor() для инициализации дескриптора типа FILE.
OCI_DTYPE_LOB | Флаг используется oci_new_descriptor() для инициализации дескриптора типа LOB.
OCI_DTYPE_ROWID | Флаг используется oci_new_descriptor() для инициализации дескриптора типа ROWID.
OCI_D_FILE | То же, что и OCI_DTYPE_FILE.
OCI_D_LOB | То же, что и OCI_DTYPE_LOB.
OCI_D_ROWID | То же, что и OCI_DTYPE_ROWID.


Примеры

Эти примеры выполняются под пользователем HR, который является образцом из "Human Resources" схемы, поставляемой вместе с базой данных Oracle. Возможно потребуется разблокировать этот аккаунт и переустановить для него пароль, чтобы использовать его.

Примеры подключаются к базе данных XE на вашем компьютере. Вы можете заменить строки с подключением для использования своих баз данных.

Пример #1 Простой запрос

Данный пример показывает запрос и результат. Выражения в OCI8 используют последовательность из шагов подготовка-выполнение-выборка.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Подготовка выражения
$stid = oci_parse($conn, 'SELECT * FROM departments');
if (!$stid) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Выполним логику запроса
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Получим результат запроса
print "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    print "<tr>\n";
    foreach ($row as $item) {
        print "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    print "</tr>\n";
}
print "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Вставка с использованием привязанных переменных

Привязывание переменных повышают производительность за счет повторного использования контекста запроса и кеширования. Также они повышают безопасность блокируя некоторые типы SQL-инъекций.

<?php

// Создайте таблицу перед выполнением:
//   CREATE TABLE MYTABLE (mid NUMBER, myd VARCHAR2(20));

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO MYTABLE (mid, myd) VALUES(:myid, :mydata)');

$id = 60;
$data = 'Some data';

oci_bind_by_name($stid, ':myid', $id);
oci_bind_by_name($stid, ':mydata', $data);

$r = oci_execute($stid);  // выполнение и фиксация

if ($r) {
    print "Была вставлена одна строка";
}

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 Привязка в WHERE выражении запроса

Пример единичной привязки скаляра.

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE department_id = :didbv ORDER BY last_name';
$stid = oci_parse($conn, $sql);
$didbv = 60;
oci_bind_by_name($stid, ':didbv', $didbv);
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['LAST_NAME'] ."<br>\n";
}

// Выведет
//    Austin
//    Ernst
//    Hunold
//    Lorentz
//    Pataballa

oci_free_statement($stid);
oci_close($conn);

?>

Пример #4 Вставка данных в поле типа CLOB

Для больших данных используйте длинные двоичные объекты (BLOB) или длинные символьные объекты (CLOB). Данный пример использует тип данных CLOB.

<?php

// Создайте таблицу перед выполнением:
//     CREATE TABLE MYTABLE (mykey NUMBER, myclob CLOB);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$mykey = 12343;  // произвольный ключ для данного примера;

$sql = "INSERT INTO mytable (mykey, myclob)
        VALUES (:mykey, EMPTY_CLOB())
        RETURNING myclob INTO :myclob";

$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_NO_AUTO_COMMIT); // используйте OCI_DEFAULT для PHP <= 5.3.1
$clob->save("A very long string");

oci_commit($conn);

// Получение CLOB данных

$query = 'SELECT myclob FROM mytable WHERE mykey = :mykey';

$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
    print '<tr><td>'.$row['MYCLOB'].'</td></tr>';
    // В цикле, очищение больших переменных перед повторным получением данных, уменьшает пиковое потребление памяти PHP
    unset($row);
}
print '</table>';

?>

Пример #5 Использование PL/SQL хранимых процедур

Вы должны привязывать переменную для каждого возвращаемого значения и опционально для каждого аргумента функции.

<?php

/*
  До выполнения PHP скрипта сойздайте хранимую процедуру в
  SQL*Plus или SQL Developer:

  CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
  BEGIN
      RETURN p * 3;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p = 8;

$stid = oci_parse($conn, 'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid, ':p', $p);
oci_bind_by_name($stid, ':r', $r, 40);

oci_execute($stid);

print "$r\n";   // выведет 24

oci_free_statement($stid);
oci_close($conn);

?>

Пример #6 Использование PL/SQL хранимых процедур

При использовании хранимых процедур желательно привязывать переменные к каждому аргументу.

<?php

/*
  До выполнения PHP скрипта сойздайте хранимую процедуру в
  SQL*Plus или SQL Developer:

  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
  BEGIN
      p2 := p1 * 2;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 = 8;

$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // выведет 16

oci_free_statement($stid);
oci_close($conn);

?>

Пример #7 Вызов PL/SQL процедур, возвращающих REF CURSOR

Каждое возвращаемое значение из запроса является REF CURSOR.

<?php
/*
  Создайте PL/SQL хранимую процедуру:

  CREATE OR REPLACE FUNCTION myfunc(p1 IN NUMBER) RETURN SYS_REFCURSOR AS
      rc SYS_REFCURSOR;
  BEGIN
      OPEN rc FOR SELECT city FROM locations WHERE ROWNUM < p1;
      RETURN rc;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT myfunc(5) AS mfrc FROM dual');
oci_execute($stid);

echo "<table border='1'>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC))) {
    echo "<tr>\n";
    $rc = $row['MFRC'];
    oci_execute($rc);  // возвращает значение поля из запроса в виде указателя
    while (($rc_row = oci_fetch_array($rc, OCI_ASSOC))) {
        echo "    <td>" . $rc_row['CITY'] . "</td>\n";
    }
    oci_free_statement($rc);
    echo "</tr>\n";
}
echo "</table>\n";

// Выведет:
//   Beijing
//   Bern
//   Bombay
//   Geneva

oci_free_statement($stid);
oci_close($conn);

?>


Работа с соединениями OCI8 и Connection Pooling

Функции подключения

Расширение OCI8 предоставляет три различных функции для подключения к серверу Oracle. Стандартная функция соединения - это oci_connect(). Она создает соединение к базе данных Oracle и возвращает ресурс, который используется при последующих обращениях к БД.

Подключение к серверу Oracle является достаточно дорогостоящей операцией с точки зрения времени, которое требуется для выполнения. Функция oci_pconnect() использует постоянный кэш соединений, которые могут быть повторно использованы различными запросами скриптов. Это означает, что затраты на установку соединения, как правило, происходят только единожды на один процесс PHP (или на потомка Apache).

Если приложение соединяется к серверу Oracle, используя особый набор данных для каждого веб-пользователя, то постоянный кэш соединений, используемый функцией oci_pconnect() будет менее полезным, т.к. количество одновременных пользователей вырастает до того уровня, где он может начать оказывать негативное влияние на общую производительность сервера Oracle из-за поддержания слишком большого количества простаивающих соединений. Если приложение настроено таким образом, то рекомендуется либо настроить его с помощью параметров конфигурации oci8.max_persistent и oci8.persistent_timeout (это даст возможность управления размером кэша постоянных соединений и их время жизни), либо использовать Oracle Database Resident Connection Pooling (в Oracle Database 11g и новее), либо использовать функцию oci_connect() вместо нее.

Вместе oci_connect() и oci_pconnect() используют кэш подключений; если множество вызовов oci_connect() использует одинаковые параметры в данном скрипте, второй и последующие вызовы вернут существующий дескриптор соединения. Кэш, используемый функцией oci_connect(), очищается по завершению выполнения скрипта, или когда соединение неявно закрывается. У функции oci_pconnect() похожее поведение, хотя ее кэш обрабатывается отдельно и остается действующим между запросами HTTP.

Эта возможность кеширования означает, что два дескриптора не изолированы транзакционно (они на самом деле являются одним и тем же дескриптором, поэтому здесь нет никакой изоляции). Если приложению необходимы два отдельных транзакционно изолированных соединения, то необходимо использовать функцию oci_new_connect().

Кеш функции oci_pconnect() очищается и закрываются все соединения к БД, когда завершается процесс PHP. Поэтому эффективное использование постоянных соединений требует, чтобы PHP был модулем Apache или использовался с FCGI или подобным. Постоянные соединения не будут иметь никаких преимуществ перед oci_connect(), когда PHP используется с CGI или через командную строку.

Функция oci_new_connect() всегда создает новое соединение с сервером Oracle, невзирая на то, что другие соединения могут уже существовать. Высоконагруженным веб-приложениям следует избегать использования oci_new_connect(), особенно в самых загруженных частях приложения.

Создание пула соединений DRCP

PHP начиная с 5.3 (PECL OCI8 1.3) поддерживает постоянный пул соединений Oracle 11g (DRCP). DRCP позволяет более эффективно использовать память СУБД и предоставляет высокую масштабируемость. Изменять код приложения для использования DRCP либо нет необходимости, либо требуются минимальные изменения.

DRCP подходит для приложений, которые подключаются используя несколько схем БД и сохраняют соединения к БД открытыми короткий промежуток времени. Другим приложениям следует использовать доступные по умолчанию Dedicated серверные процессы или использовать Shared сервера.

DRCP приносит пользу всем трем функциям подключения, однако предоставляет самую высокую масштабируемость, когда соединения создаются с помощью функции oci_pconnect().

Чтобы функционал DRCP был доступен в OCI8, клиентские библиотеки Oracle, используемые в PHP, и версия сервера баз данных должны быть 11g и новее.

Документация по DRCP находится в нескольких руководствах Oracle. К примеру, см. » Конфигурирование пула постоянных соединений базы данных в документации Oracle для информации по использованию. Документ » техническое описание DRCP содержит дополнительную информацию по DRCP.

Для использования DRCP, скомпилируйте PHP с расширением OCI8 1.3 (и новее)ы и библиотеками Oracle 11g (и новее) и затем выполните следующие действия:

  • Как привилегированный администратор БД воспользуйтесь программой наподобие SQL*Plus, чтобы запустить пул соединений в СУБД:

        SQL> execute dbms_connection_pool.start_pool;

  • Дополнительно можно использовать dbms_connection_pool.alter_param(), чтобы конфигурировать параметры DRPC. Текущие настройки пула могут быть получены из представления DBA_CPOOL_INFO.

  • Обновите используемую строку соединения. К примеру, для приложений PHP, которые сейчас соединяются, используя Network Connect Name MYDB:

        $c = oci_pconnect("myuser", "mypassword", "MYDB");

    измените файл tnsnames.ora и добавьте оператор (SERVER=POOLED), например:

        MYDB = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=myhost.dom.com)
           (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales)
           (SERVER=POOLED)))

    В качестве альтернативы можно изменить синтаксис упрощенного соединения в PHP и добавить туда :POOLED после имени сервиса:

        $c = oci_pconnect("myuser", "mypassword", "myhost.dom.com:1521/sales:POOLED");

  • Отредактируйте php.ini и выберите имя класса соединения. Это имя устанавливает логическое разделение пула соединений и может использоваться, чтобы изолировать пул для отдельных приложений. Любое PHP-приложение с одинаковым именем пользователя и классом для соединения будет иметь возможность совместно использовать соединения в пуле, получая бОльшую масштабируемость.

        oci8.connection_class = "MY_APPLICATION_NAME"

  • Запустите приложение, соединяющееся с базой 11g и новее.

Замечание:

Приложения, использующие Oracle 10g, которые требуют производительности от постоянных соединений, могут уменьшить количество памяти сервера БД, которое используется Shared-серверами Oracle (ранее известные как многопоточные сервера). Обратитесь к документации Oracle для более подробной информации.

Рекомендации по DRCP и известные ограничения

При изменении пароля через DRCP-соединение будет выдаваться ошибка ORA-56609: Usage not supported with DRCP. Это документированное ограничение of Oracle Database 11g.

Начиная с расширения OCI8 версии 1.3 постоянные соединения теперь могут быть закрыты пользователем. Это позволяет получить больший контроль над использованием ресурсов соединений. Постоянные соединения теперь будут также закрываться автоматически, когда отсутствует указывающая на них переменная PHP, например, в таких случаях, как в конце области видимости пользовательской функции PHP. Это откатит любую незавершенную транзакцию. Эти изменения в постоянных соединениях делают их поведение похожим на поведение непостоянных соединений, упрощая интерфейс и позволяя приложениям быть более логичными и предсказуемыми. Для сохранения предыдущего поведения используйте директиву oci8.old_oci_close_semantics, принимающую значение On .

Если СУБД Oracle версии 11.1.0.6, то для использования DRCP должен быть применен патч для СУБД Oracle для устранения ошибки 6474441. Без этого патча могут происходить ошибки, такие как ORA-01000: maximum open cursors exceeded, ORA-01001 invalid cursor или ORA-01002 fetch out of sequence. Эти ошибки исправлены в Oracle версии 11.1.0.7 и более поздних.

Если патч для СУБД Oracle 11.1.0.6 не может быть применен, тогда вместо этого можно воспользоваться тремя методами:

  • Соединение используя Oracle Dedicated или Shared сервера вместо DRCP.
  • Установить директиву PHP oci8.statement_cache_size в 0.
  • Установить событие в файле параметров инициализации базы: event="56699 trace name context forever, level 128".

Патч 6474441 для БД Oracle версий 11.1.0.7 и 11.1.0.6 позволяет приложениям на PHP с DRCP-соединением использовать триггер базы LOGON для установки параметров сессии в момент ее создания. Примерами таких параметров являются язык NLS и формат даты.

Если патч к БД Oracle 11.1.0.6 не может быть установлен, то можно использовать несколько методов вместо использования триггеров LOGON:

  • После авторизации, явно установите свойства сессии используя код приложения PHP.
  • Соединитесь, используя Oracle Dedicated или Shared сервера вместо DRCP.

Автоматическое повторное установление постоянного соединения PHP после порождения нового процесса Apache или FCGI означает, что использование триггеров LOGON в PHP рекомендуется только для установки атрибутов сессии, а не для пользовательских запросов на соединение для каждого приложения. Это даже более проявляется с DRCP за счет автоматического изменения размера буфера соединений и со способом триггеров LOGON конфликтующим с DRCP аутентификацией.


OCI8 Fast Application Notification (FAN) Support

FAN support gives fast connection failover, an Oracle Database high availability feature. This allows PHP OCI8 scripts to be notified when a database machine or database instance becomes unavailable. Without FAN, OCI8 can hang until a TCP timeout occurs and an error is returned, which might be several minutes. Enabling FAN in OCI8 can allow applications to detect errors and re-connect to an available database instance without the web user being aware of an outage.

FAN support is available when the Oracle client libraries that PHP links with and the Oracle Database are either version 10gR2 or later.

FAN benefits users of Oracle's clustering technology (RAC) because connections to surviving database instances can be immediately made. Users of Oracle's Data Guard with a broker will see the FAN events generated when the standby database goes online. Standalone databases will send FAN events when the database restarts.

For active connections, when a machine or database instance becomes unavailable, a connection failure error will be returned by the OCI8 extension function currently being called. On a subsequent PHP script re-connect, a connection to a surviving database instance will be established. The OCI8 extension also transparently cleans up any idle connections affected by a database machine or instance failure so PHP connect calls will establish a fresh connection without the script being aware of any service disruption.

When oci8.events is On, it is suggested to set oci8.ping_interval to -1 to disable pinging, since enabling FAN events provide pro-active connection management of idle connections made invalid by a service disruption.

To enable FAN support in PHP OCI8, build PHP OCI8 with Oracle 10gR2 or later libraries and then follow these steps:

  • As a privileged database administrator, use a program like SQL*Plus to enable the database service to post FAN events, for example:

        SQL> execute dbms_service.modify_service(
                   SERVICE_NAME        => 'sales',
                   AQ_HA_NOTIFICATIONS => TRUE);

  • Edit php.ini and add

        oci8.events = On

  • If the application does not already handle OCI8 error conditions, modify it to detect failures and take appropriate action. This may include re-connecting and re-executing statements.
  • Run the application, connecting to Oracle Database 10gR2 or later.


OCI8 and DTrace Dynamic Tracing

OCI8 2.0 introduced static DTrace probes that can be used on operating systems that support DTrace. See DTrace Dynamic Tracing for an overview of PHP and DTrace.

Installing OCI8 with DTrace Support

To enable DTrace support in PHP OCI8, build OCI8 as a shared extension after setting PHP_DTRACE.

$ export PHP_DTRACE=yes
$ pecl install oci8

Edit php.ini, set extension_dir to the directory with the created oci8.so and also enable the extension by adding:

extension=oci8.so

If you install PHP OCI8 2.0 from PECL using phpize and configure (instead of pecl), you will still need to set PHP_DTRACE=yes. This is because the --enable-dtrace option will be ignored by the limited configure script of a PECL bundle.

See Installation of PECL extensions for general PECL installation instructions.

DTrace Static Probes in PHP OCI8

The following static probes are available in PHP OCI8
Probe Name | Probe Description | Probe Arguments
oci8-connect-entry | Initiated by oci_connect(), oci_pconnect() and oci_new_connect(). Fires before database connection is established. | char *username, char *dbname, char *charset, long session_mode, int persistent, int exclusive
oci8-connect-return | Fires at the end of connection. | void *connection
oci8-check-connection | Fires if an Oracle error might have caused the connection to become invalid. | void *connection, char *client_id, int is_open, long errcode, unsigned long server_status
oci8-sqltext | Fires when oci_parse() is executed. | void *connection, char *client_id, void *statement, char *sql
oci8-connection-close | Fires when the connection to the database is completely destroyed. | void *connection
oci8-error | Fires if an Oracle error occurs. | int status, long errcode
oci8-execute-mode | Fires at oci_execute() to show the execution mode. | void *connection, char *client_id, void *statement, unsigned int mode

These probes are useful for tracing OCI8 scripts.

The connection and statement are the pointers to internal structures used for tracking PHP connections and executed statements.

The client_id is the value set by oci_set_client_identifier().

Core PHP also has static probes. See DTrace Static Probes in Core PHP.

Internal Debugging DTrace Probes in OCI8
Probe Name
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

These probes are useful for OCI8 maintainers. Refer to the OCI8 source code for arguments and to see when the will fire.

Listing DTrace Static Probes in PHP OCI8

To list available probes, start a PHP process and then run:

# dtrace -l

The output will be similar to:

   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

The Provider column values consist of phpoci and the process id of the currently running PHP process.

The Function column refers to PHP's internal C implementation function names where each provider is located.

If a PHP process is not running, then no PHP probes will be shown.

DTrace with PHP OCI8 Example

This example shows the basics of the DTrace D scripting language.

Пример #1 user_oci8_probes.d for tracing all user-level PHP OCI8 Static Probes with 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);
}

This script uses the -Z option to dtrace, allowing it to be run when there is no PHP process executing. If this option were omitted the script would immediately terminate when no PHP executable was running because it knows none of the probes to be monitored are in existence.

On multi-CPU machines the probe ordering might not appear to be sequential. This depends on which CPU was processing the probes, and how threads migrate across CPUs. Displaying probe time stamps helps reduce confusion.

The script traces all user-level PHP OCI8 static probe points throughout the duration of a running PHP script. Run the D script:

# ./user_oci8_probes.d

Run a PHP script or application. The monitoring D script will output each probe's arguments as it fires. For example, a simple PHP script that queries a table might produce the following trace output:

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

When monitoring is complete, the D script can be terminated with a ^C.

See Also

  • DTrace Dynamic Tracing


Поддерживаемые типы данных

Данный драйвер поддерживает следующие типы данных при использовании функции 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 — Returns the next child statement resource from a parent statement resource that has Oracle Database 12c Implicit Result Sets
  • 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_result — Возвращает значение поля из результата запроса
  • oci_rollback — Откатывает транзакции, ожидающие обработки
  • oci_server_version — Возвращает версию сервера Oracle
  • oci_set_action — Задает имя для действия
  • oci_set_client_identifier — Задает идентификатор клиента
  • oci_set_client_info — Задает информацию о клиенте
  • oci_set_edition — Задает выпуск (edition) базы данных
  • oci_set_module_name — Задает имя модулю
  • oci_set_prefetch — Устанавливает количество строк, которые будут автоматически выбраны в буфер
  • oci_statement_type — Возвращает тип выражения


Связывает PHP массив с массивом Oracle PL/SQL

  • « OCI8 Функции
  • oci_bind_by_name »
  • PHP Manual
  • OCI8 Функции
  • Связывает PHP массив с массивом Oracle PL/SQL

oci_bind_array_by_name

(PHP 5 >= 5.1.2, PHP 7, PECL OCI8 >= 1.2.0)

oci_bind_array_by_name — Связывает PHP массив с массивом Oracle PL/SQL

Описание

bool oci_bind_array_by_name ( resource $statement , string $name , array &$var_array , int $max_table_length [, int $max_item_length = -1 [, int $type = SQLT_AFC ]] )

Связывает PHP массив var_array с указателем Oracle name на массив Oracle PL/SQL. Направление, ввод или вывод, для которого будет использоваться массив будет определяться во время выполнения.

Список параметров

statement

Идентификатор допустимого OCI выражения.

name

Указатель на массив Oracle.

var_array

Массив.

max_table_length

Задает максимальный размер для исходного и результирующего массивов.

max_item_length

Задает максимальный размер значений массива. Если не задано или равно -1, oci_bind_array_by_name() найдет самый большой элемент в исходном массиве и использует его размер в качестве этой настройки.

type

Используется для задания типа значений PL/SQL массива. См. список ниже:

  • SQLT_NUM - для массивов с элементами типа NUMBER.

  • SQLT_INT - для массивов с элементами типа INTEGER (Замечание: INTEGER - синоним для типа NUMBER(38), однако тип SQLT_NUM в этом случае не будет работать, даже несмотря на то, что они синонимичны).

  • SQLT_FLT - для массивов с элементами типа FLOAT.

  • SQLT_AFC - для массивов с элементами типа CHAR.

  • SQLT_CHR - для массивов с элементами типа VARCHAR2.

  • SQLT_VCS - для массивов с элементами типа VARCHAR.

  • SQLT_AVC - для массивов с элементами типа CHARZ.

  • SQLT_STR - для массивов с элементами типа STRING.

  • SQLT_LVC - для массивов с элементами типа LONG VARCHAR.

  • SQLT_ODT - для массивов с элементами типа DATE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_bind_array_by_name()

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$create = "CREATE TABLE bind_example(name VARCHAR(20))";
$stid = oci_parse($conn, $create);
oci_execute($stid);

$create_pkg = "
CREATE OR REPLACE PACKAGE ARRAYBINDPKG1 AS
  TYPE ARRTYPE IS TABLE OF VARCHAR(20) INDEX BY BINARY_INTEGER;
  PROCEDURE iobind(c1 IN OUT ARRTYPE);
END ARRAYBINDPKG1;";
$stid = oci_parse($conn, $create_pkg);
oci_execute($stid);

$create_pkg_body = "
CREATE OR REPLACE PACKAGE BODY ARRAYBINDPKG1 AS
  CURSOR CUR IS SELECT name FROM bind_example;
  PROCEDURE iobind(c1 IN OUT ARRTYPE) IS
    BEGIN
    -- Bulk Insert
    FORALL i IN INDICES OF c1
      INSERT INTO bind_example VALUES (c1(i));

    -- Fetch and reverse
    IF NOT CUR%ISOPEN THEN
      OPEN CUR;
    END IF;
    FOR i IN REVERSE 1..5 LOOP
      FETCH CUR INTO c1(i);
      IF CUR%NOTFOUND THEN
        CLOSE CUR;
        EXIT;
      END IF;
    END LOOP;
  END iobind;
END ARRAYBINDPKG1;";
$stid = oci_parse($conn, $create_pkg_body);
oci_execute($stid);

$stid = oci_parse($conn, "BEGIN arraybindpkg1.iobind(:c1); END;");
$array = array("one", "two", "three", "four", "five");
oci_bind_array_by_name($stid, ":c1", $array, 5, -1, SQLT_CHR);
oci_execute($stid);

var_dump($array);

?>


Прикрепляет переменную PHP к соответствующей метке в SQL-выражении

  • « oci_bind_array_by_name
  • oci_cancel »
  • PHP Manual
  • OCI8 Функции
  • Прикрепляет переменную PHP к соответствующей метке в SQL-выражении

oci_bind_by_name

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_bind_by_name — Прикрепляет переменную PHP к соответствующей метке в SQL-выражении

Описание

bool oci_bind_by_name ( resource $statement , string $bv_name , mixed &$variable [, int $maxlength = -1 [, int $type = SQLT_CHR ]] )

Прикрепляет переменную variable к метке bv_name. Такое прикрепление позволяет повысить производительность и избежать SQL-инъекций.

Прикрепление переменной позволяет базе данных повторно использовать кэшированные контекстные выражения от предыдущих запросов, даже если они первоначально были запущены другим пользователем или процессом. Это также снижает риск SQL-инъекций, поскольку данные в таком случае никогда не рассматриваются как инструкции SQL. Данные не требуется экранировать или заключать в кавычки.

Прикрепленные PHP-переменные могут быть изменены и снова выполнены без необходимости повторной обработки запроса или повторного прикрепления.

В Oracle, прикрепление переменных обычно разделяют на IN (прикрепляет значения, передаваемые в базу данных) и OUT (прикрепляет значения, возвращаемые PHP). Переменная может быть одновременно IN и OUT. Независимо от этого, характер прикрепленния переменных будет определен во время выполнения.

Необходимо указать maxlength при использовании OUT-привязки, что позволяет PHP зарезервировать больше памяти для хранения возвращаемого значения

Для IN-привязки рекомендуется также указать параметр maxlength, если выражение выполняется несколько раз с различными значениями PHP-переменной. В противном случае, Oracle может урезать размер данных до размера первоначального значения переменной PHP. Если максимальная длина значения неизвестна, рекомендуется вызывать oci_bind_by_name() перед каждым вызовом oci_execute(). Прикрепление неоправданно большой переменной повлияет на процесс сохранения базы данных.

Вид прикрепления указывает Oracle как работать с памятью при чтении данных. Для IN-прикрепления адрес в памяти должен содержать допустимые данные при вызове oci_execute(). Это значит, что значение переменной должно находиться в памяти во время исполнения. Если это не так, возможны некорректные результаты или ошибки наподобие "ORA-01460: unimplemented or unreasonable conversion requested" (запрошены невыполнимые или некорректные преобразования) Для OUT-прикрепления основным признаком является установка значения в переменную PHP.

Для многократно выполняемого выражения, привязка одних и тех же значений может уменьшить возможности оптимизатора Oracle по выработке наилучшего варианта выполнения инструкции. Длительное прикрепление выражений, которые редко исполняются, может также не принести пользы. Тем не менее, в обоих случаях, прикрепление является более безопасным, чем конкатенация строки запроса и непроверенных пользовательских данных.

Список параметров

statement

Допустимый идентификатор выражения OCI8.

bv_name

Метка с префиксом в виде двоеточия, используемая в выражении. Двоеточие опционально в bv_name. Oracle не использует знак вопроса для меток.

variable

Переменная PHP, ассоциированная с bv_name

maxlength

Устанавливает максимальный размер данных. Если указать -1, функция будет использовать текущий размер переменной variable в качестве максимального. При этом переменная variable должна существовать и содержать данные во время вызова oci_bind_by_name().

type

Тип данных, к которому Oracle будет приводить значения. По умолчанию type имеет значение SQLT_CHR. Oracle приводит данные от данного типа к типу поля (или типу переменной PL/SQL), если это возможно.

Если необходимо прикрепить переменную абстрактного типа (LOB/ROWID/BFILE), следует предварительно использовать oci_new_descriptor(). Параметр length не используется для абстрактных типов и должен быть установлен в -1.

Допустимые значения параметра type:

  • SQLT_BFILEE или OCI_B_BFILE - для BFILE-объектов;

  • SQLT_CFILEE или OCI_B_CFILEE - для CFILE-объектов;

  • SQLT_CLOB или OCI_B_CLOB - для CLOB-объектов;

  • SQLT_BLOB или OCI_B_BLOB - для BLOB-объектов;

  • SQLT_RDD или OCI_B_ROWID - для ROWID-объектов;

  • SQLT_NTY или OCI_B_NTY - для именованных типов даты;

  • SQLT_INT или OCI_B_INT - для целых чисел;

  • SQLT_CHR - для символов VARCHAR;

  • SQLT_BIN или OCI_B_BIN - для RAW-полей;

  • SQLT_LNG - для LONG-полей;

  • SQLT_LBI - для LONG RAW полей;

  • SQLT_RSET - для курсоров, созданных функцией oci_new_cursor();

  • SQLT_BOL или OCI_B_BOL - для PL/SQL BOOLEAN (Требуется OCI8 2.0.7 и Oracle Database 12c)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавление данных с использованием oci_bind_by_name()

<?php

// Создание таблицы:
//   CREATE TABLE mytab (id NUMBER, text VARCHAR2(40));

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn,"INSERT INTO mytab (id, text) VALUES(:id_bv, :text_bv)");

$id = 1;
$text = "Data to insert     ";
oci_bind_by_name($stid, ":id_bv", $id);
oci_bind_by_name($stid, ":text_bv", $text);
oci_execute($stid);

// В таблице содержится: 1, 'Data to insert     '

?>

Пример #2 Одна привязка для многократного использования

<?php

// Создание таблицы:
//   CREATE TABLE mytab (id NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$a = array(1,3,5,7,11);  // данные для вставки

$stid = oci_parse($conn, 'INSERT INTO mytab (id) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $v, 20);
foreach ($a as $v) {
    $r = oci_execute($stid, OCI_DEFAULT);  // не использовать автоматическое завершение транзакции
}
oci_commit($conn); // завершение транзакции

// Таблица содержит пять записей: 1, 3, 5, 7, 11

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 Прикрепление в цикле foreach()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT * FROM departments WHERE department_name = :dname AND location_id = :loc';
$stid = oci_parse($conn, $sql);

$ba = array(':dname' => 'IT Support', ':loc' => 1700);

foreach ($ba as $key => $val) {

    // oci_bind_by_name($stid, $key, $val) не работает,
    // потому что прикрепляет каждое значение в одно место: $val
    // Вместо этого следует указывать конкретное место: $ba[$key]
    oci_bind_by_name($stid, $key, $ba[$key]);
}

oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
foreach ($row as $item) {
    print $item."<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Пример #4 Прикрепление в выражение WHERE

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE department_id = :didbv ORDER BY last_name';
$stid = oci_parse($conn, $sql);
$didbv = 60;
oci_bind_by_name($stid, ':didbv', $didbv);
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['LAST_NAME'] ."<br>\n";
}

// Выводом будет
//    Austin
//    Ernst
//    Hunold
//    Lorentz
//    Pataballa

oci_free_statement($stid);
oci_close($conn);

?>

Пример #5 Прикрепление в выражение LIKE

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Поиск всех городов, начинающихся на 'South'
$stid = oci_parse($conn, "SELECT city FROM locations WHERE city LIKE :bv");
$city = 'South%';  // '%' - это знак шаблона SQL
oci_bind_by_name($stid, ":bv", $city);
oci_execute($stid);
oci_fetch_all($stid, $res);

foreach ($res['CITY'] as $c) {
    print $c . "<br>\n";
}
// Выводом будет:
//   South Brunswick
//   South San Francisco
//   Southlake

oci_free_statement($stid);
oci_close($conn);

?>

Пример #6 Прикрепление в выражение REGEXP_LIKE

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

// Поиск названий городов, содержащих 'ing'
$stid = oci_parse($conn, "SELECT city FROM locations WHERE REGEXP_LIKE(city, :bv)");
$city = '.*ing.*';
oci_bind_by_name($stid, ":bv", $city);
oci_execute($stid);
oci_fetch_all($stid, $res);

foreach ($res['CITY'] as $c) {
    print $c . "<br>\n";
}
// Выводом будет:
//   Beijing
//   Singapore

oci_free_statement($stid);
oci_close($conn);

?>

Для небольшого, фиксированного количества условий в выражении IN, используются индивидуальные имена переменных. Неизвестные значения при исполнении могут быть установлены в NULL. Это позволяет использовать одно выражение нескольким пользователям, что повышает эффективность кэширования Oracle DB.

Пример #7 Прикрепление нескольких значений в выражение IN

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = 'SELECT last_name FROM employees WHERE employee_id in (:e1, :e2, :e3)';
$stid = oci_parse($conn, $sql);
$mye1 = 103;
$mye2 = 104;
$mye3 = NULL; // притворимся, что не получили это значение
oci_bind_by_name($stid, ':e1', $mye1);
oci_bind_by_name($stid, ':e2', $mye2);
oci_bind_by_name($stid, ':e3', $mye3);
oci_execute($stid);
oci_fetch_all($stid, $res);
foreach ($res['LAST_NAME'] as $name) {
    print $name ."<br>\n";
}

// Выводом будет:
//   Ernst
//   Hunold

oci_free_statement($stid);
oci_close($conn);

?>

Пример #8 Прикрепление ROWID, возвращаемое запросом

<?php

// Создадим и наполним таблицу:
//   CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
//   INSERT INTO mytab (id, salary, name) VALUES (1, 100, 'Chris');
//   COMMIT;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT ROWID, name FROM mytab WHERE id = :id_bv FOR UPDATE');
$id = 1;
oci_bind_by_name($stid, ':id_bv', $id);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);
$rid = $row['ROWID'];
$name = $row['NAME'];

// Переведем имя в верхний регистр и зафиксируем изменения
$name = strtoupper($name);
$stid = oci_parse($conn, 'UPDATE mytab SET name = :n_bv WHERE ROWID = :r_bv');
oci_bind_by_name($stid, ':n_bv', $name);
oci_bind_by_name($stid, ':r_bv', $rid, -1, OCI_B_ROWID);
oci_execute($stid);

// Теперь таблица содержит: 1, 100, CHRIS

oci_free_statement($stid);
oci_close($conn);

?>

Пример #9 OUT-прикрепление ROWID, возвращаемое при INSERT

<?php

// В данном примере добавляется запись с идентификатором и именем,
// после чего увеличивается заработная плата
// Создание таблицы:
//   CREATE TABLE mytab (id NUMBER, salary NUMBER, name VARCHAR2(40));
//
// На основе собственных ROWID на примере thies[at]thieso.net (980221)

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$sql = "INSERT INTO mytab (id, name) VALUES(:id_bv, :name_bv)
        RETURNING ROWID INTO :rid";

$ins_stid = oci_parse($conn, $sql);

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);
oci_bind_by_name($ins_stid, ":id_bv",   $id,    10);
oci_bind_by_name($ins_stid, ":name_bv", $name,  32);
oci_bind_by_name($ins_stid, ":rid",     $rowid, -1, OCI_B_ROWID);

$sql = "UPDATE mytab SET salary = :salary WHERE ROWID = :rid";
$upd_stid = oci_parse($conn, $sql);
oci_bind_by_name($upd_stid, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($upd_stid, ":salary", $salary,   32);

// идентификаторы и имена для вставки
$data = array(1111 => "Larry",
              2222 => "Bill",
              3333 => "Jim");

// Заработная плата для каждого сотрудника
$salary = 10000;

// Вставка и немедленное обновление каждой строки
foreach ($data as $id => $name) {
    oci_execute($ins_stid);
    oci_execute($upd_stid);
}

$rowid->free();
oci_free_statement($upd_stid);
oci_free_statement($ins_stid);

// Показать новые записи
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid);
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    var_dump($row);
}

oci_free_statement($stid);
oci_close($conn);

?>

Пример #10 Прикрепление для хранимой функции PL/SQL

<?php

//  Перед запуском PHP-сценария, создайте хранимую функцию в
//  SQL*Plus или SQL Developer:
//
//  CREATE OR REPLACE FUNCTION myfunc(p IN NUMBER) RETURN NUMBER AS
//  BEGIN
//      RETURN p * 3;
//  END;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p = 8;

$stid = oci_parse($conn, 'begin :r := myfunc(:p); end;');
oci_bind_by_name($stid, ':p', $p);

// Возвращаемое значение OUT-прикреплено. По умолчаннию типом данных будет строка.
// Прикрепление со значением 40 означает, что будет возвращено 40 символов.
oci_bind_by_name($stid, ':r', $r, 40);

oci_execute($stid);

print "$r\n";   // выведет 24

oci_free_statement($stid);
oci_close($conn);

?>

Пример #11 Прикрепление параметров для PL/SQL хранимой процедуры

<?php

//  Перед запуском PHP-сценария, создайте хранимую процедуру в
//  SQL*Plus или SQL Developer:
//
//  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
//  BEGIN
//      p2 := p1 * 2;
//  END;

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$p1 = 8;

$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);

// Второй параметр процедуры OUT-прикреплен. По умолчаннию типом данных будет строка.
// Прикрепление со значением 40 означает, что будет возвращено 40 символов.
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // выведет 16

oci_free_statement($stid);
oci_close($conn);

?>

Пример #12 Прикрепление CLOB-объекта

<?php

// Перед запуском создаем таблицу:
//     CREATE TABLE mytab (mykey NUMBER, myclob CLOB);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$mykey = 12343;  // произвольный ключ для примера

$sql = "INSERT INTO mytab (mykey, myclob)
        VALUES (:mykey, EMPTY_CLOB())
        RETURNING myclob INTO :myclob";

$stid = oci_parse($conn, $sql);
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_bind_by_name($stid, ":myclob", $clob, -1, OCI_B_CLOB);
oci_execute($stid, OCI_DEFAULT);
$clob->save("A very long string");

oci_commit($conn);

// Получение CLOB-данных

$query = 'SELECT myclob FROM mytab WHERE mykey = :mykey';

$stid = oci_parse ($conn, $query);
oci_bind_by_name($stid, ":mykey", $mykey, 5);
oci_execute($stid);

print '<table border="1">';
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS)) {
    print '<tr><td>'.$row['MYCLOB'].'</td></tr>';
    // В цикле, очищение больших переменных перед повторным получением данных, уменьшает пиковое потребление памяти PHP
    unset($row);
}
print '</table>';

?>

Пример #13 Прикрепление PL/SQL BOOLEAN

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$plsql =
  "begin
    :output1 := true;
    :output2 := false;
   end;";

$s = oci_parse($c, $plsql);
oci_bind_by_name($s, ':output1', $output1, -1, OCI_B_BOL);
oci_bind_by_name($s, ':output2', $output2, -1, OCI_B_BOL);
oci_execute($s);
var_dump($output1);  // true
var_dump($output2);  // false

?>

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Не используйте magic_quotes_gpc или addslashes() одновременно с oci_bind_by_name(), так как кавычек быть не должно. Все указанные кавычки будут записаны в базу данных, потому что oci_bind_by_name() вставляет данные дословно и не удаляет кавычки или символы экранирования.

Замечание:

Если прикрепляется строка к CHAR-полю в выражении WHERE, помните, что Oracle использует при сравнении значения CHAR, дополненные пробелами. Переменная PHP должна быть дополнена пробелами до того же размера, что и поле, чтобы выражение WHERE выполнялось верно.

Замечание:

Переменная PHP variable является ссылкой. Некоторые виды циклов могут работать не так, как ожидается:

<?php
foreach ($myarray as $key => $value)  {
    oci_bind_by_name($stid, $key, $value);
}
?>

В этом случае каждый ключ прикрепляется к $value, поэтому все прикрепленные переменные указывают на значение в последней итерации цикла. Вместо этого следует использовать:

<?php
foreach ($myarray as $key => $value) {
    oci_bind_by_name($stid, $key, $myarray[$key]);
}
?>

Смотрите также

  • oci_bind_array_by_name() - Связывает PHP массив с массивом Oracle PL/SQL
  • oci_parse() - Подготавливает запрос к выполнению


Заканчивает процесс чтения из курсора

  • « oci_bind_by_name
  • oci_client_version »
  • PHP Manual
  • OCI8 Функции
  • Заканчивает процесс чтения из курсора

oci_cancel

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_cancel — Заканчивает процесс чтения из курсора

Описание

bool oci_cancel ( resource $statement )

Сбрасывает курсор, освобождая все связанные ресурсы и отменяет возможность читать из него.

Список параметров

statement

Запрос OCI.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает версию клиентской библиотеки

  • « oci_cancel
  • oci_close »
  • PHP Manual
  • OCI8 Функции
  • Возвращает версию клиентской библиотеки

oci_client_version

(PHP 5.3.7, PHP 7, PECL OCI8 >= 1.4.6)

oci_client_version — Возвращает версию клиентской библиотеки

Описание

string oci_client_version ( void )

Возвращает номер версии в виде строки клиентской C-библиотеки Oracle, с которой связан PHP.

Список параметров

Отсутствуют.

Возвращаемые значения

Возвращает номер версии в виде строки.

Примеры

Пример #1 Пример использования oci_client_version()

<?php
    echo "Версия клиента: " . oci_client_version(); // Версия клиента: 11.2.0.2
?>

Примечания

Замечание:

Библиотеки Oracle версий до 10gR2 не имеют необходимого функционала, чтобы выдать номер версии. В этих случаях функция вернет строку "Unknown".

Смотрите также

  • oci_server_version() - Возвращает версию сервера Oracle


Закрывает соединение с сервером Oracle

  • « oci_client_version
  • oci_commit »
  • PHP Manual
  • OCI8 Функции
  • Закрывает соединение с сервером Oracle

oci_close

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_close — Закрывает соединение с сервером Oracle

Описание

bool oci_close ( resource $connection )

Освобождает connection. Соответствующее ему соединение с базой данных будет закрыто при отсутствии использующих его ресурсов и если оно было получено из функции oci_connect() или oci_new_connect().

Рекомендуется закрывать неиспользуемые более соединения, т.к. это освобождает ресурсы базы данных для других пользователей.

Список параметров

connection

Идентификатор соединения Oracle, полученный из функций oci_connect(), oci_pconnect() или oci_new_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Закрытие соединения

Сопутствующие соединению ресурсы должны быть закрыты для обеспечения корректного завершения соединения с базой данных и освобождения ее ресурсов.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM departments');
$r = oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);

// Освобождаем идентификатор выражения при закрытии соединения
oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Соединение базы данных не закрывается до тех пор, пока не будут закрыты все ссылки на него

Внутренний счетчик ссылок (refcount) идентификатора соединения должен равняться нулю перед непосредственным закрытием соединения к базе данных.

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM departments');  // это увеличивает refcount на $conn
oci_execute($stid);
oci_fetch_all($stid, $res);
var_dump($res);

oci_close($conn);

// $conn больше не может использоваться в данном скрипте, но реальное
// соединение с базой данных будет открыто, пока не будет освобождена $stid.
var_dump($conn);  // выводит NULL

// Пока PHP спит, запрос к виду Oracle V$SESSION в окне терминала
// покажет, что пользователь базы данных все еще подключен.
sleep(10);

// Как только $stid освобождается, соединение к базе данных физически закрывается
oci_free_statement($stid);

// Пока PHP спит, запрос к виду Oracle V$SESSION в окне терминала
// покажет, что пользователь базы данных уже отключился.
sleep(10);

?>

Пример #3 Закрытие соединения, открытого несколько раз

При повторном использовании учетных данных пользователя, оба соединения должны быть закрыты перед непосредственным закрытием соединения к базе данных.

<?php

$conn1 = oci_connect('hr', 'welcome', 'localhost/XE');

// Использование тех же учетных данных повторно использует одно и то же
// соединение с базой данных. Любые незафиксированные изменения в
// $conn1 будут видны в $conn2
$conn2 = oci_connect('hr', 'welcome', 'localhost/XE');

// Пока PHP спит, запрос к виду Oracle V$SESSION в окне терминала
// покажет, что подключен только один пользователь базы данных.
sleep(10);

oci_close($conn1); // не закрывает реальное соединение с базой данных
var_dump($conn1);  // выводит NULL, т.к. $conn1 теперь бесполезна
var_dump($conn2);  // показывает, что $conn2 все еще является корректным ресурсом соединения

?>

Пример #4 Соединение закрывается при уходе переменных из области видимости

Когда все переменные, ссылающиеся на соединение, уходят из области видимости и освобождаются PHP, происходит откат транзакции (если необходимо) и соединение с базой закрывается.

<?php

function myfunc() {
    $conn = oci_connect('hr', 'hrpwd', 'localhost/XE');
    if (!$conn) {
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
    }

    $stid = oci_parse($conn, 'UPDATE mytab SET id = 100');
    oci_execute($stid, OCI_NO_AUTO_COMMIT);
    return "Закончили!";
}

$r = myfunc();
// В этой точке происходит откат транзакции и закрывается соответствующее
// соединение с базой данных

print $r;  // отображает возвращенное функцией значение "Закончили!"

?>

Примечания

Замечание:

Переменные, зависящие от идентификатора соединений, такие как идентификаторы выражений, полученные из oci_parse(), должны быть также освобождены до закрытия соединения с базой данных.

Замечание:

До версии PHP 5.1.2 (PECL OCI8 1.1) oci_close() не выполняла никаких действий. В более свежих версиях она уже корректно закрывает соединение. Используйте директиву oci8.old_oci_close_semantics для восстановления старого поведения этой функции.

Замечание:

Функция oci_close() не закрывает соединения с базой данных, созданные функцией oci_pconnect().

Смотрите также

  • oci_connect() - Устанавливает соединение с базой данных Oracle
  • oci_free_statement() - Освобождает ресурсы, занимаемые курсором или SQL-выражением


Подтверждает транзакцию базы данных

  • « oci_close
  • oci_connect »
  • PHP Manual
  • OCI8 Функции
  • Подтверждает транзакцию базы данных

oci_commit

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_commit — Подтверждает транзакцию базы данных

Описание

bool oci_commit ( resource $connection )

Подтверждает транзакцию соединения connection. Подтверждение завершает текущую транзакцию и делает все изменения постоянными. Она также освобождает все установленные блокировки.

Транзакция начинается при первом SQL-запросе, изменяющим данные, который был запущен с помощью функции oci_execute() и флага OCI_NO_AUTO_COMMIT. Последующие изменения данных от других запросов также становятся частью данной транзакции. Изменения, сделанные в транзакции, являются временными до тех пор, пока транзакция не будет зафиксирована или пока не будет произведен ее откат. Другие пользователи базы данных не смогут увидеть изменения до их подтверждения.

При вставке или обновлении данных рекомендуется использовать транзакции для сохранения целостности данных и увеличения производительности.

Список параметров

connection

Идентификатор соединения Oracle, полученный из функций oci_connect(), oci_pconnect() или oci_new_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_commit()

<?php

// Вставка в несколько таблиц, откат изменений в случае ошибки

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// Флаг OCI_NO_AUTO_COMMIT сообщает Oracle не фиксировать запрос INSERT при его поступлении
// Для PHP <= 5.3.1 используйте OCI_DEFAULT, эти два флага эквивалентны
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    oci_rollback($conn);  // откат изменений из обоих таблиц
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Фиксация изменений в обоих таблицах
$r = oci_commit($conn);
if (!$r) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Примечания

Замечание:

Транзакции будут автоматически откачены при закрытии соединения или окончании скрипта (в зависимости от того, что случится раньше). Для подтверждения транзакции необходимо явно вызвать функцию oci_commit().

Все вызовы oci_execute(), явно или по умолчанию использующие режим OCI_COMMIT_ON_SUCCESS зафиксируют любую предыдущую незафиксированную транзакцию.

Любой DDL-запрос Oracle, такой как CREATE или DROP автоматически подтверждает любую незавершенную транзакцию.

Смотрите также

  • oci_execute() - Выполняет подготовленное выражение
  • oci_rollback() - Откатывает транзакции, ожидающие обработки


Устанавливает соединение с базой данных Oracle

  • « oci_commit
  • oci_define_by_name »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает соединение с базой данных Oracle

oci_connect

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_connect — Устанавливает соединение с базой данных Oracle

Описание

resource oci_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] )

Возвращает идентификатор соединения, который используется большинством функций данного модуля.

См. Управление соединением для более детальной информации по управлению соединениями.

Начиная с PHP 5.1.2 (PECL OCI8 1.1) функция oci_close() может использоваться для завершения соединения.

Второй и последующие вызовы функции oci_connect() с теми же параметрами вернут идентификатор уже открытого соединения. Это означает, что транзакции используют одно и то же базовое соединение с базой данных. При необходимости разделения транзакций рекомендуется использовать функцию oci_new_connect().

Список параметров

username

Имя пользователя Oracle.

password

Пароль username.

connection_string

Содержит экземпляр Oracle для подключения. Это может быть » Easy Connect string, или Connect Name из файла tnsnames.ora, или имя локального экземпляра Oracle.

Если не указано отдельно, PHP использует переменные окружения, такие как TWO_TASK (на Linux) или LOCAL (на Windows) и ORACLE_SID для определения экземпляра Oracle для соединения.

Для использования метода Easy Connect, PHP должен быть слинкован с клиентскими библиотеками версии Oracle 10g или старше. Easy Connect string для Oracle 10g принимает следующую форму: [//]host_name[:port][/service_name]. Начиная с Oracle 11g синтаксис таков: [//]host_name[:port][/service_name][:server_type][/instance_name]. Названия служб могут быть определены с помощью запуска Oracle утилиты lsnrctl status на сервере базы данных.

Файл tnsnames.ora может находиться в поисковом пути Oracle Net, который включает $ORACLE_HOME/network/admin и /etc. В качестве альтернативного варианта можно установить TNS_ADMIN таким образом, чтобы путь $TNS_ADMIN/tnsnames.ora был читаемым. Убедитесь, что веб-сервер имеет доступ к этому файлу.

character_set

Определяет кодировку, используемую клиентскими библиотеками Oracle. Данная кодировка не обязательно должна совпадать с кодировкой, используемой в самой базе данных. Если она не совпадает, Oracle сделает все возможное для конвертирования данных из- и в данную кодировку. В зависимости от используемых кодировок это может не всегда давать приемлемые результаты. Преобразование также создает некоторые дополнительные временные затраты.

Если кодировка не указана, клиентские библиотеки Oracle будут определять ее из переменной окружения NLS_LANG.

Передача этого параметра может уменьшить время затрачиваемое на соединение.

session_mode

Этот параметр доступен начиная с версии PHP 5 (PECL OCI8 1.1) и принимает следующие значения: OCI_DEFAULT, OCI_SYSOPER и OCI_SYSDBA. Если были указаны OCI_SYSOPER или OCI_SYSDBA, данная функция попытается установить привилегированное соединение, используя внешние данные авторизации. По умолчанию привилегированные соединения отключены. Чтобы их включить, необходимо установить oci8.privileged_connect в On.

В версии PHP 5.3 (PECL OCI8 1.3.4) появилось значение OCI_CRED_EXT. Оно указывает Oracle использовать внешнюю аутентификацию или аутентификацию с помощью операционной системы, что должно быть настроено в базе данных. Флаг OCI_CRED_EXT может быть использован только с именем пользователя "/" и пустым паролем. oci8.privileged_connect может принимать значение On или Off.

OCI_CRED_EXT может использоваться совместно с режимами OCI_SYSOPER и OCI_SYSDBA.

OCI_CRED_EXT не поддерживается в Windows по причинам безопасности.

Возвращаемые значения

Возвращает идентификатор соединения или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования oci_connect() с синтаксисом Easy Connect

<?php

// Подключается к XE сервису (т.е. к базе данных) на "localhost"
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Пример #2 Пример использования oci_connect() используя имя Network Connect

<?php

// Соединяется с базой данных MYDB описанной в файле tnsnames.ora,
// Пример записи в tnsnames.ora для MYDB:
//   MYDB =
//     (DESCRIPTION =
//       (ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.oracle.com)(PORT = 1521))
//       (CONNECT_DATA =
//         (SERVER = DEDICATED)
//         (SERVICE_NAME = XE)
//       )
//     )

$conn = oci_connect('hr', 'welcome', 'MYDB');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Пример #3 Пример использования oci_connect() с использованием определенного набора символов

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE', 'AL32UTF8');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Пример #4 Пример использования многократных вызовов oci_connect()

<?php

$c1 = oci_connect("hr", "welcome", 'localhost/XE');
$c2 = oci_connect("hr", "welcome", 'localhost/XE');

// $c1 и $c2 содержат одинаковый PHP id ресурса, что означает, что
// они используют одинаковое базовое соединение
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";

function create_table($conn)
{
    $stmt = oci_parse($conn, "create table hallo (test varchar2(64))");
    oci_execute($stmt);
    echo "Created table<br>\n";
}

function drop_table($conn)
{
    $stmt = oci_parse($conn, "drop table hallo");
    oci_execute($stmt);
    echo "Dropped table<br>\n";
}

function insert_data($connname, $conn)
{
    $stmt = oci_parse($conn, "insert into hallo
              values(to_char(sysdate,'DD-MON-YY HH24:MI:SS'))");
    oci_execute($stmt, OCI_DEFAULT);
    echo "$connname inserted row without committing<br>\n";
}

function rollback($connname, $conn)
{
    oci_rollback($conn);
    echo "$connname rollback<br>\n";
}

function select_data($connname, $conn)
{
    $stmt = oci_parse($conn, "select * from hallo");
    oci_execute($stmt, OCI_DEFAULT);
    echo "$connname ----selecting<br>\n";
    while (oci_fetch($stmt)) {
        echo "    " . oci_result($stmt, "TEST") . "<br>\n";
    }
    echo "$connname ----done<br>\n";
}

create_table($c1);

insert_data('c1', $c1);   // Вставить строку используя c1
sleep(2);                 // остановиться для записи другой временной метки для следующей строки
insert_data('c2', $c2);   // Вставить строку используя c2

select_data('c1', $c1);   // Возврат результата обоих вставок
select_data('c2', $c2);   // Возврат результата обоих вставок

rollback('c1', $c1);      // Откат используя c1

select_data('c1', $c1);   // Откат был произведен для обоих вставок
select_data('c2', $c2);

drop_table($c1);

// Закрытие одного из соединений делает переменную PHP недоступной, но
// другие могут быть использованы
oci_close($c1);
echo "c1 is $c1<br>\n";
echo "c2 is $c2<br>\n";

// Вывод is:
//    c1 is Resource id #5
//    c2 is Resource id #5
//    Created table
//    c1 inserted row without committing
//    c2 inserted row without committing
//    c1 ----selecting
//        09-DEC-09 12:14:43
//        09-DEC-09 12:14:45
//    c1 ----done
//    c2 ----selecting
//        09-DEC-09 12:14:43
//        09-DEC-09 12:14:45
//    c2 ----done
//    c1 rollback
//    c1 ----selecting
//    c1 ----done
//    c2 ----selecting
//    c2 ----done
//    Dropped table
//    c1 is
//    c2 is Resource id #5

?>

Примечания

Замечание:

Некорректно установленное или настроенное расширение OCI8 будет часто сообщать о проблемах соединения или ошибках. См. Установка/Настройка для решения проблем.

Смотрите также

  • oci_pconnect() - Устанавливает постоянное соединение с сервером Oracle
  • oci_new_connect() - Устанавливает новое соединение с сервером Oracle
  • oci_close() - Закрывает соединение с сервером Oracle


Сопоставляет переменную PHP столбцу результата запроса

  • « oci_connect
  • oci_error »
  • PHP Manual
  • OCI8 Функции
  • Сопоставляет переменную PHP столбцу результата запроса

oci_define_by_name

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_define_by_name — Сопоставляет переменную PHP столбцу результата запроса

Описание

bool oci_define_by_name ( resource $statement , string $column_name , mixed &$variable [, int $type = SQLT_CHR ] )

Сопоставляет переменную PHP столбцу результата запроса, полученного с помощью oci_fetch().

Вызов oci_define_by_name() должен производиться до запуска oci_execute().

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

column_name

Имя столбца использованного в запросе.

Используйте верхний регистр для стандартных регистронезависимых имен столбцов Oracle. Используйте точное написание имени столбца для регистрозависимых имен.

variable

Переменная PHP, предназначенная для хранения возвращенного значения.

type

Тип возвращаемых данных. Обычно не требуется. Имейте ввиду, что преобразования Oracle-данных не производятся. К примеру, SQLT_INT будет проигнорировано и возвращенные данные будут по прежнему в виде SQLT_CHR.

Если вам нужно назначить переменную абстрактного типа данных (LOB/ROWID/BFILE), то ее необходимо сначала создать с помощью oci_new_descriptor().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_define_by_name()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);

// Переменные ДОЛЖНЫ быть определены перед запуском
oci_define_by_name($stid, 'LOCATION_ID', $locid);
oci_define_by_name($stid, 'CITY', $city);

oci_execute($stid);

//  Каждый результат запроса помещает в заранее определенную переменную следующую строку данных
while (oci_fetch($stid)) {
    echo "Location id $locid is $city<br>\n";
}

// Выведет:
//   Location id 1000 is Roma
//   Location id 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Пример использования oci_define_by_name() с регистрозависимыми именами столбцов

<?php

/*
  До запуска, создается таблица со столбцом, имеющим регистрозависимое имя
    CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
    INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// Используется верхний регистр для регистронезависимых имен столбцов
oci_define_by_name($stid, 'ID', $id);

// Используется точное написание для регистрозависимых имен столбцов
oci_define_by_name($stid, 'MyDescription', $mydesc);

oci_execute($stid);

while (oci_fetch($stid)) {
    echo "id $id is $mydesc<br>\n";
}

// Выведет:
//   id 1 is Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 Пример использования oci_define_by_name() со столбцами типа LOB

<?php

/*
  Перед запуском создаются таблицы:
    CREATE TABLE mytab (id NUMBER, fruit CLOB);
    INSERT INTO mytab (id, fruit) values (1, 'apple');
    INSERT INTO mytab (id, fruit) values (2, 'orange');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// Переменные ДОЛЖНЫ быть определены перед запуском
oci_define_by_name($stid, 'ID', $id);
oci_define_by_name($stid, 'FRUIT', $fruit);  // $fruit will become a LOB descriptor

oci_execute($stid);

while (oci_fetch($stid)) {
    echo $id . " is " . $fruit->load(100) . "<br>\n";
}

// Выведет:
//   1 is apple
//   2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Пример #4 Пример использования oci_define_by_name() с приведенными типами

<?php

/*
  Перед запуском создается таблица:
    CREATE TABLE mytab (id NUMBER, fruit CLOB);
    INSERT INTO mytab (id, fruit) values (1, 'apple');
    INSERT INTO mytab (id, fruit) values (2, 'orange');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM mytab');

// Переменные ДОЛЖНЫ быть определены перед запуском
oci_define_by_name($stid, 'ID', $id);

$fruit = oci_new_descriptor($conn, OCI_D_LOB);
oci_define_by_name($stid, 'FRUIT', $fruit, OCI_D_CLOB);

oci_execute($stid);

while (oci_fetch($stid)) {
    echo $id . " is " . $fruit->load(100) . "<br>\n";
}

// Выведет:
//   1 is apple
//   2 is orange

$fruit->free();
oci_free_statement($stid);
oci_close($conn);

?>

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_new_descriptor() - Инициализирует новый дескриптор объекта LOB или FILE


Возвращает последнюю ошибку

  • « oci_define_by_name
  • oci_execute »
  • PHP Manual
  • OCI8 Функции
  • Возвращает последнюю ошибку

oci_error

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_error — Возвращает последнюю ошибку

Описание

array oci_error ([ resource $resource ] )

Возвращает последнюю найденную ошибку.

Функция должны вызваться сразу же после появления ошибки. Ошибки очищаются при произведении правильного запроса.

Список параметров

resource

Для большинства ошибок параметром resource является соответствующий идентификатор соединения или выражения. Для ошибок во время выполнения функций oci_connect(), oci_new_connect() и oci_pconnect() параметр resource указывать не следует.

Возвращаемые значения

Если ошибок не найдено, то oci_error() возвращает FALSE. В другом случае, oci_error() возвращает информацию об ошибке в виде ассоциативного массива.

Описание массива вывода oci_error()
Ключ массива | Тип | Описание
code | integer | Номер ошибки Oracle.
message | string | Текст ошибки Oracle.
offset | integer | Позиция ошибки в запросе SQL. Если нет запроса, то равна 0
sqltext | string | Текст запроса SQL. Если нет запроса, то строка пуста.

Примеры

Пример #1 Вывод сообщения об ошибке Oracle после ошибки соединения

<?php
$conn = oci_connect("hr", "welcome", "localhost/XE");
if (!$conn) {
    $e = oci_error();   // Для обработки ошибок oci_connect
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Пример #2 Вывод сообщения об ошибке Oracle после ошибки разбора

<?php
$stid = oci_parse($conn, "select ' from dual");  // пропущенные кавычки
if (!$stid) {
    $e = oci_error($conn);  // Для обработки ошибок oci_parse
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Пример #3 Вывод сообщения об ошибке Oracle, ошибочного запроса и позиции ошибки запуска запроса

<?php
$stid = oci_parse($conn, "select does_not_exist from dual");
$r = oci_execute($stid);
if (!$r) {
    $e = oci_error($stid);  // Для обработки ошибок oci_execute
    print htmlentities($e['message']);
    print "\n<pre>\n";
    print htmlentities($e['sqltext']);
    printf("\n%".($e['offset']+1)."s", "^");
    print  "\n</pre>\n";
}
?>


Выполняет подготовленное выражение

  • « oci_error
  • oci_fetch_all »
  • PHP Manual
  • OCI8 Функции
  • Выполняет подготовленное выражение

oci_execute

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_execute — Выполняет подготовленное выражение

Описание

bool oci_execute ( resource $statement [, int $mode = OCI_COMMIT_ON_SUCCESS ] )

Выполняет подготовленное выражение statement, созданное с помощью функции oci_parse().

Сразу после выполнения выражения подобного INSERT, по умолчанию все данные сразу будут сохранены в базе данных. Для выражений подобных SELECT, выполняется только логика запроса. Результат же запроса можно получить позже в PHP с помощью функций подобных oci_fetch_array().

Каждое подготовленное выражение может быть выполнено несколько раз для экономии на издержках от повторной подготовки запроса. Это чаще всего применяется для выражений INSERT, когда к ним привязаны данные с помощью oci_bind_by_name().

Список параметров

statement

Правильное подготовленное выражение OCI.

mode

Необязательный второй параметр с одним из следующих значений:

Режим выполнения
Константа | Описание
OCI_COMMIT_ON_SUCCESS | Автоматически сохранять все несохраненные изменения, произведенные за текущую сессию при успешном выполнении выражения. Этот режим установлен по умолчанию.
OCI_DESCRIBE_ONLY | Делает доступными метаданные запроса для функций подобных oci_field_name(), но не создает результат выполнения выражения. Любое последующее получение данных, например с помощью oci_fetch_array() не будет произведено.
OCI_NO_AUTO_COMMIT | Не сохранять автоматически изменения. Для PHP 5.3.2 (PECL OCI8 1.4) используйте OCI_DEFAULT, которая является эквивалентом для OCI_NO_AUTO_COMMIT.

Использование режима OCI_NO_AUTO_COMMIT открывает или продолжает транзакцию. Эта транзакция автоматически откатывается при закрытии соединения или завершении скрипта. Используйте oci_commit() для завершения транзакции и oci_rollback() для ее отмены.

При вставке и обновлении данных рекомендуется использование транзакций для реляционной целостности данных и для улучшения производительности.

Если для какого-нибудь выражения используется режим OCI_NO_AUTO_COMMIT, и впоследствии не используются oci_commit() или oci_rollback(), то OCI8 будет выполнять откат при завершении скрипта даже если данные не были изменены. Для избежания ненужных откатов большинство скриптов не используют режим OCI_NO_AUTO_COMMIT для запросов или PL/SQL. Будьте внимательны, чтобы обеспечить надлежащую согласованность транзакций при использовании oci_execute() с различными режимами в одном скрипте.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 oci_execute() при выполнении запросов

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Пример #2 oci_execute() без указания определенного режима

<?php

// Перед выполнением создайте таблицу:
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');

oci_execute($stid); // Строка сохранена и становится видимой для других пользователей

?>

Пример #3 oci_execute() с OCI_NO_AUTO_COMMIT

<?php

// Перед выполнением создайте таблицу:
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (:bv)');
oci_bind_by_name($stid, ':bv', $i, 10);
for ($i = 1; $i <= 5; ++$i) {
    oci_execute($stid, OCI_NO_AUTO_COMMIT);  // use OCI_DEFAULT for PHP <= 5.3.1
}
oci_commit($conn);  // сохранение все новых значений: 1, 2, 3, 4, 5

?>

Пример #4 oci_execute() с различными режимами

<?php

// Перед выполнением создайте таблицу:
//   CREATE TABLE MYTABLE (col1 NUMBER);

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (123)');
oci_execute($stid, OCI_NO_AUTO_COMMIT);  // data not committed

$stid = oci_parse($conn, 'INSERT INTO mytab (col1) VALUES (456)');
oci_execute($stid);  // commits both 123 and 456 values

?>

Пример #5 oci_execute() с OCI_DESCRIBE_ONLY

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM locations');
oci_execute($s, OCI_DESCRIBE_ONLY);
for ($i = 1; $i <= oci_num_fields($stid); ++$i) {
    echo oci_field_name($stid, $i) . "<br>\n";
}

?>

Примечания

Замечание:

Транзакции автоматически откатываются при закрытии соединения или завершении выполнения скрипта. Принудительно вызывайте oci_commit() для завершения транзакции.

Любой вызов oci_execute(), который принудительно использует OCI_COMMIT_ON_SUCCESS или по умолчанию будет завершать любую предыдущую незакрытую транзакцию.

Любое выражение Oracle DDL подобное CREATE или DROP будет автоматически завершать любу. незакрытую транзакцию.

Замечание:

Так как функция oci_execute() обычно отправляет выражения в базу данных, то oci_execute() может найти некоторые незначительные синтаксические ошибки, когда локальная oci_parse() их не находит.

Смотрите также

  • oci_parse() - Подготавливает запрос к выполнению


Выбирает все строки из результата запроса в двумерный массив

  • « oci_execute
  • oci_fetch_array »
  • PHP Manual
  • OCI8 Функции
  • Выбирает все строки из результата запроса в двумерный массив

oci_fetch_all

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_all — Выбирает все строки из результата запроса в двумерный массив

Описание

int oci_fetch_all ( resource $statement , array &$output [, int $skip = 0 [, int $maxrows = -1 [, int $flags = OCI_FETCHSTATEMENT_BY_COLUMN + OCI_ASSOC ]]] )

Выбирает все строки из результата запроса в двумерный массив. По умолчанию возвращает все строки.

Эта функция может быть вызваться только один раз для каждого запроса запущенного с помощью oci_execute().

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

output

Переменная, содержащая возвращенные строки.

LOB столбцы возвращаются в виде строк, для которых поддерживается Oracle преобразования.

См. oci_fetch_array() для более детальной информации о том, как производится выборка данных и типов.

skip

Число строк, которых необходимо исключить из выборки. По умолчанию равно 0, выборка возвращается со следующего за первым ряда.

maxrows

Число возвращаемых строк. По умолчанию равно -1, что означает возврат всех строк, начиная с указанных в skip + 1 предыдущая строка.

flags

Параметр flags содержит структуру массива отражает необходимость использования ассоциативных массивов.

Структура массива oci_fetch_all()
Константа | Описание
OCI_FETCHSTATEMENT_BY_ROW | Массив будет содержать по одному под-массиву на каждую строку запроса.
OCI_FETCHSTATEMENT_BY_COLUMN | Массив будет содержать по одному под-массиву на каждый столбец. Используется по умолчанию.

Массивы могут быть проиндексированы или заголовками столбцов или пронумерованы. Будет возвращен только один режим индексации.

Индексация массива oci_fetch_all()
Константа | Описание
OCI_NUM | Для массива каждого столбца используются числовые индексы.
OCI_ASSOC | Для массива каждого столбца используется ассоциативные индексы. По умолчанию.

Используйте оператор сложения "+" для выбора определенной комбинации структуры и индексации массива.

Регистронезависимые (по умолчанию в Oracle) имена полей в результирующем массиве будут иметь ассоциативные индексы в верхнем регистре. Регистрозависимые имена полей будут иметь индексы с теми же регистрами символов, что и само поле. Используйте var_dump() на on output, чтобы проверить соответствие регистров символов для каждого запроса.

В запросах в которых имеется несколько столбцов с одинаковыми именами необходимо использовать псевдонимы. Иначе только один из столбцов появится в ассоциативном массиве.

Возвращаемые значения

Возвращает число столбцов в output, который может принимать значение 0 или более, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_fetch_all()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res);

echo "$nrows rows fetched<br>\n";
var_dump($res);

// Вывод var_dump:
//    2 rows fetched
//    array(2) {
//      ["POSTAL_CODE"]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(6) "10934x"
//      }
//      ["CITY"]=>
//      array(2) {
//        [0]=>
//        string(4) "Roma"
//        [1]=>
//        string(6) "Venice"
//      }
//    }

// Форматирование результатов
echo "<table border='1'>\n";
foreach ($res as $col) {
    echo "<tr>\n";
    foreach ($col as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Пример использования oci_fetch_all() с OCI_FETCHSTATEMENT_BY_ROW

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW);

echo "$nrows rows fetched<br>\n";
var_dump($res);

// Выведет:
//    2 rows fetched
//    array(2) {
//      [0]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "00989x"
//        ["CITY"]=>
//        string(4) "Roma"
//      }
//      [1]=>
//      array(2) {
//        ["POSTAL_CODE"]=>
//        string(6) "10934x"
//        ["CITY"]=>
//        string(6) "Venice"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 Пример использования oci_fetch_all() с OCI_NUM

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT POSTAL_CODE, CITY FROM locations WHERE ROWNUM < 3');
oci_execute($stid);

$nrows = oci_fetch_all($stid, $res, null, null, OCI_FETCHSTATEMENT_BY_ROW + OCI_NUM);

echo "$nrows rows fetched<br>\n";
var_dump($res);

// Выведет:
//    2 rows fetched
//    array(2) {
//      [0]=>
//      array(2) {
//        [0]=>
//        string(6) "00989x"
//        [1]=>
//        string(4) "Roma"
//      }
//      [1]=>
//      array(2) {
//        [0]=>
//        string(6) "10934x"
//        [1]=>
//        string(6) "Venice"
//      }
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Использование skip неэффективно. Все пропускаемые ряды включаются в результат запроса возвращаемый базой данных к PHP. После этого они исключаются. Более эффективно использовать SQL для отступа и ограничения рядов в запросе. См. oci_fetch_array() для примеров.

Замечание:

Запросы, возвращающие большое число рядов, могут быть более эффективными если используется однорядная функция выборки, такая как oci_fetch_array().

Замечание:

Для запросов, возвращающих большое количество рядов, производительность может быть значительно увеличена с помощью увеличения значения опции oci8.default_prefetch или использования oci_set_prefetch().

Замечание:

Не возвращает ряды для неявных результирующих наборов в Oracle Database 12c. Используйте вместо данной функции функцию oci_fetch_array().

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
  • oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде ассоциативного массива
  • oci_fetch_object() - Возвращает следующую строку из результата запроса в виде объекта
  • oci_fetch_row() - Возвращает следующую строку из результата запроса в виде нумерованного массива
  • oci_set_prefetch() - Устанавливает количество строк, которые будут автоматически выбраны в буфер


Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива

  • « oci_fetch_all
  • oci_fetch_assoc »
  • PHP Manual
  • OCI8 Функции
  • Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива

oci_fetch_array

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_array — Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива

Описание

array oci_fetch_array ( resource $statement [, int $mode ] )

Возвращает массив, содержащий следующую строку результата запроса. Каждый элемент массива соответствует одному полю из строки. Эта функция обычно вызывается в цикле, пока она не вернет FALSE, который указывает на отсутствие последующих строк.

Если statement соответствует PL/SQL блоку, возвращаемому Oracle Database 12c Implicit Result Sets, тогда будут последовательно извлечены ряды из всех наборов. Если statement возвращается из oci_get_implicit_resultset(), тогда вернется только часть рядов для одного дочернего запроса.

За подробностями по операции отображения типов данных, осуществляемым расширением OCI8, обратитесь к типам данных, поддерживаемых драйвером

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

Также может быть идентификатором, возвращаемым функцией oci_get_implicit_resultset().

mode

Необязательный второй параметр может состоять из любой комбинации следующих констант:

oci_fetch_array() Modes
Константа | Описание
OCI_BOTH | Возвращает массив как с ассоциативными и числовыми индексами. Эта константа то же самое что и OCI_ASSOC + OCI_NUM, и она используется по умолчанию.
OCI_ASSOC | Возвращает ассоциативный массив.
OCI_NUM | Возвращает нумерованный массив.
OCI_RETURN_NULLS | Создает элементы для полей равных NULL. Значение элемента будет равно PHP NULL.
OCI_RETURN_LOBS | Возвращает содержимое полей типа LOB, вместо LOB указателя.

По умолчанию mode равен OCI_BOTH.

Используйте оператор сложения "+" для указания более одного режима.

Возвращаемые значения

Возвращает массив с ассоциативными и/или числовыми ключами. Если больше нет строк в statement, то возвращается FALSE.

По умолчанию, поля LOB возвращаются как указатели LOB.

Поля типа DATE возвращаются в формате строк, соответствующем текущему формату даты. Формат по умолчанию может быть изменен с помощью переменных окружения Oracle, таких как NLS_LANG, или предварительным выполнением команды ALTER SESSION SET NLS_DATE_FORMAT.

Регистронезависимые (по умолчанию в Oracle) имена полей будут иметь ассоциативные индексы в верхнем регистре в результирующем массиве. Регистрозависимые имена полей будут иметь индексы с теми же регистрами символов, что и само поле. Используйте var_dump() для результирующего массива, чтобы проверить соответствие регистров символов для каждого запроса.

Имя таблицы не входит в ассоциативны индекс. Если ваш запрос содержит два разных поля с одинаковым именем, используйте OCI_NUM или добавьте алиас для поля в запрос, так чтобы имена стали уникальными (смотрите пример #7). Иначе будет возвращено только одно поле.

Примеры

Пример #1 oci_fetch_array() с OCI_BOTH

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_BOTH))) {
    // Используйте название полей в верхнем регистре для ассоциативных индексов
    echo $row[0] . " и " . $row['DEPARTMENT_ID']   . " идентичны<br>\n";
    echo $row[1] . " и " . $row['DEPARTMENT_NAME'] . " идентичны<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 oci_fetch_array() с OCI_NUM

<?php

/*
  Перед выполнением создайте таблицу:
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_NUM)) != false) {
    echo $row[0] . "<br>\n";
    echo $row[1]->read(11) . "<br>\n"; // это выведет первые 11 байт DESCRIPTION
}

// Выведет:
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 oci_fetch_array() с OCI_ASSOC

<?php

/*
  Перед выполнением создайте таблицу:
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false) {
    echo $row['ID'] . "<br>\n";
    echo $row['DESCRIPTION']->read(11) . "<br>\n"; // это выведет первые 11 байт DESCRIPTION
}

// Выведет:
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Пример #4 oci_fetch_array() с OCI_RETURN_NULLS

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC)) != false) { // Игнорирует NULL значения
    var_dump($row);
}

/*
Вышеуказанный код выведет:
  array(1) {
    [1]=>
    string(1) "1"
  }
*/

$stid = oci_parse($conn, 'SELECT 1, null FROM dual');
oci_execute($stid);
while (($row = oci_fetch_array ($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) { // Получает NULL значения
    var_dump($row);
}

/*
Вышеуказанный код выведет:
  array(2) {
    [1]=>
    string(1) "1"
    ["NULL"]=>
    NULL
  }
*/

?>

Пример #5 oci_fetch_array() с OCI_RETURN_LOBS

<?php

/*
  Перед выполнением создайте таблицу:
      CREATE TABLE mytab (id NUMBER, description CLOB);
      INSERT INTO mytab (id, description) values (1, 'A very long string');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_LOBS))) {
    echo $row['ID'] . "<br>\n";
    echo $row['DESCRIPTION'] . "<br>\n"; // содержит весь DESCRIPTION
    // В цикле, очищение больших переменных перед повторным получением данных, уменьшает пиковое потребление памяти PHP
    unset($row);
}

// Выведет:
//    1
//    A very long string

oci_free_statement($stid);
oci_close($conn);

?>

Пример #6 oci_fetch_array() с регистрозависимыми названиями полей

<?php

/*
   Перед выполнением создайте таблицу:
      CREATE TABLE mytab ("Name" VARCHAR2(20), city VARCHAR2(20));
      INSERT INTO mytab ("Name", city) values ('Chris', 'Melbourne');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS);

// Так как 'Name' было создан как регистрозависимое поле, то
// те же регисты символов используются для индексов массива.
// Тем не менее для 'CITY' должен использоваться индекс в верхнем регистре.
print $row['Name'] . "<br>\n";   //  выведет Chris
print $row['CITY'] . "<br>\n";   //  выведет Melbourne

oci_free_statement($stid);
oci_close($conn);

?>

Пример #7 oci_fetch_array() с полями с одинаковыми названиями

<?php

/*
  Перед выполнением создайте таблицу:
      CREATE TABLE mycity (id NUMBER, name VARCHAR2(20));
      INSERT INTO mycity (id, name) values (1, 'Melbourne');
      CREATE TABLE mycountry (id NUMBER, name VARCHAR2(20));
      INSERT INTO mycountry (id, name) values (1, 'Australia');
      COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT mycity.name, mycountry.name
        FROM mycity, mycountry
        WHERE mycity.id = mycountry.id';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);

// Выведет только одну записаь "NAME":
//    array(1) {
//      ["NAME"]=>
//      string(9) "Australia"
//    }

// Для получения полей с повторяющимся названием используйте SQL псевдонимы (alias) для полей. Например "AS ctnm":
$sql = 'SELECT mycity.name AS ctnm, mycountry.name
        FROM mycity, mycountry
        WHERE mycity.id = mycountry.id';
$stid = oci_parse($conn, $sql);
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
var_dump($row);

// Выведет записи из обоих полей:
//    array(2) {
//      ["CTNM"]=>
//      string(9) "Melbourne"
//      ["NAME"]=>
//      string(9) "Australia"
//    }

oci_free_statement($stid);
oci_close($conn);

?>

Пример #8 oci_fetch_array() с полями DATE

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Устанавливаем формат даты для данного соединения.
// Для повышения производительности вместо этого
// используйте изменение формата в триггере или переменной окружения.
$stid = oci_parse($conn, "ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD'");
oci_execute($stid);

$stid = oci_parse($conn, 'SELECT hire_date FROM employees WHERE employee_id = 188');
oci_execute($stid);
$row = oci_fetch_array($stid, OCI_ASSOC);
echo $row['HIRE_DATE'] . "<br>\n";  // выведет 1997-06-14

oci_free_statement($stid);
oci_close($conn);

?>

Пример #9 oci_fetch_array() с REF CURSOR

<?php
/*
  Создайте PL/SQL хранимую процедуру:

  CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
  BEGIN
    OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'BEGIN myproc(:rc); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Выполняет вовзращенный REF CURSOR и получает его в виде идентификатора выражения
oci_execute($refcur);
echo "<table border='1'>\n";
while (($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

Пример #10 Постраничный вывод с помощью oci_fetch_array() используя LIMIT-подобный запрос

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Определяем версию базы данных
preg_match('/Release ([0-9]+)\./', oci_server_version($conn), $matches);
$oracleversion = $matches[1];

// Запрос, который необходимо сделать "постраничным"
$sql = 'SELECT city, postal_code FROM locations ORDER BY city';

if ($oracleversion >= 12) {
    // Используем Oracle 12c OFFSET / FETCH NEXT синтаксис
    $sql = $sql . ' OFFSET :offset ROWS FETCH NEXT :numrows ROWS ONLY';
} else {
    // Cтарые версии Oracle нуждаются в выборке с помощью подзапроса в $sql.
    // Или, если SQL выражение известно на стадии разработки, то с помощью
    // функции row_number(). Будьте осторожны и избегайте возможности
    // SQL-инъекции при объединении строк в боевом окружении.
    $sql = "SELECT * FROM (SELECT a.*, ROWNUM AS my_rnum
                           FROM ($sql) a
                           WHERE ROWNUM <= :offset + :numrows)
            WHERE my_rnum > :offset";
}

$offset  = 0;  // skip this many rows
$numrows = 5;  // return 5 rows
$stid = oci_parse($conn, $sql);
oci_bind_by_name($stid, ':numrows', $numrows);
oci_bind_by_name($stid, ':offset', $offset);
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_ASSOC + OCI_RETURN_NULLS)) != false) {
    echo $row['CITY'] . " " . $row['POSTAL_CODE'] . "<br>\n";
}

// Выведет:
//    Beijing 190518
//    Bern 3095
//    Bombay 490231
//    Geneva 1730
//    Hiroshima 6823

oci_free_statement($stid);
oci_close($conn);

?>

Пример #11 oci_fetch_array() c Oracle Database 12c Implicit Result Sets

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/pdborcl');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

// Требует OCI8 2.0 и Oracle Database 12c
// также смотрите oci_get_implicit_resultset()
$sql = 'DECLARE
           c1 SYS_REFCURSOR;
        BEGIN
           OPEN c1 FOR SELECT city, postal_code FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
           OPEN c1 FOR SELECT country_id FROM locations WHERE ROWNUM < 4 ORDER BY city;
           DBMS_SQL.RETURN_RESULT(c1);
        END;';

$stid = oci_parse($conn, $sql);
oci_execute($stid);

// Обратите внимание: oci_fetch_all и oci_fetch() нельзя неприменимы здесь
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

// Выведет:
//    Beijing 190518
//    Bern    3095
//    Bombay  490231
//    CN
//    CH
//    IN

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Индексы ассоциативного массива необходимо приводить в верхний регистр для стандартных полей Oracle, созданных с регистронезависимыми названиями.

Замечание:

Для запросов, возвращающих большое количество рядов, производительность может быть значительно увеличена с помощью увеличения значения опции oci8.default_prefetch или использования oci_set_prefetch().

Замечание:

Функция oci_fetch_array() немного медленней oci_fetch_assoc() или oci_fetch_row(), но более гибкая.

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив
  • oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде ассоциативного массива
  • oci_fetch_object() - Возвращает следующую строку из результата запроса в виде объекта
  • oci_fetch_row() - Возвращает следующую строку из результата запроса в виде нумерованного массива
  • oci_set_prefetch() - Устанавливает количество строк, которые будут автоматически выбраны в буфер


Возвращает следующую строку из результата запроса в виде ассоциативного массива

  • « oci_fetch_array
  • oci_fetch_object »
  • PHP Manual
  • OCI8 Функции
  • Возвращает следующую строку из результата запроса в виде ассоциативного массива

oci_fetch_assoc

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_assoc — Возвращает следующую строку из результата запроса в виде ассоциативного массива

Описание

array oci_fetch_assoc ( resource $statement )

Возвращает ассоциативный массив, содержащий следующую строку из результата выполнения запроса. Каждый элемент массива соответствует столбцу текущей строки. Эта функция обычно вызывается в цикле, пока не возвращает FALSE, если больше нет строк.

Результат выполнения oci_fetch_assoc() идентичен выполнению oci_fetch_array() with OCI_ASSOC + OCI_RETURN_NULLS.

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

Возвращаемые значения

Возвращает ассоциативный массив. Если в результате запроса строк больше нет, возвращает FALSE.

Примеры

Пример #1 Пример использования oci_fetch_assoc()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_assoc($stid)) != false) {
    echo $row['DEPARTMENT_ID'] . " " . $row['DEPARTMENT_NAME'] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Смотрите дополнительные примеры получения рядов в oci_fetch_array().

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив
  • oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
  • oci_fetch_object() - Возвращает следующую строку из результата запроса в виде объекта
  • oci_fetch_row() - Возвращает следующую строку из результата запроса в виде нумерованного массива


Возвращает следующую строку из результата запроса в виде объекта

  • « oci_fetch_assoc
  • oci_fetch_row »
  • PHP Manual
  • OCI8 Функции
  • Возвращает следующую строку из результата запроса в виде объекта

oci_fetch_object

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_object — Возвращает следующую строку из результата запроса в виде объекта

Описание

object oci_fetch_object ( resource $statement )

Возвращает объект, содержащий следующую строку из результата запроса. Имена свойств объекта соответствуют именам столбцов в строке. Эта функция обычно вызывается в цикле пока не возвращает FALSE когда больше нет рядов.

За подробностями по операции отображения типов данных, осуществляемым расширением OCI8, обратитесь к типам данных, поддерживаемых драйвером

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

Возвращаемые значения

Возвращает объект. Каждое свойство объекта соответствуют именам столбцов в строке. Если в результате запроса больше нет рядов, то возвращает FALSE.

Любой столбец LOB возвращается как дескриптор LOB.

Столбцы DATE возвращаются в виде строк, форматированных в соответствии с текущим форматов даты. Стандартный формат может быть изменен с помощью переменных окружения Oracle, таких как NLS_LANG или с помощью предварительно запущенной ALTER SESSION SET NLS_DATE_FORMAT команды.

Вам не следует забывать о том, что Oracle возвращает имена полей в ВЕРХНЕМ регистре, поэтому имена атрибутов объекта будут также в ВЕРХНЕМ регистре. Используйте функцию var_dump() по отношению к полученному объекту для доступа к атрибутам.

Значения атрибутов соответствуют NULL для любых NULL полей.

Примеры

Пример #1 Пример использования oci_fetch_object()

<?php

/*
  Перед запуском создайте таблицу:
    CREATE TABLE mytab (id NUMBER, description VARCHAR2(30));
    INSERT INTO mytab (id, description) values (1, 'Fish and Chips');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    // Используйте имена атрибутов в верхнем регистре для каждого столбца Oracle
    echo $row->ID . "<br>\n";
    echo $row->DESCRIPTION . "<br>\n";
}

// Выведет:
//    1
//    Fish and Chips

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Пример использования oci_fetch_object() с названиями столбцов в различных регистрах

<?php

/*
Перед запуском создайте таблицу с именем столбца в различных регистрах:
    CREATE TABLE mytab (id NUMBER, "MyDescription" VARCHAR2(30));
    INSERT INTO mytab (id, "MyDescription") values (1, 'Iced Coffee');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, "MyDescription" FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    // Использование имён атрибутов в верхнем регистре для каждого столбца Oracle
    echo $row->ID . "<br>\n";
    // Использование точного написания для имени столбца с различными регистрами
    echo $row->MyDescription . "<br>\n";
}

// Выведет:
//    1
//    Iced Coffee

oci_free_statement($stid);
oci_close($conn);

?>

Пример #3 Пример использования oci_fetch_object() с LOB

<?php

/*
  Перед запуском создайте таблицу
    CREATE TABLE mytab (id NUMBER, description CLOB);
    INSERT INTO mytab (id, description) values (1, 'A very long string');
    COMMIT;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT id, description FROM mytab');
oci_execute($stid);

while (($row = oci_fetch_object($stid)) != false) {
    echo $row->ID . "<br>\n";
    // Таким образом будет выведено первые 11 байт из DESCRIPTION
    echo $row->DESCRIPTION->read(11) . "<br>\n";
}

// Выведет:
//    1
//    A very long

oci_free_statement($stid);
oci_close($conn);

?>

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив
  • oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде ассоциативного массива
  • oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
  • oci_fetch_row() - Возвращает следующую строку из результата запроса в виде нумерованного массива


Возвращает следующую строку из результата запроса в виде нумерованного массива

  • « oci_fetch_object
  • oci_fetch »
  • PHP Manual
  • OCI8 Функции
  • Возвращает следующую строку из результата запроса в виде нумерованного массива

oci_fetch_row

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch_row — Возвращает следующую строку из результата запроса в виде нумерованного массива

Описание

array oci_fetch_row ( resource $statement )

Возвращает нумерованный массив, содержащий следующую строку из результата запроса. Каждый массив соответствует столбцу строки. Эта функция обычно вызывается в цикле пока не возвращает FALSE, если в результате запроса больше нет строк.

Вызов oci_fetch_row() аналогичен вызову oci_fetch_array() с флагом OCI_NUM + OCI_RETURN_NULLS.

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

Возвращаемые значения

Возвращает нумерованный массив. Если в statement больше нет срок возвращает FALSE.

Примеры

Пример #1 Пример использования oci_fetch_row()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while (($row = oci_fetch_row($stid)) != false) {
    echo $row[0] . " " . $row[1] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

См. oci_fetch_array() для дополнительных примеров результатов запросов.

Смотрите также

  • oci_fetch() - Выбирает следующую строку из результата в буфер
  • oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив
  • oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
  • oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде ассоциативного массива
  • oci_fetch_object() - Возвращает следующую строку из результата запроса в виде объекта


Выбирает следующую строку из результата в буфер

  • « oci_fetch_row
  • oci_field_is_null »
  • PHP Manual
  • OCI8 Функции
  • Выбирает следующую строку из результата в буфер

oci_fetch

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_fetch — Выбирает следующую строку из результата в буфер

Описание

bool oci_fetch ( resource $statement )

Выбирает следующую строку из результата запроса во внутренний буфер, доступный с помощью oci_result() или через переменные, заранее определенные с помощью oci_define_by_name().

См. oci_fetch_array() для более детальной информации о выборе данных.

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

Возвращаемые значения

Возвращает TRUE при успехе или FALSE в результате запроса больше нет рядов.

Примеры

Пример #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 "Location id $locid is $city<br>\n";
}

// Выведет:
//   Location id 1000 is Roma
//   Location id 1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Пример использования oci_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') . " is ";
    echo oci_result($stid, 'CITY') . "<br>\n";
}

// Выведет:
//   1000 is Roma
//   1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Не возвращает ряды для неявных результирующих наборов в Oracle Database 12c. Используйте вместо данной функции функцию oci_fetch_array().

Смотрите также

  • oci_define_by_name() - Сопоставляет переменную PHP столбцу результата запроса
  • oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив
  • oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
  • oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде ассоциативного массива
  • oci_fetch_object() - Возвращает следующую строку из результата запроса в виде объекта
  • oci_fetch_row() - Возвращает следующую строку из результата запроса в виде нумерованного массива
  • oci_result() - Возвращает значение поля из результата запроса


Проверяет, равняется ли поле в текущем полученном ряду равным NULL

  • « oci_fetch
  • oci_field_name »
  • PHP Manual
  • OCI8 Функции
  • Проверяет, равняется ли поле в текущем полученном ряду равным NULL

oci_field_is_null

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_is_null — Проверяет, равняется ли поле в текущем полученном ряду равным NULL

Описание

bool oci_field_is_null ( resource $statement , mixed $field )

Проверяет, является ли значение, переданное в поле field из текущего ряда statement равным NULL.

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть порядковый номер поля (начиная с 1) или имя поля.

Возвращаемые значения

Возвращает TRUE, если field равен NULL, и FALSE если нет.

Примеры

Пример #1 Пример использования oci_field_name()

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (c1 NUMBER);
//   INSERT INTO mytab VALUES (1);
//   INSERT INTO mytab VALUES (NULL);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid);

while (($row = oci_fetch_array($stid, OCI_RETURN_NULLS)) != false) {
    $ncols = oci_num_fields($stid);
    for ($col = 1; $col <= $ncols; $col++) {
        var_dump(oci_field_is_null($stid, $col));
    }
}

// Выведет:
//    bool(false)
//    bool(true)

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnisnull(). В PHP 5.0.0 и выше ocicolumnisnull() является алиасом oci_field_is_null(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Возвращает имя поля из результата запроса

  • « oci_field_is_null
  • oci_field_precision »
  • PHP Manual
  • OCI8 Функции
  • Возвращает имя поля из результата запроса

oci_field_name

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_name — Возвращает имя поля из результата запроса

Описание

string oci_field_name ( resource $statement , mixed $field )

Возвращает имя поля field из результата запроса.

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает имя в виде строки, или FALSE при ошибках.

Примеры

Пример #1 Пример использования oci_field_name()

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // используйте OCI_DESCRIBE_ONLY, если не получаете данных

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Выведет:
//    Name           Type
//    NUMBER_COL    NUMBER
//    VARCHAR2_COL  VARCHAR2
//    CLOB_COL      CLOB
//    DATE_COL      DATE

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnname(). В PHP 5.0.0 и выше ocicolumnname() является алиасом oci_field_name(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_num_fields() - Возвращает количество полей в результате запроса
  • oci_field_type() - Возвращает имя типа поля
  • oci_field_size() - Возвращает размер поля


Возвращает точность поля

  • « oci_field_name
  • oci_field_scale »
  • PHP Manual
  • OCI8 Функции
  • Возвращает точность поля

oci_field_precision

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_precision — Возвращает точность поля

Описание

int oci_field_precision ( resource $statement , mixed $field )

Возвращает точность поля field.

Для полей типа FLOAT точность больше нуля, а масштаб равен -127. Если точность поля равна нулю, то тип поля - NUMBER. Иначе же, тип поля может быть описан как NUMBER(precision, scale).

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает точность в виде числа, или FALSE при ошибках.

Примеры

Пример #1 Пример использования oci_field_precision()

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // используйте OCI_DESCRIBE_ONLY, если не получаете данных

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " "
        . oci_field_precision($stid, $i) . " "
        . oci_field_scale($stid, $i) . "<br>\n";
}

// Выведет:
//   C1    0 -127
//   C2  126 -127
//   C3    4    0
//   C4    5    3

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnprecision(). В PHP 5.0.0 и выше ocicolumnprecision() является алиасом oci_field_scale(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_field_scale() - Возвращает масштаб поля
  • oci_field_type() - Возвращает имя типа поля


Возвращает масштаб поля

  • « oci_field_precision
  • oci_field_size »
  • PHP Manual
  • OCI8 Функции
  • Возвращает масштаб поля

oci_field_scale

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_scale — Возвращает масштаб поля

Описание

int oci_field_scale ( resource $statement , mixed $field )

Возвращает масштаб поля под номером field.

Для полей типа FLOAT точность, получаемая с помощью oci_field_precision(), больше нуля, а масштаб равен -127. Если точность поля равна нулю, то тип поля - NUMBER. Иначе же, тип поля может быть описан как NUMBER(precision, scale).

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает масштаб в виде числа, или FALSE при ошибке.

Примеры

Пример #1 oci_field_scale() Example

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (c1 NUMBER, c2 FLOAT, c3 NUMBER(4), c4 NUMBER(5,3));

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // используйте OCI_DESCRIBE_ONLY, если не получаете данных

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " "
        . oci_field_precision($stid, $i) . " "
        . oci_field_scale($stid, $i) . "<br>\n";
}

// Выведет:
//   C1    0 -127
//   C2  126 -127
//   C3    4    0
//   C4    5    3

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnscale(). В PHP 5.0.0 и выше ocicolumnscale() является алиасом oci_field_scale(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_field_precision() - Возвращает точность поля
  • oci_field_type() - Возвращает имя типа поля


Возвращает размер поля

  • « oci_field_scale
  • oci_field_type_raw »
  • PHP Manual
  • OCI8 Функции
  • Возвращает размер поля

oci_field_size

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_size — Возвращает размер поля

Описание

int oci_field_size ( resource $statement , mixed $field )

Возвращает размер поля field.

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает размер поля field в байтах, или FALSE при ошибках.

Примеры

Пример #1 Пример использования oci_field_size()

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // // используйте OCI_DESCRIBE_ONLY, если не получаете данных

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);
    $column_size  = oci_field_size($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "<td>$column_size</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Выведет:
//    Name           Type       Length
//    NUMBER_COL    NUMBER        22
//    VARCHAR2_COL  VARCHAR2       1
//    CLOB_COL      CLOB        4000
//    DATE_COL      DATE           7

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumnsize(). В PHP 5.0.0 и выше ocicolumnsize() является алиасом oci_field_size(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_num_fields() - Возвращает количество полей в результате запроса
  • oci_field_name() - Возвращает имя поля из результата запроса


Возвращает исходный Oracle тип поля

  • « oci_field_size
  • oci_field_type »
  • PHP Manual
  • OCI8 Функции
  • Возвращает исходный Oracle тип поля

oci_field_type_raw

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_type_raw — Возвращает исходный Oracle тип поля

Описание

int oci_field_type_raw ( resource $statement , mixed $field )

Возвращает тип "SQLT" Oracle поля field.

Если вы хотите получить тип поля, то oci_field_type() подойдет вам больше.

Список параметров

statement

Идентификатор допустимого OCI запроса.

field

Может быть номером поля (нумерация начинается с 1) или именем.

Возвращаемые значения

Возвращает исходный Oracle тип в виде числа, или FALSE при ошибках.

Примеры

Пример #1 Пример использования oci_field_type_raw()

<?php

// Create the table with:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1), clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'select * from mytab');
oci_execute($stid, OCI_DESCRIBE_ONLY);  // используйте OCI_DESCRIBE_ONLY, если не получаете данных
$n = oci_num_fields($stid);
for ($i = 1; $i <= $n; ++$i) {
    echo oci_field_name($stid, $i) . " is raw type: " . oci_field_type_raw($stid, $i) . "<br>\n";
}

// Выведет:
//    NUMBER_COL is raw type: 2
//    VARCHAR2_COL is raw type: 1
//    CLOB_COL is raw type: 112
//    DATE_COL is raw type: 12

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumntyperaw(). В PHP 5.0.0 и выше ocicolumntyperaw() является алиасом oci_field_type_raw(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Возвращает имя типа поля

  • « oci_field_type_raw
  • oci_free_descriptor »
  • PHP Manual
  • OCI8 Функции
  • Возвращает имя типа поля

oci_field_type

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_field_type — Возвращает имя типа поля

Описание

mixed oci_field_type ( resource $statement , mixed $field )

Возвращает имя типа поля.

Список параметров

statement

Допустимый идентификатор OCI-выражения.

field

Может быть задано индексом (начиная с 1) или по имени.

Возвращаемые значения

Возвращает тип поля как строку или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования oci_field_type()

<?php

// Создайте таблицу:
//   CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
//                       clob_col CLOB, date_col DATE);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // используйте OCI_DESCRIBE_ONLY, если не получаете данных

echo "<table border=\"1\">\n";
echo "<tr>";
echo "<th>Name</th>";
echo "<th>Type</th>";
echo "<th>Length</th>";
echo "</tr>\n";

$ncols = oci_num_fields($stid);

for ($i = 1; $i <= $ncols; $i++) {
    $column_name  = oci_field_name($stid, $i);
    $column_type  = oci_field_type($stid, $i);
    $column_size  = oci_field_size($stid, $i);

    echo "<tr>";
    echo "<td>$column_name</td>";
    echo "<td>$column_type</td>";
    echo "<td>$column_size</td>";
    echo "</tr>\n";
}

echo "</table>\n";

// Выведет:
//    Name           Type       Length
//    NUMBER_COL    NUMBER        22
//    VARCHAR2_COL  VARCHAR2       1
//    CLOB_COL      CLOB        4000
//    DATE_COL      DATE           7

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocicolumntype(). В PHP 5.0.0 и выше ocicolumntype() является алиасом oci_field_type(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_num_fields() - Возвращает количество полей в результате запроса
  • oci_field_name() - Возвращает имя поля из результата запроса
  • oci_field_size() - Возвращает размер поля


Освобождает дескриптор

  • « oci_field_type
  • oci_free_statement »
  • PHP Manual
  • OCI8 Функции
  • Освобождает дескриптор

oci_free_descriptor

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_free_descriptor — Освобождает дескриптор

Описание

bool oci_free_descriptor ( resource $descriptor )

Освобождает дескриптор созданный с помощью oci_new_descriptor().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Эта функция обычно используется как метод OCI-LOB::free.

Смотрите также

  • OCI-LOB::free


Освобождает ресурсы, занимаемые курсором или SQL-выражением

  • « oci_free_descriptor
  • oci_get_implicit_resultset »
  • PHP Manual
  • OCI8 Функции
  • Освобождает ресурсы, занимаемые курсором или SQL-выражением

oci_free_statement

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_free_statement — Освобождает ресурсы, занимаемые курсором или SQL-выражением

Описание

bool oci_free_statement ( resource $statement )

Освобождает все ресурсы, занимаемые курсором или SQL-выражением, которое было возвращено функцией oci_parse() или получено от сервера Oracle.

Список параметров

statement

Допустимый идентификатор OCI-выражения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Returns the next child statement resource from a parent statement resource that has Oracle Database 12c Implicit Result Sets

  • « oci_free_statement
  • oci_internal_debug »
  • PHP Manual
  • OCI8 Функции
  • Returns the next child statement resource from a parent statement resource that has Oracle Database 12c Implicit Result Sets

oci_get_implicit_resultset

(PECL OCI8 >= 2.0.0)

oci_get_implicit_resultset — Returns the next child statement resource from a parent statement resource that has Oracle Database 12c Implicit Result Sets

Описание

resource oci_get_implicit_resultset ( resource $statement )

Used to fetch consectutive sets of query results after the execution of a stored or anonymous Oracle PL/SQL block where that block returns query results with Oracle's DBMS_SQL.RETURN_RESULT PL/SQL function. This allows PL/SQL blocks to easily return query results.

The child statement can be used with any of the OCI8 fetching
functions: oci_fetch(), oci_fetch_all(),
oci_fetch_array(), oci_fetch_object(),
oci_fetch_assoc() or oci_fetch_row()

Child statements inherit their parent statement's prefetch value, or it can be explicitly set with oci_set_prefetch().

Список параметров

statement

A valid OCI8 statement identifier created by oci_parse() and executed by oci_execute(). The statement identifier may or may not be associated with a SQL statement that returns Implicit Result Sets.

Возвращаемые значения

Returns a statement handle for the next child statement available on statement. Returns FALSE when child statements do not exist, or all child statements have been returned by previous calls to oci_get_implicit_resultset().

Примеры

Пример #1 Fetching Implicit Result Sets in a loop

<?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>New Implicit Result Set:</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):"&nbsp;")."</td>\n";
        }
        echo "</tr>\n";
    }
    echo "</table>\n";
}

// Output is:
//    New Implicit Result Set:
//     Beijing 190518
//     Bern    3095
//     Bombay  490231
//    New Implicit Result Set:
//     CN
//     CH
//     IN

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Getting child statement handles individually

<?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);

// Output is:
//    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 Explicitly setting the Prefetch Count

<?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);   // Set the prefetch before fetching from the child statement
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):"&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Пример #4 Implicit Result Set example without using oci_get_implicit_resultset()

All results from all queries are returned consecutively.

<?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);

// Note: oci_fetch_all and oci_fetch() cannot be used in this manner
echo "<table>\n";
while (($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "  <td>".($item!==null?htmlentities($item, ENT_QUOTES|ENT_SUBSTITUTE):"&nbsp;")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

// Output is:
//    Beijing 190518
//    Bern 3095
//    Bombay 490231
//    CN
//    CH
//    IN

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Для запросов, возвращающих большое количество рядов, производительность может быть значительно увеличена с помощью увеличения значения опции oci8.default_prefetch или использования oci_set_prefetch().


Включает и выключает внутреннюю отладку

  • « oci_get_implicit_resultset
  • oci_lob_copy »
  • PHP Manual
  • OCI8 Функции
  • Включает и выключает внутреннюю отладку

oci_internal_debug

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_internal_debug — Включает и выключает внутреннюю отладку

Описание

void oci_internal_debug ( bool $onoff )

Включает и выключает внутреннюю отладку

Список параметров

onoff

Значение FALSE выключает отладку, а TRUE - включает.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ociinternaldebug(). В PHP 5.0.0 и выше ociinternaldebug() является алиасом oci_internal_debug(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Копирует объект LOB

  • « oci_internal_debug
  • oci_lob_is_equal »
  • PHP Manual
  • OCI8 Функции
  • Копирует объект LOB

oci_lob_copy

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_lob_copy — Копирует объект LOB

Описание

bool oci_lob_copy ( OCI-Lob $lob_to , OCI-Lob $lob_from [, int $length = 0 ] )

Копирует содержание или часть содержания объекта LOB в другой объект LOB. Содержимое объекта LOB, в который производится копирование, перезаписывается.

Если необходимо скопировать определенную часть объекта, то для этого можно использовать OCI-Lob::seek(), чтобы передвинуть внутренние указатели объектов на нужные позиции.

Список параметров

lob_to

LOB объект назначения.

lob_from

Копируемый объект LOB.

length

Длина участка содержимого для копирования.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Сравнивает два объекта LOB/FILE

  • « oci_lob_copy
  • oci_new_collection »
  • PHP Manual
  • OCI8 Функции
  • Сравнивает два объекта LOB/FILE

oci_lob_is_equal

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_lob_is_equal — Сравнивает два объекта LOB/FILE

Описание

bool oci_lob_is_equal ( OCI-Lob $lob1 , OCI-Lob $lob2 )

Сравнивает два объекта LOB/FILE.

Список параметров

lob1

Идентификатор LOB.

lob2

Идентификатор LOB.

Возвращаемые значения

Возвращает TRUE, если объекты идентичны, и FALSE в обратном случае или в случае ошибки.


Создает новый объект коллекции

  • « oci_lob_is_equal
  • oci_new_connect »
  • PHP Manual
  • OCI8 Функции
  • Создает новый объект коллекции

oci_new_collection

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_collection — Создает новый объект коллекции

Описание

OCI-Collection oci_new_collection ( resource $connection , string $tdo [, string $schema = NULL ] )

Создает новый объект коллекции.

Список параметров

connection

Идентификатор соединения с сервером Oracle, возвращаемый функцией oci_connect() или oci_pconnect().

tdo

Должен быть корректным именем типа (в верхнем регистре).

schema

Должна быть указана схема данных, где создан именованный тип. По умолчанию, указывается имя пользователя в качестве имени схемы.

Возвращаемые значения

Returns a new OCICollection object or FALSE on error.

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocinewcollection(). В PHP 5.0.0 и выше ocinewcollection() является алиасом oci_new_collection(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Устанавливает новое соединение с сервером Oracle

  • « oci_new_collection
  • oci_new_cursor »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает новое соединение с сервером Oracle

oci_new_connect

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_connect — Устанавливает новое соединение с сервером Oracle

Описание

resource oci_new_connect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] )

Создает новое соединение с сервером Oracle и выполняет вход.

В отличие от oci_connect() и oci_pconnect(), функция oci_new_connect() не кэширует соединения и при каждом вызове устанавливает новое соединение. Это полезно, если приложению необходима транзакционная изоляция двух наборов запросов.

Список параметров

username

Имя пользователя Oracle.

password

Пароль пользователя username.

connection_string

Содержит экземпляр Oracle для подключения. Это может быть » Easy Connect string, или Connect Name из файла tnsnames.ora, или имя локального экземпляра Oracle.

Если не указано отдельно, PHP использует переменные окружения, такие как TWO_TASK (на Linux) или LOCAL (на Windows) и ORACLE_SID для определения экземпляра Oracle для соединения.

Для использования метода Easy Connect, PHP должен быть слинкован с клиентскими библиотеками версии Oracle 10g или старше. Easy Connect string для Oracle 10g принимает следующую форму: [//]host_name[:port][/service_name]. Начиная с Oracle 11g синтаксис таков: [//]host_name[:port][/service_name][:server_type][/instance_name]. Названия служб могут быть определены с помощью запуска Oracle утилиты lsnrctl status на сервере базы данных.

Файл tnsnames.ora может находиться в поисковом пути Oracle Net, который включает $ORACLE_HOME/network/admin и /etc. В качестве альтернативного варианта можно установить TNS_ADMIN таким образом, чтобы путь $TNS_ADMIN/tnsnames.ora был читаемым. Убедитесь, что веб-сервер имеет доступ к этому файлу.

character_set

Определяет кодировку, используемую клиентскими библиотеками Oracle. Данная кодировка не обязательно должна совпадать с кодировкой, используемой в самой базе данных. Если она не совпадает, Oracle сделает все возможное для конвертирования данных из- и в данную кодировку. В зависимости от используемых кодировок это может не всегда давать приемлемые результаты. Преобразование также создает некоторые дополнительные временные затраты.

Если кодировка не указана, клиентские библиотеки Oracle будут определять ее из переменной окружения NLS_LANG.

Передача этого параметра может уменьшить время затрачиваемое на соединение.

session_mode

Этот параметр доступен начиная с версии PHP 5 (PECL OCI8 1.1) и принимает следующие значения: OCI_DEFAULT, OCI_SYSOPER и OCI_SYSDBA. Если были указаны OCI_SYSOPER или OCI_SYSDBA, данная функция попытается установить привилегированное соединение, используя внешние данные авторизации. По умолчанию привилегированные соединения отключены. Чтобы их включить, необходимо установить oci8.privileged_connect в On.

В версии PHP 5.3 (PECL OCI8 1.3.4) появилось значение OCI_CRED_EXT. Оно указывает Oracle использовать внешнюю аутентификацию или аутентификацию с помощью операционной системы, что должно быть настроено в базе данных. Флаг OCI_CRED_EXT может быть использован только с именем пользователя "/" и пустым паролем. oci8.privileged_connect может принимать значение On или Off.

OCI_CRED_EXT может использоваться совместно с режимами OCI_SYSOPER и OCI_SYSDBA.

OCI_CRED_EXT не поддерживается в Windows по причинам безопасности.

Возвращаемые значения

Возвращает идентификатор соединения или FALSE в случае ошибки.

Примеры

Приведенный ниже пример иллюстрирует как использовать обособленные соединения.

Пример #1 Пример использованияoci_new_connect()

<?php

// создайте таблицу mytab (mycol number);

function query($name, $c)
{
    echo "Выполнение $name\n";
    $s = oci_parse($c, "select * from mytab");
    oci_execute($s, OCI_NO_AUTO_COMMIT);
    $row = oci_fetch_array($s, OCI_ASSOC);
    if (!$row) {
        echo "Нет данных\n";
    } else {
        do {
            foreach ($row as $item)
                echo $item . " ";
            echo "\n";
        } while (($row = oci_fetch_array($s, OCI_ASSOC)) != false);
    }
}

$c1 = oci_connect("hr", "welcome", "localhost/orcl");
$c2 = oci_new_connect("hr", "welcome", "localhost/orcl");

$s = oci_parse($c1, "insert into mytab values(1234)");
oci_execute($s, OCI_NO_AUTO_COMMIT);

query("основного соединения", $c1);
query("нового соединения", $c2);
oci_commit($c1);
query("нового соединения после commit", $c2);

// Выведет:
//   Выполнение основного соединения
//   1234
//   Выполнение нового соединения
//   Нет данных
//   Выполнение нового соединения после commit
//   1234

?>

Дополнительные примеры можно найти в описании функции oci_connect().

Смотрите также

  • oci_connect() - Устанавливает соединение с базой данных Oracle
  • oci_pconnect() - Устанавливает постоянное соединение с сервером Oracle


Возвращает идентификатор созданного курсора

  • « oci_new_connect
  • oci_new_descriptor »
  • PHP Manual
  • OCI8 Функции
  • Возвращает идентификатор созданного курсора

oci_new_cursor

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_cursor — Возвращает идентификатор созданного курсора

Описание

resource oci_new_cursor ( resource $connection )

Создает новый курсор для указанного соединения и возвращает его идентификатор.

Список параметров

connection

Идентификатор соединения с сервером Oracle, возвращаемый функцией oci_connect() или oci_pconnect().

Возвращаемые значения

Возвращает указатель на новое выражение или FALSE в случае ошибки.

Примеры

Пример #1 Привязка REF CURSOR в вызове хранимых процедур Oracle

<?php

// Предварительная подготовка:
//   создайте или замените процедуру myproc(myrc out sys_refcursor) как
//   begin
//     open myrc for select first_name from employees;
//   end;

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$curs = oci_new_cursor($conn);
$stid = oci_parse($conn, "begin myproc(:cursbv); end;");
oci_bind_by_name($stid, ":cursbv", $curs, -1, OCI_B_CURSOR);
oci_execute($stid);

oci_execute($curs);  // Выполняет REF CURSOR как обычный идентификатор выражения
while (($row = oci_fetch_array($curs, OCI_ASSOC+OCI_RETURN_NULLS)) != false) {
    echo $row['FIRST_NAME'] . "<br />\n";
}

oci_free_statement($stid);
oci_free_statement($curs);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocinewcursor(). В PHP 5.0.0 и выше ocinewcursor() является алиасом oci_new_cursor(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Инициализирует новый дескриптор объекта LOB или FILE

  • « oci_new_cursor
  • oci_num_fields »
  • PHP Manual
  • OCI8 Функции
  • Инициализирует новый дескриптор объекта LOB или FILE

oci_new_descriptor

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_new_descriptor — Инициализирует новый дескриптор объекта LOB или FILE

Описание

OCI-Lob oci_new_descriptor ( resource $connection [, int $type = OCI_DTYPE_LOB ] )

Резервирует ресурсы, необходимые для хранения дескриптора объекта или LOB-локатора.

Список параметров

connection

Идентификатор соединения с сервером Oracle, возвращаемый функцией oci_connect() или oci_pconnect().

type

Допустимые значения параметра type: OCI_DTYPE_FILE, OCI_DTYPE_LOB и OCI_DTYPE_ROWID.

Возвращаемые значения

Возвращает новый LOB или дескриптор FILE в случае успеха или FALSE при ошибке.

Примеры

Пример #1 Пример использования oci_new_descriptor()

<?php
/* Приведенный скрипт разработан для использования с HTML формами.
 * Это подразумевает, что $user, $password, $table, $where, и $commitsize
 * получены из формы. Скрипт удаляет записи с использованием
 * ROWID и закрывает транзакцию после каждого
 * $commitsize записей. (Используйте осторожно, откат изменений невозможен)
 */
$conn = oci_connect($user, $password);
$stmt = oci_parse($conn, "select rowid from $table $where");
$rowid = oci_new_descriptor($conn, OCI_D_ROWID);
oci_define_by_name($stmt, "ROWID", $rowid);
oci_execute($stmt);
while (oci_fetch($stmt)) {
    $nrows = oci_num_rows($stmt);
    $delete = oci_parse($conn, "delete from $table where ROWID = :rid");
    oci_bind_by_name($delete, ":rid", $rowid, -1, OCI_B_ROWID);
    oci_execute($delete);
    echo "$nrows\n";
    if (($nrows % $commitsize) == 0) {
        oci_commit($conn);
    }
}
$nrows = oci_num_rows($stmt);
echo "$nrows deleted...\n";
oci_free_statement($stmt);
oci_close($conn);
?>
<?php
    /* Данный скрипт реализует загрузку файлов в LOB-столбцы
     * HTML-форма для скрипта выглядит примерно так:
     * <form action="upload.php" method="post" enctype="multipart/form-data">
     * <input type="file" name="lob_upload" />
     * ...
     */
  if (!isset($lob_upload) || $lob_upload == 'none'){
?>
<form action="upload.php" method="post" enctype="multipart/form-data">
Upload file: <input type="file" name="lob_upload" /><br />
<input type="submit" value="Upload" /> - <input type="reset" value="Reset" />
</form>
<?php
  } else {

     // $lob_upload содержит временное имя загруженного файла

     // см. также раздел особенностей загрузки файлов,
     // если необходимо реализовать безопасную загрузку

     $conn = oci_connect($user, $password);
     $lob = oci_new_descriptor($conn, OCI_D_LOB);
     $stmt = oci_parse($conn, "insert into $table (id, the_blob)
               values(my_seq.NEXTVAL, EMPTY_BLOB()) returning the_blob into :the_blob");
     oci_bind_by_name($stmt, ':the_blob', $lob, -1, OCI_B_BLOB);
     oci_execute($stmt, OCI_DEFAULT);
     if ($lob->savefile($lob_upload)){
        oci_commit($conn);
        echo "Blob successfully uploaded\n";
     }else{
        echo "Couldn't upload Blob\n";
     }
     $lob->free();
     oci_free_statement($stmt);
     oci_close($conn);
  }
?>

Пример #2 Пример использования oci_new_descriptor()

<?php
/* Вызов хранимой процедуры PL/SQL, параметрами которой являются объекты CLOB
 * Пример PL/SQL процедуры:
 *
 * PROCEDURE save_data
 *   Argument Name                  Type                    In/Out Default?
 *   ------------------------------ ----------------------- ------ --------
 *   KEY                            NUMBER(38)              IN
 *   DATA                           CLOB                    IN
 *
 */

$conn = oci_connect($user, $password);
$stmt = oci_parse($conn, "begin save_data(:key, :data); end;");
$clob = oci_new_descriptor($conn, OCI_D_LOB);
oci_bind_by_name($stmt, ':key', $key);
oci_bind_by_name($stmt, ':data', $clob, -1, OCI_B_CLOB);
$clob->write($data);
oci_execute($stmt, OCI_DEFAULT);
oci_commit($conn);
$clob->free();
oci_free_statement($stmt);
?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocinewdescriptor(). В PHP 5.0.0 и выше ocinewdescriptor() является алиасом oci_new_descriptor(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_bind_by_name() - Прикрепляет переменную PHP к соответствующей метке в SQL-выражении


Возвращает количество полей в результате запроса

  • « oci_new_descriptor
  • oci_num_rows »
  • PHP Manual
  • OCI8 Функции
  • Возвращает количество полей в результате запроса

oci_num_fields

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_num_fields — Возвращает количество полей в результате запроса

Описание

int oci_num_fields ( resource $statement )

Получает число столбцов в запросе, заданном в statement.

Список параметров

statement

Идентификатор допустимого OCI запроса.

Возвращаемые значения

Возвращает число затронутых строк в виде integer, либо FALSE при ошибке.

Примеры

Пример #1 Пример использования oci_num_fields()

<?php

// Создате таблицу:
//   CREATE TABLE mytab (id NUMBER, quantity NUMBER);

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // используйте OCI_DESCRIBE_ONLY, если не получаете данных

$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
    echo oci_field_name($stid, $i) . " " . oci_field_type($stid, $i) . "<br>\n";
}

// Выведет:
//    ID NUMBER
//    QUANTITY NUMBER

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocinumcols(). В PHP 5.0.0 и выше ocinumcols() является алиасом oci_num_fields(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Возвращает количество строк, измененных в процессе выполнения запроса

  • « oci_num_fields
  • oci_parse »
  • PHP Manual
  • OCI8 Функции
  • Возвращает количество строк, измененных в процессе выполнения запроса

oci_num_rows

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_num_rows — Возвращает количество строк, измененных в процессе выполнения запроса

Описание

int oci_num_rows ( resource $statement )

Возвращает число строк, затронутых в процессе выполнения запроса.

Список параметров

statement

Идентификатор допустимого OCI запроса.

Возвращаемые значения

Возвращает число затронутых строк в виде integer, либо FALSE при ошибке.

Примеры

Пример #1 Пример использования oci_num_rows()

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
    $m = oci_error();
    trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "create table emp2 as select * from employees");
oci_execute($stid);
echo oci_num_rows($stid) . " рядов вставлено.<br />\n";
oci_free_statement($stid);

$stid = oci_parse($conn, "delete from emp2");
oci_execute($stid, OCI_DEFAULT);
echo oci_num_rows($stid) . " рядов удалено.<br />\n";
oci_commit($conn);
oci_free_statement($stid);

$stid = oci_parse($conn, "drop table emp2");
oci_execute($stid);
oci_free_statement($stid);

oci_close($conn);

?>

Примечания

Замечание:

Эта функция не возвращает количество строк в результате выражения SELECT! Для запросов SELECT oci_num_rows() вернет количество строк, которые были считаны в буфер с помощью функций oci_fetch*().

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocirowcount(). В PHP 5.0.0 и выше ocirowcount() является алиасом oci_num_rows(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.


Подготавливает запрос к выполнению

  • « oci_num_rows
  • oci_password_change »
  • PHP Manual
  • OCI8 Функции
  • Подготавливает запрос к выполнению

oci_parse

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_parse — Подготавливает запрос к выполнению

Описание

resource oci_parse ( resource $connection , string $sql_text )

Подготавливает sql_text к выполнению, используя соединение connection и возвращает идентификатор выражения, который может быть далее использован функциямиoci_bind_by_name(),oci_execute() и другими.

Идентификаторы выражений могут быть освобождены функцией oci_free_statement() или установкой переменной в NULL.

Список параметров

connection

Идентификатор соединения Oracle, полученный из функций oci_connect(), oci_pconnect() или oci_new_connect().

sql_text

Запрос SQL или PL/SQL.

SQL-запросы не должны заканчиваться точкой с запятой (";"). PL/SQL-запросы должны оканчиваться точкой с запятой (";").

Возвращаемые значения

Возвращает дескриптор выражения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования oci_parse() с SQL-запросами

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

// Парсинг запроса. Обратите внимание на отсутствие точки запятой в конце SQL-запроса
$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "&nbsp;") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Пример #2 Пример использования oci_parse() с PL/SQL-запросами

<?php

/*
  Перед запуском PHP-скрипта, создайте хранимую процедуру в
  SQL*Plus или SQL Developer:

  CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
  BEGIN
      p2 := p1 * 2;
  END;

*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$p1 = 8;

// При парсинге PL/SQL запросов необходимо наличие точки с запятой в конце строки
$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);

oci_execute($stid);

print "$p2\n";   // prints 16

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

Эта функция не проверяет синтаксис запроса sql_text. Единственный способ проверить правильность SQL или PL/SQL-запроса sql_text - это выполнить его.

Смотрите также

  • oci_execute() - Выполняет подготовленное выражение
  • oci_free_statement() - Освобождает ресурсы, занимаемые курсором или SQL-выражением


Изменяет пароль пользователя Oracle

  • « oci_parse
  • oci_pconnect »
  • PHP Manual
  • OCI8 Функции
  • Изменяет пароль пользователя Oracle

oci_password_change

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_password_change — Изменяет пароль пользователя Oracle

Описание

bool oci_password_change ( resource $connection , string $username , string $old_password , string $new_password )
resource oci_password_change ( string $dbname , string $username , string $old_password , string $new_password )

Изменяет пароль пользователя, указанного в username.

Функция oci_password_change() особенно полезна для скриптов PHP командной строки, или при использовании непостоянных соединений во всем приложении PHP.

Список параметров

connection

Идентификатор соединения, возвращаемый функцией oci_connect() или oci_pconnect().

username

Имя пользователя Oracle.

old_password

Старый пароль.

new_password

Новый пароль.

dbname

Имя базы данных.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_password_change() с изменением пароля уже подключенного пользователя

<?php

$dbase      = 'localhost/orcl';
$user       = 'cj';
$current_pw = 'welcome';
$new_pw     = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
oci_password_change($c, $user, $current_pw, $new_pw);
echo "Новый пароль : " . $new_pw . "\n";

?>

Пример #2 Пример использования oci_password_change() с подключением и изменением пароля одновременно

<?php

$dbase      = 'localhost/orcl';
$user       = 'cj';
$current_pw = 'welcome';
$new_pw     = 'geelong';

$c = oci_pconnect($user, $current_pw, $dbase);
if (!$c) {
    $m = oci_error();
    if ($m['code'] == 28001) { // "ORA-28001: the password has expired"
        // Подключение и сброс пароля одновременно
        $c = oci_password_change($dbase, $user, $current_pw, $new_pw);
        if ($c) {
            echo "Новый пароль : " . $new_pw . "\n";
        }
    }
}

if (!$c) {  // Ошибка не совпадала с 28001, или не получилось изменить пароль
    $m = oci_error();
    trigger_error('Не удалось подключиться к базе данных: '. $m['message'], E_USER_ERROR);
}

// Использование подключения $c
...

?>

Примечания

Замечание:

Изменение пароля с помощью этой функции или непосредственно в Oracle должно выполняться аккуратно, поскольку PHP-приложение может продолжать использовать в постоянных соединениях данные аутентификации последнего удачного подключения, которые уже устарели. Наилучшим решением может быть перезапуск всех веб-серверов после смены пароля.

Замечание:

При обновлении библиотеки клиента Oracle или базы данных от версии установки до версии 11.2.0.3 и выше функция oci_password_change() может вернуть ошибку "ORA-1017: invalid username/password" (Неверные имя пользователя/пароль), если версии и клиента и сервера обновлены в одно время.

Замечание:

Второй набор параметров функции oci_password_change() доступен начиная с версии OCI8 1.1.

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ocipasswordchange(). В PHP 5.0.0 и выше ocipasswordchange() является алиасом oci_password_change() для обратной совместимости, вы можете продолжать использовать это имя, однако это не рекомендуется.


Устанавливает постоянное соединение с сервером Oracle

  • « oci_password_change
  • oci_result »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает постоянное соединение с сервером Oracle

oci_pconnect

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_pconnect — Устанавливает постоянное соединение с сервером Oracle

Описание

resource oci_pconnect ( string $username , string $password [, string $connection_string [, string $character_set [, int $session_mode ]]] )

Создает постоянное соединение с сервером Oracle и выполняет аутентификацию.

Постоянные соединения кэшируются и повторно используются при следующих запросах, в результате снижаются накладные расходы при каждой загрузке страницы; типичное приложение PHP имеет одно постоянное подключение к серверу PHP, реализованное дочерним процессом Apache (или PHP FastCGI/CGI). Для получения подробной информации см. раздел Постоянные соединения с БД.

Список параметров

username

Имя пользователя Oracle.

password

Пароль пользователя username.

connection_string

Содержит экземпляр Oracle для подключения. Это может быть » Easy Connect string, или Connect Name из файла tnsnames.ora, или имя локального экземпляра Oracle.

Если не указано отдельно, PHP использует переменные окружения, такие как TWO_TASK (на Linux) или LOCAL (на Windows) и ORACLE_SID для определения экземпляра Oracle для соединения.

Для использования метода Easy Connect, PHP должен быть слинкован с клиентскими библиотеками версии Oracle 10g или старше. Easy Connect string для Oracle 10g принимает следующую форму: [//]host_name[:port][/service_name]. Начиная с Oracle 11g синтаксис таков: [//]host_name[:port][/service_name][:server_type][/instance_name]. Названия служб могут быть определены с помощью запуска Oracle утилиты lsnrctl status на сервере базы данных.

Файл tnsnames.ora может находиться в поисковом пути Oracle Net, который включает $ORACLE_HOME/network/admin и /etc. В качестве альтернативного варианта можно установить TNS_ADMIN таким образом, чтобы путь $TNS_ADMIN/tnsnames.ora был читаемым. Убедитесь, что веб-сервер имеет доступ к этому файлу.

character_set

Определяет кодировку, используемую клиентскими библиотеками Oracle. Данная кодировка не обязательно должна совпадать с кодировкой, используемой в самой базе данных. Если она не совпадает, Oracle сделает все возможное для конвертирования данных из- и в данную кодировку. В зависимости от используемых кодировок это может не всегда давать приемлемые результаты. Преобразование также создает некоторые дополнительные временные затраты.

Если кодировка не указана, клиентские библиотеки Oracle будут определять ее из переменной окружения NLS_LANG.

Передача этого параметра может уменьшить время затрачиваемое на соединение.

session_mode

Этот параметр доступен начиная с версии PHP 5 (PECL OCI8 1.1) и принимает следующие значения: OCI_DEFAULT, OCI_SYSOPER и OCI_SYSDBA. Если были указаны OCI_SYSOPER или OCI_SYSDBA, данная функция попытается установить привилегированное соединение, используя внешние данные авторизации. По умолчанию привилегированные соединения отключены. Чтобы их включить, необходимо установить oci8.privileged_connect в On.

В версии PHP 5.3 (PECL OCI8 1.3.4) появилось значение OCI_CRED_EXT. Оно указывает Oracle использовать внешнюю аутентификацию или аутентификацию с помощью операционной системы, что должно быть настроено в базе данных. Флаг OCI_CRED_EXT может быть использован только с именем пользователя "/" и пустым паролем. oci8.privileged_connect может принимать значение On или Off.

OCI_CRED_EXT может использоваться совместно с режимами OCI_SYSOPER и OCI_SYSDBA.

OCI_CRED_EXT не поддерживается в Windows по причинам безопасности.

Возвращаемые значения

Возвращает идентификатор подключения или FALSE в случае ошибки.

Примеры

Пример #1 Простой пример для oci_pconnect() с использованием упрощенного синтаксиса подключения

<?php

// Подключение к XE сервису (т.е. базе данных) на локальной машине
$conn = oci_pconnect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

?>

Дополнительные примеры можно найти в описании функции oci_connect().

Примечания

Замечание: Начиная с версии PHP 5.1.2 и PECL OCI8 1.1, продолжительность и максимальное количество постоянных соединений к серверу Oracle на каждый процесс PHP может быть изменено в следующих директивах: oci8.persistent_timeout, oci8.ping_interval и oci8.max_persistent.

Смотрите также

  • oci_connect() - Устанавливает соединение с базой данных Oracle
  • oci_new_connect() - Устанавливает новое соединение с сервером Oracle


Возвращает значение поля из результата запроса

  • « oci_pconnect
  • oci_rollback »
  • PHP Manual
  • OCI8 Функции
  • Возвращает значение поля из результата запроса

oci_result

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_result — Возвращает значение поля из результата запроса

Описание

mixed oci_result ( resource $statement , mixed $field )

Возвращает данные поля field текущей строки, возвращаемой функцией oci_fetch().

За подробностями по операции отображения типов данных, осуществляемым расширением OCI8, обратитесь к типам данных, поддерживаемых драйвером

Список параметров

statement

field

Может быть задано номером поля (начиная с 1), либо по имени. Регистр имени поля должен быть таким же, как и у поля описанного в метаданных Oracle, которое всегда в верхнем регистре для полей, созданных регистронезависимыми.

Возвращаемые значения

Возвращает все значения в виде строки за исключением абстрактных типов (ROWIDs, LOBs и FILEs). Возвращает FALSE в случае ошибки.

Примеры

Пример #1 oci_fetch() с oci_result()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
    $e = oci_error();
    trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

$sql = 'SELECT location_id, city FROM locations WHERE location_id < 1200';
$stid = oci_parse($conn, $sql);
oci_execute($stid);

while (oci_fetch($stid)) {
    echo oci_result($stid, 'LOCATION_ID') . " is ";
    echo oci_result($stid, 'CITY') . "<br>\n";
}

// Выведет:
//   1000 is Roma
//   1100 is Venice

oci_free_statement($stid);
oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ociresult(). В PHP 5.0.0 и выше ociresult() является алиасом oci_result() в целях обратной совместимости. Вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_fetch_array() - Возвращает следующую строку из результата запроса в виде ассоциативного или нумерованного массива
  • oci_fetch_assoc() - Возвращает следующую строку из результата запроса в виде ассоциативного массива
  • oci_fetch_object() - Возвращает следующую строку из результата запроса в виде объекта
  • oci_fetch_row() - Возвращает следующую строку из результата запроса в виде нумерованного массива
  • oci_fetch_all() - Выбирает все строки из результата запроса в двумерный массив


Откатывает транзакции, ожидающие обработки

  • « oci_result
  • oci_server_version »
  • PHP Manual
  • OCI8 Функции
  • Откатывает транзакции, ожидающие обработки

oci_rollback

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_rollback — Откатывает транзакции, ожидающие обработки

Описание

bool oci_rollback ( resource $connection )

Данная функция откатывает все незафиксированные изменения соединения Oracle connection и завершает транзакцию. Она также освобождает все установленные блокировки. Удаляются все Oracle SAVEPOINTS.

Транзакция начинается при первом SQL-запросе, изменяющим данные, который был запущен с помощью функции oci_execute() и флага OCI_NO_AUTO_COMMIT. Последующие изменения данных от других запросов также становятся частью данной транзакции. Изменения, сделанные в транзакции, являются временными до тех пор, пока транзакция не будет зафиксирована или будет произведен ее откат. Другие пользователи базы данных не смогут увидеть изменения до их фиксации.

При вставке или обновлении данных рекомендуется использовать транзакции для сохранения целостности данных и увеличения производительности.

Список параметров

connection

Идентификатор соединения Oracle, полученный из функций oci_connect(), oci_pconnect() или oci_new_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования oci_rollback()

<?php

// Вставка в несколько таблиц, откат изменений в случае ошибки

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, "INSERT INTO mysalary (id, name) VALUES (1, 'Chris')");

// Флаг OCI_NO_AUTO_COMMIT сообщает Oracle не фиксировать запрос INSERT при его поступлении
// Для PHP <= 5.3.1 используйте OCI_DEFAULT, эти два флага эквивалентны
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, 'INSERT INTO myschedule (startday) VALUES (12)');
$r = oci_execute($stid, OCI_NO_AUTO_COMMIT);
if (!$r) {
    $e = oci_error($stid);
    oci_rollback($conn);  // откат изменений из обоих таблиц
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

// Фиксация изменений в обоих таблицах
$r = oci_commit($conn);
if (!r) {
    $e = oci_error($conn);
    trigger_error(htmlentities($e['message']), E_USER_ERROR);
}

?>

Пример #2 Пример использования отката до SAVEPOINT

<?php
$stid = oci_parse($conn, 'UPDATE mytab SET id = 1111');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// Создаем точку сохранения
$stid = oci_parse($conn, 'SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

$stid = oci_parse($conn, 'UPDATE mytab SET id = 2222');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

// Явно используем SQL-запрос для отката к точке сохранения
$stid = oci_parse($conn, 'ROLLBACK TO SAVEPOINT mysavepoint');
oci_execute($stid, OCI_NO_AUTO_COMMIT);

oci_commit($conn);  // mytab теперь содержит id равные 1111
?>

Примечания

Замечание:

Транзакции будут автоматически откачены при закрытии соединения или окончании скрипта (в зависимости от того, что случится раньше). Для фиксации транзакции необходимо явно вызвать функцию oci_commit().

Все вызовы oci_execute(), явно или по умолчанию использующие режим OCI_COMMIT_ON_SUCCESS зафиксируют любую предыдущую незафиксированную транзакцию.

Любой DDL-запрос Oracle, такой как CREATE или DROP автоматически фиксирует любую незафиксированную транзакцию.

Смотрите также

  • oci_commit() - Подтверждает транзакцию базы данных
  • oci_execute() - Выполняет подготовленное выражение


Возвращает версию сервера Oracle

  • « oci_rollback
  • oci_set_action »
  • PHP Manual
  • OCI8 Функции
  • Возвращает версию сервера Oracle

oci_server_version

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_server_version — Возвращает версию сервера Oracle

Описание

string oci_server_version ( resource $connection )

Возвращает строку с информацией о версии сервера Oracle и доступных опциях

Список параметров

connection

Возвращаемые значения

Возвращает в виде строки информацию о версии или FALSE при ошибке.

Примеры

Пример #1 Пример использования oci_server_version()

<?php

$conn = oci_connect("hr", "hrpwd", "localhost/XE");
echo "Server Version: " . oci_server_version($conn);

// Выведет:
// Server Version: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
// With the Partitioning, OLAP, Data Mining and Real Application Testing option

oci_close($conn);

?>

Примечания

Замечание:

В версиях PHP ниже 5.0.0 эта функция называлась ociserverversion(). В PHP 5.0.0 и выше ociserverversion() является алиасом oci_server_version(), поэтому вы можете продолжать использовать это имя, однако это не рекомендуется.

Смотрите также

  • oci_client_version() - Возвращает версию клиентской библиотеки


Задает имя для действия

  • « oci_server_version
  • oci_set_client_identifier »
  • PHP Manual
  • OCI8 Функции
  • Задает имя для действия

oci_set_action

(PHP 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_action — Задает имя для действия

Описание

bool oci_set_action ( resource $connection , string $action_name )

Присваивает имя действию для трассировки Oracle.

Присвоенное имя регистрируется в базе данных во время очередного запроса от PHP, например, когда запускается SQL выражение.

Имя действия может быть извлечено из административных представлений (view) базы данных, таких как V$SESSION. Его можно использовать для трассировки и мониторинга, например, с помощью V$SQLAREA и DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

Значение можно устанавливать и через постоянные соединения.

Список параметров

connection

Идентификатор соединения Oracle, возвращаемый oci_connect(), oci_pconnect(), или oci_new_connect().

action_name

Задаваемая пользователем строка до 32 байт.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка действия

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Запись действия
oci_set_action($c, 'Friend Lookup');

// Код, осуществляющий запрос к БД, например выборка:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);

?>
// Пока скрипт выполняется, администратор может наблюдать выполнение действий:

sqlplus system/welcome
SQL> select action from v$session;

Примечания

Замечание: Требование к версии Oracle

Эта функция доступна, если PHP слинкован с библиотеками Oracle Database начиная с версии 10g и выше.

Подсказка

Производительность

В старых версиях OCI8 или базы данных Oracle было возможно установить информацию о клиенте с помощью пакета DBMS_APPLICATION_INFO. Для этой цели более эффективно использование функции oci_set_client_info().

Предостережение

Совет по полному сканированию таблицы (roundtrip)

Некоторые, но не все OCI8-функции вызывают полное сканирование таблицы (roundtrip). Полное сканирование таблиц не происходит для тех запросов, в которых включено кэширование результатов в базе данных.

Смотрите также

  • oci_set_module_name() - Задает имя модулю
  • oci_set_client_info() - Задает информацию о клиенте
  • oci_set_client_identifier() - Задает идентификатор клиента


Задает идентификатор клиента

  • « oci_set_action
  • oci_set_client_info »
  • PHP Manual
  • OCI8 Функции
  • Задает идентификатор клиента

oci_set_client_identifier

(PHP 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_client_identifier — Задает идентификатор клиента

Описание

bool oci_set_client_identifier ( resource $connection , string $client_identifier )

Устанавливает идентификатор клиента, используемый различными компонентами базы данных для идентификации различных пользователей тонких клиентов, которые авторизуются в базе данных как один пользователь.

Идентификатор клиента регистрируется в базе данных во время очередного запроса от PHP, например, когда запускается SQL выражение.

Идентификатор может быть извлечен, например с помощью SELECT SYS_CONTEXT('USERENV','CLIENT_IDENTIFIER') FROM DUAL. Административное представление базы данных, такое как V$SESSION, также содержит это значение. Его можно использовать совместно с DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE для трассировки и аудита.

Значение может сохраняться между запросами страниц, которые используют одно и то же постоянное соединение.

Список параметров

connection

Идентификатор соединения Oracle, возвращаемый oci_connect(), oci_pconnect(), или oci_new_connect().

client_identifier

Задаваемая пользователем строка до 64 байт.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка идентификатора клиента для пользователя

<?php

// Найдем логин пользователя
session_start();
$un = my_validate_session($_SESSION['username']);
$c = oci_connect('myschema', 'welcome', 'localhost/XE');

// Сообщим его базе данных
oci_set_client_identifier($c, $un);

// Следующий запрос к БД заодно установит идентификатор
$s = oci_parse($c, 'select mydata from mytable');
oci_execute($s);

// ...

?>

Примечания

Предостережение

Совет по полному сканированию таблицы (roundtrip)

Некоторые, но не все OCI8-функции вызывают полное сканирование таблицы (roundtrip). Полное сканирование таблиц не происходит для тех запросов, в которых включено кэширование результатов в базе данных.

Смотрите также

  • oci_set_module_name() - Задает имя модулю
  • oci_set_action() - Задает имя для действия
  • oci_set_client_info() - Задает информацию о клиенте


Задает информацию о клиенте

  • « oci_set_client_identifier
  • oci_set_edition »
  • PHP Manual
  • OCI8 Функции
  • Задает информацию о клиенте

oci_set_client_info

(PHP 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_client_info — Задает информацию о клиенте

Описание

bool oci_set_client_info ( resource $connection , string $client_info )

Задет информацию о клиенте для трассировки 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() - Задает идентификатор клиента


Задает выпуск (edition) базы данных

  • « oci_set_client_info
  • oci_set_module_name »
  • PHP Manual
  • OCI8 Функции
  • Задает выпуск (edition) базы данных

oci_set_edition

(PHP 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_edition — Задает выпуск (edition) базы данных

Описание

bool oci_set_edition ( string $edition )

Задает "серию" объектов для использования на нижестоящих соединениях.

Подобные "выпуски" Oracle позволяют запускать приложения, использующие одинаковые схемы и имена объектов в конкурентном режиме. Это может быть полезным при модернизации работающих систем без их отключения.

Вызывайте oci_set_edition() до вызова
oci_connect(), oci_pconnect()
или oci_new_connect().

Если заданный выпуск является недопустимым в базе данных, соединение не будет устанавливаться, даже если функция oci_set_edition() успешно выполнится.

При использовании постоянных соединений, если соединение с данным значением серии уже существует, оно будет использовано повторно. В остальных случаях будет создаваться новое соединение.

Список параметров

edition

Имя "выпуска" базы данных Oracle, ранее созданное SQL командой "CREATE EDITION".

Примечания

Замечание: Требование к версии Oracle

Эта функция доступна, начиная с Oracle 11gR2.

Предостережение

Постоянные соединения

Во избежание несовместимости и случайных ошибок не используйте команду "ALTER SESSION SET EDITION" для изменения "серии" на постоянных соединениях.

Предостережение

DRCP объединение соединений в пул

Во избежание несовместимости и случайных ошибок при использовании серий и DRCP в Oracle 11.2.0.1 придерживайтесь однозначного соответствия между oci8.connection_class и именем "выпуска", которым пользуются приложения. Каждый сервер, входящий в состав пула с заданным классом соединений, должен использоваться только с одним "выпуском". Это ограничение устранено в версии Oracle 11.2.0.2.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Два скрипта могут использовать различные версии функции myfunc() одновременно

<?php

// Файл 1

echo "Версия приложения 1\n";

oci_set_edition('ORA$BASE');
$c = oci_connect('hr', 'welcome', 'localhost/XE');

$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "Результат: $r\n";

?>
<?php

// Файл 2

echo "Версия приложения 2\n";

oci_set_edition('E1');
$c = oci_connect('hr', 'welcome', 'localhost/XE');

$s = oci_parse($c, "begin :r := myfunc(); end;");
oci_bind_by_name($s, ":r", $r, 20);
oci_execute($s);
echo "Результат: $r\n";

?>


Задает имя модулю

  • « oci_set_edition
  • oci_set_prefetch »
  • PHP Manual
  • OCI8 Функции
  • Задает имя модулю

oci_set_module_name

(PHP 5.3.2, PHP 7, PECL OCI8 >= 1.4.0)

oci_set_module_name — Задает имя модулю

Описание

bool oci_set_module_name ( resource $connection , string $module_name )

Задает имя модуля для трассировки Oracle.

Имя модуля регистрируется в базе данных во время очередного запроса от PHP, например, когда запускается SQL выражение.

Имя может быть извлечено из административных представлений (view) базы данных, таких как V$SESSION. Оно может использоваться для трассировки и мониторинга также, как V$SQLAREA and DBMS_MONITOR.SERV_MOD_ACT_STAT_ENABLE.

Значение можно устанавливать и через постоянные соединения.

Список параметров

connection

Идентификатор соединения Oracle, возвращаемый oci_connect(), oci_pconnect(), или oci_new_connect().

module_name

Задаваемая пользователем строка string длиной до 48 байт.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Требование к версии Oracle

Эта функция доступна, если PHP слинкован с библиотеками Oracle Database начиная с версии 10g и выше.

Подсказка

Производительность

В старых версиях OCI8 или базы данных Oracle было возможно установить информацию о клиенте с помощью пакета DBMS_APPLICATION_INFO. Для этой цели более эффективно использование функции oci_set_client_info().

Предостережение

Совет по полному сканированию таблицы (roundtrip)

Некоторые, но не все OCI8-функции вызывают полное сканирование таблицы (roundtrip). Полное сканирование таблиц не происходит для тех запросов, в которых включено кэширование результатов в базе данных.

Примеры

Пример #1 Установка имени модуля

<?php

$c = oci_connect('hr', 'welcome', 'localhost/XE');

// Запись модуля
oci_set_module_name($c, 'Home Page');

// Код, осуществляющий запрос к БД, например выборка:
$s = oci_parse($c, 'select * from dual');
oci_execute($s);
oci_fetch_all($s, $res);

sleep(30);
?>
// Пока скрипт выполняется, администратор может увидеть, какие модули
// используются:

sqlplus system/welcome
SQL> select module from v$session;

Смотрите также

  • oci_set_action() - Задает имя для действия
  • oci_set_client_info() - Задает информацию о клиенте
  • oci_set_client_identifier() - Задает идентификатор клиента


Устанавливает количество строк, которые будут автоматически выбраны в буфер

  • « oci_set_module_name
  • oci_statement_type »
  • PHP Manual
  • OCI8 Функции
  • Устанавливает количество строк, которые будут автоматически выбраны в буфер

oci_set_prefetch

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_set_prefetch — Устанавливает количество строк, которые будут автоматически выбраны в буфер

Описание

bool oci_set_prefetch ( resource $statement , int $rows )

Устанавливает количество рядов, которые будут выбраны в буфер клиентскими библиотеками Oracle сразу после удачного вызова oci_execute() и для каждого последующего внутреннего запроса данных к базе. Производительность может быть значительно увеличена для запросов, возвращающих большое количество рядов, с помощью установки значения предварительной выборки больше значения по умолчанию oci8.default_prefetch.

Предварительная выборка - это эффективный механизм Oracle, позволяющий возвращать больше одного ряда результата из базы данных за каждый сетевой запрос. Это дает более рациональное использование сети и процессора. Буферизация рядов происходит внутри OCI8, поэтому поведение функций выборки OCI8 никак не зависит от размера предварительной выборки. Например, oci_fetch_row() всегда возвращает один ряд. Буфер предварительной выборки резервируется отдельно на каждый запрос и не используется второй раз в повторно запущенных запросах или в других соединениях.

Перед вызовом oci_execute() вызовите oci_set_prefetch().

Смысл настройки размера предварительной выборки состоит в подборе удобного значения для передачи в сети и обработки в базе данных. Для запросов, возвращающих очень большое количество рядов, общая производительность системы может быть лучше, если ряды будут возвращаться в несколько приемов (т.е. установить размер предварительной выборки меньше количества рядов). Это позволит базе данных обрабатывать запросы других пользователей в течение обработки PHP-скриптом текущего результата запроса.

Предварительная выборка запросов появилась в Oracle 8i. Предварительная выборка REF CURSOR появилась в Oracle 11gR2 и может быть применена в случае, если PHP слинкован с клиентскими библиотеками Oracle 11gR2 и старше. Предварительная выборка вложенных курсоров была добавлена в Oracle 11gR2 и требует наличия версии 11gR2 и старше как для клиентских библиотек Oracle, так и для используемой базы данных.

Предварительная выборка не поддерживается, если запросы содержат LONG или LOB столбцы. Значение предварительной выборки игнорируется и во всех ситуациях, не поддерживающих предварительную выборку, будет использована построчная выборка.

При использовании Oracle Database 12c, предварительная выборка заданная PHP может быть изменена конфигурационным файлом oraaccess.xml клиента Oracle. Обратитесь к документации Oracle за дополнительной информацией.

Список параметров

statement

Корректный идентификатор выражения OCI8, полученный из oci_parse() и исполненный функцией oci_execute(), или идентификатор выражения REF CURSOR.

rows

Количество рядов предварительной выборки, >= 0

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.2 (PECL OCI8 1.4) | До этой версии rows должен был быть >= 1.
5.3.0 (PECL OCI8 1.3.4) | До этой версии предварительная выборка была ограничена к меньшему из значений rows рядов и 1024 * rows байт. Теперь ограничение по размеру байт снято.

Примеры

Пример #1 Смена значения предварительной выборки по умолчанию для запроса

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'SELECT * FROM myverybigtable');
oci_set_prefetch($stid, 300);  // Устанавливаем перед вызовом oci_execute()
oci_execute($stid);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($stid);
oci_close($conn);

?>

Пример #2 Смена значения предварительной выборки по умолчанию для выборки REF CURSOR

<?php
/*
  Создайте хранимую процедуру PL/SQL следующим образом:

  CREATE OR REPLACE PROCEDURE myproc(p1 OUT SYS_REFCURSOR) AS
  BEGIN
    OPEN p1 FOR SELECT * FROM all_objects WHERE ROWNUM < 5000;
  END;
*/

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'BEGIN myproc(:rc); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Меняем размер предварительной выборки перед запуском курсора.
// Предварительная выборка REF CURSOR работает в случае линковки PHP
// с клиентскими библиотеками Oracle 11gR2 и старше
oci_set_prefetch($refcur, 200);
oci_execute($refcur);

echo "<table border='1'>\n";
while ($row = oci_fetch_array($refcur, OCI_ASSOC+OCI_RETURN_NULLS)) {
    echo "<tr>\n";
    foreach ($row as $item) {
        echo "    <td>".($item !== null ? htmlentities($item, ENT_QUOTES) : "")."</td>\n";
    }
    echo "</tr>\n";
}
echo "</table>\n";

oci_free_statement($refcur);
oci_free_statement($stid);
oci_close($conn);

?>

Если PHP OCI8 производит выборку из REF CURSOR, а затем передает REF CURSOR обратно в другую PL/SQL-процедуру для дальнейшей обработки, необходимо установить размер предварительной выборки REF CURSOR в 0, чтобы избежать "потери" рядов из результата. Значение предварительной выборки - это количество "лишних" рядов, полученных каждым внутренним запросом OCI8 к базе данных, поэтому установка его в 0 означает выборку только одного ряда за один раз.

Пример #3 Установка значения предварительной выборки при передаче REF CURSOR обратно в Oracle

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/orcl');

// получение REF CURSOR
$stid = oci_parse($conn, 'BEGIN myproc(:rc_out); END;');
$refcur = oci_new_cursor($conn);
oci_bind_by_name($stid, ':rc_out', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

// Отображаем два ряда, но больше не предвыбираем других рядов, иначе
// эти ряды не будут переданы обратно в  myproc_use_rc().
// Нулевое значение предварительной выборки было разрешено в версии PHP 5.3.2 и PECL OCI8 1.4
oci_set_prefetch($refcur, 0);
oci_execute($refcur);
$row = oci_fetch_array($refcur);
var_dump($row);
$row = oci_fetch_array($refcur);
var_dump($row);

// передаем REF CURSOR в myproc_use_rc() для дальнейшей обработки результата
$stid = oci_parse($conn, 'begin myproc_use_rc(:rc_in); end;');
oci_bind_by_name($stid, ':rc_in', $refcur, -1, OCI_B_CURSOR);
oci_execute($stid);

?>

Смотрите также

  • Директива oci8.default_prefetch


Возвращает тип выражения

  • « oci_set_prefetch
  • OCI-Collection »
  • PHP Manual
  • OCI8 Функции
  • Возвращает тип выражения

oci_statement_type

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

oci_statement_type — Возвращает тип выражения

Описание

string oci_statement_type ( resource $statement )

Возвращает выражение, соответствующее одному из типов параметра statement OCI8.

Список параметров

statement

Допустимый идентификатор оператора OCI8, возвращаемый oci_parse().

Возвращаемые значения

Возвращает тип параметра statement, который может быть одним из нижеследующих значений:

Тип оператора
Возвращаемое значение | Примечание
ALTER |
BEGIN |
CALL | Представлено в PHP 5.2.1 (PECL OCI8 1.2.3)
CREATE |
DECLARE |
DELETE |
DROP |
INSERT |
SELECT |
UPDATE |
UNKNOWN |

Возвращает FALSE в случае ошибки.

Примеры

Пример #1 Пример использования oci_statement_type()

<?php

$conn = oci_connect('hr', 'welcome', 'localhost/XE');

$stid = oci_parse($conn, 'DELETE FROM departments WHERE department_id = 130;');
if (oci_statement_type($stid) == "DELETE") {
    trigger_error('Вы не имеете прав для удаления записей из таблицы', E_USER_ERROR);
}
else {
    oci_execute($stid);  // удалить запись
}

oci_free_statement($stid);
oci_close($conn);

?>


The OCI-Collection class

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

Введение

OCI8 Collection functionality.

Обзор классов

OCI-Collection {
/* Методы */
bool append ( mixed $value )
bool assign ( OCI-Collection $from )
bool assignElem ( int $index , mixed $value )
bool free ( void )
mixed getElem ( int $index )
int max ( void )
int size ( void )
bool trim ( int $num )
}

Содержание

  • OCI-Collection::append — Добавляет элемент в коллекцию
  • OCI-Collection::assign — Присваивает коллекции значение другой, уже существующей коллекции
  • OCI-Collection::assignElem — Присваивает значение элементу коллекции
  • OCI-Collection::free — Освобождает ресурсы, занимаемые объектом коллекции
  • OCI-Collection::getElem — Возвращает значение элемента
  • OCI-Collection::max — Возвращает максимальное количество элементов в коллекции
  • OCI-Collection::size — Возвращает количество элементов в коллекции
  • OCI-Collection::trim — Отсекает элементы с конца коллекции


Добавляет элемент в коллекцию

  • « OCI-Collection
  • OCI-Collection::assign »
  • PHP Manual
  • OCI-Collection
  • Добавляет элемент в коллекцию

OCI-Collection::append

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::append — Добавляет элемент в коллекцию

Описание

bool OCI-Collection::append ( mixed $value )

Добавляет элемент в конец коллекции.

Список параметров

value

Значение добавляемое в конец коллекции. Может быть строкой или числом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Collection::assign


Присваивает коллекции значение другой, уже существующей коллекции

  • « OCI-Collection::append
  • OCI-Collection::assignElem »
  • PHP Manual
  • OCI-Collection
  • Присваивает коллекции значение другой, уже существующей коллекции

OCI-Collection::assign

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::assign — Присваивает коллекции значение другой, уже существующей коллекции

Описание

bool OCI-Collection::assign ( OCI-Collection $from )

Присваивает коллекции значение другой, ранее созданной коллекции. Обе коллекции должны быть созданы ранее с помощью oci_new_collection().

Список параметров

from

Экземпляр OCI-Collection.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Collection::append


Присваивает значение элементу коллекции

  • « OCI-Collection::assign
  • OCI-Collection::free »
  • PHP Manual
  • OCI-Collection
  • Присваивает значение элементу коллекции

OCI-Collection::assignElem

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::assignElem — Присваивает значение элементу коллекции

Описание

bool OCI-Collection::assignElem ( int $index , mixed $value )

Присваивает значение элементу коллекции с индексом index.

Список параметров

index

Индекс элемента. Первый индекс - ноль.

value

Может быть строкой или числом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Collection::getElem


Освобождает ресурсы, занимаемые объектом коллекции

  • « OCI-Collection::assignElem
  • OCI-Collection::getElem »
  • PHP Manual
  • OCI-Collection
  • Освобождает ресурсы, занимаемые объектом коллекции

OCI-Collection::free

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::free — Освобождает ресурсы, занимаемые объектом коллекции

Описание

bool OCI-Collection::free ( void )

Освобождает ресурсы, занимаемые объектом коллекции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • oci_new_collection


Возвращает значение элемента

  • « OCI-Collection::free
  • OCI-Collection::max »
  • PHP Manual
  • OCI-Collection
  • Возвращает значение элемента

OCI-Collection::getElem

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::getElem — Возвращает значение элемента

Описание

mixed OCI-Collection::getElem ( int $index )

Возвращает значение элемента с индексом index (начиная с нуля).

Список параметров

index

Индекс элемента. Первый индекс - ноль.

Возвращаемые значения

Djpdhfoftn FALSE, если такого элемента нет; NULL, если элемент равен NULL; строку, если элемент относится к строковому столбцу, и число, если элемент является числовым полем.

Смотрите также

  • OCI-Collection::assignElem


Возвращает максимальное количество элементов в коллекции

  • « OCI-Collection::getElem
  • OCI-Collection::size »
  • PHP Manual
  • OCI-Collection
  • Возвращает максимальное количество элементов в коллекции

OCI-Collection::max

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::max — Возвращает максимальное количество элементов в коллекции

Описание

int OCI-Collection::max ( void )

Возвращает максимальное количество элементов в коллекции.

Возвращаемые значения

Возвращает максимальное количество как целое число или FALSE в случае ошибки.

Если будет возвращен 0, то количество элементов не ограничено.

Смотрите также

  • OCI-Collection::size


Возвращает количество элементов в коллекции

  • « OCI-Collection::max
  • OCI-Collection::trim »
  • PHP Manual
  • OCI-Collection
  • Возвращает количество элементов в коллекции

OCI-Collection::size

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::size — Возвращает количество элементов в коллекции

Описание

int OCI-Collection::size ( void )

Возвращает количество элементов в коллекции.

Возвращаемые значения

Возвращает количество элементов в коллекции или FALSE в случае ошибки.

Смотрите также

  • OCI-Collection::max


Отсекает элементы с конца коллекции

  • « OCI-Collection::size
  • OCI-Lob »
  • PHP Manual
  • OCI-Collection
  • Отсекает элементы с конца коллекции

OCI-Collection::trim

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Collection::trim — Отсекает элементы с конца коллекции

Описание

bool OCI-Collection::trim ( int $num )

Отсекает num элементов с конца коллекции.

Список параметров

num

Количество элементов для отсечения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Collection::size


The OCI-Lob class

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

Введение

OCI8 LOB functionality for large binary (BLOB) and character (CLOB) objects.

Обзор классов

OCI-Lob {
/* Методы */
bool append ( OCI-Lob $lob_from )
bool close ( void )
bool eof ( void )
int erase ([ int $offset [, int $length ]] )
bool export ( string $filename [, int $start [, int $length ]] )
bool flush ([ int $flag ] )
bool free ( void )
bool getBuffering ( void )
bool import ( string $filename )
string load ( void )
string read ( int $length )
bool rewind ( void )
bool save ( string $data [, int $offset ] )
bool seek ( int $offset [, int $whence = OCI_SEEK_SET ] )
bool setBuffering ( bool $on_off )
int size ( void )
int tell ( void )
bool truncate ([ int $length = 0 ] )
int write ( string $data [, int $length ] )
bool writeTemporary ( string $data [, int $lob_type = OCI_TEMP_CLOB ] )
}

Содержание

  • OCI-Lob::append — Добавляет данные из объекта LOB в конец другого объекта
  • OCI-Lob::close — Закрывает дескриптор объекта LOB
  • OCI-Lob::eof — Проверяет, находится ли указатель LOB на конце объекта
  • OCI-Lob::erase — Очищает указанную часть объекта LOB
  • OCI-Lob::export — Сохраняет содержимое объекта LOB в файл
  • OCI-Lob::flush — Очищает и записывает буфер объекта LOB на сервер
  • OCI-Lob::free — Освобождает ресурсы, связанные с дескриптором LOB
  • OCI-Lob::getBuffering — Возвращает текущее состояние буферизации большого объекта (LOB)
  • OCI-Lob::import — Записывает содержимое файла в объект LOB
  • OCI-Lob::load — Возвращает содержимое объекта LOB
  • OCI-Lob::read — Возвращает часть объекта LOB
  • OCI-Lob::rewind — Переводит указатель объекта в начало большого объекта
  • OCI-Lob::save — Сохраняет данные в LOB
  • OCI-Lob::saveFile — Псевдоним OCI-Lob::import
  • OCI-Lob::seek — Устанавливает позицию внутреннего указателя LOB
  • OCI-Lob::setBuffering — Изменяет текущее состояние буферизации большого объекта (LOB)
  • OCI-Lob::size — Возвращает размер объекта LOB
  • OCI-Lob::tell — Возвращает текущую позицию внутреннего указателя объекта LOB
  • OCI-Lob::truncate — Обрезает большой объект
  • OCI-Lob::write — Записывает данные в объект LOB
  • OCI-Lob::writeTemporary — Записывает временный большой объект (LOB)
  • OCI-Lob::writeToFile — Псевдоним OCI-Lob::export


Добавляет данные из объекта LOB в конец другого объекта

  • « OCI-Lob
  • OCI-Lob::close »
  • PHP Manual
  • OCI-Lob
  • Добавляет данные из объекта LOB в конец другого объекта

OCI-Lob::append

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::append — Добавляет данные из объекта LOB в конец другого объекта

Описание

bool OCI-Lob::append ( OCI-Lob $lob_from )

Добавляет в конец объекта LOB данные из другого объекта LOB.

Запись в LOB с помощью этого метода вызовет ошибку, если у объекта ранее был включен режим буферизации. Поэтому вы должны выключить буферизацию перед ее применением. Перед выключением буферизации вам может понадобиться метод OCI-Lob::flush для очистки буфера.

Список параметров

lob_from

Копируемый LOB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::flush
  • OCI-Lob::setBuffering
  • OCI-Lob::getBuffering


Закрывает дескриптор объекта LOB

  • « OCI-Lob::append
  • OCI-Lob::eof »
  • PHP Manual
  • OCI-Lob
  • Закрывает дескриптор объекта LOB

OCI-Lob::close

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::close — Закрывает дескриптор объекта LOB

Описание

bool OCI-Lob::close ( void )

Закрывает дескриптор объекта LOB или FILE. Эту функцию следует использовать только вместе с OCI-Lob::writeTemporary.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::writeTemporary


Проверяет, находится ли указатель LOB на конце объекта

  • « OCI-Lob::close
  • OCI-Lob::erase »
  • PHP Manual
  • OCI-Lob
  • Проверяет, находится ли указатель LOB на конце объекта

OCI-Lob::eof

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::eof — Проверяет, находится ли указатель LOB на конце объекта

Описание

bool OCI-Lob::eof ( void )

Сообщает о достижении внутренним указателем конца объекта LOB.

Возвращаемые значения

Возвращает TRUE если внутренний указатель объекта находится на конце LOB. Иначе возвращает FALSE.

Примечания

Замечание:

Эта функция возвращает Oracle ошибку в случае, если OCI-Lob::setBuffering включена для LOB.

Смотрите также

  • OCI-Lob::size


Очищает указанную часть объекта LOB

  • « OCI-Lob::eof
  • OCI-Lob::export »
  • PHP Manual
  • OCI-Lob
  • Очищает указанную часть объекта LOB

OCI-Lob::erase

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::erase — Очищает указанную часть объекта LOB

Описание

int OCI-Lob::erase ([ int $offset [, int $length ]] )

Очищает конкретную часть объекта LOB, начиная с позиции, определенной в параметре offset. По умолчанию LOB очищается полностью.

Для объектов типа BLOB очищение означает заполнение нулевыми байтами. Объекты типа CLOB заполняются пробелами.

Список параметров

offset

length

Возвращаемые значения

Возвращает число очищенных символов/байт или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::truncate


Сохраняет содержимое объекта LOB в файл

  • « OCI-Lob::erase
  • OCI-Lob::flush »
  • PHP Manual
  • OCI-Lob
  • Сохраняет содержимое объекта LOB в файл

OCI-Lob::export

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::export — Сохраняет содержимое объекта LOB в файл

Описание

bool OCI-Lob::export ( string $filename [, int $start [, int $length ]] )

Сохраняет содержимое объекта LOB в файл.

Список параметров

filename

Путь к файлу.

start

Начальная позиция экспорта.

length

Длина экспортируемой части LOB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::import


Очищает и записывает буфер объекта LOB на сервер

  • « OCI-Lob::export
  • OCI-Lob::free »
  • PHP Manual
  • OCI-Lob
  • Очищает и записывает буфер объекта LOB на сервер

OCI-Lob::flush

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::flush — Очищает и записывает буфер объекта LOB на сервер

Описание

bool OCI-Lob::flush ([ int $flag ] )

OCI-Lob::flush() непосредственно записывает данные на сервер.

Список параметров

flag

По умолчанию ресурсы не освобождаются, но используя флаг OCI_LOB_BUFFER_FREE вы можете сделать это принудительно. Однако, вы должны быть точно уверены в том, что вы делаете, так как следующее чтение из объекта будет более ресурсоемко, чем предыдущие из-за необходимости обращения к серверу. Поэтому использовать флаг OCI_LOB_BUFFER_FREE рекомендуется только после того, как работа с объектом уже закончена.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Вернет FALSE в том случае ошибки или, если буферизация объекта не была включена.

Смотрите также

  • OCI-Lob::getBuffering
  • OCI-Lob::setBuffering


Освобождает ресурсы, связанные с дескриптором LOB

  • « OCI-Lob::flush
  • OCI-Lob::getBuffering »
  • PHP Manual
  • OCI-Lob
  • Освобождает ресурсы, связанные с дескриптором LOB

OCI-Lob::free

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::free — Освобождает ресурсы, связанные с дескриптором LOB

Описание

bool OCI-Lob::free ( void )

Освобождает ресурсы, связанные с дескриптором LOB, изначально выделенные функцией oci_new_descriptor().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает текущее состояние буферизации большого объекта (LOB)

  • « OCI-Lob::free
  • OCI-Lob::import »
  • PHP Manual
  • OCI-Lob
  • Возвращает текущее состояние буферизации большого объекта (LOB)

OCI-Lob::getBuffering

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::getBuffering — Возвращает текущее состояние буферизации большого объекта (LOB)

Описание

bool OCI-Lob::getBuffering ( void )

Сообщает, включена ли буферизация для большого объекта (LOB).

Возвращаемые значения

Возвращает FALSE, если буферизация отключена, и TRUE, если включена.

Смотрите также

  • OCI-Lob::setBuffering


Записывает содержимое файла в объект LOB

  • « OCI-Lob::getBuffering
  • OCI-Lob::load »
  • PHP Manual
  • OCI-Lob
  • Записывает содержимое файла в объект LOB

OCI-Lob::import

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::import — Записывает содержимое файла в объект LOB

Описание

bool OCI-Lob::import ( string $filename )

Записывает содержимое файла filename в текущую позицию объекта LOB.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::export
  • OCI-Lob::write


Возвращает содержимое объекта LOB

  • « OCI-Lob::import
  • OCI-Lob::read »
  • PHP Manual
  • OCI-Lob
  • Возвращает содержимое объекта LOB

OCI-Lob::load

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::load — Возвращает содержимое объекта LOB

Описание

string OCI-Lob::load ( void )

Возвращает содержимое объекта LOB. Так как выполнение скрипта прекратится при превышении memory_limit, необходимо убедиться, что LOB не превышает этого ограничения. Поэтому, в большинстве случаев этот метод рекомендуется заменять на OCI-Lob::read.

Возвращаемые значения

Возвращает содержимое объекта, или FALSE при ошибках.

Смотрите также

  • OCI-Lob::read


Возвращает часть объекта LOB

  • « OCI-Lob::load
  • OCI-Lob::rewind »
  • PHP Manual
  • OCI-Lob
  • Возвращает часть объекта LOB

OCI-Lob::read

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::read — Возвращает часть объекта LOB

Описание

string OCI-Lob::read ( int $length )

Читает и возвращает length байт данных с текущей позиции объекта LOB.

Чтение останавливается, если длина прочтенных данных равна length или если достигнут конец объекта. Внутренний указатель перемещается на столько байт, сколько было прочитано.

Список параметров

length

Длина считываемых данных, в байтах. Большие значения округляются вниз до 1 MB.

Возвращаемые значения

Возвращает содержимое в виде строки, или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::load
  • OCI-Lob::write


Переводит указатель объекта в начало большого объекта

  • « OCI-Lob::read
  • OCI-Lob::save »
  • PHP Manual
  • OCI-Lob
  • Переводит указатель объекта в начало большого объекта

OCI-Lob::rewind

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::rewind — Переводит указатель объекта в начало большого объекта

Описание

bool OCI-Lob::rewind ( void )

Устанавливает внутренний указатель в начало объекта LOB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::seek
  • OCI-Lob::tell


Сохраняет данные в LOB

  • « OCI-Lob::rewind
  • OCI-Lob::saveFile »
  • PHP Manual
  • OCI-Lob
  • Сохраняет данные в LOB

OCI-Lob::save

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::save — Сохраняет данные в LOB

Описание

bool OCI-Lob::save ( string $data [, int $offset ] )

Сохраняет данные из параметра data в объект LOB.

Список параметров

data

Данные для сохранения.

offset

Может использоваться для указания смещения от начала LOB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::write
  • OCI-Lob::import


Псевдоним OCI-Lob::import

  • « OCI-Lob::save
  • OCI-Lob::seek »
  • PHP Manual
  • OCI-Lob
  • Псевдоним OCI-Lob::import

OCI-Lob::saveFile

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::saveFile — Псевдоним OCI-Lob::import()

Описание

Эта функция является псевдонимом: OCI-Lob::import().


Устанавливает позицию внутреннего указателя LOB

  • « OCI-Lob::saveFile
  • OCI-Lob::setBuffering »
  • PHP Manual
  • OCI-Lob
  • Устанавливает позицию внутреннего указателя LOB

OCI-Lob::seek

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::seek — Устанавливает позицию внутреннего указателя LOB

Описание

bool OCI-Lob::seek ( int $offset [, int $whence = OCI_SEEK_SET ] )

Устанавливает позицию внутреннего указателя объекта LOB.

Список параметров

offset

Указывает количество байтов, на которые следует переместиться от позиции, определяемой параметром whence:

whence

May be one of:

  • OCI_SEEK_SET - установить позицию, равную offset
  • OCI_SEEK_CUR - прибавить к текущей позиции offset байт
  • OCI_SEEK_END - прибавить к концу файла offset байт (чтобы переместить указатель в начало - укажите отрицательный offset)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::rewind
  • OCI-Lob::tell
  • OCI-Lob::eof


Изменяет текущее состояние буферизации большого объекта (LOB)

  • « OCI-Lob::seek
  • OCI-Lob::size »
  • PHP Manual
  • OCI-Lob
  • Изменяет текущее состояние буферизации большого объекта (LOB)

OCI-Lob::setBuffering

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::setBuffering — Изменяет текущее состояние буферизации большого объекта (LOB)

Описание

bool OCI-Lob::setBuffering ( bool $on_off )

Устанавливает буферизацию для большого объекта исходя из значения параметра on_off.

Использование этой функции может привести к улучшению производительности путем буферизации мелких операций чтения и записи в LOB за счет уменьшения количества сетевых обращений и версий LOB. Необходимо обязательно использовать OCI-Lob::flush() после завершения всех работ с LOB.

Список параметров

on_off

TRUE для включения и FALSE для отключения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Повторные вызовы этого метода с тем же флагом будет возвращать TRUE.

Смотрите также

  • OCI-Lob::getBuffering


Возвращает размер объекта LOB

  • « OCI-Lob::setBuffering
  • OCI-Lob::tell »
  • PHP Manual
  • OCI-Lob
  • Возвращает размер объекта LOB

OCI-Lob::size

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::size — Возвращает размер объекта LOB

Описание

int OCI-Lob::size ( void )

Возвращает размер объекта LOB

Возвращаемые значения

Возвращает длину объекта LOB или FALSE в случае возникновения ошибки. Для пустых объектов длина равняется нулю.


Возвращает текущую позицию внутреннего указателя объекта LOB

  • « OCI-Lob::size
  • OCI-Lob::truncate »
  • PHP Manual
  • OCI-Lob
  • Возвращает текущую позицию внутреннего указателя объекта LOB

OCI-Lob::tell

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::tell — Возвращает текущую позицию внутреннего указателя объекта LOB

Описание

int OCI-Lob::tell ( void )

Возвращает текущую позицию внутреннего указателя объекта LOB.

Возвращаемые значения

Возвращает текущую позицию внутреннего указателя объекта LOB или FALSE в случае ошибки.

Смотрите также

  • OCI-Lob::rewind
  • OCI-Lob::size
  • OCI-Lob::eof


Обрезает большой объект

  • « OCI-Lob::tell
  • OCI-Lob::write »
  • PHP Manual
  • OCI-Lob
  • Обрезает большой объект

OCI-Lob::truncate

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::truncate — Обрезает большой объект

Описание

bool OCI-Lob::truncate ([ int $length = 0 ] )

Обрезает объект LOB.

Список параметров

length

Если указан, то LOB обрезается до указанной в length длины в байтах. Иначе LOB очищается полностью.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::erase


Записывает данные в объект LOB

  • « OCI-Lob::truncate
  • OCI-Lob::writeTemporary »
  • PHP Manual
  • OCI-Lob
  • Записывает данные в объект LOB

OCI-Lob::write

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::write — Записывает данные в объект LOB

Описание

int OCI-Lob::write ( string $data [, int $length ] )

Записывает данные из параметра data в текущую позицию внутреннего указателя объекта.

Список параметров

data

Записываемые в LOB данные.

length

Если указан этот параметр, то запись остановится после того, как length байт будет записано или закончатся данные из параметра data.

Возвращаемые значения

Возвращает количество записанных байт или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::read


Записывает временный большой объект (LOB)

  • « OCI-Lob::write
  • OCI-Lob::writeToFile »
  • PHP Manual
  • OCI-Lob
  • Записывает временный большой объект (LOB)

OCI-Lob::writeTemporary

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::writeTemporary — Записывает временный большой объект (LOB)

Описание

bool OCI-Lob::writeTemporary ( string $data [, int $lob_type = OCI_TEMP_CLOB ] )

Создает временный большой объект и записывает в него данные data.

После завершения работы с этим объектом его желательно закрыть функцией OCI-Lob::close.

Список параметров

data

Данные для записи.

lob_type

Один из следующих вариантов:

  • OCI_TEMP_BLOB для создания временных BLOBов
  • OCI_TEMP_CLOB для создания временных CLOBов

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OCI-Lob::close


Псевдоним OCI-Lob::export

  • « OCI-Lob::writeTemporary
  • Устаревшие наименования и функции OCI8 »
  • PHP Manual
  • OCI-Lob
  • Псевдоним OCI-Lob::export

OCI-Lob::writeToFile

(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)

OCI-Lob::writeToFile — Псевдоним OCI-Lob::export()

Описание

Эта функция является псевдонимом: OCI-Lob::export().


Устаревшие наименования и функции OCI8

Содержание

  • ocibindbyname — Псевдоним oci_bind_by_name
  • ocicancel — Псевдоним oci_cancel
  • ocicloselob — Псевдоним OCI-Lob::close
  • ocicollappend — Псевдоним OCI-Collection::append
  • ocicollassign — Псевдоним OCI-Collection::assign
  • ocicollassignelem — Псевдоним OCI-Collection::assignElem
  • ocicollgetelem — Псевдоним OCI-Collection::getElem
  • ocicollmax — Псевдоним OCI-Collection::max
  • ocicollsize — Псевдоним OCI-Collection::size
  • ocicolltrim — Псевдоним OCI-Collection::trim
  • ocicolumnisnull — Псевдоним oci_field_is_null
  • ocicolumnname — Псевдоним oci_field_name
  • ocicolumnprecision — Псевдоним oci_field_precision
  • ocicolumnscale — Псевдоним oci_field_scale
  • ocicolumnsize — Псевдоним oci_field_size
  • ocicolumntype — Псевдоним oci_field_type
  • ocicolumntyperaw — Псевдоним oci_field_type_raw
  • ocicommit — Псевдоним oci_commit
  • ocidefinebyname — Псевдоним oci_define_by_name
  • ocierror — Псевдоним oci_error
  • ociexecute — Псевдоним oci_execute
  • ocifetch — Псевдоним oci_fetch
  • ocifetchinto — Устаревший вариант функций oci_fetch_array, oci_fetch_object, oci_fetch_assoc и oci_fetch_row
  • ocifetchstatement — Псевдоним oci_fetch_all
  • ocifreecollection — Псевдоним OCI-Collection::free
  • ocifreecursor — Псевдоним oci_free_statement
  • ocifreedesc — Псевдоним OCI-Lob::free
  • ocifreestatement — Псевдоним oci_free_statement
  • ociinternaldebug — Псевдоним oci_internal_debug
  • ociloadlob — Псевдоним OCI-Lob::load
  • ocilogoff — Псевдоним oci_close
  • ocilogon — Псевдоним oci_connect
  • ocinewcollection — Псевдоним oci_new_collection
  • ocinewcursor — Псевдоним oci_new_cursor
  • ocinewdescriptor — Псевдоним oci_new_descriptor
  • ocinlogon — Псевдоним oci_new_connect
  • ocinumcols — Псевдоним oci_num_fields
  • ociparse — Псевдоним oci_parse
  • ociplogon — Псевдоним oci_pconnect
  • ociresult — Псевдоним oci_result
  • ocirollback — Псевдоним oci_rollback
  • ocirowcount — Псевдоним oci_num_rows
  • ocisavelob — Псевдоним OCI-Lob::save
  • ocisavelobfile — Псевдоним OCI-Lob::import
  • ociserverversion — Псевдоним oci_server_version
  • ocisetprefetch — Псевдоним oci_set_prefetch
  • ocistatementtype — Псевдоним oci_statement_type
  • ociwritelobtofile — Псевдоним OCI-Lob::export
  • ociwritetemporarylob — Псевдоним OCI-Lob::writeTemporary


Псевдоним oci_bind_by_name

  • « Устаревшие наименования и функции OCI8
  • ocicancel »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_bind_by_name

ocibindbyname

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocibindbyname — Псевдоним oci_bind_by_name()

Описание

Псевдоним oci_bind_by_name()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_cancel

  • « ocibindbyname
  • ocicloselob »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_cancel

ocicancel

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicancel — Псевдоним oci_cancel()

Описание

Псевдоним oci_cancel()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::close

  • « ocicancel
  • ocicollappend »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::close

ocicloselob

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ocicloselob — Псевдоним OCI-Lob::close()

Описание

Псевдоним OCI-Lob::close()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::append

  • « ocicloselob
  • ocicollassign »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::append

ocicollappend

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollappend — Псевдоним OCI-Collection::append()

Описание

Псевдоним OCI-Collection::append()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::assign

  • « ocicollappend
  • ocicollassignelem »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::assign

ocicollassign

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ocicollassign — Псевдоним OCI-Collection::assign()

Описание

Псевдоним OCI-Collection::assign()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::assignElem

  • « ocicollassign
  • ocicollgetelem »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::assignElem

ocicollassignelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollassignelem — Псевдоним OCI-Collection::assignElem()

Описание

Псевдоним OCI-Collection::assignElem()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::getElem

  • « ocicollassignelem
  • ocicollmax »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::getElem

ocicollgetelem

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollgetelem — Псевдоним OCI-Collection::getElem()

Описание

Псевдоним OCI-Collection::getElem()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::max

  • « ocicollgetelem
  • ocicollsize »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::max

ocicollmax

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollmax — Псевдоним OCI-Collection::max()

Описание

Псевдоним OCI-Collection::max()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::size

  • « ocicollmax
  • ocicolltrim »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::size

ocicollsize

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicollsize — Псевдоним OCI-Collection::size()

Описание

Псевдоним OCI-Collection::size()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::trim

  • « ocicollsize
  • ocicolumnisnull »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::trim

ocicolltrim

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolltrim — Псевдоним OCI-Collection::trim()

Описание

Псевдоним OCI-Collection::trim()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_is_null

  • « ocicolltrim
  • ocicolumnname »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_is_null

ocicolumnisnull

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnisnull — Псевдоним oci_field_is_null()

Описание

Псевдоним oci_field_is_null()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_name

  • « ocicolumnisnull
  • ocicolumnprecision »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_name

ocicolumnname

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnname — Псевдоним oci_field_name()

Описание

Псевдоним oci_field_name()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_precision

  • « ocicolumnname
  • ocicolumnscale »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_precision

ocicolumnprecision

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnprecision — Псевдоним oci_field_precision()

Описание

Псевдоним oci_field_precision()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_scale

  • « ocicolumnprecision
  • ocicolumnsize »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_scale

ocicolumnscale

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnscale — Псевдоним oci_field_scale()

Описание

Псевдоним oci_field_scale()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_size

  • « ocicolumnscale
  • ocicolumntype »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_size

ocicolumnsize

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumnsize — Псевдоним oci_field_size()

Описание

Псевдоним oci_field_size()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_type

  • « ocicolumnsize
  • ocicolumntyperaw »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_type

ocicolumntype

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumntype — Псевдоним oci_field_type()

Описание

Псевдоним oci_field_type()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_field_type_raw

  • « ocicolumntype
  • ocicommit »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_field_type_raw

ocicolumntyperaw

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicolumntyperaw — Псевдоним oci_field_type_raw()

Описание

Псевдоним oci_field_type_raw()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_commit

  • « ocicolumntyperaw
  • ocidefinebyname »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_commit

ocicommit

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocicommit — Псевдоним oci_commit()

Описание

Псевдоним oci_commit()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_define_by_name

  • « ocicommit
  • ocierror »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_define_by_name

ocidefinebyname

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocidefinebyname — Псевдоним oci_define_by_name()

Описание

Псевдоним oci_define_by_name()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_error

  • « ocidefinebyname
  • ociexecute »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_error

ocierror

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocierror — Псевдоним oci_error()

Описание

Псевдоним oci_error()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_execute

  • « ocierror
  • ocifetch »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_execute

ociexecute

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociexecute — Псевдоним oci_execute()

Описание

Псевдоним oci_execute()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_fetch

  • « ociexecute
  • ocifetchinto »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_fetch

ocifetch

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifetch — Псевдоним oci_fetch()

Описание

Псевдоним oci_fetch()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Устаревший вариант функций oci_fetch_array, oci_fetch_object, oci_fetch_assoc и oci_fetch_row

  • « ocifetch
  • ocifetchstatement »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Устаревший вариант функций oci_fetch_array, oci_fetch_object, oci_fetch_assoc и oci_fetch_row

ocifetchinto

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifetchinto — Устаревший вариант функций oci_fetch_array(), oci_fetch_object(), oci_fetch_assoc() и oci_fetch_row()

Описание

Устаревший вариант функций oci_fetch_array(), oci_fetch_object(),
  oci_fetch_assoc() и
  oci_fetch_row()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_fetch_all

  • « ocifetchinto
  • ocifreecollection »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_fetch_all

ocifetchstatement

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifetchstatement — Псевдоним oci_fetch_all()

Описание

Псевдоним oci_fetch_all()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Collection::free

  • « ocifetchstatement
  • ocifreecursor »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Collection::free

ocifreecollection

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreecollection — Псевдоним OCI-Collection::free()

Описание

Псевдоним OCI-Collection::free()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_free_statement

  • « ocifreecollection
  • ocifreedesc »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_free_statement

ocifreecursor

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreecursor — Псевдоним oci_free_statement()

Описание

Псевдоним oci_free_statement()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::free

  • « ocifreecursor
  • ocifreestatement »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::free

ocifreedesc

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreedesc — Псевдоним OCI-Lob::free()

Описание

Псевдоним OCI-Lob::free()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_free_statement

  • « ocifreedesc
  • ociinternaldebug »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_free_statement

ocifreestatement

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocifreestatement — Псевдоним oci_free_statement()

Описание

Псевдоним oci_free_statement()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_internal_debug

  • « ocifreestatement
  • ociloadlob »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_internal_debug

ociinternaldebug

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociinternaldebug — Псевдоним oci_internal_debug()

Описание

Псевдоним oci_internal_debug()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::load

  • « ociinternaldebug
  • ocilogoff »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::load

ociloadlob

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociloadlob — Псевдоним OCI-Lob::load()

Описание

Псевдоним OCI-Lob::load()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_close

  • « ociloadlob
  • ocilogon »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_close

ocilogoff

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocilogoff — Псевдоним oci_close()

Описание

Псевдоним oci_close()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_connect

  • « ocilogoff
  • ocinewcollection »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_connect

ocilogon

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocilogon — Псевдоним oci_connect()

Описание

Псевдоним oci_connect()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_new_collection

  • « ocilogon
  • ocinewcursor »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_new_collection

ocinewcollection

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinewcollection — Псевдоним oci_new_collection()

Описание

Псевдоним oci_new_collection()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_new_cursor

  • « ocinewcollection
  • ocinewdescriptor »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_new_cursor

ocinewcursor

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinewcursor — Псевдоним oci_new_cursor()

Описание

Псевдоним oci_new_cursor()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_new_descriptor

  • « ocinewcursor
  • ocinlogon »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_new_descriptor

ocinewdescriptor

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinewdescriptor — Псевдоним oci_new_descriptor()

Описание

Псевдоним oci_new_descriptor()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_new_connect

  • « ocinewdescriptor
  • ocinumcols »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_new_connect

ocinlogon

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinlogon — Псевдоним oci_new_connect()

Описание

Псевдоним oci_new_connect()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_num_fields

  • « ocinlogon
  • ociparse »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_num_fields

ocinumcols

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocinumcols — Псевдоним oci_num_fields()

Описание

Псевдоним oci_num_fields()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_parse

  • « ocinumcols
  • ociplogon »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_parse

ociparse

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociparse — Псевдоним oci_parse()

Описание

Псевдоним oci_parse()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_pconnect

  • « ociparse
  • ociresult »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_pconnect

ociplogon

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociplogon — Псевдоним oci_pconnect()

Описание

Псевдоним oci_pconnect()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_result

  • « ociplogon
  • ocirollback »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_result

ociresult

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociresult — Псевдоним oci_result()

Описание

Псевдоним oci_result()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_rollback

  • « ociresult
  • ocirowcount »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_rollback

ocirollback

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocirollback — Псевдоним oci_rollback()

Описание

Псевдоним oci_rollback()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_num_rows

  • « ocirollback
  • ocisavelob »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_num_rows

ocirowcount

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocirowcount — Псевдоним oci_num_rows()

Описание

Псевдоним oci_num_rows()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::save

  • « ocirowcount
  • ocisavelobfile »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::save

ocisavelob

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocisavelob — Псевдоним OCI-Lob::save()

Описание

Псевдоним OCI-Lob::save()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::import

  • « ocisavelob
  • ociserverversion »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::import

ocisavelobfile

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocisavelobfile — Псевдоним OCI-Lob::import()

Описание

Псевдоним OCI-Lob::import()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_server_version

  • « ocisavelobfile
  • ocisetprefetch »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_server_version

ociserverversion

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociserverversion — Псевдоним oci_server_version()

Описание

Псевдоним oci_server_version()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_set_prefetch

  • « ociserverversion
  • ocistatementtype »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_set_prefetch

ocisetprefetch

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocisetprefetch — Псевдоним oci_set_prefetch()

Описание

Псевдоним oci_set_prefetch()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним oci_statement_type

  • « ocisetprefetch
  • ociwritelobtofile »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним oci_statement_type

ocistatementtype

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ocistatementtype — Псевдоним oci_statement_type()

Описание

Псевдоним oci_statement_type()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::export

  • « ocistatementtype
  • ociwritetemporarylob »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::export

ociwritelobtofile

(PHP 4, PHP 5, PHP 7, PECL OCI8 >= 1.0.0)

ociwritelobtofile — Псевдоним OCI-Lob::export()

Описание

Псевдоним OCI-Lob::export()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Псевдоним OCI-Lob::writeTemporary

  • « ociwritelobtofile
  • Paradox »
  • PHP Manual
  • Устаревшие наименования и функции OCI8
  • Псевдоним OCI-Lob::writeTemporary

ociwritetemporarylob

(PHP 4 >= 4.0.6, PECL OCI8 1.0)

ociwritetemporarylob — Псевдоним OCI-Lob::writeTemporary()

Описание

Псевдоним OCI-Lob::writeTemporary()

Внимание

Этот псевдоним функции УСТАРЕЛ начиная с версии PHP 5.4.0. Использование этого псевдонима крайне не рекомендуется.


Paradox File Access

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Paradox Функции
    • px_close — Closes a paradox database
    • px_create_fp — Create a new paradox database
    • px_date2string — Converts a date into a string.
    • px_delete_record — Deletes record from paradox database
    • px_delete — Deletes resource of paradox database
    • px_get_field — Returns the specification of a single field
    • px_get_info — Return lots of information about a paradox file
    • px_get_parameter — Gets a parameter
    • px_get_record — Returns record of paradox database
    • px_get_schema — Returns the database schema
    • px_get_value — Gets a value
    • px_insert_record — Inserts record into paradox database
    • px_new — Create a new paradox object
    • px_numfields — Returns number of fields in a database
    • px_numrecords — Returns number of records in a database
    • px_open_fp — Open paradox database
    • px_put_record — Stores record into paradox database
    • px_retrieve_record — Returns record of paradox database
    • px_set_blob_file — Sets the file where blobs are read from
    • px_set_parameter — Sets a parameter
    • px_set_tablename — Sets the name of a table (deprecated)
    • px_set_targetencoding — Sets the encoding for character fields (deprecated)
    • px_set_value — Sets a value
    • px_timestamp2string — Converts the timestamp into a string.
    • px_update_record — Updates record in paradox database


Введение

This module allows to read and write Paradox databases, primary index files and blob files. Write support has been proven to be quite reliable, though due to lack of documentation the produced files may not in any case be readable by other applications. Encrypted databases can be read without specifying a password if pxlib >= 0.5.0 is used.

Замечание:

This module is also in development and may change, though major changes to the API are not expected.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Требования

You need at least PHP 5.0.0 and pxlib >= 0.4.4 for the basic set of functions. Some newer functions are only available with pxlib >= 0.6.0. Reading and writing of encrypted databases requires at least pxlib >= 0.5.0. The paradox library (pxlib) is available at » http://pxlib.sourceforge.net.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/paradox

Make sure you have pxlib installed before. If you install pxlib from an rpm or debian package, do not forget to install the development package as well.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

px_new() creates a new Paradox object required by all Paradox functions.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

The following two tables lists all constants defined by the paradox extension.

Contants for field types
Name | Meaning
PX_FIELD_ALPHA | Character data with fixed length
PX_FIELD_DATE | Date, number of days since 1.1.0000
PX_FIELD_SHORT | Short integer (2 Bytes)
PX_FIELD_LONG | Long integer (4 Bytes)
PX_FIELD_CURRENCY | same as PX_FIELD_NUMBER
PX_FIELD_NUMBER | Double
PX_FIELD_LOGICAL | Boolean
PX_FIELD_MEMOBLOB | Binary large object
PX_FIELD_BLOB | Binary large object (not supported)
PX_FIELD_FMTMEMOBLOB | Binary large object
PX_FIELD_OLE | OLE object (basically a blob, not supported)
PX_FIELD_GRAPHIC | Graphic (basically a blob, not supported)
PX_FIELD_TIME | time, number of milli seconds since midnight
PX_FIELD_TIMESTAMP | timestamp, number of milli seconds since 1.1.0000
PX_FIELD_AUTOINC | Auto incrementing interger (like PX_FIELD_LONG)
PX_FIELD_BCD | Decimal number stored in bcd format (not supported)
PX_FIELD_BYTES | Array of Bytes with not more than 255 bytes (not supported)
PX_KEYTOLOWER | Turn all field names into lower case
PX_KEYTOUPPER | Turn all field names into upper case
Contants for file types
Name | Meaning
PX_FILE_INDEX_DB | Indexed database
PX_FILE_PRIM_INDEX | Primary index
PX_FILE_NON_INDEX_DB | None indexed database
PX_FILE_NON_INC_SEC_INDEX | None incremental secondary index
PX_FILE_SEC_INDEX | Secondary index
PX_FILE_INC_SEC_INDEX | Incremental secondary index
PX_FILE_NON_INC_SEC_INDEX_G | Non incremental secondary index
PX_FILE_SEC_INDEX_G | Secondary index
PX_FILE_INC_SEC_INDEX_G | Non incremental secondary index


Paradox Функции

Object oriented API

The paradox extension provides also an object oriented API. It consists of only one class called paradox_db. Its methods only differ from the functions in its name and of course the missing first parameter. The following table will list all methods and its equivalent functions.

Methods of class paradox_db
Name of method | Equivalent function
Constructor | px_new()
Destructor | px_delete()
open_fp() | px_open_fp()
create_fp() | px_create_fp()
close() | px_close()
numrecords() | px_numrecords()
numfields() | px_numfields()
get_record() | px_get_record()
put_record() | px_put_record()
retrieve_record() | px_retrieve_record()
delete_record() | px_delete_record()
insert_record() | px_insert_record()
update_record() | px_update_record()
get_field() | px_get_field()
get_schema() | px_get_schema()
get_info() | px_get_info()
set_parameter() | px_set_parameter()
get_parameter() | px_get_parameter()
set_value() | px_set_value()
get_value() | px_get_value()
get_info() | px_get_info()
set_targetencoding() | px_set_targetencoding()
set_tablename() | px_set_tablename()
set_blob_file() | px_set_blob_file()
date2string() | px_date2string()
timestamp2string() | px_timestamp2string()

Содержание

  • px_close — Closes a paradox database
  • px_create_fp — Create a new paradox database
  • px_date2string — Converts a date into a string.
  • px_delete_record — Deletes record from paradox database
  • px_delete — Deletes resource of paradox database
  • px_get_field — Returns the specification of a single field
  • px_get_info — Return lots of information about a paradox file
  • px_get_parameter — Gets a parameter
  • px_get_record — Returns record of paradox database
  • px_get_schema — Returns the database schema
  • px_get_value — Gets a value
  • px_insert_record — Inserts record into paradox database
  • px_new — Create a new paradox object
  • px_numfields — Returns number of fields in a database
  • px_numrecords — Returns number of records in a database
  • px_open_fp — Open paradox database
  • px_put_record — Stores record into paradox database
  • px_retrieve_record — Returns record of paradox database
  • px_set_blob_file — Sets the file where blobs are read from
  • px_set_parameter — Sets a parameter
  • px_set_tablename — Sets the name of a table (deprecated)
  • px_set_targetencoding — Sets the encoding for character fields (deprecated)
  • px_set_value — Sets a value
  • px_timestamp2string — Converts the timestamp into a string.
  • px_update_record — Updates record in paradox database


Closes a paradox database

  • « Paradox Функции
  • px_create_fp »
  • PHP Manual
  • Paradox Функции
  • Closes a paradox database

px_close

(PECL paradox >= 1.0.0)

px_close — Closes a paradox database

Описание

bool px_close ( resource $pxdoc )

Closes the paradox database. This function will not close the file. You will have to call fclose() afterwards.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • px_open_fp() - Open paradox database
  • The example at px_new() - Create a new paradox object


Create a new paradox database

  • « px_close
  • px_date2string »
  • PHP Manual
  • Paradox Функции
  • Create a new paradox database

px_create_fp

(PECL paradox >= 1.0.0)

px_create_fp — Create a new paradox database

Описание

bool px_create_fp ( resource $pxdoc , resource $file , array $fielddesc )

Create a new paradox database file. The actual file has to be opened before with fopen(). Make sure the file is writable.

Замечание:

Calling this functions issues a warning about an empty tablename which can be safely ignored. Just set the tablename afterwards with px_set_parameter().

Замечание:

This function is highly experimental, due to insufficient documentation of the paradox file format. Database files created with this function can be opened by px_open_fp() and has been successfully opened by the Paradox software, but your milage may vary.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

file

File handle as returned by fopen().

fielddesc

fielddesc is an array containing one element for each field specification. A field specification is an array itself with either two or three elements.The first element is always a string value used as the name of the field. It may not be larger than ten characters. The second element contains the field type which is one of the constants listed in the table Constants for field types. In the case of a character field or bcd field, you will have to provide a third element specifying the length respectively the precesion of the field. If your field specification contains blob fields, you will have to make sure to either make the field large enough for all field values to fit or specify a blob file with px_set_blob_file() for storing the blobs. If this is not done the field data is truncated.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Creating a Paradox database with two fields

<?php
if(!$pxdoc = px_new()) {
  /* Error handling */
}
$fp = fopen("test.db", "w+");
$fields = array(array("col1", "S"), array("col2", "I"));
if(!px_create_fp($pxdoc, $fp, $fields)) {
  /* Error handling */
}
px_set_parameter($pxdoc, "tablename", "testtable");
for($i=-50; $i<50; $i++) {
  $rec = array($i, -$i);
  px_put_record($pxdoc, $rec);
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

Смотрите также

  • px_new() - Create a new paradox object
  • px_put_record() - Stores record into paradox database
  • fopen() - Открывает файл или URL


Converts a date into a string.

  • « px_create_fp
  • px_delete_record »
  • PHP Manual
  • Paradox Функции
  • Converts a date into a string.

px_date2string

(PECL paradox >= 1.4.0)

px_date2string — Converts a date into a string.

Описание

string px_date2string ( resource $pxdoc , int $value , string $format )

Turns a date as it stored in the paradox file into human readable format. Paradox dates are the number of days since 1.1.0000. This function is just for convenience. It can be easily replaced by some math and the calendar functions as demonstrated in the example below.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

value

Value as stored in paradox database field of type PX_FIELD_DATE.

format

String format similar to the format used by date(). The placeholders support by this function is a subset of those supported by date() (Y, y, m, n, d, j, L).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Turn a paradox date into a human readable form

<?php
$px = px_new();

/* make up a date as it could be stored in */
/* a date field of a paradox db. */
/* 700000 days since 1.1.0000. */
$days = 700000;

/* Use the calendar functions to print a */
/* human readable format of the date */
echo jdtogregorian($days+1721425)."\n";
/* px_date2string() outputs the same */
echo px_date2string($px, $days, "n/d/Y")."\n";

px_delete($px);
?>

Результат выполнения данного примера:

7/15/1917
7/15/1917

Смотрите также

  • px_timestamp2string() - Converts the timestamp into a string.
  • jdtogregorian() - Переводит число дней в Юлианском летоисчислении в дату по Григорианскому календарю


Deletes record from paradox database

  • « px_date2string
  • px_delete »
  • PHP Manual
  • Paradox Функции
  • Deletes record from paradox database

px_delete_record

(PECL paradox >= 1.4.0)

px_delete_record — Deletes record from paradox database

Описание

bool px_delete_record ( resource $pxdoc , int $num )

This function deletes a record from the database. It does not free the space in the database file but just marks it as deleted. Inserting a new record afterwards will reuse the space.

Замечание:

This function is only available if pxlib >= 0.6.0 is used.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Deletes resource of paradox database

  • « px_delete_record
  • px_get_field »
  • PHP Manual
  • Paradox Функции
  • Deletes resource of paradox database

px_delete

(PECL paradox >= 1.0.0)

px_delete — Deletes resource of paradox database

Описание

bool px_delete ( resource $pxdoc )

Deletes the resource of the paradox file and frees all memory.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Returns the specification of a single field

  • « px_delete
  • px_get_info »
  • PHP Manual
  • Paradox Функции
  • Returns the specification of a single field

px_get_field

(PECL paradox >= 1.0.0)

px_get_field — Returns the specification of a single field

Описание

array px_get_field ( resource $pxdoc , int $fieldno )

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

fieldno

Number of the field. The first field has number 0. Specifying a field number less than 0 and greater or equal the number of fields will trigger an error.

Возвращаемые значения

Returns the specification of the fieldno 'th database field as an associated array. The array contains three fields named name, type, and size.


Return lots of information about a paradox file

  • « px_get_field
  • px_get_parameter »
  • PHP Manual
  • Paradox Функции
  • Return lots of information about a paradox file

px_get_info

(PECL paradox >= 1.0.0)

px_get_info — Return lots of information about a paradox file

Описание

array px_get_info ( resource $pxdoc )

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

Возвращаемые значения

Returns an associated array with lots of information about a paradox file. This array is likely to be extended in the future.

fileversion

Version of file multiplied by 10, e.g. 70.

tablename

Name of table as stored in the file. If the database was created by pxlib, then this will be the name of the file without the extension.

numrecords

Number of records in this table.

numfields

Number of fields in this table.

headersize

Number of bytes used for the header. This is usually 0x800.

recordsize

Number of bytes used for each record. This is the sum of all field sizes (available since version 1.4.2).

maxtablesize

This value multiplied by 0x400 is the size of a data block in bytes. The maximum number of records in a datablock is the integer part of (maxtablesize * 0x400 - 8) / recordsize.

numdatablocks

The number of data blocks in the file. Each data block contains a certain number of records which depends on the record size and the data block size (maxtablesize). Data blocks may not necessarily be completely filled.

numindexfields

Number of fields used for the primary index. The fields do always start with field number 1.

codepage

The DOS codepage which was used for encoding fields with character data. If the target encoding is not set with px_set_targetencoding() this will be the encoding for character fields when records are being accessed with px_get_record() or px_retrieve_record().

Смотрите также

  • px_numfields() - Returns number of fields in a database
  • px_numrecords() - Returns number of records in a database


Gets a parameter

  • « px_get_info
  • px_get_record »
  • PHP Manual
  • Paradox Функции
  • Gets a parameter

px_get_parameter

(PECL paradox >= 1.1.0)

px_get_parameter — Gets a parameter

Описание

string px_get_parameter ( resource $pxdoc , string $name )

Gets various parameters.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

The name can be one of the following:

tablename

The name of the table as it will be stored in the database header.

targetencoding

The encoding for the output. Data which is being read from character fields with px_get_record() or px_retrieve_record() is recoded into the targetencoding. If it is not set, then the data will be delivered as stored in the database file.

inputencoding

The encoding of the input data which is to be stored into the database. When storing data of character fields in the database, the data is expected to be delivered in this encoding.

Возвращаемые значения

Returns the value of the parameter или FALSE в случае возникновения ошибки.


Returns record of paradox database

  • « px_get_parameter
  • px_get_schema »
  • PHP Manual
  • Paradox Функции
  • Returns record of paradox database

px_get_record

(PECL paradox >= 1.0.0)

px_get_record — Returns record of paradox database

Описание

array px_get_record ( resource $pxdoc , int $num [, int $mode = 0 ] )

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

mode

The optional mode can be PX_KEYTOLOWER or PX_KEYTOUPPER in order to convert the keys of the returned array into lower or upper case. If mode is not passed or is 0, then the key will be exactly like the field name. The element values will contain the field values. NULL values will be retained and are different from 0.0, 0 or the empty string. Fields of type PX_FIELD_TIME will be returned as an integer counting the number of milliseconds starting at midnight. A timestamp (PX_FIELD_TIMESTAMP) and date (PX_FIELD_DATE) are floating point respectively int values counting milliseconds respectively days starting at the beginning of julian calendar. Use the functions px-timestamp2string() and px-date2string() to convert them into a character representation.

Возвращаемые значения

Returns the num'th record from the paradox database. The record is returned as an associated array with its keys being the field names.

Смотрите также

  • px_retrieve_record() - Returns record of paradox database


Returns the database schema

  • « px_get_record
  • px_get_value »
  • PHP Manual
  • Paradox Функции
  • Returns the database schema

px_get_schema

(PECL paradox >= 1.0.0)

px_get_schema — Returns the database schema

Описание

array px_get_schema ( resource $pxdoc [, int $mode = 0 ] )

px_get_schema() returns the database schema.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

mode

If the optional mode is PX_KEYTOLOWER or PX_KEYTOUPPER the keys of the returned array will be converted to lower or upper case. If mode is 0 or not passed at all, then the key name will be identical to the field name.

Возвращаемые значения

Returns the schema of a database file as an associated array. The key name is equal to the field name. Each array element is itself an associated array containing the two fields type and size. type is one of the constants in table Constants for field types. size is the number of bytes this field consumes in the record. The total of all field sizes is equal to the record size as it can be retrieved with px-get-info().


Gets a value

  • « px_get_schema
  • px_insert_record »
  • PHP Manual
  • Paradox Функции
  • Gets a value

px_get_value

(PECL paradox >= 1.1.0)

px_get_value — Gets a value

Описание

float px_get_value ( resource $pxdoc , string $name )

Gets various values.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

name can be one of the following.

numprimkeys

The number of primary keys. Paradox databases always use the first numprimkeys fields for the primary index.

Возвращаемые значения

Returns the value of the parameter или FALSE в случае возникновения ошибки.


Inserts record into paradox database

  • « px_get_value
  • px_new »
  • PHP Manual
  • Paradox Функции
  • Inserts record into paradox database

px_insert_record

(PECL paradox >= 1.4.0)

px_insert_record — Inserts record into paradox database

Описание

int px_insert_record ( resource $pxdoc , array $data )

Inserts a new record into the database. The record is not necessarily inserted at the end of the database, but may be inserted at any position depending on where the first free slot is found.

The record data is passed as an array of field values. The elements in the array must correspond to the fields in the database. If the array has less elements than fields in the database, the remaining fields will be set to null.

Most field values can be passed as its equivalent php type e.g. a long value is used for fields of type PX_FIELD_LONG, PX_FIELD_SHORT and PX_FIELD_AUTOINC, a double values is used for fields of type PX_FIELD_CURRENCY and PX_FIELD_NUMBER. Field values for blob and alpha fields are passed as strings.

Fields of type PX_FIELD_TIME and PX_FIELD_DATE both require a long value. In the first case this is the number of milliseconds since midnight. In the second case this is the number of days since 1.1.0000. Below there are two examples to convert the current date or timestamp into a value suitable for one of paradox's date/time fields.

Замечание:

This function is only available if pxlib >= 0.6.0 is used.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

data

Associated or indexed array containing the field values as e.g. returned by px_retrieve_record().

Возвращаемые значения

Returns FALSE on failure or the record number in case of success.

Примеры

Пример #1 Set the date/time fields in a paradox database to the current date/time

<?php
$px = px_new();
$fp = fopen("test.db", "w+");
px_create_fp($px, $fp, array(array("timestamp", "@"), array("time", "T"), array("date", "D")));

$curdate = getdate();
$jd = gregoriantojd($curdate["mon"], $curdate["mday"], $curdate["year"]);
$days = $jd - 1721425; /* Number of days between 1.1.4714 b.c. and 1.1.0000 */
$secs = $curdate["hours"]*3600 + $curdate["minutes"]*60 + $curdate["seconds"];
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));

$curtimestamp = microtime(true);
$days = (int) ($curtimestamp/86400);
$secs = $curtimestamp - ($days * 86400.0);
$days += 2440588; /* Number of days between 1.1.4714 b.c. and 1.1.1970 */
$days -= 1721425; /* Number of days between 1.1.4714 b.c. and 1.1.0000 */
px_insert_record($px, array($days*86400000.0 + $secs*1000.0, $secs*1000.0, $days));
for($i=0; $i<2; $i++) {
    $rec = px_retrieve_record($px, $i);
    echo px_timestamp2string($px, $rec["timestamp"], "n/d/Y H:i:s")."\n";
    echo px_date2string($px, $rec["date"], "n/d/Y")."\n";
}
px_close($px);
px_delete($px);
?>

Результат выполнения данного примера:

2/21/2006 21:42:30
2/21/2006
2/21/2006 20:42:30
2/21/2006

The Julian day count as passed to jdtogregorian() has a different base of 1.1.4714 b.c. and must therefore be calculated by adding 1721425 to the day count used in the paradox file. Turning the day count into a timestamp is easily done by multiplying with 86400000.0 to obtain milli seconds.

Смотрите также

px_update_record() - Updates record in paradox database


Create a new paradox object

  • « px_insert_record
  • px_numfields »
  • PHP Manual
  • Paradox Функции
  • Create a new paradox object

px_new

(PECL paradox >= 1.0.0)

px_new — Create a new paradox object

Описание

resource px_new ( void )

Create a new paradox object. You will have to call this function before any further functions. px_new() does not create any file on the disk, it just creates an instance of a paradox object. This function must not be called if the object oriented interface is used. Use new paradox_db() instead.

Возвращаемые значения

Returns FALSE on failure.

Примеры

Пример #1 Opening a Paradox database

<?php
if(!$pxdoc = px_new()) {
  /* Error handling */
}
$fp = fopen("test.db", "r");
if(!px_open_fp($pxdoc, $fp)) {
  /* Error handling */
}
// ...
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>

If you prefer the object oriented API, then the above example will look like the following.

Пример #2 Opening a Paradox database

<?php
$fp = fopen("test.db", "r");
$pxdoc = new paradox_db();
if(!$pxdoc->open_fp($fp)) {
  /* Error handling */
}
// ...
$pxdoc->close();
fclose($fp);
?>

Смотрите также

  • px_delete() - Deletes resource of paradox database
  • px_open_fp() - Open paradox database


Returns number of fields in a database

  • « px_new
  • px_numrecords »
  • PHP Manual
  • Paradox Функции
  • Returns number of fields in a database

px_numfields

(PECL paradox >= 1.0.0)

px_numfields — Returns number of fields in a database

Описание

int px_numfields ( resource $pxdoc )

Get the number of fields in a database file.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

Возвращаемые значения

Returns the number of fields in a database file. The return value of this function is identical to the element numfields in the array returned by px_get_info().


Returns number of records in a database

  • « px_numfields
  • px_open_fp »
  • PHP Manual
  • Paradox Функции
  • Returns number of records in a database

px_numrecords

(PECL paradox >= 1.0.0)

px_numrecords — Returns number of records in a database

Описание

int px_numrecords ( resource $pxdoc )

Get the number of records in a database file.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

Возвращаемые значения

Returns the number of records in a database file. The return value of this function is identical to the element numrecords in the array returned by px_get_info().


Open paradox database

  • « px_numrecords
  • px_put_record »
  • PHP Manual
  • Paradox Функции
  • Open paradox database

px_open_fp

(PECL paradox >= 1.0.0)

px_open_fp — Open paradox database

Описание

bool px_open_fp ( resource $pxdoc , resource $file )

Open an existing paradox database file. The actual file has to be opened before with fopen(). This function can also be used to open primary index files and tread them like a paradox database. This is supported for those who would like to investigate a primary index. It cannot be used to accelerate access to a database file.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

file

file is the return value from fopen() with the actual database file as parameter. Make sure the database is writable if you plan to update or insert records.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fopen() - Открывает файл или URL
  • The example at px_new() - Create a new paradox object


Stores record into paradox database

  • « px_open_fp
  • px_retrieve_record »
  • PHP Manual
  • Paradox Функции
  • Stores record into paradox database

px_put_record

(PECL paradox >= 1.0.0)

px_put_record — Stores record into paradox database

Описание

bool px_put_record ( resource $pxdoc , array $record [, int $recpos = -1 ] )

Stores a record into a paradox database. The record is always added at the end of the database, regardless of any free slots. Use px_insert_record() to add a new record into the first free slot found in the database.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

record

Associated or indexed array containing the field values as e.g. returned by px_retrieve_record().

recpos

This optional parameter may be used to specify a record number greater than the current number of records in the database. The function will add as many empty records as needed. There is hardly any need for this parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Returns record of paradox database

  • « px_put_record
  • px_set_blob_file »
  • PHP Manual
  • Paradox Функции
  • Returns record of paradox database

px_retrieve_record

(PECL paradox >= 1.4.0)

px_retrieve_record — Returns record of paradox database

Описание

array px_retrieve_record ( resource $pxdoc , int $num [, int $mode = 0 ] )

This function is very similar to px_get_record() but uses internally a different approach to retrieve the data. It relies on pxlib for reading each single field value, which usually results in support for more field types.

Замечание:

This function is only available if pxlib >= 0.6.0 is used.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

mode

The optional mode can be PX_KEYTOLOWER or PX_KEYTOUPPER in order to convert the keys into lower or upper case. If mode is not passed or is 0, then the key will be exactly like the field name. The element values will contain the field values. NULL values will be retained and are different from 0.0, 0 or the empty string. Fields of type PX_FIELD_TIME will be returned as an integer counting the number of milliseconds starting at midnight. A timestamp is a floating point value also counting milliseconds starting at the beginning of julian calendar.

Возвращаемые значения

Returns the num'th record from the paradox database. The record is returned as an associated array with its keys being the field names.

Смотрите также

  • px_get_record() - Returns record of paradox database


Sets the file where blobs are read from

  • « px_retrieve_record
  • px_set_parameter »
  • PHP Manual
  • Paradox Функции
  • Sets the file where blobs are read from

px_set_blob_file

(PECL paradox >= 1.3.0)

px_set_blob_file — Sets the file where blobs are read from

Описание

bool px_set_blob_file ( resource $pxdoc , string $filename )

Sets the name of the file where blobs are going to be read from or written into. Without calling this function, px_get_record() or px_retrieve_record() will only return data in blob fields if the data is part of the record and not stored in the blob file. Blob data is stored in the record if it is small enough to fit in the size of the blob field.

Calling px_put_record(),
px_insert_record(), or
px_update_record() without calling
px_set_blob_file() will result in truncated blob fields
unless the data fits into the database file.

Calling this function twice will close the first blob file and open the new one.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

filename

The name of the file. Its extension should be .MB.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets a parameter

  • « px_set_blob_file
  • px_set_tablename »
  • PHP Manual
  • Paradox Функции
  • Sets a parameter

px_set_parameter

(PECL paradox >= 1.1.0)

px_set_parameter — Sets a parameter

Описание

bool px_set_parameter ( resource $pxdoc , string $name , string $value )

Sets various parameters.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

Depending on the parameter you want to set, name can be one of the following.

tablename

The name of the table as it will be stored in the database header.

targetencoding

The encoding for the output. Data which is being read from character fields is recoded into the targetencoding.

inputencoding

The encoding of the input data which is to be stored into the database.

value

The value of parameter to set. For inputencoding and targetencoding this must be the name of the encoding as understood by iconv or recode, e.g. iso-8859-1, utf-8, cp850.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • px_get_info() - Return lots of information about a paradox file to determine the DOS code page.


Sets the name of a table (deprecated)

  • « px_set_parameter
  • px_set_targetencoding »
  • PHP Manual
  • Paradox Функции
  • Sets the name of a table (deprecated)

px_set_tablename

(PECL paradox >= 1.0.0)

px_set_tablename — Sets the name of a table (deprecated)

Описание

void px_set_tablename ( resource $pxdoc , string $name )

Sets the table name of a paradox database, which was created with px_create_fp(). This function is deprecated use px_set_parameter() instead.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

tablename

The name of the table. If it is not set explicitly it will be set to the name of the database file.

Возвращаемые значения

Returns NULL on success или FALSE в случае возникновения ошибки.

Смотрите также

px_set_parameter() - Sets a parameter


Sets the encoding for character fields (deprecated)

  • « px_set_tablename
  • px_set_value »
  • PHP Manual
  • Paradox Функции
  • Sets the encoding for character fields (deprecated)

px_set_targetencoding

(PECL paradox >= 1.0.0)

px_set_targetencoding — Sets the encoding for character fields (deprecated)

Описание

bool px_set_targetencoding ( resource $pxdoc , string $encoding )

Set the encoding for data retrieved from a character field. All character fields will be recoded to the encoding set by this function. If the encoding is not set, the character data will be returned in the DOS code page encoding as specified in the database file. The encoding can be any string identifier known to iconv or recode. On Unix systems run iconv -l for a list of available encodings.

This function is deprecated and should be replaced by calling px_set_parameter().

See also px_get_info() to determine the DOS code page as stored in the database file.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

encoding

The encoding for the output. Data which is being read from character fields is recoded into the targetencoding.

Возвращаемые значения

Returns FALSE if the encoding could not be set, e.g. the encoding is unknown, or pxlib does not support recoding at all. In the second case a warning will be issued.

Смотрите также

px_set_parameter() - Sets a parameter


Sets a value

  • « px_set_targetencoding
  • px_timestamp2string »
  • PHP Manual
  • Paradox Функции
  • Sets a value

px_set_value

(PECL paradox >= 1.1.0)

px_set_value — Sets a value

Описание

bool px_set_value ( resource $pxdoc , string $name , float $value )

Sets various values.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

name

name can be one of the following.

numprimkeys

The number of primary keys. Paradox databases always use the first numprimkeys fields for the primary index.

value

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

px_set_parameter() - Sets a parameter


Converts the timestamp into a string.

  • « px_set_value
  • px_update_record »
  • PHP Manual
  • Paradox Функции
  • Converts the timestamp into a string.

px_timestamp2string

(PECL paradox >= 1.4.0)

px_timestamp2string — Converts the timestamp into a string.

Описание

string px_timestamp2string ( resource $pxdoc , float $value , string $format )

Turns a timestamp as it stored in the paradox file into human readable format. Paradox timestamps are the number of miliseconds since 0001-01-02. This function is just for convenience. It can be easily replaced by some math and the calendar functions as demonstrated in the following example.

Список параметров

pxdoc

Resource identifier of the paradox database.

value

Value as stored in paradox database field of type PX_FIELD_TIME, or PX_FIELD_TIMESTAMP.

format

String format similar to the format used by date(). The placeholders support by this function is a subset of those supported by date() (Y, y, m, n, d, j, H, h, G, g, i, s, A, a, L).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Turn a paradox timestamp into a human readable form

<?php
$px = px_new();

/* make up a date as it could be stored in */
/* a date field of a paradox db. */
/* 700000 days since 1.1.0000. */
$days = 700000;

/* Use the calendar functions to print a */
/* human readable format of the date */
echo jdtogregorian($days+1721425)."\n";

/* Turn it into a timestamp as it stored in a paradox database */
/* Timestamps are stored in miliseconds since 0001-01-02 */
$stamp = $days * 86400.0 * 1000.0;
/* Add one hour */
$stamp += 3600000.0;
/* The following will output '7/15/1917 01:00:00'. */
echo px_timestamp2string($px, $stamp, "n/d/Y H:i:s")."\n";

px_delete($px);
?>

Результат выполнения данного примера:

7/15/1917
7/15/1917 01:00:00

The Julian day count as passed to jdtogregorian() has a different base of 1.1.4714 b.c. and must therefore be calculated by adding 1721425 to the day count used in the paradox file. Turning the day count into a timestamp is easily done by multiplying with 86400000.0 to obtain miliseconds.

Смотрите также

  • px_date2string() - Converts a date into a string.
  • jdtogregorian() - Переводит число дней в Юлианском летоисчислении в дату по Григорианскому календарю


Updates record in paradox database

  • « px_timestamp2string
  • PostgreSQL »
  • PHP Manual
  • Paradox Функции
  • Updates record in paradox database

px_update_record

(PECL paradox >= 1.4.0)

px_update_record — Updates record in paradox database

Описание

bool px_update_record ( resource $pxdoc , array $data , int $num )

Updates an exiting record in the database. The record starts at 0.

The record data is passed as an array of field values. The elements in the array must correspond to the fields in the database. If the array has less elements than fields in the database, the remaining fields will be set to null.

Замечание:

This function is only available if pxlib >= 0.6.0 is used.

Список параметров

pxdoc

Resource identifier of the paradox database as returned by px_new().

data

Associated array containing the field values as returned by px_retrieve_record().

num

The record number is an artificial number counting records in the order as they are stored in the database. The first record has number 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

px_insert_record() - Inserts record into paradox database


PostgreSQL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
  • PostgreSQL
    • pg_affected_rows — Возвращает количество затронутых запросом записей (кортежей)
    • pg_cancel_query — Остановка асинхронного запроса.
    • pg_client_encoding — Получение кодировки клиента.
    • pg_close — Закрывает соединение с базой данных PostgreSQL
    • pg_connect_poll — Poll the status of an in-progress asynchronous PostgreSQL connection attempt.
    • pg_connect — Открывает соединение с базой данных PostgreSQL
    • pg_connection_busy — Проверяет, занято ли соединение в данный момент.
    • pg_connection_reset — Сброс подключение (переподключение)
    • pg_connection_status — Определяет состояние подключения
    • pg_consume_input — Reads input on the connection
    • pg_convert — Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах
    • pg_copy_from — Вставляет записи из массива в таблицу
    • pg_copy_to — Копирует данные из таблицы в массив
    • pg_dbname — Определяет имя базы данных
    • pg_delete — Удаляет записи
    • pg_end_copy — Синхронизирует с бэкендом PostgreSQL
    • pg_escape_bytea — Экранирует спецсимволы в строке для вставки в поле типа bytea
    • pg_escape_identifier — Escape a identifier for insertion into a text field
    • pg_escape_literal — Escape a literal for insertion into a text field
    • 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 — Flush outbound query data on the connection
    • 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 — Truncates a large object
    • pg_lo_unlink — Удаление большого объекта
    • pg_lo_write — Записывает данные в большой объект
    • pg_meta_data — Получение метаданных таблицы
    • pg_num_fields — Возвращает количество полей в выборке
    • pg_num_rows — Возвращает количество строк в выборке
    • pg_options — Получение параметров соединения с сервером баз данных
    • pg_parameter_status — Просмотр текущих значений параметров сервера
    • pg_pconnect — Открывает постоянное соединение с сервером PostgreSQL
    • pg_ping — Проверка соединения с базой данных
    • pg_port — Возвращает номер порта, соответствующий заданному соединению
    • pg_prepare — Посылает запрос на создание параметризованного SQL выражения и ждет его завершения
    • pg_put_line — Передает на PostgreSQL сервер строку с завершающим нулем
    • pg_query_params — Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
    • pg_query — Выполняет запрос
    • pg_result_error_field — Возвращает конкретное поле из отчета об ошибках
    • pg_result_error — Возвращает сообщение об ошибке, связанной с запросом результата
    • pg_result_seek — Смещает указатель на строку выборки в ресурсе результата запроса
    • pg_result_status — Возвращает состояние результата запроса
    • pg_select — Выбирает записи из базы данных
    • pg_send_execute — Запускает предварительно подготовленный SQL запрос и передает ему параметры; не ожидает возвращаемого результата
    • pg_send_prepare — Посылает запрос на создание параметризованного SQL выражения; не ожидает его завершения
    • pg_send_query_params — Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата
    • pg_send_query — Отправляет асинхронный запрос
    • pg_set_client_encoding — Устанавливает клиентскую кодировку
    • pg_set_error_verbosity — Определяет объем текста сообщений, возвращаемых функциями pg_last_error и pg_result_error
    • pg_socket — Get a read only handle to the socket underlying a PostgreSQL connection
    • pg_trace — Включает трассировку подключения PostgreSQL
    • pg_transaction_status — Возвращает текущее состояние транзакции на сервере
    • pg_tty — Возвращает имя терминала TTY, связанное с соединением
    • pg_unescape_bytea — Убирает экранирование двоичных данных типа bytea
    • pg_untrace — Отключает трассировку соединения с PostgreSQL
    • pg_update — Обновление данных в таблице
    • pg_version — Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)


Введение

База данных PostgreSQL - это свободно доступный продукт с открытым исходным кодом. Изначально Postgres разрабатывался в Университете Компьютерных Наук Беркли и инициировал многие объектно-реляционные идеи, которые на данный момент доступны в некоторых коммерческих базах данных. В частности, это поддержка языка SQL92/SQL99, транзакции, ссылочная целостность, хранимые процедуры и расширение типов. PostgreSQL - это потомок своего первоисточника из Беркли с открытым исходным кодом.


Требования

Для использования PostgreSQL в PHP, у вас должен быть установлен PostgreSQL версии 6.5 или выше, либо PostgreSQL версии 8.0 для использования всех особенностей модуля PostgreSQL. В PostgreSQL есть поддержка различных кодировок символов, включая многобайтную кодировку. Последняя версия и полная информация о PostgreSQL доступна на » http://www.postgresql.org/ и » документация PostgreSQL.


Установка

Для того, чтобы включить поддержку PostgreSQL необходимо скомпилировать PHP с директивой --with-pgsql[=DIR] . Параметр DIR определяет путь к установочной директории PostgreSQL, по умолчанию это /usr/local/pgsql. Если доступен динамический модуль, то он может быть включен директивой extension в php.ini, либо функцией dl().


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации PostgreSQL
Имя | По умолчанию | Меняемо | Список изменений
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Доступно с версии PHP 4.2.0.
pgsql.ignore_notice | "0" | PHP_INI_ALL | Доступна с версии PHP 4.3.0.
pgsql.log_notice | "0" | PHP_INI_ALL | Доступно с версии PHP 4.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

pgsql.allow_persistent boolean

Следует ли разрешить постоянное соединение с Postgres.

pgsql.max_persistent integer

Максимальное количество постоянных соединений на один процесс.

pgsql.max_links integer

Максимальное количество соединений Postgres на один процесс, включая постоянные соединения.

pgsql.auto_reset_persistent integer

Определять разорванные постоянные ссылки с pg_pconnect(). Требуются небольшие дополнительные ресурсы.

pgsql.ignore_notice integer

Игнорировать или нет уведомления от PostgreSQL.

pgsql.log_notice integer

Записывать ли в лог уведомления от PostgreSQL. Для записи в лог уведомлений также необходимо отключить директиву PHP pgsql.ignore_notice.


Типы ресурсов

Существует два типа ресурсов используемых в модуле PostgreSQL. Первый из них представляет собой идентификатор соединения с базой данных, а второй ресурс необходим для хранения результата запроса.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

PGSQL_LIBPQ_VERSION (string)
Короткое обозначение версии libpq, содержащее только цифры и точки.
PGSQL_LIBPQ_VERSION_STR (string)
Длинное обозначение версии libpq, включая информацию компилятора.
PGSQL_ASSOC (integer)
Передается в функцию pg_fetch_array(). Возвращает ассоциативный массив 'имя поля' => 'значение поля'.
PGSQL_NUM (integer)
Передается в функцию pg_fetch_array(). Возвращает нумерованный массив 'номер поля' => 'значение поля'.
PGSQL_BOTH (integer)
Передается в функцию pg_fetch_array(). Возвращает массив значений поля, нумерованный (по номеру поля) и ассоциативный (по имени поля).
PGSQL_CONNECT_FORCE_NEW (integer)
Передается в функцию pg_connect() для принудительного создания нового подключения вместо использования идентичного существующего.
PGSQL_CONNECT_ASYNC (integer)
Передается в pg_connect() для создания асинхронного соединения. Добавлено в PHP 5.6.0.
PGSQL_CONNECTION_BAD (integer)
Возвращается функцией pg_connection_status(), указывает на неработоспособность соединения с базой данных.
PGSQL_CONNECTION_OK (integer)
Возвращается функцией pg_connection_status(), указывает на нормальное (рабочее) состояние соединения с базой данных.
PGSQL_SEEK_SET (integer)
Передается в функцию pg_lo_seek(). Операция поиска начнет работу с начала объекта.
PGSQL_SEEK_CUR (integer)
Передается в функцию pg_lo_seek(). Операция поиска начнет работу с текущей позиции.
PGSQL_SEEK_END (integer)
Передается в функцию pg_lo_seek(). Операция поиска начнет работу с конца объекта.
PGSQL_EMPTY_QUERY (integer)
Возвращается функцией pg_result_status(). Означает, что отправленная на сервер строка была пустой.
PGSQL_COMMAND_OK (integer)
Возвращается функцией pg_result_status(). Означает успешное завершение команды, не возвращающей данных.
PGSQL_TUPLES_OK (integer)
Возвращается функцией pg_result_status(). Означает успешное завершение команды, возвращающей какие-либо данные (например, SELECT или SHOW).
PGSQL_COPY_OUT (integer)
Возвращается функцией pg_result_status(). Сообщает, что было начато копирование данных с сервера.
PGSQL_COPY_IN (integer)
Возвращается функцией pg_result_status(). Сообщает, что было начато копирование данных на сервер.
PGSQL_BAD_RESPONSE (integer)
Возвращается функцией pg_result_status(). Сообщает, что ответ от сервера не был распознан.
PGSQL_NONFATAL_ERROR (integer)
Возвращается функцией pg_result_status(). Сообщает, что произошла некритическая (уведомление или предупреждение) ошибка.
PGSQL_FATAL_ERROR (integer)
Возвращается функцией pg_result_status(). Сообщает, что произошла критическая ошибка.
PGSQL_TRANSACTION_IDLE (integer)
Возвращается функцией pg_transaction_status(). Означает, что соединение на данный момент бездействует и не находится в рамках транзакции.
PGSQL_TRANSACTION_ACTIVE (integer)
Возвращается функцией pg_transaction_status(). Означает состояние, когда команда находится в процессе выполнения. Запрос через соединение отправлен, но выполнение еще не завершено.
PGSQL_TRANSACTION_INTRANS (integer)
Возвращается функцией pg_transaction_status(). Означает, что соединение простаивает и находится в рамках транзакции.
PGSQL_TRANSACTION_INERROR (integer)
Возвращается функцией pg_transaction_status(). Означает, что соединение простаивает и находится в рамках транзакции потерпевшей неудачу при выполнении.
PGSQL_TRANSACTION_UNKNOWN (integer)
Возвращается функцией pg_transaction_status(). Означает, что соединение разорвано.
PGSQL_DIAG_SEVERITY (integer)
Передается в функцию pg_result_error_field(). Сообщает о затруднении. Возможны лишь перечисленные значения: ERROR, FATAL, или PANIC (в сообщении об ошибке), либо WARNING, NOTICE, DEBUG, INFO, или LOG (в уведомлении), либо перевод перечисленных значений в соответствии с используемой локализацией. Поле всегда определено.
PGSQL_DIAG_SQLSTATE (integer)
Передается в pg_result_error_field(). SQLSTATE код ошибки. SQLSTATE код определяет тип произошедшей ошибки; он может быть использован прикладной программой при выполнении специфических операций (таких как обработка ошибки) в ответ на ошибку базы данных. Это поле всегда определено и его значение не зависит от локализации.
PGSQL_DIAG_MESSAGE_PRIMARY (integer)
Передается в pg_result_error_field(). Основное удобочитаемое сообщение об ошибке (обычно одна строка). Поле всегда определено.
PGSQL_DIAG_MESSAGE_DETAIL (integer)
Передается в pg_result_error_field(). Детализация: дополнительное сообщение об ошибке, содержащее более детальную информацию о проблеме. Может содержать несколько строк.
PGSQL_DIAG_MESSAGE_HINT (integer)
Передается в pg_result_error_field(). Подсказка: указание на возможные пути устранения ошибки. Отличается от детализации ошибки тем, что это просто предложения (возможно ошибочные), а не точная информация. Может содержать несколько строк.
PGSQL_DIAG_STATEMENT_POSITION (integer)
Передается в pg_result_error_field(). Строка содержащая десятичное целое число, указывающее на позицию курсора в исходном выражении, где произошла ошибка. Первый символ имеет индекс 1, позиции исчисляются в символах, а не в байтах.
PGSQL_DIAG_INTERNAL_POSITION (integer)
Передается в pg_result_error_field(). Определение тоже, что и для поля PG_DIAG_STATEMENT_POSITION, но используется в случаях, когда курсор указывает на команду, сгенерированную сервером БД. В таких случаях всегда появляется поле PG_DIAG_INTERNAL_QUERY.
PGSQL_DIAG_INTERNAL_QUERY (integer)
Передается в pg_result_error_field(). Текст ошибки, сгенерированной внутренней командой СУБД, в которой произошла ошибка. Это может быть, например, SQL запрос, сформированный PL/pgSQL функцией.
PGSQL_DIAG_CONTEXT (integer)
Передается в pg_result_error_field(). Указание на контекст, где произошла ошибка. В основном содержит трассировку запрограммированных функций и автоматически сгенерированных запросов. Трассировка выводится построчно, начиная с последней строки.
PGSQL_DIAG_SOURCE_FILE (integer)
Передается в pg_result_error_field(). Имя файла исходного кода PostgreSQL, в котором отмечена ошибка.
PGSQL_DIAG_SOURCE_LINE (integer)
Передается в pg_result_error_field(). Номер строки файла исходного кода PostgreSQL, где отмечена ошибка.
PGSQL_DIAG_SOURCE_FUNCTION (integer)
Передается в pg_result_error_field(). Имя функции в исходном коде PostgreSQL, сообщающей об ошибке.
PGSQL_ERRORS_TERSE (integer)
Передается в pg_set_error_verbosity(). Дает предписание, что выдаваемые сообщения будут содержать только важность ошибки, основной текст и указатель на место, где она произошла; эта информация обычно умещается в одну строку.
PGSQL_ERRORS_DEFAULT (integer)
Передается в pg_set_error_verbosity(). В режиме по умолчанию сообщения об ошибках содержат описанную выше информацию, а также детализацию, подсказку, или поля с контекстом ошибки (могут занимать несколько строк).
PGSQL_ERRORS_VERBOSE (integer)
Передается в pg_set_error_verbosity(). Задает режим, в котором в сообщения будут включены все возможные поля.
PGSQL_STATUS_LONG (integer)
Передается в pg_result_status(). Указывает на то, что в качестве возвращаемого значения ожидается числовой код.
PGSQL_STATUS_STRING (integer)
Передается в pg_result_status(). Указывает на то, что в качестве возвращаемого значения ожидается текстовое представление статуса.
PGSQL_CONV_IGNORE_DEFAULT (integer)
Передается в pg_convert(). Игнорировать значения по умолчанию в таблице в процессе преобразования.
PGSQL_CONV_FORCE_NULL (integer)
Передается в pg_convert(). Заменять пустые строки string на SQL NULL при преобразовании.
PGSQL_CONV_IGNORE_NOT_NULL (integer)
Передается в pg_convert(). Указывает, что не нужно конвертировать NULL при записи в SQL NOT NULL колонки таблиц.
PGSQL_DML_NO_CONV (integer)
Передается в pg_insert(), pg_select(), pg_update() и pg_delete(). Все параметры передаются в исходном виде. Ручное экранирование обязательно, если параметры содержат пользовательские данные. Используйте для этих целей pg_escape_string().
PGSQL_DML_EXEC (integer)
Передается в pg_insert(), pg_select(), pg_update() и pg_delete(). Выполнить запрос с помощью этих функций.
PGSQL_DML_ASYNC (integer)
Передается в pg_insert(), pg_select(), pg_update() и pg_delete(). Выполнить асинхронный запрос с помощью этих функций.
PGSQL_DML_STRING (integer)
Передается в pg_insert(), pg_select(), pg_update() и pg_delete(). Вернуть строку с выполненным запросом.
PGSQL_DML_ESCAPE (integer)
Передается в pg_insert(), pg_select(), pg_update() и pg_delete(). Применить экранирование ко всем параметрам вместо внутреннего вызова pg_convert(). Эта опция пропускает просмотр мета-данных. Запрос может быть таким же быстрым как и pg_query() и pg_send_query().
PGSQL_POLLING_FAILED (integer)
Возвращается функцией pg_connect_poll() и указывает на то, что попытка соединения провалилась.
PGSQL_POLLING_READING (integer)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение ожидает, когда сокет PostgreSQL станет доступным для чтения.
PGSQL_POLLING_WRITING (integer)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение ожидает, когда сокет PostgreSQL станет доступным для записи.
PGSQL_POLLING_OK (integer)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение готово к использованию.
PGSQL_POLLING_ACTIVE (integer)
Возвращается функцией pg_connect_poll() и указывает на то, что соединение сейчас активно.


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • PostgreSQL
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

Этот простой пример показывает как выполнить соединение с БД, отправить запрос, вывести его результат и закрыть соединение с PostgreSQL.

Пример #1 Пример работы с расширением PostgreSQL

<?php
// Соединение, выбор базы данных
$dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo")
    or die('Could not connect: ' . 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);
?>


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 — Poll the status of an in-progress asynchronous PostgreSQL connection attempt.
  • pg_connect — Открывает соединение с базой данных PostgreSQL
  • pg_connection_busy — Проверяет, занято ли соединение в данный момент.
  • pg_connection_reset — Сброс подключение (переподключение)
  • pg_connection_status — Определяет состояние подключения
  • pg_consume_input — Reads input on the connection
  • pg_convert — Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах
  • pg_copy_from — Вставляет записи из массива в таблицу
  • pg_copy_to — Копирует данные из таблицы в массив
  • pg_dbname — Определяет имя базы данных
  • pg_delete — Удаляет записи
  • pg_end_copy — Синхронизирует с бэкендом PostgreSQL
  • pg_escape_bytea — Экранирует спецсимволы в строке для вставки в поле типа bytea
  • pg_escape_identifier — Escape a identifier for insertion into a text field
  • pg_escape_literal — Escape a literal for insertion into a text field
  • 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 — Flush outbound query data on the connection
  • 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 — Truncates a large object
  • pg_lo_unlink — Удаление большого объекта
  • pg_lo_write — Записывает данные в большой объект
  • pg_meta_data — Получение метаданных таблицы
  • pg_num_fields — Возвращает количество полей в выборке
  • pg_num_rows — Возвращает количество строк в выборке
  • pg_options — Получение параметров соединения с сервером баз данных
  • pg_parameter_status — Просмотр текущих значений параметров сервера
  • pg_pconnect — Открывает постоянное соединение с сервером PostgreSQL
  • pg_ping — Проверка соединения с базой данных
  • pg_port — Возвращает номер порта, соответствующий заданному соединению
  • pg_prepare — Посылает запрос на создание параметризованного SQL выражения и ждет его завершения
  • pg_put_line — Передает на PostgreSQL сервер строку с завершающим нулем
  • pg_query_params — Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
  • pg_query — Выполняет запрос
  • pg_result_error_field — Возвращает конкретное поле из отчета об ошибках
  • pg_result_error — Возвращает сообщение об ошибке, связанной с запросом результата
  • pg_result_seek — Смещает указатель на строку выборки в ресурсе результата запроса
  • pg_result_status — Возвращает состояние результата запроса
  • pg_select — Выбирает записи из базы данных
  • pg_send_execute — Запускает предварительно подготовленный SQL запрос и передает ему параметры; не ожидает возвращаемого результата
  • pg_send_prepare — Посылает запрос на создание параметризованного SQL выражения; не ожидает его завершения
  • pg_send_query_params — Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата
  • pg_send_query — Отправляет асинхронный запрос
  • pg_set_client_encoding — Устанавливает клиентскую кодировку
  • pg_set_error_verbosity — Определяет объем текста сообщений, возвращаемых функциями pg_last_error и pg_result_error
  • pg_socket — Get a read only handle to the socket underlying a PostgreSQL connection
  • pg_trace — Включает трассировку подключения PostgreSQL
  • pg_transaction_status — Возвращает текущее состояние транзакции на сервере
  • pg_tty — Возвращает имя терминала TTY, связанное с соединением
  • pg_unescape_bytea — Убирает экранирование двоичных данных типа bytea
  • pg_untrace — Отключает трассировку соединения с PostgreSQL
  • pg_update — Обновление данных в таблице
  • pg_version — Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)


Возвращает количество затронутых запросом записей (кортежей)

  • « PostgreSQL
  • pg_cancel_query »
  • PHP Manual
  • PostgreSQL
  • Возвращает количество затронутых запросом записей (кортежей)

pg_affected_rows

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_affected_rows — Возвращает количество затронутых запросом записей (кортежей)

Описание

int pg_affected_rows ( resource $result )

pg_affected_rows() возвращает количество кортежей (сущностей/записей/рядов) затронутых запросом INSERT, UPDATE, и DELETE queries.

С версии PostgreSQL 9.0 и новее, сервер возвращает число выбранных рядов для SELECT запроса. Более старые версии возвращают 0 для SELECT.

Замечание:

Ранее данная функция называлась pg_cmdtuples().

Список параметров

result

Результат запроса к PostgreSQL , значение типа resource, возвращаемое функцией pg_query(), pg_query_params() или pg_execute() (среди прочих).

Возвращаемые значения

Количество записей, затронутых запросом. Если ни один кортеж не был затронут, функция вернет 0.

Примеры

Пример #1 Пример использования pg_affected_rows()

<?php
$result = pg_query($conn, "INSERT INTO authors VALUES ('Orwell', 2002, 'Animal Farm')");

$cmdtuples = pg_affected_rows($result);

echo $cmdtuples . " кортежей затронуто.\n";
?>

Результат выполнения данного примера:

1 кортежей затронуто.

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_query_params() - Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат
  • pg_num_rows() - Возвращает количество строк в выборке


Остановка асинхронного запроса.

  • « pg_affected_rows
  • pg_client_encoding »
  • PHP Manual
  • PostgreSQL
  • Остановка асинхронного запроса.

pg_cancel_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_cancel_query — Остановка асинхронного запроса.

Описание

bool pg_cancel_query ( resource $connection )

pg_cancel_query() отменяет выполнение асинхронного запроса, отправленного функциями pg_send_query(), pg_send_query_params() или pg_send_execute(). Невозможно завершить выполнение запроса, запущенное функцией pg_query().

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_cancel_query()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Первый запрос к pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 получил $rows1 записей\n\n";

  // Остановка выполняющегося в данный момент запроса.
  // Последует второй запрос, если, конечно, он еще выполняется.
  pg_cancel_query($dbconn);
?>

Результат выполнения данного примера:

Первый запрос к pg_get_result(): Resource id #3
Resource id #3 получил 3 записей

Смотрите также

  • pg_send_query() - Отправляет асинхронный запрос
  • pg_connection_busy() - Проверяет, занято ли соединение в данный момент.


Получение кодировки клиента.

  • « pg_cancel_query
  • pg_close »
  • PHP Manual
  • PostgreSQL
  • Получение кодировки клиента.

pg_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_client_encoding — Получение кодировки клиента.

Описание

string pg_client_encoding ([ resource $connection ] )

PostgreSQL поддерживает автоматическое преобразование наборов символов между сервером и клиентом для некоторых кодировок. pg_client_encoding() возвращает клиентскую кодировку в виде строки, представляющей собой стандартный идентификатор кодировки PostgreSQL.

Замечание:

Функция поддерживается PHP версии 4.0.3 или выше и PostgreSQL версии 7.0 или выше. В случае, если libpg скомпилирована без поддержки многобайтных кодировок, pg_client_encoding() всегда возвращает SQL_ASCII. Набор поддерживаемых кодировок зависит от версии сервера БД и описан в документации PostgreSQL.

Функция, используемая для вызова: pg_clientencoding().

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL. Если connection не задан, будет использовано соединение по умолчанию - последнее соединение созданное функциями pg_connect() или pg_pconnect().

Возвращаемые значения

Клиентская кодировка, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_client_encoding()

<?php
// Допустим, что $conn - соединение с базой данных, поддерживающей стандарт ISO-8859-1
$encoding = pg_client_encoding($conn);

echo "Кодировка клиента: ", $encoding, "\n";
?>

Результат выполнения данного примера:

Кодировка клиента: ISO-8859-1

Смотрите также

  • pg_set_client_encoding() - Устанавливает клиентскую кодировку


Закрывает соединение с базой данных PostgreSQL

  • « pg_client_encoding
  • pg_connect_poll »
  • PHP Manual
  • PostgreSQL
  • Закрывает соединение с базой данных PostgreSQL

pg_close

(PHP 4, PHP 5, PHP 7)

pg_close — Закрывает соединение с базой данных PostgreSQL

Описание

bool pg_close ([ resource $connection ] )

pg_close() закрывает обычное (непостоянное) соединение с базой данных PostgreSQL, соответствующее ресурсу connection.

Замечание:

Использование pg_close(), как правило, необязательно, так как непостоянные соединения закрываются автоматически при завершении работы скрипта.

Если с соединением работают ресурсы "больших" объектов, то перед закрытием соединения необходимо закрыть эти ресурсы.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL. В случае, если connection не задан, будет закрыто последнее соединение открытое функциями pg_connect() или pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_close()

<?php
$dbconn = pg_connect("host=localhost port=5432 dbname=mary")
   or die("Невозможно подключиться к БД");
echo "Успешно подключено к БД";
pg_close($dbconn);
?>

Результат выполнения данного примера:

Успешно подключено к БД

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL


Poll the status of an in-progress asynchronous PostgreSQL connection attempt.

  • « pg_close
  • pg_connect »
  • PHP Manual
  • PostgreSQL
  • Poll the status of an in-progress asynchronous PostgreSQL connection attempt.

pg_connect_poll

(PHP 5 >= 5.6.0, PHP 7)

pg_connect_poll — Poll the status of an in-progress asynchronous PostgreSQL connection attempt.

Описание

int pg_connect_poll ([ resource $connection ] )

pg_connect_poll() polls the status of a PostgreSQL connection created by calling pg_connect() with the PGSQL_CONNECT_ASYNC option.

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

Returns PGSQL_POLLING_FAILED, PGSQL_POLLING_READING, PGSQL_POLLING_WRITING, PGSQL_POLLING_OK, or PGSQL_POLLING_ACTIVE.


Открывает соединение с базой данных PostgreSQL

  • « pg_connect_poll
  • pg_connection_busy »
  • PHP Manual
  • PostgreSQL
  • Открывает соединение с базой данных PostgreSQL

pg_connect

(PHP 4, PHP 5, PHP 7)

pg_connect — Открывает соединение с базой данных PostgreSQL

Описание

resource pg_connect ( string $connection_string [, int $connect_type ] )

pg_connect() открывает соединение с базой данных PostgreSQL, определенное строкой connection_string.

При повторном вызове функции pg_connect() с теми же значениями параметров в connection_string функция вернет существующее подключение. Чтобы принудительно создать новое соединение, необходимо передать строку подключения функции PGSQL_CONNECT_FORCE_NEW в качестве параметра connect_type.

Прежний синтаксис с множеством параметров $conn = pg_connect("host", "port", "options", "tty", "dbname") считается устаревшим.

Список параметров

connection_string

Строка connection_string может быть пустой строкой, или содержать несколько параметров разделенных пробелами. Каждый параметр указывается как keyword = value. Пробелы вокруг знака равно необязательны. Пустые строки в качестве значения или значения, содержащие пробелы отделяются одинарными кавычками, как например, keyword = 'a value'. Для задания одинарных кавычек и обратных слешей в качестве значений их необходимо экранировать обратным слешем, то есть \' и \\.

Список основных ключевых слов: host, hostaddr, port, dbname (значение по умолчанию для параметра user), user, password, connect_timeout, options, tty (игнорируется), sslmode, requiressl (устарело в связи с использованием параметра sslmode), и service. Какие из этих аргументов будут обработаны, зависит от версии PostgreSQL.

Параметр options служит для установки параметров командной строки, которые обработаны сервером.

connect_type

Если в функцию передана константа PGSQL_CONNECT_FORCE_NEW, будет создаваться новое подключение, даже если connection_string идентична строке существующего подключения.

Если передана константа PGSQL_CONNECT_ASYNC, то соединение устанавливается асинхронным. Состояние соединения можно проверить с помощью функций pg_connect_poll() или pg_connection_status().

Возвращаемые значения

Ресурс соединения с базой данных PostgreSQL либо FALSE, если подключиться не удалось.

Список изменений

Версия | Описание
5.6.0 | Добавлена поддержка константы PGSQL_CONNECT_ASYNC для параметра connect_type.

Примеры

Пример #1 Использование функции pg_connect()

<?php
$dbconn = pg_connect("dbname=mary");
//подключиться к базе "mary"

$dbconn2 = pg_connect("host=localhost port=5432 dbname=mary");
//подключиться к базе "mary" на хосте "localhost", порт "5432"

$dbconn3 = pg_connect("host=sheep port=5432 dbname=mary user=lamb password=foo");
//подключиться к базе "mary" на хосте "sheep", используя имя пользователя и пароль

$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_connect($conn_string);
//подключиться к базе "test" на хосте "sheep", используя имя пользователя и пароль

$dbconn5 = pg_connect("host=localhost options='--client_encoding=UTF8'");
//подключиться к базе на хосте "localhost" и передать параметр командной строки, задающий кодировку UTF-8
?>

Смотрите также

  • pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL
  • pg_close() - Закрывает соединение с базой данных PostgreSQL
  • pg_host() - Возвращает имя хоста, соответствующего подключению
  • pg_port() - Возвращает номер порта, соответствующий заданному соединению
  • pg_tty() - Возвращает имя терминала TTY, связанное с соединением
  • pg_options() - Получение параметров соединения с сервером баз данных
  • pg_dbname() - Определяет имя базы данных


Проверяет, занято ли соединение в данный момент.

  • « pg_connect
  • pg_connection_reset »
  • PHP Manual
  • PostgreSQL
  • Проверяет, занято ли соединение в данный момент.

pg_connection_busy

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_connection_busy — Проверяет, занято ли соединение в данный момент.

Описание

bool pg_connection_busy ( resource $connection )

pg_connection_busy() определяет, занято соединение в данный момент или нет. Соединение занято, когда предыдущий запрос еще выполняется. Функция pg_get_result() также блокирует соединение на время своего выполнения.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

Возвращает TRUE, когда соединение занято, иначе FALSE.

Примеры

Пример #1 Пример использования pg_connection_busy()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
  $bs = pg_connection_busy($dbconn);
  if ($bs) {
      echo 'connection is busy';
  } else {
     echo 'connection is not busy';
  }
?>

Смотрите также

  • pg_connection_status() - Определяет состояние подключения
  • pg_get_result() - Получение результата асинхронного запроса


Сброс подключение (переподключение)

  • « pg_connection_busy
  • pg_connection_status »
  • PHP Manual
  • PostgreSQL
  • Сброс подключение (переподключение)

pg_connection_reset

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_connection_reset — Сброс подключение (переподключение)

Описание

bool pg_connection_reset ( resource $connection )

pg_connection_reset() сбрасывает подключение. Может быть использована для устранения ошибок.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_connection_reset()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
  $dbconn2 = pg_connection_reset($dbconn);
  if ($dbconn2) {
      echo "reset successful\n";
  } else {
      echo "reset failed\n";
  }
?>

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL
  • pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL
  • pg_connection_status() - Определяет состояние подключения


Определяет состояние подключения

  • « pg_connection_reset
  • pg_consume_input »
  • PHP Manual
  • PostgreSQL
  • Определяет состояние подключения

pg_connection_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_connection_status — Определяет состояние подключения

Описание

int pg_connection_status ( resource $connection )

pg_connection_status() возвращает состояние переданного в качестве аргумента соединения connection.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

PGSQL_CONNECTION_OK либо PGSQL_CONNECTION_BAD.

Примеры

Пример #1 Пример использования pg_connection_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
  $stat = pg_connection_status($dbconn);
  if ($stat === PGSQL_CONNECTION_OK) {
      echo 'Статус соединения: доступно';
  } else {
      echo 'Статус соединения: разорвано';
  }
?>

Смотрите также

  • pg_connection_busy() - Проверяет, занято ли соединение в данный момент.


Reads input on the connection

  • « pg_connection_status
  • pg_convert »
  • PHP Manual
  • PostgreSQL
  • Reads input on the connection

pg_consume_input

(PHP 5 >= 5.6.0, PHP 7)

pg_consume_input — Reads input on the connection

Описание

bool pg_consume_input ( resource $connection )

pg_consume_input() consumes any input waiting to be read from the database server.

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

TRUE if no error occurred, or FALSE if there was an error. Note that TRUE does not necessarily indicate that input was waiting to be read.


Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах

  • « pg_consume_input
  • pg_copy_from »
  • PHP Manual
  • PostgreSQL
  • Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах

pg_convert

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_convert — Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах

Описание

array pg_convert ( resource $connection , string $table_name , array $assoc_array [, int $options = 0 ] )

pg_convert() проверяет и преобразовывает значения из assoc_array в приемлемые для SQL сервера. Необходимо, чтобы существовала таблица table_name, а количество колонок в ней должно быть не меньше, чем значений в массиве assoc_array. Имена колонок в таблице table_name должны совпадать с ключами массива assoc_array, типы данных значений массива также должны совпадать с типами данных соответствующих колонок. В случае удачной конвертации функция возвращает массив преобразованных значений, иначе возвращает FALSE.

Замечание:

С версии PHP 5.6.0, допускаются булевы значения. Они преобразуются в булев тип PostgreSQL. Строковые представления булевого значения также поддерживаются. NULL преобразуется в PostgreSQL NULL.

До версии PHP 5.6.0, если таблица table_name содержит поля типа boolean, не используйте константу TRUE в качестве значения массива table_name для этих полей. Она будет преобразована в строку 'TRUE', которая является недопустимым значением для boolean полей в PostgreSQL. Используйте значения t, true, 1, y, yes.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы базы данных.

assoc_array

Данные для преобразования.

options

Одна из констант PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL или PGSQL_CONV_IGNORE_NOT_NULL, либо их комбинация.

Возвращаемые значения

Массив (array), содержащий преобразованные данные, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_convert()

<?php
  $dbconn = pg_connect('dbname=foo');

  $tmp = array(
      'author' => 'Joe Thackery',
      'year' => 2005,
      'title' => 'My Life, by Joe Thackery'
  );

  $vals = pg_convert($dbconn, 'authors', $tmp);
?>

Список изменений

Версия | Описание
5.6.0 | Больше не является экспериментальной. Добавлена поддержка булевых/NULL значений. Неизвестные и неподдерживаемые типы данных экранируются без валидации. pg_convert() можно использовать с любыми типами данных.

Смотрите также

  • pg_meta_data() - Получение метаданных таблицы
  • pg_insert() - Заносит данные из массива в таблицу базы данных
  • pg_select() - Выбирает записи из базы данных
  • pg_update() - Обновление данных в таблице
  • pg_delete() - Удаляет записи


Вставляет записи из массива в таблицу

  • « pg_convert
  • pg_copy_to »
  • PHP Manual
  • PostgreSQL
  • Вставляет записи из массива в таблицу

pg_copy_from

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_copy_from — Вставляет записи из массива в таблицу

Описание

bool pg_copy_from ( resource $connection , string $table_name , array $rows [, string $delimiter [, string $null_as ]] )

pg_copy_from() вставляет записи в таблицу из массива rows. В ходе выполнения вызывает SQL команду COPY FROM для вставки записей.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы, в которую копируются значения из rows.

rows

Массив (array) данных для копирования в table_name. Каждое значение в rows становится строкой в table_name. Каждое значение массива rows должно быть строкой с разделителем, содержащей значения для вставки в каждое поле таблицы. Значения должны заканчиваться символом перевода строки.

delimiter

Символ, отделяющий значения друг от друга в каждом элементе массива rows. По умолчанию TAB.

null_as

Определяет, каким образом значения SQL NULL представлены в массиве rows. По умолчанию \N ("\\N").

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_copy_from()

<?php
   $db = pg_connect("dbname=publisher") or die("Не удается создать подключение");

   $rows = pg_copy_to($db, $table_name);

   pg_query($db, "DELETE FROM $table_name");

   pg_copy_from($db, $table_name, $rows);
?>

Смотрите также

  • pg_copy_to() - Копирует данные из таблицы в массив


Копирует данные из таблицы в массив

  • « pg_copy_from
  • pg_dbname »
  • PHP Manual
  • PostgreSQL
  • Копирует данные из таблицы в массив

pg_copy_to

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_copy_to — Копирует данные из таблицы в массив

Описание

array pg_copy_to ( resource $connection , string $table_name [, string $delimiter [, string $null_as ]] )

pg_copy_to() копирует данные из таблицы в массив. Для получения записей посылает серверу команду SQL COPY TO.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы, из которой данные копируются в массив rows.

delimiter

Символ-разделитель, отделяющий значения полей в элементах массива rows. По умолчанию TAB.

null_as

Этот параметр отвечает за то, как значения SQL NULL будут представлены в массиве rows. По умолчанию \N ("\\N").

Возвращаемые значения

Массив array, в котором каждый элемент - строка, полученная с помощью COPY. В случае ошибки возвращает FALSE.

Примеры

Пример #1 Пример использования pg_copy_to()

<?php
   $db = pg_connect("dbname=publisher") or die("Невозможно подключиться");

   $rows = pg_copy_to($db, $table_name);

   pg_query($db, "DELETE FROM $table_name");

   pg_copy_from($db, $table_name, $rows);
?>

Смотрите также

  • pg_copy_from() - Вставляет записи из массива в таблицу


Определяет имя базы данных

  • « pg_copy_to
  • pg_delete »
  • PHP Manual
  • PostgreSQL
  • Определяет имя базы данных

pg_dbname

(PHP 4, PHP 5, PHP 7)

pg_dbname — Определяет имя базы данных

Описание

string pg_dbname ([ resource $connection ] )

pg_dbname() возвращает имя базы данных, соответствующей ресурсу PostgreSQL connection.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Строка, содержащая имя базы данных, соответствующей ресурсу connection, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_dbname()

<?php
  error_reporting(E_ALL);

  pg_connect("host=localhost port=5432 dbname=mary");
  echo pg_dbname(); // mary
?>


Удаляет записи

  • « pg_dbname
  • pg_end_copy »
  • PHP Manual
  • PostgreSQL
  • Удаляет записи

pg_delete

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_delete — Удаляет записи

Описание

mixed pg_delete ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] )

pg_delete() удаляет из таблицы записи, соответствующие ключам и значениям массива assoc_array. Если задан аргумент options, то массив assoc_array будет предварительно обработан функцией pg_convert(), вызванной с указанными параметрами.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы, из которой удаляются записи.

assoc_array

Ассоциативный массив, ключи которого соответствуют именам полей таблицы table_name, а значения соответствуют удаляемым значениям в этих колонках.

options

Комбинация констант PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC или PGSQL_DML_STRING. Если константа PGSQL_DML_STRING присутствует в аргументе options, то функция вернет строку, содержащую запрос. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Возвращает строку, если в аргументе options передана константа PGSQL_DML_STRING.

Примеры

Пример #1 Пример использования pg_delete()

<?php
  $db = pg_connect('dbname=foo');
  // Это безопасно, поскольку $_POST автоматически конвертируется
  $res = pg_delete($db, 'post_log', $_POST);
  if ($res) {
      echo "Данные из POST удалены: $res\n";
  } else {
      echo "Пользователь отправил неверные входные данные\n";
  }
?>

Список изменений

Версия | Описание
5.6.0 | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
5.5.3/5.4.19 | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах


Синхронизирует с бэкендом PostgreSQL

  • « pg_delete
  • pg_escape_bytea »
  • PHP Manual
  • PostgreSQL
  • Синхронизирует с бэкендом PostgreSQL

pg_end_copy

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_end_copy — Синхронизирует с бэкендом PostgreSQL

Описание

bool pg_end_copy ([ resource $connection ] )

pg_end_copy() синхронизирует данные между фронтендом PostgreSQL (обычно процессом веб-сервера) и сервером PostgreSQL после завершения копирования данных, совершенных с помощью функции pg_put_line(). Использование pg_end_copy() необходимо, чтобы избежать рассинхронизации сервера PostgreSQL с фронтендом и сообщений об ошибках.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_end_copy()

<?php
  $conn = pg_pconnect("dbname=foo");
  pg_query($conn, "create table bar (a int4, b char(16), d float8)");
  pg_query($conn, "copy bar from stdin");
  pg_put_line($conn, "3\thello world\t4.5\n");
  pg_put_line($conn, "4\tgoodbye world\t7.11\n");
  pg_put_line($conn, "\\.\n");
  pg_end_copy($conn);
?>

Смотрите также

  • pg_put_line() - Передает на PostgreSQL сервер строку с завершающим нулем


Экранирует спецсимволы в строке для вставки в поле типа bytea

  • « pg_end_copy
  • pg_escape_identifier »
  • PHP Manual
  • PostgreSQL
  • Экранирует спецсимволы в строке для вставки в поле типа bytea

pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_escape_bytea — Экранирует спецсимволы в строке для вставки в поле типа bytea

Описание

string pg_escape_bytea ([ resource $connection ], string $data )

pg_escape_bytea() экранирует спецсимволы в строке с данными типа bytea. Возвращает экранированную строку.

Замечание:

При выборке SQL функцией SELECT данных типа bytea PostgreSQL возвращает значения в восьмеричной системе счисления с префиксом '\' (такие как \032). Пользователю необходимо вручную преобразовывать их в двоичный формат.

Функция поддерживается PostgreSQL версии 7.2 и выше. Для версий 7.2.0 и 7.2.1 значения должны быть преобразованы к типу bytea, когда включена мультибайтовая поддержка. Тогда как INSERT INTO test_table (image)VALUES ('$image_escaped'::bytea); в PostgreSQL 7.2.2 и выше не требует каких-либо преобразований. Исключение составляет случай, когда клиентская (frontend) кодировка не соответствует серверной (backend). При этом возникает ошибка мультибайтового потока, и пользователь должен привести данные к типу bytea, чтобы ее избежать.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

data

Строка, содержащая двоичные данные в виде текста, которые требуется поместить в поле типа bytea.

Возвращаемые значения

Возвращает строку, в которой экранированы все необходимые символы.

Список изменений

Версия | Описание
5.2.0 | Добавлен аргумент connection

Примеры

Пример #1 Пример использования pg_escape_bytea()

<?php
  // Подключение к базе данных
  $dbconn = pg_connect('dbname=foo');

  // Чтение бинарного файла
  $data = file_get_contents('image1.jpg');

  // Экранирование спецсимволов в строке с двоичными данными
  $escaped = pg_escape_bytea($data);

  // Вставка в таблицу базы данных
  pg_query("INSERT INTO gallery (name, data) VALUES ('Pine trees', '{$escaped}')");
?>

Смотрите также

  • pg_unescape_bytea() - Убирает экранирование двоичных данных типа bytea
  • pg_escape_string() - Экранирование спецсимволов в строке запроса


Escape a identifier for insertion into a text field

  • « pg_escape_bytea
  • pg_escape_literal »
  • PHP Manual
  • PostgreSQL
  • Escape a identifier for insertion into a text field

pg_escape_identifier

(PHP 5 >= 5.4.4, PHP 7)

pg_escape_identifier — Escape a identifier for insertion into a text field

Описание

string pg_escape_identifier ([ resource $connection ], string $data )

pg_escape_identifier() escapes a identifier (e.g. table, field names) for quering the database. It returns an escaped identifier string for PostgreSQL server. pg_escape_identifier() adds double quotes before and after data. Users should not add double quotes. Use of this function is recommended for identifier parameters in query. For SQL literals (i.e. parameters except bytea), pg_escape_literal() or pg_escape_string() muse be used. For bytea type fields, pg_escape_bytea() must be used instead.

Замечание:

This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

data

A string containing text to be escaped.

Возвращаемые значения

A string containing the escaped data.

Примеры

Пример #1 pg_escape_identifier() example

<?php
  // Connect to the database
  $dbconn = pg_connect('dbname=foo');

  // Escape the table name data
  $escaped = pg_escape_identifier($table_name);

  // Select rows from $table_name
  pg_query("SELECT * FROM {$escaped};");
?>

Смотрите также

  • pg_escape_literal() - Escape a literal for insertion into a text field
  • pg_escape_bytea() - Экранирует спецсимволы в строке для вставки в поле типа bytea
  • pg_escape_string() - Экранирование спецсимволов в строке запроса


Escape a literal for insertion into a text field

  • « pg_escape_identifier
  • pg_escape_string »
  • PHP Manual
  • PostgreSQL
  • Escape a literal for insertion into a text field

pg_escape_literal

(PHP 5 >= 5.4.4, PHP 7)

pg_escape_literal — Escape a literal for insertion into a text field

Описание

string pg_escape_literal ([ resource $connection ], string $data )

pg_escape_literal() escapes a literal for querying the PostgreSQL database. It returns an escaped literal in the PostgreSQL format. pg_escape_literal() adds quotes before and after data. Users should not add quotes. Use of this function is recommended instead of pg_escape_string(). If the type of the column is bytea, pg_escape_bytea() must be used instead. For escaping identifiers (e.g. table, field names), pg_escape_identifier() must be used.

Замечание:

This function has internal escape code and can also be used with PostgreSQL 8.4 or less.

Список параметров

connection

PostgreSQL database connection resource. When connection is not present, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect(). When there is no default connection, it raises E_WARNING and returns FALSE.

data

A string containing text to be escaped.

Возвращаемые значения

A string containing the escaped data.

Примеры

Пример #1 pg_escape_literal() example

<?php
  // Connect to the database
  $dbconn = pg_connect('dbname=foo');

  // Read in a text file (containing apostrophes and backslashes)
  $data = file_get_contents('letter.txt');

  // Escape the text data
  $escaped = pg_escape_literal($data);

  // Insert it into the database. Note that no quotes around {$escaped}
  pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', {$escaped})");
?>

Смотрите также

  • pg_escape_identifier() - Escape a identifier for insertion into a text field
  • pg_escape_bytea() - Экранирует спецсимволы в строке для вставки в поле типа bytea
  • pg_escape_string() - Экранирование спецсимволов в строке запроса


Экранирование спецсимволов в строке запроса

  • « pg_escape_literal
  • pg_execute »
  • PHP Manual
  • PostgreSQL
  • Экранирование спецсимволов в строке запроса

pg_escape_string

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_escape_string — Экранирование спецсимволов в строке запроса

Описание

string pg_escape_string ([ resource $connection ], string $data )

Функция pg_escape_string() экранирует спецсимволы в строке запроса для базы данных. Она возвращает экранированную строку в формате PostgreSQL. Функция pg_escape_string() является наиболее предпочтительным способом экранирования SQL параметров для PostgreSQL, в то время как addslashes() не должна использоваться с PostgreSQL. Если тип столбца bytea, то должна использоваться функция pg_escape_bytea() вместо pg_escape_string. Функция pg_escape_identifier() должна использоваться для экранирования идентификаторов (например, имена таблиц или полей).

Замечание:

Функция поддерживается PostgreSQL версии 7.2 и выше.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

data

Исходная экранируемая строка.

Возвращаемые значения

Возвращает строку, в которой экранированы все необходимые символы.

Список изменений

Версия | Описание
5.2.0 | Добавлен аргумент connection

Примеры

Пример #1 Пример использования pg_escape_string()

<?php
  // Подключение к базе данных
  $dbconn = pg_connect('dbname=foo');

  // Чтение текстового файла (содержащего апострофы и обратные слеши)
  $data = file_get_contents('letter.txt');

  // Экранирование спецсимволов в строке
  $escaped = pg_escape_string($data);

  // Вставка в таблицу базы данных
  pg_query("INSERT INTO correspondence (name, data) VALUES ('My letter', '{$escaped}')");
?>

Смотрите также

  • pg_escape_bytea() - Экранирует спецсимволы в строке для вставки в поле типа bytea


Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат

  • « pg_escape_string
  • pg_fetch_all_columns »
  • PHP Manual
  • PostgreSQL
  • Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат

pg_execute

(PHP 5 >= 5.1.0, PHP 7)

pg_execute — Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат

Описание

resource pg_execute ([ resource $connection ], string $stmtname , array $params )

Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат.

pg_execute() аналог функции pg_query_params(), только вместо строки с запросом принимает имя предварительно подготовленного SQL запроса. Это позволяет многократно выполнять единожды созданные запросы с различными параметрами. Сам запрос должен быть заранее подготовлен в текущей сессии. pg_execute() поддерживается PostgreSQL версии 7.4 и выше. Функция не будет работать на соединениях с сервером ранних версий.

Аргументы функции те же, что и у pg_query_params(), за исключением имени предварительно составленного запроса, который передается вместо строки с запросом.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

stmtname

Имя подготовленного к исполнению запроса. Если передана пустая строка "", будет выполнен безымянный запрос. Имя и содержимое запроса должны быть подготовлены функцией pg_prepare(), pg_send_prepare() либо с помощью SQL-команды PREPARE.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Внимание

Элементы массива будут преобразованы в строки.

Возвращаемые значения

Ресурс результата выполнения запроса при успешном выполнении. или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_execute()

<?php
// Подключение к базе данных "mary"
$dbconn = pg_connect("dbname=mary");

// Подготовка запроса
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Запуск запроса на выполнение. Стоит отметить, что нет необходимости экранировать
// спецсимволы в строке "Joe's Widgets"
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Запуск на выполнение того же запроса, но с другим параметром
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

Смотрите также

  • pg_prepare() - Посылает запрос на создание параметризованного SQL выражения и ждет его завершения
  • pg_send_prepare() - Посылает запрос на создание параметризованного SQL выражения; не ожидает его завершения
  • pg_query_params() - Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса


Выбирает все записи из одной колонки результата запроса и помещает их в массив

  • « pg_execute
  • pg_fetch_all »
  • PHP Manual
  • PostgreSQL
  • Выбирает все записи из одной колонки результата запроса и помещает их в массив

pg_fetch_all_columns

(PHP 5 >= 5.1.0, PHP 7)

pg_fetch_all_columns — Выбирает все записи из одной колонки результата запроса и помещает их в массив

Описание

array pg_fetch_all_columns ( resource $result [, int $column = 0 ] )

pg_fetch_all_columns() возвращает массив, содержащий все записи одной колонки результата запроса.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

column

Номер колонки результата запроса, начиная с нуля, данные из которой будут помещены в массив. Если параметр не задан, будет обработана первая (нулевая) колонка.

Возвращаемые значения

Массив значений колонки результата запроса.

FALSE, если аргумент column больше количества колонок в результате запроса, а также при прочих ошибках.

Примеры

Пример #1 Пример использования pg_fetch_all_columns()

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

$result = pg_query($conn, "SELECT title, name, address FROM authors");
if (!$result) {
  echo "Произошла ошибка.\n";
  exit;
}

// Получить массив имен всех авторов
$arr = pg_fetch_all_columns($result, 1);

var_dump($arr);

?>

Смотрите также

  • pg_fetch_all() - Выбирает все данные из результата запроса и помещает их в массив


Выбирает все данные из результата запроса и помещает их в массив

  • « pg_fetch_all_columns
  • pg_fetch_array »
  • PHP Manual
  • PostgreSQL
  • Выбирает все данные из результата запроса и помещает их в массив

pg_fetch_all

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_fetch_all — Выбирает все данные из результата запроса и помещает их в массив

Описание

array pg_fetch_all ( resource $result )

pg_fetch_all() возвращает массив содержащий все записи из результата запроса.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

Возвращаемые значения

Многомерный массив данных результата запроса. Каждая строка результата представляется массивом значений полей, индексированным именами этих полей.

FALSE, когда в результате больше нет строк и при прочих ошибках.

Примеры

Пример #1 Пример использования

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
    echo "Произошла ошибка.\n";
    exit;
}

$result = pg_query($conn, "SELECT * FROM authors");
if (!$result) {
    echo "Произошла ошибка.\n";
    exit;
}

$arr = pg_fetch_all($result);

print_r($arr);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Fred
        )

    [1] => Array
        (
            [id] => 2
            [name] => Bob
        )

)

Смотрите также

  • pg_fetch_row() - Выбирает строку результата запроса и помещает данные в массив
  • pg_fetch_array() - Возвращает строку результата в виде массива
  • pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result() - Возвращает запись из результата запроса


Возвращает строку результата в виде массива

  • « pg_fetch_all
  • pg_fetch_assoc »
  • PHP Manual
  • PostgreSQL
  • Возвращает строку результата в виде массива

pg_fetch_array

(PHP 4, PHP 5, PHP 7)

pg_fetch_array — Возвращает строку результата в виде массива

Описание

array pg_fetch_array ( resource $result [, int $row [, int $result_type = PGSQL_BOTH ]] )

pg_fetch_array() возвращает массив, соответствующий выбранной строке (записи).

pg_fetch_array() расширенная версия функции pg_fetch_row(). Эта функция способна сохранить данные не только с цифровыми индексами, но и с ассоциативными (имя поля). По умолчанию хранит и те и другие.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

pg_fetch_array() выполняется незначительно медленнее чем pg_fetch_row(), но значительно проще в использовании.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращенный функцией pg_query(), pg_query_params() или pg_execute() (и прочих).

row

Номер строки в result для выборки. Строки пронумерованы с 0 по возрастанию. Если параметр опущен или передан NULL будет выбрана следующая строка.

result_type

Необязательный параметр для управления типом индексации возвращаемого массива (array). Параметр result_type обязателен и может принимать следующие значения: PGSQL_ASSOC, PGSQL_NUM и PGSQL_BOTH. При указании PGSQL_NUM, pg_fetch_array() вернет массив с цифровыми индексами, в случае PGSQL_ASSOC вернет только ассоциативные индексы, а в случае PGSQL_BOTH (используется по умолчанию) -- цифровые и ассоциативные индексы.

Возвращаемые значения

Массив (array) с цифровыми индексами (начиная с 0), либо ассоциативными (по имени поля), либо с обеими типами индексов. Каждое значение в массиве (array) представлено как строка (string). Значение NULL возвращается как NULL.

Функция возвращает FALSE если row выходит за рамки количества строк в выборке, или отсутствия строк, или в случае любой другой ошибки.

Примеры

Пример #1 Пример использования pg_fetch_array()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Произошла ошибка.\n";
  exit;
}

$arr = pg_fetch_array($result, 0, PGSQL_NUM);
echo $arr[0] . " <- Row 1 Author\n";
echo $arr[1] . " <- Row 1 E-mail\n";

// Параметр row необязателен,
// для передечи result_type вместо row можно передать NULL.
// Успешные вызовы pg_fetch_array вернут следующий ряд.

$arr = pg_fetch_array($result, NULL, PGSQL_ASSOC);
echo $arr["author"] . " <- Row 2 Author\n";
echo $arr["email"] . " <- Row 2 E-mail\n";

$arr = pg_fetch_array($result);
echo $arr["author"] . " <- Row 3 Author\n";
echo $arr[1] . " <- Row 3 E-mail\n";

?>

Смотрите также

  • pg_fetch_row() - Выбирает строку результата запроса и помещает данные в массив
  • pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result() - Возвращает запись из результата запроса


Выбирает строку результата запроса и помещает данные в ассоциативный массив

  • « pg_fetch_array
  • pg_fetch_object »
  • PHP Manual
  • PostgreSQL
  • Выбирает строку результата запроса и помещает данные в ассоциативный массив

pg_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_fetch_assoc — Выбирает строку результата запроса и помещает данные в ассоциативный массив

Описание

array pg_fetch_assoc ( resource $result [, int $row ] )

pg_fetch_assoc() возвращает ассоциативный массив содержащий записи из строки результата запроса.

Результат выполнения pg_fetch_assoc() тот же, что и у pg_fetch_array() с параметром PGSQL_ASSOC. Функция возвращает только ассоциативный массив. Если нужен численно индексированный массив, используйте функцию pg_fetch_row().

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

pg_fetch_assoc() не намного медленней и значительно проще в использовании, чем pg_fetch_row().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен или равен NULL, берется следующая по очереди строка.

Возвращаемые значения

Ассоциативный массив, индексированный именами полей выборки. Значения массива представляются в виде текстовых строк. Значения NULL базы данных преобразуются в PHP NULL.

FALSE, когда row превышает число строк в результате запроса, когда строк в результате не осталось, и при прочих ошибках.

Примеры

Пример #1 Пример использования pg_fetch_assoc()

<?php
$conn = pg_connect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

$result = pg_query($conn, "SELECT id, author, email FROM authors");
if (!$result) {
  echo "Произошла ошибка.\n";
  exit;
}

while ($row = pg_fetch_assoc($result)) {
  echo $row['id'];
  echo $row['author'];
  echo $row['email'];
}
?>

Смотрите также

  • pg_fetch_row() - Выбирает строку результата запроса и помещает данные в массив
  • pg_fetch_array() - Возвращает строку результата в виде массива
  • pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result() - Возвращает запись из результата запроса


Выбирает строку результата запроса и возвращает данные в виде объекта

  • « pg_fetch_assoc
  • pg_fetch_result »
  • PHP Manual
  • PostgreSQL
  • Выбирает строку результата запроса и возвращает данные в виде объекта

pg_fetch_object

(PHP 4, PHP 5, PHP 7)

pg_fetch_object — Выбирает строку результата запроса и возвращает данные в виде объекта

Описание

object pg_fetch_object ( resource $result [, int $row [, int $result_type = PGSQL_ASSOC ]] )
object pg_fetch_object ( resource $result [, int $row [, string $class_name [, array $params ]]] )

pg_fetch_object() возвращает объект, свойства которого соответствуют именам полей выборки. Также функция может создать экземпляр конкретного класса и передать параметры его конструктору.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

По скорости функция идентична pg_fetch_array() и немного медленней pg_fetch_row() (разница незначительна).

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен или равен NULL, берется следующая по очереди строка.

result_type

Устарел и не используется.

class_name

Имя класса создаваемого и возвращаемого объекта. Если не задано, функция создаст экземпляр класса stdClass.

params

Необязательный аргумент. Массив параметров для передачи в конструктор создаваемого объекта.

Возвращаемые значения

object, имена и значения свойств которого соответствуют именам и значениям полей результата запроса. Значения NULL базы данных преобразуются в PHP NULL.

FALSE, когда row превышает число строк в результате запроса, когда строк в результате не осталось, и при прочих ошибках.

Примеры

Пример #1 Пример использования pg_fetch_object()

<?php

$database = "store";

$db_conn = pg_connect("host=localhost port=5432 dbname=$database");
if (!$db_conn) {
  echo "Невозможно соединиться с postgres базой $database\n";
  exit;
}

$qu = pg_query($db_conn, "SELECT * FROM books ORDER BY author");

while ($data = pg_fetch_object($qu)) {
  echo $data->author . " (";
  echo $data->year . "): ";
  echo $data->title . "<br />";
}

pg_free_result($qu);
pg_close($db_conn);

?>

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_fetch_array() - Возвращает строку результата в виде массива
  • pg_fetch_assoc() - Выбирает строку результата запроса и помещает данные в ассоциативный массив
  • pg_fetch_row() - Выбирает строку результата запроса и помещает данные в массив
  • pg_fetch_result() - Возвращает запись из результата запроса


Возвращает запись из результата запроса

  • « pg_fetch_object
  • pg_fetch_row »
  • PHP Manual
  • PostgreSQL
  • Возвращает запись из результата запроса

pg_fetch_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_fetch_result — Возвращает запись из результата запроса

Описание

string pg_fetch_result ( resource $result , int $row , mixed $field )
string pg_fetch_result ( resource $result , mixed $field )

pg_fetch_result() возвращает значение ячейки таблицы результата запроса.

Замечание:

Прежнее наименование функции: pg_result().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен, берется следующая по очереди строка.

field

Имя или номер поля выбираемого значения. Поля нумеруются с нуля.

Возвращаемые значения

Логические значения возвращаются как "t" или "f". Остальные типы, включая массивы, возвращаются в виде строк в стандартном формате PostgreSQL, аналогично выводу программы psql. Значения NULL базы данных преобразуются в PHP NULL.

FALSE, когда row превышает число строк в результате запроса, и при прочих ошибках.

Примеры

Пример #1 Пример использования pg_fetch_result()

<?php
$db = pg_connect("dbname=users user=me") || die();

$res = pg_query($db, "SELECT 1 UNION ALL SELECT 2");

$val = pg_fetch_result($res, 1, 0);

echo "Первое поле во второй строчке результата это: ", $val, "\n";
?>

Результат выполнения данного примера:

Первое поле во второй строчке результата это: 2

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_fetch_array() - Возвращает строку результата в виде массива


Выбирает строку результата запроса и помещает данные в массив

  • « pg_fetch_result
  • pg_field_is_null »
  • PHP Manual
  • PostgreSQL
  • Выбирает строку результата запроса и помещает данные в массив

pg_fetch_row

(PHP 4, PHP 5, PHP 7)

pg_fetch_row — Выбирает строку результата запроса и помещает данные в массив

Описание

array pg_fetch_row ( resource $result [, int $row ] )

pg_fetch_row() выбирает одну строку из результата запроса result.

Замечание: Эта функция устанавливает NULL-поля в значение NULL PHP.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер выбираемой из результата запроса строки. Нумерация начинается с нуля. Если аргумент опущен или равен NULL, берется следующая по очереди строка.

Возвращаемые значения

Численно индексированный массив значений из строки результата запроса. Индексация начинается с нуля. Значения представляются в виде строк. Значения NULL базы данных преобразуются в PHP NULL.

FALSE, когда row превышает число строк в результате запроса, когда строк в результате не осталось, и при прочих ошибках.

Примеры

Пример #1 Пример использования pg_fetch_row()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Произошла ошибка.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_fetch_array() - Возвращает строку результата в виде массива
  • pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result() - Возвращает запись из результата запроса


Проверка поля на значение SQL NULL

  • « pg_fetch_row
  • pg_field_name »
  • PHP Manual
  • PostgreSQL
  • Проверка поля на значение SQL NULL

pg_field_is_null

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_is_null — Проверка поля на значение SQL NULL

Описание

int pg_field_is_null ( resource $result , int $row , mixed $field )
int pg_field_is_null ( resource $result , mixed $field )

pg_field_is_null() проверяет, содержит ли ячейка результата запроса значение SQL NULL.

Замечание:

Прежнее наименование функции: pg_fieldisnull().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер строки результата запроса с нужным полем. Нумерация строк начинается с нуля. Если аргумент не задан, будет выбрана текущая строка.

field

Номер поля (начиная с нуля) как integer или имя поля как string.

Возвращаемые значения

Возвращает 1, если выбранное значение SQL NULL, 0 для других значений. Функция вернет FALSE, если номер строки будет вне допустимого диапазона, и при прочих ошибках.

Примеры

Пример #1 Пример использования pg_field_is_null()

<?php
  $dbconn = pg_connect("dbname=publisher") or die ("Невозможно соединиться с базой");
  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  if ($res) {
      if (pg_field_is_null($res, 0, "year") == 1) {
          echo "Значение поля year null.\n";
      }
      if (pg_field_is_null($res, 0, "year") == 0) {
          echo "Значение поля year не null.\n";
    }
 }
?>


Возвращает наименование поля

  • « pg_field_is_null
  • pg_field_num »
  • PHP Manual
  • PostgreSQL
  • Возвращает наименование поля

pg_field_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_name — Возвращает наименование поля

Описание

string pg_field_name ( resource $result , int $field_number )

pg_field_name() возвращает имя поля результата запроса result с порядковым номером field_number. Нумерация полей начинается с нуля.

Замечание:

Прежнее название функции: pg_fieldname().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_number

Номер поля, начиная с нуля.

Возвращаемые значения

Наименование поля, либо FALSE в случае ошибки.

Примеры

Пример #1 Получение информации о полях выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с базой");

  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "column $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "fieldname: $fieldname\n";
      echo "printed length: " . pg_field_prtlen($res, $fieldname) . " characters\n";
      echo "storage length: " . pg_field_size($res, $j) . " bytes\n";
      echo "field type: " . pg_field_type($res, $j) . " \n\n";
  }
?>

Результат выполнения данного примера:

column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar

column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2

column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar

Смотрите также

  • pg_field_num() - Возвращает порядковый номер именованного поля


Возвращает порядковый номер именованного поля

  • « pg_field_name
  • pg_field_prtlen »
  • PHP Manual
  • PostgreSQL
  • Возвращает порядковый номер именованного поля

pg_field_num

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_num — Возвращает порядковый номер именованного поля

Описание

int pg_field_num ( resource $result , string $field_name )

pg_field_num() вернет порядковый номер поля с именем field_name в результате запроса result.

Замечание:

Прежнее название функции: pg_fieldnum().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_name

Наименование поля.

Возвращаемые значения

Номер поля (начиная с нуля), либо -1 в случае ошибки.

Примеры

Пример #1 Получение информации о полях выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с базой");

  $res = pg_query($dbconn, "select author, year, title from authors where author = 'Orwell'");

  echo "Столбец 'title' - это поле с номером: ", pg_field_num($res, 'title');
?>

Результат выполнения данного примера:

Столбец 'title' - это поле с номером: 2

Смотрите также

  • pg_field_name() - Возвращает наименование поля


Возвращает количество печатаемых символов

  • « pg_field_num
  • pg_field_size »
  • PHP Manual
  • PostgreSQL
  • Возвращает количество печатаемых символов

pg_field_prtlen

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_prtlen — Возвращает количество печатаемых символов

Описание

int pg_field_prtlen ( resource $result , int $row_number , mixed $field_name_or_number )
int pg_field_prtlen ( resource $result , mixed $field_name_or_number )

pg_field_prtlen() возвращает длину строки (количество символов) значения поля при выводе результата result. Строки нумеруются с нуля. Функция вернет FALSE в случае ошибки.

field_name_or_number Номер или имя выбранного поля. Может передаваться либо как integer, либо как string. Если передается значение типа integer, PHP распознает его как номер, в противном случае как наименование поля.

Ознакомьтесь с примерами на странице с описанием функции pg_field_name().

Замечание:

Прежнее название функции: pg_fieldprtlen().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

row

Номер строки результата запроса с нужным полем. Нумерация строк начинается с нуля. Если аргумент не задан, будет выбрана текущая строка.

Возвращаемые значения

Длина строки при выводе значения поля, либо FALSE в случае ошибки.

Примеры

Пример #1 Получение информации о полях выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с базой");

  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "column $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "fieldname: $fieldname\n";
      echo "printed length: " . pg_field_prtlen($res, $fieldname) . " characters\n";
      echo "storage length: " . pg_field_size($res, $j) . " bytes\n";
      echo "field type: " . pg_field_type($res, $j) . " \n\n";
  }
?>

Результат выполнения данного примера:

column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar

column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2

column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar

Смотрите также

  • pg_field_size() - Возвращает размер поля


Возвращает размер поля

  • « pg_field_prtlen
  • pg_field_table »
  • PHP Manual
  • PostgreSQL
  • Возвращает размер поля

pg_field_size

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_size — Возвращает размер поля

Описание

int pg_field_size ( resource $result , int $field_number )

pg_field_size() возвращает объем памяти (в байтах), занимаемый значением поля результата запроса PostgreSQL result.

Замечание:

Прежнее название функции: pg_fieldsize().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_number

Порядковый номер поля результата запроса, начиная с нуля.

Возвращаемые значения

Требуемый объем памяти (в байтах) для хранения значения поля. -1 указывает на переменный размер поля. FALSE в случае ошибки.

Примеры

Пример #1 Получение информации о полях выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с базой");

  $res = pg_query($dbconn, "select * from authors where author = 'Orwell'");
  $i = pg_num_fields($res);
  for ($j = 0; $j < $i; $j++) {
      echo "column $j\n";
      $fieldname = pg_field_name($res, $j);
      echo "fieldname: $fieldname\n";
      echo "printed length: " . pg_field_prtlen($res, $fieldname) . " characters\n";
      echo "storage length: " . pg_field_size($res, $j) . " bytes\n";
      echo "field type: " . pg_field_type($res, $j) . " \n\n";
  }
?>

Результат выполнения данного примера:

column 0
fieldname: author
printed length: 6 characters
storage length: -1 bytes
field type: varchar

column 1
fieldname: year
printed length: 4 characters
storage length: 2 bytes
field type: int2

column 2
fieldname: title
printed length: 24 characters
storage length: -1 bytes
field type: varchar

Смотрите также

  • pg_field_prtlen() - Возвращает количество печатаемых символов
  • pg_field_type() - Возвращает имя типа заданного поля


Возвращает наименование или идентификатор таблицы, содержащей заданное поле

  • « pg_field_size
  • pg_field_type_oid »
  • PHP Manual
  • PostgreSQL
  • Возвращает наименование или идентификатор таблицы, содержащей заданное поле

pg_field_table

(PHP 5 >= 5.2.0, PHP 7)

pg_field_table — Возвращает наименование или идентификатор таблицы, содержащей заданное поле

Описание

mixed pg_field_table ( resource $result , int $field_number [, bool $oid_only = false ] )

pg_field_table() возвращает имя таблицы, которой принадлежит заданное поле. Если в качестве аргумента oid_only передается TRUE, функция вернет oid-идентификатор таблицы.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_number

Порядковый номер поля результата запроса, начиная с нуля.

oid_only

По умолчанию функция возвращает название таблицы, содержащей заданное поле. Если параметр oid_only равен TRUE, то функция вернет oid таблицы.

Возвращаемые значения

При успешном завершении название таблицы или ее oid. Либо FALSE при неудаче.

Примеры

Пример #1 Получение информации о поле выборки

<?php
$dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с базой");

$res = pg_query($dbconn, "SELECT bar FROM foo");

echo pg_field_table($res, 0);
echo pg_field_table($res, 0, true);

$res = pg_query($dbconn, "SELECT version()");
var_dump(pg_field_table($res, 0));
?>

Результатом выполнения данного примера будет что-то подобное:

foo
14379580

bool(false)

Примечания

Замечание:

Возврат oid таблицы значительно быстрее, чем ее названия, потому как определение названия требует выполнения дополнительного запроса к системной таблице базы данных.

Смотрите также

  • pg_field_name() - Возвращает наименование поля
  • pg_field_type() - Возвращает имя типа заданного поля


Возвращает идентификатор типа заданного поля

  • « pg_field_table
  • pg_field_type »
  • PHP Manual
  • PostgreSQL
  • Возвращает идентификатор типа заданного поля

pg_field_type_oid

(PHP 5 >= 5.1.0, PHP 7)

pg_field_type_oid — Возвращает идентификатор типа заданного поля

Описание

int pg_field_type_oid ( resource $result , int $field_number )

pg_field_type_oid() возвращает целочисленный идентификатор базового типа (OID) значений колонки результата запроса result с номером field_number.

Более подробную информацию о типе значений можно получить, отправив запрос с полученным OID к системной таблице PostgreSQL pg_type. Функция PostgreSQL format_type() преобразует OID в стандартное имя типа SQL.

Замечание:

Если в качестве типа значений используется PostgreSQL домен (вместо базового типа), функция вернет OID типа внутри домена, а не OID самого домена.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_number

Порядковый номер поля, начиная с нуля.

Возвращаемые значения

OID базового типа значений поля, либо FALSE в случае ошибки.

Примеры

Пример #1 Получение информации о полях выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с базой");

  // Допустим, 'title' имеет тип varchar
  $res = pg_query($dbconn, "select title from authors where author = 'Orwell'");

  echo "Title field type OID: ", pg_field_type_oid($res, 0);
?>

Результат выполнения данного примера:

Title field type OID: 1043

Смотрите также

  • pg_field_type() - Возвращает имя типа заданного поля
  • pg_field_prtlen() - Возвращает количество печатаемых символов
  • pg_field_name() - Возвращает наименование поля


Возвращает имя типа заданного поля

  • « pg_field_type_oid
  • pg_flush »
  • PHP Manual
  • PostgreSQL
  • Возвращает имя типа заданного поля

pg_field_type

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_field_type — Возвращает имя типа заданного поля

Описание

string pg_field_type ( resource $result , int $field_number )

pg_field_type() возвращает строку, содержащую имя базового типа значений колонки результата запроса result с номером field_number.

Замечание:

Если в качестве типа значений используется PostgreSQL домен (вместо базового типа), функция вернет имя типа внутри домена, а не имя самого домена.

Замечание:

Прежнее название функции: pg_fieldtype().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

field_number

Порядковый номер поля, начиная с нуля.

Возвращаемые значения

Строка, содержащая имя базового типа значений поля, либо FALSE в случае ошибки.

Примеры

Пример #1 Получение информации о поле выборки

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с базой");

  // Положим, 'title' имеет тип varchar
  $res = pg_query($dbconn, "select title from authors where author = 'Orwell'");

  echo "Title field type: ", pg_field_type($res, 0);
?>

Результат выполнения данного примера:

Title field type: varchar

Смотрите также

  • pg_field_prtlen() - Возвращает количество печатаемых символов
  • pg_field_name() - Возвращает наименование поля
  • pg_field_type_oid() - Возвращает идентификатор типа заданного поля


Flush outbound query data on the connection

  • « pg_field_type
  • pg_free_result »
  • PHP Manual
  • PostgreSQL
  • Flush outbound query data on the connection

pg_flush

(PHP 5 >= 5.6.0, PHP 7)

pg_flush — Flush outbound query data on the connection

Описание

mixed pg_flush ( resource $connection )

pg_flush() flushes any outbound query data waiting to be sent on the connection.

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

Returns TRUE if the flush was successful or no data was waiting to be flushed, 0 if part of the pending data was flushed but more remains или FALSE в случае возникновения ошибки.


Очистка результата запроса и освобождение памяти

  • « pg_flush
  • pg_get_notify »
  • PHP Manual
  • PostgreSQL
  • Очистка результата запроса и освобождение памяти

pg_free_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_free_result — Очистка результата запроса и освобождение памяти

Описание

bool pg_free_result ( resource $result )

pg_free_result() освобождает память, занятую результатом запроса PostgreSQL resource.

Вызывать эту функцию следует только в случае нехватки памяти при выполнении скрипта. В любом случае память будет освобождена автоматически по окончании работы скрипта.

Замечание:

Прежнее название функции: pg_freeresult().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_free_result()

<?php
$db = pg_connect("dbname=users user=me") || die();

$res = pg_query($db, "SELECT 1 UNION ALL SELECT 2");

$val = pg_fetch_result($res, 1, 0);

echo "Первое поле во второй строчке: ", $val, "\n";

pg_free_result($res);
?>

Результат выполнения данного примера:

Первое поле во второй строчке: 2

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_query_params() - Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса
  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат


Получение SQL NOTIFY сообщения

  • « pg_free_result
  • pg_get_pid »
  • PHP Manual
  • PostgreSQL
  • Получение SQL NOTIFY сообщения

pg_get_notify

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_get_notify — Получение SQL NOTIFY сообщения

Описание

array pg_get_notify ( resource $connection [, int $result_type ] )

pg_get_notify() получает уведомления, сгенерированные командой SQL NOTIFY. Для получения уведомлений используйте команду SQL LISTEN.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

result_type

Необязательный аргумент, указывающий, каким образом возвращаемый массив (array) будет проиндексирован.result_type - константа, и может принимать следующие значения: PGSQL_ASSOC, PGSQL_NUM или PGSQL_BOTH. При передаче PGSQL_ASSOC функция pg_get_notify() вернет ассоциативный массив, при передаче PGSQL_NUM - численно индексированный, в случае PGSQL_BOTH (по умолчанию) будут возвращены оба массива.

Возвращаемые значения

Массив(array), содержащий NOTIFY сообщение и PID сервера БД. С версии PHP 5.4.0 и если поддерживается сервером, массив также содержит версию сервера и полезную нагрузку. Если никаких уведомлений не ожидается, функция вернет FALSE.

Примеры

Пример #1 PostgreSQL NOTIFY сообщение

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

// Слушаем сообщение 'author_updated' из другого процесса
pg_query($conn, 'LISTEN author_updated;');
$notify = pg_get_notify($conn);
if (!$notify) {
  echo "Нет сообщений\n";
} else {
  print_r($notify);
}
?>

Смотрите также

  • pg_get_pid() - Получает ID процесса сервера БД


Получает ID процесса сервера БД

  • « pg_get_notify
  • pg_get_result »
  • PHP Manual
  • PostgreSQL
  • Получает ID процесса сервера БД

pg_get_pid

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_get_pid — Получает ID процесса сервера БД

Описание

int pg_get_pid ( resource $connection )

pg_get_pid() получает PID сервера базы данных. PID полезен, когда требуется определить, какой процесс отправил NOTIFY сообщение, принятое функцией pg_get_notify() (точнее узнать, сервер его отправил или какой-то другой процесс).

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

ID процесса сервера баз данных.

Примеры

Пример #1 PID сервера PostgreSQL

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

// PID сервера БД. Сравните его с PID возвращаемым pg_get_notify()
$pid = pg_get_pid($conn);
?>

Смотрите также

  • pg_get_notify() - Получение SQL NOTIFY сообщения


Получение результата асинхронного запроса

  • « pg_get_pid
  • pg_host »
  • PHP Manual
  • PostgreSQL
  • Получение результата асинхронного запроса

pg_get_result

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_get_result — Получение результата асинхронного запроса

Описание

resource pg_get_result ([ resource $connection ] )

pg_get_result() получает ресурс результата асинхронного
запроса, запущенного функциями pg_send_query(),
pg_send_query_params() или pg_send_execute().

pg_send_query() и другие функции, посылающие асинхронные запросы, может посылать сразу несколько запросов на сервер. Функция pg_get_result() получит результаты всех запросов по очереди.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

Ресурс результата запроса, либо FALSE, когда доступных результатов больше нет.

Примеры

Пример #1 Пример использования pg_get_result()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с сервером");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Первый вызов pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 имеет $rows1 записей\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Второй вызов pg_get_result(): $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 имеет $rows2 записей\n";
?>

Результат выполнения данного примера:

Первый вызов pg_get_result(): Resource id #3
Resource id #3 имеет 3 записей

Второй вызов pg_get_result(): Resource id #4
Resource id #4 имеет 1 записей

Смотрите также

  • pg_send_query() - Отправляет асинхронный запрос


Возвращает имя хоста, соответствующего подключению

  • « pg_get_result
  • pg_insert »
  • PHP Manual
  • PostgreSQL
  • Возвращает имя хоста, соответствующего подключению

pg_host

(PHP 4, PHP 5, PHP 7)

pg_host — Возвращает имя хоста, соответствующего подключению

Описание

string pg_host ([ resource $connection ] )

pg_host() возвращает имя хоста, с которым установлено заданное PostgreSQL соединение connection.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Строка, содержащая имя подключенного через connection хоста, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_host()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Успешно подключились к : " . pg_host($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL
  • pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL


Заносит данные из массива в таблицу базы данных

  • « pg_host
  • pg_last_error »
  • PHP Manual
  • PostgreSQL
  • Заносит данные из массива в таблицу базы данных

pg_insert

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_insert — Заносит данные из массива в таблицу базы данных

Описание

mixed pg_insert ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] )

pg_insert() вставляет записи из массива assoc_array в таблицу table_name. Если задан аргумент options, значения массива будут преобразованы функцией pg_convert() соответствии с параметрами из этого аргумента.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы для вставки данных. Количество колонок в таблице table_name должно быть не меньше, чем элементов в массиве assoc_array.

assoc_array

Ассоциативный массив(array), в котором ключи являются названиями колонок таблицы table_name, а значения - записи, которые необходимо вставить в эти колонки.

options

Комбинация констант PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC и PGSQL_DML_STRING. Если в числе прочих передается PGSQL_DML_STRING в параметре options, функция вернет строку запроса. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

Возвращаемые значения

Возвращает ресурс соединения при успехе, или FALSE в случае возникновения ошибки. Возвращает строку(string), если PGSQL_DML_STRING включена в список параметров аргумента options.

Примеры

Пример #1 Пример использования pg_insert()

<?php
  $dbconn = pg_connect('dbname=foo');
  // Это безопасно с тех пор как $_POST преобразуется автоматически
  $res = pg_insert($dbconn, 'post_log', $_POST);
  if ($res) {
      echo "Данные из POST успешно внесены в журнал\n";
  } else {
      echo "Пользователь прислал неверные данные\n";
  }
?>

Список изменений

Версия | Описание
5.6.0 | Если не передана константа PGSQL_DML_STRING, функция, в случае успешного завершения, возвращает ресурс соединения, а не TRUE.
5.6.0 | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
5.5.3/5.4.19 | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах


Получает сообщение о последней произошедшей ошибке на соединении с базой данных

  • « pg_insert
  • pg_last_notice »
  • PHP Manual
  • PostgreSQL
  • Получает сообщение о последней произошедшей ошибке на соединении с базой данных

pg_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_last_error — Получает сообщение о последней произошедшей ошибке на соединении с базой данных

Описание

string pg_last_error ([ resource $connection ] )

pg_last_error() возвращает сообщение о последней ошибке на заданном соединении connection.

Сообщения об ошибках могут перезаписываться при внутренних вызовах PostgreSQL (libpq) функций. Если внутри модуля PostgreSQL произойдет несколько ошибок, сообщение может оказаться неинформативным.

Для обработки ошибок лучше использовать функции pg_result_error(), pg_result_error_field(), pg_result_status() и pg_connection_status().

Замечание:

Прежнее название функции: pg_errormessage().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Строка, содержащая сообщение о последней ошибке, произошедшей на соединении connection, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_last_error()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с сервером");

  // Неудачный запрос
  $res = pg_query($dbconn, "select * from doesnotexist");

  echo pg_last_error($dbconn);
?>

Смотрите также

  • pg_result_error() - Возвращает сообщение об ошибке, связанной с запросом результата
  • pg_result_error_field() - Возвращает конкретное поле из отчета об ошибках


Возвращает последнее уведомление от сервера PostgreSQL

  • « pg_last_error
  • pg_last_oid »
  • PHP Manual
  • PostgreSQL
  • Возвращает последнее уведомление от сервера PostgreSQL

pg_last_notice

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

pg_last_notice — Возвращает последнее уведомление от сервера PostgreSQL

Описание

string pg_last_notice ( resource $connection )

pg_last_notice() возвращает последнее уведомление сгенерированное сервером PostgreSQL на заданном соединении connection. В некоторых случаях сервер посылает уведомления, например при создании в таблице колонки типа SERIAL.

Благодаря pg_last_notice() не требуется делать лишних запросов, чтобы узнать посылала ваша транзакция уведомления или нет.

Можно отключить отслеживание уведомлений установкой в 1 параметра pgsql.ignore_notice в файле php.ini.

Можно отключить журналирование уведомлений установкой в 0 параметра pgsql.log_notice в файле php.ini. Пока этот параметр установлен в 0, уведомления невозможно записать в журнал выполнения.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

Строка, содержащая последнее уведомление на заданном соединении, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_last_notice()

<?php
  $pgsql_conn = pg_connect("dbname=mark host=localhost");

  $res = pg_query("CREATE TABLE test (id SERIAL)");

  $notice = pg_last_notice($pgsql_conn);

  echo $notice;
?>

Результат выполнения данного примера:

CREATE TABLE will create implicit sequence "test_id_seq" for "serial" column "test.id"

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_last_error() - Получает сообщение о последней произошедшей ошибке на соединении с базой данных


Возвращает OID последней добавленной в базу строки

  • « pg_last_notice
  • pg_lo_close »
  • PHP Manual
  • PostgreSQL
  • Возвращает OID последней добавленной в базу строки

pg_last_oid

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_last_oid — Возвращает OID последней добавленной в базу строки

Описание

string pg_last_oid ( resource $result )

pg_last_oid() используется для определения OID, соответствующего вставленной в таблицу строке.

Поле OID таблиц баз данных стало необязательным, начиная с версии PostgreSQL 7.2, а с версии 8.1 перестанет добавляться в таблицы по умолчанию. Если поле OID таблицы не задано, используйте функцию pg_result_status() для проверки успешности вставки записей в таблицу.

Чтобы получить значение SERIAL поля после вставки строки в таблицу, используйте функцию PostgreSQL CURRVAL, передав ей имя последовательности, значение которой нужно получить. Чтобы узнать имя последовательности, необходимо использовать функцию pg_get_serial_sequence (PostgreSQL 8.0).

В PostgreSQL 8.1 есть функция LASTVAL, возвращающая значение наиболее часто используемой за сессию последовательности. Так можно избежать необходимость задавать название последовательности, таблицы или колонки.

Замечание:

Прежнее название функции: pg_getlastoid().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

Возвращаемые значения

Строка, содержащая OID последней вставленной строки на соединении connection, либо FALSE, если произошла ошибка или поле OID недоступно.

Примеры

Пример #1 Пример использования pg_last_oid()

<?php
  // Подключение к базе данных
  pg_connect("dbname=mark host=localhost");

  // Создание тестовой таблицы
  pg_query("CREATE TABLE test (a INTEGER) WITH OIDS");

  // Вставка данных в таблицу
  $res = pg_query("INSERT INTO test VALUES (1)");

  $oid = pg_last_oid($res);
?>

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_result_status() - Возвращает состояние результата запроса


Закрывает большой объект

  • « pg_last_oid
  • pg_lo_create »
  • PHP Manual
  • PostgreSQL
  • Закрывает большой объект

pg_lo_close

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_close — Закрывает большой объект

Описание

bool pg_lo_close ( resource $large_object )

pg_lo_close() закрывает большой объект. large_object - ресурс большого объекта, созданный функцией pg_lo_open().

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loclose().

Список параметров

result

Ресурс большого объекта PostgreSQL (large object, LOB) возвращаемый функцией pg_lo_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_lo_close()

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "large object data");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>

Смотрите также

  • pg_lo_open() - Открывает большой объект базы данных
  • pg_lo_create() - Создает большой объект
  • pg_lo_import() - Импорт большого объекта из файла


Создает большой объект

  • « pg_lo_close
  • pg_lo_export »
  • PHP Manual
  • PostgreSQL
  • Создает большой объект

pg_lo_create

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_create — Создает большой объект

Описание

int pg_lo_create ([ resource $connection [, mixed $object_id ]] )
int pg_lo_create ( mixed $object_id )

pg_lo_create() создает большой объект и возвращает его OID. Режимы доступа PostgreSQL INV_READ, INV_WRITE, и INV_ARCHIVE не поддерживаются, объект всегда создается с доступом на чтение и запись. Режим INV_ARCHIVE убран из PostgreSQL версий 6.3 и выше.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Вместо использования интерфейса больших объектов (который не имеет контроля доступа и весьма громоздкий сам по себе) пользуйтесь полями PostgreSQL типа bytea для хранения двоичных данных и функцией pg_escape_bytea() для их экранирования.

Замечание:

Прежнее название функции: pg_locreate().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

object_id

Если задан аргумент object_id, функция попытается создать объект с этим идентификатором, в противном случае будет использован свободный идентификатор, назначенный сервером. Этот аргумент появился в PHP 5.3 и основан на функционале, впервые реализованном в PostgreSQL 8.1.

Возвращаемые значения

OID большого объекта, либо FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный параметр object_id.

Примеры

Пример #1 Пример использования pg_lo_create()

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "large object data");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>


Вывод большого объекта в файл

  • « pg_lo_create
  • pg_lo_import »
  • PHP Manual
  • PostgreSQL
  • Вывод большого объекта в файл

pg_lo_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_export — Вывод большого объекта в файл

Описание

bool pg_lo_export ([ resource $connection ], int $oid , string $pathname )

pg_lo_export() выбирает большой объект из базы данных и сохраняет его данные локально в файловой системе.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loexport().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

oid

OID большого объекта в базе данных.

pathname

Полный путь и имя файла в клиентской файловой системе для записи данных большого объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_lo_export()

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   $handle = pg_lo_open($database, $oid, "w");
   pg_lo_write($handle, "large object data");
   pg_lo_close($handle);
   pg_lo_export($database, $oid, '/tmp/lob.dat');
   pg_query($database, "commit");
?>

Смотрите также

  • pg_lo_import() - Импорт большого объекта из файла


Импорт большого объекта из файла

  • « pg_lo_export
  • pg_lo_open »
  • PHP Manual
  • PostgreSQL
  • Импорт большого объекта из файла

pg_lo_import

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_import — Импорт большого объекта из файла

Описание

int pg_lo_import ([ resource $connection ], string $pathname [, mixed $object_id ] )

pg_lo_import() создает большой объект в базе данных, используя локальный файл в качестве источника данных.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание:

Прежнее название функции: pg_loimport().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

pathname

Полный путь и имя файла в клиентской файловой системе для чтения данных большого объекта.

object_id

Если задан аргумент object_id, функция попытается создать объект с этим идентификатором, в противном случае будет использован свободный идентификатор, назначенный сервером. Этот аргумент появился в PHP 5.3 и основан на функционале, впервые реализованном в PostgreSQL 8.1.

Возвращаемые значения

OID созданного большого объекта, либо FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный аргумент object_id.

Примеры

Пример #1 Пример использования pg_lo_import()

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_import($database, '/tmp/lob.dat');
   pg_query($database, "commit");
?>

Смотрите также

  • pg_lo_export() - Вывод большого объекта в файл
  • pg_lo_open() - Открывает большой объект базы данных


Открывает большой объект базы данных

  • « pg_lo_import
  • pg_lo_read_all »
  • PHP Manual
  • PostgreSQL
  • Открывает большой объект базы данных

pg_lo_open

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_open — Открывает большой объект базы данных

Описание

resource pg_lo_open ( resource $connection , int $oid , string $mode )

pg_lo_open() открывает большой объект базы данных и возвращает его ресурс.

Внимание

Не следует закрывать соединение с базой данных до того, как завершится работа с большим объектом.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loopen().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

oid

OID большого объекта в базе данных.

mode

Режим доступа к объекту. Возможные значения: "r" - только для чтения, "w" - только для записи, "rw" - для чтения и записи.

Возвращаемые значения

Ресурс большого объекта, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_lo_open()

<?php
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $oid = pg_lo_create($database);
   echo "$oid\n";
   $handle = pg_lo_open($database, $oid, "w");
   echo "$handle\n";
   pg_lo_write($handle, "large object data");
   pg_lo_close($handle);
   pg_query($database, "commit");
?>

Смотрите также

  • pg_lo_close() - Закрывает большой объект
  • pg_lo_create() - Создает большой объект


Читает содержимое большого объекта и посылает напрямую в броузер

  • « pg_lo_open
  • pg_lo_read »
  • PHP Manual
  • PostgreSQL
  • Читает содержимое большого объекта и посылает напрямую в броузер

pg_lo_read_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_read_all — Читает содержимое большого объекта и посылает напрямую в броузер

Описание

int pg_lo_read_all ( resource $large_object )

pg_lo_read_all() читает большой объект и посылает данные напрямую в броузер после отправки всех необходимых заголовков. Используется в основном для пересылки двоичных данных, таких как изображения или звук.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loreadall().

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

Возвращаемые значения

Количество прочитанных байт, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_lo_read_all()

<?php
   header('Content-type: image/jpeg');
   $image_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $image_oid, "r");
   pg_lo_read_all($handle);
   pg_query($database, "commit");
?>

Смотрите также

  • pg_lo_read() - Читает данные большого объекта


Читает данные большого объекта

  • « pg_lo_read_all
  • pg_lo_seek »
  • PHP Manual
  • PostgreSQL
  • Читает данные большого объекта

pg_lo_read

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_read — Читает данные большого объекта

Описание

string pg_lo_read ( resource $large_object [, int $len = 8192 ] )

pg_lo_read() читает len байт большого объекта и возвращает их в виде строки.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_loread().

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

len

Необязательный аргумент. Количество байт, которые необходимо прочитать.

Возвращаемые значения

Строка(string), содержащая len байт большого объекта, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_lo_read()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   $data = pg_lo_read($handle, 50000);
   pg_query($database, "commit");
   echo $data;
?>

Смотрите также

  • pg_lo_read_all() - Читает содержимое большого объекта и посылает напрямую в броузер


Перемещает внутренний указатель большого объекта

  • « pg_lo_read
  • pg_lo_tell »
  • PHP Manual
  • PostgreSQL
  • Перемещает внутренний указатель большого объекта

pg_lo_seek

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_seek — Перемещает внутренний указатель большого объекта

Описание

bool pg_lo_seek ( resource $large_object , int $offset [, int $whence = PGSQL_SEEK_CUR ] )

pg_lo_seek() перемещает внутренний указатель большого объекта.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

offset

Количество байт, на сколько требуется переместить указатель.

whence

Одна из констант: PGSQL_SEEK_SET (перемещать от начала объекта), PGSQL_SEEK_CUR (перемещать с текущей позиции) или PGSQL_SEEK_END (отступать от конца объекта).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_lo_seek()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Пропустить первые 50000 байт
   pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
   // Прочитать следующие 10000 байт
   $data = pg_lo_read($handle, 10000);
   pg_query($database, "commit");
   echo $data;
?>

Список изменений

Версия | Описание
5.6.0 | Добавлена поддержка больших 64-битных объектов PostgreSQL 9.3. И клиент и сервер должны поддерживать PostgreSQL 9.3, и PHP должен быть собран 64-битным и использовать 64-битные большие объекты.

Смотрите также

  • pg_lo_tell() - Возвращает текущее положение внутреннего указателя большого объекта


Возвращает текущее положение внутреннего указателя большого объекта

  • « pg_lo_seek
  • pg_lo_truncate »
  • PHP Manual
  • PostgreSQL
  • Возвращает текущее положение внутреннего указателя большого объекта

pg_lo_tell

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_tell — Возвращает текущее положение внутреннего указателя большого объекта

Описание

int pg_lo_tell ( resource $large_object )

pg_lo_tell() возвращает текущую позицию (отступ от начала) внутреннего указателя большого объекта.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

Возвращаемые значения

Текущая позиция внутреннего указателя (количество байт от начала) большого объекта. В случае ошибки функция вернет отрицательное значение.

Примеры

Пример #1 Пример использования pg_lo_tell()

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Пропустить первые 50000 байт
   pg_lo_seek($handle, 50000, PGSQL_SEEK_SET);
   // Проверим, на сколько мы отступили
   $offset = pg_lo_tell($handle);
   echo "Seek position is: $offset";
   pg_query($database, "commit");
?>

Результат выполнения данного примера:

Seek position is: 50000

Список изменений

Версия | Описание
5.6.0 | Добавлена поддержка больших 64-битных объектов PostgreSQL 9.3. И клиент и сервер должны поддерживать PostgreSQL 9.3, и PHP должен быть собран 64-битным и использовать 64-битные большие объекты.

Смотрите также

  • pg_lo_seek() - Перемещает внутренний указатель большого объекта


Truncates a large object

  • « pg_lo_tell
  • pg_lo_unlink »
  • PHP Manual
  • PostgreSQL
  • Truncates a large object

pg_lo_truncate

(Информация о версии неизвестна, возможно, только в SVN)

pg_lo_truncate — Truncates a large object

Описание

bool pg_lo_truncate ( resource $large_object , int $size )

pg_lo_truncate() truncates a large object resource.

To use the large object interface, it is necessary to enclose it within a transaction block.

Список параметров

large_object

PostgreSQL large object (LOB) resource, returned by pg_lo_open().

size

The number of bytes to truncate.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pg_lo_truncate() example

<?php
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "r");
   // Truncate to 0
   pg_lo_truncate($handle, 0);
   pg_query($database, "commit");
   echo $data;
?>

Список изменений

Версия | Описание
5.6.0 | Added truncate function. It supports PostgreSQL 9.3's 64bit large object. Both client and server must support PostgreSQL 9.3 and PHP must be 64bit build to use 64bit large object.

Смотрите также

  • pg_lo_tell() - Возвращает текущее положение внутреннего указателя большого объекта


Удаление большого объекта

  • « pg_lo_truncate
  • pg_lo_write »
  • PHP Manual
  • PostgreSQL
  • Удаление большого объекта

pg_lo_unlink

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_unlink — Удаление большого объекта

Описание

bool pg_lo_unlink ( resource $connection , int $oid )

pg_lo_unlink() удаляет большой объект с идентификатором oid.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_lounlink().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

oid

OID большого объекта в базе данных.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_lo_unlink()

<?php
   // OID удаляемого объекта
   $doc_oid = 189762345;
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   pg_lo_unlink($database, $doc_oid);
   pg_query($database, "commit");
?>

Смотрите также

  • pg_lo_create() - Создает большой объект
  • pg_lo_import() - Импорт большого объекта из файла


Записывает данные в большой объект

  • « pg_lo_unlink
  • pg_meta_data »
  • PHP Manual
  • PostgreSQL
  • Записывает данные в большой объект

pg_lo_write

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_lo_write — Записывает данные в большой объект

Описание

int pg_lo_write ( resource $large_object , string $data [, int $len ] )

pg_lo_write() записывает данные в большой объект, начиная с текущей позиции внутреннего указателя.

Операции с использованием интерфейса больших объектов необходимо заключать в блок транзакции.

Замечание:

Прежнее название функции: pg_lowrite().

Список параметров

large_object

Ресурс большого объекта (LOB) PostgreSQL, возвращаемый функцией pg_lo_open().

data

Данные для записи в большой объект. Если аргумент len задан и меньше размера data, то записаны будут только len байт.

len

Необязательный аргумент. Максимальное количество записываемых байт. Должен быть больше нуля и не превышать размер data. По умолчанию принимается равным размеру data.

Возвращаемые значения

Количество записанных в большой объект байт, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_lo_write()

<?php
   $doc_oid = 189762345;
   $data = "This will overwrite the start of the large object.";
   $database = pg_connect("dbname=jacarta");
   pg_query($database, "begin");
   $handle = pg_lo_open($database, $doc_oid, "w");
   $data = pg_lo_write($handle, $data);
   pg_query($database, "commit");
?>

Смотрите также

  • pg_lo_create() - Создает большой объект
  • pg_lo_open() - Открывает большой объект базы данных


Получение метаданных таблицы

  • « pg_lo_write
  • pg_num_fields »
  • PHP Manual
  • PostgreSQL
  • Получение метаданных таблицы

pg_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_meta_data — Получение метаданных таблицы

Описание

array pg_meta_data ( resource $connection , string $table_name [, bool $extended ] )

pg_meta_data() возвращает определение таблицы table_name в виде массива.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Название таблицы.

extended

Флаг, указывающий, что нужно вернуть расширенные мета-данные. По умолчанию FALSE.

Возвращаемые значения

Массив, содержащий определение таблицы, либо FALSE в случае ошибки.

Примеры

Пример #1 Получение метаданных таблицы

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с сервером");

  $meta = pg_meta_data($dbconn, 'authors');
  if (is_array($meta)) {
      echo '<pre>';
      var_dump($meta);
      echo '</pre>';
  }
?>

Результат выполнения данного примера:

array(3) {
["author"]=>
array(5) {
  ["num"]=>
  int(1)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["year"]=>
array(5) {
  ["num"]=>
  int(2)
  ["type"]=>
  string(4) "int2"
  ["len"]=>
  int(2)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
["title"]=>
array(5) {
  ["num"]=>
  int(3)
  ["type"]=>
  string(7) "varchar"
  ["len"]=>
  int(-1)
  ["not null"]=>
  bool(false)
  ["has default"]=>
  bool(false)
}
}

Список изменений

Версия | Описание
5.6.0 | Больше не является экспериментальной. Добавлено "is enum" атрибутом по умолчанию. Добавлен флаг extended.

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах


Возвращает количество полей в выборке

  • « pg_meta_data
  • pg_num_rows »
  • PHP Manual
  • PostgreSQL
  • Возвращает количество полей в выборке

pg_num_fields

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_num_fields — Возвращает количество полей в выборке

Описание

int pg_num_fields ( resource $result )

pg_num_fields() возвращает количество полей (столбцов) в результате запроса PostgreSQL.

Замечание:

Ранее функция называлась pg_numfields().

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (и прочих).

Возвращаемые значения

Количество полей (столбцов) в выборке. В случае ошибки возвращает -1.

Примеры

Пример #1 Пример использования pg_num_fields()

<?php
$result = pg_query($conn, "SELECT 1, 2");

$num = pg_num_fields($result);

echo "Возвращено полей: " . $num . ".\n";
?>

Результат выполнения данного примера:

Возвращено полей: 2.

Смотрите также

  • pg_num_rows() - Возвращает количество строк в выборке
  • pg_affected_rows() - Возвращает количество затронутых запросом записей (кортежей)


Возвращает количество строк в выборке

  • « pg_num_fields
  • pg_options »
  • PHP Manual
  • PostgreSQL
  • Возвращает количество строк в выборке

pg_num_rows

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_num_rows — Возвращает количество строк в выборке

Описание

int pg_num_rows ( resource $result )

pg_num_rows() возвращает количество строк в результате запроса PostgreSQL.

Замечание:

Ранее функция называлась pg_numrows().

Список параметров

result

Результат запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (и прочими).

Возвращаемые значения

Количество строк в выборке. В случае ошибки возвращает -1.

Примеры

Пример #1 Пример использования pg_num_rows()

<?php
$result = pg_query($conn, "SELECT 1");

$rows = pg_num_rows($result);

echo "Возвращено строк: " . $rows . ".\n";
?>

Результат выполнения данного примера:

Возвращено строк: 1.

Смотрите также

  • pg_num_fields() - Возвращает количество полей в выборке
  • pg_affected_rows() - Возвращает количество затронутых запросом записей (кортежей)


Получение параметров соединения с сервером баз данных

  • « pg_num_rows
  • pg_parameter_status »
  • PHP Manual
  • PostgreSQL
  • Получение параметров соединения с сервером баз данных

pg_options

(PHP 4, PHP 5, PHP 7)

pg_options — Получение параметров соединения с сервером баз данных

Описание

string pg_options ([ resource $connection ] )

pg_options() возвращает строку, содержащую параметры соединения PostgreSQL connection.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Строка, содержащая параметры соединения connection, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_options()

<?php
   $pgsql_conn = pg_connect("dbname=mark host=localhost");
   echo pg_options($pgsql_conn);
?>

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL


Просмотр текущих значений параметров сервера

  • « pg_options
  • pg_pconnect »
  • PHP Manual
  • PostgreSQL
  • Просмотр текущих значений параметров сервера

pg_parameter_status

(PHP 5, PHP 7)

pg_parameter_status — Просмотр текущих значений параметров сервера

Описание

string pg_parameter_status ([ resource $connection ], string $param_name )

Получает текущее значение заданного параметра сервера.

Значения некоторых параметров сервер сообщает автоматически при установлении подключения или при изменении данных значений. Функция pg_parameter_status() может запрашивать подобные значения. Она возвращает значение параметра, если оно определено, либо FALSE в случае ошибки.

Список параметров серверов PostgreSQL версий 8.0 и выше: server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone, и integer_datetimes. (server_encoding, TimeZone, и integer_datetimes не определяются для версий ниже 8.0.) Стоит отметить, что значения server_version, server_encoding и integer_datetimes нельзя изменить после запуска PostgreSQL.

Несмотря на то, что PostgreSQL версий 7.3 и ниже не сообщают значений своих параметров, pg_parameter_status() позволяет определить значения параметров server_version и client_encoding. Для определения значений этих параметров предпочтительней использовать pg_parameter_status(), нежели специально разрабатывать другие функции.

Предостережение

Если при использовании сервера PostgreSQL версий 7.4 и ниже изменить параметр client_encoding посредством команды сервера SET уже после установки соединения, функция pg_parameter_status() не сможет отразить этот факт.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

param_name

Допустимые значения аргумента: server_version, server_encoding, client_encoding, is_superuser, session_authorization, DateStyle, TimeZone и integer_datetimes.

Возвращаемые значения

Значение запрашиваемого параметра в виде строки, либо FALSE, если передан недопустимый параметр.

Примеры

Пример #1 Пример использования pg_parameter_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно соединиться с сервером");

  echo "Кодировка сервера: ", pg_parameter_status($dbconn, "server_encoding");
?>

Результат выполнения данного примера:

Кодировка сервера: SQL_ASCII


Открывает постоянное соединение с сервером PostgreSQL

  • « pg_parameter_status
  • pg_ping »
  • PHP Manual
  • PostgreSQL
  • Открывает постоянное соединение с сервером PostgreSQL

pg_pconnect

(PHP 4, PHP 5, PHP 7)

pg_pconnect — Открывает постоянное соединение с сервером PostgreSQL

Описание

resource pg_pconnect ( string $connection_string [, int $connect_type ] )

pg_pconnect() устанавливает соединение с базой данных PostgreSQL. Возвращает ресурс соединения необходимый для работы большинства функций PostgreSQL.

При повторном вызове функции pg_pconnect() с теми же значениями параметров в connection_string функция вернет существующее подключение. Чтобы принудительно создать новое соединение, необходимо передать строку подключения функции PGSQL_CONNECT_FORCE_NEW в качестве параметра connect_type.

Возможность создавать постоянные подключения регулируется директивой pgsql.allow_persistent файла php.ini. Для включения, установите значение в "On" (является значением по умолчанию). Максимальное количество постоянных соединений задается директивой pgsql.max_persistent файла php.ini (по умолчанию -1, не ограничено). Количество любых возможных подключений устанавливается директивой pgsql.max_links файла php.ini.

pg_close() не закрывает соединения, открытые функцией pg_pconnect().

Список параметров

connection_string

Строка connection_string может быть пустой строкой, или содержать несколько параметров разделенных пробелами. Каждый параметр указывается как keyword = value. Пробелы вокруг знака равно необязательны. Пустые строки в качестве значения или значения, содержащие пробелы отделяются одинарными кавычками, как например, keyword = 'a value'. Для задания одинарных кавычек и обратных слешей в качестве значений их необходимо экранировать обратным слешем, то есть \' и \\.

Список основных ключевых слов: host, hostaddr, port, dbname (значение по умолчанию для параметра user), user, password, connect_timeout, options, tty (игнорируется), sslmode, requiressl (устарело в связи с использованием параметра sslmode), и service. Какие из этих аргументов будут обработаны, зависит от версии PostgreSQL.

connect_type

Если в функцию передана константа PGSQL_CONNECT_FORCE_NEW, будет создаваться новое подключение, даже если connection_string идентична строке существующего подключения.

Возвращаемые значения

Ресурс соединения с базой данных PostgreSQL либо FALSE, если подключиться не удалось.

Примеры

Пример #1 Пример использования pg_pconnect()

<?php
$dbconn = pg_pconnect("dbname=mary");
//подключиться к базе "mary"

$dbconn2 = pg_pconnect("host=localhost port=5432 dbname=mary");
// подключиться к базе "mary" на хосте "localhost", порт "5432"

$dbconn3 = pg_pconnect("host=sheep port=5432 dbname=mary user=lamb password=foo");
//подключиться к базе "mary" на хосте "sheep", используя имя пользователя и пароль

$conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
$dbconn4 = pg_pconnect($conn_string);
//подключиться к базе "test" на хосте "sheep", используя имя пользователя и пароль
?>

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL
  • Постоянные соединения с базой данных


Проверка соединения с базой данных

  • « pg_pconnect
  • pg_port »
  • PHP Manual
  • PostgreSQL
  • Проверка соединения с базой данных

pg_ping

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_ping — Проверка соединения с базой данных

Описание

bool pg_ping ([ resource $connection ] )

pg_ping() проверяет соединение с базой данных и переподключается, если оно нарушено.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_ping()

<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

if (!pg_ping($conn))
  die("Соединение нарушено\n");
?>

Смотрите также

  • pg_connection_status() - Определяет состояние подключения
  • pg_connection_reset() - Сброс подключение (переподключение)


Возвращает номер порта, соответствующий заданному соединению

  • « pg_ping
  • pg_prepare »
  • PHP Manual
  • PostgreSQL
  • Возвращает номер порта, соответствующий заданному соединению

pg_port

(PHP 4, PHP 5, PHP 7)

pg_port — Возвращает номер порта, соответствующий заданному соединению

Описание

int pg_port ([ resource $connection ] )

pg_port() возвращает номер порта, соответствующего заданному соединению PostgreSQL connection.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Число типа int соответствующее номеру порта, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_port()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Успешно соединено с портом : " . pg_port($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>


Посылает запрос на создание параметризованного SQL выражения и ждет его завершения

  • « pg_port
  • pg_put_line »
  • PHP Manual
  • PostgreSQL
  • Посылает запрос на создание параметризованного SQL выражения и ждет его завершения

pg_prepare

(PHP 5 >= 5.1.0, PHP 7)

pg_prepare — Посылает запрос на создание параметризованного SQL выражения и ждет его завершения

Описание

resource pg_prepare ([ resource $connection ], string $stmtname , string $query )

pg_prepare() создает заготовку SQL выражения на сервере для последующего запуска функциями pg_execute() или pg_send_execute(). Это позволяет многократно выполнять единожды созданные запросы с различными параметрами. pg_prepare() поддерживается PostgreSQL версии 7.4 и выше. Функция не будет работать c серверами ранних версий.

Функция создает заготовку SQL запроса с названием stmtname и телом query, которое должно содержать одно SQL выражение. stmtname может быть пустой строкой, тогда будет создана безымянная заготовка. Если какая-либо безымянная заготовка уже определена, она будет заменена на новую автоматически. В остальных случаях совпадение имен новой и существующей в данной сессии заготовок приведет к ошибке. Если в query будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д. при передаче запроса.

Подобные заготовки запросов также можно делать с помощью SQL команды PREPARE (но pg_prepare() более гибкая, так как не требует строгой типизации своих параметров). Важно отметить, что в PHP нет функций для удаления подготовленных SQL выражений, для этого используйте команду SQL DEALLOCATE.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

stmtname

Имя создаваемой заготовки. Должно быть уникальным в пределах сессии. Если задана пустая строка, будет создано безымянное SQL выражение. При этом оно перезапишет уже существующее безымянное выражение, определенное ранее.

query

Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделенных точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

Возвращаемые значения

Ресурс результата запроса или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_prepare()

<?php
// Подключение к базе данных "mary"
$dbconn = pg_connect("dbname=mary");

// Подготовка запроса
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');

// Запуск запроса на выполнение. Стоит отметить, что нет необходимости экранировать
// спецсимволы в строке "Joe's Widgets"
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));

// Запуск на выполнение того же запроса, но с другим параметром
$result = pg_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));

?>

Смотрите также

  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат
  • pg_send_execute() - Запускает предварительно подготовленный SQL запрос и передает ему параметры; не ожидает возвращаемого результата


Передает на PostgreSQL сервер строку с завершающим нулем

  • « pg_prepare
  • pg_query_params »
  • PHP Manual
  • PostgreSQL
  • Передает на PostgreSQL сервер строку с завершающим нулем

pg_put_line

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_put_line — Передает на PostgreSQL сервер строку с завершающим нулем

Описание

bool pg_put_line ([ resource $connection ], string $data )

pg_put_line() передает на PostgreSQL сервер строку с завершающим нулем. Завершение строки значением NULL необходимо при ее объединении с командой PostgreSQL COPY FROM.

COPY является высокоскоростным интерфейсом передачи данных, поддерживаемым PostgreSQL. Данные передаются одной транзакцией и не разбираются парсером.

В качестве альтернативы можно использовать функцию pg_copy_from(). Она значительно проще в использовании.

Замечание:

Перед запуском функции pg_end_copy() приложение должно сообщить о серверу о завершении передачи данных, добавив в конец последней строки символы "\.".

Внимание

Использование pg_put_line() может привести к
отказу операций с большими объектами, включающих функции
pg_lo_read() и pg_lo_tell().
Для этих целей используйте функции pg_copy_from()
и pg_copy_to().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

data

Текстовая строка для прямой пересылки на сервер. Завершающий NULL добавляется автоматически.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_put_line()

<?php
  $conn = pg_pconnect("dbname=foo");
  pg_query($conn, "create table bar (a int4, b char(16), d float8)");
  pg_query($conn, "copy bar from stdin");
  pg_put_line($conn, "3\thello world\t4.5\n");
  pg_put_line($conn, "4\tgoodbye world\t7.11\n");
  pg_put_line($conn, "\\.\n");
  pg_end_copy($conn);
?>

Смотрите также

  • pg_end_copy() - Синхронизирует с бэкендом PostgreSQL


Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса

  • « pg_put_line
  • pg_query »
  • PHP Manual
  • PostgreSQL
  • Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса

pg_query_params

(PHP 5 >= 5.1.0, PHP 7)

pg_query_params — Посылает параметризованный запрос на сервер, параметры передаются отдельно от текста SQL запроса

Описание

resource pg_query_params ([ resource $connection ], string $query , array $params )

Посылает параметризованный запрос на сервер и ждет результат. Параметры передаются отдельно от строки запроса.

pg_query_params() подобна функции pg_query(), но предоставляет дополнительный функционал: параметры запроса можно передавать отдельно от строки запроса. pg_query_params() поддерживается на соединениях с серверами PostgreSQL версий 7.4 и выше. Функция не будет работать с серверами ранних версий.

Если используются параметры params, они заменяют псевдопеременные $1, $2 и т.д. в строке запроса query. Один и тот же параметр может быть указан больше одного раза в query; в этом случае будут использованы одинаковые значения. params определяют текущие значения параметров. Значение NULL в массиве параметров будет означать SQL NULL в запросе.

Главное преимущество pg_query_params() перед pg_query() заключается в том, что значения параметров могут передаваться отдельно от строки запроса query. Это дает возможность избежать утомительную и подверженную ошибкам процедуру экранирования спецсимволов и заключения значений в кавычки. Однако, в отличие от pg_query(), эта функция поддерживает только один SQL запрос в передаваемой строке. (Он может содержать точку с запятой, но не более одной непустой SQL команды.)

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

query

Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделенных точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

Пользовательские данные всегда должны передаваться как параметры, и не передаваться в строку запроса напрямую, где они могут привести к возможным атакам через SQL инъекции и приводит к ошибкам, если данные содержат кавычки. Если по каким-то причинам вы не можете использовать параметр, убедитесь, что пользовательские данные правильно экранированы.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Значения предназначенные для bytea полей нельзя передавать в параметрах. Используйте функцию pg_escape_bytea() или функции для больших объектов.

Возвращаемые значения

Ресурс результата запроса или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_query_params()

<?php
// Подключение к базе данных "mary"
$dbconn = pg_connect("dbname=mary");

// Найдем все магазины с названием "Joe's Widgets". Стоит отметить, что нет необходимости экранировать
// спецсимволы в строке "Joe's Widgets"
$result = pg_query_params($dbconn, 'SELECT * FROM shops WHERE name = $1', array("Joe's Widgets"));

// Для сравнения то же самое, используя функцию pg_query
$str = pg_escape_string("Joe's Widgets");
$result = pg_query($dbconn, "SELECT * FROM shops WHERE name = '{$str}'");

?>

Смотрите также

  • pg_query() - Выполняет запрос


Выполняет запрос

  • « pg_query_params
  • pg_result_error_field »
  • PHP Manual
  • PostgreSQL
  • Выполняет запрос

pg_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_query — Выполняет запрос

Описание

resource pg_query ([ resource $connection ], string $query )

pg_query() executes the query on the specified database connection. pg_query_params() should be preferred in most cases.

В случае ошибка функция возвращает FALSE, детали ошибки можно получить с помощью функции pg_last_error() если соединение с БД не нарушено.

Замечание: Несмотря на то, что параметр connection может быть опущен, делать так не рекомендуется, так как это может привести к трудно находимым ошибкам в скриптах.

Замечание:

Ранее данная функция называлась pg_exec(). pg_exec() все еще доступна в целях обеспечения совместимости, но лучше использовать новое имя.

Список параметров

connection

Ресурс соединения с БД PostgreSQL. Если не передать параметр connection используется соединение по умолчанию. Соединение по умолчанию -- это последнее соединение, созданное функцией pg_connect() или pg_pconnect().

query

Выражение или выражения SQL для выполнения. Если передано несколько выражений они автоматически выполняются как одна транзакция если явно не указаны команды BEGIN/COMMIT внутри выражения. Тем не менее, использовать несколько транзакций в одном вызове функции не рекомендуется.

Внимание

Строковое представление пользовательских данных очень опасно и часто приводит к возможности SQL инъекции. В большинстве случаев лучше передавать пользовательские данные параметром в pg_query_params(), а не подставлять их в строку запроса.

Любые данные передаваемые от пользователя непосредственно в строку запроса должны быть хорошо экранированы.

Возвращаемые значения

Ресурс результата запроса в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_query()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Произошла ошибка.\n";
  exit;
}

while ($row = pg_fetch_row($result)) {
  echo "Автор: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Пример #2 Использование нескольких выражений в pg_query()

<?php

$conn = pg_pconnect("dbname=publisher");

// эти выражения будут исполнены в одной транзакции

$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
$query .= "UPDATE authors SET author=NULL WHERE id=3;";

pg_query($conn, $query);

?>

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL
  • pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL
  • pg_fetch_array() - Возвращает строку результата в виде массива
  • pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_num_rows() - Возвращает количество строк в выборке
  • pg_affected_rows() - Возвращает количество затронутых запросом записей (кортежей)


Возвращает конкретное поле из отчета об ошибках

  • « pg_query
  • pg_result_error »
  • PHP Manual
  • PostgreSQL
  • Возвращает конкретное поле из отчета об ошибках

pg_result_error_field

(PHP 5 >= 5.1.0, PHP 7)

pg_result_error_field — Возвращает конкретное поле из отчета об ошибках

Описание

string pg_result_error_field ( resource $result , int $fieldcode )

pg_result_error_field() возвращает одно из полей отчета об ошибках, связанного с ресурсом result. Функция поддерживается серверами PostgreSQL версий 7.4 и выше. Нужное поле задается аргументом fieldcode.

Функции pg_query() и pg_query_params() в случае ошибок возвращают FALSE вместо ресурса. Чтобы иметь возможность обрабатывать ошибки, пользуйтесь функциями pg_send_query() и pg_get_result().

Для получения дополнительной информации о ходе выполнения отказавшей
функции pg_query() используйте функции
pg_set_error_verbosity() и
pg_last_error() и обрабатывайте результат
их выполнения.

Список параметров

result

Ресурс результата предыдущего запроса PostgreSQL.

fieldcode

Возможные значения аргумента fieldcode: PGSQL_DIAG_SEVERITY, PGSQL_DIAG_SQLSTATE, PGSQL_DIAG_MESSAGE_PRIMARY, PGSQL_DIAG_MESSAGE_DETAIL, PGSQL_DIAG_MESSAGE_HINT, PGSQL_DIAG_STATEMENT_POSITION, PGSQL_DIAG_INTERNAL_POSITION (для версий PostgreSQL 8.0 и выше), PGSQL_DIAG_INTERNAL_QUERY (для версий PostgreSQL 8.0 и выше), PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE, PGSQL_DIAG_SOURCE_LINE, PGSQL_DIAG_SOURCE_FUNCTION.

Возвращаемые значения

Сообщение об ошибке из заданного поля в виде строки (string); NULL, если заданное поле не существует; FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_result_error_field()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from doesnotexist;");
  }

  $res1 = pg_get_result($dbconn);
  echo pg_result_error_field($res1, PGSQL_DIAG_SQLSTATE);
?>

Смотрите также

  • pg_result_error() - Возвращает сообщение об ошибке, связанной с запросом результата


Возвращает сообщение об ошибке, связанной с запросом результата

  • « pg_result_error_field
  • pg_result_seek »
  • PHP Manual
  • PostgreSQL
  • Возвращает сообщение об ошибке, связанной с запросом результата

pg_result_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_result_error — Возвращает сообщение об ошибке, связанной с запросом результата

Описание

string pg_result_error ( resource $result )

pg_result_error() возвращает сообщение о любой ошибке, связанной с ресурсом result. Таким образом, возможно получить более верное сообщение об ошибке, чем при использовании pg_last_error().

Функция pg_result_error_field() может дать гораздо более детальную информацию об ошибке, чем pg_result_error().

Так как pg_query() возвращает FALSE в случае ошибки запроса, необходимо использовать pg_send_query() и pg_get_result() для получения дескриптора результата.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращенный pg_query(), pg_query_params() или pg_execute() (и прочими).

Возвращаемые значения

Возвращает строку string. Возвращает пустую строку, если нет ошибки. Если же есть ошибка, не связанная с параметром result, то возвращается FALSE.

Примеры

Пример #1 Пример использования pg_result_error()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from doesnotexist;");
  }

  $res1 = pg_get_result($dbconn);
  echo pg_result_error($res1);
?>

Смотрите также

  • pg_result_error_field() - Возвращает конкретное поле из отчета об ошибках
  • pg_query() - Выполняет запрос
  • pg_send_query() - Отправляет асинхронный запрос
  • pg_get_result() - Получение результата асинхронного запроса
  • pg_last_error() - Получает сообщение о последней произошедшей ошибке на соединении с базой данных
  • pg_last_notice() - Возвращает последнее уведомление от сервера PostgreSQL


Смещает указатель на строку выборки в ресурсе результата запроса

  • « pg_result_error
  • pg_result_status »
  • PHP Manual
  • PostgreSQL
  • Смещает указатель на строку выборки в ресурсе результата запроса

pg_result_seek

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_result_seek — Смещает указатель на строку выборки в ресурсе результата запроса

Описание

bool pg_result_seek ( resource $result , int $offset )

pg_result_seek() устанавливает смещение внутреннего указателя на строку результата запроса.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

offset

Количество строк, на которое требуется сместить внутренний указатель ресурса result. Строки нумеруются с нуля.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_result_seek()

<?php

// Подключение к базе данных
$conn = pg_pconnect("dbname=publisher");

// Выполнение запроса
$result = pg_query($conn, "SELECT author, email FROM authors");

// Перемещаемся сразу на третью строку
// (допускаем, что в результате есть хотя бы три строки)
pg_result_seek($result, 2);

// Выбираем третью строку из результата
$row = pg_fetch_row($result);

?>

Смотрите также

  • pg_fetch_row() - Выбирает строку результата запроса и помещает данные в массив
  • pg_fetch_assoc() - Выбирает строку результата запроса и помещает данные в ассоциативный массив
  • pg_fetch_array() - Возвращает строку результата в виде массива
  • pg_fetch_object() - Выбирает строку результата запроса и возвращает данные в виде объекта
  • pg_fetch_result() - Возвращает запись из результата запроса


Возвращает состояние результата запроса

  • « pg_result_seek
  • pg_select »
  • PHP Manual
  • PostgreSQL
  • Возвращает состояние результата запроса

pg_result_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_result_status — Возвращает состояние результата запроса

Описание

mixed pg_result_status ( resource $result [, int $type = PGSQL_STATUS_LONG ] )

pg_result_status() возвращает текущее состояние ресурса результата запроса, либо тэг завершения сервером работы с с этим ресурсом.

Список параметров

result

Ресурс результата запроса PostgreSQL, возвращаемый функциями pg_query(), pg_query_params() или pg_execute() (в числе прочих).

type

Принимает одно из двух значений: PGSQL_STATUS_LONG для получения числового обозначения состояния result, либо PGSQL_STATUS_STRING для получения тэга состояния в виде строки. По умолчанию используется PGSQL_STATUS_LONG.

Возвращаемые значения

Если в качестве аргумента передается PGSQL_STATUS_LONG, то возвращается одна из перечисленных констант: PGSQL_EMPTY_QUERY, PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_OUT, PGSQL_COPY_IN, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR, PGSQL_FATAL_ERROR. В противном случае функция вернет строковое представление состояния результата запроса.

Примеры

Пример #1 Пример использования pg_result_status()

<?php

// Подключаемся к базе данных
$conn = pg_pconnect("dbname=publisher");

// Выполняем команду COPY
$result = pg_query($conn, "COPY authors FROM STDIN;");

// Получаем состояние результата запроса
$status = pg_result_status($result);

// Разбираем полученные данные
if ($status == PGSQL_COPY_IN)
   echo "Copy began.";
else
   echo "Copy failed.";

?>

Результат выполнения данного примера:

Copy began.

Смотрите также

  • pg_connection_status() - Определяет состояние подключения


Выбирает записи из базы данных

  • « pg_result_status
  • pg_send_execute »
  • PHP Manual
  • PostgreSQL
  • Выбирает записи из базы данных

pg_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_select — Выбирает записи из базы данных

Описание

mixed pg_select ( resource $connection , string $table_name , array $assoc_array [, int $options = PGSQL_DML_EXEC ] )

pg_select() выбирает записи из базы данных, удовлетворяющие условиям field=>value, заданным в массиве assoc_array.

Если задан аргумент options, то к массиву assoc_array будет применена функция pg_convert() с параметрами, заданными в качестве аргумента.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Название таблицы, из которой выбираются данные.

assoc_array

Массив (array), ключи которого соответствуют именам колонок таблицы table_name. Будут выбраны только те строки, значения полей которых совпадут со значениями массива.

options

Одна из констант PGSQL_CONV_FORCE_NULL, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC, PGSQL_DML_STRING или их комбинация. Если options содержит PGSQL_DML_STRING, функция вернет строку. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Функция вернет строку, если options содержит PGSQL_DML_STRING.

Примеры

Пример #1 Пример использования pg_select()

<?php
  $db = pg_connect('dbname=foo');
  // Это безопасно с тех пор как $_POST преобразуется автоматически
  $rec = pg_select($db, 'post_log', $_POST);
  if ($rec) {
      echo "Records selected\n";
      var_dump($rec);
  } else {
      echo "Должно быть переданы неверные данные\n";
  }
?>

Список изменений

Версия | Описание
5.6.0 | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
5.5.3/5.4.19 | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах


Запускает предварительно подготовленный SQL запрос и передает ему параметры; не ожидает возвращаемого результата

  • « pg_select
  • pg_send_prepare »
  • PHP Manual
  • PostgreSQL
  • Запускает предварительно подготовленный SQL запрос и передает ему параметры; не ожидает возвращаемого результата

pg_send_execute

(PHP 5 >= 5.1.0, PHP 7)

pg_send_execute — Запускает предварительно подготовленный SQL запрос и передает ему параметры; не ожидает возвращаемого результата

Описание

bool pg_send_execute ( resource $connection , string $stmtname , array $params )

Запускает предварительно подготовленный SQL запрос и передает ему параметры; не ожидает возвращаемого результата.

Работает аналогично функции pg_send_query_params(), только вместо строки с запросом принимает имя предварительно подготовленного SQL запроса. Аргументы функции обрабатываются так же, как и в функции pg_execute(). Как и pg_execute() эта функция не будет работать на соединениях с серверами PostgreSQL версий ниже 7.4.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

stmtname

Имя подготовленного к исполнению запроса. Если передана пустая строка "", будет выполнен безымянный запрос. Имя и содержимое запроса должны быть подготовлены функцией pg_prepare(), pg_send_prepare() либо с помощью SQL-команды PREPARE.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Возвращаемые значения

Возвращает TRUE в случае успешной передачи запроса, FALSE в случае ошибки. Для получения результата запроса используйте функцию pg_get_result().

Примеры

Пример #1 Пример использования pg_send_execute()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Подготовка запроса
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Запуск запроса на выполнение. Стоит отметить, что нет необходимости экранировать
  // спецсимволы в строке "Joe's Widgets"
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Запуск на выполнение того же запроса, но с другим параметром
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
    $res3 = pg_get_result($dbconn);
  }

?>

Смотрите также

  • pg_prepare() - Посылает запрос на создание параметризованного SQL выражения и ждет его завершения
  • pg_send_prepare() - Посылает запрос на создание параметризованного SQL выражения; не ожидает его завершения
  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат


Посылает запрос на создание параметризованного SQL выражения; не ожидает его завершения

  • « pg_send_execute
  • pg_send_query_params »
  • PHP Manual
  • PostgreSQL
  • Посылает запрос на создание параметризованного SQL выражения; не ожидает его завершения

pg_send_prepare

(PHP 5 >= 5.1.0, PHP 7)

pg_send_prepare — Посылает запрос на создание параметризованного SQL выражения; не ожидает его завершения

Описание

bool pg_send_prepare ( resource $connection , string $stmtname , string $query )

Посылает запрос на создание параметризованного SQL выражения и не ждет его завершения.

Это асинхронная версия функции pg_prepare(): она возвращает TRUE, если удалось отправить запрос, FALSE в противном случае. После успешной отправки, воспользуйтесь функцией pg_get_result(), чтобы узнать, создалось ли требуемое SQL выражение. Аргументы функции обрабатываются так же, как в pg_prepare(). Функция не будет работать с серверами PostgreSQL версий ниже 7.4.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

stmtname

Имя создаваемой заготовки. Должно быть уникальным в пределах сессии. Если задана пустая строка, будет создано безымянное SQL выражение. При этом оно перезапишет уже существующее безымянное выражение, определенное ранее.

query

Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделенных точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

Возвращаемые значения

TRUE, если удалось отправить запрос, FALSE в противном случае. После успешной отправки, воспользуйтесь функцией pg_get_result(), чтобы узнать, создалось ли требуемое SQL выражение.

Примеры

Пример #1 Пример использования pg_send_prepare()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Подготовка запроса
  if (!pg_connection_busy($dbconn)) {
    pg_send_prepare($dbconn, "my_query", 'SELECT * FROM shops WHERE name = $1');
    $res1 = pg_get_result($dbconn);
  }

  // Запуск запроса на выполнение. Стоит отметить, что нет необходимости экранировать
  // спецсимволы в строке "Joe's Widgets"
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Joe's Widgets"));
    $res2 = pg_get_result($dbconn);
  }

  // Запуск на выполнение того же запроса, но с другим параметром
  if (!pg_connection_busy($dbconn)) {
    pg_send_execute($dbconn, "my_query", array("Clothes Clothes Clothes"));
    $res3 = pg_get_result($dbconn);
  }

?>

Смотрите также

  • pg_connect() - Открывает соединение с базой данных PostgreSQL
  • pg_pconnect() - Открывает постоянное соединение с сервером PostgreSQL
  • pg_execute() - Запускает выполнение ранее подготовленного параметризованного запроса и ждет результат
  • pg_send_execute() - Запускает предварительно подготовленный SQL запрос и передает ему параметры; не ожидает возвращаемого результата
  • pg_send_query_params() - Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата


Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата

  • « pg_send_prepare
  • pg_send_query »
  • PHP Manual
  • PostgreSQL
  • Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата

pg_send_query_params

(PHP 5 >= 5.1.0, PHP 7)

pg_send_query_params — Посылает параметризованный запрос на сервер, не ожидает возвращаемого результата

Описание

bool pg_send_query_params ( resource $connection , string $query , array $params )

Отправляет параметризованный запрос на выполнение и не ждет его завершения. Параметры передаются отдельно от текста SQL запроса.

Функция является аналогом pg_send_query() за одним исключением: параметры запроса можно передавать отдельно от строки запроса. Аргументы функции обрабатываются так же, как и в pg_query_params(). pg_send_query() поддерживается на соединениях с серверами PostgreSQL версий 7.4 и выше. Функция не будет работать с серверами ранних версий. Также она поддерживает только одну SQL команду в выражении.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

query

Параметризованный SQL запрос. Должен содержать только одно выражение (несколько выражений разделенных точкой с запятой не поддерживаются). Если в запрос будут передаваться параметры, то они заменят псевдопеременные $1, $2 и т.д.

params

Массив значений параметров запроса для замены псевдопеременных $1, $2 и т.д. в исходной строке запроса. Количество элементов массива должно точно совпадать с количеством псевдопеременных.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пользуйтесь функцией pg_get_result() для получения результата запроса.

Примеры

Пример #1 Пример использования pg_send_query_params()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  // Использование параметров. Стоит заметить, что нет необходимости
  // заключать в кавычки и экранировать параметр.
  pg_send_query_params($dbconn, 'select count(*) from authors where city = $1', array('Perth'));

  // В сравнении с pg_send_query
  $str = pg_escape_string('Perth');
  pg_send_query($dbconn, "select count(*) from authors where city = '${str}'");
?>

Смотрите также

  • pg_send_query() - Отправляет асинхронный запрос


Отправляет асинхронный запрос

  • « pg_send_query_params
  • pg_set_client_encoding »
  • PHP Manual
  • PostgreSQL
  • Отправляет асинхронный запрос

pg_send_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pg_send_query — Отправляет асинхронный запрос

Описание

bool pg_send_query ( resource $connection , string $query )

pg_send_query() отправляет на выполнение асинхронный запрос. В отличие от pg_query() запрос может содержать несколько SQL выражений, разделенных точкой с запятой. Для получения результата запроса используйте функцию pg_get_result().

Выполнение запроса не прерывает работу скрипта. Для определения занятости соединения (когда запрос еще выполняется) используйте функцию pg_connection_busy(). Выполнение запроса можно прервать функцией pg_cancel_query().

Несмотря на то, что можно отправить несколько запросов за раз, их нельзя посылать, пока соединение занято. В противном случае, посланный запрос дождется завершения предыдущего, сотрет его результат и запустится сам. Таким образом вы потеряете данные результата предыдущего запроса.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

query

Одно или несколько SQL выражений, разделенных точкой с запятой.

Спецсимволы в строке запроса должны быть экранированы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Для получения результата запроса используйте функцию pg_get_result().

Примеры

Пример #1 Пример использования pg_send_query()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Невозможно подключиться");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from authors; select count(*) from authors;");
  }

  $res1 = pg_get_result($dbconn);
  echo "Первый вызов pg_get_result(): $res1\n";
  $rows1 = pg_num_rows($res1);
  echo "$res1 содержит $rows1 записей\n\n";

  $res2 = pg_get_result($dbconn);
  echo "Второй вызов pg_get_result(): $res2\n";
  $rows2 = pg_num_rows($res2);
  echo "$res2 содержит $rows2 записей\n";
?>

Результат выполнения данного примера:

Первый вызов pg_get_result(): Resource id #3
Resource id #3 содержит 3 записей

Второй вызов pg_get_result(): Resource id #4
Resource id #4 содержит 1 записей

Смотрите также

  • pg_query() - Выполняет запрос
  • pg_cancel_query() - Остановка асинхронного запроса.
  • pg_get_result() - Получение результата асинхронного запроса
  • pg_connection_busy() - Проверяет, занято ли соединение в данный момент.


Устанавливает клиентскую кодировку

  • « pg_send_query
  • pg_set_error_verbosity »
  • PHP Manual
  • PostgreSQL
  • Устанавливает клиентскую кодировку

pg_set_client_encoding

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pg_set_client_encoding — Устанавливает клиентскую кодировку

Описание

int pg_set_client_encoding ([ resource $connection ], string $encoding )

pg_set_client_encoding() устанавливает клиентскую кодировку и возвращает 0 при успехе, -1 в случае ошибки.

PostgreSQL автоматически конвертирует данные из кодировки базы данных в кодировку клиентского приложения.

Замечание:

Прежнее название функции: pg_setclientencoding().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

encoding

Требуемая клиентская кодировка. Список возможных значений: SQL_ASCII, EUC_JP, EUC_CN, EUC_KR, EUC_TW, UNICODE, MULE_INTERNAL, LATINX (X=1...9), KOI8, WIN, ALT, SJIS, BIG5 or WIN1250.

Список доступных кодировок зависит от версии PostgreSQL. Смотрите документацию к вашей версии сервера.

Возвращаемые значения

Возвращает 0 в случае успеха, либо -1 в случае ошибки.

Примеры

Пример #1 Пример использования pg_set_client_encoding()

<?php

$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
  echo "Произошла ошибка.\n";
  exit;
}

// Установка кодировки в UNICODE. Данные будут автоматически
// преобразованы из кодировки в базе данных к клиентской.
pg_set_client_encoding($conn, "UNICODE");

$result = pg_query($conn, "SELECT author, email FROM authors");
if (!$result) {
  echo "Произошла ошибка.\n";
  exit;
}

// Выводим UTF-8 данные
while ($row = pg_fetch_row($result)) {
  echo "Author: $row[0]  E-mail: $row[1]";
  echo "<br />\n";
}

?>

Смотрите также

  • pg_client_encoding() - Получение кодировки клиента.


Определяет объем текста сообщений, возвращаемых функциями pg_last_error и pg_result_error

  • « pg_set_client_encoding
  • pg_socket »
  • PHP Manual
  • PostgreSQL
  • Определяет объем текста сообщений, возвращаемых функциями pg_last_error и pg_result_error

pg_set_error_verbosity

(PHP 5 >= 5.1.0, PHP 7)

pg_set_error_verbosity — Определяет объем текста сообщений, возвращаемых функциями pg_last_error() и pg_result_error()

Описание

int pg_set_error_verbosity ([ resource $connection ], int $verbosity )

Определяет объем текста сообщений, возвращаемых функциями pg_last_error() и pg_result_error().

pg_set_error_verbosity() устанавливает режим, отвечающий за полноту сообщений об ошибках. В режиме PGSQL_ERRORS_TERSE сообщения будут содержать только важность ошибки, основной текст и место возникновения; эта информация обычно умещается в одну строку. В режиме по умолчанию PGSQL_ERRORS_DEFAULT в сообщения будут добавлены детали ошибки, подсказка или поля контекста (это может занять несколько строк). В режиме PGSQL_ERRORS_VERBOSE сообщения будут содержать все возможные поля. Изменение режима не затронет сообщения уже существующих ресурсов. Новый режим будет применяться только к вновь создаваемым.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

verbosity

Требуемый режим: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT или PGSQL_ERRORS_VERBOSE.

Возвращаемые значения

Предыдущий режим действовавший до запуска функции: PGSQL_ERRORS_TERSE, PGSQL_ERRORS_DEFAULT или PGSQL_ERRORS_VERBOSE.

Примеры

Пример #1 Пример использования pg_set_error_verbosity()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Could not connect");

  if (!pg_connection_busy($dbconn)) {
      pg_send_query($dbconn, "select * from doesnotexist;");
  }

  pg_set_error_verbosity($dbconn, PGSQL_ERRORS_VERBOSE);
  $res1 = pg_get_result($dbconn);
  echo pg_result_error($res1);
?>

Смотрите также

  • pg_last_error() - Получает сообщение о последней произошедшей ошибке на соединении с базой данных
  • pg_result_error() - Возвращает сообщение об ошибке, связанной с запросом результата


Get a read only handle to the socket underlying a PostgreSQL connection

  • « pg_set_error_verbosity
  • pg_trace »
  • PHP Manual
  • PostgreSQL
  • Get a read only handle to the socket underlying a PostgreSQL connection

pg_socket

(PHP 5 >= 5.6.0, PHP 7)

pg_socket — Get a read only handle to the socket underlying a PostgreSQL connection

Описание

resource pg_socket ( resource $connection )

pg_socket() returns a read only resource corresponding to the socket underlying the given PostgreSQL connection.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

PostgreSQL database connection resource.

Возвращаемые значения

A socket resource on success или FALSE в случае возникновения ошибки.


Включает трассировку подключения PostgreSQL

  • « pg_socket
  • pg_transaction_status »
  • PHP Manual
  • PostgreSQL
  • Включает трассировку подключения PostgreSQL

pg_trace

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

pg_trace — Включает трассировку подключения PostgreSQL

Описание

bool pg_trace ( string $pathname [, string $mode = "w" [, resource $connection ]] )

pg_trace() включает трассировку соединения с PostgreSQL сервером во внешний файл. Чтобы понимать содержимое таких файлов, необходимо хорошо разбираться во внутреннем устройстве клиент-серверного взаимодействия.

Для тех, кто не обладает подобными навыками, трассировка все же может оказаться полезной для поиска ошибок при отправке запросов на сервер. Например, можно выполнить команду grep '^To backend' trace.log и посмотреть, какие запросы реально отправлены на сервер. Дополнительную информацию можно почерпнуть из » документации PostgreSQL.

Список параметров

pathname

Полный путь и имя файла для записи журнала трассировки. Аналогично fopen().

mode

Необязательный аргумент. Режим доступа к файлу. Аналогично fopen().

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pg_trace()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
   pg_query("SELECT 1");
   pg_untrace($pgsql_conn);
   // Теперь /tmp/trace.log будет хранить информацию о взаимодействии с сервером
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Смотрите также

  • fopen() - Открывает файл или URL
  • pg_untrace() - Отключает трассировку соединения с PostgreSQL


Возвращает текущее состояние транзакции на сервере

  • « pg_trace
  • pg_tty »
  • PHP Manual
  • PostgreSQL
  • Возвращает текущее состояние транзакции на сервере

pg_transaction_status

(PHP 5 >= 5.1.0, PHP 7)

pg_transaction_status — Возвращает текущее состояние транзакции на сервере

Описание

int pg_transaction_status ( resource $connection )

Возвращает текущее состояние транзакции на сервере.

Предостережение

pg_transaction_status() выдает некорректный результат при работе с сервером PostgreSQL 7.3, на котором выключена опция autocommit. Автоматическое завершение транзакций на стороне сервера устарело и не используется в более поздних версиях.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

Возвращаемые значения

Список возможных состояний: PGSQL_TRANSACTION_IDLE (сервер бездействует), PGSQL_TRANSACTION_ACTIVE (выполняется запрос), PGSQL_TRANSACTION_INTRANS (сервер бездействует, работа в режиме транзакции), или PGSQL_TRANSACTION_INERROR (сервер бездействует, транзакция потерпела неудачу). PGSQL_TRANSACTION_UNKNOWN - ошибка подключения. PGSQL_TRANSACTION_ACTIVE возвращается только когда запрос уже отправлен на сервер, но еще не обработан.

Примеры

Пример #1 Пример использования pg_transaction_status()

<?php
  $dbconn = pg_connect("dbname=publisher") or die("Подключиться не удалось");
  $stat = pg_transaction_status($dbconn);
  if ($stat === PGSQL_TRANSACTION_UNKNOWN) {
      echo 'Соединение не удалось';
  } else if ($stat === PGSQL_TRANSACTION_IDLE) {
      echo 'Соединение свободно и простаивает';
  } else {
      echo 'Соединение в режиме транзакции';
  }
?>


Возвращает имя терминала TTY, связанное с соединением

  • « pg_transaction_status
  • pg_unescape_bytea »
  • PHP Manual
  • PostgreSQL
  • Возвращает имя терминала TTY, связанное с соединением

pg_tty

(PHP 4, PHP 5, PHP 7)

pg_tty — Возвращает имя терминала TTY, связанное с соединением

Описание

string pg_tty ([ resource $connection ] )

pg_tty() возвращает имя терминала, связанного с подключением PostgreSQL connection, на который выводится отладочная информация.

Замечание:

pg_tty() устарела, но оставлена для обратной совместимости.

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Имя TTY для подключения connection в виде строки (string) либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования pg_tty()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   print "Server debug TTY is: " . pg_tty($pgsql_conn) . "<br/>\n";
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>


Убирает экранирование двоичных данных типа bytea

  • « pg_tty
  • pg_untrace »
  • PHP Manual
  • PostgreSQL
  • Убирает экранирование двоичных данных типа bytea

pg_unescape_bytea

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_unescape_bytea — Убирает экранирование двоичных данных типа bytea

Описание

string pg_unescape_bytea ( string $data )

pg_unescape_bytea() убирает экранирование спецсимволов в значениях типа PostgreSQL bytea. Возвращает неэкранированную строку, содержащую двоичные данные.

Замечание:

При выборке SQL функцией SELECT данных типа bytea PostgreSQL возвращает значения в восьмеричной системе счисления с префиксом '\' (такие как \032). Пользователю необходимо вручную преобразовывать их в двоичный формат.

Функция поддерживается PostgreSQL версии 7.2 и выше. Для версий 7.2.0 и 7.2.1 значения должны быть преобразованы к типу bytea, когда включена мультибайтовая поддержка. Тогда как INSERT INTO test_table (image)VALUES ('$image_escaped'::bytea); в PostgreSQL 7.2.2 и выше не требует каких-либо преобразований. Исключение составляет случай, когда клиентская (frontend) кодировка не соответствует серверной (backend). При этом возникает ошибка мультибайтового потока, и пользователь должен привести данные к типу bytea, чтобы ее избежать.

Список параметров

data

Строка (string), содержащая данные типа PostgreSQL bytea и подлежащая преобразованию в двоичную строку PHP.

Возвращаемые значения

Строка (string) с неэкранированными спецсимволами.

Примеры

Пример #1 Пример использования pg_unescape_bytea()

<?php
  // Подключение к базе данных
  $dbconn = pg_connect('dbname=foo');

  // Получение bytea данных
  $res = pg_query("SELECT data FROM gallery WHERE name='Pine trees'");
  $raw = pg_fetch_result($res, 'data');

  // Преобразование в двоичный формат и отправка в броузер
  header('Content-type: image/jpeg');
  echo pg_unescape_bytea($raw);
?>

Список изменений

Версия | Описание
5.5.1 | Если входная строка не валидна, то бросается предупреждение.

Смотрите также

  • pg_escape_bytea() - Экранирует спецсимволы в строке для вставки в поле типа bytea
  • pg_escape_string() - Экранирование спецсимволов в строке запроса


Отключает трассировку соединения с PostgreSQL

  • « pg_unescape_bytea
  • pg_update »
  • PHP Manual
  • PostgreSQL
  • Отключает трассировку соединения с PostgreSQL

pg_untrace

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

pg_untrace — Отключает трассировку соединения с PostgreSQL

Описание

bool pg_untrace ([ resource $connection ] )

Останавливает трассировку, запущенную функцией pg_trace().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Всегда возвращает TRUE.

Примеры

Пример #1 Пример использования pg_untrace()

<?php
$pgsql_conn = pg_connect("dbname=mark host=localhost");

if ($pgsql_conn) {
   pg_trace('/tmp/trace.log', 'w', $pgsql_conn);
   pg_query("SELECT 1");
   pg_untrace($pgsql_conn);
   // Теперь трассировка взаимодействия с сервером отключена
} else {
   print pg_last_error($pgsql_conn);
   exit;
}
?>

Смотрите также

  • pg_trace() - Включает трассировку подключения PostgreSQL


Обновление данных в таблице

  • « pg_untrace
  • pg_version »
  • PHP Manual
  • PostgreSQL
  • Обновление данных в таблице

pg_update

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_update — Обновление данных в таблице

Описание

mixed pg_update ( resource $connection , string $table_name , array $data , array $condition [, int $options = PGSQL_DML_EXEC ] )

pg_update() заменяет записи в таблице, удовлетворяющие условиям condition данными data. Если задан аргумент options, данные будут преобразованы функцией pg_convert(), которой будут переданы параметры из этого аргумента.

Список параметров

connection

Ресурс соединения с базой данных PostgreSQL.

table_name

Имя таблицы, в которой обновляются записи.

data

Массив (array), ключи которого соответствуют именам колонок таблицы table_name, а значения заменят данные в этих колонках.

condition

Массив (array), ключи которого соответствуют именам колонок таблицы table_name. Будут обновлены только те строки, значения полей которых совпадут со значениями массива.

options

Одна из констант PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC или PGSQL_DML_STRING, либо их комбинация. Если options содержит PGSQL_DML_STRING, функция вернет строку. Если установлены PGSQL_DML_NO_CONV или PGSQL_DML_ESCAPE, то функция pg_convert() внутренне не вызывается.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Функция вернет строку (string), если константа PGSQL_DML_STRING содержится в options.

Примеры

Пример #1 Пример использования pg_update()

<?php
  $db = pg_connect('dbname=foo');
  $data = array('field1'=>'AA', 'field2'=>'BB');

  // Это безопасно с тех пор как $_POST преобразуется автоматически
  $res = pg_update($db, 'post_log', $_POST, $data);
  if ($res) {
      echo "Данные обновлены: $res\n";
  } else {
      echo "Должно быть переданы неверные данные\n";
  }
?>

Список изменений

Версия | Описание
5.6.0 | Больше не является экспериментальной. Добавлена константа PGSQL_DML_ESCAPE, TRUE/FALSE и NULL типы данных теперь поддерживаются.
5.5.3/5.4.19 | Исправлены прямые SQL-инъекции в table_name и непрямые SQL-инъекции в идентификаторах.

Смотрите также

  • pg_convert() - Преобразует значения ассоциативного массива в приемлемые для использования в SQL запросах


Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)

  • « pg_update
  • SQLite »
  • PHP Manual
  • PostgreSQL
  • Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)

pg_version

(PHP 5, PHP 7)

pg_version — Возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера (если доступно)

Описание

array pg_version ([ resource $connection ] )

pg_version() возвращает массив, содержащий версии клиента, протокола клиент-серверного взаимодействия и сервера. Версии протокола и сервера доступны, только если PHP-расширение скомпилировано для PostgreSQL версии 7.4 или выше.

Для получения детальной информации о сервере используйте функцию pg_parameter_status().

Список параметров

connection

Ресурс подключения к базе данных PostgreSQL. Если параметр connection не задан, будет использовано подключение по умолчанию - последнее соединение, открытое функцией pg_connect() или pg_pconnect().

Возвращаемые значения

Возвращает массив с ключами client, protocol и server и соответствующими значениями версий, либо FALSE в случае ошибки или некорректно работающего соединения.

Примеры

Пример #1 Пример использования pg_version()

<?php
  $dbconn = pg_connect("host=localhost port=5432 dbname=mary")
     or die("Could not connect");

  $v = pg_version($dbconn);

  echo $v['client'];
?>

Результат выполнения данного примера:

7.4

Смотрите также

  • pg_parameter_status() - Просмотр текущих значений параметров сервера


SQLite

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • SQLite
    • sqlite_array_query — Выполняет запрос к базе данных и возвращает результат в виде массива
    • sqlite_busy_timeout — Устанавливает или полностью отключает время ожидания
    • sqlite_changes — Возвращает количество записей, которые были изменены последним SQL-запросом
    • sqlite_close — Закрывает открытую базу данных SQLite
    • sqlite_column — Выбирает столбец из текущей записи результата запроса
    • sqlite_create_aggregate — Регистрирует агрегирующую функцию для использования в SQL-запросах
    • sqlite_create_function — Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
    • sqlite_current — Возвращает текущую запись из результирующего набора в виде массива
    • sqlite_error_string — Возвращает строку с описанием ошибки
    • sqlite_escape_string — Экранирует спецсимволы в строке для использования в запросе
    • sqlite_exec — Выполняет запрос, не возвращающий записей
    • sqlite_factory — Открывает базу данных SQLite и возвращает объект
    • sqlite_fetch_all — Выбирает все записи из результата запроса и возвращает многомерный массив
    • sqlite_fetch_array — Выбирает следующую запись из результата запроса и возвращает массив
    • sqlite_fetch_column_types — Возвращает массив, содержащий информацию о типах полей в таблице
    • sqlite_fetch_object — Выбирает следующую запись из результата запроса и возвращает объект
    • sqlite_fetch_single — Выбирает значение первого поля из результата запроса и возвращает в виде строки
    • sqlite_fetch_string — Псевдоним sqlite_fetch_single
    • sqlite_field_name — Возвращает имя указанного поля
    • sqlite_has_more — Определяет, есть ли еще записи в результате запроса
    • sqlite_has_prev — Определяет, доступна ли предыдущая запись
    • sqlite_key — Возвращает текущую позицию указателя
    • sqlite_last_error — Возвращает код ошибки последней операции с SQLite
    • sqlite_last_insert_rowid — Возвращает идентификатор последней вставленной записи
    • sqlite_libencoding — Возвращает кодировку, используемую подключенной библиотекой SQLite
    • sqlite_libversion — Возвращает версию подключенной библиотеки SQLite
    • sqlite_next — Переходит на следующую запись
    • sqlite_num_fields — Возвращает количество полей в результате запроса
    • sqlite_num_rows — Возвращает количество записей в результате запроса
    • sqlite_open — Открывает базу данных SQLite или создает ее, если она не существует
    • sqlite_popen — Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует
    • sqlite_prev — Переходит на предыдущую запись
    • sqlite_query — Выполняет запрос к базе данных и возвращает идентификатор результата
    • sqlite_rewind — Переходит к первой записи
    • sqlite_seek — Переходит к определенному номеру записи в буферизованном результирующем наборе
    • sqlite_single_query — Выполняет запрос и возвращает массив со значениями одного поля или первую запись
    • sqlite_udf_decode_binary — Декодирует бинарные данные, переданные в качестве параметров в UDF
    • sqlite_udf_encode_binary — Кодирует бинарные данные перед тем как вернуть их из UDF
    • sqlite_unbuffered_query — Выполняет запрос без буферизации результатов
    • sqlite_valid — Проверяет, есть ли еще доступные ряды


Введение

Этот модуль обеспечивает доступ к встраиваемой системе управления базами данных SQLite. SQLite - это библиотека на языке C, реализующая встраиваемый движок SQL базы данных. Программы, использующие библиотеку SQLite, могут использовать SQL базы данных без использования внешнего процесса реляционной системы управления базами данных (RDBMS).

SQLite не является клиентской библиотекой, подключающейся к большому серверу базы данных, SQLite сама является сервером и напрямую оперирует файлами базы данных на диске.

Замечание:

Более подробную информацию можно получить на сайте SQLite (» http://sqlite.org/).

Замечание: Это расширение предоставляет поддержку SQLite 2.x. Sqlite 3.x поддерживается расширением SQLite3.


Требования

Начиная с версии PHP 5.0, расширение SQLite доступно по умолчанию. Начиная с версии PHP 5.4, расширение SQLite доступно только через PECL.


Установка

Начиная с версии PHP 5.0, это расширение доступно по умолчанию. Начиная с версии PHP 5.4, расширение SQLite доступно только через PECL.

Для использования этих функций пользователи Windows должны включить php_sqlite.dll в php.ini DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

В сборках Windows необходимо также включить PDO, так как начиная с версии PHP 5.1.0 модуль SQLite также зависит от него. В итоге php.ini будет выглядеть примерно так:

extension=php_pdo.dll
extension=php_sqlite.dll
Если вы собираете PDO в качестве подгружаемого модуля в операционных системах Unix или Linux, для SQLite необходимо использовать конфигурационную опцию --with-sqlite=shared.

Серия Windows сборок версии PHP 5.0.x включала это расширение по умолчанию, без необходимости подключать какие-либо DLL-файлы.

SQLite 3 поддерживается с помощью модуля PDO SQLite.

Замечание: Установка в Windows для непривилегированных аккаунтов

В операционной системе Windows в непривилегированных аккаунтах не переменная окружения TMP по умолчанию не устанавливается. Это вынуждает sqlite создавать временные файлы в папке windows, что не очень хорошо. Для решения этой проблемы необходимо установить переменную окружения TMP для веб-сервера или для того пользовательского аккаунта, под которым он запущен. Если вы используете Apache, то этого можно достигнуть установкой директивы SetEnv в файле httpd.conf. Например:

SetEnv TMP c:/temp
Если вы не можете установить эту переменную на серверном уровне, можно реализовать эту установку с помощью скрипта:
<?php
putenv('TMP=C:/temp');
?>
Опция должна указывать на директорию, в которой веб-сервер может создавать файлы, последовательно писать в них и, соответственно, удалять. Иначе, вы получите следующее сообщение об ошибке: malformed database schema - unable to open a temporary database file for storing temporary tables (поврежденная схема базы данных - невозможно открыть временный файл с базой данных для хранения временных таблиц)


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

SQLite Опции настройки
Имя | По умолчанию | Меняемо | История изменений
sqlite.assoc_case | "0" | PHP_INI_ALL | Доступна, начиная с версии PHP 5.0.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

sqlite.assoc_case int

Использовать смешанный регистр (0), верхний регистр (1) или нижний регистр (2) в индексах ключей.

Эта опция обычно полезна, если вам нужна совместимость с другими базами данных, в которых имена полей всегда возвращаются в верхнем или нижнем регистре, вне зависимости от реально используемого имени в схеме базы данных.

Библиотека SQLite возвращает имена полей в натуральном регистре (т.е. так, как они были определены в схеме вашей базы данных). Если параметр sqlite.assoc_case установлен в 0, то натуральный регистр будет сохранен. При установке параметра в 1 или 2, PHP преобразует индексы ключей в верхний или нижний регистр, соответственно.

Использование этой опции привносит небольшое уменьшение производительности, но является НАМНОГО более быстрым решением, чем осуществление смены регистра вручную в PHP-скрипте.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Модуль SQLite определяет два типа ресурсов: соединение с базой данных и результат запроса.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Функции sqlite_fetch_array() и sqlite_current() могут принимать аргумент, задающий вид возвращаемого массива. В качестве значения этого аргумента используются следующие константы:

Константы выборки SQLite
SQLITE_ASSOC (int)
Индексами массива являются имена полей.
SQLITE_BOTH (int)
Каждому полю соответствуют два элемента массива: с числовым индексом, являющимся порядковым номером поля, и строковым индексом - именем поля.
SQLITE_NUM (int)
Индексами массива являются порядковые номера полей, начиная с 0.

Некоторые функции возвращают коды статусов. Ими являются следующие константы:

Константы статус-кодов SQLite
SQLITE_OK (int)
Успешный результат.
SQLITE_ERROR (int)
Ошибка SQL или отсутствующая база данных.
SQLITE_INTERNAL (int)
Внутренняя логическая ошибка SQLite.
SQLITE_PERM (int)
Доступ запрещен.
SQLITE_ABORT (int)
Callback-процедура запросила прерывание операции.
SQLITE_BUSY (int)
Файл с базой данных заблокирован.
SQLITE_LOCKED (int)
Таблица в базе данных заблокирована.
SQLITE_NOMEM (int)
Не удалось выделить память.
SQLITE_READONLY (int)
Попытка записи в базу данных, доступную только для чтения.
SQLITE_INTERRUPT (int)
Операция была прервана изнутри.
SQLITE_IOERR (int)
На диске произошла ошибка ввода/вывода.
SQLITE_NOTADB (int)
Открытый файл не является файлом базы данных.
SQLITE_CORRUPT (int)
Образ файла базы данных на диске поврежден.
SQLITE_FORMAT (int)
Ошибка вспомогательного форматирования базы данных.
SQLITE_NOTFOUND (int)
(Внутренняя) Таблица или запись не найдена.
SQLITE_FULL (int)
Вставка не удалась из-за переполнения базы данных.
SQLITE_CANTOPEN (int)
Не удалось открыть файл базы данных.
SQLITE_PROTOCOL (int)
Ошибка протокола блокирования базы данных.
SQLITE_EMPTY (int)
(Внутренняя) Таблица базы данных пуста.
SQLITE_SCHEMA (int)
Схема базы данных изменилась.
SQLITE_TOOBIG (int)
Слишком много данных для одного ряда таблицы.
SQLITE_CONSTRAINT (int)
Прерывание в связи с нарушением ограничения.
SQLITE_MISMATCH (int)
Несовпадение типа данных.
SQLITE_MISUSE (int)
Библиотека была использована некорректно.
SQLITE_NOLFS (int)
Использование возможностей ОС не поддерживается хостом.
SQLITE_AUTH (int)
Авторизация не удалась.
SQLITE_ROW (int)
Внутренний процесс получил еще один готовый ряд.
SQLITE_DONE (int)
Внутренний процесс закончил выполнение.


SQLite

Предопределенные классы

SQLiteDatabase

Представляет собой открытую базу данных SQLite.

Конструктор

  • __construct - Создает новый объект SQLiteDatabase

Методы

  • query - Выполняет запрос
  • queryExec - Выполняет запрос без возврата результата
  • arrayQuery - Выполняет запрос и возвращает результат в виде массива
  • singleQuery - Выполняет запрос и возвращает либо массив значений для одного столбца либо значение первого ряда
  • unbufferedQuery - Выполняет небуферизованный запрос
  • lastInsertRowid - Возвращает идентификатор последнего вставленного ряда
  • changes - Возвращает количество рядов, измененных последним запросом
  • createAggregate - Регистрирует агрегирующую UDF для использования в SQL-выражениях
  • createFunction - Регистрирует UDF для использования в SQL-выражениях
  • busyTimeout - Устанавливает или отключает таймаут при ожидании разблокировки
  • lastError - Возвращает код последней ошибки
  • fetchColumnTypes - Возвращает массив типов столбцов из определенной таблицы

SQLiteResult

Представляет собой буферизованный результирующий набор SQLite.

Методы

  • fetch - Возвращает следующий ряд из результирующего набора в виде массива
  • fetchObject - Возвращает следующий ряд из результирующего набора в виде объекта
  • fetchSingle - Возвращает первый столбец из результирующего набора в виде строки
  • fetchAll - Возвращает все ряды из результирующего набора в виде многомерного массива
  • column - Возвращает столбец из текущего ряда результирующего набора
  • numFields - Возвращает количество полей в результирующем наборе
  • fieldName - Возвращает имя определенного поля в результирующем наборе
  • current - Возвращает текущий ряд из результирующего набора в виде массива
  • key - Возвращает индекс текущего ряда
  • next - Передвигает указатель к следующему ряду
  • valid - Проверяет, есть ли еще ряды в результирующем наборе
  • rewind - Сбрасывает указатель к первому ряду результирующего набора
  • prev - Передвигает указатель к предыдущему ряду результирующего набора
  • hasPrev - Проверяет, доступен ли предыдущий ряд
  • numRows - Возвращает количество рядов в результирующем наборе
  • seek - Передвигает указатель на определенный ряд

SQLiteUnbuffered

Представляет собой небуферизованный результирующий набор SQLite. Небуферизованные результаты являются последовательными и разрешают передвигать указатель только вперед.

Методы

  • fetch - Возвращает следующий ряд из результирующего набора в виде массива
  • fetchObject - Возвращает следующий ряд из результирующего набора в виде массива
  • fetchSingle - Возвращает первый столбец из результирующего набора в виде строки
  • fetchAll - Возвращает все ряды из результирующего набора в виде многомерного массива
  • column - Возвращает столбец из текущего ряда результирующего набора
  • numFields - Возвращает количество полей в результирующем наборе
  • fieldName - Возвращает имя определенного поля в результирующем наборе
  • current - Возвращает текущий ряд из результирующего набора в виде массива
  • next - Передвигает указатель к следующему ряду
  • valid - Проверяет, есть ли еще ряды в результирующем наборе

Содержание

  • sqlite_array_query — Выполняет запрос к базе данных и возвращает результат в виде массива
  • sqlite_busy_timeout — Устанавливает или полностью отключает время ожидания
  • sqlite_changes — Возвращает количество записей, которые были изменены последним SQL-запросом
  • sqlite_close — Закрывает открытую базу данных SQLite
  • sqlite_column — Выбирает столбец из текущей записи результата запроса
  • sqlite_create_aggregate — Регистрирует агрегирующую функцию для использования в SQL-запросах
  • sqlite_create_function — Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_current — Возвращает текущую запись из результирующего набора в виде массива
  • sqlite_error_string — Возвращает строку с описанием ошибки
  • sqlite_escape_string — Экранирует спецсимволы в строке для использования в запросе
  • sqlite_exec — Выполняет запрос, не возвращающий записей
  • sqlite_factory — Открывает базу данных SQLite и возвращает объект
  • sqlite_fetch_all — Выбирает все записи из результата запроса и возвращает многомерный массив
  • sqlite_fetch_array — Выбирает следующую запись из результата запроса и возвращает массив
  • sqlite_fetch_column_types — Возвращает массив, содержащий информацию о типах полей в таблице
  • sqlite_fetch_object — Выбирает следующую запись из результата запроса и возвращает объект
  • sqlite_fetch_single — Выбирает значение первого поля из результата запроса и возвращает в виде строки
  • sqlite_fetch_string — Псевдоним sqlite_fetch_single
  • sqlite_field_name — Возвращает имя указанного поля
  • sqlite_has_more — Определяет, есть ли еще записи в результате запроса
  • sqlite_has_prev — Определяет, доступна ли предыдущая запись
  • sqlite_key — Возвращает текущую позицию указателя
  • sqlite_last_error — Возвращает код ошибки последней операции с SQLite
  • sqlite_last_insert_rowid — Возвращает идентификатор последней вставленной записи
  • sqlite_libencoding — Возвращает кодировку, используемую подключенной библиотекой SQLite
  • sqlite_libversion — Возвращает версию подключенной библиотеки SQLite
  • sqlite_next — Переходит на следующую запись
  • sqlite_num_fields — Возвращает количество полей в результате запроса
  • sqlite_num_rows — Возвращает количество записей в результате запроса
  • sqlite_open — Открывает базу данных SQLite или создает ее, если она не существует
  • sqlite_popen — Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует
  • sqlite_prev — Переходит на предыдущую запись
  • sqlite_query — Выполняет запрос к базе данных и возвращает идентификатор результата
  • sqlite_rewind — Переходит к первой записи
  • sqlite_seek — Переходит к определенному номеру записи в буферизованном результирующем наборе
  • sqlite_single_query — Выполняет запрос и возвращает массив со значениями одного поля или первую запись
  • sqlite_udf_decode_binary — Декодирует бинарные данные, переданные в качестве параметров в UDF
  • sqlite_udf_encode_binary — Кодирует бинарные данные перед тем как вернуть их из UDF
  • sqlite_unbuffered_query — Выполняет запрос без буферизации результатов
  • sqlite_valid — Проверяет, есть ли еще доступные ряды


Выполняет запрос к базе данных и возвращает результат в виде массива

  • « SQLite
  • sqlite_busy_timeout »
  • PHP Manual
  • SQLite
  • Выполняет запрос к базе данных и возвращает результат в виде массива

sqlite_array_query

SQLiteDatabase::arrayQuery

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_array_query -- SQLiteDatabase::arrayQuery — Выполняет запрос к базе данных и возвращает результат в виде массива

Описание

array sqlite_array_query ( resource $dbhandle , string $query [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array sqlite_array_query ( string $query , resource $dbhandle [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Объектно-ориентированный стиль (метод):

public array SQLiteDatabase::arrayQuery ( string $query [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

sqlite_array_query() выполняет указанный запрос
и возвращает массив с полным результирующим набором. Использование
sqlite_array_query() идентично
использованию sqlite_query() с последующим вызовом
sqlite_fetch_array() для каждой записи результата
запроса с сохранением записей в массиве, как показано в приведенном ниже
примере. sqlite_array_query() выполняется значительно
быстрее, чем вышеупомянутая последовательность.

Подсказка

sqlite_array_query() наилучшим образом подходит для запросов, возвращающих до 45 записей. Для запросов, возвращающих большие наборы записей, оптимальным с точки зрения быстродействия является использование функции sqlite_unbuffered_query().

Список параметров

query

Выполняемый запрос.

Данные, используемые в запросе, должны быть корректно экранированы.

dbhandle

Ресурс базы данных SQLite, возвращенный из sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр dbhandle является первым параметром функции.

Возвращаемые значения

Возвращает массив с полным результирующим набором, иначе возвращается FALSE.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Примеры

Пример #1 Процедурный стиль

<?php
$dbhandle = sqlite_open('sqlitedb');
$result = sqlite_array_query($dbhandle, 'SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Пример #2 Объектно-ориентированный стиль

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$result = $dbhandle->arrayQuery('SELECT name, email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Смотрите также

  • sqlite_query() - Выполняет запрос к базе данных и возвращает идентификатор результата
  • sqlite_fetch_array() - Выбирает следующую запись из результата запроса и возвращает массив
  • sqlite_fetch_string() - Псевдоним sqlite_fetch_single


Устанавливает или полностью отключает время ожидания

  • « sqlite_array_query
  • sqlite_changes »
  • PHP Manual
  • SQLite
  • Устанавливает или полностью отключает время ожидания

sqlite_busy_timeout

SQLiteDatabase::busyTimeout

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_busy_timeout -- SQLiteDatabase::busyTimeout — Устанавливает или полностью отключает время ожидания

Описание

void sqlite_busy_timeout ( resource $dbhandle , int $milliseconds )

Объектно-ориентированный стиль (метод):

public void SQLiteDatabase::busyTimeout ( int $milliseconds )

Устанавливает максимальное время, в миллисекундах, в течение которого SQLite ожидает готовности базы данных, заданной аргументом dbhandle.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

milliseconds

Количество миллисекунд. Если равен 0, то в случае, то функции-обработчики, вызываемые при блокировке базы данных, будут отключены и SQLITE немедленно вернет статус-код SQLITE_BUSY, если другой процесс/нить заблокировал базу данных для обновления.

По умолчанию, при открытии базы данных, PHP устанавливает время ожидания в 60 секунд.

Замечание:

В одной секунде содержится одна тысяча (1000) миллисекунд.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Процедурный стиль

<?php
$dbhandle = sqlite_open('sqlitedb');
sqlite_busy_timeout($dbhandle, 10000); // установка таймаута в 10 секунд
sqlite_busy_timeout($dbhandle, 0); // отключение функции-обработчика
?>

Пример #2 Объектно-ориентированный стиль

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
$dbhandle->busyTimeout(10000); // 10 секунд
$dbhandle->busyTimeout(0); // отключение
?>

Смотрите также

  • sqlite_open() - Открывает базу данных SQLite или создает ее, если она не существует


Возвращает количество записей, которые были изменены последним SQL-запросом

  • « sqlite_busy_timeout
  • sqlite_close »
  • PHP Manual
  • SQLite
  • Возвращает количество записей, которые были изменены последним SQL-запросом

sqlite_changes

SQLiteDatabase::changes

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_changes -- SQLiteDatabase::changes — Возвращает количество записей, которые были изменены последним SQL-запросом

Описание

int sqlite_changes ( resource $dbhandle )

Объектно-ориентированный стиль (метод):

public int SQLiteDatabase::changes ( void )

Возвращает количество записей, которые были изменены последним SQL-запросом к базе данных dbhandle.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

Возвращаемые значения

Возвращает количество измененных записей.

Примеры

Пример #1 Процедурный стиль

<?php
$dbhandle = sqlite_open('mysqlitedb');
$query = sqlite_query($dbhandle, "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!$query) {
    exit('Ошибка в запросе.');
} else {
    echo 'Количество измененных записей: ', sqlite_changes($dbhandle);
}
?>

Пример #2 Объектно-ориентированный стиль

<?php
$dbhandle = new SQLiteDatabase('mysqlitedb');
$query = $dbhandle->query("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'");
if (!$query) {
    exit('Ошибка в запросе.');
} else {
    echo 'Количество измененных записей: ', $dbhandle->changes();
}
?>

Смотрите также

  • sqlite_open() - Открывает базу данных SQLite или создает ее, если она не существует


Закрывает открытую базу данных SQLite

  • « sqlite_changes
  • sqlite_column »
  • PHP Manual
  • SQLite
  • Закрывает открытую базу данных SQLite

sqlite_close

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_close — Закрывает открытую базу данных SQLite

Описание

void sqlite_close ( resource $dbhandle )

Закрывает базу данных, идентификатор соединения с которой передан через аргумент dbhandle. Если соединение с базой данных было постоянным, также удаляет это соединение из списка постоянных.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования sqlite_close()

<?php
$dbhandle = sqlite_open('sqlitedb');
sqlite_close($dbhandle);
?>

Смотрите также

  • sqlite_open() - Открывает базу данных SQLite или создает ее, если она не существует
  • sqlite_popen() - Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует


Выбирает столбец из текущей записи результата запроса

  • « sqlite_close
  • sqlite_create_aggregate »
  • PHP Manual
  • SQLite
  • Выбирает столбец из текущей записи результата запроса

sqlite_column

SQLiteResult::column

SQLiteUnbuffered::column

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_column -- SQLiteResult::column -- SQLiteUnbuffered::column — Выбирает столбец из текущей записи результата запроса

Описание

mixed sqlite_column ( resource $result , mixed $index_or_name [, bool $decode_binary = true ] )
mixed SQLiteResult::column ( mixed $index_or_name [, bool $decode_binary = true ] )
mixed SQLiteUnbuffered::column ( mixed $index_or_name [, bool $decode_binary = true ] )

Выбирает значение столбца с именем index_or_name (если это строка) или его порядковый номер index_or_name (если это целое число) из текущей записи результата запроса result.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

index_or_name

Индекс или имя возвращаемого столбца.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Возвращаемые значения

Возвращает значение столбца.

Примечания

Замечание:

Используйте эту функцию с запросами, возвращающими большие наборы данных с большим количеством полей, либо если поля содержат большие объемы данных.

Смотрите также

  • sqlite_fetch_string() - Псевдоним sqlite_fetch_single


Регистрирует агрегирующую функцию для использования в SQL-запросах

  • « sqlite_column
  • sqlite_create_function »
  • PHP Manual
  • SQLite
  • Регистрирует агрегирующую функцию для использования в SQL-запросах

sqlite_create_aggregate

SQLiteDatabase::createAggregate

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_create_aggregate -- SQLiteDatabase::createAggregate — Регистрирует агрегирующую функцию для использования в SQL-запросах

Описание

void sqlite_create_aggregate ( resource $dbhandle , string $function_name , callable $step_func , callable $finalize_func [, int $num_args = -1 ] )

Объектно-ориентированный стиль (метод):

public void SQLiteDatabase::createAggregate ( string $function_name , callable $step_func , callable $finalize_func [, int $num_args = -1 ] )

sqlite_create_aggregate() похожа на sqlite_create_function(), за исключением того, что регистрирует функцию, которая может быть использована для вычисления результата на основе всех записей результата запроса.

Главное отличие этой функции от sqlite_create_function() состоит в том, что для работы агрегирующей функции необходимы 2 функции; step_func вызывается для каждой записи из результата запроса. Эта функция должна аккумулировать результат и сохранять его в контекстной переменной. После обработки всех записей, вызывается finalize_func, которая должна обработать данные из контекстной переменной и вернуть результат. Callback-функции должны возвращать тип, который сможет понять SQLite (т.е. скалярный).

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

function_name

Имя функции, используемой в SQL-запросах.

step_func

Callback-функция, вызываемая для каждого ряда результирующего набора. Функция принимает параметры &$context, $value, ....

finalize_func

Callback-функция для агрегации собранных данных из каждого ряда. Функция принимает параметр &$context и должна вернуть итоговый результат агрегации.

num_args

Подсказка парсеру SQLite, если callback-функция принимает известное количество параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример агрегирующей функции max_length

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$dbhandle = sqlite_open(':memory:');
sqlite_query($dbhandle, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($dbhandle, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

sqlite_create_aggregate($dbhandle, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($dbhandle, 'SELECT max_len(a) from strings'));

?>

В этом примере, мы создаем агрегирующую функцию, которая возвращает длину самой длинной строки в одном из полей результата запроса. Для каждой записи, вызывается функция max_len_step, которой помимо строки передается контекстная переменная context. Эту переменную вы можете использовать по своему усмотрению для накопления результатов вычислений. В нашем примере, в этой переменной хранится максимальная длина строки; если длина строки string больше, чем значение, сохраненное в контекстной переменной, контекстной переменной присваивается новое значение.

После обработки всех записей, SQLite вызовет функцию max_len_finalize для определения результата агрегирующей функции. Здесь можно было бы провести вычисления, основанные на значении контекстной переменной context, но в этом простейшем примере, все вычисления были произведены в процессе обработки запроса, и остается только вернуть полученное значение.

Замечание:

Приведенный выше пример будет работать некорректно, если применить созданную функцию к бинарным данным. Описание функции sqlite_udf_decode_binary() объясняет, почему это происходит и как этого избежать.

Подсказка

НЕ РЕКОМЕНДУЕТСЯ сохранять все полученные значения в контекстной переменной и затем производить все вычисления на последнем шаге, так как при этом SQLite может израсходовать большое количество памяти в процессе обработки запроса - представьте, сколько памяти потребуется, чтобы сохранить в памяти миллион записей, по 32 байта каждая.

Подсказка

sqlite_create_function() и sqlite_create_aggregate() могут быть использованы для переопределения встроенных функций SQLite.

Смотрите также

  • sqlite_create_function() - Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_udf_encode_binary() - Кодирует бинарные данные перед тем как вернуть их из UDF
  • sqlite_udf_decode_binary() - Декодирует бинарные данные, переданные в качестве параметров в UDF


Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах

  • « sqlite_create_aggregate
  • sqlite_current »
  • PHP Manual
  • SQLite
  • Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах

sqlite_create_function

SQLiteDatabase::createFunction

(PHP 5 < 5.4.0, sqlite >= 1.0.0)

sqlite_create_function -- SQLiteDatabase::createFunction — Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах

Описание

void sqlite_create_function ( resource $dbhandle , string $function_name , callable $callback [, int $num_args = -1 ] )

Объектно-ориентированный стиль (метод):

public void SQLiteDatabase::createFunction ( string $function_name , callable $callback [, int $num_args = -1 ] )

sqlite_create_function() позволяет зарегистрировать PHP функцию для использования в SQLite в качестве UDF (User Defined Function - функция, определенная пользователем), что позволяет использовать эту функцию в SQL-запросах.

Определенная таким образом функция может быть использована в любом SQL-запросе, допускающем использование функций, например SELECT и UPDATE, а также в триггерах.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

function_name

Имя функции, используемой в SQL-запросах.

callback

Callback-функция, обрабатывающая указанную SQL-функцию.

Замечание: Callback-функции должны возвращать тип, понятный SQLite (т.е. скалярный).

num_args

Подсказка парсеру SQLite, если callback-функция принимает известное количество аргументов.

Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр dbhandle является первым параметром функции.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования sqlite_create_function()

<?php
function md5_and_reverse($string)
{
    return strrev(md5($string));
}

if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    sqlite_create_function($dbhandle, 'md5rev', 'md5_and_reverse', 1);

    $sql  = 'SELECT md5rev(filename) FROM files';
    $rows = sqlite_array_query($dbhandle, $sql);
} else {
    echo 'Ошибка открытия базы sqlite: ' . $sqliteerror;
    exit;
}
?>

В этом примере мы определяем функцию, которая вычисляет MD5-хэш строки, а затем обращает полученную строку. При выполнении SQL-запроса, значение поля filename преобразуется нашей функцией. Массив $rows содержит обработанный результат.

Достоинство этой техники в том, что нет необходимости обрабатывать полученный результат в цикле.

При открытии базы данных, регистрируется функция с именем php. Эта функция может быть использована для вызова любой функции PHP без регистрации.

Пример #2 Пример использования функции php

<?php
$rows = sqlite_array_query($dbhandle, "SELECT php('md5', filename) from files");
?>

В этом примере, функция md5() будет вызвана для поля filename в каждой записи.

Замечание:

Для повышения производительности, PHP не кодирует и не декодирует бинарные данные, передаваемые в UDF и возвращаемые из нее. Вы должны позаботиться о кодировании/раскодировании самостоятельно, если есть необходимость обрабатывать бинарные данные. Смотрите описания функций sqlite_udf_encode_binary() и sqlite_udf_decode_binary().

Подсказка

Не рекомендуется использовать UDF для обработки бинарных данных, за исключением случаев, когда нет необходимости достичь высокого быстродействия.

Подсказка

sqlite_create_function() и sqlite_create_aggregate() могут быть использованы для переопределения встроенных функций SQLite.

Смотрите также

  • sqlite_create_aggregate() - Регистрирует агрегирующую функцию для использования в SQL-запросах


Возвращает текущую запись из результирующего набора в виде массива

  • « sqlite_create_function
  • sqlite_error_string »
  • PHP Manual
  • SQLite
  • Возвращает текущую запись из результирующего набора в виде массива

sqlite_current

SQLiteResult::current

SQLiteUnbuffered::current

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_current -- SQLiteResult::current -- SQLiteUnbuffered::current — Возвращает текущую запись из результирующего набора в виде массива

Описание

array sqlite_current ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Объектно-ориентированный стиль (метод):

array SQLiteResult::current ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array SQLiteUnbuffered::current ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

sqlite_current() аналогична sqlite_fetch_array() за исключением того, что она не переходит к следующей записи до выборки данных, а просто возвращает данные из текущий позиции.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Возвращаемые значения

Возвращает текущую запись из результирующего набора в виде массива. Если текущая позиция в результате запроса находится за последней записью, эта функция возвращает FALSE.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Смотрите также

  • sqlite_seek() - Переходит к определенному номеру записи в буферизованном результирующем наборе
  • sqlite_next() - Переходит на следующую запись
  • sqlite_fetch_array() - Выбирает следующую запись из результата запроса и возвращает массив


Возвращает строку с описанием ошибки

  • « sqlite_current
  • sqlite_escape_string »
  • PHP Manual
  • SQLite
  • Возвращает строку с описанием ошибки

sqlite_error_string

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_error_string — Возвращает строку с описанием ошибки

Описание

string sqlite_error_string ( int $error_code )

Возвращает читабельное описание ошибки с кодом error_code, полученного из функции sqlite_last_error().

Список параметров

error_code

Код ошибки, полученный из sqlite_last_error().

Возвращаемые значения

Возвращает читабельное описание ошибки с кодом error_code в виде string.

Смотрите также

  • sqlite_last_error() - Возвращает код ошибки последней операции с SQLite


Экранирует спецсимволы в строке для использования в запросе

  • « sqlite_error_string
  • sqlite_exec »
  • PHP Manual
  • SQLite
  • Экранирует спецсимволы в строке для использования в запросе

sqlite_escape_string

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_escape_string — Экранирует спецсимволы в строке для использования в запросе

Описание

string sqlite_escape_string ( string $item )

sqlite_escape_string() экранирует спецсимволы в строке item для использования в запросе SQLite. Одиночные кавычки (') будут удвоены, а также будет произведена проверка на наличие небезопасных бинарных данных в строке.

Хотя кодирование и позволяет вставлять бинарные данные, операторы сравнения и LIKE для полей, содержащих такие данные, будут работать некорректно. На практике, однако, это не создает проблем, так как база данных должна быть спроектирована таким образом, чтобы не было необходимости использовать операции сравнения с бинарными данными. Фактически, для хранения таких данных лучше подходят другие способы, например, файлы.

Список параметров

item

Экранируемая строка (string).

Если item содержит символ NUL или начинается с символа с кодом 0x01, будет применена специальная схема кодирования, позволяющая безопасно хранить бинарные данные.

Возвращаемые значения

Возвращает экранируемую строку (string) пригодную для использования в SQL-запросе SQLite.

Примечания

Замечание:

    Не применяйте эту функцию к значениям, возвращаемым UDF, созданных с
    использованием sqlite_create_function() или
    sqlite_create_aggregate() - используйте
    вместо этого sqlite_udf_encode_binary().

Внимание

Функцию addslashes() НЕЛЬЗЯ использовать для экранирования строк для запросов к SQLite. Это приведет к неожиданным результатам при выборке данных.

Смотрите также

  • sqlite_udf_encode_binary() - Кодирует бинарные данные перед тем как вернуть их из UDF


Выполняет запрос, не возвращающий записей

  • « sqlite_escape_string
  • sqlite_factory »
  • PHP Manual
  • SQLite
  • Выполняет запрос, не возвращающий записей

sqlite_exec

SQLiteDatabase::exec

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.3)

sqlite_exec -- SQLiteDatabase::exec — Выполняет запрос, не возвращающий записей

Описание

bool sqlite_exec ( resource $dbhandle , string $query [, string &$error_msg ] )
bool sqlite_exec ( string $query , resource $dbhandle )

Объектно-ориентированный стиль (метод):

public bool SQLiteDatabase::queryExec ( string $query [, string &$error_msg ] )

Выполняет запрос query к базе данных, идентификатор которой задан аргументом dbhandle.

Внимание

SQLite выполнит несколько запросов, разделенных точкой с запятой, за один вызов функции. Это можно использовать, например, для выполнения запросов, прочитанных из файла.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

query

Выполняемый запрос.

Данные в запросе должны быть корректно проэкранированы.

error_msg

Данная переменная будет заполнена текстом ошибки, если таковая произойдет. Это особенно важно, потому что синтаксические ошибки SQL не могут быть получены из функции sqlite_last_error().

Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр dbhandle является первым параметром функции.

Возвращаемые значения

Это функция возвращает булевый результат: TRUE в случае успеха и FALSE в случае ошибки. Если вам необходимо запустить запрос, возвращающий результат, используйте функцию sqlite_query().

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр error_msg

Примеры

Пример #1 Пример с использованием процедурного стиля

<?php
$dbhandle = sqlite_open('mysqlitedb');
$query = sqlite_exec($dbhandle, "UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
if (!$query) {
    exit("Ошибка в запросе: '$error'");
} else {
    echo 'Количество затронутых рядов: ', sqlite_changes($dbhandle);
}
?>

Пример #2 Object-oriented example

<?php
$dbhandle = new SQLiteDatabase('mysqlitedb');
$query = $dbhandle->queryExec("UPDATE users SET email='jDoe@example.com' WHERE username='jDoe'", $error);
if (!$query) {
    exit("Ошибка в запросе: '$error'");
} else {
    echo 'Количество затронутых рядов: ', $dbhandle->changes();
}
?>

Смотрите также

  • sqlite_query() - Выполняет запрос к базе данных и возвращает идентификатор результата
  • sqlite_unbuffered_query() - Выполняет запрос без буферизации результатов
  • sqlite_array_query() - Выполняет запрос к базе данных и возвращает результат в виде массива


Открывает базу данных SQLite и возвращает объект

  • « sqlite_exec
  • sqlite_fetch_all »
  • PHP Manual
  • SQLite
  • Открывает базу данных SQLite и возвращает объект

sqlite_factory

(PHP 5 < 5.4.0)

sqlite_factory — Открывает базу данных SQLite и возвращает объект

Описание

SQLiteDatabase sqlite_factory ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

sqlite_factory() похожа на sqlite_open() в том, что она открывает базу данных SQLite database или пытается создать ее, если она не существует. Однако, в качестве результата возвращается объект SQLiteDatabase, а не ресурс. Для дальнейшего использования и замечаний смотрите страницу sqlite_open().

Список параметров

filename

Путь к базе данных SQLite.

mode

Режим файла. Предназначается для открытия базы данных в режиме только для чтения. На данный момент этот параметр игнорируется библиотекой sqlite. Значением по умолчанию является 0666, рекомендуется использовать именно это значение.

error_message

Передается по ссылке и устанавливается в понятное сообщение об ошибке, разъясняющее, почему база данных не может быть открыта, в случае возникновения ошибки.

Возвращаемые значения

Возвращает объект SQLiteDatabase в случае успеха, или NULL в случае ошибки.

Примеры

Пример #1 Пример использования sqlite_factory()

<?php
$dbhandle = sqlite_factory('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

/* процедурный эквивалент: */

$dbhandle = new SQLiteDatabase('sqlitedb');
$dbhandle->query('SELECT user_id, username FROM users');

?>

Смотрите также

  • sqlite_open() - Открывает базу данных SQLite или создает ее, если она не существует
  • sqlite_popen() - Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует


Выбирает все записи из результата запроса и возвращает многомерный массив

  • « sqlite_factory
  • sqlite_fetch_array »
  • PHP Manual
  • SQLite
  • Выбирает все записи из результата запроса и возвращает многомерный массив

sqlite_fetch_all

SQLiteResult::fetchAll

SQLiteUnbuffered::fetchAll

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_fetch_all -- SQLiteResult::fetchAll -- SQLiteUnbuffered::fetchAll — Выбирает все записи из результата запроса и возвращает многомерный массив

Описание

array sqlite_fetch_all ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Объектно-ориентированный стиль (метод):

array SQLiteResult::fetchAll ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array SQLiteUnbuffered::fetchAll ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

sqlite_fetch_all() возвращает массив с полным результирующим набором из ресурса result. Она похожа на вызов функци sqlite_query() (или sqlite_unbuffered_query()), а затем sqlite_fetch_array() для каждого ряда результирующего набора.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Возвращаемые значения

Возвращает массив с оставшимися рядами в результирующем наборе. Возвращает все ряды при вызове сразу после sqlite_query(). При вызове после sqlite_fetch_array(), функция вернет оставшиеся ряды. Если в результирующем наборе больше нет рядов, то будет возвращен пустой массив.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Примеры

Пример #1 Процедурный стиль

<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
$result = sqlite_fetch_all($query, SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Пример #2 Объектно-ориентированный стиль

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');

$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // буферизованный результирующий набор
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // небуферизованный результирующий набор

$result = $query->fetchAll(SQLITE_ASSOC);
foreach ($result as $entry) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Смотрите также

  • sqlite_fetch_array() - Выбирает следующую запись из результата запроса и возвращает массив


Выбирает следующую запись из результата запроса и возвращает массив

  • « sqlite_fetch_all
  • sqlite_fetch_column_types »
  • PHP Manual
  • SQLite
  • Выбирает следующую запись из результата запроса и возвращает массив

sqlite_fetch_array

SQLiteResult::fetch

SQLiteUnbuffered::fetch

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_fetch_array -- SQLiteResult::fetch -- SQLiteUnbuffered::fetch — Выбирает следующую запись из результата запроса и возвращает массив

Описание

array sqlite_fetch_array ( resource $result [, int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Объектно-ориентированный стиль (метод):

array SQLiteResult::fetch ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )
array SQLiteUnbuffered::fetch ([ int $result_type = SQLITE_BOTH [, bool $decode_binary = true ]] )

Выбирает следующую запись из результата запроса, заданного аргументом result. Если результат больше не содержит данных, возвращает FALSE, иначе возвращает массив, содержащий данные.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Возвращаемые значения

Возвращает массив со следующей записью в результирующем наборе, или FALSE, если следующая позиция находится за последней записью.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Примеры

Пример #1 Процедурный стиль

<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
while ($entry = sqlite_fetch_array($query, SQLITE_ASSOC)) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Пример #2 Объектно-ориентированный стиль

<?php
$dbhandle = new SQLiteDatabase('sqlitedb');

$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25'); // буферизованный результирующий набор
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25'); // небуферизованный результирующий набор

while ($entry = $query->fetch(SQLITE_ASSOC)) {
    echo 'Имя: ' . $entry['name'] . '  E-mail: ' . $entry['email'];
}
?>

Смотрите также

  • sqlite_array_query() - Выполняет запрос к базе данных и возвращает результат в виде массива
  • sqlite_fetch_string() - Псевдоним sqlite_fetch_single


Возвращает массив, содержащий информацию о типах полей в таблице

  • « sqlite_fetch_array
  • sqlite_fetch_object »
  • PHP Manual
  • SQLite
  • Возвращает массив, содержащий информацию о типах полей в таблице

sqlite_fetch_column_types

SQLiteDatabase::fetchColumnTypes

(PHP 5 < 5.4.0)

sqlite_fetch_column_types -- SQLiteDatabase::fetchColumnTypes — Возвращает массив, содержащий информацию о типах полей в таблице

Описание

array sqlite_fetch_column_types ( string $table_name , resource $dbhandle [, int $result_type = SQLITE_ASSOC ] )

Объектно-ориентированный стиль (метод):

public array SQLiteDatabase::fetchColumnTypes ( string $table_name [, int $result_type = SQLITE_ASSOC ] )

sqlite_fetch_column_types() возвращает массив, содержащий информацию о типах полей в указанной таблице table_name.

Список параметров

table_name

Название опрашиваемой таблицы.

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() при использовании процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

result_type

Необязательный параметр result_type принимает константу в качестве значения и определяет способ индексации возвращаемого массива. Использование константы SQLITE_ASSOC вернет только ассоциативные индексы (именованные поля), тогда как использование SQLITE_NUM вернет только числовые индексы (порядковые номера полей). По умолчанию используется SQLITE_ASSOC.

Возвращаемые значения

Возвращает массив с типами полей, или FALSE в случае ошибки.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр result_type

Примеры

Пример #1 Процедурный стиль

<?php
$db = sqlite_open('mysqlitedb');
sqlite_query($db, 'CREATE TABLE foo (bar varchar(10), arf text)');
$cols = sqlite_fetch_column_types('foo', $db, SQLITE_ASSOC);

foreach ($cols as $column => $type) {
    echo "Поле: $column  Тип: $type\n";
}
?>

Пример #2 Объектно-ориентированный стиль

<?php
$db = new SQLiteDatabase('mysqlitedb');
$db->query('CREATE TABLE foo (bar varchar(10), arf text)');
$cols = $db->fetchColumnTypes('foo', SQLITE_ASSOC);

foreach ($cols as $column => $type) {
    echo "Поле: $column  Тип: $type\n";
}
?>

Результат выполнения данного примера:

Поле: bar  Тип: VARCHAR
Поле: arf  Тип: TEXT


Выбирает следующую запись из результата запроса и возвращает объект

  • « sqlite_fetch_column_types
  • sqlite_fetch_single »
  • PHP Manual
  • SQLite
  • Выбирает следующую запись из результата запроса и возвращает объект

sqlite_fetch_object

SQLiteResult::fetchObject

SQLiteUnbuffered::fetchObject

(PHP 5 < 5.4.0)

sqlite_fetch_object -- SQLiteResult::fetchObject -- SQLiteUnbuffered::fetchObject — Выбирает следующую запись из результата запроса и возвращает объект

Описание

object sqlite_fetch_object ( resource $result [, string $class_name [, array $ctor_params [, bool $decode_binary = true ]]] )

Объектно-ориентированный стиль (метод):

object SQLiteResult::fetchObject ([ string $class_name [, array $ctor_params [, bool $decode_binary = true ]]] )
object SQLiteUnbuffered::fetchObject ([ string $class_name [, array $ctor_params [, bool $decode_binary = true ]]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Выбирает значение первого поля из результата запроса и возвращает в виде строки

  • « sqlite_fetch_object
  • sqlite_fetch_string »
  • PHP Manual
  • SQLite
  • Выбирает значение первого поля из результата запроса и возвращает в виде строки

sqlite_fetch_single

SQLiteResult::fetchSingle

SQLiteUnbuffered::fetchSingle

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.1)

sqlite_fetch_single -- SQLiteResult::fetchSingle -- SQLiteUnbuffered::fetchSingle — Выбирает значение первого поля из результата запроса и возвращает в виде строки

Описание

string sqlite_fetch_single ( resource $result [, bool $decode_binary = true ] )

Объектно-ориентированный стиль (метод):

string SQLiteResult::fetchSingle ([ bool $decode_binary = true ] )
string SQLiteUnbuffered::fetchSingle ([ bool $decode_binary = true ] )

sqlite_fetch_single() идентична sqlite_fetch_array() за исключением того, что возвращается значение только первого поля.

Использование этой функции является оптимальным способом получения данных, когда нужно получить значение только одного поля.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

decode_binary

Когда параметр decode_binary установлен в TRUE (по умолчанию), PHP будет декодировать бинарный код, примененный к данным, как если бы они были закодированы функцией sqlite_escape_string(). Обычно вам следует оставлять это значение по умолчанию, если только вы не работаете с базой данных sqlite, которая была создана в ином приложении.

Возвращаемые значения

Возвращает значение первого поля в виде строки.

Примеры

Пример #1 Пример использования sqlite_fetch_single()

<?php
if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {

    $sql = "SELECT id FROM sometable WHERE id = 42";
    $res = sqlite_query($dbhandle, $sql);

    if (sqlite_num_rows($res) > 0) {
        echo sqlite_fetch_single($res); // 42
    }

    sqlite_close($dbhandle);
}
?>

Смотрите также

  • sqlite_fetch_array() - Выбирает следующую запись из результата запроса и возвращает массив


Псевдоним sqlite_fetch_single

  • « sqlite_fetch_single
  • sqlite_field_name »
  • PHP Manual
  • SQLite
  • Псевдоним sqlite_fetch_single

sqlite_fetch_string

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_fetch_string — Псевдоним sqlite_fetch_single()

Описание

Эта функция является псевдонимом: sqlite_fetch_single().


Возвращает имя указанного поля

  • « sqlite_fetch_string
  • sqlite_has_more »
  • PHP Manual
  • SQLite
  • Возвращает имя указанного поля

sqlite_field_name

SQLiteResult::fieldName

SQLiteUnbuffered::fieldName

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_field_name -- SQLiteResult::fieldName -- SQLiteUnbuffered::fieldName — Возвращает имя указанного поля

Описание

string sqlite_field_name ( resource $result , int $field_index )

Объектно-ориентированный стиль (метод):

string SQLiteResult::fieldName ( int $field_index )
string SQLiteUnbuffered::fieldName ( int $field_index )

При передаче номера поля field_index функция sqlite_field_name() возвращает имя это поля из результата запроса result.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

field_index

Порядковый номер поля в результирующем наборе.

Возвращаемые значения

Возвращает имя поля в результирующем наборе SQLite по указанному порядковому номеру поля, или FALSE в случае ошибки.

Имена столбцов, возвращаемые SQLITE_ASSOC и SQLITE_BOTH, будут приведены к нужному регистру согласно значению конфигурационной опции sqlite.assoc_case.


Определяет, есть ли еще записи в результате запроса

  • « sqlite_field_name
  • sqlite_has_prev »
  • PHP Manual
  • SQLite
  • Определяет, есть ли еще записи в результате запроса

sqlite_has_more

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_has_more — Определяет, есть ли еще записи в результате запроса

Описание

bool sqlite_has_more ( resource $result )

Определяет, есть ли еще записи в результате запроса.

Список параметров

result

Ресурс результата SQLite.

Возвращаемые значения

sqlite_has_more() возвращает TRUE если результат запроса result содержит записи, доступные для выборки, иначе возвращает FALSE.

Смотрите также

  • sqlite_num_rows() - Возвращает количество записей в результате запроса
  • sqlite_changes() - Возвращает количество записей, которые были изменены последним SQL-запросом


Определяет, доступна ли предыдущая запись

  • « sqlite_has_more
  • sqlite_key »
  • PHP Manual
  • SQLite
  • Определяет, доступна ли предыдущая запись

sqlite_has_prev

SQLiteResult::hasPrev

(PHP 5 < 5.4.0)

sqlite_has_prev -- SQLiteResult::hasPrev — Определяет, доступна ли предыдущая запись

Описание

bool sqlite_has_prev ( resource $result )

Объектно-ориентированный стиль (метод):

bool SQLiteResult::hasPrev ( void )

Определяет, доступны ли предыдущие записи в указанном результате.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает TRUE если предыдущая запись результата запроса result доступна, иначе возвращает FALSE.

Смотрите также

  • sqlite_prev() - Переходит на предыдущую запись
  • sqlite_has_more() - Определяет, есть ли еще записи в результате запроса
  • sqlite_num_rows() - Возвращает количество записей в результате запроса


Возвращает текущую позицию указателя

  • « sqlite_has_prev
  • sqlite_last_error »
  • PHP Manual
  • SQLite
  • Возвращает текущую позицию указателя

sqlite_key

SQLiteResult::key

(PHP 5 >= 5.1.0 and < 5.4.0)

sqlite_key -- SQLiteResult::key — Возвращает текущую позицию указателя

Описание

Объектно-ориентированный стиль (метод):

int SQLiteResult::key ( void )

SQLiteResult::key() возвращает текущую позицию указателя в буферизованном результирующем наборе result.

В отличии от остальных функций SQLite, эта функция не имеет процедурной версии и может вызывать только как метод объекта SQLiteResult.

Возвращаемые значения

Возвращает текущую позицию указателя в буферизованном результирующем наборе result.

Смотрите также

  • sqlite_next() - Переходит на следующую запись
  • sqlite_current() - Возвращает текущую запись из результирующего набора в виде массива
  • sqlite_rewind() - Переходит к первой записи


Возвращает код ошибки последней операции с SQLite

  • « sqlite_key
  • sqlite_last_insert_rowid »
  • PHP Manual
  • SQLite
  • Возвращает код ошибки последней операции с SQLite

sqlite_last_error

SQLiteDatabase::lastError

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_last_error -- SQLiteDatabase::lastError — Возвращает код ошибки последней операции с SQLite

Описание

int sqlite_last_error ( resource $dbhandle )

Объектно-ориентированный стиль (метод):

public int SQLiteDatabase::lastError ( void )

Возвращает код ошибки последней операции с базой данных с идентификатором dbhandle, или 0 в случае отсутствия ошибок. Описание ошибки можно получить с помощью функции sqlite_error_string().

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

Возвращаемые значения

Возвращает код ошибки, или 0 в случае ее отсутствия.

Смотрите также

  • sqlite_error_string() - Возвращает строку с описанием ошибки


Возвращает идентификатор последней вставленной записи

  • « sqlite_last_error
  • sqlite_libencoding »
  • PHP Manual
  • SQLite
  • Возвращает идентификатор последней вставленной записи

sqlite_last_insert_rowid

SQLiteDatabase::lastInsertRowid

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_last_insert_rowid -- SQLiteDatabase::lastInsertRowid — Возвращает идентификатор последней вставленной записи

Описание

int sqlite_last_insert_rowid ( resource $dbhandle )

Объектно-ориентированный стиль (метод):

public int SQLiteDatabase::lastInsertRowid ( void )

Возвращает идентификатор последней записи, вставленной в базу данных dbhandle, если таблица, в которую была вставлена запись, содержит поле с автоинкрементом.

Подсказка

Поля с автоинкрементом в SQLite объявляются как INTEGER PRIMARY KEY.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

Возвращаемые значения

Возвращает идентификатор записи в виде целого числа.


Возвращает кодировку, используемую подключенной библиотекой SQLite

  • « sqlite_last_insert_rowid
  • sqlite_libversion »
  • PHP Manual
  • SQLite
  • Возвращает кодировку, используемую подключенной библиотекой SQLite

sqlite_libencoding

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_libencoding — Возвращает кодировку, используемую подключенной библиотекой SQLite

Описание

string sqlite_libencoding ( void )

SQLite может быть скомпилирована либо в режиме совместимости ISO-8859-1, либо UTF-8. Эта функция позволяет определить, какую кодировку использует подключенная библиотека.

Внимание

По умолчанию, PHP компилирует libsqlite в режиме совместимости с кодировкой ISO-8859-1. Однако, это неверное название; вместо использования ISO-8859-1, библиотека работает в соответствии с установками текущей локали для сравнения и сортировки строк. Поэтому следует считать, что используется не ISO-8859-1, а кодировка '8-bit'.

При компиляции с поддержкой UTF-8 sqlite корректно распознает многобайтные символы UTF-8, однако поддержка этой кодировки все же неполная (например, не производится нормализация); кроме того, некоторые операции сравнения все еще выполняются некорректно.

Внимание

В веб-окружении не рекомендуется использовать PHP и SQLite с поддержкой UTF-8, так как libsqlite завершает процесс при обнаружении проблем с кодировкой UTF-8.

Возвращаемые значения

Возвращает кодировку, используемую библиотекой.

Смотрите также

  • sqlite_lib_version()


Возвращает версию подключенной библиотеки SQLite

  • « sqlite_libencoding
  • sqlite_next »
  • PHP Manual
  • SQLite
  • Возвращает версию подключенной библиотеки SQLite

sqlite_libversion

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_libversion — Возвращает версию подключенной библиотеки SQLite

Описание

string sqlite_libversion ( void )

Возвращает версию подключенной библиотеки SQLite.

Возвращаемые значения

Возвращает версию библиотеки в виде строки.

Смотрите также

  • sqlite_libencoding() - Возвращает кодировку, используемую подключенной библиотекой SQLite


Переходит на следующую запись

  • « sqlite_libversion
  • sqlite_num_fields »
  • PHP Manual
  • SQLite
  • Переходит на следующую запись

sqlite_next

SQLiteResult::next

SQLiteUnbuffered::next

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_next -- SQLiteResult::next -- SQLiteUnbuffered::next — Переходит на следующую запись

Описание

bool sqlite_next ( resource $result )

Объектно-ориентированный стиль (метод):

bool SQLiteResult::next ( void )
bool SQLiteUnbuffered::next ( void )

sqlite_next() перемещает внутренний указатель результата запроса result на следующую запись.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

Возвращаемые значения

Возвращает TRUE в случае успеха, или FALSE, если записей больше нет.

Смотрите также

  • sqlite_seek() - Переходит к определенному номеру записи в буферизованном результирующем наборе
  • sqlite_current() - Возвращает текущую запись из результирующего набора в виде массива
  • sqlite_rewind() - Переходит к первой записи


Возвращает количество полей в результате запроса

  • « sqlite_next
  • sqlite_num_rows »
  • PHP Manual
  • SQLite
  • Возвращает количество полей в результате запроса

sqlite_num_fields

SQLiteResult::numFields

SQLiteUnbuffered::numFields

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_num_fields -- SQLiteResult::numFields -- SQLiteUnbuffered::numFields — Возвращает количество полей в результате запроса

Описание

int sqlite_num_fields ( resource $result )

Объектно-ориентированный стиль (метод):

int SQLiteResult::numFields ( void )
int SQLiteUnbuffered::numFields ( void )

Возвращает количество полей в результате запроса result.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

Возвращаемые значения

Возвращает количество полей в виде целого числа.

Смотрите также

  • sqlite_changes() - Возвращает количество записей, которые были изменены последним SQL-запросом
  • sqlite_num_rows() - Возвращает количество записей в результате запроса


Возвращает количество записей в результате запроса

  • « sqlite_num_fields
  • sqlite_open »
  • PHP Manual
  • SQLite
  • Возвращает количество записей в результате запроса

sqlite_num_rows

SQLiteResult::numRows

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_num_rows -- SQLiteResult::numRows — Возвращает количество записей в результате запроса

Описание

int sqlite_num_rows ( resource $result )

Объектно-ориентированный стиль (метод):

int SQLiteResult::numRows ( void )

Возвращает количество записей в буферизованном результирующем наборе result.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает количество рядов в виде целого числа.

Примеры

Пример #1 Процедурный стиль

<?php
$db = sqlite_open('mysqlitedb');
$result = sqlite_query($db, "SELECT * FROM mytable WHERE name='John Doe'");
$rows = sqlite_num_rows($result);

echo "Количество рядов: $rows";
?>

Пример #2 Объектно-ориентированный стиль

<?php
$db = new SQLiteDatabase('mysqlitedb');
$result = $db->query("SELECT * FROM mytable WHERE name='John Doe'");
$rows = $result->numRows();

echo "Количество рядов: $rows";
?>

Смотрите также

  • sqlite_changes() - Возвращает количество записей, которые были изменены последним SQL-запросом
  • sqlite_query() - Выполняет запрос к базе данных и возвращает идентификатор результата
  • sqlite_num_fields() - Возвращает количество полей в результате запроса


Открывает базу данных SQLite или создает ее, если она не существует

  • « sqlite_num_rows
  • sqlite_popen »
  • PHP Manual
  • SQLite
  • Открывает базу данных SQLite или создает ее, если она не существует

sqlite_open

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_open — Открывает базу данных SQLite или создает ее, если она не существует

Описание

resource sqlite_open ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

Объектно-ориентированный стиль (конструктор):

final public SQLiteDatabase::__construct ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

Открывает базу данных SQLite или создает ее, если она не существует.

Список параметров

filename

Имя файла базы данных SQLite. Если файл не существует, SQLite попытается создать его. PHP должен владеть правами записи на файл в случае вставки данных, изменения схемы базы данных или создания файла с базой данных, если он не существует.

mode

Режим прав доступа на файл. Предназначается для открытия базы данных в режиме только для чтения, однако в настоящее время этот аргумент не используется библиотекой sqlite. Значением по умолчанию (и рекомендуемым к использованию) является восьмеричное 0666.

error_message

Передается по ссылке и устанавливается в читабельное сообщение об ошибке, объясняющее почему не удалось открыть базу данных, в случае возникновения таковой ошибки.

Возвращаемые значения

Возвращает ресурс (идентификатор базы данных) при успешном завершении, FALSE при возникновении ошибки.

Примеры

Пример #1 Пример использованияsqlite_open()

<?php
if ($db = sqlite_open('mysqlitedb', 0666, $sqliteerror)) {
    sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
    sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
    $result = sqlite_query($db, 'select bar from foo');
    var_dump(sqlite_fetch_array($result));
} else {
    die($sqliteerror);
}
?>

Примечания

Подсказка

На платформах Unix, SQLite может работать некорректно в программах, использующих вызов fork(). В таких программах рекомендуется закрывать базу данных перед запуском дочернего процесса и затем заново открывать ее в дочернем и/или родительском процессе. Дополнительная информация о проблеме содержится в » описании интерфейса SQLite на языке C в разделе "Multi-Threading And SQLite".

Подсказка

Не рекомендуется работать с базами данных SQLite, смонтированных на NFS разделах. Общеизвестна плохая реализация блокировок в NFS, поэтому вам может даже не удастся открыть базу данных вообще, а если все-таки это произойдет, то поведение данной блокировки будет неопределенным.

Замечание: Начиная с SQLite версии 2.8.2, можно указывать :memory: в качестве значения аргумента filename для создания базы данных в памяти. Это может быть полезно в тех случаях, когда необходимо создание временной базы данных, которая должна быть уничтожена при завершении процесса. Также это может использоваться совместно с командой ATTACH DATABASE для загрузки других баз данных и выполнения операций с ними.

Замечание: Модуль SQLite учитывает опции безопасный режим и open_basedir.

Смотрите также

  • sqlite_popen() - Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует
  • sqlite_close() - Закрывает открытую базу данных SQLite
  • sqlite_factory() - Открывает базу данных SQLite и возвращает объект


Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует

  • « sqlite_open
  • sqlite_prev »
  • PHP Manual
  • SQLite
  • Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует

sqlite_popen

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_popen — Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует

Описание

resource sqlite_popen ( string $filename [, int $mode = 0666 [, string &$error_message ]] )

Эта функция идентична sqlite_open(), за исключением того, что она использует механизм постоянных соединений PHP. Описание аргументов находится в описании функции sqlite_open().

sqlite_popen() пытается найти уже открытый дескриптор постоянного подключения к файлу filename. Если такой дескриптор уже есть, функция возвращает его, иначе он открывается заново.

Выгода от использования постоянного подключения заключается в том, что не тратится время на открытие файла и чтение структуры данных при каждом запросе. Это справедливо только в случае использования PHP в качестве SAPI веб-сервера (любой SAPI, кроме CGI и CLI).

Замечание: При использовании постоянных подключений необходимо следить за тем, чтобы файл базы данных не перезаписывался внешними процессами (например, программой, запущенной с помощью crontab), которые пересоздают файл с базой данных (например, с помощью удаления и создания заново или при замене старой версии обновленной версией из другого файла), так как это вызовет непредсказуемые последствия при удалении старой версии базы данных. Для избежания этой ситуации, убедитесь что ваши фоновые процессы открывают нужный файл с базой данных и выполняют обновления с помощью транзакций.

Список параметров

filename

Имя файла базы данных SQLite. Если файл не существует, SQLite попытается создать его. PHP должен владеть правами записи на файл в случае вставки данных, изменения схемы базы данных или создания файла с базой данных, если он не существует.

mode

Режим прав доступа на файл. Предназначется для открытия базы данных в режиме только для чтения, однако в настоящее время этот аргумент не используется библиотекой sqlite. Значением по умолчанию (и рекомендуемым к использованию) является восьмеричное 0666.

error_message

Передается по ссылке и устанавливается в читабельное сообщение об ошибке, объясняющее почему не удалось открыть базу данных, в случае возникновения таковой ошибки.

Возвращаемые значения

Возвращает ресурс (дескриптор базы данных) в случае успеха, или FALSE в случае ошибки.

Смотрите также

  • sqlite_open() - Открывает базу данных SQLite или создает ее, если она не существует
  • sqlite_close() - Закрывает открытую базу данных SQLite
  • sqlite_factory() - Открывает базу данных SQLite и возвращает объект


Переходит на предыдущую запись

  • « sqlite_popen
  • sqlite_query »
  • PHP Manual
  • SQLite
  • Переходит на предыдущую запись

sqlite_prev

SQLiteResult::prev

(PHP 5 < 5.4.0)

sqlite_prev -- SQLiteResult::prev — Переходит на предыдущую запись

Описание

bool sqlite_prev ( resource $result )

Объектно-ориентированный стиль (метод):

bool SQLiteResult::prev ( void )

sqlite_prev() перемещает внутренний указатель в дескрипторе результирующего набора result на предыдущую запись.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает TRUE в случае успеха, или FALSE, если предыдущих записей больше нет.

Смотрите также

  • sqlite_has_prev() - Определяет, доступна ли предыдущая запись
  • sqlite_rewind() - Переходит к первой записи
  • sqlite_next() - Переходит на следующую запись


Выполняет запрос к базе данных и возвращает идентификатор результата

  • « sqlite_prev
  • sqlite_rewind »
  • PHP Manual
  • SQLite
  • Выполняет запрос к базе данных и возвращает идентификатор результата

sqlite_query

SQLiteDatabase::query

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_query -- SQLiteDatabase::query — Выполняет запрос к базе данных и возвращает идентификатор результата

Описание

resource sqlite_query ( resource $dbhandle , string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )
resource sqlite_query ( string $query , resource $dbhandle [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )

Объектно-ориентированный стиль (метод):

public SQLiteResult SQLiteDatabase::query ( string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )

Выполняет SQL-запрос query к указанному дескриптору базы данных.

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

query

Выполняемый запрос.

Данные в запросе должны быть корректно экранированы.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

error_msg

Указанная переменная будет заполнена в случае возникновения ошибки. Это особенно важно, так как ошибки синтаксиса SQL не возвращаются функцией sqlite_last_error().

Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр dbhandle является первым параметром функции.

Возвращаемые значения

Эта функция возвращает идентификатор результата запроса или FALSE в случае возникновения ошибки. Для запросов, возвращающих данные, этот идентификатор может использоваться в качестве аргумента таких функций как sqlite_fetch_array() и sqlite_seek().

Независимо от типа запроса, в случае возникновения ошибки эта функция возвращает FALSE.

sqlite_query() возвращает буферизованный результирующий набор, по которому также можно перемещаться в различных направлениях. Её следует использовать для запросов, возвращающих относительно небольшое количество записей, если вам необходим случайный доступ к записям. Дескриптор буферизованного результата выделит память для всего возвращаемого результата и не возвратит ее, пока весь результат не будет полностью получен. Если вам необходим только последовательный доступ к записям, рекомендуется использовать намного более производительную функцию sqlite_unbuffered_query().

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр error_msg

Примечания

Внимание

SQLite выполнит несколько запросов, разделенных точкой с запятой, что можно использовать, например, для выполнения запросов, прочитанных из файла. Однако, это работает только в случае, если результат функции не используется - если он используется, то будет выполнен только первый запрос. Функция sqlite_exec() всегда выполняет все запросы.

При выполнении нескольких запросов, эта функция возвращает FALSE в случае ошибки, иначе возвращаемое значение будет неопределенным (оно может быть как TRUE, так и идентификатором результата запроса).

Смотрите также

  • sqlite_unbuffered_query() - Выполняет запрос без буферизации результатов
  • sqlite_array_query() - Выполняет запрос к базе данных и возвращает результат в виде массива


Переходит к первой записи

  • « sqlite_query
  • sqlite_seek »
  • PHP Manual
  • SQLite
  • Переходит к первой записи

sqlite_rewind

SQLiteResult::rewind

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_rewind -- SQLiteResult::rewind — Переходит к первой записи

Описание

bool sqlite_rewind ( resource $result )

Объектно-ориентированный стиль (метод):

bool SQLiteResult::rewind ( void )

sqlite_rewind() перемещает внутренний указатель в результирующем наборе на первую запись.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает FALSE, если результат запроса не содержит записей, иначе возвращается TRUE.

Смотрите также

  • sqlite_next() - Переходит на следующую запись
  • sqlite_current() - Возвращает текущую запись из результирующего набора в виде массива
  • sqlite_seek() - Переходит к определенному номеру записи в буферизованном результирующем наборе


Переходит к определенному номеру записи в буферизованном результирующем наборе

  • « sqlite_rewind
  • sqlite_single_query »
  • PHP Manual
  • SQLite
  • Переходит к определенному номеру записи в буферизованном результирующем наборе

sqlite_seek

SQLiteResult::seek

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_seek -- SQLiteResult::seek — Переходит к определенному номеру записи в буферизованном результирующем наборе

Описание

bool sqlite_seek ( resource $result , int $rownum )

Объектно-ориентированный стиль (метод):

bool SQLiteResult::seek ( int $rownum )

sqlite_seek() перемещает внутренний указатель к записи с порядковым номером, заданным аргументом rownum.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

rownum

Порядковый номер записи, к которой производится перемещение. Нумерация начинается с нуля (0 указывает на первую запись).

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает FALSE, если запись не существует, иначе возвращается TRUE.

Смотрите также

  • sqlite_next() - Переходит на следующую запись
  • sqlite_current() - Возвращает текущую запись из результирующего набора в виде массива
  • sqlite_rewind() - Переходит к первой записи


Выполняет запрос и возвращает массив со значениями одного поля или первую запись

  • « sqlite_seek
  • sqlite_udf_decode_binary »
  • PHP Manual
  • SQLite
  • Выполняет запрос и возвращает массив со значениями одного поля или первую запись

sqlite_single_query

SQLiteDatabase::singleQuery

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.1)

sqlite_single_query -- SQLiteDatabase::singleQuery — Выполняет запрос и возвращает массив со значениями одного поля или первую запись

Описание

array sqlite_single_query ( resource $db , string $query [, bool $first_row_only [, bool $decode_binary ]] )

Объектно-ориентированный стиль (метод):

public array SQLiteDatabase::singleQuery ( string $query [, bool $first_row_only [, bool $decode_binary ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Декодирует бинарные данные, переданные в качестве параметров в UDF

  • « sqlite_single_query
  • sqlite_udf_encode_binary »
  • PHP Manual
  • SQLite
  • Декодирует бинарные данные, переданные в качестве параметров в UDF

sqlite_udf_decode_binary

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_udf_decode_binary — Декодирует бинарные данные, переданные в качестве параметров в UDF

Описание

string sqlite_udf_decode_binary ( string $data )

Декодирует бинарные данные, переданные в качестве параметров в UDF.

Эту функцию следует применять к аргументам, переданным в UDF, если в этих аргументах могут содержаться бинарные данные.

PHP не осуществляет данные операции кодирования и декодирования автоматически, так как это негативно сказывается на производительности.

Список параметров

data

Закодированные данные, которые будут раскодированы. Кодирование должно было быть осуществлено с помощью функций sqlite_udf_encode_binary() или sqlite_escape_string().

Возвращаемые значения

The decoded string.

Примеры

Пример #1 Пример реализации агрегирующей функции max_length, способной работать с бинарными данными

<?php
$data = array(
   'one',
   'two',
   'three',
   'four',
   'five',
   'six',
   'seven',
   'eight',
   'nine',
   'ten',
   );
$db = sqlite_open(':memory:');
sqlite_query($db, "CREATE TABLE strings(a)");
foreach ($data as $str) {
    $str = sqlite_escape_string($str);
    sqlite_query($db, "INSERT INTO strings VALUES ('$str')");
}

function max_len_step(&$context, $string)
{
    $string = sqlite_udf_decode_binary($string);
    if (strlen($string) > $context) {
        $context = strlen($string);
    }
}

function max_len_finalize(&$context)
{
    return $context;
}

sqlite_create_aggregate($db, 'max_len', 'max_len_step', 'max_len_finalize');

var_dump(sqlite_array_query($db, 'SELECT max_len(a) from strings'));

?>

Смотрите также

  • sqlite_udf_encode_binary() - Кодирует бинарные данные перед тем как вернуть их из UDF
  • sqlite_create_function() - Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_create_aggregate() - Регистрирует агрегирующую функцию для использования в SQL-запросах


Кодирует бинарные данные перед тем как вернуть их из UDF

  • « sqlite_udf_decode_binary
  • sqlite_unbuffered_query »
  • PHP Manual
  • SQLite
  • Кодирует бинарные данные перед тем как вернуть их из UDF

sqlite_udf_encode_binary

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_udf_encode_binary — Кодирует бинарные данные перед тем как вернуть их из UDF

Описание

string sqlite_udf_encode_binary ( string $data )

sqlite_udf_encode_binary() кодирует бинарные данные data таким образом, что они могут быть возвращены в качестве результата запроса (так как библиотека libsqlite небезопасна для обработки бинарных данных).

Если данные могут быть бинарно-небезопасными (например, содержать NUL в середине строки или байт 0x01 в начале строки), то такие данные следует закодировать этой функцией перед тем, как возвращать их из вашей UDF.

PHP не осуществляет данные операции кодирования и декодирования автоматически, так как это негативно сказывается на производительности.

Замечание:

Не используйте функцию sqlite_escape_string() для экранирования строк, возвращаемых из UDF, так как это приведет к двойному экранированию. Используйте вместо этого sqlite_udf_encode_binary() !

Список параметров

data

Кодируемая строка (string).

Возвращаемые значения

Закодированная строка (string).

Смотрите также

  • sqlite_udf_decode_binary() - Декодирует бинарные данные, переданные в качестве параметров в UDF
  • sqlite_escape_string() - Экранирует спецсимволы в строке для использования в запросе
  • sqlite_create_function() - Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
  • sqlite_create_aggregate() - Регистрирует агрегирующую функцию для использования в SQL-запросах


Выполняет запрос без буферизации результатов

  • « sqlite_udf_encode_binary
  • sqlite_valid »
  • PHP Manual
  • SQLite
  • Выполняет запрос без буферизации результатов

sqlite_unbuffered_query

SQLiteDatabase::unbufferedQuery

(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)

sqlite_unbuffered_query -- SQLiteDatabase::unbufferedQuery — Выполняет запрос без буферизации результатов

Описание

resource sqlite_unbuffered_query ( resource $dbhandle , string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )
resource sqlite_unbuffered_query ( string $query , resource $dbhandle [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )

Объектно-ориентированный стиль (метод):

public SQLiteUnbuffered SQLiteDatabase::unbufferedQuery ( string $query [, int $result_type = SQLITE_BOTH [, string &$error_msg ]] )

sqlite_unbuffered_query() идентична функции sqlite_query() за исключением того, что записи из возвращаемого результата можно получать только последовательно, одну за другой.

Эта функция идеально подходит для тех случаев, когда нужно последовательно обработать записи из результата запроса и нет необходимости в доступе к произвольной записи результата запроса, например при выводе данных из базы данных в виде HTML таблицы.

Замечание:

Функции  sqlite_seek(),
sqlite_rewind(), sqlite_next(),
sqlite_current() и
sqlite_num_rows() не работают с результатами,
возвращаемыми функцией sqlite_unbuffered_query().

Список параметров

dbhandle

Ресурс базы данных SQLite, полученный из функции sqlite_open() в случае использования процедурного подхода. Этот параметр не требуется при использовании объектно-ориентированного подхода.

query

Выполняемый запрос.

Данные в запросе должны быть корректно экранированы.

result_type

Необязательный параметр result_type принимает константу, определяющую, как будет индексирован возвращаемый массив. При использовании SQLITE_ASSOC будет возвращен ассоциативный массив, а при использовании SQLITE_NUM - числовой. SQLITE_BOTH вернет массив как с ассоциативными, так и с числовыми индексами. Значением по умолчанию для этой функции является SQLITE_BOTH.

error_msg

Указанная переменная будет заполнена в случае возникновения ошибки. Это особенно важно, так как ошибки синтаксиса SQL не возвращаются функцией sqlite_last_error().

Замечание: Поддерживаются два альтернативных синтаксиса для совместимости с другими расширениями баз данных (например, MySQL). Предпочитаемая форма - первая, в которой параметр dbhandle является первым параметром функции.

Возвращаемые значения

Возвращает дескриптор результата или FALSE в случае возникновения ошибки.

sqlite_unbuffered_query() возвращает последовательный результирующий набор, записи из которого можно читать только вперед, одну за другой.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр error_msg

Смотрите также

  • sqlite_query() - Выполняет запрос к базе данных и возвращает идентификатор результата


Проверяет, есть ли еще доступные ряды

  • « sqlite_unbuffered_query
  • SQLite3 »
  • PHP Manual
  • SQLite
  • Проверяет, есть ли еще доступные ряды

sqlite_valid

SQLiteResult::valid

SQLiteUnbuffered::valid

(PHP 5 < 5.4.0)

sqlite_valid -- SQLiteResult::valid -- SQLiteUnbuffered::valid — Проверяет, есть ли еще доступные ряды

Описание

bool sqlite_valid ( resource $result )

Объектно-ориентированный стиль (метод):

bool SQLiteResult::valid ( void )
bool SQLiteUnbuffered::valid ( void )

Проверяет, есть ли еще доступные ряды в указанном результирующем наборе.

Список параметров

result

Ресурс результата SQLite. Этот параметр не требуется при использовании объектно-ориентированного метода.

Замечание:

Эта функция не может быть использована с идентификаторами результатов небуферизированных запросов.

Возвращаемые значения

Возвращает TRUE, если в результирующем наборе result еще есть доступные ряды, иначе возвращается FALSE.

Смотрите также

  • sqlite_num_rows() - Возвращает количество записей в результате запроса
  • sqlite_changes() - Возвращает количество записей, которые были изменены последним SQL-запросом


SQLite3

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • SQLite3 — Класс SQLite3
    • SQLite3::busyTimeout — Sets the busy connection handler
    • SQLite3::changes — Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement
    • SQLite3::close — Closes the database connection
    • SQLite3::__construct — Создает экземпляр объекта SQLite3 и открывает соеденение с базой
    • SQLite3::createAggregate — Registers a PHP function for use as an SQL aggregate function
    • SQLite3::createCollation — Registers a PHP function for use as an SQL collating function
    • SQLite3::createFunction — Registers a PHP function for use as an SQL scalar function
    • SQLite3::enableExceptions — Enable throwing exceptions
    • SQLite3::escapeString — Возвращает правильно экранированную строку
    • SQLite3::exec — Executes a result-less query against a given database
    • SQLite3::lastErrorCode — Returns the numeric result code of the most recent failed SQLite request
    • SQLite3::lastErrorMsg — Returns English text describing the most recent failed SQLite request
    • SQLite3::lastInsertRowID — Returns the row ID of the most recent INSERT into the database
    • SQLite3::loadExtension — Attempts to load an SQLite extension library
    • SQLite3::open — Opens an SQLite database
    • SQLite3::openBlob — Opens a stream resource to read a BLOB
    • SQLite3::prepare — Подготавливает SQL-запрос для выполнения
    • SQLite3::query — Выполняет SQL-запрос
    • SQLite3::querySingle — Выполняет запрос и возвращает одиночный результат
    • SQLite3::version — Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую
  • SQLite3Stmt — The SQLite3Stmt class
    • SQLite3Stmt::bindParam — Binds a parameter to a statement variable
    • SQLite3Stmt::bindValue — Binds the value of a parameter to a statement variable
    • SQLite3Stmt::clear — Clears all current bound parameters
    • SQLite3Stmt::close — Closes the prepared statement
    • SQLite3Stmt::execute — Executes a prepared statement and returns a result set object
    • SQLite3Stmt::paramCount — Returns the number of parameters within the prepared statement
    • SQLite3Stmt::readOnly() — Returns whether a statement is definitely read only
    • SQLite3Stmt::reset — Resets the prepared statement
  • SQLite3Result — The SQLite3Result class
    • SQLite3Result::columnName — >Возвращает имя n-ного столбца
    • SQLite3Result::columnType — Возвращает тип n-ного столбца
    • SQLite3Result::fetchArray — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу
    • SQLite3Result::finalize — Закрывает результирующий набор
    • SQLite3Result::numColumns — Возвращает количество столбцов в результирующем наборе
    • SQLite3Result::reset — Сбрасывает указатель результирующего набора на первую строку


  • « SQLite3
  • Установка и настройка »
  • PHP Manual
  • SQLite3
  • Введение

Введение

Обеспечение поддержки баз данных SQLite версии 3.


Установка

Расширение SQLite3 доступно по умолчанию начиная с версии PHP 5.3.0. Расширение можно отключить помощью --without-sqlite3 во время компиляции.

Пользователи Windows должны включить поддержку php_sqlite3.dll для того, чтобы использовать это расширение. Эта DLL входит в состав Windows-дистрибутивов PHP начиная с версии PHP 5.3.0.

Замечание:

Некоторое время данное расширение было так называемым PECL-расширением, версии которого рекомендуется использовать только в целях эксперимента.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки SQLite3
Имя | По умолчанию | Меняемо | Изменения
sqlite3.extension_dir | NULL | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

sqlite3.extension_dir string

Путь к каталогу, в котором находятся файлы расширения SQLite.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SQLITE3_ASSOC (integer)
Указывает на то, что Sqlite3Result::fetchArray() метод должен вернуть массив, индексированный по имени столбца в соответствующий набор результатов.
SQLITE3_NUM (integer)
Указывает на то, что Sqlite3Result::fetchArray() метод должен вернуть массив, индексированный по номеру столбца в соответствующий набор результатов, начиная со столбца 0.
SQLITE3_BOTH (integer)
Указывает на то, что Sqlite3Result::fetchArray() метод должен вернуть массив, индексированный по имени столбца и его номеру в соответствующий набор результатов, начиная со столбца 0.
SQLITE3_INTEGER (integer)
Представляет класс хранения типа SQLite3 INTEGER.
SQLITE3_FLOAT (integer)
Представляет класс хранения типа SQLite3 REAL (FLOAT).
SQLITE3_TEXT (integer)
Представляет класс хранения типа SQLite3 TEXT.
SQLITE3_BLOB (integer)
Представляет класс хранения типа SQLite3 BLOB.
SQLITE3_NULL (integer)
Представляет класс хранения типа SQLite3 NULL.
SQLITE3_OPEN_READONLY (integer)
Указывает на то, что база данных SQLite3 доступна только для чтения.
SQLITE3_OPEN_READWRITE (integer)
Указывает на то, что база данных SQLite3 доступна как для чтения, так и для записи.
SQLITE3_OPEN_CREATE (integer)
Указывает на то, что файл базы данных SQLite3 будет создан в том случае, если он еще не существует.


Класс SQLite3

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс предоставляющий доступ к API SQLite 3 базе данных.

Обзор классов

SQLite3 {
/* Методы */
public bool busyTimeout ( int $msecs )
public int changes ( void )
public bool close ( void )
public __construct ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = null ]] )
public bool createAggregate ( string $name , mixed $step_callback , mixed $final_callback [, int $argument_count = -1 ] )
public bool createCollation ( string $name , callable $callback )
public bool createFunction ( string $name , mixed $callback [, int $argument_count = -1 ] )
bool enableExceptions ([ bool $enableExceptions = false ] )
public static string escapeString ( string $value )
public bool exec ( string $query )
public int lastErrorCode ( void )
public string lastErrorMsg ( void )
public int lastInsertRowID ( void )
public bool loadExtension ( string $shared_library )
public void open ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = null ]] )
public resource open ( string $table , string $column , int $rowid [, string $dbname = "main" ] )
public SQLite3Stmt prepare ( string $query )
public SQLite3Result query ( string $query )
public mixed querySingle ( string $query [, bool $entire_row = false ] )
public static array version ( void )
}

Содержание

  • SQLite3::busyTimeout — Sets the busy connection handler
  • SQLite3::changes — Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement
  • SQLite3::close — Closes the database connection
  • SQLite3::__construct — Создает экземпляр объекта SQLite3 и открывает соеденение с базой
  • SQLite3::createAggregate — Registers a PHP function for use as an SQL aggregate function
  • SQLite3::createCollation — Registers a PHP function for use as an SQL collating function
  • SQLite3::createFunction — Registers a PHP function for use as an SQL scalar function
  • SQLite3::enableExceptions — Enable throwing exceptions
  • SQLite3::escapeString — Возвращает правильно экранированную строку
  • SQLite3::exec — Executes a result-less query against a given database
  • SQLite3::lastErrorCode — Returns the numeric result code of the most recent failed SQLite request
  • SQLite3::lastErrorMsg — Returns English text describing the most recent failed SQLite request
  • SQLite3::lastInsertRowID — Returns the row ID of the most recent INSERT into the database
  • SQLite3::loadExtension — Attempts to load an SQLite extension library
  • SQLite3::open — Opens an SQLite database
  • SQLite3::openBlob — Opens a stream resource to read a BLOB
  • SQLite3::prepare — Подготавливает SQL-запрос для выполнения
  • SQLite3::query — Выполняет SQL-запрос
  • SQLite3::querySingle — Выполняет запрос и возвращает одиночный результат
  • SQLite3::version — Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую


Sets the busy connection handler

  • « SQLite3
  • SQLite3::changes »
  • PHP Manual
  • SQLite3
  • Sets the busy connection handler

SQLite3::busyTimeout

(PHP 5 >= 5.3.3, PHP 7)

SQLite3::busyTimeout — Sets the busy connection handler

Описание

public bool SQLite3::busyTimeout ( int $msecs )

Sets a busy handler that will sleep until the database is not locked or the timeout is reached.

Список параметров

msecs

The milliseconds to sleep. Setting this value to a value less than or equal to zero, will turn off an already set timeout handler.

Возвращаемые значения

Returns TRUE on success, FALSE on failure.


Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement

  • « SQLite3::busyTimeout
  • SQLite3::close »
  • PHP Manual
  • SQLite3
  • Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement

SQLite3::changes

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::changes — Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement

Описание

public int SQLite3::changes ( void )

Returns the number of database rows that were changed (or inserted or deleted) by the most recent SQL statement.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer value corresponding to the number of database rows changed (or inserted or deleted) by the most recent SQL statement.

Примеры

Пример #1 SQLite3::changes() example

<?php
$db = new SQLite3('mysqlitedb.db');

$query = $db->exec('UPDATE counter SET views=0 WHERE page="test"');
if ($query) {
    echo 'Number of rows modified: ', $db->changes();
}
?>


Closes the database connection

  • « SQLite3::changes
  • SQLite3::__construct »
  • PHP Manual
  • SQLite3
  • Closes the database connection

SQLite3::close

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::close — Closes the database connection

Описание

public bool SQLite3::close ( void )

Closes the database connection.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success, FALSE on failure.

Примеры

Пример #1 SQLite3::close() example

<?php
$db = new SQLite3('mysqlitedb.db');
$db->close();
?>


Создает экземпляр объекта SQLite3 и открывает соеденение с базой

  • « SQLite3::close
  • SQLite3::createAggregate »
  • PHP Manual
  • SQLite3
  • Создает экземпляр объекта SQLite3 и открывает соеденение с базой

SQLite3::__construct

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::__construct — Создает экземпляр объекта SQLite3 и открывает соеденение с базой

Описание

public SQLite3::__construct ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = null ]] )

Создает экземпляр объекта SQLite3 и открывает соедненение с базой. Если включено шифрование, то появляется возможность использования ключа.

Список параметров

filename

Путь к SQLite базе или :memory:, для использования базы в оперативной памяти.

flags

Необязательные флаги, для определения типа открытия БД. По умолчанию, используется SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY: Открыть только для чтения.

  • SQLITE3_OPEN_READWRITE: Открыть для чтения и записи.

  • SQLITE3_OPEN_CREATE: Создать новый файл базы данных, если он отсутсвует

encryption_key

Необязательный ключ для шифрования/расшифровки базы данных. Если модуль шифравания не установлен, то данный параметр будет проигнорирован.

Возвращаемые значения

Возвращает объект SQLite3, в случае успеха.

Ошибки

Бросае исключение Exception при ошибке.

Примеры

Пример #1 Пример использования SQLite3::__construct()

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE foo (bar STRING)');
$db->exec("INSERT INTO foo (bar) VALUES ('This is a test')");

$result = $db->query('SELECT bar FROM foo');
var_dump($result->fetchArray());
?>


Registers a PHP function for use as an SQL aggregate function

  • « SQLite3::__construct
  • SQLite3::createCollation »
  • PHP Manual
  • SQLite3
  • Registers a PHP function for use as an SQL aggregate function

SQLite3::createAggregate

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::createAggregate — Registers a PHP function for use as an SQL aggregate function

Описание

public bool SQLite3::createAggregate ( string $name , mixed $step_callback , mixed $final_callback [, int $argument_count = -1 ] )

Registers a PHP function or user-defined function for use as an SQL aggregate function for use within SQL statements.

Список параметров

name

Name of the SQL aggregate to be created or redefined.

step_callback

The name of a PHP function or user-defined function to apply as a callback for every item in the aggregate.

final_callback

The name of a PHP function or user-defined function to apply as a callback at the end of the aggregate data.

argument_count

The number of arguments that the SQL aggregate takes. If this parameter is negative, then the SQL aggregate may take any number of arguments.

Возвращаемые значения

Returns TRUE upon successful creation of the aggregate, FALSE on failure.


Registers a PHP function for use as an SQL collating function

  • « SQLite3::createAggregate
  • SQLite3::createFunction »
  • PHP Manual
  • SQLite3
  • Registers a PHP function for use as an SQL collating function

SQLite3::createCollation

(PHP 5 >= 5.3.11, PHP 7)

SQLite3::createCollation — Registers a PHP function for use as an SQL collating function

Описание

public bool SQLite3::createCollation ( string $name , callable $callback )

Registers a PHP function or user-defined function for use as a collating function within SQL statements.

Список параметров

name

Name of the SQL collating function to be created or redefined

callback

The name of a PHP function or user-defined function to apply as a callback, defining the behavior of the collation. It should accept two strings and return as strcmp() does, i.e. it should return -1, 1, or 0 if the first string sorts before, sorts after, or is equal to the second.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 SQLite3::createCollation() example

Register the PHP function strnatcmp() as a collating sequence in the SQLite3 database.

<?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 "default:\n";
while ($row = $defaultSort->fetchArray()){
    echo $row['col1'], "\n";
}

echo "\nnatural:\n";
while ($row = $naturalSort->fetchArray()){
    echo $row['col1'], "\n";
}

$db->close();

?>

Результат выполнения данного примера:

default:
a1
a10
a2

natural:
a1
a2
a10

Смотрите также

  • The SQLite collation documentation: » http://sqlite.org/datatype3.html#collation


Registers a PHP function for use as an SQL scalar function

  • « SQLite3::createCollation
  • SQLite3::enableExceptions »
  • PHP Manual
  • SQLite3
  • Registers a PHP function for use as an SQL scalar function

SQLite3::createFunction

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::createFunction — Registers a PHP function for use as an SQL scalar function

Описание

public bool SQLite3::createFunction ( string $name , mixed $callback [, int $argument_count = -1 ] )

Registers a PHP function or user-defined function for use as an SQL scalar function for use within SQL statements.

Список параметров

name

Name of the SQL function to be created or redefined.

callback

The name of a PHP function or user-defined function to apply as a callback, defining the behavior of the SQL function.

argument_count

The number of arguments that the SQL function takes. If this parameter is negative, then the SQL function may take any number of arguments.

Возвращаемые значения

Returns TRUE upon successful creation of the function, FALSE on failure.

Примеры

Пример #1 SQLite3::createFunction() example

<?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"


Enable throwing exceptions

  • « SQLite3::createFunction
  • SQLite3::escapeString »
  • PHP Manual
  • SQLite3
  • Enable throwing exceptions

SQLite3::enableExceptions

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::enableExceptions — Enable throwing exceptions

Описание

bool SQLite3::enableExceptions ([ bool $enableExceptions = false ] )

Controls whether the SQLite3 instance will throw exceptions or warnings on error.

Список параметров

enable

When TRUE, the SQLite3 instance, and SQLite3Stmt and SQLite3Result instances derived from it, will throw exceptions on error.

When FALSE, the SQLite3 instance, and SQLite3Stmt and SQLite3Result instances derived from it, will raise warnings on error.

For either mode, the error code and message, if any, will be available via SQLite3::lastErrorCode() and SQLite3::lastErrorMsg() respectively.

Возвращаемые значения

Returns the old value; TRUE if exceptions were enabled, FALSE otherwise.

Примеры

Пример #1 SQLite3::enableExceptions() example

<?php
$sqlite = new SQLite3(':memory:');
try {
    $sqlite->exec('create table foo');
    $sqlite->enableExceptions(true);
    $sqlite->exec('create table bar');
} catch (Exception $e) {
    echo 'Caught exception: ' . $e->getMessage();
}
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: SQLite3::exec(): near "foo": syntax error in example.php on line 4
Caught exception: near "bar": syntax error


Возвращает правильно экранированную строку

  • « SQLite3::enableExceptions
  • SQLite3::exec »
  • PHP Manual
  • SQLite3
  • Возвращает правильно экранированную строку

SQLite3::escapeString

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::escapeString — Возвращает правильно экранированную строку

Описание

public static string SQLite3::escapeString ( string $value )

Возвращает правильно экранированную сроку для безопасного включения в SQL-инструкцию.

Внимание

Эта функция (пока) небезопасна для обработки данных в двоичной форме!

Для обработки полей типа BLOB, которые могут содержать символ NUL, вместо этой функции используйте SQLite3Stmt::bindParam().

Список параметров

value

Строка для обработки

Возвращаемые значения

Возвращает правильно экранированную сроку, которая может быть безопасно использована в инструкции SQL.

Примечания

Внимание

addslashes() НЕ должен использоваться для экранирования ваших строк в запросах SQLite; это будет приводить к неожиданным результатам при извлечении ваших данных.


Executes a result-less query against a given database

  • « SQLite3::escapeString
  • SQLite3::lastErrorCode »
  • PHP Manual
  • SQLite3
  • Executes a result-less query against a given database

SQLite3::exec

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::exec — Executes a result-less query against a given database

Описание

public bool SQLite3::exec ( string $query )

Executes a result-less query against a given database.

Список параметров

query

The SQL query to execute (typically an INSERT, UPDATE, or DELETE query).

Возвращаемые значения

Returns TRUE if the query succeeded, FALSE on failure.

Примеры

Пример #1 SQLite3::exec() example

<?php
$db = new SQLite3('mysqlitedb.db');

$db->exec('CREATE TABLE bar (bar STRING)');
?>


Returns the numeric result code of the most recent failed SQLite request

  • « SQLite3::exec
  • SQLite3::lastErrorMsg »
  • PHP Manual
  • SQLite3
  • Returns the numeric result code of the most recent failed SQLite request

SQLite3::lastErrorCode

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::lastErrorCode — Returns the numeric result code of the most recent failed SQLite request

Описание

public int SQLite3::lastErrorCode ( void )

Returns the numeric result code of the most recent failed SQLite request.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer value representing the numeric result code of the most recent failed SQLite request.


Returns English text describing the most recent failed SQLite request

  • « SQLite3::lastErrorCode
  • SQLite3::lastInsertRowID »
  • PHP Manual
  • SQLite3
  • Returns English text describing the most recent failed SQLite request

SQLite3::lastErrorMsg

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::lastErrorMsg — Returns English text describing the most recent failed SQLite request

Описание

public string SQLite3::lastErrorMsg ( void )

Returns English text describing the most recent failed SQLite request.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an English string describing the most recent failed SQLite request.


Returns the row ID of the most recent INSERT into the database

  • « SQLite3::lastErrorMsg
  • SQLite3::loadExtension »
  • PHP Manual
  • SQLite3
  • Returns the row ID of the most recent INSERT into the database

SQLite3::lastInsertRowID

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::lastInsertRowID — Returns the row ID of the most recent INSERT into the database

Описание

public int SQLite3::lastInsertRowID ( void )

Returns the row ID of the most recent INSERT into the database.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the row ID of the most recent INSERT into the database


Attempts to load an SQLite extension library

  • « SQLite3::lastInsertRowID
  • SQLite3::open »
  • PHP Manual
  • SQLite3
  • Attempts to load an SQLite extension library

SQLite3::loadExtension

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::loadExtension — Attempts to load an SQLite extension library

Описание

public bool SQLite3::loadExtension ( string $shared_library )

Attempts to load an SQLite extension library.

Список параметров

shared_library

The name of the library to load. The library must be located in the directory specified in the configure option sqlite3.extension_dir.

Возвращаемые значения

Returns TRUE if the extension is successfully loaded, FALSE on failure.

Примеры

Пример #1 SQLite3::loadExtension() example

<?php
$db = new SQLite3('mysqlitedb.db');
$db->loadExtension('libagg.so');
?>


Opens an SQLite database

  • « SQLite3::loadExtension
  • SQLite3::openBlob »
  • PHP Manual
  • SQLite3
  • Opens an SQLite database

SQLite3::open

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::open — Opens an SQLite database

Описание

public void SQLite3::open ( string $filename [, int $flags = SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE [, string $encryption_key = null ]] )

Opens an SQLite 3 Database. If the build includes encryption, then it will attempt to use the key.

Список параметров

filename

Path to the SQLite database, or :memory: to use in-memory database.

flags

Optional flags used to determine how to open the SQLite database. By default, open uses SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

  • SQLITE3_OPEN_READONLY: Open the database for reading only.

  • SQLITE3_OPEN_READWRITE: Open the database for reading and writing.

  • SQLITE3_OPEN_CREATE: Create the database if it does not exist.

encryption_key

An optional encryption key used when encrypting and decrypting an SQLite database. If the SQLite encryption module is not installed, this parameter will have no effect.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 SQLite3::open() example

<?php
/**
 * Simple example of extending the SQLite3 class and changing the __construct
 * parameters, then using the open method to initialize the DB.
 */
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());
?>


Opens a stream resource to read a BLOB

  • « SQLite3::open
  • SQLite3::prepare »
  • PHP Manual
  • SQLite3
  • Opens a stream resource to read a BLOB

SQLite3::openBlob

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::openBlob — Opens a stream resource to read a BLOB

Описание

public resource SQLite3::open ( string $table , string $column , int $rowid [, string $dbname = "main" ] )

Opens a stream resource to read a BLOB, which would be selected by:

SELECT column FROM dbname.table WHERE rowid = rowid

Список параметров

table

The table name.

column

The column name.

rowid

The row ID.

dbname

The symbolic name of the DB

Возвращаемые значения

Returns a stream resource, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 SQLite3::openBlob() example

<?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); // mandatory, otherwise the next line would fail
$conn->close();
?>

Результат выполнения данного примера:

Lorem ipsum


Подготавливает SQL-запрос для выполнения

  • « SQLite3::openBlob
  • SQLite3::query »
  • PHP Manual
  • SQLite3
  • Подготавливает SQL-запрос для выполнения

SQLite3::prepare

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::prepare — Подготавливает SQL-запрос для выполнения

Описание

public SQLite3Stmt SQLite3::prepare ( string $query )

Подготавливает 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, '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());
?>


Выполняет SQL-запрос

  • « SQLite3::prepare
  • SQLite3::querySingle »
  • PHP Manual
  • SQLite3
  • Выполняет SQL-запрос

SQLite3::query

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::query — Выполняет SQL-запрос

Описание

public SQLite3Result SQLite3::query ( string $query )

Выполняет SQL-запрос, возвращает объект SQLite3Result, если запрос возвращает результат.

Список параметров

query

SQL-запрос для выполнения.

Возвращаемые значения

Возвращает объект SQLite3Result, если запрос возвращает результат. В противном случае возвращает TRUE, если запрос выполнен, FALSE - при неудаче.

Примеры

Пример #1 Пример SQLite3::query()

<?php
$db = new SQLite3('mysqlitedb.db');

$results = $db->query('SELECT bar FROM foo');
while ($row = $results->fetchArray()) {
    var_dump($row);
}
?>


Выполняет запрос и возвращает одиночный результат

  • « SQLite3::query
  • SQLite3::version »
  • PHP Manual
  • SQLite3
  • Выполняет запрос и возвращает одиночный результат

SQLite3::querySingle

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::querySingle — Выполняет запрос и возвращает одиночный результат

Описание

public mixed SQLite3::querySingle ( string $query [, bool $entire_row = false ] )

Выполняет запрос и возвращает одиночный результат.

Список параметров

query

SQL запрос для выполнения.

entire_row

По умолчанию, функция querySingle() возвращает значение первого столбца, возвращаемого запросом. Если параметр entire_row является TRUE, то запрос возвращает массив всего первого ряда.

Возвращаемые значения

Возвращает значение первого столбца результатов или массив всей первой строки (если параметр entire_row является TRUE).

Если запрос верен, но результат пуст, то вернётся NULL если параметр entire_row является FALSE, в противном случае возвращается пустой массив.

Неверный или отсутствующий запрос возвращает FALSE.

Примеры

Пример #1 Пример использования SQLite3::querySingle()

<?php
$db = new SQLite3('mysqlitedb.db');

var_dump($db->querySingle('SELECT username FROM user WHERE userid=1'));
print_r($db->querySingle('SELECT username, email FROM user WHERE userid=1', true));
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "Scott"
Array
(
    [username] => Scott
    [email] => scott@example.com
)


Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую

  • « SQLite3::querySingle
  • SQLite3Stmt »
  • PHP Manual
  • SQLite3
  • Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую

SQLite3::version

(PHP 5 >= 5.3.0, PHP 7)

SQLite3::version — Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую

Описание

public static array SQLite3::version ( void )

Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив с ключами "versionString" и "versionNumber".

Примеры

Пример #1 Пример использования SQLite3::version()

<?php
print_r(SQLite3::version());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [versionString] => 3.5.9
    [versionNumber] => 3005009
)


The SQLite3Stmt class

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс предоставляющий доступ к подготовленным запросам в SQLite 3 расширении.

Обзор классов

SQLite3Stmt {
/* Методы */
public bool bindParam ( mixed $sql_param , mixed &$param [, int $type ] )
public bool bindValue ( mixed $sql_param , mixed $value [, int $type ] )
public bool clear ( void )
public bool close ( void )
public SQLite3Result execute ( void )
public int paramCount ( void )
public bool readOnly ( void )
public bool reset ( void )
}

Содержание

  • SQLite3Stmt::bindParam — Binds a parameter to a statement variable
  • SQLite3Stmt::bindValue — Binds the value of a parameter to a statement variable
  • SQLite3Stmt::clear — Clears all current bound parameters
  • SQLite3Stmt::close — Closes the prepared statement
  • SQLite3Stmt::execute — Executes a prepared statement and returns a result set object
  • SQLite3Stmt::paramCount — Returns the number of parameters within the prepared statement
  • SQLite3Stmt::readOnly() — Returns whether a statement is definitely read only
  • SQLite3Stmt::reset — Resets the prepared statement


Binds a parameter to a statement variable

  • « SQLite3Stmt
  • SQLite3Stmt::bindValue »
  • PHP Manual
  • SQLite3Stmt
  • Binds a parameter to a statement variable

SQLite3Stmt::bindParam

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::bindParam — Binds a parameter to a statement variable

Описание

public bool SQLite3Stmt::bindParam ( mixed $sql_param , mixed &$param [, int $type ] )

Binds a parameter to a statement variable.

Список параметров

sql_param

Either a string or an int identifying the statement variable to which the parameter should be bound.

param

The parameter to bind to a statement variable.

type

The data type of the parameter to bind.

  • SQLITE3_INTEGER: The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

  • SQLITE3_FLOAT: The value is a floating point value, stored as an 8-byte IEEE floating point number.

  • SQLITE3_TEXT: The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16-LE).

  • SQLITE3_BLOB: The value is a blob of data, stored exactly as it was input.

  • SQLITE3_NULL: The value is a NULL value.

Возвращаемые значения

Returns TRUE if the parameter is bound to the statement variable, FALSE on failure.


Binds the value of a parameter to a statement variable

  • « SQLite3Stmt::bindParam
  • SQLite3Stmt::clear »
  • PHP Manual
  • SQLite3Stmt
  • Binds the value of a parameter to a statement variable

SQLite3Stmt::bindValue

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::bindValue — Binds the value of a parameter to a statement variable

Описание

public bool SQLite3Stmt::bindValue ( mixed $sql_param , mixed $value [, int $type ] )

Binds the value of a parameter to a statement variable.

Список параметров

sql_param

Either a string or an int identifying the statement variable to which the value should be bound.

value

The value to bind to a statement variable.

type

The data type of the value to bind.

  • SQLITE3_INTEGER: The value is a signed integer, stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of the value.

  • SQLITE3_FLOAT: The value is a floating point value, stored as an 8-byte IEEE floating point number.

  • SQLITE3_TEXT: The value is a text string, stored using the database encoding (UTF-8, UTF-16BE or UTF-16-LE).

  • SQLITE3_BLOB: The value is a blob of data, stored exactly as it was input.

  • SQLITE3_NULL: The value is a NULL value.

Возвращаемые значения

Returns TRUE if the value is bound to the statement variable, FALSE on failure.

Примеры

Пример #1 SQLite3Stmt::bindValue() example

<?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, '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());
?>


Clears all current bound parameters

  • « SQLite3Stmt::bindValue
  • SQLite3Stmt::close »
  • PHP Manual
  • SQLite3Stmt
  • Clears all current bound parameters

SQLite3Stmt::clear

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::clear — Clears all current bound parameters

Описание

public bool SQLite3Stmt::clear ( void )

Clears all current bound parameters.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on successful clearing of bound parameters, FALSE on failure.


Closes the prepared statement

  • « SQLite3Stmt::clear
  • SQLite3Stmt::execute »
  • PHP Manual
  • SQLite3Stmt
  • Closes the prepared statement

SQLite3Stmt::close

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::close — Closes the prepared statement

Описание

public bool SQLite3Stmt::close ( void )

Closes the prepared statement.

Замечание: Note that all SQLite3Results that have been retrieved by executing this statement will be invalidated when the statement is closed.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE


Executes a prepared statement and returns a result set object

  • « SQLite3Stmt::close
  • SQLite3Stmt::paramCount »
  • PHP Manual
  • SQLite3Stmt
  • Executes a prepared statement and returns a result set object

SQLite3Stmt::execute

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::execute — Executes a prepared statement and returns a result set object

Описание

public SQLite3Result SQLite3Stmt::execute ( void )

Executes a prepared statement and returns a result set object.

Предостережение

Result set objects retrieved by calling this method on the same statement object are not independent, but rather share the same underlying structure. Therefore it is recommended to call SQLite3Result::finalize(), before calling SQLite3Stmt::execute() on the same statement object again.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an SQLite3Result object on successful execution of the prepared statement, FALSE on failure.


Returns the number of parameters within the prepared statement

  • « SQLite3Stmt::execute
  • SQLite3Stmt::readOnly() »
  • PHP Manual
  • SQLite3Stmt
  • Returns the number of parameters within the prepared statement

SQLite3Stmt::paramCount

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::paramCount — Returns the number of parameters within the prepared statement

Описание

public int SQLite3Stmt::paramCount ( void )

Returns the number of parameters within the prepared statement.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of parameters within the prepared statement.


Returns whether a statement is definitely read only

  • « SQLite3Stmt::paramCount
  • SQLite3Stmt::reset »
  • PHP Manual
  • SQLite3Stmt
  • Returns whether a statement is definitely read only

SQLite3Stmt::readOnly()

(PHP 5 >= 5.3.6, PHP 7)

SQLite3Stmt::readOnly() — Returns whether a statement is definitely read only

Описание

public bool SQLite3Stmt::readOnly ( void )

Returns whether a statement is definitely read only. A statement is considered read only, if it makes no direct changes to the content of the database file. Note that user defined SQL functions might change the database indirectly as a side effect.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if a statement is definitely read only, FALSE otherwise.


Resets the prepared statement

  • « SQLite3Stmt::readOnly()
  • SQLite3Result »
  • PHP Manual
  • SQLite3Stmt
  • Resets the prepared statement

SQLite3Stmt::reset

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Stmt::reset — Resets the prepared statement

Описание

public bool SQLite3Stmt::reset ( void )

Resets the prepared statement to its state prior to execution. All bindings remain intact after reset.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the statement is successfully reset, FALSE on failure.


The SQLite3Result class

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс предоставляющий доступ к результирующему набору расширения SQLite 3.

Обзор классов

SQLite3Result {
/* Методы */
public string columnName ( int $column_number )
public int columnType ( int $column_number )
public array fetchArray ([ int $mode = SQLITE3_BOTH ] )
public bool finalize ( void )
public int numColumns ( void )
public bool reset ( void )
}

Содержание

  • SQLite3Result::columnName — >Возвращает имя n-ного столбца
  • SQLite3Result::columnType — Возвращает тип n-ного столбца
  • SQLite3Result::fetchArray — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу
  • SQLite3Result::finalize — Закрывает результирующий набор
  • SQLite3Result::numColumns — Возвращает количество столбцов в результирующем наборе
  • SQLite3Result::reset — Сбрасывает указатель результирующего набора на первую строку


>Возвращает имя n-ного столбца

  • « SQLite3Result
  • SQLite3Result::columnType »
  • PHP Manual
  • SQLite3Result
  • >Возвращает имя n-ного столбца

SQLite3Result::columnName

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::columnName — >Возвращает имя n-ного столбца

Описание

public string SQLite3Result::columnName ( int $column_number )

Возвращает имя столбца, указанного в column_number.

Список параметров

column_number

Номер столбца, начиная с нуля.

Возвращаемые значения

Возвращает имя (string) столбца, указанного в column_number.


Возвращает тип n-ного столбца

  • « SQLite3Result::columnName
  • SQLite3Result::fetchArray »
  • PHP Manual
  • SQLite3Result
  • Возвращает тип n-ного столбца

SQLite3Result::columnType

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::columnType — Возвращает тип n-ного столбца

Описание

public int SQLite3Result::columnType ( int $column_number )

Возвращает тип столбца, указанного в column_number.

Список параметров

column_number

Номер столбца, начиная с нуля.

Возвращаемые значения

Возвращает тип столбца, указанного в column_number. Возвращает значение SQLITE3_INTEGER, SQLITE3_FLOAT, SQLITE3_TEXT, SQLITE3_BLOB или SQLITE3_NULL).


Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу

  • « SQLite3Result::columnType
  • SQLite3Result::finalize »
  • PHP Manual
  • SQLite3Result
  • Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу

SQLite3Result::fetchArray

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::fetchArray — Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу

Описание

public array SQLite3Result::fetchArray ([ int $mode = SQLITE3_BOTH ] )

Выбирает одну строку из результирующего набора и помещает ее в ассоциативный или нумерованный массив, или в оба сразу. По умлчанию создаёт массивы обоих видов.

Список параметров

mode

Этот необязательный параметр принимает значение константы, которая указывает на тип массива, в который требуется поместить данные. Возможные значения параметра: SQLITE3_ASSOC, SQLITE3_NUM или SQLITE3_BOTH.

  • SQLITE3_ASSOC: возвращает ассоциативный массив, в котором индекс соотетствует имени столбца в результирующем наборе.

  • SQLITE3_NUM: возвращает индексированный массив, в котором индекс соотетствует номеру столбца в результирующем наборе, начиная с 0.

  • SQLITE3_BOTH: возвращает индексированный массив, в котором индекс соотетствует имени и номеру столбца в результирующем наборе, начиная с 0.

Возвращаемые значения

Возвращает стоку из результирующего набора в виде ассоциатированного или нумерованного массива, или обоих. Если строк больше нет, возвращает FALSE.


Закрывает результирующий набор

  • « SQLite3Result::fetchArray
  • SQLite3Result::numColumns »
  • PHP Manual
  • SQLite3Result
  • Закрывает результирующий набор

SQLite3Result::finalize

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::finalize — Закрывает результирующий набор

Описание

public bool SQLite3Result::finalize ( void )

Закрывает результирующий набор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE.


Возвращает количество столбцов в результирующем наборе

  • « SQLite3Result::finalize
  • SQLite3Result::reset »
  • PHP Manual
  • SQLite3Result
  • Возвращает количество столбцов в результирующем наборе

SQLite3Result::numColumns

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::numColumns — Возвращает количество столбцов в результирующем наборе

Описание

public int SQLite3Result::numColumns ( void )

Возвращает количество столбцов в результирующем наборе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество столбцов в результирующем наборе.


Сбрасывает указатель результирующего набора на первую строку

  • « SQLite3Result::numColumns
  • SQLSRV »
  • PHP Manual
  • SQLite3Result
  • Сбрасывает указатель результирующего набора на первую строку

SQLite3Result::reset

(PHP 5 >= 5.3.0, PHP 7)

SQLite3Result::reset — Сбрасывает указатель результирующего набора на первую строку

Описание

public bool SQLite3Result::reset ( void )

Сбрасывает указатель результирующего набора на первую строку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если результирующий набор успешно сброшен на первую строку, или FALSE в случае ошибки.


Драйвер СУБД Microsoft SQL Server для PHP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции SQLSRV
    • sqlsrv_begin_transaction — Begins a database transaction
    • sqlsrv_cancel — Cancels a statement
    • sqlsrv_client_info — Returns information about the client and specified connection
    • sqlsrv_close — Closes an open connection and releases resourses associated with the connection
    • sqlsrv_commit — Commits a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_configure — Changes the driver error handling and logging configurations
    • sqlsrv_connect — Opens a connection to a Microsoft SQL Server database
    • sqlsrv_errors — Returns error and warning information about the last SQLSRV operation performed
    • sqlsrv_execute — Executes a statement prepared with sqlsrv_prepare
    • sqlsrv_fetch_array — Returns a row as an array
    • sqlsrv_fetch_object — Retrieves the next row of data in a result set as an object
    • sqlsrv_fetch — Makes the next row in a result set available for reading
    • sqlsrv_field_metadata — Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
    • sqlsrv_free_stmt — Frees all resources for the specified statement
    • sqlsrv_get_config — Returns the value of the specified configuration setting
    • sqlsrv_get_field — Gets field data from the currently selected row
    • sqlsrv_has_rows — Indicates whether the specified statement has rows
    • sqlsrv_next_result — Makes the next result of the specified statement active
    • sqlsrv_num_fields — Retrieves the number of fields (columns) on a statement
    • sqlsrv_num_rows — Retrieves the number of rows in a result set
    • sqlsrv_prepare — Prepares a query for execution
    • sqlsrv_query — Prepares and executes a query.
    • sqlsrv_rollback — Rolls back a transaction that was begun with sqlsrv_begin_transaction
    • sqlsrv_rows_affected — Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed
    • sqlsrv_send_stream_data — Sends data from parameter streams to the server
    • sqlsrv_server_info — Returns information about the server


Введение

Расширение SQLSRV позволяет подключиться к базам данных Microsoft SQL Server или SQL Azure при запуске PHP на Windows. Релиз драйвера версии 3.0 поддерживает SQL Server начиная с версии SQL Server 2005, включая Server 2012 и SQL Server 2012 LocalDB. Подробное описание LocalDB можно прочитать по тут: » Драйвер PHP Driver для SQL Server, поддержка LocalDB и » SQL Server 2012 Express LocalDB.

Расширение SQLSRV поддерживается компанией Microsoft и доступно по ссылке - » http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx. SQL Server 2012 LocalDB можно загрузить отсюда - » http://go.microsoft.com/fwlink/?LinkID=237665.


Требования

Расширение SQLSRV может использоваться в следующих операционных системах:

  • Windows Vista Service Pack 2 or later
  • Windows Server 2008 Service Pack 2 or later
  • Windows Server 2008 R2
  • Windows 7

Расширение SQLSRV требует, чтобы на компьютере, на котором установлен PHP, была установлена библиотека Microsoft SQL Server 2008 R2 Native Client. Если Microsoft SQL Server 2008 R2 еще не уставнолен, вы можете скачать требуемый дистрибутив по ссылкам ниже:

  • » Скачать версию x86
  • » Скачать версию x64

Загружаемая копия расширения PDO_SQLSRV включает в себя восемь файлов драйверов, четыре из них для поддержки PDO. Если вы используете потоконебезопасную сборку PHP (PHP 5.3), используйте php_sqlsrv_53_nts.dll (вы должны использовать потоконебезопасную версию, если в качестве веб-сервера у вас установлен IIS). Если же вы используете потокобезопасную сборку, то должны использовать php_sqlsrv_52_ts_vc6.dll. Аналогично, для PHP 5.4, используйте php_sqlsrv_54_nts.dll или php_sqlsrv_54_ts.dll.

Наиболее часто используемая версия драйвера доступны здесь: » Загрузка SQLSRV 3.0. Если вам нужна поддержка PHP 5.2 и/или PHP скомпилирован с использованием VC6, используйте релиз драйвера 2.0: » Загрузка SQLSRV 2.0.

За подробностями о системных требованиях обратитесь к разделу » Системные требования SQLSRV.


Установка

Расширение SQLSRV включается добавлением соответствующего файла DLL в директорию расширений вашей установленной копии PHP и соответствующей записи в файл php.ini. Загружаемая копия расширения PDO_SQLSRV включает в себя восемь файлов драйверов, четыре из них для поддержки PDO. Если вы используете потоконебезопасную сборку PHP (PHP 5.3), используйте php_sqlsrv_53_nts.dll (вы должны использовать потоконебезопасную версию, если в качестве веб-сервера у вас установлен IIS). Если же вы используете потокобезопасную сборку, то должны использовать php_sqlsrv_52_ts_vc6.dll. Аналогично, для PHP 5.4, используйте php_sqlsrv_54_nts.dll или php_sqlsrv_54_ts.dll.

Наиболее часто используемая версия драйвера доступны здесь: » Загрузка SQLSRV 3.0. Если вам нужна поддержка PHP 5.2 и/или PHP скомпилирован с использованием VC6, используйте релиз драйвера 2.0: » Загрузка SQLSRV 2.0.

За подробностями о системных требованиях обратитесь к разделу » Системные требования SQLSRV.

Расширение SQLSRV может использоваться с PHP только в ОС Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Следующая таблица отображает список настроек, доступных в расширении SQLSRV. Для получения дополнительной информации о данных настройках, обратитесь к соответствующему разделу документации - » обработка ошибок и предупреждений в SQLSRV.

SQLSRV Опции настройки
Имя | По умолчанию | Меняемо | Изменения
sqlsrv.WarningsReturnAsErrors | 1 (TRUE) | PHP_INI_ALL | Доступно с версии SQLSRV 1.0
sqlsrv.LogSubsystems | 0 | PHP_INI_ALL | Доступно с версии SQLSRV 1.0
sqlsrv.LogSeverity | 1 | PHP_INI_ALL | Доступно с версии SQLSRV 1.0


Типы ресурсов

Дескриптор соединения

Дескриптор соединения возвращается функцией sqlsrv_connect().

Дескриптор выражения

Дескриптор выражения (statement resource) возвращается функциями sqlsrv_query() или sqlsrv_prepare().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SQLSRV_FETCH_ASSOC (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_fetch_array() возвращать ассоциативный массив.
SQLSRV_FETCH_NUMERIC (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_fetch_array() возвращать массив с числовыми ключами. numeric when passed as a parameter.
SQLSRV_FETCH_BOTH (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_fetch_array() возвращать массив с ключами и числовыми и ассоциативными (поведение по умолчанию).
SQLSRV_ERR_ALL (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_errors() возвращать и ошибки и предупреждения (поведение по умолчанию).
SQLSRV_ERR_ERRORS (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_errors() возвращать только ошибки (без предупреждений).
SQLSRV_ERR_WARNINGS (integer)
Переданный в качестве параметра, заставляет функцию sqlsrv_errors() возвращать только предупреждения (без ошибок).
SQLSRV_LOG_SYSTEM_ALL (integer)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование всех подсистем.
SQLSRV_LOG_SYSTEM_CONN (integer)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности соединения.
SQLSRV_LOG_SYSTEM_INIT (integer)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности инициализации.
SQLSRV_LOG_SYSTEM_OFF (integer)
Переданный в качестве параметра функции sqlsrv_configure(), отключает журналирование всех подсистем.
SQLSRV_LOG_SYSTEM_STMT (integer)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности выполнения выражений (statement activity).
SQLSRV_LOG_SYSTEM_UTIL (integer)
Переданный в качестве параметра функции sqlsrv_configure(), включает журналирование активности функций ошибок.
SQLSRV_LOG_SEVERITY_ALL (integer)
Переданный в качестве параметра функции sqlsrv_configure(), определеяет, что ошибки, предупреждения и замечания будут журналироваться.
SQLSRV_LOG_SEVERITY_ERROR (integer)
Переданный в качестве параметра функции sqlsrv_configure(), определеяет, что ошибки будут журналироваться.
SQLSRV_LOG_SEVERITY_NOTICE (integer)
Переданный в качестве параметра функции sqlsrv_configure(), определеяет, что замечания будут журналироваться.
SQLSRV_LOG_SEVERITY_WARNING (integer)
Переданный в качестве параметра функции sqlsrv_configure(), определеяет, что предупреждения будут журналироваться.
SQLSRV_NULLABLE_YES (integer)
Показывает, что значение столбца может быть NULL.
SQLSRV_NULLABLE_NO (integer)
Показывает, что значение столбца не может быть NULL.
SQLSRV_NULLABLE_UNKNOWN (integer)
Показывает, что неизвестно, может ли значение столбца быть NULL.
SQLSRV_PARAM_IN (integer)
При передаче в качестве параметра в функции sqlsrv_query() или sqlsrv_prepare() показывает, что параметр является входным.
SQLSRV_PARAM_INOUT (integer)
При передаче в качестве параметра в функции sqlsrv_query() или sqlsrv_prepare() показывает, что параметр является и входным и выходным.
SQLSRV_PARAM_OUT (integer)
При передаче в качестве параметра в функции sqlsrv_query() или sqlsrv_prepare() показывает, что параметр является выходным.
SQLSRV_PHPTYPE_INT (integer)
Определяет целочисленный тип данных PHP (integer). За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_DATETIME (integer)
Определяет временной тип данных PHP (datetime). За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_FLOAT (integer)
Определяет тип данных PHP с плавающей точкой (float). За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_STREAM (integer)
Определяет поток данных PHP (stream). Данная константа работает как функция и принимает константы кодировок. См. константы вида SQLSRV_ENC_*. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_PHPTYPE_STRING (integer)
Определяет строковый тип данных PHP (string). Данная константа работает как функция и принимает константы кодировок. См. константы вида SQLSRV_ENC_*. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_ENC_BINARY (integer)
Определяет, что данные от сервера возвращаются в виде потока байтов без выполнения кодирования или преобразования. За информацией об использовании обратитесь к разделу » Определение типов PHP.
SQLSRV_ENC_CHAR (integer)
Данные возвращаются в формате восьмибитных символов как определено кодовой странице локали Windows, установленной в системе. Любые мультибайтовые символы или символы, не преобразуемые в данную кодовую страницу, заменяются однобайтовым символом вопроса (?). Данная кодировка является кодировкой по умолчанию. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
UTF-8 (integer)
Определяет, что данные возвращаются в кодировке UTF-8. За информацией об использовании обратитесь к разделу документации » Определение типов PHP.
SQLSRV_SQLTYPE_BIGINT (integer)
Описывает SQL-тип BIGINT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_BINARY (integer)
Описывает SQL-тип BINARY. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_BIT (integer)
Описывает SQL-тип BIT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_CHAR (integer)
Описывает SQL-тип CHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATE (integer)
Описывает SQL-тип DATE. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATETIME (integer)
Описывает SQL-тип DATETIME. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATETIME2 (integer)
Описывает SQL-тип DATETIME2. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DATETIMEOFFSET (integer)
Описывает SQL-тип DATETIMEOFFSET. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_DECIMAL (integer)
Описывает SQL-тип DECIMAL. Эта константа работает как функция и принимает два параметра, задающий точность и разрядность. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_FLOAT (integer)
Описывает SQL-тип FLOAT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_IMAGE (integer)
Описывает SQL-тип IMAGE. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_INT (integer)
Описывает SQL-тип INT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_MONEY (integer)
Описывает SQL-тип MONEY. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NCHAR (integer)
Описывает SQL-тип NCHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу документации » Определение типов SQL.
SQLSRV_SQLTYPE_NUMERIC (integer)
Описывает SQL-тип NUMERIC. Эта константа работает как функция и принимает два параметра, задающий точность и разрядность. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NVARCHAR (integer)
Описывает SQL-тип NVARCHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NVARCHAR('max') (integer)
Описывает SQL-тип NVARCHAR(MAX). За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_NTEXT (integer)
Описывает SQL-тип NTEXT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_REAL (integer)
Описывает SQL-тип REAL. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_SMALLDATETIME (integer)
Описывает SQL-тип SMALLDATETIME. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_SMALLINT (integer)
Описывает SQL-тип SMALLINT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_SMALLMONEY (integer)
Описывает SQL-тип SMALLMONEY. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TEXT (integer)
Описывает SQL-тип TEXT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TIME (integer)
Описывает SQL-тип TIME. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TIMESTAMP (integer)
Описывает SQL-тип TIMESTAMP. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_TINYINT (integer)
Описывает SQL-тип TINYINT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_UNIQUEIDENTIFIER (integer)
Описывает SQL-тип UNIQUEIDENTIFIER. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_UDT (integer)
Описывает SQL-тип UDT. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARBINARY (integer)
Описывает SQL-тип VARBINARY. Эта константа работает как функция и принимает один параметр, задающий количество байт. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARBINARY('max') (integer)
Описывает SQL-тип VARBINARY(MAX). За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARCHAR (integer)
Описывает SQL-тип VARCHAR. Эта константа работает как функция и принимает один параметр, задающий количество символов. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_VARCHAR('max') (integer)
Описывает SQL-тип VARCHAR(MAX). За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_SQLTYPE_XML (integer)
Описывает SQL-тип XML. За информацией об использовании обратитесь к разделу » Определение типов SQL.
SQLSRV_TXN_READ_UNCOMMITTED (integer)
Задает уровень изоляции транзакции равным READ UNCOMMITTED. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_READ_COMMITTED (integer)
Задает уровень изоляции транзакции равным READ COMMITTED. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_REPEATABLE_READ (integer)
Задает уровень изоляции транзакции равным REPEATABLE READ. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_SNAPSHOT (integer)
Задает уровень изоляции транзакции равным SNAPSHOT. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_TXN_READ_SERIALIZABLE (integer)
Задает уровень изоляции транзакции равным SERIALIZABLE. Это значение используется для установки уровня TransactionIsolation в массиве $connectionOptions, переданном аргументом в функцию sqlsrv_connect().
SQLSRV_CURSOR_FORWARD (integer)
Задает тип курсора как forward-only. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_CURSOR_STATIC (integer)
Задает тип курсора как static. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_DYNAMIC (integer)
Задает тип курсора как dynamic. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_CURSOR_KEYSET (integer)
Задает тип курсора как keyset. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_CURSOR_BUFFERED (integer)
Создает запрос с курсором на стороне клиента. позволяет получать строки в любом порядке. За информацией об использовании обратитесь к разделу » Определение типов курсоров.
SQLSRV_SCROLL_NEXT (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_PRIOR (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_FIRST (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_LAST (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_ABSOLUTE (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.
SQLSRV_SCROLL_RELATIVE (integer)
Указывает, какую строку выбрать из результирующего набора. За информацией об использовании обратитесь к разделу » Определение типов курсоров и выборка строк.


Функции SQLSRV

Содержание

  • sqlsrv_begin_transaction — Begins a database transaction
  • sqlsrv_cancel — Cancels a statement
  • sqlsrv_client_info — Returns information about the client and specified connection
  • sqlsrv_close — Closes an open connection and releases resourses associated with the connection
  • sqlsrv_commit — Commits a transaction that was begun with sqlsrv_begin_transaction
  • sqlsrv_configure — Changes the driver error handling and logging configurations
  • sqlsrv_connect — Opens a connection to a Microsoft SQL Server database
  • sqlsrv_errors — Returns error and warning information about the last SQLSRV operation performed
  • sqlsrv_execute — Executes a statement prepared with sqlsrv_prepare
  • sqlsrv_fetch_array — Returns a row as an array
  • sqlsrv_fetch_object — Retrieves the next row of data in a result set as an object
  • sqlsrv_fetch — Makes the next row in a result set available for reading
  • sqlsrv_field_metadata — Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
  • sqlsrv_free_stmt — Frees all resources for the specified statement
  • sqlsrv_get_config — Returns the value of the specified configuration setting
  • sqlsrv_get_field — Gets field data from the currently selected row
  • sqlsrv_has_rows — Indicates whether the specified statement has rows
  • sqlsrv_next_result — Makes the next result of the specified statement active
  • sqlsrv_num_fields — Retrieves the number of fields (columns) on a statement
  • sqlsrv_num_rows — Retrieves the number of rows in a result set
  • sqlsrv_prepare — Prepares a query for execution
  • sqlsrv_query — Prepares and executes a query.
  • sqlsrv_rollback — Rolls back a transaction that was begun with sqlsrv_begin_transaction
  • sqlsrv_rows_affected — Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed
  • sqlsrv_send_stream_data — Sends data from parameter streams to the server
  • sqlsrv_server_info — Returns information about the server


Begins a database transaction

  • « Функции SQLSRV
  • sqlsrv_cancel »
  • PHP Manual
  • Функции SQLSRV
  • Begins a database transaction

sqlsrv_begin_transaction

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_begin_transaction — Begins a database transaction

Описание

bool sqlsrv_begin_transaction ( resource $conn )

The transaction begun by sqlsrv_begin_transaction() includes all statements that were executed after the call to sqlsrv_begin_transaction() and before calls to sqlsrv_rollback() or sqlsrv_commit(). Explicit transactions should be started and committed or rolled back using these functions instead of executing SQL statements that begin and committ/roll back transactions. For more information, see » SQLSRV Transactions.

Список параметров

conn

The connection resource returned by a call to sqlsrv_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_begin_transaction() example

The following example demonstrates how to use sqlsrv_begin_transaction() together with sqlsrv_commit() and sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Begin the transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialize parameter values. */
$orderId = 1; $qty = 10; $productId = 100;

/* Set up and execute the first query. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
          VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Set up and execute the second query. */
$sql2 = "UPDATE InventoryTable
          SET Quantity = (Quantity - ?)
          WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* If both queries were successful, commit the transaction. */
/* Otherwise, rollback the transaction. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction committed.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction rolled back.<br />";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • sqlsrv_commit() - Commits a transaction that was begun with sqlsrv_begin_transaction
  • sqlsrv_rollback() - Rolls back a transaction that was begun with sqlsrv_begin_transaction


Cancels a statement

  • « sqlsrv_begin_transaction
  • sqlsrv_client_info »
  • PHP Manual
  • Функции SQLSRV
  • Cancels a statement

sqlsrv_cancel

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_cancel — Cancels a statement

Описание

bool sqlsrv_cancel ( resource $stmt )

Cancels a statement. Any results associated with the statement that have not been consumed are deleted. After sqlsrv_cancel() has been called, the specified statement can be re-executed if it was created with sqlsrv_prepare(). Calling sqlsrv_cancel() is not necessary if all the results associated with the statement have been consumed.

Список параметров

stmt

The statement resource to be cancelled.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_cancel() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Sales FROM Table_1";

$stmt = sqlsrv_prepare( $conn, $sql);

if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

if( sqlsrv_execute( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

$salesTotal = 0;
$count = 0;

while( ($row = sqlsrv_fetch_array( $stmt)) && $salesTotal <=100000)
{
     $qty = $row[0];
     $price = $row[1];
     $salesTotal += ( $price * $qty);
     $count++;
}

echo "$count sales accounted for the first $$salesTotal in revenue.<br />";

// Cancel the pending results. The statement can be reused.
sqlsrv_cancel( $stmt);
?>

Примечания

The main difference between sqlsrv_cancel() and sqlsrv_free_stmt() is that a statement resource cancelled with sqlsrv_cancel() can be re-executed if it was created with sqlsrv_prepare(). A statement resource cancelled with sqlsrv_free_statement() cannot be re-executed.

Смотрите также

  • sqlsrv_free_stmt() - Frees all resources for the specified statement
  • sqlsrv_prepare() - Prepares a query for execution


Returns information about the client and specified connection

  • « sqlsrv_cancel
  • sqlsrv_close »
  • PHP Manual
  • Функции SQLSRV
  • Returns information about the client and specified connection

sqlsrv_client_info

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_client_info — Returns information about the client and specified connection

Описание

array sqlsrv_client_info ( resource $conn )

Returns information about the client and specified connection

Список параметров

conn

The connection about which information is returned.

Возвращаемые значения

Returns an associative array with keys described in the table below. Returns FALSE otherwise.

Array returned by sqlsrv_client_info
Key | Description
DriverDllName | SQLNCLI10.DLL
DriverODBCVer | ODBC version (xx.yy)
DriverVer | SQL Server Native Client DLL version (10.5.xxx)
ExtensionVer | php_sqlsrv.dll version (2.0.xxx.x)

Примеры

Пример #1 sqlsrv_client_info() example

<?php
$serverName = "serverName\sqlexpress";
$connOptions = array("UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connOptions );

if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

if( $client_info = sqlsrv_client_info( $conn)) {
    foreach( $client_info as $key => $value) {
        echo $key.": ".$value."<br />";
    }
} else {
    echo "Error in retrieving client info.<br />";
}
?>

Смотрите также

  • sqlsrv_server_info() - Returns information about the server


Closes an open connection and releases resourses associated with the connection

  • « sqlsrv_client_info
  • sqlsrv_commit »
  • PHP Manual
  • Функции SQLSRV
  • Closes an open connection and releases resourses associated with the connection

sqlsrv_close

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_close — Closes an open connection and releases resourses associated with the connection

Описание

bool sqlsrv_close ( resource $conn )

Closes an open connection and releases resourses associated with the connection.

Список параметров

conn

The connection to be closed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_close() example

<?php
$serverName = "serverName\sqlexpres";
$connOptions = array("UID"=>"username", "PWD"=>"password", "Database"=>"dbname");
$conn = sqlsrv_connect( $serverName, $connOptions );
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

//-------------------------------------
// Perform database operations here.
//-------------------------------------

// Close the connection.
sqlsrv_close( $conn );
?>

Смотрите также

  • sqlsrv_connect() - Opens a connection to a Microsoft SQL Server database


Commits a transaction that was begun with sqlsrv_begin_transaction

  • « sqlsrv_close
  • sqlsrv_configure »
  • PHP Manual
  • Функции SQLSRV
  • Commits a transaction that was begun with sqlsrv_begin_transaction

sqlsrv_commit

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_commit — Commits a transaction that was begun with sqlsrv_begin_transaction()

Описание

bool sqlsrv_commit ( resource $conn )

Commits a transaction that was begun with sqlsrv_begin_transaction(). The connection is returned to auto-commit mode after sqlsrv_commit() is called. The transaction that is committed includes all statements that were executed after the call to sqlsrv_begin_transaction(). Explicit transactions should be started and committed or rolled back using these functions instead of executing SQL statements that begin and committ/roll back transactions. For more information, see » SQLSRV Transactions.

Список параметров

conn

The connection on which the transaction is to be committed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_commit() example

The following example demonstrates how to use sqlsrv_commit() together with sqlsrv_begin_transaction() and sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Begin the transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialize parameter values. */
$orderId = 1; $qty = 10; $productId = 100;

/* Set up and execute the first query. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
         VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Set up and execute the second query. */
$sql2 = "UPDATE InventoryTable
         SET Quantity = (Quantity - ?)
         WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* If both queries were successful, commit the transaction. */
/* Otherwise, rollback the transaction. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction committed.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction rolled back.<br />";
}
?>

Смотрите также

  • sqlsrv_begin_transaction() - Begins a database transaction
  • sqlsrv_rollback() - Rolls back a transaction that was begun with sqlsrv_begin_transaction


Changes the driver error handling and logging configurations

  • « sqlsrv_commit
  • sqlsrv_connect »
  • PHP Manual
  • Функции SQLSRV
  • Changes the driver error handling and logging configurations

sqlsrv_configure

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_configure — Changes the driver error handling and logging configurations

Описание

bool sqlsrv_configure ( string $setting , mixed $value )

Changes the driver error handling and logging configurations.

Список параметров

setting

The name of the setting to set. The possible values are "WarningsReturnAsErrors", "LogSubsystems", and "LogSeverity".

value

The value of the specified setting. The following table shows possible values:

Error and Logging Setting Options
Setting | Options
WarningsReturnAsErrors | 1 (TRUE) or 0 (FALSE)
LogSubsystems | SQLSRV_LOG_SYSTEM_ALL (-1) SQLSRV_LOG_SYSTEM_CONN (2) SQLSRV_LOG_SYSTEM_INIT (1) SQLSRV_LOG_SYSTEM_OFF (0) SQLSRV_LOG_SYSTEM_STMT (4) SQLSRV_LOG_SYSTEM_UTIL (8)
LogSeverity | SQLSRV_LOG_SEVERITY_ALL (-1) SQLSRV_LOG_SEVERITY_ERROR (1) SQLSRV_LOG_SEVERITY_NOTICE (4) SQLSRV_LOG_SEVERITY_WARNING (2)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • » SQLSRV Error Handling.
  • » Logging SQLSRV Activity.


Opens a connection to a Microsoft SQL Server database

  • « sqlsrv_configure
  • sqlsrv_errors »
  • PHP Manual
  • Функции SQLSRV
  • Opens a connection to a Microsoft SQL Server database

sqlsrv_connect

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_connect — Opens a connection to a Microsoft SQL Server database

Описание

resource sqlsrv_connect ( string $serverName [, array $connectionInfo ] )

Opens a connection to a Microsoft SQL Server database. By default, the connection is attempted using Windows Authentication. To connect using SQL Server Authentication, include "UID" and "PWD" in the connection options array.

Список параметров

serverName

The name of the server to which a connection is established. To connect to a specific instance, follow the server name with a backward slash and the instance name (e.g. serverName\sqlexpress).

connectionInfo

An associative array that specifies options for connecting to the server. If values for the UID and PWD keys are not specified, the connection will be attempted using Windows Authentication. For a complete list of supported keys, see » SQLSRV Connection Options.

Возвращаемые значения

A connection resource. If a connection cannot be successfully opened, FALSE is returned.

Примеры

Пример #1 Connect using Windows Authentication.

<?php
$serverName = "serverName\sqlexpress"; //serverName\instanceName

// Since UID and PWD are not specified in the $connectionInfo array,
// The connection will be attempted using Windows Authentication.
$connectionInfo = array( "Database"=>"dbName");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Пример #2 Connect by specifying a user name and password.

<?php
$serverName = "serverName\sqlexpress"; //serverName\instanceName
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Пример #3 Connect on a specifed port.

<?php
$serverName = "serverName\sqlexpress, 1542"; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}
?>

Примечания

By default, the sqlsrv_connect() uses connection pooling to improve connection performance. To turn off connection pooling (i.e. force a new connection on each call), set the "ConnectionPooling" option in the $connectionOptions array to 0 (or FALSE). For more information, see » SQLSRV Connection Pooling.

The SQLSRV extension does not have a dedicated function for changing which database is connected to. The target database is specified in the $connectionOptions array that is passed to sqlsrv_connect. To change the database on an open connection, execute the following query "USE dbName" (e.g. sqlsrv_query($conn, "USE dbName")).

Смотрите также

  • sqlsrv_close() - Closes an open connection and releases resourses associated with the connection
  • sqlsrv_errors() - Returns error and warning information about the last SQLSRV operation performed
  • sqlsrv_query() - Prepares and executes a query.


Returns error and warning information about the last SQLSRV operation performed

  • « sqlsrv_connect
  • sqlsrv_execute »
  • PHP Manual
  • Функции SQLSRV
  • Returns error and warning information about the last SQLSRV operation performed

sqlsrv_errors

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_errors — Returns error and warning information about the last SQLSRV operation performed

Описание

mixed sqlsrv_errors ([ int $errorsOrWarnings ] )

Returns error and warning information about the last SQLSRV operation performed.

Список параметров

errorsOrWarnings

Determines whether error information, warning information, or both are returned. If this parameter is not supplied, both error information and warning information are returned. The following are the supported values for this parameter: SQLSRV_ERR_ALL, SQLSRV_ERR_ERRORS, SQLSRV_ERR_WARNINGS.

Возвращаемые значения

If errors and/or warnings occurred on the last sqlsrv operation, an array of arrays containing error information is returned. If no errors and/or warnings occurred on the last sqlsrv operation, NULL is returned. The following table describes the structure of the returned arrays:

Array returned by sqlsrv_errors
Key | Description
SQLSTATE | For errors that originate from the ODBC driver, the SQLSTATE returned by ODBC. For errors that originate from the Microsoft Drivers for PHP for SQL Server, a SQLSTATE of IMSSP. For warnings that originate from the Microsoft Drivers for PHP for SQL Server, a SQLSTATE of 01SSP.
code | For errors that originate from SQL Server, the native SQL Server error code. For errors that originate from the ODBC driver, the error code returned by ODBC. For errors that originate from the Microsoft Drivers for PHP for SQL Server, the Microsoft Drivers for PHP for SQL Server error code.
message | A description of the error.

Примеры

Пример #1 functionname() example

<?php
$serverName = "serverName/sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

/* Set up a query to select an invalid column name. */
$sql = "SELECT BadColumnName FROM Table_1";

/* Execution of the query will fail because of the bad column name. */
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false ) {
    if( ($errors = sqlsrv_errors() ) != null) {
        foreach( $errors as $error ) {
            echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
            echo "code: ".$error[ 'code']."<br />";
            echo "message: ".$error[ 'message']."<br />";
        }
    }
}
?>

Примечания

By default, warnings generated on a call to any SQLSRV function are treated as errors. This means that if a warning occurs on a call to a SQLSRV function, the function returns FALSE. However, warnings that correspond to SQLSTATE values 01000, 01001, 01003, and 01S02 are never treated as errors. For information about changing this behavior, see sqlsrv_configure() and the WarningsReturnAsErrors setting.

Смотрите также

  • sqlsrv_configure() - Changes the driver error handling and logging configurations


Executes a statement prepared with sqlsrv_prepare

  • « sqlsrv_errors
  • sqlsrv_fetch_array »
  • PHP Manual
  • Функции SQLSRV
  • Executes a statement prepared with sqlsrv_prepare

sqlsrv_execute

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_execute — Executes a statement prepared with sqlsrv_prepare()

Описание

bool sqlsrv_execute ( resource $stmt )

Executes a statement prepared with sqlsrv_prepare(). This function is ideal for executing a prepared statement multiple times with different parameter values.

Список параметров

stmt

A statement resource returned by sqlsrv_prepare().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_execute() example

This example demonstrates how to prepare a statement with sqlsrv_prepare() and re-execute it multiple times (with different parameter values) using sqlsrv_execute().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1
        SET OrderQty = ?
        WHERE SalesOrderID = ?";

// Initialize parameters and prepare the statement.
// Variables $qty and $id are bound to the statement, $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
    die( print_r( sqlsrv_errors(), true));
}

// Set up the SalesOrderDetailID and OrderQty information.
// This array maps the order ID to order quantity in key=>value pairs.
$orders = array( 1=>10, 2=>20, 3=>30);

// Execute the statement for each order.
foreach( $orders as $id => $qty) {
    // Because $id and $qty are bound to $stmt1, their updated
    // values are used with each execution of the statement.
    if( sqlsrv_execute( $stmt ) === false ) {
          die( print_r( sqlsrv_errors(), true));
    }
}
?>

Примечания

When you prepare a statement that uses variables as parameters, the variables are bound to the statement. This means that if you update the values of the variables, the next time you execute the statement it will run with updated parameter values. For statements that you plan to execute only once, use sqlsrv_query().

Смотрите также

  • sqlsrv_prepare() - Prepares a query for execution
  • sqlsrv_query() - Prepares and executes a query.


Returns a row as an array

  • « sqlsrv_execute
  • sqlsrv_fetch_object »
  • PHP Manual
  • Функции SQLSRV
  • Returns a row as an array

sqlsrv_fetch_array

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_fetch_array — Returns a row as an array

Описание

array sqlsrv_fetch_array ( resource $stmt [, int $fetchType [, int $row [, int $offset ]]] )

Returns the next available row of data as an associative array, a numeric array, or both (the default).

Список параметров

stmt

A statement resource returned by sqlsrv_query or sqlsrv_prepare.

fetchType

A predefined constant specifying the type of array to return. Possible values are SQLSRV_FETCH_ASSOC, SQLSRV_FETCH_NUMERIC, and SQLSRV_FETCH_BOTH (the default).

A fetch type of SQLSRV_FETCH_ASSOC should not be used when consuming a result set with multiple columns of the same name.

row

Specifies the row to access in a result set that uses a scrollable cursor. Possible values are SQLSRV_SCROLL_NEXT, SQLSRV_SCROLL_PRIOR, SQLSRV_SCROLL_FIRST, SQLSRV_SCROLL_LAST, SQLSRV_SCROLL_ABSOLUTE and, SQLSRV_SCROLL_RELATIVE (the default). When this parameter is specified, the fetchType must be explicitly defined.

offset

Specifies the row to be accessed if the row parameter is set to SQLSRV_SCROLL_ABSOLUTE or SQLSRV_SCROLL_RELATIVE. Note that the first row in a result set has index 0.

Возвращаемые значения

Returns an array on success, NULL if there are no more rows to return, and FALSE if an error occurs.

Примеры

Пример #1 Retrieving an associative array.

<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
      echo $row['LastName'].", ".$row['FirstName']."<br />";
}

sqlsrv_free_stmt( $stmt);
?>

Пример #2 Retrieving a numeric array.

<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
      echo $row[0].", ".$row[1]."<br />";
}

sqlsrv_free_stmt( $stmt);
?>

Примечания

Not specifying the fetchType or explicity using the SQLSRV_FETCH_TYPE constant in the examples above will return an array that has both associative and numeric keys.

If more than one column is returned with the same name, the last column will take precedence. To avoid field name collisions, use aliases.

If a column with no name is returned, the associative key for the array element will be an empty string ("").

Смотрите также

  • sqlsrv_connect() - Opens a connection to a Microsoft SQL Server database
  • sqlsrv_query() - Prepares and executes a query.
  • sqlsrv_errors() - Returns error and warning information about the last SQLSRV operation performed
  • sqlsrv_fetch() - Makes the next row in a result set available for reading


Retrieves the next row of data in a result set as an object

  • « sqlsrv_fetch_array
  • sqlsrv_fetch »
  • PHP Manual
  • Функции SQLSRV
  • Retrieves the next row of data in a result set as an object

sqlsrv_fetch_object

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_fetch_object — Retrieves the next row of data in a result set as an object

Описание

mixed sqlsrv_fetch_object ( resource $stmt [, string $className [, array $ctorParams [, int $row [, int $offset ]]]] )

Retrieves the next row of data in a result set as an instance of the specified class with properties that match the row field names and values that correspond to the row field values.

Список параметров

stmt

A statement resource created by sqlsrv_query() or sqlsrv_execute().

className

The name of the class to instantiate. If no class name is specified, stdClass is instantiated.

ctorParams

Values passed to the constructor of the specified class. If the constructor of the specified class takes parameters, the ctorParams array must be supplied.

row

The row to be accessed. This parameter can only be used if the specified statement was prepared with a scrollable cursor. In that case, this parameter can take on one of the following values:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Specifies the row to be accessed if the row parameter is set to SQLSRV_SCROLL_ABSOLUTE or SQLSRV_SCROLL_RELATIVE. Note that the first row in a result set has index 0.

Возвращаемые значения

Returns an object on success, NULL if there are no more rows to return, and FALSE if an error occurs or if the specified class does not exist.

Примеры

Пример #1 sqlsrv_fetch_object() example

The following example demonstrates how to retrieve a row as a stdClass object.

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT fName, lName FROM Table_1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Retrieve each row as an object.
// Because no class is specified, each row will be retrieved as a stdClass object.
// Property names correspond to field names.
while( $obj = sqlsrv_fetch_object( $stmt)) {
      echo $obj->fName.", ".$obj->lName."<br />";
}
?>

Примечания

If a class name is specified with the optional $className parameter and the class has properties whose names match the result set field names, the corresponding result set values are applied to the properties. If a result set field name does not match a class property, a property with the result set field name is added to the object and the result set value is applied to the property. The following rules apply when using the $className parameter:

  • Field-property name matching is case-sensitive.
  • Field-property matching occurs regardless of access modifiers.
  • Class property data types are ignored when applying a field value to a property.
  • If the class does not exist, the function returns FALSE and adds an error to the error collection.
Regardless of whether the $className parameter is supplied, if a field with no name is returned, the field value will be ignored and a warning will be added to the error collection.

When consuming a result set that has multiple columns with the same name, it may be better to use sqlsrv_fetch_array() or the combination of sqlsrv_fetch() and sqlsrv_get_field().

Смотрите также

  • sqlsrv_fetch() - Makes the next row in a result set available for reading
  • sqlsrv_fetch_array() - Returns a row as an array


Makes the next row in a result set available for reading

  • « sqlsrv_fetch_object
  • sqlsrv_field_metadata »
  • PHP Manual
  • Функции SQLSRV
  • Makes the next row in a result set available for reading

sqlsrv_fetch

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_fetch — Makes the next row in a result set available for reading

Описание

mixed sqlsrv_fetch ( resource $stmt [, int $row [, int $offset ]] )

Makes the next row in a result set available for reading. Use sqlsrv_get_field() to read the fields of the row.

Список параметров

stmt

A statement resource created by executing sqlsrv_query() or sqlsrv_execute().

row

The row to be accessed. This parameter can only be used if the specified statement was prepared with a scrollable cursor. In that case, this parameter can take on one of the following values:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

offset

Specifies the row to be accessed if the row parameter is set to SQLSRV_SCROLL_ABSOLUTE or SQLSRV_SCROLL_RELATIVE. Note that the first row in a result set has index 0.

Возвращаемые значения

Returns TRUE if the next row of a result set was successfully retrieved, FALSE if an error occurs, and NULL if there are no more rows in the result set.

Примеры

Пример #1 sqlsrv_fetch() example

The following example demonstrates how to retrieve a row with sqlsrv_fetch() and get the row fields with sqlsrv_get_field().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Name, Comment
        FROM Table_1
        WHERE ReviewID=1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Make the first (and in this case, only) row of the result set available for reading.
if( sqlsrv_fetch( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

// Get the row fields. Field indeces start at 0 and must be retrieved in order.
// Retrieving row fields by name is not supported by sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Смотрите также

  • sqlsrv_get_field() - Gets field data from the currently selected row
  • sqlsrv_fetch_array() - Returns a row as an array
  • sqlsrv_fetch_object() - Retrieves the next row of data in a result set as an object


Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query

  • « sqlsrv_fetch
  • sqlsrv_free_stmt »
  • PHP Manual
  • Функции SQLSRV
  • Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query

sqlsrv_field_metadata

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_field_metadata — Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare() or sqlsrv_query()

Описание

mixed sqlsrv_field_metadata ( resource $stmt )

Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare() or sqlsrv_query(). sqlsrv_field_metadata() can be called on a statement before or after statement execution.

Список параметров

stmt

The statment resource for which metadata is returned.

Возвращаемые значения

Returns an array of arrays is returned on success. Otherwise, FALSE is returned. Each returned array is described by the following table:

Array returned by sqlsrv_field_metadata
Key | Description
Name | The name of the field.
Type | The numeric value for the SQL type.
Size | The number of characters for fields of character type, the number of bytes for fields of binary type, or NULL for other types.
Precision | The precision for types of variable precision, NULL for other types.
Scale | The scale for types of variable scale, NULL for other types.
Nullable | An enumeration indicating whether the column is nullable, not nullable, or if it is not known.
For more information, see » sqlsrv_field_metadata in the Microsoft SQLSRV documentation.

Примеры

Пример #1 sqlsrv_field_metadata() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"AdventureWorks", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT * FROM Table_1";
$stmt = sqlsrv_prepare( $conn, $sql );

foreach( sqlsrv_field_metadata( $stmt ) as $fieldMetadata ) {
    foreach( $fieldMetadata as $name => $value) {
       echo "$name: $value<br />";
    }
      echo "<br />";
}
?>

Смотрите также

  • sqlsrv_client_info() - Returns information about the client and specified connection


Frees all resources for the specified statement

  • « sqlsrv_field_metadata
  • sqlsrv_get_config »
  • PHP Manual
  • Функции SQLSRV
  • Frees all resources for the specified statement

sqlsrv_free_stmt

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_free_stmt — Frees all resources for the specified statement

Описание

bool sqlsrv_free_stmt ( resource $stmt )

Frees all resources for the specified statement. The statement cannot be used after sqlsrv_free_stmt() has been called on it. If sqlsrv_free_stmt() is called on an in-progress statement that alters server state, statement execution is terminated and the statement is rolled back.

Список параметров

stmt

The statment for which resources are freed. Note that NULL is a valid parameter value. This allows the function to be called multiple times in a script.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_free_stmt() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$stmt = sqlsrv_query( $conn, "SELECT * FROM Table_1");
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

/*-------------------------------
     Process query results here.
-------------------------------*/

/* Free the statement resources. */
sqlsrv_free_stmt( $stmt);

?>

Примечания

The main difference between sqlsrv_free_stmt() and sqlsrv_cancel() is that a statement resource cancelled with sqlsrv_cancel() can be re-executed if it was created with sqlsrv_prepare(). A statement resource cancelled with sqlsrv_free_statement() cannot be re-executed.

Смотрите также

  • sqlsrv_cancel() - Cancels a statement


Returns the value of the specified configuration setting

  • « sqlsrv_free_stmt
  • sqlsrv_get_field »
  • PHP Manual
  • Функции SQLSRV
  • Returns the value of the specified configuration setting

sqlsrv_get_config

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_get_config — Returns the value of the specified configuration setting

Описание

mixed sqlsrv_get_config ( string $setting )

Returns the value of the specified configuration setting.

Список параметров

setting

The name of the setting for which the value is returned. For a list of configurable settings, see sqlsrv_configure().

Возвращаемые значения

Returns the value of the specified setting. If an invalid setting is specified, FALSE is returned.

Смотрите также

  • sqlsrv_configure() - Changes the driver error handling and logging configurations


Gets field data from the currently selected row

  • « sqlsrv_get_config
  • sqlsrv_has_rows »
  • PHP Manual
  • Функции SQLSRV
  • Gets field data from the currently selected row

sqlsrv_get_field

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_get_field — Gets field data from the currently selected row

Описание

mixed sqlsrv_get_field ( resource $stmt , int $fieldIndex [, int $getAsType ] )

Gets field data from the currently selected row. Fields must be accessed in order. Field indices start at 0.

Список параметров

stmt

A statement resource returned by sqlsrv_query() or sqlsrv_execute().

fieldIndex

The index of the field to be retrieved. Field indices start at 0. Fields must be accessed in order. i.e. If you access field index 1, then field index 0 will not be available.

getAsType

The PHP data type for the returned field data. If this parameter is not set, the field data will be returned as its default PHP data type. For information about default PHP data types, see » Default PHP Data Types in the Microsoft SQLSRV documentation.

Возвращаемые значения

Returns data from the specified field on success. Returns FALSE otherwise.

Примеры

Пример #1 sqlsrv_get_field() example

The following example demonstrates how to retrieve a row with sqlsrv_fetch() and get the row fields with sqlsrv_get_field().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT Name, Comment
        FROM Table_1
        WHERE ReviewID=1";
$stmt = sqlsrv_query( $conn, $sql);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}

// Make the first (and in this case, only) row of the result set available for reading.
if( sqlsrv_fetch( $stmt ) === false) {
     die( print_r( sqlsrv_errors(), true));
}

// Get the row fields. Field indeces start at 0 and must be retrieved in order.
// Retrieving row fields by name is not supported by sqlsrv_get_field.
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

$comment = sqlsrv_get_field( $stmt, 1);
echo $comment;
?>

Смотрите также

  • sqlsrv_fetch() - Makes the next row in a result set available for reading
  • sqlsrv_fetch_array() - Returns a row as an array
  • sqlsrv_fetch_object() - Retrieves the next row of data in a result set as an object


Indicates whether the specified statement has rows

  • « sqlsrv_get_field
  • sqlsrv_next_result »
  • PHP Manual
  • Функции SQLSRV
  • Indicates whether the specified statement has rows

sqlsrv_has_rows

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_has_rows — Indicates whether the specified statement has rows

Описание

bool sqlsrv_has_rows ( resource $stmt )

Indicates whether the specified statement has rows.

Список параметров

stmt

A statement resource returned by sqlsrv_query() or sqlsrv_execute().

Возвращаемые значения

Returns TRUE if the specified statement has rows and FALSE if the statement does not have rows or if an error occurred.

Примеры

Пример #1 sqlsrv_has_rows() example

<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" )
$conn = sqlsrv_connect( $server, $connectionInfo );

$stmt = sqlsrv_query( $conn, "SELECT * FROM Table_1");

if ($stmt) {
   $rows = sqlsrv_has_rows( $stmt );
   if ($rows === true)
      echo "There are rows. <br />";
   else
      echo "There are no rows. <br />";
}
?>

Смотрите также

  • sqlsrv_num_rows() - Retrieves the number of rows in a result set
  • sqlsrv_query() - Prepares and executes a query.


Makes the next result of the specified statement active

  • « sqlsrv_has_rows
  • sqlsrv_num_fields »
  • PHP Manual
  • Функции SQLSRV
  • Makes the next result of the specified statement active

sqlsrv_next_result

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_next_result — Makes the next result of the specified statement active

Описание

mixed sqlsrv_next_result ( resource $stmt )

Makes the next result of the specified statement active. Results include result sets, row counts, and output parameters.

Список параметров

stmt

The statment on which the next result is being called.

Возвращаемые значения

Returns TRUE if the next result was successfully retrieved, FALSE if an error occurred, and NULL if there are no more results to retrieve.

Примеры

Пример #1 sqlsrv_next_result() example

The following example executes a batch query that inserts into a table and then selects from the table. This produces two results on the statement: one for the rows affected by the INSERT and one for the rows returned by the SELECT. To get to the rows returned by the SELECT, sqlsrv_next_result() must be called to move past the first result.

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array("Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

$query = "INSERT INTO Table_1 (id, data) VALUES (?,?); SELECT * FROM TABLE_1;";
$params = array(1, "some data");
$stmt = sqlsrv_query($conn, $query, $params);

// Consume the first result (rows affected by INSERT) without calling sqlsrv_next_result.
echo "Rows affected: ".sqlsrv_rows_affected($stmt)."<br />";

// Move to the next result and display results.
$next_result = sqlsrv_next_result($stmt);
if( $next_result ) {
   while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)){
      echo $row['id'].": ".$row['data']."<br />";
   }
} elseif( is_null($next_result)) {
     echo "No more results.<br />";
} else {
     die(print_r(sqlsrv_errors(), true));
}
?>

Смотрите также

  • sqlsrv_query() - Prepares and executes a query.
  • sqlsrv_fetch_array() - Returns a row as an array
  • sqlsrv_rows_affected() - Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed


Retrieves the number of fields (columns) on a statement

  • « sqlsrv_next_result
  • sqlsrv_num_rows »
  • PHP Manual
  • Функции SQLSRV
  • Retrieves the number of fields (columns) on a statement

sqlsrv_num_fields

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_num_fields — Retrieves the number of fields (columns) on a statement

Описание

mixed sqlsrv_num_fields ( resource $stmt )

Retrieves the number of fields (columns) on a statement.

Список параметров

stmt

The statment for which the number of fields is returned. sqlsrv_num_fields() can be called on a statement before or after statement execution.

Возвращаемые значения

Returns the number of fields on success. Returns FALSE otherwise.

Примеры

Пример #1 sqlsrv_num_fields() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
   die( print_r( sqlsrv_errors(), true));
}

$sql = "SELECT * FROM Table_1";
$stmt = sqlsrv_query($conn, $sql);
if( $stmt === false) {
   die( print_r( sqlsrv_errors(), true));
}

$numFields = sqlsrv_num_fields( $stmt );

while( sqlsrv_fetch( $stmt )) {
   // Iterate through the fields of each row.
   for($i = 0; $i < $numFields; $i++) {
      echo sqlsrv_get_field($stmt, $i)." ";
   }
   echo "<br />";
}
?>

Смотрите также

  • sqlsrv_field_metadata() - Retrieves metadata for the fields of a statement prepared by sqlsrv_prepare or sqlsrv_query
  • sqlsrv_fetch() - Makes the next row in a result set available for reading
  • sqlsrv_get_field() - Gets field data from the currently selected row


Retrieves the number of rows in a result set

  • « sqlsrv_num_fields
  • sqlsrv_prepare »
  • PHP Manual
  • Функции SQLSRV
  • Retrieves the number of rows in a result set

sqlsrv_num_rows

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_num_rows — Retrieves the number of rows in a result set

Описание

mixed sqlsrv_num_rows ( resource $stmt )

Retrieves the number of rows in a result set. This function requires that the statment resource be created with a static or keyset cursor. For more information, see sqlsrv_query(), sqlsrv_prepare(), or » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Список параметров

stmt

The statement for which the row count is returned. The statment resource must be created with a static or keyset cursor. For more information, see sqlsrv_query(), sqlsrv_prepare(), or » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Возвращаемые значения

Returns the number of rows retrieved on success and FALSE if an error occurred. If a forward cursor (the default) or dynamic cursor is used, FALSE is returned.

Примеры

Пример #1 sqlsrv_num_rows() example

<?php
$server = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $server, $connectionInfo );

$sql = "SELECT * FROM Table_1";
$params = array();
$options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$stmt = sqlsrv_query( $conn, $sql , $params, $options );

$row_count = sqlsrv_num_rows( $stmt );

if ($row_count === false)
   echo "Error in retrieveing row count.";
else
   echo $row_count;
?>

Смотрите также

  • sqlsrv_has_rows() - Indicates whether the specified statement has rows
  • sqlsrv_rows_affected() - Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed


Prepares a query for execution

  • « sqlsrv_num_rows
  • sqlsrv_query »
  • PHP Manual
  • Функции SQLSRV
  • Prepares a query for execution

sqlsrv_prepare

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_prepare — Prepares a query for execution

Описание

mixed sqlsrv_prepare ( resource $conn , string $sql [, array $params [, array $options ]] )

Prepares a query for execution. This function is ideal for preparing a query that will be executed multiple times with different parameter values.

Список параметров

conn

A connection resource returned by sqlsrv_connect().

sql

The string that defines the query to be prepared and executed.

params

An array specifying parameter information when executing a parameterized query. Array elements can be any of the following:

  • A literal value
  • A PHP variable
  • An array with this structure: array($value [, $direction [, $phpType [, $sqlType]]])
The following table describes the elements in the array structure above:

Array structure
Element | Description
$value | A literal value, a PHP variable, or a PHP by-reference variable.
$direction (optional) | One of the following SQLSRV constants used to indicate the parameter direction: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. The default value is SQLSRV_PARAM_IN.
$phpType (optional) | A SQLSRV_PHPTYPE_* constant that specifies PHP data type of the returned value.
$sqlType (optional) | A SQLSRV_SQLTYPE_* constant that specifies the SQL Server data type of the input value.
options

An array specifing query property options. The supported keys are described in the following table:

Query Options
Key | Values | Description
QueryTimeout | A positive integer value. | Sets the query timeout in seconds. By default, the driver will wait indefinitely for results.
SendStreamParamsAtExec | TRUE or FALSE (the default is TRUE) | Configures the driver to send all stream data at execution (TRUE), or to send stream data in chunks (FALSE). By default, the value is set to TRUE. For more information, see sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, or SQLSRV_CURSOR_KEYSET | See » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Возвращаемые значения

Returns a statement resource on success and FALSE if an error occurred.

Примеры

Пример #1 sqlsrv_prepare() example

This example demonstrates how to prepare a statement with sqlsrv_prepare() and re-execute it multiple times (with different parameter values) using sqlsrv_execute().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false) {
    die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1
        SET OrderQty = ?
        WHERE SalesOrderID = ?";

// Initialize parameters and prepare the statement.
// Variables $qty and $id are bound to the statement, $stmt.
$qty = 0; $id = 0;
$stmt = sqlsrv_prepare( $conn, $sql, array( &$qty, &$id));
if( !$stmt ) {
    die( print_r( sqlsrv_errors(), true));
}

// Set up the SalesOrderDetailID and OrderQty information.
// This array maps the order ID to order quantity in key=>value pairs.
$orders = array( 1=>10, 2=>20, 3=>30);

// Execute the statement for each order.
foreach( $orders as $id => $qty) {
    // Because $id and $qty are bound to $stmt1, their updated
    // values are used with each execution of the statement.
    if( sqlsrv_execute( $stmt ) === false ) {
          die( print_r( sqlsrv_errors(), true));
    }
}
?>

Примечания

When you prepare a statement that uses variables as parameters, the variables are bound to the statement. This means that if you update the values of the variables, the next time you execute the statement it will run with updated parameter values. For statements that you plan to execute only once, use sqlsrv_query().

Смотрите также

  • sqlsrv_execute() - Executes a statement prepared with sqlsrv_prepare
  • sqlsrv_query() - Prepares and executes a query.


Prepares and executes a query.

  • « sqlsrv_prepare
  • sqlsrv_rollback »
  • PHP Manual
  • Функции SQLSRV
  • Prepares and executes a query.

sqlsrv_query

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_query — Prepares and executes a query.

Описание

mixed sqlsrv_query ( resource $conn , string $sql [, array $params [, array $options ]] )

Prepares and executes a query.

Список параметров

conn

A connection resource returned by sqlsrv_connect().

sql

The string that defines the query to be prepared and executed.

params

An array specifying parameter information when executing a parameterized query. Array elements can be any of the following:

  • A literal value
  • A PHP variable
  • An array with this structure: array($value [, $direction [, $phpType [, $sqlType]]])
The following table describes the elements in the array structure above:

Array structure
Element | Description
$value | A literal value, a PHP variable, or a PHP by-reference variable.
$direction (optional) | One of the following SQLSRV constants used to indicate the parameter direction: SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. The default value is SQLSRV_PARAM_IN.
$phpType (optional) | A SQLSRV_PHPTYPE_* constant that specifies PHP data type of the returned value.
$sqlType (optional) | A SQLSRV_SQLTYPE_* constant that specifies the SQL Server data type of the input value.
options

An array specifing query property options. The supported keys are described in the following table:

Query Options
Key | Values | Description
QueryTimeout | A positive integer value. | Sets the query timeout in seconds. By default, the driver will wait indefinitely for results.
SendStreamParamsAtExec | TRUE or FALSE (the default is TRUE) | Configures the driver to send all stream data at execution (TRUE), or to send stream data in chunks (FALSE). By default, the value is set to TRUE. For more information, see sqlsrv_send_stream_data().
Scrollable | SQLSRV_CURSOR_FORWARD, SQLSRV_CURSOR_STATIC, SQLSRV_CURSOR_DYNAMIC, or SQLSRV_CURSOR_KEYSET | See » Specifying a Cursor Type and Selecting Rows in the Microsoft SQLSRV documentation.

Возвращаемые значения

Returns a statement resource on success and FALSE if an error occurred.

Примеры

Пример #1 sqlsrv_query() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "INSERT INTO Table_1 (id, data) VALUES (?, ?)";
$params = array(1, "some data");

$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
     die( print_r( sqlsrv_errors(), true));
}
?>

Примечания

For statements that you plan to execute only once, use sqlsrv_query(). If you intend to re-execute a statement with different parameter values, use the combination of sqlsrv_prepare() and sqlsrv_execute().

Смотрите также

  • sqlsrv_prepare() - Prepares a query for execution
  • sqlsrv_execute() - Executes a statement prepared with sqlsrv_prepare


Rolls back a transaction that was begun with sqlsrv_begin_transaction

  • « sqlsrv_query
  • sqlsrv_rows_affected »
  • PHP Manual
  • Функции SQLSRV
  • Rolls back a transaction that was begun with sqlsrv_begin_transaction

sqlsrv_rollback

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_rollback — Rolls back a transaction that was begun with sqlsrv_begin_transaction()

Описание

bool sqlsrv_rollback ( resource $conn )

Rolls back a transaction that was begun with sqlsrv_begin_transaction() and returns the connection to auto-commit mode.

Список параметров

conn

The connection resource returned by a call to sqlsrv_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sqlsrv_rollback() example

The following example demonstrates how to use sqlsrv_begin_transaction() together with sqlsrv_commit() and sqlsrv_rollback().

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}

/* Begin the transaction. */
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* Initialize parameter values. */
$orderId = 1; $qty = 10; $productId = 100;

/* Set up and execute the first query. */
$sql1 = "INSERT INTO OrdersTable (ID, Quantity, ProductID)
         VALUES (?, ?, ?)";
$params1 = array( $orderId, $qty, $productId );
$stmt1 = sqlsrv_query( $conn, $sql1, $params1 );

/* Set up and execute the second query. */
$sql2 = "UPDATE InventoryTable
         SET Quantity = (Quantity - ?)
         WHERE ProductID = ?";
$params2 = array($qty, $productId);
$stmt2 = sqlsrv_query( $conn, $sql2, $params2 );

/* If both queries were successful, commit the transaction. */
/* Otherwise, rollback the transaction. */
if( $stmt1 && $stmt2 ) {
     sqlsrv_commit( $conn );
     echo "Transaction committed.<br />";
} else {
     sqlsrv_rollback( $conn );
     echo "Transaction rolled back.<br />";
}
?>

Смотрите также

  • sqlsrv_begin_transaction() - Begins a database transaction
  • sqlsrv_commit() - Commits a transaction that was begun with sqlsrv_begin_transaction


Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed

  • « sqlsrv_rollback
  • sqlsrv_send_stream_data »
  • PHP Manual
  • Функции SQLSRV
  • Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed

sqlsrv_rows_affected

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_rows_affected — Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed

Описание

int sqlsrv_rows_affected ( resource $stmt )

Returns the number of rows modified by the last INSERT, UPDATE, or DELETE query executed. For information about the number of rows returned by a SELECT query, see sqlsrv_num_rows().

Список параметров

stmt

The executed statement resource for which the number of affected rows is returned.

Возвращаемые значения

Returns the number of rows affected by the last INSERT, UPDATE, or DELETE query. If no rows were affected, 0 is returned. If the number of affected rows cannot be determined, -1 is returned. If an error occurred, FALSE is returned.

Примеры

Пример #1 sqlsrv_rows_affected() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1 SET data = ? WHERE id = ?";

$params = array("updated data", 1);

$stmt = sqlsrv_query( $conn, $sql, $params);

$rows_affected = sqlsrv_rows_affected( $stmt);
if( $rows_affected === false) {
     die( print_r( sqlsrv_errors(), true));
} elseif( $rows_affected == -1) {
      echo "No information available.<br />";
} else {
      echo $rows_affected." rows were updated.<br />";
}
?>

Смотрите также

  • sqlsrv_num_rows() - Retrieves the number of rows in a result set


Sends data from parameter streams to the server

  • « sqlsrv_rows_affected
  • sqlsrv_server_info »
  • PHP Manual
  • Функции SQLSRV
  • Sends data from parameter streams to the server

sqlsrv_send_stream_data

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_send_stream_data — Sends data from parameter streams to the server

Описание

bool sqlsrv_send_stream_data ( resource $stmt )

Send data from parameter streams to the server. Up to 8 KB of data is sent with each call.

Список параметров

stmt

A statement resource returned by sqlsrv_query() or sqlsrv_execute().

Возвращаемые значения

Returns TRUE if there is more data to send and FALSE if there is not.

Примеры

Пример #1 sqlsrv_send_stream_data() example

<?php
$serverName = "serverName\sqlexpress";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password" );
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$sql = "UPDATE Table_1 SET data = ( ?) WHERE id = 100";

// Open parameter data as a stream and put it in the $params array.
$data = fopen( "data://text/plain,[ Lengthy content here. ]", "r");
$params = array( &$data);

// Prepare the statement. Use the $options array to turn off the
// default behavior, which is to send all stream data at the time of query
// execution.
$options = array("SendStreamParamsAtExec"=>0);
$stmt = sqlsrv_prepare( $conn, $sql, $params, $options);

sqlsrv_execute( $stmt);

// Send up to 8K of parameter data to the server
// with each call to sqlsrv_send_stream_data.
$i = 1;
while( sqlsrv_send_stream_data( $stmt)) {
      $i++;
}
echo "$i calls were made.";
?>

Смотрите также

  • sqlsrv_prepare() - Prepares a query for execution
  • sqlsrv_query() - Prepares and executes a query.


Returns information about the server

  • « sqlsrv_send_stream_data
  • Sybase »
  • PHP Manual
  • Функции SQLSRV
  • Returns information about the server

sqlsrv_server_info

(Информация о версии неизвестна, возможно, только в SVN)

sqlsrv_server_info — Returns information about the server

Описание

array sqlsrv_server_info ( resource $conn )

Returns information about the server.

Список параметров

conn

The connection resource that connects the client and the server.

Возвращаемые значения

Returns an array as described in the following table:

Returned Array
CurrentDatabase | The connected-to database.
SQLServerVersion | The SQL Server version.
SQLServerName | The name of the server.

Примеры

Пример #1 sqlsrv_server_info() example

<?php
$serverName = "serverName\sqlexpress";
$conn = sqlsrv_connect( $serverName);
if( $conn === false ) {
     die( print_r( sqlsrv_errors(), true));
}

$server_info = sqlsrv_server_info( $conn);
if( $server_info )
{
    foreach( $server_info as $key => $value) {
       echo $key.": ".$value."<br />";
    }
} else {
      die( print_r( sqlsrv_errors(), true));
}
?>

Смотрите также

  • sqlsrv_client_info() - Returns information about the client and specified connection


Sybase

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Sybase Функции
    • sybase_affected_rows — Gets number of affected rows in last query
    • sybase_close — Closes a Sybase connection
    • sybase_connect — Opens a Sybase server connection
    • sybase_data_seek — Moves internal row pointer
    • sybase_deadlock_retry_count — Sets the deadlock retry count
    • sybase_fetch_array — Fetch row as array
    • sybase_fetch_assoc — Fetch a result row as an associative array
    • sybase_fetch_field — Get field information from a result
    • sybase_fetch_object — Fetch a row as an object
    • sybase_fetch_row — Get a result row as an enumerated array
    • sybase_field_seek — Sets field offset
    • sybase_free_result — Frees result memory
    • sybase_get_last_message — Returns the last message from the server
    • sybase_min_client_severity — Sets minimum client severity
    • sybase_min_error_severity — Sets minimum error severity
    • sybase_min_message_severity — Sets minimum message severity
    • sybase_min_server_severity — Sets minimum server severity
    • sybase_num_fields — Gets the number of fields in a result set
    • sybase_num_rows — Get number of rows in a result set
    • sybase_pconnect — Open persistent Sybase connection
    • sybase_query — Sends a Sybase query
    • sybase_result — Get result data
    • sybase_select_db — Selects a Sybase database
    • sybase_set_message_handler — Sets the handler called when a server message is raised
    • sybase_unbuffered_query — Send a Sybase query and do not block


  • « Sybase
  • Установка и настройка »
  • PHP Manual
  • Sybase
  • Введение

Введение

Внимание

As of PHP 7.0.0, the sybase_ct extension has been removed.


Установка

To enable Sybase-DB support configure PHP --with-sybase[=DIR] . DIR is the Sybase home directory, defaults to /home/sybase. To enable Sybase-CT support configure PHP --with-sybase-ct[=DIR] . DIR is the Sybase home directory, defaults to /home/sybase.

Замечание:

As of PHP 5.3.0, the Sybase extension has been superseded by the sybase_ct extension and is no longer maintained. To continue using sybase you must use the sybase_ct extension.

As of PHP 7.0.0, the sybase_ct extension has been removed.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Sybase configuration options
Имя | По умолчанию | Меняемо | Список изменений
sybase.allow_persistent | "1" | PHP_INI_ALL | PHP_INI_ALL in PHP <= 4.0.2. PHP_INI_SYSTEM in PHP <= 4.0.3.
sybase.max_persistent | "-1" | PHP_INI_ALL | PHP_INI_ALL in PHP <= 4.0.2. PHP_INI_SYSTEM in PHP <= 4.0.3.
sybase.max_links | "-1" | PHP_INI_ALL | PHP_INI_ALL in PHP <= 4.0.2. PHP_INI_SYSTEM in PHP <= 4.0.3.
sybase.interface_file | "/usr/sybase/interfaces" | PHP_INI_SYSTEM |
sybase.min_error_severity | "10" | PHP_INI_ALL |
sybase.min_message_severity | "10" | PHP_INI_ALL |
sybase.compatability_mode | "0" | PHP_INI_ALL |
magic_quotes_sybase | "0" | PHP_INI_ALL | Deprecated in PHP 5.3.0. Removed in PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

sybase.allow_persistent boolean

Whether to allow persistent Sybase connections.

sybase.max_persistent integer

The maximum number of persistent Sybase connections per process. -1 means no limit.

sybase.max_links integer

The maximum number of Sybase connections per process, including persistent connections. -1 means no limit.

sybase.min_error_severity integer

Minimum error severity to display.

sybase.min_message_severity integer

Minimum message severity to display.

magic_quotes_sybase boolean

If magic_quotes_sybase is on, a single-quote is escaped with a single-quote instead of a backslash if magic_quotes_gpc or magic_quotes_runtime are enabled. This setting is also respected by addslashes() and stripslashes().

Замечание:

Note that when magic_quotes_sybase is ON it completely overrides magic_quotes_gpc . In this case even when magic_quotes_gpc is enabled neither double quotes, backslashes or NUL's will be escaped.

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Sybase-CT configuration options
Имя | По умолчанию | Меняемо | Список изменений
sybct.deadlock_retry_count | "0" | PHP_INI_ALL | Available since PHP 4.3.0.

Краткое разъяснение конфигурационных директив.

sybct.login_timeout integer

The maximum time in seconds to wait for a connection attempt to succeed before returning failure. Note that if max_execution_time has been exceeded when a connection attempt times out, your script will be terminated before it can take action on failure. The default is one minute.

sybct.timeout integer

The maximum time in seconds to wait for a select_db or query operation to succeed before returning failure. Note that if max_execution_time has been exceeded when an operation times out, your script will be terminated before it can take action on failure. The default is no limit.

sybct.deadlock_retry_count int

Allows you to define how often deadlocks are to be retried. The default is 0, value -1 means "forever".

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.


  • « Типы ресурсов
  • Sybase Функции »
  • PHP Manual
  • Sybase
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Sybase Функции

Содержание

  • sybase_affected_rows — Gets number of affected rows in last query
  • sybase_close — Closes a Sybase connection
  • sybase_connect — Opens a Sybase server connection
  • sybase_data_seek — Moves internal row pointer
  • sybase_deadlock_retry_count — Sets the deadlock retry count
  • sybase_fetch_array — Fetch row as array
  • sybase_fetch_assoc — Fetch a result row as an associative array
  • sybase_fetch_field — Get field information from a result
  • sybase_fetch_object — Fetch a row as an object
  • sybase_fetch_row — Get a result row as an enumerated array
  • sybase_field_seek — Sets field offset
  • sybase_free_result — Frees result memory
  • sybase_get_last_message — Returns the last message from the server
  • sybase_min_client_severity — Sets minimum client severity
  • sybase_min_error_severity — Sets minimum error severity
  • sybase_min_message_severity — Sets minimum message severity
  • sybase_min_server_severity — Sets minimum server severity
  • sybase_num_fields — Gets the number of fields in a result set
  • sybase_num_rows — Get number of rows in a result set
  • sybase_pconnect — Open persistent Sybase connection
  • sybase_query — Sends a Sybase query
  • sybase_result — Get result data
  • sybase_select_db — Selects a Sybase database
  • sybase_set_message_handler — Sets the handler called when a server message is raised
  • sybase_unbuffered_query — Send a Sybase query and do not block


Gets number of affected rows in last query

  • « Sybase Функции
  • sybase_close »
  • PHP Manual
  • Sybase Функции
  • Gets number of affected rows in last query

sybase_affected_rows

(PHP 4, PHP 5)

sybase_affected_rows — Gets number of affected rows in last query

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

int sybase_affected_rows ([ resource $link_identifier ] )

sybase_affected_rows() returns the number of rows affected by the last INSERT, UPDATE or DELETE query on the server associated with the specified link identifier.

This command is not effective for SELECT statements, only on statements which modify records. To retrieve the number of rows returned from a SELECT, use sybase_num_rows().

Список параметров

link_identifier

If the link identifier isn't specified, the last opened link is assumed.

Возвращаемые значения

Returns the number of affected rows, as an integer.

Примеры

Пример #1 Delete-Query

<?php
/* connect to database */
sybase_connect('SYBASE', '', '') or
die("Could not connect");
sybase_select_db("db");

sybase_query("DELETE FROM sometable WHERE id < 10");
printf("Records deleted: %d\n", sybase_affected_rows());
?>

Результат выполнения данного примера:

Records deleted: 10

Смотрите также

  • sybase_num_rows() - Get number of rows in a result set


Closes a Sybase connection

  • « sybase_affected_rows
  • sybase_connect »
  • PHP Manual
  • Sybase Функции
  • Closes a Sybase connection

sybase_close

(PHP 4, PHP 5)

sybase_close — Closes a Sybase connection

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

bool sybase_close ([ resource $link_identifier ] )

sybase_close() closes the link to a Sybase database that's associated with the specified link link_identifier.

Note that this isn't usually necessary, as non-persistent open links are automatically closed at the end of the script's execution.

sybase_close() will not close persistent links generated by sybase_pconnect().

Список параметров

link_identifier

If the link identifier isn't specified, the last opened link is assumed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sybase_connect() - Opens a Sybase server connection
  • sybase_pconnect() - Open persistent Sybase connection


Opens a Sybase server connection

  • « sybase_close
  • sybase_data_seek »
  • PHP Manual
  • Sybase Функции
  • Opens a Sybase server connection

sybase_connect

(PHP 4, PHP 5)

sybase_connect — Opens a Sybase server connection

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

resource sybase_connect ([ string $servername [, string $username [, string $password [, string $charset [, string $appname [, bool $new = false ]]]]]] )

sybase_connect() establishes a connection to a Sybase server.

In case a second call is made to sybase_connect() with the same arguments, no new link will be established, but instead, the link identifier of the already opened link will be returned.

The link to the server will be closed as soon as the execution of the script ends, unless it's closed earlier by explicitly calling sybase_close().

Список параметров

servername

The servername argument has to be a valid servername that is defined in the 'interfaces' file.

username

Sybase user name

password

Password associated with username.

charset

Specifies the charset for the connection

appname

Specifies an appname for the Sybase connection. This allow you to make separate connections in the same script to the same database. This may come handy when you have started a transaction in your current connection, and you need to be able to do a separate query which cannot be performed inside this transaction.

new

Whether to open a new connection or use the existing one.

Возвращаемые значения

Returns a positive Sybase link identifier on success, or FALSE on failure.

Список изменений

Версия | Описание
5.3.0 | The new parameter was added.

Примеры

Пример #1 sybase_connect() example

<?php
$link = sybase_connect('SYBASE', '', '')
        or die("Could not connect !");
echo "Connected successfully";
sybase_close($link);
?>

Смотрите также

  • sybase_pconnect() - Open persistent Sybase connection
  • sybase_close() - Closes a Sybase connection


Moves internal row pointer

  • « sybase_connect
  • sybase_deadlock_retry_count »
  • PHP Manual
  • Sybase Функции
  • Moves internal row pointer

sybase_data_seek

(PHP 4, PHP 5)

sybase_data_seek — Moves internal row pointer

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

bool sybase_data_seek ( resource $result_identifier , int $row_number )

sybase_data_seek() moves the internal row pointer of the Sybase result associated with the specified result identifier to pointer to the specified row number. The next call to sybase_fetch_row() would return that row.

Список параметров

result_identifier

row_number

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sybase_fetch_row() - Get a result row as an enumerated array


Sets the deadlock retry count

  • « sybase_data_seek
  • sybase_fetch_array »
  • PHP Manual
  • Sybase Функции
  • Sets the deadlock retry count

sybase_deadlock_retry_count

(PHP 4 >= 4.3.0, PHP 5)

sybase_deadlock_retry_count — Sets the deadlock retry count

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

void sybase_deadlock_retry_count ( int $retry_count )

Using sybase_deadlock_retry_count(), the number of retries can be defined in cases of deadlocks. By default, every deadlock is retried an infinite number of times or until the process is killed by Sybase, the executing script is killed (for instance, by set_time_limit()) or the query succeeds.

Список параметров

retry_count

Values for retry_count
-1 | Retry forever (default)
0 | Do not retry
n | Retry n times

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.


Fetch row as array

  • « sybase_deadlock_retry_count
  • sybase_fetch_assoc »
  • PHP Manual
  • Sybase Функции
  • Fetch row as array

sybase_fetch_array

(PHP 4, PHP 5)

sybase_fetch_array — Fetch row as array

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

array sybase_fetch_array ( resource $result )

sybase_fetch_array() is an extended version of sybase_fetch_row(). In addition to storing the data in the numeric indices of the result array, it also stores the data in associative indices, using the field names as keys.

An important thing to note is that using sybase_fetch_array() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

Список параметров

result

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Замечание:

When selecting fields with identical names (for instance, in a join), the associative indices will have a sequential number prepended. See the example for details.

Примеры

Пример #1 Identical fieldnames

<?php

$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_query('SELECT * FROM p, a WHERE p.person_id= a.person_id');
var_dump(sybase_fetch_array($q));
sybase_close($dbh);
?>

The above example would produce the following output (assuming the two tables only have each one column called "person_id"):

array(4) {
  [0]=>
  int(1)
  ["person_id"]=>
  int(1)
  [1]=>
  int(1)
  ["person_id1"]=>
  int(1)
}

Смотрите также

  • sybase_fetch_row() - Get a result row as an enumerated array
  • sybase_fetch_assoc() - Fetch a result row as an associative array
  • sybase_fetch_object() - Fetch a row as an object


Fetch a result row as an associative array

  • « sybase_fetch_array
  • sybase_fetch_field »
  • PHP Manual
  • Sybase Функции
  • Fetch a result row as an associative array

sybase_fetch_assoc

(PHP 4 >= 4.3.0, PHP 5)

sybase_fetch_assoc — Fetch a result row as an associative array

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

array sybase_fetch_assoc ( resource $result )

sybase_fetch_assoc() is a version of sybase_fetch_row() that uses column names instead of integers for indices in the result array. Columns from different tables with the same names are returned as name, name1, name2, ..., nameN.

An important thing to note is that using sybase_fetch_assoc() is NOT significantly slower than using sybase_fetch_row(), while it provides a significant added value.

Список параметров

result

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

Смотрите также

  • sybase_fetch_row() - Get a result row as an enumerated array
  • sybase_fetch_array() - Fetch row as array
  • sybase_fetch_object() - Fetch a row as an object


Get field information from a result

  • « sybase_fetch_assoc
  • sybase_fetch_object »
  • PHP Manual
  • Sybase Функции
  • Get field information from a result

sybase_fetch_field

(PHP 4, PHP 5)

sybase_fetch_field — Get field information from a result

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

object sybase_fetch_field ( resource $result [, int $field_offset = -1 ] )

sybase_fetch_field() can be used in order to obtain information about fields in a certain query result.

Список параметров

result

field_offset

If the field offset isn't specified, the next field that wasn't yet retrieved by sybase_fetch_field() is retrieved.

Возвращаемые значения

Returns an object containing field information.

The properties of the object are:

  • name - column name. if the column is a result of a function, this property is set to computed#N, where #N is a serial number.
  • column_source - the table from which the column was taken
  • max_length - maximum length of the column
  • numeric - 1 if the column is numeric
  • type - datatype of the column

Смотрите также

  • sybase_field_seek() - Sets field offset


Fetch a row as an object

  • « sybase_fetch_field
  • sybase_fetch_row »
  • PHP Manual
  • Sybase Функции
  • Fetch a row as an object

sybase_fetch_object

(PHP 4, PHP 5)

sybase_fetch_object — Fetch a row as an object

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

object sybase_fetch_object ( resource $result [, mixed $object ] )

sybase_fetch_object() is similar to sybase_fetch_assoc(), with one difference - an object is returned, instead of an array.

Speed-wise, the function is identical to sybase_fetch_array(), and almost as quick as sybase_fetch_row() (the difference is insignificant).

Список параметров

result

object

Use the second object to specify the type of object you want to return. If this parameter is omitted, the object will be of type stdClass.

Возвращаемые значения

Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

Примеры

Пример #1 sybase_fetch_object() return as Foo

<?php
    class Foo {
        var $foo, $bar, $baz;
    }

    // {...]
    $qrh= sybase_query('SELECT foo, bar, baz FROM example');
    $foo= sybase_fetch_object($qrh, 'Foo');
    $bar= sybase_fetch_object($qrh, new Foo());
    // {...]
?>

Смотрите также

  • sybase_fetch_array() - Fetch row as array
  • sybase_fetch_row() - Get a result row as an enumerated array


Get a result row as an enumerated array

  • « sybase_fetch_object
  • sybase_field_seek »
  • PHP Manual
  • Sybase Функции
  • Get a result row as an enumerated array

sybase_fetch_row

(PHP 4, PHP 5)

sybase_fetch_row — Get a result row as an enumerated array

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

array sybase_fetch_row ( resource $result )

sybase_fetch_row() fetches one row of data from the result associated with the specified result identifier.

Subsequent call to sybase_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.

Список параметров

result

Возвращаемые значения

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows. Each result column is stored in an array offset, starting at offset 0.

Data types
PHP | Sybase
string | VARCHAR, TEXT, CHAR, IMAGE, BINARY, VARBINARY, DATETIME
int | NUMERIC (w/o precision), DECIMAL (w/o precision), INT, BIT, TINYINT, SMALLINT
float | NUMERIC (w/ precision), DECIMAL (w/ precision), REAL, FLOAT, MONEY
NULL | NULL

Смотрите также

  • sybase_fetch_array() - Fetch row as array
  • sybase_fetch_assoc() - Fetch a result row as an associative array
  • sybase_fetch_object() - Fetch a row as an object
  • sybase_data_seek() - Moves internal row pointer
  • sybase_result() - Get result data


Sets field offset

  • « sybase_fetch_row
  • sybase_free_result »
  • PHP Manual
  • Sybase Функции
  • Sets field offset

sybase_field_seek

(PHP 4, PHP 5)

sybase_field_seek — Sets field offset

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

bool sybase_field_seek ( resource $result , int $field_offset )

Seeks to the specified field offset. If the next call to sybase_fetch_field() won't include a field offset, this field would be returned.

Список параметров

result

field_offset

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sybase_fetch_field() - Get field information from a result


Frees result memory

  • « sybase_field_seek
  • sybase_get_last_message »
  • PHP Manual
  • Sybase Функции
  • Frees result memory

sybase_free_result

(PHP 4, PHP 5)

sybase_free_result — Frees result memory

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

bool sybase_free_result ( resource $result )

sybase_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script ends. You may call sybase_free_result() with the result identifier as an argument and the associated result memory will be freed.

Список параметров

result

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Returns the last message from the server

  • « sybase_free_result
  • sybase_min_client_severity »
  • PHP Manual
  • Sybase Функции
  • Returns the last message from the server

sybase_get_last_message

(PHP 4, PHP 5)

sybase_get_last_message — Returns the last message from the server

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

string sybase_get_last_message ( void )

sybase_get_last_message() returns the last message reported by the server.

Возвращаемые значения

Returns the message as a string.

Смотрите также

  • sybase_min_message_severity() - Sets minimum message severity


Sets minimum client severity

  • « sybase_get_last_message
  • sybase_min_error_severity »
  • PHP Manual
  • Sybase Функции
  • Sets minimum client severity

sybase_min_client_severity

(PHP 4, PHP 5)

sybase_min_client_severity — Sets minimum client severity

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

void sybase_min_client_severity ( int $severity )

sybase_min_client_severity() sets the minimum client severity level.

Список параметров

severity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

Смотрите также

  • sybase_min_server_severity() - Sets minimum server severity


Sets minimum error severity

  • « sybase_min_client_severity
  • sybase_min_message_severity »
  • PHP Manual
  • Sybase Функции
  • Sets minimum error severity

sybase_min_error_severity

(PHP 4, PHP 5)

sybase_min_error_severity — Sets minimum error severity

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

void sybase_min_error_severity ( int $severity )

sybase_min_error_severity() sets the minimum error severity level.

Список параметров

severity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

Смотрите также

  • sybase_min_message_severity() - Sets minimum message severity


Sets minimum message severity

  • « sybase_min_error_severity
  • sybase_min_server_severity »
  • PHP Manual
  • Sybase Функции
  • Sets minimum message severity

sybase_min_message_severity

(PHP 4, PHP 5)

sybase_min_message_severity — Sets minimum message severity

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

void sybase_min_message_severity ( int $severity )

sybase_min_message_severity() sets the minimum message severity level.

Список параметров

severity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки DB, но не библиотеки CT.

Смотрите также

  • sybase_min_error_severity() - Sets minimum error severity


Sets minimum server severity

  • « sybase_min_message_severity
  • sybase_num_fields »
  • PHP Manual
  • Sybase Функции
  • Sets minimum server severity

sybase_min_server_severity

(PHP 4, PHP 5)

sybase_min_server_severity — Sets minimum server severity

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

void sybase_min_server_severity ( int $severity )

sybase_min_server_severity() sets the minimum server severity level.

Список параметров

severity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

Смотрите также

  • sybase_min_client_severity() - Sets minimum client severity


Gets the number of fields in a result set

  • « sybase_min_server_severity
  • sybase_num_rows »
  • PHP Manual
  • Sybase Функции
  • Gets the number of fields in a result set

sybase_num_fields

(PHP 4, PHP 5)

sybase_num_fields — Gets the number of fields in a result set

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

int sybase_num_fields ( resource $result )

sybase_num_fields() returns the number of fields in a result set.

Список параметров

result

Возвращаемые значения

Returns the number of fields as an integer.

Смотрите также

  • sybase_query() - Sends a Sybase query
  • sybase_fetch_field() - Get field information from a result
  • sybase_num_rows() - Get number of rows in a result set


Get number of rows in a result set

  • « sybase_num_fields
  • sybase_pconnect »
  • PHP Manual
  • Sybase Функции
  • Get number of rows in a result set

sybase_num_rows

(PHP 4, PHP 5)

sybase_num_rows — Get number of rows in a result set

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

int sybase_num_rows ( resource $result )

sybase_num_rows() returns the number of rows in a result set.

Список параметров

result

Возвращаемые значения

Returns the number of rows as an integer.

Смотрите также

  • sybase_num_fields() - Gets the number of fields in a result set
  • sybase_query() - Sends a Sybase query
  • sybase_fetch_row() - Get a result row as an enumerated array


Open persistent Sybase connection

  • « sybase_num_rows
  • sybase_query »
  • PHP Manual
  • Sybase Функции
  • Open persistent Sybase connection

sybase_pconnect

(PHP 4, PHP 5)

sybase_pconnect — Open persistent Sybase connection

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

resource sybase_pconnect ([ string $servername [, string $username [, string $password [, string $charset [, string $appname ]]]]] )

sybase_pconnect() acts very much like sybase_connect() with two major differences.

First, when connecting, the function would first try to find a (persistent) link that's already open with the same host, username and password. If one is found, an identifier for it will be returned instead of opening a new connection.

Second, the connection to the SQL server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (sybase_close() will not close links established by sybase_pconnect()).

This type of links is therefore called 'persistent'.

Список параметров

servername

The servername argument has to be a valid servername that is defined in the 'interfaces' file.

username

Sybase user name

password

Password associated with username.

charset

Specifies the charset for the connection

appname

Specifies an appname for the Sybase connection. This allow you to make separate connections in the same script to the same database. This may come handy when you have started a transaction in your current connection, and you need to be able to do a separate query which cannot be performed inside this transaction.

Возвращаемые значения

Returns a positive Sybase persistent link identifier on success, or FALSE on error.

Смотрите также

  • sybase_connect() - Opens a Sybase server connection


Sends a Sybase query

  • « sybase_pconnect
  • sybase_result »
  • PHP Manual
  • Sybase Функции
  • Sends a Sybase query

sybase_query

(PHP 4, PHP 5)

sybase_query — Sends a Sybase query

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

mixed sybase_query ( string $query [, resource $link_identifier ] )

sybase_query() sends a query to the currently active database on the server that's associated with the specified link identifier.

Список параметров

query

link_identifier

If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

Возвращаемые значения

Returns a positive Sybase result identifier on success, FALSE on error, or TRUE if the query was successful but didn't return any columns.

Смотрите также

  • sybase_select_db() - Selects a Sybase database
  • sybase_connect() - Opens a Sybase server connection


Get result data

  • « sybase_query
  • sybase_select_db »
  • PHP Manual
  • Sybase Функции
  • Get result data

sybase_result

(PHP 4, PHP 5)

sybase_result — Get result data

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

string sybase_result ( resource $result , int $row , mixed $field )

Returns the contents of the cell at the row and offset in the specified Sybase result set.

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than sybase_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Recommended high-performance alternatives:
sybase_fetch_row(),
sybase_fetch_array() and
sybase_fetch_object().

Список параметров

result

row

field

The field argument can be the field's offset, or the field's name, or the field's table dot field's name (tablename.fieldname). If the column name has been aliased ('select foo as bar from...'), use the alias instead of the column name.

Возвращаемые значения

sybase_result() returns the contents of one cell from a Sybase result set.


Selects a Sybase database

  • « sybase_result
  • sybase_set_message_handler »
  • PHP Manual
  • Sybase Функции
  • Selects a Sybase database

sybase_select_db

(PHP 4, PHP 5)

sybase_select_db — Selects a Sybase database

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

bool sybase_select_db ( string $database_name [, resource $link_identifier ] )

sybase_select_db() sets the current active database on the server that's associated with the specified link identifier.

Every subsequent call to sybase_query() will be made on the active database.

Список параметров

database_name

link_identifier

If no link identifier is specified, the last opened link is assumed. If no link is open, the function will try to establish a link as if sybase_connect() was called, and use it.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sybase_connect() - Opens a Sybase server connection
  • sybase_pconnect() - Open persistent Sybase connection
  • sybase_query() - Sends a Sybase query


Sets the handler called when a server message is raised

  • « sybase_select_db
  • sybase_unbuffered_query »
  • PHP Manual
  • Sybase Функции
  • Sets the handler called when a server message is raised

sybase_set_message_handler

(PHP 4 >= 4.3.0, PHP 5)

sybase_set_message_handler — Sets the handler called when a server message is raised

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

bool sybase_set_message_handler ( callable $handler [, resource $link_identifier ] )

sybase_set_message_handler() sets a user function to handle messages generated by the server. You may specify the name of a global function, or use an array to specify an object reference and a method name.

Список параметров

handler

The handler expects five arguments in the following order: message number, severity, state, line number and description. The first four are integers. The last is a string. If the function returns FALSE, PHP generates an ordinary error message.

link_identifier

If the link identifier isn't specified, the last opened link is assumed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 sybase_set_message_handler() callback function

<?php
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Пример #2 sybase_set_message_handler() callback to a class

<?php
    class Sybase {
        function handler($msgnumber, $severity, $state, $line, $text)
        {
            var_dump($msgnumber, $severity, $state, $line, $text);
        }
    }

    $sybase= new Sybase();
    sybase_set_message_handler(array($sybase, 'handler'));
?>

Пример #3 sybase_set_message_handler() unhandled messages

<?php
    // Return FALSE from this function to indicate you can't handle
    // this. The error is printed out as a warning, the way you're used
    // to it if there is no handler installed.
    function msg_handler($msgnumber, $severity, $state, $line, $text)
    {
        if (257 == $msgnumber) {
            return false;
        }
        var_dump($msgnumber, $severity, $state, $line, $text);
    }

    sybase_set_message_handler('msg_handler');
?>

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.


Send a Sybase query and do not block

  • « sybase_set_message_handler
  • tokyo_tyrant »
  • PHP Manual
  • Sybase Функции
  • Send a Sybase query and do not block

sybase_unbuffered_query

(PHP 4 >= 4.3.0, PHP 5)

sybase_unbuffered_query — Send a Sybase query and do not block

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

resource sybase_unbuffered_query ( string $query , resource $link_identifier [, bool $store_result ] )

sybase_unbuffered_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If the link identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if sybase_connect() was called, and use it.

Unlike sybase_query(), sybase_unbuffered_query() reads only the first row of the result set. sybase_fetch_array() and similar function read more rows as needed. sybase_data_seek() reads up to the target row. The behavior may produce better performance for large result sets.

sybase_num_rows() will only return the correct number of rows if all result sets have been read. To Sybase, the number of rows is not known and is therefore computed by the client implementation.

Замечание:

If you don't read all of the resultsets prior to executing the next query, PHP will raise a warning and cancel all of the pending results. To get rid of this, use sybase_free_result() which will cancel pending results of an unbuffered query.

Список параметров

query

link_identifier

store_result

The optional store_result can be FALSE to indicate the resultsets shouldn't be fetched into memory, thus minimizing memory usage which is particularly interesting with very large resultsets.

Возвращаемые значения

Returns a positive Sybase result identifier on success, or FALSE on error.

Примеры

Пример #1 sybase_unbuffered_query() example

<?php

$dbh = sybase_connect('SYBASE', '', '');
$q = sybase_unbuffered_query('select firstname, lastname from huge_table', $dbh, false);
sybase_data_seek($q, 10000);
$i = 0;

while ($row = sybase_fetch_row($q)) {
    echo $row[0], ' ', $row[1], '<br />';
    if ($i++ > 40000) {
        break;
    }
}

sybase_free_result($q);
sybase_close($dbh);

?>

Примечания

Замечание: Эта функция доступна только при использовании интерфейса к Sybase библиотеки CT, но не библиотеки DB.

Смотрите также

  • sybase_query() - Sends a Sybase query


tokyo_tyrant

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • TokyoTyrant — The TokyoTyrant class
    • TokyoTyrant::add — Adds to a numeric key
    • TokyoTyrant::connect — Connect to a database
    • TokyoTyrant::connectUri — Connects to a database
    • TokyoTyrant::__construct — Construct a new TokyoTyrant object
    • TokyoTyrant::copy — Copies the database
    • TokyoTyrant::ext — Execute a remote script
    • TokyoTyrant::fwmKeys — Returns the forward matching keys
    • TokyoTyrant::get — The get purpose
    • TokyoTyrant::getIterator — Get an iterator
    • TokyoTyrant::num — Number of records in the database
    • TokyoTyrant::out — Removes records
    • TokyoTyrant::put — Puts values
    • TokyoTyrant::putCat — Concatenates to a record
    • TokyoTyrant::putKeep — Puts a record
    • TokyoTyrant::putNr — Puts value
    • TokyoTyrant::putShl — Concatenates to a record
    • TokyoTyrant::restore — Restore the database
    • TokyoTyrant::setMaster — Set the replication master
    • TokyoTyrant::size — Returns the size of the value
    • TokyoTyrant::stat — Get statistics
    • TokyoTyrant::sync — Synchronize the database
    • TokyoTyrant::tune — Tunes connection values
    • TokyoTyrant::vanish — Empties the database
  • TokyoTyrantTable — The TokyoTyrantTable class
    • TokyoTyrantTable::add — Adds a record
    • TokyoTyrantTable::genUid — Generate unique id
    • TokyoTyrantTable::get — Get a row
    • TokyoTyrantTable::getIterator — Get an iterator
    • TokyoTyrantTable::getQuery — Get a query object
    • TokyoTyrantTable::out — Remove records
    • TokyoTyrantTable::put — Store a row
    • TokyoTyrantTable::putCat — Concatenates to a row
    • TokyoTyrantTable::putKeep — Put a new record
    • TokyoTyrantTable::putNr — Puts value
    • TokyoTyrantTable::putShl — Concatenates to a record
    • TokyoTyrantTable::setIndex — Sets index
  • TokyoTyrantQuery — The TokyoTyrantQuery class
    • TokyoTyrantQuery::addCond — Adds a condition to the query
    • TokyoTyrantQuery::__construct — Construct a new query
    • TokyoTyrantQuery::count — Counts records
    • TokyoTyrantQuery::current — Returns the current element
    • TokyoTyrantQuery::hint — Get the hint string of the query
    • TokyoTyrantQuery::key — Returns the current key
    • TokyoTyrantQuery::metaSearch — Retrieve records with multiple queries
    • TokyoTyrantQuery::next — Moves the iterator to next entry
    • TokyoTyrantQuery::out — Removes records based on query
    • TokyoTyrantQuery::rewind — Rewinds the iterator
    • TokyoTyrantQuery::search — Searches records
    • TokyoTyrantQuery::setLimit — Limit results
    • TokyoTyrantQuery::setOrder — Orders results
    • TokyoTyrantQuery::valid — Checks the validity of current item
  • TokyoTyrantIterator — The TokyoTyrantIterator class
    • TokyoTyrantIterator::__construct — Construct an iterator
    • TokyoTyrantIterator::current — Get the current value
    • TokyoTyrantIterator::key — Returns the current key
    • TokyoTyrantIterator::next — Move to next key
    • TokyoTyrantIterator::rewind — Rewinds the iterator
    • TokyoTyrantIterator::valid — Rewinds the iterator
  • TokyoTyrantException — The TokyoTyrantException class


Введение

tokyo_tyrant extension provides a wrapper for Tokyo Tyrant client libraries. The extension contains the normal key-value API and the table API.

"Tokyo Tyrant is a package of network interface to the DBM called Tokyo Cabinet. Though the DBM has high performance, you might bother in case that multiple processes share the same database, or remote processes access the database. Thus, Tokyo Tyrant is provided for concurrent and remote connections to Tokyo Cabinet. It is composed of the server process managing a database and its access library for client applications." --Tokyo Tyrant documentation

Tokyo Tyrant is written by Mikio Hirabayashi and is licensed under GNU Lesser General Public License.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Before using this extension Tokyo Cabinet and Tokyo Tyrant must be installed.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/tokyo_tyrant

Configure options

  • --with-tokyo-tyrant[=DIR] DIR is the prefix to the Tokyo Tyrant installation
  • --with-tokyo-cabinet-dir[=DIR] DIR is the prefix to the Tokyo Cabinet installation
  • --disable-tokyo-tyrant-session Disable Tokyo Tyrant session handler support

Enabling the extension

The extension can be enabled by adding extension=tokyo_tyrant.so to the INI-configuration

Running Tokyo Tyrant for the session handler

ttserver -port 2000 -ext /path/to/expire.lua -extpc expire 30.0 '/tmp/sessions.tct#idx=ts:dec'

Замечание: expire.lua is included in the tokyo_tyrant extension source distribution

Configuring session handler

  • tokyo_tyrant.session_salt="randomlongstring"
  • session.save_handler=tokyo_tyrant
  • session.save_path="tcp://hostname1:2000,tcp://hostname2:2000"

Замечание: It is important to make sure that tokyo_tyrant.session_salt matches on all servers.

How it works?

The session handler creates a session id like the following: 8b0e27a823fa4a6cf7246945b82c1d51-a5eadbbed1f2075952900628456bfd6830541629-0-5460

The parts from left to right:

  • Session id - Generated session id
  • Checksum - Checksum of session salt, session id, node id and primary key
  • Node id - The id of the node where the session maps to
  • Primary key - The primary key of the row where the session is stored

The checksum contains SHA1 sum of the node id, primary key, session id and the salt which is known only on the server side. This allows quick mapping of session id to node and primary key since there is no need to do an additional search. During session id regeneration only the parts 1 and 2 change but the mapping to the node and primary key stays constant.

In case some of the nodes fail tokyo_tyrant.allow_failover, tokyo_tyrant.fail_threshold and tokyo_tyrant.health_check_divisor INI-settings control the behavior during failover. If failover is allowed the session handler will map the session to a healthy node and creates a new empty session.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

tokyo_tyrant Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
tokyo_tyrant.default_timeout | 2.0 | PHP_INI_ALL |
tokyo_tyrant.session_salt | NULL | PHP_INI_ALL |
tokyo_tyrant.key_prefix | NULL | PHP_INI_ALL |
tokyo_tyrant.allow_failover | 1 | PHP_INI_ALL |
tokyo_tyrant.fail_threshold | 5 | PHP_INI_ALL |
tokyo_tyrant.health_check_divisor | 1000 | PHP_INI_ALL |
tokyo_tyrant.php_expiration | 0 | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

tokyo_tyrant.default_timeout integer

Default timeout when connecting to databases

tokyo_tyrant.session_salt string

The secret that is used to salt session id

tokyo_tyrant.key_prefix string

Prefix all keys with this string. The prefix is transparent to the developer but helps making sure that keys won't collide if multiple applications are using the same database.

tokyo_tyrant.allow_failover integer

Whether to allow session failover in case a server dies.

tokyo_tyrant.fail_threshold integer

How many read/write or connection failures is allowed before server is marked as failed.

tokyo_tyrant.health_check_divisor integer

Defines the divisor for the health check probability. If there are failed servers and the probability matches, the servers are health checked and in case the server seems healthy, it will be added back to the pool.

tokyo_tyrant.php_expiration integer

Whether to use built in session expiration mechanism or delegate the expiration to a lua-script on the server-side.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • tokyo_tyrant
  • Предопределенные константы

Предопределенные константы

TokyoTyrant constants


Примеры

Basic usage

Пример #1 Putting and getting a key-value pair

<?php
$tt = new TokyoTyrant("localhost");
$tt->put("key", "value");
echo $tt->get("key");
?>

Результат выполнения данного примера:

value


The TokyoTyrant class

(PECL tokyo_tyrant >= 0.1.0)

Введение

The main Tokyo Tyrant class

Обзор классов

TokyoTyrant {
/* Константы */
const integer RDBDEF_PORT = 1978 ;
const integer RDBQC_STREQ = 0 ;
const integer RDBQC_STRINC = 1 ;
const integer RDBQC_STRBW = 2 ;
const integer RDBQC_STREW = 3 ;
const integer RDBQC_STRAND = 4 ;
const integer RDBQC_STROR = 5 ;
const integer RDBQC_STROREQ = 6 ;
const integer RDBQC_STRRX = 7 ;
const integer RDBQC_NUMEQ = 8 ;
const integer RDBQC_NUMGT = 9 ;
const integer RDBQC_NUMGE = 10 ;
const integer RDBQC_NUMLT = 11 ;
const integer RDBQC_NUMLE = 12 ;
const integer RDBQC_NUMBT = 13 ;
const integer RDBQC_NUMOREQ = 14 ;
const integer RDBQC_NEGATE = 16777216 ;
const integer RDBQC_NOIDX = 33554432 ;
const integer RDBQO_STRASC = 0 ;
const integer RDBQO_STRDESC = 1 ;
const integer RDBQO_NUMASC = 2 ;
const integer RDBQO_NUMDESC = 3 ;
const integer RDBIT_LEXICAL = 0 ;
const integer RDBIT_DECIMAL = 1 ;
const integer RDBIT_TOKEN = 2 ;
const integer RDBIT_QGRAM = 3 ;
const integer RDBIT_OPT = 9998 ;
const integer RDBIT_VOID = 9999 ;
const integer RDBIT_KEEP = 16777216 ;
const integer RDBQCFTS_PH = 15 ;
const integer RDBQCFTS_AND = 16 ;
const integer RDBQCFTS_OR = 17 ;
const integer RDBQCFTS_EX = 18 ;
const integer RDBXO_LCKREC = 1 ;
const integer RDBXOLCK_GLB = 2 ;
const integer RDBREC_INT = 1 ;
const integer RDBREC_DBL = 2 ;
const integer RDBMS_UNION = 0 ;
const integer RDBMS_ISECT = 1 ;
const integer RDBMS_DIFF = 2 ;
const integer RDBT_RECON = 1 ;
/* Методы */
public number add ( string $key , number $increment [, int $type = 0 ] )
public TokyoTyrant connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] )
public TokyoTyrant connectUri ( string $uri )
public __construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )
public TokyoTyrant copy ( string $path )
public string ext ( string $name , int $options , string $key , string $value )
public array fwmKeys ( string $prefix , int $max_recs )
public mixed get ( mixed $keys )
public TokyoTyrantIterator getIterator ( void )
public int num ( void )
public TokyoTyrant out ( mixed $keys )
public TokyoTyrant put ( mixed $keys [, string $value = NULL ] )
public TokyoTyrant putCat ( mixed $keys [, string $value ] )
public TokyoTyrant putKeep ( mixed $keys [, string $value ] )
public TokyoTyrant putNr ( mixed $keys [, string $value = NULL ] )
public mixed putShl ( string $key , string $value , int $width )
public mixed restore ( string $log_dir , int $timestamp [, bool $check_consistency = true ] )
public mixed setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = true ] )
public int size ( string $key )
public array stat ( void )
public mixed sync ( void )
public TokyoTyrant tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] )
public mixed vanish ( void )
}

Предопределенные константы

TokyoTyrant Constants

TokyoTyrant::RDBDEF_PORT

The default port of the Tokyo Tyrant database

TokyoTyrant::RDBQC_STREQ

string is equal to

TokyoTyrant::RDBQC_STRINC

string is included in

TokyoTyrant::RDBQC_STRBW

string begins with

TokyoTyrant::RDBQC_STREW

string ends with

TokyoTyrant::RDBQC_STRAND

string includes all tokens in

TokyoTyrant::RDBQC_STROR

string includes at least one token in

TokyoTyrant::RDBQC_STROREQ

string is equal to at least one token in

TokyoTyrant::RDBQC_STRRX

string matches regular expressions of

TokyoTyrant::RDBQC_NUMEQ

number is equal to

TokyoTyrant::RDBQC_NUMGT

number is greater than

TokyoTyrant::RDBQC_NUMGE

number is greater than or equal to

TokyoTyrant::RDBQC_NUMLT

number is less than

TokyoTyrant::RDBQC_NUMLE

number is less than or equal to

TokyoTyrant::RDBQC_NUMBT

number is between two tokens of

TokyoTyrant::RDBQC_NUMOREQ

number is equal to at least one token in

TokyoTyrant::RDBQC_NEGATE

negation flag

TokyoTyrant::RDBQC_NOIDX

no index flag

TokyoTyrant::RDBQO_STRASC

string ascending

TokyoTyrant::RDBQO_STRDESC

string descending

TokyoTyrant::RDBQO_NUMASC

number ascending

TokyoTyrant::RDBQO_NUMDESC

number descending

TokyoTyrant::RDBIT_LEXICAL

lexical string

TokyoTyrant::RDBIT_DECIMAL

decimal string

TokyoTyrant::RDBIT_TOKEN

token inverted index (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBIT_QGRAM

QGRAM inverted index (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBIT_OPT

optimize

TokyoTyrant::RDBIT_VOID

void

TokyoTyrant::RDBIT_KEEP

keep existing index

TokyoTyrant::RDBQCFTS_PH

full-text search with the phrase of (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_AND

full-text search with all tokens in (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_OR

full-text search with at least one token in (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_EX

full-text search with the compound expression of (Tokyo Tyrant >= 1.1.29)

TokyoTyrant::RDBQCFTS_AND

Metasearch union between records (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBQCFTS_OR

Metasearch intersection between records (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBQCFTS_EX

Metasearch difference between records (Tokyo Tyrant >= 1.1.33)

TokyoTyrant::RDBT_RECON

Whether to reconnect on connection failure. It is recommended to have this parameter on for persistent connections

TokyoTyrant::RDBXOLCK_REC

record locking

TokyoTyrant::RDBXOLCK_GLB

global locking

TokyoTyrant::RDBREC_INT

record type int

TokyoTyrant::RDBREC_DBL

record type float (double)

TokyoTyrant::TTE_SUCCESS

success

TokyoTyrant::TTE_INVALID

invalid operation

TokyoTyrant::TTE_NOHOST

host not found

TokyoTyrant::TTE_REFUSED

connection refused

TokyoTyrant::TTE_SEND

send error

TokyoTyrant::TTE_RECV

recv error

TokyoTyrant::TTE_KEEP

record exist

TokyoTyrant::TTE_NOREC

no record found

TokyoTyrant::TTE_MISC

miscellaneous error

Содержание

  • TokyoTyrant::add — Adds to a numeric key
  • TokyoTyrant::connect — Connect to a database
  • TokyoTyrant::connectUri — Connects to a database
  • TokyoTyrant::__construct — Construct a new TokyoTyrant object
  • TokyoTyrant::copy — Copies the database
  • TokyoTyrant::ext — Execute a remote script
  • TokyoTyrant::fwmKeys — Returns the forward matching keys
  • TokyoTyrant::get — The get purpose
  • TokyoTyrant::getIterator — Get an iterator
  • TokyoTyrant::num — Number of records in the database
  • TokyoTyrant::out — Removes records
  • TokyoTyrant::put — Puts values
  • TokyoTyrant::putCat — Concatenates to a record
  • TokyoTyrant::putKeep — Puts a record
  • TokyoTyrant::putNr — Puts value
  • TokyoTyrant::putShl — Concatenates to a record
  • TokyoTyrant::restore — Restore the database
  • TokyoTyrant::setMaster — Set the replication master
  • TokyoTyrant::size — Returns the size of the value
  • TokyoTyrant::stat — Get statistics
  • TokyoTyrant::sync — Synchronize the database
  • TokyoTyrant::tune — Tunes connection values
  • TokyoTyrant::vanish — Empties the database


Adds to a numeric key

  • « TokyoTyrant
  • TokyoTyrant::connect »
  • PHP Manual
  • TokyoTyrant
  • Adds to a numeric key

TokyoTyrant::add

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::add — Adds to a numeric key

Описание

public number TokyoTyrant::add ( string $key , number $increment [, int $type = 0 ] )

Adds to an int or double value. This increments the value by the given amount and returns the new value. If the key does not exist a new key is created with initial value of the increment parameter.

Список параметров

key

The string key

increment

The amount to increment

type

TokyoTyrant::RDBREC_INT or TokyoTyrant::RDBREC_DBL constant. If this parameter is omitted the type is guessed from the increment parameters type.

Возвращаемые значения

Returns the new value on success

Примеры

Пример #1 TokyoTyrant::add() example

<?php
$tt = new TokyoTyrant("localhost", TokyoTyrant::RDBDEF_PORT);
/* Adds integer 3 to key and creates a new key */
$tt->add("test", 3);

/* String value is converted to double */
echo $tt->add("test", "3.5", TokyoTyrant::RDBREC_DBL);
?>

Результатом выполнения данного примера будет что-то подобное:

6.5

Смотрите также

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putcat() - Concatenates to a record
  • TokyoTyrant::putkeep() - Puts a record


Connect to a database

  • « TokyoTyrant::add
  • TokyoTyrant::connectUri »
  • PHP Manual
  • TokyoTyrant
  • Connect to a database

TokyoTyrant::connect

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::connect — Connect to a database

Описание

public TokyoTyrant TokyoTyrant::connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] )

Connects to a remote database

Список параметров

host

The hostname

port

The port. Default: 1978

options

Connection options: timeout (default: 5.0), reconnect (default: TRUE) and persistent (default: TRUE)

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::connect() example

<?php
$tt = new TokyoTyrant();
$tt->connect("localhost", TokyoTyrant::RDBDEF_PORT)->put("test", "value");
?>

Смотрите также

  • TokyoTyrant::connectUri() - Connects to a database


Connects to a database

  • « TokyoTyrant::connect
  • TokyoTyrant::__construct »
  • PHP Manual
  • TokyoTyrant
  • Connects to a database

TokyoTyrant::connectUri

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::connectUri — Connects to a database

Описание

public TokyoTyrant TokyoTyrant::connectUri ( string $uri )

Connects to a database using an uri

Список параметров

uri

An URI to the database. For example tcp://localhost:1979/

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::connectUri() example

<?php
$tt = new TokyoTyrant();
$tt->connectUri("tcp://localhost:1978/")->put("test", "hi");
?>

Смотрите также

  • TokyoTyrant::connect() - Connect to a database


Construct a new TokyoTyrant object

  • « TokyoTyrant::connectUri
  • TokyoTyrant::copy »
  • PHP Manual
  • TokyoTyrant
  • Construct a new TokyoTyrant object

TokyoTyrant::__construct

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::__construct — Construct a new TokyoTyrant object

Описание

public TokyoTyrant::__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )

Constructs a new TokyoTyrant object and optionally connects to the database

Список параметров

host

The hostname. Default: NULL

port

port number. Default: 1978

options

Connection options: timeout (default: 5.0), reconnect (default: TRUE) and persistent (default: TRUE)

Возвращаемые значения

Throws TokyoTyrantException if connection to database fails

Смотрите также

  • TokyoTyrant::connect() - Connect to a database
  • TokyoTyrant::connectUri() - Connects to a database


Copies the database

  • « TokyoTyrant::__construct
  • TokyoTyrant::ext »
  • PHP Manual
  • TokyoTyrant
  • Copies the database

TokyoTyrant::copy

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::copy — Copies the database

Описание

public TokyoTyrant TokyoTyrant::copy ( string $path )

Makes a copy of the current database

Список параметров

path

Path to where to copy the database. The user running the remote database must have a write access to the directory.

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::copy() example

<?php
$tt = new TokyoTyrant("localhost", 1978);
$tt->copy("/tmp/foobar.tct");
?>

Смотрите также

  • TokyoTyrant::restore() - Restore the database


Execute a remote script

  • « TokyoTyrant::copy
  • TokyoTyrant::fwmKeys »
  • PHP Manual
  • TokyoTyrant
  • Execute a remote script

TokyoTyrant::ext

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::ext — Execute a remote script

Описание

public string TokyoTyrant::ext ( string $name , int $options , string $key , string $value )

Executes a remote script extension.

Список параметров

name

Name of the function to execute

options

Either TokyoTyrant::RDBXO_LCKREC for record locking and TokyoTyrant::RDBXO_LCKGLB for global locking.

key

The key to pass to the function

value

The value to pass to the function

Возвращаемые значения

Returns the result of the script function

Примеры

Пример #1 TokyoTyrant::ext() example

<?php
$tt = new TokyoTyrant("localhost", 1978);
echo $tt->ext("somefunc", TokyoTyrant::RDBXO_LCKREC, "some_key", "some_value");
?>


Returns the forward matching keys

  • « TokyoTyrant::ext
  • TokyoTyrant::get »
  • PHP Manual
  • TokyoTyrant
  • Returns the forward matching keys

TokyoTyrant::fwmKeys

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::fwmKeys — Returns the forward matching keys

Описание

public array TokyoTyrant::fwmKeys ( string $prefix , int $max_recs )

Returns the forward matching keys from the database

Список параметров

prefix

Prefix of the keys

max_recs

Maximum records to return

Возвращаемые значения

Returns an array of matching keys. The values are not returned

Примеры

Пример #1 TokyoTyrant::fwmKeys() example

<?php

$tt = new TokyoTyrant("localhost");

/* Create 20 macthing keys */
for ($i = 0; $i < 20; $i++) {
    $tt->put("key_" . $i, "value_" . $i);
}

/* Create 20 non-macthing keys */
for ($i = 0; $i < 20; $i++) {
    $tt->put("something_" . $i, "data_" . $i);
}

/* Get five matching keys */
var_dump($tt->fwmKeys("key_", 5));
?>

Результатом выполнения данного примера будет что-то подобное:

array(5) {
  [0]=>
  string(5) "key_5"
  [1]=>
  string(6) "key_14"
  [2]=>
  string(5) "key_6"
  [3]=>
  string(6) "key_15"
  [4]=>
  string(5) "key_7"
}


The get purpose

  • « TokyoTyrant::fwmKeys
  • TokyoTyrant::getIterator »
  • PHP Manual
  • TokyoTyrant
  • The get purpose

TokyoTyrant::get

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::get — The get purpose

Описание

public mixed TokyoTyrant::get ( mixed $keys )

This method is used to return a value or multiple values. This method accepts a string or an array as a value.

Список параметров

keys

A string key or an array of string keys

Возвращаемые значения

Returns a string or an array based on the given parameters. Throws a TokyoTyrantException on error. If string is passed null is returned if the key is not found. In case an array is given as an parameter only existing keys will be returned. It is not an error to pass a key that does not exist.

Примеры

Пример #1 TokyoTyrant::get() example

<?php
$tt = new TokyoTyrant("localhost", 1978);
$tt->put("key1", "value1");
$tt->put("key2", "value2");
var_dump($tt->get(array("key1", "key2")));
var_dump($tt->get("key1"));
?>

Результат выполнения данного примера:

array(2) {
  ["key1"]=>
  string(6) "value1"
  ["key2"]=>
  string(6) "value2"
}
string(6) "value1"

Смотрите также

  • TokyoTyrant::put() - Puts values


Get an iterator

  • « TokyoTyrant::get
  • TokyoTyrant::num »
  • PHP Manual
  • TokyoTyrant
  • Get an iterator

TokyoTyrant::getIterator

(Информация о версии неизвестна, возможно, только в SVN)

TokyoTyrant::getIterator — Get an iterator

Описание

public TokyoTyrantIterator TokyoTyrant::getIterator ( void )

Gets an iterator for iterating all keys / values in the database.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method returns TokyoTyrantIterator object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::getIterator() example

<?php
$tt = new TokyoTyrant("localhost");
$it = $tt->getIterator();

foreach ($it as $k => $v) {

}
?>

Смотрите также

  • TokyoTyrantTable::getQuery() - Get a query object
  • TokyoTyrantTable::getIterator() - Get an iterator


Number of records in the database

  • « TokyoTyrant::getIterator
  • TokyoTyrant::out »
  • PHP Manual
  • TokyoTyrant
  • Number of records in the database

TokyoTyrant::num

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::num — Number of records in the database

Описание

public int TokyoTyrant::num ( void )

Returns the number of records in the database

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns number of records in the database

Примеры

Пример #1 TokyoTyrant::num() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Echo the number of records */
echo $tt->num();
?>

Результатом выполнения данного примера будет что-то подобное:

1234

Смотрите также

  • TokyoTyrant::stat() - Get statistics


Removes records

  • « TokyoTyrant::num
  • TokyoTyrant::put »
  • PHP Manual
  • TokyoTyrant
  • Removes records

TokyoTyrant::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::out — Removes records

Описание

public TokyoTyrant TokyoTyrant::out ( mixed $keys )

Removes a record or multiple records. This method accepts a string for a single key or an array of keys for multiple records.

Список параметров

keys

A string key or an array of string keys

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::out() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

$tt->put("test1", "value1");
$tt->put("test2", "value2");

$tt->out(array("test1", "test2"));
?>

Смотрите также

  • TokyoTyrant::put() - Puts values


Puts values

  • « TokyoTyrant::out
  • TokyoTyrant::putCat »
  • PHP Manual
  • TokyoTyrant
  • Puts values

TokyoTyrant::put

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::put — Puts values

Описание

public TokyoTyrant TokyoTyrant::put ( mixed $keys [, string $value = NULL ] )

Puts a key-value pair into the database or multiple key-value pairs. If keys is string then the second parameter value defines the value. The second parameter is mandatory if keys is a string. If the key exists the value will be replaced with new value.

Список параметров

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::put() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Put single key-value pair */
$tt->put("key", "value");

/* Put key-value pairs, new value overwrites the old */
$tt->put(array("key1" => "value1", "key" => "value2"));

/* Get back one key */
echo $tt->get("key");
?>

Результат выполнения данного примера:

value2

Смотрите также

  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Concatenates to a record

  • « TokyoTyrant::put
  • TokyoTyrant::putKeep »
  • PHP Manual
  • TokyoTyrant
  • Concatenates to a record

TokyoTyrant::putCat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putCat — Concatenates to a record

Описание

public TokyoTyrant TokyoTyrant::putCat ( mixed $keys [, string $value ] )

Appends a value into existing key or multiple values if keys is an array. The second parameter is mandatory if keys is a string. If the record does not exist a new record is created.

Список параметров

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::putCat() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Create a new key */
$tt->put("key", "value");

/* Concatenate single key-value pair */
$tt->putCat("key", " has more data");

/* Echo the key */
echo $tt->get("key");
?>

Результат выполнения данного примера:

value has more data

Смотрите также

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putKeep() - Puts a record


Puts a record

  • « TokyoTyrant::putCat
  • TokyoTyrant::putNr »
  • PHP Manual
  • TokyoTyrant
  • Puts a record

TokyoTyrant::putKeep

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putKeep — Puts a record

Описание

public TokyoTyrant TokyoTyrant::putKeep ( mixed $keys [, string $value ] )

Puts a key-value pair into the database or multiple key-value pairs. If keys is string then the second parameter value defines the value. The second parameter is mandatory if keys is a string. If the key already exists this method throws an exception indicating that the records exists.

Список параметров

keys

A string key or an array of key-value pairs

value

The string value

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 tokyotyrant::putKeep() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Create a new key */
$tt->put("key", "value");

try {
    $tt->putKeep("key", "new value");
} catch (TokyoTyrantException $e) {
    if ($e->getCode() === TokyoTyrant::TTE_KEEP) {
        echo "Existing record! Not modified\n";
    } else {
        echo "Error: " , $e->getMessage() , "\n";
    }
}
echo $tt->get("key");
?>

Результат выполнения данного примера:

Existing record! Not modified
value

Смотрите также

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putCat() - Concatenates to a record


Puts value

  • « TokyoTyrant::putKeep
  • TokyoTyrant::putShl »
  • PHP Manual
  • TokyoTyrant
  • Puts value

TokyoTyrant::putNr

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putNr — Puts value

Описание

public TokyoTyrant TokyoTyrant::putNr ( mixed $keys [, string $value = NULL ] )

Puts a key-value pair into the database or multiple key-value pairs. If keys is string then the second parameter value defines the value. The second parameter is mandatory if keys is a string. This method does not wait for the response from the server.

Список параметров

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::putNr() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Put single key-value pair */
$tt->putNr("key", "value");

/* Put key-value pairs */
$tt->putNr(array("key1" => "value1", "key2" => "value2"));

/* Get back one key */
echo $tt->get("key1");
?>

Результат выполнения данного примера:

value1

Смотрите также

  • TokyoTyrant::putNr()
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Concatenates to a record

  • « TokyoTyrant::putNr
  • TokyoTyrant::restore »
  • PHP Manual
  • TokyoTyrant
  • Concatenates to a record

TokyoTyrant::putShl

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::putShl — Concatenates to a record

Описание

public mixed TokyoTyrant::putShl ( string $key , string $value , int $width )

Concatenate to a record and shift to left.

Список параметров

key

A string key

value

The value to concatenate

width

The width of the record

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::putShl() example

<?php
/* Connect to a database on default port */
$tt = new TokyoTyrant("localhost");

/* Create a new key */
$tt->put("key", "just a long piece of data");

/* Concatenate and shift to left */
$tt->putShl("key", " and string", 15);

/* Echo the key */
echo $tt->get("key");
?>

Результат выполнения данного примера:

data and string

Смотрите также

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Restore the database

  • « TokyoTyrant::putShl
  • TokyoTyrant::setMaster »
  • PHP Manual
  • TokyoTyrant
  • Restore the database

TokyoTyrant::restore

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::restore — Restore the database

Описание

public mixed TokyoTyrant::restore ( string $log_dir , int $timestamp [, bool $check_consistency = true ] )

Restore the database from the update log.

Внимание

This method is not supported on 32bit platforms.

Список параметров

log_dir

Directory where the log is

timestamp

Beginning timestamp with microseconds

check_consistency

Whether to check consistency: Default: TRUE

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.


Set the replication master

  • « TokyoTyrant::restore
  • TokyoTyrant::size »
  • PHP Manual
  • TokyoTyrant
  • Set the replication master

TokyoTyrant::setMaster

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::setMaster — Set the replication master

Описание

public mixed TokyoTyrant::setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = true ] )

Sets the replication master of the database

Внимание

This method is not supported on 32bit platforms.

Список параметров

host

Hostname of the replication master. If NULL the replication is disabled.

port

Port of the replication master

timestamp

Beginning timestamp with microseconds

check_consistency

Whether to check consistency.

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::setMaster() example

<?php
/* Connect to a database */
$tt = new TokyoTyrant("tokyotyrant.example.com");

/* Disable the replication */
$tt->setMaster(NULL, 0, 0);
?>

Смотрите также

  • Classname::Method()


Returns the size of the value

  • « TokyoTyrant::setMaster
  • TokyoTyrant::stat »
  • PHP Manual
  • TokyoTyrant
  • Returns the size of the value

TokyoTyrant::size

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::size — Returns the size of the value

Описание

public int TokyoTyrant::size ( string $key )

Returns the size of a value by key

Список параметров

key

The key of which size to fetch

Возвращаемые значения

Returns the size of the key or throw TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrant::size() example

<?php
$tt = new TokyoTyrant("localhost");

$tt->put("test_key", "12345");

echo $tt->size("test_key");
?>

Результат выполнения данного примера:

5


Get statistics

  • « TokyoTyrant::size
  • TokyoTyrant::sync »
  • PHP Manual
  • TokyoTyrant
  • Get statistics

TokyoTyrant::stat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::stat — Get statistics

Описание

public array TokyoTyrant::stat ( void )

Returns statistics of the remote database

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of key value pairs describing the statistics

Примеры

Пример #1 TokyoTyrant::stat() example

<?php
$tt = new TokyoTyrant("localhost");

var_dump($tt->stat());
?>

Результатом выполнения данного примера будет что-то подобное:

array(19) {
  ["version"]=>
  string(6) "1.1.28"
  ["libver"]=>
  string(3) "311"
  ["protver"]=>
  string(4) "0.91"
  ["os"]=>
  string(5) "Linux"
  ["time"]=>
  string(17) "1247358357.665630"
  ["pid"]=>
  string(5) "14348"
  ["sid"]=>
  string(8) "59025947"
  ["type"]=>
  string(9) "on-memory"
  ["path"]=>
  string(1) "*"
  ["rnum"]=>
  string(1) "4"
  ["size"]=>
  string(6) "262856"
  ["bigend"]=>
  string(1) "0"
  ["fd"]=>
  string(1) "5"
  ["loadavg"]=>
  string(8) "0.000000"
  ["memsize"]=>
  string(8) "77328384"
  ["memrss"]=>
  string(7) "1183744"
  ["ru_real"]=>
  string(13) "162776.042152"
  ["ru_user"]=>
  string(8) "0.476029"
  ["ru_sys"]=>
  string(8) "8.652540"
}

Смотрите также

  • Classname::Method()


Synchronize the database

  • « TokyoTyrant::stat
  • TokyoTyrant::tune »
  • PHP Manual
  • TokyoTyrant
  • Synchronize the database

TokyoTyrant::sync

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::sync — Synchronize the database

Описание

public mixed TokyoTyrant::sync ( void )

Synchronizes the database on to the physical device

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.


Tunes connection values

  • « TokyoTyrant::sync
  • TokyoTyrant::vanish »
  • PHP Manual
  • TokyoTyrant
  • Tunes connection values

TokyoTyrant::tune

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrant::tune — Tunes connection values

Описание

public TokyoTyrant TokyoTyrant::tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] )

Tunes database connection options.

Список параметров

timeout

The objects timeout value (default: 5.0)

options

Bitmask of options to tune. This can be either 0 or TokyoTyrant::RDBT_RECON. It is recommended not to change the second parameter.

Возвращаемые значения

This method returns a reference to the current object and throws TokyoTyrantException on failure.


Empties the database

  • « TokyoTyrant::tune
  • TokyoTyrantTable »
  • PHP Manual
  • TokyoTyrant
  • Empties the database

TokyoTyrant::vanish

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrant::vanish — Empties the database

Описание

public mixed TokyoTyrant::vanish ( void )

Empties a remote database

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrant::vanish() example

<?php
$tt = new TokyoTyrant("localhost");
$tt->vanish();
?>

Смотрите также

  • TokyoTyrant::out() - Removes records


The TokyoTyrantTable class

(PECL tokyo_tyrant >= 0.1.0)

Введение

Provides an API to the table databases. A table database can be create using the following command: ttserver -port 1979 /tmp/tt_table.tct. In Tokyo Tyrant the table API is a schemaless database which can store arbitrary amount of key-value pairs under a single primary key.

Обзор классов

TokyoTyrantTable extends TokyoTyrant {
/* Методы */
public void add ( string $key , mixed $increment [, string $type ] )
public int genUid ( void )
public array get ( mixed $keys )
public TokyoTyrantIterator getIterator ( void )
public TokyoTyrantQuery getQuery ( void )
public void out ( mixed $keys )
public int put ( string $key , array $columns )
public void putCat ( string $key , array $columns )
public void putKeep ( string $key , array $columns )
public void putNr ( mixed $keys [, string $value ] )
public void putShl ( string $key , string $value , int $width )
public mixed setIndex ( string $column , int $type )
/* Наследуемые методы */
public number TokyoTyrant::add ( string $key , number $increment [, int $type = 0 ] )
public TokyoTyrant TokyoTyrant::connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] )
public TokyoTyrant TokyoTyrant::connectUri ( string $uri )
public TokyoTyrant::__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )
public TokyoTyrant TokyoTyrant::copy ( string $path )
public string TokyoTyrant::ext ( string $name , int $options , string $key , string $value )
public array TokyoTyrant::fwmKeys ( string $prefix , int $max_recs )
public mixed TokyoTyrant::get ( mixed $keys )
public TokyoTyrantIterator TokyoTyrant::getIterator ( void )
public int TokyoTyrant::num ( void )
public TokyoTyrant TokyoTyrant::out ( mixed $keys )
public TokyoTyrant TokyoTyrant::put ( mixed $keys [, string $value = NULL ] )
public TokyoTyrant TokyoTyrant::putCat ( mixed $keys [, string $value ] )
public TokyoTyrant TokyoTyrant::putKeep ( mixed $keys [, string $value ] )
public TokyoTyrant TokyoTyrant::putNr ( mixed $keys [, string $value = NULL ] )
public mixed TokyoTyrant::putShl ( string $key , string $value , int $width )
public mixed TokyoTyrant::restore ( string $log_dir , int $timestamp [, bool $check_consistency = true ] )
public mixed TokyoTyrant::setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = true ] )
public int TokyoTyrant::size ( string $key )
public array TokyoTyrant::stat ( void )
public mixed TokyoTyrant::sync ( void )
public TokyoTyrant TokyoTyrant::tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] )
public mixed TokyoTyrant::vanish ( void )
}

Содержание

  • TokyoTyrantTable::add — Adds a record
  • TokyoTyrantTable::genUid — Generate unique id
  • TokyoTyrantTable::get — Get a row
  • TokyoTyrantTable::getIterator — Get an iterator
  • TokyoTyrantTable::getQuery — Get a query object
  • TokyoTyrantTable::out — Remove records
  • TokyoTyrantTable::put — Store a row
  • TokyoTyrantTable::putCat — Concatenates to a row
  • TokyoTyrantTable::putKeep — Put a new record
  • TokyoTyrantTable::putNr — Puts value
  • TokyoTyrantTable::putShl — Concatenates to a record
  • TokyoTyrantTable::setIndex — Sets index


Adds a record

  • « TokyoTyrantTable
  • TokyoTyrantTable::genUid »
  • PHP Manual
  • TokyoTyrantTable
  • Adds a record

TokyoTyrantTable::add

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::add — Adds a record

Описание

public void TokyoTyrantTable::add ( string $key , mixed $increment [, string $type ] )

This method is not supported with table databases.

Список параметров

key

The string key

increment

The amount to increment

type

TokyoTyrant::RDB_RECINT or TokyoTyrant::RDB_RECDBL constant. If this parameter is omitted the type is guessed from the increment parameters type.

Возвращаемые значения

This method throws an TokyoTyrantException if used through this class.

Смотрите также

  • TokyoTyrant::add() - Adds to a numeric key


Generate unique id

  • « TokyoTyrantTable::add
  • TokyoTyrantTable::get »
  • PHP Manual
  • TokyoTyrantTable
  • Generate unique id

TokyoTyrantTable::genUid

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::genUid — Generate unique id

Описание

public int TokyoTyrantTable::genUid ( void )

Generates an unique id inside the table database. In table databases rows are referenced using a numeric primary key.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an unique id or throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantTable::genUid() example

<?php
$tt = new TokyoTyrantTable("localhost", 1122);

echo $tt->genUid();
?>

Результатом выполнения данного примера будет что-то подобное:

4

Смотрите также

  • TokyoTyrantTable::put() - Store a row


Get a row

  • « TokyoTyrantTable::genUid
  • TokyoTyrantTable::getIterator »
  • PHP Manual
  • TokyoTyrantTable
  • Get a row

TokyoTyrantTable::get

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::get — Get a row

Описание

public array TokyoTyrantTable::get ( mixed $keys )

Gets a row from table database. keys is a single integer for the primary key of the row or an array of integers for multiple rows.

Список параметров

keys

The primary key, can be a string or an integer

Возвращаемые значения

Returns the row as an array

Примеры

Пример #1 TokyoTyrantTable::get() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));
?>

Результат выполнения данного примера:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Примечания

Замечание:

Starting from version 0.3.0 this method accepts array as parameter. Please note that multi-get on tables is not binary-safe.

Смотрите также

  • TokyoTyrantTable::put() - Store a row


Get an iterator

  • « TokyoTyrantTable::get
  • TokyoTyrantTable::getQuery »
  • PHP Manual
  • TokyoTyrantTable
  • Get an iterator

TokyoTyrantTable::getIterator

(Информация о версии неизвестна, возможно, только в SVN)

TokyoTyrantTable::getIterator — Get an iterator

Описание

public TokyoTyrantIterator TokyoTyrantTable::getIterator ( void )

Gets an iterator for iterating all keys / values in the database.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method returns TokyoTyrantIterator object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrantTable::getIterator() example

<?php
$tt = new TokyoTyrantTable("localhost");
$it = $tt->getIterator();

foreach ($it as $k => $v) {
  var_dump($k, $v);
}
?>

Смотрите также

  • TokyoTyrantTable::getQuery() - Get a query object
  • TokyoTyrant::getIterator() - Get an iterator


Get a query object

  • « TokyoTyrantTable::getIterator
  • TokyoTyrantTable::out »
  • PHP Manual
  • TokyoTyrantTable
  • Get a query object

TokyoTyrantTable::getQuery

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::getQuery — Get a query object

Описание

public TokyoTyrantQuery TokyoTyrantTable::getQuery ( void )

Get a query object to execute searches on the database

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TokyoTyrantQuery on success and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantTable::getQuery() example

<?php
/* Connect to a table database */
$table = new TokyoTyrantTable("localhost", 1979);

/* Put a few rows */
$table->put(null, array("column1" => "some data", "column2" => "more data"));
$table->put(null, array("something" => "value", "data" => "good data"));

/* Get query object */
$query = $table->getQuery();

/* Add condition to query */
$query->addCond('data', TokyoTyrant::RDBQC_STREQ, 'good data');

/* Get matching rows */
var_dump($query->search());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [11]=>
  array(2) {
    ["something"]=>
    string(5) "value"
    ["data"]=>
    string(9) "good data"
  }
}

Смотрите также

  • TokyoTyrantQuery::search() - Searches records
  • TokyoTyrantQuery::out() - Removes records based on query


Remove records

  • « TokyoTyrantTable::getQuery
  • TokyoTyrantTable::put »
  • PHP Manual
  • TokyoTyrantTable
  • Remove records

TokyoTyrantTable::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::out — Remove records

Описание

public void TokyoTyrantTable::out ( mixed $keys )

Removes records from a table database.

Список параметров

keys

A single integer key or an array of integers

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrantTable::out() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Delete the row */
$tt->out($index);
?>

Смотрите также

  • TokyoTyrantTable::put() - Store a row


Store a row

  • « TokyoTyrantTable::out
  • TokyoTyrantTable::putCat »
  • PHP Manual
  • TokyoTyrantTable
  • Store a row

TokyoTyrantTable::put

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::put — Store a row

Описание

public int TokyoTyrantTable::put ( string $key , array $columns )

Puts a new row into the database. This method parameters are key which is the primary key of the row, passing NULL will generate a new unique id. value is an array containing the row contents which is usually key value pairs.

Список параметров

key

The primary key of the row

columns

The row contents

Возвращаемые значения

Returns the primary key on success and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantTable::put() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));

/* Modify an existing row */
$tt->put($index, array("column1" => "other data", "column2" => "better data"));

/* Get the row back */
var_dump($tt->get($index));
?>

Результат выполнения данного примера:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
array(2) {
  ["column1"]=>
  string(10) "other data"
  ["column2"]=>
  string(11) "better data"
}

Смотрите также

  • TokyoTyrantTable::get() - Get a row


Concatenates to a row

  • « TokyoTyrantTable::put
  • TokyoTyrantTable::putKeep »
  • PHP Manual
  • TokyoTyrantTable
  • Concatenates to a row

TokyoTyrantTable::putCat

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putCat — Concatenates to a row

Описание

public void TokyoTyrantTable::putCat ( string $key , array $columns )

This method can be used to add new columns to existing records. Existing keys will be left unmodified but any new columns will be appended to the row. Passing null as key will generate a new row.

Список параметров

key

The primary key of the row or NULL

columns

Array of row contents

Возвращаемые значения

Returns the primary key and throws TokyoTyrantException on error.

Примеры

Пример #1 TokyoTyrantTable::putCat() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));

/* Modify an existing row */
$tt->putcat($index, array("column1" => "something new", "new_column" => "other data"));

/* Get the row back */
var_dump($tt->get($index));
?>

Результат выполнения данного примера:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
array(3) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
  ["new_column"]=>
  string(10) "other data"
}

Смотрите также

  • TokyoTyrantTable::put() - Store a row


Put a new record

  • « TokyoTyrantTable::putCat
  • TokyoTyrantTable::putNr »
  • PHP Manual
  • TokyoTyrantTable
  • Put a new record

TokyoTyrantTable::putKeep

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putKeep — Put a new record

Описание

public void TokyoTyrantTable::putKeep ( string $key , array $columns )

Puts a new record into the database. If the key already exists this method throws an exception indicating that the records exists.

Список параметров

key

The primary key of the row or NULL

columns

Array of the row contents

Возвращаемые значения

Returns the primary key and throws TokyoTyrantException on error.

Примеры

Пример #1 TokyoTyrantTable::putKeep() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Get the row back */
var_dump($tt->get($index));

try {
    $tt->putKeep($index, array("column1" => "something new", "new_column" => "other data"));
} catch (TokyoTyrantException $e) {
    if ($e->getCode() === TokyoTyrant::TTE_KEEP) {
        echo "Existing record! Not modified\n";
    } else {
        echo "Error: " , $e->getMessage() , "\n";
    }
}

/* Get the row back */
var_dump($tt->get($index));
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}
Existing record! Not modified
array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Смотрите также

  • TokyoTyrantTable::put() - Store a row


Puts value

  • « TokyoTyrantTable::putKeep
  • TokyoTyrantTable::putShl »
  • PHP Manual
  • TokyoTyrantTable
  • Puts value

TokyoTyrantTable::putNr

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putNr — Puts value

Описание

public void TokyoTyrantTable::putNr ( mixed $keys [, string $value ] )

This method is not supported on table databases. Calling this method through TokyoTyrantTable is considered an error and an TokyoTyrantException will be thrown.

Список параметров

keys

A string key or an array of key-value pairs

value

The value in case a string key is used

Возвращаемые значения

This method is not supported on table databases. Calling this method through TokyoTyrantTable is considered an error and an TokyoTyrantException will be thrown.

Смотрите также

  • TokyoTyrant::putNr() - Puts value
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record


Concatenates to a record

  • « TokyoTyrantTable::putNr
  • TokyoTyrantTable::setIndex »
  • PHP Manual
  • TokyoTyrantTable
  • Concatenates to a record

TokyoTyrantTable::putShl

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::putShl — Concatenates to a record

Описание

public void TokyoTyrantTable::putShl ( string $key , string $value , int $width )

This method is not supported on table databases. Calling this method through TokyoTyrantTable is considered an error and an TokyoTyrantException will be thrown.

Список параметров

key

A string key

value

The value to concatenate

width

The width of the record

Возвращаемые значения

This method is not supported on table databases.

Смотрите также

  • TokyoTyrant::put() - Puts values
  • TokyoTyrant::putKeep() - Puts a record
  • TokyoTyrant::putCat() - Concatenates to a record
  • TokyoTyrantTable::put() - Store a row
  • TokyoTyrantTable::putKeep() - Put a new record
  • TokyoTyrantTable::putCat() - Concatenates to a row


Sets index

  • « TokyoTyrantTable::putShl
  • TokyoTyrantQuery »
  • PHP Manual
  • TokyoTyrantTable
  • Sets index

TokyoTyrantTable::setIndex

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantTable::setIndex — Sets index

Описание

public mixed TokyoTyrantTable::setIndex ( string $column , int $type )

Sets an index on a specified column. The index type is one of the TokyoTyrant::RDBIT_* constants. Passing TokyoTyrant::RDBIT_VOID removes the index.

Список параметров

column

The name of the column

type

The index type

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.


The TokyoTyrantQuery class

(PECL tokyo_tyrant >= 0.1.0)

Введение

This class is used to query the table databases

Обзор классов

TokyoTyrantQuery implements Iterator {
/* Методы */
public mixed addCond ( string $name , int $op , string $expr )
public __construct ( TokyoTyrantTable $table )
public int count ( void )
public array current ( void )
public string hint ( void )
public string key ( void )
public array metaSearch ( array $queries , int $type )
public array next ( void )
public TokyoTyrantQuery out ( void )
public bool rewind ( void )
public array search ( void )
public mixed setLimit ([ int $max [, int $skip ]] )
public mixed setOrder ( string $name , int $type )
public bool valid ( void )
}

Содержание

  • TokyoTyrantQuery::addCond — Adds a condition to the query
  • TokyoTyrantQuery::__construct — Construct a new query
  • TokyoTyrantQuery::count — Counts records
  • TokyoTyrantQuery::current — Returns the current element
  • TokyoTyrantQuery::hint — Get the hint string of the query
  • TokyoTyrantQuery::key — Returns the current key
  • TokyoTyrantQuery::metaSearch — Retrieve records with multiple queries
  • TokyoTyrantQuery::next — Moves the iterator to next entry
  • TokyoTyrantQuery::out — Removes records based on query
  • TokyoTyrantQuery::rewind — Rewinds the iterator
  • TokyoTyrantQuery::search — Searches records
  • TokyoTyrantQuery::setLimit — Limit results
  • TokyoTyrantQuery::setOrder — Orders results
  • TokyoTyrantQuery::valid — Checks the validity of current item


Adds a condition to the query

  • « TokyoTyrantQuery
  • TokyoTyrantQuery::__construct »
  • PHP Manual
  • TokyoTyrantQuery
  • Adds a condition to the query

TokyoTyrantQuery::addCond

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::addCond — Adds a condition to the query

Описание

public mixed TokyoTyrantQuery::addCond ( string $name , int $op , string $expr )

Adds a condition to the query. Condition can be something like: get all keys which value matches expr.

Список параметров

name

Name of the column in the condition

op

The operator. One of the TokyoTyrant::RDBQC_* constants

expr

The expression

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrantQuery::addCond() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Dump the search results */
var_dump($query->search());
?>

Результат выполнения данного примера:

array(2) {
  [1]=>
  array(2) {
    ["column1"]=>
    string(9) "some data"
    ["column2"]=>
    string(14) "something here"
  }
  [4]=>
  array(2) {
    ["column45"]=>
    string(11) "random data"
    ["column2"]=>
    string(25) "something along the lines"
  }
}

Смотрите также

  • Classname::Method()


Construct a new query

  • « TokyoTyrantQuery::addCond
  • TokyoTyrantQuery::count »
  • PHP Manual
  • TokyoTyrantQuery
  • Construct a new query

TokyoTyrantQuery::__construct

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::__construct — Construct a new query

Описание

public TokyoTyrantQuery::__construct ( TokyoTyrantTable $table )

Construct a new query object

Список параметров

table

TokyoTyrantTable object with active database connection

Возвращаемые значения

Returns a new TokyoTyrantQuery object and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantQuery::__construct() example

<?php
$tt = new TokyoTyrantTable("localhost", 1979);

$query = new TokyoTyrantQuery($tt);

/* Work with $query */
?>

Смотрите также

  • TokyoTyrantTable::getQuery() - Get a query object


Counts records

  • « TokyoTyrantQuery::__construct
  • TokyoTyrantQuery::current »
  • PHP Manual
  • TokyoTyrantQuery
  • Counts records

TokyoTyrantQuery::count

(Информация о версии неизвестна, возможно, только в SVN)

TokyoTyrantQuery::count — Counts records

Описание

public int TokyoTyrantQuery::count ( void )

Returns a count of how many records a query returns.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a count of matching rows and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantQuery::count() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Count the results */
var_dump($query->count());
?>

Результат выполнения данного примера:

int(2)

Смотрите также

  • TokyoTyrantQuery::out() - Removes records based on query
  • TokyoTyrantQuery::search() - Searches records
  • TokyoTyrantQuery::metaSearch() - Retrieve records with multiple queries


Returns the current element

  • « TokyoTyrantQuery::count
  • TokyoTyrantQuery::hint »
  • PHP Manual
  • TokyoTyrantQuery
  • Returns the current element

TokyoTyrantQuery::current

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::current — Returns the current element

Описание

public array TokyoTyrantQuery::current ( void )

Returns the current element. Part of Iterator interface

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current row

Примеры

Пример #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

pk: 1, columns: 2
pk: 4, columns: 2

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Get the hint string of the query

  • « TokyoTyrantQuery::current
  • TokyoTyrantQuery::key »
  • PHP Manual
  • TokyoTyrantQuery
  • Get the hint string of the query

TokyoTyrantQuery::hint

(Информация о версии неизвестна, возможно, только в SVN)

TokyoTyrantQuery::hint — Get the hint string of the query

Описание

public string TokyoTyrantQuery::hint ( void )

Get the hint string of the query. The hint string contains information about an executed query and it could be compared to for example MySQL EXPLAIN statement.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method always returns a string

Примеры

Пример #1 TokyoTyrantQuery::hint example

<?php
$tt = new TokyoTyrantTable("localhost", 1979);
$tt->vanish();

for ($i = 0; $i < 11; $i++) {
     $tt->put(null, array('a_col' => 'a' . $i, 'b_col' => 'b' . $i));
}

$query = $tt->getQuery();
$query->addCond('a_col', TokyoTyrant::RDBQC_STRBW, 'a');

$query->search();
var_dump($query->hint());
?>

Результатом выполнения данного примера будет что-то подобное:

string(72) "
scanning the whole table
result set size: 11
leaving the natural order
"

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Returns the current key

  • « TokyoTyrantQuery::hint
  • TokyoTyrantQuery::metaSearch »
  • PHP Manual
  • TokyoTyrantQuery
  • Returns the current key

TokyoTyrantQuery::key

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::key — Returns the current key

Описание

public string TokyoTyrantQuery::key ( void )

Returns the current key. Part of the Iterator interface

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current key and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

pk: 1, columns: 2
pk: 4, columns: 2

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Retrieve records with multiple queries

  • « TokyoTyrantQuery::key
  • TokyoTyrantQuery::next »
  • PHP Manual
  • TokyoTyrantQuery
  • Retrieve records with multiple queries

TokyoTyrantQuery::metaSearch

(Информация о версии неизвестна, возможно, только в SVN)

TokyoTyrantQuery::metaSearch — Retrieve records with multiple queries

Описание

public array TokyoTyrantQuery::metaSearch ( array $queries , int $type )

Executes multiple queries on a database and returns matching records. The current object is always the left most object in the search.

Список параметров

queries

Array of TokyoTyrantQuery objects

type

One of the TokyoTyrant::RDBMS_* constants

Возвращаемые значения

Returns the matching rows and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantQuery::metaSearch() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add test data */
$tt->put('cherry',     array('color' => 'red'));
$tt->put('strawberry', array('color' => 'red'));
$tt->put('apple',      array('color' => 'green'));
$tt->put('lemon',      array('color' => 'yellow'));

/* First query */
$query = $tt->getQuery();
$query->addCond('color', TokyoTyrant::RDBQC_STREQ, 'red')->setOrder('color', TokyoTyrant::RDBQO_STRASC);

/* Second query */
$query1 = $tt->getQuery();
$query1->addCond('color', TokyoTyrant::RDBQC_STREQ, 'yellow');

/* Get union between the queries */
var_dump($query->metaSearch(array($query1), TokyoTyrant::RDBMS_UNION));
?>

Результат выполнения данного примера:

array(3) {
  ["cherry"]=>
  array(1) {
    ["color"]=>
    string(3) "red"
  }
  ["strawberry"]=>
  array(1) {
    ["color"]=>
    string(3) "red"
  }
  ["lemon"]=>
  array(1) {
    ["color"]=>
    string(6) "yellow"
  }
}

Смотрите также

  • TokyoTyrantQuery::search() - Searches records


Moves the iterator to next entry

  • « TokyoTyrantQuery::metaSearch
  • TokyoTyrantQuery::out »
  • PHP Manual
  • TokyoTyrantQuery
  • Moves the iterator to next entry

TokyoTyrantQuery::next

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::next — Moves the iterator to next entry

Описание

public array TokyoTyrantQuery::next ( void )

Returns the next result in the resultset. Part of the Iterator interface.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the next row and throws TokyoTyrantException on error.

Примеры

Пример #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

pk: 1, columns: 2
pk: 4, columns: 2

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Removes records based on query

  • « TokyoTyrantQuery::next
  • TokyoTyrantQuery::rewind »
  • PHP Manual
  • TokyoTyrantQuery
  • Removes records based on query

TokyoTyrantQuery::out

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::out — Removes records based on query

Описание

public TokyoTyrantQuery TokyoTyrantQuery::out ( void )

Removes all records that match the query. Works exactly like search but removes the records instead of returning them.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.

Примеры

Пример #1 TokyoTyrantQuery::out() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Remove matching records */
$query->out();
?>

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Rewinds the iterator

  • « TokyoTyrantQuery::out
  • TokyoTyrantQuery::search »
  • PHP Manual
  • TokyoTyrantQuery
  • Rewinds the iterator

TokyoTyrantQuery::rewind

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::rewind — Rewinds the iterator

Описание

public bool TokyoTyrantQuery::rewind ( void )

Rewind the resultset and executes the query if it has not been executed. Part of the Iterator interface.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE

Примеры

Пример #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

pk: 1, columns: 2
pk: 4, columns: 2

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


Searches records

  • « TokyoTyrantQuery::rewind
  • TokyoTyrantQuery::setLimit »
  • PHP Manual
  • TokyoTyrantQuery
  • Searches records

TokyoTyrantQuery::search

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::search — Searches records

Описание

public array TokyoTyrantQuery::search ( void )

Executes a search on the table database. Returns an array of arrays containing the matching records. In the returned array the first level is the primary key of the data and the second level is the row data.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the matching rows and throws TokyoTyrantException on error

Примеры

Пример #1 TokyoTyrantQuery::search() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "not here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Dump the search results */
var_dump($query->search());
?>

Результат выполнения данного примера:

array(2) {
  [1]=>
  array(2) {
    ["column1"]=>
    string(9) "some data"
    ["column2"]=>
    string(14) "something here"
  }
  [4]=>
  array(2) {
    ["column45"]=>
    string(11) "random data"
    ["column2"]=>
    string(25) "something along the lines"
  }
}

Смотрите также

  • TokyoTyrantQuery::out() - Removes records based on query
  • TokyoTyrantQuery::metaSearch() - Retrieve records with multiple queries


Limit results

  • « TokyoTyrantQuery::search
  • TokyoTyrantQuery::setOrder »
  • PHP Manual
  • TokyoTyrantQuery
  • Limit results

TokyoTyrantQuery::setLimit

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::setLimit — Limit results

Описание

public mixed TokyoTyrantQuery::setLimit ([ int $max [, int $skip ]] )

Set the maximum amount of records to return on a query.

Список параметров

max

Maximum amount of records. Default: -1

skip

How many records to skip from the start. Default: -1

Возвращаемые значения

This method returns the current object and throws TokyoTyrantException on failure.


Orders results

  • « TokyoTyrantQuery::setLimit
  • TokyoTyrantQuery::valid »
  • PHP Manual
  • TokyoTyrantQuery
  • Orders results

TokyoTyrantQuery::setOrder

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::setOrder — Orders results

Описание

public mixed TokyoTyrantQuery::setOrder ( string $name , int $type )

Sets the order of a query

Список параметров

name

The column name to apply the ordering on.

type

The type can be one of the following constants:

  • TokyoTyrant::RDBQO_STRASC - String ascending
  • TokyoTyrant::RDBQO_STRDESC - String descending
  • TokyoTyrant::RDBQO_NUMASC - Numberic ascending
  • TokyoTyrant::RDBQO_NUMDESC - String descending

Возвращаемые значения

This method returns the current object.


Checks the validity of current item

  • « TokyoTyrantQuery::setOrder
  • TokyoTyrantIterator »
  • PHP Manual
  • TokyoTyrantQuery
  • Checks the validity of current item

TokyoTyrantQuery::valid

(PECL tokyo_tyrant >= 0.1.0)

TokyoTyrantQuery::valid — Checks the validity of current item

Описание

public bool TokyoTyrantQuery::valid ( void )

Checks if the current item is valid. Part of the Iterator interface

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the current item is valid and FALSE if not.

Примеры

Пример #1 TokyoTyrantQuery iterator example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Add rows */
$tt->put(null, array("column1" => "some data", "column2" => "something here"));
$tt->put(null, array("column1" => "more data", "column2" => "best data this far"));
$tt->put(null, array("column1" => "again data", "column3" => "foobar here"));
$tt->put(null, array("column45" => "random data", "column2" => "something along the lines"));
$tt->put(null, array("column21" => "test data", "column2" => "generating.."));
$tt->put(null, array("column1" => "foobar data", "column2" => "value here"));

/* Get a new query object */
$query = $tt->getQuery();

/* Add a search condition */
$query->addCond("column2", TokyoTyrant::RDBQC_STROR, "something");

/* Iterate the results */
foreach ($query as $key => $value) {
    echo "pk: $key, columns: ", count($value) ,"\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

pk: 1, columns: 2
pk: 4, columns: 2

Смотрите также

  • TokyoTyrantQuery::addCond() - Adds a condition to the query


The TokyoTyrantIterator class

(PECL tokyo_tyrant >= 0.2.0)

Введение

Provides an iterator for TokyoTyrant and TokyoTyrantTable objects. The iterator iterates over all keys and values in the database. TokyoTyrantIterator was added in version 0.2.0.

Обзор классов

TokyoTyrantIterator implements Iterator {
/* Methods */
public __construct ( mixed $object )
public mixed current ( void )
public mixed key ( void )
public mixed next ( void )
public void rewind ( void )
public bool valid ( void )
/* Inherited methods */
public number TokyoTyrant::add ( string $key , number $increment [, int $type = 0 ] )
public TokyoTyrant TokyoTyrant::connect ( string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]] )
public TokyoTyrant TokyoTyrant::connectUri ( string $uri )
public TokyoTyrant::__construct ([ string $host [, int $port = TokyoTyrant::RDBDEF_PORT [, array $options ]]] )
public TokyoTyrant TokyoTyrant::copy ( string $path )
public string TokyoTyrant::ext ( string $name , int $options , string $key , string $value )
public array TokyoTyrant::fwmKeys ( string $prefix , int $max_recs )
public mixed TokyoTyrant::get ( mixed $keys )
public TokyoTyrantIterator TokyoTyrant::getIterator ( void )
public int TokyoTyrant::num ( void )
public TokyoTyrant TokyoTyrant::out ( mixed $keys )
public TokyoTyrant TokyoTyrant::put ( mixed $keys [, string $value = NULL ] )
public TokyoTyrant TokyoTyrant::putCat ( mixed $keys [, string $value ] )
public TokyoTyrant TokyoTyrant::putKeep ( mixed $keys [, string $value ] )
public TokyoTyrant TokyoTyrant::putNr ( mixed $keys [, string $value = NULL ] )
public mixed TokyoTyrant::putShl ( string $key , string $value , int $width )
public mixed TokyoTyrant::restore ( string $log_dir , int $timestamp [, bool $check_consistency = true ] )
public mixed TokyoTyrant::setMaster ( string $host , int $port , int $timestamp [, bool $check_consistency = true ] )
public int TokyoTyrant::size ( string $key )
public array TokyoTyrant::stat ( void )
public mixed TokyoTyrant::sync ( void )
public TokyoTyrant TokyoTyrant::tune ( float $timeout [, int $options = TokyoTyrant::RDBT_RECON ] )
public mixed TokyoTyrant::vanish ( void )
}

Содержание

  • TokyoTyrantIterator::__construct — Construct an iterator
  • TokyoTyrantIterator::current — Get the current value
  • TokyoTyrantIterator::key — Returns the current key
  • TokyoTyrantIterator::next — Move to next key
  • TokyoTyrantIterator::rewind — Rewinds the iterator
  • TokyoTyrantIterator::valid — Rewinds the iterator


Construct an iterator

  • « TokyoTyrantIterator
  • TokyoTyrantIterator::current »
  • PHP Manual
  • TokyoTyrantIterator
  • Construct an iterator

TokyoTyrantIterator::__construct

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::__construct — Construct an iterator

Описание

public TokyoTyrantIterator::__construct ( mixed $object )

Construct a new TokyoTyrantIterator object. One connection can have multiple iterators but it is not quaranteed that all items are traversed in that case. object parameter can be either an of instance TokyoTyrant or TokyoTyrantTable.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Throws an exception if iterator initialization fails.

Примеры

Пример #1 TokyoTyrantIterator::__construct() example

<?php
/* Connect to a table database */
$tt = new TokyoTyrantTable("localhost", 1979);

/* Passing null to put generates a new uid */
$index = $tt->put(null, array("column1" => "some data", "column2" => "more data"));

/* Construct an iterator */
$it = new TokyoTyrantIterator($tt);

foreach ($it as $value) {
    var_dump($value);
}
?>

Результат выполнения данного примера:

array(2) {
  ["column1"]=>
  string(9) "some data"
  ["column2"]=>
  string(9) "more data"
}

Смотрите также

  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator
  • TokyoTyrantIterator::key() - Returns the current key


Get the current value

  • « TokyoTyrantIterator::__construct
  • TokyoTyrantIterator::key »
  • PHP Manual
  • TokyoTyrantIterator
  • Get the current value

TokyoTyrantIterator::current

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::current — Get the current value

Описание

public mixed TokyoTyrantIterator::current ( void )

Returns the current value during iteration.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value on success and false on failure.

Смотрите также

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


Returns the current key

  • « TokyoTyrantIterator::current
  • TokyoTyrantIterator::next »
  • PHP Manual
  • TokyoTyrantIterator
  • Returns the current key

TokyoTyrantIterator::key

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::key — Returns the current key

Описание

public mixed TokyoTyrantIterator::key ( void )

Returns the current key.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current key on success and false on failure.

Смотрите также

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


Move to next key

  • « TokyoTyrantIterator::key
  • TokyoTyrantIterator::rewind »
  • PHP Manual
  • TokyoTyrantIterator
  • Move to next key

TokyoTyrantIterator::next

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::next — Move to next key

Описание

public mixed TokyoTyrantIterator::next ( void )

Move to next key during iteration and return it's value.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the next value on success and false on failure.

Смотрите также

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


Rewinds the iterator

  • « TokyoTyrantIterator::next
  • TokyoTyrantIterator::valid »
  • PHP Manual
  • TokyoTyrantIterator
  • Rewinds the iterator

TokyoTyrantIterator::rewind

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::rewind — Rewinds the iterator

Описание

public void TokyoTyrantIterator::rewind ( void )

Rewinds the iterator for new iteration. Called automatically at the beginning of foreach.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Throws TokyoTyrantException if iterator initialization fails.

Смотрите также

  • TokyoTyrantIterator::valid() - Rewinds the iterator
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind()


Rewinds the iterator

  • « TokyoTyrantIterator::rewind
  • TokyoTyrantException »
  • PHP Manual
  • TokyoTyrantIterator
  • Rewinds the iterator

TokyoTyrantIterator::valid

(PECL tokyo_tyrant >= 0.2.0)

TokyoTyrantIterator::valid — Rewinds the iterator

Описание

public bool TokyoTyrantIterator::valid ( void )

Checks whether the internal pointer points to valid element.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the current item is valid and FALSE if not.

Смотрите также

  • TokyoTyrantIterator::key() - Returns the current key
  • TokyoTyrantIterator::current() - Get the current value
  • TokyoTyrantIterator::next() - Move to next key
  • TokyoTyrantIterator::rewind() - Rewinds the iterator


The TokyoTyrantException class

(PECL tokyo_tyrant >= 0.1.0)

Введение

TokyoTyrantException

Обзор классов

tokyotyrantexception extends Exception {
/* Свойства */
protected int $code ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Свойства

code

The exception code. This can be compared to TokyoTyrant::TTE_* constants


Расширения для работы с датой и временем

  • Календарь
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Календарь
  • Дата/Время — Дата и Время
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • DateTime — Класс DateTime
    • DateTimeImmutable — Класс DateTimeImmutable
    • DateTimeInterface — Интерфейс DateTimeInterface
    • DateTimeZone — Класс DateTimeZone
    • DateInterval — Класс DateInterval
    • DatePeriod — Класс DatePeriod
    • Функции даты и времени
    • Допустимые форматы Даты/Времени
    • Список поддерживаемых временных зон
  • HRTime — High resolution timing
    • Введение
    • Установка и настройка
    • Примеры
    • HRTime\PerformanceCounter — The HRTime\PerformanceCounter class
    • HRTime\StopWatch — The HRTime\StopWatch class
    • HRTime\Unit — The HRTime\Unit class


Календарь

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Календарь
    • cal_days_in_month — Возвращает количество дней в месяце для заданного года и календаря
    • cal_from_jd — Преобразует дату, заданную в юлианском календаре, в дату указанного календаря
    • cal_info — Возвращает информацию о заданном календаре
    • cal_to_jd — Преобразует заданную дату в Юлианское исчисление
    • easter_date — Метка времени Unix соответствующая полуночи на Пасху в заданном году
    • easter_days — Получение количества дней между 21 марта и Пасхой в заданном году
    • frenchtojd — Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении
    • gregoriantojd — Преобразует дату по Григорианскому календарю в количество дней в Юлианском летоисчислении
    • jddayofweek — Возвращает день недели
    • jdmonthname — Возвращает название месяца
    • jdtofrench — Переводит число дней в Юлианском летоисчислении в дату по Французскому республиканскому календарю
    • jdtogregorian — Переводит число дней в Юлианском летоисчислении в дату по Григорианскому календарю
    • jdtojewish — Переводит число дней в Юлианском летоисчислении в дату по Иудейскому календарю
    • jdtojulian — Переводит число дней в Юлианском летоисчислении в дату по Юлианскому календарю
    • jdtounix — Переводит число дней в Юлианском летоисчислении в метку времени Unix
    • jewishtojd — Переводит дату по Иудейскому календарю в число дней в Юлианском летоисчислении
    • juliantojd — Переводит дату по Юлианскому календарю в число дней в Юлианском летоисчислении
    • unixtojd — Переводит метку времени Unix в Юлианский день


Введение

Расширение календарь предоставляет ряд функций для упрощения перевода дат из одного формата в другой. Промежуточной датой или стандартом является исчисление с Юлианского дня. Исчисление с Юлианского дня - это исчисление, начинающееся с 1 января 4713г. до н.э. Для конвертации между календарными форматами сначала нужно перевести дату в Юлианское исчисление, а затем в любой другой календарный формат на ваш выбор. Юлианское исчисление сильно отличается от Юлианского календаря! Для более подробной информации посетите страницу » http://www.hermetic.ch/cal_stud/jdn.htm. Подробная информации по календарным форматам: » http://www.fourmilab.ch/documents/calendar/. Выдержки из этой страницы включены в инструкцию и заключены в кавычки.


Установка

Для работы с данными функциями нужно скомпилировать PHP c --enable-calendar .

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

CAL_EASTER_DEFAULT (integer)
CAL_EASTER_ROMAN (integer)
CAL_EASTER_ALWAYS_GREGORIAN (integer)
CAL_EASTER_ALWAYS_JULIAN (integer)
CAL_GREGORIAN (integer)
CAL_JULIAN (integer)
CAL_JEWISH (integer)
CAL_JEWISH_ADD_ALAFIM_GERESH (integer)
CAL_JEWISH_ADD_ALAFIM (integer)
CAL_JEWISH_ADD_GERESHAYIM (integer)
CAL_FRENCH (integer)
CAL_NUM_CALS (integer)
CAL_DOW_DAYNO (integer)
CAL_DOW_SHORT (integer)
CAL_DOW_LONG (integer)
CAL_MONTH_GREGORIAN_SHORT (integer)
CAL_MONTH_GREGORIAN_LONG (integer)
CAL_MONTH_JULIAN_SHORT (integer)
CAL_MONTH_JULIAN_LONG (integer)
CAL_MONTH_JEWISH (integer)
CAL_MONTH_FRENCH (integer)


Календарь

Содержание

  • cal_days_in_month — Возвращает количество дней в месяце для заданного года и календаря
  • cal_from_jd — Преобразует дату, заданную в юлианском календаре, в дату указанного календаря
  • cal_info — Возвращает информацию о заданном календаре
  • cal_to_jd — Преобразует заданную дату в Юлианское исчисление
  • easter_date — Метка времени Unix соответствующая полуночи на Пасху в заданном году
  • easter_days — Получение количества дней между 21 марта и Пасхой в заданном году
  • frenchtojd — Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении
  • gregoriantojd — Преобразует дату по Григорианскому календарю в количество дней в Юлианском летоисчислении
  • jddayofweek — Возвращает день недели
  • jdmonthname — Возвращает название месяца
  • jdtofrench — Переводит число дней в Юлианском летоисчислении в дату по Французскому республиканскому календарю
  • jdtogregorian — Переводит число дней в Юлианском летоисчислении в дату по Григорианскому календарю
  • jdtojewish — Переводит число дней в Юлианском летоисчислении в дату по Иудейскому календарю
  • jdtojulian — Переводит число дней в Юлианском летоисчислении в дату по Юлианскому календарю
  • jdtounix — Переводит число дней в Юлианском летоисчислении в метку времени Unix
  • jewishtojd — Переводит дату по Иудейскому календарю в число дней в Юлианском летоисчислении
  • juliantojd — Переводит дату по Юлианскому календарю в число дней в Юлианском летоисчислении
  • unixtojd — Переводит метку времени Unix в Юлианский день


Возвращает количество дней в месяце для заданного года и календаря

  • « Календарь
  • cal_from_jd »
  • PHP Manual
  • Календарь
  • Возвращает количество дней в месяце для заданного года и календаря

cal_days_in_month

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_days_in_month — Возвращает количество дней в месяце для заданного года и календаря

Описание

int cal_days_in_month ( int $calendar , int $month , int $year )

Эта функция возвращает количество дней в месяце month года year для заданного календаря calendar.

Список параметров

calendar

Календарь, используемый для вычисления

month

Месяц в выбранном календаре

year

Год в выбранном календаре

Возвращаемые значения

Количество дней в конкретном месяце выбранного календаря

Примеры

Пример #1 Пример использования cal_days_in_month()

<?php
$number = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "Всего {$number} дней в Августе 2003 года";
?>


Преобразует дату, заданную в юлианском календаре, в дату указанного календаря

  • « cal_days_in_month
  • cal_info »
  • PHP Manual
  • Календарь
  • Преобразует дату, заданную в юлианском календаре, в дату указанного календаря

cal_from_jd

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_from_jd — Преобразует дату, заданную в юлианском календаре, в дату указанного календаря

Описание

array cal_from_jd ( int $jd , int $calendar )

cal_from_jd() преобразует дату юлианского календаря, заданную в jd, в дату указанного календаря calendar. Поддерживаемые значения calendar: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH и CAL_FRENCH.

Список параметров

jd

День юлианского календаря как целое число

calendar

Календарь, в который нужно преобразовать дату

Возвращаемые значения

Возвращает массив, содержащий информацию о дате, такую как месяц, день, год, день недели, сокращенное и полное название дня недели, месяца и дату в форме "месяц/день/год".

Примеры

Пример #1 Пример использования cal_from_jd()

<?php
$today = unixtojd(mktime(0, 0, 0, 8, 16, 2003));
print_r(cal_from_jd($today, CAL_GREGORIAN));
?>

Результат выполнения данного примера:

Array
(
    [date] => 8/16/2003
    [month] => 8
    [day] => 16
    [year] => 2003
    [dow] => 6
    [abbrevdayname] => Sat
    [dayname] => Saturday
    [abbrevmonth] => Aug
    [monthname] => August
)

Смотрите также

  • cal_to_jd() - Преобразует заданную дату в Юлианское исчисление
  • jdtofrench() - Переводит число дней в Юлианском летоисчислении в дату по Французскому республиканскому календарю
  • jdtogregorian() - Переводит число дней в Юлианском летоисчислении в дату по Григорианскому календарю
  • jdtojewish() - Переводит число дней в Юлианском летоисчислении в дату по Иудейскому календарю
  • jdtojulian() - Переводит число дней в Юлианском летоисчислении в дату по Юлианскому календарю
  • jdtounix() - Переводит число дней в Юлианском летоисчислении в метку времени Unix


Возвращает информацию о заданном календаре

  • « cal_from_jd
  • cal_to_jd »
  • PHP Manual
  • Календарь
  • Возвращает информацию о заданном календаре

cal_info

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_info — Возвращает информацию о заданном календаре

Описание

array cal_info ([ int $calendar = -1 ] )

cal_info() возвращает информацию о заданном календаре calendar.

Информация о календаре возвращается в виде массива с полями calname, calsymbol, month, abbrevmonth и maxdaysinmonth В качестве calendar могут быть использованы следующие календари:

  • 0 or CAL_GREGORIAN - Грегорианский календарь
  • 1 or CAL_JULIAN - Юлианский календарь
  • 2 or CAL_JEWISH - Еврейский календарь
  • 3 or CAL_FRENCH - Календарь со дня Французской революции

Если параметр calendar не задан, возвращается информация обо всех календарях в виде массива.

Список параметров

calendar

Календарь, о котором будет возвращена информация. Если параметр не задан, возвращается информация обо всех календарях.

Возвращаемые значения

Примеры

Пример #1 Пример cal_info()

<?php
$info = cal_info(0);
print_r($info);
?>

Результат выполнения данного примера:

Array
(
    [months] => Array
        (
            [1] => January
            [2] => February
            [3] => March
            [4] => April
            [5] => May
            [6] => June
            [7] => July
            [8] => August
            [9] => September
            [10] => October
            [11] => November
            [12] => December
        )

    [abbrevmonths] => Array
        (
            [1] => Jan
            [2] => Feb
            [3] => Mar
            [4] => Apr
            [5] => May
            [6] => Jun
            [7] => Jul
            [8] => Aug
            [9] => Sep
            [10] => Oct
            [11] => Nov
            [12] => Dec
        )

    [maxdaysinmonth] => 31
    [calname] => Gregorian
    [calsymbol] => CAL_GREGORIAN
)


Преобразует заданную дату в Юлианское исчисление

  • « cal_info
  • easter_date »
  • PHP Manual
  • Календарь
  • Преобразует заданную дату в Юлианское исчисление

cal_to_jd

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cal_to_jd — Преобразует заданную дату в Юлианское исчисление

Описание

int cal_to_jd ( int $calendar , int $month , int $day , int $year )

cal_to_jd() рассчитывает количество дней с начала Юлианской эпохи до даты в заданном календаре calendar. Список поддерживаемых календарей calendar: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH и CAL_FRENCH.

Список параметров

calendar

Календарь, из которого будет произведена конвертация, один из: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH или CAL_FRENCH.

month

Месяц в виде числа, разрешенное значение зависит от календаря calendar.

day

День в виде числа, разрешенное значение зависит от календаря calendar.

year

Год в виде числа, разрешенное значение зависит от календаря calendar.

Возвращаемые значения

Число дней в Юлианском исчислении.

Смотрите также

  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря
  • frenchtojd() - Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении
  • gregoriantojd() - Преобразует дату по Григорианскому календарю в количество дней в Юлианском летоисчислении
  • jewishtojd() - Переводит дату по Иудейскому календарю в число дней в Юлианском летоисчислении
  • juliantojd() - Переводит дату по Юлианскому календарю в число дней в Юлианском летоисчислении
  • unixtojd() - Переводит метку времени Unix в Юлианский день


Метка времени Unix соответствующая полуночи на Пасху в заданном году

  • « cal_to_jd
  • easter_days »
  • PHP Manual
  • Календарь
  • Метка времени Unix соответствующая полуночи на Пасху в заданном году

easter_date

(PHP 4, PHP 5, PHP 7)

easter_date — Метка времени Unix соответствующая полуночи на Пасху в заданном году

Описание

int easter_date ([ int $year = date("Y") ] )

Возвращает метку времени Unix соответствующую полуночи на Пасху в заданном году.

Внимание

Функция выдаст предупреждение, если заданный год будет выходить за пределы диапазона меток времени Unix (с 1970 по 2037 гг).

Дата Пасхального дня была введена Консулом Никеи в 325 году до н.э. Это первое воскресенье, следующее за первым полнолунием после весеннего равноденствия. Днем весеннего равноденствия принято считать 21 марта, так что расчет дня Пасхи сводится к определению даты полнолуния и следующего за ней воскресенья. Используемый здесь алгоритм введен Дионисием Малым в 532 году. В Юлианском летоисчислении (до 1753 года) для отслеживания фаз луны использовался простой 19-летний цикл. В Грегорианском календаре (годы после 1753 - разработан Христофором Клавиусом и Алоизием Лилиусом и введен Папой Григорием XIII в октябре 1582г., а в Великобритании и ее колониях в сентябре 1752г.) было добавлено 2 поправочных коэффициента увеличивающих точность расчета дат.

Список параметров

year

Год - число между 1970 и 2037. Если не указан, то по умолчанию равен текущему года, согласно местному времени.

Возвращаемые значения

Дата Пасхи в виде метки времени Unix.

Примеры

Пример #1 Пример использования easter_date()

<?php

echo date("M-d-Y", easter_date(1999));        // Apr-04-1999
echo date("M-d-Y", easter_date(2000));        // Apr-23-2000
echo date("M-d-Y", easter_date(2001));        // Apr-15-2001

?>

Примечания

Замечание:

Функция easter_date() зависит от вашей системной библиотеки C функций работы со временем, а не от внутренних функций PHP. Как следствие, функция easter_date() использует переменную окружения TZ для определения временной зоны, которую она использует, а не заданную в PHP временную зону по умолчанию. Это может привести к неожиданному поведению при использовании этой функции совместно с другими функциями для работы с датами в PHP.

Решением может стать использование функции easter_days() с объектами DateTime и DateInterval для подсчета начала Пасхи в вашей временной зоне, как в этом примере:

<?php
function get_easter_datetime($year) {
    $base = new DateTime("$year-03-21");
    $days = easter_days($year);

    return $base->add(new DateInterval("P{$days}D"));
}

foreach (range(2012, 2015) as $year) {
    printf("Пасха в %d году приходится на %s\n",
           $year,
           get_easter_datetime($year)->format('F j'));
}
?>

Результат выполнения данного примера:

Пасха в 2012 году приходится на April 8
Пасха в 2013 году приходится на March 31
Пасха в 2014 году приходится на April 20
Пасха в 2015 году приходится на April 5

Смотрите также

  • Функция easter_days() - Получение количества дней между 21 марта и Пасхой в заданном году расчета дня Пасхи для годов до 1970 или после 2037


Получение количества дней между 21 марта и Пасхой в заданном году

  • « easter_date
  • frenchtojd »
  • PHP Manual
  • Календарь
  • Получение количества дней между 21 марта и Пасхой в заданном году

easter_days

(PHP 4, PHP 5, PHP 7)

easter_days — Получение количества дней между 21 марта и Пасхой в заданном году

Описание

int easter_days ([ int $year = date("Y") [, int $method = CAL_EASTER_DEFAULT ]] )

Возвращает количество дней между 21 марта и Пасхой в заданном году. Если год не указан, расчет будет произведен для текущего года.

Эту функцию можно использовать вместо easter_date() для расчета даты Пасхи для дат, выходящих за рамки диапазона меток времени Unix (с 1970 по 2037 годы).

Дата Пасхального дня была введена Консулом Никеи в 325 году до н.э. Это первое воскресенье, следующее за первым полнолунием после весеннего равноденствия. Днем весеннего равноденствия принято считать 21 марта, так что расчет дня Пасхи сводится к определению даты полнолуния и следующего за ней воскресенья. Используемый здесь алгоритм введен Дионисием Малым в 532 году. В Юлианском летоисчислении (до 1753 года) для отслеживания фаз луны использовался простой 19-летний цикл. В Грегорианском календаре (годы после 1753 - разработан Христофором Клавиусом и Алоизием Лилиусом и введен Папой Григорием XIII в октябре 1582г., а в Великобритании и ее колониях в сентябре 1752г.) было добавлено 2 поправочных коэффициента увеличивающих точность расчета дат.

Список параметров

year

Год, положительное число. Если не задан, используется текущий год в соответствии с локальным временем сервера.

method

Позволяет расcчитать Пасхальные даты, основываясь на Григорианском календаре для 1582 - 1752 годов, если установить CAL_EASTER_ROMAN. См. список констант календаря, чтобы узнать о всех допустимых константах.

Возвращаемые значения

Количество дней между 21 марта и Пасхальным воскресеньем в заданном году year.

Примеры

Пример #1 Пример использования easter_days()

<?php

echo easter_days(1999);        // 14, т.e. April 4
echo easter_days(1492);        // 32, т.e. April 22
echo easter_days(1913);        //  2, т.e. March 23

?>

Смотрите также

  • easter_date() - Метка времени Unix соответствующая полуночи на Пасху в заданном году


Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении

  • « easter_days
  • gregoriantojd »
  • PHP Manual
  • Календарь
  • Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении

frenchtojd

(PHP 4, PHP 5, PHP 7)

frenchtojd — Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении

Описание

int frenchtojd ( int $month , int $day , int $year )

Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении.

Функция преобразует даты только с 1 по 14 годов (Григорианские даты с 22 сентября 1792г. по 22 сентября 1806г.) Это с лихвой покрывает период, когда этот календарь использовался.

Список параметров

month

Месяц в виде числа от 1 (для месяца Vendemiaire) до 13 (для периода 5-6 дней в конце каждого года)

day

День в виде числа от 1 до 30

year

Год в виде числа между 1 и 14

Возвращаемые значения

Число (integer) дней в Юлианском летоисчислении для заданной даты по Французскому республиканскому календарю.

Смотрите также

  • jdtofrench() - Переводит число дней в Юлианском летоисчислении в дату по Французскому республиканскому календарю
  • cal_to_jd() - Преобразует заданную дату в Юлианское исчисление


Преобразует дату по Григорианскому календарю в количество дней в Юлианском летоисчислении

  • « frenchtojd
  • jddayofweek »
  • PHP Manual
  • Календарь
  • Преобразует дату по Григорианскому календарю в количество дней в Юлианском летоисчислении

gregoriantojd

(PHP 4, PHP 5, PHP 7)

gregoriantojd — Преобразует дату по Григорианскому календарю в количество дней в Юлианском летоисчислении

Описание

int gregoriantojd ( int $month , int $day , int $year )

Разрешенный диапазон дат для Григорианского календаря с 4714 года до н.э. по 9999 год н.э.

Несмотря на возможность обработки дат вплоть до 4714 года до н.э., такое использование имеет мало смысла. Григорианский календарь не существовал до 15 октября 1582 года (или 5 октября 1582 в Юлианском календаре). Некоторые страны не переходили на этот календарь очень долгое время. Например, Великобритания совершила переход в 1752 году, СССР в 1918г., Греция в 1923г. Большинство стран Европы предпочитали Юлианский календарь Григорианскому.

Список параметров

month

Месяц в виде числа от 1 (январь) до 12 (декабрь)

day

День в виде числа от 1 до 31

year

Года в виде числа от -4714 до 9999

Возвращаемые значения

Число дней (integer) в Юлианском летоисчислении для даты по Григорианскому календарю.

Примеры

Пример #1 Календарные функции

<?php
$jd = GregorianToJD(10, 11, 1970);
echo "$jd\n";
$gregorian = JDToGregorian($jd);
echo "$gregorian\n";
?>

Смотрите также

  • jdtogregorian() - Переводит число дней в Юлианском летоисчислении в дату по Григорианскому календарю
  • cal_to_jd() - Преобразует заданную дату в Юлианское исчисление


Возвращает день недели

  • « gregoriantojd
  • jdmonthname »
  • PHP Manual
  • Календарь
  • Возвращает день недели

jddayofweek

(PHP 4, PHP 5, PHP 7)

jddayofweek — Возвращает день недели

Описание

mixed jddayofweek ( int $julianday [, int $mode = CAL_DOW_DAYNO ] )

Возвращает день недели. Может возвращать строку или число в зависимости от режима работы.

Список параметров

julianday

День в виде числа в Юлианском летоисчислении

mode
Режимы отображения дней недели
Режим | Значение
0 (По умолчанию) | День недели возвращается в виде числа (0=Воскресенье, 1=Понедельник и т.д.)
1 | Возвращается строка содержащая день недели (Английский-Григорианский)
2 | Возвращается строка содержащая аббревиатуру дня недели (Английскую-Григорианскую)

Возвращаемые значения

День недели по григорианскому календарю в виде строки или числа.


Возвращает название месяца

  • « jddayofweek
  • jdtofrench »
  • PHP Manual
  • Календарь
  • Возвращает название месяца

jdmonthname

(PHP 4, PHP 5, PHP 7)

jdmonthname — Возвращает название месяца

Описание

string jdmonthname ( int $julianday , int $mode )

Возвращает строку содержащую наименование месяца. mode задает режим работы функции преобразования из числа дней в юлианском летоисчислении, а также определяет тип возвращаемого значения названия месяца.

Режимы работы
Режим | Название месяца | Значения
0 | Григорианское - сокращенное | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
1 | Григорианское | January, February, March, April, May, June, July, August, September, October, November, December
2 | Юлианское - сокращенное | Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
3 | Юлианское | January, February, March, April, May, June, July, August, September, October, November, December
4 | Иудейское | Tishri, Heshvan, Kislev, Tevet, Shevat, AdarI, AdarII, Nisan, Iyyar, Sivan, Tammuz, Av, Elul
5 | Французское Республиканское | Vendemiaire, Brumaire, Frimaire, Nivose, Pluviose, Ventose, Germinal, Floreal, Prairial, Messidor, Thermidor, Fructidor, Extra

Список параметров

jday

Число дней в Юлианском летоисчислении, которое требуется преобразовать

calendar

Календарь, из которого будет взято название месяца

Возвращаемые значения

Название месяца для заданного Юлианского Дня соответствующее календарю calendar.


Переводит число дней в Юлианском летоисчислении в дату по Французскому республиканскому календарю

  • « jdmonthname
  • jdtogregorian »
  • PHP Manual
  • Календарь
  • Переводит число дней в Юлианском летоисчислении в дату по Французскому республиканскому календарю

jdtofrench

(PHP 4, PHP 5, PHP 7)

jdtofrench — Переводит число дней в Юлианском летоисчислении в дату по Французскому республиканскому календарю

Описание

string jdtofrench ( int $juliandaycount )

Переводит число дней в Юлианском летоисчислении в дату по Французскому республиканскому календарю

Список параметров

julianday

Номер дня в Юлианском летоисчислении

Возвращаемые значения

Дата со дня французской революции в виде строки формата "месяц/день/год"

Смотрите также

  • frenchtojd() - Преобразует дату Французского республиканского календаря в количество дней в Юлианском летоисчислении
  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря


Переводит число дней в Юлианском летоисчислении в дату по Григорианскому календарю

  • « jdtofrench
  • jdtojewish »
  • PHP Manual
  • Календарь
  • Переводит число дней в Юлианском летоисчислении в дату по Григорианскому календарю

jdtogregorian

(PHP 4, PHP 5, PHP 7)

jdtogregorian — Переводит число дней в Юлианском летоисчислении в дату по Григорианскому календарю

Описание

string jdtogregorian ( int $julianday )

Переводит число дней в Юлианском летоисчислении в строку содержащую Григорианскую дату в формате "месяц/день/год".

Список параметров

julianday

Номер дня в Юлианском летоисчислении

Возвращаемые значения

Дата по Григорианскому календарю в виде строки формата "месяц/день/год"

Смотрите также

  • gregoriantojd() - Преобразует дату по Григорианскому календарю в количество дней в Юлианском летоисчислении
  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря


Переводит число дней в Юлианском летоисчислении в дату по Иудейскому календарю

  • « jdtogregorian
  • jdtojulian »
  • PHP Manual
  • Календарь
  • Переводит число дней в Юлианском летоисчислении в дату по Иудейскому календарю

jdtojewish

(PHP 4, PHP 5, PHP 7)

jdtojewish — Переводит число дней в Юлианском летоисчислении в дату по Иудейскому календарю

Описание

string jdtojewish ( int $juliandaycount [, bool $hebrew = false [, int $fl = 0 ]] )

Переводит число дней в Юлианском летоисчислении в дату по Иудейскому календарю.

Список параметров

julianday

Номер дня в Юлианском летоисчислении

hebrew

Если аргумент hebrew установлен в TRUE, дата будет возвращена в виде строки в Иудейском формате заданном аргументом fl.

fl

Доступные форматы вывода даты: CAL_JEWISH_ADD_ALAFIM_GERESH, CAL_JEWISH_ADD_ALAFIM, CAL_JEWISH_ADD_GERESHAYIM.

Возвращаемые значения

Дата по Иудейскому календарю в виде строки формата "месяц/день/год"

Примеры

Пример #1 Пример использования jdtojewish()

<?php
echo jdtojewish(gregoriantojd(10, 8, 2002), true,
       CAL_JEWISH_ADD_GERESHAYIM + CAL_JEWISH_ADD_ALAFIM + CAL_JEWISH_ADD_ALAFIM_GERESH);
?>

Смотрите также

  • jewishtojd() - Переводит дату по Иудейскому календарю в число дней в Юлианском летоисчислении
  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря


Переводит число дней в Юлианском летоисчислении в дату по Юлианскому календарю

  • « jdtojewish
  • jdtounix »
  • PHP Manual
  • Календарь
  • Переводит число дней в Юлианском летоисчислении в дату по Юлианскому календарю

jdtojulian

(PHP 4, PHP 5, PHP 7)

jdtojulian — Переводит число дней в Юлианском летоисчислении в дату по Юлианскому календарю

Описание

string jdtojulian ( int $julianday )

Переводит число дней в Юлианском летоисчислении в строку содержащую дату по Юлианскому календарю в формате "месяц/день/год".

Список параметров

julianday

Номер дня в Юлианском летоисчислении

Возвращаемые значения

Дата по Юлианскому календарю в виде строки формата "месяц/день/год"

Смотрите также

  • juliantojd() - Переводит дату по Юлианскому календарю в число дней в Юлианском летоисчислении
  • cal_from_jd() - Преобразует дату, заданную в юлианском календаре, в дату указанного календаря


Переводит число дней в Юлианском летоисчислении в метку времени Unix

  • « jdtojulian
  • jewishtojd »
  • PHP Manual
  • Календарь
  • Переводит число дней в Юлианском летоисчислении в метку времени Unix

jdtounix

(PHP 4, PHP 5, PHP 7)

jdtounix — Переводит число дней в Юлианском летоисчислении в метку времени Unix

Описание

int jdtounix ( int $jday )

Эта функция вернет метку времени Unix соответствующую номеру дня в Юлианском летоисчислении, заданному в jday либо FALSE, если jday лежит за пределами эпохи Unix (годы по Григорианскому календарю между 1970 и 2037 или 2440588 <= jday <= 2465342 ). Будет возвращено локальное время (не GMT).

Список параметров

jday

Номер дня в Юлианском летоисчислении между 2440588 и 2465342.

Возвращаемые значения

Метка времени Unix на момент начала юлианского дня.

Смотрите также

  • unixtojd() - Переводит метку времени Unix в Юлианский день


Переводит дату по Иудейскому календарю в число дней в Юлианском летоисчислении

  • « jdtounix
  • juliantojd »
  • PHP Manual
  • Календарь
  • Переводит дату по Иудейскому календарю в число дней в Юлианском летоисчислении

jewishtojd

(PHP 4, PHP 5, PHP 7)

jewishtojd — Переводит дату по Иудейскому календарю в число дней в Юлианском летоисчислении

Описание

int jewishtojd ( int $month , int $day , int $year )

Несмотря на то, что функция может обрабатывать даты вплоть до 1-го года (3761 до н.э.), практически преобразование для таких ранних дат не имеет смысла. Иудейский календарь использовался несколько тысяч лет, но давние времена не было формулы для расчета начала месяца. Новый месяц начинался с того момента как впервые можно было наблюдать новую луну.

Список параметров

month

Номер месяца в виде числа от 1 до 13

day

Номер дня в виде числа от 1 до 30

year

Год в виде числа от 1 до 9999

Возвращаемые значения

Номер дня в Юлианском летоисчислении в виде числа для заданной иудейской даты.

Смотрите также

  • jdtojewish() - Переводит число дней в Юлианском летоисчислении в дату по Иудейскому календарю
  • cal_to_jd() - Преобразует заданную дату в Юлианское исчисление


Переводит дату по Юлианскому календарю в число дней в Юлианском летоисчислении

  • « jewishtojd
  • unixtojd »
  • PHP Manual
  • Календарь
  • Переводит дату по Юлианскому календарю в число дней в Юлианском летоисчислении

juliantojd

(PHP 4, PHP 5, PHP 7)

juliantojd — Переводит дату по Юлианскому календарю в число дней в Юлианском летоисчислении

Описание

int juliantojd ( int $month , int $day , int $year )

Диапазон возможных дат для Юлианского календаря: с 4713 года до н.э. по 9999 год н.э.

Несмотря на то, что функция может обрабатывать даты вплоть до 4713 года до н.э., практически преобразование для таких ранних дат не имеет смысла. Календарь был создан в 46 году до н.э., но некоторые детали еще дорабатывались по крайней мере до 8 года н.э., а по некоторым данным до 4 века. Также, начало года различалось от одной культуры к другой - не везде Январь был первым месяцем года.

Предостережение

Помните, что на данный момент общепринятым в мире считается Григорианский календарь. Функция gregoriantojd() может преобразовывать даты по этому календарю в число дней в Юлианском летоисчислении.

Список параметров

month

Месяц в виде числа от 1 (Январь) до 12 (Декабрь)

day

День в виде числа от 1 до 31

year

Год в виде числа между -4713 и 9999

Возвращаемые значения

Юлианский день в виде числа для заданной даты по Юлианскому календарю.

Смотрите также

  • jdtojulian() - Переводит число дней в Юлианском летоисчислении в дату по Юлианскому календарю
  • cal_to_jd() - Преобразует заданную дату в Юлианское исчисление


Переводит метку времени Unix в Юлианский день

  • « juliantojd
  • Дата/Время »
  • PHP Manual
  • Календарь
  • Переводит метку времени Unix в Юлианский день

unixtojd

(PHP 4, PHP 5, PHP 7)

unixtojd — Переводит метку времени Unix в Юлианский день

Описание

int unixtojd ([ int $timestamp = time() ] )

Возвращает Юлианский день для заданной метки времени Unix timestamp (количество секунд с 1.1.1970) либо для текущего времени, если аргумент timestamp не задан.

Список параметров

timestamp

Метка времени Unix для преобразования.

Возвращаемые значения

Число дней в Юлианском летоисчислении.

Смотрите также

  • jdtounix() - Переводит число дней в Юлианском летоисчислении в метку времени Unix


Дата и Время

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • DateTime Arithmetic
  • DateTime — Класс DateTime
    • DateTime::add — Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
    • DateTime::__construct — Конструктор класса DateTime
    • DateTime::createFromFormat — Разбирает строку, содержащую время, в соответствии с заданным форматом
    • DateTime::getLastErrors — Возвращает предупреждения и ошибки
    • DateTime::modify — Изменение временной метки
    • DateTime::__set_state — Обработчик __set_state
    • DateTime::setDate — Установка даты
    • DateTime::setISODate — Установка ISO даты
    • DateTime::setTime — Установка времени
    • DateTime::setTimestamp — Устанавливает дату и время, основываясь на метке времени Unix
    • DateTime::setTimezone — Установка временной зоны для объекта класса DateTime
    • DateTime::sub — Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
  • DateTimeImmutable — Класс DateTimeImmutable
    • DateTimeImmutable::add — Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд.
    • DateTimeImmutable::__construct — Возвращает новый объект DateTimeImmutable
    • DateTimeImmutable::createFromFormat — Возвращает новый объект DateTimeImmutable, отформатированный согласно переданному формату
    • DateTimeImmutable::createFromMutable — Возвращает новый объект DateTimeImmutable, содержащий заданный объект DateTime
    • DateTimeImmutable::getLastErrors — Возвращает предупреждения и ошибки
    • DateTimeImmutable::modify — Создает новый объект с измененной временной меткой
    • DateTimeImmutable::__set_state — Обработчик __set_state
    • DateTimeImmutable::setDate — Устанавливает дату
    • DateTimeImmutable::setISODate — Устанавливает дату в формате ISO
    • DateTimeImmutable::setTime — Устанавливает время
    • DateTimeImmutable::setTimestamp — Устанавливает дату и время по переданной временной метке Unix
    • DateTimeImmutable::setTimezone — Устанавливает временную зону
    • DateTimeImmutable::sub — Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд
  • DateTimeInterface — Интерфейс DateTimeInterface
    • DateTime::diff — Возвращает разницу между двумя DateTime объектами
    • DateTime::format — Возвращает дату, отформатированную согласно переданному формату
    • DateTime::getOffset — Возвращает смещение часовой зоны
    • DateTime::getTimestamp — Возвращает временную метку Unix
    • DateTime::getTimezone — Возвращает часовую зону относительно текущему значению DateTime
    • DateTime::__wakeup — Обработчик __wakeup
  • DateTimeZone — Класс DateTimeZone
    • DateTimeZone::__construct — Создает новый объект DateTimeZone
    • DateTimeZone::getLocation — Возвращает информацию о местоположении для временной зоны
    • DateTimeZone::getName — Возвращает имя временной зоны
    • DateTimeZone::getOffset — Возвращает смещение временной зоны от GMT
    • DateTimeZone::getTransitions — Возвращает все переходы для временной зоны
    • DateTimeZone::listAbbreviations — Возвращает ассоциативный массив содержащий флаг перехода на летнее время, смещение и имя временной зоны
    • DateTimeZone::listIdentifiers — Возвращает численно индексированный массив со всеми идентификаторами временных зон
  • DateInterval — Класс DateInterval
    • DateInterval::__construct — Создает новый объект DateInterval
    • DateInterval::createFromDateString — Создает объект класса DateInterval, используя данные из переданной строки
    • DateInterval::format — Форматирует интервал
  • DatePeriod — Класс DatePeriod
    • DatePeriod::__construct — Создает новый объект DatePeriod
    • DatePeriod::getDateInterval — Возвращает интервал
    • DatePeriod::getEndDate — Возвращает конечную дату периода
    • DatePeriod::getStartDate — Возвращает начальную дату периода
  • Функции даты и времени
    • checkdate — Проверяет корректность даты по григорианскому календарю
    • date_add — Псевдоним DateTime::add
    • date_create_from_format — Псевдоним DateTime::createFromFormat
    • date_create_immutable_from_format — Псевдоним DateTimeImmutable::createFromFormat
    • date_create_immutable — Псевдоним DateTimeImmutable::__construct
    • date_create — Псевдоним DateTime::__construct
    • date_date_set — Псевдоним DateTime::setDate
    • date_default_timezone_get — Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте
    • date_default_timezone_set — Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте
    • date_diff — Псевдоним DateTime::diff
    • date_format — Псевдоним DateTime::format
    • date_get_last_errors — Псевдоним DateTime::getLastErrors
    • date_interval_create_from_date_string — Псевдоним DateInterval::createFromDateString
    • date_interval_format — Псевдоним DateInterval::format
    • date_isodate_set — Псевдоним DateTime::setISODate
    • date_modify — Псевдоним DateTime::modify
    • date_offset_get — Псевдоним DateTime::getOffset
    • date_parse_from_format — Получение информации о заданной в определенном формате дате
    • date_parse — Возвращает ассоциативный массив с подробной информацией о заданной дате
    • date_sub — Псевдоним DateTime::sub
    • date_sun_info — Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек
    • date_sunrise — Возвращает время рассвета для заданных дня и местоположения
    • date_sunset — Возвращает время захода солнца для заданных дня и местоположения
    • date_time_set — Псевдоним DateTime::setTime
    • date_timestamp_get — Псевдоним DateTime::getTimestamp
    • date_timestamp_set — Псевдоним DateTime::setTimestamp
    • date_timezone_get — Псевдоним DateTime::getTimezone
    • date_timezone_set — Псевдоним DateTime::setTimezone
    • date — Форматирует вывод системной даты/времени
    • getdate — Возвращает информацию о дате/времени
    • gettimeofday — Возвращает текущее время
    • gmdate — Форматирует дату/время по Гринвичу
    • gmmktime — Возвращает метку времени Unix для времени по Гринвичу
    • gmstrftime — Форматирует дату/время по Гринвичу с учетом текущей локали
    • idate — Преобразует локальное время/дату в целое число
    • localtime — Возвращает локальное время
    • microtime — Возвращает текущую метку времени Unix с микросекундами
    • mktime — Возвращает метку времени Unix для заданной даты
    • strftime — Форматирует текущую дату/время с учетом текущих настроек локали
    • strptime — Разбирает строку даты/времени сгенерированную функцией strftime
    • strtotime — Преобразует текстовое представление даты на английском языке в метку времени Unix
    • time — Возвращает текущую метку времени Unix
    • timezone_abbreviations_list — Псевдоним DateTimeZone::listAbbreviations
    • timezone_identifiers_list — Псевдоним DateTimeZone::listIdentifiers
    • timezone_location_get — Псевдоним DateTimeZone::getLocation
    • timezone_name_from_abbr — Возвращает временную зону в соответствии с аббревиатурой
    • timezone_name_get — Псевдоним DateTimeZone::getName
    • timezone_offset_get — Псевдоним DateTimeZone::getOffset
    • timezone_open — Псевдоним DateTimeZone::__construct
    • timezone_transitions_get — Псевдоним DateTimeZone::getTransitions
    • timezone_version_get — Получение номера версии базы данных временных зон
  • Допустимые форматы Даты/Времени
    • Форматы времени
    • Форматы Даты
    • Компоновка форматов
    • Относительные форматы
  • Список поддерживаемых временных зон
    • Африка
    • Америка
    • Антарктика
    • Арктика
    • Азия
    • Атлантика
    • Австралия
    • Европа
    • Индийский
    • Тихоокеанский
    • Другие


Введение

Эти функции позволяют получить дату и время с сервера, на котором запущен PHP сценарий. Их можно использовать для форматирования даты и времени различными способами.

Информация о дате и времени хранится в памяти в виде 64-разрядных чисел. Таким образом, поддерживаются все пригодные представления даты (включая отрицательные года). Диапазон составляет примерно 292 миллиарда лет в прошлое и будущее.

Замечание: Убедительная просьба принимать во внимание, что эти функции зависят от региональных настроек сервера. При работе с этими функциями следует обращать внимание на високосные года и переход на летнее время (Например, следует использовать $date = strtotime('+7 days', $date), но не $date += 7*24*60*60).

Замечание: Временные зоны, описанные в данном разделе, можно найти по ссылке Список поддерживаемых временных зон.


Установка

Для использования этих функций не требуется проведение установки, поскольку они являются частью ядра PHP.

Замечание: Получение последней базы временных зон

Последнюю версию временных зон можно установить с помощью PECL » timezonedb.

Замечание: Экспериментальная поддержка DateTime в PHP 5.1.x

Хотя класс DateTime (и связанные с ним функции) включены по умолчанию в PHP 5.2.0, существует возможность добавить экспериментальную поддержку в PHP 5.1.x, используя следующий флаг перед настройкой/компиляцией: CFLAGS=-DEXPERIMENTAL_DATE_SUPPORT=1


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки конфигурации даты/времени
Имя | По умолчанию | Меняемо | Список изменений
date.default_latitude | "31.7667" | PHP_INI_ALL | Доступно с версии PHP 5.0.0.
date.default_longitude | "35.2333" | PHP_INI_ALL | Доступно с версии PHP 5.0.0.
date.sunrise_zenith | "90.583333" | PHP_INI_ALL | Доступно с версии PHP 5.0.0.
date.sunset_zenith | "90.583333" | PHP_INI_ALL | Доступно с версии PHP 5.0.0.
date.timezone | "" | PHP_INI_ALL | Доступно с версии PHP 5.1.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

date.default_latitude float

Широта по умолчанию.

date.default_longitude float

Долгота по умолчанию.

date.sunrise_zenith float

Угол, под которым солнце светит во время восхода.

date.sunset_zenith float

Угол, под которым солнце светит во время заката.

date.timezone string

Временная зона, используемая по умолчанию всеми функциями даты/времени. До версии PHP 5.4.0 эта директива работала только при неустановленной переменной TZ. Порядок приоритета используемых временных зон описан на странице date_default_timezone_get(). Смотрите также Список поддерживаемых временных зон.

Замечание: Первые четыре опции настройки в настоящее время используются только в функциях date_sunrise() и date_sunset().


Предопределенные константы

Константы DATE_ определены начиная с версии PHP 5.1.1 и они предлагают стандартные представления даты, которые могут быть использованы вместе с функциями форматирования даты (например date()).

Следующие константы существуют начиная с версии PHP 5.1.2 и определяют формат возвращаемый функциями date_sunrise() и date_sunset().

SUNFUNCS_RET_TIMESTAMP (integer)
Время в секундах с начала эпохи Unix
SUNFUNCS_RET_STRING (integer)
Часы:минуты (например: 08:02)
SUNFUNCS_RET_DOUBLE (integer)
Часы как число с плавающей точкой (например: 8.75)


  • « Предопределенные константы
  • DateTime Arithmetic »
  • PHP Manual
  • Дата/Время
  • Примеры

Примеры

Содержание

  • DateTime Arithmetic


DateTime Arithmetic

В следующих примерах показываются некоторые подводные камни вычислений DateTime, относительно переходов на летнее и зимнее время (DST), и месяцев, имеющих разное количество дней.

Пример #1 DateTime::add/sub добавляет интервалы покрывающие прошедшее время

Добавление PT24H через переходы DST приведет к добавлению 23/25 часов (для большинства временных зон).

<?php
$dt = new DateTime("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->add(new DateInterval("PT3H"));
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Результат выполнения данного примера:

Start: 2015-11-01 00:00:00 -04:00
End:   2015-11-01 02:00:00 -05:00

Пример #2 DateTime::modify и strtotime увеличит или уменьшит значения индивидуальных компонентов

Добавление +24 часов через переход DST добавит точно 24 часов (вместо учета перехода на зимнее или летнее время).

<?php
$dt = new DateTime("2015-11-01 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->modify("+24 hours");
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Результат выполнения данного примера:

Start: 2015-11-01 00:00:00 -04:00
End:   2015-11-02 00:00:00 -05:00

Пример #3 Добавление или вычитание времени может уменьшить или увеличить дату

Например 31 Января + 1 месяц вернет 2 Марта (високосный год) или 3 Марта (обычный год).

<?php
echo "Обычный год:\n"; // Февраль содержит 28 дней
$dt = new DateTime("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->modify("+1 month");
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Високосный год:\n"; // Февраль содержит 29 дней
$dt = new DateTime("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->modify("+1 month");
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Результат выполнения данного примера:

Обычный год:
Start: 2015-01-31 00:00:00 -05:00
End:   2015-03-03 00:00:00 -05:00
Високосный год:
Start: 2016-01-31 00:00:00 -05:00
End:   2016-03-02 00:00:00 -05:00

Для получения последнего дня следующего месяца (например для исключения переполнения), с PHP 5.3.0 существует директива last day of.

<?php
echo "Обычный год:\n"; // Февраль содержит 28 дней
$dt = new DateTime("2015-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->modify("last day of next month");
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;

echo "Високосный год:\n"; // Февраль содержит 29 дней
$dt = new DateTime("2016-01-31 00:00:00", new DateTimeZone("America/New_York"));
echo "Start: ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
$dt->modify("last day of next month");
echo "End:   ", $dt->format("Y-m-d H:i:s P"), PHP_EOL;
?>

Результат выполнения данного примера:

Обычный год:
Start: 2015-01-31 00:00:00 -05:00
End:   2015-02-28 00:00:00 -05:00
Високосный год:
Start: 2016-01-31 00:00:00 -05:00
End:   2016-02-29 00:00:00 -05:00


Класс DateTime

(PHP 5 >= 5.2.0, PHP 7)

Введение

Представление даты и времени.

Обзор классов

DateTime implements DateTimeInterface {
/* Константы */
const string ATOM = "Y-m-d\TH:i:sP" ;
const string COOKIE = "l, d-M-Y H:i:s T" ;
const string ISO8601 = "Y-m-d\TH:i:sO" ;
const string RFC822 = "D, d M y H:i:s O" ;
const string RFC850 = "l, d-M-y H:i:s T" ;
const string RFC1036 = "D, d M y H:i:s O" ;
const string RFC1123 = "D, d M Y H:i:s O" ;
const string RFC2822 = "D, d M Y H:i:s O" ;
const string RFC3339 = "Y-m-d\TH:i:sP" ;
const string RSS = "D, d M Y H:i:s O" ;
const string W3C = "Y-m-d\TH:i:sP" ;
/* Методы */
public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
public DateTime add ( DateInterval $interval )
public static DateTime createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )
public static array getLastErrors ( void )
public DateTime modify ( string $modify )
public static DateTime __set_state ( array $array )
public DateTime setDate ( int $year , int $month , int $day )
public DateTime setISODate ( int $year , int $week [, int $day = 1 ] )
public DateTime setTime ( int $hour , int $minute [, int $second = 0 ] )
public DateTime setTimestamp ( int $unixtimestamp )
public DateTime setTimezone ( DateTimeZone $timezone )
public DateTime sub ( DateInterval $interval )
public DateInterval diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public string format ( string $format )
public int getOffset ( void )
public int getTimestamp ( void )
public DateTimeZone getTimezone ( void )
public __wakeup ( void )
}

Предопределенные константы

DateTime::ATOM
DATE_ATOM
Atom (пример: 2005-08-15T15:52:01+00:00)
DateTime::COOKIE
DATE_COOKIE
HTTP Cookies (пример: Monday, 15-Aug-05 15:52:01 UTC)
DateTime::ISO8601
DATE_ISO8601
ISO-8601 (пример: 2005-08-15T15:52:01+0000)

Замечание: Этот формат не совместим с ISO-8601, но остается для обратной совместимости. Вместо него используйте DateTime::ATOM или DATE_ATOM для совместимости с ISO-8601.

DateTime::RFC822
DATE_RFC822
RFC 822 (пример: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC850
DATE_RFC850
RFC 850 (пример: Monday, 15-Aug-05 15:52:01 UTC)
DateTime::RFC1036
DATE_RFC1036
RFC 1036 (пример: Mon, 15 Aug 05 15:52:01 +0000)
DateTime::RFC1123
DATE_RFC1123
RFC 1123 (пример: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC2822
DATE_RFC2822
RFC 2822 (пример: Mon, 15 Aug 2005 15:52:01 +0000)
DateTime::RFC3339
DATE_RFC3339
Тоже, что и DATE_ATOM (начиная с версии PHP 5.1.3)
DateTime::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)

Список изменений

Версия | Описание
5.5.0 | Класс теперь реализует DateTimeInterface.
5.4.24 | Константа COOKIE изменена, чтобы соответствовать RFC 1036, где используются 4 цифры года вместо двух (RFC 850), как было в предыдущих версиях.
5.2.2 | Результаты сравнения DateTime объектов при использовании операторов сравнения теперь соответствуют смыслу этих операторов. Ранее все объекты DateTime считались равными (==).

Содержание

  • DateTime::add — Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
  • DateTime::__construct — Конструктор класса DateTime
  • DateTime::createFromFormat — Разбирает строку, содержащую время, в соответствии с заданным форматом
  • DateTime::getLastErrors — Возвращает предупреждения и ошибки
  • DateTime::modify — Изменение временной метки
  • DateTime::__set_state — Обработчик __set_state
  • DateTime::setDate — Установка даты
  • DateTime::setISODate — Установка ISO даты
  • DateTime::setTime — Установка времени
  • DateTime::setTimestamp — Устанавливает дату и время, основываясь на метке времени Unix
  • DateTime::setTimezone — Установка временной зоны для объекта класса DateTime
  • DateTime::sub — Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime


Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime

  • « DateTime
  • DateTime::__construct »
  • PHP Manual
  • DateTime
  • Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime

DateTime::add

date_add

(PHP 5 >= 5.3.0, PHP 7)

DateTime::add -- date_add — Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime

Описание

Объектно-ориентированный стиль

public DateTime DateTime::add ( DateInterval $interval )

Процедурный стиль

DateTime date_add ( DateTime $object , DateInterval $interval )

Прибавляет заданный объект DateInterval к объекту DateTime.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

interval

Объект класса DateInterval

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::add()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>

Процедурный стиль

<?php
$date = date_create('2000-01-01');
date_add($date, date_interval_create_from_date_string('10 days'));
echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2000-01-11

Пример #2 Другие примеры с DateTime::add()

<?php
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('PT10H30S'));
echo $date->format('Y-m-d H:i:s') . "\n";

$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P7Y5M4DT4H3M2S'));
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Результат выполнения данного примера:

2000-01-01 10:00:30
2007-06-05 04:03:02

Пример #3 Будьте внимательны при добавлении месяцев

<?php
$date = new DateTime('2000-12-31');
$interval = new DateInterval('P1M');

$date->add($interval);
echo $date->format('Y-m-d') . "\n";

$date->add($interval);
echo $date->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-01-31
2001-03-03

Примечания

При работе с PHP 5.2 в качестве альтернативы можно воспользоваться функцией DateTime::modify().

Смотрите также

  • DateTime::sub() - Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
  • DateTime::diff() - Возвращает разницу между двумя DateTime объектами
  • DateTime::modify() - Изменение временной метки


Конструктор класса DateTime

  • « DateTime::add
  • DateTime::createFromFormat »
  • PHP Manual
  • DateTime
  • Конструктор класса DateTime

DateTime::__construct

date_create

(PHP 5 >= 5.2.0, PHP 7)

DateTime::__construct -- date_create — Конструктор класса DateTime

Описание

Объектно-ориентированный стиль

public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Процедурный стиль

DateTime date_create ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Создает и возвращает новый экземпляр класса DateTime.

Список параметров

time

Строка даты/времени. Объяснение корректных форматов дано в Форматы даты и времени.

Если используется аргумент $timezone, то для получения текущего времени в новом объекте достаточно передать NULL в качестве этого аргумента.

timezone

Объект класса DateTimeZone представляющий временную зону параметра $time.

Если аргумент $timezone не задан, будет использована текущая временная зона.

Замечание:

Значение аргумента $timezone равно как и текущая временная зона не будут учитываться, если в качестве аргумента $time передается метка времени UNIX (например @946684800) или время, в котором временная зона уже содержится (например 2010-01-28T15:00:00+02:00).

Возвращаемые значения

Возвращает созданный объект класса DateTime. Процедурный стиль возвращает FALSE в случае возникновения ошибки.

Ошибки

В случае ошибки выбрасывает исключение Exception.

Список изменений

Версия | Описание
5.3.0 | В случае задания параметру time неверного формата даты/времени выбрасывается исключение. Раньше скрипт выдавал ошибку.

Примеры

Пример #1 Пример использования DateTime::__construct()

Объектно-ориентированный стиль

<?php
try {
    $date = new DateTime('2000-01-01');
} catch (Exception $e) {
    echo $e->getMessage();
    exit(1);
}

echo $date->format('Y-m-d');
?>

Процедурный стиль

<?php
$date = date_create('2000-01-01');
if (!$date) {
    $e = date_get_last_errors();
    foreach ($e['errors'] as $error) {
        echo "$error\n";
    }
    exit(1);
}

echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2000-01-01

Пример #2 Хитрости при использовании DateTime::__construct()

<?php
// Дата/время во временной зоне Вашего компьютера.
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Дата/время в заданной временной зоне.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Текущие дата и время во временной зоне Вашего компьютера.
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";

// Текущие дата и время в заданной временной зоне.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Использование метки времени UNIX.
// Обратите внимание: результат во временной зоне UTC.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Несуществующие значения все равно обрабатываются.
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

2000-01-01 00:00:00-05:00
2000-01-01 00:00:00+12:00
2010-04-24 10:24:16-04:00
2010-04-25 02:24:16+12:00
2000-01-01 00:00:00+00:00
2000-03-01 00:00:00-05:00

Смотрите также

  • DateTime::createFromFormat() - Разбирает строку, содержащую время, в соответствии с заданным форматом
  • DateTimeZone::__construct() - Создает новый объект DateTimeZone
  • Форматы даты и времени
  • date.timezone ini настройка
  • date_default_timezone_set() - Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте
  • DateTime::getLastErrors() - Возвращает предупреждения и ошибки
  • checkdate() - Проверяет корректность даты по григорианскому календарю


Разбирает строку, содержащую время, в соответствии с заданным форматом

  • « DateTime::__construct
  • DateTime::getLastErrors »
  • PHP Manual
  • DateTime
  • Разбирает строку, содержащую время, в соответствии с заданным форматом

DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7)

DateTime::createFromFormat -- date_create_from_format — Разбирает строку, содержащую время, в соответствии с заданным форматом

Описание

Объектно-ориентированный стиль

public static DateTime DateTime::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )

Процедурный стиль

DateTime date_create_from_format ( string $format , string $time [, DateTimeZone $timezone ] )

Создает и возвращает экземпляр класса DateTime, соответствующий заданному формату.

Список параметров

format

Формат даты и времени в виде строки (string), которому соответствует значение второго аргумента функции. Список вариантов форматирования представлен ниже. В большинстве случаев, при форматировании используются те же символы, что и в функции date().

Список возможных символов для составления строки format
Символ в строке format | Описание | Возможные значения
День --- ---
d и j | День месяца, 2 цифры с нулем в начале или без него | От 01 до 31 либо от 1 до 31
D и l | Текстовое представление дня месяца | От Mon до Sun либо от Sunday до Saturday
S | Суффикс для числа в английской нумерации, 2 буквы. Эти буквы будут пропущены при разборе строки. | st, nd, rd или th.
z | Номер дня с начала года (начиная с нуля) | C 0 по 365
Месяц --- ---
F и M | Текстовое представление месяца, например January или Sept | С January по December либо с Jan по Dec
m и n | Числовое представление месяца с первым нулем или без него | С 01 по 12 либо с 1 по 12
Год --- ---
Y | Полное числовое представление года, 4 цифры | Примеры: 1999 или 2003
y | 2 цифры в представлении года (в диапазоне 1970-2069 включительно) | Примеры: 99 или 03 (будет расшифровано как 1999 и 2003 соответственно)
Время --- ---
a и A | До полудня и После полудня | am или pm
g и h | 12-ти часовой формат времени с первым нулем или без него | С 1 по 12 либо с 01 по 12
G и H | 24-х часовой формат времени с нулем в начале или без него | С 0 по 23 или с 00 по 23
i | Минуты с нулем в начале | С 00 по 59
s | Секунды с нулем в начале | От 00 до 59
u | Микросекунды (до 6 цифр) | Примеры: 45, 654321
Временная зона --- ---
e, O, P и T | Идентификатор временной зоны, либо разница в часах относительно UTC, либо разница относительно UTC с запятой между часами и минутами, либо аббревиатура временной зоны | Примеры: UTC, GMT, Atlantic/Azores или +0200 или +02:00 или EST, MDT
Дата/Время полностью --- ---
U | Количество секунд с начала Эпохи Unix (January 1 1970 00:00:00 GMT) | Пример: 1292177455
Пробел и Разделители --- ---
(пробел) | Один пробел или один отступ табуляции | Пример:
# Один из следующих символов: ;, :, /, ., ,, -, ( или ) Пример: /
;, :, /, ., ,, -, ( или ) | Символ разделитель. | Пример: -
? Один случайный (любой) символ Пример: ^ (Будьте внимательны: в UTF-8 кодировке вам может потребоваться более одного ?, так как там один символ может занимать более одного байта. В таких случаях может помочь использование *.
* Любое количество любых символов до следующего разделителя Пример: * в Y-*-d для строки 2009-aWord-08 будет соответствовать aWord
! Приводит значения всех полей (год, месяц, день, час, минута, секунда, временная зона) ко времени начала Эпохи Unix. Без ! все поля будут соответствовать текущему времени.
| Приводит значения незаданных полей (год, месяц, день, час, минута, секунда, временная зона) ко времени начала Эпохи Unix. Y-m-d| установит год, месяц и день в соответствии с данными в строке, а часы, минуты и секунды установит в 0.
+ Если задан этот спецификатор, данные, завершающие строку (нуль байт например) не будут вызывать ошибку, только предупреждение Используйте DateTime::getLastErrors() для определения, были ли в строке завершающие символы.

Наличие в строке формата нераспознаваемых символов, отсутствующих в списке выше, приведет к ошибке разбора строки. В этом случае сообщение об ошибке будет добавлено в возвращаемую структуру. Получить это сообщение можно с помощью функции DateTime::getLastErrors().

Для вставки в format буквенного символа, вы должны экранировать его с помощью обратного слеша(\).

Если format не содержит символ !, то значения полей, не заданных в строке формата, будут установлены в соответствии с текущим временем.

Если format содержит символ !, то значения полей, не заданных в строке формата (равно как и значения полей слева от !) будут установлены в соответствии со значениями полей начала Эпохи Unix.

Начало эпохи Unix 1970-01-01 00:00:00 UTC.

time

Строка, представляющая время.

timezone

Объект класса DateTimeZone, представляющий ожидаемую временную зону.

Если timezone не указан и time не содержит временную зону, то будет использована текущая временная зона.

Замечание:

Параметр timezone и текущая временная зона будут проигнорированы, если параметр time также содержит метку времени UNIX (т.е. timestamp вида 946684800) или же указанную временную зону (т.е. 2010-01-28T15:00:00+02:00).

Возвращаемые значения

Возвращает созданный экземпляр класса DateTime или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.9 | Для format добавлен спецификатор +.

Примеры

Пример #1 Пример использования DateTime::createFromFormat()

Объектно-ориентированный стиль

<?php
$date = DateTime::createFromFormat('j-M-Y', '15-Feb-2009');
echo $date->format('Y-m-d');
?>

Процедурный стиль

<?php
$date = date_create_from_format('j-M-Y', '15-Feb-2009');
echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2009-02-15

Пример #2 Хитрости при использовании DateTime::createFromFormat()

<?php
echo 'Текущее время: ' . date('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d';
$date = DateTime::createFromFormat($format, '2009-02-15');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = 'Y-m-!d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";

$format = '!d';
$date = DateTime::createFromFormat($format, '15');
echo "Формат: $format; " . $date->format('Y-m-d H:i:s') . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Текущее время: 2010-04-23 10:29:35
Формат: Y-m-d; 2009-02-15 10:29:35
Формат: Y-m-d H:i:s; 2009-02-15 15:16:17
Формат: Y-m-!d H:i:s; 1970-01-15 15:16:17
Формат: !d; 1970-01-15 00:00:00

Пример #3 Формат строки с буквенными символами

<?php
echo DateTime::createFromFormat('H\h i\m s\s','23h 15m 03s')->format('H:i:s');
?>

Результатом выполнения данного примера будет что-то подобное:

23:15:03

Смотрите также

  • DateTime::__construct() - Конструктор класса DateTime
  • DateTime::getLastErrors() - Возвращает предупреждения и ошибки
  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • strptime() - Разбирает строку даты/времени сгенерированную функцией strftime


Возвращает предупреждения и ошибки

  • « DateTime::createFromFormat
  • DateTime::modify »
  • PHP Manual
  • DateTime
  • Возвращает предупреждения и ошибки

DateTime::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0, PHP 7)

DateTime::getLastErrors -- date_get_last_errors — Возвращает предупреждения и ошибки

Описание

Объектно-ориентированный стиль

public static array DateTime::getLastErrors ( void )

Процедурный стиль

array date_get_last_errors ( void )

Возвращает массив содержащий сообщения об ошибках и предупреждения, обнаруженные при разборе строки даты/времени.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив содержащий информацию об ошибках и предупреждениях.

Примеры

Пример #1 Пример использования DateTime::getLastErrors()

Объектно-ориентированный стиль

<?php
try {
    $date = new DateTime('asdfasdf');
} catch (Exception $e) {
    // Только в целях демонстрации...
    print_r(DateTime::getLastErrors());

    // делать это в объектно-ориентированном стиле лучше так:
    // echo $e->getMessage();
}
?>

Процедурный стиль

<?php
$date = date_create('asdfasdf');
print_r(date_get_last_errors());
?>

Результат выполнения данных примеров:

Array
(
   [warning_count] => 1
   [warnings] => Array
       (
           [6] => Double timezone specification
       )

   [error_count] => 1
   [errors] => Array
       (
           [0] => The timezone could not be found in the database
       )

)

Индексы 6 и 0 указывают на символьные позиции в строке, где произошла ошибка.


Изменение временной метки

  • « DateTime::getLastErrors
  • DateTime::__set_state »
  • PHP Manual
  • DateTime
  • Изменение временной метки

DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7)

DateTime::modify -- date_modify — Изменение временной метки

Описание

Объектно-ориентированный стиль

public DateTime DateTime::modify ( string $modify )

Процедурный стиль

DateTime date_modify ( DateTime $object , string $modify )

Изменяет метку времени объекта DateTime путем добавления или вычитания времени в формате, принятом для функции strtotime().

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

modify

Строка даты/времени. Объяснение корректных форматов дано в Форматы даты и времени.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.6 | Стало возможным применять абсолютные значения объектов даты/времени. Раньше использовались только относительные значения полей даты/времени.
5.3.0 | Изменено значение успешной работы функции с NULL на DateTime.

Примеры

Пример #1 Пример использования DateTime::modify()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2006-12-12');
$date->modify('+1 day');
echo $date->format('Y-m-d');
?>

Процедурный стиль

<?php
$date = date_create('2006-12-12');
date_modify($date, '+1 day');
echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2006-12-13

Пример #2 Будьте осторожны при добавлении и вычитании месяцев

<?php
$date = new DateTime('2000-12-31');

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";

$date->modify('+1 month');
echo $date->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-01-31
2001-03-03

Смотрите также

  • strtotime() - Преобразует текстовое представление даты на английском языке в метку времени Unix
  • DateTime::add() - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
  • DateTime::sub() - Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
  • DateTime::setDate() - Установка даты
  • DateTime::setISODate() - Установка ISO даты
  • DateTime::setTime() - Установка времени
  • DateTime::setTimestamp() - Устанавливает дату и время, основываясь на метке времени Unix


Обработчик __set_state

  • « DateTime::modify
  • DateTime::setDate »
  • PHP Manual
  • DateTime
  • Обработчик __set_state

DateTime::__set_state

(PHP 5 >= 5.2.0, PHP 7)

DateTime::__set_state — Обработчик __set_state

Описание

public static DateTime DateTime::__set_state ( array $array )

Обработчик __set_state().

Список параметров

array

Массив для инициализации.

Возвращаемые значения

Возвращает новый экземпляр класса DateTime.


Установка даты

  • « DateTime::__set_state
  • DateTime::setISODate »
  • PHP Manual
  • DateTime
  • Установка даты

DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setDate -- date_date_set — Установка даты

Описание

Объектно-ориентированный стиль

public DateTime DateTime::setDate ( int $year , int $month , int $day )

Процедурный стиль

DateTime date_date_set ( DateTime $object , int $year , int $month , int $day )

Переустанавливает текущее значение даты объекта DateTime в новое значение.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

year

Год новой даты.

month

Месяц новой даты.

day

День новой даты.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Изменено значение успешной работы функции с NULL на DateTime.

Примеры

Пример #1 Пример использования DateTime::setDate()

Объектно-ориентированный стиль

<?php
$date = new DateTime();
$date->setDate(2001, 2, 3);
echo $date->format('Y-m-d');
?>

Процедурный стиль

<?php
$date = date_create();
date_date_set($date, 2001, 2, 3);
echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2001-02-03

Пример #2 Значения, превышающие диапазон своего поля, добавляются к старшим полям

<?php
$date = new DateTime();

$date->setDate(2001, 2, 28);
echo $date->format('Y-m-d') . "\n";

$date->setDate(2001, 2, 29);
echo $date->format('Y-m-d') . "\n";

$date->setDate(2001, 14, 3);
echo $date->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-02-28
2001-03-01
2002-02-03

Смотрите также

  • DateTime::setISODate() - Установка ISO даты
  • DateTime::setTime() - Установка времени


Установка ISO даты

  • « DateTime::setDate
  • DateTime::setTime »
  • PHP Manual
  • DateTime
  • Установка ISO даты

DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setISODate -- date_isodate_set — Установка ISO даты

Описание

Объектно-ориентированный стиль

public DateTime DateTime::setISODate ( int $year , int $week [, int $day = 1 ] )

Процедурный стиль

DateTime date_isodate_set ( DateTime $object , int $year , int $week [, int $day = 1 ] )

Установка даты в соответствии со стандартом ISO 8601, в котором использование недель и смещения в днях предпочтительней указания даты.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

year

Год новой даты.

week

Неделя новой даты.

day

Смещение относительно начала недели.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Изменено значение успешной работы функции с NULL на DateTime.

Примеры

Пример #1 Пример использования DateTime::setISODate()

Объектно-ориентированный стиль

<?php
$date = new DateTime();

$date->setISODate(2008, 2);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";
?>

Процедурный стиль

<?php
$date = date_create();

date_isodate_set($date, 2008, 2);
echo date_format($date, 'Y-m-d') . "\n";

date_isodate_set($date, 2008, 2, 7);
echo date_format($date, 'Y-m-d') . "\n";
?>

Результат выполнения данных примеров:

2008-01-07
2008-01-13

Пример #2 Значения, превышающие допустимые пределы, добавляются к старшим полям

<?php
$date = new DateTime();

$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 2, 8);
echo $date->format('Y-m-d') . "\n";

$date->setISODate(2008, 53, 7);
echo $date->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2008-01-13
2008-01-14
2009-01-04

Пример #3 Поиск месяца по номеру недели

<?php
$date = new DateTime();
$date->setISODate(2008, 14);
echo $date->format('n');
?>

Результат выполнения данных примеров:

3

Смотрите также

  • DateTime::setDate() - Установка даты
  • DateTime::setTime() - Установка времени


Установка времени

  • « DateTime::setISODate
  • DateTime::setTimestamp »
  • PHP Manual
  • DateTime
  • Установка времени

DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setTime -- date_time_set — Установка времени

Описание

Объектно-ориентированный стиль

public DateTime DateTime::setTime ( int $hour , int $minute [, int $second = 0 ] )

Процедурный стиль

DateTime date_time_set ( DateTime $object , int $hour , int $minute [, int $second = 0 ] )

Переустанавливает текущее значение времени объекта DateTime в новое значение.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

hour

Час нового времени.

minute

Минуты нового времени.

second

Секунды нового времени.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Изменено значение успешной работы функции с NULL на DateTime.

Примеры

Пример #1 Пример использования DateTime::setTime()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2001-01-01');

$date->setTime(14, 55);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Процедурный стиль

<?php
$date = date_create('2001-01-01');

date_time_set($date, 14, 55);
echo date_format($date, 'Y-m-d H:i:s') . "\n";

date_time_set($date, 14, 55, 24);
echo date_format($date, 'Y-m-d H:i:s') . "\n";
?>

Результатом выполнения данных примеров будет что-то подобное:

2001-01-01 14:55:00
2001-01-01 14:55:24

Пример #2 Значения, превышающие диапазон своего поля, добавляются к старшим полям

<?php
$date = new DateTime('2001-01-01');

$date->setTime(14, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 55, 65);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(14, 65, 24);
echo $date->format('Y-m-d H:i:s') . "\n";

$date->setTime(25, 55, 24);
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Результат выполнения данного примера:

2001-01-01 14:55:24
2001-01-01 14:56:05
2001-01-01 15:05:24
2001-01-02 01:55:24

Смотрите также

  • DateTime::setDate() - Установка даты
  • DateTime::setISODate() - Установка ISO даты


Устанавливает дату и время, основываясь на метке времени Unix

  • « DateTime::setTime
  • DateTime::setTimezone »
  • PHP Manual
  • DateTime
  • Устанавливает дату и время, основываясь на метке времени Unix

DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7)

DateTime::setTimestamp -- date_timestamp_set — Устанавливает дату и время, основываясь на метке времени Unix

Описание

Объектно-ориентированный стиль

public DateTime DateTime::setTimestamp ( int $unixtimestamp )

Процедурный стиль

DateTime date_timestamp_set ( DateTime $object , int $unixtimestamp )

Устанавливает дату и время, основываясь на метке времени Unix.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

unixtimestamp

Метка времени Unix представляющая дату.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::setTimestamp()

Объектно-ориентированный стиль

<?php
$date = new DateTime();
echo $date->format('U = Y-m-d H:i:s') . "\n";

$date->setTimestamp(1171502725);
echo $date->format('U = Y-m-d H:i:s') . "\n";
?>

Процедурный стиль

<?php
$date = date_create();
echo date_format($date, 'U = Y-m-d H:i:s') . "\n";

date_timestamp_set($date, 1171502725);
echo date_format($date, 'U = Y-m-d H:i:s') . "\n";
?>

Результатом выполнения данных примеров будет что-то подобное:

1272508903 = 2010-04-28 22:41:43
1171502725 = 2007-02-14 20:25:25

Примечания

Использование меток времени Unix для создания экземпляров DateTime является альтернативным при работе с PHP 5.2. См. пример ниже.

Пример #2 Использование DateTime::setTimestamp() в качестве альтернативы в PHP 5.2

<?php
$ts = 1171502725;
$date = new DateTime("@$ts");
echo $date->format('U = Y-m-d H:i:s') . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

1171502725 = 2007-02-14 20:25:25

Смотрите также

  • DateTime::getTimestamp() - Возвращает временную метку Unix


Установка временной зоны для объекта класса DateTime

  • « DateTime::setTimestamp
  • DateTime::sub »
  • PHP Manual
  • DateTime
  • Установка временной зоны для объекта класса DateTime

DateTime::setTimezone

date_timezone_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setTimezone -- date_timezone_set — Установка временной зоны для объекта класса DateTime

Описание

Объектно-ориентированный стиль

public DateTime DateTime::setTimezone ( DateTimeZone $timezone )

Процедурный стиль

DateTime date_timezone_set ( DateTime $object , DateTimeZone $timezone )

Устанавливает новую временную зону для DateTime object.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

timezone

Объект класса DateTimeZone представляющий требуемую временную зону.

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Изменено значение успешной работы функции с NULL на DateTime.

Примеры

Пример #1 Пример использования DateTime::setTimeZone()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

Процедурный стиль

<?php
$date = date_create('2000-01-01', timezone_open('Pacific/Nauru'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";

date_timezone_set($date, timezone_open('Pacific/Chatham'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";
?>

Результат выполнения данных примеров:

2000-01-01 00:00:00+12:00
2000-01-01 01:45:00+13:45

Смотрите также

  • DateTime::getTimezone() - Возвращает часовую зону относительно текущему значению DateTime
  • DateTimeZone::__construct() - Создает новый объект DateTimeZone


Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime

  • « DateTime::setTimezone
  • DateTimeImmutable »
  • PHP Manual
  • DateTime
  • Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime

DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7)

DateTime::sub -- date_sub — Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime

Описание

Объектно-ориентированный стиль

public DateTime DateTime::sub ( DateInterval $interval )

Процедурный стиль

DateTime date_sub ( DateTime $object , DateInterval $interval )

Вычитает из времени объекта DateTime заданный интервал DateInterval.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

interval

Объект класса DateInterval

Возвращаемые значения

Возвращает объект DateTime для применения в цепи методов или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::sub()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P10D'));
echo $date->format('Y-m-d') . "\n";
?>

Процедурный стиль

<?php
$date = date_create('2000-01-20');
date_sub($date, date_interval_create_from_date_string('10 days'));
echo date_format($date, 'Y-m-d');
?>

Результат выполнения данных примеров:

2000-01-10

Пример #2 Другие примеры DateTime::sub()

<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('PT10H30S'));
echo $date->format('Y-m-d H:i:s') . "\n";

$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P7Y5M4DT4H3M2S'));
echo $date->format('Y-m-d H:i:s') . "\n";
?>

Результат выполнения данного примера:

2000-01-19 13:59:30
1992-08-15 19:56:58

Пример #3 Будьте внимательны при вычитании месяцев

<?php
$date = new DateTime('2001-04-30');
$interval = new DateInterval('P1M');

$date->sub($interval);
echo $date->format('Y-m-d') . "\n";

$date->sub($interval);
echo $date->format('Y-m-d') . "\n";
?>

Результат выполнения данного примера:

2001-03-30
2001-03-02

Примечания

При работе с PHP 5.2 в качестве альтернативы можно использовать функцию DateTime::modify().

Смотрите также

  • DateTime::add() - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
  • DateTime::diff() - Возвращает разницу между двумя DateTime объектами
  • DateTime::modify() - Изменение временной метки


Класс DateTimeImmutable

(PHP 5 >= 5.5.0, PHP 7)

Введение

Данный класс ведет себя аналогично классу DateTime, за исключением того, что он никогда не изменяет себя и всегда возвращает новый объект.

Обзор классов

DateTimeImmutable implements DateTimeInterface {
/* Методы */
public __construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
public DateTimeImmutable add ( DateInterval $interval )
public static DateTimeImmutable createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )
public static DateTimeImmutable createFromMutable ( DateTime $datetime )
public static array getLastErrors ( void )
public DateTimeImmutable modify ( string $modify )
public static DateTimeImmutable __set_state ( array $array )
public DateTimeImmutable setDate ( int $year , int $month , int $day )
public DateTimeImmutable setISODate ( int $year , int $week [, int $day = 1 ] )
public DateTimeImmutable setTime ( int $hour , int $minute [, int $second = 0 ] )
public DateTimeImmutable setTimestamp ( int $unixtimestamp )
public DateTimeImmutable setTimezone ( DateTimeZone $timezone )
public DateTimeImmutable sub ( DateInterval $interval )
public DateInterval diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public string format ( string $format )
public int getOffset ( void )
public int getTimestamp ( void )
public DateTimeZone getTimezone ( void )
public __wakeup ( void )
}

Содержание

  • DateTimeImmutable::add — Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд.
  • DateTimeImmutable::__construct — Возвращает новый объект DateTimeImmutable
  • DateTimeImmutable::createFromFormat — Возвращает новый объект DateTimeImmutable, отформатированный согласно переданному формату
  • DateTimeImmutable::createFromMutable — Возвращает новый объект DateTimeImmutable, содержащий заданный объект DateTime
  • DateTimeImmutable::getLastErrors — Возвращает предупреждения и ошибки
  • DateTimeImmutable::modify — Создает новый объект с измененной временной меткой
  • DateTimeImmutable::__set_state — Обработчик __set_state
  • DateTimeImmutable::setDate — Устанавливает дату
  • DateTimeImmutable::setISODate — Устанавливает дату в формате ISO
  • DateTimeImmutable::setTime — Устанавливает время
  • DateTimeImmutable::setTimestamp — Устанавливает дату и время по переданной временной метке Unix
  • DateTimeImmutable::setTimezone — Устанавливает временную зону
  • DateTimeImmutable::sub — Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд


Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд.

  • « DateTimeImmutable
  • DateTimeImmutable::__construct »
  • PHP Manual
  • DateTimeImmutable
  • Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд.

DateTimeImmutable::add

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::add — Добавляет указанное количество дней, месяцев, лет, часов, минут и секунд.

Описание

public DateTimeImmutable DateTimeImmutable::add ( DateInterval $interval )

Данный метод похож на DateTime::add(), но работает с DateTimeImmutable.


Возвращает новый объект DateTimeImmutable

  • « DateTimeImmutable::add
  • DateTimeImmutable::createFromFormat »
  • PHP Manual
  • DateTimeImmutable
  • Возвращает новый объект DateTimeImmutable

DateTimeImmutable::__construct

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::__construct -- date_create_immutable — Возвращает новый объект DateTimeImmutable

Описание

Объектно-ориентированный стиль

public DateTimeImmutable::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Процедурный стиль

DateTimeImmutable date_create_immutable ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )

Данный конструктор похож на DateTime::__construct(), но работает с DateTimeImmutable.


Возвращает новый объект DateTimeImmutable, отформатированный согласно переданному формату

  • « DateTimeImmutable::__construct
  • DateTimeImmutable::createFromMutable »
  • PHP Manual
  • DateTimeImmutable
  • Возвращает новый объект DateTimeImmutable, отформатированный согласно переданному формату

DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::createFromFormat -- date_create_immutable_from_format — Возвращает новый объект DateTimeImmutable, отформатированный согласно переданному формату

Описание

Объектно-ориентированный стиль

public static DateTimeImmutable DateTimeImmutable::createFromFormat ( string $format , string $time [, DateTimeZone $timezone ] )

Процедурный стиль

DateTimeImmutable date_create_immutable_from_format ( string $format , string $time [, DateTimeZone $timezone ] )

Данный метод похож на DateTime::createFromFormat(), но работает с DateTimeImmutable.


Возвращает новый объект DateTimeImmutable, содержащий заданный объект DateTime

  • « DateTimeImmutable::createFromFormat
  • DateTimeImmutable::getLastErrors »
  • PHP Manual
  • DateTimeImmutable
  • Возвращает новый объект DateTimeImmutable, содержащий заданный объект DateTime

DateTimeImmutable::createFromMutable

(PHP 5 >= 5.6.0, PHP 7)

DateTimeImmutable::createFromMutable — Возвращает новый объект DateTimeImmutable, содержащий заданный объект DateTime

Описание

public static DateTimeImmutable DateTimeImmutable::createFromMutable ( DateTime $datetime )

Список параметров

datetime

Изменяемый объект DateTime, который вы хотите преобразовать в неизменяемую версию. Этот объект не изменяется, но вместо этого, создается новый объект DateTimeImmutable, содержащий ту же самую информацию.

Примеры

Пример #1 Создание неизменяемого объекта даты/времени

<?php
$date = new DateTime("2014-06-20 11:45 Europe/London");

$immutable = DateTimeImmutable::createFromMutable( $date );
?>

Возвращаемые значения

Возвращает новый экземпляр DateTimeImmutable.


Возвращает предупреждения и ошибки

  • « DateTimeImmutable::createFromMutable
  • DateTimeImmutable::modify »
  • PHP Manual
  • DateTimeImmutable
  • Возвращает предупреждения и ошибки

DateTimeImmutable::getLastErrors

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::getLastErrors — Возвращает предупреждения и ошибки

Описание

public static array DateTimeImmutable::getLastErrors ( void )

Данный метод похож на DateTime::getLastErrors(), но работает с DateTimeImmutable.


Создает новый объект с измененной временной меткой

  • « DateTimeImmutable::getLastErrors
  • DateTimeImmutable::__set_state »
  • PHP Manual
  • DateTimeImmutable
  • Создает новый объект с измененной временной меткой

DateTimeImmutable::modify

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::modify — Создает новый объект с измененной временной меткой

Описание

public DateTimeImmutable DateTimeImmutable::modify ( string $modify )

Создает новый объект DateTimeImmutable с измененной временной меткой. Первоначальный объект не изменяется.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create(). Функция изменяет этот объект.

modify

Строка даты/времени. Объяснение корректных форматов дано в Форматы даты и времени.

Возвращаемые значения

Возвращает новый объект или FALSE в случае возникновения ошибки.


Обработчик __set_state

  • « DateTimeImmutable::modify
  • DateTimeImmutable::setDate »
  • PHP Manual
  • DateTimeImmutable
  • Обработчик __set_state

DateTimeImmutable::__set_state

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::__set_state — Обработчик __set_state

Описание

public static DateTimeImmutable DateTimeImmutable::__set_state ( array $array )

Данный метод похож на DateTime::__set_state(), но работает с DateTimeImmutable.


Устанавливает дату

  • « DateTimeImmutable::__set_state
  • DateTimeImmutable::setISODate »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает дату

DateTimeImmutable::setDate

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setDate — Устанавливает дату

Описание

public DateTimeImmutable DateTimeImmutable::setDate ( int $year , int $month , int $day )

Данный метод похож на DateTime::setDate(), но работает с DateTimeImmutable.


Устанавливает дату в формате ISO

  • « DateTimeImmutable::setDate
  • DateTimeImmutable::setTime »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает дату в формате ISO

DateTimeImmutable::setISODate

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setISODate — Устанавливает дату в формате ISO

Описание

public DateTimeImmutable DateTimeImmutable::setISODate ( int $year , int $week [, int $day = 1 ] )

Данный метод похож на DateTime::setISODate(), но работает с DateTimeImmutable.


Устанавливает время

  • « DateTimeImmutable::setISODate
  • DateTimeImmutable::setTimestamp »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает время

DateTimeImmutable::setTime

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setTime — Устанавливает время

Описание

public DateTimeImmutable DateTimeImmutable::setTime ( int $hour , int $minute [, int $second = 0 ] )

Данный метод похож на DateTime::setTime(), но работает с DateTimeImmutable.


Устанавливает дату и время по переданной временной метке Unix

  • « DateTimeImmutable::setTime
  • DateTimeImmutable::setTimezone »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает дату и время по переданной временной метке Unix

DateTimeImmutable::setTimestamp

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setTimestamp — Устанавливает дату и время по переданной временной метке Unix

Описание

public DateTimeImmutable DateTimeImmutable::setTimestamp ( int $unixtimestamp )

Данный метод похож на DateTime::setTimestamp(), но работает с DateTimeImmutable.


Устанавливает временную зону

  • « DateTimeImmutable::setTimestamp
  • DateTimeImmutable::sub »
  • PHP Manual
  • DateTimeImmutable
  • Устанавливает временную зону

DateTimeImmutable::setTimezone

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::setTimezone — Устанавливает временную зону

Описание

public DateTimeImmutable DateTimeImmutable::setTimezone ( DateTimeZone $timezone )

Данный метод похож на DateTime::setTimezone(), но работает с DateTimeImmutable.


Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд

  • « DateTimeImmutable::setTimezone
  • DateTimeInterface »
  • PHP Manual
  • DateTimeImmutable
  • Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд

DateTimeImmutable::sub

(PHP 5 >= 5.5.0, PHP 7)

DateTimeImmutable::sub — Вычитает переданное количество дней, месяцев, лет, часов, минут и секунд

Описание

public DateTimeImmutable DateTimeImmutable::sub ( DateInterval $interval )

Данный метод похож на DateTime::sub(), но работает с DateTimeImmutable.


Интерфейс DateTimeInterface

(PHP 5 >= 5.5.0, PHP 7)

Введение

Интерфейс DateTimeInterface обобщает работу DateTime и DateTimeImutable. Невозможно реализовать этот интерфейс с пользовательским классом.

Обзор классов

DateTimeInterface {
/* Методы */
public DateInterval diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public string format ( string $format )
public int getOffset ( void )
public int getTimestamp ( void )
public DateTimeZone getTimezone ( void )
public __wakeup ( void )
}

Список изменений

Версия | Описание
5.5.8 | Попытка реализовать интерфейс DateTimeInterface вызывает фатальную ошибку. Ранее реализация этого интерфейса ошибку не вызывало, но поведение было некорректным.

Содержание

  • DateTime::diff — Возвращает разницу между двумя DateTime объектами
  • DateTime::format — Возвращает дату, отформатированную согласно переданному формату
  • DateTime::getOffset — Возвращает смещение часовой зоны
  • DateTime::getTimestamp — Возвращает временную метку Unix
  • DateTime::getTimezone — Возвращает часовую зону относительно текущему значению DateTime
  • DateTime::__wakeup — Обработчик __wakeup


Возвращает разницу между двумя DateTime объектами

  • « DateTimeInterface
  • DateTime::format »
  • PHP Manual
  • DateTimeInterface
  • Возвращает разницу между двумя DateTime объектами

DateTime::diff

DateTimeImmutable::diff

DateTimeInterface::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7)

DateTime::diff -- DateTimeImmutable::diff -- DateTimeInterface::diff -- date_diff — Возвращает разницу между двумя DateTime объектами

Описание

Объектно-ориентированный стиль

public DateInterval DateTime::diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public DateInterval DateTimeImmutable::diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )
public DateInterval DateTimeInterface::diff ( DateTimeInterface $datetime2 [, bool $absolute = false ] )

Процедурный стиль

DateInterval date_diff ( DateTimeInterface $datetime1 , DateTimeInterface $datetime2 [, bool $absolute = false ] )

Возвращает разницу между двумя DateTimeInterface объектами.

Список параметров

datetime

Дата и время для сравнения.

absolute

Используется, чтобы вернуть абсолютную разницу.

Возвращаемые значения

DateInterval объект представляет разницу между двумя датами или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::diff()

Объектно-ориентированный стиль

<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a дней');
?>

Процедурный стиль

<?php
$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a дней');
?>

Результат выполнения данных примеров:

+2 days

Пример #2 Сравнение объектов DateTime

Замечание:

В PHP 5.2.2 объекты DateTime сравнивались при помощи операторов сравнения.

<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");

var_dump($date1 == $date2);
var_dump($date1 < $date2);
var_dump($date1 > $date2);
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)

Смотрите также

  • DateInterval::format() - Форматирует интервал
  • DateTime::add() - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
  • DateTime::sub() - Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime


Возвращает дату, отформатированную согласно переданному формату

  • « DateTime::diff
  • DateTime::getOffset »
  • PHP Manual
  • DateTimeInterface
  • Возвращает дату, отформатированную согласно переданному формату

DateTime::format

DateTimeImmutable::format

DateTimeInterface::format

date_format

(PHP 5 >= 5.2.0, PHP 7)

DateTime::format -- DateTimeImmutable::format -- DateTimeInterface::format -- date_format — Возвращает дату, отформатированную согласно переданному формату

Описание

Объектно-ориентированный стиль

public string DateTime::format ( string $format )
public string DateTimeImmutable::format ( string $format )
public string DateTimeInterface::format ( string $format )

Процедурный стиль

string date_format ( DateTimeInterface $object , string $format )

Возвращает дату, отформатированную согласно переданному формату.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create()

format

Формат, принимаемый функцией date().

Возвращаемые значения

Возвращает строку с отформатированной датой в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::format()

Объектно-ориентированный стиль

<?php
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:s');
?>

Процедурный стиль

<?php
$date = date_create('2000-01-01');
echo date_format($date, 'Y-m-d H:i:s');
?>

Результат выполнения данного примера:

2000-01-01 00:00:00

Примечания

Данный метод не использует настройки локали. Вывод производится на английском языке.

Смотрите также

  • date() - Форматирует вывод системной даты/времени


Возвращает смещение часовой зоны

  • « DateTime::format
  • DateTime::getTimestamp »
  • PHP Manual
  • DateTimeInterface
  • Возвращает смещение часовой зоны

DateTime::getOffset

DateTimeImmutable::getOffset

DateTimeInterface::getOffset

date_offset_get

(PHP 5 >= 5.2.0, PHP 7)

DateTime::getOffset -- DateTimeImmutable::getOffset -- DateTimeInterface::getOffset -- date_offset_get — Возвращает смещение часовой зоны

Описание

Объектно-ориентированный стиль

public int DateTime::getOffset ( void )
public int DateTimeImmutable::getOffset ( void )
public int DateTimeInterface::getOffset ( void )

Процедурный стиль

int date_offset_get ( DateTimeInterface $object )

Returns the timezone offset.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create()

Возвращаемые значения

В случае успеха возвращает смещение часовой зоны относительно UTC в секундах или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::getOffset()

Объектно-ориентированный стиль

<?php
$winter = new DateTime('2010-12-21', new DateTimeZone('America/New_York'));
$summer = new DateTime('2008-06-21', new DateTimeZone('America/New_York'));

echo $winter->getOffset() . "\n";
echo $summer->getOffset() . "\n";
?>

Процедурный стиль

<?php
$winter = date_create('2010-12-21', timezone_open('America/New_York'));
$summer = date_create('2008-06-21', timezone_open('America/New_York'));

echo date_offset_get($winter) . "\n";
echo date_offset_get($summer) . "\n";
?>

Результат выполнения данных примеров:

-18000
-14400

Замечание: -18000 = -5 часов, -14400 = -4 часа.


Возвращает временную метку Unix

  • « DateTime::getOffset
  • DateTime::getTimezone »
  • PHP Manual
  • DateTimeInterface
  • Возвращает временную метку Unix

DateTime::getTimestamp

DateTimeImmutable::getTimestamp

DateTimeInterface::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7)

DateTime::getTimestamp -- DateTimeImmutable::getTimestamp -- DateTimeInterface::getTimestamp -- date_timestamp_get — Возвращает временную метку Unix

Описание

Объектно-ориентированный стиль

public int DateTime::getTimestamp ( void )
public int DateTimeImmutable::getTimestamp ( void )
public int DateTimeInterface::getTimestamp ( void )

Процедурный стиль

int date_timestamp_get ( DateTimeInterface $object )

Возвращает временную метку Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает временную метку Unix для указанной даты.

Примеры

Пример #1 Пример использования DateTime::getTimestamp()

Объектно-ориентированный стиль

<?php
$date = new DateTime();
echo $date->getTimestamp();
?>

Процедурный стиль

<?php
$date = date_create();
echo date_timestamp_get($date);
?>

Результатом выполнения данных примеров будет что-то подобное:

1272509157

Примечания

Альтернативой данному методу в PHP 5.2 является использование модификатора U в качестве параметра к методу DateTime::format().

Смотрите также

  • DateTime::setTimestamp() - Устанавливает дату и время, основываясь на метке времени Unix
  • DateTime::format() - Возвращает дату, отформатированную согласно переданному формату


Возвращает часовую зону относительно текущему значению DateTime

  • « DateTime::getTimestamp
  • DateTime::__wakeup »
  • PHP Manual
  • DateTimeInterface
  • Возвращает часовую зону относительно текущему значению DateTime

DateTime::getTimezone

DateTimeImmutable::getTimezone

DateTimeInterface::getTimezone

date_timezone_get

(PHP 5 >= 5.2.0, PHP 7)

DateTime::getTimezone -- DateTimeImmutable::getTimezone -- DateTimeInterface::getTimezone -- date_timezone_get — Возвращает часовую зону относительно текущему значению DateTime

Описание

Объектно-ориентированный стиль

public DateTimeZone DateTime::getTimezone ( void )
public DateTimeZone DateTimeImmutable::getTimezone ( void )
public DateTimeZone DateTimeInterface::getTimezone ( void )

Процедурный стиль

DateTimeZone date_timezone_get ( DateTimeInterface $object )

Возвращает часовую зону относительно текущему значению DateTime.

Список параметров

object

Только для процедурного стиля: Объект DateTime, возвращаемый date_create()

Возвращаемые значения

Возвращает объект DateTimeZone в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTime::getTimezone()

Объектно-ориентированный стиль

<?php
$date = new DateTime(null, new DateTimeZone('Europe/London'));
$tz = $date->getTimezone();
echo $tz->getName();
?>

Процедурный стиль

<?php
$date = date_create(null, timezone_open('Europe/London'));
$tz = date_timezone_get($date);
echo timezone_name_get($tz);
?>

Результат выполнения данных примеров:

Europe/London

Смотрите также

  • DateTime::setTimezone() - Установка временной зоны для объекта класса DateTime


Обработчик __wakeup

  • « DateTime::getTimezone
  • DateTimeZone »
  • PHP Manual
  • DateTimeInterface
  • Обработчик __wakeup

DateTime::__wakeup

DateTimeImmutable::__wakeup

DateTimeInterface::__wakeup

(PHP 5 >= 5.2.0, PHP 7)

DateTime::__wakeup -- DateTimeImmutable::__wakeup -- DateTimeInterface::__wakeup — Обработчик __wakeup

Описание

public DateTime::__wakeup ( void )
public DateTimeImmutable::__wakeup ( void )
public DateTimeInterface::__wakeup ( void )

Обработчик __wakeup().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Инициализирует объект DateTime.


Класс DateTimeZone

(PHP 5 >= 5.2.0, PHP 7)

Введение

Представление временной зоны.

Обзор классов

DateTimeZone {
/* Константы */
const integer AFRICA = 1 ;
const integer AMERICA = 2 ;
const integer ANTARCTICA = 4 ;
const integer ARCTIC = 8 ;
const integer ASIA = 16 ;
const integer ATLANTIC = 32 ;
const integer AUSTRALIA = 64 ;
const integer EUROPE = 128 ;
const integer INDIAN = 256 ;
const integer PACIFIC = 512 ;
const integer UTC = 1024 ;
const integer ALL = 2047 ;
const integer ALL_WITH_BC = 4095 ;
const integer PER_COUNTRY = 4096 ;
/* Методы */
public __construct ( string $timezone )
public array getLocation ( void )
public string getName ( void )
public int getOffset ( DateTime $datetime )
public array getTransitions ([ int $timestamp_begin [, int $timestamp_end ]] )
public static array listAbbreviations ( void )
public static array listIdentifiers ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] )
}

Предопределенные константы

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 — Возвращает смещение временной зоны от GMT
  • DateTimeZone::getTransitions — Возвращает все переходы для временной зоны
  • DateTimeZone::listAbbreviations — Возвращает ассоциативный массив содержащий флаг перехода на летнее время, смещение и имя временной зоны
  • DateTimeZone::listIdentifiers — Возвращает численно индексированный массив со всеми идентификаторами временных зон


Создает новый объект DateTimeZone

  • « DateTimeZone
  • DateTimeZone::getLocation »
  • PHP Manual
  • DateTimeZone
  • Создает новый объект DateTimeZone

DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::__construct -- timezone_open — Создает новый объект DateTimeZone

Описание

Объектно-ориентированный стиль

public DateTimeZone::__construct ( string $timezone )

Процедурный стиль

DateTimeZone timezone_open ( string $timezone )

Создает новый объект DateTimeZone.

Список параметров

timezone

Одно из поддерживаемых имен временных зон.

Возвращаемые значения

В случае успеха возвращает DateTimeZone. Процедурный стиль возвращает FALSE в случае возникновения ошибки.

Ошибки

Этот метод вызывает Exception, если указанная временная зона не распознана как допустимая.

Примеры

Пример #1 Фиксация ошибок при создании экземпляра DateTimeZone

<?php
// Обработка ошибок с помощью перехвата исключений
$timezones = array('Europe/London', 'Mars/Phobos', 'Jupiter/Europa');

foreach ($timezones as $tz) {
    try {
        $mars = new DateTimeZone($tz);
    } catch(Exception $e) {
        echo $e->getMessage() . '<br />';
    }
}
?>

Результат выполнения данного примера:

DateTimeZone::__construct() [datetimezone.--construct]: Unknown or bad timezone (Mars/Phobos)
DateTimeZone::__construct() [datetimezone.--construct]:  Unknown or bad timezone (Jupiter/Europa)


Возвращает информацию о местоположении для временной зоны

  • « DateTimeZone::__construct
  • DateTimeZone::getName »
  • PHP Manual
  • DateTimeZone
  • Возвращает информацию о местоположении для временной зоны

DateTimeZone::getLocation

timezone_location_get

(PHP 5 >= 5.3.0, PHP 7)

DateTimeZone::getLocation -- timezone_location_get — Возвращает информацию о местоположении для временной зоны

Описание

Объектно-ориентированный стиль

public array DateTimeZone::getLocation ( void )

Процедурный стиль

array timezone_location_get ( DateTimeZone $object )

Возвращает информацию о местоположении временной зоны, включающую код страны, широту/долготу и комментарии.

Список параметров

object

Только для процедурного стиля: Объект DateTimeZone, возвращаемый timezone_open()

Возвращаемые значения

Массив, содержащий информацию о местоположении временной зоны.

Примеры

Пример #1 Пример использования DateTimeZone::getLocation()

<?php
$tz = new DateTimeZone("Europe/Prague");
print_r($tz->getLocation());
print_r(timezone_location_get($tz));
?>

Результат выполнения данного примера:

Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] =>
)
Array
(
    [country_code] => CZ
    [latitude] => 50.08333
    [longitude] => 14.43333
    [comments] =>
)


Возвращает имя временной зоны

  • « DateTimeZone::getLocation
  • DateTimeZone::getOffset »
  • PHP Manual
  • DateTimeZone
  • Возвращает имя временной зоны

DateTimeZone::getName

timezone_name_get

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::getName -- timezone_name_get — Возвращает имя временной зоны

Описание

Объектно-ориентированный стиль

public string DateTimeZone::getName ( void )

Процедурный стиль

string timezone_name_get ( DateTimeZone $object )

Возвращает имя временной зоны.

Список параметров

object

Объект класса DateTimeZone, для которого нужно получить имя.

Возвращаемые значения

Одно из имен временной зоны в списке временных зон.


Возвращает смещение временной зоны от GMT

  • « DateTimeZone::getName
  • DateTimeZone::getTransitions »
  • PHP Manual
  • DateTimeZone
  • Возвращает смещение временной зоны от GMT

DateTimeZone::getOffset

timezone_offset_get

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::getOffset -- timezone_offset_get — Возвращает смещение временной зоны от GMT

Описание

Объектно-ориентированный стиль

public int DateTimeZone::getOffset ( DateTime $datetime )

Процедурный стиль

int timezone_offset_get ( DateTimeZone $object , DateTime $datetime )

Эта функция возвращает смещение от GMT для даты/времени, указанных в параметре datetime. GMT-смещение рассчитывается с помощью информации о временной зоне, содержащейся в используемом объекте DateTimeZone.

Список параметров

object

Только для процедурного стиля: Объект DateTimeZone, возвращаемый timezone_open()

datetime

DateTime, содержащий дату/время, относительно которых вычисляется смещение.

Возвращаемые значения

В случае успеха возвращает смещение временной зоны в секундах или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DateTimeZone::getOffset()

<?php
// Создание двух объектов timezone, один для  Тайбэй (Тайвань) и один для
// Токио (Япония)
$dateTimeZoneTaipei = new DateTimeZone("Asia/Taipei");
$dateTimeZoneJapan = new DateTimeZone("Asia/Tokyo");

// Создание двух объектов DateTime которые будут содержать одинаковые метки времени Unix, но
// имеющие различные временные зоны.
$dateTimeTaipei = new DateTime("now", $dateTimeZoneTaipei);
$dateTimeJapan = new DateTime("now", $dateTimeZoneJapan);

// Вычисление смещения от GMT для даты/времени, содержащихся в объекте $dateTimeTaipei,
// но с использованием правил временной зоны, определенных для Токио
// ($dateTimeZoneJapan).
$timeOffset = $dateTimeZoneJapan->getOffset($dateTimeTaipei);

// Должен показать int(32400) (для дат после Sat Sep 8 01:00:00 1951 JST).
var_dump($timeOffset);
?>


Возвращает все переходы для временной зоны

  • « DateTimeZone::getOffset
  • DateTimeZone::listAbbreviations »
  • PHP Manual
  • DateTimeZone
  • Возвращает все переходы для временной зоны

DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::getTransitions -- timezone_transitions_get — Возвращает все переходы для временной зоны

Описание

Объектно-ориентированный стиль

public array DateTimeZone::getTransitions ([ int $timestamp_begin [, int $timestamp_end ]] )

Процедурный стиль

array timezone_transitions_get ( DateTimeZone $object [, int $timestamp_begin [, int $timestamp_end ]] )

Список параметров

object

Только для процедурного стиля: Объект DateTimeZone, возвращаемый timezone_open()

timestamp_begin

Начальная метка времени.

timestamp_end

Конечная метка времени.

Возвращаемые значения

В случае успеха возвращает численно индексированный массив, содержащий ассоциативные массивы со всеми переходами или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Были добавлены необязательные параметры timestamp_begin и timestamp_end.

Примеры

Пример #1 Пример использования timezone_transitions_get()

<?php
$timezone = new DateTimeZone("Europe/London");
$transitions = $timezone->getTransitions();
print_r(array_slice($transitions, 0, 3));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [ts] => -9223372036854775808
            [time] => -292277022657-01-27T08:29:52+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [1] => Array
        (
            [ts] => -1691964000
            [time] => 1916-05-21T02:00:00+0000
            [offset] => 3600
            [isdst] => 1
            [abbr] => BST
        )

    [2] => Array
        (
            [ts] => -1680472800
            [time] => 1916-10-01T02:00:00+0000
            [offset] => 0
            [isdst] =>
            [abbr] => GMT
        )

)


Возвращает ассоциативный массив содержащий флаг перехода на летнее время, смещение и имя временной зоны

  • « DateTimeZone::getTransitions
  • DateTimeZone::listIdentifiers »
  • PHP Manual
  • DateTimeZone
  • Возвращает ассоциативный массив содержащий флаг перехода на летнее время, смещение и имя временной зоны

DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::listAbbreviations -- timezone_abbreviations_list — Возвращает ассоциативный массив содержащий флаг перехода на летнее время, смещение и имя временной зоны

Описание

Объектно-ориентированный стиль

public static array DateTimeZone::listAbbreviations ( void )

Процедурный стиль

array timezone_abbreviations_list ( void )

Возвращаемые значения

В случае успеха возвращает массив или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования timezone_abbreviations_list()

<?php
$timezone_abbreviations = DateTimeZone::listAbbreviations();
print_r($timezone_abbreviations["acst"]);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Porto_Acre
        )

    [1] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Eirunepe
        )

    [2] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => America/Rio_Branco
        )

    [3] => Array
        (
            [dst] => 1
            [offset] => -14400
            [timezone_id] => Brazil/Acre
        )

)

Смотрите также

  • timezone_identifiers_list() - Псевдоним DateTimeZone::listIdentifiers


Возвращает численно индексированный массив со всеми идентификаторами временных зон

  • « DateTimeZone::listAbbreviations
  • DateInterval »
  • PHP Manual
  • DateTimeZone
  • Возвращает численно индексированный массив со всеми идентификаторами временных зон

DateTimeZone::listIdentifiers

timezone_identifiers_list

(PHP 5 >= 5.2.0, PHP 7)

DateTimeZone::listIdentifiers -- timezone_identifiers_list — Возвращает численно индексированный массив со всеми идентификаторами временных зон

Описание

Объектно-ориентированный стиль

public static array DateTimeZone::listIdentifiers ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] )

Процедурный стиль

array timezone_identifiers_list ([ int $what = DateTimeZone::ALL [, string $country = NULL ]] )

Список параметров

what

Одна из констант класса DateTimeZone.

country

Двухбуквенный код страны, совместимый с ISO 3166-1.

Замечание: Эта опция используется только если параметр what установлен в DateTimeZone::PER_COUNTRY.

Возвращаемые значения

В случае успеха возвращает массив или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлены необязательные параметры what и country.

Примеры

Пример #1 Пример использования timezone_identifiers_list()

<?php
$timezone_identifiers = DateTimeZone::listIdentifiers();
for ($i=0; $i < 5; $i++) {
    echo "$timezone_identifiers[$i]\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara

Смотрите также

  • timezone_abbreviations_list() - Псевдоним DateTimeZone::listAbbreviations


Класс DateInterval

(PHP 5 >= 5.3.0, PHP 7)

Введение

Представление интервалов дат.

Интервалы дат хранятся либо определенном фиксированном времени (в годах, месяцах, днях, часах и т.д.) или относительной строке времени, формат который поддерживает DateTime конструктор.

Обзор классов

DateInterval {
/* Свойства */
public integer $y ;
public integer $m ;
public integer $d ;
public integer $h ;
public integer $i ;
public integer $s ;
public integer $invert ;
public mixed $days ;
/* Методы */
public __construct ( string $interval_spec )
public static DateInterval createFromDateString ( string $time )
public string format ( string $format )
}

Свойства

y

Количество лет.

m

Количество месяцев.

d

Количество дней.

h

Количество часов.

i

Количество минут.

s

Количество секунд.

invert

Принимает 1, если интервал представляет отрицательный период времени и 0 в противном случае. См. DateInterval::format().

days

Если объект DateInterval создан методом DateTime::diff(), то это суммарное число дней между начальной и конечной датами. В противном случае days примет значение FALSE.

В версиях PHP до 5.4.20/5.5.4 при обращении к этому свойству Вы будете получать -99999 вместо FALSE.

Содержание

  • DateInterval::__construct — Создает новый объект DateInterval
  • DateInterval::createFromDateString — Создает объект класса DateInterval, используя данные из переданной строки
  • DateInterval::format — Форматирует интервал


Создает новый объект DateInterval

  • « DateInterval
  • DateInterval::createFromDateString »
  • PHP Manual
  • DateInterval
  • Создает новый объект DateInterval

DateInterval::__construct

(PHP 5 >= 5.3.0, PHP 7)

DateInterval::__construct — Создает новый объект DateInterval

Описание

public DateInterval::__construct ( string $interval_spec )

Создает новый объект DateInterval.

Список параметров

interval_spec

Описание интервала.

Формат описания интервала начинается с буквы P. Каждый период интервала описывается его длиной(целочисленное значение) и обозначением его типа. Возможные типы приведены в таблице. Если интервал содержит периоды обозначающие время, то их описанию должна предшествовать буква T.

interval_spec Типы периодов
Указатель периода | Описание
Y | года
M | месяцы
D | дни
W | недели. Преобразуется в дни, поэтому не может быть использован совместно с D.
H | часы
M | минуты
S | секунды

Вот несколько простых примеров. Два дня - P2D. Две секунды - PT2S. Шесть лет и пять минут - P6YT5M.

Замечание:

Указатели должны записываться от большей величины (слева) к меньшей величине (направо). То есть года должны быть до месяцев, месяцы до дней, дни до минут и так далее. Таким образом, один год и четыре дня должны быть представлены как P1Y4D, но не P4D1Y.

Задать период также можно в виде даты и времени. Пример одного года и четырех дней может описываться как P0001-00-04T00:00:00. Но значения в этом формате не должны выходить за рамки допустимых значений даты и времени (т.е., 25 часов недопустимо)

Эти форматы основаны на » спецификации ISO 8601.

Ошибки

Бросает Exception, если interval_spec не может быть распознан в качестве интервала.

Примеры

Пример #1 Пример использования DateInterval

<?php

$interval = new DateInterval('P2Y4DT6H8M');
var_dump($interval);

?>

Результат выполнения данного примера:

object(DateInterval)#1 (8) {
  ["y"]=>
  int(2)
  ["m"]=>
  int(0)
  ["d"]=>
  int(4)
  ["h"]=>
  int(6)
  ["i"]=>
  int(8)
  ["s"]=>
  int(0)
  ["invert"]=>
  int(0)
  ["days"]=>
  bool(false)
}

Смотрите также

  • DateInterval::format() - Форматирует интервал
  • DateTime::add() - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime
  • DateTime::sub() - Вычитает заданное количество дней, месяцев, лет, часов, минут и секунд из времени объекта DateTime
  • DateTime::diff() - Возвращает разницу между двумя DateTime объектами


Создает объект класса DateInterval, используя данные из переданной строки

  • « DateInterval::__construct
  • DateInterval::format »
  • PHP Manual
  • DateInterval
  • Создает объект класса DateInterval, используя данные из переданной строки

DateInterval::createFromDateString

(PHP 5 >= 5.3.0, PHP 7)

DateInterval::createFromDateString — Создает объект класса DateInterval, используя данные из переданной строки

Описание

public static DateInterval DateInterval::createFromDateString ( string $time )

Разбирает строку содержащую временной интервал в обычном (удобочитаемом) виде и создает на его основе объект класса DateInterval.

Список параметров

time

Дата, состоящая из относительных временных фрагментов. Точнее из частей записанных в относительном формате, который поддерживается анализатором функций strtotime() и DateTime, и с помощью которого создаются объекты 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');
?>

Возвращаемые значения

Возвращает новый объект класса DateInterval.


Форматирует интервал

  • « DateInterval::createFromDateString
  • DatePeriod »
  • PHP Manual
  • DateInterval
  • Форматирует интервал

DateInterval::format

(PHP 5 >= 5.3.0, PHP 7)

DateInterval::format — Форматирует интервал

Описание

public string DateInterval::format ( string $format )

Форматирует интервал.

Список параметров

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
R Знак "-" при отрицательном числе, "+" при положительном -, +
r Знак "-" при отрицательном числе, пусто при положительном -,

Возвращаемые значения

Возвращает отформатированный интервал.

Примечания

Замечание:

Метод DateInterval::format() не делает пересчета и переноса единиц времени при переполнении значений дат. Это ожидаемое поведение, поскольку невозможно реализовать перенос при значениях, например, "32 дня", которые могут интерпретироваться по-разному, начиная "1 месяц и 4 дня" и заканчивая "1 месяц и 1 день".

Примеры

Пример #1 Пример использования DateInterval

<?php

$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d days');

?>

Результат выполнения данного примера:

4 days

Пример #2 DateInterval и перенос единиц

<?php

$interval = new DateInterval('P32D');
echo $interval->format('%d days');

?>

Результат выполнения данного примера:

32 days

Пример #3 DateInterval и DateTime::diff() с модификаторами %a и %d

<?php

$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);

// %a выведет общее количество дней.
echo $interval->format('%a total days')."\n";

// В то время как %d выведет только число дней, не покрытых месяцем
echo $interval->format('%m month, %d days');

?>

Результат выполнения данного примера:

31 total days
1 month, 0 days

Смотрите также

  • DateTime::diff() - Возвращает разницу между двумя DateTime объектами


Класс DatePeriod

(PHP 5 >= 5.3.0, PHP 7)

Введение

Представляет временной период.

Позволяет перемещаться в заданном временном интервале на равные промежутки времени.

Обзор классов

DatePeriod implements Traversable {
/* Константы */
const integer EXCLUDE_START_DATE = 1 ;
/* Методы */
public __construct ( DateTimeInterface $start , DateInterval $interval , int $recurrences [, int $options ] )
public __construct ( DateTimeInterface $start , DateInterval $interval , DateTimeInterface $end [, int $options ] )
public __construct ( string $isostr [, int $options ] )
public DateInterval getDateInterval ( void )
public DateTimeInterface getEndDate ( void )
public DateTimeInterface getStartDate ( void )
}

Предопределенные константы

DatePeriod::EXCLUDE_START_DATE

Исключает начальную дату, используется в DatePeriod::__construct().

Содержание

  • DatePeriod::__construct — Создает новый объект DatePeriod
  • DatePeriod::getDateInterval — Возвращает интервал
  • DatePeriod::getEndDate — Возвращает конечную дату периода
  • DatePeriod::getStartDate — Возвращает начальную дату периода


Создает новый объект DatePeriod

  • « DatePeriod
  • DatePeriod::getDateInterval »
  • PHP Manual
  • DatePeriod
  • Создает новый объект DatePeriod

DatePeriod::__construct

(PHP 5 >= 5.3.0, PHP 7)

DatePeriod::__construct — Создает новый объект DatePeriod

Описание

public DatePeriod::__construct ( DateTimeInterface $start , DateInterval $interval , int $recurrences [, int $options ] )
public DatePeriod::__construct ( DateTimeInterface $start , DateInterval $interval , DateTimeInterface $end [, int $options ] )
public DatePeriod::__construct ( string $isostr [, int $options ] )

Создает новый объект DatePeriod.

Список параметров

start

Начальная дата.

interval

Интервал.

recurrences

Количество повторений.

end

Конечная дата.

isostr

Строка, содержащая интервал согласно спецификации ISO 8601.

options

Может быть установлено значение DatePeriod::EXCLUDE_START_DATE, для исключения начальной даты из периода.

Список изменений

Версия | Описание
5.5.8 | Тип параметра end изменен на DateTimeImmutable. Ранее использовался DateTime.
5.5.0 | Тип параметра start изменен на DateTimeImmutable. Ранее использовался DateTime.

Примеры

Пример #1 Пример использования DatePeriod

<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$recurrences = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';

// Эти периоды эквивалентны.
$period = new DatePeriod($start, $interval, $recurrences);
$period = new DatePeriod($start, $interval, $end);
$period = new DatePeriod($iso);

// При переборе экземпляра DatePeriod в цикле будут отображены все отобранные даты
// периода.
foreach ($period as $date) {
    echo $date->format('Y-m-d')."\n";
}
?>

Результат выполнения данного примера:

2012-07-01
2012-07-08
2012-07-15
2012-07-22
2012-07-29

Пример #2 Пример использования DatePeriod с DatePeriod::EXCLUDE_START_DATE

<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');

$period = new DatePeriod($start, $interval, $end,
                         DatePeriod::EXCLUDE_START_DATE);

// При переборе экземпляра DatePeriod в цикле будут отображены все отобранные даты
// периода.
// Однако в этом случае 2012-07-01 не будет отображена.
foreach ($period as $date) {
    echo $date->format('Y-m-d')."\n";
}
?>

Результат выполнения данного примера:

2012-07-08
2012-07-15
2012-07-22
2012-07-29

Примечания

Несвязное количество повторений, определенные в секции 4.5 ISO 8601 "Recurring time interval", не поддерживается. То есть ни подстановка "R/..." как isostr ни NULL как end работать не будут.


Возвращает интервал

  • « DatePeriod::__construct
  • DatePeriod::getEndDate »
  • PHP Manual
  • DatePeriod
  • Возвращает интервал

DatePeriod::getDateInterval

(PHP 5 >= 5.6.5, PHP 7)

DatePeriod::getDateInterval — Возвращает интервал

Описание

Объектно-ориентированный стиль

public DateInterval DatePeriod::getDateInterval ( void )

Возвращает объект 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::getStartDate »
  • PHP Manual
  • DatePeriod
  • Возвращает конечную дату периода

DatePeriod::getEndDate

(PHP 5 >= 5.6.5, PHP 7)

DatePeriod::getEndDate — Возвращает конечную дату периода

Описание

Объектно-ориентированный стиль

public DateTimeInterface DatePeriod::getEndDate ( void )

Возвращает конечную дату периода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает NULL, если DatePeriod не содержит конечной даты. К примеру когда инициализирован с параметром recurrences, или isostr без указания конечной даты.

Возвращает объект DateTimeImmutable когда DatePeriod инициализирован с объектом DateTimeImmutable в качестве параметра end.

Иначе возвращает объект DateTime.

Примеры

Пример #1 Пример использования DatePeriod::getEndDate()

<?php
$period = new DatePeriod(
    new DateTime('2016-05-16T00:00:00Z'),
    new DateInterval('P1D'),
    new DateTime('2016-05-20T00:00:00Z')
);
$start = $period->getEndDate();
echo $start->format(DateTime::ISO8601);
?>

Результат выполнения данных примеров:

2016-05-20T00:00:00+0000

Пример #2 Пример использования DatePeriod::getEndDate() без даты окончания

<?php
$period = new DatePeriod(
    new DateTime('2016-05-16T00:00:00Z'),
    new DateInterval('P1D'),
    7
);
var_dump($period->getEndDate());
?>

Результат выполнения данного примера:

NULL

Смотрите также

  • DatePeriod::getStartDate() - Возвращает начальную дату периода
  • DatePeriod::getDateInterval() - Возвращает интервал


Возвращает начальную дату периода

  • « DatePeriod::getEndDate
  • Функции даты и времени »
  • PHP Manual
  • DatePeriod
  • Возвращает начальную дату периода

DatePeriod::getStartDate

(PHP 5 >= 5.6.5, PHP 7)

DatePeriod::getStartDate — Возвращает начальную дату периода

Описание

Объектно-ориентированный стиль

public DateTimeInterface DatePeriod::getStartDate ( void )

Возвращает начальную дату периода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект DateTimeImmutable когда DatePeriod инициализирован с объектом DateTimeImmutable в качестве параметра start.

Иначе возвращает объект DateTime.

Примеры

Пример #1 Пример использования DatePeriod::getStartDate()

<?php
$period = new DatePeriod('R7/2016-05-16T00:00:00Z/P1D');
$start = $period->getStartDate();
echo $start->format(DateTime::ISO8601);
?>

Результат выполнения данного примера:

2016-05-16T00:00:00+0000

Смотрите также

  • DatePeriod::getEndDate() - Возвращает конечную дату периода
  • DatePeriod::getDateInterval() - Возвращает интервал


Функции даты и времени

Содержание

  • checkdate — Проверяет корректность даты по григорианскому календарю
  • date_add — Псевдоним DateTime::add
  • date_create_from_format — Псевдоним DateTime::createFromFormat
  • date_create_immutable_from_format — Псевдоним DateTimeImmutable::createFromFormat
  • date_create_immutable — Псевдоним DateTimeImmutable::__construct
  • date_create — Псевдоним DateTime::__construct
  • date_date_set — Псевдоним DateTime::setDate
  • date_default_timezone_get — Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте
  • date_default_timezone_set — Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте
  • date_diff — Псевдоним DateTime::diff
  • date_format — Псевдоним DateTime::format
  • date_get_last_errors — Псевдоним DateTime::getLastErrors
  • date_interval_create_from_date_string — Псевдоним DateInterval::createFromDateString
  • date_interval_format — Псевдоним DateInterval::format
  • date_isodate_set — Псевдоним DateTime::setISODate
  • date_modify — Псевдоним DateTime::modify
  • date_offset_get — Псевдоним DateTime::getOffset
  • date_parse_from_format — Получение информации о заданной в определенном формате дате
  • date_parse — Возвращает ассоциативный массив с подробной информацией о заданной дате
  • date_sub — Псевдоним DateTime::sub
  • date_sun_info — Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек
  • date_sunrise — Возвращает время рассвета для заданных дня и местоположения
  • date_sunset — Возвращает время захода солнца для заданных дня и местоположения
  • date_time_set — Псевдоним DateTime::setTime
  • date_timestamp_get — Псевдоним DateTime::getTimestamp
  • date_timestamp_set — Псевдоним DateTime::setTimestamp
  • date_timezone_get — Псевдоним DateTime::getTimezone
  • date_timezone_set — Псевдоним DateTime::setTimezone
  • date — Форматирует вывод системной даты/времени
  • getdate — Возвращает информацию о дате/времени
  • gettimeofday — Возвращает текущее время
  • gmdate — Форматирует дату/время по Гринвичу
  • gmmktime — Возвращает метку времени Unix для времени по Гринвичу
  • gmstrftime — Форматирует дату/время по Гринвичу с учетом текущей локали
  • idate — Преобразует локальное время/дату в целое число
  • localtime — Возвращает локальное время
  • microtime — Возвращает текущую метку времени Unix с микросекундами
  • mktime — Возвращает метку времени Unix для заданной даты
  • strftime — Форматирует текущую дату/время с учетом текущих настроек локали
  • strptime — Разбирает строку даты/времени сгенерированную функцией strftime
  • strtotime — Преобразует текстовое представление даты на английском языке в метку времени Unix
  • time — Возвращает текущую метку времени Unix
  • timezone_abbreviations_list — Псевдоним DateTimeZone::listAbbreviations
  • timezone_identifiers_list — Псевдоним DateTimeZone::listIdentifiers
  • timezone_location_get — Псевдоним DateTimeZone::getLocation
  • timezone_name_from_abbr — Возвращает временную зону в соответствии с аббревиатурой
  • timezone_name_get — Псевдоним DateTimeZone::getName
  • timezone_offset_get — Псевдоним DateTimeZone::getOffset
  • timezone_open — Псевдоним DateTimeZone::__construct
  • timezone_transitions_get — Псевдоним DateTimeZone::getTransitions
  • timezone_version_get — Получение номера версии базы данных временных зон


Проверяет корректность даты по григорианскому календарю

  • « Функции даты и времени
  • date_add »
  • PHP Manual
  • Функции даты и времени
  • Проверяет корректность даты по григорианскому календарю

checkdate

(PHP 4, PHP 5, PHP 7)

checkdate — Проверяет корректность даты по григорианскому календарю

Описание

bool checkdate ( int $month , int $day , int $year )

Проверяет корректность даты по переданным аргументам. Дата считается корректной, если все параметры принимают допустимые значения.

Список параметров

month

Месяц. Принимает значения от 1 до 12 включительно.

day

День. Принимает значения, допустимые для указанного месяца month. При этом учитывается, является ли год year високосным.

year

Год. Принимает значения от 1 до 32767 включительно.

Возвращаемые значения

Возвращает TRUE, если проверяемая дата является корректной, или FALSE в противном случае.

Примеры

Пример #1 Пример использования функции checkdate()

<?php
var_dump(checkdate(12, 31, 2000));
var_dump(checkdate(2, 29, 2001));
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • mktime() - Возвращает метку времени Unix для заданной даты
  • strtotime() - Преобразует текстовое представление даты на английском языке в метку времени Unix


Псевдоним DateTime::add

  • « checkdate
  • date_create_from_format »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::add

date_add

(PHP 5 >= 5.3.0, PHP 7)

date_add — Псевдоним DateTime::add()

Описание

Эта функция является псевдонимом: DateTime::add()


Псевдоним DateTime::createFromFormat

  • « date_add
  • date_create_immutable_from_format »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::createFromFormat

date_create_from_format

(PHP 5 >= 5.3.0, PHP 7)

date_create_from_format — Псевдоним DateTime::createFromFormat()

Описание

Эта функция является псевдонимом: DateTime::createFromFormat()


Псевдоним DateTimeImmutable::createFromFormat

  • « date_create_from_format
  • date_create_immutable »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeImmutable::createFromFormat

date_create_immutable_from_format

(PHP 5 >= 5.5.0, PHP 7)

date_create_immutable_from_format — Псевдоним DateTimeImmutable::createFromFormat()

Описание

Эта функция является псевдонимом: DateTimeImmutable::createFromFormat()


Псевдоним DateTimeImmutable::__construct

  • « date_create_immutable_from_format
  • date_create »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeImmutable::__construct

date_create_immutable

(PHP 5 >= 5.5.0, PHP 7)

date_create_immutable — Псевдоним DateTimeImmutable::__construct()

Описание

Эта функция является псевдонимом: DateTimeImmutable::__construct()


Псевдоним DateTime::__construct

  • « date_create_immutable
  • date_date_set »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::__construct

date_create

(PHP 5 >= 5.2.0, PHP 7)

date_create — Псевдоним DateTime::__construct()

Описание

Эта функция является псевдонимом: DateTime::__construct()


Псевдоним DateTime::setDate

  • « date_create
  • date_default_timezone_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setDate

date_date_set

(PHP 5 >= 5.2.0, PHP 7)

date_date_set — Псевдоним DateTime::setDate()

Описание

Эта функция является псевдонимом: DateTime::setDate()


Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте

  • « date_date_set
  • date_default_timezone_set »
  • PHP Manual
  • Функции даты и времени
  • Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте

date_default_timezone_get

(PHP 5 >= 5.1.0, PHP 7)

date_default_timezone_get — Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте

Описание

string date_default_timezone_get ( void )

Функция пытается получить временную зону по умолчанию по порядку следующими способами:

  • Чтение настройки временной зоны с помощью функции date_default_timezone_set() (если применимо)

  • Только до версии PHP 5.4.0: чтение переменной окружения TZ (если она не пуста)

  • Чтение значения ini настройки date.timezone (если задана)

  • Только до версии PHP 5.4.0: опрос операционной системы (если поддерживается и разрешено ОС). При этом используется механизм угадывания временной зоны. Этот механизм не всегда корректно работает. Если используется этот метод (все предыдущие не дали результата), будет выдано предупреждение. Не стоит полагаться на результат, полученный этим способом, вместо этого лучше задать в параметрах временной зоны date.timezone правильное значение.

Если ни один из способов не принес результата, date_default_timezone_get() вернет временную зону UTC.

Возвращаемые значения

Возвращает string.

Список изменений

Версия | Описание
5.4.0 | Переменная окружения TZ больше не используется при угадывании временной зоны.
5.4.0 | Временная зона больше не угадывается с помощью информации, полученной из операционной системы, так как данный метод нестабилен и на него нельзя полагаться.

Примеры

Пример #1 Получение временной зоны по умолчанию

<?php
date_default_timezone_set('Europe/London');

if (date_default_timezone_get()) {
    echo 'date_default_timezone_set: ' . date_default_timezone_get() . '<br />';
}

if (ini_get('date.timezone')) {
    echo 'date.timezone: ' . ini_get('date.timezone');
}

?>

Результатом выполнения данного примера будет что-то подобное:

date_default_timezone_set: Europe/London
date.timezone: Europe/London

Пример #2 Получение аббревиатуры временной зоны

<?php
date_default_timezone_set('America/Los_Angeles');
echo date_default_timezone_get() . ' => ' . date('e') . ' => ' . date('T');
?>

Результат выполнения данного примера:

America/Los_Angeles => America/Los_Angeles => PST

Смотрите также

  • date_default_timezone_set() - Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте
  • Список поддерживаемых временных зон


Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте

  • « date_default_timezone_get
  • date_diff »
  • PHP Manual
  • Функции даты и времени
  • Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте

date_default_timezone_set

(PHP 5 >= 5.1.0, PHP 7)

date_default_timezone_set — Устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте

Описание

bool date_default_timezone_set ( string $timezone_identifier )

date_default_timezone_set() устанавливает временную зону по умолчанию для всех функций даты/времени в скрипте .

Замечание:

Начиная с версии PHP 5.1.0 (когда функции даты/времени были переписаны), вызов любой функции даты времени генерирует E_NOTICE, если временная зона имеет неверное значение, и/или E_WARNING, если используются системные параметры или переменная окружения TZ.

Вместо использования этой функции, Вы можете воспользоваться INI настройкой date.timezone для установки временной зоны по умолчанию.

Список параметров

timezone_identifier

Идентификатор временной зоны, как например UTC или Europe/Lisbon. Список поддерживаемых временных зон.

Возвращаемые значения

Функция возвращает FALSE, если timezone_identifier имеет неверное значение, в остальных случаях TRUE.

Примеры

Пример #1 Получение временной зоны по умолчанию

<?php
date_default_timezone_set('America/Los_Angeles');

$script_tz = date_default_timezone_get();

if (strcmp($script_tz, ini_get('date.timezone'))){
    echo 'Временная зона скрипта отличается от заданной в INI-файле.';
} else {
    echo 'Временные зоны скрипта и настройки INI-файла совпадают.';
}
?>

Список изменений

Версия | Описание
5.3.0 | Теперь выбрасывает E_WARNING вместо E_STRICT.
5.1.2 | Функция начала проверять timezone_identifier.

Смотрите также

  • date_default_timezone_get() - Возвращает временную зону, используемой по умолчанию всеми функциями даты/времени в скрипте
  • Список поддерживаемых временных зон


Псевдоним DateTime::diff

  • « date_default_timezone_set
  • date_format »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::diff

date_diff

(PHP 5 >= 5.3.0, PHP 7)

date_diff — Псевдоним DateTime::diff()

Описание

Эта функция является псевдонимом: DateTime::diff()


Псевдоним DateTime::format

  • « date_diff
  • date_get_last_errors »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::format

date_format

(PHP 5 >= 5.2.0, PHP 7)

date_format — Псевдоним DateTime::format()

Описание

Эта функция является псевдонимом: DateTime::format()


Псевдоним DateTime::getLastErrors

  • « date_format
  • date_interval_create_from_date_string »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::getLastErrors

date_get_last_errors

(PHP 5 >= 5.3.0, PHP 7)

date_get_last_errors — Псевдоним DateTime::getLastErrors()

Описание

Эта функция является псевдонимом: DateTime::getLastErrors()


Псевдоним DateInterval::createFromDateString

  • « date_get_last_errors
  • date_interval_format »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateInterval::createFromDateString

date_interval_create_from_date_string

(PHP 5 >= 5.3.0, PHP 7)

date_interval_create_from_date_string — Псевдоним DateInterval::createFromDateString()

Описание

Эта функция является псевдонимом: DateInterval::createFromDateString()


Псевдоним DateInterval::format

  • « date_interval_create_from_date_string
  • date_isodate_set »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateInterval::format

date_interval_format

(PHP 5 >= 5.3.0, PHP 7)

date_interval_format — Псевдоним DateInterval::format()

Описание

Эта функция является псевдонимом: DateInterval::format()


Псевдоним DateTime::setISODate

  • « date_interval_format
  • date_modify »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7)

date_isodate_set — Псевдоним DateTime::setISODate()

Описание

Эта функция является псевдонимом: DateTime::setISODate()


Псевдоним DateTime::modify

  • « date_isodate_set
  • date_offset_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::modify

date_modify

(PHP 5 >= 5.2.0, PHP 7)

date_modify — Псевдоним DateTime::modify()

Описание

Эта функция является псевдонимом: DateTime::modify()


Псевдоним DateTime::getOffset

  • « date_modify
  • date_parse_from_format »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::getOffset

date_offset_get

(PHP 5 >= 5.2.0, PHP 7)

date_offset_get — Псевдоним DateTime::getOffset()

Описание

Эта функция является псевдонимом: DateTime::getOffset()


Получение информации о заданной в определенном формате дате

  • « date_offset_get
  • date_parse »
  • PHP Manual
  • Функции даты и времени
  • Получение информации о заданной в определенном формате дате

date_parse_from_format

(PHP 5 >= 5.3.0, PHP 7)

date_parse_from_format — Получение информации о заданной в определенном формате дате

Описание

array date_parse_from_format ( string $format , string $date )

Возвращает ассоциативный массив с подробной информацией о заданной дате.

Список параметров

format

Формат, распознаваемый функцией DateTime::createFromFormat().

date

Строка, представляющая дату.

Возвращаемые значения

Возвращает ассоциативный массив с подробной информацией о заданной дате.

Примеры

Пример #1 Пример использования date_parse_from_format()

<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>

Результат выполнения данного примера:

Array
(
    [year] => 2009
    [month] => 1
    [day] => 6
    [hour] => 13
    [minute] => 0
    [second] => 0
    [fraction] =>
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] => 1
    [zone_type] => 1
    [zone] => -60
    [is_dst] =>
)

Смотрите также

  • DateTime::createFromFormat() - Разбирает строку, содержащую время, в соответствии с заданным форматом
  • checkdate() - Проверяет корректность даты по григорианскому календарю


Возвращает ассоциативный массив с подробной информацией о заданной дате

  • « date_parse_from_format
  • date_sub »
  • PHP Manual
  • Функции даты и времени
  • Возвращает ассоциативный массив с подробной информацией о заданной дате

date_parse

(PHP 5 >= 5.2.0, PHP 7)

date_parse — Возвращает ассоциативный массив с подробной информацией о заданной дате

Описание

array date_parse ( string $date )

Список параметров

date

Дата в формате, распознаваемом функцией strtotime().

Возвращаемые значения

Возвращает массив (array), содержащий информацию о дате в случае успеха или FALSE в случае возникновения ошибки.

Ошибки

В случае ошибок форматирования даты, элемент массива 'errors' будет содержать сообщения об этих ошибках.

Примеры

Пример #1 Пример использования date_parse()

<?php
print_r(date_parse("2006-12-12 10:00:00.5"));
?>

Результат выполнения данного примера:

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array()
    [error_count] => 0
    [errors] => Array()
    [is_localtime] =>
)

Относительные форматы не влияют на значения разобранные из абсолютных форматов, но разобранные в "относительный" элемент.

Пример #2 date_parse() с относительным форматом

<?php
print_r(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));
?>

Результат выполнения данного примера:

Array
(
    [year] => 2006
    [month] => 12
    [day] => 12
    [hour] => 10
    [minute] => 0
    [second] => 0
    [fraction] => 0.5
    [warning_count] => 0
    [warnings] => Array()
    [error_count] => 0
    [errors] => Array ()

    [is_localtime] =>
    [relative] => Array
        (
            [year] => 0
            [month] => 0
            [day] => 7
            [hour] => 1
            [minute] => 0
            [second] => 0
        )

)

Смотрите также

  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • getdate() - Возвращает информацию о дате/времени


Псевдоним DateTime::sub

  • « date_parse
  • date_sun_info »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::sub

date_sub

(PHP 5 >= 5.3.0, PHP 7)

date_sub — Псевдоним DateTime::sub()

Описание

Эта функция является псевдонимом: DateTime::sub()


Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек

  • « date_sub
  • date_sunrise »
  • PHP Manual
  • Функции даты и времени
  • Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек

date_sun_info

(PHP 5 >= 5.1.2, PHP 7)

date_sun_info — Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек

Описание

array date_sun_info ( int $time , float $latitude , float $longitude )

Список параметров

time

Временная метка.

latitude

Широта в градусах.

longitude

Долгота в градусах.

Возвращаемые значения

Возвращает массив при успешном завершении или FALSE в случае возникновения ошибки.

Примеры

Пример #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

Смотрите также

  • date_sunrise() - Возвращает время рассвета для заданных дня и местоположения
  • date_sunset() - Возвращает время захода солнца для заданных дня и местоположения


Возвращает время рассвета для заданных дня и местоположения

  • « date_sun_info
  • date_sunset »
  • PHP Manual
  • Функции даты и времени
  • Возвращает время рассвета для заданных дня и местоположения

date_sunrise

(PHP 5, PHP 7)

date_sunrise — Возвращает время рассвета для заданных дня и местоположения

Описание

mixed date_sunrise ( int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get("date.default_latitude") [, float $longitude = ini_get("date.default_longitude") [, float $zenith = ini_get("date.sunrise_zenith") [, float $gmt_offset = 0 ]]]]] )

date_sunrise() возвращает время рассвета для определенных дня (заданного аргументом timestamp) и местоположения.

Список параметров

timestamp

Временная метка (timestamp) дня, для которого определяется время рассвета.

format

format constants
константа | описание | пример
SUNFUNCS_RET_STRING | тип возвращаемого результата string | 16:46
SUNFUNCS_RET_DOUBLE | тип возвращаемого результата float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | тип возвращаемого результата integer (временная метка) | 1095034606

latitude

По умолчанию в Северном полушарии, для Южного передается отрицательная величина. См. также date.default_latitude.

longitude

По умолчанию восточная, для указания западной долготы передается отрицательная величина. См. также date.default_longitude.

zenith

По умолчанию: date.sunrise_zenith

gmtoffset

Задается в часах.

Возвращаемые значения

Возвращает время восхода солнца в заданном формате format или FALSE в случае возникновения ошибки.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Примеры

Пример #1 Пример использования date_sunrise()

<?php

/* расчет времени восхода солнца в Лиссабоне, Португалия
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', время восхода солнца : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

Результатом выполнения данного примера будет что-то подобное:

Mon Dec 20 2004, время восхода солнца : 08:54

Смотрите также

  • date_sunset() - Возвращает время захода солнца для заданных дня и местоположения


Возвращает время захода солнца для заданных дня и местоположения

  • « date_sunrise
  • date_time_set »
  • PHP Manual
  • Функции даты и времени
  • Возвращает время захода солнца для заданных дня и местоположения

date_sunset

(PHP 5, PHP 7)

date_sunset — Возвращает время захода солнца для заданных дня и местоположения

Описание

mixed date_sunset ( int $timestamp [, int $format = SUNFUNCS_RET_STRING [, float $latitude = ini_get("date.default_latitude") [, float $longitude = ini_get("date.default_longitude") [, float $zenith = ini_get("date.sunset_zenith") [, float $gmt_offset = 0 ]]]]] )

date_sunset() возвращает время захода солнца для определенных дня (заданного аргументом timestamp) и местоположения.

Список параметров

timestamp

Временная метка (timestamp) дня, для которого определяется время захода солнца.

format

format constants
константа | описание | пример
SUNFUNCS_RET_STRING | тип возвращаемого результата string | 16:46
SUNFUNCS_RET_DOUBLE | тип возвращаемого результата float | 16.78243132
SUNFUNCS_RET_TIMESTAMP | тип возвращаемого результата integer (временная метка) | 1095034606

latitude

По умолчанию в Северном полушарии, для Южного передается отрицательная величина. См. также date.default_latitude.

longitude

По умолчанию восточная, для указания западной долготы передается отрицательная величина. См. также date.default_longitude.

zenith

По умолчанию: date.sunset_zenith

gmtoffset

Задается в часах.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Возвращаемые значения

Возвращает время захода солнца в заданном формате format или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования date_sunset()

<?php

/* calculate the sunset time for Lisbon, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', время захода солнца : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

Результатом выполнения данного примера будет что-то подобное:

Mon Dec 20 2004, время захода солнца : 18:13

Смотрите также

  • date_sunrise() - Возвращает время рассвета для заданных дня и местоположения


Псевдоним DateTime::setTime

  • « date_sunset
  • date_timestamp_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setTime

date_time_set

(PHP 5 >= 5.2.0, PHP 7)

date_time_set — Псевдоним DateTime::setTime()

Описание

Эта функция является псевдонимом: DateTime::setTime()


Псевдоним DateTime::getTimestamp

  • « date_time_set
  • date_timestamp_set »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7)

date_timestamp_get — Псевдоним DateTime::getTimestamp()

Описание

Эта функция является псевдонимом: DateTime::getTimestamp()


Псевдоним DateTime::setTimestamp

  • « date_timestamp_get
  • date_timezone_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setTimestamp

date_timestamp_set

(PHP 5 >= 5.3.0, PHP 7)

date_timestamp_set — Псевдоним DateTime::setTimestamp()

Описание

Эта функция является псевдонимом: DateTime::setTimestamp()


Псевдоним DateTime::getTimezone

  • « date_timestamp_set
  • date_timezone_set »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::getTimezone

date_timezone_get

(PHP 5 >= 5.2.0, PHP 7)

date_timezone_get — Псевдоним DateTime::getTimezone()

Описание

Эта функция является псевдонимом: DateTime::getTimezone()


Псевдоним DateTime::setTimezone

  • « date_timezone_get
  • date »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTime::setTimezone

date_timezone_set

(PHP 5 >= 5.2.0, PHP 7)

date_timezone_set — Псевдоним DateTime::setTimezone()

Описание

Эта функция является псевдонимом: DateTime::setTimezone()


Форматирует вывод системной даты/времени

  • « date_timezone_set
  • getdate »
  • PHP Manual
  • Функции даты и времени
  • Форматирует вывод системной даты/времени

date

(PHP 4, PHP 5, PHP 7)

date — Форматирует вывод системной даты/времени

Описание

string date ( string $format [, int $timestamp = time() ] )

Возвращает строку, отформатированную в соответствии с указанным шаблоном format. Используется метка времени, заданная аргументом timestamp, или текущее системное время, если timestamp не задан. Таким образом, timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time().

Список параметров

format

Шаблон результирующей строки (string) с датой. См. параметры форматирования ниже. Также существует несколько предопределенных констант даты/времени, которые могут быть использованы вместо этих параметров. Например: DATE_RSS заменяет шаблон 'D, d M Y H:i:s'.

В параметре format распознаются следующие символы
Символ в строке format | Описание | Пример возвращаемого значения
День --- ---
d | День месяца, 2 цифры с ведущим нулём | от 01 до 31
D | Текстовое представление дня недели, 3 символа | от Mon до Sun
j | День месяца без ведущего нуля | от 1 до 31
l (строчная 'L') | Полное наименование дня недели | от Sunday до Saturday
N | Порядковый номер дня недели в соответствии со стандартом ISO-8601 (добавлен в версии PHP 5.1.0) | от 1 (понедельник) до 7 (воскресенье)
S | Английский суффикс порядкового числительного дня месяца, 2 символа | st, nd, rd или th. Применяется совместно с j
w | Порядковый номер дня недели | от 0 (воскресенье) до 6 (суббота)
z | Порядковый номер дня в году (начиная с 0) | От 0 до 365
Неделя --- ---
W | Порядковый номер недели года в соответствии со стандартом ISO-8601; недели начинаются с понедельника | Например: 42 (42-я неделя года)
Месяц --- ---
F | Полное наименование месяца, например January или March | от January до December
m | Порядковый номер месяца с ведущим нулём | от 01 до 12
M | Сокращенное наименование месяца, 3 символа | от Jan до Dec
n | Порядковый номер месяца без ведущего нуля | от 1 до 12
t | Количество дней в указанном месяце | от 28 до 31
Год --- ---
L | Признак високосного года | 1, если год високосный, иначе 0.
o | Номер года в соответствии со стандартом ISO-8601. Имеет то же значение, что и Y, кроме случая, когда номер недели ISO (W) принадлежит предыдущему или следующему году; тогда будет использован год этой недели. (добавлен в версии PHP 5.1.0) | Примеры: 1999 или 2003
Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2003
y | Номер года, 2 цифры | Примеры: 99, 03
Время --- ---
a | Ante meridiem (англ. "до полудня") или Post meridiem (англ. "после полудня") в нижнем регистре | am или pm
A | Ante meridiem или Post meridiem в верхнем регистре | AM или PM
B | Время в формате Интернет-времени (альтернативной системы отсчета времени суток) | от 000 до 999
g | Часы в 12-часовом формате без ведущего нуля | от 1 до 12
G | Часы в 24-часовом формате без ведущего нуля | от 0 до 23
h | Часы в 12-часовом формате с ведущим нулём | от 01 до 12
H | Часы в 24-часовом формате с ведущим нулём | от 00 до 23
i | Минуты с ведущим нулём | от 00 до 59
s | Секунды с ведущим нулём | от 00 до 59
u | Микросекунды (добавлено в версии PHP 5.2.2). Учтите, что date() всегда будет возвращать 000000, т.к. она принимает целочисленный параметр, тогда как DateTime::format() поддерживает микросекунды, если DateTime создан с ними. | Например: 654321
v | Миллисекунды (добавлено в PHP 7.0.0). То же замечание справедливо и для u. | Example: 654
Временная зона --- ---
e | Код шкалы временной зоны(добавлен в версии PHP 5.1.0) | Примеры: UTC, GMT, Atlantic/Azores
I (заглавная i) | Признак летнего времени | 1, если дата соответствует летнему времени, 0 в противном случае.
O | Разница с временем по Гринвичу, в часах | Например: +0200
P | Разница с временем по Гринвичу с двоеточием между часами и минутами (добавлено в версии PHP 5.1.3) | Например: +02:00
T | Аббревиатура временной зоны | Примеры: EST, MDT ...
Z | Смещение временной зоны в секундах. Для временных зон, расположенных западнее UTC возвращаются отрицательные числа, а расположенных восточнее UTC - положительные. | от -43200 до 50400
Полная дата/время --- ---
c | Дата в формате стандарта ISO 8601 (добавлено в PHP 5) | 2004-02-12T15:19:21+00:00
r | Дата в формате » RFC 2822 | Например: Thu, 21 Dec 2000 16:01:07 +0200
U | Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT) | Смотрите также time()

Любые другие символы, встреченные в строке-шаблоне, будут выведены в результирующую строку без изменений. Z всегда возвращает 0 при использовании gmdate().

Замечание:

Поскольку рассматриваемая функция принимает в качестве параметра временные метки типа integer, форматирующий символ u будет полезен только при использовании функции date_format() и пользовательских меток времени, созданных с помощью функции date_create().

timestamp

Необязательный параметр timestamp представляет собой integer метку времени, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает отформатированную строку с датой. При передаче нечислового значения в качестве параметра timestamp будет возвращено FALSE и вызвана ошибка уровня E_WARNING.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.1.0 | Допустимым диапазоном дат для временных меток обычно являются даты с 13 декабря 1901, 20:45:54 GMT по 19 января 2038, 03:14:07 GMT. (Они соответствуют минимальному и максимальному значению 32-битного целого числа со знаком). Однако для PHP версии ниже 5.1.0 в некоторых операционных системах (например, Windows) этот диапазон был ограничен датами 01-01-1970 до 19-01-2038.
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.
5.1.1 | Для стандартных форматов даты/времени существуют специальные константы, которые могут быть указаны в качестве параметра format.

Примеры

Пример #1 Примеры использования функции date()

<?php
// установка временной зоны по умолчанию. Доступно начиная с версии PHP 5.1
date_default_timezone_set('UTC');

// выведет примерно следующее: Monday
echo date("l");

// выведет примерно следующее: Monday 8th of August 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// выведет: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

/* пример использования константы в качестве форматирующего параметра */
// выведет примерно следующее: Mon, 15 Aug 2005 15:12:46 UTC
echo date(DATE_RFC822);

// выведет примерно следующее: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));
?>

Чтобы запретить распознавание символа как форматирующего, следует экранировать его с помощью обратного слэша. Если экранированный символ также является форматирующей последовательностью, то следует экранировать его повторно.

Пример #2 Экранирование символов в функции date()

<?php
// выведет примерно следующее: Wednesday the 15th
echo date('l \t\h\e jS');
?>

Для вывода прошедших и будущих дат удобно использовать функции date() и mktime().

Пример #3 Пример совместного использования функций date() и mktime()

<?php
$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);
?>

Замечание:

Данный способ более надежен, чем простое вычитание и прибавление секунд к метке времени, поскольку позволяет при необходимости гибко осуществить переход на летнее/зимнее время.

Ещё несколько примеров использования функции date(). Важно отметить, что следует экранировать все символы, которые необходимо оставить без изменений. Это справедливо и для тех символов, которые в текущей версии PHP не распознаются как форматирующие, поскольку это может быть введено в следующих версиях. Для экранировании управляющих последовательностей (например, \n) следует использовать одинарные кавычки.

Пример #4 Форматирование с использованием date()

<?php
// Предположим, что текущей датой является 10 марта 2001, 5:16:18 вечера,
// и мы находимся во временной зоне Mountain Standard Time (MST)

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (формат MySQL DATETIME)
?>

Для форматирования дат на других языках используйте вместо date() функции setlocale() и strftime().

Примечания

Замечание:

Для получения метки времени из строкового представления даты можно воспользоваться функцией strtotime(). Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (например, функция MySQL » UNIX_TIMESTAMP).

Подсказка

Начиная с версии PHP 5.1, временную метку начала запроса можно получить из поля $_SERVER['REQUEST_TIME'].

Смотрите также

  • gmdate() - Форматирует дату/время по Гринвичу
  • idate() - Преобразует локальное время/дату в целое число
  • getdate() - Возвращает информацию о дате/времени
  • getlastmod() - Определение времени последней модификации страницы
  • mktime() - Возвращает метку времени Unix для заданной даты
  • strftime() - Форматирует текущую дату/время с учетом текущих настроек локали
  • time() - Возвращает текущую метку времени Unix
  • strtotime() - Преобразует текстовое представление даты на английском языке в метку времени Unix
  • Предопределенные константы даты и времени


Возвращает информацию о дате/времени

  • « date
  • gettimeofday »
  • PHP Manual
  • Функции даты и времени
  • Возвращает информацию о дате/времени

getdate

(PHP 4, PHP 5, PHP 7)

getdate — Возвращает информацию о дате/времени

Описание

array getdate ([ int $timestamp = time() ] )

Возвращает ассоциативный массив (array), содержащий информацию о дате, представленной меткой времени timestamp или текущим системным временем, если timestamp не был передан.

Список параметров

timestamp

Необязательный параметр timestamp представляет собой integer метку времени, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает ассоциативный массив (array) с информацией о параметре timestamp, который содержит следующие элементы:

Индексы возвращаемого ассоциативного массива
Индекс | Описание | Пример значения
"seconds" | Числовое представление секунд | от 0 до 59
"minutes" | Числовое представление минут | от 0 до 59
"hours" | Числовое представление часов | от 0 до 23
"mday" | Порядковый номер дня месяца | от 1 до 31
"wday" | Порядковый номер дня недели | от 0 (воскресенье) до 6 (суббота)
"mon" | Порядковый номер месяца | от 1 до 12
"year" | Номер года, 4 цифры | Примеры: 1999, 2003
"yday" | Порядковый номер дня в году | от 0 до 365
"weekday" | Полное наименование дня недели | от Sunday до Saturday
"month" | Полное наименование месяца, например, January или March | от January до December
0 | Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch), подобно значению, возвращаемому функцией time() и используемому функцией date(). | Зависит от платформы, в большинстве случаев от -2147483648 до 2147483647.

Примеры

Пример #1 Пример использования функции getdate()

<?php
$today = getdate();
print_r($today);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [seconds] => 40
    [minutes] => 58
    [hours]   => 21
    [mday]    => 17
    [wday]    => 2
    [mon]     => 6
    [year]    => 2003
    [yday]    => 167
    [weekday] => Tuesday
    [month]   => June
    [0]       => 1055901520
)

Смотрите также

  • date() - Форматирует вывод системной даты/времени
  • idate() - Преобразует локальное время/дату в целое число
  • localtime() - Возвращает локальное время
  • time() - Возвращает текущую метку времени Unix
  • setlocale() - Устанавливает настройки локали


Возвращает текущее время

  • « getdate
  • gmdate »
  • PHP Manual
  • Функции даты и времени
  • Возвращает текущее время

gettimeofday

(PHP 4, PHP 5, PHP 7)

gettimeofday — Возвращает текущее время

Описание

mixed gettimeofday ([ bool $return_float = false ] )

Функция является интерфейсом к системному вызову gettimeofday(2). Она возвращает ассоциативный массив, содержащий информацию, полученную от системного вызова.

Список параметров

return_float

Если установлено в TRUE, вместо массива возвращается число с плавающей точкой.

Возвращаемые значения

По умолчанию возвращается array. Если установлен параметр return_float, то возвращается float.

Ключи массива:

  • "sec" - количество секунд, прошедших с Эпохи Unix
  • "usec" - микросекунды
  • "minuteswest" - смещение к западу от Гринвича, в минутах
  • "dsttime" - тип коррекции летнего времени

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр return_float.

Примеры

Пример #1 Пример использования функции gettimeofday()

<?php
print_r(gettimeofday());

echo gettimeofday(true);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [sec] => 1073504408
    [usec] => 238215
    [minuteswest] => 0
    [dsttime] => 1
)

1073504408.23910


Форматирует дату/время по Гринвичу

  • « gettimeofday
  • gmmktime »
  • PHP Manual
  • Функции даты и времени
  • Форматирует дату/время по Гринвичу

gmdate

(PHP 4, PHP 5, PHP 7)

gmdate — Форматирует дату/время по Гринвичу

Описание

string gmdate ( string $format [, int $timestamp = time() ] )

Эта функция идентична функции date() за исключением того, что возвращает время по Гринвичу (GMT).

Список параметров

format

Формат выводимой даты, string. Смотрите параметры форматирования для функции date().

timestamp

Необязательный параметр timestamp представляет собой integer метку времени, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает строку с форматированной датой. Если для параметра timestamp указано нечисловое значение, то будет возращено FALSE и вызвана ошибка уровня E_WARNING.

Список изменений

Версия | Описание
5.1.0 | Корректным диапазоном временных меток обычно является диапазон дат с 13 декабря 1901 20:45:54 GMT до 19 января 2038 03:14:07 GMT. (Эти даты соответствуют минимальному и максимальному значению 32-битному целому числу со знаком). Однако, до PHP 5.1.0 на некоторых системах (например, Windows) этот диапазон был ограничен датами от 01-01-1970 до 19-01-2038.
5.1.1 | Существуют также полезные константы стандартных форматов даты/времени, которые могут быть использованы в качестве параметра format.

Примеры

Пример #1 Пример использования gmdate()

Например, в Финляндии (GMT +0200), первая строка в следующем примере выведет "Jan 01 1998 00:00:00", а вторая - "Dec 31 1997 22:00:00".

<?php
echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

Смотрите также

  • date() - Форматирует вывод системной даты/времени
  • mktime() - Возвращает метку времени Unix для заданной даты
  • gmmktime() - Возвращает метку времени Unix для времени по Гринвичу
  • strftime() - Форматирует текущую дату/время с учетом текущих настроек локали


Возвращает метку времени Unix для времени по Гринвичу

  • « gmdate
  • gmstrftime »
  • PHP Manual
  • Функции даты и времени
  • Возвращает метку времени Unix для времени по Гринвичу

gmmktime

(PHP 4, PHP 5, PHP 7)

gmmktime — Возвращает метку времени Unix для времени по Гринвичу

Описание

 int gmmktime
  ([ int $hour = gmdate("H")
 [, int $minute = gmdate("i")
 [, int $second = gmdate("s")
 [, int $month = gmdate("n")
 [, int $day = gmdate("j")
 [, int $year = gmdate("Y")
 [, int $is_dst = -1
]]]]]]] )

Эта функция идентична функции mktime(), за исключением того, что аргументы являются временем по Гринвичу (GMT). gmmktime() внутри использует mktime(), поэтому могут быть использованы только те даты местного времени, которые корректно представляются в этой зоне.

Подобно функции mktime(), аргументы могут быть опущены в порядке справа налево, в этом случае они предполагаются равными соответствующим компонентам текущего времени по Гринвичу.

Список параметров

hour

Количество часов, прошедших с начала дня, указанного параметрами month, day и year. Отрицательные значения определяют часы до полуночи указанного дня. Значения большие 23 определяют соответствующий час следующего дня (или дней).

minute

Количество минут, прошедших от начала часа, указанного параметром hour. Отрицательные значения определяют минуты предыдущего часа. Значения большие 59 определяют соответствующие минуты следующего часа (или часов).

second

Количество секунд, прошедших от начала минуты, указанной параметром minute. Отрицательные значения определяют секунды из предыдущей минуты. Значения большие 59 определяют соответствующие секунды следующей минуты (или минут).

month

Количество месяцев, прошедших с конца предыдущего года. Значения от 1 до 12 определяют нормальные обычные календарные месяцы года. Значения меньшие 1 (включая отрицательные значения) определяют месяца предыдущего года в обратном порядке, т.е. 0 будет декабрем, -1 - ноябрем и т.д. Значения больше 12 определяют соответствующий месяц в следующем году (или годах).

day

Количество дней, прошедших с конца предыдущего месяца. Значения от 1 до 28, 29, 30 или 31 (в зависимости от месяца) определяют нормальные дни соответствующего месяца. Значения меньшие 1 (включая отрицательные значения) определяют дни предыдущего месяца, таким образом, 0 является последним днем предыдущего месяца, -1 - предпоследним днем предыдущего месяца и т.д. Значения большие количества дней соответствующего месяца определяют соответствующий день следующего месяца (или месяцев).

year

Год

is_dst

Параметры всегда представляют собой дату по Гринвичу, поэтому параметр is_dst не влияет на результат.

Замечание:

Этот параметр был удален в PHP 7.0.0.

Возвращаемые значения

Возвращает временную метку Unix (тип integer).

Список изменений

Версия | Описание
7.0.0 | Параметр is_dst был удален.
5.1.0 | Начиная с версии PHP 5.1.0, параметр is_dst считается устаревшим. В результате должны быть использованы новые возможности обработки временных зон.

Примеры

Пример #1 Базовый пример использования gmmktime()

<?php
// Выводит: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", gmmktime(0, 0, 0, 7, 1, 2000));
?>

Смотрите также

  • mktime() - Возвращает метку времени Unix для заданной даты
  • date() - Форматирует вывод системной даты/времени
  • time() - Возвращает текущую метку времени Unix


Форматирует дату/время по Гринвичу с учетом текущей локали

  • « gmmktime
  • idate »
  • PHP Manual
  • Функции даты и времени
  • Форматирует дату/время по Гринвичу с учетом текущей локали

gmstrftime

(PHP 4, PHP 5, PHP 7)

gmstrftime — Форматирует дату/время по Гринвичу с учетом текущей локали

Описание

string gmstrftime ( string $format [, int $timestamp = time() ] )

Эта функция идентична функции strftime() за исключением того, что возвращает время по Гринвичу (GMT). Например, при запуске на системе, где установлено Eastern Standard Time (GMT-0500), первая строка из примера ниже выведет "Dec 31 1998 20:00:00", тогда как вторая - "Jan 01 1999 01:00:00".

Список параметров

format

Смотрите описание функции strftime().

timestamp

Необязательный параметр timestamp представляет собой integer метку времени, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает строку, отформатированную согласно указанному формату и с использованием временной метки из параметра timestamp или текущего локального времени, если временная метка не была указана. Названия месяцев, дней недели и других языкозависимых строк, будут показаны с учетом настроек текущей локали, установленных с помощью функции setlocale().

Примеры

Пример #1 Пример использования функции gmstrftime()

<?php
setlocale(LC_TIME, 'en_US');
echo strftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
echo gmstrftime("%b %d %Y %H:%M:%S", mktime(20, 0, 0, 12, 31, 98)) . "\n";
?>

Смотрите также

  • strftime() - Форматирует текущую дату/время с учетом текущих настроек локали


Преобразует локальное время/дату в целое число

  • « gmstrftime
  • localtime »
  • PHP Manual
  • Функции даты и времени
  • Преобразует локальное время/дату в целое число

idate

(PHP 5, PHP 7)

idate — Преобразует локальное время/дату в целое число

Описание

int idate ( string $format [, int $timestamp = time() ] )

Преобразует текущую дату и время в целое число в соответствии со строкой форматирования format. Если аргумент timestamp задан, расчет будет произведен для этой временной метки, если нет - будет использовано локальное время. Другими словами, timestamp - необязательный аргумент и по умолчанию равен значению time().

В отличие от функции date(), idate() принимает только один символ в аргументе format.

Список параметров

format

Допустимые символы в строке аргумента format
format символ | Описание
B | Эталонное время/Время Интернета
d | День месяца
h | Час (12 часовой формат)
H | Час (24 часовой формат)
i | Минуты
I (i в верхнем регистре) | возвращает 1 если активировано DST, или 0 в противном случае
L (l в верхнем регистре) | возвращает 1 для високосного года, 0 в противном случае
m | Номер месяца
s | Секунды
t | Количество дней в текущем месяце
U | Время в секундах, от начала эпохи UNIX - 1 января 1970 00:00:00 UTC - то же, что time()
w | День недели (0 - Воскресенье)
W | ISO-8601 - Номер недели года, неделя начинается с понедельника
y | Год (1 или 2 цифры - см. примечание ниже)
Y | Год (4 цифры)
z | День года
Z | Временная зона - смещение в секундах

timestamp

Необязательный параметр timestamp представляет собой integer метку времени, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает целое число integer.

idate() всегда возвращает integer и не может начинаться с нуля, поэтому idate() может вернуть меньше цифр, чем вы ожидаете. См. примеры ниже.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Примеры

Пример #1 Пример использования idate()

<?php
$timestamp = strtotime('1st January 2004'); //1072915200

// это выведет год в 2-х знаковом представлении
// поскольку первая цифра "0", будет выведено
// только "4"
echo idate('y', $timestamp);
?>

Смотрите также

  • date() - Форматирует вывод системной даты/времени
  • getdate() - Возвращает информацию о дате/времени
  • time() - Возвращает текущую метку времени Unix


Возвращает локальное время

  • « idate
  • microtime »
  • PHP Manual
  • Функции даты и времени
  • Возвращает локальное время

localtime

(PHP 4, PHP 5, PHP 7)

localtime — Возвращает локальное время

Описание

array localtime ([ int $timestamp = time() [, bool $is_associative = false ]] )

Функция localtime() возвращает массив, аналогичный по структуре, возвращаемой соответствующей функцией C.

Список параметров

timestamp

Необязательный параметр timestamp представляет собой integer метку времени, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

is_associative

Если установлен в FALSE или не передан, то возвращается обычный массив с числовыми индексами. Если установлен в TRUE, то функция localtime() вернет ассоциативный массив, содержащий все различные элементы структуры, возвращаемой вызовом C-функции localtime. Названия этих ключей соответствуют следующим значениям:

  • "tm_sec" - секунды, с 0 до 59
  • "tm_min" - минуты, с 0 до 59
  • "tm_hour" - часы, с 0 до 23
  • "tm_mday" - день месяца, с 1 до 31
  • "tm_mon" - месяц года, с 0 (январь) до 11 (декабрь)
  • "tm_year" - количество лет, прошедших с 1900 г.
  • "tm_wday" - день недели, с 0 (воскресенье) до 6 (суббота)
  • "tm_yday" - порядковый номер дня в году, с 0 до 365
  • "tm_isdst" - признак летнего времени Положителен, если учитывается, 0, если не учитывается, отрицателен, если неизвестен.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Примеры

Пример #1 Пример использования localtime()

<?php
$localtime = localtime();
$localtime_assoc = localtime(time(), true);
print_r($localtime);
print_r($localtime_assoc);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 24
    [1] => 3
    [2] => 19
    [3] => 3
    [4] => 3
    [5] => 105
    [6] => 0
    [7] => 92
    [8] => 1
)

Array
(
    [tm_sec] => 24
    [tm_min] => 3
    [tm_hour] => 19
    [tm_mday] => 3
    [tm_mon] => 3
    [tm_year] => 105
    [tm_wday] => 0
    [tm_yday] => 92
    [tm_isdst] => 1
)

Смотрите также

  • getdate() - Возвращает информацию о дате/времени


Возвращает текущую метку времени Unix с микросекундами

  • « localtime
  • mktime »
  • PHP Manual
  • Функции даты и времени
  • Возвращает текущую метку времени Unix с микросекундами

microtime

(PHP 4, PHP 5, PHP 7)

microtime — Возвращает текущую метку времени Unix с микросекундами

Описание

mixed microtime ([ bool $get_as_float = false ] )

Функция microtime() возвращает текущую метку времени Unix с микросекундами. Эта функция доступна только на операционных системах, в которых есть системный вызов gettimeofday().

Список параметров

get_as_float

Если указано и установлено в TRUE, microtime() возвратит float вместо string, как описано в разделе возвращаемых значений ниже.

Возвращаемые значения

По умолчанию microtime() возвращает string в формате "msec sec", где sec представляет собой количество секунд с начала Эпохи Unix (1 января 1970 0:00:00 GMT), а msec - это количество микросекунд, прошедших после sec.

Если параметр get_as_float установлен в TRUE, то microtime() возвратит результат в вещественном виде (float), представляющий собой текущее время в секундах, прошедших с начала Эпохи Unix с точностью до микросекунд.

Примеры

Пример #1 Замер времени выполнения скрипта с помощью функции microtime()

<?php
/**
 * Простая функция для реализации поведения из PHP 5
 */
function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

// Спим некоторое время
usleep(100);

$time_end = microtime_float();
$time = $time_end - $time_start;

echo "Ничего не делал $time секунд\n";
?>

Пример #2 Замер времени выполнения скрипта в PHP 5

<?php
$time_start = microtime(true);

// Спим некоторое время
usleep(100);

$time_end = microtime(true);
$time = $time_end - $time_start;

echo "Ничего не делал $time секунд\n";
?>

Пример #3 Пример использования microtime() и REQUEST_TIME_FLOAT (начиная с PHP 5.4.0)

<?php
// Выбираем время сна случайным образом
usleep(mt_rand(100, 10000));

// Начиная с PHP 5.4.0 в суперглобальном массиве $_SERVER доступно значение REQUEST_TIME_FLOAT.
// Оно содержит временную метку начала запроса с точностью до микросекунд.
$time = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];

echo "Ничего не делал $time секунд\n";
?>

Смотрите также

  • time() - Возвращает текущую метку времени Unix


Возвращает метку времени Unix для заданной даты

  • « microtime
  • strftime »
  • PHP Manual
  • Функции даты и времени
  • Возвращает метку времени Unix для заданной даты

mktime

(PHP 4, PHP 5, PHP 7)

mktime — Возвращает метку времени Unix для заданной даты

Описание

 int mktime
  ([ int $hour = date("H")
 [, int $minute = date("i")
 [, int $second = date("s")
 [, int $month = date("n")
 [, int $day = date("j")
 [, int $year = date("Y")
 [, int $is_dst = -1
]]]]]]] )

Функция возвращает метку времени Unix, соответствующую дате и времени, заданным аргументами. Метка времени - это целое число, равное разнице в секундах между заданной датой/временем и началом Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT).

Аргументы могут быть опущены в порядке справа налево. В этом случае их значения по умолчанию равны соответствующим компонентам локальной даты/времени.

Примечания

Замечание:

Начиная с версии PHP 5.1, если mktime() вызывается без аргументов, то будет сгенерировано замечание уровня E_STRICT. Используйте вместо этого функцию time().

Список параметров

hour

Количество часов, прошедших с начала дня, указанного параметрами month, day и year. Отрицательные значения определяют часы до полуночи указанного дня. Значения большие 23 определяют соответствующий час следующего дня (или дней).

minute

Количество минут, прошедших от начала часа, указанного параметром hour. Отрицательные значения определяют минуты предыдущего часа. Значения большие 59 определяют соответствующие минуты следующего часа (или часов).

second

Количество секунд, прошедших от начала минуты, указанной параметром minute. Отрицательные значения определяют секунды из предыдущей минуты. Значения большие 59 определяют соответствующие секунды следующей минуты (или минут).

month

Количество месяцев, прошедших с конца предыдущего года. Значения от 1 до 12 определяют нормальные обычные календарные месяцы года. Значения меньшие 1 (включая отрицательные значения) определяют месяца предыдущего года в обратном порядке, т.е. 0 будет декабрем, -1 - ноябрем и т.д. Значения больше 12 определяют соответствующий месяц в следующем году (или годах).

day

Количество дней, прошедших с конца предыдущего месяца. Значения от 1 до 28, 29, 30 или 31 (в зависимости от месяца) определяют нормальные дни соответствующего месяца. Значения меньшие 1 (включая отрицательные значения) определяют дни предыдущего месяца, таким образом, 0 является последним днем предыдущего месяца, -1 - предпоследним днем предыдущего месяца и т.д. Значения большие количества дней соответствующего месяца определяют соответствующий день следующего месяца (или месяцев).

year

Номер года, может быть указан двумя или четырьмя цифрами, причем значения между 0-69 будут трактованы как 2000-2069, а между 70-100 - как 1970-2000. На тех системах, где time_t является 32-битным знаковым целым (наиболее распространенный вариант на сегодня), корректный диапазон для параметра year содержит даты где-то между 1901 и 2038. Однако, до версии PHP 5.1.0, на некоторых системах этот диапазон был ограничен датами между 1970 и 2038 (например, Windows).

is_dst

Данный параметр может быть установлен в 1, если заданной дате соответствует летнее время (DST), 0 в противном случае, или -1 (значение по умолчанию), если неизвестно, действует ли летнее время на заданную дату. В последнем случае PHP пытается определить это самостоятельно. Это может привести к неожиданному результату (который, тем не менее, не будет неверным). Некоторые даты могут быть неверными, если летнее время применимо к системе, на которой запущен PHP, или параметр is_dst установлен в 1. Если переход на летнее время происходит, например, в 2:00, все даты между 2:00 и 3:00 станут некорректными и mktime() вернет неопределенное (обычно отрицательное) значение. Некоторые системы (например, Solaris 8) осуществляют переход на летнее время в полночь, так что время 0:30 дня, когда был осуществлен переход на летнее время будет обрабатываться как 23:30 предыдущего дня.

Замечание:

Начиная с версии PHP 5.1.0 этот параметр более не рекомендуется к использованию. Вместо этого рекомендуется устанавливать соответствующую временную зону.

Замечание:

Этот параметр был удален в PHP 7.0.0.

Возвращаемые значения

mktime() возвращает временную метку Unix в соответствии с переданными аргументами. Если были переданы некорректными аргументы, функция вернет FALSE (до версии PHP 5.1 возвращалась -1).

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
7.0.0 | Параметр is_dst был удален.
5.3.0 | mktime() теперь выбрасывает ошибку уровня E_DEPRECATED при использовании параметра is_dst.
5.1.0 | Параметр is_dst теперь считается устаревшим. Функция теперь возвращает FALSE при ошибке, тогда как раньше возвращалась -1. Теперь функция принимает дату с одновременно установленными в ноль годом, месяцем и днем.
5.1.0 | Если mktime() была вызвана без аргументов, то будет сгенерировано замечание уровня E_STRICT. Используйте вместо этого функцию time().
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Примеры

Пример #1 Пример использования функции mktime()

<?php
// Устанавливаем используемую по умолчанию временную зону. Доступно, начиная с версии PHP 5.1
date_default_timezone_set('UTC');

// Выводит: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));

// Выводит что-то вроде: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>

Пример #2 mktime() example

Функцию mktime() удобно использовать для выполнения арифметических операций с датами, так как она вычисляет верные значения при некорректных аргументах. Например, в следующем примере каждая строка выведет "Jan-01-1998".

<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>

Пример #3 Последний день месяца

Последний день любого месяца можно вычислить как "нулевой" день следующего месяца, не -1 день. Оба приведенных ниже примера выведут "Последний день февраля 2000 г.: 29".

<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime("Последний день февраля 2000 г.: %d", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime("Последний день февраля 2000 г.: %d", $lastday);
?>

Примечания

Предостережение

До версии PHP 5.1.0, отрицательные временные метки не поддерживались ни под одной известной версией Windows, а также и некоторыми другими системами. Таким образом, диапазон корректных лет был ограничен датами от 1970 до 2038 г.

Смотрите также

  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • gmmktime() - Возвращает метку времени Unix для времени по Гринвичу
  • date() - Форматирует вывод системной даты/времени
  • time() - Возвращает текущую метку времени Unix


Форматирует текущую дату/время с учетом текущих настроек локали

  • « mktime
  • strptime »
  • PHP Manual
  • Функции даты и времени
  • Форматирует текущую дату/время с учетом текущих настроек локали

strftime

(PHP 4, PHP 5, PHP 7)

strftime — Форматирует текущую дату/время с учетом текущих настроек локали

Описание

string strftime ( string $format [, int $timestamp = time() ] )

Форматирует дату/время с учетом текущих настроек локали. Названия месяцев, дней недели и других языко-зависимых строк будут взяты в соответствии с текущими настройками локали, установленной с помощью функции setlocale().

Ваша C-библиотека может не поддерживать все форматирующие параметры, в этом случае они будут недоступны функции strftime(). Кроме того, не все платформы поддерживают отрицательные метки времени, так что поддерживаемый диапазон дат на этих платформах будет ограничен Эпохой Unix. Это значит, что %e, %T, %R и %D (а возможно и другие параметры), как и даты до Jan 1, 1970, не поддерживаются Windows, некоторыми версиями Linux и некоторыми другими операционными системами. Список форматирующих символов, поддерживаемых Windows, можно найти на » сайте MSDN.

Список параметров

format

Распознаются следующие символы в строке format
format | Описание | Пример возвращаемых значений
День --- ---
%a | Сокращенное название дня недели | От Sun до Sat
%A | Полное название дня недели | От Sunday до Saturday
%d | Двухзначное представление дня месяца (с ведущими нулями) | От 01 до 31
%e | День месяца, с ведущим пробелом, если он состоит из одной цифры. На Windows реализован не так, как описано. Подробнее смотрите ниже. | От 1 до 31
%j | Порядковый номер в году, 3 цифры с ведущими нулями | От 001 до 366
%u | Порядковый номер дня недели согласно стандарту ISO-8601 | От 1 (понедельник) до 7 (воскресенье)
%w | Порядковый номер дня недели | От 0 (воскресенье) до 6 (суббота)
Неделя --- ---
%U | Порядковый номер недели в указанном году, начиная с первого воскресенья в качестве первой недели | 13 (для полной 13-й недели года)
%V | Порядковый номер недели в указанном году в соответствии со стандартом ISO-8601:1988, счет начинается с той недели, которая содержит минимум 4 дня, неделя начинается с понедельника | От 01 до 53 (где 53 указывает на перекрывающуюся неделю)
%W | Порядковый номер недели в указанном году, начиная с первого понедельника в качестве первой недели | 46 (для 46-й недели года, начинающейся с понедельника)
Месяц --- ---
%b | Аббревиатура названия месяца, в соответствии с настройками локали | От Jan до Dec
%B | Полное название месяца, в соответствии с настройками локали | От January до December
%h | Аббревиатура названия месяца, в соответствии с настройками локали (псевдоним %b) | От Jan до Dec
%m | Двухзначный порядковый номер месяца | От 01 (январь) до 12 (декабрь)
Год --- ---
%C | Двухзначный порядковый номер столетия (год, деленный на 100, усеченный до целого) | 19 для 20-го века
%g | Двухзначный номер года в соответствии со стандартом ISO-8601:1988 (см. %V) | Пример: 09 для недели 6 января 2009
%G | Полная четырехзначная версия %g | Пример: 2008 для недели 3 января 2009
%y | Двухзначный порядковый номер года | Пример: 09 для 2009, 79 для 1979
%Y | Четырехзначный номер года | Пример: 2038
Время --- ---
%H | Двухзначный номер часа в 24-часовом формате | От 00 до 23
%k | Двухзначное представление часа в 24-часовом формате, с пробелом перед одиночной цифрой | От 0 до 23
%I | Двухзначный номер часа в 12-часовом формате | От 01 до 12
%l (строчная 'L') | Час в 12-часовом формате, с пробелом перед одиночной цифрой | От 1 до 12
%M | Двухзначный номер минуты | От 00 до 59
%p | 'AM' или 'PM' в верхнем регистре, в зависимости от указанного времени | Пример: AM для 00:31, PM для 22:23
%P | 'am' или 'pm' в зависимости от указанного времени | Пример: am для 00:31, pm для 22:23
%r | Тоже что и "%I:%M:%S %p" | Пример: 09:34:17 PM для 21:34:17
%R | Тоже что и "%H:%M" | Пример: 00:35 для 12:35 AM, 16:44 для 4:44 PM
%S | Двухзначный номер секунды | От 00 до 59
%T | Тоже что и "%H:%M:%S" | Пример: 21:34:17 для 09:34:17 PM
%X | Предпочитаемое отображение времени в зависимости от локали, без даты | Example: 03:59:16 or 15:59:16
%z | Смещение временной зоны относительно UTC. Не реализовано в Windows, подробности см. ниже. | Пример: -0500 для US Eastern Time
%Z | Аббревиатура временной зоны. Не реализовано в Windows, подробности см. ниже. | Пример: EST для Eastern Time
Метки даты и времени --- ---
%c | Предпочитаемое отображение даты и времени, в зависимости от текущей локали | Пример: Tue Feb 5 00:45:10 2009 для 5 февраля 2009 00:45:10
%D | Тоже что и "%m/%d/%y" | Пример: 02/05/09 для 5 февраля 2009
%F | Тоже что и "%Y-%m-%d" (обычно используется в метках времени баз данных) | Пример: 2009-02-05 для 5 февраля 2009
%s | Метка времени Эпохи Unix (тоже что и функция time()) | Пример: 305815200 для 10 сентября 1979 08:40:00
%x | Предпочитаемое отображение даты, без времени | Пример: 02/05/09 для 5 февраля 2009
Различное --- ---
%n Символ перевода строки ("\n") ---
%t Символ табуляции ("\t") ---
%% Символ процента ("%") ---

Максимальной длиной данного параметра является 1023 символа.

Внимание

В отличие от ISO-9899:1999, в Sun Solaris воскресенью присваеватся номер 1. Как результат, %u может работать не так, как описано в этом руководстве.

Внимание

Только для Windows:

Модификатор %e не поддерживается в реализации этой функции в Windows. Для использования этого значения необходимо вместо него использовать модификатор %#d. Пример ниже иллюстрирует кроссплатформенно совместимую функцию.

Модификаторы %z и %Z возвращают название временной зоны вместо смещения или аббревиатуры.

Внимание

Только для Mac OS X: модификатор %P не поддерживается в реализации этой функции в Mac OS X.

timestamp

Необязательный параметр timestamp представляет собой integer метку времени, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time().

Возвращаемые значения

Возвращает строку, отформатированную в соответствии с параметром format, используя указанную временную метку timestamp или текущее время, если метка не была указана. Названия месяцев, дней недели и других языко-зависимых строк будут взяты в соответствии с текущими настройками локали, установленной с помощью функции setlocale().

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Из-за того что результат данной функции зависит от используемой в операционной системе C-библиотеки, некоторые модификаторы могут не поддерживаться. Передача неизвестного модификатора в функцию в Windows выдаст 5 предупреждений E_WARNING и вернет FALSE. На других операционных системах вы можете не получить никаких предупреждений E_WARNING, а вывод может содержать модификаторы без преобразований.

Список изменений

Версия | Описание
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.

Примеры

Этот пример будет работать, если на вашей системе установлены соответствующие локали.

Пример #1 Пример использования функции strftime() с разными локалями

<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" по-фински - %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" по-французски - %A и");
setlocale(LC_TIME, "de_DE");
echo strftime(" по-немецки - %A.\n");
?>

Пример #2 Пример номеров недели по ISO 8601:1988

<?php
/*     Декабрь 2002 / Январь 2003
ISOнед Пн  Вт  Ср  Чт  Пт  Сб  Вс
----- ----------------------------
51     16  17  18  19  20  21  22
52     23  24  25  26  27  28  29
1      30  31   1   2   3   4   5
2       6   7   8   9  10  11  12
3      13  14  15  16  17  18  19   */

// Вывод: 12/28/2002 - %V,%G,%Y = 52,2002,2002
echo "12/28/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/28/2002")) . "\n";

// Вывод: 12/30/2002 - %V,%G,%Y = 1,2003,2002
echo "12/30/2002 - %V,%G,%Y = " . strftime("%V,%G,%Y", strtotime("12/30/2002")) . "\n";

// Вывод: 1/3/2003 - %V,%G,%Y = 1,2003,2003
echo "1/3/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2003")) . "\n";

// Вывод: 1/10/2003 - %V,%G,%Y = 2,2003,2003
echo "1/10/2003 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/10/2003")) . "\n";

/*     Декабрь 2004 / Январь 2005
ISOнед Пн  Вт  Ср  Чт  Пт  Сб  Вс
----- ----------------------------
51     13  14  15  16  17  18  19
52     20  21  22  23  24  25  26
53     27  28  29  30  31   1   2
1       3   4   5   6   7   8   9
2      10  11  12  13  14  15  16   */

// Вывод: 12/23/2004 - %V,%G,%Y = 52,2004,2004
echo "12/23/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/23/2004")) . "\n";

// Вывод: 12/31/2004 - %V,%G,%Y = 53,2004,2004
echo "12/31/2004 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("12/31/2004")) . "\n";

// Вывод: 1/2/2005 - %V,%G,%Y = 53,2004,2005
echo "1/2/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/2/2005")) . "\n";

// Вывод: 1/3/2005 - %V,%G,%Y = 1,2005,2005
echo "1/3/2005 - %V,%G,%Y = " . strftime("%V,%G,%Y",strtotime("1/3/2005")) . "\n";

?>

Пример #3 Кросплатформенный пример использования модификатора %e

<?php

// 1 января: выдает результат: '%e%1%' (%%, e, %%, %e, %%)
$format = '%%e%%%e%%';

// Проверяем наличие Windows и соответственно заменяем модификатор %e
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
    $format = preg_replace('#(?<!%)((?:%%)*)%e#', '\1%#d', $format);
}

echo strftime($format);
?>

Пример #4 Показываем все известные и неизвестные форматы.

<?php
// Описание форматов.
$strftimeFormats = array(
    'A' => 'Полное название дня',
    'B' => 'Полное имя месяца, в зависимости от локали',
    'C' => 'Двухзначный номер столетия (год, деленный на 100, усеченный до целого)',
    'D' => 'Тоже что и "%m/%d/%y"',
    'E' => '',
    'F' => 'Тоже что и "%Y-%m-%d"',
    'G' => 'Четырехзначная версия %g',
    'H' => 'Двухзначный номер часа в 24-часовом формате',
    'I' => 'Двухзначный номер часа в 12-часовом формате',
    'J' => '',
    'K' => '',
    'L' => '',
    'M' => 'Двухзначный номер минуты',
    'N' => '',
    'O' => '',
    'P' => '"am" или "pm" в зависимости от текущего времени, в нижнем регистре',
    'Q' => '',
    'R' => 'Тоже что и "%H:%M"',
    'S' => 'Двухзначный номер секунды',
    'T' => 'Тоже что и "%H:%M:%S"',
    'U' => 'Номер недели указанного года, начиная с первого воскресенья в качестве первой недели',
    'V' => 'Порядковый номер недели в указанном году в соответствии со стандартом ISO-8601:1988, счет начинается с той недели, которая содержит минимум 4 дня, неделя начинается с понедельника',
    'W' => 'Номер недели указанного года, начиная с первого понедельника в качестве первой недели',
    'X' => 'Предпочитаемое отображение времени в зависимости от локали, без даты',
    'Y' => 'Четырехзначный номер года',
    'Z' => 'Смещение временной зоны/аббревиатура, НЕ выдаваемая %z (зависит от операционной системы)',
    'a' => 'Сокращенное название дня недели',
    'b' => 'Сокращенное название месяца в зависимости от локали',
    'c' => 'Предпочитаемое отображение даты и времени в зависимости от локали',
    'd' => 'Двухзначный номер дня месяца (с ведущими нулями)',
    'e' => 'День месяца, с ведущим пробелом, если он состоит из одной цифры',
    'f' => '',
    'g' => 'Двухзначный номер года в соответствии со стандартом ISO-8601:1988 (см. %V)',
    'h' => 'Сокращенное название месяца в зависимости от локали (псевдоним %b)',
    'i' => '',
    'j' => 'Номер дня в году, 3 цифры с ведущими нулями',
    'k' => 'Час в 24-часовом формате, с ведущим пробелом перед одиночной цифрой',
    'l' => 'Номер часа в 12-часовом формате, с ведущим пробелом, если он состоит из одной цифры',
    'm' => 'Двухзначный номер месяца',
    'n' => 'Символ новой строки ("\n")',
    'o' => '',
    'p' => '"AM" или "PM" в зависимости от указанного времени, в верхнем регистре',
    'q' => '',
    'r' => 'Тоже что и "%I:%M:%S %p"',
    's' => 'Временная метка Эпохи Unix',
    't' => 'Символ табуляции ("\t")',
    'u' => 'Номер дня недели в соответствии со стандартом ISO-8601',
    'v' => '',
    'w' => 'Номер дня недели',
    'x' => 'Предпочитаемое отображение даты в зависимости от локали, без времени',
    'y' => 'Двухзначный номер года',
    'z' => 'Смещение временной зоны относительно UTC или аббревиатура (зависит от операционной системы)',
    '%' => 'Символ процента ("%")',
);

// Результаты.
$strftimeValues = array();

// Обрабатываем форматы и подавляем любые ошибки.
foreach($strftimeFormats as $format => $description){
    if (False !== ($value = @strftime("%{$format}"))){
        $strftimeValues[$format] = $value;
    }
}

// Находим самое длинное значение
$maxValueLength = 2 + max(array_map('strlen', $strftimeValues));

// Отображаем известные форматы.
foreach($strftimeValues as $format => $value){
    echo "Известный формат   : '{$format}' = ", str_pad("'{$value}'", $maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}

// Отображаем неизвестные форматы.
foreach(array_diff_key($strftimeFormats, $strftimeValues) as $format => $description){
    echo "Неизвестный формат : '{$format}'   ", str_pad(' ', $maxValueLength), ($description ? " ( {$description} )" : ''), "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Известный формат   : 'A' = 'Friday'            ( Полное название дня )
Известный формат   : 'B' = 'December'          ( Полное имя месяца, в зависимости от локали )
Известный формат   : 'H' = '11'                ( Двухзначный номер часа в 24-часовом формате )
Известный формат   : 'I' = '11'                ( Двухзначный номер часа в 12-часовом формате )
Известный формат   : 'M' = '24'                ( Двухзначный номер минуты )
Известный формат   : 'S' = '44'                ( Двухзначный номер секунды )
Известный формат   : 'U' = '48'                ( Номер недели указанного года, начиная с первого воскресенья в качестве первой недели )
Известный формат   : 'W' = '48'                ( Номер недели указанного года, начиная с первого понедельника в качестве первой недели )
Известный формат   : 'X' = '11:24:44'          ( Предпочитаемое отображение времени в зависимости от локали, без даты )
Известный формат   : 'Y' = '2010'              ( Четырехзначный номер года )
Известный формат   : 'Z' = 'GMT Standard Time' ( Смещение временной зоны/аббревиатура, НЕ выдаваемая %z (зависит от операционной системы) )
Известный формат   : 'a' = 'Fri'               ( Сокращенное название дня недели )
Известный формат   : 'b' = 'Dec'               ( Сокращенное название месяца в зависимости от локали )
Известный формат   : 'c' = '12/03/10 11:24:44' ( Предпочитаемое отображение даты и времени в зависимости от локали )
Известный формат   : 'd' = '03'                ( Двухзначный номер дня месяца (с ведущими нулями) )
Известный формат   : 'j' = '337'               ( Номер дня в году, 3 цифры с ведущими нулями )
Известный формат   : 'm' = '12'                ( Двухзначный номер месяца )
Известный формат   : 'p' = 'AM'                ( "AM" или "PM" в зависимости от указанного времени, в верхнем регистре )
Известный формат   : 'w' = '5'                 ( Номер дня недели )
Известный формат   : 'x' = '12/03/10'          ( Предпочитаемое отображение даты в зависимости от локали, без времени )
Известный формат   : 'y' = '10'                ( Двухзначный номер года )
Известный формат   : 'z' = 'GMT Standard Time' ( Смещение временной зоны относительно UTC или аббревиатура (зависит от операционной системы) )
Известный формат   : '%' = '%'                 ( Символ процента ("%") )
Неизвестный формат : 'C'                       ( Двухзначный номер столетия (год, деленный на 100, усеченный до целого) )
Неизвестный формат : 'D'                       ( Тоже что и "%m/%d/%y" )
Неизвестный формат : 'E'
Неизвестный формат : 'F'                       ( Тоже что и "%Y-%m-%d" )
Неизвестный формат : 'G'                       ( Четырехзначная версия %g )
Неизвестный формат : 'J'
Неизвестный формат : 'K'
Неизвестный формат : 'L'
Неизвестный формат : 'N'
Неизвестный формат : 'O'
Неизвестный формат : 'P'                       ( "am" или "pm" в зависимости от текущего времени, в нижнем регистре )
Неизвестный формат : 'Q'
Неизвестный формат : 'R'                       ( Тоже что и "%H:%M" )
Неизвестный формат : 'T'                       ( Тоже что и "%H:%M:%S" )
Неизвестный формат : 'V'                       ( Порядковый номер недели в указанном году в соответствии со стандартом ISO-8601:1988, счет начинается с той недели, которая содержит минимум 4 дня, неделя начинается с понедельника )
Неизвестный формат : 'e'                       ( День месяца, с ведущим пробелом, если он состоит из одной цифры )
Неизвестный формат : 'f'
Неизвестный формат : 'g'                       ( Двухзначный номер года в соответствии со стандартом ISO-8601:1988 (см. %V) )
Неизвестный формат : 'h'                       ( Сокращенное название месяца в зависимости от локали (псевдоним %b) )
Неизвестный формат : 'i'
Неизвестный формат : 'k'                      ( Номер часа в 24-часовом формате, с ведущим пробелом, если он состоит из одной цифры )
Неизвестный формат : 'l'                       ( Номер часа в 12-часовом формате, с ведущим пробелом, если он состоит из одной цифры )
Неизвестный формат : 'n'                       ( Символ новой строки ("\n") )
Неизвестный формат : 'o'
Неизвестный формат : 'q'
Неизвестный формат : 'r'                       ( Тоже что и "%I:%M:%S %p" )
Неизвестный формат : 's'                       ( Временная метка Эпохи Unix )
Неизвестный формат : 't'                       ( Символ табуляции ("\t") )
Неизвестный формат : 'u'                       ( Номер дня недели в соответствии со стандартом ISO-8601 )
Неизвестный формат : 'v'

Примечания

Замечание: Использование параметров %G и %V, основанных на днях недели формата ISO 8601:1988, могут давать неожиданные (хотя и корректные) результаты при неполном понимании данной системы нумерации. Смотрите примеры параметра %V на данной странице.

Смотрите также

  • » Онлайн-утилита составления времени в формате strftime()
  • setlocale() - Устанавливает настройки локали
  • mktime() - Возвращает метку времени Unix для заданной даты
  • strptime() - Разбирает строку даты/времени сгенерированную функцией strftime
  • gmstrftime() - Форматирует дату/время по Гринвичу с учетом текущей локали
  • » Спецификация Open Group функции strftime()


Разбирает строку даты/времени сгенерированную функцией strftime

  • « strftime
  • strtotime »
  • PHP Manual
  • Функции даты и времени
  • Разбирает строку даты/времени сгенерированную функцией strftime

strptime

(PHP 5 >= 5.1.0, PHP 7)

strptime — Разбирает строку даты/времени сгенерированную функцией strftime()

Описание

array strptime ( string $date , string $format )

strptime() возвращает массив с данными разбора строки date, либо FALSE в случае ошибки.

Названия месяцев и недель, а также другие названия, зависящие от языка, соответствуют текущим настройкам местоположения, установленным посредством setlocale() (LC_TIME).

Список параметров

date (string)

Строка для разбора (например строковый результат выполнения функции strftime()).

format (string)

Формат строки date (например формат, используемый в функции strftime()). Следует обратить внимание на тот факт, что не все возможности форматирования используемые в strftime() будут обрабатываться в strptime(); набор поддерживаемых символов форматирования зависит от ОС и используемой С-библиотеки.

За дополнительной информацией о возможностях форматирования обращайтесь на страницу описания функции strftime().

Возвращаемые значения

Возвращает массив или FALSE в случае возникновения ошибки.

Список элементов возвращаемого массива
параметры | Описание
"tm_sec" | Секунды после минут (0-61)
"tm_min" | Минуты после часов (0-59)
"tm_hour" | Часы после полуночи (0-23)
"tm_mday" | День месяца (1-31)
"tm_mon" | Месяцы после Января (0-11)
"tm_year" | Годы после 1900
"tm_wday" | Дни после Воскресенья (0-6)
"tm_yday" | Дни после 1го января (0-365)
"unparsed" | Часть date, которую не удалось распознать в соответствии с format

Примеры

Пример #1 Пример использования strptime()

<?php
$format = '%d/%m/%Y %H:%M:%S';
$strf = strftime($format);

echo "$strf\n";

print_r(strptime($strf, $format));
?>

Результатом выполнения данного примера будет что-то подобное:

03/10/2004 15:54:19

Array
(
    [tm_sec] => 19
    [tm_min] => 54
    [tm_hour] => 15
    [tm_mday] => 3
    [tm_mon] => 9
    [tm_year] => 104
    [tm_wday] => 0
    [tm_yday] => 276
    [unparsed] =>
)

Примечания

Замечание: Для Windows-платформ эта функция не реализована.

Замечание:

В действительности эта функция вызывает библиотечную функцию strptime(). В различных ОС поведение функции может сильно различаться. Функция date_parse_from_format() лишена этого недостатка и рекомендована к использованию в PHP версий 5.3.0 и выше.

Замечание:

"tm_sec" включает несколько секунд високосного года (на данный момент до 2-х в год). Для получения дополнительной информации о високосных секундах читайте » статью на википедии.

Замечание:

В PHP версий до 5.2.0 эта функция может работать непредсказуемо. В особенности элементы "tm_sec", "tm_min" и "tm_hour" могут содержать неопределенные значения.

Смотрите также

  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • strftime() - Форматирует текущую дату/время с учетом текущих настроек локали
  • date_parse_from_format() - Получение информации о заданной в определенном формате дате
  • DateTime::createFromFormat() - Разбирает строку, содержащую время, в соответствии с заданным форматом


Преобразует текстовое представление даты на английском языке в метку времени Unix

  • « strptime
  • time »
  • PHP Manual
  • Функции даты и времени
  • Преобразует текстовое представление даты на английском языке в метку времени Unix

strtotime

(PHP 4, PHP 5, PHP 7)

strtotime — Преобразует текстовое представление даты на английском языке в метку времени Unix

Описание

int strtotime ( string $time [, int $now = time() ] )

Первым параметром функции должна быть строка с датой на английском языке, которая будет преобразована в метку времени Unix (количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC) относительно метки времени, переданной в now, или текущего времени, если аргумент now опущен.

Каждый параметр функции использует временную метку по умолчанию, пока она не указана в этом параметре напрямую. Будьте внимательны и не используйте различные временные метки в параметрах, если на то нет прямой необходимости. Обратите внимание на date_default_timezone_get() для задания временной зоны различными способами.

Список параметров

time

Строка даты/времени. Объяснение корректных форматов дано в Форматы даты и времени.

now

Временная метка, используемая в качестве базы для вычисления относительных дат.

Возвращаемые значения

Возвращает временную метку в случае успеха, иначе возвращается FALSE. До версии PHP 5.1.0 в случае ошибки эта функция возвращала -1.

Ошибки

Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE, и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ. Смотрите также date_default_timezone_set()

Список изменений

Версия | Описание
5.3.0 | До PHP 5.3.0, относительные форматы времени заданные в пргументе time функции strtotime(), такие как this week, previous week, last week, и next week, интерпритировались как 7-ми дневный период относительно текущего значения даты/времени, а не как период с Понедельника по Воскресенье.
5.3.0 | До версии PHP 5.3.0 24:00 не являлся корректным форматом, и при его использовании strtotime() возвращала FALSE.
5.2.7 | В версиях PHP 5 до 5.2.7 при запросе временной метки дня недели, являвшегося первым днем месяца, ошибочно прибавлялась одна неделя. Эта ошибка была исправлена в версии 5.2.7 и следующих за ней версиях.
5.1.0 | Теперь в случае ошибки возвращает FALSE, ранее возвращалась -1.
5.1.0 | Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE.
5.0.2 | В PHP 5 до версии 5.0.2 "now" и другие относительные времена вычислялись неверно относительно полуночи текущего дня. Это отличается от поведения текущих версий, где вычисление производится корректно относительно текущего времени.
5.0.0 | Стало возможным указывать микросекунды, но они не принимаются во внимание и будут проигнорированы.

Примеры

Пример #1 Пример использования функции strtotime()

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

Пример #2 Проверка ошибок

<?php
$str = 'Not Good';

// до версии PHP 5.1.0 вместо false необходимо было сравнивать со значением -1
if (($timestamp = strtotime($str)) === false) {
    echo "Строка ($str) недопустима";
} else {
    echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}
?>

Примечания

Замечание:

Если количество лет указано двумя цифрами, то значения 00-69 будут считаться 2000-2069, а 70-99 - 1970-1999. Смотрите также замечания ниже о возможных различиях на 32-битных системах (допустимые даты заканчиваются 2038-01-19 03:14:07).

Замечание:

Корректным диапазоном временных меток обычно являются даты с 13 декабря 1901 20:45:54 UTC по 19 января 2038 03:14:07 UTC. (Эти даты соответствуют минимальному и максимальному значению 32-битового знакового целого).

Кроме того, до PHP 5.1.0, не все платформы поддерживают отрицательные метки времени, поэтому поддерживаемый диапазон дат может быть ограничен Эпохой Unix. Это означает, что даты ранее 1 января 1970 г. не будут работать в Windows, некоторых дистрибутивах Linux и нескольких других операционных системах.

В 64-битных версиях PHP корректный диапазон временных меток фактически бесконечен, так как 64 битов хватит для представления приблизительно 293 миллиарда лет в обоих направлениях.

Замечание:

Даты в формате m/d/y или d-m-y разрешают неоднозначность с помощью анализа разделителей их элементов: если разделителем является слэш (/), то дата интерпретируется в американском формате m/d/y, если же разделителем является дефис (-) или точка (.), то подразумевается использование европейского форматаd-m-y.

Чтобы избежать потенциальной неоднозначности, рекомендуется использовать даты в формате стандарта ISO 8601 (YYYY-MM-DD) либо пользоваться функцией DateTime::createFromFormat() там, где это возможно.

Замечание:

Не рекомендуется использовать эту функцию для математических операций.
Целесообразней использовать DateTime::add() и
DateTime::sub() начиная с PHP 5.3, или
DateTime::modify() в PHP 5.2.

Смотрите также

  • Форматы даты и времени
  • DateTime::createFromFormat() - Разбирает строку, содержащую время, в соответствии с заданным форматом
  • checkdate() - Проверяет корректность даты по григорианскому календарю
  • strptime() - Разбирает строку даты/времени сгенерированную функцией strftime


Возвращает текущую метку времени Unix

  • « strtotime
  • timezone_abbreviations_list »
  • PHP Manual
  • Функции даты и времени
  • Возвращает текущую метку времени Unix

time

(PHP 4, PHP 5, PHP 7)

time — Возвращает текущую метку времени Unix

Описание

int time ( void )

Возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT) до текущего времени.

Примеры

Пример #1 Пример использования time()

<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
                   // 7 дней; 24 часа; 60 минут; 60 секунд
echo 'Сейчас:           '. date('Y-m-d') ."\n";
echo 'Следующая неделя: '. date('Y-m-d', $nextWeek) ."\n";
// или с помощью strtotime():
echo 'Следующая неделя: '. date('Y-m-d', strtotime('+1 week')) ."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Сейчас:           2005-03-30
Следующая неделя: 2005-04-06
Следующая неделя: 2005-04-06

Примечания

Подсказка

Начиная с версии PHP 5.1 время начала запроса доступно в глобальной переменной $_SERVER['REQUEST_TIME'].

Смотрите также

  • date() - Форматирует вывод системной даты/времени
  • microtime() - Возвращает текущую метку времени Unix с микросекундами


Псевдоним DateTimeZone::listAbbreviations

  • « time
  • timezone_identifiers_list »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::listAbbreviations

timezone_abbreviations_list

(PHP 5 >= 5.2.0, PHP 7)

timezone_abbreviations_list — Псевдоним DateTimeZone::listAbbreviations()

Описание

Эта функция является псевдонимом: DateTimeZone::listAbbreviations()


Псевдоним DateTimeZone::listIdentifiers

  • « timezone_abbreviations_list
  • timezone_location_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::listIdentifiers

timezone_identifiers_list

(PHP 5 >= 5.2.0, PHP 7)

timezone_identifiers_list — Псевдоним DateTimeZone::listIdentifiers()

Описание

Эта функция является псевдонимом: DateTimeZone::listIdentifiers()


Псевдоним DateTimeZone::getLocation

  • « timezone_identifiers_list
  • timezone_name_from_abbr »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::getLocation

timezone_location_get

(PHP 5 >= 5.3.0, PHP 7)

timezone_location_get — Псевдоним DateTimeZone::getLocation()

Описание

Эта функция является псевдонимом: DateTimeZone::getLocation()


Возвращает временную зону в соответствии с аббревиатурой

  • « timezone_location_get
  • timezone_name_get »
  • PHP Manual
  • Функции даты и времени
  • Возвращает временную зону в соответствии с аббревиатурой

timezone_name_from_abbr

(PHP 5 >= 5.1.3, PHP 7)

timezone_name_from_abbr — Возвращает временную зону в соответствии с аббревиатурой

Описание

string timezone_name_from_abbr ( string $abbr [, int $gmtOffset = -1 [, int $isdst = -1 ]] )

Список параметров

abbr

Аббревиатура временной зоны.

gmtOffset

Смещение относительно GMT в секундах. По умолчанию -1, что означает возврат первой найденной временной зоны, отвечающей аббревиатуре abbr. В противном случае будет произведен поиск временной зоны с заданным смещением. Если поиск завершится неудачей, будет возвращена временная зона наиболее близкая к смещению.

isdst

Поправка на летнее время. По умолчанию -1, в этом случае поправка на летнее время не учитывается. Если передана 1, смещение gmtOffset учитывает действующее летнее время. Если задан 0, gmtOffset рассчитывается с учетом зимнего времени. Если abbr не существует, определение временной зоны опирается только на gmtOffset и isdst.

Возвращаемые значения

Возвращает имя временной зоны или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования timezone_name_from_abbr()

<?php
echo timezone_name_from_abbr("CET") . "\n";
echo timezone_name_from_abbr("", 3600, 0) . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Europe/Berlin
Europe/Paris

Смотрите также

  • timezone_abbreviations_list() - Псевдоним DateTimeZone::listAbbreviations


Псевдоним DateTimeZone::getName

  • « timezone_name_from_abbr
  • timezone_offset_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::getName

timezone_name_get

(PHP 5 >= 5.2.0, PHP 7)

timezone_name_get — Псевдоним DateTimeZone::getName()

Описание

Эта функция является псевдонимом: DateTimeZone::getName()


Псевдоним DateTimeZone::getOffset

  • « timezone_name_get
  • timezone_open »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::getOffset

timezone_offset_get

(PHP 5 >= 5.2.0, PHP 7)

timezone_offset_get — Псевдоним DateTimeZone::getOffset()

Описание

Эта функция является псевдонимом: DateTimeZone::getOffset()


Псевдоним DateTimeZone::__construct

  • « timezone_offset_get
  • timezone_transitions_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::__construct

timezone_open

(PHP 5 >= 5.2.0, PHP 7)

timezone_open — Псевдоним DateTimeZone::__construct()

Описание

Эта функция является псевдонимом: DateTimeZone::__construct()


Псевдоним DateTimeZone::getTransitions

  • « timezone_open
  • timezone_version_get »
  • PHP Manual
  • Функции даты и времени
  • Псевдоним DateTimeZone::getTransitions

timezone_transitions_get

(PHP 5 >= 5.2.0, PHP 7)

timezone_transitions_get — Псевдоним DateTimeZone::getTransitions()

Описание

Эта функция является псевдонимом: DateTimeZone::getTransitions()


Получение номера версии базы данных временных зон

  • « timezone_transitions_get
  • Допустимые форматы Даты/Времени »
  • PHP Manual
  • Функции даты и времени
  • Получение номера версии базы данных временных зон

timezone_version_get

(PHP 5 >= 5.3.0, PHP 7)

timezone_version_get — Получение номера версии базы данных временных зон

Описание

string timezone_version_get ( void )

Возвращает номер версии базы данных временных зон.

Возвращаемые значения

Возвращает string.

Примеры

Пример #1 Определение версии базы данных временных зон

<?php
echo timezone_version_get();
?>

Результатом выполнения данного примера будет что-то подобное:

2009.7

Смотрите также

  • Список поддерживаемых временных зон


Допустимые форматы Даты/Времени

Содержание

  • Форматы времени
  • Форматы Даты
  • Компоновка форматов
  • Относительные форматы

В этом разделе описываются все форматы, которые принимает парсер strtotime(), DateTime и date_create(). Форматы сгруппированы по секциям. Большинство форматов допускается использовать в пределах одной и той же строки даты/времени. Для каждого формата предусмотрено описание и даны один или более пример. Символы в одинарных кавычках нечувствительны к регистру ('t' эквивалентно как t так и T), символы в двойных кавычках чувствительны к регистру ("T" означает только T).


Форматы времени

На этой странице описаны форматы времени, которые понимает парсер функций strtotime(), DateTime и date_create().

Используемые символы
Описание | Формат | Примеры
frac (дробная часть) | . [0-9]+ | ".21342", ".85"
hh (часы в 12-часовом формате) | "0"?[1-9] | "1"[0-2] | "04", "7", "12"
HH (часы в 24-часовом формате) | [01][0-9] | "2"[0-4] | "04", "07", "19"
meridian (Ante meridiem или Post meridiem) | [AaPp] .? [Mm] .? [\0\t ] | "A.m.", "pM", "am."
MM (минуты) | [0-5][0-9] | "00", "12", "59"
II (секунды) | [0-5][0-9] | "00", "12", "59"
space (символ пробела или табуляции) | [ \t] |
tz (временная зона) | "("? [A-Za-z]{1,6} ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+ | "CEST", "Europe/Amsterdam", "America/Indiana/Knox"
tzcorrection (числовое значение смещения временной зоны) | "GMT"? [+-] hh ":"? MM? | "+0400", "GMT-07:00", "-07:00"
12-часовой формат
Описание | Формат | Примеры
Только часы (с Ante meridiem или Post meridiem) | hh space? meridian | "4 am", "5PM"
Часы и минуты (с Ante meridiem или Post meridiem) | hh [.:] MM space? meridian | "4:08 am", "7:19P.M."
Часы, минуты и секунды (с Ante meridiem или Post meridiem) | hh [.:] MM [.:] II space? meridian | "4:08:37 am", "7:19:19P.M."
MS SQL (Часы, минуты, секунды и дробная часть с Ante meridiem или Post meridiem), в версии не ниже PHP 5.3 | hh ":" MM ":" II [.:] [0-9]+ meridian | "4:08:39:12313am"
24-часовой формат
Описание | Формат | Примеры
Часы и минуты | 't'? HH [.:] MM | "04:08", "19.19", "T23:43"
Часы и минуты (без двоеточия-разделителя) | 't'? HH MM | "0408", "t1919", "T2343"
Часы, минуты и секунды | 't'? HH [.:] MM [.:] II | "04.08.37", "t19:19:19"
Часы, минуты и секунды (без двоеточия-разделителя) | 't'? HH MM II | "040837", "T191919"
Часы, минуты, секунды и временная зона | 't'? HH [.:] MM [.:] II space? ( tzcorrection | tz ) | "040837CEST", "T191919-0700"
Часы, минуты, секунды и дробная часть | 't'? HH [.:] MM [.:] II frac | "04.08.37.81412", "19:19:19.532453"
Сведения о временной зоне | tz | tzcorrection | "CEST", "Europe/Amsterdam", "+0430", "GMT-06:00"


Форматы Даты

На этой странице описаны форматы даты, которые понимает парсер функций strtotime(), DateTime и date_create().

Используемые символы
Описание | Формат | Примеры
daysuf (суффикс порядкового числительного дня месяца) | "st" | "nd" | "rd" | "th" |
dd (день месяца без ведущих нулей) | ([0-2]?[0-9] | "3"[01]) daysuf? | "7th", "22nd", "31"
DD (день месяца, 2 цифры с ведущим нулем) | "0" [0-9] | [1-2][0-9] | "3" [01] | "07", "31"
m (полное или сокращенное наименование месяца) | 'january' | 'february' | 'march' | 'april' | 'may' | 'june' | 'july' | 'august' | 'september' | 'october' | 'november' | 'december' | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' | "I" | "II" | "III" | "IV" | "V" | "VI" | "VII" | "VIII" | "IX" | "X" | "XI" | "XII" |
M (сокращенное наименование месяца) | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' |
mm (порядковый номер месяца) | "0"? [0-9] | "1"[0-2] | "0", "04", "7", "12"
MM (порядковый монер месяца, 2 цифры с ведущим нулем) | "0" [0-9] | "1"[0-2] | "00", "04", "07", "12"
y (порядковый номер года) | [0-9]{1,4} | "00", "78", "08", "8", "2008"
yy (порядковый номер года, 2 цифры) | [0-9]{2} | "00", "08", "78"
YY (порядковый номер года, 4 цифры) | [0-9]{4} | "2000", "2008", "1978"
Региональные нотации
Описание | Формат | Примеры
Месяц и день в американской нотации | mm "/" dd | "5/12", "10/27"
Месяц, день и год в американской нотации | mm "/" dd "/" y | "12/22/78", "1/17/2006", "1/17/6"
4 цифры года, месяц и день со слэшем-разделителем | YY "/" mm "/" dd | "2008/6/30", "1978/12/22"
4 цифры года и месяц (GNU) | YY "-" mm | "2008-6", "2008-06", "1978-12"
Год, месяц и день с дефисом-разделителем | y "-" mm "-" dd | "2008-6-30", "78-12-22", "8-6-21"
День, месяц и 4 цифры года с разделителем ввиде точки, символа табуляции или дефиса | dd [.\t-] mm [.-] YY | "30-6-2008", "22.12.1978"
День, месяц и 2 цифры года с разделителем ввиде точки или символа табуляции | dd [.\t] mm "." yy | "30.6.08", "22.12.78"
День, наименование месяца и год | dd ([ \t.-])* m ([ \t.-])* y | "30-June 2008", "22DEC78", "14 III 1879"
Наименование месяца и 4 цифры года (день месяца сбрасывается на 1) | m ([ \t.-])* YY | "June 2008", "DEC1978", "March 1879"
4 цифры года и наименование месяца (день месяца сбрасывается на 1) | YY ([ \t.-])* m | "2008 June", "1978-XII", "1879.MArCH"
Наименование месяца, день и год | m ([ .\t-])* dd [,.stndrh\t ]+ y | "July 1st, 2008", "April 17, 1790", "May.9,78"
Наименование месяца и день | m ([ .\t-])* dd [,.stndrh\t ]* | "July 1st,", "Apr 17", "May.9"
День и наименование месяца | d ([ .\t-])* m | "1 July", "17 Apr", "9.May"
Сокращенное наименование месяца, день и год | M "-" DD "-" y | "May-09-78", "Apr-17-1790"
Год, сокращенное наименование месяца и день | y "-" M "-" DD | "78-Dec-22", "1814-MAY-17"
Только год | YY | "1978", "2008"
Только наименование месяца | m | "March", "jun", "DEC"
Нотации ISO8601
Описание | Формат | Примеры
8 цифр (год, месяц и день) | YY MM DD | "15810726", "19780417", "18140517"
8 цифр (год, месяц и день) со слэшем-разделителем | YY "/" MM "/" DD | "2008/06/30", "1978/12/22"
2 цифры года, месяц и день с дефисом-разделителем | yy "-" MM "-" DD | "08-06-30", "78-12-22"
4 цифры года с необязательным знаком, месяц и день | [+-]? YY "-" MM "-" DD | "-0002-07-26", "+1978-04-17", "1814-05-17"

Замечание:

Форматы y и yy для годов меньше 100 обрабатываются в исключительных случаях при использовании символов y или yy. Если год попадает в диапазон 0-69 (включительно), то к нему добавляется 2000. Если же год принадлежит диапазону 70-99 (включительно), то к нему добавляется 1900. Это означает, что дата "00-01-01" интерпретируется как "2000-01-01".

Замечание:

Формат "День, месяц и 2 цифры года с разделителем ввиде точки или символа табуляции" (dd [.\t] mm "." yy) работает только для годов из диапазона 61-99 (включительно). За пределами этого диапазона отдается предпочтение формату времени "HH [.:] MM [.:] SS".

Замечание:

Формат "Только год" задействуется только в случае, если строка времени была найдена. В противном случае отдается предпочтению формату HH MM.

Замечание:

Возможен выход за границы диапазона форматов dd и DD. День месяца с порядковым номером 0 подразумевает последний день предыдущего месяца в результате выхода за границы диапазона. Согласно написанному "2008-08-00" равносильно "2008-07-31", а "2008-06-31" соответствует "2008-07-01" (в июне всего 30 дней).

Обратите внимание, что с PHP 5.1.0 tдиапазон дней ограничен 0-31 как указано выше регулярным выражением. Так что, например, "2008-06-32" - некорректная дата.

Также допускается выход за границы диапазона для форматов mm и MM для значения 0. Значение месяца 0 соответствует декабрю предыдущего года. Например дата "2008-00-22" равносильна "2007-12-22".

Если учесть два предыдущих замечания и выход за границы диапазона дней и месяцев, получим следующее: дата "2008-00-00" в первую очередь преобразуется в "2007-12-00", которая будет преобразована в "2007-11-30". То же случится с датой "0000-00-00", которая будет преобразована к "-0001-11-30" (-1-й год в календаре ISO 8601 и 2 год до н.э. по григорианскому календарю).


Компоновка форматов

На этой странице описаны объединенные форматы даты/времени, которые понимает парсер функций strtotime(), DateTime и date_create().

Используемые символы
Описание | Форматы | Примеры
DD (день месяца с ведущим нулем) | "0" [0-9] | [1-2][0-9] | "3" [01] | "02", "12", "31"
doy (день в году) | "00"[1-9] | "0"[1-9][0-9] | [1-2][0-9][0-9] | "3"[0-5][0-9] | "36"[0-6] | "001", "012", "180", "350", "366"
frac (дробная часть) | . [0-9]+ | ".21342", ".85"
hh (часы) | "0"?[1-9] | "1"[0-2] | "04", "7", "12"
HH (часы с ведущим нулем) | [01][0-9] | "2"[0-4] | "04", "7", "19"
meridian (Ante meridiem или Post meridiem) | [AaPp] .? [Mm] .? [\0\t ] | "A.m.", "pM", "am."
ii (минуты) | [0-5][0-9] | "04", "8", "59"
II (минуты с ведущим нулем) | [0-5][0-9] | "04", "08", "59"
M (сокращенное наименование месяца) | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' |
MM (месяц с ведущим нулем) | [0-1][0-9] | "00", "12"
space (символ пробела или табуляции) | [ \t] |
ss (секунды) | [0-5][0-9] | "04", "8", "59"
SS (секунды с ведущим нулем) | [0-5][0-9] | "04", "08", "59"
W (неделя в году) | "0"[1-9] | [1-4][0-9] | "5"[0-3] | "05", "17", "53"
tzcorrection (смещение временной зоны) | "GMT"? [+-] hh ":"? II? | "+0400", "GMT-07:00", "-07:00"
YY (4 цифры года) | [0-9]{4} | "2000", "2008", "1978"
Региональные нотации
Описание | Формат | Примеры
Общий формат log-записей | dd "/" M "/" YY : HH ":" II ":" SS space tzcorrection | "10/Oct/2000:13:55:36 -0700"
EXIF | YY ":" MM ":" DD " " HH ":" II ":" SS | "2008:08:07 18:11:31"
Год и неделя в формате ISO | YY "-"? "W" W | "2008W27", "2008-W28"
Год, неделя в формате ISO и день недели | YY "-"? "W" W "-"? [0-7] | "2008W273", "2008-W28-3"
MySQL | YY "-" MM "-" DD " " HH ":" II ":" SS | "2008-08-07 18:11:31"
PostgreSQL: год и день в году | YY "."? doy | "2008.197", "2008197"
SOAP | YY "-" MM "-" DD "T" HH ":" II ":" SS frac tzcorrection? | "2008-07-01T22:35:17.02", "2008-07-01T22:35:17.03+08:00"
Unix Timestamp | "@" "-"? [0-9]+ | "@1215282385"
XMLRPC | YY MM DD "T" hh ":" II ":" SS | "20080701T22:38:07", "20080701T9:38:07"
XMLRPC (Compact) | YY MM DD 't' hh II SS | "20080701t223807", "20080701T093807"
WDDX | YY "-" mm "-" dd "T" hh ":" ii ":" ss | "2008-7-1T9:3:37"

Замечание:

Символ "W" в форматах "Год и неделя в формате ISO" и "Год, неделя в формате ISO и день недели" чувствителен к регистру, допускается использование символа "W" только в верхнем регистре.

Символ "T" в форматах SOAP, XMRPC и WDDX также чувствителен к регистру, допускается использование символа "T" только в верхнем регистре.

Формат "Unix Timestamp" устанавливает временную зону в UTC.


Относительные форматы

На этой странице описаны относительные форматы даты/времени, которые понимает парсер функций strtotime(), DateTime и date_create().

Используемые символы
Описание | Формат
dayname (наименование дня недели) | 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat'
daytext (интервалы в неделях) | 'weekday' | 'weekdays'
number | [+-]?[0-9]+
ordinal (порядковые числительные и указатели) | 'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' | 'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' | 'next' | 'last' | 'previous' | 'this'
reltext (указатели) | 'next' | 'last' | 'previous' | 'this'
space (символы пробела и табуляции) | [ \t]+
unit (интервалы) | (('sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' | 'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' | daytext
Нотации, привязанные к дням
Формат | Описание | Примеры
'yesterday' | Полночь вчера | "yesterday 14:00"
'midnight' | Время устанавливается в 00:00:00 |
'today' | Время устанавливается в 00:00:00 |
'now' | Текущее время |
'noon' | Время устанавливается в 12:00:00 | "yesterday noon"
'tomorrow' | Midnight of tomorrow |
'back of' hour | без 15 минут заданный час | "back of 7pm", "back of 15"
'front of' hour | 15 минут заданного часа | "front of 5am", "front of 23"
'first day' ' of'? | Устанавливает первый день текущего месяца. При использовании с указанием на месяц - устанавливает первый день заданного месяца. | "first day of January 2008"
'last day' ' of'? | Устанавливает последний день текущего месяца. При использовании с указанием на месяц - устанавливает последний день заданного месяца. | "last day of next month"
ordinal space dayname space 'of' | Вычисляет x-й день недели текущего или заданного месяца. | "first sat of July 2008"
'last' space dayname space 'of' | Вычисляет последний день недели текущего или заданного месяца. | "last sat of July 2008"
number space? (unit | 'week') | Вычисляет относительное время при использовании числовых значений периода. | "+5 weeks", "12 day", "-7 weekdays"
ordinal space unit | Вычисляет относительное время при использовании строковых значений периода. | "fifth day", "second month"
'ago' | Вычитает все значения из последнего полученного момента времени. | "2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago ago"
dayname | Перемещается на следующий день указанного дня недели. | "Monday"
reltext space 'week' | Разбирает специфичный формат "weekday + last/this/next week". | "Monday next week"

Замечание:

Относительные выражения всегда обрабатываются после не являющихся относительными. Например, "+1 week july 2008" эквивалентно "july 2008 +1 week".

Исключением этого правила являются: "yesterday", "midnight", "today", "noon" и "tomorrow". Записи "tomorrow 11:00" и "11:00 tomorrow" отличаются. Если принять сегодняшнюю дату за "July 23rd, 2008", то первая запись возвращает "2008-07-24 11:00", а вторая "2008-07-24 00:00". Причина такого поведения в том, что эти пять выражений влияют непосредственно на время.

Замечание:

Следует обратить внимание на приведенные ниже замечания относительно текущего дня недели и дня недели, указанного в строке даты/времени. Текущий день недели может быть вычислен из независимой части строки даты/времени.

  1. "dayname" не сдвигает дату на другой день. (Например: "Wed July 23rd, 2008" означает "2008-07-23").
  2. "number dayname" не сдвигает дату на другой день. (Например: "1 wednesday july 23rd, 2008" означает "2008-07-23").
  3. "number week dayname" добавляет соответствующее число недель, но не сдвигает дату на другой день. В этом случае имеют место два различных блока "number week" и "dayname". (Например: "+1 week wednesday july 23rd, 2008" означает "2008-07-30").
  4. "ordinal dayname" сдвигает дату на другой день. (Например: "last wednesday july 23rd, 2008" means "2008-07-30").
  5. "number week ordinal dayname" добавляет соответствующее число недель, а после сдвигает дату на другой день. В этом случае имеют место два различных блока "number week" и "ordinal dayname". (Например: "+1 week first wednesday july 23rd, 2008" means "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 день. Это связано с ноября составляет 30 дней в длину, и в декабре является 31 дней в длине, производя в общей сложности 61 дней.

Список изменений

Версия | Описание
5.6.23, 7.0.8 | Недели всегда начинаются с понедельника. Ранее можно было определять начало недели с воскресенья.
5.3.3 | Поведение "first day" и "last day" изменено на "+1 day" and "-1 day", соответственно. Ранее поведение было равносильно "first day of" и "last day of".


Список поддерживаемых временных зон

Содержание

  • Африка
  • Америка
  • Антарктика
  • Арктика
  • Азия
  • Атлантика
  • Австралия
  • Европа
  • Индийский
  • Тихоокеанский
  • Другие

Здесь вы найдете полный список временных зон, поддерживаемых PHP, которые могут быть использованы, например, в date_default_timezone_set().

Предостережение

Поведение временных зон, отсутствующих в списке, не определено.

Замечание: Последняя версия базы данных временных зон может быть установлена с помощью PECL-пакета » timezonedb.

Замечание: Этот список основан на версии базы данных временных зон 2016.10.


Африка

Африка
Africa/Abidjan | Africa/Accra | Africa/Addis_Ababa | Africa/Algiers
Africa/Asmara | Africa/Bamako | Africa/Bangui | Africa/Banjul
Africa/Bissau | Africa/Blantyre | Africa/Brazzaville | Africa/Bujumbura
Africa/Cairo | Africa/Casablanca | Africa/Ceuta | Africa/Conakry
Africa/Dakar | Africa/Dar_es_Salaam | Africa/Djibouti | Africa/Douala
Africa/El_Aaiun | Africa/Freetown | Africa/Gaborone | Africa/Harare
Africa/Johannesburg | Africa/Juba | Africa/Kampala | Africa/Khartoum
Africa/Kigali | Africa/Kinshasa | Africa/Lagos | Africa/Libreville
Africa/Lome | Africa/Luanda | Africa/Lubumbashi | Africa/Lusaka
Africa/Malabo | Africa/Maputo | Africa/Maseru | Africa/Mbabane
Africa/Mogadishu | Africa/Monrovia | Africa/Nairobi | Africa/Ndjamena
Africa/Niamey | Africa/Nouakchott | Africa/Ouagadougou | Africa/Porto-Novo
Africa/Sao_Tome | Africa/Tripoli | Africa/Tunis | Africa/Windhoek


Америка

Америка
America/Adak | America/Anchorage | America/Anguilla | America/Antigua
America/Araguaina | America/Argentina/Buenos_Aires | America/Argentina/Catamarca | America/Argentina/Cordoba
America/Argentina/Jujuy | America/Argentina/La_Rioja | America/Argentina/Mendoza | America/Argentina/Rio_Gallegos
America/Argentina/Salta | America/Argentina/San_Juan | America/Argentina/San_Luis | America/Argentina/Tucuman
America/Argentina/Ushuaia | America/Aruba | America/Asuncion | America/Atikokan
America/Bahia | America/Bahia_Banderas | America/Barbados | America/Belem
America/Belize | America/Blanc-Sablon | America/Boa_Vista | America/Bogota
America/Boise | America/Cambridge_Bay | America/Campo_Grande | America/Cancun
America/Caracas | America/Cayenne | America/Cayman | America/Chicago
America/Chihuahua | America/Costa_Rica | America/Creston | America/Cuiaba
America/Curacao | America/Danmarkshavn | America/Dawson | America/Dawson_Creek
America/Denver | America/Detroit | America/Dominica | America/Edmonton
America/Eirunepe | America/El_Salvador | America/Fort_Nelson | America/Fortaleza
America/Glace_Bay | America/Godthab | America/Goose_Bay | America/Grand_Turk
America/Grenada | America/Guadeloupe | America/Guatemala | America/Guayaquil
America/Guyana | America/Halifax | America/Havana | America/Hermosillo
America/Indiana/Indianapolis | America/Indiana/Knox | America/Indiana/Marengo | America/Indiana/Petersburg
America/Indiana/Tell_City | America/Indiana/Vevay | America/Indiana/Vincennes | America/Indiana/Winamac
America/Inuvik | America/Iqaluit | America/Jamaica | America/Juneau
America/Kentucky/Louisville | America/Kentucky/Monticello | America/Kralendijk | America/La_Paz
America/Lima | America/Los_Angeles | America/Lower_Princes | America/Maceio
America/Managua | America/Manaus | America/Marigot | America/Martinique
America/Matamoros | America/Mazatlan | America/Menominee | America/Merida
America/Metlakatla | America/Mexico_City | America/Miquelon | America/Moncton
America/Monterrey | America/Montevideo | America/Montserrat | America/Nassau
America/New_York | America/Nipigon | America/Nome | America/Noronha
America/North_Dakota/Beulah | America/North_Dakota/Center | America/North_Dakota/New_Salem | America/Ojinaga
America/Panama | America/Pangnirtung | America/Paramaribo | America/Phoenix
America/Port-au-Prince | America/Port_of_Spain | America/Porto_Velho | America/Puerto_Rico
America/Rainy_River | America/Rankin_Inlet | America/Recife | America/Regina
America/Resolute | America/Rio_Branco | America/Santarem | America/Santiago
America/Santo_Domingo | America/Sao_Paulo | America/Scoresbysund | America/Sitka
America/St_Barthelemy | America/St_Johns | America/St_Kitts | America/St_Lucia
America/St_Thomas | America/St_Vincent | America/Swift_Current | America/Tegucigalpa
America/Thule | America/Thunder_Bay | America/Tijuana | America/Toronto
America/Tortola | America/Vancouver | America/Whitehorse | America/Winnipeg
America/Yakutat | America/Yellowknife |  |


Антарктика

Антарктика
Antarctica/Casey | Antarctica/Davis | Antarctica/DumontDUrville | Antarctica/Macquarie
Antarctica/Mawson | Antarctica/McMurdo | Antarctica/Palmer | Antarctica/Rothera
Antarctica/Syowa | Antarctica/Troll | Antarctica/Vostok |


  • « Антарктика
  • Азия »
  • PHP Manual
  • Список поддерживаемых временных зон
  • Арктика

Арктика

Арктика
Arctic/Longyearbyen


Азия

Азия
Asia/Aden | Asia/Almaty | Asia/Amman | Asia/Anadyr
Asia/Aqtau | Asia/Aqtobe | Asia/Ashgabat | Asia/Atyrau
Asia/Baghdad | Asia/Bahrain | Asia/Baku | Asia/Bangkok
Asia/Barnaul | Asia/Beirut | Asia/Bishkek | Asia/Brunei
Asia/Chita | Asia/Choibalsan | Asia/Colombo | Asia/Damascus
Asia/Dhaka | Asia/Dili | Asia/Dubai | Asia/Dushanbe
Asia/Famagusta | Asia/Gaza | Asia/Hebron | Asia/Ho_Chi_Minh
Asia/Hong_Kong | Asia/Hovd | Asia/Irkutsk | Asia/Jakarta
Asia/Jayapura | Asia/Jerusalem | Asia/Kabul | Asia/Kamchatka
Asia/Karachi | Asia/Kathmandu | Asia/Khandyga | Asia/Kolkata
Asia/Krasnoyarsk | Asia/Kuala_Lumpur | Asia/Kuching | Asia/Kuwait
Asia/Macau | Asia/Magadan | Asia/Makassar | Asia/Manila
Asia/Muscat | Asia/Nicosia | Asia/Novokuznetsk | Asia/Novosibirsk
Asia/Omsk | Asia/Oral | Asia/Phnom_Penh | Asia/Pontianak
Asia/Pyongyang | Asia/Qatar | Asia/Qyzylorda | Asia/Riyadh
Asia/Sakhalin | Asia/Samarkand | Asia/Seoul | Asia/Shanghai
Asia/Singapore | Asia/Srednekolymsk | Asia/Taipei | Asia/Tashkent
Asia/Tbilisi | Asia/Tehran | Asia/Thimphu | Asia/Tokyo
Asia/Tomsk | Asia/Ulaanbaatar | Asia/Urumqi | Asia/Ust-Nera
Asia/Vientiane | Asia/Vladivostok | Asia/Yakutsk | Asia/Yangon
Asia/Yekaterinburg | Asia/Yerevan |  |


Атлантика

Атлантика
Atlantic/Azores | Atlantic/Bermuda | Atlantic/Canary | Atlantic/Cape_Verde
Atlantic/Faroe | Atlantic/Madeira | Atlantic/Reykjavik | Atlantic/South_Georgia
Atlantic/St_Helena | Atlantic/Stanley |  |


Австралия

Австралия
Australia/Adelaide | Australia/Brisbane | Australia/Broken_Hill | Australia/Currie
Australia/Darwin | Australia/Eucla | Australia/Hobart | Australia/Lindeman
Australia/Lord_Howe | Australia/Melbourne | Australia/Perth | Australia/Sydney


Европа

Европа
Europe/Amsterdam | Europe/Andorra | Europe/Astrakhan | Europe/Athens
Europe/Belgrade | Europe/Berlin | Europe/Bratislava | Europe/Brussels
Europe/Bucharest | Europe/Budapest | Europe/Busingen | Europe/Chisinau
Europe/Copenhagen | Europe/Dublin | Europe/Gibraltar | Europe/Guernsey
Europe/Helsinki | Europe/Isle_of_Man | Europe/Istanbul | Europe/Jersey
Europe/Kaliningrad | Europe/Kiev | Europe/Kirov | Europe/Lisbon
Europe/Ljubljana | Europe/London | Europe/Luxembourg | Europe/Madrid
Europe/Malta | Europe/Mariehamn | Europe/Minsk | Europe/Monaco
Europe/Moscow | Europe/Oslo | Europe/Paris | Europe/Podgorica
Europe/Prague | Europe/Riga | Europe/Rome | Europe/Samara
Europe/San_Marino | Europe/Sarajevo | Europe/Saratov | Europe/Simferopol
Europe/Skopje | Europe/Sofia | Europe/Stockholm | Europe/Tallinn
Europe/Tirane | Europe/Ulyanovsk | Europe/Uzhgorod | Europe/Vaduz
Europe/Vatican | Europe/Vienna | Europe/Vilnius | Europe/Volgograd
Europe/Warsaw | Europe/Zagreb | Europe/Zaporozhye | Europe/Zurich


Индийский

Индийский
Indian/Antananarivo | Indian/Chagos | Indian/Christmas | Indian/Cocos
Indian/Comoro | Indian/Kerguelen | Indian/Mahe | Indian/Maldives
Indian/Mauritius | Indian/Mayotte | Indian/Reunion |


Тихоокеанский

Тихоокеанский
Pacific/Apia | Pacific/Auckland | Pacific/Bougainville | Pacific/Chatham
Pacific/Chuuk | Pacific/Easter | Pacific/Efate | Pacific/Enderbury
Pacific/Fakaofo | Pacific/Fiji | Pacific/Funafuti | Pacific/Galapagos
Pacific/Gambier | Pacific/Guadalcanal | Pacific/Guam | Pacific/Honolulu
Pacific/Johnston | Pacific/Kiritimati | Pacific/Kosrae | Pacific/Kwajalein
Pacific/Majuro | Pacific/Marquesas | Pacific/Midway | Pacific/Nauru
Pacific/Niue | Pacific/Norfolk | Pacific/Noumea | Pacific/Pago_Pago
Pacific/Palau | Pacific/Pitcairn | Pacific/Pohnpei | Pacific/Port_Moresby
Pacific/Rarotonga | Pacific/Saipan | Pacific/Tahiti | Pacific/Tarawa
Pacific/Tongatapu | Pacific/Wake | Pacific/Wallis |


Другие

Внимание

Пожалуйста, не используйте описанные здесь временные зоны (кроме UTC), они существуют только по причинам обратной совместимости и могут привести к неправильной работе.

Внимание

Если вы игнорируете вышестоящее предупреждение, то учтите, что база данных временных зон IANA, которая используется для временных зон PHP, поддерживает использование POSIX-стиля знаков, поэтому обозначения временных зон Etc/GMT+n и Etc/GMT-n обратны общепринятым.

Например, временная зона на 8 часов вперед от GMT, используемая в Китае, Западной Австралии и других местах, в действительности записана в базе данных как Etc/GMT-8, а не как Etc/GMT+8, который вы могли ожидать.

Настоятельно рекомендуется использовать правильные временные зоны, такие как Asia/Shanghai или Australia/Perth для вышеприведенного примера.

Другие
Africa/Asmera | Africa/Timbuktu | America/Argentina/ComodRivadavia | America/Atka
America/Buenos_Aires | America/Catamarca | America/Coral_Harbour | America/Cordoba
America/Ensenada | America/Fort_Wayne | America/Indianapolis | America/Jujuy
America/Knox_IN | America/Louisville | America/Mendoza | America/Montreal
America/Porto_Acre | America/Rosario | America/Santa_Isabel | America/Shiprock
America/Virgin | Antarctica/South_Pole | Asia/Ashkhabad | Asia/Calcutta
Asia/Chongqing | Asia/Chungking | Asia/Dacca | Asia/Harbin
Asia/Istanbul | Asia/Kashgar | Asia/Katmandu | Asia/Macao
Asia/Rangoon | Asia/Saigon | Asia/Tel_Aviv | Asia/Thimbu
Asia/Ujung_Pandang | Asia/Ulan_Bator | Atlantic/Faeroe | Atlantic/Jan_Mayen
Australia/ACT | Australia/Canberra | Australia/LHI | Australia/North
Australia/NSW | Australia/Queensland | Australia/South | Australia/Tasmania
Australia/Victoria | Australia/West | Australia/Yancowinna | Brazil/Acre
Brazil/DeNoronha | Brazil/East | Brazil/West | Canada/Atlantic
Canada/Central | Canada/East-Saskatchewan | Canada/Eastern | Canada/Mountain
Canada/Newfoundland | Canada/Pacific | Canada/Saskatchewan | Canada/Yukon
CET | Chile/Continental | Chile/EasterIsland | CST6CDT
Cuba | EET | Egypt | Eire
EST | EST5EDT | Etc/GMT | Etc/GMT+0
Etc/GMT+1 | Etc/GMT+10 | Etc/GMT+11 | Etc/GMT+12
Etc/GMT+2 | Etc/GMT+3 | Etc/GMT+4 | Etc/GMT+5
Etc/GMT+6 | Etc/GMT+7 | Etc/GMT+8 | Etc/GMT+9
Etc/GMT-0 | Etc/GMT-1 | Etc/GMT-10 | Etc/GMT-11
Etc/GMT-12 | Etc/GMT-13 | Etc/GMT-14 | Etc/GMT-2
Etc/GMT-3 | Etc/GMT-4 | Etc/GMT-5 | Etc/GMT-6
Etc/GMT-7 | Etc/GMT-8 | Etc/GMT-9 | Etc/GMT0
Etc/Greenwich | Etc/UCT | Etc/Universal | Etc/UTC
Etc/Zulu | Europe/Belfast | Europe/Nicosia | Europe/Tiraspol
Factory | GB | GB-Eire | GMT
GMT+0 | GMT-0 | GMT0 | Greenwich
Hongkong | HST | Iceland | Iran
Israel | Jamaica | Japan | Kwajalein
Libya | MET | Mexico/BajaNorte | Mexico/BajaSur
Mexico/General | MST | MST7MDT | Navajo
NZ | NZ-CHAT | Pacific/Ponape | Pacific/Samoa
Pacific/Truk | Pacific/Yap | Poland | Portugal
PRC | PST8PDT | ROC | ROK
Singapore | Turkey | UCT | Universal
US/Alaska | US/Aleutian | US/Arizona | US/Central
US/East-Indiana | US/Eastern | US/Hawaii | US/Indiana-Starke
US/Michigan | US/Mountain | US/Pacific | US/Pacific-New
US/Samoa | UTC | W-SU | WET
Zulu |  |  |


High resolution timing

  • Введение
  • Установка и настройка
    • Установка
  • Примеры
    • Basic usage
  • HRTime\PerformanceCounter — The HRTime\PerformanceCounter class
    • HRTime\PerformanceCounter::getElapsedTicks — Get elapsed ticks for all intervals.
    • HRTime\PerformanceCounter::getFrequency — Timer frequency in ticks per second
    • HRTime\PerformanceCounter::getLastElapsedTicks — Get elapsed ticks for the last interval.
    • HRTime\PerformanceCounter::isRunning — Whether the measurement is running.
    • HRTime\PerformanceCounter::start — Start time measurement
    • HRTime\PerformanceCounter::stop — Stop time measurement
  • HRTime\StopWatch — The HRTime\StopWatch class
    • HRTime\StopWatch::getElapsedTime — Get elapsed time for all intervals.
    • HRTime\StopWatch::getLastElapsedTime — Get elapsed time for the last interval.
  • HRTime\Unit — The HRTime\Unit class


Введение

The HRTime extension implements a high resolution StopWatch class. It uses the best possible APIs on different platforms which brings resolution up to nanoseconds. It also makes possible to implement a custom stopwatch using low level ticks delivered by the underlaying APIs.


  • « Введение
  • Установка »
  • PHP Manual
  • HRTime
  • Установка и настройка

Установка и настройка

Содержание

  • Установка


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/hrtime.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/hrtime/.


  • « Установка
  • Basic usage »
  • PHP Manual
  • HRTime
  • Примеры

Примеры

Содержание

  • Basic usage


Basic usage

The example illustrates the basic StopWatch class usage

Пример #1 Measure several code blocks execution and get the total

<?php

$c = new HRTime\StopWatch;

$c->start();
/* measure this code block execution */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed0 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

/* measurement is not running here*/
for ($i = 0; $i < 1024*1024; $i++);

$c->start();
/* measure this code block execution */
for ($i = 0; $i < 1024*1024; $i++);
$c->stop();
$elapsed1 = $c->getLastElapsedTime(HRTime\Unit::NANOSECOND);

$elapsed_total = $c->getElapsedTime(HRTime\Unit::NANOSECOND);

?>


The HRTime\PerformanceCounter class

(PECL hrtime >= 0.4.3)

Введение

Обзор классов

HRTime\PerformanceCounter {
/* Методы */
public int getElapsedTicks ( void )
public int getFrequency ( void )
public int getLastElapsedTicks ( void )
public bool isRunning ( void )
public void start ( void )
public void stop ( void )
}

Содержание

  • HRTime\PerformanceCounter::getElapsedTicks — Get elapsed ticks for all intervals.
  • HRTime\PerformanceCounter::getFrequency — Timer frequency in ticks per second
  • HRTime\PerformanceCounter::getLastElapsedTicks — Get elapsed ticks for the last interval.
  • HRTime\PerformanceCounter::isRunning — Whether the measurement is running.
  • HRTime\PerformanceCounter::start — Start time measurement
  • HRTime\PerformanceCounter::stop — Stop time measurement


Get elapsed ticks for all intervals.

  • « HRTime\PerformanceCounter
  • HRTime\PerformanceCounter::getFrequency »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Get elapsed ticks for all intervals.

HRTime\PerformanceCounter::getElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::getElapsedTicks — Get elapsed ticks for all intervals.

Описание

public int HRTime\PerformanceCounter::getElapsedTicks ( void )

Get elapsed ticks for all the previously closed intervals.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns integer indicating elapsed ticks.


Timer frequency in ticks per second

  • « HRTime\PerformanceCounter::getElapsedTicks
  • HRTime\PerformanceCounter::getLastElapsedTicks »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Timer frequency in ticks per second

HRTime\PerformanceCounter::getFrequency

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::getFrequency — Timer frequency in ticks per second

Описание

public int HRTime\PerformanceCounter::getFrequency ( void )

Returns the timer frequency in ticks per second. This value is constant after the system start on almost any operating system.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns integer indicating the timer frequency.


Get elapsed ticks for the last interval.

  • « HRTime\PerformanceCounter::getFrequency
  • HRTime\PerformanceCounter::isRunning »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Get elapsed ticks for the last interval.

HRTime\PerformanceCounter::getLastElapsedTicks

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::getLastElapsedTicks — Get elapsed ticks for the last interval.

Описание

public int HRTime\PerformanceCounter::getLastElapsedTicks ( void )

Get elapsed ticks for the previously closed interval.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns integer indicating elapsed ticks.


Whether the measurement is running.

  • « HRTime\PerformanceCounter::getLastElapsedTicks
  • HRTime\PerformanceCounter::start »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Whether the measurement is running.

HRTime\PerformanceCounter::isRunning

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::isRunning — Whether the measurement is running.

Описание

public bool HRTime\PerformanceCounter::isRunning ( void )

Reveals whether the measurement was started.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns boolean indicating whetehr the measurement is running.


Start time measurement

  • « HRTime\PerformanceCounter::isRunning
  • HRTime\PerformanceCounter::stop »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Start time measurement

HRTime\PerformanceCounter::start

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::start — Start time measurement

Описание

public void HRTime\PerformanceCounter::start ( void )

Starts the time measurement. It has no effect if the measurement was already started. The measurement will be continued if it was previously stopped.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns void.


Stop time measurement

  • « HRTime\PerformanceCounter::start
  • HRTime\StopWatch »
  • PHP Manual
  • HRTime\PerformanceCounter
  • Stop time measurement

HRTime\PerformanceCounter::stop

(PECL hrtime >= 0.4.3)

HRTime\PerformanceCounter::stop — Stop time measurement

Описание

public void HRTime\PerformanceCounter::stop ( void )

Stop the time measurement for the previously started interval.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns void.


The HRTime\StopWatch class

(PECL hrtime >= 0.4.3)

Введение

Обзор классов

HRTime\StopWatch extends HRTime\PerformanceCounter {
/* Методы */
public float getElapsedTime ([ integer $unit ] )
public float getLastElapsedTime ([ integer $unit ] )
/* Наследуемые методы */
public int HRTime\PerformanceCounter::getElapsedTicks ( void )
public int HRTime\PerformanceCounter::getFrequency ( void )
public int HRTime\PerformanceCounter::getLastElapsedTicks ( void )
public bool HRTime\PerformanceCounter::isRunning ( void )
public void HRTime\PerformanceCounter::start ( void )
public void HRTime\PerformanceCounter::stop ( void )
}

Содержание

  • HRTime\StopWatch::getElapsedTime — Get elapsed time for all intervals.
  • HRTime\StopWatch::getLastElapsedTime — Get elapsed time for the last interval.


Get elapsed time for all intervals.

  • « HRTime\StopWatch
  • HRTime\StopWatch::getLastElapsedTime »
  • PHP Manual
  • HRTime\StopWatch
  • Get elapsed time for all intervals.

HRTime\StopWatch::getElapsedTime

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getElapsedTime — Get elapsed time for all intervals.

Описание

public float HRTime\StopWatch::getElapsedTime ([ integer $unit ] )

Get elapsed time for all the previously closed intervals.

Список параметров

unit

Time unit represented by a HRTime\Unit constant. Default is HRTime\Unit::SECOND.

Возвращаемые значения

Returns float indicating elapsed time.


Get elapsed time for the last interval.

  • « HRTime\StopWatch::getElapsedTime
  • HRTime\Unit »
  • PHP Manual
  • HRTime\StopWatch
  • Get elapsed time for the last interval.

HRTime\StopWatch::getLastElapsedTime

(PECL hrtime >= 0.4.3)

HRTime\StopWatch::getLastElapsedTime — Get elapsed time for the last interval.

Описание

public float HRTime\StopWatch::getLastElapsedTime ([ integer $unit ] )

Get elapsed time for the previously closed interval.

Список параметров

unit

Time unit represented by a HRTime\Unit constant. Default is HRTime\Unit::SECOND.

Возвращаемые значения

Returns float indicating elapsed time.


The HRTime\Unit class

(PECL hrtime >= 0.4.3)

Введение

Обзор классов

HRTime\Unit {
/* Constants */
const integer SECOND = 0 ;
const integer MILLISECOND = 1 ;
const integer MICROSECOND = 2 ;
const integer NANOSECOND = 3 ;
/* Методы */
}

Предопределенные константы

HRTime\Unit::SECOND

HRTime\Unit::MILLISECOND

HRTime\Unit::MICROSECOND

HRTime\Unit::NANOSECOND


Расширения для работы с файловой системой

  • Прямой ввод/вывод (Direct IO)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции прямого ввода/вывода
  • Каталоги
    • Установка и настройка
    • Предопределенные константы
    • Directory — Класс Directory
    • Функции для работы с каталогами
  • FileInfo — Информация о файле
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции расширения Fileinfo
    • finfo — Класс finfo
  • Функции для работы с файловой системой
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Файловая система
  • Inotify
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Inotify
  • Mimetype
    • Введение
    • Установка и настройка
    • Предопределенные константы
  • Proctitle
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Proctitle Функции
  • xattr
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • xattr Функции
  • xdiff
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • xdiff Функции


Прямой ввод/вывод (Direct IO)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции прямого ввода/вывода
    • dio_close — Закрыть файловый дескриптор
    • dio_fcntl — Вызывает функцию библиотеки C fcntl для файлового дескриптора
    • dio_open — Открывает файл (по необходимости создает) на более низком уровне нежели потоковые функции ввода/вывода языка C.
    • dio_read — Прочитай байты из файлового дескриптора
    • dio_seek — Переместить указатель в файловом дескрипторе
    • dio_stat — Получить информацию о файловом дескрипторе
    • dio_tcsetattr — Устанавливает атрибуты терминала и скорость передачи данных для последовательного порта
    • dio_truncate — Обрезает файл до заданного количества байт
    • dio_write — Записывает байты в файл, опционально обрезая до указанной длины


Введение

PHP поддерживает функции прямого ввода/вывода, как описано в стандарте Posix (секция 6), для вызова функций ввода/вывода на более низком уровне нежели потоковые функции языка C (fopen(), fread(),..). Эти функции могут быть задействованы только если необходим прямой контроль устройств. Во всех остальных случаях более адекватно будет использовать стандартные функции файловой системы.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.

Для Windows данные функции доступны только с PHP 5.0.0


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/dio.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Для данного расширения зарегистрирован один тип ресурса: дескриптор файла, возвращенный dio_open().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

F_DUPFD (integer)

F_GETFD (integer)

F_GETFL (integer)

F_GETLK (integer)

F_GETOWN (integer)

F_RDLCK (integer)

F_SETFL (integer)

F_SETLK (integer)

F_SETLKW (integer)

F_SETOWN (integer)

F_UNLCK (integer)

F_WRLCK (integer)

O_APPEND (integer)

O_ASYNC (integer)

O_CREAT (integer)

O_EXCL (integer)

O_NDELAY (integer)

O_NOCTTY (integer)

O_NONBLOCK (integer)

O_RDONLY (integer)

O_RDWR (integer)

O_SYNC (integer)

O_TRUNC (integer)

O_WRONLY (integer)

S_IRGRP (integer)

S_IROTH (integer)

S_IRUSR (integer)

S_IRWXG (integer)

S_IRWXO (integer)

S_IRWXU (integer)

S_IWGRP (integer)

S_IWOTH (integer)

S_IWUSR (integer)

S_IXGRP (integer)

S_IXOTH (integer)

S_IXUSR (integer)


Функции прямого ввода/вывода

Содержание

  • dio_close — Закрыть файловый дескриптор
  • dio_fcntl — Вызывает функцию библиотеки C fcntl для файлового дескриптора
  • dio_open — Открывает файл (по необходимости создает) на более низком уровне нежели потоковые функции ввода/вывода языка C.
  • dio_read — Прочитай байты из файлового дескриптора
  • dio_seek — Переместить указатель в файловом дескрипторе
  • dio_stat — Получить информацию о файловом дескрипторе
  • dio_tcsetattr — Устанавливает атрибуты терминала и скорость передачи данных для последовательного порта
  • dio_truncate — Обрезает файл до заданного количества байт
  • dio_write — Записывает байты в файл, опционально обрезая до указанной длины


Закрыть файловый дескриптор

  • « Функции прямого ввода/вывода
  • dio_fcntl »
  • PHP Manual
  • Функции прямого ввода/вывода
  • Закрыть файловый дескриптор

dio_close

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PHP 7)

dio_close — Закрыть файловый дескриптор

Описание

void dio_close ( resource $fd )

Функция 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.0.5, PHP 7)

dio_fcntl — Вызывает функцию библиотеки C fcntl для файлового дескриптора

Описание

mixed dio_fcntl ( resource $fd , int $cmd [, mixed $args ] )

Функция 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.0.5, PHP 7)

dio_open — Открывает файл (по необходимости создает) на более низком уровне нежели потоковые функции ввода/вывода языка C.

Описание

resource dio_open ( string $filename , int $flags [, int $mode = 0 ] )

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.0.5, PHP 7)

dio_read — Прочитай байты из файлового дескриптора

Описание

string dio_read ( resource $fd [, int $len = 1024 ] )

Функция 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.0.5, PHP 7)

dio_seek — Переместить указатель в файловом дескрипторе

Описание

int dio_seek ( resource $fd , int $pos [, int $whence = SEEK_SET ] )

Функция 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.0.5, PHP 7)

dio_stat — Получить информацию о файловом дескрипторе

Описание

array dio_stat ( resource $fd )

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.0.5, PHP 7)

dio_tcsetattr — Устанавливает атрибуты терминала и скорость передачи данных для последовательного порта

Описание

bool dio_tcsetattr ( resource $fd , array $options )

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.0.5, PHP 7)

dio_truncate — Обрезает файл до заданного количества байт

Описание

bool dio_truncate ( resource $fd , int $offset )

dio_truncate() обрезает файл до offset байт.

Если файл был больше указанного значения, то лишние данные потеряются. Если файл был короче, то он либо останется неизменным, либо увеличится - данное поведение не определено. Если файл увеличится, то недостающие байты будут заполнены нулями.

Список параметров

fd

Файловый дескриптор, полученный из dio_open().

offset

Смещение в байтах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Для Windows-платформ эта функция не реализована.


Записывает байты в файл, опционально обрезая до указанной длины

  • « dio_truncate
  • Каталоги »
  • PHP Manual
  • Функции прямого ввода/вывода
  • Записывает байты в файл, опционально обрезая до указанной длины

dio_write

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PHP 7)

dio_write — Записывает байты в файл, опционально обрезая до указанной длины

Описание

int dio_write ( resource $fd , string $data [, int $len = 0 ] )

dio_write() записывает максимум len байт из data в файл fd.

Список параметров

fd

Файловый дескриптор, полученный из dio_open().

data

Записываемые данные.

len

Длина записываемых данных в байтах. Если не задано, то будут записаны все переданные данные.

Возвращаемые значения

Возвращает количество байт, записанных в fd.

Смотрите также

  • dio_read() - Прочитай байты из файлового дескриптора


Каталоги

  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Directory — Класс Directory
    • Directory::close — Закрывает дескриптор каталога
    • Directory::read — Получает элемент из дескриптора каталога
    • Directory::rewind — Перемещает дескриптор каталога в начало каталога
  • Функции для работы с каталогами
    • chdir — Изменяет каталог
    • chroot — Изменяет корневой каталог
    • closedir — Освобождает дескриптор каталога
    • dir — Возвращает экземпляр класса Directory
    • getcwd — Получает имя текущего рабочего каталога
    • opendir — Открывает дескриптор каталога
    • readdir — Получает элемент каталога по его дескриптору
    • rewinddir — Сбросить дескриптор каталога
    • scandir — Получает список файлов и каталогов, расположенных по указанному пути


Предопределенные константы

DIRECTORY_SEPARATOR (string)
PATH_SEPARATOR (string)
Точка с запятой в Windows, двоеточие в других системах.
SCANDIR_SORT_ASCENDING (integer)
Доступна начиная с версии PHP 5.4.0.
SCANDIR_SORT_DESCENDING (integer)
Доступна начиная с версии PHP 5.4.0.
SCANDIR_SORT_NONE (integer)
Доступна начиная с версии PHP 5.4.0.


Класс Directory

(PHP 4, PHP 5, PHP 7)

Введение

Экземпляры класса Directory создаются при помощи вызова функции dir(), а не при помощи оператора new.

Обзор классов

Directory {
/* Свойства */
public string $path ;
public resource $handle ;
/* Методы */
public void close ([ resource $dir_handle ] )
public string read ([ resource $dir_handle ] )
public void rewind ([ resource $dir_handle ] )
}

Свойства

path

Каталог, который был открыт.

handle

Может быть использовано с другими функциями каталогов, такими, как readdir(), rewinddir() и closedir().

Содержание

  • Directory::close — Закрывает дескриптор каталога
  • Directory::read — Получает элемент из дескриптора каталога
  • Directory::rewind — Перемещает дескриптор каталога в начало каталога


Закрывает дескриптор каталога

  • « Directory
  • Directory::read »
  • PHP Manual
  • Directory
  • Закрывает дескриптор каталога

Directory::close

(PHP 4, PHP 5, PHP 7)

Directory::close — Закрывает дескриптор каталога

Описание

public void Directory::close ([ resource $dir_handle ] )

Аналогично функции closedir(), но параметр dir_handle по-умолчанию $this.


Получает элемент из дескриптора каталога

  • « Directory::close
  • Directory::rewind »
  • PHP Manual
  • Directory
  • Получает элемент из дескриптора каталога

Directory::read

(PHP 4, PHP 5, PHP 7)

Directory::read — Получает элемент из дескриптора каталога

Описание

public string Directory::read ([ resource $dir_handle ] )

Аналогично функции readdir(), но параметр dir_handle по-умолчанию $this.


Перемещает дескриптор каталога в начало каталога

  • « Directory::read
  • Функции для работы с каталогами »
  • PHP Manual
  • Directory
  • Перемещает дескриптор каталога в начало каталога

Directory::rewind

(PHP 4, PHP 5, PHP 7)

Directory::rewind — Перемещает дескриптор каталога в начало каталога

Описание

public void Directory::rewind ([ resource $dir_handle ] )

Аналогично функции rewinddir(), но параметр dir_handle по-умолчанию $this.


Функции для работы с каталогами

Смотрите также

За описанием сопутствующих функций, таких как dirname(), is_dir(), mkdir() и rmdir(), обратитесь к главе Файловая система.

Содержание

  • chdir — Изменяет каталог
  • chroot — Изменяет корневой каталог
  • closedir — Освобождает дескриптор каталога
  • dir — Возвращает экземпляр класса Directory
  • getcwd — Получает имя текущего рабочего каталога
  • opendir — Открывает дескриптор каталога
  • readdir — Получает элемент каталога по его дескриптору
  • rewinddir — Сбросить дескриптор каталога
  • scandir — Получает список файлов и каталогов, расположенных по указанному пути


Изменяет каталог

  • « Функции для работы с каталогами
  • chroot »
  • PHP Manual
  • Функции для работы с каталогами
  • Изменяет каталог

chdir

(PHP 4, PHP 5, PHP 7)

chdir — Изменяет каталог

Описание

bool chdir ( string $directory )

Изменяет текущий каталог PHP на указанный в качестве параметра directory.

Список параметров

directory

Новый текущий каталог

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

В случае ошибки создает исключение уровня E_WARNING.

Примеры

Пример #1 Пример использования chdir()

<?php

// текущий каталог
echo getcwd() . "\n";

chdir('public_html');

// текущий каталог
echo getcwd() . "\n";

?>

Результатом выполнения данного примера будет что-то подобное:

/home/vincent
/home/vincent/public_html

Примечания

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • getcwd() - Получает имя текущего рабочего каталога


Изменяет корневой каталог

  • « chdir
  • closedir »
  • PHP Manual
  • Функции для работы с каталогами
  • Изменяет корневой каталог

chroot

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

chroot — Изменяет корневой каталог

Описание

bool chroot ( string $directory )

Изменяет корневой каталог текущего процесса на переданный в качестве параметра directory и меняет текущий каталог на "/".

Данная функция доступна только на GNU и BSD системах, а также только при использовании CLI, CGI или Embed SAPI. Кроме того, данная функция требует суперпользовательских привилегий.

Список параметров

directory

Путь для смены корневой директории.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования chroot()

<?php
chroot("/path/to/your/chroot/");
echo getcwd();
?>

Результат выполнения данного примера:

/

Примечания

Замечание: Для Windows-платформ эта функция не реализована.


Освобождает дескриптор каталога

  • « chroot
  • dir »
  • PHP Manual
  • Функции для работы с каталогами
  • Освобождает дескриптор каталога

closedir

(PHP 4, PHP 5, PHP 7)

closedir — Освобождает дескриптор каталога

Описание

void closedir ([ resource $dir_handle ] )

Закрывает поток, связанный с каталогом и переданный в качестве параметра dir_handle. Перед использованием данной функции, поток должен быть открыт с помощью функции opendir().

Список параметров

dir_handle

Дескриптор каталога (resource) предварительно открытый с помощью opendir(). Если дескриптор каталога не указан, используется последний дескриптор, открытый функцией opendir().

Примеры

Пример #1 Пример использования closedir()

<?php
$dir = "/etc/php5/";

// Открываем известную директорию, читаем ее в переменную и закрываем
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        $directory = readdir($dh);
        closedir($dh);
    }
}
?>


Возвращает экземпляр класса Directory

  • « closedir
  • getcwd »
  • PHP Manual
  • Функции для работы с каталогами
  • Возвращает экземпляр класса Directory

dir

(PHP 4, PHP 5, PHP 7)

dir — Возвращает экземпляр класса Directory

Описание

Directory dir ( string $directory [, resource $context ] )

Псевдо-объектно-ориентированный механизм для чтения каталога. Переданный параметром directory каталог открывается.

Список параметров

directory

Каталог для открытия

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает экземпляр класса Directory, NULL при неверных параметрах, и FALSE в случае другой ошибки.

Примеры

Пример #1 Пример использования dir()

Пожалуйста, обратите внимание на способ, которым осуществляется проверка значения, возвращаемого Directory::read() в примере, приведенном ниже. В этом примере явно проводится проверка значения на идентичность (выражения идентичны, когда они равны и являются одного типа - за более подробной информацией обратитесь к главе Операторы сравнения) значению FALSE, поскольку в ином случае, любой элемент каталога, чье имя может быть выражено как FALSE, остановит цикл.

<?php
$d = dir("/etc/php5");
echo "Дескриптор: " . $d->handle . "\n";
echo "Путь: " . $d->path . "\n";
while (false !== ($entry = $d->read())) {
   echo $entry."\n";
}
$d->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Дескриптор: Resource id #2
Путь: /etc/php5
.
..
apache
cgi
cli

Примечания

Замечание:

Порядок, в котором метод "read" возвращает элементы каталога, зависит от операционной системы.


Получает имя текущего рабочего каталога

  • « dir
  • opendir »
  • PHP Manual
  • Функции для работы с каталогами
  • Получает имя текущего рабочего каталога

getcwd

(PHP 4, PHP 5, PHP 7)

getcwd — Получает имя текущего рабочего каталога

Описание

string getcwd ( void )

Возвращает имя текущего рабочего каталога.

Возвращаемые значения

Возвращает текущий рабочий каталог в случае успеха или FALSE в случае ошибки.

На некоторых вариантах Unix getcwd() вернет FALSE, если на каком-либо из родительских каталогов не установлен режим чтения или поиска, даже если он установлен на текущем каталоге. Больше информации о режимах доступа смотрите в документации функции chmod().

Примеры

Пример #1 Пример использования getcwd()

<?php

// текущий каталог
echo getcwd() . "\n";

chdir('cvs');

// текущий каталог
echo getcwd() . "\n";

?>

Результатом выполнения данного примера будет что-то подобное:

/home/didou
/home/didou/cvs

Смотрите также

  • chdir() - Изменяет каталог
  • chmod() - Изменяет режим доступа к файлу


Открывает дескриптор каталога

  • « getcwd
  • readdir »
  • PHP Manual
  • Функции для работы с каталогами
  • Открывает дескриптор каталога

opendir

(PHP 4, PHP 5, PHP 7)

opendir — Открывает дескриптор каталога

Описание

resource opendir ( string $path [, resource $context ] )

Открывает дескриптор каталога для последующего использования с функциями closedir(), readdir() и rewinddir().

Список параметров

path

Путь к открываемому каталогу

context

Для описания параметра context обратитесь к разделу "Потоки".

Возвращаемые значения

Возвращает дескриптор каталога (resource) в случае успеха или FALSE в случае ошибки.

Если path не существует или каталог, расположенный по указанному пути, не может быть открыт вследствие правовых ограничений или ошибок файловой системы, функция opendir() вернет значение FALSE и сгенерирует сообщение PHP об ошибке уровня E_WARNING. Вы можете запретить вывод сообщения об ошибке, предварив имя функции opendir() символом '@'.

Список изменений

Версия | Описание
5.0.0 | path теперь поддерживает обертку ftp://.
4.3.0 | Параметр path теперь может являться любым URL, поддерживающим передачу списка файлов, однако в PHP 4 поддерживается только обертка file://

Примеры

Пример #1 Пример использования функции opendir()

<?php
$dir = "/etc/php5/";

// Открыть известный каталог и начать считывать его содержимое
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            echo "файл: $file : тип: " . filetype($dir . $file) . "\n";
        }
        closedir($dh);
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

файл: . : тип: dir
файл: .. : тип: dir
файл: apache : тип: dir
файл: cgi : тип: dir
файл: cli : тип: dir

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • readdir() - Получает элемент каталога по его дескриптору
  • dir() - Возвращает экземпляр класса Directory


Получает элемент каталога по его дескриптору

  • « opendir
  • rewinddir »
  • PHP Manual
  • Функции для работы с каталогами
  • Получает элемент каталога по его дескриптору

readdir

(PHP 4, PHP 5, PHP 7)

readdir — Получает элемент каталога по его дескриптору

Описание

string readdir ([ resource $dir_handle ] )

Возвращает имя следующего по порядку элемента каталога. Элементы возвращаются в том порядке, в котором они хранятся в файловой системе.

Список параметров

dir_handle

Дескриптор каталога (resource), ранее открытый функцией opendir(). Если дескриптор каталога не указан, используется последний дескриптор открытый функцией opendir().

Возвращаемые значения

Возвращает имя элемента каталога в случае успеха или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Вывести список всех элементов каталога

Обратите внимание на способ проверки значения, возвращаемого функцией readdir() в приведенном ниже примере. В этом примере осуществляется явная проверка значения на идентичность (выражения идентичны, когда они равны и являются значениями одного типа - за более подробной информацией обратитесь к главе " Операторы сравнения") значению FALSE, поскольку в ином случае, любой элемент каталога, чье имя может быть преобразовано к FALSE, остановит цикл (например, элемент с именем "0").

<?php

if ($handle = opendir('/path/to/files')) {
    echo "Дескриптор каталога: $handle\n";
    echo "Записи:\n";

    /* Именно этот способ чтения элементов каталога является правильным. */
    while (false !== ($entry = readdir($handle))) {
        echo "$entry\n";
    }

    /* Это НЕВЕРНЫЙ способ обхода каталога. */
    while ($entry = readdir($handle)) {
        echo "$entry\n";
    }

    closedir($handle);
}
?>

Пример #2 Получить список элементов в текущем каталоге и отбросить элементы с именами . и ..

<?php
if ($handle = opendir('.')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            echo "$entry\n";
        }
    }
    closedir($handle);
}
?>

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • glob() - Находит файловые пути, совпадающие с шаблоном
  • opendir() - Открывает дескриптор каталога
  • scandir() - Получает список файлов и каталогов, расположенных по указанному пути


Сбросить дескриптор каталога

  • « readdir
  • scandir »
  • PHP Manual
  • Функции для работы с каталогами
  • Сбросить дескриптор каталога

rewinddir

(PHP 4, PHP 5, PHP 7)

rewinddir — Сбросить дескриптор каталога

Описание

void rewinddir ([ resource $dir_handle ] )

Сбрасывает поток каталога, переданный в параметре dir_handle таким образом, чтобы тот указывал на начало каталога.

Список параметров

dir_handle

Ресурс resource дескриптора каталога, ранее открытый с помощью функции opendir(). Если дескриптор каталога не указан, подразумевается последний дескриптор, который был открыт с помощью opendir().


Получает список файлов и каталогов, расположенных по указанному пути

  • « rewinddir
  • FileInfo »
  • PHP Manual
  • Функции для работы с каталогами
  • Получает список файлов и каталогов, расположенных по указанному пути

scandir

(PHP 5, PHP 7)

scandir — Получает список файлов и каталогов, расположенных по указанному пути

Описание

array scandir ( string $directory [, int $sorting_order = SCANDIR_SORT_ASCENDING [, resource $context ]] )

Возвращает array, содержащий имена файлов и каталогов, расположенных по пути, переданном в параметре directory.

Список параметров

directory

Сканируемый каталог.

sorting_order

По умолчанию, сортировка производится в алфавитном порядке по возрастанию. Если необязательный параметр sorting_order установлен в значение SCANDIR_SORT_DESCENDING, сортировка производится в алфавитном порядке по убыванию. Если же он установлен в значение SCANDIR_SORT_NONE, то сортировка не производится.

context

За описанием параметра context обратитесь к разделу "Потоки" данного руководства.

Возвращаемые значения

Возвращает array имен файлов в случае успеха или FALSE в случае ошибки. Если directory не является каталогом, возвращается FALSE и генерируется сообщение об ошибке уровня E_WARNING.

Список изменений

Версия | Описание
5.4.0 | Были добавлены sorting_order константы. Любое ненулевое значение задавало сортировку по убыванию в предыдущих версиях. Поэтому для всех версий PHP нужно использовать 0 для сортировки по возрастанию и 1 для сортировки по убыванию. Опции для режима SCANDIR_SORT_NONE не существовало до PHP 5.4.0.

Примеры

Пример #1 Простой пример использования функции scandir()

<?php
$dir    = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);

print_r($files1);
print_r($files2);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Пример #2 Альтернативный вариант функции scandir() для PHP 4

<?php
$dir = "/tmp";
$dh  = opendir($dir);
while (false !== ($filename = readdir($dh))) {
    $files[] = $filename;
}

sort($files);

print_r($files);

rsort($files);

print_r($files);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => .
    [1] => ..
    [2] => bar.php
    [3] => foo.txt
    [4] => somedir
)
Array
(
    [0] => somedir
    [1] => foo.txt
    [2] => bar.php
    [3] => ..
    [4] => .
)

Примечания

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • opendir() - Открывает дескриптор каталога
  • readdir() - Получает элемент каталога по его дескриптору
  • glob() - Находит файловые пути, совпадающие с шаблоном
  • is_dir() - Определяет, является ли имя файла директорией
  • sort() - Сортирует массив


Информация о файле

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции расширения Fileinfo
    • finfo_buffer — Возвращает информацию о строке буфера
    • finfo_close — Закрывает ресурс Fileinfo
    • finfo_file — Возвращает информацию о файле
    • finfo_open — Создает ресурс Fileinfo
    • finfo_set_flags — Set libmagic configuration options
    • mime_content_type — Определяет MIME-тип содержимого файла
  • finfo — Класс finfo
    • finfo::buffer — Псевдоним finfo_buffer()
    • finfo::__construct — Псевдоним finfo_open
    • finfo::file — Псевдоним finfo_file()
    • finfo::set_flags — Псевдоним finfo_set_flags()


Введение

Функции в этом модуле пытаются определить тип содержимого и кодировку файла, основываясь на некоторых магических последовательностях байт на определенных позициях в файле. Пока данный подход не является абсолютно надежным, однако эвристика неплохо справляется со своей работой.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

До версии PHP 5.3.0, для работы этого расширения требовалась библиотека magic_open.


Установка

Этот модуль включен по умолчанию начиная с PHP 5.3.0. До этого fileinfo являлся PECL модулем, но работа над ним больше не ведется. Тем не менее, версии до 5.3+ могут использовать » данный PECL модуль.

Windows-пользователи должны подключить идущий в комплекте поставки php_fileinfo.dll DLL файл в php.ini для включения данного модуля.

Библиотека libmagic поставляется в комплекте с PHP, но может содержать специфичные для PHP изменения, которые можно добавлять с помощью патча libmagic.patch. Этот патч поддерживается в актуальном состоянии, его можно найти там же, где находятся файлы расширений fileinfo.

История обновлений библиотеки libmagic, идущей в комплекте
PHP Версия | Обновление libmagic Версия | Примечания
5.3.2 | 5.03 |
5.3.0 | 5.02 |


Типы ресурсов

Расширение Fileinfo использует один ресурс: "магический" указатель базы данных, возвращаемый функцией finfo_open().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

FILEINFO_NONE (integer)
Нет специальной обработки.
FILEINFO_SYMLINK (integer)
Следовать по символическим ссылкам.
FILEINFO_MIME_TYPE (integer)
Возвращать mime-тип. Доступно начиная с PHP 5.3.0.
FILEINFO_MIME_ENCODING (integer)
Возвращать mime-кодировку файла. Доступно начиная с PHP 5.3.0.
FILEINFO_MIME (integer)
Возвращать mime-тип и mime-кодировку по стандарту RFC 2045.
FILEINFO_COMPRESS (integer)
Распаковывать запакованные файлы. Отключено начиная с PHP 5.3.0 по соображениям безопасности.
FILEINFO_DEVICES (integer)
Смотреть содержимое блочных и символьных устройств.
FILEINFO_CONTINUE (integer)
Возвращать все совпадения, а не только первое.
FILEINFO_PRESERVE_ATIME (integer)
По возможности, сохранять исходное время доступа.
FILEINFO_RAW (integer)
Не переводить непечатные символы в \ooo восьмеричное представление.


Функции расширения Fileinfo

Содержание

  • finfo_buffer — Возвращает информацию о строке буфера
  • finfo_close — Закрывает ресурс Fileinfo
  • finfo_file — Возвращает информацию о файле
  • finfo_open — Создает ресурс Fileinfo
  • finfo_set_flags — Set libmagic configuration options
  • mime_content_type — Определяет MIME-тип содержимого файла


Возвращает информацию о строке буфера

  • « Функции расширения Fileinfo
  • finfo_close »
  • PHP Manual
  • Функции расширения Fileinfo
  • Возвращает информацию о строке буфера

finfo_buffer

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0)

finfo_buffer -- finfo::buffer — Возвращает информацию о строке буфера

Описание

Процедурный стиль

string finfo_buffer ( resource $finfo , string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Объектно-ориентированный стиль

public string finfo::buffer ( string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Эта функция используется для получения информации о бинарных данных в строке.

Список параметров

finfo

Ресурс Fileinfo, полученный функцией finfo_open().

string

Содержимое проверяемого файла.

options

Одна или несколько объединренных через бинарное ИЛИ констант Fileinfo.

context

Возвращаемые значения

Возвращает текстовое описание для аргумента string или FALSE, в случае ошибки.

Примеры

Пример #1 Пример finfo_buffer()

<?php
$finfo = new finfo(FILEINFO_MIME);
echo $finfo->buffer($_POST["script"]) . "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

application/x-sh; charset=us-ascii

Смотрите также

  • finfo_file() - Псевдоним finfo_file()


Закрывает ресурс Fileinfo

  • « finfo_buffer
  • finfo_file »
  • PHP Manual
  • Функции расширения Fileinfo
  • Закрывает ресурс Fileinfo

finfo_close

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_close — Закрывает ресурс Fileinfo

Описание

bool finfo_close ( resource $finfo )

Эта функция закрывает ресурс, который был открыт функциейfinfo_open().

Список параметров

finfo

Ресурс Fileinfo, открытый функцией finfo_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает информацию о файле

  • « finfo_close
  • finfo_open »
  • PHP Manual
  • Функции расширения Fileinfo
  • Возвращает информацию о файле

finfo_file

finfo::file

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_file -- finfo::file — Возвращает информацию о файле

Описание

Процедурный стиль

string finfo_file ( resource $finfo , string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Объектно-ориентированный стиль

public string finfo::file ( string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Эта функция используется для получения информации о файле.

Список параметров

finfo

Ресурс Fileinfo, полученный функцией finfo_open().

file_name

Название проверяемого файла.

options

Одна из нескольких констант Fileinfo.

context

Для описания contexts, смотрите Функции для работы с потоками.

Возвращаемые значения

Возвращает текстовое описание содержимого файла file_name, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования finfo_file()

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // возвращает mime-тип
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>

Результатом выполнения данного примера будет что-то подобное:

text/html
image/gif
application/vnd.ms-excel

Смотрите также

  • finfo_buffer() - Псевдоним finfo_buffer()


Создает ресурс Fileinfo

  • « finfo_file
  • finfo_set_flags »
  • PHP Manual
  • Функции расширения Fileinfo
  • Создает ресурс Fileinfo

finfo_open

finfo::__construct

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_open -- finfo::__construct — Создает ресурс Fileinfo

Описание

Процедурный стиль

resource finfo_open ([ int $options = FILEINFO_NONE [, string $magic_file = NULL ]] )

Объектно-ориентированный стиль (constructor):

public finfo::__construct ([ int $options = FILEINFO_NONE [, string $magic_file = NULL ]] )

Данная функция открывает магическую базу данных и возвращает ресурс на нее.

Список параметров

options

Одна из нескольких Fileinfo констант.

magic_file

Имя файла магической базы данных, обычно что-то наподобие этого: /path/to/magic.mime. Если не указан полный путь, будет использована переменная окружения MAGIC. Если переменная окружения не указана, то будет использоваться встроенная в PHP магическая база данных.

Передача NULL или пустой строки эквивалентно значению по умолчанию.

Возвращаемые значения

(Только процедурный стиль) Возвращает ресурс магической базы данных в случае успеха или или FALSE в случае возникновения ошибки.

Примечания

Внимание

Начиная с PHP >= 5.3.11 и >= 5.4.1 формат магической базы данных изменен. Вследствие этого внутренняя база данных mime была также обновлена. Особенно это влияет на код, где читается внешняя база magic. Чтение magic-файлов старых форматов работать не будет. Также изменены некоторые текстовые представления mime-типов, например, для PHP будет возвращено "PHP script, ASCII text" вместо "PHP script text".

Замечание:

Обычно использование встроенной магической базы данных (при неустановленных magic_file и MAGIC) лучший выбор, если вам не нужна определенная версия магической базы данных.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // возвращает mime-тип аля mimetype расширения

/* получить mime-type для указанного файла */
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);

?>

Пример #2 Процедурный стиль

<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // возвращает mime-тип аля mimetype расширения

if (!$finfo) {
    echo "Opening fileinfo database failed";
    exit();
}

/* получить mime-type для указанного файла */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);

/* закрыть соединение */
finfo_close($finfo);
?>

Результат выполнения данного примера:

text/plain; charset=us-ascii

Смотрите также

  • finfo_close() - Закрывает ресурс Fileinfo


Set libmagic configuration options

  • « finfo_open
  • mime_content_type »
  • PHP Manual
  • Функции расширения Fileinfo
  • Set libmagic configuration options

finfo_set_flags

finfo::set_flags

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo_set_flags -- finfo::set_flags — Set libmagic configuration options

Описание

Процедурный стиль

bool finfo_set_flags ( resource $finfo , int $options )

Объектно-ориентированный стиль

public bool finfo::set_flags ( int $options )

Эта функция устанавливает различные параметры Fileinfo. Опции также могут быть установлены напрямую в finfo_open() или других функциях Fileinfo.

Список параметров

finfo

Ресурс Fileinfo, полученный функцией finfo_open().

options

Одна или несколько объединренных через бинарное ИЛИ констант Fileinfo.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Определяет MIME-тип содержимого файла

  • « finfo_set_flags
  • finfo »
  • PHP Manual
  • Функции расширения Fileinfo
  • Определяет MIME-тип содержимого файла

mime_content_type

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mime_content_type — Определяет MIME-тип содержимого файла

Описание

string mime_content_type ( string $filename )

Возвращает MIME-тип содержимого файла, используя для определения информацию из файла magic.mime.

Список параметров

filename

Путь к проверяемому файлу.

Возвращаемые значения

Возвращает тип содержимого в формате MIME, например text/plain или application/octet-stream.

Примеры

Пример #1 Пример mime_content_type()

<?php
echo mime_content_type('php.gif') . "\n";
echo mime_content_type('test.php');
?>

Результат выполнения данного примера:

image/gif
text/plain

Смотрите также

  • finfo_file() - Псевдоним finfo_file()
  • finfo_buffer() - Псевдоним finfo_buffer()


Класс finfo

(PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0)

Введение

Этот класс предоставляет объектно ориентированный интерфейс к функциям fileinfo.

Обзор классов

finfo {
public __construct ([ int $options = FILEINFO_NONE [, string $magic_file = NULL ]] )
public string buffer ( string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )
public string file ( string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )
public bool set_flags ( int $options )
}

Содержание

  • finfo::buffer — Псевдоним finfo_buffer()
  • finfo::__construct — Псевдоним finfo_open
  • finfo::file — Псевдоним finfo_file()
  • finfo::set_flags — Псевдоним finfo_set_flags()


Псевдоним finfo_buffer()

  • « finfo
  • finfo::__construct »
  • PHP Manual
  • finfo
  • Псевдоним finfo_buffer()

finfo::buffer

(PHP 5 >= 5.3.0, PHP 7, PECL fileinfo >= 0.1.0)

finfo::buffer — Псевдоним finfo_buffer()

Описание

public string finfo::buffer ( string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Эта функция является псевдонимом: finfo_buffer()


Псевдоним finfo_open

  • « finfo::buffer
  • finfo::file »
  • PHP Manual
  • finfo
  • Псевдоним finfo_open

finfo::__construct

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo::__construct — Псевдоним finfo_open()

Описание

public finfo::__construct ([ int $options = FILEINFO_NONE [, string $magic_file = NULL ]] )

Эта функция является псевдонимом: finfo_open()


Псевдоним finfo_file()

  • « finfo::__construct
  • finfo::set_flags »
  • PHP Manual
  • finfo
  • Псевдоним finfo_file()

finfo::file

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo::file — Псевдоним finfo_file()

Описание

public string finfo::file ( string $file_name = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] )

Эта функция является псевдонимом: finfo_file()


Псевдоним finfo_set_flags()

  • « finfo::file
  • Функции для работы с файловой системой »
  • PHP Manual
  • finfo
  • Псевдоним finfo_set_flags()

finfo::set_flags

(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)

finfo::set_flags — Псевдоним finfo_set_flags()

Описание

public bool finfo::set_flags ( int $options )

Эта функция является псевдонимом: finfo_set_flags()


Функции для работы с файловой системой

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Файловая система
    • basename — Возвращает последний компонент имени из указанного пути
    • chgrp — Изменяет группу владельцев файла
    • chmod — Изменяет режим доступа к файлу
    • chown — Изменяет владельца файла
    • clearstatcache — Очищает кэш состояния файлов
    • copy — Копирует файл
    • delete — См.описание функции unlink или unset
    • dirname — Возвращает имя родительского каталога из указанного пути
    • disk_free_space — Возвращает размер доступного пространства в каталоге или в файловой системе
    • disk_total_space — Возвращает общий размер каталога или раздела файловой системы
    • diskfreespace — Псевдоним disk_free_space
    • fclose — Закрывает открытый дескриптор файла
    • feof — Проверяет, достигнут ли конец файла
    • fflush — Сбрасывает буфер вывода в файл
    • fgetc — Считывает символ из файла
    • fgetcsv — Читает строку из файла и производит разбор данных CSV
    • fgets — Читает строку из файла
    • fgetss — Прочитать строку из файла и отбросить HTML-теги
    • file_exists — Проверяет наличие указанного файла или каталога
    • file_get_contents — Читает содержимое файла в строку
    • file_put_contents — Пишет строку в файл
    • file — Читает содержимое файла и помещает его в массив
    • fileatime — Возвращает время последнего доступа к файлу
    • filectime — Возвращает время изменения индексного дескриптора файла
    • filegroup — Получает идентификатор группы файла
    • fileinode — Возвращает индексный дескриптор файла
    • filemtime — Возвращает время последнего изменения файла
    • fileowner — Возвращает идентификатор владельца файла
    • fileperms — Возвращает информацию о правах на файл
    • filesize — Возвращает размер файла
    • filetype — Возвращает тип файла
    • flock — Портируемая консультативная блокировка файлов
    • fnmatch — Проверяет совпадение имени файла с шаблоном
    • fopen — Открывает файл или URL
    • fpassthru — Выводит все оставшиеся данные из файлового указателя
    • fputcsv — Форматирует строку в виде CSV и записывает её в файловый указатель
    • fputs — Псевдоним fwrite
    • fread — Бинарно-безопасное чтение файла
    • fscanf — Обрабатывает данные из файла в соответствии с форматом
    • fseek — Устанавливает смещение в файловом указателе
    • fstat — Получает информацию о файле используя открытый файловый указатель
    • ftell — Сообщает текущую позицию чтения/записи файла
    • ftruncate — Урезает файл до указанной длинны
    • fwrite — Бинарно-безопасная запись в файл
    • glob — Находит файловые пути, совпадающие с шаблоном
    • is_dir — Определяет, является ли имя файла директорией
    • is_executable — Определяет, является ли файл исполняемым
    • is_file — Определяет, является ли файл обычным файлом
    • is_link — Определяет, является ли файл символической ссылкой
    • is_readable — Определяет существование файла и доступен ли он для чтения
    • is_uploaded_file — Определяет, был ли файл загружен при помощи HTTP POST
    • is_writable — Определяет, доступен ли файл для записи
    • is_writeable — Псевдоним is_writable
    • lchgrp — Изменяет группу, которой принадлежит символическая ссылка
    • lchown — Изменяет владельца символической ссылки
    • link — Создаёт жёсткую ссылку
    • linkinfo — Возвращает информацию о ссылке
    • lstat — Возвращает информацию о файле или символической ссылке
    • mkdir — Создаёт директорию
    • move_uploaded_file — Перемещает загруженный файл в новое место
    • parse_ini_file — Обрабатывает конфигурационный файл
    • parse_ini_string — Разбирает строку конфигурации
    • pathinfo — Возвращает информацию о пути к файлу
    • pclose — Закрывает файловый указатель
    • popen — Открывает файловый указатель процесса
    • readfile — Выводит файл
    • readlink — Возвращает файл, на который указывает символическая ссылка
    • realpath_cache_get — Получает записи из кэша реального пути
    • realpath_cache_size — Получает размер кэша реального пути
    • 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 Manual
  • Функции для работы с файловой системой
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Типы ресурсов


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Директивы конфигурации файловой системы и потоков
Имя | По умолчанию | Меняемо | Список изменений
allow_url_fopen | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 4.3.4. Доступна с PHP 4.0.4.
allow_url_include | "0" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.2.0.
user_agent | NULL | PHP_INI_ALL | Доступна начиная с версии PHP 4.3.0.
default_socket_timeout | "60" | PHP_INI_ALL | Доступна начиная с версии PHP 4.3.0.
from | "" | PHP_INI_ALL |
auto_detect_line_endings | "0" | PHP_INI_ALL | Доступна начиная с версии PHP 4.3.0.

Краткое разъяснение конфигурационных директив.

allow_url_fopen boolean

Данная директива включает поддержку оберток URL (URL wrappers), которые позволяют работать с объектами URL как с обычными файлами. Обертки, доступные по умолчанию, служат для работы с удаленными файлами с использованием ftp или http протокола. Некоторые расширения, например, zlib, могут регистрировать собственные обертки.

Замечание:

Эта директива была представлена сразу же после выхода PHP версии 4.0.3. В этой и в последующих версиях эта функциональность может быть отключена только во время компиляции PHP с помощью ключа --disable-url-fopen-wrapper.

Внимание

В версиях PHP для платформ Windows, более ранних, чем 4.3.0, поддержка работы с удаленными файлами отсутствует для следующих функций: include, include_once, require, require_once и функции imagecreatefromXXX расширения GD и функции для работы с изображениями Функции.

allow_url_include boolean

Эта опция позволяет использование оберток fopen, которые поддерживают работу с URL, в функциях include, include_once, require, require_once.

Замечание:

Эта опция требует включения опции allow_url_fopen.

user_agent string

Устанавливает отсылаемую PHP строку "User-Agent".

default_socket_timeout integer

Значение таймаута по умолчанию (в секундах) для потоков, использующих сокеты.

Замечание: Данная директива стала доступна с версии PHP 4.3.0

from string

Адрес email, используемый в соединениях FTP без авторизации, а также в качестве значения заголовка From в HTTP соединениях при использовании ftp и http оберток, соответственно.

auto_detect_line_endings boolean

Когда данная директива включена, PHP проверяет данные, получаемые функциями fgets() и file() с тем, чтобы определить способ завершения строк (Unix, MS-Dos или Macintosh).

Данная директива позволяет PHP взаимодействовать с системами Macintosh, однако, по умолчанию эта директива выключена, поскольку при ее использовании возникает (несущественная) потребность в дополнительных ресурсах для определения символа окончания первой строки, а также потому, что программисты, использующие в системах Unix символы возврата каретки в качестве разделителей, столкнутся с обратно-несовместимым поведением PHP.

Замечание: Эта директива стала доступна с версии PHP 4.3.0


Типы ресурсов

Файловая система использует потоки (streams) в качестве собственного типа ресурсов. Документация по потокам доступна в своей собственной главе: "Потоки".


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SEEK_SET (integer)
SEEK_CUR (integer)
SEEK_END (integer)
LOCK_SH (integer)
LOCK_EX (integer)
LOCK_UN (integer)
LOCK_NB (integer)
GLOB_BRACE (integer)
GLOB_ONLYDIR (integer)
GLOB_MARK (integer)
GLOB_NOSORT (integer)
GLOB_NOCHECK (integer)
GLOB_NOESCAPE (integer)
GLOB_AVAILABLE_FLAGS (integer)
PATHINFO_DIRNAME (integer)
PATHINFO_BASENAME (integer)
PATHINFO_EXTENSION (integer)
PATHINFO_FILENAME (integer)
Начиная с версии PHP 5.2.0.
FILE_USE_INCLUDE_PATH (integer)
Ищет filename в include_path (начиная с PHP 5).
FILE_NO_DEFAULT_CONTEXT (integer)
FILE_APPEND (integer)
Добавляет данные к существующему файлу.
FILE_IGNORE_NEW_LINES (integer)
Вырезаются концы строк (EOL) (начиная с PHP 5).
FILE_SKIP_EMPTY_LINES (integer)
Пропускаются пустые строки (начиная с PHP 5).
FILE_BINARY (integer)

Бинарный режим (начиная с версии PHP 5.2.7).

Замечание:

Данная константа ни на что не влияет и доступна только для последующей совместимости (forward compatibility).

FILE_TEXT (integer)

Текстовый режим (начиная с версии PHP 5.2.7).

Замечание:

Данная константа ни на что не влияет и доступна только для последующей совместимости (forward compatibility).

INI_SCANNER_NORMAL (integer)
Обычный режим сканирования INI (начиная с версии PHP 5.3).
INI_SCANNER_RAW (integer)
Режим необработанного(raw) сканирования INI (начиная с версии PHP 5.3).
INI_SCANNER_TYPED (integer)
Режим типизированного сканирования INI (начиная с версии PHP 5.6.1).
FNM_NOESCAPE (integer)
Отключает экранирование обратных слешей.
FNM_PATHNAME (integer)
Слеши в строках совпадают только со слешами в указанном шаблоне.
FNM_PERIOD (integer)
Ведущая точка в строке должна точно совпадать с точкой в указанном шаблоне.
FNM_CASEFOLD (integer)
Совпадение без учета регистра. Часть расширения GNU.


Файловая система

Смотрите также

Описание родственных функций вы сможете найти в разделах Каталоги и Выполнение программ.

За списком оберток URL для работы с удаленными файлами и пояснениями обращайтесь к главе Поддерживаемые протоколы и обработчики (wrappers).

Содержание

  • basename — Возвращает последний компонент имени из указанного пути
  • chgrp — Изменяет группу владельцев файла
  • chmod — Изменяет режим доступа к файлу
  • chown — Изменяет владельца файла
  • clearstatcache — Очищает кэш состояния файлов
  • copy — Копирует файл
  • delete — См.описание функции unlink или unset
  • dirname — Возвращает имя родительского каталога из указанного пути
  • disk_free_space — Возвращает размер доступного пространства в каталоге или в файловой системе
  • disk_total_space — Возвращает общий размер каталога или раздела файловой системы
  • diskfreespace — Псевдоним disk_free_space
  • fclose — Закрывает открытый дескриптор файла
  • feof — Проверяет, достигнут ли конец файла
  • fflush — Сбрасывает буфер вывода в файл
  • fgetc — Считывает символ из файла
  • fgetcsv — Читает строку из файла и производит разбор данных CSV
  • fgets — Читает строку из файла
  • fgetss — Прочитать строку из файла и отбросить HTML-теги
  • file_exists — Проверяет наличие указанного файла или каталога
  • file_get_contents — Читает содержимое файла в строку
  • file_put_contents — Пишет строку в файл
  • file — Читает содержимое файла и помещает его в массив
  • fileatime — Возвращает время последнего доступа к файлу
  • filectime — Возвращает время изменения индексного дескриптора файла
  • filegroup — Получает идентификатор группы файла
  • fileinode — Возвращает индексный дескриптор файла
  • filemtime — Возвращает время последнего изменения файла
  • fileowner — Возвращает идентификатор владельца файла
  • fileperms — Возвращает информацию о правах на файл
  • filesize — Возвращает размер файла
  • filetype — Возвращает тип файла
  • flock — Портируемая консультативная блокировка файлов
  • fnmatch — Проверяет совпадение имени файла с шаблоном
  • fopen — Открывает файл или URL
  • fpassthru — Выводит все оставшиеся данные из файлового указателя
  • fputcsv — Форматирует строку в виде CSV и записывает её в файловый указатель
  • fputs — Псевдоним fwrite
  • fread — Бинарно-безопасное чтение файла
  • fscanf — Обрабатывает данные из файла в соответствии с форматом
  • fseek — Устанавливает смещение в файловом указателе
  • fstat — Получает информацию о файле используя открытый файловый указатель
  • ftell — Сообщает текущую позицию чтения/записи файла
  • ftruncate — Урезает файл до указанной длинны
  • fwrite — Бинарно-безопасная запись в файл
  • glob — Находит файловые пути, совпадающие с шаблоном
  • is_dir — Определяет, является ли имя файла директорией
  • is_executable — Определяет, является ли файл исполняемым
  • is_file — Определяет, является ли файл обычным файлом
  • is_link — Определяет, является ли файл символической ссылкой
  • is_readable — Определяет существование файла и доступен ли он для чтения
  • is_uploaded_file — Определяет, был ли файл загружен при помощи HTTP POST
  • is_writable — Определяет, доступен ли файл для записи
  • is_writeable — Псевдоним is_writable
  • lchgrp — Изменяет группу, которой принадлежит символическая ссылка
  • lchown — Изменяет владельца символической ссылки
  • link — Создаёт жёсткую ссылку
  • linkinfo — Возвращает информацию о ссылке
  • lstat — Возвращает информацию о файле или символической ссылке
  • mkdir — Создаёт директорию
  • move_uploaded_file — Перемещает загруженный файл в новое место
  • parse_ini_file — Обрабатывает конфигурационный файл
  • parse_ini_string — Разбирает строку конфигурации
  • pathinfo — Возвращает информацию о пути к файлу
  • pclose — Закрывает файловый указатель
  • popen — Открывает файловый указатель процесса
  • readfile — Выводит файл
  • readlink — Возвращает файл, на который указывает символическая ссылка
  • realpath_cache_get — Получает записи из кэша реального пути
  • realpath_cache_size — Получает размер кэша реального пути
  • realpath — Возвращает канонизированный абсолютный путь к файлу
  • rename — Переименовывает файл или директорию
  • rewind — Сбрасывает курсор у файлового указателя
  • rmdir — Удаляет директорию
  • set_file_buffer — Псевдоним stream_set_write_buffer
  • stat — Возвращает информацию о файле
  • symlink — Создаёт символическую ссылку
  • tempnam — Создаёт файл с уникальным именем
  • tmpfile — Создаёт временный файл
  • touch — Устанавливает время доступа и модификации файла
  • umask — Изменяет текущую umask
  • unlink — Удаляет файл


Возвращает последний компонент имени из указанного пути

  • « Файловая система
  • chgrp »
  • PHP Manual
  • Файловая система
  • Возвращает последний компонент имени из указанного пути

basename

(PHP 4, PHP 5, PHP 7)

basename — Возвращает последний компонент имени из указанного пути

Описание

string basename ( string $path [, string $suffix ] )

При передаче строки с путем к файлу или каталогу, данная функция вернет последний компонент имени из данного пути.

Замечание:

basename() наивно оперирует исключительно исходной строкой и не учитывает реальную файловую систему или компоненты пути типа "..".

Предостережение

basename() учитывает настройки локали, поэтому для корректной обработки пути с многобайтными символами должна быть установлена соответствующая локаль с помощью функции setlocale().

Список параметров

path

Путь.

На платформах Windows в качестве разделителей имен директорий используются оба слеша (прямой / и обратный \). В других операционных системах разделителем служит прямой слеш (/).

suffix

Если компонент имени заканчивается на suffix, то он также будет отброшен.

Возвращаемые значения

Возвращает базовое имя указанного пути path.

Примеры

Пример #1 Пример использования функции basename()

<?php
echo "1) ".basename("/etc/sudoers.d", ".d").PHP_EOL;
echo "2) ".basename("/etc/sudoers.d").PHP_EOL;
echo "3) ".basename("/etc/passwd").PHP_EOL;
echo "4) ".basename("/etc/").PHP_EOL;
echo "5) ".basename(".").PHP_EOL;
echo "6) ".basename("/");
?>

Результат выполнения данного примера:

1) sudoers
2) sudoers.d
3) passwd
4) etc
5) .
6)

Смотрите также

  • dirname() - Возвращает имя родительского каталога из указанного пути
  • pathinfo() - Возвращает информацию о пути к файлу


Изменяет группу владельцев файла

  • « basename
  • chmod »
  • PHP Manual
  • Файловая система
  • Изменяет группу владельцев файла

chgrp

(PHP 4, PHP 5, PHP 7)

chgrp — Изменяет группу владельцев файла

Описание

bool chgrp ( string $filename , mixed $group )

Осуществляет попытку смены группы файла filename на группу group.

Только суперпользователь может произвольно менять группу файла; остальные пользователи могут менять группу файла только на те группы, членами которых они являются.

Список параметров

filename

Путь к файлу.

group

Название или номер группы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Изменение группы файла

<?php
$filename = 'shared_file.txt';
$format = "%s's Group ID @ %s: %d\n";
printf($format, $filename, date('r'), filegroup($filename));
chgrp($filename, 8);
clearstatcache(); // сбрасываем кэш filegroup()
printf($format, $filename, date('r'), filegroup($filename));
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • chown() - Изменяет владельца файла
  • chmod() - Изменяет режим доступа к файлу


Изменяет режим доступа к файлу

  • « chgrp
  • chown »
  • PHP Manual
  • Файловая система
  • Изменяет режим доступа к файлу

chmod

(PHP 4, PHP 5, PHP 7)

chmod — Изменяет режим доступа к файлу

Описание

bool chmod ( string $filename , int $mode )

Осуществляет попытку изменения режима доступа указанного файла на режим, переданный в параметре mode.

Список параметров

filename

Путь к файлу.

mode

Обратите внимание, что значение параметра mode не переводится автоматически в восьмеричную систему счисления, поэтому, чтобы удостовериться в том, что режим был установлен верно, предваряйте нулем (0) значение передаваемое в параметре mode. Строки, такие как "g+w", не будут работать должным образом.

<?php
chmod("/somedir/somefile", 755);   // десятичное, скорее всего, указано неверно
chmod("/somedir/somefile", "u+rwx,go+rx"); // строка, неверный способ
chmod("/somedir/somefile", 0755);  // восьмеричное, верный способ
?>

Значение параметра mode состоит из трех восьмеричных чисел, определяющих уровень доступа для владельца файла, для группы, в которую входит владелец, и для других пользователей, соответственно. Число, определяющее уровень пользователя, может быть вычислено путем суммирования значений, определяющих права: 1 - доступ на выполнение, 2 - доступ на запись, 4 - доступ на чтение. Сложите эти числа для указания нужного права доступа. Более подробно о системе прав в системах Unix вы можете узнать с помощью команд 'man 1 chmod' и 'man 2 chmod'.

<?php
// Доступ на запись и чтение для владельца, нет доступа для других
chmod("/somedir/somefile", 0600);

// Доступ на запись и чтение для владельца, доступ на чтение для других
chmod("/somedir/somefile", 0644);

// Полный доступ для владельца, доступ на чтение и выполнение для других
chmod("/somedir/somefile", 0755);

// Полный доступ для владельца, доступ на чтение и выполнение для группы владельца
chmod("/somedir/somefile", 0750);
?>

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Текущим пользователем является пользователь, от имени которого выполняется PHP. Возможно, что это будет не тот пользователь, под именем которого вы получаете доступ к командной оболочке или учетной записи FTP. На большинстве систем режим доступа к файлу может быть изменен только его владельцем.

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание:

При включенном безопасный режим PHP проверяет имеет ли файл или директория, с которой вы работаете, такой же UID (id владельца), как и выполняемый скрипт. Кроме того, вы не можете устанавливать SUID, SGID и "липкие" (sticky) биты.

Смотрите также

  • chown() - Изменяет владельца файла
  • chgrp() - Изменяет группу владельцев файла
  • fileperms() - Возвращает информацию о правах на файл
  • stat() - Возвращает информацию о файле


Изменяет владельца файла

  • « chmod
  • clearstatcache »
  • PHP Manual
  • Файловая система
  • Изменяет владельца файла

chown

(PHP 4, PHP 5, PHP 7)

chown — Изменяет владельца файла

Описание

bool chown ( string $filename , mixed $user )

Осуществляет попытку изменения владельца файла с именем filename на владельца, чье имя передано в параметре user (в виде числа или строки). Только суперпользователь может изменять владельца файла.

Список параметров

filename

Путь к файлу.

user

Имя пользователя или число.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример простого использования chown()

<?php

// Используемое имя файла и имя пользователя
$file_name= "foo.php";
$path = "/home/sites/php.net/public_html/sandbox/" . $file_name ;
$user_name = "root";

// Устанавливаем пользователя
chown($path, $user_name);

// Проверяем результат
$stat = stat($path);
print_r(posix_getpwuid($stat['uid']));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name] => root
    [passwd] => x
    [uid] => 0
    [gid] => 0
    [gecos] => root
    [dir] => /root
    [shell] => /bin/bash
)

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • chmod() - Изменяет режим доступа к файлу
  • chgrp() - Изменяет группу владельцев файла


Очищает кэш состояния файлов

  • « chown
  • copy »
  • PHP Manual
  • Файловая система
  • Очищает кэш состояния файлов

clearstatcache

(PHP 4, PHP 5, PHP 7)

clearstatcache — Очищает кэш состояния файлов

Описание

void clearstatcache ([ bool $clear_realpath_cache = false [, string $filename ]] )

Для обеспечения большей производительности при использовании функций stat(), lstat() или любой другой функции, перечисленных в приведенном ниже списке, PHP кеширует результаты их выполнения. Однако, в некоторых случаях вам может потребоваться очистка этого кэша. Например, когда ваш скрипт несколько раз проверяет состояние одного и того же файла, который может быть изменен или удален во время выполнения скрипта, вы можете захотеть очистить кэш состояния. В этом случае необходимо использовать функцию clearstatcache() для очистки в PHP кэшированной информации об указанном файле.

Обратите внимание, что PHP не кэширует информацию о несуществующих файлах. Так что если вы вызовете file_exists() на несуществующем файле, она будет возвращать FALSE до тех пор, пока вы не создадите этот файл. Если же вы создадите файл, она будет возвращать TRUE даже если затем вы его удалите. Однако, функция unlink() очистит данный кэш автоматически.

Замечание:

Данная функция кэширует информацию об определенных файлах, поэтому имеет смысл вызывать clearstatcache() только в том случае, если вы совершаете несколько операций с одним и тем же файлом и не хотите получать кэшированную информацию об этом файле.

Список функций, результаты выполнения которых кешируются:
stat(),
lstat(),
file_exists(),
is_writable(),
is_readable(),
is_executable(),
is_file(),
is_dir(),
is_link(),
filectime(),
fileatime(),
filemtime(),
fileinode(),
filegroup(),
fileowner(),
filesize(),
filetype() и
fileperms().

Список параметров

clear_realpath_cache

Очищать кэш realpath или нет.

filename

Очистить кэш realpath и stat только для определенного файла, используется только если параметр clear_realpath_cache установлен в TRUE.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.3.0 | Добавлены необязательные параметры clear_realpath_cache и filename.

Примеры

Пример #1 Пример использования clearstatcache()

<?php
$file = 'output_log.txt';

function get_owner($file)
{
    $stat = stat($file);
    $user = posix_getpwuid($stat['uid']);
    return $user['name'];
}

$format = "UID @ %s: %s\n";

printf($format, date('r'), get_owner($file));

chown($file, 'ross');
printf($format, date('r'), get_owner($file));

clearstatcache();
printf($format, date('r'), get_owner($file));
?>

Результатом выполнения данного примера будет что-то подобное:

UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: ross


Копирует файл

  • « clearstatcache
  • delete »
  • PHP Manual
  • Файловая система
  • Копирует файл

copy

(PHP 4, PHP 5, PHP 7)

copy — Копирует файл

Описание

bool copy ( string $source , string $dest [, resource $context ] )

Копирует файл source в файл с именем dest.

Если вы хотите переименовать файл, используйте функцию rename().

Список параметров

source

Путь к исходному файлу.

dest

Путь к целевому файлу. Если dest является URL, то операция копирования может завершиться ошибкой, если обертка URL не поддерживает перезаписывание существующих файлов.

Внимание

Если целевой файл уже существует, то он будет перезаписан.

context

Корректный ресурс контекста, созданный функцией stream_context_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.4 | Изменён параметр context для достижения результата. Ранее любые параметры context игнорировались.
5.3.0 | Добавлена поддержка контекста.
4.3.0 | Оба параметра source и dest теперь могут быть URL, если включены "обертки fopen". Подробнее смотрите функцию fopen().

Примеры

Пример #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()

Описание

Это фиктивная секция руководства, которая помогает программистам, ищущим описание unlink() или unset() в неверном месте.

Смотрите также

  • unlink() - Удаляет файл
  • unset() - Удаляет переменную


Возвращает имя родительского каталога из указанного пути

  • « delete
  • disk_free_space »
  • PHP Manual
  • Файловая система
  • Возвращает имя родительского каталога из указанного пути

dirname

(PHP 4, PHP 5, PHP 7)

dirname — Возвращает имя родительского каталога из указанного пути

Описание

string dirname ( string $path [, int $levels = 1 ] )

Получив строку, содержащую путь к файлу или каталогу, данная функция возвратит родительский каталог данного пути на levels уровней вверх.

Список параметров

path

Путь.

На платформах Windows в качестве разделителей имен директорий используются оба слеша (прямой / и обратный \). В других операционных системах разделителем служит прямой слеш (/).

levels

На сколько уровней вложенности вверх необходимо пройти.

Должно быть целым числом больше 0.

Возвращаемые значения

Возвращает путь к родительской директории. Если в параметре path не содержится слешей, будет возвращена точка ('.'), обозначающая текущую директорию. В другом случае будет возвращен path без последнего компонента /component.

Список изменений

Версия | Описание
7.0.0 | Добавлен необязательный параметр levels.
5.0.0 | dirname() теперь безопасна для обработки бинарных данных.

Примеры

Пример #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

Примечания

Замечание:

Функция dirname() наивно оперирует исключительно исходной строкой и не учитывает реальную файловую систему или компоненты пути типа "..".

Замечание:

dirname() учитывает настройки локали, поэтому для корректной обработки пути с многобайтными символами должна быть установлена соответствующая локаль с помощью функции setlocale().

Смотрите также

  • basename() - Возвращает последний компонент имени из указанного пути
  • pathinfo() - Возвращает информацию о пути к файлу
  • realpath() - Возвращает канонизированный абсолютный путь к файлу


Возвращает размер доступного пространства в каталоге или в файловой системе

  • « dirname
  • disk_total_space »
  • PHP Manual
  • Файловая система
  • Возвращает размер доступного пространства в каталоге или в файловой системе

disk_free_space

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

disk_free_space — Возвращает размер доступного пространства в каталоге или в файловой системе

Описание

float disk_free_space ( string $directory )

Функция возвращает размер свободного пространства в байтах, доступного для использования в указанном каталоге или файловой системе.

Список параметров

directory

Директория или раздел диска.

Замечание:

Если вместо директории будет передано имя файла, то поведение данной функции неизвестно и может отличаться на разных операционных системах и версиях PHP.

Возвращаемые значения

Возвращает количество свободных байт в виде вещественного числа или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции disk_free_space()

<?php
// $df содержит размер свободного места в каталоге "/"
$df = disk_free_space("/");

// Под Windows:
$df_c = disk_free_space("C:");
$df_d = disk_free_space("D:");
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Смотрите также

  • disk_total_space() - Возвращает общий размер каталога или раздела файловой системы


Возвращает общий размер каталога или раздела файловой системы

  • « disk_free_space
  • diskfreespace »
  • PHP Manual
  • Файловая система
  • Возвращает общий размер каталога или раздела файловой системы

disk_total_space

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

disk_total_space — Возвращает общий размер каталога или раздела файловой системы

Описание

float disk_total_space ( string $directory )

Функция возвращает общий размер в байтах указанного раздела диска или каталога.

Список параметров

directory

Директория файловой системы или раздел диска.

Возвращаемые значения

Возвращает общий размер в байтах в виде вещественного числа или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования disk_total_space()

<?php
// $df содержит общий размер диска "/" в байтах
$ds = disk_total_space("/");

// Под Windows:
$ds = disk_total_space("C:");
$ds = disk_total_space("D:");
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Смотрите также

  • disk_free_space() - Возвращает размер доступного пространства в каталоге или в файловой системе


Псевдоним disk_free_space

  • « disk_total_space
  • fclose »
  • PHP Manual
  • Файловая система
  • Псевдоним disk_free_space

diskfreespace

(PHP 4, PHP 5, PHP 7)

diskfreespace — Псевдоним disk_free_space()

Описание

Эта функция является псевдонимом: disk_free_space().


Закрывает открытый дескриптор файла

  • « diskfreespace
  • feof »
  • PHP Manual
  • Файловая система
  • Закрывает открытый дескриптор файла

fclose

(PHP 4, PHP 5, PHP 7)

fclose — Закрывает открытый дескриптор файла

Описание

bool fclose ( resource $handle )

Функция закрывает файл, на который указывает дескриптор handle.

Список параметров

handle

Дескриптор должен быть корректным и указывать на файл, открытый ранее с помощью функции fopen() или fsockopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой пример использования функции fclose()

<?php

$handle = fopen('somefile.txt', 'r');

fclose($handle);

?>

Смотрите также

  • fopen() - Открывает файл или URL
  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix


Проверяет, достигнут ли конец файла

  • « fclose
  • fflush »
  • PHP Manual
  • Файловая система
  • Проверяет, достигнут ли конец файла

feof

(PHP 4, PHP 5, PHP 7)

feof — Проверяет, достигнут ли конец файла

Описание

bool feof ( resource $handle )

Проверяет, достигнут ли конец файла.

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытым функцией fclose()).

Возвращаемые значения

Возвращает TRUE, если указатель файла указывает на EOF или произошла ошибка (в том числе таймаут сокета), иначе возвращает FALSE.

Примечания

Внимание

Если подключение, открытое при помощи fsockopen() не было закрыто сервером, feof() повиснет. Для варианта обхода этого поведения смотрите следующий пример:

Пример #1 Обработка таймаутов с функцией feof()

<?php
function safe_feof($fp, &$start = NULL) {
 $start = microtime(true);

 return feof($fp);
}

/* Предположим, что $fp был ранее открыт с помощью fsockopen() */

$start = NULL;
$timeout = ini_get('default_socket_timeout');

while(!safe_feof($fp, $start) && (microtime(true) - $start) < $timeout)
{
 /* Обработка */
}
?>

Внимание

Если передан неверный файловый указатель, то вы можете получить бесконечный цикл, так как feof() не сможет вернуть TRUE.

Пример #2 Пример feof() с неверным файловым указателем

<?php
// если файл не может быть прочтен или не существует, fopen вернет FALSE
$file = @fopen("no_such_file", "r");

// FALSE от fopen вызовет предупреждение и следующий цикл станет бесконечным
while (!feof($file)) {
}

fclose($file);
?>


Сбрасывает буфер вывода в файл

  • « feof
  • fgetc »
  • PHP Manual
  • Файловая система
  • Сбрасывает буфер вывода в файл

fflush

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

fflush — Сбрасывает буфер вывода в файл

Описание

bool fflush ( resource $handle )

Данная функция осуществляет сброс буферизованных данных в файл, на который указывает handle.

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытым функцией fclose()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример записи файла с помощью fflush()

<?php
$filename = 'bar.txt';

$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
?>

Смотрите также

  • clearstatcache() - Очищает кэш состояния файлов
  • fwrite() - Бинарно-безопасная запись в файл


Считывает символ из файла

  • « fflush
  • fgetcsv »
  • PHP Manual
  • Файловая система
  • Считывает символ из файла

fgetc

(PHP 4, PHP 5, PHP 7)

fgetc — Считывает символ из файла

Описание

string fgetc ( resource $handle )

Считывает символ из переданного указателя на файл.

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытым функцией fclose()).

Возвращаемые значения

Возвращает строку с одним символом, прочтенным из файла, на который указывает handle. Возвращает FALSE при достижении EOF.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример использования функции fgetc()

<?php
$fp = fopen('somefile.txt', 'r');
if (!$fp) {
    echo 'Ошибка при открытии файла somefile.txt';
}
while (false !== ($char = fgetc($fp))) {
    echo "$char\n";
}
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fopen() - Открывает файл или URL
  • popen() - Открывает файловый указатель процесса
  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix
  • fgets() - Читает строку из файла


Читает строку из файла и производит разбор данных CSV

  • « fgetc
  • fgets »
  • PHP Manual
  • Файловая система
  • Читает строку из файла и производит разбор данных CSV

fgetcsv

(PHP 4, PHP 5, PHP 7)

fgetcsv — Читает строку из файла и производит разбор данных CSV

Описание

array fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]]] )

Данная функция похожа на функцию fgets(), с той разницей, что она производит анализ строки на наличие записей в формате CSV и возвращает найденные поля в качестве массива.

Список параметров

handle

Корректный файловый указатель на файл, успешно открытый при помощи fopen(), popen() или fsockopen().

length

Должен быть больше самой длинной строки (в символах), найденной в CSV-файле (включая завершающий символ конца строки). В противном случае, строка будет разбита на куски длиной в length символов если только место разрыва не будет внутри ограничителей полей (enclosure).

Опускание этого параметра (или установка его в 0 в PHP 5.1.0 и выше) приведет к тому, что длина строки будет неограничена. Это может сказаться на скорости выполнения.

delimiter

Необязательный параметр delimiter устанавливает разделитель поля (только один символ).

enclosure

Необязательный параметр enclosure устанавливает символ ограничителя поля (только один символ).

escape

Необязательный параметр escape устанавливает экранирующий символ (только один символ).

Возвращаемые значения

Возвращает индексированный массив с прочтенными полями.

Замечание:

Пустая строка CSV-файла будет возвращена в качестве массива, содержащего единственный элемент null, ошибки в данном случае не возникнет.

Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

fgetcsv() возвращает NULL, если передаётся неверный параметр handle или FALSE при других ошибках, в том числе и по достижении конца файла.

Список изменений

Версия | Описание
5.3.0 | Добавлен параметр escape
5.1.0 | Параметр length стал необязательным. По умолчанию равен 0, что означает отсутствие ограничения длины.
4.3.5 | fgetcsv() теперь безопасна для обработки бинарных данных

Примеры

Пример #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);
}
?>

Примечания

Замечание:

Эта функция принимает во внимание настройки локали. К примеру, если LANG установлена в en_US.UTF-8, то файлы в однобайтовой кодировке будут неправильно прочитаны этой функцией.

Смотрите также

  • str_getcsv() - Выполняет разбор CSV-строки в массив
  • explode() - Разбивает строку с помощью разделителя
  • file() - Читает содержимое файла и помещает его в массив
  • pack() - Упаковывает данные в бинарную строку
  • fputcsv() - Форматирует строку в виде CSV и записывает её в файловый указатель


Читает строку из файла

  • « fgetcsv
  • fgetss »
  • PHP Manual
  • Файловая система
  • Читает строку из файла

fgets

(PHP 4, PHP 5, PHP 7)

fgets — Читает строку из файла

Описание

string fgets ( resource $handle [, int $length ] )

Читает строку из файлового указателя.

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытым функцией fclose()).

length

Чтение заканчивается по достижении length - 1 байт, если встретилась новая строка (которая включается в возвращаемый результат) или конец файла (что встретилось первым). Если длина не указана, чтение из потока будет продолжаться до тех пор, пока не достигнет конца строки.

Замечание:

До версии PHP 4.3.0, опущение этого параметра означало, что длина строки будет равна 1024 символам. Если большинство строк в файле больше 8 килобайт, в целях производительности вашего скрипта стоит указать максимальную длину строки.

Возвращаемые значения

Возвращает строку размером в length - 1 байт, прочитанную из дескриптора файла, на который указывает параметр handle. Если данных для чтения больше нет, то возвращает FALSE.

В случае возникновения ошибки возвращает FALSE.

Список изменений

Версия | Описание
4.3.0 | fgets() теперь безопасна для обработки бинарных данных

Примеры

Пример #1 Построчное чтение файла

<?php
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        echo $buffer;
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
}
?>

Примечания

Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

Замечание:

Программисты, привыкшие к семантике 'C' функции fgets(), должны принимать во внимание разницу в том, каким образом возвращается признак достижения конца файла (EOF).

Смотрите также

  • fgetss() - Прочитать строку из файла и отбросить HTML-теги
  • fread() - Бинарно-безопасное чтение файла
  • fgetc() - Считывает символ из файла
  • stream_get_line() - Получает строку из потокового ресурса до указанного разделителя
  • fopen() - Открывает файл или URL
  • popen() - Открывает файловый указатель процесса
  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix
  • stream_set_timeout() - Устанавливает значение тайм-аута на потоке


Прочитать строку из файла и отбросить HTML-теги

  • « fgets
  • file_exists »
  • PHP Manual
  • Файловая система
  • Прочитать строку из файла и отбросить HTML-теги

fgetss

(PHP 4, PHP 5, PHP 7)

fgetss — Прочитать строку из файла и отбросить HTML-теги

Описание

string fgetss ( resource $handle [, int $length [, string $allowable_tags ]] )

Данная функция идентична функции fgets() с той только разницей, что fgetss() осуществляет отбрасывание любых HTML и PHP-тегов из прочитанной строки.

Список параметров

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>Welcome! Today is the <?php echo(date('jS')); ?> of <?= date('F'); ?>.</p>
</body></html>
Text outside of the HTML block.
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);
}
?>

Результатом выполнения данного примера будет что-то подобное:

 Welcome! Today is the  of .

Text outside of the HTML block.

Примечания

Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

Смотрите также

  • fgets() - Читает строку из файла
  • fopen() - Открывает файл или URL
  • popen() - Открывает файловый указатель процесса
  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix
  • strip_tags() - Удаляет HTML и PHP-теги из строки


Проверяет наличие указанного файла или каталога

  • « fgetss
  • file_get_contents »
  • PHP Manual
  • Файловая система
  • Проверяет наличие указанного файла или каталога

file_exists

(PHP 4, PHP 5, PHP 7)

file_exists — Проверяет наличие указанного файла или каталога

Описание

bool file_exists ( string $filename )

Проверяет наличие указанного файла или каталога.

Список параметров

filename

Путь к файлу или каталогу.

На платформах Windows, для проверки наличия файлов на сетевых ресурсах, используйте имена, подобные //computername/share/filename или \\computername\share\filename.

Возвращаемые значения

Возвращает TRUE, если файл или каталог, указанный параметром filename, существует, иначе возвращает FALSE.

Замечание:

Данная функция возвращает FALSE для символических ссылок, указывающих на несуществующие файлы.

Внимание

Если файлы недоступны из-за ограничений, налагаемых безопасным режимом, то данная функция вернет FALSE. Однако, эти файлы все еще могут быть подключены, если они располагаются в каталоге safe_mode_include_dir.

Замечание:

Проверка происходит с помощью реальных UID/GID, а не эффективных идентификаторов.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Примеры

Пример #1 Проверка существования файла

<?php
$filename = '/path/to/foo.txt';

if (file_exists($filename)) {
    echo "Файл $filename существует";
} else {
    echo "Файл $filename не существует";
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • is_readable() - Определяет существование файла и доступен ли он для чтения
  • is_writable() - Определяет, доступен ли файл для записи
  • is_file() - Определяет, является ли файл обычным файлом
  • file() - Читает содержимое файла и помещает его в массив


Читает содержимое файла в строку

  • « file_exists
  • file_put_contents »
  • PHP Manual
  • Файловая система
  • Читает содержимое файла в строку

file_get_contents

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

file_get_contents — Читает содержимое файла в строку

Описание

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = 0 [, int $maxlen ]]]] )

Данная функция похожа на функцию file() с той только разницей, что file_get_contents() возвращает содержимое файла в строке, начиная с указанного смещения offset и до maxlen байт. В случае неудачи, file_get_contents() вернёт FALSE.

Использование функции file_get_contents() наиболее предпочтительно в случае необходимости получить содержимое файла целиком, поскольку для улучшения производительности функция использует технику отображения файла в память (memory mapping), если она поддерживается вашей операционной системой.

Замечание:

Если вы открываете URI содержащий спецсимволы, такие как пробел, вам нужно закодировать URI при помощи urlencode().

Список параметров

filename

Имя читаемого файла.

use_include_path

Замечание:

Начиная с версии PHP 5 можно использовать константу FILE_USE_INCLUDE_PATH для поиска файла в include path.

context

Корректный ресурс контекста, созданный с помощью функции stream_context_create(). Если в использовании особого контекста нет необходимости, можно пропустить этот параметр передав в него значение NULL.

offset

Смещение, с которого начнется чтение оригинального потока. Отрицательное значение смещения будет отсчитываться с конца потока.

Поиск смещения (offset) не поддерживается при работе с удаленными файлами. Попытка поиска смещения на нелокальных файлах может работать при небольших смещениях, но результат будет непредсказуемым, так как функция работает на буферизованном потоке.

maxlen

Максимальный размер читаемых данных. По умолчанию чтение осуществляется пока не будет достигнут конец файла. Учтите, что этот параметр применяется и к потоку с фильтрами.

Возвращаемые значения

Функция возвращает прочтенные данные или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Ошибки

Будет сгенерирована ошибка уровня E_WARNING в случаях если не удастся найти filename, задан maxlength меньше нуля, или поиск по смещению offset в потоке завершится неудачно.

Примеры

Пример #1 Получить и вывести исходный код домашней страницы вебсайта

<?php
$homepage = file_get_contents('http://www.example.com/');
echo $homepage;
?>

Пример #2 Поиск файлов в include_path

<?php
// <= PHP 5
$file = file_get_contents('./people.txt', true);
// > PHP 5
$file = file_get_contents('./people.txt', FILE_USE_INCLUDE_PATH);
?>

Пример #3 Чтение секции файла

<?php
// Читаем 14 символов, начиная с 21 символа
$section = file_get_contents('./people.txt', NULL, NULL, 20, 14);
var_dump($section);
?>

Результатом выполнения данного примера будет что-то подобное:

string(14) "lle Bjori Ro"

Пример #4 Использование потоковых контекстов

<?php
// Создаем поток
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

// Открываем файл с помощью установленных выше HTTP-заголовков
$file = file_get_contents('http://www.example.com/', false, $context);
?>

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.
5.1.0 | Добавлены аргументы offset и maxlen.

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Внимание

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP умеет определять, что на стороне сервера находится проблемный IIS при открытии потока с помощью обертки https:// и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Смотрите также

  • file() - Читает содержимое файла и помещает его в массив
  • fgets() - Читает строку из файла
  • fread() - Бинарно-безопасное чтение файла
  • readfile() - Выводит файл
  • file_put_contents() - Пишет строку в файл
  • stream_get_contents() - Читает оставшуюся часть потока в строку
  • stream_context_create() - Создаёт контекст потока
  • $http_response_header


Пишет строку в файл

  • « file_get_contents
  • file »
  • PHP Manual
  • Файловая система
  • Пишет строку в файл

file_put_contents

(PHP 5, PHP 7)

file_put_contents — Пишет строку в файл

Описание

int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

Функция идентична последовательным успешным вызовам функций fopen(), fwrite() и fclose().

Если filename не существует, файл будет создан. Иначе, существующий файл будет перезаписан, за исключением случая, если указан флаг FILE_APPEND.

Список параметров

filename

Путь к записываемому файлу.

data

Записываемые данные. Может быть типа string, array или ресурсом stream.

Если 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 в случае ошибки.

Внимание

Эта функция может возвращать как boolean 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 flag для дописывания содержимого в конец файла
// и флаг LOCK_EX для предотвращения записи данного файла кем-нибудь другим в данное время
file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
?>

Список изменений

Версия | Описание
5.1.0 | Добавлена поддержка LOCK_EX и возможность передачи потокового ресурса в параметр data

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • fopen() - Открывает файл или URL
  • fwrite() - Бинарно-безопасная запись в файл
  • file_get_contents() - Читает содержимое файла в строку
  • stream_context_create() - Создаёт контекст потока


Читает содержимое файла и помещает его в массив

  • « file_put_contents
  • fileatime »
  • PHP Manual
  • Файловая система
  • Читает содержимое файла и помещает его в массив

file

(PHP 4, PHP 5, PHP 7)

file — Читает содержимое файла и помещает его в массив

Описание

array file ( string $filename [, int $flags = 0 [, resource $context ]] )

Читает содержимое файла и помещает его в массив.

Замечание:

Можно также использовать функцию file_get_contents() для получения файла в виде строки.

Список параметров

filename

Путь к файлу.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

flags

В качестве необязательного параметра flags может можно указать одну или более следующих констант:

FILE_USE_INCLUDE_PATH
Ищет файл в include_path.
FILE_IGNORE_NEW_LINES
Не добавлять новую строку к концу каждого элемента массива
FILE_SKIP_EMPTY_LINES
Пропускать пустые строки

context

Ресурс контекста, созданный функцией stream_context_create().

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает файл в виде массива. Каждый элемент массива соответствует строке файла, с символами новой строки включительно. В случае ошибки file() возвращает FALSE.

Замечание:

Каждая строка в полученном массиве будет завершаться символами конца строки (если вы не указали флаг FILE_IGNORE_NEW_LINES), поэтому, если вам будет нужно избавиться от этих символов, вы можете использовать функцию rtrim().

Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

Ошибки

Вызывает ошибку уровня E_WARNING если файл не найден.

Список изменений

Версия | Описание
4.3.0 | file() стала безопасной для обработки бинарных данных

Примеры

Пример #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";
}

// Второй пример. Получим содержание web-страницы в виде одной строки.
// См.также описание функции file_get_contents().
$html = implode('', file('http://www.example.com/'));

// Используем необязательный параметр flags (начиная с PHP 5)
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
?>

Примечания

Внимание

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP умеет определять, что на стороне сервера находится проблемный IIS при открытии потока с помощью обертки https:// и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Смотрите также

  • readfile() - Выводит файл
  • fopen() - Открывает файл или URL
  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix
  • popen() - Открывает файловый указатель процесса
  • file_get_contents() - Читает содержимое файла в строку
  • include - include
  • stream_context_create() - Создаёт контекст потока


Возвращает время последнего доступа к файлу

  • « file
  • filectime »
  • PHP Manual
  • Файловая система
  • Возвращает время последнего доступа к файлу

fileatime

(PHP 4, PHP 5, PHP 7)

fileatime — Возвращает время последнего доступа к файлу

Описание

int fileatime ( string $filename )

Возвращает время последнего доступа к файлу.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает время, когда в последний раз был осуществлен доступ к указанному файлу, или FALSE в случае возникновения ошибки. Время возвращается в виде временной метки Unix.

Примеры

Пример #1 Пример использования функции fileatime()

<?php

// Пример вывода: В последний раз обращение к файлу somefile.txt было произведено: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "В последний раз обращение к файлу $filename было произведено: " . date("F d Y H:i:s.", fileatime($filename));
}

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание:

Предполагается, что время последнего доступа файла изменяется во время чтения блоков файла. Это может потребовать значительного количества системных ресурсов, особенно когда приложение обращается к большому числу файлов или каталогов.

С целью увеличения производительности некоторые файловые системы на платформах Unix могут быть примонтированы с отключенной возможностью обновления времени последнего доступа к файлам, примером этого могут служить каталоги для хранения сообщений USENET. В подобных случаях использование данной функции бессмысленно.

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • filemtime() - Возвращает время последнего изменения файла
  • fileinode() - Возвращает индексный дескриптор файла
  • date() - Форматирует вывод системной даты/времени


Возвращает время изменения индексного дескриптора файла

  • « fileatime
  • filegroup »
  • PHP Manual
  • Файловая система
  • Возвращает время изменения индексного дескриптора файла

filectime

(PHP 4, PHP 5, PHP 7)

filectime — Возвращает время изменения индексного дескриптора файла

Описание

int filectime ( string $filename )

Возвращает время изменения индексного дескриптора (inode) файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает время последнего изменения файла, или FALSE в случае возникновения ошибки. Время возвращается в формате временной метки Unix.

Примеры

Пример #1 Пример использования функции filectime()

<?php

// Пример вывода: Файл somefile.txt в последний раз был изменен: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "Файл $filename в последний раз был изменен: " . date("F d Y H:i:s.", filectime($filename));
}

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание:

Примечание. На большинстве платформ Unix, файл считается измененным, если изменены данные его индексного дескриптора, что включает информацию о правах на файл, о его владельце, группе и другие метаданные, содержащиеся в индексном дескрипторе. Обратитесь также к описаниям функций filemtime() (данная функция полезна для создания сообщений типа: "Последнее обновление от..." на web-страницах) и fileatime().

Замечание:

Учтите также, что в некоторых описаниях работы Unix ctime представляется как время создания файла. Это неверно. В большинстве файловых систем Unix понятие времени создания файла отсутствует.

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • filemtime() - Возвращает время последнего изменения файла


Получает идентификатор группы файла

  • « filectime
  • fileinode »
  • PHP Manual
  • Файловая система
  • Получает идентификатор группы файла

filegroup

(PHP 4, PHP 5, PHP 7)

filegroup — Получает идентификатор группы файла

Описание

int filegroup ( string $filename )

Возвращает идентификатор группы файла в виде числа. Для получения имени группы в виде строки используйте функцию posix_getgrgid().

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает идентификатор группы файла или FALSE в случае ошибки. Идентификатор группы возвращается в виде числа, для получения имени группы в виде строки используйте функцию posix_getgrgid(). В случае возникновения ошибки возвращается FALSE.

Примеры

Пример #1 Поиск группы файла

<?php
$filename = 'index.php';
print_r(posix_getgrgid(filegroup($filename)));
?>

Ошибки

В случае возникновения ошибки будет сгенерирована ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • fileowner() - Возвращает идентификатор владельца файла
  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • safe_mode_gid


Возвращает индексный дескриптор файла

  • « filegroup
  • filemtime »
  • PHP Manual
  • Файловая система
  • Возвращает индексный дескриптор файла

fileinode

(PHP 4, PHP 5, PHP 7)

fileinode — Возвращает индексный дескриптор файла

Описание

int fileinode ( string $filename )

Возвращает индексный дескриптор файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает номер индексного дескриптора файла, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Сравнение индексного дескриптора файла с текущим файлом

<?php
$filename = 'index.php';
if (getmyinode() == fileinode($filename)) {
    echo 'Вы проверяете текущий файл.';
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • getmyinode() - Получение значения inode текущего скрипта
  • stat() - Возвращает информацию о файле


Возвращает время последнего изменения файла

  • « fileinode
  • fileowner »
  • PHP Manual
  • Файловая система
  • Возвращает время последнего изменения файла

filemtime

(PHP 4, PHP 5, PHP 7)

filemtime — Возвращает время последнего изменения файла

Описание

int filemtime ( string $filename )

Данная функция возвращает время последней записи блоков файла, иначе говоря, изменения содержания файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает время последнего изменения указанного файла, или FALSE в случае возникновения ошибки. Время возвращается в формате временной метки Unix, который подходит для передачи в качестве аргумента функции date().

Примеры

Пример #1 Пример использования функции filemtime()

<?php
// Пример вывода: В последний раз файл somefile.txt был изменен: December 29 2002 22:16:23.

$filename = 'somefile.txt';
if (file_exists($filename)) {
    echo "В последний раз файл $filename был изменен: " . date ("F d Y H:i:s.", filemtime($filename));
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • filectime() - Возвращает время изменения индексного дескриптора файла
  • stat() - Возвращает информацию о файле
  • touch() - Устанавливает время доступа и модификации файла
  • getlastmod() - Определение времени последней модификации страницы


Возвращает идентификатор владельца файла

  • « filemtime
  • fileperms »
  • PHP Manual
  • Файловая система
  • Возвращает идентификатор владельца файла

fileowner

(PHP 4, PHP 5, PHP 7)

fileowner — Возвращает идентификатор владельца файла

Описание

int fileowner ( string $filename )

Возвращает идентификатор владельца файла

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает числовой идентификатор владельца указанного файла, или FALSE в случае возникновения ошибки. Чтобы получить имя владельца в виде строки, используйте функцию posix_getpwuid().

Примеры

Пример #1 Находим владельца файла

<?php
$filename = 'index.php';
print_r(posix_getpwuid(fileowner($filename)));
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • filegroup() - Получает идентификатор группы файла
  • stat() - Возвращает информацию о файле
  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID


Возвращает информацию о правах на файл

  • « fileowner
  • filesize »
  • PHP Manual
  • Файловая система
  • Возвращает информацию о правах на файл

fileperms

(PHP 4, PHP 5, PHP 7)

fileperms — Возвращает информацию о правах на файл

Описание

int fileperms ( string $filename )

Возвращает информацию о правах доступа на файл.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает права доступа на указанный файл в числовом виде. Младшие биты этого значения такие же, как и биты прав доступа для использования в функции chmod(), однако, на большинстве платформ, возвращаемое значение будет также включать информацию о типе файла, который передан в качестве параметра filename. Примеры ниже демонстрируют как проверить возвращаемое значение на наличие определенных прав и типа файла на POSIX-системах, включая Linux и Mac OS X.

Для локальных файлов, возвращаемое значение является частью структуры st_mode, которая возвращается функцией С-библиотеки stat(). Какие в точности биты установлены может варьироваться от платформы к платформе. Рекомендуется поискать документацию к вашей платформе, если требуется обработка битов возвращаемого значения, не относящихся к правам доступа.

Примеры

Пример #1 Отображение прав доступа в виде восьмеричного числа

<?php
echo substr(sprintf('%o', fileperms('/tmp')), -4);
echo substr(sprintf('%o', fileperms('/etc/passwd')), -4);
?>

Результат выполнения данного примера:

1777
0644

Пример #2 Отображение полных прав доступа

<?php
$perms = fileperms('/etc/passwd');

switch ($perms & 0xF000) {
    case 0xC000: // сокет
        $info = 's';
        break;
    case 0xA000: // символическая ссылка
        $info = 'l';
        break;
    case 0x8000: // обычный
        $info = 'r';
        break;
    case 0x6000: // файл блочного устройства
        $info = 'b';
        break;
    case 0x4000: // каталог
        $info = 'd';
        break;
    case 0x2000: // файл символьного устройства
        $info = 'c';
        break;
    case 0x1000: // FIFO канал
        $info = 'p';
        break;
    default: // неизвестный
        $info = 'u';
}

// Владелец
$info .= (($perms & 0x0100) ? 'r' : '-');
$info .= (($perms & 0x0080) ? 'w' : '-');
$info .= (($perms & 0x0040) ?
            (($perms & 0x0800) ? 's' : 'x' ) :
            (($perms & 0x0800) ? 'S' : '-'));

// Группа
$info .= (($perms & 0x0020) ? 'r' : '-');
$info .= (($perms & 0x0010) ? 'w' : '-');
$info .= (($perms & 0x0008) ?
            (($perms & 0x0400) ? 's' : 'x' ) :
            (($perms & 0x0400) ? 'S' : '-'));

// Мир
$info .= (($perms & 0x0004) ? 'r' : '-');
$info .= (($perms & 0x0002) ? 'w' : '-');
$info .= (($perms & 0x0001) ?
            (($perms & 0x0200) ? 't' : 'x' ) :
            (($perms & 0x0200) ? 'T' : '-'));

echo $info;
?>

Результат выполнения данного примера:

-rw-r--r--

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • chmod() - Изменяет режим доступа к файлу
  • is_readable() - Определяет существование файла и доступен ли он для чтения
  • stat() - Возвращает информацию о файле


Возвращает размер файла

  • « fileperms
  • filetype »
  • PHP Manual
  • Файловая система
  • Возвращает размер файла

filesize

(PHP 4, PHP 5, PHP 7)

filesize — Возвращает размер файла

Описание

int filesize ( string $filename )

Возвращает размер указанного файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает размер указанного файла в байтах или FALSE (и генерирует ошибку уровня E_WARNING) в случае возникновения ошибки.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Примеры

Пример #1 Пример использования функции filesize()

<?php

// Пример вывода: Размер файла somefile.txt: 1024 байта

$filename = 'somefile.txt';
echo 'Размер файла ' . $filename . ': ' . filesize($filename) . ' байт';

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • file_exists() - Проверяет наличие указанного файла или каталога


Возвращает тип файла

  • « filesize
  • flock »
  • PHP Manual
  • Файловая система
  • Возвращает тип файла

filetype

(PHP 4, PHP 5, PHP 7)

filetype — Возвращает тип файла

Описание

string filetype ( string $filename )

Возвращает тип указанного файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает тип файла. Возможными значениями являются fifo, char, dir, block, link, file, socket и unknown.

Возвращает FALSE в случае ошибки. filetype() также вызовет ошибку уровня E_NOTICE, если системный вызов stat завершится ошибкой или тип файла неизвестен.

Примеры

Пример #1 Пример использования функции filetype()

<?php

echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • is_file() - Определяет, является ли файл обычным файлом
  • is_link() - Определяет, является ли файл символической ссылкой
  • file_exists() - Проверяет наличие указанного файла или каталога
  • mime_content_type() - Определяет MIME-тип содержимого файла
  • pathinfo() - Возвращает информацию о пути к файлу
  • stat() - Возвращает информацию о файле


Портируемая консультативная блокировка файлов

  • « filetype
  • fnmatch »
  • PHP Manual
  • Файловая система
  • Портируемая консультативная блокировка файлов

flock

(PHP 4, PHP 5, PHP 7)

flock — Портируемая консультативная блокировка файлов

Описание

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

flock() позволяет осуществить простую модель чтения/записи, которая может быть использована практически на любой платформе (включая большинство вариантов Unix и даже Windows).

В версиях PHP до 5.3.2 блокировка освобождалась также вызовом функции fclose() (которая также вызывается автоматически по завершении скрипта).

PHP поддерживает портируемый способ консультативной блокировки (advisory locking) полностью всего файла (что означает, что все программы, осуществляющие доступ к файлу, должны использовать один и тот же способ блокировки, иначе блокировка не будет работать). По умолчанию, данная функция будет ждать получения блокировки; это поведение можно изменить с помощью описанного ниже параметра LOCK_NB.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

operation

operation может принимать следующие значения:

  • LOCK_SH для получения разделяемой блокировки (чтение).
  • LOCK_EX для получения эксклюзивной блокировки (запись).
  • LOCK_UN для снятия блокировки (разделяемой или эксклюзивной).

Также возможно добавить константу LOCK_NB в качестве битовой маски к любой из вышеуказанных операций, если вы не хотите ждать, пока flock() получит блокировку.

wouldblock

Необязательный третий параметр будет установлен в 1, если блокировка будет блокирующей (код ошибки EWOULDBLOCK).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.22, 5.6.6 | Добавлена поддержка параметра wouldblock в Windows.
5.3.2 | Автоматическое снятие блокировки при закрытии было удалено. Снятие блокировки теперь всегда должно осуществляться вручную.

Примеры

Пример #1 Пример использования функции flock()

<?php

$fp = fopen("/tmp/lock.txt", "r+");

if (flock($fp, LOCK_EX)) { // выполняем эксклюзивную блокировку
    ftruncate($fp, 0); // очищаем файл
    fwrite($fp, "Что-нибудь пишем сюда\n");
    fflush($fp);        // очищаем вывод перед отменой блокировки
    flock($fp, LOCK_UN); // отпираем файл
} else {
    echo "Не удалось получить блокировку!";
}

fclose($fp);

?>

Пример #2 Использование flock() с параметром LOCK_NB

<?php
$fp = fopen('/tmp/lock.txt', 'r+');

/* Включаем параметр LOCK_NB в операции LOCK_EX */
if(!flock($fp, LOCK_EX | LOCK_NB)) {
    echo 'Не удалось получить блокировку';
    exit(-1);
}

/* ... */

fclose($fp);
?>

Примечания

Замечание:

В Windows flock() использует обязательную (mandatory) блокировку вместо консультативной. Обязательная блокировка также поддерживается на Linux и операционных системах, основанных на System V с помощью стандартного механизма, который предоставляет системный вызов fcntl(): т.е. искомый файл должен иметь установленный бит доступа setgid и неустановленный бит группового выполнения. Для корректной работы этой схемы в Linux, файловая система также должна быть смонтирована с опцией mand.

Замечание:

Из-за того, что функции flock() необходим указатель на файл, вам может понадобиться воспользоваться специальным запирающим файлом для того, чтобы ограничить доступ к файлу, который вы намерены очищать, путём его открытия в режиме записи (используя "w" или "w+" в качестве аргумента функции fopen()).

Замечание:

Может быть использована только на дескрипторах локальных файлов, возвращенных функцией fopen(), или файловых дескрипторах пользовательских потоков, реализующих метод streamWrapper::stream_lock().

Внимание

Присвоение другого значения аргументу handle в последующем коде отменит существующую блокировку.

Внимание

В некоторых операционных системах flock() реализован на уровне процессов. При использовании многопоточных серверных API, таких как ISAPI, вы не можете полагаться на flock() для защиты ваших файлов от других PHP-скриптов, которые работают в параллельном потоке на том же сервере!

flock() не поддерживается на старых файловых системах вроде FAT и ее производных, так что всегда будет возвращать FALSE в этом окружении (это особенно касается пользователей Windows 98).


Проверяет совпадение имени файла с шаблоном

  • « flock
  • fopen »
  • PHP Manual
  • Файловая система
  • Проверяет совпадение имени файла с шаблоном

fnmatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fnmatch — Проверяет совпадение имени файла с шаблоном

Описание

bool fnmatch ( string $pattern , string $string [, int $flags = 0 ] )

fnmatch() проверяет, совпадает ли переданный параметр string с указанным шаблоном подстановок оболочки pattern.

Список параметров

pattern

Шаблон подстановки оболочки операционной системы.

string

Проверяемая строка. Данная функция особенно полезна для имен файлов, но также может быть использована с обычными строками.

Среднестатистический пользователь знаком с подстановками оболочки, как минимум с самыми простыми из них - '?' и '*', так что использование fnmatch() вместо preg_match() для поиска в пользовательской части сайта может быть намного удобнее для пользователей, не являющихся программистами.

flags

Значением параметра flags может быть любая комбинация следующих флагов, объединенных с помощью бинарного оператора ИЛИ (|).

Перечень возможных флагов для функции fnmatch()
Flag | Описание
FNM_NOESCAPE | Отключить экранирование обратных слешей.
FNM_PATHNAME | Слеш в строке совпадает только со слешем в указанном шаблоне.
FNM_PERIOD | Ведущая точка в строке должна точно совпадать с точкой в указанном шаблоне.
FNM_CASEFOLD | Совпадение без учета регистра. Является частью расширения GNU.

Возвращаемые значения

При совпадении возвращает TRUE, иначе возвращает FALSE.

Список изменений

Версия | Описание
5.3.0 | Данная функция стала доступной на платформе Windows.

Примеры

Пример #1 Проверяет соответствие цвета шаблону подстановки

<?php
if (fnmatch("*gr[ae]y", $color)) {
  echo "какая-то форма серого цвета ...";
}
?>

Примечания

Внимание

На данный момент эта функция недоступна на POSIX-несовместимых системах, исключая Windows.

Смотрите также

  • glob() - Находит файловые пути, совпадающие с шаблоном
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку


Открывает файл или URL

  • « fnmatch
  • fpassthru »
  • PHP Manual
  • Файловая система
  • Открывает файл или URL

fopen

(PHP 4, PHP 5, PHP 7)

fopen — Открывает файл или URL

Описание

resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )

fopen() закрепляет именованный ресурс, указанный в аргументе filename, за потоком.

Список параметров

filename

Если filename передан в форме "scheme://...", он считается URL'ом и PHP проведёт поиск обработчика протокола (также известного как "обертка") для этой схемы. Если ни одна обёртка не закреплена за протоколом, PHP выдаст замечание, чтобы помочь вам отследить потенциальную проблему в вашем скрипте и затем продолжит выполнение, как если бы filename указывал на обыкновенный файл.

Если PHP установлено, что filename указывает на локальный файл, тогда выполняется попытка открыть поток к этому файлу. Файл должен быть доступен PHP, так что вам следует убедиться, что права доступа на файл это разрешают. Если вы включили безопасный режим или open_basedir, то накладываются дальнейшие ограничения.

Если PHP установлено, что filename указывает на зарегистрированный протокол и этот протокол зарегистрирован как сетевой URL, PHP выполняет проверку состояния директивы allow_url_fopen. Если она выключена, PHP выдаст предупреждение и вызов fopen закончится неудачей.

Замечание:

Список поддерживаемых протоколов доступен в разделе Поддерживаемые протоколы и обработчики (wrappers). Некоторые протоколы (обертки) поддерживают контекст и/или опции php.ini. Обратитесь к соответствующей странице с описанием используемого протокола для получения списка опций, которые могут быть установлены. (например, значение php.ini user_agent используется оберткой http).

На платформе Windows, необходимо экранировать все обратные слеши в пути к файлу или использовать прямые слеши.

<?php
$handle = fopen("c:\\folder\\resource.txt", "r");
?>

mode

Параметр mode указывает тип доступа, который вы запрашиваете у потока. Он может быть одним из следующих вариантов:

Список возможных режимов для fopen() используя mode
mode | Описание
'r' | Открывает файл только для чтения; помещает указатель в начало файла.
'r+' | Открывает файл для чтения и записи; помещает указатель в начало файла.
'w' | Открывает файл только для записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует - пробует его создать.
'w+' | Открывает файл для чтения и записи; помещает указатель в начало файла и обрезает файл до нулевой длины. Если файл не существует - пытается его создать.
'a' | Открывает файл только для записи; помещает указатель в конец файла. Если файл не существует - пытается его создать. В данном режиме функция fseek() не применима, записи всегда добавляются.
'a+' | Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует - пытается его создать. В данном режиме функция fseek() влияет только на место чтения, записи всегда добавляются.
'x' | Создаёт и открывает только для записи; помещает указатель в начало файла. Если файл уже существует, вызов fopen() закончится неудачей, вернёт FALSE и выдаст ошибку уровня E_WARNING. Если файл не существует, попытается его создать. Это эквивалентно указанию флагов O_EXCL|O_CREAT для внутреннего системного вызова open(2).
'x+' | Создаёт и открывает для чтения и записи; в остальном имеет то же поведение что и'x'.
'c' | Открывает файл только для записи. Если файл не существует, то он создается. Если же файл существует, то он не обрезается (в отличии от 'w'), и вызов к этой функции не вызывает ошибку (также как и в случае с 'x'). Указатель на файл будет установлен на начало файла. Это может быть полезно при желании заблокировать файл (смотри flock()) перед изменением, так как использование 'w' может обрезать файл еще до того как была получена блокировка (если вы желаете обрезать файл, можно использовать функцию ftruncate() после запроса на блокировку).
'c+' | Открывает файл для чтения и записи; в остальном имеет то же поведение, что и 'c'.

Замечание:

Разные семейства операционных систем имеют разные соглашения относительно окончания строк. Когда вы пишете текст и хотите вставить разрыв строки, вы должны использовать правильные символы (или символ) для вашей операционной системы. Системы семейства Unix используют \n в качестве символа конца строки, системы семейства Windows используют \r\n в качестве символов окончания строки и системы семейства Macintosh используют \r в качестве символа конца строки.

Если вы используете неверный символ конца строки при редактировании файлов, вы можете обнаружить, что при открытии эти файлы "странно выглядят".

Windows предлагает флаг режима текстовой трансляции ('t'), который автоматически переведёт \n в \r\n во время работы с файлом. И наоборот - вы также можете использовать 'b', чтобы принудительно включить бинарный режим, в котором ваши данные не будут преобразовываться. Чтобы использовать эти режимы, укажите 'b' или 't' последней буквой параметра mode.

Так как установка флага трансляции по умолчанию зависит от SAPI и используемой версии PHP, рекомендуем явно задавать указанный флаг из соображений портируемости. Вы должны использовать режим 't', если вы работаете с текстовым файлом и использовать \n для обозначения конца строки в вашем скрипте, при этом не беспокоясь за читаемость ваших файлов в других приложениях типа "Блокнота". Во всех остальных случаях используйте флаг 'b'.

Если вы явно не укажете флаг 'b' во время работы с бинарными файлами, вы можете столкнуться со странной порчей ваших данных, включая испорченные файлы изображений и странные проблемы с символами \r\n.

Замечание:

Из соображений портируемости, настоятельно рекомендуется всегда использовать флаг 'b' при открытии файлов с помощью fopen().

Замечание:

Кроме того, из соображений портируемости, также настойчиво рекомендуется переписать старый код, который полагается на режим 't', чтобы вместо этого он использовал правильные концы строк и режим 'b'.

use_include_path

Необязательный третий параметр use_include_path может быть установлен в '1' или TRUE, если вы также хотите провести поиск файла в include_path.

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает указатель на файл в случае успешной работы, или FALSE в случае ошибки.

Ошибки

Если открыть файл не удалось, будет сгенерирована ошибка уровня E_WARNING. Вы можете использовать оператор @ для подавления этой ошибки.

Список изменений

Версия | Описание
5.2.6 | Добавлены опции 'c' и 'c+'
4.3.2 | С версии PHP 4.3.2, по умолчанию устанавливается бинарный режим для всех платформ, различающих бинарный и текстовый режимы. Если у вас появились проблемы после обновления, попытайтесь использовать в качестве обхода проблемы флаг 't', пока вы не сделаете ваш скрипт более портируемым, как это было указано выше.

Примеры

Пример #1 Примеры использования fopen()

<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>

Примечания

Внимание

При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING. PHP умеет определять, что на стороне сервера находится проблемный IIS при открытии потока с помощью обертки https:// и не выводит предупреждение. Если вы используете fsockopen() для создания ssl:// сокета, вы сами отвечаете за определение и подавление этого предупреждения.

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание:

Если вы сталкиваетесь с проблемами во время чтения или записи файлов, и вы используете PHP в виде серверного модуля, убедитесь в том, что процесс сервера имеет доступ к используемым вами файлам и директориям.

Замечание:

Данная функция также может принимать директории в качестве параметра filename. Если нет уверенности в том, заданы ли в параметре filename файл или директория, то необходимо применить функцию is_dir() до вызова функции fopen().

Смотрите также

  • Поддерживаемые протоколы и обработчики (wrappers)
  • fclose() - Закрывает открытый дескриптор файла
  • fgets() - Читает строку из файла
  • fread() - Бинарно-безопасное чтение файла
  • fwrite() - Бинарно-безопасная запись в файл
  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix
  • file() - Читает содержимое файла и помещает его в массив
  • file_exists() - Проверяет наличие указанного файла или каталога
  • is_readable() - Определяет существование файла и доступен ли он для чтения
  • stream_set_timeout() - Устанавливает значение тайм-аута на потоке
  • popen() - Открывает файловый указатель процесса
  • stream_context_create() - Создаёт контекст потока
  • umask() - Изменяет текущую umask
  • SplFileObject


Выводит все оставшиеся данные из файлового указателя

  • « fopen
  • fputcsv »
  • PHP Manual
  • Файловая система
  • Выводит все оставшиеся данные из файлового указателя

fpassthru

(PHP 4, PHP 5, PHP 7)

fpassthru — Выводит все оставшиеся данные из файлового указателя

Описание

int fpassthru ( resource $handle )

Читает указанный файловый указатель с текущей позиции до EOF (конца файла) и записывает результат в буфер вывода.

Вам может понадобиться вызвать rewind() чтобы сбросить файловый указатель на начало файла, если вы уже записывали данные в файл.

Если вы хотите просто сбросить содержимое файла в буфер вывода, предварительно не модифицируя его и не начиная с определённого смещения, вы можете воспользоваться readfile(), которая избавит вас от лишнего вызова fopen().

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытым функцией fclose()).

Возвращаемые значения

В случае возникновения ошибки fpassthru() возвращает FALSE. Иначе, fpassthru() возвращает количество символов, прочтенных из handle и переданных на вывод.

Примеры

Пример #1 Использование fpassthru() с бинарными файлами

<?php

// открываем файл в бинарном режиме
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// отправляем нужные заголовки
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// скидываем картинку и останавливаем выполнение скрипта
fpassthru($fp);
exit;

?>

Примечания

Замечание:

При использовании fpassthru() на бинарном файле в Windows, вы должны убедиться в том, что открыли файл в бинарном режиме при помощи добавления b к режиму открытия файла, использованному в fopen().

Рекомендуется использовать флаг b при работе с бинарными файлами даже если ваша система этого не требует, чтобы обеспечить более высокую портируемость скриптов.

Смотрите также

  • readfile() - Выводит файл
  • fopen() - Открывает файл или URL
  • popen() - Открывает файловый указатель процесса
  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix


Форматирует строку в виде CSV и записывает её в файловый указатель

  • « fpassthru
  • fputs »
  • PHP Manual
  • Файловая система
  • Форматирует строку в виде CSV и записывает её в файловый указатель

fputcsv

(PHP 5 >= 5.1.0, PHP 7)

fputcsv — Форматирует строку в виде CSV и записывает её в файловый указатель

Описание

int fputcsv ( resource $handle , array $fields [, string $delimiter = "," [, string $enclosure = '"' [, string $escape_char = "\" ]]] )

fputcsv() форматирует строку (переданную в виде массива fields) в виде CSV и записывает её (заканчивая переводом строки) в указанный файл handle.

Список параметров

handle

Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытым функцией fclose()).

fields

Массив значений.

delimiter

Дополнительный параметр delimiter устанавливает разделитель полей (только один символ).

enclosure

Дополнительный параметр enclosure устанавливает ограничитель полей (только один символ).

escape_char

Необязательный параметр escape_char задает экранирующий символ (только один символ).

Возвращаемые значения

Возвращает длину записанной строки или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.4 | Добавлен параметр escape_char

Примеры

Пример #1 Пример использования fputcsv()

<?php

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);
?>

Вышеуказанный пример запишет в файл file.csv следующее:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Примечания

Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.

Смотрите также

  • fgetcsv() - Читает строку из файла и производит разбор данных CSV


Псевдоним fwrite

  • « fputcsv
  • fread »
  • PHP Manual
  • Файловая система
  • Псевдоним fwrite

fputs

(PHP 4, PHP 5, PHP 7)

fputs — Псевдоним fwrite()

Описание

Эта функция является псевдонимом: fwrite().


Бинарно-безопасное чтение файла

  • « fputs
  • fscanf »
  • PHP Manual
  • Файловая система
  • Бинарно-безопасное чтение файла

fread

(PHP 4, PHP 5, PHP 7)

fread — Бинарно-безопасное чтение файла

Описание

string fread ( resource $handle , int $length )

fread() читает до length байт из файлового указателя handle и смещает указатель. Чтение останавливается как только было достигнуто одно из следующих условий:

  • было прочитано length байт
  • достигнут EOF (конец файла)
  • стал доступен пакет или произошел таймаут сокета (для сетевых потоков)
  • если читаемый поток является буферизованным и не представляет собой обычный файл, то за один раз максимум читается количество байт, равное размеру одной порции данных (обычно это 8192), однако, в зависимости от ранее буферизованных данных размер возвращаемых данных может быть больше размера одной порции данных.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

length

length указывает размер прочитанных данных в байтах.

Возвращаемые значения

Возвращает прочтенную строку или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой пример использования fread()

<?php
// получает содержимое файла в строку
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Пример #2 Пример бинарного чтения с помощью fread()

Внимание

На системах, которые различают бинарные и текстовые файлы (к примеру, Windows), файл должен быть открыт с использованием буквы 'b' в параметре mode функции fopen().

<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>

Пример #3 Примеры удаленного чтения с помощью fread()

Внимание

При чтении чего-либо отличного от локальных файлов, например потоков, возвращаемых при чтении удаленных файлов или из popen() и fsockopen(), чтение остановится после того, как пакет станет доступным. Это означает, что вы должны собирать данные вместе по кусочкам, как показано на примере ниже.

<?php
// Для PHP 5 и выше
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>
<?php
$handle = fopen("http://www.example.com/", "rb");
if (FALSE === $handle) {
    exit("Не удалось открыть поток по url адресу");
}

$contents = '';

while (!feof($handle)) {
    $contents .= fread($handle, 8192);
}
fclose($handle);
?>

Примечания

Замечание:

Если вы просто хотите получить содержимое файла в виде строки, используйте file_get_contents(), так как эта функция намного производительнее, чем код описанный выше.

Замечание:

Учтите, что fread() читает начиная с текущей позиции файлового указателя. Используйте функцию ftell() для нахождения текущей позиции указателя и функцию rewind() для перемотки позиции указателя в начало.

Смотрите также

  • fwrite() - Бинарно-безопасная запись в файл
  • fopen() - Открывает файл или URL
  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix
  • popen() - Открывает файловый указатель процесса
  • fgets() - Читает строку из файла
  • fgetss() - Прочитать строку из файла и отбросить HTML-теги
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • file() - Читает содержимое файла и помещает его в массив
  • fpassthru() - Выводит все оставшиеся данные из файлового указателя
  • ftell() - Сообщает текущую позицию чтения/записи файла
  • rewind() - Сбрасывает курсор у файлового указателя
  • unpack() - Распаковывает данные из бинарной строки


Обрабатывает данные из файла в соответствии с форматом

  • « fread
  • fseek »
  • PHP Manual
  • Файловая система
  • Обрабатывает данные из файла в соответствии с форматом

fscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

fscanf — Обрабатывает данные из файла в соответствии с форматом

Описание

mixed fscanf ( resource $handle , string $format [, mixed &$... ] )

Функция fscanf() похожа на sscanf(), но берёт данные для обработки из файла, ассоциируемого с handle, и интерпретирует их согласно формату format, который описан в документации функции sprintf().

Любой пробельный символ в строке формата эквивалентен любому пробельному символу во входящем потоке. Это означает, что даже табуляция \t в строке формата может быть сопоставлена одному символу пробела во входящем потоке данных.

Каждый вызов fscanf() читает одну строку из файла.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

format

Указанный формат в соответствии с документацией sprintf().

...

Необязательные присваиваемые значения.

Возвращаемые значения

Если в функцию переданы только два аргумента, обработанные значения будут возвращены в виде массива. В ином случае, если были переданы необязательные аргументы, функция вернёт количество присвоенных значений. Необязательные аргументы должны быть переданы по ссылке.

Примеры

Пример #1 Пример использования функции fscanf()

<?php
$handle = fopen("users.txt", "r");
while ($userinfo = fscanf($handle, "%s\t%s\t%s\n")) {
    list ($name, $profession, $countrycode) = $userinfo;
    //... совершаем какие-либо действия над значениями
}
fclose($handle);
?>

Пример #2 Содержимое файла users.txt

javier  argonaut        pe
hiroshi sculptor        jp
robert  slacker us
luigi   florist it

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fgets() - Читает строку из файла
  • fgetss() - Прочитать строку из файла и отбросить HTML-теги
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку


Устанавливает смещение в файловом указателе

  • « fscanf
  • fstat »
  • PHP Manual
  • Файловая система
  • Устанавливает смещение в файловом указателе

fseek

(PHP 4, PHP 5, PHP 7)

fseek — Устанавливает смещение в файловом указателе

Описание

int fseek ( resource $handle , int $offset [, int $whence = SEEK_SET ] )

Устанавливает смещение в файле, на который ссылается handle. Новое смещение, измеряемое в байтах от начала файла, получается путём прибавления параметра offset к позиции, указанной в параметре whence.

В общей сложности, разрешается указывать смещение за пределами конца файла, если данные потом будут записаны в этой позиции, чтение любого незаписанного региона между концом файла и указанной позицией возвратит нулевые байты. Однако, определенные потоки могут не поддерживать это поведение, особенно если они оперируют над хранилищем фиксированного размера.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

offset

Смещение.

Для смещения позиции перед концом файла необходимо передать отрицательное значение offset и установить параметр whence в SEEK_END.

whence

Значениями whence являются:

  • SEEK_SET - Устанавливает смещение в offset байт.
  • SEEK_CUR - Устанавливает смещение в текущее положение плюс offset.
  • SEEK_END - Устанавливает смещение в конец файла плюс offset.

Возвращаемые значения

В случае успеха возвращает 0; в противном случае возвращает -1.

Примеры

Пример #1 Пример использования функции fseek()

<?php

$fp = fopen('somefile.txt', 'r');

// читаем немного данных
$data = fgets($fp, 4096);

// перемещаемся назад к началу файла
// то же самое, что и rewind($fp);
fseek($fp, 0);

?>

Примечания

Замечание:

Если файл открыт в режиме "записи в конец" (a или a+), любые записываемые в файл данные будут записываться в конец, вне зависимости от позиции файла, а результат вызова fseek() будет не определен.

Замечание:

Не все потоки поддерживают смещение указателя. Для потоков, не поддерживающих эту операцию, смещение вперед осуществляется чтением и отбрасыванием данных, другие формы смещения закончатся ошибкой.

Смотрите также

  • ftell() - Сообщает текущую позицию чтения/записи файла
  • rewind() - Сбрасывает курсор у файлового указателя


Получает информацию о файле используя открытый файловый указатель

  • « fseek
  • ftell »
  • PHP Manual
  • Файловая система
  • Получает информацию о файле используя открытый файловый указатель

fstat

(PHP 4, PHP 5, PHP 7)

fstat — Получает информацию о файле используя открытый файловый указатель

Описание

array fstat ( resource $handle )

Собирает статистическую информацию об открытом файле по файловому указателю handle. Эта функция похожа на stat(), за исключением того, что она работает с открытым файловым указателем, а не именем файла.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

Возвращаемые значения

Возвращает массив со статистической информацией файла; формат массива подробно описан на странице описания функции stat().

Примеры

Пример #1 Пример использования функции fstat()

<?php

// открываем файл
$fp = fopen("/etc/passwd", "r");

// собираем статистику
$fstat = fstat($fp);

// закрываем файл
fclose($fp);

// отображаем только ассоциативную часть
print_r(array_slice($fstat, 13));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.


Сообщает текущую позицию чтения/записи файла

  • « fstat
  • ftruncate »
  • PHP Manual
  • Файловая система
  • Сообщает текущую позицию чтения/записи файла

ftell

(PHP 4, PHP 5, PHP 7)

ftell — Сообщает текущую позицию чтения/записи файла

Описание

int ftell ( resource $handle )

Возвращает позицию файлового указателя handle.

Список параметров

handle

Файловый указатель должен быть действующим указателем на поток, открытый функциями fopen() или popen(). ftell() возвращает неопределённые результаты для потоков, разрешающих только запись в конец (открытых с флагом "a").

Возвращаемые значения

Возвращает позицию файлового указателя handle в виде целого числа, т.е. его смещение в файловом потоке.

При возникновении ошибки возвращает FALSE.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Примеры

Пример #1 Пример использования функции ftell()

<?php

// открываем файл и читаем немного данных
$fp = fopen("/etc/passwd", "r");
$data = fgets($fp, 12);

// где же мы ?
echo ftell($fp); // 11

fclose($fp);

?>

Смотрите также

  • fopen() - Открывает файл или URL
  • popen() - Открывает файловый указатель процесса
  • fseek() - Устанавливает смещение в файловом указателе
  • rewind() - Сбрасывает курсор у файлового указателя


Урезает файл до указанной длинны

  • « ftell
  • fwrite »
  • PHP Manual
  • Файловая система
  • Урезает файл до указанной длинны

ftruncate

(PHP 4, PHP 5, PHP 7)

ftruncate — Урезает файл до указанной длинны

Описание

bool ftruncate ( resource $handle , int $size )

Принимает файловый указатель handle и урезает соответствующий файл до размера size.

Список параметров

handle

Файловый указатель.

Замечание:

handle должен быть открыт для записи.

size

Размер файла, до которого он будет обрезан.

Замечание:

Если size больше текущего размера файла, то файл будет дополнен null байтами.

Если size меньше текущего размера файла, то файл будет обрезан до этого размера.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример обрезания файла

<?php
$filename = 'lorem_ipsum.txt';

$handle = fopen($filename, 'r+');
ftruncate($handle, rand(1, filesize($filename)));
rewind($handle);
echo fread($handle, filesize($filename));
fclose($handle);
?>

Примечания

Замечание:

Файловый указатель не меняется.

Смотрите также

  • fopen() - Открывает файл или URL
  • fseek() - Устанавливает смещение в файловом указателе


Бинарно-безопасная запись в файл

  • « ftruncate
  • glob »
  • PHP Manual
  • Файловая система
  • Бинарно-безопасная запись в файл

fwrite

(PHP 4, PHP 5, PHP 7)

fwrite — Бинарно-безопасная запись в файл

Описание

int fwrite ( resource $handle , string $string [, int $length ] )

fwrite() записывает содержимое string в файловый поток handle.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

string

Записываемая строка.

length

Если передан аргумент length, запись остановится после того, как length байтов будут записаны или будет достигнут конец строки string, смотря что произойдёт раньше.

Учтите, что если указан аргумент length, то директива magic_quotes_runtime будет проигнорирована, и строка string не будет очищена от слешей.

Возвращаемые значения

fwrite() возвращает количество записанных байт или FALSE в случае ошибки.

Примечания

Замечание:

Запись в сетевой поток может прекратиться до того, как будут записаны все данные. Это можно контролировать с помощью проверки возвращаемого значения функции fwrite():

<?php
function fwrite_stream($fp, $string) {
    for ($written = 0; $written < strlen($string); $written += $fwrite) {
        $fwrite = fwrite($fp, substr($string, $written));
        if ($fwrite === false) {
            return $written;
        }
    }
    return $written;
}
?>

Замечание:

В системах, различающих двоичные и текстовые файлы (к примеру, Windows), файл должен быть открыт используя флаг 'b' в конце аргумента mode функции fopen().

Замечание:

Если дескриптор handle был открыт функцией fopen() в режиме "добавление в конец", то вызовы fwrite() будут атомарными (за исключением случая, если размер string превысит размер блока файловой системы, на некоторых платформах, и пока файл хранится на локальной файловой системе). Т.е. нет необходимости блокировать ресурс с помощью flock() перед вызовом fwrite(), и все данные будут записаны без прерываний.

Замечание:

При повторной записи в файловый указатель, данные будут добавлены в конец содержимого файла:

<?php
$fp = fopen('data.txt', 'w');
fwrite($fp, '1');
fwrite($fp, '23');
fclose($fp);

// содержимое 'data.txt' теперь 123, а не 23!
?>

Примеры

Пример #1 Простой пример использования fwrite()

<?php
$filename = 'test.txt';
$somecontent = "Добавить это к файлу\n";

// Вначале давайте убедимся, что файл существует и доступен для записи.
if (is_writable($filename)) {

    // В нашем примере мы открываем $filename в режиме "записи в конец".
    // Таким образом, смещение установлено в конец файла и
    // наш $somecontent допишется в конец при использовании fwrite().
    if (!$handle = fopen($filename, 'a')) {
         echo "Не могу открыть файл ($filename)";
         exit;
    }

    // Записываем $somecontent в наш открытый файл.
    if (fwrite($handle, $somecontent) === FALSE) {
        echo "Не могу произвести запись в файл ($filename)";
        exit;
    }

    echo "Ура! Записали ($somecontent) в файл ($filename)";

    fclose($handle);

} else {
    echo "Файл $filename недоступен для записи";
}
?>

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fopen() - Открывает файл или URL
  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix
  • popen() - Открывает файловый указатель процесса
  • file_get_contents() - Читает содержимое файла в строку
  • pack() - Упаковывает данные в бинарную строку


Находит файловые пути, совпадающие с шаблоном

  • « fwrite
  • is_dir »
  • PHP Manual
  • Файловая система
  • Находит файловые пути, совпадающие с шаблоном

glob

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

glob — Находит файловые пути, совпадающие с шаблоном

Описание

array glob ( string $pattern [, int $flags = 0 ] )

Функция glob() ищет все пути, совпадающие с шаблоном pattern согласно правилам, используемым в функции glob() библиотеки libc, которые похожи на правила, используемые большинством распространённых оболочек.

Список параметров

pattern

Шаблон. Не происходит раскрытие тильды и подстановка параметров.

flags

Допустимые флаги:

  • GLOB_MARK - Добавляет слеш к каждой возвращаемой директории.
  • GLOB_NOSORT - Возвращает файлы в том виде, в котором они содержатся в директории (без сортировки). Если этот флаг не указан, то имена сортируются по алфавиту.
  • GLOB_NOCHECK - Возвращает шаблон поиска, если с его помощью не был найден ни один файл.
  • GLOB_NOESCAPE - Обратные слеши не экранируют метасимволы.
  • GLOB_BRACE - Раскрывает {a,b,c} для совпадения с 'a', 'b' или 'c'.
  • GLOB_ONLYDIR - Возвращает только директории, совпадающие с шаблоном.
  • GLOB_ERR - Останавливается при ошибках чтения (например, директории без права чтения), по умолчанию ошибки игнорируются.

Возвращаемые значения

Возвращает массив, который содержит совпадающие файлы/директории, пустой массив в случае отсутствия совпадения или FALSE в случае ошибки.

Замечание:

На некоторых системах невозможно отличить отсутствие совпадения и ошибку.

Список изменений

Версия | Описание
5.1.0 | Добавлена константа GLOB_ERR

Примеры

Пример #1 Удобный способ, как при помощи glob() можно заменить opendir() и её друзей.

<?php
foreach (glob("*.txt") as $filename) {
    echo "$filename размер " . filesize($filename) . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

funclist.txt размер 44686
funcsummary.txt размер 267625
quickref.txt размер 137820

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Эта функция недоступна на некоторых системах (например, старой Sun OS).

Замечание: Флаг GLOB_BRACE недоступен на некоторых не GNU-системах, например, Solaris.

Смотрите также

  • opendir() - Открывает дескриптор каталога
  • readdir() - Получает элемент каталога по его дескриптору
  • closedir() - Освобождает дескриптор каталога
  • fnmatch() - Проверяет совпадение имени файла с шаблоном


Определяет, является ли имя файла директорией

  • « glob
  • is_executable »
  • PHP Manual
  • Файловая система
  • Определяет, является ли имя файла директорией

is_dir

(PHP 4, PHP 5, PHP 7)

is_dir — Определяет, является ли имя файла директорией

Описание

bool is_dir ( string $filename )

Определяет, является ли имя файла директорией.

Список параметров

filename

Путь к файлу. Если filename является относительным именем, он будет проверяться относительно текущей рабочей директории. Если filename является символической или жесткой ссылкой, то ссылка будет раскрыта и проверена. При включенном безопасный режим или open_basedir могут применяться дальнейшие ограничения.

Возвращаемые значения

Возвращает TRUE, если файл существует и является директорией, иначе возвращается FALSE.

Примеры

Пример #1 Пример использования функции is_dir()

<?php
var_dump(is_dir('a_file.txt'));
var_dump(is_dir('bogus_dir/abc'));

var_dump(is_dir('..')); // на одну директорию выше
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(true)

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • chdir() - Изменяет каталог
  • dir() - Возвращает экземпляр класса Directory
  • opendir() - Открывает дескриптор каталога
  • is_file() - Определяет, является ли файл обычным файлом
  • is_link() - Определяет, является ли файл символической ссылкой


Определяет, является ли файл исполняемым

  • « is_dir
  • is_file »
  • PHP Manual
  • Файловая система
  • Определяет, является ли файл исполняемым

is_executable

(PHP 4, PHP 5, PHP 7)

is_executable — Определяет, является ли файл исполняемым

Описание

bool is_executable ( string $filename )

Определяет, является ли файл исполняемым.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE, если файл существует и является исполняемым, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования функции is_executable()

<?php

$file = '/home/vincent/somefile.sh';

if (is_executable($file)) {
    echo $file.' является исполняемым';
} else {
    echo $file.' не является исполняемым';
}

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • is_file() - Определяет, является ли файл обычным файлом
  • is_link() - Определяет, является ли файл символической ссылкой


Определяет, является ли файл обычным файлом

  • « is_executable
  • is_link »
  • PHP Manual
  • Файловая система
  • Определяет, является ли файл обычным файлом

is_file

(PHP 4, PHP 5, PHP 7)

is_file — Определяет, является ли файл обычным файлом

Описание

bool is_file ( string $filename )

Определяет, является ли файл обычным файлом.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE, если файл существует и является обычным файлом, иначе возвращает FALSE.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Примеры

Пример #1 Пример использования is_file()

<?php
var_dump(is_file('a_file.txt')) . "\n";
var_dump(is_file('/usr/bin/')) . "\n";
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • is_link() - Определяет, является ли файл символической ссылкой


Определяет, является ли файл символической ссылкой

  • « is_file
  • is_readable »
  • PHP Manual
  • Файловая система
  • Определяет, является ли файл символической ссылкой

is_link

(PHP 4, PHP 5, PHP 7)

is_link — Определяет, является ли файл символической ссылкой

Описание

bool is_link ( string $filename )

Определяет, является ли файл символической ссылкой.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE, если файл существует и является символической ссылкой, иначе возвращает FALSE.

Примеры

Пример #1 Создаем файл и подтверждаем, что он является символической ссылкой

<?php
$link = 'uploads';

if (is_link($link)) {
    echo(readlink($link));
} else {
    symlink('uploads.php', $link);
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • is_file() - Определяет, является ли файл обычным файлом
  • readlink() - Возвращает файл, на который указывает символическая ссылка


Определяет существование файла и доступен ли он для чтения

  • « is_link
  • is_uploaded_file »
  • PHP Manual
  • Файловая система
  • Определяет существование файла и доступен ли он для чтения

is_readable

(PHP 4, PHP 5, PHP 7)

is_readable — Определяет существование файла и доступен ли он для чтения

Описание

bool is_readable ( string $filename )

Возвращает TRUE, если файл существует и доступен для чтения.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает TRUE, если файл или директория, указанная в filename существует и доступна для чтения, иначе возвращает FALSE.

Примеры

Пример #1 is_readable() example

<?php
$filename = 'test.txt';
if (is_readable($filename)) {
    echo 'Файл доступен для чтения';
} else {
    echo 'Файл недоступен для чтения';
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Не забывайте, что PHP может обращаться к файлам от имени пользователя, от которого запущен веб-сервер (часто 'nobody'). До версии PHP 5.1.5 ограничения безопасного режима не принимались во внимание.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Замечание:

Проверка производится с использованием реальных UID/GID вместо эффективных.

Эта функция может возвращать TRUE для директорий. Чтобы отличить файл от директории можно воспользоваться функцией is_dir().

Смотрите также

  • is_writable() - Определяет, доступен ли файл для записи
  • file_exists() - Проверяет наличие указанного файла или каталога
  • fgets() - Читает строку из файла


Определяет, был ли файл загружен при помощи HTTP POST

  • « is_readable
  • is_writable »
  • PHP Manual
  • Файловая система
  • Определяет, был ли файл загружен при помощи HTTP POST

is_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

is_uploaded_file — Определяет, был ли файл загружен при помощи HTTP POST

Описание

bool is_uploaded_file ( string $filename )

Возвращает TRUE, если файл filename был загружен при помощи HTTP POST. Это полезно для удостоверения того, что злонамеренный пользователь не пытается обмануть скрипт так, чтобы он работал с файлами, с которыми работать не должен - к примеру, /etc/passwd.

Такие проверки особенно полезны, если существует вероятность того, что операции над файлом могут показать его содержимое пользователю или даже другим пользователям той же системы.

Для правильной работы, функции is_uploaded_file() нужен аргумент вида $_FILES['userfile']['tmp_name'], - имя закачиваемого файла на клиентской машине $_FILES['userfile']['name'] не подходит.

Список параметров

filename

Имя проверяемого файла.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции is_uploaded_file()

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
   echo "Файл ". $_FILES['userfile']['name'] ." успешно загружен.\n";
   echo "Отображаем содержимое\n";
   readfile($_FILES['userfile']['tmp_name']);
} else {
   echo "Возможная атака с участием загрузки файла: ";
   echo "файл '". $_FILES['userfile']['tmp_name'] . "'.";
}

?>

Смотрите также

  • move_uploaded_file() - Перемещает загруженный файл в новое место
  • $_FILES
  • Простой пример использования можно найти в разделе "Загрузка файлов на сервер".


Определяет, доступен ли файл для записи

  • « is_uploaded_file
  • is_writeable »
  • PHP Manual
  • Файловая система
  • Определяет, доступен ли файл для записи

is_writable

(PHP 4, PHP 5, PHP 7)

is_writable — Определяет, доступен ли файл для записи

Описание

bool is_writable ( string $filename )

Возвращает TRUE, если файл filename существует и доступен для записи. Аргумент filename может быть именем директории, что позволяет вам проверять директории на доступность для записи.

Не забывайте, что PHP может обращаться к файлу от имени того пользователя, от которого запущен веб-сервер (обычно 'nobody'). Ограничения безопасного режима не принимаются во внимание.

Список параметров

filename

Проверяемый файл.

Возвращаемые значения

Возвращает TRUE, если filename существует и доступен для записи.

Примеры

Пример #1 Пример использования is_writable()

<?php
$filename = 'test.txt';
if (is_writable($filename)) {
    echo 'Файл доступен для записи';
} else {
    echo 'Файл недоступен для записи';
}
?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • is_readable() - Определяет существование файла и доступен ли он для чтения
  • file_exists() - Проверяет наличие указанного файла или каталога
  • fwrite() - Бинарно-безопасная запись в файл


Псевдоним is_writable

  • « is_writable
  • lchgrp »
  • PHP Manual
  • Файловая система
  • Псевдоним is_writable

is_writeable

(PHP 4, PHP 5, PHP 7)

is_writeable — Псевдоним is_writable()

Описание

Эта функция является псевдонимом: is_writable().


Изменяет группу, которой принадлежит символическая ссылка

  • « is_writeable
  • lchown »
  • PHP Manual
  • Файловая система
  • Изменяет группу, которой принадлежит символическая ссылка

lchgrp

(PHP 5 >= 5.1.2, PHP 7)

lchgrp — Изменяет группу, которой принадлежит символическая ссылка

Описание

bool lchgrp ( string $filename , mixed $group )

Пытается изменить группу, которой принадлежит символическая ссылка filename на указанную в group.

Только суперпользователь может изменять группу символической ссылки произвольно, другие пользователи могут изменять группу символической ссылки на какую-либо, в которой пользователь является членом.

Список параметров

filename

Путь к ссылке.

group

Группа, указанная по имени или номеру.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример изменения группы символической ссылки

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchgrp($link, 8);
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание: Для Windows-платформ эта функция не реализована.

Смотрите также

  • chgrp() - Изменяет группу владельцев файла
  • lchown() - Изменяет владельца символической ссылки
  • chown() - Изменяет владельца файла
  • chmod() - Изменяет режим доступа к файлу


Изменяет владельца символической ссылки

  • « lchgrp
  • link »
  • PHP Manual
  • Файловая система
  • Изменяет владельца символической ссылки

lchown

(PHP 5 >= 5.1.2, PHP 7)

lchown — Изменяет владельца символической ссылки

Описание

bool lchown ( string $filename , mixed $user )

Пытается изменить владельца символической ссылки filename на указанного в user пользователя.

Только суперпользователь может изменять владельца символической ссылки.

Список параметров

filename

Путь к файлу.

user

Имя пользователя или номер.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Изменение владельца символической ссылки

<?php
$target = 'output.php';
$link = 'output.html';
symlink($target, $link);

lchown($link, 8);
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Замечание: Для Windows-платформ эта функция не реализована.

Смотрите также

  • chown() - Изменяет владельца файла
  • lchgrp() - Изменяет группу, которой принадлежит символическая ссылка
  • chgrp() - Изменяет группу владельцев файла
  • chmod() - Изменяет режим доступа к файлу


Создаёт жёсткую ссылку

  • « lchown
  • linkinfo »
  • PHP Manual
  • Файловая система
  • Создаёт жёсткую ссылку

link

(PHP 4, PHP 5, PHP 7)

link — Создаёт жёсткую ссылку

Описание

bool link ( string $target , string $link )

link() создаёт жесткую ссылку.

Список параметров

target

Цель ссылки.

link

Имя ссылки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция стала доступна на Windows системах (Vista, Server 2008 и выше).

Примеры

Пример #1 Создание простой жесткой ссылки

<?php
$target = 'source.ext'; // Это уже существующий файл
$link = 'newfile.ext'; // Это файл, который вы хотите привязать к первому

link($target, $link);
?>

Примечания

Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.

Замечание: Только для Windows: Для данной функции необходимо, чтобы PHP был запущен в привилегированном режиме или с отключенным UAC.

Смотрите также

  • symlink() - Создаёт символическую ссылку
  • readlink() - Возвращает файл, на который указывает символическая ссылка
  • linkinfo() - Возвращает информацию о ссылке


Возвращает информацию о ссылке

  • « link
  • lstat »
  • PHP Manual
  • Файловая система
  • Возвращает информацию о ссылке

linkinfo

(PHP 4, PHP 5, PHP 7)

linkinfo — Возвращает информацию о ссылке

Описание

int linkinfo ( string $path )

Возвращает информацию о ссылке.

Эта функция используется для определения, существует ли ссылка (на которую указывает path) на самом деле (используя тот же метод, что и макрос S_ISLNK, определённый в stat.h).

Список параметров

path

Путь к ссылке.

Возвращаемые значения

linkinfo() возвращает поле st_dev структуры stat из Unix C, которую возвращает системный вызов lstat. Возвращает 0 или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь доступна и на Windows платформах (Vista, Server 2008 и выше).

Примеры

Пример #1 Пример использования функции linkinfo()

<?php

echo linkinfo('/vmlinuz'); // 835

?>

Смотрите также

  • symlink() - Создаёт символическую ссылку
  • link() - Создаёт жёсткую ссылку
  • readlink() - Возвращает файл, на который указывает символическая ссылка


Возвращает информацию о файле или символической ссылке

  • « linkinfo
  • mkdir »
  • PHP Manual
  • Файловая система
  • Возвращает информацию о файле или символической ссылке

lstat

(PHP 4, PHP 5, PHP 7)

lstat — Возвращает информацию о файле или символической ссылке

Описание

array lstat ( string $filename )

Собирает статистику на файл или символическую ссылку с именем filename.

Список параметров

filename

Путь к файлу или символической ссылке.

Возвращаемые значения

Обратитесь к странице руководства функции stat() для получения информации о структуре массива, который возвращает lstat(). Эта функция идентична функции stat(), за исключением того, что если filename является символической ссылкой, возвращается статус символической ссылки, а не того файла, на который она указывает.

Примеры

Пример #1 Сравнение функций stat() и lstat()

<?php
symlink('uploads.php', 'uploads');

// Отличия между uploads.php и uploads
array_diff(stat('uploads'), lstat('uploads'));
?>

Результатом выполнения данного примера будет что-то подобное:

Отличия в возвращаемых результатах между этими файлами.

Array
(
    [ino] => 97236376
    [mode] => 33188
    [size] => 34
    [atime] => 1223580003
    [mtime] => 1223581848
    [ctime] => 1223581848
    [blocks] => 8
)

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • stat() - Возвращает информацию о файле


Создаёт директорию

  • « lstat
  • move_uploaded_file »
  • PHP Manual
  • Файловая система
  • Создаёт директорию

mkdir

(PHP 4, PHP 5, PHP 7)

mkdir — Создаёт директорию

Описание

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )

Пытается создать директорию, заданную в pathname.

Список параметров

pathname

Путь к директории.

mode

По умолчанию принимает значение 0777, что означает самые широкие права. Больше информации о режимах доступа можно узнать на странице руководства функции chmod().

Замечание:

Аргумент mode игнорируется в Windows.

Обратите внимание, что аргумент mode необходимо задавать в виде восьмеричного числа (первой цифрой должен быть ноль). На аргумент mode также влияет текущее значение umask, которое можно изменить при помощи umask().

recursive

Разрешает создание вложенных директорий, указанных в pathname.

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции mkdir()

<?php
mkdir("/path/to/my/dir", 0700);
?>

Пример #2 Использование mkdir() с параметром recursive

<?php
// Желаемая структура папок
$structure = './depth1/depth2/depth3/';

// Для создания вложенной структуры необходимо указать параметр
// $recursive в mkdir() .

if (!mkdir($structure, 0777, true)) {
    die('Не удалось создать директории...');
}

// ...
?>

Ошибки

Бросает ошибку уровня E_WARNING, если директория уже существует.

Бросает ошибку уровня E_WARNING, если соответствующие права доступа блокируют создание директории.

Примечания

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • rmdir() - Удаляет директорию


Перемещает загруженный файл в новое место

  • « mkdir
  • parse_ini_file »
  • PHP Manual
  • Файловая система
  • Перемещает загруженный файл в новое место

move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

move_uploaded_file — Перемещает загруженный файл в новое место

Описание

bool move_uploaded_file ( string $filename , string $destination )

Эта функция проверяет, является ли файл filename загруженным на сервер (переданным по протоколу HTTP POST). Если файл действительно загружен на сервер, он будет перемещён в место, указанное в аргументе destination.

Такая проверка особенно важна в том случае, если существует шанс того, что какие-либо действия, производимые над загруженным файлом, могут открыть его содержимое пользователю или даже другим пользователям системы.

Список параметров

filename

Путь к загруженному файлу.

destination

Путь, по которому необходимо переместить файл.

Возвращаемые значения

В случае успеха возвращает TRUE.

Если filename не является загруженным файлом, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE.

Если filename является загруженным файлом, но не может быть перемещён по каким-либо причинам, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE. Кроме того, отображается предупреждение.

Примеры

Пример #1 Загрузка нескольких файлов

<?php
$uploads_dir = '/uploads';
foreach ($_FILES["pictures"]["error"] as $key => $error) {
    if ($error == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
        // basename() может предотвратить атаку на файловую систему;
        // может быть целесообразным дополнительно проверить имя файла
        $name = basename($_FILES["pictures"]["name"][$key]);
        move_uploaded_file($tmp_name, "$uploads_dir/$name");
    }
}
?>

Примечания

Замечание:

Функция move_uploaded_file() принимает во внимание как безопасный режим, так и open_basedir. Тем не менее, ограничения накладываются лишь на параметр destination, чтобы разрешить перемещение загруженных файлов, так как параметр filename может конфликтовать с этими ограничениями. move_uploaded_file() гарантирует безопасность этой операции, работая лишь с теми файлами, которые были загружены через PHP.

Внимание

Если результирующий файл уже существует, он будет перезаписан.

Смотрите также

  • is_uploaded_file() - Определяет, был ли файл загружен при помощи HTTP POST
  • rename() - Переименовывает файл или директорию
  • Простой пример использования этой функции можно найти в разделе "Загрузка файлов на сервер"


Обрабатывает конфигурационный файл

  • « move_uploaded_file
  • parse_ini_string »
  • PHP Manual
  • Файловая система
  • Обрабатывает конфигурационный файл

parse_ini_file

(PHP 4, PHP 5, PHP 7)

parse_ini_file — Обрабатывает конфигурационный файл

Описание

array parse_ini_file ( string $filename [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL ]] )

parse_ini_file() загружает ini-файл, указанный в аргументе filename, и возвращает его настройки в виде ассоциативного массива.

Структура ini-файла похожа на структуру php.ini.

Список параметров

filename

Имя обрабатываемого ini-файла.

process_sections

Установив параметр process_sections в TRUE, вы получаете многомерный массив, который включает как название отдельных настроек, так и секции. По умолчанию process_sections равен FALSE

scanner_mode

Может принимать следующие значения: INI_SCANNER_NORMAL (по умолчанию) или INI_SCANNER_RAW. Если указано значение INI_SCANNER_RAW, то значения опций не будут обрабатываться.

С версии PHP 5.6.1 также можео задать INI_SCANNER_TYPED. В этом режиме типы boolean, null и integer будут, по возможности, сохраняться. Строковые значения "true", "on" и "yes" будут преобразованы в TRUE. "false", "off", "no" и "none" в FALSE. "null" преобразуется в NULL. Также, все числовые строки будут, по возможности, преобразованы к целым числам.

Возвращаемые значения

В случае успеха, настройки возвращаются в виде ассоциативного массива (array). В случае ошибки возвращается FALSE.

Список изменений

Версия | Описание
7.0.0 | Хэш-метка (#) больше не используется для комментариев.
5.6.1 | Добавлен новый режим INI_SCANNER_TYPED.
5.3.0 | Добавлен необязательный параметр scanner_mode. Одинарные кавычки теперь также могут быть использованы в присвоениях переменных. Символ решетки (#) теперь больше не может быть использован в качестве комментария и будет выбрасывать предупреждение о том, что данная возможность считается устаревшей.
5.2.7 | В случае ошибки синтаксиса, данная функция вернет FALSE, а не пустой массив.
5.2.4 | Ключи и имена секций, состоящие из цифр, будут обработаны в PHP как целые числа. Поэтому числа, начинающиеся с 0 будут считаться восьмеричными, а начинающиеся с 0x - шестнадцатеричными.
5.0.0 | Значения, заключенные в двойные кавычки, могут содержать переводы строк.
4.2.1 | На поведение этой функции теперь влияет безопасный режим и open_basedir.

Примеры

Пример #1 Содержимое sample.ini

; Это пример файла настроек
; Комментарии начинаются с ';', как в php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"

[third_section]
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"

urls[svn] = "http://svn.php.net"
urls[git] = "http://git.php.net"

Пример #2 Пример использования функции parse_ini_file()

Константы также могут обрабатываться в ini-файлах, так что если вы объявите константу в виде значения для ini-файла до вызова parse_ini_file(), то константа будет корректно обработана. Таким образом обрабатываются только значения опций. Например:

<?php

define('BIRD', 'Dodo bird');

// Обрабатываем без секций
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);

// Обрабатываем с секциями
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [one] => 1
    [five] => 5
    [animal] => Dodo bird
    [path] => /usr/local/bin
    [URL] => http://www.example.com/~username
    [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] => Dodo bird
        )

    [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 ? 'Yes' : 'No');
}

// Получаем путь к php.ini с помощью функции php_ini_loaded_file()
// функция доступна начиная с версии PHP 5.2.4
$ini_path = php_ini_loaded_file();

// Обрабатываем php.ini
$ini = parse_ini_file($ini_path);

// Выводим и сравниваем значения, учтите, что использование get_cfg_var()
// даст одинаковые результаты для используемых здесь значений parsed (загруженное из файла) и loaded (используемое в данный момент)
echo '(parsed) magic_quotes_gpc = ' . yesno($ini['magic_quotes_gpc']) . PHP_EOL;
echo '(loaded) magic_quotes_gpc = ' . yesno(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

(parsed) magic_quotes_gpc = Yes
(loaded) magic_quotes_gpc = Yes

Примечания

Замечание:

Эта функция не имеет никакого отношения к файлу php.ini. К моменту выполнения вашего скрипта, он уже обработан. Эта функция может быть использована для загрузки настроек вашего собственного приложения.

Замечание:

Если значение в ini-файле содержит прочие символы, кроме букв и цифр, оно должно заключаться в двойные кавычки (").

Замечание: Существует зарезервированные слова, которые нельзя использовать в качестве ключей в ini-файлах. Такими словами являются: null, yes, no, true, false, on, off, none. Значения null, off, no и false преобразуются в "", а значения on, yes и true преобразуются в "1", но только если не используется режим INI_SCANNER_TYPED(доступен с версии PHP 5.6.1). Символы ?{}|&~!()^" не должны использоваться в ключах и иметь какой-либо особый смысл в значениях.

Замечание:

Записи без знака равенства игнорируются. Например, "foo" игнорируется, тогда как "bar =" обрабатывается и добавляется с пустым значением. Например, в MySQL есть опция "no-auto-rehash", устанавливаемая в my.cnf, которая не имеет значения и игнорируется.

Смотрите также

  • parse_ini_string() - Разбирает строку конфигурации


Разбирает строку конфигурации

  • « parse_ini_file
  • pathinfo »
  • PHP Manual
  • Файловая система
  • Разбирает строку конфигурации

parse_ini_string

(PHP 5 >= 5.3.0, PHP 7)

parse_ini_string — Разбирает строку конфигурации

Описание

array parse_ini_string ( string $ini [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL ]] )

parse_ini_string() возвращает настройки из строки ini в виде ассоциативного массива.

Структура INI строки такая же, как и в php.ini.

Список параметров

ini

Содержимое разбираемого INI файла.

process_sections

Установив в параметр process_sections TRUE, можно получить многомерный массив, который включает названия секций и настроек. По умолчанию process_sections равен FALSE

scanner_mode

Может принимать следующие значения: INI_SCANNER_NORMAL (по умолчанию) или INI_SCANNER_RAW. Если указано значение INI_SCANNER_RAW, то значения опций не будут обрабатываться.

С версии PHP 5.6.1 также можео задать INI_SCANNER_TYPED. В этом режиме типы boolean, null и integer будут, по возможности, сохраняться. Строковые значения "true", "on" и "yes" будут преобразованы в TRUE. "false", "off", "no" и "none" в FALSE. "null" преобразуется в NULL. Также, все числовые строки будут, по возможности, преобразованы к целым числам.

Возвращаемые значения

В случае успеха, настройки возвращаются в виде ассоциативного массива (array). В случае ошибки, возвращается FALSE.

Примечания

Замечание: Существуют зарезервированные слова, которые нельзя использовать в качестве ключей в ini-файлах. Такими словами являются: null, yes, no, true, false, on, off, none. Значения null, off, no и false преобразуются в "", а on, yes и true преобразуются в "1", только если не используется режим INI_SCANNER_TYPED. Символы ?{}|&~![()^" не должны использоваться в ключах и иметь какой-либо особый смысл в значениях.

Смотрите также

  • parse_ini_file() - Обрабатывает конфигурационный файл


Возвращает информацию о пути к файлу

  • « parse_ini_string
  • pclose »
  • PHP Manual
  • Файловая система
  • Возвращает информацию о пути к файлу

pathinfo

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

pathinfo — Возвращает информацию о пути к файлу

Описание

mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )

pathinfo() возвращает информацию о path в виде ассоциативного массива или строки, в зависимости от options.

Список параметров

path

Анализируемый путь.

options

Если указан, то задает, какой из элементов пути будет возвращен: PATHINFO_DIRNAME, PATHINFO_BASENAME, PATHINFO_EXTENSION и PATHINFO_FILENAME.

Если options не указан, то возвращаются все доступные элементы.

Возвращаемые значения

Если параметр options не передан, то возвращаемый ассоциативный массив (array) будет содержать следующие элементы: dirname, basename, extension (если есть) и filename.

Замечание:

Если path содержит больше одного расширения, то PATHINFO_EXTENSION возвращает только последнее и PATHINFO_FILENAME отрезает только последнее расширение. (смотрите пример ниже).

Замечание:

Если path не содержит расширения, то не будет возвращен элемент extension (см. ниже второй пример).

Замечание:

Если basename параметра path начинается с точки, то все последующие символы интерпретируются как расширение файла(extension) и имя файла filename будет пустым (смотри третий пример).

Если указан параметр options, будет возвращена строка (string), содержащая указанный элемент.

Список изменений

Версия | Описание
5.2.0 | Добавлена константа PATHINFO_FILENAME.

Примеры

Пример #1 Пример использования функции pathinfo()

<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // начиная с PHP 5.2.0
?>

Результат выполнения данного примера:

/www/htdocs/inc
lib.inc.php
php
lib.inc

Пример #2 Пример с pathinfo(), показывающий разницу между null и отсутствием расширения

<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);

$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>

Результатом выполнения данного примера будет что-то подобное:

string(0) ""
Notice:  Undefined index: extension in test.php on line 6

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] =>
)

Примечания

Замечание:

Подробнее о получении информации о текущем пути, можно почитать в разделе "Предопределенные зарезервированные переменные".

Замечание:

pathinfo() учитывает настройки локали, поэтому для корректной обработки пути с многобайтными символами должна быть установлена соответствующая локаль с помощью функции setlocale().

Смотрите также

  • dirname() - Возвращает имя родительского каталога из указанного пути
  • basename() - Возвращает последний компонент имени из указанного пути
  • parse_url() - Разбирает URL и возвращает его компоненты
  • realpath() - Возвращает канонизированный абсолютный путь к файлу


Закрывает файловый указатель

  • « pathinfo
  • popen »
  • PHP Manual
  • Файловая система
  • Закрывает файловый указатель

pclose

(PHP 4, PHP 5, PHP 7)

pclose — Закрывает файловый указатель

Описание

int pclose ( resource $handle )

Закрывает файловый указатель на канал, открытый при помощи popen().

Список параметров

handle

Файловый указатель должен быть действующим и должен быть получен успешным вызовом функции popen().

Возвращаемые значения

Возвращает статус выхода завершающегося процесса. В случае ошибки возвращается -1.

Замечание:

Если PHP собран с опцией --enable-sigchild, возвращаемое значение этой функции не определено.

Примеры

Пример #1 Пример использования pclose()

<?php
$handle = popen('/bin/ls', 'r');
pclose($handle);
?>

Примечания

Замечание: Только для Unix:

pclose() внутренне реализована с помощью системного вызова waitpid(3). Для получения реального кода выхода используйте вместо этого функцию pcntl_wexitstatus().

Смотрите также

  • popen() - Открывает файловый указатель процесса


Открывает файловый указатель процесса

  • « pclose
  • readfile »
  • PHP Manual
  • Файловая система
  • Открывает файловый указатель процесса

popen

(PHP 4, PHP 5, PHP 7)

popen — Открывает файловый указатель процесса

Описание

resource popen ( string $command , string $mode )

Открывает поток к процессу, выполняемую при помощи форка команды, заданной в параметре command.

Список параметров

command

Команда

mode

Режим

Возвращаемые значения

Возвращает файловый указатель, идентичный возвращаемому функцией fopen(), за исключением того, что он односторонний (может быть использован только для чтения или записи) и должен быть закрыт при помощи pclose(). Этот указатель может быть использован с fgets(), fgetss() и fwrite(). Если в качестве режима указано 'r', файловый указатель аналогичен потоку вывода (STDOUT) команды, если же указано 'w', то файловый указатель аналогичен потоку ввода (STDIN) команды.

В случае возникновения ошибки возвращает FALSE.

Примеры

Пример #1 Пример использования функции popen()

<?php
$handle = popen("/bin/ls", "r");
?>

Если команда для выполнения не может быть найдена, будет возвращён корректный ресурс. Это может выглядеть странно, но имеет смысл; это даёт вам возможность получить доступ к любому сообщению об ошибке, которое вернёт оболочка:

Пример #2 popen() example

<?php
error_reporting(E_ALL);

/* Добавляем перенаправление, чтобы прочитать stderr. */
$handle = popen('/path/to/executable 2>&1', 'r');
echo "'$handle'; " . gettype($handle) . "\n";
$read = fread($handle, 2096);
echo $read;
pclose($handle);
?>

Примечания

Замечание:

Если вам нужна двухсторонняя передача (в обе стороны одновременно), используйте proc_open().

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути к исполняемому файлу.

Внимание

В случае работы в безопасном режиме, строка с командой экранируется с помощью escapeshellcmd(). Таким образом echo y | echo x становится echo y \| echo x.

Смотрите также

  • pclose() - Закрывает файловый указатель
  • fopen() - Открывает файл или URL
  • proc_open() - Выполняет команду и открывает указатель на файл для ввода/вывода


Выводит файл

  • « popen
  • readlink »
  • PHP Manual
  • Файловая система
  • Выводит файл

readfile

(PHP 4, PHP 5, PHP 7)

readfile — Выводит файл

Описание

int readfile ( string $filename [, bool $use_include_path = false [, resource $context ]] )

Читает файл и записывает его в буфер вывода.

Список параметров

filename

Имя читаемого файла.

use_include_path

Если вы хотите, что бы использовался поиск файла в include_path, установите этот параметр в TRUE.

context

Ресурс (resource) с контекстом потока.

Возвращаемые значения

Возвращает количество прочитанных из файла байт. В случае возникновения ошибки вернёт FALSE, и (если только функция не была вызвана как @readfile()) выведет сообщение об ошибке.

Примеры

Пример #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, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Смотрите также

  • fpassthru() - Выводит все оставшиеся данные из файлового указателя
  • file() - Читает содержимое файла и помещает его в массив
  • fopen() - Открывает файл или URL
  • include - include
  • require - require
  • virtual() - Выполняет подзапрос Apache
  • file_get_contents() - Читает содержимое файла в строку
  • Поддерживаемые протоколы и обработчики (wrappers)


Возвращает файл, на который указывает символическая ссылка

  • « readfile
  • realpath_cache_get »
  • PHP Manual
  • Файловая система
  • Возвращает файл, на который указывает символическая ссылка

readlink

(PHP 4, PHP 5, PHP 7)

readlink — Возвращает файл, на который указывает символическая ссылка

Описание

string readlink ( string $path )

readlink() делает то же самое, что и функция C readlink.

Список параметров

path

Путь к символической ссылке.

Список изменений

Версия | Описание
5.3.0 | Данная функция теперь доступна на платформах Windows (Vista, Server 2008 и выше).

Возвращаемые значения

Возвращает содержимое пути символической ссылки или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования функции readlink()

<?php

// выведет что-то вроде /boot/vmlinux-2.4.20-xfs
echo readlink('/vmlinuz');

?>

Смотрите также

  • is_link() - Определяет, является ли файл символической ссылкой
  • symlink() - Создаёт символическую ссылку
  • linkinfo() - Возвращает информацию о ссылке


Получает записи из кэша реального пути

  • « readlink
  • realpath_cache_size »
  • PHP Manual
  • Файловая система
  • Получает записи из кэша реального пути

realpath_cache_get

(PHP 5 >= 5.3.2, PHP 7)

realpath_cache_get — Получает записи из кэша реального пути

Описание

array realpath_cache_get ( void )

Получает содержимое кэша реального пути.

Возвращаемые значения

Возвращает массив записей из кэша реального пути. Ключи являются записями реального пути, а значения являются массивами данных, содержащих вычисленный путь, время жизни кэша и других данных, хранящихся в кэше.

Примеры

Пример #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_cache_get
  • realpath »
  • PHP Manual
  • Файловая система
  • Получает размер кэша реального пути

realpath_cache_size

(PHP 5 >= 5.3.2, PHP 7)

realpath_cache_size — Получает размер кэша реального пути

Описание

int realpath_cache_size ( void )

Получает объем памяти, используемой при кэшировании реального пути.

Возвращаемые значения

Возвращает объем использованной памяти для кэширования реального пути.

Примеры

Пример #1 Пример использования realpath_cache_size()

<?php
var_dump(realpath_cache_size());
?>

Результатом выполнения данного примера будет что-то подобное:

int(412)

Смотрите также

  • realpath_cache_get() - Получает записи из кэша реального пути
  • Конфигурационная опция realpath_cache_size


Возвращает канонизированный абсолютный путь к файлу

  • « realpath_cache_size
  • rename »
  • PHP Manual
  • Файловая система
  • Возвращает канонизированный абсолютный путь к файлу

realpath

(PHP 4, PHP 5, PHP 7)

realpath — Возвращает канонизированный абсолютный путь к файлу

Описание

string realpath ( string $path )

realpath() раскрывает все символические ссылки, переходы типа '/./', '/../' и лишние символы '/' в пути path, возвращая канонизированный абсолютный путь к файлу.

Список параметров

path

Проверяемый путь.

Замечание:

Несмотря на то, что путь должен быть указан, переданное значение может быть пустой строкой или NULL. В этих случаях оно будет интерпретировано в качестве текущей директории.

Возвращаемые значения

В случае успеха возвращает канонизированный абсолютный путь. Результирующий путь не содержит символических ссылок и компонентов наподобие '/./' или '/../'. Разделители \ и / в конце пути так же удаляются.

realpath() возвращает FALSE при неудаче, например если файл не существует.

Замечание:

Запускаемый скрипт должен иметь права запуска на всех директориях в проверяемой иерархии, иначе realpath() вернет FALSE.

Замечание:

Для регистро-независимых файловых систем, realpath() может нормализовать или не нормализовать регистр символов.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Список изменений

Версия | Описание
5.3.0 | До этого релиза realpath() не терпела неудачу на системах *BSD в случае отсутствия лишь последнего компонента пути path. Теперь realpath() не срабатывает также и в этом случае.
5.2.1 | До этой версии, realpath() возвращает FALSE если path является пустой строкой или NULL.

Примеры

Пример #1 Пример использования функции realpath()

<?php
chdir('/var/www/');
echo realpath('./../../etc/passwd') . PHP_EOL;

echo realpath('/tmp/') . PHP_EOL;
?>

Результат выполнения данного примера:

/etc/passwd
/tmp

Пример #2 realpath() на Windows

На Windows, realpath() изменит пути стиля Unix на стиль Windows.

<?php
echo realpath('/windows/system32');

echo realpath('C:\Program Files\\');
?>

Результат выполнения данного примера:

C:\WINDOWS\System32
C:\Program Files

Смотрите также

  • basename() - Возвращает последний компонент имени из указанного пути
  • dirname() - Возвращает имя родительского каталога из указанного пути
  • pathinfo() - Возвращает информацию о пути к файлу


Переименовывает файл или директорию

  • « realpath
  • rewind »
  • PHP Manual
  • Файловая система
  • Переименовывает файл или директорию

rename

(PHP 4, PHP 5, PHP 7)

rename — Переименовывает файл или директорию

Описание

bool rename ( string $oldname , string $newname [, resource $context ] )

Пытается переименовать oldname в newname, перенося файл между директориями, если необходимо. Если newname существует, то он будет перезаписан.

Список параметров

oldname

Замечание:

Старое имя. Обёртка, используемая в oldname должна совпадать с обёрткой, используемой в newname.

newname

Новое имя.

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.1 | rename() теперь может переименовывать файлы между дисками в Windows.
5.0.0 | rename() теперь также может быть использована с некоторыми обёртками URL. Обратитесь к Поддерживаемые протоколы и обработчики (wrappers) для получения списка обёрток, которые поддерживают rename().
4.3.3 | rename() теперь может перемещать/переименовать файлы, находящиеся на другом разделе в ОС, основанных на *nix, подразумевая, что предоставлены соответствующие права на эти файлы. Могут быть сгенерировано предупреждение, если результирующая файловая система не позволяет совершать на файлах системные вызовы chown() или chmod() — например, если результирующей файловой системой является FAT.

Примеры

Пример #1 Пример использования функции rename()

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

Смотрите также

  • copy() - Копирует файл
  • unlink() - Удаляет файл
  • move_uploaded_file() - Перемещает загруженный файл в новое место


Сбрасывает курсор у файлового указателя

  • « rename
  • rmdir »
  • PHP Manual
  • Файловая система
  • Сбрасывает курсор у файлового указателя

rewind

(PHP 4, PHP 5, PHP 7)

rewind — Сбрасывает курсор у файлового указателя

Описание

bool rewind ( resource $handle )

Сбрасывает курсор файлового указателя handle на начало файлового потока.

Замечание:

Если вы открыли файл в режиме "записи в конец" ("a" или "a+"), любые данные, которые вы записываете, будут дописаны в конец файла, независимо от положения курсора.

Список параметров

handle

Файловый указатель должен быть доступным и ссылаться на файл, успешно открытый при помощи fopen().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример перезаписи rewind()

<?php
$handle = fopen('output.txt', 'r+');

fwrite($handle, 'Ужасно длинное предложение.');
rewind($handle);
fwrite($handle, 'Оп');
rewind($handle);

echo fread($handle, filesize('output.txt'));

fclose($handle);
?>

Результатом выполнения данного примера будет что-то подобное:

Опасно длинное предложение.

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fseek() - Устанавливает смещение в файловом указателе
  • ftell() - Сообщает текущую позицию чтения/записи файла
  • fwrite() - Бинарно-безопасная запись в файл


Удаляет директорию

  • « rewind
  • set_file_buffer »
  • PHP Manual
  • Файловая система
  • Удаляет директорию

rmdir

(PHP 4, PHP 5, PHP 7)

rmdir — Удаляет директорию

Описание

bool rmdir ( string $dirname [, resource $context ] )

Пытается удалить директорию с именем dirname. Директория должна быть пустой и должны иметься необходимые для этого права. В случае ошибки будет сгенерирована ошибка уровня E_WARNING.

Список параметров

dirname

Путь к директории.

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.0.0 | Начиная с версии PHP 5.0.0, функция rmdir() также может быть использована с некоторыми обёртками URL. Обратитесь к Поддерживаемые протоколы и обработчики (wrappers) для получения списка обёрток, которые поддерживают rmdir().

Примеры

Пример #1 Пример использования rmdir()

<?php
if (!is_dir('examples')) {
    mkdir('examples');
}

rmdir('examples');
?>

Примечания

Замечание: Когда опция safe mode включена, PHP проверяет, имеет ли каталог, с которым вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • mkdir() - Создаёт директорию
  • unlink() - Удаляет файл


Псевдоним stream_set_write_buffer

  • « rmdir
  • stat »
  • PHP Manual
  • Файловая система
  • Псевдоним stream_set_write_buffer

set_file_buffer

(PHP 4, PHP 5, PHP 7)

set_file_buffer — Псевдоним stream_set_write_buffer()

Описание

Эта функция является псевдонимом: stream_set_write_buffer().


Возвращает информацию о файле

  • « set_file_buffer
  • symlink »
  • PHP Manual
  • Файловая система
  • Возвращает информацию о файле

stat

(PHP 4, PHP 5, PHP 7)

stat — Возвращает информацию о файле

Описание

array stat ( string $filename )

Собирает статистическую информацию о файле filename. Если filename является символической ссылкой, информация собирается о самом файле, а не ссылке.

Функция lstat() идентична функции stat() за исключением того, что в данном случае она вернёт информацию о самой символической ссылке.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Формат результата работы функций stat() и fstat()
Числовой | Ассоциативный | Описание
0 | dev | номер устройства
1 | ino | номер inode *
2 | mode | режим защиты inode
3 | nlink | количество ссылок
4 | uid | userid владельца *
5 | gid | groupid владельца *
6 | rdev | тип устройства, если устройство inode
7 | size | размер в байтах
8 | atime | время последнего доступа (временная метка Unix)
9 | mtime | время последней модификации (временная метка Unix)
10 | ctime | время последнего изменения inode (временная метка Unix)
11 | blksize | размер блока ввода-вывода файловой системы **
12 | blocks | количество используемых 512-байтных блоков **
* В Windows это всегда будет 0.

** Доступен только на системах, поддерживающих тип st_blksize - другие системы (например, Windows) вернут -1.

В случае ошибки stat() возвращает FALSE.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Ошибки

В случае ошибки будет сгенерирована ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования stat()

<?php
/* Получаем статистику файла */
$stat = stat('C:\php\php.exe');

/*
 * Выводим последнее время доступа к файлу, это тоже самое, что и
 * вызов fileatime()
 */
echo 'Последнее время доступа: ' . $stat['atime'];

/*
 * Выводим время изменения файла, это тоже самое, что и
 * вызов filemtime()
 */
echo 'Время изменения: ' . $stat['mtime'];

/* Выводим номер устройства */
echo 'Номер устройства: ' . $stat['dev'];
?>

Пример #2 Использование информации из stat() вместе с touch()

<?php
/* Получаем статистику файла */
$stat = stat('C:\php\php.exe');

/* Удалось получить эту статистику? */
if (!$stat) {
    echo 'вызов stat() не удался...';
} else {
    /*
     * Мы хотим увеличить время последнего доступа к файлу
     * на 1 неделю вперед.
     */
    $atime = $stat['atime'] + 604800;

    /* Касаемся файла */
    if (!touch('some_file.txt', time(), $atime)) {
        echo 'Не удалось коснуться файла...';
    } else {
        echo 'touch() выполнился успешно...';
    }
}
?>

Примечания

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • lstat() - Возвращает информацию о файле или символической ссылке
  • fstat() - Получает информацию о файле используя открытый файловый указатель
  • filemtime() - Возвращает время последнего изменения файла
  • filegroup() - Получает идентификатор группы файла


Создаёт символическую ссылку

  • « stat
  • tempnam »
  • PHP Manual
  • Файловая система
  • Создаёт символическую ссылку

symlink

(PHP 4, PHP 5, PHP 7)

symlink — Создаёт символическую ссылку

Описание

bool symlink ( string $target , string $link )

symlink() создаёт символическую ссылку на существующий файл target с именем link.

Список параметров

target

Цель ссылки.

link

Имя ссылки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь доступна на Windows платформах (Vista, Server 2008 и выше).

Примеры

Пример #1 Создание символической ссылки

<?php
$target = 'uploads.php';
$link = 'uploads';
symlink($target, $link);

echo readlink($link);
?>

Примечания

Замечание: Пользователи Windows должны учитывать, что эта функция будет работать только на Windows Vista/Windows Server 2008 и новее. Более ранние версии Windows не поддерживают символические ссылки.

Смотрите также

  • link() - Создаёт жёсткую ссылку
  • readlink() - Возвращает файл, на который указывает символическая ссылка
  • linkinfo() - Возвращает информацию о ссылке


Создаёт файл с уникальным именем

  • « symlink
  • tmpfile »
  • PHP Manual
  • Файловая система
  • Создаёт файл с уникальным именем

tempnam

(PHP 4, PHP 5, PHP 7)

tempnam — Создаёт файл с уникальным именем

Описание

string tempnam ( string $dir , string $prefix )

Создаёт файл с уникальным именем в определённой директории с правами 0600. Если эта директория не существует или недоступна для записи, tempnam() может создать файл во временной директории системы и вернуть полный путь к этому файлу, включая его имя.

Список параметров

dir

Директория, где будет создан временный файл.

prefix

Префикс имени генерируемого файла.

Замечание: Windows использует только первые три символа из указанного префикса.

Возвращаемые значения

Возвращает имя нового временного файла (вместе с путем) или FALSE в случае неудачи.

Список изменений

Версия | Описание
4.0.3 | Поведение функции изменилось начиная с версии PHP 4.0.3. Временный файл также создаётся чтобы избежать состояния гонки, когда файл может появится в файловой системе между моментом генерации строки и моментом, когда скрипт начнёт его создавать. Обратите внимание, что вы должны удалить файл вручную, если он больше вам не нужен - этот процесс не автоматизирован.

Примеры

Пример #1 Пример использования функции tempnam()

<?php
$tmpfname = tempnam("/tmp", "FOO");

$handle = fopen($tmpfname, "w");
fwrite($handle, "записываем в во временный файл");
fclose($handle);

// здесь мы чего-нибудь делаем

unlink($tmpfname);
?>

Примечания

Замечание: Если PHP не может создать файл в указанной директории dir, он возвращается к директории по умолчанию вашей системы. На NTFS это также происходит в случае если указанная директория dir содержит более 65534 файлов.

Смотрите также

  • tmpfile() - Создаёт временный файл
  • sys_get_temp_dir() - Возвращает путь к директории временных файлов
  • unlink() - Удаляет файл


Создаёт временный файл

  • « tempnam
  • touch »
  • PHP Manual
  • Файловая система
  • Создаёт временный файл

tmpfile

(PHP 4, PHP 5, PHP 7)

tmpfile — Создаёт временный файл

Описание

resource tmpfile ( void )

Создаёт временный файл с уникальным именем, открывая его в режиме чтения и записи (w+), и возвращает файловый указатель.

Этот файл автоматически удаляется после закрытия (например вызовом функции fclose(), или если не осталось ни одной ссылки на указатель файла, возвращаемый tmpfile()), или при завершении работы скрипта.

Для дополнительной информации, обратитесь к документации вашей системы по функции tmpfile(3), а также к заголовочному файлу stdio.h.

Возвращаемые значения

Возвращает дескриптор файла, аналогичный тому, который возвращает функция fopen() для новых файлов или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции tmpfile()

<?php
$temp = tmpfile();
fwrite($temp, "записываем во временный файл");
fseek($temp, 0);
echo fread($temp, 1024);
fclose($temp); // происходит удаление файла
?>

Результат выполнения данного примера:

записываем во временный файл

Смотрите также

  • tempnam() - Создаёт файл с уникальным именем
  • sys_get_temp_dir() - Возвращает путь к директории временных файлов


Устанавливает время доступа и модификации файла

  • « tmpfile
  • umask »
  • PHP Manual
  • Файловая система
  • Устанавливает время доступа и модификации файла

touch

(PHP 4, PHP 5, PHP 7)

touch — Устанавливает время доступа и модификации файла

Описание

bool touch ( string $filename [, int $time = time() [, int $atime ]] )

Пытается установить время доступа и модификации файла с именем filename в значение time. Обратите внимание, что время доступа изменяется всегда, независимо от количества аргументов.

Если файл не существует, он будет создан.

Список параметров

filename

Имя касаемого файла.

time

Время касания. Если аргумент time не указан, используется текущее время.

atime

Если передан, время доступа указанного файла будет установлено в значение atime. В обратном случае оно будет установлено в значение параметра time. Если же ни один из этих параметров не был указан, то будет использовано текущее системное время.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Стало возможным изменять время модификации директории в Windows.

Примеры

Пример #1 Пример использования функции touch()

<?php
if (touch($filename)) {
    echo "Время модификации файла $filename было изменено на текущее";
} else {
    echo "Простите, не удалось изменить время модификации файла ' . $filename;
}
?>

Пример #2 Использование touch() с параметром time

<?php
// Это время касания, установим его на час назад.
$time = time() - 3600;

// Трогаем файл
if (!touch('some_file.txt', $time)) {
    echo 'Упс, что-то пошло не так...';
} else {
    echo 'Касание файла прошло успешно';
}
?>

Примечания

Замечание:

Учтите, что обработка времени может отличаться в различных файловых системах.

Внимание

До версии PHP 5.3.0 было невозможно менять время модификации директории под Windows с помощью этой функции.


Изменяет текущую umask

  • « touch
  • unlink »
  • PHP Manual
  • Файловая система
  • Изменяет текущую umask

umask

(PHP 4, PHP 5, PHP 7)

umask — Изменяет текущую umask

Описание

int umask ([ int $mask ] )

umask() устанавливает PHP umask в значение mask & 0777 и возвращает старую umask. Если PHP используется в качестве серверного модуля, umask будет восстанавливаться после окончания каждого запроса.

Список параметров

mask

Новая umask.

Возвращаемые значения

Вызов umask() без аргументов вернёт текущую umask, иначе будет возвращена старая umask.

Примеры

Пример #1 Пример использования umask()

<?php
$old = umask(0);
chmod("/path/some_dir/some_file.txt", 0755);
umask($old);

// Checking
if ($old != umask()) {
    die('При восстановлении umask произошла ошибка');
}
?>

Примечания

Замечание:

Избегайте использования этой функции в многопоточных веб-серверах. Лучше изменить права файла с помощью функции chmod() после его создания. Использование umask() может привести к неожиданному поведению одновременно работающих скриптов и самого веб-сервера, т.к. они все будут использовать одну и ту же umask.


Удаляет файл

  • « umask
  • Inotify »
  • PHP Manual
  • Файловая система
  • Удаляет файл

unlink

(PHP 4, PHP 5, PHP 7)

unlink — Удаляет файл

Описание

bool unlink ( string $filename [, resource $context ] )

Удаляет файл filename. Функция похожа на функцию unlink() Unix C. В случае ошибки будет вызвана ошибка уровня E_WARNING.

Список параметров

filename

Путь к файлу.

context

Замечание: Поддержка контекста была добавлена в PHP 5.0.0. Для описания контекстов смотрите раздел Потоки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.0.0 | Начиная с версии PHP 5.0.0, функция unlink() также может быть использована с некоторыми обёртками URL. Обратитесь к Поддерживаемые протоколы и обработчики (wrappers) для получения списка обёрток, которые поддерживают unlink().

Примеры

Пример #1 Пример простого использования unlink()

<?php
$fh = fopen('test.html', 'a');
fwrite($fh, '<h1>Hello world!</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, может быть найдена здесь: » http://pecl.php.net/package/inotify.


  • « Установка и настройка
  • Типы ресурсов »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение определяет потоковый ресурс, возвращаемый inotify_init().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы Inotify используются с функцией inotify_add_watch() и/или возвращаются inotify_read()
IN_ACCESS (integer)
К файлу произведен доступ (чтение) (*)
IN_MODIFY (integer)
Файл был изменен (*)
IN_ATTRIB (integer)
Изменены метаданные (такие как permissions, mtime, и т.д.) (*)
IN_CLOSE_WRITE (integer)
Файл, открытый для записи, был закрыт (*)
IN_CLOSE_NOWRITE (integer)
Файл, недоступный для записи, был закрыт (*)
IN_OPEN (integer)
Файл был открыт (*)
IN_MOVED_TO (integer)
Файл перемещен в указанную директорию (*)
IN_MOVED_FROM (integer)
Файл перемещен из указанной директории (*)
IN_CREATE (integer)
Файл или директория созданы в указанной директории (*)
IN_DELETE (integer)
Файл или директория удалена из указанной директории (*)
IN_DELETE_SELF (integer)
Указанный файл или директория удалены
IN_MOVE_SELF (integer)
Указанный файл или директория перемещены
IN_CLOSE (integer)
Эквивалентно IN_CLOSE_WRITE | IN_CLOSE_NOWRITE
IN_MOVE (integer)
Эквивалентно IN_MOVED_FROM | IN_MOVED_TO
IN_ALL_EVENTS (integer)
Битовая маска указанных выше констант
IN_UNMOUNT (integer)
Файловая система, содержащая файл была размонтирована
IN_Q_OVERFLOW (integer)
Очередь событий переполнена (wd(дескриптор наблюдения) равно -1 для этого события)
IN_IGNORED (integer)
Наблюдение было отключено вручную (поясняется inotify_rm_watch()) либо из-за отсутствия файла либо из-за размонтирования файловой системы.
IN_ISDIR (integer)
Объектом события является директория
IN_ONLYDIR (integer)
Использовать только указанную директорию в качестве конечного пути (Начиная с Linux 2.6.15)
IN_DONT_FOLLOW (integer)
Не разыменовывать путь, если это символическая ссылка (Начиная с Linux 2.6.15)
IN_MASK_ADD (integer)
Добавить события в маску событий для этого пути, если она уже существует (вместо замещения маски).
IN_ONESHOT (integer)
Отслеживать путь для одного события, затем удалить его из списка наблюдения.

Замечание: События, помеченные звездочкой (*), могут происходить с файлами в наблюдаемых директориях.


Функции Inotify

Содержание

  • inotify_add_watch — Добавить наблюдателя для экземпляра inotify
  • inotify_init — Инициализирует экземпляр inotify
  • inotify_queue_len — Возвращает число ожидающих событий в очереди
  • inotify_read — Читает ожидающие сообщения из очереди
  • inotify_rm_watch — Удалить наблюдателя


Добавить наблюдателя для экземпляра inotify

  • « Функции Inotify
  • inotify_init »
  • PHP Manual
  • Функции Inotify
  • Добавить наблюдателя для экземпляра inotify

inotify_add_watch

(PECL inotify >= 0.1.2)

inotify_add_watch — Добавить наблюдателя для экземпляра inotify

Описание

int inotify_add_watch ( resource $inotify_instance , string $pathname , int $mask )

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

Описание

resource inotify_init ( void )

Инициализирует экземпляр 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 — Возвращает число ожидающих событий в очереди

Описание

int inotify_queue_len ( resource $inotify_instance )

Функция позволяет понять, заблокирует ли inotify_read() выполнение или нет. Если возвращенное число больше нуля, значит в очереди есть сообщения и inotify_read() не звблокирует выполнение скрипта.

Список параметров

inotify_instance

Ресурс, возвращаемый inotify_init()

Возвращаемые значения

Возвращает число ожидающих сообщений в очереди.

Смотрите также

  • inotify_init() - Инициализирует экземпляр inotify
  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
  • stream_set_blocking() - Устанавливает блокирующий/неблокирующий режим на потоке


Читает ожидающие сообщения из очереди

  • « inotify_queue_len
  • inotify_rm_watch »
  • PHP Manual
  • Функции Inotify
  • Читает ожидающие сообщения из очереди

inotify_read

(PECL inotify >= 0.1.2)

inotify_read — Читает ожидающие сообщения из очереди

Описание

array inotify_read ( resource $inotify_instance )

Читает ожидающие сообщения из очереди.

Список параметров

inotify_instance

Ресурс, возвращаемый inotify_init()

Возвращаемые значения

Массив событий inotify или FALSE, если событий в очереди нет и inotify_instance не блокирующий. Каждый элемент массива состоит из:

  • wd - дескриптор наблюдателя, возвращенный inotify_add_watch()
  • mask - битовая маска событий
  • cookie - уникальный идентификатор для объединения связанных событий (например IN_MOVE_FROM и IN_MOVE_TO)
  • name - имя файла (например если в наблюдаемой директории изменился файл)

Смотрите также

  • inotify_init() - Инициализирует экземпляр inotify
  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
  • stream_set_blocking() - Устанавливает блокирующий/неблокирующий режим на потоке
  • inotify_queue_len() - Возвращает число ожидающих событий в очереди


Удалить наблюдателя

  • « inotify_read
  • Mimetype »
  • PHP Manual
  • Функции Inotify
  • Удалить наблюдателя

inotify_rm_watch

(PECL inotify >= 0.1.2)

inotify_rm_watch — Удалить наблюдателя

Описание

bool inotify_rm_watch ( resource $inotify_instance , int $watch_descriptor )

inotify_rm_watch() удаляет наблюдателя watch_descriptor из экземпляра inotify inotify_instance.

Список параметров

inotify_instance

Ресурс, возвращаемый inotify_init()

watch_descriptor

Наблюдатель для удаления

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • inotify_init() - Инициализирует экземпляр inotify


Mimetype

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы


Введение

Внимание

This extension has been deprecated as the PECL extension Fileinfo provides the same functionality (and more) in a much cleaner way.

The functions in this module try to guess the content type and encoding of a file by looking for certain magic byte sequences at specific positions within the file. While this is not a bullet proof approach the heuristics used do a very good job.

This extension is derived from Apache mod_mime_magic, which is itself based on the file command maintained by Ian F. Darwin. See the source code for further historic and copyright information.


Установка

Внимание

Mimetype extensions has been removed from PHP 5.3.0 in favor of Fileinfo.

You must compile PHP with the configure switch --with-mime-magic to get support for mime-type functions. The extension needs a copy of the simplified magic file that is distributed with the Apache httpd.

Замечание:

This extension is not capable of handling the fully decorated magic file that generally comes with standard Linux distro's and is supposed to be used with recent versions of file command.

Замечание: Note to Win32 Users

In order to use this module on a Windows environment, you must set the path to the bundled magic.mime file in your php.ini.

Пример #1 Setting the path to magic.mime

mime_magic.magicfile = "$PHP_INSTALL_DIR\magic.mime"

Remember to substitute the $PHP_INSTALL_DIR for your actual path to PHP in the above example. e.g. c:\php


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Mimetype configuration options
Имя | По умолчанию | Меняемо | Список изменений
mime_magic.debug | "0" | PHP_INI_SYSTEM | Available since PHP 5.0.0.
mime_magic.magicfile | "/path/to/php/magic.mime" | PHP_INI_SYSTEM | Available since PHP 4.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mime_magic.debug bool

Enable/disable debugging.

mime_magic.magicfile string

The path to the magic.mime file.


  • « Типы ресурсов
  • Proctitle »
  • PHP Manual
  • Mimetype
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Proctitle

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Proctitle Функции
    • setproctitle — Set the process title
    • setthreadtitle — Set the thread title


Введение

This extension allows changing the current process', and thread, name on Linux and *BSD systems. This is useful when using pcntl_fork() to identify running processes in process list


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Nothing special.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/proctitle.


  • « Типы ресурсов
  • Proctitle Функции »
  • PHP Manual
  • Proctitle
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Proctitle Функции

Содержание

  • setproctitle — Set the process title
  • setthreadtitle — Set the thread title


Set the process title

  • « Proctitle Функции
  • setthreadtitle »
  • PHP Manual
  • Proctitle Функции
  • Set the process title

setproctitle

(PECL proctitle >= 0.1.0)

setproctitle — Set the process title

Описание

void setproctitle ( string $title )

Sets the process title of the current process.

Список параметров

title

The title to use as the process title.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 setproctitle() example

Running the example below will change the process title (visible with ps a for example).

<?php
setproctitle("myscript");
?>

Результатом выполнения данного примера будет что-то подобное:

$ ps a
  PID TTY      STAT   TIME COMMAND
 1168 pts/3    S      0:00 myscript

Смотрите также

  • cli_set_process_title() - Sets the process title
  • pcntl_fork() - Forks the currently running process
  • setthreadtitle() - Set the thread title


Set the thread title

  • « setproctitle
  • xattr »
  • PHP Manual
  • Proctitle Функции
  • Set the thread title

setthreadtitle

(PECL proctitle >= 0.1.2)

setthreadtitle — Set the thread title

Описание

bool setthreadtitle ( string $title )

Sets the thread title.

Список параметров

title

The title to use as the thread title.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 setthreadtitle() example

Running the example below will change the thread title (visible with ps c for example).

<?php
setthreadtitle("myscript");
?>

Результатом выполнения данного примера будет что-то подобное:

$ ps c
  PID TTY      STAT   TIME COMMAND
 1178 pts/3    S      0:00 myscript

Смотрите также

  • pcntl_fork() - Forks the currently running process
  • setproctitle() - Set the process title


xattr

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • xattr Функции
    • xattr_get — Получение расширенных атрибутов файла
    • xattr_list — Просмотр списка расширенных атрибутов файла
    • xattr_remove — Удаление расширенных атрибутов файла
    • xattr_set — Установка расширенных атрибутов файла
    • xattr_supported — Проверка поддержки расширенных атрибутов


Введение

Расширение xattr позволяет производить манипуляции с расширенными атрибутами в файловой системе.


Требования

Для использования xattr должна быть установлена библиотека libattr. Она доступна здесь » http://oss.sgi.com/projects/xfs/.

Замечание:

Эти функции работают только с файловыми системами, поддерживающими расширенные атрибуты, и смонтированными в текущий момент. Вот некоторые файловые системы, которые поддерживают расширенные атрибуты: ext2, ext3, reiserfs, jfs и xfs.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/xattr.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

XATTR_ROOT (integer)
Установить атрибут в корневом (доверенном) пространстве имён. Требует привилегий суперпользователя.
XATTR_DONTFOLLOW (integer)
Не разыменовывать символические ссылки, работать с самими ссылками.
XATTR_CREATE (integer)
Функция завершится ошибкой, если расширенный атрибут уже существует.
XATTR_REPLACE (integer)
Функция завершится ошибкой, если расширенный атрибут отсутствует.


xattr Функции

Содержание

  • xattr_get — Получение расширенных атрибутов файла
  • xattr_list — Просмотр списка расширенных атрибутов файла
  • xattr_remove — Удаление расширенных атрибутов файла
  • xattr_set — Установка расширенных атрибутов файла
  • xattr_supported — Проверка поддержки расширенных атрибутов


Получение расширенных атрибутов файла

  • « xattr Функции
  • xattr_list »
  • PHP Manual
  • xattr Функции
  • Получение расширенных атрибутов файла

xattr_get

(PECL xattr >= 0.9.0)

xattr_get — Получение расширенных атрибутов файла

Описание

string xattr_get ( string $filename , string $name [, int $flags = 0 ] )

Эта функция возвращает значение расширенного атрибута файла.

Расширенные атрибуты имеют два различных пространства имен: пользовательское и корневое (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 — Просмотр списка расширенных атрибутов файла

Описание

array xattr_list ( string $filename [, int $flags = 0 ] )

Эта функция возвращает список имён расширенных атрибутов файла.

Расширенные атрибуты имеют два различных пространства имен: пользовательское и корневое (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 — Удаление расширенных атрибутов файла

Описание

bool xattr_remove ( string $filename , string $name [, int $flags = 0 ] )

Эта функция удаляет расширенный атрибут файла.

Расширенные атрибуты имеют два различных пространства имен: пользовательское и корневое (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 — Установка расширенных атрибутов файла

Описание

bool xattr_set ( string $filename , string $name , string $value [, int $flags = 0 ] )

Эта функция устанавливает расширенный атрибут файла.

Расширенные атрибуты имеют два различных пространства имен: пользовательское и корневое (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 — Проверка поддержки расширенных атрибутов

Описание

bool xattr_supported ( string $filename [, int $flags = 0 ] )

Эта функция проверяет поддерживает ли файловая система, содержащая файл, расширенные атрибуты. Требуется право на чтение файла.

Список параметров

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 — Read a size of file created by applying a binary diff
    • xdiff_file_bdiff — Make binary diff of two files
    • xdiff_file_bpatch — Patch a file with a binary diff
    • xdiff_file_diff_binary — Alias of xdiff_file_bdiff
    • xdiff_file_diff — Make unified diff of two files
    • xdiff_file_merge3 — Merge 3 files into one
    • xdiff_file_patch_binary — Alias of xdiff_file_bpatch
    • xdiff_file_patch — Patch a file with an unified diff
    • xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
    • xdiff_string_bdiff_size — Read a size of file created by applying a binary diff
    • xdiff_string_bdiff — Make binary diff of two strings
    • xdiff_string_bpatch — Patch a string with a binary diff
    • xdiff_string_diff_binary — Alias of xdiff_string_bdiff
    • xdiff_string_diff — Make unified diff of two strings
    • xdiff_string_merge3 — Merge 3 strings into one
    • xdiff_string_patch_binary — Alias of xdiff_string_bpatch
    • xdiff_string_patch — Patch a string with an unified diff
    • xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Введение

xdiff extension enables you to create and apply patch files containing differences between different revisions of files.

This extension supports two modes of operation - on strings and on files, as well as two different patch formats - unified and binary. Unified patches are excellent for text files as they are human-readable and easy to review. For binary files like archives or images, binary patches will be adequate choice as they are binary safe and handle non-printable characters well.

Starting from version 1.5.0 there are two different sets of functions for generating binary patches. New functions - xdiff_string_rabdiff() and xdiff_file_rabdiff() generate output compatible with older functions but are typically faster and generate smaller results. For more details about methods of generating binary patches and differences between them, please check » libxdiff website.

This extension uses libxdiff to implement these functions. Please see » http://www.xmailserver.org/xdiff-lib.html for more information.


Требования

Для использования расширения xdiff, у вас должна быть установлена libxdiff, доступная на домашней странице libxdiff » http://www.xmailserver.org/xdiff-lib.html.

Замечание:

Вам будет необходима версия libxdiff не ниже 0.7 для того, чтобы данные функции были осведомлены о memory_limit.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/xdiff.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

XDIFF_PATCH_NORMAL (integer)
This flag indicates that xdiff_string_patch() and xdiff_file_patch() functions should create result by applying patch to original content thus creating newer version of file. This is the default mode of operation.
XDIFF_PATCH_REVERSE (integer)
This flag indicated that xdiff_string_patch() and xdiff_file_patch() functions should create result by reversing patch changed from newer content thus creating original version.


xdiff Функции

Содержание

  • xdiff_file_bdiff_size — Read a size of file created by applying a binary diff
  • xdiff_file_bdiff — Make binary diff of two files
  • xdiff_file_bpatch — Patch a file with a binary diff
  • xdiff_file_diff_binary — Alias of xdiff_file_bdiff
  • xdiff_file_diff — Make unified diff of two files
  • xdiff_file_merge3 — Merge 3 files into one
  • xdiff_file_patch_binary — Alias of xdiff_file_bpatch
  • xdiff_file_patch — Patch a file with an unified diff
  • xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
  • xdiff_string_bdiff_size — Read a size of file created by applying a binary diff
  • xdiff_string_bdiff — Make binary diff of two strings
  • xdiff_string_bpatch — Patch a string with a binary diff
  • xdiff_string_diff_binary — Alias of xdiff_string_bdiff
  • xdiff_string_diff — Make unified diff of two strings
  • xdiff_string_merge3 — Merge 3 strings into one
  • xdiff_string_patch_binary — Alias of xdiff_string_bpatch
  • xdiff_string_patch — Patch a string with an unified diff
  • xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Read a size of file created by applying a binary diff

  • « xdiff Функции
  • xdiff_file_bdiff »
  • PHP Manual
  • xdiff Функции
  • Read a size of file created by applying a binary diff

xdiff_file_bdiff_size

(PECL xdiff >= 1.5.0)

xdiff_file_bdiff_size — Read a size of file created by applying a binary diff

Описание

int xdiff_file_bdiff_size ( string $file )

Returns a size of a result file that would be created after applying binary patch from file file to the original file.

Список параметров

file

The path to the binary patch created by xdiff_string_bdiff() or xdiff_string_rabdiff() function.

Возвращаемые значения

Returns the size of file that would be created.

Примеры

Пример #1 xdiff_file_bdiff_size() example

The following code applies reads a size of file that would be created after applying a binary diff.

<?php
$length = xdiff_string_bdiff_size('file.bdiff');
echo "Resulting file will be $length bytes long";
?>

Смотрите также

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_rabdiff() - Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm
  • xdiff_file_bpatch() - Patch a file with a binary diff


Make binary diff of two files

  • « xdiff_file_bdiff_size
  • xdiff_file_bpatch »
  • PHP Manual
  • xdiff Функции
  • Make binary diff of two files

xdiff_file_bdiff

(PECL xdiff >= 1.5.0)

xdiff_file_bdiff — Make binary diff of two files

Описание

bool xdiff_file_bdiff ( string $old_file , string $new_file , string $dest )

Makes a binary diff of two files and stores the result in a patch file. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch()/xdiff_string_bpatch().

Список параметров

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 xdiff_file_bdiff() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_bdiff($old_version, $new_version, 'my_script.bdiff');
?>

Примечания

Замечание:

Both files will be loaded into memory so ensure that your memory_limit is set high enough.

Смотрите также

  • xdiff_file_bpatch() - Patch a file with a binary diff


Patch a file with a binary diff

  • « xdiff_file_bdiff
  • xdiff_file_diff_binary »
  • PHP Manual
  • xdiff Функции
  • Patch a file with a binary diff

xdiff_file_bpatch

(PECL xdiff >= 1.5.0)

xdiff_file_bpatch — Patch a file with a binary diff

Описание

bool xdiff_file_bpatch ( string $file , string $patch , string $dest )

Patches a file with a binary patch and stores the result in a file dest. This function accepts patches created both via xdiff_file_bdiff() and xdiff_file_rabdiff() functions or their string counterparts.

Список параметров

file

The original file.

patch

The binary patch file.

dest

Path of the resulting file.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 xdiff_file_bpatch() example

The following code applies binary diff to a file.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_bpatch($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
   echo "File patched";
} else {
   echo "File couldn't be patched";
}

?>

Примечания

Замечание:

Both files (file and patch) will be loaded into memory so ensure that your memory_limit is set high enough.

Смотрите также

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_rabdiff() - Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm


Alias of xdiff_file_bdiff

  • « xdiff_file_bpatch
  • xdiff_file_diff »
  • PHP Manual
  • xdiff Функции
  • Alias of xdiff_file_bdiff

xdiff_file_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_file_diff_binary — Alias of xdiff_file_bdiff

Описание

bool xdiff_file_diff_binary ( string $old_file , string $new_file , string $dest )

Makes a binary diff of two files and stores the result in a patch file. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch().

Starting with version 1.5.0 this function is an alias of xdiff_file_bdiff().

Список параметров

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 xdiff_file_diff_binary() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_diff_binary($old_version, $new_version, 'my_script.bdiff');
?>

Примечания

Замечание:

Both files will be loaded into memory so ensure that your memory_limit is set high enough.

Смотрите также

  • xdiff_file_bdiff() - Make binary diff of two files
  • xdiff_file_bpatch() - Patch a file with a binary diff


Make unified diff of two files

  • « xdiff_file_diff_binary
  • xdiff_file_merge3 »
  • PHP Manual
  • xdiff Функции
  • Make unified diff of two files

xdiff_file_diff

(PECL xdiff >= 0.2.0)

xdiff_file_diff — Make unified diff of two files

Описание

bool xdiff_file_diff ( string $old_file , string $new_file , string $dest [, int $context = 3 [, bool $minimal = false ]] )

Makes an unified diff containing differences between old_file and new_file and stores it in dest file. The resulting file is human-readable. An optional context parameter specifies how many lines of context should be added around each change. Setting minimal parameter to true will result in outputting the shortest patch file possible (can take a long time).

Список параметров

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file.

context

Indicates how many lines of context you want to include in diff result.

minimal

Set this parameter to TRUE if you want to minimalize size of the result (can take a long time).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 xdiff_file_diff() example

The following code makes unified diff of two php files with context length of 2.

<?php
$old_version = 'my_script.php';
$new_version = 'my_new_script.php';

xdiff_file_diff($old_version, $new_version, 'my_script.diff', 2);
?>

Примечания

Замечание:

This function doesn't work well with binary files. To make diff of binary files use xdiff_file_bdiff()/xdiff_file_rabdiff() function.

Смотрите также

  • xdiff_file_patch() - Patch a file with an unified diff


Merge 3 files into one

  • « xdiff_file_diff
  • xdiff_file_patch_binary »
  • PHP Manual
  • xdiff Функции
  • Merge 3 files into one

xdiff_file_merge3

(PECL xdiff >= 0.2.0)

xdiff_file_merge3 — Merge 3 files into one

Описание

mixed xdiff_file_merge3 ( string $old_file , string $new_file1 , string $new_file2 , string $dest )

Merges three files into one and stores the result in a file dest. The old_file is an original version while new_file1 and new_file2 are modified versions of an original.

Список параметров

old_file

Path to the first file. It acts as "old" file.

new_file1

Path to the second file. It acts as modified version of old_file.

new_file2

Path to the third file. It acts as modified version of old_file.

dest

Path of the resulting file, containing merged changed from both new_file1 and new_file2.

Возвращаемые значения

Returns TRUE if merge was successful, string with rejected chunks if it was not or FALSE if an internal error happened.

Примеры

Пример #1 xdiff_file_merge3() example

The following code merges three files into one.

<?php
$old_version = 'original_script.php';
$fix1 = 'script_with_fix1.php';
$fix2 = 'script_with_fix2.php';

$errors = xdiff_file_merge3($old_version, $fix1, $fix2, 'fixed_script.php');
if (is_string($errors)) {
    echo "Rejects:\n";
    echo $errors;
}
?>

Смотрите также

  • xdiff_string_merge3() - Merge 3 strings into one


Alias of xdiff_file_bpatch

  • « xdiff_file_merge3
  • xdiff_file_patch »
  • PHP Manual
  • xdiff Функции
  • Alias of xdiff_file_bpatch

xdiff_file_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_file_patch_binary — Alias of xdiff_file_bpatch

Описание

bool xdiff_file_patch_binary ( string $file , string $patch , string $dest )

Patches a file with a binary patch and stores the result in a file dest. This function accepts patches created both via xdiff_file_bdiff() or xdiff_file_rabdiff() functions or their string counterparts.

Starting with version 1.5.0 this function is an alias of xdiff_file_bpatch().

Список параметров

file

The original file.

patch

The binary patch file.

dest

Path of the resulting file.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 xdiff_file_patch_binary() example

The following code applies binary diff to a file.

<?php
$old_version = 'archive-1.0.tgz';
$patch = 'archive.bpatch';

$result = xdiff_file_patch_binary($old_version, $patch, 'archive-1.1.tgz');
if ($result) {
   echo "File patched";
} else {
   echo "File couldn't be patched";
}

?>

Примечания

Замечание:

Both files (file and patch) will be loaded into memory so ensure that your memory_limit is set high enough.

Смотрите также

  • xdiff_string_patch_binary() - Alias of xdiff_string_bpatch


Patch a file with an unified diff

  • « xdiff_file_patch_binary
  • xdiff_file_rabdiff »
  • PHP Manual
  • xdiff Функции
  • Patch a file with an unified diff

xdiff_file_patch

(PECL xdiff >= 0.2.0)

xdiff_file_patch — Patch a file with an unified diff

Описание

mixed xdiff_file_patch ( string $file , string $patch , string $dest [, int $flags = DIFF_PATCH_NORMAL ] )

Patches a file with a patch and stores the result in a file. patch has to be an unified diff created by xdiff_file_diff()/xdiff_string_diff() function. An optional flags parameter specifies mode of operation.

Список параметров

file

The original file.

patch

The unified patch file. It has to be created using xdiff_string_diff(), xdiff_file_diff() functions or compatible tools.

dest

Path of the resulting file.

flags

Can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Starting from version 1.5.0, you can also use binary OR to enable XDIFF_PATCH_IGNORESPACE flag.

Возвращаемые значения

Returns FALSE if an internal error happened, string with rejected chunks if patch couldn't be applied or TRUE if patch has been successfully applied.

Примеры

Пример #1 xdiff_file_patch() example

The following code applies unified diff to a file.

<?php
$old_version = 'my_script-1.0.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (is_string($errors)) {
   echo "Rejects:\n";
   echo $errors;
}

?>

Пример #2 Patch reversing example

The following code reverses a patch.

<?php
$new_version = 'my_script-1.1.php';
$patch = 'my_script.patch';

$errors = xdiff_file_patch($new_version, $patch, 'my_script-1.0.php', XDIFF_PATCH_REVERSE);
if (is_string($errors)) {
   echo "Rejects:\n";
   echo $errors;
}

?>

Смотрите также

  • xdiff_file_diff() - Make unified diff of two files


Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

  • « xdiff_file_patch
  • xdiff_string_bdiff_size »
  • PHP Manual
  • xdiff Функции
  • Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

xdiff_file_rabdiff

(PECL xdiff >= 1.5.0)

xdiff_file_rabdiff — Make binary diff of two files using the Rabin's polynomial fingerprinting algorithm

Описание

bool xdiff_file_rabdiff ( string $old_file , string $new_file , string $dest )

Makes a binary diff of two files and stores the result in a patch file. The difference between this function and xdiff_file_bdiff() is different algorithm used which should result in faster execution and smaller diff produced. This function works with both text and binary files. Resulting patch file can be later applied using xdiff_file_bpatch()/xdiff_string_bpatch().

For more details about differences between algorithm used please check » libxdiff website.

Список параметров

old_file

Path to the first file. This file acts as "old" file.

new_file

Path to the second file. This file acts as "new" file.

dest

Path of the resulting patch file. Resulting file contains differences between "old" and "new" files. It is in binary format and is human-unreadable.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 xdiff_file_rabdiff() example

The following code makes binary diff of two archives.

<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';

xdiff_file_rabdiff($old_version, $new_version, 'my_script.bdiff');
?>

Примечания

Замечание:

Both files will be loaded into memory so ensure that your memory_limit is set high enough.

Смотрите также

  • xdiff_file_bpatch() - Patch a file with a binary diff


Read a size of file created by applying a binary diff

  • « xdiff_file_rabdiff
  • xdiff_string_bdiff »
  • PHP Manual
  • xdiff Функции
  • Read a size of file created by applying a binary diff

xdiff_string_bdiff_size

(PECL xdiff >= 1.5.0)

xdiff_string_bdiff_size — Read a size of file created by applying a binary diff

Описание

int xdiff_string_bdiff_size ( string $patch )

Returns a size of a result file that would be created after applying binary patch to the original file.

Список параметров

patch

The binary patch created by xdiff_string_bdiff() or xdiff_string_rabdiff() function.

Возвращаемые значения

Returns the size of file that would be created.

Примеры

Пример #1 xdiff_string_bdiff_size() example

The following code applies reads a size of file that would be created after applying a binary diff.

<?php
$binary_patch = file_get_contents('file.bdiff');
$length = xdiff_string_bdiff_size($binary_patch);
echo "Resulting file will be $length bytes long";
?>

Смотрите также

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm
  • xdiff_string_bpatch() - Patch a string with a binary diff


Make binary diff of two strings

  • « xdiff_string_bdiff_size
  • xdiff_string_bpatch »
  • PHP Manual
  • xdiff Функции
  • Make binary diff of two strings

xdiff_string_bdiff

(PECL xdiff >= 1.5.0)

xdiff_string_bdiff — Make binary diff of two strings

Описание

string xdiff_string_bdiff ( string $old_data , string $new_data )

Makes a binary diff of two strings and returns the result. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

Список параметров

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

Возвращаемые значения

Returns string with binary diff containing differences between "old" and "new" data or FALSE if an internal error occurred.

Смотрите также

  • xdiff_string_bpatch() - Patch a string with a binary diff


Patch a string with a binary diff

  • « xdiff_string_bdiff
  • xdiff_string_diff_binary »
  • PHP Manual
  • xdiff Функции
  • Patch a string with a binary diff

xdiff_string_bpatch

(PECL xdiff >= 1.5.0)

xdiff_string_bpatch — Patch a string with a binary diff

Описание

string xdiff_string_bpatch ( string $str , string $patch )

Patches a string str with a binary patch. This function accepts patches created both via xdiff_string_bdiff() and xdiff_string_rabdiff() functions or their file counterparts.

Список параметров

str

The original binary string.

patch

The binary patch string.

Возвращаемые значения

Returns the patched string, or FALSE on error.

Смотрите также

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Alias of xdiff_string_bdiff

  • « xdiff_string_bpatch
  • xdiff_string_diff »
  • PHP Manual
  • xdiff Функции
  • Alias of xdiff_string_bdiff

xdiff_string_diff_binary

(PECL xdiff >= 0.2.0)

xdiff_string_diff_binary — Alias of xdiff_string_bdiff

Описание

string xdiff_string_bdiff ( string $old_data , string $new_data )

Makes a binary diff of two strings and returns the result. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

Starting with version 1.5.0 this function is an alias of xdiff_string_bdiff().

Список параметров

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

Возвращаемые значения

Returns string with result or FALSE if an internal error happened.

Смотрите также

  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_bpatch() - Patch a string with a binary diff


Make unified diff of two strings

  • « xdiff_string_diff_binary
  • xdiff_string_merge3 »
  • PHP Manual
  • xdiff Функции
  • Make unified diff of two strings

xdiff_string_diff

(PECL xdiff >= 0.2.0)

xdiff_string_diff — Make unified diff of two strings

Описание

string xdiff_string_diff ( string $old_data , string $new_data [, int $context = 3 [, bool $minimal = false ]] )

Makes an unified diff containing differences between old_data string and new_data string and returns it. The resulting diff is human-readable. An optional context parameter specifies how many lines of context should be added around each change. Setting minimal parameter to true will result in outputting the shortest patch file possible (can take a long time).

Список параметров

old_data

First string with data. It acts as "old" data.

new_data

Second string with data. It acts as "new" data.

context

Indicates how many lines of context you want to include in the diff result.

minimal

Set this parameter to TRUE if you want to minimalize the size of the result (can take a long time).

Возвращаемые значения

Returns string with resulting diff or FALSE if an internal error happened.

Примеры

Пример #1 xdiff_string_diff() example

The following code makes unified diff of two articles.

<?php
$old_article = file_get_contents('./old_article.txt');
$new_article = $_REQUEST['article']; /* Let's say that someone pasted a new article to html form */

$diff = xdiff_string_diff($old_article, $new_article, 1);
if (is_string($diff)) {
    echo "Differences between two articles:\n";
    echo $diff;
}

?>

Примечания

Замечание:

This function doesn't work well with binary strings. To make diff of binary strings use xdiff_string_bdiff()/xdiff_string_rabdiff().

Смотрите также

  • xdiff_string_patch() - Patch a string with an unified diff


Merge 3 strings into one

  • « xdiff_string_diff
  • xdiff_string_patch_binary »
  • PHP Manual
  • xdiff Функции
  • Merge 3 strings into one

xdiff_string_merge3

(PECL xdiff >= 0.2.0)

xdiff_string_merge3 — Merge 3 strings into one

Описание

mixed xdiff_string_merge3 ( string $old_data , string $new_data1 , string $new_data2 [, string &$error ] )

Merges three strings into one and returns the result. The old_data is an original version of data while new_data1 and new_data2 are modified versions of an original. An optional error is used to pass any rejected parts during merging process.

Список параметров

old_data

First string with data. It acts as "old" data.

new_data1

Second string with data. It acts as modified version of old_data.

new_data2

Third string with data. It acts as modified version of old_data.

error

If provided then rejected parts are stored inside this variable.

Возвращаемые значения

Returns the merged string, FALSE if an internal error happened, or TRUE if merged string is empty.

Смотрите также

  • xdiff_file_merge3() - Merge 3 files into one


Alias of xdiff_string_bpatch

  • « xdiff_string_merge3
  • xdiff_string_patch »
  • PHP Manual
  • xdiff Функции
  • Alias of xdiff_string_bpatch

xdiff_string_patch_binary

(PECL xdiff >= 0.2.0)

xdiff_string_patch_binary — Alias of xdiff_string_bpatch

Описание

string xdiff_string_patch_binary ( string $str , string $patch )

Patches a string str with a binary patch. This function accepts patches created both via xdiff_string_bdiff() and xdiff_string_rabdiff() functions or their file counterparts.

Starting with version 1.5.0 this function is an alias of xdiff_string_bpatch().

Список параметров

str

The original binary string.

patch

The binary patch string.

Возвращаемые значения

Returns the patched string, or FALSE on error.

Смотрите также

  • xdiff_string_bpatch() - Patch a string with a binary diff
  • xdiff_string_bdiff() - Make binary diff of two strings
  • xdiff_string_rabdiff() - Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm


Patch a string with an unified diff

  • « xdiff_string_patch_binary
  • xdiff_string_rabdiff »
  • PHP Manual
  • xdiff Функции
  • Patch a string with an unified diff

xdiff_string_patch

(PECL xdiff >= 0.2.0)

xdiff_string_patch — Patch a string with an unified diff

Описание

string xdiff_string_patch ( string $str , string $patch [, int $flags [, string &$error ]] )

Patches a str string with an unified patch in patch parameter and returns the result. patch has to be an unified diff created by xdiff_file_diff()/xdiff_string_diff() function. An optional flags parameter specifies mode of operation. Any rejected parts of the patch will be stored inside error variable if it is provided.

Список параметров

str

The original string.

patch

The unified patch string. It has to be created using xdiff_string_diff(), xdiff_file_diff() functions or compatible tools.

flags

flags can be either XDIFF_PATCH_NORMAL (default mode, normal patch) or XDIFF_PATCH_REVERSE (reversed patch).

Starting from version 1.5.0, you can also use binary OR to enable XDIFF_PATCH_IGNORESPACE flag.

error

If provided then rejected parts are stored inside this variable.

Возвращаемые значения

Returns the patched string, or FALSE on error.

Примеры

Пример #1 xdiff_string_patch() example

The following code applies changes to some article.

<?php
$old_article = file_get_contents('./old_article.txt');
$diff = $_SERVER['patch']; /* Let's say that someone pasted a patch to html form */

$errors = '';

$new_article = xdiff_string_patch($old_article, $diff, XDIFF_PATCH_NORMAL, $errors);
if (is_string($new_article)) {
    echo "New article:\n";
    echo $new_article;
}

if (strlen($errors)) {
    echo "Rejects: \n";
    echo $errors;
}

?>

Смотрите также

  • xdiff_string_diff() - Make unified diff of two strings


Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

  • « xdiff_string_patch
  • Поддержка языков и кодировок »
  • PHP Manual
  • xdiff Функции
  • Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

xdiff_string_rabdiff

(PECL xdiff >= 1.5.0)

xdiff_string_rabdiff — Make binary diff of two strings using the Rabin's polynomial fingerprinting algorithm

Описание

string xdiff_string_bdiff ( string $old_data , string $new_data )

Makes a binary diff of two strings and returns the result. The difference between this function and xdiff_string_bdiff() is different algorithm used which should result in faster execution and smaller diff produced. This function works with both text and binary data. Resulting patch can be later applied using xdiff_string_bpatch()/xdiff_file_bpatch().

For more details about differences between algorithm used please check » libxdiff website.

Список параметров

old_data

First string with binary data. It acts as "old" data.

new_data

Second string with binary data. It acts as "new" data.

Возвращаемые значения

Returns string with binary diff containing differences between "old" and "new" data or FALSE if an internal error occurred.

Смотрите также

  • xdiff_string_bpatch() - Patch a string with a binary diff


Поддержка языков и кодировок

  • Enchant — Enchant spelling library
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Enchant Функции
  • FriBiDi
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции FriBiDi
  • Gender — Определение пола по имени
    • Введение
    • Установка и настройка
    • Примеры
    • Gender\Gender — Класс Gender\Gender
  • Gettext
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции gettext
  • iconv
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • iconv
  • intl — Функции интернационализации
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Collator — Класс Collator
    • NumberFormatter — The NumberFormatter class
    • Locale — Класс Locale
    • Normalizer — Класс Normalizer
    • MessageFormatter — The MessageFormatter class
    • IntlCalendar — Класс IntlCalendar
    • IntlTimeZone — Класс IntlTimeZone
    • IntlDateFormatter — Класс IntlDateFormatter
    • ResourceBundle — Класс ResourceBundle
    • Spoofchecker — Класс Spoofchecker
    • Transliterator — Класс Transliterator
    • IntlBreakIterator — Класс IntlBreakIterator
    • IntlRuleBasedBreakIterator — Класс IntlRuleBasedBreakIterator
    • IntlCodePointBreakIterator — Класс IntlCodePointBreakIterator
    • IntlPartsIterator — Класс IntlPartsIterator
    • UConverter — Класс UConverter
    • Функции Grapheme
    • Функции IDN
    • IntlChar
    • IntlException — Класс исключений для ошибок intl
    • IntlIterator — Класс IntlIterator
    • Функции intl
  • Многобайтные строки
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Краткий список поддерживаемых кодировок
    • Основы японских многобайтных кодировок
    • HTTP Ввод и Вывод
    • Поддерживаемые кодировки символов
    • Механизм перегрузки функций
    • Требования, предъявляемые к кодировкам символов в PHP
    • Функции для работы с Многобайтными строками
  • Pspell
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Pspell
  • Recode — GNU Recode
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Recode Функции


Enchant spelling library

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Enchant Функции
    • enchant_broker_describe — Enumerates the Enchant providers
    • enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag
    • enchant_broker_free_dict — Free a dictionary resource
    • enchant_broker_free — Free the broker resource and its dictionnaries
    • enchant_broker_get_dict_path — Get the directory path for a given backend
    • enchant_broker_get_error — Returns the last error of the broker
    • enchant_broker_init — create a new broker object capable of requesting
    • enchant_broker_list_dicts — Returns a list of available dictionaries
    • enchant_broker_request_dict — create a new dictionary using a tag
    • enchant_broker_request_pwl_dict — creates a dictionary using a PWL file
    • enchant_broker_set_dict_path — Set the directory path for a given backend
    • enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language
    • enchant_dict_add_to_personal — add a word to personal word list
    • enchant_dict_add_to_session — add 'word' to this spell-checking session
    • enchant_dict_check — Check whether a word is correctly spelled or not
    • enchant_dict_describe — Describes an individual dictionary
    • enchant_dict_get_error — Returns the last error of the current spelling-session
    • enchant_dict_is_in_session — whether or not 'word' exists in this spelling-session
    • enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions
    • enchant_dict_store_replacement — Add a correction for a word
    • enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met


Введение

Enchant is the PHP binding for the » Enchant library. Enchant steps in to provide uniformity and conformity on top of all spelling libraries, and implement certain features that may be lacking in any individual provider library. Everything should "just work" for any and every definition of "just working."

Enchant supports the following backends:

  • Aspell/Pspell (intends to replace Ispell)

  • Ispell (old as sin, could be interpreted as a defacto standard)

  • MySpell/Hunspell (an OOo projects, also used by Mozilla)

  • Uspell (primarily Yiddish, Hebrew, and Eastern European languages - hosted in AbiWord's CVS under the module "uspell")

  • Hspell (Hebrew)

  • AppleSpell (Mac OSX)


Требования

This version uses the functions of the » Enchant library by Dom Lachowicz. You need Enchant 1.2.4 or later.

Enchant also requires » Glib 2.6 or greater. Pre-compiled Windows libraries are available from » http://ftp.gnome.org/pub/gnome/binaries/win32/glib/.


Установка

This extension is bundled with PHP as of PHP 5.3.0. Before this time, enchant was a PECL extension. Users of versions prior to 5.3.0 may use the » PECL extension.

Provided the required libraries are installed, users of PHP 5.3.0 or later may enable enchant by adding the --with-enchant[=dir] option when compiling PHP.


Типы ресурсов

There are two types of resources in this extension. The first one is the broker (backends manager) and the second is for the dictionary.


Предопределенные константы

ENCHANT_MYSPELL (integer)
Тип словаря MySpell. Используется с enchant_broker_get_dict_path() и enchant_broker_set_dict_path().
ENCHANT_ISPELL (integer)
Тип словаря Ispell. Используется с enchant_broker_get_dict_path() и enchant_broker_set_dict_path().


Примеры

Пример #1 Enchant Usage Example

<?php
$tag = 'en_US';
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Current broker provides the following backend(s):\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 "dictionary $tag provides:\n";
    $wordcorrect = enchant_dict_check($d, "soong");
    print_r($dprovides);
    if (!$wordcorrect) {
        $suggs = enchant_dict_suggest($d, "soong");
        echo "Suggestions for 'soong':";
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
} else {
}
enchant_broker_free($r);
?>


Enchant Функции

Содержание

  • enchant_broker_describe — Enumerates the Enchant providers
  • enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict — Free a dictionary resource
  • enchant_broker_free — Free the broker resource and its dictionnaries
  • enchant_broker_get_dict_path — Get the directory path for a given backend
  • enchant_broker_get_error — Returns the last error of the broker
  • enchant_broker_init — create a new broker object capable of requesting
  • enchant_broker_list_dicts — Returns a list of available dictionaries
  • enchant_broker_request_dict — create a new dictionary using a tag
  • enchant_broker_request_pwl_dict — creates a dictionary using a PWL file
  • enchant_broker_set_dict_path — Set the directory path for a given backend
  • enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language
  • enchant_dict_add_to_personal — add a word to personal word list
  • enchant_dict_add_to_session — add 'word' to this spell-checking session
  • enchant_dict_check — Check whether a word is correctly spelled or not
  • enchant_dict_describe — Describes an individual dictionary
  • enchant_dict_get_error — Returns the last error of the current spelling-session
  • enchant_dict_is_in_session — whether or not 'word' exists in this spelling-session
  • enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions
  • enchant_dict_store_replacement — Add a correction for a word
  • enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met


Enumerates the Enchant providers

  • « Enchant Функции
  • enchant_broker_dict_exists »
  • PHP Manual
  • Enchant Функции
  • Enumerates the Enchant providers

enchant_broker_describe

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0)

enchant_broker_describe — Enumerates the Enchant providers

Описание

array enchant_broker_describe ( resource $broker )

Enumerates the Enchant providers and tells you some rudimentary information about them. The same info is provided through phpinfo().

Список параметров

broker

Broker resource

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 List the backends provided by the given broker

<?php
$r = enchant_broker_init();
$bprovides = enchant_broker_describe($r);
echo "Current broker provides the following backend(s):\n";
print_r($bprovides);

?>

Результатом выполнения данного примера будет что-то подобное:

Current broker provides the following backend(s):
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
        )

)


Whether a dictionary exists or not. Using non-empty tag

  • « enchant_broker_describe
  • enchant_broker_free_dict »
  • PHP Manual
  • Enchant Функции
  • Whether a dictionary exists or not. Using non-empty tag

enchant_broker_dict_exists

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_dict_exists — Whether a dictionary exists or not. Using non-empty tag

Описание

bool enchant_broker_dict_exists ( resource $broker , string $tag )

Tells if a dictionary exists or not, using a non-empty tags

Список параметров

broker

Broker resource

tag

non-empty tag in the LOCALE format, ex: us_US, ch_DE, etc.

Возвращаемые значения

Returns TRUE when the tag exist or FALSE when not.

Примеры

Пример #1 A enchant_broker_dict_exists() example

<?php
$tag = 'en_US';
$r = enchant_broker_init();
if (enchant_broker_dict_exists($r,$tag)) {
    echo $tag . " dictionary found.\n";
}
?>

Смотрите также

  • enchant_broker_describe() - Enumerates the Enchant providers


Free a dictionary resource

  • « enchant_broker_dict_exists
  • enchant_broker_free »
  • PHP Manual
  • Enchant Функции
  • Free a dictionary resource

enchant_broker_free_dict

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_free_dict — Free a dictionary resource

Описание

bool enchant_broker_free_dict ( resource $dict )

Free a dictionary resource.

Список параметров

dict

Dictionary resource.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • enchant_broker_request_dict() - create a new dictionary using a tag
  • enchant_broker_request_pwl_dict() - creates a dictionary using a PWL file


Free the broker resource and its dictionnaries

  • « enchant_broker_free_dict
  • enchant_broker_get_dict_path »
  • PHP Manual
  • Enchant Функции
  • Free the broker resource and its dictionnaries

enchant_broker_free

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_free — Free the broker resource and its dictionnaries

Описание

bool enchant_broker_free ( resource $broker )

Free a broker resource with all its dictionaries.

Список параметров

broker

Broker resource

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • enchant_broker_init() - create a new broker object capable of requesting


Get the directory path for a given backend

  • « enchant_broker_free
  • enchant_broker_get_error »
  • PHP Manual
  • Enchant Функции
  • Get the directory path for a given backend

enchant_broker_get_dict_path

(PHP 5 >= 5.3.1, PHP 7, PECL enchant >= 1.0.1)

enchant_broker_get_dict_path — Get the directory path for a given backend

Описание

bool enchant_broker_get_dict_path ( resource $broker , int $dict_type )

Get the directory path for a given backend.

Список параметров

broker

Broker resource.

dict_type

The type of the dictionaries, i.e. ENCHANT_MYSPELL or ENCHANT_ISPELL.

Возвращаемые значения

Returns the path of the dictionary directory on success или FALSE в случае возникновения ошибки.

Смотрите также

  • enchant_broker_set_dict_path() - Set the directory path for a given backend


Returns the last error of the broker

  • « enchant_broker_get_dict_path
  • enchant_broker_init »
  • PHP Manual
  • Enchant Функции
  • Returns the last error of the broker

enchant_broker_get_error

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_get_error — Returns the last error of the broker

Описание

string enchant_broker_get_error ( resource $broker )

Returns the last error which occurred in this broker.

Список параметров

broker

Broker resource.

Возвращаемые значения

Return the msg string if an error was found or FALSE


create a new broker object capable of requesting

  • « enchant_broker_get_error
  • enchant_broker_list_dicts »
  • PHP Manual
  • Enchant Функции
  • create a new broker object capable of requesting

enchant_broker_init

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_init — create a new broker object capable of requesting

Описание

resource enchant_broker_init ( void )

Список параметров

Возвращаемые значения

Returns a broker resource on success or FALSE.

Смотрите также

  • enchant_broker_free() - Free the broker resource and its dictionnaries


Returns a list of available dictionaries

  • « enchant_broker_init
  • enchant_broker_request_dict »
  • PHP Manual
  • Enchant Функции
  • Returns a list of available dictionaries

enchant_broker_list_dicts

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 1.0.1)

enchant_broker_list_dicts — Returns a list of available dictionaries

Описание

mixed enchant_broker_list_dicts ( resource $broker )

Returns a list of available dictionaries with their details.

Список параметров

broker

Broker resource

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 List all available dictionaries for one broker

<?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() - Enumerates the Enchant providers


create a new dictionary using a tag

  • « enchant_broker_list_dicts
  • enchant_broker_request_pwl_dict »
  • PHP Manual
  • Enchant Функции
  • create a new dictionary using a tag

enchant_broker_request_dict

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_request_dict — create a new dictionary using a tag

Описание

resource enchant_broker_request_dict ( resource $broker , string $tag )

create a new dictionary using tag, the non-empty language tag you wish to request a dictionary for ("en_US", "de_DE", ...)

Список параметров

broker

Broker resource

tag

A tag describing the locale, for example en_US, de_DE

Возвращаемые значения

Returns a dictionary resource on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 A enchant_broker_request_dict() example

Check if a dictionary exists using enchant_broker_dict_exists() and request it.

<?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() - Describes an individual dictionary
  • enchant_broker_dict_exists() - Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict() - Free a dictionary resource


creates a dictionary using a PWL file

  • « enchant_broker_request_dict
  • enchant_broker_set_dict_path »
  • PHP Manual
  • Enchant Функции
  • creates a dictionary using a PWL file

enchant_broker_request_pwl_dict

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_request_pwl_dict — creates a dictionary using a PWL file

Описание

resource enchant_broker_request_pwl_dict ( resource $broker , string $filename )

Creates a dictionary using a PWL file. A PWL file is personal word file one word per line.

Список параметров

broker

Broker resource

filename

Path to the PWL file. If there is no such file, a new one will be created if possible.

Возвращаемые значения

Returns a dictionary resource on success или FALSE в случае возникновения ошибки.

Смотрите также

  • enchant_dict_describe() - Describes an individual dictionary
  • enchant_broker_dict_exists() - Whether a dictionary exists or not. Using non-empty tag
  • enchant_broker_free_dict() - Free a dictionary resource


Set the directory path for a given backend

  • « enchant_broker_request_pwl_dict
  • enchant_broker_set_ordering »
  • PHP Manual
  • Enchant Функции
  • Set the directory path for a given backend

enchant_broker_set_dict_path

(PHP 5 >= 5.3.1, PHP 7, PECL enchant >= 1.0.1)

enchant_broker_set_dict_path — Set the directory path for a given backend

Описание

bool enchant_broker_set_dict_path ( resource $broker , int $dict_type , string $value )

Set the directory path for a given backend.

Список параметров

broker

Broker resource.

dict_type

The type of the dictionaries, i.e. ENCHANT_MYSPELL or ENCHANT_ISPELL.

value

The path of the dictionary directory.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • enchant_broker_get_dict_path() - Get the directory path for a given backend


Declares a preference of dictionaries to use for the language

  • « enchant_broker_set_dict_path
  • enchant_dict_add_to_personal »
  • PHP Manual
  • Enchant Функции
  • Declares a preference of dictionaries to use for the language

enchant_broker_set_ordering

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_broker_set_ordering — Declares a preference of dictionaries to use for the language

Описание

bool enchant_broker_set_ordering ( resource $broker , string $tag , string $ordering )

Declares a preference of dictionaries to use for the language described/referred to by 'tag'. The ordering is a comma delimited list of provider names. As a special exception, the "*" tag can be used as a language tag to declare a default ordering for any language that does not explicitly declare an ordering.

Список параметров

broker

Broker resource

tag

Language tag. The special "*" tag can be used as a language tag to declare a default ordering for any language that does not explicitly declare an ordering.

ordering

Comma delimited list of provider names

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


add a word to personal word list

  • « enchant_broker_set_ordering
  • enchant_dict_add_to_session »
  • PHP Manual
  • Enchant Функции
  • add a word to personal word list

enchant_dict_add_to_personal

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_add_to_personal — add a word to personal word list

Описание

void enchant_dict_add_to_personal ( resource $dict , string $word )

Add a word to personal word list of the given dictionary.

Список параметров

dict

Dictionary resource

word

The word to add

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Пример #1 Adding a word to a PWL

<?php

$filename = './my_word_list.pwl';
$word = 'Supercalifragilisticexpialidocious';

$broker = enchant_broker_init();
$dict = enchant_broker_request_pwl_dict($broker, $filename);

enchant_dict_add_to_personal($dict, $word);

enchant_broker_free($broker);

?>

Смотрите также

  • enchant_broker_request_pwl_dict() - creates a dictionary using a PWL file
  • enchant_broker_request_dict() - create a new dictionary using a tag


add 'word' to this spell-checking session

  • « enchant_dict_add_to_personal
  • enchant_dict_check »
  • PHP Manual
  • Enchant Функции
  • add 'word' to this spell-checking session

enchant_dict_add_to_session

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_add_to_session — add 'word' to this spell-checking session

Описание

void enchant_dict_add_to_session ( resource $dict , string $word )

Add a word to the given dictionary. It will be added only for the active spell-checking session.

Список параметров

dict

Dictionary resource

word

The word to add

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • enchant_broker_request_dict() - create a new dictionary using a tag


Check whether a word is correctly spelled or not

  • « enchant_dict_add_to_session
  • enchant_dict_describe »
  • PHP Manual
  • Enchant Функции
  • Check whether a word is correctly spelled or not

enchant_dict_check

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_check — Check whether a word is correctly spelled or not

Описание

bool enchant_dict_check ( resource $dict , string $word )

If the word is correctly spelled return TRUE, otherwise return FALSE

Список параметров

dict

Dictionary resource

word

The word to check

Возвращаемые значения

Returns TRUE if the word is spelled correctly, FALSE if not.


Describes an individual dictionary

  • « enchant_dict_check
  • enchant_dict_get_error »
  • PHP Manual
  • Enchant Функции
  • Describes an individual dictionary

enchant_dict_describe

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_describe — Describes an individual dictionary

Описание

mixed enchant_dict_describe ( resource $dict )

Returns the details of the dictionary.

Список параметров

dict

Dictionary resource

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 A enchant_dict_describe() example

Check if a dictionary exists using enchant_broker_dict_exists() and show the detail of it.

<?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
)


Returns the last error of the current spelling-session

  • « enchant_dict_describe
  • enchant_dict_is_in_session »
  • PHP Manual
  • Enchant Функции
  • Returns the last error of the current spelling-session

enchant_dict_get_error

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_get_error — Returns the last error of the current spelling-session

Описание

string enchant_dict_get_error ( resource $dict )

Returns the last error of the current spelling-session

Список параметров

dict

Dictinaray resource

Возвращаемые значения

Returns the error message as string or FALSE if no error occurred.


whether or not 'word' exists in this spelling-session

  • « enchant_dict_get_error
  • enchant_dict_quick_check »
  • PHP Manual
  • Enchant Функции
  • whether or not 'word' exists in this spelling-session

enchant_dict_is_in_session

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_is_in_session — whether or not 'word' exists in this spelling-session

Описание

bool enchant_dict_is_in_session ( resource $dict , string $word )

Tells whether or not a word already exists in the current session.

Список параметров

dict

Dictionary resource

word

The word to lookup

Возвращаемые значения

Returns TRUE if the word exists or FALSE

Смотрите также

  • enchant_dict_add_to_session() - add 'word' to this spell-checking session


Check the word is correctly spelled and provide suggestions

  • « enchant_dict_is_in_session
  • enchant_dict_store_replacement »
  • PHP Manual
  • Enchant Функции
  • Check the word is correctly spelled and provide suggestions

enchant_dict_quick_check

(PHP 5 >= 5.3.0, PHP 7, PECL enchant:0.2.0-1.0.1)

enchant_dict_quick_check — Check the word is correctly spelled and provide suggestions

Описание

bool enchant_dict_quick_check ( resource $dict , string $word [, array &$suggestions ] )

If the word is correctly spelled return TRUE, otherwise return FALSE, if suggestions variable is provided, fill it with spelling alternatives.

Список параметров

dict

Dictionary resource

word

The word to check

suggestions

If the word is not correctly spelled, this variable will contain an array of suggestions.

Возвращаемые значения

Returns TRUE if the word is correctly spelled or FALSE

Примеры

Пример #1 A enchant_dict_quick_check() example

<?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() - Check whether a word is correctly spelled or not
  • enchant_dict_suggest() - Will return a list of values if any of those pre-conditions are not met


Add a correction for a word

  • « enchant_dict_quick_check
  • enchant_dict_suggest »
  • PHP Manual
  • Enchant Функции
  • Add a correction for a word

enchant_dict_store_replacement

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_store_replacement — Add a correction for a word

Описание

void enchant_dict_store_replacement ( resource $dict , string $mis , string $cor )

Add a correction for 'mis' using 'cor'. Notes that you replaced @mis with @cor, so it's possibly more likely that future occurrences of @mis will be replaced with @cor. So it might bump @cor up in the suggestion list.

Список параметров

dict

Dictionary resource

mis

The work to fix

cor

The correct word

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Will return a list of values if any of those pre-conditions are not met

  • « enchant_dict_store_replacement
  • FriBiDi »
  • PHP Manual
  • Enchant Функции
  • Will return a list of values if any of those pre-conditions are not met

enchant_dict_suggest

(PHP 5 >= 5.3.0, PHP 7, PECL enchant >= 0.1.0 )

enchant_dict_suggest — Will return a list of values if any of those pre-conditions are not met

Описание

array enchant_dict_suggest ( resource $dict , string $word )

Список параметров

dict

Dictionary resource

word

Word to use for the suggestions.

Возвращаемые значения

Will returns an array of suggestions if the word is bad spelled.

Примеры

Пример #1 A enchant_dict_suggest() example

<?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 "Suggestions for 'soong':";
        print_r($suggs);
    }
    enchant_broker_free_dict($d);
}
enchant_broker_free($r);
?>

Смотрите также

  • enchant_dict_check() - Check whether a word is correctly spelled or not
  • enchant_dict_quick_check() - Check the word is correctly spelled and provide suggestions


FriBiDi

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции FriBiDi
    • fribidi_log2vis — Преобразование логической строки в отображаемую


Введение

FriBiDi - это свободная реализация » Двунаправленного Алгоритма Unicode.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Необходимо загрузить и установить » пакет FriBiDi.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/fribidi.

Для использования данного расширения необходимо скомпилировать PHP с поддержкой Fribidi используя ключ конфигурации --with-fribidi[=DIR] .

Пользователям Windows необходимо разрешить php_fribidi.dll в php.ini. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

FRIBIDI_CHARSET_UTF8 (integer)
Unicode
FRIBIDI_CHARSET_8859_6 (integer)
Арабский
FRIBIDI_CHARSET_8859_8 (integer)
Иврит
FRIBIDI_CHARSET_CP1255 (integer)
Иврит/Идиш
FRIBIDI_CHARSET_CP1256 (integer)
Арабский
FRIBIDI_CHARSET_ISIRI_3342 (integer)
Персидский
FRIBIDI_CHARSET_CAP_RTL (integer)
Используется в тестовых целях, заглавные символы будут считаться за не английские.
FRIBIDI_RTL (integer)
Справа налево
FRIBIDI_LTR (integer)
Слева направо
FRIBIDI_AUTO (integer)
Автоопределение базового направления


  • « Предопределенные константы
  • fribidi_log2vis »
  • PHP Manual
  • FriBiDi
  • Функции FriBiDi

Функции FriBiDi

Содержание

  • fribidi_log2vis — Преобразование логической строки в отображаемую


Преобразование логической строки в отображаемую

  • « Функции FriBiDi
  • Gender »
  • PHP Manual
  • Функции FriBiDi
  • Преобразование логической строки в отображаемую

fribidi_log2vis

(PHP 4 >= 4.0.4 and PHP 4 <= 4.1.0, PECL fribidi >= 1.0)

fribidi_log2vis — Преобразование логической строки в отображаемую

Описание

string fribidi_log2vis ( string $str , string $direction , int $charset )

Преобразование логической строки в отображаемую.

Список параметров

str

Логическая строка.

direction

Одна из констант: FRIBIDI_RTL, FRIBIDI_LTR или FRIBIDI_AUTO.

charset

Одна из констант FRIBIDI_CHARSET_XXX.

Возвращаемые значения

Возвращает отображаемую строку или FALSE в случае возникновения ошибки.


Определение пола по имени

  • Введение
  • Установка и настройка
    • Установка
  • Примеры
    • Пример использования
  • Gender\Gender — Класс Gender\Gender
    • Gender\Gender::connect — Соединение с внешней базой имен
    • Gender\Gender::__construct — Конструктор объекта класса Gender
    • Gender\Gender::country — Получить текстовое представление страны
    • Gender\Gender::get — Определить пол по имени
    • Gender\Gender::isNick — Проверяет, является ли name0 псевдонимом для name1
    • Gender\Gender::similarNames — Получить похожие имена


Введение

Расширение PHP Gender - это порт программы gender.c, написанной Михаэлем Йоргом. Главное назначение этой программы - определение пола человека по его имени. Текущая база данных содержит более 40000 имен из 54 стран.


  • « Введение
  • Установка »
  • PHP Manual
  • Gender
  • Установка и настройка

Установка и настройка

Содержание

  • Установка


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/gender.

Библиотека DLL для этого PECL-расширения доступно тут » http://windows.php.net/downloads/pecl/releases/gender/.


  • « Установка
  • Пример использования »
  • PHP Manual
  • Gender
  • Примеры

Примеры

Содержание

  • Пример использования


Пример использования

Пример использования класса Gender.

Пример #1 Пример использования.

<?php

namespace Gender;

$gender = new Gender;

$name = "Milene";
$country = Gender::FRANCE;

$result = $gender->get($name, $country);

$data = $gender->country($country);

switch($result) {
    case Gender::IS_FEMALE:
        printf("%s - это женское имя в стране %s\n", $name, $data['country']);
    break;

    case Gender::IS_MOSTLY_FEMALE:
        printf("%s  - это скорее всего женское имя в стране %s\n", $name, $data['country']);
    break;

    case Gender::IS_MALE:
        printf("%s - это мужское имя в стране %s\n", $name, $data['country']);
    break;

    case Gender::IS_MOSTLY_MALE:
        printf("%s  - это скорее всего женское имя в стране %s\n", $name, $data['country']);
    break;

    case Gender::IS_UNISEX_NAME:
        printf("Имя %s годится и для женщин и для мужчин в стране %s\n", $name, $data['country']);
    break;

    case Gender::IS_A_COUPLE:
        printf("Имя %s может быть и женским и мужским в стране %s\n", $name, $data['country']);
    break;

    case Gender::NAME_NOT_FOUND:
        printf("Имя %s не найдено для страны %s\n", $name, $data['country']);
    break;

    case Gender::ERROR_IN_NAME:
        echo "В заданном имени ошибка!\n";
    break;

    default:
        echo "Случилась ошибка!\n";
    break;

}


Класс Gender\Gender

(PECL gender >= 0.6.0)

Введение

Обзор классов

Gender\Gender {
/* Константы */
const integer IS_FEMALE = 70 ;
const integer IS_MOSTLY_FEMALE = 102 ;
const integer IS_MALE = 77 ;
const integer IS_MOSTLY_MALE = 109 ;
const integer IS_UNISEX_NAME = 63 ;
const integer IS_A_COUPLE = 67 ;
const integer NAME_NOT_FOUND = 32 ;
const integer ERROR_IN_NAME = 69 ;
const integer ANY_COUNTRY = 0 ;
const integer BRITAIN = 1 ;
const integer IRELAND = 2 ;
const integer USA = 3 ;
const integer SPAIN = 4 ;
const integer PORTUGAL = 5 ;
const integer ITALY = 6 ;
const integer MALTA = 7 ;
const integer FRANCE = 8 ;
const integer BELGIUM = 9 ;
const integer LUXEMBOURG = 10 ;
const integer NETHERLANDS = 11 ;
const integer GERMANY = 12 ;
const integer EAST_FRISIA = 13 ;
const integer AUSTRIA = 14 ;
const integer SWISS = 15 ;
const integer ICELAND = 16 ;
const integer DENMARK = 17 ;
const integer NORWAY = 18 ;
const integer SWEDEN = 19 ;
const integer FINLAND = 20 ;
const integer ESTONIA = 21 ;
const integer LATVIA = 22 ;
const integer LITHUANIA = 23 ;
const integer POLAND = 24 ;
const integer CZECH_REP = 25 ;
const integer SLOVAKIA = 26 ;
const integer HUNGARY = 27 ;
const integer ROMANIA = 28 ;
const integer BULGARIA = 29 ;
const integer BOSNIA = 30 ;
const integer CROATIA = 31 ;
const integer KOSOVO = 32 ;
const integer MACEDONIA = 33 ;
const integer MONTENEGRO = 34 ;
const integer SERBIA = 35 ;
const integer SLOVENIA = 36 ;
const integer ALBANIA = 37 ;
const integer GREECE = 38 ;
const integer RUSSIA = 39 ;
const integer BELARUS = 40 ;
const integer MOLDOVA = 41 ;
const integer UKRAINE = 42 ;
const integer ARMENIA = 43 ;
const integer AZERBAIJAN = 44 ;
const integer GEORGIA = 45 ;
const integer KAZAKH_UZBEK = 46 ;
const integer TURKEY = 47 ;
const integer ARABIA = 48 ;
const integer ISRAEL = 49 ;
const integer CHINA = 50 ;
const integer INDIA = 51 ;
const integer JAPAN = 52 ;
const integer KOREA = 53 ;
/* Методы */
public boolean connect ( string $dsn )
public __construct ([ string $dsn ] )
public array country ( integer $country )
public integer get ( string $name [, integer $country ] )
public array isNick ( string $name0 , string $name1 [, integer $country ] )
public array similarNames ( string $name [, integer $country ] )
}

Предопределенные константы

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 boolean Gender\Gender::connect ( string $dsn )

Соединение с внешней базой имен. В данный момент поддерживаются только потоковые ресурсы.

Список параметров

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 array Gender\Gender::country ( integer $country )

Возвращает текстовое представление страны из констант класса.

Список параметров

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 integer Gender\Gender::get ( string $name [, integer $country ] )

Определить пол по заданным имени и стране.

Список параметров

name

Имя для проверки.

country

Идентификатор страны заданный константой класса.

Возвращаемые значения

Возвращает пол по имени.


Проверяет, является ли 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 array Gender\Gender::isNick ( string $name0 , string $name1 [, integer $country ] )

Проверяет, является ли name0 псевдонимом для name1.

Список параметров

name0

Имя для проверки.

name1

Имя для проверки.

country

Идентификатор страны заданный константой класса. Если опущен, то используется ANY_COUNTRY.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получить похожие имена

  • « Gender\Gender::isNick
  • Gettext »
  • PHP Manual
  • Gender\Gender
  • Получить похожие имена

Gender\Gender::similarNames

(PECL gender >= 0.9.0)

Gender\Gender::similarNames — Получить похожие имена

Описание

public array Gender\Gender::similarNames ( string $name [, integer $country ] )

Получить похожие имена для заданных имени и страны.

Список параметров

name

Имя для проверки.

country

Идентификатор страны заданный константой класса. Если опущен, то используется ANY_COUNTRY.

Возвращаемые значения

Возвращает массив с найдеными похожими именами.


Gettext

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции gettext
    • bind_textdomain_codeset — Устанавливает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена
    • bindtextdomain — Устанавливает путь для домена
    • dcgettext — Переопределяет одно сообщение в домене
    • dcngettext — Версия dcgettext для множественного числа
    • dgettext — Переопределяет текущий домен для одного сообщения
    • dngettext — Версия dgettext для множественного числа
    • gettext — Ищет сообщение в текущем домене
    • ngettext — Версия gettext для сообщений во множественном числе
    • textdomain — Устанавливает домен по умолчанию


Введение

Функции gettext реализуют NLS (Native Language Support) API, который может использоваться для интернационализации ваших PHP-приложений. Обратитесь к документации gettext для вашей системы или откройте её по адресу » http://www.gnu.org/software/gettext/manual/gettext.html.


Требования

Для использования функций данного модуля требуется установка пакета GNU gettext, который можно скачать по ссылке: » http://www.gnu.org/software/gettext/gettext.html.


Установка

Чтобы включить поддержку GNU gettext в вашу сборку PHP, добавьте в конфигурацию ключ --with-gettext[=DIR] , где DIR - папка установки gettext, обычно это /usr/local.


  • « Типы ресурсов
  • Функции gettext »
  • PHP Manual
  • Gettext
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции gettext

Содержание

  • bind_textdomain_codeset — Устанавливает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена
  • bindtextdomain — Устанавливает путь для домена
  • dcgettext — Переопределяет одно сообщение в домене
  • dcngettext — Версия dcgettext для множественного числа
  • dgettext — Переопределяет текущий домен для одного сообщения
  • dngettext — Версия dgettext для множественного числа
  • gettext — Ищет сообщение в текущем домене
  • ngettext — Версия gettext для сообщений во множественном числе
  • textdomain — Устанавливает домен по умолчанию


Устанавливает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена

  • « Функции gettext
  • bindtextdomain »
  • PHP Manual
  • Функции gettext
  • Устанавливает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена

bind_textdomain_codeset

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

bind_textdomain_codeset — Устанавливает кодировку, в которой будут возвращаться сообщения из каталога сообщений домена

Описание

string bind_textdomain_codeset ( string $domain , string $codeset )

Функция bind_textdomain_codeset() устанавливает кодировку, в которой будут возвращаться сообщения из domain, такими функциями как gettext().

Список параметров

domain

Домен.

codeset

Кодировка.

Возвращаемые значения

Строка в случае успеха.


Устанавливает путь для домена

  • « bind_textdomain_codeset
  • dcgettext »
  • PHP Manual
  • Функции gettext
  • Устанавливает путь для домена

bindtextdomain

(PHP 4, PHP 5, PHP 7)

bindtextdomain — Устанавливает путь для домена

Описание

string bindtextdomain ( string $domain , string $directory )

Функция bindtextdomain() устанавливает путь для домена.

Список параметров

domain

Домен

directory

Путь к директории

Возвращаемые значения

Полный путь для домена, установленного параметром domain.

Примеры

Пример #1 Пример использования bindtextdomain()

<?php

$domain = 'myapp';
echo bindtextdomain($domain, '/usr/share/myapp/locale');

?>

Результат выполнения данного примера:

/usr/share/myapp/locale


Переопределяет одно сообщение в домене

  • « bindtextdomain
  • dcngettext »
  • PHP Manual
  • Функции gettext
  • Переопределяет одно сообщение в домене

dcgettext

(PHP 4, PHP 5, PHP 7)

dcgettext — Переопределяет одно сообщение в домене

Описание

string dcgettext ( string $domain , string $message , int $category )

Данная функция позволяет переопределить текущий домен для одного сообщения.

Список параметров

domain

Домен

message

Сообщение

category

Категория

Возвращаемые значения

В случае успеха возвращает значение типа string.

Смотрите также

  • gettext() - Ищет сообщение в текущем домене


Версия dcgettext для множественного числа

  • « dcgettext
  • dgettext »
  • PHP Manual
  • Функции gettext
  • Версия dcgettext для множественного числа

dcngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

dcngettext — Версия dcgettext для множественного числа

Описание

string dcngettext ( string $domain , string $msgid1 , string $msgid2 , int $n , int $category )

Данная функция позволяет переопределить одно сообщение с использованием множественного числа в текущем домене.

Список параметров

domain

Домен.

msgid1

msgid2

n

category

Возвращаемые значения

В случае успеха возвращает значение типа string.

Смотрите также

  • ngettext() - Версия gettext для сообщений во множественном числе


Переопределяет текущий домен для одного сообщения

  • « dcngettext
  • dngettext »
  • PHP Manual
  • Функции gettext
  • Переопределяет текущий домен для одного сообщения

dgettext

(PHP 4, PHP 5, PHP 7)

dgettext — Переопределяет текущий домен для одного сообщения

Описание

string dgettext ( string $domain , string $message )

Функция dgettext() позволяет переопределить текущий домен domain для одного сообщения.

Список параметров

domain

Домен.

message

Сообщение.

Возвращаемые значения

В случае успеха возвращает значение типа string.

Смотрите также

  • gettext() - Ищет сообщение в текущем домене


Версия dgettext для множественного числа

  • « dgettext
  • gettext »
  • PHP Manual
  • Функции gettext
  • Версия dgettext для множественного числа

dngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

dngettext — Версия dgettext для множественного числа

Описание

string dngettext ( string $domain , string $msgid1 , string $msgid2 , int $n )

Функция dngettext() позволяет переопределить текущий домен domain для одного сообщения во множественном числе.

Список параметров

domain

Домен.

msgid1

msgid2

n

Возвращаемые значения

В случае успеха возвращает значение типа string.

Смотрите также

  • ngettext() - Версия gettext для сообщений во множественном числе


Ищет сообщение в текущем домене

  • « dngettext
  • ngettext »
  • PHP Manual
  • Функции gettext
  • Ищет сообщение в текущем домене

gettext

(PHP 4, PHP 5, PHP 7)

gettext — Ищет сообщение в текущем домене

Описание

string gettext ( string $message )

Ищет сообщение в текущем домене.

Список параметров

message

Переводимое сообщение.

Возвращаемые значения

Возвращает переведённую строку (string), если она найдена в таблице перевода, иначе - переданное сообщение.

Примеры

Пример #1 gettext()-check

<?php
// Устанавливаем русский язык
putenv('LC_ALL=ru_RU');
setlocale(LC_ALL, 'ru_RU');

// Указываем путь к таблицам переводов
bindtextdomain("myPHPApp", "./locale");

// Выбираем домен
textdomain("myPHPApp");

// Теперь поиск переводов будет идти в ./locale/ru_RU/LC_MESSAGES/myPHPApp.mo

// Выводим тестовое сообщение
echo gettext("Welcome to My PHP Application");

// Или с использованием псевдонима _()
echo _("Have a nice day");
?>

Примечания

Замечание:

Можно использовать символ подчёркивания '_' в качестве псевдонима этой функции.

Замечание:

На некоторых системах может быть недостаточно указания языка, в таких случаях используйте putenv() для указания текущей локали.

Смотрите также

  • setlocale() - Устанавливает настройки локали


Версия gettext для сообщений во множественном числе

  • « gettext
  • textdomain »
  • PHP Manual
  • Функции gettext
  • Версия gettext для сообщений во множественном числе

ngettext

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ngettext — Версия gettext для сообщений во множественном числе

Описание

string ngettext ( string $msgid1 , string $msgid2 , int $n )

Версия gettext() для сообщений во множественном числе. Некоторые языки имеют больше одной формы сообщения для разных значений количества.

Список параметров

msgid1

Идентификатор сообщения в единственном числе.

msgid2

Идентификатор сообщения во множественном числе.

n

Число (например количество элементов) для определения, какую грамматическую форму использовать.

Возвращаемые значения

Возвращает корректную форму сообщения во множественном числе, идентифицируемых по параметрам msgid1 и msgid2 для количества n.

Примеры

Пример #1 Пример использования ngettext()

<?php

setlocale(LC_ALL, 'ru_RU');
printf(ngettext("%d window", "%d windows", 21), 21); // 21 окно
printf(ngettext("%d window", "%d windows", 22), 22); // 22 окна
printf(ngettext("%d window", "%d windows", 25), 25); // 25 окон

?>


Устанавливает домен по умолчанию

  • « ngettext
  • iconv »
  • PHP Manual
  • Функции gettext
  • Устанавливает домен по умолчанию

textdomain

(PHP 4, PHP 5, PHP 7)

textdomain — Устанавливает домен по умолчанию

Описание

string textdomain ( string $text_domain )

Данная функция устанавливает домен, в котором будет производиться поиск при вызове функции gettext(), обычно называется именем приложения.

Список параметров

text_domain

Новый домен сообщений, или NULL для получения текущего значения без его изменения.

Возвращаемые значения

В случае успеха данная функция возвращает текущее домен сообщений, после возможного его изменения.


iconv

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • iconv
    • iconv_get_encoding — Получает текущее значение настроек преобразования кодировок
    • iconv_mime_decode_headers — Декодирует несколько полей заголовка MIME
    • iconv_mime_decode — Декодирует поле MIME-заголовка
    • iconv_mime_encode — Сжимает поле MIME-заголовка
    • iconv_set_encoding — Устанавливает значение для преобразования символов кодировки
    • iconv_strlen — Возвращает количество символов в строке
    • iconv_strpos — Возвращает позицию первого вхождения подстроки
    • iconv_strrpos — Возвращает позицию последнего вхождения подстроки
    • iconv_substr — Получение части строки
    • iconv — Преобразование строки в требуемую кодировку
    • ob_iconv_handler — Преобразует символы из текущей кодировки в кодировку выходного буфера


Введение

Это расширение предоставляет интерфейс к библиотеке преобразования кодировок iconv. При помощи данного модуля возможно изменение кодировки строки на другую поддерживаемую. Набор поддерживаемых кодировок зависит от реализации iconv в вашей системе. На некоторых платформах iconv может работать неправильно, в таких случаях рекомендуется установить библиотеку » GNU libiconv Она лучше преобразует строки.

Начиная с PHP 5.0.0, в расширение добавлены некоторые вспомогательные функции, удобные при работе с несколькими языками. Обратите внимание на следующие разделы для изучения новых особенностей.


Требования

Операционные системы, отвечающие стандартам POSIX, поставляются с C-библиотеками, предоставляющими функциональность iconv. Если ваша система в этот список не входит, вам придётся установить библиотеку » libiconv.


Установка

Это расширение по умолчанию включено, чтобы его отключить используйте опцию --without-iconv .

Также может быть задана необязательная директива --with-iconv-dir для указания альтернативного расположения iconv в системе, в которой компилируется PHP, иначе будет использовано расположение по умолчанию.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Iconv
Имя | По умолчанию | Меняемо | Список изменений
iconv.input_encoding | "" | PHP_INI_ALL | Поддерживается начиная с PHP 4.0.5. Устарело PHP 5.6.0.
iconv.output_encoding | "" | PHP_INI_ALL | Поддерживается начиная с PHP 4.0.5. Устарело PHP 5.6.0.
iconv.internal_encoding | "" | PHP_INI_ALL | Поддерживается начиная с PHP 4.0.5. Устарело PHP 5.6.0.

Краткое разъяснение конфигурационных директив.

Внимание

Некоторые системы (например IBM AIX) используют "ISO8859-1" вместо "ISO-8859-1", поэтому это значение должно быть указано в настройках и параметрах функции.

iconv.input_encoding string
Внимание

Данная возможность была xmlns УСТАРЕВШЕЙ начиная с версии PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

В PHP 5.6 и новее нужно оставлять эту опцию пустой и использовать вместо нее default_charset.

iconv.output_encoding string
Внимание

Данная возможность была xmlns УСТАРЕВШЕЙ начиная с версии PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

В PHP 5.6 и новее нужно оставлять эту опцию пустой и использовать вместо нее default_charset.

iconv.internal_encoding string
Внимание

Данная возможность была xmlns УСТАРЕВШЕЙ начиная с версии PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

В PHP 5.6 и новее нужно оставлять эту опцию пустой и использовать вместо нее default_charset.


Предопределенные константы

Начиная с PHP 4.3.0 возможно узнать во время выполнения, какая реализация iconv используется расширением.

Константы iconv
Имя | Тип | Описание
ICONV_IMPL | string | Реализация
ICONV_VERSION | string | Версия реализации

Замечание:

Используйте эти константы для написания сценариев, независимых от реализации.

Начиная с PHP 5.0.0, доступны также следующие константы:

Константы iconv, доступные начиная с PHP 5.0.0
Имя | Тип | Описание
ICONV_MIME_DECODE_STRICT | integer | Битовая маска, используемая в iconv_mime_decode()
ICONV_MIME_DECODE_CONTINUE_ON_ERROR | integer | Битовая маска, используемая в iconv_mime_decode()


iconv

Смотрите также

См. также Функции GNU Recode.

Содержание

  • iconv_get_encoding — Получает текущее значение настроек преобразования кодировок
  • iconv_mime_decode_headers — Декодирует несколько полей заголовка MIME
  • iconv_mime_decode — Декодирует поле MIME-заголовка
  • iconv_mime_encode — Сжимает поле MIME-заголовка
  • iconv_set_encoding — Устанавливает значение для преобразования символов кодировки
  • iconv_strlen — Возвращает количество символов в строке
  • iconv_strpos — Возвращает позицию первого вхождения подстроки
  • iconv_strrpos — Возвращает позицию последнего вхождения подстроки
  • iconv_substr — Получение части строки
  • iconv — Преобразование строки в требуемую кодировку
  • ob_iconv_handler — Преобразует символы из текущей кодировки в кодировку выходного буфера


Получает текущее значение настроек преобразования кодировок

  • « iconv
  • iconv_mime_decode_headers »
  • PHP Manual
  • iconv
  • Получает текущее значение настроек преобразования кодировок

iconv_get_encoding

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

iconv_get_encoding — Получает текущее значение настроек преобразования кодировок

Описание

mixed iconv_get_encoding ([ string $type = "all" ] )

Возвращает внутренние параметры конфигурации расширения iconv.

Список параметров

type

Возможные значения необязательного параметра type:

  • all
  • input_encoding
  • output_encoding
  • internal_encoding

Возвращаемые значения

Возвращает текущее значение указанной переменной и FALSE в случае ошибки.

Если type не указан, или равен "all", iconv_get_encoding() вернёт массив со значениями всех переменных.

Примеры

Пример #1 Пример использования iconv_get_encoding()

<pre>
<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("input_encoding", "WINDOWS-1251");
iconv_set_encoding("output_encoding", "KOI8-U");
var_dump(iconv_get_encoding('all'));
?>
</pre>

Результат выполнения данного примера:

Array
(
    [input_encoding] => WINDOWS-1251
    [output_encoding] => KOI8-U
    [internal_encoding] => UTF-8
)

Смотрите также

  • iconv_set_encoding() - Устанавливает значение для преобразования символов кодировки
  • ob_iconv_handler() - Преобразует символы из текущей кодировки в кодировку выходного буфера


Декодирует несколько полей заголовка MIME

  • « iconv_get_encoding
  • iconv_mime_decode »
  • PHP Manual
  • iconv
  • Декодирует несколько полей заголовка MIME

iconv_mime_decode_headers

(PHP 5, PHP 7)

iconv_mime_decode_headers — Декодирует несколько полей заголовка MIME

Описание

array iconv_mime_decode_headers ( string $encoded_headers [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )

Декодирует несколько полей заголовка MIME за один раз.

Список параметров

encoded_headers

Не раскодированные заголовки в виде строки.

mode

Параметр mode определяет поведение, если iconv_mime_decode_headers() обнаружит неправильное поле заголовка MIME. Можно указать любую комбинацию следующих битовых масок.

Битовые маски iconv_mime_decode_headers()
Значение | Константа | Описание
1 | ICONV_MIME_DECODE_STRICT | Строго следовать стандартам, определённым в » RFC2047. Эта опция по умолчанию отключена, так как, к сожалению, много проприетарных программ электронной почты не следуют стандартам, и генерируют некорректные заголовки MIME.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | Если установлена, iconv_mime_decode_headers() будет пытаться игнорировать любые ошибки и продолжать обработку текущего заголовка.

charset

Необязательный параметр charset указывает кодировку, в которой будет представлен результат. Если опущен, будет использовано значение директивы iconv.internal_encoding.

Возвращаемые значения

В случае успеха возвращает ассоциативный массив с полями MIME-заголовков, указанных параметром encoded_headers, или FALSE в случае ошибки.

Каждый ключ элемента возвращаемого массива представляет собой отдельное имя поля, а сам элемент - его значение. Если в заголовке существует несколько полей с одинаковым именем, iconv_mime_decode_headers() автоматически помещает их в подмассив с числовыми индексами в порядке их обработки.

Примеры

Пример #1 Пример использования iconv_mime_decode_headers()

<?php
$headers_string = <<<EOF
Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=
To: example@example.com
Date: Thu, 1 Jan 1970 00:00:00 +0000
Message-Id: <example@example.com>
Received: from localhost (localhost [127.0.0.1]) by localhost
    with SMTP id example for <example@example.com>;
    Thu, 1 Jan 1970 00:00:00 +0000 (UTC)
    (envelope-from example-return-0000-example=example.com@example.com)
Received: (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000

EOF;

$headers =  iconv_mime_decode_headers($headers_string, 0, "ISO-8859-1");
print_r($headers);
?>

Результат выполнения данного примера:

Array
(
    [Subject] => Prufung Prufung
    [To] => example@example.com
    [Date] => Thu, 1 Jan 1970 00:00:00 +0000
    [Message-Id] => <example@example.com>
    [Received] => Array
        (
            [0] => from localhost (localhost [127.0.0.1]) by localhost with SMTP id example for <example@example.com>; Thu, 1 Jan 1970 00:00:00 +0000 (UTC) (envelope-from example-return-0000-example=example.com@example.com)
            [1] => (qmail 0 invoked by uid 65534); 1 Thu 2003 00:00:00 +0000
        )

)

Смотрите также

  • iconv_mime_decode() - Декодирует поле MIME-заголовка
  • mb_decode_mimeheader() - Декодирует строку в MIME-заголовке
  • imap_mime_header_decode() - Decode MIME header elements
  • imap_base64() - Decode BASE64 encoded text
  • imap_qprint() - Convert a quoted-printable string to an 8 bit string


Декодирует поле MIME-заголовка

  • « iconv_mime_decode_headers
  • iconv_mime_encode »
  • PHP Manual
  • iconv
  • Декодирует поле MIME-заголовка

iconv_mime_decode

(PHP 5, PHP 7)

iconv_mime_decode — Декодирует поле MIME-заголовка

Описание

string iconv_mime_decode ( string $encoded_header [, int $mode = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )

Декодирует поле MIME-заголовка.

Список параметров

encoded_header

Закодированный заголовок в виде строки.

mode

mode задает режим поведения функции в случае, когда iconv_mime_decode() определит, что MIME-заголовок имеет недопустимую структуру. Режим задается комбинацией следующих битовых масок.

Битовые маски, применяемые в iconv_mime_decode()
Значение | Константа | Описание
1 | ICONV_MIME_DECODE_STRICT | Если задано, заголовок декодируется в полном соответствии со стандартом » RFC2047. Эта опция отключена по умолчанию, так как существует множество почтовых программ, которые не следуют спецификации и формируют некорректные с точки зрения стандарта MIME-заголовки.
2 | ICONV_MIME_DECODE_CONTINUE_ON_ERROR | Если задано, iconv_mime_decode_headers() будет пытаться пропускать грамматические ошибки и продолжать обработку заголовка.

charset

Необязательный аргумент charset задает набор символов, в котором будет представлен результат. Если аргумент опущен, будет использоваться iconv.internal_encoding.

Возвращаемые значения

Возвращает декодированный MIME-заголовок в случае успеха или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования iconv_mime_decode()

<?php
// Выдаст в результате "Subject: Prufung Prufung"
echo iconv_mime_decode("Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?=",
                       0, "ISO-8859-1");
?>

Смотрите также

  • iconv_mime_decode_headers() - Декодирует несколько полей заголовка MIME
  • mb_decode_mimeheader() - Декодирует строку в MIME-заголовке
  • imap_mime_header_decode() - Decode MIME header elements
  • imap_base64() - Decode BASE64 encoded text
  • imap_qprint() - Convert a quoted-printable string to an 8 bit string


Сжимает поле MIME-заголовка

  • « iconv_mime_decode
  • iconv_set_encoding »
  • PHP Manual
  • iconv
  • Сжимает поле MIME-заголовка

iconv_mime_encode

(PHP 5, PHP 7)

iconv_mime_encode — Сжимает поле MIME-заголовка

Описание

string iconv_mime_encode ( string $field_name , string $field_value [, array $preferences = NULL ] )

Сжимает поле MIME-заголовка и представляет его строкой вида:

Subject: =?ISO-8859-1?Q?Pr=FCfung_f=FCr?= Entwerfen von einer MIME kopfzeile
В примере выше "Subject" является именем поля, а часть строки, начиная с "=?ISO-8859-1?..." - его значение.

Список параметров

field_name

Имя поля.

field_value

Значение поля.

preferences

Есть возможность контролировать поведение функции iconv_mime_encode() посредством передачи массива с настройками в качестве третьего аргумента preferences. Возможные значения этого массива, поддерживаемые функцией iconv_mime_encode(), перечислены ниже. Обратите внимание, что имена элементов чувствительны к регистру символов.

Настройки, поддерживаемые в iconv_mime_encode()
Элемент | Тип | Описание | Значение по умолчанию | Пример
scheme | string | Задает, каким образом закодировать значение поля. Значением этого элемента может быть либо "B", либо "Q". "B" означает схему кодирования base64, а "Q" - quoted-printable. | B | B
input-charset | string | Задает, в какой кодировке представлены аргументы field_name и field_value. Если не задан, iconv_mime_encode() предполагает, что набор символов указан в ini-настройке iconv.internal_encoding. | iconv.internal_encoding | ISO-8859-1
output-charset | string | Задает набор символов, в котором будет представлен результирующий MIME-заголовок. | iconv.internal_encoding | UTF-8
line-length | integer | Устанавливает максимальную длину строк заголовка. Если результирующий заголовок окажется длиннее этой величины, функция его разрежет на несколько строк в соответствии с » Форматом интернет сообщений - RFC2822. Если не задан, эта длина будет установлена 76 символов. | 76 | 996
line-break-chars | string | Задает последовательность символов, которые будут использоваться для завершения "разрезанных" строк заголовка, если заголовок окажется длиннее одной строки. Если не задан, будут использоваться символы "\r\n" (CR LF). Обратите внимание, что этот аргумент всегда представляется в ASCII кодировке, вне зависимости от значения input-charset. | \r\n | \n

Возвращаемые значения

Возвращает закодированное MIME поле в случае успеха или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования iconv_mime_encode()

<?php
$preferences = array(
    "input-charset" => "ISO-8859-1",
    "output-charset" => "UTF-8",
    "line-length" => 76,
    "line-break-chars" => "\n"
);
$preferences["scheme"] = "Q";
// Результат "Subject: =?UTF-8?Q?Pr=C3=BCfung=20Pr=C3=BCfung?="
echo iconv_mime_encode("Subject", "Prufung Prufung", $preferences);

$preferences["scheme"] = "B";
// Результат "Subject: =?UTF-8?B?UHLDvGZ1bmcgUHLDvGZ1bmc=?="
echo iconv_mime_encode("Subject", "Prufung Prufung", $preferences);
?>

Смотрите также

  • imap_binary() - Convert an 8bit string to a base64 string
  • mb_encode_mimeheader() - Кодирование строки для MIME-заголовка
  • imap_8bit() - Конвертирует 8-битную строку в quoted-printable строку
  • quoted_printable_encode() - Кодирует 8-битную строку в с помощью метода quoted-printable


Устанавливает значение для преобразования символов кодировки

  • « iconv_mime_encode
  • iconv_strlen »
  • PHP Manual
  • iconv
  • Устанавливает значение для преобразования символов кодировки

iconv_set_encoding

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

iconv_set_encoding — Устанавливает значение для преобразования символов кодировки

Описание

bool iconv_set_encoding ( string $type , string $charset )

Изменяет значение указанной параметром type внутренней переменной на charset.

Список параметров

type

Значение type может быть одним из приведенных ниже:

  • input_encoding
  • output_encoding
  • internal_encoding

charset

Набор символов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования iconv_set_encoding()

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
?>

Смотрите также

  • iconv_get_encoding() - Получает текущее значение настроек преобразования кодировок
  • ob_iconv_handler() - Преобразует символы из текущей кодировки в кодировку выходного буфера


Возвращает количество символов в строке

  • « iconv_set_encoding
  • iconv_strpos »
  • PHP Manual
  • iconv
  • Возвращает количество символов в строке

iconv_strlen

(PHP 5, PHP 7)

iconv_strlen — Возвращает количество символов в строке

Описание

int iconv_strlen ( string $str [, string $charset = ini_get("iconv.internal_encoding") ] )

В отличие от strlen(), iconv_strlen() учитывает кодировку строки. Длина строки не обязательно будет соответствовать количеству байт в ней, так как в различных кодировках различные символы кодируются различным количеством байт, например, юникод может быть и двух-, и четырёхбайтным.

Список параметров

str

Строка.

charset

Если параметр charset опущен, предполагается, что кодировка строки str эквивалентна значению iconv.internal_encoding.

Возвращаемые значения

Возвращает количество символов в str как целое число.

Смотрите также

  • grapheme_strlen() - Get string length in grapheme units
  • mb_strlen() - Получает длину строки
  • strlen() - Возвращает длину строки


Возвращает позицию первого вхождения подстроки

  • « iconv_strlen
  • iconv_strrpos »
  • PHP Manual
  • iconv
  • Возвращает позицию первого вхождения подстроки

iconv_strpos

(PHP 5, PHP 7)

iconv_strpos — Возвращает позицию первого вхождения подстроки

Описание

int iconv_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $charset = ini_get("iconv.internal_encoding") ]] )

Возвращает позицию первого вхождения подстроки needle в строке haystack.

В отличие от strpos(), iconv_strpos() возвращает смещение перед искомой строкой в символах, а не в байтах. Количество символов трактуется в зависимости от указанной параметром charset кодировки.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Искомая подстрока.

offset

Необязательный параметр offset позволяет указать, с какого по счёту символа строки начинать поиск. Если указано отрицательное значение, то смещение будет отсчитываться с конца строки.

charset

Если параметр charset не указан, то подразумевается, что string имеет кодировку iconv.internal_encoding.

Если haystack или needle не являются строками, они будут преобразованы в строку и применены как код символа.

Возвращаемые значения

Возвращает номер позиции первого вхождения строки needle в haystack.

Если строка needle не найдена, iconv_strpos() возвращает FALSE.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
7.1.0 | Поддержка отрицательных значений offset.

Смотрите также

  • strpos() - Возвращает позицию первого вхождения подстроки
  • iconv_strrpos() - Возвращает позицию последнего вхождения подстроки
  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую


Возвращает позицию последнего вхождения подстроки

  • « iconv_strpos
  • iconv_substr »
  • PHP Manual
  • iconv
  • Возвращает позицию последнего вхождения подстроки

iconv_strrpos

(PHP 5, PHP 7)

iconv_strrpos — Возвращает позицию последнего вхождения подстроки

Описание

int iconv_strrpos ( string $haystack , string $needle [, string $charset = ini_get("iconv.internal_encoding") ] )

Находит последнюю позицию подстроки needle в строке haystack.

В отличие от strrpos(), iconv_strrpos() возвращает смещение перед искомой строкой в символах, а не в байтах. Количество символов трактуется в зависимости от указанной параметром charset кодировки.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Искомая подстрока.

charset

Если параметр charset не указан, то подразумевается, что string имеет кодировку iconv.internal_encoding.

Если haystack или needle не являются строками, они будут преобразованы в строку и применены как код символа.

Возвращаемые значения

Возвращает номер позиции последнего вхождения строки needle в haystack.

Если строка needle не найдена, iconv_strrpos() возвращает FALSE.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Смотрите также

  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • iconv_strpos() - Возвращает позицию первого вхождения подстроки
  • mb_strrpos() - Поиск позиции последнего вхождения одной строки в другую


Получение части строки

  • « iconv_strrpos
  • iconv »
  • PHP Manual
  • iconv
  • Получение части строки

iconv_substr

(PHP 5, PHP 7)

iconv_substr — Получение части строки

Описание

string iconv_substr ( string $str , int $offset [, int $length = iconv_strlen($str, $charset) [, string $charset = ini_get("iconv.internal_encoding") ]] )

Получает часть строки str, определенную параметрами offset и length.

Список параметров

str

Изначальная строка.

offset

Если offset неотрицателен, iconv_substr() получает часть строки str начиная с символа с порядковым номером offset (нумерация начинается с нуля).

Если offset отрицателен, iconv_substr() получает часть строки начиная с позиции, отстоящую от конца строки str на offset символов.

length

Если length задан и положителен, возвращаемое значение содержит не более length символов, начиная с offset (зависит от длины строки string).

Если указан отрицательный length, iconv_substr() получает часть строки str начиная с offset символа и до символа, отстоящего от конца строки на length символов. В случае, если offset также отрицателен, стартовая позиция вычисляется заранее в соответствии с вышеописанным правилом.

charset

Если параметр charset не указан, предполагается, что строка string имеет кодировку iconv.internal_encoding.

Обратите внимание, что и offset, и length основываются на размере символа, рассчитанного исходя из кодировки текста, в то время как схожая функция substr() всегда рассматривает их побайтовое смещение.

Возвращаемые значения

Возвращает часть строки str, определенную параметрами offset и length.

Если строка str имеет меньшую длину, чем параметр offset, будет возвращено FALSE.

Смотрите также

  • substr() - Возвращает подстроку
  • mb_substr() - Возвращает часть строки
  • mb_strcut() - Получение части строки


Преобразование строки в требуемую кодировку

  • « iconv_substr
  • ob_iconv_handler »
  • PHP Manual
  • iconv
  • Преобразование строки в требуемую кодировку

iconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

iconv — Преобразование строки в требуемую кодировку

Описание

string iconv ( string $in_charset , string $out_charset , string $str )

Преобразует набор символов строки str из кодировки in_charset в out_charset.

Список параметров

in_charset

Кодировка входной строки.

out_charset

Требуемая на выходе кодировка.

Если добавить к out_charset строку //TRANSLIT, включается режим транслитерации. Это значит, что в случае, если символ не может быть представлен в требуемой кодировке, он будет заменен на один или несколько нескольких наиболее близких по внешнему виду символов. Если добавить строку //IGNORE, то символы, которые не могут быть представлены в требуемой кодировке, будут удалены. В случае отсутствия вышеуказанных параметров при наличии некорректных символов строка str будет обрезана до первого такого символа, будет сгенерирована ошибка уровня E_NOTICE и функция вернет FALSE.

str

Строка, которую необходимо преобразовать.

Возвращаемые значения

Возвращает преобразованную строку или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.4.0 | Начиная с этой версии, функция возвращает FALSE на некорректных символах, только если в выходной кодировке не указан //IGNORE. До этого, функция возвращала часть строки.

Примеры

Пример #1 Пример использования iconv()

<?php
$text = "This is the Euro symbol '€'.";

echo 'Original : ', $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 'Plain    : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

Original : This is the Euro symbol '€'.
TRANSLIT : This is the Euro symbol 'EUR'.
IGNORE   : This is the Euro symbol ''.
Plain    :
Notice: iconv(): Detected an illegal character in input string in .\iconv-example.php on line 7


Преобразует символы из текущей кодировки в кодировку выходного буфера

  • « iconv
  • intl »
  • PHP Manual
  • iconv
  • Преобразует символы из текущей кодировки в кодировку выходного буфера

ob_iconv_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ob_iconv_handler — Преобразует символы из текущей кодировки в кодировку выходного буфера

Описание

string ob_iconv_handler ( string $contents , int $status )

Преобразует строку, закодированную в internal_encoding, в строку, закодированную в output_encoding.

internal_encoding и output_encoding должны быть определены в php.ini или функцией iconv_set_encoding().

Список параметров

Информацию об аргументах этого обработчика можно посмотреть в описании к функции ob_start().

Возвращаемые значения

Информацию о возвращаемых значениях этого обработчика можно посмотреть в описании к функции ob_start().

Примеры

Пример #1 Пример использования ob_iconv_handler()

<?php
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "ISO-8859-1");
ob_start("ob_iconv_handler"); // старт буферизации вывода
?>

Смотрите также

  • iconv_get_encoding() - Получает текущее значение настроек преобразования кодировок
  • iconv_set_encoding() - Устанавливает значение для преобразования символов кодировки
  • функции контроля вывода


Функции интернационализации

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Основы использования расширения
  • Collator — Класс Collator
    • Collator::asort — Sort array maintaining index association
    • Collator::compare — Compare two Unicode strings
    • Collator::__construct — Create a collator
    • Collator::create — Create a collator
    • Collator::getAttribute — Get collation attribute value
    • Collator::getErrorCode — Get collator's last error code
    • Collator::getErrorMessage — Get text for collator's last error code
    • Collator::getLocale — Get the locale name of the collator
    • Collator::getSortKey — Get sorting key for a string
    • Collator::getStrength — Get current collation strength
    • Collator::setAttribute — Set collation attribute
    • Collator::setStrength — Set collation strength
    • Collator::sortWithSortKeys — Sort array using specified collator and sort keys
    • Collator::sort — Sort array using specified collator
  • NumberFormatter — The NumberFormatter class
    • NumberFormatter::create — Create a number formatter
    • NumberFormatter::formatCurrency — Format a currency value
    • NumberFormatter::format — Format a number
    • NumberFormatter::getAttribute — Get an attribute
    • NumberFormatter::getErrorCode — Get formatter's last error code.
    • NumberFormatter::getErrorMessage — Get formatter's last error message.
    • NumberFormatter::getLocale — Get formatter locale
    • NumberFormatter::getPattern — Get formatter pattern
    • NumberFormatter::getSymbol — Get a symbol value
    • NumberFormatter::getTextAttribute — Get a text attribute
    • NumberFormatter::parseCurrency — Parse a currency number
    • NumberFormatter::parse — Parse a number
    • NumberFormatter::setAttribute — Set an attribute
    • NumberFormatter::setPattern — Set formatter pattern
    • NumberFormatter::setSymbol — Set a symbol value
    • NumberFormatter::setTextAttribute — Set a text attribute
  • Locale — Класс Locale
    • Locale::acceptFromHttp — Tries to find out best available locale based on HTTP "Accept-Language" header
    • Locale::canonicalize — Canonicalize the locale string
    • Locale::composeLocale — Returns a correctly ordered and delimited locale ID
    • Locale::filterMatches — Checks if a language tag filter matches with locale
    • Locale::getAllVariants — Gets the variants for the input locale
    • Locale::getDefault — Gets the default locale value from the INTL global 'default_locale'
    • Locale::getDisplayLanguage — Returns an appropriately localized display name for language of the inputlocale
    • Locale::getDisplayName — Returns an appropriately localized display name for the input locale
    • Locale::getDisplayRegion — Returns an appropriately localized display name for region of the input locale
    • Locale::getDisplayScript — Returns an appropriately localized display name for script of the input locale
    • Locale::getDisplayVariant — Returns an appropriately localized display name for variants of the input locale
    • Locale::getKeywords — Gets the keywords for the input locale
    • Locale::getPrimaryLanguage — Gets the primary language for the input locale
    • Locale::getRegion — Gets the region for the input locale
    • Locale::getScript — Gets the script for the input locale
    • Locale::lookup — Searches the language tag list for the best match to the language
    • Locale::parseLocale — Returns a key-value array of locale ID subtag elements.
    • Locale::setDefault — sets the default runtime locale
  • Normalizer — Класс Normalizer
    • Normalizer::isNormalized — Проверить, соответствует ли переданная строка заданной форме нормализации
    • Normalizer::normalize — Нормализация строки
  • MessageFormatter — The MessageFormatter class
    • MessageFormatter::create — Constructs a new Message Formatter
    • MessageFormatter::formatMessage — Quick format message
    • MessageFormatter::format — Format the message
    • MessageFormatter::getErrorCode — Get the error code from last operation
    • MessageFormatter::getErrorMessage — Get the error text from the last operation
    • MessageFormatter::getLocale — Get the locale for which the formatter was created.
    • MessageFormatter::getPattern — Get the pattern used by the formatter
    • MessageFormatter::parseMessage — Quick parse input string
    • MessageFormatter::parse — Parse input string according to pattern
    • MessageFormatter::setPattern — Set the pattern used by the formatter
  • IntlCalendar — Класс IntlCalendar
    • IntlCalendar::add — Add a (signed) amount of time to a field
    • IntlCalendar::after — Whether this object?s time is after that of the passed object
    • IntlCalendar::before — Whether this object?s time is before that of the passed object
    • IntlCalendar::clear — Clear a field or all fields
    • IntlCalendar::__construct — Private constructor for disallowing instantiation
    • IntlCalendar::createInstance — Create a new IntlCalendar
    • IntlCalendar::equals — Compare time of two IntlCalendar objects for equality
    • IntlCalendar::fieldDifference — Calculate difference between given time and this object?s time
    • IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string
    • IntlCalendar::get — Get the value for a field
    • IntlCalendar::getActualMaximum — The maximum value for a field, considering the object?s current time
    • IntlCalendar::getActualMinimum — The minimum value for a field, considering the object?s current time
    • IntlCalendar::getAvailableLocales — Get array of locales for which there is data
    • IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two
    • IntlCalendar::getErrorCode — Get last error code on the object
    • IntlCalendar::getErrorMessage — Get last error message on the object
    • IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar?s locale
    • IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field
    • IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values
    • IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field
    • IntlCalendar::getLocale — Get the locale associated with the object
    • IntlCalendar::getMaximum — Get the global maximum value for a field
    • IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have
    • IntlCalendar::getMinimum — Get the global minimum value for a field
    • IntlCalendar::getNow — Get number representing the current time
    • IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time
    • IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time
    • IntlCalendar::getTime — Get time currently represented by the object
    • IntlCalendar::getTimeZone — Get the object?s timezone
    • IntlCalendar::getType — Get the calendar type
    • IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends
    • IntlCalendar::inDaylightTime — Whether the object?s time is in Daylight Savings Time
    • IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time
    • IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode
    • IntlCalendar::isSet — Whether a field is set
    • IntlCalendar::isWeekend — Whether a certain date/time is in the weekend
    • IntlCalendar::roll — Add value to field without carrying into more significant fields
    • IntlCalendar::set — Set a time field or several common fields at once
    • IntlCalendar::setFirstDayOfWeek — Set the day on which the week is deemed to start
    • IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient
    • IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have
    • IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions
    • IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions
    • IntlCalendar::setTime — Set the calendar time in milliseconds since the epoch
    • IntlCalendar::setTimeZone — Set the timezone used by this calendar
    • IntlCalendar::toDateTime — Convert an IntlCalendar into a DateTime object
  • IntlTimeZone — Класс IntlTimeZone
    • IntlTimeZone::countEquivalentIDs — Get the number of IDs in the equivalency group that includes the given ID
    • IntlTimeZone::createDefault — Create a new copy of the default timezone for this host
    • IntlTimeZone::createEnumeration — Get an enumeration over time zone IDs associated with the given country or offset
    • IntlTimeZone::createTimeZone — Create a timezone object for the given ID
    • IntlTimeZone::fromDateTimeZone — Create a timezone object from DateTimeZone
    • IntlTimeZone::getCanonicalID — Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
    • IntlTimeZone::getDisplayName — Get a name of this time zone suitable for presentation to the user
    • IntlTimeZone::getDSTSavings — Get the amount of time to be added to local standard time to get local wall clock time
    • IntlTimeZone::getEquivalentID — Get an ID in the equivalency group that includes the given ID
    • IntlTimeZone::getErrorCode — Get last error code on the object
    • IntlTimeZone::getErrorMessage — Get last error message on the object
    • IntlTimeZone::getGMT — Create GMT (UTC) timezone
    • IntlTimeZone::getID — Get timezone ID
    • IntlTimeZone::getOffset — Get the time zone raw and GMT offset for the given moment in time
    • IntlTimeZone::getRawOffset — Get the raw GMT offset (before taking daylight savings time into account
    • IntlTimeZone::getTZDataVersion — Get the timezone data version currently used by ICU
    • IntlTimeZone::hasSameRules — Check if this zone has the same rules and offset as another zone
    • IntlTimeZone::toDateTimeZone — Convert to DateTimeZone object
    • IntlTimeZone::useDaylightTime — Check if this time zone uses daylight savings time
  • IntlDateFormatter — Класс IntlDateFormatter
    • IntlDateFormatter::create — Create a date formatter
    • IntlDateFormatter::format — Format the date/time value as a string
    • IntlDateFormatter::formatObject — Formats an object
    • IntlDateFormatter::getCalendar — Get the calendar type used for the IntlDateFormatter
    • IntlDateFormatter::getDateType — Get the datetype used for the IntlDateFormatter
    • IntlDateFormatter::getErrorCode — Get the error code from last operation
    • IntlDateFormatter::getErrorMessage — Get the error text from the last operation.
    • IntlDateFormatter::getLocale — Get the locale used by formatter
    • IntlDateFormatter::getPattern — Get the pattern used for the IntlDateFormatter
    • IntlDateFormatter::getTimeType — Get the timetype used for the IntlDateFormatter
    • IntlDateFormatter::getTimeZoneId — Get the timezone-id used for the IntlDateFormatter
    • IntlDateFormatter::getCalendarObject — Get copy of formatter?s calendar object
    • IntlDateFormatter::getTimeZone — Get formatter?s timezone
    • IntlDateFormatter::isLenient — Get the lenient used for the IntlDateFormatter
    • IntlDateFormatter::localtime — Parse string to a field-based time value
    • IntlDateFormatter::parse — Parse string to a timestamp value
    • IntlDateFormatter::setCalendar — Sets the calendar type used by the formatter
    • IntlDateFormatter::setLenient — Set the leniency of the parser
    • IntlDateFormatter::setPattern — Set the pattern used for the IntlDateFormatter
    • IntlDateFormatter::setTimeZoneId — Sets the time zone to use
    • IntlDateFormatter::setTimeZone — Sets formatter?s timezone
  • ResourceBundle — Класс ResourceBundle
    • ResourceBundle::count — Получить количество элементов в пакете
    • ResourceBundle::create — Создать пакет ресурсов
    • ResourceBundle::getErrorCode — Получить последний код ошибки пакета
    • ResourceBundle::getErrorMessage — Получить последнее сообщение об ошибке пакета
    • ResourceBundle::get — Получить данные из пакета
    • ResourceBundle::getLocales — Получить поддерживаемые локали
  • Spoofchecker — Класс Spoofchecker
    • Spoofchecker::areConfusable — Проверить, являются ли строки подозрительными
    • Spoofchecker::__construct — Конструктор класса
    • Spoofchecker::isSuspicious — Проверяет, содержит ли текст подозрительные символы
    • Spoofchecker::setAllowedLocales — Локаль для использования в проверках
    • Spoofchecker::setChecks — Установить набор проверок
  • Transliterator — Класс Transliterator
    • Transliterator::__construct — Private constructor to deny instantiation
    • Transliterator::create — Create a transliterator
    • Transliterator::createFromRules — Create transliterator from rules
    • Transliterator::createInverse — Create an inverse transliterator
    • Transliterator::getErrorCode — Get last error code
    • Transliterator::getErrorMessage — Get last error message
    • Transliterator::listIDs — Get transliterator IDs
    • Transliterator::transliterate — Transliterate a string
  • IntlBreakIterator — Класс IntlBreakIterator
    • IntlBreakIterator::__construct — Private constructor for disallowing instantiation
    • IntlBreakIterator::createCharacterInstance — Create break iterator for boundaries of combining character sequences
    • IntlBreakIterator::createCodePointInstance — Create break iterator for boundaries of code points
    • IntlBreakIterator::createLineInstance — Create break iterator for logically possible line breaks
    • IntlBreakIterator::createSentenceInstance — Create break iterator for sentence breaks
    • IntlBreakIterator::createTitleInstance — Create break iterator for title-casing breaks
    • IntlBreakIterator::createWordInstance — Create break iterator for word breaks
    • IntlBreakIterator::current — Get index of current position
    • IntlBreakIterator::first — Set position to the first character in the text
    • IntlBreakIterator::following — Advance the iterator to the first boundary following specified offset
    • IntlBreakIterator::getErrorCode — Get last error code on the object
    • IntlBreakIterator::getErrorMessage — Get last error message on the object
    • IntlBreakIterator::getLocale — Get the locale associated with the object
    • IntlBreakIterator::getPartsIterator — Create iterator for navigating fragments between boundaries
    • IntlBreakIterator::getText — Get the text being scanned
    • IntlBreakIterator::isBoundary — Tell whether an offset is a boundary?s offset
    • IntlBreakIterator::last — Set the iterator position to index beyond the last character
    • IntlBreakIterator::next — Advance the iterator the next boundary
    • IntlBreakIterator::preceding — Set the iterator position to the first boundary before an offset
    • IntlBreakIterator::previous — Set the iterator position to the boundary immediately before the current
    • IntlBreakIterator::setText — Set the text being scanned
  • IntlRuleBasedBreakIterator — Класс IntlRuleBasedBreakIterator
    • IntlRuleBasedBreakIterator::__construct — Create iterator from ruleset
    • IntlRuleBasedBreakIterator::getBinaryRules — Get the binary form of compiled rules
    • IntlRuleBasedBreakIterator::getRules — Get the rule set used to create this object
    • IntlRuleBasedBreakIterator::getRuleStatus — Get the largest status value from the break rules that determined the current break position
    • IntlRuleBasedBreakIterator::getRuleStatusVec — Get the status values from the break rules that determined the current break position
  • IntlCodePointBreakIterator — Класс IntlCodePointBreakIterator
    • IntlCodePointBreakIterator::getLastCodePoint — Получить последний код символа выданный при перемещении итератора вперед или назад
  • IntlPartsIterator — Класс IntlPartsIterator
    • IntlPartsIterator::getBreakIterator — Получить IntlBreakIterator сохраняя итератор этой части
  • UConverter — Класс UConverter
    • UConverter::__construct — Create UConverter object
    • UConverter::convert — Convert string from one charset to another
    • UConverter::fromUCallback — Default "from" callback function
    • UConverter::getAliases — Get the aliases of the given name
    • UConverter::getAvailable — Get the available canonical converter names
    • UConverter::getDestinationEncoding — Get the destination encoding
    • UConverter::getDestinationType — Get the destination converter type
    • UConverter::getErrorCode — Get last error code on the object
    • UConverter::getErrorMessage — Get last error message on the object
    • UConverter::getSourceEncoding — Get the source encoding
    • UConverter::getSourceType — Get the source convertor type
    • UConverter::getStandards — Get standards associated to converter names
    • UConverter::getSubstChars — Get substitution chars
    • UConverter::reasonText — Get string representation of the callback reason
    • UConverter::setDestinationEncoding — Set the destination encoding
    • UConverter::setSourceEncoding — Set the source encoding
    • UConverter::setSubstChars — Set the substitution chars
    • UConverter::toUCallback — Default "to" callback function
    • UConverter::transcode — Convert string from one charset to another
  • Функции Grapheme
    • grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.
    • grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string
    • grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
    • grapheme_strlen — Get string length in grapheme units
    • grapheme_strpos — Find position (in grapheme units) of first occurrence of a string
    • grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string
    • grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string
    • grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack.
    • grapheme_substr — Return part of a string
  • Функции IDN
    • idn_to_ascii — Преобразовать доменное имя в формат IDNA ASCII
    • idn_to_utf8 — Преобразование доменного имени из IDNA ASCII в Unicode
  • IntlChar
    • IntlChar::charAge — Получить "возраст" символьного кода
    • IntlChar::charDigitValue — Получить десятичную цифру из символа десятичной цифры
    • IntlChar::charDirection — Получить категорию направления письма для символа
    • IntlChar::charFromName — Найти символ Unicode по его имени и вернуть его код
    • IntlChar::charMirror — Получить "зеркальный" символ по коду
    • IntlChar::charName — Получить имя символа Unicode
    • IntlChar::charType — Получить главную категорию, в которую входит символ
    • IntlChar::chr — Получить символ Unicode по его коду
    • IntlChar::digit — Получить десятичное число из символа Unicode с заданным основанием
    • IntlChar::enumCharNames — Перечисляет все присвоенные символы Unicode в заданном диапазоне
    • IntlChar::enumCharTypes — Перечисление последовательностей символов Unicode сгруппированых по им категориям
    • IntlChar::foldCase — Производит преобразование регистра заданного символа
    • IntlChar::forDigit — Получить символ представляющий заданное число в заданном основании
    • IntlChar::getBidiPairedBracket — Получить парную скобку для символа
    • IntlChar::getBlockCode — Получить блок размещения символа Unicode
    • IntlChar::getCombiningClass — Получить комбинирующий класс для символа
    • IntlChar::getFC_NFKC_Closure — Получить свойство FC_NFKC_Closure для символа
    • IntlChar::getIntPropertyMaxValue — Получить минимальное значение для свойства Unicode
    • IntlChar::getIntPropertyMinValue — Получить минимальное значение для свойства Unicode
    • IntlChar::getIntPropertyValue — Получить значение свойства Unicode для символа
    • IntlChar::getNumericValue — Получить числовое предствление для символа Unicode
    • IntlChar::getPropertyEnum — Получить значение константы свойства по его имени
    • IntlChar::getPropertyName — Получить Unicode имя свойства
    • IntlChar::getPropertyValueEnum — Вернуть числовой идентификатор свойства по его имени
    • IntlChar::getPropertyValueName — Получить имя Unicode для значения свойства
    • IntlChar::getUnicodeVersion — Получить версию Unicode
    • IntlChar::hasBinaryProperty — Проверить бинарное свойство Unicode для символа
    • IntlChar::isalnum — Проверить, является ли символ буквой либо цифрой
    • IntlChar::isalpha — Проверить, является ли символ буквой
    • IntlChar::isbase — Проверить, является ли символ базовым
    • IntlChar::isblank — Проверить, является ли символ "пустым" либо "горизонтальным пробелом"
    • IntlChar::iscntrl — Проверить, является ли символ управляющим
    • IntlChar::isdefined — Проверить, определен ли символ
    • IntlChar::isdigit — Проверить, является ли символ цифрой
    • IntlChar::isgraph — Проверить, является ли символ графическим символом
    • IntlChar::isIDIgnorable — Проверить, является ли символ игнорируемым
    • IntlChar::isIDPart — Проверить, допустимо ли использовать символ в идентификаторе
    • IntlChar::isIDStart — Проверить, допустимо ли использовать символ в начале идентификатора
    • IntlChar::isISOControl — Проверить, является ли символ управляющим согласно ISO
    • IntlChar::isJavaIDPart — Проверить, является ли символ допустимым в идентификаторе Java
    • IntlChar::isJavaIDStart — Проверить, может ли символ быть первым в идентификаторе Java
    • IntlChar::isJavaSpaceChar — Проверить, является ли символ пробельным с точки зрения языка Java
    • IntlChar::islower — Проверить, в нижнем ли регистре символ
    • IntlChar::isMirrored — Проверить, если у символа свойство Bidi_Mirrored
    • IntlChar::isprint — Проверяет, является ли симвом отображаемым
    • IntlChar::ispunct — Проверяет, является ли символ символом пунктуации
    • IntlChar::isspace — Проверяет, является ли символ пробельным
    • IntlChar::istitle — Проверить, является ли символ титульным (Titlecase)
    • IntlChar::isUAlphabetic — Проверить, установлено ли у символа свойство Alphabetic
    • IntlChar::isULowercase — Проверить, является ли символ символом в нижнем регистре
    • IntlChar::isupper — Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
    • IntlChar::isUUppercase — Проверить, является ли символ символом в верхнем регистре
    • IntlChar::isUWhiteSpace — Проверить, имеет ли символ свойство White_Space (пробельный символ)
    • IntlChar::isWhitespace — Проверить, является ли символ пробельным с точки зрения ICU
    • IntlChar::isxdigit — Проверить, является ли символ шестнадцатеричной цифрой
    • IntlChar::ord — Получить код символ Unicode
    • IntlChar::tolower — Преобразование символа Unicode в нижний регистр
    • IntlChar::totitle — Преобразует символ Unicode в titlecase
    • IntlChar::toupper — Преобразование символа Unicode в верхний регистр
  • IntlException — Класс исключений для ошибок intl
  • IntlIterator — Класс IntlIterator
    • IntlIterator::current — Получить текущий элемент
    • IntlIterator::key — Получить ключ текущего элемента
    • IntlIterator::next — Перейти к следующему элементу
    • IntlIterator::rewind — Перейти к первому элементу
    • IntlIterator::valid — Проверить, корректна ли текущая позиция
  • Функции intl
    • intl_error_name — Получить имя ошибки по ее коду
    • intl_get_error_code — Получить код последней ошибки
    • intl_get_error_message — Получить описание ошибки
    • intl_is_failure — Проверить, является ли код ошибки признаком сбоя


Введение

Расширение интернационализации (далее Intl) - это обёртка для библиотеки » ICU, позволяющей программистам на PHP производить различные операции, что поведение зависит от локали, например такие как форматирование, транслитерация, преобразование кодировок, операции с календарем, совместимое с » UCA сравнение, определение границ текста и работать с идентификаторами локатей, временными зонами и графемами.

Программный интерфейс расширения разрабатывается так, чтобы как можно точнее повторять API ICU, чтобы люди, работавшие с ICE в C/C++ или Java, могли легко использовать API PHP. Также благодоря этому документация ICE может быть полезной чтобы понять различие функции ICU.

Intl состоит из несколких модулей, каждый из которых предоставляет соответствующий API ICU:

  • Модуль сравнения: предоставляет инструменты для сравнения строк с поддержкой поддержкой соответствующего локали порядка сортировки.
  • Модуль форматирования чисел: позволяет отображать числа в соответствии с правилами локали, или заданным шаблоном или с набором правил. Также позволяет правильно разбирать строки в числа.
  • Модуль форматирования сообщений: позволяет создавать сообщения, включающие данные (такие как числа и даты), отформатированные в соответствии с заданными шаблоном и локальными правилами, и, также, разбирать сообщения, извлекая из них данные.
  • Модуль нормализации: предоставляет функции для преобразования текста в одну из нормализованных форм Unicode. Также предоставляет возможность проверить, является ли предоставленный текст уже нормализованным.
  • Модуль локали: предоставляет взаимодействие с идентификаторами локали как к функциями, позволяя получить вложенные теги локали; разбор, композиция, сравнение (поиск и фильтрация) идентификаторов локали.
  • Модуль календаня: предоставляет класс, полезный для проведения зависимых от локали операций с календарем, получения различной информации, такой как временные зоны для выбранной локали, первый день недели или режим текущего зимнего/летнего времени.
  • Модуль временной зоны: предоставляет обертку над » базой данных временных зон, в которой содержится исчерпывающая информация о всех мировых временных зонах.
  • Модуль форматирования даты: позволяет отображать дату в соответствии с принятым для данной локали форматом либо заданным шаблоном или набором правил. Также нужен для разбора строк, содержащих описание даты и времени.
  • Модуль транслитерации: позволяет получить представление строки на различных языках в латинице.

Links

  • » Различная документация ICU

  • » Руководство пользователя ICU

  • » Алгоритм сопоставления Unicode


Требования

Для установки данного расширения необходимо предварительно установить библиотеку » ICU версии 4.0.0 или выше.

Это расширение входит в состав PHP начиная с версии 5.3.0. Для версий начиная с PHP 5.2.0(рекомендуется 5.2.4+) существует пакет PECL.


Установка

Это расширение входит в стандартную поставну начиная с PHP 5.3.0. С PHP 5.2.0 можно использовать расширение PECL. Другими словами - есть два пути установки расширения.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/intl.

Для разрешения встроенной версии расширения используйте --enable-intl при компиляцииPHP.

Если ICU установлен в нестандартную директорию, то ее необходимо указать в переменной окружения LD_LIBRARY_PATH, чтобы динамический линковщик смог его найти:

$ export LD_LIBRARY_PATH=/opt/icu/lib

В противном случае, если ICU установлен в стандартную директорию, то никаких дополнительных действий не требуется.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки Intl
Имя | По умолчанию | Меняемо | Список изменений
intl.default_locale |  | PHP_INI_ALL |
intl.error_level | 0 | PHP_INI_ALL |
intl.use_exceptions | 0 | PHP_INI_ALL | Доступно с PHP 5.5 и PECL 3.0.0a1

Краткое разъяснение конфигурационных директив.

intl.default_locale string

Локаль по умолчанию для использования в функциях в случаях если соответствующие параметры будут опущены, либо заданы как NULL. Это локаль ICU, а не системная. Встроенные локали ICU и их данные можно посмотреть по ссылке » http://demo.icu-project.org/icu-bin/locexp.

По умолчанию значение пусто, что ведет к принулительному использованию локали ICU по умолчанию. Единожды задав это значение его уже нельзя будет сбросить на начальное. Не рекомендуется использовать локаль ICU по умолчанию, поскольку она зависит от локали окружения сервера.

intl.error_level integer

Уровень сообщений об ошибках, генерируемых при их возникновении в функциях ICU. Задается как уровень ошибок PHP, таких как E_WARNING. Можно установить равным 0, если вообще не хотите видеть сообщения об ошибках. Данная настройка не влияет на возвращаемые значения функций в случае ошибок и результат выполнения intl_get_error_code() и специфичных для классов методов, возвращающих информацию об ошибках. Если выбран уровень E_ERROR, то выполнение скрипта будет прерываться в случае возникновения ошибки.

По умолчанию равно 0.

intl.use_exceptions integer

Если установлено как TRUE, то вместо ошибок будут выбрасываться исключения класса IntlException. Можно использовать в дополнение к intl.error_level.

по умолчанию равно FALSE.


Предопределенные константы

INTL_MAX_LOCALE_LEN (integer)
Задает длину имени локали. Для PHP установлено равным 80. Имена локалей больше этого значения не принимаются.
IDNA_DEFAULT (integer)
Запретить передачу неопределенных кодов символов в функции IDN и не проверяет ввод на соответствие правилам доменных имен ASCII.
IDNA_ALLOW_UNASSIGNED (integer)
Разрешить передачу неопределенных кодов символов в функции IDN
IDNA_USE_STD3_RULES (integer)
Проверять ввод для функций IDN на соответствие правилам доменных имен ASCII.
IDNA_CHECK_BIDI (integer)
Проверять, соответствует ли ввод правилам BiDi. Игнорируется в реализации IDNA2003, которая всегда производит эту проверку.
IDNA_CHECK_CONTEXTJ (integer)
Проверять, соответствует ли ввод правилам CONTEXTJ. Игнорируется в реализации IDNA2003, так как эта проверка введена в IDNA2008.
IDNA_NONTRANSITIONAL_TO_ASCII (integer)
Опция для несквозной обработки в idn_to_ascii(). Сквозная обработка активирована по умолчанию. Игнорируется в реализации IDNA2003.
IDNA_NONTRANSITIONAL_TO_UNICODE (integer)
Опция для несквозной обработки в idn_to_utf8(). Сквозная обработка активирована по умолчанию. Игнорируется в реализации IDNA2003.
INTL_IDNA_VARIANT_2003 (integer)
Использовать алгоритм IDNA 2003 в idn_to_utf8() и idn_to_ascii(). Задано по умолчанию.
INTL_IDNA_VARIANT_UTS46 (integer)
Использовать алгоритм UTS #46вidn_to_utf8() и idn_to_ascii().
IDNA_ERROR_EMPTY_LABEL (integer)
IDNA_ERROR_LABEL_TOO_LONG (integer)
IDNA_ERROR_DOMAIN_NAME_TOO_LONG (integer)
IDNA_ERROR_LEADING_HYPHEN (integer)
IDNA_ERROR_TRAILING_HYPHEN (integer)
IDNA_ERROR_HYPHEN_3_4 (integer)
IDNA_ERROR_LEADING_COMBINING_MARK (integer)
IDNA_ERROR_DISALLOWED (integer)
IDNA_ERROR_PUNYCODE (integer)
IDNA_ERROR_LABEL_HAS_DOT (integer)
IDNA_ERROR_INVALID_ACE_LABEL (integer)
IDNA_ERROR_BIDI (integer)
IDNA_ERROR_CONTEXTJ (integer)
При использовании алгоритма UTS #46 в idn_to_utf8() и idn_to_ascii(), ошибки возвращаются в виде побитовой маски.


  • « Предопределенные константы
  • Основы использования расширения »
  • PHP Manual
  • intl
  • Примеры

Примеры

Содержание

  • Основы использования расширения


Основы использования расширения

Каждый модуль предоставляет два типа API: процедурный и объектно ориентированный. Они идентичны и описываются в соответствующих разделах руководства.

Замечание:

Все входные данные должны быть в кодировке UTF-8. Все выходные данные также.

Пример #1 Пример использования процедурного API

<?php
$coll  = collator_create('en_US');
$result = collator_compare($coll, "string#1", "string#2");
?>

Пример #2 Пример использования объектно ориентированного API

<?php
$coll = new Collator('en_US');
$al   = $coll->getLocale(Locale::ACTUAL_LOCALE);
echo "Actual locale: $al\n";

$formatter = new NumberFormatter('en_US', NumberFormatter::DECIMAL);
echo $formatter->format(1234567);
?>


Класс Collator

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

Производит сравнение строк с поддержкой порядка сортировки специфичного для локали.

Обзор классов

Collator {
/* Методы */
public __construct ( string $locale )
public bool asort ( array &$arr [, int $sort_flag ] )
public int compare ( string $str1 , string $str2 )
public static Collator create ( string $locale )
public int getAttribute ( int $attr )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public string getLocale ( int $type )
public string getSortKey ( string $str )
public int getStrength ( void )
public bool setAttribute ( int $attr , int $val )
public bool setStrength ( int $strength )
public bool sortWithSortKeys ( array &$arr )
public bool sort ( array &$arr [, int $sort_flag ] )
}

Предопределенные константы

Collator::FRENCH_COLLATION (integer)

Сортировка строк с акцентами с конца строки. Этот аттрибут автоматически проставляется в On для французской и некоторых других локалей. Обычно пользователям нет необходимости специально задавать этот параметр. Есть некоторая просадка производительности если этот параметр установлен как On, но никак не влияет на длину ключа сортировки. Возможные значения:

  • Collator::ON
  • Collator::OFF(по умолчанию)
  • Collator::DEFAULT_VALUE

Пример #1 Правила FRENCH_COLLATION

  • F=OFF cote < cote < cote < cote
  • F=ON cote < cote < cote < cote

Collator::ALTERNATE_HANDLING (integer)

Аттрибут "Alternate" используется для контроля обработки так называемых "переменных символов" в UCA: пробельные символы, знаки пунктуации и символы. Если "Alternate" установлен как NonIgnorable (N), то различия в этих символах будут считаться такими же значимыми, как и различия между буквами. Если "Alternate" установлен как Shifted (S), то эти символы будут иметь низкую значимость. Значение Shifted зачастую используется в комбинации с Strength установленным в "Quaternary". В таких случаях подобные символы будут учитываться при сортировке, но только если все остальные аспекты строк (буквы, акценты, регист) идентичны. Если "Alternate" не установлен как "Shifted", то разницы между "Strength" равным 3 и 4 не будет. Более подробно и с примерами читайте в разделе "Variable_Weighting" на сайте » UCA. Причина, по которой значения для "Alternate" не используются просто On в Off в том, что в будущем могут быть добавлены дополнительные варианты. Опция UCA "Blanked" выражается с помощью "Strength" установленного в и "Alternate" установленного в "Shifted". Для большинства локалей этот параметр по умолчанию равен "NonIgnorable". Если задано "Shifted", то обработка может быть медленнее в случае если у вас много строк, отличающихся только пунктуацией. Длина ключа сортировки не затрагивается только если также не увеличивался уровень "Strength".

Возможные значения:

  • Collator::NON_IGNORABLE(по умолчанию)
  • Collator::SHIFTED
  • Collator::DEFAULT_VALUE

Пример #2 ALTERNATE_HANDLING rules

  • S=3, A=N di Silva < Di Silva < diSilva < U.S.A. < USA
  • S=3, A=S di Silva = diSilva < Di Silva < U.S.A. = USA
  • S=4, A=S di Silva < diSilva < Di Silva < U.S.A. < USA

Collator::CASE_FIRST (integer)

Аттрибут "Case_First" используется для определения порядка сортировки в зависимости от регистра символов при отсутствии других различий в строках. Возможные значения: Uppercase_First(U), Lowercase_First (L), Default и Off. Между "Off" и "Lowercase_First" практически нет разницы, так что пользователи обычно не используют "Lowercase_First", а только Off или Uppercase_First. (Те, кому действительно интересна разница между X и L могут обратиться к Настройке Collation). Задание L или U не сказывается на скорости сравнения, но влияет на длину ключа сортировки.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::LOWER_FIRST
  • Collator::UPPER_FIRST
  • Collator:DEFAULT

Пример #3 Правила CASE_FIRST

  • C=X or C=L "china" < "China" < "denmark" < "Denmark"
  • C=U "China" < "china" < "Denmark" < "denmark"

Collator::CASE_LEVEL (integer)

Аттрибут "Case_Level" используется, когда акценты не важны, а регист важен. В таких случаях установите "Strength" в значение Primary, и "Case_Level" в On. В большинстве локалей по умолчанию задано значение "Off". Оказывает незначительное влияние на скорость сравнения и длину ключа сортировки если установлено как On.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Пример #4 CASE_LEVEL rules

  • S=1, E=X role = Role = role
  • S=1, E=O role = role < Role

Collator::NORMALIZATION_MODE (integer)

Настройка "Normalization" определяет, будет ли текст тщательно нормализован в сравнении или нет. Даже если данная настройка отключена (по умолчанию для многих локалей), текст в общем случае будет сравниваться корректно (подробности в UTN #5). Проблемы могут быть только с отметками акцентов расположенными в неканоничном порядке. Если установлено как On, то будет гарантирован наилучший результат для всех возможных вариантов текста. Однако, если установлено как On - это скажется на скорости сравнения, в зависимости от количества последовательностей, который необходимо нормализовать. Какого либо заметного влияния на длину ключа сортировки оказано не будет. Если заранее известно, что текст уже нормализован как NFD или NFKD, необходимости в использовании этой настройки нет.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::STRENGTH (integer)

ICU Collation Service поддерживает множество уровней сравнения (они называются "Levels", но также известны как "Strengths"). Использование этих настроек позволяет ICU сортировать строки точно в соответствии с правилами локали. Однако, разрешая выборочное использование этих уровней, поиск строки в тексте можно производить с использованием различных условий. Больше информации описано в главе посвященной collator_set_strength().

Возможные значения:

  • Collator::PRIMARY
  • Collator::SECONDARY
  • Collator::TERTIARY(по умолчанию)
  • Collator::QUATERNARY
  • Collator::IDENTICAL
  • Collator::DEFAULT_VALUE

Collator::HIRAGANA_QUATERNARY_MODE (integer)

Совместимость с JIS x 4061 требует введения дополнительного уровня для выделения символов Hiragana и Katakana. Если требуется совместимость со стандартом, то данный аттрибут необходимо задать как On, а "Strength" как "Quaternary". Это скажется на длине ключа сортировки и скорости сравнения.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::NUMERIC_COLLATION (integer)

Если включен, этот аттрибут генерирует ключ сравнения для числового значения подстроки состоящей из цифр. Это позволяет при сортировке помещать '100' после '2'.

Возможные значения:

  • Collator::OFF(по умолчанию)
  • Collator::ON
  • Collator::DEFAULT_VALUE

Collator::DEFAULT_VALUE (integer)
Collator::PRIMARY (integer)
Collator::SECONDARY (integer)
Collator::TERTIARY (integer)
Collator::DEFAULT_STRENGTH (integer)
Collator::QUATERNARY (integer)
Collator::IDENTICAL (integer)
Collator::OFF (integer)
Collator::ON (integer)
Collator::SHIFTED (integer)
Collator::NON_IGNORABLE (integer)
Collator::LOWER_FIRST (integer)
Collator::UPPER_FIRST (integer)

Содержание

  • Collator::asort — Sort array maintaining index association
  • Collator::compare — Compare two Unicode strings
  • Collator::__construct — Create a collator
  • Collator::create — Create a collator
  • Collator::getAttribute — Get collation attribute value
  • Collator::getErrorCode — Get collator's last error code
  • Collator::getErrorMessage — Get text for collator's last error code
  • Collator::getLocale — Get the locale name of the collator
  • Collator::getSortKey — Get sorting key for a string
  • Collator::getStrength — Get current collation strength
  • Collator::setAttribute — Set collation attribute
  • Collator::setStrength — Set collation strength
  • Collator::sortWithSortKeys — Sort array using specified collator and sort keys
  • Collator::sort — Sort array using specified collator


Sort array maintaining index association

  • « Collator
  • Collator::compare »
  • PHP Manual
  • Collator
  • Sort array maintaining index association

Collator::asort

collator_asort

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::asort -- collator_asort — Sort array maintaining index association

Описание

Объектно-ориентированный стиль

public bool Collator::asort ( array &$arr [, int $sort_flag ] )

Процедурный стиль

bool collator_asort ( Collator $coll , array &$arr [, int $sort_flag ] )

This function sorts an array such that array indices maintain their correlation with the array elements they are associated with. This is used mainly when sorting associative arrays where the actual element order is significant. Array elements will have sort order according to current locale rules.

Equivalent to standard PHP asort().

Список параметров

coll

Collator object.

arr

Array of strings to sort.

sort_flag

Optional sorting type, one of the following:

  • Collator::SORT_REGULAR - compare items normally (don't change types)

  • Collator::SORT_NUMERIC - compare items numerically

  • Collator::SORT_STRING - compare items as strings

Default $sort_flag value is Collator::SORT_REGULAR. It is also used if an invalid $sort_flag value has been specified.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 collator_asort()example

<?php
$coll = collator_create( 'en_US' );
$arr = array(
     'a' => '100',
     'b' => '50',
     'c' => '7'
);
collator_asort( $coll, $arr, Collator::SORT_NUMERIC );
var_export( $arr );

collator_asort( $coll, $arr, Collator::SORT_STRING );
var_export( $arr );
?>

Результат выполнения данного примера:

array (
  'c' => '7',
  'b' => '50',
  'a' => '100',
)array (
  'a' => '100',
  'b' => '50',
  'c' => '7',
)

Смотрите также

  • Collator constants
  • collator_sort() - Sort array using specified collator
  • collator_sort_with_sort_keys() - Sort array using specified collator and sort keys


Compare two Unicode strings

  • « Collator::asort
  • Collator::__construct »
  • PHP Manual
  • Collator
  • Compare two Unicode strings

Collator::compare

collator_compare

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::compare -- collator_compare — Compare two Unicode strings

Описание

Объектно-ориентированный стиль

public int Collator::compare ( string $str1 , string $str2 )

Процедурный стиль

int collator_compare ( Collator $coll , string $str1 , string $str2 )

Compare two Unicode strings according to collation rules.

Список параметров

coll

Collator object.

str1

The first string to compare.

str2

The second string to compare.

Возвращаемые значения

Return comparison result:

  • 1 if str1 is greater than str2 ;

  • 0 if str1 is equal to str2;

  • -1 if str1 is less than str2 .

On error boolean FALSE is returned.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 collator_compare()example

<?php
$s1 = 'Hello';
$s2 = 'hello';

$coll = collator_create( 'en_US' );
$res  = collator_compare( $coll, $s1, $s2 );

if ($res === false) {
    echo collator_get_error_message( $coll );
} else if( $res > 0 ) {
    echo "s1 is greater than s2\n";
} else if( $res < 0 ) {
    echo "s1 is less than s2\n";
} else {
    echo "s1 is equal to s2\n";
}
?>

Результат выполнения данного примера:

s1 is greater than s2

Смотрите также

  • collator_sort() - Sort array using specified collator


Create a collator

  • « Collator::compare
  • Collator::create »
  • PHP Manual
  • Collator
  • Create a collator

Collator::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::__construct — Create a collator

Описание

public Collator::__construct ( string $locale )

Creates a new instance of Collator.

Список параметров

locale

The locale whose collation rules should be used. Special values for locales can be passed in - if null is passed for the locale, the default locale's collation rules will be used. If "root" is passed, UCA rules will be used.

The Locale attribute is typically the most important attribute for correct sorting and matching, according to the user expectations in different countries and regions. The default » UCA ordering will only sort a few languages such as Dutch and Portuguese correctly ("correctly" meaning according to the normal expectations for users of the languages). Otherwise, you need to supply the locale to UCA in order to properly collate text for a given language. Thus a locale needs to be supplied so as to choose a collator that is correctly tailored for that locale. The choice of a locale will automatically preset the values for all of the attributes to something that is reasonable for that locale. Thus most of the time the other attributes do not need to be explicitly set. In some cases, the choice of locale will make a difference in string comparison performance and/or sort key length.

Возвращаемые значения

Returns Collator instance.

Ошибки

Returns an "empty" object on error. You can use intl_get_error_code() and/or intl_get_error_message() to know what happened.

Примеры

Пример #1 Collator::__construct() example

<?php
$coll = new Collator( 'en_CA' );
?>

Смотрите также

  • Collator::create() - Create a collator
  • collator_create() - Create a collator


Create a collator

  • « Collator::__construct
  • Collator::getAttribute »
  • PHP Manual
  • Collator
  • Create a collator

Collator::create

collator_create

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::create -- collator_create — Create a collator

Описание

Объектно-ориентированный стиль

public static Collator Collator::create ( string $locale )

Процедурный стиль

Collator collator_create ( string $locale )

The strings will be compared using the options already specified.

Список параметров

locale

The locale containing the required collation rules. Special values for locales can be passed in - if null is passed for the locale, the default locale collation rules will be used. If empty string ("") or "root" are passed, » UCA rules will be used.

Возвращаемые значения

Return new instance of Collator object, or NULL on error.

Примеры

Пример #1 collator_create() example

<?php
$coll = collator_create( 'en_US' );

if( !isset( $coll ) ) {
    printf( "Collator creation failed: %s\n", intl_get_error_message() );
    exit( 1 );
}
?>

Смотрите также

  • Collator::__construct() - Create a collator


Get collation attribute value

  • « Collator::create
  • Collator::getErrorCode »
  • PHP Manual
  • Collator
  • Get collation attribute value

Collator::getAttribute

collator_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getAttribute -- collator_get_attribute — Get collation attribute value

Описание

Объектно-ориентированный стиль

public int Collator::getAttribute ( int $attr )

Процедурный стиль

int collator_get_attribute ( Collator $coll , int $attr )

Get a value of an integer collator attribute.

Список параметров

coll

Collator object.

attr

Attribute to get value for.

Возвращаемые значения

Attribute value, or boolean FALSE on error.

Примеры

Пример #1 collator_get_attribute() example

<?php
$coll = collator_create( 'en_CA' );
$val = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if( $val === false )
{
    // Handle error.
}
?>

Смотрите также

  • Collator constants
  • collator_set_attribute() - Set collation attribute
  • collator_get_strength() - Get current collation strength


Get collator's last error code

  • « Collator::getAttribute
  • Collator::getErrorMessage »
  • PHP Manual
  • Collator
  • Get collator's last error code

Collator::getErrorCode

collator_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getErrorCode -- collator_get_error_code — Get collator's last error code

Описание

Объектно-ориентированный стиль

public int Collator::getErrorCode ( void )

Процедурный стиль

int collator_get_error_code ( Collator $coll )

Список параметров

coll

Collator object.

Возвращаемые значения

Error code returned by the last Collator API function call.

Примеры

Пример #1 collator_get_error_code() example

<?php
$coll = collator_create( 'en_US' );
if( collator_get_attribute( $coll, Collator::FRENCH_COLLATION ) === false )
        handle_error( collator_get_error_code() );
?>

Смотрите также

  • collator_get_error_message() - Get text for collator's last error code


Get text for collator's last error code

  • « Collator::getErrorCode
  • Collator::getLocale »
  • PHP Manual
  • Collator
  • Get text for collator's last error code

Collator::getErrorMessage

collator_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getErrorMessage -- collator_get_error_message — Get text for collator's last error code

Описание

Объектно-ориентированный стиль

public string Collator::getErrorMessage ( void )

Процедурный стиль

string collator_get_error_message ( Collator $coll )

Retrieves the message for the last error.

Список параметров

coll

Collator object.

Возвращаемые значения

Description of an error occurred in the last Collator API function call.

Примеры

Пример #1 collator_get_error_message() example

<?php
$coll = collator_create( 'lt' );
if( collator_compare( $coll, 'y', 'k' ) === false ) {
    echo collator_get_error_message( $coll );
}
?>

Смотрите также

  • collator_get_error_code() - Get collator's last error code


Get the locale name of the collator

  • « Collator::getErrorMessage
  • Collator::getSortKey »
  • PHP Manual
  • Collator
  • Get the locale name of the collator

Collator::getLocale

collator_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getLocale -- collator_get_locale — Get the locale name of the collator

Описание

Объектно-ориентированный стиль

public string Collator::getLocale ( int $type )

Процедурный стиль

string collator_get_locale ( Collator $coll , int $type )

Get collector locale name.

Список параметров

coll

Collator object.

type

You can choose between valid and actual locale ( Locale::VALID_LOCALE and Locale::ACTUAL_LOCALE, respectively).

Возвращаемые значения

Real locale name from which the collation data comes. If the collator was instantiated from rules or an error occurred, returns boolean FALSE.

Примеры

Пример #1 collator_get_locale() example

<?php
$coll    = collator_create( 'en_US_California' );
$res_val = collator_get_locale( $coll, Locale::VALID_LOCALE );
$res_act = collator_get_locale( $coll, Locale::ACTUAL_LOCALE );
printf( "Valid locale name: %s\nActual locale name: %s\n",
         $res_val, $res_act );
?>

Результат выполнения данного примера:

Requested locale name: en_US_California
Valid locale name: en_US
Actual locale name: en

Смотрите также

  • collator_create() - Create a collator


Get sorting key for a string

  • « Collator::getLocale
  • Collator::getStrength »
  • PHP Manual
  • Collator
  • Get sorting key for a string

Collator::getSortKey

collator_get_sort_key

(PHP 5 >= 5.3.11, PHP 7, PECL intl >= 1.0.3)

Collator::getSortKey -- collator_get_sort_key — Get sorting key for a string

Описание

Объектно-ориентированный стиль

public string Collator::getSortKey ( string $str )

Процедурный стиль

string collator_get_sort_key ( Collator $coll , string $str )

Return collation key for a string.

Список параметров

coll

Collator object.

str

The string to produce the key from.

Возвращаемые значения

Returns the collation key for the string. Collation keys can be compared directly instead of strings.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 collator_get_sort_key()example

<?php
$s1 = 'Hello';

$coll = collator_create( 'en_US' );
$res  = collator_get_sort_key( $coll, $s1);

echo urlencode($res);
?>

Результат выполнения данного примера:

71%3F%3FE%01%09%01%8F%08%00

Смотрите также

  • collator_sort() - Sort array using specified collator
  • collator_sort_with_sort_keys() - Sort array using specified collator and sort keys


Get current collation strength

  • « Collator::getSortKey
  • Collator::setAttribute »
  • PHP Manual
  • Collator
  • Get current collation strength

Collator::getStrength

collator_get_strength

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::getStrength -- collator_get_strength — Get current collation strength

Описание

Объектно-ориентированный стиль

public int Collator::getStrength ( void )

Процедурный стиль

int collator_get_strength ( Collator $coll )

Список параметров

coll

Collator object.

Возвращаемые значения

Returns current collation strength, or boolean FALSE on error.

Примеры

Пример #1 collator_get_strength() example

<?php
$coll     = collator_create( 'en_US' );
$strength = collator_get_strength( $coll );
?>

Смотрите также

  • Collator constants
  • collator_set_strength() - Set collation strength
  • collator_get_attribute() - Get collation attribute value


Set collation attribute

  • « Collator::getStrength
  • Collator::setStrength »
  • PHP Manual
  • Collator
  • Set collation attribute

Collator::setAttribute

collator_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::setAttribute -- collator_set_attribute — Set collation attribute

Описание

Объектно-ориентированный стиль

public bool Collator::setAttribute ( int $attr , int $val )

Процедурный стиль

bool collator_set_attribute ( Collator $coll , int $attr , int $val )

Список параметров

coll

Collator object.

attr

Attribute.

val

Attribute value.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 collator_set_attribute() example

<?php
$coll = collator_create( 'en_CA' );
$val  = collator_get_attribute( $coll, Collator::NUMERIC_COLLATION );
if ($val === false) {
    // Handle error.
} elseif ($val === Collator::ON) {
    // Do something useful.
}
?>

Смотрите также

  • Collator constants
  • collator_get_attribute() - Get collation attribute value
  • collator_set_strength() - Set collation strength


Set collation strength

  • « Collator::setAttribute
  • Collator::sortWithSortKeys »
  • PHP Manual
  • Collator
  • Set collation strength

Collator::setStrength

collator_set_strength

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::setStrength -- collator_set_strength — Set collation strength

Описание

Объектно-ориентированный стиль

public bool Collator::setStrength ( int $strength )

Процедурный стиль

bool collator_set_strength ( Collator $coll , int $strength )

The » ICU Collation Service supports many levels of comparison (named "Levels", but also known as "Strengths"). Having these categories enables ICU to sort strings precisely according to local conventions. However, by allowing the levels to be selectively employed, searching for a string in text can be performed with various matching conditions.

  1. Primary Level: Typically, this is used to denote differences between base characters (for example, "a" < "b"). It is the strongest difference. For example, dictionaries are divided into different sections by base character. This is also called the level1 strength.

  2. Secondary Level: Accents in the characters are considered secondary differences (for example, "as" < "as" < "at"). Other differences between letters can also be considered secondary differences, depending on the language. A secondary difference is ignored when there is a primary difference anywhere in the strings. This is also called the level2 strength.

    Замечание:

    Note: In some languages (such as Danish), certain accented letters are considered to be separate base characters. In most languages, however, an accented letter only has a secondary difference from the unaccented version of that letter.

  3. Tertiary Level: Upper and lower case differences in characters are distinguished at the tertiary level (for example, "ao" < "Ao" < "ao"). In addition, a variant of a letter differs from the base form on the tertiary level (such as "A" and " "). Another example is the difference between large and small Kana. A tertiary difference is ignored when there is a primary or secondary difference anywhere in the strings. This is also called the level3 strength.

  4. Quaternary Level: When punctuation is ignored (see Ignoring Punctuations ) at level 13, an additional level can be used to distinguish words with and without punctuation (for example, "ab" < "a-b" < "aB"). This difference is ignored when there is a primary, secondary or tertiary difference. This is also known as the level4 strength. The quaternary level should only be used if ignoring punctuation is required or when processing Japanese text (see Hiragana processing).

  5. Identical Level: When all other levels are equal, the identical level is used as a tiebreaker. The Unicode code point values of the NFD form of each string are compared at this level, just in case there is no difference at levels 14. For example, Hebrew cantillation marks are only distinguished at this level. This level should be used sparingly, as only code point values differences between two strings is an extremely rare occurrence. Using this level substantially decreases the performance for both incremental comparison and sort key generation (as well as increasing the sort key length). It is also known as level 5 strength.

For example, people may choose to ignore accents or ignore accents and case when searching for text. Almost all characters are distinguished by the first three levels, and in most locales the default value is thus Tertiary. However, if Alternate is set to be Shifted, then the Quaternary strength can be used to break ties among whitespace, punctuation, and symbols that would otherwise be ignored. If very fine distinctions among characters are required, then the Identical strength can be used (for example, Identical Strength distinguishes between the Mathematical Bold Small A and the Mathematical Italic Small A.). However, using levels higher than Tertiary the Identical strength result in significantly longer sort keys, and slower string comparison performance for equal strings.

Список параметров

coll

Collator object.

strength

Strength to set.

Possible values are:

  • Collator::PRIMARY

  • Collator::SECONDARY

  • Collator::TERTIARY

  • Collator::QUATERNARY

  • Collator::IDENTICAL

  • Collator::DEFAULT_STRENGTH

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 collator_set_strength() example

<?php
$arr  = array( 'ao', 'Ao', 'ao' );
$coll = collator_create( 'en_US' );

// Sort array using default strength.
collator_sort( $coll, $arr );
var_export( $arr );

// Sort array using primary strength.
collator_set_strength( $coll, Collator::PRIMARY );
collator_sort( $coll, $arr );
var_export( $arr );
?>

Результат выполнения данного примера:

array (
  0 => 'ao',
  1 => 'Ao',
  2 => 'ao',
)
array (
  0 => 'ao',
  1 => 'Ao',
  2 => 'ao',
)

Смотрите также

  • Collator constants
  • collator_get_strength() - Get current collation strength


Sort array using specified collator and sort keys

  • « Collator::setStrength
  • Collator::sort »
  • PHP Manual
  • Collator
  • Sort array using specified collator and sort keys

Collator::sortWithSortKeys

collator_sort_with_sort_keys

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::sortWithSortKeys -- collator_sort_with_sort_keys — Sort array using specified collator and sort keys

Описание

Объектно-ориентированный стиль

public bool Collator::sortWithSortKeys ( array &$arr )

Процедурный стиль

bool collator_sort_with_sort_keys ( Collator $coll , array &$arr )

Similar to collator_sort() but uses ICU sorting keys produced by ucol_getSortKey() to gain more speed on large arrays.

Список параметров

coll

Collator object.

arr

Array of strings to sort

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 collator_sort_with_sort_keys() example

<?php
$arr  = array( 'Kopfe', 'Kypper', 'Kopfe' );
$coll = collator_create( 'sv' );

collator_sort_with_sort_keys( $coll, $arr );
var_export( $arr );
?>

Результат выполнения данного примера:

array (
  0 => 'Kopfe',
  1 => 'Kypper',
  2 => 'Kopfe',
)

Смотрите также

  • Collator constants
  • collator_sort() - Sort array using specified collator
  • collator_asort() - Sort array maintaining index association


Sort array using specified collator

  • « Collator::sortWithSortKeys
  • NumberFormatter »
  • PHP Manual
  • Collator
  • Sort array using specified collator

Collator::sort

collator_sort

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Collator::sort -- collator_sort — Sort array using specified collator

Описание

Объектно-ориентированный стиль

public bool Collator::sort ( array &$arr [, int $sort_flag ] )

Процедурный стиль

bool collator_sort ( Collator $coll , array &$arr [, int $sort_flag ] )

This function sorts an array according to current locale rules.

Equivalent to standard PHP sort() .

Список параметров

coll

Collator object.

arr

Array of strings to sort.

sort_flag

Optional sorting type, one of the following:

  • Collator::SORT_REGULAR - compare items normally (don't change types)

  • Collator::SORT_NUMERIC - compare items numerically

  • Collator::SORT_STRING - compare items as strings

Default sorting type is Collator::SORT_REGULAR. It is also used if an invalid sort_flag value has been specified.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 collator_sort() example

<?php
$coll = collator_create( 'en_US' );
$arr  = array( 'at', 'as', 'as' );

var_export( $arr );
collator_sort( $coll, $arr );
var_export( $arr );
?>

Результат выполнения данного примера:

array (
  0 => 'at',
  1 => 'as',
  2 => 'as',
)array (
  0 => 'as',
  1 => 'as',
  2 => 'at',
)

Смотрите также

  • Collator constants
  • collator_asort() - Sort array maintaining index association
  • collator_sort_with_sort_keys() - Sort array using specified collator and sort keys


The NumberFormatter class

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

Программы хранят и оперируют числами используя, не зависящее от локали, бинарное представление. Когда же они выводятся на экран или печатаются, они конвертируются в строки в соответствии с требованиями локали. К примеру, число 12345.67 выведется как "12,345.67" в локали US, как "12 345,67" во французской локали и как "12.345,67" в немецкой.

Вызывая методы этого класса, вы можете форматировать числа, денежные единицы и процентнын величины в представлении нужной локали. Класс NumberFormatter чуствителен к локали, следовательно вам необходимо будет создавать новый экземпляр класса для каждой локали. Методы NumberFormatter форматируют примитивные типы чисел, такие как "double", и выводят их в специфичном для локали представлении.

Для денежных единиц вы можете использовать тип форматирования денежных единиц, который возвращает строку с отформатированным числом и символом денежной единицы. Естественно NumberFormatter не знает о курсах обмена, так что для всех денежных единиц будет возвращено одно и то же число. К примеру, для числа 9988776.65 рещультат будет такой:

  • 9 988 776,65 € для Франции
  • 9.988.776,65 € для Германии
  • $9,988,776.65 для США

Для форматирования процентных величин используется свой тип форматирования. При таком форматировании число 0.75 будет выведено как 75%.

Для более сложного форматирования, например для разбора числа, используется форматирование основанное на наборе правил.

Обзор классов

NumberFormatter {
/* Методы */
public __construct ( string $locale , int $style [, string $pattern ] )
public static NumberFormatter create ( string $locale , int $style [, string $pattern ] )
public string formatCurrency ( float $value , string $currency )
public string format ( number $value [, int $type ] )
public int getAttribute ( int $attr )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public string getLocale ([ int $type ] )
public string getPattern ( void )
public string getSymbol ( int $attr )
public string getTextAttribute ( int $attr )
public float parseCurrency ( string $value , string &$currency [, int &$position ] )
public mixed parse ( string $value [, int $type [, int &$position ]] )
public bool setAttribute ( int $attr , int $value )
public bool setPattern ( string $pattern )
public bool setSymbol ( int $attr , string $value )
public bool setTextAttribute ( int $attr , string $value )
}

Предопределенные константы

Данные стили используются функцией numfmt_create() для определения типа форматирования.

NumberFormatter::PATTERN_DECIMAL (integer)
Формат с десятичной точкой заданный шаблоном
NumberFormatter::DECIMAL (integer)
Формат с десятичной точкой
NumberFormatter::CURRENCY (integer)
денежный формат
NumberFormatter::PERCENT (integer)
Процентный формат
NumberFormatter::SCIENTIFIC (integer)
Научный формат
NumberFormatter::SPELLOUT (integer)
Разобранный формат на основе правил
NumberFormatter::ORDINAL (integer)
Числительный формат на основе правил
NumberFormatter::DURATION (integer)
Формат длительности на основе правил
NumberFormatter::PATTERN_RULEBASED (integer)
Формат на основе правил по шаблону
NumberFormatter::DEFAULT_STYLE (integer)
Формат по умолчанию для локали
NumberFormatter::IGNORE (integer)
Псевдоним для PATTERN_DECIMAL

Данные константы определяют как будут разобраны или отформатированы числа. Их необходимо передавать функциям numfmt_format() и numfmt_parse().

NumberFormatter::TYPE_DEFAULT (integer)
Тип определяется типом переменной
NumberFormatter::TYPE_INT32 (integer)
Форматирование/разбор как 32-битного целого
NumberFormatter::TYPE_INT64 (integer)
Форматирование/разбор как 64-битного целого
NumberFormatter::TYPE_DOUBLE (integer)
Форматирование/разбор как рационального (float)
NumberFormatter::TYPE_CURRENCY (integer)
Форматирование/разбор как денежной единицы

Аттрибут формата чисел для numfmt_get_attribute() и numfmt_set_attribute().

NumberFormatter::PARSE_INT_ONLY (integer)
Разбирать только целые.
NumberFormatter::GROUPING_USED (integer)
Использовать группирующий разделитель.
NumberFormatter::DECIMAL_ALWAYS_SHOWN (integer)
Всегда показывать десятичную точку.
NumberFormatter::MAX_INTEGER_DIGITS (integer)
Максимальное число целых цифр.
NumberFormatter::MIN_INTEGER_DIGITS (integer)
Минимальное число целых цифр.
NumberFormatter::INTEGER_DIGITS (integer)
Целых цифр.
NumberFormatter::MAX_FRACTION_DIGITS (integer)
Максимальное число цифр после запятой.
NumberFormatter::MIN_FRACTION_DIGITS (integer)
Минимальное число цифр после запятой.
NumberFormatter::FRACTION_DIGITS (integer)
Число цифр после запятой.
NumberFormatter::MULTIPLIER (integer)
Множитель.
NumberFormatter::GROUPING_SIZE (integer)
Размер группировки.
NumberFormatter::ROUNDING_MODE (integer)
Режим округления.
NumberFormatter::ROUNDING_INCREMENT (integer)
Приращение округления.
NumberFormatter::FORMAT_WIDTH (integer)
Ширина на которую будет дополнен вывод format().
NumberFormatter::PADDING_POSITION (integer)
Позиция с которой дополнение будет иметь место. Смотрите описание констант дополнения.
NumberFormatter::SECONDARY_GROUPING_SIZE (integer)
Вторичный размер группировки.
NumberFormatter::SIGNIFICANT_DIGITS_USED (integer)
Использовать значащие цифры.
NumberFormatter::MIN_SIGNIFICANT_DIGITS (integer)
Минимальное количество значащих цифр.
NumberFormatter::MAX_SIGNIFICANT_DIGITS (integer)
Максимальное количество значащих цифр.
NumberFormatter::LENIENT_PARSE (integer)
Режим снисходительны синтаксического анализа для основанных на правилах форматов.

Аттрибуты текста форматирования чисел, используются в numfmt_get_text_attribute() и numfmt_set_text_attribute().

NumberFormatter::POSITIVE_PREFIX (integer)
Положительный префикс.
NumberFormatter::POSITIVE_SUFFIX (integer)
Положительный суффикс.
NumberFormatter::NEGATIVE_PREFIX (integer)
Отрицательный префикс.
NumberFormatter::NEGATIVE_SUFFIX (integer)
Отрицательный суффикс.
NumberFormatter::PADDING_CHARACTER (integer)
Символ для дополнения строки.
NumberFormatter::CURRENCY_CODE (integer)
Код денежной единицы ISO.
NumberFormatter::DEFAULT_RULESET (integer)
Набор правил по умолчанию. Доступно только для форматирования на основе правил.
NumberFormatter::PUBLIC_RULESETS (integer)
Публичный набор правил. Доступно только для форматирования на основе правил. Этот аттрибут доступен только на чтение. Публичный набор правил возвращается в виде строки, в которой каждый набор правил отделен точкой с запятой (;).

Символы форматирования чисел для numfmt_get_symbol() и numfmt_set_symbol().

NumberFormatter::DECIMAL_SEPARATOR_SYMBOL (integer)
Десятичный разделитель.
NumberFormatter::GROUPING_SEPARATOR_SYMBOL (integer)
Разделитель групп.
NumberFormatter::PATTERN_SEPARATOR_SYMBOL (integer)
Символ разделителя в шаблона.
NumberFormatter::PERCENT_SYMBOL (integer)
Символ процента.
NumberFormatter::ZERO_DIGIT_SYMBOL (integer)
Ноль.
NumberFormatter::DIGIT_SYMBOL (integer)
Символ представляющий цифру в шаблоне.
NumberFormatter::MINUS_SIGN_SYMBOL (integer)
Знак минус.
NumberFormatter::PLUS_SIGN_SYMBOL (integer)
Знак плюс.
NumberFormatter::CURRENCY_SYMBOL (integer)
Символ обозначения денежной единицы.
NumberFormatter::INTL_CURRENCY_SYMBOL (integer)
The international currency symbol.
NumberFormatter::MONETARY_SEPARATOR_SYMBOL (integer)
Денежный разделитель.
NumberFormatter::EXPONENTIAL_SYMBOL (integer)
Символ степени десяти.
NumberFormatter::PERMILL_SYMBOL (integer)
Символ промиле.
NumberFormatter::PAD_ESCAPE_SYMBOL (integer)
Экранирование символа заполнителя.
NumberFormatter::INFINITY_SYMBOL (integer)
Символ бесконечности.
NumberFormatter::NAN_SYMBOL (integer)
Символ NAN (Not-a-number, не-число).
NumberFormatter::SIGNIFICANT_DIGIT_SYMBOL (integer)
Символ значащей цифры.
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL (integer)
Разделитель групп для денежного формата.

Режимы округления для numfmt_get_attribute()
и numfmt_set_attribute() с аттрибутом
NumberFormatter::ROUNDING_MODE.

NumberFormatter::ROUND_CEILING (integer)
Округление в сторону положительной бесконечности.
NumberFormatter::ROUND_DOWN (integer)
Округление вниз.
NumberFormatter::ROUND_FLOOR (integer)
Округление в сторону отрицательной бесконечности.
NumberFormatter::ROUND_HALFDOWN (integer)
Округление в сторону "ближайшего соседа" кроме случаев, когда они на одинаковом расстоянии. В этом случае округление вниз.
NumberFormatter::ROUND_HALFEVEN (integer)
Округление в сторону "ближайшего соседа" кроме случаев, когда они на одинаковом расстоянии. В этом случае округление к четному значению.
NumberFormatter::ROUND_HALFUP (integer)
Округление в сторону "ближайшего соседа" кроме случаев, когда они на одинаковом расстоянии. В этом случае округление вверх.
NumberFormatter::ROUND_UP (integer)
Округление вверх.

Значения позиции дополнения для numfmt_get_attribute()
и numfmt_set_attribute() с аттрибутом
NumberFormatter::PADDING_POSITION.

NumberFormatter::PAD_AFTER_PREFIX (integer)
Символы дополнения вставляются после префикса.
NumberFormatter::PAD_AFTER_SUFFIX (integer)
Символы дополнения вставляются после суффикса.
NumberFormatter::PAD_BEFORE_PREFIX (integer)
Символы дополнения вставляются до префикса.
NumberFormatter::PAD_BEFORE_SUFFIX (integer)
Символы дополнения вставляются до суффикса.

Смотрите также

  • » ICU formatting documentation
  • » ICU. Форматирование чисел
  • » ICU. Форматирование десятичных дробей
  • » ICU. Форматирование на основе правил

Содержание

  • NumberFormatter::create — Create a number formatter
  • NumberFormatter::formatCurrency — Format a currency value
  • NumberFormatter::format — Format a number
  • NumberFormatter::getAttribute — Get an attribute
  • NumberFormatter::getErrorCode — Get formatter's last error code.
  • NumberFormatter::getErrorMessage — Get formatter's last error message.
  • NumberFormatter::getLocale — Get formatter locale
  • NumberFormatter::getPattern — Get formatter pattern
  • NumberFormatter::getSymbol — Get a symbol value
  • NumberFormatter::getTextAttribute — Get a text attribute
  • NumberFormatter::parseCurrency — Parse a currency number
  • NumberFormatter::parse — Parse a number
  • NumberFormatter::setAttribute — Set an attribute
  • NumberFormatter::setPattern — Set formatter pattern
  • NumberFormatter::setSymbol — Set a symbol value
  • NumberFormatter::setTextAttribute — Set a text attribute


Create a number formatter

  • « NumberFormatter
  • NumberFormatter::formatCurrency »
  • PHP Manual
  • NumberFormatter
  • Create a number formatter

NumberFormatter::create

numfmt_create

NumberFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::create -- numfmt_create -- NumberFormatter::__construct — Create a number formatter

Описание

Объектно-ориентированный стиль (method)

public static NumberFormatter NumberFormatter::create ( string $locale , int $style [, string $pattern ] )

Процедурный стиль

NumberFormatter numfmt_create ( string $locale , int $style [, string $pattern ] )

Объектно-ориентированный стиль (constructor):

public NumberFormatter::__construct ( string $locale , int $style [, string $pattern ] )

Creates a number formatter.

Список параметров

locale

Locale in which the number would be formatted (locale name, e.g. en_CA).

style

Style of the formatting, one of the format style constants. If NumberFormatter::PATTERN_DECIMAL or NumberFormatter::PATTERN_RULEBASED is passed then the number format is opened using the given pattern, which must conform to the syntax described in » ICU DecimalFormat documentation or » ICU RuleBasedNumberFormat documentation, respectively.

pattern

Pattern string if the chosen style requires a pattern.

Возвращаемые значения

Returns NumberFormatter object or FALSE on error.

Примеры

Пример #1 numfmt_create() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
$fmt = numfmt_create( 'it', NumberFormatter::SPELLOUT );
echo numfmt_format($fmt, 1142)."\n";
?>

Пример #2 NumberFormatter::create() example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo $fmt->format(1234567.891234567890000)."\n";
$fmt = new NumberFormatter( 'it', NumberFormatter::SPELLOUT );
echo $fmt->format(1142)."\n";
?>

Результат выполнения данного примера:

1.234.567,891
millicentoquarantadue

Смотрите также

  • numfmt_format() - Format a number
  • numfmt_parse() - Parse a number


Format a currency value

  • « NumberFormatter::create
  • NumberFormatter::format »
  • PHP Manual
  • NumberFormatter
  • Format a currency value

NumberFormatter::formatCurrency

numfmt_format_currency

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::formatCurrency -- numfmt_format_currency — Format a currency value

Описание

Объектно-ориентированный стиль

public string NumberFormatter::formatCurrency ( float $value , string $currency )

Процедурный стиль

string numfmt_format_currency ( NumberFormatter $fmt , float $value , string $currency )

Format the currency value according to the formatter rules.

Список параметров

fmt

NumberFormatter object.

value

The numeric currency value.

currency

The 3-letter ISO 4217 currency code indicating the currency to use.

Возвращаемые значения

String representing the formatted currency value.

Примеры

Пример #1 numfmt_format_currency() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
$fmt = numfmt_create( 'ru_RU', NumberFormatter::CURRENCY );
echo numfmt_format_currency($fmt, 1234567.891234567890000, "EUR")."\n";
echo numfmt_format_currency($fmt, 1234567.891234567890000, "RUR")."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
$fmt = new NumberFormatter( 'ru_RU', NumberFormatter::CURRENCY );
echo $fmt->formatCurrency(1234567.891234567890000, "EUR")."\n";
echo $fmt->formatCurrency(1234567.891234567890000, "RUR")."\n";
?>

Результат выполнения данного примера:

1.234.567,89 €
1.234.567,89 RUR
1 234 567,89€
1 234 567,89р.

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_format() - Format a number
  • numfmt_parse_currency() - Parse a currency number


Format a number

  • « NumberFormatter::formatCurrency
  • NumberFormatter::getAttribute »
  • PHP Manual
  • NumberFormatter
  • Format a number

NumberFormatter::format

numfmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::format -- numfmt_format — Format a number

Описание

Объектно-ориентированный стиль

public string NumberFormatter::format ( number $value [, int $type ] )

Процедурный стиль

string numfmt_format ( NumberFormatter $fmt , number $value [, int $type ] )

Format a numeric value according to the formatter rules.

Список параметров

fmt

NumberFormatter object.

value

The value to format. Can be integer or float, other values will be converted to a numeric value.

type

The formatting type to use.

Возвращаемые значения

Returns the string containing formatted value, or FALSE on error.

Примеры

Пример #1 numfmt_format() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_format($fmt))) {
    report_error("Formatter error");
}
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Formatter error");
}
?>

Результат выполнения данного примера:

1.234.567,891

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_format_currency() - Format a currency value
  • numfmt_parse() - Parse a number


Get an attribute

  • « NumberFormatter::format
  • NumberFormatter::getErrorCode »
  • PHP Manual
  • NumberFormatter
  • Get an attribute

NumberFormatter::getAttribute

numfmt_get_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getAttribute -- numfmt_get_attribute — Get an attribute

Описание

Объектно-ориентированный стиль

public int NumberFormatter::getAttribute ( int $attr )

Процедурный стиль

int numfmt_get_attribute ( NumberFormatter $fmt , int $attr )

Get a numeric attribute associated with the formatter. An example of a numeric attribute is the number of integer digits the formatter will produce.

Список параметров

fmt

NumberFormatter object.

attr

Attribute specifier - one of the numeric attribute constants.

Возвращаемые значения

Return attribute value on success, or FALSE on error.

Примеры

Пример #1 numfmt_get_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Digits: 3
1.234.567,891
Digits: 2
1.234.567,89

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_get_text_attribute() - Get a text attribute
  • numfmt_set_attribute() - Set an attribute


Get formatter's last error code.

  • « NumberFormatter::getAttribute
  • NumberFormatter::getErrorMessage »
  • PHP Manual
  • NumberFormatter
  • Get formatter's last error code.

NumberFormatter::getErrorCode

numfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getErrorCode -- numfmt_get_error_code — Get formatter's last error code.

Описание

Объектно-ориентированный стиль

public int NumberFormatter::getErrorCode ( void )

Процедурный стиль

int numfmt_get_error_code ( NumberFormatter $fmt )

Get error code from the last function performed by the formatter.

Список параметров

fmt

NumberFormatter object.

Возвращаемые значения

Returns error code from last formatter call.

Примеры

Пример #1 numfmt_get_error_code() example

<?php
$fmt  = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(intl_is_failure(numfmt_get_error_code($fmt))) {
    report_error("Formatter error");
}
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(intl_is_failure($fmt->getErrorCode())) {
    report_error("Formatter error");
}
?>

Смотрите также

  • numfmt_get_error_message() - Get formatter's last error message.
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get formatter's last error message.

  • « NumberFormatter::getErrorCode
  • NumberFormatter::getLocale »
  • PHP Manual
  • NumberFormatter
  • Get formatter's last error message.

NumberFormatter::getErrorMessage

numfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getErrorMessage -- numfmt_get_error_message — Get formatter's last error message.

Описание

Объектно-ориентированный стиль

public string NumberFormatter::getErrorMessage ( void )

Процедурный стиль

string numfmt_get_error_message ( NumberFormatter $fmt )

Get error message from the last function performed by the formatter.

Список параметров

fmt

NumberFormatter object.

Возвращаемые значения

Returns error message from last formatter call.

Примеры

Пример #1 numfmt_get_error_message() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
var_dump(numfmt_get_error_message($fmt));
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
var_dump(numfmt_get_error_message($fmt));
?>

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get formatter locale

  • « NumberFormatter::getErrorMessage
  • NumberFormatter::getPattern »
  • PHP Manual
  • NumberFormatter
  • Get formatter locale

NumberFormatter::getLocale

numfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getLocale -- numfmt_get_locale — Get formatter locale

Описание

Объектно-ориентированный стиль

public string NumberFormatter::getLocale ([ int $type ] )

Процедурный стиль

string numfmt_get_locale ( NumberFormatter $fmt [, int $type ] )

Get formatter locale name.

Список параметров

fmt

NumberFormatter object.

type

You can choose between valid and actual locale ( Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectively). The default is the actual locale.

Возвращаемые значения

The locale name used to create the formatter.

Примеры

Пример #1 numfmt_get_locale() example

<?php
$req     = 'fr_FR_PARIS';
$fmt     = numfmt_create( $req,  NumberFormatter::DECIMAL);
$res_val = numfmt_get_locale( $fmt, Locale::VALID_LOCALE );
$res_act = numfmt_get_locale( $fmt, Locale::ACTUAL_LOCALE );
printf( "Requested locale name: %s\nValid locale name: %s\nActual locale name: %s\n",
         $req, $res_val, $res_act );
?>

Результат выполнения данного примера:

Requested locale name: fr_FR_PARIS
Valid locale name: fr_FR
Actual locale name: fr

Смотрите также

  • numfmt_create() - Create a number formatter
  • numfmt_get_error_code() - Get formatter's last error code.


Get formatter pattern

  • « NumberFormatter::getLocale
  • NumberFormatter::getSymbol »
  • PHP Manual
  • NumberFormatter
  • Get formatter pattern

NumberFormatter::getPattern

numfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getPattern -- numfmt_get_pattern — Get formatter pattern

Описание

Объектно-ориентированный стиль

public string NumberFormatter::getPattern ( void )

Процедурный стиль

string numfmt_get_pattern ( NumberFormatter $fmt )

Extract pattern used by the formatter.

Список параметров

fmt

NumberFormatter object.

Возвращаемые значения

Pattern string that is used by the formatter, or FALSE if an error happens.

Примеры

Пример #1 numfmt_get_pattern() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Pattern: #,##0.###
1.234.567,891
Pattern: #0.# kg
1234567,9 kg

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_set_pattern() - Set formatter pattern
  • numfmt_create() - Create a number formatter


Get a symbol value

  • « NumberFormatter::getPattern
  • NumberFormatter::getTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Get a symbol value

NumberFormatter::getSymbol

numfmt_get_symbol

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getSymbol -- numfmt_get_symbol — Get a symbol value

Описание

Объектно-ориентированный стиль

public string NumberFormatter::getSymbol ( int $attr )

Процедурный стиль

string numfmt_get_symbol ( NumberFormatter $fmt , int $attr )

Get a symbol associated with the formatter. The formatter uses symbols to represent the special locale-dependent characters in a number, for example the percent sign. This API is not supported for rule-based formatters.

Список параметров

fmt

NumberFormatter object.

attr

Symbol specifier, one of the format symbol constants.

Возвращаемые значения

The symbol string or FALSE on error.

Примеры

Пример #1 numfmt_get_symbol() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Sep: .
1.234.567,891
Sep: *
1*234*567,891

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_set_symbol() - Set a symbol value


Get a text attribute

  • « NumberFormatter::getSymbol
  • NumberFormatter::parseCurrency »
  • PHP Manual
  • NumberFormatter
  • Get a text attribute

NumberFormatter::getTextAttribute

numfmt_get_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::getTextAttribute -- numfmt_get_text_attribute — Get a text attribute

Описание

Объектно-ориентированный стиль

public string NumberFormatter::getTextAttribute ( int $attr )

Процедурный стиль

string numfmt_get_text_attribute ( NumberFormatter $fmt , int $attr )

Get a text attribute associated with the formatter. An example of a text attribute is the suffix for positive numbers. If the formatter does not understand the attribute, U_UNSUPPORTED_ERROR error is produced. Rule-based formatters only understand NumberFormatter::DEFAULT_RULESET and NumberFormatter::PUBLIC_RULESETS.

Список параметров

fmt

NumberFormatter object.

attr

Attribute specifier - one of the text attribute constants.

Возвращаемые значения

Return attribute value on success, or FALSE on error.

Примеры

Пример #1 numfmt_get_text_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Prefix: -
-1.234.567,891
Prefix: MINUS
MINUS1.234.567,891

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_get_attribute() - Get an attribute
  • numfmt_set_text_attribute() - Set a text attribute


Parse a currency number

  • « NumberFormatter::getTextAttribute
  • NumberFormatter::parse »
  • PHP Manual
  • NumberFormatter
  • Parse a currency number

NumberFormatter::parseCurrency

numfmt_parse_currency

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::parseCurrency -- numfmt_parse_currency — Parse a currency number

Описание

Объектно-ориентированный стиль

public float NumberFormatter::parseCurrency ( string $value , string &$currency [, int &$position ] )

Процедурный стиль

float numfmt_parse_currency ( NumberFormatter $fmt , string $value , string &$currency [, int &$position ] )

Parse a string into a double and a currency using the current formatter.

Список параметров

fmt

NumberFormatter object.

currency

Parameter to receive the currency name (3-letter ISO 4217 currency code).

position

Offset in the string at which to begin parsing. On return, this value will hold the offset at which parsing ended.

Возвращаемые значения

The parsed numeric value or FALSE on error.

Примеры

Пример #1 numfmt_parse_currency() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "We have ".numfmt_parse_currency($fmt, $num, $curr)." in $curr\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::CURRENCY );
$num = "1.234.567,89\xc2\xa0$";
echo "We have ".$fmt->parseCurrency($num, $curr)." in $curr\n";
?>

Результат выполнения данного примера:

We have 1234567.89 in USD

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_parse() - Parse a number
  • numfmt_format_currency() - Format a currency value


Parse a number

  • « NumberFormatter::parseCurrency
  • NumberFormatter::setAttribute »
  • PHP Manual
  • NumberFormatter
  • Parse a number

NumberFormatter::parse

numfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::parse -- numfmt_parse — Parse a number

Описание

Объектно-ориентированный стиль

public mixed NumberFormatter::parse ( string $value [, int $type [, int &$position ]] )

Процедурный стиль

mixed numfmt_parse ( NumberFormatter $fmt , string $value [, int $type [, int &$position ]] )

Parse a string into a number using the current formatter rules.

Список параметров

fmt

NumberFormatter object.

type

The formatting type to use. By default, NumberFormatter::TYPE_DOUBLE is used.

position

Offset in the string at which to begin parsing. On return, this value will hold the offset at which parsing ended.

Возвращаемые значения

The value of the parsed number or FALSE on error.

Примеры

Пример #1 numfmt_parse() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo numfmt_parse($fmt, $num)."\n";
echo numfmt_parse($fmt, $num, NumberFormatter::TYPE_INT32)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo $fmt->parse($num)."\n";
echo $fmt->parse($num, NumberFormatter::TYPE_INT32)."\n";
?>

Результат выполнения данного примера:

1234567.891
1234567

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_format() - Format a number
  • numfmt_parse_currency() - Parse a currency number


Set an attribute

  • « NumberFormatter::parse
  • NumberFormatter::setPattern »
  • PHP Manual
  • NumberFormatter
  • Set an attribute

NumberFormatter::setAttribute

numfmt_set_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setAttribute -- numfmt_set_attribute — Set an attribute

Описание

Объектно-ориентированный стиль

public bool NumberFormatter::setAttribute ( int $attr , int $value )

Процедурный стиль

bool numfmt_set_attribute ( NumberFormatter $fmt , int $attr , int $value )

Set a numeric attribute associated with the formatter. An example of a numeric attribute is the number of integer digits the formatter will produce.

Список параметров

fmt

NumberFormatter object.

attr

Attribute specifier - one of the numeric attribute constants.

value

The attribute value.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 numfmt_set_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".numfmt_get_attribute($fmt, NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2);
echo "Digits: ".$fmt->getAttribute(NumberFormatter::MAX_FRACTION_DIGITS)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Digits: 3
1.234.567,891
Digits: 2
1.234.567,89

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_get_attribute() - Get an attribute
  • numfmt_set_text_attribute() - Set a text attribute


Set formatter pattern

  • « NumberFormatter::setAttribute
  • NumberFormatter::setSymbol »
  • PHP Manual
  • NumberFormatter
  • Set formatter pattern

NumberFormatter::setPattern

numfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setPattern -- numfmt_set_pattern — Set formatter pattern

Описание

Объектно-ориентированный стиль

public bool NumberFormatter::setPattern ( string $pattern )

Процедурный стиль

bool numfmt_set_pattern ( NumberFormatter $fmt , string $pattern )

Set the pattern used by the formatter. Can not be used on a rule-based formatter.

Список параметров

fmt

NumberFormatter object.

pattern

Pattern in syntax described in » ICU DecimalFormat documentation.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 numfmt_set_pattern() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Pattern: #,##0.###
1.234.567,891
Pattern: #0.# kg
1234567,9 kg

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_create() - Create a number formatter
  • numfmt_get_pattern() - Get formatter pattern


Set a symbol value

  • « NumberFormatter::setPattern
  • NumberFormatter::setTextAttribute »
  • PHP Manual
  • NumberFormatter
  • Set a symbol value

NumberFormatter::setSymbol

numfmt_set_symbol

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setSymbol -- numfmt_set_symbol — Set a symbol value

Описание

Объектно-ориентированный стиль

public bool NumberFormatter::setSymbol ( int $attr , string $value )

Процедурный стиль

bool numfmt_set_symbol ( NumberFormatter $fmt , int $attr , string $value )

Set a symbol associated with the formatter. The formatter uses symbols to represent the special locale-dependent characters in a number, for example the percent sign. This API is not supported for rule-based formatters.

Список параметров

fmt

NumberFormatter object.

attr

Symbol specifier, one of the format symbol constants.

value

Text for the symbol.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 numfmt_set_symbol() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".numfmt_get_symbol($fmt, NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL, "*");
echo "Sep: ".$fmt->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL)."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Sep: .
1.234.567,891
Sep: *
1*234*567,891

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_get_symbol() - Get a symbol value


Set a text attribute

  • « NumberFormatter::setSymbol
  • Locale »
  • PHP Manual
  • NumberFormatter
  • Set a text attribute

NumberFormatter::setTextAttribute

numfmt_set_text_attribute

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

NumberFormatter::setTextAttribute -- numfmt_set_text_attribute — Set a text attribute

Описание

Объектно-ориентированный стиль

public bool NumberFormatter::setTextAttribute ( int $attr , string $value )

Процедурный стиль

bool numfmt_set_text_attribute ( NumberFormatter $fmt , int $attr , string $value )

Set a text attribute associated with the formatter. An example of a text attribute is the suffix for positive numbers. If the formatter does not understand the attribute, U_UNSUPPORTED_ERROR error is produced. Rule-based formatters only understand NumberFormatter::DEFAULT_RULESET and NumberFormatter::PUBLIC_RULESETS.

Список параметров

fmt

NumberFormatter object.

attr

Attribute specifier - one of the text attribute constants.

value

Text for the attribute value.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 numfmt_set_text_attribute() example

<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
numfmt_set_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".numfmt_get_text_attribute($fmt, NumberFormatter::NEGATIVE_PREFIX)."\n";
echo numfmt_format($fmt, -1234567.891234567890000)."\n";
?>

Пример #2 OO example

<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
$fmt->setTextAttribute(NumberFormatter::NEGATIVE_PREFIX, "MINUS");
echo "Prefix: ".$fmt->getTextAttribute(NumberFormatter::NEGATIVE_PREFIX)."\n";
echo $fmt->format(-1234567.891234567890000)."\n";
?>

Результат выполнения данного примера:

Prefix: -
-1.234.567,891
Prefix: MINUS
MINUS1.234.567,891

Смотрите также

  • numfmt_get_error_code() - Get formatter's last error code.
  • numfmt_get_text_attribute() - Get a text attribute
  • numfmt_set_attribute() - Set an attribute


Класс Locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

"Locale" - это идентификатор используемый для распознавания языка, культуры или региональные особенности поведения API. Локали PHP организованы и обозначены так же как и локали CLDR, используемые ICU и многими производителями систем Unix, Linux и Mac, Java и т.д. Локали обозначаются согласно языковым меткам стандарта RFC 4646 (который использует тире, а не подчеркивание) в дополнение к традиционным обозначением с использованием символа подчеркивания. Функции данного класса понимают оба написания, если явно не указано иное.

Примеры идентификаторов:

  • en-US (Английский, США)
  • zh-Hant-TW (Китайский, Традиционное начертание, Тайвань)
  • fr-CA, fr-FR (Канадский Французский и Французский соответственно)

Класс Locale (и соответствующие процедурные функции) используется для взаимодействия с идентификаторами локалей, для проверки правильного составления идентификатора, его корректности и т.д. Расширения используются CLDR в UAX #35 (и наследуется ICU), являются корректными и используйются везде они были бы в ICU.

Данный класс нельзя инстанциировать как объект. Все методы/функции объявлены статическими.

NULL или пустая строка будут считаться за "базовую" локаль. "Базовая" локаль - это "en_US_POSIX" в CLDR. Языковые метки (и идентификаторы локали) регистронезависимы. В данном классе присутствует метод, преобразующий их к каноничному виду.

Обзор классов

Locale {
/* Методы */
public static string acceptFromHttp ( string $header )
public static string canonicalize ( string $locale )
public static string composeLocale ( array $subtags )
public static bool filterMatches ( string $langtag , string $locale [, bool $canonicalize = false ] )
public static array getAllVariants ( string $locale )
public static string getDefault ( void )
public static string getDisplayLanguage ( string $locale [, string $in_locale ] )
public static string getDisplayName ( string $locale [, string $in_locale ] )
public static string getDisplayRegion ( string $locale [, string $in_locale ] )
public static string getDisplayScript ( string $locale [, string $in_locale ] )
public static string getDisplayVariant ( string $locale [, string $in_locale ] )
public static array getKeywords ( string $locale )
public static string getPrimaryLanguage ( string $locale )
public static string getRegion ( string $locale )
public static string getScript ( string $locale )
public static string lookup ( array $langtag , string $locale [, bool $canonicalize = false [, string $default ]] )
public static array parseLocale ( string $locale )
public static bool setDefault ( string $locale )
}

Предопределенные константы

Locale::DEFAULT_LOCALE (null)
Используется в качестве параметра, задающего локаль в функциях где это необходимо, таких как NumberFormatter. Эта константа вынуждает использовать локаль по умолчанию.

Эти константы описывают выбор локали для метода getLocalte различных классов.

Locale::ACTUAL_LOCALE (string)
Описывает текущую локаль.
Locale::VALID_LOCALE (string)
Это самая специфичная локаль, поддерживаемая ICU.

Эти константы описывают как разбираются или из чего состоят локали. Они используются как ключи массива аргументов дляo locale_compose() и как возвращаемые значения locale_parse() в виде ключей возвращаемого ассоциативного массива.

Locale::LANG_TAG (string)
Метка для языка
Locale::EXTLANG_TAG (string)
Расширенная метка языка
Locale::SCRIPT_TAG (string)
Метка начертания
Locale::REGION_TAG (string)
Метка региона
Locale::VARIANT_TAG (string)
Метка варианта
Locale::GRANDFATHERED_LANG_TAG (string)
Метка языка в старом синтаксисе (grandfathered)
Locale::PRIVATE_TAG (string)
Приватная метка

Смотрите также

  • » RFC 4646 - метки для идентификаторов языков
  • » RFC 4647 - проверка языковых меток
  • » Проект Unicode CLDR:Стандартный репозиторий данных локалей
  • » Регистр языковых меток IANA
  • » Руководство пользователя ICU - Локаль
  • » ICU api локали

Содержание

  • Locale::acceptFromHttp — Tries to find out best available locale based on HTTP "Accept-Language" header
  • Locale::canonicalize — Canonicalize the locale string
  • Locale::composeLocale — Returns a correctly ordered and delimited locale ID
  • Locale::filterMatches — Checks if a language tag filter matches with locale
  • Locale::getAllVariants — Gets the variants for the input locale
  • Locale::getDefault — Gets the default locale value from the INTL global 'default_locale'
  • Locale::getDisplayLanguage — Returns an appropriately localized display name for language of the inputlocale
  • Locale::getDisplayName — Returns an appropriately localized display name for the input locale
  • Locale::getDisplayRegion — Returns an appropriately localized display name for region of the input locale
  • Locale::getDisplayScript — Returns an appropriately localized display name for script of the input locale
  • Locale::getDisplayVariant — Returns an appropriately localized display name for variants of the input locale
  • Locale::getKeywords — Gets the keywords for the input locale
  • Locale::getPrimaryLanguage — Gets the primary language for the input locale
  • Locale::getRegion — Gets the region for the input locale
  • Locale::getScript — Gets the script for the input locale
  • Locale::lookup — Searches the language tag list for the best match to the language
  • Locale::parseLocale — Returns a key-value array of locale ID subtag elements.
  • Locale::setDefault — sets the default runtime locale


Tries to find out best available locale based on HTTP "Accept-Language" header

  • « Locale
  • Locale::canonicalize »
  • PHP Manual
  • Locale
  • Tries to find out best available locale based on HTTP "Accept-Language" header

Locale::acceptFromHttp

locale_accept_from_http

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::acceptFromHttp -- locale_accept_from_http — Tries to find out best available locale based on HTTP "Accept-Language" header

Описание

Объектно-ориентированный стиль

public static string Locale::acceptFromHttp ( string $header )

Процедурный стиль

string locale_accept_from_http ( string $header )

Tries to find locale that can satisfy the language list that is requested by the HTTP "Accept-Language" header.

Список параметров

header

The string containing the "Accept-Language" header according to format in RFC 2616.

Возвращаемые значения

The corresponding locale identifier.

Примеры

Пример #1 locale_accept_from_http() example

<?php
$locale = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;
?>

Пример #2 OO example

<?php
$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
echo $locale;
?>

Результат выполнения данного примера:

en_US

Смотрите также

  • locale_lookup() - Searches the language tag list for the best match to the language


Canonicalize the locale string

  • « Locale::acceptFromHttp
  • Locale::composeLocale »
  • PHP Manual
  • Locale
  • Canonicalize the locale string

Locale::canonicalize

locale_canonicalize

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::canonicalize -- locale_canonicalize — Canonicalize the locale string

Описание

public static string Locale::canonicalize ( string $locale )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale

Возвращаемые значения


Returns a correctly ordered and delimited locale ID

  • « Locale::canonicalize
  • Locale::filterMatches »
  • PHP Manual
  • Locale
  • Returns a correctly ordered and delimited locale ID

Locale::composeLocale

locale_compose

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::composeLocale -- locale_compose — Returns a correctly ordered and delimited locale ID

Описание

Объектно-ориентированный стиль

public static string Locale::composeLocale ( array $subtags )

Процедурный стиль

string locale_compose ( array $subtags )

Returns a correctly ordered and delimited locale ID the keys identify the particular locale ID subtags, and the values are the associated subtag values.

Список параметров

subtags

an array containing a list of key-value pairs, where the keys identify the particular locale ID subtags, and the values are the associated subtag values.

Замечание:

The 'variant' and 'private' subtags can take maximum 15 values whereas 'extlang' can take maximum 3 values.e.g. Variants are allowed with the suffix ranging from 0-14. Hence the keys for the input array can be variant0, variant1, ...,variant14. In the returned locale id, the subtag is ordered by suffix resulting in variant0 followed by variant1 followed by variant2 and so on.

The 'variant', 'private' and 'extlang' multiple values can be specified both as array under specific key (e.g. 'variant') and as multiple numbered keys (e.g. 'variant0', 'variant1', etc.).

Возвращаемые значения

The corresponding locale identifier.

Примеры

Пример #1 locale_compose() example

<?php
$arr = array(
    'language'=>'en' ,
    'script'  =>'Hans' ,
    'region'  =>'CN',
    'variant2'=>'rozaj' ,
    'variant1'=>'nedis' ,
    'private1'=>'prv1' ,
    'private2'=>'prv2'
);
echo locale_compose( $arr );
?>

Пример #2 OO example

<?php
$arr = array(
    'language'=>'en' ,
    'script'  =>'Hans' ,
    'region'  =>'CN',
    'variant2'=>'rozaj' ,
    'variant1'=>'nedis' ,
    'private1'=>'prv1' ,
    'private2'=>'prv2'
);
echo Locale::composeLocale( $arr );
?>

Результат выполнения данного примера:

Locale: en_Hans_CN_nedis_rozaj_x_prv1_prv2

Смотрите также

  • locale_parse() - Returns a key-value array of locale ID subtag elements.


Checks if a language tag filter matches with locale

  • « Locale::composeLocale
  • Locale::getAllVariants »
  • PHP Manual
  • Locale
  • Checks if a language tag filter matches with locale

Locale::filterMatches

locale_filter_matches

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::filterMatches -- locale_filter_matches — Checks if a language tag filter matches with locale

Описание

Объектно-ориентированный стиль

public static bool Locale::filterMatches ( string $langtag , string $locale [, bool $canonicalize = false ] )

Процедурный стиль

bool locale_filter_matches ( string $langtag , string $locale [, bool $canonicalize = false ] )

Checks if a $langtag filter matches with $locale according to RFC 4647's basic filtering algorithm

Список параметров

langtag

The language tag to check

locale

The language range to check against

canonicalize

If true, the arguments will be converted to canonical form before matching.

Возвращаемые значения

TRUE if $locale matches $langtag FALSE otherwise.

Примеры

Пример #1 locale_filter_matches() example

<?php
echo (locale_filter_matches('de-DEVA','de-DE', false)) ? "Matches" : "Does not match";
echo '; ';
echo (locale_filter_matches('de-DE_1996','de-DE', false)) ? "Matches" : "Does not match";
?>

Пример #2 OO example

<?php
echo (Locale::filterMatches('de-DEVA','de-DE', false)) ? "Matches" : "Does not match";
echo '; ';
echo (Locale::filterMatches('de-DE-1996','de-DE', false)) ? "Matches" : "Does not match";
?>

Результат выполнения данного примера:

Does not match; Matches

Смотрите также

  • locale_lookup() - Searches the language tag list for the best match to the language


Gets the variants for the input locale

  • « Locale::filterMatches
  • Locale::getDefault »
  • PHP Manual
  • Locale
  • Gets the variants for the input locale

Locale::getAllVariants

locale_get_all_variants

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getAllVariants -- locale_get_all_variants — Gets the variants for the input locale

Описание

Объектно-ориентированный стиль

public static array Locale::getAllVariants ( string $locale )

Процедурный стиль

array locale_get_all_variants ( string $locale )

Gets the variants for the input locale

Список параметров

locale

The locale to extract the variants from

Возвращаемые значения

The array containing the list of all variants subtag for the locale or NULL if not present

Примеры

Пример #1 locale_get_all_variants() example

<?php
$arr = locale_get_all_variants('sl_IT_NEDIS_ROJAZ_1901');
var_export( $arr );
?>

Пример #2 OO example

<?php
 $arr = Locale::getAllVariants('sl_IT_NEDIS_ROJAZ_1901');
 var_export( $arr );
?>

Результат выполнения данного примера:

array (
    0 => 'NEDIS',
    1 => 'ROJAZ',
    2 => '1901',
)

Смотрите также

  • locale_get_primary_language() - Gets the primary language for the input locale
  • locale_get_script() - Gets the script for the input locale
  • locale_get_region() - Gets the region for the input locale


Gets the default locale value from the INTL global 'default_locale'

  • « Locale::getAllVariants
  • Locale::getDisplayLanguage »
  • PHP Manual
  • Locale
  • Gets the default locale value from the INTL global 'default_locale'

Locale::getDefault

locale_get_default

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDefault -- locale_get_default — Gets the default locale value from the INTL global 'default_locale'

Описание

Объектно-ориентированный стиль

public static string Locale::getDefault ( void )

Процедурный стиль

string locale_get_default ( void )

Gets the default locale value. At the PHP initialization this value is set to 'intl.default_locale' value from php.ini if that value exists or from ICU's function uloc_getDefault().

Список параметров

Возвращаемые значения

The current runtime locale

Примеры

Пример #1 locale_get_default() example

<?php
ini_set('intl.default_locale', 'de-DE');
echo locale_get_default();
echo '; ';
locale_set_default('fr');
echo locale_get_default();
?>

Пример #2 OO example

<?php
ini_set('intl.default_locale', 'de-DE');
echo Locale::getDefault();
echo '; ';
Locale::setDefault('fr');
echo Locale::getDefault();
?>

Результат выполнения данного примера:

de-DE; fr

Смотрите также

  • locale_set_default() - sets the default runtime locale


Returns an appropriately localized display name for language of the inputlocale

  • « Locale::getDefault
  • Locale::getDisplayName »
  • PHP Manual
  • Locale
  • Returns an appropriately localized display name for language of the inputlocale

Locale::getDisplayLanguage

locale_get_display_language

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayLanguage -- locale_get_display_language — Returns an appropriately localized display name for language of the inputlocale

Описание

Объектно-ориентированный стиль

public static string Locale::getDisplayLanguage ( string $locale [, string $in_locale ] )

Процедурный стиль

string locale_get_display_language ( string $locale [, string $in_locale ] )

Returns an appropriately localized display name for language of the input locale. If is NULL then the default locale is used.

Список параметров

locale

The locale to return a display language for

in_locale

Optional format locale to use to display the language name

Возвращаемые значения

display name of the language for the $locale in the format appropriate for $in_locale.

Примеры

Пример #1 locale_get_display_language() example

<?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 OO example

<?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() - Returns an appropriately localized display name for the input locale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale


Returns an appropriately localized display name for the input locale

  • « Locale::getDisplayLanguage
  • Locale::getDisplayRegion »
  • PHP Manual
  • Locale
  • Returns an appropriately localized display name for the input locale

Locale::getDisplayName

locale_get_display_name

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayName -- locale_get_display_name — Returns an appropriately localized display name for the input locale

Описание

Объектно-ориентированный стиль

public static string Locale::getDisplayName ( string $locale [, string $in_locale ] )

Процедурный стиль

string locale_get_display_name ( string $locale [, string $in_locale ] )

Returns an appropriately localized display name for the input locale. If is NULL then the default locale is used.

Список параметров

locale

The locale to return a display name for.

in_locale

optional format locale

Возвращаемые значения

Display name of the locale in the format appropriate for $in_locale.

Примеры

Пример #1 locale_get_display_name() example

<?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 OO example

<?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() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale


Returns an appropriately localized display name for region of the input locale

  • « Locale::getDisplayName
  • Locale::getDisplayScript »
  • PHP Manual
  • Locale
  • Returns an appropriately localized display name for region of the input locale

Locale::getDisplayRegion

locale_get_display_region

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayRegion -- locale_get_display_region — Returns an appropriately localized display name for region of the input locale

Описание

Объектно-ориентированный стиль

public static string Locale::getDisplayRegion ( string $locale [, string $in_locale ] )

Процедурный стиль

string locale_get_display_region ( string $locale [, string $in_locale ] )

Returns an appropriately localized display name for region of the input locale. If is NULL then the default locale is used.

Список параметров

locale

The locale to return a display region for.

in_locale

Optional format locale to use to display the region name

Возвращаемые значения

display name of the region for the $locale in the format appropriate for $in_locale.

Примеры

Пример #1 locale_get_display_region() example

<?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 OO example

<?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() - Returns an appropriately localized display name for the input locale
  • locale_get_display_language() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale


Returns an appropriately localized display name for script of the input locale

  • « Locale::getDisplayRegion
  • Locale::getDisplayVariant »
  • PHP Manual
  • Locale
  • Returns an appropriately localized display name for script of the input locale

Locale::getDisplayScript

locale_get_display_script

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayScript -- locale_get_display_script — Returns an appropriately localized display name for script of the input locale

Описание

Объектно-ориентированный стиль

public static string Locale::getDisplayScript ( string $locale [, string $in_locale ] )

Процедурный стиль

string locale_get_display_script ( string $locale [, string $in_locale ] )

Returns an appropriately localized display name for script of the input locale. If is NULL then the default locale is used.

Список параметров

locale

The locale to return a display script for

in_locale

Optional format locale to use to display the script name

Возвращаемые значения

Display name of the script for the $locale in the format appropriate for $in_locale.

Примеры

Пример #1 locale_get_display_script() example

<?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 OO example

<?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() - Returns an appropriately localized display name for the input locale
  • locale_get_display_language() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale
  • locale_get_display_variant() - Returns an appropriately localized display name for variants of the input locale


Returns an appropriately localized display name for variants of the input locale

  • « Locale::getDisplayScript
  • Locale::getKeywords »
  • PHP Manual
  • Locale
  • Returns an appropriately localized display name for variants of the input locale

Locale::getDisplayVariant

locale_get_display_variant

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getDisplayVariant -- locale_get_display_variant — Returns an appropriately localized display name for variants of the input locale

Описание

Объектно-ориентированный стиль

public static string Locale::getDisplayVariant ( string $locale [, string $in_locale ] )

Процедурный стиль

string locale_get_display_variant ( string $locale [, string $in_locale ] )

Returns an appropriately localized display name for variants of the input locale. If is NULL then the default locale is used.

Список параметров

locale

The locale to return a display variant for

in_locale

Optional format locale to use to display the variant name

Возвращаемые значения

Display name of the variant for the $locale in the format appropriate for $in_locale.

Примеры

Пример #1 locale_get_display_variant() example

<?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 OO example

<?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() - Returns an appropriately localized display name for the input locale
  • locale_get_display_language() - Returns an appropriately localized display name for language of the inputlocale
  • locale_get_display_script() - Returns an appropriately localized display name for script of the input locale
  • locale_get_display_region() - Returns an appropriately localized display name for region of the input locale


Gets the keywords for the input locale

  • « Locale::getDisplayVariant
  • Locale::getPrimaryLanguage »
  • PHP Manual
  • Locale
  • Gets the keywords for the input locale

Locale::getKeywords

locale_get_keywords

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getKeywords -- locale_get_keywords — Gets the keywords for the input locale

Описание

Объектно-ориентированный стиль

public static array Locale::getKeywords ( string $locale )

Процедурный стиль

array locale_get_keywords ( string $locale )

Gets the keywords for the input locale.

Список параметров

locale

The locale to extract the keywords from

Возвращаемые значения

Associative array containing the keyword-value pairs for this locale

Примеры

Пример #1 locale_get_keywords() example

<?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 OO example

<?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() - Gets the variants for the input locale


Gets the primary language for the input locale

  • « Locale::getKeywords
  • Locale::getRegion »
  • PHP Manual
  • Locale
  • Gets the primary language for the input locale

Locale::getPrimaryLanguage

locale_get_primary_language

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getPrimaryLanguage -- locale_get_primary_language — Gets the primary language for the input locale

Описание

Объектно-ориентированный стиль

public static string Locale::getPrimaryLanguage ( string $locale )

Процедурный стиль

string locale_get_primary_language ( string $locale )

Gets the primary language for the input locale

Список параметров

locale

The locale to extract the primary language code from

Возвращаемые значения

The language code associated with the language or NULL in case of error.

Примеры

Пример #1 locale_get_primary_language() example

<?php
echo locale_get_primary_language('zh-Hant');
?>

Пример #2 OO example

<?php
echo Locale::getPrimaryLanguage('zh-Hant');
?>

Результат выполнения данного примера:

zh

Смотрите также

  • locale_get_script() - Gets the script for the input locale
  • locale_get_region() - Gets the region for the input locale
  • locale_get_all_variants() - Gets the variants for the input locale


Gets the region for the input locale

  • « Locale::getPrimaryLanguage
  • Locale::getScript »
  • PHP Manual
  • Locale
  • Gets the region for the input locale

Locale::getRegion

locale_get_region

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getRegion -- locale_get_region — Gets the region for the input locale

Описание

Объектно-ориентированный стиль

public static string Locale::getRegion ( string $locale )

Процедурный стиль

string locale_get_region ( string $locale )

Gets the region for the input locale.

Список параметров

locale

The locale to extract the region code from

Возвращаемые значения

The region subtag for the locale or NULL if not present

Примеры

Пример #1 locale_get_region() example

<?php
echo locale_get_region('de-CH-1901');
?>

Пример #2 OO example

<?php
echo Locale::getRegion('de-CH-1901');
?>

Результат выполнения данного примера:

CH

Смотрите также

  • locale_get_primary_language() - Gets the primary language for the input locale
  • locale_get_script() - Gets the script for the input locale
  • locale_get_all_variants() - Gets the variants for the input locale


Gets the script for the input locale

  • « Locale::getRegion
  • Locale::lookup »
  • PHP Manual
  • Locale
  • Gets the script for the input locale

Locale::getScript

locale_get_script

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::getScript -- locale_get_script — Gets the script for the input locale

Описание

Объектно-ориентированный стиль

public static string Locale::getScript ( string $locale )

Процедурный стиль

string locale_get_script ( string $locale )

Gets the script for the input locale.

Список параметров

locale

The locale to extract the script code from

Возвращаемые значения

The script subtag for the locale or NULL if not present

Примеры

Пример #1 locale_get_script() example

<?php
echo locale_get_script('sr-Cyrl');
?>

Пример #2 OO example

<?php
echo Locale::getScript('sr-Cyrl');
?>

Результат выполнения данного примера:

Cyrl

Смотрите также

  • locale_get_primary_language() - Gets the primary language for the input locale
  • locale_get_region() - Gets the region for the input locale
  • locale_get_all_variants() - Gets the variants for the input locale


Searches the language tag list for the best match to the language

  • « Locale::getScript
  • Locale::parseLocale »
  • PHP Manual
  • Locale
  • Searches the language tag list for the best match to the language

Locale::lookup

locale_lookup

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::lookup -- locale_lookup — Searches the language tag list for the best match to the language

Описание

Объектно-ориентированный стиль

public static string Locale::lookup ( array $langtag , string $locale [, bool $canonicalize = false [, string $default ]] )

Процедурный стиль

string locale_lookup ( array $langtag , string $locale [, bool $canonicalize = false [, string $default ]] )

Searches the items in langtag for the best match to the language range specified in locale according to RFC 4647's lookup algorithm.

Список параметров

langtag

An array containing a list of language tags to compare to locale. Maximum 100 items allowed.

locale

The locale to use as the language range when matching.

canonicalize

If true, the arguments will be converted to canonical form before matching.

default

The locale to use if no match is found.

Возвращаемые значения

The closest matching language tag or default value.

Примеры

Пример #1 locale_lookup() example

<?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 OO example

<?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() - Checks if a language tag filter matches with locale


Returns a key-value array of locale ID subtag elements.

  • « Locale::lookup
  • Locale::setDefault »
  • PHP Manual
  • Locale
  • Returns a key-value array of locale ID subtag elements.

Locale::parseLocale

locale_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::parseLocale -- locale_parse — Returns a key-value array of locale ID subtag elements.

Описание

Объектно-ориентированный стиль

public static array Locale::parseLocale ( string $locale )

Процедурный стиль

array locale_parse ( string $locale )

Returns a key-value array of locale ID subtag elements.

Список параметров

locale

The locale to extract the subtag array from. Note: The 'variant' and 'private' subtags can take maximum 15 values whereas 'extlang' can take maximum 3 values.

Возвращаемые значения

Returns an array containing a list of key-value pairs, where the keys identify the particular locale ID subtags, and the values are the associated subtag values. The array will be ordered as the locale id subtags e.g. in the locale id if variants are '-varX-varY-varZ' then the returned array will have variant0=>varX , variant1=>varY , variant2=>varZ

Примеры

Пример #1 locale_parse() example

<?php
$arr = locale_parse('sl-Latn-IT-nedis');
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}
?>

Пример #2 OO example

<?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() - Returns a correctly ordered and delimited locale ID


sets the default runtime locale

  • « Locale::parseLocale
  • Normalizer »
  • PHP Manual
  • Locale
  • sets the default runtime locale

Locale::setDefault

locale_set_default

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Locale::setDefault -- locale_set_default — sets the default runtime locale

Описание

Объектно-ориентированный стиль

public static bool Locale::setDefault ( string $locale )

Процедурный стиль

bool locale_set_default ( string $locale )

Sets the default runtime locale to $locale. This changes the value of INTL global 'default_locale' locale identifier. UAX #35 extensions are accepted.

Список параметров

locale

Is a BCP 47 compliant language tag.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 locale_set_default() example

<?php
locale_set_default('de-DE');
echo locale_get_default();
?>

Пример #2 OO example

<?php
Locale::setDefault('de-DE');
echo Locale::getDefault();
?>

Результат выполнения данного примера:

de-DE

Смотрите также

  • locale_get_default() - Gets the default locale value from the INTL global 'default_locale'


Класс Normalizer

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

Нормализация - это процесс преобразования символов и их последовательностей в формальное представление более низкого уровня. Данный процесс крайне важен при сравнении строк при сортировке или при поиске, но также используется при сохранении текста, что бы быть уверенным в том, что он сохранился корректно.

Консорциум Unicode определил несколько форм нормализации, отражающих разные потребности приложений.:

  • Normalization Form D (NFD) - Каноническое разложение
  • Normalization Form C (NFC) - Каноническое разложение с последующей канонической сборкой
  • Normalization Form KD (NFKD) - Совместимое разложение
  • Normalization Form KC (NFKC) - Совместимое разложение с последующей канонической сборкой
Различные формы задаются в требованиях наборов преобразований текста. Преобразования вычисляются с алгоритма и набора файлов данных.

Обзор классов

Normalizer {
/* Методы */
public static bool isNormalized ( string $input [, int $form = Normalizer::FORM_C ] )
public static string normalize ( string $input [, int $form = Normalizer::FORM_C ] )
}

Предопределенные константы

Данные константы задают форму нормализации, используемую нормализатором:

Normalizer::FORM_C (integer)
Форма нормализации C (NFC) - Каноническое разложение, после которого каноническая сборка
Normalizer::FORM_D (integer)
Форма нормализации D (NFD) - Каноническое разложение
Normalizer::FORM_KC (integer)
Форма нормализации KC (NFKC) - Совместимое разложение, после которого каноническая сборка
Normalizer::FORM_KD (integer)
Форма нормализации KD (NFKD) - Совместимое разложение
Normalizer::NONE (integer)
Без разложения/сборки
Normalizer::OPTION_DEFAULT (integer)
Обычные настройки нормализации

Смотрите также

  • » Нормализация Unicode
  • » Нормализация Unicode. FAQ
  • » ICU Руководство пользователя - нормализация
  • » ICU Описание API - нормализация

Содержание

  • Normalizer::isNormalized — Проверить, соответствует ли переданная строка заданной форме нормализации
  • Normalizer::normalize — Нормализация строки


Проверить, соответствует ли переданная строка заданной форме нормализации

  • « Normalizer
  • Normalizer::normalize »
  • PHP Manual
  • Normalizer
  • Проверить, соответствует ли переданная строка заданной форме нормализации

Normalizer::isNormalized

normalizer_is_normalized

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Normalizer::isNormalized -- normalizer_is_normalized — Проверить, соответствует ли переданная строка заданной форме нормализации

Описание

Объектно-ориентированный стиль

public static bool Normalizer::isNormalized ( string $input [, int $form = Normalizer::FORM_C ] )

Процедурный стиль

bool normalizer_is_normalized ( string $input [, int $form = Normalizer::FORM_C ] )

Проверить, соответствует ли переданная строка заданной форме нормализации.

Список параметров

input

Проверяемая строка

form

Одна из форм нормализации.

Возвращаемые значения

TRUE если нормализована, FALSE - если нет или если произошла ошибка

Примеры

Пример #1 Пример использования normalizer_is_normalized()

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( normalizer_is_normalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( normalizer_is_normalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

Пример #2 Пример в объектно ориентированном стиле

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_orig = 'A' . $char_combining_ring_above;
$char_norm = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo ( Normalizer::isNormalized($char_orig, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
echo '; ';
echo ( Normalizer::isNormalized($char_norm, Normalizer::FORM_C) ) ? "normalized" : "not normalized";
?>

Результат выполнения данного примера:

not normalized; normalized

Смотрите также

  • normalizer_normalize() - Нормализация строки


Нормализация строки

  • « Normalizer::isNormalized
  • MessageFormatter »
  • PHP Manual
  • Normalizer
  • Нормализация строки

Normalizer::normalize

normalizer_normalize

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Normalizer::normalize -- normalizer_normalize — Нормализация строки

Описание

Объектно-ориентированный стиль

public static string Normalizer::normalize ( string $input [, int $form = Normalizer::FORM_C ] )

Процедурный стиль

string normalizer_normalize ( string $input [, int $form = Normalizer::FORM_C ] )

Нормализует переданную строку

Список параметров

input

Строка для нормализации

form

Одна из форм нормализации

Возвращаемые значения

Нормализованная строка или FALSE.

Примеры

Пример #1 Пример использования normalizer_normalize()

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_1 = normalizer_normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = normalizer_normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

Пример #2 Пример в объектно ориентированном стиле

<?php
$char_A_ring = "\xC3\x85"; // 'LATIN CAPITAL LETTER A WITH RING ABOVE' (U+00C5)
$char_combining_ring_above = "\xCC\x8A";  // 'COMBINING RING ABOVE' (U+030A)

$char_1 = Normalizer::normalize( $char_A_ring, Normalizer::FORM_C );
$char_2 = Normalizer::normalize( 'A' . $char_combining_ring_above, Normalizer::FORM_C );

echo urlencode($char_1);
echo ' ';
echo urlencode($char_2);
?>

Результат выполнения данного примера:

%C3%85 %C3%85

Смотрите также

  • normalizer_is_normalized() - Проверить, соответствует ли переданная строка заданной форме нормализации


The MessageFormatter class

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

MessageFormatter - это класс позволяющий создавать склеиваемые, не зависимые от языка сообщения. Методы этого класса используются для создания всех сообщений показываемых пользователю.

Класс MessageFormatter собирает сообщение из разных фрагментов (таких как текст, числа и даты) поставляемых программой. Данный класс позволяет программе не задумыватьо о порядке, в каком эти фрагменты надо склеивать. Класс использует спецификации форматирования для сборки этих фрагментов в сообщение, хранящееся в виде одной строки в хранилище ресурсов. К примеру, MessageFormatter позволит напечатать фразу "Finished printing x out of y files..." таким образом, чтобы обеспечить гибкость перевода.

Ранее сообщение для конечного пользователя создавалось как законченая фраза и обрабатывалась как строка. Такая процедура приводила к проблемам локализации, поскольку структура фразу, порядок слов, формат чисел и прочее сильно отличались в разных языках. нетральная к языку процедура создания сообщений держит каждую часть сообщения отдельно и предоставляет ключи к данным. используя эти ключи, класс MessageFormatter может склеивать части сообщения, преобразовывать их в соответствии с локалью и отображать в виде грамотного сообщения конечному пользователю.

MessageFormatter берет набор объектов, форматирует их и вставляет в шаблон в нужных местах. Совместно с MessageFormatter полезно использовать средства форматирования выбора (choice formatter) для обработки множественного/единственного числа, сравнения чисел и выбора из массива элементов. Обычно, формат сообщения берется из ресурсов, а аргументы передаются во время выполнения.

Обзор классов

MessageFormatter {
/* Методы */
public __construct ( string $locale , string $pattern )
public static MessageFormatter create ( string $locale , string $pattern )
public static string formatMessage ( string $locale , string $pattern , array $args )
public string format ( array $args )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public string getLocale ( void )
public string getPattern ( void )
public static array parseMessage ( string $locale , string $pattern , string $source )
public array parse ( string $value )
public bool setPattern ( string $pattern )
}

Смотрите также

  • » ICU. Документация по форматированию.
  • » ICU. Описание форматирования сообщений.
  • » ICU. Средства форматирования сообщений
  • » ICU. Средства форматирования выбора

Содержание

  • MessageFormatter::create — Constructs a new Message Formatter
  • MessageFormatter::formatMessage — Quick format message
  • MessageFormatter::format — Format the message
  • MessageFormatter::getErrorCode — Get the error code from last operation
  • MessageFormatter::getErrorMessage — Get the error text from the last operation
  • MessageFormatter::getLocale — Get the locale for which the formatter was created.
  • MessageFormatter::getPattern — Get the pattern used by the formatter
  • MessageFormatter::parseMessage — Quick parse input string
  • MessageFormatter::parse — Parse input string according to pattern
  • MessageFormatter::setPattern — Set the pattern used by the formatter


Constructs a new Message Formatter

  • « MessageFormatter
  • MessageFormatter::formatMessage »
  • PHP Manual
  • MessageFormatter
  • Constructs a new Message Formatter

MessageFormatter::create

MessageFormatter::__construct

msgfmt_create

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::create -- MessageFormatter::__construct -- msgfmt_create — Constructs a new Message Formatter

Описание

Объектно-ориентированный стиль (method)

public static MessageFormatter MessageFormatter::create ( string $locale , string $pattern )

Объектно-ориентированный стиль (constructor):

public MessageFormatter::__construct ( string $locale , string $pattern )

Процедурный стиль

MessageFormatter msgfmt_create ( string $locale , string $pattern )

Constructs a new Message Formatter

Список параметров

locale

The locale to use when formatting arguments

pattern

The pattern string to stick arguments into. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

Возвращаемые значения

The formatter object

Примеры

Пример #1 msgfmt_create() example

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

Результат выполнения данного примера:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum

Смотрите также

  • msgfmt_format() - Format the message
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation


Quick format message

  • « MessageFormatter::create
  • MessageFormatter::format »
  • PHP Manual
  • MessageFormatter
  • Quick format message

MessageFormatter::formatMessage

msgfmt_format_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::formatMessage -- msgfmt_format_message — Quick format message

Описание

Объектно-ориентированный стиль

public static string MessageFormatter::formatMessage ( string $locale , string $pattern , array $args )

Процедурный стиль

string msgfmt_format_message ( string $locale , string $pattern , array $args )

Quick formatting function that formats the string without having to explicitly create the formatter object. Use this function when the format operation is done only once and does not need and parameters or state to be kept.

Список параметров

locale

The locale to use for formatting locale-dependent parts

pattern

The pattern string to insert things into. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

args

The array of values to insert into the format string

Возвращаемые значения

The formatted pattern string or FALSE if an error occurred

Примеры

Пример #1 msgfmt_format_message() example

<?php
echo msgfmt_format_message("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo msgfmt_format_message("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
?>

Пример #2 OO example

<?php
echo MessageFormatter::formatMessage("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree\n", array(4560, 123, 4560/123));
echo MessageFormatter::formatMessage("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum\n", array(4560, 123, 4560/123));
?>

Результат выполнения данного примера:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation


Format the message

  • « MessageFormatter::formatMessage
  • MessageFormatter::getErrorCode »
  • PHP Manual
  • MessageFormatter
  • Format the message

MessageFormatter::format

msgfmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::format -- msgfmt_format — Format the message

Описание

Объектно-ориентированный стиль

public string MessageFormatter::format ( array $args )

Процедурный стиль

string msgfmt_format ( MessageFormatter $fmt , array $args )

Format the message by substituting the data into the format string according to the locale rules

Список параметров

fmt

The message formatter

args

Arguments to insert into the format string

Возвращаемые значения

The formatted string, or FALSE if an error occurred

Примеры

Пример #1 msgfmt_format() example

<?php
$fmt = msgfmt_create("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
$fmt = msgfmt_create("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
echo msgfmt_format($fmt, array(4560, 123, 4560/123));
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
echo $fmt->format(array(4560, 123, 4560/123));
$fmt = new MessageFormatter("de", "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
echo $fmt->format(array(4560, 123, 4560/123));
?>

Результат выполнения данного примера:

4,560 monkeys on 123 trees make 37.073 monkeys per tree
4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_parse() - Parse input string according to pattern
  • msgfmt_format_message() - Quick format message
  • msgfmt_get_error_code() - Get the error code from last operation
  • msgfmt_get_error_message() - Get the error text from the last operation


Get the error code from last operation

  • « MessageFormatter::format
  • MessageFormatter::getErrorMessage »
  • PHP Manual
  • MessageFormatter
  • Get the error code from last operation

MessageFormatter::getErrorCode

msgfmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getErrorCode -- msgfmt_get_error_code — Get the error code from last operation

Описание

Объектно-ориентированный стиль

public int MessageFormatter::getErrorCode ( void )

Процедурный стиль

int msgfmt_get_error_code ( MessageFormatter $fmt )

Get the error code from last operation.

Список параметров

fmt

The message formatter

Возвращаемые значения

The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.

Примеры

Пример #1 msgfmt_get_error_code() example

<?php
$fmt = msgfmt_create("en_US", "{0, number} monkeys on {1, number} trees");
$str = msgfmt_format($fmt, array());
if(!$str) {
    echo "ERROR: ".msgfmt_get_error_message($fmt) . " (" . msgfmt_get_error_code($fmt) . ")\n";
}
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0, number} monkeys on {1, number} trees");
$str = $fmt->format(array());
if(!$str) {
    echo "ERROR: ".$fmt->getErrorMessage() . " (" . $fmt->getErrorCode() . ")\n";
}
?>

Результат выполнения данного примера:

ERROR: msgfmt_format: not enough parameters: U_ILLEGAL_ARGUMENT_ERROR (1)

Смотрите также

  • msgfmt_get_error_message() - Get the error text from the last operation
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get the error text from the last operation

  • « MessageFormatter::getErrorCode
  • MessageFormatter::getLocale »
  • PHP Manual
  • MessageFormatter
  • Get the error text from the last operation

MessageFormatter::getErrorMessage

msgfmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getErrorMessage -- msgfmt_get_error_message — Get the error text from the last operation

Описание

Объектно-ориентированный стиль

public string MessageFormatter::getErrorMessage ( void )

Процедурный стиль

string msgfmt_get_error_message ( MessageFormatter $fmt )

Get the error text from the last operation.

Список параметров

fmt

The message formatter

Возвращаемые значения

Description of the last error.

Примеры

Пример #1 msgfmt_get_error_message() example

<?php
$fmt = msgfmt_create("en_US", "{0, number} monkeys on {1, number} trees");
$str = msgfmt_format($fmt, array());
if(!$str) {
    echo "ERROR: ".msgfmt_get_error_message($fmt) . " (" . msgfmt_get_error_code($fmt) . ")\n";
}
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter("en_US", "{0, number} monkeys on {1, number} trees");
$str = $fmt->format(array());
if(!$str) {
    echo "ERROR: ".$fmt->getErrorMessage() . " (" . $fmt->getErrorCode() . ")\n";
}
?>

Результат выполнения данного примера:

ERROR: msgfmt_format: not enough parameters: U_ILLEGAL_ARGUMENT_ERROR (1)

Смотрите также

  • msgfmt_get_error_code() - Get the error code from last operation
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get the locale for which the formatter was created.

  • « MessageFormatter::getErrorMessage
  • MessageFormatter::getPattern »
  • PHP Manual
  • MessageFormatter
  • Get the locale for which the formatter was created.

MessageFormatter::getLocale

msgfmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getLocale -- msgfmt_get_locale — Get the locale for which the formatter was created.

Описание

Объектно-ориентированный стиль

public string MessageFormatter::getLocale ( void )

Процедурный стиль

string msgfmt_get_locale ( NumberFormatter $formatter )

Get the locale for which the formatter was created.

Список параметров

formatter

The formatter resource

Возвращаемые значения

The locale name

Примеры

Пример #1 msgfmt_get_locale() example

<?php
$fmt = msgfmt_create('en_US', "Number {0,number}");
echo msgfmt_get_locale($fmt);
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter('en_US', "Number {0,number}");
echo $fmt->getLocale();
?>

Результат выполнения данного примера:

en_US

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter


Get the pattern used by the formatter

  • « MessageFormatter::getLocale
  • MessageFormatter::parseMessage »
  • PHP Manual
  • MessageFormatter
  • Get the pattern used by the formatter

MessageFormatter::getPattern

msgfmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::getPattern -- msgfmt_get_pattern — Get the pattern used by the formatter

Описание

Объектно-ориентированный стиль

public string MessageFormatter::getPattern ( void )

Процедурный стиль

string msgfmt_get_pattern ( MessageFormatter $fmt )

Get the pattern used by the formatter

Список параметров

fmt

The message formatter

Возвращаемые значения

The pattern string for this message formatter

Примеры

Пример #1 msgfmt_get_pattern() example

<?php
$fmt = msgfmt_create( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatting result: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatted number: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatting result: " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatted number: " . $fmt->format(array(123, 456)) . "\n";
?>

Результат выполнения данного примера:

Default pattern: '{0,number} monkeys on {1,number} trees'
Formatting result: 123 monkeys on 456 trees
New pattern: '{0,number} trees hosting {1,number} monkeys'
Formatted number: 123 trees hosting 456 monkeys

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_set_pattern() - Set the pattern used by the formatter


Quick parse input string

  • « MessageFormatter::getPattern
  • MessageFormatter::parse »
  • PHP Manual
  • MessageFormatter
  • Quick parse input string

MessageFormatter::parseMessage

msgfmt_parse_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::parseMessage -- msgfmt_parse_message — Quick parse input string

Описание

Объектно-ориентированный стиль

public static array MessageFormatter::parseMessage ( string $locale , string $pattern , string $source )

Процедурный стиль

array msgfmt_parse_message ( string $locale , string $pattern , string $value )

Parses input string without explicitly creating the formatter object. Use this function when the format operation is done only once and does not need and parameters or state to be kept.

Список параметров

locale

The locale to use for parsing locale-dependent parts

pattern

The pattern with which to parse the value.

source

The string to parse, conforming to the pattern.

Возвращаемые значения

An array containing items extracted, or FALSE on error

Примеры

Пример #1 msgfmt_parse_message() example

<?php
$fmt = msgfmt_parse_message('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
                            "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);

$fmt = msgfmt_parse_message('de', "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum",
                            "4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum");
var_export($fmt);
?>

Пример #2 OO example

<?php
$fmt = MessageFormatter::parseMessage('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree",
                            "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($fmt);

$fmt = MessageFormatter::parseMessage('de', "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum",
                            "4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum");
var_export($fmt);
?>

Результат выполнения данного примера:

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_format_message() - Quick format message
  • msgfmt_parse() - Parse input string according to pattern


Parse input string according to pattern

  • « MessageFormatter::parseMessage
  • MessageFormatter::setPattern »
  • PHP Manual
  • MessageFormatter
  • Parse input string according to pattern

MessageFormatter::parse

msgfmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::parse -- msgfmt_parse — Parse input string according to pattern

Описание

Объектно-ориентированный стиль

public array MessageFormatter::parse ( string $value )

Процедурный стиль

array msgfmt_parse ( MessageFormatter $fmt , string $value )

Parses input string and return any extracted items as an array.

Список параметров

fmt

The message formatter

value

The string to parse

Возвращаемые значения

An array containing the items extracted, or FALSE on error

Примеры

Пример #1 msgfmt_parse() example

<?php
$fmt = msgfmt_create('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
$res = msgfmt_parse($fmt, "4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($res);

$fmt = msgfmt_create('de', "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
$res = msgfmt_parse($fmt, "4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum");
var_export($res);
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter('en_US', "{0,number,integer} monkeys on {1,number,integer} trees make {2,number} monkeys per tree");
$res = $fmt->parse("4,560 monkeys on 123 trees make 37.073 monkeys per tree");
var_export($res);

$fmt = new MessageFormatter('de', "{0,number,integer} Affen auf {1,number,integer} Baumen sind {2,number} Affen pro Baum");
$res = $fmt->parse("4.560 Affen auf 123 Baumen sind 37,073 Affen pro Baum");
var_export($res);
?>

Результат выполнения данного примера:

array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)
array (
  0 => 4560,
  1 => 123,
  2 => 37.073,
)

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_format() - Format the message
  • msgfmt_parse_message() - Quick parse input string


Set the pattern used by the formatter

  • « MessageFormatter::parse
  • IntlCalendar »
  • PHP Manual
  • MessageFormatter
  • Set the pattern used by the formatter

MessageFormatter::setPattern

msgfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

MessageFormatter::setPattern -- msgfmt_set_pattern — Set the pattern used by the formatter

Описание

Объектно-ориентированный стиль

public bool MessageFormatter::setPattern ( string $pattern )

Процедурный стиль

bool msgfmt_set_pattern ( MessageFormatter $fmt , string $pattern )

Set the pattern used by the formatter

Список параметров

fmt

The message formatter

pattern

The pattern string to use in this message formatter. The pattern uses an 'apostrophe-friendly' syntax; it is run through » umsg_autoQuoteApostrophe before being interpreted.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 msgfmt_set_pattern() example

<?php
$fmt = msgfmt_create( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatting result: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";

msgfmt_set_pattern( $fmt, "{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . msgfmt_get_pattern( $fmt ) . "'\n";
echo "Formatted number: " . msgfmt_format( $fmt, array(123, 456) ) . "\n";
?>

Пример #2 OO example

<?php
$fmt = new MessageFormatter( "en_US", "{0, number} monkeys on {1, number} trees" );
echo "Default pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatting result: " . $fmt->format(array(123, 456)) . "\n";

$fmt->setPattern("{0, number} trees hosting {1, number} monkeys" );
echo "New pattern: '" . $fmt->getPattern() . "'\n";
echo "Formatted number: " . $fmt->format(array(123, 456)) . "\n";
?>

Результат выполнения данного примера:

Default pattern: '{0,number} monkeys on {1,number} trees'
Formatting result: 123 monkeys on 456 trees
New pattern: '{0,number} trees hosting {1,number} monkeys'
Formatted number: 123 trees hosting 456 monkeys

Смотрите также

  • msgfmt_create() - Constructs a new Message Formatter
  • msgfmt_get_pattern() - Get the pattern used by the formatter


Класс IntlCalendar

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

Введение

Обзор классов

IntlCalendar {
/* Constants */
const integer FIELD_ERA = 0 ;
const integer FIELD_YEAR = 1 ;
const integer FIELD_MONTH = 2 ;
const integer FIELD_WEEK_OF_YEAR = 3 ;
const integer FIELD_WEEK_OF_MONTH = 4 ;
const integer FIELD_DATE = 5 ;
const integer FIELD_DAY_OF_YEAR = 6 ;
const integer FIELD_DAY_OF_WEEK = 7 ;
const integer FIELD_DAY_OF_WEEK_IN_MONTH = 8 ;
const integer FIELD_AM_PM = 9 ;
const integer FIELD_HOUR = 10 ;
const integer FIELD_HOUR_OF_DAY = 11 ;
const integer FIELD_MINUTE = 12 ;
const integer FIELD_SECOND = 13 ;
const integer FIELD_MILLISECOND = 14 ;
const integer FIELD_ZONE_OFFSET = 15 ;
const integer FIELD_DST_OFFSET = 16 ;
const integer FIELD_YEAR_WOY = 17 ;
const integer FIELD_DOW_LOCAL = 18 ;
const integer FIELD_EXTENDED_YEAR = 19 ;
const integer FIELD_JULIAN_DAY = 20 ;
const integer FIELD_MILLISECONDS_IN_DAY = 21 ;
const integer FIELD_IS_LEAP_MONTH = 22 ;
const integer FIELD_FIELD_COUNT = 23 ;
const integer FIELD_DAY_OF_MONTH = 5 ;
const integer DOW_SUNDAY = 1 ;
const integer DOW_MONDAY = 2 ;
const integer DOW_TUESDAY = 3 ;
const integer DOW_WEDNESDAY = 4 ;
const integer DOW_THURSDAY = 5 ;
const integer DOW_FRIDAY = 6 ;
const integer DOW_SATURDAY = 7 ;
const integer DOW_TYPE_WEEKDAY = 0 ;
const integer DOW_TYPE_WEEKEND = 1 ;
const integer DOW_TYPE_WEEKEND_OFFSET = 2 ;
const integer DOW_TYPE_WEEKEND_CEASE = 3 ;
const integer WALLTIME_FIRST = 1 ;
const integer WALLTIME_LAST = 0 ;
const integer WALLTIME_NEXT_VALID = 2 ;
/* Методы */
public bool add ( int $field , int $amount )
bool intlcal_add ( IntlCalendar $cal , int $field , int $amount )
public bool after ( IntlCalendar $other )
bool intlcal_after ( IntlCalendar $cal , IntlCalendar $other )
public bool before ( IntlCalendar $other )
bool intlcal_before ( IntlCalendar $cal , IntlCalendar $other )
public bool clear ([ int $field = NULL ] )
bool intlcal_clear ( IntlCalendar $cal [, int $field = NULL ] )
private __construct ( void )
public static IntlCalendar createInstance ([ mixed $timeZone = NULL [, string $locale = "" ]] )
IntlCalendar intlcal_create_instance ([ mixed $timeZone = NULL [, string $locale = "" ]] )
public bool equals ( IntlCalendar $other )
bool intlcal_equals ( IntlCalendar $cal , IntlCalendar $other )
public int fieldDifference ( float $when , int $field )
int intlcal_field_difference ( IntlCalendar $cal , float $when , int $field )
public static IntlCalendar fromDateTime ( mixed $dateTime )
IntlCalendar intlcal_from_date_time ( mixed $dateTime )
public int get ( int $field )
int intlcal_get ( IntlCalendar> $cal , int $field )
public int getActualMaximum ( int $field )
int intlcal_get_actual_maximum ( IntlCalendar $cal , int $field )
public int getActualMinimum ( int $field )
int intlcal_get_actual_minimum ( IntlCalendar $cal , int $field )
public static array getAvailableLocales ( void )
array intlcal_get_available_locales ( void )
public int getDayOfWeekType ( int $dayOfWeek )
int intlcal_get_day_of_week_type ( IntlCalendar $cal , int $dayOfWeek )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public int getFirstDayOfWeek ( void )
int intlcal_get_first_day_of_week ( IntlCalendar $cal )
public int getGreatestMinimum ( int $field )
int intlcal_get_greatest_minimum ( IntlCalendar $cal , int $field )
public static Iterator getKeywordValuesForLocale ( string $key , string $locale , boolean $commonlyUsed )
Iterator intlcal_get_keyword_values_for_locale ( string $key , string $locale , boolean $commonlyUsed )
public int getLeastMaximum ( int $field )
int intlcal_get_least_maximum ( IntlCalendar $cal , int $field )
public string getLocale ( int $localeType )
string intlcal_get_locale ( IntlCalendar $cal , int $localeType )
public int getMaximum ( int $field )
int intlcal_get_maximum ( IntlCalendar $cal , int $field )
public int getMinimalDaysInFirstWeek ( void )
int intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal )
public int getMinimum ( int $field )
int intlcal_get_minimum ( IntlCalendar $cal , int $field )
public static float getNow ( void )
float intlcal_get_now ( void )
public int getRepeatedWallTimeOption ( void )
int intlcal_get_repeated_wall_time_option ( IntlCalendar $cal )
public int getSkippedWallTimeOption ( void )
int intlcal_get_skipped_wall_time_option ( IntlCalendar $cal )
public float getTime ( void )
float intlcal_get_time ( IntlCalendar $cal )
public IntlTimeZone getTimeZone ( void )
IntlTimeZone intlcal_get_time_zone ( IntlCalendar $cal )
public string getType ( void )
string intlcal_get_type ( IntlCalendar $cal )
public int getWeekendTransition ( string $dayOfWeek )
int intlcal_get_weekend_transition ( IntlCalendar $cal , string $dayOfWeek )
public bool inDaylightTime ( void )
bool intlcal_in_daylight_time ( IntlCalendar $cal )
public bool isEquivalentTo ( IntlCalendar $other )
bool intlcal_is_equivalent_to ( IntlCalendar $cal , IntlCalendar $other )
public bool isLenient ( void )
bool intlcal_is_lenient ( IntlCalendar $cal )
public bool isSet ( int $field )
bool intlcal_is_set ( IntlCalendar $cal , int $field )
public bool isWeekend ([ float $date = NULL ] )
bool intlcal_is_weekend ( IntlCalendar $cal [, float $date = NULL ] )
public bool roll ( int $field , mixed $amountOrUpOrDown )
bool intlcal_roll ( IntlCalendar $cal , int $field , mixed $amountOrUpOrDown )
public bool set ( int $field , int $value )
public bool set ( int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] )
bool intlcal_set ( IntlCalendar $cal , int $field , int $value )
bool intlcal_set ( IntlCalendar $cal , int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] )
public bool setFirstDayOfWeek ( int $dayOfWeek )
bool intlcal_set_first_day_of_week ( IntlCalendar $cal , int $dayOfWeek )
public ReturnType setLenient ( string $isLenient )
ReturnType intlcal_set_lenient ( IntlCalendar $cal , string $isLenient )
public bool setMinimalDaysInFirstWeek ( int $minimalDays )
bool intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal , int $minimalDays )
public bool setRepeatedWallTimeOption ( int $wallTimeOption )
bool intlcal_set_repeated_wall_time_option ( IntlCalendar $cal , int $wallTimeOption )
public bool setSkippedWallTimeOption ( int $wallTimeOption )
bool intlcal_set_skipped_wall_time_option ( IntlCalendar $cal , int $wallTimeOption )
public bool setTime ( float $date )
bool intlcal_set_time ( IntlCalendar $cal , float $date )
public bool setTimeZone ( mixed $timeZone )
bool intlcal_set_time_zone ( IntlCalendar $cal , mixed $timeZone )
public DateTime toDateTime ( void )
DateTime intlcal_to_date_time ( IntlCalendar $cal )
}

Предопределенные константы

IntlCalendar::FIELD_ERA

Поле календаря численно представляет эпоху, например 1 для "от рождества Христова" и 0 для "до рождества Христова" в Грирогианском и Юлианском календарях и 235 для периода Хэйсэй (??) в Японском календаре. Не все календари имеют больше одной эпохи.

IntlCalendar::FIELD_YEAR

Поле календаря для года. Не уникально в контексте нескольких эпох. Если календарь содержит более одной эры, то, обычно, минимальное значение этого поля равно 1.

IntlCalendar::FIELD_MONTH

Поле календаря для месяца. Последовательность месяцев начинается с нуля, следовательно Janurary (Январь) (здесь используется для обозначения первого месяца года, но по факту может быть совсем другое имя, например Muharram для Исламского календаря) будет представлен числом 0, February (Февраль) числом 1, ..., December (Декабрь) числом 11 и, для некоторых календарей, 13й или високосный месяц, значение будет равно 12.

IntlCalendar::FIELD_WEEK_OF_YEAR

Поле календаря для номера недели в году. Зависит от того, с какого дня начинается неделя и минимального количества дней в неделе.

IntlCalendar::FIELD_WEEK_OF_MONTH

Поле календаря для номера недели в месяце. Зависит от того, с какого дня начинается неделя и минимального количества дней в неделе.

IntlCalendar::FIELD_DATE

Поле календаря для номера дня в месяце. То же самое, что и IntlCalendar::FIELD_DAY_OF_MONTH.

IntlCalendar::FIELD_DAY_OF_YEAR

Поле календаря для номера дня в году. Для Грегорианского календаря находится в диапазоне от 1 до 365 или 366.

IntlCalendar::FIELD_DAY_OF_WEEK

Поле календаря для номера дня в неделе. Начинается с 1 (Воскресенье, смотри IntlCalendar::DOW_SUNDAY и связанные константы) и заканчивается 7 (Суббота).

IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH

Номер дня недели (Воскресенье, Понедельник, ...) в месяце. Допустим это значение равно 1, а значение дня недели равно 2 (Понедельник), следовательно это первый понедельник месяца. Максимальное значение равно 5.

Также допустимы значения 0 и ниже (отрицательные). Значение 0 охватывает 7 дней непосредственно перед началом месяца (первый подходящий день в месяце имеет значение 1). Отрицательные значения отсчитываются от конца месяца. Так, значение -1 указывает на последний подходящий день месяца, -2 на второй с конца и т.д.

В отличие от IntlCalendar::FIELD_WEEK_OF_MONTH и IntlCalendar::FIELD_WEEK_OF_YEAR, это значение не зависит от IntlCalendar::getFirstDayOfWeek() и IntlCalendar::getMinimalDaysInFirstWeek(). Первая среда - это первая среда, даже если неделя началась в предыдущем месяце.

IntlCalendar::FIELD_AM_PM

Поле календаря определяющее время до/после полудня. Соответственно 0 - до полудня, (1) - после. Полночь считается как "до полудня", полдень как "после полудня".

IntlCalendar::FIELD_HOUR

Поле календаря для часов, без указания до или после полудня. Допустимы значения в интервале от 0 до 11.

IntlCalendar::FIELD_HOUR_OF_DAY

Поле календаня для полных (24-часовой формат) часов. Допустимы значения от 0 до 23.

IntlCalendar::FIELD_MINUTE

Поле календаря для минут.

IntlCalendar::FIELD_SECOND

Поле календаря для секунд.

IntlCalendar::FIELD_MILLISECOND

Поле календаря для миллисекунд.

IntlCalendar::FIELD_ZONE_OFFSET

Поле календаря для "сырого" смещения временной зона, в миллисекундах. "Сырое" смещение не учитывает переходы на летнее/зимнее время.

IntlCalendar::FIELD_DST_OFFSET

Поле календаря для смещения временной зоны в миллисекундах в зависимости от летнего/зимнего времени, если применимо к данной временной зоне.

IntlCalendar::FIELD_YEAR_WOY

Поле календаря представляющее год для недели года.

IntlCalendar::FIELD_DOW_LOCAL

Поле календаря для локализованного дня недели. Принимает значения в диапазоне от 1 до 7. 1 используется для дня недели соответствующего значению возвращаемому функцией IntlCalendar::getFirstDayOfWeek().

IntlCalendar::FIELD_EXTENDED_YEAR

Поле календаря для представления номера года в контексте обеспечения непрерывности между эпохами. Например, для Грегорианского календаря, это значение для эпохи "после рождества Христова" будет соответствовать IntlCalendar::FIELD_YEAR, а для эпохи "до рождества Христова", год y будет представлен как -y + 1.

IntlCalendar::FIELD_JULIAN_DAY

Поле календаря для модифицированых номеров дней Юлианского календаря. В отличии от стандартного Юлианского календаря, в нем переход происходит в полночь по локальному времени, а не в полдень по UTC. Он однозначно идентифицирует дату.

IntlCalendar::FIELD_MILLISECONDS_IN_DAY

Поле календаря, охватывающее IntlCalendar::FIELD_HOUR_OF_DAY, IntlCalendar::FIELD_MINUTE, IntlCalendar::FIELD_SECOND и IntlCalendar::FIELD_MILLISECOND. Находится в диапазоне от 0 до 24 * 3600 * 1000 - 1. Это не количество миллисекунд, прошедшее с полуночи, так как в моменты перехода на летнее/зимнее время будет иметь разрывы.

IntlCalendar::FIELD_IS_LEAP_MONTH

Поле календаря принимающее значение 1 для високосного месяца и 0 для обычного.

IntlCalendar::FIELD_FIELD_COUNT

Общее количество полей.

IntlCalendar::FIELD_DAY_OF_MONTH

Псевдоним для IntlCalendar::FIELD_DATE.

IntlCalendar::DOW_SUNDAY

Воскресенье.

IntlCalendar::DOW_MONDAY

Понедельник.

IntlCalendar::DOW_TUESDAY

Вторник.

IntlCalendar::DOW_WEDNESDAY

Среда.

IntlCalendar::DOW_THURSDAY

Четверг.

IntlCalendar::DOW_FRIDAY

Пятница.

IntlCalendar::DOW_SATURDAY

Суббота.

IntlCalendar::DOW_TYPE_WEEKDAY

Вывод IntlCalendar::getDayOfWeekType() означает, что день будний.

IntlCalendar::DOW_TYPE_WEEKEND

Вывод IntlCalendar::getDayOfWeekType() означает, что день выходной.

IntlCalendar::DOW_TYPE_WEEKEND_OFFSET

Вывод IntlCalendar::getDayOfWeekType() означает, что выходные начинаются в этот день.

IntlCalendar::DOW_TYPE_WEEKEND_CEASE

Вывод IntlCalendar::getDayOfWeekType() означает, что выходные заканчиваются в этот день.

IntlCalendar::WALLTIME_FIRST

Вывод IntlCalendar::getSkippedWallTimeOption() означает, что время в пропущеном диапазоне должно ссылаться на момент времени меньший на один час и вывод IntlCalendar::getRepeatedWallTimeOption() означает, что время в повторяемом диапазоне должно относиться к моменту первого появления такого времени.

IntlCalendar::WALLTIME_LAST

Вывод IntlCalendar::getSkippedWallTimeOption() означает, что время в пропущеном диапазоне должно ссылаться на момент времени больший на один час и вывод IntlCalendar::getRepeatedWallTimeOption() означает, что время в повторяемом диапазоне должно относиться к моменту второго появления такого времени.

IntlCalendar::WALLTIME_NEXT_VALID

Вывод IntlCalendar::getSkippedWallTimeOption() означает, что время в пропущеном диапазоне относится к моменту, когда случился переход на зимнее/летнее время.

Содержание

  • IntlCalendar::add — Add a (signed) amount of time to a field
  • IntlCalendar::after — Whether this object?s time is after that of the passed object
  • IntlCalendar::before — Whether this object?s time is before that of the passed object
  • IntlCalendar::clear — Clear a field or all fields
  • IntlCalendar::__construct — Private constructor for disallowing instantiation
  • IntlCalendar::createInstance — Create a new IntlCalendar
  • IntlCalendar::equals — Compare time of two IntlCalendar objects for equality
  • IntlCalendar::fieldDifference — Calculate difference between given time and this object?s time
  • IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string
  • IntlCalendar::get — Get the value for a field
  • IntlCalendar::getActualMaximum — The maximum value for a field, considering the object?s current time
  • IntlCalendar::getActualMinimum — The minimum value for a field, considering the object?s current time
  • IntlCalendar::getAvailableLocales — Get array of locales for which there is data
  • IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two
  • IntlCalendar::getErrorCode — Get last error code on the object
  • IntlCalendar::getErrorMessage — Get last error message on the object
  • IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar?s locale
  • IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field
  • IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values
  • IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field
  • IntlCalendar::getLocale — Get the locale associated with the object
  • IntlCalendar::getMaximum — Get the global maximum value for a field
  • IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have
  • IntlCalendar::getMinimum — Get the global minimum value for a field
  • IntlCalendar::getNow — Get number representing the current time
  • IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time
  • IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time
  • IntlCalendar::getTime — Get time currently represented by the object
  • IntlCalendar::getTimeZone — Get the object?s timezone
  • IntlCalendar::getType — Get the calendar type
  • IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends
  • IntlCalendar::inDaylightTime — Whether the object?s time is in Daylight Savings Time
  • IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time
  • IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode
  • IntlCalendar::isSet — Whether a field is set
  • IntlCalendar::isWeekend — Whether a certain date/time is in the weekend
  • IntlCalendar::roll — Add value to field without carrying into more significant fields
  • IntlCalendar::set — Set a time field or several common fields at once
  • IntlCalendar::setFirstDayOfWeek — Set the day on which the week is deemed to start
  • IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient
  • IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have
  • IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions
  • IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setTime — Set the calendar time in milliseconds since the epoch
  • IntlCalendar::setTimeZone — Set the timezone used by this calendar
  • IntlCalendar::toDateTime — Convert an IntlCalendar into a DateTime object


Add a (signed) amount of time to a field

  • « IntlCalendar
  • IntlCalendar::after »
  • PHP Manual
  • IntlCalendar
  • Add a (signed) amount of time to a field

IntlCalendar::add

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::add — Add a (signed) amount of time to a field

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::add ( int $field , int $amount )

Процедурный стиль

bool intlcal_add ( IntlCalendar $cal , int $field , int $amount )

Add a signed amount to a field. Adding a positive amount allows advances in time, even if the numeric value of the field decreases (e.g. when working with years in BC dates).

Other fields may need to adjusted - for instance, adding a month to the 31st of January will result in the 28th (or 29th) of February. Contrary to IntlCalendar::roll(), when a value wraps around, more significant fields may change. For instance, adding a day to the 31st of January will result in the 1st of February, not the 1st of Janurary.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

amount

The signed amount to add to the current field. If the amount is positive, the instant will be moved forward; if it is negative, the instant wil be moved into the past. The unit is implicit to the field type. For instance, hours for IntlCalendar::FIELD_HOUR_OF_DAY.

Возвращаемые значения

Returns TRUE on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::add()

<?php
ini_set('intl.default_locale', 'fr_FR');
ini_set('date.timezone', 'UTC');

$cal = new IntlGregorianCalendar(2012, 0 /* January */, 31);
echo IntlDateFormatter::formatObject($cal), "\n";

$cal->add(IntlCalendar::FIELD_MONTH, 1);
echo IntlDateFormatter::formatObject($cal), "\n";

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
echo IntlDateFormatter::formatObject($cal), "\n";

Результат выполнения данного примера:

31 janv. 2012 00:00:00
29 fevr. 2012 00:00:00
1 mars 2012 00:00:00


Whether this object?s time is after that of the passed object

  • « IntlCalendar::add
  • IntlCalendar::before »
  • PHP Manual
  • IntlCalendar
  • Whether this object?s time is after that of the passed object

IntlCalendar::after

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::after — Whether this object?s time is after that of the passed object

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::after ( IntlCalendar $other )

Процедурный стиль

bool intlcal_after ( IntlCalendar $cal , IntlCalendar $other )

Returns whether this object?s time succeeds the argument?s time.

Список параметров

cal

The IntlCalendar resource.

other

The calendar whose time will be checked against the primary object?s time.

Возвращаемые значения

Returns TRUE if this object?s current time is after that of the calendar argument?s time. Returns FALSE otherwise. Also returns FALSE on failure. You can use exceptions or intl_get_error_code() to detect error conditions.

Примеры

Пример #1 IntlCalendar::after()

<?php
$cal1 = IntlCalendar::createInstance();
$cal2 = clone $cal1;

var_dump($cal1->after($cal2), //false
        $cal2->after($cal1)); //false

$cal1->roll(IntlCalendar::FIELD_MILLISECOND, true);

var_dump($cal1->after($cal2), //true
        $cal2->after($cal1)); //false


Whether this object?s time is before that of the passed object

  • « IntlCalendar::after
  • IntlCalendar::clear »
  • PHP Manual
  • IntlCalendar
  • Whether this object?s time is before that of the passed object

IntlCalendar::before

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::before — Whether this object?s time is before that of the passed object

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::before ( IntlCalendar $other )

Процедурный стиль

bool intlcal_before ( IntlCalendar $cal , IntlCalendar $other )

Returns whether this object?s time precedes the argument?s time.

Список параметров

cal

The IntlCalendar resource.

other

The calendar whose time will be checked against the primary object?s time.

Возвращаемые значения

Returns TRUE if this object?s current time is before that of the calendar argument?s time. Returns FALSE otherwise. Also returns FALSE on failure. You can use exceptions or intl_get_error_code() to detect error conditions.


Clear a field or all fields

  • « IntlCalendar::before
  • IntlCalendar::__construct »
  • PHP Manual
  • IntlCalendar
  • Clear a field or all fields

IntlCalendar::clear

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::clear — Clear a field or all fields

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::clear ([ int $field = NULL ] )

Процедурный стиль

bool intlcal_clear ( IntlCalendar $cal [, int $field = NULL ] )

Clears either all of the fields or a specific field. A cleared field is marked as unset, giving it the lowest priority against overlapping fields or even default values when calculating the time. Additionally, its value is set to 0, though given the field?s low priority, its value may have been internally set to another value by the time the field has finished been queried.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Returns TRUE on success или FALSE в случае возникновения ошибки. Failure can only occur is invalid arguments are provided.

Примеры

Пример #1 IntlCalendar::clear() examples

<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'UTC');

$fields = array(
    'FIELD_ERA'                  => 0,
    'FIELD_YEAR'                 => 1,
    'FIELD_MONTH'                => 2,
    'FIELD_WEEK_OF_YEAR'         => 3,
    'FIELD_WEEK_OF_MONTH'        => 4,
    'FIELD_DATE'                 => 5,
    'FIELD_DAY_OF_YEAR'          => 6,
    'FIELD_DAY_OF_WEEK'          => 7,
    'FIELD_DAY_OF_WEEK_IN_MONTH' => 8,
    'FIELD_AM_PM'                => 9,
    'FIELD_HOUR'                 => 10,
    'FIELD_HOUR_OF_DAY'          => 11,
    'FIELD_MINUTE'               => 12,
    'FIELD_SECOND'               => 13,
    'FIELD_MILLISECOND'          => 14,
    'FIELD_ZONE_OFFSET'          => 15,
    'FIELD_DST_OFFSET'           => 16,
    'FIELD_YEAR_WOY'             => 17,
    'FIELD_DOW_LOCAL'            => 18,
    'FIELD_EXTENDED_YEAR'        => 19,
    'FIELD_JULIAN_DAY'           => 20,
    'FIELD_MILLISECONDS_IN_DAY'  => 21,
    'FIELD_IS_LEAP_MONTH'        => 22,
    'FIELD_FIELD_COUNT'          => 23,
);
function getSetFields(IntlCalendar $cal) {
    global $fields;
    $ret = array();
    foreach ($fields as $name => $value) {
        if ($cal->isSet($value)) {
            $ret[] = $name;
        }
    }
    return $ret;
}

$cal = new IntlGregorianCalendar(2013, 2 /* March */, 15);
echo "After GregorianCalendar creation\n";
print_r(getSetFields($cal));
echo "\n";

echo IntlDateFormatter::formatObject($cal), "\n";
echo "After the formatter requested the extended year\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear(IntlCalendar::FIELD_YEAR);
echo "After the year has been cleared, the date stays the same\n";
echo IntlDateFormatter::formatObject($cal), "\n";
echo "because FIELD_EXTENDED_YEAR is still set\n";
print_r(getSetFields($cal));
echo "\n";

var_dump($cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR));
echo "After the extended year has been cleared\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";
echo "\n";

echo "After the fields are recalculated,\n"
        . " extended year is set again (to 1970)\n";
print_r(getSetFields($cal));
echo "\n";

$cal->clear();
echo "After calling variant with no arguments\n";
print_r(getSetFields($cal));
echo IntlDateFormatter::formatObject($cal), "\n";

Результат выполнения данного примера:

After GregorianCalendar creation
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
)

15/03/2013 00:00:00
After the formatter requested the extended year
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_YEAR
    [2] => FIELD_MONTH
    [3] => FIELD_DATE
    [4] => FIELD_EXTENDED_YEAR
)

After the year has been cleared, the date stays the same
15/03/2013 00:00:00
because FIELD_EXTENDED_YEAR is still set
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

bool(true)
After the extended year has been cleared
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
)
15/03/1970 00:00:00

After the fields are recalculated,
 extended year is set again (to 1970)
Array
(
    [0] => FIELD_ERA
    [1] => FIELD_MONTH
    [2] => FIELD_DATE
    [3] => FIELD_EXTENDED_YEAR
)

After calling variant with no arguments
Array
(
)
01/01/1970 00:00:00


Private constructor for disallowing instantiation

  • « IntlCalendar::clear
  • IntlCalendar::createInstance »
  • PHP Manual
  • IntlCalendar
  • Private constructor for disallowing instantiation

IntlCalendar::__construct

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::__construct — Private constructor for disallowing instantiation

Описание

private IntlCalendar::__construct ( void )

A private constructor for disallowing instantiation with the new operator.

Call IntlCalendar::createInstance() instead.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Create a new IntlCalendar

  • « IntlCalendar::__construct
  • IntlCalendar::equals »
  • PHP Manual
  • IntlCalendar
  • Create a new IntlCalendar

IntlCalendar::createInstance

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::createInstance — Create a new IntlCalendar

Описание

Объектно-ориентированный стиль

public static IntlCalendar IntlCalendar::createInstance ([ mixed $timeZone = NULL [, string $locale = "" ]] )

Процедурный стиль

IntlCalendar intlcal_create_instance ([ mixed $timeZone = NULL [, string $locale = "" ]] )

Given a timezone and locale, this method creates an IntlCalendar object. This factory method may return a subclass of IntlCalendar.

The calendar created will represent the time instance at which it was created, based on the system time. The fields can all be cleared by calling IntCalendar::clear() with no arguments. See also IntlGregorianCalendar::__construct().

Список параметров

timeZone

The timezone to use.

  • Если NULL, то будет использована временная зона по умолчанию, заданная в ini-настроке date.timezone либо с помощью функции date_default_timezone_set() и возвращенная функцией date_default_timezone_get().

  • Объект класса IntlTimeZone.

  • Объект класса DateTimeZone. Его идентификатор будет извлечен и на его основе будет создан объект временной зоны ICU; временная зона будет сохранена в базе данных ICU, а не PHP.

  • Строка, являющаяся корректным идентификатором временной зоны ICU. Смотрите IntlTimeZone::createTimeZoneIDEnumeration(). "Сырые" смещения, типа "GMT+08:30", также поддерживаются.

locale

A locale to use or NULL to use the default locale.

Возвращаемые значения

The created IntlCalendar instance or NULL on failure.

Примеры

Пример #1 IntlCalendar::createInstance()

<?php
ini_set('intl.default_locale', 'es_ES');
ini_set('date.timezone', 'Europe/Madrid');

$cal = IntlCalendar::createInstance();
echo "No arguments\n";
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Explicit timezone\n";
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT());
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));
echo "\n";

echo "Explicit locale (with calendar)\n";
$cal = IntlCalendar::createInstance(NULL, 'es_ES@calendar=persian');
var_dump(get_class($cal),
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL));

Результат выполнения данного примера:

No arguments
string(21) "IntlGregorianCalendar"
string(68) "martes 18 de junio de 2013 14:11:02 Hora de verano de Europa Central"

Explicit timezone
string(21) "IntlGregorianCalendar"
string(45) "martes 18 de junio de 2013 12:11:02 GMT+00:00"

Explicit locale (with calendar)
string(12) "IntlCalendar"
string(70) "martes 28 de Khordad de 1392 14:11:02 Hora de verano de Europa Central"

Смотрите также

  • IntlGregorianCalendar::__construct()


Compare time of two IntlCalendar objects for equality

  • « IntlCalendar::createInstance
  • IntlCalendar::fieldDifference »
  • PHP Manual
  • IntlCalendar
  • Compare time of two IntlCalendar objects for equality

IntlCalendar::equals

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::equals — Compare time of two IntlCalendar objects for equality

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::equals ( IntlCalendar $other )

Процедурный стиль

bool intlcal_equals ( IntlCalendar $cal , IntlCalendar $other )

Returns true if this calendar and the given calendar have the same time. The settings, calendar types and field states do not have to be the same.

Список параметров

cal

The IntlCalendar resource.

other

The calendar to compare with the primary object.

Возвращаемые значения

Returns TRUE if the current time of both this and the passed in IntlCalendar object are the same, or FALSE otherwise. The value FALSE can also be returned on failure. This can only happen if bad arguments are passed in. In any case, the two cases can be distinguished by calling intl_get_error_code().

Примеры

Пример #1 IntlCalendar::equals()

<?php
ini_set('date.timezone', 'UTC');

$cal1 = IntlCalendar::createInstance(NULL, 'es_ES');
$cal2 = clone $cal1;

var_dump($cal1->equals($cal2)); //TRUE

//The locale is not included in the comparison
$cal2 = IntlCalendar::createInstance(NULL, 'pt_PT');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

//And set fields state is not included as well
$cal2->clear(IntlCalendar::FIELD_YEAR);
var_dump($cal1->isSet(IntlCalendar::FIELD_YEAR) ==
        $cal2->isSet(IntlCalendar::FIELD_YEAR)); //FALSE
var_dump($cal1->equals($cal2)); //TRUE

//Neither is the calendar type
$cal2 = IntlCalendar::createInstance(NULL, 'es_ES@calendar=islamic');
$cal2->setTime($cal1->getTime());
var_dump($cal1->equals($cal2)); //TRUE

//Only the time is
$cal2 = clone $cal1;
$cal2->setTime($cal1->getTime() + 1.);
var_dump($cal1->equals($cal2)); //FALSE


Calculate difference between given time and this object?s time

  • « IntlCalendar::equals
  • IntlCalendar::fromDateTime »
  • PHP Manual
  • IntlCalendar
  • Calculate difference between given time and this object?s time

IntlCalendar::fieldDifference

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::fieldDifference — Calculate difference between given time and this object?s time

Описание

Объектно-ориентированный стиль

public int IntlCalendar::fieldDifference ( float $when , int $field )

Процедурный стиль

int intlcal_field_difference ( IntlCalendar $cal , float $when , int $field )

Return the difference between the given time and the time this object is set to, with respect to the quantity specified the field parameter.

This method is meant to be called successively, first with the most significant field of interest down to the least significant field. To this end, as a side effect, this calendar?s value for the field specified is advanced by the amount returned.

Список параметров

cal

The IntlCalendar resource.

when

The time against which to compare the quantity represented by the field. For the result to be positive, the time given for this parameter must be ahead of the time of the object the method is being invoked on.

field

The field that represents the quantity being compared.

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Returns a (signed) difference of time in the unit associated with the specified field или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::fieldDifference()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');

$cal1 = IntlCalendar::fromDateTime('2012-02-29 09:00:11');
$cal2 = IntlCalendar::fromDateTime('2013-03-01 09:19:29');
$time = $cal2->getTime();

echo "Time before: ", IntlDateFormatter::formatObject($cal1), "\n";

printf(
    "The difference in time is %d year(s), %d month(s), "
  . "%d day(s), %d hour(s) and %d minute(s)\n",
    $cal1->fieldDifference($time, IntlCalendar::FIELD_YEAR),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_MONTH),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_DAY_OF_MONTH),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_HOUR_OF_DAY),
    $cal1->fieldDifference($time, IntlCalendar::FIELD_MINUTE)
);

//now it was advanced to the target time, exception for the seconds,
//for which we did not measure the difference
echo "Time after: ", IntlDateFormatter::formatObject($cal1), "\n";

Результат выполнения данного примера:

Time before: 29 fevr. 2012 09:00:11
The difference in time is 1 year(s), 0 month(s), 1 day(s), 0 hour(s) and 19 minute(s)
Time after: 1 mars 2013 09:19:11


Create an IntlCalendar from a DateTime object or string

  • « IntlCalendar::fieldDifference
  • IntlCalendar::get »
  • PHP Manual
  • IntlCalendar
  • Create an IntlCalendar from a DateTime object or string

IntlCalendar::fromDateTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a2)

IntlCalendar::fromDateTime — Create an IntlCalendar from a DateTime object or string

Описание

Объектно-ориентированный стиль

public static IntlCalendar IntlCalendar::fromDateTime ( mixed $dateTime )

Процедурный стиль

IntlCalendar intlcal_from_date_time ( mixed $dateTime )

Creates an IntlCalendar object either from a DateTime object or from a string from which a DateTime object can be built.

The new calendar will represent not only the same instant as the given DateTime (subject to precision loss for dates very far into the past or future), but also the same timezone (subject to the caveat that different timezone databases will be used, and therefore the results may differ).

Список параметров

dateTime

A DateTime object or a string that can be passed to DateTime::__construct().

Возвращаемые значения

The created IntlCalendar object or NULL in case of failure. If a string is passed, any exception that occurs inside the DateTime constructor is propagated.

Примеры

Пример #1 IntlCalendar::fromDateTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

//same as IntlCalendar::fromDateTime(new DateTime(...))
$cal1 = IntlCalendar::fromDateTime('2013-02-28 00:01:02 Europe/Berlin');

//Note the timezone is Europe/Berlin, not the default Europe/Lisbon
echo IntlDateFormatter::formatObject($cal1, 'yyyy MMMM d HH:mm:ss VVVV', 'de_DE'), "\n";

Результат выполнения данного примера:

2013 Februar 28 00:01:02 Deutschland Zeit


Get the value for a field

  • « IntlCalendar::fromDateTime
  • IntlCalendar::getActualMaximum »
  • PHP Manual
  • IntlCalendar
  • Get the value for a field

IntlCalendar::get

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::get — Get the value for a field

Описание

Объектно-ориентированный стиль

public int IntlCalendar::get ( int $field )

Процедурный стиль

int intlcal_get ( IntlCalendar> $cal , int $field )

Gets the value for a specific field.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An integer with the value of the time field.

Примеры

Пример #1 IntlCalendar::get()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$class = new ReflectionClass('IntlCalendar');
$fields = array();
foreach ($class->getConstants() as $name => $val) {
    if (strpos($name, 'FIELD_') !== 0 || $val > 22)
        continue;
    $fields[$val] = $name;
}

$cal = IntlCalendar::createInstance(); // current time
var_dump(IntlDateFormatter::formatObject($cal));
foreach ($fields as $val => $name) {
    echo "$val ($name)", "\n    ", $cal->get($val), "\n";
}

Результат выполнения данного примера:

string(23) "Jul 1, 2013, 4:44:44 AM"
0 (FIELD_ERA)
    1
1 (FIELD_YEAR)
    2013
2 (FIELD_MONTH)
    6
3 (FIELD_WEEK_OF_YEAR)
    27
4 (FIELD_WEEK_OF_MONTH)
    1
5 (FIELD_DAY_OF_MONTH)
    1
6 (FIELD_DAY_OF_YEAR)
    182
7 (FIELD_DAY_OF_WEEK)
    2
8 (FIELD_DAY_OF_WEEK_IN_MONTH)
    1
9 (FIELD_AM_PM)
    0
10 (FIELD_HOUR)
    4
11 (FIELD_HOUR_OF_DAY)
    4
12 (FIELD_MINUTE)
    44
13 (FIELD_SECOND)
    44
14 (FIELD_MILLISECOND)
    551
15 (FIELD_ZONE_OFFSET)
    0
16 (FIELD_DST_OFFSET)
    3600000
17 (FIELD_YEAR_WOY)
    2013
18 (FIELD_DOW_LOCAL)
    2
19 (FIELD_EXTENDED_YEAR)
    2013
20 (FIELD_JULIAN_DAY)
    2456475
21 (FIELD_MILLISECONDS_IN_DAY)
    17084551
22 (FIELD_IS_LEAP_MONTH)
    0


The maximum value for a field, considering the object?s current time

  • « IntlCalendar::get
  • IntlCalendar::getActualMinimum »
  • PHP Manual
  • IntlCalendar
  • The maximum value for a field, considering the object?s current time

IntlCalendar::getActualMaximum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getActualMaximum — The maximum value for a field, considering the object?s current time

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getActualMaximum ( int $field )

Процедурный стиль

int intlcal_get_actual_maximum ( IntlCalendar $cal , int $field )

Returns a field?s relative maximum value around the current time. The exact semantics vary by field, but in the general case this is the value that would be obtained if one would set the field value into the smallest relative maximum for the field and would increment it until reaching the global maximum or the field value wraps around, in which the value returned would be the global maximum or the value before the wrapping, respectively.

For instance, in the gregorian calendar, the actual maximum value for the day of month would vary between 28 and 31, depending on the month and year of the current time.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing the maximum value in the units associated with the given field или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getActualMaximum()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

$cal = IntlCalendar::fromDateTime('2013-02-15');
var_dump($cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)); //28

$cal->add(IntlCalendar::FIELD_EXTENDED_YEAR, -1);
var_dump($cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)); //29

Результат выполнения данного примера:

int(28)
int(29)

Смотрите также

  • IntlCalendar::getMaximum() - Get the global maximum value for a field
  • IntlCalendar::getLeastMaximum() - Get the smallest local maximum for a field
  • IntlCalendar::getActualMinimum() - The minimum value for a field, considering the object?s current time


The minimum value for a field, considering the object?s current time

  • « IntlCalendar::getActualMaximum
  • IntlCalendar::getAvailableLocales »
  • PHP Manual
  • IntlCalendar
  • The minimum value for a field, considering the object?s current time

IntlCalendar::getActualMinimum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getActualMinimum — The minimum value for a field, considering the object?s current time

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getActualMinimum ( int $field )

Процедурный стиль

int intlcal_get_actual_minimum ( IntlCalendar $cal , int $field )

Returns a field?s relative minimum value around the current time. The exact semantics vary by field, but in the general case this is the value that would be obtained if one would set the field value into the greatest relative minimum for the field and would decrement it until reaching the global minimum or the field value wraps around, in which the value returned would be the global minimum or the value before the wrapping, respectively.

For the Gregorian calendar, this is always the same as IntlCalendar::getMinimum().

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing the minimum value in the field?s unit или FALSE в случае возникновения ошибки.

Смотрите также

  • IntlCalendar::getMinimum() - Get the global minimum value for a field
  • IntlCalendar::getGreatestMinimum() - Get the largest local minimum value for a field
  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object?s current time


Get array of locales for which there is data

  • « IntlCalendar::getActualMinimum
  • IntlCalendar::getDayOfWeekType »
  • PHP Manual
  • IntlCalendar
  • Get array of locales for which there is data

IntlCalendar::getAvailableLocales

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getAvailableLocales — Get array of locales for which there is data

Описание

Объектно-ориентированный стиль

public static array IntlCalendar::getAvailableLocales ( void )

Процедурный стиль

array intlcal_get_available_locales ( void )

Gives the list of locales for which calendars are installed. As of ICU 51, this is the list of all installed ICU locales.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of strings, one for which locale.

Примеры

Пример #1 IntlCalendar::getAvailableLocales()()

<?php
print_r(IntlCalendar::getAvailableLocales());

Результат выполнения данного примера:

Array
(
    [0] => af
    [1] => af_NA
    [2] => af_ZA
    [3] => agq
    [4] => agq_CM
    [5] => ak
    [6] => ak_GH
    [7] => am
    [8] => am_ET
    [9] => ar
    [10] => ar_001
    [11] => ar_AE
    [12] => ar_BH
    [13] => ar_DJ
    ... output abbreviated ...
    [595] => zh_Hant_HK
    [596] => zh_Hant_MO
    [597] => zh_Hant_TW
    [598] => zu
    [599] => zu_ZA
)


Tell whether a day is a weekday, weekend or a day that has a transition between the two

  • « IntlCalendar::getAvailableLocales
  • IntlCalendar::getErrorCode »
  • PHP Manual
  • IntlCalendar
  • Tell whether a day is a weekday, weekend or a day that has a transition between the two

IntlCalendar::getDayOfWeekType

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getDayOfWeekType — Tell whether a day is a weekday, weekend or a day that has a transition between the two

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getDayOfWeekType ( int $dayOfWeek )

Процедурный стиль

int intlcal_get_day_of_week_type ( IntlCalendar $cal , int $dayOfWeek )

Returns whether the passed day is a weekday (IntlCalendar::DOW_TYPE_WEEKDAY), a weekend day (IntlCalendar::DOW_TYPE_WEEKEND), a day during which a transition occurs into the weekend (IntlCalendar::DOW_TYPE_WEEKEND_OFFSET) or a day during which the weekend ceases (IntlCalendar::DOW_TYPE_WEEKEND_CEASE).

If the return is either
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASE, then
IntlCalendar::getWeekendTransition() can be called to
obtain the time of the transition.

This function requires ICU 4.4 or later.

Список параметров

cal

The IntlCalendar resource.

dayOfWeek

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, ...,
IntlCalendar::DOW_SATURDAY.

Возвращаемые значения

Returns one of the constants
IntlCalendar::DOW_TYPE_WEEKDAY,
IntlCalendar::DOW_TYPE_WEEKEND,
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASE или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getDayOfWeekType()

<?php

foreach (array('en_US', 'ar_SA') as $locale) {
    echo "Locale: ", Locale::getDisplayName($locale, "en_US"), "\n";

    $cal = IntlCalendar::createInstance('UTC', $locale);

    for ($i = IntlCalendar::DOW_SUNDAY; $i <= IntlCalendar::DOW_SATURDAY; $i++) {
        echo $i, " ", $cal->getDayOfWeekType($i), " ",
                $cal->getDayOfWeekType($i) >= IntlCalendar::DOW_TYPE_WEEKEND_OFFSET
                        ? $cal->getWeekendTransition($i)
                        : '',
                "\n";
    }
    echo "\n";
}

Результат выполнения данного примера:

Locale: English (United States)
1 3 86400000
2 0
3 0
4 0
5 0
6 0
7 1

Locale: Arabic (Saudi Arabia)
1 0
2 0
3 0
4 0
5 1
6 3 86400000
7 0


Get last error code on the object

  • « IntlCalendar::getDayOfWeekType
  • IntlCalendar::getErrorMessage »
  • PHP Manual
  • IntlCalendar
  • Get last error code on the object

IntlCalendar::getErrorCode

intlcal_get_error_code

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getErrorCode -- intlcal_get_error_code — Get last error code on the object

Описание

Объектно-ориентированный стиль (method):

public int IntlCalendar::getErrorCode ( void )

Процедурный стиль:

int intlcal_get_error_code ( IntlCalendar $calendar )

Returns the numeric ICU error code for the last call on this object (including cloning) or the IntlCalendar given for the calendar parameter (in the procedural?style version). This may indicate only a warning (negative error code) or no error at all (U_ZERO_ERROR). The actual presence of an error can be tested with intl_is_failure().

Invalid arguments detected on the PHP side (before invoking functions of the ICU library) are not recorded for the purposes of this function.

The last error that occurred in any call to a function of the intl extension, including early argument errors, can be obtained with intl_get_error_code(). This function resets the global error code, but not the object?s error code.

Список параметров

calendar

The calendar object, on the procedural style interface.

Возвращаемые значения

An ICU error code indicating either success, failure or a warning.

Примеры

Пример #1 IntlCalendar::getErrorCode() and IntlCalendar::getErrorMessage()

<?php
ini_set("intl.error_level", E_WARNING);
ini_set("intl.default_locale", "nl");

$intlcal = new IntlGregorianCalendar(2012, 1, 29);
var_dump(
    $intlcal->getErrorCode(),
    $intlcal->getErrorMessage()
);
$intlcal->fieldDifference(-1e100, IntlCalendar::FIELD_SECOND);

var_dump(
    $intlcal->getErrorCode(),
    $intlcal->getErrorMessage()
);

Результат выполнения данного примера:

int(0)
string(12) "U_ZERO_ERROR"

Warning: IntlCalendar::fieldDifference(): intlcal_field_difference: Call to ICU method has failed in /home/glopes/php/ws/example.php on line 10
int(1)
string(81) "intlcal_field_difference: Call to ICU method has failed: U_ILLEGAL_ARGUMENT_ERROR"

Смотрите также

  • IntlCalendar::getErrorMessage() - Get last error message on the object
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя
  • intl_error_name() - Получить имя ошибки по ее коду
  • intl_get_error_code() - Получить код последней ошибки
  • intl_get_error_message() - Получить описание ошибки


Get last error message on the object

  • « IntlCalendar::getErrorCode
  • IntlCalendar::getFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Get last error message on the object

IntlCalendar::getErrorMessage

intlcal_get_error_message

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getErrorMessage -- intlcal_get_error_message — Get last error message on the object

Описание

Объектно-ориентированный стиль (method):

public string IntlCalendar::getErrorMessage ( void )

Процедурный стиль:

string intlcal_get_error_message ( IntlCalendar $calendar )

Returns the error message (if any) associated with the error reported by IntlCalendar::getErrorCode() or intlcal_get_error_code(). If there is no associated error message, only the string representation of the name of the error constant will be returned. Otherwise, the message also includes a message set on the side of the PHP binding.

Список параметров

calendar

The calendar object, on the procedural style interface.

Возвращаемые значения

The error message associated with last error that occurred in a function call on this object, or a string indicating the non-existance of an error.

Примеры

Пример #1 IntlCalendar::getErrorMessage()

<?php
$cal = IntlCalendar::createInstance('UTC', 'en_US');
var_dump($cal->getErrorMessage());

$cal->getWeekendTransition(IntlCalendar::DOW_WEDNESDAY);
var_dump($cal->getErrorMessage());

Результат выполнения данного примера:

string(12) "U_ZERO_ERROR"
string(82) "intlcal_get_weekend_transition: Error calling ICU method: U_ILLEGAL_ARGUMENT_ERROR"


Get the first day of the week for the calendar?s locale

  • « IntlCalendar::getErrorMessage
  • IntlCalendar::getGreatestMinimum »
  • PHP Manual
  • IntlCalendar
  • Get the first day of the week for the calendar?s locale

IntlCalendar::getFirstDayOfWeek

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getFirstDayOfWeek — Get the first day of the week for the calendar?s locale

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getFirstDayOfWeek ( void )

Процедурный стиль

int intlcal_get_first_day_of_week ( IntlCalendar $cal )

The week day deemed to start a week, either the default value for this locale or the value set with IntlCalendar::setFirstDayOfWeek().

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

One of the constants IntlCalendar::DOW_SUNDAY, IntlCalendar::DOW_MONDAY, ..., IntlCalendar::DOW_SATURDAY или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getFirstDayOfWeek()

<?php
ini_set('date.timezone', 'UTC');

$cal1 = IntlCalendar::createInstance(NULL, 'es_ES');
var_dump($cal1->getFirstDayOfWeek()); // Monday
$cal1->set(2013, 1 /* February */, 3); // a Sunday
var_dump($cal1->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 5

$cal2 = IntlCalendar::createInstance(NULL, 'en_US');
var_dump($cal2->getFirstDayOfWeek()); // Sunday
$cal2->set(2013, 1 /* February */, 3); // a Sunday
var_dump($cal2->get(IntlCalendar::FIELD_WEEK_OF_YEAR)); // 6

Результат выполнения данного примера:

int(2)
int(5)
int(1)
int(6)

Смотрите также

  • IntlCalendar::setFirstDayOfWeek() - Set the day on which the week is deemed to start


Get the largest local minimum value for a field

  • « IntlCalendar::getFirstDayOfWeek
  • IntlCalendar::getKeywordValuesForLocale »
  • PHP Manual
  • IntlCalendar
  • Get the largest local minimum value for a field

IntlCalendar::getGreatestMinimum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getGreatestMinimum — Get the largest local minimum value for a field

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getGreatestMinimum ( int $field )

Процедурный стиль

int intlcal_get_greatest_minimum ( IntlCalendar $cal , int $field )

Returns the largest local minimum for a field. This should be a value larger or equal to that returned by IntlCalendar::getActualMinimum(), which is in its turn larger or equal to that returned by IntlCalendar::getMinimum(). All these three functions return the same value for the Gregorian calendar.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing a field value, in the field?s unit, или FALSE в случае возникновения ошибки.


Get set of locale keyword values

  • « IntlCalendar::getGreatestMinimum
  • IntlCalendar::getLeastMaximum »
  • PHP Manual
  • IntlCalendar
  • Get set of locale keyword values

IntlCalendar::getKeywordValuesForLocale

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getKeywordValuesForLocale — Get set of locale keyword values

Описание

Объектно-ориентированный стиль

public static Iterator IntlCalendar::getKeywordValuesForLocale ( string $key , string $locale , boolean $commonlyUsed )

Процедурный стиль

Iterator intlcal_get_keyword_values_for_locale ( string $key , string $locale , boolean $commonlyUsed )

For a given locale key, get the set of values for that key that would result in a different behavior. For now, only the 'calendar' keyword is supported.

This function requires ICU 4.2 or later.

Список параметров

key

The locale keyword for which relevant values are to be queried. Only 'calendar' is supported.

locale

The locale onto which the keyword/value pair are to be appended.

commonlyUsed

Whether to show only the values commonly used for the specified locale.

Возвращаемые значения

An iterator that yields strings with the locale keyword values или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getKeyworkValuesForLocale()

<?php
print_r(
        iterator_to_array(
                IntlCalendar::getKeywordValuesForLocale(
                        'calendar', 'fa_IR', true)));
print_r(
        iterator_to_array(
                IntlCalendar::getKeywordValuesForLocale(
                        'calendar', 'fa_IR', false)));

Результат выполнения данного примера:

Array
(
    [0] => persian
    [1] => gregorian
    [2] => islamic
    [3] => islamic-civil
)
Array
(
    [0] => persian
    [1] => gregorian
    [2] => islamic
    [3] => islamic-civil
    [4] => japanese
    [5] => buddhist
    [6] => roc
    [7] => hebrew
    [8] => chinese
    [9] => indian
    [10] => coptic
    [11] => ethiopic
    [12] => ethiopic-amete-alem
)


Get the smallest local maximum for a field

  • « IntlCalendar::getKeywordValuesForLocale
  • IntlCalendar::getLocale »
  • PHP Manual
  • IntlCalendar
  • Get the smallest local maximum for a field

IntlCalendar::getLeastMaximum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getLeastMaximum — Get the smallest local maximum for a field

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getLeastMaximum ( int $field )

Процедурный стиль

int intlcal_get_least_maximum ( IntlCalendar $cal , int $field )

Returns the smallest local maximumw for a field. This should be a value smaller or equal to that returned by IntlCalendar::getActualMaxmimum(), which is in its turn smaller or equal to that returned by IntlCalendar::getMaximum().

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing a field value in the field?s unit или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Maxima examples

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'it_IT');

$cal = new IntlGregorianCalendar(2013, 3 /* April */, 6);
var_dump(
    $cal->getLeastMaximum(IntlCalendar::FIELD_DAY_OF_MONTH),  // 28
    $cal->getActualMaximum(IntlCalendar::FIELD_DAY_OF_MONTH), // 30
    $cal->getMaximum(IntlCalendar::FIELD_DAY_OF_MONTH)        // 31
);

Результат выполнения данного примера:

int(28)
int(30)
int(31)

Смотрите также

  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object?s current time
  • IntlCalendar::getMaximum() - Get the global maximum value for a field
  • IntlCalendar::getGreatestMinimum() - Get the largest local minimum value for a field


Get the locale associated with the object

  • « IntlCalendar::getLeastMaximum
  • IntlCalendar::getMaximum »
  • PHP Manual
  • IntlCalendar
  • Get the locale associated with the object

IntlCalendar::getLocale

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getLocale — Get the locale associated with the object

Описание

Объектно-ориентированный стиль

public string IntlCalendar::getLocale ( int $localeType )

Процедурный стиль

string intlcal_get_locale ( IntlCalendar $cal , int $localeType )

Returns the locale used by this calendar object.

Список параметров

cal

The IntlCalendar resource.

localeType

Whether to fetch the actual locale (the locale from which the calendar data originates, with Locale::ACTUAL_LOCALE) or the valid locale, i.e., the most specific locale supported by ICU relatively to the requested locale - see Locale::VALID_LOCALE. From the most general to the most specific, the locales are ordered in this fashion - actual locale, valid locale, requested locale.

Возвращаемые значения

A locale string или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getLocale()

<?php
$cal = IntlCalendar::createInstance(IntlTimeZone::getGMT(), 'en_US_CALIFORNIA');
var_dump(
    $cal->getLocale(Locale::ACTUAL_LOCALE),
    $cal->getLocale(Locale::VALID_LOCALE)
);

Результат выполнения данного примера:

string(2) "en"
string(5) "en_US"


Get the global maximum value for a field

  • « IntlCalendar::getLocale
  • IntlCalendar::getMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Get the global maximum value for a field

IntlCalendar::getMaximum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMaximum — Get the global maximum value for a field

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getMaximum ( int $field )

Процедурный стиль

int intlcal_get_maximum ( IntlCalendar $cal , int $field )

Gets the global maximum for a field, in this specific calendar. This value is larger or equal to that returned by IntlCalendar::getActualMaximum(), which is in its turn larger or equal to that returned by IntlCalendar::getLeastMaximum().

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing a field value in the field?s unit или FALSE в случае возникновения ошибки.

Смотрите также

  • IntlCalendar::getActualMaximum() - The maximum value for a field, considering the object?s current time
  • IntlCalendar::getLeastMaximum() - Get the smallest local maximum for a field
  • IntlCalendar::getMinimum() - Get the global minimum value for a field


Get minimal number of days the first week in a year or month can have

  • « IntlCalendar::getMaximum
  • IntlCalendar::getMinimum »
  • PHP Manual
  • IntlCalendar
  • Get minimal number of days the first week in a year or month can have

IntlCalendar::getMinimalDaysInFirstWeek

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMinimalDaysInFirstWeek — Get minimal number of days the first week in a year or month can have

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getMinimalDaysInFirstWeek ( void )

Процедурный стиль

int intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal )

Returns the smallest number of days the first week of a year or month must have in the new year or month. For instance, in the Gregorian calendar, if this value is 1, then the first week of the year will necessarily include January 1st, while if this value is 7, then the week with January 1st will be the first week of the year only if the day of the week for January 1st matches the day of the week returned by IntlCalendar::getFirstDayOfWeek(); otherwise it will be the previous year?s last week.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

An int representing a number of days или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlCalendar::getMinimalDaysInFirstWeek()

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'en_US');

$cal = new IntlGregorianCalendar(2013, 0 /* January */, 2);
var_dump(IntlDateFormatter::formatObject($cal, 'cccc')); // Wednesday

var_dump($cal->getMinimalDaysInFirstWeek(), // 1
$cal->getFirstDayofWeek()); // 1 (Sunday)

// Week 1 of 2013
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

$cal->setMinimalDaysInFirstWeek(4);
// Still Week 1 of 2013 (1st week has 5 days in the new year)
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

$cal->setMinimalDaysInFirstWeek(6);
// Week 53 of 2012
var_dump(IntlDateFormatter::formatObject($cal, "'Week 'w' of 'Y"));

Результат выполнения данного примера:

string(9) "Wednesday"
int(1)
int(1)
string(14) "Week 1 of 2013"
string(14) "Week 1 of 2013"
string(15) "Week 53 of 2012"


Get the global minimum value for a field

  • « IntlCalendar::getMinimalDaysInFirstWeek
  • IntlCalendar::getNow »
  • PHP Manual
  • IntlCalendar
  • Get the global minimum value for a field

IntlCalendar::getMinimum

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getMinimum — Get the global minimum value for a field

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getMinimum ( int $field )

Процедурный стиль

int intlcal_get_minimum ( IntlCalendar $cal , int $field )

Gets the global minimum for a field, in this specific calendar. This value is smaller or equal to that returned by IntlCalendar::getActualMinimum(), which is in its turn smaller or equal to that returned by IntlCalendar::getGreatestMinimum(). For the Gregorian calendar, these three functions always return the same value (for each field).

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

An int representing a value for the given field in the field?s unit или FALSE в случае возникновения ошибки.


Get number representing the current time

  • « IntlCalendar::getMinimum
  • IntlCalendar::getRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Get number representing the current time

IntlCalendar::getNow

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getNow — Get number representing the current time

Описание

Объектно-ориентированный стиль

public static float IntlCalendar::getNow ( void )

Процедурный стиль

float intlcal_get_now ( void )

The number of milliseconds that have passed since the reference date. This number is derived from the system time.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A float representing a number of milliseconds since the epoch, not counting leap seconds.

Примеры

Пример #1 IntlCalendar::getNow()

<?php
$formatter = IntlDateFormatter::create('es_ES',
        IntlDateFormatter::FULL,
        IntlDateFormatter::FULL,
        'Europe/Madrid');

$val = IntlCalendar::getNow();

var_dump($val);
echo $formatter->format(IntlCalendar::getNow() / 1000.), "\n";

Результат выполнения данного примера:

float(1371425814666)
lunes, 17 de junio de 2013 01:36:54 Hora de verano de Europa central


Get behavior for handling repeating wall time

  • « IntlCalendar::getNow
  • IntlCalendar::getSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Get behavior for handling repeating wall time

IntlCalendar::getRepeatedWallTimeOption

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getRepeatedWallTimeOption — Get behavior for handling repeating wall time

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getRepeatedWallTimeOption ( void )

Процедурный стиль

int intlcal_get_repeated_wall_time_option ( IntlCalendar $cal )

Gets the current strategy for dealing with wall times that are repeated whenever the clock is set back during dailight saving time end transitions. The default value is IntlCalendar::WALLTIME_LAST.

This function requires ICU 4.9 or later.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

One of the constants IntlCalendar::WALLTIME_FIRST or IntlCalendar::WALLTIME_LAST.

Примеры

Пример #1 IntlCalendar::getRepeatedWallTimeOption()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
ini_set('intl.error_level', E_WARNING);

//On October 27th at 0200, the clock goes back 1 hour and from GMT+01 to GMT+00
$cal = new IntlGregorianCalendar(2013, 9 /* October */, 27, 1, 30);

var_dump($cal->getRepeatedWalltimeOption()); // 0 WALLTIME_LAST

$formatter = IntlDateFormatter::create(
    NULL,
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'UTC'
);
var_dump($formatter->format($cal->getTime() / 1000.));

$cal->setRepeatedWalltimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getRepeatedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000.));

Результат выполнения данного примера:

int(0)
string(42) "Sunday, October 27, 2013 at 1:30:00 AM GMT"
int(1)
string(43) "Sunday, October 27, 2013 at 12:30:00 AM GMT"

Смотрите также

  • IntlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time
  • IntlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions


Get behavior for handling skipped wall time

  • « IntlCalendar::getRepeatedWallTimeOption
  • IntlCalendar::getTime »
  • PHP Manual
  • IntlCalendar
  • Get behavior for handling skipped wall time

IntlCalendar::getSkippedWallTimeOption

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getSkippedWallTimeOption — Get behavior for handling skipped wall time

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getSkippedWallTimeOption ( void )

Процедурный стиль

int intlcal_get_skipped_wall_time_option ( IntlCalendar $cal )

Gets the current strategy for dealing with wall times that are skipped whenever the clock is forwarded during dailight saving time start transitions. The default value is IntlCalendar::WALLTIME_LAST.

The calendar must be lenient for this option to have any effect, otherwise attempting to set a non-existing time will cause an error.

This function requires ICU 4.9 or later.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

One of the constants IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST or
IntlCalendar::WALLTIME_NEXT_VALID.

Примеры

Пример #1 IntlCalendar::getSkippedWallTimeOption()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
ini_set('intl.error_level', E_WARNING);

//On March 31st at 0100, the clock goes forward 1 hour and from GMT+00 to GMT+01
$cal = new IntlGregorianCalendar(2013, 2 /* March */, 31, 1, 30);

var_dump(
    $cal->isLenient(),               // true
    $cal->getSkippedWalltimeOption() // 0 WALLTIME_LAST
);

$formatter = IntlDateFormatter::create(
    NULL,
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'UTC'
);
var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getSkippedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_NEXT_VALID);
var_dump($cal->getSkippedWalltimeOption()); // 2 WALLTIME_NEXT_VALID
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

Результат выполнения данного примера:

bool(true)
int(0)
string(40) "Sunday, March 31, 2013 at 1:30:00 AM GMT"
int(1)
string(41) "Sunday, March 31, 2013 at 12:30:00 AM GMT"
int(2)
string(40) "Sunday, March 31, 2013 at 1:00:00 AM GMT"

Смотрите также

  • IntlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time
  • IntlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions


Get time currently represented by the object

  • « IntlCalendar::getSkippedWallTimeOption
  • IntlCalendar::getTimeZone »
  • PHP Manual
  • IntlCalendar
  • Get time currently represented by the object

IntlCalendar::getTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getTime — Get time currently represented by the object

Описание

Объектно-ориентированный стиль

public float IntlCalendar::getTime ( void )

Процедурный стиль

float intlcal_get_time ( IntlCalendar $cal )

Returns the time associated with this object, expressed as the number of milliseconds since the epoch.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

A float representing the number of milliseconds elapsed since the reference time (1 Jan 1970 00:00:00 UTC).

Примеры

Пример #1 IntlCalendar::getTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = new IntlGregorianCalendar(2013, 4 /* May */, 1, 0, 0, 0);
$time = $cal->getTime();
var_dump($time, $time / 1000 == strtotime('2013-05-01 00:00:00')); //true

Результат выполнения данного примера:

float(1367362800000)
bool(true)

Смотрите также

  • IntlCalendar::getNow() - Get number representing the current time


Get the object?s timezone

  • « IntlCalendar::getTime
  • IntlCalendar::getType »
  • PHP Manual
  • IntlCalendar
  • Get the object?s timezone

IntlCalendar::getTimeZone

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getTimeZone — Get the object?s timezone

Описание

Объектно-ориентированный стиль

public IntlTimeZone IntlCalendar::getTimeZone ( void )

Процедурный стиль

IntlTimeZone intlcal_get_time_zone ( IntlCalendar $cal )

Returns the IntlTimeZone object associated with this calendar.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

An IntlTimeZone object corresponding to the one used internally in this object.

Примеры

Пример #1 IntlCalendar::getTimeZone()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = IntlCalendar::createInstance();
print_r($cal->getTimeZone());

$cal->setTimeZone('UTC');
print_r($cal->getTimeZone());

$cal = IntlCalendar::fromDateTime('2012-01-01 00:00:00 GMT+03:33');
print_r($cal->getTimeZone());

Результат выполнения данного примера:

IntlTimeZone Object
(
    [valid] => 1
    [id] => Europe/Lisbon
    [rawOffset] => 0
    [currentOffset] => 3600000
)
IntlTimeZone Object
(
    [valid] => 1
    [id] => UTC
    [rawOffset] => 0
    [currentOffset] => 0
)
IntlTimeZone Object
(
    [valid] => 1
    [id] => GMT+03:33
    [rawOffset] => 12780000
    [currentOffset] => 12780000
)

Смотрите также

  • IntlCalendar::setTimeZone() - Set the timezone used by this calendar
  • IntlCalendar::createInstance() - Create a new IntlCalendar
  • IntlGregorianCalendar::__construct()


Get the calendar type

  • « IntlCalendar::getTimeZone
  • IntlCalendar::getWeekendTransition »
  • PHP Manual
  • IntlCalendar
  • Get the calendar type

IntlCalendar::getType

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getType — Get the calendar type

Описание

Объектно-ориентированный стиль

public string IntlCalendar::getType ( void )

Процедурный стиль

string intlcal_get_type ( IntlCalendar $cal )

A string describing the type of this calendar. This is one of the valid values for the calendar keyword value 'calendar'.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

A string representing the calendar type, such as 'gregorian', 'islamic', etc.

Примеры

Пример #1 IntlCalendar::getType()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');

$cal = IntlCalendar::createInstance(NULL, '@calendar=ethiopic-amete-alem');
var_dump($cal->getType());

$cal = new IntlGregorianCalendar();
var_dump($cal->getType());

Результат выполнения данного примера:

string(19) "ethiopic-amete-alem"
string(9) "gregorian"


Get time of the day at which weekend begins or ends

  • « IntlCalendar::getType
  • IntlCalendar::inDaylightTime »
  • PHP Manual
  • IntlCalendar
  • Get time of the day at which weekend begins or ends

IntlCalendar::getWeekendTransition

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::getWeekendTransition — Get time of the day at which weekend begins or ends

Описание

Объектно-ориентированный стиль

public int IntlCalendar::getWeekendTransition ( string $dayOfWeek )

Процедурный стиль

int intlcal_get_weekend_transition ( IntlCalendar $cal , string $dayOfWeek )

Returns the number of milliseconds after midnight at which the weekend begins or ends.

This is only applicable for days of the week for which
IntlCalendar::getDayOfWeekType() returns either
IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or
IntlCalendar::DOW_TYPE_WEEKEND_CEASE. Calling this
function for other days of the week is an error condition.

This function requires ICU 4.4 or later.

Список параметров

cal

The IntlCalendar resource.

dayOfWeek

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, ...,
IntlCalendar::DOW_SATURDAY.

Возвращаемые значения

The number of milliseconds into the day at which the weekend begins or ends или FALSE в случае возникновения ошибки.

Примеры

See example on IntlCalendar::getDayOfWeekType().


Whether the object?s time is in Daylight Savings Time

  • « IntlCalendar::getWeekendTransition
  • IntlCalendar::isEquivalentTo »
  • PHP Manual
  • IntlCalendar
  • Whether the object?s time is in Daylight Savings Time

IntlCalendar::inDaylightTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::inDaylightTime — Whether the object?s time is in Daylight Savings Time

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::inDaylightTime ( void )

Процедурный стиль

bool intlcal_in_daylight_time ( IntlCalendar $cal )

Whether, for the instant represented by this object and for this object?s timezone, daylight saving time is in place.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

Returns TRUE if the date is in Daylight Savings Time, FALSE otherwise. The value FALSE may also be returned on failure, for instance after specifying invalid field values on non-lenient mode; use exceptions or query intl_get_error_code() to disambiguate.

Примеры

Пример #1 IntlCalendar::inDaylightTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1, 4, 56, 31);
var_dump($cal->inDaylightTime()); // true
$cal->set(IntlCalendar::FIELD_MONTH, 11 /* December */);
var_dump($cal->inDaylightTime()); // false

//DST end transition on 2013-10-27 at 0200 (wall time back 1 hour)
$cal = new IntlGregorianCalendar(2013, 9 /* October */, 27, 1, 30, 0);

var_dump($cal->inDaylightTime()); // false (default WALLTIME_LAST)

$cal->setRepeatedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1); // force time recalculation
var_dump($cal->inDaylightTime()); // true


Whether another calendar is equal but for a different time

  • « IntlCalendar::inDaylightTime
  • IntlCalendar::isLenient »
  • PHP Manual
  • IntlCalendar
  • Whether another calendar is equal but for a different time

IntlCalendar::isEquivalentTo

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isEquivalentTo — Whether another calendar is equal but for a different time

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::isEquivalentTo ( IntlCalendar $other )

Процедурный стиль

bool intlcal_is_equivalent_to ( IntlCalendar $cal , IntlCalendar $other )

Returns whether this and the given object are equivalent for all purposes except as to the time they have set. The locales do not have to match, as long as no change in behavior results from such mismatch. This includes the timezone, whether the lenient mode is set, the repeated and skipped wall time settings, the days of the week when the weekend starts and ceases and the times where such transitions occur. It may also include other calendar specific settings, such as the Gregorian/Julian transition instant.

Список параметров

cal

The IntlCalendar resource.

other

The other calendar against which the comparison is to be made.

Возвращаемые значения

Assuming there are no argument errors, returns TRUE iif the calendars are equivalent except possibly for their set time.

Примеры

Пример #1 IntlCalendar::isEquivalentTo()

<?php
$cal1 = IntlCalendar::createInstance('Europe/Lisbon', 'pt_PT');
$cal2 = IntlCalendar::createInstance('Europe/Lisbon', 'es_ES');
$cal2->clear();

var_dump($cal1->isEquivalentTo($cal2)); // true

$cal3 = IntlCalendar::createInstance('Europe/Lisbon', 'en_US');
var_dump($cal1->isEquivalentTo($cal3)); // false
var_dump($cal1->getFirstDayOfWeek(),    // 2 (Monday)
$cal3->getFirstDayOfWeek());            // 1 (Sunday)

Результат выполнения данного примера:

bool(true)
bool(false)
int(2)
int(1)

Смотрите также

  • IntlCalendar::equals() - Compare time of two IntlCalendar objects for equality


Whether date/time interpretation is in lenient mode

  • « IntlCalendar::isEquivalentTo
  • IntlCalendar::isSet »
  • PHP Manual
  • IntlCalendar
  • Whether date/time interpretation is in lenient mode

IntlCalendar::isLenient

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isLenient — Whether date/time interpretation is in lenient mode

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::isLenient ( void )

Процедурный стиль

bool intlcal_is_lenient ( IntlCalendar $cal )

Returns whether the current date/time interpretations is lenient (the default). If that is case, some out of range values for fields will be accepted instead of raising an error.

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

A bool representing whether the calendar is set to lenient mode.

Примеры

Пример #1 IntlCalendar::isLenient()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');
ini_set('intl.use_exceptions', '1');

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
var_dump(IntlDateFormatter::formatObject($cal), // 01/07/2013, 00:00:00
$cal->isLenient()); // true

$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 33);
var_dump(IntlDateFormatter::formatObject($cal)); // 02/08/2013, 00:00:00

$cal->setLenient(false);
var_dump($cal->isLenient()); // false
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 33);
var_dump(IntlDateFormatter::formatObject($cal)); // error

Результат выполнения данного примера:

string(20) "01/07/2013, 00:00:00"
bool(true)
string(20) "02/08/2013, 00:00:00"
bool(false)

Fatal error: Uncaught exception 'IntlException' with message 'datefmt_format_object: error obtaining instant from IntlCalendar' in /home/foobar/example.php:16
Stack trace:
#0 /home/foobar/example.php(16): IntlDateFormatter::formatObject(Object(IntlGregorianCalendar))
#1 {main}
  thrown in /home/foobar/example.php on line 16


Whether a field is set

  • « IntlCalendar::isLenient
  • IntlCalendar::isWeekend »
  • PHP Manual
  • IntlCalendar
  • Whether a field is set

IntlCalendar::isSet

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isSet — Whether a field is set

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::isSet ( int $field )

Процедурный стиль

bool intlcal_is_set ( IntlCalendar $cal , int $field )

Returns whether a field is set (as opposed to clear). Set fields take priority over unset fields and their default values when the date/time is being calculated. Fields set later take priority over fields set earlier.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

Возвращаемые значения

Assuming there are no argument errors, returns TRUE iif the field is set.

Примеры

See the example on IntlCalendar::clear().

Смотрите также

  • IntlCalendar::clear() - Clear a field or all fields
  • IntlCalendar::set() - Set a time field or several common fields at once


Whether a certain date/time is in the weekend

  • « IntlCalendar::isSet
  • IntlCalendar::roll »
  • PHP Manual
  • IntlCalendar
  • Whether a certain date/time is in the weekend

IntlCalendar::isWeekend

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::isWeekend — Whether a certain date/time is in the weekend

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::isWeekend ([ float $date = NULL ] )

Процедурный стиль

bool intlcal_is_weekend ( IntlCalendar $cal [, float $date = NULL ] )

Returns whether either the obejct?s current time or the provided timestamp occur during a weekend in this object?s calendar system.

This function requires ICU 4.4 or later.

Список параметров

cal

The IntlCalendar resource.

date

An optional timestamp representing the number of milliseconds since the epoch, excluding leap seconds. If NULL, this object?s current time is used instead.

Возвращаемые значения

A bool indicating whether the given or this object?s time occurs in a weekend.

The value FALSE may also be returned on failure, for instance after giving a date out of bounds on non-lenient mode; use exceptions or query intl_get_error_code() to disambiguate.

Примеры

Пример #1 IntlCalendar::isWeekend()

<?php
ini_set('date.timezone', 'Europe/Lisbon');

$cal = new IntlGregorianCalendar(NULL, 'en_US');
$cal->set(2013, 6 /* July */, 7); // a Sunday

var_dump($cal->isWeekend()); // true
var_dump($cal->isWeekend(strtotime('2013-07-01 00:00:00'))); // false, Monday

$cal = new IntlGregorianCalendar(NULL, 'ar_SA');
$cal->set(2013, 6 /* July */, 7); // a Sunday
var_dump($cal->isWeekend()); // false, Sunday not in weekend in this calendar

Смотрите также

  • IntlCalendar::getDayOfWeekType() - Tell whether a day is a weekday, weekend or a day that has a transition between the two
  • IntlCalendar::getWeekendTransition() - Get time of the day at which weekend begins or ends


Add value to field without carrying into more significant fields

  • « IntlCalendar::isWeekend
  • IntlCalendar::set »
  • PHP Manual
  • IntlCalendar
  • Add value to field without carrying into more significant fields

IntlCalendar::roll

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::roll — Add value to field without carrying into more significant fields

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::roll ( int $field , mixed $amountOrUpOrDown )

Процедурный стиль

bool intlcal_roll ( IntlCalendar $cal , int $field , mixed $amountOrUpOrDown )

Adds a (signed) amount to a field. The difference with respect to IntlCalendar::add() is that when the field value overflows, it does not carry into more significant fields.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

amountOrUpOrDown

The (signed) amount to add to the field, TRUE for rolling up (adding 1), or FALSE for rolling down (subtracting 1).

Возвращаемые значения

Returns TRUE on success or FALSE on failure.

Примеры

Пример #1 IntlCalendar::roll()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

$cal = new IntlGregorianCalendar(2013, 5 /* June */, 30);

$cal->add(IntlCalendar::FIELD_DAY_OF_MONTH, 1);
var_dump(IntlDateFormatter::formatObject($cal)); // "01/07/2013, 00:00:00"

$cal->set(2013, 5 /* June */, 30);
$cal->roll(IntlCalendar::FIELD_DAY_OF_MONTH, true); // roll up, same as rolling +1
var_dump(IntlDateFormatter::formatObject($cal)); // "01/06/2013, 00:00:00"

Результат выполнения данного примера:

string(20) "01/07/2013, 00:00:00"
string(20) "01/06/2013, 00:00:00"

Смотрите также

  • IntlCalendar::add() - Add a (signed) amount of time to a field
  • IntlCalendar::set() - Set a time field or several common fields at once


Set a time field or several common fields at once

  • « IntlCalendar::roll
  • IntlCalendar::setFirstDayOfWeek »
  • PHP Manual
  • IntlCalendar
  • Set a time field or several common fields at once

IntlCalendar::set

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::set — Set a time field or several common fields at once

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::set ( int $field , int $value )
public bool IntlCalendar::set ( int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] )

Процедурный стиль

bool intlcal_set ( IntlCalendar $cal , int $field , int $value )
bool intlcal_set ( IntlCalendar $cal , int $year , int $month [, int $dayOfMonth = NULL [, int $hour = NULL [, int $minute = NULL [, int $second = NULL ]]]] )

Sets either a specific field to the given value, or sets at once several common fields. The range of values that are accepted depend on whether the calendar is using the lenient mode.

For fields that conflict, the fields that are set later have priority.

This method cannot be called with exactly four arguments.

Список параметров

cal

The IntlCalendar resource.

field

Одна из представленных в классе IntlCalendar констант полей типа дата/время. Целое число от 0 до IntlCalendar::FIELD_COUNT.

value

The new value of the given field.

year

The new value for IntlCalendar::FIELD_YEAR.

month

The new value for IntlCalendar::FIELD_MONTH.

dayOfMonth

The new value for IntlCalendar::FIELD_DAY_OF_MONTH. The month sequence is zero-based, i.e., January is represented by 0, February by 1, ..., December is 11 and Undecember (if the calendar has it) is 12.

hour

The new value for IntlCalendar::FIELD_HOUR_OF_DAY.

minute

The new value for IntlCalendar::FIELD_MINUTE.

second

The new value for IntlCalendar::FIELD_SECOND.

Возвращаемые значения

Returns TRUE on success and FALSE on failure.

Примеры

Пример #1 IntlCalendar::set()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

//Calls made later have priority
$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
//the time has not been recalculated yet. If we clear the extended year,
//the year set before will be used
$cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR);
var_dump(IntlDateFormatter::formatObject($cal));

Результат выполнения данного примера:

string(20) "01/07/2011, 00:00:00"
string(20) "01/07/2012, 00:00:00"

Смотрите также

  • IntlCalendar::get() - Get the value for a field
  • IntlCalendar::add() - Add a (signed) amount of time to a field
  • IntlCalendar::roll() - Add value to field without carrying into more significant fields


Set the day on which the week is deemed to start

  • « IntlCalendar::set
  • IntlCalendar::setLenient »
  • PHP Manual
  • IntlCalendar
  • Set the day on which the week is deemed to start

IntlCalendar::setFirstDayOfWeek

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setFirstDayOfWeek — Set the day on which the week is deemed to start

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::setFirstDayOfWeek ( int $dayOfWeek )

Процедурный стиль

bool intlcal_set_first_day_of_week ( IntlCalendar $cal , int $dayOfWeek )

Defines the day of week deemed to start the week. This affects the behavior of fields that depend on the concept of week start and end such as IntlCalendar::FIELD_WEEK_OF_YEAR and IntlCalendar::FIELD_YEAR_WOY.

Список параметров

cal

The IntlCalendar resource.

dayOfWeek

One of the constants IntlCalendar::DOW_SUNDAY,
IntlCalendar::DOW_MONDAY, ...,
IntlCalendar::DOW_SATURDAY.

Возвращаемые значения

Returns TRUE on success. Failure can only happen due to invalid parameters.

Примеры

Пример #1 IntlCalendar::setFirstDayOfWeek()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');

$cal = IntlCalendar::createInstance();
$cal->set(2013, 5 /* June */, 30); // A Sunday

var_dump($cal->getFirstDayOfWeek()); // 2 (Monday)

echo IntlDateFormatter::formatObject($cal, <<<EOD
'local day of week: 'cc'
week of month    : 'W'
week of year     : 'ww
EOD
), "\n";

$cal->setFirstDayOfWeek(IntlCalendar::DOW_SUNDAY);

echo IntlDateFormatter::formatObject($cal, <<<EOD
'local day of week: 'cc'
week of month    : 'W'
week of year     : 'ww
EOD
), "\n";

Результат выполнения данного примера:

int(2)
local day of week: 7
week of month    : 4
week of year     : 26
local day of week: 1
week of month    : 5
week of year     : 27


Set whether date/time interpretation is to be lenient

  • « IntlCalendar::setFirstDayOfWeek
  • IntlCalendar::setMinimalDaysInFirstWeek »
  • PHP Manual
  • IntlCalendar
  • Set whether date/time interpretation is to be lenient

IntlCalendar::setLenient

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setLenient — Set whether date/time interpretation is to be lenient

Описание

Объектно-ориентированный стиль

public ReturnType IntlCalendar::setLenient ( string $isLenient )

Процедурный стиль

ReturnType intlcal_set_lenient ( IntlCalendar $cal , string $isLenient )

Defines whether the calendar is 'lenient mode'. In such a mode, some of out-of-bounds values for some fields are accepted, the behavior being similar to that of IntlCalendar::add() (i.e., the value wraps around, carrying into more significant fields each time). If the lenient mode is off, then such values will generate an error.

Список параметров

cal

The IntlCalendar resource.

isLenient

Use TRUE to activate the lenient mode; FALSE otherwise.

Возвращаемые значения

Returns TRUE on success. Failure can only happen due to invalid parameters.

Примеры

See the example in IntlCalendar::isLenient().


Set minimal number of days the first week in a year or month can have

  • « IntlCalendar::setLenient
  • IntlCalendar::setRepeatedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Set minimal number of days the first week in a year or month can have

IntlCalendar::setMinimalDaysInFirstWeek

(Информация о версии неизвестна, возможно, только в SVN)

IntlCalendar::setMinimalDaysInFirstWeek — Set minimal number of days the first week in a year or month can have

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::setMinimalDaysInFirstWeek ( int $minimalDays )

Процедурный стиль

bool intlcal_get_minimal_days_in_first_week ( IntlCalendar $cal , int $minimalDays )

Sets the smallest number of days the first week of a year or month must have in the new year or month. For instance, in the Gregorian calendar, if this value is 1, then the first week of the year will necessarily include January 1st, while if this value is 7, then the week with January 1st will be the first week of the year only if the day of the week for January 1st matches the day of the week returned by IntlCalendar::getFirstDayOfWeek(); otherwise it will be the previous year?s last week.

Список параметров

cal

The IntlCalendar resource.

minimalDays

The number of minimal days to set.

Возвращаемые значения

TRUE on success, FALSE on failure.


Set behavior for handling repeating wall times at negative timezone offset transitions

  • « IntlCalendar::setMinimalDaysInFirstWeek
  • IntlCalendar::setSkippedWallTimeOption »
  • PHP Manual
  • IntlCalendar
  • Set behavior for handling repeating wall times at negative timezone offset transitions

IntlCalendar::setRepeatedWallTimeOption

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setRepeatedWallTimeOption — Set behavior for handling repeating wall times at negative timezone offset transitions

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::setRepeatedWallTimeOption ( int $wallTimeOption )

Процедурный стиль

bool intlcal_set_repeated_wall_time_option ( IntlCalendar $cal , int $wallTimeOption )

Sets the current strategy for dealing with wall times that are repeated whenever the clock is set back during dailight saving time end transitions. The default value is IntlCalendar::WALLTIME_LAST (take the post-DST instant). The other possible value is IntlCalendar::WALLTIME_FIRST (take the instant that occurs during DST).

This function requires ICU 4.9 or later.

Список параметров

cal

The IntlCalendar resource.

wallTimeOption

One of the constants IntlCalendar::WALLTIME_FIRST or IntlCalendar::WALLTIME_LAST.

Возвращаемые значения

Returns TRUE on success. Failure can only happen due to invalid parameters.

Примеры

See the example on IntlCalendar::getRepeatedWallTimeOption().

Смотрите также

  • intlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time
  • intlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • intlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time


Set behavior for handling skipped wall times at positive timezone offset transitions

  • « IntlCalendar::setRepeatedWallTimeOption
  • IntlCalendar::setTime »
  • PHP Manual
  • IntlCalendar
  • Set behavior for handling skipped wall times at positive timezone offset transitions

IntlCalendar::setSkippedWallTimeOption

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setSkippedWallTimeOption — Set behavior for handling skipped wall times at positive timezone offset transitions

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::setSkippedWallTimeOption ( int $wallTimeOption )

Процедурный стиль

bool intlcal_set_skipped_wall_time_option ( IntlCalendar $cal , int $wallTimeOption )

Sets the current strategy for dealing with wall times that are skipped whenever the clock is forwarded during dailight saving time start transitions. The default value is IntlCalendar::WALLTIME_LAST (take it as being the same instant as the one when the wall time is one hour more). Alternative values are IntlCalendar::WALLTIME_FIRST (same instant as the one with a wall time of one hour less) and IntlCalendar::WALLTIME_NEXT_VALID (same instant as when DST begins).

This affects only the instant represented by the calendar (as reported by IntlCalendar::getTime()), the field values will not be rewritten accordingly.

The calendar must be lenient for this option to have any effect, otherwise attempting to set a non-existing time will cause an error.

This function requires ICU 4.9 or later.

Список параметров

cal

The IntlCalendar resource.

wallTimeOption

One of the constants IntlCalendar::WALLTIME_FIRST,
IntlCalendar::WALLTIME_LAST or
IntlCalendar::WALLTIME_NEXT_VALID.

Возвращаемые значения

Returns TRUE on success. Failure can only happen due to invalid parameters.

Примеры

See the example on IntlCalendar::getSkippedWallTimeOption().

Смотрите также

  • intlCalendar::getSkippedWallTimeOption() - Get behavior for handling skipped wall time
  • intlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions
  • intlCalendar::getRepeatedWallTimeOption() - Get behavior for handling repeating wall time


Set the calendar time in milliseconds since the epoch

  • « IntlCalendar::setSkippedWallTimeOption
  • IntlCalendar::setTimeZone »
  • PHP Manual
  • IntlCalendar
  • Set the calendar time in milliseconds since the epoch

IntlCalendar::setTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setTime — Set the calendar time in milliseconds since the epoch

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::setTime ( float $date )

Процедурный стиль

bool intlcal_set_time ( IntlCalendar $cal , float $date )

Sets the instant represented by this object. The instant is represented by a float whose value should be an integer number of milliseconds since the epoch (1 Jan 1970 00:00:00.000 UTC), ignoring leap seconds. All the field values will be recalculated accordingly.

Список параметров

cal

The IntlCalendar resource.

date

An instant represented by the number of number of milliseconds between such instant and the epoch, ignoring leap seconds.

Возвращаемые значения

Returns TRUE on success and FALSE on failure.

Примеры

Пример #1 IntlCalendar::setTime()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'fr_FR');

$cal = new IntlGregorianCalendar(2013, 5 /* May */, 1, 12, 0, 0);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

/* In Europe/Lisbon, on 2013-10-27 at 0200, the clock goes back one hour and
   the timezone from UTC+01 to UTC+00 */

$cal->setTime(strtotime('2013-10-27 00:30:00 UTC') * 1000.);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

$cal->setTime(strtotime('2013-10-27 01:30:00 UTC') * 1000.);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";

Результат выполнения данного примера:

samedi 1 juin 2013 12:00:00 heure avancee d'Europe de l'Ouest
dimanche 27 octobre 2013 01:30:00 heure avancee d'Europe de l'Ouest
dimanche 27 octobre 2013 01:30:00 heure normale d'Europe de l'Ouest


Set the timezone used by this calendar

  • « IntlCalendar::setTime
  • IntlCalendar::toDateTime »
  • PHP Manual
  • IntlCalendar
  • Set the timezone used by this calendar

IntlCalendar::setTimeZone

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlCalendar::setTimeZone — Set the timezone used by this calendar

Описание

Объектно-ориентированный стиль

public bool IntlCalendar::setTimeZone ( mixed $timeZone )

Процедурный стиль

bool intlcal_set_time_zone ( IntlCalendar $cal , mixed $timeZone )

Defines a new timezone for this calendar. The time represented by the object is preserved to the detriment of the field values.

Список параметров

cal

The IntlCalendar resource.

timeZone

The new timezone to be used by this calendar. It can be specified in the following ways:

  • Если NULL, то будет использована временная зона по умолчанию, заданная в ini-настроке date.timezone либо с помощью функции date_default_timezone_set() и возвращенная функцией date_default_timezone_get().

  • Объект класса IntlTimeZone.

  • Объект класса DateTimeZone. Его идентификатор будет извлечен и на его основе будет создан объект временной зоны ICU; временная зона будет сохранена в базе данных ICU, а не PHP.

  • Строка, являющаяся корректным идентификатором временной зоны ICU. Смотрите IntlTimeZone::createTimeZoneIDEnumeration(). "Сырые" смещения, типа "GMT+08:30", также поддерживаются.

Возвращаемые значения

Returns TRUE on success and FALSE on failure.

Примеры

Пример #1 IntlCalendar::setTimeZone()

<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'es_ES');

$cal = new IntlGregorianCalendar(2013, 5 /* May */, 1, 12, 0, 0);

echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

$cal->setTimeZone(IntlTimeZone::getGMT());
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

$cal->setTimeZone('GMT+03:33');
echo IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL), "\n";
echo "(instant {$cal->getTime()})\n";

Результат выполнения данного примера:

sabado, 1 de junio de 2013 12:00:00 Hora de verano de Europa occidental
(instant 1370084400000)
sabado, 1 de junio de 2013 11:00:00 GMT
(instant 1370084400000)
sabado, 1 de junio de 2013 14:33:00 GMT+03:33
(instant 1370084400000)


Convert an IntlCalendar into a DateTime object

  • « IntlCalendar::setTimeZone
  • IntlTimeZone »
  • PHP Manual
  • IntlCalendar
  • Convert an IntlCalendar into a DateTime object

IntlCalendar::toDateTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a2)

IntlCalendar::toDateTime — Convert an IntlCalendar into a DateTime object

Описание

Объектно-ориентированный стиль

public DateTime IntlCalendar::toDateTime ( void )

Процедурный стиль

DateTime intlcal_to_date_time ( IntlCalendar $cal )

Create a DateTime object that represents the same instant (up to second precision, with a rounding error of less than 1 second) and has an analog timezone to this object (the difference being DateTime?s timezone will be backed by PHP?s timezone while IntlCalendar?s timezone is backed by ICU?s).

Список параметров

cal

The IntlCalendar resource.

Возвращаемые значения

A DateTime object with the same timezone as this object (though using PHP?s database instead of ICU?s) and the same time, except for the smaller precision (second precision instead of millisecond). Returns FALSE on failure.

Примеры

Пример #1 IntlCalendar::toDateTime()

<?php
ini_set('date.timezone', 'UTC');
ini_set('intl.default_locale', 'pt_PT');

$cal = IntlCalendar::createInstance('Europe/Lisbon'); //current time

$dt = $cal->toDateTime();
print_r($dt);

Результат выполнения данного примера:

DateTime Object
(
    [date] => 2013-07-02 00:29:13
    [timezone_type] => 3
    [timezone] => Europe/Lisbon
)

Смотрите также

  • IntlCalendar::fromDateTime() - Create an IntlCalendar from a DateTime object or string
  • IntlCalendar::getTime() - Get time currently represented by the object
  • IntlCalendar::createInstance() - Create a new IntlCalendar
  • DateTime:__construct()


Класс IntlTimeZone

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

Введение

Обзор классов

IntlTimeZone {
/* Константы */
const integer DISPLAY_SHORT = 1 ;
const integer DISPLAY_LONG = 2 ;
/* Методы */
public static integer countEquivalentIDs ( string $zoneId )
public static IntlTimeZone createDefault ( void )
public static IntlIterator createEnumeration ([ mixed $countryOrRawOffset ] )
public static IntlTimeZone createTimeZone ( string $zoneId )
public static IntlTimeZone fromDateTimeZone ( DateTimeZone $zoneId )
public static string getCanonicalID ( string $zoneId [, bool &$isSystemID ] )
public string getDisplayName ([ bool $isDaylight [, integer $style [, string $locale ]]] )
public integer getDSTSavings ( void )
public static string getEquivalentID ( string $zoneId , integer $index )
public integer getErrorCode ( void )
public string getErrorMessage ( void )
public static IntlTimeZone getGMT ( void )
public string getID ( void )
public integer getOffset ( float $date , bool $local , integer &$rawOffset , integer &$dstOffset )
public integer getRawOffset ( void )
public static string getTZDataVersion ( void )
public bool hasSameRules ( IntlTimeZone $otherTimeZone )
public DateTimeZone toDateTimeZone ( void )
public bool useDaylightTime ( void )
}

Предопределенные константы

IntlTimeZone::DISPLAY_SHORT

IntlTimeZone::DISPLAY_LONG

Содержание

  • IntlTimeZone::countEquivalentIDs — Get the number of IDs in the equivalency group that includes the given ID
  • IntlTimeZone::createDefault — Create a new copy of the default timezone for this host
  • IntlTimeZone::createEnumeration — Get an enumeration over time zone IDs associated with the given country or offset
  • IntlTimeZone::createTimeZone — Create a timezone object for the given ID
  • IntlTimeZone::fromDateTimeZone — Create a timezone object from DateTimeZone
  • IntlTimeZone::getCanonicalID — Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID
  • IntlTimeZone::getDisplayName — Get a name of this time zone suitable for presentation to the user
  • IntlTimeZone::getDSTSavings — Get the amount of time to be added to local standard time to get local wall clock time
  • IntlTimeZone::getEquivalentID — Get an ID in the equivalency group that includes the given ID
  • IntlTimeZone::getErrorCode — Get last error code on the object
  • IntlTimeZone::getErrorMessage — Get last error message on the object
  • IntlTimeZone::getGMT — Create GMT (UTC) timezone
  • IntlTimeZone::getID — Get timezone ID
  • IntlTimeZone::getOffset — Get the time zone raw and GMT offset for the given moment in time
  • IntlTimeZone::getRawOffset — Get the raw GMT offset (before taking daylight savings time into account
  • IntlTimeZone::getTZDataVersion — Get the timezone data version currently used by ICU
  • IntlTimeZone::hasSameRules — Check if this zone has the same rules and offset as another zone
  • IntlTimeZone::toDateTimeZone — Convert to DateTimeZone object
  • IntlTimeZone::useDaylightTime — Check if this time zone uses daylight savings time


Get the number of IDs in the equivalency group that includes the given ID

  • « IntlTimeZone
  • IntlTimeZone::createDefault »
  • PHP Manual
  • IntlTimeZone
  • Get the number of IDs in the equivalency group that includes the given ID

IntlTimeZone::countEquivalentIDs

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::countEquivalentIDs — Get the number of IDs in the equivalency group that includes the given ID

Описание

public static integer IntlTimeZone::countEquivalentIDs ( string $zoneId )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneId

Возвращаемые значения


Create a new copy of the default timezone for this host

  • « IntlTimeZone::countEquivalentIDs
  • IntlTimeZone::createEnumeration »
  • PHP Manual
  • IntlTimeZone
  • Create a new copy of the default timezone for this host

IntlTimeZone::createDefault

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createDefault — Create a new copy of the default timezone for this host

Описание

public static IntlTimeZone IntlTimeZone::createDefault ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get an enumeration over time zone IDs associated with the given country or offset

  • « IntlTimeZone::createDefault
  • IntlTimeZone::createTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Get an enumeration over time zone IDs associated with the given country or offset

IntlTimeZone::createEnumeration

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createEnumeration — Get an enumeration over time zone IDs associated with the given country or offset

Описание

public static IntlIterator IntlTimeZone::createEnumeration ([ mixed $countryOrRawOffset ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

countryOrRawOffset

Возвращаемые значения


Create a timezone object for the given ID

  • « IntlTimeZone::createEnumeration
  • IntlTimeZone::fromDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Create a timezone object for the given ID

IntlTimeZone::createTimeZone

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::createTimeZone — Create a timezone object for the given ID

Описание

public static IntlTimeZone IntlTimeZone::createTimeZone ( string $zoneId )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneId

Возвращаемые значения


Create a timezone object from DateTimeZone

  • « IntlTimeZone::createTimeZone
  • IntlTimeZone::getCanonicalID »
  • PHP Manual
  • IntlTimeZone
  • Create a timezone object from DateTimeZone

IntlTimeZone::fromDateTimeZone

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::fromDateTimeZone — Create a timezone object from DateTimeZone

Описание

public static IntlTimeZone IntlTimeZone::fromDateTimeZone ( DateTimeZone $zoneId )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneId

Возвращаемые значения


Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID

  • « IntlTimeZone::fromDateTimeZone
  • IntlTimeZone::getDisplayName »
  • PHP Manual
  • IntlTimeZone
  • Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID

IntlTimeZone::getCanonicalID

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getCanonicalID — Get the canonical system timezone ID or the normalized custom time zone ID for the given time zone ID

Описание

public static string IntlTimeZone::getCanonicalID ( string $zoneId [, bool &$isSystemID ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneId

isSystemID

Возвращаемые значения


Get a name of this time zone suitable for presentation to the user

  • « IntlTimeZone::getCanonicalID
  • IntlTimeZone::getDSTSavings »
  • PHP Manual
  • IntlTimeZone
  • Get a name of this time zone suitable for presentation to the user

IntlTimeZone::getDisplayName

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getDisplayName — Get a name of this time zone suitable for presentation to the user

Описание

public string IntlTimeZone::getDisplayName ([ bool $isDaylight [, integer $style [, string $locale ]]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

isDaylight

style

locale

Возвращаемые значения


Get the amount of time to be added to local standard time to get local wall clock time

  • « IntlTimeZone::getDisplayName
  • IntlTimeZone::getEquivalentID »
  • PHP Manual
  • IntlTimeZone
  • Get the amount of time to be added to local standard time to get local wall clock time

IntlTimeZone::getDSTSavings

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getDSTSavings — Get the amount of time to be added to local standard time to get local wall clock time

Описание

public integer IntlTimeZone::getDSTSavings ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get an ID in the equivalency group that includes the given ID

  • « IntlTimeZone::getDSTSavings
  • IntlTimeZone::getErrorCode »
  • PHP Manual
  • IntlTimeZone
  • Get an ID in the equivalency group that includes the given ID

IntlTimeZone::getEquivalentID

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getEquivalentID — Get an ID in the equivalency group that includes the given ID

Описание

public static string IntlTimeZone::getEquivalentID ( string $zoneId , integer $index )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

zoneId

index

Возвращаемые значения


Get last error code on the object

  • « IntlTimeZone::getEquivalentID
  • IntlTimeZone::getErrorMessage »
  • PHP Manual
  • IntlTimeZone
  • Get last error code on the object

IntlTimeZone::getErrorCode

intltz_get_error_code

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getErrorCode -- intltz_get_error_code — Get last error code on the object

Описание

Объектно-ориентированный стиль (method):

public integer IntlTimeZone::getErrorCode ( void )

Процедурный стиль:

integer intltz_get_error_code ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get last error message on the object

  • « IntlTimeZone::getErrorCode
  • IntlTimeZone::getGMT »
  • PHP Manual
  • IntlTimeZone
  • Get last error message on the object

IntlTimeZone::getErrorMessage

intltz_get_error_message

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getErrorMessage -- intltz_get_error_message — Get last error message on the object

Описание

Объектно-ориентированный стиль (method):

public string IntlTimeZone::getErrorMessage ( void )

Процедурный стиль:

string intltz_get_error_message ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Create GMT (UTC) timezone

  • « IntlTimeZone::getErrorMessage
  • IntlTimeZone::getID »
  • PHP Manual
  • IntlTimeZone
  • Create GMT (UTC) timezone

IntlTimeZone::getGMT

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getGMT — Create GMT (UTC) timezone

Описание

public static IntlTimeZone IntlTimeZone::getGMT ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get timezone ID

  • « IntlTimeZone::getGMT
  • IntlTimeZone::getOffset »
  • PHP Manual
  • IntlTimeZone
  • Get timezone ID

IntlTimeZone::getID

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getID — Get timezone ID

Описание

public string IntlTimeZone::getID ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the time zone raw and GMT offset for the given moment in time

  • « IntlTimeZone::getID
  • IntlTimeZone::getRawOffset »
  • PHP Manual
  • IntlTimeZone
  • Get the time zone raw and GMT offset for the given moment in time

IntlTimeZone::getOffset

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getOffset — Get the time zone raw and GMT offset for the given moment in time

Описание

public integer IntlTimeZone::getOffset ( float $date , bool $local , integer &$rawOffset , integer &$dstOffset )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

date

local

rawOffset

dstOffset

Возвращаемые значения


Get the raw GMT offset (before taking daylight savings time into account

  • « IntlTimeZone::getOffset
  • IntlTimeZone::getTZDataVersion »
  • PHP Manual
  • IntlTimeZone
  • Get the raw GMT offset (before taking daylight savings time into account

IntlTimeZone::getRawOffset

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getRawOffset — Get the raw GMT offset (before taking daylight savings time into account

Описание

public integer IntlTimeZone::getRawOffset ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the timezone data version currently used by ICU

  • « IntlTimeZone::getRawOffset
  • IntlTimeZone::hasSameRules »
  • PHP Manual
  • IntlTimeZone
  • Get the timezone data version currently used by ICU

IntlTimeZone::getTZDataVersion

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::getTZDataVersion — Get the timezone data version currently used by ICU

Описание

public static string IntlTimeZone::getTZDataVersion ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Check if this zone has the same rules and offset as another zone

  • « IntlTimeZone::getTZDataVersion
  • IntlTimeZone::toDateTimeZone »
  • PHP Manual
  • IntlTimeZone
  • Check if this zone has the same rules and offset as another zone

IntlTimeZone::hasSameRules

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::hasSameRules — Check if this zone has the same rules and offset as another zone

Описание

public bool IntlTimeZone::hasSameRules ( IntlTimeZone $otherTimeZone )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

otherTimeZone

Возвращаемые значения


Convert to DateTimeZone object

  • « IntlTimeZone::hasSameRules
  • IntlTimeZone::useDaylightTime »
  • PHP Manual
  • IntlTimeZone
  • Convert to DateTimeZone object

IntlTimeZone::toDateTimeZone

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::toDateTimeZone — Convert to DateTimeZone object

Описание

public DateTimeZone IntlTimeZone::toDateTimeZone ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Check if this time zone uses daylight savings time

  • « IntlTimeZone::toDateTimeZone
  • IntlDateFormatter »
  • PHP Manual
  • IntlTimeZone
  • Check if this time zone uses daylight savings time

IntlTimeZone::useDaylightTime

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

IntlTimeZone::useDaylightTime — Check if this time zone uses daylight savings time

Описание

public bool IntlTimeZone::useDaylightTime ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс IntlDateFormatter

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

Введение

Это класс позволяющий форматировать/разбирать даты в соответствиями с настройками локали, используя строковые и/или библиотечные шаблоны.

Класс предоставляет функционал форматирования дат ICU. Он позволяет пользователям отображать даты в формате, принятым в их локали. Или разбирать значения дат используя строковые и/или библиотечные шаблоны.

Синопсис класса

IntlDateFormatter {
/* Методы */
public __construct ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )
public static IntlDateFormatter create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )
public string format ( mixed $value )
public static string formatObject ( object $object [, mixed $format = NULL [, string $locale = NULL ]] )
int getCalendar ( void )
public int getDateType ( void )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public string getLocale ([ int $which ] )
public string getPattern ( void )
public int getTimeType ( void )
public string getTimeZoneId ( void )
public IntlCalendar getCalendarObject ( void )
public IntlTimeZone getTimeZone ( void )
public bool isLenient ( void )
public array localtime ( string $value [, int &$position ] )
public int parse ( string $value [, int &$position ] )
bool setCalendar ( mixed $which )
public bool setLenient ( bool $lenient )
public bool setPattern ( string $pattern )
public bool setTimeZoneId ( string $zone )
public boolean setTimeZone ( mixed $zone )
}

Смотрите также

  • » Форматирование дат ICU
  • » Форматы дат ICU

Предопределенные константы

Эти константы используются для задания формата в конструкторах DateType и TimeType.

IntlDateFormatter::NONE (integer)
Не включать этот элемент
IntlDateFormatter::FULL (integer)
Полный формат (Tuesday, April 12, 1952 AD or 3:30:42pm PST)
IntlDateFormatter::LONG (integer)
Длинный формат (January 12, 1952 or 3:30:32pm)
IntlDateFormatter::MEDIUM (integer)
Средний формат (Jan 12, 1952)
IntlDateFormatter::SHORT (integer)
Наиболее сокращенный формат, только самые необходимые данные (12/13/52 или 3:30pm)

Следующие константы используются для задания типа календаря. Эти календари прямо завязаны на Грегорианский календарь. Не Грегорианский календарь должен быть задан в локали. Например locale="hi@calendar=BUDDHIST".

IntlDateFormatter::TRADITIONAL (integer)
Не Грегорианский календарь
IntlDateFormatter::GREGORIAN (integer)
Грегорианский календарь

Содержание

  • IntlDateFormatter::create — Create a date formatter
  • IntlDateFormatter::format — Format the date/time value as a string
  • IntlDateFormatter::formatObject — Formats an object
  • IntlDateFormatter::getCalendar — Get the calendar type used for the IntlDateFormatter
  • IntlDateFormatter::getDateType — Get the datetype used for the IntlDateFormatter
  • IntlDateFormatter::getErrorCode — Get the error code from last operation
  • IntlDateFormatter::getErrorMessage — Get the error text from the last operation.
  • IntlDateFormatter::getLocale — Get the locale used by formatter
  • IntlDateFormatter::getPattern — Get the pattern used for the IntlDateFormatter
  • IntlDateFormatter::getTimeType — Get the timetype used for the IntlDateFormatter
  • IntlDateFormatter::getTimeZoneId — Get the timezone-id used for the IntlDateFormatter
  • IntlDateFormatter::getCalendarObject — Get copy of formatter?s calendar object
  • IntlDateFormatter::getTimeZone — Get formatter?s timezone
  • IntlDateFormatter::isLenient — Get the lenient used for the IntlDateFormatter
  • IntlDateFormatter::localtime — Parse string to a field-based time value
  • IntlDateFormatter::parse — Parse string to a timestamp value
  • IntlDateFormatter::setCalendar — Sets the calendar type used by the formatter
  • IntlDateFormatter::setLenient — Set the leniency of the parser
  • IntlDateFormatter::setPattern — Set the pattern used for the IntlDateFormatter
  • IntlDateFormatter::setTimeZoneId — Sets the time zone to use
  • IntlDateFormatter::setTimeZone — Sets formatter?s timezone


Create a date formatter

  • « IntlDateFormatter
  • IntlDateFormatter::format »
  • PHP Manual
  • IntlDateFormatter
  • Create a date formatter

IntlDateFormatter::create

datefmt_create

IntlDateFormatter::__construct

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__construct — Create a date formatter

Описание

Объектно-ориентированный стиль

public static IntlDateFormatter IntlDateFormatter::create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )

Объектно-ориентированный стиль (constructor)

public IntlDateFormatter::__construct ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )

Процедурный стиль

IntlDateFormatter datefmt_create ( string $locale , int $datetype , int $timetype [, mixed $timezone = NULL [, mixed $calendar = NULL [, string $pattern = "" ]]] )

Create a date formatter.

Список параметров

locale

Locale to use when formatting or parsing or NULL to use the value specified in the ini setting intl.default_locale.

datetype

Date type to use (none, short, medium, long, full). This is one of the IntlDateFormatter constants. It can also be NULL, in which case ICU?s default date type will be used.

timetype

Time type to use (none, short, medium, long, full). This is one of the IntlDateFormatter constants. It can also be NULL, in which case ICU?s default time type will be used.

timezone

Time zone ID. The default (and the one used if NULL is given) is the one returned by date_default_timezone_get() or, if applicable, that of the IntlCalendar object passed for the calendar parameter. This ID must be a valid identifier on ICU?s database or an ID representing an explicit offset, such as GMT-05:30.

This can also be an IntlTimeZone or a DateTimeZone object.

calendar

Calendar to use for formatting or parsing. The default value is NULL, which corresponds to IntlDateFormatter::GREGORIAN. This can either be one of the IntlDateFormatter calendar constants or an IntlCalendar. Any IntlCalendar object passed will be clone; it will not be changed by the IntlDateFormatter. This will determine the calendar type used (gregorian, islamic, persian, etc.) and, if NULL is given for the timezone parameter, also the timezone used.

pattern

Optional pattern to use when formatting or parsing. Possible patterns are documented at » http://userguide.icu-project.org/formatparse/datetime.

Возвращаемые значения

The created IntlDateFormatter or FALSE in case of failure.

Список изменений

Версия | Описание
5.5.0/PECL 3.0.0 | An IntlCalendar object is allowed for calendar. Objects of type IntlTimeZone and DateTimeZone are allowed for timezone. Invalid timezone identifiers (including empty strings) are no longer allowed for timezone. If NULL is given for timezone, the timezone identifier given by date_default_timezone_get() will be used instead of ICU?s default.

Примеры

Пример #1 datefmt_create() example

<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles', IntlDateFormatter::GREGORIAN  );
echo "First Formatted output is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second Formatted output is ".datefmt_format( $fmt , 0);

$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "Second Formatted output with pattern is ".datefmt_format( $fmt , 0);
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "First Formatted output is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'America/Los_Angeles',IntlDateFormatter::GREGORIAN  );
echo "Second Formatted output is ".$fmt->format(0);

$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
     'America/Los_Angeles',IntlDateFormatter::GREGORIAN  ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
      'America/Los_Angeles',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
echo "Second Formatted output with pattern is ".$fmt->format(0);
?>

Результат выполнения данного примера:

First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
First Formatted output with pattern is 12/31/1969
Second Formatted output with pattern is 12/31/1969

Смотрите также

  • datefmt_format() - Format the date/time value as a string
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation.


Format the date/time value as a string

  • « IntlDateFormatter::create
  • IntlDateFormatter::formatObject »
  • PHP Manual
  • IntlDateFormatter
  • Format the date/time value as a string

IntlDateFormatter::format

datefmt_format

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::format -- datefmt_format — Format the date/time value as a string

Описание

Объектно-ориентированный стиль

public string IntlDateFormatter::format ( mixed $value )

Процедурный стиль

string datefmt_format ( IntlDateFormatter $fmt , mixed $value )

Formats the time value as a string.

Список параметров

fmt

The date formatter resource.

value

Value to format. This may be a DateTime object, an IntlCalendar object, a numeric type representing a (possibly fractional) number of seconds since epoch or an array in the format output by localtime().

If a DateTime or an IntlCalendar object is passed, its timezone is not considered. The object will be formatted using the formater?s configured timezone. If one wants to use the timezone of the object to be formatted, IntlDateFormatter::setTimeZone() must be called before with the object?s timezone. Alternatively, the static function IntlDateFormatter::formatObject() may be used instead.

Возвращаемые значения

The formatted string or, if an error occurred, FALSE.

Список изменений

Версия | Описание
5.5.0/PECL 3.0.0 | Support for providing IntlCalendar objects to the value parameter was added.
5.3.4 | Support for providing DateTime objects to the value parameter was added.

Примеры

Пример #1 datefmt_format() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First Formatted output is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Second Formatted output is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'First Formatted output with pattern is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo "Second Formatted output with pattern is " . datefmt_format($fmt, 0);
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Second Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'First Formatted output with pattern is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'Second Formatted output with pattern is ' . $fmt->format(0);
?>

Результат выполнения данного примера:

First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
First Formatted output with pattern is 12/31/1969
Second Formatted output with pattern is 12/31/1969

Пример #3 With IntlCalendar object

<?php
$tz = reset(iterator_to_array(IntlTimeZone::createEnumeration('FR')));
$formatter = IntlDateFormatter::create(
    'fr_FR',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    $tz,
    IntlDateFormatter::GREGORIAN
);

$cal = IntlCalendar::createInstance($tz, '@calendar=islamic-civil');
$cal->set(IntlCalendar::FIELD_MONTH, 8); //9th month, Ramadan
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 1); //1st day
$cal->clear(IntlCalendar::FIELD_HOUR_OF_DAY);
$cal->clear(IntlCalendar::FIELD_MINUTE);
$cal->clear(IntlCalendar::FIELD_SECOND);
$cal->clear(IntlCalendar::FIELD_MILLISECOND);

echo "In this islamic year, Ramadan started/will start on:\n\t",
        $formatter->format($cal), "\n";

//It?s the formatter?s timezone that is used:
$formatter->setTimeZone('Asia/Tokyo');
echo "After changing timezone:\n\t",
        $formatter->format($cal), "\n";

Результат выполнения данного примера:

In this islamic year, Ramadan started/will start on:
    mardi 9 juillet 2013 19:00:00 heure avancee d'Europe centrale
After changing timezone:
    mercredi 10 juillet 2013 02:00:00 heure normale du Japon

Смотрите также

  • datefmt_create() - Create a date formatter
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation.
  • datefmt_format_object() - Formats an object


Formats an object

  • « IntlDateFormatter::format
  • IntlDateFormatter::getCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Formats an object

IntlDateFormatter::formatObject

datefmt_format_object

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::formatObject -- datefmt_format_object — Formats an object

Описание

Объектно-ориентированный стиль

public static string IntlDateFormatter::formatObject ( object $object [, mixed $format = NULL [, string $locale = NULL ]] )

Процедурный стиль

public static string datefmt_format_object ( object $object [, mixed $format = NULL [, string $locale = NULL ]] )

This function allows formatting an IntlCalendar or DateTime object without first explicitly creating a IntlDateFormatter object.

The temporary IntlDateFormatter that will be created will take the timezone from the passed in object. The timezone database bundled with PHP will not be used - ICU's will be used instead. The timezone identifier used in DateTime objects must therefore also exist in ICU's database.

Список параметров

object

An object of type IntlCalendar or DateTime. The timezone information in the object will be used.

format

How to format the date/time. This can either be an array with two elements (first the date style, then the time style, these being one of the constants IntlDateFormatter::NONE, IntlDateFormatter::SHORT, IntlDateFormatter::MEDIUM, IntlDateFormatter::LONG, IntlDateFormatter::FULL), a long with the value of one of these constants (in which case it will be used both for the time and the date) or a string with the format described in » the ICU documentation. If NULL, the default style will be used.

locale

The locale to use, or NULL to use the default one.

Возвращаемые значения

A string with result или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlDateFormatter::formatObject() examples

<?php
/* default timezone is irrelevant; timezone taken from the object */
ini_set('date.timezone', 'UTC');
/* default locale is taken from this ini setting */
ini_set('intl.default_locale', 'fr_FR');

$cal = IntlCalendar::fromDateTime("2013-06-06 17:05:06 Europe/Dublin");
echo "default:\n\t",
        IntlDateFormatter::formatObject($cal),
        "\n";

echo "long \$format (full):\n\t",
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL),
        "\n";

echo "array \$format (none, full):\n\t",
        IntlDateFormatter::formatObject($cal, array(
                IntlDateFormatter::NONE,
                IntlDateFormatter::FULL)),
        "\n";

echo "string \$format (d 'of' MMMM y):\n\t",
        IntlDateFormatter::formatObject($cal, "d 'of' MMMM y", 'en_US'),
        "\n";

echo "with DateTime:\n\t",
        IntlDateFormatter::formatObject(
                new DateTime("2013-09-09 09:09:09 Europe/Madrid"),
                IntlDateFormatter::FULL,
                'es_ES'),
        "\n";

Результат выполнения данного примера:

default:
    6 juin 2013 17:05:06
long $format (full):
    jeudi 6 juin 2013 17:05:06 heure d'ete irlandaise
array $format (none, full):
    17:05:06 heure d'ete irlandaise
string $format (d 'of' MMMM y):
    6 of June 2013
with DateTime:
    lunes, 9 de septiembre de 2013 09:09:09 Hora de verano de Europa central


Get the calendar type used for the IntlDateFormatter

  • « IntlDateFormatter::formatObject
  • IntlDateFormatter::getDateType »
  • PHP Manual
  • IntlDateFormatter
  • Get the calendar type used for the IntlDateFormatter

IntlDateFormatter::getCalendar

datefmt_get_calendar

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getCalendar -- datefmt_get_calendar — Get the calendar type used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

int IntlDateFormatter::getCalendar ( void )

Процедурный стиль

int datefmt_get_calendar ( IntlDateFormatter $fmt )

Список параметров

fmt

The formatter resource

Возвращаемые значения

The calendar type being used by the formatter. Either IntlDateFormatter::TRADITIONAL or IntlDateFormatter::GREGORIAN.

Примеры

Пример #1 datefmt_get_calendar() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . datefmt_get_calendar($fmt);
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . $fmt->getCalendar();

?>

Результат выполнения данного примера:

calendar of the formatter is : 1
Now calendar of the formatter is : 0

Смотрите также

  • datefmt_get_calendar_object() - Get copy of formatter?s calendar object
  • datefmt_set_calendar() - Sets the calendar type used by the formatter
  • datefmt_create() - Create a date formatter


Get the datetype used for the IntlDateFormatter

  • « IntlDateFormatter::getCalendar
  • IntlDateFormatter::getErrorCode »
  • PHP Manual
  • IntlDateFormatter
  • Get the datetype used for the IntlDateFormatter

IntlDateFormatter::getDateType

datefmt_get_datetype

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getDateType -- datefmt_get_datetype — Get the datetype used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public int IntlDateFormatter::getDateType ( void )

Процедурный стиль

int datefmt_get_datetype ( IntlDateFormatter $fmt )

Returns date type used by the formatter.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

The current date type value of the formatter.

Примеры

Пример #1 datefmt_get_datetype() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'datetype of the formatter is : ' . datefmt_get_datetype($fmt);
echo 'First Formatted output with datetype is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::SHORT,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now datetype of the formatter is : ' . datefmt_get_datetype($fmt);
echo 'Second Formatted output with datetype is ' . datefmt_format($fmt, 0);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'datetype of the formatter is : ' . $fmt->getDateType();
echo 'First Formatted output is ' . $fmt->format(0);
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::SHORT,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now datetype of the formatter is : ' . $fmt->getDateType();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Результат выполнения данного примера:

datetype of the formatter is : 0
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Now datetype of the formatter is : 2
Second Formatted output is 12/31/69 4:00:00 PM PT

Смотрите также

  • datefmt_get_timetype() - Get the timetype used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Get the error code from last operation

  • « IntlDateFormatter::getDateType
  • IntlDateFormatter::getErrorMessage »
  • PHP Manual
  • IntlDateFormatter
  • Get the error code from last operation

IntlDateFormatter::getErrorCode

datefmt_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorCode -- datefmt_get_error_code — Get the error code from last operation

Описание

Объектно-ориентированный стиль

public int IntlDateFormatter::getErrorCode ( void )

Процедурный стиль

int datefmt_get_error_code ( IntlDateFormatter $fmt )

Get the error code from last operation. Returns error code from the last number formatting operation.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

The error code, one of UErrorCode values. Initial value is U_ZERO_ERROR.

Примеры

Пример #1 datefmt_get_error_code() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt);
if (!$str) {
    printf(
        "ERROR: %s (%d)\n",
        datefmt_get_error_message($fmt),
        datefmt_get_error_code($fmt)
    );
}
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = $fmt->format();
if (!$str) {
    printf(
        "ERROR: %s (%d)\n",
        $fmt->getErrorMessage(),
        $fmt->getErrorCode()
    );
}
?>

Результат выполнения данного примера:

ERROR: U_ZERO_ERROR (0)

Смотрите также

  • datefmt_get_error_message() - Get the error text from the last operation.
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get the error text from the last operation.

  • « IntlDateFormatter::getErrorCode
  • IntlDateFormatter::getLocale »
  • PHP Manual
  • IntlDateFormatter
  • Get the error text from the last operation.

IntlDateFormatter::getErrorMessage

datefmt_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getErrorMessage -- datefmt_get_error_message — Get the error text from the last operation.

Описание

Объектно-ориентированный стиль

public string IntlDateFormatter::getErrorMessage ( void )

Процедурный стиль

string datefmt_get_error_message ( IntlDateFormatter $fmt )

Get the error text from the last operation.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

Description of the last error.

Примеры

Пример #1 datefmt_get_error_message() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = datefmt_format($fmt);
if (!$str) {
    prtinf(
        "ERROR: %s (%d)\n",
        datefmt_get_error_message($fmt),
        datefmt_get_error_code($fmt)
    );
}
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$str = $fmt->format();
if(!$str) {
    prtinf(
        "ERROR: %s (%d)\n",
        $fmt->getErrorMessage(),
        $fmt->getErrorCode()
    );
}

?>

Результат выполнения данного примера:

ERROR: U_ZERO_ERROR (0)

Смотрите также

  • datefmt_get_error_code() - Get the error code from last operation
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя


Get the locale used by formatter

  • « IntlDateFormatter::getErrorMessage
  • IntlDateFormatter::getPattern »
  • PHP Manual
  • IntlDateFormatter
  • Get the locale used by formatter

IntlDateFormatter::getLocale

datefmt_get_locale

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getLocale -- datefmt_get_locale — Get the locale used by formatter

Описание

Объектно-ориентированный стиль

public string IntlDateFormatter::getLocale ([ int $which ] )

Процедурный стиль

string datefmt_get_locale ( IntlDateFormatter $fmt [, int $which ] )

Get locale used by the formatter.

Список параметров

fmt

The formatter resource

hich

You can choose between valid and actual locale ( Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE, respectively). The default is the actual locale.

Возвращаемые значения

the locale of this formatter or 'false' if error

Примеры

Пример #1 datefmt_get_locale() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : " . datefmt_get_locale($fmt);
echo 'First Formatted output is " . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : ' . datefmt_get_locale($fmt);
echo 'Second Formatted output is ' . datefmt_format($fmt, 0);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : ' . $fmt->getLocale();
echo 'First Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'locale of the formatter is : ' . $fmt->getLocale();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Результат выполнения данного примера:

locale of the formatter is : en
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
locale of the formatter is : de
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00

Смотрите также

  • datefmt_create() - Create a date formatter


Get the pattern used for the IntlDateFormatter

  • « IntlDateFormatter::getLocale
  • IntlDateFormatter::getTimeType »
  • PHP Manual
  • IntlDateFormatter
  • Get the pattern used for the IntlDateFormatter

IntlDateFormatter::getPattern

datefmt_get_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getPattern -- datefmt_get_pattern — Get the pattern used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public string IntlDateFormatter::getPattern ( void )

Процедурный стиль

string datefmt_get_pattern ( IntlDateFormatter $fmt )

Get pattern used by the formatter.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

The pattern string being used to format/parse.

Примеры

Пример #1 datefmt_get_pattern() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'First Formatted output with pattern is ' . datefmt_format($fmt, 0);
datefmt_set_pattern($fmt,'yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'Second Formatted output with pattern is ' . datefmt_format($fmt, 0);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . $fmt->getPattern();
echo 'First Formatted output is ' . $fmt->format(0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . $fmt->getPattern();
echo 'Second Formatted output is ' . $fmt->format(0);
?>

Результат выполнения данного примера:

pattern of the formatter is : MM/dd/yyyy
First Formatted output is 12/31/1969
Now pattern of the formatter is : yyyymmdd hh:mm:ss z
Second Formatted output is 19690031 04:00:00 PST

Смотрите также

  • datefmt_set_pattern() - Set the pattern used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Get the timetype used for the IntlDateFormatter

  • « IntlDateFormatter::getPattern
  • IntlDateFormatter::getTimeZoneId »
  • PHP Manual
  • IntlDateFormatter
  • Get the timetype used for the IntlDateFormatter

IntlDateFormatter::getTimeType

datefmt_get_timetype

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeType -- datefmt_get_timetype — Get the timetype used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public int IntlDateFormatter::getTimeType ( void )

Процедурный стиль

int datefmt_get_timetype ( IntlDateFormatter $fmt )

Return time type used by the formatter.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

The current date type value of the formatter.

Примеры

Пример #1 datefmt_get_timetype() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timetype of the formatter is : ' . datefmt_get_timetype($fmt);
echo 'First Formatted output with timetype is ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::SHORT,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now timetype of the formatter is : ' . datefmt_get_timetype($fmt);
echo 'Second Formatted output with timetype is ' . datefmt_format($fmt, 0);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timetype of the formatter is : ' . $fmt->getTimeType();
echo 'First Formatted output is ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::SHORT,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Now timetype of the formatter is : ' . $fmt->getTimeType();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Результат выполнения данного примера:

timetype of the formatter is : 0
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Now timetype of the formatter is : 3
Second Formatted output is Wednesday, December 31, 1969 4:00 PM

Смотрите также

  • datefmt_get_datetype() - Get the datetype used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Get the timezone-id used for the IntlDateFormatter

  • « IntlDateFormatter::getTimeType
  • IntlDateFormatter::getCalendarObject »
  • PHP Manual
  • IntlDateFormatter
  • Get the timezone-id used for the IntlDateFormatter

IntlDateFormatter::getTimeZoneId

datefmt_get_timezone_id

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::getTimeZoneId -- datefmt_get_timezone_id — Get the timezone-id used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public string IntlDateFormatter::getTimeZoneId ( void )

Процедурный стиль

string datefmt_get_timezone_id ( IntlDateFormatter $fmt )

Get the timezone-id used for the IntlDateFormatter.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

ID string for the time zone used by this formatter.

Примеры

Пример #1 datefmt_get_timezone_id() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timezone_id of the formatter is : ' . datefmt_get_timezone_id($fmt);
datefmt_set_timezone_id($fmt, 'CN');
echo 'Now timezone_id of the formatter is : ' . datefmt_get_timezone_id($fmt);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timezone_id of the formatter is : ' . $fmt->getTimezoneId();
$fmt->setTimezoneId('CN');
echo 'Now timezone_id of the formatter is : ' . $fmt->getTimezoneId();

?>

Результат выполнения данного примера:

timezone_id of the formatter is : America/Los_Angeles
Now timezone_id of the formatter is : CN

Смотрите также

  • datefmt_set_timezone_id() - Sets the time zone to use
  • datefmt_create() - Create a date formatter


Get copy of formatter?s calendar object

  • « IntlDateFormatter::getTimeZoneId
  • IntlDateFormatter::getTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Get copy of formatter?s calendar object

IntlDateFormatter::getCalendarObject

datefmt_get_calendar_object

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::getCalendarObject -- datefmt_get_calendar_object — Get copy of formatter?s calendar object

Описание

Объектно-ориентированный стиль

public IntlCalendar IntlDateFormatter::getCalendarObject ( void )

Процедурный стиль

IntlCalendar datefmt_get_calendar_object ( void )

Obtain a copy of the calendar object used internally by this formatter. This calendar will have a type (as in gregorian, japanese, buddhist, roc, persian, islamic, etc.) and a timezone that match the type and timezone used by the formatter. The date/time of the object is unspecified.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A copy of the internal calendar object used by this formatter.

Примеры

Пример #1 IntlDateFormatter::getCalendarObject() example

<?php
$formatter = IntlDateFormatter::create(
    "fr_FR@calendar=islamic",
    NULL,
    NULL,
    "GMT-01:00",
    IntlDateFormatter::TRADITIONAL
);

$cal = $formatter->getCalendarObject();

var_dump(
    $cal->getType(),
    $cal->getTimeZone(),
    $cal->getLocale(Locale::VALID_LOCALE)
);

Результат выполнения данного примера:

string(7) "islamic"
object(IntlTimeZone)#3 (4) {
  ["valid"]=>
  bool(true)
  ["id"]=>
  string(9) "GMT-01:00"
  ["rawOffset"]=>
  int(-3600000)
  ["currentOffset"]=>
  int(-3600000)
}
string(5) "fr_FR"

Смотрите также

  • IntlDateFormatter::getCalendar() - Get the calendar type used for the IntlDateFormatter
  • IntlDateFormatter::setCalendar() - Sets the calendar type used by the formatter
  • IntlCalendar


Get formatter?s timezone

  • « IntlDateFormatter::getCalendarObject
  • IntlDateFormatter::isLenient »
  • PHP Manual
  • IntlDateFormatter
  • Get formatter?s timezone

IntlDateFormatter::getTimeZone

datefmt_get_timezone

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::getTimeZone -- datefmt_get_timezone — Get formatter?s timezone

Описание

Объектно-ориентированный стиль

public IntlTimeZone IntlDateFormatter::getTimeZone ( void )

Процедурный стиль

IntlTimeZone datefmt_get_timezone ( void )

Returns an IntlTimeZone object representing the timezone that will be used by this object to format dates and times. When formatting IntlCalendar and DateTime objects with this IntlDateFormatter, the timezone used will be the one returned by this method, not the one associated with the objects being formatted.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The associated IntlTimeZone object или FALSE в случае возникновения ошибки.

Примеры

Пример #1 IntlDateFormatter::getTimeZone() examples

<?php

$madrid = IntlDateFormatter::create(NULL, NULL, NULL, 'Europe/Madrid');
$lisbon = IntlDateFormatter::create(NULL, NULL, NULL, 'Europe/Lisbon');

var_dump($madrid->getTimezone());
echo $madrid->getTimezone()->getDisplayName(
        false, IntlTimeZone::DISPLAY_GENERIC_LOCATION, "en_US"), "\n";
echo $lisbon->getTimeZone()->getId(), "\n";
//The id can also be retrieved with ->getTimezoneId()
echo $lisbon->getTimeZoneId(), "\n";

Результат выполнения данного примера:

object(IntlTimeZone)#4 (4) {
  ["valid"]=>
  bool(true)
  ["id"]=>
  string(13) "Europe/Madrid"
  ["rawOffset"]=>
  int(3600000)
  ["currentOffset"]=>
  int(7200000)
}
Spain Time
Europe/Lisbon
Europe/Lisbon

Смотрите также

  • IntlDateFormatter::getTimeZoneId() - Get the timezone-id used for the IntlDateFormatter
  • IntlDateFormatter::setTimeZone() - Sets formatter?s timezone
  • IntlTimeZone


Get the lenient used for the IntlDateFormatter

  • « IntlDateFormatter::getTimeZone
  • IntlDateFormatter::localtime »
  • PHP Manual
  • IntlDateFormatter
  • Get the lenient used for the IntlDateFormatter

IntlDateFormatter::isLenient

datefmt_is_lenient

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::isLenient -- datefmt_is_lenient — Get the lenient used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public bool IntlDateFormatter::isLenient ( void )

Процедурный стиль

bool datefmt_is_lenient ( IntlDateFormatter $fmt )

Check if the parser is strict or lenient in interpreting inputs that do not match the pattern exactly.

Список параметров

fmt

The formatter resource.

Возвращаемые значения

TRUE if parser is lenient, FALSE if parser is strict. By default the parser is lenient.

Примеры

Пример #1 datefmt_is_lenient() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/mm/yyyy'
);
echo 'lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}
datefmt_set_lenient($fmt,false);
echo 'Now lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Trying to do parse('35/13/1971').Result is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    "dd/mm/yyyy"
);
echo "lenient of the formatter is : ";
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0){
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo 'Now lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

?>

Результат выполнения данного примера:

lenient of the formatter is : TRUE
Trying to do parse('35/13/1971').
Result is : -2147483
Now lenient of the formatter is : FALSE
Trying to do parse('35/13/1971').
Result is :
Error_msg is : Date parsing failed: U_PARSE_ERROR
Error_code is : 9

Смотрите также

  • datefmt_set_lenient() - Set the leniency of the parser
  • datefmt_create() - Create a date formatter


Parse string to a field-based time value

  • « IntlDateFormatter::isLenient
  • IntlDateFormatter::parse »
  • PHP Manual
  • IntlDateFormatter
  • Parse string to a field-based time value

IntlDateFormatter::localtime

datefmt_localtime

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::localtime -- datefmt_localtime — Parse string to a field-based time value

Описание

Объектно-ориентированный стиль

public array IntlDateFormatter::localtime ( string $value [, int &$position ] )

Процедурный стиль

array datefmt_localtime ( IntlDateFormatter $fmt , string $value [, int &$position ] )

Converts string $value to a field-based time value ( an array of various fields), starting at $parse_pos and consuming as much of the input value as possible.

Список параметров

fmt

The formatter resource

value

string to convert to a time

position

Position at which to start the parsing in $value (zero-based). If no error occurs before $value is consumed, $parse_pos will contain -1 otherwise it will contain the position at which parsing ended . If $parse_pos > strlen($value), the parse fails immediately.

Возвращаемые значения

Localtime compatible array of integers : contains 24 hour clock value in tm_hour field

Примеры

Пример #1 datefmt_localtime() example

<?php

$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$arr = datefmt_localtime($fmt, 'Wednesday, December 31, 1969 4:00:00 PM PT', 0);
echo 'First parsed output is ';
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
$arr = $fmt->localtime('Wednesday, December 31, 1969 4:00:00 PM PT', 0);
echo 'First parsed output is ';
if ($arr) {
    foreach ($arr as $key => $value) {
        echo "$key : $value , ";
    }
}

?>

Результат выполнения данного примера:

First parsed output is tm_sec : 0 , tm_min : 0 , tm_hour : 16 , tm_year : 1969 ,
tm_mday : 31 , tm_wday : 4 , tm_yday : 365 , tm_mon : 11 , tm_isdst : 0 ,

Смотрите также

  • datefmt_create() - Create a date formatter
  • datefmt_format() - Format the date/time value as a string
  • datefmt_parse() - Parse string to a timestamp value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation.


Parse string to a timestamp value

  • « IntlDateFormatter::localtime
  • IntlDateFormatter::setCalendar »
  • PHP Manual
  • IntlDateFormatter
  • Parse string to a timestamp value

IntlDateFormatter::parse

datefmt_parse

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::parse -- datefmt_parse — Parse string to a timestamp value

Описание

Объектно-ориентированный стиль

public int IntlDateFormatter::parse ( string $value [, int &$position ] )

Процедурный стиль

int datefmt_parse ( IntlDateFormatter $fmt , string $value [, int &$position ] )

Converts string $value to an incremental time value, starting at $parse_pos and consuming as much of the input value as possible.

Список параметров

fmt

The formatter resource

value

string to convert to a time

position

Position at which to start the parsing in $value (zero-based). If no error occurs before $value is consumed, $parse_pos will contain -1 otherwise it will contain the position at which parsing ended (and the error occurred). This variable will contain the end position if the parse fails. If $parse_pos > strlen($value), the parse fails immediately.

Возвращаемые значения

timestamp parsed value, or FALSE if value can't be parsed.

Примеры

Пример #1 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First parsed output is ' . $fmt->parse('Wednesday, December 20, 1989 4:00:00 PM PT');
$fmt = new IntlDateFormatter(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
?>

Пример #2 datefmt_parse() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'First parsed output is ' . datefmt_parse($fmt, 'Wednesday, December 20, 1989 4:00:00 PM PT');
$fmt = datefmt_create(
    'de-DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'Second parsed output is ' . datefmt_parse($fmt, 'Mittwoch, 20. Dezember 1989 16:00 Uhr GMT-08:00');
?

Результат выполнения данного примера:

First parsed output is 630201600
Second parsed output is 630201600

Смотрите также

  • datefmt_create() - Create a date formatter
  • datefmt_format() - Format the date/time value as a string
  • datefmt_localtime() - Parse string to a field-based time value
  • datefmt_get_error_code() - Get the error code from last operation
  • datefmt_get_error_message() - Get the error text from the last operation.


Sets the calendar type used by the formatter

  • « IntlDateFormatter::parse
  • IntlDateFormatter::setLenient »
  • PHP Manual
  • IntlDateFormatter
  • Sets the calendar type used by the formatter

IntlDateFormatter::setCalendar

datefmt_set_calendar

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendar — Sets the calendar type used by the formatter

Описание

Объектно-ориентированный стиль

bool IntlDateFormatter::setCalendar ( mixed $which )

Процедурный стиль

bool datefmt_set_calendar ( IntlDateFormatter $fmt , mixed $which )

Sets the calendar or calendar type used by the formatter.

Список параметров

fmt

The formatter resource.

which

This can either be: the calendar type to use (default is IntlDateFormatter::GREGORIAN, which is also used if NULL is specified) or an IntlCalendar object.

Any IntlCalendar object passed in will be cloned; no modifications will be made to the argument object.

The timezone of the formatter will only be kept if an IntlCalendar object is not passed, otherwise the new timezone will be that of the passed object.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0/PECL 3.0.0 | It became possible to pass an IntlCalendar object.

Примеры

Пример #1 datefmt_set_calendar() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . datefmt_get_calendar($fmt);
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'calendar of the formatter is : ' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo 'Now calendar of the formatter is : ' . $fmt->getCalendar();
?>

Результат выполнения данного примера:

calendar of the formatter is : 1
Now calendar of the formatter is : 0

Пример #3 Example with IntlCalendar argument

<?php
$time = strtotime("2013-03-03 00:00:00 UTC");
$formatter = IntlDateFormatter::create("en_US", NULL, NULL, "Europe/Amsterdam");

echo "before: ", $formatter->format($time), "\n";

/* note that the calendar's locale is not used! */
$formatter->setCalendar(IntlCalendar::createInstance(
               "America/New_York", "pt_PT@calendar=islamic"));

echo "after:  ", $formatter->format($time), "\n";

Результат выполнения данного примера:

before: Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time
after:  Saturday, Rabi? II 20, 1434 at 7:00:00 PM Eastern Standard Time

Смотрите также

  • datefmt_get_calendar() - Get the calendar type used for the IntlDateFormatter
  • datefmt_get_calendar_object() - Get copy of formatter?s calendar object
  • datefmt_create() - Create a date formatter


Set the leniency of the parser

  • « IntlDateFormatter::setCalendar
  • IntlDateFormatter::setPattern »
  • PHP Manual
  • IntlDateFormatter
  • Set the leniency of the parser

IntlDateFormatter::setLenient

datefmt_set_lenient

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setLenient -- datefmt_set_lenient — Set the leniency of the parser

Описание

Объектно-ориентированный стиль

public bool IntlDateFormatter::setLenient ( bool $lenient )

Процедурный стиль

bool datefmt_set_lenient ( IntlDateFormatter $fmt , bool $lenient )

Define if the parser is strict or lenient in interpreting inputs that do not match the pattern exactly. Enabling lenient parsing allows the parser to accept otherwise flawed date or time patterns, parsing as much as possible to obtain a value. Extra space, unrecognized tokens, or invalid values ("February 30th") are not accepted.

Список параметров

fmt

The formatter resource

lenient

Sets whether the parser is lenient or not, default is TRUE (lenient).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 datefmt_set_lenient() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/MM/yyyy'
);
echo 'lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}
datefmt_set_lenient($fmt, false);
echo "\nNow lenient of the formatter is : ";
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
datefmt_parse($fmt, '35/13/1971');
echo "\nTrying to do parse('35/13/1971').\nResult is : " . datefmt_parse($fmt, '35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : ".intl_get_error_message();
    echo "\nError_code is : ".intl_get_error_code();
}

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'dd/MM/yyyy'
);
echo 'lenient of the formatter is : ';
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

$fmt->setLenient(FALSE);
echo "\nNow lenient of the formatter is : ";
if ($fmt->isLenient()) {
    echo 'TRUE';
} else {
    echo 'FALSE';
}
$fmt->parse('35/13/1971');
echo "\n Trying to do parse('35/13/1971').\nResult is : " . $fmt->parse('35/13/1971');
if (intl_get_error_code() != 0) {
    echo "\nError_msg is : " . intl_get_error_message();
    echo "\nError_code is : " . intl_get_error_code();
}

?>

Результат выполнения данного примера:

lenient of the formatter is : TRUE
Trying to do parse('35/13/1971').
Result is : 66038400
Now lenient of the formatter is : FALSE
Trying to do parse('35/13/1971').
Result is :
Error_msg is : Date parsing failed: U_PARSE_ERROR
Error_code is : 9

Смотрите также

  • datefmt_is_lenient() - Get the lenient used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Set the pattern used for the IntlDateFormatter

  • « IntlDateFormatter::setLenient
  • IntlDateFormatter::setTimeZoneId »
  • PHP Manual
  • IntlDateFormatter
  • Set the pattern used for the IntlDateFormatter

IntlDateFormatter::setPattern

datefmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlDateFormatter::setPattern -- datefmt_set_pattern — Set the pattern used for the IntlDateFormatter

Описание

Объектно-ориентированный стиль

public bool IntlDateFormatter::setPattern ( string $pattern )

Процедурный стиль

bool datefmt_set_pattern ( IntlDateFormatter $fmt , string $pattern )

Set the pattern used for the IntlDateFormatter.

Список параметров

fmt

The formatter resource.

pattern

New pattern string to use. Possible patterns are documented at » http://userguide.icu-project.org/formatparse/datetime.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Bad formatstrings are usually the cause of the failure.

Примеры

Пример #1 datefmt_set_pattern() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'First Formatted output with pattern is ' . datefmt_format($fmt, 0);
datefmt_set_pattern($fmt, 'yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . datefmt_get_pattern($fmt);
echo 'Second Formatted output with pattern is ' . datefmt_format($fmt, 0);

?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN,
    'MM/dd/yyyy'
);
echo 'pattern of the formatter is : ' . $fmt->getPattern();
echo 'First Formatted output is ' . $fmt->format(0);
$fmt->setPattern('yyyymmdd hh:mm:ss z');
echo 'Now pattern of the formatter is : ' . $fmt->getPattern();
echo 'Second Formatted output is ' . $fmt->format(0);

?>

Результат выполнения данного примера:

pattern of the formatter is : MM/dd/yyyy
First Formatted output with pattern is 12/31/1969
Now pattern of the formatter is : yyyymmdd hh:mm:ss z
Second Formatted output with pattern is 19690031 04:00:00 PST

Смотрите также

  • datefmt_get_pattern() - Get the pattern used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Sets the time zone to use

  • « IntlDateFormatter::setPattern
  • IntlDateFormatter::setTimeZone »
  • PHP Manual
  • IntlDateFormatter
  • Sets the time zone to use

IntlDateFormatter::setTimeZoneId

datefmt_set_timezone_id

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setTimeZoneId -- datefmt_set_timezone_id — Sets the time zone to use

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.5.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • IntlDateFormatter::setTimeZone()

Описание

Объектно-ориентированный стиль

public bool IntlDateFormatter::setTimeZoneId ( string $zone )

Процедурный стиль

bool datefmt_set_timezone_id ( IntlDateFormatter $fmt , string $zone )

Sets the time zone to use.

Список параметров

fmt

The formatter resource.

zone

The time zone ID string of the time zone to use. If NULL or the empty string, the default time zone for the runtime is used.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | This function has been removed.
5.5.0 | This function has been deprecated.

Примеры

Пример #1 datefmt_set_timezone_id() example

<?php
$fmt = datefmt_create(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timezone_id of the formatter is : ' . datefmt_get_timezone_id($fmt);
datefmt_set_timezone_id($fmt, 'CN');
echo 'Now timezone_id of the formatter is : ' . datefmt_get_timezone_id($fmt);
?>

Пример #2 OO example

<?php
$fmt = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'America/Los_Angeles',
    IntlDateFormatter::GREGORIAN
);
echo 'timezone_id of the formatter is : ' . $fmt->getTimezoneId();
$fmt->setTimezoneId('CN');
echo 'Now timezone_id of the formatter is : ' . $fmt->getTimezoneId();

?>

Результат выполнения данного примера:

timezone_id of the formatter is : America/Los_Angeles
Now timezone_id of the formatter is : CN

Смотрите также

  • datefmt_get_timezone_id() - Get the timezone-id used for the IntlDateFormatter
  • datefmt_create() - Create a date formatter


Sets formatter?s timezone

  • « IntlDateFormatter::setTimeZoneId
  • ResourceBundle »
  • PHP Manual
  • IntlDateFormatter
  • Sets formatter?s timezone

IntlDateFormatter::setTimeZone

datefmt_set_timezone

(PHP 5 >= 5.5.0, PHP 7, PECL intl >= 3.0.0)

IntlDateFormatter::setTimeZone -- datefmt_set_timezone — Sets formatter?s timezone

Описание

Объектно-ориентированный стиль

public boolean IntlDateFormatter::setTimeZone ( mixed $zone )

Процедурный стиль

boolean datefmt_set_timezone ( mixed $zone )

Sets the timezone that will be used when formatting dates or times with this object.

Список параметров

zone

The timezone to use for this formatter. This can be specified in the following forms:

  • Если NULL, то будет использована временная зона по умолчанию, заданная в ini-настроке date.timezone либо с помощью функции date_default_timezone_set() и возвращенная функцией date_default_timezone_get().

  • Объект класса IntlTimeZone.

  • Объект класса DateTimeZone. Его идентификатор будет извлечен и на его основе будет создан объект временной зоны ICU; временная зона будет сохранена в базе данных ICU, а не PHP.

  • Строка, являющаяся корректным идентификатором временной зоны ICU. Смотрите IntlTimeZone::createTimeZoneIDEnumeration(). "Сырые" смещения, типа "GMT+08:30", также поддерживаются.

Возвращаемые значения

Returns TRUE on success and FALSE on failure.

Примеры

Пример #1 IntlDateFormatter::setTimeZone() examples

<?php
ini_set('date.timezone', 'Europe/Amsterdam');

$formatter = IntlDateFormatter::create(NULL, NULL, NULL, "UTC");

$formatter->setTimeZone(NULL);
echo "NULL\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone(IntlTimeZone::createTimeZone('Europe/Lisbon'));
echo "IntlTimeZone\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone(new DateTimeZone('Europe/Paris'));
echo "DateTimeZone\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone('Europe/Rome');
echo "String\n    ", $formatter->getTimeZone()->getId(), "\n";

$formatter->setTimeZone('GMT+00:30');
print_r($formatter->getTimeZone());

Результат выполнения данного примера:

NULL
    Europe/Amsterdam
IntlTimeZone
    Europe/Lisbon
DateTimeZone
    Europe/Paris
String
    Europe/Rome
IntlTimeZone Object
(
    [valid] => 1
    [id] => GMT+00:30
    [rawOffset] => 1800000
    [currentOffset] => 1800000
)

Смотрите также

  • IntlDateFormatter::getTimeZone() - Get formatter?s timezone


Класс ResourceBundle

(PHP >= 5.3.2, PECL intl >= 2.0.0)

Введение

Локализованные програмные продукты часто нуждаются в наборах данных подготовленных в зависимости от текущей локали, например: сообщения, метки, шаблоны форматирования. Механизм ресурсов ICU позволяет задать наборы ресурсов, которые приложение может загрузить в зависимости от текущей локали и использовать унифицированным, не зависяцим от локами, образом.

Этот класс реализует доступ к файлам ресурсов ICU. Эти файлы являются бинарными массивами данных, которые ICU использует для хранения локализованных данных.

Пакет ресурсов ICU может содержать простые и сложные ресурсы. Сложные ресурсы - это контейнеры, которые могут быть индексированы как числами так и строками (аналогично массивам PHP). Простые ресурсы могут быть следующих типов: строки, целые, бинарные поля данных и целочисленные массивы.

ResourceBundleподдерживает прямой доступ к данным через синтаксис доступа к массивам и итерироваться через foreach, так же как и доступ через методы. В результате будет получено значение PHP для простых ресурсов и объекты ResourceBundle для сложных. Все ресурсы доступны только для чтения.

Обзор классов

ResourceBundle {
/* Методы */
public __construct ( string $locale , string $bundlename [, bool $fallback ] )
public int count ( void )
public static ResourceBundle create ( string $locale , string $bundlename [, bool $fallback ] )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public mixed get ( string|int $index )
public array getLocales ( string $bundlename )
}

Смотрите также

  • » Менеджер ресурсов 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.3.2, PECL intl >= 2.0.0)

ResourceBundle::count -- resourcebundle_count — Получить количество элементов в пакете

Описание

Объектно-ориентированный стиль

public int ResourceBundle::count ( void )

Процедурный стиль

int resourcebundle_count ( ResourceBundle $r )

Получает количество элементов в пакете.

Список параметров

r

Объект ResourceBundle.

Возвращаемые значения

Возвращает количество элементов в пакете.

Примеры

Пример #1 Пример использования resourcebundle_count()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo resourcebundle_count($r);
?>

Пример #2 Пример в объектно ориентированном стиле

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r->count();
?>

Результат выполнения данного примера:

42

Смотрите также

  • resourcebundle_get() - Получить данные из пакета


Создать пакет ресурсов

  • « ResourceBundle::count
  • ResourceBundle::getErrorCode »
  • PHP Manual
  • ResourceBundle
  • Создать пакет ресурсов

ResourceBundle::create

resourcebundle_create

ResourceBundle::__construct

(PHP >= 5.3.2, PECL intl >= 2.0.0)

ResourceBundle::create -- resourcebundle_create -- ResourceBundle::__construct — Создать пакет ресурсов

Описание

Объектно-ориентированный стиль (method)

public static ResourceBundle ResourceBundle::create ( string $locale , string $bundlename [, bool $fallback ] )

Процедурный стиль

ResourceBundle resourcebundle_create ( string $locale , string $bundlename [, bool $fallback ] )

Объектно-ориентированный стиль (constructor):

public ResourceBundle::__construct ( string $locale , string $bundlename [, bool $fallback ] )

Создает пакет ресурсов.

Список параметров

locale

Локаль для которой необходимо загружать ресурсы (имя локали, например ru_RU).

bundlename

Директория, в которой лежат даные, либо имя .dat файла.

fallback

Определяет, нужно ли точно придерживаться заданной локали или можно откатываться к родительской, если возможно.

Возвращаемые значения

Возвращает объект ResourceBundle или NULL в случае ошибки.

Примеры

Пример #1 Пример использования resourcebundle_create()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>

Пример #2 Пример использования ResourceBundle::create()

<?php
$r = ResourceBundle::create( 'es', "/usr/share/data/myapp");
echo $r['teststring'];
?>

Результат выполнения данного примера:

?Hola, mundo!

Смотрите также

  • resourcebundle_get() - Получить данные из пакета


Получить последний код ошибки пакета

  • « ResourceBundle::create
  • ResourceBundle::getErrorMessage »
  • PHP Manual
  • ResourceBundle
  • Получить последний код ошибки пакета

ResourceBundle::getErrorCode

resourcebundle_get_error_code

(PHP >= 5.3.2, PECL intl >= 2.0.0)

ResourceBundle::getErrorCode -- resourcebundle_get_error_code — Получить последний код ошибки пакета

Описание

Объектно-ориентированный стиль

public int ResourceBundle::getErrorCode ( void )

Процедурный стиль

int resourcebundle_get_error_code ( ResourceBundle $r )

Возвращает код последней ошибки возникшей при вызове функций пакета.

Список параметров

r

Объект ResourceBundle.

Возвращаемые значения

Возвращает код последней ошибки возникшей при вызове функций пакета.

Примеры

Пример #1 Пример использования resourcebundle_get_error_code()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(resourcebundle_get_error_code($r))) {
    report_error("Bundle error");
}
?>

Пример #2 Пример в объектно ориентированном стиле

<?php
$r = new ResourceBundle( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(ResourceBundle::getErrorCode($r))) {
    report_error("Bundle 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.3.2, PECL intl >= 2.0.0)

ResourceBundle::getErrorMessage -- resourcebundle_get_error_message — Получить последнее сообщение об ошибке пакета

Описание

Объектно-ориентированный стиль

public string ResourceBundle::getErrorMessage ( void )

Процедурный стиль

string resourcebundle_get_error_message ( ResourceBundle $r )

Возвращает последнее сообщение об ошибке при вызове функций пакета.

Список параметров

r

Объект ResourceBundle.

Возвращаемые значения

Возвращает последнее сообщение об ошибке при вызове функций пакета.

Примеры

Пример #1 Пример использования resourcebundle_get_error_message()

<?php
$r = resourcebundle_create( 'es', "/usr/share/data/myapp");
echo $r['somestring'];
if(intl_is_failure(resourcebundle_get_error_code($r))) {
    report_error("Bundle 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("Bundle 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.3.2, PECL intl >= 2.0.0)

ResourceBundle::get -- resourcebundle_get — Получить данные из пакета

Описание

Объектно-ориентированный стиль

public mixed ResourceBundle::get ( string|int $index )

Процедурный стиль

mixed resourcebundle_get ( ResourceBundle $r , string|int $index )

Возвращает данные из пакета по индексу или строковому ключу.

Список параметров

r

Объект ResourceBundle.

index

Data index, must be string or integer.

Возвращаемые значения

Возвращает данные из пакета по индексу или строковому ключу или 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.3.2, PECL intl >= 2.0.0)

ResourceBundle::getLocales -- resourcebundle_locales — Получить поддерживаемые локали

Описание

Объектно-ориентированный стиль

public array ResourceBundle::getLocales ( string $bundlename )

Процедурный стиль

array resourcebundle_locales ( string $bundlename )

Возвращает доступные в ResourceBundle локали.

Список параметров

bundlename

Путь к ResourceBundle или пустая строка, для получения списка по умолчанию.

Возвращаемые значения

Возвращает доступные в ResourceBundle локали.

Примеры

Пример #1 Пример использования resourcebundle_locales()

<?php
$bundle = "/user/share/data/myapp";
echo join(PHP_EOL, resourcebundle_locales($bundle));
?>

Результатом выполнения данного примера будет что-то подобное:

es
root

Пример #2 Пример в объектно ориентированном стиле

<?php
$bundle = "/usr/share/data/myapp";
$r = new ResourceBundle( 'es', $bundle);
echo join("\n", $r->getLocales($bundle));
?>

Результатом выполнения данного примера будет что-то подобное:

es
root

Смотрите также

  • resourcebundle_get() - Получить данные из пакета


Класс Spoofchecker

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Введение

Этот класс существует потому, что Unicode содержит большое количество символов и включает в себя различные системы письма со всего мира и их некорректное использование может сделать программы и системы уязвимыми к хакерским атакам, использующим сходство символов.

Предоставляемые методы позволяют проверить строку на предмет попыток обмануть пользователя (spoof detection), например вставить в слово "pаypаl" кириллический символ 'а'.

Обзор классов

Spoofchecker {
/* Константы */
const integer SINGLE_SCRIPT_CONFUSABLE = 1 ;
const integer MIXED_SCRIPT_CONFUSABLE = 2 ;
const integer WHOLE_SCRIPT_CONFUSABLE = 4 ;
const integer ANY_CASE = 8 ;
const integer SINGLE_SCRIPT = 16 ;
const integer INVISIBLE = 32 ;
const integer CHAR_LIMIT = 64 ;
/* Методы */
public bool areConfusable ( string $str1 , string $str2 [, string &$error ] )
public __construct ( void )
public bool isSuspicious ( string $text [, string &$error ] )
public void setAllowedLocales ( string $locale_list )
public void setChecks ( long $checks )
}

Предопределенные константы

Spoofchecker::SINGLE_SCRIPT_CONFUSABLE

Spoofchecker::MIXED_SCRIPT_CONFUSABLE

Spoofchecker::WHOLE_SCRIPT_CONFUSABLE

Spoofchecker::ANY_CASE

Spoofchecker::SINGLE_SCRIPT

Spoofchecker::INVISIBLE

Spoofchecker::CHAR_LIMIT

Содержание

  • Spoofchecker::areConfusable — Проверить, являются ли строки подозрительными
  • Spoofchecker::__construct — Конструктор класса
  • Spoofchecker::isSuspicious — Проверяет, содержит ли текст подозрительные символы
  • Spoofchecker::setAllowedLocales — Локаль для использования в проверках
  • Spoofchecker::setChecks — Установить набор проверок


Проверить, являются ли строки подозрительными

  • « Spoofchecker
  • Spoofchecker::__construct »
  • PHP Manual
  • Spoofchecker
  • Проверить, являются ли строки подозрительными

Spoofchecker::areConfusable

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Spoofchecker::areConfusable — Проверить, являются ли строки подозрительными

Описание

public bool Spoofchecker::areConfusable ( string $str1 , string $str2 [, string &$error ] )

Проверяет, на сколько легко перепутать две строки.

Список параметров

str1

Первая строка.

str2

Вторая строка.

error

Этот параметр передается по ссылке и заполняется строкой содержащей ошибку, если таковая есть.

Возвращаемые значения

Возвращает TRUE если две втроки легко перепутать и FALSE, если нет.

Примеры

Пример #1 Пример использования Spoofchecker::areConfusable()

<?php
$checker = new Spoofchecker();

$checker->areConfusable('google.com', 'goog1e.com'); // true
//Английскую строчную "l" легко перепутать с цифрой 1

$checker->areConfusable('google.com', 'g00g1e.com'); // false
// Ноль (0) сложно перепутать со строчной "o"


Конструктор класса

  • « Spoofchecker::areConfusable
  • Spoofchecker::isSuspicious »
  • PHP Manual
  • Spoofchecker
  • Конструктор класса

Spoofchecker::__construct

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Spoofchecker::__construct — Конструктор класса

Описание

public Spoofchecker::__construct ( void )

Создает экземпляр класса Spoofchecker.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экземпляр класса Spoofchecker.


Проверяет, содержит ли текст подозрительные символы

  • « Spoofchecker::__construct
  • Spoofchecker::setAllowedLocales »
  • PHP Manual
  • Spoofchecker
  • Проверяет, содержит ли текст подозрительные символы

Spoofchecker::isSuspicious

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Spoofchecker::isSuspicious — Проверяет, содержит ли текст подозрительные символы

Описание

public bool Spoofchecker::isSuspicious ( string $text [, string &$error ] )

Проверяет, содержит ли текст подозрительные символы, которые визуально идентичны, но являются при этом символами Unicode из другого языкового набора.

Список параметров

text

Строка для проверки.

error

Этот параметр передается по ссылке и заполняется строкой содержащей ошибку, если таковая есть.

Возвращаемые значения

Возвращает TRUE если содержит подозрительные символы и FALSE, если нет.

Примеры

Пример #1 Пример использования Spoofchecker::isSuspicious()

<?php
$checker = new Spoofchecker();

$checker->isSuspicious('google.com'); // false: только символы ASCII

$checker->isSuspicious('Рaypal.com'); // true
// Первая буква из кириллического набора, а не обычная латинская "P"


Локаль для использования в проверках

  • « Spoofchecker::isSuspicious
  • Spoofchecker::setChecks »
  • PHP Manual
  • Spoofchecker
  • Локаль для использования в проверках

Spoofchecker::setAllowedLocales

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Spoofchecker::setAllowedLocales — Локаль для использования в проверках

Описание

public void Spoofchecker::setAllowedLocales ( string $locale_list )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

locale_list

Возвращаемые значения


Установить набор проверок

  • « Spoofchecker::setAllowedLocales
  • Transliterator »
  • PHP Manual
  • Spoofchecker
  • Установить набор проверок

Spoofchecker::setChecks

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Spoofchecker::setChecks — Установить набор проверок

Описание

public void Spoofchecker::setChecks ( long $checks )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

checks

Возвращаемые значения


Класс Transliterator

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Введение

Данный класс предоставляет функционал транслитерации строк.

Обзор классов

Transliterator {
/* Константы */
const integer FORWARD = 0 ;
const integer REVERSE = 1 ;
/* Свойства */
public $id ;
/* Методы */
__construct ( void )
public static Transliterator create ( string $id [, int $direction ] )
public static Transliterator createFromRules ( string $rules [, string $direction ] )
public Transliterator createInverse ( void )
public int getErrorCode ( void )
public string getErrorMessage ( void )
public static array listIDs ( void )
public string transliterate ( string $subject [, int $start [, int $end ]] )
}

Свойства

id

Предопределенные константы

Transliterator::FORWARD

Transliterator::REVERSE

Содержание

  • Transliterator::__construct — Private constructor to deny instantiation
  • Transliterator::create — Create a transliterator
  • Transliterator::createFromRules — Create transliterator from rules
  • Transliterator::createInverse — Create an inverse transliterator
  • Transliterator::getErrorCode — Get last error code
  • Transliterator::getErrorMessage — Get last error message
  • Transliterator::listIDs — Get transliterator IDs
  • Transliterator::transliterate — Transliterate a string


Private constructor to deny instantiation

  • « Transliterator
  • Transliterator::create »
  • PHP Manual
  • Transliterator
  • Private constructor to deny instantiation

Transliterator::__construct

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::__construct — Private constructor to deny instantiation

Описание

Transliterator::__construct ( void )

This method should not be called. Its only purpose is to deny instantiation with the new operator.

Use the factory methods Transliterator::create() or Transliterator::createFromRules() instead.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method should not be executed. If it is (e.g. through reflection), then its return value is unspecified.

Смотрите также

  • Transliterator::create() - Create a transliterator
  • Transliterator::createFromRules() - Create transliterator from rules


Create a transliterator

  • « Transliterator::__construct
  • Transliterator::createFromRules »
  • PHP Manual
  • Transliterator
  • Create a transliterator

Transliterator::create

transliterator_create

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::create -- transliterator_create — Create a transliterator

Описание

Объектно-ориентированный стиль

public static Transliterator Transliterator::create ( string $id [, int $direction ] )

Процедурный стиль

Transliterator transliterator_create ( string $id [, int $direction ] )

Opens a Transliterator by id.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

id

The id.

direction

The direction, defaults to >Transliterator::FORWARD. May also be set to Transliterator::REVERSE.

Возвращаемые значения

Returns a Transliterator object on success, or NULL on failure.

Смотрите также

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::__construct() - Private constructor to deny instantiation


Create transliterator from rules

  • « Transliterator::create
  • Transliterator::createInverse »
  • PHP Manual
  • Transliterator
  • Create transliterator from rules

Transliterator::createFromRules

transliterator_create_from_rules

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::createFromRules -- transliterator_create_from_rules — Create transliterator from rules

Описание

Объектно-ориентированный стиль

public static Transliterator Transliterator::createFromRules ( string $rules [, string $direction ] )

Процедурный стиль

Transliterator transliterator_create_from_rules ( string $id [, int $direction ] )

Creates a Transliterator from rules.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

rules

The rules.

direction

The direction, defaults to >Transliterator::FORWARD. May also be set to Transliterator::REVERSE.

Возвращаемые значения

Returns a Transliterator object on success, or NULL on failure.

Смотрите также

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::create() - Create a transliterator


Create an inverse transliterator

  • « Transliterator::createFromRules
  • Transliterator::getErrorCode »
  • PHP Manual
  • Transliterator
  • Create an inverse transliterator

Transliterator::createInverse

transliterator_create_inverse

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::createInverse -- transliterator_create_inverse — Create an inverse transliterator

Описание

Объектно-ориентированный стиль

public Transliterator Transliterator::createInverse ( void )

Процедурный стиль

Transliterator transliterator_create_inverse ( void )

Opens the inverse transliterator.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a Transliterator object on success, or NULL on failure

Смотрите также

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::create() - Create a transliterator


Get last error code

  • « Transliterator::createInverse
  • Transliterator::getErrorMessage »
  • PHP Manual
  • Transliterator
  • Get last error code

Transliterator::getErrorCode

transliterator_get_error_code

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::getErrorCode -- transliterator_get_error_code — Get last error code

Описание

Объектно-ориентированный стиль

public int Transliterator::getErrorCode ( void )

Процедурный стиль

int transliterator_get_error_code ( void )

Gets the last error code for this transliterator.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The error code on success, or FALSE if none exists, or on failure.

Смотрите также

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::listIDs() - Get transliterator IDs


Get last error message

  • « Transliterator::getErrorCode
  • Transliterator::listIDs »
  • PHP Manual
  • Transliterator
  • Get last error message

Transliterator::getErrorMessage

transliterator_get_error_message

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::getErrorMessage -- transliterator_get_error_message — Get last error message

Описание

Объектно-ориентированный стиль

public string Transliterator::getErrorMessage ( void )

Процедурный стиль

string transliterator_get_error_message ( void )

Gets the last error message for this transliterator.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The error code on success, or FALSE if none exists, or on failure.

Смотрите также

  • Transliterator::getErrorCode() - Get last error code
  • Transliterator::listIDs() - Get transliterator IDs


Get transliterator IDs

  • « Transliterator::getErrorMessage
  • Transliterator::transliterate »
  • PHP Manual
  • Transliterator
  • Get transliterator IDs

Transliterator::listIDs

transliterator_list_ids

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::listIDs -- transliterator_list_ids — Get transliterator IDs

Описание

Объектно-ориентированный стиль

public static array Transliterator::listIDs ( void )

Процедурный стиль

array transliterator_list_ids ( void )

Returns an array with the registered transliterator IDs.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of registered transliterator IDs on success, или FALSE в случае возникновения ошибки.

Смотрите также

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::transliterate() - Transliterate a string


Transliterate a string

  • « Transliterator::listIDs
  • IntlBreakIterator »
  • PHP Manual
  • Transliterator
  • Transliterate a string

Transliterator::transliterate

transliterator_transliterate

(PHP >= 5.4.0, PECL intl >= 2.0.0)

Transliterator::transliterate -- transliterator_transliterate — Transliterate a string

Описание

Объектно-ориентированный стиль

public string Transliterator::transliterate ( string $subject [, int $start [, int $end ]] )

Процедурный стиль

transliterator_transliterate ( mixed $transliterator , string $subject [, int $start [, int $end ]] )

Transforms a string or part thereof using an ICU transliterator.

Список параметров

transliterator

In the procedural version, either a Transliterator or a string from which a Transliterator can be built.

subject

The string to be transformed.

start

The start index (in UTF-16 code units) from which the string will start to be transformed, inclusive. Indexing starts at 0. The text before will be left as is.

end

The end index (in UTF-16 code units) until which the string will be transformed, exclusive. Indexing starts at 0. The text after will be left as is.

Возвращаемые значения

The transfomed string on success, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Converting escaped UTF-16 code units

<?php
$s = "\u304A\u65E9\u3046\u3054\u3056\u3044\u307E\u3059";
echo transliterator_transliterate("Hex-Any/Java", $s), "\n";

//now the reverse operation with a supplementary character
$supplChar = html_entity_decode('&#x1D11E;');
echo mb_strlen($supplChar, "UTF-8"), "\n";
$encSupplChar = transliterator_transliterate("Any-Hex/Java", $supplChar);
//echoes two encoded UTF-16 code units
echo $encSupplChar, "\n";
//and back
echo transliterator_transliterate("Hex-Any/Java", $encSupplChar), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

????????
1
\uD834\uDD1E
??

Смотрите также

  • Transliterator::getErrorMessage() - Get last error message
  • Transliterator::__construct() - Private constructor to deny instantiation


Класс IntlBreakIterator

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Итератор прерывания (Break iterator) - это объект ICU предоставляющий методы для определения границ в тексте (например границы слова или предложения). В PHP класс IntlBreakIterator служит базовым классом для всех типов итераторов прерывания ICU. Есть и дополнительная функциональность, расширение intl может расширять этот класс подходящими подклассами, такими как IntlRuleBasedBreakIterator или IntlCodePointBreaIterator.

Этот класс реализует интерфейс Traversable. Traversing an Итерация IntlBreakIterator порождает неотрицательные целые значения, представляющие из себя успешное нахождение границ в тексте, и равные позиции найденного символа UTF-8 отсчитанной от начала текста (позиция первого символа равна 0). Ключи возвращенных значений представляют из себя последовательность натуральных чисел {0, 1, 2, ...}.

Обзор классов

IntlBreakIterator implements Traversable {
/* Константы */
const integer DONE = -1 ;
const integer WORD_NONE = 0 ;
const integer WORD_NONE_LIMIT = 100 ;
const integer WORD_NUMBER = 100 ;
const integer WORD_NUMBER_LIMIT = 200 ;
const integer WORD_LETTER = 200 ;
const integer WORD_LETTER_LIMIT = 300 ;
const integer WORD_KANA = 300 ;
const integer WORD_KANA_LIMIT = 400 ;
const integer WORD_IDEO = 400 ;
const integer WORD_IDEO_LIMIT = 500 ;
const integer LINE_SOFT = 0 ;
const integer LINE_SOFT_LIMIT = 100 ;
const integer LINE_HARD = 100 ;
const integer LINE_HARD_LIMIT = 200 ;
const integer SENTENCE_TERM = 0 ;
const integer SENTENCE_TERM_LIMIT = 100 ;
const integer SENTENCE_SEP = 100 ;
const integer SENTENCE_SEP_LIMIT = 200 ;
/* Методы */
private __construct ( void )
public static ReturnType createCharacterInstance ([ string $"locale" ] )
public static ReturnType createCodePointInstance ( void )
public static ReturnType createLineInstance ([ string $"locale" ] )
public static ReturnType createSentenceInstance ([ string $"locale" ] )
public static ReturnType createTitleInstance ([ string $"locale" ] )
public static ReturnType createWordInstance ([ string $"locale" ] )
public ReturnType current ( void )
public ReturnType first ( void )
public ReturnType following ( string $"offset" )
public ReturnType getErrorCode ( void )
ReturnType intl_get_error_code ( void )
public ReturnType getErrorMessage ( void )
ReturnType intl_get_error_message ( void )
public ReturnType getLocale ( string $"locale_type" )
public ReturnType getPartsIterator ([ string $"key_type" ] )
public ReturnType getText ( void )
public ReturnType isBoundary ( string $"offset" )
public ReturnType last ( void )
public ReturnType next ([ string $"offset" ] )
public ReturnType preceding ( string $"offset" )
public ReturnType previous ( void )
public ReturnType setText ( string $"text" )
}

Предопределенные константы

IntlBreakIterator::DONE

IntlBreakIterator::WORD_NONE

IntlBreakIterator::WORD_NONE_LIMIT

IntlBreakIterator::WORD_NUMBER

IntlBreakIterator::WORD_NUMBER_LIMIT

IntlBreakIterator::WORD_LETTER

IntlBreakIterator::WORD_LETTER_LIMIT

IntlBreakIterator::WORD_KANA

IntlBreakIterator::WORD_KANA_LIMIT

IntlBreakIterator::WORD_IDEO

IntlBreakIterator::WORD_IDEO_LIMIT

IntlBreakIterator::LINE_SOFT

IntlBreakIterator::LINE_SOFT_LIMIT

IntlBreakIterator::LINE_HARD

IntlBreakIterator::LINE_HARD_LIMIT

IntlBreakIterator::SENTENCE_TERM

IntlBreakIterator::SENTENCE_TERM_LIMIT

IntlBreakIterator::SENTENCE_SEP

IntlBreakIterator::SENTENCE_SEP_LIMIT

Содержание

  • IntlBreakIterator::__construct — Private constructor for disallowing instantiation
  • IntlBreakIterator::createCharacterInstance — Create break iterator for boundaries of combining character sequences
  • IntlBreakIterator::createCodePointInstance — Create break iterator for boundaries of code points
  • IntlBreakIterator::createLineInstance — Create break iterator for logically possible line breaks
  • IntlBreakIterator::createSentenceInstance — Create break iterator for sentence breaks
  • IntlBreakIterator::createTitleInstance — Create break iterator for title-casing breaks
  • IntlBreakIterator::createWordInstance — Create break iterator for word breaks
  • IntlBreakIterator::current — Get index of current position
  • IntlBreakIterator::first — Set position to the first character in the text
  • IntlBreakIterator::following — Advance the iterator to the first boundary following specified offset
  • IntlBreakIterator::getErrorCode — Get last error code on the object
  • IntlBreakIterator::getErrorMessage — Get last error message on the object
  • IntlBreakIterator::getLocale — Get the locale associated with the object
  • IntlBreakIterator::getPartsIterator — Create iterator for navigating fragments between boundaries
  • IntlBreakIterator::getText — Get the text being scanned
  • IntlBreakIterator::isBoundary — Tell whether an offset is a boundary?s offset
  • IntlBreakIterator::last — Set the iterator position to index beyond the last character
  • IntlBreakIterator::next — Advance the iterator the next boundary
  • IntlBreakIterator::preceding — Set the iterator position to the first boundary before an offset
  • IntlBreakIterator::previous — Set the iterator position to the boundary immediately before the current
  • IntlBreakIterator::setText — Set the text being scanned


Private constructor for disallowing instantiation

  • « IntlBreakIterator
  • IntlBreakIterator::createCharacterInstance »
  • PHP Manual
  • IntlBreakIterator
  • Private constructor for disallowing instantiation

IntlBreakIterator::__construct

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::__construct — Private constructor for disallowing instantiation

Описание

private IntlBreakIterator::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Create break iterator for boundaries of combining character sequences

  • « IntlBreakIterator::__construct
  • IntlBreakIterator::createCodePointInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for boundaries of combining character sequences

IntlBreakIterator::createCharacterInstance

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::createCharacterInstance — Create break iterator for boundaries of combining character sequences

Описание

public static ReturnType IntlBreakIterator::createCharacterInstance ([ string $"locale" ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"locale"

Возвращаемые значения


Create break iterator for boundaries of code points

  • « IntlBreakIterator::createCharacterInstance
  • IntlBreakIterator::createLineInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for boundaries of code points

IntlBreakIterator::createCodePointInstance

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::createCodePointInstance — Create break iterator for boundaries of code points

Описание

public static ReturnType IntlBreakIterator::createCodePointInstance ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Create break iterator for logically possible line breaks

  • « IntlBreakIterator::createCodePointInstance
  • IntlBreakIterator::createSentenceInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for logically possible line breaks

IntlBreakIterator::createLineInstance

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::createLineInstance — Create break iterator for logically possible line breaks

Описание

public static ReturnType IntlBreakIterator::createLineInstance ([ string $"locale" ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"locale"

Возвращаемые значения


Create break iterator for sentence breaks

  • « IntlBreakIterator::createLineInstance
  • IntlBreakIterator::createTitleInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for sentence breaks

IntlBreakIterator::createSentenceInstance

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::createSentenceInstance — Create break iterator for sentence breaks

Описание

public static ReturnType IntlBreakIterator::createSentenceInstance ([ string $"locale" ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"locale"

Возвращаемые значения


Create break iterator for title-casing breaks

  • « IntlBreakIterator::createSentenceInstance
  • IntlBreakIterator::createWordInstance »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for title-casing breaks

IntlBreakIterator::createTitleInstance

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::createTitleInstance — Create break iterator for title-casing breaks

Описание

public static ReturnType IntlBreakIterator::createTitleInstance ([ string $"locale" ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"locale"

Возвращаемые значения


Create break iterator for word breaks

  • « IntlBreakIterator::createTitleInstance
  • IntlBreakIterator::current »
  • PHP Manual
  • IntlBreakIterator
  • Create break iterator for word breaks

IntlBreakIterator::createWordInstance

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::createWordInstance — Create break iterator for word breaks

Описание

public static ReturnType IntlBreakIterator::createWordInstance ([ string $"locale" ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"locale"

Возвращаемые значения


Get index of current position

  • « IntlBreakIterator::createWordInstance
  • IntlBreakIterator::first »
  • PHP Manual
  • IntlBreakIterator
  • Get index of current position

IntlBreakIterator::current

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::current — Get index of current position

Описание

public ReturnType IntlBreakIterator::current ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Set position to the first character in the text

  • « IntlBreakIterator::current
  • IntlBreakIterator::following »
  • PHP Manual
  • IntlBreakIterator
  • Set position to the first character in the text

IntlBreakIterator::first

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::first — Set position to the first character in the text

Описание

public ReturnType IntlBreakIterator::first ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Advance the iterator to the first boundary following specified offset

  • « IntlBreakIterator::first
  • IntlBreakIterator::getErrorCode »
  • PHP Manual
  • IntlBreakIterator
  • Advance the iterator to the first boundary following specified offset

IntlBreakIterator::following

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::following — Advance the iterator to the first boundary following specified offset

Описание

public ReturnType IntlBreakIterator::following ( string $"offset" )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"offset"

Возвращаемые значения


Get last error code on the object

  • « IntlBreakIterator::following
  • IntlBreakIterator::getErrorMessage »
  • PHP Manual
  • IntlBreakIterator
  • Get last error code on the object

IntlBreakIterator::getErrorCode

intl_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlBreakIterator::getErrorCode -- intl_get_error_code — Get last error code on the object

Описание

Объектно-ориентированный стиль (method):

public ReturnType IntlBreakIterator::getErrorCode ( void )

Процедурный стиль:

ReturnType intl_get_error_code ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get last error message on the object

  • « IntlBreakIterator::getErrorCode
  • IntlBreakIterator::getLocale »
  • PHP Manual
  • IntlBreakIterator
  • Get last error message on the object

IntlBreakIterator::getErrorMessage

intl_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

IntlBreakIterator::getErrorMessage -- intl_get_error_message — Get last error message on the object

Описание

Объектно-ориентированный стиль (method):

public ReturnType IntlBreakIterator::getErrorMessage ( void )

Процедурный стиль:

ReturnType intl_get_error_message ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the locale associated with the object

  • « IntlBreakIterator::getErrorMessage
  • IntlBreakIterator::getPartsIterator »
  • PHP Manual
  • IntlBreakIterator
  • Get the locale associated with the object

IntlBreakIterator::getLocale

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::getLocale — Get the locale associated with the object

Описание

public ReturnType IntlBreakIterator::getLocale ( string $"locale_type" )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"locale_type"

Возвращаемые значения


Create iterator for navigating fragments between boundaries

  • « IntlBreakIterator::getLocale
  • IntlBreakIterator::getText »
  • PHP Manual
  • IntlBreakIterator
  • Create iterator for navigating fragments between boundaries

IntlBreakIterator::getPartsIterator

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::getPartsIterator — Create iterator for navigating fragments between boundaries

Описание

public ReturnType IntlBreakIterator::getPartsIterator ([ string $"key_type" ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"key_type"

Возвращаемые значения


Get the text being scanned

  • « IntlBreakIterator::getPartsIterator
  • IntlBreakIterator::isBoundary »
  • PHP Manual
  • IntlBreakIterator
  • Get the text being scanned

IntlBreakIterator::getText

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::getText — Get the text being scanned

Описание

public ReturnType IntlBreakIterator::getText ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Tell whether an offset is a boundary?s offset

  • « IntlBreakIterator::getText
  • IntlBreakIterator::last »
  • PHP Manual
  • IntlBreakIterator
  • Tell whether an offset is a boundary?s offset

IntlBreakIterator::isBoundary

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::isBoundary — Tell whether an offset is a boundary?s offset

Описание

public ReturnType IntlBreakIterator::isBoundary ( string $"offset" )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"offset"

Возвращаемые значения


Set the iterator position to index beyond the last character

  • « IntlBreakIterator::isBoundary
  • IntlBreakIterator::next »
  • PHP Manual
  • IntlBreakIterator
  • Set the iterator position to index beyond the last character

IntlBreakIterator::last

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::last — Set the iterator position to index beyond the last character

Описание

public ReturnType IntlBreakIterator::last ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Advance the iterator the next boundary

  • « IntlBreakIterator::last
  • IntlBreakIterator::preceding »
  • PHP Manual
  • IntlBreakIterator
  • Advance the iterator the next boundary

IntlBreakIterator::next

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::next — Advance the iterator the next boundary

Описание

public ReturnType IntlBreakIterator::next ([ string $"offset" ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"offset"

Возвращаемые значения


Set the iterator position to the first boundary before an offset

  • « IntlBreakIterator::next
  • IntlBreakIterator::previous »
  • PHP Manual
  • IntlBreakIterator
  • Set the iterator position to the first boundary before an offset

IntlBreakIterator::preceding

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::preceding — Set the iterator position to the first boundary before an offset

Описание

public ReturnType IntlBreakIterator::preceding ( string $"offset" )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"offset"

Возвращаемые значения


Set the iterator position to the boundary immediately before the current

  • « IntlBreakIterator::preceding
  • IntlBreakIterator::setText »
  • PHP Manual
  • IntlBreakIterator
  • Set the iterator position to the boundary immediately before the current

IntlBreakIterator::previous

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::previous — Set the iterator position to the boundary immediately before the current

Описание

public ReturnType IntlBreakIterator::previous ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Set the text being scanned

  • « IntlBreakIterator::previous
  • IntlRuleBasedBreakIterator »
  • PHP Manual
  • IntlBreakIterator
  • Set the text being scanned

IntlBreakIterator::setText

(Информация о версии неизвестна, возможно, только в SVN)

IntlBreakIterator::setText — Set the text being scanned

Описание

public ReturnType IntlBreakIterator::setText ( string $"text" )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"text"

Возвращаемые значения


Класс IntlRuleBasedBreakIterator

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Подкласс IntlBreakIterator, который реализует итератор прерываний ICU, чье поведение задано набором правил. Это наиболее часто используемый тип итератора прерываний.

Правила описаны в разделе » Руководство пользователя по анализу границ ICU.

Обзор классов

IntlRuleBasedBreakIterator extends IntlBreakIterator implements Traversable {
/* Константы */
const integer DONE = -1 ;
const integer WORD_NONE = 0 ;
const integer WORD_NONE_LIMIT = 100 ;
const integer WORD_NUMBER = 100 ;
const integer WORD_NUMBER_LIMIT = 200 ;
const integer WORD_LETTER = 200 ;
const integer WORD_LETTER_LIMIT = 300 ;
const integer WORD_KANA = 300 ;
const integer WORD_KANA_LIMIT = 400 ;
const integer WORD_IDEO = 400 ;
const integer WORD_IDEO_LIMIT = 500 ;
const integer LINE_SOFT = 0 ;
const integer LINE_SOFT_LIMIT = 100 ;
const integer LINE_HARD = 100 ;
const integer LINE_HARD_LIMIT = 200 ;
const integer SENTENCE_TERM = 0 ;
const integer SENTENCE_TERM_LIMIT = 100 ;
const integer SENTENCE_SEP = 100 ;
const integer SENTENCE_SEP_LIMIT = 200 ;
/* Методы */
public __construct ( string $rules [, string $areCompiled ] )
public ReturnType getBinaryRules ( void )
public ReturnType getRules ( void )
public ReturnType getRuleStatus ( void )
public ReturnType getRuleStatusVec ( void )
/* Наследуемые методы */
private IntlBreakIterator::__construct ( void )
public static ReturnType IntlBreakIterator::createCharacterInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createCodePointInstance ( void )
public static ReturnType IntlBreakIterator::createLineInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createSentenceInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createTitleInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createWordInstance ([ string $"locale" ] )
public ReturnType IntlBreakIterator::current ( void )
public ReturnType IntlBreakIterator::first ( void )
public ReturnType IntlBreakIterator::following ( string $"offset" )
public ReturnType IntlBreakIterator::getErrorCode ( void )
ReturnType intl_get_error_code ( void )
public ReturnType IntlBreakIterator::getErrorMessage ( void )
ReturnType intl_get_error_message ( void )
public ReturnType IntlBreakIterator::getLocale ( string $"locale_type" )
public ReturnType IntlBreakIterator::getPartsIterator ([ string $"key_type" ] )
public ReturnType IntlBreakIterator::getText ( void )
public ReturnType IntlBreakIterator::isBoundary ( string $"offset" )
public ReturnType IntlBreakIterator::last ( void )
public ReturnType IntlBreakIterator::next ([ string $"offset" ] )
public ReturnType IntlBreakIterator::preceding ( string $"offset" )
public ReturnType IntlBreakIterator::previous ( void )
public ReturnType IntlBreakIterator::setText ( string $"text" )
}

Предопределенные константы

IntlRuleBasedBreakIterator::DONE

IntlRuleBasedBreakIterator::WORD_NONE

IntlRuleBasedBreakIterator::WORD_NONE_LIMIT

IntlRuleBasedBreakIterator::WORD_NUMBER

IntlRuleBasedBreakIterator::WORD_NUMBER_LIMIT

IntlRuleBasedBreakIterator::WORD_LETTER

IntlRuleBasedBreakIterator::WORD_LETTER_LIMIT

IntlRuleBasedBreakIterator::WORD_KANA

IntlRuleBasedBreakIterator::WORD_KANA_LIMIT

IntlRuleBasedBreakIterator::WORD_IDEO

IntlRuleBasedBreakIterator::WORD_IDEO_LIMIT

IntlRuleBasedBreakIterator::LINE_SOFT

IntlRuleBasedBreakIterator::LINE_SOFT_LIMIT

IntlRuleBasedBreakIterator::LINE_HARD

IntlRuleBasedBreakIterator::LINE_HARD_LIMIT

IntlRuleBasedBreakIterator::SENTENCE_TERM

IntlRuleBasedBreakIterator::SENTENCE_TERM_LIMIT

IntlRuleBasedBreakIterator::SENTENCE_SEP

IntlRuleBasedBreakIterator::SENTENCE_SEP_LIMIT

Содержание

  • IntlRuleBasedBreakIterator::__construct — Create iterator from ruleset
  • IntlRuleBasedBreakIterator::getBinaryRules — Get the binary form of compiled rules
  • IntlRuleBasedBreakIterator::getRules — Get the rule set used to create this object
  • IntlRuleBasedBreakIterator::getRuleStatus — Get the largest status value from the break rules that determined the current break position
  • IntlRuleBasedBreakIterator::getRuleStatusVec — Get the status values from the break rules that determined the current break position


Create iterator from ruleset

  • « IntlRuleBasedBreakIterator
  • IntlRuleBasedBreakIterator::getBinaryRules »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Create iterator from ruleset

IntlRuleBasedBreakIterator::__construct

(Информация о версии неизвестна, возможно, только в SVN)

IntlRuleBasedBreakIterator::__construct — Create iterator from ruleset

Описание

public IntlRuleBasedBreakIterator::__construct ( string $rules [, string $areCompiled ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

"rules"

"areCompiled"

Возвращаемые значения


Get the binary form of compiled rules

  • « IntlRuleBasedBreakIterator::__construct
  • IntlRuleBasedBreakIterator::getRules »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Get the binary form of compiled rules

IntlRuleBasedBreakIterator::getBinaryRules

(Информация о версии неизвестна, возможно, только в SVN)

IntlRuleBasedBreakIterator::getBinaryRules — Get the binary form of compiled rules

Описание

public ReturnType IntlRuleBasedBreakIterator::getBinaryRules ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the rule set used to create this object

  • « IntlRuleBasedBreakIterator::getBinaryRules
  • IntlRuleBasedBreakIterator::getRuleStatus »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Get the rule set used to create this object

IntlRuleBasedBreakIterator::getRules

(Информация о версии неизвестна, возможно, только в SVN)

IntlRuleBasedBreakIterator::getRules — Get the rule set used to create this object

Описание

public ReturnType IntlRuleBasedBreakIterator::getRules ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the largest status value from the break rules that determined the current break position

  • « IntlRuleBasedBreakIterator::getRules
  • IntlRuleBasedBreakIterator::getRuleStatusVec »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Get the largest status value from the break rules that determined the current break position

IntlRuleBasedBreakIterator::getRuleStatus

(Информация о версии неизвестна, возможно, только в SVN)

IntlRuleBasedBreakIterator::getRuleStatus — Get the largest status value from the break rules that determined the current break position

Описание

public ReturnType IntlRuleBasedBreakIterator::getRuleStatus ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the status values from the break rules that determined the current break position

  • « IntlRuleBasedBreakIterator::getRuleStatus
  • IntlCodePointBreakIterator »
  • PHP Manual
  • IntlRuleBasedBreakIterator
  • Get the status values from the break rules that determined the current break position

IntlRuleBasedBreakIterator::getRuleStatusVec

(Информация о версии неизвестна, возможно, только в SVN)

IntlRuleBasedBreakIterator::getRuleStatusVec — Get the status values from the break rules that determined the current break position

Описание

public ReturnType IntlRuleBasedBreakIterator::getRuleStatusVec ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс IntlCodePointBreakIterator

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Этот итератор прерываний указывает на границы между кодами символов UTF-8.

Обзор классов

IntlCodePointBreakIterator extends IntlBreakIterator implements Traversable {
/* Константы */
const integer DONE = -1 ;
const integer WORD_NONE = 0 ;
const integer WORD_NONE_LIMIT = 100 ;
const integer WORD_NUMBER = 100 ;
const integer WORD_NUMBER_LIMIT = 200 ;
const integer WORD_LETTER = 200 ;
const integer WORD_LETTER_LIMIT = 300 ;
const integer WORD_KANA = 300 ;
const integer WORD_KANA_LIMIT = 400 ;
const integer WORD_IDEO = 400 ;
const integer WORD_IDEO_LIMIT = 500 ;
const integer LINE_SOFT = 0 ;
const integer LINE_SOFT_LIMIT = 100 ;
const integer LINE_HARD = 100 ;
const integer LINE_HARD_LIMIT = 200 ;
const integer SENTENCE_TERM = 0 ;
const integer SENTENCE_TERM_LIMIT = 100 ;
const integer SENTENCE_SEP = 100 ;
const integer SENTENCE_SEP_LIMIT = 200 ;
/* Методы */
public ReturnType getLastCodePoint ( void )
/* Наследуемые методы */
private IntlBreakIterator::__construct ( void )
public static ReturnType IntlBreakIterator::createCharacterInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createCodePointInstance ( void )
public static ReturnType IntlBreakIterator::createLineInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createSentenceInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createTitleInstance ([ string $"locale" ] )
public static ReturnType IntlBreakIterator::createWordInstance ([ string $"locale" ] )
public ReturnType IntlBreakIterator::current ( void )
public ReturnType IntlBreakIterator::first ( void )
public ReturnType IntlBreakIterator::following ( string $"offset" )
public ReturnType IntlBreakIterator::getErrorCode ( void )
ReturnType intl_get_error_code ( void )
public ReturnType IntlBreakIterator::getErrorMessage ( void )
ReturnType intl_get_error_message ( void )
public ReturnType IntlBreakIterator::getLocale ( string $"locale_type" )
public ReturnType IntlBreakIterator::getPartsIterator ([ string $"key_type" ] )
public ReturnType IntlBreakIterator::getText ( void )
public ReturnType IntlBreakIterator::isBoundary ( string $"offset" )
public ReturnType IntlBreakIterator::last ( void )
public ReturnType IntlBreakIterator::next ([ string $"offset" ] )
public ReturnType IntlBreakIterator::preceding ( string $"offset" )
public ReturnType IntlBreakIterator::previous ( void )
public ReturnType IntlBreakIterator::setText ( string $"text" )
}

Предопределенные константы

IntlCodePointBreakIterator::DONE

IntlCodePointBreakIterator::WORD_NONE

IntlCodePointBreakIterator::WORD_NONE_LIMIT

IntlCodePointBreakIterator::WORD_NUMBER

IntlCodePointBreakIterator::WORD_NUMBER_LIMIT

IntlCodePointBreakIterator::WORD_LETTER

IntlCodePointBreakIterator::WORD_LETTER_LIMIT

IntlCodePointBreakIterator::WORD_KANA

IntlCodePointBreakIterator::WORD_KANA_LIMIT

IntlCodePointBreakIterator::WORD_IDEO

IntlCodePointBreakIterator::WORD_IDEO_LIMIT

IntlCodePointBreakIterator::LINE_SOFT

IntlCodePointBreakIterator::LINE_SOFT_LIMIT

IntlCodePointBreakIterator::LINE_HARD

IntlCodePointBreakIterator::LINE_HARD_LIMIT

IntlCodePointBreakIterator::SENTENCE_TERM

IntlCodePointBreakIterator::SENTENCE_TERM_LIMIT

IntlCodePointBreakIterator::SENTENCE_SEP

IntlCodePointBreakIterator::SENTENCE_SEP_LIMIT

Содержание

  • IntlCodePointBreakIterator::getLastCodePoint — Получить последний код символа выданный при перемещении итератора вперед или назад


Получить последний код символа выданный при перемещении итератора вперед или назад

  • « IntlCodePointBreakIterator
  • IntlPartsIterator »
  • PHP Manual
  • IntlCodePointBreakIterator
  • Получить последний код символа выданный при перемещении итератора вперед или назад

IntlCodePointBreakIterator::getLastCodePoint

(Информация о версии неизвестна, возможно, только в SVN)

IntlCodePointBreakIterator::getLastCodePoint — Получить последний код символа выданный при перемещении итератора вперед или назад

Описание

public ReturnType IntlCodePointBreakIterator::getLastCodePoint ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс IntlPartsIterator

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Объекты данного класса можно получить из объектов IntlBreakIterator. Пока итератор прерывания предоставляет последовательность ограничителей, можно получить IntlPartsIterator для удобства получения текстовых фрагментов между двумя ограничителями.

Ключи могут представлять собой смещения от левого или правого ограничителя или могут быть просто последовательностью натуральных чисел. Смотри IntlBreakIterator::getPartsIterator().

Обзор классов

IntlPartsIterator extends IntlIterator implements Iterator {
/* Константы */
const integer KEY_SEQUENTIAL = 0 ;
const integer KEY_LEFT = 1 ;
const integer KEY_RIGHT = 2 ;
/* Методы */
public ReturnType getBreakIterator ( void )
/* Наследуемые методы */
public ReturnType IntlIterator::current ( void )
public ReturnType IntlIterator::key ( void )
public ReturnType IntlIterator::next ( void )
public ReturnType IntlIterator::rewind ( void )
public ReturnType IntlIterator::valid ( void )
}

Предопределенные константы

IntlPartsIterator::KEY_SEQUENTIAL

IntlPartsIterator::KEY_LEFT

IntlPartsIterator::KEY_RIGHT

Содержание

  • IntlPartsIterator::getBreakIterator — Получить IntlBreakIterator сохраняя итератор этой части


Получить IntlBreakIterator сохраняя итератор этой части

  • « IntlPartsIterator
  • UConverter »
  • PHP Manual
  • IntlPartsIterator
  • Получить IntlBreakIterator сохраняя итератор этой части

IntlPartsIterator::getBreakIterator

(Информация о версии неизвестна, возможно, только в SVN)

IntlPartsIterator::getBreakIterator — Получить IntlBreakIterator сохраняя итератор этой части

Описание

public ReturnType IntlPartsIterator::getBreakIterator ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс UConverter

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

Введение

Обзор классов

UConverter {
/* Константы */
const integer REASON_UNASSIGNED = 0 ;
const integer REASON_ILLEGAL = 1 ;
const integer REASON_IRREGULAR = 2 ;
const integer REASON_RESET = 3 ;
const integer REASON_CLOSE = 4 ;
const integer REASON_CLONE = 5 ;
const integer UNSUPPORTED_CONVERTER = -1 ;
const integer SBCS = 0 ;
const integer DBCS = 1 ;
const integer MBCS = 2 ;
const integer LATIN_1 = 3 ;
const integer UTF8 = 4 ;
const integer UTF16_BigEndian = 5 ;
const integer UTF16_LittleEndian = 6 ;
const integer UTF32_BigEndian = 7 ;
const integer UTF32_LittleEndian = 8 ;
const integer EBCDIC_STATEFUL = 9 ;
const integer ISO_2022 = 10 ;
const integer LMBCS_1 = 11 ;
const integer LMBCS_2 = 12 ;
const integer LMBCS_3 = 13 ;
const integer LMBCS_4 = 14 ;
const integer LMBCS_5 = 15 ;
const integer LMBCS_6 = 16 ;
const integer LMBCS_8 = 17 ;
const integer LMBCS_11 = 18 ;
const integer LMBCS_16 = 19 ;
const integer LMBCS_17 = 20 ;
const integer LMBCS_18 = 21 ;
const integer LMBCS_19 = 22 ;
const integer LMBCS_LAST = 22 ;
const integer HZ = 23 ;
const integer SCSU = 24 ;
const integer ISCII = 25 ;
const integer US_ASCII = 26 ;
const integer UTF7 = 27 ;
const integer BOCU1 = 28 ;
const integer UTF16 = 29 ;
const integer UTF32 = 30 ;
const integer CESU8 = 31 ;
const integer IMAP_MAILBOX = 32 ;
/* Методы */
public __construct ([ string $destination_encoding [, string $source_encoding ]] )
public string convert ( string $str [, bool $reverse ] )
public mixed fromUCallback ( integer $reason , string $source , string $codePoint , integer &$error )
public static array getAliases ([ string $name ] )
public static array getAvailable ( void )
public string getDestinationEncoding ( void )
public integer getDestinationType ( void )
public integer getErrorCode ( void )
public string getErrorMessage ( void )
public string getSourceEncoding ( void )
public integer getSourceType ( void )
public static array getStandards ( void )
public string getSubstChars ( void )
public static string reasonText ([ integer $reason ] )
public void setDestinationEncoding ( string $encoding )
public void setSourceEncoding ( string $encoding )
public void setSubstChars ( string $chars )
public mixed toUCallback ( integer $reason , string $source , string $codeUnits , integer &$error )
public static string transcode ( string $str , string $toEncoding , string $fromEncoding [, array $options ] )
}

Предопределенные константы

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 — Create UConverter object
  • UConverter::convert — Convert string from one charset to another
  • UConverter::fromUCallback — Default "from" callback function
  • UConverter::getAliases — Get the aliases of the given name
  • UConverter::getAvailable — Get the available canonical converter names
  • UConverter::getDestinationEncoding — Get the destination encoding
  • UConverter::getDestinationType — Get the destination converter type
  • UConverter::getErrorCode — Get last error code on the object
  • UConverter::getErrorMessage — Get last error message on the object
  • UConverter::getSourceEncoding — Get the source encoding
  • UConverter::getSourceType — Get the source convertor type
  • UConverter::getStandards — Get standards associated to converter names
  • UConverter::getSubstChars — Get substitution chars
  • UConverter::reasonText — Get string representation of the callback reason
  • UConverter::setDestinationEncoding — Set the destination encoding
  • UConverter::setSourceEncoding — Set the source encoding
  • UConverter::setSubstChars — Set the substitution chars
  • UConverter::toUCallback — Default "to" callback function
  • UConverter::transcode — Convert string from one charset to another


Create UConverter object

  • « UConverter
  • UConverter::convert »
  • PHP Manual
  • UConverter
  • Create UConverter object

UConverter::__construct

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::__construct — Create UConverter object

Описание

public UConverter::__construct ([ string $destination_encoding [, string $source_encoding ]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

destination_encoding

source_encoding

Возвращаемые значения


Convert string from one charset to another

  • « UConverter::__construct
  • UConverter::fromUCallback »
  • PHP Manual
  • UConverter
  • Convert string from one charset to another

UConverter::convert

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::convert — Convert string from one charset to another

Описание

public string UConverter::convert ( string $str [, bool $reverse ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

str

reverse

Возвращаемые значения


Default "from" callback function

  • « UConverter::convert
  • UConverter::getAliases »
  • PHP Manual
  • UConverter
  • Default "from" callback function

UConverter::fromUCallback

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::fromUCallback — Default "from" callback function

Описание

public mixed UConverter::fromUCallback ( integer $reason , string $source , string $codePoint , integer &$error )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reason

source

codePoint

error

Возвращаемые значения


Get the aliases of the given name

  • « UConverter::fromUCallback
  • UConverter::getAvailable »
  • PHP Manual
  • UConverter
  • Get the aliases of the given name

UConverter::getAliases

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getAliases — Get the aliases of the given name

Описание

public static array UConverter::getAliases ([ string $name ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Get the available canonical converter names

  • « UConverter::getAliases
  • UConverter::getDestinationEncoding »
  • PHP Manual
  • UConverter
  • Get the available canonical converter names

UConverter::getAvailable

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getAvailable — Get the available canonical converter names

Описание

public static array UConverter::getAvailable ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the destination encoding

  • « UConverter::getAvailable
  • UConverter::getDestinationType »
  • PHP Manual
  • UConverter
  • Get the destination encoding

UConverter::getDestinationEncoding

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getDestinationEncoding — Get the destination encoding

Описание

public string UConverter::getDestinationEncoding ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the destination converter type

  • « UConverter::getDestinationEncoding
  • UConverter::getErrorCode »
  • PHP Manual
  • UConverter
  • Get the destination converter type

UConverter::getDestinationType

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getDestinationType — Get the destination converter type

Описание

public integer UConverter::getDestinationType ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get last error code on the object

  • « UConverter::getDestinationType
  • UConverter::getErrorMessage »
  • PHP Manual
  • UConverter
  • Get last error code on the object

UConverter::getErrorCode

intl_get_error_code

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getErrorCode -- intl_get_error_code — Get last error code on the object

Описание

public integer UConverter::getErrorCode ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get last error message on the object

  • « UConverter::getErrorCode
  • UConverter::getSourceEncoding »
  • PHP Manual
  • UConverter
  • Get last error message on the object

UConverter::getErrorMessage

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getErrorMessage — Get last error message on the object

Описание

public string UConverter::getErrorMessage ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the source encoding

  • « UConverter::getErrorMessage
  • UConverter::getSourceType »
  • PHP Manual
  • UConverter
  • Get the source encoding

UConverter::getSourceEncoding

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSourceEncoding — Get the source encoding

Описание

public string UConverter::getSourceEncoding ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the source convertor type

  • « UConverter::getSourceEncoding
  • UConverter::getStandards »
  • PHP Manual
  • UConverter
  • Get the source convertor type

UConverter::getSourceType

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSourceType — Get the source convertor type

Описание

public integer UConverter::getSourceType ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get standards associated to converter names

  • « UConverter::getSourceType
  • UConverter::getSubstChars »
  • PHP Manual
  • UConverter
  • Get standards associated to converter names

UConverter::getStandards

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getStandards — Get standards associated to converter names

Описание

public static array UConverter::getStandards ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get substitution chars

  • « UConverter::getStandards
  • UConverter::reasonText »
  • PHP Manual
  • UConverter
  • Get substitution chars

UConverter::getSubstChars

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::getSubstChars — Get substitution chars

Описание

public string UConverter::getSubstChars ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get string representation of the callback reason

  • « UConverter::getSubstChars
  • UConverter::setDestinationEncoding »
  • PHP Manual
  • UConverter
  • Get string representation of the callback reason

UConverter::reasonText

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::reasonText — Get string representation of the callback reason

Описание

public static string UConverter::reasonText ([ integer $reason ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reason

Возвращаемые значения


Set the destination encoding

  • « UConverter::reasonText
  • UConverter::setSourceEncoding »
  • PHP Manual
  • UConverter
  • Set the destination encoding

UConverter::setDestinationEncoding

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setDestinationEncoding — Set the destination encoding

Описание

public void UConverter::setDestinationEncoding ( string $encoding )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

encoding

Возвращаемые значения


Set the source encoding

  • « UConverter::setDestinationEncoding
  • UConverter::setSubstChars »
  • PHP Manual
  • UConverter
  • Set the source encoding

UConverter::setSourceEncoding

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setSourceEncoding — Set the source encoding

Описание

public void UConverter::setSourceEncoding ( string $encoding )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

encoding

Возвращаемые значения


Set the substitution chars

  • « UConverter::setSourceEncoding
  • UConverter::toUCallback »
  • PHP Manual
  • UConverter
  • Set the substitution chars

UConverter::setSubstChars

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::setSubstChars — Set the substitution chars

Описание

public void UConverter::setSubstChars ( string $chars )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

chars

Возвращаемые значения


Default "to" callback function

  • « UConverter::setSubstChars
  • UConverter::transcode »
  • PHP Manual
  • UConverter
  • Default "to" callback function

UConverter::toUCallback

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::toUCallback — Default "to" callback function

Описание

public mixed UConverter::toUCallback ( integer $reason , string $source , string $codeUnits , integer &$error )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reason

source

codeUnits

error

Возвращаемые значения


Convert string from one charset to another

  • « UConverter::toUCallback
  • Функции Grapheme »
  • PHP Manual
  • UConverter
  • Convert string from one charset to another

UConverter::transcode

(PHP 5.5.0, PHP 7, PECL >= 3.0.0a1)

UConverter::transcode — Convert string from one charset to another

Описание

public static string UConverter::transcode ( string $str , string $toEncoding , string $fromEncoding [, array $options ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

str

toEncoding

fromEncoding

options

Возвращаемые значения


Функции Grapheme

Содержание

  • grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.
  • grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_strlen — Get string length in grapheme units
  • grapheme_strpos — Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • grapheme_substr — Return part of a string


Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.

  • « Функции Grapheme
  • grapheme_stripos »
  • PHP Manual
  • Функции Grapheme
  • Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.

grapheme_extract

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_extract — Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.

Описание

Процедурный стиль

string grapheme_extract ( string $haystack , int $size [, int $extract_type [, int $start = 0 [, int &$next ]]] )

Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.

Список параметров

haystack

String to search.

size

Maximum number items - based on the $extract_type - to return.

extract_type

Defines the type of units referred to by the $size parameter:

  • GRAPHEME_EXTR_COUNT (default) - $size is the number of default grapheme clusters to extract.
  • GRAPHEME_EXTR_MAXBYTES - $size is the maximum number of bytes returned.
  • GRAPHEME_EXTR_MAXCHARS - $size is the maximum number of UTF-8 characters returned.

start

Starting position in $haystack in bytes - if given, it must be zero or a positive value that is less than or equal to the length of $haystack in bytes, or a negative value that counts from the end of $haystack. If $start does not point to the first byte of a UTF-8 character, the start position is moved to the next character boundary.

next

Reference to a value that will be set to the next starting position. When the call returns, this may point to the first byte position past the end of the string.

Возвращаемые значения

A string starting at offset $start and ending on a default grapheme cluster boundary that conforms to the $size and $extract_type specified.

Список изменений

Версия | Описание
7.1.0 | Support for negative starts has been added.

Примеры

Пример #1 grapheme_extract() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_extract( $char_a_ring_nfd . $char_o_diaeresis_nfd, 1, GRAPHEME_EXTR_COUNT, 2));

?>

Результат выполнения данного примера:

o%CC%88

Смотрите также

  • grapheme_substr() - Return part of a string
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Find position (in grapheme units) of first occurrence of a case-insensitive string

  • « grapheme_extract
  • grapheme_stristr »
  • PHP Manual
  • Функции Grapheme
  • Find position (in grapheme units) of first occurrence of a case-insensitive string

grapheme_stripos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_stripos — Find position (in grapheme units) of first occurrence of a case-insensitive string

Описание

Процедурный стиль

int grapheme_stripos ( string $haystack , string $needle [, int $offset = 0 ] )

Find position (in grapheme units) of first occurrence of a case-insensitive string

Список параметров

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in haystack to start searching as an offset in grapheme units (not bytes or characters). If the offset is negative, it is treated relative to the end of the string. The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Возвращаемые значения

Returns the position as an integer. If needle is not found, grapheme_stripos() will return boolean FALSE.

Список изменений

Версия | Описание
7.1.0 | Support for negative offsets has been added.

Примеры

Пример #1 grapheme_stripos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print grapheme_stripos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

Результат выполнения данного примера:

2

Смотрите также

  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.

  • « grapheme_stripos
  • grapheme_strlen »
  • PHP Manual
  • Функции Grapheme
  • Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.

grapheme_stristr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_stristr — Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.

Описание

Процедурный стиль

string grapheme_stristr ( string $haystack , string $needle [, bool $before_needle = false ] )

Returns part of haystack string starting from and including the first occurrence of case-insensitive needle to the end of haystack.

Список параметров

haystack

The input string. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

before_needle

If TRUE, grapheme_strstr() returns the part of the haystack before the first occurrence of the needle (excluding needle).

Возвращаемые значения

Returns the portion of $haystack, or FALSE if $needle is not found.

Примеры

Пример #1 grapheme_stristr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd, $char_O_diaeresis_nfd));

?>

Результат выполнения данного примера:

o%CC%88a%CC%8A

Смотрите также

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Get string length in grapheme units

  • « grapheme_stristr
  • grapheme_strpos »
  • PHP Manual
  • Функции Grapheme
  • Get string length in grapheme units

grapheme_strlen

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strlen — Get string length in grapheme units

Описание

Процедурный стиль

int grapheme_strlen ( string $input )

Get string length in grapheme units (not bytes or characters)

Список параметров

input

The string being measured for length. It must be a valid UTF-8 string.

Возвращаемые значения

The length of the string on success, and 0 if the string is empty.

Примеры

Пример #1 grapheme_strlen() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strlen( 'abc' . $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd);

?>

Результат выполнения данного примера:

6

Смотрите также

  • » Unicode Text Segmentation: Grapheme Cluster Boundaries
  • iconv_strlen() - Возвращает количество символов в строке
  • mb_strlen() - Получает длину строки
  • strlen() - Возвращает длину строки


Find position (in grapheme units) of first occurrence of a string

  • « grapheme_strlen
  • grapheme_strripos »
  • PHP Manual
  • Функции Grapheme
  • Find position (in grapheme units) of first occurrence of a string

grapheme_strpos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strpos — Find position (in grapheme units) of first occurrence of a string

Описание

Процедурный стиль

int grapheme_strpos ( string $haystack , string $needle [, int $offset = 0 ] )

Find position (in grapheme units) of first occurrence of a string

Список параметров

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). If the offset is negative, it is treated relative to the end of the string. The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Возвращаемые значения

Returns the position as an integer. If needle is not found, grapheme_strpos() will return boolean FALSE.

Список изменений

Версия | Описание
7.1.0 | Support for negative offsets has been added.

Примеры

Пример #1 grapheme_strpos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strpos( $char_a_ring_nfd . $char_a_ring_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);

?>

Результат выполнения данного примера:

2

Смотрите также

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Find position (in grapheme units) of last occurrence of a case-insensitive string

  • « grapheme_strpos
  • grapheme_strrpos »
  • PHP Manual
  • Функции Grapheme
  • Find position (in grapheme units) of last occurrence of a case-insensitive string

grapheme_strripos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strripos — Find position (in grapheme units) of last occurrence of a case-insensitive string

Описание

Процедурный стиль

int grapheme_strripos ( string $haystack , string $needle [, int $offset = 0 ] )

Find position (in grapheme units) of last occurrence of a case-insensitive string

Список параметров

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Возвращаемые значения

Returns the position as an integer. If needle is not found, grapheme_strripos() will return boolean FALSE.

Примеры

Пример #1 grapheme_strripos() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"
$char_O_diaeresis_nfd = "O\xCC\x88"; // 'LATIN CAPITAL LETTER O WITH DIAERESIS' (U+00D6) normalization form "D"

print grapheme_strripos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_O_diaeresis_nfd);

?>

Результат выполнения данного примера:

2

Смотрите также

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Find position (in grapheme units) of last occurrence of a string

  • « grapheme_strripos
  • grapheme_strstr »
  • PHP Manual
  • Функции Grapheme
  • Find position (in grapheme units) of last occurrence of a string

grapheme_strrpos

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strrpos — Find position (in grapheme units) of last occurrence of a string

Описание

Процедурный стиль

int grapheme_strrpos ( string $haystack , string $needle [, int $offset = 0 ] )

Find position (in grapheme units) of last occurrence of a string

Список параметров

haystack

The string to look in. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

offset

The optional $offset parameter allows you to specify where in $haystack to start searching as an offset in grapheme units (not bytes or characters). The position returned is still relative to the beginning of haystack regardless of the value of $offset.

Возвращаемые значения

Returns the position as an integer. If needle is not found, grapheme_strrpos() will return boolean FALSE.

Примеры

Пример #1 grapheme_strrpos() example

<?php
$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print grapheme_strrpos( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_o_diaeresis_nfd, $char_o_diaeresis_nfd);
?>

Результат выполнения данного примера:

2

Смотрите также

  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strstr() - Returns part of haystack string from the first occurrence of needle to the end of haystack.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Returns part of haystack string from the first occurrence of needle to the end of haystack.

  • « grapheme_strrpos
  • grapheme_substr »
  • PHP Manual
  • Функции Grapheme
  • Returns part of haystack string from the first occurrence of needle to the end of haystack.

grapheme_strstr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_strstr — Returns part of haystack string from the first occurrence of needle to the end of haystack.

Описание

Процедурный стиль

string grapheme_strstr ( string $haystack , string $needle [, bool $before_needle = false ] )

Returns part of haystack string from the first occurrence of needle to the end of haystack (including the needle).

Список параметров

haystack

The input string. Must be valid UTF-8.

needle

The string to look for. Must be valid UTF-8.

before_needle

If TRUE, grapheme_strstr() returns the part of the haystack before the first occurrence of the needle (excluding the needle).

Возвращаемые значения

Returns the portion of string, or FALSE if needle is not found.

Примеры

Пример #1 grapheme_strstr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_stristr( $char_a_ring_nfd . $char_o_diaeresis_nfd . $char_a_ring_nfd, $char_o_diaeresis_nfd));

?>

Результат выполнения данного примера:

o%CC%88a%CC%8A

Смотрите также

  • grapheme_stristr() - Returns part of haystack string from the first occurrence of case-insensitive needle to the end of haystack.
  • grapheme_stripos() - Find position (in grapheme units) of first occurrence of a case-insensitive string
  • grapheme_strpos() - Find position (in grapheme units) of first occurrence of a string
  • grapheme_strripos() - Find position (in grapheme units) of last occurrence of a case-insensitive string
  • grapheme_strrpos() - Find position (in grapheme units) of last occurrence of a string
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Return part of a string

  • « grapheme_strstr
  • Функции IDN »
  • PHP Manual
  • Функции Grapheme
  • Return part of a string

grapheme_substr

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

grapheme_substr — Return part of a string

Описание

Процедурный стиль

int grapheme_substr ( string $string , int $start [, int $length ] )

Return part of a string

Список параметров

string

The input string. Must be valid UTF-8.

start

Start position in default grapheme units. If $start is non-negative, the returned string will start at the $start'th position in $string, counting from zero. If $start is negative, the returned string will start at the $start'th grapheme unit from the end of string.

length

Length in grapheme units. If $length is given and is positive, the string returned will contain at most $length grapheme units beginning from $start (depending on the length of string). If $length is given and is negative, then that many grapheme units will be omitted from the end of string (after the start position has been calculated when a start is negative). If $start denotes a position beyond this truncation, FALSE will be returned.

Возвращаемые значения

Returns the extracted part of $string.

Список изменений

Версия | Описание
5.4 | If length is given and positive and the argument string is shorter than the specified length, all the rest of the string according to start parameter is returned. Previously, FALSE was returned.

Примеры

Пример #1 grapheme_substr() example

<?php

$char_a_ring_nfd = "a\xCC\x8A";  // 'LATIN SMALL LETTER A WITH RING ABOVE' (U+00E5) normalization form "D"
$char_o_diaeresis_nfd = "o\xCC\x88"; // 'LATIN SMALL LETTER O WITH DIAERESIS' (U+00F6) normalization form "D"

print urlencode(grapheme_substr( "ao" . $char_a_ring_nfd . "bc" . $char_o_diaeresis_nfd . "O", 2, -1 ));
?>

Результат выполнения данного примера:

a%CC%8Abco%CC%88

Смотрите также

  • grapheme_extract() - Function to extract a sequence of default grapheme clusters from a text buffer, which must be encoded in UTF-8.
  • » Unicode Text Segmentation: Grapheme Cluster Boundaries


Функции IDN

Содержание

  • idn_to_ascii — Преобразовать доменное имя в формат IDNA ASCII
  • idn_to_utf8 — Преобразование доменного имени из IDNA ASCII в Unicode


Преобразовать доменное имя в формат IDNA ASCII

  • « Функции IDN
  • idn_to_utf8 »
  • PHP Manual
  • Функции IDN
  • Преобразовать доменное имя в формат IDNA ASCII

idn_to_ascii

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PHP 7, PECL idn >= 0.1)

idn_to_ascii — Преобразовать доменное имя в формат IDNA ASCII

Описание

Процедурный стиль

string idn_to_ascii ( string $domain [, int $options = 0 [, int $variant = INTL_IDNA_VARIANT_2003 [, array &$idna_info ]]] )

Эта функция преобразует доменное имя из Unicode в IDNA ASCII.

Список параметров

domain

Имя для преобразования, должно быть в кодировке UTF-8.

options

Опции преобразования - комбинация констант IDNA_* (кроме констант IDNA_ERROR_*).

variant

INTL_IDNA_VARIANT_2003 для IDNA 2003 или INTL_IDNA_VARIANT_UTS46 для UTS #46.

idna_info

Этот параметр используется только если используется INTL_IDNA_VARIANT_UTS46 в variant. В этом случае он будет заполнен массивом с ключами 'result', возможными ошибочными результатами преобразования, 'isTransitionalDifferent', логическое выражение означает изменило или могло бы изменить результат при использовании сквозного механизма UTS #46, и 'errors', содержащими целочисленное представление битовой маски из констант IDNA_ERROR_*.

Возвращаемые значения

Доменное имя в представлении ASCII, или FALSE в случае возникновения ошибки

Список изменений

Версия | Описание
5.4.0/PECL 2.0.0b1 | Добавлены параметры variant и idna_info; поддержка UTS #46.

Примеры

Пример #1 Пример использования idn_to_ascii()

<?php

echo idn_to_ascii('tast.de');

?>

Результат выполнения данного примера:

xn--tst-qla.de

Смотрите также

  • idn_to_utf8() - Преобразование доменного имени из IDNA ASCII в Unicode


Преобразование доменного имени из IDNA ASCII в Unicode

  • « idn_to_ascii
  • IntlChar »
  • PHP Manual
  • Функции IDN
  • Преобразование доменного имени из IDNA ASCII в Unicode

idn_to_utf8

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PHP 7, PECL idn >= 0.1)

idn_to_utf8 — Преобразование доменного имени из IDNA ASCII в Unicode

Описание

Процедурный стиль

string idn_to_utf8 ( string $domain [, int $options = 0 [, int $variant = INTL_IDNA_VARIANT_2003 [, array &$idna_info ]]] )

Эта функция преобразует доменные имена из формата IDNA ASCII в Unicode, в кодировке UTF-8.

Список параметров

domain

Доменное имя в формате IDNA ASCII.

options

Опции преобразования - комбинация констант IDNA_* (кроме констант IDNA_ERROR_*).

variant

INTL_IDNA_VARIANT_2003 для IDNA 2003 или INTL_IDNA_VARIANT_UTS46 for UTS #46.

idna_info

Этот параметр используется только если используется INTL_IDNA_VARIANT_UTS46 в variant. В этом случае он будет заполнен массивом с ключами 'result', возможными ошибочными результатами преобразования, 'isTransitionalDifferent', логическое выражение означает изменило или могло бы изменить результат при использовании сквозного механизма UTS #46, и 'errors', содержащими целочисленное представление битовой маски из констант IDNA_ERROR_*.

Возвращаемые значения

Доменное имя в Unicode, в кодировке UTF-8, или FALSE в случае возникновения ошибки

Список изменений

Версия | Описание
5.4.0/PECL 2.0.0b1 | Добавлены параметры variant и idna_info; поддержка UTS #46.

Примеры

Пример #1 Пример использования idn_to_utf8()

<?php

echo idn_to_utf8('xn--tst-qla.de');

?>

Результат выполнения данного примера:

tast.de

Смотрите также

  • idn_to_ascii() - Преобразовать доменное имя в формат IDNA ASCII


IntlChar

(PHP 7)

Введение

IntlChar предоставляет доступ к некоторому числу утилитарных методов, которые можно использовать для доступа к информации о символах Unicode.

Имена методов и констант, представленные здесь, длизки к именам и методам нижележащей библиотеки ICU.

Обзор классов

IntlChar {
/* Константы */
const string UNICODE_VERSION = 6.3 ;
const integer CODEPOINT_MIN = 0 ;
const integer CODEPOINT_MAX = 1114111 ;
const float NO_NUMERIC_VALUE = -123456789 ;
const integer PROPERTY_ALPHABETIC = 0 ;
const integer PROPERTY_BINARY_START = 0 ;
const integer PROPERTY_ASCII_HEX_DIGIT = 1 ;
const integer PROPERTY_BIDI_CONTROL = 2 ;
const integer PROPERTY_BIDI_MIRRORED = 3 ;
const integer PROPERTY_DASH = 4 ;
const integer PROPERTY_DEFAULT_IGNORABLE_CODE_POINT = 5 ;
const integer PROPERTY_DEPRECATED = 6 ;
const integer PROPERTY_DIACRITIC = 7 ;
const integer PROPERTY_EXTENDER = 8 ;
const integer PROPERTY_FULL_COMPOSITION_EXCLUSION = 9 ;
const integer PROPERTY_GRAPHEME_BASE = 10 ;
const integer PROPERTY_GRAPHEME_EXTEND = 11 ;
const integer PROPERTY_GRAPHEME_LINK = 12 ;
const integer PROPERTY_HEX_DIGIT = 13 ;
const integer PROPERTY_HYPHEN = 14 ;
const integer PROPERTY_ID_CONTINUE = 15 ;
const integer PROPERTY_ID_START = 16 ;
const integer PROPERTY_IDEOGRAPHIC = 17 ;
const integer PROPERTY_IDS_BINARY_OPERATOR = 18 ;
const integer PROPERTY_IDS_TRINARY_OPERATOR = 19 ;
const integer PROPERTY_JOIN_CONTROL = 20 ;
const integer PROPERTY_LOGICAL_ORDER_EXCEPTION = 21 ;
const integer PROPERTY_LOWERCASE = 22 ;
const integer PROPERTY_MATH = 23 ;
const integer PROPERTY_NONCHARACTER_CODE_POINT = 24 ;
const integer PROPERTY_QUOTATION_MARK = 25 ;
const integer PROPERTY_RADICAL = 26 ;
const integer PROPERTY_SOFT_DOTTED = 27 ;
const integer PROPERTY_TERMINAL_PUNCTUATION = 28 ;
const integer PROPERTY_UNIFIED_IDEOGRAPH = 29 ;
const integer PROPERTY_UPPERCASE = 30 ;
const integer PROPERTY_WHITE_SPACE = 31 ;
const integer PROPERTY_XID_CONTINUE = 32 ;
const integer PROPERTY_XID_START = 33 ;
const integer PROPERTY_CASE_SENSITIVE = 34 ;
const integer PROPERTY_S_TERM = 35 ;
const integer PROPERTY_VARIATION_SELECTOR = 36 ;
const integer PROPERTY_NFD_INERT = 37 ;
const integer PROPERTY_NFKD_INERT = 38 ;
const integer PROPERTY_NFC_INERT = 39 ;
const integer PROPERTY_NFKC_INERT = 40 ;
const integer PROPERTY_SEGMENT_STARTER = 41 ;
const integer PROPERTY_PATTERN_SYNTAX = 42 ;
const integer PROPERTY_PATTERN_WHITE_SPACE = 43 ;
const integer PROPERTY_POSIX_ALNUM = 44 ;
const integer PROPERTY_POSIX_BLANK = 45 ;
const integer PROPERTY_POSIX_GRAPH = 46 ;
const integer PROPERTY_POSIX_PRINT = 47 ;
const integer PROPERTY_POSIX_XDIGIT = 48 ;
const integer PROPERTY_CASED = 49 ;
const integer PROPERTY_CASE_IGNORABLE = 50 ;
const integer PROPERTY_CHANGES_WHEN_LOWERCASED = 51 ;
const integer PROPERTY_CHANGES_WHEN_UPPERCASED = 52 ;
const integer PROPERTY_CHANGES_WHEN_TITLECASED = 53 ;
const integer PROPERTY_CHANGES_WHEN_CASEFOLDED = 54 ;
const integer PROPERTY_CHANGES_WHEN_CASEMAPPED = 55 ;
const integer PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED = 56 ;
const integer PROPERTY_BINARY_LIMIT = 57 ;
const integer PROPERTY_BIDI_CLASS = 4096 ;
const integer PROPERTY_INT_START = 4096 ;
const integer PROPERTY_BLOCK = 4097 ;
const integer PROPERTY_CANONICAL_COMBINING_CLASS = 4098 ;
const integer PROPERTY_DECOMPOSITION_TYPE = 4099 ;
const integer PROPERTY_EAST_ASIAN_WIDTH = 4100 ;
const integer PROPERTY_GENERAL_CATEGORY = 4101 ;
const integer PROPERTY_JOINING_GROUP = 4102 ;
const integer PROPERTY_JOINING_TYPE = 4103 ;
const integer PROPERTY_LINE_BREAK = 4104 ;
const integer PROPERTY_NUMERIC_TYPE = 4105 ;
const integer PROPERTY_SCRIPT = 4106 ;
const integer PROPERTY_HANGUL_SYLLABLE_TYPE = 4107 ;
const integer PROPERTY_NFD_QUICK_CHECK = 4108 ;
const integer PROPERTY_NFKD_QUICK_CHECK = 4109 ;
const integer PROPERTY_NFC_QUICK_CHECK = 4110 ;
const integer PROPERTY_NFKC_QUICK_CHECK = 4111 ;
const integer PROPERTY_LEAD_CANONICAL_COMBINING_CLASS = 4112 ;
const integer PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS = 4113 ;
const integer PROPERTY_GRAPHEME_CLUSTER_BREAK = 4114 ;
const integer PROPERTY_SENTENCE_BREAK = 4115 ;
const integer PROPERTY_WORD_BREAK = 4116 ;
const integer PROPERTY_BIDI_PAIRED_BRACKET_TYPE = 4117 ;
const integer PROPERTY_INT_LIMIT = 4118 ;
const integer PROPERTY_GENERAL_CATEGORY_MASK = 8192 ;
const integer PROPERTY_MASK_START = 8192 ;
const integer PROPERTY_MASK_LIMIT = 8193 ;
const integer PROPERTY_NUMERIC_VALUE = 12288 ;
const integer PROPERTY_DOUBLE_START = 12288 ;
const integer PROPERTY_DOUBLE_LIMIT = 12289 ;
const integer PROPERTY_AGE = 16384 ;
const integer PROPERTY_STRING_START = 16384 ;
const integer PROPERTY_BIDI_MIRRORING_GLYPH = 16385 ;
const integer PROPERTY_CASE_FOLDING = 16386 ;
const integer PROPERTY_ISO_COMMENT = 16387 ;
const integer PROPERTY_LOWERCASE_MAPPING = 16388 ;
const integer PROPERTY_NAME = 16389 ;
const integer PROPERTY_SIMPLE_CASE_FOLDING = 16390 ;
const integer PROPERTY_SIMPLE_LOWERCASE_MAPPING = 16391 ;
const integer PROPERTY_SIMPLE_TITLECASE_MAPPING = 16392 ;
const integer PROPERTY_SIMPLE_UPPERCASE_MAPPING = 16393 ;
const integer PROPERTY_TITLECASE_MAPPING = 16394 ;
const integer PROPERTY_UNICODE_1_NAME = 16395 ;
const integer PROPERTY_UPPERCASE_MAPPING = 16396 ;
const integer PROPERTY_BIDI_PAIRED_BRACKET = 16397 ;
const integer PROPERTY_STRING_LIMIT = 16398 ;
const integer PROPERTY_SCRIPT_EXTENSIONS = 28672 ;
const integer PROPERTY_OTHER_PROPERTY_START = 28672 ;
const integer PROPERTY_OTHER_PROPERTY_LIMIT = 28673 ;
const integer PROPERTY_INVALID_CODE = -1 ;
const integer CHAR_CATEGORY_UNASSIGNED = 0 ;
const integer CHAR_CATEGORY_GENERAL_OTHER_TYPES = 0 ;
const integer CHAR_CATEGORY_UPPERCASE_LETTER = 1 ;
const integer CHAR_CATEGORY_LOWERCASE_LETTER = 2 ;
const integer CHAR_CATEGORY_TITLECASE_LETTER = 3 ;
const integer CHAR_CATEGORY_MODIFIER_LETTER = 4 ;
const integer CHAR_CATEGORY_OTHER_LETTER = 5 ;
const integer CHAR_CATEGORY_NON_SPACING_MARK = 6 ;
const integer CHAR_CATEGORY_ENCLOSING_MARK = 7 ;
const integer CHAR_CATEGORY_COMBINING_SPACING_MARK = 8 ;
const integer CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER = 9 ;
const integer CHAR_CATEGORY_LETTER_NUMBER = 10 ;
const integer CHAR_CATEGORY_OTHER_NUMBER = 11 ;
const integer CHAR_CATEGORY_SPACE_SEPARATOR = 12 ;
const integer CHAR_CATEGORY_LINE_SEPARATOR = 13 ;
const integer CHAR_CATEGORY_PARAGRAPH_SEPARATOR = 14 ;
const integer CHAR_CATEGORY_CONTROL_CHAR = 15 ;
const integer CHAR_CATEGORY_FORMAT_CHAR = 16 ;
const integer CHAR_CATEGORY_PRIVATE_USE_CHAR = 17 ;
const integer CHAR_CATEGORY_SURROGATE = 18 ;
const integer CHAR_CATEGORY_DASH_PUNCTUATION = 19 ;
const integer CHAR_CATEGORY_START_PUNCTUATION = 20 ;
const integer CHAR_CATEGORY_END_PUNCTUATION = 21 ;
const integer CHAR_CATEGORY_CONNECTOR_PUNCTUATION = 22 ;
const integer CHAR_CATEGORY_OTHER_PUNCTUATION = 23 ;
const integer CHAR_CATEGORY_MATH_SYMBOL = 24 ;
const integer CHAR_CATEGORY_CURRENCY_SYMBOL = 25 ;
const integer CHAR_CATEGORY_MODIFIER_SYMBOL = 26 ;
const integer CHAR_CATEGORY_OTHER_SYMBOL = 27 ;
const integer CHAR_CATEGORY_INITIAL_PUNCTUATION = 28 ;
const integer CHAR_CATEGORY_FINAL_PUNCTUATION = 29 ;
const integer CHAR_CATEGORY_CHAR_CATEGORY_COUNT = 30 ;
const integer CHAR_DIRECTION_LEFT_TO_RIGHT = 0 ;
const integer CHAR_DIRECTION_RIGHT_TO_LEFT = 1 ;
const integer CHAR_DIRECTION_EUROPEAN_NUMBER = 2 ;
const integer CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR = 3 ;
const integer CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR = 4 ;
const integer CHAR_DIRECTION_ARABIC_NUMBER = 5 ;
const integer CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR = 6 ;
const integer CHAR_DIRECTION_BLOCK_SEPARATOR = 7 ;
const integer CHAR_DIRECTION_SEGMENT_SEPARATOR = 8 ;
const integer CHAR_DIRECTION_WHITE_SPACE_NEUTRAL = 9 ;
const integer CHAR_DIRECTION_OTHER_NEUTRAL = 10 ;
const integer CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING = 11 ;
const integer CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE = 12 ;
const integer CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC = 13 ;
const integer CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING = 14 ;
const integer CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE = 15 ;
const integer CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT = 16 ;
const integer CHAR_DIRECTION_DIR_NON_SPACING_MARK = 17 ;
const integer CHAR_DIRECTION_BOUNDARY_NEUTRAL = 18 ;
const integer CHAR_DIRECTION_FIRST_STRONG_ISOLATE = 19 ;
const integer CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE = 20 ;
const integer CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE = 21 ;
const integer CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE = 22 ;
const integer CHAR_DIRECTION_CHAR_DIRECTION_COUNT = 23 ;
const integer BLOCK_CODE_NO_BLOCK = 0 ;
const integer BLOCK_CODE_BASIC_LATIN = 1 ;
const integer BLOCK_CODE_LATIN_1_SUPPLEMENT = 2 ;
const integer BLOCK_CODE_LATIN_EXTENDED_A = 3 ;
const integer BLOCK_CODE_LATIN_EXTENDED_B = 4 ;
const integer BLOCK_CODE_IPA_EXTENSIONS = 5 ;
const integer BLOCK_CODE_SPACING_MODIFIER_LETTERS = 6 ;
const integer BLOCK_CODE_COMBINING_DIACRITICAL_MARKS = 7 ;
const integer BLOCK_CODE_GREEK = 8 ;
const integer BLOCK_CODE_CYRILLIC = 9 ;
const integer BLOCK_CODE_ARMENIAN = 10 ;
const integer BLOCK_CODE_HEBREW = 11 ;
const integer BLOCK_CODE_ARABIC = 12 ;
const integer BLOCK_CODE_SYRIAC = 13 ;
const integer BLOCK_CODE_THAANA = 14 ;
const integer BLOCK_CODE_DEVANAGARI = 15 ;
const integer BLOCK_CODE_BENGALI = 16 ;
const integer BLOCK_CODE_GURMUKHI = 17 ;
const integer BLOCK_CODE_GUJARATI = 18 ;
const integer BLOCK_CODE_ORIYA = 19 ;
const integer BLOCK_CODE_TAMIL = 20 ;
const integer BLOCK_CODE_TELUGU = 21 ;
const integer BLOCK_CODE_KANNADA = 22 ;
const integer BLOCK_CODE_MALAYALAM = 23 ;
const integer BLOCK_CODE_SINHALA = 24 ;
const integer BLOCK_CODE_THAI = 25 ;
const integer BLOCK_CODE_LAO = 26 ;
const integer BLOCK_CODE_TIBETAN = 27 ;
const integer BLOCK_CODE_MYANMAR = 28 ;
const integer BLOCK_CODE_GEORGIAN = 29 ;
const integer BLOCK_CODE_HANGUL_JAMO = 30 ;
const integer BLOCK_CODE_ETHIOPIC = 31 ;
const integer BLOCK_CODE_CHEROKEE = 32 ;
const integer BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = 33 ;
const integer BLOCK_CODE_OGHAM = 34 ;
const integer BLOCK_CODE_RUNIC = 35 ;
const integer BLOCK_CODE_KHMER = 36 ;
const integer BLOCK_CODE_MONGOLIAN = 37 ;
const integer BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL = 38 ;
const integer BLOCK_CODE_GREEK_EXTENDED = 39 ;
const integer BLOCK_CODE_GENERAL_PUNCTUATION = 40 ;
const integer BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS = 41 ;
const integer BLOCK_CODE_CURRENCY_SYMBOLS = 42 ;
const integer BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS = 43 ;
const integer BLOCK_CODE_LETTERLIKE_SYMBOLS = 44 ;
const integer BLOCK_CODE_NUMBER_FORMS = 45 ;
const integer BLOCK_CODE_ARROWS = 46 ;
const integer BLOCK_CODE_MATHEMATICAL_OPERATORS = 47 ;
const integer BLOCK_CODE_MISCELLANEOUS_TECHNICAL = 48 ;
const integer BLOCK_CODE_CONTROL_PICTURES = 49 ;
const integer BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION = 50 ;
const integer BLOCK_CODE_ENCLOSED_ALPHANUMERICS = 51 ;
const integer BLOCK_CODE_BOX_DRAWING = 52 ;
const integer BLOCK_CODE_BLOCK_ELEMENTS = 53 ;
const integer BLOCK_CODE_GEOMETRIC_SHAPES = 54 ;
const integer BLOCK_CODE_MISCELLANEOUS_SYMBOLS = 55 ;
const integer BLOCK_CODE_DINGBATS = 56 ;
const integer BLOCK_CODE_BRAILLE_PATTERNS = 57 ;
const integer BLOCK_CODE_CJK_RADICALS_SUPPLEMENT = 58 ;
const integer BLOCK_CODE_KANGXI_RADICALS = 59 ;
const integer BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS = 60 ;
const integer BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION = 61 ;
const integer BLOCK_CODE_HIRAGANA = 62 ;
const integer BLOCK_CODE_KATAKANA = 63 ;
const integer BLOCK_CODE_BOPOMOFO = 64 ;
const integer BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO = 65 ;
const integer BLOCK_CODE_KANBUN = 66 ;
const integer BLOCK_CODE_BOPOMOFO_EXTENDED = 67 ;
const integer BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS = 68 ;
const integer BLOCK_CODE_CJK_COMPATIBILITY = 69 ;
const integer BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A = 70 ;
const integer BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS = 71 ;
const integer BLOCK_CODE_YI_SYLLABLES = 72 ;
const integer BLOCK_CODE_YI_RADICALS = 73 ;
const integer BLOCK_CODE_HANGUL_SYLLABLES = 74 ;
const integer BLOCK_CODE_HIGH_SURROGATES = 75 ;
const integer BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES = 76 ;
const integer BLOCK_CODE_LOW_SURROGATES = 77 ;
const integer BLOCK_CODE_PRIVATE_USE_AREA = 78 ;
const integer BLOCK_CODE_PRIVATE_USE = 78 ;
const integer BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS = 79 ;
const integer BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS = 80 ;
const integer BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A = 81 ;
const integer BLOCK_CODE_COMBINING_HALF_MARKS = 82 ;
const integer BLOCK_CODE_CJK_COMPATIBILITY_FORMS = 83 ;
const integer BLOCK_CODE_SMALL_FORM_VARIANTS = 84 ;
const integer BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B = 85 ;
const integer BLOCK_CODE_SPECIALS = 86 ;
const integer BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS = 87 ;
const integer BLOCK_CODE_OLD_ITALIC = 88 ;
const integer BLOCK_CODE_GOTHIC = 89 ;
const integer BLOCK_CODE_DESERET = 90 ;
const integer BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS = 91 ;
const integer BLOCK_CODE_MUSICAL_SYMBOLS = 92 ;
const integer BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93 ;
const integer BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94 ;
const integer BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 ;
const integer BLOCK_CODE_TAGS = 96 ;
const integer BLOCK_CODE_CYRILLIC_SUPPLEMENT = 97 ;
const integer BLOCK_CODE_CYRILLIC_SUPPLEMENTARY = 97 ;
const integer BLOCK_CODE_TAGALOG = 98 ;
const integer BLOCK_CODE_HANUNOO = 99 ;
const integer BLOCK_CODE_BUHID = 100 ;
const integer BLOCK_CODE_TAGBANWA = 101 ;
const integer BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102 ;
const integer BLOCK_CODE_SUPPLEMENTAL_ARROWS_A = 103 ;
const integer BLOCK_CODE_SUPPLEMENTAL_ARROWS_B = 104 ;
const integer BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105 ;
const integer BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106 ;
const integer BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS = 107 ;
const integer BLOCK_CODE_VARIATION_SELECTORS = 108 ;
const integer BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109 ;
const integer BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110 ;
const integer BLOCK_CODE_LIMBU = 111 ;
const integer BLOCK_CODE_TAI_LE = 112 ;
const integer BLOCK_CODE_KHMER_SYMBOLS = 113 ;
const integer BLOCK_CODE_PHONETIC_EXTENSIONS = 114 ;
const integer BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115 ;
const integer BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS = 116 ;
const integer BLOCK_CODE_LINEAR_B_SYLLABARY = 117 ;
const integer BLOCK_CODE_LINEAR_B_IDEOGRAMS = 118 ;
const integer BLOCK_CODE_AEGEAN_NUMBERS = 119 ;
const integer BLOCK_CODE_UGARITIC = 120 ;
const integer BLOCK_CODE_SHAVIAN = 121 ;
const integer BLOCK_CODE_OSMANYA = 122 ;
const integer BLOCK_CODE_CYPRIOT_SYLLABARY = 123 ;
const integer BLOCK_CODE_TAI_XUAN_JING_SYMBOLS = 124 ;
const integer BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT = 125 ;
const integer BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION = 126 ;
const integer BLOCK_CODE_ANCIENT_GREEK_NUMBERS = 127 ;
const integer BLOCK_CODE_ARABIC_SUPPLEMENT = 128 ;
const integer BLOCK_CODE_BUGINESE = 129 ;
const integer BLOCK_CODE_CJK_STROKES = 130 ;
const integer BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131 ;
const integer BLOCK_CODE_COPTIC = 132 ;
const integer BLOCK_CODE_ETHIOPIC_EXTENDED = 133 ;
const integer BLOCK_CODE_ETHIOPIC_SUPPLEMENT = 134 ;
const integer BLOCK_CODE_GEORGIAN_SUPPLEMENT = 135 ;
const integer BLOCK_CODE_GLAGOLITIC = 136 ;
const integer BLOCK_CODE_KHAROSHTHI = 137 ;
const integer BLOCK_CODE_MODIFIER_TONE_LETTERS = 138 ;
const integer BLOCK_CODE_NEW_TAI_LUE = 139 ;
const integer BLOCK_CODE_OLD_PERSIAN = 140 ;
const integer BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT = 141 ;
const integer BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION = 142 ;
const integer BLOCK_CODE_SYLOTI_NAGRI = 143 ;
const integer BLOCK_CODE_TIFINAGH = 144 ;
const integer BLOCK_CODE_VERTICAL_FORMS = 145 ;
const integer BLOCK_CODE_NKO = 146 ;
const integer BLOCK_CODE_BALINESE = 147 ;
const integer BLOCK_CODE_LATIN_EXTENDED_C = 148 ;
const integer BLOCK_CODE_LATIN_EXTENDED_D = 149 ;
const integer BLOCK_CODE_PHAGS_PA = 150 ;
const integer BLOCK_CODE_PHOENICIAN = 151 ;
const integer BLOCK_CODE_CUNEIFORM = 152 ;
const integer BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153 ;
const integer BLOCK_CODE_COUNTING_ROD_NUMERALS = 154 ;
const integer BLOCK_CODE_SUNDANESE = 155 ;
const integer BLOCK_CODE_LEPCHA = 156 ;
const integer BLOCK_CODE_OL_CHIKI = 157 ;
const integer BLOCK_CODE_CYRILLIC_EXTENDED_A = 158 ;
const integer BLOCK_CODE_VAI = 159 ;
const integer BLOCK_CODE_CYRILLIC_EXTENDED_B = 160 ;
const integer BLOCK_CODE_SAURASHTRA = 161 ;
const integer BLOCK_CODE_KAYAH_LI = 162 ;
const integer BLOCK_CODE_REJANG = 163 ;
const integer BLOCK_CODE_CHAM = 164 ;
const integer BLOCK_CODE_ANCIENT_SYMBOLS = 165 ;
const integer BLOCK_CODE_PHAISTOS_DISC = 166 ;
const integer BLOCK_CODE_LYCIAN = 167 ;
const integer BLOCK_CODE_CARIAN = 168 ;
const integer BLOCK_CODE_LYDIAN = 169 ;
const integer BLOCK_CODE_MAHJONG_TILES = 170 ;
const integer BLOCK_CODE_DOMINO_TILES = 171 ;
const integer BLOCK_CODE_SAMARITAN = 172 ;
const integer BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173 ;
const integer BLOCK_CODE_TAI_THAM = 174 ;
const integer BLOCK_CODE_VEDIC_EXTENSIONS = 175 ;
const integer BLOCK_CODE_LISU = 176 ;
const integer BLOCK_CODE_BAMUM = 177 ;
const integer BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS = 178 ;
const integer BLOCK_CODE_DEVANAGARI_EXTENDED = 179 ;
const integer BLOCK_CODE_HANGUL_JAMO_EXTENDED_A = 180 ;
const integer BLOCK_CODE_JAVANESE = 181 ;
const integer BLOCK_CODE_MYANMAR_EXTENDED_A = 182 ;
const integer BLOCK_CODE_TAI_VIET = 183 ;
const integer BLOCK_CODE_MEETEI_MAYEK = 184 ;
const integer BLOCK_CODE_HANGUL_JAMO_EXTENDED_B = 185 ;
const integer BLOCK_CODE_IMPERIAL_ARAMAIC = 186 ;
const integer BLOCK_CODE_OLD_SOUTH_ARABIAN = 187 ;
const integer BLOCK_CODE_AVESTAN = 188 ;
const integer BLOCK_CODE_INSCRIPTIONAL_PARTHIAN = 189 ;
const integer BLOCK_CODE_INSCRIPTIONAL_PAHLAVI = 190 ;
const integer BLOCK_CODE_OLD_TURKIC = 191 ;
const integer BLOCK_CODE_RUMI_NUMERAL_SYMBOLS = 192 ;
const integer BLOCK_CODE_KAITHI = 193 ;
const integer BLOCK_CODE_EGYPTIAN_HIEROGLYPHS = 194 ;
const integer BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195 ;
const integer BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196 ;
const integer BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197 ;
const integer BLOCK_CODE_MANDAIC = 198 ;
const integer BLOCK_CODE_BATAK = 199 ;
const integer BLOCK_CODE_ETHIOPIC_EXTENDED_A = 200 ;
const integer BLOCK_CODE_BRAHMI = 201 ;
const integer BLOCK_CODE_BAMUM_SUPPLEMENT = 202 ;
const integer BLOCK_CODE_KANA_SUPPLEMENT = 203 ;
const integer BLOCK_CODE_PLAYING_CARDS = 204 ;
const integer BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = 205 ;
const integer BLOCK_CODE_EMOTICONS = 206 ;
const integer BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS = 207 ;
const integer BLOCK_CODE_ALCHEMICAL_SYMBOLS = 208 ;
const integer BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = 209 ;
const integer BLOCK_CODE_ARABIC_EXTENDED_A = 210 ;
const integer BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS = 211 ;
const integer BLOCK_CODE_CHAKMA = 212 ;
const integer BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS = 213 ;
const integer BLOCK_CODE_MEROITIC_CURSIVE = 214 ;
const integer BLOCK_CODE_MEROITIC_HIEROGLYPHS = 215 ;
const integer BLOCK_CODE_MIAO = 216 ;
const integer BLOCK_CODE_SHARADA = 217 ;
const integer BLOCK_CODE_SORA_SOMPENG = 218 ;
const integer BLOCK_CODE_SUNDANESE_SUPPLEMENT = 219 ;
const integer BLOCK_CODE_TAKRI = 220 ;
const integer BLOCK_CODE_COUNT = 221 ;
const integer BLOCK_CODE_INVALID_CODE = -1 ;
const integer BPT_NONE = 0 ;
const integer BPT_OPEN = 1 ;
const integer BPT_CLOSE = 2 ;
const integer BPT_COUNT = 3 ;
const integer EA_NEUTRAL = 0 ;
const integer EA_AMBIGUOUS = 1 ;
const integer EA_HALFWIDTH = 2 ;
const integer EA_FULLWIDTH = 3 ;
const integer EA_NARROW = 4 ;
const integer EA_WIDE = 5 ;
const integer EA_COUNT = 6 ;
const integer UNICODE_CHAR_NAME = 0 ;
const integer UNICODE_10_CHAR_NAME = 1 ;
const integer EXTENDED_CHAR_NAME = 2 ;
const integer CHAR_NAME_ALIAS = 3 ;
const integer CHAR_NAME_CHOICE_COUNT = 4 ;
const integer SHORT_PROPERTY_NAME = 0 ;
const integer LONG_PROPERTY_NAME = 1 ;
const integer PROPERTY_NAME_CHOICE_COUNT = 2 ;
const integer DT_NONE = 0 ;
const integer DT_CANONICAL = 1 ;
const integer DT_COMPAT = 2 ;
const integer DT_CIRCLE = 3 ;
const integer DT_FINAL = 4 ;
const integer DT_FONT = 5 ;
const integer DT_FRACTION = 6 ;
const integer DT_INITIAL = 7 ;
const integer DT_ISOLATED = 8 ;
const integer DT_MEDIAL = 9 ;
const integer DT_NARROW = 10 ;
const integer DT_NOBREAK = 11 ;
const integer DT_SMALL = 12 ;
const integer DT_SQUARE = 13 ;
const integer DT_SUB = 14 ;
const integer DT_SUPER = 15 ;
const integer DT_VERTICAL = 16 ;
const integer DT_WIDE = 17 ;
const integer DT_COUNT = 18 ;
const integer JT_NON_JOINING = 0 ;
const integer JT_JOIN_CAUSING = 1 ;
const integer JT_DUAL_JOINING = 2 ;
const integer JT_LEFT_JOINING = 3 ;
const integer JT_RIGHT_JOINING = 4 ;
const integer JT_TRANSPARENT = 5 ;
const integer JT_COUNT = 6 ;
const integer JG_NO_JOINING_GROUP = 0 ;
const integer JG_AIN = 1 ;
const integer JG_ALAPH = 2 ;
const integer JG_ALEF = 3 ;
const integer JG_BEH = 4 ;
const integer JG_BETH = 5 ;
const integer JG_DAL = 6 ;
const integer JG_DALATH_RISH = 7 ;
const integer JG_E = 8 ;
const integer JG_FEH = 9 ;
const integer JG_FINAL_SEMKATH = 10 ;
const integer JG_GAF = 11 ;
const integer JG_GAMAL = 12 ;
const integer JG_HAH = 13 ;
const integer JG_TEH_MARBUTA_GOAL = 14 ;
const integer JG_HAMZA_ON_HEH_GOAL = 14 ;
const integer JG_HE = 15 ;
const integer JG_HEH = 16 ;
const integer JG_HEH_GOAL = 17 ;
const integer JG_HETH = 18 ;
const integer JG_KAF = 19 ;
const integer JG_KAPH = 20 ;
const integer JG_KNOTTED_HEH = 21 ;
const integer JG_LAM = 22 ;
const integer JG_LAMADH = 23 ;
const integer JG_MEEM = 24 ;
const integer JG_MIM = 25 ;
const integer JG_NOON = 26 ;
const integer JG_NUN = 27 ;
const integer JG_PE = 28 ;
const integer JG_QAF = 29 ;
const integer JG_QAPH = 30 ;
const integer JG_REH = 31 ;
const integer JG_REVERSED_PE = 32 ;
const integer JG_SAD = 33 ;
const integer JG_SADHE = 34 ;
const integer JG_SEEN = 35 ;
const integer JG_SEMKATH = 36 ;
const integer JG_SHIN = 37 ;
const integer JG_SWASH_KAF = 38 ;
const integer JG_SYRIAC_WAW = 39 ;
const integer JG_TAH = 40 ;
const integer JG_TAW = 41 ;
const integer JG_TEH_MARBUTA = 42 ;
const integer JG_TETH = 43 ;
const integer JG_WAW = 44 ;
const integer JG_YEH = 45 ;
const integer JG_YEH_BARREE = 46 ;
const integer JG_YEH_WITH_TAIL = 47 ;
const integer JG_YUDH = 48 ;
const integer JG_YUDH_HE = 49 ;
const integer JG_ZAIN = 50 ;
const integer JG_FE = 51 ;
const integer JG_KHAPH = 52 ;
const integer JG_ZHAIN = 53 ;
const integer JG_BURUSHASKI_YEH_BARREE = 54 ;
const integer JG_FARSI_YEH = 55 ;
const integer JG_NYA = 56 ;
const integer JG_ROHINGYA_YEH = 57 ;
const integer JG_COUNT = 58 ;
const integer GCB_OTHER = 0 ;
const integer GCB_CONTROL = 1 ;
const integer GCB_CR = 2 ;
const integer GCB_EXTEND = 3 ;
const integer GCB_L = 4 ;
const integer GCB_LF = 5 ;
const integer GCB_LV = 6 ;
const integer GCB_LVT = 7 ;
const integer GCB_T = 8 ;
const integer GCB_V = 9 ;
const integer GCB_SPACING_MARK = 10 ;
const integer GCB_PREPEND = 11 ;
const integer GCB_REGIONAL_INDICATOR = 12 ;
const integer GCB_COUNT = 13 ;
const integer WB_OTHER = 0 ;
const integer WB_ALETTER = 1 ;
const integer WB_FORMAT = 2 ;
const integer WB_KATAKANA = 3 ;
const integer WB_MIDLETTER = 4 ;
const integer WB_MIDNUM = 5 ;
const integer WB_NUMERIC = 6 ;
const integer WB_EXTENDNUMLET = 7 ;
const integer WB_CR = 8 ;
const integer WB_EXTEND = 9 ;
const integer WB_LF = 10 ;
const integer WB_MIDNUMLET = 11 ;
const integer WB_NEWLINE = 12 ;
const integer WB_REGIONAL_INDICATOR = 13 ;
const integer WB_HEBREW_LETTER = 14 ;
const integer WB_SINGLE_QUOTE = 15 ;
const integer WB_DOUBLE_QUOTE = 16 ;
const integer WB_COUNT = 17 ;
const integer SB_OTHER = 0 ;
const integer SB_ATERM = 1 ;
const integer SB_CLOSE = 2 ;
const integer SB_FORMAT = 3 ;
const integer SB_LOWER = 4 ;
const integer SB_NUMERIC = 5 ;
const integer SB_OLETTER = 6 ;
const integer SB_SEP = 7 ;
const integer SB_SP = 8 ;
const integer SB_STERM = 9 ;
const integer SB_UPPER = 10 ;
const integer SB_CR = 11 ;
const integer SB_EXTEND = 12 ;
const integer SB_LF = 13 ;
const integer SB_SCONTINUE = 14 ;
const integer SB_COUNT = 15 ;
const integer LB_UNKNOWN = 0 ;
const integer LB_AMBIGUOUS = 1 ;
const integer LB_ALPHABETIC = 2 ;
const integer LB_BREAK_BOTH = 3 ;
const integer LB_BREAK_AFTER = 4 ;
const integer LB_BREAK_BEFORE = 5 ;
const integer LB_MANDATORY_BREAK = 6 ;
const integer LB_CONTINGENT_BREAK = 7 ;
const integer LB_CLOSE_PUNCTUATION = 8 ;
const integer LB_COMBINING_MARK = 9 ;
const integer LB_CARRIAGE_RETURN = 10 ;
const integer LB_EXCLAMATION = 11 ;
const integer LB_GLUE = 12 ;
const integer LB_HYPHEN = 13 ;
const integer LB_IDEOGRAPHIC = 14 ;
const integer LB_INSEPARABLE = 15 ;
const integer LB_INSEPERABLE = 15 ;
const integer LB_INFIX_NUMERIC = 16 ;
const integer LB_LINE_FEED = 17 ;
const integer LB_NONSTARTER = 18 ;
const integer LB_NUMERIC = 19 ;
const integer LB_OPEN_PUNCTUATION = 20 ;
const integer LB_POSTFIX_NUMERIC = 21 ;
const integer LB_PREFIX_NUMERIC = 22 ;
const integer LB_QUOTATION = 23 ;
const integer LB_COMPLEX_CONTEXT = 24 ;
const integer LB_SURROGATE = 25 ;
const integer LB_SPACE = 26 ;
const integer LB_BREAK_SYMBOLS = 27 ;
const integer LB_ZWSPACE = 28 ;
const integer LB_NEXT_LINE = 29 ;
const integer LB_WORD_JOINER = 30 ;
const integer LB_H2 = 31 ;
const integer LB_H3 = 32 ;
const integer LB_JL = 33 ;
const integer LB_JT = 34 ;
const integer LB_JV = 35 ;
const integer LB_CLOSE_PARENTHESIS = 36 ;
const integer LB_CONDITIONAL_JAPANESE_STARTER = 37 ;
const integer LB_HEBREW_LETTER = 38 ;
const integer LB_REGIONAL_INDICATOR = 39 ;
const integer LB_COUNT = 40 ;
const integer NT_NONE = 0 ;
const integer NT_DECIMAL = 1 ;
const integer NT_DIGIT = 2 ;
const integer NT_NUMERIC = 3 ;
const integer NT_COUNT = 4 ;
const integer HST_NOT_APPLICABLE = 0 ;
const integer HST_LEADING_JAMO = 1 ;
const integer HST_VOWEL_JAMO = 2 ;
const integer HST_TRAILING_JAMO = 3 ;
const integer HST_LV_SYLLABLE = 4 ;
const integer HST_LVT_SYLLABLE = 5 ;
const integer HST_COUNT = 6 ;
/* Методы */
public static array charAge ( mixed $codepoint )
public static int charDigitValue ( mixed $codepoint )
public static int charDirection ( mixed $codepoint )
public static int charFromName ( string $characterName [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] )
public static mixed charMirror ( mixed $codepoint )
public static string charName ( mixed $codepoint [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] )
public static int charType ( mixed $codepoint )
public static string chr ( mixed $codepoint )
public static int digit ( string $codepoint [, int $radix = 10 ] )
public static void enumCharNames ( mixed $start , mixed $limit , callable $callback [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] )
public static void enumCharTypes ( callable $callback )
public static mixed foldCase ( mixed $codepoint [, int $options = IntlChar::FOLD_CASE_DEFAULT ] )
public static int forDigit ( int $digit [, int $radix = 10 ] )
public static mixed getBidiPairedBracket ( mixed $codepoint )
public static int getBlockCode ( mixed $codepoint )
public static int getCombiningClass ( mixed $codepoint )
public static string getFC_NFKC_Closure ( mixed $codepoint )
public static int getIntPropertyMaxValue ( int $property )
public static int getIntPropertyMinValue ( int $property )
public static int getIntPropertyValue ( mixed $codepoint , int $property )
public static float getNumericValue ( mixed $codepoint )
public static int getPropertyEnum ( string $alias )
public static string getPropertyName ( int $property [, int $nameChoice = IntlChar::LONG_PROPERTY_NAME ] )
public static int getPropertyValueEnum ( int $property , string $name )
public static string getPropertyValueName ( int $property , int $value [, int $nameChoice = IntlChar::LONG_PROPERTY_NAME ] )
public static array getUnicodeVersion ( void )
public static bool hasBinaryProperty ( mixed $codepoint , int $property )
public static bool isalnum ( mixed $codepoint )
public static bool isalpha ( mixed $codepoint )
public static bool isbase ( mixed $codepoint )
public static bool isblank ( mixed $codepoint )
public static bool iscntrl ( mixed $codepoint )
public static bool isdefined ( mixed $codepoint )
public static bool isdigit ( mixed $codepoint )
public static bool isgraph ( mixed $codepoint )
public static bool isIDIgnorable ( mixed $codepoint )
public static bool isIDPart ( mixed $codepoint )
public static bool isIDStart ( mixed $codepoint )
public static bool isISOControl ( mixed $codepoint )
public static bool isJavaIDPart ( mixed $codepoint )
public static bool isJavaIDStart ( mixed $codepoint )
public static bool isJavaSpaceChar ( mixed $codepoint )
public static bool islower ( mixed $codepoint )
public static bool isMirrored ( mixed $codepoint )
public static bool isprint ( mixed $codepoint )
public static bool ispunct ( mixed $codepoint )
public static bool isspace ( mixed $codepoint )
public static bool istitle ( mixed $codepoint )
public static bool isUAlphabetic ( mixed $codepoint )
public static bool isULowercase ( mixed $codepoint )
public static bool isupper ( mixed $codepoint )
public static bool isUUppercase ( mixed $codepoint )
public static bool isUWhiteSpace ( mixed $codepoint )
public static bool isWhitespace ( mixed $codepoint )
public static bool isxdigit ( mixed $codepoint )
public static int ord ( mixed $character )
public static mixed tolower ( mixed $codepoint )
public static mixed totitle ( mixed $codepoint )
public static mixed toupper ( mixed $codepoint )
}

Предопределенные константы

IntlChar::UNICODE_VERSION

IntlChar::CODEPOINT_MIN

IntlChar::CODEPOINT_MAX

IntlChar::NO_NUMERIC_VALUE

Special value that is returned by IntlChar::getNumericValue() when no numeric value is defined for a code point.

IntlChar::PROPERTY_ALPHABETIC

IntlChar::PROPERTY_BINARY_START

IntlChar::PROPERTY_ASCII_HEX_DIGIT

IntlChar::PROPERTY_BIDI_CONTROL

IntlChar::PROPERTY_BIDI_MIRRORED

IntlChar::PROPERTY_DASH

IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT

IntlChar::PROPERTY_DEPRECATED

IntlChar::PROPERTY_DIACRITIC

IntlChar::PROPERTY_EXTENDER

IntlChar::PROPERTY_FULL_COMPOSITION_EXCLUSION

IntlChar::PROPERTY_GRAPHEME_BASE

IntlChar::PROPERTY_GRAPHEME_EXTEND

IntlChar::PROPERTY_GRAPHEME_LINK

IntlChar::PROPERTY_HEX_DIGIT

IntlChar::PROPERTY_HYPHEN

IntlChar::PROPERTY_ID_CONTINUE

IntlChar::PROPERTY_ID_START

IntlChar::PROPERTY_IDEOGRAPHIC

IntlChar::PROPERTY_IDS_BINARY_OPERATOR

IntlChar::PROPERTY_IDS_TRINARY_OPERATOR

IntlChar::PROPERTY_JOIN_CONTROL

IntlChar::PROPERTY_LOGICAL_ORDER_EXCEPTION

IntlChar::PROPERTY_LOWERCASE

IntlChar::PROPERTY_MATH

IntlChar::PROPERTY_NONCHARACTER_CODE_POINT

IntlChar::PROPERTY_QUOTATION_MARK

IntlChar::PROPERTY_RADICAL

IntlChar::PROPERTY_SOFT_DOTTED

IntlChar::PROPERTY_TERMINAL_PUNCTUATION

IntlChar::PROPERTY_UNIFIED_IDEOGRAPH

IntlChar::PROPERTY_UPPERCASE

IntlChar::PROPERTY_WHITE_SPACE

IntlChar::PROPERTY_XID_CONTINUE

IntlChar::PROPERTY_XID_START

IntlChar::PROPERTY_CASE_SENSITIVE

IntlChar::PROPERTY_S_TERM

IntlChar::PROPERTY_VARIATION_SELECTOR

IntlChar::PROPERTY_NFD_INERT

IntlChar::PROPERTY_NFKD_INERT

IntlChar::PROPERTY_NFC_INERT

IntlChar::PROPERTY_NFKC_INERT

IntlChar::PROPERTY_SEGMENT_STARTER

IntlChar::PROPERTY_PATTERN_SYNTAX

IntlChar::PROPERTY_PATTERN_WHITE_SPACE

IntlChar::PROPERTY_POSIX_ALNUM

IntlChar::PROPERTY_POSIX_BLANK

IntlChar::PROPERTY_POSIX_GRAPH

IntlChar::PROPERTY_POSIX_PRINT

IntlChar::PROPERTY_POSIX_XDIGIT

IntlChar::PROPERTY_CASED

IntlChar::PROPERTY_CASE_IGNORABLE

IntlChar::PROPERTY_CHANGES_WHEN_LOWERCASED

IntlChar::PROPERTY_CHANGES_WHEN_UPPERCASED

IntlChar::PROPERTY_CHANGES_WHEN_TITLECASED

IntlChar::PROPERTY_CHANGES_WHEN_CASEFOLDED

IntlChar::PROPERTY_CHANGES_WHEN_CASEMAPPED

IntlChar::PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED

IntlChar::PROPERTY_BINARY_LIMIT

IntlChar::PROPERTY_BIDI_CLASS

IntlChar::PROPERTY_INT_START

IntlChar::PROPERTY_BLOCK

IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_DECOMPOSITION_TYPE

IntlChar::PROPERTY_EAST_ASIAN_WIDTH

IntlChar::PROPERTY_GENERAL_CATEGORY

IntlChar::PROPERTY_JOINING_GROUP

IntlChar::PROPERTY_JOINING_TYPE

IntlChar::PROPERTY_LINE_BREAK

IntlChar::PROPERTY_NUMERIC_TYPE

IntlChar::PROPERTY_SCRIPT

IntlChar::PROPERTY_HANGUL_SYLLABLE_TYPE

IntlChar::PROPERTY_NFD_QUICK_CHECK

IntlChar::PROPERTY_NFKD_QUICK_CHECK

IntlChar::PROPERTY_NFC_QUICK_CHECK

IntlChar::PROPERTY_NFKC_QUICK_CHECK

IntlChar::PROPERTY_LEAD_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS

IntlChar::PROPERTY_GRAPHEME_CLUSTER_BREAK

IntlChar::PROPERTY_SENTENCE_BREAK

IntlChar::PROPERTY_WORD_BREAK

IntlChar::PROPERTY_BIDI_PAIRED_BRACKET_TYPE

IntlChar::PROPERTY_INT_LIMIT

IntlChar::PROPERTY_GENERAL_CATEGORY_MASK

IntlChar::PROPERTY_MASK_START

IntlChar::PROPERTY_MASK_LIMIT

IntlChar::PROPERTY_NUMERIC_VALUE

IntlChar::PROPERTY_DOUBLE_START

IntlChar::PROPERTY_DOUBLE_LIMIT

IntlChar::PROPERTY_AGE

IntlChar::PROPERTY_STRING_START

IntlChar::PROPERTY_BIDI_MIRRORING_GLYPH

IntlChar::PROPERTY_CASE_FOLDING

IntlChar::PROPERTY_ISO_COMMENT

IntlChar::PROPERTY_LOWERCASE_MAPPING

IntlChar::PROPERTY_NAME

IntlChar::PROPERTY_SIMPLE_CASE_FOLDING

IntlChar::PROPERTY_SIMPLE_LOWERCASE_MAPPING

IntlChar::PROPERTY_SIMPLE_TITLECASE_MAPPING

IntlChar::PROPERTY_SIMPLE_UPPERCASE_MAPPING

IntlChar::PROPERTY_TITLECASE_MAPPING

IntlChar::PROPERTY_UNICODE_1_NAME

IntlChar::PROPERTY_UPPERCASE_MAPPING

IntlChar::PROPERTY_BIDI_PAIRED_BRACKET

IntlChar::PROPERTY_STRING_LIMIT

IntlChar::PROPERTY_SCRIPT_EXTENSIONS

IntlChar::PROPERTY_OTHER_PROPERTY_START

IntlChar::PROPERTY_OTHER_PROPERTY_LIMIT

IntlChar::PROPERTY_INVALID_CODE

IntlChar::CHAR_CATEGORY_UNASSIGNED

IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES

IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER

IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER

IntlChar::CHAR_CATEGORY_TITLECASE_LETTER

IntlChar::CHAR_CATEGORY_MODIFIER_LETTER

IntlChar::CHAR_CATEGORY_OTHER_LETTER

IntlChar::CHAR_CATEGORY_NON_SPACING_MARK

IntlChar::CHAR_CATEGORY_ENCLOSING_MARK

IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK

IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER

IntlChar::CHAR_CATEGORY_LETTER_NUMBER

IntlChar::CHAR_CATEGORY_OTHER_NUMBER

IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR

IntlChar::CHAR_CATEGORY_LINE_SEPARATOR

IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR

IntlChar::CHAR_CATEGORY_CONTROL_CHAR

IntlChar::CHAR_CATEGORY_FORMAT_CHAR

IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR

IntlChar::CHAR_CATEGORY_SURROGATE

IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION

IntlChar::CHAR_CATEGORY_START_PUNCTUATION

IntlChar::CHAR_CATEGORY_END_PUNCTUATION

IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION

IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION

IntlChar::CHAR_CATEGORY_MATH_SYMBOL

IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL

IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL

IntlChar::CHAR_CATEGORY_OTHER_SYMBOL

IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION

IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION

IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR

IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR

IntlChar::CHAR_DIRECTION_ARABIC_NUMBER

IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR

IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR

IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR

IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL

IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE

IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT

IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK

IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL

IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE

IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE

IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE

IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE

IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT

IntlChar::BLOCK_CODE_NO_BLOCK

IntlChar::BLOCK_CODE_BASIC_LATIN

IntlChar::BLOCK_CODE_LATIN_1_SUPPLEMENT

IntlChar::BLOCK_CODE_LATIN_EXTENDED_A

IntlChar::BLOCK_CODE_LATIN_EXTENDED_B

IntlChar::BLOCK_CODE_IPA_EXTENSIONS

IntlChar::BLOCK_CODE_SPACING_MODIFIER_LETTERS

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS

IntlChar::BLOCK_CODE_GREEK

IntlChar::BLOCK_CODE_CYRILLIC

IntlChar::BLOCK_CODE_ARMENIAN

IntlChar::BLOCK_CODE_HEBREW

IntlChar::BLOCK_CODE_ARABIC

IntlChar::BLOCK_CODE_SYRIAC

IntlChar::BLOCK_CODE_THAANA

IntlChar::BLOCK_CODE_DEVANAGARI

IntlChar::BLOCK_CODE_BENGALI

IntlChar::BLOCK_CODE_GURMUKHI

IntlChar::BLOCK_CODE_GUJARATI

IntlChar::BLOCK_CODE_ORIYA

IntlChar::BLOCK_CODE_TAMIL

IntlChar::BLOCK_CODE_TELUGU

IntlChar::BLOCK_CODE_KANNADA

IntlChar::BLOCK_CODE_MALAYALAM

IntlChar::BLOCK_CODE_SINHALA

IntlChar::BLOCK_CODE_THAI

IntlChar::BLOCK_CODE_LAO

IntlChar::BLOCK_CODE_TIBETAN

IntlChar::BLOCK_CODE_MYANMAR

IntlChar::BLOCK_CODE_GEORGIAN

IntlChar::BLOCK_CODE_HANGUL_JAMO

IntlChar::BLOCK_CODE_ETHIOPIC

IntlChar::BLOCK_CODE_CHEROKEE

IntlChar::BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS

IntlChar::BLOCK_CODE_OGHAM

IntlChar::BLOCK_CODE_RUNIC

IntlChar::BLOCK_CODE_KHMER

IntlChar::BLOCK_CODE_MONGOLIAN

IntlChar::BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL

IntlChar::BLOCK_CODE_GREEK_EXTENDED

IntlChar::BLOCK_CODE_GENERAL_PUNCTUATION

IntlChar::BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS

IntlChar::BLOCK_CODE_CURRENCY_SYMBOLS

IntlChar::BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS

IntlChar::BLOCK_CODE_LETTERLIKE_SYMBOLS

IntlChar::BLOCK_CODE_NUMBER_FORMS

IntlChar::BLOCK_CODE_ARROWS

IntlChar::BLOCK_CODE_MATHEMATICAL_OPERATORS

IntlChar::BLOCK_CODE_MISCELLANEOUS_TECHNICAL

IntlChar::BLOCK_CODE_CONTROL_PICTURES

IntlChar::BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION

IntlChar::BLOCK_CODE_ENCLOSED_ALPHANUMERICS

IntlChar::BLOCK_CODE_BOX_DRAWING

IntlChar::BLOCK_CODE_BLOCK_ELEMENTS

IntlChar::BLOCK_CODE_GEOMETRIC_SHAPES

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS

IntlChar::BLOCK_CODE_DINGBATS

IntlChar::BLOCK_CODE_BRAILLE_PATTERNS

IntlChar::BLOCK_CODE_CJK_RADICALS_SUPPLEMENT

IntlChar::BLOCK_CODE_KANGXI_RADICALS

IntlChar::BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS

IntlChar::BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION

IntlChar::BLOCK_CODE_HIRAGANA

IntlChar::BLOCK_CODE_KATAKANA

IntlChar::BLOCK_CODE_BOPOMOFO

IntlChar::BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO

IntlChar::BLOCK_CODE_KANBUN

IntlChar::BLOCK_CODE_BOPOMOFO_EXTENDED

IntlChar::BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS

IntlChar::BLOCK_CODE_YI_SYLLABLES

IntlChar::BLOCK_CODE_YI_RADICALS

IntlChar::BLOCK_CODE_HANGUL_SYLLABLES

IntlChar::BLOCK_CODE_HIGH_SURROGATES

IntlChar::BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES

IntlChar::BLOCK_CODE_LOW_SURROGATES

IntlChar::BLOCK_CODE_PRIVATE_USE_AREA

IntlChar::BLOCK_CODE_PRIVATE_USE

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS

IntlChar::BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS

IntlChar::BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A

IntlChar::BLOCK_CODE_COMBINING_HALF_MARKS

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_FORMS

IntlChar::BLOCK_CODE_SMALL_FORM_VARIANTS

IntlChar::BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B

IntlChar::BLOCK_CODE_SPECIALS

IntlChar::BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS

IntlChar::BLOCK_CODE_OLD_ITALIC

IntlChar::BLOCK_CODE_GOTHIC

IntlChar::BLOCK_CODE_DESERET

IntlChar::BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS

IntlChar::BLOCK_CODE_MUSICAL_SYMBOLS

IntlChar::BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B

IntlChar::BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT

IntlChar::BLOCK_CODE_TAGS

IntlChar::BLOCK_CODE_CYRILLIC_SUPPLEMENT

IntlChar::BLOCK_CODE_CYRILLIC_SUPPLEMENTARY

IntlChar::BLOCK_CODE_TAGALOG

IntlChar::BLOCK_CODE_HANUNOO

IntlChar::BLOCK_CODE_BUHID

IntlChar::BLOCK_CODE_TAGBANWA

IntlChar::BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_A

IntlChar::BLOCK_CODE_SUPPLEMENTAL_ARROWS_B

IntlChar::BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B

IntlChar::BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS

IntlChar::BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS

IntlChar::BLOCK_CODE_VARIATION_SELECTORS

IntlChar::BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A

IntlChar::BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B

IntlChar::BLOCK_CODE_LIMBU

IntlChar::BLOCK_CODE_TAI_LE

IntlChar::BLOCK_CODE_KHMER_SYMBOLS

IntlChar::BLOCK_CODE_PHONETIC_EXTENSIONS

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS

IntlChar::BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS

IntlChar::BLOCK_CODE_LINEAR_B_SYLLABARY

IntlChar::BLOCK_CODE_LINEAR_B_IDEOGRAMS

IntlChar::BLOCK_CODE_AEGEAN_NUMBERS

IntlChar::BLOCK_CODE_UGARITIC

IntlChar::BLOCK_CODE_SHAVIAN

IntlChar::BLOCK_CODE_OSMANYA

IntlChar::BLOCK_CODE_CYPRIOT_SYLLABARY

IntlChar::BLOCK_CODE_TAI_XUAN_JING_SYMBOLS

IntlChar::BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT

IntlChar::BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION

IntlChar::BLOCK_CODE_ANCIENT_GREEK_NUMBERS

IntlChar::BLOCK_CODE_ARABIC_SUPPLEMENT

IntlChar::BLOCK_CODE_BUGINESE

IntlChar::BLOCK_CODE_CJK_STROKES

IntlChar::BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT

IntlChar::BLOCK_CODE_COPTIC

IntlChar::BLOCK_CODE_ETHIOPIC_EXTENDED

IntlChar::BLOCK_CODE_ETHIOPIC_SUPPLEMENT

IntlChar::BLOCK_CODE_GEORGIAN_SUPPLEMENT

IntlChar::BLOCK_CODE_GLAGOLITIC

IntlChar::BLOCK_CODE_KHAROSHTHI

IntlChar::BLOCK_CODE_MODIFIER_TONE_LETTERS

IntlChar::BLOCK_CODE_NEW_TAI_LUE

IntlChar::BLOCK_CODE_OLD_PERSIAN

IntlChar::BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT

IntlChar::BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION

IntlChar::BLOCK_CODE_SYLOTI_NAGRI

IntlChar::BLOCK_CODE_TIFINAGH

IntlChar::BLOCK_CODE_VERTICAL_FORMS

IntlChar::BLOCK_CODE_NKO

IntlChar::BLOCK_CODE_BALINESE

IntlChar::BLOCK_CODE_LATIN_EXTENDED_C

IntlChar::BLOCK_CODE_LATIN_EXTENDED_D

IntlChar::BLOCK_CODE_PHAGS_PA

IntlChar::BLOCK_CODE_PHOENICIAN

IntlChar::BLOCK_CODE_CUNEIFORM

IntlChar::BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION

IntlChar::BLOCK_CODE_COUNTING_ROD_NUMERALS

IntlChar::BLOCK_CODE_SUNDANESE

IntlChar::BLOCK_CODE_LEPCHA

IntlChar::BLOCK_CODE_OL_CHIKI

IntlChar::BLOCK_CODE_CYRILLIC_EXTENDED_A

IntlChar::BLOCK_CODE_VAI

IntlChar::BLOCK_CODE_CYRILLIC_EXTENDED_B

IntlChar::BLOCK_CODE_SAURASHTRA

IntlChar::BLOCK_CODE_KAYAH_LI

IntlChar::BLOCK_CODE_REJANG

IntlChar::BLOCK_CODE_CHAM

IntlChar::BLOCK_CODE_ANCIENT_SYMBOLS

IntlChar::BLOCK_CODE_PHAISTOS_DISC

IntlChar::BLOCK_CODE_LYCIAN

IntlChar::BLOCK_CODE_CARIAN

IntlChar::BLOCK_CODE_LYDIAN

IntlChar::BLOCK_CODE_MAHJONG_TILES

IntlChar::BLOCK_CODE_DOMINO_TILES

IntlChar::BLOCK_CODE_SAMARITAN

IntlChar::BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED

IntlChar::BLOCK_CODE_TAI_THAM

IntlChar::BLOCK_CODE_VEDIC_EXTENSIONS

IntlChar::BLOCK_CODE_LISU

IntlChar::BLOCK_CODE_BAMUM

IntlChar::BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS

IntlChar::BLOCK_CODE_DEVANAGARI_EXTENDED

IntlChar::BLOCK_CODE_HANGUL_JAMO_EXTENDED_A

IntlChar::BLOCK_CODE_JAVANESE

IntlChar::BLOCK_CODE_MYANMAR_EXTENDED_A

IntlChar::BLOCK_CODE_TAI_VIET

IntlChar::BLOCK_CODE_MEETEI_MAYEK

IntlChar::BLOCK_CODE_HANGUL_JAMO_EXTENDED_B

IntlChar::BLOCK_CODE_IMPERIAL_ARAMAIC

IntlChar::BLOCK_CODE_OLD_SOUTH_ARABIAN

IntlChar::BLOCK_CODE_AVESTAN

IntlChar::BLOCK_CODE_INSCRIPTIONAL_PARTHIAN

IntlChar::BLOCK_CODE_INSCRIPTIONAL_PAHLAVI

IntlChar::BLOCK_CODE_OLD_TURKIC

IntlChar::BLOCK_CODE_RUMI_NUMERAL_SYMBOLS

IntlChar::BLOCK_CODE_KAITHI

IntlChar::BLOCK_CODE_EGYPTIAN_HIEROGLYPHS

IntlChar::BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT

IntlChar::BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C

IntlChar::BLOCK_CODE_MANDAIC

IntlChar::BLOCK_CODE_BATAK

IntlChar::BLOCK_CODE_ETHIOPIC_EXTENDED_A

IntlChar::BLOCK_CODE_BRAHMI

IntlChar::BLOCK_CODE_BAMUM_SUPPLEMENT

IntlChar::BLOCK_CODE_KANA_SUPPLEMENT

IntlChar::BLOCK_CODE_PLAYING_CARDS

IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS

IntlChar::BLOCK_CODE_EMOTICONS

IntlChar::BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS

IntlChar::BLOCK_CODE_ALCHEMICAL_SYMBOLS

IntlChar::BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D

IntlChar::BLOCK_CODE_ARABIC_EXTENDED_A

IntlChar::BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS

IntlChar::BLOCK_CODE_CHAKMA

IntlChar::BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS

IntlChar::BLOCK_CODE_MEROITIC_CURSIVE

IntlChar::BLOCK_CODE_MEROITIC_HIEROGLYPHS

IntlChar::BLOCK_CODE_MIAO

IntlChar::BLOCK_CODE_SHARADA

IntlChar::BLOCK_CODE_SORA_SOMPENG

IntlChar::BLOCK_CODE_SUNDANESE_SUPPLEMENT

IntlChar::BLOCK_CODE_TAKRI

IntlChar::BLOCK_CODE_COUNT

IntlChar::BLOCK_CODE_INVALID_CODE

IntlChar::BPT_NONE

IntlChar::BPT_OPEN

IntlChar::BPT_CLOSE

IntlChar::BPT_COUNT

IntlChar::EA_NEUTRAL

IntlChar::EA_AMBIGUOUS

IntlChar::EA_HALFWIDTH

IntlChar::EA_FULLWIDTH

IntlChar::EA_NARROW

IntlChar::EA_WIDE

IntlChar::EA_COUNT

IntlChar::UNICODE_CHAR_NAME

IntlChar::UNICODE_10_CHAR_NAME

IntlChar::EXTENDED_CHAR_NAME

IntlChar::CHAR_NAME_ALIAS

IntlChar::CHAR_NAME_CHOICE_COUNT

IntlChar::SHORT_PROPERTY_NAME

IntlChar::LONG_PROPERTY_NAME

IntlChar::PROPERTY_NAME_CHOICE_COUNT

IntlChar::DT_NONE

IntlChar::DT_CANONICAL

IntlChar::DT_COMPAT

IntlChar::DT_CIRCLE

IntlChar::DT_FINAL

IntlChar::DT_FONT

IntlChar::DT_FRACTION

IntlChar::DT_INITIAL

IntlChar::DT_ISOLATED

IntlChar::DT_MEDIAL

IntlChar::DT_NARROW

IntlChar::DT_NOBREAK

IntlChar::DT_SMALL

IntlChar::DT_SQUARE

IntlChar::DT_SUB

IntlChar::DT_SUPER

IntlChar::DT_VERTICAL

IntlChar::DT_WIDE

IntlChar::DT_COUNT

IntlChar::JT_NON_JOINING

IntlChar::JT_JOIN_CAUSING

IntlChar::JT_DUAL_JOINING

IntlChar::JT_LEFT_JOINING

IntlChar::JT_RIGHT_JOINING

IntlChar::JT_TRANSPARENT

IntlChar::JT_COUNT

IntlChar::JG_NO_JOINING_GROUP

IntlChar::JG_AIN

IntlChar::JG_ALAPH

IntlChar::JG_ALEF

IntlChar::JG_BEH

IntlChar::JG_BETH

IntlChar::JG_DAL

IntlChar::JG_DALATH_RISH

IntlChar::JG_E

IntlChar::JG_FEH

IntlChar::JG_FINAL_SEMKATH

IntlChar::JG_GAF

IntlChar::JG_GAMAL

IntlChar::JG_HAH

IntlChar::JG_TEH_MARBUTA_GOAL

IntlChar::JG_HAMZA_ON_HEH_GOAL

IntlChar::JG_HE

IntlChar::JG_HEH

IntlChar::JG_HEH_GOAL

IntlChar::JG_HETH

IntlChar::JG_KAF

IntlChar::JG_KAPH

IntlChar::JG_KNOTTED_HEH

IntlChar::JG_LAM

IntlChar::JG_LAMADH

IntlChar::JG_MEEM

IntlChar::JG_MIM

IntlChar::JG_NOON

IntlChar::JG_NUN

IntlChar::JG_PE

IntlChar::JG_QAF

IntlChar::JG_QAPH

IntlChar::JG_REH

IntlChar::JG_REVERSED_PE

IntlChar::JG_SAD

IntlChar::JG_SADHE

IntlChar::JG_SEEN

IntlChar::JG_SEMKATH

IntlChar::JG_SHIN

IntlChar::JG_SWASH_KAF

IntlChar::JG_SYRIAC_WAW

IntlChar::JG_TAH

IntlChar::JG_TAW

IntlChar::JG_TEH_MARBUTA

IntlChar::JG_TETH

IntlChar::JG_WAW

IntlChar::JG_YEH

IntlChar::JG_YEH_BARREE

IntlChar::JG_YEH_WITH_TAIL

IntlChar::JG_YUDH

IntlChar::JG_YUDH_HE

IntlChar::JG_ZAIN

IntlChar::JG_FE

IntlChar::JG_KHAPH

IntlChar::JG_ZHAIN

IntlChar::JG_BURUSHASKI_YEH_BARREE

IntlChar::JG_FARSI_YEH

IntlChar::JG_NYA

IntlChar::JG_ROHINGYA_YEH

IntlChar::JG_COUNT

IntlChar::GCB_OTHER

IntlChar::GCB_CONTROL

IntlChar::GCB_CR

IntlChar::GCB_EXTEND

IntlChar::GCB_L

IntlChar::GCB_LF

IntlChar::GCB_LV

IntlChar::GCB_LVT

IntlChar::GCB_T

IntlChar::GCB_V

IntlChar::GCB_SPACING_MARK

IntlChar::GCB_PREPEND

IntlChar::GCB_REGIONAL_INDICATOR

IntlChar::GCB_COUNT

IntlChar::WB_OTHER

IntlChar::WB_ALETTER

IntlChar::WB_FORMAT

IntlChar::WB_KATAKANA

IntlChar::WB_MIDLETTER

IntlChar::WB_MIDNUM

IntlChar::WB_NUMERIC

IntlChar::WB_EXTENDNUMLET

IntlChar::WB_CR

IntlChar::WB_EXTEND

IntlChar::WB_LF

IntlChar::WB_MIDNUMLET

IntlChar::WB_NEWLINE

IntlChar::WB_REGIONAL_INDICATOR

IntlChar::WB_HEBREW_LETTER

IntlChar::WB_SINGLE_QUOTE

IntlChar::WB_DOUBLE_QUOTE

IntlChar::WB_COUNT

IntlChar::SB_OTHER

IntlChar::SB_ATERM

IntlChar::SB_CLOSE

IntlChar::SB_FORMAT

IntlChar::SB_LOWER

IntlChar::SB_NUMERIC

IntlChar::SB_OLETTER

IntlChar::SB_SEP

IntlChar::SB_SP

IntlChar::SB_STERM

IntlChar::SB_UPPER

IntlChar::SB_CR

IntlChar::SB_EXTEND

IntlChar::SB_LF

IntlChar::SB_SCONTINUE

IntlChar::SB_COUNT

IntlChar::LB_UNKNOWN

IntlChar::LB_AMBIGUOUS

IntlChar::LB_ALPHABETIC

IntlChar::LB_BREAK_BOTH

IntlChar::LB_BREAK_AFTER

IntlChar::LB_BREAK_BEFORE

IntlChar::LB_MANDATORY_BREAK

IntlChar::LB_CONTINGENT_BREAK

IntlChar::LB_CLOSE_PUNCTUATION

IntlChar::LB_COMBINING_MARK

IntlChar::LB_CARRIAGE_RETURN

IntlChar::LB_EXCLAMATION

IntlChar::LB_GLUE

IntlChar::LB_HYPHEN

IntlChar::LB_IDEOGRAPHIC

IntlChar::LB_INSEPARABLE

IntlChar::LB_INSEPERABLE

IntlChar::LB_INFIX_NUMERIC

IntlChar::LB_LINE_FEED

IntlChar::LB_NONSTARTER

IntlChar::LB_NUMERIC

IntlChar::LB_OPEN_PUNCTUATION

IntlChar::LB_POSTFIX_NUMERIC

IntlChar::LB_PREFIX_NUMERIC

IntlChar::LB_QUOTATION

IntlChar::LB_COMPLEX_CONTEXT

IntlChar::LB_SURROGATE

IntlChar::LB_SPACE

IntlChar::LB_BREAK_SYMBOLS

IntlChar::LB_ZWSPACE

IntlChar::LB_NEXT_LINE

IntlChar::LB_WORD_JOINER

IntlChar::LB_H2

IntlChar::LB_H3

IntlChar::LB_JL

IntlChar::LB_JT

IntlChar::LB_JV

IntlChar::LB_CLOSE_PARENTHESIS

IntlChar::LB_CONDITIONAL_JAPANESE_STARTER

IntlChar::LB_HEBREW_LETTER

IntlChar::LB_REGIONAL_INDICATOR

IntlChar::LB_COUNT

IntlChar::NT_NONE

IntlChar::NT_DECIMAL

IntlChar::NT_DIGIT

IntlChar::NT_NUMERIC

IntlChar::NT_COUNT

IntlChar::HST_NOT_APPLICABLE

IntlChar::HST_LEADING_JAMO

IntlChar::HST_VOWEL_JAMO

IntlChar::HST_TRAILING_JAMO

IntlChar::HST_LV_SYLLABLE

IntlChar::HST_LVT_SYLLABLE

IntlChar::HST_COUNT

IntlChar::FOLD_CASE_DEFAULT

IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I

Список изменений

Версия | Описание
7.0.6 | Добавлена константа IntlChar::NO_NUMERIC_VALUE.

Содержание

  • IntlChar::charAge — Получить "возраст" символьного кода
  • IntlChar::charDigitValue — Получить десятичную цифру из символа десятичной цифры
  • IntlChar::charDirection — Получить категорию направления письма для символа
  • IntlChar::charFromName — Найти символ Unicode по его имени и вернуть его код
  • IntlChar::charMirror — Получить "зеркальный" символ по коду
  • IntlChar::charName — Получить имя символа Unicode
  • IntlChar::charType — Получить главную категорию, в которую входит символ
  • IntlChar::chr — Получить символ Unicode по его коду
  • IntlChar::digit — Получить десятичное число из символа Unicode с заданным основанием
  • IntlChar::enumCharNames — Перечисляет все присвоенные символы Unicode в заданном диапазоне
  • IntlChar::enumCharTypes — Перечисление последовательностей символов Unicode сгруппированых по им категориям
  • IntlChar::foldCase — Производит преобразование регистра заданного символа
  • IntlChar::forDigit — Получить символ представляющий заданное число в заданном основании
  • IntlChar::getBidiPairedBracket — Получить парную скобку для символа
  • IntlChar::getBlockCode — Получить блок размещения символа Unicode
  • IntlChar::getCombiningClass — Получить комбинирующий класс для символа
  • IntlChar::getFC_NFKC_Closure — Получить свойство FC_NFKC_Closure для символа
  • IntlChar::getIntPropertyMaxValue — Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyMinValue — Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyValue — Получить значение свойства Unicode для символа
  • IntlChar::getNumericValue — Получить числовое предствление для символа Unicode
  • IntlChar::getPropertyEnum — Получить значение константы свойства по его имени
  • IntlChar::getPropertyName — Получить Unicode имя свойства
  • IntlChar::getPropertyValueEnum — Вернуть числовой идентификатор свойства по его имени
  • IntlChar::getPropertyValueName — Получить имя Unicode для значения свойства
  • IntlChar::getUnicodeVersion — Получить версию Unicode
  • IntlChar::hasBinaryProperty — Проверить бинарное свойство Unicode для символа
  • IntlChar::isalnum — Проверить, является ли символ буквой либо цифрой
  • IntlChar::isalpha — Проверить, является ли символ буквой
  • IntlChar::isbase — Проверить, является ли символ базовым
  • IntlChar::isblank — Проверить, является ли символ "пустым" либо "горизонтальным пробелом"
  • IntlChar::iscntrl — Проверить, является ли символ управляющим
  • IntlChar::isdefined — Проверить, определен ли символ
  • IntlChar::isdigit — Проверить, является ли символ цифрой
  • IntlChar::isgraph — Проверить, является ли символ графическим символом
  • IntlChar::isIDIgnorable — Проверить, является ли символ игнорируемым
  • IntlChar::isIDPart — Проверить, допустимо ли использовать символ в идентификаторе
  • IntlChar::isIDStart — Проверить, допустимо ли использовать символ в начале идентификатора
  • IntlChar::isISOControl — Проверить, является ли символ управляющим согласно ISO
  • IntlChar::isJavaIDPart — Проверить, является ли символ допустимым в идентификаторе Java
  • IntlChar::isJavaIDStart — Проверить, может ли символ быть первым в идентификаторе Java
  • IntlChar::isJavaSpaceChar — Проверить, является ли символ пробельным с точки зрения языка Java
  • IntlChar::islower — Проверить, в нижнем ли регистре символ
  • IntlChar::isMirrored — Проверить, если у символа свойство Bidi_Mirrored
  • IntlChar::isprint — Проверяет, является ли симвом отображаемым
  • IntlChar::ispunct — Проверяет, является ли символ символом пунктуации
  • IntlChar::isspace — Проверяет, является ли символ пробельным
  • IntlChar::istitle — Проверить, является ли символ титульным (Titlecase)
  • IntlChar::isUAlphabetic — Проверить, установлено ли у символа свойство Alphabetic
  • IntlChar::isULowercase — Проверить, является ли символ символом в нижнем регистре
  • IntlChar::isupper — Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
  • IntlChar::isUUppercase — Проверить, является ли символ символом в верхнем регистре
  • IntlChar::isUWhiteSpace — Проверить, имеет ли символ свойство White_Space (пробельный символ)
  • IntlChar::isWhitespace — Проверить, является ли символ пробельным с точки зрения ICU
  • IntlChar::isxdigit — Проверить, является ли символ шестнадцатеричной цифрой
  • IntlChar::ord — Получить код символ Unicode
  • IntlChar::tolower — Преобразование символа Unicode в нижний регистр
  • IntlChar::totitle — Преобразует символ Unicode в titlecase
  • IntlChar::toupper — Преобразование символа Unicode в верхний регистр


Получить "возраст" символьного кода

  • « IntlChar
  • IntlChar::charDigitValue »
  • PHP Manual
  • IntlChar
  • Получить "возраст" символьного кода

IntlChar::charAge

(PHP 7)

IntlChar::charAge — Получить "возраст" символьного кода

Описание

public static array IntlChar::charAge ( mixed $codepoint )

Возвращает "возраст" символьного кода.

"Возраст" - это версия Unicode в которой этот символьный код впервые был обозначен (как не-символ или для приватного использования) или принят как символ. Это может быть полезно в случаях, когд анеобходимо передать строку системе не поддерживающей новые символы.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Номер версии Unicode в виде массива. К примеру, версия 1.3.31.2 вернется как [1, 3, 31, 2].

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charage("\u{2603}"));
var_dump(IntlChar::charage("\u{1F576}"));
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  int(1)
  [1]=>
  int(1)
  [2]=>
  int(0)
  [3]=>
  int(0)
}
array(4) {
  [0]=>
  int(7)
  [1]=>
  int(0)
  [2]=>
  int(0)
  [3]=>
  int(0)
}

Смотрите также

  • IntlChar::getUnicodeVersion() - Получить версию Unicode
  • IntlChar::getIntPropertyMinValue() - Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyValue() - Получить значение свойства Unicode для символа


Получить десятичную цифру из символа десятичной цифры

  • « IntlChar::charAge
  • IntlChar::charDirection »
  • PHP Manual
  • IntlChar
  • Получить десятичную цифру из символа десятичной цифры

IntlChar::charDigitValue

(PHP 7)

IntlChar::charDigitValue — Получить десятичную цифру из символа десятичной цифры

Описание

public static int IntlChar::charDigitValue ( mixed $codepoint )

Получает Получить десятичную цифру из символа десятичной цифры.

Такие символы в ходят в глобальную категорию "Nd" (десятичные цифры) и Numeric_Type в Decimal.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Цифра, соответствующая символу codepoint, или -1 если символ не является десятичной цифрой.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charDigitValue("1"));
var_dump(IntlChar::charDigitValue("\u{0662}"));
var_dump(IntlChar::charDigitValue("\u{0E53}"));
?>

Результат выполнения данного примера:

int(1)
int(2)
int(3)

Смотрите также

  • IntlChar::getNumericValue() - Получить числовое предствление для символа Unicode


Получить категорию направления письма для символа

  • « IntlChar::charDigitValue
  • IntlChar::charFromName »
  • PHP Manual
  • IntlChar
  • Получить категорию направления письма для символа

IntlChar::charDirection

(PHP 7)

IntlChar::charDirection — Получить категорию направления письма для символа

Описание

public static int IntlChar::charDirection ( mixed $codepoint )

Возвращает категорию направления письма для символа, которая используется в » Двунаправленном алгоритме Unicode (UAX #9).

Замечание:

Некоторые неназначенные символьные коды имеют категории R или AL потому, что они находятся в блоках зарезервированных под написание слева направо.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Значение категории направления письма, одна из констант:

  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR
  • IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR
  • IntlChar::CHAR_DIRECTION_ARABIC_NUMBER
  • IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR
  • IntlChar::CHAR_DIRECTION_BLOCK_SEPARATOR
  • IntlChar::CHAR_DIRECTION_SEGMENT_SEPARATOR
  • IntlChar::CHAR_DIRECTION_WHITE_SPACE_NEUTRAL
  • IntlChar::CHAR_DIRECTION_OTHER_NEUTRAL
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE
  • IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT
  • IntlChar::CHAR_DIRECTION_DIR_NON_SPACING_MARK
  • IntlChar::CHAR_DIRECTION_BOUNDARY_NEUTRAL
  • IntlChar::CHAR_DIRECTION_FIRST_STRONG_ISOLATE
  • IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE
  • IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE
  • IntlChar::CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE
  • IntlChar::CHAR_DIRECTION_CHAR_DIRECTION_COUNT

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charDirection("A") === IntlChar::CHAR_DIRECTION_LEFT_TO_RIGHT);
var_dump(IntlChar::charDirection("\u{05E9}") === IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT);
var_dump(IntlChar::charDirection("+") === IntlChar::CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR);
var_dump(IntlChar::charDirection(".") === IntlChar::CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(true)


Найти символ Unicode по его имени и вернуть его код

  • « IntlChar::charDirection
  • IntlChar::charMirror »
  • PHP Manual
  • IntlChar
  • Найти символ Unicode по его имени и вернуть его код

IntlChar::charFromName

(PHP 7)

IntlChar::charFromName — Найти символ Unicode по его имени и вернуть его код

Описание

public static int IntlChar::charFromName ( string $characterName [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] )

Находит символ Unicode по его имени и возвращает его код.

Имя сравнивается точно и полностью. Если имя не соответствует какому либо символу, то вернет FALSE.

Имя Unicode 1.0 считается совпавшим только если оно отличается от современного имени. Все имена Unicode должны выть в верхнем регистре. Расширенные имена в нижнем регистре и содержат шестнадцатеричное значение в фигурных скобках.

Список параметров

characterName

Полное имя символа Unicode.

nameChoice

Какие типы символов искать. Одна из констант:

  • IntlChar::UNICODE_CHAR_NAME (по умолчанию)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Возвращаемые значения

Значение кода символа Unicode по заданному имени (в виде целого числа), или FALSE, если такого символа нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charFromName("LATIN CAPITAL LETTER A"));
var_dump(IntlChar::charFromName("SNOWMAN"));
var_dump(IntlChar::charFromName("RECYCLING SYMBOL FOR TYPE-1 PLASTICS"));
var_dump(IntlChar::charFromName("A RANDOM STRING WHICH DOESN'T CORRESPOND TO ANY UNICODE CHARACTER"));
?>

Результат выполнения данного примера:

int(65)
int(9731)
int(9843)
bool(false)

Смотрите также

  • IntlChar::charName() - Получить имя символа Unicode
  • IntlChar::enumCharNames() - Перечисляет все присвоенные символы Unicode в заданном диапазоне


Получить "зеркальный" символ по коду

  • « IntlChar::charFromName
  • IntlChar::charName »
  • PHP Manual
  • IntlChar
  • Получить "зеркальный" символ по коду

IntlChar::charMirror

(PHP 7)

IntlChar::charMirror — Получить "зеркальный" символ по коду

Описание

public static mixed IntlChar::charMirror ( mixed $codepoint )

Связывает указанный символ с его зеркальным отражением.

Для символов со свойством Bidi_Mirrored, иногда необходимо получить связь с другим символом Unicode который можно использовать как зеркальное отраженние глифа заданного символа. Этакий способ преобразования текста в и из кодировок с визуального порядка "для бедных". Также полезно для дисплеев без возможности выбора глифа.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает другой код символа Unicode, который можно использовать как зеркальное отражение заданного, или codepoint, если подходящего символа не нашлось или если codepoint не имеет свойства Bidi_Mirrored.

Возвращаемый тип должен быть integer, если только символ не был передан как строка UTF-8 (string), в этом случае вернется строка.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charMirror("A"));
var_dump(IntlChar::charMirror("<"));
var_dump(IntlChar::charMirror("("));
?>

Результат выполнения данного примера:

string(1) "A"
string(1) ">"
string(2) ")"

Смотрите также

  • IntlChar::isMirrored() - Проверить, если у символа свойство Bidi_Mirrored
  • IntlChar::PROPERTY_BIDI_MIRRORED


Получить имя символа Unicode

  • « IntlChar::charMirror
  • IntlChar::charType »
  • PHP Manual
  • IntlChar
  • Получить имя символа Unicode

IntlChar::charName

(PHP 7)

IntlChar::charName — Получить имя символа Unicode

Описание

public static string IntlChar::charName ( mixed $codepoint [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] )

Возвращает имя символа Unicode.

В зависимости от nameChoice, возвращенное имя может быть как "современным", так и именем определенным в Unicode версии 1.0. Имя содержит только "неизменяемые" символы, такие как A-Z, 0-9, пробел и '-'. Имя Unicode 1.0 возвращается только если оно отличается от "современного" для данного символа и если в ICU есть запись о нем.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

nameChoice

Какие типы символов искать. Одна из констант:

  • IntlChar::UNICODE_CHAR_NAME (default)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Возвращаемые значения

Соответствующее имя или пустую строку, если символ не имеет имени.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charName("."));
var_dump(IntlChar::charName(".", IntlChar::UNICODE_CHAR_NAME));
var_dump(IntlChar::charName("\u{2603}"));
var_dump(IntlChar::charName("\u{0000}"));
?>

Результат выполнения данного примера:

string(9) "FULL STOP"
string(9) "FULL STOP"
string(7) "SNOWMAN"
string(0) ""

Смотрите также

  • IntlChar::charFromName() - Найти символ Unicode по его имени и вернуть его код
  • IntlChar::enumCharNames() - Перечисляет все присвоенные символы Unicode в заданном диапазоне


Получить главную категорию, в которую входит символ

  • « IntlChar::charName
  • IntlChar::chr »
  • PHP Manual
  • IntlChar
  • Получить главную категорию, в которую входит символ

IntlChar::charType

(PHP 7)

IntlChar::charType — Получить главную категорию, в которую входит символ

Описание

public static int IntlChar::charType ( mixed $codepoint )

Возвращает главную категорию, в которую входит символ.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает главную категорию; одну из констант:

  • IntlChar::CHAR_CATEGORY_UNASSIGNED
  • IntlChar::CHAR_CATEGORY_GENERAL_OTHER_TYPES
  • IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER
  • IntlChar::CHAR_CATEGORY_LOWERCASE_LETTER
  • IntlChar::CHAR_CATEGORY_TITLECASE_LETTER
  • IntlChar::CHAR_CATEGORY_MODIFIER_LETTER
  • IntlChar::CHAR_CATEGORY_OTHER_LETTER
  • IntlChar::CHAR_CATEGORY_NON_SPACING_MARK
  • IntlChar::CHAR_CATEGORY_ENCLOSING_MARK
  • IntlChar::CHAR_CATEGORY_COMBINING_SPACING_MARK
  • IntlChar::CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER
  • IntlChar::CHAR_CATEGORY_LETTER_NUMBER
  • IntlChar::CHAR_CATEGORY_OTHER_NUMBER
  • IntlChar::CHAR_CATEGORY_SPACE_SEPARATOR
  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR
  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR
  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR
  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR
  • IntlChar::CHAR_CATEGORY_PRIVATE_USE_CHAR
  • IntlChar::CHAR_CATEGORY_SURROGATE
  • IntlChar::CHAR_CATEGORY_DASH_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_START_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_END_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_CONNECTOR_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_MATH_SYMBOL
  • IntlChar::CHAR_CATEGORY_CURRENCY_SYMBOL
  • IntlChar::CHAR_CATEGORY_MODIFIER_SYMBOL
  • IntlChar::CHAR_CATEGORY_OTHER_SYMBOL
  • IntlChar::CHAR_CATEGORY_INITIAL_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_FINAL_PUNCTUATION
  • IntlChar::CHAR_CATEGORY_CHAR_CATEGORY_COUNT

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::charType("A") === IntlChar::CHAR_CATEGORY_UPPERCASE_LETTER);
var_dump(IntlChar::charType(".") === IntlChar::CHAR_CATEGORY_OTHER_PUNCTUATION);
var_dump(IntlChar::charType("\t") === IntlChar::CHAR_CATEGORY_CONTROL_CHAR);
var_dump(IntlChar::charType("\u{2603}") === IntlChar::CHAR_CATEGORY_OTHER_SYMBOL);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(true)


Получить символ Unicode по его коду

  • « IntlChar::charType
  • IntlChar::digit »
  • PHP Manual
  • IntlChar
  • Получить символ Unicode по его коду

IntlChar::chr

(PHP 7)

IntlChar::chr — Получить символ Unicode по его коду

Описание

public static string IntlChar::chr ( mixed $codepoint )

Возвращает строку, содержащую символ Unicode с заданным кодом.

Эта функция обратна функции IntlChar::ord().

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает строку, содержащую символ Unicode с заданным кодом.

Примеры

Пример #1 Тестирование различных способов задания

<?php
$values = ["A", 63, 123, 9731];
foreach ($values as $value) {
    var_dump(IntlChar::chr($value));
}
?>

Результат выполнения данного примера:

string(1) "A"
string(1) "A"
string(1) "{"
string(3) "?"

Смотрите также

  • IntlChar::ord() - Получить код символ Unicode
  • chr() - Возвращает символ по его коду


Получить десятичное число из символа Unicode с заданным основанием

  • « IntlChar::chr
  • IntlChar::enumCharNames »
  • PHP Manual
  • IntlChar
  • Получить десятичное число из символа Unicode с заданным основанием

IntlChar::digit

(PHP 7)

IntlChar::digit — Получить десятичное число из символа Unicode с заданным основанием

Описание

public static int IntlChar::digit ( string $codepoint [, int $radix = 10 ] )

Возвращает десятичное число из символа Unicode с заданным основанием.

Если основание не входит в диапазон 2<=radix<=36 или если codepoint не является корректным символом для этого основания, возвращается FALSE. Символ является корректной цифрой если выполняется хотя бы одно из условий:

  • Символ представляет собой десятичную цифру. Такие символы входят в глобальную категорию "Nd" (десятичные цифры) и Numeric_Type является Decimal. В этом случае возвращается соответствующая десятичная цифра.
  • Символ является одной из заглавных латинских букв от 'A' до 'Z'. В этом случае 'A' - это 10.
  • Символ является одной из строчных латинских букв от 'a' до 'z'. В этом случае 'a' - это 10.
  • Латинские буквы из ASCII диапазона (0061..007A, 0041..005A). Также подходят диапазоны Полного ASCII (FF41..FF5A, FF21..FF3A).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

radix

Основание (по умолчанию 10).

Возвращаемые значения

Возвращает десятичное число из символа Unicode с заданным основанием или FALSE, если символ некорректен или выходит за рамки основания.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::digit("0"));
var_dump(IntlChar::digit("3"));
var_dump(IntlChar::digit("A"));
var_dump(IntlChar::digit("A", 16));
?>

Результат выполнения данного примера:

int(0)
int(3)
bool(false)
int(10)

Смотрите также

  • IntlChar::forDigit() - Получить символ представляющий заданное число в заданном основании
  • IntlChar::charDigitValue() - Получить десятичную цифру из символа десятичной цифры
  • IntlChar::isdigit() - Проверить, является ли символ цифрой
  • IntlChar::PROPERTY_NUMERIC_TYPE


Перечисляет все присвоенные символы Unicode в заданном диапазоне

  • « IntlChar::digit
  • IntlChar::enumCharTypes »
  • PHP Manual
  • IntlChar
  • Перечисляет все присвоенные символы Unicode в заданном диапазоне

IntlChar::enumCharNames

(PHP 7)

IntlChar::enumCharNames — Перечисляет все присвоенные символы Unicode в заданном диапазоне

Описание

public static void IntlChar::enumCharNames ( mixed $start , mixed $limit , callable $callback [, int $nameChoice = IntlChar::UNICODE_CHAR_NAME ] )

Перечисляет все присвоенные символы Unicode в заданном диапазоне (включая начало диапазона и исключая конец) и для каждого из них функцию, передавая в нее код символа и его имя.

Для имен Unicode 1.0 перечисляются только те символы, имена которых отличны от их "современных" имен.

Список параметров

start

Код символа с которого начинается диапазон.

limit

Код символа с которого начинается диапазон. Сам этот символ в диапазон не попадет.

callback

Функция, которая будет вызвана для каждого возвращенного символа. В нее будут переданы следующие три аргумента:

  • integer $codepoint - код символа
  • integer $nameChoice - значение из nameChoice, смотрите описание ниже
  • string $name - Имя символа

nameChoice

Категория символов для перечисления. Одна из констант:

  • IntlChar::UNICODE_CHAR_NAME (по умолчанию)
  • IntlChar::UNICODE_10_CHAR_NAME
  • IntlChar::EXTENDED_CHAR_NAME
  • IntlChar::CHAR_NAME_ALIAS
  • IntlChar::CHAR_NAME_CHOICE_COUNT

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Перечисления диапазона символов

<?php
IntlChar::enumCharNames(0x2600, 0x2610, function($codepoint, $nameChoice, $name) {
    printf("U+%04x %s\n", $codepoint, $name);
});
?>

Результат выполнения данного примера:

U+2600 BLACK SUN WITH RAYS
U+2601 CLOUD
U+2602 UMBRELLA
U+2603 SNOWMAN
U+2604 COMET
U+2605 BLACK STAR
U+2606 WHITE STAR
U+2607 LIGHTNING
U+2608 THUNDERSTORM
U+2609 SUN
U+260a ASCENDING NODE
U+260b DESCENDING NODE
U+260c CONJUNCTION
U+260d OPPOSITION
U+260e BLACK TELEPHONE
U+260f WHITE TELEPHONE

Смотрите также

  • IntlChar::charName() - Получить имя символа Unicode
  • IntlChar::charFromName() - Найти символ Unicode по его имени и вернуть его код


Перечисление последовательностей символов Unicode сгруппированых по им категориям

  • « IntlChar::enumCharNames
  • IntlChar::foldCase »
  • PHP Manual
  • IntlChar
  • Перечисление последовательностей символов Unicode сгруппированых по им категориям

IntlChar::enumCharTypes

(PHP 7)

IntlChar::enumCharTypes — Перечисление последовательностей символов Unicode сгруппированых по им категориям

Описание

public static void IntlChar::enumCharTypes ( callable $callback )

Перечисление последовательностей символов Unicode сгруппированых по им категориям. Полезно при построении структур данных, для перебора всех назначеных кодов символов и т.д.

Для каждого непрерывного диапазона символов с одной категорией будет вызвана функция callback. Соседние диапазоны имеют разные категории. Стандарты Unicode гарантируют числовые значения от 0 до 31.

Список параметров

callback

Функция, которая будет вызвана для каждой непрерывной последовательности с одинаковой категорией. В нее будут переданы следующие параметры:

  • integer $start - Начальный символ диапазона
  • integer $end - Конечный символ диапазона
  • integer $name - Категория символов (одна из констант IntlChar::CHAR_CATEGORY_*)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Перечисление диапазонов категорий символов

<?php
IntlChar::enumCharTypes(function($start, $end, $type) {
    printf("U+%04x through U+%04x are in category %d\n", $start, $end, $type);
});
?>

Результат выполнения данного примера:

U+0000 through U+0020 are in category 15
U+0020 through U+0021 are in category 12
U+0021 through U+0024 are in category 23
U+0024 through U+0025 are in category 25
U+0025 through U+0028 are in category 23
U+0028 through U+0029 are in category 20
U+0029 through U+002a are in category 21
U+002a through U+002b are in category 23
U+002b through U+002c are in category 24
U+002c through U+002d are in category 23
U+002d through U+002e are in category 19
U+002e through U+0030 are in category 23
U+0030 through U+003a are in category 9
...


Производит преобразование регистра заданного символа

  • « IntlChar::enumCharTypes
  • IntlChar::forDigit »
  • PHP Manual
  • IntlChar
  • Производит преобразование регистра заданного символа

IntlChar::foldCase

(PHP 7)

IntlChar::foldCase — Производит преобразование регистра заданного символа

Описание

public static mixed IntlChar::foldCase ( mixed $codepoint [, int $options = IntlChar::FOLD_CASE_DEFAULT ] )

Возвращает код символа в регистре отличном от регистра переданного символа. Если символ не имеет представления в другом регистре, то будет возвращен переданный символ.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

options

IntlChar::FOLD_CASE_DEFAULT (по умолчанию) или IntlChar::FOLD_CASE_EXCLUDE_SPECIAL_I.

Возвращаемые значения

Возвращает Simple_Case_Folding для символа, если он есть. В ином случае - сам символ.


Получить символ представляющий заданное число в заданном основании

  • « IntlChar::foldCase
  • IntlChar::getBidiPairedBracket »
  • PHP Manual
  • IntlChar
  • Получить символ представляющий заданное число в заданном основании

IntlChar::forDigit

(PHP 7)

IntlChar::forDigit — Получить символ представляющий заданное число в заданном основании

Описание

public static int IntlChar::forDigit ( int $digit [, int $radix = 10 ] )

Определяет представление символов для конкретной цифры в указанной системе счисления.

Если значение основания некорректно, или значение числа не является корректным числом в заданной системе счисления, будет возвращен U+0000.

Корректные значения radix лежат в диапазоне от 2 до 36. Корректные значения digit лежат в диапазоне 0 <= digit < radix.

Если digit меньше 10, то будет возвращено '0' + digit. В противном случае вернется 'a' + digit - 10.

Список параметров

digit

Число для преобразования в символ.

radix

Основание системы счисления (по умолчанию 10).

Возвращаемые значения

Символьное представление (типа string) заданного числа с заданным основанием системы счисления.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::forDigit(0));
var_dump(IntlChar::forDigit(3));
var_dump(IntlChar::forDigit(3, 10));
var_dump(IntlChar::forDigit(10));
var_dump(IntlChar::forDigit(10, 16));
?>

Результат выполнения данного примера:

int(48)
int(51)
int(51)
int(0)
int(97)

Смотрите также

  • IntlChar::digit() - Получить десятичное число из символа Unicode с заданным основанием
  • IntlChar::charDigitValue() - Получить десятичную цифру из символа десятичной цифры
  • IntlChar::isdigit() - Проверить, является ли символ цифрой
  • IntlChar::PROPERTY_NUMERIC_TYPE


Получить парную скобку для символа

  • « IntlChar::forDigit
  • IntlChar::getBlockCode »
  • PHP Manual
  • IntlChar
  • Получить парную скобку для символа

IntlChar::getBidiPairedBracket

(PHP 7)

IntlChar::getBidiPairedBracket — Получить парную скобку для символа

Описание

public static mixed IntlChar::getBidiPairedBracket ( mixed $codepoint )

Получает парную скобку для символа.

Для Bidi_Paired_Bracket_Type!=None, это аналогично IntlChar::charMirror(). Если такового нет, возвращается исходный codepoint.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает парную скобку для символа, или codepoint если таковой нет.

Возвращаемый тип должен быть integer, если только символ не был передан как строка UTF-8 (string), в этом случае вернется строка.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::getBidiPairedBracket(91));
var_dump(IntlChar::getBidiPairedBracket('['));
?>

Результат выполнения данного примера:

int(93)
string(1) "]"

Смотрите также

  • IntlChar::charMirror() - Получить "зеркальный" символ по коду
  • IntlChar::PROPERTY_BIDI_PAIRED_BRACKET
  • IntlChar::PROPERTY_BIDI_PAIRED_BRACKET_TYPE


Получить блок размещения символа Unicode

  • « IntlChar::getBidiPairedBracket
  • IntlChar::getCombiningClass »
  • PHP Manual
  • IntlChar
  • Получить блок размещения символа Unicode

IntlChar::getBlockCode

(PHP 7)

IntlChar::getBlockCode — Получить блок размещения символа Unicode

Описание

public static int IntlChar::getBlockCode ( mixed $codepoint )

Возвращает блок размещения символа Unicode.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает блок размещения codepoint. Одна из констант IntlChar::BLOCK_CODE_*.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::getBlockCode("A") === IntlChar::BLOCK_CODE_BASIC_LATIN);
var_dump(IntlChar::getBlockCode("?") === IntlChar::BLOCK_CODE_GREEK);
var_dump(IntlChar::getBlockCode("\u{2603}") === IntlChar::BLOCK_CODE_MISCELLANEOUS_SYMBOLS);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)


Получить комбинирующий класс для символа

  • « IntlChar::getBlockCode
  • IntlChar::getFC_NFKC_Closure »
  • PHP Manual
  • IntlChar
  • Получить комбинирующий класс для символа

IntlChar::getCombiningClass

(PHP 7)

IntlChar::getCombiningClass — Получить комбинирующий класс для символа

Описание

public static int IntlChar::getCombiningClass ( mixed $codepoint )

Возвращает комбинирующий класс для символа.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает комбинирующий класс для символа.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::getCombiningClass("A"));
var_dump(IntlChar::getCombiningClass("\u{0334}"));
var_dump(IntlChar::getCombiningClass("\u{0358}"));
?>

Результат выполнения данного примера:

int(0)
int(1)
int(232)


Получить свойство FC_NFKC_Closure для символа

  • « IntlChar::getCombiningClass
  • IntlChar::getIntPropertyMaxValue »
  • PHP Manual
  • IntlChar
  • Получить свойство FC_NFKC_Closure для символа

IntlChar::getFC_NFKC_Closure

(PHP 7)

IntlChar::getFC_NFKC_Closure — Получить свойство FC_NFKC_Closure для символа

Описание

public static string IntlChar::getFC_NFKC_Closure ( mixed $codepoint )

Получает свойство FC_NFKC_Closure для символа.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает свойство FC_NFKC_Closure для codepoint в виде строки, или пустую строку, если его нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::getFC_NFKC_Closure("\u{2121}"));
var_dump(IntlChar::getFC_NFKC_Closure("\u{1D2D}"));
?>

Результат выполнения данного примера:

string(3) "tel"
string(2) "?"


Получить минимальное значение для свойства Unicode

  • « IntlChar::getFC_NFKC_Closure
  • IntlChar::getIntPropertyMinValue »
  • PHP Manual
  • IntlChar
  • Получить минимальное значение для свойства Unicode

IntlChar::getIntPropertyMaxValue

(PHP 7)

IntlChar::getIntPropertyMaxValue — Получить минимальное значение для свойства Unicode

Описание

public static int IntlChar::getIntPropertyMaxValue ( int $property )

Получает минимальное значение (перечисляемое/целочисленное/бинарное) для свойства Unicode.

Список параметров

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Возвращаемые значения

Максимальное значение, возвращаемое IntlChar::getIntPropertyValue() для свойства Unicode. <=0, если свойство не входит в допустимый диапазон.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_SCRIPT));
var_dump(IntlChar::getIntPropertyMaxValue(IntlChar::PROPERTY_IDEOGRAPHIC));
var_dump(IntlChar::getIntPropertyMaxValue(999999999)); // Some made-up value
?>

Результат выполнения данного примера:

int(22)
int(166)
int(1)
int(-1)

Смотрите также

  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::getIntPropertyMinValue() - Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyValue() - Получить значение свойства Unicode для символа
  • IntlChar::getUnicodeVersion() - Получить версию Unicode


Получить минимальное значение для свойства Unicode

  • « IntlChar::getIntPropertyMaxValue
  • IntlChar::getIntPropertyValue »
  • PHP Manual
  • IntlChar
  • Получить минимальное значение для свойства Unicode

IntlChar::getIntPropertyMinValue

(PHP 7)

IntlChar::getIntPropertyMinValue — Получить минимальное значение для свойства Unicode

Описание

public static int IntlChar::getIntPropertyMinValue ( int $property )

Получает минимальное значение (перечисляемое/целочисленное/бинарное) для свойства Unicode.

Список параметров

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Возвращаемые значения

Минимальное значение, возвращаемое IntlChar::getIntPropertyValue() для свойства Unicode. 0, если свойство не входит в допустимый диапазон.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_SCRIPT));
var_dump(IntlChar::getIntPropertyMinValue(IntlChar::PROPERTY_IDEOGRAPHIC));
var_dump(IntlChar::getIntPropertyMinValue(999999999)); // Some made-up value
?>

Результат выполнения данного примера:

int(0)
int(0)
int(0)
int(0)

Смотрите также

  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::getIntPropertyMaxValue() - Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyValue() - Получить значение свойства Unicode для символа
  • IntlChar::getUnicodeVersion() - Получить версию Unicode


Получить значение свойства Unicode для символа

  • « IntlChar::getIntPropertyMinValue
  • IntlChar::getNumericValue »
  • PHP Manual
  • IntlChar
  • Получить значение свойства Unicode для символа

IntlChar::getIntPropertyValue

(PHP 7)

IntlChar::getIntPropertyValue — Получить значение свойства Unicode для символа

Описание

public static int IntlChar::getIntPropertyValue ( mixed $codepoint , int $property )

Получает значение нумерованного или целосичленного свойства Unicode для символа. Также возвращаются бинарное и шаблонное значения свойства.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Возвращаемые значения

Возвращает численное значение для указанного свойства, или, для перечисляемых свойств, соответствующую численному значению константу соответственно значению перечисляемого типа свойства.

Возвращает 0 или 1 (для FALSE/TRUE) для бинарных свойств Unicode.

Возвращает битовый шаблон для шаблонных свойств.

Возвращает 0 если property не входит в допустимый диапазон или если версия Unicode не содержит данных для этого свойства.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getIntPropertyValue("A", IntlChar::PROPERTY_ALPHABETIC) === 1);
var_dump(IntlChar::getIntPropertyValue("[", IntlChar::PROPERTY_BIDI_MIRRORED) === 1);
var_dump(IntlChar::getIntPropertyValue("?", IntlChar::PROPERTY_BLOCK) === IntlChar::BLOCK_CODE_GREEK);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)

Смотрите также

  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::getIntPropertyMinValue() - Получить минимальное значение для свойства Unicode
  • IntlChar::getIntPropertyMaxValue() - Получить минимальное значение для свойства Unicode
  • IntlChar::getUnicodeVersion() - Получить версию Unicode


Получить числовое предствление для символа Unicode

  • « IntlChar::getIntPropertyValue
  • IntlChar::getPropertyEnum »
  • PHP Manual
  • IntlChar
  • Получить числовое предствление для символа Unicode

IntlChar::getNumericValue

(PHP 7)

IntlChar::getNumericValue — Получить числовое предствление для символа Unicode

Описание

public static float IntlChar::getNumericValue ( mixed $codepoint )

Получает числовое предствление для символа Unicode, как определено в базе символов Unicode.

Если для символа отсутствует численное представление - будет возвращено IntlChar::NO_NUMERIC_VALUE.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Численное значение codepoint, или IntlChar::NO_NUMERIC_VALUE если отсутствует или не задано. Эта константа появилась в PHP 7.0.6, до этой версии в таком случае возвращалось (float)-123456789.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::getNumericValue("4"));
var_dump(IntlChar::getNumericValue("x"));
var_dump(IntlChar::getNumericValue("\u{216C}"));
?>

Результат выполнения данного примера:

float(4)
float(-123456789)
float(50)


Получить значение константы свойства по его имени

  • « IntlChar::getNumericValue
  • IntlChar::getPropertyName »
  • PHP Manual
  • IntlChar
  • Получить значение константы свойства по его имени

IntlChar::getPropertyEnum

(PHP 7)

IntlChar::getPropertyEnum — Получить значение константы свойства по его имени

Описание

public static int IntlChar::getPropertyEnum ( string $alias )

Возвращает значение константы свойства по его имени, как задано в PropertyAliases.txt. Принимаются длинные, короткие и прочие варианты имени.

Дополнительно, эта функция связывает синтетическое имя "gcm" / "General_Category_Mask" со свойством IntlChar::PROPERTY_GENERAL_CATEGORY_MASK.Этих имен нет в PropertyAliases.txt.

Функция близка с IntlChar::getPropertyName().

Список параметров

alias

Имя свойства. Имена сравниваются по принципу "loose matching", как описано в PropertyValueAliases.txt.

Возвращаемые значения

Возвращает значение константы IntlChar::PROPERTY_, или IntlChar::PROPERTY_INVALID_CODE, если заданное имя не соответствует никакому свойству.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getPropertyEnum('Bidi_Class') === IntlChar::PROPERTY_BIDI_CLASS);
var_dump(IntlChar::getPropertyEnum('script') === IntlChar::PROPERTY_SCRIPT);
var_dump(IntlChar::getPropertyEnum('IDEOGRAPHIC') === IntlChar::PROPERTY_IDEOGRAPHIC);
var_dump(IntlChar::getPropertyEnum('Some made-up string') === IntlChar::PROPERTY_INVALID_CODE);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(true)

Смотрите также

  • IntlChar::getPropertyName() - Получить Unicode имя свойства


Получить Unicode имя свойства

  • « IntlChar::getPropertyEnum
  • IntlChar::getPropertyValueEnum »
  • PHP Manual
  • IntlChar
  • Получить Unicode имя свойства

IntlChar::getPropertyName

(PHP 7)

IntlChar::getPropertyName — Получить Unicode имя свойства

Описание

public static string IntlChar::getPropertyName ( int $property [, int $nameChoice = IntlChar::LONG_PROPERTY_NAME ] )

Возвращает имя Unicode для заданного свойства, как определено в PropertyAliases.txt.

В дополнение, эта функция связывает свойство IntlChar::PROPERTY_GENERAL_CATEGORY_MASK с синтетическим именем "gcm" / "General_Category_Mask". Этих имен нет в PropertyAliases.txt.

Эта функция близка с IntlChar::getPropertyEnum().

Список параметров

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Нельзя использовать IntlChar::PROPERTY_INVALID_CODE. Также, если property не входит в допустимый диапазон - возвращается FALSE.

nameChoice

Селектор для выбора имени. Если не входит в допустимый диапазон - возвращается FALSE.

Все значения имеют длинные имена. Большинство имеют короткие имена, но не все. Unicode позволяет дополнительные имена; Если существуют, они будут возвращены с добавлением 1, 2, и т.д к IntlChar::LONG_PROPERTY_NAME.

Возвращаемые значения

Возвращает имена или FALSE если property или nameChoice выходят за допустимый диапазон.

Если nameChoice возвращает FALSE, то все более большие величины nameChoice также вернут FALSE, с одним исключением: если FALSE вернется для IntlChar::SHORT_PROPERTY_NAME, то IntlChar::LONG_PROPERTY_NAME (и выше) все еще могут вернуть не FALSE.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::SHORT_PROPERTY_NAME));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::LONG_PROPERTY_NAME));
var_dump(IntlChar::getPropertyName(IntlChar::PROPERTY_BIDI_CLASS, IntlChar::LONG_PROPERTY_NAME + 1));
?>

Результат выполнения данного примера:

string(10) "Bidi_Class"
string(2) "bc"
string(10) "Bidi_Class"
bool(false)

Смотрите также

  • IntlChar::getPropertyEnum() - Получить значение константы свойства по его имени


Вернуть числовой идентификатор свойства по его имени

  • « IntlChar::getPropertyName
  • IntlChar::getPropertyValueName »
  • PHP Manual
  • IntlChar
  • Вернуть числовой идентификатор свойства по его имени

IntlChar::getPropertyValueEnum

(PHP 7)

IntlChar::getPropertyValueEnum — Вернуть числовой идентификатор свойства по его имени

Описание

public static int IntlChar::getPropertyValueEnum ( int $property , string $name )

Возвращает числовой идентификатор свойства Unicode по его имени, как определено в файле PropertyValueAliases.txt. Принимаются длинные, короткие и прочие варианты имени.

Замечание:

Некоторые имена из PropertyValueAliases.txt могут быть извлечены только с помощью IntlChar::PROPERTY_GENERAL_CATEGORY_MASK, а не IntlChar::PROPERTY_GENERAL_CATEGORY. Включая:

  • "C" / "Прочее"
  • "L" / "Буквы"
  • "LC" / "Буквы, имеющие несколько регистров"
  • "M" / "Метки"
  • "N" / "Числа"
  • "P" / "Пунктуация"
  • "S" / "Символы"
  • "Z" / "Разделители"

Список параметров

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Если не входит в допустимый диапазон, либо если метод не работает с данным значением, возвращается IntlChar::PROPERTY_INVALID_CODE.

name

Имя свойства. Имена сравниваются по принципу "loose matching", как описано в PropertyValueAliases.txt.

Возвращаемые значения

Возвращает соответствующее целочисленное значение или IntlChar::PROPERTY_INVALID_CODE если соответствие не найдено или если свойство некорректно.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BLOCK, 'greek') === IntlChar::BLOCK_CODE_GREEK);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'RIGHT_TO_LEFT') === IntlChar::CHAR_DIRECTION_RIGHT_TO_LEFT);
var_dump(IntlChar::getPropertyValueEnum(IntlChar::PROPERTY_BIDI_CLASS, 'some made-up string') === IntlChar::PROPERTY_INVALID_CODE);
var_dump(IntlChar::getPropertyValueEnum(123456789, 'RIGHT_TO_LEFT') === IntlChar::PROPERTY_INVALID_CODE);
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(true)


Получить имя Unicode для значения свойства

  • « IntlChar::getPropertyValueEnum
  • IntlChar::getUnicodeVersion »
  • PHP Manual
  • IntlChar
  • Получить имя Unicode для значения свойства

IntlChar::getPropertyValueName

(PHP 7)

IntlChar::getPropertyValueName — Получить имя Unicode для значения свойства

Описание

public static string IntlChar::getPropertyValueName ( int $property , int $value [, int $nameChoice = IntlChar::LONG_PROPERTY_NAME ] )

Возвращает имя свойства Unicode по его значению, как определено в файле PropertyValueAliases.txt.

Замечание:

Некоторые имена из PropertyValueAliases.txt могут быть извлечены только с помощью IntlChar::PROPERTY_GENERAL_CATEGORY_MASK, а не IntlChar::PROPERTY_GENERAL_CATEGORY. Включая:

  • "C" / "Прочее"
  • "L" / "Буквы"
  • "LC" / "Буквы, имеющие несколько регистров"
  • "M" / "Метки"
  • "N" / "Числа"
  • "P" / "Пунктуация"
  • "S" / "Символы"
  • "Z" / "Разделители"

Список параметров

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Если не входит в допустимый диапазон, либо если метод не работает с данным значением, возвращается FALSE.

value

Селектор для значения свойства. Если не входит в допустимый диапазон, то вернется FALSE.

В целом, допустимый диапазон лежит в пределах от 0 до некоторого максимума. Есть несколько исключений:

  • Значения IntlChar::PROPERTY_BLOCK начинаются с не нулевого значения IntlChar::BLOCK_CODE_BASIC_LATIN
  • Значения IntlChar::PROPERTY_CANONICAL_COMBINING_CLASS не непрерывны и лежат в диапазоне 0..240.

nameChoice

Селектор для извлекаемого имени. Если не попадает в диапазон - будет возвращено FALSE.

Все значения имеют длинные имена. Большинство имеют короткие имена, но не все. Unicode позволяет дополнительные имена; Если существуют, они будут возвращены с добавлением 1, 2, и т.д к IntlChar::LONG_PROPERTY_NAME.

Возвращаемые значения

Возвращает имена или FALSE если property или nameChoice выходят за допустимый диапазон.

Если nameChoice возвращает FALSE, то все более большие величины nameChoice также вернут FALSE, с одним исключением: если FALSE вернется для IntlChar::SHORT_PROPERTY_NAME, то IntlChar::LONG_PROPERTY_NAME (и выше) все еще могут вернуть не FALSE.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::SHORT_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME));
var_dump(IntlChar::getPropertyValueName(IntlChar::PROPERTY_BLOCK, IntlChar::BLOCK_CODE_GREEK, IntlChar::LONG_PROPERTY_NAME + 1));
?>

Результат выполнения данного примера:

string(16) "Greek_And_Coptic"
string(5) "Greek"
string(16) "Greek_And_Coptic"
bool(false)


Получить версию Unicode

  • « IntlChar::getPropertyValueName
  • IntlChar::hasBinaryProperty »
  • PHP Manual
  • IntlChar
  • Получить версию Unicode

IntlChar::getUnicodeVersion

(PHP 7)

IntlChar::getUnicodeVersion — Получить версию Unicode

Описание

public static array IntlChar::getUnicodeVersion ( void )

Получает информацию о версии Unicode.

Возвращаемый массив заполняется информацией о версии Unicode используемой ICU. К примеру, Unicode версии 3.1.1 вернет массив со значениями [3, 1, 1, 0].

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив, содержащий информацию о версии Unicode.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::getUnicodeVersion());
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  int(7)
  [1]=>
  int(0)
  [2]=>
  int(0)
  [3]=>
  int(0)
}

Смотрите также

  • IntlChar::charAge() - Получить "возраст" символьного кода


Проверить бинарное свойство Unicode для символа

  • « IntlChar::getUnicodeVersion
  • IntlChar::isalnum »
  • PHP Manual
  • IntlChar
  • Проверить бинарное свойство Unicode для символа

IntlChar::hasBinaryProperty

(PHP 7)

IntlChar::hasBinaryProperty — Проверить бинарное свойство Unicode для символа

Описание

public static bool IntlChar::hasBinaryProperty ( mixed $codepoint , int $property )

Проверяет бинарное свойство Unicode для символа.

Unicode, особенно в версии 3.2, определяет сильно больше свойств, чем было в оригинальном наборе UnicodeData.txt.

API свойств служит для отражения свойств Unicode, как определено в базе данных символов Unicode (Unicode Character Database или UCD) и технических отчетах Unicode (Unicode Technical Reports или UTR). Более подробное описание доступно на чайте » http://www.unicode.org/ucd/. Имена свойств Unicode смотрите в файле UCD PropertyAliases.txt.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

property

Свойство Unicode для отображения (Смотри константы IntlChar::PROPERTY_*).

Возвращаемые значения

Возвращает TRUE или FALSE в зависимости от значения бинарного свойства Unicode символа codepoint. Также возвращает FALSE если property находится вне границ или если используемая версия Unicode не содержит данных для этого свойства вообще, либо конкретно для этого символа.

Примеры

Пример #1 Тестирование различных свойств

<?php
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_ALPHABETIC));
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_CASE_SENSITIVE));
var_dump(IntlChar::hasBinaryProperty("A", IntlChar::PROPERTY_BIDI_MIRRORED));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_ALPHABETIC));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_CASE_SENSITIVE));
var_dump(IntlChar::hasBinaryProperty("[", IntlChar::PROPERTY_BIDI_MIRRORED));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)

Смотрите также

  • IntlChar::getIntPropertyValue() - Получить значение свойства Unicode для символа
  • IntlChar::getUnicodeVersion() - Получить версию Unicode


Проверить, является ли символ буквой либо цифрой

  • « IntlChar::hasBinaryProperty
  • IntlChar::isalpha »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ буквой либо цифрой

IntlChar::isalnum

(PHP 7)

IntlChar::isalnum — Проверить, является ли символ буквой либо цифрой

Описание

public static bool IntlChar::isalnum ( mixed $codepoint )

Проверяет, является ли символ буквой либо цифрой. TRUE категорий "L" (буквы) и "Nd" (десятичные цифры).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является буквой или цифрой, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isalnum("A"));
var_dump(IntlChar::isalnum("1"));
var_dump(IntlChar::isalnum("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isdigit() - Проверить, является ли символ цифрой


Проверить, является ли символ буквой

  • « IntlChar::isalnum
  • IntlChar::isbase »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ буквой

IntlChar::isalpha

(PHP 7)

IntlChar::isalpha — Проверить, является ли символ буквой

Описание

public static bool IntlChar::isalpha ( mixed $codepoint )

Проверяет, является ли символ буквой. TRUE для категории "L" (буквы).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является буквой, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isalpha("A"));
var_dump(IntlChar::isalpha("1"));
var_dump(IntlChar::isalpha("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isalnum() - Проверить, является ли символ буквой либо цифрой
  • IntlChar::isdigit() - Проверить, является ли символ цифрой


Проверить, является ли символ базовым

  • « IntlChar::isalpha
  • IntlChar::isblank »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ базовым

IntlChar::isbase

(PHP 7)

IntlChar::isbase — Проверить, является ли символ базовым

Описание

public static bool IntlChar::isbase ( mixed $codepoint )

Проверяет, является ли символ базовым. TRUE для категорий "L" (буквы), "N" (числа), "Mc" (меткой позиционирования при комбинации символов) и "Me" (enclosing marks).

Замечание:

Отличается от определения, заданного в главе 3.5, статье D13 Unicode, определяющего базовые символы как все символа (не Cn) графически не сочетающиеся с предыдущими символами (M) и не являющиеся управляющими (Cc) или форматирующими (Cf).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является базовым, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isbase("A"));
var_dump(IntlChar::isbase("1"));
var_dump(IntlChar::isbase("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isdigit() - Проверить, является ли символ цифрой


Проверить, является ли символ "пустым" либо "горизонтальным пробелом"

  • « IntlChar::isbase
  • IntlChar::iscntrl »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ "пустым" либо "горизонтальным пробелом"

IntlChar::isblank

(PHP 7)

IntlChar::isblank — Проверить, является ли символ "пустым" либо "горизонтальным пробелом"

Описание

public static bool IntlChar::isblank ( mixed $codepoint )

Проверяет, является ли символ "пустым" либо "горизонтальным пробелом". Т.е. символом визуально разделяющим слова в предложении.

Другими словами:

  • TRUE для пробельных символов Unicode за исключением "вертикальных пробельных символов", таких как: U+000A (LF) U+000B (VT) U+000C (FF) U+000D (CR) U+0085 (NEL) U+2028 (LS) U+2029 (PS)
  • TRUE для U+0009 (TAB) и символов из категории "Zs" (пробельные разделители) за исключением пробела с нулевой длиной (ZWSP, U+200B).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является "пустым" либо "горизонтальным пробелом", FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isblank("A"));
var_dump(IntlChar::isblank(" "));
var_dump(IntlChar::isblank("\t"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(true)

Смотрите также

  • IntlChar::isspace() - Проверяет, является ли символ пробельным
  • IntlChar::isJavaSpaceChar() - Проверить, является ли символ пробельным с точки зрения языка Java
  • IntlChar::isUWhiteSpace() - Проверить, имеет ли символ свойство White_Space (пробельный символ)
  • IntlChar::isWhitespace() - Проверить, является ли символ пробельным с точки зрения ICU


Проверить, является ли символ управляющим

  • « IntlChar::isblank
  • IntlChar::isdefined »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ управляющим

IntlChar::iscntrl

(PHP 7)

IntlChar::iscntrl — Проверить, является ли символ управляющим

Описание

public static bool IntlChar::iscntrl ( mixed $codepoint )

Проверяет, является ли символ управляющим.

Управляющие символы::

  • 8-битные управляющие символы ISO (U+0000..U+001f и U+007f..U+009f)
  • IntlChar::CHAR_CATEGORY_CONTROL_CHAR (Cc)
  • IntlChar::CHAR_CATEGORY_FORMAT_CHAR (Cf)
  • IntlChar::CHAR_CATEGORY_LINE_SEPARATOR (Zl)
  • IntlChar::CHAR_CATEGORY_PARAGRAPH_SEPARATOR (Zp)

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является управляющим, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::iscntrl("A"));
var_dump(IntlChar::iscntrl(" "));
var_dump(IntlChar::iscntrl("\n"));
var_dump(IntlChar::iscntrl("\u{200e}"));
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(true)
bool(true)

Смотрите также

  • IntlChar::isprint() - Проверяет, является ли симвом отображаемым
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT


Проверить, определен ли символ

  • « IntlChar::iscntrl
  • IntlChar::isdigit »
  • PHP Manual
  • IntlChar
  • Проверить, определен ли символ

IntlChar::isdefined

(PHP 7)

IntlChar::isdefined — Проверить, определен ли символ

Описание

public static bool IntlChar::isdefined ( mixed $codepoint )

Проверяет, определен ли символ. Обычно это означает, что коду Unicode назначен конкретный символ.

TRUE для категорий отличных от "Cn" (другие, не назначенные).

Замечание:

Note that non-character code points (e.g., U+FDD0) are not "defined" (they are Cn), but surrogate code points are "defined" (Cs).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является определенным, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isdefined("A"));
var_dump(IntlChar::isdefined(" "));
var_dump(IntlChar::isdefined("\u{FDD0}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isdigit() - Проверить, является ли символ цифрой
  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isalnum() - Проверить, является ли символ буквой либо цифрой
  • IntlChar::isupper() - Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
  • IntlChar::islower() - Проверить, в нижнем ли регистре символ
  • IntlChar::istitle() - Проверить, является ли символ титульным (Titlecase)


Проверить, является ли символ цифрой

  • « IntlChar::isdefined
  • IntlChar::isgraph »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ цифрой

IntlChar::isdigit

(PHP 7)

IntlChar::isdigit — Проверить, является ли символ цифрой

Описание

public static bool IntlChar::isdigit ( mixed $codepoint )

Проверяет, является ли символ цифрой.

TRUE для символов из категории "Nd" (десятичные цифры). Начиная с Unicode 4, функция является аналогом тестирования на Numeric_Type для Decimal.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является цифрой, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isdigit("A"));
var_dump(IntlChar::isdigit("1"));
var_dump(IntlChar::isdigit("\t"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isalnum() - Проверить, является ли символ буквой либо цифрой
  • IntlChar::isxdigit() - Проверить, является ли символ шестнадцатеричной цифрой


Проверить, является ли символ графическим символом

  • « IntlChar::isdigit
  • IntlChar::isIDIgnorable »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ графическим символом

IntlChar::isgraph

(PHP 7)

IntlChar::isgraph — Проверить, является ли символ графическим символом

Описание

public static bool IntlChar::isgraph ( mixed $codepoint )

Проверяет, является ли символ "графическим" символом (печатные символы за исплючением пробельных).

TRUE для всех символов за исключением входящих в категории "Cc" (управляющие символы), "Cf" (управление форматом), "Cs" (суррогаты), "Cn" (не заданные) и "Z" (разделители).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является "графическим" символом, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isgraph("A"));
var_dump(IntlChar::isgraph("1"));
var_dump(IntlChar::isgraph("\u{2603}"));
var_dump(IntlChar::isgraph("\n"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(true)
bool(false)


Проверить, является ли символ игнорируемым

  • « IntlChar::isgraph
  • IntlChar::isIDPart »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ игнорируемым

IntlChar::isIDIgnorable

(PHP 7)

IntlChar::isIDIgnorable — Проверить, является ли символ игнорируемым

Описание

public static bool IntlChar::isIDIgnorable ( mixed $codepoint )

Проверяет, является ли символ игнорируемым в идентификаторах.

TRUE для символов из категории "Cf" (управление форматом) и не пробельных управляющих символов ISO (U+0000..U+0008, U+000E..U+001B, U+007F..U+009F).

Замечание:

Обратите внимание, что Unicode просто рекомендует игнорировать Cf (управление форматом).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint игнорируется в идентификаторах, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isIDIgnorable("A"));
var_dump(IntlChar::isIDIgnorable(" "));
var_dump(IntlChar::isIDIgnorable("\u{007F}"));
?>

Результат выполнения данного примера:

bool(false)
bool(false)
bool(true)

Смотрите также

  • IntlChar::isIDStart() - Проверить, допустимо ли использовать символ в начале идентификатора
  • IntlChar::isIDPart() - Проверить, допустимо ли использовать символ в идентификаторе
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT


Проверить, допустимо ли использовать символ в идентификаторе

  • « IntlChar::isIDIgnorable
  • IntlChar::isIDStart »
  • PHP Manual
  • IntlChar
  • Проверить, допустимо ли использовать символ в идентификаторе

IntlChar::isIDPart

(PHP 7)

IntlChar::isIDPart — Проверить, допустимо ли использовать символ в идентификаторе

Описание

public static bool IntlChar::isIDPart ( mixed $codepoint )

Проверяет, допустимо ли использовать символ в идентификаторе.

TRUE для символов категории "L" (буквы), "Nl" (символы цифр), "Nd" (десятичные цифры), "Mc" и "Mn" (метки совмещения), "Pc" (соединяющая пунктуация), и u_isIDIgnorable(c).

Замечание:

Почти то же самое, что и ID_Continue в Unicode (IntlChar::PROPERTY_ID_CONTINUE) за исключением того, что Unicode рекомендует игнорировать Cf, которые меньше IntlChar::isIDIgnorable().

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE если codepoint можно использовать в идентификаторах, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isIDPart("A"));
var_dump(IntlChar::isIDPart("$"));
var_dump(IntlChar::isIDPart("\n"));
var_dump(IntlChar::isIDPart("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isIDIgnorable() - Проверить, является ли символ игнорируемым
  • IntlChar::isIDStart() - Проверить, допустимо ли использовать символ в начале идентификатора
  • IntlChar::PROPERTY_ID_CONTINUE


Проверить, допустимо ли использовать символ в начале идентификатора

  • « IntlChar::isIDPart
  • IntlChar::isISOControl »
  • PHP Manual
  • IntlChar
  • Проверить, допустимо ли использовать символ в начале идентификатора

IntlChar::isIDStart

(PHP 7)

IntlChar::isIDStart — Проверить, допустимо ли использовать символ в начале идентификатора

Описание

public static bool IntlChar::isIDStart ( mixed $codepoint )

Проверяет, допустимо ли использовать символ в начале идентификатора в соответствии со стандартом Unicode (The Unicode Standard, версия 3.0, глава 5.16 - Идентификаторы).

TRUE для категорий "L" (буквы) и "Nl" (символы цифр).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE если codepoint можно использовать в начале идентификатора, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isIDStart("A"));
var_dump(IntlChar::isIDStart("$"));
var_dump(IntlChar::isIDStart("\n"));
var_dump(IntlChar::isIDStart("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isIDPart() - Проверить, допустимо ли использовать символ в идентификаторе
  • IntlChar::PROPERTY_ID_START


Проверить, является ли символ управляющим согласно ISO

  • « IntlChar::isIDStart
  • IntlChar::isJavaIDPart »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ управляющим согласно ISO

IntlChar::isISOControl

(PHP 7)

IntlChar::isISOControl — Проверить, является ли символ управляющим согласно ISO

Описание

public static bool IntlChar::isISOControl ( mixed $codepoint )

Проверяет, является ли символ управляющим согласно ISO.

TRUE для U+0000..U+001f и U+007f..U+009f (категория "Cc").

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является управляющим символом ISO, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isISOControl(" "));
var_dump(IntlChar::isISOControl("\n"));
var_dump(IntlChar::isISOControl("\u{200e}"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)

Смотрите также

  • IntlChar::iscntrl() - Проверить, является ли символ управляющим


Проверить, является ли символ допустимым в идентификаторе Java

  • « IntlChar::isISOControl
  • IntlChar::isJavaIDStart »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ допустимым в идентификаторе Java

IntlChar::isJavaIDPart

(PHP 7)

IntlChar::isJavaIDPart — Проверить, является ли символ допустимым в идентификаторе Java

Описание

public static bool IntlChar::isJavaIDPart ( mixed $codepoint )

Проверяет, является ли символ допустимым в идентификаторе Java.

В дополнение к IntlChar::isIDPart(), TRUE возвращается для категории "Sc" (символ денежной единицы).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint можетвстречаться в идентификаторе Java, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isJavaIDPart("A"));
var_dump(IntlChar::isJavaIDPart("$"));
var_dump(IntlChar::isJavaIDPart("\n"));
var_dump(IntlChar::isJavaIDPart("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isIDIgnorable() - Проверить, является ли символ игнорируемым
  • IntlChar::isIDPart() - Проверить, допустимо ли использовать символ в идентификаторе
  • IntlChar::isJavaIDStart() - Проверить, может ли символ быть первым в идентификаторе Java
  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::isdigit() - Проверить, является ли символ цифрой


Проверить, может ли символ быть первым в идентификаторе Java

  • « IntlChar::isJavaIDPart
  • IntlChar::isJavaSpaceChar »
  • PHP Manual
  • IntlChar
  • Проверить, может ли символ быть первым в идентификаторе Java

IntlChar::isJavaIDStart

(PHP 7)

IntlChar::isJavaIDStart — Проверить, может ли символ быть первым в идентификаторе Java

Описание

public static bool IntlChar::isJavaIDStart ( mixed $codepoint )

Проверяет, может ли символ быть первым в идентификаторе Java.

В дополнение к IntlChar::isIDStart(), TRUE возвращается для символов из категорий "Sc" (символ денежной единицы) и "Pc" (соединяющая пунктуация).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint может быть первым в идентификаторе Java, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isJavaIDStart("A"));
var_dump(IntlChar::isJavaIDStart("$"));
var_dump(IntlChar::isJavaIDStart("\n"));
var_dump(IntlChar::isJavaIDStart("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isIDStart() - Проверить, допустимо ли использовать символ в начале идентификатора
  • IntlChar::isJavaIDPart() - Проверить, является ли символ допустимым в идентификаторе Java
  • IntlChar::isalpha() - Проверить, является ли символ буквой


Проверить, является ли символ пробельным с точки зрения языка Java

  • « IntlChar::isJavaIDStart
  • IntlChar::islower »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ пробельным с точки зрения языка Java

IntlChar::isJavaSpaceChar

(PHP 7)

IntlChar::isJavaSpaceChar — Проверить, является ли символ пробельным с точки зрения языка Java

Описание

public static bool IntlChar::isJavaSpaceChar ( mixed $codepoint )

Проверяет, является ли символ пробельным с точки зрения языка Java.

TRUE для категории "Z" (разделители), не включая контролирующие символы (такие как TAB или Перевод Строки).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является пробельным в Java, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isJavaSpaceChar("A"));
var_dump(IntlChar::isJavaSpaceChar(" "));
var_dump(IntlChar::isJavaSpaceChar("\n"));
var_dump(IntlChar::isJavaSpaceChar("\t"));
var_dump(IntlChar::isJavaSpaceChar("\u{00A0}"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)
bool(false)
bool(true)

Смотрите также

  • IntlChar::isspace() - Проверяет, является ли символ пробельным
  • IntlChar::isWhitespace() - Проверить, является ли символ пробельным с точки зрения ICU
  • IntlChar::isUWhiteSpace() - Проверить, имеет ли символ свойство White_Space (пробельный символ)


Проверить, в нижнем ли регистре символ

  • « IntlChar::isJavaSpaceChar
  • IntlChar::isMirrored »
  • PHP Manual
  • IntlChar
  • Проверить, в нижнем ли регистре символ

IntlChar::islower

(PHP 7)

IntlChar::islower — Проверить, в нижнем ли регистре символ

Описание

public static bool IntlChar::islower ( mixed $codepoint )

Определяет, входит ли символ в категорию "Ll" (буквы в нижнем регистре).

Замечание:

Могут быть пропущены некоторые символы, так как они могут иметь другую главную категорию. Что бы не потерять их - используйте функцию IntlChar::isULowercase().

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint входит в категорию Ll, или FALSE, если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::islower("A"));
var_dump(IntlChar::islower("a"));
var_dump(IntlChar::islower("?"));
var_dump(IntlChar::islower("?"));
var_dump(IntlChar::islower("1"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isupper() - Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
  • IntlChar::istitle() - Проверить, является ли символ титульным (Titlecase)
  • IntlChar::tolower() - Преобразование символа Unicode в нижний регистр
  • IntlChar::toupper() - Преобразование символа Unicode в верхний регистр
  • IntlChar::PROPERTY_LOWERCASE


Проверить, если у символа свойство Bidi_Mirrored

  • « IntlChar::islower
  • IntlChar::isprint »
  • PHP Manual
  • IntlChar
  • Проверить, если у символа свойство Bidi_Mirrored

IntlChar::isMirrored

(PHP 7)

IntlChar::isMirrored — Проверить, если у символа свойство Bidi_Mirrored

Описание

public static bool IntlChar::isMirrored ( mixed $codepoint )

Проверить, если у символа свойство Bidi_Mirrored.

Это свойство обычно есть у символов использующихся в контексте написания справа налево, которые необходимо отобразить "зеркальными" глифами.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint имеет свойство Bidi_Mirrored, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isMirrored("A"));
var_dump(IntlChar::isMirrored("<"));
var_dump(IntlChar::isMirrored("("));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(true)

Смотрите также

  • IntlChar::charMirror() - Получить "зеркальный" символ по коду
  • IntlChar::PROPERTY_BIDI_MIRRORED


Проверяет, является ли симвом отображаемым

  • « IntlChar::isMirrored
  • IntlChar::ispunct »
  • PHP Manual
  • IntlChar
  • Проверяет, является ли симвом отображаемым

IntlChar::isprint

(PHP 7)

IntlChar::isprint — Проверяет, является ли симвом отображаемым

Описание

public static bool IntlChar::isprint ( mixed $codepoint )

Проверяет, является ли симвом отображаемым.

TRUE для категорий отличных от "C" (управляющие символы).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является отображаемым символом, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isprint("A"));
var_dump(IntlChar::isprint(" "));
var_dump(IntlChar::isprint("\n"));
var_dump(IntlChar::isprint("\u{200e}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::iscntrl() - Проверить, является ли символ управляющим
  • IntlChar::PROPERTY_DEFAULT_IGNORABLE_CODE_POINT


Проверяет, является ли символ символом пунктуации

  • « IntlChar::isprint
  • IntlChar::isspace »
  • PHP Manual
  • IntlChar
  • Проверяет, является ли символ символом пунктуации

IntlChar::ispunct

(PHP 7)

IntlChar::ispunct — Проверяет, является ли символ символом пунктуации

Описание

public static bool IntlChar::ispunct ( mixed $codepoint )

Проверяет, является ли символ символом пунктуации.

TRUE для символов с категорией "P" (пунктуация).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является символом пунктуации, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::ispunct("."));
var_dump(IntlChar::ispunct(","));
var_dump(IntlChar::ispunct("\n"));
var_dump(IntlChar::ispunct("$"));

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(false)


Проверяет, является ли символ пробельным

  • « IntlChar::ispunct
  • IntlChar::istitle »
  • PHP Manual
  • IntlChar
  • Проверяет, является ли символ пробельным

IntlChar::isspace

(PHP 7)

IntlChar::isspace — Проверяет, является ли символ пробельным

Описание

public static bool IntlChar::isspace ( mixed $codepoint )

Проверяет, является ли символ пробельным.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является пробельным символом, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isspace("A"));
var_dump(IntlChar::isspace(" "));
var_dump(IntlChar::isspace("\n"));
var_dump(IntlChar::isspace("\t"));
var_dump(IntlChar::isspace("\u{00A0}"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)

Смотрите также

  • IntlChar::isJavaSpaceChar() - Проверить, является ли символ пробельным с точки зрения языка Java
  • IntlChar::isWhitespace() - Проверить, является ли символ пробельным с точки зрения ICU
  • IntlChar::isUWhiteSpace() - Проверить, имеет ли символ свойство White_Space (пробельный символ)


Проверить, является ли символ титульным (Titlecase)

  • « IntlChar::isspace
  • IntlChar::isUAlphabetic »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ титульным (Titlecase)

IntlChar::istitle

(PHP 7)

IntlChar::istitle — Проверить, является ли символ титульным (Titlecase)

Описание

public static bool IntlChar::istitle ( mixed $codepoint )

Проверить, входит ли символ в категорию Titlecase. Данные символы являются составными из нескольких букв, первая из которых заглавная. Например \u{01cb} (?) или \u{1faf} (?).

TRUE для категории "Lt" (titlecase).

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является титульными символом, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::istitle("A"));
var_dump(IntlChar::istitle("a"));
var_dump(IntlChar::istitle("?"));
var_dump(IntlChar::istitle("?"));
var_dump(IntlChar::istitle("1"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isupper() - Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
  • IntlChar::islower() - Проверить, в нижнем ли регистре символ
  • IntlChar::totitle() - Преобразует символ Unicode в titlecase


Проверить, установлено ли у символа свойство Alphabetic

  • « IntlChar::istitle
  • IntlChar::isULowercase »
  • PHP Manual
  • IntlChar
  • Проверить, установлено ли у символа свойство Alphabetic

IntlChar::isUAlphabetic

(PHP 7)

IntlChar::isUAlphabetic — Проверить, установлено ли у символа свойство Alphabetic

Описание

public static bool IntlChar::isUAlphabetic ( mixed $codepoint )

Проверяет, установлено ли у символа свойство Alphabetic.

Тоже самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_ALPHABETIC)

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint имеет свойство Alphabetic, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isUAlphabetic("A"));
var_dump(IntlChar::isUAlphabetic("1"));
var_dump(IntlChar::isUAlphabetic("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isalpha() - Проверить, является ли символ буквой
  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::PROPERTY_ALPHABETIC


Проверить, является ли символ символом в нижнем регистре

  • « IntlChar::isUAlphabetic
  • IntlChar::isupper »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ символом в нижнем регистре

IntlChar::isULowercase

(PHP 7)

IntlChar::isULowercase — Проверить, является ли символ символом в нижнем регистре

Описание

public static bool IntlChar::isULowercase ( mixed $codepoint )

Проверяет, является ли символ символом в нижнем регистре.

То же самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_LOWERCASE)

Замечание:

Отличается от IntlChar::islower() и возвращает TRUE для большего числа символов.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint имеет свойство "Lowercase", FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isULowercase("A"));
var_dump(IntlChar::isULowercase("a"));
var_dump(IntlChar::isULowercase("?"));
var_dump(IntlChar::isULowercase("?"));
var_dump(IntlChar::isULowercase("1"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(false)
bool(true)
bool(false)

Смотрите также

  • IntlChar::islower() - Проверить, в нижнем ли регистре символ
  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::PROPERTY_LOWERCASE


Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)

  • « IntlChar::isULowercase
  • IntlChar::isUUppercase »
  • PHP Manual
  • IntlChar
  • Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)

IntlChar::isupper

(PHP 7)

IntlChar::isupper — Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)

Описание

public static bool IntlChar::isupper ( mixed $codepoint )

Определяет, входит ли символ в категорию "Lu" (буквы в верхнем регистре).

Замечание:

Могут быть пропущены некоторые символы, так как они могут иметь другую главную категорию. Что бы не потерять их - используйте функцию IntlChar::isUUppercase().

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint входит в категорию Lu, или FALSE, если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isupper("A"));
var_dump(IntlChar::isupper("a"));
var_dump(IntlChar::isupper("?"));
var_dump(IntlChar::isupper("?"));
var_dump(IntlChar::isupper("1"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::islower() - Проверить, в нижнем ли регистре символ
  • IntlChar::istitle() - Проверить, является ли символ титульным (Titlecase)
  • IntlChar::tolower() - Преобразование символа Unicode в нижний регистр
  • IntlChar::toupper() - Преобразование символа Unicode в верхний регистр
  • IntlChar::PROPERTY_UPPERCASE


Проверить, является ли символ символом в верхнем регистре

  • « IntlChar::isupper
  • IntlChar::isUWhiteSpace »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ символом в верхнем регистре

IntlChar::isUUppercase

(PHP 7)

IntlChar::isUUppercase — Проверить, является ли символ символом в верхнем регистре

Описание

public static bool IntlChar::isUUppercase ( mixed $codepoint )

Проверить, является ли символ символом в верхнем регистре.

То же самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_UPPERCASE)

Замечание:

Отличается от IntlChar::isupper() и возвращает TRUE для большего числа символов.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint имеет свойство "Uppercase", FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isUUppercase("A"));
var_dump(IntlChar::isUUppercase("a"));
var_dump(IntlChar::isUUppercase("?"));
var_dump(IntlChar::isUUppercase("?"));
var_dump(IntlChar::isUUppercase("1"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Смотрите также

  • IntlChar::isupper() - Проверить, входит ли символ в категорию "Lu" (буква в верхнем регистре)
  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::PROPERTY_UPPERCASE


Проверить, имеет ли символ свойство White_Space (пробельный символ)

  • « IntlChar::isUUppercase
  • IntlChar::isWhitespace »
  • PHP Manual
  • IntlChar
  • Проверить, имеет ли символ свойство White_Space (пробельный символ)

IntlChar::isUWhiteSpace

(PHP 7)

IntlChar::isUWhiteSpace — Проверить, имеет ли символ свойство White_Space (пробельный символ)

Описание

public static bool IntlChar::isUWhiteSpace ( mixed $codepoint )

Проверяет, имеет ли символ свойство White_Space (пробельный символ).

То же самое, что и IntlChar::hasBinaryProperty($codepoint, IntlChar::PROPERTY_WHITE_SPACE)

Замечание:

Отличается от IntlChar::isspace() и IntlChar::isWhitespace().

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint имеет свойство "White_Space", FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isUWhiteSpace("A"));
var_dump(IntlChar::isUWhiteSpace(" "));
var_dump(IntlChar::isUWhiteSpace("\n"));
var_dump(IntlChar::isUWhiteSpace("\t"));
var_dump(IntlChar::isUWhiteSpace("\u{00A0}"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(true)
bool(true)
bool(true)

Смотрите также

  • IntlChar::isspace() - Проверяет, является ли символ пробельным
  • IntlChar::isWhitespace() - Проверить, является ли символ пробельным с точки зрения ICU
  • IntlChar::isJavaSpaceChar() - Проверить, является ли символ пробельным с точки зрения языка Java
  • IntlChar::hasBinaryProperty() - Проверить бинарное свойство Unicode для символа
  • IntlChar::PROPERTY_WHITE_SPACE


Проверить, является ли символ пробельным с точки зрения ICU

  • « IntlChar::isUWhiteSpace
  • IntlChar::isxdigit »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ пробельным с точки зрения ICU

IntlChar::isWhitespace

(PHP 7)

IntlChar::isWhitespace — Проверить, является ли символ пробельным с точки зрения ICU

Описание

public static bool IntlChar::isWhitespace ( mixed $codepoint )

Проверяет, является ли символ пробельным с точки зрения ICU.

Символ является пробельным символом ICU только если он соответствует одному из следующих критериев:

  • Это символ разделитель Unicode (категории "Z" = "Zs" или "Zl" или "Zp"), но не является неразравным пробелом (U+00A0 NBSP или U+2007 "Figure Space" или U+202F "Narrow NBSP").
  • Это U+0009 HORIZONTAL TABULATION.
  • Это U+000A LINE FEED.
  • Это U+000B VERTICAL TABULATION.
  • Это U+000C FORM FEED.
  • Это U+000D CARRIAGE RETURN.
  • Это U+001C FILE SEPARATOR.
  • Это U+001D GROUP SEPARATOR.
  • Это U+001E RECORD SEPARATOR.
  • Это U+001F UNIT SEPARATOR.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является пробельным в ICU, FALSE - если нет.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::iswhitespace("A"));
var_dump(IntlChar::iswhitespace(" "));
var_dump(IntlChar::iswhitespace("\n"));
var_dump(IntlChar::iswhitespace("\t"));
var_dump(IntlChar::iswhitespace("\u{00A0}"));
?>

Результат выполнения данного примера:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isspace() - Проверяет, является ли символ пробельным
  • IntlChar::isJavaSpaceChar() - Проверить, является ли символ пробельным с точки зрения языка Java
  • IntlChar::isUWhiteSpace() - Проверить, имеет ли символ свойство White_Space (пробельный символ)


Проверить, является ли символ шестнадцатеричной цифрой

  • « IntlChar::isWhitespace
  • IntlChar::ord »
  • PHP Manual
  • IntlChar
  • Проверить, является ли символ шестнадцатеричной цифрой

IntlChar::isxdigit

(PHP 7)

IntlChar::isxdigit — Проверить, является ли символ шестнадцатеричной цифрой

Описание

public static bool IntlChar::isxdigit ( mixed $codepoint )

Проверяет, является ли символ шестнадцатеричной цифрой.

TRUE для символов из категории "Nd" (десятичные цифры) и латинских букв a-f и A-F в представлениях ASCII и Fullwidth ASCII ( 0041..0046, 0061..0066, FF21..FF26, FF41..FF46.)

Эквивалентно IntlChar::digit($codepoint, 16) >= 0.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает TRUE, если codepoint является шестнадцатеричной цифрой, FALSE - если нет.

Примечания

Замечание:

Для того чтобы сузить определение шестнадцатеричных цифр только принимаются только символы ASCII:

<?php
$isASCIIHexadecimal = IntlChar::ord($codepoint) <= 0x7F && IntlChar::isxdigit($codepoint);
?>

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::isxdigit("A"));
var_dump(IntlChar::isxdigit("1"));
var_dump(IntlChar::isxdigit("\u{2603}"));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)

Смотрите также

  • IntlChar::isdigit() - Проверить, является ли символ цифрой


Получить код символ Unicode

  • « IntlChar::isxdigit
  • IntlChar::tolower »
  • PHP Manual
  • IntlChar
  • Получить код символ Unicode

IntlChar::ord

(PHP 7)

IntlChar::ord — Получить код символ Unicode

Описание

public static int IntlChar::ord ( mixed $character )

Возвращает код символа Unicode.

Эта функция обратна функии IntlChar::chr().

Список параметров

character

Символ Unicode.

Возвращаемые значения

Возвращает код символа Unicode в виде целого числа.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::ord("A"));
var_dump(IntlChar::ord(" "));
var_dump(IntlChar::ord("\u{2603}"));
?>

Результат выполнения данного примера:

int(65)
int(32)
int(9731)

Смотрите также

  • IntlChar::isalnum() - Проверить, является ли символ буквой либо цифрой
  • IntlChar::isdigit() - Проверить, является ли символ цифрой
  • IntlChar::chr() - Получить символ Unicode по его коду
  • ord() - Возвращает ASCII-код символа


Преобразование символа Unicode в нижний регистр

  • « IntlChar::ord
  • IntlChar::totitle »
  • PHP Manual
  • IntlChar
  • Преобразование символа Unicode в нижний регистр

IntlChar::tolower

(PHP 7)

IntlChar::tolower — Преобразование символа Unicode в нижний регистр

Описание

public static mixed IntlChar::tolower ( mixed $codepoint )

Преобразует символ в его эквивалент в нижнем регистре. Если такового нет, то возвращается исходный символ.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает Simple_Lowercase_Mapping для символа, если существует. Если нет, то возвращает исходный символ.

Возвращаемый тип должен быть integer, если только символ не был передан как строка UTF-8 (string), в этом случае вернется строка.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::tolower("A"));
var_dump(IntlChar::tolower("a"));
var_dump(IntlChar::tolower("?"));
var_dump(IntlChar::tolower("?"));
var_dump(IntlChar::tolower("1"));
var_dump(IntlChar::tolower(ord("A")));
var_dump(IntlChar::tolower(ord("a")));
?>

Результат выполнения данного примера:

string(1) "a"
string(1) "a"
string(2) "?"
string(2) "?"
string(1) "1"
int(97)
int(97)

Смотрите также

  • IntlChar::totitle() - Преобразует символ Unicode в titlecase
  • IntlChar::toupper() - Преобразование символа Unicode в верхний регистр
  • mb_strtolower() - Приведение строки к нижнему регистру


Преобразует символ Unicode в titlecase

  • « IntlChar::tolower
  • IntlChar::toupper »
  • PHP Manual
  • IntlChar
  • Преобразует символ Unicode в titlecase

IntlChar::totitle

(PHP 7)

IntlChar::totitle — Преобразует символ Unicode в titlecase

Описание

public static mixed IntlChar::totitle ( mixed $codepoint )

Возвращает эквивалент символа в титульном(titlecase) регистре. Если такового нет, то возвращается исходный символ.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает Simple_Titlecase_Mapping для символа, если существует. Если нет, то возвращает исходный символ.

Возвращаемый тип должен быть integer, если только символ не был передан как строка UTF-8 (string), в этом случае вернется строка.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::totitle("A"));
var_dump(IntlChar::totitle("a"));
var_dump(IntlChar::totitle("?"));
var_dump(IntlChar::totitle("?"));
var_dump(IntlChar::totitle("1"));
var_dump(IntlChar::totitle(ord("A")));
var_dump(IntlChar::totitle(ord("a")));
?>

Результат выполнения данного примера:

string(1) "A"
string(1) "A"
string(2) "?"
string(2) "?"
string(1) "1"
int(65)
int(65)

Смотрите также

  • IntlChar::tolower() - Преобразование символа Unicode в нижний регистр
  • IntlChar::toupper() - Преобразование символа Unicode в верхний регистр
  • mb_convert_case() - Производит смену регистра символов в строке


Преобразование символа Unicode в верхний регистр

  • « IntlChar::totitle
  • IntlException »
  • PHP Manual
  • IntlChar
  • Преобразование символа Unicode в верхний регистр

IntlChar::toupper

(PHP 7)

IntlChar::toupper — Преобразование символа Unicode в верхний регистр

Описание

public static mixed IntlChar::toupper ( mixed $codepoint )

Преобразует символ в его эквивалент в верхнем регистре. Если такового нет, то возвращается исходный символ.

Список параметров

codepoint

Целочисленное задание кода символа (например 0x2603 для U+2603 СНЕГОВИКА), или символ закодированный строку UTF-8 (например "\u{2603}")

Возвращаемые значения

Возвращает Simple_Uppercase_Mapping символа, если он есть. В противном случае возвращается исходный символ.

Возвращаемый тип должен быть integer, если только символ не был передан как строка UTF-8 (string), в этом случае вернется строка.

Примеры

Пример #1 Тестирование различных способов задания

<?php
var_dump(IntlChar::toupper("A"));
var_dump(IntlChar::toupper("a"));
var_dump(IntlChar::toupper("?"));
var_dump(IntlChar::toupper("?"));
var_dump(IntlChar::toupper("1"));
var_dump(IntlChar::toupper(ord("A")));
var_dump(IntlChar::toupper(ord("a")));
?>

Результат выполнения данного примера:

string(1) "A"
string(1) "A"
string(2) "?"
string(2) "?"
string(1) "1"
int(65)
int(65)

Смотрите также

  • IntlChar::tolower() - Преобразование символа Unicode в нижний регистр
  • IntlChar::totitle() - Преобразует символ Unicode в titlecase
  • mb_strtoupper() - Приведение строки к верхнему регистру


Класс исключений для ошибок intl

(PHP 5 > 5.5.0, PHP 7, PECL intl > 3.0.0a1)

Введение

Этот класс служит для вызыва исключений в случае возникновения ошибки в функциях intl. Данные исключения могут быть брошены только если включена опция intl.use_exceptions.

Обзор классов

IntlException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс IntlIterator

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Этот класс представляет итератор объектов расширения intl в тех случаях, когда нельзя назначить какой либо другой итератор для объекта данного расширения. This class represents iterator objects throughout the intl extension whenever the iterator cannot be identified with any other object provided by the extension. Единственный объект итератор для использования в конструкции foreach может быть получен только (в соответствующей части здесь) из объектов, так что объекты данного класса служат для получения таких внутренних объектов. Для удобства данный класс также реализует интерфейс Iterator, позволяя взаимодействовать с коллекциями значений используя методы определенные в этом интерфейсе. Оба этих метода и внутренние объекты итератора сохраняют свое состояние при передачи в foreach. (т.е. внутренний указатель и текущее значение остаются неизменны).

Классы потомки могут предоставлять более широкую функциональность.

Обзор классов

IntlIterator implements Iterator {
/* Методы */
public ReturnType current ( void )
public ReturnType key ( void )
public ReturnType next ( void )
public ReturnType rewind ( void )
public ReturnType valid ( void )
}

Содержание

  • IntlIterator::current — Получить текущий элемент
  • IntlIterator::key — Получить ключ текущего элемента
  • IntlIterator::next — Перейти к следующему элементу
  • IntlIterator::rewind — Перейти к первому элементу
  • IntlIterator::valid — Проверить, корректна ли текущая позиция


Получить текущий элемент

  • « IntlIterator
  • IntlIterator::key »
  • PHP Manual
  • IntlIterator
  • Получить текущий элемент

IntlIterator::current

(Информация о версии неизвестна, возможно, только в SVN)

IntlIterator::current — Получить текущий элемент

Описание

public ReturnType IntlIterator::current ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить ключ текущего элемента

  • « IntlIterator::current
  • IntlIterator::next »
  • PHP Manual
  • IntlIterator
  • Получить ключ текущего элемента

IntlIterator::key

(Информация о версии неизвестна, возможно, только в SVN)

IntlIterator::key — Получить ключ текущего элемента

Описание

public ReturnType IntlIterator::key ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Перейти к следующему элементу

  • « IntlIterator::key
  • IntlIterator::rewind »
  • PHP Manual
  • IntlIterator
  • Перейти к следующему элементу

IntlIterator::next

(Информация о версии неизвестна, возможно, только в SVN)

IntlIterator::next — Перейти к следующему элементу

Описание

public ReturnType IntlIterator::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Перейти к первому элементу

  • « IntlIterator::next
  • IntlIterator::valid »
  • PHP Manual
  • IntlIterator
  • Перейти к первому элементу

IntlIterator::rewind

(Информация о версии неизвестна, возможно, только в SVN)

IntlIterator::rewind — Перейти к первому элементу

Описание

public ReturnType IntlIterator::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Проверить, корректна ли текущая позиция

  • « IntlIterator::rewind
  • Функции intl »
  • PHP Manual
  • IntlIterator
  • Проверить, корректна ли текущая позиция

IntlIterator::valid

(Информация о версии неизвестна, возможно, только в SVN)

IntlIterator::valid — Проверить, корректна ли текущая позиция

Описание

public ReturnType IntlIterator::valid ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Функции intl

Содержание

  • intl_error_name — Получить имя ошибки по ее коду
  • intl_get_error_code — Получить код последней ошибки
  • intl_get_error_message — Получить описание ошибки
  • intl_is_failure — Проверить, является ли код ошибки признаком сбоя


Получить имя ошибки по ее коду

  • « Функции intl
  • intl_get_error_code »
  • PHP Manual
  • Функции intl
  • Получить имя ошибки по ее коду

intl_error_name

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_error_name — Получить имя ошибки по ее коду

Описание

string intl_error_name ( int $error_code )

Возвращает имя ошибки ICU.

Список параметров

error_code

Код ошибки ICU.

Возвращаемые значения

Возвращаемая строка будет иметь имя аналогичное соответствующей константе.

Примеры

Пример #1 Пример использования intl_error_name()

<?php
$coll     = collator_create( 'en_RU' );
$err_code = collator_get_error_code( $coll );

printf( "Symbolic name for %d is %s\n.", $err_code, intl_error_name( $err_code ) );
?>

Результатом выполнения данного примера будет что-то подобное:

Symbolic name for -128 is U_USING_FALLBACK_WARNING.

Смотрите также

  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя
  • intl_get_error_code() - Получить код последней ошибки
  • intl_get_error_message() - Получить описание ошибки


Получить код последней ошибки

  • « intl_error_name
  • intl_get_error_message »
  • PHP Manual
  • Функции intl
  • Получить код последней ошибки

intl_get_error_code

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_get_error_code — Получить код последней ошибки

Описание

int intl_get_error_code ( void )

Полезно для обработки ошибок статических методов, когда отсутствует объект для извлечения ошибки из него.

Возвращаемые значения

Код ошибки, возвращенный последним вызовом функции API.

Примеры

Пример #1 Пример использования intl_get_error_code()

<?php
$coll = collator_create( '<bad_param>' );
if( !$coll ) {
    handle_error( intl_get_error_code() );
}
?>

Смотрите также

  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя
  • intl_error_name() - Получить имя ошибки по ее коду
  • intl_get_error_message() - Получить описание ошибки
  • collator_get_error_code() - Get collator's last error code
  • numfmt_get_error_code() - Get formatter's last error code.


Получить описание ошибки

  • « intl_get_error_code
  • intl_is_failure »
  • PHP Manual
  • Функции intl
  • Получить описание ошибки

intl_get_error_message

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_get_error_message — Получить описание ошибки

Описание

string intl_get_error_message ( void )

Получить описание последней произошедшей ошибки в функциях ICU.

Возвращаемые значения

Описание последней произошедшей ошибки в функциях ICU.

Примеры

Пример #1 Пример использования intl_get_error_message()

<?php
if( Collator::getAvailableLocales() === false ) {
    show_error( intl_get_error_message() );
}
?>

Смотрите также

  • intl_error_name() - Получить имя ошибки по ее коду
  • intl_get_error_code() - Получить код последней ошибки
  • intl_is_failure() - Проверить, является ли код ошибки признаком сбоя
  • collator_get_error_message() - Get text for collator's last error code
  • numfmt_get_error_message() - Get formatter's last error message.


Проверить, является ли код ошибки признаком сбоя

  • « intl_get_error_message
  • Многобайтные строки »
  • PHP Manual
  • Функции intl
  • Проверить, является ли код ошибки признаком сбоя

intl_is_failure

(PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.0)

intl_is_failure — Проверить, является ли код ошибки признаком сбоя

Описание

bool intl_is_failure ( int $error_code )

Список параметров

error_code

значение, возвращенное функциями: intl_get_error_code(), collator_get_error_code() .

Возвращаемые значения

TRUE, если произошел сбой, и FALSE, если все успешно, либо просто предупреждение.

Примеры

Пример #1 Пример использования intl_is_failure()

<?php
function check( $err_code )
{
    var_export( intl_is_failure( $err_code ) );
    echo "\n";
}

check( U_ZERO_ERROR );
check( U_USING_FALLBACK_WARNING );
check( U_ILLEGAL_ARGUMENT_ERROR );
?>

Результатом выполнения данного примера будет что-то подобное:

false
false
true

Смотрите также

  • intl_get_error_code() - Получить код последней ошибки
  • collator_get_error_code() - Get collator's last error code
  • Collator-getErrorCode() - Get collator's last error code


Многобайтные строки

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Краткий список поддерживаемых кодировок
  • Основы японских многобайтных кодировок
  • HTTP Ввод и Вывод
  • Поддерживаемые кодировки символов
  • Механизм перегрузки функций
  • Требования, предъявляемые к кодировкам символов в PHP
  • Функции для работы с Многобайтными строками
    • mb_check_encoding — Проверяет, что кодировка для строки выбрана верно
    • mb_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_output_handler — Callback-функция, преобразующая кодировку символов в выходном буфере
    • mb_parse_str — Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных
    • mb_preferred_mime_name — Получение набора символов MIME
    • mb_regex_encoding — Set/Get character encoding for multibyte regex
    • mb_regex_set_options — Установка/получение значений по умолчанию для настроек функций mbregex
    • mb_send_mail — Отправка закодированного сообщения
    • mb_split — Разделение строк в многобайтных кодировках, используя регулярное выражение
    • mb_strcut — Получение части строки
    • mb_strimwidth — Получение строки, обрезанной до заданной ширины
    • mb_stripos — Регистронезависимый поиск позиции первого вхождения одной строки в другую
    • mb_stristr — Находит первое вхождение подстроки в строке без учета регистра
    • mb_strlen — Получает длину строки
    • mb_strpos — Поиск позиции первого вхождения одной строки в другую
    • mb_strrchr — Поиск последнего вхождения одной строки в другую
    • mb_strrichr — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру
    • mb_strripos — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру
    • mb_strrpos — Поиск позиции последнего вхождения одной строки в другую
    • mb_strstr — Находит первое вхождение подстроки в строке
    • mb_strtolower — Приведение строки к нижнему регистру
    • mb_strtoupper — Приведение строки к верхнему регистру
    • mb_strwidth — Возвращает ширину строки
    • mb_substitute_character — Задание/получение символа заместителя
    • mb_substr_count — Возвращает количество вхождений подстроки
    • mb_substr — Возвращает часть строки


Введение

Хотя и существует множество языков, в которых все необходимые символы можно закодировать одним восьмибитным значением, существуют также и языки, требующие столько символов, что они не умещаются в один байт (Байт состоит из восьми бит. Каждый бит может содержать одно из двух различных значений, единицу или ноль. Поэтому, один байт может задавать только 256 уникальных значений (два в восьмой степени)). Схемы кодирования, использующие многобайтные строки, были разработаны для того, чтобы можно было пользоваться более, чем 256 символами, при этом продолжая работать со строками, как будто они закодированы в обычной побайтовой системе.

Когда вы работаете с многобайтными строками (удаляете пробельные символы с помощью функции trim, разбиваете строку на массив по регулярному выражению с помощью функции split, и т.д.), необходимо использовать специальные функции, так как в таких кодировках два или более последовательных байта могут задавать один символ. Иначе, если применить функцию, не умеющую работать с многобайтными строками, она, вероятно, не сможет определить начало и конец многобайтных символов, и в итоге вы получите строку-мусор, которая скорее всего потеряет исходное значение.

mbstring предоставляет функции для работы с многобайтными строками, которые облегчают работу c многобайтными кодировками в PHP. Кроме того, mbstring занимается конвертированием строк из одной кодировки в другую. mbstring предназначен для работы с Unicode-кодировками, такими, как UTF-8 и UCS-2, а также с многими однобайтными кодировками (для удобства), перечисленными ниже.


Установка

mbstring не входит в список расширений, устанавливаемых по умолчанию. Это значит, что изначально это расширение отключено. Для использования функций этого расширения необходимо явно включить модуль в настройке configure. За дополнительной информацией обращайтесь в раздел Инсталляция.

Следующие настройки относятся к модулю mbstring.

  • --enable-mbstring : Включение mbstring функций. Эта настройка необходима для использования функций mbstring.

    libmbfl необходима для работы mbstring. libmbfl поставляется вместе с mbstring. Если libmbfl уже установлена в системе, то, чтобы использовать именно ее, можно задать настройку --with-libmbfl[=DIR] .

  • --disable-mbregex : Отключение функций регулярных выражений, поддерживающих многобайтные кодировки.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации mbstring
Имя | По умолчанию | Меняемо | Список изменений
mbstring.language | "neutral" | PHP_INI_ALL | Доступна начиная с PHP 4.3.0. PHP_INI_PERDIR в PHP <= 5.2.6
mbstring.detect_order | NULL | PHP_INI_ALL | Доступна начиная с PHP 4.0.6.
mbstring.http_input | "pass" | PHP_INI_ALL | Доступна начиная с PHP 4.0.6. Устарела с PHP 5.6.0.
mbstring.http_output | "pass" | PHP_INI_ALL | Доступна начиная с PHP 4.0.6. Устарела с PHP 5.6.0.
mbstring.internal_encoding | NULL | PHP_INI_ALL | Доступна начиная с PHP 4.0.6. Устарела с PHP 5.6.0.
mbstring.script_encoding | NULL | PHP_INI_ALL | Доступна начиная с PHP 4.3.0. Удалена в PHP 5.4.0. Используйте zend.script_encoding
mbstring.substitute_character | NULL | PHP_INI_ALL | Доступна начиная с PHP 4.0.6.
mbstring.func_overload | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR с PHP 4.3 до 5.2.6, а в других версиях - PHP_INI_SYSTEM. Доступна с PHP 4.2.0.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | Доступна начиная с PHP 4.3.0.
mbstring.strict_detection | "0" | PHP_INI_ALL | Доступна начиная с PHP 5.1.2.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mbstring.language string

По умолчанию в mbstring используются настройки национального языка. Обратите внимание, что эта опция автоматически определяет mbstring.internal_encoding, и mbstring.internal_encoding должен быть помещен после mbstring.language в php.ini

mbstring.encoding_translation boolean

Включает прозрачный фильтр кодировки для входящих запросов HTTP, который выполняет обнаружение и преобразование входной кодировки во внутреннюю кодировку.

mbstring.internal_encoding string
Внимание

Данная возможность была xmlns УСТАРЕВШЕЙ начиная с версии PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

Определяет внутреннюю кодировку символов по умолчанию.

В PHP 5.6 и новее должен оставить эту опцию пустой и задать вместо нее default_charset.

mbstring.http_input string
Внимание

Данная возможность была xmlns УСТАРЕВШЕЙ начиная с версии PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

Определяет кодировку символов по умолчанию для HTTP-ввода.

В PHP 5.6 и новее должен оставить эту опцию пустой и задать вместо нее default_charset.

mbstring.http_output string
Внимание

Данная возможность была xmlns УСТАРЕВШЕЙ начиная с версии PHP 5.6.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

Определяет кодировку символов по умолчанию для HTTP-вывода (конвертация из внутренней кодировки в кодировку HTTP вывода произойдет перед выводом).

В PHP 5.6 и новее должен оставить эту опцию пустой и задать вместо нее default_charset.

mbstring.detect_order string

Определяет порядок определения кодировки символов по умолчанию. См. также mb_detect_order().

mbstring.substitute_character string

Определяет символ для замены недопустимых символов кодировки.

mbstring.func_overload string

Перегружает множество однобайтовых функций аналогами из mbstring. Смотрите раздел Перегрузка функций для получения дополнительной информации.

Эта опция может быть изменена только в файле php.ini.

mbstring.strict_detection boolean

Позволяет строгое определение кодировки.

Согласно » спецификации HTML 4.01, веб-браузерам позволяется перекодировать данные из формы, которые они получают в кодировке символов, отличной от используемой на странице. Смотрите функцию mb_http_input() для того, чтобы определить кодировку символов, используемую браузерами.

Хотя популярные браузеры способны достаточно точно определить кодировку символов данного HTML-документа, было бы лучше установить параметр charset в поле Content-Type HTTP-заголовка в требуемое значение или указать ее в параметре default_charset в ini-настройках.

Пример #1 Примеры настроек php.ini

; Установить язык по умолчанию
mbstring.language        = Neutral; Установить Neutral(UTF-8) языком по умолчанию(по умолчанию)
mbstring.language        = English; Установить английский языком по умолчанию
mbstring.language        = Japanese; Установить японский языком по умолчанию

;; Установить внутреннюю кодировку по умолчанию
;; Примечание: Убедитесь, что используете кодировку символов, которая работает с PHP
mbstring.internal_encoding    = UTF-8  ; Установить внутреннюю кодировку в UTF-8

;; Включено преобразование кодировки HTTP-ввода.
mbstring.encoding_translation = On

;; Установить кодировку символов по умолчанию для HTTP-ввода
;; Примечание: Скрипт не может изменить установку http_input.
mbstring.http_input           = pass    ; Нет преобразования.
mbstring.http_input           = auto    ; Установить HTTP-ввод в auto
                                ; "auto" расширяется в соответствии с mbstring.language
mbstring.http_input           = SJIS    ; Установить HTTP-ввод в SJIS
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Указать порядок

;; Установить кодировку символов по умолчанию для HTTP-вывода
mbstring.http_output          = pass    ; Нет преобразования.
mbstring.http_output          = UTF-8   ; Установить кодировку HTTP-вывода в UTF-8

;; Установить порядок определения кодировки символов по умолчанию
mbstring.detect_order         = auto    ; Установить порядок определения в auto
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Указать порядок

;; Установить символ замены по умолчанию
mbstring.substitute_character = 12307   ; Указать значение Unicode
mbstring.substitute_character = none    ; Не печатать символ
mbstring.substitute_character = long    ; Примеры кодовых значений символов: U+3000,JIS+7E7E

Пример #2 Настройки php.ini для пользователей EUC-JP

;; Отключить буферизацию вывода
output_buffering      = Off

;; Установить кодировку в http-заголовке
default_charset       = EUC-JP

;; Установить японский языком по умолчанию
mbstring.language = Japanese

;; Включено преобразование кодировки HTTP-ввода.
mbstring.encoding_translation = On

;; Установить перекодировку HTTP-ввода в auto
mbstring.http_input   = auto

;; Конвертировать HTTP-вывод в EUC-JP
mbstring.http_output  = EUC-JP

;; Установить внутреннюю кодировку в EUC-JP
mbstring.internal_encoding = EUC-JP

;; Не печатать недопустимые символы
mbstring.substitute_character = none

Пример #3 Настройки php.ini для пользователей SJIS

;; Включить буферизацию вывода
output_buffering     = On

;; Установить mb_output_handler для включения перекодировки вывода
output_handler       = mb_output_handler

;; Установить кодировку в http-заголовке
default_charset      = Shift_JIS

;; Установить японский языком по умолчанию
mbstring.language = Japanese

;; Установить перекодировку HTTP-ввода в auto
mbstring.http_input  = auto

;; Конвертировать в SJIS
mbstring.http_output = SJIS

;; Установить внутреннюю кодировку в EUC-JP
mbstring.internal_encoding = EUC-JP

;; Не печатать недопустимые символы
mbstring.substitute_character = none


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MB_OVERLOAD_MAIL (integer)
MB_OVERLOAD_STRING (integer)
MB_OVERLOAD_REGEX (integer)
MB_CASE_UPPER (integer)
MB_CASE_LOWER (integer)
MB_CASE_TITLE (integer)


Краткий список поддерживаемых кодировок

Список поддерживаемых кодировок
Название в реестре кодировок 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 | Американский Стандартный Код для Обмена Информацией - широко используемая 7-битная кодировка. Также стандартизована как международный стандарт ISO 646. | (нет)
EUC-JP (предпочитаемое MIME-имя) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese | Объединение US-ASCII / JIS X0201:1997 (часть hankaku kana) / JIS X0208:1990 / JIS X0212:1990 | Как видно из названия, эта кодировка используется в основном в Unix системах или им подобных. Исходная схема кодирования Extended UNIX Code легла в основу стандарта ISO 2022. | Набор символов, на который ссылается EUC-JP отличен от набора для IBM932 / CP932, которые используются в OS/2® и Microsoft® Windows®. Для обеспечения взаимодействия между этими платформами используйте кодировку EUCJP-WIN.
Shift_JIS (предпочитаемое MIME-имя) / MS_Kanji / csShift_JIS | Объединение JIS X0201:1997 / JIS X0208:1997 | Shift_JIS был разработан в начале 80-х, когда Японские текстовые процессоры для рядовых пользователей только выходили на рынок, чтобы сохранить совместимость со схемой кодирования JIS X 0201:1976. В соответствии с определением IANA, кодовая таблица Shift_JIS несколько отличается от IBM932 / CP932. Тем не менее, названия "SJIS" / "Shift_JIS" ошибочно используются для обращения к этим кодовым таблицам. | Для кодовой таблицы CP932, используйте кодировку SJIS-WIN.
(none) | Объединение JIS X0201:1997 / JIS X0208:1997 / IBM расширения / NEC расширения | Несмотря на то, что эта "кодировка" использует ту же схему кодирования, что и EUC-JP, наборы символов, лежащий в их основе, различны. Таким образом, некоторые коды ссылаются на отличные от EUC-JP символы. | нет
Windows-31J / csWindows31J | Объединение JIS X0201:1997 / JIS X0208:1997 / IBM расширения / NEC расширения | Несмотря на то, что эта "кодировка" использует ту же схему кодирования, что и Shift_JIS, наборы символов, лежащий в их основе, различны. Таким образом, некоторые коды ссылаются на отличные от Shift_JIS символы. | (нет)
ISO-2022-JP (предпочитаемое MIME-имя) / csISO2022JP | US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983 | » RFC1468 | (нет)
JIS |  |  |
ISO-8859-1 |  |  |
ISO-8859-2 |  |  |
ISO-8859-3 |  |  |
ISO-8859-4 |  |  |
ISO-8859-5 |  |  |
ISO-8859-6 |  |  |
ISO-8859-7 |  |  |
ISO-8859-8 |  |  |
ISO-8859-9 |  |  |
ISO-8859-10 |  |  |
ISO-8859-13 |  |  |
ISO-8859-14 |  |  |
ISO-8859-15 |  |  |
ISO-8859-16 |  |  |
byte2be |  |  |
byte2le |  |  |
byte4be |  |  |
byte4le |  |  |
BASE64 |  |  |
HTML-ENTITIES |  |  |
7bit |  |  |
8bit |  |  |
EUC-CN |  |  |
CP936 |  |  |
HZ |  |  |
EUC-TW |  |  |
CP950 |  |  |
BIG-5 |  |  |
EUC-KR |  |  |
UHC (CP949) |  |  |
ISO-2022-KR |  |  |
Windows-1251 (CP1251) |  |  |
Windows-1252 (CP1252) |  |  |
CP866 (IBM866) |  |  |
KOI8-R |  |  |
KOI8-U |  |  |


Основы японских многобайтных кодировок

Японские символы могут быть представлены только в многобайтных кодировках, и многие стандарты кодирования зависят от платформы и назначения текста. Осложняет ситуацию то, что эти стандарты немного друг от друга отличаются. Чтобы создать веб-приложение, правильно работающее в японском окружении, разработчику необходимо держать все эти расхождения в уме, чтобы быть уверенным, что в каждый момент используется правильная кодировка.

  • Кодовое пространство для символа может занимать до шести байт
  • Большинство японских многобайтных символов требуют для хранения вдвое больше пространства, чем однобайтные символы. Такие символы называют "zen-kaku" по-японски, что означает "полная ширина". Другие, более узкие символы называют "han-kaku", что значит "полуширина". Графические свойства символов, однако, зависят от шрифта, которым они отображаются.
  • В некоторых кодировках для смены кодовой разметки определенной области кодов (00h на 7fh) используются клавиши shift(escape), определенные в стандарте in ISO-2022.
  • ISO-2022-JP должен использоваться в SMTP/NNTP, а заголовки и сущности должны перекодироваться в соответствии с требованиями RFC. Даже, если перекодировка не требуется, все же она будет не лишней, так как некоторые популярные почтовые клиенты не умеют работать с другими кодировками.
  • Веб-страницы, создаваемые для служб мобильных телефонов, таких как » i-mode или » EZweb должны использовать кодировку Shift_JIS.
  • В PHP 5.4.0 поддерживаются символы пиктограмм, используемые в сервисах мобильных телефонов, таких как » i-mode или » EZweb.


HTTP Ввод и Вывод

Механизм преобразования кодировок ввода/вывода HTTP также может конвертировать двоичные данные. Пользователи должны сами следить за процессом преобразования, если в качестве ввода/вывода HTTP передаются двоичные данные.

Замечание:

Если enctype в HTML форме имеет значение multipart/form-data, а значение mbstring.encoding_translation в php.ini установлено в On, переменные и имена загружаемых файлов в POST запросах конвертируются во внутреннюю кодировку скрипта автоматически. Однако, это не относится к ключевым словам запроса.

  • HTTP Ввод

    Из PHP скрипта невозможно контролировать преобразование кодировки входящих через HTTP символов. Если нужно отключить автоматическую конвертацию для HTTP ввода, это можно сделать в php.ini.

    Пример #1 Отключение преобразования кодировки HTTP ввода в php.ini

    ;; Отключение конвертации
mbstring.http_input = pass
;; Отключение конвертации
mbstring.encoding_translation = Off

    Если PHP используется как Apache модуль, можно замещать эти настройки в каждой директиве Виртуального Хоста в httpd.conf или для каждой директории с .htaccess. За дополнительной информацией обращайтесь в раздел Конфигурация Руководства по работе с Apache.

  • HTTP Вывод

    Есть несколько способов включить преобразование кодировки для выходных данных. Один из них - использование php.ini, другой - использование функции ob_start() с mb_output_handler() в качестве callback-функции для ob_start.

Пример #2 Пример настройки php.ini

;; Включение преобразования кодировок выходных символов для всех PHP страниц

;; Включение буферизации выходных данных
output_buffering    = On

;; Определение mb_output_handler для включения конвертации вывода
output_handler      = mb_output_handler

Пример #3 Пример скрипта

<?php

// Включение преобразования кодировок выходных символов только для этой страницы

// Установка кодировки HTTP вывода в SJIS
mb_http_output('SJIS');

// Запуск буферизации и определение "mb_output_handler" как
// callback-функции
ob_start('mb_output_handler');

?>


Поддерживаемые кодировки символов

В настоящее время модулем mbstring поддерживаются следующие кодировки символов. Любая из этих кодировок символов может быть указаны в параметре encoding функций mbstring.

Следующие кодировки символов поддерживаются в этом расширении PHP:

  • UCS-4*
  • UCS-4BE
  • UCS-4LE*
  • UCS-2
  • UCS-2BE
  • UCS-2LE
  • UTF-32*
  • UTF-32BE*
  • UTF-32LE*
  • UTF-16*
  • UTF-16BE*
  • UTF-16LE*
  • UTF-7
  • UTF7-IMAP
  • UTF-8*
  • ASCII*
  • EUC-JP*
  • SJIS*
  • eucJP-win*
  • SJIS-win*
  • ISO-2022-JP
  • ISO-2022-JP-MS
  • CP932
  • CP51932
  • SJIS-mac** (alias: MacJapanese)
  • SJIS-Mobile#DOCOMO** (alias: SJIS-DOCOMO)
  • SJIS-Mobile#KDDI** (alias: SJIS-KDDI)
  • SJIS-Mobile#SOFTBANK** (alias: SJIS-SOFTBANK)
  • UTF-8-Mobile#DOCOMO** (alias: UTF-8-DOCOMO)
  • UTF-8-Mobile#KDDI-A**
  • UTF-8-Mobile#KDDI-B** (alias: UTF-8-KDDI)
  • UTF-8-Mobile#SOFTBANK** (alias: UTF-8-SOFTBANK)
  • ISO-2022-JP-MOBILE#KDDI** (alias: ISO-2022-JP-KDDI)
  • JIS
  • JIS-ms
  • CP50220
  • CP50220raw
  • CP50221
  • CP50222
  • ISO-8859-1*
  • ISO-8859-2*
  • ISO-8859-3*
  • ISO-8859-4*
  • ISO-8859-5*
  • ISO-8859-6*
  • ISO-8859-7*
  • ISO-8859-8*
  • ISO-8859-9*
  • ISO-8859-10*
  • ISO-8859-13*
  • ISO-8859-14*
  • ISO-8859-15*
  • ISO-8859-16*
  • byte2be
  • byte2le
  • byte4be
  • byte4le
  • BASE64
  • HTML-ENTITIES
  • 7bit
  • 8bit
  • EUC-CN*
  • CP936
  • GB18030**
  • 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*
  • ArmSCII-8 (ArmSCII8)

* отмечает кодировки, которые также могут использоваться в регулярных выражениях.

** отмечает кодировки, доступные с PHP 5.4.0.

Любая запись в php.ini, которая принимает имя кодировки, может также использовать значения "auto" и "pass". Функции mbstring, которые принимают имя кодировки, также могут использовать значение "auto".

Если установлено значение "pass", перекодировка не производится.

Если установлено значение "auto", оно расширяется списком кодировок, определенным в NLS (настройках национального языка). Например, если NLS установлен в Japanese, предполагается, что значение будет из списка "ASCII,JIS,UTF-8,EUC-JP,SJIS".

См. также mb_detect_order()


Механизм перегрузки функций

Зачастую заставить работать существующее PHP-приложение в многобайтном окружении оказывается довольно трудной задачей. Это происходит, потому что большинство PHP-приложений написано с использованием стандартных функций обработки строк, таких как substr(), которые не умеют работать со строками в многобайтных кодировках.

mbstring поддерживает механизм 'перегрузки функций', который позволяет сообщить приложению о том, что используется многобайтная кодировка, без модификации кода, отвечающего за работу со строками. Например, если включена перегрузка функций, то функция mb_substr() будет вызываться вместо substr(). Этот механизм во многих случаях позволяет портировать приложения, поддерживающие только однобайтные кодировки, в многобайтное окружение.

Для использования механизма перегрузки функций нужно задать настройке mbstring.func_overload в php.ini положительное значение, которое представляет собой комбинацию битовых масок, определяющих категории функций, которые нужно перегружать. Это будет число 1 для перегрузки функции mail(). 2 для строковых функций, 4 для функций регулярных выражений. Например, если значение настройки равно 7, то почтовые, строковые и функции регулярных выражений будут перегружаться. Список перегружаемых функций приведен ниже.

Функции, которые будут перегружены
значение настройки mbstring.func_overload | исходная функция | перегруженная функция
1 | mail() | mb_send_mail()
2 | strlen() | mb_strlen()
2 | strpos() | mb_strpos()
2 | strrpos() | mb_strrpos()
2 | substr() | mb_substr()
2 | strtolower() | mb_strtolower()
2 | strtoupper() | mb_strtoupper()
2 | stripos() | mb_stripos()
2 | strripos() | mb_strripos()
2 | strstr() | mb_strstr()
2 | stristr() | mb_stristr()
2 | strrchr() | mb_strrchr()
2 | substr_count() | mb_substr_count()
4 | ereg() | mb_ereg()
4 | eregi() | mb_eregi()
4 | ereg_replace() | mb_ereg_replace()
4 | eregi_replace() | mb_eregi_replace()
4 | split() | mb_split()

Замечание:

Не рекомендуется использовать перегрузку функций в контексте поддиректорий, так как добиться стабильной работы в этом случае пока не удалось, и это может привести к неожидаемому поведению приложения.


Требования, предъявляемые к кодировкам символов в PHP

Типы кодировок, использование которых в PHP безопасно.

  • Однобайтные кодировки,

    • имеющие ASCII-совместимую (ISO646 совместимую) разметку в диапазоне с 00h по 7fh.

  • Многобайтные кодировки,

    • имеющие ASCII-совместимую разметку в диапазоне с 00h по 7fh.
    • не использующие ISO2022 escape-последовательности.
    • не использующие значения в байтах с 00h по 7fh по отдельности, когда эти байты представляют один символ.

Далее приведены примеры кодировок, использование которых в PHP нежелательно.

JIS, SJIS, ISO-2022-JP, BIG-5

Даже если PHP скрипт написан в рекомендуемой кодировке, он может оказаться неработоспособным. Зачастую так происходит, когда кодированные строки появляются в скрипте в качестве идентификаторов или литералов. Можно исключить большую часть таких ситуаций путем использования функции фильтрации кодировок во входящих HTTP запросах (функция есть в расширении mbstring).

Замечание:

Крайне не рекомендуется использовать SJIS, BIG5, CP936, CP949 и GB18030 в качестве внутренних кодировок, если вы недостаточно разбираетесь в устройстве парсера, сканера и кодировки.

Замечание:

Если вы подключаетесь к базе данных средствами PHP, рекомендуется использовать одинаковые кодировки для базы данных и в качестве внутренней кодировки. Это облегчит разработку и повысит быстродействие.

Если вы используете PostgreSQL, совпадение кодировок в базе данных и используемой в PHP необязательно, так как PostgreSQL поддерживает автоматическое преобразование кодировок между СУБД и клиентом.


Функции для работы с Многобайтными строками

Ссылки

Схемы многобайтного кодирования символов и их реализации достаточно сложны, и их описание находится за пределами этой документации. Более исчерпывающую информацию о кодировках и их устройстве можно почерпнуть из нижеприведенных источников.

  • Материалы по Юникоду

    » http://www.unicode.org/

  • Информация о символах Японской/Корейской/Китайской кодировок

    » http://examples.oreilly.com/cjkvinfo/doc/cjk.inf

Содержание

  • mb_check_encoding — Проверяет, что кодировка для строки выбрана верно
  • mb_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_output_handler — Callback-функция, преобразующая кодировку символов в выходном буфере
  • mb_parse_str — Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных
  • mb_preferred_mime_name — Получение набора символов MIME
  • mb_regex_encoding — Set/Get character encoding for multibyte regex
  • mb_regex_set_options — Установка/получение значений по умолчанию для настроек функций mbregex
  • mb_send_mail — Отправка закодированного сообщения
  • mb_split — Разделение строк в многобайтных кодировках, используя регулярное выражение
  • mb_strcut — Получение части строки
  • mb_strimwidth — Получение строки, обрезанной до заданной ширины
  • mb_stripos — Регистронезависимый поиск позиции первого вхождения одной строки в другую
  • mb_stristr — Находит первое вхождение подстроки в строке без учета регистра
  • mb_strlen — Получает длину строки
  • mb_strpos — Поиск позиции первого вхождения одной строки в другую
  • mb_strrchr — Поиск последнего вхождения одной строки в другую
  • mb_strrichr — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру
  • mb_strripos — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру
  • mb_strrpos — Поиск позиции последнего вхождения одной строки в другую
  • mb_strstr — Находит первое вхождение подстроки в строке
  • mb_strtolower — Приведение строки к нижнему регистру
  • mb_strtoupper — Приведение строки к верхнему регистру
  • mb_strwidth — Возвращает ширину строки
  • mb_substitute_character — Задание/получение символа заместителя
  • mb_substr_count — Возвращает количество вхождений подстроки
  • mb_substr — Возвращает часть строки


Проверяет, что кодировка для строки выбрана верно

  • « Функции для работы с Многобайтными строками
  • mb_convert_case »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Проверяет, что кодировка для строки выбрана верно

mb_check_encoding

(PHP 4 >= 4.4.3, PHP 5 >= 5.1.3, PHP 7)

mb_check_encoding — Проверяет, что кодировка для строки выбрана верно

Описание

bool mb_check_encoding ([ string $var = NULL [, string $encoding = mb_internal_encoding() ]] )

Проверяет, что для потока данных подходит выбранная кодировка. Функция может быть полезной для предотвращения так называемой "Атаки неправильной кодировкой".

Список параметров

var

Поток данных для проверки. Если не задан, функция проверит все входные данные с начала запроса.

encoding

Ожидаемая кодировка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Производит смену регистра символов в строке

  • « mb_check_encoding
  • mb_convert_encoding »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Производит смену регистра символов в строке

mb_convert_case

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_convert_case — Производит смену регистра символов в строке

Описание

string mb_convert_case ( string $str , int $mode [, string $encoding = mb_internal_encoding() ] )

Производит смену регистра символов в строке string в соответствии с режимом mode.

Список параметров

str

Строка (string) для преобразования.

mode

Режим смены регистра. Это может быть одна из констант MB_CASE_UPPER, MB_CASE_LOWER или MB_CASE_TITLE.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Строка string преобразованная в соответствии с режимом mode.

Юникод

В отличие от стандартных функций смены регистра, вроде strtolower() и strtoupper(), смена регистра осуществляется на основе свойств символа Юникода. Таким образом, на поведение функции не влияют региональные настройки системы, и она может конвертировать любые символы, имеющие 'алфавитное' свойство, как например А-умляут (A).

Дополнительную информацию о свойствах Юникода смотрите по ссылке» http://www.unicode.org/unicode/reports/tr21/.

Примеры

Пример #1 Пример использования mb_convert_case()

<?php
$str = "у мэри был маленький ягненок и она его очень любила";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Выведет У МЭРИ БЫЛ МАЛЕНЬКИЙ ЯГНЕНОК И ОНА ЕГО ОЧЕНЬ ЛЮБИЛА
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Выведет У Мэри Был Маленький Ягненок И Она Его Очень Любила
?>

Пример #2 Пример использования mb_convert_case() с нелатинским UTF-8 текстом

<?php
$str = "??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????";
$str = mb_convert_case($str, MB_CASE_UPPER, "UTF-8");
echo $str; // Выведет ??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????
$str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
echo $str; // Выведет ??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????
?>

Смотрите также

  • mb_strtolower() - Приведение строки к нижнему регистру
  • mb_strtoupper() - Приведение строки к верхнему регистру
  • strtolower() - Преобразует строку в нижний регистр
  • strtoupper() - Преобразует строку в верхний регистр
  • ucfirst() - Преобразует первый символ строки в верхний регистр
  • ucwords() - Преобразует в верхний регистр первый символ каждого слова в строке


Преобразует кодировку символов

  • « mb_convert_case
  • mb_convert_kana »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Преобразует кодировку символов

mb_convert_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_convert_encoding — Преобразует кодировку символов

Описание

string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )

Преобразует символы строки str (string) в кодировку to_encoding. Также можно указать необязательный параметр from_encoding.

Список параметров

str

Строка (string), которая преобразуется.

to_encoding

Кодировка, в которую будет преобразована строка str.

from_encoding

Параметр для указания исходной кодировки строки. Это может быть массив (array), или строка со списком кодировок через запятую. Если параметр from_encoding не указан, то кодировка определяется автоматически.

Смотри поддерживаемые кодировки.

Возвращаемые значения

Преобразованная строка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");

/* "auto" используется для обозначения "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
?>

Смотрите также

  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки


Преобразование кодировок "kana" из одной в другую ("zen-kaku", "han-kaku" и другие)

  • « mb_convert_encoding
  • mb_convert_variables »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Преобразование кодировок "kana" из одной в другую ("zen-kaku", "han-kaku" и другие)

mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_convert_kana — Преобразование кодировок "kana" из одной в другую ("zen-kaku", "han-kaku" и другие)

Описание

string mb_convert_kana ( string $str [, string $option = "KV" [, string $encoding = mb_internal_encoding() ]] )

Поизводит преобразование "han-kaku" - "zen-kaku" для агрумента string str. Эта функция может быть полезной только для японского языка.

Список параметров

str

Исходная строка (string).

option

Настройка конвертации.

Задается комбинацией следующих настроек.

Возможные настройки преобразования
Настройка | Описание
r | Преобразование "zen-kaku" букв в "han-kaku"
R | Преобразование "han-kaku" букв в "zen-kaku"
n | Преобразование "zen-kaku" чисел в "han-kaku"
N | Преобразование "han-kaku" чисел в "zen-kaku"
a | Преобразование "zen-kaku" букв и чисел в "han-kaku"
A | Преобразование "han-kaku" букв и чисел в "zen-kaku" (Для настроек "a", "A" символы берутся из диапазона U+0021 - U+007E, исключая U+0022, U+0027, U+005C, U+007E)
s | Преобразование "zen-kaku" пробела в "han-kaku" (U+3000 -> U+0020)
S | Преобразование "han-kaku" пробела в "zen-kaku" (U+0020 -> U+3000)
k | Преобразование "zen-kaku kata-kana" в "han-kaku kata-kana"
K | Преобразование "han-kaku kata-kana" в "zen-kaku kata-kana"
h | Преобразование "zen-kaku hira-gana" в "han-kaku kata-kana"
H | Преобразование "han-kaku kata-kana" в "zen-kaku hira-gana"
c | Преобразование "zen-kaku kata-kana" в "zen-kaku hira-gana"
C | Преобразование "zen-kaku hira-gana" в "zen-kaku kata-kana"
V | Производит свертку фонем и преобразует их в символ. Используется с "K","H"

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Преобразованная строка string.

Примеры

Пример #1 Пример использования mb_convert_kana()

<?php
/* Преобразование всех символов "kana" в "zen-kaku" "kata-kana" */
$str = mb_convert_kana($str, "KVC");

/* Преобразование "han-kaku" "kata-kana" в "zen-kaku" "kata-kana"
   и "zen-kaku" alpha-numeric в "han-kaku" */
$str = mb_convert_kana($str, "KVa");
?>


Преобразует символы в переменной(-ых) из одной кодировки в другую

  • « mb_convert_kana
  • mb_decode_mimeheader »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Преобразует символы в переменной(-ых) из одной кодировки в другую

mb_convert_variables

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_convert_variables — Преобразует символы в переменной(-ых) из одной кодировки в другую

Описание

string mb_convert_variables ( string $to_encoding , mixed $from_encoding , mixed &$vars [, mixed &$... ] )

Конвертирует символы в переменных vars из кодировки from_encoding в кодировку to_encoding.

mb_convert_variables() объединяет строки из массива или объекта для определения их кодировки, так как в случае коротких строк определить кодировку зачастую не удается. Вследствие этого, недопустимо помещать в один массив или объект строки в разных кодировках.

Список параметров

to_encoding

Кодировка, в которую необходимо перекодировать строку string.

from_encoding

from_encoding задается в виде массива array или строки string с разделенными запятой кодировками. Функция попытается определить кодировку исходной строки на основе списка возможных кодировок в аргументе from-coding. Если from_encoding опущен, используется detect_order.

vars

vars - ссылка на переменную, содержимое которой необходимо преобразовать. Это может быть строка, массив или объект. mb_convert_variables() принимает, что все эти аргументы имеют одинаковою кодировку.

...

Дополнительные vars.

Возвращаемые значения

Исходную кодировку в случае успеха или FALSE в случае неудачи.

Примеры

Пример #1 Пример использования mb_convert_variables()

<?php
/* Преобразование переменных $post1, $post2 во внутреннюю кодировку скрипта */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>


Декодирует строку в MIME-заголовке

  • « mb_convert_variables
  • mb_decode_numericentity »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Декодирует строку в MIME-заголовке

mb_decode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_decode_mimeheader — Декодирует строку в MIME-заголовке

Описание

string mb_decode_mimeheader ( string $str )

Декодирует закодированную строку string str в MIME-заголовке.

Список параметров

str

Строка string для декодирования.

Возвращаемые значения

Декодированная строка string во внутренней кодировке скрипта.

Смотрите также

  • mb_encode_mimeheader() - Кодирование строки для MIME-заголовка


Декодирует числовую HTML-ссылку в символ

  • « mb_decode_mimeheader
  • mb_detect_encoding »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Декодирует числовую HTML-ссылку в символ

mb_decode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_decode_numericentity — Декодирует числовую HTML-ссылку в символ

Описание

string mb_decode_numericentity ( string $str , array $convmap [, string $encoding = mb_internal_encoding() ] )

Преобразует строку чисел str(string) в заданном блоке в символ.

Список параметров

str

Строка для декодирования string.

convmap

convmap - массив array, который задает диапазон кодов символов.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Преобразованная строка string.

Примеры

Пример #1 Пример convmap

<?php
$convmap = array (
   int start_code1, int end_code1, int offset1, int mask1,
   int start_code2, int end_code2, int offset2, int mask2,
   ........
   int start_codeN, int end_codeN, int offsetN, int maskN );
// Задайте значения Юникода для start_codeN и end_codeN
// Добавьте к значению offsetN и сложите побитово с maskN,
// затем преобразуйте результат в число.
?>

Пример #2 Пример экранирования строки JavaScript с помощью convmap

<?php
function escape_javascript_string($str) {
  $map = [
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,0,0, // 49
          0,0,0,0,0,0,0,0,1,1,
          1,1,1,1,1,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,
          0,1,1,1,1,1,1,0,0,0, // 99
          0,0,0,0,0,0,0,0,0,0,
          0,0,0,0,0,0,0,0,0,0,
          0,0,0,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1, // 149
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1, // 199
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1,
          1,1,1,1,1,1,1,1,1,1, // 249
          1,1,1,1,1,1,1, // 255
          ];
  // Кодировка символа UTF-8
  $mblen = mb_strlen($str, 'UTF-8');
  $utf32 = bin2hex(mb_convert_encoding($str, 'UTF-32', 'UTF-8'));
  for ($i=0, $encoded=''; $i < $mblen; $i++) {
      $u = substr($utf32, $i*8, 8);
      $v = base_convert($u, 16, 10);
      if ($v < 256 && $map[$v]) {
        $encoded .= '\\x'.substr($u, 6,2);
      } else if ($v == 2028) {
        $encoded .= '\\u2028';
      } else if ($v == 2029) {
        $encoded .= '\\u2029';
      } else {
        $encoded .= mb_convert_encoding(hex2bin($u), 'UTF-8', 'UTF-32');
      }
   }
   return $encoded;
}

// Test data
$convmap = [ 0x0, 0xffff, 0, 0xffff ];
$msg = '';
for ($i=0; $i < 1000; $i++) {
  // chr() не может сгенерировать корректный UTF-8 символ больший чем 128. Используем mb_decode_numericentity().
  $msg .= mb_decode_numericentity('&#'.$i.';', $convmap, 'UTF-8');
}

// var_dump($msg);
var_dump(escape_javascript_string($msg));

Смотрите также

  • mb_encode_numericentity() - Кодирование символа в числовую HTML-ссылку


Определение кодировки символов

  • « mb_decode_numericentity
  • mb_detect_order »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Определение кодировки символов

mb_detect_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_detect_encoding — Определение кодировки символов

Описание

string mb_detect_encoding ( string $str [, mixed $encoding_list = mb_detect_order() [, bool $strict = false ]] )

Определяет кодировку символов в строке string str.

Список параметров

str

Строка string, кодировку в которой требуется определить.

encoding_list

encoding_list список возможных кодировок. Может быть представлен массивом или строкой, в которой будут перечислены названия кодировок, отделенные запятыми.

Если encoding_list не задан, будет применен detect_order.

strict

strict задает режим точного определения кодировки. По умолчанию FALSE.

Возвращаемые значения

Название кодировки или FALSE, если для заданной строки определить кодировку не удалось.

Примеры

Пример #1 Пример использования mb_detect_encoding()

<?php
/* Определение кодировки с текущим detect_order */
echo mb_detect_encoding($str);

/* "auto" раскрывается в соответствии с mbstring.language */
echo mb_detect_encoding($str, "auto");

/* Зададим список кодировок encoding_list в виде строки */
echo mb_detect_encoding($str, "JIS, eucjp-win, sjis-win");

/* Использование массива для задания возможных кодировок encoding_list  */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
echo mb_detect_encoding($str, $ary);
?>

Смотрите также

  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки


Установка/получение списка кодировок для механизмов определения кодировки

  • « mb_detect_encoding
  • mb_encode_mimeheader »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Установка/получение списка кодировок для механизмов определения кодировки

mb_detect_order

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_detect_order — Установка/получение списка кодировок для механизмов определения кодировки

Описание

mixed mb_detect_order ([ mixed $encoding_list = mb_detect_order() ] )

В encoding_list задается порядок, в котором механизмы автоматического определения кодировок будут их проверять.

Список параметров

encoding_list

encoding_list - массив array или строка, в которой перечислены кодировки через запятую. См. Поддерживаемые кодировки.

Если encoding_list опущен, функция вернет текущий список кодировок в виде массива.

Эта настройка влияет на работу функций mb_detect_encoding() и mb_send_mail().

В mbstring на данный момент реализованы следующие фильтры для определения кодировок. Если последовательность байт в исходной строке не будет соответствовать ни одной из перечисленных кодировок, определение кодировки завершится неудачей.

UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP

Кодировку ISO-8859-*, mbstring всегда определяет как ISO-8859-*.

Для кодировок UTF-16, UTF-32, UCS2 и UCS4, автоматическое определение всегда будет завершаться неудачей.

Возвращаемые значения

При установке порядка определения кодировки, в зависимости от успешности, возвращает TRUE или FALSE.

При получении порядка определения кодировки, возвращается отсортированный массив кодировок.

Примеры

Пример #1 Пример использования mb_detect_order()

<?php
/* Задание списка кодировок в виде упорядоченного списка*/
mb_detect_order("eucjp-win,sjis-win,UTF-8");

/* Задание списка кодировок в виде массива */
$ary[] = "ASCII";
$ary[] = "JIS";
$ary[] = "EUC-JP";
mb_detect_order($ary);

/* Вывод текущего списка кодировок */
echo implode(", ", mb_detect_order());
?>

Пример #2 Пример бесполезного порядка определения

; Всегда определяет как ISO-8859-1
detect_order = ISO-8859-1, UTF-8

; Всегда определяет как UTF-8, так как ASCII/UTF-7
; являются подмножеством UTF-8
detect_order = UTF-8, ASCII, UTF-7

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • mb_http_input() - Определение кодировки символов входных данных HTTP-запроса
  • mb_http_output() - Установка/получение кодировки символов HTTP вывода
  • mb_send_mail() - Отправка закодированного сообщения


Кодирование строки для MIME-заголовка

  • « mb_detect_order
  • mb_encode_numericentity »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Кодирование строки для MIME-заголовка

mb_encode_mimeheader

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_encode_mimeheader — Кодирование строки для MIME-заголовка

Описание

string mb_encode_mimeheader ( string $str [, string $charset = determined by mb_language() [, string $transfer_encoding = "B" [, string $linefeed = "\r\n" [, int $indent = 0 ]]]] )

Кодирует строку str (string) по схеме кодирования MIME-заголовка.

Список параметров

str

Кодируемая строка типа string. Ее кодировка должна соответствовать mb_internal_encoding().

charset

charset задает имя кодировки, в котором представлена строка str. По умолчанию значение определяется настройкой NLS (mbstring.language).

transfer_encoding

transfer_encoding задает схему MIME кодирования. Это может быть либо "B" (Base64), либо "Q" (Quoted-Printable). По умолчанию "B".

linefeed

linefeed задает метку EOL (конец строки, end-of-line), с помощью которой mb_encode_mimeheader() осуществляет завершение строк ("line-folding" - термин » RFC, означающий разделение строк, длина которых превышает заданное значение. Значение длины на данный момент жестко задано как 74 символа). По умолчанию "\r\n" (CRLF).

indent

Отступ первой строки (число символов в заголовке перед str).

Возвращаемые значения

исходная строка (string) преобразованная в ASCII.

Примеры

Пример #1 Пример использования mb_encode_mimeheader()

<?php
$name = ""; // kanji
$mbox = "kru";
$doma = "gtinn.mon";
$addr = mb_encode_mimeheader($name, "UTF-7", "Q") . " <" . $mbox . "@" . $doma . ">";
echo $addr;
?>

Примечания

Замечание:

Эта функция не рассчитана на выполнение высокоуровневых разрывов строк (перенос слов целиком и т.п.). Такое поведение может привести к появлению неожидаемых пробелов в исходной строке.

Смотрите также

  • mb_decode_mimeheader() - Декодирует строку в MIME-заголовке


Кодирование символа в числовую HTML-ссылку

  • « mb_encode_mimeheader
  • mb_encoding_aliases »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Кодирование символа в числовую HTML-ссылку

mb_encode_numericentity

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_encode_numericentity — Кодирование символа в числовую HTML-ссылку

Описание

string mb_encode_numericentity ( string $str , array $convmap [, string $encoding = mb_internal_encoding() [, bool $is_hex = FALSE ]] )

Преобразует заданные коды символов в строке string str из кодов в числовые HTML-ссылки.

Список параметров

str

Кодируемая строка string.

convmap

convmap - массив, задающий диапазон кодов.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

is_hex

Возвращаемые значения

Сконвертированная строка string.

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр is_hex.

Примеры

Пример #1 Пример convmap

<?php
$convmap = array (
 int start_code1, int end_code1, int offset1, int mask1,
 int start_code2, int end_code2, int offset2, int mask2,
 ........
 int start_codeN, int end_codeN, int offsetN, int maskN );
// Задайте значения Юникода для start_codeN и end_codeN
// Добавьте к значению offsetN и сложите побитово с maskN,
// затем преобразуйте результат в число.
?>

Примеры

Пример #2 Пример использования mb_encode_numericentity()

<?php
/* Преобразование левой части ISO-8859-1 в числовую HTML-ссылку */
$convmap = array(0x80, 0xff, 0, 0xff);
$str = mb_encode_numericentity($str, $convmap, "ISO-8859-1");

/* Преобразование заданного пользователем SJIS-win кода в блоке в числовую ссыку*/
$convmap = array(
       0xe000, 0xe03e, 0x1040, 0xffff,
       0xe03f, 0xe0bb, 0x1041, 0xffff,
       0xe0bc, 0xe0fa, 0x1084, 0xffff,
       0xe0fb, 0xe177, 0x1085, 0xffff,
       0xe178, 0xe1b6, 0x10c8, 0xffff,
       0xe1b7, 0xe233, 0x10c9, 0xffff,
       0xe234, 0xe272, 0x110c, 0xffff,
       0xe273, 0xe2ef, 0x110d, 0xffff,
       0xe2f0, 0xe32e, 0x1150, 0xffff,
       0xe32f, 0xe3ab, 0x1151, 0xffff );
$str = mb_encode_numericentity($str, $convmap, "sjis-win");
?>

Смотрите также

  • mb_decode_numericentity() - Декодирует числовую HTML-ссылку в символ


Получает псевдонимы известного типа кодировки

  • « mb_encode_numericentity
  • mb_ereg_match »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Получает псевдонимы известного типа кодировки

mb_encoding_aliases

(PHP 5 >= 5.3.0, PHP 7)

mb_encoding_aliases — Получает псевдонимы известного типа кодировки

Описание

array mb_encoding_aliases ( string $encoding )

Возвращает массив псевдонимов для известного типа кодировки encoding.

Список параметров

encoding

Кодировка, для которой ищутся псевдонимы.

Возвращаемые значения

В случае успеха возвращает индексный массив с псевдонимами кодировки, или FALSE в случае возникновения ошибки

Ошибки

Вызывает ошибку уровня E_WARNING, если кодировка encoding не известна.

Примеры

Пример #1 Пример использования mb_encoding_aliases()

<?php
$encoding        = 'ASCII';
$known_encodings = mb_list_encodings();

if (in_array($encoding, $known_encodings)) {

    $aliases = mb_encoding_aliases($encoding);
    print_r($aliases);

} else {

    echo "Неизвестная кодировка ($encoding).\n";

}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => ANSI_X3.4-1968
    [1] => iso-ir-6
    [2] => ANSI_X3.4-1986
    [3] => ISO_646.irv:1991
    [4] => US-ASCII
    [5] => ISO646-US
    [6] => us
    [7] => IBM367
    [8] => cp367
    [9] => csASCII
)

Смотрите также

  • mb_list_encodings() - Возвращает массив всех поддерживаемых кодировок


Совпадение с регулярным выражением для многобайтовой строки

  • « mb_encoding_aliases
  • mb_ereg_replace_callback »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Совпадение с регулярным выражением для многобайтовой строки

mb_ereg_match

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_match — Совпадение с регулярным выражением для многобайтовой строки

Описание

bool mb_ereg_match ( string $pattern , string $string [, string $option = "msr" ] )

Совпадение с регулярным выражением для многобайтовой строки

Список параметров

pattern

Шаблон регулярного выражения.

string

Оцениваемая строка string.

option

Возвращаемые значения

Возвращает TRUE, если string совпадает с регулярным выражением pattern, FALSE - в противном случае.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок


Выполняет поиск и замену по регулярному вражению с поддержкой многобайтовых кодировок используя callback-функцию

  • « mb_ereg_match
  • mb_ereg_replace »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Выполняет поиск и замену по регулярному вражению с поддержкой многобайтовых кодировок используя callback-функцию

mb_ereg_replace_callback

(PHP 5 >= 5.4.1, PHP 7)

mb_ereg_replace_callback — Выполняет поиск и замену по регулярному вражению с поддержкой многобайтовых кодировок используя callback-функцию

Описание

string mb_ereg_replace_callback ( string $pattern , callable $callback , string $string [, string $option = "msr" ] )

Проверяет строку string на совпадение с шаблоном pattern, затем заменяет найденный текст результатом callback функции.

Поведение этой функции почти идентично с функцией mb_ereg_replace(), за исключением того, что вместо строки замены replacement необходимо определять callback функцию.

Список параметров

pattern

Шаблон регулярного выражения.

мультибайтовые символы могут использоваться в шаблоне.

callback

Функция, которая будет вызвана для получения и передачи массива совпадени в строку subject. Сallback-функция должна возвращать строку для замены.

Часто может потребоваться объявлять callback функцию для mb_ereg_replace_callback() только в одном месте. В таком случае используйте анонимные функции для определения callback функции внутри вызова mb_ereg_replace_callback(). При таком подходе у вас будет вся информация про вызов в одном месте и вы не загрязните пространство имен функции именем своей callback-функции не используемой больше нигде.

string

Строка для проверки.

option

Можно произвести настройку совпадений используя параметр option. Если указан параметр i, будет проигнорирован регистр символов. Если указан параметр x, будут проигнорированы пробельные символы. Если указан параметр m, совпадения будут найдены в мультистроковом режиме и разрыв строки будет включен с помощью '.'. Если определен параметр p, совпадения будут искаться в режиме POSIX, разрыв линии будет считаться за обычный символ. Заметьте, что параметр e не может быть использован для функции mb_ereg_replace_callback().

Возвращаемые значения

Результирующая строка в случае успеха, или FALSE в случае ошибки.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Примеры

Пример #1 Пример функции mb_ereg_replace_callback()

<?php
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// the callback function
function next_year($matches)
{
  // as usual: $matches[0] is the complete match
  // $matches[1] the match for the first subpattern
  // enclosed in '(...)' and so on
  return $matches[1].($matches[2]+1);
}
echo mb_ereg_replace_callback(
            "(\d{2}/\d{2}/)(\d{4})",
            "next_year",
            $text);

?>

Результат выполнения данного примера:

April fools day is 04/01/2003
Last christmas was 12/24/2002

Пример #2 mb_ereg_replace_callback() использует анонимную функцию, поддерживаемую в PHP 5.3.0 или более поздней версии

<?php
// this text was used in 2002
// we want to get this up to date for 2003
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 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() - Set/Get character encoding for multibyte regex
  • mb_ereg_replace() - Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок
  • Анонимные функции
  • информация о типе callback


Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок

  • « mb_ereg_replace_callback
  • mb_ereg_search_getpos »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок

mb_ereg_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_replace — Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок

Описание

string mb_ereg_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] )

Сканирует строку string для поиска совпадений с pattern, затем заменяет совпавший текст на replacement

Список параметров

pattern

Шаблон регулярного выражения.

В pattern могут использоваться многобайтовые символы.

replacement

Текст замены.

string

Проверяемая строка string.

option
Условие совпадения может быть установлено параметром option. Если в этом параметре указан модификатор i, будет игнорироваться регистр. Если указан модификатор x, будут игнорироваться пробелы. Если указан модификатор m, поиск совпадений будет выполняться в многострочном режиме, а '.' будет совпадать с символом конца строки. Если указан модификатор p, поиск совпадений будет выполняться в режиме POSIX; символ конца строки будет рассматриваться как обычный символ. Если указан модификатор e, строка replacement будет вычисляться как выражение PHP.

Возвращаемые значения

Результирующая строка (string) в случае успеха, или FALSE в случае ошибки.

Список изменений

Версия | Описание
7.1.0 | Модификатор e объявлен устаревшим.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Внимание

Никогда не используйте модификатор e при работе с данными, полученными из недостоверных источников. Не выполняется никакого автоматического экранирования этих данных (в отличие от preg_replace()). Неучитывание данных требований, скорее всего, создаст уязвимость выполнения удаленного кода в вашем приложении.

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_eregi_replace() - Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра


Возвращает начальную позицию следующего совпадения с регулярным выражением

  • « mb_ereg_replace
  • mb_ereg_search_getregs »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Возвращает начальную позицию следующего совпадения с регулярным выражением

mb_ereg_search_getpos

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_getpos — Возвращает начальную позицию следующего совпадения с регулярным выражением

Описание

int mb_ereg_search_getpos ( void )

Возвращает начальную позицию следующего совпадения с регулярным выражением.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

mb_ereg_search_getpos() возвращает начальную позицию следующего совпадения с регулярным выражением для функций mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). Позиция представляется в виде числа байт с начала строки.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_setpos() - Задает начальную позицию в строке, с которой начнется поиск соответствий регулярному выражению


Выводит результат последнего сравнения с регулярным выражением

  • « mb_ereg_search_getpos
  • mb_ereg_search_init »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Выводит результат последнего сравнения с регулярным выражением

mb_ereg_search_getregs

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_getregs — Выводит результат последнего сравнения с регулярным выражением

Описание

array mb_ereg_search_getregs ( void )

Получение результата выполнения функций сравнения многобайтных строк с регулярным выражением

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив array содержащий совпавшие с регулярным выражением подстроки в результате выполнения функций mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). Если совпадений несколько, то первый элемент будет содержать совпавшую подстроку, второй будет содержать первую часть в квадратных скобках, третий элемент будет содержать вторую часть в квадратных скобках и так далее. Функция вернет FALSE в случае ошибки.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_init() - Инициализация поиска соответствий регулярному выражению многобайтной строкой и текстом регулярного выражения


Инициализация поиска соответствий регулярному выражению многобайтной строкой и текстом регулярного выражения

  • « mb_ereg_search_getregs
  • mb_ereg_search_pos »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Инициализация поиска соответствий регулярному выражению многобайтной строкой и текстом регулярного выражения

mb_ereg_search_init

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_init — Инициализация поиска соответствий регулярному выражению многобайтной строкой и текстом регулярного выражения

Описание

bool mb_ereg_search_init ( string $string [, string $pattern [, string $option = "msr" ]] )

mb_ereg_search_init() задает значения параметров
string и pattern
для функций регулярных выражений. Эти значения будут использоваться
в функциях mb_ereg_search(),
mb_ereg_search_pos() и
mb_ereg_search_regs().

Список параметров

string

Строка, в которой будет осуществляться поиск соответствий.

pattern

Шаблон, регулярное выражение.

option

Настройка поиска.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_regs() - Возвращает совпавшую с регулярным выражением часть строки


Возвращает позицию и длину совпавшего с регулярным выражением участка многобайтной строки

  • « mb_ereg_search_init
  • mb_ereg_search_regs »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Возвращает позицию и длину совпавшего с регулярным выражением участка многобайтной строки

mb_ereg_search_pos

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_pos — Возвращает позицию и длину совпавшего с регулярным выражением участка многобайтной строки

Описание

array mb_ereg_search_pos ([ string $pattern [, string $option = "ms" ]] )

Возвращает позицию и длину совпавшего с регулярным выражением участка заранее определенной многобайтной строки.

Строка для поиска задается функцией mb_ereg_search_init(). Если она не задавалась, будет использована строка, заданная ранее.

Список параметров

pattern

Шаблон, текст регулярного выражения.

option

Настройка поиска.

Возвращаемые значения

Массив array содержащий два элемента. Первый элемент - смещение в байтах, с которого начинается совпадение относительно начала искомой строки, и второй элемент - длина совпадения в байтах.

В случае ошибки возвращается FALSE.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_init() - Инициализация поиска соответствий регулярному выражению многобайтной строкой и текстом регулярного выражения


Возвращает совпавшую с регулярным выражением часть строки

  • « mb_ereg_search_pos
  • mb_ereg_search_setpos »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Возвращает совпавшую с регулярным выражением часть строки

mb_ereg_search_regs

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_regs — Возвращает совпавшую с регулярным выражением часть строки

Описание

array mb_ereg_search_regs ([ string $pattern [, string $option = "ms" ]] )

Возвращает совпавшую с регулярным выражением часть строки.

Список параметров

pattern

Шаблон, текст регулярного выражения.

option

Настройка поиска.

Возвращаемые значения

mb_ereg_search_regs() запускает поиск в многобайтной строке соответствий регулярному выражению, и если такие соответствия обнаружены, возвращает массив array. В первый элемент массива помещается совпавшая подстрока, во второй помещается первый значение первого элемента заключенное в квадратные скобки, в третий элемент помещается второй также в скобках и так далее. Функция возвращает FALSE в случае ошибки.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_init() - Инициализация поиска соответствий регулярному выражению многобайтной строкой и текстом регулярного выражения


Задает начальную позицию в строке, с которой начнется поиск соответствий регулярному выражению

  • « mb_ereg_search_regs
  • mb_ereg_search »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Задает начальную позицию в строке, с которой начнется поиск соответствий регулярному выражению

mb_ereg_search_setpos

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search_setpos — Задает начальную позицию в строке, с которой начнется поиск соответствий регулярному выражению

Описание

bool mb_ereg_search_setpos ( int $position )

mb_ereg_search_setpos() задает начальную позицию, с которой начнется поиск соответствий регулярному выражению функцией mb_ereg_search().

Список параметров

position

Устанавливаемая позиция. Если значение отрицательно, отсчет идет с конца строки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений position.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_init() - Инициализация поиска соответствий регулярному выражению многобайтной строкой и текстом регулярного выражения


Поиск соответствий регулярному выражению для строк в многобайтных кодировках

  • « mb_ereg_search_setpos
  • mb_ereg »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Поиск соответствий регулярному выражению для строк в многобайтных кодировках

mb_ereg_search

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg_search — Поиск соответствий регулярному выражению для строк в многобайтных кодировках

Описание

bool mb_ereg_search ([ string $pattern [, string $option = "ms" ]] )

Выполняет поиск соответствий регулярному выражению в многобайтной строке.

Список параметров

pattern

Шаблон для поиска, текст регулярного выражения.

option

Настройка поиска.

Возвращаемые значения

mb_ereg_search() возвращает TRUE, если многобайтная строка соответствует регулярному выражению, либо FALSE в противном случае. Строка string для поиска соответствий задается функцией mb_ereg_search_init(). Если аргумент pattern не задан, будет использовано предыдущее выражение.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_search_init() - Инициализация поиска соответствий регулярному выражению многобайтной строкой и текстом регулярного выражения


Совпадение с регулярным выражением с поддержкой многобайтовых кодировок

  • « mb_ereg_search
  • mb_eregi_replace »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Совпадение с регулярным выражением с поддержкой многобайтовых кодировок

mb_ereg

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_ereg — Совпадение с регулярным выражением с поддержкой многобайтовых кодировок

Описание

int mb_ereg ( string $pattern , string $string [, array &$regs ] )

Выполняет поиск совпадения с регулярным выражением с поддержкой многобайтовых кодировок.

Список параметров

pattern

Шаблон поиска.

string

Строка string, в которой производится поиск.

regs

Если найдены совпадения для подстроки в скобках шаблона pattern и функция вызвана с третьим аргументом regs, совпадения будут сохранены в массиве regs. Если подобных совпадений найдено не будет, то regs установится как пустой массив.

$regs[1] будет содержать первую слева подстроку в скобках; $regs[2] - вторую, и так далее. $regs[0] будет содержать копию всей строки.

Возвращаемые значения

Возвращает длину найденой строки в байтах, либо FALSE, если совпадений в string для pattern не найдено, либо если возникла ошибка.

Если опциональный параметр regs не задан, либо длина совпавшей строки равна 0, эта функция вернет 1.

Список изменений

Версия | Описание
7.1.0 | Теперь mb_ereg() устанавливает regs равным пустому массиву(array), если ничего не найдено. В более ранних версиях, в этом случае, regs оставался неизменным.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_eregi() - Поиск соответствий регулярному выражению поддерживающий многобайтные символы и нечувствительный к регистру


Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра

  • « mb_ereg
  • mb_eregi »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра

mb_eregi_replace

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_eregi_replace — Осуществляет замену по регулярному выражению с поддержкой многобайтовых символов без учета регистра

Описание

string mb_eregi_replace ( string $pattern , string $replace , string $string [, string $option = "msri" ] )

Сканирует строку string для поиска совпадений с pattern, затем заменяет совпавший текст на replacement.

Список параметров

pattern

Шаблон регулярного выражения. Могут использоваться многобайтовые символы. Регистр будет игнорироваться.

replace

Текст замены.

string

Строка string для поиска.

option
option имеет то же значение, что и в mb_ereg_replace().

Возвращаемые значения

Результирующая строка string в случае успеха, или FALSE в случае ошибки.

Список изменений

Версия | Описание
7.1.0 | Модификатор e объявлен устаревшим.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Внимание

Никогда не используйте модификатор e при работе с данными, полученными из недостоверных источников. Не выполняется никакого автоматического экранирования этих данных (в отличие от preg_replace()). Неучитывание данных требований, скорее всего, создаст уязвимость выполнения удаленного кода в вашем приложении.

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg_replace() - Осуществляет замену по регулярному выражению с поддержкой многобайтовых кодировок


Поиск соответствий регулярному выражению поддерживающий многобайтные символы и нечувствительный к регистру

  • « mb_eregi_replace
  • mb_get_info »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Поиск соответствий регулярному выражению поддерживающий многобайтные символы и нечувствительный к регистру

mb_eregi

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_eregi — Поиск соответствий регулярному выражению поддерживающий многобайтные символы и нечувствительный к регистру

Описание

int mb_eregi ( string $pattern , string $string [, array &$regs ] )

Выполняет поиск соответствий регулярному выражению с поддержкой многобайтных символы, нечувствительный к регистру.

Список параметров

pattern

Шаблон, текст регулярного выражения.

string

Строка string, в которой производится поиск.

regs

Если найдены совпадения для подстроки pattern, заключенной в скобки, и функция вызвана с заданным третьим аргументом regs, эти совпадения будут сохранены в массиве regs. Если подобных совпадений не найдено, regs установится как пустой массив.

$regs[1] будет содержать первую (слева) подстроку заключенную в скобки; $regs[2] - вторую, и так далее. $regs[0] будет содержать копию всей найденной строки.

Возвращаемые значения

Возвращает длину найденной строки в байтах если совпадение шаблона pattern найдено в string, или FALSE, если совпадения не найдены.

Если необязательный аргумент regs не задан, или длина найденой строки равна 0, эта функция вернет 1.

Список изменений

Версия | Описание
7.1.0 | Функцию mb_eregi() устанавливает значение regs равным пустому массиву, если ничего не найдено. Ранее, в подобном случае, regs оставался неизменным.

Примечания

Замечание:

Для этой функции будет использована внутренняя кодировка или кодировка, установленная функцией mb_regex_encoding().

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок


Получает внутренние настройки mbstring

  • « mb_eregi
  • mb_http_input »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Получает внутренние настройки mbstring

mb_get_info

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_get_info — Получает внутренние настройки mbstring

Описание

mixed mb_get_info ([ string $type = "all" ] )

mb_get_info() возвращает параметры внутренней настройки mbstring.

Список параметров

type

Если type не указан, или указан как "all", будет возвращен массив array, содержащий элементы internal_encoding", "http_output", "http_input", "func_overload", "mail_charset", "mail_header_encoding", "mail_body_encoding".

Если type указан как "http_output", "http_input", "internal_encoding", "func_overload", будет возвращена настройка указанного параметра.

Возвращаемые значения

Массив array информации о параметрах, если type не указан, в противном случае значение заданного параметра type.

Список изменений

Версия | Описание
5.1.3 | Стали доступны элементы "mail_charset", "mail_header_encoding", и "mail_body_encoding".
5.3.0 | Стал доступен элемент "http_output_conv_mimetypes".

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_http_output() - Установка/получение кодировки символов HTTP вывода


Определение кодировки символов входных данных HTTP-запроса

  • « mb_get_info
  • mb_http_output »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Определение кодировки символов входных данных HTTP-запроса

mb_http_input

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_http_input — Определение кодировки символов входных данных HTTP-запроса

Описание

mixed mb_http_input ([ string $type = "" ] )

Определяет кодировку входных данных HTTP-запроса.

Список параметров

type

Строка запроса задает тип входных данных. "G" для GET запроса, "P" для POST запроса, "C" для COOKIE, "S" для строк, "L" для списка и "I" для всего вместе (будет возвращен массив array). Если аргумент опущен, функция вернет последний использовавшийся тип.

Возвращаемые значения

Наименование кодировки символов для заданного типа type. Если mb_http_input() не может обработать HTTP-запрос, она вернет FALSE.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • mb_http_output() - Установка/получение кодировки символов HTTP вывода
  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки


Установка/получение кодировки символов HTTP вывода

  • « mb_http_input
  • mb_internal_encoding »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Установка/получение кодировки символов HTTP вывода

mb_http_output

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_http_output — Установка/получение кодировки символов HTTP вывода

Описание

mixed mb_http_output ([ string $encoding = mb_http_output() ] )

Установка/получение кодировки символов HTTP вывода. Выходные данные после работы этой функции будут преобразованы из внутренней кодировки к encoding.

Список параметров

encoding

Если задан аргумент encoding, mb_http_output() устанавливает кодировку выходных символов HTTP в encoding.

Если аргумент encoding опущен, mb_http_output() возвращает текущую кодировку символов HTTP вывода.

Возвращаемые значения

Если аргумент encoding опущен, mb_http_output() возвращает текущую кодировку символов HTTP вывода. В противном случае, Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • mb_http_input() - Определение кодировки символов входных данных HTTP-запроса
  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки


Установка/получение внутренней кодировки скрипта

  • « mb_http_output
  • mb_language »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Установка/получение внутренней кодировки скрипта

mb_internal_encoding

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_internal_encoding — Установка/получение внутренней кодировки скрипта

Описание

mixed mb_internal_encoding ([ string $encoding = mb_internal_encoding() ] )

Установка/получение внутренней кодировки скрипта.

Список параметров

encoding

encoding - это имя кодировки, в которую будут преобразовываться входные данные HTTP запроса, из которой будет конвертироваться HTTP вывод, а также это кодировка по умолчанию для всех функций работающих со строками, определенными в модуле mbstring. Обратите внимание, что внутренняя кодировка полностью отличается от кодировки для многобайтных регулярных выражений. You should notice that the internal encoding is totally different from the one for multibyte regex.

Возвращаемые значения

Если аргумент encoding задан, то Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В этом случае не меняется кодировка символов для многобайтных регулярных выражений. Если аргумент encoding опущен, будет возвращено имя текущей внутренней кодировки.

Примеры

Пример #1 Пример использования mb_internal_encoding()

<?php
/* Установка внутренней кодировки в UTF-8 */
mb_internal_encoding("UTF-8");

/* Вывод на экран текущей внутренней кодировки */
echo mb_internal_encoding();
?>

Смотрите также

  • mb_http_input() - Определение кодировки символов входных данных HTTP-запроса
  • mb_http_output() - Установка/получение кодировки символов HTTP вывода
  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки
  • mb_regex_encoding() - Set/Get character encoding for multibyte regex


Установка/получение текущего языка

  • « mb_internal_encoding
  • mb_list_encodings »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Установка/получение текущего языка

mb_language

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_language — Установка/получение текущего языка

Описание

mixed mb_language ([ string $language = mb_language() ] )

Установка/получение текущего языка.

Список параметров

language

Используется для кодирования символов в сообщениях электронной почты. Допустимые значения "Japanese", "ja", "English", "en" и "uni" (UTF-8). Функция mb_send_mail() использует эту установку для кодирования сообщений.

Для соответствующих языков задаются следующие кодировки: ISO-2022-JP/Base64 для Японского, UTF-8/Base64 для Юникода, ISO-8859-1/quoted printable для Английского.

Возвращаемые значения

Если аргумент language задан, а language имеет допустимое значение, функция возвращает TRUE. В противном случае она вернет FALSE. Если language опущен, функция вернет текущее значение языка в виде строки string. Если язык не был ранее установлен, функция вернет FALSE.

Смотрите также

  • mb_send_mail() - Отправка закодированного сообщения


Возвращает массив всех поддерживаемых кодировок

  • « mb_language
  • mb_output_handler »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Возвращает массив всех поддерживаемых кодировок

mb_list_encodings

(PHP 5, PHP 7)

mb_list_encodings — Возвращает массив всех поддерживаемых кодировок

Описание

array mb_list_encodings ( void )

Возвращает массив, содержащий все поддерживаемые кодировки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает индексный массив.

Ошибки

Эта функция не порождает каких-либо ошибок.

Примеры

Пример #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
)


Callback-функция, преобразующая кодировку символов в выходном буфере

  • « mb_list_encodings
  • mb_parse_str »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Callback-функция, преобразующая кодировку символов в выходном буфере

mb_output_handler

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_output_handler — Callback-функция, преобразующая кодировку символов в выходном буфере

Описание

string mb_output_handler ( string $contents , int $status )

mb_output_handler() является
callback-функцией функции ob_start().
mb_output_handler() преобразует символы в выходном буфере
из внутренней кодировки в кодировку HTTP вывода.

Список параметров

contents

Содержимое выходного буфера.

status

Состояние выходного буфера.

Возвращаемые значения

Преобразованная строка string.

Список изменений

Версия Описание
4.1.0

Этот обработчик добавляет заголовок набора символов HTTP, если выполняются следующие условия:

  • Тэг Content-Type не задан функцией header().
  • MIME-тип по умолчанию начинается с text/.
  • Настройка mbstring.http_input отличается от pass.

Примеры

Пример #1 Пример использования mb_output_handler()

<?php
mb_http_output("UTF-8");
ob_start("mb_output_handler");
?>

Примечания

Замечание:

Если вы хотите вывести двоичные данные, изображение например, необходимо передать заголовок Content-Type с помощью функции header() до того, как какие-либо двоичные данные будут переданы клиенту. (например header("Content-Type: image/png")). Если заголовок Content-Type передан, преобразование кодировок выходных символов производиться не будет.

Следует заметить, что если передан заголовок 'Content-Type: text/*', пересылаемые данные принимаются как текст, к которому будет применена конвертация символов в соответствии с настройками кодировок.

Смотрите также

  • ob_start() - Включение буферизации вывода


Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных

  • « mb_output_handler
  • mb_preferred_mime_name »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных

mb_parse_str

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_parse_str — Разбор данных запросов GET/POST/COOKIE и установка значений глобальных переменных

Описание

bool mb_parse_str ( string $encoded_string [, array &$result ] )

Разбирает запросы GET/POST/COOKIE и устанавливает значения глобальных переменных. Так как PHP не работает с исходными данными POST/COOKIE, на данный момент его можно использовать только для работы с данными запроса GET. Функция разбирает строку URL, определяет кодировку, преобразует символы во внутреннюю кодировку скрипта и заносит значения переменных в массив result типа array или в глобальные переменные.

Список параметров

encoded_string

Кодированные данные в URL.

result

Массив array, содержащий декодированные данные и символы во внутренней кодировке скрипта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mb_detect_order() - Установка/получение списка кодировок для механизмов определения кодировки
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Получение набора символов MIME

  • « mb_parse_str
  • mb_regex_encoding »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Получение набора символов MIME

mb_preferred_mime_name

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_preferred_mime_name — Получение набора символов MIME

Описание

string mb_preferred_mime_name ( string $encoding )

Получает строку string MIME набора символов для заданной кодировки.

Список параметров

encoding

Кодировка, для которой выбирается набор символов.

Возвращаемые значения

MIME набор символов charset в виде строки string для кодировки encoding.

Примеры

Пример #1 Пример использования mb_preferred_mime_name()

<?php
$outputenc = "sjis-win";
mb_http_output($outputenc);
ob_start("mb_output_handler");
header("Content-Type: text/html; charset=" . mb_preferred_mime_name($outputenc));
?>


Set/Get character encoding for multibyte regex

  • « mb_preferred_mime_name
  • mb_regex_set_options »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Set/Get character encoding for multibyte regex

mb_regex_encoding

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_regex_encoding — Set/Get character encoding for multibyte regex

Описание

mixed mb_regex_encoding ([ string $encoding = mb_regex_encoding() ] )

Задает/возвращает текущую кодировку для многобайтового регулярного выраженияstring.

Список параметров

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Если задан параметр encoding, то Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В этом случае не меняется внутренняя многобайтная кодировка. Если параметр encoding не указан, то возвращается текущее имя кодировки символов для многобайтных регулярных выражений.

Список изменений

Версия | Описание
5.6.0 | Кодировка по умолчанию изменена на UTF-8. Ранее по умолчанию была EUC-JP.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок


Установка/получение значений по умолчанию для настроек функций mbregex

  • « mb_regex_encoding
  • mb_send_mail »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Установка/получение значений по умолчанию для настроек функций mbregex

mb_regex_set_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_regex_set_options — Установка/получение значений по умолчанию для настроек функций mbregex

Описание

string mb_regex_set_options ([ string $options = mb_regex_set_options() ] )

Задает умолчания, описанные в options, для функций регулярных выражений, работающих со строками в многобайтных кодировках.

Список параметров

options

Настройки, которые требуется задать. Это строка, в которой каждый символ отвечает за какую-то настройку. Для установки режима, его символ должен идти последним. Таким образом, можно задать только один режим, но несколько опций.

Regex настройки
Настройка | Описание
i | Включение неоднозначных совпадений
x | Включает форму расширенного шаблона
m | '.' совпадения с переводами строк
s | '^' -> '\A', '$' -> '\Z'
p | То же, что и объединение m и s
l | Поиск совпадений, имеющих наибольшую длину
n | Игнорировать пустые совпадения
e | Вычисление кода результата функцией eval()
Синтаксические режимы Regex
Режим | Описание
j | Java (Sun java.util.regex)
u | GNU regex
g | grep
c | Emacs
r | Ruby
z | Perl
b | POSIX Basic regex
d | POSIX Extended regex

Возвращаемые значения

Предыдущие настройки. Если аргумент options опущен, функция вернет строку string с текущими настройками.

Смотрите также

  • mb_split() - Разделение строк в многобайтных кодировках, используя регулярное выражение
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок
  • mb_eregi() - Поиск соответствий регулярному выражению поддерживающий многобайтные символы и нечувствительный к регистру


Отправка закодированного сообщения

  • « mb_regex_set_options
  • mb_split »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Отправка закодированного сообщения

mb_send_mail

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_send_mail — Отправка закодированного сообщения

Описание

bool mb_send_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $additional_parameter = NULL ]] )

Посылает сообщение электронной почты. Заголовки и сообщения преобразуются и кодируются в соответствии с настройкой mb_language(). Это обертка для функции mail(), так что стоит ознакомиться и с описанием функции mail().

Список параметров

to

Электронные адреса получателей. Несколько адресов в аргументе to перечисляются через запятую. Значение этого аргумента не кодируется автоматически.

subject

Тема письма.

message

Текст письма.

additional_headers (необязательный)

Строка, вставляемая в конец заголовка письма.

Обычно используется для добавления дополнительных заголовков (From, Cc, и Bcc). Несколько дополнительных заголовков должны разделяться с помощью CRLF (\r\n). Проверяйте этот параметр, чтобы не допустить инъекции нежелательных заголовков.

Замечание:

При отправке письма, письмо обязано содержать заголовок From. Его можно задать с помощью параметра additional_headers или же через опцию в php.ini.

Если этого не сделать, то это приведет к сообщение об ошибке, примерно такого содержания: Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. Заголовок From также устанавливает и заголовок Return-Path в Windows.

Замечание:

Если письмо не доставилось, попробуйте использовать только LF (\n). Некоторые Unix почтовые агенты (в первую очередь » qmail) заменяют LF на CRLF автоматически (что приводит к дублированию CR при использовании CRLF). Это единственное решение, так как это поведение не соответствует » RFC 2822.

additional_parameter

Значением additional_parameter является параметр командной строки MTA. Он полезен для задания корректного заголовка Return-Path при использовании функции sendmail.

Этот параметр экранируется функцией escapeshellcmd() автоматически, чтобы предотвратить запуск других команд. escapeshellcmd() предотвращает запуск команд, но допускает добавление дополнительных аргументов, поэтому для обеспечения безопасности нужно проверять эту опцию.

Так как escapeshellcmd() применяется автоматически, то нельзя использовать некоторые символы, допустимые в email адресах. Нельзя использовать функцию mail() для программ, которые требуют использование таких символов.

Пользователь, под которым запущен web-сервер, должен быть добавленным в доверенные пользователи в конфигурации sendmail, чтобы предотвратить добавление заголовка X-Warning в сообщение, если отправитель письма задан с помощью этого параметра (-f). Для пользователей sendmail, это файл /etc/mail/trusted-users.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mail() - Отправляет электронную почту
  • mb_encode_mimeheader() - Кодирование строки для MIME-заголовка
  • mb_language() - Установка/получение текущего языка


Разделение строк в многобайтных кодировках, используя регулярное выражение

  • « mb_send_mail
  • mb_strcut »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Разделение строк в многобайтных кодировках, используя регулярное выражение

mb_split

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

mb_split — Разделение строк в многобайтных кодировках, используя регулярное выражение

Описание

array mb_split ( string $pattern , string $string [, int $limit = -1 ] )

Разделяет многобайтную строку string, используя регулярное выражение pattern и возвращает массив array.

Список параметров

pattern

Шаблон регулярного выражения.

string

Разбиваемая строка string.

limit
Если необязательный аргумент limit задан, функция разобьет строку не более, чем на limit частей.

Возвращаемые значения

Результат разбиения в виде массива array.

Примечания

Замечание:

Кодировка символов, указанная функцией mb_regex_encoding(), будет по умолчанию использована для данной функции.

Смотрите также

  • mb_regex_encoding() - Set/Get character encoding for multibyte regex
  • mb_ereg() - Совпадение с регулярным выражением с поддержкой многобайтовых кодировок


Получение части строки

  • « mb_split
  • mb_strimwidth »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Получение части строки

mb_strcut

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strcut — Получение части строки

Описание

string mb_strcut ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )

mb_strcut() вырезает подстроку из строки также, как mb_substr(), но оперирует байтами вместо символов. Если начало вырезаемой части попадает между байтами одного символа, функция вырежет подстроку, начиная с первого байта этого символа. Это существенное отличие от substr(), которая просто вырежет подстроку, начиная с середины символа, и нарушит тем самым последовательность байт в строке.

Список параметров

str

Исходная строка.

start

Если start не отрицательное, возвращенная строка начнется с позиции start в байтах от начала str, начальный байт имеет индекс 0. К примеру, в строке 'abcdef', байт в позиции 0 - это 'a', байт в позиции 2 - 'c' и т.д.

Если start отрицательное, возвращаемая строка начнется отсчитывая start байт с конца str.

length

Длина подстроки в байтах bytes. Если не указана, то передается NULL и вырезаются все байты до конца строки.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

mb_strcut() возвращает часть строки str, заданную аргументами start и length.

Список изменений

Версия | Описание
5.4.8 | Передача NULL в ккачестве length вернет все байты до конца строки. В более ранних версиях NULL интерпритировался как 0.

Смотрите также

  • mb_substr() - Возвращает часть строки
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Получение строки, обрезанной до заданной ширины

  • « mb_strcut
  • mb_stripos »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Получение строки, обрезанной до заданной ширины

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strimwidth — Получение строки, обрезанной до заданной ширины

Описание

string mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker = "" [, string $encoding = mb_internal_encoding() ]] )

Обрезает строку string str по ширине width.

Список параметров

str

Исходная строка.

start

Смещение от начала строки. Количество символов от начала строки (первый символ стоит на позиции 0). Если указано отрицательное число, то отчет будет с конца строки.

width

Ожидаемая ширина вырезаемой части. Отрицательные значения отсчитываются с конца.

trimmarker

Строка, добавляемая в конец обрезанной строки.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Обрезанная строка. Если задан аргумент trimmarker, trimmarker замещает последние символы, чтобы уложиться в width.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных start и width.

Примеры

Пример #1 Пример использования mb_strimwidth()

<?php
echo mb_strimwidth("Hello World", 0, 10, "...");
// Выведет "Hello W..."
?>

Смотрите также

  • mb_strwidth() - Возвращает ширину строки
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Регистронезависимый поиск позиции первого вхождения одной строки в другую

  • « mb_strimwidth
  • mb_stristr »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Регистронезависимый поиск позиции первого вхождения одной строки в другую

mb_stripos

(PHP 5 >= 5.2.0, PHP 7)

mb_stripos — Регистронезависимый поиск позиции первого вхождения одной строки в другую

Описание

int mb_stripos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )

mb_stripos() возвращает позицию первого вхождения строки needle в строке haystack. В отличие от mb_strpos(), mb_stripos() не чувствительна к регистру символов. Если строка needle не найдена, функция вернет FALSE.

Список параметров

haystack

Строка, в которой производится поиск вхождений строки needle

needle

Строка, поиск которой осуществляется в строке haystack

offset

Позиция в строке haystack, с которой начинается поиск вхождений. Если значение отрицательно, отсчет идет с конца строки.

encoding

Кодировка символов строк. Если на задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает позицию первого вхождения строки needle в строке haystack либо FALSE, если needle не найдена.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Смотрите также

  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • strpos() - Возвращает позицию первого вхождения подстроки
  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую


Находит первое вхождение подстроки в строке без учета регистра

  • « mb_stripos
  • mb_strlen »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Находит первое вхождение подстроки в строке без учета регистра

mb_stristr

(PHP 5 >= 5.2.0, PHP 7)

mb_stristr — Находит первое вхождение подстроки в строке без учета регистра

Описание

string mb_stristr ( string $haystack , string $needle [, bool $before_needle = false [, string $encoding = mb_internal_encoding() ]] )

mb_stristr() находит первое вхождение подстроки needle в haystack и возвращает часть haystack. В отличие от mb_strstr(), mb_stristr() не учитывает регистр. Если needle не найдена, возвращается FALSE.

Список параметров

haystack

Строка, в которой ищется первое вхождение строки needle

needle

Строка для поиска в haystack

before_needle

Определяет, какую часть строки haystack вернет эта функция. Если установлено TRUE, возвращается часть haystack от начала до первого вхождения needle (исключая needle). Если установлено FALSE, возвращается часть haystack от первого вхождения needle до конца (включая needle).

encoding

Название используемой кодировки символов. Если этот параметр опущен, используется внутренняя кодировка.

Возвращаемые значения

Возвращает часть строки haystack, или FALSE, если needle не найдена.

Смотрите также

  • stristr() - Регистронезависимый вариант функции strstr
  • strstr() - Находит первое вхождение подстроки
  • mb_strstr() - Находит первое вхождение подстроки в строке


Получает длину строки

  • « mb_stristr
  • mb_strpos »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Получает длину строки

mb_strlen

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strlen — Получает длину строки

Описание

mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )

Получает длину строки string.

Список параметров

str

Строка string, для которой измеряется длина.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает количество символов в строке (string) str, имеющих кодировку символов encoding. Многобайтный символ вычисляется как 1.

Возвращает FALSE, если передан недопустимый параметр encoding.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • grapheme_strlen() - Get string length in grapheme units
  • iconv_strlen() - Возвращает количество символов в строке
  • strlen() - Возвращает длину строки


Поиск позиции первого вхождения одной строки в другую

  • « mb_strlen
  • mb_strrchr »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Поиск позиции первого вхождения одной строки в другую

mb_strpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strpos — Поиск позиции первого вхождения одной строки в другую

Описание

int mb_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )

Ищет позицию первого вхождения одной строки string в другую строку string.

Выполняет безопасную с точки зрения многобайтных кодировок операцию strpos(), которая опирается на число символов в стоке. Первый символ стоит на позиции 0, позиция второго 1 и так далее.

Список параметров

haystack

Строка string в которой производится поиск.

needle

Строка, поиск которой производится в строке haystack. В отличие от strpos(), числовые значения не применяются в качестве порядковых номеров символов.

offset

Смещение начала поиска. Если не задан, используется 0. Если значение отрицательно, отсчет идет с конца строки.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает число - позицию первого вхождения строки needle в строку haystack string. Если строка needle не найдена, функция вернет FALSE.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Смотрите также

  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • strpos() - Возвращает позицию первого вхождения подстроки


Поиск последнего вхождения одной строки в другую

  • « mb_strpos
  • mb_strrichr »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Поиск последнего вхождения одной строки в другую

mb_strrchr

(PHP 5 >= 5.2.0, PHP 7)

mb_strrchr — Поиск последнего вхождения одной строки в другую

Описание

string mb_strrchr ( string $haystack , string $needle [, bool $part = false [, string $encoding = mb_internal_encoding() ]] )

mb_strrchr() ищет последнее вхождение строки needle в строке haystack и возвращает часть строки haystack. Если needle не найдена, функция возвращает FALSE.

Список параметров

haystack

Строка, в которой производится поиск вхождения needle

needle

Строка, поиск которой производится в строке haystack

part

Определяет, какую часть строки haystack вернуть в качестве результата. Если передается TRUE, функция вернет часть строки haystack с начала до позиции последнего вхождения needle. Если передается FALSE, будет возвращена часть haystack от позиции последнего вхождения needle до конца строки.

encoding

Кодировка строк. Если не задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает часть строки haystack либо FALSE, если needle не найдена.

Смотрите также

  • strrchr() - Находит последнее вхождение символа в строке
  • mb_strstr() - Находит первое вхождение подстроки в строке
  • mb_strrichr() - Поиск последнего вхождения одной строки в другую, нечувствительный к регистру


Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

  • « mb_strrchr
  • mb_strripos »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

mb_strrichr

(PHP 5 >= 5.2.0, PHP 7)

mb_strrichr — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

Описание

string mb_strrichr ( string $haystack , string $needle [, bool $part = false [, string $encoding = mb_internal_encoding() ]] )

mb_strrichr() ищет последнее вхождение строки needle в строке haystack и возвращает часть строки haystack. В отличие от mb_strrchr(), mb_strrichr() не чувствительна к регистру символов. Если needle не найдена, функция возвращает FALSE.

Список параметров

haystack

Строка, в которой производится поиск вхождения needle

needle

Строка, поиск которой производится в строке haystack

part

Определяет, какую часть строки haystack вернуть в качестве результата. Если передается TRUE, функция вернет часть строки haystack с начала до позиции последнего вхождения needle. Если передается FALSE, будет возвращена часть haystack от позиции последнего вхождения needle до конца строки.

encoding

Кодировка строк. Если не задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает часть строки haystack либо FALSE, если needle не найдена.

Смотрите также

  • mb_stristr() - Находит первое вхождение подстроки в строке без учета регистра
  • mb_strrchr() - Поиск последнего вхождения одной строки в другую


Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

  • « mb_strrichr
  • mb_strrpos »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

mb_strripos

(PHP 5 >= 5.2.0, PHP 7)

mb_strripos — Поиск последнего вхождения одной строки в другую, нечувствительный к регистру

Описание

int mb_strripos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )

mb_strripos() выполняет безопасную с точки зрения многобайтных кодировок операцию strripos(), основываясь на количестве символов. Позиция строки needle расcчитывается с начала строки haystack. Позиция первого символа 0. Второго символа 1. В отличие от mb_strrpos(), mb_strripos() не чувствительна к регистру.

Список параметров

haystack

Строка, в которой производится поиск вхождения needle

needle

Строка, поиск которой производится в строке haystack

offset

Позиция в строке haystack, с которой начинается поиск вхождений

encoding

Кодировка символов строк. Если на задана, будет использована внутренняя кодировка скрипта.

Возвращаемые значения

Возвращает позицию последнего вхождения строки needle в строке haystack либо FALSE, если needle не найдена.

Смотрите также

  • strripos() - Возвращает позицию последнего вхождения подстроки без учета регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • mb_strrpos() - Поиск позиции последнего вхождения одной строки в другую


Поиск позиции последнего вхождения одной строки в другую

  • « mb_strripos
  • mb_strstr »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Поиск позиции последнего вхождения одной строки в другую

mb_strrpos

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strrpos — Поиск позиции последнего вхождения одной строки в другую

Описание

int mb_strrpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )

Выполняет безопасную с точки зрения многобайтных кодировок операцию strrpos() , основываясь на количестве символов. Позиция строки needle расcчитывается с начала строки haystack. Позиция первого символа 0. Второго символа 1.

Список параметров

haystack

Строка string, в которой производится поиск вхождения needle.

needle

Строка string, поиск которой производится в строке haystack.

offset
Если аргумент задан, поиск вхождения будет начинаться с позиции offset в строке string. Если передано отрицательное значение, операция поиска остановится на позиции строки string offset, отсчитываемой с конца строки.
encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Возвращает позицию последнего вхождения строки needle в строке haystack string либо FALSE, если needle не найдена.

Список изменений

Версия | Описание
5.2.0 | Добавлен необязательный аргумент offset.

Примечания

Замечание: Аргумент encoding перемещен с третьего места в списке на четвертое в PHP 5.2.0. Для обратной совместимости аргумент encoding может быть задан как третий аргумент, однако эта возможность считается устаревшей и вскоре будет удалена.

Смотрите также

  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке


Находит первое вхождение подстроки в строке

  • « mb_strrpos
  • mb_strtolower »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Находит первое вхождение подстроки в строке

mb_strstr

(PHP 5 >= 5.2.0, PHP 7)

mb_strstr — Находит первое вхождение подстроки в строке

Описание

string mb_strstr ( string $haystack , string $needle [, bool $before_needle = false [, string $encoding = mb_internal_encoding() ]] )

mb_strstr() находит первое вхождение подстроки needle в строке haystack и возвращает часть haystack. Если needle не найдена, возвращается FALSE.

Список параметров

haystack

Строка, в которой ищется первое вхождение строки needle

needle

Строка для поиска в haystack

before_needle

Определяет, какую часть строки haystack вернет эта функция. Если установлено TRUE, возвращается часть haystack от начала до первого вхождения needle (исключая needle). Если установлено FALSE, возвращается часть haystack от первого вхождения needle до конца (включая needle).

encoding

Название используемой кодировки символов. Если этот параметр опущен, используется внутренняя кодировка.

Возвращаемые значения

Возвращает часть строки haystack, или FALSE, если needle не найдена.

Смотрите также

  • stristr() - Регистронезависимый вариант функции strstr
  • strstr() - Находит первое вхождение подстроки
  • mb_stristr() - Находит первое вхождение подстроки в строке без учета регистра


Приведение строки к нижнему регистру

  • « mb_strstr
  • mb_strtoupper »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Приведение строки к нижнему регистру

mb_strtolower

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_strtolower — Приведение строки к нижнему регистру

Описание

string mb_strtolower ( string $str [, string $encoding = mb_internal_encoding() ] )

Возвращает строку str, буквенные символы в которой приведены к нижнему регистру.

Список параметров

str

Исходная строка string.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

str, буквы в которой приведены к нижнему регистру.

Юникод

За дополнительной информацией о свойствах Юникода обращайтесь в » http://www.unicode.org/unicode/reports/tr21/.

В отличие от strtolower(), то что символ является буквой определяется на основании свойств символа Юникода. Таким образом на поведение функции не влияют региональные настройки системы, а также функция может преобразовывать символы, имеющие буквенные особенности, такие как А-умляут (A).

Примеры

Пример #1 Пример использования mb_strtolower()

<?php
$str = "У Мэри Был Маленький Ягненок и Она Его Очень ЛЮБИЛА";
$str = mb_strtolower($str);
echo $str; // Выведет у мэри был маленький ягненок и она его очень любила
?>

Пример #2 Пример использования mb_strtolower() с нелатинскими буквами

<?php
$str = "??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????";
$str = mb_strtolower($str, 'UTF-8');
echo $str; // Выведет ??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????
?>

Смотрите также

  • mb_strtoupper() - Приведение строки к верхнему регистру
  • mb_convert_case() - Производит смену регистра символов в строке
  • strtolower() - Преобразует строку в нижний регистр


Приведение строки к верхнему регистру

  • « mb_strtolower
  • mb_strwidth »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Приведение строки к верхнему регистру

mb_strtoupper

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_strtoupper — Приведение строки к верхнему регистру

Описание

string mb_strtoupper ( string $str [, string $encoding = mb_internal_encoding() ] )

Возвращает строку str, буквенные символы в которой приведены к верхнему регистру.

Список параметров

str

Исходная строка string.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

str, буквы в которой приведены к верхнему регистру.

Юникод

За дополнительной информацией о свойствах Юникода обращайтесь в » http://www.unicode.org/unicode/reports/tr21/.

В отличие от strtoupper(), то что символ является буквой определяется на основании свойств символа Юникода. Таким образом на поведение функции не влияют региональные настройки системы, а также функция может преобразовывать символы, имеющие буквенные особенности, такие как а-умляут (a).

Примеры

Пример #1 Пример использования mb_strtoupper()

<?php
$str = "У Мэри Был Маленький Ягненок и Она Его Очень ЛЮБИЛА";
$str = mb_strtoupper($str);
echo $str; // Выведет У МЭРИ БЫЛ МАЛЕНЬКИЙ ЯГНЕНОК И ОНА ЕГО ОЧЕНЬ ЛЮБИЛА
?>

Пример #2 Пример использования mb_strtoupper() с нелатинскими буквами

<?php
$str = "??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????";
$str = mb_strtoupper($str, 'UTF-8');
echo $str; // Выведет ??????? ?????? ????? ?????? ??, ??????????? ???? ?????? ?????
?>

Смотрите также

  • mb_strtolower() - Приведение строки к нижнему регистру
  • mb_convert_case() - Производит смену регистра символов в строке
  • strtoupper() - Преобразует строку в верхний регистр


Возвращает ширину строки

  • « mb_strtoupper
  • mb_substitute_character »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Возвращает ширину строки

mb_strwidth

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_strwidth — Возвращает ширину строки

Описание

int mb_strwidth ( string $str [, string $encoding = mb_internal_encoding() ] )

Возвращает ширину строки string str.

Многобайтные символы в большинстве случаев в два раза длиннее однобайтных.

Ширина символов
Символы | Ширина
U+0000 - U+0019 | 0
U+0020 - U+1FFF | 1
U+2000 - U+FF60 | 2
U+FF61 - U+FF9F | 1
U+FFA0 - | 2

Список параметров

str

Исходная строка string.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Ширина строки string str.

Смотрите также

  • mb_strimwidth() - Получение строки, обрезанной до заданной ширины
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Задание/получение символа заместителя

  • « mb_strwidth
  • mb_substr_count »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Задание/получение символа заместителя

mb_substitute_character

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_substitute_character — Задание/получение символа заместителя

Описание

mixed mb_substitute_character ([ mixed $substrchar = mb_substitute_character() ] )

Задает замещающий символ на случай, когда кодировка входных данных задана неверно или код символа не существует в кодировке выходных данных. Недопустимые символы могут быть заменены на NULL (нет вывода), строку string или числовое значение integer (код символа Юникода).

Эта настройка влияет на поведение следующих функций:
mb_convert_encoding(),
mb_convert_variables(),
mb_output_handler(),
и mb_send_mail().

Список параметров

substrchar

Задает значение Юникода в виде числа integer или одной из следующих строк string:

  • "none" : нет вывода
  • "long" : код конечного (в выходной кодировке) символа (Пример: U+3000, JIS+7E7E)
  • "entity" : сущность конечного (в выходной кодировке) символа (Пример: ?)

Возвращаемые значения

Если аргумент substchar задан, функция вернет TRUE в случае успеха, FALSE в противном случае. Если substchar не задан, будет возвращена текущая настройка.

Примеры

Пример #1 Пример использования mb_substitute_character()

<?php
/* Установка замещающего символа Unicode U+3013 (GETA MARK) */
mb_substitute_character(0x3013);

/* Задаем шестнадцатеричный формат */
mb_substitute_character("long");

/* Отображение текущей настройки */
echo mb_substitute_character();
?>


Возвращает количество вхождений подстроки

  • « mb_substitute_character
  • mb_substr »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Возвращает количество вхождений подстроки

mb_substr_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

mb_substr_count — Возвращает количество вхождений подстроки

Описание

int mb_substr_count ( string $haystack , string $needle [, string $encoding = mb_internal_encoding() ] )

Подсчитывает, сколько раз подстрока needle встречается в строке haystack.

Список параметров

haystack

Строка (string) для проверки

needle

Строка (string) для поиска

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Количество вхождений подстроки needle в строку haystack.

Примеры

Пример #1 Пример использования mb_substr_count()

<?php
echo mb_substr_count("Это просто проверка", "то"); // выведет на экран 2
?>

Смотрите также

  • mb_strpos() - Поиск позиции первого вхождения одной строки в другую
  • mb_substr() - Возвращает часть строки
  • substr_count() - Возвращает число вхождений подстроки


Возвращает часть строки

  • « mb_substr_count
  • Pspell »
  • PHP Manual
  • Функции для работы с Многобайтными строками
  • Возвращает часть строки

mb_substr

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

mb_substr — Возвращает часть строки

Описание

string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )

Корректно выполняет substr() для многобайтовых кодировок, учитывая количество символов. Позиция отсчитывается от начала str. Позиция первого символа - 0, второго - 1 и т.д.

Список параметров

str

Исходная строка для получения подстроки.

start

Если start не отрицательное, возвращенная строка начнется с позиции start от начала строки str, начальный символ имеет индекс 0. К примеру, в строке 'abcdef', символ в позиции 0 - это 'a', символ в позиции 2 - 'c' и т.д.

Если start отрицательное, возвращаемая строка начнется отсчитывая start символов с конца str.

length

Максимальное количество символов возвращаемой из str подстроки. Если не указан или равен NULL - извлекаются все символы до конца строки.

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

mb_substr() возвращает часть строки str, заданную параметрами start и length.

Список изменений

Версия | Описание
5.4.8 | Передача NULL в ккачестве length вернет все символы до конца строки. В более ранних версиях NULL интерпритировался как 0.

Смотрите также

  • mb_strcut() - Получение части строки
  • mb_internal_encoding() - Установка/получение внутренней кодировки скрипта


Pspell

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Pspell
    • pspell_add_to_personal — Добавляет слово в персональный список слов
    • pspell_add_to_session — Добавляет слово в список слов в текущей сессии
    • pspell_check — Проверяет слово
    • pspell_clear_session — Очищает текущую сессию
    • pspell_config_create — Создает конфигурацию, используемую для открытия словаря
    • pspell_config_data_dir — Расположение файлов с языковыми данными
    • pspell_config_dict_dir — Расположение основного списка слов
    • pspell_config_ignore — Игнорирует слова длиной менее N символов
    • pspell_config_mode — Изменяет режим количества возвращаемых вариантов исправления
    • pspell_config_personal — Устанавливает файл, содержащий персональный список слов
    • pspell_config_repl — Устанавливает файл, содержащий замещающие пары
    • pspell_config_runtogether — Рассматривает объединённые слова как правильные сложные слова
    • pspell_config_save_repl — Определяет, сохранять ли список замещающих пар вместе со списком слов
    • pspell_new_config — Загружает новый словарь с установками на основе заданной конфигурации
    • pspell_new_personal — Загружает новый словарь с персональным списком слов
    • pspell_new — Загружает новый словарь
    • pspell_save_wordlist — Сохраняет персональный список слов в файле
    • pspell_store_replacement — Сохраняет замещающую пару для слова
    • pspell_suggest — Предлагает варианты исправления слова


Введение

Эти функции позволяют проверять правописание слова и предлагают варианты исправления.


Требования

Для того, чтобы скомпилировать PHP с поддержкой apsell, вам нужна библиотека aspell, доступная по адресу » http://aspell.net/.


Установка

Если у вас есть требуемые библиотеки, нужно добавить опцию --with-pspell[=dir] при компиляции PHP.

Замечание: Примечание для пользователей Win32

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: aspell-15.dll из директории bin каталога установки aspell.

Поддержка Win32 доступна только в PHP 4.3.3 и более поздних версиях. Кроме этого, требуется, по крайней мере, aspell версии 0.50.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

PSPELL_FAST (integer)
PSPELL_NORMAL (integer)
PSPELL_BAD_SPELLERS (integer)
PSPELL_RUN_TOGETHER (integer)


Функции Pspell

Содержание

  • pspell_add_to_personal — Добавляет слово в персональный список слов
  • pspell_add_to_session — Добавляет слово в список слов в текущей сессии
  • pspell_check — Проверяет слово
  • pspell_clear_session — Очищает текущую сессию
  • pspell_config_create — Создает конфигурацию, используемую для открытия словаря
  • pspell_config_data_dir — Расположение файлов с языковыми данными
  • pspell_config_dict_dir — Расположение основного списка слов
  • pspell_config_ignore — Игнорирует слова длиной менее N символов
  • pspell_config_mode — Изменяет режим количества возвращаемых вариантов исправления
  • pspell_config_personal — Устанавливает файл, содержащий персональный список слов
  • pspell_config_repl — Устанавливает файл, содержащий замещающие пары
  • pspell_config_runtogether — Рассматривает объединённые слова как правильные сложные слова
  • pspell_config_save_repl — Определяет, сохранять ли список замещающих пар вместе со списком слов
  • pspell_new_config — Загружает новый словарь с установками на основе заданной конфигурации
  • pspell_new_personal — Загружает новый словарь с персональным списком слов
  • pspell_new — Загружает новый словарь
  • pspell_save_wordlist — Сохраняет персональный список слов в файле
  • pspell_store_replacement — Сохраняет замещающую пару для слова
  • pspell_suggest — Предлагает варианты исправления слова


Добавляет слово в персональный список слов

  • « Функции Pspell
  • pspell_add_to_session »
  • PHP Manual
  • Функции Pspell
  • Добавляет слово в персональный список слов

pspell_add_to_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_add_to_personal — Добавляет слово в персональный список слов

Описание

bool pspell_add_to_personal ( int $dictionary_link , string $word )

pspell_add_to_personal() добавляет слово в персональный список слов. Если вы использовали pspell_new_config() вместе с pspell_config_personal() для открытия словаря, вы можете сохранить список слов позднее с помощью pspell_save_wordlist().

Список параметров

dictionary_link

word

Добавляемое слово.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Примечания

Замечание:

Эта функция не будет работать, если у вас нет pspell .11.2 и aspell .32.5 или выше.


Добавляет слово в список слов в текущей сессии

  • « pspell_add_to_personal
  • pspell_check »
  • PHP Manual
  • Функции Pspell
  • Добавляет слово в список слов в текущей сессии

pspell_add_to_session

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_add_to_session — Добавляет слово в список слов в текущей сессии

Описание

bool pspell_add_to_session ( int $dictionary_link , string $word )

pspell_add_to_session() добавляет слово в список слов, ассоциированный с текущей сессией. Эта функция очень похожа на функцию pspell_add_to_personal()

Список параметров

dictionary_link

word

Добавляемое слово.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Проверяет слово

  • « pspell_add_to_session
  • pspell_clear_session »
  • PHP Manual
  • Функции Pspell
  • Проверяет слово

pspell_check

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_check — Проверяет слово

Описание

bool pspell_check ( int $dictionary_link , string $word )

pspell_check() проверяет орфографию слова.

Список параметров

dictionary_link

word

Проверяемое слово.

Возвращаемые значения

Возвращает TRUE, если орфография верна; FALSE - в противном случае.

Примеры

Пример #1 Пример использования pspell_check()

<?php
$pspell_link = pspell_new("en");

if (pspell_check($pspell_link, "testt")) {
    echo "Это верное написание";
} else {
    echo "К сожалению, неправильное написание";
}
?>


Очищает текущую сессию

  • « pspell_check
  • pspell_config_create »
  • PHP Manual
  • Функции Pspell
  • Очищает текущую сессию

pspell_clear_session

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_clear_session — Очищает текущую сессию

Описание

bool pspell_clear_session ( int $dictionary_link )

pspell_clear_session() очищает текущую сессию. Текущий список слов очищается, и, например, если попытаться сохранить его с помощью pspell_save_wordlist(), ничего не произойдет.

Список параметров

dictionary_link

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_clear_session($pspell_link);
pspell_save_wordlist($pspell_link);    //Слово "Vlad" не будет сохранено
?>


Создает конфигурацию, используемую для открытия словаря

  • « pspell_clear_session
  • pspell_config_data_dir »
  • PHP Manual
  • Функции Pspell
  • Создает конфигурацию, используемую для открытия словаря

pspell_config_create

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_create — Создает конфигурацию, используемую для открытия словаря

Описание

int pspell_config_create ( string $language [, string $spelling [, string $jargon [, string $encoding ]]] )

Создает конфигурацию, используемую для открытия словаря.

pspell_config_create() обладает синтаксисом, очень похожим
на синтаксис pspell_new(). Фактически, использование
pspell_config_create() сразу после
pspell_new_config() даст точно такой же результат.
Однако, после создания новой конфигурации, также можно использовать
функции pspell_config_*() до вызова
pspell_new_config() для получения преимуществ от некоторой
дополнительной функциональности.

Более подробную информацию и примеры можно найти в руководстве по pspell на сайте:» http://aspell.net/.

Список параметров

language

Параметр language - это код языка, который состоит из двухбуквенного кода языка по стандарту ISO 639 и необязательного двубуквенного кода страны по стандарту ISO 3166 после тире или подчеркивания.

spelling

Параметр spelling определяет вариант проверки орфографии для языков с более чем одним вариантом правописания, таких, как английский. Известные значения: 'american', 'british', и 'canadian'.

jargon

Параметр jargon содержит дополнительную информацию для различения двух различных списков слов, имеющих одинаковые параметры language и spelling.

encoding

Параметр encoding - это кодировка, в которой, как ожидается, даны слова. Допустимые значения: 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. Это параметр ещё не проверен достаточно хорошо, поэтому будьте осторожны при его использовании.

Возвращаемые значения

Возвращает идентификатор конфигурации pspell, или FALSE в случае ошибки.

Примеры

Пример #1 pspell_config_create()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_personal($pspell_config, "en");
?>


Расположение файлов с языковыми данными

  • « pspell_config_create
  • pspell_config_dict_dir »
  • PHP Manual
  • Функции Pspell
  • Расположение файлов с языковыми данными

pspell_config_data_dir

(PHP 5, PHP 7)

pspell_config_data_dir — Расположение файлов с языковыми данными

Описание

bool pspell_config_data_dir ( int $conf , string $directory )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Расположение основного списка слов

  • « pspell_config_data_dir
  • pspell_config_ignore »
  • PHP Manual
  • Функции Pspell
  • Расположение основного списка слов

pspell_config_dict_dir

(PHP 5, PHP 7)

pspell_config_dict_dir — Расположение основного списка слов

Описание

bool pspell_config_dict_dir ( int $conf , string $directory )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Игнорирует слова длиной менее N символов

  • « pspell_config_dict_dir
  • pspell_config_mode »
  • PHP Manual
  • Функции Pspell
  • Игнорирует слова длиной менее N символов

pspell_config_ignore

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_ignore — Игнорирует слова длиной менее N символов

Описание

bool pspell_config_ignore ( int $dictionary_link , int $n )

pspell_config_ignore() должна быть использована для конфигурации до вызова pspell_new_config(). Эта функция позволяет пропускать короткие слова при проверке орфографии.

Список параметров

dictionary_link

n

Слова длиной менее n символов будут пропущены.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pspell_config_ignore()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_ignore($pspell_config, 5);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "abcd");    //Сообщение об ошибке не будет сгенерировано
?>


Изменяет режим количества возвращаемых вариантов исправления

  • « pspell_config_ignore
  • pspell_config_personal »
  • PHP Manual
  • Функции Pspell
  • Изменяет режим количества возвращаемых вариантов исправления

pspell_config_mode

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_mode — Изменяет режим количества возвращаемых вариантов исправления

Описание

bool pspell_config_mode ( int $dictionary_link , int $mode )

pspell_config_mode() должна быть использована для конфигурации до вызова pspell_new_config(). Эта функция определяет, сколько вариантов исправления будет возвращать функция pspell_suggest().

Список параметров

dictionary_link

mode

Параметр mode - это режим, в котором будет работать проверка орфографии. Доступно несколько режимов:

  • PSPELL_FAST - Быстрый режим (наименьшее число вариантов исправления)
  • PSPELL_NORMAL - Нормальный режим (больше вариантов исправления)
  • PSPELL_BAD_SPELLERS - Медленный режим (много вариантов исправления)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования pspell_config_mode()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_mode($pspell_config, PSPELL_FAST);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>


Устанавливает файл, содержащий персональный список слов

  • « pspell_config_mode
  • pspell_config_repl »
  • PHP Manual
  • Функции Pspell
  • Устанавливает файл, содержащий персональный список слов

pspell_config_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_personal — Устанавливает файл, содержащий персональный список слов

Описание

bool pspell_config_personal ( int $dictionary_link , string $file )

Устанавливает файл, содержащий персональный список слов. Персональный список слов будет загружен и использован в дополнение к стандартному после того, как вы вызовете pspell_new_config(). Это тот же самый файл, в который функция pspell_save_wordlist() сохранит персональный список слов.

pspell_config_personal() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

dictionary_link

file

Персональный список слов. Если файл не существует, он будет создан. Файл должен быть доступен для записи любому, кто запускает PHP (например, nobody).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pspell_config_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Примечания

Замечание:

Эта функция не будет работать, если у вас нет pspell .11.2 и aspell .32.5 или выше.


Устанавливает файл, содержащий замещающие пары

  • « pspell_config_personal
  • pspell_config_runtogether »
  • PHP Manual
  • Функции Pspell
  • Устанавливает файл, содержащий замещающие пары

pspell_config_repl

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_repl — Устанавливает файл, содержащий замещающие пары

Описание

bool pspell_config_repl ( int $dictionary_link , string $file )

Устанавливает файл, содержащий замещающие пары.

Замещающие пары повышают качество проверки орфографии. Когда слово написано с ошибками, а правильный вариант не найден в списке, pspell_store_replacement() может быть использована для того, чтобы сохранить замещающую пару, а pspell_save_wordlist() - чтобы сохранить список слов вместе с замещающими парами.

pspell_config_repl() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

dictionary_link

file

Файл должен быть доступен для записи любому, кто запускает PHP (например, nobody).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pspell_config_repl()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>

Примечания

Замечание:

Эта функция не будет работать, если у вас нет pspell .11.2 и aspell .32.5 или выше.


Рассматривает объединённые слова как правильные сложные слова

  • « pspell_config_repl
  • pspell_config_save_repl »
  • PHP Manual
  • Функции Pspell
  • Рассматривает объединённые слова как правильные сложные слова

pspell_config_runtogether

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_runtogether — Рассматривает объединённые слова как правильные сложные слова

Описание

bool pspell_config_runtogether ( int $dictionary_link , bool $flag )

Эта функция определяет, будут ли объединённые слова рассматриваться как правильные сложные слова. Так, "thecat" будет считаться правильным сложным словом, хотя между артиклем и словом должен быть пробел. Изменение этой установки влияет только на результаты, возвращаемые функцией pspell_check(); pspell_suggest() будет продолжать выдавать варианты исправления.

pspell_config_runtogether() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

dictionary_link

flag

TRUE если объединенные слова должны рассматриваться как правильные сложные слова, FALSE в противном случае.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pspell_config_runtogether()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_runtogether($pspell_config, true);
$pspell_link = pspell_new_config($pspell_config);
pspell_check($pspell_link, "thecat");
?>


Определяет, сохранять ли список замещающих пар вместе со списком слов

  • « pspell_config_runtogether
  • pspell_new_config »
  • PHP Manual
  • Функции Pspell
  • Определяет, сохранять ли список замещающих пар вместе со списком слов

pspell_config_save_repl

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_config_save_repl — Определяет, сохранять ли список замещающих пар вместе со списком слов

Описание

bool pspell_config_save_repl ( int $dictionary_link , bool $flag )

pspell_config_save_repl() определяет, будет ли pspell_save_wordlist() сохранять замещающие пары вместе со списком слов. Обычно нет необходимости использовать эту функцию, поскольку, если используется pspell_config_repl(), замещающие пары будут сохранены pspell_save_wordlist() в любом случае, и, если она не используется, замещающие пары не будут сохраняться.

pspell_config_save_repl() должна быть использована для конфигурации до вызова pspell_new_config().

Список параметров

dictionary_link

flag

TRUE если замещающие пары должны сохраняться, FALSE в противном случае.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Эта функция не будет работать, если у вас нет pspell .11.2 и aspell .32.5 или выше.


Загружает новый словарь с установками на основе заданной конфигурации

  • « pspell_config_save_repl
  • pspell_new_personal »
  • PHP Manual
  • Функции Pspell
  • Загружает новый словарь с установками на основе заданной конфигурации

pspell_new_config

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_new_config — Загружает новый словарь с установками на основе заданной конфигурации

Описание

int pspell_new_config ( int $config )

pspell_new_config() открывает новый словарь с параметрами, заданными в конфигурации, созданной с помощью pspell_config_create() и модифицированной с помощью функций pspell_config_*(). Этот метод дает наибольшую гибкость и имеет все функциональные возможности, предоставляемые pspell_new() и pspell_new_personal().

Список параметров

config

Параметр config - это параметр возвращённый функцией pspell_config_create() после того, как конфигурация была создана.

Возвращаемые значения

В случае успеха возвращает ссылку на словарь.

Примеры

Пример #1 pspell_new_config()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);
?>


Загружает новый словарь с персональным списком слов

  • « pspell_new_config
  • pspell_new »
  • PHP Manual
  • Функции Pspell
  • Загружает новый словарь с персональным списком слов

pspell_new_personal

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_new_personal — Загружает новый словарь с персональным списком слов

Описание

int pspell_new_personal ( string $personal , string $language [, string $spelling [, string $jargon [, string $encoding [, int $mode = 0 ]]]] )

pspell_new_personal() открывает новый словарь с персональным списком слов. Список слов может быть модифицирован и сохранён функцией pspell_save_wordlist(), если потребуется. Однако замещающие пары не сохраняются. Для сохранения замещающих пар вы должны создать конфигурацию, используя pspell_config_create(), установить файл персонального списка слов функцией pspell_config_personal(), установить файл для замещающих пар функцией pspell_config_repl(), и открыть новый словарь с помощью pspell_new_config().

Более подробную информацию и примеры можно найти в руководстве по pspell на сайте:» http://aspell.net/.

Список параметров

personal

Файл, в который будут сохранены слова, добавленные в персональный список. Это должен быть абсолютный путь к файлу, начинающийся с '/', так как иначе он будет относительным к $HOME, которым является "/root" для большинства систем, что, вероятно, не то, что вам нужно.

language

Код языка, который состоит из двухбуквенного кода языка по стандарту ISO 639 и необязательного двубуквенного кода страны по стандарту ISO 3166 после тире или подчеркивания.

spelling

Определяет вариант проверки орфографии для языков с более чем одним вариантом правописания, таких, как английский. Известные значения: 'american', 'british', и 'canadian'.

jargon

Дополнительная информацию для различения двух различных списков слов, имеющих одинаковые параметры language и spelling.

encoding

Кодировка, в которой, как ожидается, даны слова. Допустимые значения: utf-8, iso8859-*, koi8-r, viscii, cp1252, machine unsigned 16, machine unsigned 32.

mode

Режим, в котором будет работать проверка орфографии. Доступно несколько режимов:

  • PSPELL_FAST - Быстрый режим (наименьшее число вариантов исправления)
  • PSPELL_NORMAL - Нормальный режим (больше вариантов исправления)
  • PSPELL_BAD_SPELLERS - Медленный режим (много вариантов исправления)
  • PSPELL_RUN_TOGETHER - рассматривает объединённые слова как правильные сложные слова. То есть, "thecat" будет считаться правильным сложным словом, хотя между артиклем и словом должен быть пробел. Изменение этой установки влияет только на результаты, возвращаемые функцией pspell_check(); pspell_suggest() будет продолжать выдавать варианты исправления.
Mode - это битовая маска, сконструированная из различных перечисленных выше констант. Однако, PSPELL_FAST, PSPELL_NORMAL и PSPELL_BAD_SPELLERS являются взаимоисключающими, так что вы должны выбрать только одну из них.

Возвращаемые значения

Возвращает ссылку на словарь для использования в других функциях pspell.

Примеры

Пример #1 pspell_new_personal()

<?php
$pspell_link = pspell_new_personal ("/var/dictionaries/custom.pws",
        "en", "", "", "", PSPELL_FAST|PSPELL_RUN_TOGETHER);
?>


Загружает новый словарь

  • « pspell_new_personal
  • pspell_save_wordlist »
  • PHP Manual
  • Функции Pspell
  • Загружает новый словарь

pspell_new

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_new — Загружает новый словарь

Описание

int pspell_new ( string $language [, string $spelling [, string $jargon [, string $encoding [, int $mode = 0 ]]]] )

pspell_new() открывает новый словарь и возвращает ссылку на словарь для использования в других функциях pspell.

Более подробную информацию и примеры можно найти в руководстве по pspell на сайте:» http://aspell.net/.

Список параметров

language

Параметр language - это код языка, который состоит из двухбуквенного кода языка по стандарту ISO 639 и необязательного двубуквенного кода страны по стандарту ISO 3166 после тире или подчеркивания.

spelling

Параметр spelling определяет вариант проверки орфографии для языков с более чем одним вариантом правописания, таких, как английский. Известные значения: 'american', 'british', и 'canadian'.

jargon

Параметр jargon содержит дополнительную информацию для различения двух различных списков слов, имеющих одинаковые параметры language и spelling.

encoding

Параметр encoding это кодировка, в которой, как ожидается, даны слова. Допустимые значения: 'utf-8', 'iso8859-*', 'koi8-r', 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned 32'. Это параметр ещё не проверен достаточно хорошо, поэтому будьте осторожны при его использовании.

mode

Параметр mode - это режим, в котором будет работать проверка орфографии. Доступно несколько режимов:

  • PSPELL_FAST - Быстрый режим (наименьшее число вариантов исправления)
  • PSPELL_NORMAL - Нормальный режим (больше вариантов исправления)
  • PSPELL_BAD_SPELLERS - Медленный режим (много вариантов исправления)
  • PSPELL_RUN_TOGETHER - рассматривает объединённые слова как правильные сложные слова. То есть, "thecat" будет считаться правильным сложным словом, хотя между артиклем и словом должен быть пробел. Изменение этой установки влияет только на результаты, возвращаемые функцией pspell_check(); pspell_suggest() будет продолжать выдавать варианты исправления.
Mode - это битовая маска, сконструированная из различных перечисленных выше констант. Однако, PSPELL_FAST, PSPELL_NORMAL и PSPELL_BAD_SPELLERS являются взаимноисключающими, так что вы должны выбрать только одну из них.

Возвращаемые значения

В случае успеха возвращает ссылку на словарь или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pspell_new()

<?php
$pspell_link = pspell_new("en", "", "", "",
                           (PSPELL_FAST|PSPELL_RUN_TOGETHER));
?>


Сохраняет персональный список слов в файле

  • « pspell_new
  • pspell_store_replacement »
  • PHP Manual
  • Функции Pspell
  • Сохраняет персональный список слов в файле

pspell_save_wordlist

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_save_wordlist — Сохраняет персональный список слов в файле

Описание

bool pspell_save_wordlist ( int $dictionary_link )

pspell_save_wordlist() сохраняет персональный список слов текущей сессии. Расположение файлов для сохранения указывается с помощью pspell_config_personal() и (необязательно) pspell_config_repl().

Список параметров

dictionary_link

Ссылка на словарь, открытый с помощью pspell_new_personal().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pspell_add_to_personal()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/tmp/dicts/newdict");
$pspell_link = pspell_new_config($pspell_config);

pspell_add_to_personal($pspell_link, "Vlad");
pspell_save_wordlist($pspell_link);
?>

Примечания

Замечание:

Эта функция не будет работать, если у вас нет pspell .11.2 и aspell .32.5 или выше.


Сохраняет замещающую пару для слова

  • « pspell_save_wordlist
  • pspell_suggest »
  • PHP Manual
  • Функции Pspell
  • Сохраняет замещающую пару для слова

pspell_store_replacement

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_store_replacement — Сохраняет замещающую пару для слова

Описание

bool pspell_store_replacement ( int $dictionary_link , string $misspelled , string $correct )

pspell_store_replacement() сохраняет замещающую пару для слова, так что замена позднее может быть возвращена функцией pspell_suggest(). Чтобы использовать преимущества этой функции, следует открыть словарь с помощью pspell_new_personal(). Чтобы навсегда сохранить замещающую пару, необходимо использовать pspell_config_personal() и pspell_config_repl() для того, чтобы указать путь, куда сохранить пользовательские списки слов, а затем воспользоваться pspell_save_wordlist() для записи изменений на диск.

Список параметров

dictionary_link

Ссылка на словарь, открытый с помощью pspell_new_personal()

misspelled

Слово с ошибкой.

correct

Исправленное написание для слова с ошибкой (misspelled).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pspell_store_replacement()

<?php
$pspell_config = pspell_config_create("en");
pspell_config_personal($pspell_config, "/var/dictionaries/custom.pws");
pspell_config_repl($pspell_config, "/var/dictionaries/custom.repl");
$pspell_link = pspell_new_config($pspell_config);

pspell_store_replacement($pspell_link, $misspelled, $correct);
pspell_save_wordlist($pspell_link);
?>

Примечания

Замечание:

Эта функция не будет работать, если у вас нет pspell .11.2 и aspell .32.5 или выше.


Предлагает варианты исправления слова

  • « pspell_store_replacement
  • Recode »
  • PHP Manual
  • Функции Pspell
  • Предлагает варианты исправления слова

pspell_suggest

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

pspell_suggest — Предлагает варианты исправления слова

Описание

array pspell_suggest ( int $dictionary_link , string $word )

pspell_suggest() возвращает массив возможных вариантов исправления заданного слова.

Список параметров

dictionary_link

word

Проверяемое слово.

Возвращаемые значения

Возвращает массив возможных вариантов исправления.

Примеры

Пример #1 Пример использования pspell_suggest()

<?php
$pspell_link = pspell_new("en");

if (!pspell_check($pspell_link, "testt")) {
    $suggestions = pspell_suggest($pspell_link, "testt");

    foreach ($suggestions as $suggestion) {
        echo "Возможные вариант исправления: $suggestion<br />";
    }
}
?>


GNU Recode

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Recode Функции
    • recode_file — Recode from file to file according to recode request
    • recode_string — Recode a string according to a recode request
    • recode — Псевдоним recode_string


Введение

This module contains an interface to the GNU Recode library. The GNU Recode library converts files between various coded character sets and surface encodings. When this cannot be achieved exactly, it may get rid of the offending characters or fall back on approximations. The library recognises or produces nearly 150 different character sets and is able to convert files between almost any pair. Most » RFC 1345 character sets are supported.

Замечание: Для Windows-платформ это расширение недоступно.


Требования

You must have GNU Recode 3.5 or higher installed on your system. You can download the package from » http://directory.fsf.org/All_GNU_Packages/recode.html.

Внимание

The Recode library version 3.6 adds weird characters behind converted strings under certain circumstances. Thus it's safer to use Recode v3.5 or one of the available alternatives like the iconv or mbstring extension.


Установка

To be able to use the functions defined in this module you must compile your PHP interpreter using the --with-recode[=DIR] option.

Внимание

Crashes and startup problems of PHP may be encountered when loading the recode as extension after loading any extension of mysql or imap. Loading the recode before those extension has proved to fix the problem. This is due a technical problem that both the c-client library used by imap and recode have their own hash_lookup() function and both mysql and recode have their own hash_insert function.

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки, YAZ или Cyrus. Это связано с тем фактом, что они оба используют одни и те же внутренние символы. Замечание: Версии Yaz 2.0 и выше избавлены от этого недостатка.


  • « Типы ресурсов
  • Recode Функции »
  • PHP Manual
  • Recode
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Recode Функции

Содержание

  • recode_file — Recode from file to file according to recode request
  • recode_string — Recode a string according to a recode request
  • recode — Псевдоним recode_string


Recode from file to file according to recode request

  • « Recode Функции
  • recode_string »
  • PHP Manual
  • Recode Функции
  • Recode from file to file according to recode request

recode_file

(PHP 4, PHP 5, PHP 7)

recode_file — Recode from file to file according to recode request

Описание

bool recode_file ( string $request , resource $input , resource $output )

Recode the file referenced by file handle input into the file referenced by file handle output according to the recode request.

Список параметров

request

The desired recode request type

input

A local file handle resource for the input

output

A local file handle resource for the output

Возвращаемые значения

Returns FALSE, if unable to comply, TRUE otherwise.

Примеры

Пример #1 Basic recode_file() example

<?php
$input = fopen('input.txt', 'r');
$output = fopen('output.txt', 'w');
recode_file("us..flat", $input, $output);
?>

Примечания

This function does not currently process file handles referencing remote files (URLs). Both file handles must refer to local files.

Смотрите также

  • fopen() - Открывает файл или URL


Recode a string according to a recode request

  • « recode_file
  • recode »
  • PHP Manual
  • Recode Функции
  • Recode a string according to a recode request

recode_string

(PHP 4, PHP 5, PHP 7)

recode_string — Recode a string according to a recode request

Описание

string recode_string ( string $request , string $string )

Recode the string string according to the recode request request.

Список параметров

request

The desired recode request type

string

The string to be recoded

Возвращаемые значения

Returns the recoded string or FALSE, if unable to perform the recode request.

Примеры

Пример #1 Basic recode_string() example

<?php
echo recode_string("us..flat", "The following character has a diacritical mark: a");
?>

Примечания

A simple recode request may be "lat1..iso646-de".

Смотрите также

  • The GNU Recode documentation of your installation for detailed instructions about recode requests.


Псевдоним recode_string

  • « recode_string
  • Обработка и генерация изображений »
  • PHP Manual
  • Recode Функции
  • Псевдоним recode_string

recode

(PHP 4, PHP 5, PHP 7)

recode — Псевдоним recode_string()

Описание

Эта функция является псевдонимом: recode_string().


Обработка и генерация изображений

  • Cairo
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Cairo
    • Cairo — Класс Cairo
    • CairoContext — Класс CairoContext
    • CairoException — Класс CairoException
    • CairoStatus — The CairoStatus class
    • CairoSurface — The CairoSurface class
    • CairoSvgSurface — Svg Surface Backend
    • CairoImageSurface — The CairoImageSurface class
    • CairoPdfSurface — Класс CairoPdfSurface
    • CairoPsSurface — Класс CairoPsSurface
    • CairoSurfaceType — Класс CairoSurfaceType
    • CairoFontFace — The CairoFontFace class
    • CairoFontOptions — The CairoFontOptions class
    • CairoFontSlant — The CairoFontSlant class
    • CairoFontType — The CairoFontType class
    • CairoFontWeight — The CairoFontWeight class
    • CairoScaledFont — Класс CairoScaledFont
    • CairoToyFontFace — The CairoToyFontFace class
    • CairoPatternType — The CairoPatternType class
    • CairoPattern — The CairoPattern class
    • CairoGradientPattern — The CairoGradientPattern class
    • CairoSolidPattern — Класс CairoSolidPattern
    • CairoSurfacePattern — Класс CairoSurfacePattern
    • CairoLinearGradient — The CairoLinearGradient class
    • CairoRadialGradient — Класс CairoRadialGradient
    • CairoAntialias — Класс CairoAntialias
    • CairoContent — Класс CairoContent
    • CairoExtend — Класс CairoExtend
    • CairoFormat — The CairoFormat class
    • CairoFillRule — The CairoFillRule class
    • CairoFilter — The CairoFilter class
    • CairoHintMetrics — The CairoHintMetrics class
    • CairoHintStyle — The CairoHintStyle class
    • CairoLineCap — The CairoLineCap class
    • CairoLineJoin — Класс CairoLineJoin
    • CairoMatrix — The CairoMatrix class
    • CairoOperator — The CairoOperator class
    • CairoPath — The CairoPath class
    • CairoPsLevel — Класс CairoPsLevel
    • CairoSubpixelOrder — Класс CairoSubpixelOrder
    • CairoSvgVersion — Класс CairoSvgVersion
  • Exif — Изменяемая информация об изображении
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Exif Функции
  • GD — Обработка изображений и GD
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • GD и функции для работы с изображениями Функции
  • Gmagick
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Gmagick — The Gmagick class
    • GmagickDraw — The GmagickDraw class
    • GmagickPixel — The GmagickPixel class
  • ImageMagick — Обработка изображений (ImageMagick)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Imagick — Класс Imagick
    • ImagickDraw — Класс ImagickDraw
    • ImagickPixel — Класс ImagickPixel
    • ImagickPixelIterator — Класс ImagickPixelIterator
    • ImagickKernel — The ImagickKernel class


Cairo

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Cairo
    • cairo_create — Returns a new CairoContext object on the requested surface.
    • cairo_font_face_get_type — Description
    • cairo_font_face_status — Description
    • cairo_font_options_create — Description
    • cairo_font_options_equal — Description
    • cairo_font_options_get_antialias — Description
    • cairo_font_options_get_hint_metrics — Description
    • cairo_font_options_get_hint_style — Description
    • cairo_font_options_get_subpixel_order — Description
    • cairo_font_options_hash — Description
    • cairo_font_options_merge — Description
    • cairo_font_options_set_antialias — Description
    • cairo_font_options_set_hint_metrics — Description
    • cairo_font_options_set_hint_style — Description
    • cairo_font_options_set_subpixel_order — Description
    • cairo_font_options_status — Description
    • cairo_format_stride_for_width — Description
    • cairo_image_surface_create_for_data — Description
    • cairo_image_surface_create_from_png — Description
    • cairo_image_surface_create — Description
    • cairo_image_surface_get_data — Description
    • cairo_image_surface_get_format — Description
    • cairo_image_surface_get_height — Description
    • cairo_image_surface_get_stride — Description
    • cairo_image_surface_get_width — Description
    • cairo_matrix_create_scale — Псевдоним CairoMatrix::initScale
    • cairo_matrix_create_translate — Псевдоним CairoMatrix::initTranslate
    • cairo_matrix_invert — Description
    • cairo_matrix_multiply — Description
    • cairo_matrix_rotate — Description
    • cairo_matrix_transform_distance — Description
    • cairo_matrix_transform_point — Description
    • cairo_matrix_translate — Description
    • cairo_pattern_add_color_stop_rgb — Description
    • cairo_pattern_add_color_stop_rgba — Description
    • cairo_pattern_create_for_surface — Description
    • cairo_pattern_create_linear — Description
    • cairo_pattern_create_radial — Description
    • cairo_pattern_create_rgb — Description
    • cairo_pattern_create_rgba — Description
    • cairo_pattern_get_color_stop_count — Description
    • cairo_pattern_get_color_stop_rgba — Description
    • cairo_pattern_get_extend — Description
    • cairo_pattern_get_filter — Description
    • cairo_pattern_get_linear_points — Description
    • cairo_pattern_get_matrix — Description
    • cairo_pattern_get_radial_circles — Description
    • cairo_pattern_get_rgba — Description
    • cairo_pattern_get_surface — Description
    • cairo_pattern_get_type — Description
    • cairo_pattern_set_extend — Description
    • cairo_pattern_set_filter — Description
    • cairo_pattern_set_matrix — Description
    • cairo_pattern_status — Description
    • cairo_pdf_surface_create — Description
    • cairo_pdf_surface_set_size — Description
    • cairo_ps_get_levels — Description
    • cairo_ps_level_to_string — Description
    • cairo_ps_surface_create — Description
    • cairo_ps_surface_dsc_begin_page_setup — Description
    • cairo_ps_surface_dsc_begin_setup — Description
    • cairo_ps_surface_dsc_comment — Description
    • cairo_ps_surface_get_eps — Description
    • cairo_ps_surface_restrict_to_level — Description
    • cairo_ps_surface_set_eps — Description
    • cairo_ps_surface_set_size — Description
    • cairo_scaled_font_create — Description
    • cairo_scaled_font_extents — Description
    • cairo_scaled_font_get_ctm — Description
    • cairo_scaled_font_get_font_face — Description
    • cairo_scaled_font_get_font_matrix — Description
    • cairo_scaled_font_get_font_options — Description
    • cairo_scaled_font_get_scale_matrix — Description
    • cairo_scaled_font_get_type — Description
    • cairo_scaled_font_glyph_extents — Description
    • cairo_scaled_font_status — Description
    • cairo_scaled_font_text_extents — Description
    • cairo_surface_copy_page — Description
    • cairo_surface_create_similar — Description
    • cairo_surface_finish — Description
    • cairo_surface_flush — Description
    • cairo_surface_get_content — Description
    • cairo_surface_get_device_offset — Description
    • cairo_surface_get_font_options — Description
    • cairo_surface_get_type — Description
    • cairo_surface_mark_dirty_rectangle — Description
    • cairo_surface_mark_dirty — Description
    • cairo_surface_set_device_offset — Description
    • cairo_surface_set_fallback_resolution — Description
    • cairo_surface_show_page — Description
    • cairo_surface_status — Description
    • cairo_surface_write_to_png — Description
    • cairo_svg_surface_create — Description
    • cairo_svg_surface_restrict_to_version — Description
    • cairo_svg_version_to_string — Description
  • Cairo — Класс Cairo
    • Cairo::availableFonts — Извлекает доступные типы шрифтов
    • Cairo::availableSurfaces — Извлекает все доступные поверхности (surface)
    • Cairo::statusToString — Возвращает текущий статус в форме текстовой строки
    • Cairo::version — Извлекает версию библиотеки cairo
    • Cairo::versionString — Возвращает версию cairo в форме строки
  • CairoContext — Класс CairoContext
    • CairoContext::appendPath — Appends a path to current path
    • CairoContext::arc — Adds a circular arc
    • CairoContext::arcNegative — Adds a negative arc
    • CairoContext::clip — Establishes a new clip region
    • CairoContext::clipExtents — Computes the area inside the current clip
    • CairoContext::clipPreserve — Establishes a new clip region from the current clip
    • CairoContext::clipRectangleList — Retrieves the current clip as a list of rectangles
    • CairoContext::closePath — Closes the current path
    • CairoContext::__construct — Creates a new CairoContext
    • CairoContext::copyPage — Emits the current page
    • CairoContext::copyPath — Creates a copy of the current path
    • CairoContext::copyPathFlat — Gets a flattened copy of the current path
    • CairoContext::curveTo — Adds a curve
    • CairoContext::deviceToUser — Transform a coordinate
    • CairoContext::deviceToUserDistance — Transform a distance
    • CairoContext::fill — Fills the current path
    • CairoContext::fillExtents — Computes the filled area
    • CairoContext::fillPreserve — Fills and preserve the current path
    • CairoContext::fontExtents — Get the font extents
    • CairoContext::getAntialias — Retrives the current antialias mode
    • CairoContext::getCurrentPoint — The getCurrentPoint purpose
    • CairoContext::getDash — The getDash purpose
    • CairoContext::getDashCount — The getDashCount purpose
    • CairoContext::getFillRule — The getFillRule purpose
    • CairoContext::getFontFace — The getFontFace purpose
    • CairoContext::getFontMatrix — The getFontMatrix purpose
    • CairoContext::getFontOptions — The getFontOptions purpose
    • CairoContext::getGroupTarget — The getGroupTarget purpose
    • CairoContext::getLineCap — The getLineCap purpose
    • CairoContext::getLineJoin — The getLineJoin purpose
    • CairoContext::getLineWidth — The getLineWidth purpose
    • CairoContext::getMatrix — The getMatrix purpose
    • CairoContext::getMiterLimit — The getMiterLimit purpose
    • CairoContext::getOperator — The getOperator purpose
    • CairoContext::getScaledFont — The getScaledFont purpose
    • CairoContext::getSource — The getSource purpose
    • CairoContext::getTarget — The getTarget purpose
    • CairoContext::getTolerance — The getTolerance purpose
    • CairoContext::glyphPath — The glyphPath purpose
    • CairoContext::hasCurrentPoint — The hasCurrentPoint purpose
    • CairoContext::identityMatrix — The identityMatrix purpose
    • CairoContext::inFill — The inFill purpose
    • CairoContext::inStroke — The inStroke purpose
    • CairoContext::lineTo — The lineTo purpose
    • CairoContext::mask — The mask purpose
    • CairoContext::maskSurface — The maskSurface purpose
    • CairoContext::moveTo — The moveTo purpose
    • CairoContext::newPath — The newPath purpose
    • CairoContext::newSubPath — The newSubPath purpose
    • CairoContext::paint — The paint purpose
    • CairoContext::paintWithAlpha — The paintWithAlpha purpose
    • CairoContext::pathExtents — The pathExtents purpose
    • CairoContext::popGroup — The popGroup purpose
    • CairoContext::popGroupToSource — The popGroupToSource purpose
    • CairoContext::pushGroup — The pushGroup purpose
    • CairoContext::pushGroupWithContent — The pushGroupWithContent purpose
    • CairoContext::rectangle — The rectangle purpose
    • CairoContext::relCurveTo — The relCurveTo purpose
    • CairoContext::relLineTo — The relLineTo purpose
    • CairoContext::relMoveTo — The relMoveTo purpose
    • CairoContext::resetClip — The resetClip purpose
    • CairoContext::restore — The restore purpose
    • CairoContext::rotate — The rotate purpose
    • CairoContext::save — The save purpose
    • CairoContext::scale — The scale purpose
    • CairoContext::selectFontFace — The selectFontFace purpose
    • CairoContext::setAntialias — The setAntialias purpose
    • CairoContext::setDash — The setDash purpose
    • CairoContext::setFillRule — The setFillRule purpose
    • CairoContext::setFontFace — The setFontFace purpose
    • CairoContext::setFontMatrix — The setFontMatrix purpose
    • CairoContext::setFontOptions — The setFontOptions purpose
    • CairoContext::setFontSize — The setFontSize purpose
    • CairoContext::setLineCap — The setLineCap purpose
    • CairoContext::setLineJoin — The setLineJoin purpose
    • CairoContext::setLineWidth — The setLineWidth purpose
    • CairoContext::setMatrix — The setMatrix purpose
    • CairoContext::setMiterLimit — The setMiterLimit purpose
    • CairoContext::setOperator — The setOperator purpose
    • CairoContext::setScaledFont — The setScaledFont purpose
    • CairoContext::setSource — The setSource purpose
    • CairoContext::setSourceRGB — The setSourceRGB purpose
    • CairoContext::setSourceRGBA — The setSourceRGBA purpose
    • CairoContext::setSourceSurface — The setSourceSurface purpose
    • CairoContext::setTolerance — The setTolerance purpose
    • CairoContext::showPage — The showPage purpose
    • CairoContext::showText — The showText purpose
    • CairoContext::status — The status purpose
    • CairoContext::stroke — The stroke purpose
    • CairoContext::strokeExtents — The strokeExtents purpose
    • CairoContext::strokePreserve — The strokePreserve purpose
    • CairoContext::textExtents — The textExtents purpose
    • CairoContext::textPath — The textPath purpose
    • CairoContext::transform — The transform purpose
    • CairoContext::translate — The translate purpose
    • CairoContext::userToDevice — The userToDevice purpose
    • CairoContext::userToDeviceDistance — The userToDeviceDistance purpose
  • CairoException — Класс CairoException
  • CairoStatus — The CairoStatus class
  • CairoSurface — The CairoSurface class
    • CairoSurface::__construct — The __construct purpose
    • CairoSurface::copyPage — The copyPage purpose
    • CairoSurface::createSimilar — The createSimilar purpose
    • CairoSurface::finish — The finish purpose
    • CairoSurface::flush — The flush purpose
    • CairoSurface::getContent — The getContent purpose
    • CairoSurface::getDeviceOffset — The getDeviceOffset purpose
    • CairoSurface::getFontOptions — The getFontOptions purpose
    • CairoSurface::getType — The getType purpose
    • CairoSurface::markDirty — The markDirty purpose
    • CairoSurface::markDirtyRectangle — The markDirtyRectangle purpose
    • CairoSurface::setDeviceOffset — The setDeviceOffset purpose
    • CairoSurface::setFallbackResolution — The setFallbackResolution purpose
    • CairoSurface::showPage — The showPage purpose
    • CairoSurface::status — The status purpose
    • CairoSurface::writeToPng — The writeToPng purpose
  • CairoSvgSurface — Svg Surface Backend
    • CairoSvgSurface::__construct — The __construct purpose
    • CairoSvgSurface::getVersions — Used to retrieve a list of supported SVG versions
    • CairoSvgSurface::restrictToVersion — The restrictToVersion purpose
    • CairoSvgSurface::versionToString — The versionToString purpose
  • CairoImageSurface — The CairoImageSurface class
    • CairoImageSurface::__construct — Creates a new CairoImageSurface
    • CairoImageSurface::createForData — The createForData purpose
    • CairoImageSurface::createFromPng — Creates a new CairoImageSurface form a png image file
    • CairoImageSurface::getData — Gets the image data as string
    • CairoImageSurface::getFormat — Get the image format
    • CairoImageSurface::getHeight — Retrieves the height of the CairoImageSurface
    • CairoImageSurface::getStride — The getStride purpose
    • CairoImageSurface::getWidth — Retrieves the width of the CairoImageSurface
  • CairoPdfSurface — Класс CairoPdfSurface
    • CairoPdfSurface::__construct — The __construct purpose
    • CairoPdfSurface::setSize — The setSize purpose
  • CairoPsSurface — Класс CairoPsSurface
    • CairoPsSurface::__construct — The __construct purpose
    • CairoPsSurface::dscBeginPageSetup — The dscBeginPageSetup purpose
    • CairoPsSurface::dscBeginSetup — The dscBeginSetup purpose
    • CairoPsSurface::dscComment — The dscComment purpose
    • CairoPsSurface::getEps — The getEps purpose
    • CairoPsSurface::getLevels — The getLevels purpose
    • CairoPsSurface::levelToString — The levelToString purpose
    • CairoPsSurface::restrictToLevel — The restrictToLevel purpose
    • CairoPsSurface::setEps — The setEps purpose
    • CairoPsSurface::setSize — The setSize purpose
  • CairoSurfaceType — Класс CairoSurfaceType
  • CairoFontFace — The CairoFontFace class
    • CairoFontFace::__construct — Создает новый объект CairoFontFace
    • CairoFontFace::getType — Возвращает тип начертания шрифта
    • CairoFontFace::status — Проверяет на ошибки класса CairoFontFace
  • CairoFontOptions — The CairoFontOptions class
    • CairoFontOptions::__construct — The __construct purpose
    • CairoFontOptions::equal — The equal purpose
    • CairoFontOptions::getAntialias — The getAntialias purpose
    • CairoFontOptions::getHintMetrics — The getHintMetrics purpose
    • CairoFontOptions::getHintStyle — The getHintStyle purpose
    • CairoFontOptions::getSubpixelOrder — The getSubpixelOrder purpose
    • CairoFontOptions::hash — The hash purpose
    • CairoFontOptions::merge — The merge purpose
    • CairoFontOptions::setAntialias — The setAntialias purpose
    • CairoFontOptions::setHintMetrics — The setHintMetrics purpose
    • CairoFontOptions::setHintStyle — The setHintStyle purpose
    • CairoFontOptions::setSubpixelOrder — The setSubpixelOrder purpose
    • CairoFontOptions::status — The status purpose
  • CairoFontSlant — The CairoFontSlant class
  • CairoFontType — The CairoFontType class
  • CairoFontWeight — The CairoFontWeight class
  • CairoScaledFont — Класс CairoScaledFont
    • CairoScaledFont::__construct — The __construct purpose
    • CairoScaledFont::extents — The extents purpose
    • CairoScaledFont::getCtm — The getCtm purpose
    • CairoScaledFont::getFontFace — The getFontFace purpose
    • CairoScaledFont::getFontMatrix — The getFontMatrix purpose
    • CairoScaledFont::getFontOptions — The getFontOptions purpose
    • CairoScaledFont::getScaleMatrix — The getScaleMatrix purpose
    • CairoScaledFont::getType — The getType purpose
    • CairoScaledFont::glyphExtents — The glyphExtents purpose
    • CairoScaledFont::status — The status purpose
    • CairoScaledFont::textExtents — The textExtents purpose
  • CairoToyFontFace — The CairoToyFontFace class
  • CairoPatternType — The CairoPatternType class
  • CairoPattern — The CairoPattern class
    • CairoPattern::__construct — The __construct purpose
    • CairoPattern::getMatrix — The getMatrix purpose
    • CairoPattern::getType — The getType purpose
    • CairoPattern::setMatrix — The setMatrix purpose
    • CairoPattern::status — The status purpose
  • CairoGradientPattern — The CairoGradientPattern class
    • CairoGradientPattern::addColorStopRgb — The addColorStopRgb purpose
    • CairoGradientPattern::addColorStopRgba — The addColorStopRgba purpose
    • CairoGradientPattern::getColorStopCount — The getColorStopCount purpose
    • CairoGradientPattern::getColorStopRgba — The getColorStopRgba purpose
    • CairoGradientPattern::getExtend — The getExtend purpose
    • CairoGradientPattern::setExtend — The setExtend purpose
  • CairoSolidPattern — Класс CairoSolidPattern
    • CairoSolidPattern::__construct — The __construct purpose
    • CairoSolidPattern::getRgba — The getRgba purpose
  • CairoSurfacePattern — Класс CairoSurfacePattern
    • CairoSurfacePattern::__construct — The __construct purpose
    • CairoSurfacePattern::getExtend — The getExtend purpose
    • CairoSurfacePattern::getFilter — The getFilter purpose
    • CairoSurfacePattern::getSurface — The getSurface purpose
    • CairoSurfacePattern::setExtend — The setExtend purpose
    • CairoSurfacePattern::setFilter — The setFilter purpose
  • CairoLinearGradient — The CairoLinearGradient class
    • CairoLinearGradient::__construct — The __construct purpose
    • CairoLinearGradient::getPoints — The getPoints purpose
  • CairoRadialGradient — Класс CairoRadialGradient
    • CairoRadialGradient::__construct — The __construct purpose
    • CairoRadialGradient::getCircles — The getCircles purpose
  • CairoAntialias — Класс CairoAntialias
  • CairoContent — Класс CairoContent
  • CairoExtend — Класс CairoExtend
  • CairoFormat — The CairoFormat class
    • CairoFormat::strideForWidth — Расчитывает значение "stride" для заданной ширины изображения
  • CairoFillRule — The CairoFillRule class
  • CairoFilter — The CairoFilter class
  • CairoHintMetrics — The CairoHintMetrics class
  • CairoHintStyle — The CairoHintStyle class
  • CairoLineCap — The CairoLineCap class
  • CairoLineJoin — Класс CairoLineJoin
  • CairoMatrix — The CairoMatrix class
    • CairoMatrix::__construct — Creates a new CairoMatrix object
    • CairoMatrix::initIdentity — Creates a new identity matrix
    • CairoMatrix::initRotate — Creates a new rotated matrix
    • CairoMatrix::initScale — Creates a new scaling matrix
    • CairoMatrix::initTranslate — Creates a new translation matrix
    • CairoMatrix::invert — The invert purpose
    • CairoMatrix::multiply — The multiply purpose
    • CairoMatrix::rotate — The rotate purpose
    • CairoMatrix::scale — Applies scaling to a matrix
    • CairoMatrix::transformDistance — The transformDistance purpose
    • CairoMatrix::transformPoint — The transformPoint purpose
    • CairoMatrix::translate — The translate purpose
  • CairoOperator — The CairoOperator class
  • CairoPath — The CairoPath class
  • CairoPsLevel — Класс CairoPsLevel
  • CairoSubpixelOrder — Класс CairoSubpixelOrder
  • CairoSvgVersion — Класс CairoSvgVersion


Введение

Cairo - это родное расширение PHP для создания и редактирования графики, используя библиотеку Cairo Graphics.

Библиотека Cairo Graphics Library это 2D библиотека, написанная на C с поддержкой множества устройств вывода. На данный момент поддержка включает вывод на: X Window System, Quartz, Win32, image buffers, PostScript, PDF, и вывод в SVG файл. Эксперементально поддерживается OpenGL (через glitz), XCB, BeOS, OS/2, и DirectFB. Библиотека также содержит поддержку двух типов манипуляций и управления расположения текста. "Игрушечная" API предоставляет поддержку демокачетсва, и API глифов, хотя и полнофункциональную, но работающую лучше с вспомогательными библиотеками, такими как pango. Поддержка шрифотов включает: FreeType, Quartz, Win32, и пользовательские шрифты.

Есть два типа компьютерной графики, векторная и растровая. Растровая графика представляет изображение как массив пикселей. Векторная графика использует геометрические примитивы, такие как точки, линии, кривые или полигоны. Примитивы создаются с использованием математических уравнений. Библитека Cairo Graphics Library использует векторный подход к графике, используя меньшие размеры, бесконечное увеличение и перемещение, масштабирование и вращение без ухудшения качества изображения.

Операции в библиотеке включают штрихофку (stroking) и заполнение кубечских сплайнов Безе, трансформирование и совмещение полупрозрачных изображений и рендеринг текста с помощью фильтра atnialias. Все операции рисования могут быть трансформированы в любую афинную трансформацию (масштаб, вращение, срез (shear), и другие). Это очень схоже с операциями рисования для PostScript и PDF.

Расширение Cairo ставит целью предоставить поддержку для всех официально поддерживаемых шрифтовых и поверхностных бэкендов, а также раскрыть все имеющиеся в Cairo Graphics Library функциональные возможности для пользователей PHP.


Требования

Cairo доступно только в PHP 5.2+ и PHP 5.3+. расширение также требует наличия библиотеки Cairo Graphics Library версии 1.4 и выше. Библиотека Cairo Graphics Library использует схему четное/нечетное для обозначения стабильных и нестабильных версий. И те и те могут быть использованы с этим расширением, но поддержка новых возможностей включается только для стабильных версий. Самые свежие версии можно найти по ссылке » http://cairographics.org/.

Бинарный файл для Windows, так же как и исходные кода, доступны по ссылке » http://cairographics.org/download/.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/cairo.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Замечания специфичные для Windows

Бинарные сборки расширения доступны тут » http://cairographics.org/download/. Загрузите корректный архив zip, скопируйте php_cairo.dll в директорию с расширениями и разрешите его использование в php.ini. Убедитесь, что совпадают минорные версии PHP (5.2, 5.3), потокобезопасность (Thread Safe TS или Non-Thread Safe NTS), архитектура (x86 или x64), и версия компилятора (VC6 or VC9).


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

CAIRO_STATUS_SUCCESS (integer)
CAIRO_STATUS_NO_MEMORY (integer)
CAIRO_STATUS_INVALID_RESTORE (integer)
CAIRO_STATUS_INVALID_POP_GROUP (integer)
CAIRO_STATUS_NO_CURRENT_POINT (integer)
CAIRO_STATUS_INVALID_MATRIX (integer)
CAIRO_STATUS_INVALID_STATUS (integer)
CAIRO_STATUS_NULL_POINTER (integer)
CAIRO_STATUS_INVALID_STRING (integer)
CAIRO_STATUS_INVALID_PATH_DATA (integer)
CAIRO_STATUS_READ_ERROR (integer)
CAIRO_STATUS_WRITE_ERROR (integer)
CAIRO_STATUS_SURFACE_FINISHED (integer)
CAIRO_STATUS_SURFACE_TYPE_MISMATCH (integer)
CAIRO_STATUS_PATTERN_TYPE_MISMATCH (integer)
CAIRO_STATUS_INVALID_CONTENT (integer)
CAIRO_STATUS_INVALID_FORMAT (integer)
CAIRO_STATUS_INVALID_VISUAL (integer)
CAIRO_STATUS_FILE_NOT_FOUND (integer)
CAIRO_STATUS_INVALID_DASH (integer)
CAIRO_STATUS_INVALID_DSC_COMMENT (integer)
CAIRO_STATUS_INVALID_INDEX (integer)
CAIRO_STATUS_CLIP_NOT_REPRESENTABLE (integer)
CAIRO_STATUS_TEMP_FILE_ERROR (integer)
CAIRO_STATUS_INVALID_STRIDE (integer)
CAIRO_ANTIALIAS_DEFAULT (integer)
CAIRO_ANTIALIAS_NONE (integer)
CAIRO_ANTIALIAS_GRAY (integer)
CAIRO_ANTIALIAS_SUBPIXEL (integer)
CAIRO_SUBPIXEL_ORDER_DEFAULT (integer)
CAIRO_SUBPIXEL_ORDER_RGB (integer)
CAIRO_SUBPIXEL_ORDER_BGR (integer)
CAIRO_SUBPIXEL_ORDER_VRGB (integer)
CAIRO_SUBPIXEL_ORDER_VBGR (integer)
CAIRO_FILL_RULE_WINDING (integer)
CAIRO_FILL_RULE_EVEN_ODD (integer)
CAIRO_LINE_CAP_BUTT (integer)
CAIRO_LINE_CAP_ROUND (integer)
CAIRO_LINE_CAP_SQUARE (integer)
CAIRO_LINE_JOIN_MITER (integer)
CAIRO_LINE_JOIN_ROUND (integer)
CAIRO_LINE_JOIN_BEVEL (integer)
CAIRO_OPERATOR_CLEAR (integer)
CAIRO_OPERATOR_SOURCE (integer)
CAIRO_OPERATOR_OVER (integer)
CAIRO_OPERATOR_IN (integer)
CAIRO_OPERATOR_OUT (integer)
CAIRO_OPERATOR_ATOP (integer)
CAIRO_OPERATOR_DEST (integer)
CAIRO_OPERATOR_DEST_OVER (integer)
CAIRO_OPERATOR_DEST_IN (integer)
CAIRO_OPERATOR_DEST_OUT (integer)
CAIRO_OPERATOR_DEST_ATOP (integer)
CAIRO_OPERATOR_XOR (integer)
CAIRO_OPERATOR_ADD (integer)
CAIRO_OPERATOR_SATURATE (integer)
CAIRO_PATTERN_TYPE_SOLID (integer)
CAIRO_PATTERN_TYPE_SURFACE (integer)
CAIRO_PATTERN_TYPE_LINEAR (integer)
CAIRO_PATTERN_TYPE_RADIAL (integer)
CAIRO_EXTEND_NONE (integer)
CAIRO_EXTEND_REPEAT (integer)
CAIRO_EXTEND_REFLECT (integer)
CAIRO_EXTEND_PAD (integer)
CAIRO_FILTER_FAST (integer)
CAIRO_FILTER_GOOD (integer)
CAIRO_FILTER_BEST (integer)
CAIRO_FILTER_NEAREST (integer)
CAIRO_FILTER_BILINEAR (integer)
CAIRO_FILTER_GAUSSIAN (integer)
CAIRO_HINT_STYLE_DEFAULT (integer)
CAIRO_HINT_STYLE_NONE (integer)
CAIRO_HINT_STYLE_SLIGHT (integer)
CAIRO_HINT_STYLE_MEDIUM (integer)
CAIRO_HINT_STYLE_FULL (integer)
CAIRO_HINT_METRICS_DEFAULT (integer)
CAIRO_HINT_METRICS_OFF (integer)
CAIRO_HINT_METRICS_ON (integer)
CAIRO_FONT_TYPE_TOY (integer)
CAIRO_FONT_TYPE_FT (integer)
CAIRO_FONT_TYPE_WIN32 (integer)
CAIRO_FONT_TYPE_QUARTZ (integer)
CAIRO_FONT_SLANT_NORMAL (integer)
CAIRO_FONT_SLANT_ITALIC (integer)
CAIRO_FONT_SLANT_OBLIQUE (integer)
CAIRO_FONT_WEIGHT_NORMAL (integer)
CAIRO_FONT_WEIGHT_BOLD (integer)
CAIRO_CONTENT_COLOR (integer)
CAIRO_CONTENT_ALPHA (integer)
CAIRO_CONTENT_COLOR_ALPHA (integer)
CAIRO_SURFACE_TYPE_IMAGE (integer)
CAIRO_SURFACE_TYPE_PDF (integer)
CAIRO_SURFACE_TYPE_PS (integer)
CAIRO_SURFACE_TYPE_XLIB (integer)
CAIRO_SURFACE_TYPE_XCB (integer)
CAIRO_SURFACE_TYPE_GLITZ (integer)
CAIRO_SURFACE_TYPE_QUARTZ (integer)
CAIRO_SURFACE_TYPE_WIN32 (integer)
CAIRO_SURFACE_TYPE_BEOS (integer)
CAIRO_SURFACE_TYPE_DIRECTFB (integer)
CAIRO_SURFACE_TYPE_SVG (integer)
CAIRO_SURFACE_TYPE_OS2 (integer)
CAIRO_SURFACE_TYPE_WIN32_PRINTING (integer)
CAIRO_SURFACE_TYPE_QUARTZ_IMAGE (integer)
CAIRO_FORMAT_ARGB32 (integer)
CAIRO_FORMAT_RGB24 (integer)
CAIRO_FORMAT_A8 (integer)
CAIRO_FORMAT_A1 (integer)
CAIRO_PS_LEVEL_2 (integer)
CAIRO_PS_LEVEL_3 (integer)
CAIRO_SVG_VERSION_1_1 (integer)
CAIRO_SVG_VERSION_1_2 (integer)


Примеры

Здесь будет описание...

Пример #1 Пример использования Cairo

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Cairo

Содержание

  • cairo_create — Returns a new CairoContext object on the requested surface.
  • cairo_font_face_get_type — Description
  • cairo_font_face_status — Description
  • cairo_font_options_create — Description
  • cairo_font_options_equal — Description
  • cairo_font_options_get_antialias — Description
  • cairo_font_options_get_hint_metrics — Description
  • cairo_font_options_get_hint_style — Description
  • cairo_font_options_get_subpixel_order — Description
  • cairo_font_options_hash — Description
  • cairo_font_options_merge — Description
  • cairo_font_options_set_antialias — Description
  • cairo_font_options_set_hint_metrics — Description
  • cairo_font_options_set_hint_style — Description
  • cairo_font_options_set_subpixel_order — Description
  • cairo_font_options_status — Description
  • cairo_format_stride_for_width — Description
  • cairo_image_surface_create_for_data — Description
  • cairo_image_surface_create_from_png — Description
  • cairo_image_surface_create — Description
  • cairo_image_surface_get_data — Description
  • cairo_image_surface_get_format — Description
  • cairo_image_surface_get_height — Description
  • cairo_image_surface_get_stride — Description
  • cairo_image_surface_get_width — Description
  • cairo_matrix_create_scale — Псевдоним CairoMatrix::initScale
  • cairo_matrix_create_translate — Псевдоним CairoMatrix::initTranslate
  • cairo_matrix_invert — Description
  • cairo_matrix_multiply — Description
  • cairo_matrix_rotate — Description
  • cairo_matrix_transform_distance — Description
  • cairo_matrix_transform_point — Description
  • cairo_matrix_translate — Description
  • cairo_pattern_add_color_stop_rgb — Description
  • cairo_pattern_add_color_stop_rgba — Description
  • cairo_pattern_create_for_surface — Description
  • cairo_pattern_create_linear — Description
  • cairo_pattern_create_radial — Description
  • cairo_pattern_create_rgb — Description
  • cairo_pattern_create_rgba — Description
  • cairo_pattern_get_color_stop_count — Description
  • cairo_pattern_get_color_stop_rgba — Description
  • cairo_pattern_get_extend — Description
  • cairo_pattern_get_filter — Description
  • cairo_pattern_get_linear_points — Description
  • cairo_pattern_get_matrix — Description
  • cairo_pattern_get_radial_circles — Description
  • cairo_pattern_get_rgba — Description
  • cairo_pattern_get_surface — Description
  • cairo_pattern_get_type — Description
  • cairo_pattern_set_extend — Description
  • cairo_pattern_set_filter — Description
  • cairo_pattern_set_matrix — Description
  • cairo_pattern_status — Description
  • cairo_pdf_surface_create — Description
  • cairo_pdf_surface_set_size — Description
  • cairo_ps_get_levels — Description
  • cairo_ps_level_to_string — Description
  • cairo_ps_surface_create — Description
  • cairo_ps_surface_dsc_begin_page_setup — Description
  • cairo_ps_surface_dsc_begin_setup — Description
  • cairo_ps_surface_dsc_comment — Description
  • cairo_ps_surface_get_eps — Description
  • cairo_ps_surface_restrict_to_level — Description
  • cairo_ps_surface_set_eps — Description
  • cairo_ps_surface_set_size — Description
  • cairo_scaled_font_create — Description
  • cairo_scaled_font_extents — Description
  • cairo_scaled_font_get_ctm — Description
  • cairo_scaled_font_get_font_face — Description
  • cairo_scaled_font_get_font_matrix — Description
  • cairo_scaled_font_get_font_options — Description
  • cairo_scaled_font_get_scale_matrix — Description
  • cairo_scaled_font_get_type — Description
  • cairo_scaled_font_glyph_extents — Description
  • cairo_scaled_font_status — Description
  • cairo_scaled_font_text_extents — Description
  • cairo_surface_copy_page — Description
  • cairo_surface_create_similar — Description
  • cairo_surface_finish — Description
  • cairo_surface_flush — Description
  • cairo_surface_get_content — Description
  • cairo_surface_get_device_offset — Description
  • cairo_surface_get_font_options — Description
  • cairo_surface_get_type — Description
  • cairo_surface_mark_dirty_rectangle — Description
  • cairo_surface_mark_dirty — Description
  • cairo_surface_set_device_offset — Description
  • cairo_surface_set_fallback_resolution — Description
  • cairo_surface_show_page — Description
  • cairo_surface_status — Description
  • cairo_surface_write_to_png — Description
  • cairo_svg_surface_create — Description
  • cairo_svg_surface_restrict_to_version — Description
  • cairo_svg_version_to_string — Description


Returns a new CairoContext object on the requested surface.

  • « Cairo
  • cairo_font_face_get_type »
  • PHP Manual
  • Cairo
  • Returns a new CairoContext object on the requested surface.

cairo_create

(PECL cairo >= 0.1.0)

cairo_create — Returns a new CairoContext object on the requested surface.

Описание

CairoContext cairo_create ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_create() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_create
  • cairo_font_face_status »
  • PHP Manual
  • Cairo
  • Description

cairo_font_face_get_type

(PECL cairo >= 0.1.0)

cairo_font_face_get_type — Description

Описание

int cairo_font_face_get_type ( CairoFontFace $fontface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fontface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_face_get_type() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_face_get_type
  • cairo_font_options_create »
  • PHP Manual
  • Cairo
  • Description

cairo_font_face_status

(PECL cairo >= 0.1.0)

cairo_font_face_status — Description

Описание

int cairo_font_face_status ( CairoFontFace $fontface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fontface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_face_status() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_face_status
  • cairo_font_options_equal »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_create

(PECL cairo >= 0.1.0)

cairo_font_options_create — Description

Описание

CairoFontOptions cairo_font_options_create ( void )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_create() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_create
  • cairo_font_options_get_antialias »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_equal

(PECL cairo >= 0.1.0)

cairo_font_options_equal — Description

Описание

bool cairo_font_options_equal ( CairoFontOptions $options , CairoFontOptions $other )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

other

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_equal() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_equal
  • cairo_font_options_get_hint_metrics »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_get_antialias

(PECL cairo >= 0.1.0)

cairo_font_options_get_antialias — Description

Описание

int cairo_font_options_get_antialias ( CairoFontOptions $options )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_get_antialias() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_get_antialias
  • cairo_font_options_get_hint_style »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_get_hint_metrics

(PECL cairo >= 0.1.0)

cairo_font_options_get_hint_metrics — Description

Описание

int cairo_font_options_get_hint_metrics ( CairoFontOptions $options )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_get_hint_metrics() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_get_hint_metrics
  • cairo_font_options_get_subpixel_order »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_get_hint_style

(PECL cairo >= 0.1.0)

cairo_font_options_get_hint_style — Description

Описание

int cairo_font_options_get_hint_style ( CairoFontOptions $options )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_get_hint_style() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_get_hint_style
  • cairo_font_options_hash »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_get_subpixel_order

(PECL cairo >= 0.1.0)

cairo_font_options_get_subpixel_order — Description

Описание

int cairo_font_options_get_subpixel_order ( CairoFontOptions $options )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_get_subpixel_order() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_get_subpixel_order
  • cairo_font_options_merge »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_hash

(PECL cairo >= 0.1.0)

cairo_font_options_hash — Description

Описание

int cairo_font_options_hash ( CairoFontOptions $options )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_hash() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_hash
  • cairo_font_options_set_antialias »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_merge

(PECL cairo >= 0.1.0)

cairo_font_options_merge — Description

Описание

void cairo_font_options_merge ( CairoFontOptions $options , CairoFontOptions $other )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

other

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_merge() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_merge
  • cairo_font_options_set_hint_metrics »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_set_antialias

(PECL cairo >= 0.1.0)

cairo_font_options_set_antialias — Description

Описание

void cairo_font_options_set_antialias ( CairoFontOptions $options , int $antialias )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

antialias

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_set_antialias() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_set_antialias
  • cairo_font_options_set_hint_style »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_set_hint_metrics

(PECL cairo >= 0.1.0)

cairo_font_options_set_hint_metrics — Description

Описание

void cairo_font_options_set_hint_metrics ( CairoFontOptions $options , int $hint_metrics )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

hint_metrics

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_set_hint_metrics() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_set_hint_metrics
  • cairo_font_options_set_subpixel_order »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_set_hint_style

(PECL cairo >= 0.1.0)

cairo_font_options_set_hint_style — Description

Описание

void cairo_font_options_set_hint_style ( CairoFontOptions $options , int $hint_style )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

hint_style

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_set_hint_style() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_set_hint_style
  • cairo_font_options_status »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_set_subpixel_order

(PECL cairo >= 0.1.0)

cairo_font_options_set_subpixel_order — Description

Описание

void cairo_font_options_set_subpixel_order ( CairoFontOptions $options , int $subpixel_order )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

subpixel_order

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_set_subpixel_order() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_set_subpixel_order
  • cairo_format_stride_for_width »
  • PHP Manual
  • Cairo
  • Description

cairo_font_options_status

(PECL cairo >= 0.1.0)

cairo_font_options_status — Description

Описание

int cairo_font_options_status ( CairoFontOptions $options )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

options

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_font_options_status() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_font_options_status
  • cairo_image_surface_create_for_data »
  • PHP Manual
  • Cairo
  • Description

cairo_format_stride_for_width

(PECL cairo >= 0.1.0)

cairo_format_stride_for_width — Description

Описание

int cairo_format_stride_for_width ( int $format , int $width )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

format

Description...

width

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_format_stride_for_width() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_format_stride_for_width
  • cairo_image_surface_create_from_png »
  • PHP Manual
  • Cairo
  • Description

cairo_image_surface_create_for_data

(PECL cairo >= 0.1.0)

cairo_image_surface_create_for_data — Description

Описание

CairoImageSurface cairo_image_surface_create_for_data ( string $data , int $format , int $width , int $height [, int $stride = -1 ] )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Description...

format

Description...

width

Description...

height

Description...

stride

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_image_surface_create_for_data() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_image_surface_create_for_data
  • cairo_image_surface_create »
  • PHP Manual
  • Cairo
  • Description

cairo_image_surface_create_from_png

(PECL cairo >= 0.1.0)

cairo_image_surface_create_from_png — Description

Описание

CairoImageSurface cairo_image_surface_create_from_png ( string $file )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_image_surface_create_from_png() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_image_surface_create_from_png
  • cairo_image_surface_get_data »
  • PHP Manual
  • Cairo
  • Description

cairo_image_surface_create

(PECL cairo >= 0.1.0)

cairo_image_surface_create — Description

Описание

CairoImageSurface cairo_image_surface_create ( int $format , int $width , int $height )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

format

Description...

width

Description...

height

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_image_surface_create() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_image_surface_create
  • cairo_image_surface_get_format »
  • PHP Manual
  • Cairo
  • Description

cairo_image_surface_get_data

(PECL cairo >= 0.1.0)

cairo_image_surface_get_data — Description

Описание

string cairo_image_surface_get_data ( CairoImageSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_image_surface_get_data() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_image_surface_get_data
  • cairo_image_surface_get_height »
  • PHP Manual
  • Cairo
  • Description

cairo_image_surface_get_format

(PECL cairo >= 0.1.0)

cairo_image_surface_get_format — Description

Описание

int cairo_image_surface_get_format ( CairoImageSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_image_surface_get_format() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_image_surface_get_format
  • cairo_image_surface_get_stride »
  • PHP Manual
  • Cairo
  • Description

cairo_image_surface_get_height

(PECL cairo >= 0.1.0)

cairo_image_surface_get_height — Description

Описание

int cairo_image_surface_get_height ( CairoImageSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_image_surface_get_height() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_image_surface_get_height
  • cairo_image_surface_get_width »
  • PHP Manual
  • Cairo
  • Description

cairo_image_surface_get_stride

(PECL cairo >= 0.1.0)

cairo_image_surface_get_stride — Description

Описание

int cairo_image_surface_get_stride ( CairoImageSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_image_surface_get_stride() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_image_surface_get_stride
  • cairo_matrix_create_scale »
  • PHP Manual
  • Cairo
  • Description

cairo_image_surface_get_width

(PECL cairo >= 0.1.0)

cairo_image_surface_get_width — Description

Описание

int cairo_image_surface_get_width ( CairoImageSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_image_surface_get_width() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Псевдоним CairoMatrix::initScale

  • « cairo_image_surface_get_width
  • cairo_matrix_create_translate »
  • PHP Manual
  • Cairo
  • Псевдоним CairoMatrix::initScale

cairo_matrix_create_scale

(PECL cairo >= 0.1.0)

cairo_matrix_create_scale — Псевдоним CairoMatrix::initScale()

Описание

Эта функция является псевдонимом: CairoMatrix::initScale().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Псевдоним CairoMatrix::initTranslate

  • « cairo_matrix_create_scale
  • cairo_matrix_invert »
  • PHP Manual
  • Cairo
  • Псевдоним CairoMatrix::initTranslate

cairo_matrix_create_translate

(PECL cairo >= 0.1.0)

cairo_matrix_create_translate — Псевдоним CairoMatrix::initTranslate()

Описание

Эта функция является псевдонимом: CairoMatrix::initTranslate().

Эта функция-псевдоним устарела и существует только по причине обратной совместимости. Использование этой функции не рекомендуется, так как в будущем она может быть удалена из PHP.


Description

  • « cairo_matrix_create_translate
  • cairo_matrix_multiply »
  • PHP Manual
  • Cairo
  • Description

cairo_matrix_invert

(PECL cairo >= 0.1.0)

cairo_matrix_invert — Description

Описание

void cairo_matrix_invert ( CairoMatrix $matrix )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_matrix_invert() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_matrix_invert
  • cairo_matrix_rotate »
  • PHP Manual
  • Cairo
  • Description

cairo_matrix_multiply

(PECL cairo >= 0.1.0)

cairo_matrix_multiply — Description

Описание

CairoMatrix cairo_matrix_multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix1

Description...

matrix2

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_matrix_multiply() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_matrix_multiply
  • cairo_matrix_transform_distance »
  • PHP Manual
  • Cairo
  • Description

cairo_matrix_rotate

(PECL cairo >= 0.1.0)

cairo_matrix_rotate — Description

Описание

void cairo_matrix_rotate ( CairoMatrix $matrix , float $radians )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix

Description...

radians

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_matrix_rotate() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_matrix_rotate
  • cairo_matrix_transform_point »
  • PHP Manual
  • Cairo
  • Description

cairo_matrix_transform_distance

(PECL cairo >= 0.1.0)

cairo_matrix_transform_distance — Description

Описание

array cairo_matrix_transform_distance ( CairoMatrix $matrix , float $dx , float $dy )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix

Description...

dx

Description...

dy

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_matrix_transform_distance() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_matrix_transform_distance
  • cairo_matrix_translate »
  • PHP Manual
  • Cairo
  • Description

cairo_matrix_transform_point

(PECL cairo >= 0.1.0)

cairo_matrix_transform_point — Description

Описание

array cairo_matrix_transform_point ( CairoMatrix $matrix , float $dx , float $dy )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix

Description...

dx

Description...

dy

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_matrix_transform_point() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_matrix_transform_point
  • cairo_pattern_add_color_stop_rgb »
  • PHP Manual
  • Cairo
  • Description

cairo_matrix_translate

(PECL cairo >= 0.1.0)

cairo_matrix_translate — Description

Описание

void cairo_matrix_translate ( CairoMatrix $matrix , float $tx , float $ty )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix

Description...

tx

Description...

ty

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_matrix_translate() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_matrix_translate
  • cairo_pattern_add_color_stop_rgba »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_add_color_stop_rgb

(PECL cairo >= 0.1.0)

cairo_pattern_add_color_stop_rgb — Description

Описание

void cairo_pattern_add_color_stop_rgb ( CairoGradientPattern $pattern , float $offset , float $red , float $green , float $blue )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

offset

Description...

red

Description...

green

Description...

blue

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_add_color_stop_rgb() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_add_color_stop_rgb
  • cairo_pattern_create_for_surface »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_add_color_stop_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_add_color_stop_rgba — Description

Описание

void cairo_pattern_add_color_stop_rgba ( CairoGradientPattern $pattern , float $offset , float $red , float $green , float $blue , float $alpha )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

offset

Description...

red

Description...

green

Description...

blue

Description...

alpha

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_add_color_stop_rgba() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_add_color_stop_rgba
  • cairo_pattern_create_linear »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_create_for_surface

(PECL cairo >= 0.1.0)

cairo_pattern_create_for_surface — Description

Описание

CairoPattern cairo_pattern_create_for_surface ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_create_for_surface() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_create_for_surface
  • cairo_pattern_create_radial »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_create_linear

(PECL cairo >= 0.1.0)

cairo_pattern_create_linear — Description

Описание

CairoPattern cairo_pattern_create_linear ( float $x0 , float $y0 , float $x1 , float $y1 )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x0

Description...

y0

Description...

x1

Description...

y1

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_create_linear() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_create_linear
  • cairo_pattern_create_rgb »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_create_radial

(PECL cairo >= 0.1.0)

cairo_pattern_create_radial — Description

Описание

CairoPattern cairo_pattern_create_radial ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x0

Description...

y0

Description...

r0

Description...

x1

Description...

y1

Description...

r1

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_create_radial() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_create_radial
  • cairo_pattern_create_rgba »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_create_rgb

(PECL cairo >= 0.1.0)

cairo_pattern_create_rgb — Description

Описание

CairoPattern cairo_pattern_create_rgb ( float $red , float $green , float $blue )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

red

Description...

green

Description...

blue

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_create_rgb() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_create_rgb
  • cairo_pattern_get_color_stop_count »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_create_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_create_rgba — Description

Описание

CairoPattern cairo_pattern_create_rgba ( float $red , float $green , float $blue , float $alpha )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

red

Description...

green

Description...

blue

Description...

alpha

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_create_rgba() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_create_rgba
  • cairo_pattern_get_color_stop_rgba »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_get_color_stop_count

(PECL cairo >= 0.1.0)

cairo_pattern_get_color_stop_count — Description

Описание

int cairo_pattern_get_color_stop_count ( CairoGradientPattern $pattern )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_get_color_stop_count() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_get_color_stop_count
  • cairo_pattern_get_extend »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_get_color_stop_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_get_color_stop_rgba — Description

Описание

array cairo_pattern_get_color_stop_rgba ( CairoGradientPattern $pattern , int $index )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

index

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_get_color_stop_rgba() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_get_color_stop_rgba
  • cairo_pattern_get_filter »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_get_extend

(PECL cairo >= 0.1.0)

cairo_pattern_get_extend — Description

Описание

int cairo_pattern_get_extend ( string $pattern )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_get_extend() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_get_extend
  • cairo_pattern_get_linear_points »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_get_filter

(PECL cairo >= 0.1.0)

cairo_pattern_get_filter — Description

Описание

int cairo_pattern_get_filter ( CairoSurfacePattern $pattern )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_get_filter() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_get_filter
  • cairo_pattern_get_matrix »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_get_linear_points

(PECL cairo >= 0.1.0)

cairo_pattern_get_linear_points — Description

Описание

array cairo_pattern_get_linear_points ( CairoLinearGradient $pattern )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_get_linear_points() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_get_linear_points
  • cairo_pattern_get_radial_circles »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_get_matrix

(PECL cairo >= 0.1.0)

cairo_pattern_get_matrix — Description

Описание

CairoMatrix cairo_pattern_get_matrix ( CairoPattern $pattern )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_get_matrix() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_get_matrix
  • cairo_pattern_get_rgba »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_get_radial_circles

(PECL cairo >= 0.1.0)

cairo_pattern_get_radial_circles — Description

Описание

array cairo_pattern_get_radial_circles ( CairoRadialGradient $pattern )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_get_radial_circles() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_get_radial_circles
  • cairo_pattern_get_surface »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_get_rgba

(PECL cairo >= 0.1.0)

cairo_pattern_get_rgba — Description

Описание

array cairo_pattern_get_rgba ( CairoSolidPattern $pattern )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_get_rgba() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_get_rgba
  • cairo_pattern_get_type »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_get_surface

(PECL cairo >= 0.1.0)

cairo_pattern_get_surface — Description

Описание

CairoSurface cairo_pattern_get_surface ( CairoSurfacePattern $pattern )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_get_surface() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_get_surface
  • cairo_pattern_set_extend »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_get_type

(PECL cairo >= 0.1.0)

cairo_pattern_get_type — Description

Описание

int cairo_pattern_get_type ( CairoPattern $pattern )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_get_type() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_get_type
  • cairo_pattern_set_filter »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_set_extend

(PECL cairo >= 0.1.0)

cairo_pattern_set_extend — Description

Описание

void cairo_pattern_set_extend ( string $pattern , string $extend )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

extend

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_set_extend() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_set_extend
  • cairo_pattern_set_matrix »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_set_filter

(PECL cairo >= 0.1.0)

cairo_pattern_set_filter — Description

Описание

void cairo_pattern_set_filter ( CairoSurfacePattern $pattern , int $filter )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

filter

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_set_filter() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_set_filter
  • cairo_pattern_status »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_set_matrix

(PECL cairo >= 0.1.0)

cairo_pattern_set_matrix — Description

Описание

void cairo_pattern_set_matrix ( CairoPattern $pattern , CairoMatrix $matrix )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

matrix

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_set_matrix() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_set_matrix
  • cairo_pdf_surface_create »
  • PHP Manual
  • Cairo
  • Description

cairo_pattern_status

(PECL cairo >= 0.1.0)

cairo_pattern_status — Description

Описание

int cairo_pattern_status ( CairoPattern $pattern )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pattern

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pattern_status() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pattern_status
  • cairo_pdf_surface_set_size »
  • PHP Manual
  • Cairo
  • Description

cairo_pdf_surface_create

(PECL cairo >= 0.1.0)

cairo_pdf_surface_create — Description

Описание

CairoPdfSurface cairo_pdf_surface_create ( string $file , float $width , float $height )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Description...

width

Description...

height

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pdf_surface_create() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pdf_surface_create
  • cairo_ps_get_levels »
  • PHP Manual
  • Cairo
  • Description

cairo_pdf_surface_set_size

(PECL cairo >= 0.1.0)

cairo_pdf_surface_set_size — Description

Описание

void cairo_pdf_surface_set_size ( CairoPdfSurface $surface , float $width , float $height )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

width

Description...

height

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_pdf_surface_set_size() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_pdf_surface_set_size
  • cairo_ps_level_to_string »
  • PHP Manual
  • Cairo
  • Description

cairo_ps_get_levels

(PECL cairo >= 0.1.0)

cairo_ps_get_levels — Description

Описание

array cairo_ps_get_levels ( void )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_ps_get_levels() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_ps_get_levels
  • cairo_ps_surface_create »
  • PHP Manual
  • Cairo
  • Description

cairo_ps_level_to_string

(PECL cairo >= 0.1.0)

cairo_ps_level_to_string — Description

Описание

string cairo_ps_level_to_string ( int $level )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_ps_level_to_string() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_ps_level_to_string
  • cairo_ps_surface_dsc_begin_page_setup »
  • PHP Manual
  • Cairo
  • Description

cairo_ps_surface_create

(PECL cairo >= 0.1.0)

cairo_ps_surface_create — Description

Описание

CairoPsSurface cairo_ps_surface_create ( string $file , float $width , float $height )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Description...

width

Description...

height

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_ps_surface_create() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_ps_surface_create
  • cairo_ps_surface_dsc_begin_setup »
  • PHP Manual
  • Cairo
  • Description

cairo_ps_surface_dsc_begin_page_setup

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_begin_page_setup — Description

Описание

void cairo_ps_surface_dsc_begin_page_setup ( CairoPsSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_ps_surface_dsc_begin_page_setup() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_ps_surface_dsc_begin_page_setup
  • cairo_ps_surface_dsc_comment »
  • PHP Manual
  • Cairo
  • Description

cairo_ps_surface_dsc_begin_setup

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_begin_setup — Description

Описание

void cairo_ps_surface_dsc_begin_setup ( CairoPsSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_ps_surface_dsc_begin_setup() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_ps_surface_dsc_begin_setup
  • cairo_ps_surface_get_eps »
  • PHP Manual
  • Cairo
  • Description

cairo_ps_surface_dsc_comment

(PECL cairo >= 0.1.0)

cairo_ps_surface_dsc_comment — Description

Описание

void cairo_ps_surface_dsc_comment ( CairoPsSurface $surface , string $comment )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

comment

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_ps_surface_dsc_comment() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_ps_surface_dsc_comment
  • cairo_ps_surface_restrict_to_level »
  • PHP Manual
  • Cairo
  • Description

cairo_ps_surface_get_eps

(PECL cairo >= 0.1.0)

cairo_ps_surface_get_eps — Description

Описание

bool cairo_ps_surface_get_eps ( CairoPsSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_ps_surface_get_eps() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_ps_surface_get_eps
  • cairo_ps_surface_set_eps »
  • PHP Manual
  • Cairo
  • Description

cairo_ps_surface_restrict_to_level

(PECL cairo >= 0.1.0)

cairo_ps_surface_restrict_to_level — Description

Описание

void cairo_ps_surface_restrict_to_level ( CairoPsSurface $surface , int $level )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

level

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_ps_surface_restrict_to_level() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_ps_surface_restrict_to_level
  • cairo_ps_surface_set_size »
  • PHP Manual
  • Cairo
  • Description

cairo_ps_surface_set_eps

(PECL cairo >= 0.1.0)

cairo_ps_surface_set_eps — Description

Описание

void cairo_ps_surface_set_eps ( CairoPsSurface $surface , bool $level )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

level

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_ps_surface_set_eps() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_ps_surface_set_eps
  • cairo_scaled_font_create »
  • PHP Manual
  • Cairo
  • Description

cairo_ps_surface_set_size

(PECL cairo >= 0.1.0)

cairo_ps_surface_set_size — Description

Описание

void cairo_ps_surface_set_size ( CairoPsSurface $surface , float $width , float $height )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

width

Description...

height

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_ps_surface_set_size() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_ps_surface_set_size
  • cairo_scaled_font_extents »
  • PHP Manual
  • Cairo
  • Description

cairo_scaled_font_create

(PECL cairo >= 0.1.0)

cairo_scaled_font_create — Description

Описание

CairoScaledFont cairo_scaled_font_create ( CairoFontFace $fontface , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $fontoptions )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

fontface

Description...

matrix

Description...

ctm

Description...

fontoptions

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_scaled_font_create() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_scaled_font_create
  • cairo_scaled_font_get_ctm »
  • PHP Manual
  • Cairo
  • Description

cairo_scaled_font_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_extents — Description

Описание

array cairo_scaled_font_extents ( CairoScaledFont $scaledfont )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_scaled_font_extents() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_scaled_font_extents
  • cairo_scaled_font_get_font_face »
  • PHP Manual
  • Cairo
  • Description

cairo_scaled_font_get_ctm

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_ctm — Description

Описание

CairoMatrix cairo_scaled_font_get_ctm ( CairoScaledFont $scaledfont )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_scaled_font_get_ctm() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_scaled_font_get_ctm
  • cairo_scaled_font_get_font_matrix »
  • PHP Manual
  • Cairo
  • Description

cairo_scaled_font_get_font_face

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_face — Description

Описание

CairoFontFace cairo_scaled_font_get_font_face ( CairoScaledFont $scaledfont )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_scaled_font_get_font_face() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_scaled_font_get_font_face
  • cairo_scaled_font_get_font_options »
  • PHP Manual
  • Cairo
  • Description

cairo_scaled_font_get_font_matrix

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_matrix — Description

Описание

CairoFontOptions cairo_scaled_font_get_font_matrix ( CairoScaledFont $scaledfont )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_scaled_font_get_font_matrix() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_scaled_font_get_font_matrix
  • cairo_scaled_font_get_scale_matrix »
  • PHP Manual
  • Cairo
  • Description

cairo_scaled_font_get_font_options

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_font_options — Description

Описание

CairoFontOptions cairo_scaled_font_get_font_options ( CairoScaledFont $scaledfont )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_scaled_font_get_font_options() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_scaled_font_get_font_options
  • cairo_scaled_font_get_type »
  • PHP Manual
  • Cairo
  • Description

cairo_scaled_font_get_scale_matrix

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_scale_matrix — Description

Описание

CairoMatrix cairo_scaled_font_get_scale_matrix ( CairoScaledFont $scaledfont )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_scaled_font_get_scale_matrix() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_scaled_font_get_scale_matrix
  • cairo_scaled_font_glyph_extents »
  • PHP Manual
  • Cairo
  • Description

cairo_scaled_font_get_type

(PECL cairo >= 0.1.0)

cairo_scaled_font_get_type — Description

Описание

int cairo_scaled_font_get_type ( CairoScaledFont $scaledfont )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_scaled_font_get_type() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_scaled_font_get_type
  • cairo_scaled_font_status »
  • PHP Manual
  • Cairo
  • Description

cairo_scaled_font_glyph_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_glyph_extents — Description

Описание

array cairo_scaled_font_glyph_extents ( CairoScaledFont $scaledfont , array $glyphs )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Description...

glyphs

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_scaled_font_glyph_extents() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_scaled_font_glyph_extents
  • cairo_scaled_font_text_extents »
  • PHP Manual
  • Cairo
  • Description

cairo_scaled_font_status

(PECL cairo >= 0.1.0)

cairo_scaled_font_status — Description

Описание

int cairo_scaled_font_status ( CairoScaledFont $scaledfont )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_scaled_font_status() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_scaled_font_status
  • cairo_surface_copy_page »
  • PHP Manual
  • Cairo
  • Description

cairo_scaled_font_text_extents

(PECL cairo >= 0.1.0)

cairo_scaled_font_text_extents — Description

Описание

array cairo_scaled_font_text_extents ( CairoScaledFont $scaledfont , string $text )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

scaledfont

Description...

text

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_scaled_font_text_extents() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_scaled_font_text_extents
  • cairo_surface_create_similar »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_copy_page

(PECL cairo >= 0.1.0)

cairo_surface_copy_page — Description

Описание

void cairo_surface_copy_page ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_copy_page() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_copy_page
  • cairo_surface_finish »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_create_similar

(PECL cairo >= 0.1.0)

cairo_surface_create_similar — Description

Описание

CairoSurface cairo_surface_create_similar ( CairoSurface $surface , int $content , float $width , float $height )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

content

Description...

width

Description...

height

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_create_similar() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_create_similar
  • cairo_surface_flush »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_finish

(PECL cairo >= 0.1.0)

cairo_surface_finish — Description

Описание

void cairo_surface_finish ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_finish() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_finish
  • cairo_surface_get_content »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_flush

(PECL cairo >= 0.1.0)

cairo_surface_flush — Description

Описание

void cairo_surface_flush ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_flush() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_flush
  • cairo_surface_get_device_offset »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_get_content

(PECL cairo >= 0.1.0)

cairo_surface_get_content — Description

Описание

int cairo_surface_get_content ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_get_content() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_get_content
  • cairo_surface_get_font_options »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_get_device_offset

(PECL cairo >= 0.1.0)

cairo_surface_get_device_offset — Description

Описание

array cairo_surface_get_device_offset ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_get_device_offset() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_get_device_offset
  • cairo_surface_get_type »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_get_font_options

(PECL cairo >= 0.1.0)

cairo_surface_get_font_options — Description

Описание

CairoFontOptions cairo_surface_get_font_options ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_get_font_options() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_get_font_options
  • cairo_surface_mark_dirty_rectangle »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_get_type

(PECL cairo >= 0.1.0)

cairo_surface_get_type — Description

Описание

int cairo_surface_get_type ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_get_type() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_get_type
  • cairo_surface_mark_dirty »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_mark_dirty_rectangle

(PECL cairo >= 0.1.0)

cairo_surface_mark_dirty_rectangle — Description

Описание

void cairo_surface_mark_dirty_rectangle ( CairoSurface $surface , float $x , float $y , float $width , float $height )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

x

Description...

y

Description...

width

Description...

height

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_mark_dirty_rectangle() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_mark_dirty_rectangle
  • cairo_surface_set_device_offset »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_mark_dirty

(PECL cairo >= 0.1.0)

cairo_surface_mark_dirty — Description

Описание

void cairo_surface_mark_dirty ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_mark_dirty() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_mark_dirty
  • cairo_surface_set_fallback_resolution »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_set_device_offset

(PECL cairo >= 0.1.0)

cairo_surface_set_device_offset — Description

Описание

void cairo_surface_set_device_offset ( CairoSurface $surface , float $x , float $y )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

x

Description...

y

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_set_device_offset() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_set_device_offset
  • cairo_surface_show_page »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_set_fallback_resolution

(PECL cairo >= 0.1.0)

cairo_surface_set_fallback_resolution — Description

Описание

void cairo_surface_set_fallback_resolution ( CairoSurface $surface , float $x , float $y )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

x

Description...

y

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_set_fallback_resolution() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_set_fallback_resolution
  • cairo_surface_status »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_show_page

(PECL cairo >= 0.1.0)

cairo_surface_show_page — Description

Описание

void cairo_surface_show_page ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_show_page() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_show_page
  • cairo_surface_write_to_png »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_status

(PECL cairo >= 0.1.0)

cairo_surface_status — Description

Описание

int cairo_surface_status ( CairoSurface $surface )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_status() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_status
  • cairo_svg_surface_create »
  • PHP Manual
  • Cairo
  • Description

cairo_surface_write_to_png

(PECL cairo >= 0.1.0)

cairo_surface_write_to_png — Description

Описание

void cairo_surface_write_to_png ( CairoSurface $surface , resource $stream )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

stream

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_surface_write_to_png() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_surface_write_to_png
  • cairo_svg_surface_restrict_to_version »
  • PHP Manual
  • Cairo
  • Description

cairo_svg_surface_create

(PECL cairo >= 0.1.0)

cairo_svg_surface_create — Description

Описание

CairoSvgSurface cairo_svg_surface_create ( string $file , float $width , float $height )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Description...

width

Description...

height

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_svg_surface_create() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_svg_surface_create
  • cairo_svg_version_to_string »
  • PHP Manual
  • Cairo
  • Description

cairo_svg_surface_restrict_to_version

(PECL cairo >= 0.1.0)

cairo_svg_surface_restrict_to_version — Description

Описание

void cairo_svg_surface_restrict_to_version ( CairoSvgSurface $surface , int $version )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

version

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_svg_surface_restrict_to_version() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Description

  • « cairo_svg_surface_restrict_to_version
  • Cairo »
  • PHP Manual
  • Cairo
  • Description

cairo_svg_version_to_string

(PECL cairo >= 0.1.0)

cairo_svg_version_to_string — Description

Описание

string cairo_svg_version_to_string ( int $version )

The function description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

version

Description...

Возвращаемые значения

What is returned on success and failure

Ошибки

When does this function issue E_* level errors, and/or throw exceptions.

Примеры

Пример #1 cairo_svg_version_to_string() example

Any text that describes the purpose of the example, or what goes on in the example should be here.

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • related function name here()


Класс Cairo

(PECL cairo >= 0.1.0)

Введение

Простой класс с несколькими вспомогательными статическими методами.

Обзор классов

Cairo {
/* Методы */
public static array availableFonts ( void )
public static array availableSurfaces ( void )
public static string statusToString ( int $status )
public static int version ( void )
public static string versionString ( void )
}

Содержание

  • Cairo::availableFonts — Извлекает доступные типы шрифтов
  • Cairo::availableSurfaces — Извлекает все доступные поверхности (surface)
  • Cairo::statusToString — Возвращает текущий статус в форме текстовой строки
  • Cairo::version — Извлекает версию библиотеки cairo
  • Cairo::versionString — Возвращает версию cairo в форме строки


Извлекает доступные типы шрифтов

  • « Cairo
  • Cairo::availableSurfaces »
  • PHP Manual
  • Cairo
  • Извлекает доступные типы шрифтов

Cairo::availableFonts

cairo_available_fonts

(PECL cairo >= 0.1.0)

Cairo::availableFonts -- cairo_available_fonts — Извлекает доступные типы шрифтов

Описание

Объектно-ориентированный стиль:

public static array Cairo::availableFonts ( void )

Процедурный стиль:

array cairo_available_fonts ( void )

Возвращает массив доступных на бэкенде шрифтов

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив, содержащий все доступные на бэкенде шрифты.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* Object Oriented Style */
var_dump(Cairo::availableFonts());

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  string(5) "WIN32"
  [1]=>
  string(4) "USER"
}

Пример #2 Процедурный стиль

<?php

/* Procedural style */
var_dump(cairo_available_fonts());

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  string(5) "WIN32"
  [1]=>
  string(4) "USER"
}

Смотрите также

  • Cairo::availableSurfaces() - Извлекает все доступные поверхности (surface)


Извлекает все доступные поверхности (surface)

  • « Cairo::availableFonts
  • Cairo::statusToString »
  • PHP Manual
  • Cairo
  • Извлекает все доступные поверхности (surface)

Cairo::availableSurfaces

cairo_available_surfaces

(PECL cairo >= 0.1.0)

Cairo::availableSurfaces -- cairo_available_surfaces — Извлекает все доступные поверхности (surface)

Описание

Объектно-ориентированный стиль (method):

public static array Cairo::availableSurfaces ( void )

Процедурный стиль:

array cairo_available_surfaces ( void )

Возвращает массив доступных на бэкенде поверхностей (surface)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив всех доступных на бэкенде поверхностей (surface).

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* Object Oriented style */
var_dump(Cairo::availableSurfaces());

?>

Результатом выполнения данного примера будет что-то подобное:

array(6) {
  [0]=>
  string(5) "IMAGE"
  [1]=>
  string(3) "PNG"
  [2]=>
  string(3) "PDF"
  [3]=>
  string(2) "PS"
  [4]=>
  string(3) "SVG"
  [5]=>
  string(5) "WIN32"
}

Пример #2 Процедурный стиль

<?php

/* Procedural style */
var_dump(cairo_available_surfaces());

?>

Результатом выполнения данного примера будет что-то подобное:

array(6) {
  [0]=>
  string(5) "IMAGE"
  [1]=>
  string(3) "PNG"
  [2]=>
  string(3) "PDF"
  [3]=>
  string(2) "PS"
  [4]=>
  string(3) "SVG"
  [5]=>
  string(5) "WIN32"
}

Смотрите также

  • Cairo::availableFonts() - Извлекает доступные типы шрифтов


Возвращает текущий статус в форме текстовой строки

  • « Cairo::availableSurfaces
  • Cairo::version »
  • PHP Manual
  • Cairo
  • Возвращает текущий статус в форме текстовой строки

Cairo::statusToString

cairo_status_to_string

(PECL cairo >= 0.1.0)

Cairo::statusToString -- cairo_status_to_string — Возвращает текущий статус в форме текстовой строки

Описание

Объектно-ориентированный стиль (method):

public static string Cairo::statusToString ( int $status )

Процедурный стиль:

string cairo_status_to_string ( int $status )

Возвращает текущий статус в виде понятной человеку строки

Список параметров

status

Допустимый код статуса, предоставляемый функцией cairo_status() или методом CairoContext::status()

Возвращаемые значения

Строка, содержащая текущий статус объекта CairoContext

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);
$context = new CairoContext($surface);

var_dump(Cairo::statusToString($context->status()));
?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "успешно"

Пример #2 Процедурный стиль

<?php
$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);
$context = cairo_create($surface);

var_dump(cairo_status_to_string(cairo_status($context)));
?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "успешно"

Смотрите также

  • CairoContext::status() - The status purpose


Извлекает версию библиотеки cairo

  • « Cairo::statusToString
  • Cairo::versionString »
  • PHP Manual
  • Cairo
  • Извлекает версию библиотеки cairo

Cairo::version

cairo_version

(PECL cairo >= 0.1.0)

Cairo::version -- cairo_version — Извлекает версию библиотеки cairo

Описание

Объектно-ориентированный стиль (method):

public static int Cairo::version ( void )

Процедурный стиль:

int cairo_version ( void )

Извлекает текущую версию библиотеки cairo в виде целого числа

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Целое число, являющееся версией библиотеки cairo

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
var_dump(Cairo::version());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10808)

Пример #2 Процедурный стиль

<?php
var_dump(cairo_version());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10808)

Смотрите также

  • Cairo::versionString() - Возвращает версию cairo в форме строки


Возвращает версию cairo в форме строки

  • « Cairo::version
  • CairoContext »
  • PHP Manual
  • Cairo
  • Возвращает версию cairo в форме строки

Cairo::versionString

cairo_version_string

(PECL cairo >= 0.1.0)

Cairo::versionString -- cairo_version_string — Возвращает версию cairo в форме строки

Описание

Объектно-ориентированный стиль (method):

public static string Cairo::versionString ( void )

Процедурный стиль:

string cairo_version_string ( void )

Возвращает версию текущей библиотеки Cairo в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка с версией текущей библиотеки Cairo

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

var_dump(Cairo::versionString());

?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "1.8.8"

Пример #2 Процедурный стиль

<?php

var_dump(cairo_version_string());

?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "1.8.8"

Смотрите также

  • Cairo::version() - Извлекает версию библиотеки cairo


Класс CairoContext

(PECL cairo >= 0.1.0)

Введение

Контекст является основным объектом, используемый при рисовании Cairo. Для рисования при помощи Cairo вы создаете CairoContext, устанавливаете целевую CairoSurface, задаете опции рисования для CairoContext и создаете фигуры с помощью функций, таких как CairoContext::moveTo(), CairoContext::lineTo(), CairoContext::stroke() и CairoContext::fill(). Контекст может быть помещен в стек с помощью метода CairoContext::save(), после чего безопасно изменен, без потери текущего состояния, которое в любой момент можно вернуть методом CairoContext::restore().

Обзор классов

CairoContext {
/* Методы */
public void appendPath ( CairoPath $path )
public void arc ( float $x , float $y , float $radius , float $angle1 , float $angle2 )
public void arcNegative ( float $x , float $y , float $radius , float $angle1 , float $angle2 )
public void clip ( void )
public array clipExtents ( void )
public void clipPreserve ( void )
public array clipRectangleList ( void )
public void closePath ( void )
public __construct ( CairoSurface $surface )
public void copyPage ( void )
public CairoPath copyPath ( void )
public CairoPath copyPathFlat ( void )
public void curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )
public array deviceToUser ( float $x , float $y )
public array deviceToUserDistance ( float $x , float $y )
public void fill ( void )
public array fillExtents ( void )
public void fillPreserve ( void )
public array fontExtents ( void )
public int getAntialias ( void )
public array getCurrentPoint ( void )
public array getDash ( void )
public int getDashCount ( void )
public int getFillRule ( void )
public void getFontFace ( void )
public void getFontMatrix ( void )
public void getFontOptions ( void )
public void getGroupTarget ( void )
public int getLineCap ( void )
public int getLineJoin ( void )
public float getLineWidth ( void )
public void getMatrix ( void )
public float getMiterLimit ( void )
public int getOperator ( void )
public void getScaledFont ( void )
public void getSource ( void )
public void getTarget ( void )
public float getTolerance ( void )
public void glyphPath ( array $glyphs )
public bool hasCurrentPoint ( void )
public void identityMatrix ( void )
public bool inFill ( string $x , string $y )
public bool inStroke ( string $x , string $y )
public void lineTo ( string $x , string $y )
public void mask ( string $pattern )
public void maskSurface ( string $surface [, string $x [, string $y ]] )
public void moveTo ( string $x , string $y )
public void newPath ( void )
public void newSubPath ( void )
public void paint ( void )
public void paintWithAlpha ( string $alpha )
public array pathExtents ( void )
public void popGroup ( void )
public void popGroupToSource ( void )
public void pushGroup ( void )
public void pushGroupWithContent ( string $content )
public void rectangle ( string $x , string $y , string $width , string $height )
public void relCurveTo ( string $x1 , string $y1 , string $x2 , string $y2 , string $x3 , string $y3 )
public void relLineTo ( string $x , string $y )
public void relMoveTo ( string $x , string $y )
public void resetClip ( void )
public void restore ( void )
public void rotate ( string $angle )
public void save ( void )
public void scale ( string $x , string $y )
public void selectFontFace ( string $family [, string $slant [, string $weight ]] )
public void setAntialias ([ string $antialias ] )
public void setDash ( string $dashes [, string $offset ] )
public void setFillRule ( string $setting )
public void setFontFace ( CairoFontFace $fontface )
public void setFontMatrix ( string $matrix )
public void setFontOptions ( string $fontoptions )
public void setFontSize ( string $size )
public void setLineCap ( string $setting )
public void setLineJoin ( string $setting )
public void setLineWidth ( string $width )
public void setMatrix ( string $matrix )
public void setMiterLimit ( string $limit )
public void setOperator ( string $setting )
public void setScaledFont ( string $scaledfont )
public void setSource ( string $pattern )
public void setSourceRGB ( string $red , string $green , string $blue )
public void setSourceRGBA ( string $red , string $green , string $blue , string $alpha )
public void setSourceSurface ( string $surface [, string $x [, string $y ]] )
public void setTolerance ( string $tolerance )
public void showPage ( void )
public void showText ( string $text )
public int status ( void )
public void stroke ( void )
public array strokeExtents ( void )
public void strokePreserve ( void )
public array textExtents ( string $text )
public void textPath ( string $string )
public void transform ( string $matrix )
public void translate ( string $x , string $y )
public array userToDevice ( string $x , string $y )
public array userToDeviceDistance ( string $x , string $y )
}

Содержание

  • CairoContext::appendPath — Appends a path to current path
  • CairoContext::arc — Adds a circular arc
  • CairoContext::arcNegative — Adds a negative arc
  • CairoContext::clip — Establishes a new clip region
  • CairoContext::clipExtents — Computes the area inside the current clip
  • CairoContext::clipPreserve — Establishes a new clip region from the current clip
  • CairoContext::clipRectangleList — Retrieves the current clip as a list of rectangles
  • CairoContext::closePath — Closes the current path
  • CairoContext::__construct — Creates a new CairoContext
  • CairoContext::copyPage — Emits the current page
  • CairoContext::copyPath — Creates a copy of the current path
  • CairoContext::copyPathFlat — Gets a flattened copy of the current path
  • CairoContext::curveTo — Adds a curve
  • CairoContext::deviceToUser — Transform a coordinate
  • CairoContext::deviceToUserDistance — Transform a distance
  • CairoContext::fill — Fills the current path
  • CairoContext::fillExtents — Computes the filled area
  • CairoContext::fillPreserve — Fills and preserve the current path
  • CairoContext::fontExtents — Get the font extents
  • CairoContext::getAntialias — Retrives the current antialias mode
  • CairoContext::getCurrentPoint — The getCurrentPoint purpose
  • CairoContext::getDash — The getDash purpose
  • CairoContext::getDashCount — The getDashCount purpose
  • CairoContext::getFillRule — The getFillRule purpose
  • CairoContext::getFontFace — The getFontFace purpose
  • CairoContext::getFontMatrix — The getFontMatrix purpose
  • CairoContext::getFontOptions — The getFontOptions purpose
  • CairoContext::getGroupTarget — The getGroupTarget purpose
  • CairoContext::getLineCap — The getLineCap purpose
  • CairoContext::getLineJoin — The getLineJoin purpose
  • CairoContext::getLineWidth — The getLineWidth purpose
  • CairoContext::getMatrix — The getMatrix purpose
  • CairoContext::getMiterLimit — The getMiterLimit purpose
  • CairoContext::getOperator — The getOperator purpose
  • CairoContext::getScaledFont — The getScaledFont purpose
  • CairoContext::getSource — The getSource purpose
  • CairoContext::getTarget — The getTarget purpose
  • CairoContext::getTolerance — The getTolerance purpose
  • CairoContext::glyphPath — The glyphPath purpose
  • CairoContext::hasCurrentPoint — The hasCurrentPoint purpose
  • CairoContext::identityMatrix — The identityMatrix purpose
  • CairoContext::inFill — The inFill purpose
  • CairoContext::inStroke — The inStroke purpose
  • CairoContext::lineTo — The lineTo purpose
  • CairoContext::mask — The mask purpose
  • CairoContext::maskSurface — The maskSurface purpose
  • CairoContext::moveTo — The moveTo purpose
  • CairoContext::newPath — The newPath purpose
  • CairoContext::newSubPath — The newSubPath purpose
  • CairoContext::paint — The paint purpose
  • CairoContext::paintWithAlpha — The paintWithAlpha purpose
  • CairoContext::pathExtents — The pathExtents purpose
  • CairoContext::popGroup — The popGroup purpose
  • CairoContext::popGroupToSource — The popGroupToSource purpose
  • CairoContext::pushGroup — The pushGroup purpose
  • CairoContext::pushGroupWithContent — The pushGroupWithContent purpose
  • CairoContext::rectangle — The rectangle purpose
  • CairoContext::relCurveTo — The relCurveTo purpose
  • CairoContext::relLineTo — The relLineTo purpose
  • CairoContext::relMoveTo — The relMoveTo purpose
  • CairoContext::resetClip — The resetClip purpose
  • CairoContext::restore — The restore purpose
  • CairoContext::rotate — The rotate purpose
  • CairoContext::save — The save purpose
  • CairoContext::scale — The scale purpose
  • CairoContext::selectFontFace — The selectFontFace purpose
  • CairoContext::setAntialias — The setAntialias purpose
  • CairoContext::setDash — The setDash purpose
  • CairoContext::setFillRule — The setFillRule purpose
  • CairoContext::setFontFace — The setFontFace purpose
  • CairoContext::setFontMatrix — The setFontMatrix purpose
  • CairoContext::setFontOptions — The setFontOptions purpose
  • CairoContext::setFontSize — The setFontSize purpose
  • CairoContext::setLineCap — The setLineCap purpose
  • CairoContext::setLineJoin — The setLineJoin purpose
  • CairoContext::setLineWidth — The setLineWidth purpose
  • CairoContext::setMatrix — The setMatrix purpose
  • CairoContext::setMiterLimit — The setMiterLimit purpose
  • CairoContext::setOperator — The setOperator purpose
  • CairoContext::setScaledFont — The setScaledFont purpose
  • CairoContext::setSource — The setSource purpose
  • CairoContext::setSourceRGB — The setSourceRGB purpose
  • CairoContext::setSourceRGBA — The setSourceRGBA purpose
  • CairoContext::setSourceSurface — The setSourceSurface purpose
  • CairoContext::setTolerance — The setTolerance purpose
  • CairoContext::showPage — The showPage purpose
  • CairoContext::showText — The showText purpose
  • CairoContext::status — The status purpose
  • CairoContext::stroke — The stroke purpose
  • CairoContext::strokeExtents — The strokeExtents purpose
  • CairoContext::strokePreserve — The strokePreserve purpose
  • CairoContext::textExtents — The textExtents purpose
  • CairoContext::textPath — The textPath purpose
  • CairoContext::transform — The transform purpose
  • CairoContext::translate — The translate purpose
  • CairoContext::userToDevice — The userToDevice purpose
  • CairoContext::userToDeviceDistance — The userToDeviceDistance purpose


Appends a path to current path

  • « CairoContext
  • CairoContext::arc »
  • PHP Manual
  • CairoContext
  • Appends a path to current path

CairoContext::appendPath

cairo_append_path

(PECL cairo >= 0.1.0)

CairoContext::appendPath -- cairo_append_path — Appends a path to current path

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::appendPath ( CairoPath $path )

Процедурный стиль:

void cairo_append_path ( CairoContext $context , CairoPath $path )

Appends the path onto the current path. The path may be either the return value from one of CairoContext::copyPath() or CairoContext::copyPathFlat();

if path is not a valid CairoPath instance a CairoException will be thrown

Список параметров

context

CairoContext object

path

CairoPath object

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$path = $context->copyPath();

$context->appendPath($path);

?>

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

$path = cairo_copy_path($context);

cairo_append_path($context, $path);

?>

Смотрите также

  • CairoPath
  • CairoContext::copyPath() - Creates a copy of the current path
  • CairoContext::copyPathFlat() - Gets a flattened copy of the current path


Adds a circular arc

  • « CairoContext::appendPath
  • CairoContext::arcNegative »
  • PHP Manual
  • CairoContext
  • Adds a circular arc

CairoContext::arc

cairo_arc

(PECL cairo >= 0.1.0)

CairoContext::arc -- cairo_arc — Adds a circular arc

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::arc ( float $x , float $y , float $radius , float $angle1 , float $angle2 )

Процедурный стиль:

void cairo_arc ( CairoContext $context , float $x , float $y , float $radius , float $angle1 , float $angle2 )

Adds a circular arc of the given radius to the current path. The arc is centered at (x, y), begins at angle1 and proceeds in the direction of increasing angles to end at angle2. If angle2 is less than angle1 it will be progressively increased by 2*M_PI until it is greater than angle1. If there is a current point, an initial line segment will be added to the path to connect the current point to the beginning of the arc. If this initial line is undesired, it can be avoided by calling CairoContext::newSubPath() or procedural cairo_new_sub_path() before calling CairoContext::arc() or cairo_arc(). Angles are measured in radians. An angle of 0.0 is in the direction of the positive X axis (in user space). An angle of M_PI/2.0 radians (90 degrees) is in the direction of the positive Y axis (in user space). Angles increase in the direction from the positive X axis toward the positive Y axis. So with the default transformation matrix, angles increase in a clockwise direction. (To convert from degrees to radians, use degrees * (M_PI / 180.).) This function gives the arc in the direction of increasing angles; see CairoContext::arcNegative() or cairo_arc_negative() to get the arc in the direction of decreasing angles.

Список параметров

context

A valid CairoContext object

x

x position

y

y position

radius

Radius of the arc

angle1

start angle

angle2

end angle

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

$c->setLineWidth(1);
$c->setSourceRgb(1, 1, 1);

for ($r = 50; $r > 0; $r -= 10) {
 $c->arc(50, 50, $r, 0, 2 * M_PI);
 $c->stroke();
 $c->fill();
}

$s->writeToPng(dirname(__FILE__) . '/CairoContext__arc.png');
?>

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

cairo_set_source_rgb($c, 1, 1, 1);
cairo_set_line_width($c, 1);

for ($r = 50; $r > 0; $r -= 10) {
 cairo_arc($c, 50, 50, $r, 0, 2 * M_PI);
 cairo_stroke($c);
 cairo_fill($c);
}

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_arc.png');
?>

Смотрите также

  • CairoContext::arcNegative() - Adds a negative arc


Adds a negative arc

  • « CairoContext::arc
  • CairoContext::clip »
  • PHP Manual
  • CairoContext
  • Adds a negative arc

CairoContext::arcNegative

cairo_arc_negative

(PECL cairo >= 0.1.0)

CairoContext::arcNegative -- cairo_arc_negative — Adds a negative arc

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::arcNegative ( float $x , float $y , float $radius , float $angle1 , float $angle2 )

Процедурный стиль:

void cairo_arc_negative ( CairoContext $context , float $x , float $y , float $radius , float $angle1 , float $angle2 )

Adds a circular arc of the given radius to the current path. The arc is centered at (x, y), begins at angle1 and proceeds in the direction of decreasing angles to end at angle2. If angle2 is greater than angle1 it will be progressively decreased by 2*M_PI until it is less than angle1. See CairoContext::arc() or cairo_arc() for more details. This function differs only in the direction of the arc between the two angles.

Список параметров

context

A valid CairoContext object

x

double x position

y

double y position

radius

The radius of the desired negative arc

angle1

Start angle of the arc

angle2

End angle of the arc

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

$c->setLineWidth(1);
$c->setSourceRgb(1, 1, 1);

for ($r = 50; $r > 0; $r -= 10) {
 $c->arcNegative(50, 50, $r, 2 * M_PI, 0);
 $c->stroke();
 $c->fill();
}

$s->writeToPng(dirname(__FILE__) . '/CairoContext__arcNegative.png');
?>

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

cairo_set_source_rgb($c, 1, 1, 1);
cairo_set_line_width($c, 1);

for ($r = 50; $r > 0; $r -= 10) {
 cairo_arc_negative($c, 50, 50, $r, 2 * M_PI, 0);
 cairo_stroke($c);
 cairo_fill($c);
}

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_arc_negative.png');
?>

Смотрите также

  • CairoContext::arc() - Adds a circular arc


Establishes a new clip region

  • « CairoContext::arcNegative
  • CairoContext::clipExtents »
  • PHP Manual
  • CairoContext
  • Establishes a new clip region

CairoContext::clip

cairo_clip

(PECL cairo >= 0.1.0)

CairoContext::clip -- cairo_clip — Establishes a new clip region

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::clip ( void )

Процедурный стиль:

void cairo_clip ( CairoContext $context )

Establishes a new clip region by intersecting the current clip region with the current path as it would be filled by CairoContext::fill() or cairo_fill() and according to the current fill rule (see CairoContext::setFillRule() or cairo_set_fill_rule()).

After CairoContext::clip() or cairo_clip(), the current path will be cleared from the cairo context.

The current clip region affects all drawing operations by effectively masking out any changes to the surface that are outside the current clip region.

Calling CairoContext::clip() or cairo_clip()
can only make the clip region smaller, never larger. But the current clip is part of the
graphics state, so a temporary restriction of the clip region can be achieved by calling
CairoContext::clip() or cairo_clip() within a
CairoContext::save()/CairoContext::restore() or
cairo_save()/cairo_restore() pair.
The only other means of increasing the size of the clip region is
CairoContext::resetClip() or procedural cairo_reset_clip().

Список параметров

context

A valid CairoContext object

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->clip();

?>

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_clip($context);

?>

Смотрите также

  • CairoContext::resetClip() - The resetClip purpose
  • cairo_reset_clip() - The resetClip purpose


Computes the area inside the current clip

  • « CairoContext::clip
  • CairoContext::clipPreserve »
  • PHP Manual
  • CairoContext
  • Computes the area inside the current clip

CairoContext::clipExtents

cairo_clip_extents

(PECL cairo >= 0.1.0)

CairoContext::clipExtents -- cairo_clip_extents — Computes the area inside the current clip

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::clipExtents ( void )

Процедурный стиль:

array cairo_clip_extents ( CairoContext $context )

Computes a bounding box in user coordinates covering the area inside the current clip.

Список параметров

context

A valid CairoContext object

Возвращаемые значения

An array containing the (float)x1, (float)y1, (float)x2, (float)y2, coordinates covering the area inside the current clip

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->clipExtents());
?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  [0]=>
  float(0)
  [1]=>
  float(0)
  [2]=>
  float(50)
  [3]=>
  float(50)
}

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_clip_extents($context));

?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  [0]=>
  float(0)
  [1]=>
  float(0)
  [2]=>
  float(50)
  [3]=>
  float(50)
}

Смотрите также

  • CairoContext::clip() - Establishes a new clip region


Establishes a new clip region from the current clip

  • « CairoContext::clipExtents
  • CairoContext::clipRectangleList »
  • PHP Manual
  • CairoContext
  • Establishes a new clip region from the current clip

CairoContext::clipPreserve

cairo_clip_preserve

(PECL cairo >= 0.1.0)

CairoContext::clipPreserve -- cairo_clip_preserve — Establishes a new clip region from the current clip

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::clipPreserve ( void )

Процедурный стиль:

void cairo_clip_preserve ( CairoContext $context )

Establishes a new clip region by intersecting the current clip region with the current path as it would be filled by Context.fill() and according to the current FILL RULE (see CairoContext::setFillRule() or cairo_set_fill_rule()).

Unlike CairoContext::clip(), CairoContext::clipPreserve() preserves the path within the Context. The current clip region affects all drawing operations by effectively masking out any changes to the surface that are outside the current clip region.

Calling CairoContext::clipPreserve() can only make the clip region smaller, never larger. But the current clip is part of the graphics state, so a temporary restriction of the clip region can be achieved by calling CairoContext::clipPreserve() within a CairoContext::save()/CairoContext::restore() pair. The only other means of increasing the size of the clip region is CairoContext::resetClip().

Список параметров

context

A valid CairoContext object

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->clipPreserve();

?>

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_clip_preserve($context);

?>

Смотрите также

  • CairoContext::save() - The save purpose
  • CairoContext::restore() - The restore purpose
  • CairoContext::resetClip() - The resetClip purpose


Retrieves the current clip as a list of rectangles

  • « CairoContext::clipPreserve
  • CairoContext::closePath »
  • PHP Manual
  • CairoContext
  • Retrieves the current clip as a list of rectangles

CairoContext::clipRectangleList

cairo_clip_rectangle_list

(PECL cairo >= 0.1.0)

CairoContext::clipRectangleList -- cairo_clip_rectangle_list — Retrieves the current clip as a list of rectangles

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::clipRectangleList ( void )

Процедурный стиль:

array cairo_clip_rectangle_list ( CairoContext $context )

Returns a list-type array with the current clip region as a list of rectangles in user coordinates

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

An array of user-space represented rectangles for the current clip

(The status in the list may be CAIRO_STATUS_CLIP_NOT_REPRESENTABLE to indicate that the clip region cannot be represented as a list of user-space rectangles. The status may have other values to indicate other errors.)

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->clipRectangleList());

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["x"]=>
    float(0)
    ["y"]=>
    float(0)
    ["width"]=>
    float(50)
    ["height"]=>
    float(50)
  }
}

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_clip_rectangle_list($context));

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(4) {
    ["x"]=>
    float(0)
    ["y"]=>
    float(0)
    ["width"]=>
    float(50)
    ["height"]=>
    float(50)
  }
}

Смотрите также

  • Classname::Method()


Closes the current path

  • « CairoContext::clipRectangleList
  • CairoContext::__construct »
  • PHP Manual
  • CairoContext
  • Closes the current path

CairoContext::closePath

cairo_close_path

(PECL cairo >= 0.1.0)

CairoContext::closePath -- cairo_close_path — Closes the current path

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::closePath ( void )

Процедурный стиль:

void cairo_close_path ( CairoContext $context )

Adds a line segment to the path from the current point to the beginning of the current sub-path, (the most recent point passed to CairoContext::moveTo()), and closes this sub-path. After this call the current point will be at the joined endpoint of the sub-path.

The behavior of close_path() is distinct from simply calling CairoContext::lineTo() with the equivalent coordinate in the case of stroking. When a closed sub-path is stroked, there are no caps on the ends of the sub-path. Instead, there is a line join connecting the final and initial segments of the sub-path.

If there is no current point before the call to CairoContext::closePath(), this function will have no effect.

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->closePath();

?>

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_close_path($context);

?>

Смотрите также

  • CairoContext::copyPath() - Creates a copy of the current path


Creates a new CairoContext

  • « CairoContext::closePath
  • CairoContext::copyPage »
  • PHP Manual
  • CairoContext
  • Creates a new CairoContext

CairoContext::__construct

(PECL cairo >= 0.1.0)

CairoContext::__construct — Creates a new CairoContext

Описание

public CairoContext::__construct ( CairoSurface $surface )

Creates a new CairoContext object to draw

Список параметров

surface

A valid CairoSurface like CairoImageSurface or CairoPdfSurface

Возвращаемые значения

A CairoContext

Примеры

Пример #1 CairoContext::__construct() example

<?php
// The surface to work on
$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

// Create a new CairoContext for the CairoSurface
$context = new CairoContext($surface);

?>

Смотрите также

  • Cairo::Method()


Emits the current page

  • « CairoContext::__construct
  • CairoContext::copyPath »
  • PHP Manual
  • CairoContext
  • Emits the current page

CairoContext::copyPage

cairo_copy_page

(PECL cairo >= 0.1.0)

CairoContext::copyPage -- cairo_copy_page — Emits the current page

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::copyPage ( void )

Процедурный стиль:

void cairo_copy_page ( CairoContext $context )

Emits the current page for backends that support multiple pages, but doesn't clear it, so, the contents of the current page will be retained for the next page too. Use CairoContext::showPage() if you want to get an empty page after the emission.

This is a convenience function that simply calls CairoSurface::copyPage() on CairoContext's target.

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

$context->copyPage();

?>

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

cairo_copy_page($context);

?>

Смотрите также

  • CairoContext::showPage() - The showPage purpose
  • CairoSurface::copyPage() - The copyPage purpose


Creates a copy of the current path

  • « CairoContext::copyPage
  • CairoContext::copyPathFlat »
  • PHP Manual
  • CairoContext
  • Creates a copy of the current path

CairoContext::copyPath

cairo_copy_path

(PECL cairo >= 0.1.0)

CairoContext::copyPath -- cairo_copy_path — Creates a copy of the current path

Описание

Объектно-ориентированный стиль (method):

public CairoPath CairoContext::copyPath ( void )

Процедурный стиль:

CairoPath cairo_copy_path ( CairoContext $context )

Creates a copy of the current path and returns it to the user as a CairoPath. See CairoPath for hints on how to iterate over the returned data structure.

This function will always return a valid CairoPath object, but the result will have no data, if either of the following conditions hold:

  • 1. If there is insufficient memory to copy the path. In this case CairoPath->status will be set to CAIRO_STATUS_NO_MEMORY.
  • 2. If context is already in an error state. In this case CairoPath->status will contain the same status that would be returned by cairo_status().
In either case, CairoPath->status will be set to CAIRO_STATUS_NO_MEMORY (regardless of what the error status in cr might have been).

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

A copy of the current CairoPath in the context

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->copyPath())

?>

Результатом выполнения данного примера будет что-то подобное:

object(CairoPath)#3 (0) {
}

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_copy_path($context));

?>

Результатом выполнения данного примера будет что-то подобное:

object(CairoPath)#3 (0) {
}

Смотрите также

  • CairoContext::closePath() - Closes the current path


Gets a flattened copy of the current path

  • « CairoContext::copyPath
  • CairoContext::curveTo »
  • PHP Manual
  • CairoContext
  • Gets a flattened copy of the current path

CairoContext::copyPathFlat

cairo_copy_path_flat

(PECL cairo >= 0.1.0)

CairoContext::copyPathFlat -- cairo_copy_path_flat — Gets a flattened copy of the current path

Описание

Объектно-ориентированный стиль (method):

public CairoPath CairoContext::copyPathFlat ( void )

Процедурный стиль:

CairoPath cairo_copy_path_flat ( CairoContext $context )

Gets a flattened copy of the current path and returns it to the user as a CairoPath.

This function is like CairoContext::copyPath() except that any curves in the path will be approximated with piecewise-linear approximations, (accurate to within the current tolerance value). That is, the result is guaranteed to not have any elements of type CAIRO_PATH_CURVE_TO which will instead be replaced by a series of CAIRO_PATH_LINE_TO elements.

Список параметров

context

A CairoContext object

Возвращаемые значения

A copy of the current path

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

$context = new CairoContext($surface);

var_dump($context->copyPathFlat());

?>

Результатом выполнения данного примера будет что-то подобное:

object(CairoPath)#3 (0) {
}

Пример #2 Процедурный стиль

<?php

$surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);

$context = cairo_create($surface);

var_dump(cairo_copy_path_flat($context));

?>

Результатом выполнения данного примера будет что-то подобное:

object(CairoPath)#3 (0) {
}

Смотрите также

  • CairoContext::copyPath() - Creates a copy of the current path
  • CairoContext::closePath() - Closes the current path


Adds a curve

  • « CairoContext::copyPathFlat
  • CairoContext::deviceToUser »
  • PHP Manual
  • CairoContext
  • Adds a curve

CairoContext::curveTo

cairo_curve_to

(PECL cairo >= 0.1.0)

CairoContext::curveTo -- cairo_curve_to — Adds a curve

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Процедурный стиль:

void cairo_curve_to ( CairoContext $context , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Adds a cubic Bezier spline to the path from the current point to position x3 ,y3 in user-space coordinates, using x1, y1 and x2, y2 as the control points. After this call the current point will be x3, y3.

If there is no current point before the call to CairoContext::curveTo() this function will behave as if preceded by a call to CairoContext::moveTo() (x1, y1).

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

x1

First control point in the x axis for the curve

y1

First control point in the y axis for the curve

x2

Second control point in x axis for the curve

y2

Second control point in y axis for the curve

x3

Final point in the x axis for the curve

y3

Final point in the y axis for the curve

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);

$c->paint();

$c->moveTo(10, 50);
$c->setLineWidth(5);
$c->setSourceRgb(.1, 0, 1);
$c->curveTo(20, 80, 80, 20, 90, 50);
$c->stroke();

$s->writeToPng(dirname(__FILE__) . '/curveTo.png');
?>

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);

cairo_paint($c);

cairo_move_to($c, 10, 50);
cairo_set_line_width($c, 5);
cairo_set_source_rgb($c, .1, 0, 1);
cairo_curve_to($c, 20, 80, 80, 20, 90, 50);
cairo_stroke($c);

cairo_surface_write_to_png($s, dirname(__FILE__) . '/curve_to.png');
?>

Смотрите также

  • CairoContext::moveTo() - The moveTo purpose


Transform a coordinate

  • « CairoContext::curveTo
  • CairoContext::deviceToUserDistance »
  • PHP Manual
  • CairoContext
  • Transform a coordinate

CairoContext::deviceToUser

cairo_device_to_user

(PECL cairo >= 0.1.0)

CairoContext::deviceToUser -- cairo_device_to_user — Transform a coordinate

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::deviceToUser ( float $x , float $y )

Процедурный стиль:

array cairo_device_to_user ( CairoContext $context , float $x , float $y )

Transform a coordinate from device space to user space by multiplying the given point by the inverse of the current transformation matrix (CTM).

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

x

x value of the coordinate

y

y value of the coordinate

Возвращаемые значения

An array containing the x and y coordinates in the user-space

Смотрите также

  • CairoContext::deviceToUserDistance() - Transform a distance


Transform a distance

  • « CairoContext::deviceToUser
  • CairoContext::fill »
  • PHP Manual
  • CairoContext
  • Transform a distance

CairoContext::deviceToUserDistance

cairo_device_to_user_distance

(PECL cairo >= 0.1.0)

CairoContext::deviceToUserDistance -- cairo_device_to_user_distance — Transform a distance

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::deviceToUserDistance ( float $x , float $y )

Процедурный стиль:

array cairo_device_to_user_distance ( CairoContext $context , float $x , float $y )

Transform a distance vector from device space to user space. This function is similar to CairoContext::deviceToUser() or cairo_device_to_user() except that the translation components of the inverse Cairo Transformation Matrix will be ignored when transforming (x,y).

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

x

X component of a distance vector

y

Y component of a distance vector

Возвращаемые значения

Returns an array with the x and y values of a distance vector in the user-space

Смотрите также

  • CairoContext::deviceToUser() - Transform a coordinate


Fills the current path

  • « CairoContext::deviceToUserDistance
  • CairoContext::fillExtents »
  • PHP Manual
  • CairoContext
  • Fills the current path

CairoContext::fill

cairo_fill

(PECL cairo >= 0.1.0)

CairoContext::fill -- cairo_fill — Fills the current path

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::fill ( void )

Процедурный стиль:

void cairo_fill ( CairoContext $context )

A drawing operator that fills the current path according to the current CairoFillRule, (each sub-path is implicitly closed before being filled). After CairoContext::fill() or cairo_fill(), the current path will be cleared from the CairoContext.

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

$c->setSourceRgb(1, 1, 1);
$c->rectangle(0, 0, 50, 50);
$c->fill();
$c->setSourceRgb(0, 1, 0);
$c->rectangle(50, 50, 50, 50);
$c->fill();

$s->writeToPng(dirname(__FILE__) . '/CairoContext_fill.png');

?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

cairo_set_source_rgb($c, 1, 1, 1);
cairo_rectangle($c, 0, 0, 50, 50);
cairo_fill($c);
cairo_set_source_rgb($c, 0, 1, 0);
cairo_rectangle($c, 50, 50, 50, 50);
cairo_fill($c);

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_fill.png');

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoContext::setFillRule() - The setFillRule purpose
  • ContextContext::fillPreserve()
  • CairoFillRule


Computes the filled area

  • « CairoContext::fill
  • CairoContext::fillPreserve »
  • PHP Manual
  • CairoContext
  • Computes the filled area

CairoContext::fillExtents

cairo_fill_extents

(PECL cairo >= 0.1.0)

CairoContext::fillExtents -- cairo_fill_extents — Computes the filled area

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::fillExtents ( void )

Процедурный стиль:

array cairo_fill_extents ( CairoContext $context )

Computes a bounding box in user coordinates covering the area that would be affected, (the "inked" area), by a CairoContext::fill() operation given the current path and fill parameters. If the current path is empty, returns an empty rectangle (0,0,0,0). Surface dimensions and clipping are not taken into account.

Contrast with CairoContext::pathExtents(), which is similar, but returns non-zero extents for some paths with no inked area, (such as a simple line segment).

Note that CairoContext::fillExtents() must necessarily do more work to compute the precise inked areas in light of the fill rule, so CairoContext::pathExtents() may be more desirable for sake of performance if the non-inked path extents are desired.

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

An array with the coordinates of the afected area

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoContext::fill() - Fills the current path
  • CairoContext::setFillRule() - The setFillRule purpose
  • CairoContext::fillPreserve() - Fills and preserve the current path


Fills and preserve the current path

  • « CairoContext::fillExtents
  • CairoContext::fontExtents »
  • PHP Manual
  • CairoContext
  • Fills and preserve the current path

CairoContext::fillPreserve

cairo_fill_preserve

(PECL cairo >= 0.1.0)

CairoContext::fillPreserve -- cairo_fill_preserve — Fills and preserve the current path

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::fillPreserve ( void )

Процедурный стиль:

void cairo_fill_preserve ( CairoContext $context )

A drawing operator that fills the current path according to the current CairoFillRule, (each sub-path is implicitly closed before being filled). Unlike CairoContext::fill(), CairoContext::fillPreserve() (Procedural cairo_fill(), cairo_fill_preserve(), respectively) preserves the path within the Context.

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoContext::setFillRule() - The setFillRule purpose
  • CairoContext::fill() - Fills the current path


Get the font extents

  • « CairoContext::fillPreserve
  • CairoContext::getAntialias »
  • PHP Manual
  • CairoContext
  • Get the font extents

CairoContext::fontExtents

cairo_font_extents

(PECL cairo >= 0.1.0)

CairoContext::fontExtents -- cairo_font_extents — Get the font extents

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::fontExtents ( void )

Процедурный стиль:

array cairo_font_extents ( CairoContext $context )

Gets the font extents for the currently selected font.

Список параметров

context

Description...

Возвращаемые значения

An array containing the font extents for the current font.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$sur = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);
$con = new CairoContext($sur);

var_dump($con->fontExtents());

?>

Результатом выполнения данного примера будет что-то подобное:

array(5) {
  ["ascent"]=>
  float(10)
  ["descent"]=>
  float(3)
  ["height"]=>
  float(13.3125)
  ["max_x_advance"]=>
  float(26.65625)
  ["max_y_advance"]=>
  float(0)
}

Пример #2 Процедурный стиль

<?php

$sur = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);
$con = cairo_create($sur);

var_dump(cairo_font_extents($con));

?>

Результатом выполнения данного примера будет что-то подобное:

array(5) {
  ["ascent"]=>
  float(10)
  ["descent"]=>
  float(3)
  ["height"]=>
  float(13.3125)
  ["max_x_advance"]=>
  float(26.65625)
  ["max_y_advance"]=>
  float(0)
}

Смотрите также

  • Classname::Method()


Retrives the current antialias mode

  • « CairoContext::fontExtents
  • CairoContext::getCurrentPoint »
  • PHP Manual
  • CairoContext
  • Retrives the current antialias mode

CairoContext::getAntialias

cairo_get_antialias

(PECL cairo >= 0.1.0)

CairoContext::getAntialias -- cairo_get_antialias — Retrives the current antialias mode

Описание

Объектно-ориентированный стиль (method):

public int CairoContext::getAntialias ( void )

Процедурный стиль:

int cairo_get_antialias ( CairoContext $context )

Returns the current CairoAntialias mode, as set by CairoContext::setAntialias().

Список параметров

context

A valid CairoContext object created with CairoContext::__construct() or cairo_create()

Возвращаемые значения

The current CairoAntialias mode.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);
$context = new CairoContext($surface);

$context->setAntialias(CairoAntialias::MODE_SUBPIXEL);

var_dump($context->getAntialias());

?>

Результатом выполнения данного примера будет что-то подобное:

int(3)

Пример #2 Процедурный стиль

<?php

$sur = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 50, 50);
$con = cairo_create($sur);

cairo_set_antialias($con, CAIRO_ANTIALIAS_SUBPIXEL);

var_dump(cairo_get_antialias($con));

?>

Результатом выполнения данного примера будет что-то подобное:

int(3)

Смотрите также

  • CairoContext::setAntialias() - The setAntialias purpose
  • CairoAntialias


The getCurrentPoint purpose

  • « CairoContext::getAntialias
  • CairoContext::getDash »
  • PHP Manual
  • CairoContext
  • The getCurrentPoint purpose

CairoContext::getCurrentPoint

cairo_get_current_point

(PECL cairo >= 0.1.0)

CairoContext::getCurrentPoint -- cairo_get_current_point — The getCurrentPoint purpose

Описание

Объектно-ориентированный стиль

public array CairoContext::getCurrentPoint ( void )

Процедурный стиль

array cairo_get_current_point ( CairoContext $context )

Gets the current point of the current path, which is conceptually the final point reached by the path so far.

The current point is returned in the user-space coordinate system. If there is no defined current point or if cr is in an error status, x and y will both be set to 0.0. It is possible to check this in advance with CairoContext::hasCurrentPoint().

Most path construction functions alter the current point. See the following for details on how they affect the current point: CairoContext::newPath(),
CairoContext::newSubPath(), CairoContext::appendPath(), CairoContext::closePath(), CairoContext::moveTo(),
CairoContext::lineTo(), CairoContext::curveTo(), CairoContext::relMoveTo(),
CairoContext::relLineTo(), CairoContext::relCurveTo(),
CairoContext::arc(), CairoContext::arcNegative(), CairoContext::rectangle(),
CairoContext::textPath(), CairoContext::glyphPath().

Some functions use and alter the current point but do not otherwise change current path: CairoContext::showText().

Some functions unset the current path and as a result, current point: CairoContext::fill(), CairoContext::stroke().

Список параметров

context

A valid CairoContext object.

Возвращаемые значения

An array containing the x (index 0) and y (index 1) coordinates of the current point.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->moveTo(10, 10);

var_dump($c->getCurrentPoint());

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  float(10)
  [1]=>
  float(10)
}

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_move_to($c, 10, 10);

var_dump(cairo_get_current_point($c));

?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  float(10)
  [1]=>
  float(10)
}

Смотрите также

  • CairoContext::moveTo() - The moveTo purpose
  • CairoContext::hasCurrentPoint() - The hasCurrentPoint purpose


The getDash purpose

  • « CairoContext::getCurrentPoint
  • CairoContext::getDashCount »
  • PHP Manual
  • CairoContext
  • The getDash purpose

CairoContext::getDash

cairo_get_dash

(PECL cairo >= 0.1.0)

CairoContext::getDash -- cairo_get_dash — The getDash purpose

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::getDash ( void )

Процедурный стиль:

array cairo_get_dash ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getDashCount purpose

  • « CairoContext::getDash
  • CairoContext::getFillRule »
  • PHP Manual
  • CairoContext
  • The getDashCount purpose

CairoContext::getDashCount

cairo_get_dash_count

(PECL cairo >= 0.1.0)

CairoContext::getDashCount -- cairo_get_dash_count — The getDashCount purpose

Описание

Объектно-ориентированный стиль (method):

public int CairoContext::getDashCount ( void )

Процедурный стиль:

int cairo_get_dash_count ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFillRule purpose

  • « CairoContext::getDashCount
  • CairoContext::getFontFace »
  • PHP Manual
  • CairoContext
  • The getFillRule purpose

CairoContext::getFillRule

cairo_get_fill_rule

(PECL cairo >= 0.1.0)

CairoContext::getFillRule -- cairo_get_fill_rule — The getFillRule purpose

Описание

Объектно-ориентированный стиль (method):

public int CairoContext::getFillRule ( void )

Процедурный стиль:

int cairo_get_fill_rule ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontFace purpose

  • « CairoContext::getFillRule
  • CairoContext::getFontMatrix »
  • PHP Manual
  • CairoContext
  • The getFontFace purpose

CairoContext::getFontFace

cairo_get_font_face

(PECL cairo >= 0.1.0)

CairoContext::getFontFace -- cairo_get_font_face — The getFontFace purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::getFontFace ( void )

Процедурный стиль:

void cairo_get_font_face ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontMatrix purpose

  • « CairoContext::getFontFace
  • CairoContext::getFontOptions »
  • PHP Manual
  • CairoContext
  • The getFontMatrix purpose

CairoContext::getFontMatrix

cairo_get_font_matrix

(PECL cairo >= 0.1.0)

CairoContext::getFontMatrix -- cairo_get_font_matrix — The getFontMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::getFontMatrix ( void )

Процедурный стиль:

void cairo_get_font_matrix ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontOptions purpose

  • « CairoContext::getFontMatrix
  • CairoContext::getGroupTarget »
  • PHP Manual
  • CairoContext
  • The getFontOptions purpose

CairoContext::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoContext::getFontOptions -- cairo_get_font_options — The getFontOptions purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::getFontOptions ( void )

Процедурный стиль:

void cairo_get_font_options ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getGroupTarget purpose

  • « CairoContext::getFontOptions
  • CairoContext::getLineCap »
  • PHP Manual
  • CairoContext
  • The getGroupTarget purpose

CairoContext::getGroupTarget

cairo_get_group_target

(PECL cairo >= 0.1.0)

CairoContext::getGroupTarget -- cairo_get_group_target — The getGroupTarget purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::getGroupTarget ( void )

Процедурный стиль:

void cairo_get_group_target ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getLineCap purpose

  • « CairoContext::getGroupTarget
  • CairoContext::getLineJoin »
  • PHP Manual
  • CairoContext
  • The getLineCap purpose

CairoContext::getLineCap

cairo_get_line_cap

(PECL cairo >= 0.1.0)

CairoContext::getLineCap -- cairo_get_line_cap — The getLineCap purpose

Описание

Объектно-ориентированный стиль (method):

public int CairoContext::getLineCap ( void )

Процедурный стиль:

int cairo_get_line_cap ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getLineJoin purpose

  • « CairoContext::getLineCap
  • CairoContext::getLineWidth »
  • PHP Manual
  • CairoContext
  • The getLineJoin purpose

CairoContext::getLineJoin

cairo_get_line_join

(PECL cairo >= 0.1.0)

CairoContext::getLineJoin -- cairo_get_line_join — The getLineJoin purpose

Описание

Объектно-ориентированный стиль (method):

public int CairoContext::getLineJoin ( void )

Процедурный стиль:

int cairo_get_line_join ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getLineWidth purpose

  • « CairoContext::getLineJoin
  • CairoContext::getMatrix »
  • PHP Manual
  • CairoContext
  • The getLineWidth purpose

CairoContext::getLineWidth

cairo_get_line_width

(PECL cairo >= 0.1.0)

CairoContext::getLineWidth -- cairo_get_line_width — The getLineWidth purpose

Описание

Объектно-ориентированный стиль (method):

public float CairoContext::getLineWidth ( void )

Процедурный стиль:

float cairo_get_line_width ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getMatrix purpose

  • « CairoContext::getLineWidth
  • CairoContext::getMiterLimit »
  • PHP Manual
  • CairoContext
  • The getMatrix purpose

CairoContext::getMatrix

cairo_get_matrix

(PECL cairo >= 0.1.0)

CairoContext::getMatrix -- cairo_get_matrix — The getMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::getMatrix ( void )

Процедурный стиль:

void cairo_get_matrix ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getMiterLimit purpose

  • « CairoContext::getMatrix
  • CairoContext::getOperator »
  • PHP Manual
  • CairoContext
  • The getMiterLimit purpose

CairoContext::getMiterLimit

cairo_get_miter_limit

(PECL cairo >= 0.1.0)

CairoContext::getMiterLimit -- cairo_get_miter_limit — The getMiterLimit purpose

Описание

Объектно-ориентированный стиль (method):

public float CairoContext::getMiterLimit ( void )

Процедурный стиль:

float cairo_get_miter_limit ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getOperator purpose

  • « CairoContext::getMiterLimit
  • CairoContext::getScaledFont »
  • PHP Manual
  • CairoContext
  • The getOperator purpose

CairoContext::getOperator

cairo_get_operator

(PECL cairo >= 0.1.0)

CairoContext::getOperator -- cairo_get_operator — The getOperator purpose

Описание

Объектно-ориентированный стиль (method):

public int CairoContext::getOperator ( void )

Процедурный стиль:

int cairo_get_operator ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getScaledFont purpose

  • « CairoContext::getOperator
  • CairoContext::getSource »
  • PHP Manual
  • CairoContext
  • The getScaledFont purpose

CairoContext::getScaledFont

cairo_get_scaled_font

(PECL cairo >= 0.1.0)

CairoContext::getScaledFont -- cairo_get_scaled_font — The getScaledFont purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::getScaledFont ( void )

Процедурный стиль:

void cairo_get_scaled_font ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getSource purpose

  • « CairoContext::getScaledFont
  • CairoContext::getTarget »
  • PHP Manual
  • CairoContext
  • The getSource purpose

CairoContext::getSource

cairo_get_source

(PECL cairo >= 0.1.0)

CairoContext::getSource -- cairo_get_source — The getSource purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::getSource ( void )

Процедурный стиль:

void cairo_get_source ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getTarget purpose

  • « CairoContext::getSource
  • CairoContext::getTolerance »
  • PHP Manual
  • CairoContext
  • The getTarget purpose

CairoContext::getTarget

cairo_get_target

(PECL cairo >= 0.1.0)

CairoContext::getTarget -- cairo_get_target — The getTarget purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::getTarget ( void )

Процедурный стиль:

void cairo_get_target ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getTolerance purpose

  • « CairoContext::getTarget
  • CairoContext::glyphPath »
  • PHP Manual
  • CairoContext
  • The getTolerance purpose

CairoContext::getTolerance

cairo_get_tolerance

(PECL cairo >= 0.1.0)

CairoContext::getTolerance -- cairo_get_tolerance — The getTolerance purpose

Описание

Объектно-ориентированный стиль (method):

public float CairoContext::getTolerance ( void )

Процедурный стиль:

float cairo_get_tolerance ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The glyphPath purpose

  • « CairoContext::getTolerance
  • CairoContext::hasCurrentPoint »
  • PHP Manual
  • CairoContext
  • The glyphPath purpose

CairoContext::glyphPath

cairo_glyph_path

(PECL cairo >= 0.1.0)

CairoContext::glyphPath -- cairo_glyph_path — The glyphPath purpose

Описание

Объектно-ориентированный стиль

public void CairoContext::glyphPath ( array $glyphs )

Процедурный стиль

void cairo_glyph_path ( CairoContext $context , array $glyphs )

Adds closed paths for the glyphs to the current path. The generated path if filled, achieves an effect similar to that of CairoContext::showGlyphs().

Список параметров

context

A CairoContext object

glyphs

Array of glyphs

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...


The hasCurrentPoint purpose

  • « CairoContext::glyphPath
  • CairoContext::identityMatrix »
  • PHP Manual
  • CairoContext
  • The hasCurrentPoint purpose

CairoContext::hasCurrentPoint

cairo_has_current_point

(PECL cairo >= 0.1.0)

CairoContext::hasCurrentPoint -- cairo_has_current_point — The hasCurrentPoint purpose

Описание

Объектно-ориентированный стиль (method):

public bool CairoContext::hasCurrentPoint ( void )

Процедурный стиль:

bool cairo_has_current_point ( CairoContext $context )

Returns whether a current point is defined on the current path. See CairoContext::getCurrentPoint() for details on the current point.

Список параметров

context

A valid CairoContext object.

Возвращаемые значения

Whether a current point is defined

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

var_dump($c->hasCurrentPoint());

$c->moveTo(10, 10);

var_dump($c->hasCurrentPoint());

?>

Результат выполнения данного примера:

bool(false)
bool(true)

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

var_dump(cairo_has_current_point($c));

cairo_move_to($c, 10, 10);

var_dump(cairo_has_current_point($c));

?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • CairoContext::getCurrentPoint() - The getCurrentPoint purpose


The identityMatrix purpose

  • « CairoContext::hasCurrentPoint
  • CairoContext::inFill »
  • PHP Manual
  • CairoContext
  • The identityMatrix purpose

CairoContext::identityMatrix

cairo_identity_matrix

(PECL cairo >= 0.1.0)

CairoContext::identityMatrix -- cairo_identity_matrix — The identityMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::identityMatrix ( void )

Процедурный стиль:

void cairo_identity_matrix ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The inFill purpose

  • « CairoContext::identityMatrix
  • CairoContext::inStroke »
  • PHP Manual
  • CairoContext
  • The inFill purpose

CairoContext::inFill

cairo_in_fill

(PECL cairo >= 0.1.0)

CairoContext::inFill -- cairo_in_fill — The inFill purpose

Описание

Объектно-ориентированный стиль (method):

public bool CairoContext::inFill ( string $x , string $y )

Процедурный стиль:

bool cairo_in_fill ( CairoContext $context , string $x , string $y )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The inStroke purpose

  • « CairoContext::inFill
  • CairoContext::lineTo »
  • PHP Manual
  • CairoContext
  • The inStroke purpose

CairoContext::inStroke

cairo_in_stroke

(PECL cairo >= 0.1.0)

CairoContext::inStroke -- cairo_in_stroke — The inStroke purpose

Описание

Объектно-ориентированный стиль (method):

public bool CairoContext::inStroke ( string $x , string $y )

Процедурный стиль:

bool cairo_in_stroke ( CairoContext $context , string $x , string $y )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The lineTo purpose

  • « CairoContext::inStroke
  • CairoContext::mask »
  • PHP Manual
  • CairoContext
  • The lineTo purpose

CairoContext::lineTo

cairo_line_to

(PECL cairo >= 0.1.0)

CairoContext::lineTo -- cairo_line_to — The lineTo purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::lineTo ( string $x , string $y )

Процедурный стиль:

void cairo_line_to ( CairoContext $context , string $x , string $y )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The mask purpose

  • « CairoContext::lineTo
  • CairoContext::maskSurface »
  • PHP Manual
  • CairoContext
  • The mask purpose

CairoContext::mask

cairo_mask

(PECL cairo >= 0.1.0)

CairoContext::mask -- cairo_mask — The mask purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::mask ( string $pattern )

Процедурный стиль:

void cairo_mask ( CairoContext $context , CairoPattern $pattern )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

pattern

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The maskSurface purpose

  • « CairoContext::mask
  • CairoContext::moveTo »
  • PHP Manual
  • CairoContext
  • The maskSurface purpose

CairoContext::maskSurface

cairo_mask_surface

(PECL cairo >= 0.1.0)

CairoContext::maskSurface -- cairo_mask_surface — The maskSurface purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::maskSurface ( string $surface [, string $x [, string $y ]] )

Процедурный стиль:

void cairo_mask_surface ( CairoContext $context , CairoSurface $surface [, string $x [, string $y ]] )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

surface

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The moveTo purpose

  • « CairoContext::maskSurface
  • CairoContext::newPath »
  • PHP Manual
  • CairoContext
  • The moveTo purpose

CairoContext::moveTo

cairo_move_to

(PECL cairo >= 0.1.0)

CairoContext::moveTo -- cairo_move_to — The moveTo purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::moveTo ( string $x , string $y )

Процедурный стиль:

void cairo_move_to ( CairoContext $context , string $x , string $y )

Begin a new sub-path. After this call the current point will be (x, y).

Список параметров

context

A valid CairoContext object.

x

The x coordinate of the new position.

y

The y coordinate of the new position

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$s = new CairoImageSurface(CairoFormat::ARGB32, 100, 100);
$c = new CairoContext($s);

$c->setSourceRgb(0, 0, 0);
$c->paint();

// Move 10 pixels across, and 10 pixels down
$c->moveTo(10, 10);
$c->lineTo(90, 90);
$c->setLineWidth(2);
$c->setSourceRgb(1, 1, 1);
$c->stroke();

// Move 90 pixels across, and 10 pixels down
$c->moveTo(90, 10);
$c->lineTo(10, 90);
$c->setLineWidth(2);
$c->setSourceRgb(1, 1, 1);
$c->stroke();

$s->writeToPng(dirname(__FILE__) . '/CairoContext_moveTo.png');
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php

$s = cairo_image_surface_create(CAIRO_SURFACE_TYPE_IMAGE, 100, 100);
$c = cairo_create($s);

cairo_set_source_rgb($c, 0, 0, 0);
cairo_paint($c);

// Move 10 pixels across, and 10 pixels down
cairo_move_to($c, 10, 10);
cairo_line_to($c, 90, 90);
cairo_set_line_width($c, 2);
cairo_set_source_rgb($c, 1, 1, 1);
cairo_stroke($c);

// Move 90 pixels across, and 10 pixels down
cairo_move_to($c, 90, 10);
cairo_line_to($c, 10, 90);
cairo_set_line_width($c, 2);
cairo_set_source_rgb($c, 1, 1, 1);
cairo_stroke($c);

cairo_surface_write_to_png($s, dirname(__FILE__) . '/cairo_move_to.png');
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The newPath purpose

  • « CairoContext::moveTo
  • CairoContext::newSubPath »
  • PHP Manual
  • CairoContext
  • The newPath purpose

CairoContext::newPath

cairo_new_path

(PECL cairo >= 0.1.0)

CairoContext::newPath -- cairo_new_path — The newPath purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::newPath ( void )

Процедурный стиль:

void cairo_new_path ( CairoContext $context )

Clears the current path. After this call there will be no path and no current point.

Список параметров

context

A valid CairoContext object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
// [...]
CairoContext::newPath();
?>

Пример #2 Процедурный стиль

<?php
// [...]
cairo_new_path($context);
?>

Смотрите также

  • CairoContext::appendPath() - Appends a path to current path
  • CairoContext::closePath() - Closes the current path


The newSubPath purpose

  • « CairoContext::newPath
  • CairoContext::paint »
  • PHP Manual
  • CairoContext
  • The newSubPath purpose

CairoContext::newSubPath

cairo_new_sub_path

(PECL cairo >= 0.1.0)

CairoContext::newSubPath -- cairo_new_sub_path — The newSubPath purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::newSubPath ( void )

Процедурный стиль:

void cairo_new_sub_path ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The paint purpose

  • « CairoContext::newSubPath
  • CairoContext::paintWithAlpha »
  • PHP Manual
  • CairoContext
  • The paint purpose

CairoContext::paint

cairo_paint

(PECL cairo >= 0.1.0)

CairoContext::paint -- cairo_paint — The paint purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::paint ( void )

Процедурный стиль:

void cairo_paint ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The paintWithAlpha purpose

  • « CairoContext::paint
  • CairoContext::pathExtents »
  • PHP Manual
  • CairoContext
  • The paintWithAlpha purpose

CairoContext::paintWithAlpha

cairo_paint_with_alpha

(PECL cairo >= 0.1.0)

CairoContext::paintWithAlpha -- cairo_paint_with_alpha — The paintWithAlpha purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::paintWithAlpha ( string $alpha )

Процедурный стиль:

void cairo_paint_with_alpha ( CairoContext $context , string $alpha )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

alpha

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The pathExtents purpose

  • « CairoContext::paintWithAlpha
  • CairoContext::popGroup »
  • PHP Manual
  • CairoContext
  • The pathExtents purpose

CairoContext::pathExtents

cairo_path_extents

(PECL cairo >= 0.1.0)

CairoContext::pathExtents -- cairo_path_extents — The pathExtents purpose

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::pathExtents ( void )

Процедурный стиль:

array cairo_path_extents ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The popGroup purpose

  • « CairoContext::pathExtents
  • CairoContext::popGroupToSource »
  • PHP Manual
  • CairoContext
  • The popGroup purpose

CairoContext::popGroup

cairo_pop_group

(PECL cairo >= 0.1.0)

CairoContext::popGroup -- cairo_pop_group — The popGroup purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::popGroup ( void )

Процедурный стиль:

void cairo_pop_group ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The popGroupToSource purpose

  • « CairoContext::popGroup
  • CairoContext::pushGroup »
  • PHP Manual
  • CairoContext
  • The popGroupToSource purpose

CairoContext::popGroupToSource

cairo_pop_group_to_source

(PECL cairo >= 0.1.0)

CairoContext::popGroupToSource -- cairo_pop_group_to_source — The popGroupToSource purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::popGroupToSource ( void )

Процедурный стиль:

void cairo_pop_group_to_source ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The pushGroup purpose

  • « CairoContext::popGroupToSource
  • CairoContext::pushGroupWithContent »
  • PHP Manual
  • CairoContext
  • The pushGroup purpose

CairoContext::pushGroup

cairo_push_group

(PECL cairo >= 0.1.0)

CairoContext::pushGroup -- cairo_push_group — The pushGroup purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::pushGroup ( void )

Процедурный стиль:

void cairo_push_group ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The pushGroupWithContent purpose

  • « CairoContext::pushGroup
  • CairoContext::rectangle »
  • PHP Manual
  • CairoContext
  • The pushGroupWithContent purpose

CairoContext::pushGroupWithContent

cairo_push_group_with_content

(PECL cairo >= 0.1.0)

CairoContext::pushGroupWithContent -- cairo_push_group_with_content — The pushGroupWithContent purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::pushGroupWithContent ( string $content )

Процедурный стиль:

void cairo_push_group_with_content ( CairoContext $context , string $content )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

content

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The rectangle purpose

  • « CairoContext::pushGroupWithContent
  • CairoContext::relCurveTo »
  • PHP Manual
  • CairoContext
  • The rectangle purpose

CairoContext::rectangle

cairo_rectangle

(PECL cairo >= 0.1.0)

CairoContext::rectangle -- cairo_rectangle — The rectangle purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::rectangle ( string $x , string $y , string $width , string $height )

Процедурный стиль:

void cairo_rectangle ( CairoContext $context , string $x , string $y , string $width , string $height )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The relCurveTo purpose

  • « CairoContext::rectangle
  • CairoContext::relLineTo »
  • PHP Manual
  • CairoContext
  • The relCurveTo purpose

CairoContext::relCurveTo

cairo_rel_curve_to

(PECL cairo >= 0.1.0)

CairoContext::relCurveTo -- cairo_rel_curve_to — The relCurveTo purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::relCurveTo ( string $x1 , string $y1 , string $x2 , string $y2 , string $x3 , string $y3 )

Процедурный стиль:

void cairo_rel_curve_to ( CairoContext $context , string $x1 , string $y1 , string $x2 , string $y2 , string $x3 , string $y3 )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x1

Description...

y1

Description...

x2

Description...

y2

Description...

x3

Description...

y3

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The relLineTo purpose

  • « CairoContext::relCurveTo
  • CairoContext::relMoveTo »
  • PHP Manual
  • CairoContext
  • The relLineTo purpose

CairoContext::relLineTo

cairo_rel_line_to

(PECL cairo >= 0.1.0)

CairoContext::relLineTo -- cairo_rel_line_to — The relLineTo purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::relLineTo ( string $x , string $y )

Процедурный стиль:

void cairo_rel_line_to ( CairoContext $context , string $x , string $y )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The relMoveTo purpose

  • « CairoContext::relLineTo
  • CairoContext::resetClip »
  • PHP Manual
  • CairoContext
  • The relMoveTo purpose

CairoContext::relMoveTo

cairo_rel_move_to

(PECL cairo >= 0.1.0)

CairoContext::relMoveTo -- cairo_rel_move_to — The relMoveTo purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::relMoveTo ( string $x , string $y )

Процедурный стиль:

void cairo_rel_move_to ( CairoContext $context , string $x , string $y )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The resetClip purpose

  • « CairoContext::relMoveTo
  • CairoContext::restore »
  • PHP Manual
  • CairoContext
  • The resetClip purpose

CairoContext::resetClip

cairo_reset_clip

(PECL cairo >= 0.1.0)

CairoContext::resetClip -- cairo_reset_clip — The resetClip purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::resetClip ( void )

Процедурный стиль:

void cairo_reset_clip ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The restore purpose

  • « CairoContext::resetClip
  • CairoContext::rotate »
  • PHP Manual
  • CairoContext
  • The restore purpose

CairoContext::restore

cairo_restore

(PECL cairo >= 0.1.0)

CairoContext::restore -- cairo_restore — The restore purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::restore ( void )

Процедурный стиль:

void cairo_restore ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The rotate purpose

  • « CairoContext::restore
  • CairoContext::save »
  • PHP Manual
  • CairoContext
  • The rotate purpose

CairoContext::rotate

cairo_rotate

(PECL cairo >= 0.1.0)

CairoContext::rotate -- cairo_rotate — The rotate purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::rotate ( string $angle )

Процедурный стиль:

void cairo_rotate ( CairoContext $context , string $angle )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

angle

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The save purpose

  • « CairoContext::rotate
  • CairoContext::scale »
  • PHP Manual
  • CairoContext
  • The save purpose

CairoContext::save

cairo_save

(PECL cairo >= 0.1.0)

CairoContext::save -- cairo_save — The save purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::save ( void )

Процедурный стиль:

void cairo_save ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The scale purpose

  • « CairoContext::save
  • CairoContext::selectFontFace »
  • PHP Manual
  • CairoContext
  • The scale purpose

CairoContext::scale

cairo_scale

(PECL cairo >= 0.1.0)

CairoContext::scale -- cairo_scale — The scale purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::scale ( string $x , string $y )

Процедурный стиль:

void cairo_scale ( CairoContext $context , string $x , string $y )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The selectFontFace purpose

  • « CairoContext::scale
  • CairoContext::setAntialias »
  • PHP Manual
  • CairoContext
  • The selectFontFace purpose

CairoContext::selectFontFace

cairo_select_font_face

(PECL cairo >= 0.1.0)

CairoContext::selectFontFace -- cairo_select_font_face — The selectFontFace purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::selectFontFace ( string $family [, string $slant [, string $weight ]] )

Процедурный стиль:

void cairo_select_font_face ( CairoContext $context , string $family [, string $slant [, string $weight ]] )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

family

Description...

slant

Description...

weight

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setAntialias purpose

  • « CairoContext::selectFontFace
  • CairoContext::setDash »
  • PHP Manual
  • CairoContext
  • The setAntialias purpose

CairoContext::setAntialias

cairo_set_antialias

(PECL cairo >= 0.1.0)

CairoContext::setAntialias -- cairo_set_antialias — The setAntialias purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setAntialias ([ string $antialias ] )

Процедурный стиль:

void cairo_set_antialias ( CairoContext $context [, string $antialias ] )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

antialias

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setDash purpose

  • « CairoContext::setAntialias
  • CairoContext::setFillRule »
  • PHP Manual
  • CairoContext
  • The setDash purpose

CairoContext::setDash

cairo_set_dash

(PECL cairo >= 0.1.0)

CairoContext::setDash -- cairo_set_dash — The setDash purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setDash ( string $dashes [, string $offset ] )

Процедурный стиль:

void cairo_set_dash ( CairoContext $context , array $dashes [, string $offset ] )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

dashes

Description...

offset

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setFillRule purpose

  • « CairoContext::setDash
  • CairoContext::setFontFace »
  • PHP Manual
  • CairoContext
  • The setFillRule purpose

CairoContext::setFillRule

cairo_set_fill_rule

(PECL cairo >= 0.1.0)

CairoContext::setFillRule -- cairo_set_fill_rule — The setFillRule purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setFillRule ( string $setting )

Процедурный стиль:

void cairo_set_fill_rule ( CairoContext $context , string $setting )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

setting

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setFontFace purpose

  • « CairoContext::setFillRule
  • CairoContext::setFontMatrix »
  • PHP Manual
  • CairoContext
  • The setFontFace purpose

CairoContext::setFontFace

cairo_set_font_face

(PECL cairo >= 0.1.0)

CairoContext::setFontFace -- cairo_set_font_face — The setFontFace purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setFontFace ( CairoFontFace $fontface )

Процедурный стиль:

void cairo_set_font_face ( CairoContext $context , CairoFontFace $fontface )

Sets the font-face for a given context.

Список параметров

context

A CairoContext object to change the font-face for.

fontface

A CairoFontFace object

Возвращаемые значения

No value is returned

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
// New surface with white background
$s = new CairoImageSurface(CairoFormat::ARGB32, 300, 100);
$c = new CairoContext($s);
$c->setSourceRgb(1, 1, 1);
$c->paint();

// Draw some text
$c->setSourceRgb(0, 0, 0);
$c->moveTo(10, 60);
// Create a new font face
$f = new CairoToyFontFace("sans-serif", CairoFontSlant::NORMAL, CairoFontWeight::NORMAL);
$c->setFontFace($f);
$c->setFontSize(30);
$c->showText('Hello, World!');
$s->writeToPng(dirname(__FILE__) . '/setFontFace.png');
?>

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Смотрите также

  • CairoContext::setFontSize() - The setFontSize purpose
  • CairoContext::showText() - The showText purpose


The setFontMatrix purpose

  • « CairoContext::setFontFace
  • CairoContext::setFontOptions »
  • PHP Manual
  • CairoContext
  • The setFontMatrix purpose

CairoContext::setFontMatrix

cairo_set_font_matrix

(PECL cairo >= 0.1.0)

CairoContext::setFontMatrix -- cairo_set_font_matrix — The setFontMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setFontMatrix ( string $matrix )

Процедурный стиль:

void cairo_set_font_matrix ( CairoContext $context , CairoMatrix $matrix )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

matrix

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setFontOptions purpose

  • « CairoContext::setFontMatrix
  • CairoContext::setFontSize »
  • PHP Manual
  • CairoContext
  • The setFontOptions purpose

CairoContext::setFontOptions

cairo_set_font_options

(PECL cairo >= 0.1.0)

CairoContext::setFontOptions -- cairo_set_font_options — The setFontOptions purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setFontOptions ( string $fontoptions )

Процедурный стиль:

void cairo_set_font_options ( CairoContext $context , CairoFontOptions $fontoptions )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

fontoptions

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setFontSize purpose

  • « CairoContext::setFontOptions
  • CairoContext::setLineCap »
  • PHP Manual
  • CairoContext
  • The setFontSize purpose

CairoContext::setFontSize

cairo_set_font_size

(PECL cairo >= 0.1.0)

CairoContext::setFontSize -- cairo_set_font_size — The setFontSize purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setFontSize ( string $size )

Процедурный стиль:

void cairo_set_font_size ( CairoContext $context , string $size )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

size

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setLineCap purpose

  • « CairoContext::setFontSize
  • CairoContext::setLineJoin »
  • PHP Manual
  • CairoContext
  • The setLineCap purpose

CairoContext::setLineCap

cairo_set_line_cap

(PECL cairo >= 0.1.0)

CairoContext::setLineCap -- cairo_set_line_cap — The setLineCap purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setLineCap ( string $setting )

Процедурный стиль:

void cairo_set_line_cap ( CairoContext $context , string $setting )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

setting

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setLineJoin purpose

  • « CairoContext::setLineCap
  • CairoContext::setLineWidth »
  • PHP Manual
  • CairoContext
  • The setLineJoin purpose

CairoContext::setLineJoin

cairo_set_line_join

(PECL cairo >= 0.1.0)

CairoContext::setLineJoin -- cairo_set_line_join — The setLineJoin purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setLineJoin ( string $setting )

Процедурный стиль:

void cairo_set_line_join ( CairoContext $context , string $setting )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

setting

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setLineWidth purpose

  • « CairoContext::setLineJoin
  • CairoContext::setMatrix »
  • PHP Manual
  • CairoContext
  • The setLineWidth purpose

CairoContext::setLineWidth

cairo_set_line_width

(PECL cairo >= 0.1.0)

CairoContext::setLineWidth -- cairo_set_line_width — The setLineWidth purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setLineWidth ( string $width )

Процедурный стиль:

void cairo_set_line_width ( CairoContext $context , string $width )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

width

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setMatrix purpose

  • « CairoContext::setLineWidth
  • CairoContext::setMiterLimit »
  • PHP Manual
  • CairoContext
  • The setMatrix purpose

CairoContext::setMatrix

cairo_set_matrix

(PECL cairo >= 0.1.0)

CairoContext::setMatrix -- cairo_set_matrix — The setMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setMatrix ( string $matrix )

Процедурный стиль:

void cairo_set_matrix ( CairoContext $context , CairoMatrix $matrix )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

matrix

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setMiterLimit purpose

  • « CairoContext::setMatrix
  • CairoContext::setOperator »
  • PHP Manual
  • CairoContext
  • The setMiterLimit purpose

CairoContext::setMiterLimit

cairo_set_miter_limit

(PECL cairo >= 0.1.0)

CairoContext::setMiterLimit -- cairo_set_miter_limit — The setMiterLimit purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setMiterLimit ( string $limit )

Процедурный стиль:

void cairo_set_miter_limit ( CairoContext $context , string $limit )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

limit

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setOperator purpose

  • « CairoContext::setMiterLimit
  • CairoContext::setScaledFont »
  • PHP Manual
  • CairoContext
  • The setOperator purpose

CairoContext::setOperator

cairo_set_operator

(PECL cairo >= 0.1.0)

CairoContext::setOperator -- cairo_set_operator — The setOperator purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setOperator ( string $setting )

Процедурный стиль:

void cairo_set_operator ( CairoContext $context , string $setting )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

setting

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setScaledFont purpose

  • « CairoContext::setOperator
  • CairoContext::setSource »
  • PHP Manual
  • CairoContext
  • The setScaledFont purpose

CairoContext::setScaledFont

cairo_set_scaled_font

(PECL cairo >= 0.1.0)

CairoContext::setScaledFont -- cairo_set_scaled_font — The setScaledFont purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setScaledFont ( string $scaledfont )

Процедурный стиль:

void cairo_set_scaled_font ( CairoContext $context , CairoScaledFont $scaledfont )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

scaledfont

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSource purpose

  • « CairoContext::setScaledFont
  • CairoContext::setSourceRGB »
  • PHP Manual
  • CairoContext
  • The setSource purpose

CairoContext::setSource

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSource -- cairo_set_source — The setSource purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setSource ( string $pattern )

Процедурный стиль:

void cairo_set_source ( CairoContext $context , CairoPattern $pattern )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

pattern

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSourceRGB purpose

  • « CairoContext::setSource
  • CairoContext::setSourceRGBA »
  • PHP Manual
  • CairoContext
  • The setSourceRGB purpose

CairoContext::setSourceRGB

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSourceRGB -- cairo_set_source — The setSourceRGB purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setSourceRGB ( string $red , string $green , string $blue )

Процедурный стиль:

void cairo_set_source ( CairoContext $context , CairoPattern $pattern )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

pattern

Description...

red

Description...

green

Description...

blue

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSourceRGBA purpose

  • « CairoContext::setSourceRGB
  • CairoContext::setSourceSurface »
  • PHP Manual
  • CairoContext
  • The setSourceRGBA purpose

CairoContext::setSourceRGBA

cairo_set_source

(PECL cairo >= 0.1.0)

CairoContext::setSourceRGBA -- cairo_set_source — The setSourceRGBA purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setSourceRGBA ( string $red , string $green , string $blue , string $alpha )

Процедурный стиль:

void cairo_set_source ( CairoContext $context , CairoPattern $pattern )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

pattern

Description...

red

Description...

green

Description...

blue

Description...

alpha

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSourceSurface purpose

  • « CairoContext::setSourceRGBA
  • CairoContext::setTolerance »
  • PHP Manual
  • CairoContext
  • The setSourceSurface purpose

CairoContext::setSourceSurface

cairo_set_source_surface

(PECL cairo >= 0.1.0)

CairoContext::setSourceSurface -- cairo_set_source_surface — The setSourceSurface purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setSourceSurface ( string $surface [, string $x [, string $y ]] )

Процедурный стиль:

void cairo_set_source_surface ( CairoContext $context , CairoSurface $surface [, string $x [, string $y ]] )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

surface

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setTolerance purpose

  • « CairoContext::setSourceSurface
  • CairoContext::showPage »
  • PHP Manual
  • CairoContext
  • The setTolerance purpose

CairoContext::setTolerance

cairo_set_tolerance

(PECL cairo >= 0.1.0)

CairoContext::setTolerance -- cairo_set_tolerance — The setTolerance purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::setTolerance ( string $tolerance )

Процедурный стиль:

void cairo_set_tolerance ( CairoContext $context , string $tolerance )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

tolerance

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The showPage purpose

  • « CairoContext::setTolerance
  • CairoContext::showText »
  • PHP Manual
  • CairoContext
  • The showPage purpose

CairoContext::showPage

cairo_show_page

(PECL cairo >= 0.1.0)

CairoContext::showPage -- cairo_show_page — The showPage purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::showPage ( void )

Процедурный стиль:

void cairo_show_page ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The showText purpose

  • « CairoContext::showPage
  • CairoContext::status »
  • PHP Manual
  • CairoContext
  • The showText purpose

CairoContext::showText

cairo_show_text

(PECL cairo >= 0.1.0)

CairoContext::showText -- cairo_show_text — The showText purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::showText ( string $text )

Процедурный стиль:

void cairo_show_text ( CairoContext $context , string $text )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

text

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The status purpose

  • « CairoContext::showText
  • CairoContext::stroke »
  • PHP Manual
  • CairoContext
  • The status purpose

CairoContext::status

cairo_status

(PECL cairo >= 0.1.0)

CairoContext::status -- cairo_status — The status purpose

Описание

Объектно-ориентированный стиль (method):

public int CairoContext::status ( void )

Процедурный стиль:

int cairo_status ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The stroke purpose

  • « CairoContext::status
  • CairoContext::strokeExtents »
  • PHP Manual
  • CairoContext
  • The stroke purpose

CairoContext::stroke

cairo_stroke

(PECL cairo >= 0.1.0)

CairoContext::stroke -- cairo_stroke — The stroke purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::stroke ( void )

Процедурный стиль:

void cairo_stroke ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The strokeExtents purpose

  • « CairoContext::stroke
  • CairoContext::strokePreserve »
  • PHP Manual
  • CairoContext
  • The strokeExtents purpose

CairoContext::strokeExtents

cairo_stroke_extents

(PECL cairo >= 0.1.0)

CairoContext::strokeExtents -- cairo_stroke_extents — The strokeExtents purpose

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::strokeExtents ( void )

Процедурный стиль:

array cairo_stroke_extents ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The strokePreserve purpose

  • « CairoContext::strokeExtents
  • CairoContext::textExtents »
  • PHP Manual
  • CairoContext
  • The strokePreserve purpose

CairoContext::strokePreserve

cairo_stroke_preserve

(PECL cairo >= 0.1.0)

CairoContext::strokePreserve -- cairo_stroke_preserve — The strokePreserve purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::strokePreserve ( void )

Процедурный стиль:

void cairo_stroke_preserve ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The textExtents purpose

  • « CairoContext::strokePreserve
  • CairoContext::textPath »
  • PHP Manual
  • CairoContext
  • The textExtents purpose

CairoContext::textExtents

cairo_text_extents

(PECL cairo >= 0.1.0)

CairoContext::textExtents -- cairo_text_extents — The textExtents purpose

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::textExtents ( string $text )

Процедурный стиль:

array cairo_text_extents ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

text

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The textPath purpose

  • « CairoContext::textExtents
  • CairoContext::transform »
  • PHP Manual
  • CairoContext
  • The textPath purpose

CairoContext::textPath

cairo_text_path

(PECL cairo >= 0.1.0)

CairoContext::textPath -- cairo_text_path — The textPath purpose

Описание

Объектно-ориентированный стиль

public void CairoContext::textPath ( string $string )

Процедурный стиль

void cairo_text_path ( CairoContext $context , string $text )

Adds closed paths for text to the current path. The generated path, if filled, achieves an effect similar to that of CairoContext::showText().

Text conversion and positioning is done similar to CairoContext::showText().

Like CairoContext::showText(), after this call the current point is moved to the origin of where the next glyph would be placed in this same progression. That is, the current point will be at the origin of the final glyph offset by its advance values. This allows for chaining multiple calls to CairoContext::showText() without having to set current point in between.

Note: The CairoContext::textPath() function call is part of what the cairo designers call the "toy" text API. It is convenient for short demos and simple programs, but it is not expected to be adequate for serious text-using applications. See CairoContext::glyphPath() for the "real" text path API in cairo.

Список параметров

context

A CairoContext object

text

Description...

string

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The transform purpose

  • « CairoContext::textPath
  • CairoContext::translate »
  • PHP Manual
  • CairoContext
  • The transform purpose

CairoContext::transform

cairo_transform

(PECL cairo >= 0.1.0)

CairoContext::transform -- cairo_transform — The transform purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::transform ( string $matrix )

Процедурный стиль:

void cairo_transform ( CairoContext $context , CairoMatrix $matrix )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

matrix

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The translate purpose

  • « CairoContext::transform
  • CairoContext::userToDevice »
  • PHP Manual
  • CairoContext
  • The translate purpose

CairoContext::translate

cairo_translate

(PECL cairo >= 0.1.0)

CairoContext::translate -- cairo_translate — The translate purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoContext::translate ( string $x , string $y )

Процедурный стиль:

void cairo_translate ( CairoContext $context , string $x , string $y )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The userToDevice purpose

  • « CairoContext::translate
  • CairoContext::userToDeviceDistance »
  • PHP Manual
  • CairoContext
  • The userToDevice purpose

CairoContext::userToDevice

cairo_user_to_device

(PECL cairo >= 0.1.0)

CairoContext::userToDevice -- cairo_user_to_device — The userToDevice purpose

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::userToDevice ( string $x , string $y )

Процедурный стиль:

array cairo_user_to_device ( CairoContext $context , string $x , string $y )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The userToDeviceDistance purpose

  • « CairoContext::userToDevice
  • CairoException »
  • PHP Manual
  • CairoContext
  • The userToDeviceDistance purpose

CairoContext::userToDeviceDistance

cairo_user_to_device_distance

(PECL cairo >= 0.1.0)

CairoContext::userToDeviceDistance -- cairo_user_to_device_distance — The userToDeviceDistance purpose

Описание

Объектно-ориентированный стиль (method):

public array CairoContext::userToDeviceDistance ( string $x , string $y )

Процедурный стиль:

array cairo_user_to_device_distance ( CairoContext $context , string $x , string $y )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoException

(PECL cairo >= 0.1.0)

Введение

Класс Exception, выбрасываемый функциями и методами Cairo

Обзор классов

CairoException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The CairoStatus class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

CairoStatus is used to indicate errors that can occur when using Cairo. In some cases it is returned directly by functions. but when using CairoContext, the last error, if any, is stored in the object and can be retrieved with CairoContext::status() or cairo_status(). New entries may be added in future versions.

Use Cairo::statusToString() or cairo_status_to_string() to get a human-readable representation of an error message.

Обзор классов

CairoStatus {
/* Константы */
const integer SUCCESS = 0 ;
const integer NO_MEMORY = 1 ;
const integer INVALID_RESTORE = 2 ;
const integer INVALID_POP_GROUP = 3 ;
const integer NO_CURRENT_POINT = 4 ;
const integer INVALID_MATRIX = 5 ;
const integer INVALID_STATUS = 6 ;
const integer NULL_POINTER = 7 ;
const integer INVALID_STRING = 8 ;
const integer INVALID_PATH_DATA = 9 ;
const integer READ_ERROR = 10 ;
const integer WRITE_ERROR = 11 ;
const integer SURFACE_FINISHED = 12 ;
const integer SURFACE_TYPE_MISMATCH = 13 ;
const integer PATTERN_TYPE_MISMATCH = 14 ;
const integer INVALID_CONTENT = 15 ;
const integer INVALID_FORMAT = 16 ;
const integer INVALID_VISUAL = 17 ;
const integer FILE_NOT_FOUND = 18 ;
const integer INVALID_DASH = 19 ;
const integer INVALID_DSC_COMMENT = 20 ;
const integer INVALID_INDEX = 21 ;
const integer CLIP_NOT_REPRESENTABLE = 22 ;
const integer TEMP_FILE_ERROR = 23 ;
const integer INVALID_STRIDE = 24 ;
}

Предопределенные константы

CairoStatus::SUCCESS

No error has occurred

CairoStatus::NO_MEMORY

Out of memory

CairoStatus::INVALID_RESTORE

cairo_restore() called without matching cairo_save()

CairoStatus::INVALID_POP_GROUP

No saved group to pop

CairoStatus::NO_CURRENT_POINT

No current point defined

CairoStatus::INVALID_MATRIX

Invalid matrix (not invertible)

CairoStatus::INVALID_STATUS

Invalid value for an input CairoStatus>

CairoStatus::NULL_POINTER

Null pointer

CairoStatus::INVALID_STRING

Input string not valid UTF-8 string

CairoStatus::INVALID_PATH_DATA

Input path data not valid

CairoStatus::READ_ERROR

Error while reading from input stream

CairoStatus::WRITE_ERROR

Error while writing to output stream

CairoStatus::SURFACE_FINISHED

Target surface has been finished

CairoStatus::SURFACE_TYPE_MISMATCH

The surface type is not appropriate for the operation

CairoStatus::PATTERN_TYPE_MISMATCH

The pattern type is not appropriate for the operation

CairoStatus::INVALID_CONTENT

Invalid value for an input CairoContent

CairoStatus::INVALID_FORMAT

Invalid value for an input CairoFormat

CairoStatus::INVALID_VISUAL

Invalid value for an input Visual

CairoStatus::FILE_NOT_FOUND

File not found

CairoStatus::INVALID_DASH

Invalid value for a dash setting

CairoStatus::INVALID_DSC_COMMENT

Invalid value for a DSC comment

CairoStatus::INVALID_INDEX

Invalid index passed to getter

CairoStatus::CLIP_NOT_REPRESENTABLE

Clip region not representable in desired format

CairoStatus::TEMP_FILE_ERROR

Error creating or writing to a temporary file

CairoStatus::INVALID_STRIDE

Invalid value for CairoStride


The CairoSurface class

(PECL cairo >= 0.1.0)

Введение

This is the base-class for all other Surface types. CairoSurface is the abstract type representing all different drawing targets that cairo can render to. The actual drawings are performed using a CairoContext.

Обзор классов

CairoSurface {
/* Методы */
public __construct ( void )
public void copyPage ( void )
public void createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void finish ( void )
public void flush ( void )
public int getContent ( void )
public array getDeviceOffset ( void )
public void getFontOptions ( void )
public int getType ( void )
public void markDirty ( void )
public void markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void setDeviceOffset ( string $x , string $y )
public void setFallbackResolution ( string $x , string $y )
public void showPage ( void )
public int status ( void )
public void writeToPng ( string $file )
}

Содержание

  • CairoSurface::__construct — The __construct purpose
  • CairoSurface::copyPage — The copyPage purpose
  • CairoSurface::createSimilar — The createSimilar purpose
  • CairoSurface::finish — The finish purpose
  • CairoSurface::flush — The flush purpose
  • CairoSurface::getContent — The getContent purpose
  • CairoSurface::getDeviceOffset — The getDeviceOffset purpose
  • CairoSurface::getFontOptions — The getFontOptions purpose
  • CairoSurface::getType — The getType purpose
  • CairoSurface::markDirty — The markDirty purpose
  • CairoSurface::markDirtyRectangle — The markDirtyRectangle purpose
  • CairoSurface::setDeviceOffset — The setDeviceOffset purpose
  • CairoSurface::setFallbackResolution — The setFallbackResolution purpose
  • CairoSurface::showPage — The showPage purpose
  • CairoSurface::status — The status purpose
  • CairoSurface::writeToPng — The writeToPng purpose


The __construct purpose

  • « CairoSurface
  • CairoSurface::copyPage »
  • PHP Manual
  • CairoSurface
  • The __construct purpose

CairoSurface::__construct

(PECL cairo >= 0.1.0)

CairoSurface::__construct — The __construct purpose

Описание

public CairoSurface::__construct ( void )

CairoSurface is an abstract type and, as such, should not be instantiated in your PHP scripts.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

No return value

Примечания

Замечание:

If you're using a PHP version before 5.3, you must destroy the CairoContext associated with a CairoSurface after you destroy the CairoSurface. Otherwise, you're left with a Circular-reference memory leak.

Смотрите также

  • CairoImageSurface::__construct() - Creates a new CairoImageSurface


The copyPage purpose

  • « CairoSurface::__construct
  • CairoSurface::createSimilar »
  • PHP Manual
  • CairoSurface
  • The copyPage purpose

CairoSurface::copyPage

cairo_copy_page

(PECL cairo >= 0.1.0)

CairoSurface::copyPage -- cairo_copy_page — The copyPage purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoSurface::copyPage ( void )

Процедурный стиль:

void cairo_copy_page ( CairoContext $context )

Emits the current page for backends that support multiple pages, but doesn't clear it, so that the contents of the current page will be retained for the next page. Use CairoSurface::showPage() if you want to get an empty page after the emission.

Список параметров

context

A CairoContext object

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The createSimilar purpose

  • « CairoSurface::copyPage
  • CairoSurface::finish »
  • PHP Manual
  • CairoSurface
  • The createSimilar purpose

CairoSurface::createSimilar

(PECL cairo >= 0.1.0)

CairoSurface::createSimilar — The createSimilar purpose

Описание

public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )

Create a new surface that is as compatible as possible with an existing surface. For example the new surface will have the same fallback resolution and font options as other. Generally, the new surface will also use the same backend as other, unless that is not possible for some reason. The type of the returned surface may be examined with CairoSurface::getType(). Initially the surface contents are all 0 (transparent if contents have transparency, black otherwise.)

Список параметров

other

An existing surface used to select the backend of the new surface

content

The content for the new surface. See the CairoContent class for possible values.

width

Width of the new surface, (in device-space units).

height

Height of the new surface, (in device-space units).

Возвращаемые значения

A new CairoSurface

Примеры

Пример #1 CairoSurface::createSimilar() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoContent()


The finish purpose

  • « CairoSurface::createSimilar
  • CairoSurface::flush »
  • PHP Manual
  • CairoSurface
  • The finish purpose

CairoSurface::finish

(PECL cairo >= 0.1.0)

CairoSurface::finish — The finish purpose

Описание

public void CairoSurface::finish ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::finish() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The flush purpose

  • « CairoSurface::finish
  • CairoSurface::getContent »
  • PHP Manual
  • CairoSurface
  • The flush purpose

CairoSurface::flush

(PECL cairo >= 0.1.0)

CairoSurface::flush — The flush purpose

Описание

public void CairoSurface::flush ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::flush() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getContent purpose

  • « CairoSurface::flush
  • CairoSurface::getDeviceOffset »
  • PHP Manual
  • CairoSurface
  • The getContent purpose

CairoSurface::getContent

(PECL cairo >= 0.1.0)

CairoSurface::getContent — The getContent purpose

Описание

public int CairoSurface::getContent ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::getContent() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getDeviceOffset purpose

  • « CairoSurface::getContent
  • CairoSurface::getFontOptions »
  • PHP Manual
  • CairoSurface
  • The getDeviceOffset purpose

CairoSurface::getDeviceOffset

(PECL cairo >= 0.1.0)

CairoSurface::getDeviceOffset — The getDeviceOffset purpose

Описание

public array CairoSurface::getDeviceOffset ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::getDeviceOffset() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontOptions purpose

  • « CairoSurface::getDeviceOffset
  • CairoSurface::getType »
  • PHP Manual
  • CairoSurface
  • The getFontOptions purpose

CairoSurface::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoSurface::getFontOptions -- cairo_get_font_options — The getFontOptions purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoSurface::getFontOptions ( void )

Процедурный стиль:

void cairo_get_font_options ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getType purpose

  • « CairoSurface::getFontOptions
  • CairoSurface::markDirty »
  • PHP Manual
  • CairoSurface
  • The getType purpose

CairoSurface::getType

(PECL cairo >= 0.1.0)

CairoSurface::getType — The getType purpose

Описание

public int CairoSurface::getType ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::getType() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The markDirty purpose

  • « CairoSurface::getType
  • CairoSurface::markDirtyRectangle »
  • PHP Manual
  • CairoSurface
  • The markDirty purpose

CairoSurface::markDirty

(PECL cairo >= 0.1.0)

CairoSurface::markDirty — The markDirty purpose

Описание

public void CairoSurface::markDirty ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::markDirty() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The markDirtyRectangle purpose

  • « CairoSurface::markDirty
  • CairoSurface::setDeviceOffset »
  • PHP Manual
  • CairoSurface
  • The markDirtyRectangle purpose

CairoSurface::markDirtyRectangle

(PECL cairo >= 0.1.0)

CairoSurface::markDirtyRectangle — The markDirtyRectangle purpose

Описание

public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

Description...

y

Description...

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::markDirtyRectangle() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setDeviceOffset purpose

  • « CairoSurface::markDirtyRectangle
  • CairoSurface::setFallbackResolution »
  • PHP Manual
  • CairoSurface
  • The setDeviceOffset purpose

CairoSurface::setDeviceOffset

(PECL cairo >= 0.1.0)

CairoSurface::setDeviceOffset — The setDeviceOffset purpose

Описание

public void CairoSurface::setDeviceOffset ( string $x , string $y )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::setDeviceOffset() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setFallbackResolution purpose

  • « CairoSurface::setDeviceOffset
  • CairoSurface::showPage »
  • PHP Manual
  • CairoSurface
  • The setFallbackResolution purpose

CairoSurface::setFallbackResolution

(PECL cairo >= 0.1.0)

CairoSurface::setFallbackResolution — The setFallbackResolution purpose

Описание

public void CairoSurface::setFallbackResolution ( string $x , string $y )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

Description...

y

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::setFallbackResolution() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The showPage purpose

  • « CairoSurface::setFallbackResolution
  • CairoSurface::status »
  • PHP Manual
  • CairoSurface
  • The showPage purpose

CairoSurface::showPage

cairo_show_page

(PECL cairo >= 0.1.0)

CairoSurface::showPage -- cairo_show_page — The showPage purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoSurface::showPage ( void )

Процедурный стиль:

void cairo_show_page ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The status purpose

  • « CairoSurface::showPage
  • CairoSurface::writeToPng »
  • PHP Manual
  • CairoSurface
  • The status purpose

CairoSurface::status

cairo_status

(PECL cairo >= 0.1.0)

CairoSurface::status -- cairo_status — The status purpose

Описание

Объектно-ориентированный стиль (method):

public int CairoSurface::status ( void )

Процедурный стиль:

int cairo_status ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The writeToPng purpose

  • « CairoSurface::status
  • CairoSvgSurface »
  • PHP Manual
  • CairoSurface
  • The writeToPng purpose

CairoSurface::writeToPng

(PECL cairo >= 0.1.0)

CairoSurface::writeToPng — The writeToPng purpose

Описание

public void CairoSurface::writeToPng ( string $file )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurface::writeToPng() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Svg Surface Backend

(PECL cairo >= 0.1.0)

Введение

Svg specific surface class, uses the SVG (standard vector graphics) surface backend.

Обзор классов

CairoSvgSurface extends CairoSurface {
/* Методы */
public __construct ( string $file , float $width , float $height )
public static array getVersions ( void )
public void restrictToVersion ( string $version )
public static string versionToString ( int $version )
/* Наследуемые методы */
public CairoSurface::__construct ( void )
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

Содержание

  • CairoSvgSurface::__construct — The __construct purpose
  • CairoSvgSurface::getVersions — Used to retrieve a list of supported SVG versions
  • CairoSvgSurface::restrictToVersion — The restrictToVersion purpose
  • CairoSvgSurface::versionToString — The versionToString purpose


The __construct purpose

  • « CairoSvgSurface
  • CairoSvgSurface::getVersions »
  • PHP Manual
  • CairoSvgSurface
  • The __construct purpose

CairoSvgSurface::__construct

(PECL cairo >= 0.1.0)

CairoSvgSurface::__construct — The __construct purpose

Описание

public CairoSvgSurface::__construct ( string $file , float $width , float $height )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Description...

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSvgSurface::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Used to retrieve a list of supported SVG versions

  • « CairoSvgSurface::__construct
  • CairoSvgSurface::restrictToVersion »
  • PHP Manual
  • CairoSvgSurface
  • Used to retrieve a list of supported SVG versions

CairoSvgSurface::getVersions

cairo_svg_surface_get_versions

(PECL cairo >= 0.1.0)

CairoSvgSurface::getVersions -- cairo_svg_surface_get_versions — Used to retrieve a list of supported SVG versions

Описание

Объектно-ориентированный стиль (method):

public static array CairoSvgSurface::getVersions ( void )

Процедурный стиль:

array cairo_svg_get_versions ( void )

Returns a numerically indexed array of currently available CairoSvgVersion constants. In order to retreive the string values for each item, use CairoSvgSurface::versionToString().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a numerically indexed array of integer values.

Примеры

Пример #1 CairoSvgSurface::getVersions() example

<?php
/* Grab our list of versions */
$versions = CairoSvgSurface::getVersions();
var_dump($versions);

/* echo the string name of each version */
foreach($versions as $id) {
    echo CairoSvgSurface::versionToString($id), PHP_EOL;
}
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}
SVG 1.1
SVG 1.2

Пример #2 Процедурный стиль

<?php
/* Grab our list of versions */
$versions = cairo_svg_surface_get_versions();
var_dump($versions);

/* echo the string name of each version */
foreach($versions as $id) {
    echo cairo_svg_surface_version_to_string($id), PHP_EOL;
}
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  [0]=>
  int(0)
  [1]=>
  int(1)
}
SVG 1.1
SVG 1.2

Смотрите также

  • CairoSvgSurface::versionToString() - The versionToString purpose


The restrictToVersion purpose

  • « CairoSvgSurface::getVersions
  • CairoSvgSurface::versionToString »
  • PHP Manual
  • CairoSvgSurface
  • The restrictToVersion purpose

CairoSvgSurface::restrictToVersion

(PECL cairo >= 0.1.0)

CairoSvgSurface::restrictToVersion — The restrictToVersion purpose

Описание

public void CairoSvgSurface::restrictToVersion ( string $version )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

version

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSvgSurface::restrictToVersion() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The versionToString purpose

  • « CairoSvgSurface::restrictToVersion
  • CairoImageSurface »
  • PHP Manual
  • CairoSvgSurface
  • The versionToString purpose

CairoSvgSurface::versionToString

(PECL cairo >= 0.1.0)

CairoSvgSurface::versionToString — The versionToString purpose

Описание

public static string CairoSvgSurface::versionToString ( int $version )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

version

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSvgSurface::versionToString() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoImageSurface class

(PECL cairo >= 0.1.0)

Введение

CairoImageSurface provide the ability to render to memory buffers either allocated by cairo or by the calling code. The supported image formats are those defined in CairoFormat.

Обзор классов

CairoImageSurface extends CairoSurface {
/* Методы */
public __construct ( int $format , int $width , int $height )
public static void createForData ( string $data , int $format , int $width , int $height [, int $stride = -1 ] )
public static CairoImageSurface createFromPng ( string $file )
public string getData ( void )
public int getFormat ( void )
public int getHeight ( void )
public int getStride ( void )
public int getWidth ( void )
/* Наследуемые методы */
public CairoSurface::__construct ( void )
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

Содержание

  • CairoImageSurface::__construct — Creates a new CairoImageSurface
  • CairoImageSurface::createForData — The createForData purpose
  • CairoImageSurface::createFromPng — Creates a new CairoImageSurface form a png image file
  • CairoImageSurface::getData — Gets the image data as string
  • CairoImageSurface::getFormat — Get the image format
  • CairoImageSurface::getHeight — Retrieves the height of the CairoImageSurface
  • CairoImageSurface::getStride — The getStride purpose
  • CairoImageSurface::getWidth — Retrieves the width of the CairoImageSurface


Creates a new CairoImageSurface

  • « CairoImageSurface
  • CairoImageSurface::createForData »
  • PHP Manual
  • CairoImageSurface
  • Creates a new CairoImageSurface

CairoImageSurface::__construct

(PECL cairo >= 0.1.0)

CairoImageSurface::__construct — Creates a new CairoImageSurface

Описание

public CairoImageSurface::__construct ( int $format , int $width , int $height )

Creates a new CairoImageSuface object of type format

Список параметров

format

Can be any defined in CairoFormat

width

The width of the image surface

height

The height of the image surface

Возвращаемые значения

A new CairoImageSurface

Примеры

Пример #1 CairoImageSurface::__construct() example

<?php

// Creates a image with ARGB32 format of 50 width and 50 height
$surface = new CairoImageSurface(CairoFormat::ARGB32, 50,50);

?>

Смотрите также

  • CairoContext::__construct() - Creates a new CairoContext


The createForData purpose

  • « CairoImageSurface::__construct
  • CairoImageSurface::createFromPng »
  • PHP Manual
  • CairoImageSurface
  • The createForData purpose

CairoImageSurface::createForData

(PECL cairo >= 0.1.0)

CairoImageSurface::createForData — The createForData purpose

Описание

public static void CairoImageSurface::createForData ( string $data , int $format , int $width , int $height [, int $stride = -1 ] )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

data

Description...

format

Description...

width

Description...

height

Description...

stride

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoImageSurface::createForData() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Creates a new CairoImageSurface form a png image file

  • « CairoImageSurface::createForData
  • CairoImageSurface::getData »
  • PHP Manual
  • CairoImageSurface
  • Creates a new CairoImageSurface form a png image file

CairoImageSurface::createFromPng

(PECL cairo >= 0.1.0)

CairoImageSurface::createFromPng — Creates a new CairoImageSurface form a png image file

Описание

public static CairoImageSurface CairoImageSurface::createFromPng ( string $file )

Creates a new CairoImageSurface form a png image file

This method should be called static

Список параметров

file

Path to PNG image file

Возвращаемые значения

CairoImageSurface object

Примеры

Пример #1 CairoImageSurface::createFromPng() example

<?php

$surface = CairoImageSurface::createFromPng('/path/to/image/file.png');

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoImageSurface::__construct() - Creates a new CairoImageSurface


Gets the image data as string

  • « CairoImageSurface::createFromPng
  • CairoImageSurface::getFormat »
  • PHP Manual
  • CairoImageSurface
  • Gets the image data as string

CairoImageSurface::getData

(PECL cairo >= 0.1.0)

CairoImageSurface::getData — Gets the image data as string

Описание

public string CairoImageSurface::getData ( void )

Returns the image data of this surface or NULL if surface is not an image surface, or if CairoContext::finish(), procedural : cairo_surface_finish(), has been called.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The image data as string

Примеры

Пример #1 CairoImageSurface::getData() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • CairoImageSurface::getStride() - The getStride purpose


Get the image format

  • « CairoImageSurface::getData
  • CairoImageSurface::getHeight »
  • PHP Manual
  • CairoImageSurface
  • Get the image format

CairoImageSurface::getFormat

(PECL cairo >= 0.1.0)

CairoImageSurface::getFormat — Get the image format

Описание

public int CairoImageSurface::getFormat ( void )

Retrieves the image format, as one of the CairoFormat defined

Список параметров

У этой функции нет параметров.

Возвращаемые значения

One of the CairoFormat enums

Примеры

Пример #1 CairoImageSurface::getFormat() example

<?php

$surface = new CairoImageSurface(CairoFormat::ARGB32, 50, 50);

var_dump($surface->getFormat()); // 0

$surface2 = new CairoImageSurface(CairoFormat::A8, 50, 50);

var_dump($surface2->getFormat()); // 2

?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
int(2)

Смотрите также

  • CairoImageSurface::getHeight() - Retrieves the height of the CairoImageSurface
  • CairoImageSurface::getWidth() - Retrieves the width of the CairoImageSurface


Retrieves the height of the CairoImageSurface

  • « CairoImageSurface::getFormat
  • CairoImageSurface::getStride »
  • PHP Manual
  • CairoImageSurface
  • Retrieves the height of the CairoImageSurface

CairoImageSurface::getHeight

(PECL cairo >= 0.1.0)

CairoImageSurface::getHeight — Retrieves the height of the CairoImageSurface

Описание

public int CairoImageSurface::getHeight ( void )

This methods returns the CairoImageSurface height.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

CairoImageSurface object height

Примеры

Пример #1 CairoImageSurface::getHeight() example

<?php
// creates a new image surface
$surface = new CairoImageSurface(CairoFormat::ARGB32, 80, 50);

//gets the height
var_dump($surface->getHeight());

?>

Результатом выполнения данного примера будет что-то подобное:

int(50)

Смотрите также

  • CairoImageSurface::getWidth() - Retrieves the width of the CairoImageSurface


The getStride purpose

  • « CairoImageSurface::getHeight
  • CairoImageSurface::getWidth »
  • PHP Manual
  • CairoImageSurface
  • The getStride purpose

CairoImageSurface::getStride

(PECL cairo >= 0.1.0)

CairoImageSurface::getStride — The getStride purpose

Описание

public int CairoImageSurface::getStride ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoImageSurface::getStride() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Retrieves the width of the CairoImageSurface

  • « CairoImageSurface::getStride
  • CairoPdfSurface »
  • PHP Manual
  • CairoImageSurface
  • Retrieves the width of the CairoImageSurface

CairoImageSurface::getWidth

(PECL cairo >= 0.1.0)

CairoImageSurface::getWidth — Retrieves the width of the CairoImageSurface

Описание

public int CairoImageSurface::getWidth ( void )

Gets the width of the CairoImageSurface

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the width of the CairoImageSurface object

Примеры

Пример #1 CairoImageSurface::getWidth() example

<?php
// creates a new image surface
$surface = new CairoImageSurface(CairoFormat::ARGB32, 80, 50);

//gets the width
var_dump($surface->getWidth());

?>

Результатом выполнения данного примера будет что-то подобное:

int(80)

Смотрите также

  • CairoImageSurface::getHeight() - Retrieves the height of the CairoImageSurface


Класс CairoPdfSurface

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoPdfSurface extends CairoSurface {
/* Методы */
public __construct ( string $file , float $width , float $height )
public void setSize ( string $width , string $height )
/* Наследуемые методы */
public CairoSurface::__construct ( void )
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

Содержание

  • CairoPdfSurface::__construct — The __construct purpose
  • CairoPdfSurface::setSize — The setSize purpose


The __construct purpose

  • « CairoPdfSurface
  • CairoPdfSurface::setSize »
  • PHP Manual
  • CairoPdfSurface
  • The __construct purpose

CairoPdfSurface::__construct

(PECL cairo >= 0.1.0)

CairoPdfSurface::__construct — The __construct purpose

Описание

public CairoPdfSurface::__construct ( string $file , float $width , float $height )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Description...

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPdfSurface::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSize purpose

  • « CairoPdfSurface::__construct
  • CairoPsSurface »
  • PHP Manual
  • CairoPdfSurface
  • The setSize purpose

CairoPdfSurface::setSize

(PECL cairo >= 0.1.0)

CairoPdfSurface::setSize — The setSize purpose

Описание

public void CairoPdfSurface::setSize ( string $width , string $height )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPdfSurface::setSize() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoPsSurface

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoPsSurface extends CairoSurface {
/* Методы */
public __construct ( string $file , float $width , float $height )
public void dscBeginPageSetup ( void )
public void dscBeginSetup ( void )
public void dscComment ( string $comment )
public bool getEps ( void )
public static array getLevels ( void )
public static string levelToString ( int $level )
public void restrictToLevel ( string $level )
public void setEps ( string $level )
public void setSize ( string $width , string $height )
/* Наследуемые методы */
public CairoSurface::__construct ( void )
public void CairoSurface::copyPage ( void )
public void CairoSurface::createSimilar ( CairoSurface $other , int $content , string $width , string $height )
public void CairoSurface::finish ( void )
public void CairoSurface::flush ( void )
public int CairoSurface::getContent ( void )
public array CairoSurface::getDeviceOffset ( void )
public void CairoSurface::getFontOptions ( void )
public int CairoSurface::getType ( void )
public void CairoSurface::markDirty ( void )
public void CairoSurface::markDirtyRectangle ( string $x , string $y , string $width , string $height )
public void CairoSurface::setDeviceOffset ( string $x , string $y )
public void CairoSurface::setFallbackResolution ( string $x , string $y )
public void CairoSurface::showPage ( void )
public int CairoSurface::status ( void )
public void CairoSurface::writeToPng ( string $file )
}

Содержание

  • CairoPsSurface::__construct — The __construct purpose
  • CairoPsSurface::dscBeginPageSetup — The dscBeginPageSetup purpose
  • CairoPsSurface::dscBeginSetup — The dscBeginSetup purpose
  • CairoPsSurface::dscComment — The dscComment purpose
  • CairoPsSurface::getEps — The getEps purpose
  • CairoPsSurface::getLevels — The getLevels purpose
  • CairoPsSurface::levelToString — The levelToString purpose
  • CairoPsSurface::restrictToLevel — The restrictToLevel purpose
  • CairoPsSurface::setEps — The setEps purpose
  • CairoPsSurface::setSize — The setSize purpose


The __construct purpose

  • « CairoPsSurface
  • CairoPsSurface::dscBeginPageSetup »
  • PHP Manual
  • CairoPsSurface
  • The __construct purpose

CairoPsSurface::__construct

(PECL cairo >= 0.1.0)

CairoPsSurface::__construct — The __construct purpose

Описание

public CairoPsSurface::__construct ( string $file , float $width , float $height )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Description...

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The dscBeginPageSetup purpose

  • « CairoPsSurface::__construct
  • CairoPsSurface::dscBeginSetup »
  • PHP Manual
  • CairoPsSurface
  • The dscBeginPageSetup purpose

CairoPsSurface::dscBeginPageSetup

(PECL cairo >= 0.1.0)

CairoPsSurface::dscBeginPageSetup — The dscBeginPageSetup purpose

Описание

public void CairoPsSurface::dscBeginPageSetup ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::dscBeginPageSetup() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The dscBeginSetup purpose

  • « CairoPsSurface::dscBeginPageSetup
  • CairoPsSurface::dscComment »
  • PHP Manual
  • CairoPsSurface
  • The dscBeginSetup purpose

CairoPsSurface::dscBeginSetup

(PECL cairo >= 0.1.0)

CairoPsSurface::dscBeginSetup — The dscBeginSetup purpose

Описание

public void CairoPsSurface::dscBeginSetup ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::dscBeginSetup() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The dscComment purpose

  • « CairoPsSurface::dscBeginSetup
  • CairoPsSurface::getEps »
  • PHP Manual
  • CairoPsSurface
  • The dscComment purpose

CairoPsSurface::dscComment

(PECL cairo >= 0.1.0)

CairoPsSurface::dscComment — The dscComment purpose

Описание

public void CairoPsSurface::dscComment ( string $comment )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

comment

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::dscComment() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getEps purpose

  • « CairoPsSurface::dscComment
  • CairoPsSurface::getLevels »
  • PHP Manual
  • CairoPsSurface
  • The getEps purpose

CairoPsSurface::getEps

(PECL cairo >= 0.1.0)

CairoPsSurface::getEps — The getEps purpose

Описание

public bool CairoPsSurface::getEps ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::getEps() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getLevels purpose

  • « CairoPsSurface::getEps
  • CairoPsSurface::levelToString »
  • PHP Manual
  • CairoPsSurface
  • The getLevels purpose

CairoPsSurface::getLevels

(PECL cairo >= 0.1.0)

CairoPsSurface::getLevels — The getLevels purpose

Описание

public static array CairoPsSurface::getLevels ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::getLevels() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The levelToString purpose

  • « CairoPsSurface::getLevels
  • CairoPsSurface::restrictToLevel »
  • PHP Manual
  • CairoPsSurface
  • The levelToString purpose

CairoPsSurface::levelToString

(PECL cairo >= 0.1.0)

CairoPsSurface::levelToString — The levelToString purpose

Описание

public static string CairoPsSurface::levelToString ( int $level )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::levelToString() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The restrictToLevel purpose

  • « CairoPsSurface::levelToString
  • CairoPsSurface::setEps »
  • PHP Manual
  • CairoPsSurface
  • The restrictToLevel purpose

CairoPsSurface::restrictToLevel

(PECL cairo >= 0.1.0)

CairoPsSurface::restrictToLevel — The restrictToLevel purpose

Описание

public void CairoPsSurface::restrictToLevel ( string $level )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::restrictToLevel() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setEps purpose

  • « CairoPsSurface::restrictToLevel
  • CairoPsSurface::setSize »
  • PHP Manual
  • CairoPsSurface
  • The setEps purpose

CairoPsSurface::setEps

(PECL cairo >= 0.1.0)

CairoPsSurface::setEps — The setEps purpose

Описание

public void CairoPsSurface::setEps ( string $level )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::setEps() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSize purpose

  • « CairoPsSurface::setEps
  • CairoSurfaceType »
  • PHP Manual
  • CairoPsSurface
  • The setSize purpose

CairoPsSurface::setSize

(PECL cairo >= 0.1.0)

CairoPsSurface::setSize — The setSize purpose

Описание

public void CairoPsSurface::setSize ( string $width , string $height )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

width

Description...

height

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPsSurface::setSize() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoSurfaceType

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

CairoSurfaceType {
/* Константы */
const integer IMAGE = 0 ;
const integer PDF = 1 ;
const integer PS = 2 ;
const integer XLIB = 3 ;
const integer XCB = 4 ;
const integer GLITZ = 5 ;
const integer QUARTZ = 6 ;
const integer WIN32 = 7 ;
const integer BEOS = 8 ;
const integer DIRECTFB = 9 ;
const integer SVG = 10 ;
const integer OS2 = 11 ;
const integer WIN32_PRINTING = 12 ;
const integer QUARTZ_IMAGE = 13 ;
}

Предопределенные константы

CairoSurfaceType::IMAGE

Здесь будет описание...

CairoSurfaceType::PDF

Здесь будет описание...

CairoSurfaceType::PS

Здесь будет описание...

CairoSurfaceType::XLIB

Здесь будет описание...

CairoSurfaceType::XCB

Здесь будет описание...

CairoSurfaceType::GLITZ

Здесь будет описание...

CairoSurfaceType::QUARTZ

Здесь будет описание...

CairoSurfaceType::WIN32

Здесь будет описание...

CairoSurfaceType::BEOS

Здесь будет описание...

CairoSurfaceType::DIRECTFB

Здесь будет описание...

CairoSurfaceType::SVG

Здесь будет описание...

CairoSurfaceType::OS2

Здесь будет описание...

CairoSurfaceType::WIN32_PRINTING

Здесь будет описание...

CairoSurfaceType::QUARTZ_IMAGE

Здесь будет описание...


The CairoFontFace class

(PECL cairo >= 0.1.0)

Введение

CairoFontFace abstract class represents a particular font at a particular weight, slant, and other characteristic but no transformation or size.

Note: This class can not be instantiated directly, it is created by CairoContext::getFontFace() or cairo_scaled_font_get_font_face().

Обзор классов

CairoFontFace {
/* Методы */
public __construct ( void )
public int getType ( void )
public int status ( void )
}

Содержание

  • CairoFontFace::__construct — Создает новый объект CairoFontFace
  • CairoFontFace::getType — Возвращает тип начертания шрифта
  • CairoFontFace::status — Проверяет на ошибки класса CairoFontFace


Создает новый объект CairoFontFace

  • « CairoFontFace
  • CairoFontFace::getType »
  • PHP Manual
  • CairoFontFace
  • Создает новый объект CairoFontFace

CairoFontFace::__construct

(PECL cairo >= 0.1.0)

CairoFontFace::__construct — Создает новый объект CairoFontFace

Описание

public CairoFontFace::__construct ( void )

Класс CairoFont содержит шрифт с определенном весом, наклоном, и другими характеристиками, но без задания трансформации или размера.

Обратите внимание, что объект этого класса нельзя создать напрямую. Экземпляр класса создается с помощью CairoContext::getFontFace() или cairo_scaled_font_get_font_face()

Список параметров

У этой функции нет параметров.

Возвращаемые значения

CairoFontFace

Примеры

Пример #1 Пример использования CairoFontFace::__construct()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Class::Method()


Возвращает тип начертания шрифта

  • « CairoFontFace::__construct
  • CairoFontFace::status »
  • PHP Manual
  • CairoFontFace
  • Возвращает тип начертания шрифта

CairoFontFace::getType

(PECL cairo >= 0.1.0)

CairoFontFace::getType — Возвращает тип начертания шрифта

Описание

public int CairoFontFace::getType ( void )

Эта функция возвращает тип бэкенда, использованного для создания начертания шрифта. Список констант с допустимыми типами смотри в описании CairoFontType.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Тип шрифта, который может быть определен в CairoFontType

Примеры

Пример #1 Пример использования CairoFontFace::getType()

<?php

// Создаем начертание шрифта
$fontface = new CairoToyFontFace('sans-serif');

// Получаем тип начертания
var_dump($fontface->getType());

?>

Результатом выполнения данного примера будет что-то подобное:

int(0)

Смотрите также

  • Classname::Method()


Проверяет на ошибки класса CairoFontFace

  • « CairoFontFace::getType
  • CairoFontOptions »
  • PHP Manual
  • CairoFontFace
  • Проверяет на ошибки класса CairoFontFace

CairoFontFace::status

cairo_font_face_status

(PECL cairo >= 0.1.0)

CairoFontFace::status -- cairo_font_face_status — Проверяет на ошибки класса CairoFontFace

Описание

Объектно-ориентированный стиль (method):

public int CairoFontFace::status ( void )

Процедурный стиль:

int cairo_font_face_status ( CairoFontFace $fontface )

Проверяет, случались ли ранее ошибки для этого начертания шрифта.

Список параметров

fontface

Корректный объект CairoFontFace

Возвращаемые значения

CAIRO_STATUS_SUCCESS или другие ошибки, такие как CAIRO_STATUS_NO_MEMORY.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

// Создаем начертание шрифта
$fontface = new CairoToyFontFace('sans-serif');

// Получаем статус начертания
var_dump($fontface->status()); // должно быть CAIRO_STATUS_SUCCESS

?>

Результатом выполнения данного примера будет что-то подобное:

int(0)

Пример #2 Процедурный стиль

<?php

// Создаем начертание шрифта
$fontface = new CairoToyFontFace('sans-serif');

// Получаем статус начертания
var_dump(cairo_font_face_status($fontface)); // должно быть CAIRO_STATUS_SUCCESS

?>

Результатом выполнения данного примера будет что-то подобное:

int(0)

Смотрите также

  • Classname::Method()


The CairoFontOptions class

(PECL cairo >= 0.1.0)

Введение

An opaque structure holding all options that are used when rendering fonts.

Individual features of a cairo_font_options_t can be set or accessed using functions named cairo_font_options_set_feature_name and cairo_font_options_get_feature_name, like cairo_font_options_set_antialias() and cairo_font_options_get_antialias().

New features may be added to CairoFontOptions in the future. For this reason CairoFontOptions::copy(), CairoFontOptions::equal(), CairoFontOptions::merge(), CairoFontOptions::hash() (cairo_font_options_copy(), cairo_font_options_equal(), cairo_font_options_merge(), and cairo_font_options_hash() in procedural way) should be used to copy, check for equality, merge, or compute a hash value of CairoFontOptions objects.

Обзор классов

CairoFontOptions {
/* Методы */
public __construct ( void )
public bool equal ( string $other )
public int getAntialias ( void )
public int getHintMetrics ( void )
public int getHintStyle ( void )
public int getSubpixelOrder ( void )
public int hash ( void )
public void merge ( string $other )
public void setAntialias ( string $antialias )
public void setHintMetrics ( string $hint_metrics )
public void setHintStyle ( string $hint_style )
public void setSubpixelOrder ( string $subpixel_order )
public int status ( void )
}

Содержание

  • CairoFontOptions::__construct — The __construct purpose
  • CairoFontOptions::equal — The equal purpose
  • CairoFontOptions::getAntialias — The getAntialias purpose
  • CairoFontOptions::getHintMetrics — The getHintMetrics purpose
  • CairoFontOptions::getHintStyle — The getHintStyle purpose
  • CairoFontOptions::getSubpixelOrder — The getSubpixelOrder purpose
  • CairoFontOptions::hash — The hash purpose
  • CairoFontOptions::merge — The merge purpose
  • CairoFontOptions::setAntialias — The setAntialias purpose
  • CairoFontOptions::setHintMetrics — The setHintMetrics purpose
  • CairoFontOptions::setHintStyle — The setHintStyle purpose
  • CairoFontOptions::setSubpixelOrder — The setSubpixelOrder purpose
  • CairoFontOptions::status — The status purpose


The __construct purpose

  • « CairoFontOptions
  • CairoFontOptions::equal »
  • PHP Manual
  • CairoFontOptions
  • The __construct purpose

CairoFontOptions::__construct

(PECL cairo >= 0.1.0)

CairoFontOptions::__construct — The __construct purpose

Описание

public CairoFontOptions::__construct ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The equal purpose

  • « CairoFontOptions::__construct
  • CairoFontOptions::getAntialias »
  • PHP Manual
  • CairoFontOptions
  • The equal purpose

CairoFontOptions::equal

(PECL cairo >= 0.1.0)

CairoFontOptions::equal — The equal purpose

Описание

public bool CairoFontOptions::equal ( string $other )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

other

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::equal() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getAntialias purpose

  • « CairoFontOptions::equal
  • CairoFontOptions::getHintMetrics »
  • PHP Manual
  • CairoFontOptions
  • The getAntialias purpose

CairoFontOptions::getAntialias

cairo_get_antialias

(PECL cairo >= 0.1.0)

CairoFontOptions::getAntialias -- cairo_get_antialias — The getAntialias purpose

Описание

Объектно-ориентированный стиль (method):

public int CairoFontOptions::getAntialias ( void )

Процедурный стиль:

int cairo_get_antialias ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getHintMetrics purpose

  • « CairoFontOptions::getAntialias
  • CairoFontOptions::getHintStyle »
  • PHP Manual
  • CairoFontOptions
  • The getHintMetrics purpose

CairoFontOptions::getHintMetrics

(PECL cairo >= 0.1.0)

CairoFontOptions::getHintMetrics — The getHintMetrics purpose

Описание

public int CairoFontOptions::getHintMetrics ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::getHintMetrics() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getHintStyle purpose

  • « CairoFontOptions::getHintMetrics
  • CairoFontOptions::getSubpixelOrder »
  • PHP Manual
  • CairoFontOptions
  • The getHintStyle purpose

CairoFontOptions::getHintStyle

(PECL cairo >= 0.1.0)

CairoFontOptions::getHintStyle — The getHintStyle purpose

Описание

public int CairoFontOptions::getHintStyle ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::getHintStyle() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getSubpixelOrder purpose

  • « CairoFontOptions::getHintStyle
  • CairoFontOptions::hash »
  • PHP Manual
  • CairoFontOptions
  • The getSubpixelOrder purpose

CairoFontOptions::getSubpixelOrder

(PECL cairo >= 0.1.0)

CairoFontOptions::getSubpixelOrder — The getSubpixelOrder purpose

Описание

public int CairoFontOptions::getSubpixelOrder ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::getSubpixelOrder() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The hash purpose

  • « CairoFontOptions::getSubpixelOrder
  • CairoFontOptions::merge »
  • PHP Manual
  • CairoFontOptions
  • The hash purpose

CairoFontOptions::hash

(PECL cairo >= 0.1.0)

CairoFontOptions::hash — The hash purpose

Описание

public int CairoFontOptions::hash ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::hash() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The merge purpose

  • « CairoFontOptions::hash
  • CairoFontOptions::setAntialias »
  • PHP Manual
  • CairoFontOptions
  • The merge purpose

CairoFontOptions::merge

(PECL cairo >= 0.1.0)

CairoFontOptions::merge — The merge purpose

Описание

public void CairoFontOptions::merge ( string $other )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

other

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::merge() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setAntialias purpose

  • « CairoFontOptions::merge
  • CairoFontOptions::setHintMetrics »
  • PHP Manual
  • CairoFontOptions
  • The setAntialias purpose

CairoFontOptions::setAntialias

cairo_set_antialias

(PECL cairo >= 0.1.0)

CairoFontOptions::setAntialias -- cairo_set_antialias — The setAntialias purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoFontOptions::setAntialias ( string $antialias )

Процедурный стиль:

void cairo_set_antialias ( CairoContext $context [, string $antialias ] )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

antialias

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setHintMetrics purpose

  • « CairoFontOptions::setAntialias
  • CairoFontOptions::setHintStyle »
  • PHP Manual
  • CairoFontOptions
  • The setHintMetrics purpose

CairoFontOptions::setHintMetrics

(PECL cairo >= 0.1.0)

CairoFontOptions::setHintMetrics — The setHintMetrics purpose

Описание

public void CairoFontOptions::setHintMetrics ( string $hint_metrics )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

hint_metrics

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::setHintMetrics() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setHintStyle purpose

  • « CairoFontOptions::setHintMetrics
  • CairoFontOptions::setSubpixelOrder »
  • PHP Manual
  • CairoFontOptions
  • The setHintStyle purpose

CairoFontOptions::setHintStyle

(PECL cairo >= 0.1.0)

CairoFontOptions::setHintStyle — The setHintStyle purpose

Описание

public void CairoFontOptions::setHintStyle ( string $hint_style )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

hint_style

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::setHintStyle() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setSubpixelOrder purpose

  • « CairoFontOptions::setHintStyle
  • CairoFontOptions::status »
  • PHP Manual
  • CairoFontOptions
  • The setSubpixelOrder purpose

CairoFontOptions::setSubpixelOrder

(PECL cairo >= 0.1.0)

CairoFontOptions::setSubpixelOrder — The setSubpixelOrder purpose

Описание

public void CairoFontOptions::setSubpixelOrder ( string $subpixel_order )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

subpixel_order

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoFontOptions::setSubpixelOrder() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The status purpose

  • « CairoFontOptions::setSubpixelOrder
  • CairoFontSlant »
  • PHP Manual
  • CairoFontOptions
  • The status purpose

CairoFontOptions::status

cairo_status

(PECL cairo >= 0.1.0)

CairoFontOptions::status -- cairo_status — The status purpose

Описание

Объектно-ориентированный стиль (method):

public int CairoFontOptions::status ( void )

Процедурный стиль:

int cairo_status ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoFontSlant class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Specifies variants of a font face based on their slant.

Обзор классов

CairoFontSlant {
/* Константы */
const integer NORMAL = 0 ;
const integer ITALIC = 1 ;
const integer OBLIQUE = 2 ;
}

Предопределенные константы

CairoFontSlant::NORMAL

Upright font style

CairoFontSlant::ITALIC

Italic font style

CairoFontSlant::OBLIQUE

Oblique font style


The CairoFontType class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

CairoFontType class is an abstract final class that contains constants used to describe the type of a given CairoFontFace or CairoScaledFont. The font types are also known as "font backends" within cairo.

The type of a CairoFontFace is determined by the how it is created, an example would be the CairoToyFontFace::__construct(). The CairoFontFace type can be queried with CairoFontFace::getType() or cairo_font_face_get_type()

The various CairoFontFace functions can be used with a font face of any type.

The type of a CairoScaledFont is determined by the type of the CairoFontFace passed to CairoScaledFont::__construct() or cairo_scaled_font_create(). The scaled font type can be queried with CairoScaledFont::getType() or cairo_scaled_font_get_type().

Обзор классов

CairoFontType {
/* Константы */
const integer TOY = 0 ;
const integer FT = 1 ;
const integer WIN32 = 2 ;
const integer QUARTZ = 3 ;
}

Предопределенные константы

CairoFontType::TOY

The font was created using CairoToyFont api

CairoFontType::FT

The font is of type CairoFreeType

CairoFontType::WIN32

The font is of type Win32

CairoFontType::QUARTZ

The font is of type Quartz

CairoFontType::USER

The font was create using cairo's user font api


The CairoFontWeight class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Specifies variants of a font face based on their weight.

Обзор классов

CairoFontWeight {
/* Константы */
const integer NORMAL = 0 ;
const integer BOLD = 1 ;
}

Предопределенные константы

CairoFontWeight::NORMAL

Normal font weight

CairoFontWeight::BOLD

Bold font weight


Класс CairoScaledFont

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoScaledFont {
/* Методы */
public __construct ( CairoFontFace $font_face , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $options )
public array extents ( void )
public CairoMatrix getCtm ( void )
public void getFontFace ( void )
public void getFontMatrix ( void )
public void getFontOptions ( void )
public void getScaleMatrix ( void )
public int getType ( void )
public array glyphExtents ( string $glyphs )
public int status ( void )
public array textExtents ( string $text )
}

Содержание

  • CairoScaledFont::__construct — The __construct purpose
  • CairoScaledFont::extents — The extents purpose
  • CairoScaledFont::getCtm — The getCtm purpose
  • CairoScaledFont::getFontFace — The getFontFace purpose
  • CairoScaledFont::getFontMatrix — The getFontMatrix purpose
  • CairoScaledFont::getFontOptions — The getFontOptions purpose
  • CairoScaledFont::getScaleMatrix — The getScaleMatrix purpose
  • CairoScaledFont::getType — The getType purpose
  • CairoScaledFont::glyphExtents — The glyphExtents purpose
  • CairoScaledFont::status — The status purpose
  • CairoScaledFont::textExtents — The textExtents purpose


The __construct purpose

  • « CairoScaledFont
  • CairoScaledFont::extents »
  • PHP Manual
  • CairoScaledFont
  • The __construct purpose

CairoScaledFont::__construct

(PECL cairo >= 0.1.0)

CairoScaledFont::__construct — The __construct purpose

Описание

public CairoScaledFont::__construct ( CairoFontFace $font_face , CairoMatrix $matrix , CairoMatrix $ctm , CairoFontOptions $options )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

font_face

Description...

matrix

Description...

ctm

Description...

options

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The extents purpose

  • « CairoScaledFont::__construct
  • CairoScaledFont::getCtm »
  • PHP Manual
  • CairoScaledFont
  • The extents purpose

CairoScaledFont::extents

(PECL cairo >= 0.1.0)

CairoScaledFont::extents — The extents purpose

Описание

public array CairoScaledFont::extents ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::extents() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getCtm purpose

  • « CairoScaledFont::extents
  • CairoScaledFont::getFontFace »
  • PHP Manual
  • CairoScaledFont
  • The getCtm purpose

CairoScaledFont::getCtm

(PECL cairo >= 0.1.0)

CairoScaledFont::getCtm — The getCtm purpose

Описание

public CairoMatrix CairoScaledFont::getCtm ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::getCtm() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontFace purpose

  • « CairoScaledFont::getCtm
  • CairoScaledFont::getFontMatrix »
  • PHP Manual
  • CairoScaledFont
  • The getFontFace purpose

CairoScaledFont::getFontFace

cairo_get_font_face

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontFace -- cairo_get_font_face — The getFontFace purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoScaledFont::getFontFace ( void )

Процедурный стиль:

void cairo_get_font_face ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontMatrix purpose

  • « CairoScaledFont::getFontFace
  • CairoScaledFont::getFontOptions »
  • PHP Manual
  • CairoScaledFont
  • The getFontMatrix purpose

CairoScaledFont::getFontMatrix

cairo_get_font_matrix

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontMatrix -- cairo_get_font_matrix — The getFontMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoScaledFont::getFontMatrix ( void )

Процедурный стиль:

void cairo_get_font_matrix ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFontOptions purpose

  • « CairoScaledFont::getFontMatrix
  • CairoScaledFont::getScaleMatrix »
  • PHP Manual
  • CairoScaledFont
  • The getFontOptions purpose

CairoScaledFont::getFontOptions

cairo_get_font_options

(PECL cairo >= 0.1.0)

CairoScaledFont::getFontOptions -- cairo_get_font_options — The getFontOptions purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoScaledFont::getFontOptions ( void )

Процедурный стиль:

void cairo_get_font_options ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getScaleMatrix purpose

  • « CairoScaledFont::getFontOptions
  • CairoScaledFont::getType »
  • PHP Manual
  • CairoScaledFont
  • The getScaleMatrix purpose

CairoScaledFont::getScaleMatrix

(PECL cairo >= 0.1.0)

CairoScaledFont::getScaleMatrix — The getScaleMatrix purpose

Описание

public void CairoScaledFont::getScaleMatrix ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::getScaleMatrix() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getType purpose

  • « CairoScaledFont::getScaleMatrix
  • CairoScaledFont::glyphExtents »
  • PHP Manual
  • CairoScaledFont
  • The getType purpose

CairoScaledFont::getType

(PECL cairo >= 0.1.0)

CairoScaledFont::getType — The getType purpose

Описание

public int CairoScaledFont::getType ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::getType() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The glyphExtents purpose

  • « CairoScaledFont::getType
  • CairoScaledFont::status »
  • PHP Manual
  • CairoScaledFont
  • The glyphExtents purpose

CairoScaledFont::glyphExtents

(PECL cairo >= 0.1.0)

CairoScaledFont::glyphExtents — The glyphExtents purpose

Описание

public array CairoScaledFont::glyphExtents ( string $glyphs )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

glyphs

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoScaledFont::glyphExtents() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The status purpose

  • « CairoScaledFont::glyphExtents
  • CairoScaledFont::textExtents »
  • PHP Manual
  • CairoScaledFont
  • The status purpose

CairoScaledFont::status

cairo_status

(PECL cairo >= 0.1.0)

CairoScaledFont::status -- cairo_status — The status purpose

Описание

Объектно-ориентированный стиль (method):

public int CairoScaledFont::status ( void )

Процедурный стиль:

int cairo_status ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The textExtents purpose

  • « CairoScaledFont::status
  • CairoToyFontFace »
  • PHP Manual
  • CairoScaledFont
  • The textExtents purpose

CairoScaledFont::textExtents

cairo_text_extents

(PECL cairo >= 0.1.0)

CairoScaledFont::textExtents -- cairo_text_extents — The textExtents purpose

Описание

Объектно-ориентированный стиль (method):

public array CairoScaledFont::textExtents ( string $text )

Процедурный стиль:

array cairo_text_extents ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

text

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoToyFontFace class

(PECL cairo >= 0.1.0)

Введение

The CairoToyFontFace class can be used instead of CairoContext::selectFontFace() to create a toy font independently of a context.

Обзор классов

CairoToyFontFace extends CairoFontFace {
/* Наследуемые методы */
}


The CairoPatternType class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

CairoPatternType is used to describe the type of a given pattern.

The type of a pattern is determined by the function used to create it. The cairo_pattern_create_rgb() and cairo_pattern_create_rgba() functions create CairoPatternType::SOLID patterns. The remaining cairo_pattern_create_* functions map to pattern types in obvious ways.

Обзор классов

CairoPatternType {
/* Константы */
const integer SOLID = 0 ;
const integer SURFACE = 1 ;
const integer LINEAR = 2 ;
const integer RADIAL = 3 ;
}

Предопределенные константы

CairoPatternType::SOLID

The pattern is a solid (uniform) color. It may be opaque or translucent.

CairoPatternType::SURFACE

The pattern is a based on a surface (an image).

CairoPatternType::LINEAR

The pattern is a linear gradient.

CairoPatternType::RADIAL

The pattern is a radial gradient.


The CairoPattern class

(PECL cairo >= 0.1.0)

Введение

CairoPattern is the abstract base class from which all the other pattern classes derive. It cannot be instantiated directly

Обзор классов

CairoPattern {
/* Методы */
public __construct ( void )
public void getMatrix ( void )
public int getType ( void )
public void setMatrix ( string $matrix )
public int status ( void )
}

Содержание

  • CairoPattern::__construct — The __construct purpose
  • CairoPattern::getMatrix — The getMatrix purpose
  • CairoPattern::getType — The getType purpose
  • CairoPattern::setMatrix — The setMatrix purpose
  • CairoPattern::status — The status purpose


The __construct purpose

  • « CairoPattern
  • CairoPattern::getMatrix »
  • PHP Manual
  • CairoPattern
  • The __construct purpose

CairoPattern::__construct

(PECL cairo >= 0.1.0)

CairoPattern::__construct — The __construct purpose

Описание

public CairoPattern::__construct ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPattern::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getMatrix purpose

  • « CairoPattern::__construct
  • CairoPattern::getType »
  • PHP Manual
  • CairoPattern
  • The getMatrix purpose

CairoPattern::getMatrix

cairo_get_matrix

(PECL cairo >= 0.1.0)

CairoPattern::getMatrix -- cairo_get_matrix — The getMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoPattern::getMatrix ( void )

Процедурный стиль:

void cairo_get_matrix ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getType purpose

  • « CairoPattern::getMatrix
  • CairoPattern::setMatrix »
  • PHP Manual
  • CairoPattern
  • The getType purpose

CairoPattern::getType

(PECL cairo >= 0.1.0)

CairoPattern::getType — The getType purpose

Описание

public int CairoPattern::getType ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoPattern::getType() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setMatrix purpose

  • « CairoPattern::getType
  • CairoPattern::status »
  • PHP Manual
  • CairoPattern
  • The setMatrix purpose

CairoPattern::setMatrix

cairo_set_matrix

(PECL cairo >= 0.1.0)

CairoPattern::setMatrix -- cairo_set_matrix — The setMatrix purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoPattern::setMatrix ( string $matrix )

Процедурный стиль:

void cairo_set_matrix ( CairoContext $context , CairoMatrix $matrix )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

matrix

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The status purpose

  • « CairoPattern::setMatrix
  • CairoGradientPattern »
  • PHP Manual
  • CairoPattern
  • The status purpose

CairoPattern::status

cairo_status

(PECL cairo >= 0.1.0)

CairoPattern::status -- cairo_status — The status purpose

Описание

Объектно-ориентированный стиль (method):

public int CairoPattern::status ( void )

Процедурный стиль:

int cairo_status ( CairoContext $context )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoGradientPattern class

(PECL cairo >= 0.1.0)

Введение

CairoGradientPattern is an abstract base class from which other Pattern classes derive. It cannot be instantiated directly.

Обзор классов

CairoGradientPattern extends CairoPattern {
/* Методы */
public void addColorStopRgb ( string $offset , string $red , string $green , string $blue )
public void addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )
public int getColorStopCount ( void )
public array getColorStopRgba ( string $index )
public int getExtend ( void )
public void setExtend ( int $extend )
/* Наследуемые методы */
public CairoPattern::__construct ( void )
public void CairoPattern::getMatrix ( void )
public int CairoPattern::getType ( void )
public void CairoPattern::setMatrix ( string $matrix )
public int CairoPattern::status ( void )
}

Содержание

  • CairoGradientPattern::addColorStopRgb — The addColorStopRgb purpose
  • CairoGradientPattern::addColorStopRgba — The addColorStopRgba purpose
  • CairoGradientPattern::getColorStopCount — The getColorStopCount purpose
  • CairoGradientPattern::getColorStopRgba — The getColorStopRgba purpose
  • CairoGradientPattern::getExtend — The getExtend purpose
  • CairoGradientPattern::setExtend — The setExtend purpose


The addColorStopRgb purpose

  • « CairoGradientPattern
  • CairoGradientPattern::addColorStopRgba »
  • PHP Manual
  • CairoGradientPattern
  • The addColorStopRgb purpose

CairoGradientPattern::addColorStopRgb

(PECL cairo >= 0.1.0)

CairoGradientPattern::addColorStopRgb — The addColorStopRgb purpose

Описание

public void CairoGradientPattern::addColorStopRgb ( string $offset , string $red , string $green , string $blue )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Description...

red

Description...

green

Description...

blue

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::addColorStopRgb() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The addColorStopRgba purpose

  • « CairoGradientPattern::addColorStopRgb
  • CairoGradientPattern::getColorStopCount »
  • PHP Manual
  • CairoGradientPattern
  • The addColorStopRgba purpose

CairoGradientPattern::addColorStopRgba

(PECL cairo >= 0.1.0)

CairoGradientPattern::addColorStopRgba — The addColorStopRgba purpose

Описание

public void CairoGradientPattern::addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

offset

Description...

red

Description...

green

Description...

blue

Description...

alpha

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::addColorStopRgba() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getColorStopCount purpose

  • « CairoGradientPattern::addColorStopRgba
  • CairoGradientPattern::getColorStopRgba »
  • PHP Manual
  • CairoGradientPattern
  • The getColorStopCount purpose

CairoGradientPattern::getColorStopCount

(PECL cairo >= 0.1.0)

CairoGradientPattern::getColorStopCount — The getColorStopCount purpose

Описание

public int CairoGradientPattern::getColorStopCount ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::getColorStopCount() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getColorStopRgba purpose

  • « CairoGradientPattern::getColorStopCount
  • CairoGradientPattern::getExtend »
  • PHP Manual
  • CairoGradientPattern
  • The getColorStopRgba purpose

CairoGradientPattern::getColorStopRgba

(PECL cairo >= 0.1.0)

CairoGradientPattern::getColorStopRgba — The getColorStopRgba purpose

Описание

public array CairoGradientPattern::getColorStopRgba ( string $index )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::getColorStopRgba() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getExtend purpose

  • « CairoGradientPattern::getColorStopRgba
  • CairoGradientPattern::setExtend »
  • PHP Manual
  • CairoGradientPattern
  • The getExtend purpose

CairoGradientPattern::getExtend

(PECL cairo >= 0.1.0)

CairoGradientPattern::getExtend — The getExtend purpose

Описание

public int CairoGradientPattern::getExtend ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::getExtend() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setExtend purpose

  • « CairoGradientPattern::getExtend
  • CairoSolidPattern »
  • PHP Manual
  • CairoGradientPattern
  • The setExtend purpose

CairoGradientPattern::setExtend

(PECL cairo >= 0.1.0)

CairoGradientPattern::setExtend — The setExtend purpose

Описание

public void CairoGradientPattern::setExtend ( int $extend )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

extend

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoGradientPattern::setExtend() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoSolidPattern

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoSolidPattern extends CairoPattern {
/* Методы */
public __construct ( float $red , float $green , float $blue [, float $alpha = 0 ] )
public array getRgba ( void )
/* Наследуемые методы */
public CairoPattern::__construct ( void )
public void CairoPattern::getMatrix ( void )
public int CairoPattern::getType ( void )
public void CairoPattern::setMatrix ( string $matrix )
public int CairoPattern::status ( void )
}

Содержание

  • CairoSolidPattern::__construct — The __construct purpose
  • CairoSolidPattern::getRgba — The getRgba purpose


The __construct purpose

  • « CairoSolidPattern
  • CairoSolidPattern::getRgba »
  • PHP Manual
  • CairoSolidPattern
  • The __construct purpose

CairoSolidPattern::__construct

(PECL cairo >= 0.1.0)

CairoSolidPattern::__construct — The __construct purpose

Описание

public CairoSolidPattern::__construct ( float $red , float $green , float $blue [, float $alpha = 0 ] )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

red

Description...

green

Description...

blue

Description...

alpha

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSolidPattern::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getRgba purpose

  • « CairoSolidPattern::__construct
  • CairoSurfacePattern »
  • PHP Manual
  • CairoSolidPattern
  • The getRgba purpose

CairoSolidPattern::getRgba

(PECL cairo >= 0.1.0)

CairoSolidPattern::getRgba — The getRgba purpose

Описание

public array CairoSolidPattern::getRgba ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSolidPattern::getRgba() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoSurfacePattern

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoSurfacePattern extends CairoPattern {
/* Методы */
public __construct ( CairoSurface $surface )
public int getExtend ( void )
public int getFilter ( void )
public void getSurface ( void )
public void setExtend ( int $extend )
public void setFilter ( string $filter )
/* Наследуемые методы */
public CairoPattern::__construct ( void )
public void CairoPattern::getMatrix ( void )
public int CairoPattern::getType ( void )
public void CairoPattern::setMatrix ( string $matrix )
public int CairoPattern::status ( void )
}

Содержание

  • CairoSurfacePattern::__construct — The __construct purpose
  • CairoSurfacePattern::getExtend — The getExtend purpose
  • CairoSurfacePattern::getFilter — The getFilter purpose
  • CairoSurfacePattern::getSurface — The getSurface purpose
  • CairoSurfacePattern::setExtend — The setExtend purpose
  • CairoSurfacePattern::setFilter — The setFilter purpose


The __construct purpose

  • « CairoSurfacePattern
  • CairoSurfacePattern::getExtend »
  • PHP Manual
  • CairoSurfacePattern
  • The __construct purpose

CairoSurfacePattern::__construct

(PECL cairo >= 0.1.0)

CairoSurfacePattern::__construct — The __construct purpose

Описание

public CairoSurfacePattern::__construct ( CairoSurface $surface )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

surface

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurfacePattern::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getExtend purpose

  • « CairoSurfacePattern::__construct
  • CairoSurfacePattern::getFilter »
  • PHP Manual
  • CairoSurfacePattern
  • The getExtend purpose

CairoSurfacePattern::getExtend

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getExtend — The getExtend purpose

Описание

public int CairoSurfacePattern::getExtend ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurfacePattern::getExtend() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getFilter purpose

  • « CairoSurfacePattern::getExtend
  • CairoSurfacePattern::getSurface »
  • PHP Manual
  • CairoSurfacePattern
  • The getFilter purpose

CairoSurfacePattern::getFilter

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getFilter — The getFilter purpose

Описание

public int CairoSurfacePattern::getFilter ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurfacePattern::getFilter() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getSurface purpose

  • « CairoSurfacePattern::getFilter
  • CairoSurfacePattern::setExtend »
  • PHP Manual
  • CairoSurfacePattern
  • The getSurface purpose

CairoSurfacePattern::getSurface

(PECL cairo >= 0.1.0)

CairoSurfacePattern::getSurface — The getSurface purpose

Описание

public void CairoSurfacePattern::getSurface ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurfacePattern::getSurface() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setExtend purpose

  • « CairoSurfacePattern::getSurface
  • CairoSurfacePattern::setFilter »
  • PHP Manual
  • CairoSurfacePattern
  • The setExtend purpose

CairoSurfacePattern::setExtend

(PECL cairo >= 0.1.0)

CairoSurfacePattern::setExtend — The setExtend purpose

Описание

public void CairoSurfacePattern::setExtend ( int $extend )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

extend

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurfacePattern::setExtend() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The setFilter purpose

  • « CairoSurfacePattern::setExtend
  • CairoLinearGradient »
  • PHP Manual
  • CairoSurfacePattern
  • The setFilter purpose

CairoSurfacePattern::setFilter

(PECL cairo >= 0.1.0)

CairoSurfacePattern::setFilter — The setFilter purpose

Описание

public void CairoSurfacePattern::setFilter ( string $filter )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

filter

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoSurfacePattern::setFilter() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoLinearGradient class

(PECL cairo >= 0.1.0)

Введение

Create a new CairoLinearGradient along the line defined

Обзор классов

CairoLinearGradient extends CairoGradientPattern {
/* Методы */
public __construct ( float $x0 , float $y0 , float $x1 , float $y1 )
public array getPoints ( void )
/* Наследуемые методы */
public void CairoGradientPattern::addColorStopRgb ( string $offset , string $red , string $green , string $blue )
public void CairoGradientPattern::addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )
public int CairoGradientPattern::getColorStopCount ( void )
public array CairoGradientPattern::getColorStopRgba ( string $index )
public int CairoGradientPattern::getExtend ( void )
public void CairoGradientPattern::setExtend ( int $extend )
}

Содержание

  • CairoLinearGradient::__construct — The __construct purpose
  • CairoLinearGradient::getPoints — The getPoints purpose


The __construct purpose

  • « CairoLinearGradient
  • CairoLinearGradient::getPoints »
  • PHP Manual
  • CairoLinearGradient
  • The __construct purpose

CairoLinearGradient::__construct

(PECL cairo >= 0.1.0)

CairoLinearGradient::__construct — The __construct purpose

Описание

public CairoLinearGradient::__construct ( float $x0 , float $y0 , float $x1 , float $y1 )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x0

Description...

y0

Description...

x1

Description...

y1

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoLinearGradient::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getPoints purpose

  • « CairoLinearGradient::__construct
  • CairoRadialGradient »
  • PHP Manual
  • CairoLinearGradient
  • The getPoints purpose

CairoLinearGradient::getPoints

(PECL cairo >= 0.1.0)

CairoLinearGradient::getPoints — The getPoints purpose

Описание

public array CairoLinearGradient::getPoints ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoLinearGradient::getPoints() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoRadialGradient

(PECL cairo >= 0.1.0)

Введение

Обзор классов

CairoRadialGradient extends CairoGradientPattern {
/* Методы */
public __construct ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 )
public array getCircles ( void )
/* Наследуемые методы */
public void CairoGradientPattern::addColorStopRgb ( string $offset , string $red , string $green , string $blue )
public void CairoGradientPattern::addColorStopRgba ( string $offset , string $red , string $green , string $blue , string $alpha )
public int CairoGradientPattern::getColorStopCount ( void )
public array CairoGradientPattern::getColorStopRgba ( string $index )
public int CairoGradientPattern::getExtend ( void )
public void CairoGradientPattern::setExtend ( int $extend )
}

Содержание

  • CairoRadialGradient::__construct — The __construct purpose
  • CairoRadialGradient::getCircles — The getCircles purpose


The __construct purpose

  • « CairoRadialGradient
  • CairoRadialGradient::getCircles »
  • PHP Manual
  • CairoRadialGradient
  • The __construct purpose

CairoRadialGradient::__construct

(PECL cairo >= 0.1.0)

CairoRadialGradient::__construct — The __construct purpose

Описание

Объектно-ориентированный стиль:

public CairoRadialGradient::__construct ( float $x0 , float $y0 , float $r0 , float $x1 , float $y1 , float $r1 )

Процедурный стиль:

Creates a new radial gradient CairoPattern between the two circles defined by (x0, y0, r0) and (x1, y1, r1). Before using the gradient pattern, a number of color stops should be defined using CairoRadialGradient::addColorStopRgb() or CairoRadialGradient::addColorStopRgba().

Note: The coordinates here are in pattern space. For a new pattern, pattern space is identical to user space, but the relationship between the spaces can be changed with CairoRadialGradient::setMatrix().

Список параметров

x0

x coordinate for the center of the start circle.

y0

y coordinate for the center of the start circle.

r0

radius of the start circle.

x1

x coordinate for the center of the end circle.

y1

y coordinate for the center of the end circle.

r1

radius of the end circle.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoRadialGradient::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The getCircles purpose

  • « CairoRadialGradient::__construct
  • CairoAntialias »
  • PHP Manual
  • CairoRadialGradient
  • The getCircles purpose

CairoRadialGradient::getCircles

(PECL cairo >= 0.1.0)

CairoRadialGradient::getCircles — The getCircles purpose

Описание

public array CairoRadialGradient::getCircles ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoRadialGradient::getCircles() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Класс CairoAntialias

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Класс типа Enum, задающий тип сглаживания, который будет использоваться для рендеринга текста или поверхности.

Обзор классов

CairoAntialias {
/* Константы */
const integer MODE_DEFAULT = 0 ;
const integer MODE_NONE = 1 ;
const integer MODE_GRAY = 2 ;
const integer MODE_SUBPIXEL = 3 ;
}

Предопределенные константы

CairoAntialias::MODE_DEFAULT

Использовать сглаживание стандартное для подсистемы и целевого устройства

CairoAntialias::MODE_NONE

Использовать двухуровневую альфа-маску

CairoAntialias::MODE_GRAY

Производить одноцветное сглаживание (используя оттенки серого для черного цвета на белой подложке, например).

CairoAntialias::MODE_SUBPIXEL

Производить сглаживание, используя порядок элементов субпикселей на устройствах, таких как ЖК-панели.


Класс CairoContent

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Класс CairoContent используется для описания контента, который будет содержать поверхность, будь то цветовая информация, информация альфа-канала (translucence vs. opacity) либо и то и то.

Обратите внимание: большие числа были выбраны, чтобы держать значения CairoContent порознь от других значений CairoContent, что бы легче было искать ошибки в реализации, если пользователь их перепутает.

Обзор классов

CairoContent {
/* Константы */
const integer COLOR = 4096 ;
const integer ALPHA = 8192 ;
const integer COLOR_ALPHA = 12288 ;
}

Предопределенные константы

CairoContent::COLOR

Поверхность должна содержать только контент цвета.

CairoContent::ALPHA

Поверхность должна содержать только контент альфа-канала.

CairoContent::COLOR_ALPHA

Поверхность будет содержать оба контента.


Класс CairoExtend

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

CairoExtend {
/* Константы */
const integer NONE = 0 ;
const integer REPEAT = 1 ;
const integer REFLECT = 2 ;
const integer PAD = 3 ;
}

Предопределенные константы

CairoExtend::NONE

Здесь будет описание...

CairoExtend::REPEAT

Здесь будет описание...

CairoExtend::REFLECT

Здесь будет описание...

CairoExtend::PAD

Здесь будет описание...


The CairoFormat class

(PECL cairo >= 0.1.0)

Введение

CairoFormat enums are used to identify the memory format of the image data.

Обзор классов

CairoFormat {
/* Константы */
const integer ARGB32 = 0 ;
const integer RGB24 = 1 ;
const integer A8 = 2 ;
const integer A1 = 3 ;
/* Методы */
public static int strideForWidth ( int $format , int $width )
}

Предопределенные константы

CairoFormat::ARGB32

Each pixel is a 32-bit quantity, with alpha in the upper 8 bits, then red, then green, then blue. The 32-bit quantities are stored native-endian. Pre-multiplied alpha is used. (That is, 50% transparent red is 0x80800000, not 0x80ff0000.)

CairoFormat::RGB24

Each pixel is a 32-bit quantity, with the upper 8 bits unused. Red, Green, and Blue are stored in the remaining 24 bits in that order.

CairoFormat::A8

Each pixel is a 8-bit quantity holding an alpha value.

CairoFormat::A1

Each pixel is a 1-bit quantity holding an alpha value. Pixels are packed together into 32-bit quantities. The ordering of the bits matches the endianess of the platform. On a big-endian machine, the first pixel is in the uppermost bit, on a little-endian machine the first pixel is in the least-significant bit.

Содержание

  • CairoFormat::strideForWidth — Расчитывает значение "stride" для заданной ширины изображения


Расчитывает значение "stride" для заданной ширины изображения

  • « CairoFormat
  • CairoFillRule »
  • PHP Manual
  • CairoFormat
  • Расчитывает значение "stride" для заданной ширины изображения

CairoFormat::strideForWidth

(PECL cairo >= 0.1.0)

CairoFormat::strideForWidth — Расчитывает значение "stride" для заданной ширины изображения

Описание

public static int CairoFormat::strideForWidth ( int $format , int $width )

Этот метод расчитывает значение "stride" с учетом всех требований выравнивания, заданных в коде рендеринга изображений "cairo".

Список параметров

format

Выбранный класс CairoFormat

width

Ширина изображения

Возвращаемые значения

Подходящее значение "stride" для выбранных формата и ширины, или -1, если формат некорректен или ширина изображения слишком велика.

Примеры

Пример #1 Пример CairoFormat::strideForWidth()

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoFillRule class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

A CairoFillRule is used to select how paths are filled. For both fill rules, whether or not a point is included in the fill is determined by taking a ray from that point to infinity and looking at intersections with the path. The ray can be in any direction, as long as it doesn't pass through the end point of a segment or have a tricky intersection such as intersecting tangent to the path. (Note that filling is not actually implemented in this way. This is just a description of the rule that is applied.)

The default fill rule is CairoFillRule::WINDING.

Обзор классов

CairoFillRule {
/* Константы */
const integer WINDING = 0 ;
const integer EVEN_ODD = 1 ;
}

Предопределенные константы

CairoFillRule::WINDING

If the path crosses the ray from left-to-right, counts +1. If the path crosses the ray from right to left, counts -1. (Left and right are determined from the perspective of looking along the ray from the starting point.) If the total count is non-zero, the point will be filled.

CairoFillRule::EVEN_ODD

Counts the total number of intersections, without regard to the orientation of the contour. If the total number of intersections is odd, the point will be filled.


The CairoFilter class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

A CairoFilter is used to indicate what filtering should be applied when reading pixel values from patterns. See CairoPattern::setSource() or cairo_pattern_set_source() for indicating the desired filter to be used with a particular pattern.

Обзор классов

CairoFilter {
/* Константы */
const integer FAST = 0 ;
const integer GOOD = 1 ;
const integer BEST = 2 ;
const integer NEAREST = 3 ;
const integer BILINEAR = 4 ;
const integer GAUSSIAN = 5 ;
}

Предопределенные константы

CairoFilter::FAST

A high-performance filter, with quality similar to CairoFilter::NEAREST

CairoFilter::GOOD

A reasonable-performance filter, with quality similar to CairoFilter::BILINEAR

CairoFilter::BEST

The highest-quality available, performance may not be suitable for interactive use.

CairoFilter::NEAREST

Nearest-neighbor filtering

CairoFilter::BILINEAR

Linear interpolation in two dimensions

CairoFilter::GAUSSIAN

This filter value is currently unimplemented, and should not be used in current code.


The CairoHintMetrics class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Specifies whether to hint font metrics; hinting font metrics means quantizing them so that they are integer values in device space. Doing this improves the consistency of letter and line spacing, however it also means that text will be laid out differently at different zoom factors.

Обзор классов

CairoHintMetrics {
/* Константы */
const integer METRICS_DEFAULT = 0 ;
const integer METRICS_OFF = 1 ;
const integer METRICS_ON = 2 ;
}

Предопределенные константы

CairoHintMetrics::METRICS_DEFAULT

Hint metrics in the default manner for the font backend and target device

CairoHintMetrics::METRICS_OFF

Do not hint font metrics

CairoHintMetrics::METRICS_ON

Hint font metrics


The CairoHintStyle class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Specifies the type of hinting to do on font outlines. Hinting is the process of fitting outlines to the pixel grid in order to improve the appearance of the result. Since hinting outlines involves distorting them, it also reduces the faithfulness to the original outline shapes. Not all of the outline hinting styles are supported by all font backends.

Обзор классов

CairoHintStyle {
/* Константы */
const integer STYLE_DEFAULT = 0 ;
const integer STYLE_NONE = 1 ;
const integer STYLE_SLIGHT = 2 ;
const integer STYLE_MEDIUM = 3 ;
const integer STYLE_FULL = 4 ;
}

Предопределенные константы

CairoHintStyle::STYLE_DEFAULT

Use the default hint style for font backend and target device

CairoHintStyle::STYLE_NONE

Do not hint outlines

CairoHintStyle::STYLE_SLIGHT

Hint outlines slightly to improve contrast while retaining good fidelity to the original shapes.

CairoHintStyle::STYLE_MEDIUM

Hint outlines with medium strength giving a compromise between fidelity to the original shapes and contrast

CairoHintStyle::STYLE_FULL

Hint outlines to maximize contrast


The CairoLineCap class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Specifies how to render the endpoints of the path when stroking.

The default line cap style is CairoLineCap::BUTT.

Обзор классов

CairoLineCap {
/* Константы */
const integer BUTT = 0 ;
const integer ROUND = 1 ;
const integer SQUARE = 2 ;
}

Предопределенные константы

CairoLineCap::BUTT

Start(stop) the line exactly at the start(end) point

CairoLineCap::ROUND

Use a round ending, the center of the circle is the end point

CairoLineCap::SQUARE

Use squared ending, the center of the square is the end point


Класс CairoLineJoin

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

CairoLineJoin {
/* Константы */
const integer MITER = 0 ;
const integer ROUND = 1 ;
const integer BEVEL = 2 ;
}

Предопределенные константы

CairoLineJoin::MITER

Здесь будет описание...

CairoLineJoin::ROUND

Здесь будет описание...

CairoLineJoin::BEVEL

Здесь будет описание...


The CairoMatrix class

(PECL cairo >= 0.1.0)

Введение

Matrices are used throughout cairo to convert between different coordinate spaces.

Обзор классов

CairoMatrix {
/* Методы */
public __construct ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] )
public static void initIdentity ( void )
public static void initRotate ( float $radians )
public static void initScale ( float $sx , float $sy )
public static void initTranslate ( float $tx , float $ty )
public void invert ( void )
public static CairoMatrix multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 )
public void rotate ( string $sx , string $sy )
public void scale ( float $sx , float $sy )
public array transformDistance ( string $dx , string $dy )
public array transformPoint ( string $dx , string $dy )
public void translate ( string $tx , string $ty )
}

Содержание

  • CairoMatrix::__construct — Creates a new CairoMatrix object
  • CairoMatrix::initIdentity — Creates a new identity matrix
  • CairoMatrix::initRotate — Creates a new rotated matrix
  • CairoMatrix::initScale — Creates a new scaling matrix
  • CairoMatrix::initTranslate — Creates a new translation matrix
  • CairoMatrix::invert — The invert purpose
  • CairoMatrix::multiply — The multiply purpose
  • CairoMatrix::rotate — The rotate purpose
  • CairoMatrix::scale — Applies scaling to a matrix
  • CairoMatrix::transformDistance — The transformDistance purpose
  • CairoMatrix::transformPoint — The transformPoint purpose
  • CairoMatrix::translate — The translate purpose


Creates a new CairoMatrix object

  • « CairoMatrix
  • CairoMatrix::initIdentity »
  • PHP Manual
  • CairoMatrix
  • Creates a new CairoMatrix object

CairoMatrix::__construct

cairo_matrix_init

(PECL cairo >= 0.1.0)

CairoMatrix::__construct -- cairo_matrix_init — Creates a new CairoMatrix object

Описание

Объектно-ориентированный стиль (method):

public CairoMatrix::__construct ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] )

Процедурный стиль:

object cairo_matrix_init ([ float $xx = 1.0 [, float $yx = 0.0 [, float $xy = 0.0 [, float $yy = 1.0 [, float $x0 = 0.0 [, float $y0 = 0.0 ]]]]]] )

Returns new CairoMatrix object. Matrices are used throughout cairo to convert between different coordinate spaces. Sets matrix to be the affine transformation given by xx, yx, xy, yy, x0, y0. The transformation is given by: x_new = xx * x + xy * y + x0; and y_new = yx * x + yy * y + y0;

Список параметров

xx

xx component of the affine transformation

yx

yx component of the affine transformation

xy

xy component of the affine transformation

yy

yy component of the affine transformation

x0

X translation component of the affine transformation

y0

Y translation component of the affine transformation

Возвращаемые значения

Returns a new CairoMatrix object that can be used with surfaces, contexts, and patterns.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Create a new Matrix */
$matrix = new CairoMatrix(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
?>

Пример #2 Процедурный стиль

<?php
/* Create a new Matrix */
$matrix = cairo_matrix_init(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
?>

Смотрите также

  • CairoMatrix::initIdentity() - Creates a new identity matrix
  • CairoMatrix::initRotate() - Creates a new rotated matrix
  • CairoMatrix::initScale() - Creates a new scaling matrix
  • CairoMatrix::initTranslate() - Creates a new translation matrix


Creates a new identity matrix

  • « CairoMatrix::__construct
  • CairoMatrix::initRotate »
  • PHP Manual
  • CairoMatrix
  • Creates a new identity matrix

CairoMatrix::initIdentity

cairo_matrix_init_identity

(PECL cairo >= 0.1.0)

CairoMatrix::initIdentity -- cairo_matrix_init_identity — Creates a new identity matrix

Описание

Объектно-ориентированный стиль (method):

public static void CairoMatrix::initIdentity ( void )

Процедурный стиль:

object cairo_matrix_init_identity ( void )

Creates a new matrix that is an identity transformation. An identity transformation means the source data is copied into the destination data without change

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a new CairoMatrix object that can be used with surfaces, contexts, and patterns.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Create a new Matrix */
$matrix = CairoMatrix::initIdentity();
?>

Пример #2 Процедурный стиль

<?php
/* Create a new Matrix */
$matrix = cairo_matrix_init_identity();
?>

Смотрите также

  • CairoMatrix::__construct() - Creates a new CairoMatrix object
  • CairoMatrix::initRotate() - Creates a new rotated matrix
  • CairoMatrix::initScale() - Creates a new scaling matrix
  • CairoMatrix::initTranslate() - Creates a new translation matrix


Creates a new rotated matrix

  • « CairoMatrix::initIdentity
  • CairoMatrix::initScale »
  • PHP Manual
  • CairoMatrix
  • Creates a new rotated matrix

CairoMatrix::initRotate

cairo_matrix_init_rotate

(PECL cairo >= 0.1.0)

CairoMatrix::initRotate -- cairo_matrix_init_rotate — Creates a new rotated matrix

Описание

Объектно-ориентированный стиль (method):

public static void CairoMatrix::initRotate ( float $radians )

Процедурный стиль:

object cairo_matrix_init_rotate ( float $radians )

Creats a new matrix to a transformation that rotates by radians provided

Список параметров

radians

angle of rotation, in radians. The direction of rotation is defined such that positive angles rotate in the direction from the positive X axis toward the positive Y axis. With the default axis orientation of cairo, positive angles rotate in a clockwise direction.

Возвращаемые значения

Returns a new CairoMatrix object that can be used with surfaces, contexts, and patterns.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Create a new Matrix */
$matrix = CairoMatrix::initRotate(0.3);
?>

Пример #2 Процедурный стиль

<?php
/* Create a new Matrix */
$matrix = cairo_matrix_init_rotate(0.3);
?>

Смотрите также

  • CairoMatrix::__construct() - Creates a new CairoMatrix object
  • CairoMatrix::initIdentity() - Creates a new identity matrix
  • CairoMatrix::initScale() - Creates a new scaling matrix
  • CairoMatrix::initTranslate() - Creates a new translation matrix


Creates a new scaling matrix

  • « CairoMatrix::initRotate
  • CairoMatrix::initTranslate »
  • PHP Manual
  • CairoMatrix
  • Creates a new scaling matrix

CairoMatrix::initScale

cairo_matrix_init_scale

cairo_matrix_create_scale

(PECL cairo >= 0.1.0)

CairoMatrix::initScale -- cairo_matrix_init_scale -- cairo_matrix_create_scale — Creates a new scaling matrix

Описание

Объектно-ориентированный стиль (method):

public static void CairoMatrix::initScale ( float $sx , float $sy )

Процедурный стиль:

object cairo_matrix_init_scale ( float $sx , float $sy )

Creates a new matrix to a transformation that scales by sx and sy in the X and Y dimensions, respectively.

Список параметров

sx

scale factor in the X direction

sy

scale factor in the Y direction

Возвращаемые значения

Returns a new CairoMatrix object that can be used with surfaces, contexts, and patterns.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Create a new Matrix */
$matrix = CairoMatrix::initScale(1.0, 2.0);
?>

Пример #2 Процедурный стиль

<?php
/* Create a new Matrix */
$matrix = cairo_matrix_init_scale(1.0, 2.0);
?>

Смотрите также

  • CairoMatrix::__construct() - Creates a new CairoMatrix object
  • CairoMatrix::initIdentity() - Creates a new identity matrix
  • CairoMatrix::initRotate() - Creates a new rotated matrix
  • CairoMatrix::initTranslate() - Creates a new translation matrix


Creates a new translation matrix

  • « CairoMatrix::initScale
  • CairoMatrix::invert »
  • PHP Manual
  • CairoMatrix
  • Creates a new translation matrix

CairoMatrix::initTranslate

cairo_matrix_init_translate

(PECL cairo >= 0.1.0)

CairoMatrix::initTranslate -- cairo_matrix_init_translate — Creates a new translation matrix

Описание

Объектно-ориентированный стиль (method):

public static void CairoMatrix::initTranslate ( float $tx , float $ty )

Процедурный стиль:

object cairo_matrix_init_translate ( float $tx , float $ty )

Creates a new matrix to a transformation that translates by tx and ty in the X and Y dimensions, respectively.

Список параметров

tx

amount to translate in the X direction

ty

amount to translate in the Y direction

Возвращаемые значения

Returns a new CairoMatrix object that can be used with surfaces, contexts, and patterns.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Create a new Matrix */
$matrix = CairoMatrix::initTranslate(1.0, 2.0);
?>

Пример #2 Процедурный стиль

<?php
/* Create a new Matrix */
$matrix = cairo_matrix_init_translate(1.0, 2.0);
?>

Смотрите также

  • CairoMatrix::__construct() - Creates a new CairoMatrix object
  • CairoMatrix::initIdentity() - Creates a new identity matrix
  • CairoMatrix::initRotate() - Creates a new rotated matrix
  • CairoMatrix::initScale() - Creates a new scaling matrix


The invert purpose

  • « CairoMatrix::initTranslate
  • CairoMatrix::multiply »
  • PHP Manual
  • CairoMatrix
  • The invert purpose

CairoMatrix::invert

(PECL cairo >= 0.1.0)

CairoMatrix::invert — The invert purpose

Описание

public void CairoMatrix::invert ( void )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Description...

Примеры

Пример #1 CairoMatrix::invert() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The multiply purpose

  • « CairoMatrix::invert
  • CairoMatrix::rotate »
  • PHP Manual
  • CairoMatrix
  • The multiply purpose

CairoMatrix::multiply

(PECL cairo >= 0.1.0)

CairoMatrix::multiply — The multiply purpose

Описание

public static CairoMatrix CairoMatrix::multiply ( CairoMatrix $matrix1 , CairoMatrix $matrix2 )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

matrix1

Description...

matrix2

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoMatrix::multiply() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The rotate purpose

  • « CairoMatrix::multiply
  • CairoMatrix::scale »
  • PHP Manual
  • CairoMatrix
  • The rotate purpose

CairoMatrix::rotate

cairo_rotate

(PECL cairo >= 0.1.0)

CairoMatrix::rotate -- cairo_rotate — The rotate purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoMatrix::rotate ( string $sx , string $sy )

Процедурный стиль:

void cairo_rotate ( CairoContext $context , string $angle )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

angle

Description...

sx

Description...

sy

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Applies scaling to a matrix

  • « CairoMatrix::rotate
  • CairoMatrix::transformDistance »
  • PHP Manual
  • CairoMatrix
  • Applies scaling to a matrix

CairoMatrix::scale

cairo_matrix_scale

(PECL cairo >= 0.1.0)

CairoMatrix::scale -- cairo_matrix_scale — Applies scaling to a matrix

Описание

Объектно-ориентированный стиль (method):

public void CairoMatrix::scale ( float $sx , float $sy )

Процедурный стиль:

void cairo_matrix_scale ( CairoContext $context , float $sx , float $sy )

Applies scaling by sx, sy to the transformation in the matrix. The effect of the new transformation is to first scale the coordinates by sx and sy, then apply the original transformation to the coordinates.

Список параметров

matrix

Procedural only - CairoMatrix instance

sx

scale factor in the X direction

sy

scale factor in the Y direction

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* Apply scaling to a matrix */
$matrix = new CairoMatrix(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
$matrix->scale(0.2, 2.0);
?>

Пример #2 Процедурный стиль

<?php
/* Apply scaling to a matrix */
$matrix = cairo_matrix_init(1.0, 0.5, 0.0, 1.0, 0.0, 0.0);
cairo_matrix_scale($matrix, 0.2, 2.0);
?>

Смотрите также

  • CairoMatrix::initScale() - Creates a new scaling matrix


The transformDistance purpose

  • « CairoMatrix::scale
  • CairoMatrix::transformPoint »
  • PHP Manual
  • CairoMatrix
  • The transformDistance purpose

CairoMatrix::transformDistance

(PECL cairo >= 0.1.0)

CairoMatrix::transformDistance — The transformDistance purpose

Описание

public array CairoMatrix::transformDistance ( string $dx , string $dy )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

dx

Description...

dy

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoMatrix::transformDistance() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The transformPoint purpose

  • « CairoMatrix::transformDistance
  • CairoMatrix::translate »
  • PHP Manual
  • CairoMatrix
  • The transformPoint purpose

CairoMatrix::transformPoint

(PECL cairo >= 0.1.0)

CairoMatrix::transformPoint — The transformPoint purpose

Описание

public array CairoMatrix::transformPoint ( string $dx , string $dy )

The method description goes here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

dx

Description...

dy

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 CairoMatrix::transformPoint() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The translate purpose

  • « CairoMatrix::transformPoint
  • CairoOperator »
  • PHP Manual
  • CairoMatrix
  • The translate purpose

CairoMatrix::translate

cairo_translate

(PECL cairo >= 0.1.0)

CairoMatrix::translate -- cairo_translate — The translate purpose

Описание

Объектно-ориентированный стиль (method):

public void CairoMatrix::translate ( string $tx , string $ty )

Процедурный стиль:

void cairo_translate ( CairoContext $context , string $x , string $y )

Description here.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

context

Description...

x

Description...

y

Description...

tx

Description...

ty

Description...

Возвращаемые значения

Description...

Примеры

Пример #1 Объектно-ориентированный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Пример #2 Процедурный стиль

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The CairoOperator class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

This is used to set the compositing operator for all cairo drawing operations.

The default operator is CairoOperator::OVER

The operators marked as unbounded modify their destination even outside of the mask layer (that is, their effect is not bound by the mask layer). However, their effect can still be limited by way of clipping.

To keep things simple, the operator descriptions here document the behavior for when both source and destination are either fully transparent or fully opaque. The actual implementation works for translucent layers too. For a more detailed explanation of the effects of each operator, including the mathematical definitions, see http://cairographics.org/operators/.

Обзор классов

CairoOperator {
/* Константы */
const integer CLEAR = 0 ;
const integer SOURCE = 1 ;
const integer OVER = 2 ;
const integer IN = 3 ;
const integer OUT = 4 ;
const integer ATOP = 5 ;
const integer DEST = 6 ;
const integer DEST_OVER = 7 ;
const integer DEST_IN = 8 ;
const integer DEST_OUT = 9 ;
const integer DEST_ATOP = 10 ;
const integer XOR = 11 ;
const integer ADD = 12 ;
const integer SATURATE = 13 ;
}

Предопределенные константы

CairoOperator::CLEAR

Clear destination layer (bounded)

CairoOperator::SOURCE

Replace destination layer (bounded)

CairoOperator::OVER

Draw source layer on top of destination layer (bounded)

CairoOperator::IN

Draw source where there was destination content (unbounded)

CairoOperator::OUT

Draw source where there was no destination content (unbounded)

CairoOperator::ATOP

Draw source on top of destination content and only there

CairoOperator::DEST

Ignore the source

CairoOperator::DEST_OVER

Draw destination on top of source

CairoOperator::DEST_IN

Leave destination only where there was source content (unbounded)

CairoOperator::DEST_OUT

Leave destination only where there was no source content

CairoOperator::DEST_ATOP

Leave destination on top of source content and only there (unbounded)

CairoOperator::XOR

Source and destination are shown where there is only one of them

CairoOperator::ADD

Source and destination layers are accumulated

CairoOperator::SATURATE

Like CairoOperator::OVER, but assuming source and dest are disjoint geometries


The CairoPath class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Note: CairoPath class cannot be instantiated directly, doing so will result in Fatal Error if used or passed

Обзор классов

CairoPath {
}


Класс CairoPsLevel

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

CairoPsLevel {
/* Константы */
const integer LEVEL_2 = 0 ;
const integer LEVEL_3 = 1 ;
}

Предопределенные константы

CairoPsLevel::LEVEL_2

Здесь будет описание...

CairoPsLevel::LEVEL_3

Здесь будет описание...


Класс CairoSubpixelOrder

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

CairoSubpixelOrder {
/* Константы */
const integer ORDER_DEFAULT = 0 ;
const integer ORDER_RGB = 1 ;
const integer ORDER_BGR = 2 ;
const integer ORDER_VRGB = 3 ;
const integer ORDER_VBGR = 4 ;
}

Предопределенные константы

CairoSubpixelOrder::ORDER_DEFAULT

Здесь будет описание...

CairoSubpixelOrder::ORDER_RGB

Здесь будет описание...

CairoSubpixelOrder::ORDER_BGR

Здесь будет описание...

CairoSubpixelOrder::ORDER_VRGB

Здесь будет описание...

CairoSubpixelOrder::ORDER_VBGR

Здесь будет описание...


Класс CairoSvgVersion

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

CairoSvgVersion {
/* Константы */
const integer VERSION_1_1 = 0 ;
const integer VERSION_1_2 = 1 ;
}

Предопределенные константы

CairoSvgVersion::VERSION_1_1

Здесь будет описание...

CairoSvgVersion::VERSION_1_2

Здесь будет описание...


Изменяемая информация об изображении

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Exif Функции
    • exif_imagetype — Определение типа изображения
    • exif_read_data — Читает EXIF-заголовки JPEG и TIFF изображений
    • exif_tagname — Получение имени заголовка по его индексу
    • exif_thumbnail — Получает встроенный эскиз TIFF или JPEG изображения
    • read_exif_data — Псевдоним exif_read_data


Введение

С помощью расширения EXIF вы можете работать с мета-данными изображений. Например, вы можете использовать EXIF функции для чтения метаданных из фотографий снятых на цифровые камеры. Эти функции работают с информацией, хранящейся в заголовках JPEG и TIFF изображений.


Требования

Ваш PHP должен быть скомпилирован с опцией --enable-exif. PHP не требует никаких дополнительных библиотек для модуля exif. Пользователям Windows необходимо также иметь включенным расширение mbstring.


Установка

Чтобы включить поддержку 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 | Доступна начиная с PHP 4.3.0.
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL | Доступна начиная с PHP 4.3.0.
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL | Доступна начиная с PHP 4.3.0.
exif.encode_jis | "" | PHP_INI_ALL | Доступна начиная с PHP 4.3.0.
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL | Доступна начиная с PHP 4.3.0.
exif.decode_jis_intel | "JIS" | PHP_INI_ALL | Доступна начиная с PHP 4.3.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

exif.encode_unicode string

exif.encode_unicode определяет набор символов UNICODE при обработке пользовательских комментариев. По умолчанию это ISO-8859-15, который должен работать для большинства не азиатских стран. Эта установка может быть пустой или обязана быть кодировкой, поддерживаемой mbstring. Если она пустая, используется текущая внутренняя кодировка mbstring.

exif.decode_unicode_motorola string

exif.decode_unicode_motorola определяет внутреннюю кодировку символов изображения для Unicode-кодированных пользовательских комментариев, если изображение имеет байтовый порядок motorola (big-endian). Эта установка не может быть пустой, но вы можете указать список кодировок, поддерживаемых mbstring. По умолчанию UCS-2BE.

exif.decode_unicode_intel string

exif.decode_unicode_intel определяет внутреннюю кодировку символов изображения для Unicode-кодированных пользовательских комментариев, если изображение имеет байтовый порядок intel (little-endian). Эта установка не может быть пустой, но вы можете указать список кодировок, поддерживаемых mbstring. По умолчанию UCS-2LE.

exif.encode_jis string

exif.encode_jis определяет набор символов JIS для обработки пользовательских комментариев. По умолчанию - пустое значение, которое заставляет функции использовать текущую внутреннюю кодировку mbstring.

exif.decode_jis_motorola string

exif.decode_jis_motorola определяет внутреннюю кодировку символов изображения для JIS-кодированных пользовательских комментариев, если изображение имеет байтовый порядок motorola (big-endian). Эта установка не может быть пустой, но вы можете указать список кодировок, поддерживаемых mbstring. По умолчанию JIS.

exif.decode_jis_intel string

exif.decode_jis_intel определяет внутреннюю кодировку символов изображения для JIS-кодированных пользовательских комментариев, если изображение имеет байтовый порядок intel (little-endian). Эта установка не может быть пустой, но вы можете указать список кодировок, поддерживаемых mbstring. По умолчанию JIS.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

EXIF_USE_MBSTRING (integer)

Функция exif_imagetype() отображает связанные встроенные константы.


Exif Функции

Содержание

  • exif_imagetype — Определение типа изображения
  • exif_read_data — Читает EXIF-заголовки JPEG и TIFF изображений
  • exif_tagname — Получение имени заголовка по его индексу
  • exif_thumbnail — Получает встроенный эскиз TIFF или JPEG изображения
  • read_exif_data — Псевдоним exif_read_data


Определение типа изображения

  • « Exif Функции
  • exif_read_data »
  • PHP Manual
  • Exif Функции
  • Определение типа изображения

exif_imagetype

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

exif_imagetype — Определение типа изображения

Описание

int exif_imagetype ( string $filename )

exif_imagetype() считывает начальные байты изображения и проверяет их сигнатуру.

exif_imagetype() может использоваться, чтобы избежать вызовов других exif-функций с неподдерживаемыми аргументами. Также при взаимодействии с $_SERVER['HTTP_ACCEPT'] можно проверять, будет ли изображение отображаться в браузере.

Список параметров

filename
Изображение, тип которого требуется определить.

Возвращаемые значения

Если корректная сигнатура обнаружена, функция вернет соответствующую типу изображения константу. В противном случае функция вернет FALSE. Возвращаемое значение то же, что и во втором аргументе при возврате из функции getimagesize(), однако exif_imagetype() значительно быстрее.

Замечание:

В случаях, когда невозможно считать количество байтов из файла достаточное для определения типа изображения, функция exif_imagetype() вызовет предупреждение уровня E_NOTICE и вернет FALSE.

Список изменений

Версия | Описание
5.3.0 | Добавлена поддержка иконок.

Предопределенные константы

Следующие определенные константы представляют возможные возвращаемые значения функции exif_imagetype():

Imagetype константы
Значение | Константа
1 | IMAGETYPE_GIF
2 | IMAGETYPE_JPEG
3 | IMAGETYPE_PNG
4 | IMAGETYPE_SWF
5 | IMAGETYPE_PSD
6 | IMAGETYPE_BMP
7 | IMAGETYPE_TIFF_II (порядок байт intel)
8 | IMAGETYPE_TIFF_MM (порядок байт motorola)
9 | IMAGETYPE_JPC
10 | IMAGETYPE_JP2
11 | IMAGETYPE_JPX
12 | IMAGETYPE_JB2
13 | IMAGETYPE_SWC
14 | IMAGETYPE_IFF
15 | IMAGETYPE_WBMP
16 | IMAGETYPE_XBM
17 | IMAGETYPE_ICO

Примеры

Пример #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-заголовки JPEG и TIFF изображений

  • « exif_imagetype
  • exif_tagname »
  • PHP Manual
  • Exif Функции
  • Читает EXIF-заголовки JPEG и TIFF изображений

exif_read_data

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

exif_read_data — Читает EXIF-заголовки JPEG и TIFF изображений

Описание

array exif_read_data ( string $filename [, string $sections = NULL [, bool $arrays = false [, bool $thumbnail = false ]]] )

exif_read_data() читает EXIF-заголовки JPEG и TIFFфайлов. Таким образом можно читать метаданные, генерируемые цифровыми фотоаппаратами.

По идее, EXIF-заголовки должны идти первыми в JPEG/TIFF файлах, генерируемых фотоаппаратами. Но, к сожалению, каждый производитель имеет свое представление того, каким образом компоновать метаданные изображения. Поэтому будьте готовы к ситуации, когда перед Exif-заголовком есть еще что-то.

Height и Width вычисляются аналогично вычислениям getimagesize(), так что эти параметры не обязаны присутствовать в заголовке. html - текстовая строка, задающая высоту/ширину, которую можно использовать в обычном HTML.

Если Exif-заголовок содержит сообщение об авторских правах (Copyright), само сообщение может содержать 2 значения. Эта ситуация не описана в стандарте Exif 2.10, поэтому раздел COMPUTED будет содержать оба этих значения в полях Copyright.Photographer и Copyright.Editor. В то же время разделы IFD0 будут содержать массив байт с NULL-символом в качестве разделителя этих двух значений либо только первое значение, если тип файла определен неверно (нормальная ситуация для Exif). Раздел COMPUTED будет также содержать Copyright, это может быть либо исходная строка, либо список из владельца фотографии и редактора через запятую.

Тэг UserComment имеет те же проблемы, что и Copyright. Он может хранить 2 значения. Первое - использованную кодировку, второе - само значение. В этом случае раздел IFD содержит либо кодировку, либо массив байт. Раздел COMPUTED будет хранить оба этих значения в полях UserCommentEncoding и UserComment. Содержимое UserComment будет доступно в любом случае, поэтому предпочтительней использовать его вместо раздела IFD0.

Также exif_read_data() проверяет EXIF тэги на соответствие спецификации EXIF (» http://exif.org/Exif2-2.PDF, стр. 20).

Замечание:

Windows Me/XP могут затирать Exif-заголовки при подключении фотоаппарата.

Список параметров

filename

Имя файла изображения. Нельзя передавать URL.

sections

Список разделенных запятой разделов, которые должны быть представлены в результирующем массиве array. Если ни один из разделов найти не удастся, функция вернет FALSE.

FILE | FileName, FileSize, FileDateTime, SectionsFound
COMPUTED | html, Width, Height, IsColor, и другие. Height and Width вычисляются аналогично getimagesize(), поэтому их не обязательно включать в заголовок. html - текстовая строка, задающая высоту/ширину, которую можно использовать в обычном HTML.
ANY_TAG | Любая информация заключенная в тэг, например IFD0, EXIF, ...
IFD0 | Все данные тэга IFD0. В обычных изображениях в нем хранится размер изображения.
THUMBNAIL | Если файл содержит второй раздел IFD, то считается, что у изображения есть эскиз. Вся информация об эскизе хранится в этом разделе.
COMMENT | Заголовки комментариев JPEG изображений.
EXIF | Раздел EXIF является подразделом IFD0. Он содержит более детальную информацию об изображении. Большинство его записей зависит от фотоаппарата.

arrays

Определяет, формировать ли разделы в виде массивов. Разделы sections, COMPUTED, THUMBNAIL и COMMENT всегда делаются массивами, так как они могут содержать значения, имена которых будут конфликтовать с именами в других разделах.

thumbnail

Если TRUE, будет прочитан сам эскиз. В противном случае будет прочитана только информация в тэгах.

Возвращаемые значения

Возвращает ассоциативный массив array, в котором ключами будут имена заголовков, а значениями - значения соответствующие этим заголовкам. Если никаких данных вернуть нельзя, exif_read_data() вернет FALSE.

Список изменений

Версия | Описание
4.3.0 | Может читать все встроенные IFD данные, включая массивы. Размер встроенного эскиза возвращается во вложенном THUMBNAIL. Может возвращать эскизы в формате TIFF. Больше нет ограничения максимальной длины возвращаемых значений (но всю память выработать не получится).
4.3.0 | Если в PHP есть поддержка mbstring, кодировка пользовательского комментария может быть автоматически изменена. Если пользовательский комментарий представлен в кодировках Unicode или JIS, эти кодировки будут автоматически преобразованы в соответствии с ini-настройками в php.ini
4.3.0 | Если изображение содержит какие-либо данные в IFD0, то COMPUTED будет содержать порядок байт ByteOrderMotorola со значением 0 для little-endian (intel) и 1 для big-endian (motorola). Также, COMPUTED и UserComment больше не содержат первое значение copyright, если при определении типа данных файла возникла ошибка.

Примеры

Пример #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

Смотрите также

  • exif_thumbnail() - Получает встроенный эскиз TIFF или JPEG изображения
  • getimagesize() - Получение размера изображения


Получение имени заголовка по его индексу

  • « exif_read_data
  • exif_thumbnail »
  • PHP Manual
  • Exif Функции
  • Получение имени заголовка по его индексу

exif_tagname

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

exif_tagname — Получение имени заголовка по его индексу

Описание

string exif_tagname ( int $index )

Список параметров

index

ID тэга, имя которого требуется получить.

Возвращаемые значения

Возвращает имя заголовка или FALSE, если index не является ранее определенным ID EXIF тэга.

Примеры

Пример #1 Пример использования exif_tagname()

<?php
echo "256: ".exif_tagname(256).PHP_EOL;
echo "257: ".exif_tagname(257).PHP_EOL;
?>

Результат выполнения данного примера:

256: ImageWidth
257: ImageLength

Смотрите также

  • exif_imagetype() - Определение типа изображения
  • » EXIF спецификация
  • » EXIF тэги


Получает встроенный эскиз TIFF или JPEG изображения

  • « exif_tagname
  • read_exif_data »
  • PHP Manual
  • Exif Функции
  • Получает встроенный эскиз TIFF или JPEG изображения

exif_thumbnail

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

exif_thumbnail — Получает встроенный эскиз TIFF или JPEG изображения

Описание

string exif_thumbnail ( string $filename [, int &$width [, int &$height [, int &$imagetype ]]] )

exif_thumbnail() считывает встроенный эскиз из TIFF или JPEG изображения.

Если вы хотите получить эскиз посредством этой функции, вам необходимо отправить mimetype-информацию, использовав header() функцию.

Иногда exif_thumbnail() не может создать изображение, но может определить его размер. В таких случаях она возвращает FALSE, но задает аргументам width и height правильные значения.

Список параметров

filename

Имя файла изображения. Изображение содержит встроенный эскиз.

width

Возвращаемая ширина эскиза.

height

Возвращаемая высота эскиза.

imagetype

Возвращаемый тип эскиза. Это либо TIFF, либо JPEG.

Возвращаемые значения

Возвращает встроенный эскиз или FALSE, если изображение не содержит эскиза.

Примеры

Пример #1 Пример использования exif_thumbnail()

<?php
if (array_key_exists('file', $_REQUEST)) {
    $image = exif_thumbnail($_REQUEST['file'], $width, $height, $type);
} else {
    $image = false;
}
if ($image!==false) {
    header('Content-type: ' .image_type_to_mime_type($type));
    echo $image;
    exit;
} else {
    // нет доступного эскиза, здесь можно обработать ошибку
    echo 'Нет доступного эскиза';
}
?>

Смотрите также

  • exif_read_data() - Читает EXIF-заголовки JPEG и TIFF изображений
  • image_type_to_mime_type() - Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype


Псевдоним exif_read_data

  • « exif_thumbnail
  • GD »
  • PHP Manual
  • Exif Функции
  • Псевдоним exif_read_data

read_exif_data

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

read_exif_data — Псевдоним exif_read_data()

Описание

Эта функция является псевдонимом: exif_read_data().


Обработка изображений и 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 — Return an image containing the affine transformed src image, using an optional clipping area
    • imageaffinematrixconcat — Concatenate two affine transformation matrices
    • imageaffinematrixget — Get an affine transformation matrix
    • imagealphablending — Задание режима сопряжения цветов для изображения
    • imageantialias — Требуется ли применять функции сглаживания или нет
    • imagearc — Рисование дуги
    • 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 — Создание нового палитрового изображения
    • imagecreatefromgd2 — Создание нового изображения на основе GD2 или URL
    • imagecreatefromgd2part — Создание нового изображения на основе части GD2 файла или URL
    • imagecreatefromgd — Создание нового изображения на основе GD файла или URL
    • imagecreatefromgif — Создает новое изображение из файла или URL
    • imagecreatefromjpeg — Создает новое изображение из файла или URL
    • imagecreatefrompng — Создает новое изображение из файла или URL
    • imagecreatefromstring — Создание нового изображения из потока представленного строкой
    • imagecreatefromwbmp — Создает новое изображение из файла или URL
    • imagecreatefromwebp — Создает новое изображение из файла или URL
    • imagecreatefromxbm — Создает новое изображение из файла или URL
    • imagecreatefromxpm — Создает новое изображение из файла или URL
    • imagecreatetruecolor — Создание нового полноцветного изображения
    • imagecrop — Crop an image to the given rectangle
    • imagecropauto — Crop an image automatically using one of the available modes
    • imagedashedline — Рисование пунктирной линии
    • imagedestroy — Уничтожение изображения
    • imageellipse — Рисование эллипса
    • imagefill — Заливка
    • imagefilledarc — Рисование и заливка дуги
    • imagefilledellipse — Рисование закрашенного эллипса
    • imagefilledpolygon — Рисование закрашенного многоугольника
    • imagefilledrectangle — Рисование закрашенного прямоугольника
    • imagefilltoborder — Заливка цветом
    • imagefilter — Применяет фильтр к изображению
    • imageflip — Flips an image using a given mode
    • imagefontheight — Получение высоты шрифта
    • imagefontwidth — Получение ширины шрифта
    • imageftbbox — Определение границ текста выводимого шрифтом freetype2
    • imagefttext — Нанесение текста на изображение, используя шрифты FreeType 2
    • imagegammacorrect — Применение гамма коррекции к GD изображению
    • imagegd2 — Вывод GD2 изображения в браузер или файл
    • imagegd — Вывод GD-изображения в браузер или в файл
    • imagegetclip — Get the clipping rectangle
    • imagegif — Выводит изображение в браузер или пишет в файл
    • imagegrabscreen — Захватывает изображение с экрана
    • imagegrabwindow — Захватывает изображение окна
    • imageinterlace — Включение или выключение интерлейсинга
    • imageistruecolor — Определяет, является ли изображение полноцветным
    • imagejpeg — Выводит изображение в браузер или пишет в файл
    • imagelayereffect — Установка флага альфа сопряжения для использования эффектов наложения изображений
    • imageline — Рисование линии
    • imageloadfont — Загрузка шрифта
    • imageopenpolygon — Draws an open polygon
    • imagepalettecopy — Копирование палитры из одного изображения в другое
    • imagepalettetotruecolor — Converts a palette based image to true color
    • imagepng — Вывод PNG изображения в браузер или файл
    • imagepolygon — Рисование многоугольника
    • imagepsbbox — Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1
    • imagepsencodefont — Изменение вектора кодировки шрифта
    • imagepsextendfont — Растягивание или сжатие шрифта
    • imagepsfreefont — Освобождение памяти, занятой шрифтом PostScript Type
    • imagepsloadfont — Загрузка шрифта PostScript Type 1 из файла
    • imagepsslantfont — Наклон шрифта
    • imagepstext — Рисование текста поверх изображения, используя шрифты PostScript Type1
    • imagerectangle — Рисование прямоугольника
    • imageresolution — Get or set the resolution of the image
    • imagerotate — Поворот изображения с заданным углом
    • imagesavealpha — Установка флага сохранения всей информации альфа компонента (в противовес одноцветной прозрачности) и сохранение PNG изображения
    • imagescale — Scale an image using the given new width and height
    • imagesetbrush — Установка изображения (кисти), посредством которого будут рисоваться линии
    • imagesetclip — Set the clipping rectangle
    • imagesetinterpolation — Set the interpolation method
    • imagesetpixel — Рисование точки
    • imagesetstyle — Установка стиля рисования линий
    • imagesetthickness — Установка толщины линий
    • imagesettile — Установка изображения, которое будет использовано в качестве элемента мозаичной заливки
    • imagestring — Рисование строки текста горизонтально
    • imagestringup — Рисование строки текста вертикально
    • imagesx — Получение ширины изображения
    • imagesy — Получение высоты изображения
    • imagetruecolortopalette — Преобразование полноцветного изображения в палитровое
    • imagettfbbox — Получение параметров рамки обрамляющей текст написанный TrueType шрифтом
    • imagettftext — Рисование текста на изображении шрифтом TrueType
    • imagetypes — Возвращает список типов изображений, поддерживаемых PHP сборкой
    • imagewbmp — Выводит изображение в браузер или пишет в файл
    • imagewebp — Output a WebP image to browser or file
    • imagexbm — Вывод XBM изображения в браузер или файл
    • iptcembed — Встраивание двоичных IPTC данных в JPEG изображение
    • iptcparse — Разбор двоичных IPTC данных на отдельные тэги
    • jpeg2wbmp — Конвертирует изображение из формата JPEG в WBMP
    • png2wbmp — Преобразование PNG файла в WBMP


Введение

PHP не ограничен созданием только HTML страничек. Он так же позволяет создавать и работать с файлами изображений в различных форматах включая GIF, PNG, JPEG, WBMP, и XPM. Что более удобно, PHP позволяет выводить изображение в потоке непосредственно в браузер. Для этого необходимо скомпилировать PHP с графической библиотекой GD, содержащей функции для работы с изображениями. Для работы с GD могут потребоваться другие библиотеки (в зависимости от формата изображений, с которыми возникла необходимость работать).

Существует стандартная функция PHP для получения размера изображения следующих форматов изображений: JPEG, GIF, PNG, SWF, TIFF и JPEG2000.

С модулем EXIF доступна работа с информацией, хранящейся в заголовках JPEG и TIFF изображений. Таким образом можно читать мета-данные, сгенерированные цифровыми фотоаппаратами. Модуль EXIF не требуется библиотеке GD.

Замечание: Прочитайте раздел требований, чтобы узнать, как расширить возможности чтения, записи и модификации изображений. Чтобы иметь возможность читать мета-данные изображений, взятых с цифровых фотоаппаратов нужно, уже упомянутый модуль EXIF.

Замечание: Функция getimagesize() не требует наличия библиотеки GD.

GD поддерживает ряд форматов. Ниже приведен список этих форматов и пометки о доступности, включая поддержку чтения и записи.

Форматы, поддерживаемые GD
Формат | Поддержка чтения | Поддержка записи | Примечания
JPEG | TRUE | TRUE |
PNG | TRUE | TRUE |
GIF | TRUE | TRUE | Доступно начиная с GD 2.0.28 и PHP 5.0.1
XBM | TRUE | TRUE |
XPM | TRUE | FALSE | Поддержка чтения доступна на Windows начиная с PHP 5.3.19
WBMP | TRUE | TRUE |
WebP | TRUE | TRUE | PHP 5.5+

Несмотря на то, что большинство форматов в приведенной таблице доступны для чтения и записи, это не значит, что PHP был собран с их поддержкой. Чтобы узнать какие форматы были включены для GD при сборке, используйте функцию gd_info(). Для дополнительной информации смотрите раздел об установке.


Требования

При наличии GD-библиотеки (доступна по адресу » http://www.libgd.org/), вы можете создавать и изменять изображения.

Форматы изображений, с которыми можно работать, зависят от версии установленной GD, а так же от наличия других библиотек, к которым GD может обращаться для получения доступа к тем или иным форматам. Поддержка GIF включена в версии gd-2.0.28.

Замечание: С версии PHP 5.0 требуется libgd-2.0.4 или выше. С версии PHP 5.5 требуется libgd-2.1.0 или выше. Либо же используйте библиотеку GD входящую в дистрибутив PHP.

Возможно, вы пожелаете расширить GD, чтобы обрабатывать больше форматов изображений.

Поддерживаемые форматы изображений
Формат изображения | Необходимая библиотека | Замечания
gif |  | Поддерживается только в версиях GD старше gd-2.0.28. Поддержка Write доступна с PHP 5.0.1.
jpeg | » http://www.ijg.org/ | При сборке библиотеки jpeg (перед сборкой PHP) необходимо включить настройку --enable-shared на этапе конфигурирования. Если этого не сделать, на этапе конфигурирования сборки PHP будет выдана ошибка libjpeg.(a|so) not found.
png | » http://www.libpng.org/pub/png/libpng.html |
xpm | » ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html | Если в системе установлено окружение X-Environment, то бибилиотека уже доступна.

Можно расширить функционал GD для работы с различными шрифтами. Доступные библиотеки шрифтов:

Доступные библиотеки шрифтов
Библиотека шрифтов | Загрузка | Замечания
FreeType 1.x | » http://www.freetype.org/ | Поддержка FreeType 1.x удалена в PHP 5.3.0.
FreeType 2 | » http://www.freetype.org/ |
T1lib | » ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) | Поддержка шрифтов Postscript Type 1. Удалена в PHP 7.0.0.


Установка

Чтобы включить поддержку GD сконфигурируйте PHP с опцией --with-gd[=DIR] , где DIR -- это директория установки GD. Чтобы использовать рекомендованную разработчиками встроенную версию библиотеки GD, используйте опцию конфигурации --with-gd . Библиотека GD требует наличие библиотек libpng и libjpeg для компиляции.

В Windows-системах, вы должны включить модуль GD2 DLL php_gd2.dll в php.ini.

Повысить возможности библиотеки GD для работы с большим количеством форматов изображений можно, используя опцию --with-XXXX во время конфигурации PHP.

Поддерживаемые форматы изображений
Формат изображения | Опция при конфигурировании
jpeg | Чтобы включить поддержку jpeg добавьте --with-jpeg-dir=DIR . Jpeg 6b, 7 или 8 поддерживаются.
png | Чтобы включить поддержку png добавьте --with-png-dir=DIR . Внимание, libpng требует наличие библиотеки zlib, поэтому добавьте --with-zlib-dir[=DIR] при конфигурации.
xpm | Чтобы включить поддержку xpm добавьте --with-xpm-dir=DIR . Если во время конфигурации не удается найти необходимую библиотеку, можно указать путь к библиотеке X11.
webp | Для включения поддержки webp, добавьте --with-vpx-dir=DIR . Доступно с PHP 5.5. Начиная с PHP 7.0.0, была добавлена --with-webp-dir=DIR , т.е. поддержка libvpx была удалена в пользу libwebp.

Замечание: При компиляции PHP с libpng, вы должны использовать ту же версию libpng, с которой была собрана библиотека GD.

Повысить возможности библиотеки GD для работы с различными шрифтами можно, используя опцию --with-XXXX во время конфигурации PHP.

Поддерживаемые библиотеки шрифтов
Библиотека шрифтов | Опция при конфигурировании
FreeType 2 | Чтобы включить поддержку FreeType 2 добавьте --with-freetype-dir=DIR .
T1lib | Чтобы включить поддержку T1lib (шрифты Postscript Type 1) добавьте --with-t1lib[=DIR] . (Удалено в PHP 7.0.0)
Native TrueType string function | Чтобы включить поддержку Native TrueType string function добавьте --enable-gd-native-ttf . (Игнорируется с PHP 5.5.0; удалено в PHP 7.2.0.)


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Image Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
gd.jpeg_ignore_warning | "1" | PHP_INI_ALL | Доступно, начиная с PHP 5.1.3.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

gd.jpeg_ignore_warning bool

Игнорировать предупреждения, сгенерированные функциями jpeg2wbmp() и imagecreatefromjpeg()

Список изменений для gd.jpeg_ignore_warning
Версия | Описание
7.1.0 | Значение gd.jpeg_ignore_warning по умолчанию изменено с 0 на 1..

См. также директивы настройки exif.

Внимание

Функции для работы с изображениями потребляют много памяти. Убедитесь, что значение memory_limit достаточно велико.


Типы ресурсов

Это расширение определяет следующие типы ресурсов:

List of resource types in GD
Имя | Описание | Замечания
gd | Изображение, используется такими функциями как imagecreatefrompng() |
gd font | Фонт, возвращается imageloadfont() |
gd PS font | Фонт PostScript Type 1, возвращается imagepsloadfont() | Удалено в PHP 7.0.0.
gd PS encoding | Кодировка PostScript Type 1, возвращается imagepsencodefont() | Удалено в PHP 7.0.0.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

GD_VERSION (string)
Версия GD, с которой был скомпилирован PHP. (Доступна с PHP 5.2.4)
GD_MAJOR_VERSION (integer)
Полнофункциональная версия GD, с которой был скомпилирован PHP. (Доступна с PHP 5.2.4)
GD_MINOR_VERSION (integer)
Сокращенная версия GD, с которой был скомпилирован PHP. (Доступна с PHP 5.2.4)
GD_RELEASE_VERSION (integer)
Рабочая версия GD, с которой был скомпилирован PHP. (Доступна с PHP 5.2.4)
GD_EXTRA_VERSION (string)
Дополнительная (beta/rc..) версия GD, с которой был скомпилирован PHP. (Доступна с PHP 5.2.4)
GD_BUNDLED (integer)
Если используется распространяемая с PHP версия GD, константа принимает значение 1, в противном случае 0.
IMG_GIF (integer)
Used as a return value by imagetypes()
IMG_JPG (integer)
Used as a return value by imagetypes()
IMG_JPEG (integer)
Used as a return value by imagetypes()

Замечание:

Эта константа имеет то же значение, что и IMG_JPG

IMG_PNG (integer)
Used as a return value by imagetypes()
IMG_WBMP (integer)
Used as a return value by imagetypes()
IMG_XPM (integer)
Used as a return value by imagetypes()
IMG_WEBP (integer)
Used as a return value by imagetypes() Доступно с PHP 5.6.25 и PHP 7.0.10, соответственно.
IMG_COLOR_TILED (integer)
Специальный вариант цвета, который может быть использован вместо определенного с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_STYLED (integer)
Специальный вариант цвета, который может быть использован вместо определенного с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_BRUSHED (integer)
Специальный вариант цвета, который может быть использован вместо определенного с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_STYLEDBRUSHED (integer)
Специальный вариант цвета, который может быть использован вместо определенного с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_COLOR_TRANSPARENT (integer)
Специальный вариант цвета, который может быть использован вместо определенного с помощью imagecolorallocate() и imagecolorallocatealpha().
IMG_AFFINE_TRANSLATE (integer)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_SCALE (integer)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_ROTATE (integer)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_SHEAR_HORIZONTAL (integer)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_AFFINE_SHEAR_VERTICAL (integer)
Константа типа аффинного преобразования, используется с функцией imageaffinematrixget() .
IMG_ARC_ROUNDED (integer)
Константа стиля, используется с функцией imagefilledarc().

Замечание:

Эта константа имеет то же значение, что и IMG_ARC_PIE

IMG_ARC_PIE (integer)
Константа стиля, используется с функцией imagefilledarc().
IMG_ARC_CHORD (integer)
Константа стиля, используется с функцией imagefilledarc().
IMG_ARC_NOFILL (integer)
Константа стиля, используется с функцией imagefilledarc().
IMG_ARC_EDGED (integer)
Константа стиля, используется с функцией imagefilledarc().
IMG_GD2_RAW (integer)
Константа типа, используется с функцией imagegd2().
IMG_GD2_COMPRESSED (integer)
Константа типа, используется с функцией imagegd2().
IMG_EFFECT_REPLACE (integer)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_ALPHABLEND (integer)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_NORMAL (integer)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_OVERLAY (integer)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_EFFECT_MULTIPLY (integer)
Эффект альфа-смешения, используется с функцией imagelayereffect().
IMG_FILTER_NEGATE (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_GRAYSCALE (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_BRIGHTNESS (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_CONTRAST (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_COLORIZE (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_EDGEDETECT (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_GAUSSIAN_BLUR (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_SELECTIVE_BLUR (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_EMBOSS (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_MEAN_REMOVAL (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_SMOOTH (integer)
Специальный фильтр GD, используется с функцией imagefilter().
IMG_FILTER_PIXELATE (integer)
Специальный фильтр GD, используется с функцией imagefilter(). (Доступна с PHP 5.3.0)
IMAGETYPE_GIF (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPEG (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPEG2000 (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_PNG (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_SWF (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_PSD (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_BMP (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_WBMP (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_XBM (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_TIFF_II (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_TIFF_MM (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_IFF (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JB2 (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPC (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JP2 (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_JPX (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_SWC (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension().
IMAGETYPE_ICO (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension(). (Доступна, начиная с PHP 5.3.0)
IMAGETYPE_WEBP (integer)
Константа типа изображения, используется с функциями image_type_to_mime_type() и image_type_to_extension(). (Available as of PHP 7.1.0)
PNG_NO_FILTER (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_NONE (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_SUB (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_UP (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_AVG (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_FILTER_PAETH (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
PNG_ALL_FILTERS (integer)
Специальный фильтр PNG filter, используется с функцией imagepng().
IMG_FLIP_VERTICAL (int)
Используется с функцией imageflip(), доступна с PHP 5.5.0.
IMG_FLIP_HORIZONTAL (int)
Используется с функцией imageflip(), доступна с PHP 5.5.0.
IMG_FLIP_BOTH (int)
Используется с функцией imageflip(), доступна с PHP 5.5.0.
IMG_BELL (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BESSEL (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BILINEAR_FIXED (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BICUBIC_FIXED (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BICUBIC (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BLACKMAN (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BOX (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_BSPLINE (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_CATMULLROM (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_GAUSSIAN (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_GENERALIZED_CUBIC (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_HERMITE (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_HAMMING (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_HANNING (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_MITCHELL (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_POWER (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_QUADRATIC (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_SINC (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_NEAREST_NEIGHBOUR (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_WEIGHTED4 (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.
IMG_TRIANGLE (int)
Используется с функцией imagesetinterpolation(), доступна с PHP 5.5.0.


Примеры

Содержание

  • Создание PNG средствами PHP
  • Добавление водяных знаков на изображения с помощью альфа-каналов
  • Использование imagecopymerge создать полупрозрачный водяной знак


Создание PNG средствами PHP

Пример #1 Создание PNG средствами PHP

<?php

header("Content-type: image/png");
$string = $_GET['text'];
$im     = imagecreatefrompng("images/button1.png");
$orange = imagecolorallocate($im, 220, 210, 60);
$px     = (imagesx($im) - 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 9, $string, $orange);
imagepng($im);
imagedestroy($im);

?>
Этот пример можно было бы вызвать на странице с тегом: <img src="button.php?text=text">. Выше скрипт button.php возьмет строку "text" и наложит её поверх базового изображения, которое является, в данном случае "images/button1.png" и выведет конечное изображение. Это очень удобный способ, чтобы избежать необходимости создания новой кнопки всякий раз, когда вы хотите изменить текст кнопки. С помощью этого метода она генерируются динамически.


Добавление водяных знаков на изображения с помощью альфа-каналов

Пример #1 Добавление водяных знаков на изображения с помощью альфа-каналов

<?php
// Загрузка штампа и фото, для которого применяется водяной знак (называется штамп или печать)
$stamp = imagecreatefrompng('stamp.png');
$im = imagecreatefromjpeg('photo.jpeg');

// Установка полей для штампа и получение высоты/ширины штампа
$marge_right = 10;
$marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

// Копирование изображения штампа на фотографию с помощью смещения края
// и ширины фотографии для расчета позиционирования штампа.
imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

// Вывод и освобождение памяти
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
Добавление водяных знаков на изображения с помощью альфа-каналов
Этот пример является простым способом добавить водяные знаки и штампы на фотографии и изображения, защищенные авторским правом. Обратите внимание, что наличие альфа-канала в изображении штампа, как текст сглаживается. Это сохранилось во время копирования.


Использование imagecopymerge создать полупрозрачный водяной знак

  • « Добавление водяных знаков на изображения с помощью альфа-каналов
  • GD и функции для работы с изображениями Функции »
  • PHP Manual
  • Примеры
  • Использование imagecopymerge создать полупрозрачный водяной знак

Использование imagecopymerge() создать полупрозрачный водяной знак

Пример #1 Использование imagecopymerge() создать полупрозрачный водяной знак

<?php
// Загрузка штампа и фото, для которого применяется водяной знак (называется штамп или печать)
$im = imagecreatefromjpeg('photo.jpeg');

// Сначала создаем наше изображение штампа вручную с помощью GD
$stamp = imagecreatetruecolor(100, 70);
imagefilledrectangle($stamp, 0, 0, 99, 69, 0x0000FF);
imagefilledrectangle($stamp, 9, 9, 90, 60, 0xFFFFFF);
$im = imagecreatefromjpeg('photo.jpeg');
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 — Return an image containing the affine transformed src image, using an optional clipping area
  • imageaffinematrixconcat — Concatenate two affine transformation matrices
  • imageaffinematrixget — Get an affine transformation matrix
  • imagealphablending — Задание режима сопряжения цветов для изображения
  • imageantialias — Требуется ли применять функции сглаживания или нет
  • imagearc — Рисование дуги
  • 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 — Создание нового палитрового изображения
  • imagecreatefromgd2 — Создание нового изображения на основе GD2 или URL
  • imagecreatefromgd2part — Создание нового изображения на основе части GD2 файла или URL
  • imagecreatefromgd — Создание нового изображения на основе GD файла или URL
  • imagecreatefromgif — Создает новое изображение из файла или URL
  • imagecreatefromjpeg — Создает новое изображение из файла или URL
  • imagecreatefrompng — Создает новое изображение из файла или URL
  • imagecreatefromstring — Создание нового изображения из потока представленного строкой
  • imagecreatefromwbmp — Создает новое изображение из файла или URL
  • imagecreatefromwebp — Создает новое изображение из файла или URL
  • imagecreatefromxbm — Создает новое изображение из файла или URL
  • imagecreatefromxpm — Создает новое изображение из файла или URL
  • imagecreatetruecolor — Создание нового полноцветного изображения
  • imagecrop — Crop an image to the given rectangle
  • imagecropauto — Crop an image automatically using one of the available modes
  • imagedashedline — Рисование пунктирной линии
  • imagedestroy — Уничтожение изображения
  • imageellipse — Рисование эллипса
  • imagefill — Заливка
  • imagefilledarc — Рисование и заливка дуги
  • imagefilledellipse — Рисование закрашенного эллипса
  • imagefilledpolygon — Рисование закрашенного многоугольника
  • imagefilledrectangle — Рисование закрашенного прямоугольника
  • imagefilltoborder — Заливка цветом
  • imagefilter — Применяет фильтр к изображению
  • imageflip — Flips an image using a given mode
  • imagefontheight — Получение высоты шрифта
  • imagefontwidth — Получение ширины шрифта
  • imageftbbox — Определение границ текста выводимого шрифтом freetype2
  • imagefttext — Нанесение текста на изображение, используя шрифты FreeType 2
  • imagegammacorrect — Применение гамма коррекции к GD изображению
  • imagegd2 — Вывод GD2 изображения в браузер или файл
  • imagegd — Вывод GD-изображения в браузер или в файл
  • imagegetclip — Get the clipping rectangle
  • imagegif — Выводит изображение в браузер или пишет в файл
  • imagegrabscreen — Захватывает изображение с экрана
  • imagegrabwindow — Захватывает изображение окна
  • imageinterlace — Включение или выключение интерлейсинга
  • imageistruecolor — Определяет, является ли изображение полноцветным
  • imagejpeg — Выводит изображение в браузер или пишет в файл
  • imagelayereffect — Установка флага альфа сопряжения для использования эффектов наложения изображений
  • imageline — Рисование линии
  • imageloadfont — Загрузка шрифта
  • imageopenpolygon — Draws an open polygon
  • imagepalettecopy — Копирование палитры из одного изображения в другое
  • imagepalettetotruecolor — Converts a palette based image to true color
  • imagepng — Вывод PNG изображения в браузер или файл
  • imagepolygon — Рисование многоугольника
  • imagepsbbox — Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1
  • imagepsencodefont — Изменение вектора кодировки шрифта
  • imagepsextendfont — Растягивание или сжатие шрифта
  • imagepsfreefont — Освобождение памяти, занятой шрифтом PostScript Type
  • imagepsloadfont — Загрузка шрифта PostScript Type 1 из файла
  • imagepsslantfont — Наклон шрифта
  • imagepstext — Рисование текста поверх изображения, используя шрифты PostScript Type1
  • imagerectangle — Рисование прямоугольника
  • imageresolution — Get or set the resolution of the image
  • imagerotate — Поворот изображения с заданным углом
  • imagesavealpha — Установка флага сохранения всей информации альфа компонента (в противовес одноцветной прозрачности) и сохранение PNG изображения
  • imagescale — Scale an image using the given new width and height
  • imagesetbrush — Установка изображения (кисти), посредством которого будут рисоваться линии
  • imagesetclip — Set the clipping rectangle
  • imagesetinterpolation — Set the interpolation method
  • imagesetpixel — Рисование точки
  • imagesetstyle — Установка стиля рисования линий
  • imagesetthickness — Установка толщины линий
  • imagesettile — Установка изображения, которое будет использовано в качестве элемента мозаичной заливки
  • imagestring — Рисование строки текста горизонтально
  • imagestringup — Рисование строки текста вертикально
  • imagesx — Получение ширины изображения
  • imagesy — Получение высоты изображения
  • imagetruecolortopalette — Преобразование полноцветного изображения в палитровое
  • imagettfbbox — Получение параметров рамки обрамляющей текст написанный TrueType шрифтом
  • imagettftext — Рисование текста на изображении шрифтом TrueType
  • imagetypes — Возвращает список типов изображений, поддерживаемых PHP сборкой
  • imagewbmp — Выводит изображение в браузер или пишет в файл
  • imagewebp — Output a WebP image to browser or file
  • imagexbm — Вывод XBM изображения в браузер или файл
  • iptcembed — Встраивание двоичных IPTC данных в JPEG изображение
  • iptcparse — Разбор двоичных IPTC данных на отдельные тэги
  • jpeg2wbmp — Конвертирует изображение из формата JPEG в WBMP
  • png2wbmp — Преобразование PNG файла в WBMP


Вывод информации о текущей установленной GD библиотеке

  • « GD и функции для работы с изображениями Функции
  • getimagesize »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Вывод информации о текущей установленной GD библиотеке

gd_info

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

gd_info — Вывод информации о текущей установленной GD библиотеке

Описание

array gd_info ( void )

Получает информацию о версии и возможностях установленной GD библиотеки.

Возвращаемые значения

Возвращает ассоциативный массив.

Элементы массива, возвращаемого из gd_info()
Атрибут | Смысловое значение
GD Version | Строка string содержащая версию libgd.
FreeType Support | boolean значение. TRUE, если компонент FreeType Support установлен.
FreeType Linkage | Строка string содержащая описание, каким образом подключен компонент FreeType. Ожидаемые значения: 'with freetype', 'with TTF library', и 'with unknown library'. Этот элемент будет определен, только если FreeType Support имеет значение TRUE.
T1Lib Support | boolean значение. TRUE, если T1Lib поддержка включена.
GIF Read Support | boolean значение. TRUE, если включена поддержка чтения (reading) GIF изображений.
GIF Create Support | boolean значение. TRUE, если включена поддержка записи (creating) GIF изображений.
JPEG Support | boolean значение. TRUE, если включена поддержка JPEG.
PNG Support | boolean значение. TRUE, если включена поддержка PNG.
WBMP Support | boolean значение. TRUE, если включена поддержка WBMP.
XBM Support | boolean значение. TRUE, если включена поддержка XBM.
WebP Support | boolean значение. TRUE, если включена поддержка WebP.

Замечание:

В версиях PHP ранее 5.3.0, атрибут JPEG Support назывался JPG Support.

Примеры

Пример #1 Использование gd_info()

<?php
var_dump(gd_info());
?>

Результатом выполнения данного примера будет что-то подобное:

array(10) {
  ["GD Version"]=>
  string(24) "bundled (2.1.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPEG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
  ["WebP Support"]=>
  bool(false)
}

Список изменений

Версия | Описание
5.6.12 | Добавлена поддержка WebP.
5.3.0 | Атрибут JPG Support переименован в JPEG Support.

Смотрите также

  • imagepng() - Вывод PNG изображения в браузер или файл
  • imagejpeg() - Выводит изображение в браузер или пишет в файл
  • imagegif() - Выводит изображение в браузер или пишет в файл
  • imagewbmp() - Выводит изображение в браузер или пишет в файл
  • imagewebp() - Output a WebP image to browser or file
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой


Получение размера изображения

  • « gd_info
  • getimagesizefromstring »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение размера изображения

getimagesize

(PHP 4, PHP 5, PHP 7)

getimagesize — Получение размера изображения

Описание

array getimagesize ( string $filename [, array &$imageinfo ] )

Функция getimagesize() определит размер любого заданного, поддерживаемого изображения и вернет этот размер вместе с типом файла и текстовой строкой height/width, которую можно будет использовать внутри тэга HTML IMG, а также вернет соответствующий тип содержимого HTTP.

Также getimagesize() может вернуть дополнительные сведения об изображении через аргумент imageinfo.

Замечание: Обратите внимание на тот факт, что отдельные части JPC и JP2 изображений могут иметь различную глубину цвета. В этом случае в параметре "bits" будет стоять максимальное значение из всех обнаруженных. Также JP2 файлы могут содержать несколько кодовых потоков JPEG 2000. В таком случае getimagesize() вернет значения для первого такого потока, который будет обнаружен функцией в корне файла.

Замечание: Сведения об иконках извлекаются из иконки с наибольшим битрейтом.

Список параметров

filename

Этот аргумент задает файл, сведения о котором будут извлекаться. Это может быть локальный или удаленный (зависит от конфигурации) файл. Передача данных удаленного файла должна осуществляться одним из поддерживаемых потоков.

imageinfo

Этот необязательный аргумент позволяет извлечь некоторые расширенные сведения из файла изображения. На данный момент можно получать различные JPG APP маркеры в виде ассоциативного массива. Некоторые программы используют эти маркеры для встраивания текста в картинку. Наиболее часто встраивают » IPTC сведения в APP13 маркер. Для преобразования двоичных данных APP13 маркера во что-то удобочитаемое можно воспользоваться функцией iptcparse().

Возвращаемые значения

Возвращает массив из 7 элементов. Не все типы изображений содержат элементы с каналами (channels) и битрейтом (bits).

Индексы 0 и 1 содержат ширину и высоту изображения.

Замечание:

Некоторые форматы файлов могут хранить несколько изображений или не содержать изображения вообще. В таких случаях getimagesize() не сможет определить размер изображения. getimagesize() вернет нули в качестве значений высоты и ширины.

Индекс 2 содержит одну из констант типа изображения IMAGETYPE_XXX.

Индекс 3 содержит строку со значениями ширины и высоты изображения height="yyy" width="xxx", которая может быть использована внутри IMG тэга.

mime - соответствующий MIME-тип изображения. Эти сведения и спользуются для корректной обработки изображения на основании Content-type заголовка:

Пример #1 getimagesize() и MIME типы

<?php
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
    header("Content-type: {$size['mime']}");
    fpassthru($fp);
    exit;
} else {
    // ошибка
}
?>

channels принимает значение 3 для RGB картинок и 4 для CMYK.

bits - глубина цвета, число бит для каждого цвета.

Для некоторых типов изображений наличие значений channels и bits может сбить с толку. Например, GIF всегда использует 3 канала на пиксель, но глубину цвета невозможно вычислить для анимированных GIF изображений с общей таблицей цветов.

В случае ошибки функция вернет FALSE.

Ошибки

Если доступ к файлу filename невозможен, getimagesize() вызовет ошибку уровня E_WARNING. В случае ошибки чтения файла getimagesize() вызовет ошибку уровня E_NOTICE.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка WebP.
5.3.0 | Добавлена поддержка иконок.
5.2.3 | Уровень ошибок чтения, вызываемых функцией, снижен до E_NOTICE с E_WARNING.
4.3.2 | Стала доступной поддержка JPC, JP2, JPX, JB2, XBM и WBMP.
4.3.2 | Добавлена поддержка JPEG 2000 для аргумента imageinfo.
4.3.0 | bits и channels стали доступны и для других типов.
4.3.0 | Добавлена поддержка SWC и IFF.
4.2.0 | Добавлена поддержка TIFF.
4.0.6 | Добавлена поддержка BMP и PSD.

Примеры

Пример #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.

Замечание:

Функция ожидает, что filename является корректным файлом изображения. Если будет передан файл не содержащий изображения, он может быть некорректно интерпритирован как изображение и функция завершится успешно.

Не используйте getimagesize() для проверки того, что файл является файлом с изображением. Для этих целей используйте расширение Fileinfo.

Смотрите также

  • image_type_to_mime_type() - Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
  • exif_imagetype() - Определение типа изображения
  • exif_read_data() - Читает EXIF-заголовки JPEG и TIFF изображений
  • exif_thumbnail() - Получает встроенный эскиз TIFF или JPEG изображения


Получение размера изображения из строки данных

  • « getimagesize
  • image_type_to_extension »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение размера изображения из строки данных

getimagesizefromstring

(PHP 5 >= 5.4.0, PHP 7)

getimagesizefromstring — Получение размера изображения из строки данных

Описание

array getimagesizefromstring ( string $imagedata [, array &$imageinfo ] )

Функция работает идентично функции getimagesize() с той разницей, что getimagesizefromstring() принимает данные изображения в виде строки в качестве первого аргумента вместо имени файла.

Для уточнения, как функция работает, обращайтесь к документации к функции getimagesize().

Список параметров

imagedata

Данные изображения в виде строки.

imageinfo

См. getimagesize().

Возвращаемые значения

См. getimagesize().

Примеры

Пример #1 Пример использования getimagesizefromstring()

<?php
$img = '/path/to/test.png';

// Открыть как файл
$size_info1 = getimagesize($img);

// Открыть как строку
$data       = file_get_contents($img);
$size_info2 = getimagesizefromstring($data);
?>

Смотрите также

  • getimagesize() - Получение размера изображения


Получение расширения файла для типа изображения

  • « getimagesizefromstring
  • image_type_to_mime_type »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение расширения файла для типа изображения

image_type_to_extension

(PHP 5 >= 5.2.0, PHP 7)

image_type_to_extension — Получение расширения файла для типа изображения

Описание

string image_type_to_extension ( int $imagetype [, bool $include_dot = TRUE ] )

Возвращает расширение файла для заданной IMAGETYPE_XXX константы.

Список параметров

imagetype

Одна из констант IMAGETYPE_XXX.

include_dot

Добавлять точку к расширению или нет. По умолчанию TRUE.

Возвращаемые значения

Строка с расширением файла, соответствующим типу изображения.

Примеры

Пример #1 Пример использования image_type_to_extension()

<?php
// Создание изображения
$im = imagecreatetruecolor(100, 100);

// Сохранение изображения
imagepng($im, './test' . image_type_to_extension(IMAGETYPE_PNG));
imagedestroy($im);
?>

Примечания

Замечание:

Этой функции не требуется библиотека GD.


Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

  • « image_type_to_extension
  • image2wbmp »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

image_type_to_mime_type

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

image_type_to_mime_type — Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype

Описание

string image_type_to_mime_type ( int $imagetype )

Функция image_type_to_mime_type() определяет Mime-тип для константы IMAGETYPE.

Список параметров

imagetype

Одна из констант IMAGETYPE_XXX.

Возвращаемые значения

Возвращаемые значения приведены ниже

Возвращаемые значения и Константы
imagetype | Возвращаемое значение
IMAGETYPE_GIF | image/gif
IMAGETYPE_JPEG | image/jpeg
IMAGETYPE_PNG | image/png
IMAGETYPE_SWF | application/x-shockwave-flash
IMAGETYPE_PSD | image/psd
IMAGETYPE_BMP | image/bmp
IMAGETYPE_TIFF_II (порядок байт intel) | image/tiff
IMAGETYPE_TIFF_MM (порядок байт motorola) | image/tiff
IMAGETYPE_JPC | application/octet-stream
IMAGETYPE_JP2 | image/jp2
IMAGETYPE_JPX | application/octet-stream
IMAGETYPE_JB2 | application/octet-stream
IMAGETYPE_SWC | application/x-shockwave-flash
IMAGETYPE_IFF | image/iff
IMAGETYPE_WBMP | image/vnd.wap.wbmp
IMAGETYPE_XBM | image/xbm
IMAGETYPE_ICO | image/vnd.microsoft.icon

Примеры

Пример #1 Пример использования image_type_to_mime_type()

<?php
header("Content-type: " . image_type_to_mime_type(IMAGETYPE_PNG));
?>

Примечания

Замечание:

Этой функции не требуется библиотека GD.

Смотрите также

  • getimagesize() - Получение размера изображения
  • exif_imagetype() - Определение типа изображения
  • exif_read_data() - Читает EXIF-заголовки JPEG и TIFF изображений
  • exif_thumbnail() - Получает встроенный эскиз TIFF или JPEG изображения


Выводит изображение в браузер или пишет в файл

  • « image_type_to_mime_type
  • imageaffine »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Выводит изображение в браузер или пишет в файл

image2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

image2wbmp — Выводит изображение в браузер или пишет в файл

Описание

bool image2wbmp ( resource $image [, string $filename [, int $threshold ]] )

image2wbmp() выводит либо сохраняет WBMP версию заданного изображения image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

filename

Путь для сохранения файла. Если не задан, исходные данные изображения будут выведены напрямую в выходной поток.

threshold

Пороговое значение, может быть между 0 и 255 (включительно).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования image2wbmp()

<?php
$file = 'php.png';
$image = imagecreatefrompng($file);

header('Content-Type: ' . image_type_to_mime_type(IMAGETYPE_WBMP));
image2wbmp($image); // вывод потока
imagedestroy($image);
?>

Смотрите также

  • imagewbmp() - Выводит изображение в браузер или пишет в файл


Return an image containing the affine transformed src image, using an optional clipping area

  • « image2wbmp
  • imageaffinematrixconcat »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Return an image containing the affine transformed src image, using an optional clipping area

imageaffine

(PHP 5 >= 5.5.0, PHP 7)

imageaffine — Return an image containing the affine transformed src image, using an optional clipping area

Описание

resource imageaffine ( resource $image , array $affine [, array $clip ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

affine

Array with keys 0 to 5.

clip

Array with keys "x", "y", "width" and "height".

Возвращаемые значения

Return affined image resource on success или FALSE в случае возникновения ошибки.


Concatenate two affine transformation matrices

  • « imageaffine
  • imageaffinematrixget »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Concatenate two affine transformation matrices

imageaffinematrixconcat

(PHP 5 >= 5.5.0, PHP 7)

imageaffinematrixconcat — Concatenate two affine transformation matrices

Описание

array imageaffinematrixconcat ( array $m1 , array $m2 )

Returns the concatenation of two affine transformation matrices, what is useful if multiple transformations should be applied to the same image in one go.

Список параметров

m1

An affine transformation matrix (an array with keys 0 to 5 and float values).

m2

An affine transformation matrix (an array with keys 0 to 5 and float values).

Возвращаемые значения

An affine transformation matrix (an array with keys 0 to 5 and float values) или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imageaffinematrixconcat() example

<?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() - Return an image containing the affine transformed src image, using an optional clipping area
  • imageaffinematrixget() - Get an affine transformation matrix


Get an affine transformation matrix

  • « imageaffinematrixconcat
  • imagealphablending »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Get an affine transformation matrix

imageaffinematrixget

(PHP 5 >= 5.5.0, PHP 7)

imageaffinematrixget — Get an affine transformation matrix

Описание

array imageaffinematrixget ( int $type , mixed $options )

Returns an affine transformation matrix.

Список параметров

type

One of the IMG_AFFINE_* constants.

options

If type is IMG_AFFINE_TRANSLATE or IMG_AFFINE_SCALE, options has to be an array with keys x and y, both having float values.

If type is IMG_AFFINE_ROTATE, IMG_AFFINE_SHEAR_HORIZONTAL or IMG_AFFINE_SHEAR_VERTICAL, options has to be a float specifying the angle.

Возвращаемые значения

An affine transformation matrix (an array with keys 0 to 5 and float values) или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imageaffinematrixget() example

<?php
$matrix = imageaffinematrixget(IMG_AFFINE_TRANSLATE, array('x' = 2, 'y' => 3));
print_r($matrix);
?>

Результат выполнения данного примера:

Array
(
    [0] => 1
    [1] => 0
    [2] => 0
    [3] => 1
    [4] => 2
    [5] => 3
)

Смотрите также

  • imageaffine() - Return an image containing the affine transformed src image, using an optional clipping area
  • imageaffinematrixconcat() - Concatenate two affine transformation matrices


Задание режима сопряжения цветов для изображения

  • « imageaffinematrixget
  • imageantialias »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Задание режима сопряжения цветов для изображения

imagealphablending

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagealphablending — Задание режима сопряжения цветов для изображения

Описание

bool imagealphablending ( resource $image , bool $blendmode )

imagealphablending() позволяет использовать режим сопряжения цветов для truecolor-изображений при рисовании. В режиме сопряжения альфа компонент цвета, который передается всем функциям рисования, вроде imagesetpixel(), определяет то, насколько сильно цвет нижележащего слоя будет просачиваться через накладываемое изображение. В результате, gd автоматически сопрягает существующий цвет в каждой точке с цветом рисуемого поверх изображения и сохраняет результат сопряжения в изображении. Пикселы, подвергшиеся сопряжению, не обладают свойством прозрачности. В режиме без сопряжения цвет рисуемого поверх изображения пиксела буквально копируется вместе со своим альфа компонентом, заменяя пиксел в исходном изображении. Режим сопряжения не доступен при рисовании на палитровых изображениях.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

blendmode

Включить режим сопряжения или нет. Включен (TRUE) по умолчанию для truecolor-изображений, для всех остальных по умолчанию выключен (FALSE).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagealphablending()

<?php
// Создание изображения
$im = imagecreatetruecolor(100, 100);

// Включение режима сопряжения цветов
imagealphablending($im, true);

// Рисуем прямоугольник
imagefilledrectangle($im, 30, 30, 70, 70, imagecolorallocate($im, 255, 0, 0));

// Вывод
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>


Требуется ли применять функции сглаживания или нет

  • « imagealphablending
  • imagearc »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Требуется ли применять функции сглаживания или нет

imageantialias

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imageantialias — Требуется ли применять функции сглаживания или нет

Описание

bool imageantialias ( resource $image , bool $enabled )

Задействует механизмы сглаживания при рисовании линий и замкнутых многоугольников. Не поддерживает альфа компоненты. Использует операции прямого смешивания цветов. Работает только с truecolor-изображениями.

Стили и толщина не поддерживаются.

Использование сглаженных примитивов совместно с прозрачным фоном может дать неожидаемый результат. Метод смешивания использует цвет фона наравне с любым другим цветом. Отсутствие поддержки альфа компонента не позволяет применять основанный на нем метод сглаживания.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

enabled

Включить сглаживание или нет.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Функция imageantialias() доступна без ограничений. Ранее она была доступна, только если PHP был собран с использованием библиотеки GD идущей с ним в комплекте.

Примеры

Пример #1 Сравнение двух линий, одна из которых рисуется с включенным сглаживанием

<?php
// Создание двух изображений
$aa = imagecreatetruecolor(400, 100);
$normal = imagecreatetruecolor(200, 100);

// Включение сглаживания для одного из них
imageantialias($aa, true);

// Задание цветов
$red = imagecolorallocate($normal, 255, 0, 0);
$red_aa = imagecolorallocate($aa, 255, 0, 0);

// Рисование линий
imageline($normal, 0, 0, 200, 100, $red);
imageline($aa, 0, 0, 200, 100, $red_aa);

// Размещение изображений рядом для сравнения (АА: слева, Обычное: справа)
imagecopymerge($aa, $normal, 200, 0, 0, 0, 200, 100, 100);

// Вывод результата
header('Content-type: image/png');

imagepng($aa);
imagedestroy($aa);
imagedestroy($normal);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Сравнение двух линий, одна из которых рисуется с включенным сглаживанием

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения


Рисование дуги

  • « imageantialias
  • imagechar »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование дуги

imagearc

(PHP 4, PHP 5, PHP 7)

imagearc — Рисование дуги

Описание

bool imagearc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , int $color )

imagearc() рисует дугу окружности с заданными координатами центра.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

cx

x-координата центра.

cy

y-координата центра.

width

Ширина дуги.

height

Высота дуги.

start

Угол начала дуги в градусах.

end

Угол окончания дуги в градусах. 0° соответствует положению 3 часа, дуга рисуется по часовой стрелке.

color

Идентификатор цвета созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Рисование окружности с помощью функции imagearc()

<?php

// создаем изображение 200*200
$img = imagecreatetruecolor(200, 200);

// создаем несколько цветов
$white = imagecolorallocate($img, 255, 255, 255);
$red   = imagecolorallocate($img, 255,   0,   0);
$green = imagecolorallocate($img,   0, 255,   0);
$blue  = imagecolorallocate($img,   0,   0, 255);

// рисуем голову
imagearc($img, 100, 100, 200, 200,  0, 360, $white);
// рот
imagearc($img, 100, 100, 150, 150, 25, 155, $red);
// глаза
imagearc($img,  60,  75,  50,  50,  0, 360, $green);
imagearc($img, 140,  75,  50,  50,  0, 360, $blue);

// выводим изображение в броузере
header("Content-type: image/png");
imagepng($img);

// освобождаем память
imagedestroy($img);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Рисование окружности с помощью функции imagearc()

Смотрите также

  • imagefilledarc() - Рисование и заливка дуги
  • imageellipse() - Рисование эллипса
  • imagefilledellipse() - Рисование закрашенного эллипса


Рисование символа по горизонтали

  • « imagearc
  • imagecharup »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование символа по горизонтали

imagechar

(PHP 4, PHP 5, PHP 7)

imagechar — Рисование символа по горизонтали

Описание

bool imagechar ( resource $image , int $font , int $x , int $y , string $c , int $color )

imagechar() рисует первый символ аргумента c на изображении с идентификатором image на координатах x,y (координаты отсчитываются с левого верхнего угла) цветом color.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

x

x-координата начала рисования.

y

y-координата начала рисования.

c

Символ для рисования.

color

Идентификатор цвета созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagechar()

<?php

$im = imagecreate(100, 100);

$string = 'PHP';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// печатает черный символ "P" в левом верхнем углу
imagechar($im, 1, 0, 0, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagechar()

Смотрите также

  • imagecharup() - Рисование символа вертикально
  • imageloadfont() - Загрузка шрифта


Рисование символа вертикально

  • « imagechar
  • imagecolorallocate »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование символа вертикально

imagecharup

(PHP 4, PHP 5, PHP 7)

imagecharup — Рисование символа вертикально

Описание

bool imagecharup ( resource $image , int $font , int $x , int $y , string $c , int $color )

Рисует символ c вертикально на заданных координатах изображения image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

x

x-координата начала рисования.

y

y-координата начала рисования.

c

Символ для рисования.

color

Идентификатор цвета созданных функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagecharup()

<?php

$im = imagecreate(100, 100);

$string = 'Nадо учитывать, что первый символ в строке N';

$bg = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// печатает черный символ "Z" на белом фоне
imagecharup($im, 3, 10, 10, $string, $black);

header('Content-type: image/png');
imagepng($im);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagecharup()

Смотрите также

  • imagechar() - Рисование символа по горизонтали
  • imageloadfont() - Загрузка шрифта


Создание цвета для изображения

  • « imagecharup
  • imagecolorallocatealpha »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создание цвета для изображения

imagecolorallocate

(PHP 4, PHP 5, PHP 7)

imagecolorallocate — Создание цвета для изображения

Описание

int imagecolorallocate ( resource $image , int $red , int $green , int $blue )

Возвращает идентификатор цвета в соответствии с заданными RGB компонентами.

imagecolorallocate() должна вызываться для создания каждого цвета, который будет использоваться в изображении image.

Замечание:

Первый вызов imagecolorallocate() задает цвет фона в палитровых изображениях - изображениях, созданных функцией imagecreate().

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

Эти аргументы могут принимать либо целочисленные значение в диапазоне от 0 до 255, либо шестнадцатеричные в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Идентификатор цвета, либо FALSE в случае неудачи.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
5.1.3 | Возвращает FALSE в случае неудачи. В предыдущих версиях в этом случае возвращалось значение -1.

Примеры

Пример #1 Пример использования imagecolorallocate()

<?php

$im = imagecreate(100, 100);

// делаем фон красным
$background = imagecolorallocate($im, 255, 0, 0);

// создадим несколько цветов
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);

// шестнадцатеричный способ
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

?>

Смотрите также

  • imagecolorallocatealpha() - Создание цвета для изображения
  • imagecolordeallocate() - Разрыв ассоциации переменной с цветом для заданного изображения


Создание цвета для изображения

  • « imagecolorallocate
  • imagecolorat »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создание цвета для изображения

imagecolorallocatealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imagecolorallocatealpha — Создание цвета для изображения

Описание

int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )

imagecolorallocatealpha() работает аналогично функции imagecolorallocate(), но еще добавляет к цвету параметр alpha, отвечающий за прозрачность.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачный цвет, 127 означает полную прозрачность.

Параметры red, green и blue могут быть либо целочисленными в диапазоне от 0 до 255 либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Идентификатор цвета или FALSE в случае неудачи при создании цвета.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
5.1.3 | Возвращает FALSE, если создать цвет не удалось. Раньше в этом случае функция возвращала -1.

Примеры

Пример #1 Пример использования imagecolorallocatealpha()

<?php
$size = 300;
$image=imagecreatetruecolor($size, $size);

// создадим белый фон с черной рамкой
$back = imagecolorallocate($image, 255, 255, 255);
$border = imagecolorallocate($image, 0, 0, 0);
imagefilledrectangle($image, 0, 0, $size - 1, $size - 1, $back);
imagerectangle($image, 0, 0, $size - 1, $size - 1, $border);

$yellow_x = 100;
$yellow_y = 75;
$red_x    = 120;
$red_y    = 165;
$blue_x   = 187;
$blue_y   = 125;
$radius   = 150;

// создание цветов с альфа компонентом
$yellow = imagecolorallocatealpha($image, 255, 255, 0, 75);
$red    = imagecolorallocatealpha($image, 255, 0, 0, 75);
$blue   = imagecolorallocatealpha($image, 0, 0, 255, 75);

// рисование 3х пересекающихся окружностей
imagefilledellipse($image, $yellow_x, $yellow_y, $radius, $radius, $yellow);
imagefilledellipse($image, $red_x, $red_y, $radius, $radius, $red);
imagefilledellipse($image, $blue_x, $blue_y, $radius, $radius, $blue);

// не забудьте вывести правильный заголовок!
header('Content-Type: image/png');

// и наконец, вывод
imagepng($image);
imagedestroy($image);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Пример использования imagecolorallocatealpha()

Смотрите также

  • imagecolorallocate() - Создание цвета для изображения
  • imagecolordeallocate() - Разрыв ассоциации переменной с цветом для заданного изображения


Получение индекса цвета пиксела

  • « imagecolorallocatealpha
  • imagecolorclosest »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение индекса цвета пиксела

imagecolorat

(PHP 4, PHP 5, PHP 7)

imagecolorat — Получение индекса цвета пиксела

Описание

int imagecolorat ( resource $image , int $x , int $y )

Возвращает индекс цвета пиксела на заданных координатах на изображении image.

Если PHP скомпилирован с библиотекой GD 2.0 или выше и передается truecolor-изображение, функция возвращает целочисленное RGB значение для пиксела. Для выделения отдельных компонентов красного, зеленого или синего каналов используйте битовый сдвиг и маскирование:

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата пиксела.

y

y-координата пиксела.

Возвращаемые значения

Возвращает индекс цвета.

Примеры

Пример #1 Доступ к компонентам RGB цвета

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

var_dump($r, $g, $b);
?>

Результатом выполнения данного примера будет что-то подобное:

int(119)
int(123)
int(180)

Пример #2 Удобочитаемые RGB значения с использованием imagecolorsforindex()

<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);

$colors = imagecolorsforindex($im, $rgb);

var_dump($colors);
?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  ["red"]=>
  int(119)
  ["green"]=>
  int(123)
  ["blue"]=>
  int(180)
  ["alpha"]=>
  int(127)
}

Смотрите также

  • imagecolorset() - Установка набора цветов для заданного индекса палитры
  • imagecolorsforindex() - Получение цветов, соответствующих индексу
  • imagesetpixel() - Рисование точки


Получение индекса цвета ближайшего к заданному

  • « imagecolorat
  • imagecolorclosestalpha »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение индекса цвета ближайшего к заданному

imagecolorclosest

(PHP 4, PHP 5, PHP 7)

imagecolorclosest — Получение индекса цвета ближайшего к заданному

Описание

int imagecolorclosest ( resource $image , int $red , int $green , int $blue )

Возвращает индекс цвета в палитре изображения, "ближайшего" к заданному RGB значению.

"Расстояние" между цветами в палитре рассчитывается геометрически, как если бы RGB значения были представлены в виде точек в трехмерном пространстве.

Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

Параметры цвета могут быть либо целочисленными в диапазоне от 0 до 255, либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Возвращает индекс цвета в палитре изображения, ближайшего к заданному.

Примеры

Пример #1 Поиск набора цветов изображения

<?php
// Создание изображения и преобразование его в палитровое
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);

// Цвета для поиска (RGB)
$colors = array(
    array(254, 145, 154),
    array(153, 145, 188),
    array(153, 90, 145),
    array(255, 137, 92)
);

// Проход по каждому цвету и поиск ближайшего к нему в палитре.
// Возврат номера по порядку, RGB искомого цвета и найденное RGB соответствие
foreach($colors as $id => $rgb)
{
    $result = imagecolorclosest($im, $rgb[0], $rgb[1], $rgb[2]);
    $result = imagecolorsforindex($im, $result);
    $result = "({$result['red']}, {$result['green']}, {$result['blue']})";

    echo "#$id: Search ($rgb[0], $rgb[1], $rgb[2]); Closest match: $result.\n";
}

imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

#0: Search (254, 145, 154); Closest match: (252, 150, 148).
#1: Search (153, 145, 188); Closest match: (148, 150, 196).
#2: Search (153, 90, 145); Closest match: (148, 90, 156).
#3: Search (255, 137, 92); Closest match: (252, 150, 92).

Смотрите также

  • imagecolorexact() - Получение индекса заданного цвета
  • imagecolorclosestalpha() - Получение индекса цвета ближайшего к заданному с учетом прозрачности
  • imagecolorclosesthwb() - Получение индекса цвета, имеющего заданный тон, белизну и затемнение


Получение индекса цвета ближайшего к заданному с учетом прозрачности

  • « imagecolorclosest
  • imagecolorclosesthwb »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение индекса цвета ближайшего к заданному с учетом прозрачности

imagecolorclosestalpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecolorclosestalpha — Получение индекса цвета ближайшего к заданному с учетом прозрачности

Описание

int imagecolorclosestalpha ( resource $image , int $red , int $green , int $blue , int $alpha )

Возвращает индекс цвета в палитре изображения, "ближайшего" к заданному RGB значению, а также alpha уровню.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачность, 127 означает абсолютную прозрачность.

Параметры цвета могут быть либо целочисленными в диапазоне от 0 до 255, либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Возвращает индекс цвета в палитре изображения, ближайшего к заданному.

Примеры

Пример #1 Поиск набора цветов изображения

<?php
// Создание изображения и преобразование его в палитровое
$im = imagecreatefrompng('figures/imagecolorclosest.png');
imagetruecolortopalette($im, false, 255);

// Цвета для поиска  (RGB)
$colors = array(
    array(254, 145, 154, 50),
    array(153, 145, 188, 127),
    array(153, 90, 145, 0),
    array(255, 137, 92, 84)
);

// Проход по каждому цвету и поиск ближайшего к нему в палитре.
// Возврат номера по порядку, RGB искомого цвета и найденное RGB соответствие
foreach($colors as $id => $rgb)
{
    $result = imagecolorclosestalpha($im, $rgb[0], $rgb[1], $rgb[2], $rgb[3]);
    $result = imagecolorsforindex($im, $result);
    $result = "({$result['red']}, {$result['green']}, {$result['blue']}, {$result['alpha']})";

    echo "#$id: Search ($rgb[0], $rgb[1], $rgb[2], $rgb[3]); Closest match: $result.\n";
}

imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

#0: Search (254, 145, 154, 50); Closest match: (252, 150, 148, 0).
#1: Search (153, 145, 188, 127); Closest match: (148, 150, 196, 0).
#2: Search (153, 90, 145, 0); Closest match: (148, 90, 156, 0).
#3: Search (255, 137, 92, 84); Closest match: (252, 150, 92, 0).

Смотрите также

  • imagecolorexactalpha() - Получение индекса заданного цвета и альфа компонента
  • imagecolorclosest() - Получение индекса цвета ближайшего к заданному
  • imagecolorclosesthwb() - Получение индекса цвета, имеющего заданный тон, белизну и затемнение


Получение индекса цвета, имеющего заданный тон, белизну и затемнение

  • « imagecolorclosestalpha
  • imagecolordeallocate »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение индекса цвета, имеющего заданный тон, белизну и затемнение

imagecolorclosesthwb

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecolorclosesthwb — Получение индекса цвета, имеющего заданный тон, белизну и затемнение

Описание

int imagecolorclosesthwb ( resource $image , int $red , int $green , int $blue )

Получение индекса цвета, имеющего значения тона, белизны и затемнения наиболее близкие к заданному цвету.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

Возвращаемые значения

Возвращает целочисленный индекс цвета, имеющего значения тона, белизны и затемнения наиболее близкие к заданному цвету.

Примеры

Пример #1 Пример использования imagecolorclosesthwb()

<?php
$im = imagecreatefromgif('php.gif');

echo 'HWB: ' . imagecolorclosesthwb($im, 116, 115, 152);

imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

HWB: 33

Список изменений

Версия | Описание
5.3.0 | Функция теперь доступна в Windows

Смотрите также

  • imagecolorclosest() - Получение индекса цвета ближайшего к заданному


Разрыв ассоциации переменной с цветом для заданного изображения

  • « imagecolorclosesthwb
  • imagecolorexact »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Разрыв ассоциации переменной с цветом для заданного изображения

imagecolordeallocate

(PHP 4, PHP 5, PHP 7)

imagecolordeallocate — Разрыв ассоциации переменной с цветом для заданного изображения

Описание

bool imagecolordeallocate ( resource $image , int $color )

Разрывает ассоциацию переменной с цветом, которая ранее была создана функциями imagecolorallocate() или imagecolorallocatealpha().

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

color

Идентификатор цвета.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagecolordeallocate()

<?php
$white = imagecolorallocate($im, 255, 255, 255);
imagecolordeallocate($im, $white);
?>

Смотрите также

  • imagecolorallocate() - Создание цвета для изображения
  • imagecolorallocatealpha() - Создание цвета для изображения


Получение индекса заданного цвета

  • « imagecolordeallocate
  • imagecolorexactalpha »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение индекса заданного цвета

imagecolorexact

(PHP 4, PHP 5, PHP 7)

imagecolorexact — Получение индекса заданного цвета

Описание

int imagecolorexact ( resource $image , int $red , int $green , int $blue )

Возвращает индекс для заданного цвета в палитре изображения.

Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

Возвращаемые значения

Возвращает индекс для заданного цвета в палитре изображения либо -1, если такого цвета в палитре нет.

Примеры

Пример #1 Получение цветов GD логотипа

<?php
// создание изображения
$im = imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexact($im, 255, 0, 0);
$colors[] = imagecolorexact($im, 0, 0, 0);
$colors[] = imagecolorexact($im, 255, 255, 255);
$colors[] = imagecolorexact($im, 100, 255, 52);

print_r($colors);

// освобождение памяти
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 16711680
    [1] => 0
    [2] => 16777215
    [3] => 6618932
)

Смотрите также

  • imagecolorclosest() - Получение индекса цвета ближайшего к заданному


Получение индекса заданного цвета и альфа компонента

  • « imagecolorexact
  • imagecolormatch »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение индекса заданного цвета и альфа компонента

imagecolorexactalpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecolorexactalpha — Получение индекса заданного цвета и альфа компонента

Описание

int imagecolorexactalpha ( resource $image , int $red , int $green , int $blue , int $alpha )

Возвращает индекс для заданного цвета и альфа компонента в палитре изображения.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачность, 127 означает абсолютную прозрачность.

Параметры цвета могут быть либо целочисленными в диапазоне от 0 до 255, либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Возвращает индекс для заданного цвета и альфа компонента в палитре изображения либо -1, если такого цвета в палитре нет.

Примеры

Пример #1 Получение цветов GD логотипа

<?php

// создание изображения
$im = imagecreatefrompng('./gdlogo.png');

$colors   = Array();
$colors[] = imagecolorexactalpha($im, 255, 0, 0, 0);
$colors[] = imagecolorexactalpha($im, 0, 0, 0, 127);
$colors[] = imagecolorexactalpha($im, 255, 255, 255, 55);
$colors[] = imagecolorexactalpha($im, 100, 255, 52, 20);

print_r($colors);

// освобождение памяти
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 16711680
    [1] => 2130706432
    [2] => 939524095
    [3] => 342163252
)

Смотрите также

  • imagecolorclosestalpha() - Получение индекса цвета ближайшего к заданному с учетом прозрачности


Делает цвета палитровой версии изображения более соответствующими truecolor версии

  • « imagecolorexactalpha
  • imagecolorresolve »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Делает цвета палитровой версии изображения более соответствующими truecolor версии

imagecolormatch

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imagecolormatch — Делает цвета палитровой версии изображения более соответствующими truecolor версии

Описание

bool imagecolormatch ( resource $image1 , resource $image2 )

Делает цвета палитровой версии изображения более соответствующими truecolor версии.

Список параметров

image1

Ссылка на ресурс truecolor-изображения.

image2

Ссылка на ресурс палитрового изображения, имеющего тот же размер, что и image1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagecolormatch()

<?php
// создание изображений
$im1 = imagecreatefrompng('./gdlogo.png');
$im2 = imagecreate(imagesx($im1), imagesy($im1));

// Добавим несколько цветов в $im2
$colors   = Array();
$colors[] = imagecolorallocate($im2, 255, 36, 74);
$colors[] = imagecolorallocate($im2, 40, 0, 240);
$colors[] = imagecolorallocate($im2, 82, 100, 255);
$colors[] = imagecolorallocate($im2, 84, 63, 44);

// Зададим соответствия этих цветов цветам truecolor изображения
imagecolormatch($im1, $im2);

// освободим память
imagedestroy($im1);
imagedestroy($im2);
?>

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения


Получает идентификатор конкретного цвета или его ближайший аналог

  • « imagecolormatch
  • imagecolorresolvealpha »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получает идентификатор конкретного цвета или его ближайший аналог

imagecolorresolve

(PHP 4, PHP 5, PHP 7)

imagecolorresolve — Получает идентификатор конкретного цвета или его ближайший аналог

Описание

int imagecolorresolve ( resource $image , int $red , int $green , int $blue )

Эта функция обязательно вернет идентификатор цвета для выбранного цвета, либо ближайшую возможную его альтернативу.

Если изображение было создано из файла, то будут распознаны только цвета, используемые в изображении. Цвета, которые используются только в палитре, распознаны не будут.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

Возвращаемые значения

Возвращает цветовой идентификатор.

Примеры

Пример #1 Использование imagecoloresolve() для получения цветов из изображения.

<?php
// загрузить изображение
$im = imagecreatefromgif('phplogo.gif');

// получить ближайшие цвета на изображении
$colors = array();
$colors[] = imagecolorresolve($im, 255, 255, 255);
$colors[] = imagecolorresolve($im, 0, 0, 200);

// вывод
print_r($colors);

imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 89
    [1] => 85
)

Смотрите также

  • imagecolorclosest() - Получение индекса цвета ближайшего к заданному


Получает идентификатор конкретного цвета и альфа компонента или его ближайший аналог

  • « imagecolorresolve
  • imagecolorset »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получает идентификатор конкретного цвета и альфа компонента или его ближайший аналог

imagecolorresolvealpha

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecolorresolvealpha — Получает идентификатор конкретного цвета и альфа компонента или его ближайший аналог

Описание

int imagecolorresolvealpha ( resource $image , int $red , int $green , int $blue , int $alpha )

Эта функция обязательно вернет идентификатор цвета для выбранного цвета, либо ближайшую возможную его альтернативу.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение в диапазоне от 0 до 127. 0 означает непрозрачность, 127 означает абсолютную прозрачность.

Параметры цвета могут быть либо целочисленными в диапазоне от 0 до 255, либо шестнадцатеричными в диапазоне от 0x00 до 0xFF.

Возвращаемые значения

Возвращает индекс цвета.

Примеры

Пример #1 Пример использования imagecoloresolvealpha() для получения цветов из изображения

<?php
// Загрузка изображения
$im = imagecreatefromgif('phplogo.gif');

// Получение ближайших цветов
$colors = array();
$colors[] = imagecolorresolvealpha($im, 255, 255, 255, 0);
$colors[] = imagecolorresolvealpha($im, 0, 0, 200, 127);

// Вывод
print_r($colors);

imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 89
    [1] => 85
)

Смотрите также

  • imagecolorclosestalpha() - Получение индекса цвета ближайшего к заданному с учетом прозрачности


Установка набора цветов для заданного индекса палитры

  • « imagecolorresolvealpha
  • imagecolorsforindex »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Установка набора цветов для заданного индекса палитры

imagecolorset

(PHP 4, PHP 5, PHP 7)

imagecolorset — Установка набора цветов для заданного индекса палитры

Описание

void imagecolorset ( resource $image , int $index , int $red , int $green , int $blue [, int $alpha = 0 ] )

Эта функция устанавливает соответствие индекса в палитре заданному цвету. Это полезно для создания эффекта подобного заливке цветом без осуществления заливки.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

index

Индекс в палитре.

red

Значение красного компонента цвета.

green

Значение зеленого компонента цвета.

blue

Значение синего компонента цвета.

alpha

Значение альфа компонента.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.4.0 | Добавлен аргумент alpha.

Примеры

Пример #1 Пример использования imagecolorset()

<?php
// Создание изображения размером 300x100
$im = imagecreate(300, 100);

// Установка красного цвета фона
imagecolorallocate($im, 255, 0, 0);

// Получение индекса цвета фона
$bg = imagecolorat($im, 0, 0);

// Установка синего цвета фона
imagecolorset($im, $bg, 0, 0, 255);

// Вывод изображения в броузер
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Смотрите также

  • imagecolorat() - Получение индекса цвета пиксела


Получение цветов, соответствующих индексу

  • « imagecolorset
  • imagecolorstotal »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение цветов, соответствующих индексу

imagecolorsforindex

(PHP 4, PHP 5, PHP 7)

imagecolorsforindex — Получение цветов, соответствующих индексу

Описание

array imagecolorsforindex ( resource $image , int $index )

Получение цветов, соответствующих заданному индексу.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

index

Индекс цвета.

Возвращаемые значения

Возвращает ассоциативный массив с красным, зеленым, синим и альфа ключами, содержащий соответствующие значения для заданного индекса цвета.

Примеры

Пример #1 Пример использования imagecolorsforindex()

<?php

// открываем изображение
$im = imagecreatefrompng('nexen.png');

// получаем цвет
$start_x = 40;
$start_y = 50;
$color_index = imagecolorat($im, $start_x, $start_y);

// делаем его удобочитаемым
$color_tran = imagecolorsforindex($im, $color_index);

// что это ?
print_r($color_tran);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
   [red] => 226
   [green] => 222
   [blue] => 252
   [alpha] => 0
)

Смотрите также

  • imagecolorat() - Получение индекса цвета пиксела
  • imagecolorexact() - Получение индекса заданного цвета


Определение количества цветов в палитре изображения

  • « imagecolorsforindex
  • imagecolortransparent »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Определение количества цветов в палитре изображения

imagecolorstotal

(PHP 4, PHP 5, PHP 7)

imagecolorstotal — Определение количества цветов в палитре изображения

Описание

int imagecolorstotal ( resource $image )

Возвращает количество цветов в палитре изображения.

Список параметров

image

Ресурс изображения, возвращаемый одной из функций создающих изображения, таких как imagecreatefromgif().

Возвращаемые значения

Возвращает количество цветов в палитре изображения либо 0 для truecolor-изображений.

Примеры

Пример #1 Получение количества цветов в изображении, используя imagecolorstotal()

<?php
// Создание изображения
$im = imagecreatefromgif('php.gif');

echo 'Всего цветов в изображении: ' . imagecolorstotal($im);

// Освобождение памяти
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Total colors in image: 128

Смотрите также

  • imagecolorat() - Получение индекса цвета пиксела
  • imagecolorsforindex() - Получение цветов, соответствующих индексу
  • imageistruecolor() - Определяет, является ли изображение полноцветным


Определяет цвет как прозрачный

  • « imagecolorstotal
  • imageconvolution »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Определяет цвет как прозрачный

imagecolortransparent

(PHP 4, PHP 5, PHP 7)

imagecolortransparent — Определяет цвет как прозрачный

Описание

int imagecolortransparent ( resource $image [, int $color ] )

Устанавливает прозрачность цвета в заданном изображении image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

color

Идентификатор цвета созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает идентификатор нового (или текущего, если ничего не изменилось) цвета. Если аргумент color не задан и в изображении нет прозрачных цветов, функция вернет -1.

Примеры

Пример #1 Пример использования imagecolortransparent()

<?php
// Создадим изображение размером 55x30
$im = imagecreatetruecolor(55, 30);
$red = imagecolorallocate($im, 255, 0, 0);
$black = imagecolorallocate($im, 0, 0, 0);

// Сделаем фон прозрачным
imagecolortransparent($im, $black);

// Нарисуем красный прямоугольник
imagefilledrectangle($im, 4, 4, 50, 25, $red);

// Сохраним изображение
imagepng($im, './imagecolortransparent.png');
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagecolortransparent()

Примечания

Замечание:

Прозрачность копируется только функцией imagecopymerge() и для truecolor-изображений. В случае использования функции imagecopy() или палитрового изображения значение альфа компонента не копируется.

Замечание:

Прозрачный цвет является свойством изображения, прозрачность не является свойством цвета. Если вы задали цвет как прозрачный, некоторые области изображения этого цвета нарисованные ранее станут прозрачными.


Наложение искривляющей матрицы 3х3, используя коэффициент и смещение

  • « imagecolortransparent
  • imagecopy »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Наложение искривляющей матрицы 3х3, используя коэффициент и смещение

imageconvolution

(PHP 5 >= 5.1.0, PHP 7)

imageconvolution — Наложение искривляющей матрицы 3х3, используя коэффициент и смещение

Описание

bool imageconvolution ( resource $image , array $matrix , float $div , float $offset )

Накладывает искривляющую матрицу на изображение, используя заданный коэффициент и смещение.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

matrix

Матрица 3x3: массив из трех массивов по 3 значения с плавающей точкой в каждом.

div

Делитель результата искривления, используется для нормализации.

offset

Смещение цвета.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание рельефа на логотипе PHP.net

<?php
$image = imagecreatefromgif('http://www.php.net/images/php.gif');

$emboss = array(array(2, 0, 0), array(0, -1, 0), array(0, 0, -1));
imageconvolution($image, $emboss, 1, 127);

header('Content-Type: image/png');
imagepng($image, null, 9);
?>

Результат выполнения данного примера:

Вывод примера: Создание рельефа на логотипе PHP.net

Пример #2 Размытие по Гауссу

<?php
$image = imagecreatetruecolor(180,40);

// Пишет текст и применяет размытие к изображению
imagestring($image, 5, 10, 8, 'Gaussian Blur Text', 0x00ff00);
$gaussian = array(array(1.0, 2.0, 1.0), array(2.0, 4.0, 2.0), array(1.0, 2.0, 1.0));
imageconvolution($image, $gaussian, 16, 0);

// Переписывает текст для сравнения
imagestring($image, 5, 10, 18, 'Gaussian Blur Text', 0x00ff00);

header('Content-Type: image/png');
imagepng($image, null, 9);
?>

Результат выполнения данного примера:

Вывод примера: Размытие по Гауссу

Примечания

Эта функция требует GD 2.1.0 или выше.

Смотрите также

  • imagefilter() - Применяет фильтр к изображению


Копирование части изображения

  • « imageconvolution
  • imagecopymerge »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Копирование части изображения

imagecopy

(PHP 4, PHP 5, PHP 7)

imagecopy — Копирование части изображения

Описание

bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )

Копирует часть src_im в dst_im, начиная с координат x, y src_x, src_y с шириной src_w и высотой src_h. Скопированная часть помещается на координаты dst_x и dst_y.

Список параметров

dst_im

Ресурс целевого изображения.

src_im

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

src_w

Ширина исходного изображения.

src_h

Высота исходного изображения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Обрезка логотипа PHP.net

<?php
// Создание изображений
$src = imagecreatefromgif('php.gif');
$dest = imagecreatetruecolor(80, 40);

// Копирование
imagecopy($dest, $src, 0, 0, 20, 13, 80, 40);

// Вывод и освобождение памяти
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Обрезка логотипа PHP.net


Копирует часть изображения с наложением

  • « imagecopy
  • imagecopymergegray »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Копирует часть изображения с наложением

imagecopymerge

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecopymerge — Копирует часть изображения с наложением

Описание

bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )

Копирует часть src_im и помещает скопированное на dst_im, начиная с координат src_x, src_y с шириной src_w и высотой src_h. Скопированная часть помещается на координаты dst_x и dst_y.

Список параметров

dst_im

Ресурс целевого изображения.

src_im

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

src_w

Ширина исходного изображения.

src_h

Высота исходного изображения.

pct

Два изображения будут совмещаться в зависимости от параметра pct, который может варьироваться от 0 до 100. Когда pct = 0, наложения не происходит. В случае значения 100 эта функция ведет себя аналогично функции imagecopy() для палитровых изображений, несмотря на то что она поддерживает прозрачность для truecolor-изображений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Совмещение двух копий логотипа PHP.net с 75% прозрачностью

<?php
// Создание изображений
$dest = imagecreatefromgif('php.gif');
$src = imagecreatefromgif('php.gif');

// Копирование и наложение
imagecopymerge($dest, $src, 10, 10, 0, 0, 100, 47, 75);

// Вывод и освобождение памяти
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>


Копирует часть изображения с наложением в градациях серого

  • « imagecopymerge
  • imagecopyresampled »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Копирует часть изображения с наложением в градациях серого

imagecopymergegray

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecopymergegray — Копирует часть изображения с наложением в градациях серого

Описание

bool imagecopymergegray ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )

Копирует часть src_im и помещает скопированное на dst_im, начиная с координат src_x, src_y с шириной src_w и высотой src_h. Скопированная часть помещается на координаты dst_x и dst_y.

Функция работает аналогично imagecopymerge() за исключением того, что при наложении она сохраняет насыщенность цвета исходного изображения путем преобразования цветов пикселей конечного изображения в градации серого перед копированием.

Список параметров

dst_im

Ресурс целевого изображения.

src_im

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

src_w

Ширина исходного изображения.

src_h

Высота исходного изображения.

pct

Результирующее изображение src_im будет преобразовано к изображению в градациях серого в соответствии со значением параметра pct. 0 означает отсутствие цветов кроме серого, 100 - без изменений. Когда pct = 100 поведение функции идентично imagecopy() для палитровых изображений, несмотря на то что в этой функции реализована прозрачность для truecolor-изображений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagecopymergegray()

<?php
// Создание изображений
$dest = imagecreatefromgif('php.gif');
$src = imagecreatefromgif('php.gif');

// Копирование и наложение - Серый = 20%
imagecopymergegray($dest, $src, 10, 10, 0, 0, 100, 47, 20);

// Вывод и освобождение памяти
header('Content-Type: image/gif');
imagegif($dest);

imagedestroy($dest);
imagedestroy($src);
?>


Копирование и изменение размера изображения с ресемплированием

  • « imagecopymergegray
  • imagecopyresized »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Копирование и изменение размера изображения с ресемплированием

imagecopyresampled

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecopyresampled — Копирование и изменение размера изображения с ресемплированием

Описание

bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

imagecopyresampled() копирует прямоугольную часть одного изображения на другое изображение, интерполируя значения пикселов таким образом, чтобы уменьшение размера изображения не уменьшало его четкости.

Другими словами, imagecopyresampled() берет прямоугольный участок из src_image с шириной src_w и высотой src_h на координатах src_x,src_y и помещает его в прямоугольный участок изображения dst_image шириной dst_w и высотой dst_h на координатах dst_x,dst_y.

Если координаты, ширина или высота исходного и конечного изображений различны, копируемый фрагмент будет растянут или сжат. Координаты отсчитываются от левого верхнего угла изображения. Функцию можно использовать для наложения участков на то же изображение, с которого они скопированы (если dst_image имеет то же значение, что и src_image), но если участки будут пересекаться, результат непредсказуем.

Список параметров

dst_image

Ресурс целевого изображения.

src_image

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

dst_w

Результирующая ширина.

dst_h

Результирующая высота.

src_w

Ширина исходного изображения.

src_h

Высота исходного изображения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой пример

В этом примере изображение будет сжато до половины исходного размера.

<?php
// файл
$filename = 'test.jpg';
$percent = 0.5;

// тип содержимого
header('Content-Type: image/jpeg');

// получение новых размеров
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// ресэмплирование
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// вывод
imagejpeg($image_p, null, 100);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Простой пример

Пример #2 Ресэмплирование изображения с сохранением пропорций

В этом примере изображение будет сжато до 200 пикселов по ширине или высоте, смотря что больше.

<?php
// файл
$filename = 'test.jpg';

// задание максимальной ширины и высоты
$width = 200;
$height = 200;

// тип содержимого
header('Content-Type: image/jpeg');

// получение новых размеров
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
   $width = $height*$ratio_orig;
} else {
   $height = $width/$ratio_orig;
}

// ресэмплирование
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

// вывод
imagejpeg($image_p, null, 100);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Ресэмплирование изображения с сохранением пропорций

Примечания

Замечание:

Существует проблема связанная с ограничениями палитровых изображений (255+1 цвет). Ресэмплирование или фильтрация изображения требует больше цветов, чем 255. Для расчета нового пиксела и его цвета применяется некоторое приближение. В случае палитровых изображений мы пытаемся создать новый цвет, а если это не удается, мы выбираем ближайший (теоретически) вычисленный цвет. Это не всегда визуально ближайший цвет. Такой подход может давать в результате пустые (или визуально пустые) изображения. Для устранения этой проблемы, пожалуйста, используйте truecolor-изображения в качестве результирующих, создаваемые функцией imagecreatetruecolor().

Смотрите также

imagecopyresized() - Копирование и изменение размера части изображения


Копирование и изменение размера части изображения

  • « imagecopyresampled
  • imagecreate »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Копирование и изменение размера части изображения

imagecopyresized

(PHP 4, PHP 5, PHP 7)

imagecopyresized — Копирование и изменение размера части изображения

Описание

bool imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

imagecopyresized() копирует прямоугольный участок одного изображения на другое изображение. dst_image - результирующее изображение, src_image - идентификатор исходного изображения.

Другими словами, imagecopyresized() берет прямоугольный участок из src_image с шириной src_w и высотой src_h на координатах src_x,src_y и помещает его в прямоугольную область изображения dst_image с шириной dst_w и высотой dst_h на координатах dst_x,dst_y.

Если координаты, ширина или высота исходного и конечного изображений различны, копируемый фрагмент будет растянут или сжат. Координаты отсчитываются от левого верхнего угла изображения. Функцию можно использовать для наложения участков на то же изображение, с которого они скопированы (если dst_image имеет то же значение, что и src_image), но если участки будут пересекаться, результат непредсказуем.

Список параметров

dst_image

Ресурс целевого изображения.

src_image

Ресурс исходного изображения.

dst_x

x-координата результирующего изображения.

dst_y

y-координата результирующего изображения.

src_x

x-координата исходного изображения.

src_y

y-координата исходного изображения.

dst_w

Результирующая ширина.

dst_h

Результирующая высота.

src_w

Ширина исходного изображения.

src_h

Высота исходного изображения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Изменение размера изображения

В этом примере размер изображения будет уменьшен в два раза.

<?php
// файл и новый размер
$filename = 'test.jpg';
$percent = 0.5;

// тип содержимого
header('Content-Type: image/jpeg');

// получение нового размера
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;

// загрузка
$thumb = imagecreatetruecolor($newwidth, $newheight);
$source = imagecreatefromjpeg($filename);

// изменение размера
imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

// вывод
imagejpeg($thumb);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Изменение размера изображения

Изображение будет выведено с уменьшенным размером. Если требуется получить изображение в лучшем качестве, используйте функцию imagecopyresampled().

Примечания

Замечание:

Существует проблема связанная с ограничениями палитровых изображений (255+1 цвет). Ресэмплирование или фильтрация изображения требует больше цветов, чем 255. Для расчета нового пиксела и его цвета применяется некоторое приближение. В случае палитровых изображений мы пытаемся создать новый цвет, а если это не удается, мы выбираем ближайший (теоретически) вычисленный цвет. Это не всегда визуально ближайший цвет. Такой подход может давать в результате пустые (или визуально пустые) изображения. Для устранения этой проблемы, пожалуйста, используйте truecolor-изображения в качестве результирующих, создаваемые функцией imagecreatetruecolor().

Смотрите также

imagecopyresampled() - Копирование и изменение размера изображения с ресемплированием


Создание нового палитрового изображения

  • « imagecopyresized
  • imagecreatefromgd2 »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создание нового палитрового изображения

imagecreate

(PHP 4, PHP 5, PHP 7)

imagecreate — Создание нового палитрового изображения

Описание

resource imagecreate ( int $width , int $height )

imagecreate() возвращает идентификатор изображения, представляющего из себя пустое изображение заданного размера.

Мы рекомендуем использовать функцию imagecreatetruecolor() вместо imagecreate(), так как она она обрабатывает изображения с максимально возможным качеством. Если необходимо вывести палитру изображения, то imagetruecolortopalette() необходимо вызвать непосредственно перед сохранением изображения с помощью imagepng() или imagegif().

Список параметров

width

Ширина изображения.

height

Высота изображения.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Создание нового GD потока изображения и вывод изображения.

<?php
header("Content-Type: image/png");
$im = @imagecreate(110, 20)
    or die("Невозможно создать поток изображения");
$background_color = imagecolorallocate($im, 0, 0, 0);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "Простая Текстовая Строка", $text_color);
imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Создание нового GD потока изображения и вывод изображения.

Смотрите также

  • imagedestroy() - Уничтожение изображения
  • imagecreatetruecolor() - Создание нового полноцветного изображения


Создание нового изображения на основе GD2 или URL

  • « imagecreate
  • imagecreatefromgd2part »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создание нового изображения на основе GD2 или URL

imagecreatefromgd2

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagecreatefromgd2 — Создание нового изображения на основе GD2 или URL

Описание

resource imagecreatefromgd2 ( string $filename )

Создание нового изображения на основе GD2 или URL.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Список параметров

filename

Путь к GD2 изображению.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования imagecreatefromgd2()

<?php
// загрузка gd2 изображения
$im = imagecreatefromgd2('./test.gd2');

// применение эффекта к изображению, этот код
// инвертирует цвета в PHP 5+
if(function_exists('imagefilter'))
{
    imagefilter($im, IMG_FILTER_NEGATE);
}

// сохранение изображения
imagegd2($im, './test_updated.gd2');
imagedestroy($im);
?>


Создание нового изображения на основе части GD2 файла или URL

  • « imagecreatefromgd2
  • imagecreatefromgd »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создание нового изображения на основе части GD2 файла или URL

imagecreatefromgd2part

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagecreatefromgd2part — Создание нового изображения на основе части GD2 файла или URL

Описание

resource imagecreatefromgd2part ( string $filename , int $srcX , int $srcY , int $width , int $height )

Создание нового изображения на основе части GD2 файла или URL.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Список параметров

filename

Путь к GD2 изображению.

srcX

x-координата точки исходного изображения.

srcY

y-координата точки исходного изображения.

width

Ширина исходного изображения.

height

Высота исходного изображения.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования imagecreatefromgd2part()

<?php
// Для этого примера нам сначала потребуется узнать размер изображения
$image = getimagesize('./test.gd2');

// Создание изображения
$im = imagecreatefromgd2part('./test.gd2', 4, 4, ($image[0] / 2) - 6, ($image[1] / 2) - 6);

// Добавим рельеф на изображение
// Работает в PHP 5+
if(function_exists('imagefilter'))
{
    imagefilter($im, IMG_FILTER_EMBOSS);
}

// сохранение изображения
imagegd2($im, './test_emboss.gd2');
imagedestroy($im);
?>


Создание нового изображения на основе GD файла или URL

  • « imagecreatefromgd2part
  • imagecreatefromgif »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создание нового изображения на основе GD файла или URL

imagecreatefromgd

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagecreatefromgd — Создание нового изображения на основе GD файла или URL

Описание

resource imagecreatefromgd ( string $filename )

Создание нового изображения на основе GD файла или URL.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Список параметров

filename

Путь к GD файлу.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования imagecreatefromgd()

<?php
// загрузка изображения
$im = @imagecreatefromgd('./test.gd');

// проверка, загрузилось ли изображение
if(!is_resource($im))
{
     die('Не удалось загрузить изображение!');
}

// Операции с изображением можно осуществить здесь

// Сохранение изображения
imagegd($im, './test_updated.gd');
imagedestroy($im);
?>


Создает новое изображение из файла или URL

  • « imagecreatefromgd
  • imagecreatefromjpeg »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создает новое изображение из файла или URL

imagecreatefromgif

(PHP 4, PHP 5, PHP 7)

imagecreatefromgif — Создает новое изображение из файла или URL

Описание

resource imagecreatefromgif ( string $filename )

imagecreatefromgif() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Список параметров

filename

Путь к GIF картинке.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример обработки ошибки при загрузке GIF

<?php
function LoadGif($imgname)
{
    /* Пытаемся открыть */
    $im = @imagecreatefromgif($imgname);

    /* Если не удалось */
    if(!$im)
    {
        /* Создаем пустое изображение */
        $im = imagecreatetruecolor (150, 30);
        $bgc = imagecolorallocate ($im, 255, 255, 255);
        $tc = imagecolorallocate ($im, 0, 0, 0);

        imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);

        /* Выводим сообщение об ошибке */
        imagestring ($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/gif');

$img = LoadGif('bogus.image');

imagegif($img);
imagedestroy($img);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Пример обработки ошибки при загрузке GIF

Примечания

Замечание:

Поддержка GIF была убрана из GD библиотеки в версии 1.6, и добавлена обратно в версии 2.0.28. Эта функция недоступна в промежуточных версиях.

Замечание:

При чтении анимированных файлов GIF в память, возвращается указатель на ресурс изображения только для первого фрейма.


Создает новое изображение из файла или URL

  • « imagecreatefromgif
  • imagecreatefrompng »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создает новое изображение из файла или URL

imagecreatefromjpeg

(PHP 4, PHP 5, PHP 7)

imagecreatefromjpeg — Создает новое изображение из файла или URL

Описание

resource imagecreatefromjpeg ( string $filename )

imagecreatefromjpeg() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Список параметров

filename

Путь к JPEG картинке.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример обработки ошибки при загрузке JPEG

<?php
function LoadJpeg($imgname)
{
    /* Пытаемся открыть */
    $im = @imagecreatefromjpeg($imgname);

    /* Если не удалось */
    if(!$im)
    {
        /* Создаем пустое изображение */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* Выводим сообщение об ошибке */
        imagestring($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/jpeg');

$img = LoadJpeg('bogus.image');

imagejpeg($img);
imagedestroy($img);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Пример обработки ошибки при загрузке JPEG


Создает новое изображение из файла или URL

  • « imagecreatefromjpeg
  • imagecreatefromstring »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создает новое изображение из файла или URL

imagecreatefrompng

(PHP 4, PHP 5, PHP 7)

imagecreatefrompng — Создает новое изображение из файла или URL

Описание

resource imagecreatefrompng ( string $filename )

imagecreatefrompng() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Список параметров

filename

Путь к изображению PNG.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример обработки ошибки при загрузке PNG

<?php
function LoadPNG($imgname)
{
    /* Пытаемся открыть */
    $im = @imagecreatefrompng($imgname);

    /* Если не удалось */
    if(!$im)
    {
        /* Создаем пустое изображение */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* Выводим сообщение об ошибке */
        imagestring($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/png');

$img = LoadPNG('bogus.image');

imagepng($img);
imagedestroy($img);
?>

Результатом выполнения данного примера будет что-то подобное:

Пример использования imagecreatefrompng()


Создание нового изображения из потока представленного строкой

  • « imagecreatefrompng
  • imagecreatefromwbmp »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создание нового изображения из потока представленного строкой

imagecreatefromstring

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

imagecreatefromstring — Создание нового изображения из потока представленного строкой

Описание

resource imagecreatefromstring ( string $image )

imagecreatefromstring() возвращает идентификатор изображения, представляющего изображение полученное из потока image. Эти типы будут автоматически определяться, если сборка PHP их поддерживает: JPEG, PNG, GIF, WBMP и GD2.

Список параметров

image

Строка содержащая данные изображения.

Возвращаемые значения

В случае успеха будет возвращен ресурс изображения, FALSE, если тип изображения не поддерживается, данные не распознаются или данные нарушены и не могут быть загружены.

Ошибки

imagecreatefromstring() вызывает ошибку уровня E_WARNING, если данные в неподдерживаемом формате.

Примеры

Пример #1 Пример использования imagecreatefromstring()

<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
}
else {
    echo 'Произошла ошибка.';
}
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagecreatefromstring()

Смотрите также

  • imagecreatefromjpeg() - Создает новое изображение из файла или URL
  • imagecreatefrompng() - Создает новое изображение из файла или URL
  • imagecreatefromgif() - Создает новое изображение из файла или URL
  • imagecreatetruecolor() - Создание нового полноцветного изображения


Создает новое изображение из файла или URL

  • « imagecreatefromstring
  • imagecreatefromwebp »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создает новое изображение из файла или URL

imagecreatefromwbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecreatefromwbmp — Создает новое изображение из файла или URL

Описание

resource imagecreatefromwbmp ( string $filename )

imagecreatefromwbmp() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Список параметров

filename

Путь к изображению WBMP.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример обработки ошибки при загрузке WBMP

<?php
function LoadWBMP($imgname)
{
    /* Пытаемся открыть */
    $im = @imagecreatefromwbmp($imgname);

    /* Если не удалось */
    if(!$im)
    {
        /* Создаем пустое изображение */
        $im  = imagecreatetruecolor(150, 30);
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc  = imagecolorallocate($im, 0, 0, 0);

        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);

        /* Выводим сообщение об ошибке */
        imagestring($im, 1, 5, 5, 'Ошибка загрузки ' . $imgname, $tc);
    }

    return $im;
}

header('Content-Type: image/vnd.wap.wbmp');

$img = LoadWBMP('bogus.image');

imagewbmp($img);
imagedestroy($img);
?>


Создает новое изображение из файла или URL

  • « imagecreatefromwbmp
  • imagecreatefromxbm »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создает новое изображение из файла или URL

imagecreatefromwebp

(PHP 5 >= 5.5.0, PHP 7)

imagecreatefromwebp — Создает новое изображение из файла или URL

Описание

resource imagecreatefromwebp ( string $filename )

imagecreatefromwebp() returns an image identifier representing the image obtained from the given filename.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Список параметров

filename

Path to the WebP image.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Convert an WebP image to a jpeg image using imagecreatefromwebp()

<?php
// Load the WebP file
$im = imagecreatefromwebp('./example.webp');

// Convert it to a jpeg file with 100% quality
imagejpeg($im, './example.jpeg', 100);
imagedestroy($im);
?>


Создает новое изображение из файла или URL

  • « imagecreatefromwebp
  • imagecreatefromxpm »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создает новое изображение из файла или URL

imagecreatefromxbm

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecreatefromxbm — Создает новое изображение из файла или URL

Описание

resource imagecreatefromxbm ( string $filename )

imagecreatefromxbm() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Список параметров

filename

Путь к изображению XBM.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Преобразование XBM изображения в png, используя imagecreatefromxbm()

<?php
// загрузка xbm файла
$xbm = imagecreatefromxbm('./example.xbm');

// Преобразование в png файл
imagepng($xbm, './example.png');
imagedestroy($xbm);
?>


Создает новое изображение из файла или URL

  • « imagecreatefromxbm
  • imagecreatetruecolor »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создает новое изображение из файла или URL

imagecreatefromxpm

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagecreatefromxpm — Создает новое изображение из файла или URL

Описание

resource imagecreatefromxpm ( string $filename )

imagecreatefromxpm() возвращает идентификатор изображения, представляющего изображение полученное из файла с заданным именем.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

Список параметров

filename

Путь к изображению XPM.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.19 | imagecreatefromxpm() доступна на Windows.

Примеры

Пример #1 Создание изображения, используя imagecreatefromxpm()

<?php
// Проверка наличия XPM поддержки
if(!(imagetypes() & IMG_XPM))
{
    die('Поддержка xpm не найдена!');
}

// Создание изображения
$xpm = imagecreatefromxpm('./example.xpm');

// Различные операции с изображением

// PHP не поддерживает запись xpm изображений
// поэтому мы сохраним изображение, как
// jpeg файл со 100% качеством
imagejpeg($xpm, './example.jpg', 100);
imagedestroy($xpm);
?>


Создание нового полноцветного изображения

  • « imagecreatefromxpm
  • imagecrop »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Создание нового полноцветного изображения

imagecreatetruecolor

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagecreatetruecolor — Создание нового полноцветного изображения

Описание

resource imagecreatetruecolor ( int $width , int $height )

imagecreatetruecolor() возвращает идентификатор изображения, представляющий черное изображение заданного размера.

Список параметров

width

Ширина изображения.

height

Высота изображения.

Возвращаемые значения

Возвращает ресурс изображения в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Создание нового потока GD изображения и вывод картинки.

<?php
header ('Content-Type: image/png');
$im = @imagecreatetruecolor(120, 20)
      or die('Невозможно инициализировать GD поток');
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая Текстовая Строка', $text_color);
imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Создание нового потока GD изображения и вывод картинки.

Смотрите также

  • imagedestroy() - Уничтожение изображения
  • imagecreate() - Создание нового палитрового изображения


Crop an image to the given rectangle

  • « imagecreatetruecolor
  • imagecropauto »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Crop an image to the given rectangle

imagecrop

(PHP 5 >= 5.5.0, PHP 7)

imagecrop — Crop an image to the given rectangle

Описание

resource imagecrop ( resource $image , array $rect )

Crops an image to the given rectangular area and returns the resulting image. The given image is not modified.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

rect

The cropping rectangle as array with keys x, y, width and height.

Возвращаемые значения

Return cropped image resource on success или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imagecrop() example

This example shows how to crop an image to a square area.

<?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');
}
?>

Смотрите также

  • imagecropauto() - Crop an image automatically using one of the available modes


Crop an image automatically using one of the available modes

  • « imagecrop
  • imagedashedline »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Crop an image automatically using one of the available modes

imagecropauto

(PHP 5 >= 5.5.0, PHP 7)

imagecropauto — Crop an image automatically using one of the available modes

Описание

resource imagecropauto ( resource $image [, int $mode = -1 [, float $threshold = .5 [, int $color = -1 ]]] )

Automatically crops an image according to the given mode.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

mode

One of the following constants:

IMG_CROP_DEFAULT
Attempts to use IMG_CROP_TRANSPARENT and if it fails it falls back to IMG_CROP_SIDES.
IMG_CROP_TRANSPARENT
Crops out a transparent background.
IMG_CROP_BLACK
Crops out a black background.
IMG_CROP_WHITE
Crops out a white background.
IMG_CROP_SIDES
Uses the 4 corners of the image to attempt to detect the background to crop.
IMG_CROP_THRESHOLD
Crops an image using the given threshold and color.
threshold

Specifies the tolerance in percent to be used while comparing the image color and the color to crop. The method used to calculate the color difference is based on the color distance in the RGB(a) cube.

Used only in IMG_CROP_THRESHOLD mode.

color

Either an RGB color value or a palette index.

Used only in IMG_CROP_THRESHOLD mode.

Возвращаемые значения

Returns a cropped image resource on success или FALSE в случае возникновения ошибки. If no cropping would occur, or the complete image would be cropped, that is treated as failure, i.e. imagecrop() returns FALSE.

Примеры

Пример #1 Proper handling of auto-cropping

As noted in the return value section, imagecropauto() returns FALSE when there is either nothing to crop or the whole image would be cropped. In this example we have an image resource $im which should be automatically cropped only if there is something to crop; otherwise we want to proceed with the original image.

<?php
$cropped = imagecropauto($im, IMG_CROP_DEFAULT);
if ($cropped !== false) { // in case a new image resource was returned
    imagedestroy($im);    // we destroy the original image
    $im = $cropped;       // and assign the cropped image to $im
}
?>

Смотрите также

  • imagecrop() - Crop an image to the given rectangle


Рисование пунктирной линии

  • « imagecropauto
  • imagedestroy »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование пунктирной линии

imagedashedline

(PHP 4, PHP 5, PHP 7)

imagedashedline — Рисование пунктирной линии

Описание

bool imagedashedline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

Эта функция устарела. Используйте сочетание функций imagesetstyle() и imageline().

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

Верхняя левая x координата.

y1

Верхняя левая y координата. 0, 0 - верхний левый угол изображения.

x2

Нижняя правая х-координата.

y2

Нижняя правая у-координата.

color

Цвет линии. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Всегда возвращает true

Примеры

Пример #1 Пример использования imagedashedline()

<?php
// Создание изображения 100x100
$im = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// Рисование вертикальной пунктирной линии
imagedashedline($im, 50, 25, 50, 75, $white);

// Сохранение изображения
imagepng($im, './dashedline.png');
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagedashedline()

Пример #2 Альтернатива функции imagedashedline()

<?php
// Создание изображения 100x100
$im = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);

// Определение стиля: Первые 4 пиксела белые, следующие 4 - прозрачные.
// Это создает эффект пунктира.
$style = Array(
                $white,
                $white,
                $white,
                $white,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT,
                IMG_COLOR_TRANSPARENT
                );

imagesetstyle($im, $style);

// Рисование пунктирной линии
imageline($im, 50, 25, 50, 75, IMG_COLOR_STYLED);

// Сохранение изображения
imagepng($im, './imageline.png');
imagedestroy($im);
?>

Смотрите также

  • imagesetstyle() - Установка стиля рисования линий
  • imageline() - Рисование линии


Уничтожение изображения

  • « imagedashedline
  • imageellipse »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Уничтожение изображения

imagedestroy

(PHP 4, PHP 5, PHP 7)

imagedestroy — Уничтожение изображения

Описание

bool imagedestroy ( resource $image )

imagedestroy() освобождает память, занятую изображением image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagedestroy()

<?php
// Создание изображения 100 x 100
$im = imagecreatetruecolor(100, 100);

// изменение или сохранение изображения

// освобождение памяти
imagedestroy($im);
?>


Рисование эллипса

  • « imagedestroy
  • imagefill »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование эллипса

imageellipse

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imageellipse — Рисование эллипса

Описание

bool imageellipse ( resource $image , int $cx , int $cy , int $width , int $height , int $color )

Рисует эллипс с центром в заданных координатах.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

cx

x-координата центра.

cy

y-координата центра.

width

Ширина эллипса.

height

Высота эллипса.

color

Цвет эллипса. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imageellipse()

<?php

// Создание пустого изображения.
$image = imagecreatetruecolor(400, 300);

// Выбор цвета фона.
$bg = imagecolorallocate($image, 0, 0, 0);

// Закрашивание фона выбранным цветом.
imagefill($image, 0, 0, $bg);

// Выбор цвета эллипса.
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// Рисование эллипса.
imageellipse($image, 200, 150, 300, 200, $col_ellipse);

// Вывод изображения.
header("Content-type: image/png");
imagepng($image);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imageellipse()

Примечания

Замечание:

imageellipse() игнорирует imagesetthickness().

Смотрите также

  • imagefilledellipse() - Рисование закрашенного эллипса
  • imagearc() - Рисование дуги


Заливка

  • « imageellipse
  • imagefilledarc »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Заливка

imagefill

(PHP 4, PHP 5, PHP 7)

imagefill — Заливка

Описание

bool imagefill ( resource $image , int $x , int $y , int $color )

Производит заливку, начиная с заданных координат (верхний левый угол имеет координаты 0, 0), цветом color в изображении image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата начала.

y

y-координата начала.

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagefill()

<?php

$im = imagecreatetruecolor(100, 100);

// установка красного фона
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagefill()

Смотрите также

  • imagecolorallocate() - Создание цвета для изображения


Рисование и заливка дуги

  • « imagefill
  • imagefilledellipse »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование и заливка дуги

imagefilledarc

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagefilledarc — Рисование и заливка дуги

Описание

bool imagefilledarc ( resource $image , int $cx , int $cy , int $width , int $height , int $start , int $end , int $color , int $style )

Рисует дугу с центром в заданных координатах изображения image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

cx

x-координата центра.

cy

y-координата центра.

width

Ширина дуги.

height

Высота дуги.

start

Угол начала дуги в градусах.

end

Угол окончания дуги в градусах. 0° соответствует положению 3-часа. Дуга рисуется по часовой стрелке.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

style

Битовое или следующих констант:

  1. IMG_ARC_PIE
  2. IMG_ARC_CHORD
  3. IMG_ARC_NOFILL
  4. IMG_ARC_EDGED
IMG_ARC_PIE и IMG_ARC_CHORD взаимно исключающие; IMG_ARC_CHORD просто соединяет начало и конец дуги прямой линией; IMG_ARC_PIE рисует между ними часть окружности. IMG_ARC_NOFILL означает, что должны быть только границы, заливка не требуется. IMG_ARC_EDGED, если используется вместе с IMG_ARC_NOFILL, означает, что начало и конец дуги соединяются с центром - это хороший способ (лучше чем заливка) получить сектор (кусок пирога).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Создание трехмерного пирога

<?php

// создание изображения
$image = imagecreatetruecolor(100, 100);

// определение цветов
$white    = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray     = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy     = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red      = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred  = imagecolorallocate($image, 0x90, 0x00, 0x00);

// делаем эффект 3Д
for ($i = 60; $i > 50; $i--) {
   imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
   imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
   imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}

imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);

// вывод изображения
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера : Создание трехмерного пирога


Рисование закрашенного эллипса

  • « imagefilledarc
  • imagefilledpolygon »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование закрашенного эллипса

imagefilledellipse

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagefilledellipse — Рисование закрашенного эллипса

Описание

bool imagefilledellipse ( resource $image , int $cx , int $cy , int $width , int $height , int $color )

Рисует эллипс с центром в заданных координатах изображения image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

cx

x-координата центра.

cy

y-координата центра.

width

Ширина эллипса.

height

Высота эллипса.

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagefilledellipse()

<?php

// создание пустого изображения
$image = imagecreatetruecolor(400, 300);

// заливка фона
$bg = imagecolorallocate($image, 0, 0, 0);

// выбор цвета для эллипса
$col_ellipse = imagecolorallocate($image, 255, 255, 255);

// рисование белого эллипса
imagefilledellipse($image, 200, 150, 300, 200, $col_ellipse);

// вывод картинки
header("Content-type: image/png");
imagepng($image);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagefilledellipse()

Примечания

Замечание:

imagefilledellipse() игнорирует imagesetthickness().

Смотрите также

  • imageellipse() - Рисование эллипса
  • imagefilledarc() - Рисование и заливка дуги


Рисование закрашенного многоугольника

  • « imagefilledellipse
  • imagefilledrectangle »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование закрашенного многоугольника

imagefilledpolygon

(PHP 4, PHP 5, PHP 7)

imagefilledpolygon — Рисование закрашенного многоугольника

Описание

bool imagefilledpolygon ( resource $image , array $points , int $num_points , int $color )

imagefilledpolygon() создает закрашенный многоугольник в заданном изображении image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

points

Массив, содержащий x и y координаты последовательных вершин многоугольника.

num_points

Число вершин, должно быть не меньше 3.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagefilledpolygon()

<?php
// задание массива точек для многоугольника
$values = array(
            40,  50,  // Point 1 (x, y)
            20,  240, // Point 2 (x, y)
            60,  60,  // Point 3 (x, y)
            240, 20,  // Point 4 (x, y)
            50,  40,  // Point 5 (x, y)
            10,  10   // Point 6 (x, y)
            );

// создание изображения
$image = imagecreatetruecolor(250, 250);

// определение цветов
$bg   = imagecolorallocate($image, 0, 0, 0);
$blue = imagecolorallocate($image, 0, 0, 255);

// заливка фона
imagefilledrectangle($image, 0, 0, 249, 249, $bg);

// рисование многоугольника
imagefilledpolygon($image, $values, 6, $blue);

// вывод изображения
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagefilledpolygon()

Смотрите также

  • imagepolygon() - Рисование многоугольника


Рисование закрашенного прямоугольника

  • « imagefilledpolygon
  • imagefilltoborder »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование закрашенного прямоугольника

imagefilledrectangle

(PHP 4, PHP 5, PHP 7)

imagefilledrectangle — Рисование закрашенного прямоугольника

Описание

bool imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

Создает прямоугольник закрашенный цветом color в заданном изображении image. Начальная точка 1, конечная 2. 0,0 - левый верхний угол изображения.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

x-координата точки 1.

y1

y-координата точки 1.

x2

x-координата точки 2.

y2

y-координата точки 2.

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagefilledrectangle()

<?php
// Создание изображения 55x30
$im = imagecreatetruecolor(55, 30);
$white = imagecolorallocate($im, 255, 255, 255);

// Рисование прямоугольника
imagefilledrectangle($im, 4, 4, 50, 25, $white);

// Сохранение изображения
imagepng($im, './imagefilledrectangle.png');
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagefilledrectangle()


Заливка цветом

  • « imagefilledrectangle
  • imagefilter »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Заливка цветом

imagefilltoborder

(PHP 4, PHP 5, PHP 7)

imagefilltoborder — Заливка цветом

Описание

bool imagefilltoborder ( resource $image , int $x , int $y , int $border , int $color )

imagefilltoborder() производит заливку области, ограниченной цветом border. Начальная координата x, y (левый верхний угол имеет координаты 0, 0), а область закрашивается цветом color.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата начала.

y

y-координата начала.

border

Цвет границы заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

color

Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Закрашивание эллипса

<?php
// создание изображения, установка белого фона
$im = imagecreatetruecolor(100, 100);
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 255, 255, 255));

// рисование эллипса закрашенного черным цветом
imageellipse($im, 50, 50, 50, 50, imagecolorallocate($im, 0, 0, 0));

// установка цвета границы заливки
$border = imagecolorallocate($im, 0, 0, 0);
$fill = imagecolorallocate($im, 255, 0, 0);

// заливка области
imagefilltoborder($im, 50, 50, $border, $fill);

// вывод и освобождение памяти
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: Закрашивание эллипса


Применяет фильтр к изображению

  • « imagefilltoborder
  • imageflip »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Применяет фильтр к изображению

imagefilter

(PHP 5, PHP 7)

imagefilter — Применяет фильтр к изображению

Описание

bool imagefilter ( resource $image , int $filtertype [, int $arg1 [, int $arg2 [, int $arg3 [, int $arg4 ]]]] )

imagefilter() применяет заданный фильтр filtertype к изображению image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

filtertype

filtertype может быть одним из следующих:

  • IMG_FILTER_NEGATE: Инвертирует все цвета изображения.
  • IMG_FILTER_GRAYSCALE: Преобразует цвета изображения в градации серого.
  • IMG_FILTER_BRIGHTNESS: Изменяет яркость изображения. Используйте аргумент arg1 для задания уровня яркости. Диапазон яркостей от -255 до 255.
  • IMG_FILTER_CONTRAST: Изменяет контрастность изображения. Используйте аргумент arg1 для задания уровня контрастности.
  • IMG_FILTER_COLORIZE: То же, что и IMG_FILTER_GRAYSCALE, за исключением того, что можно задать цвет. Используйте аргументы arg1, arg2 и arg3 для указания каналов red, green, blue, а arg4 для alpha канала. Диапазон для каждого канала цвета от 0 до 255.
  • IMG_FILTER_EDGEDETECT: Использует определение границ для их подсветки.
  • IMG_FILTER_EMBOSS: Добавляет рельеф.
  • IMG_FILTER_GAUSSIAN_BLUR: Размывает изображение по методу Гаусса.
  • IMG_FILTER_SELECTIVE_BLUR: Размывает изображение.
  • IMG_FILTER_MEAN_REMOVAL: Использует усреднение для достижения эффекта "эскиза".
  • IMG_FILTER_SMOOTH: Делает границы более плавными, а изображение менее четким. Используйте аргумент arg1 для задания уровня гладкости.
  • IMG_FILTER_PIXELATE: Применяет эффект пикселирования. Используйте аргумент arg1 для задания размера блока и аргумент arg2 для задания режима эффекта пикселирования.

arg1

  • IMG_FILTER_BRIGHTNESS: Уровень яркости.
  • IMG_FILTER_CONTRAST: Уровень контрастности.
  • IMG_FILTER_COLORIZE: Значение красного компонента цвета.
  • IMG_FILTER_SMOOTH: Уровень сглаживания.
  • IMG_FILTER_PIXELATE: Размер блока в пикселах.

arg2

  • IMG_FILTER_COLORIZE: Значение зеленого компонента цвета.
  • IMG_FILTER_PIXELATE: Использовать усовершенствованный эффект пикселирования или нет (по умолчанию FALSE).

arg3

  • IMG_FILTER_COLORIZE: Значение синего компонента цвета.

arg4

  • IMG_FILTER_COLORIZE: Альфа канал, значение между 0 и 127. 0 означает непрозрачность, 127 соответствует абсолютной прозрачности.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлена поддержка пикселирования (IMGFILTER_PIXELATE).
5.2.5 | Добавлена поддержка прозрачности IMG_FILTER_COLORIZE.

Примеры

Пример #1 Пример использования imagefilter() с фильтром grayscale

<?php
$im = imagecreatefrompng('dave.png');

if($im && imagefilter($im, IMG_FILTER_GRAYSCALE))
{
    echo 'Изображение преобразовано к градациям серого.';

    imagepng($im, 'dave.png');
}
else
{
    echo 'Преобразование не удалось.';
}

imagedestroy($im);
?>

Пример #2 Пример использования imagefilter() с фильтром яркости

<?php
$im = imagecreatefrompng('sean.png');

if($im && imagefilter($im, IMG_FILTER_BRIGHTNESS, 20))
{
    echo 'Яркость изображения изменена.';

    imagepng($im, 'sean.png');
    imagedestroy($im);
}
else
{
    echo 'Изменить яркость не удалось.';
}
?>

Пример #3 Пример использования imagefilter() с фильтром colorize

<?php
$im = imagecreatefrompng('philip.png');

/* R, G, B, so 0, 255, 0 is green */
if($im && imagefilter($im, IMG_FILTER_COLORIZE, 0, 255, 0))
{
    echo 'Изображение преобразовано к оттенкам зеленого.';

    imagepng($im, 'philip.png');
    imagedestroy($im);
}
else
{
    echo 'Преобразование не удалось.';
}
?>

Пример #4 Пример использования imagefilter() с фильтром negate

<?php
// Определим нашу функцию, которую можно использовать в PHP
// без imagefilter()
function negate($im)
{
    if(function_exists('imagefilter'))
    {
        return imagefilter($im, IMG_FILTER_NEGATE);
    }

    for($x = 0; $x < imagesx($im); ++$x)
    {
        for($y = 0; $y < imagesy($im); ++$y)
        {
            $index = imagecolorat($im, $x, $y);
            $rgb = imagecolorsforindex($index);
            $color = imagecolorallocate($im, 255 - $rgb['red'], 255 - $rgb['green'], 255 - $rgb['blue']);

            imagesetpixel($im, $x, $y, $color);
        }
    }

    return(true);
}

$im = imagecreatefromjpeg('kalle.jpg');

if($im && negate($im))
{
    echo 'Изображение инвертировано успешно.';

    imagejpeg($im, 'kalle.jpg', 100);
    imagedestroy($im);
}
else
{
    echo 'Инвертировать изображение не удалось.';
}
?>

Пример #5 Пример использования imagefilter() с фильтром pixelate

<?php
// загрузка PHP логотипа, нам нужно 2 штуки
// для сравнения
$logo1 = imagecreatefrompng('./php.png');
$logo2 = imagecreatefrompng('./php.png');

// подопытный экземпляр
$output = imagecreatetruecolor(imagesx($logo1) * 2, imagesy($logo1));

// Применение пикселирования к каждому изображению с размером блока в 3 пиксела
imagefilter($logo1, IMG_FILTER_PIXELATE, 3);
imagefilter($logo2, IMG_FILTER_PIXELATE, 3, true);

// Совмещение различий в выходном изображении
imagecopy($output, $logo1, 0, 0, 0, 0, imagesx($logo1) - 1, imagesy($logo1) - 1);
imagecopy($output, $logo2, imagesx($logo2), 0, 0, 0, imagesx($logo2) - 1, imagesy($logo2) - 1);
imagedestroy($logo1);
imagedestroy($logo2);

// Вывод различий
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagefilter() pixelate

Примечания

Смотрите также

  • imageconvolution() - Наложение искривляющей матрицы 3х3, используя коэффициент и смещение


Flips an image using a given mode

  • « imagefilter
  • imagefontheight »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Flips an image using a given mode

imageflip

(PHP 5 >= 5.5.0, PHP 7)

imageflip — Flips an image using a given mode

Описание

bool imageflip ( resource $image , int $mode )

Flips the image image using the given mode.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

mode

Flip mode, this can be one of the IMG_FLIP_* constants:

Constant | Meaning
IMG_FLIP_HORIZONTAL | Flips the image horizontally.
IMG_FLIP_VERTICAL | Flips the image vertically.
IMG_FLIP_BOTH | Flips the image both horizontally and vertically.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Flips an image vertically

This example uses the IMG_FLIP_VERTICAL constant.

<?php
// File
$filename = 'phplogo.png';

// Content type
header('Content-type: image/png');

// Load
$im = imagecreatefrompng($filename);

// Flip it vertically
imageflip($im, IMG_FLIP_VERTICAL);

// Output
imagejpeg($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Output of example: Vertically flipped image

Пример #2 Flips the image horizontally

This example uses the IMG_FLIP_HORIZONTAL constant.

<?php
// File
$filename = 'phplogo.png';

// Content type
header('Content-type: image/png');

// Load
$im = imagecreatefrompng($filename);

// Flip it horizontally
imageflip($im, IMG_FLIP_HORIZONTAL);

// Output
imagejpeg($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Output of example: Horizontally flipped image


Получение высоты шрифта

  • « imageflip
  • imagefontwidth »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение высоты шрифта

imagefontheight

(PHP 4, PHP 5, PHP 7)

imagefontheight — Получение высоты шрифта

Описание

int imagefontheight ( int $font )

Возвращает высоту в пикселах символа заданного шрифта.

Список параметров

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

Возвращаемые значения

Возвращает высоту в пикселах.

Примеры

Пример #1 Пример использования imagefontheight() на встроенных шрифтах

<?php
echo 'Font height: ' . imagefontheight(4);
?>

Результатом выполнения данного примера будет что-то подобное:

Font height: 16

Пример #2 Использование imagefontheight() вместе с imageloadfont()

<?php
// загрузка .gdf шрифта
$font = imageloadfont('anonymous.gdf');

echo 'Высота шрифта: ' . imagefontheight($font);
?>

Результатом выполнения данного примера будет что-то подобное:

Font height: 43

Смотрите также

  • imagefontwidth() - Получение ширины шрифта
  • imageloadfont() - Загрузка шрифта


Получение ширины шрифта

  • « imagefontheight
  • imageftbbox »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение ширины шрифта

imagefontwidth

(PHP 4, PHP 5, PHP 7)

imagefontwidth — Получение ширины шрифта

Описание

int imagefontwidth ( int $font )

Возвращает ширину символа шрифта.

Список параметров

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

Возвращаемые значения

Возвращает ширину в пикселах

Примеры

Пример #1 Использование imagefontwidth() на встроенных шрифтах

<?php
echo 'Ширина шрифта: ' . imagefontwidth(4);
?>

Результатом выполнения данного примера будет что-то подобное:

Font width: 8

Пример #2 Использование imagefontwidth() вместе с imageloadfont()

<?php
// загрузка .gdf шрифта
$font = imageloadfont('anonymous.gdf');

echo 'Ширина шрифта: ' . imagefontwidth($font);
?>

Результатом выполнения данного примера будет что-то подобное:

Font width: 23

Смотрите также

  • imagefontheight() - Получение высоты шрифта
  • imageloadfont() - Загрузка шрифта


Определение границ текста выводимого шрифтом freetype2

  • « imagefontwidth
  • imagefttext »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Определение границ текста выводимого шрифтом freetype2

imageftbbox

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imageftbbox — Определение границ текста выводимого шрифтом freetype2

Описание

array imageftbbox ( float $size , float $angle , string $fontfile , string $text [, array $extrainfo ] )

Эта функция рассчитывает и возвращает рамку (границы) FreeType текста.

Список параметров

size

Размер шрифта. В зависимости от вашей версии GD, он должен быть указан либо в пикселах (GD1) либо в типографских пунктах (GD2).

angle

Угол в градусах в котором text должен быть измерен.

fontfile

Имя файла TrueType шрифта (может быть URL). В зависимости от версии GD библиотеки функция может попытаться найти файлы, не начинающиеся с '/' путем добавления '.ttf' в конец имени файла и поиска по адресу заданному в библиотеке.

text

Измеряемая строка.

extrainfo

Возможные ключи массива extrainfo
Ключ | Тип | Значение
linespacing | float | Определяет рисование подчеркиваний

Возвращаемые значения

imageftbbox() возвращает массив из 8 элементов, представляющих четыре точки в углах рамки обрамляющей текст:

0 | нижний левый угол, X координата
1 | нижний левый угол, Y координата
2 | нижний правый угол, X координата
3 | нижний правый угол, Y координата
4 | верхний правый угол, X координата
5 | верхний правый угол, Y координата
6 | верхний левый угол, X координата
7 | верхний левый угол, Y координата

Точки расположены относительно текста text и не зависят от угла angle, таким образом "верхний левый" означает верхняя левая точка текста, если расположить текст горизонтально.

Примеры

Пример #1 Пример использования imageftbbox()

<?php
// Создание изображения 300x150
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// установка белого фона
imagefilledrectangle($im, 0, 0, 299, 299, $white);

// путь к файлу шрифта
$font = './arial.ttf';

// создаем рамку вокруг текста
$bbox = imageftbbox(10, 0, $font, 'Группа документирования PHP');

// наши координаты для X и Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 5;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

imagefttext($im, 10, 0, $x, $y, $black, $font, 'Группа документирования PHP');

// вывод в броузер
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомплирован с поддержкой freetype (--with-freetype-dir=DIR )

Смотрите также

  • imagefttext() - Нанесение текста на изображение, используя шрифты FreeType 2
  • imagettfbbox() - Получение параметров рамки обрамляющей текст написанный TrueType шрифтом


Нанесение текста на изображение, используя шрифты FreeType 2

  • « imageftbbox
  • imagegammacorrect »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Нанесение текста на изображение, используя шрифты FreeType 2

imagefttext

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagefttext — Нанесение текста на изображение, используя шрифты FreeType 2

Описание

array imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text [, array $extrainfo ] )

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

size

Размер шрифта в пунктах.

angle

Угол в градусах, 0 градусов означает расположение текста слева направо. Положительные значения означают поворот текста против часовой стрелки. Например, текст повернутый на 90 градусов нужно будет читать снизу вверх.

x

Координаты x и y определяют отправную точку для первого символа текста (конкретно, левый нижний угол символа). Здесь есть отличие от функции imagestring(), в которой x и y определяют верхний левый угол первого символа. Например, "верхний левый" имеет координаты 0,0.

y

y-координата. Это позиция базовой линии шрифта, в общем случае она не совпадает с низшей точкой в символе.

color

Индекс требуемого цвета текста, см. imagecolorexact().

fontfile

Путь к TrueType шрифту, который требуется использовать.

В зависимости от версии GD библиотеки если fontfile не начинается с /, то в конец названия файла будет добавлено расширение .ttf, и библиотека будет пытаться найти этот файл по адресу, определенному в настройках библиотеки.

При использовании GD библиотеки версий младше 2.0.18 символ space (пробел), как и точка с запятой, использовался в качестве "разделителя путей" для различных файлов шрифтов. При использовании этой возможности будет выдаваться предупреждение: Warning: Could not find/open font. Решением такой проблемы в этих версиях может быть только исключение пробелов из путей файлов.

В большинстве случаев размещение файлов шрифтов в директории скрипта решает подобные проблемы включения файлов.

<?php
// Задание переменной окружения для GD
putenv('GDFONTPATH=' . realpath('.'));

// Имя шрифта для использования (обратите внимание на отсутствие расширения .ttf)
$font = 'SomeFont';
?>

text

Текст для вставки в изображение.

extrainfo

Возможные значения массива extrainfo
Ключ | Тип | Значение
linespacing | float | Определяет рисование нижнего подчеркивания

Возвращаемые значения

Эта функция возвращает массив, определяющий четыре точки рамки текста. Текст внутри этих границ начинается с левого нижнего угла и поворачивается против часовой стрелки:

0 | нижняя левая x-координата
1 | нижняя левая y-координата
2 | нижняя правая x-координата
3 | нижняя правая y-координата
4 | верхняя правая x-координата
5 | верхняя правая y-координата
6 | верхняя левая x-координата
7 | верхняя левая y-координата

Примеры

Пример #1 Пример использования imagefttext()

<?php
// Создание изображения 300x100
$im = imagecreatetruecolor(300, 100);
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Сделаем красный фон
imagefilledrectangle($im, 0, 0, 299, 99, $red);

// Путь к ttf файлу шрифта
$font_file = './arial.ttf';

// Рисуем текст 'PHP Manual' шрифтом 13го размера
imagefttext($im, 13, 0, 105, 55, $black, $font_file, 'PHP Manual');

// Вывод изображения
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомплирован с поддержкой freetype (--with-freetype-dir=DIR )

Смотрите также

  • imageftbbox() - Определение границ текста выводимого шрифтом freetype2
  • imagettftext() - Рисование текста на изображении шрифтом TrueType


Применение гамма коррекции к GD изображению

  • « imagefttext
  • imagegd2 »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Применение гамма коррекции к GD изображению

imagegammacorrect

(PHP 4, PHP 5, PHP 7)

imagegammacorrect — Применение гамма коррекции к GD изображению

Описание

bool imagegammacorrect ( resource $image , float $inputgamma , float $outputgamma )

Применяет гамма коррекцию к изображению image согласно заданным входным и выходным настройкам.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

inputgamma

Входная настройка гаммы.

outputgamma

Выходная настройка гаммы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagegammacorrect()

<?php
// Создание изображения
$im = imagecreatefromgif('php.gif');

// Корректировка гаммы, на выходе 1.537
imagegammacorrect($im, 1.0, 1.537);

// Сохранение изображения и освобождение памяти
imagegif($im, './php_gamma_corrected.gif');
imagedestroy($im);
?>


Вывод GD2 изображения в браузер или файл

  • « imagegammacorrect
  • imagegd »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Вывод GD2 изображения в браузер или файл

imagegd2

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagegd2 — Вывод GD2 изображения в браузер или файл

Описание

bool imagegd2 ( resource $image [, mixed $to = NULL [, int $chunk_size = 128 [, int $type = IMG_GD2_RAW ]]] )

Выводит GD2 изображение в заданный файл to.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

chunk_size

Размер части изображения.

type

Либо IMG_GD2_RAW, либо IMG_GD2_COMPRESSED. По умолчанию IMG_GD2_RAW.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.4.0 | Добавлена возможность задавать поток типа resource для to.

Примеры

Пример #1 Вывод GD2 изображения

<?php
// Создание пустого изображения и добавление на него текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "Простая Текстовая Строка", $text_color);

// Вывод изображения
imagegd2($im);

// Освобождение памяти
imagedestroy($im);
?>

Пример #2 Сохранение GD2 изображения

<?php
// Создание пустого изображения и добавление на него текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "Простая Текстовая Строка", $text_color);

// Сохранение изображения
// Формат файлов GD2 - .gd2, см. http://www.libgd.org/GdFileFormats
imagegd2($im, 'simple.gd2');

// Освобождение памяти
imagedestroy($im);
?>

Примечания

Замечание:

Формат GD2 используется в основном для быстрой загрузки частей изображений. Следует учитывать, что GD2 формат может использоваться только в GD2-совместимых приложениях.

Смотрите также

  • imagegd() - Вывод GD-изображения в браузер или в файл


Вывод GD-изображения в браузер или в файл

  • « imagegd2
  • imagegetclip »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Вывод GD-изображения в браузер или в файл

imagegd

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imagegd — Вывод GD-изображения в браузер или в файл

Описание

bool imagegd ( resource $image [, mixed $to = NULL ] )

Вывод GD-изображения в to.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Теперь imagegd() позваляет сохранять изображения "truecolor". Раньше они неявно преобразовывались к палитре.
5.4.0 | Добавлена возможность использовать потоки типа resource для to.

Примеры

Пример #1 Вывод GD-изображения

<?php
// Создаём пустое изображение и добавляем текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);

// Выводим изображение
imagegd($im);

// Освобождаем память
imagedestroy($im);
?>

Пример #2 Сохранение GD-изображения

<?php
// Создаём пустое изображение и добавляем текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);

// Сохраняем GD-изображение
// Расширением GD-изображений является .gd, подробнее на http://www.libgd.org/GdFileFormats
imagegd($im, 'simple.gd');

// Освобождаем память
imagedestroy($im);
?>

Примечания

Замечание:

Формат GD обычно используется для быстрой загрузки деталей изображения. Заметим, что формат GD используется только в GD-совместимых приложениях.

Смотрите также

  • imagegd2() - Вывод GD2 изображения в браузер или файл


Get the clipping rectangle

  • « imagegd
  • imagegif »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Get the clipping rectangle

imagegetclip

(PHP 7.2)

imagegetclip — Get the clipping rectangle

Описание

array imagegetclip ( resource $im )

imagegetclip() retrieves the current clipping rectangle, i.e. the area beyond which no pixels will be drawn.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

The function returns an indexed array with the coordinates of the clipping rectangle which has the following entries:

  • x-coordinate of the upper left corner
  • y-coordinate of the upper left corner
  • x-coordinate of the lower right corner
  • y-coordinate of the lower right corner

Примеры

Пример #1 imagegetclip() example

Setting and retrieving the clipping rectangle.

<?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() - Set the clipping rectangle


Выводит изображение в браузер или пишет в файл

  • « imagegetclip
  • imagegrabscreen »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Выводит изображение в браузер или пишет в файл

imagegif

(PHP 4, PHP 5, PHP 7)

imagegif — Выводит изображение в браузер или пишет в файл

Описание

bool imagegif ( resource $image [, mixed $to ] )

imagegif() создает GIF файл to из изображения image. Аргумент image возвращается функциями imagecreate() или imagecreatefrom*.

Файл будет иметь формат GIF87a, если изображение не было сделано прозрачным функцией imagecolortransparent(). В этом случае форматом файла будет GIF89a.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

filename

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.4.0 | Добавлена возможность использовать поток типа resource для to.

Примеры

Пример #1 Вывод изображения, используя imagegif()

<?php
// Создание изображения
$im = imagecreatetruecolor(100, 100);

// Создание белого фона
imagefilledrectangle($im, 0, 0, 99, 99, 0xFFFFFF);

// Рисование текста на изображении
imagestring($im, 3, 40, 20, 'GD библиотека', 0xFFBA00);

// Вывод изображения в броузер
header('Content-Type: image/gif');

imagegif($im);
imagedestroy($im);
?>

Пример #2 Преобразование PNG в GIF, используя imagegif()

<?php

// Загрузка PNG
$png = imagecreatefrompng('./php.png');

// Сохранение как GIF
imagegif($png, './php.gif');

// Освобождение памяти
imagedestroy($png);

// готово
echo 'Преобразование PNG в GIF успешно завершено!';
?>

Примечания

Замечание:

Поддержка GIF была исключена из GD библиотеки в версии 1.6 и возвращена обратно в 2.0.28. Эта функция недоступна в промежутке этих версий. За дополнительной информацией обращайтесь на сайт » Проекта GD.

Следующий пример кода позволит вам писать PHP приложения, которые будут проще портироваться на разные системы. В нем используется автоопределение типа GD поддержки доступной в данный момент. Замените строки: header ("Content-Type: image/gif"); imagegif ($im); на более переносимые:

<?php
// Создание нового изображения
$im = imagecreatetruecolor(100, 100);

// Какие-либо операции с изображением

// Обработка вывода
if(function_exists('imagegif'))
{
    // для GIF
    header('Content-Type: image/gif');

    imagegif($im);
}
elseif(function_exists('imagejpeg'))
{
    // для JPEG
    header('Content-Type: image/jpeg');

    imagejpeg($im, NULL, 100);
}
elseif(function_exists('imagepng'))
{
    // для PNG
    header('Content-Type: image/png');

    imagepng($im);
}
elseif(function_exists('imagewbmp'))
{
    // для WBMP
    header('Content-Type: image/vnd.wap.wbmp');

    imagewbmp($im);
}
else
{
    imagedestroy($im);

    die('В этом PHP сервере нет поддержки изображений');
}

// Если не поддерживается ни один из форматов
// освободим память
if($im)
{
    imagedestroy($im);
}
?>

Замечание:

Вы можете использовать функцию imagetypes() для проверки, какие форматы поддерживаются:

<?php
if(imagetypes() & IMG_GIF)
{
    header('Content-Type: image/gif');
    imagegif($im);
}
elseif(imagetypes() & IMG_JPG)
{
    /* ... и т.д. */
}
?>

Смотрите также

  • imagepng() - Вывод PNG изображения в браузер или файл
  • imagewbmp() - Выводит изображение в браузер или пишет в файл
  • imagejpeg() - Выводит изображение в браузер или пишет в файл
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой


Захватывает изображение с экрана

  • « imagegif
  • imagegrabwindow »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Захватывает изображение с экрана

imagegrabscreen

(PHP 5 >= 5.2.2, PHP 7)

imagegrabscreen — Захватывает изображение с экрана

Описание

resource imagegrabscreen ( void )

Делает скриншот.

Возвращаемые значения

Возвращает идентификатор ресурса изображения в случае успеха, FALSE в случае неудачи.

Примеры

Пример #1 Пример использования imagegrabscreen()

В этом примере показано, как сделать снимок экрана и сохранить его, как png картинку.

<?php
$im = imagegrabscreen();
imagepng($im, "myscreenshot.png");
imagedestroy($im);
?>

Примечания

Замечание:

Функция доступна только в Windows.

Смотрите также

  • imagegrabwindow() - Захватывает изображение окна


Захватывает изображение окна

  • « imagegrabscreen
  • imageinterlace »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Захватывает изображение окна

imagegrabwindow

(PHP 5 >= 5.2.2, PHP 7)

imagegrabwindow — Захватывает изображение окна

Описание

resource imagegrabwindow ( int $window_handle [, int $client_area = 0 ] )

Делает снимок окна или его клиентской части, используя windows обработчик (свойство HWND COM объекта)

Список параметров

window_handle

ID окна HWND.

client_area

Включает клиентскую часть окна приложения.

Возвращаемые значения

Возвращает идентификатор ресурса изображения в случае успеха, FALSE в случае неудачи.

Ошибки

E_NOTICE выдается, если window_handle является недопустимым обработчиком окна. E_WARNING выдается, если Windows API устарел.

Примеры

Пример #1 Пример использования imagegrabwindow()

Захват окна (IE например)

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$im = imagegrabwindow($handle);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

Захват окна (IE например) с содержимым

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://www.libgd.org");

/* еще работает? */
while ($browser->Busy) {
    com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
imagedestroy($im);
?>

Примечания

Замечание:

Функция доступна только в Windows.

Смотрите также

  • imagegrabscreen() - Захватывает изображение с экрана


Включение или выключение интерлейсинга

  • « imagegrabwindow
  • imageistruecolor »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Включение или выключение интерлейсинга

imageinterlace

(PHP 4, PHP 5, PHP 7)

imageinterlace — Включение или выключение интерлейсинга

Описание

int imageinterlace ( resource $image [, int $interlace = 0 ] )

imageinterlace() переключает состояние бита интерлейсинга.

Если установить бит интерлейсинга, а изображение загрузить, как JPEG, это приведет к созданию прогрессивного JPEG.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

interlace

Если значение отлично от нуля, изображение будет разбито на чередующиеся строки, в противном случае бит интерлейсинга будет установлен в 0.

Возвращаемые значения

Возвращает 1, если бит интерлейсинга установлен, 0 в противном случае.

Примеры

Пример #1 Включение интерлейсинга, используя imageinterlace()

<?php
// Создание нового изображения
$im = imagecreatefromgif('php.gif');

// Включение интерлейсинга
imageinterlace($im, true);

// Сохранение изображения
imagegif($im, './php_interlaced.gif');
imagedestroy($im);
?>


Определяет, является ли изображение полноцветным

  • « imageinterlace
  • imagejpeg »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Определяет, является ли изображение полноцветным

imageistruecolor

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imageistruecolor — Определяет, является ли изображение полноцветным

Описание

bool imageistruecolor ( resource $image )

imageistruecolor() определяет, является ли изображение image полноцветным.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает TRUE, если image полноцветное, FALSE в противном случае.

Примеры

Пример #1 Простое определение полноцветных изображений с помощью imageistruecolor()

<?php
// $im - изображение

// Проверка, является ли изображение полноцветным
if(!imageistruecolor($im))
{
    // Создание truecolor-изображения
    $tc = imagecreatetruecolor(imagesx($im), imagesy($im));

    // копирование из точки
    imagecopy($tc, $im, 0, 0, 0, 0, imagesx($im), imagesy($im));
    imagedestroy($im);

    $im = $tc;
    $tc = NULL;

    // или используйте imagepalettetotruecolor()
}

// Continue working with image instance
?>

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • imagepalettetotruecolor() - Converts a palette based image to true color


Выводит изображение в браузер или пишет в файл

  • « imageistruecolor
  • imagelayereffect »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Выводит изображение в браузер или пишет в файл

imagejpeg

(PHP 4, PHP 5, PHP 7)

imagejpeg — Выводит изображение в браузер или пишет в файл

Описание

bool imagejpeg ( resource $image [, mixed $to [, int $quality ]] )

Функция imagejpeg() создаёт файл JPEG из изображенияimage.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

Если вы хотите пропустить этот параметр и использовать quality, то укажите NULL.

quality

Необязательный параметр, и может принимать значения в диапазоне от 0 (низкое качество, маленький размер файла) до 100 (высокое качество, большой размер файла). По умолчанию используется качество IJG (около 75).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Вывод JPEG-изображения в браузер

<?php
// Создаём пустое изображение и добавляем текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Устанавливаем тип содержимого в заголовок, в данном случае image/jpeg
header('Content-Type: image/jpeg');

// Выводим изображение
imagejpeg($im);

// Освобождаем память
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Пример выведет изображение JPEG

Пример #2 Сохранение изображения JPEG в файл

<?php
// Создаём пустое изображение и добавляем текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Сохраняем изображение в 'simpletext.jpg'
imagejpeg($im, 'simpletext.jpg');

// Освобождаем память
imagedestroy($im);
?>

Пример #3 Вывод JPEG-изображения с 75% качеством в браузер

<?php
// Создаём пустое изображение и добавляем текст
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Устанавливаем тип содержимого в заголовок, в данном случае image/jpeg
header('Content-Type: image/jpeg');

// Пропускаем параметр filename, используя NULL, а затем устанавливаем качество в 75%
imagejpeg($im, NULL, 75);

// Освобождаем память
imagedestroy($im);
?>

Примечания

Замечание:

Если требуется вывести Progressive JPEG (прогрессивное представление данных), то необходимо использовать функцию imageinterlace() для активации соответствующего режима.

Список изменений

Версия | Описание
5.4.0 | Добавлена возможность использовать поток типа resource для to.
5.4.0 | Запрещено задавать to пустой строкой для его пропуска..

Смотрите также

  • imagepng() - Вывод PNG изображения в браузер или файл
  • imagegif() - Выводит изображение в браузер или пишет в файл
  • imagewbmp() - Выводит изображение в браузер или пишет в файл
  • imageinterlace() - Включение или выключение интерлейсинга
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой


Установка флага альфа сопряжения для использования эффектов наложения изображений

  • « imagejpeg
  • imageline »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Установка флага альфа сопряжения для использования эффектов наложения изображений

imagelayereffect

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imagelayereffect — Установка флага альфа сопряжения для использования эффектов наложения изображений

Описание

bool imagelayereffect ( resource $image , int $effect )

Установка флага альфа сопряжения для использования эффектов наложения изображений.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

effect

Одна из следующих констант:

IMG_EFFECT_REPLACE
Использовать замену пикселов (аналогично передаче TRUE в imagealphablending())
IMG_EFFECT_ALPHABLEND
Использовать обычное сопряжение цветов (аналогично передаче FALSE в imagealphablending())
IMG_EFFECT_NORMAL
То же, что и IMG_EFFECT_ALPHABLEND.
IMG_EFFECT_OVERLAY
В результате наложения картинки с этим эффектом черные и белые пикселы фона изображения останутся так же черными и белыми, а серые поменяют цвет на цвет пиксела накладываемого изображения.
IMG_EFFECT_MULTIPLY
Оверлеи с множителем эффекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.2.0 | Добавлена IMG_EFFECT_MULTIPLY (требует системную библиотеку libgd >= 2.1.1 или libgd идущую в комплекте с PHP).

Примеры

Пример #1 Пример использования imagelayereffect()

<?php
// Задание изображения
$im = imagecreatetruecolor(100, 100);

// Установка фона
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 220, 220, 220));

// Применение флага альфа сопряжения - overlay
imagelayereffect($im, IMG_EFFECT_OVERLAY);

// Рисуем два серых эллипса
imagefilledellipse($im, 50, 50, 40, 40, imagecolorallocate($im, 100, 255, 100));
imagefilledellipse($im, 50, 50, 50, 80, imagecolorallocate($im, 100, 100, 255));
imagefilledellipse($im, 50, 50, 80, 50, imagecolorallocate($im, 255, 100, 100));

// Вывод
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagelayereffect()

Примечания

До PHP 5.5.0, эта функция доступна только если PHP собирался со встроенной версией библиотеки GD.


Рисование линии

  • « imagelayereffect
  • imageloadfont »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование линии

imageline

(PHP 4, PHP 5, PHP 7)

imageline — Рисование линии

Описание

bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

Рисует линию соединяющую две точки.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

x-координата первой точки.

y1

y-координата первой точки.

x2

x-координата второй точки.

y2

y-координата второй точки.

color

Цвет линии. Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Рисование жирной линии

<?php

function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{
    /* этот способ применим только для ортогональных прямых
    imagesetthickness($image, $thick);
    return imageline($image, $x1, $y1, $x2, $y2, $color);
    */
    if ($thick == 1) {
        return imageline($image, $x1, $y1, $x2, $y2, $color);
    }
    $t = $thick / 2 - 0.5;
    if ($x1 == $x2 || $y1 == $y2) {
        return imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
    }
    $k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
    $a = $t / sqrt(1 + pow($k, 2));
    $points = array(
        round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
        round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
        round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
        round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
    );
    imagefilledpolygon($image, $points, 4, $color);
    return imagepolygon($image, $points, 4, $color);
}

?>

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • imagecolorallocate() - Создание цвета для изображения


Загрузка шрифта

  • « imageline
  • imageopenpolygon »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Загрузка шрифта

imageloadfont

(PHP 4, PHP 5, PHP 7)

imageloadfont — Загрузка шрифта

Описание

int imageloadfont ( string $file )

imageloadfont() загружает определенный пользователем шрифт и возвращает его идентификатор.

Список параметров

file

Формат файла шрифта двоичный и зависит от архитектуры системы. Это означает необходимость генерировать файл шрифта на том же процессоре, на котором работает PHP.

Формат файла шрифта
позиция байта | тип данных C | описание
байты 0-3 | int | количество символов в шрифте
байты 4-7 | int | значение первого символа в шрифте (часто 32 - пробел)
байты 8-11 | int | ширина пиксела каждого символа
байты 12-15 | int | высота пиксела каждого символа
байты 16- | char | массив с данными символов, один байт на пиксел в каждом символе. Для всех кол-во*высота*ширина байт.

Возвращаемые значения

Идентификатор шрифта, который всегда больше 5 для предотвращения конфликтов со встроенными шрифтами, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования imageloadfont()

<?php
// Создание нового изображения
$im = imagecreatetruecolor(50, 20);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Белый фон
imagefilledrectangle($im, 0, 0, 49, 19, $white);

// Загрузка gd шрифта и надпись 'Привет'
$font = imageloadfont('./04b.gdf');
imagestring($im, $font, 0, 0, 'Привет', $black);

// Вывод изображения
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Смотрите также

  • imagefontwidth() - Получение ширины шрифта
  • imagefontheight() - Получение высоты шрифта


Draws an open polygon

  • « imageloadfont
  • imagepalettecopy »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Draws an open polygon

imageopenpolygon

(PHP 7 >= 7.2.0)

imageopenpolygon — Draws an open polygon

Описание

bool imageopenpolygon ( resource $image , array $points , int $num_points , int $color )

imageopenpolygon() draws an open polygon on the given image. Contrary to imagepolygon(), no line is drawn between the last and the first point.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

points

An array containing the polygon's vertices, e.g.:

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Total number of points (vertices).

color

A color identifier created with imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imageopenpolygon() example

<?php
// Create a blank image
$image = imagecreatetruecolor(400, 300);

// Allocate a color for the polygon
$col_poly = imagecolorallocate($image, 255, 255, 255);

// Draw the polygon
imageopenpolygon($image, array(
        0,   0,
        100, 200,
        300, 200
    ),
    3,
    $col_poly);

// Output the picture to the browser
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

Результатом выполнения данного примера будет что-то подобное:

Output of example : imageopenpolygon()

Смотрите также

  • imagepolygon() - Рисование многоугольника


Копирование палитры из одного изображения в другое

  • « imageopenpolygon
  • imagepalettetotruecolor »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Копирование палитры из одного изображения в другое

imagepalettecopy

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagepalettecopy — Копирование палитры из одного изображения в другое

Описание

void imagepalettecopy ( resource $destination , resource $source )

imagepalettecopy() копирует палитру цветов из изображения source в изображение destination.

Список параметров

destination

Ресурс результирующего изображения.

source

Ресурс исходного изображения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования imagepalettecopy()

<?php
// Создание двух палитровых изображений
$palette1 = imagecreate(100, 100);
$palette2 = imagecreate(100, 100);

// Зеленый фон у первого изображения
$green = imagecolorallocate($palette1, 0, 255, 0);

// Копирование палитры из 1го во 2е изображение
imagepalettecopy($palette2, $palette1);

// Так как палитра скопирована с уже созданным зеленым цветом
// нет нужды использовать imagecolorallocate() дважды
imagefilledrectangle($palette2, 0, 0, 99, 99, $green);

// Вывод изображения в броузер
header('Content-type: image/png');

imagepng($palette2);
imagedestroy($palette1);
imagedestroy($palette2);
?>


Converts a palette based image to true color

  • « imagepalettecopy
  • imagepng »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Converts a palette based image to true color

imagepalettetotruecolor

(PHP 5 >= 5.5.0, PHP 7)

imagepalettetotruecolor — Converts a palette based image to true color

Описание

bool imagepalettetotruecolor ( resource $src )

Converts a palette based image, created by functions like imagecreate() to a true color image, like imagecreatetruecolor().

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Returns TRUE if the convertion was complete, or if the source image already is a true color image, otherwise FALSE is returned.

Примеры

Пример #1 Converts any image resource to true color

<?php
// Backwards compatiblity
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);
    }
}

// Helper closure
$typeof = function() use($im)
{
    echo 'typeof($im) = ' . (imageistruecolor($im) ? 'true color' : 'palette'), PHP_EOL;
};

// Create a palette based image
$im = imagecreate(100, 100);
$typeof();

// Convert it to true color
imagepalettetotruecolor($im);
$typeof();

// Free the memory
imagedestroy($im);
?>

Результат выполнения данного примера:

typeof($im) = palette
typeof($im) = true color

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • imageistruecolor() - Определяет, является ли изображение полноцветным


Вывод PNG изображения в браузер или файл

  • « imagepalettetotruecolor
  • imagepolygon »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Вывод PNG изображения в браузер или файл

imagepng

(PHP 4, PHP 5, PHP 7)

imagepng — Вывод PNG изображения в браузер или файл

Описание

bool imagepng ( resource $image [, mixed $to [, int $quality [, int $filters ]]] )

Выводит или сохраняет PNG изображение image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

Замечание:

Недопустимо передавать NULL, если не используются аргументы quality и filters.

quality

Степень сжатия: от 0 (нет сжатия) до 9.

filters

Позволяет уменьшить размер PNG файла. Это битовая маска, значением которой может быть комбинация констант PNG_FILTER_XXX. Для включения или выключения всех фильтров удобно воспользоваться константами PNG_NO_FILTER или PNG_ALL_FILTERS соответственно.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.4.0 | Добавлена возможность использовать поток типа resource для to.
5.1.3 | Добавлен аргумент filters.
5.1.2 | Добавлен аргумент quality.

Примеры

<?php
$im = imagecreatefrompng("test.png");

header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Смотрите также

  • imagegif() - Выводит изображение в браузер или пишет в файл
  • imagewbmp() - Выводит изображение в браузер или пишет в файл
  • imagejpeg() - Выводит изображение в браузер или пишет в файл
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой
  • imagesavealpha() - Установка флага сохранения всей информации альфа компонента (в противовес одноцветной прозрачности) и сохранение PNG изображения


Рисование многоугольника

  • « imagepng
  • imagepsbbox »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование многоугольника

imagepolygon

(PHP 4, PHP 5, PHP 7)

imagepolygon — Рисование многоугольника

Описание

bool imagepolygon ( resource $image , array $points , int $num_points , int $color )

imagepolygon() создает многоугольник в изображении image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

points

Массив вершин многоугольника:

points[0] | = x0
points[1] | = y0
points[2] | = x1
points[3] | = y1

num_points

Общее число точек (вершин).

color

Идентификатор цвета созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagepolygon()

<?php
// Создание пустого изображения
$image = imagecreatetruecolor(400, 300);

// Создание цвета полигона
$col_poly = imagecolorallocate($image, 255, 255, 255);

// Рисование многоугольника
imagepolygon($image, array(
        0,   0,
        100, 200,
        300, 200
    ),
    3,
    $col_poly);

// Вывод картинки в броузер
header('Content-type: image/png');

imagepng($image);
imagedestroy($image);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagepolygon()

Смотрите также

  • imagefilledpolygon() - Рисование закрашенного многоугольника
  • imageopenpolygon() - Draws an open polygon
  • imagecreate() - Создание нового палитрового изображения
  • imagecreatetruecolor() - Создание нового полноцветного изображения


Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1

  • « imagepolygon
  • imagepsencodefont »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1

imagepsbbox

(PHP 4, PHP 5)

imagepsbbox — Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

array imagepsbbox ( string $text , resource $font , int $size )
array imagepsbbox ( string $text , resource $font , int $size , int $space , int $tightness , float $angle )

Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1.

Параметры рамки рассчитываются на основе метрики символов и в общем случае могут не совпадать с реальным размером текста после его прорисовки на изображении. Если угол составляет 0 градусов, текст может занимать на 1 пиксел больше в каждом направлении.

Список параметров

text

Текст, который должен быть записан.

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

size

size задается в пикселах.

space

Позволяет изменять размер пробела в шрифте. Значение аргумента добавляется к значению по умолчанию для шрифта и может быть отрицательным. Значение задается в условных единицах, одна единица соответствует 1/1000 ширины буквы m этого шрифта.

tightness

tightness позволяет регулировать расстояние между символами. Значение аргумента добавляется к значению по умолчанию для шрифта и может быть отрицательным. Значение задается в условных единицах, одна единица соответствует 1/1000 ширины буквы m этого шрифта.

angle

angle задается в градусах.

Возвращаемые значения

Возвращает массив со следующими элементами:

0 | левая x-координата
1 | верхняя y-координата
2 | правая x-координата
3 | нижняя y-координата

Примеры

Пример #1 Пример использования imagepsbbox()

<?php
// Создание изображения
$im = imagecreatetruecolor(200, 200);

// Выделение цветов
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Загрузка шрифта PostScript
$font = imagepsloadfont('font.pfm');

// Создание рамки
$bbox = imagepsbbox('Простой пример текста', $font, 12);

// Определим X и Y координаты
$x = ($bbox[2] / 2) - 10;
$y = ($bbox[3] / 2) - 10;

// Запишем текст на изображение
imagepstext($im, 'Простой пример текста', $font, 12, $black, $white, $x, $y);

// Вывод и освобождение памяти
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .

Смотрите также

  • imagepstext() - Рисование текста поверх изображения, используя шрифты PostScript Type1


Изменение вектора кодировки шрифта

  • « imagepsbbox
  • imagepsextendfont »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Изменение вектора кодировки шрифта

imagepsencodefont

(PHP 4, PHP 5)

imagepsencodefont — Изменение вектора кодировки шрифта

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

bool imagepsencodefont ( resource $font_index , string $encodingfile )

Загружает вектор кодировки из файла и подменяет им текущий вектор шрифта. Так как вектор по умолчанию шрифтов PostScript не знает о символах после 127го, функция может оказаться полезной, когда используется язык отличный от английского.

Если вы заметили, что пользуетесь этой функцией довольно часто, лучшей альтернативой будет задать кодировку в настройке ps.default_encoding файла конфигурации. В этом случае все загружаемые шрифты будут иметь нужную кодировку автоматически.

Список параметров

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

encodingfile

Формат этого файла описан в документации к T1lib библиотеке. Эта библиотека представлена двумя файлами: IsoLatin1.enc и IsoLatin2.enc.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagepsencodefont()

<?php
// Загрузка файла шрифта .pfb
$font = imagepsloadfont('./px3l.pfb');

// Скажем T1lib использовать ISO Latin 1 кодировку
imagepsencode($font, './IsoLatin1.enc');

// тут могут быть какие-либо операции с шрифтом

// Освобождение памяти
imagepsfreefont($font);
?>

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .


Растягивание или сжатие шрифта

  • « imagepsencodefont
  • imagepsfreefont »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Растягивание или сжатие шрифта

imagepsextendfont

(PHP 4, PHP 5)

imagepsextendfont — Растягивание или сжатие шрифта

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

bool imagepsextendfont ( resource $font_index , float $extend )

Растягивает или сжимает шрифт (font_index), если значение extend меньше текущего.

Список параметров

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

extend

Значение растяжения, должно быть больше 0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagepsextendfont()

<?php
// загрузка файла шрифта .pfb
$font = imagepsloadfont('./px3l.pfb');

// Растягивание на 2.5
imagepsextendfont($font, 2.5);

// Тут могут быть какие-либо операции со шрифтом

// Освобождение памяти
imagepsfreefont($font);
?>

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .


Освобождение памяти, занятой шрифтом PostScript Type

  • « imagepsextendfont
  • imagepsloadfont »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Освобождение памяти, занятой шрифтом PostScript Type

imagepsfreefont

(PHP 4, PHP 5)

imagepsfreefont — Освобождение памяти, занятой шрифтом PostScript Type

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

bool imagepsfreefont ( resource $font_index )

imagepsfreefont() освобождает память, которая была выделена для PostScript Type 1 шрифта.

Список параметров

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagepsfreefont()

<?php
// Загрузка файла шрифта .pfb
$font = imagepsloadfont('./bchbi.pfb');

// Тут могут быть какие-либо операции со шрифтом

// Освобождение памяти
imagepsfreefont($font);
?>

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .

Смотрите также

  • imagepsloadfont() - Загрузка шрифта PostScript Type 1 из файла


Загрузка шрифта PostScript Type 1 из файла

  • « imagepsfreefont
  • imagepsslantfont »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Загрузка шрифта PostScript Type 1 из файла

imagepsloadfont

(PHP 4, PHP 5)

imagepsloadfont — Загрузка шрифта PostScript Type 1 из файла

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

resource imagepsloadfont ( string $filename )

Загружает шрифт PostScript Type 1 из файла filename.

Список параметров

filename

Путь к файлу шрифта Postscript.

Возвращаемые значения

Если все в порядке, будет возвращен индекс шрифта для дальнейшего использования. В противном случае будет возвращено значение FALSE.

Примеры

Пример #1 Пример использования imagepsloadfont()

<?php
// Создание изображения
$im = imagecreatetruecolor(350, 45);

// Создание цвета и закрашивание фона
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 349, 44, $white);

// Загрузка шрифта, запись текста на изображении, очистка памяти
$font = imagepsloadfont("bchbi.pfb");
imagepstext($im, "Тест... Работает!", $font, 32, $white, $black, 32, 32);
imagepsfreefont($font);

// Вывод изображения
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .

Смотрите также

  • imagepsfreefont() - Освобождение памяти, занятой шрифтом PostScript Type


Наклон шрифта

  • « imagepsloadfont
  • imagepstext »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Наклон шрифта

imagepsslantfont

(PHP 4, PHP 5)

imagepsslantfont — Наклон шрифта

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Описание

bool imagepsslantfont ( resource $font_index , float $slant )

Делает курсивным заданный шрифт.

Список параметров

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

slant

Уровень наклона.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagepsslantfont()

<?php
// Загрузка файла шрифта .pfb
$font = imagepsloadfont('./px3l.pfb');

// Наклон шрифта 22.5
imagepsslantfont($font, 22.5);

// Тут могут быть какие-либо операции со шрифтом

// Освобождение памяти
imagepsfreefont($font);
?>

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .


Рисование текста поверх изображения, используя шрифты PostScript Type1

  • « imagepsslantfont
  • imagerectangle »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование текста поверх изображения, используя шрифты PostScript Type1

imagepstext

(PHP 4, PHP 5)

imagepstext — Рисование текста поверх изображения, используя шрифты PostScript Type1

Описание

array imagepstext ( resource $image , string $text , resource $font_index , int $size , int $foreground , int $background , int $x , int $y [, int $space = 0 [, int $tightness = 0 [, float $angle = 0.0 [, int $antialias_steps = 4 ]]]] )

Рисует текст поверх изображения, используя шрифты PostScript Type1.

Внимание

Эта функция УДАЛЕНА в PHP 7.0.0.

Если вы не можете разобраться, как это работает, обратитесь к документации к PostScript.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

text

Текст.

font_index

Ресурс шрифта, возвращаемый функцией imagepsloadfont().

size

size задается в пикселах.

foreground

Цвет текста.

background

Цвет, который будет использоваться при сглаживании шрифта. Пикселы цвета background не окрашиваются. Поэтому изображение под текстом не обязано быть однородным.

x

x-координата левого нижнего угла первого символа.

y

y-координата левого нижнего угла первого символа.

space

Позволяет изменять размер пробела в шрифте. Значение аргумента добавляется к значению по умолчанию для шрифта и может быть отрицательным. Значение задается в условных единицах, одна единица соответствует 1/1000 ширины буквы m этого шрифта.

tightness

tightness позволяет регулировать расстояние между символами. Значение аргумента добавляется к значению по умолчанию для шрифта и может быть отрицательным. Значение задается в условных единицах, одна единица соответствует 1/1000 ширины буквы m этого шрифта.

angle

angle задается в градусах.

antialias_steps

Позволяет регулировать число цветов, используемых при сглаживании. Возможные значения 4 и 16. Большее значение рекомендуется для размеров шрифтов меньше 20, так как в этом случае неровности лучше видно. Для больших размеров используйте 4, это требует меньше вычислений.

Возвращаемые значения

Функция возвращает массив со следующими элементами:

0 | левая нижняя x-координата
1 | левая нижняя y-координата
2 | верхняя правая x-координата
3 | верхняя правая y-координата

Примеры

Пример #1 Пример использования imagepstext()

<?php
// Создание изображения
$im = imagecreatetruecolor(200, 200);

// Создание цветов
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// загрузка шрифта PostScript
$font = imagepsloadfont('font.pfm');

// Запись текста
imagepstext($im, 'Простой пример текста', $font, 12, $black, $white, 50, 50);

// Вывод и освобождение памяти
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Список изменений

Версия | Описание
7.0.0 | Поддержка T1Lib удалена из PHP и эта функция, соответственно, тоже.

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомпилирован с опцией --with-t1lib[=DIR] .

Смотрите также

  • imagepsbbox() - Выдает параметры рамки, обрамляющей текст написанный шрифтом PostScript Type1


Рисование прямоугольника

  • « imagepstext
  • imageresolution »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование прямоугольника

imagerectangle

(PHP 4, PHP 5, PHP 7)

imagerectangle — Рисование прямоугольника

Описание

bool imagerectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

imagerectangle() рисует прямоугольник с заданными координатами углов.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

Верхняя левая x координата.

y1

Верхняя левая y координата 0, 0 - левый верхний угол изображения.

x2

Нижняя правая x координата.

y2

Нижняя правая y координата.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagerectangle()

<?php
// Создание изображения 200 x 200
$canvas = imagecreatetruecolor(200, 200);

// Создание цветов
$pink = imagecolorallocate($canvas, 255, 105, 180);
$white = imagecolorallocate($canvas, 255, 255, 255);
$green = imagecolorallocate($canvas, 132, 135, 28);

// Рисование разноцветных прямоугольников
imagerectangle($canvas, 50, 50, 150, 150, $pink);
imagerectangle($canvas, 45, 60, 120, 100, $white);
imagerectangle($canvas, 100, 120, 75, 160, $green);

// Вывод и освобождение памяти
header('Content-Type: image/jpeg');

imagejpeg($canvas);
imagedestroy($canvas);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagerectangle()


Get or set the resolution of the image

  • « imagerectangle
  • imagerotate »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Get or set the resolution of the image

imageresolution

(PHP 7 >= 7.2.0)

imageresolution — Get or set the resolution of the image

Описание

mixed imageresolution ( resource $image [, int $res_x [, int $res_y ]] )

imageresolution() allows to set and get the resolution of an image in DPI (dots per inch). If none of the optional parameters is given, the current resolution is returned as indexed array. If only res_x is given, the horizontal and vertical resolution are set to this value. If both optional parameters are given, the horizontal and vertical resolution are set to these values, respectively.

The resolution is only used as meta information when images are read from and written to formats supporting this kind of information (curently PNG and JPEG). It does not affect any drawing operations. The default resolution for new images is 96 DPI.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

res_x

The horizontal resolution in DPI.

res_y

The vertical resolution in DPI.

Возвращаемые значения

When used as getter (that is without the optional parameters), it returns TRUE on success, или FALSE в случае возникновения ошибки. When used as setter (that is with one or both optional parameters given), it returns an indexed array of the horizontal and vertical resolution on success, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Setting and getting the resolution of an image

<?php
$im = imagecreatetruecolor(100, 100);
imageresolution($im, 200);
print_r(imageresolution($im));
imageresolution($im, 300, 72);
print_r(imageresolution($im));
?>

Результат выполнения данного примера:

Array
(
    [0] => 200
    [1] => 200
)
Array
(
    [0] => 300
    [1] => 72
)


Поворот изображения с заданным углом

  • « imageresolution
  • imagesavealpha »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Поворот изображения с заданным углом

imagerotate

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imagerotate — Поворот изображения с заданным углом

Описание

resource imagerotate ( resource $image , float $angle , int $bgd_color [, int $ignore_transparent = 0 ] )

Поворот изображения image на заданный угол angle в градусах.

Центром поворота является центр изображения. Поворачиваемое изображение может отличаться размером от оригинала.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

angle

Угол поворота в градусах против часовой стрелки.

bgd_color

Цвет фона свободной зоны после поворота.

ignore_transparent

Если установлено и не равно нулю, прозрачность игнорируются (иначе сохраняется).

Возвращаемые значения

Возвращает ресурс повёрнутого изображения в случае успеха, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | Параметр ignore_transparent игнорируется без предупреждений.
5.5.0 | Эта функция теперь меняет свое поведение при изменении метода интерполяции функцией imagesetinterpolation().
5.1.0 | Добавлен параметр ignore_transparent.

Примеры

Пример #1 Поворот изображения на 180 градусов

Этот пример поворачивает изображения на 180 градусов - верхом вниз.

<?php
// Файл и угол поворота
$filename = 'test.jpg';
$degrees = 180;

// Тип содержимого
header('Content-type: image/jpeg');

// Загрузка изображения
$source = imagecreatefromjpeg($filename);

// Поворот
$rotate = imagerotate($source, $degrees, 0);

// Вывод
imagejpeg($rotate);

// Высвобождение памяти
imagedestroy($source);
imagedestroy($rotate);
?>

Результатом выполнения данного примера будет что-то подобное:

Пример выведет изображение повёрнутое на 180 градусов

Примечания

Замечание:

Данная функция подвержена влиянию метода интерполяции, установленным функцией imagesetinterpolation().

Смотрите также

  • imagesetinterpolation() - Set the interpolation method


Установка флага сохранения всей информации альфа компонента (в противовес одноцветной прозрачности) и сохранение PNG изображения

  • « imagerotate
  • imagescale »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Установка флага сохранения всей информации альфа компонента (в противовес одноцветной прозрачности) и сохранение PNG изображения

imagesavealpha

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

imagesavealpha — Установка флага сохранения всей информации альфа компонента (в противовес одноцветной прозрачности) и сохранение PNG изображения

Описание

bool imagesavealpha ( resource $image , bool $saveflag )

imagesavealpha() устанавливает флаг сохранять всю информацию альфа компонента (в противовес одноцветной прозрачности) и сохраняет PNG изображение

Для использования функции необходимо отключить альфа сопряжение (imagealphablending($im, false)).

Альфа компонент поддерживается не всеми броузерами. Если есть проблемы с отображением в вашем броузере, попробуйте загрузить скрипт в совместимом с этой возможностью обозревателе, например в Mozilla последней версии.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

saveflag

Требуется ли сохранять альфа канал или нет. По умолчанию FALSE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagesavealpha()

<?php
// Загрузка png изображения с альфа компонентами
$png = imagecreatefrompng('./alphachannel_example.png');

// какие-то операции

// Выключение альфа сопряжения и установка альфа флага
imagealphablending($png, false);
imagesavealpha($png, true);

// Вывод изображения и очистка памяти
header('Content-Type: image/png');

imagepng($png);
imagedestroy($png);
?>

Смотрите также

  • imagealphablending() - Задание режима сопряжения цветов для изображения


Scale an image using the given new width and height

  • « imagesavealpha
  • imagesetbrush »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Scale an image using the given new width and height

imagescale

(PHP 5 >= 5.5.0, PHP 7)

imagescale — Scale an image using the given new width and height

Описание

resource imagescale ( resource $image , int $new_width [, int $new_height = -1 [, int $mode = IMG_BILINEAR_FIXED ]] )

imagescale() scales an image using the given interpolation algorithm.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

new_width

The width to scale the image to.

new_height

The height to scale the image to. If omitted or negative, the aspect ratio will be preserved.

Предостережение

You should always provide the height if using PHP 5.5.18 or earlier, or PHP 5.6.2 or earlier, as the aspect ratio calculation was incorrect.

mode

One of IMG_NEAREST_NEIGHBOUR, IMG_BILINEAR_FIXED, IMG_BICUBIC, IMG_BICUBIC_FIXED or anything else (will use two pass).

Замечание: IMG_WEIGHTED4 is not yet supported.

Возвращаемые значения

Return the scaled image resource on success или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.19/5.6.3 | The calculation of the height if new_height was negative or omitted was fixed; prior to these versions, the aspect ratio was not maintained correctly.


Установка изображения (кисти), посредством которого будут рисоваться линии

  • « imagescale
  • imagesetclip »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Установка изображения (кисти), посредством которого будут рисоваться линии

imagesetbrush

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesetbrush — Установка изображения (кисти), посредством которого будут рисоваться линии

Описание

bool imagesetbrush ( resource $image , resource $brush )

imagesetbrush() задает изображение, которое будет использоваться функциями для рисования линий (такими как imageline() и imagepolygon()) при использовании цветов IMG_COLOR_BRUSHED или IMG_COLOR_STYLEDBRUSHED.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

brush

Ресурс изображения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagesetbrush()

<?php
// Загрузка минилоготипа php
$php = imagecreatefrompng('./php.png');

// Создание основного изображения 100x100
$im = imagecreatetruecolor(100, 100);

// Заливка фона белым цветом
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 299, 99, $white);

// Установка кисти
imagesetbrush($im, $php);

// Рисование линии из изображений кисти
imageline($im, 50, 50, 50, 60, IMG_COLOR_BRUSHED);

// Вывод и очистка памяти
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($php);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagesetbrush()

Примечания

Замечание:

Дополнительных действий после завершения работы с кистью не требуется, однако если изображение кисти уничтожено, нельзя пользоваться цветами IMG_COLOR_BRUSHED или IMG_COLOR_STYLEDBRUSHED, пока не будет установлено новое изображение кисти!


Set the clipping rectangle

  • « imagesetbrush
  • imagesetinterpolation »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Set the clipping rectangle

imagesetclip

(PHP 7.2)

imagesetclip — Set the clipping rectangle

Описание

bool imagesetclip ( resource $im , int $x1 , int $y1 , int $x2 , int $y2 )

imagesetclip() sets the current clipping rectangle, i.e. the area beyond which no pixels will be drawn.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

The x-coordinate of the upper left corner.

y1

The y-coordinate of the upper left corner.

x2

The x-coordinate of the lower right corner.

y2

The y-coordinate of the lower right corner.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imagegetclip() - Get the clipping rectangle


Set the interpolation method

  • « imagesetclip
  • imagesetpixel »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Set the interpolation method

imagesetinterpolation

(PHP 5 >= 5.5.0, PHP 7)

imagesetinterpolation — Set the interpolation method

Описание

bool imagesetinterpolation ( resource $image [, int $method = IMG_BILINEAR_FIXED ] )

Sets the interpolation method, setting an interpolation method affects the rendering of various functions in GD, such as the imagerotate() function.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

method

The interpolation method, which can be one of the following:

  • IMG_BELL: Bell filter.
  • IMG_BESSEL: Bessel filter.
  • IMG_BICUBIC: Bicubic interpolation.
  • IMG_BICUBIC_FIXED: Fixed point implementation of the bicubic interpolation.
  • IMG_BILINEAR_FIXED: Fixed point implementation of the bilinear interpolation (default (also on image creation)).
  • IMG_BLACKMAN: Blackman window function.
  • IMG_BOX: Box blur filter.
  • IMG_BSPLINE: Spline interpolation.
  • IMG_CATMULLROM: Cubic Hermite spline interpolation.
  • IMG_GAUSSIAN: Gaussian function.
  • IMG_GENERALIZED_CUBIC: Generalized cubic spline fractal interpolation.
  • IMG_HERMITE: Hermite interpolation.
  • IMG_HAMMING: Hamming filter.
  • IMG_HANNING: Hanning filter.
  • IMG_MITCHELL: Mitchell filter.
  • IMG_POWER: Power interpolation.
  • IMG_QUADRATIC: Inverse quadratic interpolation.
  • IMG_SINC: Sinc function.
  • IMG_NEAREST_NEIGHBOUR: Nearest neighbour interpolation.
  • IMG_WEIGHTED4: Weighting filter.
  • IMG_TRIANGLE: Triangle interpolation.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imagesetinterpolation() example

<?php
// Load an image
$im = imagecreate(500, 500);

// By default interpolation is IMG_BILINEAR_FIXED, switch
// to use the 'Mitchell' filter:
imagesetinterpolation($im, IMG_MITCHELL);

// Continue to work with $im ...
?>

Примечания

Changing the interpolation method affects the following functions when rendering:

  • imageaffine()
  • imagerotate()


Рисование точки

  • « imagesetinterpolation
  • imagesetstyle »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование точки

imagesetpixel

(PHP 4, PHP 5, PHP 7)

imagesetpixel — Рисование точки

Описание

bool imagesetpixel ( resource $image , int $x , int $y , int $color )

imagesetpixel() рисует точку (пиксел) на заданных координатах.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

x

x-координата.

y

y-координата.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagesetpixel()

Рисование "случайных" точек, дающее в результате фрактальное изображение.

<?php

$x = 200;
$y = 200;

$gd = imagecreatetruecolor($x, $y);

$corners[0] = array('x' => 100, 'y' =>  10);
$corners[1] = array('x' =>   0, 'y' => 190);
$corners[2] = array('x' => 200, 'y' => 190);

$red = imagecolorallocate($gd, 255, 0, 0);

for ($i = 0; $i < 100000; $i++) {
  imagesetpixel($gd, round($x),round($y), $red);
  $a = rand(0, 2);
  $x = ($x + $corners[$a]['x']) / 2;
  $y = ($y + $corners[$a]['y']) / 2;
}

header('Content-Type: image/png');
imagepng($gd);

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagesetpixel()

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • imagecolorallocate() - Создание цвета для изображения
  • imagecolorat() - Получение индекса цвета пиксела


Установка стиля рисования линий

  • « imagesetpixel
  • imagesetthickness »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Установка стиля рисования линий

imagesetstyle

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesetstyle — Установка стиля рисования линий

Описание

bool imagesetstyle ( resource $image , array $style )

imagesetstyle() задает стиль, который будет использоваться функциями рисования линий (такими как imageline() и imagepolygon()) при задании специального цвета IMG_COLOR_STYLED или IMG_COLOR_STYLEDBRUSHED.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

style

Массив с цветами пикселов. Можно использовать константу IMG_COLOR_TRANSPARENT для добавления прозрачной точки. Обратите внимание, что style не должен быть пустым массивом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Следующий пример рисует пунктирную линию из левого верхнего угла изображения в правый нижний:

Пример #1 Пример использования imagesetstyle()

<?php
header("Content-type: image/jpeg");
$im  = imagecreatetruecolor(100, 100);
$w   = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);

/* Рисование пунктирной линии, 5 красных точек, 5 белых */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);

/* Рисование линии из смайликов, используя imagesetbrush() с imagesetstyle */
$style = array($w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $w, $red);
imagesetstyle($im, $style);

$brush = imagecreatefrompng("http://www.libpng.org/pub/png/images/smile.happy.png");
$w2 = imagecolorallocate($brush, 255, 255, 255);
imagecolortransparent($brush, $w2);
imagesetbrush($im, $brush);
imageline($im, 100, 0, 0, 100, IMG_COLOR_STYLEDBRUSHED);

imagejpeg($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagesetstyle()

Смотрите также

  • imagesetbrush() - Установка изображения (кисти), посредством которого будут рисоваться линии
  • imageline() - Рисование линии


Установка толщины линий

  • « imagesetstyle
  • imagesettile »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Установка толщины линий

imagesetthickness

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesetthickness — Установка толщины линий

Описание

bool imagesetthickness ( resource $image , int $thickness )

imagesetthickness() задает значение толщины линий для рисования отрезков, прямоугольников, многоугольников, эллипсов и т.п. в thickness пикселов.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

thickness

Толщина в пикселах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagesetthickness()

<?php
// Создание изображения 200x100
$im = imagecreatetruecolor(200, 100);
$white = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Установка белого фона
imagefilledrectangle($im, 0, 0, 299, 99, $white);

// Установка толщины линий 5 пикселов
imagesetthickness($im, 5);

// Рисование прямоугольника
imagerectangle($im, 14, 14, 185, 85, $black);

// Вывод изображения в броузер
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagesetthickness()


Установка изображения, которое будет использовано в качестве элемента мозаичной заливки

  • « imagesetthickness
  • imagestring »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Установка изображения, которое будет использовано в качестве элемента мозаичной заливки

imagesettile

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagesettile — Установка изображения, которое будет использовано в качестве элемента мозаичной заливки

Описание

bool imagesettile ( resource $image , resource $tile )

imagesettile() задает изображение, которое будет использовано в качестве элемента мозаичной заливки такими функциями, как imagefill() и imagefilledpolygon() при использовании специального цвета IMG_COLOR_TILED.

Это изображение используется для замощения области изображения его копиями. Может использовать любое GD изображение. А если задать прозрачный цвет для этого изображения функцией imagecolortransparent(), некоторые части нижележащего изображения будут просвечивать через созданную мозаику.

Замечание:

Дополнительных действий после завершения работы с мозаичным элементом не требуется, однако если это изображение будет удалено, нельзя использовать цвет IMG_COLOR_TILED до тех пор, пока не будет задано новое изображение!

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

tile

Ресурс изображения для использования в мозаике.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagesettile()

<?php
// Загрузка внешнего изображения
$zend = imagecreatefromgif('./zend.gif');

// Создание изображения 200x200
$im = imagecreatetruecolor(200, 200);

// Установка мозаичного элемента
imagesettile($im, $zend);

// Заливка
imagefilledrectangle($im, 0, 0, 199, 199, IMG_COLOR_TILED);

// Вывод картинки в броузер
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
imagedestroy($zend);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagesettile()


Рисование строки текста горизонтально

  • « imagesettile
  • imagestringup »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование строки текста горизонтально

imagestring

(PHP 4, PHP 5, PHP 7)

imagestring — Рисование строки текста горизонтально

Описание

bool imagestring ( resource $image , int $font , int $x , int $y , string $string , int $color )

Рисует текст string на заданных координатах.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

x

x-координата верхнего левого угла.

y

y-координата верхнего левого угла.

string

Строка текста.

color

Идентификатор цвета, создаваемый функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagestring()

<?php
// Создание изображения 100*30
$im = imagecreate(100, 30);

// Белый фон, синий текст
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// Надпись в левом верхнем углу
imagestring($im, 5, 0, 0, 'Hello world!', $textcolor);

// Вывод изображения
header('Content-type: image/png');

imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagestring()

Смотрите также

  • imageloadfont() - Загрузка шрифта
  • imagettftext() - Рисование текста на изображении шрифтом TrueType


Рисование строки текста вертикально

  • « imagestring
  • imagesx »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование строки текста вертикально

imagestringup

(PHP 4, PHP 5, PHP 7)

imagestringup — Рисование строки текста вертикально

Описание

bool imagestringup ( resource $image , int $font , int $x , int $y , string $string , int $color )

Рисует текст string вертикально на заданных координатах.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

font

Может принимать значения 1, 2, 3, 4, 5 для встроенных шрифтов в кодировке latin2 (более высокое число соответствует большему шрифту) или любому из ваших собственных идентификаторов шрифтов, зарегистрированных с помощью imageloadfont().

x

x-координата нижнего левого угла.

y

y-координата нижнего левого угла.

string

Текст надписи.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagestringup()

<?php
// Создание изображения 100*100
$im = imagecreatetruecolor(100, 100);

// Надпись
$textcolor = imagecolorallocate($im, 0xFF, 0xFF, 0xFF);
imagestringup($im, 3, 40, 80, 'gd library', $textcolor);

// Сохранение изображения
imagepng($im, './stringup.png');
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagestringup()

Смотрите также

  • imageloadfont() - Загрузка шрифта


Получение ширины изображения

  • « imagestringup
  • imagesy »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение ширины изображения

imagesx

(PHP 4, PHP 5, PHP 7)

imagesx — Получение ширины изображения

Описание

int imagesx ( resource $image )

Возвращает ширину заданного изображения image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает ширину изображения image или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования imagesx()

<?php

// создание изображения 300*200
$img = imagecreatetruecolor(300, 200);

echo imagesx($img); // 300

?>

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • getimagesize() - Получение размера изображения
  • imagesy() - Получение высоты изображения


Получение высоты изображения

  • « imagesx
  • imagetruecolortopalette »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение высоты изображения

imagesy

(PHP 4, PHP 5, PHP 7)

imagesy — Получение высоты изображения

Описание

int imagesy ( resource $image )

Возвращает высоту заданного изображения image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

Возвращает высоту изображения image или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования imagesy()

<?php

// Создание изображения 300*200
$img = imagecreatetruecolor(300, 200);

echo imagesy($img); // 200

?>

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • getimagesize() - Получение размера изображения
  • imagesx() - Получение ширины изображения


Преобразование полноцветного изображения в палитровое

  • « imagesy
  • imagettfbbox »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Преобразование полноцветного изображения в палитровое

imagetruecolortopalette

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

imagetruecolortopalette — Преобразование полноцветного изображения в палитровое

Описание

bool imagetruecolortopalette ( resource $image , bool $dither , int $ncolors )

imagetruecolortopalette() преобразует полноцветное изображение в палитровое. Код этой функции взят из кода библиотеки Независимой Группы JPEG. Код был модифицирован, чтобы сохранялось максимум информации об альфа компонентах цветов, а также передавались цвета в лучшем виде насколько это возможно. Но в итоге код работает не так хорошо, как хотелось бы. В связи с этим функцию можно использовать для вывода полноцветных изображений, она гарантирует самое высокое качество вывода. Но не более того.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

dither

Если задано TRUE, изображение будет сглаживаться. Сглаживание увеличивает шумность картинки, но в то же время обеспечивает лучшую передачу цветов.

ncolors

Задает максимальное количество цветов в палитре.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Преобразование truecolor-изображения в палитровое

<?php
// Создание полноцветного изображения
$im = imagecreatetruecolor(100, 100);

// Преобразование в палитровое (255 цветов) без сглаживания
imagetruecolortopalette($im, false, 255);

// Сохранение картинки
imagepng($im, './paletteimage.png');
imagedestroy($im);
?>


Получение параметров рамки обрамляющей текст написанный TrueType шрифтом

  • « imagetruecolortopalette
  • imagettftext »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Получение параметров рамки обрамляющей текст написанный TrueType шрифтом

imagettfbbox

(PHP 4, PHP 5, PHP 7)

imagettfbbox — Получение параметров рамки обрамляющей текст написанный TrueType шрифтом

Описание

array imagettfbbox ( float $size , float $angle , string $fontfile , string $text )

Эта функция рассчитывает и возвращает параметры рамки вокруг TrueType текста в пикселах.

Список параметров

size

Размер шрифта.

Замечание: В GD 1 измеряется в пикселах. В GD 2 измеряется в точках.

angle

Угол в градусах в котором будет измерен text.

fontfile

Имя файла TrueType шрифта (может быть URL). В зависимости от версии GD библиотеки функция может попытаться найти файл без '/' в начале путем добавления '.ttf' в конец имени файла. Поиск при этом будет производиться в директории, заданной в конфигурации библиотеки.

text

Измеряемая строка.

Возвращаемые значения

imagettfbbox() возвращает массив из 8 элементов представляющих координаты четырех точек - вершин рамки вокруг текста. В случае ошибки функция вернет FALSE.

ключ | содержимое
0 | нижний левый угол, X координата
1 | нижний левый угол, Y координата
2 | нижний правый угол, X координата
3 | нижний правый угол, Y координата
4 | верхний правый угол, X координата
5 | верхний правый угол, Y координата
6 | верхний левый угол, X координата
7 | верхний левый угол, Y координата

Точки рассчитаны относительно текста text и независимо от угла angle. То есть "верхний левый" означает верхний левый угол, если смотреть на текст горизонтально.

Примеры

Пример #1 Пример использования imagettfbbox()

<?php
// создание изображения 300x150
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);

// Белый фон
imagefilledrectangle($im, 0, 0, 299, 299, $white);

// Путь к файлу шрифта
$font = './arial.ttf';

// создаем рамку для текста
$bbox = imagettfbbox(10, 45, $font, 'Powered by PHP ' . phpversion());

// наши координаты X и Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Пишем текст
imagettftext($im, 10, 45, $x, $y, $black, $font, 'Powered by PHP ' . phpversion());

// создаем другую рамку для другого текста
$bbox = imagettfbbox(10, 45, $font, 'and Zend Engine ' . zend_version());

// задаем координаты так, чтобы текст шел сразу за первой надписью
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;

// Пишем вторую надпись
imagettftext($im, 10, 45, $x, $y, $black, $font, 'and Zend Engine ' . zend_version());

// Вывод в броузер
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомплирован с поддержкой freetype (--with-freetype-dir=DIR )

Смотрите также

  • imagettftext() - Рисование текста на изображении шрифтом TrueType
  • imageftbbox() - Определение границ текста выводимого шрифтом freetype2


Рисование текста на изображении шрифтом TrueType

  • « imagettfbbox
  • imagetypes »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Рисование текста на изображении шрифтом TrueType

imagettftext

(PHP 4, PHP 5, PHP 7)

imagettftext — Рисование текста на изображении шрифтом TrueType

Описание

array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )

Наносит текст text поверх изображения, используя TrueType шрифт.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

size

Размер шрифта. В зависимости от вашей версии GD, он должен быть указан либо в пикселах (GD1) либо в типографских пунктах (GD2).

angle

Угол в градусах, 0 градусов означает расположение текста слева направо. Положительные значения означают поворот текста против часовой стрелки. Например, текст повернутый на 90 градусов нужно будет читать снизу вверх.

x

Координаты x и y определяют отправную точку для первого символа текста (конкретно, левый нижний угол символа). Здесь есть отличие от функции imagestring(), в которой x и y определяют верхний левый угол первого символа. Например, "верхний левый" имеет координаты 0,0.

y

y-координата. Это позиция базовой линии шрифта, в общем случае она не совпадает с низшей точкой в символе.

color

Индекс цвета. Использование отрицательных индексов создает эффект выключенного сглаживания. См. imagecolorallocate().

fontfile

Путь к файлу TrueType шрифта.

В зависимости от версии GD библиотеки если fontfile не начинается с /, то в конец названия файла будет добавлено расширение .ttf, и библиотека будет пытаться найти этот файл по адресу, определенному в настройках библиотеки.

При использовании GD библиотеки версий младше 2.0.18 символ space (пробел), как и точка с запятой, использовался в качестве 'разделителя путей' для различных файлов шрифтов. При использовании этой возможности будет выдаваться предупреждение: Warning: Could not find/open font. Решением такой проблемы в этих версиях может быть только исключение пробелов из путей файлов.

В большинстве случаев размещение файлов шрифтов в директории скрипта решает подобные проблемы включения файлов.

<?php
// Задание переменной окружения для GD
putenv('GDFONTPATH=' . realpath('.'));

// Имя шрифта для использования (обратите внимание на отсутствие расширения .ttf)
$font = 'SomeFont';
?>

text

Текстовая строка в кодировке UTF-8.

Для доступа к символам после 127го можно использовать числовые ссылки (в формате: &#8364;). Также поддерживается шестнадцатеричный формат (&#xA9;). Строки в кодировке UTF-8 можно передавать напрямую.

Именованные сущности, вроде &copy;, не поддерживаются. Используйте функцию html_entity_decode(), чтобы декодировать их в UTF-8 строки.

Если символ не поддерживается шрифтом, вместо него будет нарисован незакрашенный прямоугольник.

Возвращаемые значения

Возвращает массив из 8 элементов, представляющих 4 точки - координаты углов рамки обрамляющей текст. Точки представлены в таком порядке: левый нижний угол, правый нижний, верхний правый, верхний левый. Углы указаны относительно текста, то есть "верхний левый" означает верхний левый угол текста, если расположить его горизонтально. В случае ошибки функция вернет FALSE.

Список изменений

Версия | Описание
5.2.0 | Стало возможным задавать код сущности в тексте text шестнадцатеричным числом.

Примеры

Пример #1 Пример использования imagettftext()

В этом примере будет создано изображение PNG с белым фоном размером 400x30 пикселов и надписью "Тест..." черным цветом (с серой тенью) шрифтом Arial.

<?php
// Тип содержимого
header('Content-Type: image/png');

// Создание изображения
$im = imagecreatetruecolor(400, 30);

// Создание цветов
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// Текст надписи
$text = 'Тест...';
// Замена пути к шрифту на пользовательский
$font = 'arial.ttf';

// Тень
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Текст
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

imagepng($im);
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagettftext()

Примечания

Замечание: Эта функция доступна только в случае, если PHP был скомплирован с поддержкой freetype (--with-freetype-dir=DIR )

Смотрите также

  • imagettfbbox() - Получение параметров рамки обрамляющей текст написанный TrueType шрифтом
  • imagefttext() - Нанесение текста на изображение, используя шрифты FreeType 2


Возвращает список типов изображений, поддерживаемых PHP сборкой

  • « imagettftext
  • imagewbmp »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Возвращает список типов изображений, поддерживаемых PHP сборкой

imagetypes

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

imagetypes — Возвращает список типов изображений, поддерживаемых PHP сборкой

Описание

int imagetypes ( void )

Возвращает типы поддерживаемых текущей сборкой PHP изображений.

Возвращаемые значения

Возвращает битовое поле соответствующее форматам изображений, которые поддерживаются текущей версией GD прилинкованной к PHP. Возвращаются следующие биты: IMG_GIF | IMG_JPG | IMG_PNG | IMG_WBMP | IMG_XPM | IMG_WEBP.

Примеры

Пример #1 Проверка поддержки PNG

<?php
if (imagetypes() & IMG_PNG) {
    echo "Поддержка PNG включена";
}
?>

Список изменений

Версия | Описание
5.6.25, 7.0.10 | Добавлена константа IMG_WEBP.

Смотрите также

  • gd_info() - Вывод информации о текущей установленной GD библиотеке


Выводит изображение в браузер или пишет в файл

  • « imagetypes
  • imagewebp »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Выводит изображение в браузер или пишет в файл

imagewbmp

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

imagewbmp — Выводит изображение в браузер или пишет в файл

Описание

bool imagewbmp ( resource $image [, mixed $to [, int $foreground ]] )

imagewbmp() выводит или сохраняет в формате WBMP заданное изображение image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

foreground

Можно задать цвет верхнего слоя. Цвет задается идентификатором созданным функцией imagecolorallocate(). По умолчанию цвет черный.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.4.0 | Добавлена возможность использовать поток типа resource для to.

Примеры

Пример #1 Вывод WBMP изображения

<?php
// создание пустого изображения и добавление текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая текстовая строка', $text_color);

// Тип содержимого, в данном случае image/vnd.wap.wbmp
// Подсказка: см. image_type_to_mime_type()
header('Content-Type: image/vnd.wap.wbmp');

// Вывод изображения
imagewbmp($im);

// Освобождение памяти
imagedestroy($im);
?>

Пример #2 Сохранение WBMP изображения

<?php
// создание пустого изображения и добавление текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая текстовая строка', $text_color);

// Сохранение изображения
imagewbmp($im, 'simpletext.wbmp');

// Освобождение памяти
imagedestroy($im);
?>

Пример #3 Вывод изображения с измененным верхним слоем

<?php
// создание пустого изображения и добавление текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая текстовая строка', $text_color);

// Тип содержимого, в данном случае image/vnd.wap.wbmp
// Подсказка: см. image_type_to_mime_type()
header('Content-Type: image/vnd.wap.wbmp');

// замена цвета
$foreground_color = imagecolorallocate($im, 255, 0, 0);

imagewbmp($im, NULL, $foreground_color);

// Очистка памяти
imagedestroy($im);
?>

Смотрите также

  • image2wbmp() - Выводит изображение в браузер или пишет в файл
  • imagepng() - Вывод PNG изображения в браузер или файл
  • imagegif() - Выводит изображение в браузер или пишет в файл
  • imagejpeg() - Выводит изображение в браузер или пишет в файл
  • imagetypes() - Возвращает список типов изображений, поддерживаемых PHP сборкой


Output a WebP image to browser or file

  • « imagewbmp
  • imagexbm »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Output a WebP image to browser or file

imagewebp

(PHP 5 >= 5.5.0, PHP 7)

imagewebp — Output a WebP image to browser or file

Описание

bool imagewebp ( resource $image , mixed $to [, int $quality = 80 ] )

Outputs or save an WebP version of the given image.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

to

Путь, или открытый потоковый ресурс (который автоматически закрывается после завершения функции), для сохранения файла. Если не установлен или равен NULL, изображение будет выведено в поток вывода в бинарном виде.

quality

quality ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.4.0 | Added support for passing a stream resource to to.

Примеры

Пример #1 Saving an WebP file

<?php
// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);

imagestring($im, 1, 5, 5,  'WebP with PHP', $text_color);

// Save the image
imagewebp($im, 'php.webp');

// Free up memory
imagedestroy($im);
?>


Вывод XBM изображения в браузер или файл

  • « imagewebp
  • iptcembed »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Вывод XBM изображения в браузер или файл

imagexbm

(PHP 5, PHP 7)

imagexbm — Вывод XBM изображения в браузер или файл

Описание

bool imagexbm ( resource $image , string $filename [, int $foreground ] )

Вывод или сохранение в формате XBM изображения image.

Замечание: imagexbm() не использует дополнение, так что ширина изображения должна быть кратна 8. Это ограничение не накладывается с версий PHP 5.6.24 и 7.0.9, соответственно.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

filename

Путь, по которому сохранять файл. Если не установлено, или равно NULL, будет произведен прямой вывод необработанного потока изображения.

filename (без расширения .xbm) также используется как идентификатор C XBM, при этом символы, не являющиеся в текущей локали цифрами или буквами, заменяются на подчеркивание. Если filename задан как NULL, image будет использован для создания идентификатора C.

foreground

Можно задать цвет верхнего слоя. Цвет задается идентификатором созданным функцией imagecolorallocate(). По умолчанию цвет черный. Все остальные цвета интерпритируются как цвета подложки (background).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Сохранение XBM файла

<?php
// Создание пустого изображения и добавление текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая текстовая строка', $text_color);

// Сохранение изображения
imagexbm($im, 'simpletext.xbm');

// Освобождение памяти
imagedestroy($im);
?>

Пример #2 Сохранение XBM файла с отличным цветом верхнего слоя

<?php
// Создание пустого изображения и добавление текста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'Простая текстовая строка', $text_color);

// Изменение цвета
$foreground_color = imagecolorallocate($im, 255, 0, 0);

// Сохранение изображения
imagexbm($im, NULL, $foreground_color);

// Освобождение памяти
imagedestroy($im);
?>

Примечания


Встраивание двоичных IPTC данных в JPEG изображение

  • « imagexbm
  • iptcparse »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Встраивание двоичных IPTC данных в JPEG изображение

iptcembed

(PHP 4, PHP 5, PHP 7)

iptcembed — Встраивание двоичных IPTC данных в JPEG изображение

Описание

mixed iptcembed ( string $iptcdata , string $jpeg_file_name [, int $spool = 0 ] )

Включает двоичные IPTC данные в JPEG изображение.

Список параметров

iptcdata

Данные.

jpeg_file_name

Путь к JPEG изображению.

spool

Если значение этого флага больше 2, то JPEG будет возвращен в виде строки. В противном случае, JPEG будет напечатан в STDOUT.

Возвращаемые значения

Если spool меньше 2, будет возвращен JPEG, или FALSE в случае возникновения ошибки. В противном случае TRUE в случае успеха или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Встраивание IPTC данных в JPEG

<?php

// iptc_make_tag() функция от Thies C. Arntzen
function iptc_make_tag($rec, $data, $value)
{
    $length = strlen($value);
    $retval = chr(0x1C) . chr($rec) . chr($data);

    if($length < 0x8000)
    {
        $retval .= chr($length >> 8) .  chr($length & 0xFF);
    }
    else
    {
        $retval .= chr(0x80) .
                   chr(0x04) .
                   chr(($length >> 24) & 0xFF) .
                   chr(($length >> 16) & 0xFF) .
                   chr(($length >> 8) & 0xFF) .
                   chr($length & 0xFF);
    }

    return $retval . $value;
}

// Путь к jpeg файлу
$path = './phplogo.jpg';

// установка IPTC тэгов
$iptc = array(
    '2#120' => 'Тестовое изображение',
    '2#116' => 'Copyright 2008-2009, The PHP Group'
);

// Преобразование IPTC тэгов в двоичный код
$data = '';

foreach($iptc as $tag => $string)
{
    $tag = substr($tag, 2);
    $data .= iptc_make_tag(2, $tag, $string);
}

// Встраивание IPTC данных
$content = iptcembed($data, $path);

// запись нового изображения в файл
$fp = fopen($path, "wb");
fwrite($fp, $content);
fclose($fp);
?>

Примечания

Замечание:

Этой функции не требуется библиотека GD.


Разбор двоичных IPTC данных на отдельные тэги

  • « iptcembed
  • jpeg2wbmp »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Разбор двоичных IPTC данных на отдельные тэги

iptcparse

(PHP 4, PHP 5, PHP 7)

iptcparse — Разбор двоичных IPTC данных на отдельные тэги

Описание

array iptcparse ( string $iptcblock )

Разбирает » IPTC данные на отдельные тэги.

Список параметров

iptcblock

Двоичные данные IPTC.

Возвращаемые значения

Возвращает массив значений тэгов, используя метки тэгов в качестве индекса. Возвращает FALSE в случае ошибки, а также если IPTC данные отсутствуют.

Примеры

Пример #1 iptcparse() используется совместно с getimagesize()

<?php
$size = getimagesize('./test.jpg', $info);
if(isset($info['APP13']))
{
    $iptc = iptcparse($info['APP13']);
    var_dump($iptc);
}
?>

Примечания

Замечание:

Этой функции не требуется библиотека GD.


Конвертирует изображение из формата JPEG в WBMP

  • « iptcparse
  • png2wbmp »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Конвертирует изображение из формата JPEG в WBMP

jpeg2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

jpeg2wbmp — Конвертирует изображение из формата JPEG в WBMP

Внимание

jpeg2wbmp() объявлена устаревшей в PHP 7.2.0 и будет удалена в PHP 8.0.0. Вместо нее используйте imagecreatefromjpeg() и imagewbmp().

Описание

bool jpeg2wbmp ( string $jpegname , string $wbmpname , int $dest_height , int $dest_width , int $threshold )

Конвертирует JPEG-файл в WBMP.

Список параметров

jpegname

Путь к JPEG-файлу.

wbmpname

Путь для размещения WBMP-файла.

dest_height

Высота WBMP-изображения.

dest_width

Ширина WBMP-изображения.

threshold

Пороговое значение, от 0 до 8 (включительно).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования jpeg2wbmp()

<?php
// Путь к исходному jpeg-изображению
$path = './test.jpg';

// Получаем размеры изображения
$image = getimagesize($path);

// Конвертируем изображение
jpeg2wbmp($path, './test.wbmp', $image[1], $image[0], 5);
?>

Смотрите также

  • png2wbmp() - Преобразование PNG файла в WBMP


Преобразование PNG файла в WBMP

  • « jpeg2wbmp
  • Gmagick »
  • PHP Manual
  • GD и функции для работы с изображениями Функции
  • Преобразование PNG файла в WBMP

png2wbmp

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

png2wbmp — Преобразование PNG файла в WBMP

Внимание

png2wbmp() объявлена устаревшей в PHP 7.2.0 и будет удалена в PHP 8.0.0. Вместо нее используйте imagecreatefrompng() и imagewbmp().

Описание

bool png2wbmp ( string $pngname , string $wbmpname , int $dest_height , int $dest_width , int $threshold )

Преобразует PNG файл в WBMP.

Список параметров

pngname

Путь к PNG файлу.

wbmpname

Путь к результирующему WBMP файлу.

dest_height

Высота результирующего изображения.

dest_width

Ширина результирующего изображения.

threshold

Ограничение, от 0 до 8 (включительно).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования png2wbmp()

<?php
// Путь к png
$path = './test.png';

// Получение размеров изображений
$image = getimagesize($path);

// Преобразование
png2wbmp($path, './test.wbmp', $image[1], $image[0], 7);
?>

Смотрите также

  • jpeg2wbmp() - Конвертирует изображение из формата JPEG в WBMP


Gmagick

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Примеры
  • Gmagick — The Gmagick class
    • Gmagick::addimage — Adds new image to Gmagick object image list
    • Gmagick::addnoiseimage — Adds random noise to the image
    • Gmagick::annotateimage — Annotates an image with text
    • Gmagick::blurimage — Adds blur filter to image
    • Gmagick::borderimage — Surrounds the image with a border
    • Gmagick::charcoalimage — Simulates a charcoal drawing
    • Gmagick::chopimage — Removes a region of an image and trims
    • Gmagick::clear — Clears all resources associated to Gmagick object
    • Gmagick::commentimage — Adds a comment to your image
    • Gmagick::compositeimage — Composite one image onto another
    • Gmagick::__construct — The Gmagick constructor
    • Gmagick::cropimage — Extracts a region of the image
    • Gmagick::cropthumbnailimage — Creates a crop thumbnail
    • Gmagick::current — The current purpose
    • Gmagick::cyclecolormapimage — Displaces an image's colormap
    • Gmagick::deconstructimages — Returns certain pixel differences between images
    • Gmagick::despeckleimage — The despeckleimage purpose
    • Gmagick::destroy — The destroy purpose
    • Gmagick::drawimage — Renders the GmagickDraw object on the current image
    • Gmagick::edgeimage — Enhance edges within the image
    • Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect
    • Gmagick::enhanceimage — Improves the quality of a noisy image
    • Gmagick::equalizeimage — Equalizes the image histogram
    • Gmagick::flipimage — Creates a vertical mirror image
    • Gmagick::flopimage — The flopimage purpose
    • Gmagick::frameimage — Adds a simulated three-dimensional border
    • Gmagick::gammaimage — Gamma-corrects an image
    • Gmagick::getcopyright — Returns the GraphicsMagick API copyright as a string
    • Gmagick::getfilename — The filename associated with an image sequence
    • Gmagick::getimagebackgroundcolor — Returns the image background color
    • Gmagick::getimageblueprimary — Returns the chromaticy blue primary point
    • Gmagick::getimagebordercolor — Returns the image border color
    • Gmagick::getimagechanneldepth — Gets the depth for a particular image channel
    • Gmagick::getimagecolors — Returns the color of the specified colormap index
    • Gmagick::getimagecolorspace — Gets the image colorspace
    • Gmagick::getimagecompose — Returns the composite operator associated with the image
    • Gmagick::getimagedelay — Gets the image delay
    • Gmagick::getimagedepth — Gets the depth of the image
    • Gmagick::getimagedispose — Gets the image disposal method
    • Gmagick::getimageextrema — Gets the extrema for the image
    • Gmagick::getimagefilename — Returns the filename of a particular image in a sequence
    • Gmagick::getimageformat — Returns the format of a particular image in a sequence
    • Gmagick::getimagegamma — Gets the image gamma
    • Gmagick::getimagegreenprimary — Returns the chromaticy green primary point
    • Gmagick::getimageheight — Returns the image height
    • Gmagick::getimagehistogram — Gets the image histogram
    • Gmagick::getimageindex — Gets the index of the current active image
    • Gmagick::getimageinterlacescheme — Gets the image interlace scheme
    • Gmagick::getimageiterations — Gets the image iterations
    • Gmagick::getimagematte — Check if the image has a matte channel
    • Gmagick::getimagemattecolor — Returns the image matte color
    • Gmagick::getimageprofile — Returns the named image profile.
    • Gmagick::getimageredprimary — Returns the chromaticity red primary point
    • Gmagick::getimagerenderingintent — Gets the image rendering intent
    • Gmagick::getimageresolution — Gets the image X and Y resolution
    • Gmagick::getimagescene — Gets the image scene
    • Gmagick::getimagesignature — Generates an SHA-256 message digest
    • Gmagick::getimagetype — Gets the potential image type.
    • Gmagick::getimageunits — Gets the image units of resolution
    • Gmagick::getimagewhitepoint — Returns the chromaticity white point
    • Gmagick::getimagewidth — Returns the width of the image
    • Gmagick::getpackagename — Returns the GraphicsMagick package name.
    • Gmagick::getquantumdepth — Returns the Gmagick quantum depth as a string.
    • Gmagick::getreleasedate — Returns the GraphicsMagick release date as a string.
    • Gmagick::getsamplingfactors — Gets the horizontal and vertical sampling factor.
    • Gmagick::getsize — Returns the size associated with the Gmagick object
    • Gmagick::getversion — Returns the GraphicsMagick API version
    • Gmagick::hasnextimage — Checks if the object has more images
    • Gmagick::haspreviousimage — Checks if the object has a previous image
    • Gmagick::implodeimage — Creates a new image as a copy
    • Gmagick::labelimage — Adds a label to an image.
    • Gmagick::levelimage — Adjusts the levels of an image
    • Gmagick::magnifyimage — Scales an image proportionally 2x
    • Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image.
    • Gmagick::medianfilterimage — Applies a digital filter
    • Gmagick::minifyimage — Scales an image proportionally to half its size
    • Gmagick::modulateimage — Control the brightness, saturation, and hue
    • Gmagick::motionblurimage — Simulates motion blur
    • Gmagick::newimage — Creates a new image
    • Gmagick::nextimage — Moves to the next image
    • Gmagick::normalizeimage — Enhances the contrast of a color image
    • Gmagick::oilpaintimage — Simulates an oil painting
    • Gmagick::previousimage — Move to the previous image in the object
    • Gmagick::profileimage — Adds or removes a profile from an image
    • Gmagick::quantizeimage — Analyzes the colors within a reference image
    • Gmagick::quantizeimages — The quantizeimages purpose
    • Gmagick::queryfontmetrics — Returns an array representing the font metrics
    • Gmagick::queryfonts — Returns the configured fonts
    • Gmagick::queryformats — Returns formats supported by Gmagick.
    • Gmagick::radialblurimage — Radial blurs an image
    • Gmagick::raiseimage — Creates a simulated 3d button-like effect
    • Gmagick::read — Reads image from filename
    • Gmagick::readimage — Reads image from filename
    • Gmagick::readimageblob — Reads image from a binary string
    • Gmagick::readimagefile — The readimagefile purpose
    • Gmagick::reducenoiseimage — Smooths the contours of an image
    • Gmagick::removeimage — Removes an image from the image list
    • Gmagick::removeimageprofile — Removes the named image profile and returns it
    • Gmagick::resampleimage — Resample image to desired resolution
    • Gmagick::resizeimage — Scales an image
    • Gmagick::rollimage — Offsets an image
    • Gmagick::rotateimage — Rotates an image
    • Gmagick::scaleimage — Scales the size of an image
    • Gmagick::separateimagechannel — Separates a channel from the image
    • Gmagick::setCompressionQuality — Sets the object's default compression quality
    • Gmagick::setfilename — Sets the filename before you read or write the image
    • Gmagick::setimagebackgroundcolor — Sets the image background color.
    • Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point.
    • Gmagick::setimagebordercolor — Sets the image border color.
    • Gmagick::setimagechanneldepth — Sets the depth of a particular image channel
    • Gmagick::setimagecolorspace — Sets the image colorspace
    • Gmagick::setimagecompose — Sets the image composite operator
    • Gmagick::setimagedelay — Sets the image delay
    • Gmagick::setimagedepth — Sets the image depth
    • Gmagick::setimagedispose — Sets the image disposal method
    • Gmagick::setimagefilename — Sets the filename of a particular image in a sequence
    • Gmagick::setimageformat — Sets the format of a particular image
    • Gmagick::setimagegamma — Sets the image gamma
    • Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point.
    • Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter
    • Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image.
    • Gmagick::setimageiterations — Sets the image iterations.
    • Gmagick::setimageprofile — Adds a named profile to the Gmagick object
    • Gmagick::setimageredprimary — Sets the image chromaticity red primary point.
    • Gmagick::setimagerenderingintent — Sets the image rendering intent
    • Gmagick::setimageresolution — Sets the image resolution
    • Gmagick::setimagescene — Sets the image scene
    • Gmagick::setimagetype — Sets the image type
    • Gmagick::setimageunits — Sets the image units of resolution.
    • Gmagick::setimagewhitepoint — Sets the image chromaticity white point.
    • Gmagick::setsamplingfactors — Sets the image sampling factors.
    • Gmagick::setsize — Sets the size of the Gmagick object
    • Gmagick::shearimage — Creating a parallelogram
    • Gmagick::solarizeimage — Applies a solarizing effect to the image
    • Gmagick::spreadimage — Randomly displaces each pixel in a block
    • Gmagick::stripimage — Strips an image of all profiles and comments
    • Gmagick::swirlimage — Swirls the pixels about the center of the image
    • Gmagick::thumbnailimage — Changes the size of an image
    • Gmagick::trimimage — Remove edges from the image
    • Gmagick::write — Псевдоним Gmagick::writeimage
    • Gmagick::writeimage — Writes an image to the specified filename
  • GmagickDraw — The GmagickDraw class
    • GmagickDraw::annotate — Draws text on the image
    • GmagickDraw::arc — Draws an arc
    • GmagickDraw::bezier — Draws a bezier curve
    • GmagickDraw::ellipse — Draws an ellipse on the image
    • GmagickDraw::getfillcolor — Returns the fill color
    • GmagickDraw::getfillopacity — Returns the opacity used when drawing
    • GmagickDraw::getfont — Returns the font
    • GmagickDraw::getfontsize — Returns the font pointsize
    • GmagickDraw::getfontstyle — Returns the font style
    • GmagickDraw::getfontweight — Returns the font weight
    • GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines
    • GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines
    • GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines
    • GmagickDraw::gettextdecoration — Returns the text decoration
    • GmagickDraw::gettextencoding — Returns the code set used for text annotations
    • GmagickDraw::line — The line purpose
    • GmagickDraw::point — Draws a point
    • GmagickDraw::polygon — Draws a polygon
    • GmagickDraw::polyline — Draws a polyline
    • GmagickDraw::rectangle — Draws a rectangle
    • GmagickDraw::rotate — Applies the specified rotation to the current coordinate space
    • GmagickDraw::roundrectangle — Draws a rounded rectangle
    • GmagickDraw::scale — Adjusts the scaling factor
    • GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects.
    • GmagickDraw::setfillopacity — The setfillopacity purpose
    • GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text.
    • GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text.
    • GmagickDraw::setfontstyle — Sets the font style to use when annotating with text
    • GmagickDraw::setfontweight — Sets the font weight
    • GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines.
    • GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines.
    • GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines.
    • GmagickDraw::settextdecoration — Specifies a decoration
    • GmagickDraw::settextencoding — Specifies the text code set
  • GmagickPixel — The GmagickPixel class
    • GmagickPixel::__construct — Конструктора класса GmagickPixel
    • GmagickPixel::getcolor — Возвращает цвет
    • GmagickPixel::getcolorcount — Returns the color count associated with this color
    • GmagickPixel::getcolorvalue — Gets the normalized value of the provided color channel
    • GmagickPixel::setcolor — Sets the color
    • GmagickPixel::setcolorvalue — Sets the normalized value of one of the channels


Введение

Gmagick - расширение php для создания, изменения и получения meta-данных изображений используя GraphicsMagick API.

GraphicsMagick - швейцарский армейский нож обработки изображений. Он работает более чем с 88 форматами, включая основные форматы, такие как DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM и TIFF.

Gmagick состоит из основного класса Gmagick, класса GmagickDraw, который, по сути, есть волшебная палочка рисования и класса GmagickPixel, экземпляры которого представляют собой один пиксель изображения (цвет, прозрачность).


Требования

This extension works best with GraphicsMagick version 1.4+ and PHP 5.1.3+. Gmagick should work with earlier versions up to GraphicsMagick 1.2.6 but some features and formats are not supported for these versions. Windows version of GraphicsMagick is available from the GraphicsMagick website. To read about the difference between ImageMagick and GraphicsMagick, check this out: » FAQ .


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/gmagick.

Замечание: The official name of this extension is gmagick.

For Windows, the build of the Gmagick extension is available » here


  • « Установка
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Настройка во время выполнения

Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Colortype constants
Gmagick::COLOR_BLACK (integer)
Black
Gmagick::COLOR_BLUE (integer)
Blue
Gmagick::COLOR_CYAN (integer)
Cyan
Gmagick::COLOR_GREEN (integer)
Green
Gmagick::COLOR_RED (integer)
Red
Gmagick::COLOR_YELLOW (integer)
Yellow
Gmagick::COLOR_MAGENTA (integer)
Magenta
Gmagick::COLOR_OPACITY (integer)
Opacity
Gmagick::COLOR_ALPHA (integer)
Alpha
Gmagick::COLOR_FUZZ (integer)
Fuzz
Composite Operator Constants
Gmagick::COMPOSITE_DEFAULT (integer)
The default composite operator
Gmagick::COMPOSITE_UNDEFINED (integer)
Undefined composite operator
Gmagick::COMPOSITE_NO (integer)
No composite operator defined
Gmagick::COMPOSITE_ADD (integer)
The result of image + image
Gmagick::COMPOSITE_ATOP (integer)
The result is the same shape as image, with composite image obscuring image where the image shapes overlap
Gmagick::COMPOSITE_BLEND (integer)
Blends the image
Gmagick::COMPOSITE_BUMPMAP (integer)
The same as COMPOSITE_MULTIPLY, except the source is converted to grayscale first.
Gmagick::COMPOSITE_CLEAR (integer)
Makes the target image transparent
Gmagick::COMPOSITE_COLORBURN (integer)
Darkens the destination image to reflect the source image
Gmagick::COMPOSITE_COLORDODGE (integer)
Brightens the destination image to reflect the source image
Gmagick::COMPOSITE_COLORIZE (integer)
Colorizes the target image using the composite image
Gmagick::COMPOSITE_COPYBLACK (integer)
Copies black from the source to target
Gmagick::COMPOSITE_COPYBLUE (integer)
Copies blue from the source to target
Gmagick::COMPOSITE_COPY (integer)
Copies the source image on the target image
Gmagick::COMPOSITE_COPYCYAN (integer)
Copies cyan from the source to target
Gmagick::COMPOSITE_COPYGREEN (integer)
Copies green from the source to target
Gmagick::COMPOSITE_COPYMAGENTA (integer)
Copies magenta from the source to target
Gmagick::COMPOSITE_COPYOPACITY (integer)
Copies opacity from the source to target
Gmagick::COMPOSITE_COPYRED (integer)
Copies red from the source to target
Gmagick::COMPOSITE_COPYYELLOW (integer)
Copies yellow from the source to target
Gmagick::COMPOSITE_DARKEN (integer)
Darkens the target image
Gmagick::COMPOSITE_DSTATOP (integer)
The part of the destination lying inside of the source is composited over the source and replaces the destination
Gmagick::COMPOSITE_DST (integer)
The target is left untouched
Gmagick::COMPOSITE_DSTIN (integer)
The parts inside the source replace the target
Gmagick::COMPOSITE_DSTOUT (integer)
The parts outside the source replace the target
Gmagick::COMPOSITE_DSTOVER (integer)
Target replaces the source
Gmagick::COMPOSITE_DIFFERENCE (integer)
Subtracts the darker of the two constituent colors from the lighter
Gmagick::COMPOSITE_DISPLACE (integer)
Shifts target image pixels as defined by the source
Gmagick::COMPOSITE_DISSOLVE (integer)
Dissolves the source in to the target
Gmagick::COMPOSITE_EXCLUSION (integer)
Produces an effect similar to that of Gmagick::COMPOSITE_DIFFERENCE, but appears as lower contrast
Gmagick::COMPOSITE_HARDLIGHT (integer)
Multiplies or screens the colors, dependent on the source color value
Gmagick::COMPOSITE_HUE (integer)
Modifies the hue of the target as defined by source
Gmagick::COMPOSITE_IN (integer)
Composites source into the target
Gmagick::COMPOSITE_LIGHTEN (integer)
Lightens the target as defined by source
Gmagick::COMPOSITE_LUMINIZE (integer)
Luminizes the target as defined by source
Gmagick::COMPOSITE_MINUS (integer)
Subtracts the source from the target
Gmagick::COMPOSITE_MODULATE (integer)
Modulates the target brightness, saturation and hue as defined by source
Gmagick::COMPOSITE_MULTIPLY (integer)
Multiplies the target to the source
Gmagick::COMPOSITE_OUT (integer)
Composites outer parts of the source on the target
Gmagick::COMPOSITE_OVER (integer)
Composites source over the target
Gmagick::COMPOSITE_OVERLAY (integer)
Overlays the source on the target
Gmagick::COMPOSITE_PLUS (integer)
Adds the source to the target
Gmagick::COMPOSITE_REPLACE (integer)
Replaces the target with the source
Gmagick::COMPOSITE_SATURATE (integer)
Saturates the target as defined by the source
Gmagick::COMPOSITE_SCREEN (integer)
The source and destination are complemented and then multiplied and then replace the destination
Gmagick::COMPOSITE_SOFTLIGHT (integer)
Darkens or lightens the colors, dependent on the source
Gmagick::COMPOSITE_SRCATOP (integer)
The part of the source lying inside of the destination is composited onto the destination
Gmagick::COMPOSITE_SRC (integer)
The source is copied to the destination
Gmagick::COMPOSITE_SRCIN (integer)
The part of the source lying inside of the destination replaces the destination
Gmagick::COMPOSITE_SRCOUT (integer)
The part of the source lying outside of the destination replaces the destination
Gmagick::COMPOSITE_SRCOVER (integer)
The source replaces the destination
Gmagick::COMPOSITE_SUBTRACT (integer)
Subtract the colors in the source image from the destination image
Gmagick::COMPOSITE_THRESHOLD (integer)
The source is composited on the target as defined by source threshold
Gmagick::COMPOSITE_XOR (integer)
The part of the source that lies outside of the destination is combined with the part of the destination that lies outside of the source
Montage Mode constants
Gmagick::MONTAGEMODE_FRAME (integer)
Gmagick::MONTAGEMODE_UNFRAME (integer)
Gmagick::MONTAGEMODE_CONCATENATE (integer)
Style constants
Gmagick::STYLE_NORMAL (integer)
Gmagick::STYLE_ITALIC (integer)
Gmagick::STYLE_OBLIQUE (integer)
Gmagick::STYLE_ANY (integer)
Filter constants
Gmagick::FILTER_UNDEFINED (integer)
Gmagick::FILTER_POINT (integer)
Gmagick::FILTER_BOX (integer)
Gmagick::FILTER_TRIANGLE (integer)
Gmagick::FILTER_HERMITE (integer)
Gmagick::FILTER_HANNING (integer)
Gmagick::FILTER_HAMMING (integer)
Gmagick::FILTER_BLACKMAN (integer)
Gmagick::FILTER_GAUSSIAN (integer)
Gmagick::FILTER_QUADRATIC (integer)
Gmagick::FILTER_CUBIC (integer)
Gmagick::FILTER_CATROM (integer)
Gmagick::FILTER_MITCHELL (integer)
Gmagick::FILTER_LANCZOS (integer)
Gmagick::FILTER_BESSEL (integer)
Gmagick::FILTER_SINC (integer)
Image type constants
Gmagick::IMGTYPE_UNDEFINED (integer)
Gmagick::IMGTYPE_BILEVEL (integer)
Gmagick::IMGTYPE_GRAYSCALE (integer)
Gmagick::IMGTYPE_GRAYSCALEMATTE (integer)
Gmagick::IMGTYPE_PALETTE (integer)
Gmagick::IMGTYPE_PALETTEMATTE (integer)
Gmagick::IMGTYPE_TRUECOLOR (integer)
Gmagick::IMGTYPE_TRUECOLORMATTE (integer)
Gmagick::IMGTYPE_COLORSEPARATION (integer)
Gmagick::IMGTYPE_COLORSEPARATIONMATTE (integer)
Gmagick::IMGTYPE_OPTIMIZE (integer)
Resolution constants
Gmagick::RESOLUTION_UNDEFINED (integer)
Gmagick::RESOLUTION_PIXELSPERINCH (integer)
Gmagick::RESOLUTION_PIXELSPERCENTIMETER (integer)
Compression constants
Gmagick::COMPRESSION_UNDEFINED (integer)
Gmagick::COMPRESSION_NO (integer)
Gmagick::COMPRESSION_BZIP (integer)
Gmagick::COMPRESSION_FAX (integer)
Gmagick::COMPRESSION_GROUP4 (integer)
Gmagick::COMPRESSION_JPEG (integer)
Gmagick::COMPRESSION_JPEG2000 (integer)
Gmagick::COMPRESSION_LOSSLESSJPEG (integer)
Gmagick::COMPRESSION_LZW (integer)
Gmagick::COMPRESSION_RLE (integer)
Gmagick::COMPRESSION_ZIP (integer)
Paint constants
Gmagick::PAINT_POINT (integer)
Gmagick::PAINT_REPLACE (integer)
Gmagick::PAINT_FLOODFILL (integer)
Gmagick::PAINT_FILLTOBORDER (integer)
Gmagick::PAINT_RESET (integer)
Gravity constants
Gmagick::GRAVITY_NORTHWEST (integer)
Gmagick::GRAVITY_NORTH (integer)
Gmagick::GRAVITY_NORTHEAST (integer)
Gmagick::GRAVITY_WEST (integer)
Gmagick::GRAVITY_CENTER (integer)
Gmagick::GRAVITY_EAST (integer)
Gmagick::GRAVITY_SOUTHWEST (integer)
Gmagick::GRAVITY_SOUTH (integer)
Gmagick::GRAVITY_SOUTHEAST (integer)
Stretch constants
Gmagick::STRETCH_NORMAL (integer)
Gmagick::STRETCH_ULTRACONDENSED (integer)
Gmagick::STRETCH_CONDENSED (integer)
Gmagick::STRETCH_SEMICONDENSED (integer)
Gmagick::STRETCH_SEMIEXPANDED (integer)
Gmagick::STRETCH_EXPANDED (integer)
Gmagick::STRETCH_EXTRAEXPANDED (integer)
Gmagick::STRETCH_ULTRAEXPANDED (integer)
Gmagick::STRETCH_ANY (integer)
Align constants
Gmagick::ALIGN_UNDEFINED (integer)
Gmagick::ALIGN_LEFT (integer)
Gmagick::ALIGN_CENTER (integer)
Gmagick::ALIGN_RIGHT (integer)
Decoration constants
Gmagick::DECORATION_NO (integer)
Gmagick::DECORATION_UNDERLINE (integer)
Gmagick::DECORATION_OVERLINE (integer)
Gmagick::DECORATION_LINETROUGH (integer)
Noise constants
Gmagick::NOISE_UNIFORM (integer)
Gmagick::NOISE_GAUSSIAN (integer)
Gmagick::NOISE_MULTIPLICATIVEGAUSSIAN (integer)
Gmagick::NOISE_IMPULSE (integer)
Gmagick::NOISE_LAPLACIAN (integer)
Gmagick::NOISE_POISSON (integer)
Channel constants
Gmagick::CHANNEL_UNDEFINED (integer)
Gmagick::CHANNEL_RED (integer)
Gmagick::CHANNEL_GRAY (integer)
Gmagick::CHANNEL_CYAN (integer)
Gmagick::CHANNEL_GREEN (integer)
Gmagick::CHANNEL_MAGENTA (integer)
Gmagick::CHANNEL_BLUE (integer)
Gmagick::CHANNEL_YELLOW (integer)
Gmagick::CHANNEL_ALPHA (integer)
Gmagick::CHANNEL_OPACITY (integer)
Gmagick::CHANNEL_MATTE (integer)
Gmagick::CHANNEL_BLACK (integer)
Gmagick::CHANNEL_INDEX (integer)
Gmagick::CHANNEL_ALL (integer)
Metric constants
Gmagick::METRIC_UNDEFINED (integer)
Gmagick::METRIC_MEANABSOLUTEERROR (integer)
Gmagick::METRIC_MEANSQUAREERROR (integer)
Gmagick::METRIC_PEAKABSOLUTEERROR (integer)
Gmagick::METRIC_PEAKSIGNALTONOISERATIO (integer)
Gmagick::METRIC_ROOTMEANSQUAREDERROR (integer)
Pixel constants
Gmagick::PIXEL_CHAR (integer)
Gmagick::PIXEL_DOUBLE (integer)
Gmagick::PIXEL_FLOAT (integer)
Gmagick::PIXEL_INTEGER (integer)
Gmagick::PIXEL_LONG (integer)
Gmagick::PIXEL_QUANTUM (integer)
Gmagick::PIXEL_SHORT (integer)
Colorspace constants
Gmagick::COLORSPACE_UNDEFINED (integer)
Gmagick::COLORSPACE_RGB (integer)
Gmagick::COLORSPACE_GRAY (integer)
Gmagick::COLORSPACE_TRANSPARENT (integer)
Gmagick::COLORSPACE_OHTA (integer)
Gmagick::COLORSPACE_LAB (integer)
Gmagick::COLORSPACE_XYZ (integer)
Gmagick::COLORSPACE_YCBCR (integer)
Gmagick::COLORSPACE_YCC (integer)
Gmagick::COLORSPACE_YIQ (integer)
Gmagick::COLORSPACE_YPBPR (integer)
Gmagick::COLORSPACE_YUV (integer)
Gmagick::COLORSPACE_CMYK (integer)
Gmagick::COLORSPACE_SRGB (integer)
Gmagick::COLORSPACE_HSB (integer)
Gmagick::COLORSPACE_HSL (integer)
Gmagick::COLORSPACE_HWB (integer)
Gmagick::COLORSPACE_REC601LUMA (integer)
Gmagick::COLORSPACE_REC709LUMA (integer)
Gmagick::COLORSPACE_LOG (integer)
Virtual Pixel Method constants
Gmagick::VIRTUALPIXELMETHOD_UNDEFINED (integer)
Gmagick::VIRTUALPIXELMETHOD_BACKGROUND (integer)
Gmagick::VIRTUALPIXELMETHOD_CONSTANT (integer)
Gmagick::VIRTUALPIXELMETHOD_EDGE (integer)
Gmagick::VIRTUALPIXELMETHOD_MIRROR (integer)
Gmagick::VIRTUALPIXELMETHOD_TILE (integer)
Gmagick::VIRTUALPIXELMETHOD_TRANSPARENT (integer)
Preview constants
Gmagick::PREVIEW_UNDEFINED (integer)
Gmagick::PREVIEW_ROTATE (integer)
Gmagick::PREVIEW_SHEAR (integer)
Gmagick::PREVIEW_ROLL (integer)
Gmagick::PREVIEW_HUE (integer)
Gmagick::PREVIEW_SATURATION (integer)
Gmagick::PREVIEW_BRIGHTNESS (integer)
Gmagick::PREVIEW_GAMMA (integer)
Gmagick::PREVIEW_SPIFF (integer)
Gmagick::PREVIEW_DULL (integer)
Gmagick::PREVIEW_GRAYSCALE (integer)
Gmagick::PREVIEW_QUANTIZE (integer)
Gmagick::PREVIEW_DESPECKLE (integer)
Gmagick::PREVIEW_REDUCENOISE (integer)
Gmagick::PREVIEW_ADDNOISE (integer)
Gmagick::PREVIEW_SHARPEN (integer)
Gmagick::PREVIEW_BLUR (integer)
Gmagick::PREVIEW_THRESHOLD (integer)
Gmagick::PREVIEW_EDGEDETECT (integer)
Gmagick::PREVIEW_SPREAD (integer)
Gmagick::PREVIEW_SOLARIZE (integer)
Gmagick::PREVIEW_SHADE (integer)
Gmagick::PREVIEW_RAISE (integer)
Gmagick::PREVIEW_SEGMENT (integer)
Gmagick::PREVIEW_SWIRL (integer)
Gmagick::PREVIEW_IMPLODE (integer)
Gmagick::PREVIEW_WAVE (integer)
Gmagick::PREVIEW_OILPAINT (integer)
Gmagick::PREVIEW_CHARCOALDRAWING (integer)
Gmagick::PREVIEW_JPEG (integer)
Rendering Intent constants
Gmagick::RENDERINGINTENT_UNDEFINED (integer)
Gmagick::RENDERINGINTENT_SATURATION (integer)
Gmagick::RENDERINGINTENT_PERCEPTUAL (integer)
Gmagick::RENDERINGINTENT_ABSOLUTE (integer)
Gmagick::RENDERINGINTENT_RELATIVE (integer)
Fillrule constants
Gmagick::FILLRULE_UNDEFINED (integer)
Gmagick::FILLRULE_EVENODD (integer)
Gmagick::FILLRULE_NONZERO (integer)
Pathunit constants
Gmagick::PATHUNITS_UNDEFINED (integer)
Gmagick::PATHUNITS_USERSPACE (integer)
Gmagick::PATHUNITS_USERSPACEONUSE (integer)
Gmagick::PATHUNITS_OBJECTBOUNDINGBOX (integer)
Linecap constants
Gmagick::LINECAP_UNDEFINED (integer)
Gmagick::LINECAP_BUTT (integer)
Gmagick::LINECAP_ROUND (integer)
Gmagick::LINECAP_SQUARE (integer)
Line Join constants
Gmagick::LINEJOIN_UNDEFINED (integer)
Gmagick::LINEJOIN_MITER (integer)
Gmagick::LINEJOIN_ROUND (integer)
Gmagick::LINEJOIN_BEVEL (integer)
Resourcetype constants
Gmagick::RESOURCETYPE_UNDEFINED (integer)
Gmagick::RESOURCETYPE_AREA (integer)
Gmagick::RESOURCETYPE_DISK (integer)
Gmagick::RESOURCETYPE_FILE (integer)
Gmagick::RESOURCETYPE_MAP (integer)
Gmagick::RESOURCETYPE_MEMORY (integer)
Orientation constants
Gmagick::ORIENTATION_UNDEFINED (integer)
Gmagick::ORIENTATION_TOPLEFT (integer)
Gmagick::ORIENTATION_TOPRIGHT (integer)
Gmagick::ORIENTATION_BOTTOMRIGHT (integer)
Gmagick::ORIENTATION_BOTTOMLEFT (integer)
Gmagick::ORIENTATION_LEFTTOP (integer)
Gmagick::ORIENTATION_RIGHTTOP (integer)
Gmagick::ORIENTATION_RIGHTBOTTOM (integer)
Gmagick::ORIENTATION_LEFTBOTTOM (integer)


Примеры

Следующий код демонстрирует часто используемые операции Gmagick над изображениями.

Пример #1 Примеры Gmagick

<?php
// Создаем новый объект Gmagick
$image = new Gmagick('example.jpg');

// Создаем уменьшенную копию изображения. 0 для сохранения пропорций.
$image->thumbnailImage(100, 0);

// Создаем рамку вокруг изображения, после чего накладываем эффект масляной краски
// Обратите внимание на цепочки преобразующих методов, поддерживаемых в gmagick
$image->borderImage("yellow", 8, 8)->oilPaintImage(0.3);

// Записываем полученное изображение в файл
$image->write('example_thumbnail.jpg');
?>


The Gmagick class

(PECL gmagick >= Unknown)

Введение

Обзор классов

Gmagick {
/* Методы */
public Gmagick addimage ( Gmagick $Gmagick )
public Gmagick addnoiseimage ( int $NOISE )
public Gmagick annotateimage ( GmagickDraw $GmagickDraw , float $x , float $y , float $angle , string $text )
public Gmagick blurimage ( float $radius , float $sigma [, int $channel ] )
public Gmagick borderimage ( GmagickPixel $color , int $width , int $height )
public Gmagick charcoalimage ( float $radius , float $sigma )
public Gmagick chopimage ( int $width , int $height , int $x , int $y )
public Gmagick clear ( void )
public Gmagick commentimage ( string $comment )
public Gmagick compositeimage ( Gmagick $source , int $COMPOSE , int $x , int $y )
public __construct ([ string $filename ] )
public Gmagick cropimage ( int $width , int $height , int $x , int $y )
public Gmagick cropthumbnailimage ( int $width , int $height )
public Gmagick current ( void )
public Gmagick cyclecolormapimage ( int $displace )
public Gmagick deconstructimages ( void )
public Gmagick despeckleimage ( void )
public bool destroy ( void )
public Gmagick drawimage ( GmagickDraw $GmagickDraw )
public Gmagick edgeimage ( float $radius )
public Gmagick embossimage ( float $radius , float $sigma )
public Gmagick enhanceimage ( void )
public Gmagick equalizeimage ( void )
public Gmagick flipimage ( void )
public Gmagick flopimage ( void )
public Gmagick frameimage ( GmagickPixel $color , int $width , int $height , int $inner_bevel , int $outer_bevel )
public Gmagick gammaimage ( float $gamma )
public string getcopyright ( void )
public string getfilename ( void )
public GmagickPixel getimagebackgroundcolor ( void )
public array getimageblueprimary ( void )
public GmagickPixel getimagebordercolor ( void )
public int getimagechanneldepth ( int $channel_type )
public int getimagecolors ( void )
public int getimagecolorspace ( void )
public int getimagecompose ( void )
public int getimagedelay ( void )
public int getimagedepth ( void )
public int getimagedispose ( void )
public array getimageextrema ( void )
public string getimagefilename ( void )
public string getimageformat ( void )
public float getimagegamma ( void )
public array getimagegreenprimary ( void )
public int getimageheight ( void )
public array getimagehistogram ( void )
public int getimageindex ( void )
public int getimageinterlacescheme ( void )
public int getimageiterations ( void )
public int getimagematte ( void )
public GmagickPixel getimagemattecolor ( void )
public string getimageprofile ( string $name )
public array getimageredprimary ( void )
public int getimagerenderingintent ( void )
public array getimageresolution ( void )
public int getimagescene ( void )
public string getimagesignature ( void )
public int getimagetype ( void )
public int getimageunits ( void )
public array getimagewhitepoint ( void )
public int getimagewidth ( void )
public string getpackagename ( void )
public array getquantumdepth ( void )
public string getreleasedate ( void )
public array getsamplingfactors ( void )
public array getsize ( void )
public array getversion ( void )
public mixed hasnextimage ( void )
public mixed haspreviousimage ( void )
public mixed implodeimage ( float $radius )
public mixed labelimage ( string $label )
public mixed levelimage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Gmagick::CHANNEL_DEFAULT ] )
public mixed magnifyimage ( void )
public Gmagick mapimage ( gmagick $gmagick , bool $dither )
public void medianfilterimage ( float $radius )
public Gmagick minifyimage ( void )
public Gmagick modulateimage ( float $brightness , float $saturation , float $hue )
public Gmagick motionblurimage ( float $radius , float $sigma , float $angle )
public Gmagick newimage ( int $width , int $height , string $background [, string $format ] )
public bool nextimage ( void )
public Gmagick normalizeimage ([ int $channel ] )
public Gmagick oilpaintimage ( float $radius )
public bool previousimage ( void )
public Gmagick profileimage ( string $name , string $profile )
public Gmagick quantizeimage ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )
public Gmagick quantizeimages ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )
public array queryfontmetrics ( GmagickDraw $draw , string $text )
public array queryfonts ([ string $pattern = "*" ] )
public array queryformats ([ string $pattern = "*" ] )
public Gmagick radialblurimage ( float $angle [, int $channel = Gmagick::CHANNEL_DEFAULT ] )
public Gmagick raiseimage ( int $width , int $height , int $x , int $y , bool $raise )
public Gmagick read ( string $filename )
public Gmagick readimage ( string $filename )
public Gmagick readimageblob ( string $imageContents [, string $filename ] )
public Gmagick readimagefile ( resource $fp [, string $filename ] )
public Gmagick reducenoiseimage ( float $radius )
public Gmagick removeimage ( void )
public string removeimageprofile ( string $name )
public Gmagick resampleimage ( float $xResolution , float $yResolution , int $filter , float $blur )
public Gmagick resizeimage ( int $width , int $height , int $filter , float $blur [, bool $fit = false ] )
public Gmagick rollimage ( int $x , int $y )
public Gmagick rotateimage ( mixed $color , float $degrees )
public Gmagick scaleimage ( int $width , int $height [, bool $fit = false ] )
public Gmagick separateimagechannel ( int $channel )
Gmagick setCompressionQuality ( int $quality = 75 )
public Gmagick setfilename ( string $filename )
public Gmagick setimagebackgroundcolor ( GmagickPixel $color )
public Gmagick setimageblueprimary ( float $x , float $y )
public Gmagick setimagebordercolor ( GmagickPixel $color )
public Gmagick setimagechanneldepth ( int $channel , int $depth )
public Gmagick setimagecolorspace ( int $colorspace )
public Gmagick setimagecompose ( int $composite )
public Gmagick setimagedelay ( int $delay )
public Gmagick setimagedepth ( int $depth )
public Gmagick setimagedispose ( int $disposeType )
public Gmagick setimagefilename ( string $filename )
public Gmagick setimageformat ( string $imageFormat )
public Gmagick setimagegamma ( float $gamma )
public Gmagick setimagegreenprimary ( float $x , float $y )
public Gmagick setimageindex ( int $index )
public Gmagick setimageinterlacescheme ( int $interlace )
public Gmagick setimageiterations ( int $iterations )
public Gmagick setimageprofile ( string $name , string $profile )
public Gmagick setimageredprimary ( float $x , float $y )
public Gmagick setimagerenderingintent ( int $rendering_intent )
public Gmagick setimageresolution ( float $xResolution , float $yResolution )
public Gmagick setimagescene ( int $scene )
public Gmagick setimagetype ( int $imgType )
public Gmagick setimageunits ( int $resolution )
public Gmagick setimagewhitepoint ( float $x , float $y )
public Gmagick setsamplingfactors ( array $factors )
public Gmagick setsize ( int $columns , int $rows )
public Gmagick shearimage ( mixed $color , float $xShear , float $yShear )
public Gmagick solarizeimage ( int $threshold )
public Gmagick spreadimage ( float $radius )
public Gmagick stripimage ( void )
public Gmagick swirlimage ( float $degrees )
public Gmagick thumbnailimage ( int $width , int $height [, bool $fit = false ] )
public Gmagick trimimage ( float $fuzz )
public Gmagick writeimage ( string $filename [, bool $all_frames = false ] )
}

Содержание

  • Gmagick::addimage — Adds new image to Gmagick object image list
  • Gmagick::addnoiseimage — Adds random noise to the image
  • Gmagick::annotateimage — Annotates an image with text
  • Gmagick::blurimage — Adds blur filter to image
  • Gmagick::borderimage — Surrounds the image with a border
  • Gmagick::charcoalimage — Simulates a charcoal drawing
  • Gmagick::chopimage — Removes a region of an image and trims
  • Gmagick::clear — Clears all resources associated to Gmagick object
  • Gmagick::commentimage — Adds a comment to your image
  • Gmagick::compositeimage — Composite one image onto another
  • Gmagick::__construct — The Gmagick constructor
  • Gmagick::cropimage — Extracts a region of the image
  • Gmagick::cropthumbnailimage — Creates a crop thumbnail
  • Gmagick::current — The current purpose
  • Gmagick::cyclecolormapimage — Displaces an image's colormap
  • Gmagick::deconstructimages — Returns certain pixel differences between images
  • Gmagick::despeckleimage — The despeckleimage purpose
  • Gmagick::destroy — The destroy purpose
  • Gmagick::drawimage — Renders the GmagickDraw object on the current image
  • Gmagick::edgeimage — Enhance edges within the image
  • Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect
  • Gmagick::enhanceimage — Improves the quality of a noisy image
  • Gmagick::equalizeimage — Equalizes the image histogram
  • Gmagick::flipimage — Creates a vertical mirror image
  • Gmagick::flopimage — The flopimage purpose
  • Gmagick::frameimage — Adds a simulated three-dimensional border
  • Gmagick::gammaimage — Gamma-corrects an image
  • Gmagick::getcopyright — Returns the GraphicsMagick API copyright as a string
  • Gmagick::getfilename — The filename associated with an image sequence
  • Gmagick::getimagebackgroundcolor — Returns the image background color
  • Gmagick::getimageblueprimary — Returns the chromaticy blue primary point
  • Gmagick::getimagebordercolor — Returns the image border color
  • Gmagick::getimagechanneldepth — Gets the depth for a particular image channel
  • Gmagick::getimagecolors — Returns the color of the specified colormap index
  • Gmagick::getimagecolorspace — Gets the image colorspace
  • Gmagick::getimagecompose — Returns the composite operator associated with the image
  • Gmagick::getimagedelay — Gets the image delay
  • Gmagick::getimagedepth — Gets the depth of the image
  • Gmagick::getimagedispose — Gets the image disposal method
  • Gmagick::getimageextrema — Gets the extrema for the image
  • Gmagick::getimagefilename — Returns the filename of a particular image in a sequence
  • Gmagick::getimageformat — Returns the format of a particular image in a sequence
  • Gmagick::getimagegamma — Gets the image gamma
  • Gmagick::getimagegreenprimary — Returns the chromaticy green primary point
  • Gmagick::getimageheight — Returns the image height
  • Gmagick::getimagehistogram — Gets the image histogram
  • Gmagick::getimageindex — Gets the index of the current active image
  • Gmagick::getimageinterlacescheme — Gets the image interlace scheme
  • Gmagick::getimageiterations — Gets the image iterations
  • Gmagick::getimagematte — Check if the image has a matte channel
  • Gmagick::getimagemattecolor — Returns the image matte color
  • Gmagick::getimageprofile — Returns the named image profile.
  • Gmagick::getimageredprimary — Returns the chromaticity red primary point
  • Gmagick::getimagerenderingintent — Gets the image rendering intent
  • Gmagick::getimageresolution — Gets the image X and Y resolution
  • Gmagick::getimagescene — Gets the image scene
  • Gmagick::getimagesignature — Generates an SHA-256 message digest
  • Gmagick::getimagetype — Gets the potential image type.
  • Gmagick::getimageunits — Gets the image units of resolution
  • Gmagick::getimagewhitepoint — Returns the chromaticity white point
  • Gmagick::getimagewidth — Returns the width of the image
  • Gmagick::getpackagename — Returns the GraphicsMagick package name.
  • Gmagick::getquantumdepth — Returns the Gmagick quantum depth as a string.
  • Gmagick::getreleasedate — Returns the GraphicsMagick release date as a string.
  • Gmagick::getsamplingfactors — Gets the horizontal and vertical sampling factor.
  • Gmagick::getsize — Returns the size associated with the Gmagick object
  • Gmagick::getversion — Returns the GraphicsMagick API version
  • Gmagick::hasnextimage — Checks if the object has more images
  • Gmagick::haspreviousimage — Checks if the object has a previous image
  • Gmagick::implodeimage — Creates a new image as a copy
  • Gmagick::labelimage — Adds a label to an image.
  • Gmagick::levelimage — Adjusts the levels of an image
  • Gmagick::magnifyimage — Scales an image proportionally 2x
  • Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image.
  • Gmagick::medianfilterimage — Applies a digital filter
  • Gmagick::minifyimage — Scales an image proportionally to half its size
  • Gmagick::modulateimage — Control the brightness, saturation, and hue
  • Gmagick::motionblurimage — Simulates motion blur
  • Gmagick::newimage — Creates a new image
  • Gmagick::nextimage — Moves to the next image
  • Gmagick::normalizeimage — Enhances the contrast of a color image
  • Gmagick::oilpaintimage — Simulates an oil painting
  • Gmagick::previousimage — Move to the previous image in the object
  • Gmagick::profileimage — Adds or removes a profile from an image
  • Gmagick::quantizeimage — Analyzes the colors within a reference image
  • Gmagick::quantizeimages — The quantizeimages purpose
  • Gmagick::queryfontmetrics — Returns an array representing the font metrics
  • Gmagick::queryfonts — Returns the configured fonts
  • Gmagick::queryformats — Returns formats supported by Gmagick.
  • Gmagick::radialblurimage — Radial blurs an image
  • Gmagick::raiseimage — Creates a simulated 3d button-like effect
  • Gmagick::read — Reads image from filename
  • Gmagick::readimage — Reads image from filename
  • Gmagick::readimageblob — Reads image from a binary string
  • Gmagick::readimagefile — The readimagefile purpose
  • Gmagick::reducenoiseimage — Smooths the contours of an image
  • Gmagick::removeimage — Removes an image from the image list
  • Gmagick::removeimageprofile — Removes the named image profile and returns it
  • Gmagick::resampleimage — Resample image to desired resolution
  • Gmagick::resizeimage — Scales an image
  • Gmagick::rollimage — Offsets an image
  • Gmagick::rotateimage — Rotates an image
  • Gmagick::scaleimage — Scales the size of an image
  • Gmagick::separateimagechannel — Separates a channel from the image
  • Gmagick::setCompressionQuality — Sets the object's default compression quality
  • Gmagick::setfilename — Sets the filename before you read or write the image
  • Gmagick::setimagebackgroundcolor — Sets the image background color.
  • Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point.
  • Gmagick::setimagebordercolor — Sets the image border color.
  • Gmagick::setimagechanneldepth — Sets the depth of a particular image channel
  • Gmagick::setimagecolorspace — Sets the image colorspace
  • Gmagick::setimagecompose — Sets the image composite operator
  • Gmagick::setimagedelay — Sets the image delay
  • Gmagick::setimagedepth — Sets the image depth
  • Gmagick::setimagedispose — Sets the image disposal method
  • Gmagick::setimagefilename — Sets the filename of a particular image in a sequence
  • Gmagick::setimageformat — Sets the format of a particular image
  • Gmagick::setimagegamma — Sets the image gamma
  • Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point.
  • Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter
  • Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image.
  • Gmagick::setimageiterations — Sets the image iterations.
  • Gmagick::setimageprofile — Adds a named profile to the Gmagick object
  • Gmagick::setimageredprimary — Sets the image chromaticity red primary point.
  • Gmagick::setimagerenderingintent — Sets the image rendering intent
  • Gmagick::setimageresolution — Sets the image resolution
  • Gmagick::setimagescene — Sets the image scene
  • Gmagick::setimagetype — Sets the image type
  • Gmagick::setimageunits — Sets the image units of resolution.
  • Gmagick::setimagewhitepoint — Sets the image chromaticity white point.
  • Gmagick::setsamplingfactors — Sets the image sampling factors.
  • Gmagick::setsize — Sets the size of the Gmagick object
  • Gmagick::shearimage — Creating a parallelogram
  • Gmagick::solarizeimage — Applies a solarizing effect to the image
  • Gmagick::spreadimage — Randomly displaces each pixel in a block
  • Gmagick::stripimage — Strips an image of all profiles and comments
  • Gmagick::swirlimage — Swirls the pixels about the center of the image
  • Gmagick::thumbnailimage — Changes the size of an image
  • Gmagick::trimimage — Remove edges from the image
  • Gmagick::write — Псевдоним Gmagick::writeimage
  • Gmagick::writeimage — Writes an image to the specified filename


Adds new image to Gmagick object image list

  • « Gmagick
  • Gmagick::addnoiseimage »
  • PHP Manual
  • Gmagick
  • Adds new image to Gmagick object image list

Gmagick::addimage

(PECL gmagick >= Unknown)

Gmagick::addimage — Adds new image to Gmagick object image list

Описание

public Gmagick Gmagick::addimage ( Gmagick $Gmagick )

Adds new image to Gmagick object from the current position of the source object. After the operation iterator position is moved at the end of the list.

Список параметров

source

The source Gmagick object

Возвращаемые значения

The Gmagick object with image added

Ошибки

Вызывает GmagickException при ошибке.


Adds random noise to the image

  • « Gmagick::addimage
  • Gmagick::annotateimage »
  • PHP Manual
  • Gmagick
  • Adds random noise to the image

Gmagick::addnoiseimage

(PECL gmagick >= Unknown)

Gmagick::addnoiseimage — Adds random noise to the image

Описание

public Gmagick Gmagick::addnoiseimage ( int $NOISE )

Adds random noise to the image.

Список параметров

noise_type

The type of the noise. Refer to this list of noise constants.

Возвращаемые значения

The Gmagick object with noise added.

Ошибки

Вызывает GmagickException при ошибке.


Annotates an image with text

  • « Gmagick::addnoiseimage
  • Gmagick::blurimage »
  • PHP Manual
  • Gmagick
  • Annotates an image with text

Gmagick::annotateimage

(PECL gmagick >= Unknown)

Gmagick::annotateimage — Annotates an image with text

Описание

public Gmagick Gmagick::annotateimage ( GmagickDraw $GmagickDraw , float $x , float $y , float $angle , string $text )

Annotates an image with text.

Список параметров

GmagickDraw

The GmagickDraw object that contains settings for drawing the text

x

Horizontal offset in pixels to the left of text

y

Vertical offset in pixels to the baseline of text

angle

The angle at which to write the text

text

The string to draw

Возвращаемые значения

The Gmagick object with annotation made.

Ошибки

Вызывает GmagickException при ошибке.


Adds blur filter to image

  • « Gmagick::annotateimage
  • Gmagick::borderimage »
  • PHP Manual
  • Gmagick
  • Adds blur filter to image

Gmagick::blurimage

(PECL gmagick >= Unknown)

Gmagick::blurimage — Adds blur filter to image

Описание

public Gmagick Gmagick::blurimage ( float $radius , float $sigma [, int $channel ] )

Adds blur filter to image.

Список параметров

radius

Blur radius

sigma

Standard deviation

Возвращаемые значения

The blurred Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


Surrounds the image with a border

  • « Gmagick::blurimage
  • Gmagick::charcoalimage »
  • PHP Manual
  • Gmagick
  • Surrounds the image with a border

Gmagick::borderimage

(PECL gmagick >= Unknown)

Gmagick::borderimage — Surrounds the image with a border

Описание

public Gmagick Gmagick::borderimage ( GmagickPixel $color , int $width , int $height )

Surrounds the image with a border of the color defined by the bordercolor GmagickPixel object or a color string.

Список параметров

color

GmagickPixel object or a string containing the border color

width

Border width

height

Border height

Возвращаемые значения

The Gmagick object with border defined

Ошибки

Вызывает GmagickException при ошибке.


Simulates a charcoal drawing

  • « Gmagick::borderimage
  • Gmagick::chopimage »
  • PHP Manual
  • Gmagick
  • Simulates a charcoal drawing

Gmagick::charcoalimage

(PECL gmagick >= Unknown)

Gmagick::charcoalimage — Simulates a charcoal drawing

Описание

public Gmagick Gmagick::charcoalimage ( float $radius , float $sigma )

Simulates a charcoal drawing.

Список параметров

radius

The radius of the Gaussian, in pixels, not counting the center pixel

sigma

The standard deviation of the Gaussian, in pixels

Возвращаемые значения

The Gmagick object with charcoal simulation

Ошибки

Вызывает GmagickException при ошибке.


Removes a region of an image and trims

  • « Gmagick::charcoalimage
  • Gmagick::clear »
  • PHP Manual
  • Gmagick
  • Removes a region of an image and trims

Gmagick::chopimage

(PECL gmagick >= Unknown)

Gmagick::chopimage — Removes a region of an image and trims

Описание

public Gmagick Gmagick::chopimage ( int $width , int $height , int $x , int $y )

Removes a region of an image and collapses the image to occupy the removed portion.

Список параметров

width

Width of the chopped area

height

Height of the chopped area

x

X origo of the chopped area

y

Y origo of the chopped area

Возвращаемые значения

The chopped Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


Clears all resources associated to Gmagick object

  • « Gmagick::chopimage
  • Gmagick::commentimage »
  • PHP Manual
  • Gmagick
  • Clears all resources associated to Gmagick object

Gmagick::clear

(PECL gmagick >= Unknown)

Gmagick::clear — Clears all resources associated to Gmagick object

Описание

public Gmagick Gmagick::clear ( void )

Clears all resources associated to Gmagick object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The cleared Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


Adds a comment to your image

  • « Gmagick::clear
  • Gmagick::compositeimage »
  • PHP Manual
  • Gmagick
  • Adds a comment to your image

Gmagick::commentimage

(PECL gmagick >= Unknown)

Gmagick::commentimage — Adds a comment to your image

Описание

public Gmagick Gmagick::commentimage ( string $comment )

Adds a comment to your image.

Список параметров

comment

The comment to add

Возвращаемые значения

The Gmagick object with comment added.

Ошибки

Вызывает GmagickException при ошибке.


Composite one image onto another

  • « Gmagick::commentimage
  • Gmagick::__construct »
  • PHP Manual
  • Gmagick
  • Composite one image onto another

Gmagick::compositeimage

(PECL gmagick >= Unknown)

Gmagick::compositeimage — Composite one image onto another

Описание

public Gmagick Gmagick::compositeimage ( Gmagick $source , int $COMPOSE , int $x , int $y )

Composite one image onto another at the specified offset.

Список параметров

source

Gmagick object which holds the composite image

compose

Composite operator.

x

The column offset of the composited image

y

The row offset of the composited image

Возвращаемые значения

The Gmagick object with compositions.

Ошибки

Вызывает GmagickException при ошибке.


The Gmagick constructor

  • « Gmagick::compositeimage
  • Gmagick::cropimage »
  • PHP Manual
  • Gmagick
  • The Gmagick constructor

Gmagick::__construct

(PECL gmagick >= Unknown)

Gmagick::__construct — The Gmagick constructor

Описание

public Gmagick::__construct ([ string $filename ] )

The Gmagick constructor.

Список параметров

filename

The path to an image to load or array of paths

Возвращаемые значения

Returns a new Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Extracts a region of the image

  • « Gmagick::__construct
  • Gmagick::cropthumbnailimage »
  • PHP Manual
  • Gmagick
  • Extracts a region of the image

Gmagick::cropimage

(PECL gmagick >= Unknown)

Gmagick::cropimage — Extracts a region of the image

Описание

public Gmagick Gmagick::cropimage ( int $width , int $height , int $x , int $y )

Extracts a region of the image.

Список параметров

width

The width of the crop

height

The height of the crop

x

The X coordinate of the cropped region's top left corner

y

The Y coordinate of the cropped region's top left corner

Возвращаемые значения

The cropped Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


Creates a crop thumbnail

  • « Gmagick::cropimage
  • Gmagick::current »
  • PHP Manual
  • Gmagick
  • Creates a crop thumbnail

Gmagick::cropthumbnailimage

(PECL gmagick >= Unknown)

Gmagick::cropthumbnailimage — Creates a crop thumbnail

Описание

public Gmagick Gmagick::cropthumbnailimage ( int $width , int $height )

Creates a fixed size thumbnail by first scaling the image down and cropping a specified area from the center.

Список параметров

width

The width of the thumbnail

height

The Height of the thumbnail

Возвращаемые значения

The cropped Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


The current purpose

  • « Gmagick::cropthumbnailimage
  • Gmagick::cyclecolormapimage »
  • PHP Manual
  • Gmagick
  • The current purpose

Gmagick::current

(PECL gmagick >= Unknown)

Gmagick::current — The current purpose

Описание

public Gmagick Gmagick::current ( void )

Returns reference to the current gmagick object with image pointer at the correct sequence.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns self on success.

Ошибки

Вызывает GmagickException при ошибке.


Displaces an image's colormap

  • « Gmagick::current
  • Gmagick::deconstructimages »
  • PHP Manual
  • Gmagick
  • Displaces an image's colormap

Gmagick::cyclecolormapimage

(PECL gmagick >= Unknown)

Gmagick::cyclecolormapimage — Displaces an image's colormap

Описание

public Gmagick Gmagick::cyclecolormapimage ( int $displace )

Displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychedelic effect.

Список параметров

displace

The amount to displace the colormap.

Возвращаемые значения

Returns self on success.

Ошибки

Вызывает GmagickException при ошибке.


Returns certain pixel differences between images

  • « Gmagick::cyclecolormapimage
  • Gmagick::despeckleimage »
  • PHP Manual
  • Gmagick
  • Returns certain pixel differences between images

Gmagick::deconstructimages

(PECL gmagick >= Unknown)

Gmagick::deconstructimages — Returns certain pixel differences between images

Описание

public Gmagick Gmagick::deconstructimages ( void )

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a new Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


The despeckleimage purpose

  • « Gmagick::deconstructimages
  • Gmagick::destroy »
  • PHP Manual
  • Gmagick
  • The despeckleimage purpose

Gmagick::despeckleimage

(PECL gmagick >= Unknown)

Gmagick::despeckleimage — The despeckleimage purpose

Описание

public Gmagick Gmagick::despeckleimage ( void )

Reduces the speckle noise in an image while preserving the edges of the original image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The despeckled Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.

Примеры

Пример #1 Gmagick::despeckleimage() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The destroy purpose

  • « Gmagick::despeckleimage
  • Gmagick::drawimage »
  • PHP Manual
  • Gmagick
  • The destroy purpose

Gmagick::destroy

(PECL gmagick >= Unknown)

Gmagick::destroy — The destroy purpose

Описание

public bool Gmagick::destroy ( void )

Destroys the Gmagick object and frees all resources associated with it

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает GmagickException при ошибке.


Renders the GmagickDraw object on the current image

  • « Gmagick::destroy
  • Gmagick::edgeimage »
  • PHP Manual
  • Gmagick
  • Renders the GmagickDraw object on the current image

Gmagick::drawimage

(PECL gmagick >= Unknown)

Gmagick::drawimage — Renders the GmagickDraw object on the current image

Описание

public Gmagick Gmagick::drawimage ( GmagickDraw $GmagickDraw )

Renders the GmagickDraw object on the current image

Список параметров

GmagickDraw

The drawing operations to render on the image.

Возвращаемые значения

The drawn Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


Enhance edges within the image

  • « Gmagick::drawimage
  • Gmagick::embossimage »
  • PHP Manual
  • Gmagick
  • Enhance edges within the image

Gmagick::edgeimage

(PECL gmagick >= Unknown)

Gmagick::edgeimage — Enhance edges within the image

Описание

public Gmagick Gmagick::edgeimage ( float $radius )

Enhance edges within the image with a convolution filter of the given radius. Use radius 0 and it will be auto-selected.

Список параметров

radius

The radius of the operation.

Возвращаемые значения

The Gmagick object with edges enhanced.

Ошибки

Вызывает GmagickException при ошибке.


Returns a grayscale image with a three-dimensional effect

  • « Gmagick::edgeimage
  • Gmagick::enhanceimage »
  • PHP Manual
  • Gmagick
  • Returns a grayscale image with a three-dimensional effect

Gmagick::embossimage

(PECL gmagick >= Unknown)

Gmagick::embossimage — Returns a grayscale image with a three-dimensional effect

Описание

public Gmagick Gmagick::embossimage ( float $radius , float $sigma )

Returns a grayscale image with a three-dimensional effect. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and it will choose a suitable radius for you.

Список параметров

radius

The radius of the effect

sigma

The sigma of the effect

Возвращаемые значения

The embossed Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Improves the quality of a noisy image

  • « Gmagick::embossimage
  • Gmagick::equalizeimage »
  • PHP Manual
  • Gmagick
  • Improves the quality of a noisy image

Gmagick::enhanceimage

(PECL gmagick >= Unknown)

Gmagick::enhanceimage — Improves the quality of a noisy image

Описание

public Gmagick Gmagick::enhanceimage ( void )

Applies a digital filter that improves the quality of a noisy image.

Возвращаемые значения

The enhanced Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Equalizes the image histogram

  • « Gmagick::enhanceimage
  • Gmagick::flipimage »
  • PHP Manual
  • Gmagick
  • Equalizes the image histogram

Gmagick::equalizeimage

(PECL gmagick >= Unknown)

Gmagick::equalizeimage — Equalizes the image histogram

Описание

public Gmagick Gmagick::equalizeimage ( void )

Equalizes the image histogram.

Возвращаемые значения

The equalized Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Creates a vertical mirror image

  • « Gmagick::equalizeimage
  • Gmagick::flopimage »
  • PHP Manual
  • Gmagick
  • Creates a vertical mirror image

Gmagick::flipimage

(PECL gmagick >= Unknown)

Gmagick::flipimage — Creates a vertical mirror image

Описание

public Gmagick Gmagick::flipimage ( void )

Creates a vertical mirror image by reflecting the pixels around the central x-axis.

Возвращаемые значения

The flipped Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


The flopimage purpose

  • « Gmagick::flipimage
  • Gmagick::frameimage »
  • PHP Manual
  • Gmagick
  • The flopimage purpose

Gmagick::flopimage

(PECL gmagick >= Unknown)

Gmagick::flopimage — The flopimage purpose

Описание

public Gmagick Gmagick::flopimage ( void )

Creates a horizontal mirror image by reflecting the pixels around the central y-axis.

Возвращаемые значения

The flopped Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Adds a simulated three-dimensional border

  • « Gmagick::flopimage
  • Gmagick::gammaimage »
  • PHP Manual
  • Gmagick
  • Adds a simulated three-dimensional border

Gmagick::frameimage

(PECL gmagick >= Unknown)

Gmagick::frameimage — Adds a simulated three-dimensional border

Описание

public Gmagick Gmagick::frameimage ( GmagickPixel $color , int $width , int $height , int $inner_bevel , int $outer_bevel )

Adds a simulated three-dimensional border around the image. The width and height specify the border width of the vertical and horizontal sides of the frame. The inner and outer bevels indicate the width of the inner and outer shadows of the frame.

Список параметров

color

GmagickPixel object or a float representing the matte color

width

The width of the border

height

The height of the border

inner_bevel

The inner bevel width

outer_bevel

The outer bevel width

Возвращаемые значения

The framed Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Gamma-corrects an image

  • « Gmagick::frameimage
  • Gmagick::getcopyright »
  • PHP Manual
  • Gmagick
  • Gamma-corrects an image

Gmagick::gammaimage

(PECL gmagick >= Unknown)

Gmagick::gammaimage — Gamma-corrects an image

Описание

public Gmagick Gmagick::gammaimage ( float $gamma )

Gamma-corrects an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

Список параметров

gamma

The amount of gamma-correction.

Возвращаемые значения

The gamma corrected Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Returns the GraphicsMagick API copyright as a string

  • « Gmagick::gammaimage
  • Gmagick::getfilename »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick API copyright as a string

Gmagick::getcopyright

(PECL gmagick >= Unknown)

Gmagick::getcopyright — Returns the GraphicsMagick API copyright as a string

Описание

public string Gmagick::getcopyright ( void )

Returns the GraphicsMagick API copyright as a string.

Возвращаемые значения

Returns a string containing the copyright notice of GraphicsMagick and Magickwand C API.

Ошибки

Вызывает GmagickException при ошибке.


The filename associated with an image sequence

  • « Gmagick::getcopyright
  • Gmagick::getimagebackgroundcolor »
  • PHP Manual
  • Gmagick
  • The filename associated with an image sequence

Gmagick::getfilename

(PECL gmagick >= Unknown)

Gmagick::getfilename — The filename associated with an image sequence

Описание

public string Gmagick::getfilename ( void )

Returns the filename associated with an image sequence.

Возвращаемые значения

Returns a string on success.

Ошибки

Вызывает GmagickException при ошибке.


Returns the image background color

  • « Gmagick::getfilename
  • Gmagick::getimageblueprimary »
  • PHP Manual
  • Gmagick
  • Returns the image background color

Gmagick::getimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::getimagebackgroundcolor — Returns the image background color

Описание

public GmagickPixel Gmagick::getimagebackgroundcolor ( void )

Returns the image background color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an GmagickPixel set to the background color of the image.

Ошибки

Вызывает GmagickException при ошибке.


Returns the chromaticy blue primary point

  • « Gmagick::getimagebackgroundcolor
  • Gmagick::getimagebordercolor »
  • PHP Manual
  • Gmagick
  • Returns the chromaticy blue primary point

Gmagick::getimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::getimageblueprimary — Returns the chromaticy blue primary point

Описание

public array Gmagick::getimageblueprimary ( void )

Returns the chromaticity blue primary point for the image.

Список параметров

x

The chromaticity blue primary x-point.

y

The chromaticity blue primary y-point.

Возвращаемые значения

Array consisting of "x" and "y" coordinates of point.

Ошибки

Вызывает GmagickException при ошибке.


Returns the image border color

  • « Gmagick::getimageblueprimary
  • Gmagick::getimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Returns the image border color

Gmagick::getimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::getimagebordercolor — Returns the image border color

Описание

public GmagickPixel Gmagick::getimagebordercolor ( void )

Returns the image border color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

GmagickPixel object representing the color of the border

Ошибки

Вызывает GmagickException при ошибке.


Gets the depth for a particular image channel

  • « Gmagick::getimagebordercolor
  • Gmagick::getimagecolors »
  • PHP Manual
  • Gmagick
  • Gets the depth for a particular image channel

Gmagick::getimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::getimagechanneldepth — Gets the depth for a particular image channel

Описание

public int Gmagick::getimagechanneldepth ( int $channel_type )

Gets the depth for a particular image channel.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Depth of image channel

Ошибки

Вызывает GmagickException при ошибке.


Returns the color of the specified colormap index

  • « Gmagick::getimagechanneldepth
  • Gmagick::getimagecolorspace »
  • PHP Manual
  • Gmagick
  • Returns the color of the specified colormap index

Gmagick::getimagecolors

(PECL gmagick >= Unknown)

Gmagick::getimagecolors — Returns the color of the specified colormap index

Описание

public int Gmagick::getimagecolors ( void )

Returns the color of the specified colormap index.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The number of colors in image.

Ошибки

Вызывает GmagickException при ошибке.


Gets the image colorspace

  • « Gmagick::getimagecolors
  • Gmagick::getimagecompose »
  • PHP Manual
  • Gmagick
  • Gets the image colorspace

Gmagick::getimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::getimagecolorspace — Gets the image colorspace

Описание

public int Gmagick::getimagecolorspace ( void )

Gets the image colorspace.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Colorspace

Ошибки

Вызывает GmagickException при ошибке.


Returns the composite operator associated with the image

  • « Gmagick::getimagecolorspace
  • Gmagick::getimagedelay »
  • PHP Manual
  • Gmagick
  • Returns the composite operator associated with the image

Gmagick::getimagecompose

(PECL gmagick >= Unknown)

Gmagick::getimagecompose — Returns the composite operator associated with the image

Описание

public int Gmagick::getimagecompose ( void )

Returns the composite operator associated with the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the composite operator associated with the image.

Ошибки

Вызывает GmagickException при ошибке.


Gets the image delay

  • « Gmagick::getimagecompose
  • Gmagick::getimagedepth »
  • PHP Manual
  • Gmagick
  • Gets the image delay

Gmagick::getimagedelay

(PECL gmagick >= Unknown)

Gmagick::getimagedelay — Gets the image delay

Описание

public int Gmagick::getimagedelay ( void )

Gets the image delay

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the composite operator associated with the image.

Ошибки

Вызывает GmagickException при ошибке.


Gets the depth of the image

  • « Gmagick::getimagedelay
  • Gmagick::getimagedispose »
  • PHP Manual
  • Gmagick
  • Gets the depth of the image

Gmagick::getimagedepth

(PECL gmagick >= Unknown)

Gmagick::getimagedepth — Gets the depth of the image

Описание

public int Gmagick::getimagedepth ( void )

Gets the depth of the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Image depth

Ошибки

Вызывает GmagickException при ошибке.


Gets the image disposal method

  • « Gmagick::getimagedepth
  • Gmagick::getimageextrema »
  • PHP Manual
  • Gmagick
  • Gets the image disposal method

Gmagick::getimagedispose

(PECL gmagick >= Unknown)

Gmagick::getimagedispose — Gets the image disposal method

Описание

public int Gmagick::getimagedispose ( void )

Gets the image disposal method

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the dispose method on success.

Ошибки

Вызывает GmagickException при ошибке.


Gets the extrema for the image

  • « Gmagick::getimagedispose
  • Gmagick::getimagefilename »
  • PHP Manual
  • Gmagick
  • Gets the extrema for the image

Gmagick::getimageextrema

(PECL gmagick >= Unknown)

Gmagick::getimageextrema — Gets the extrema for the image

Описание

public array Gmagick::getimageextrema ( void )

Returns an associative array with the keys "min" and "max". Вызывает GmagickException при ошибке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an associative array with the keys "min" and "max".

Ошибки

Вызывает GmagickException при ошибке.


Returns the filename of a particular image in a sequence

  • « Gmagick::getimageextrema
  • Gmagick::getimageformat »
  • PHP Manual
  • Gmagick
  • Returns the filename of a particular image in a sequence

Gmagick::getimagefilename

(PECL gmagick >= Unknown)

Gmagick::getimagefilename — Returns the filename of a particular image in a sequence

Описание

public string Gmagick::getimagefilename ( void )

Returns the filename of a particular image in a sequence

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string with the filename of the image

Ошибки

Вызывает GmagickException при ошибке.


Returns the format of a particular image in a sequence

  • « Gmagick::getimagefilename
  • Gmagick::getimagegamma »
  • PHP Manual
  • Gmagick
  • Returns the format of a particular image in a sequence

Gmagick::getimageformat

(PECL gmagick >= Unknown)

Gmagick::getimageformat — Returns the format of a particular image in a sequence

Описание

public string Gmagick::getimageformat ( void )

Returns the format of a particular image in a sequence.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string containing the image format on success.

Ошибки

Вызывает GmagickException при ошибке.


Gets the image gamma

  • « Gmagick::getimageformat
  • Gmagick::getimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Gets the image gamma

Gmagick::getimagegamma

(PECL gmagick >= Unknown)

Gmagick::getimagegamma — Gets the image gamma

Описание

public float Gmagick::getimagegamma ( void )

Gets the image gamma

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the image gamma on success

Ошибки

Вызывает GmagickException при ошибке.


Returns the chromaticy green primary point

  • « Gmagick::getimagegamma
  • Gmagick::getimageheight »
  • PHP Manual
  • Gmagick
  • Returns the chromaticy green primary point

Gmagick::getimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::getimagegreenprimary — Returns the chromaticy green primary point

Описание

public array Gmagick::getimagegreenprimary ( void )

Returns the chromaticity green primary point. Returns an array with the keys "x" and "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array with the keys "x" and "y" on success.

Ошибки

Вызывает GmagickException при ошибке.


Returns the image height

  • « Gmagick::getimagegreenprimary
  • Gmagick::getimagehistogram »
  • PHP Manual
  • Gmagick
  • Returns the image height

Gmagick::getimageheight

(PECL gmagick >= Unknown)

Gmagick::getimageheight — Returns the image height

Описание

public int Gmagick::getimageheight ( void )

Returns the image height

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the image height in pixels.

Ошибки

Вызывает GmagickException при ошибке.


Gets the image histogram

  • « Gmagick::getimageheight
  • Gmagick::getimageindex »
  • PHP Manual
  • Gmagick
  • Gets the image histogram

Gmagick::getimagehistogram

(PECL gmagick >= Unknown)

Gmagick::getimagehistogram — Gets the image histogram

Описание

public array Gmagick::getimagehistogram ( void )

Returns the image histogram as an array of GmagickPixel objects. Throw an GmagickException on error.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the image histogram as an array of GmagickPixel objects.

Ошибки

Вызывает GmagickException при ошибке.


Gets the index of the current active image

  • « Gmagick::getimagehistogram
  • Gmagick::getimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Gets the index of the current active image

Gmagick::getimageindex

(PECL gmagick >= Unknown)

Gmagick::getimageindex — Gets the index of the current active image

Описание

public int Gmagick::getimageindex ( void )

Returns the index of the current active image within the Gmagick object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Index of current active image

Ошибки

Вызывает GmagickException при ошибке.


Gets the image interlace scheme

  • « Gmagick::getimageindex
  • Gmagick::getimageiterations »
  • PHP Manual
  • Gmagick
  • Gets the image interlace scheme

Gmagick::getimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::getimageinterlacescheme — Gets the image interlace scheme

Описание

public int Gmagick::getimageinterlacescheme ( void )

Gets the image interlace scheme.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the interlace scheme as an integer on success

Ошибки

Вызывает GmagickException при ошибке.


Gets the image iterations

  • « Gmagick::getimageinterlacescheme
  • Gmagick::getimagematte »
  • PHP Manual
  • Gmagick
  • Gets the image iterations

Gmagick::getimageiterations

(PECL gmagick >= Unknown)

Gmagick::getimageiterations — Gets the image iterations

Описание

public int Gmagick::getimageiterations ( void )

Gets the image iterations.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the image iterations as an integer.

Ошибки

Вызывает GmagickException при ошибке.


Check if the image has a matte channel

  • « Gmagick::getimageiterations
  • Gmagick::getimagemattecolor »
  • PHP Manual
  • Gmagick
  • Check if the image has a matte channel

Gmagick::getimagematte

(PECL gmagick >= Unknown)

Gmagick::getimagematte — Check if the image has a matte channel

Описание

public int Gmagick::getimagematte ( void )

Returns TRUE if the image has a matte channel, otherwise FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the image has a matte channel, otherwise FALSE.

Ошибки

Вызывает GmagickException при ошибке.


Returns the image matte color

  • « Gmagick::getimagematte
  • Gmagick::getimageprofile »
  • PHP Manual
  • Gmagick
  • Returns the image matte color

Gmagick::getimagemattecolor

(PECL gmagick >= Unknown)

Gmagick::getimagemattecolor — Returns the image matte color

Описание

public GmagickPixel Gmagick::getimagemattecolor ( void )

Returns GmagickPixel object on success. Throw an GmagickException on error.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns GmagickPixel object on success.

Ошибки

Вызывает GmagickException при ошибке.


Returns the named image profile.

  • « Gmagick::getimagemattecolor
  • Gmagick::getimageredprimary »
  • PHP Manual
  • Gmagick
  • Returns the named image profile.

Gmagick::getimageprofile

(PECL gmagick >= Unknown)

Gmagick::getimageprofile — Returns the named image profile.

Описание

public string Gmagick::getimageprofile ( string $name )

Returns the named image profile.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string containing the image profile.

Ошибки

Вызывает GmagickException при ошибке.


Returns the chromaticity red primary point

  • « Gmagick::getimageprofile
  • Gmagick::getimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Returns the chromaticity red primary point

Gmagick::getimageredprimary

(PECL gmagick >= Unknown)

Gmagick::getimageredprimary — Returns the chromaticity red primary point

Описание

public array Gmagick::getimageredprimary ( void )

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Ошибки

Вызывает GmagickException при ошибке.


Gets the image rendering intent

  • « Gmagick::getimageredprimary
  • Gmagick::getimageresolution »
  • PHP Manual
  • Gmagick
  • Gets the image rendering intent

Gmagick::getimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::getimagerenderingintent — Gets the image rendering intent

Описание

public int Gmagick::getimagerenderingintent ( void )

Gets the image rendering intent

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Extracts a region of the image and returns it as a a new wand

Ошибки

Вызывает GmagickException при ошибке.


Gets the image X and Y resolution

  • « Gmagick::getimagerenderingintent
  • Gmagick::getimagescene »
  • PHP Manual
  • Gmagick
  • Gets the image X and Y resolution

Gmagick::getimageresolution

(PECL gmagick >= Unknown)

Gmagick::getimageresolution — Gets the image X and Y resolution

Описание

public array Gmagick::getimageresolution ( void )

Returns the resolution as an array.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the resolution as an array.

Ошибки

Вызывает GmagickException при ошибке.


Gets the image scene

  • « Gmagick::getimageresolution
  • Gmagick::getimagesignature »
  • PHP Manual
  • Gmagick
  • Gets the image scene

Gmagick::getimagescene

(PECL gmagick >= Unknown)

Gmagick::getimagescene — Gets the image scene

Описание

public int Gmagick::getimagescene ( void )

Gets the image scene.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the image scene.

Ошибки

Вызывает GmagickException при ошибке.


Generates an SHA-256 message digest

  • « Gmagick::getimagescene
  • Gmagick::getimagetype »
  • PHP Manual
  • Gmagick
  • Generates an SHA-256 message digest

Gmagick::getimagesignature

(PECL gmagick >= Unknown)

Gmagick::getimagesignature — Generates an SHA-256 message digest

Описание

public string Gmagick::getimagesignature ( void )

Generates an SHA-256 message digest for the image pixel stream.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string containing the SHA-256 hash of the file.

Ошибки

Вызывает GmagickException при ошибке.


Gets the potential image type.

  • « Gmagick::getimagesignature
  • Gmagick::getimageunits »
  • PHP Manual
  • Gmagick
  • Gets the potential image type.

Gmagick::getimagetype

(PECL gmagick >= Unknown)

Gmagick::getimagetype — Gets the potential image type.

Описание

public int Gmagick::getimagetype ( void )

Gets the potential image type.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the potential image type.

Ошибки

Вызывает GmagickException при ошибке.


Gets the image units of resolution

  • « Gmagick::getimagetype
  • Gmagick::getimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Gets the image units of resolution

Gmagick::getimageunits

(PECL gmagick >= Unknown)

Gmagick::getimageunits — Gets the image units of resolution

Описание

public int Gmagick::getimageunits ( void )

Gets the image units of resolution.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the image units of resolution.


Returns the chromaticity white point

  • « Gmagick::getimageunits
  • Gmagick::getimagewidth »
  • PHP Manual
  • Gmagick
  • Returns the chromaticity white point

Gmagick::getimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::getimagewhitepoint — Returns the chromaticity white point

Описание

public array Gmagick::getimagewhitepoint ( void )

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Ошибки

Вызывает GmagickException при ошибке.


Returns the width of the image

  • « Gmagick::getimagewhitepoint
  • Gmagick::getpackagename »
  • PHP Manual
  • Gmagick
  • Returns the width of the image

Gmagick::getimagewidth

(PECL gmagick >= Unknown)

Gmagick::getimagewidth — Returns the width of the image

Описание

public int Gmagick::getimagewidth ( void )

Returns the width of the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the image width.

Ошибки

Вызывает GmagickException при ошибке.


Returns the GraphicsMagick package name.

  • « Gmagick::getimagewidth
  • Gmagick::getquantumdepth »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick package name.

Gmagick::getpackagename

(PECL gmagick >= Unknown)

Gmagick::getpackagename — Returns the GraphicsMagick package name.

Описание

public string Gmagick::getpackagename ( void )

Returns the GraphicsMagick package name.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the GraphicsMagick package name as a string.

Ошибки

Вызывает GmagickException при ошибке.


Returns the Gmagick quantum depth as a string.

  • « Gmagick::getpackagename
  • Gmagick::getreleasedate »
  • PHP Manual
  • Gmagick
  • Returns the Gmagick quantum depth as a string.

Gmagick::getquantumdepth

(PECL gmagick >= Unknown)

Gmagick::getquantumdepth — Returns the Gmagick quantum depth as a string.

Описание

public array Gmagick::getquantumdepth ( void )

Returns the Gmagick quantum depth as a string.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the Gmagick quantum depth as a string.

Ошибки

Вызывает GmagickException при ошибке.


Returns the GraphicsMagick release date as a string.

  • « Gmagick::getquantumdepth
  • Gmagick::getsamplingfactors »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick release date as a string.

Gmagick::getreleasedate

(PECL gmagick >= Unknown)

Gmagick::getreleasedate — Returns the GraphicsMagick release date as a string.

Описание

public string Gmagick::getreleasedate ( void )

Returns the GraphicsMagick release date as a string.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the GraphicsMagick release date as a string.

Ошибки

Вызывает GmagickException при ошибке.


Gets the horizontal and vertical sampling factor.

  • « Gmagick::getreleasedate
  • Gmagick::getsize »
  • PHP Manual
  • Gmagick
  • Gets the horizontal and vertical sampling factor.

Gmagick::getsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::getsamplingfactors — Gets the horizontal and vertical sampling factor.

Описание

public array Gmagick::getsamplingfactors ( void )

Gets the horizontal and vertical sampling factor.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an associative array with the horizontal and vertical sampling factors of the image.

Ошибки

Вызывает GmagickException при ошибке.


Returns the size associated with the Gmagick object

  • « Gmagick::getsamplingfactors
  • Gmagick::getversion »
  • PHP Manual
  • Gmagick
  • Returns the size associated with the Gmagick object

Gmagick::getsize

(PECL gmagick >= Unknown)

Gmagick::getsize — Returns the size associated with the Gmagick object

Описание

public array Gmagick::getsize ( void )

Returns the size associated with the Gmagick object as an array with the keys "columns" and "rows".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the size associated with the Gmagick object as an array with the keys "columns" and "rows".

Ошибки

Вызывает GmagickException при ошибке.


Returns the GraphicsMagick API version

  • « Gmagick::getsize
  • Gmagick::hasnextimage »
  • PHP Manual
  • Gmagick
  • Returns the GraphicsMagick API version

Gmagick::getversion

(PECL gmagick >= Unknown)

Gmagick::getversion — Returns the GraphicsMagick API version

Описание

public array Gmagick::getversion ( void )

Returns the GraphicsMagick API version as a string and as a number.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the GraphicsMagick API version as a string and as a number.

Ошибки

Вызывает GmagickException при ошибке.


Checks if the object has more images

  • « Gmagick::getversion
  • Gmagick::haspreviousimage »
  • PHP Manual
  • Gmagick
  • Checks if the object has more images

Gmagick::hasnextimage

(PECL gmagick >= Unknown)

Gmagick::hasnextimage — Checks if the object has more images

Описание

public mixed Gmagick::hasnextimage ( void )

Returns TRUE if the object has more images when traversing the list in the forward direction.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the object has more images when traversing the list in the forward direction, returns FALSE if there are none.

Ошибки

Вызывает GmagickException при ошибке.


Checks if the object has a previous image

  • « Gmagick::hasnextimage
  • Gmagick::implodeimage »
  • PHP Manual
  • Gmagick
  • Checks if the object has a previous image

Gmagick::haspreviousimage

(PECL gmagick >= Unknown)

Gmagick::haspreviousimage — Checks if the object has a previous image

Описание

public mixed Gmagick::haspreviousimage ( void )

Returns TRUE if the object has more images when traversing the list in the reverse direction

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the object has more images when traversing the list in the reverse direction, returns FALSE if there are none.

Ошибки

Вызывает GmagickException при ошибке.


Creates a new image as a copy

  • « Gmagick::haspreviousimage
  • Gmagick::labelimage »
  • PHP Manual
  • Gmagick
  • Creates a new image as a copy

Gmagick::implodeimage

(PECL gmagick >= Unknown)

Gmagick::implodeimage — Creates a new image as a copy

Описание

public mixed Gmagick::implodeimage ( float $radius )

Creates a new image that is a copy of an existing one with the image pixels "imploded" by the specified percentage.

Список параметров

radius

The radius of the implode

Возвращаемые значения

Returns imploded Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Adds a label to an image.

  • « Gmagick::implodeimage
  • Gmagick::levelimage »
  • PHP Manual
  • Gmagick
  • Adds a label to an image.

Gmagick::labelimage

(PECL gmagick >= Unknown)

Gmagick::labelimage — Adds a label to an image.

Описание

public mixed Gmagick::labelimage ( string $label )

Adds a label to an image.

Список параметров

label

The label to add

Возвращаемые значения

Gmagick with label.

Ошибки

Вызывает GmagickException при ошибке.


Adjusts the levels of an image

  • « Gmagick::labelimage
  • Gmagick::magnifyimage »
  • PHP Manual
  • Gmagick
  • Adjusts the levels of an image

Gmagick::levelimage

(PECL gmagick >= Unknown)

Gmagick::levelimage — Adjusts the levels of an image

Описание

public mixed Gmagick::levelimage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Gmagick::CHANNEL_DEFAULT ] )

Adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Mid point specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

Список параметров

blackPoint

The image black point

gamma

The gamma value

whitePoint

The image white point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

Gmagick object with image levelled.

Ошибки

Вызывает GmagickException при ошибке.


Scales an image proportionally 2x

  • « Gmagick::levelimage
  • Gmagick::mapimage »
  • PHP Manual
  • Gmagick
  • Scales an image proportionally 2x

Gmagick::magnifyimage

(PECL gmagick >= Unknown)

Gmagick::magnifyimage — Scales an image proportionally 2x

Описание

public mixed Gmagick::magnifyimage ( void )

Conveniently scales an image proportionally to twice its original size.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Magnified Gmagick object.

Ошибки

Вызывает GmagickException при ошибке.


Replaces the colors of an image with the closest color from a reference image.

  • « Gmagick::magnifyimage
  • Gmagick::medianfilterimage »
  • PHP Manual
  • Gmagick
  • Replaces the colors of an image with the closest color from a reference image.

Gmagick::mapimage

(PECL gmagick >= Unknown)

Gmagick::mapimage — Replaces the colors of an image with the closest color from a reference image.

Описание

public Gmagick Gmagick::mapimage ( gmagick $gmagick , bool $dither )

Replaces the colors of an image with the closest color from a reference image.

Список параметров

gmagick

The reference image

dither

Set this integer value to something other than zero to dither the mapped image

Возвращаемые значения

Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


Applies a digital filter

  • « Gmagick::mapimage
  • Gmagick::minifyimage »
  • PHP Manual
  • Gmagick
  • Applies a digital filter

Gmagick::medianfilterimage

(PECL gmagick >= Unknown)

Gmagick::medianfilterimage — Applies a digital filter

Описание

public void Gmagick::medianfilterimage ( float $radius )

Applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

Список параметров

radius

The radius of the pixel neighborhood.

Возвращаемые значения

Gmagick object with median filter applied.

Ошибки

Вызывает GmagickException при ошибке.


Scales an image proportionally to half its size

  • « Gmagick::medianfilterimage
  • Gmagick::modulateimage »
  • PHP Manual
  • Gmagick
  • Scales an image proportionally to half its size

Gmagick::minifyimage

(PECL gmagick >= Unknown)

Gmagick::minifyimage — Scales an image proportionally to half its size

Описание

public Gmagick Gmagick::minifyimage ( void )

A convenient method that scales an image proportionally to one-half its original size

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Control the brightness, saturation, and hue

  • « Gmagick::minifyimage
  • Gmagick::motionblurimage »
  • PHP Manual
  • Gmagick
  • Control the brightness, saturation, and hue

Gmagick::modulateimage

(PECL gmagick >= Unknown)

Gmagick::modulateimage — Control the brightness, saturation, and hue

Описание

public Gmagick Gmagick::modulateimage ( float $brightness , float $saturation , float $hue )

Lets you control the brightness, saturation, and hue of an image. Hue is the percentage of absolute rotation from the current position. For example 50 results in a counter-clockwise rotation of 90 degrees, 150 results in a clockwise rotation of 90 degrees, with 0 and 200 both resulting in a rotation of 180 degrees.

Список параметров

brightness

The percent change in brighness (-100 thru +100).

saturation

The percent change in saturation (-100 thru +100)

hue

The percent change in hue (-100 thru +100)

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Simulates motion blur

  • « Gmagick::modulateimage
  • Gmagick::newimage »
  • PHP Manual
  • Gmagick
  • Simulates motion blur

Gmagick::motionblurimage

(PECL gmagick >= Unknown)

Gmagick::motionblurimage — Simulates motion blur

Описание

public Gmagick Gmagick::motionblurimage ( float $radius , float $sigma , float $angle )

Simulates motion blur. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

Список параметров

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Creates a new image

  • « Gmagick::motionblurimage
  • Gmagick::nextimage »
  • PHP Manual
  • Gmagick
  • Creates a new image

Gmagick::newimage

(PECL gmagick >= Unknown)

Gmagick::newimage — Creates a new image

Описание

public Gmagick Gmagick::newimage ( int $width , int $height , string $background [, string $format ] )

Creates a new image with the specified background color

Список параметров

width

Width of the new image

height

Height of the new image

background

The background color used for this image (as float)

format

Image format.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Moves to the next image

  • « Gmagick::newimage
  • Gmagick::normalizeimage »
  • PHP Manual
  • Gmagick
  • Moves to the next image

Gmagick::nextimage

(PECL gmagick >= Unknown)

Gmagick::nextimage — Moves to the next image

Описание

public bool Gmagick::nextimage ( void )

Associates the next image in the image list with an Gmagick object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает GmagickException при ошибке.


Enhances the contrast of a color image

  • « Gmagick::nextimage
  • Gmagick::oilpaintimage »
  • PHP Manual
  • Gmagick
  • Enhances the contrast of a color image

Gmagick::normalizeimage

(PECL gmagick >= Unknown)

Gmagick::normalizeimage — Enhances the contrast of a color image

Описание

public Gmagick Gmagick::normalizeimage ([ int $channel ] )

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available.

Список параметров

channel

Identify which channel to normalize

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Simulates an oil painting

  • « Gmagick::normalizeimage
  • Gmagick::previousimage »
  • PHP Manual
  • Gmagick
  • Simulates an oil painting

Gmagick::oilpaintimage

(PECL gmagick >= Unknown)

Gmagick::oilpaintimage — Simulates an oil painting

Описание

public Gmagick Gmagick::oilpaintimage ( float $radius )

Applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

Список параметров

radius

The radius of the circular neighborhood.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Move to the previous image in the object

  • « Gmagick::oilpaintimage
  • Gmagick::profileimage »
  • PHP Manual
  • Gmagick
  • Move to the previous image in the object

Gmagick::previousimage

(PECL gmagick >= Unknown)

Gmagick::previousimage — Move to the previous image in the object

Описание

public bool Gmagick::previousimage ( void )

Associates the previous image in an image list with the Gmagick object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает GmagickException при ошибке.


Adds or removes a profile from an image

  • « Gmagick::previousimage
  • Gmagick::quantizeimage »
  • PHP Manual
  • Gmagick
  • Adds or removes a profile from an image

Gmagick::profileimage

(PECL gmagick >= Unknown)

Gmagick::profileimage — Adds or removes a profile from an image

Описание

public Gmagick Gmagick::profileimage ( string $name , string $profile )

Adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of '*' and a profile of NULL to remove all profiles from the image.

Список параметров

name

Name of profile to add or remove: ICC, IPTC, or generic profile.

profile

The profile.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Analyzes the colors within a reference image

  • « Gmagick::profileimage
  • Gmagick::quantizeimages »
  • PHP Manual
  • Gmagick
  • Analyzes the colors within a reference image

Gmagick::quantizeimage

(PECL gmagick >= Unknown)

Gmagick::quantizeimage — Analyzes the colors within a reference image

Описание

public Gmagick Gmagick::quantizeimage ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )

Analyzes the colors within a reference image and chooses a fixed number of colors to represent the image. The goal of the algorithm is to minimize the color difference between the input and output image while minimizing the processing time.

Список параметров

numColors

The number of colors.

colorspace

Perform color reduction in this colorspace, typically RGBColorspace.

treeDepth

Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors).% A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.

dither

A value other than zero distributes the difference between an original image and the corresponding color reduced algorithm to neighboring pixels along a Hilbert curve.

measureError

A value other than zero measures the difference between the original and quantized images. This difference is the total quantization error. The error is computed by summing over all pixels in an image the distance squared in RGB space between each reference pixel value and its quantized value.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


The quantizeimages purpose

  • « Gmagick::quantizeimage
  • Gmagick::queryfontmetrics »
  • PHP Manual
  • Gmagick
  • The quantizeimages purpose

Gmagick::quantizeimages

(PECL gmagick >= Unknown)

Gmagick::quantizeimages — The quantizeimages purpose

Описание

public Gmagick Gmagick::quantizeimages ( int $numColors , int $colorspace , int $treeDepth , bool $dither , bool $measureError )

Analyzes the colors within a sequence of images and chooses a fixed number of colors to represent the image. The goal of the algorithm is to minimize the color difference between the input and output image while minimizing the processing time.

Список параметров

numColors

The number of colors.

colorspace

Perform color reduction in this colorspace, typically RGBColorspace.

treeDepth

Normally, this integer value is zero or one. A zero or one tells Quantize to choose a optimal tree depth of Log4(number_colors).% A tree of this depth generally allows the best representation of the reference image with the least amount of memory and the fastest computational speed. In some cases, such as an image with low color dispersion (a few number of colors), a value other than Log4(number_colors) is required. To expand the color tree completely, use a value of 8.

dither

A value other than zero distributes the difference between an original image and the corresponding color reduced algorithm to neighboring pixels along a Hilbert curve.

measureError

A value other than zero measures the difference between the original and quantized images. This difference is the total quantization error. The error is computed by summing over all pixels in an image the distance squared in RGB space between each reference pixel value and its quantized value.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Returns an array representing the font metrics

  • « Gmagick::quantizeimages
  • Gmagick::queryfonts »
  • PHP Manual
  • Gmagick
  • Returns an array representing the font metrics

Gmagick::queryfontmetrics

(PECL gmagick >= Unknown)

Gmagick::queryfontmetrics — Returns an array representing the font metrics

Описание

public array Gmagick::queryfontmetrics ( GmagickDraw $draw , string $text )

MagickQueryFontMetrics() returns an array representing the font metrics.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Returns the configured fonts

  • « Gmagick::queryfontmetrics
  • Gmagick::queryformats »
  • PHP Manual
  • Gmagick
  • Returns the configured fonts

Gmagick::queryfonts

(PECL gmagick >= Unknown)

Gmagick::queryfonts — Returns the configured fonts

Описание

public array Gmagick::queryfonts ([ string $pattern = "*" ] )

Returns fonts supported by Gmagick.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Returns formats supported by Gmagick.

  • « Gmagick::queryfonts
  • Gmagick::radialblurimage »
  • PHP Manual
  • Gmagick
  • Returns formats supported by Gmagick.

Gmagick::queryformats

(PECL gmagick >= Unknown)

Gmagick::queryformats — Returns formats supported by Gmagick.

Описание

public array Gmagick::queryformats ([ string $pattern = "*" ] )

Returns formats supported by Gmagick.

Список параметров

pattern

Specifies a string containing a pattern.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Radial blurs an image

  • « Gmagick::queryformats
  • Gmagick::raiseimage »
  • PHP Manual
  • Gmagick
  • Radial blurs an image

Gmagick::radialblurimage

(PECL gmagick >= Unknown)

Gmagick::radialblurimage — Radial blurs an image

Описание

public Gmagick Gmagick::radialblurimage ( float $angle [, int $channel = Gmagick::CHANNEL_DEFAULT ] )

Radial blurs an image.

Список параметров

angle

The angle of the blur in degrees.

channel

Related channel

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Creates a simulated 3d button-like effect

  • « Gmagick::radialblurimage
  • Gmagick::read »
  • PHP Manual
  • Gmagick
  • Creates a simulated 3d button-like effect

Gmagick::raiseimage

(PECL gmagick >= Unknown)

Gmagick::raiseimage — Creates a simulated 3d button-like effect

Описание

public Gmagick Gmagick::raiseimage ( int $width , int $height , int $x , int $y , bool $raise )

Creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

Список параметров

width

Width of the area to raise.

height

Height of the area to raise.

x

X coordinate

y

Y coordinate

raise

A value other than zero creates a 3-D raise effect, otherwise it has a lowered effect.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Reads image from filename

  • « Gmagick::raiseimage
  • Gmagick::readimage »
  • PHP Manual
  • Gmagick
  • Reads image from filename

Gmagick::read

(PECL gmagick >= Unknown)

Gmagick::read — Reads image from filename

Описание

public Gmagick Gmagick::read ( string $filename )

Reads image from filename.

Список параметров

filename

The image filename.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Reads image from filename

  • « Gmagick::read
  • Gmagick::readimageblob »
  • PHP Manual
  • Gmagick
  • Reads image from filename

Gmagick::readimage

(PECL gmagick >= Unknown)

Gmagick::readimage — Reads image from filename

Описание

public Gmagick Gmagick::readimage ( string $filename )

Reads image from filename.

Список параметров

filename

The image filename.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Reads image from a binary string

  • « Gmagick::readimage
  • Gmagick::readimagefile »
  • PHP Manual
  • Gmagick
  • Reads image from a binary string

Gmagick::readimageblob

(PECL gmagick >= Unknown)

Gmagick::readimageblob — Reads image from a binary string

Описание

public Gmagick Gmagick::readimageblob ( string $imageContents [, string $filename ] )

Reads image from a binary string.

Список параметров

imageContents

Content of image

filename

The image filename.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


The readimagefile purpose

  • « Gmagick::readimageblob
  • Gmagick::reducenoiseimage »
  • PHP Manual
  • Gmagick
  • The readimagefile purpose

Gmagick::readimagefile

(PECL gmagick >= Unknown)

Gmagick::readimagefile — The readimagefile purpose

Описание

public Gmagick Gmagick::readimagefile ( resource $fp [, string $filename ] )

Reads an image or image sequence from an open file descriptor.

Список параметров

fp

The file descriptor.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Smooths the contours of an image

  • « Gmagick::readimagefile
  • Gmagick::removeimage »
  • PHP Manual
  • Gmagick
  • Smooths the contours of an image

Gmagick::reducenoiseimage

(PECL gmagick >= Unknown)

Gmagick::reducenoiseimage — Smooths the contours of an image

Описание

public Gmagick Gmagick::reducenoiseimage ( float $radius )

Smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and Gmagick::reduceNoiseImage() selects a suitable radius for you.

Список параметров

radius

The radius of the pixel neighborhood.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Removes an image from the image list

  • « Gmagick::reducenoiseimage
  • Gmagick::removeimageprofile »
  • PHP Manual
  • Gmagick
  • Removes an image from the image list

Gmagick::removeimage

(PECL gmagick >= Unknown)

Gmagick::removeimage — Removes an image from the image list

Описание

public Gmagick Gmagick::removeimage ( void )

Removes an image from the image list.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Removes the named image profile and returns it

  • « Gmagick::removeimage
  • Gmagick::resampleimage »
  • PHP Manual
  • Gmagick
  • Removes the named image profile and returns it

Gmagick::removeimageprofile

(PECL gmagick >= Unknown)

Gmagick::removeimageprofile — Removes the named image profile and returns it

Описание

public string Gmagick::removeimageprofile ( string $name )

Removes the named image profile and returns it.

Список параметров

name

Name of profile to return: ICC, IPTC, or generic profile.

Возвращаемые значения

The named profile.

Ошибки

Вызывает GmagickException при ошибке.


Resample image to desired resolution

  • « Gmagick::removeimageprofile
  • Gmagick::resizeimage »
  • PHP Manual
  • Gmagick
  • Resample image to desired resolution

Gmagick::resampleimage

(PECL gmagick >= Unknown)

Gmagick::resampleimage — Resample image to desired resolution

Описание

public Gmagick Gmagick::resampleimage ( float $xResolution , float $yResolution , int $filter , float $blur )

Resample image to desired resolution.

Список параметров

xResolution

The new image x resolution.

yResolution

The new image y resolution.

filter

Image filter to use.

blur

The blur factor where larger than 1 is blurry, smaller than 1 is sharp.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Scales an image

  • « Gmagick::resampleimage
  • Gmagick::rollimage »
  • PHP Manual
  • Gmagick
  • Scales an image

Gmagick::resizeimage

(PECL gmagick >= Unknown)

Gmagick::resizeimage — Scales an image

Описание

public Gmagick Gmagick::resizeimage ( int $width , int $height , int $filter , float $blur [, bool $fit = false ] )

Scales an image to the desired dimensions with a filter.

Список параметров

width

The number of columns in the scaled image.

height

The number of rows in the scaled image.

filter

Image filter to use.

blur

The blur factor where larger than 1 is blurry, lesser than 1 is sharp.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Offsets an image

  • « Gmagick::resizeimage
  • Gmagick::rotateimage »
  • PHP Manual
  • Gmagick
  • Offsets an image

Gmagick::rollimage

(PECL gmagick >= Unknown)

Gmagick::rollimage — Offsets an image

Описание

public Gmagick Gmagick::rollimage ( int $x , int $y )

Offsets an image as defined by x and y.

Список параметров

x

The x offset.

y

The y offset.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Rotates an image

  • « Gmagick::rollimage
  • Gmagick::scaleimage »
  • PHP Manual
  • Gmagick
  • Rotates an image

Gmagick::rotateimage

(PECL gmagick >= Unknown)

Gmagick::rotateimage — Rotates an image

Описание

public Gmagick Gmagick::rotateimage ( mixed $color , float $degrees )

Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

Список параметров

color

The background pixel.

degrees

The number of degrees to rotate the image.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Scales the size of an image

  • « Gmagick::rotateimage
  • Gmagick::separateimagechannel »
  • PHP Manual
  • Gmagick
  • Scales the size of an image

Gmagick::scaleimage

(PECL gmagick >= Unknown)

Gmagick::scaleimage — Scales the size of an image

Описание

public Gmagick Gmagick::scaleimage ( int $width , int $height [, bool $fit = false ] )

Scales the size of an image to the given dimensions. The other parameter will be calculated if 0 is passed as either param.

Список параметров

width

The number of columns in the scaled image.

height

The number of rows in the scaled image.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Separates a channel from the image

  • « Gmagick::scaleimage
  • Gmagick::setCompressionQuality »
  • PHP Manual
  • Gmagick
  • Separates a channel from the image

Gmagick::separateimagechannel

(PECL gmagick >= Unknown)

Gmagick::separateimagechannel — Separates a channel from the image

Описание

public Gmagick Gmagick::separateimagechannel ( int $channel )

Separates a channel from the image and returns a grayscale image. A channel is a particular color component of each pixel in the image.

Список параметров

channel

Identify which channel to extract: RedChannel, GreenChannel, BlueChannel, OpacityChannel, CyanChannel, MagentaChannel, YellowChannel, BlackChannel.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the object's default compression quality

  • « Gmagick::separateimagechannel
  • Gmagick::setfilename »
  • PHP Manual
  • Gmagick
  • Sets the object's default compression quality

Gmagick::setCompressionQuality

(Информация о версии неизвестна, возможно, только в SVN)

Gmagick::setCompressionQuality — Sets the object's default compression quality

Описание

Gmagick Gmagick::setCompressionQuality ( int $quality = 75 )

Sets the object's default compression quality.

Список параметров

quality

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.

Примеры

Пример #1 Gmagick::setCompressionQuality()

<?php
$gm = new Gmagick();
$gm->read("magick:rose");
$gm->setCompressionQuality(2);
?>


Sets the filename before you read or write the image

  • « Gmagick::setCompressionQuality
  • Gmagick::setimagebackgroundcolor »
  • PHP Manual
  • Gmagick
  • Sets the filename before you read or write the image

Gmagick::setfilename

(PECL gmagick >= Unknown)

Gmagick::setfilename — Sets the filename before you read or write the image

Описание

public Gmagick Gmagick::setfilename ( string $filename )

Sets the filename before you read or write an image file.

Список параметров

filename

The image filename.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image background color.

  • « Gmagick::setfilename
  • Gmagick::setimageblueprimary »
  • PHP Manual
  • Gmagick
  • Sets the image background color.

Gmagick::setimagebackgroundcolor

(PECL gmagick >= Unknown)

Gmagick::setimagebackgroundcolor — Sets the image background color.

Описание

public Gmagick Gmagick::setimagebackgroundcolor ( GmagickPixel $color )

Sets the image background color.

Список параметров

color

The background pixel wand.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image chromaticity blue primary point.

  • « Gmagick::setimagebackgroundcolor
  • Gmagick::setimagebordercolor »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity blue primary point.

Gmagick::setimageblueprimary

(PECL gmagick >= Unknown)

Gmagick::setimageblueprimary — Sets the image chromaticity blue primary point.

Описание

public Gmagick Gmagick::setimageblueprimary ( float $x , float $y )

Sets the image chromaticity blue primary point.

Список параметров

x

The blue primary x-point.

y

The blue primary y-point.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image border color.

  • « Gmagick::setimageblueprimary
  • Gmagick::setimagechanneldepth »
  • PHP Manual
  • Gmagick
  • Sets the image border color.

Gmagick::setimagebordercolor

(PECL gmagick >= Unknown)

Gmagick::setimagebordercolor — Sets the image border color.

Описание

public Gmagick Gmagick::setimagebordercolor ( GmagickPixel $color )

Sets the image border color.

Список параметров

color

The border pixel wand.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the depth of a particular image channel

  • « Gmagick::setimagebordercolor
  • Gmagick::setimagecolorspace »
  • PHP Manual
  • Gmagick
  • Sets the depth of a particular image channel

Gmagick::setimagechanneldepth

(PECL gmagick >= Unknown)

Gmagick::setimagechanneldepth — Sets the depth of a particular image channel

Описание

public Gmagick Gmagick::setimagechanneldepth ( int $channel , int $depth )

Sets the depth of a particular image channel.

Список параметров

channel

Identify which channel to extract: RedChannel, GreenChannel, BlueChannel, OpacityChannel, CyanChannel, MagentaChannel, YellowChannel, BlackChannel.

depth

The image depth in bits.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image colorspace

  • « Gmagick::setimagechanneldepth
  • Gmagick::setimagecompose »
  • PHP Manual
  • Gmagick
  • Sets the image colorspace

Gmagick::setimagecolorspace

(PECL gmagick >= Unknown)

Gmagick::setimagecolorspace — Sets the image colorspace

Описание

public Gmagick Gmagick::setimagecolorspace ( int $colorspace )

Sets the image colorspace.

Список параметров

colorspace

The image colorspace: UndefinedColorspace, RGBColorspace, GRAYColorspace, TransparentColorspace, OHTAColorspace, XYZColorspace, YCbCrColorspace, YCCColorspace, YIQColorspace, YPbPrColorspace, YPbPrColorspace, YUVColorspace, CMYKColorspace, sRGBColorspace, HSLColorspace, or HWBColorspace.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image composite operator

  • « Gmagick::setimagecolorspace
  • Gmagick::setimagedelay »
  • PHP Manual
  • Gmagick
  • Sets the image composite operator

Gmagick::setimagecompose

(PECL gmagick >= Unknown)

Gmagick::setimagecompose — Sets the image composite operator

Описание

public Gmagick Gmagick::setimagecompose ( int $composite )

Sets the image composite operator.

Список параметров

composite

The image composite operator.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image delay

  • « Gmagick::setimagecompose
  • Gmagick::setimagedepth »
  • PHP Manual
  • Gmagick
  • Sets the image delay

Gmagick::setimagedelay

(PECL gmagick >= Unknown)

Gmagick::setimagedelay — Sets the image delay

Описание

public Gmagick Gmagick::setimagedelay ( int $delay )

Sets the image delay

Список параметров

delay

The image delay in 1/100th of a second.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image depth

  • « Gmagick::setimagedelay
  • Gmagick::setimagedispose »
  • PHP Manual
  • Gmagick
  • Sets the image depth

Gmagick::setimagedepth

(PECL gmagick >= Unknown)

Gmagick::setimagedepth — Sets the image depth

Описание

public Gmagick Gmagick::setimagedepth ( int $depth )

Sets the image depth

Список параметров

depth

The image depth in bits: 8, 16, or 32.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image disposal method

  • « Gmagick::setimagedepth
  • Gmagick::setimagefilename »
  • PHP Manual
  • Gmagick
  • Sets the image disposal method

Gmagick::setimagedispose

(PECL gmagick >= Unknown)

Gmagick::setimagedispose — Sets the image disposal method

Описание

public Gmagick Gmagick::setimagedispose ( int $disposeType )

Sets the image disposal method.

Список параметров

disposeType

The image disposal type.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the filename of a particular image in a sequence

  • « Gmagick::setimagedispose
  • Gmagick::setimageformat »
  • PHP Manual
  • Gmagick
  • Sets the filename of a particular image in a sequence

Gmagick::setimagefilename

(PECL gmagick >= Unknown)

Gmagick::setimagefilename — Sets the filename of a particular image in a sequence

Описание

public Gmagick Gmagick::setimagefilename ( string $filename )

Sets the filename of a particular image in a sequence.

Список параметров

filename

The image filename.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the format of a particular image

  • « Gmagick::setimagefilename
  • Gmagick::setimagegamma »
  • PHP Manual
  • Gmagick
  • Sets the format of a particular image

Gmagick::setimageformat

(PECL gmagick >= Unknown)

Gmagick::setimageformat — Sets the format of a particular image

Описание

public Gmagick Gmagick::setimageformat ( string $imageFormat )

Sets the format of a particular image in a sequence.

Список параметров

imageFormat

The image format.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image gamma

  • « Gmagick::setimageformat
  • Gmagick::setimagegreenprimary »
  • PHP Manual
  • Gmagick
  • Sets the image gamma

Gmagick::setimagegamma

(PECL gmagick >= Unknown)

Gmagick::setimagegamma — Sets the image gamma

Описание

public Gmagick Gmagick::setimagegamma ( float $gamma )

Sets the image gamma.

Список параметров

gamma

The image gamma.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image chromaticity green primary point.

  • « Gmagick::setimagegamma
  • Gmagick::setimageindex »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity green primary point.

Gmagick::setimagegreenprimary

(PECL gmagick >= Unknown)

Gmagick::setimagegreenprimary — Sets the image chromaticity green primary point.

Описание

public Gmagick Gmagick::setimagegreenprimary ( float $x , float $y )

Sets the image chromaticity green primary point.

Список параметров

x

The chromaticity green primary x-point.

y

The chromaticity green primary y-point.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Set the iterator to the position in the image list specified with the index parameter

  • « Gmagick::setimagegreenprimary
  • Gmagick::setimageinterlacescheme »
  • PHP Manual
  • Gmagick
  • Set the iterator to the position in the image list specified with the index parameter

Gmagick::setimageindex

(PECL gmagick >= Unknown)

Gmagick::setimageindex — Set the iterator to the position in the image list specified with the index parameter

Описание

public Gmagick Gmagick::setimageindex ( int $index )

Set the iterator to the position in the image list specified with the index parameter.

Список параметров

index

The scene number.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the interlace scheme of the image.

  • « Gmagick::setimageindex
  • Gmagick::setimageiterations »
  • PHP Manual
  • Gmagick
  • Sets the interlace scheme of the image.

Gmagick::setimageinterlacescheme

(PECL gmagick >= Unknown)

Gmagick::setimageinterlacescheme — Sets the interlace scheme of the image.

Описание

public Gmagick Gmagick::setimageinterlacescheme ( int $interlace )

Sets the interlace scheme of the image.

Список параметров

interlace

The image interlace scheme: NoInterlace, LineInterlace, PlaneInterlace, PartitionInterlace.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Sets the image iterations.

  • « Gmagick::setimageinterlacescheme
  • Gmagick::setimageprofile »
  • PHP Manual
  • Gmagick
  • Sets the image iterations.

Gmagick::setimageiterations

(PECL gmagick >= Unknown)

Gmagick::setimageiterations — Sets the image iterations.

Описание

public Gmagick Gmagick::setimageiterations ( int $iterations )

Sets the image iterations.

Список параметров

iterations

The image delay in 1/100th of a second.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Adds a named profile to the Gmagick object

  • « Gmagick::setimageiterations
  • Gmagick::setimageredprimary »
  • PHP Manual
  • Gmagick
  • Adds a named profile to the Gmagick object

Gmagick::setimageprofile

(PECL gmagick >= Unknown)

Gmagick::setimageprofile — Adds a named profile to the Gmagick object

Описание

public Gmagick Gmagick::setimageprofile ( string $name , string $profile )

Adds a named profile to the Gmagick object. If a profile with the same name already exists, it is replaced. This method differs from the Gmagick::profileimage() method in that it does not apply any CMS color profiles.

Список параметров

name

Name of profile to add or remove: ICC, IPTC, or generic profile.

profile

The profile.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image chromaticity red primary point.

  • « Gmagick::setimageprofile
  • Gmagick::setimagerenderingintent »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity red primary point.

Gmagick::setimageredprimary

(PECL gmagick >= Unknown)

Gmagick::setimageredprimary — Sets the image chromaticity red primary point.

Описание

public Gmagick Gmagick::setimageredprimary ( float $x , float $y )

Sets the image chromaticity red primary point.

Список параметров

x

The red primary x-point.

y

The red primary y-point.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image rendering intent

  • « Gmagick::setimageredprimary
  • Gmagick::setimageresolution »
  • PHP Manual
  • Gmagick
  • Sets the image rendering intent

Gmagick::setimagerenderingintent

(PECL gmagick >= Unknown)

Gmagick::setimagerenderingintent — Sets the image rendering intent

Описание

public Gmagick Gmagick::setimagerenderingintent ( int $rendering_intent )

Sets the image rendering intent.

Список параметров

rendering_intent

The image rendering intent: UndefinedIntent, SaturationIntent, PerceptualIntent, AbsoluteIntent, or RelativeIntent.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image resolution

  • « Gmagick::setimagerenderingintent
  • Gmagick::setimagescene »
  • PHP Manual
  • Gmagick
  • Sets the image resolution

Gmagick::setimageresolution

(PECL gmagick >= Unknown)

Gmagick::setimageresolution — Sets the image resolution

Описание

public Gmagick Gmagick::setimageresolution ( float $xResolution , float $yResolution )

Sets the image resolution.

Список параметров

xResolution

The image x resolution.

yResolution

The image y resolution.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image scene

  • « Gmagick::setimageresolution
  • Gmagick::setimagetype »
  • PHP Manual
  • Gmagick
  • Sets the image scene

Gmagick::setimagescene

(PECL gmagick >= Unknown)

Gmagick::setimagescene — Sets the image scene

Описание

public Gmagick Gmagick::setimagescene ( int $scene )

Sets the image scene.

Список параметров

scene

The image scene number.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image type

  • « Gmagick::setimagescene
  • Gmagick::setimageunits »
  • PHP Manual
  • Gmagick
  • Sets the image type

Gmagick::setimagetype

(PECL gmagick >= Unknown)

Gmagick::setimagetype — Sets the image type

Описание

public Gmagick Gmagick::setimagetype ( int $imgType )

Sets the image type.

Список параметров

imgType

The image type: UndefinedType, BilevelType, GrayscaleType, GrayscaleMatteType, PaletteType, PaletteMatteType, TrueColorType, TrueColorMatteType, ColorSeparationType, ColorSeparationMatteType, or OptimizeType.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image units of resolution.

  • « Gmagick::setimagetype
  • Gmagick::setimagewhitepoint »
  • PHP Manual
  • Gmagick
  • Sets the image units of resolution.

Gmagick::setimageunits

(PECL gmagick >= Unknown)

Gmagick::setimageunits — Sets the image units of resolution.

Описание

public Gmagick Gmagick::setimageunits ( int $resolution )

Sets the image units of resolution.

Список параметров

resolution

The image units of resolution : Undefinedresolution, PixelsPerInchResolution, or PixelsPerCentimeterResolution.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image chromaticity white point.

  • « Gmagick::setimageunits
  • Gmagick::setsamplingfactors »
  • PHP Manual
  • Gmagick
  • Sets the image chromaticity white point.

Gmagick::setimagewhitepoint

(PECL gmagick >= Unknown)

Gmagick::setimagewhitepoint — Sets the image chromaticity white point.

Описание

public Gmagick Gmagick::setimagewhitepoint ( float $x , float $y )

Sets the image chromaticity white point.

Список параметров

x

The white x-point.

y

The white y-point.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the image sampling factors.

  • « Gmagick::setimagewhitepoint
  • Gmagick::setsize »
  • PHP Manual
  • Gmagick
  • Sets the image sampling factors.

Gmagick::setsamplingfactors

(PECL gmagick >= Unknown)

Gmagick::setsamplingfactors — Sets the image sampling factors.

Описание

public Gmagick Gmagick::setsamplingfactors ( array $factors )

Sets the image sampling factors.

Список параметров

factors

An array of doubles representing the sampling factor for each color component (in RGB order).

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Sets the size of the Gmagick object

  • « Gmagick::setsamplingfactors
  • Gmagick::shearimage »
  • PHP Manual
  • Gmagick
  • Sets the size of the Gmagick object

Gmagick::setsize

(PECL gmagick >= Unknown)

Gmagick::setsize — Sets the size of the Gmagick object

Описание

public Gmagick Gmagick::setsize ( int $columns , int $rows )

Sets the size of the Gmagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

Список параметров

columns

The width in pixels.

rows

The height in pixels.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Creating a parallelogram

  • « Gmagick::setsize
  • Gmagick::solarizeimage »
  • PHP Manual
  • Gmagick
  • Creating a parallelogram

Gmagick::shearimage

(PECL gmagick >= Unknown)

Gmagick::shearimage — Creating a parallelogram

Описание

public Gmagick Gmagick::shearimage ( mixed $color , float $xShear , float $yShear )

Slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color.

Список параметров

color

The background pixel wand.

xShear

The number of degrees to shear the image.

yShear

The number of degrees to shear the image.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Applies a solarizing effect to the image

  • « Gmagick::shearimage
  • Gmagick::spreadimage »
  • PHP Manual
  • Gmagick
  • Applies a solarizing effect to the image

Gmagick::solarizeimage

(PECL gmagick >= Unknown)

Gmagick::solarizeimage — Applies a solarizing effect to the image

Описание

public Gmagick Gmagick::solarizeimage ( int $threshold )

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.

Список параметров

threshold

Define the extent of the solarization.

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Randomly displaces each pixel in a block

  • « Gmagick::solarizeimage
  • Gmagick::stripimage »
  • PHP Manual
  • Gmagick
  • Randomly displaces each pixel in a block

Gmagick::spreadimage

(PECL gmagick >= Unknown)

Gmagick::spreadimage — Randomly displaces each pixel in a block

Описание

public Gmagick Gmagick::spreadimage ( float $radius )

Special effects method that randomly displaces each pixel in a block defined by the radius parameter.

Список параметров

radius

Choose a random pixel in a neighborhood of this extent.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Strips an image of all profiles and comments

  • « Gmagick::spreadimage
  • Gmagick::swirlimage »
  • PHP Manual
  • Gmagick
  • Strips an image of all profiles and comments

Gmagick::stripimage

(PECL gmagick >= Unknown)

Gmagick::stripimage — Strips an image of all profiles and comments

Описание

public Gmagick Gmagick::stripimage ( void )

Strips an image of all profiles and comments.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Swirls the pixels about the center of the image

  • « Gmagick::stripimage
  • Gmagick::thumbnailimage »
  • PHP Manual
  • Gmagick
  • Swirls the pixels about the center of the image

Gmagick::swirlimage

(PECL gmagick >= Unknown)

Gmagick::swirlimage — Swirls the pixels about the center of the image

Описание

public Gmagick Gmagick::swirlimage ( float $degrees )

Swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.

Список параметров

degrees

Define the tightness of the swirling effect.

Возвращаемые значения

The Gmagick object on success

Ошибки

Вызывает GmagickException при ошибке.


Changes the size of an image

  • « Gmagick::swirlimage
  • Gmagick::trimimage »
  • PHP Manual
  • Gmagick
  • Changes the size of an image

Gmagick::thumbnailimage

(PECL gmagick >= Unknown)

Gmagick::thumbnailimage — Changes the size of an image

Описание

public Gmagick Gmagick::thumbnailimage ( int $width , int $height [, bool $fit = false ] )

Changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small low cost thumbnail images suited for display on the Web. If TRUE is given as a third parameter then columns and rows parameters are used as maximums for each side. Both sides will be scaled down until the match or are smaller than the parameter given for the side.

Список параметров

width

Image width

height

Image height

Возвращаемые значения

The Gmagick object on success.

Ошибки

Вызывает GmagickException при ошибке.


Remove edges from the image

  • « Gmagick::thumbnailimage
  • Gmagick::write »
  • PHP Manual
  • Gmagick
  • Remove edges from the image

Gmagick::trimimage

(PECL gmagick >= Unknown)

Gmagick::trimimage — Remove edges from the image

Описание

public Gmagick Gmagick::trimimage ( float $fuzz )

Remove edges that are the background color from the image.

Список параметров

fuzz

By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. This parameter represents the variation on the quantum range.

Возвращаемые значения

The Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


Псевдоним Gmagick::writeimage

  • « Gmagick::trimimage
  • Gmagick::writeimage »
  • PHP Manual
  • Gmagick
  • Псевдоним Gmagick::writeimage

Gmagick::write

(PECL gmagick >= Unknown)

Gmagick::write — Псевдоним Gmagick::writeimage()

Описание

This method is an alias of Gmagick::writeimage().


Writes an image to the specified filename

  • « Gmagick::write
  • GmagickDraw »
  • PHP Manual
  • Gmagick
  • Writes an image to the specified filename

Gmagick::writeimage

(PECL gmagick >= Unknown)

Gmagick::writeimage — Writes an image to the specified filename

Описание

public Gmagick Gmagick::writeimage ( string $filename [, bool $all_frames = false ] )

Writes an image to the specified filename. If the filename parameter is NULL, the image is written to the filename set by Gmagick::ReadImage() or Gmagick::SetImageFilename().

Список параметров

filename

The image filename.

Возвращаемые значения

The Gmagick object

Ошибки

Вызывает GmagickException при ошибке.


The GmagickDraw class

(PECL gmagick >= Unknown)

Введение

Обзор классов

GmagickDraw {
/* Методы */
public GmagickDraw annotate ( float $x , float $y , string $text )
public GmagickDraw arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )
public GmagickDraw bezier ( array $coordinate_array )
public GmagickDraw ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )
public GmagickPixel getfillcolor ( void )
public float getfillopacity ( void )
public mixed getfont ( void )
public float getfontsize ( void )
public int getfontstyle ( void )
public int getfontweight ( void )
public GmagickPixel getstrokecolor ( void )
public float getstrokeopacity ( void )
public float getstrokewidth ( void )
public int gettextdecoration ( void )
public mixed gettextencoding ( void )
public GmagickDraw line ( float $sx , float $sy , float $ex , float $ey )
public GmagickDraw point ( float $x , float $y )
public GmagickDraw polygon ( array $coordinates )
public GmagickDraw polyline ( array $coordinate_array )
public GmagickDraw rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )
public GmagickDraw rotate ( float $degrees )
public GmagickDraw roundrectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )
public GmagickDraw scale ( float $x , float $y )
public GmagickDraw setfillcolor ( mixed $color )
public GmagickDraw setfillopacity ( float $fill_opacity )
public GmagickDraw setfont ( string $font )
public GmagickDraw setfontsize ( float $pointsize )
public GmagickDraw setfontstyle ( int $style )
public GmagickDraw setfontweight ( int $weight )
public GmagickDraw setstrokecolor ( mixed $color )
public GmagickDraw setstrokeopacity ( float $stroke_opacity )
public GmagickDraw setstrokewidth ( float $width )
public GmagickDraw settextdecoration ( int $decoration )
public GmagickDraw settextencoding ( string $encoding )
}

Содержание

  • GmagickDraw::annotate — Draws text on the image
  • GmagickDraw::arc — Draws an arc
  • GmagickDraw::bezier — Draws a bezier curve
  • GmagickDraw::ellipse — Draws an ellipse on the image
  • GmagickDraw::getfillcolor — Returns the fill color
  • GmagickDraw::getfillopacity — Returns the opacity used when drawing
  • GmagickDraw::getfont — Returns the font
  • GmagickDraw::getfontsize — Returns the font pointsize
  • GmagickDraw::getfontstyle — Returns the font style
  • GmagickDraw::getfontweight — Returns the font weight
  • GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines
  • GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines
  • GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines
  • GmagickDraw::gettextdecoration — Returns the text decoration
  • GmagickDraw::gettextencoding — Returns the code set used for text annotations
  • GmagickDraw::line — The line purpose
  • GmagickDraw::point — Draws a point
  • GmagickDraw::polygon — Draws a polygon
  • GmagickDraw::polyline — Draws a polyline
  • GmagickDraw::rectangle — Draws a rectangle
  • GmagickDraw::rotate — Applies the specified rotation to the current coordinate space
  • GmagickDraw::roundrectangle — Draws a rounded rectangle
  • GmagickDraw::scale — Adjusts the scaling factor
  • GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects.
  • GmagickDraw::setfillopacity — The setfillopacity purpose
  • GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text.
  • GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text.
  • GmagickDraw::setfontstyle — Sets the font style to use when annotating with text
  • GmagickDraw::setfontweight — Sets the font weight
  • GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines.
  • GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines.
  • GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines.
  • GmagickDraw::settextdecoration — Specifies a decoration
  • GmagickDraw::settextencoding — Specifies the text code set


Draws text on the image

  • « GmagickDraw
  • GmagickDraw::arc »
  • PHP Manual
  • GmagickDraw
  • Draws text on the image

GmagickDraw::annotate

(PECL gmagick >= Unknown)

GmagickDraw::annotate — Draws text on the image

Описание

public GmagickDraw GmagickDraw::annotate ( float $x , float $y , string $text )

Draws text on the image.

Список параметров

x

x ordinate to left of text

y

y ordinate to text baseline

text

text to draw

Возвращаемые значения

The GmagickDraw object on success.


Draws an arc

  • « GmagickDraw::annotate
  • GmagickDraw::bezier »
  • PHP Manual
  • GmagickDraw
  • Draws an arc

GmagickDraw::arc

(PECL gmagick >= Unknown)

GmagickDraw::arc — Draws an arc

Описание

public GmagickDraw GmagickDraw::arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )

Draws an arc falling within a specified bounding rectangle on the image.

Список параметров

sx

starting x ordinate of bounding rectangle

sy

starting y ordinate of bounding rectangle

ex

ending x ordinate of bounding rectangle

ey

ending y ordinate of bounding rectangle

sd

starting degrees of rotation

ed

ending degrees of rotation

Возвращаемые значения

The GmagickDraw object on success.


Draws a bezier curve

  • « GmagickDraw::arc
  • GmagickDraw::ellipse »
  • PHP Manual
  • GmagickDraw
  • Draws a bezier curve

GmagickDraw::bezier

(PECL gmagick >= Unknown)

GmagickDraw::bezier — Draws a bezier curve

Описание

public GmagickDraw GmagickDraw::bezier ( array $coordinate_array )

Draws a bezier curve through a set of points on the image.

Список параметров

coordinate_array

Coordinates array

Возвращаемые значения

The GmagickDraw object on success


Draws an ellipse on the image

  • « GmagickDraw::bezier
  • GmagickDraw::getfillcolor »
  • PHP Manual
  • GmagickDraw
  • Draws an ellipse on the image

GmagickDraw::ellipse

(PECL gmagick >= Unknown)

GmagickDraw::ellipse — Draws an ellipse on the image

Описание

public GmagickDraw GmagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )

Draws an ellipse on the image.

Список параметров

ox

origin x ordinate

oy

origin y ordinate

rx

radius in x

ry

radius in y

start

starting rotation in degrees

end

ending rotation in degrees

Возвращаемые значения

The GmagickDraw object on success


Returns the fill color

  • « GmagickDraw::ellipse
  • GmagickDraw::getfillopacity »
  • PHP Manual
  • GmagickDraw
  • Returns the fill color

GmagickDraw::getfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::getfillcolor — Returns the fill color

Описание

public GmagickPixel GmagickDraw::getfillcolor ( void )

Returns the fill color used for drawing filled objects.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The GmagickPixel fill color used for drawing filled objects.


Returns the opacity used when drawing

  • « GmagickDraw::getfillcolor
  • GmagickDraw::getfont »
  • PHP Manual
  • GmagickDraw
  • Returns the opacity used when drawing

GmagickDraw::getfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::getfillopacity — Returns the opacity used when drawing

Описание

public float GmagickDraw::getfillopacity ( void )

Returns the opacity used when drawing

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the opacity used when drawing using the fill color or fill texture. Fully opaque is 1.0.


Returns the font

  • « GmagickDraw::getfillopacity
  • GmagickDraw::getfontsize »
  • PHP Manual
  • GmagickDraw
  • Returns the font

GmagickDraw::getfont

(PECL gmagick >= Unknown)

GmagickDraw::getfont — Returns the font

Описание

public mixed GmagickDraw::getfont ( void )

Returns a string specifying the font used when annotating with text.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and FALSE if no font is set.


Returns the font pointsize

  • « GmagickDraw::getfont
  • GmagickDraw::getfontstyle »
  • PHP Manual
  • GmagickDraw
  • Returns the font pointsize

GmagickDraw::getfontsize

(PECL gmagick >= Unknown)

GmagickDraw::getfontsize — Returns the font pointsize

Описание

public float GmagickDraw::getfontsize ( void )

Returns the font pointsize used when annotating with text.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the font size associated with the current GmagickDraw object.


Returns the font style

  • « GmagickDraw::getfontsize
  • GmagickDraw::getfontweight »
  • PHP Manual
  • GmagickDraw
  • Returns the font style

GmagickDraw::getfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::getfontstyle — Returns the font style

Описание

public int GmagickDraw::getfontstyle ( void )

Returns the font style used when annotating with text.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the font style constant (STYLE_) associated with the GmagickDraw object or 0 if no style is set.


Returns the font weight

  • « GmagickDraw::getfontstyle
  • GmagickDraw::getstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Returns the font weight

GmagickDraw::getfontweight

(PECL gmagick >= Unknown)

GmagickDraw::getfontweight — Returns the font weight

Описание

public int GmagickDraw::getfontweight ( void )

Returns the font weight used when annotating with text.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an int on success and 0 if no weight is set.


Returns the color used for stroking object outlines

  • « GmagickDraw::getfontweight
  • GmagickDraw::getstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Returns the color used for stroking object outlines

GmagickDraw::getstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::getstrokecolor — Returns the color used for stroking object outlines

Описание

public GmagickPixel GmagickDraw::getstrokecolor ( void )

Returns the color used for stroking object outlines.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an GmagickPixel object which describes the color.


Returns the opacity of stroked object outlines

  • « GmagickDraw::getstrokecolor
  • GmagickDraw::getstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Returns the opacity of stroked object outlines

GmagickDraw::getstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::getstrokeopacity — Returns the opacity of stroked object outlines

Описание

public float GmagickDraw::getstrokeopacity ( void )

Returns the opacity of stroked object outlines.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a double describing the opacity.


Returns the width of the stroke used to draw object outlines

  • « GmagickDraw::getstrokeopacity
  • GmagickDraw::gettextdecoration »
  • PHP Manual
  • GmagickDraw
  • Returns the width of the stroke used to draw object outlines

GmagickDraw::getstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::getstrokewidth — Returns the width of the stroke used to draw object outlines

Описание

public float GmagickDraw::getstrokewidth ( void )

Returns the width of the stroke used to draw object outlines.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a double describing the stroke width.


Returns the text decoration

  • « GmagickDraw::getstrokewidth
  • GmagickDraw::gettextencoding »
  • PHP Manual
  • GmagickDraw
  • Returns the text decoration

GmagickDraw::gettextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::gettextdecoration — Returns the text decoration

Описание

public int GmagickDraw::gettextdecoration ( void )

Returns the decoration applied when annotating with text.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns one of the DECORATION_ constants and 0 if no decoration is set.


Returns the code set used for text annotations

  • « GmagickDraw::gettextdecoration
  • GmagickDraw::line »
  • PHP Manual
  • GmagickDraw
  • Returns the code set used for text annotations

GmagickDraw::gettextencoding

(PECL gmagick >= Unknown)

GmagickDraw::gettextencoding — Returns the code set used for text annotations

Описание

public mixed GmagickDraw::gettextencoding ( void )

Returns a string which specifies the code set used for text annotations.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string specifying the code set or FALSE if text encoding is not set.


The line purpose

  • « GmagickDraw::gettextencoding
  • GmagickDraw::point »
  • PHP Manual
  • GmagickDraw
  • The line purpose

GmagickDraw::line

(PECL gmagick >= Unknown)

GmagickDraw::line — The line purpose

Описание

public GmagickDraw GmagickDraw::line ( float $sx , float $sy , float $ex , float $ey )

Draws a line on the image using the current stroke color, stroke opacity, and stroke width.

Список параметров

sx

starting x ordinate

sy

starting y ordinate

ex

ending x ordinate

ey

ending y ordinate

Возвращаемые значения

The GmagickDraw object on success


Draws a point

  • « GmagickDraw::line
  • GmagickDraw::polygon »
  • PHP Manual
  • GmagickDraw
  • Draws a point

GmagickDraw::point

(PECL gmagick >= Unknown)

GmagickDraw::point — Draws a point

Описание

public GmagickDraw GmagickDraw::point ( float $x , float $y )

Draws a point using the current stroke color and stroke thickness at the specified coordinates.

Список параметров

x

target x coordinate

y

target y coordinate

Возвращаемые значения

The GmagickDraw object on success


Draws a polygon

  • « GmagickDraw::point
  • GmagickDraw::polyline »
  • PHP Manual
  • GmagickDraw
  • Draws a polygon

GmagickDraw::polygon

(PECL gmagick >= Unknown)

GmagickDraw::polygon — Draws a polygon

Описание

public GmagickDraw GmagickDraw::polygon ( array $coordinates )

Draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Список параметров

coordinates

coordinate array

Возвращаемые значения

The GmagickDraw object on success


Draws a polyline

  • « GmagickDraw::polygon
  • GmagickDraw::rectangle »
  • PHP Manual
  • GmagickDraw
  • Draws a polyline

GmagickDraw::polyline

(PECL gmagick >= Unknown)

GmagickDraw::polyline — Draws a polyline

Описание

public GmagickDraw GmagickDraw::polyline ( array $coordinate_array )

Draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Список параметров

coordinate_array

The array of coordinates

Возвращаемые значения

The GmagickDraw object on success


Draws a rectangle

  • « GmagickDraw::polyline
  • GmagickDraw::rotate »
  • PHP Manual
  • GmagickDraw
  • Draws a rectangle

GmagickDraw::rectangle

(PECL gmagick >= Unknown)

GmagickDraw::rectangle — Draws a rectangle

Описание

public GmagickDraw GmagickDraw::rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )

Draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

Список параметров

x1

x ordinate of first coordinate

y1

y ordinate of first coordinate

x2

x ordinate of second coordinate

y2

y ordinate of second coordinate

Возвращаемые значения

The GmagickDraw object on success


Applies the specified rotation to the current coordinate space

  • « GmagickDraw::rectangle
  • GmagickDraw::roundrectangle »
  • PHP Manual
  • GmagickDraw
  • Applies the specified rotation to the current coordinate space

GmagickDraw::rotate

(PECL gmagick >= Unknown)

GmagickDraw::rotate — Applies the specified rotation to the current coordinate space

Описание

public GmagickDraw GmagickDraw::rotate ( float $degrees )

Applies the specified rotation to the current coordinate space.

Список параметров

degrees

degrees of rotation

Возвращаемые значения

The GmagickDraw object on success


Draws a rounded rectangle

  • « GmagickDraw::rotate
  • GmagickDraw::scale »
  • PHP Manual
  • GmagickDraw
  • Draws a rounded rectangle

GmagickDraw::roundrectangle

(PECL gmagick >= Unknown)

GmagickDraw::roundrectangle — Draws a rounded rectangle

Описание

public GmagickDraw GmagickDraw::roundrectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )

Draws a rounded rectangle given two coordinates, x and y corner radiuses and using the current stroke, stroke width, and fill settings.

Список параметров

x1

x ordinate of first coordinate

y1

y ordinate of first coordinate

x2

x ordinate of second coordinate

y2

y ordinate of second coordinate

rx

radius of corner in horizontal direction

ry

radius of corner in vertical direction

Возвращаемые значения

The GmagickDraw object on success


Adjusts the scaling factor

  • « GmagickDraw::roundrectangle
  • GmagickDraw::setfillcolor »
  • PHP Manual
  • GmagickDraw
  • Adjusts the scaling factor

GmagickDraw::scale

(PECL gmagick >= Unknown)

GmagickDraw::scale — Adjusts the scaling factor

Описание

public GmagickDraw GmagickDraw::scale ( float $x , float $y )

Adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

Список параметров

x

horizontal scale factor

y

vertical scale factor

Возвращаемые значения

The GmagickDraw object on success


Sets the fill color to be used for drawing filled objects.

  • « GmagickDraw::scale
  • GmagickDraw::setfillopacity »
  • PHP Manual
  • GmagickDraw
  • Sets the fill color to be used for drawing filled objects.

GmagickDraw::setfillcolor

(PECL gmagick >= Unknown)

GmagickDraw::setfillcolor — Sets the fill color to be used for drawing filled objects.

Описание

public GmagickDraw GmagickDraw::setfillcolor ( mixed $color )

Sets the fill color to be used for drawing filled objects.

Список параметров

color

GmagickPixel or string indicating color to use for filling.

Возвращаемые значения

The GmagickDraw object on success.


The setfillopacity purpose

  • « GmagickDraw::setfillcolor
  • GmagickDraw::setfont »
  • PHP Manual
  • GmagickDraw
  • The setfillopacity purpose

GmagickDraw::setfillopacity

(PECL gmagick >= Unknown)

GmagickDraw::setfillopacity — The setfillopacity purpose

Описание

public GmagickDraw GmagickDraw::setfillopacity ( float $fill_opacity )

Sets the opacity to use when drawing using the fill color or fill texture. Setting it to 1.0 will make fill full opaque.

Список параметров

fill_opacity

Fill opacity

Возвращаемые значения

The GmagickDraw object on success


Sets the fully-specified font to use when annotating with text.

  • « GmagickDraw::setfillopacity
  • GmagickDraw::setfontsize »
  • PHP Manual
  • GmagickDraw
  • Sets the fully-specified font to use when annotating with text.

GmagickDraw::setfont

(PECL gmagick >= Unknown)

GmagickDraw::setfont — Sets the fully-specified font to use when annotating with text.

Описание

public GmagickDraw GmagickDraw::setfont ( string $font )

Sets the fully-specified font to use when annotating with text

Список параметров

font

font name

Возвращаемые значения

The GmagickDraw object on success


Sets the font pointsize to use when annotating with text.

  • « GmagickDraw::setfont
  • GmagickDraw::setfontstyle »
  • PHP Manual
  • GmagickDraw
  • Sets the font pointsize to use when annotating with text.

GmagickDraw::setfontsize

(PECL gmagick >= Unknown)

GmagickDraw::setfontsize — Sets the font pointsize to use when annotating with text.

Описание

public GmagickDraw GmagickDraw::setfontsize ( float $pointsize )

Sets the font pointsize to use when annotating with text.

Список параметров

pointsize

Text pointsize

Возвращаемые значения

The GmagickDraw object on success


Sets the font style to use when annotating with text

  • « GmagickDraw::setfontsize
  • GmagickDraw::setfontweight »
  • PHP Manual
  • GmagickDraw
  • Sets the font style to use when annotating with text

GmagickDraw::setfontstyle

(PECL gmagick >= Unknown)

GmagickDraw::setfontstyle — Sets the font style to use when annotating with text

Описание

public GmagickDraw GmagickDraw::setfontstyle ( int $style )

Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

Список параметров

style

Font style (NormalStyle, ItalicStyle, ObliqueStyle, AnyStyle)

Возвращаемые значения

The GmagickDraw object on success


Sets the font weight

  • « GmagickDraw::setfontstyle
  • GmagickDraw::setstrokecolor »
  • PHP Manual
  • GmagickDraw
  • Sets the font weight

GmagickDraw::setfontweight

(PECL gmagick >= Unknown)

GmagickDraw::setfontweight — Sets the font weight

Описание

public GmagickDraw GmagickDraw::setfontweight ( int $weight )

Sets the font weight to use when annotating with text.

Список параметров

weight

Font weight (valid range 100-900)

Возвращаемые значения

The GmagickDraw object on success


Sets the color used for stroking object outlines.

  • « GmagickDraw::setfontweight
  • GmagickDraw::setstrokeopacity »
  • PHP Manual
  • GmagickDraw
  • Sets the color used for stroking object outlines.

GmagickDraw::setstrokecolor

(PECL gmagick >= Unknown)

GmagickDraw::setstrokecolor — Sets the color used for stroking object outlines.

Описание

public GmagickDraw GmagickDraw::setstrokecolor ( mixed $color )

Sets the color used for stroking object outlines.

Список параметров

color

GmagickPixel or string representing the color for the stroke.

Возвращаемые значения

The GmagickDraw object on success.


Specifies the opacity of stroked object outlines.

  • « GmagickDraw::setstrokecolor
  • GmagickDraw::setstrokewidth »
  • PHP Manual
  • GmagickDraw
  • Specifies the opacity of stroked object outlines.

GmagickDraw::setstrokeopacity

(PECL gmagick >= Unknown)

GmagickDraw::setstrokeopacity — Specifies the opacity of stroked object outlines.

Описание

public GmagickDraw GmagickDraw::setstrokeopacity ( float $stroke_opacity )

Specifies the opacity of stroked object outlines.

Список параметров

stroke_opacity

Stroke opacity. The value 1.0 is opaque.

Возвращаемые значения

The GmagickDraw object on success


Sets the width of the stroke used to draw object outlines.

  • « GmagickDraw::setstrokeopacity
  • GmagickDraw::settextdecoration »
  • PHP Manual
  • GmagickDraw
  • Sets the width of the stroke used to draw object outlines.

GmagickDraw::setstrokewidth

(PECL gmagick >= Unknown)

GmagickDraw::setstrokewidth — Sets the width of the stroke used to draw object outlines.

Описание

public GmagickDraw GmagickDraw::setstrokewidth ( float $width )

Sets the width of the stroke used to draw object outlines

Список параметров

width

Stroke width

Возвращаемые значения

The GmagickDraw object on success


Specifies a decoration

  • « GmagickDraw::setstrokewidth
  • GmagickDraw::settextencoding »
  • PHP Manual
  • GmagickDraw
  • Specifies a decoration

GmagickDraw::settextdecoration

(PECL gmagick >= Unknown)

GmagickDraw::settextdecoration — Specifies a decoration

Описание

public GmagickDraw GmagickDraw::settextdecoration ( int $decoration )

Specifies a decoration to be applied when annotating with text.

Список параметров

int

Text decoration. One of NoDecoration, UnderlineDecoration, OverlineDecoration, or LineThroughDecoration

Возвращаемые значения

The GmagickDraw object on success


Specifies the text code set

  • « GmagickDraw::settextdecoration
  • GmagickPixel »
  • PHP Manual
  • GmagickDraw
  • Specifies the text code set

GmagickDraw::settextencoding

(PECL gmagick >= Unknown)

GmagickDraw::settextencoding — Specifies the text code set

Описание

public GmagickDraw GmagickDraw::settextencoding ( string $encoding )

Specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

Список параметров

encoding

Character string specifying text encoding

Возвращаемые значения

The GmagickDraw object on success


The GmagickPixel class

(PECL gmagick >= Unknown)

Введение

Обзор классов

GmagickPixel {
/* Методы */
public __construct ([ string $color ] )
public mixed getcolor ([ bool $as_array = false [, bool $normalize_array = false ]] )
public int getcolorcount ( void )
public float getcolorvalue ( int $color )
public GmagickPixel setcolor ( string $color )
public GmagickPixel setcolorvalue ( int $color , float $value )
}

Содержание

  • GmagickPixel::__construct — Конструктора класса GmagickPixel
  • GmagickPixel::getcolor — Возвращает цвет
  • GmagickPixel::getcolorcount — Returns the color count associated with this color
  • GmagickPixel::getcolorvalue — Gets the normalized value of the provided color channel
  • GmagickPixel::setcolor — Sets the color
  • GmagickPixel::setcolorvalue — Sets the normalized value of one of the channels


Конструктора класса GmagickPixel

  • « GmagickPixel
  • GmagickPixel::getcolor »
  • PHP Manual
  • GmagickPixel
  • Конструктора класса GmagickPixel

GmagickPixel::__construct

(PECL gmagick >= Unknown)

GmagickPixel::__construct — Конструктора класса GmagickPixel

Описание

public GmagickPixel::__construct ([ string $color ] )

Создаёт новый объект класса GmagickPixel. Если указан цвет, то объект будет инициализирован этим цветом.

Список параметров

color

Опциональный параметер, используется для начального значения цвета объекта.

Возвращаемые значения

Объект GmagickPixel в случае успеха.


Возвращает цвет

  • « GmagickPixel::__construct
  • GmagickPixel::getcolorcount »
  • PHP Manual
  • GmagickPixel
  • Возвращает цвет

GmagickPixel::getcolor

(PECL gmagick >= Unknown)

GmagickPixel::getcolor — Возвращает цвет

Описание

public mixed GmagickPixel::getcolor ([ bool $as_array = false [, bool $normalize_array = false ]] )

Возарвщает цвет объекта GmagickPixel в виде массива (array) либо строки (string). Если для цвета установлена прозрачность, то её значение возращается в четвёртом элементе списка.

Список параметров

as_array

TRUE для типа возвращаемого значения array, а не string.

normalize_array

Значение цветов будут нормированы, если TRUE.

Возвращаемые значения

string или array со значениями цветов, нормированными, если параметр normalize_array установлен в TRUE. Бросает исключение GmagickPixelException в случае ошибки.


Returns the color count associated with this color

  • « GmagickPixel::getcolor
  • GmagickPixel::getcolorvalue »
  • PHP Manual
  • GmagickPixel
  • Returns the color count associated with this color

GmagickPixel::getcolorcount

(PECL gmagick >= Unknown)

GmagickPixel::getcolorcount — Returns the color count associated with this color

Описание

public int GmagickPixel::getcolorcount ( void )

Returns the color count associated with this color

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the color count as an integer on success, throws GmagickPixelException on failure.


Gets the normalized value of the provided color channel

  • « GmagickPixel::getcolorcount
  • GmagickPixel::setcolor »
  • PHP Manual
  • GmagickPixel
  • Gets the normalized value of the provided color channel

GmagickPixel::getcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::getcolorvalue — Gets the normalized value of the provided color channel

Описание

public float GmagickPixel::getcolorvalue ( int $color )

Retrieves the value of the color channel specified, as a floating-point number between 0 and 1.

Список параметров

color

The channel to check, specified as one of the Gmagick channel constants.

Возвращаемые значения

The value of the channel, as a normalized floating-point number, throwing GmagickPixelException on error.


Sets the color

  • « GmagickPixel::getcolorvalue
  • GmagickPixel::setcolorvalue »
  • PHP Manual
  • GmagickPixel
  • Sets the color

GmagickPixel::setcolor

(PECL gmagick >= Unknown)

GmagickPixel::setcolor — Sets the color

Описание

public GmagickPixel GmagickPixel::setcolor ( string $color )

Sets the color described by the GmagickPixel object, with a string (e.g. "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)", etc.).

Список параметров

color

The color definition to use in order to initialise the GmagickPixel object.

Возвращаемые значения

The GmagickPixel object on success.


Sets the normalized value of one of the channels

  • « GmagickPixel::setcolor
  • ImageMagick »
  • PHP Manual
  • GmagickPixel
  • Sets the normalized value of one of the channels

GmagickPixel::setcolorvalue

(PECL gmagick >= Unknown)

GmagickPixel::setcolorvalue — Sets the normalized value of one of the channels

Описание

public GmagickPixel GmagickPixel::setcolorvalue ( int $color , float $value )

Sets the value of the specified channel of this object to the provided value, which should be between 0 and 1. This function can be used to provide an opacity channel to a GmagickPixel object.

Список параметров

color

One of the Gmagick channel color constants.

value

The value to set this channel to, ranging from 0 to 1.

Возвращаемые значения

The GmagickPixel object on success.


Обработка изображений (ImageMagick)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
  • Imagick — Класс Imagick
    • Imagick::adaptiveBlurImage — Добавляет адаптивный фильтр размытия к изображению
    • Imagick::adaptiveResizeImage — Адаптивное изменение размера изображения с данными триангуляции
    • Imagick::adaptiveSharpenImage — Адаптивное изменение резкости изображения
    • Imagick::adaptiveThresholdImage — Выбор порога для каждого пикселя в зависимости от диапазона интенсивности
    • Imagick::addImage — Добавляет новое изображение к списку изображений объекта Imagick
    • Imagick::addNoiseImage — Накладывает случайный шум на изображение
    • Imagick::affineTransformImage — Преобразование изображения
    • Imagick::animateImages — Анимация одного или нескольких изображений
    • Imagick::annotateImage — Добавляет текстовый комментарий на изображение
    • Imagick::appendImages — Объединяет набор изображений
    • Imagick::autoLevelImage — Description
    • Imagick::averageImages — Усредняет набор изображений
    • Imagick::blackThresholdImage — Перевести все пиксели ниже порогового значения в черный цвет
    • Imagick::blueShiftImage — Description
    • Imagick::blurImage — Добавляет фильтр размытия к изображению
    • Imagick::borderImage — Окружает изображение рамкой
    • Imagick::brightnessContrastImage — Description
    • Imagick::charcoalImage — Рисование углем
    • Imagick::chopImage — Удаляет область изображения и обрезает его
    • Imagick::clampImage — Description
    • Imagick::clear — Очищает все ресурсы, связанные с объектом Imagick
    • Imagick::clipImage — Обрезка вдоль ближайшего контура с профилем 8BIM
    • Imagick::clipImagePath — Description
    • Imagick::clipPathImage — Отсечь вдоль обозначенного контура с профилем 8BIM
    • Imagick::clone — Создает точную копию объекта Imagick
    • Imagick::clutImage — Заменяет цвета в изображении
    • Imagick::coalesceImages — Composites a set of images
    • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
    • Imagick::colorizeImage — Смешивание цвета заливки с изображением
    • Imagick::colorMatrixImage — Description
    • Imagick::combineImages — Combines one or more images into a single image
    • Imagick::commentImage — Adds a comment to your image
    • Imagick::compareImageChannels — Returns the difference in one or more images
    • Imagick::compareImageLayers — Returns the maximum bounding region between images
    • Imagick::compareImages — Compares an image to a reconstructed image
    • Imagick::compositeImage — Composite one image onto another
    • Imagick::__construct — Конструктор объекта Imagick
    • Imagick::contrastImage — Change the contrast of the image
    • Imagick::contrastStretchImage — Enhances the contrast of a color image
    • Imagick::convolveImage — Applies a custom convolution kernel to the image
    • Imagick::count — Description
    • Imagick::cropImage — Извлекает область изображения
    • Imagick::cropThumbnailImage — Creates a crop thumbnail
    • Imagick::current — Возвращает ссылку на текущий объект Imagick
    • Imagick::cycleColormapImage — Displaces an image's colormap
    • Imagick::decipherImage — Deciphers an image
    • Imagick::deconstructImages — Returns certain pixel differences between images
    • Imagick::deleteImageArtifact — Delete image artifact
    • Imagick::deleteImageProperty — Description
    • Imagick::deskewImage — Removes skew from the image
    • Imagick::despeckleImage — Reduces the speckle noise in an image
    • Imagick::destroy — Удаляет объект Imagick
    • Imagick::displayImage — Выводит изображение
    • Imagick::displayImages — Выводит изображение или последовательность изображений
    • Imagick::distortImage — Distorts an image using various distortion methods
    • Imagick::drawImage — Выполняет рендеринг объекта ImagickDraw на текущем изображении
    • Imagick::edgeImage — Enhance edges within the image
    • Imagick::embossImage — Returns a grayscale image with a three-dimensional effect
    • Imagick::encipherImage — Enciphers an image
    • Imagick::enhanceImage — Improves the quality of a noisy image
    • Imagick::equalizeImage — Equalizes the image histogram
    • Imagick::evaluateImage — Applies an expression to an image
    • Imagick::exportImagePixels — Exports raw image pixels
    • Imagick::extentImage — Set image size
    • Imagick::filter — Description
    • Imagick::flattenImages — Merges a sequence of images
    • Imagick::flipImage — Создает вертикальное зеркало изображения
    • Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target
    • Imagick::flopImage — Создает горизонтальное зеркало изображения
    • Imagick::forwardFourierTransformImage — Description
    • Imagick::frameImage — Adds a simulated three-dimensional border
    • Imagick::functionImage — Applies a function on the image
    • Imagick::fxImage — Evaluate expression for each pixel in the image
    • Imagick::gammaImage — Gamma-corrects an image
    • Imagick::gaussianBlurImage — Blurs an image
    • Imagick::getColorspace — Возвращает цветовую палитру
    • Imagick::getCompression — Возвращает тип сжатия объекта
    • Imagick::getCompressionQuality — Возвращает качество сжатия объекта
    • Imagick::getCopyright — Возвращает копирайт API ImageMagick в виде строки
    • Imagick::getFilename — Имя файла результирующего изображения
    • Imagick::getFont — Возвращает название шрифта
    • Imagick::getFormat — Возвращает формат Imagick объекта
    • Imagick::getGravity — Возвращает значение гравитации (притяжения)
    • Imagick::getHomeURL — Возвращает домашний URL библиотеки ImageMagick
    • Imagick::getImage — Возвращает новый объект Imagick
    • Imagick::getImageAlphaChannel — Возвращает альфа-канал изображения
    • Imagick::getImageArtifact — Get image artifact
    • Imagick::getImageAttribute — Description
    • Imagick::getImageBackgroundColor — Возвращает цвет фона изображения
    • Imagick::getImageBlob — Returns the image sequence as a blob
    • Imagick::getImageBluePrimary — Returns the chromaticy blue primary point
    • Imagick::getImageBorderColor — Возвращает цвет рамки изображения
    • Imagick::getImageChannelDepth — Gets the depth for a particular image channel
    • Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image
    • Imagick::getImageChannelDistortions — Gets channel distortions
    • Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels
    • Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose
    • Imagick::getImageChannelMean — Gets the mean and standard deviation
    • Imagick::getImageChannelRange — Gets channel range
    • Imagick::getImageChannelStatistics — Returns statistics for each channel in the image
    • Imagick::getImageClipMask — Gets image clip mask
    • Imagick::getImageColormapColor — Returns the color of the specified colormap index
    • Imagick::getImageColors — Возвращает число уникальных цветов в изображении
    • Imagick::getImageColorspace — Возвращает цветовую палитру изображения
    • Imagick::getImageCompose — Возвращает составной оператор, связанный с изображением
    • Imagick::getImageCompression — Возвращает текущий тип компрессии изображения
    • Imagick::getImageCompressionQuality — Возвращает текущее качество сжатия изображения
    • Imagick::getImageDelay — Gets the image delay
    • Imagick::getImageDepth — Gets the image depth
    • Imagick::getImageDispose — Gets the image disposal method
    • Imagick::getImageDistortion — Compares an image to a reconstructed image
    • Imagick::getImageExtrema — Gets the extrema for the image
    • Imagick::getImageFilename — Возвращает имя файла конкретного изображения в последовательности
    • Imagick::getImageFormat — Возвращает формат конкретного изображения в последовательности
    • Imagick::getImageGamma — Возвращает гамму изображения
    • Imagick::getImageGeometry — Возвращает ширину и высоту в виде ассоциативного массива
    • Imagick::getImageGravity — Возвращает значение гравитации (притяжения)
    • Imagick::getImageGreenPrimary — Returns the chromaticy green primary point
    • Imagick::getImageHeight — Возвращает высоту изображения
    • Imagick::getImageHistogram — Gets the image histogram
    • Imagick::getImageIndex — Gets the index of the current active image
    • Imagick::getImageInterlaceScheme — Gets the image interlace scheme
    • Imagick::getImageInterpolateMethod — Returns the interpolation method
    • Imagick::getImageIterations — Gets the image iterations
    • Imagick::getImageLength — Returns the image length in bytes
    • Imagick::getImageMagickLicense — Returns a string containing the ImageMagick license
    • Imagick::getImageMatte — Return if the image has a matte channel
    • Imagick::getImageMatteColor — Returns the image matte color
    • Imagick::getImageMimeType — Description
    • Imagick::getImageOrientation — Gets the image orientation
    • Imagick::getImagePage — Returns the page geometry
    • Imagick::getImagePixelColor — Returns the color of the specified pixel
    • Imagick::getImageProfile — Returns the named image profile
    • Imagick::getImageProfiles — Returns the image profiles
    • Imagick::getImageProperties — Возвращает свойства изображения
    • Imagick::getImageProperty — Returns the named image property
    • Imagick::getImageRedPrimary — Returns the chromaticity red primary point
    • Imagick::getImageRegion — Extracts a region of the image
    • Imagick::getImageRenderingIntent — Gets the image rendering intent
    • Imagick::getImageResolution — Gets the image X and Y resolution
    • Imagick::getImagesBlob — Returns all image sequences as a blob
    • Imagick::getImageScene — Gets the image scene
    • Imagick::getImageSignature — Generates an SHA-256 message digest
    • Imagick::getImageSize — Возвращает размер (длину) изображения в байтах
    • Imagick::getImageTicksPerSecond — Gets the image ticks-per-second
    • Imagick::getImageTotalInkDensity — Gets the image total ink density
    • Imagick::getImageType — Возвращает возможный тип изображения
    • Imagick::getImageUnits — Gets the image units of resolution
    • Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method
    • Imagick::getImageWhitePoint — Returns the chromaticity white point
    • Imagick::getImageWidth — Возвращает ширину изображения
    • Imagick::getInterlaceScheme — Gets the object interlace scheme
    • Imagick::getIteratorIndex — Gets the index of the current active image
    • Imagick::getNumberImages — Returns the number of images in the object
    • Imagick::getOption — Returns a value associated with the specified key
    • Imagick::getPackageName — Returns the ImageMagick package name
    • Imagick::getPage — Returns the page geometry
    • Imagick::getPixelIterator — Returns a MagickPixelIterator
    • Imagick::getPixelRegionIterator — Возвращает объект ImagickPixelIterator для секции изображения
    • Imagick::getPointSize — Возвращает размер точки
    • Imagick::getQuantum — Description
    • Imagick::getQuantumDepth — Возвращает величину глубины
    • Imagick::getQuantumRange — Возвращает величину размера спектра Imagick
    • Imagick::getRegistry — Description
    • Imagick::getReleaseDate — Возвращает дату релиза ImageMagick
    • Imagick::getResource — Возвращает размер используемой памяти указанного ресурса
    • Imagick::getResourceLimit — Возвращает заданный лимит ресурсов
    • Imagick::getSamplingFactors — Возвращает горизонтальный и вертикальный фактор выборки
    • Imagick::getSize — Возвращает размер, связанный с объектом Imagick
    • Imagick::getSizeOffset — Возвращает размер смещения
    • Imagick::getVersion — Возвращает версию API ImageMagick
    • Imagick::haldClutImage — Replaces colors in the image
    • Imagick::hasNextImage — Checks if the object has more images
    • Imagick::hasPreviousImage — Checks if the object has a previous image
    • Imagick::identifyFormat — Description
    • Imagick::identifyImage — Определяет изображение и получает атрибуты
    • Imagick::implodeImage — Creates a new image as a copy
    • Imagick::importImagePixels — Imports image pixels
    • Imagick::inverseFourierTransformImage — Description
    • Imagick::labelImage — Adds a label to an image
    • Imagick::levelImage — Adjusts the levels of an image
    • Imagick::linearStretchImage — Stretches with saturation the image intensity
    • Imagick::liquidRescaleImage — Animates an image or images
    • Imagick::listRegistry — Description
    • Imagick::magnifyImage — Scales an image proportionally 2x
    • Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image.
    • Imagick::matteFloodfillImage — Changes the transparency value of a color
    • Imagick::medianFilterImage — Applies a digital filter
    • Imagick::mergeImageLayers — Merges image layers
    • Imagick::minifyImage — Scales an image proportionally to half its size
    • Imagick::modulateImage — Control the brightness, saturation, and hue
    • Imagick::montageImage — Creates a composite image
    • Imagick::morphImages — Method morphs a set of images
    • Imagick::morphology — Description
    • Imagick::mosaicImages — Forms a mosaic from images
    • Imagick::motionBlurImage — Simulates motion blur
    • Imagick::negateImage — Negates the colors in the reference image
    • Imagick::newImage — Creates a new image
    • Imagick::newPseudoImage — Creates a new image
    • Imagick::nextImage — Moves to the next image
    • Imagick::normalizeImage — Enhances the contrast of a color image
    • Imagick::oilPaintImage — Simulates an oil painting
    • Imagick::opaquePaintImage — Changes the color value of any pixel that matches target
    • Imagick::optimizeImageLayers — Removes repeated portions of images to optimize
    • Imagick::orderedPosterizeImage — Performs an ordered dither
    • Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target
    • Imagick::paintOpaqueImage — Change any pixel that matches color
    • Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill
    • Imagick::pingImage — Fetch basic attributes about the image
    • Imagick::pingImageBlob — Quickly fetch attributes
    • Imagick::pingImageFile — Get basic image attributes in a lightweight manner
    • Imagick::polaroidImage — Simulates a Polaroid picture
    • Imagick::posterizeImage — Reduces the image to a limited number of color level
    • Imagick::previewImages — Quickly pin-point appropriate parameters for image processing
    • Imagick::previousImage — Move to the previous image in the object
    • Imagick::profileImage — Adds or removes a profile from an image
    • Imagick::quantizeImage — Analyzes the colors within a reference image
    • Imagick::quantizeImages — Analyzes the colors within a sequence of images
    • Imagick::queryFontMetrics — Returns an array representing the font metrics
    • Imagick::queryFonts — Returns the configured fonts
    • Imagick::queryFormats — Returns formats supported by Imagick
    • Imagick::radialBlurImage — Radial blurs an image
    • Imagick::raiseImage — Creates a simulated 3d button-like effect
    • Imagick::randomThresholdImage — Creates a high-contrast, two-color image
    • Imagick::readImage — Reads image from filename
    • Imagick::readImageBlob — Reads image from a binary string
    • Imagick::readImageFile — Reads image from open filehandle
    • Imagick::readimages — Description
    • Imagick::recolorImage — Recolors image
    • Imagick::reduceNoiseImage — Smooths the contours of an image
    • Imagick::remapImage — Remaps image colors
    • Imagick::removeImage — Removes an image from the image list
    • Imagick::removeImageProfile — Removes the named image profile and returns it
    • Imagick::render — Renders all preceding drawing commands
    • Imagick::resampleImage — Resample image to desired resolution
    • Imagick::resetImagePage — Reset image page
    • Imagick::resizeImage — Scales an image
    • Imagick::rollImage — Offsets an image
    • Imagick::rotateImage — Rotates an image
    • Imagick::rotationalBlurImage — Description
    • Imagick::roundCorners — Rounds image corners
    • Imagick::sampleImage — Scales an image with pixel sampling
    • Imagick::scaleImage — Scales the size of an image
    • Imagick::segmentImage — Segments an image
    • Imagick::selectiveBlurImage — Description
    • Imagick::separateImageChannel — Separates a channel from the image
    • Imagick::sepiaToneImage — Sepia tones an image
    • Imagick::setBackgroundColor — Sets the object's default background color
    • Imagick::setColorspace — Set colorspace
    • Imagick::setCompression — Sets the object's default compression type
    • Imagick::setCompressionQuality — Sets the object's default compression quality
    • Imagick::setFilename — Sets the filename before you read or write the image
    • Imagick::setFirstIterator — Sets the Imagick iterator to the first image
    • Imagick::setFont — Sets font
    • Imagick::setFormat — Sets the format of the Imagick object
    • Imagick::setGravity — Sets the gravity
    • Imagick::setImage — Replaces image in the object
    • Imagick::setImageAlphaChannel — Sets image alpha channel
    • Imagick::setImageArtifact — Set image artifact
    • Imagick::setImageAttribute — Description
    • Imagick::setImageBackgroundColor — Sets the image background color
    • Imagick::setImageBias — Sets the image bias for any method that convolves an image
    • Imagick::setImageBiasQuantum — Description
    • Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point
    • Imagick::setImageBorderColor — Sets the image border color
    • Imagick::setImageChannelDepth — Sets the depth of a particular image channel
    • Imagick::setImageClipMask — Sets image clip mask
    • Imagick::setImageColormapColor — Sets the color of the specified colormap index
    • Imagick::setImageColorspace — Sets the image colorspace
    • Imagick::setImageCompose — Sets the image composite operator
    • Imagick::setImageCompression — Sets the image compression
    • Imagick::setImageCompressionQuality — Sets the image compression quality
    • Imagick::setImageDelay — Sets the image delay
    • Imagick::setImageDepth — Sets the image depth
    • Imagick::setImageDispose — Sets the image disposal method
    • Imagick::setImageExtent — Sets the image size
    • Imagick::setImageFilename — Sets the filename of a particular image
    • Imagick::setImageFormat — Sets the format of a particular image
    • Imagick::setImageGamma — Sets the image gamma
    • Imagick::setImageGravity — Sets the image gravity
    • Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point
    • Imagick::setImageIndex — Set the iterator position
    • Imagick::setImageInterlaceScheme — Sets the image compression
    • Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method
    • Imagick::setImageIterations — Sets the image iterations
    • Imagick::setImageMatte — Sets the image matte channel
    • Imagick::setImageMatteColor — Sets the image matte color
    • Imagick::setImageOpacity — Sets the image opacity level
    • Imagick::setImageOrientation — Sets the image orientation
    • Imagick::setImagePage — Sets the page geometry of the image
    • Imagick::setImageProfile — Adds a named profile to the Imagick object
    • Imagick::setImageProperty — Sets an image property
    • Imagick::setImageRedPrimary — Sets the image chromaticity red primary point
    • Imagick::setImageRenderingIntent — Sets the image rendering intent
    • Imagick::setImageResolution — Sets the image resolution
    • Imagick::setImageScene — Sets the image scene
    • Imagick::setImageTicksPerSecond — Sets the image ticks-per-second
    • Imagick::setImageType — Sets the image type
    • Imagick::setImageUnits — Sets the image units of resolution
    • Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method
    • Imagick::setImageWhitePoint — Sets the image chromaticity white point
    • Imagick::setInterlaceScheme — Sets the image compression
    • Imagick::setIteratorIndex — Set the iterator position
    • Imagick::setLastIterator — Sets the Imagick iterator to the last image
    • Imagick::setOption — Set an option
    • Imagick::setPage — Sets the page geometry of the Imagick object
    • Imagick::setPointSize — Sets point size
    • Imagick::setProgressMonitor — Description
    • Imagick::setRegistry — Description
    • Imagick::setResolution — Sets the image resolution
    • Imagick::setResourceLimit — Sets the limit for a particular resource in megabytes
    • Imagick::setSamplingFactors — Sets the image sampling factors
    • Imagick::setSize — Sets the size of the Imagick object
    • Imagick::setSizeOffset — Sets the size and offset of the Imagick object
    • Imagick::setType — Sets the image type attribute
    • Imagick::shadeImage — Creates a 3D effect
    • Imagick::shadowImage — Simulates an image shadow
    • Imagick::sharpenImage — Sharpens an image
    • Imagick::shaveImage — Shaves pixels from the image edges
    • Imagick::shearImage — Creating a parallelogram
    • Imagick::sigmoidalContrastImage — Adjusts the contrast of an image
    • Imagick::sketchImage — Simulates a pencil sketch
    • Imagick::smushImages — Description
    • Imagick::solarizeImage — Applies a solarizing effect to the image
    • Imagick::sparseColorImage — Interpolates colors
    • Imagick::spliceImage — Splices a solid color into the image
    • Imagick::spreadImage — Randomly displaces each pixel in a block
    • Imagick::statisticImage — Description
    • Imagick::steganoImage — Hides a digital watermark within the image
    • Imagick::stereoImage — Composites two images
    • Imagick::stripImage — Strips an image of all profiles and comments
    • Imagick::subImageMatch — Description
    • Imagick::swirlImage — Swirls the pixels about the center of the image
    • Imagick::textureImage — Repeatedly tiles the texture image
    • Imagick::thresholdImage — Изменяет отдельные пиксели на основе порогового значения
    • Imagick::thumbnailImage — Changes the size of an image
    • Imagick::tintImage — Applies a color vector to each pixel in the image
    • Imagick::__toString — Returns the image as a string.
    • Imagick::transformImage — Convenience method for setting crop size and the image geometry
    • Imagick::transformImageColorspace — Transforms an image to a new colorspace.
    • Imagick::transparentPaintImage — Paints pixels transparent
    • Imagick::transposeImage — Creates a vertical mirror image
    • Imagick::transverseImage — Creates a horizontal mirror image
    • Imagick::trimImage — Remove edges from the image
    • Imagick::uniqueImageColors — Discards all but one of any pixel color
    • Imagick::unsharpMaskImage — Sharpens an image
    • Imagick::valid — Checks if the current item is valid
    • Imagick::vignetteImage — Adds vignette filter to the image
    • Imagick::waveImage — Applies wave filter to the image
    • Imagick::whiteThresholdImage — Force all pixels above the threshold into white
    • Imagick::writeImage — Writes an image to the specified filename
    • Imagick::writeImageFile — Writes an image to a filehandle
    • Imagick::writeImages — Writes an image or image sequence
    • Imagick::writeImagesFile — Writes frames to a filehandle
  • ImagickDraw — Класс ImagickDraw
    • ImagickDraw::affine — Adjusts the current affine transformation matrix
    • ImagickDraw::annotation — Draws text on the image
    • ImagickDraw::arc — Draws an arc
    • ImagickDraw::bezier — Draws a bezier curve
    • ImagickDraw::circle — Draws a circle
    • ImagickDraw::clear — Clears the ImagickDraw
    • ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object
    • ImagickDraw::color — Draws color on image
    • ImagickDraw::comment — Adds a comment
    • ImagickDraw::composite — Composites an image onto the current image
    • ImagickDraw::__construct — The ImagickDraw constructor
    • ImagickDraw::destroy — Frees all associated resources
    • ImagickDraw::ellipse — Draws an ellipse on the image
    • ImagickDraw::getClipPath — Obtains the current clipping path ID
    • ImagickDraw::getClipRule — Returns the current polygon fill rule
    • ImagickDraw::getClipUnits — Returns the interpretation of clip path units
    • ImagickDraw::getFillColor — Returns the fill color
    • ImagickDraw::getFillOpacity — Returns the opacity used when drawing
    • ImagickDraw::getFillRule — Returns the fill rule
    • ImagickDraw::getFont — Returns the font
    • ImagickDraw::getFontFamily — Returns the font family
    • ImagickDraw::getFontSize — Returns the font pointsize
    • ImagickDraw::getFontStretch — Description
    • ImagickDraw::getFontStyle — Returns the font style
    • ImagickDraw::getFontWeight — Returns the font weight
    • ImagickDraw::getGravity — Returns the text placement gravity
    • ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting
    • ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines
    • ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash
    • ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit
    • ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines
    • ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines
    • ImagickDraw::getTextAlignment — Returns the text alignment
    • ImagickDraw::getTextAntialias — Returns the current text antialias setting
    • ImagickDraw::getTextDecoration — Returns the text decoration
    • ImagickDraw::getTextEncoding — Returns the code set used for text annotations
    • ImagickDraw::getTextInterlineSpacing — Description
    • ImagickDraw::getTextInterwordSpacing — Description
    • ImagickDraw::getTextKerning — Description
    • ImagickDraw::getTextUnderColor — Returns the text under color
    • ImagickDraw::getVectorGraphics — Returns a string containing vector graphics
    • ImagickDraw::line — Draws a line
    • ImagickDraw::matte — Paints on the image's opacity channel
    • ImagickDraw::pathClose — Adds a path element to the current path
    • ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve
    • ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve
    • ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve
    • ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc
    • ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc
    • ImagickDraw::pathFinish — Terminates the current path
    • ImagickDraw::pathLineToAbsolute — Draws a line path
    • ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path
    • ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line
    • ImagickDraw::pathLineToRelative — Draws a line path
    • ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line
    • ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path
    • ImagickDraw::pathMoveToAbsolute — Starts a new sub-path
    • ImagickDraw::pathMoveToRelative — Starts a new sub-path
    • ImagickDraw::pathStart — Declares the start of a path drawing list
    • ImagickDraw::point — Draws a point
    • ImagickDraw::polygon — Draws a polygon
    • ImagickDraw::polyline — Draws a polyline
    • ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
    • ImagickDraw::popClipPath — Terminates a clip path definition
    • ImagickDraw::popDefs — Terminates a definition list
    • ImagickDraw::popPattern — Terminates a pattern definition
    • ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack
    • ImagickDraw::pushClipPath — Starts a clip path definition
    • ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing
    • ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
    • ImagickDraw::rectangle — Draws a rectangle
    • ImagickDraw::render — Renders all preceding drawing commands onto the image
    • ImagickDraw::resetVectorGraphics — Description
    • ImagickDraw::rotate — Applies the specified rotation to the current coordinate space
    • ImagickDraw::roundRectangle — Draws a rounded rectangle
    • ImagickDraw::scale — Adjusts the scaling factor
    • ImagickDraw::setClipPath — Associates a named clipping path with the image
    • ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path
    • ImagickDraw::setClipUnits — Sets the interpretation of clip path units
    • ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects
    • ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture
    • ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects
    • ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons
    • ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text
    • ImagickDraw::setFontFamily — Sets the font family to use when annotating with text
    • ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text
    • ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text
    • ImagickDraw::setFontStyle — Sets the font style to use when annotating with text
    • ImagickDraw::setFontWeight — Sets the font weight
    • ImagickDraw::setGravity — Sets the text placement gravity
    • ImagickDraw::setResolution — Description
    • ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased
    • ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines
    • ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths
    • ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash
    • ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked
    • ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked
    • ImagickDraw::setStrokeMiterLimit — Specifies the miter limit
    • ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines
    • ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines
    • ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines
    • ImagickDraw::setTextAlignment — Specifies a text alignment
    • ImagickDraw::setTextAntialias — Controls whether text is antialiased
    • ImagickDraw::setTextDecoration — Specifies a decoration
    • ImagickDraw::setTextEncoding — Specifies the text code set
    • ImagickDraw::setTextInterlineSpacing — Description
    • ImagickDraw::setTextInterwordSpacing — Description
    • ImagickDraw::setTextKerning — Description
    • ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle
    • ImagickDraw::setVectorGraphics — Sets the vector graphics
    • ImagickDraw::setViewbox — Sets the overall canvas size
    • ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction
    • ImagickDraw::skewY — Skews the current coordinate system in the vertical direction
    • ImagickDraw::translate — Applies a translation to the current coordinate system
  • ImagickPixel — Класс ImagickPixel
    • ImagickPixel::clear — Очищает ресурсы, связанные с этим объектом
    • ImagickPixel::__construct — Конструктор ImagickPixel
    • ImagickPixel::destroy — Освобождает ресурсы, связанные с этим объектом
    • ImagickPixel::getColor — Возвращает цвет
    • ImagickPixel::getColorAsString — Возвращает цвет в виде строки
    • ImagickPixel::getColorCount — Возвращает количество цветов связанных с этим цветом
    • ImagickPixel::getColorQuantum — Description
    • ImagickPixel::getColorValue — Возвращает нормализованное значение цвета канала
    • ImagickPixel::getColorValueQuantum — Description
    • ImagickPixel::getHSL — Возвращает нормализованный HSL-цвет объекта ImagickPixel
    • ImagickPixel::getIndex — Description
    • ImagickPixel::isPixelSimilar — Check the distance between this color and another
    • ImagickPixel::isPixelSimilarQuantum — Description
    • ImagickPixel::isSimilar — Проверить разницу между этим цветом и другим
    • ImagickPixel::setColor — Устанавливает цвет
    • ImagickPixel::setColorCount — Description
    • ImagickPixel::setColorValue — Устанавливает нормализованное значение одного из каналов
    • ImagickPixel::setColorValueQuantum — Description
    • ImagickPixel::setHSL — Установка нормализованного HSL цвета
    • ImagickPixel::setIndex — Description
  • ImagickPixelIterator — Класс ImagickPixelIterator
    • ImagickPixelIterator::clear — Очищает ресурсы, связанные с PixelIterator
    • ImagickPixelIterator::__construct — Конструктор ImagickPixelIterator
    • ImagickPixelIterator::destroy — Освобождает ресурсы, связанные с PixelIterator
    • ImagickPixelIterator::getCurrentIteratorRow — Возвращает текущий ряд объекта ImagickPixel
    • ImagickPixelIterator::getIteratorRow — Возвращает текущий пиксель итератора ряда
    • ImagickPixelIterator::getNextIteratorRow — Возвращает следующий ряд итератора пикселей
    • ImagickPixelIterator::getPreviousIteratorRow — Возвращает предыдущий ряд
    • ImagickPixelIterator::newPixelIterator — Возвращает новый итератор пикселей
    • ImagickPixelIterator::newPixelRegionIterator — Возвращает новый итератор пикселей
    • ImagickPixelIterator::resetIterator — Сбрасывает итератор пикселей
    • ImagickPixelIterator::setIteratorFirstRow — Устанавливает итератор пикселей на первый ряд
    • ImagickPixelIterator::setIteratorLastRow — Устанавливает итератор пикселей на последний ряд
    • ImagickPixelIterator::setIteratorRow — Устанавливает номер ряда в итераторе пикселей
    • ImagickPixelIterator::syncIterator — Синхронизирует итератор пикселей
  • ImagickKernel — The ImagickKernel class
    • ImagickKernel::addKernel — Description
    • ImagickKernel::addUnityKernel — Description
    • ImagickKernel::fromBuiltIn — Description
    • ImagickKernel::fromMatrix — Description
    • ImagickKernel::getMatrix — Description
    • ImagickKernel::scale — Description
    • ImagickKernel::separate — Description


Введение

Imagick является встроенным php-расширением для создания и изменения изображений используя API ImageMagick.

ImageMagick представляет собой набор программного обеспечения для создания, редактирования и компонования растровых изображений.. Он может читать, конвертировать и записывать изображения в различных форматах (более 100), включая DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, и TIFF.

ImageMagick Studio LLC, некоммерческая организация, специализирующаяся в разработке графического программного обеспечения, доступного бесплатно.


Требования

Требования к установке на ОС Windows

Информация о версии не отличается от вышеизложенного. Бинарные сборки доступны на http://www.imagemagick.org/, так что вы можете загрузить это расширение на Windows без необходимости компилирования.

Требования к установке на другие платформы

Требуется PHP >= 5.1.3 и ImageMagick >= 6.2.4. Количество поддерживаемых форматов Imagick зависит от количества поддерживаемых форматов установленного ImageMagick. Например, Imagemagick требует ghostscript для проведения операций с PDF документами.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/imagick.

Замечание: Официальное название этого расширения - imagick.

Пользователи Windows могут загрузить готовый DLL файл со страницы » PECL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Конфигурационные опции Imagick
Имя | По умолчанию | Меняемо | Список изменений
imagick.locale_fix | FALSE | PHP_INI_ALL | Доступно начиная с Imagick 2.1.0
imagick.progress_monitor | FALSE | PHP_INI_SYSTEM | Доступно начиная с Imagick 2.2.2
imagick.skip_version_check | FALSE | PHP_INI_SYSTEM | Доступно с Imagick 3.3.0
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

imagick.locale_fix boolean

Исправление ошибки рисования с локалью, используя ',' в качестве разделителя.

imagick.progress_monitor boolean

Используется для включения мониторинга прогресса.

imagick.skip_version_check boolean

Когда Imagic загружен, он проверяет, что версия ImageMagick, с которой он был скомпилирован, совпадает с текущей используемой версией и, если не совпадает, выводит предупреждение.Это предупреждение можно подавить, установив данный параметр.

Использовать Imagic с версией ImageMagick отличной от той, с которой он был скомпилирован, не рекомендуется. Он может работать, а может завершаться аварийно, либо вести себя непредсказуемо.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы COLOR_*

Константы цветовых типов. Эти константы используются в основном с ImagickPixel.

imagick::COLOR_BLACK (integer)
Черный
imagick::COLOR_BLUE (integer)
Синий
imagick::COLOR_CYAN (integer)
Сине-зеленый
imagick::COLOR_GREEN (integer)
Зеленый
imagick::COLOR_RED (integer)
Красный
imagick::COLOR_YELLOW (integer)
Желтый
imagick::COLOR_MAGENTA (integer)
Пурпурный
imagick::COLOR_OPACITY (integer)
Прозрачность цвета
imagick::COLOR_ALPHA (integer)
Альфа-канал для цвета
imagick::COLOR_FUZZ (integer)
'Fuzz factor' для цвета. См. документацию по ImageMagick.
DISPOSE константы

Константы расположения

imagick::DISPOSE_UNRECOGNIZED (integer)
Не распознан
imagick::DISPOSE_UNDEFINED (integer)
Не задан
imagick::DISPOSE_NONE (integer)
Нет расположения
imagick::DISPOSE_BACKGROUND (integer)
Фон
imagick::DISPOSE_PREVIOUS (integer)
Предадущее
Константы оператора наложения
imagick::COMPOSITE_DEFAULT (integer)
Оператор наложения по умолчанию
imagick::COMPOSITE_UNDEFINED (integer)
Неопределённый оператор наложения
imagick::COMPOSITE_NO (integer)
Не установленный оператор наложения
imagick::COMPOSITE_ADD (integer)
Результатом будет изображение + изображение
imagick::COMPOSITE_ATOP (integer)
Результатом будет изображение такой же формы с наложением изображения затемняя его в местах перекрытия
imagick::COMPOSITE_BLEND (integer)
Смесь изображения
imagick::COMPOSITE_BUMPMAP (integer)
Так же, как COMPOSITE_MULTIPLY, за исключением того, что источник сначала преобразуется в оттенки серого.
imagick::COMPOSITE_CLEAR (integer)
Делает целевое изображение празрачным
imagick::COMPOSITE_COLORBURN (integer)
Затемняет конечное изображение с учётом исходного изображения
imagick::COMPOSITE_COLORDODGE (integer)
Повышенная яркость конечного изображения с учётом исходного изображения
imagick::COMPOSITE_COLORIZE (integer)
Раскраска целевого изображения с помощью составного изображения
imagick::COMPOSITE_COPYBLACK (integer)
Копирует чёрный цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYBLUE (integer)
Копирует синий цвет из исходного изображения в целевое
imagick::COMPOSITE_COPY (integer)
Копирует исходное изображение в целевое
imagick::COMPOSITE_COPYCYAN (integer)
Копирует сине-зеленый цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYGREEN (integer)
Копирует зеленый цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYMAGENTA (integer)
Копирует пурпурный цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYOPACITY (integer)
Копирует прозрачность из исходного изображения в целевое
imagick::COMPOSITE_COPYRED (integer)
Копирует красный цвет из исходного изображения в целевое
imagick::COMPOSITE_COPYYELLOW (integer)
Копирует жёлтый цвет из исходного изображения в целевое
imagick::COMPOSITE_DARKEN (integer)
Затемняет целевое изображение
imagick::COMPOSITE_DSTATOP (integer)
Область назначения, которая находится внутри исходного изображения накладывается поверх исходного и заменяет назначение
imagick::COMPOSITE_DST (integer)
Целевое изображение остаётся нетронутым
imagick::COMPOSITE_DSTIN (integer)
Область внутри исходного изображения заменяется заданным изображением
imagick::COMPOSITE_DSTOUT (integer)
Область снаружи исходного изображения заменяется заданным изображением
imagick::COMPOSITE_DSTOVER (integer)
Исходное изображение заменяется заданным
imagick::COMPOSITE_DIFFERENCE (integer)
Вычитание более темного цвета из двух составляющих
imagick::COMPOSITE_DISPLACE (integer)
Смещение пикселей заданного изображения по аналогии с исходным изображением
imagick::COMPOSITE_DISSOLVE (integer)
Растворение исходного изображения в заданном
imagick::COMPOSITE_EXCLUSION (integer)
Создание эффекта, похожего на imagick::COMPOSITE_DIFFERENCE, но с более низким контрастом
imagick::COMPOSITE_HARDLIGHT (integer)
Умножает или осветляет цвет, в зависимости от исходного значения цвета
imagick::COMPOSITE_HUE (integer)
Изменение оттенка заданного изображения по аналогии с исходным изображением
imagick::COMPOSITE_IN (integer)
Наложение исходного изображения на заданное
imagick::COMPOSITE_LIGHTEN (integer)
Освещает заданное изображение по аналогии с исходным изображением
imagick::COMPOSITE_LUMINIZE (integer)
Изменение яркости заданного изображения по аналогии с исходным изображением
imagick::COMPOSITE_MINUS (integer)
Вычитает исходное изображение из заданного
imagick::COMPOSITE_MODULATE (integer)
Модулирует целевые яркость, насыщенности и тон по аналогии с исходным изображением
imagick::COMPOSITE_MULTIPLY (integer)
Перемножает цель и источник
imagick::COMPOSITE_OUT (integer)
Наложение внешних частей источника на цель
imagick::COMPOSITE_OVER (integer)
Наложение источника на цель
imagick::COMPOSITE_OVERLAY (integer)
Преобразование "Overlay"
imagick::COMPOSITE_PLUS (integer)
Добавляет источник к цели
imagick::COMPOSITE_REPLACE (integer)
Заменяет цель источником
imagick::COMPOSITE_SATURATE (integer)
Меняет насыщенность цели в соответствии с источником
imagick::COMPOSITE_SCREEN (integer)
Источник и цель сначала дополняются, потом перемножаются, а потом источник заменяет цель.
imagick::COMPOSITE_SOFTLIGHT (integer)
Затемняет или осветляет цвета, в зависимости от источника
imagick::COMPOSITE_SRCATOP (integer)
Часть источника, лежащая внутри цели, накладывается на цель
imagick::COMPOSITE_SRC (integer)
Источник копируется в цель
imagick::COMPOSITE_SRCIN (integer)
Часть источника, лежащая внутри цели, заменяет цель
imagick::COMPOSITE_SRCOUT (integer)
Часть источника, лежащая вне цели, заменяет цель
imagick::COMPOSITE_SRCOVER (integer)
Источник заменяет цель
imagick::COMPOSITE_SUBTRACT (integer)
Вычитает цвета источника из цели
imagick::COMPOSITE_THRESHOLD (integer)
Источник накладывается на цель как определено порогом источника
imagick::COMPOSITE_XOR (integer)
Часть источника, лежащая вне цели комбинируется с цастью цели, лежащей вне источника
Константы MONTAGEMODE

imagick::MONTAGEMODE_FRAME (integer)
imagick::MONTAGEMODE_UNFRAME (integer)
imagick::MONTAGEMODE_CONCATENATE (integer)
Константы STYLE

imagick::STYLE_NORMAL (integer)
imagick::STYLE_ITALIC (integer)
imagick::STYLE_OBLIQUE (integer)
imagick::STYLE_ANY (integer)
Константы FILTER

imagick::FILTER_UNDEFINED (integer)
imagick::FILTER_POINT (integer)
imagick::FILTER_BOX (integer)
imagick::FILTER_TRIANGLE (integer)
imagick::FILTER_HERMITE (integer)
imagick::FILTER_HANNING (integer)
imagick::FILTER_HAMMING (integer)
imagick::FILTER_BLACKMAN (integer)
imagick::FILTER_GAUSSIAN (integer)
imagick::FILTER_QUADRATIC (integer)
imagick::FILTER_CUBIC (integer)
imagick::FILTER_CATROM (integer)
imagick::FILTER_MITCHELL (integer)
imagick::FILTER_LANCZOS (integer)
imagick::FILTER_BESSEL (integer)
imagick::FILTER_SINC (integer)
Константы IMGTYPE

imagick::IMGTYPE_UNDEFINED (integer)
imagick::IMGTYPE_BILEVEL (integer)
imagick::IMGTYPE_GRAYSCALE (integer)
imagick::IMGTYPE_GRAYSCALEMATTE (integer)
imagick::IMGTYPE_PALETTE (integer)
imagick::IMGTYPE_PALETTEMATTE (integer)
imagick::IMGTYPE_TRUECOLOR (integer)
imagick::IMGTYPE_TRUECOLORMATTE (integer)
imagick::IMGTYPE_COLORSEPARATION (integer)
imagick::IMGTYPE_COLORSEPARATIONMATTE (integer)
imagick::IMGTYPE_OPTIMIZE (integer)
Константы RESOLUTION

imagick::RESOLUTION_UNDEFINED (integer)
imagick::RESOLUTION_PIXELSPERINCH (integer)
imagick::RESOLUTION_PIXELSPERCENTIMETER (integer)
Константы COMPRESSION

imagick::COMPRESSION_UNDEFINED (integer)
imagick::COMPRESSION_NO (integer)
imagick::COMPRESSION_BZIP (integer)
imagick::COMPRESSION_FAX (integer)
imagick::COMPRESSION_GROUP4 (integer)
imagick::COMPRESSION_JPEG (integer)
imagick::COMPRESSION_JPEG2000 (integer)
imagick::COMPRESSION_LOSSLESSJPEG (integer)
imagick::COMPRESSION_LZW (integer)
imagick::COMPRESSION_RLE (integer)
imagick::COMPRESSION_ZIP (integer)
imagick::COMPRESSION_DXT1 (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или выше.
imagick::COMPRESSION_DXT3 (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или выше.
imagick::COMPRESSION_DXT5 (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или выше.
Константы PAINT

imagick::PAINT_POINT (integer)
imagick::PAINT_REPLACE (integer)
imagick::PAINT_FLOODFILL (integer)
imagick::PAINT_FILLTOBORDER (integer)
imagick::PAINT_RESET (integer)
Константы GRAVITY

imagick::GRAVITY_NORTHWEST (integer)
imagick::GRAVITY_NORTH (integer)
imagick::GRAVITY_NORTHEAST (integer)
imagick::GRAVITY_WEST (integer)
imagick::GRAVITY_CENTER (integer)
imagick::GRAVITY_EAST (integer)
imagick::GRAVITY_SOUTHWEST (integer)
imagick::GRAVITY_SOUTH (integer)
imagick::GRAVITY_SOUTHEAST (integer)
Константы STRETCH

imagick::STRETCH_NORMAL (integer)
imagick::STRETCH_ULTRACONDENSED (integer)
imagick::STRETCH_CONDENSED (integer)
imagick::STRETCH_SEMICONDENSED (integer)
imagick::STRETCH_SEMIEXPANDED (integer)
imagick::STRETCH_EXPANDED (integer)
imagick::STRETCH_EXTRAEXPANDED (integer)
imagick::STRETCH_ULTRAEXPANDED (integer)
imagick::STRETCH_ANY (integer)
Константы ALIGN

imagick::ALIGN_UNDEFINED (integer)
imagick::ALIGN_LEFT (integer)
imagick::ALIGN_CENTER (integer)
imagick::ALIGN_RIGHT (integer)
Константы DECORATION

imagick::DECORATION_NO (integer)
imagick::DECORATION_UNDERLINE (integer)
imagick::DECORATION_OVERLINE (integer)
imagick::DECORATION_LINETROUGH (integer)
Константы NOISE

imagick::NOISE_UNIFORM (integer)
imagick::NOISE_GAUSSIAN (integer)
imagick::NOISE_MULTIPLICATIVEGAUSSIAN (integer)
imagick::NOISE_IMPULSE (integer)
imagick::NOISE_LAPLACIAN (integer)
imagick::NOISE_POISSON (integer)
imagick::NOISE_RANDOM (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
Константы CHANNEL

imagick::CHANNEL_UNDEFINED (integer)
imagick::CHANNEL_RED (integer)
imagick::CHANNEL_GRAY (integer)
imagick::CHANNEL_CYAN (integer)
imagick::CHANNEL_GREEN (integer)
imagick::CHANNEL_MAGENTA (integer)
imagick::CHANNEL_BLUE (integer)
imagick::CHANNEL_YELLOW (integer)
imagick::CHANNEL_ALPHA (integer)
imagick::CHANNEL_OPACITY (integer)
imagick::CHANNEL_MATTE (integer)
imagick::CHANNEL_BLACK (integer)
imagick::CHANNEL_INDEX (integer)
imagick::CHANNEL_ALL (integer)
imagick::CHANNEL_DEFAULT (integer)
Константы METRIC

imagick::METRIC_UNDEFINED (integer)
imagick::METRIC_MEANABSOLUTEERROR (integer)
imagick::METRIC_MEANSQUAREERROR (integer)
imagick::METRIC_PEAKABSOLUTEERROR (integer)
imagick::METRIC_PEAKSIGNALTONOISERATIO (integer)
imagick::METRIC_ROOTMEANSQUAREDERROR (integer)
Константы PIXEL

imagick::PIXEL_CHAR (integer)
imagick::PIXEL_DOUBLE (integer)
imagick::PIXEL_FLOAT (integer)
imagick::PIXEL_INTEGER (integer)
imagick::PIXEL_LONG (integer)
imagick::PIXEL_QUANTUM (integer)
imagick::PIXEL_SHORT (integer)
Константы EVALUATE

imagick::EVALUATE_UNDEFINED (integer)
imagick::EVALUATE_ADD (integer)
imagick::EVALUATE_AND (integer)
imagick::EVALUATE_DIVIDE (integer)
imagick::EVALUATE_LEFTSHIFT (integer)
imagick::EVALUATE_MAX (integer)
imagick::EVALUATE_MIN (integer)
imagick::EVALUATE_MULTIPLY (integer)
imagick::EVALUATE_OR (integer)
imagick::EVALUATE_RIGHTSHIFT (integer)
imagick::EVALUATE_SET (integer)
imagick::EVALUATE_SUBTRACT (integer)
imagick::EVALUATE_XOR (integer)
imagick::EVALUATE_POW (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_LOG (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_THRESHOLD (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_THRESHOLDBLACK (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_THRESHOLDWHITE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_GAUSSIANNOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_IMPULSENOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_LAPLACIANNOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_MULTIPLICATIVENOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_POISSONNOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_UNIFORMNOISE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_COSINE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_SINE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
imagick::EVALUATE_ADDMODULUS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или выше.
Константы COLORSPACE

imagick::COLORSPACE_UNDEFINED (integer)
imagick::COLORSPACE_RGB (integer)
imagick::COLORSPACE_GRAY (integer)
imagick::COLORSPACE_TRANSPARENT (integer)
imagick::COLORSPACE_OHTA (integer)
imagick::COLORSPACE_LAB (integer)
imagick::COLORSPACE_XYZ (integer)
imagick::COLORSPACE_YCBCR (integer)
imagick::COLORSPACE_YCC (integer)
imagick::COLORSPACE_YIQ (integer)
imagick::COLORSPACE_YPBPR (integer)
imagick::COLORSPACE_YUV (integer)
imagick::COLORSPACE_CMYK (integer)
imagick::COLORSPACE_SRGB (integer)
imagick::COLORSPACE_HSB (integer)
imagick::COLORSPACE_HSL (integer)
imagick::COLORSPACE_HWB (integer)
imagick::COLORSPACE_REC601LUMA (integer)
imagick::COLORSPACE_REC709LUMA (integer)
imagick::COLORSPACE_LOG (integer)
imagick::COLORSPACE_CMY (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
Константы VIRTUALPIXELMETHOD

imagick::VIRTUALPIXELMETHOD_UNDEFINED (integer)
imagick::VIRTUALPIXELMETHOD_BACKGROUND (integer)
imagick::VIRTUALPIXELMETHOD_CONSTANT (integer)
imagick::VIRTUALPIXELMETHOD_EDGE (integer)
imagick::VIRTUALPIXELMETHOD_MIRROR (integer)
imagick::VIRTUALPIXELMETHOD_TILE (integer)
imagick::VIRTUALPIXELMETHOD_TRANSPARENT (integer)
imagick::VIRTUALPIXELMETHOD_MASK (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_BLACK (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_GRAY (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_WHITE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.2 или выше.
imagick::VIRTUALPIXELMETHOD_HORIZONTALTILE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.3 или выше.
imagick::VIRTUALPIXELMETHOD_VERTICALTILE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.3 или выше.
Константы PREVIEW

imagick::PREVIEW_UNDEFINED (integer)
imagick::PREVIEW_ROTATE (integer)
imagick::PREVIEW_SHEAR (integer)
imagick::PREVIEW_ROLL (integer)
imagick::PREVIEW_HUE (integer)
imagick::PREVIEW_SATURATION (integer)
imagick::PREVIEW_BRIGHTNESS (integer)
imagick::PREVIEW_GAMMA (integer)
imagick::PREVIEW_SPIFF (integer)
imagick::PREVIEW_DULL (integer)
imagick::PREVIEW_GRAYSCALE (integer)
imagick::PREVIEW_QUANTIZE (integer)
imagick::PREVIEW_DESPECKLE (integer)
imagick::PREVIEW_REDUCENOISE (integer)
imagick::PREVIEW_ADDNOISE (integer)
imagick::PREVIEW_SHARPEN (integer)
imagick::PREVIEW_BLUR (integer)
imagick::PREVIEW_THRESHOLD (integer)
imagick::PREVIEW_EDGEDETECT (integer)
imagick::PREVIEW_SPREAD (integer)
imagick::PREVIEW_SOLARIZE (integer)
imagick::PREVIEW_SHADE (integer)
imagick::PREVIEW_RAISE (integer)
imagick::PREVIEW_SEGMENT (integer)
imagick::PREVIEW_SWIRL (integer)
imagick::PREVIEW_IMPLODE (integer)
imagick::PREVIEW_WAVE (integer)
imagick::PREVIEW_OILPAINT (integer)
imagick::PREVIEW_CHARCOALDRAWING (integer)
imagick::PREVIEW_JPEG (integer)
Константы RENDERINGINTENT

imagick::RENDERINGINTENT_UNDEFINED (integer)
imagick::RENDERINGINTENT_SATURATION (integer)
imagick::RENDERINGINTENT_PERCEPTUAL (integer)
imagick::RENDERINGINTENT_ABSOLUTE (integer)
imagick::RENDERINGINTENT_RELATIVE (integer)
Константы INTERLACE

imagick::INTERLACE_UNDEFINED (integer)
imagick::INTERLACE_NO (integer)
imagick::INTERLACE_LINE (integer)
imagick::INTERLACE_PLANE (integer)
imagick::INTERLACE_PARTITION (integer)
imagick::INTERLACE_GIF (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.4 или выше.
imagick::INTERLACE_JPEG (integer)
imagick::INTERLACE_PNG (integer)
Константы FILLRULE

imagick::FILLRULE_UNDEFINED (integer)
imagick::FILLRULE_EVENODD (integer)
imagick::FILLRULE_NONZERO (integer)
Константы PATHUNITS

imagick::PATHUNITS_UNDEFINED (integer)
imagick::PATHUNITS_USERSPACE (integer)
imagick::PATHUNITS_USERSPACEONUSE (integer)
imagick::PATHUNITS_OBJECTBOUNDINGBOX (integer)
Константы LINECAP

imagick::LINECAP_UNDEFINED (integer)
imagick::LINECAP_BUTT (integer)
imagick::LINECAP_ROUND (integer)
imagick::LINECAP_SQUARE (integer)
Константы LINEJOIN

imagick::LINEJOIN_UNDEFINED (integer)
imagick::LINEJOIN_MITER (integer)
imagick::LINEJOIN_ROUND (integer)
imagick::LINEJOIN_BEVEL (integer)
Константы RESOURCETYPE

imagick::RESOURCETYPE_UNDEFINED (integer)
imagick::RESOURCETYPE_AREA (integer)
Определяет максимальную ширину * высоту изображения, которое может находиться в пиксеном кэше.
imagick::RESOURCETYPE_DISK (integer)
Определяет максимальное количество дискового пространства в байтах, разрешенных для использования в пиксельном кэше.
imagick::RESOURCETYPE_FILE (integer)
Определяет максимальное количество открытых файлов пиксельного кеша..
imagick::RESOURCETYPE_MAP (integer)
Определяет максимальное количество памяти, в байтах, под пиксельный кеш.
imagick::RESOURCETYPE_MEMORY (integer)
Определяет максимальное количество памяти, в байтах, под пиксельный кеш из кучи.
imagick::RESOURCETYPE_THREAD (integer)
Определяет максимальное количество параллельных потоков. Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.7.8 или выше.
Константы LAYERMETHOD

imagick::LAYERMETHOD_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COALESCE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COMPAREANY (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COMPARECLEAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_COMPAREOVERLAY (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_DISPOSE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_OPTIMIZE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_OPTIMIZEPLUS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или выше.
imagick::LAYERMETHOD_OPTIMIZEIMAGE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_OPTIMIZETRANS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_REMOVEDUPS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_REMOVEZERO (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_COMPOSITE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::LAYERMETHOD_MERGE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или выше.
imagick::LAYERMETHOD_FLATTEN (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или выше.
imagick::LAYERMETHOD_MOSAIC (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или выше.
Константы ORIENTATION

imagick::ORIENTATION_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_TOPLEFT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_TOPRIGHT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_BOTTOMRIGHT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_BOTTOMLEFT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_LEFTTOP (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_RIGHTTOP (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_RIGHTBOTTOM (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
imagick::ORIENTATION_LEFTBOTTOM (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.0 или выше.
Константы DISTORTION

imagick::DISTORTION_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_AFFINE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_AFFINEPROJECTION (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_ARC (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_BILINEAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_PERSPECTIVE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_PERSPECTIVEPROJECTION (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_SCALEROTATETRANSLATE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или выше.
imagick::DISTORTION_POLYNOMIAL (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_POLAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_DEPOLAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_BARREL (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_BARRELINVERSE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_SHEPARDS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DISTORTION_SENTINEL (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
Константы ALPHACHANNEL

imagick::ALPHACHANNEL_ACTIVATE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_DEACTIVATE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_RESET (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_SET (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или выше.
imagick::ALPHACHANNEL_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_COPY (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_EXTRACT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_OPAQUE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_SHAPE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::ALPHACHANNEL_TRANSPARENT (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
Константы SPARSECOLORMETHOD

imagick::SPARSECOLORMETHOD_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_BARYCENTRIC (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_BILINEAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_POLYNOMIAL (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_SPEPARDS (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::SPARSECOLORMETHOD_VORONOI (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
Константы FUNCTION

imagick::FUNCTION_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или выше.
imagick::FUNCTION_POLYNOMIAL (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или выше.
imagick::FUNCTION_SINUSOID (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или выше.
Константы INTERPOLATE

imagick::INTERPOLATE_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_AVERAGE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_BICUBIC (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_BILINEAR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_FILTER (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_INTEGER (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_MESH (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_NEARESTNEIGHBOR (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или выше.
imagick::INTERPOLATE_SPLINE (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.3.4 или выше.
Константы DITHERMETHOD

imagick::DITHERMETHOD_UNDEFINED (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DITHERMETHOD_NO (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DITHERMETHOD_RIEMERSMA (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.
imagick::DITHERMETHOD_FLOYDSTEINBERG (integer)
Эта константа доступна, если Imagick был скомпилирован с версией ImageMagick 6.4.6 или выше.


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • ImageMagick
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

В PHP очень легко управлять объектом Imagick используя ОО интерфейс. Вот небольшой пример, как сделать миниатюру:

Пример #1 Создание миниатюры в Imagick

<?php

header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');

// Если в качестве ширины или высоты передан 0,
// то сохраняется соотношение сторон
$image->thumbnailImage(100, 0);

echo $image;

?>

С использованием SPL и других OO функций поддерживаемых в Imagick, можно очень легко изменить размеры всех файлов в директории (полезно для пакетного изменения больших изображений с цифровой камеры для просмотра в Web). Здесь мы используем изменение размера, используя определённые мета-данные:

Пример #2 Создание миниатюр для всех JPG файлов в директории

<?php

$images = new Imagick(glob('images/*.JPG'));

foreach($images as $image) {

    // Передаём 0 в thumbnailImage для сохранения соотношения сторон
    $image->thumbnailImage(1024,0);

}

$images->writeImages();

?>

Этот пример создаёт отражение изображения. Отражение создаётся зеркальным отображением и наложением градиента на нём. Затем оригинальное изображение и его отражение накладываются на холст.

Пример #3 Создание отражения

<?php
/* Чтение изображения */
$im = new Imagick("test.png");

/* Миниатюра изображения */
$im->thumbnailImage(200, null);

/* Создание рамки для изображения */
$im->borderImage(new ImagickPixel("white"), 5, 5);

/* Клонируем изображение и зеркально поворачиваем его */
$reflection = $im->clone();
$reflection->flipImage();

/* Создаём градиент. Это будет наложением для отражения */
$gradient = new Imagick();

/* Градиент должен быть достаточно большой для изображения и его рамки */
$gradient->newPseudoImage($reflection->getImageWidth() + 10, $reflection->getImageHeight() + 10, "gradient:transparent-black");

/* Наложение градиента на отражение */
$reflection->compositeImage($gradient, imagick::COMPOSITE_OVER, 0, 0);

/* Добавляем прозрачность. Требуется ImageMagick 6.2.9 или выше */
$reflection->setImageOpacity( 0.3 );

/* Создаём пустой холст */
$canvas = new Imagick();

/* Холст должен быть достаточно большой, чтобы вместить оба изображения */
$width = $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;
$canvas->newImage($width, $height, new ImagickPixel("black"));
$canvas->setImageFormat("png");

/* Наложение оригинального изображения и отражения на холст */
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 20, 10);
$canvas->compositeImage($reflection, imagick::COMPOSITE_OVER, 20, $im->getImageHeight() + 10);

/* Вывод изображения */
header("Content-Type: image/png");
echo $canvas;
?>

Результатом выполнения данного примера будет что-то подобное:

Пример вывода: Создание отражения изображения

Этот пример иллюстрирует как использовать заливку во время рисования.

Пример #4 Заливка текста градиентом

<?php

/* Создание нового объекта imagick */
$im = new Imagick();

/* Создание нового изображения. Будет использоваться как шаблон заливки */
$im->newPseudoImage(50, 50, "gradient:red-black");

/* Создаём объект imagickdraw */
$draw = new ImagickDraw();

/* Запускаем новый шаблон с названием "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);

/* Смешиваем градиент с шаблоном */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

/* Закрываем шаблон */
$draw->popPattern();

/* Используем шаблон с названием "gradient" для заливки */
$draw->setFillPatternURL('#gradient');

/* Устанавливаем размер шрифта в 52 */
$draw->setFontSize(52);

/* Добавляем свой текст */
$draw->annotation(20, 50, "Hello World!");

/* Создаём новый объект холста и белое изображение */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");

/* Рисуем ImagickDraw на холсте */
$canvas->drawImage($draw);

/* устанавливаем чёрную рамку шириной 1px вокруг изображения */
$canvas->borderImage('black', 1, 1);

/* Устанавливаем формат PNG */
$canvas->setImageFormat('png');

/* Вывод изображения */
header("Content-Type: image/png");
echo $canvas;
?>

Результатом выполнения данного примера будет что-то подобное:

Пример вывода: Заливка текста градиентом

Работа с анимированными GIF-изображениями

Пример #5 Чтение GIF изображения и изменение размера всех фреймов

<?php

/* Создание нового объекта imagick и чтение в GIF */
$im = new Imagick("example.gif");

/* Изменение размера всех фреймов */
foreach ($im as $frame) {
    /* фреймы 50x50 */
    $frame->thumbnailImage(50, 50);

    /* Устанавливаем виртуальный холст для коррекции размера */
    $frame->setImagePage(50, 50, 0, 0);
}

/* Обратите внимание, writeImages вместо writeImage */
$im->writeImages("example_small.gif", true);
?>

Работа с примитивом "эллипс" и пользовательскими шрифтами

Пример #6 Create a PHP logo

<?php
/* Установка ширины и высоты в пропорции логотипа PHP */
$width = 400;
$height = 210;

/* Создание объекта Imagick с поддержкой прозрачности */
$img = new Imagick();
$img->newImage($width, $height, new ImagickPixel('transparent'));

/* Новый объект ImagickDraw  для отрисовки эллипса */
$draw = new ImagickDraw();
/* Установка пурпурного цвета заливки для эллипса */
$draw->setFillColor('#777bb4');
/* Задание размеров эллипса */
$draw->ellipse($width / 2, $height / 2, $width / 2, $height / 2, 0, 360);
/* Отрисовка эллипса */
$img->drawImage($draw);

/* Сброс цвета заливки с пурпурного на черный для текста (заметьте, что мы используем объект ImagickDraw повторно) */
$draw->setFillColor('black');
/* Задание обводки границы белым цветом */
$draw->setStrokeColor('white');
/* Задание толщины обводки */
$draw->setStrokeWidth(2);
/* Задание кернинга (отрицательные значения означают, что буквы будут ближе друг к другу) */
$draw->setTextKerning(-8);
/* Задание шрифта и его размера, которые используются в логотипе PHP */
$draw->setFont('Handel Gothic.ttf');
$draw->setFontSize(150);
/* Центрирование текста вертикально и горизонтально */
$draw->setGravity(Imagick::GRAVITY_CENTER);

/* Добавление текста "php" со смещением по Y на -10 на холст (внутри эллипса) */
$img->annotateImage($draw, 0, -10, 0, 'php');
$img->setImageFormat('png');

/* Установка соответвующего заголовка для PNG и вывод изображения */
header('Content-Type: image/png');
echo $img;
?>

Результатом выполнения данного примера будет что-то подобное:

Пример вывода : Создается логотип PHP с помощью Imagick


Класс Imagick

(PECL imagick 2.0.0)

Обзор классов

Imagick implements Iterator {
bool adaptiveBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool adaptiveResizeImage ( int $columns , int $rows [, bool $bestfit = false ] )
bool adaptiveSharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool adaptiveThresholdImage ( int $width , int $height , int $offset )
bool addImage ( Imagick $source )
bool addNoiseImage ( int $noise_type [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool affineTransformImage ( ImagickDraw $matrix )
bool animateImages ( string $x_server )
bool annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text )
Imagick appendImages ( bool $stack = false )
public void autoLevelImage ([ string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
Imagick averageImages ( void )
bool blackThresholdImage ( mixed $threshold )
public void blueShiftImage ([ float $factor = 1.5 ] )
bool blurImage ( float $radius , float $sigma [, int $channel ] )
bool borderImage ( mixed $bordercolor , int $width , int $height )
public void brightnessContrastImage ( string $brightness , string $contrast [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
bool charcoalImage ( float $radius , float $sigma )
bool chopImage ( int $width , int $height , int $x , int $y )
public void clampImage ([ string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
bool clear ( void )
bool clipImage ( void )
public void clipImagePath ( string $pathname , string $inside )
bool clipPathImage ( string $pathname , bool $inside )
Imagick clone ( void )
bool clutImage ( Imagick $lookup_table [, float $channel = Imagick::CHANNEL_DEFAULT ] )
Imagick coalesceImages ( void )
bool colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y )
bool colorizeImage ( mixed $colorize , mixed $opacity )
public void colorMatrixImage ( string $color_matrix = Imagick::CHANNEL_DEFAULT )
Imagick combineImages ( int $channelType )
bool commentImage ( string $comment )
array compareImageChannels ( Imagick $image , int $channelType , int $metricType )
Imagick compareImageLayers ( int $method )
array compareImages ( Imagick $compare , int $metric )
bool compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )
__construct ( mixed $files )
bool contrastImage ( bool $sharpen )
bool contrastStretchImage ( float $black_point , float $white_point [, int $channel = Imagick::CHANNEL_ALL ] )
bool convolveImage ( array $kernel [, int $channel = Imagick::CHANNEL_ALL ] )
public void count ([ string $mode ] )
bool cropImage ( int $width , int $height , int $x , int $y )
bool cropThumbnailImage ( int $width , int $height )
Imagick current ( void )
bool cycleColormapImage ( int $displace )
bool decipherImage ( string $passphrase )
Imagick deconstructImages ( void )
bool deleteImageArtifact ( string $artifact )
public void deleteImageProperty ( string $name )
public bool deskewImage ( float $threshold )
bool despeckleImage ( void )
bool destroy ( void )
bool displayImage ( string $servername )
bool displayImages ( string $servername )
bool distortImage ( int $method , array $arguments , bool $bestfit )
bool drawImage ( ImagickDraw $draw )
bool edgeImage ( float $radius )
bool embossImage ( float $radius , float $sigma )
bool encipherImage ( string $passphrase )
bool enhanceImage ( void )
bool equalizeImage ( void )
bool evaluateImage ( int $op , float $constant [, int $channel = Imagick::CHANNEL_ALL ] )
public array exportImagePixels ( int $x , int $y , int $width , int $height , string $map , int $STORAGE )
bool extentImage ( int $width , int $height , int $x , int $y )
public void filter ( ImagickKernel $ImagickKernel [, int $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
Imagick flattenImages ( void )
bool flipImage ( void )
bool floodFillPaintImage ( mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool flopImage ( void )
public void forwardFourierTransformimage ( bool $magnitude )
bool frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel )
public bool functionImage ( int $function , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )
Imagick fxImage ( string $expression [, int $channel = Imagick::CHANNEL_ALL ] )
bool gammaImage ( float $gamma [, int $channel = Imagick::CHANNEL_ALL ] )
bool gaussianBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )
int getColorspace ( void )
int getCompression ( void )
int getCompressionQuality ( void )
string getCopyright ( void )
string getFilename ( void )
string getFont ( void )
string getFormat ( void )
int getGravity ( void )
string getHomeURL ( void )
Imagick getImage ( void )
int getImageAlphaChannel ( void )
string getImageArtifact ( string $artifact )
public string getImageAttribute ( string $key )
ImagickPixel getImageBackgroundColor ( void )
string getImageBlob ( void )
array getImageBluePrimary ( void )
ImagickPixel getImageBorderColor ( void )
int getImageChannelDepth ( int $channel )
float getImageChannelDistortion ( Imagick $reference , int $channel , int $metric )
float getImageChannelDistortions ( Imagick $reference , int $metric [, int $channel = Imagick::CHANNEL_DEFAULT ] )
array getImageChannelExtrema ( int $channel )
public array getImageChannelKurtosis ([ int $channel = Imagick::CHANNEL_DEFAULT ] )
array getImageChannelMean ( int $channel )
array getImageChannelRange ( int $channel )
array getImageChannelStatistics ( void )
Imagick getImageClipMask ( void )
ImagickPixel getImageColormapColor ( int $index )
int getImageColors ( void )
int getImageColorspace ( void )
int getImageCompose ( void )
int getImageCompression ( void )
int getImageCompressionQuality ( void )
int getImageDelay ( void )
int getImageDepth ( void )
int getImageDispose ( void )
float getImageDistortion ( MagickWand $reference , int $metric )
array getImageExtrema ( void )
string getImageFilename ( void )
string getImageFormat ( void )
float getImageGamma ( void )
array getImageGeometry ( void )
int getImageGravity ( void )
array getImageGreenPrimary ( void )
int getImageHeight ( void )
array getImageHistogram ( void )
int getImageIndex ( void )
int getImageInterlaceScheme ( void )
int getImageInterpolateMethod ( void )
int getImageIterations ( void )
int getImageLength ( void )
string getImageMagickLicense ( void )
bool getImageMatte ( void )
ImagickPixel getImageMatteColor ( void )
public string getImageMimeType ( void )
int getImageOrientation ( void )
array getImagePage ( void )
ImagickPixel getImagePixelColor ( int $x , int $y )
string getImageProfile ( string $name )
array getImageProfiles ([ string $pattern = "*" [, bool $only_names = true ]] )
array getImageProperties ([ string $pattern = "*" [, bool $only_names = true ]] )
string getImageProperty ( string $name )
array getImageRedPrimary ( void )
Imagick getImageRegion ( int $width , int $height , int $x , int $y )
int getImageRenderingIntent ( void )
array getImageResolution ( void )
string getImagesBlob ( void )
int getImageScene ( void )
string getImageSignature ( void )
int getImageSize ( void )
int getImageTicksPerSecond ( void )
float getImageTotalInkDensity ( void )
int getImageType ( void )
int getImageUnits ( void )
int getImageVirtualPixelMethod ( void )
array getImageWhitePoint ( void )
int getImageWidth ( void )
int getInterlaceScheme ( void )
int getIteratorIndex ( void )
int getNumberImages ( void )
string getOption ( string $key )
string getPackageName ( void )
array getPage ( void )
ImagickPixelIterator getPixelIterator ( void )
ImagickPixelIterator getPixelRegionIterator ( int $x , int $y , int $columns , int $rows )
float getPointSize ( void )
public static int getQuantum ( void )
array getQuantumDepth ( void )
array getQuantumRange ( void )
public static string getRegistry ( string $key )
string getReleaseDate ( void )
int getResource ( int $type )
int getResourceLimit ( int $type )
array getSamplingFactors ( void )
array getSize ( void )
int getSizeOffset ( void )
array getVersion ( void )
public bool haldClutImage ( Imagick $clut [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool hasNextImage ( void )
bool hasPreviousImage ( void )
public string|false identifyFormat ( string $embedText )
array identifyImage ([ bool $appendRawOutput = false ] )
bool implodeImage ( float $radius )
public bool importImagePixels ( int $x , int $y , int $width , int $height , string $map , int $storage , array $pixels )
public void inverseFourierTransformImage ( string $complement , string $magnitude )
bool labelImage ( string $label )
bool levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Imagick::CHANNEL_ALL ] )
bool linearStretchImage ( float $blackPoint , float $whitePoint )
bool liquidRescaleImage ( int $width , int $height , float $delta_x , float $rigidity )
public static array listRegistry ( void )
bool magnifyImage ( void )
bool mapImage ( Imagick $map , bool $dither )
bool matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y )
bool medianFilterImage ( float $radius )
Imagick mergeImageLayers ( int $layer_method )
bool minifyImage ( void )
bool modulateImage ( float $brightness , float $saturation , float $hue )
Imagick montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame )
Imagick morphImages ( int $number_frames )
public void morphology ( int $morphologyMethod , int $iterations , ImagickKernel $ImagickKernel [, string $CHANNEL ] )
Imagick mosaicImages ( void )
bool motionBlurImage ( float $radius , float $sigma , float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool negateImage ( bool $gray [, int $channel = Imagick::CHANNEL_ALL ] )
bool newImage ( int $cols , int $rows , mixed $background [, string $format ] )
bool newPseudoImage ( int $columns , int $rows , string $pseudoString )
bool nextImage ( void )
bool normalizeImage ([ int $channel = Imagick::CHANNEL_ALL ] )
bool oilPaintImage ( float $radius )
bool opaquePaintImage ( mixed $target , mixed $fill , float $fuzz , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool optimizeImageLayers ( void )
bool orderedPosterizeImage ( string $threshold_map [, int $channel = Imagick::CHANNEL_ALL ] )
bool paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )
bool paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz [, int $channel = Imagick::CHANNEL_ALL ] )
bool paintTransparentImage ( mixed $target , float $alpha , float $fuzz )
bool pingImage ( string $filename )
bool pingImageBlob ( string $image )
bool pingImageFile ( resource $filehandle [, string $fileName ] )
bool polaroidImage ( ImagickDraw $properties , float $angle )
bool posterizeImage ( int $levels , bool $dither )
bool previewImages ( int $preview )
bool previousImage ( void )
bool profileImage ( string $name , string $profile )
bool quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
bool quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )
array queryFontMetrics ( ImagickDraw $properties , string $text [, bool $multiline ] )
array queryFonts ([ string $pattern = "*" ] )
array queryFormats ([ string $pattern = "*" ] )
bool radialBlurImage ( float $angle [, int $channel = Imagick::CHANNEL_ALL ] )
bool raiseImage ( int $width , int $height , int $x , int $y , bool $raise )
bool randomThresholdImage ( float $low , float $high [, int $channel = Imagick::CHANNEL_ALL ] )
bool readImage ( string $filename )
bool readImageBlob ( string $image [, string $filename ] )
bool readImageFile ( resource $filehandle [, string $fileName = null ] )
public Imagick readImages ( string $filenames )
bool recolorImage ( array $matrix )
bool reduceNoiseImage ( float $radius )
public bool remapImage ( Imagick $replacement , int $DITHER )
bool removeImage ( void )
string removeImageProfile ( string $name )
bool render ( void )
bool resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur )
bool resetImagePage ( string $page )
bool resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $bestfit = false ] )
bool rollImage ( int $x , int $y )
bool rotateImage ( mixed $background , float $degrees )
public void rotationalBlurImage ( string $angle [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
bool roundCorners ( float $x_rounding , float $y_rounding [, float $stroke_width = 10 [, float $displace = 5 [, float $size_correction = -6 ]]] )
bool sampleImage ( int $columns , int $rows )
bool scaleImage ( int $cols , int $rows [, bool $bestfit = false ] )
public bool segmentImage ( int $COLORSPACE , float $cluster_threshold , float $smooth_threshold [, bool $verbose = false ] )
public void selectiveBlurImage ( float $radius , float $sigma , float $threshold , int $CHANNEL )
bool separateImageChannel ( int $channel )
bool sepiaToneImage ( float $threshold )
bool setBackgroundColor ( mixed $background )
bool setColorspace ( int $COLORSPACE )
bool setCompression ( int $compression )
bool setCompressionQuality ( int $quality )
bool setFilename ( string $filename )
bool setFirstIterator ( void )
bool setFont ( string $font )
bool setFormat ( string $format )
bool setGravity ( int $gravity )
bool setImage ( Imagick $replace )
bool setImageAlphaChannel ( int $mode )
bool setImageArtifact ( string $artifact , string $value )
public void setImageAttribute ( string $key , string $value )
bool setImageBackgroundColor ( mixed $background )
bool setImageBias ( float $bias )
public void setImageBiasQuantum ( string $bias )
bool setImageBluePrimary ( float $x , float $y )
bool setImageBorderColor ( mixed $border )
bool setImageChannelDepth ( int $channel , int $depth )
bool setImageClipMask ( Imagick $clip_mask )
bool setImageColormapColor ( int $index , ImagickPixel $color )
bool setImageColorspace ( int $colorspace )
bool setImageCompose ( int $compose )
bool setImageCompression ( int $compression )
bool setImageCompressionQuality ( int $quality )
bool setImageDelay ( int $delay )
bool setImageDepth ( int $depth )
bool setImageDispose ( int $dispose )
bool setImageExtent ( int $columns , int $rows )
bool setImageFilename ( string $filename )
bool setImageFormat ( string $format )
bool setImageGamma ( float $gamma )
bool setImageGravity ( int $gravity )
bool setImageGreenPrimary ( float $x , float $y )
bool setImageIndex ( int $index )
bool setImageInterlaceScheme ( int $interlace_scheme )
bool setImageInterpolateMethod ( int $method )
bool setImageIterations ( int $iterations )
bool setImageMatte ( bool $matte )
bool setImageMatteColor ( mixed $matte )
bool setImageOpacity ( float $opacity )
bool setImageOrientation ( int $orientation )
bool setImagePage ( int $width , int $height , int $x , int $y )
bool setImageProfile ( string $name , string $profile )
bool setImageProperty ( string $name , string $value )
bool setImageRedPrimary ( float $x , float $y )
bool setImageRenderingIntent ( int $rendering_intent )
bool setImageResolution ( float $x_resolution , float $y_resolution )
bool setImageScene ( int $scene )
bool setImageTicksPerSecond ( int $ticks_per_second )
bool setImageType ( int $image_type )
bool setImageUnits ( int $units )
bool setImageVirtualPixelMethod ( int $method )
bool setImageWhitePoint ( float $x , float $y )
bool setInterlaceScheme ( int $interlace_scheme )
bool setIteratorIndex ( int $index )
bool setLastIterator ( void )
bool setOption ( string $key , string $value )
bool setPage ( int $width , int $height , int $x , int $y )
bool setPointSize ( float $point_size )
public void setProgressMonitor ( callable $callback )
public static void setRegistry ( string $key , string $value )
bool setResolution ( float $x_resolution , float $y_resolution )
bool setResourceLimit ( int $type , int $limit )
bool setSamplingFactors ( array $factors )
bool setSize ( int $columns , int $rows )
bool setSizeOffset ( int $columns , int $rows , int $offset )
bool setType ( int $image_type )
bool shadeImage ( bool $gray , float $azimuth , float $elevation )
bool shadowImage ( float $opacity , float $sigma , int $x , int $y )
bool sharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )
bool shaveImage ( int $columns , int $rows )
bool shearImage ( mixed $background , float $x_shear , float $y_shear )
bool sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta [, int $channel = Imagick::CHANNEL_ALL ] )
bool sketchImage ( float $radius , float $sigma , float $angle )
public Imagick smushImages ( string $stack , string $offset )
bool solarizeImage ( int $threshold )
public bool sparseColorImage ( int $SPARSE_METHOD , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )
bool spliceImage ( int $width , int $height , int $x , int $y )
bool spreadImage ( float $radius )
public void statisticImage ( int $type , int $width , int $height [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )
Imagick steganoImage ( Imagick $watermark_wand , int $offset )
bool stereoImage ( Imagick $offset_wand )
bool stripImage ( void )
public Imagick subImageMatch ( Imagick $Imagick [, array &$offset [, float &$similarity ]] )
bool swirlImage ( float $degrees )
bool textureImage ( Imagick $texture_wand )
bool thresholdImage ( float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )
bool thumbnailImage ( int $columns , int $rows [, bool $bestfit = false [, bool $fill = false ]] )
bool tintImage ( mixed $tint , mixed $opacity )
string __toString ( void )
Imagick transformImage ( string $crop , string $geometry )
bool transformImageColorspace ( int $colorspace )
bool transparentPaintImage ( mixed $target , float $alpha , float $fuzz , bool $invert )
bool transposeImage ( void )
bool transverseImage ( void )
bool trimImage ( float $fuzz )
bool uniqueImageColors ( void )
bool unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )
bool valid ( void )
bool vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y )
bool waveImage ( float $amplitude , float $length )
bool whiteThresholdImage ( mixed $threshold )
bool writeImage ([ string $filename = NULL ] )
bool writeImageFile ( resource $filehandle )
bool writeImages ( string $filename , bool $adjoin )
bool writeImagesFile ( resource $filehandle )
}

Методы изображения и глобальные методы

Класс Imagick имеет возможность удерживать и обрабатывать несколько изображений одновременно. Это достигается за счет внутреннего стека, в котором существует указатель, указывающий на текущее изображение. Некоторые функции работают со всеми изображениями в классе Imagick, но всё-таки, большинство работает только с текущим изображением во внутреннем стеке. По соглашению, имена методов могут содержать слово Image для обозначения того, что они влияют только на текущее изображение в стеке.

Методы класса

Здесь приведён список наиболее используемых методов, объединённых в группы по назначению:

Методы класса по назначению
Эффекты изображения | Методы получения | Методы установки | Чтение/запись изображений | Другие
Imagick::adaptiveBlurImage() | Imagick::getCompression() | Imagick::setBackgroundColor() | Imagick::__construct() | Imagick::clear()
Imagick::adaptiveResizeImage() | Imagick::getFilename() | Imagick::setCompressionQuality() | Imagick::addImage() | Imagick::clone()
Imagick::adaptiveSharpenImage() | Imagick::getFormat() | Imagick::setCompression() | Imagick::appendImages() | Imagick::current()
Imagick::adaptiveThresholdImage() | Imagick::getImageBackgroundColor() | Imagick::setFilename() | Imagick::getFilename() | Imagick::destroy()
Imagick::addNoiseImage() | Imagick::getImageBlob() | Imagick::getImagesBlob() | Imagick::setFormat() | Imagick::getFormat()
Imagick::affinetransformimage() | Imagick::getImageBluePrimary() | Imagick::setImageBackgroundColor() | Imagick::getImageFilename() | Imagick::getHomeURL()
Imagick::annotateImage() | Imagick::getImageBorderColor() | Imagick::setFirstIterator() | Imagick::getImageFormat() | Imagick::commentImage()
Imagick::averageImages() | Imagick::getImageChannelDepth() | Imagick::setImageBias() | Imagick::getImage() | Imagick::getNumberImages()
Imagick::blackThresholdImage() | Imagick::getImageChannelDistortion() | Imagick::setImageBluePrimary() | Imagick::setImageFilename() | Imagick::getReleaseDate()
Imagick::blurImage() | Imagick::getImageChannelExtrema() | Imagick::setImageBorderColor() | Imagick::setImageFormat() | Imagick::getVersion()
Imagick::borderImage() | Imagick::getImageChannelMean() | Imagick::setImageChannelDepth() | Imagick::readImageFile() | Imagick::hasNextImage()
Imagick::charcoalImage() | Imagick::getImageChannelStatistics() | Imagick::setImageColormapColor() | Imagick::readImage() | Imagick::hasPreviousImage()
Imagick::chopImage() | Imagick::getImageColormapColor() | Imagick::setImageColorSpace() | Imagick::writeImages() | Imagick::labelImage()
Imagick::clipImage() | Imagick::getImageColorspace() | Imagick::setImageCompose() | Imagick::writeImage() | Imagick::newImage()
Imagick::clipPathImage() | Imagick::getImageColors() | Imagick::setImageCompression() |  | Imagick::newPseudoImage()
Imagick::coalesceImages() | Imagick::getImageCompose() | Imagick::setImageDelay() |  | Imagick::nextImage()
Imagick::colorFloodFillImage() | Imagick::getImageDelay() | Imagick::setImageDepth() |  | Imagick::pingImageBlob()
Imagick::colorizeImage() | Imagick::getImageDepth() | Imagick::setImageDispose() |  | Imagick::pingImageFile()
Imagick::combineImages() | Imagick::getImageDispose() | Imagick::setImageDispose() |  | Imagick::pingImage()
Imagick::compareImageChannels() | Imagick::getImageDistortion() | Imagick::setImageExtent() |  | Imagick::previousImage()
Imagick::compareImageLayers() | Imagick::getImageExtrema() | Imagick::setImageFilename() |  | Imagick::profileImage()
Imagick::compositeImage() | Imagick::getImageFilename() | Imagick::setImageFormat() |  | Imagick::queryFormats()
Imagick::contrastImage() | Imagick::getImageFormat() | Imagick::setImageGamma() |  | Imagick::removeImageProfile()
Imagick::contrastStretchImage() | Imagick::getImageGamma() | Imagick::setImageGreenPrimary() |  | Imagick::removeImage()
Imagick::convolveImage() | Imagick::getImageGeometry() | Imagick::setImageIndex() |  | Imagick::setFirstIterator()
Imagick::cropImage() | Imagick::getImageGreenPrimary() | Imagick::setImageInterpolateMethod() |  | Imagick::setImageIndex()
Imagick::cycleColormapImage() | Imagick::getImageHeight() | Imagick::setImageIterations() |  | Imagick::valid()
Imagick::deconstructImages() | Imagick::getImageHistogram() | Imagick::setImageMatteColor() |  | Imagick::getCopyright()
Imagick::drawImage() | Imagick::getImageIndex() | Imagick::setImageMatte() |  |
Imagick::edgeImage() | Imagick::getImageInterlaceScheme() | Imagick::setImagePage() |  |
Imagick::embossImage() | Imagick::getImageInterpolateMethod() | Imagick::setImageProfile() |  |
Imagick::enhanceImage() | Imagick::getImageIterations() | Imagick::setImageProperty() |  |
Imagick::equalizeImage() | Imagick::getImageMatteColor() | Imagick::setImageRedPrimary() |  |
Imagick::evaluateImage() | Imagick::getImageMatte() | Imagick::setImageRenderingIntent() |  |
Imagick::flattenImages() | Imagick::getImagePage() | Imagick::setImageResolution() |  |
Imagick::flipImage() | Imagick::getImagePixelColor() | Imagick::setImageScene() |  |
Imagick::flopImage() | Imagick::getImageProfile() | Imagick::setImageTicksPerSecond() |  |
 | Imagick::getImageProperty() | Imagick::setImageType() |  |
Imagick::fxImage() | Imagick::getImageRedPrimary() | Imagick::setImageUnits() |  |
Imagick::gammaImage() | Imagick::getImageRegion() | Imagick::setImageVirtualPixelMethod() |  |
Imagick::gaussianBlurImage() | Imagick::getImageRenderingIntent() | Imagick::setImageWhitepoint() |  |
Imagick::implodeImage() | Imagick::getImageResolution() | Imagick::setInterlaceScheme() |  |
Imagick::levelImage() | Imagick::getImageScene() | Imagick::setOption() |  |
Imagick::linearStretchImage() | Imagick::getImageSignature() | Imagick::setPage() |  |
Imagick::magnifyImage() | Imagick::getImageTicksPerSecond() | Imagick::setResolution() |  |
Imagick::matteFloodFillImage() | Imagick::getImageTotalInkDensity() | Imagick::setResourceLimit() |  |
Imagick::medianFilterImage() | Imagick::getImageType() | Imagick::setSamplingFactors() |  |
Imagick::minifyImage() | Imagick::getImageUnits() | Imagick::setSizeOffset() |  |
Imagick::modulateImage() | Imagick::getImageVirtualPixelMethod() | Imagick::setSize() |  |
Imagick::montageImage() | Imagick::getImageWhitepoint() | Imagick::setType() |  |
Imagick::morphImages() | Imagick::getImageWidth() |  |  |
Imagick::mosaicImages() | Imagick::getImage() |  |  |
Imagick::motionBlurImage() | Imagick::getInterlaceScheme() |  |  |
Imagick::negateImage() | Imagick::getNumberImages() |  |  |
Imagick::normalizeImage() | Imagick::getOption() |  |  |
Imagick::oilPaintImage() | Imagick::getPackageName() |  |  |
Imagick::optimizeImageLayers() | Imagick::getPage() |  |  |
Imagick::paintOpaqueImage() | Imagick::getPixelIterator() |  |  |
Imagick::paintTransparentImage() | Imagick::getPixelRegionIterator() |  |  |
Imagick::posterizeImage() | Imagick::getQuantumDepth() |  |  |
Imagick::radialBlurImage() | Imagick::getQuantumRange() |  |  |
Imagick::raiseImage() | Imagick::getResourceLimit() |  |  |
Imagick::randomThresholdImage() | Imagick::getResource() |  |  |
Imagick::reduceNoiseImage() | Imagick::getSamplingFactors() |  |  |
Imagick::render() | Imagick::getSizeOffset() |  |  |
Imagick::resampleImage() | Imagick::getSize() |  |  |
Imagick::resizeImage() | Imagick::identifyImage() |  |  |
Imagick::rollImage() | Imagick::getImageSize() |  |  |
Imagick::rotateImage() |  |  |  |
Imagick::sampleImage() |  |  |  |
Imagick::scaleImage() |  |  |  |
Imagick::separateImageChannel() |  |  |  |
Imagick::sepiaToneImage() |  |  |  |
Imagick::shadeImage() |  |  |  |
Imagick::shadowImage() |  |  |  |
Imagick::sharpenImage() |  |  |  |
Imagick::shaveImage() |  |  |  |
Imagick::shearImage() |  |  |  |
Imagick::sigmoidalContrastImage() |  |  |  |
Imagick::sketchImage() |  |  |  |
Imagick::solarizeImage() |  |  |  |
Imagick::spliceImage() |  |  |  |
Imagick::spreadImage() |  |  |  |
Imagick::steganoImage() |  |  |  |
Imagick::stereoImage() |  |  |  |
Imagick::stripImage() |  |  |  |
Imagick::swirlImage() |  |  |  |
Imagick::textureImage() |  |  |  |
Imagick::thresholdImage() |  |  |  |
Imagick::thumbnailImage() |  |  |  |
Imagick::tintImage() |  |  |  |
Imagick::transverseImage() |  |  |  |
Imagick::trimImage() |  |  |  |
Imagick::uniqueImageColors() |  |  |  |
Imagick::unsharpMaskImage() |  |  |  |
Imagick::vignetteImage() |  |  |  |
Imagick::waveImage() |  |  |  |
Imagick::whiteThresholdImage() |  |  |  |

Содержание

  • Imagick::adaptiveBlurImage — Добавляет адаптивный фильтр размытия к изображению
  • Imagick::adaptiveResizeImage — Адаптивное изменение размера изображения с данными триангуляции
  • Imagick::adaptiveSharpenImage — Адаптивное изменение резкости изображения
  • Imagick::adaptiveThresholdImage — Выбор порога для каждого пикселя в зависимости от диапазона интенсивности
  • Imagick::addImage — Добавляет новое изображение к списку изображений объекта Imagick
  • Imagick::addNoiseImage — Накладывает случайный шум на изображение
  • Imagick::affineTransformImage — Преобразование изображения
  • Imagick::animateImages — Анимация одного или нескольких изображений
  • Imagick::annotateImage — Добавляет текстовый комментарий на изображение
  • Imagick::appendImages — Объединяет набор изображений
  • Imagick::autoLevelImage — Description
  • Imagick::averageImages — Усредняет набор изображений
  • Imagick::blackThresholdImage — Перевести все пиксели ниже порогового значения в черный цвет
  • Imagick::blueShiftImage — Description
  • Imagick::blurImage — Добавляет фильтр размытия к изображению
  • Imagick::borderImage — Окружает изображение рамкой
  • Imagick::brightnessContrastImage — Description
  • Imagick::charcoalImage — Рисование углем
  • Imagick::chopImage — Удаляет область изображения и обрезает его
  • Imagick::clampImage — Description
  • Imagick::clear — Очищает все ресурсы, связанные с объектом Imagick
  • Imagick::clipImage — Обрезка вдоль ближайшего контура с профилем 8BIM
  • Imagick::clipImagePath — Description
  • Imagick::clipPathImage — Отсечь вдоль обозначенного контура с профилем 8BIM
  • Imagick::clone — Создает точную копию объекта Imagick
  • Imagick::clutImage — Заменяет цвета в изображении
  • Imagick::coalesceImages — Composites a set of images
  • Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target
  • Imagick::colorizeImage — Смешивание цвета заливки с изображением
  • Imagick::colorMatrixImage — Description
  • Imagick::combineImages — Combines one or more images into a single image
  • Imagick::commentImage — Adds a comment to your image
  • Imagick::compareImageChannels — Returns the difference in one or more images
  • Imagick::compareImageLayers — Returns the maximum bounding region between images
  • Imagick::compareImages — Compares an image to a reconstructed image
  • Imagick::compositeImage — Composite one image onto another
  • Imagick::__construct — Конструктор объекта Imagick
  • Imagick::contrastImage — Change the contrast of the image
  • Imagick::contrastStretchImage — Enhances the contrast of a color image
  • Imagick::convolveImage — Applies a custom convolution kernel to the image
  • Imagick::count — Description
  • Imagick::cropImage — Извлекает область изображения
  • Imagick::cropThumbnailImage — Creates a crop thumbnail
  • Imagick::current — Возвращает ссылку на текущий объект Imagick
  • Imagick::cycleColormapImage — Displaces an image's colormap
  • Imagick::decipherImage — Deciphers an image
  • Imagick::deconstructImages — Returns certain pixel differences between images
  • Imagick::deleteImageArtifact — Delete image artifact
  • Imagick::deleteImageProperty — Description
  • Imagick::deskewImage — Removes skew from the image
  • Imagick::despeckleImage — Reduces the speckle noise in an image
  • Imagick::destroy — Удаляет объект Imagick
  • Imagick::displayImage — Выводит изображение
  • Imagick::displayImages — Выводит изображение или последовательность изображений
  • Imagick::distortImage — Distorts an image using various distortion methods
  • Imagick::drawImage — Выполняет рендеринг объекта ImagickDraw на текущем изображении
  • Imagick::edgeImage — Enhance edges within the image
  • Imagick::embossImage — Returns a grayscale image with a three-dimensional effect
  • Imagick::encipherImage — Enciphers an image
  • Imagick::enhanceImage — Improves the quality of a noisy image
  • Imagick::equalizeImage — Equalizes the image histogram
  • Imagick::evaluateImage — Applies an expression to an image
  • Imagick::exportImagePixels — Exports raw image pixels
  • Imagick::extentImage — Set image size
  • Imagick::filter — Description
  • Imagick::flattenImages — Merges a sequence of images
  • Imagick::flipImage — Создает вертикальное зеркало изображения
  • Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target
  • Imagick::flopImage — Создает горизонтальное зеркало изображения
  • Imagick::forwardFourierTransformImage — Description
  • Imagick::frameImage — Adds a simulated three-dimensional border
  • Imagick::functionImage — Applies a function on the image
  • Imagick::fxImage — Evaluate expression for each pixel in the image
  • Imagick::gammaImage — Gamma-corrects an image
  • Imagick::gaussianBlurImage — Blurs an image
  • Imagick::getColorspace — Возвращает цветовую палитру
  • Imagick::getCompression — Возвращает тип сжатия объекта
  • Imagick::getCompressionQuality — Возвращает качество сжатия объекта
  • Imagick::getCopyright — Возвращает копирайт API ImageMagick в виде строки
  • Imagick::getFilename — Имя файла результирующего изображения
  • Imagick::getFont — Возвращает название шрифта
  • Imagick::getFormat — Возвращает формат Imagick объекта
  • Imagick::getGravity — Возвращает значение гравитации (притяжения)
  • Imagick::getHomeURL — Возвращает домашний URL библиотеки ImageMagick
  • Imagick::getImage — Возвращает новый объект Imagick
  • Imagick::getImageAlphaChannel — Возвращает альфа-канал изображения
  • Imagick::getImageArtifact — Get image artifact
  • Imagick::getImageAttribute — Description
  • Imagick::getImageBackgroundColor — Возвращает цвет фона изображения
  • Imagick::getImageBlob — Returns the image sequence as a blob
  • Imagick::getImageBluePrimary — Returns the chromaticy blue primary point
  • Imagick::getImageBorderColor — Возвращает цвет рамки изображения
  • Imagick::getImageChannelDepth — Gets the depth for a particular image channel
  • Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image
  • Imagick::getImageChannelDistortions — Gets channel distortions
  • Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels
  • Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose
  • Imagick::getImageChannelMean — Gets the mean and standard deviation
  • Imagick::getImageChannelRange — Gets channel range
  • Imagick::getImageChannelStatistics — Returns statistics for each channel in the image
  • Imagick::getImageClipMask — Gets image clip mask
  • Imagick::getImageColormapColor — Returns the color of the specified colormap index
  • Imagick::getImageColors — Возвращает число уникальных цветов в изображении
  • Imagick::getImageColorspace — Возвращает цветовую палитру изображения
  • Imagick::getImageCompose — Возвращает составной оператор, связанный с изображением
  • Imagick::getImageCompression — Возвращает текущий тип компрессии изображения
  • Imagick::getImageCompressionQuality — Возвращает текущее качество сжатия изображения
  • Imagick::getImageDelay — Gets the image delay
  • Imagick::getImageDepth — Gets the image depth
  • Imagick::getImageDispose — Gets the image disposal method
  • Imagick::getImageDistortion — Compares an image to a reconstructed image
  • Imagick::getImageExtrema — Gets the extrema for the image
  • Imagick::getImageFilename — Возвращает имя файла конкретного изображения в последовательности
  • Imagick::getImageFormat — Возвращает формат конкретного изображения в последовательности
  • Imagick::getImageGamma — Возвращает гамму изображения
  • Imagick::getImageGeometry — Возвращает ширину и высоту в виде ассоциативного массива
  • Imagick::getImageGravity — Возвращает значение гравитации (притяжения)
  • Imagick::getImageGreenPrimary — Returns the chromaticy green primary point
  • Imagick::getImageHeight — Возвращает высоту изображения
  • Imagick::getImageHistogram — Gets the image histogram
  • Imagick::getImageIndex — Gets the index of the current active image
  • Imagick::getImageInterlaceScheme — Gets the image interlace scheme
  • Imagick::getImageInterpolateMethod — Returns the interpolation method
  • Imagick::getImageIterations — Gets the image iterations
  • Imagick::getImageLength — Returns the image length in bytes
  • Imagick::getImageMagickLicense — Returns a string containing the ImageMagick license
  • Imagick::getImageMatte — Return if the image has a matte channel
  • Imagick::getImageMatteColor — Returns the image matte color
  • Imagick::getImageMimeType — Description
  • Imagick::getImageOrientation — Gets the image orientation
  • Imagick::getImagePage — Returns the page geometry
  • Imagick::getImagePixelColor — Returns the color of the specified pixel
  • Imagick::getImageProfile — Returns the named image profile
  • Imagick::getImageProfiles — Returns the image profiles
  • Imagick::getImageProperties — Возвращает свойства изображения
  • Imagick::getImageProperty — Returns the named image property
  • Imagick::getImageRedPrimary — Returns the chromaticity red primary point
  • Imagick::getImageRegion — Extracts a region of the image
  • Imagick::getImageRenderingIntent — Gets the image rendering intent
  • Imagick::getImageResolution — Gets the image X and Y resolution
  • Imagick::getImagesBlob — Returns all image sequences as a blob
  • Imagick::getImageScene — Gets the image scene
  • Imagick::getImageSignature — Generates an SHA-256 message digest
  • Imagick::getImageSize — Возвращает размер (длину) изображения в байтах
  • Imagick::getImageTicksPerSecond — Gets the image ticks-per-second
  • Imagick::getImageTotalInkDensity — Gets the image total ink density
  • Imagick::getImageType — Возвращает возможный тип изображения
  • Imagick::getImageUnits — Gets the image units of resolution
  • Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method
  • Imagick::getImageWhitePoint — Returns the chromaticity white point
  • Imagick::getImageWidth — Возвращает ширину изображения
  • Imagick::getInterlaceScheme — Gets the object interlace scheme
  • Imagick::getIteratorIndex — Gets the index of the current active image
  • Imagick::getNumberImages — Returns the number of images in the object
  • Imagick::getOption — Returns a value associated with the specified key
  • Imagick::getPackageName — Returns the ImageMagick package name
  • Imagick::getPage — Returns the page geometry
  • Imagick::getPixelIterator — Returns a MagickPixelIterator
  • Imagick::getPixelRegionIterator — Возвращает объект ImagickPixelIterator для секции изображения
  • Imagick::getPointSize — Возвращает размер точки
  • Imagick::getQuantum — Description
  • Imagick::getQuantumDepth — Возвращает величину глубины
  • Imagick::getQuantumRange — Возвращает величину размера спектра Imagick
  • Imagick::getRegistry — Description
  • Imagick::getReleaseDate — Возвращает дату релиза ImageMagick
  • Imagick::getResource — Возвращает размер используемой памяти указанного ресурса
  • Imagick::getResourceLimit — Возвращает заданный лимит ресурсов
  • Imagick::getSamplingFactors — Возвращает горизонтальный и вертикальный фактор выборки
  • Imagick::getSize — Возвращает размер, связанный с объектом Imagick
  • Imagick::getSizeOffset — Возвращает размер смещения
  • Imagick::getVersion — Возвращает версию API ImageMagick
  • Imagick::haldClutImage — Replaces colors in the image
  • Imagick::hasNextImage — Checks if the object has more images
  • Imagick::hasPreviousImage — Checks if the object has a previous image
  • Imagick::identifyFormat — Description
  • Imagick::identifyImage — Определяет изображение и получает атрибуты
  • Imagick::implodeImage — Creates a new image as a copy
  • Imagick::importImagePixels — Imports image pixels
  • Imagick::inverseFourierTransformImage — Description
  • Imagick::labelImage — Adds a label to an image
  • Imagick::levelImage — Adjusts the levels of an image
  • Imagick::linearStretchImage — Stretches with saturation the image intensity
  • Imagick::liquidRescaleImage — Animates an image or images
  • Imagick::listRegistry — Description
  • Imagick::magnifyImage — Scales an image proportionally 2x
  • Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image.
  • Imagick::matteFloodfillImage — Changes the transparency value of a color
  • Imagick::medianFilterImage — Applies a digital filter
  • Imagick::mergeImageLayers — Merges image layers
  • Imagick::minifyImage — Scales an image proportionally to half its size
  • Imagick::modulateImage — Control the brightness, saturation, and hue
  • Imagick::montageImage — Creates a composite image
  • Imagick::morphImages — Method morphs a set of images
  • Imagick::morphology — Description
  • Imagick::mosaicImages — Forms a mosaic from images
  • Imagick::motionBlurImage — Simulates motion blur
  • Imagick::negateImage — Negates the colors in the reference image
  • Imagick::newImage — Creates a new image
  • Imagick::newPseudoImage — Creates a new image
  • Imagick::nextImage — Moves to the next image
  • Imagick::normalizeImage — Enhances the contrast of a color image
  • Imagick::oilPaintImage — Simulates an oil painting
  • Imagick::opaquePaintImage — Changes the color value of any pixel that matches target
  • Imagick::optimizeImageLayers — Removes repeated portions of images to optimize
  • Imagick::orderedPosterizeImage — Performs an ordered dither
  • Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target
  • Imagick::paintOpaqueImage — Change any pixel that matches color
  • Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill
  • Imagick::pingImage — Fetch basic attributes about the image
  • Imagick::pingImageBlob — Quickly fetch attributes
  • Imagick::pingImageFile — Get basic image attributes in a lightweight manner
  • Imagick::polaroidImage — Simulates a Polaroid picture
  • Imagick::posterizeImage — Reduces the image to a limited number of color level
  • Imagick::previewImages — Quickly pin-point appropriate parameters for image processing
  • Imagick::previousImage — Move to the previous image in the object
  • Imagick::profileImage — Adds or removes a profile from an image
  • Imagick::quantizeImage — Analyzes the colors within a reference image
  • Imagick::quantizeImages — Analyzes the colors within a sequence of images
  • Imagick::queryFontMetrics — Returns an array representing the font metrics
  • Imagick::queryFonts — Returns the configured fonts
  • Imagick::queryFormats — Returns formats supported by Imagick
  • Imagick::radialBlurImage — Radial blurs an image
  • Imagick::raiseImage — Creates a simulated 3d button-like effect
  • Imagick::randomThresholdImage — Creates a high-contrast, two-color image
  • Imagick::readImage — Reads image from filename
  • Imagick::readImageBlob — Reads image from a binary string
  • Imagick::readImageFile — Reads image from open filehandle
  • Imagick::readimages — Description
  • Imagick::recolorImage — Recolors image
  • Imagick::reduceNoiseImage — Smooths the contours of an image
  • Imagick::remapImage — Remaps image colors
  • Imagick::removeImage — Removes an image from the image list
  • Imagick::removeImageProfile — Removes the named image profile and returns it
  • Imagick::render — Renders all preceding drawing commands
  • Imagick::resampleImage — Resample image to desired resolution
  • Imagick::resetImagePage — Reset image page
  • Imagick::resizeImage — Scales an image
  • Imagick::rollImage — Offsets an image
  • Imagick::rotateImage — Rotates an image
  • Imagick::rotationalBlurImage — Description
  • Imagick::roundCorners — Rounds image corners
  • Imagick::sampleImage — Scales an image with pixel sampling
  • Imagick::scaleImage — Scales the size of an image
  • Imagick::segmentImage — Segments an image
  • Imagick::selectiveBlurImage — Description
  • Imagick::separateImageChannel — Separates a channel from the image
  • Imagick::sepiaToneImage — Sepia tones an image
  • Imagick::setBackgroundColor — Sets the object's default background color
  • Imagick::setColorspace — Set colorspace
  • Imagick::setCompression — Sets the object's default compression type
  • Imagick::setCompressionQuality — Sets the object's default compression quality
  • Imagick::setFilename — Sets the filename before you read or write the image
  • Imagick::setFirstIterator — Sets the Imagick iterator to the first image
  • Imagick::setFont — Sets font
  • Imagick::setFormat — Sets the format of the Imagick object
  • Imagick::setGravity — Sets the gravity
  • Imagick::setImage — Replaces image in the object
  • Imagick::setImageAlphaChannel — Sets image alpha channel
  • Imagick::setImageArtifact — Set image artifact
  • Imagick::setImageAttribute — Description
  • Imagick::setImageBackgroundColor — Sets the image background color
  • Imagick::setImageBias — Sets the image bias for any method that convolves an image
  • Imagick::setImageBiasQuantum — Description
  • Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point
  • Imagick::setImageBorderColor — Sets the image border color
  • Imagick::setImageChannelDepth — Sets the depth of a particular image channel
  • Imagick::setImageClipMask — Sets image clip mask
  • Imagick::setImageColormapColor — Sets the color of the specified colormap index
  • Imagick::setImageColorspace — Sets the image colorspace
  • Imagick::setImageCompose — Sets the image composite operator
  • Imagick::setImageCompression — Sets the image compression
  • Imagick::setImageCompressionQuality — Sets the image compression quality
  • Imagick::setImageDelay — Sets the image delay
  • Imagick::setImageDepth — Sets the image depth
  • Imagick::setImageDispose — Sets the image disposal method
  • Imagick::setImageExtent — Sets the image size
  • Imagick::setImageFilename — Sets the filename of a particular image
  • Imagick::setImageFormat — Sets the format of a particular image
  • Imagick::setImageGamma — Sets the image gamma
  • Imagick::setImageGravity — Sets the image gravity
  • Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point
  • Imagick::setImageIndex — Set the iterator position
  • Imagick::setImageInterlaceScheme — Sets the image compression
  • Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method
  • Imagick::setImageIterations — Sets the image iterations
  • Imagick::setImageMatte — Sets the image matte channel
  • Imagick::setImageMatteColor — Sets the image matte color
  • Imagick::setImageOpacity — Sets the image opacity level
  • Imagick::setImageOrientation — Sets the image orientation
  • Imagick::setImagePage — Sets the page geometry of the image
  • Imagick::setImageProfile — Adds a named profile to the Imagick object
  • Imagick::setImageProperty — Sets an image property
  • Imagick::setImageRedPrimary — Sets the image chromaticity red primary point
  • Imagick::setImageRenderingIntent — Sets the image rendering intent
  • Imagick::setImageResolution — Sets the image resolution
  • Imagick::setImageScene — Sets the image scene
  • Imagick::setImageTicksPerSecond — Sets the image ticks-per-second
  • Imagick::setImageType — Sets the image type
  • Imagick::setImageUnits — Sets the image units of resolution
  • Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method
  • Imagick::setImageWhitePoint — Sets the image chromaticity white point
  • Imagick::setInterlaceScheme — Sets the image compression
  • Imagick::setIteratorIndex — Set the iterator position
  • Imagick::setLastIterator — Sets the Imagick iterator to the last image
  • Imagick::setOption — Set an option
  • Imagick::setPage — Sets the page geometry of the Imagick object
  • Imagick::setPointSize — Sets point size
  • Imagick::setProgressMonitor — Description
  • Imagick::setRegistry — Description
  • Imagick::setResolution — Sets the image resolution
  • Imagick::setResourceLimit — Sets the limit for a particular resource in megabytes
  • Imagick::setSamplingFactors — Sets the image sampling factors
  • Imagick::setSize — Sets the size of the Imagick object
  • Imagick::setSizeOffset — Sets the size and offset of the Imagick object
  • Imagick::setType — Sets the image type attribute
  • Imagick::shadeImage — Creates a 3D effect
  • Imagick::shadowImage — Simulates an image shadow
  • Imagick::sharpenImage — Sharpens an image
  • Imagick::shaveImage — Shaves pixels from the image edges
  • Imagick::shearImage — Creating a parallelogram
  • Imagick::sigmoidalContrastImage — Adjusts the contrast of an image
  • Imagick::sketchImage — Simulates a pencil sketch
  • Imagick::smushImages — Description
  • Imagick::solarizeImage — Applies a solarizing effect to the image
  • Imagick::sparseColorImage — Interpolates colors
  • Imagick::spliceImage — Splices a solid color into the image
  • Imagick::spreadImage — Randomly displaces each pixel in a block
  • Imagick::statisticImage — Description
  • Imagick::steganoImage — Hides a digital watermark within the image
  • Imagick::stereoImage — Composites two images
  • Imagick::stripImage — Strips an image of all profiles and comments
  • Imagick::subImageMatch — Description
  • Imagick::swirlImage — Swirls the pixels about the center of the image
  • Imagick::textureImage — Repeatedly tiles the texture image
  • Imagick::thresholdImage — Изменяет отдельные пиксели на основе порогового значения
  • Imagick::thumbnailImage — Changes the size of an image
  • Imagick::tintImage — Applies a color vector to each pixel in the image
  • Imagick::__toString — Returns the image as a string.
  • Imagick::transformImage — Convenience method for setting crop size and the image geometry
  • Imagick::transformImageColorspace — Transforms an image to a new colorspace.
  • Imagick::transparentPaintImage — Paints pixels transparent
  • Imagick::transposeImage — Creates a vertical mirror image
  • Imagick::transverseImage — Creates a horizontal mirror image
  • Imagick::trimImage — Remove edges from the image
  • Imagick::uniqueImageColors — Discards all but one of any pixel color
  • Imagick::unsharpMaskImage — Sharpens an image
  • Imagick::valid — Checks if the current item is valid
  • Imagick::vignetteImage — Adds vignette filter to the image
  • Imagick::waveImage — Applies wave filter to the image
  • Imagick::whiteThresholdImage — Force all pixels above the threshold into white
  • Imagick::writeImage — Writes an image to the specified filename
  • Imagick::writeImageFile — Writes an image to a filehandle
  • Imagick::writeImages — Writes an image or image sequence
  • Imagick::writeImagesFile — Writes frames to a filehandle


Добавляет адаптивный фильтр размытия к изображению

  • « Imagick
  • Imagick::adaptiveResizeImage »
  • PHP Manual
  • Imagick
  • Добавляет адаптивный фильтр размытия к изображению

Imagick::adaptiveBlurImage

(PECL imagick 2.0.0)

Imagick::adaptiveBlurImage — Добавляет адаптивный фильтр размытия к изображению

Описание

bool Imagick::adaptiveBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Добавляет адаптивный фильтр размытия к изображению. Интенсивность адаптивного размытия значительно уменьшается к краям изображения, в то время как стандартное размытие равномерно распределяется по всему изображению. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

radius

Радиус Гаусса, в пикселях, не считая центрального пикселя. Если передан 0, то радиус будет выбран автоматически.

sigma

Стандартное отклонение Гаусса, в пикселях.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Использование Imagick::adaptiveBlurImage():

Адаптивное размытие изображения и отображение его в браузере.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->adaptiveBlurImage(5,3);
echo $image;

?>

Результатом выполнения данного примера будет что-то подобное:

Пример вывода : Использование Imagick::adaptiveBlurImage()

Смотрите также

  • Imagick::blurImage() - Добавляет фильтр размытия к изображению
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Адаптивное изменение размера изображения с данными триангуляции

  • « Imagick::adaptiveBlurImage
  • Imagick::adaptiveSharpenImage »
  • PHP Manual
  • Imagick
  • Адаптивное изменение размера изображения с данными триангуляции

Imagick::adaptiveResizeImage

(PECL imagick 2.0.0)

Imagick::adaptiveResizeImage — Адаптивное изменение размера изображения с данными триангуляции

Описание

bool Imagick::adaptiveResizeImage ( int $columns , int $rows [, bool $bestfit = false ] )

Адаптивное изменение размера изображения с данными триангуляции. Позволяет избежать размытия через резкое изменение цвета. Чаще всего используется для уменьшения изображений чуть меньше "размера в web"; получается плохо, когда полноразмерное изображение адаптивно изменяется в миниатюру. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Замечание: Поведение параметра bestfit было изменено в Imagick 3.0.0. До этой версии при изменении изображения размером 200x150 до 400x300 никаких операций не происходило. В Imagick 3.0.0 и далее изображение будет масштабировано до размеров 400x300, так как это наилучшим образом соответствует ("best fit") данным размерам. Если используется параметр bestfit, то ширина и высота также должны быть определены.

Список параметров

columns

Количество столбцов в масштабе изображения.

rows

Количество строк в масштабе изображения.

bestfit

Будет ли подгоняться изображение внутри ограничительной рамки.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Добавлен необязательный параметр подгонки.
2.1.0 | Этот метод теперь поддерживает пропорциональное масштабирование. Для этого нужно передать 0 одному из параметров.

Примеры

Пример #1 Использование Imagick::adaptiveResizeImage()

Изменение размеров изображения обычно используемых в web. Этот метод лучше всего работает при не большом изменении размера.

<?php
header('Content-type: image/jpeg');

$image = new Imagick('image.jpg');
$image->adaptiveResizeImage(1024,768);

echo $image;
?>

Смотрите также

  • Imagick::chopImage() - Удаляет область изображения и обрезает его
  • Imagick::cropImage() - Извлекает область изображения
  • Imagick::magnifyImage() - Scales an image proportionally 2x
  • Imagick::minifyImage() - Scales an image proportionally to half its size
  • Imagick::resizeImage() - Scales an image
  • Imagick::scaleImage() - Scales the size of an image
  • Imagick::shaveImage() - Shaves pixels from the image edges
  • Imagick::thumbnailImage() - Changes the size of an image
  • Imagick::trimImage() - Remove edges from the image


Адаптивное изменение резкости изображения

  • « Imagick::adaptiveResizeImage
  • Imagick::adaptiveThresholdImage »
  • PHP Manual
  • Imagick
  • Адаптивное изменение резкости изображения

Imagick::adaptiveSharpenImage

(PECL imagick 2.0.0)

Imagick::adaptiveSharpenImage — Адаптивное изменение резкости изображения

Описание

bool Imagick::adaptiveSharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Адаптивное изменение резкости изображения с большей интенсивностью на краях изображения и с меньшей ближе к середине. Этот метод доступен, если 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 'Error: ' , $e->getMessage();
    die();
}
header('Content-type: image/png');
echo $image;
?>

Смотрите также

  • Imagick::sharpenImage() - Sharpens an image


Выбор порога для каждого пикселя в зависимости от диапазона интенсивности

  • « Imagick::adaptiveSharpenImage
  • Imagick::addImage »
  • PHP Manual
  • Imagick
  • Выбор порога для каждого пикселя в зависимости от диапазона интенсивности

Imagick::adaptiveThresholdImage

(PECL imagick 2.0.0)

Imagick::adaptiveThresholdImage — Выбор порога для каждого пикселя в зависимости от диапазона интенсивности

Описание

bool Imagick::adaptiveThresholdImage ( int $width , int $height , int $offset )

Выбор индивидуального ограничения для каждого пикселя в зависимости от диапазона значений интенсивности вокруг этого пикселя. Это дает возможность установить порог изображения, в котором гистограмма глобальной интенсивности не содержит отличительных пиков.

Список параметров

width

Область соседей по ширине.

height

Область соседей по высоте.

offset

Среднее смещение

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::adaptiveThresholdImage()

<?php
function adaptiveThresholdImage($imagePath, $width, $height, $adaptiveOffset) {
    $imagick = new \Imagick(realpath($imagePath));
    $adaptiveOffsetQuantum = intval($adaptiveOffset * \Imagick::getQuantum());
    $imagick->adaptiveThresholdImage($width, $height, $adaptiveOffsetQuantum);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Добавляет новое изображение к списку изображений объекта Imagick

  • « Imagick::adaptiveThresholdImage
  • Imagick::addNoiseImage »
  • PHP Manual
  • Imagick
  • Добавляет новое изображение к списку изображений объекта Imagick

Imagick::addImage

(PECL imagick 2.0.0)

Imagick::addImage — Добавляет новое изображение к списку изображений объекта Imagick

Описание

bool Imagick::addImage ( Imagick $source )

Добавляет новое изображение к объекту Imagick из текущего положения исходного объекта. После этой операции перемещается позиция итератора в конец списка.

Список параметров

source

Исходный объект Imagick

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Накладывает случайный шум на изображение

  • « Imagick::addImage
  • Imagick::affineTransformImage »
  • PHP Manual
  • Imagick
  • Накладывает случайный шум на изображение

Imagick::addNoiseImage

(PECL imagick 2.0.0)

Imagick::addNoiseImage — Накладывает случайный шум на изображение

Описание

bool Imagick::addNoiseImage ( int $noise_type [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Накладывает случайный шум на изображение.

Список параметров

noise_type

Тип шума. Обратитесь к списку констант шума.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::addNoiseImage()

<?php
function addNoiseImage($noiseType, $imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->addNoiseImage($noiseType, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Преобразование изображения

  • « Imagick::addNoiseImage
  • Imagick::animateImages »
  • PHP Manual
  • Imagick
  • Преобразование изображения

Imagick::affineTransformImage

(PECL imagick 2.0.0)

Imagick::affineTransformImage — Преобразование изображения

Описание

bool Imagick::affineTransformImage ( ImagickDraw $matrix )

Преобразование изображения с помощью аффинной матрицы.

Список параметров

matrix

Аффинная матрица

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::affineTransformImage()

<?php
function affineTransformImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $draw = new \ImagickDraw();

    $angle = 40 ;

    $affineRotate = array(
        "sx" => cos($angle), "sy" => cos($angle),
        "rx" => sin($angle), "ry" => -sin($angle),
        "tx" => 0, "ty" => 0,
    );

    $draw->affine($affineRotate);

    $imagick->affineTransformImage($draw);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Анимация одного или нескольких изображений

  • « Imagick::affineTransformImage
  • Imagick::annotateImage »
  • PHP Manual
  • Imagick
  • Анимация одного или нескольких изображений

Imagick::animateImages

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::animateImages — Анимация одного или нескольких изображений

Описание

bool Imagick::animateImages ( string $x_server )

Этот метод производит анимацию изображения на локальном или удалённом X сервере. Этот метод не доступен в Windows. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

x_server

Адрес X сервера

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::displayImage() - Выводит изображение


Добавляет текстовый комментарий на изображение

  • « Imagick::animateImages
  • Imagick::appendImages »
  • PHP Manual
  • Imagick
  • Добавляет текстовый комментарий на изображение

Imagick::annotateImage

(PECL imagick 2.0.0)

Imagick::annotateImage — Добавляет текстовый комментарий на изображение

Описание

bool Imagick::annotateImage ( ImagickDraw $draw_settings , float $x , float $y , float $angle , string $text )

Добавляет текстовый комментарий на изображение.

Список параметров

draw_settings

Объект ImagickDraw с настройками наносимого текста

x

Горизонтальное смещение в пикселях слева от текста

y

Вертикальное смещение в пикселях к базовому тексту

angle

Угол под которым выводится текст. Положительное значение: направление от верхнего левого угла до нижнего правого угла. Отрицательное значение: от нижнего левого угла до верхнего правого угла.

text

Строка с текстом

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Использование Imagick::annotateImage():

Добавление текста к пустому изображению

<?php
/* Создаем объекты */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( 'gray' );

/* Новое изображение */
$image->newImage(800, 75, $pixel);

/* Черный текст */
$draw->setFillColor('black');

/* Настройки шрифта */
$draw->setFont('Bookman-DemiItalic');
$draw->setFontSize( 30 );

/* Создаем текст */
$image->annotateImage($draw, 10, 45, 0, 'The quick brown fox jumps over the lazy dog');

/* Устанавливаем формат изображения */
$image->setImageFormat('png');

/* Выводим изображение с заголовками */
header('Content-type: image/png');
echo $image;

?>

Смотрите также

  • ImagickDraw::annotation() - Draws text on the image
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text


Объединяет набор изображений

  • « Imagick::annotateImage
  • Imagick::autoLevelImage »
  • PHP Manual
  • Imagick
  • Объединяет набор изображений

Imagick::appendImages

(PECL imagick 2.0.0)

Imagick::appendImages — Объединяет набор изображений

Описание

Imagick Imagick::appendImages ( bool $stack = false )

Объединяет набор изображений в одно большое изображение.

Список параметров

stack

Whether to stack the images vertically. По умолчанию (или если указано FALSE) изображения складываются слева направо. Если stack установлен в TRUE, то изображения складываются сверху вниз.

Возвращаемые значения

В случае успеха возвращает экземпляр Imagick.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Пример использования Imagick::appendImages()

<?php

/* Создаем новый объект imagick */
$im = new Imagick();

/* создаем красное, зеленое и синее изображения */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Соединяем все изображения в одно */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Выводим изображение */
$combined->setImageFormat("png");
header("Content-Type: image/png");
echo $combined;
?>

Результатом выполнения данного примера будет что-то подобное:

Пример вывода : Imagick::appendImages()


Description

  • « Imagick::appendImages
  • Imagick::averageImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::autoLevelImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::autoLevelImage — Description

Описание

public void Imagick::autoLevelImage ([ string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Adjusts the levels of a particular image channel by scaling the minimum and maximum values to the full quantum range.

Список параметров

CHANNEL

Which channel should the auto-levelling should be done on.

Возвращаемые значения

Примеры

Пример #1 Imagick::autoLevelImage()

<?php
function autoLevelImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->autoLevelImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Усредняет набор изображений

  • « Imagick::autoLevelImage
  • Imagick::blackThresholdImage »
  • PHP Manual
  • Imagick
  • Усредняет набор изображений

Imagick::averageImages

(PECL imagick 2.0.0)

Imagick::averageImages — Усредняет набор изображений

Описание

Imagick Imagick::averageImages ( void )

Усредняет набор изображений.

Возвращаемые значения

В случае успеха возвращает объект Imagick.

Ошибки

Вызывает ImagickException при ошибке.


Перевести все пиксели ниже порогового значения в черный цвет

  • « Imagick::averageImages
  • Imagick::blueShiftImage »
  • PHP Manual
  • Imagick
  • Перевести все пиксели ниже порогового значения в черный цвет

Imagick::blackThresholdImage

(PECL imagick 2.0.0)

Imagick::blackThresholdImage — Перевести все пиксели ниже порогового значения в черный цвет

Описание

bool Imagick::blackThresholdImage ( mixed $threshold )

Работает так же, как Imagick::thresholdImage(), но изменяются только пиксели ниже порогового значения, в то время как остальные пиксели остаются неизменными.

Список параметров

threshold

Пороговое значение ниже которого все пиксели станут черными

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | В качестве параметра возможно передавать цвет строкой. В предыдущих версиях разрешалось передавать только ImagickPixel.

Примеры

Пример #1 Imagick::blackThresholdImage()

<?php
function blackThresholdImage($imagePath, $thresholdColor) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->blackthresholdimage($thresholdColor);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::blackThresholdImage
  • Imagick::blurImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::blueShiftImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::blueShiftImage — Description

Описание

public void Imagick::blueShiftImage ([ float $factor = 1.5 ] )

Mutes the colors of the image to simulate a scene at nighttime in the moonlight.

Список параметров

factor

Возвращаемые значения

Примеры

Пример #1 Imagick::blueShiftImage()

<?php
function blueShiftImage($imagePath, $blueShift) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->blueShiftImage($blueShift);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Добавляет фильтр размытия к изображению

  • « Imagick::blueShiftImage
  • Imagick::borderImage »
  • PHP Manual
  • Imagick
  • Добавляет фильтр размытия к изображению

Imagick::blurImage

(PECL imagick 2.0.0)

Imagick::blurImage — Добавляет фильтр размытия к изображению

Описание

bool Imagick::blurImage ( float $radius , float $sigma [, int $channel ] )

Добавляет фильтр размытия к изображению. Необязательный третий параметр служит для размытия определенного канала.

Список параметров

radius

Радиус размытия

sigma

Стандартное отклонение

channel

Константа Channeltype. Если не указано, то будут размыты все каналы.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Использование Imagick::blurImage():

Размытие изображения и отправка его в браузер.

<?php

header('Content-type: image/jpeg');

$image = new Imagick('test.jpg');

$image->blurImage(5,3);
echo $image;

?>

Смотрите также

  • Imagick::adaptiveBlurImage() - Добавляет адаптивный фильтр размытия к изображению
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Окружает изображение рамкой

  • « Imagick::blurImage
  • Imagick::brightnessContrastImage »
  • PHP Manual
  • Imagick
  • Окружает изображение рамкой

Imagick::borderImage

(PECL imagick 2.0.0)

Imagick::borderImage — Окружает изображение рамкой

Описание

bool Imagick::borderImage ( mixed $bordercolor , int $width , int $height )

Окружает изображение рамкой с цветом установленным в объекте ImagickPixel.

Список параметров

bordercolor

Объект ImagickPixel или строка содержащая цвет рамки

width

Ширина рамки

height

Высота рамки

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | В качестве цвета разрешено передавать строку. Предыдущие версии допускали только объект ImagickPixel.

Примеры

Пример #1 Imagick::borderImage()

<?php
function borderImage($imagePath, $color, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->borderImage($color, $width, $height);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::borderImage
  • Imagick::charcoalImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::brightnessContrastImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::brightnessContrastImage — Description

Описание

public void Imagick::brightnessContrastImage ( string $brightness , string $contrast [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Change the brightness and/or contrast of an image. It converts the brightness and contrast parameters into slope and intercept and calls a polynomical function to apply to the image.

Список параметров

brightness

contrast

CHANNEL

Возвращаемые значения

Примеры

Пример #1 Imagick::brightnessContrastImage()

<?php
function brightnessContrastImage($imagePath, $brightness, $contrast, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->brightnessContrastImage($brightness, $contrast, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Рисование углем

  • « Imagick::brightnessContrastImage
  • Imagick::chopImage »
  • PHP Manual
  • Imagick
  • Рисование углем

Imagick::charcoalImage

(PECL imagick 2.0.0)

Imagick::charcoalImage — Рисование углем

Описание

bool Imagick::charcoalImage ( float $radius , float $sigma )

Рисование углем.

Список параметров

radius

Радиус Гаусса, в пикселях, не включая центральный пиксель

sigma

Стандартное отклонение Гаусса, в пикселях

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::charcoalImage()

<?php
function charcoalImage($imagePath, $radius, $sigma) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->charcoalImage($radius, $sigma);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Удаляет область изображения и обрезает его

  • « Imagick::charcoalImage
  • Imagick::clampImage »
  • PHP Manual
  • Imagick
  • Удаляет область изображения и обрезает его

Imagick::chopImage

(PECL imagick 2.0.0)

Imagick::chopImage — Удаляет область изображения и обрезает его

Описание

bool Imagick::chopImage ( int $width , int $height , int $x , int $y )

Удаляет выбранную область с реструктуризацией изображения.

Список параметров

width

Ширина обрезаемой области

height

Высота обрезаемой области

x

Начало отчета обрезаемой области по оси X

y

Начало отчета обрезаемой области по оси Y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Использование Imagick::chopImage():

Пример использования Imagick::chopImage

<?php
/* Создаем объекты */
$image = new Imagick();
$pixel = new ImagickPixel( 'gray' );

/* Новое изображение */
$image->newImage(400, 200, $pixel);

/* Обрезка изображения */
$image->chopImage(200, 200, 0, 0);

/* Установка формата изображения */
$image->setImageFormat('png');

/* Вывод изображения с заголовками */
header('Content-type: image/png');
echo $image;

?>

Смотрите также

  • Imagick::cropImage() - Извлекает область изображения


Description

  • « Imagick::chopImage
  • Imagick::clear »
  • PHP Manual
  • Imagick
  • Description

Imagick::clampImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::clampImage — Description

Описание

public void Imagick::clampImage ([ string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Restricts the color range from 0 to the quantum depth.

Список параметров

CHANNEL

Возвращаемые значения


Очищает все ресурсы, связанные с объектом Imagick

  • « Imagick::clampImage
  • Imagick::clipImage »
  • PHP Manual
  • Imagick
  • Очищает все ресурсы, связанные с объектом Imagick

Imagick::clear

(PECL imagick 2.0.0)

Imagick::clear — Очищает все ресурсы, связанные с объектом Imagick

Описание

bool Imagick::clear ( void )

Очищает все ресурсы, связанные с объектом Imagick

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Обрезка вдоль ближайшего контура с профилем 8BIM

  • « Imagick::clear
  • Imagick::clipImagePath »
  • PHP Manual
  • Imagick
  • Обрезка вдоль ближайшего контура с профилем 8BIM

Imagick::clipImage

(PECL imagick 2.0.0)

Imagick::clipImage — Обрезка вдоль ближайшего контура с профилем 8BIM

Описание

bool Imagick::clipImage ( void )

Обрезка вдоль ближайшего контура с профилем 8BIM, если он предоставлен.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Description

  • « Imagick::clipImage
  • Imagick::clipPathImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::clipImagePath

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::clipImagePath — Description

Описание

public void Imagick::clipImagePath ( string $pathname , string $inside )

Clips along the named paths from the 8BIM profile, if present. Later operations take effect inside the path. Id may be a number if preceded with #, to work on a numbered path, e.g., "#1" to use the first path.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

pathname

inside

Возвращаемые значения


Отсечь вдоль обозначенного контура с профилем 8BIM

  • « Imagick::clipImagePath
  • Imagick::clone »
  • PHP Manual
  • Imagick
  • Отсечь вдоль обозначенного контура с профилем 8BIM

Imagick::clipPathImage

(PECL imagick 2.0.0)

Imagick::clipPathImage — Отсечь вдоль обозначенного контура с профилем 8BIM

Описание

bool Imagick::clipPathImage ( string $pathname , bool $inside )

Отсекает изображение вдоль обозначенного контура с профилем 8BIM, если он предоставлен. Последующие операции будут применяться к внутреннему контуру. Так же может быть числом, если его предваряет символ #. Это необходимо для работы с пронумерованными контурами, например, "#1" для использования первого контура.

Список параметров

pathname

Обозначенный контур

inside

Если установлено TRUE, то последующие операции будут применяться к внутреннему контуру. Иначе, последующие операции будут применяться к внешнему контуру.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Создает точную копию объекта Imagick

  • « Imagick::clipPathImage
  • Imagick::clutImage »
  • PHP Manual
  • Imagick
  • Создает точную копию объекта Imagick

Imagick::clone

(PECL imagick 2.0.0)

Imagick::clone — Создает точную копию объекта Imagick

Описание

Imagick Imagick::clone ( void )

Создает точную копию объекта Imagick.

Внимание

Эта функция устарела (DEPRECATED) с imagick версии 3.1.0, взамен нее используйте ключевое слово clone.

Примеры

Пример #1 Клонирование объекта Imagick в разных версиях

<?php
// Клоинирование объекта Imagick в imagick 2.x и 3.0:
$newImage = $image->clone();

// Клонирование объекта Imagick с версии 3.1.0:
$newImage = clone $image;
?>

Возвращаемые значения

Будет возвращена копия объекта Imagick.

Список изменений

Версия | Описание
3.1.0 | Метод устарел в пользу ключевого слова clone.


Заменяет цвета в изображении

  • « Imagick::clone
  • Imagick::coalesceImages »
  • PHP Manual
  • Imagick
  • Заменяет цвета в изображении

Imagick::clutImage

(PECL imagick 2.0.0)

Imagick::clutImage — Заменяет цвета в изображении

Описание

bool Imagick::clutImage ( Imagick $lookup_table [, float $channel = Imagick::CHANNEL_DEFAULT ] )

Заменяет цвета в изображении, используя таблицу соответствия. Необязательный второй параметр заменяет цвета в указанном канале. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

lookup_table

Объект Imagick, содержащий таблицу соответствия цветов.

channel

Константа Channeltype. Если не указано, то по умолчанию замена происходит во всех каналах.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Использование Imagick::clutImage():

Замена цвета в изображении, используя таблицу соответствия.

<?php
$image = new Imagick('test.jpg');
$clut = new Imagick();
$clut->newImage(1, 1, new ImagickPixel('black'));
$image->clutImage($clut);
$image->writeImage('test_out.jpg');
?>

Смотрите также

  • Imagick::adaptiveBlurImage() - Добавляет адаптивный фильтр размытия к изображению
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Composites a set of images

  • « Imagick::clutImage
  • Imagick::colorFloodfillImage »
  • PHP Manual
  • Imagick
  • Composites a set of images

Imagick::coalesceImages

(PECL imagick 2.0.0)

Imagick::coalesceImages — Composites a set of images

Описание

Imagick Imagick::coalesceImages ( void )

Composites a set of images while respecting any page offsets and disposal methods. GIF, MIFF, and MNG animation sequences typically start with an image background and each subsequent image varies in size and offset. Returns a new Imagick object where each image in the sequence is the same size as the first and composited with the next image in the sequence.

Возвращаемые значения

Returns a new Imagick object on success.

Ошибки

Вызывает ImagickException при ошибке.


Changes the color value of any pixel that matches target

  • « Imagick::coalesceImages
  • Imagick::colorizeImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::colorFloodfillImage

(PECL imagick 2.0.0)

Imagick::colorFloodfillImage — Changes the color value of any pixel that matches target

Описание

bool Imagick::colorFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y )

Changes the color value of any pixel that matches target and is an immediate neighbor.

Список параметров

fill

ImagickPixel object containing the fill color

fuzz

The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

bordercolor

ImagickPixel object containing the border color

x

X start position of the floodfill

y

Y start position of the floodfill

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as first and third parameter. Previous versions allow only an ImagickPixel object.


Смешивание цвета заливки с изображением

  • « Imagick::colorFloodfillImage
  • Imagick::colorMatrixImage »
  • PHP Manual
  • Imagick
  • Смешивание цвета заливки с изображением

Imagick::colorizeImage

(PECL imagick 2.0.0)

Imagick::colorizeImage — Смешивание цвета заливки с изображением

Описание

bool Imagick::colorizeImage ( mixed $colorize , mixed $opacity )

Смешивает цвет заливки с каждым пикселем изображения.

Список параметров

colorize

Объект ImagickPixel или строка содержащая цвет

opacity

Объект ImagickPixel или дробное число содержащее значение прозрачности. 1.0 означает без прозрачности, 0.0 означает полную прозрачность.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Для первого параметра разрешено передавать цвет в виде строки и указывать значение прозрачности во втором параметре. Предыдущие версии допускали только объект ImagickPixel.

Примеры

Пример #1 Imagick::colorizeImage()

<?php
function colorizeImage($imagePath, $color, $opacity) {
    $imagick = new \Imagick(realpath($imagePath));
    $opacity = $opacity / 255.0;
    $opacityColor = new \ImagickPixel("rgba(0, 0, 0, $opacity)");
    $imagick->colorizeImage($color, $opacityColor);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::colorizeImage
  • Imagick::combineImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::colorMatrixImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::colorMatrixImage — Description

Описание

public void Imagick::colorMatrixImage ( string $color_matrix = Imagick::CHANNEL_DEFAULT )

Apply color transformation to an image. The method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255)

Список параметров

color_matrix

Возвращаемые значения

Примеры

Пример #1 Imagick::colorMatrixImage()

<?php
function colorMatrixImage($imagePath, $colorMatrix) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageOpacity(1);

    //A color matrix should look like:
    //    $colorMatrix = [
    //        1.5, 0.0, 0.0, 0.0, 0.0, -0.157,
    //        0.0, 1.0, 0.5, 0.0, 0.0, -0.157,
    //        0.0, 0.0, 1.5, 0.0, 0.0, -0.157,
    //        0.0, 0.0, 0.0, 1.0, 0.0,  0.0,
    //        0.0, 0.0, 0.0, 0.0, 1.0,  0.0,
    //        0.0, 0.0, 0.0, 0.0, 0.0,  1.0
    //    ];

    $background = new \Imagick();
    $background->newPseudoImage($imagick->getImageWidth(), $imagick->getImageHeight(),  "pattern:checkerboard");

    $background->setImageFormat('png');

    $imagick->setImageFormat('png');
    $imagick->colorMatrixImage($colorMatrix);

    $background->compositeImage($imagick, \Imagick::COMPOSITE_ATOP, 0, 0);

    header("Content-Type: image/png");
    echo $background->getImageBlob();
}

?>


Combines one or more images into a single image

  • « Imagick::colorMatrixImage
  • Imagick::commentImage »
  • PHP Manual
  • Imagick
  • Combines one or more images into a single image

Imagick::combineImages

(PECL imagick 2.0.0)

Imagick::combineImages — Combines one or more images into a single image

Описание

Imagick Imagick::combineImages ( int $channelType )

Combines one or more images into a single image. The grayscale value of the pixels of each image in the sequence is assigned in order to the specified channels of the combined image. The typical ordering would be image 1 => Red, 2 => Green, 3 => Blue, etc.

Список параметров

channelType

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Adds a comment to your image

  • « Imagick::combineImages
  • Imagick::compareImageChannels »
  • PHP Manual
  • Imagick
  • Adds a comment to your image

Imagick::commentImage

(PECL imagick 2.0.0)

Imagick::commentImage — Adds a comment to your image

Описание

bool Imagick::commentImage ( string $comment )

Adds a comment to your image.

Список параметров

comment

The comment to add

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::commentImage():

Commenting an image and retrieving the comment:

<?php

/* Create new Imagick object */
$im = new imagick();

/* Create an empty image */
$im->newImage(100, 100, new ImagickPixel("red"));

/* Add comment to the image */
$im->commentImage("Hello World!");

/* Display the comment */
echo $im->getImageProperty("comment");

?>


Returns the difference in one or more images

  • « Imagick::commentImage
  • Imagick::compareImageLayers »
  • PHP Manual
  • Imagick
  • Returns the difference in one or more images

Imagick::compareImageChannels

(PECL imagick 2.0.0)

Imagick::compareImageChannels — Returns the difference in one or more images

Описание

array Imagick::compareImageChannels ( Imagick $image , int $channelType , int $metricType )

Compares one or more images and returns the difference image.

Список параметров

image

Imagick object containing the image to compare.

channelType

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

metricType

One of the metric type constants.

Возвращаемые значения

Array consisting of new_wand and distortion.

Ошибки

Вызывает ImagickException при ошибке.


Returns the maximum bounding region between images

  • « Imagick::compareImageChannels
  • Imagick::compareImages »
  • PHP Manual
  • Imagick
  • Returns the maximum bounding region between images

Imagick::compareImageLayers

(PECL imagick 2.0.0)

Imagick::compareImageLayers — Returns the maximum bounding region between images

Описание

Imagick Imagick::compareImageLayers ( int $method )

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

method

One of the layer method constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::compareImageLayers()

Comparing image layers

<?php
/* create new imagick object */
$im = new Imagick("test.gif");

/* optimize the image layers */
$result = $im->compareImageLayers(imagick::LAYERMETHOD_COALESCE);

/* work on the $result */
?>

Смотрите также

  • Imagick::optimizeImageLayers() - Removes repeated portions of images to optimize
  • Imagick::writeImages() - Writes an image or image sequence
  • Imagick::writeImage() - Writes an image to the specified filename


Compares an image to a reconstructed image

  • « Imagick::compareImageLayers
  • Imagick::compositeImage »
  • PHP Manual
  • Imagick
  • Compares an image to a reconstructed image

Imagick::compareImages

(PECL imagick 2.0.0)

Imagick::compareImages — Compares an image to a reconstructed image

Описание

array Imagick::compareImages ( Imagick $compare , int $metric )

Returns an array containing a reconstructed image and the difference between images.

Список параметров

compare

An image to compare to.

metric

Provide a valid metric type constant. Refer to this list of metric constants.

Возвращаемые значения

Returns an array containing a reconstructed image and the difference between images.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::compareImages():

Compare images and display the reconstructed image

<?php

$image1 = new imagick("image1.png");
$image2 = new imagick("image2.png");

$result = $image1->compareImages($image2, Imagick::METRIC_MEANSQUAREERROR);
$result[0]->setImageFormat("png");

header("Content-Type: image/png");
echo $result[0];

?>


Composite one image onto another

  • « Imagick::compareImages
  • Imagick::__construct »
  • PHP Manual
  • Imagick
  • Composite one image onto another

Imagick::compositeImage

(PECL imagick 2.0.0)

Imagick::compositeImage — Composite one image onto another

Описание

bool Imagick::compositeImage ( Imagick $composite_object , int $composite , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )

Composite one image onto another at the specified offset. Any extra arguments needed for the compose algorithm should passed to setImageArtifact with 'compose:args' as the first parameter and the data as the second parameter.

Список параметров

composite_object

Imagick object which holds the composite image

compose

Composite operator. See Composite Operator Constants

x

The column offset of the composited image

y

The row offset of the composited image

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Using Imagick::compositeImage():

Composite two images with the 'mathematics' compose method

<?php

// Equivalent to running the command
// convert src1.png src2.png -compose mathematics -define compose:args="1,0,-0.5,0.5" -composite output.png

$src1 = new \Imagick("./src1.png");
$src2 = new \Imagick("./src2.png");

$src1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
$src1->setImageArtifact('compose:args', "1,0,-0.5,0.5");
$src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);
$src1->writeImage("./output.png");

?>

Смотрите также

  • Imagick::setImageArtifact() - Set image artifact


Конструктор объекта Imagick

  • « Imagick::compositeImage
  • Imagick::contrastImage »
  • PHP Manual
  • Imagick
  • Конструктор объекта Imagick

Imagick::__construct

(PECL imagick 2.0.0)

Imagick::__construct — Конструктор объекта Imagick

Описание

Imagick::__construct ( mixed $files )

Создает экземпляр Imagick для отдельного изображения или группы изображений.

Список параметров

files

Путь к изображению для загрузки или массив таких путей. Пути могут содержать групповые символы для имен файлов или могут являться URL.

Возвращаемые значения

В случае успеха возвращает новый объект Imagick.

Ошибки

Вызывает ImagickException при ошибке.


Change the contrast of the image

  • « Imagick::__construct
  • Imagick::contrastStretchImage »
  • PHP Manual
  • Imagick
  • Change the contrast of the image

Imagick::contrastImage

(PECL imagick 2.0.0)

Imagick::contrastImage — Change the contrast of the image

Описание

bool Imagick::contrastImage ( bool $sharpen )

Enhances the intensity differences between the lighter and darker elements of the image. Set sharpen to a value other than 0 to increase the image contrast otherwise the contrast is reduced.

Список параметров

sharpen

The sharpen value

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::contrastImage()

<?php
function contrastImage($imagePath, $contrastType) {
    $imagick = new \Imagick(realpath($imagePath));
    if ($contrastType != 2) {
        $imagick->contrastImage($contrastType);
    }

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Enhances the contrast of a color image

  • « Imagick::contrastImage
  • Imagick::convolveImage »
  • PHP Manual
  • Imagick
  • Enhances the contrast of a color image

Imagick::contrastStretchImage

(PECL imagick 2.0.0)

Imagick::contrastStretchImage — Enhances the contrast of a color image

Описание

bool Imagick::contrastStretchImage ( float $black_point , float $white_point [, int $channel = Imagick::CHANNEL_ALL ] )

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

black_point

The black point.

white_point

The white point.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Imagick::CHANNEL_ALL. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Applies a custom convolution kernel to the image

  • « Imagick::contrastStretchImage
  • Imagick::count »
  • PHP Manual
  • Imagick
  • Applies a custom convolution kernel to the image

Imagick::convolveImage

(PECL imagick 2.0.0)

Imagick::convolveImage — Applies a custom convolution kernel to the image

Описание

bool Imagick::convolveImage ( array $kernel [, int $channel = Imagick::CHANNEL_ALL ] )

Applies a custom convolution kernel to the image.

Список параметров

kernel

The convolution kernel

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::convolveImage()

<?php
function convolveImage($imagePath, $bias, $kernelMatrix) {
    $imagick = new \Imagick(realpath($imagePath));
    //$edgeFindingKernel = [-1, -1, -1, -1, 8, -1, -1, -1, -1,];
    $imagick->setImageBias($bias * \Imagick::getQuantum());
    $imagick->convolveImage($kernelMatrix);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::convolveImage
  • Imagick::cropImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::count

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::count — Description

Описание

public void Imagick::count ([ string $mode ] )

Returns the number of images.

Список параметров

mode

An unused argument. Currently there is a non-particularly well defined feature in PHP where calling count() on a countable object might (or might not) require this method to accept a parameter. This parameter is here to be conformant with the interface of countable, even though the param is not used.

Возвращаемые значения


Извлекает область изображения

  • « Imagick::count
  • Imagick::cropThumbnailImage »
  • PHP Manual
  • Imagick
  • Извлекает область изображения

Imagick::cropImage

(PECL imagick 2.0.0)

Imagick::cropImage — Извлекает область изображения

Описание

bool Imagick::cropImage ( int $width , int $height , int $x , int $y )

Извлекает область изображения.

Список параметров

width

Ширина обрезания

height

Высота обрезания

x

Координата X верхнего левого угла области обрезания

y

Координата Y верхнего левого угла области обрезания

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::cropImage()

<?php
function cropImage($imagePath, $startX, $startY, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->cropImage($width, $height, $startX, $startY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a crop thumbnail

  • « Imagick::cropImage
  • Imagick::current »
  • PHP Manual
  • Imagick
  • Creates a crop thumbnail

Imagick::cropThumbnailImage

(PECL imagick 2.0.0)

Imagick::cropThumbnailImage — Creates a crop thumbnail

Описание

bool Imagick::cropThumbnailImage ( int $width , int $height )

Creates a fixed size thumbnail by first scaling the image up or down and cropping a specified area from the center.

Список параметров

width

The width of the thumbnail

height

The Height of the thumbnail

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает ссылку на текущий объект Imagick

  • « Imagick::cropThumbnailImage
  • Imagick::cycleColormapImage »
  • PHP Manual
  • Imagick
  • Возвращает ссылку на текущий объект Imagick

Imagick::current

(PECL imagick 2.0.0)

Imagick::current — Возвращает ссылку на текущий объект Imagick

Описание

Imagick Imagick::current ( void )

Возвращает ссылку на текущий объект imagick с указателем на изображение в правильной последовательности.

Возвращаемые значения

Возвращает себя в случае успеха.

Ошибки

Вызывает ImagickException при ошибке.


Displaces an image's colormap

  • « Imagick::current
  • Imagick::decipherImage »
  • PHP Manual
  • Imagick
  • Displaces an image's colormap

Imagick::cycleColormapImage

(PECL imagick 2.0.0)

Imagick::cycleColormapImage — Displaces an image's colormap

Описание

bool Imagick::cycleColormapImage ( int $displace )

Displaces an image's colormap by a given number of positions. If you cycle the colormap a number of times you can produce a psychedelic effect.

Список параметров

displace

The amount to displace the colormap.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Deciphers an image

  • « Imagick::cycleColormapImage
  • Imagick::deconstructImages »
  • PHP Manual
  • Imagick
  • Deciphers an image

Imagick::decipherImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::decipherImage — Deciphers an image

Описание

bool Imagick::decipherImage ( string $passphrase )

Deciphers image that has been enciphered before. The image must be enciphered using Imagick::encipherImage(). Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.9 или старше.

Список параметров

passphrase

The passphrase

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::encipherImage() - Enciphers an image


Returns certain pixel differences between images

  • « Imagick::decipherImage
  • Imagick::deleteImageArtifact »
  • PHP Manual
  • Imagick
  • Returns certain pixel differences between images

Imagick::deconstructImages

(PECL imagick 2.0.0)

Imagick::deconstructImages — Returns certain pixel differences between images

Описание

Imagick Imagick::deconstructImages ( void )

Compares each image with the next in a sequence and returns the maximum bounding region of any pixel differences it discovers.

Возвращаемые значения

Returns a new Imagick object on success.

Ошибки

Вызывает ImagickException при ошибке.


Delete image artifact

  • « Imagick::deconstructImages
  • Imagick::deleteImageProperty »
  • PHP Manual
  • Imagick
  • Delete image artifact

Imagick::deleteImageArtifact

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::deleteImageArtifact — Delete image artifact

Описание

bool Imagick::deleteImageArtifact ( string $artifact )

Deletes an artifact associated with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

artifact

The name of the artifact to delete

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::setImageArtifact() - Set image artifact
  • Imagick::getImageArtifact() - Get image artifact


Description

  • « Imagick::deleteImageArtifact
  • Imagick::deskewImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::deleteImageProperty

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::deleteImageProperty — Description

Описание

public void Imagick::deleteImageProperty ( string $name )

Deletes an image property.

Список параметров

name

The name of the property to delete.

Возвращаемые значения


Removes skew from the image

  • « Imagick::deleteImageProperty
  • Imagick::despeckleImage »
  • PHP Manual
  • Imagick
  • Removes skew from the image

Imagick::deskewImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::deskewImage — Removes skew from the image

Описание

public bool Imagick::deskewImage ( float $threshold )

This method can be used to remove skew from for example scanned images where the paper was not properly placed on the scanning surface. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

threshold

Deskew threshold

Возвращаемые значения

Примеры

Пример #1 Imagick::deskewImage()

<?php
function deskewImage($threshold) {
    $imagick = new \Imagick(realpath("images/NYTimes-Page1-11-11-1918.jpg"));
    $deskewImagick = clone $imagick;

    //This is the only thing required for deskewing.
    $deskewImagick->deskewImage($threshold);

    //The rest of this example is to make the result obvious - because
    //otherwise the result is not obvious.
    $trim = 9;

    $deskewImagick->cropImage($deskewImagick->getImageWidth() - $trim, $deskewImagick->getImageHeight(), $trim, 0);
    $imagick->cropImage($imagick->getImageWidth() - $trim, $imagick->getImageHeight(), $trim, 0);
    $deskewImagick->resizeimage($deskewImagick->getImageWidth() / 2, $deskewImagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
    $imagick->resizeimage($imagick->getImageWidth() / 2, $imagick->getImageHeight() / 2, \Imagick::FILTER_LANCZOS, 1);
    $newCanvas = new \Imagick();
    $newCanvas->newimage($imagick->getImageWidth() + $deskewImagick->getImageWidth() + 20, $imagick->getImageHeight(), 'red', 'jpg');
    $newCanvas->compositeimage($imagick, \Imagick::COMPOSITE_COPY, 5, 0);
    $newCanvas->compositeimage($deskewImagick, \Imagick::COMPOSITE_COPY, $imagick->getImageWidth() + 10, 0);

    header("Content-Type: image/jpg");
    echo $newCanvas->getImageBlob();
}

?>


Reduces the speckle noise in an image

  • « Imagick::deskewImage
  • Imagick::destroy »
  • PHP Manual
  • Imagick
  • Reduces the speckle noise in an image

Imagick::despeckleImage

(PECL imagick 2.0.0)

Imagick::despeckleImage — Reduces the speckle noise in an image

Описание

bool Imagick::despeckleImage ( void )

Reduces the speckle noise in an image while preserving the edges of the original image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::despeckleImage()

<?php
function despeckleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->despeckleImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Удаляет объект Imagick

  • « Imagick::despeckleImage
  • Imagick::displayImage »
  • PHP Manual
  • Imagick
  • Удаляет объект Imagick

Imagick::destroy

(PECL imagick 2.0.0)

Imagick::destroy — Удаляет объект Imagick

Описание

bool Imagick::destroy ( void )

Удаляет объект Imagick и освобождает все ресурсы связанные с ним. Этот метод устарел и следует использовать Imagick::clear.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Выводит изображение

  • « Imagick::destroy
  • Imagick::displayImages »
  • PHP Manual
  • Imagick
  • Выводит изображение

Imagick::displayImage

(PECL imagick 2.0.0)

Imagick::displayImage — Выводит изображение

Описание

bool Imagick::displayImage ( string $servername )

Данный метод выводит изображение на X сервер.

Список параметров

servername

Имя X сервера

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Выводит изображение или последовательность изображений

  • « Imagick::displayImage
  • Imagick::distortImage »
  • PHP Manual
  • Imagick
  • Выводит изображение или последовательность изображений

Imagick::displayImages

(PECL imagick 2.0.0)

Imagick::displayImages — Выводит изображение или последовательность изображений

Описание

bool Imagick::displayImages ( string $servername )

Выводит изображение или последовательность изображений на X сервер.

Список параметров

servername

Имя X сервера

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Distorts an image using various distortion methods

  • « Imagick::displayImages
  • Imagick::drawImage »
  • PHP Manual
  • Imagick
  • Distorts an image using various distortion methods

Imagick::distortImage

(PECL imagick 2.0.1)

Imagick::distortImage — Distorts an image using various distortion methods

Описание

bool Imagick::distortImage ( int $method , array $arguments , bool $bestfit )

Distorts an image using various distortion methods, by mapping color lookups of the source image to a new destination image usually of the same size as the source image, unless 'bestfit' is set to TRUE.

If 'bestfit' is enabled, and distortion allows it, the destination image is adjusted to ensure the whole source 'image' will just fit within the final destination image, which will be sized and offset accordingly. Also in many cases the virtual offset of the source image will be taken into account in the mapping.

Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

method

The method of image distortion. See distortion constants

arguments

The arguments for this distortion method

bestfit

Attempt to resize destination to fit distorted source

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::distortImage():

Distort an image and display to the browser.

<?php
/* Create new object */
$im = new Imagick();

/* Create new checkerboard pattern */
$im->newPseudoImage(100, 100, "pattern:checkerboard");

/* Set the image format to png */
$im->setImageFormat('png');

/* Fill new visible areas with transparent */
$im->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);

/* Activate matte */
$im->setImageMatte(true);

/* Control points for the distortion */
$controlPoints = array( 10, 10,
                        10, 5,

                        10, $im->getImageHeight() - 20,
                        10, $im->getImageHeight() - 5,

                        $im->getImageWidth() - 10, 10,
                        $im->getImageWidth() - 10, 20,

                        $im->getImageWidth() - 10, $im->getImageHeight() - 10,
                        $im->getImageWidth() - 10, $im->getImageHeight() - 30);

/* Perform the distortion */
$im->distortImage(Imagick::DISTORTION_PERSPECTIVE, $controlPoints, true);

/* Ouput the image */
header("Content-Type: image/png");
echo $im;
?>

Результатом выполнения данного примера будет что-то подобное:

Output of example : Using Imagick::distortImage()

Смотрите также

  • Imagick::blurImage() - Добавляет фильтр размытия к изображению
  • Imagick::motionBlurImage() - Simulates motion blur
  • Imagick::radialBlurImage() - Radial blurs an image


Выполняет рендеринг объекта ImagickDraw на текущем изображении

  • « Imagick::distortImage
  • Imagick::edgeImage »
  • PHP Manual
  • Imagick
  • Выполняет рендеринг объекта ImagickDraw на текущем изображении

Imagick::drawImage

(PECL imagick 2.0.0)

Imagick::drawImage — Выполняет рендеринг объекта ImagickDraw на текущем изображении

Описание

bool Imagick::drawImage ( ImagickDraw $draw )

Выполняет рендеринг объекта ImagickDraw на текущем изображении.

Список параметров

draw

Операции рисования выполняемые к изображению.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Enhance edges within the image

  • « Imagick::drawImage
  • Imagick::embossImage »
  • PHP Manual
  • Imagick
  • Enhance edges within the image

Imagick::edgeImage

(PECL imagick 2.0.0)

Imagick::edgeImage — Enhance edges within the image

Описание

bool Imagick::edgeImage ( float $radius )

Enhance edges within the image with a convolution filter of the given radius. Use radius 0 and it will be auto-selected.

Список параметров

radius

The radius of the operation.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::edgeImage()

<?php
function edgeImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->edgeImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Returns a grayscale image with a three-dimensional effect

  • « Imagick::edgeImage
  • Imagick::encipherImage »
  • PHP Manual
  • Imagick
  • Returns a grayscale image with a three-dimensional effect

Imagick::embossImage

(PECL imagick 2.0.0)

Imagick::embossImage — Returns a grayscale image with a three-dimensional effect

Описание

bool Imagick::embossImage ( float $radius , float $sigma )

Returns a grayscale image with a three-dimensional effect. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and it will choose a suitable radius for you.

Список параметров

radius

The radius of the effect

sigma

The sigma of the effect

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::embossImage()

<?php
function embossImage($imagePath, $radius, $sigma) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->embossImage($radius, $sigma);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Enciphers an image

  • « Imagick::embossImage
  • Imagick::enhanceImage »
  • PHP Manual
  • Imagick
  • Enciphers an image

Imagick::encipherImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::encipherImage — Enciphers an image

Описание

bool Imagick::encipherImage ( string $passphrase )

Converts plain pixels to enciphered pixels. The image is not readable until it has been deciphered using Imagick::decipherImage() Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.9 или старше.

Список параметров

passphrase

The passphrase

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::decipherImage() - Deciphers an image


Improves the quality of a noisy image

  • « Imagick::encipherImage
  • Imagick::equalizeImage »
  • PHP Manual
  • Imagick
  • Improves the quality of a noisy image

Imagick::enhanceImage

(PECL imagick 2.0.0)

Imagick::enhanceImage — Improves the quality of a noisy image

Описание

bool Imagick::enhanceImage ( void )

Applies a digital filter that improves the quality of a noisy image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::enhanceImage()

<?php
function enhanceImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->enhanceImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Equalizes the image histogram

  • « Imagick::enhanceImage
  • Imagick::evaluateImage »
  • PHP Manual
  • Imagick
  • Equalizes the image histogram

Imagick::equalizeImage

(PECL imagick 2.0.0)

Imagick::equalizeImage — Equalizes the image histogram

Описание

bool Imagick::equalizeImage ( void )

Equalizes the image histogram.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::equalizeImage()

<?php
function equalizeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->equalizeImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies an expression to an image

  • « Imagick::equalizeImage
  • Imagick::exportImagePixels »
  • PHP Manual
  • Imagick
  • Applies an expression to an image

Imagick::evaluateImage

(PECL imagick 2.0.0)

Imagick::evaluateImage — Applies an expression to an image

Описание

bool Imagick::evaluateImage ( int $op , float $constant [, int $channel = Imagick::CHANNEL_ALL ] )

Applys an arithmetic, relational, or logical expression to an image. Use these operators to lighten or darken an image, to increase or decrease contrast in an image, or to produce the "negative" of an image.

Список параметров

op

The evaluation operator

constant

The value of the operator

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Примеры

Пример #1 Using Imagick::evaluateImage()

Using evaluateImage to reduce opacity in an image.

<?php
// Create new object with the image
$im = new Imagick('example-alpha.png');

// Reduce the alpha by 50%
$im->evaluateImage(Imagick::EVALUATE_DIVIDE, 2, Imagick::CHANNEL_ALPHA);

// Output the image
header("Content-Type: image/png");
echo $im;
?>

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Exports raw image pixels

  • « Imagick::evaluateImage
  • Imagick::extentImage »
  • PHP Manual
  • Imagick
  • Exports raw image pixels

Imagick::exportImagePixels

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::exportImagePixels — Exports raw image pixels

Описание

public array Imagick::exportImagePixels ( int $x , int $y , int $width , int $height , string $map , int $STORAGE )

Exports image pixels into an array. The map defines the ordering of the exported pixels. The size of the returned array is width * height * strlen(map). Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.7 или старше.

Список параметров

x

X-coordinate of the exported area

y

Y-coordinate of the exported area

width

Width of the exported aread

height

Height of the exported area

map

Ordering of the exported pixels. For example "RGB". Valid characters for the map are R, G, B, A, O, C, Y, M, K, I and P.

STORAGE

Refer to this list of pixel type constants

Примеры

Пример #1 Using Imagick::exportImagePixels()

Export image pixels into an array

<?php

/* Create new object */
$im = new Imagick();

/* Create new image */
$im->newPseudoImage(0, 0, "magick:rose");

/* Export the image pixels */
$pixels = $im->exportImagePixels(10, 10, 2, 2, "RGB", Imagick::PIXEL_CHAR);

/* Output */
var_dump($pixels);
?>

Результат выполнения данного примера:

array(12) {
  [0]=>
  int(72)
  [1]=>
  int(64)
  [2]=>
  int(57)
  [3]=>
  int(69)
  [4]=>
  int(59)
  [5]=>
  int(43)
  [6]=>
  int(124)
  [7]=>
  int(120)
  [8]=>
  int(-96)
  [9]=>
  int(91)
  [10]=>
  int(84)
  [11]=>
  int(111)
}

Возвращаемые значения

Returns an array containing the pixels values.

Ошибки

Вызывает ImagickException при ошибке.


Set image size

  • « Imagick::exportImagePixels
  • Imagick::filter »
  • PHP Manual
  • Imagick
  • Set image size

Imagick::extentImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::extentImage — Set image size

Описание

bool Imagick::extentImage ( int $width , int $height , int $x , int $y )

Comfortability method for setting image size. The method sets the image size and allows setting x,y coordinates where the new area begins. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.1 или старше.

Предостережение

Prior to ImageMagick 6.5.7-8 (1623), $x was positive when shifting to the left and negative when shifting to the right, and $y was positive when shifting an image up and negative when shifting an image down. Somewhere betwen ImageMagick 6.3.7 (1591) and ImageMagick 6.5.7-8 (1623), the axes of $x and $y were flipped, so that $x was negative when shifting to the left and positive when shifting to the right, and $y was negative when shifting an image up and positive when shifting an image down. Somewhere between ImageMagick 6.5.7-8 (1623) and ImageMagick 6.6.9-7 (1641), the axes of $x and $y were flipped back to pre-ImageMagick 6.5.7-8 (1623) functionality.

Список параметров

width

The new width

height

The new height

x

X position for the new size

y

Y position for the new size

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::resizeImage() - Scales an image
  • Imagick::thumbnailImage() - Changes the size of an image
  • Imagick::cropImage() - Извлекает область изображения


Description

  • « Imagick::extentImage
  • Imagick::flattenImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::filter

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::filter — Description

Описание

public void Imagick::filter ( ImagickKernel $ImagickKernel [, int $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Applies a custom convolution kernel to the image.

Список параметров

ImagickKernel

An instance of ImagickKernel that represents either a single kernel or a linked series of kernels.

CHANNEL

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Примеры

Пример #1 Imagick::filter()

<?php
function filter($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $matrix = [
        [-1, 0, -1],
        [0,  5,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $strength = 0.5;
    $kernel->scale($strength, \Imagick::NORMALIZE_KERNEL_VALUE);
    $kernel->addUnityKernel(1 - $strength);

    $imagick->filter($kernel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Merges a sequence of images

  • « Imagick::filter
  • Imagick::flipImage »
  • PHP Manual
  • Imagick
  • Merges a sequence of images

Imagick::flattenImages

(PECL imagick 2.0.0)

Imagick::flattenImages — Merges a sequence of images

Описание

Imagick Imagick::flattenImages ( void )

Merges a sequence of images. This is useful for combining Photoshop layers into a single image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Создает вертикальное зеркало изображения

  • « Imagick::flattenImages
  • Imagick::floodFillPaintImage »
  • PHP Manual
  • Imagick
  • Создает вертикальное зеркало изображения

Imagick::flipImage

(PECL imagick 2.0.0)

Imagick::flipImage — Создает вертикальное зеркало изображения

Описание

bool Imagick::flipImage ( void )

Создает вертикальное зеркало изображения, отражая пиксели вокруг центральной оси X.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::flipImage()

<?php
function flipImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->flipImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Changes the color value of any pixel that matches target

  • « Imagick::flipImage
  • Imagick::flopImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::floodFillPaintImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target

Описание

bool Imagick::floodFillPaintImage ( mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Changes the color value of any pixel that matches target and is an immediate neighbor. This method is a replacement for deprecated Imagick::paintFloodFillImage(). Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

fill

ImagickPixel object or a string containing the fill color

fuzz

Мера округления (fuzz). Для примера, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.

target

ImagickPixel object or a string containing the target color to paint

x

X start position of the floodfill

y

Y start position of the floodfill

invert

If TRUE paints any pixel that does not match the target color.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::floodfillPaintImage() example

<?php

/* Create new imagick object */
$im = new Imagick();

/* create red, green and blue images */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Append the images into one */
$im->resetIterator();
$combined = $im->appendImages(true);

/* Save the intermediate image for comparison */
$combined->writeImage("floodfillpaint_intermediate.png");

/* The target pixel to paint */
$x = 1;
$y = 1;

/* Get the color we are painting */
$target = $combined->getImagePixelColor($x, $y);

/* Paints pixel in position 1,1 black and all neighboring
   pixels that match the target color */
$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);

/* Save the result */
$combined->writeImage("floodfillpaint_result.png");
?>

Результатом выполнения данного примера будет что-то подобное:

Output of example : Imagick::floodfillPaintImage()
Output of example : Imagick::floodfillPaintImage()


Создает горизонтальное зеркало изображения

  • « Imagick::floodFillPaintImage
  • Imagick::forwardFourierTransformImage »
  • PHP Manual
  • Imagick
  • Создает горизонтальное зеркало изображения

Imagick::flopImage

(PECL imagick 2.0.0)

Imagick::flopImage — Создает горизонтальное зеркало изображения

Описание

bool Imagick::flopImage ( void )

Создает горизонтальное зеркало изображения, отражая пиксели вокруг центральной оси Y.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::flopImage()

<?php
function flopImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->flopImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::flopImage
  • Imagick::frameImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::forwardFourierTransformImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::forwardFourierTransformImage — Description

Описание

public void Imagick::forwardFourierTransformimage ( bool $magnitude )

Implements the discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

Список параметров

magnitude

If true, return as magnitude / phase pair otherwise a real / imaginary image pair.

Возвращаемые значения

Примеры

Пример #1 Imagick::forwardFourierTransformImage()

<?php
//Utility function for forwardTransformImage
function createMask() {
    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(0);
    $draw->setStrokeColor('rgb(255, 255, 255)');
    $draw->setFillColor('rgb(255, 255, 255)');

    //Draw a circle on the y-axis, with it's centre
    //at x, y that touches the origin
    $draw->circle(250, 250, 220, 250);

    $imagick = new \Imagick();
    $imagick->newImage(512, 512, "black");
    $imagick->drawImage($draw);
    $imagick->gaussianBlurImage(20, 20);
    $imagick->autoLevelImage();

    return $imagick;
}

function forwardFourierTransformImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->resizeimage(512, 512, \Imagick::FILTER_LANCZOS, 1);

    $mask = createMask();
    $imagick->forwardFourierTransformImage(true);

    @$imagick->setimageindex(0);
    $magnitude = $imagick->getimage();

    @$imagick->setimageindex(1);
    $imagickPhase = $imagick->getimage();

    if (true) {
        $imagickPhase->compositeImage($mask, \Imagick::COMPOSITE_MULTIPLY, 0, 0);
    }

    if (false) {
        $output = clone $imagickPhase;
        $output->setimageformat('png');
        header("Content-Type: image/png");
        echo $output->getImageBlob();
    }

    $magnitude->inverseFourierTransformImage($imagickPhase, true);

    $magnitude->setimageformat('png');
    header("Content-Type: image/png");
    echo $magnitude->getImageBlob();
}

?>


Adds a simulated three-dimensional border

  • « Imagick::forwardFourierTransformImage
  • Imagick::functionImage »
  • PHP Manual
  • Imagick
  • Adds a simulated three-dimensional border

Imagick::frameImage

(PECL imagick 2.0.0)

Imagick::frameImage — Adds a simulated three-dimensional border

Описание

bool Imagick::frameImage ( mixed $matte_color , int $width , int $height , int $inner_bevel , int $outer_bevel )

Adds a simulated three-dimensional border around the image. The width and height specify the border width of the vertical and horizontal sides of the frame. The inner and outer bevels indicate the width of the inner and outer shadows of the frame.

Список параметров

matte_color

ImagickPixel object or a string representing the matte color

width

The width of the border

height

The height of the border

inner_bevel

The inner bevel width

outer_bevel

The outer bevel width

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Примеры

Пример #1 Imagick::frameImage()

<?php
function frameImage($imagePath, $color, $width, $height, $innerBevel, $outerBevel) {
    $imagick = new \Imagick(realpath($imagePath));

    $width = $width + $innerBevel + $outerBevel;
    $height = $height + $innerBevel + $outerBevel;

    $imagick->frameimage(
        $color,
        $width,
        $height,
        $innerBevel,
        $outerBevel
    );
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies a function on the image

  • « Imagick::frameImage
  • Imagick::fxImage »
  • PHP Manual
  • Imagick
  • Applies a function on the image

Imagick::functionImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::functionImage — Applies a function on the image

Описание

public bool Imagick::functionImage ( int $function , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Applies an arithmetic, relational, or logical expression to a pseudo image.

See also » ImageMagick v6 Examples - Image Transformations — Function, Multi-Argument Evaluate

Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или старше.

Список параметров

function

Refer to this list of function constants

arguments

Array of arguments to pass to this function.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Create a sinusoidal gradient

<?php
$imagick = new Imagick();
$imagick->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(3, -90);
$imagick->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);

header("Content-Type: image/png");
$imagick->setImageFormat("png");
echo $imagick->getImageBlob();
?>

Результатом выполнения данного примера будет что-то подобное:

Output of create a sinusoidal gradient

Пример #2 Create a gradient from the polynomial (4x^2 - 4x + 1)

<?php
$imagick = new Imagick();
$imagick->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(4, -4, 1);
$imagick->functionImage(Imagick::FUNCTION_POLYNOMIAL, $arguments);

header("Content-Type: image/png");
$imagick->setimageformat("png");
echo $imagick->getImageBlob();
?>

Результатом выполнения данного примера будет что-то подобное:

Output of create a polynomial gradient

Пример #3 Create a complex gradient from the polynomial (4x^2 - 4x^2 + 1) modulated by a sinusoidal gradient

<?php
$imagick1 = new Imagick();
$imagick1->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(9, -90);
$imagick1->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);

$imagick2 = new Imagick();
$imagick2->newPseudoImage(200, 200, 'gradient:black-white');
$arguments = array(0.5, 0);
$imagick2->functionImage(Imagick::FUNCTION_SINUSOID, $arguments);
$imagick1->compositeimage($imagick2, Imagick::COMPOSITE_MULTIPLY, 0, 0);

header("Content-Type: image/png");
$imagick1->setImageFormat("png");
echo $imagick1->getImageBlob();
?>

Результатом выполнения данного примера будет что-то подобное:

Output of create complex gradient


Evaluate expression for each pixel in the image

  • « Imagick::functionImage
  • Imagick::gammaImage »
  • PHP Manual
  • Imagick
  • Evaluate expression for each pixel in the image

Imagick::fxImage

(PECL imagick 2.0.0)

Imagick::fxImage — Evaluate expression for each pixel in the image

Описание

Imagick Imagick::fxImage ( string $expression [, int $channel = Imagick::CHANNEL_ALL ] )

Evaluate expression for each pixel in the image. Consult » The Fx Special Effects Image Operator for more information.

Список параметров

expression

The expression.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::fxImage()

<?php
function fxImage() {
    $imagick = new \Imagick();
    $imagick->newPseudoImage(200, 200, "xc:white");

    $fx = 'xx=i-w/2; yy=j-h/2; rr=hypot(xx,yy); (.5-rr/140)*1.2+.5';
    $fxImage = $imagick->fxImage($fx);

    header("Content-Type: image/png");
    $fxImage->setimageformat('png');
    echo $fxImage->getImageBlob();
}

?>


Gamma-corrects an image

  • « Imagick::fxImage
  • Imagick::gaussianBlurImage »
  • PHP Manual
  • Imagick
  • Gamma-corrects an image

Imagick::gammaImage

(PECL imagick 2.0.0)

Imagick::gammaImage — Gamma-corrects an image

Описание

bool Imagick::gammaImage ( float $gamma [, int $channel = Imagick::CHANNEL_ALL ] )

Gamma-corrects an image. The same image viewed on different devices will have perceptual differences in the way the image's intensities are represented on the screen. Specify individual gamma levels for the red, green, and blue channels, or adjust all three with the gamma parameter. Values typically range from 0.8 to 2.3.

Список параметров

gamma

The amount of gamma-correction.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::gammaImage()

<?php
function gammaImage($imagePath, $gamma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->gammaImage($gamma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Blurs an image

  • « Imagick::gammaImage
  • Imagick::getColorspace »
  • PHP Manual
  • Imagick
  • Blurs an image

Imagick::gaussianBlurImage

(PECL imagick 2.0.0)

Imagick::gaussianBlurImage — Blurs an image

Описание

bool Imagick::gaussianBlurImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )

Blurs an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and selects a suitable radius for you.

Список параметров

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::gaussianBlurImage()

<?php
function gaussianBlurImage($imagePath, $radius, $sigma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->gaussianBlurImage($radius, $sigma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Возвращает цветовую палитру

  • « Imagick::gaussianBlurImage
  • Imagick::getCompression »
  • PHP Manual
  • Imagick
  • Возвращает цветовую палитру

Imagick::getColorspace

(PECL imagick 0.9.10-0.9.9)

Imagick::getColorspace — Возвращает цветовую палитру

Описание

int Imagick::getColorspace ( void )

Возвращает значение глобальной цветовой палитры. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Возвращаемые значения

Возвращает целое число, которое можно сравнить с константами COLORSPACE.


Возвращает тип сжатия объекта

  • « Imagick::getColorspace
  • Imagick::getCompressionQuality »
  • PHP Manual
  • Imagick
  • Возвращает тип сжатия объекта

Imagick::getCompression

(PECL imagick 2.0.0)

Imagick::getCompression — Возвращает тип сжатия объекта

Описание

int Imagick::getCompression ( void )

Возвращает тип сжатия объекта.

Возвращаемые значения

Возвращает константу сжатия


Возвращает качество сжатия объекта

  • « Imagick::getCompression
  • Imagick::getCopyright »
  • PHP Manual
  • Imagick
  • Возвращает качество сжатия объекта

Imagick::getCompressionQuality

(PECL imagick 2.0.0)

Imagick::getCompressionQuality — Возвращает качество сжатия объекта

Описание

int Imagick::getCompressionQuality ( void )

Возвращает качество сжатия объекта.

Возвращаемые значения

Возвращает число означающее качество сжатия


Возвращает копирайт API ImageMagick в виде строки

  • « Imagick::getCompressionQuality
  • Imagick::getFilename »
  • PHP Manual
  • Imagick
  • Возвращает копирайт API ImageMagick в виде строки

Imagick::getCopyright

(PECL imagick 2.0.0)

Imagick::getCopyright — Возвращает копирайт API ImageMagick в виде строки

Описание

string Imagick::getCopyright ( void )

Возвращает копирайт API ImageMagick в виде строки.

Возвращаемые значения

Возвращает строку содержащую копирайт Imagemagick и Magickwand C API.


Имя файла результирующего изображения

  • « Imagick::getCopyright
  • Imagick::getFont »
  • PHP Manual
  • Imagick
  • Имя файла результирующего изображения

Imagick::getFilename

(PECL imagick 2.0.0)

Imagick::getFilename — Имя файла результирующего изображения

Описание

string Imagick::getFilename ( void )

Возвращает имя файла связанное с результирующим изображением.

Возвращаемые значения

Возвращает строку в случае успеха.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает название шрифта

  • « Imagick::getFilename
  • Imagick::getFormat »
  • PHP Manual
  • Imagick
  • Возвращает название шрифта

Imagick::getFont

(PECL imagick 2.1.0)

Imagick::getFont — Возвращает название шрифта

Описание

string Imagick::getFont ( void )

Возвращает значение шрифта объекта. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Возвращаемые значения

Возвращает строку содержащую название шрифта или FALSE, если шрифт не установлен.

Смотрите также

  • Imagick::setFont() - Sets font
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text
  • ImagickDraw::getFont() - Returns the font


Возвращает формат Imagick объекта

  • « Imagick::getFont
  • Imagick::getGravity »
  • PHP Manual
  • Imagick
  • Возвращает формат Imagick объекта

Imagick::getFormat

(PECL imagick 2.0.0)

Imagick::getFormat — Возвращает формат Imagick объекта

Описание

string Imagick::getFormat ( void )

Возвращает формат Imagick объекта.

Возвращаемые значения

Возвращает формат изображения.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает значение гравитации (притяжения)

  • « Imagick::getFormat
  • Imagick::getHomeURL »
  • PHP Manual
  • Imagick
  • Возвращает значение гравитации (притяжения)

Imagick::getGravity

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getGravity — Возвращает значение гравитации (притяжения)

Описание

int Imagick::getGravity ( void )

Возвращает глобальное значение гравитации объекта Imagick. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или старше.

Возвращаемые значения

Возвращает значение гравитации. Смотрите список констант гравитации.


Возвращает домашний URL библиотеки ImageMagick

  • « Imagick::getGravity
  • Imagick::getImage »
  • PHP Manual
  • Imagick
  • Возвращает домашний URL библиотеки ImageMagick

Imagick::getHomeURL

(PECL imagick 2.0.0)

Imagick::getHomeURL — Возвращает домашний URL библиотеки ImageMagick

Описание

string Imagick::getHomeURL ( void )

Возвращает домашний URL библиотеки ImageMagick.

Возвращаемые значения

Возвращает ссылку домашней страницы imagemagick.


Возвращает новый объект Imagick

  • « Imagick::getHomeURL
  • Imagick::getImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Возвращает новый объект Imagick

Imagick::getImage

(PECL imagick 2.0.0)

Imagick::getImage — Возвращает новый объект Imagick

Описание

Imagick Imagick::getImage ( void )

Возвращает новый объект Imagick с текущей последовательностью изображений.

Возвращаемые значения

Возвращает новый объект Imagick с текущей последовательности изображений.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает альфа-канал изображения

  • « Imagick::getImage
  • Imagick::getImageArtifact »
  • PHP Manual
  • Imagick
  • Возвращает альфа-канал изображения

Imagick::getImageAlphaChannel

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getImageAlphaChannel — Возвращает альфа-канал изображения

Описание

int Imagick::getImageAlphaChannel ( void )

Получение значения альфа-канала изображения. Возвращаемое значение будет одной из констант альфа-канала. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или старше.

Возвращаемые значения

Возвращает константу определенную текущим значением альфа-канала. Смотрите список констант альфа-канала.

Ошибки

Вызывает ImagickException при ошибке.


Get image artifact

  • « Imagick::getImageAlphaChannel
  • Imagick::getImageAttribute »
  • PHP Manual
  • Imagick
  • Get image artifact

Imagick::getImageArtifact

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getImageArtifact — Get image artifact

Описание

string Imagick::getImageArtifact ( string $artifact )

Gets an artifact associated with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

artifact

The name of the artifact

Возвращаемые значения

Returns the artifact value on success.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::setImageArtifact() - Set image artifact
  • Imagick::deleteImageArtifact() - Delete image artifact


Description

  • « Imagick::getImageArtifact
  • Imagick::getImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Description

Imagick::getImageAttribute

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getImageAttribute — Description

Описание

public string Imagick::getImageAttribute ( string $key )

Returns a named attribute.

Список параметров

key

The key of the attribute to get.

Возвращаемые значения


Возвращает цвет фона изображения

  • « Imagick::getImageAttribute
  • Imagick::getImageBlob »
  • PHP Manual
  • Imagick
  • Возвращает цвет фона изображения

Imagick::getImageBackgroundColor

(PECL imagick 2.0.0)

Imagick::getImageBackgroundColor — Возвращает цвет фона изображения

Описание

ImagickPixel Imagick::getImageBackgroundColor ( void )

Возвращает цвет фона изображения.

Возвращаемые значения

Возвращает ImagickPixel с установленным цветом фона изображения.

Ошибки

Вызывает ImagickException при ошибке.


Returns the image sequence as a blob

  • « Imagick::getImageBackgroundColor
  • Imagick::getImageBluePrimary »
  • PHP Manual
  • Imagick
  • Returns the image sequence as a blob

Imagick::getImageBlob

(PECL imagick 2.0.0)

Imagick::getImageBlob — Returns the image sequence as a blob

Описание

string Imagick::getImageBlob ( void )

Implements direct to memory image formats. It returns the image sequence as a string. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use Imagick::setImageFormat().

Возвращаемые значения

Returns a string containing the image.

Ошибки

Вызывает ImagickException при ошибке.


Returns the chromaticy blue primary point

  • « Imagick::getImageBlob
  • Imagick::getImageBorderColor »
  • PHP Manual
  • Imagick
  • Returns the chromaticy blue primary point

Imagick::getImageBluePrimary

(PECL imagick 2.0.0)

Imagick::getImageBluePrimary — Returns the chromaticy blue primary point

Описание

array Imagick::getImageBluePrimary ( void )

Returns the chromaticity blue primary point for the image.

Список параметров

x

The chromaticity blue primary x-point.

y

The chromaticity blue primary y-point.

Возвращаемые значения

Array consisting of "x" and "y" coordinates of point.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает цвет рамки изображения

  • « Imagick::getImageBluePrimary
  • Imagick::getImageChannelDepth »
  • PHP Manual
  • Imagick
  • Возвращает цвет рамки изображения

Imagick::getImageBorderColor

(PECL imagick 2.0.0)

Imagick::getImageBorderColor — Возвращает цвет рамки изображения

Описание

ImagickPixel Imagick::getImageBorderColor ( void )

Возвращает цвет рамки изображения.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Gets the depth for a particular image channel

  • « Imagick::getImageBorderColor
  • Imagick::getImageChannelDistortion »
  • PHP Manual
  • Imagick
  • Gets the depth for a particular image channel

Imagick::getImageChannelDepth

(PECL imagick 2.0.0)

Imagick::getImageChannelDepth — Gets the depth for a particular image channel

Описание

int Imagick::getImageChannelDepth ( int $channel )

Gets the depth for a particular image channel.

Список параметров

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Compares image channels of an image to a reconstructed image

  • « Imagick::getImageChannelDepth
  • Imagick::getImageChannelDistortions »
  • PHP Manual
  • Imagick
  • Compares image channels of an image to a reconstructed image

Imagick::getImageChannelDistortion

(PECL imagick 2.0.0)

Imagick::getImageChannelDistortion — Compares image channels of an image to a reconstructed image

Описание

float Imagick::getImageChannelDistortion ( Imagick $reference , int $channel , int $metric )

Compares one or more image channels of an image to a reconstructed image and returns the specified distortion metric.

Список параметров

reference

Imagick object to compare to.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

metric

One of the metric type constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Gets channel distortions

  • « Imagick::getImageChannelDistortion
  • Imagick::getImageChannelExtrema »
  • PHP Manual
  • Imagick
  • Gets channel distortions

Imagick::getImageChannelDistortions

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getImageChannelDistortions — Gets channel distortions

Описание

float Imagick::getImageChannelDistortions ( Imagick $reference , int $metric [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Compares one or more image channels of an image to a reconstructed image and returns the specified distortion metrics Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или старше.

Список параметров

reference

Imagick object containing the reference image

metric

Refer to this list of metric type constants.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Returns a double describing the channel distortion.

Ошибки

Вызывает ImagickException при ошибке.


Gets the extrema for one or more image channels

  • « Imagick::getImageChannelDistortions
  • Imagick::getImageChannelKurtosis »
  • PHP Manual
  • Imagick
  • Gets the extrema for one or more image channels

Imagick::getImageChannelExtrema

(PECL imagick 2.0.0)

Imagick::getImageChannelExtrema — Gets the extrema for one or more image channels

Описание

array Imagick::getImageChannelExtrema ( int $channel )

Gets the extrema for one or more image channels. Return value is an associative array with the keys "minima" and "maxima".

Список параметров

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


The getImageChannelKurtosis purpose

  • « Imagick::getImageChannelExtrema
  • Imagick::getImageChannelMean »
  • PHP Manual
  • Imagick
  • The getImageChannelKurtosis purpose

Imagick::getImageChannelKurtosis

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getImageChannelKurtosis — The getImageChannelKurtosis purpose

Описание

public array Imagick::getImageChannelKurtosis ([ int $channel = Imagick::CHANNEL_DEFAULT ] )

Get the kurtosis and skewness of a specific channel. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.9 или старше.

Список параметров

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Returns an array with kurtosis and skewness members.

Ошибки

Вызывает ImagickException при ошибке.


Gets the mean and standard deviation

  • « Imagick::getImageChannelKurtosis
  • Imagick::getImageChannelRange »
  • PHP Manual
  • Imagick
  • Gets the mean and standard deviation

Imagick::getImageChannelMean

(PECL imagick 2.0.0)

Imagick::getImageChannelMean — Gets the mean and standard deviation

Описание

array Imagick::getImageChannelMean ( int $channel )

Gets the mean and standard deviation of one or more image channels. Return value is an associative array with the keys "mean" and "standardDeviation".

Список параметров

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Gets channel range

  • « Imagick::getImageChannelMean
  • Imagick::getImageChannelStatistics »
  • PHP Manual
  • Imagick
  • Gets channel range

Imagick::getImageChannelRange

(PECL imagick 2.2.1)

Imagick::getImageChannelRange — Gets channel range

Описание

array Imagick::getImageChannelRange ( int $channel )

Gets the range for one or more image channels. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или старше.

Список параметров

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Returns an array containing minima and maxima values of the channel(s).

Ошибки

Вызывает ImagickException при ошибке.


Returns statistics for each channel in the image

  • « Imagick::getImageChannelRange
  • Imagick::getImageClipMask »
  • PHP Manual
  • Imagick
  • Returns statistics for each channel in the image

Imagick::getImageChannelStatistics

(PECL imagick 2.0.0)

Imagick::getImageChannelStatistics — Returns statistics for each channel in the image

Описание

array Imagick::getImageChannelStatistics ( void )

Returns statistics for each channel in the image. The statistics include the channel depth, its minima and maxima, the mean, and the standard deviation. You can access the red channel mean, for example, like this:

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Gets image clip mask

  • « Imagick::getImageChannelStatistics
  • Imagick::getImageColormapColor »
  • PHP Manual
  • Imagick
  • Gets image clip mask

Imagick::getImageClipMask

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getImageClipMask — Gets image clip mask

Описание

Imagick Imagick::getImageClipMask ( void )

Returns the image clip mask. The clip mask is an Imagick object containing the clip mask. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Возвращаемые значения

Returns an Imagick object containing the clip mask.

Ошибки

Вызывает ImagickException при ошибке.


Returns the color of the specified colormap index

  • « Imagick::getImageClipMask
  • Imagick::getImageColors »
  • PHP Manual
  • Imagick
  • Returns the color of the specified colormap index

Imagick::getImageColormapColor

(PECL imagick 2.0.0)

Imagick::getImageColormapColor — Returns the color of the specified colormap index

Описание

ImagickPixel Imagick::getImageColormapColor ( int $index )

Returns the color of the specified colormap index.

Список параметров

index

The offset into the image colormap.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает число уникальных цветов в изображении

  • « Imagick::getImageColormapColor
  • Imagick::getImageColorspace »
  • PHP Manual
  • Imagick
  • Возвращает число уникальных цветов в изображении

Imagick::getImageColors

(PECL imagick 2.0.0)

Imagick::getImageColors — Возвращает число уникальных цветов в изображении

Описание

int Imagick::getImageColors ( void )

Возвращает число уникальных цветов в изображении.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Возвращает цветовую палитру изображения

  • « Imagick::getImageColors
  • Imagick::getImageCompose »
  • PHP Manual
  • Imagick
  • Возвращает цветовую палитру изображения

Imagick::getImageColorspace

(PECL imagick 2.0.0)

Imagick::getImageColorspace — Возвращает цветовую палитру изображения

Описание

int Imagick::getImageColorspace ( void )

Возвращает цветовую палитру изображения.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Возвращает составной оператор, связанный с изображением

  • « Imagick::getImageColorspace
  • Imagick::getImageCompression »
  • PHP Manual
  • Imagick
  • Возвращает составной оператор, связанный с изображением

Imagick::getImageCompose

(PECL imagick 2.0.0)

Imagick::getImageCompose — Возвращает составной оператор, связанный с изображением

Описание

int Imagick::getImageCompose ( void )

Возвращает составной оператор, связанный с изображением.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Возвращает текущий тип компрессии изображения

  • « Imagick::getImageCompose
  • Imagick::getImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Возвращает текущий тип компрессии изображения

Imagick::getImageCompression

(PECL imagick 2.2.2)

Imagick::getImageCompression — Возвращает текущий тип компрессии изображения

Описание

int Imagick::getImageCompression ( void )

Возвращает текущий тип компрессии изображения.

Возвращаемые значения

Возвращает константу компрессии


Возвращает текущее качество сжатия изображения

  • « Imagick::getImageCompression
  • Imagick::getImageDelay »
  • PHP Manual
  • Imagick
  • Возвращает текущее качество сжатия изображения

Imagick::getImageCompressionQuality

(PECL imagick 2.2.2)

Imagick::getImageCompressionQuality — Возвращает текущее качество сжатия изображения

Описание

int Imagick::getImageCompressionQuality ( void )

Получает текущее качество сжатия изображения

Возвращаемые значения

Возвращает целое число, описывающее сжатие изображения.


Gets the image delay

  • « Imagick::getImageCompressionQuality
  • Imagick::getImageDepth »
  • PHP Manual
  • Imagick
  • Gets the image delay

Imagick::getImageDelay

(PECL imagick 2.0.0)

Imagick::getImageDelay — Gets the image delay

Описание

int Imagick::getImageDelay ( void )

Gets the image delay.

Возвращаемые значения

Returns the image delay.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image depth

  • « Imagick::getImageDelay
  • Imagick::getImageDispose »
  • PHP Manual
  • Imagick
  • Gets the image depth

Imagick::getImageDepth

(PECL imagick 0.9.1-0.9.9)

Imagick::getImageDepth — Gets the image depth

Описание

int Imagick::getImageDepth ( void )

Gets the image depth.

Возвращаемые значения

The image depth.


Gets the image disposal method

  • « Imagick::getImageDepth
  • Imagick::getImageDistortion »
  • PHP Manual
  • Imagick
  • Gets the image disposal method

Imagick::getImageDispose

(PECL imagick 2.0.0)

Imagick::getImageDispose — Gets the image disposal method

Описание

int Imagick::getImageDispose ( void )

Gets the image disposal method.

Возвращаемые значения

Returns the dispose method on success.

Ошибки

Вызывает ImagickException при ошибке.


Compares an image to a reconstructed image

  • « Imagick::getImageDispose
  • Imagick::getImageExtrema »
  • PHP Manual
  • Imagick
  • Compares an image to a reconstructed image

Imagick::getImageDistortion

(PECL imagick 2.0.0)

Imagick::getImageDistortion — Compares an image to a reconstructed image

Описание

float Imagick::getImageDistortion ( MagickWand $reference , int $metric )

Compares an image to a reconstructed image and returns the specified distortion metric.

Список параметров

reference

Imagick object to compare to.

metric

One of the metric type constants.

Возвращаемые значения

Returns the distortion metric used on the image (or the best guess thereof).

Ошибки

Вызывает ImagickException при ошибке.


Gets the extrema for the image

  • « Imagick::getImageDistortion
  • Imagick::getImageFilename »
  • PHP Manual
  • Imagick
  • Gets the extrema for the image

Imagick::getImageExtrema

(PECL imagick 2.0.0)

Imagick::getImageExtrema — Gets the extrema for the image

Описание

array Imagick::getImageExtrema ( void )

Gets the extrema for the image. Returns an associative array with the keys "min" and "max".

Возвращаемые значения

Returns an associative array with the keys "min" and "max".

Ошибки

Вызывает ImagickException при ошибке.


Возвращает имя файла конкретного изображения в последовательности

  • « Imagick::getImageExtrema
  • Imagick::getImageFormat »
  • PHP Manual
  • Imagick
  • Возвращает имя файла конкретного изображения в последовательности

Imagick::getImageFilename

(PECL imagick 2.0.0)

Imagick::getImageFilename — Возвращает имя файла конкретного изображения в последовательности

Описание

string Imagick::getImageFilename ( void )

Возвращает имя файла конкретного изображения в последовательности.

Возвращаемые значения

Возвращает строку с именем файла изображения.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает формат конкретного изображения в последовательности

  • « Imagick::getImageFilename
  • Imagick::getImageGamma »
  • PHP Manual
  • Imagick
  • Возвращает формат конкретного изображения в последовательности

Imagick::getImageFormat

(PECL imagick 2.0.0)

Imagick::getImageFormat — Возвращает формат конкретного изображения в последовательности

Описание

string Imagick::getImageFormat ( void )

Возвращает формат конкретного изображения в последовательности.

Возвращаемые значения

Возвращает строку содержащую формат изображения в случае успеха.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает гамму изображения

  • « Imagick::getImageFormat
  • Imagick::getImageGeometry »
  • PHP Manual
  • Imagick
  • Возвращает гамму изображения

Imagick::getImageGamma

(PECL imagick 2.0.0)

Imagick::getImageGamma — Возвращает гамму изображения

Описание

float Imagick::getImageGamma ( void )

Возвращает гамму изображения.

Возвращаемые значения

Возвращает гамму изображения в случае успеха.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает ширину и высоту в виде ассоциативного массива

  • « Imagick::getImageGamma
  • Imagick::getImageGravity »
  • PHP Manual
  • Imagick
  • Возвращает ширину и высоту в виде ассоциативного массива

Imagick::getImageGeometry

(PECL imagick 2.0.0)

Imagick::getImageGeometry — Возвращает ширину и высоту в виде ассоциативного массива

Описание

array Imagick::getImageGeometry ( void )

Возвращает ширину и высоту в виде ассоциативного массива.

Возвращаемые значения

Возвращает массив с шириной и высотой изображения.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::getImageGeometry()

<?php
function getImageGeometry($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Возвращает значение гравитации (притяжения)

  • « Imagick::getImageGeometry
  • Imagick::getImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Возвращает значение гравитации (притяжения)

Imagick::getImageGravity

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getImageGravity — Возвращает значение гравитации (притяжения)

Описание

int Imagick::getImageGravity ( void )

Возвращает значение гравитации изображения. В отличие от Imagick::getGravity(), этот метод возвращает гравитацию установленную для текущего изображения в последовательности. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или старше.

Возвращаемые значения

Возвращает значение гравитации. Смотрите список констант гравитации.


Returns the chromaticy green primary point

  • « Imagick::getImageGravity
  • Imagick::getImageHeight »
  • PHP Manual
  • Imagick
  • Returns the chromaticy green primary point

Imagick::getImageGreenPrimary

(PECL imagick 2.0.0)

Imagick::getImageGreenPrimary — Returns the chromaticy green primary point

Описание

array Imagick::getImageGreenPrimary ( void )

Returns the chromaticity green primary point. Returns an array with the keys "x" and "y".

Возвращаемые значения

Returns an array with the keys "x" and "y" on success, throws an ImagickException on failure.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает высоту изображения

  • « Imagick::getImageGreenPrimary
  • Imagick::getImageHistogram »
  • PHP Manual
  • Imagick
  • Возвращает высоту изображения

Imagick::getImageHeight

(PECL imagick 2.0.0)

Imagick::getImageHeight — Возвращает высоту изображения

Описание

int Imagick::getImageHeight ( void )

Возвращает высоту изображения.

Возвращаемые значения

Возвращает высоту изображения в пикселях.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image histogram

  • « Imagick::getImageHeight
  • Imagick::getImageIndex »
  • PHP Manual
  • Imagick
  • Gets the image histogram

Imagick::getImageHistogram

(PECL imagick 2.0.0)

Imagick::getImageHistogram — Gets the image histogram

Описание

array Imagick::getImageHistogram ( void )

Returns the image histogram as an array of ImagickPixel objects.

Возвращаемые значения

Returns the image histogram as an array of ImagickPixel objects.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Generates Imagick::getImageHistogram()

<?php
function getColorStatistics($histogramElements, $colorChannel) {
    $colorStatistics = [];

    foreach ($histogramElements as $histogramElement) {
        $color = $histogramElement->getColorValue($colorChannel);
        $color = intval($color * 255);
        $count = $histogramElement->getColorCount();

        if (array_key_exists($color, $colorStatistics)) {
            $colorStatistics[$color] += $count;
        }
        else {
            $colorStatistics[$color] = $count;
        }
    }

    ksort($colorStatistics);

    return $colorStatistics;
}

function getImageHistogram($imagePath) {

    $backgroundColor = 'black';

    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(0); //make the lines be as thin as possible

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    $histogramWidth = 256;
    $histogramHeight = 100; // the height for each RGB segment

    $imagick = new \Imagick(realpath($imagePath));
    //Resize the image to be small, otherwise PHP tends to run out of memory
    //This might lead to bad results for images that are pathologically 'pixelly'
    $imagick->adaptiveResizeImage(200, 200, true);
    $histogramElements = $imagick->getImageHistogram();

    $histogram = new \Imagick();
    $histogram->newpseudoimage($histogramWidth, $histogramHeight * 3, 'xc:black');
    $histogram->setImageFormat('png');

    $getMax = function ($carry, $item)  {
        if ($item > $carry) {
            return $item;
        }
        return $carry;
    };

    $colorValues = [
        'red' => getColorStatistics($histogramElements, \Imagick::COLOR_RED),
        'lime' => getColorStatistics($histogramElements, \Imagick::COLOR_GREEN),
        'blue' => getColorStatistics($histogramElements, \Imagick::COLOR_BLUE),
    ];

    $max = array_reduce($colorValues['red'] , $getMax, 0);
    $max = array_reduce($colorValues['lime'] , $getMax, $max);
    $max = array_reduce($colorValues['blue'] , $getMax, $max);

    $scale =  $histogramHeight / $max;

    $count = 0;
    foreach ($colorValues as $color => $values) {
        $draw->setstrokecolor($color);

        $offset = ($count + 1) * $histogramHeight;

        foreach ($values as $index => $value) {
            $draw->line($index, $offset, $index, $offset - ($value * $scale));
        }
        $count++;
    }

    $histogram->drawImage($draw);

    header( "Content-Type: image/png" );
    echo $histogram;
}

?>


Gets the index of the current active image

  • « Imagick::getImageHistogram
  • Imagick::getImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Gets the index of the current active image

Imagick::getImageIndex

(PECL imagick 2.0.0)

Imagick::getImageIndex — Gets the index of the current active image

Описание

int Imagick::getImageIndex ( void )

Returns the index of the current active image within the Imagick object. This method has been deprecated. See Imagick::getIteratorIndex().

Возвращаемые значения

Returns an integer containing the index of the image in the stack.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image interlace scheme

  • « Imagick::getImageIndex
  • Imagick::getImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Gets the image interlace scheme

Imagick::getImageInterlaceScheme

(PECL imagick 2.0.0)

Imagick::getImageInterlaceScheme — Gets the image interlace scheme

Описание

int Imagick::getImageInterlaceScheme ( void )

Gets the image interlace scheme.

Возвращаемые значения

Returns the interlace scheme as an integer on success. Вызывает ImagickException при ошибке.


Returns the interpolation method

  • « Imagick::getImageInterlaceScheme
  • Imagick::getImageIterations »
  • PHP Manual
  • Imagick
  • Returns the interpolation method

Imagick::getImageInterpolateMethod

(PECL imagick 2.0.0)

Imagick::getImageInterpolateMethod — Returns the interpolation method

Описание

int Imagick::getImageInterpolateMethod ( void )

Returns the interpolation method for the specified image. The method is one of the Imagick::INTERPOLATE_* constants.

Возвращаемые значения

Returns the interpolate method on success.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image iterations

  • « Imagick::getImageInterpolateMethod
  • Imagick::getImageLength »
  • PHP Manual
  • Imagick
  • Gets the image iterations

Imagick::getImageIterations

(PECL imagick 2.0.0)

Imagick::getImageIterations — Gets the image iterations

Описание

int Imagick::getImageIterations ( void )

Gets the image iterations.

Возвращаемые значения

Returns the image iterations as an integer.

Ошибки

Вызывает ImagickException при ошибке.


Returns the image length in bytes

  • « Imagick::getImageIterations
  • Imagick::getImageMagickLicense »
  • PHP Manual
  • Imagick
  • Returns the image length in bytes

Imagick::getImageLength

(PECL imagick 2.0.0)

Imagick::getImageLength — Returns the image length in bytes

Описание

int Imagick::getImageLength ( void )

Returns the image length in bytes

Возвращаемые значения

Returns an int containing the current image size.

Примеры

Пример #1 Using Imagick::getImageLength():

Getting image length in bytes

<?php
$image = new Imagick('test.jpg');
echo $image->getImageLength() . ' bytes';
?>


Returns a string containing the ImageMagick license

  • « Imagick::getImageLength
  • Imagick::getImageMatte »
  • PHP Manual
  • Imagick
  • Returns a string containing the ImageMagick license

Imagick::getImageMagickLicense

(PECL imagick 2.0.0)

Imagick::getImageMagickLicense — Returns a string containing the ImageMagick license

Описание

string Imagick::getImageMagickLicense ( void )

Returns a string containing the ImageMagick license

Возвращаемые значения

Returns a string containing the ImageMagick license.


Return if the image has a matte channel

  • « Imagick::getImageMagickLicense
  • Imagick::getImageMatteColor »
  • PHP Manual
  • Imagick
  • Return if the image has a matte channel

Imagick::getImageMatte

(PECL imagick 2.0.0)

Imagick::getImageMatte — Return if the image has a matte channel

Описание

bool Imagick::getImageMatte ( void )

Returns TRUE if the image has a matte channel otherwise false. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Returns the image matte color

  • « Imagick::getImageMatte
  • Imagick::getImageMimeType »
  • PHP Manual
  • Imagick
  • Returns the image matte color

Imagick::getImageMatteColor

(PECL imagick 2.0.0)

Imagick::getImageMatteColor — Returns the image matte color

Описание

ImagickPixel Imagick::getImageMatteColor ( void )

Returns the image matte color.

Возвращаемые значения

Returns ImagickPixel object on success.

Ошибки

Вызывает ImagickException при ошибке.


Description

  • « Imagick::getImageMatteColor
  • Imagick::getImageOrientation »
  • PHP Manual
  • Imagick
  • Description

Imagick::getImageMimeType

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getImageMimeType — Description

Описание

public string Imagick::getImageMimeType ( void )

Returns the image mime-type.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Gets the image orientation

  • « Imagick::getImageMimeType
  • Imagick::getImagePage »
  • PHP Manual
  • Imagick
  • Gets the image orientation

Imagick::getImageOrientation

(PECL imagick 2.0.0)

Imagick::getImageOrientation — Gets the image orientation

Описание

int Imagick::getImageOrientation ( void )

Gets the image orientation. The return value is one of the orientation constants.

Возвращаемые значения

Returns an int on success.

Ошибки

Вызывает ImagickException при ошибке.


Returns the page geometry

  • « Imagick::getImageOrientation
  • Imagick::getImagePixelColor »
  • PHP Manual
  • Imagick
  • Returns the page geometry

Imagick::getImagePage

(PECL imagick 2.0.0)

Imagick::getImagePage — Returns the page geometry

Описание

array Imagick::getImagePage ( void )

Returns the page geometry associated with the image in an array with the keys "width", "height", "x", and "y".

Возвращаемые значения

Returns the page geometry associated with the image in an array with the keys "width", "height", "x", and "y".

Ошибки

Вызывает ImagickException при ошибке.


Returns the color of the specified pixel

  • « Imagick::getImagePage
  • Imagick::getImageProfile »
  • PHP Manual
  • Imagick
  • Returns the color of the specified pixel

Imagick::getImagePixelColor

(PECL imagick 2.0.0)

Imagick::getImagePixelColor — Returns the color of the specified pixel

Описание

ImagickPixel Imagick::getImagePixelColor ( int $x , int $y )

Returns the color of the specified pixel.

Список параметров

x

The x-coordinate of the pixel

y

The y-coordinate of the pixel

Возвращаемые значения

Returns an ImagickPixel instance for the color at the coordinates given.

Ошибки

Вызывает ImagickException при ошибке.


Returns the named image profile

  • « Imagick::getImagePixelColor
  • Imagick::getImageProfiles »
  • PHP Manual
  • Imagick
  • Returns the named image profile

Imagick::getImageProfile

(PECL imagick 2.0.0)

Imagick::getImageProfile — Returns the named image profile

Описание

string Imagick::getImageProfile ( string $name )

Returns the named image profile.

Список параметров

name

The name of the profile to return.

Возвращаемые значения

Returns a string containing the image profile.

Ошибки

Вызывает ImagickException при ошибке.


Returns the image profiles

  • « Imagick::getImageProfile
  • Imagick::getImageProperties »
  • PHP Manual
  • Imagick
  • Returns the image profiles

Imagick::getImageProfiles

(PECL imagick 2.0.0)

Imagick::getImageProfiles — Returns the image profiles

Описание

array Imagick::getImageProfiles ([ string $pattern = "*" [, bool $only_names = true ]] )

Returns all associated profiles that match the pattern. If TRUE is passed as second parameter only the profile names are returned. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

pattern

The pattern for profile names.

only_names

Whether to return only profile names. If FALSE then values are returned as well

Возвращаемые значения

Returns an array containing the image profiles or profile names.


Возвращает свойства изображения

  • « Imagick::getImageProfiles
  • Imagick::getImageProperty »
  • PHP Manual
  • Imagick
  • Возвращает свойства изображения

Imagick::getImageProperties

(PECL imagick 2.0.0)

Imagick::getImageProperties — Возвращает свойства изображения

Описание

array Imagick::getImageProperties ([ string $pattern = "*" [, bool $only_names = true ]] )

Возвращает все свойства, удовлетворяющие шаблону. Если в качестве второго параметра передано TRUE, то возвращаются только названия свойств. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

pattern

Шаблон для поиска свойств.

only_names

Вернуть только имена свойств. Если передано FALSE, то значения свойств тоже возвращаются.

Возвращаемые значения

Возвращает массив, содержащий свойства изображения или их имена.

Примеры

Пример #1 Использование Imagick::getImageProperties():

Пример извлечения EXIF-информации.

<?php

/* Создание объекта */
$im = new imagick("/path/to/example.jpg");

/* Получение EXIF-информации */
$exifArray = $im->getImageProperties("exif:*");

/* Цикл по EXIF-свойствам */
foreach ($exifArray as $name => $property)
{
    echo "{$name} => {$property}<br />\n";
}

?>


Returns the named image property

  • « Imagick::getImageProperties
  • Imagick::getImageRedPrimary »
  • PHP Manual
  • Imagick
  • Returns the named image property

Imagick::getImageProperty

(PECL imagick 2.0.0)

Imagick::getImageProperty — Returns the named image property

Описание

string Imagick::getImageProperty ( string $name )

Returns the named image property. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или старше.

Список параметров

name

name of the property (for example Exif:DateTime)

Примеры

Пример #1 Using Imagick::getImageProperty():

Setting and getting image property

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Смотрите также

  • Imagick::setImageProperty() - Sets an image property

Возвращаемые значения

Returns a string containing the image property, false if a property with the given name does not exist.


Returns the chromaticity red primary point

  • « Imagick::getImageProperty
  • Imagick::getImageRegion »
  • PHP Manual
  • Imagick
  • Returns the chromaticity red primary point

Imagick::getImageRedPrimary

(PECL imagick 2.0.0)

Imagick::getImageRedPrimary — Returns the chromaticity red primary point

Описание

array Imagick::getImageRedPrimary ( void )

Returns the chromaticity red primary point as an array with the keys "x" and "y".

Возвращаемые значения

Returns the chromaticity red primary point as an array with the keys "x" and "y". Вызывает ImagickException при ошибке.

Ошибки

Вызывает ImagickException при ошибке.


Extracts a region of the image

  • « Imagick::getImageRedPrimary
  • Imagick::getImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Extracts a region of the image

Imagick::getImageRegion

(PECL imagick 2.0.0)

Imagick::getImageRegion — Extracts a region of the image

Описание

Imagick Imagick::getImageRegion ( int $width , int $height , int $x , int $y )

Extracts a region of the image and returns it as a new Imagick object.

Список параметров

width

The width of the extracted region.

height

The height of the extracted region.

x

X-coordinate of the top-left corner of the extracted region.

y

Y-coordinate of the top-left corner of the extracted region.

Возвращаемые значения

Extracts a region of the image and returns it as a new wand.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image rendering intent

  • « Imagick::getImageRegion
  • Imagick::getImageResolution »
  • PHP Manual
  • Imagick
  • Gets the image rendering intent

Imagick::getImageRenderingIntent

(PECL imagick 2.0.0)

Imagick::getImageRenderingIntent — Gets the image rendering intent

Описание

int Imagick::getImageRenderingIntent ( void )

Gets the image rendering intent.

Возвращаемые значения

Returns the image rendering intent.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image X and Y resolution

  • « Imagick::getImageRenderingIntent
  • Imagick::getImagesBlob »
  • PHP Manual
  • Imagick
  • Gets the image X and Y resolution

Imagick::getImageResolution

(PECL imagick 2.0.0)

Imagick::getImageResolution — Gets the image X and Y resolution

Описание

array Imagick::getImageResolution ( void )

Gets the image X and Y resolution.

Возвращаемые значения

Returns the resolution as an array.

Ошибки

Вызывает ImagickException при ошибке.


Returns all image sequences as a blob

  • « Imagick::getImageResolution
  • Imagick::getImageScene »
  • PHP Manual
  • Imagick
  • Returns all image sequences as a blob

Imagick::getImagesBlob

(PECL imagick 2.0.0)

Imagick::getImagesBlob — Returns all image sequences as a blob

Описание

string Imagick::getImagesBlob ( void )

Implements direct to memory image formats. It returns all image sequences as a string. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use Imagick::setImageFormat().

Возвращаемые значения

Returns a string containing the images. On failure, throws ImagickException.


Gets the image scene

  • « Imagick::getImagesBlob
  • Imagick::getImageSignature »
  • PHP Manual
  • Imagick
  • Gets the image scene

Imagick::getImageScene

(PECL imagick 2.0.0)

Imagick::getImageScene — Gets the image scene

Описание

int Imagick::getImageScene ( void )

Gets the image scene.

Возвращаемые значения

Returns the image scene.

Ошибки

Вызывает ImagickException при ошибке.


Generates an SHA-256 message digest

  • « Imagick::getImageScene
  • Imagick::getImageSize »
  • PHP Manual
  • Imagick
  • Generates an SHA-256 message digest

Imagick::getImageSignature

(PECL imagick 2.0.0)

Imagick::getImageSignature — Generates an SHA-256 message digest

Описание

string Imagick::getImageSignature ( void )

Generates an SHA-256 message digest for the image pixel stream.

Возвращаемые значения

Returns a string containing the SHA-256 hash of the file.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает размер (длину) изображения в байтах

  • « Imagick::getImageSignature
  • Imagick::getImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Возвращает размер (длину) изображения в байтах

Imagick::getImageSize

(PECL imagick 2.0.0)

Imagick::getImageSize — Возвращает размер (длину) изображения в байтах

Описание

int Imagick::getImageSize ( void )

Возвращает размер (длину) изображения в байтах. Этот метод устарел и следует использовать Imagick::getImageLength().

Возвращаемые значения

Возвращает целое число, содержащее текущий размер изображения.


Gets the image ticks-per-second

  • « Imagick::getImageSize
  • Imagick::getImageTotalInkDensity »
  • PHP Manual
  • Imagick
  • Gets the image ticks-per-second

Imagick::getImageTicksPerSecond

(PECL imagick 2.0.0)

Imagick::getImageTicksPerSecond — Gets the image ticks-per-second

Описание

int Imagick::getImageTicksPerSecond ( void )

Gets the image ticks-per-second.

Возвращаемые значения

Returns the image ticks-per-second.

Ошибки

Вызывает ImagickException при ошибке.


Gets the image total ink density

  • « Imagick::getImageTicksPerSecond
  • Imagick::getImageType »
  • PHP Manual
  • Imagick
  • Gets the image total ink density

Imagick::getImageTotalInkDensity

(PECL imagick 2.0.0)

Imagick::getImageTotalInkDensity — Gets the image total ink density

Описание

float Imagick::getImageTotalInkDensity ( void )

Gets the image total ink density.

Возвращаемые значения

Returns the image total ink density of the image. Вызывает ImagickException при ошибке.


Возвращает возможный тип изображения

  • « Imagick::getImageTotalInkDensity
  • Imagick::getImageUnits »
  • PHP Manual
  • Imagick
  • Возвращает возможный тип изображения

Imagick::getImageType

(PECL imagick 0.9.10-0.9.9)

Imagick::getImageType — Возвращает возможный тип изображения

Описание

int Imagick::getImageType ( void )

Получение возможного типа изображения.

Возвращаемые значения

Возвращает возможный тип изображения.

  • imagick::IMGTYPE_UNDEFINED
  • imagick::IMGTYPE_BILEVEL
  • imagick::IMGTYPE_GRAYSCALE
  • imagick::IMGTYPE_GRAYSCALEMATTE
  • imagick::IMGTYPE_PALETTE
  • imagick::IMGTYPE_PALETTEMATTE
  • imagick::IMGTYPE_TRUECOLOR
  • imagick::IMGTYPE_TRUECOLORMATTE
  • imagick::IMGTYPE_COLORSEPARATION
  • imagick::IMGTYPE_COLORSEPARATIONMATTE
  • imagick::IMGTYPE_OPTIMIZE

Ошибки

Вызывает ImagickException при ошибке.


Gets the image units of resolution

  • « Imagick::getImageType
  • Imagick::getImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Gets the image units of resolution

Imagick::getImageUnits

(PECL imagick 2.0.0)

Imagick::getImageUnits — Gets the image units of resolution

Описание

int Imagick::getImageUnits ( void )

Gets the image units of resolution.

Возвращаемые значения

Returns the image units of resolution.

Ошибки

Вызывает ImagickException при ошибке.


Returns the virtual pixel method

  • « Imagick::getImageUnits
  • Imagick::getImageWhitePoint »
  • PHP Manual
  • Imagick
  • Returns the virtual pixel method

Imagick::getImageVirtualPixelMethod

(PECL imagick 2.0.0)

Imagick::getImageVirtualPixelMethod — Returns the virtual pixel method

Описание

int Imagick::getImageVirtualPixelMethod ( void )

Returns the virtual pixel method for the specified image.

Возвращаемые значения

Returns the virtual pixel method on success.

Ошибки

Вызывает ImagickException при ошибке.


Returns the chromaticity white point

  • « Imagick::getImageVirtualPixelMethod
  • Imagick::getImageWidth »
  • PHP Manual
  • Imagick
  • Returns the chromaticity white point

Imagick::getImageWhitePoint

(PECL imagick 2.0.0)

Imagick::getImageWhitePoint — Returns the chromaticity white point

Описание

array Imagick::getImageWhitePoint ( void )

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Возвращаемые значения

Returns the chromaticity white point as an associative array with the keys "x" and "y".

Ошибки

Вызывает ImagickException при ошибке.


Возвращает ширину изображения

  • « Imagick::getImageWhitePoint
  • Imagick::getInterlaceScheme »
  • PHP Manual
  • Imagick
  • Возвращает ширину изображения

Imagick::getImageWidth

(PECL imagick 2.0.0)

Imagick::getImageWidth — Возвращает ширину изображения

Описание

int Imagick::getImageWidth ( void )

Возвращает ширину изображения.

Возвращаемые значения

Возвращает ширину изображения в пикселях.

Ошибки

Вызывает ImagickException при ошибке.


Gets the object interlace scheme

  • « Imagick::getImageWidth
  • Imagick::getIteratorIndex »
  • PHP Manual
  • Imagick
  • Gets the object interlace scheme

Imagick::getInterlaceScheme

(PECL imagick 2.0.0)

Imagick::getInterlaceScheme — Gets the object interlace scheme

Описание

int Imagick::getInterlaceScheme ( void )

Gets the object interlace scheme.

Возвращаемые значения

Gets the wand interlace scheme.

Ошибки

Вызывает ImagickException при ошибке.


Gets the index of the current active image

  • « Imagick::getInterlaceScheme
  • Imagick::getNumberImages »
  • PHP Manual
  • Imagick
  • Gets the index of the current active image

Imagick::getIteratorIndex

(PECL imagick 2.0.0)

Imagick::getIteratorIndex — Gets the index of the current active image

Описание

int Imagick::getIteratorIndex ( void )

Returns the index of the current active image within the Imagick object. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

Returns an integer containing the index of the image in the stack.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::getIteratorIndex():

Create images, set and get the iterator index

<?php
$im = new Imagick();
$im->newImage(100, 100, new ImagickPixel("red"));
$im->newImage(100, 100, new ImagickPixel("green"));
$im->newImage(100, 100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo $im->getIteratorIndex();
?>

Смотрите также

  • Imagick::setIteratorIndex() - Set the iterator position
  • Imagick::getImageIndex() - Gets the index of the current active image
  • Imagick::setImageIndex() - Set the iterator position


Returns the number of images in the object

  • « Imagick::getIteratorIndex
  • Imagick::getOption »
  • PHP Manual
  • Imagick
  • Returns the number of images in the object

Imagick::getNumberImages

(PECL imagick 2.0.0)

Imagick::getNumberImages — Returns the number of images in the object

Описание

int Imagick::getNumberImages ( void )

Returns the number of images associated with Imagick object.

Возвращаемые значения

Returns the number of images associated with Imagick object.

Ошибки

Вызывает ImagickException при ошибке.


Returns a value associated with the specified key

  • « Imagick::getNumberImages
  • Imagick::getPackageName »
  • PHP Manual
  • Imagick
  • Returns a value associated with the specified key

Imagick::getOption

(PECL imagick 2.0.0)

Imagick::getOption — Returns a value associated with the specified key

Описание

string Imagick::getOption ( string $key )

Returns a value associated within the object for the specified key.

Список параметров

key

The name of the option

Возвращаемые значения

Returns a value associated with a wand and the specified key.

Ошибки

Вызывает ImagickException при ошибке.


Returns the ImageMagick package name

  • « Imagick::getOption
  • Imagick::getPage »
  • PHP Manual
  • Imagick
  • Returns the ImageMagick package name

Imagick::getPackageName

(PECL imagick 2.0.0)

Imagick::getPackageName — Returns the ImageMagick package name

Описание

string Imagick::getPackageName ( void )

Returns the ImageMagick package name.

Возвращаемые значения

Returns the ImageMagick package name as a string.

Ошибки

Вызывает ImagickException при ошибке.


Returns the page geometry

  • « Imagick::getPackageName
  • Imagick::getPixelIterator »
  • PHP Manual
  • Imagick
  • Returns the page geometry

Imagick::getPage

(PECL imagick 2.0.0)

Imagick::getPage — Returns the page geometry

Описание

array Imagick::getPage ( void )

Returns the page geometry associated with the Imagick object in an associative array with the keys "width", "height", "x", and "y".

Возвращаемые значения

Returns the page geometry associated with the Imagick object in an associative array with the keys "width", "height", "x", and "y", throwing ImagickException on error.


Returns a MagickPixelIterator

  • « Imagick::getPage
  • Imagick::getPixelRegionIterator »
  • PHP Manual
  • Imagick
  • Returns a MagickPixelIterator

Imagick::getPixelIterator

(PECL imagick 2.0.0)

Imagick::getPixelIterator — Returns a MagickPixelIterator

Описание

ImagickPixelIterator Imagick::getPixelIterator ( void )

Returns a MagickPixelIterator.

Возвращаемые значения

Returns an ImagickPixelIterator on success.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::getPixelIterator()

<?php
function getPixelIterator($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelIterator();

    foreach ($imageIterator as $row => $pixels) { /* Loop through pixel rows */
        foreach ($pixels as $column => $pixel) { /* Loop through the pixels in the row (columns) */
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {
                $pixel->setColor("rgba(0, 0, 0, 0)"); /* Paint every second pixel black*/
            }
        }
        $imageIterator->syncIterator(); /* Sync the iterator, this is important to do on each iteration */
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Возвращает объект ImagickPixelIterator для секции изображения

  • « Imagick::getPixelIterator
  • Imagick::getPointSize »
  • PHP Manual
  • Imagick
  • Возвращает объект ImagickPixelIterator для секции изображения

Imagick::getPixelRegionIterator

(PECL imagick 2.0.0)

Imagick::getPixelRegionIterator — Возвращает объект ImagickPixelIterator для секции изображения

Описание

ImagickPixelIterator Imagick::getPixelRegionIterator ( int $x , int $y , int $columns , int $rows )

Возвращает объект 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

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getPointSize — Возвращает размер точки

Описание

float Imagick::getPointSize ( void )

Возвращает значение размера точки объекта. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Возвращаемые значения

Возвращает float содержащее размер точки.

Смотрите также

  • Imagick::setPointSize() - Sets point size


Description

  • « Imagick::getPointSize
  • Imagick::getQuantumDepth »
  • PHP Manual
  • Imagick
  • Description

Imagick::getQuantum

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getQuantum — Description

Описание

public static int Imagick::getQuantum ( void )

Returns the ImageMagick quantum range as an integer.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Возвращает величину глубины

  • « Imagick::getQuantum
  • Imagick::getQuantumRange »
  • PHP Manual
  • Imagick
  • Возвращает величину глубины

Imagick::getQuantumDepth

(PECL imagick 2.0.0)

Imagick::getQuantumDepth — Возвращает величину глубины

Описание

array Imagick::getQuantumDepth ( void )

Возвращает величину глубины объекта Imagick в виде строки.

Возвращаемые значения

Возвращает величину глубины объекта Imagick в виде строки.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает величину размера спектра Imagick

  • « Imagick::getQuantumDepth
  • Imagick::getRegistry »
  • PHP Manual
  • Imagick
  • Возвращает величину размера спектра Imagick

Imagick::getQuantumRange

(PECL imagick 2.0.0)

Imagick::getQuantumRange — Возвращает величину размера спектра Imagick

Описание

array Imagick::getQuantumRange ( void )

Возвращает величину размера спектра для объекта Imagick.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий размер спектра как целое integer ("quantumRangeLong") и как строку string ("quantumRangeString").

Ошибки

Вызывает ImagickException при ошибке.


Description

  • « Imagick::getQuantumRange
  • Imagick::getReleaseDate »
  • PHP Manual
  • Imagick
  • Description

Imagick::getRegistry

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::getRegistry — Description

Описание

public static string Imagick::getRegistry ( string $key )

Get the StringRegistry entry for the named key or false if not set.

Список параметров

key

The entry to get.

Возвращаемые значения


Возвращает дату релиза ImageMagick

  • « Imagick::getRegistry
  • Imagick::getResource »
  • PHP Manual
  • Imagick
  • Возвращает дату релиза ImageMagick

Imagick::getReleaseDate

(PECL imagick 2.0.0)

Imagick::getReleaseDate — Возвращает дату релиза ImageMagick

Описание

string Imagick::getReleaseDate ( void )

Возвращает дату релиза ImageMagick в виде строки.

Возвращаемые значения

Возвращает дату релиза ImageMagick в виде строки.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает размер используемой памяти указанного ресурса

  • « Imagick::getReleaseDate
  • Imagick::getResourceLimit »
  • PHP Manual
  • Imagick
  • Возвращает размер используемой памяти указанного ресурса

Imagick::getResource

(PECL imagick 2.0.0)

Imagick::getResource — Возвращает размер используемой памяти указанного ресурса

Описание

int Imagick::getResource ( int $type )

Возвращает размер используемой памяти указанного ресурса в мегабайтах.

Список параметров

type

Смотрите список констант типов ресурсов.

Возвращаемые значения

Возвращает размер используемой памяти указанного ресурса в мегабайтах.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает заданный лимит ресурсов

  • « Imagick::getResource
  • Imagick::getSamplingFactors »
  • PHP Manual
  • Imagick
  • Возвращает заданный лимит ресурсов

Imagick::getResourceLimit

(PECL imagick 2.0.0)

Imagick::getResourceLimit — Возвращает заданный лимит ресурсов

Описание

int Imagick::getResourceLimit ( int $type )

Возвращает заданный лимит ресурсов.

Список параметров

type

Смотрите список констант типов ресурсов.

Возвращаемые значения

Возвращает заданный лимит ресурсов в мегабайтах.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает горизонтальный и вертикальный фактор выборки

  • « Imagick::getResourceLimit
  • Imagick::getSize »
  • PHP Manual
  • Imagick
  • Возвращает горизонтальный и вертикальный фактор выборки

Imagick::getSamplingFactors

(PECL imagick 2.0.0)

Imagick::getSamplingFactors — Возвращает горизонтальный и вертикальный фактор выборки

Описание

array Imagick::getSamplingFactors ( void )

Возвращает горизонтальный и вертикальный фактор выборки.

Возвращаемые значения

Возвращает ассоциативный массив с горизонтальным и вертикальным фактором выборки изображения.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает размер, связанный с объектом Imagick

  • « Imagick::getSamplingFactors
  • Imagick::getSizeOffset »
  • PHP Manual
  • Imagick
  • Возвращает размер, связанный с объектом Imagick

Imagick::getSize

(PECL imagick 2.0.0)

Imagick::getSize — Возвращает размер, связанный с объектом Imagick

Описание

array Imagick::getSize ( void )

Возвращает размер, связанный с объектом Imagick в виде массива с ключами "columns" (столбцы) и "rows" (строки).

Возвращаемые значения

Возвращает размер, связанный с объектом Imagick в виде массива с ключами "columns" (столбцы) и "rows" (строки).


Возвращает размер смещения

  • « Imagick::getSize
  • Imagick::getVersion »
  • PHP Manual
  • Imagick
  • Возвращает размер смещения

Imagick::getSizeOffset

(PECL imagick 2.0.0)

Imagick::getSizeOffset — Возвращает размер смещения

Описание

int Imagick::getSizeOffset ( void )

Возвращает размер смещения связанный с объектом Imagick. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

Возвращает размер смещения связанный с объектом Imagick.

Ошибки

Вызывает ImagickException при ошибке.


Возвращает версию API ImageMagick

  • « Imagick::getSizeOffset
  • Imagick::haldClutImage »
  • PHP Manual
  • Imagick
  • Возвращает версию API ImageMagick

Imagick::getVersion

(PECL imagick 2.0.0)

Imagick::getVersion — Возвращает версию API ImageMagick

Описание

array Imagick::getVersion ( void )

Возвращает версию API ImageMagick как строку и число.

Возвращаемые значения

Возвращает версию API ImageMagick как строку и число.

Ошибки

Вызывает ImagickException при ошибке.


Replaces colors in the image

  • « Imagick::getVersion
  • Imagick::hasNextImage »
  • PHP Manual
  • Imagick
  • Replaces colors in the image

Imagick::haldClutImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::haldClutImage — Replaces colors in the image

Описание

public bool Imagick::haldClutImage ( Imagick $clut [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Replaces colors in the image using a Hald lookup table. Hald images can be created using HALD color coder.

Список параметров

clut

Imagick object containing the Hald lookup image.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::haldClutImage()

<?php
function haldClutImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagickPalette = new \Imagick(realpath("images/hald/hald_8.png"));
    $imagickPalette->sepiatoneImage(55);
    $imagick->haldClutImage($imagickPalette);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Checks if the object has more images

  • « Imagick::haldClutImage
  • Imagick::hasPreviousImage »
  • PHP Manual
  • Imagick
  • Checks if the object has more images

Imagick::hasNextImage

(PECL imagick 2.0.0)

Imagick::hasNextImage — Checks if the object has more images

Описание

bool Imagick::hasNextImage ( void )

Returns TRUE if the object has more images when traversing the list in the forward direction.

Возвращаемые значения

Returns TRUE if the object has more images when traversing the list in the forward direction, returns FALSE if there are none.


Checks if the object has a previous image

  • « Imagick::hasNextImage
  • Imagick::identifyFormat »
  • PHP Manual
  • Imagick
  • Checks if the object has a previous image

Imagick::hasPreviousImage

(PECL imagick 2.0.0)

Imagick::hasPreviousImage — Checks if the object has a previous image

Описание

bool Imagick::hasPreviousImage ( void )

Returns TRUE if the object has more images when traversing the list in the reverse direction

Возвращаемые значения

Returns TRUE if the object has more images when traversing the list in the reverse direction, returns FALSE if there are none.


Description

  • « Imagick::hasPreviousImage
  • Imagick::identifyImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::identifyFormat

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::identifyFormat — Description

Описание

public string|false Imagick::identifyFormat ( string $embedText )

Replaces any embedded formatting characters with the appropriate image property and returns the interpreted text. See http://www.imagemagick.org/script/escape.php for escape sequences.

Список параметров

embedText

A string containing formatting sequences e.g. "Trim box: %@ number of unique colors: %k".

Возвращаемые значения

Примеры

Пример #1 Imagick::identifyFormat()

<?php
        $output = "Output of 'Trim box: %@ number of unique colors: %k' is: <br/>";
        $imagick = new \Imagick(realpath("./images/artifact/mask.png"));
        $output .= $imagick->identifyFormat("Trim box: %@ number of unique colors: %k");

?>


Определяет изображение и получает атрибуты

  • « Imagick::identifyFormat
  • Imagick::implodeImage »
  • PHP Manual
  • Imagick
  • Определяет изображение и получает атрибуты

Imagick::identifyImage

(PECL imagick 2.0.0)

Imagick::identifyImage — Определяет изображение и получает атрибуты

Описание

array Imagick::identifyImage ([ bool $appendRawOutput = false ] )

Определяет изображение и возвращает его атрибуты в виде массива. Атрибуты изображения включают в себя ширину, высоту, размер и прочие.

Список параметров

appendRawOutput

Возвращаемые значения

Возврещает массив атрибутов. Атрибуты изображения включают в себя ширину, высоту, размер и прочие.

Пример #1 Пример результата

Array
(
    [imageName] => /some/path/image.jpg
    [format] => JPEG (Joint Photographic Experts Group JFIF format)
    [geometry] => Array
        (
            [width] => 90
            [height] => 90
        )

    [type] => TrueColor
    [colorSpace] => RGB
    [resolution] => Array
        (
            [x] => 300
            [y] => 300
        )

    [units] => PixelsPerInch
    [fileSize] => 1.88672kb
    [compression] => JPEG
    [signature] => 9a6dc8f604f97d0d691c0286176ddf992e188f0bebba98494b2146ee2d7118da
)

Ошибки

Вызывает ImagickException при ошибке.


Creates a new image as a copy

  • « Imagick::identifyImage
  • Imagick::importImagePixels »
  • PHP Manual
  • Imagick
  • Creates a new image as a copy

Imagick::implodeImage

(PECL imagick 2.0.0)

Imagick::implodeImage — Creates a new image as a copy

Описание

bool Imagick::implodeImage ( float $radius )

Creates a new image that is a copy of an existing one with the image pixels "imploded" by the specified percentage.

Список параметров

radius

The radius of the implode

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::implodeImage()

<?php
function implodeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->implodeImage(0.0001);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Imports image pixels

  • « Imagick::implodeImage
  • Imagick::inverseFourierTransformImage »
  • PHP Manual
  • Imagick
  • Imports image pixels

Imagick::importImagePixels

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::importImagePixels — Imports image pixels

Описание

public bool Imagick::importImagePixels ( int $x , int $y , int $width , int $height , string $map , int $storage , array $pixels )

Imports pixels from an array into an image. The map is usually 'RGB'. This method imposes the following constraints for the parameters: amount of pixels in the array must match width x height x length of the map. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

x

The image x position

y

The image y position

width

The image width

height

The image height

map

Map of pixel ordering as a string. This can be for example RGB. The value can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad.

storage

The pixel storage method. Refer to this list of pixel constants.

pixels

The array of pixels

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::importImagePixels() example

<?php

/* Generate array of pixels. 2000 pixels per color stripe */
$count = 2000 * 3;

$pixels =
   array_merge(array_pad(array(), $count, 0),
               array_pad(array(), $count, 255),
               array_pad(array(), $count, 0),
               array_pad(array(), $count, 255),
               array_pad(array(), $count, 0));

/* Width and height. The area is amount of pixels divided
   by three. Three comes from 'RGB', three values per pixel */
$width = $height = pow((count($pixels) / 3), 0.5);

/* Create empty image */
$im = new Imagick();
$im->newImage($width, $height, 'gray');

/* Import the pixels into image.
   width * height * strlen("RGB") must match count($pixels) */
$im->importImagePixels(0, 0, $width, $height, "RGB", Imagick::PIXEL_CHAR, $pixels);

/* output as jpeg image */
$im->setImageFormat('jpg');
header("Content-Type: image/jpg");
echo $im;

?>

Результатом выполнения данного примера будет что-то подобное:

Output of example : Imagick::importImagePixels()


Description

  • « Imagick::importImagePixels
  • Imagick::labelImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::inverseFourierTransformImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::inverseFourierTransformImage — Description

Описание

public void Imagick::inverseFourierTransformImage ( string $complement , string $magnitude )

Implements the inverse discrete Fourier transform (DFT) of the image either as a magnitude / phase or real / imaginary image pair.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

complement

The second image to combine with this one to form either the magnitude / phase or real / imaginary image pair.

magnitude

If true, combine as magnitude / phase pair otherwise a real / imaginary image pair.

Возвращаемые значения


Adds a label to an image

  • « Imagick::inverseFourierTransformImage
  • Imagick::levelImage »
  • PHP Manual
  • Imagick
  • Adds a label to an image

Imagick::labelImage

(PECL imagick 2.0.0)

Imagick::labelImage — Adds a label to an image

Описание

bool Imagick::labelImage ( string $label )

Adds a label to an image.

Список параметров

label

The label to add

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Adjusts the levels of an image

  • « Imagick::labelImage
  • Imagick::linearStretchImage »
  • PHP Manual
  • Imagick
  • Adjusts the levels of an image

Imagick::levelImage

(PECL imagick 2.0.0)

Imagick::levelImage — Adjusts the levels of an image

Описание

bool Imagick::levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Imagick::CHANNEL_ALL ] )

Adjusts the levels of an image by scaling the colors falling between specified white and black points to the full available quantum range. The parameters provided represent the black, mid, and white points. The black point specifies the darkest color in the image. Colors darker than the black point are set to zero. Mid point specifies a gamma correction to apply to the image. White point specifies the lightest color in the image. Colors brighter than the white point are set to the maximum quantum value.

Список параметров

blackPoint

The image black point

gamma

The gamma value

whitePoint

The image white point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::levelImage()

<?php
function levelImage($blackPoint, $gamma, $whitePoint) {
    $imagick = new \Imagick();
    $imagick->newPseudoimage(500, 500, 'gradient:black-white');

    $imagick->setFormat('png');
    $quantum = $imagick->getQuantum();
    $imagick->levelImage($blackPoint / 100 , $gamma, $quantum * $whitePoint / 100);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Stretches with saturation the image intensity

  • « Imagick::levelImage
  • Imagick::liquidRescaleImage »
  • PHP Manual
  • Imagick
  • Stretches with saturation the image intensity

Imagick::linearStretchImage

(PECL imagick 2.0.0)

Imagick::linearStretchImage — Stretches with saturation the image intensity

Описание

bool Imagick::linearStretchImage ( float $blackPoint , float $whitePoint )

Stretches with saturation the image intensity.

Список параметров

blackPoint

The image black point

whitePoint

The image white point

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::linearStretchImage()

<?php
function linearStretchImage($imagePath, $blackThreshold, $whiteThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $pixels = $imagick->getImageWidth() * $imagick->getImageHeight();
    $imagick->linearStretchImage($blackThreshold * $pixels, $whiteThreshold * $pixels);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Animates an image or images

  • « Imagick::linearStretchImage
  • Imagick::listRegistry »
  • PHP Manual
  • Imagick
  • Animates an image or images

Imagick::liquidRescaleImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::liquidRescaleImage — Animates an image or images

Описание

bool Imagick::liquidRescaleImage ( int $width , int $height , float $delta_x , float $rigidity )

This method scales the images using liquid rescaling method. This method is an implementation of a technique called seam carving. In order for this method to work as expected ImageMagick must be compiled with liblqr support. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.9 или старше.

Список параметров

width

The width of the target size

height

The height of the target size

delta_x

How much the seam can traverse on x-axis. Passing 0 causes the seams to be straight.

rigidity

Introduces a bias for non-straight seams. This parameter is typically 0.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::resizeImage() - Scales an image


Description

  • « Imagick::liquidRescaleImage
  • Imagick::magnifyImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::listRegistry

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::listRegistry — Description

Описание

public static array Imagick::listRegistry ( void )

List all the registry settings. Returns an array of all the key/value pairs in the registry

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array containing the key/values from the registry.


Scales an image proportionally 2x

  • « Imagick::listRegistry
  • Imagick::mapImage »
  • PHP Manual
  • Imagick
  • Scales an image proportionally 2x

Imagick::magnifyImage

(PECL imagick 2.0.0)

Imagick::magnifyImage — Scales an image proportionally 2x

Описание

bool Imagick::magnifyImage ( void )

Is a convenience method that scales an image proportionally to twice its original size.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::magnifyImage()

<?php
function magnifyImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->magnifyImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Replaces the colors of an image with the closest color from a reference image.

  • « Imagick::magnifyImage
  • Imagick::matteFloodfillImage »
  • PHP Manual
  • Imagick
  • Replaces the colors of an image with the closest color from a reference image.

Imagick::mapImage

(PECL imagick 2.0.0)

Imagick::mapImage — Replaces the colors of an image with the closest color from a reference image.

Описание

bool Imagick::mapImage ( Imagick $map , bool $dither )

Список параметров

map

dither

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Changes the transparency value of a color

  • « Imagick::mapImage
  • Imagick::medianFilterImage »
  • PHP Manual
  • Imagick
  • Changes the transparency value of a color

Imagick::matteFloodfillImage

(PECL imagick 2.0.0)

Imagick::matteFloodfillImage — Changes the transparency value of a color

Описание

bool Imagick::matteFloodfillImage ( float $alpha , float $fuzz , mixed $bordercolor , int $x , int $y )

Changes the transparency value of any pixel that matches target and is an immediate neighbor. If the method FillToBorderMethod is specified, the transparency value is changed for any neighbor pixel that does not match the bordercolor member of image.

Список параметров

alpha

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

bordercolor

An ImagickPixel object or string representing the border color.

x

The starting x coordinate of the operation.

y

The starting y coordinate of the operation.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the third parameter. Previous versions allow only an ImagickPixel object.


Applies a digital filter

  • « Imagick::matteFloodfillImage
  • Imagick::mergeImageLayers »
  • PHP Manual
  • Imagick
  • Applies a digital filter

Imagick::medianFilterImage

(PECL imagick 2.0.0)

Imagick::medianFilterImage — Applies a digital filter

Описание

bool Imagick::medianFilterImage ( float $radius )

Applies a digital filter that improves the quality of a noisy image. Each pixel is replaced by the median in a set of neighboring pixels as defined by radius.

Список параметров

radius

The radius of the pixel neighborhood.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::medianFilterImage()

<?php
function medianFilterImage($radius, $imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    @$imagick->medianFilterImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Merges image layers

  • « Imagick::medianFilterImage
  • Imagick::minifyImage »
  • PHP Manual
  • Imagick
  • Merges image layers

Imagick::mergeImageLayers

(PECL imagick 2.1.0)

Imagick::mergeImageLayers — Merges image layers

Описание

Imagick Imagick::mergeImageLayers ( int $layer_method )

Merges image layers into one. This method is useful when working with image formats that use multiple layers such as PSD. The merging is controlled using the layer_method which defines how the layers are merged. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Список параметров

layer_method

One of the Imagick::LAYERMETHOD_* constants

Возвращаемые значения

Returns an Imagick object containing the merged image.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::flattenImages() - Merges a sequence of images

Примеры

Пример #1 Imagick::mergeImageLayers()

<?php
function mergeImageLayers($layerMethodType, $imagePath1, $imagePath2) {

    $imagick = new \Imagick(realpath($imagePath));

    $imagick2 = new \Imagick(realpath($imagePath2));
    $imagick->addImage($imagick2);
    $imagick->setImageFormat('png');

    $result = $imagick->mergeImageLayers($layerMethodType);
    header("Content-Type: image/png");
    echo $result->getImageBlob();
}

?>


Scales an image proportionally to half its size

  • « Imagick::mergeImageLayers
  • Imagick::modulateImage »
  • PHP Manual
  • Imagick
  • Scales an image proportionally to half its size

Imagick::minifyImage

(PECL imagick 2.0.0)

Imagick::minifyImage — Scales an image proportionally to half its size

Описание

bool Imagick::minifyImage ( void )

Is a convenience method that scales an image proportionally to one-half its original size

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Control the brightness, saturation, and hue

  • « Imagick::minifyImage
  • Imagick::montageImage »
  • PHP Manual
  • Imagick
  • Control the brightness, saturation, and hue

Imagick::modulateImage

(PECL imagick 2.0.0)

Imagick::modulateImage — Control the brightness, saturation, and hue

Описание

bool Imagick::modulateImage ( float $brightness , float $saturation , float $hue )

Lets you control the brightness, saturation, and hue of an image. Hue is the percentage of absolute rotation from the current position. For example 50 results in a counter-clockwise rotation of 90 degrees, 150 results in a clockwise rotation of 90 degrees, with 0 and 200 both resulting in a rotation of 180 degrees.

Список параметров

brightness

saturation

hue

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::modulateImage()

<?php
function modulateImage($imagePath, $hue, $brightness, $saturation) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->modulateImage($brightness, $saturation, $hue);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a composite image

  • « Imagick::modulateImage
  • Imagick::morphImages »
  • PHP Manual
  • Imagick
  • Creates a composite image

Imagick::montageImage

(PECL imagick 2.0.0)

Imagick::montageImage — Creates a composite image

Описание

Imagick Imagick::montageImage ( ImagickDraw $draw , string $tile_geometry , string $thumbnail_geometry , int $mode , string $frame )

Creates a composite image by combining several separate images. The images are tiled on the composite image with the name of the image optionally appearing just below the individual tile.

Список параметров

draw

The font name, size, and color are obtained from this object.

tile_geometry

The number of tiles per row and page (e.g. 6x4+0+0).

thumbnail_geometry

Preferred image size and border size of each thumbnail (e.g. 120x120+4+3>).

mode

Thumbnail framing mode, see Montage Mode constants.

frame

Surround the image with an ornamental border (e.g. 15x15+3+3). The frame color is that of the thumbnail's matte color.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Method morphs a set of images

  • « Imagick::montageImage
  • Imagick::morphology »
  • PHP Manual
  • Imagick
  • Method morphs a set of images

Imagick::morphImages

(PECL imagick 2.0.0)

Imagick::morphImages — Method morphs a set of images

Описание

Imagick Imagick::morphImages ( int $number_frames )

Method morphs a set of images. Both the image pixels and size are linearly interpolated to give the appearance of a meta-morphosis from one image to the next.

Список параметров

number_frames

The number of in-between images to generate.

Возвращаемые значения

This method returns a new Imagick object on success. Вызывает ImagickException при ошибке.


Description

  • « Imagick::morphImages
  • Imagick::mosaicImages »
  • PHP Manual
  • Imagick
  • Description

Imagick::morphology

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::morphology — Description

Описание

public void Imagick::morphology ( int $morphologyMethod , int $iterations , ImagickKernel $ImagickKernel [, string $CHANNEL ] )

Applies a user supplied kernel to the image according to the given morphology method.

Список параметров

morphologyMethod

Which morphology method to use one of the \Imagick::MORPHOLOGY_* constants.

iterations

The number of iteration to apply the morphology function. A value of -1 means loop until no change found. How this is applied may depend on the morphology method. Typically this is a value of 1.

ImagickKernel

CHANNEL

Возвращаемые значения

Примеры

Пример #1 Convolve Imagick::morphology()

<?php
        $imagick = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_GAUSSIAN, "5,1");
        $imagick->morphology(\Imagick::MORPHOLOGY_CONVOLVE, 2, $kernel);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();

?>

Пример #2 Correlate Imagick::morphology()

<?php

        // Top-left pixel must be black
        // Bottom right pixel must be white
        // We don't care about the rest.

        $imagick = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromMatrix(self::$correlateMatrix, [2, 2]);
        $imagick->morphology(\Imagick::MORPHOLOGY_CORRELATE, 1, $kernel);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();

?>

Пример #3 Erode Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_ERODE, 2, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #4 Erode Intensity Imagick::morphology()

<?php
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "1");
        $canvas->morphology(\Imagick::MORPHOLOGY_ERODE_INTENSITY, 2, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #5 Dilate Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_DILATE, 4, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #6 Dilate intensity Imagick::morphology()

<?php
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "1");
        $canvas->morphology(\Imagick::MORPHOLOGY_DILATE_INTENSITY, 4, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #7 Distance with Chebyshev kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_CHEBYSHEV, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #8 Distance with Manhattan kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_MANHATTAN, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #9 Distance with ocatagonal kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGONAL, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #10 Distance with Euclidean kernel Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_EUCLIDEAN, "4");
        $canvas->morphology(\Imagick::MORPHOLOGY_DISTANCE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #11 Edge Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #12 Open Imagick::morphology()

<?php
        // As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_OPEN, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #13 Open intensity Imagick::morphology()

<?php
        // As a result you will see that 'Open' smoothed the outline, by rounding off any sharp points, and remove any parts that is smaller than the shape used. It will also disconnect or 'open' any thin bridges.

        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_OPEN_INTENSITY, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #14 Close Imagick::morphology()

<?php
        //The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #15 Close Intensity Imagick::morphology()

<?php
        //The basic use of the 'Close' method is to reduce or remove any 'holes' or 'gaps' about the size of the kernel 'Structure Element'. That is 'close' parts of the background that are about that size.
        $canvas = $this->getCharacter();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "6");
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE_INTENSITY, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #16 Smooth Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_SMOOTH, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #17 Edge in Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE_IN, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #18 Edge out Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_OCTAGON, "3");
        $canvas->morphology(\Imagick::MORPHOLOGY_EDGE_OUT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #19 The 'TopHat' method, or more specifically 'White Top Hat', returns the pixels that were removed by a Opening of the shape, that is the pixels that were removed to round off the points, and the connecting bridged between shapes. Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_TOP_HAT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #20 The 'BottomHat' method, also known as 'Black TopHat' is the pixels that a Closing of the shape adds to the image. That is the the pixels that were used to fill in the 'holes', 'gaps', and 'bridges'. Imagick::morphology()

<?php

        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "5");
        $canvas->morphology(\Imagick::MORPHOLOGY_BOTTOM_HAT, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #21 Hit and Miss Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        //This finds all the pixels with 3 pixels of the right edge
        $matrix = [[1, false, false, 0]];
        $kernel = \ImagickKernel::fromMatrix(
            $matrix,
            [0, 0]
        );
        $canvas->morphology(\Imagick::MORPHOLOGY_HIT_AND_MISS, 1, $kernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #22 Thinning Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $leftEdgeKernel = \ImagickKernel::fromMatrix([[0, 1]], [1, 0]);
        $rightEdgeKernel = \ImagickKernel::fromMatrix([[1, 0]], [0, 0]);
        $leftEdgeKernel->addKernel($rightEdgeKernel);

        $canvas->morphology(\Imagick::MORPHOLOGY_THINNING, 3, $leftEdgeKernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #23 Thicken Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $leftEdgeKernel = \ImagickKernel::fromMatrix([[0, 1]], [1, 0]);
        $rightEdgeKernel = \ImagickKernel::fromMatrix([[1, 0]], [0, 0]);
        $leftEdgeKernel->addKernel($rightEdgeKernel);

        $canvas->morphology(\Imagick::MORPHOLOGY_THICKEN, 3, $leftEdgeKernel);
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #24 Thick to generate a convex hull Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $diamondKernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "1");
        $convexKernel =  \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_CONVEX_HULL, "");

        // The thicken morphology doesn't handle small gaps. We close them
        // with the close morphology.
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $diamondKernel);
        $canvas->morphology(\Imagick::MORPHOLOGY_THICKEN, -1, $convexKernel);
        $canvas->morphology(\Imagick::MORPHOLOGY_CLOSE, 1, $diamondKernel);

        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #25 Iterative morphology Imagick::morphology()

<?php
        $canvas = $this->getCharacterOutline();
        $kernel = \ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DISK, "2");
        $canvas->morphology(\Imagick::MORPHOLOGY_ITERATIVE, 3, $kernel);
        $canvas->autoLevelImage();
        header("Content-Type: image/png");
        echo $canvas->getImageBlob();

?>

Пример #26 Helper functon to get an image silhouette Imagick::morphology()

<?php
    private function getCharacterOutline() {

        $imagick = new \Imagick(realpath("./images/character.png"));
        $character = new \Imagick();
        $character->newPseudoImage(
            $imagick->getImageWidth(),
            $imagick->getImageHeight(),
            "canvas:white"
        );
        $canvas = new \Imagick();
        $canvas->newPseudoImage(
            $imagick->getImageWidth(),
            $imagick->getImageHeight(),
            "canvas:black"
        );

        $character->compositeimage(
            $imagick,
            \Imagick::COMPOSITE_COPYOPACITY,
            0, 0
        );
        $canvas->compositeimage(
            $character,
            \Imagick::COMPOSITE_ATOP,
            0, 0
        );
        $canvas->setFormat('png');

        return $canvas;
    }

?>


Forms a mosaic from images

  • « Imagick::morphology
  • Imagick::motionBlurImage »
  • PHP Manual
  • Imagick
  • Forms a mosaic from images

Imagick::mosaicImages

(PECL imagick 2.0.0)

Imagick::mosaicImages — Forms a mosaic from images

Описание

Imagick Imagick::mosaicImages ( void )

Inlays an image sequence to form a single coherent picture. It returns a wand with each image in the sequence composited at the location defined by the page offset of the image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Simulates motion blur

  • « Imagick::mosaicImages
  • Imagick::negateImage »
  • PHP Manual
  • Imagick
  • Simulates motion blur

Imagick::motionBlurImage

(PECL imagick 2.0.0)

Imagick::motionBlurImage — Simulates motion blur

Описание

bool Imagick::motionBlurImage ( float $radius , float $sigma , float $angle [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Simulates motion blur. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and MotionBlurImage() selects a suitable radius for you. Angle gives the angle of the blurring motion.

Список параметров

radius

The radius of the Gaussian, in pixels, not counting the center pixel.

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants. The channel argument affects only if Imagick is compiled against ImageMagick version 6.4.4 or greater.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::motionBlurImage()

<?php
function motionBlurImage($imagePath, $radius, $sigma, $angle, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->motionBlurImage($radius, $sigma, $angle, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Negates the colors in the reference image

  • « Imagick::motionBlurImage
  • Imagick::newImage »
  • PHP Manual
  • Imagick
  • Negates the colors in the reference image

Imagick::negateImage

(PECL imagick 2.0.0)

Imagick::negateImage — Negates the colors in the reference image

Описание

bool Imagick::negateImage ( bool $gray [, int $channel = Imagick::CHANNEL_ALL ] )

Negates the colors in the reference image. The Grayscale option means that only grayscale values within the image are negated.

Список параметров

gray

Whether to only negate grayscale pixels within the image.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::negateImage()

<?php
function negateImage($imagePath, $grayOnly, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->negateImage($grayOnly, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a new image

  • « Imagick::negateImage
  • Imagick::newPseudoImage »
  • PHP Manual
  • Imagick
  • Creates a new image

Imagick::newImage

(PECL imagick 2.0.0)

Imagick::newImage — Creates a new image

Описание

bool Imagick::newImage ( int $cols , int $rows , mixed $background [, string $format ] )

Creates a new image and associates ImagickPixel value as background color

Список параметров

cols

Columns in the new image

rows

Rows in the new image

background

The background color used for this image

format

Image format. This parameter was added in Imagick version 2.0.1.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the third parameter. Previous versions allow only an ImagickPixel object.

Примеры

Пример #1 Using Imagick::newImage():

Create a new image and display it.

<?php

$image = new Imagick();
$image->newImage(100, 100, new ImagickPixel('red'));
$image->setImageFormat('png');

header('Content-type: image/png');
echo $image;

?>


Creates a new image

  • « Imagick::newImage
  • Imagick::nextImage »
  • PHP Manual
  • Imagick
  • Creates a new image

Imagick::newPseudoImage

(PECL imagick 2.0.0)

Imagick::newPseudoImage — Creates a new image

Описание

bool Imagick::newPseudoImage ( int $columns , int $rows , string $pseudoString )

Creates a new image using ImageMagick pseudo-formats.

Список параметров

columns

columns in the new image

rows

rows in the new image

pseudoString

string containing pseudo image definition.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::newPseudoImage()

<?php
function newPseudoImage($canvasType) {
    $imagick = new \Imagick();
    $imagick->newPseudoImage(300, 300, $canvasType);
    $imagick->setImageFormat("png");
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

//newPseudoImage('gradient:red-rgba(64, 255, 255, 0.5)');
//newPseudoImage("radial-gradient:red-blue");
newPseudoImage("plasma:fractal");

?>


Moves to the next image

  • « Imagick::newPseudoImage
  • Imagick::normalizeImage »
  • PHP Manual
  • Imagick
  • Moves to the next image

Imagick::nextImage

(PECL imagick 2.0.0)

Imagick::nextImage — Moves to the next image

Описание

bool Imagick::nextImage ( void )

Associates the next image in the image list with an Imagick object.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Enhances the contrast of a color image

  • « Imagick::nextImage
  • Imagick::oilPaintImage »
  • PHP Manual
  • Imagick
  • Enhances the contrast of a color image

Imagick::normalizeImage

(PECL imagick 2.0.0)

Imagick::normalizeImage — Enhances the contrast of a color image

Описание

bool Imagick::normalizeImage ([ int $channel = Imagick::CHANNEL_ALL ] )

Enhances the contrast of a color image by adjusting the pixels color to span the entire range of colors available.

Список параметров

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::normalizeImage()

<?php
function normalizeImage($imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $original = clone $imagick;
    $original->cropimage($original->getImageWidth() / 2, $original->getImageHeight(), 0, 0);
    $imagick->normalizeImage($channel);
    $imagick->compositeimage($original, \Imagick::COMPOSITE_ATOP, 0, 0);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Simulates an oil painting

  • « Imagick::normalizeImage
  • Imagick::opaquePaintImage »
  • PHP Manual
  • Imagick
  • Simulates an oil painting

Imagick::oilPaintImage

(PECL imagick 2.0.0)

Imagick::oilPaintImage — Simulates an oil painting

Описание

bool Imagick::oilPaintImage ( float $radius )

Applies a special effect filter that simulates an oil painting. Each pixel is replaced by the most frequent color occurring in a circular region defined by radius.

Список параметров

radius

The radius of the circular neighborhood.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::oilPaintImage()

<?php
function oilPaintImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->oilPaintImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Changes the color value of any pixel that matches target

  • « Imagick::oilPaintImage
  • Imagick::optimizeImageLayers »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::opaquePaintImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::opaquePaintImage — Changes the color value of any pixel that matches target

Описание

bool Imagick::opaquePaintImage ( mixed $target , mixed $fill , float $fuzz , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Changes any pixel that matches color with the color defined by fill. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

target

ImagickPixel object or a string containing the color to change

fill

The replacement color

fuzz

Мера округления (fuzz). Для примера, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.

invert

If TRUE paints any pixel that does not match the target color.

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Removes repeated portions of images to optimize

  • « Imagick::opaquePaintImage
  • Imagick::orderedPosterizeImage »
  • PHP Manual
  • Imagick
  • Removes repeated portions of images to optimize

Imagick::optimizeImageLayers

(PECL imagick 2.0.0)

Imagick::optimizeImageLayers — Removes repeated portions of images to optimize

Описание

bool Imagick::optimizeImageLayers ( void )

Compares each image the GIF disposed forms of the previous image in the sequence. From this it attempts to select the smallest cropped image to replace each frame, while preserving the results of the animation. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::optimizeImageLayers()

Reading, optimizing and writing a GIF image

<?php
/* create new imagick object */
$im = new Imagick("test.gif");

/* optimize the image layers */
$im->optimizeImageLayers();

/* write the image back */
$im->writeImages("test_optimized.gif", true);
?>

Смотрите также

  • Imagick::compareImageLayers() - Returns the maximum bounding region between images
  • Imagick::writeImages() - Writes an image or image sequence
  • Imagick::writeImage() - Writes an image to the specified filename


Performs an ordered dither

  • « Imagick::optimizeImageLayers
  • Imagick::paintFloodfillImage »
  • PHP Manual
  • Imagick
  • Performs an ordered dither

Imagick::orderedPosterizeImage

(PECL imagick 2.2.2)

Imagick::orderedPosterizeImage — Performs an ordered dither

Описание

bool Imagick::orderedPosterizeImage ( string $threshold_map [, int $channel = Imagick::CHANNEL_ALL ] )

Performs an ordered dither based on a number of pre-defined dithering threshold maps, but over multiple intensity levels, which can be different for different channels, according to the input arguments. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.1 или старше.

Список параметров

threshold_map

A string containing the name of the threshold dither map to use

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::orderedPosterizeImage()

<?php
function orderedPosterizeImage($imagePath, $orderedPosterizeType) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->orderedPosterizeImage($orderedPosterizeType);
    $imagick->setImageFormat('png');

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

//orderedPosterizeImage($imagePath, 'o4x4,3,3');
//orderedPosterizeImage($imagePath, 'o8x8,6,6');
orderedPosterizeImage($imagePath, 'h8x8a');

?>


Changes the color value of any pixel that matches target

  • « Imagick::orderedPosterizeImage
  • Imagick::paintOpaqueImage »
  • PHP Manual
  • Imagick
  • Changes the color value of any pixel that matches target

Imagick::paintFloodfillImage

(PECL imagick 2.1.0)

Imagick::paintFloodfillImage — Changes the color value of any pixel that matches target

Описание

bool Imagick::paintFloodfillImage ( mixed $fill , float $fuzz , mixed $bordercolor , int $x , int $y [, int $channel = Imagick::CHANNEL_ALL ] )

Changes the color value of any pixel that matches target and is an immediate neighbor. As of ImageMagick 6.3.8 this method has been deprecated and Imagick::floodfillPaintImage() should be used instead.

Список параметров

fill

ImagickPixel object or a string containing the fill color

fuzz

The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color for the purposes of the floodfill.

bordercolor

ImagickPixel object or a string containing the border color

x

X start position of the floodfill

y

Y start position of the floodfill

channel

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Change any pixel that matches color

  • « Imagick::paintFloodfillImage
  • Imagick::paintTransparentImage »
  • PHP Manual
  • Imagick
  • Change any pixel that matches color

Imagick::paintOpaqueImage

(PECL imagick 2.0.0)

Imagick::paintOpaqueImage — Change any pixel that matches color

Описание

bool Imagick::paintOpaqueImage ( mixed $target , mixed $fill , float $fuzz [, int $channel = Imagick::CHANNEL_ALL ] )

Changes any pixel that matches color with the color defined by fill.

Список параметров

target

Change this target color to the fill color within the image. An ImagickPixel object or a string representing the target color.

fill

An ImagickPixel object or a string representing the fill color.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as first and second parameter. Previous versions allow only an ImagickPixel object.


Changes any pixel that matches color with the color defined by fill

  • « Imagick::paintOpaqueImage
  • Imagick::pingImage »
  • PHP Manual
  • Imagick
  • Changes any pixel that matches color with the color defined by fill

Imagick::paintTransparentImage

(PECL imagick 2.0.0)

Imagick::paintTransparentImage — Changes any pixel that matches color with the color defined by fill

Описание

bool Imagick::paintTransparentImage ( mixed $target , float $alpha , float $fuzz )

Changes any pixel that matches color with the color defined by fill.

Список параметров

target

Change this target color to specified opacity value within the image.

alpha

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

fuzz

The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.


Fetch basic attributes about the image

  • « Imagick::paintTransparentImage
  • Imagick::pingImageBlob »
  • PHP Manual
  • Imagick
  • Fetch basic attributes about the image

Imagick::pingImage

(PECL imagick 2.0.0)

Imagick::pingImage — Fetch basic attributes about the image

Описание

bool Imagick::pingImage ( string $filename )

This method can be used to query image width, height, size, and format without reading the whole image in to memory.

Список параметров

filename

The filename to read the information from.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Quickly fetch attributes

  • « Imagick::pingImage
  • Imagick::pingImageFile »
  • PHP Manual
  • Imagick
  • Quickly fetch attributes

Imagick::pingImageBlob

(PECL imagick 2.0.0)

Imagick::pingImageBlob — Quickly fetch attributes

Описание

bool Imagick::pingImageBlob ( string $image )

This method can be used to query image width, height, size, and format without reading the whole image to memory. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

image

A string containing the image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Using Imagick::pingImageBlob()

Pinging an image from a string

<?php
/* read image contents */
$image = file_get_contents("test.jpg");

/* create new imagick object */
$im = new Imagick();

/* pass the string to the imagick object */
$im->pingImageBlob($image);

/* output image width and height */
echo $im->getImageWidth() . 'x' . $im->getImageHeight();
?>

Смотрите также

  • Imagick::pingImage() - Fetch basic attributes about the image
  • Imagick::pingImageFile() - Get basic image attributes in a lightweight manner
  • Imagick::readImage() - Reads image from filename
  • Imagick::readImageBlob() - Reads image from a binary string
  • Imagick::readImageFile() - Reads image from open filehandle


Get basic image attributes in a lightweight manner

  • « Imagick::pingImageBlob
  • Imagick::polaroidImage »
  • PHP Manual
  • Imagick
  • Get basic image attributes in a lightweight manner

Imagick::pingImageFile

(PECL imagick 2.0.0)

Imagick::pingImageFile — Get basic image attributes in a lightweight manner

Описание

bool Imagick::pingImageFile ( resource $filehandle [, string $fileName ] )

This method can be used to query image width, height, size, and format without reading the whole image to memory. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

filehandle

An open filehandle to the image.

fileName

Optional filename for this image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Using Imagick::pingImageFile()

Opening a remote location

<?php
/* fopen a remote location */
$fp = fopen("http://example.com/test.jpg");

/* create new imagick object */
$im = new Imagick();

/* pass the handle to imagick */
$im->pingImageFile($fp);
?>

Смотрите также

  • Imagick::pingImage() - Fetch basic attributes about the image
  • Imagick::pingImageBlob() - Quickly fetch attributes
  • Imagick::readImage() - Reads image from filename
  • Imagick::readImageBlob() - Reads image from a binary string
  • Imagick::readImageFile() - Reads image from open filehandle


Simulates a Polaroid picture

  • « Imagick::pingImageFile
  • Imagick::posterizeImage »
  • PHP Manual
  • Imagick
  • Simulates a Polaroid picture

Imagick::polaroidImage

(PECL imagick 2.0.0)

Imagick::polaroidImage — Simulates a Polaroid picture

Описание

bool Imagick::polaroidImage ( ImagickDraw $properties , float $angle )

Simulates a Polaroid picture. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или старше.

Список параметров

properties

The polaroid properties

angle

The polaroid angle

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 A Imagick::polaroidImage() example

An example of using Imagick::polaroidImage()

<?php
/* Create the object */
$image = new Imagick('source.png');

/* Set the opacity */
$image->polaroidImage(new ImagickDraw(), 25);

/* output the image */
header('Content-type: image/png');
echo $image;

?>


Reduces the image to a limited number of color level

  • « Imagick::polaroidImage
  • Imagick::previewImages »
  • PHP Manual
  • Imagick
  • Reduces the image to a limited number of color level

Imagick::posterizeImage

(PECL imagick 2.0.0)

Imagick::posterizeImage — Reduces the image to a limited number of color level

Описание

bool Imagick::posterizeImage ( int $levels , bool $dither )

Reduces the image to a limited number of color level.

Список параметров

levels

dither

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::posterizeImage()

<?php
function posterizeImage($imagePath, $posterizeType, $numberLevels) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->posterizeImage($numberLevels, $posterizeType);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

posterizeImage($imagePath, \Imagick::DITHERMETHOD_RIEMERSMA, 8);

?>


Quickly pin-point appropriate parameters for image processing

  • « Imagick::posterizeImage
  • Imagick::previousImage »
  • PHP Manual
  • Imagick
  • Quickly pin-point appropriate parameters for image processing

Imagick::previewImages

(PECL imagick 2.0.0)

Imagick::previewImages — Quickly pin-point appropriate parameters for image processing

Описание

bool Imagick::previewImages ( int $preview )

Tiles 9 thumbnails of the specified image with an image processing operation applied at varying strengths. This is helpful to quickly pin-point an appropriate parameter for an image processing operation.

Список параметров

preview

Preview type. See Preview type constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Move to the previous image in the object

  • « Imagick::previewImages
  • Imagick::profileImage »
  • PHP Manual
  • Imagick
  • Move to the previous image in the object

Imagick::previousImage

(PECL imagick 2.0.0)

Imagick::previousImage — Move to the previous image in the object

Описание

bool Imagick::previousImage ( void )

Assocates the previous image in an image list with the Imagick object.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Adds or removes a profile from an image

  • « Imagick::previousImage
  • Imagick::quantizeImage »
  • PHP Manual
  • Imagick
  • Adds or removes a profile from an image

Imagick::profileImage

(PECL imagick 2.0.0)

Imagick::profileImage — Adds or removes a profile from an image

Описание

bool Imagick::profileImage ( string $name , string $profile )

Adds or removes a ICC, IPTC, or generic profile from an image. If the profile is NULL, it is removed from the image otherwise added. Use a name of '*' and a profile of NULL to remove all profiles from the image.

Список параметров

name

profile

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Analyzes the colors within a reference image

  • « Imagick::profileImage
  • Imagick::quantizeImages »
  • PHP Manual
  • Imagick
  • Analyzes the colors within a reference image

Imagick::quantizeImage

(PECL imagick 2.0.0)

Imagick::quantizeImage — Analyzes the colors within a reference image

Описание

bool Imagick::quantizeImage ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )

Список параметров

numberColors

colorspace

treedepth

dither

measureError

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::quantizeImage()

<?php
function quantizeImage($imagePath, $numberColors, $colorSpace, $treeDepth, $dither) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->quantizeImage($numberColors, $colorSpace, $treeDepth, $dither, false);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Analyzes the colors within a sequence of images

  • « Imagick::quantizeImage
  • Imagick::queryFontMetrics »
  • PHP Manual
  • Imagick
  • Analyzes the colors within a sequence of images

Imagick::quantizeImages

(PECL imagick 2.0.0)

Imagick::quantizeImages — Analyzes the colors within a sequence of images

Описание

bool Imagick::quantizeImages ( int $numberColors , int $colorspace , int $treedepth , bool $dither , bool $measureError )

Список параметров

numberColors

colorspace

treedepth

dither

measureError

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Returns an array representing the font metrics

  • « Imagick::quantizeImages
  • Imagick::queryFonts »
  • PHP Manual
  • Imagick
  • Returns an array representing the font metrics

Imagick::queryFontMetrics

(PECL imagick 2.0.0)

Imagick::queryFontMetrics — Returns an array representing the font metrics

Описание

array Imagick::queryFontMetrics ( ImagickDraw $properties , string $text [, bool $multiline ] )

Returns a multi-dimensional array representing the font metrics.

Список параметров

properties

ImagickDraw object containing font properties

text

The text

multiline

Multiline parameter. If left empty it is autodetected

Возвращаемые значения

Returns a multi-dimensional array representing the font metrics.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::queryFontMetrics():

Query the metrics for the text and dump the results on the screen.

<?php
/* Create a new Imagick object */
$im = new Imagick();

/* Create an ImagickDraw object */
$draw = new ImagickDraw();

/* Set the font */
$draw->setFont('/path/to/font.ttf');

/* Dump the font metrics, autodetect multiline */
var_dump($im->queryFontMetrics($draw, "Hello World!"));
?>


Returns the configured fonts

  • « Imagick::queryFontMetrics
  • Imagick::queryFormats »
  • PHP Manual
  • Imagick
  • Returns the configured fonts

Imagick::queryFonts

(PECL imagick 2.0.0)

Imagick::queryFonts — Returns the configured fonts

Описание

array Imagick::queryFonts ([ string $pattern = "*" ] )

Returns the configured fonts.

Список параметров

pattern

The query pattern

Возвращаемые значения

Returns an array containing the configured fonts.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::queryFonts()

<?php
        $output = '';
        $output .= "Fonts that match 'Helvetica*' are:<br/>";

        $fontList = \Imagick::queryFonts("Helvetica*");

        foreach ($fontList as $fontName) {
            $output .= '<li>'. $fontName."</li>";
        }

        return $output;

?>


Returns formats supported by Imagick

  • « Imagick::queryFonts
  • Imagick::radialBlurImage »
  • PHP Manual
  • Imagick
  • Returns formats supported by Imagick

Imagick::queryFormats

(PECL imagick 2.0.0)

Imagick::queryFormats — Returns formats supported by Imagick

Описание

array Imagick::queryFormats ([ string $pattern = "*" ] )

Returns formats supported by Imagick.

Список параметров

pattern

Возвращаемые значения

Returns an array containing the formats supported by Imagick.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::queryFormats()

<?php
    function render() {
        $output = "";
        $input = \Imagick::queryformats();
        $columns = 6;

        $output .= "<table border='2'>";

        for ($i=0; $i < count($input); $i += $columns) {
            $output .= "<tr>";
            for ($c=0; $c<$columns; $c++) {
                $output .= "<td>";
                if (($i + $c) <  count($input)) {
                    $output .= $input[$i + $c];
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

?>


Radial blurs an image

  • « Imagick::queryFormats
  • Imagick::raiseImage »
  • PHP Manual
  • Imagick
  • Radial blurs an image

Imagick::radialBlurImage

(PECL imagick 2.0.0)

Imagick::radialBlurImage — Radial blurs an image

Описание

bool Imagick::radialBlurImage ( float $angle [, int $channel = Imagick::CHANNEL_ALL ] )

Radial blurs an image.

Список параметров

angle

channel

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::radialBlurImage()

<?php
function radialBlurImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    //Blur 3 times with different radii
    $imagick->radialBlurImage(3);
    $imagick->radialBlurImage(5);
    $imagick->radialBlurImage(7);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a simulated 3d button-like effect

  • « Imagick::radialBlurImage
  • Imagick::randomThresholdImage »
  • PHP Manual
  • Imagick
  • Creates a simulated 3d button-like effect

Imagick::raiseImage

(PECL imagick 2.0.0)

Imagick::raiseImage — Creates a simulated 3d button-like effect

Описание

bool Imagick::raiseImage ( int $width , int $height , int $x , int $y , bool $raise )

Creates a simulated three-dimensional button-like effect by lightening and darkening the edges of the image. Members width and height of raise_info define the width of the vertical and horizontal edge of the effect.

Список параметров

width

height

x

y

raise

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::raiseImage()

<?php
function raiseImage($imagePath, $width, $height, $x, $y, $raise) {
    $imagick = new \Imagick(realpath($imagePath));

    //x and y do nothing?
    $imagick->raiseImage($width, $height, $x, $y, $raise);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a high-contrast, two-color image

  • « Imagick::raiseImage
  • Imagick::readImage »
  • PHP Manual
  • Imagick
  • Creates a high-contrast, two-color image

Imagick::randomThresholdImage

(PECL imagick 2.0.0)

Imagick::randomThresholdImage — Creates a high-contrast, two-color image

Описание

bool Imagick::randomThresholdImage ( float $low , float $high [, int $channel = Imagick::CHANNEL_ALL ] )

Changes the value of individual pixels based on the intensity of each pixel compared to threshold. The result is a high-contrast, two color image. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

low

The low point

high

The high point

channel

Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channeltype constants using bitwise operators. Refer to this list of channel constants.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::randomThresholdImage()

<?php
function randomThresholdimage($imagePath, $lowThreshold, $highThreshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->randomThresholdimage(
        $lowThreshold * \Imagick::getQuantum(),
        $highThreshold * \Imagick::getQuantum(),
        $channel
    );
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Reads image from filename

  • « Imagick::randomThresholdImage
  • Imagick::readImageBlob »
  • PHP Manual
  • Imagick
  • Reads image from filename

Imagick::readImage

(PECL imagick 0.9.0-0.9.9)

Imagick::readImage — Reads image from filename

Описание

bool Imagick::readImage ( string $filename )

Reads image from filename

Список параметров

filename

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Reads image from a binary string

  • « Imagick::readImage
  • Imagick::readImageFile »
  • PHP Manual
  • Imagick
  • Reads image from a binary string

Imagick::readImageBlob

(PECL imagick 2.0.0)

Imagick::readImageBlob — Reads image from a binary string

Описание

bool Imagick::readImageBlob ( string $image [, string $filename ] )

Reads image from a binary string

Список параметров

image

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::readImageBlob()

<?php
function readImageBlob() {
    $base64 = "iVBORw0KGgoAAAANSUhEUgAAAM0AAAD
 NCAMAAAAsYgRbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5c
 cllPAAAABJQTFRF3NSmzMewPxIG//ncJEJsldTou1jHgAAAARBJREFUeNrs2EEK
 gCAQBVDLuv+V20dENbMY831wKz4Y/VHb/5RGQ0NDQ0NDQ0NDQ0NDQ0NDQ
 0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0PzMWtyaGhoaGhoaGhoaGhoaGhoxtb0QGho
 aGhoaGhoaGhoaGhoaMbRLEvv50VTQ9OTQ5OpyZ01GpM2g0bfmDQaL7S+ofFC6x
 v3ZpxJiywakzbvd9r3RWPS9I2+MWk0+kbf0Hih9Y17U0nTHibrDDQ0NDQ0NDQ0
 NDQ0NDQ0NTXbRSL/AK72o6GhoaGhoRlL8951vwsNDQ0NDQ1NDc0WyHtDTEhD
 Q0NDQ0NTS5MdGhoaGhoaGhoaGhoaGhoaGhoaGhoaGposzSHAAErMwwQ2HwRQ
 AAAAAElFTkSuQmCC";

    $imageBlob = base64_decode($base64);

    $imagick = new Imagick();
    $imagick->readImageBlob($imageBlob);

    header("Content-Type: image/png");
    echo $imagick;
}

?>


Reads image from open filehandle

  • « Imagick::readImageBlob
  • Imagick::readimages »
  • PHP Manual
  • Imagick
  • Reads image from open filehandle

Imagick::readImageFile

(PECL imagick 2.0.0)

Imagick::readImageFile — Reads image from open filehandle

Описание

bool Imagick::readImageFile ( resource $filehandle [, string $fileName = null ] )

Reads image from open filehandle

Список параметров

filehandle

fileName

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Description

  • « Imagick::readImageFile
  • Imagick::recolorImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::readimages

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::readimages — Description

Описание

public Imagick Imagick::readImages ( string $filenames )

Reads image from an array of filenames. All the images are held in a single Imagick object.

Список параметров

filenames

Возвращаемые значения

The Imagick object that contains all the images.


Recolors image

  • « Imagick::readimages
  • Imagick::reduceNoiseImage »
  • PHP Manual
  • Imagick
  • Recolors image

Imagick::recolorImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::recolorImage — Recolors image

Описание

bool Imagick::recolorImage ( array $matrix )

Translate, scale, shear, or rotate image colors. This method supports variable sized matrices but normally 5x5 matrix is used for RGBA and 6x6 is used for CMYK. The last row should contain the normalized values. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

matrix

The matrix containing the color values

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::displayImage() - Выводит изображение

Примеры

Пример #1 Imagick::recolorImage()

<?php
function recolorImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $remapColor = [ 1, 0, 0,
        0, 0, 1,
        0, 1, 0,];

//$remapColor = [
//    1.438, -0.122, -0.016,  0, 0, -0.03,
//    -0.062,  1.378, -0.016,  0, 0,  0.05,
//    -0.062, -0.122, 1.483,   0, 0, -0.02,
//];

    @$imagick->recolorImage($remapColor);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Smooths the contours of an image

  • « Imagick::recolorImage
  • Imagick::remapImage »
  • PHP Manual
  • Imagick
  • Smooths the contours of an image

Imagick::reduceNoiseImage

(PECL imagick 2.0.0)

Imagick::reduceNoiseImage — Smooths the contours of an image

Описание

bool Imagick::reduceNoiseImage ( float $radius )

Smooths the contours of an image while still preserving edge information. The algorithm works by replacing each pixel with its neighbor closest in value. A neighbor is defined by radius. Use a radius of 0 and Imagick::reduceNoiseImage() selects a suitable radius for you.

Список параметров

radius

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::reduceNoiseImage()

<?php
function reduceNoiseImage($imagePath, $reduceNoise) {
    $imagick = new \Imagick(realpath($imagePath));
    @$imagick->reduceNoiseImage($reduceNoise);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Remaps image colors

  • « Imagick::reduceNoiseImage
  • Imagick::removeImage »
  • PHP Manual
  • Imagick
  • Remaps image colors

Imagick::remapImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::remapImage — Remaps image colors

Описание

public bool Imagick::remapImage ( Imagick $replacement , int $DITHER )

Replaces colors an image with those defined by replacement. The colors are replaced with the closest possible color. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

replacement

An Imagick object containing the replacement colors

DITHER

Refer to this list of dither method constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Removes an image from the image list

  • « Imagick::remapImage
  • Imagick::removeImageProfile »
  • PHP Manual
  • Imagick
  • Removes an image from the image list

Imagick::removeImage

(PECL imagick 2.0.0)

Imagick::removeImage — Removes an image from the image list

Описание

bool Imagick::removeImage ( void )

Removes an image from the image list.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Removes the named image profile and returns it

  • « Imagick::removeImage
  • Imagick::render »
  • PHP Manual
  • Imagick
  • Removes the named image profile and returns it

Imagick::removeImageProfile

(PECL imagick 2.0.0)

Imagick::removeImageProfile — Removes the named image profile and returns it

Описание

string Imagick::removeImageProfile ( string $name )

Removes the named image profile and returns it.

Список параметров

name

Возвращаемые значения

Returns a string containing the profile of the image.

Ошибки

Вызывает ImagickException при ошибке.


Renders all preceding drawing commands

  • « Imagick::removeImageProfile
  • Imagick::resampleImage »
  • PHP Manual
  • Imagick
  • Renders all preceding drawing commands

Imagick::render

(PECL imagick 2.0.0)

Imagick::render — Renders all preceding drawing commands

Описание

bool Imagick::render ( void )

Renders all preceding drawing commands.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Resample image to desired resolution

  • « Imagick::render
  • Imagick::resetImagePage »
  • PHP Manual
  • Imagick
  • Resample image to desired resolution

Imagick::resampleImage

(PECL imagick 2.0.0)

Imagick::resampleImage — Resample image to desired resolution

Описание

bool Imagick::resampleImage ( float $x_resolution , float $y_resolution , int $filter , float $blur )

Resample image to desired resolution.

Список параметров

x_resolution

y_resolution

filter

blur

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::resampleImage()

<?php
function resampleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->resampleImage(200, 200, \Imagick::FILTER_LANCZOS, 1);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Reset image page

  • « Imagick::resampleImage
  • Imagick::resizeImage »
  • PHP Manual
  • Imagick
  • Reset image page

Imagick::resetImagePage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::resetImagePage — Reset image page

Описание

bool Imagick::resetImagePage ( string $page )

The page definition as a string. The string is in format WxH+x+y. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

page

The page definition. For example 7168x5147+0+0

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Scales an image

  • « Imagick::resetImagePage
  • Imagick::rollImage »
  • PHP Manual
  • Imagick
  • Scales an image

Imagick::resizeImage

(PECL imagick 2.0.0)

Imagick::resizeImage — Scales an image

Описание

bool Imagick::resizeImage ( int $columns , int $rows , int $filter , float $blur [, bool $bestfit = false ] )

Scales an image to the desired dimensions with a filter.

Замечание: Поведение параметра bestfit было изменено в Imagick 3.0.0. До этой версии при изменении изображения размером 200x150 до 400x300 никаких операций не происходило. В Imagick 3.0.0 и далее изображение будет масштабировано до размеров 400x300, так как это наилучшим образом соответствует ("best fit") данным размерам. Если используется параметр bestfit, то ширина и высота также должны быть определены.

Список параметров

columns

Width of the image

rows

Height of the image

filter

Refer to the list of filter constants.

blur

The blur factor where > 1 is blurry, < 1 is sharp.

bestfit

Optional fit parameter.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Примеры

Пример #1 Imagick::resizeImage()

<?php
function resizeImage($imagePath, $width, $height, $filterType, $blur, $bestFit, $cropZoom) {
    //The blur factor where &gt; 1 is blurry, &lt; 1 is sharp.
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->resizeImage($width, $height, $filterType, $blur, $bestFit);

    $cropWidth = $imagick->getImageWidth();
    $cropHeight = $imagick->getImageHeight();

    if ($cropZoom) {
        $newWidth = $cropWidth / 2;
        $newHeight = $cropHeight / 2;

        $imagick->cropimage(
            $newWidth,
            $newHeight,
            ($cropWidth - $newWidth) / 2,
            ($cropHeight - $newHeight) / 2
        );

        $imagick->scaleimage(
            $imagick->getImageWidth() * 4,
            $imagick->getImageHeight() * 4
        );
    }

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Offsets an image

  • « Imagick::resizeImage
  • Imagick::rotateImage »
  • PHP Manual
  • Imagick
  • Offsets an image

Imagick::rollImage

(PECL imagick 2.0.0)

Imagick::rollImage — Offsets an image

Описание

bool Imagick::rollImage ( int $x , int $y )

Offsets an image as defined by x and y.

Список параметров

x

The X offset.

y

The Y offset.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::rollImage()

<?php
function rollImage($imagePath, $rollX, $rollY) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rollimage($rollX, $rollY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Rotates an image

  • « Imagick::rollImage
  • Imagick::rotationalBlurImage »
  • PHP Manual
  • Imagick
  • Rotates an image

Imagick::rotateImage

(PECL imagick 2.0.0)

Imagick::rotateImage — Rotates an image

Описание

bool Imagick::rotateImage ( mixed $background , float $degrees )

Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

Список параметров

background

The background color

degrees

Rotation angle, in degrees. The rotation angle is interpreted as the number of degrees to rotate the image clockwise.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Примеры

Пример #1 Imagick::rotateImage()

<?php
function rotateImage($imagePath, $angle, $color) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rotateimage($color, $angle);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::rotateImage
  • Imagick::roundCorners »
  • PHP Manual
  • Imagick
  • Description

Imagick::rotationalBlurImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::rotationalBlurImage — Description

Описание

public void Imagick::rotationalBlurImage ( string $angle [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Rotational blurs an image.

Список параметров

angle

The angle to apply the blur over.

CHANNEL

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Примеры

Пример #1 Imagick::rotationalBlurImage()

<?php
function rotationalBlurImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->rotationalBlurImage(3);
    $imagick->rotationalBlurImage(5);
    $imagick->rotationalBlurImage(7);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Rounds image corners

  • « Imagick::rotationalBlurImage
  • Imagick::sampleImage »
  • PHP Manual
  • Imagick
  • Rounds image corners

Imagick::roundCorners

(PECL imagick 2.0.0)

Imagick::roundCorners — Rounds image corners

Описание

bool Imagick::roundCorners ( float $x_rounding , float $y_rounding [, float $stroke_width = 10 [, float $displace = 5 [, float $size_correction = -6 ]]] )

Rounds image corners. The first two parameters control the amount of rounding and the three last parameters can be used to fine-tune the rounding process. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

x_rounding

x rounding

y_rounding

y rounding

stroke_width

stroke width

displace

image displace

size_correction

size correction

Примеры

Пример #1 Using Imagick::roundCorners():

Rounds the image corners

<?php

$image = new Imagick();
$image->newPseudoImage(100, 100, "magick:rose");
$image->setImageFormat("png");

$image->roundCorners(5,3);
$image->writeImage("rounded.png");
?>

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Scales an image with pixel sampling

  • « Imagick::roundCorners
  • Imagick::scaleImage »
  • PHP Manual
  • Imagick
  • Scales an image with pixel sampling

Imagick::sampleImage

(PECL imagick 2.0.0)

Imagick::sampleImage — Scales an image with pixel sampling

Описание

bool Imagick::sampleImage ( int $columns , int $rows )

Scales an image to the desired dimensions with pixel sampling. Unlike other scaling methods, this method does not introduce any additional color into the scaled image.

Список параметров

columns

rows

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Scales the size of an image

  • « Imagick::sampleImage
  • Imagick::segmentImage »
  • PHP Manual
  • Imagick
  • Scales the size of an image

Imagick::scaleImage

(PECL imagick 2.0.0)

Imagick::scaleImage — Scales the size of an image

Описание

bool Imagick::scaleImage ( int $cols , int $rows [, bool $bestfit = false ] )

Scales the size of an image to the given dimensions. The other parameter will be calculated if 0 is passed as either param.

Замечание: Поведение параметра bestfit было изменено в Imagick 3.0.0. До этой версии при изменении изображения размером 200x150 до 400x300 никаких операций не происходило. В Imagick 3.0.0 и далее изображение будет масштабировано до размеров 400x300, так как это наилучшим образом соответствует ("best fit") данным размерам. Если используется параметр bestfit, то ширина и высота также должны быть определены.

Список параметров

cols

rows

bestfit

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Added optional fit parameter. This method now supports proportional scaling. Pass zero as either parameter for proportional scaling.

Примеры

Пример #1 Imagick::scaleImage()

<?php
function scaleImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->scaleImage(150, 150, true);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Segments an image

  • « Imagick::scaleImage
  • Imagick::selectiveBlurImage »
  • PHP Manual
  • Imagick
  • Segments an image

Imagick::segmentImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::segmentImage — Segments an image

Описание

public bool Imagick::segmentImage ( int $COLORSPACE , float $cluster_threshold , float $smooth_threshold [, bool $verbose = false ] )

Analyses the image and identifies units that are similar. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

COLORSPACE

One of the COLORSPACE constants.

cluster_threshold

A percentage describing minimum number of pixels contained in hexedra before it is considered valid.

smooth_threshold

Eliminates noise from the histogram.

verbose

Whether to output detailed information about recognised classes.

Возвращаемые значения

Примеры

Пример #1 Imagick::segmentImage()

<?php
function segmentImage($imagePath, $colorSpace, $clusterThreshold, $smoothThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->segmentImage($colorSpace, $clusterThreshold, $smoothThreshold);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

segmentImage($imagePath, \Imagick::COLORSPACE_RGB, 5, 5);

?>


Description

  • « Imagick::segmentImage
  • Imagick::separateImageChannel »
  • PHP Manual
  • Imagick
  • Description

Imagick::selectiveBlurImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::selectiveBlurImage — Description

Описание

public void Imagick::selectiveBlurImage ( float $radius , float $sigma , float $threshold , int $CHANNEL )

Selectively blur an image within a contrast threshold. It is similar to the unsharpen mask that sharpens everything with contrast above a certain threshold.

Список параметров

radius

sigma

threshold

CHANNEL

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

Примеры

Пример #1 Imagick::selectiveBlurImage()

<?php
function selectiveBlurImage($imagePath, $radius, $sigma, $threshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->selectiveBlurImage($radius, $sigma, $threshold, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Separates a channel from the image

  • « Imagick::selectiveBlurImage
  • Imagick::sepiaToneImage »
  • PHP Manual
  • Imagick
  • Separates a channel from the image

Imagick::separateImageChannel

(PECL imagick 2.0.0)

Imagick::separateImageChannel — Separates a channel from the image

Описание

bool Imagick::separateImageChannel ( int $channel )

Separates a channel from the image and returns a grayscale image. A channel is a particular color component of each pixel in the image.

Список параметров

channel

Which 'channel' to return. For colorspaces other than RGB, you can still use the CHANNEL_RED, CHANNEL_GREEN, CHANNEL_BLUE constants to indicate the 1st, 2nd and 3rd channels.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::separateImageChannel()

<?php
function separateImageChannel($imagePath, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->separateimagechannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

separateImageChannel($imagePath, \Imagick::CHANNEL_GREEN);

?>


Sepia tones an image

  • « Imagick::separateImageChannel
  • Imagick::setBackgroundColor »
  • PHP Manual
  • Imagick
  • Sepia tones an image

Imagick::sepiaToneImage

(PECL imagick 2.0.0)

Imagick::sepiaToneImage — Sepia tones an image

Описание

bool Imagick::sepiaToneImage ( float $threshold )

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by sepia toning. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the sepia toning. A threshold of 80 is a good starting point for a reasonable tone.

Список параметров

threshold

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::sepiaToneImage()

<?php
function sepiaToneImage($imagePath, $sepia) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sepiaToneImage($sepia);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the object's default background color

  • « Imagick::sepiaToneImage
  • Imagick::setColorspace »
  • PHP Manual
  • Imagick
  • Sets the object's default background color

Imagick::setBackgroundColor

(PECL imagick 2.0.0)

Imagick::setBackgroundColor — Sets the object's default background color

Описание

bool Imagick::setBackgroundColor ( mixed $background )

Sets the object's default background color.

Список параметров

background

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.


Set colorspace

  • « Imagick::setBackgroundColor
  • Imagick::setCompression »
  • PHP Manual
  • Imagick
  • Set colorspace

Imagick::setColorspace

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::setColorspace — Set colorspace

Описание

bool Imagick::setColorspace ( int $COLORSPACE )

Sets the global colorspace value for the object. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

COLORSPACE

One of the COLORSPACE constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the object's default compression type

  • « Imagick::setColorspace
  • Imagick::setCompressionQuality »
  • PHP Manual
  • Imagick
  • Sets the object's default compression type

Imagick::setCompression

(PECL imagick 2.0.0)

Imagick::setCompression — Sets the object's default compression type

Описание

bool Imagick::setCompression ( int $compression )

Sets the object's default compression type

Список параметров

compression

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the object's default compression quality

  • « Imagick::setCompression
  • Imagick::setFilename »
  • PHP Manual
  • Imagick
  • Sets the object's default compression quality

Imagick::setCompressionQuality

(PECL imagick 0.9.10-0.9.9)

Imagick::setCompressionQuality — Sets the object's default compression quality

Описание

bool Imagick::setCompressionQuality ( int $quality )

Sets the object's default compression quality.

Предостережение

This method only works for new images e.g. those created through Imagick::newPseudoImage. For existing images you should use Imagick::setImageCompressionQuality().

Список параметров

quality

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::setCompressionQuality()

<?php
function setCompressionQuality($imagePath, $quality) {

    $backgroundImagick = new \Imagick(realpath($imagePath));
    $imagick = new \Imagick();
    $imagick->setCompressionQuality($quality);
    $imagick->newPseudoImage(
        $backgroundImagick->getImageWidth(),
        $backgroundImagick->getImageHeight(),
        'canvas:white'
    );

    $imagick->compositeImage(
        $backgroundImagick,
        \Imagick::COMPOSITE_ATOP,
        0,
        0
    );

    $imagick->setFormat("jpg");
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the filename before you read or write the image

  • « Imagick::setCompressionQuality
  • Imagick::setFirstIterator »
  • PHP Manual
  • Imagick
  • Sets the filename before you read or write the image

Imagick::setFilename

(PECL imagick 2.0.0)

Imagick::setFilename — Sets the filename before you read or write the image

Описание

bool Imagick::setFilename ( string $filename )

Sets the filename before you read or write an image file.

Список параметров

filename

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the Imagick iterator to the first image

  • « Imagick::setFilename
  • Imagick::setFont »
  • PHP Manual
  • Imagick
  • Sets the Imagick iterator to the first image

Imagick::setFirstIterator

(PECL imagick 2.0.0)

Imagick::setFirstIterator — Sets the Imagick iterator to the first image

Описание

bool Imagick::setFirstIterator ( void )

Sets the Imagick iterator to the first image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets font

  • « Imagick::setFirstIterator
  • Imagick::setFormat »
  • PHP Manual
  • Imagick
  • Sets font

Imagick::setFont

(PECL imagick 2.1.0)

Imagick::setFont — Sets font

Описание

bool Imagick::setFont ( string $font )

Sets object's font property. This method can be used for example to set font for caption: pseudo-format. The font needs to be configured in ImageMagick configuration or a file by the name of font must exist. This method should not be confused with ImagickDraw::setFont() which sets the font for a specific ImagickDraw object. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Список параметров

font

Font name or a filename

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::getFont() - Возвращает название шрифта
  • ImagickDraw::setFont() - Sets the fully-specified font to use when annotating with text
  • ImagickDraw::getFont() - Returns the font

Примеры

Пример #1 A Imagick::setFont() example

Example of using Imagick::setFont

<?php
/* Create new imagick object */
$im = new Imagick();

/* Set the font for the object */
$im->setFont("example.ttf");

/* Create new caption */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Do something with the image */
?>


Sets the format of the Imagick object

  • « Imagick::setFont
  • Imagick::setGravity »
  • PHP Manual
  • Imagick
  • Sets the format of the Imagick object

Imagick::setFormat

(PECL imagick 2.0.0)

Imagick::setFormat — Sets the format of the Imagick object

Описание

bool Imagick::setFormat ( string $format )

Sets the format of the Imagick object.

Список параметров

format

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the gravity

  • « Imagick::setFormat
  • Imagick::setImage »
  • PHP Manual
  • Imagick
  • Sets the gravity

Imagick::setGravity

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::setGravity — Sets the gravity

Описание

bool Imagick::setGravity ( int $gravity )

Sets the global gravity property for the Imagick object. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.0 или старше.

Список параметров

gravity

The gravity property. Refer to the list of gravity constants.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Replaces image in the object

  • « Imagick::setGravity
  • Imagick::setImageAlphaChannel »
  • PHP Manual
  • Imagick
  • Replaces image in the object

Imagick::setImage

(PECL imagick 2.0.0)

Imagick::setImage — Replaces image in the object

Описание

bool Imagick::setImage ( Imagick $replace )

Replaces the current image sequence with the image from replace object.

Список параметров

replace

The replace Imagick object

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 A Imagick::setImage() example

An example of using Imagick::setImage()

<?php
/* Create the objects */
$image = new Imagick('source.jpg');
$replace = new Imagick('replace.jpg');

/* source.jpg is replaced with replace.jpg */
$image->setImage($replace);

/* output the image */
header('Content-type: image/jpeg');
echo $image;

?>


Sets image alpha channel

  • « Imagick::setImage
  • Imagick::setImageArtifact »
  • PHP Manual
  • Imagick
  • Sets image alpha channel

Imagick::setImageAlphaChannel

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::setImageAlphaChannel — Sets image alpha channel

Описание

bool Imagick::setImageAlphaChannel ( int $mode )

Activate or deactivate image alpha channel. The mode is one of the Imagick::ALPHACHANNEL_* constants. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

mode

One of the Imagick::ALPHACHANNEL_* constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::setImageMatte() - Sets the image matte channel
  • Imagick Alpha Channel Constants


Set image artifact

  • « Imagick::setImageAlphaChannel
  • Imagick::setImageAttribute »
  • PHP Manual
  • Imagick
  • Set image artifact

Imagick::setImageArtifact

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::setImageArtifact — Set image artifact

Описание

bool Imagick::setImageArtifact ( string $artifact , string $value )

Associates an artifact with the image. The difference between image properties and image artifacts is that properties are public and artifacts are private. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.5.7 или старше.

Список параметров

artifact

The name of the artifact

value

The value of the artifact

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::getImageArtifact() - Get image artifact
  • Imagick::deleteImageArtifact() - Delete image artifact

Примеры

Пример #1 Imagick::setImageArtifact()

<?php
function setImageArtifact() {

    $src1 = new \Imagick(realpath("./images/artifact/source1.png"));
    $src2 = new \Imagick(realpath("./images/artifact/source2.png"));

    $src2->setImageVirtualPixelMethod(\Imagick::VIRTUALPIXELMETHOD_TRANSPARENT);
    $src2->setImageArtifact('compose:args', "1,0,-0.5,0.5");
    $src1->compositeImage($src2, Imagick::COMPOSITE_MATHEMATICS, 0, 0);

    $src1->setImageFormat('png');
    header("Content-Type: image/png");
    echo $src1->getImagesBlob();
}

?>


Description

  • « Imagick::setImageArtifact
  • Imagick::setImageBackgroundColor »
  • PHP Manual
  • Imagick
  • Description

Imagick::setImageAttribute

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::setImageAttribute — Description

Описание

public void Imagick::setImageAttribute ( string $key , string $value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

key

value

Возвращаемые значения


Sets the image background color

  • « Imagick::setImageAttribute
  • Imagick::setImageBias »
  • PHP Manual
  • Imagick
  • Sets the image background color

Imagick::setImageBackgroundColor

(PECL imagick 2.0.0)

Imagick::setImageBackgroundColor — Sets the image background color

Описание

bool Imagick::setImageBackgroundColor ( mixed $background )

Sets the image background color.

Список параметров

background

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the parameter. Previous versions allow only an ImagickPixel object.


Sets the image bias for any method that convolves an image

  • « Imagick::setImageBackgroundColor
  • Imagick::setImageBiasQuantum »
  • PHP Manual
  • Imagick
  • Sets the image bias for any method that convolves an image

Imagick::setImageBias

(PECL imagick 2.0.0)

Imagick::setImageBias — Sets the image bias for any method that convolves an image

Описание

bool Imagick::setImageBias ( float $bias )

Sets the image bias for any method that convolves an image (e.g. Imagick::ConvolveImage()).

Список параметров

bias

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::setImageBias()

<?php
//requires ImageMagick version 6.9.0-1 to have an effect on convolveImage
function setImageBias($bias) {
    $imagick = new \Imagick(realpath("images/stack.jpg"));

    $xKernel = array(
        -0.70, 0, 0.70,
        -0.70, 0, 0.70,
        -0.70, 0, 0.70
    );

    $imagick->setImageBias($bias * \Imagick::getQuantum());
    $imagick->convolveImage($xKernel, \Imagick::CHANNEL_ALL);

    $imagick->setImageFormat('png');

    header('Content-type: image/png');
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::setImageBias
  • Imagick::setImageBluePrimary »
  • PHP Manual
  • Imagick
  • Description

Imagick::setImageBiasQuantum

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::setImageBiasQuantum — Description

Описание

public void Imagick::setImageBiasQuantum ( string $bias )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

bias

Возвращаемые значения


Sets the image chromaticity blue primary point

  • « Imagick::setImageBiasQuantum
  • Imagick::setImageBorderColor »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity blue primary point

Imagick::setImageBluePrimary

(PECL imagick 2.0.0)

Imagick::setImageBluePrimary — Sets the image chromaticity blue primary point

Описание

bool Imagick::setImageBluePrimary ( float $x , float $y )

Sets the image chromaticity blue primary point.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image border color

  • « Imagick::setImageBluePrimary
  • Imagick::setImageChannelDepth »
  • PHP Manual
  • Imagick
  • Sets the image border color

Imagick::setImageBorderColor

(PECL imagick 2.0.0)

Imagick::setImageBorderColor — Sets the image border color

Описание

bool Imagick::setImageBorderColor ( mixed $border )

Sets the image border color.

Список параметров

border

The border color

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.


Sets the depth of a particular image channel

  • « Imagick::setImageBorderColor
  • Imagick::setImageClipMask »
  • PHP Manual
  • Imagick
  • Sets the depth of a particular image channel

Imagick::setImageChannelDepth

(PECL imagick 2.0.0)

Imagick::setImageChannelDepth — Sets the depth of a particular image channel

Описание

bool Imagick::setImageChannelDepth ( int $channel , int $depth )

Sets the depth of a particular image channel.

Список параметров

channel

depth

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets image clip mask

  • « Imagick::setImageChannelDepth
  • Imagick::setImageColormapColor »
  • PHP Manual
  • Imagick
  • Sets image clip mask

Imagick::setImageClipMask

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::setImageClipMask — Sets image clip mask

Описание

bool Imagick::setImageClipMask ( Imagick $clip_mask )

Sets image clip mask from another Imagick object. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

clip_mask

The Imagick object containing the clip mask

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::setImageClipMask()

<?php
function setImageClipMask($imagePath) {
    $imagick = new \Imagick();
    $imagick->readImage(realpath($imagePath));

    $width = $imagick->getImageWidth();
    $height = $imagick->getImageHeight();

    $clipMask = new \Imagick();
    $clipMask->newPseudoImage(
        $width,
        $height,
        "canvas:transparent"
    );

    $draw = new \ImagickDraw();
    $draw->setFillColor('white');
    $draw->circle(
        $width / 2,
        $height / 2,
        ($width / 2) + ($width / 4),
        $height / 2
    );
    $clipMask->drawImage($draw);
    $imagick->setImageClipMask($clipMask);

    $imagick->negateImage(false);
    $imagick->setFormat("png");

    header("Content-Type: image/png");
    echo $imagick->getImagesBlob();

}

?>


Sets the color of the specified colormap index

  • « Imagick::setImageClipMask
  • Imagick::setImageColorspace »
  • PHP Manual
  • Imagick
  • Sets the color of the specified colormap index

Imagick::setImageColormapColor

(PECL imagick 2.0.0)

Imagick::setImageColormapColor — Sets the color of the specified colormap index

Описание

bool Imagick::setImageColormapColor ( int $index , ImagickPixel $color )

Sets the color of the specified colormap index.

Список параметров

index

color

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image colorspace

  • « Imagick::setImageColormapColor
  • Imagick::setImageCompose »
  • PHP Manual
  • Imagick
  • Sets the image colorspace

Imagick::setImageColorspace

(PECL imagick 2.0.0)

Imagick::setImageColorspace — Sets the image colorspace

Описание

bool Imagick::setImageColorspace ( int $colorspace )

Sets the image colorspace. This method should be used when creating new images. To change the colorspace of an existing image, you should use Imagick::transformImageColorspace().

Список параметров

colorspace

One of the COLORSPACE constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image composite operator

  • « Imagick::setImageColorspace
  • Imagick::setImageCompression »
  • PHP Manual
  • Imagick
  • Sets the image composite operator

Imagick::setImageCompose

(PECL imagick 2.0.0)

Imagick::setImageCompose — Sets the image composite operator

Описание

bool Imagick::setImageCompose ( int $compose )

Sets the image composite operator, useful for specifying how to composite the image thumbnail when using the Imagick::montageImage() method.

Список параметров

compose

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image compression

  • « Imagick::setImageCompose
  • Imagick::setImageCompressionQuality »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setImageCompression

(PECL imagick 2.0.0)

Imagick::setImageCompression — Sets the image compression

Описание

bool Imagick::setImageCompression ( int $compression )

Список параметров

compression

One of the COMPRESSION constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image compression quality

  • « Imagick::setImageCompression
  • Imagick::setImageDelay »
  • PHP Manual
  • Imagick
  • Sets the image compression quality

Imagick::setImageCompressionQuality

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::setImageCompressionQuality — Sets the image compression quality

Описание

bool Imagick::setImageCompressionQuality ( int $quality )

Sets the image compression quality.

Список параметров

quality

The image compression quality as an integer

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::setImageCompressionQuality()

<?php
function setImageCompressionQuality($imagePath, $quality) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageCompressionQuality($quality);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the image delay

  • « Imagick::setImageCompressionQuality
  • Imagick::setImageDepth »
  • PHP Manual
  • Imagick
  • Sets the image delay

Imagick::setImageDelay

(PECL imagick 2.0.0)

Imagick::setImageDelay — Sets the image delay

Описание

bool Imagick::setImageDelay ( int $delay )

Sets the image delay. For an animated image this is the amount of time that this frame of the image should be displayed for, before displaying the next frame.

The delay can be set individually for each frame in an image.

Список параметров

delay

The amount of time expressed in 'ticks' that the image should be displayed for. For animated GIFs there are 100 ticks per second, so a value of 20 would be 20/100 of a second aka 1/5th of a second.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Modify animated Gif with Imagick::setImageDelay()

<?php

// Modify an animated Gif so that it's frames are played at a variable speed,
// varying between being shown for 50ms down to 0ms, which will cause the frame
// to be skipped in most browsers.
$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$frameCount = 0;

foreach ($imagick as $frame) {
    $imagick->setImageDelay((($frameCount % 11) * 5));
    $frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/path/to/save/output.gif", true);

?>


Sets the image depth

  • « Imagick::setImageDelay
  • Imagick::setImageDispose »
  • PHP Manual
  • Imagick
  • Sets the image depth

Imagick::setImageDepth

(PECL imagick 2.0.0)

Imagick::setImageDepth — Sets the image depth

Описание

bool Imagick::setImageDepth ( int $depth )

Sets the image depth.

Список параметров

depth

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image disposal method

  • « Imagick::setImageDepth
  • Imagick::setImageExtent »
  • PHP Manual
  • Imagick
  • Sets the image disposal method

Imagick::setImageDispose

(PECL imagick 2.0.0)

Imagick::setImageDispose — Sets the image disposal method

Описание

bool Imagick::setImageDispose ( int $dispose )

Sets the image disposal method.

Список параметров

dispose

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image size

  • « Imagick::setImageDispose
  • Imagick::setImageFilename »
  • PHP Manual
  • Imagick
  • Sets the image size

Imagick::setImageExtent

(PECL imagick 2.0.0)

Imagick::setImageExtent — Sets the image size

Описание

bool Imagick::setImageExtent ( int $columns , int $rows )

Sets the image size (i.e. columns & rows).

Список параметров

columns

rows

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the filename of a particular image

  • « Imagick::setImageExtent
  • Imagick::setImageFormat »
  • PHP Manual
  • Imagick
  • Sets the filename of a particular image

Imagick::setImageFilename

(PECL imagick 2.0.0)

Imagick::setImageFilename — Sets the filename of a particular image

Описание

bool Imagick::setImageFilename ( string $filename )

Sets the filename of a particular image in a sequence.

Список параметров

filename

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the format of a particular image

  • « Imagick::setImageFilename
  • Imagick::setImageGamma »
  • PHP Manual
  • Imagick
  • Sets the format of a particular image

Imagick::setImageFormat

(PECL imagick 2.0.0)

Imagick::setImageFormat — Sets the format of a particular image

Описание

bool Imagick::setImageFormat ( string $format )

Sets the format of a particular image in a sequence.

Список параметров

format

String presentation of the image format. Format support depends on the ImageMagick installation.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image gamma

  • « Imagick::setImageFormat
  • Imagick::setImageGravity »
  • PHP Manual
  • Imagick
  • Sets the image gamma

Imagick::setImageGamma

(PECL imagick 2.0.0)

Imagick::setImageGamma — Sets the image gamma

Описание

bool Imagick::setImageGamma ( float $gamma )

Sets the image gamma.

Список параметров

gamma

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image gravity

  • « Imagick::setImageGamma
  • Imagick::setImageGreenPrimary »
  • PHP Manual
  • Imagick
  • Sets the image gravity

Imagick::setImageGravity

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::setImageGravity — Sets the image gravity

Описание

bool Imagick::setImageGravity ( int $gravity )

Sets the gravity property for the current image. This method can be used to set the gravity property for a single image sequence. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.4 или старше.

Список параметров

gravity

The gravity property. Refer to the list of gravity constants.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the image chromaticity green primary point

  • « Imagick::setImageGravity
  • Imagick::setImageIndex »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity green primary point

Imagick::setImageGreenPrimary

(PECL imagick 2.0.0)

Imagick::setImageGreenPrimary — Sets the image chromaticity green primary point

Описание

bool Imagick::setImageGreenPrimary ( float $x , float $y )

Sets the image chromaticity green primary point.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Set the iterator position

  • « Imagick::setImageGreenPrimary
  • Imagick::setImageInterlaceScheme »
  • PHP Manual
  • Imagick
  • Set the iterator position

Imagick::setImageIndex

(PECL imagick 2.0.0)

Imagick::setImageIndex — Set the iterator position

Описание

bool Imagick::setImageIndex ( int $index )

Set the iterator to the position in the image list specified with the index parameter.

This method has been deprecated. See Imagick::setIteratorIndex().

Список параметров

index

The position to set the iterator to

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image compression

  • « Imagick::setImageIndex
  • Imagick::setImageInterpolateMethod »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setImageInterlaceScheme

(PECL imagick 2.0.0)

Imagick::setImageInterlaceScheme — Sets the image compression

Описание

bool Imagick::setImageInterlaceScheme ( int $interlace_scheme )

Sets the image compression.

Список параметров

interlace_scheme

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image interpolate pixel method

  • « Imagick::setImageInterlaceScheme
  • Imagick::setImageIterations »
  • PHP Manual
  • Imagick
  • Sets the image interpolate pixel method

Imagick::setImageInterpolateMethod

(PECL imagick 2.0.0)

Imagick::setImageInterpolateMethod — Sets the image interpolate pixel method

Описание

bool Imagick::setImageInterpolateMethod ( int $method )

Sets the image interpolate pixel method.

Список параметров

method

The method is one of the Imagick::INTERPOLATE_* constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image iterations

  • « Imagick::setImageInterpolateMethod
  • Imagick::setImageMatte »
  • PHP Manual
  • Imagick
  • Sets the image iterations

Imagick::setImageIterations

(PECL imagick 2.0.0)

Imagick::setImageIterations — Sets the image iterations

Описание

bool Imagick::setImageIterations ( int $iterations )

Sets the number of iterations an animated image is repeated.

Список параметров

iterations

The number of iterations the image should loop over. Set to '0' to loop continuously.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Basic Imagick::setImageIterations() usage

<?php

$imagick = new Imagick(realpath("Test.gif"));

$imagick = $imagick->coalesceImages();
$imagick->setImageIterations(1);
$imagick = $imagick->deconstructImages();

$imagick->writeImages('/path/to/save/OnceOnly.gif', true);

?>


Sets the image matte channel

  • « Imagick::setImageIterations
  • Imagick::setImageMatteColor »
  • PHP Manual
  • Imagick
  • Sets the image matte channel

Imagick::setImageMatte

(PECL imagick 2.0.0)

Imagick::setImageMatte — Sets the image matte channel

Описание

bool Imagick::setImageMatte ( bool $matte )

Sets the image matte channel. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

matte

True activates the matte channel and false disables it.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image matte color

  • « Imagick::setImageMatte
  • Imagick::setImageOpacity »
  • PHP Manual
  • Imagick
  • Sets the image matte color

Imagick::setImageMatteColor

(PECL imagick 2.0.0)

Imagick::setImageMatteColor — Sets the image matte color

Описание

bool Imagick::setImageMatteColor ( mixed $matte )

Sets the image matte color.

Список параметров

matte

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the parameter. Previous versions allow only an ImagickPixel object.


Sets the image opacity level

  • « Imagick::setImageMatteColor
  • Imagick::setImageOrientation »
  • PHP Manual
  • Imagick
  • Sets the image opacity level

Imagick::setImageOpacity

(PECL imagick 2.0.0)

Imagick::setImageOpacity — Sets the image opacity level

Описание

bool Imagick::setImageOpacity ( float $opacity )

Sets the image to the specified opacity level. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.1 или старше. This method operates on all channels, which means that for example opacity value of 0.5 will set all transparent areas to partially opaque. To add transparency to areas that are not already transparent use Imagick::evaluateImage()

Список параметров

opacity

The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 A Imagick::setImageOpacity() example

An example of using Imagick::setImageOpacity()

<?php
/* Create the object */
$image = new Imagick('source.png');

/* Set the opacity */
$image->setImageOpacity(0.7);

/* output the image */
header('Content-type: image/png');
echo $image;

?>


Sets the image orientation

  • « Imagick::setImageOpacity
  • Imagick::setImagePage »
  • PHP Manual
  • Imagick
  • Sets the image orientation

Imagick::setImageOrientation

(PECL imagick 2.0.0)

Imagick::setImageOrientation — Sets the image orientation

Описание

bool Imagick::setImageOrientation ( int $orientation )

Sets the image orientation.

Список параметров

orientation

One of the orientation constants

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::setImageOrientation()

<?php
//Doesn't appear to do anything
function setImageOrientation($imagePath, $orientationType) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageOrientation($orientationType);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the page geometry of the image

  • « Imagick::setImageOrientation
  • Imagick::setImageProfile »
  • PHP Manual
  • Imagick
  • Sets the page geometry of the image

Imagick::setImagePage

(PECL imagick 2.0.0)

Imagick::setImagePage — Sets the page geometry of the image

Описание

bool Imagick::setImagePage ( int $width , int $height , int $x , int $y )

Sets the page geometry of the image.

Список параметров

width

height

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Adds a named profile to the Imagick object

  • « Imagick::setImagePage
  • Imagick::setImageProperty »
  • PHP Manual
  • Imagick
  • Adds a named profile to the Imagick object

Imagick::setImageProfile

(PECL imagick 2.0.0)

Imagick::setImageProfile — Adds a named profile to the Imagick object

Описание

bool Imagick::setImageProfile ( string $name , string $profile )

Adds a named profile to the Imagick object. If a profile with the same name already exists, it is replaced. This method differs from the Imagick::ProfileImage() method in that it does not apply any CMS color profiles.

Список параметров

name

profile

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets an image property

  • « Imagick::setImageProfile
  • Imagick::setImageRedPrimary »
  • PHP Manual
  • Imagick
  • Sets an image property

Imagick::setImageProperty

(PECL imagick 2.0.0)

Imagick::setImageProperty — Sets an image property

Описание

bool Imagick::setImageProperty ( string $name , string $value )

Sets a named property to the image. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.2 или старше.

Список параметров

name

value

Примеры

Пример #1 Using Imagick::setImageProperty():

Setting and getting image properties

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");

$image->setImageProperty('Exif:Make', 'Imagick');
echo $image->getImageProperty('Exif:Make');
?>

Смотрите также

  • Imagick::getImageProperty() - Returns the named image property

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image chromaticity red primary point

  • « Imagick::setImageProperty
  • Imagick::setImageRenderingIntent »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity red primary point

Imagick::setImageRedPrimary

(PECL imagick 2.0.0)

Imagick::setImageRedPrimary — Sets the image chromaticity red primary point

Описание

bool Imagick::setImageRedPrimary ( float $x , float $y )

Sets the image chromaticity red primary point.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image rendering intent

  • « Imagick::setImageRedPrimary
  • Imagick::setImageResolution »
  • PHP Manual
  • Imagick
  • Sets the image rendering intent

Imagick::setImageRenderingIntent

(PECL imagick 2.0.0)

Imagick::setImageRenderingIntent — Sets the image rendering intent

Описание

bool Imagick::setImageRenderingIntent ( int $rendering_intent )

Sets the image rendering intent.

Список параметров

rendering_intent

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image resolution

  • « Imagick::setImageRenderingIntent
  • Imagick::setImageScene »
  • PHP Manual
  • Imagick
  • Sets the image resolution

Imagick::setImageResolution

(PECL imagick 2.0.0)

Imagick::setImageResolution — Sets the image resolution

Описание

bool Imagick::setImageResolution ( float $x_resolution , float $y_resolution )

Sets the image resolution.

Список параметров

x_resolution

y_resolution

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::setImageResolution()

<?php
function setImageResolution($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageResolution(50, 50);

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sets the image scene

  • « Imagick::setImageResolution
  • Imagick::setImageTicksPerSecond »
  • PHP Manual
  • Imagick
  • Sets the image scene

Imagick::setImageScene

(PECL imagick 2.0.0)

Imagick::setImageScene — Sets the image scene

Описание

bool Imagick::setImageScene ( int $scene )

Sets the image scene.

Список параметров

scene

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image ticks-per-second

  • « Imagick::setImageScene
  • Imagick::setImageType »
  • PHP Manual
  • Imagick
  • Sets the image ticks-per-second

Imagick::setImageTicksPerSecond

(PECL imagick 2.0.0)

Imagick::setImageTicksPerSecond — Sets the image ticks-per-second

Описание

bool Imagick::setImageTicksPerSecond ( int $ticks_per_second )

Adjust the amount of time that a frame of an animated image is displayed for.

Замечание:

For animated GIFs, this function does not change the number of 'image ticks' per second, which is always defined as 100. Instead it adjusts the amount of time that the frame is displayed for to simulate the change in 'ticks per second'.

For example, for an animated GIF where each frame is displayed for 20 ticks (1/5 of a second) when this method is called on each frame of that image with an argument of 50 the frames are adjusted to be displayed for 40 ticks (2/5 of a second) and the animation will play at half the original speed.

Список параметров

ticks_per_second

The duration for which an image should be displayed expressed in ticks per second.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Modify animated Gif with Imagick::setImageTicksPerSecond()

<?php

// Modify an animated gif so the first half of the gif is played at half the
// speed it currently is, and the second half to be played at double the speed
// it currently is

$imagick = new Imagick(realpath("Test.gif"));
$imagick = $imagick->coalesceImages();

$totalFrames = $imagick->getNumberImages();

$frameCount = 0;

foreach ($imagick as $frame) {
    $imagick->setImageTicksPerSecond(50);

    if ($frameCount < ($totalFrames / 2)) {
        // Modify the frame to be displayed for twice as long as it currently is
        $imagick->setImageTicksPerSecond(50);
    } else {
        // Modify the frame to be displayed for half as long as it currently is
        $imagick->setImageTicksPerSecond(200);
    }

    $frameCount++;
}

$imagick = $imagick->deconstructImages();

$imagick->writeImages("/path/to/save/output.gif", true);

?>


Sets the image type

  • « Imagick::setImageTicksPerSecond
  • Imagick::setImageUnits »
  • PHP Manual
  • Imagick
  • Sets the image type

Imagick::setImageType

(PECL imagick 2.0.0)

Imagick::setImageType — Sets the image type

Описание

bool Imagick::setImageType ( int $image_type )

Sets the image type.

Список параметров

image_type

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image units of resolution

  • « Imagick::setImageType
  • Imagick::setImageVirtualPixelMethod »
  • PHP Manual
  • Imagick
  • Sets the image units of resolution

Imagick::setImageUnits

(PECL imagick 2.0.0)

Imagick::setImageUnits — Sets the image units of resolution

Описание

bool Imagick::setImageUnits ( int $units )

Sets the image units of resolution.

Список параметров

units

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image virtual pixel method

  • « Imagick::setImageUnits
  • Imagick::setImageWhitePoint »
  • PHP Manual
  • Imagick
  • Sets the image virtual pixel method

Imagick::setImageVirtualPixelMethod

(PECL imagick 2.0.0)

Imagick::setImageVirtualPixelMethod — Sets the image virtual pixel method

Описание

bool Imagick::setImageVirtualPixelMethod ( int $method )

Sets the image virtual pixel method.

Список параметров

method

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image chromaticity white point

  • « Imagick::setImageVirtualPixelMethod
  • Imagick::setInterlaceScheme »
  • PHP Manual
  • Imagick
  • Sets the image chromaticity white point

Imagick::setImageWhitePoint

(PECL imagick 2.0.0)

Imagick::setImageWhitePoint — Sets the image chromaticity white point

Описание

bool Imagick::setImageWhitePoint ( float $x , float $y )

Sets the image chromaticity white point.

Список параметров

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Sets the image compression

  • « Imagick::setImageWhitePoint
  • Imagick::setIteratorIndex »
  • PHP Manual
  • Imagick
  • Sets the image compression

Imagick::setInterlaceScheme

(PECL imagick 2.0.0)

Imagick::setInterlaceScheme — Sets the image compression

Описание

bool Imagick::setInterlaceScheme ( int $interlace_scheme )

Sets the image compression.

Список параметров

interlace_scheme

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Set the iterator position

  • « Imagick::setInterlaceScheme
  • Imagick::setLastIterator »
  • PHP Manual
  • Imagick
  • Set the iterator position

Imagick::setIteratorIndex

(PECL imagick 2.0.0)

Imagick::setIteratorIndex — Set the iterator position

Описание

bool Imagick::setIteratorIndex ( int $index )

Set the iterator to the position in the image list specified with the index parameter. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

index

The position to set the iterator to

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Using Imagick::setIteratorIndex():

Create images, set and get the iterator index

<?php
$im = new Imagick();
$im->newImage(100, 100, new ImagickPixel("red"));
$im->newImage(100, 100, new ImagickPixel("green"));
$im->newImage(100, 100, new ImagickPixel("blue"));

$im->setIteratorIndex(1);
echo $im->getIteratorIndex();
?>

Смотрите также

  • Imagick::getIteratorIndex() - Gets the index of the current active image
  • Imagick::getImageIndex() - Gets the index of the current active image
  • Imagick::setImageIndex() - Set the iterator position


Sets the Imagick iterator to the last image

  • « Imagick::setIteratorIndex
  • Imagick::setOption »
  • PHP Manual
  • Imagick
  • Sets the Imagick iterator to the last image

Imagick::setLastIterator

(PECL imagick 2.0.1)

Imagick::setLastIterator — Sets the Imagick iterator to the last image

Описание

bool Imagick::setLastIterator ( void )

Sets the Imagick iterator to the last image.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Set an option

  • « Imagick::setLastIterator
  • Imagick::setPage »
  • PHP Manual
  • Imagick
  • Set an option

Imagick::setOption

(PECL imagick 2.0.0)

Imagick::setOption — Set an option

Описание

bool Imagick::setOption ( string $key , string $value )

Associates one or more options with the wand.

Список параметров

key

value

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Attempt to reach '$extent' sizeImagick::setOption()

<?php
    function renderJPG($extent) {
        $imagePath = $this->control->getImagePath();
        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('jpg');
        $imagick->setOption('jpeg:extent', $extent);
        header("Content-Type: image/jpg");
        echo $imagick->getImageBlob();
    }

?>

Пример #2 Imagick::setOption()

<?php
    function renderPNG($imagePath, $format) {

        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('png');
        $imagick->setOption('png:format', $format);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

    //Save as 64bit PNG.
    renderPNG($imagePath, 'png64');

?>

Пример #3 Imagick::setOption()

<?php
    function renderCustomBitDepthPNG() {
        $imagePath = $this->control->getImagePath();
        $imagick = new \Imagick(realpath($imagePath));
        $imagick->setImageFormat('png');

        $imagick->setOption('png:bit-depth', '16');
        $imagick->setOption('png:color-type', 6);
        header("Content-Type: image/png");
        $crash = true;
        if ($crash) {
            echo $imagick->getImageBlob();
        }
        else {
            $tempFilename = tempnam('./', 'imagick');
            $imagick->writeimage(realpath($tempFilename));
            echo file_get_contents($tempFilename);
        }
    }

?>


Sets the page geometry of the Imagick object

  • « Imagick::setOption
  • Imagick::setPointSize »
  • PHP Manual
  • Imagick
  • Sets the page geometry of the Imagick object

Imagick::setPage

(PECL imagick 2.0.0)

Imagick::setPage — Sets the page geometry of the Imagick object

Описание

bool Imagick::setPage ( int $width , int $height , int $x , int $y )

Sets the page geometry of the Imagick object.

Список параметров

width

height

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets point size

  • « Imagick::setPage
  • Imagick::setProgressMonitor »
  • PHP Manual
  • Imagick
  • Sets point size

Imagick::setPointSize

(PECL imagick 2.1.0)

Imagick::setPointSize — Sets point size

Описание

bool Imagick::setPointSize ( float $point_size )

Sets object's point size property. This method can be used for example to set font size for caption: pseudo-format. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.7 или старше.

Список параметров

point_size

Point size

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::getPointSize() - Возвращает размер точки

Примеры

Пример #1 A Imagick::setPointSize() example

Example of using Imagick::setPointSize

<?php
/* Create new imagick object */
$im = new Imagick();

/* Set the font for the object */
$im->setFont("example.ttf");

/* Set the point size */
$im->setPointSize(12);

/* Create new caption */
$im->newPseudoImage(100, 100, "caption:Hello");

/* Do something with the image */
?>


Description

  • « Imagick::setPointSize
  • Imagick::setRegistry »
  • PHP Manual
  • Imagick
  • Description

Imagick::setProgressMonitor

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::setProgressMonitor — Description

Описание

public void Imagick::setProgressMonitor ( callable $callback )

Set a callback that will be called during the processing of the Imagick image.

Список параметров

callback

The progress function to call. It should return true if image processing should continue, or false if it should be cancelled. The offset parameter indicates the progress and the span parameter indicates the total amount of work needed to be done.

bool callback ( mixed $offset , mixed $span )
Предостережение

The values passed to the callback function are not consistent. In particular the span parameter can increase during image processing. Because of this calculating the percentage complete of an image operation is not trivial.

Возвращаемые значения

Примеры

Пример #1 Imagick::setProgressMonitor()

<?php
        $abortReason = null;

        try {
            $imagick = new \Imagick(realpath($this->control->getImagePath()));
            $startTime = time();

            $callback = function ($offset, $span)  use ($startTime, &$abortReason) {
                if (((100 * $offset) / $span)  > 20) {
                    $abortReason = "Processing reached 20%";
                    return false;
                }

                $nowTime = time();

                if ($nowTime - $startTime > 5) {
                    $abortReason = "Image processing took more than 5 seconds";
                    return false;
                }
                if (($offset % 5) == 0) {
                    echo "Progress: $offset / $span <br/>";
                }
                return true;
            };

            $imagick->setProgressMonitor($callback);

            $imagick->waveImage(2, 15);

            echo "Data len is: ".strlen($imagick->getImageBlob());
        }
        catch(\ImagickException $e) {
            if ($abortReason != null) {
                echo "Image processing was aborted: ".$abortReason."<br/>";
            }
            else {
                echo "ImagickException caught: ".$e->getMessage()." Exception type is ".get_class($e);
            }
        }

?>


Description

  • « Imagick::setProgressMonitor
  • Imagick::setResolution »
  • PHP Manual
  • Imagick
  • Description

Imagick::setRegistry

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::setRegistry — Description

Описание

public static void Imagick::setRegistry ( string $key , string $value )

Sets the ImageMagick registry entry named key to value. This is most useful for setting "temporary-path" which controls where ImageMagick creates temporary images e.g. while processing PDFs.

Список параметров

key

value

Возвращаемые значения


Sets the image resolution

  • « Imagick::setRegistry
  • Imagick::setResourceLimit »
  • PHP Manual
  • Imagick
  • Sets the image resolution

Imagick::setResolution

(PECL imagick 2.0.0)

Imagick::setResolution — Sets the image resolution

Описание

bool Imagick::setResolution ( float $x_resolution , float $y_resolution )

Sets the image resolution.

Список параметров

x_resolution

The horizontal resolution.

y_resolution

The vertical resolution.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примечания

Imagick::setResolution() must be called before loading or creating an image.

Смотрите также

  • Imagick::setImageResolution() - Sets the image resolution
  • Imagick::getImageResolution() - Gets the image X and Y resolution


Sets the limit for a particular resource in megabytes

  • « Imagick::setResolution
  • Imagick::setSamplingFactors »
  • PHP Manual
  • Imagick
  • Sets the limit for a particular resource in megabytes

Imagick::setResourceLimit

(PECL imagick 2.0.0)

Imagick::setResourceLimit — Sets the limit for a particular resource in megabytes

Описание

bool Imagick::setResourceLimit ( int $type , int $limit )

This method is used to modify the resource limits of the underlying ImageMagick library.

Список параметров

type

Refer to the list of resourcetype constants.

limit

The resource limit. The unit depends on the type of the resource being limited.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image sampling factors

  • « Imagick::setResourceLimit
  • Imagick::setSize »
  • PHP Manual
  • Imagick
  • Sets the image sampling factors

Imagick::setSamplingFactors

(PECL imagick 2.0.0)

Imagick::setSamplingFactors — Sets the image sampling factors

Описание

bool Imagick::setSamplingFactors ( array $factors )

Sets the image sampling factors.

Список параметров

factors

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::setSamplingFactors()

<?php
function setSamplingFactors($imagePath) {

    $imagePath = "../imagick/images/FineDetail.png";
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setImageFormat('jpg');
    $imagick->setSamplingFactors(array('2x2', '1x1', '1x1'));

    $compressed = $imagick->getImageBlob();

    $reopen = new \Imagick();
    $reopen->readImageBlob($compressed);

    $reopen->resizeImage(
        $reopen->getImageWidth() * 4,
        $reopen->getImageHeight() * 4,
        \Imagick::FILTER_POINT,
        1
    );

    header("Content-Type: image/jpg");
    echo $reopen->getImageBlob();
}

?>


Sets the size of the Imagick object

  • « Imagick::setSamplingFactors
  • Imagick::setSizeOffset »
  • PHP Manual
  • Imagick
  • Sets the size of the Imagick object

Imagick::setSize

(PECL imagick 2.0.0)

Imagick::setSize — Sets the size of the Imagick object

Описание

bool Imagick::setSize ( int $columns , int $rows )

Sets the size of the Imagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK.

Список параметров

columns

rows

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the size and offset of the Imagick object

  • « Imagick::setSize
  • Imagick::setType »
  • PHP Manual
  • Imagick
  • Sets the size and offset of the Imagick object

Imagick::setSizeOffset

(PECL imagick 2.0.0)

Imagick::setSizeOffset — Sets the size and offset of the Imagick object

Описание

bool Imagick::setSizeOffset ( int $columns , int $rows , int $offset )

Sets the size and offset of the Imagick object. Set it before you read a raw image format such as RGB, GRAY, or CMYK. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

columns

The width in pixels.

rows

The height in pixels.

offset

The image offset.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Sets the image type attribute

  • « Imagick::setSizeOffset
  • Imagick::shadeImage »
  • PHP Manual
  • Imagick
  • Sets the image type attribute

Imagick::setType

(PECL imagick 2.0.0)

Imagick::setType — Sets the image type attribute

Описание

bool Imagick::setType ( int $image_type )

Sets the image type attribute.

Список параметров

image_type

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Creates a 3D effect

  • « Imagick::setType
  • Imagick::shadowImage »
  • PHP Manual
  • Imagick
  • Creates a 3D effect

Imagick::shadeImage

(PECL imagick 2.0.0)

Imagick::shadeImage — Creates a 3D effect

Описание

bool Imagick::shadeImage ( bool $gray , float $azimuth , float $elevation )

Shines a distant light on an image to create a three-dimensional effect. You control the positioning of the light with azimuth and elevation; azimuth is measured in degrees off the x axis and elevation is measured in pixels above the Z axis. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

gray

A value other than zero shades the intensity of each pixel.

azimuth

Defines the light source direction.

elevation

Defines the light source direction.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Throws ImagickException on failure.

Примеры

Пример #1 Imagick::shadeImage()

<?php
function shadeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shadeImage(true, 45, 20);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Simulates an image shadow

  • « Imagick::shadeImage
  • Imagick::sharpenImage »
  • PHP Manual
  • Imagick
  • Simulates an image shadow

Imagick::shadowImage

(PECL imagick 2.0.0)

Imagick::shadowImage — Simulates an image shadow

Описание

bool Imagick::shadowImage ( float $opacity , float $sigma , int $x , int $y )

Simulates an image shadow.

Список параметров

opacity

sigma

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::shadowImage()

<?php
function shadowImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shadowImage(0.4, 10, 50, 5);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Sharpens an image

  • « Imagick::shadowImage
  • Imagick::shaveImage »
  • PHP Manual
  • Imagick
  • Sharpens an image

Imagick::sharpenImage

(PECL imagick 2.0.0)

Imagick::sharpenImage — Sharpens an image

Описание

bool Imagick::sharpenImage ( float $radius , float $sigma [, int $channel = Imagick::CHANNEL_ALL ] )

Sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, the radius should be larger than sigma. Use a radius of 0 and Imagick::sharpenImage() selects a suitable radius for you.

Список параметров

radius

sigma

channel

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::sharpenImage()

<?php
function sharpenImage($imagePath, $radius, $sigma, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sharpenimage($radius, $sigma, $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Shaves pixels from the image edges

  • « Imagick::sharpenImage
  • Imagick::shearImage »
  • PHP Manual
  • Imagick
  • Shaves pixels from the image edges

Imagick::shaveImage

(PECL imagick 2.0.0)

Imagick::shaveImage — Shaves pixels from the image edges

Описание

bool Imagick::shaveImage ( int $columns , int $rows )

Shaves pixels from the image edges. It allocates the memory necessary for the new Image structure and returns a pointer to the new image.

Список параметров

columns

rows

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::shaveImage()

<?php
function shaveImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shaveImage(100, 50);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creating a parallelogram

  • « Imagick::shaveImage
  • Imagick::sigmoidalContrastImage »
  • PHP Manual
  • Imagick
  • Creating a parallelogram

Imagick::shearImage

(PECL imagick 2.0.0)

Imagick::shearImage — Creating a parallelogram

Описание

bool Imagick::shearImage ( mixed $background , float $x_shear , float $y_shear )

Slides one edge of an image along the X or Y axis, creating a parallelogram. An X direction shear slides an edge along the X axis, while a Y direction shear slides an edge along the Y axis. The amount of the shear is controlled by a shear angle. For X direction shears, x_shear is measured relative to the Y axis, and similarly, for Y direction shears y_shear is measured relative to the X axis. Empty triangles left over from shearing the image are filled with the background color.

Список параметров

background

The background color

x_shear

The number of degrees to shear on the x axis

y_shear

The number of degrees to shear on the y axis

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Примеры

Пример #1 Imagick::shearImage()

<?php
function shearImage($imagePath, $color, $shearX, $shearY) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->shearimage($color, $shearX, $shearY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Adjusts the contrast of an image

  • « Imagick::shearImage
  • Imagick::sketchImage »
  • PHP Manual
  • Imagick
  • Adjusts the contrast of an image

Imagick::sigmoidalContrastImage

(PECL imagick 2.0.0)

Imagick::sigmoidalContrastImage — Adjusts the contrast of an image

Описание

bool Imagick::sigmoidalContrastImage ( bool $sharpen , float $alpha , float $beta [, int $channel = Imagick::CHANNEL_ALL ] )

Adjusts the contrast of an image with a non-linear sigmoidal contrast algorithm. Increase the contrast of the image using a sigmoidal transfer function without saturating highlights or shadows. Contrast indicates how much to increase the contrast (0 is none; 3 is typical; 20 is pushing it); mid-point indicates where midtones fall in the resultant image (0 is white; 50 is middle-gray; 100 is black). Set sharpen to TRUE to increase the image contrast otherwise the contrast is reduced.

See also » ImageMagick v6 Examples - Image Transformations — Sigmoidal Non-linearity Contrast

Список параметров

sharpen

If true increase the contrast, if false decrease the contrast.

alpha

The amount of contrast to apply. 1 is very little, 5 is a significant amount, 20 is extreme.

beta

Where the midpoint of the gradient will be. This value should be in the range 0 to 1 - mutliplied by the quantum value for ImageMagick.

channel

Which color channels the contrast will be applied to.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Create a gradient image using Imagick::sigmoidalContrastImage() suitable for blending two images together smoothly, with the blending defined by $contrast and $the midpoint

<?php

function generateBlendImage($width, $height, $contrast = 10, $midpoint = 0.5) {
    $imagick = new Imagick();
    $imagick->newPseudoImage($width, $height, 'gradient:black-white');
    $quanta = $imagick->getQuantumRange();
    $imagick->sigmoidalContrastImage(true, $contrast, $midpoint * $quanta["quantumRangeLong"]);

    return $imagick;
}

?>

Ошибки

Вызывает ImagickException при ошибке.


Simulates a pencil sketch

  • « Imagick::sigmoidalContrastImage
  • Imagick::smushImages »
  • PHP Manual
  • Imagick
  • Simulates a pencil sketch

Imagick::sketchImage

(PECL imagick 2.0.0)

Imagick::sketchImage — Simulates a pencil sketch

Описание

bool Imagick::sketchImage ( float $radius , float $sigma , float $angle )

Simulates a pencil sketch. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Imagick::sketchImage() selects a suitable radius for you. Angle gives the angle of the blurring motion. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

radius

The radius of the Gaussian, in pixels, not counting the center pixel

sigma

The standard deviation of the Gaussian, in pixels.

angle

Apply the effect along this angle.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::sketchImage()

<?php
function sketchImage($imagePath, $radius, $sigma, $angle) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->sketchimage($radius, $sigma, $angle);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::sketchImage
  • Imagick::solarizeImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::smushImages

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::smushImages — Description

Описание

public Imagick Imagick::smushImages ( string $stack , string $offset )

Takes all images from the current image pointer to the end of the image list and smushs them to each other top-to-bottom if the stack parameter is true, otherwise left-to-right.

Список параметров

stack

offset

Возвращаемые значения

The new smushed image.

Примеры

Пример #1 Imagick::smushImages()

<?php
function smushImages($imagePath, $imagePath2) {

    $imagick = new \Imagick(realpath($imagePath));
    $imagick2 = new \Imagick(realpath($imagePath2));

    $imagick->addimage($imagick2);
    $smushed = $imagick->smushImages(false, 50);
    $smushed->setImageFormat('jpg');
    header("Content-Type: image/jpg");
    echo $smushed->getImageBlob();
}

?>


Applies a solarizing effect to the image

  • « Imagick::smushImages
  • Imagick::sparseColorImage »
  • PHP Manual
  • Imagick
  • Applies a solarizing effect to the image

Imagick::solarizeImage

(PECL imagick 2.0.0)

Imagick::solarizeImage — Applies a solarizing effect to the image

Описание

bool Imagick::solarizeImage ( int $threshold )

Applies a special effect to the image, similar to the effect achieved in a photo darkroom by selectively exposing areas of photo sensitive paper to light. Threshold ranges from 0 to QuantumRange and is a measure of the extent of the solarization.

Список параметров

threshold

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::solarizeImage()

<?php
function solarizeImage($imagePath, $solarizeThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->solarizeImage($solarizeThreshold * \Imagick::getQuantum());
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Interpolates colors

  • « Imagick::solarizeImage
  • Imagick::spliceImage »
  • PHP Manual
  • Imagick
  • Interpolates colors

Imagick::sparseColorImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::sparseColorImage — Interpolates colors

Описание

public bool Imagick::sparseColorImage ( int $SPARSE_METHOD , array $arguments [, int $channel = Imagick::CHANNEL_DEFAULT ] )

Given the arguments array containing numeric values this method interpolates the colors found at those coordinates across the whole image using sparse_method. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.4.5 или старше.

Список параметров

SPARSE_METHOD

Refer to this list of sparse method constants

arguments

An array containing the coordinates. The array is in format array(1,1, 2,45)

CHANNEL

Передайте любую корректную для вашего режима канала константу. Для применения к более чем одному каналу, комбинируйте константы каналов с помощью побитовых операторов. По умолчанию равно Imagick::CHANNEL_DEFAULT. Обратитесь к списку констант каналов

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

<?php
    function renderImageBarycentric2() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(
            400, 400,
            $points,
            \Imagick::SPARSECOLORMETHOD_BARYCENTRIC
        );
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Пример #2 SPARSECOLORMETHOD_BILINEAR Imagick::sparseColorImage()

<?php
    function renderImageBilinear() {
        $points = [[0.30, 0.10, 'red'], [0.10, 0.80, 'blue'], [0.70, 0.60, 'lime'], [0.80, 0.20, 'yellow'],];
        $imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_BILINEAR);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Пример #3 SPARSECOLORMETHOD_SPEPARDS Imagick::sparseColorImage()

<?php
    function renderImageShepards() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(600, 600, $points, \Imagick::SPARSECOLORMETHOD_SPEPARDS);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Пример #4 SPARSECOLORMETHOD_VORONOI Imagick::sparseColorImage()

<?php
    function renderImageVoronoi() {
        $points = [
            [0.30, 0.10, 'red'],
            [0.10, 0.80, 'blue'],
            [0.70, 0.60, 'lime'],
            [0.80, 0.20, 'yellow'],
        ];
        $imagick = createGradientImage(500, 500, $points, \Imagick::SPARSECOLORMETHOD_VORONOI);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Пример #5 SPARSECOLORMETHOD_BARYCENTRIC Imagick::sparseColorImage()

<?php
    function renderImageBarycentric() {
        $points = [
            [0, 0, 'skyblue'],
            [-1, 1, 'skyblue'],
            [1, 1, 'black'],
        ];
        $imagick = createGradientImage(600, 200, $points, \Imagick::SPARSECOLORMETHOD_BARYCENTRIC);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }

?>

Пример #6 createGradientImage is used by other examples. Imagick::sparseColorImage()

<?php
function createGradientImage($width, $height, $colorPoints, $sparseMethod, $absolute = false) {

    $imagick = new \Imagick();
    $imagick->newImage($width, $height, "white");
    $imagick->setImageFormat("png");

    $barycentricPoints = array();

    foreach ($colorPoints as $colorPoint) {

        if ($absolute == true) {
            $barycentricPoints[] = $colorPoint[0];
            $barycentricPoints[] = $colorPoint[1];
        }
        else {
            $barycentricPoints[] = $colorPoint[0] * $width;
            $barycentricPoints[] = $colorPoint[1] * $height;
        }

        if (is_string($colorPoint[2])) {
            $imagickPixel = new \ImagickPixel($colorPoint[2]);
        }
        else if ($colorPoint[2] instanceof \ImagickPixel) {
            $imagickPixel = $colorPoint[2];
        }
        else{
            $errorMessage = sprintf(
                "Value %s is neither a string nor an ImagickPixel class. Cannot use as a color.",
                $colorPoint[2]
            );

            throw new \InvalidArgumentException(
                $errorMessage
            );
        }

        $red = $imagickPixel->getColorValue(\Imagick::COLOR_RED);
        $green = $imagickPixel->getColorValue(\Imagick::COLOR_GREEN);
        $blue = $imagickPixel->getColorValue(\Imagick::COLOR_BLUE);
        $alpha = $imagickPixel->getColorValue(\Imagick::COLOR_ALPHA);

        $barycentricPoints[] = $red;
        $barycentricPoints[] = $green;
        $barycentricPoints[] = $blue;
        $barycentricPoints[] = $alpha;
    }

    $imagick->sparseColorImage($sparseMethod, $barycentricPoints);

    return $imagick;
}

?>


Splices a solid color into the image

  • « Imagick::sparseColorImage
  • Imagick::spreadImage »
  • PHP Manual
  • Imagick
  • Splices a solid color into the image

Imagick::spliceImage

(PECL imagick 2.0.0)

Imagick::spliceImage — Splices a solid color into the image

Описание

bool Imagick::spliceImage ( int $width , int $height , int $x , int $y )

Splices a solid color into the image.

Список параметров

width

height

x

y

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::spliceImage()

<?php
function spliceImage($imagePath, $startX, $startY, $width, $height) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->spliceImage($width, $height, $startX, $startY);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Randomly displaces each pixel in a block

  • « Imagick::spliceImage
  • Imagick::statisticImage »
  • PHP Manual
  • Imagick
  • Randomly displaces each pixel in a block

Imagick::spreadImage

(PECL imagick 2.0.0)

Imagick::spreadImage — Randomly displaces each pixel in a block

Описание

bool Imagick::spreadImage ( float $radius )

Special effects method that randomly displaces each pixel in a block defined by the radius parameter.

Список параметров

radius

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::spreadImage()

<?php
function spreadImage($imagePath, $radius) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->spreadImage($radius);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Description

  • « Imagick::spreadImage
  • Imagick::steganoImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::statisticImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::statisticImage — Description

Описание

public void Imagick::statisticImage ( int $type , int $width , int $height [, string $CHANNEL = Imagick::CHANNEL_DEFAULT ] )

Replace each pixel with corresponding statistic from the neighborhood of the specified width and height.

Список параметров

type

width

height

CHANNEL

Возвращаемые значения

Примеры

Пример #1 Imagick::statisticImage()

<?php
function statisticImage($imagePath, $statisticType, $width, $height, $channel) {
    $imagick = new \Imagick(realpath($imagePath));

    $imagick->statisticImage(
        $statisticType,
        $width,
        $height,
        $channel
    );

    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

statisticImage($imagePath, \Imagick::STATISTIC_MEDIAN, 5, 5, \Imagick::CHANNEL_DEFAULT);

?>


Hides a digital watermark within the image

  • « Imagick::statisticImage
  • Imagick::stereoImage »
  • PHP Manual
  • Imagick
  • Hides a digital watermark within the image

Imagick::steganoImage

(PECL imagick 2.0.0)

Imagick::steganoImage — Hides a digital watermark within the image

Описание

Imagick Imagick::steganoImage ( Imagick $watermark_wand , int $offset )

Hides a digital watermark within the image. Recover the hidden watermark later to prove that the authenticity of an image. Offset defines the start position within the image to hide the watermark.

Список параметров

watermark_wand

offset

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Composites two images

  • « Imagick::steganoImage
  • Imagick::stripImage »
  • PHP Manual
  • Imagick
  • Composites two images

Imagick::stereoImage

(PECL imagick 2.0.0)

Imagick::stereoImage — Composites two images

Описание

bool Imagick::stereoImage ( Imagick $offset_wand )

Composites two images and produces a single image that is the composite of a left and right image of a stereo pair.

Список параметров

offset_wand

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Strips an image of all profiles and comments

  • « Imagick::stereoImage
  • Imagick::subImageMatch »
  • PHP Manual
  • Imagick
  • Strips an image of all profiles and comments

Imagick::stripImage

(PECL imagick 2.0.0)

Imagick::stripImage — Strips an image of all profiles and comments

Описание

bool Imagick::stripImage ( void )

Strips an image of all profiles and comments.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.


Description

  • « Imagick::stripImage
  • Imagick::swirlImage »
  • PHP Manual
  • Imagick
  • Description

Imagick::subImageMatch

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::subImageMatch — Description

Описание

public Imagick Imagick::subImageMatch ( Imagick $Imagick [, array &$offset [, float &$similarity ]] )

Searches for a subimage in the current image and returns a similarity image such that an exact match location is completely white and if none of the pixels match, black, otherwise some gray level in-between. You can also pass in the optional parameters bestMatch and similarity. After calling the function similarity will be set to the 'score' of the similarity between the subimage and the matching position in the larger image, bestMatch will contain an associative array with elements x, y, width, height that describe the matching region.

Список параметров

Imagick

offset

similarity

A new image that displays the amount of similarity at each pixel.

Возвращаемые значения

Примеры

Пример #1 Imagick::subImageMatch()

<?php
function subImageMatch($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick2 = clone $imagick;
    $imagick2->cropimage(40, 40, 250, 110);
    $imagick2->vignetteimage(0, 1, 3, 3);

    $similarity = null;
    $bestMatch = null;
    $comparison = $imagick->subImageMatch($imagick2, $bestMatch, $similarity);

    $comparison->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Swirls the pixels about the center of the image

  • « Imagick::subImageMatch
  • Imagick::textureImage »
  • PHP Manual
  • Imagick
  • Swirls the pixels about the center of the image

Imagick::swirlImage

(PECL imagick 2.0.0)

Imagick::swirlImage — Swirls the pixels about the center of the image

Описание

bool Imagick::swirlImage ( float $degrees )

Swirls the pixels about the center of the image, where degrees indicates the sweep of the arc through which each pixel is moved. You get a more dramatic effect as the degrees move from 1 to 360.

Список параметров

degrees

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::swirlImage()

<?php
function swirlImage($imagePath, $swirl) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->swirlImage($swirl);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Repeatedly tiles the texture image

  • « Imagick::swirlImage
  • Imagick::thresholdImage »
  • PHP Manual
  • Imagick
  • Repeatedly tiles the texture image

Imagick::textureImage

(PECL imagick 2.0.0)

Imagick::textureImage — Repeatedly tiles the texture image

Описание

bool Imagick::textureImage ( Imagick $texture_wand )

Repeatedly tiles the texture image across and down the image canvas.

Список параметров

texture_wand

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::textureImage()

<?php
function textureImage($imagePath) {
    $image = new \Imagick();
    $image->newImage(640, 480, new \ImagickPixel('pink'));
    $image->setImageFormat("jpg");
    $texture = new \Imagick(realpath($imagePath));
    $texture->scaleimage($image->getimagewidth() / 4, $image->getimageheight() / 4);
    $image = $image->textureImage($texture);
    header("Content-Type: image/jpg");
    echo $image;
}

?>


Изменяет отдельные пиксели на основе порогового значения

  • « Imagick::textureImage
  • Imagick::thumbnailImage »
  • PHP Manual
  • Imagick
  • Изменяет отдельные пиксели на основе порогового значения

Imagick::thresholdImage

(PECL imagick 2.0.0)

Imagick::thresholdImage — Изменяет отдельные пиксели на основе порогового значения

Описание

bool Imagick::thresholdImage ( float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )

Изменяет отдельные пиксели в зависимости от их интенсивности по сравнению с пороговым значением. Результатом будет высоко-контрастное, двух цветное изображение.

Список параметров

threshold

channel

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::thresholdImage()

<?php
function thresholdimage($imagePath, $threshold, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->thresholdimage($threshold * \Imagick::getQuantum(), $channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Changes the size of an image

  • « Imagick::thresholdImage
  • Imagick::tintImage »
  • PHP Manual
  • Imagick
  • Changes the size of an image

Imagick::thumbnailImage

(PECL imagick 2.0.0)

Imagick::thumbnailImage — Changes the size of an image

Описание

bool Imagick::thumbnailImage ( int $columns , int $rows [, bool $bestfit = false [, bool $fill = false ]] )

Changes the size of an image to the given dimensions and removes any associated profiles. The goal is to produce small, low cost thumbnail images suited for display on the Web. If TRUE is given as a third parameter then columns and rows parameters are used as maximums for each side. Both sides will be scaled down until they match or are smaller than the parameter given for the side.

Замечание: Поведение параметра bestfit было изменено в Imagick 3.0.0. До этой версии при изменении изображения размером 200x150 до 400x300 никаких операций не происходило. В Imagick 3.0.0 и далее изображение будет масштабировано до размеров 400x300, так как это наилучшим образом соответствует ("best fit") данным размерам. Если используется параметр bestfit, то ширина и высота также должны быть определены.

Список параметров

columns

Image width

rows

Image height

bestfit

Whether to force maximum values

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::thumbnailImage()

<?php
function thumbnailImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->setbackgroundcolor('rgb(64, 64, 64)');
    $imagick->thumbnailImage(100, 100, true, true);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies a color vector to each pixel in the image

  • « Imagick::thumbnailImage
  • Imagick::__toString »
  • PHP Manual
  • Imagick
  • Applies a color vector to each pixel in the image

Imagick::tintImage

(PECL imagick 2.0.0)

Imagick::tintImage — Applies a color vector to each pixel in the image

Описание

bool Imagick::tintImage ( mixed $tint , mixed $opacity )

Applies a color vector to each pixel in the image. The length of the vector is 0 for black and white and at its maximum for the midtones. The vector weighing function is f(x)=(1-(4.0*((x-0.5)*(x-0.5)))).

Список параметров

tint

opacity

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as the first parameter and a float representing the opacity value as the second parameter. Previous versions allow only an ImagickPixel objects.

Примеры

Пример #1 Imagick::tintImage()

<?php
function tintImage($r, $g, $b, $a) {
    $a = $a / 100;

    $imagick = new \Imagick();
    $imagick->newPseudoImage(400, 400, 'gradient:black-white');

    $tint = new \ImagickPixel("rgb($r, $g, $b)");
    $opacity = new \ImagickPixel("rgb(128, 128, 128, $a)");
    $imagick->tintImage($tint, $opacity);
    $imagick->setImageFormat('png');
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Returns the image as a string.

  • « Imagick::tintImage
  • Imagick::transformImage »
  • PHP Manual
  • Imagick
  • Returns the image as a string.

Imagick::__toString

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::__toString — Returns the image as a string.

Описание

string Imagick::__toString ( void )

Returns the current image as string. This will only return a single image; it should not be used for Imagick objects that contain multiple images e.g. an animated GIF or PDF with multiple pages.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the string content on success or an empty string on failure.

Смотрите также

  • Imagick::getImageBlob() - Returns the image sequence as a blob
  • Imagick::getImagesBlob() - Returns all image sequences as a blob


Convenience method for setting crop size and the image geometry

  • « Imagick::__toString
  • Imagick::transformImageColorspace »
  • PHP Manual
  • Imagick
  • Convenience method for setting crop size and the image geometry

Imagick::transformImage

(PECL imagick 2.0.0)

Imagick::transformImage — Convenience method for setting crop size and the image geometry

Описание

Imagick Imagick::transformImage ( string $crop , string $geometry )

A convenience method for setting crop size and the image geometry from strings. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

crop

A crop geometry string. This geometry defines a subregion of the image to crop.

geometry

An image geometry string. This geometry defines the final size of the image.

Возвращаемые значения

Returns an Imagick object containing the transformed image.

Примеры

Пример #1 Using Imagick::transformImage():

The example creates a 100x100 black image.

<?php
$image = new Imagick();
$image->newImage(300, 200, "black");
$new_image = $image->transformImage("100x100", "100x100");
$new_image->writeImage('test_out.jpg');
?>

Смотрите также

  • Imagick::cropImage() - Извлекает область изображения
  • Imagick::resizeImage() - Scales an image
  • Imagick::thumbnailImage() - Changes the size of an image


Transforms an image to a new colorspace.

  • « Imagick::transformImage
  • Imagick::transparentPaintImage »
  • PHP Manual
  • Imagick
  • Transforms an image to a new colorspace.

Imagick::transformImageColorspace

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::transformImageColorspace — Transforms an image to a new colorspace.

Описание

bool Imagick::transformImageColorspace ( int $colorspace )

Transforms an image to a new colorspace.

Список параметров

colorspace

The colorspace the image should be transformed to, one of the COLORSPACE constants e.g. Imagick::COLORSPACE_CMYK.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Imagick::transformImageColorspace() example

Transforms an image to a new colorspace, and then extracts a single channel so that the individual channel values can be viewed.

<?php
function transformImageColorspace($imagePath, $colorSpace, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transformimagecolorspace($colorSpace);
    //channel should be one of the channel constants e.g. \Imagick::CHANNEL_BLUE
    $imagick->separateImageChannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}
?>

Смотрите также

  • Imagick::setColorSpace() - Set colorspace

Примеры

Пример #2 Imagick::transformImageColorspace()

<?php
function transformImageColorspace($imagePath, $colorSpace, $channel) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transformimagecolorspace($colorSpace);
    $imagick->separateImageChannel($channel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Paints pixels transparent

  • « Imagick::transformImageColorspace
  • Imagick::transposeImage »
  • PHP Manual
  • Imagick
  • Paints pixels transparent

Imagick::transparentPaintImage

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::transparentPaintImage — Paints pixels transparent

Описание

bool Imagick::transparentPaintImage ( mixed $target , float $alpha , float $fuzz , bool $invert )

Paints pixels matching the target color transparent. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.8 или старше.

Список параметров

target

The target color to paint

alpha

Уровень прозрачности: 1.0 полностью непрозрачный, тогда как 0.0 полностью прозрачен.

fuzz

Мера округления (fuzz). Для примера, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.

invert

If TRUE paints any pixel that does not match the target color.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::transparentPaintImage()

<?php
function transparentPaintImage($color, $alpha, $fuzz) {
    $imagick = new \Imagick(realpath("images/BlueScreen.jpg"));

    //Need to be in a format that supports transparency
    $imagick->setimageformat('png');

    $imagick->transparentPaintImage(
        $color, $alpha, $fuzz * \Imagick::getQuantum(), false
    );

    //Not required, but helps tidy up left over pixels
    $imagick->despeckleimage();

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Creates a vertical mirror image

  • « Imagick::transparentPaintImage
  • Imagick::transverseImage »
  • PHP Manual
  • Imagick
  • Creates a vertical mirror image

Imagick::transposeImage

(PECL imagick 2.0.0)

Imagick::transposeImage — Creates a vertical mirror image

Описание

bool Imagick::transposeImage ( void )

Creates a vertical mirror image by reflecting the pixels around the central x-axis while rotating them 90-degrees. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::transverseImage() - Creates a horizontal mirror image

Примеры

Пример #1 Imagick::transposeImage()

<?php
function transposeImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transposeImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Creates a horizontal mirror image

  • « Imagick::transposeImage
  • Imagick::trimImage »
  • PHP Manual
  • Imagick
  • Creates a horizontal mirror image

Imagick::transverseImage

(PECL imagick 2.0.0)

Imagick::transverseImage — Creates a horizontal mirror image

Описание

bool Imagick::transverseImage ( void )

Creates a horizontal mirror image by reflecting the pixels around the central y-axis while rotating them 270-degrees. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::transposeImage() - Creates a vertical mirror image

Примеры

Пример #1 Imagick::transverseImage()

<?php
function transverseImage($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->transverseImage();
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Remove edges from the image

  • « Imagick::transverseImage
  • Imagick::uniqueImageColors »
  • PHP Manual
  • Imagick
  • Remove edges from the image

Imagick::trimImage

(PECL imagick 2.0.0)

Imagick::trimImage — Remove edges from the image

Описание

bool Imagick::trimImage ( float $fuzz )

Remove edges that are the background color from the image. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

fuzz

By default target must match a particular pixel color exactly. However, in many cases two colors may differ by a small amount. The fuzz member of image defines how much tolerance is acceptable to consider two colors as the same. This parameter represents the variation on the quantum range.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Using Imagick::trimImage():

Trim an image, then display to the browser.

<?php
/* Create the object and read the image in */
$im = new Imagick("image.jpg");

/* Trim the image. */
$im->trimImage(0);

/* Ouput the image */
header("Content-Type: image/" . $im->getImageFormat());
echo $im;
?>

Смотрите также

  • Imagick::getQuantumDepth() - Возвращает величину глубины
  • Imagick::getQuantumRange() - Возвращает величину размера спектра Imagick


Discards all but one of any pixel color

  • « Imagick::trimImage
  • Imagick::unsharpMaskImage »
  • PHP Manual
  • Imagick
  • Discards all but one of any pixel color

Imagick::uniqueImageColors

(PECL imagick 2.0.0)

Imagick::uniqueImageColors — Discards all but one of any pixel color

Описание

bool Imagick::uniqueImageColors ( void )

Discards all but one of any pixel color. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Imagick::uniqueImageColors()

<?php
function uniqueImageColors($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    //Reduce the image to 256 colours nicely.
    $imagick->quantizeImage(256, \Imagick::COLORSPACE_YIQ, 0, false, false);
    $imagick->uniqueImageColors();
    $imagick->scaleimage($imagick->getImageWidth(), $imagick->getImageHeight() * 20);
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sharpens an image

  • « Imagick::uniqueImageColors
  • Imagick::valid »
  • PHP Manual
  • Imagick
  • Sharpens an image

Imagick::unsharpMaskImage

(PECL imagick 2.0.0)

Imagick::unsharpMaskImage — Sharpens an image

Описание

bool Imagick::unsharpMaskImage ( float $radius , float $sigma , float $amount , float $threshold [, int $channel = Imagick::CHANNEL_ALL ] )

Sharpens an image. We convolve the image with a Gaussian operator of the given radius and standard deviation (sigma). For reasonable results, radius should be larger than sigma. Use a radius of 0 and Imagick::UnsharpMaskImage() selects a suitable radius for you.

Список параметров

radius

sigma

amount

threshold

channel

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Imagick::unsharpMaskImage()

<?php
function unsharpMaskImage($imagePath, $radius, $sigma, $amount, $unsharpThreshold) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->unsharpMaskImage($radius, $sigma, $amount, $unsharpThreshold);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Checks if the current item is valid

  • « Imagick::unsharpMaskImage
  • Imagick::vignetteImage »
  • PHP Manual
  • Imagick
  • Checks if the current item is valid

Imagick::valid

(PECL imagick 2.0.0)

Imagick::valid — Checks if the current item is valid

Описание

bool Imagick::valid ( void )

Checks if the current item is valid.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Adds vignette filter to the image

  • « Imagick::valid
  • Imagick::waveImage »
  • PHP Manual
  • Imagick
  • Adds vignette filter to the image

Imagick::vignetteImage

(PECL imagick 2.0.0)

Imagick::vignetteImage — Adds vignette filter to the image

Описание

bool Imagick::vignetteImage ( float $blackPoint , float $whitePoint , int $x , int $y )

Softens the edges of the image in vignette style. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

blackPoint

The black point.

whitePoint

The white point

x

X offset of the ellipse

y

Y offset of the ellipse

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Смотрите также

  • Imagick::waveImage() - Applies wave filter to the image
  • Imagick::swirlImage() - Swirls the pixels about the center of the image

Примеры

Пример #1 Imagick::vignetteImage()

<?php
function vignetteImage($imagePath, $blackPoint, $whitePoint, $x, $y) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->vignetteImage($blackPoint, $whitePoint, $x, $y);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Applies wave filter to the image

  • « Imagick::vignetteImage
  • Imagick::whiteThresholdImage »
  • PHP Manual
  • Imagick
  • Applies wave filter to the image

Imagick::waveImage

(PECL imagick 2.0.0)

Imagick::waveImage — Applies wave filter to the image

Описание

bool Imagick::waveImage ( float $amplitude , float $length )

Applies a wave filter to the image. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

amplitude

The amplitude of the wave.

length

The length of the wave.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Смотрите также

  • Imagick::solarizeImage() - Applies a solarizing effect to the image
  • Imagick::oilpaintImage() - Simulates an oil painting
  • Imagick::embossImage() - Returns a grayscale image with a three-dimensional effect
  • Imagick::addNoiseImage() - Накладывает случайный шум на изображение
  • Imagick::swirlImage() - Swirls the pixels about the center of the image

Примеры

Пример #1 WaveImage can be quite slow Imagick::waveImage()

<?php
function waveImage($imagePath, $amplitude, $length) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->waveImage($amplitude, $length);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Force all pixels above the threshold into white

  • « Imagick::waveImage
  • Imagick::writeImage »
  • PHP Manual
  • Imagick
  • Force all pixels above the threshold into white

Imagick::whiteThresholdImage

(PECL imagick 2.0.0)

Imagick::whiteThresholdImage — Force all pixels above the threshold into white

Описание

bool Imagick::whiteThresholdImage ( mixed $threshold )

Is like Imagick::ThresholdImage() but force all pixels above the threshold into white while leaving all pixels below the threshold unchanged.

Список параметров

threshold

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Список изменений

Версия | Описание
2.1.0 | Now allows a string representing the color as a parameter. Previous versions allow only an ImagickPixel object.

Примеры

Пример #1 Imagick::whiteThresholdImage()

<?php
function whiteThresholdImage($imagePath, $color) {
    $imagick = new \Imagick(realpath($imagePath));
    $imagick->whiteThresholdImage($color);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();
}

?>


Writes an image to the specified filename

  • « Imagick::whiteThresholdImage
  • Imagick::writeImageFile »
  • PHP Manual
  • Imagick
  • Writes an image to the specified filename

Imagick::writeImage

(PECL imagick 0.9.0-0.9.9)

Imagick::writeImage — Writes an image to the specified filename

Описание

bool Imagick::writeImage ([ string $filename = NULL ] )

Writes an image to the specified filename. If the filename parameter is NULL, the image is written to the filename set by Imagick::readImage() or Imagick::setImageFilename().

Список параметров

filename

Filename where to write the image. The extension of the filename defines the type of the file. Format can be forced regardless of file extension using format: prefix, for example "jpg:test.png".

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Writes an image to a filehandle

  • « Imagick::writeImage
  • Imagick::writeImages »
  • PHP Manual
  • Imagick
  • Writes an image to a filehandle

Imagick::writeImageFile

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::writeImageFile — Writes an image to a filehandle

Описание

bool Imagick::writeImageFile ( resource $filehandle )

Writes the image sequence to an open filehandle. The handle must be opened with for example fopen. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

filehandle

Filehandle where to write the image

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Writes an image or image sequence

  • « Imagick::writeImageFile
  • Imagick::writeImagesFile »
  • PHP Manual
  • Imagick
  • Writes an image or image sequence

Imagick::writeImages

(PECL imagick 0.9.0-0.9.9)

Imagick::writeImages — Writes an image or image sequence

Описание

bool Imagick::writeImages ( string $filename , bool $adjoin )

Writes an image or image sequence.

Список параметров

filename

adjoin

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Writes frames to a filehandle

  • « Imagick::writeImages
  • ImagickDraw »
  • PHP Manual
  • Imagick
  • Writes frames to a filehandle

Imagick::writeImagesFile

(Информация о версии неизвестна, возможно, только в SVN)

Imagick::writeImagesFile — Writes frames to a filehandle

Описание

bool Imagick::writeImagesFile ( resource $filehandle )

Writes all image frames into an open filehandle. This method can be used to write animated gifs or other multiframe images into open filehandle. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.3.6 или старше.

Список параметров

filehandle

Filehandle where to write the images

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Класс ImagickDraw

(PECL imagick 2.0.0)

Обзор классов

ImagickDraw {
bool affine ( array $affine )
bool annotation ( float $x , float $y , string $text )
bool arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )
bool bezier ( array $coordinates )
bool circle ( float $ox , float $oy , float $px , float $py )
bool clear ( void )
ImagickDraw clone ( void )
bool color ( float $x , float $y , int $paintMethod )
bool comment ( string $comment )
bool composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand )
__construct ( void )
bool destroy ( void )
bool ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )
string getClipPath ( void )
int getClipRule ( void )
int getClipUnits ( void )
ImagickPixel getFillColor ( void )
float getFillOpacity ( void )
int getFillRule ( void )
string getFont ( void )
string getFontFamily ( void )
float getFontSize ( void )
public int getFontStretch ( void )
int getFontStyle ( void )
int getFontWeight ( void )
int getGravity ( void )
bool getStrokeAntialias ( void )
ImagickPixel getStrokeColor ( void )
array getStrokeDashArray ( void )
float getStrokeDashOffset ( void )
int getStrokeLineCap ( void )
int getStrokeLineJoin ( void )
int getStrokeMiterLimit ( void )
float getStrokeOpacity ( void )
float getStrokeWidth ( void )
int getTextAlignment ( void )
bool getTextAntialias ( void )
int getTextDecoration ( void )
string getTextEncoding ( void )
public float getTextInterlineSpacing ( void )
public float getTextInterwordSpacing ( void )
public float getTextKerning ( void )
ImagickPixel getTextUnderColor ( void )
string getVectorGraphics ( void )
bool line ( float $sx , float $sy , float $ex , float $ey )
bool matte ( float $x , float $y , int $paintMethod )
bool pathClose ( void )
bool pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
bool pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y )
bool pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y )
bool pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y )
bool pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y )
bool pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
bool pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y )
bool pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y )
bool pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
bool pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
bool pathFinish ( void )
bool pathLineToAbsolute ( float $x , float $y )
bool pathLineToHorizontalAbsolute ( float $x )
bool pathLineToHorizontalRelative ( float $x )
bool pathLineToRelative ( float $x , float $y )
bool pathLineToVerticalAbsolute ( float $y )
bool pathLineToVerticalRelative ( float $y )
bool pathMoveToAbsolute ( float $x , float $y )
bool pathMoveToRelative ( float $x , float $y )
bool pathStart ( void )
bool point ( float $x , float $y )
bool polygon ( array $coordinates )
bool polyline ( array $coordinates )
bool pop ( void )
bool popClipPath ( void )
bool popDefs ( void )
bool popPattern ( void )
bool push ( void )
bool pushClipPath ( string $clip_mask_id )
bool pushDefs ( void )
bool pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height )
bool rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )
bool render ( void )
public void resetVectorGraphics ( void )
bool rotate ( float $degrees )
bool roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )
bool scale ( float $x , float $y )
bool setClipPath ( string $clip_mask )
bool setClipRule ( int $fill_rule )
bool setClipUnits ( int $clip_units )
bool setFillAlpha ( float $opacity )
bool setFillColor ( ImagickPixel $fill_pixel )
bool setFillOpacity ( float $fillOpacity )
bool setFillPatternURL ( string $fill_url )
bool setFillRule ( int $fill_rule )
bool setFont ( string $font_name )
bool setFontFamily ( string $font_family )
bool setFontSize ( float $pointsize )
bool setFontStretch ( int $fontStretch )
bool setFontStyle ( int $style )
bool setFontWeight ( int $font_weight )
bool setGravity ( int $gravity )
public void setResolution ( string $x_resolution , string $y_resolution )
bool setStrokeAlpha ( float $opacity )
bool setStrokeAntialias ( bool $stroke_antialias )
bool setStrokeColor ( ImagickPixel $stroke_pixel )
bool setStrokeDashArray ( array $dashArray )
bool setStrokeDashOffset ( float $dash_offset )
bool setStrokeLineCap ( int $linecap )
bool setStrokeLineJoin ( int $linejoin )
bool setStrokeMiterLimit ( int $miterlimit )
bool setStrokeOpacity ( float $stroke_opacity )
bool setStrokePatternURL ( string $stroke_url )
bool setStrokeWidth ( float $stroke_width )
bool setTextAlignment ( int $alignment )
bool setTextAntialias ( bool $antiAlias )
bool setTextDecoration ( int $decoration )
bool setTextEncoding ( string $encoding )
public void setTextInterlineSpacing ( float $spacing )
public void setTextInterwordSpacing ( float $spacing )
public void setTextKerning ( float $kerning )
bool setTextUnderColor ( ImagickPixel $under_color )
bool setVectorGraphics ( string $xml )
bool setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 )
bool skewX ( float $degrees )
bool skewY ( float $degrees )
bool translate ( float $x , float $y )
}

Содержание

  • ImagickDraw::affine — Adjusts the current affine transformation matrix
  • ImagickDraw::annotation — Draws text on the image
  • ImagickDraw::arc — Draws an arc
  • ImagickDraw::bezier — Draws a bezier curve
  • ImagickDraw::circle — Draws a circle
  • ImagickDraw::clear — Clears the ImagickDraw
  • ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object
  • ImagickDraw::color — Draws color on image
  • ImagickDraw::comment — Adds a comment
  • ImagickDraw::composite — Composites an image onto the current image
  • ImagickDraw::__construct — The ImagickDraw constructor
  • ImagickDraw::destroy — Frees all associated resources
  • ImagickDraw::ellipse — Draws an ellipse on the image
  • ImagickDraw::getClipPath — Obtains the current clipping path ID
  • ImagickDraw::getClipRule — Returns the current polygon fill rule
  • ImagickDraw::getClipUnits — Returns the interpretation of clip path units
  • ImagickDraw::getFillColor — Returns the fill color
  • ImagickDraw::getFillOpacity — Returns the opacity used when drawing
  • ImagickDraw::getFillRule — Returns the fill rule
  • ImagickDraw::getFont — Returns the font
  • ImagickDraw::getFontFamily — Returns the font family
  • ImagickDraw::getFontSize — Returns the font pointsize
  • ImagickDraw::getFontStretch — Description
  • ImagickDraw::getFontStyle — Returns the font style
  • ImagickDraw::getFontWeight — Returns the font weight
  • ImagickDraw::getGravity — Returns the text placement gravity
  • ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting
  • ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines
  • ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths
  • ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash
  • ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked
  • ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked
  • ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit
  • ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines
  • ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines
  • ImagickDraw::getTextAlignment — Returns the text alignment
  • ImagickDraw::getTextAntialias — Returns the current text antialias setting
  • ImagickDraw::getTextDecoration — Returns the text decoration
  • ImagickDraw::getTextEncoding — Returns the code set used for text annotations
  • ImagickDraw::getTextInterlineSpacing — Description
  • ImagickDraw::getTextInterwordSpacing — Description
  • ImagickDraw::getTextKerning — Description
  • ImagickDraw::getTextUnderColor — Returns the text under color
  • ImagickDraw::getVectorGraphics — Returns a string containing vector graphics
  • ImagickDraw::line — Draws a line
  • ImagickDraw::matte — Paints on the image's opacity channel
  • ImagickDraw::pathClose — Adds a path element to the current path
  • ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve
  • ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve
  • ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve
  • ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc
  • ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc
  • ImagickDraw::pathFinish — Terminates the current path
  • ImagickDraw::pathLineToAbsolute — Draws a line path
  • ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path
  • ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line
  • ImagickDraw::pathLineToRelative — Draws a line path
  • ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line
  • ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path
  • ImagickDraw::pathMoveToAbsolute — Starts a new sub-path
  • ImagickDraw::pathMoveToRelative — Starts a new sub-path
  • ImagickDraw::pathStart — Declares the start of a path drawing list
  • ImagickDraw::point — Draws a point
  • ImagickDraw::polygon — Draws a polygon
  • ImagickDraw::polyline — Draws a polyline
  • ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw
  • ImagickDraw::popClipPath — Terminates a clip path definition
  • ImagickDraw::popDefs — Terminates a definition list
  • ImagickDraw::popPattern — Terminates a pattern definition
  • ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack
  • ImagickDraw::pushClipPath — Starts a clip path definition
  • ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing
  • ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern
  • ImagickDraw::rectangle — Draws a rectangle
  • ImagickDraw::render — Renders all preceding drawing commands onto the image
  • ImagickDraw::resetVectorGraphics — Description
  • ImagickDraw::rotate — Applies the specified rotation to the current coordinate space
  • ImagickDraw::roundRectangle — Draws a rounded rectangle
  • ImagickDraw::scale — Adjusts the scaling factor
  • ImagickDraw::setClipPath — Associates a named clipping path with the image
  • ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path
  • ImagickDraw::setClipUnits — Sets the interpretation of clip path units
  • ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture
  • ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects
  • ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture
  • ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects
  • ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons
  • ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text
  • ImagickDraw::setFontFamily — Sets the font family to use when annotating with text
  • ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text
  • ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text
  • ImagickDraw::setFontStyle — Sets the font style to use when annotating with text
  • ImagickDraw::setFontWeight — Sets the font weight
  • ImagickDraw::setGravity — Sets the text placement gravity
  • ImagickDraw::setResolution — Description
  • ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines
  • ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased
  • ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines
  • ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths
  • ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash
  • ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked
  • ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked
  • ImagickDraw::setStrokeMiterLimit — Specifies the miter limit
  • ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines
  • ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines
  • ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines
  • ImagickDraw::setTextAlignment — Specifies a text alignment
  • ImagickDraw::setTextAntialias — Controls whether text is antialiased
  • ImagickDraw::setTextDecoration — Specifies a decoration
  • ImagickDraw::setTextEncoding — Specifies the text code set
  • ImagickDraw::setTextInterlineSpacing — Description
  • ImagickDraw::setTextInterwordSpacing — Description
  • ImagickDraw::setTextKerning — Description
  • ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle
  • ImagickDraw::setVectorGraphics — Sets the vector graphics
  • ImagickDraw::setViewbox — Sets the overall canvas size
  • ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction
  • ImagickDraw::skewY — Skews the current coordinate system in the vertical direction
  • ImagickDraw::translate — Applies a translation to the current coordinate system


Adjusts the current affine transformation matrix

  • « ImagickDraw
  • ImagickDraw::annotation »
  • PHP Manual
  • ImagickDraw
  • Adjusts the current affine transformation matrix

ImagickDraw::affine

(PECL imagick 2.0.0)

ImagickDraw::affine — Adjusts the current affine transformation matrix

Описание

bool ImagickDraw::affine ( array $affine )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Adjusts the current affine transformation matrix with the specified affine transformation matrix.

Список параметров

affine

Affine matrix parameters

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::affine()

<?php
function affine($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $PI = 3.141592653589794;
    $angle = 60 * $PI / 360;

    //Scale the drawing co-ordinates.
    $affineScale = array("sx" => 1.75, "sy" => 1.75, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0);

    //Shear the drawing co-ordinates.
    $affineShear = array("sx" => 1, "sy" => 1, "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0);

    //Rotate the drawing co-ordinates. The shear affine matrix
    //produces incorrectly scaled drawings.
    $affineRotate = array("sx" => cos($angle), "sy" => cos($angle), "rx" => sin($angle), "ry" => -sin($angle), "tx" => 0, "ty" => 0,);

    //Translate (offset) the drawing
    $affineTranslate = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 30, "ty" => 30);

    //The identiy affine matrix
    $affineIdentity = array("sx" => 1, "sy" => 1, "rx" => 0, "ry" => 0, "tx" => 0, "ty" => 0);

    $examples = [$affineScale, $affineShear, $affineRotate, $affineTranslate, $affineIdentity,];

    $count = 0;

    foreach ($examples as $example) {
        $draw->push();
        $draw->translate(($count % 2) * 250, intval($count / 2) * 250);
        $draw->translate(100, 100);
        $draw->affine($example);
        $draw->rectangle(-50, -50, 50, 50);
        $draw->pop();
        $count++;
    }

    //Create an image object which the draw commands can be rendered into
    $image = new \Imagick();
    $image->newImage(500, 750, $backgroundColor);
    $image->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $image->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws text on the image

  • « ImagickDraw::affine
  • ImagickDraw::arc »
  • PHP Manual
  • ImagickDraw
  • Draws text on the image

ImagickDraw::annotation

(PECL imagick 2.0.0)

ImagickDraw::annotation — Draws text on the image

Описание

bool ImagickDraw::annotation ( float $x , float $y , string $text )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws text on the image.

Список параметров

x

The x coordinate where text is drawn

y

The y coordinate where text is drawn

text

The text to draw on the image

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws an arc

  • « ImagickDraw::annotation
  • ImagickDraw::bezier »
  • PHP Manual
  • ImagickDraw
  • Draws an arc

ImagickDraw::arc

(PECL imagick 2.0.0)

ImagickDraw::arc — Draws an arc

Описание

bool ImagickDraw::arc ( float $sx , float $sy , float $ex , float $ey , float $sd , float $ed )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws an arc falling within a specified bounding rectangle on the image.

Список параметров

sx

Starting x ordinate of bounding rectangle

sy

starting y ordinate of bounding rectangle

ex

ending x ordinate of bounding rectangle

ey

ending y ordinate of bounding rectangle

sd

starting degrees of rotation

ed

ending degrees of rotation

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::arc()

<?php
function arc($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $startAngle, $endAngle) {

    //Create a ImagickDraw object to draw into.
    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);

    $draw->arc($startX, $startY, $endX, $endY, $startAngle, $endAngle);

    //Create an image object which the draw commands can be rendered into
    $image = new \Imagick();
    $image->newImage(IMAGE_WIDTH, IMAGE_HEIGHT, $backgroundColor);
    $image->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $image->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws a bezier curve

  • « ImagickDraw::arc
  • ImagickDraw::circle »
  • PHP Manual
  • ImagickDraw
  • Draws a bezier curve

ImagickDraw::bezier

(PECL imagick 2.0.0)

ImagickDraw::bezier — Draws a bezier curve

Описание

bool ImagickDraw::bezier ( array $coordinates )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a bezier curve through a set of points on the image.

Список параметров

coordinates

Multidimensional array like array( array( 'x' => 1, 'y' => 2 ), array( 'x' => 3, 'y' => 4 ) )

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::bezier()

<?php
function bezier($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $smoothPointsSet = [
        [
            ['x' => 10.0 * 5, 'y' => 10.0 * 5],
            ['x' => 30.0 * 5, 'y' => 90.0 * 5],
            ['x' => 25.0 * 5, 'y' => 10.0 * 5],
            ['x' => 50.0 * 5, 'y' => 50.0 * 5],
        ],
        [
            ['x' => 50.0 * 5, 'y' => 50.0 * 5],
            ['x' => 75.0 * 5, 'y' => 90.0 * 5],
            ['x' => 70.0 * 5, 'y' => 10.0 * 5],
            ['x' => 90.0 * 5, 'y' => 40.0 * 5],
        ],
    ];

    foreach ($smoothPointsSet as $points) {
        $draw->bezier($points);
    }

    $disjointPoints = [
        [
            ['x' => 10 * 5, 'y' => 10 * 5],
            ['x' => 30 * 5, 'y' => 90 * 5],
            ['x' => 25 * 5, 'y' => 10 * 5],
            ['x' => 50 * 5, 'y' => 50 * 5],
        ],
        [
            ['x' => 50 * 5, 'y' => 50 * 5],
            ['x' => 80 * 5, 'y' => 50 * 5],
            ['x' => 70 * 5, 'y' => 10 * 5],
            ['x' => 90 * 5, 'y' => 40 * 5],
         ]
    ];
    $draw->translate(0, 200);

    foreach ($disjointPoints as $points) {
        $draw->bezier($points);
    }

    //Create an image object which the draw commands can be rendered into
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $imagick->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a circle

  • « ImagickDraw::bezier
  • ImagickDraw::clear »
  • PHP Manual
  • ImagickDraw
  • Draws a circle

ImagickDraw::circle

(PECL imagick 2.0.0)

ImagickDraw::circle — Draws a circle

Описание

bool ImagickDraw::circle ( float $ox , float $oy , float $px , float $py )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a circle on the image.

Список параметров

ox

origin x coordinate

oy

origin y coordinate

px

perimeter x coordinate

py

perimeter y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::circle()

<?php
function circle($strokeColor, $fillColor, $backgroundColor, $originX, $originY, $endX, $endY) {

    //Create a ImagickDraw object to draw into.
    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->circle($originX, $originY, $endX, $endY);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Clears the ImagickDraw

  • « ImagickDraw::circle
  • ImagickDraw::clone »
  • PHP Manual
  • ImagickDraw
  • Clears the ImagickDraw

ImagickDraw::clear

(PECL imagick 2.0.0)

ImagickDraw::clear — Clears the ImagickDraw

Описание

bool ImagickDraw::clear ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Clears the ImagickDraw object of any accumulated commands, and resets the settings it contains to their defaults.

Возвращаемые значения

Returns an ImagickDraw object.


Makes an exact copy of the specified ImagickDraw object

  • « ImagickDraw::clear
  • ImagickDraw::color »
  • PHP Manual
  • ImagickDraw
  • Makes an exact copy of the specified ImagickDraw object

ImagickDraw::clone

(PECL imagick 2.0.0)

ImagickDraw::clone — Makes an exact copy of the specified ImagickDraw object

Описание

ImagickDraw ImagickDraw::clone ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Makes an exact copy of the specified ImagickDraw object.

Возвращаемые значения

What the function returns, first on success, then on failure. See also the &return.success; entity


Draws color on image

  • « ImagickDraw::clone
  • ImagickDraw::comment »
  • PHP Manual
  • ImagickDraw
  • Draws color on image

ImagickDraw::color

(PECL imagick 2.0.0)

ImagickDraw::color — Draws color on image

Описание

bool ImagickDraw::color ( float $x , float $y , int $paintMethod )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws color on image using the current fill color, starting at specified position, and using specified paint method.

Список параметров

x

x coordinate of the paint

y

y coordinate of the paint

paintMethod

one of the PAINT_ constants

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Adds a comment

  • « ImagickDraw::color
  • ImagickDraw::composite »
  • PHP Manual
  • ImagickDraw
  • Adds a comment

ImagickDraw::comment

(PECL imagick 2.0.0)

ImagickDraw::comment — Adds a comment

Описание

bool ImagickDraw::comment ( string $comment )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Adds a comment to a vector output stream.

Список параметров

comment

The comment string to add to vector output stream

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Composites an image onto the current image

  • « ImagickDraw::comment
  • ImagickDraw::__construct »
  • PHP Manual
  • ImagickDraw
  • Composites an image onto the current image

ImagickDraw::composite

(PECL imagick 2.0.0)

ImagickDraw::composite — Composites an image onto the current image

Описание

bool ImagickDraw::composite ( int $compose , float $x , float $y , float $width , float $height , Imagick $compositeWand )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Composites an image onto the current image, using the specified composition operator, specified position, and at the specified size.

Список параметров

compose

composition operator. One of COMPOSITE_ constants

x

x coordinate of the top left corner

y

y coordinate of the top left corner

width

width of the composition image

height

height of the composition image

compositeWand

the Imagick object where composition image is taken from

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::composite()

<?php
function composite($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setFillOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFont("../fonts/CANDY.TTF");
    $draw->setFontSize(140);
    $draw->rectangle(0, 0, 1000, 300);
    $draw->setFillColor('white');
    $draw->setfillopacity(1);
    $draw->annotation(50, 180, "Lorem Ipsum!");

    //Create an image object which the draw commands can be rendered into
    $imagick = new \Imagick();
    $imagick->newImage(1000, 302, $backgroundColor);
    $imagick->setImageFormat("png");

    //Render the draw commands in the ImagickDraw object
    //into the image.
    $imagick->drawImage($draw);

    //Send the image to the browser
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


The ImagickDraw constructor

  • « ImagickDraw::composite
  • ImagickDraw::destroy »
  • PHP Manual
  • ImagickDraw
  • The ImagickDraw constructor

ImagickDraw::__construct

(PECL imagick 2.0.0)

ImagickDraw::__construct — The ImagickDraw constructor

Описание

ImagickDraw::__construct ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

The ImagickDraw constructor

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Frees all associated resources

  • « ImagickDraw::__construct
  • ImagickDraw::ellipse »
  • PHP Manual
  • ImagickDraw
  • Frees all associated resources

ImagickDraw::destroy

(PECL imagick 2.0.0)

ImagickDraw::destroy — Frees all associated resources

Описание

bool ImagickDraw::destroy ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Frees all resources associated with the ImagickDraw object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws an ellipse on the image

  • « ImagickDraw::destroy
  • ImagickDraw::getClipPath »
  • PHP Manual
  • ImagickDraw
  • Draws an ellipse on the image

ImagickDraw::ellipse

(PECL imagick 2.0.0)

ImagickDraw::ellipse — Draws an ellipse on the image

Описание

bool ImagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws an ellipse on the image.

Список параметров

ox

oy

rx

ry

start

end

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::ellipse()

<?php
function ellipse($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->ellipse(125, 70, 100, 50, 0, 360);
    $draw->ellipse(350, 70, 100, 50, 0, 315);

    $draw->push();
    $draw->translate(125, 250);
    $draw->rotate(30);
    $draw->ellipse(0, 0, 100, 50, 0, 360);
    $draw->pop();

    $draw->push();
    $draw->translate(350, 250);
    $draw->rotate(30);
    $draw->ellipse(0, 0, 100, 50, 0, 315);
    $draw->pop();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Obtains the current clipping path ID

  • « ImagickDraw::ellipse
  • ImagickDraw::getClipRule »
  • PHP Manual
  • ImagickDraw
  • Obtains the current clipping path ID

ImagickDraw::getClipPath

(PECL imagick 2.0.0)

ImagickDraw::getClipPath — Obtains the current clipping path ID

Описание

string ImagickDraw::getClipPath ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Obtains the current clipping path ID.

Возвращаемые значения

Returns a string containing the clip path ID or false if no clip path exists.


Returns the current polygon fill rule

  • « ImagickDraw::getClipPath
  • ImagickDraw::getClipUnits »
  • PHP Manual
  • ImagickDraw
  • Returns the current polygon fill rule

ImagickDraw::getClipRule

(PECL imagick 2.0.0)

ImagickDraw::getClipRule — Returns the current polygon fill rule

Описание

int ImagickDraw::getClipRule ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the current polygon fill rule to be used by the clipping path.

Возвращаемые значения

Returns one of the FILLRULE_ constants.


Returns the interpretation of clip path units

  • « ImagickDraw::getClipRule
  • ImagickDraw::getFillColor »
  • PHP Manual
  • ImagickDraw
  • Returns the interpretation of clip path units

ImagickDraw::getClipUnits

(PECL imagick 2.0.0)

ImagickDraw::getClipUnits — Returns the interpretation of clip path units

Описание

int ImagickDraw::getClipUnits ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the interpretation of clip path units.

Возвращаемые значения

Returns an int on success.


Returns the fill color

  • « ImagickDraw::getClipUnits
  • ImagickDraw::getFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Returns the fill color

ImagickDraw::getFillColor

(PECL imagick 2.0.0)

ImagickDraw::getFillColor — Returns the fill color

Описание

ImagickPixel ImagickDraw::getFillColor ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the fill color used for drawing filled objects.

Возвращаемые значения

Returns an ImagickPixel object.


Returns the opacity used when drawing

  • « ImagickDraw::getFillColor
  • ImagickDraw::getFillRule »
  • PHP Manual
  • ImagickDraw
  • Returns the opacity used when drawing

ImagickDraw::getFillOpacity

(PECL imagick 2.0.0)

ImagickDraw::getFillOpacity — Returns the opacity used when drawing

Описание

float ImagickDraw::getFillOpacity ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the opacity used when drawing using the fill color or fill texture. Fully opaque is 1.0.

Возвращаемые значения

The opacity.


Returns the fill rule

  • « ImagickDraw::getFillOpacity
  • ImagickDraw::getFont »
  • PHP Manual
  • ImagickDraw
  • Returns the fill rule

ImagickDraw::getFillRule

(PECL imagick 2.0.0)

ImagickDraw::getFillRule — Returns the fill rule

Описание

int ImagickDraw::getFillRule ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the fill rule used while drawing polygons.

Возвращаемые значения

Returns a FILLRULE_ constant


Returns the font

  • « ImagickDraw::getFillRule
  • ImagickDraw::getFontFamily »
  • PHP Manual
  • ImagickDraw
  • Returns the font

ImagickDraw::getFont

(PECL imagick 2.0.0)

ImagickDraw::getFont — Returns the font

Описание

string ImagickDraw::getFont ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns a string specifying the font used when annotating with text.

Возвращаемые значения

Returns a string on success and false if no font is set.


Returns the font family

  • « ImagickDraw::getFont
  • ImagickDraw::getFontSize »
  • PHP Manual
  • ImagickDraw
  • Returns the font family

ImagickDraw::getFontFamily

(PECL imagick 2.0.0)

ImagickDraw::getFontFamily — Returns the font family

Описание

string ImagickDraw::getFontFamily ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the font family to use when annotating with text.

Возвращаемые значения

Returns the font family currently selected or false if font family is not set.


Returns the font pointsize

  • « ImagickDraw::getFontFamily
  • ImagickDraw::getFontStretch »
  • PHP Manual
  • ImagickDraw
  • Returns the font pointsize

ImagickDraw::getFontSize

(PECL imagick 2.0.0)

ImagickDraw::getFontSize — Returns the font pointsize

Описание

float ImagickDraw::getFontSize ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the font pointsize used when annotating with text.

Возвращаемые значения

Returns the font size associated with the current ImagickDraw object.


Description

  • « ImagickDraw::getFontSize
  • ImagickDraw::getFontStyle »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getFontStretch

(Информация о версии неизвестна, возможно, только в SVN)

ImagickDraw::getFontStretch — Description

Описание

public int ImagickDraw::getFontStretch ( void )

Gets the font stretch to use when annotating with text. Returns a StretchType.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Returns the font style

  • « ImagickDraw::getFontStretch
  • ImagickDraw::getFontWeight »
  • PHP Manual
  • ImagickDraw
  • Returns the font style

ImagickDraw::getFontStyle

(PECL imagick 2.0.0)

ImagickDraw::getFontStyle — Returns the font style

Описание

int ImagickDraw::getFontStyle ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the font style used when annotating with text.

Возвращаемые значения

Returns the font style constant (STYLE_) associated with the ImagickDraw object or 0 if no style is set.


Returns the font weight

  • « ImagickDraw::getFontStyle
  • ImagickDraw::getGravity »
  • PHP Manual
  • ImagickDraw
  • Returns the font weight

ImagickDraw::getFontWeight

(PECL imagick 2.0.0)

ImagickDraw::getFontWeight — Returns the font weight

Описание

int ImagickDraw::getFontWeight ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the font weight used when annotating with text.

Возвращаемые значения

Returns an int on success and 0 if no weight is set.


Returns the text placement gravity

  • « ImagickDraw::getFontWeight
  • ImagickDraw::getStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Returns the text placement gravity

ImagickDraw::getGravity

(PECL imagick 2.0.0)

ImagickDraw::getGravity — Returns the text placement gravity

Описание

int ImagickDraw::getGravity ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the text placement gravity used when annotating with text.

Возвращаемые значения

Returns a GRAVITY_ constant on success and 0 if no gravity is set.


Returns the current stroke antialias setting

  • « ImagickDraw::getGravity
  • ImagickDraw::getStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Returns the current stroke antialias setting

ImagickDraw::getStrokeAntialias

(PECL imagick 2.0.0)

ImagickDraw::getStrokeAntialias — Returns the current stroke antialias setting

Описание

bool ImagickDraw::getStrokeAntialias ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the current stroke antialias setting. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

Возвращаемые значения

Returns TRUE if antialiasing is on and false if it is off.


Returns the color used for stroking object outlines

  • « ImagickDraw::getStrokeAntialias
  • ImagickDraw::getStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Returns the color used for stroking object outlines

ImagickDraw::getStrokeColor

(PECL imagick 2.0.0)

ImagickDraw::getStrokeColor — Returns the color used for stroking object outlines

Описание

ImagickPixel ImagickDraw::getStrokeColor ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the color used for stroking object outlines.

Список параметров

stroke_color

Возвращаемые значения

Returns an ImagickPixel object which describes the color.


Returns an array representing the pattern of dashes and gaps used to stroke paths

  • « ImagickDraw::getStrokeColor
  • ImagickDraw::getStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Returns an array representing the pattern of dashes and gaps used to stroke paths

ImagickDraw::getStrokeDashArray

(PECL imagick 2.0.0)

ImagickDraw::getStrokeDashArray — Returns an array representing the pattern of dashes and gaps used to stroke paths

Описание

array ImagickDraw::getStrokeDashArray ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns an array representing the pattern of dashes and gaps used to stroke paths.

Возвращаемые значения

Returns an array on success and empty array if not set.


Returns the offset into the dash pattern to start the dash

  • « ImagickDraw::getStrokeDashArray
  • ImagickDraw::getStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Returns the offset into the dash pattern to start the dash

ImagickDraw::getStrokeDashOffset

(PECL imagick 2.0.0)

ImagickDraw::getStrokeDashOffset — Returns the offset into the dash pattern to start the dash

Описание

float ImagickDraw::getStrokeDashOffset ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the offset into the dash pattern to start the dash.

Возвращаемые значения

Returns a float representing the offset and 0 if it's not set.


Returns the shape to be used at the end of open subpaths when they are stroked

  • « ImagickDraw::getStrokeDashOffset
  • ImagickDraw::getStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Returns the shape to be used at the end of open subpaths when they are stroked

ImagickDraw::getStrokeLineCap

(PECL imagick 2.0.0)

ImagickDraw::getStrokeLineCap — Returns the shape to be used at the end of open subpaths when they are stroked

Описание

int ImagickDraw::getStrokeLineCap ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the shape to be used at the end of open subpaths when they are stroked.

Возвращаемые значения

Returns one of the LINECAP_ constants or 0 if stroke linecap is not set.


Returns the shape to be used at the corners of paths when they are stroked

  • « ImagickDraw::getStrokeLineCap
  • ImagickDraw::getStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Returns the shape to be used at the corners of paths when they are stroked

ImagickDraw::getStrokeLineJoin

(PECL imagick 2.0.0)

ImagickDraw::getStrokeLineJoin — Returns the shape to be used at the corners of paths when they are stroked

Описание

int ImagickDraw::getStrokeLineJoin ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the shape to be used at the corners of paths (or other vector shapes) when they are stroked.

Возвращаемые значения

Returns one of the LINEJOIN_ constants or 0 if stroke line join is not set.


Returns the stroke miter limit

  • « ImagickDraw::getStrokeLineJoin
  • ImagickDraw::getStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Returns the stroke miter limit

ImagickDraw::getStrokeMiterLimit

(PECL imagick 2.0.0)

ImagickDraw::getStrokeMiterLimit — Returns the stroke miter limit

Описание

int ImagickDraw::getStrokeMiterLimit ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The 'miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

Возвращаемые значения

Returns an int describing the miter limit and 0 if no miter limit is set.


Returns the opacity of stroked object outlines

  • « ImagickDraw::getStrokeMiterLimit
  • ImagickDraw::getStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Returns the opacity of stroked object outlines

ImagickDraw::getStrokeOpacity

(PECL imagick 2.0.0)

ImagickDraw::getStrokeOpacity — Returns the opacity of stroked object outlines

Описание

float ImagickDraw::getStrokeOpacity ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the opacity of stroked object outlines.

Возвращаемые значения

Returns a double describing the opacity.


Returns the width of the stroke used to draw object outlines

  • « ImagickDraw::getStrokeOpacity
  • ImagickDraw::getTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Returns the width of the stroke used to draw object outlines

ImagickDraw::getStrokeWidth

(PECL imagick 2.0.0)

ImagickDraw::getStrokeWidth — Returns the width of the stroke used to draw object outlines

Описание

float ImagickDraw::getStrokeWidth ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the width of the stroke used to draw object outlines.

Возвращаемые значения

Returns a double describing the stroke width.


Returns the text alignment

  • « ImagickDraw::getStrokeWidth
  • ImagickDraw::getTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Returns the text alignment

ImagickDraw::getTextAlignment

(PECL imagick 2.0.0)

ImagickDraw::getTextAlignment — Returns the text alignment

Описание

int ImagickDraw::getTextAlignment ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the alignment applied when annotating with text.

Возвращаемые значения

Returns one of the ALIGN_ constants and 0 if no align is set.


Returns the current text antialias setting

  • « ImagickDraw::getTextAlignment
  • ImagickDraw::getTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Returns the current text antialias setting

ImagickDraw::getTextAntialias

(PECL imagick 2.0.0)

ImagickDraw::getTextAntialias — Returns the current text antialias setting

Описание

bool ImagickDraw::getTextAntialias ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the current text antialias setting, which determines whether text is antialiased. Text is antialiased by default.

Возвращаемые значения

Returns TRUE if text is antialiased and false if not.


Returns the text decoration

  • « ImagickDraw::getTextAntialias
  • ImagickDraw::getTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Returns the text decoration

ImagickDraw::getTextDecoration

(PECL imagick 2.0.0)

ImagickDraw::getTextDecoration — Returns the text decoration

Описание

int ImagickDraw::getTextDecoration ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the decoration applied when annotating with text.

Возвращаемые значения

Returns one of the DECORATION_ constants and 0 if no decoration is set.


Returns the code set used for text annotations

  • « ImagickDraw::getTextDecoration
  • ImagickDraw::getTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Returns the code set used for text annotations

ImagickDraw::getTextEncoding

(PECL imagick 2.0.0)

ImagickDraw::getTextEncoding — Returns the code set used for text annotations

Описание

string ImagickDraw::getTextEncoding ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns a string which specifies the code set used for text annotations.

Возвращаемые значения

Returns a string specifying the code set or false if text encoding is not set.


Description

  • « ImagickDraw::getTextEncoding
  • ImagickDraw::getTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextInterlineSpacing

(Информация о версии неизвестна, возможно, только в SVN)

ImagickDraw::getTextInterlineSpacing — Description

Описание

public float ImagickDraw::getTextInterlineSpacing ( void )

Gets the text interword spacing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Description

  • « ImagickDraw::getTextInterlineSpacing
  • ImagickDraw::getTextKerning »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextInterwordSpacing

(Информация о версии неизвестна, возможно, только в SVN)

ImagickDraw::getTextInterwordSpacing — Description

Описание

public float ImagickDraw::getTextInterwordSpacing ( void )

Gets the text interword spacing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Description

  • « ImagickDraw::getTextInterwordSpacing
  • ImagickDraw::getTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::getTextKerning

(Информация о версии неизвестна, возможно, только в SVN)

ImagickDraw::getTextKerning — Description

Описание

public float ImagickDraw::getTextKerning ( void )

Gets the text kerning.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Returns the text under color

  • « ImagickDraw::getTextKerning
  • ImagickDraw::getVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Returns the text under color

ImagickDraw::getTextUnderColor

(PECL imagick 2.0.0)

ImagickDraw::getTextUnderColor — Returns the text under color

Описание

ImagickPixel ImagickDraw::getTextUnderColor ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns the color of a background rectangle to place under text annotations.

Возвращаемые значения

Returns an ImagickPixel object describing the color.


Returns a string containing vector graphics

  • « ImagickDraw::getTextUnderColor
  • ImagickDraw::line »
  • PHP Manual
  • ImagickDraw
  • Returns a string containing vector graphics

ImagickDraw::getVectorGraphics

(PECL imagick 2.0.0)

ImagickDraw::getVectorGraphics — Returns a string containing vector graphics

Описание

string ImagickDraw::getVectorGraphics ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Returns a string which specifies the vector graphics generated by any graphics calls made since the ImagickDraw object was instantiated.

Возвращаемые значения

Returns a string containing the vector graphics.


Draws a line

  • « ImagickDraw::getVectorGraphics
  • ImagickDraw::matte »
  • PHP Manual
  • ImagickDraw
  • Draws a line

ImagickDraw::line

(PECL imagick 2.0.0)

ImagickDraw::line — Draws a line

Описание

bool ImagickDraw::line ( float $sx , float $sy , float $ex , float $ey )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a line on the image using the current stroke color, stroke opacity, and stroke width.

Список параметров

sx

starting x coordinate

sy

starting y coordinate

ex

ending x coordinate

ey

ending y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::line()

<?php
function line($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->line(125, 70, 100, 50);
    $draw->line(350, 170, 100, 150);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Paints on the image's opacity channel

  • « ImagickDraw::line
  • ImagickDraw::pathClose »
  • PHP Manual
  • ImagickDraw
  • Paints on the image's opacity channel

ImagickDraw::matte

(PECL imagick 2.0.0)

ImagickDraw::matte — Paints on the image's opacity channel

Описание

bool ImagickDraw::matte ( float $x , float $y , int $paintMethod )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Paints on the image's opacity channel in order to set effected pixels to transparent, to influence the opacity of pixels.

Список параметров

x

x coordinate of the matte

y

y coordinate of the matte

paintMethod

PAINT_ constant

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ImagickDraw::matte()

<?php
function matte($strokeColor, $fillColor, $backgroundColor, $paintType) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->matte(120, 120, $paintType);
    $draw->rectangle(100, 100, 300, 200);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Adds a path element to the current path

  • « ImagickDraw::matte
  • ImagickDraw::pathCurveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Adds a path element to the current path

ImagickDraw::pathClose

(PECL imagick 2.0.0)

ImagickDraw::pathClose — Adds a path element to the current path

Описание

bool ImagickDraw::pathClose ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Adds a path element to the current path which closes the current subpath by drawing a straight line from the current point to the current subpath's most recent starting point (usually, the most recent moveto point).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a cubic Bezier curve

  • « ImagickDraw::pathClose
  • ImagickDraw::pathCurveToQuadraticBezierAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToAbsolute — Draws a cubic Bezier curve

Описание

bool ImagickDraw::pathCurveToAbsolute ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x1

x coordinate of the first control point

y1

y coordinate of the first control point

x2

x coordinate of the second control point

y2

y coordinate of the first control point

x

x coordinate of the curve end

y

y coordinate of the curve end

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierAbsolute — Draws a quadratic Bezier curve

Описание

bool ImagickDraw::pathCurveToQuadraticBezierAbsolute ( float $x1 , float $y1 , float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using absolute coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x1

x coordinate of the control point

y1

y coordinate of the control point

x

x coordinate of the end point

y

y coordinate of the end point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::pathCurveToQuadraticBezierAbsolute()

<?php
function pathCurveToQuadraticBezierAbsolute($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50,250);

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is the first two params, and the end point is the last two params.
    $draw->pathCurveToQuadraticBezierAbsolute(
        150,50,
        250,250
    );

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is mirrored from the previous curves control point
    // and the end point is defined by the x, y values.
    $draw->pathCurveToQuadraticBezierSmoothAbsolute(
        450,250
    );

    // This specifies a quadratic bezier curve with the current position as the start
    // point, the control point is mirrored from the previous curves control point
    // and the end point is defined relative from the current position by the x, y values.
    $draw->pathCurveToQuadraticBezierSmoothRelative(
        200,-100
    );

    $draw->pathFinish();

    $imagick = new \Imagick();
    $imagick->newImage(700, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();

}

?>


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierAbsolute
  • ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierRelative — Draws a quadratic Bezier curve

Описание

bool ImagickDraw::pathCurveToQuadraticBezierRelative ( float $x1 , float $y1 , float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a quadratic Bezier curve from the current point to (x,y) using (x1,y1) as the control point using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x1

starting x coordinate

y1

starting y coordinate

x

ending x coordinate

y

ending y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierRelative
  • ImagickDraw::pathCurveToQuadraticBezierSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute — Draws a quadratic Bezier curve

Описание

bool ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute ( float $x , float $y )

Draws a quadratic Bezier curve (using absolute coordinates) from the current point to (x,y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolut or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point.). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

This function cannot be used to continue a cubic Bezier curve smoothly. It can only continue from a quadratic curve smoothly.

Список параметров

x

ending x coordinate

y

ending y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute()

<?php
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor("black");
$draw->setFillColor("blue");

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50,250);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is the first two params, and the end point is the last two params.
$draw->pathCurveToQuadraticBezierAbsolute(
    150,50,
    250,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
    450,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined relative from the current position by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothRelative(
    200,-100
);

$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(700, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>


Draws a quadratic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothAbsolute
  • ImagickDraw::pathCurveToRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a quadratic Bezier curve

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToQuadraticBezierSmoothRelative — Draws a quadratic Bezier curve

Описание

bool ImagickDraw::pathCurveToQuadraticBezierSmoothRelative ( float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a quadratic Bezier curve (using relative coordinates) from the current point to (x, y). The control point is assumed to be the reflection of the control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not a DrawPathCurveToQuadraticBezierAbsolute, DrawPathCurveToQuadraticBezierRelative, DrawPathCurveToQuadraticBezierSmoothAbsolut or DrawPathCurveToQuadraticBezierSmoothRelative, assume the control point is coincident with the current point). At the end of the command, the new current point becomes the final (x, y) coordinate pair used in the polybezier.

This function cannot be used to continue a cubic Bezier curve smoothly. It can only continue from a quadratic curve smoothly.

Список параметров

x

ending x coordinate

y

ending y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::pathCurveToQuadraticBezierSmoothRelative()

<?php
$draw = new \ImagickDraw();

$draw->setStrokeOpacity(1);
$draw->setStrokeColor("black");
$draw->setFillColor("blue");

$draw->setStrokeWidth(2);
$draw->setFontSize(72);

$draw->pathStart();
$draw->pathMoveToAbsolute(50,250);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is the first two params, and the end point is the last two params.
$draw->pathCurveToQuadraticBezierAbsolute(
    150,50,
    250,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothAbsolute(
    450,250
);

// This specifies a quadratic bezier curve with the current position as the start
// point, the control point is mirrored from the previous curves control point
// and the end point is defined relative from the current position by the x, y values.
$draw->pathCurveToQuadraticBezierSmoothRelative(
    200,-100
);

$draw->pathFinish();

$imagick = new \Imagick();
$imagick->newImage(700, 500, $backgroundColor);
$imagick->setImageFormat("png");

$imagick->drawImage($draw);

header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToQuadraticBezierSmoothRelative
  • ImagickDraw::pathCurveToSmoothAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToRelative — Draws a cubic Bezier curve

Описание

bool ImagickDraw::pathCurveToRelative ( float $x1 , float $y1 , float $x2 , float $y2 , float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a cubic Bezier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve using relative coordinates. At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x1

x coordinate of starting control point

y1

y coordinate of starting control point

x2

x coordinate of ending control point

y2

y coordinate of ending control point

x

ending x coordinate

y

ending y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToRelative
  • ImagickDraw::pathCurveToSmoothRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToSmoothAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToSmoothAbsolute — Draws a cubic Bezier curve

Описание

bool ImagickDraw::pathCurveToSmoothAbsolute ( float $x2 , float $y2 , float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a cubic Bezier curve from the current point to (x,y) using absolute coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x2

x coordinate of the second control point

y2

y coordinate of the second control point

x

x coordinate of the ending point

y

y coordinate of the ending point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a cubic Bezier curve

  • « ImagickDraw::pathCurveToSmoothAbsolute
  • ImagickDraw::pathEllipticArcAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a cubic Bezier curve

ImagickDraw::pathCurveToSmoothRelative

(PECL imagick 2.0.0)

ImagickDraw::pathCurveToSmoothRelative — Draws a cubic Bezier curve

Описание

bool ImagickDraw::pathCurveToSmoothRelative ( float $x2 , float $y2 , float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a cubic Bezier curve from the current point to (x,y) using relative coordinates. The first control point is assumed to be the reflection of the second control point on the previous command relative to the current point. (If there is no previous command or if the previous command was not an DrawPathCurveToAbsolute, DrawPathCurveToRelative, DrawPathCurveToSmoothAbsolute or DrawPathCurveToSmoothRelative, assume the first control point is coincident with the current point.) (x2,y2) is the second control point (i.e., the control point at the end of the curve). At the end of the command, the new current point becomes the final (x,y) coordinate pair used in the polybezier.

Список параметров

x2

x coordinate of the second control point

y2

y coordinate of the second control point

x

x coordinate of the ending point

y

y coordinate of the ending point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws an elliptical arc

  • « ImagickDraw::pathCurveToSmoothRelative
  • ImagickDraw::pathEllipticArcRelative »
  • PHP Manual
  • ImagickDraw
  • Draws an elliptical arc

ImagickDraw::pathEllipticArcAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathEllipticArcAbsolute — Draws an elliptical arc

Описание

bool ImagickDraw::pathEllipticArcAbsolute ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws an elliptical arc from the current point to (x, y) using absolute coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is TRUE then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

Список параметров

rx

x radius

ry

y radius

x_axis_rotation

x axis rotation

large_arc_flag

large arc flag

sweep_flag

sweep flag

x

x coordinate

y

y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws an elliptical arc

  • « ImagickDraw::pathEllipticArcAbsolute
  • ImagickDraw::pathFinish »
  • PHP Manual
  • ImagickDraw
  • Draws an elliptical arc

ImagickDraw::pathEllipticArcRelative

(PECL imagick 2.0.0)

ImagickDraw::pathEllipticArcRelative — Draws an elliptical arc

Описание

bool ImagickDraw::pathEllipticArcRelative ( float $rx , float $ry , float $x_axis_rotation , bool $large_arc_flag , bool $sweep_flag , float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws an elliptical arc from the current point to (x, y) using relative coordinates. The size and orientation of the ellipse are defined by two radii (rx, ry) and an xAxisRotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. largeArcFlag and sweepFlag contribute to the automatic calculations and help determine how the arc is drawn. If largeArcFlag is TRUE then draw the larger of the available arcs. If sweepFlag is true, then draw the arc matching a clock-wise rotation.

Список параметров

rx

x radius

ry

y radius

x_axis_rotation

x axis rotation

large_arc_flag

large arc flag

sweep_flag

sweep flag

x

x coordinate

y

y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Terminates the current path

  • « ImagickDraw::pathEllipticArcRelative
  • ImagickDraw::pathLineToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Terminates the current path

ImagickDraw::pathFinish

(PECL imagick 2.0.0)

ImagickDraw::pathFinish — Terminates the current path

Описание

bool ImagickDraw::pathFinish ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Terminates the current path.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a line path

  • « ImagickDraw::pathFinish
  • ImagickDraw::pathLineToHorizontalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a line path

ImagickDraw::pathLineToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToAbsolute — Draws a line path

Описание

bool ImagickDraw::pathLineToAbsolute ( float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a line path from the current point to the given coordinate using absolute coordinates. The coordinate then becomes the new current point.

Список параметров

x

starting x coordinate

y

ending x coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a horizontal line path

  • « ImagickDraw::pathLineToAbsolute
  • ImagickDraw::pathLineToHorizontalRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a horizontal line path

ImagickDraw::pathLineToHorizontalAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToHorizontalAbsolute — Draws a horizontal line path

Описание

bool ImagickDraw::pathLineToHorizontalAbsolute ( float $x )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a horizontal line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

Список параметров

x

x coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a horizontal line

  • « ImagickDraw::pathLineToHorizontalAbsolute
  • ImagickDraw::pathLineToRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a horizontal line

ImagickDraw::pathLineToHorizontalRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToHorizontalRelative — Draws a horizontal line

Описание

bool ImagickDraw::pathLineToHorizontalRelative ( float $x )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a horizontal line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

Список параметров

x

x coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a line path

  • « ImagickDraw::pathLineToHorizontalRelative
  • ImagickDraw::pathLineToVerticalAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a line path

ImagickDraw::pathLineToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToRelative — Draws a line path

Описание

bool ImagickDraw::pathLineToRelative ( float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a line path from the current point to the given coordinate using relative coordinates. The coordinate then becomes the new current point.

Список параметров

x

starting x coordinate

y

starting y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a vertical line

  • « ImagickDraw::pathLineToRelative
  • ImagickDraw::pathLineToVerticalRelative »
  • PHP Manual
  • ImagickDraw
  • Draws a vertical line

ImagickDraw::pathLineToVerticalAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathLineToVerticalAbsolute — Draws a vertical line

Описание

bool ImagickDraw::pathLineToVerticalAbsolute ( float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a vertical line path from the current point to the target point using absolute coordinates. The target point then becomes the new current point.

Список параметров

y

y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a vertical line path

  • « ImagickDraw::pathLineToVerticalAbsolute
  • ImagickDraw::pathMoveToAbsolute »
  • PHP Manual
  • ImagickDraw
  • Draws a vertical line path

ImagickDraw::pathLineToVerticalRelative

(PECL imagick 2.0.0)

ImagickDraw::pathLineToVerticalRelative — Draws a vertical line path

Описание

bool ImagickDraw::pathLineToVerticalRelative ( float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a vertical line path from the current point to the target point using relative coordinates. The target point then becomes the new current point.

Список параметров

y

y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Starts a new sub-path

  • « ImagickDraw::pathLineToVerticalRelative
  • ImagickDraw::pathMoveToRelative »
  • PHP Manual
  • ImagickDraw
  • Starts a new sub-path

ImagickDraw::pathMoveToAbsolute

(PECL imagick 2.0.0)

ImagickDraw::pathMoveToAbsolute — Starts a new sub-path

Описание

bool ImagickDraw::pathMoveToAbsolute ( float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Starts a new sub-path at the given coordinate using absolute coordinates. The current point then becomes the specified coordinate.

Список параметров

x

x coordinate of the starting point

y

y coordinate of the starting point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Starts a new sub-path

  • « ImagickDraw::pathMoveToAbsolute
  • ImagickDraw::pathStart »
  • PHP Manual
  • ImagickDraw
  • Starts a new sub-path

ImagickDraw::pathMoveToRelative

(PECL imagick 2.0.0)

ImagickDraw::pathMoveToRelative — Starts a new sub-path

Описание

bool ImagickDraw::pathMoveToRelative ( float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Starts a new sub-path at the given coordinate using relative coordinates. The current point then becomes the specified coordinate.

Список параметров

x

target x coordinate

y

target y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Declares the start of a path drawing list

  • « ImagickDraw::pathMoveToRelative
  • ImagickDraw::point »
  • PHP Manual
  • ImagickDraw
  • Declares the start of a path drawing list

ImagickDraw::pathStart

(PECL imagick 2.0.0)

ImagickDraw::pathStart — Declares the start of a path drawing list

Описание

bool ImagickDraw::pathStart ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Declares the start of a path drawing list which is terminated by a matching DrawPathFinish() command. All other DrawPath commands must be enclosed between a and a DrawPathFinish() command. This is because path drawing commands are subordinate commands and they do not function by themselves.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::pathStart()

<?php
function pathStart($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 50);
    $draw->pathLineToAbsolute(100, 50);
    $draw->pathLineToRelative(0, 50);
    $draw->pathLineToHorizontalRelative(-50);
    $draw->pathFinish();

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 50);
    $draw->pathMoveToRelative(300, 0);
    $draw->pathLineToRelative(50, 0);
    $draw->pathLineToVerticalRelative(50);
    $draw->pathLineToHorizontalAbsolute(350);
    $draw->pathclose();
    $draw->pathFinish();

    $draw->pathStart();
    $draw->pathMoveToAbsolute(50, 300);
    $draw->pathCurveToAbsolute(50, 300, 100, 200, 300, 300);
    $draw->pathLineToVerticalAbsolute(350);
    $draw->pathFinish();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a point

  • « ImagickDraw::pathStart
  • ImagickDraw::polygon »
  • PHP Manual
  • ImagickDraw
  • Draws a point

ImagickDraw::point

(PECL imagick 2.0.0)

ImagickDraw::point — Draws a point

Описание

bool ImagickDraw::point ( float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a point using the current stroke color and stroke thickness at the specified coordinates.

Список параметров

x

point's x coordinate

y

point's y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::point()

<?php
function point($fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setFillColor($fillColor);

    for ($x = 0; $x < 10000; $x++) {
        $draw->point(rand(0, 500), rand(0, 500));
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a polygon

  • « ImagickDraw::point
  • ImagickDraw::polyline »
  • PHP Manual
  • ImagickDraw
  • Draws a polygon

ImagickDraw::polygon

(PECL imagick 2.0.0)

ImagickDraw::polygon — Draws a polygon

Описание

bool ImagickDraw::polygon ( array $coordinates )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a polygon using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Список параметров

coordinates

multidimensional array like array( array( 'x' => 3, 'y' => 4 ), array( 'x' => 2, 'y' => 6 ) );

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::polygon()

<?php
function polygon($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(4);

    $draw->setFillColor($fillColor);

    $points = [
        ['x' => 40 * 5, 'y' => 10 * 5],
        ['x' => 20 * 5, 'y' => 20 * 5],
        ['x' => 70 * 5, 'y' => 50 * 5],
        ['x' => 60 * 5, 'y' => 15 * 5],
    ];

    $draw->polygon($points);

    $image = new \Imagick();
    $image->newImage(500, 300, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws a polyline

  • « ImagickDraw::polygon
  • ImagickDraw::pop »
  • PHP Manual
  • ImagickDraw
  • Draws a polyline

ImagickDraw::polyline

(PECL imagick 2.0.0)

ImagickDraw::polyline — Draws a polyline

Описание

bool ImagickDraw::polyline ( array $coordinates )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

Список параметров

coordinates

array of x and y coordinates: array( array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) )

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::polyline()

<?php
function polyline($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(5);

    $points = [
        ['x' => 40 * 5, 'y' => 10 * 5],
        ['x' => 20 * 5, 'y' => 20 * 5],
        ['x' => 70 * 5, 'y' => 50 * 5],
        ['x' => 60 * 5, 'y' => 15 * 5]
    ];

    $draw->polyline($points);

    $image = new \Imagick();
    $image->newImage(500, 300, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

  • « ImagickDraw::polyline
  • ImagickDraw::popClipPath »
  • PHP Manual
  • ImagickDraw
  • Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

ImagickDraw::pop

(PECL imagick 2.0.0)

ImagickDraw::pop — Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw

Описание

bool ImagickDraw::pop ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Destroys the current ImagickDraw in the stack, and returns to the previously pushed ImagickDraw. Multiple ImagickDraws may exist. It is an error to attempt to pop more ImagickDraws than have been pushed, and it is proper form to pop all ImagickDraws which have been pushed.

Возвращаемые значения

Returns TRUE on success and false on failure.


Terminates a clip path definition

  • « ImagickDraw::pop
  • ImagickDraw::popDefs »
  • PHP Manual
  • ImagickDraw
  • Terminates a clip path definition

ImagickDraw::popClipPath

(PECL imagick 2.0.0)

ImagickDraw::popClipPath — Terminates a clip path definition

Описание

bool ImagickDraw::popClipPath ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Terminates a clip path definition.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Terminates a definition list

  • « ImagickDraw::popClipPath
  • ImagickDraw::popPattern »
  • PHP Manual
  • ImagickDraw
  • Terminates a definition list

ImagickDraw::popDefs

(PECL imagick 2.0.0)

ImagickDraw::popDefs — Terminates a definition list

Описание

bool ImagickDraw::popDefs ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Terminates a definition list.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::popDefs()

<?php
function popDefs($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setstrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->pushDefs();
    $draw->setStrokeColor('white');
    $draw->rectangle(50, 50, 200, 200);
    $draw->popDefs();

    $draw->rectangle(300, 50, 450, 200);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Terminates a pattern definition

  • « ImagickDraw::popDefs
  • ImagickDraw::push »
  • PHP Manual
  • ImagickDraw
  • Terminates a pattern definition

ImagickDraw::popPattern

(PECL imagick 2.0.0)

ImagickDraw::popPattern — Terminates a pattern definition

Описание

bool ImagickDraw::popPattern ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Terminates a pattern definition.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Clones the current ImagickDraw and pushes it to the stack

  • « ImagickDraw::popPattern
  • ImagickDraw::pushClipPath »
  • PHP Manual
  • ImagickDraw
  • Clones the current ImagickDraw and pushes it to the stack

ImagickDraw::push

(PECL imagick 2.0.0)

ImagickDraw::push — Clones the current ImagickDraw and pushes it to the stack

Описание

bool ImagickDraw::push ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Clones the current ImagickDraw to create a new ImagickDraw, which is then added to the ImagickDraw stack. The original drawing ImagickDraw(s) may be returned to by invoking pop(). The ImagickDraws are stored on a ImagickDraw stack. For every Pop there must have already been an equivalent Push.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ImagickDraw::push()

<?php
function push($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillModifiedColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->push();
    $draw->translate(50, 50);
    $draw->rectangle(200, 200, 300, 300);
    $draw->pop();
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Starts a clip path definition

  • « ImagickDraw::push
  • ImagickDraw::pushDefs »
  • PHP Manual
  • ImagickDraw
  • Starts a clip path definition

ImagickDraw::pushClipPath

(PECL imagick 2.0.0)

ImagickDraw::pushClipPath — Starts a clip path definition

Описание

bool ImagickDraw::pushClipPath ( string $clip_mask_id )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Starts a clip path definition which is comprised of any number of drawing commands and terminated by a ImagickDraw::popClipPath() command.

Список параметров

clip_mask_id

Clip mask Id

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Indicates that following commands create named elements for early processing

  • « ImagickDraw::pushClipPath
  • ImagickDraw::pushPattern »
  • PHP Manual
  • ImagickDraw
  • Indicates that following commands create named elements for early processing

ImagickDraw::pushDefs

(PECL imagick 2.0.0)

ImagickDraw::pushDefs — Indicates that following commands create named elements for early processing

Описание

bool ImagickDraw::pushDefs ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Indicates that commands up to a terminating ImagickDraw::popDefs() command create named elements (e.g. clip-paths, textures, etc.) which may safely be processed earlier for the sake of efficiency.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

  • « ImagickDraw::pushDefs
  • ImagickDraw::rectangle »
  • PHP Manual
  • ImagickDraw
  • Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

ImagickDraw::pushPattern

(PECL imagick 2.0.0)

ImagickDraw::pushPattern — Indicates that subsequent commands up to a ImagickDraw::opPattern() command comprise the definition of a named pattern

Описание

bool ImagickDraw::pushPattern ( string $pattern_id , float $x , float $y , float $width , float $height )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Indicates that subsequent commands up to a DrawPopPattern() command comprise the definition of a named pattern. The pattern space is assigned top left corner coordinates, a width and height, and becomes its own drawing space. Anything which can be drawn may be used in a pattern definition. Named patterns may be used as stroke or brush definitions.

Список параметров

pattern_id

the pattern Id

x

x coordinate of the top-left corner

y

y coordinate of the top-left corner

width

width of the pattern

height

height of the pattern

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ImagickDraw::pushPattern()

<?php
function pushPattern($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(1);

    $draw->pushPattern("MyFirstPattern", 0, 0, 50, 50);
    for ($x = 0; $x < 50; $x += 10) {
        for ($y = 0; $y < 50; $y += 5) {
            $positionX = $x + (($y / 5) % 5);
            $draw->rectangle($positionX, $y, $positionX + 5, $y + 5);
        }
    }
    $draw->popPattern();

    $draw->setFillOpacity(0);
    $draw->rectangle(100, 100, 400, 400);
    $draw->setFillOpacity(1);

    $draw->setFillOpacity(1);

    $draw->push();
    $draw->setFillPatternURL('#MyFirstPattern');
    $draw->setFillColor('yellow');
    $draw->rectangle(100, 100, 400, 400);
    $draw->pop();

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Draws a rectangle

  • « ImagickDraw::pushPattern
  • ImagickDraw::render »
  • PHP Manual
  • ImagickDraw
  • Draws a rectangle

ImagickDraw::rectangle

(PECL imagick 2.0.0)

ImagickDraw::rectangle — Draws a rectangle

Описание

bool ImagickDraw::rectangle ( float $x1 , float $y1 , float $x2 , float $y2 )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a rectangle given two coordinates and using the current stroke, stroke width, and fill settings.

Список параметров

x1

x coordinate of the top left corner

y1

y coordinate of the top left corner

x2

x coordinate of the bottom right corner

y2

y coordinate of the bottom right corner

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::rectangle()

<?php
function rectangle($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->rectangle(200, 200, 300, 300);
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Renders all preceding drawing commands onto the image

  • « ImagickDraw::rectangle
  • ImagickDraw::resetVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Renders all preceding drawing commands onto the image

ImagickDraw::render

(PECL imagick 2.0.0)

ImagickDraw::render — Renders all preceding drawing commands onto the image

Описание

bool ImagickDraw::render ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Renders all preceding drawing commands onto the image.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Description

  • « ImagickDraw::render
  • ImagickDraw::rotate »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::resetVectorGraphics

(Информация о версии неизвестна, возможно, только в SVN)

ImagickDraw::resetVectorGraphics — Description

Описание

public void ImagickDraw::resetVectorGraphics ( void )

Resets the vector graphics.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Applies the specified rotation to the current coordinate space

  • « ImagickDraw::resetVectorGraphics
  • ImagickDraw::roundRectangle »
  • PHP Manual
  • ImagickDraw
  • Applies the specified rotation to the current coordinate space

ImagickDraw::rotate

(PECL imagick 2.0.0)

ImagickDraw::rotate — Applies the specified rotation to the current coordinate space

Описание

bool ImagickDraw::rotate ( float $degrees )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Applies the specified rotation to the current coordinate space.

Список параметров

degrees

degrees to rotate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::rotate()

<?php
function rotate($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeOpacity(1);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);
    $draw->setFillColor($fillModifiedColor);
    $draw->rotate(15);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Draws a rounded rectangle

  • « ImagickDraw::rotate
  • ImagickDraw::scale »
  • PHP Manual
  • ImagickDraw
  • Draws a rounded rectangle

ImagickDraw::roundRectangle

(PECL imagick 2.0.0)

ImagickDraw::roundRectangle — Draws a rounded rectangle

Описание

bool ImagickDraw::roundRectangle ( float $x1 , float $y1 , float $x2 , float $y2 , float $rx , float $ry )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Draws a rounded rectangle given two coordinates, x & y corner radiuses and using the current stroke, stroke width, and fill settings.

Список параметров

x1

x coordinate of the top left corner

y1

y coordinate of the top left corner

x2

x coordinate of the bottom right

y2

y coordinate of the bottom right

rx

x rounding

ry

y rounding

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::roundRectangle()

<?php
function roundRectangle($strokeColor, $fillColor, $backgroundColor, $startX, $startY, $endX, $endY, $roundX, $roundY) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->roundRectangle($startX, $startY, $endX, $endY, $roundX, $roundY);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Adjusts the scaling factor

  • « ImagickDraw::roundRectangle
  • ImagickDraw::setClipPath »
  • PHP Manual
  • ImagickDraw
  • Adjusts the scaling factor

ImagickDraw::scale

(PECL imagick 2.0.0)

ImagickDraw::scale — Adjusts the scaling factor

Описание

bool ImagickDraw::scale ( float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Adjusts the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

Список параметров

x

horizontal factor

y

vertical factor

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::scale()

<?php
function scale($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(4);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);
    $draw->setFillColor($fillModifiedColor);
    $draw->scale(1.4, 1.4);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Associates a named clipping path with the image

  • « ImagickDraw::scale
  • ImagickDraw::setClipRule »
  • PHP Manual
  • ImagickDraw
  • Associates a named clipping path with the image

ImagickDraw::setClipPath

(PECL imagick 2.0.0)

ImagickDraw::setClipPath — Associates a named clipping path with the image

Описание

bool ImagickDraw::setClipPath ( string $clip_mask )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Associates a named clipping path with the image. Only the areas drawn on by the clipping path will be modified as long as it remains in effect.

Список параметров

clip_mask

the clipping path name

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setClipPath()

<?php
function setClipPath($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $clipPathName = 'testClipPath';

    $draw->pushClipPath($clipPathName);
    $draw->rectangle(0, 0, 250, 250);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);
    $draw->rectangle(100, 100, 400, 400);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Set the polygon fill rule to be used by the clipping path

  • « ImagickDraw::setClipPath
  • ImagickDraw::setClipUnits »
  • PHP Manual
  • ImagickDraw
  • Set the polygon fill rule to be used by the clipping path

ImagickDraw::setClipRule

(PECL imagick 2.0.0)

ImagickDraw::setClipRule — Set the polygon fill rule to be used by the clipping path

Описание

bool ImagickDraw::setClipRule ( int $fill_rule )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Set the polygon fill rule to be used by the clipping path.

Список параметров

fill_rule

FILLRULE_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setClipRule()

<?php
function setClipRule($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    //\Imagick::FILLRULE_EVENODD
    //\Imagick::FILLRULE_NONZERO

    $clipPathName = 'testClipPath';
    $draw->pushClipPath($clipPathName);
    $draw->setClipRule(\Imagick::FILLRULE_EVENODD);
    $draw->rectangle(0, 0, 300, 500);
    $draw->rectangle(200, 0, 500, 500);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);
    $draw->rectangle(200, 200, 300, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the interpretation of clip path units

  • « ImagickDraw::setClipRule
  • ImagickDraw::setFillAlpha »
  • PHP Manual
  • ImagickDraw
  • Sets the interpretation of clip path units

ImagickDraw::setClipUnits

(PECL imagick 2.0.0)

ImagickDraw::setClipUnits — Sets the interpretation of clip path units

Описание

bool ImagickDraw::setClipUnits ( int $clip_units )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the interpretation of clip path units.

Список параметров

clip_units

the number of clip units

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setClipUnits()

<?php
function setClipUnits($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $clipPathName = 'testClipPath';
    $draw->setClipUnits(\Imagick::RESOLUTION_PIXELSPERINCH);
    $draw->pushClipPath($clipPathName);
    $draw->rectangle(0, 0, 250, 250);
    $draw->popClipPath();
    $draw->setClipPath($clipPathName);

    //RESOLUTION_PIXELSPERINCH
    //RESOLUTION_PIXELSPERCENTIMETER

    $draw->rectangle(200, 200, 300, 300);
    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the opacity to use when drawing using the fill color or fill texture

  • « ImagickDraw::setClipUnits
  • ImagickDraw::setFillColor »
  • PHP Manual
  • ImagickDraw
  • Sets the opacity to use when drawing using the fill color or fill texture

ImagickDraw::setFillAlpha

(PECL imagick 2.0.0)

ImagickDraw::setFillAlpha — Sets the opacity to use when drawing using the fill color or fill texture

Описание

bool ImagickDraw::setFillAlpha ( float $opacity )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the opacity to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

Список параметров

opacity

fill alpha

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFillAlpha()

<?php
function setFillAlpha($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);
    $draw->rectangle(100, 200, 200, 300);
    @$draw->setFillAlpha(0.4);
    $draw->rectangle(300, 200, 400, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the fill color to be used for drawing filled objects

  • « ImagickDraw::setFillAlpha
  • ImagickDraw::setFillOpacity »
  • PHP Manual
  • ImagickDraw
  • Sets the fill color to be used for drawing filled objects

ImagickDraw::setFillColor

(PECL imagick 2.0.0)

ImagickDraw::setFillColor — Sets the fill color to be used for drawing filled objects

Описание

bool ImagickDraw::setFillColor ( ImagickPixel $fill_pixel )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the fill color to be used for drawing filled objects.

Список параметров

fill_pixel

ImagickPixel to use to set the color

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFillColor()

<?php
function setFillColor($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(1.5);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle(50, 50, 150, 150);

    $draw->setFillColor("rgb(200, 32, 32)");
    $draw->rectangle(200, 50, 300, 150);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the opacity to use when drawing using the fill color or fill texture

  • « ImagickDraw::setFillColor
  • ImagickDraw::setFillPatternURL »
  • PHP Manual
  • ImagickDraw
  • Sets the opacity to use when drawing using the fill color or fill texture

ImagickDraw::setFillOpacity

(PECL imagick 2.0.0)

ImagickDraw::setFillOpacity — Sets the opacity to use when drawing using the fill color or fill texture

Описание

bool ImagickDraw::setFillOpacity ( float $fillOpacity )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the opacity to use when drawing using the fill color or fill texture. Fully opaque is 1.0.

Список параметров

fillOpacity

the fill opacity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFillOpacity()

<?php
function setFillOpacity($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeOpacity(1);
    $draw->setStrokeWidth(2);

    $draw->rectangle(100, 200, 200, 300);

    $draw->setFillOpacity(0.4);
    $draw->rectangle(300, 200, 400, 300);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the URL to use as a fill pattern for filling objects

  • « ImagickDraw::setFillOpacity
  • ImagickDraw::setFillRule »
  • PHP Manual
  • ImagickDraw
  • Sets the URL to use as a fill pattern for filling objects

ImagickDraw::setFillPatternURL

(PECL imagick 2.0.0)

ImagickDraw::setFillPatternURL — Sets the URL to use as a fill pattern for filling objects

Описание

bool ImagickDraw::setFillPatternURL ( string $fill_url )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the URL to use as a fill pattern for filling objects. Only local URLs ("#identifier") are supported at this time. These local URLs are normally created by defining a named fill pattern with DrawPushPattern/DrawPopPattern.

Список параметров

fill_url

URL to use to obtain fill pattern.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets the fill rule to use while drawing polygons

  • « ImagickDraw::setFillPatternURL
  • ImagickDraw::setFont »
  • PHP Manual
  • ImagickDraw
  • Sets the fill rule to use while drawing polygons

ImagickDraw::setFillRule

(PECL imagick 2.0.0)

ImagickDraw::setFillRule — Sets the fill rule to use while drawing polygons

Описание

bool ImagickDraw::setFillRule ( int $fill_rule )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the fill rule to use while drawing polygons.

Список параметров

fill_rule

FILLRULE_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFillRule()

<?php
function setFillRule($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $fillRules = [\Imagick::FILLRULE_NONZERO, \Imagick::FILLRULE_EVENODD];

    $points = 11;
    $size = 150;

    $draw->translate(175, 160);

    for ($x = 0; $x < 2; $x++) {
        $draw->setFillRule($fillRules[$x]);
        $draw->pathStart();
        for ($n = 0; $n < $points * 2; $n++) {

            if ($n >= $points) {
                $angle = fmod($n * 360 * 4 / $points, 360) * pi() / 180;
            }
            else {
                $angle = fmod($n * 360 * 3 / $points, 360) * pi() / 180;
            }

            $positionX = $size * sin($angle);
            $positionY = $size * cos($angle);

            if ($n == 0) {
                $draw->pathMoveToAbsolute($positionX, $positionY);
            }
            else {
                $draw->pathLineToAbsolute($positionX, $positionY);
            }
        }

        $draw->pathClose();
        $draw->pathFinish();

        $draw->translate(325, 0);
    }

    $image = new \Imagick();
    $image->newImage(700, 320, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the fully-specified font to use when annotating with text

  • « ImagickDraw::setFillRule
  • ImagickDraw::setFontFamily »
  • PHP Manual
  • ImagickDraw
  • Sets the fully-specified font to use when annotating with text

ImagickDraw::setFont

(PECL imagick 2.0.0)

ImagickDraw::setFont — Sets the fully-specified font to use when annotating with text

Описание

bool ImagickDraw::setFont ( string $font_name )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the fully-specified font to use when annotating with text.

Список параметров

font_name

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::setFont()

<?php
function setFont($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);
    $draw->setFontSize(36);

    $draw->setFont("../fonts/Arial.ttf");
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFont("../fonts/Consolas.ttf");
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFont("../fonts/CANDY.TTF");
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFont("../fonts/Inconsolata-dz.otf");
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font family to use when annotating with text

  • « ImagickDraw::setFont
  • ImagickDraw::setFontSize »
  • PHP Manual
  • ImagickDraw
  • Sets the font family to use when annotating with text

ImagickDraw::setFontFamily

(PECL imagick 2.0.0)

ImagickDraw::setFontFamily — Sets the font family to use when annotating with text

Описание

bool ImagickDraw::setFontFamily ( string $font_family )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the font family to use when annotating with text.

Список параметров

font_family

the font family

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::setFontFamily()

<?php
function setFontFamily($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel($strokeColor);
    $fillColor = new \ImagickPixel($fillColor);

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(2);

    $draw->setFontSize(48);

    $draw->setFontFamily("Times");
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontFamily("AvantGarde");
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontFamily("NewCenturySchlbk");
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFontFamily("Palatino");
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(450, 250, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font pointsize to use when annotating with text

  • « ImagickDraw::setFontFamily
  • ImagickDraw::setFontStretch »
  • PHP Manual
  • ImagickDraw
  • Sets the font pointsize to use when annotating with text

ImagickDraw::setFontSize

(PECL imagick 2.0.0)

ImagickDraw::setFontSize — Sets the font pointsize to use when annotating with text

Описание

bool ImagickDraw::setFontSize ( float $pointsize )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the font pointsize to use when annotating with text.

Список параметров

pointsize

the point size

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFontSize()

<?php
function setFontSize($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeOpacity(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFont("../fonts/Arial.ttf");

    $sizes = [24, 36, 48, 60, 72];

    foreach ($sizes as $size) {
        $draw->setFontSize($size);
        $draw->annotation(50, ($size * $size / 16), "Lorem Ipsum!");
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font stretch to use when annotating with text

  • « ImagickDraw::setFontSize
  • ImagickDraw::setFontStyle »
  • PHP Manual
  • ImagickDraw
  • Sets the font stretch to use when annotating with text

ImagickDraw::setFontStretch

(PECL imagick 2.0.0)

ImagickDraw::setFontStretch — Sets the font stretch to use when annotating with text

Описание

bool ImagickDraw::setFontStretch ( int $fontStretch )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the font stretch to use when annotating with text. The AnyStretch enumeration acts as a wild-card "don't care" option.

Список параметров

fontStretch

STRETCH_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFontStretch()

<?php
function setFontStretch($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(36);

    $fontStretchTypes = [
        \Imagick::STRETCH_ULTRACONDENSED,
        \Imagick::STRETCH_CONDENSED,
        \Imagick::STRETCH_SEMICONDENSED,
        \Imagick::STRETCH_SEMIEXPANDED,
        \Imagick::STRETCH_EXPANDED,
        \Imagick::STRETCH_EXTRAEXPANDED,
        \Imagick::STRETCH_ULTRAEXPANDED,
        \Imagick::STRETCH_ANY
    ];

    $offset = 0;
    foreach ($fontStretchTypes as $fontStretch) {
        $draw->setFontStretch($fontStretch);
        $draw->annotation(50, 75 + $offset, "Lorem Ipsum!");
        $offset += 50;
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font style to use when annotating with text

  • « ImagickDraw::setFontStretch
  • ImagickDraw::setFontWeight »
  • PHP Manual
  • ImagickDraw
  • Sets the font style to use when annotating with text

ImagickDraw::setFontStyle

(PECL imagick 2.0.0)

ImagickDraw::setFontStyle — Sets the font style to use when annotating with text

Описание

bool ImagickDraw::setFontStyle ( int $style )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option.

Список параметров

style

STYLETYPE_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setFontStyle()

<?php
function setFontStyle($fillColor, $strokeColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(36);
    $draw->setFontStyle(\Imagick::STYLE_NORMAL);
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontStyle(\Imagick::STYLE_ITALIC);
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontStyle(\Imagick::STYLE_OBLIQUE);
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(350, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the font weight

  • « ImagickDraw::setFontStyle
  • ImagickDraw::setGravity »
  • PHP Manual
  • ImagickDraw
  • Sets the font weight

ImagickDraw::setFontWeight

(PECL imagick 2.0.0)

ImagickDraw::setFontWeight — Sets the font weight

Описание

bool ImagickDraw::setFontWeight ( int $font_weight )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the font weight to use when annotating with text.

Список параметров

font_weight

Возвращаемые значения

Примеры

Пример #1 ImagickDraw::setFontWeight()

<?php
function setFontWeight($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(1);

    $draw->setFontSize(36);

    $draw->setFontWeight(100);
    $draw->annotation(50, 50, "Lorem Ipsum!");

    $draw->setFontWeight(200);
    $draw->annotation(50, 100, "Lorem Ipsum!");

    $draw->setFontWeight(400);
    $draw->annotation(50, 150, "Lorem Ipsum!");

    $draw->setFontWeight(800);
    $draw->annotation(50, 200, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the text placement gravity

  • « ImagickDraw::setFontWeight
  • ImagickDraw::setResolution »
  • PHP Manual
  • ImagickDraw
  • Sets the text placement gravity

ImagickDraw::setGravity

(PECL imagick 2.0.0)

ImagickDraw::setGravity — Sets the text placement gravity

Описание

bool ImagickDraw::setGravity ( int $gravity )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the text placement gravity to use when annotating with text.

Список параметров

gravity

GRAVITY_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setGravity()

<?php
function setGravity($fillColor, $strokeColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(24);

    $gravitySettings = array(
        \Imagick::GRAVITY_NORTHWEST => 'NorthWest',
        \Imagick::GRAVITY_NORTH => 'North',
        \Imagick::GRAVITY_NORTHEAST => 'NorthEast',
        \Imagick::GRAVITY_WEST => 'West',
        \Imagick::GRAVITY_CENTER => 'Centre',
        \Imagick::GRAVITY_SOUTHWEST => 'SouthWest',
        \Imagick::GRAVITY_SOUTH => 'South',
        \Imagick::GRAVITY_SOUTHEAST => 'SouthEast',
        \Imagick::GRAVITY_EAST => 'East'
    );

    $draw->setFont("../fonts/Arial.ttf");

    foreach ($gravitySettings as $type => $description) {
        $draw->setGravity($type);
        $draw->annotation(50, 50, '"' . $description . '"');
    }

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Description

  • « ImagickDraw::setGravity
  • ImagickDraw::setStrokeAlpha »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setResolution

(Информация о версии неизвестна, возможно, только в SVN)

ImagickDraw::setResolution — Description

Описание

public void ImagickDraw::setResolution ( string $x_resolution , string $y_resolution )

Sets the resolution.

Список параметров

x_resolution

y_resolution

Возвращаемые значения


Specifies the opacity of stroked object outlines

  • « ImagickDraw::setResolution
  • ImagickDraw::setStrokeAntialias »
  • PHP Manual
  • ImagickDraw
  • Specifies the opacity of stroked object outlines

ImagickDraw::setStrokeAlpha

(PECL imagick 2.0.0)

ImagickDraw::setStrokeAlpha — Specifies the opacity of stroked object outlines

Описание

bool ImagickDraw::setStrokeAlpha ( float $opacity )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the opacity of stroked object outlines.

Список параметров

opacity

opacity

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeAlpha()

<?php
function setStrokeAlpha($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeOpacity(0.1);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Controls whether stroked outlines are antialiased

  • « ImagickDraw::setStrokeAlpha
  • ImagickDraw::setStrokeColor »
  • PHP Manual
  • ImagickDraw
  • Controls whether stroked outlines are antialiased

ImagickDraw::setStrokeAntialias

(PECL imagick 2.0.0)

ImagickDraw::setStrokeAntialias — Controls whether stroked outlines are antialiased

Описание

bool ImagickDraw::setStrokeAntialias ( bool $stroke_antialias )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Controls whether stroked outlines are antialiased. Stroked outlines are antialiased by default. When antialiasing is disabled stroked pixels are thresholded to determine if the stroke color or underlying canvas color should be used.

Список параметров

stroke_antialias

the antialias setting

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeAntialias()

<?php
function setStrokeAntialias($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setStrokeAntialias(false);
    $draw->line(100, 100, 400, 105);

    $draw->line(100, 140, 400, 185);

    $draw->setStrokeAntialias(true);
    $draw->line(100, 110, 400, 115);
    $draw->line(100, 150, 400, 195);

    $image = new \Imagick();
    $image->newImage(500, 250, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the color used for stroking object outlines

  • « ImagickDraw::setStrokeAntialias
  • ImagickDraw::setStrokeDashArray »
  • PHP Manual
  • ImagickDraw
  • Sets the color used for stroking object outlines

ImagickDraw::setStrokeColor

(PECL imagick 2.0.0)

ImagickDraw::setStrokeColor — Sets the color used for stroking object outlines

Описание

bool ImagickDraw::setStrokeColor ( ImagickPixel $stroke_pixel )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the color used for stroking object outlines.

Список параметров

stroke_pixel

the stroke color

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeColor()

<?php
function setStrokeColor($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(5);

    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);

    $draw->setStrokeOpacity(0.1);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the pattern of dashes and gaps used to stroke paths

  • « ImagickDraw::setStrokeColor
  • ImagickDraw::setStrokeDashOffset »
  • PHP Manual
  • ImagickDraw
  • Specifies the pattern of dashes and gaps used to stroke paths

ImagickDraw::setStrokeDashArray

(PECL imagick 2.0.0)

ImagickDraw::setStrokeDashArray — Specifies the pattern of dashes and gaps used to stroke paths

Описание

bool ImagickDraw::setStrokeDashArray ( array $dashArray )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the pattern of dashes and gaps used to stroke paths. The strokeDashArray represents an array of numbers that specify the lengths of alternating dashes and gaps in pixels. If an odd number of values is provided, then the list of values is repeated to yield an even number of values. To remove an existing dash array, pass a zero number_elements argument and null dash_array. A typical strokeDashArray_ array might contain the members 5 3 2.

Список параметров

dashArray

array of floats

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickDraw::setStrokeDashArray()

<?php
function setStrokeDashArray($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);

    $draw->setStrokeDashArray([10, 10]);
    $draw->rectangle(100, 50, 225, 175);

    $draw->setStrokeDashArray([20, 5, 20, 5, 5, 5,]);
    $draw->rectangle(275, 50, 400, 175);

    $draw->setStrokeDashArray([20, 5, 20, 5, 5]);
    $draw->rectangle(100, 200, 225, 350);

    $draw->setStrokeDashArray([1, 1, 1, 1, 2, 2, 3, 3, 5, 5, 8, 8, 13, 13, 21, 21, 34, 34, 55, 55, 89, 89, 144, 144, 233, 233, 377, 377, 610, 610, 987, 987, 1597, 1597, 2584, 2584, 4181, 4181,]);

    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the offset into the dash pattern to start the dash

  • « ImagickDraw::setStrokeDashArray
  • ImagickDraw::setStrokeLineCap »
  • PHP Manual
  • ImagickDraw
  • Specifies the offset into the dash pattern to start the dash

ImagickDraw::setStrokeDashOffset

(PECL imagick 2.0.0)

ImagickDraw::setStrokeDashOffset — Specifies the offset into the dash pattern to start the dash

Описание

bool ImagickDraw::setStrokeDashOffset ( float $dash_offset )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the offset into the dash pattern to start the dash.

Список параметров

dash_offset

dash offset

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeDashOffset()

<?php
function setStrokeDashOffset($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(4);
    $draw->setStrokeDashArray([20, 20]);
    $draw->setStrokeDashOffset(0);
    $draw->rectangle(100, 50, 225, 175);

    //Start the dash effect halfway through the solid portion
    $draw->setStrokeDashOffset(10);
    $draw->rectangle(275, 50, 400, 175);

    //Start the dash effect on the space portion
    $draw->setStrokeDashOffset(20);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeDashOffset(5);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the shape to be used at the end of open subpaths when they are stroked

  • « ImagickDraw::setStrokeDashOffset
  • ImagickDraw::setStrokeLineJoin »
  • PHP Manual
  • ImagickDraw
  • Specifies the shape to be used at the end of open subpaths when they are stroked

ImagickDraw::setStrokeLineCap

(PECL imagick 2.0.0)

ImagickDraw::setStrokeLineCap — Specifies the shape to be used at the end of open subpaths when they are stroked

Описание

bool ImagickDraw::setStrokeLineCap ( int $linecap )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the shape to be used at the end of open subpaths when they are stroked.

Список параметров

linecap

LINECAP_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeLineCap()

<?php
function setStrokeLineCap($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(25);

    $lineTypes = [\Imagick::LINECAP_BUTT, \Imagick::LINECAP_ROUND, \Imagick::LINECAP_SQUARE,];

    $offset = 0;

    foreach ($lineTypes as $lineType) {
        $draw->setStrokeLineCap($lineType);
        $draw->line(50 + $offset, 50, 50 + $offset, 250);
        $offset += 50;
    }

    $imagick = new \Imagick();
    $imagick->newImage(300, 300, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Specifies the shape to be used at the corners of paths when they are stroked

  • « ImagickDraw::setStrokeLineCap
  • ImagickDraw::setStrokeMiterLimit »
  • PHP Manual
  • ImagickDraw
  • Specifies the shape to be used at the corners of paths when they are stroked

ImagickDraw::setStrokeLineJoin

(PECL imagick 2.0.0)

ImagickDraw::setStrokeLineJoin — Specifies the shape to be used at the corners of paths when they are stroked

Описание

bool ImagickDraw::setStrokeLineJoin ( int $linejoin )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the shape to be used at the corners of paths (or other vector shapes) when they are stroked.

Список параметров

linejoin

LINEJOIN_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeLineJoin()

<?php
function setStrokeLineJoin($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);

    $draw->setStrokeWidth(20);

    $offset = 220;

    $lineJoinStyle = [
        \Imagick::LINEJOIN_MITER,
        \Imagick::LINEJOIN_ROUND,
        \Imagick::LINEJOIN_BEVEL,
        ];

    for ($x = 0; $x < count($lineJoinStyle); $x++) {
        $draw->setStrokeLineJoin($lineJoinStyle[$x]);
        $points = [
            ['x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
            ['x' => 20 * 5, 'y' => 20 * 5 + $x * $offset],
            ['x' => 70 * 5, 'y' => 50 * 5 + $x * $offset],
            ['x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
        ];

        $draw->polyline($points);
    }

    $image = new \Imagick();
    $image->newImage(500, 700, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the miter limit

  • « ImagickDraw::setStrokeLineJoin
  • ImagickDraw::setStrokeOpacity »
  • PHP Manual
  • ImagickDraw
  • Specifies the miter limit

ImagickDraw::setStrokeMiterLimit

(PECL imagick 2.0.0)

ImagickDraw::setStrokeMiterLimit — Specifies the miter limit

Описание

bool ImagickDraw::setStrokeMiterLimit ( int $miterlimit )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the miter limit. When two line segments meet at a sharp angle and miter joins have been specified for 'lineJoin', it is possible for the miter to extend far beyond the thickness of the line stroking the path. The miterLimit' imposes a limit on the ratio of the miter length to the 'lineWidth'.

Список параметров

miterlimit

the miter limit

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeMiterLimit()

<?php
function setStrokeMiterLimit($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeOpacity(0.6);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(10);

    $yOffset = 100;

    $draw->setStrokeLineJoin(\Imagick::LINEJOIN_MITER);

    for ($y = 0; $y < 3; $y++) {

        $draw->setStrokeMiterLimit(40 * $y);

        $points = [
            ['x' => 22 * 3, 'y' => 15 * 4 + $y * $yOffset],
            ['x' => 20 * 3, 'y' => 20 * 4 + $y * $yOffset],
            ['x' => 70 * 5, 'y' => 45 * 4 + $y * $yOffset],
        ];

        $draw->polygon($points);
    }

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    $image->setImageType(\Imagick::IMGTYPE_PALETTE);
    $image->setImageCompressionQuality(100);
    $image->stripImage();

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies the opacity of stroked object outlines

  • « ImagickDraw::setStrokeMiterLimit
  • ImagickDraw::setStrokePatternURL »
  • PHP Manual
  • ImagickDraw
  • Specifies the opacity of stroked object outlines

ImagickDraw::setStrokeOpacity

(PECL imagick 2.0.0)

ImagickDraw::setStrokeOpacity — Specifies the opacity of stroked object outlines

Описание

bool ImagickDraw::setStrokeOpacity ( float $stroke_opacity )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the opacity of stroked object outlines.

Список параметров

stroke_opacity

stroke opacity. 1.0 is fully opaque

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeOpacity()

<?php
function setStrokeOpacity($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(10);
    $draw->setStrokeOpacity(1);
    $draw->line(100, 80, 400, 125);
    $draw->rectangle(25, 200, 150, 350);
    $draw->setStrokeOpacity(0.5);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(200, 200, 325, 350);
    $draw->setStrokeOpacity(0.2);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(375, 200, 500, 350);

    $image = new \Imagick();
    $image->newImage(550, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Sets the pattern used for stroking object outlines

  • « ImagickDraw::setStrokeOpacity
  • ImagickDraw::setStrokeWidth »
  • PHP Manual
  • ImagickDraw
  • Sets the pattern used for stroking object outlines

ImagickDraw::setStrokePatternURL

(PECL imagick 2.0.0)

ImagickDraw::setStrokePatternURL — Sets the pattern used for stroking object outlines

Описание

bool ImagickDraw::setStrokePatternURL ( string $stroke_url )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the pattern used for stroking object outlines.

Список параметров

stroke_url

stroke URL

Возвращаемые значения

imagick.imagickdraw.return.success;


Sets the width of the stroke used to draw object outlines

  • « ImagickDraw::setStrokePatternURL
  • ImagickDraw::setTextAlignment »
  • PHP Manual
  • ImagickDraw
  • Sets the width of the stroke used to draw object outlines

ImagickDraw::setStrokeWidth

(PECL imagick 2.0.0)

ImagickDraw::setStrokeWidth — Sets the width of the stroke used to draw object outlines

Описание

bool ImagickDraw::setStrokeWidth ( float $stroke_width )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the width of the stroke used to draw object outlines.

Список параметров

stroke_width

stroke width

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setStrokeWidth()

<?php
function setStrokeWidth($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeWidth(1);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->line(100, 100, 400, 145);
    $draw->rectangle(100, 200, 225, 350);
    $draw->setStrokeWidth(5);
    $draw->line(100, 120, 400, 165);
    $draw->rectangle(275, 200, 400, 350);

    $image = new \Imagick();
    $image->newImage(500, 400, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Specifies a text alignment

  • « ImagickDraw::setStrokeWidth
  • ImagickDraw::setTextAntialias »
  • PHP Manual
  • ImagickDraw
  • Specifies a text alignment

ImagickDraw::setTextAlignment

(PECL imagick 2.0.0)

ImagickDraw::setTextAlignment — Specifies a text alignment

Описание

bool ImagickDraw::setTextAlignment ( int $alignment )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies a text alignment to be applied when annotating with text.

Список параметров

alignment

ALIGN_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setTextAlignment()

<?php
function setTextAlignment($strokeColor, $fillColor, $backgroundColor) {
    $draw = new \ImagickDraw();
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(36);

    $draw->setTextAlignment(\Imagick::ALIGN_LEFT);
    $draw->annotation(250, 75, "Lorem Ipsum!");
    $draw->setTextAlignment(\Imagick::ALIGN_CENTER);
    $draw->annotation(250, 150, "Lorem Ipsum!");
    $draw->setTextAlignment(\Imagick::ALIGN_RIGHT);
    $draw->annotation(250, 225, "Lorem Ipsum!");
    $draw->line(250, 0, 250, 500);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Controls whether text is antialiased

  • « ImagickDraw::setTextAlignment
  • ImagickDraw::setTextDecoration »
  • PHP Manual
  • ImagickDraw
  • Controls whether text is antialiased

ImagickDraw::setTextAntialias

(PECL imagick 2.0.0)

ImagickDraw::setTextAntialias — Controls whether text is antialiased

Описание

bool ImagickDraw::setTextAntialias ( bool $antiAlias )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Controls whether text is antialiased. Text is antialiased by default.

Список параметров

antiAlias

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setTextAntialias()

<?php
function setTextAntialias($fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();
    $draw->setStrokeColor('none');
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(1);
    $draw->setFontSize(32);
    $draw->setTextAntialias(false);
    $draw->annotation(5, 30, "Lorem Ipsum!");
    $draw->setTextAntialias(true);
    $draw->annotation(5, 65, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(220, 80, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    //Scale the image so that people can see the aliasing.
    $imagick->scaleImage(220 * 6, 80 * 6);
    $imagick->cropImage(640, 480, 0, 0);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Specifies a decoration

  • « ImagickDraw::setTextAntialias
  • ImagickDraw::setTextEncoding »
  • PHP Manual
  • ImagickDraw
  • Specifies a decoration

ImagickDraw::setTextDecoration

(PECL imagick 2.0.0)

ImagickDraw::setTextDecoration — Specifies a decoration

Описание

bool ImagickDraw::setTextDecoration ( int $decoration )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies a decoration to be applied when annotating with text.

Список параметров

decoration

DECORATION_ constant

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setTextDecoration()

<?php
function setTextDecoration($strokeColor, $fillColor, $backgroundColor, $textDecoration) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->setTextDecoration($textDecoration);
    $draw->annotation(50, 75, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 200, $backgroundColor);
    $imagick->setImageFormat("png");
    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Specifies the text code set

  • « ImagickDraw::setTextDecoration
  • ImagickDraw::setTextInterlineSpacing »
  • PHP Manual
  • ImagickDraw
  • Specifies the text code set

ImagickDraw::setTextEncoding

(PECL imagick 2.0.0)

ImagickDraw::setTextEncoding — Specifies the text code set

Описание

bool ImagickDraw::setTextEncoding ( string $encoding )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the code set to use for text annotations. The only character encoding which may be specified at this time is "UTF-8" for representing Unicode as a sequence of bytes. Specify an empty string to set text encoding to the system's default. Successful text annotation using Unicode may require fonts designed to support Unicode.

Список параметров

encoding

the encoding name

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Description

  • « ImagickDraw::setTextEncoding
  • ImagickDraw::setTextInterwordSpacing »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextInterlineSpacing

(Информация о версии неизвестна, возможно, только в SVN)

ImagickDraw::setTextInterlineSpacing — Description

Описание

public void ImagickDraw::setTextInterlineSpacing ( float $spacing )

Sets the text interline spacing.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

spacing

Возвращаемые значения


Description

  • « ImagickDraw::setTextInterlineSpacing
  • ImagickDraw::setTextKerning »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextInterwordSpacing

(Информация о версии неизвестна, возможно, только в SVN)

ImagickDraw::setTextInterwordSpacing — Description

Описание

public void ImagickDraw::setTextInterwordSpacing ( float $spacing )

Sets the text interword spacing.

Список параметров

spacing

Возвращаемые значения


Description

  • « ImagickDraw::setTextInterwordSpacing
  • ImagickDraw::setTextUnderColor »
  • PHP Manual
  • ImagickDraw
  • Description

ImagickDraw::setTextKerning

(Информация о версии неизвестна, возможно, только в SVN)

ImagickDraw::setTextKerning — Description

Описание

public void ImagickDraw::setTextKerning ( float $kerning )

Sets the text kerning

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

kerning

Возвращаемые значения


Specifies the color of a background rectangle

  • « ImagickDraw::setTextKerning
  • ImagickDraw::setVectorGraphics »
  • PHP Manual
  • ImagickDraw
  • Specifies the color of a background rectangle

ImagickDraw::setTextUnderColor

(PECL imagick 2.0.0)

ImagickDraw::setTextUnderColor — Specifies the color of a background rectangle

Описание

bool ImagickDraw::setTextUnderColor ( ImagickPixel $under_color )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Specifies the color of a background rectangle to place under text annotations.

Список параметров

under_color

the under color

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setTextUnderColor()

<?php
function setTextUnderColor($strokeColor, $fillColor, $backgroundColor, $textUnderColor) {
    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);
    $draw->annotation(50, 75, "Lorem Ipsum!");
    $draw->setTextUnderColor($textUnderColor);
    $draw->annotation(50, 175, "Lorem Ipsum!");

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the vector graphics

  • « ImagickDraw::setTextUnderColor
  • ImagickDraw::setViewbox »
  • PHP Manual
  • ImagickDraw
  • Sets the vector graphics

ImagickDraw::setVectorGraphics

(PECL imagick 2.0.0)

ImagickDraw::setVectorGraphics — Sets the vector graphics

Описание

bool ImagickDraw::setVectorGraphics ( string $xml )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the vector graphics associated with the specified ImagickDraw object. Use this method with ImagickDraw::getVectorGraphics() as a method to persist the vector graphics state.

Список параметров

xml

xml containing the vector graphics

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 ImagickDraw::setVectorGraphics()

<?php
function setVectorGraphics() {
    //Setup a draw object with some drawing in it.
    $draw = new \ImagickDraw();
    $draw->setFillColor("red");
    $draw->circle(20, 20, 50, 50);
    $draw->setFillColor("blue");
    $draw->circle(50, 70, 50, 50);
    $draw->rectangle(50, 120, 80, 150);

    //Get the drawing as a string
    $SVG = $draw->getVectorGraphics();

    //$svg is a string, and could be saved anywhere a string can be saved

    //Use the saved drawing to generate a new draw object
    $draw2 = new \ImagickDraw();
    //Apparently the SVG text is missing the root element.
    $draw2->setVectorGraphics("<root>".$SVG."</root>");

    $imagick = new \Imagick();
    $imagick->newImage(200, 200, 'white');
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw2);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Sets the overall canvas size

  • « ImagickDraw::setVectorGraphics
  • ImagickDraw::skewX »
  • PHP Manual
  • ImagickDraw
  • Sets the overall canvas size

ImagickDraw::setViewbox

(PECL imagick 2.0.0)

ImagickDraw::setViewbox — Sets the overall canvas size

Описание

bool ImagickDraw::setViewbox ( int $x1 , int $y1 , int $x2 , int $y2 )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

Список параметров

x1

left x coordinate

y1

left y coordinate

x2

right x coordinate

y2

right y coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::setViewBox()

<?php
function setViewBox($strokeColor, $fillColor, $backgroundColor) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->setStrokeWidth(2);
    $draw->setFontSize(72);

    /*

    Sets the overall canvas size to be recorded with the drawing vector data. Usually this will be specified using the same size as the canvas image. When the vector data is saved to SVG or MVG formats, the viewbox is use to specify the size of the canvas image that a viewer will render the vector data on.

     */

    $draw->circle(250, 250, 250, 0);
    $draw->setviewbox(0, 0, 200, 200);
    $draw->circle(125, 250, 250, 250);
    $draw->translate(250, 125);
    $draw->circle(0, 0, 125, 0);

    $imagick = new \Imagick();
    $imagick->newImage(500, 500, $backgroundColor);
    $imagick->setImageFormat("png");

    $imagick->drawImage($draw);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Skews the current coordinate system in the horizontal direction

  • « ImagickDraw::setViewbox
  • ImagickDraw::skewY »
  • PHP Manual
  • ImagickDraw
  • Skews the current coordinate system in the horizontal direction

ImagickDraw::skewX

(PECL imagick 2.0.0)

ImagickDraw::skewX — Skews the current coordinate system in the horizontal direction

Описание

bool ImagickDraw::skewX ( float $degrees )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Skews the current coordinate system in the horizontal direction.

Список параметров

degrees

degrees to skew

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::skewX()

<?php
function skewX($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
               $startX, $startY, $endX, $endY, $skew) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);
    $draw->setFillColor($fillModifiedColor);
    $draw->skewX($skew);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Skews the current coordinate system in the vertical direction

  • « ImagickDraw::skewX
  • ImagickDraw::translate »
  • PHP Manual
  • ImagickDraw
  • Skews the current coordinate system in the vertical direction

ImagickDraw::skewY

(PECL imagick 2.0.0)

ImagickDraw::skewY — Skews the current coordinate system in the vertical direction

Описание

bool ImagickDraw::skewY ( float $degrees )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Skews the current coordinate system in the vertical direction.

Список параметров

degrees

degrees to skew

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::skewY()

<?php
function skewY($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
               $startX, $startY, $endX, $endY, $skew) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setStrokeWidth(2);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);
    $draw->setFillColor($fillModifiedColor);
    $draw->skewY($skew);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");
    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Applies a translation to the current coordinate system

  • « ImagickDraw::skewY
  • ImagickPixel »
  • PHP Manual
  • ImagickDraw
  • Applies a translation to the current coordinate system

ImagickDraw::translate

(PECL imagick 2.0.0)

ImagickDraw::translate — Applies a translation to the current coordinate system

Описание

bool ImagickDraw::translate ( float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Applies a translation to the current coordinate system which moves the coordinate system origin to the specified coordinate.

Список параметров

x

horizontal translation

y

vertical translation

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ImagickDraw::translate()

<?php
function translate($strokeColor, $fillColor, $backgroundColor, $fillModifiedColor,
                   $startX, $startY, $endX, $endY, $translateX, $translateY) {

    $draw = new \ImagickDraw();

    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $draw->setFillColor($fillModifiedColor);
    $draw->translate($translateX, $translateY);
    $draw->rectangle($startX, $startY, $endX, $endY);

    $image = new \Imagick();
    $image->newImage(500, 500, $backgroundColor);
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Класс ImagickPixel

(PECL imagick 2.0.0)

Обзор классов

ImagickPixel {
bool clear ( void )
__construct ([ string $color ] )
bool destroy ( void )
array getColor ([ bool $normalized = false ] )
string getColorAsString ( void )
int getColorCount ( void )
public mixed getColorQuantum ( void )
float getColorValue ( int $color )
public mixed getColorValueQuantum ( void )
array getHSL ( void )
public int getIndex ( void )
bool isPixelSimilar ( ImagickPixel $color , float $fuzz )
public bool isPixelSimilarQuantum ( string $color [, string $fuzz ] )
bool isSimilar ( ImagickPixel $color , float $fuzz )
bool setColor ( string $color )
public void setcolorcount ( string $colorCount )
bool setColorValue ( int $color , float $value )
public void setColorValueQuantum ( int $color , mixed $value )
bool setHSL ( float $hue , float $saturation , float $luminosity )
public void setIndex ( int $index )
}

Содержание

  • ImagickPixel::clear — Очищает ресурсы, связанные с этим объектом
  • ImagickPixel::__construct — Конструктор ImagickPixel
  • ImagickPixel::destroy — Освобождает ресурсы, связанные с этим объектом
  • ImagickPixel::getColor — Возвращает цвет
  • ImagickPixel::getColorAsString — Возвращает цвет в виде строки
  • ImagickPixel::getColorCount — Возвращает количество цветов связанных с этим цветом
  • ImagickPixel::getColorQuantum — Description
  • ImagickPixel::getColorValue — Возвращает нормализованное значение цвета канала
  • ImagickPixel::getColorValueQuantum — Description
  • ImagickPixel::getHSL — Возвращает нормализованный HSL-цвет объекта ImagickPixel
  • ImagickPixel::getIndex — Description
  • ImagickPixel::isPixelSimilar — Check the distance between this color and another
  • ImagickPixel::isPixelSimilarQuantum — Description
  • ImagickPixel::isSimilar — Проверить разницу между этим цветом и другим
  • ImagickPixel::setColor — Устанавливает цвет
  • ImagickPixel::setColorCount — Description
  • ImagickPixel::setColorValue — Устанавливает нормализованное значение одного из каналов
  • ImagickPixel::setColorValueQuantum — Description
  • ImagickPixel::setHSL — Установка нормализованного HSL цвета
  • ImagickPixel::setIndex — Description


Очищает ресурсы, связанные с этим объектом

  • « ImagickPixel
  • ImagickPixel::__construct »
  • PHP Manual
  • ImagickPixel
  • Очищает ресурсы, связанные с этим объектом

ImagickPixel::clear

(PECL imagick 2.0.0)

ImagickPixel::clear — Очищает ресурсы, связанные с этим объектом

Описание

bool ImagickPixel::clear ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Очищает объект ImagickPixel, оставляя его в первоначальном состоянии и удаляет все цвета связанные с ним.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Конструктор ImagickPixel

  • « ImagickPixel::clear
  • ImagickPixel::destroy »
  • PHP Manual
  • ImagickPixel
  • Конструктор ImagickPixel

ImagickPixel::__construct

(PECL imagick 2.0.0)

ImagickPixel::__construct — Конструктор ImagickPixel

Описание

ImagickPixel::__construct ([ string $color ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создается объект ImagickPixel. Если указан цвет, то объект создается и инициализируется с этим цветом перед возвращением.

Список параметров

color

Необязательная строка с цветом для использования в инициализации этого объекта.

Возвращаемые значения

В случае успеха возвращает объект ImagickPixel, в противном случае создаст исключение ImagickPixelException.

Примеры

Пример #1 ImagickPixel::construct()

<?php
function construct() {

    $columns = 4;

    $exampleColors = array(
        "rgba(100%, 0%, 0%, 0.5)",
        "hsb(33.3333%, 100%,  75%)", // medium green
        "hsl(120, 255,   191.25)", //medium green
        "graya(50%, 0.5)", //  semi-transparent mid gray
        "LightCoral", "none", //"cmyk(0.9, 0.48, 0.83, 0.50)",
        "#f00", //  #rgb
        "#ff0000", //  #rrggbb
        "#ff0000ff", //  #rrggbbaa
        "#ffff00000000", //  #rrrrggggbbbb
        "#ffff00000000ffff", //  #rrrrggggbbbbaaaa
        "rgb(255, 0, 0)", //  an integer in the range 0—255 for each component
        "rgb(100.0%, 0.0%, 0.0%)", //  a float in the range 0—100% for each component
        "rgb(255, 0, 0)", //  range 0 - 255
        "rgba(255, 0, 0, 1.0)", //  the same, with an explicit alpha value
        "rgb(100%, 0%, 0%)", //  range 0.0% - 100.0%
        "rgba(100%, 0%, 0%, 1.0)", //  the same, with an explicit alpha value
    );

    $draw = new \ImagickDraw();
    $count = 0;
    $black = new \ImagickPixel('rgb(0, 0, 0)');

    foreach ($exampleColors as $exampleColor) {
        $color = new \ImagickPixel($exampleColor);

        $draw->setstrokewidth(1.0);
        $draw->setStrokeColor($black);
        $draw->setFillColor($color);
        $offsetX = ($count % $columns) * 50 + 5;
        $offsetY = intval($count / $columns) * 50 + 5;
        $draw->rectangle(0 + $offsetX, 0 + $offsetY, 40 + $offsetX, 40 + $offsetY);
        $count++;
    }

    $image = new \Imagick();
    $image->newImage(350, 350, "blue");
    $image->setImageFormat("png");
    $image->drawImage($draw);
    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Освобождает ресурсы, связанные с этим объектом

  • « ImagickPixel::__construct
  • ImagickPixel::getColor »
  • PHP Manual
  • ImagickPixel
  • Освобождает ресурсы, связанные с этим объектом

ImagickPixel::destroy

(PECL imagick 2.0.0)

ImagickPixel::destroy — Освобождает ресурсы, связанные с этим объектом

Описание

bool ImagickPixel::destroy ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Освобождает все ресурсы используемые объектом ImagickPixel и удалят все связанные с ним цвета. Объект не следует использовать после его уничтожения.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Возвращает цвет

  • « ImagickPixel::destroy
  • ImagickPixel::getColorAsString »
  • PHP Manual
  • ImagickPixel
  • Возвращает цвет

ImagickPixel::getColor

(PECL imagick 2.0.0)

ImagickPixel::getColor — Возвращает цвет

Описание

array ImagickPixel::getColor ([ bool $normalized = false ] )

Возвращает цвет в виде массива, описанный в объекте ImagickPixel. Если у цвета установлен канал прозрачности, то он будет отражен в четвертом значении списка.

Список параметров

normalized

Нормализовать значение цвета

Возвращаемые значения

Массив значений канала. Каждое значение нормализуется, если параметру будет передано TRUE. В случае ошибки создаст исключение ImagickPixelException.

Примеры

Пример #1 Пример использования Imagick::getColor()

<?php

// Создание ImagickPixel со стандартным цветом 'brown'
$color = new ImagickPixel('brown');

// настройка цвета с альфа каналом 25%
$color->setColorValue(Imagick::COLOR_ALPHA, 64 / 256.0);

$colorInfo = $color->getColor();

echo "Стандартные значения" . PHP_EOL;
print_r($colorInfo);

$colorInfo = $color->getColor(true);

echo "Нормализованные значения:" . PHP_EOL;
print_r($colorInfo);

?>

Результат выполнения данного примера:

Стандартные значения
Array
(
    [r] => 165
    [g] => 42
    [b] => 42
    [a] => 0
)
Нормализованные значения:
Array
(
    [r] => 0.64705882352941
    [g] => 0.16470588235294
    [b] => 0.16470588235294
    [a] => 0.25000381475547
)


Возвращает цвет в виде строки

  • « ImagickPixel::getColor
  • ImagickPixel::getColorCount »
  • PHP Manual
  • ImagickPixel
  • Возвращает цвет в виде строки

ImagickPixel::getColorAsString

(PECL imagick 2.1.0)

ImagickPixel::getColorAsString — Возвращает цвет в виде строки

Описание

string ImagickPixel::getColorAsString ( void )

Возвращает цвет объекта ImagickPixel в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает цвет объекта ImagickPixel в виде строки.

Примеры

Пример #1 Пример использования Imagick::getColorAsString()

<?php

// Создание ImagickPixel со стандартным цветом 'brown'
$color = new ImagickPixel('brown');

$color->setColorValue(Imagick::COLOR_ALPHA, 64 / 256.0);

$colorInfo = $color->getColorAsString();

print_r($colorInfo);
?>

Результат выполнения данного примера:

rgb(165,42,42)

Примечания

Замечание: Альфа канал не возвращается

Эта функция не возвращает значения альфа канала для цвета.


Возвращает количество цветов связанных с этим цветом

  • « ImagickPixel::getColorAsString
  • ImagickPixel::getColorQuantum »
  • PHP Manual
  • ImagickPixel
  • Возвращает количество цветов связанных с этим цветом

ImagickPixel::getColorCount

(PECL imagick 2.0.0)

ImagickPixel::getColorCount — Возвращает количество цветов связанных с этим цветом

Описание

int ImagickPixel::getColorCount ( void )

Возвращает количество цветов связанных с этим цветом.

Количество пикселей изображения, имеющих тот же цвет, что и этот ImagickPixel.

ImagickPixel::getColorCount может работать только с объектами ImagickPixel созданными с помощью Imagick::getImageHistogram()

Возвращаемые значения

В случае успеха возвращает количество цветов в виде числа, в противном случае создаст исключение ImagickPixelException.

Примеры

Пример #1 ImagickPixel getColorCount()

<?php
    $imagick = new \Imagick();
    $imagick->newPseudoImage(640, 480, "magick:logo");
    $histogramElements = $imagick->getImageHistogram();
    $lastColor = array_pop($histogramElements);
    echo "Last pixel color count is: ".$lastColor->getColorCount();
?>

Вывод будет примерно такой:

Last pixel color count is: 256244


Description

  • « ImagickPixel::getColorCount
  • ImagickPixel::getColorValue »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getColorQuantum

(Информация о версии неизвестна, возможно, только в SVN)

ImagickPixel::getColorQuantum — Description

Описание

public mixed ImagickPixel::getColorQuantum ( void )

Returns the color of the pixel in an array as Quantum values. If ImageMagick was compiled as HDRI these will be floats, otherwise they will be integers.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The quantum value of the color element. Float if ImageMagick was compiled with HDRI, otherwise an int.


Возвращает нормализованное значение цвета канала

  • « ImagickPixel::getColorQuantum
  • ImagickPixel::getColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Возвращает нормализованное значение цвета канала

ImagickPixel::getColorValue

(PECL imagick 2.0.0)

ImagickPixel::getColorValue — Возвращает нормализованное значение цвета канала

Описание

float ImagickPixel::getColorValue ( int $color )

Возвращает значение указанного цвета канала, как дробное число между 0 и 1.

Список параметров

color

Цвет, для которого получается значение, заданный одной из констант Imagick. Это RGB цвет, CMYK цвет, альфа канал или прозрачность (Imagick::COLOR_BLUE, Imagick::COLOR_MAGENTA);

Возвращаемые значения

Значение канала, в виде нормализованного дробного числа, в случае ошибки будет создано исключение ImagickPixelException.

Примеры

Пример #1 Пример использования Imagick::getColorValue()

<?php

$color = new ImagickPixel('rgba(90%, 20%, 20%, 0.75)');

echo "Alpha value is ".$color->getColorValue(Imagick::COLOR_ALPHA).PHP_EOL;
echo "".PHP_EOL;
echo "Red value is ".$color->getColorValue(Imagick::COLOR_RED).PHP_EOL;
echo "Green value is ".$color->getColorValue(Imagick::COLOR_GREEN).PHP_EOL;
echo "Blue value is ".$color->getColorValue(Imagick::COLOR_BLUE).PHP_EOL;
echo "".PHP_EOL;
echo "Cyan value is ".$color->getColorValue(Imagick::COLOR_CYAN).PHP_EOL;
echo "Magenta value is ".$color->getColorValue(Imagick::COLOR_MAGENTA).PHP_EOL;
echo "Yellow value is ".$color->getColorValue(Imagick::COLOR_YELLOW).PHP_EOL;
echo "Black value is ".$color->getColorValue(Imagick::COLOR_BLACK).PHP_EOL;

?>

Результат выполнения данного примера:

Alpha value is 0.74999618524453

Red value is 0.90000762951095
Green value is 0.2
Blue value is 0.2

Cyan value is 0.90000762951095
Magenta value is 0.2
Yellow value is 0.2
Black value is 0


Description

  • « ImagickPixel::getColorValue
  • ImagickPixel::getHSL »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getColorValueQuantum

(Информация о версии неизвестна, возможно, только в SVN)

ImagickPixel::getColorValueQuantum — Description

Описание

public mixed ImagickPixel::getColorValueQuantum ( void )

Gets the quantum value of a color in the ImagickPixel. Return value is a float if ImageMagick was compiled with HDRI, otherwise an integer.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The quantum value of the color element. Float if ImageMagick was compiled with HDRI, otherwise an int.

Примеры

Пример #1 ImagickPixel::getColorValueQuantum()

<?php
        $color = new \ImagickPixel('rgb(128, 5, 255)');
        $colorRed = $color->getColorValueQuantum(\Imagick::COLOR_RED);
        $colorGreen = $color->getColorValueQuantum(\Imagick::COLOR_GREEN);
        $colorBlue = $color->getColorValueQuantum(\Imagick::COLOR_BLUE);
        $colorAlpha = $color->getColorValueQuantum(\Imagick::COLOR_ALPHA);

        printf(
            "Red: %s Green: %s  Blue %s Alpha: %s",
            $colorRed,
            $colorGreen,
            $colorBlue,
            $colorAlpha
        );

?>


Возвращает нормализованный HSL-цвет объекта ImagickPixel

  • « ImagickPixel::getColorValueQuantum
  • ImagickPixel::getIndex »
  • PHP Manual
  • ImagickPixel
  • Возвращает нормализованный HSL-цвет объекта ImagickPixel

ImagickPixel::getHSL

(PECL imagick 2.0.0)

ImagickPixel::getHSL — Возвращает нормализованный HSL-цвет объекта ImagickPixel

Описание

array ImagickPixel::getHSL ( void )

Возвращает нормализованный HSL-цвет, описанный объектом ImagickPixel, каждое из трех значений является дробным числом между 0.0 и 1.0.

Возвращаемые значения

Возвращает HSL-значение в виде массива с ключами "hue", "saturation" и "luminosity". В случае ошибки будет создано исключение ImagickPixelException.

Примеры

Пример #1 Пример использования Imagick::getHSL()

<?php

$color = new ImagickPixel('rgb(90%, 10%, 10%)');

$colorInfo = $color->getHSL();

print_r($colorInfo);

?>

Результат выполнения данного примера:

Array
(
    [hue] => 0
    [saturation] => 0.80001220740379
    [luminosity] => 0.50000762951095
)

Примечания

Замечание:

Доступно с библиотекой ImageMagick версии 6.2.9 или выше.


Description

  • « ImagickPixel::getHSL
  • ImagickPixel::isPixelSimilar »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::getIndex

(Информация о версии неизвестна, возможно, только в SVN)

ImagickPixel::getIndex — Description

Описание

public int ImagickPixel::getIndex ( void )

Gets the colormap index of the pixel wand.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Check the distance between this color and another

  • « ImagickPixel::getIndex
  • ImagickPixel::isPixelSimilarQuantum »
  • PHP Manual
  • ImagickPixel
  • Check the distance between this color and another

ImagickPixel::isPixelSimilar

(Информация о версии неизвестна, возможно, только в SVN)

ImagickPixel::isPixelSimilar — Check the distance between this color and another

Описание

bool ImagickPixel::isPixelSimilar ( ImagickPixel $color , float $fuzz )

Checks the distance between the color described by this ImagickPixel object and that of the provided object, by plotting their RGB values on the color cube. If the distance between the two points is less than the fuzz value given, the colors are similar. This method replaces ImagickPixel::isSimilar() and correctly normalises the fuzz value to ImageMagick QuantumRange.

Список параметров

color

The ImagickPixel object to compare this object against.

fuzz

The maximum distance within which to consider these colors as similar. The theoretical maximum for this value is the square root of three (1.732).

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Description

  • « ImagickPixel::isPixelSimilar
  • ImagickPixel::isSimilar »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::isPixelSimilarQuantum

(Информация о версии неизвестна, возможно, только в SVN)

ImagickPixel::isPixelSimilarQuantum — Description

Описание

public bool ImagickPixel::isPixelSimilarQuantum ( string $color [, string $fuzz ] )

Returns true if the distance between two colors is less than the specified distance. The fuzz value should be in the range 0-QuantumRange. The maximum value represents the longest possible distance in the colorspace. e.g. from RGB(0, 0, 0) to RGB(255, 255, 255) for the RGB colorspace

Список параметров

color

fuzz

Возвращаемые значения


Проверить разницу между этим цветом и другим

  • « ImagickPixel::isPixelSimilarQuantum
  • ImagickPixel::setColor »
  • PHP Manual
  • ImagickPixel
  • Проверить разницу между этим цветом и другим

ImagickPixel::isSimilar

(PECL imagick 2.0.0)

ImagickPixel::isSimilar — Проверить разницу между этим цветом и другим

Описание

bool ImagickPixel::isSimilar ( ImagickPixel $color , float $fuzz )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Проверяется разница цвета, описанного текущим объектом ImagickPixel и цвета в переданном объекте, путем построения их RGB значений в цветовом кубе. Если разница между ними меньше чем переданное fuzz-значение, то цвета считаются одинаковыми. Устарел в пользу ImagickPixel::isPixelSimilar().

Список параметров

color

Объект ImagickPixel для сравнения с текущим объектом.

fuzz

Максимальная разница, при которой цвета будут считаться одинаковыми. Теоретическим максимумом для этого значения можно считать квадратный корень из трех (1.732).

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickPixel::isSimilar()

<?php
        // Тесты ниже написаны с учетом максимальной дистанции 255
        // следовательно мы должны масштабировать их на корень из 3 - длину диагонали
        // единичного куба
        $root3 = 1.732050807568877;

        $tests = array(
            ['rgb(245, 0, 0)',      'rgb(255, 0, 0)',   9 / $root3,         false,],
            ['rgb(245, 0, 0)',      'rgb(255, 0, 0)',  10 / $root3,         true,],
            ['rgb(0, 0, 0)',        'rgb(7, 7, 0)',     9 / $root3,         false,],
            ['rgb(0, 0, 0)',        'rgb(7, 7, 0)',    10 / $root3,         true,],
            ['rgba(0, 0, 0, 1)',    'rgba(7, 7, 0, 1)', 9 / $root3,         false,],
            ['rgba(0, 0, 0, 1)',    'rgba(7, 7, 0, 1)',    10 / $root3,     true,],
            ['rgb(128, 128, 128)',  'rgb(128, 128, 120)',   7 / $root3,     false,],
            ['rgb(128, 128, 128)',  'rgb(128, 128, 120)',   8 / $root3,     true,],
            ['rgb(0, 0, 0)',        'rgb(255, 255, 255)',   254.9,          false,],
            ['rgb(0, 0, 0)',        'rgb(255, 255, 255)',   255,            true,],
            ['rgb(255, 0, 0)',      'rgb(0, 255, 255)',     254.9,          false,],
            ['rgb(255, 0, 0)',      'rgb(0, 255, 255)',     255,            true,],
            ['black',               'rgba(0, 0, 0)',        0.0,            true],
            ['black',               'rgba(10, 0, 0, 1.0)',  10.0 / $root3,  true],);

        $output = "<table width='100%' class='infoTable'><thead>
                <tr>
                <th>
                Color 1
                </th>
                <th>
                Color 2
                </th>
                <th>
                    Тестовая дистанция * 255
                </th>
                <th>
                    Есть в пределах досягаемости
                </th>
                </tr>
        </thead>";

        $output .= "<tbody>";

        foreach ($tests as $testInfo) {
            $color1 = $testInfo[0];
            $color2 = $testInfo[1];
            $distance = $testInfo[2];
            $expectation = $testInfo[3];
            $testDistance = ($distance / 255.0);

            $color1Pixel = new \ImagickPixel($color1);
            $color2Pixel = new \ImagickPixel($color2);

            $isSimilar = $color1Pixel->isPixelSimilar($color2Pixel, $testDistance);

            if ($isSimilar !== $expectation) {
                echo "Тест дистанции провален. Цвет [$color1] в сравнении с [$color2] не попадает в дистанцию $testDistance.".NL;
            }

            $layout = "<tr>
                <td>%s</td>
                <td>%s</td>
                <td>%s</td>
                <td style='text-align: center;'>%s</td>
            </tr>";

            $output .= sprintf(
                $layout,
                $color1,
                $color2,
                $distance,
                $isSimilar ? 'да' : 'нет'
            );
        }

        $output .= "</tbody></table>";

        return $output;

?>


Устанавливает цвет

  • « ImagickPixel::isSimilar
  • ImagickPixel::setColorCount »
  • PHP Manual
  • ImagickPixel
  • Устанавливает цвет

ImagickPixel::setColor

(PECL imagick 2.0.0)

ImagickPixel::setColor — Устанавливает цвет

Описание

bool ImagickPixel::setColor ( string $color )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Устанавливает цвет объекта ImagickPixel указанной строкой (например "blue", "#0000ff", "rgb(0,0,255)", "cmyk(100,100,100,10)" и т.д.).

Список параметров

color

Определение цвета для использования в порядке инициализации объекта ImagickPixel.

Возвращаемые значения

Возвращает TRUE если цвет был установлен, в противном случае FALSE.

Примеры

Пример #1 ImagickPixel::setColor()

<?php
function setColor() {
    $draw = new \ImagickDraw();

    $strokeColor = new \ImagickPixel('green');
    $fillColor = new \ImagickPixel();
    $fillColor->setColor('rgba(100%, 75%, 0%, 1.0)');

    $draw->setstrokewidth(3.0);
    $draw->setStrokeColor($strokeColor);
    $draw->setFillColor($fillColor);
    $draw->rectangle(200, 200, 300, 300);

    $image = new \Imagick();
    $image->newImage(500, 500, "SteelBlue2");
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Description

  • « ImagickPixel::setColor
  • ImagickPixel::setColorValue »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setColorCount

(Информация о версии неизвестна, возможно, только в SVN)

ImagickPixel::setColorCount — Description

Описание

public void ImagickPixel::setcolorcount ( string $colorCount )

Sets the color count associated with this color.

Список параметров

colorCount

Возвращаемые значения


Устанавливает нормализованное значение одного из каналов

  • « ImagickPixel::setColorCount
  • ImagickPixel::setColorValueQuantum »
  • PHP Manual
  • ImagickPixel
  • Устанавливает нормализованное значение одного из каналов

ImagickPixel::setColorValue

(PECL imagick 2.0.0)

ImagickPixel::setColorValue — Устанавливает нормализованное значение одного из каналов

Описание

bool ImagickPixel::setColorValue ( int $color , float $value )

Устанавливает значение указанного канала текущего объекта, при условии того, что новое значение находится между 0 и 1. Эта функция может быть использована для установки прозрачности канала объекта ImagickPixel.

Список параметров

color

Одна из констант цвета Imagick, т.е. \Imagick::COLOR_GREEN или \Imagick::COLOR_ALPHA.

value

Значение для установки в этом канале, в пределах от 0 до 1.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Пример использования Imagick::setColorValue()

<?php

$color  = new \ImagickPixel('firebrick');

$color->setColorValue(Imagick::COLOR_ALPHA, 0.5);

print_r($color->getcolor(true));
?>

Результат выполнения данного примера:

Array
(
    [r] => 0.69803921568627
    [g] => 0.13333333333333
    [b] => 0.13333333333333
    [a] => 0.50000762951095
)


Description

  • « ImagickPixel::setColorValue
  • ImagickPixel::setHSL »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setColorValueQuantum

(Информация о версии неизвестна, возможно, только в SVN)

ImagickPixel::setColorValueQuantum — Description

Описание

public void ImagickPixel::setColorValueQuantum ( int $color , mixed $value )

Sets the quantum value of a color element of the ImagickPixel.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

color

Which color element to set e.g. \Imagick::COLOR_GREEN.

value

The quantum value to set the color element to. This should be a float if ImageMagick was compiled with HDRI otherwise an int in the range 0 to Imagick::getQuantum().

Возвращаемые значения

Примеры

Пример #1 ImagickPixel::setColorValueQuantum()

<?php
function setColorValueQuantum() {
    $image = new \Imagick();

    $quantumRange = $image->getQuantumRange();

    $draw = new \ImagickDraw();
    $color = new \ImagickPixel('blue');
    $color->setcolorValueQuantum(\Imagick::COLOR_RED, 128 * $quantumRange['quantumRangeLong'] / 256);

    $draw->setstrokewidth(1.0);
    $draw->setStrokeColor($color);
    $draw->setFillColor($color);
    $draw->rectangle(200, 200, 300, 300);

    $image->newImage(500, 500, "SteelBlue2");
    $image->setImageFormat("png");

    $image->drawImage($draw);

    header("Content-Type: image/png");
    echo $image->getImageBlob();
}

?>


Установка нормализованного HSL цвета

  • « ImagickPixel::setColorValueQuantum
  • ImagickPixel::setIndex »
  • PHP Manual
  • ImagickPixel
  • Установка нормализованного HSL цвета

ImagickPixel::setHSL

(PECL imagick 2.0.0)

ImagickPixel::setHSL — Установка нормализованного HSL цвета

Описание

bool ImagickPixel::setHSL ( float $hue , float $saturation , float $luminosity )

Устанавливает цвет в объекте ImagickPixel используя нормализованные значения оттенка, насыщенности и яркости.

Список параметров

hue

Нормализованное значение оттенка, в виде значения круговой радуги (между 0 и 1), где нулевым значением будет красный цвет.

saturation

Нормализованное значение насыщенности, где 1 означает полное насыщение.

luminosity

Нормализованное значение яркости, по шкале от 0 (черный) до 1 (белый), при установленном HS в значении 0.5.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 Пример использования ImagickPixel::setHSL()

<?php

//Создание почти чистого красного цвета
$color = new ImagickPixel('rgb(90%, 10%, 10%)');

//Получение значений HSL
$colorInfo = $color->getHSL();

//Поворачиваем оттенок на 180 градусов
$newHue = $colorInfo['hue'] + 0.5;
if ($newHue > 1) {
    $newHue = $newHue - 1;
}

//Устанавливаем ImagickPixel в новый цвет
$colorInfo = $color->setHSL($newHue, $colorInfo['saturation'], $colorInfo['luminosity']);

//Проверяем, что новый цвет является голубым/зеленым
$colorInfo = $color->getcolor();
print_r($colorInfo);

?>

Результат выполнения данного примера:

Array
(
    [r] => 26
    [g] => 230
    [b] => 230
    [a] => 255
)

Примечания

Замечание:

Доступно с версии 6.2.9 и выше библиотеки ImageMagick.


Description

  • « ImagickPixel::setHSL
  • ImagickPixelIterator »
  • PHP Manual
  • ImagickPixel
  • Description

ImagickPixel::setIndex

(Информация о версии неизвестна, возможно, только в SVN)

ImagickPixel::setIndex — Description

Описание

public void ImagickPixel::setIndex ( int $index )

Sets the colormap index of the pixel wand.

Список параметров

index

Возвращаемые значения


Класс ImagickPixelIterator

(PECL imagick 2.0.0)

Обзор классов

ImagickPixelIterator {
bool clear ( void )
__construct ( Imagick $wand )
bool destroy ( void )
array getCurrentIteratorRow ( void )
int getIteratorRow ( void )
array getNextIteratorRow ( void )
array getPreviousIteratorRow ( void )
bool newPixelIterator ( Imagick $wand )
bool newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows )
bool resetIterator ( void )
bool setIteratorFirstRow ( void )
bool setIteratorLastRow ( void )
bool setIteratorRow ( int $row )
bool syncIterator ( void )
}

Содержание

  • ImagickPixelIterator::clear — Очищает ресурсы, связанные с PixelIterator
  • ImagickPixelIterator::__construct — Конструктор ImagickPixelIterator
  • ImagickPixelIterator::destroy — Освобождает ресурсы, связанные с PixelIterator
  • ImagickPixelIterator::getCurrentIteratorRow — Возвращает текущий ряд объекта ImagickPixel
  • ImagickPixelIterator::getIteratorRow — Возвращает текущий пиксель итератора ряда
  • ImagickPixelIterator::getNextIteratorRow — Возвращает следующий ряд итератора пикселей
  • ImagickPixelIterator::getPreviousIteratorRow — Возвращает предыдущий ряд
  • ImagickPixelIterator::newPixelIterator — Возвращает новый итератор пикселей
  • ImagickPixelIterator::newPixelRegionIterator — Возвращает новый итератор пикселей
  • ImagickPixelIterator::resetIterator — Сбрасывает итератор пикселей
  • ImagickPixelIterator::setIteratorFirstRow — Устанавливает итератор пикселей на первый ряд
  • ImagickPixelIterator::setIteratorLastRow — Устанавливает итератор пикселей на последний ряд
  • ImagickPixelIterator::setIteratorRow — Устанавливает номер ряда в итераторе пикселей
  • ImagickPixelIterator::syncIterator — Синхронизирует итератор пикселей


Очищает ресурсы, связанные с PixelIterator

  • « ImagickPixelIterator
  • ImagickPixelIterator::__construct »
  • PHP Manual
  • ImagickPixelIterator
  • Очищает ресурсы, связанные с PixelIterator

ImagickPixelIterator::clear

(PECL imagick 2.0.0)

ImagickPixelIterator::clear — Очищает ресурсы, связанные с PixelIterator

Описание

bool ImagickPixelIterator::clear ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Очищает ресурсы, связанные с PixelIterator.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickPixelIterator::clear()

<?php
function clear($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));

    $imageIterator = $imagick->getPixelRegionIterator(100, 100, 250, 200);

    /* Походим по строкам пикселей */
    foreach ($imageIterator as $pixels) {
        /** @var $pixel \ImagickPixel */
        /* Походим по пикселям в строке (столбцы) */
        foreach ($pixels as $column => $pixel) {
            if ($column % 2) {
                /* Красим каждый второй пиксель черным*/
                $pixel->setColor("rgba(0, 0, 0, 0)");
            }
        }
        /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
        $imageIterator->syncIterator();
    }

    $imageIterator->clear();

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Конструктор ImagickPixelIterator

  • « ImagickPixelIterator::clear
  • ImagickPixelIterator::destroy »
  • PHP Manual
  • ImagickPixelIterator
  • Конструктор ImagickPixelIterator

ImagickPixelIterator::__construct

(PECL imagick 2.0.0)

ImagickPixelIterator::__construct — Конструктор ImagickPixelIterator

Описание

ImagickPixelIterator::__construct ( Imagick $wand )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Конструктор ImagickPixelIterator

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickPixelIterator::construct()

<?php
function construct($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = new \ImagickPixelIterator($imagick);

    /* Походим по строкам пикселей */
    foreach ($imageIterator as $pixels) {
        /* Походим по пикселям в строке (столбцы) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {
                /* Красим каждый второй пиксель черным*/
                $pixel->setColor("rgba(0, 0, 0, 0)");
            }
        }
        /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
        $imageIterator->syncIterator();
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Освобождает ресурсы, связанные с PixelIterator

  • « ImagickPixelIterator::__construct
  • ImagickPixelIterator::getCurrentIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Освобождает ресурсы, связанные с PixelIterator

ImagickPixelIterator::destroy

(PECL imagick 2.0.0)

ImagickPixelIterator::destroy — Освобождает ресурсы, связанные с PixelIterator

Описание

bool ImagickPixelIterator::destroy ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Освобождает ресурсы, связанные с PixelIterator.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Возвращает текущий ряд объекта ImagickPixel

  • « ImagickPixelIterator::destroy
  • ImagickPixelIterator::getIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает текущий ряд объекта ImagickPixel

ImagickPixelIterator::getCurrentIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getCurrentIteratorRow — Возвращает текущий ряд объекта ImagickPixel

Описание

array ImagickPixelIterator::getCurrentIteratorRow ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущий ряд в виде массива объектов ImagickPixel из пиксельного итератора.

Возвращаемые значения

Возвращает ряд в виде массива объектов ImagickPixel, который сам может быть итерирован.


Возвращает текущий пиксель итератора ряда

  • « ImagickPixelIterator::getCurrentIteratorRow
  • ImagickPixelIterator::getNextIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает текущий пиксель итератора ряда

ImagickPixelIterator::getIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getIteratorRow — Возвращает текущий пиксель итератора ряда

Описание

int ImagickPixelIterator::getIteratorRow ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущий пиксель итератора ряда.

Возвращаемые значения

Возвращает смещение ряда в виде числа, в случае ошибки выдаст исключение ImagickPixelIteratorException.


Возвращает следующий ряд итератора пикселей

  • « ImagickPixelIterator::getIteratorRow
  • ImagickPixelIterator::getPreviousIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает следующий ряд итератора пикселей

ImagickPixelIterator::getNextIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getNextIteratorRow — Возвращает следующий ряд итератора пикселей

Описание

array ImagickPixelIterator::getNextIteratorRow ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает следующий ряд в виде массива пикселей из итератора пикселей.

Возвращаемые значения

Возвращает следующий ряд в виде массива объектов ImagickPixel, в случае ошибки выдаст исключение ImagickPixelIteratorException.

Примеры

Пример #1 ImagickPixelIterator::getNextIteratorRow()

<?php
function getNextIteratorRow($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelIterator();

    $count = 0;
    while ($pixels = $imageIterator->getNextIteratorRow()) {
        if (($count % 3) == 0) {
            /* Походим по пикселям в строке (столбцы) */
            foreach ($pixels as $column => $pixel) {
                /** @var $pixel \ImagickPixel */
                if ($column % 2) {
                    /* Красим каждый второй пиксель черным*/
                    $pixel->setColor("rgba(0, 0, 0, 0)");
                }
            }
            /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
            $imageIterator->syncIterator();
        }

        $count += 1;
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Возвращает предыдущий ряд

  • « ImagickPixelIterator::getNextIteratorRow
  • ImagickPixelIterator::newPixelIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает предыдущий ряд

ImagickPixelIterator::getPreviousIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::getPreviousIteratorRow — Возвращает предыдущий ряд

Описание

array ImagickPixelIterator::getPreviousIteratorRow ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает предыдущий ряд в виде массива пикселей из итератора пикселей.

Возвращаемые значения

Возвращает предыдущий ряд в виде массива объектов ImagickPixel, в случае ошибки выдаст исключение ImagickPixelIteratorException.


Возвращает новый итератор пикселей

  • « ImagickPixelIterator::getPreviousIteratorRow
  • ImagickPixelIterator::newPixelRegionIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает новый итератор пикселей

ImagickPixelIterator::newPixelIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::newPixelIterator — Возвращает новый итератор пикселей

Описание

bool ImagickPixelIterator::newPixelIterator ( Imagick $wand )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает новый итератор пикселей.

Возвращаемые значения

В случае успешной работы возвращает TRUE. Исключение ImagickPixelIteratorException.


Возвращает новый итератор пикселей

  • « ImagickPixelIterator::newPixelIterator
  • ImagickPixelIterator::resetIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Возвращает новый итератор пикселей

ImagickPixelIterator::newPixelRegionIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::newPixelRegionIterator — Возвращает новый итератор пикселей

Описание

bool ImagickPixelIterator::newPixelRegionIterator ( Imagick $wand , int $x , int $y , int $columns , int $rows )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает новый итератор пикселей.

Список параметров

wand

x

y

columns

rows

Возвращаемые значения

Возвращает новый объект ImagickPixelIterator в случае успеха; в противном случае выдаст исключение ImagickPixelIteratorException.


Сбрасывает итератор пикселей

  • « ImagickPixelIterator::newPixelRegionIterator
  • ImagickPixelIterator::setIteratorFirstRow »
  • PHP Manual
  • ImagickPixelIterator
  • Сбрасывает итератор пикселей

ImagickPixelIterator::resetIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::resetIterator — Сбрасывает итератор пикселей

Описание

bool ImagickPixelIterator::resetIterator ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Сбрасывает итератор пикселей. Используйте совместно с ImagickPixelIterator::getNextIteratorRow() для перебора всех пикселей в контейнере пикселей.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickPixelIterator::resetIterator()

<?php
function resetIterator($imagePath) {

    $imagick = new \Imagick(realpath($imagePath));

    $imageIterator = $imagick->getPixelIterator();

    /* Походим по строкам пикселей */
    foreach ($imageIterator as $pixels) {
        /* Походим по пикселям в строке (столбцы) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 2) {

                /* Делаем каждый второй пиксель на 25% красным*/
                $pixel->setColorValue(\Imagick::COLOR_RED, 64);
            }
        }
        /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
        $imageIterator->syncIterator();
    }

    $imageIterator->resetiterator();

    /* Походим по строкам пикселей */
    foreach ($imageIterator as $pixels) {
        /* Походим по пикселям в строке (столбцы) */
        foreach ($pixels as $column => $pixel) {
            /** @var $pixel \ImagickPixel */
            if ($column % 3) {
                $pixel->setColorValue(\Imagick::COLOR_BLUE, 64); /* Делаем каждый второй пиксель немного синим*/
                //$pixel->setColor("rgba(0, 0, 128, 0)"); /* Paint every second pixel black*/
            }
        }
        $imageIterator->syncIterator(); /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
    }

    $imageIterator->clear();

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Устанавливает итератор пикселей на первый ряд

  • « ImagickPixelIterator::resetIterator
  • ImagickPixelIterator::setIteratorLastRow »
  • PHP Manual
  • ImagickPixelIterator
  • Устанавливает итератор пикселей на первый ряд

ImagickPixelIterator::setIteratorFirstRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorFirstRow — Устанавливает итератор пикселей на первый ряд

Описание

bool ImagickPixelIterator::setIteratorFirstRow ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Устанавливает внутренний указатель итератора пикселей на первый ряд.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Устанавливает итератор пикселей на последний ряд

  • « ImagickPixelIterator::setIteratorFirstRow
  • ImagickPixelIterator::setIteratorRow »
  • PHP Manual
  • ImagickPixelIterator
  • Устанавливает итератор пикселей на последний ряд

ImagickPixelIterator::setIteratorLastRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorLastRow — Устанавливает итератор пикселей на последний ряд

Описание

bool ImagickPixelIterator::setIteratorLastRow ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Устанавливает внутренний указатель итератора пикселей на последний ряд.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


Устанавливает номер ряда в итераторе пикселей

  • « ImagickPixelIterator::setIteratorLastRow
  • ImagickPixelIterator::syncIterator »
  • PHP Manual
  • ImagickPixelIterator
  • Устанавливает номер ряда в итераторе пикселей

ImagickPixelIterator::setIteratorRow

(PECL imagick 2.0.0)

ImagickPixelIterator::setIteratorRow — Устанавливает номер ряда в итераторе пикселей

Описание

bool ImagickPixelIterator::setIteratorRow ( int $row )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Устанавливает номер ряда в итераторе пикселей.

Список параметров

row

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Примеры

Пример #1 ImagickPixelIterator::setIteratorRow()

<?php
function setIteratorRow($imagePath) {
    $imagick = new \Imagick(realpath($imagePath));
    $imageIterator = $imagick->getPixelRegionIterator(200, 100, 200, 200);

    for ($x = 0; $x < 20; $x++) {
        $imageIterator->setIteratorRow($x * 5);
        $pixels = $imageIterator->getCurrentIteratorRow();
        /* Походим по пикселям в строке (столбцы) */
        foreach ($pixels as $pixel) {
            /** @var $pixel \ImagickPixel */
            /* Красим каждый второй пиксель черным*/
            $pixel->setColor("rgba(0, 0, 0, 0)");
        }

        /* Синхронизируем итератор. Это необходимо для делать на каждой итерации */
        $imageIterator->syncIterator();
    }

    header("Content-Type: image/jpg");
    echo $imagick;
}

?>


Синхронизирует итератор пикселей

  • « ImagickPixelIterator::setIteratorRow
  • ImagickKernel »
  • PHP Manual
  • ImagickPixelIterator
  • Синхронизирует итератор пикселей

ImagickPixelIterator::syncIterator

(PECL imagick 2.0.0)

ImagickPixelIterator::syncIterator — Синхронизирует итератор пикселей

Описание

bool ImagickPixelIterator::syncIterator ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Синхронизирует итератор пикселей.

Возвращаемые значения

В случае успешной работы возвращает TRUE.


The ImagickKernel class

(PECL imagick >= 3.3.0)

Введение

Обзор классов

ImagickKernel {
/* Методы */
public void addKernel ( ImagickKernel $ImagickKernel )
public void addUnityKernel ( void )
public static ImagickKernel fromBuiltin ( string $kernelType , string $kernelString )
public static ImagickKernel fromMatrix ( array $matrix [, array $origin ] )
public array getMatrix ( void )
public void scale ( void )
public array separate ( void )
}

Содержание

  • ImagickKernel::addKernel — Description
  • ImagickKernel::addUnityKernel — Description
  • ImagickKernel::fromBuiltIn — Description
  • ImagickKernel::fromMatrix — Description
  • ImagickKernel::getMatrix — Description
  • ImagickKernel::scale — Description
  • ImagickKernel::separate — Description


Description

  • « ImagickKernel
  • ImagickKernel::addUnityKernel »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::addKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addKernel — Description

Описание

public void ImagickKernel::addKernel ( ImagickKernel $ImagickKernel )

Attach another kernel to this kernel to allow them to both be applied in a single morphology or filter function. Returns the new combined kernel.

Список параметров

ImagickKernel

Возвращаемые значения

Примеры

Пример #1 ImagickKernel::addKernel()

<?php
function addKernel($imagePath) {
    $matrix1 = [
        [-1, -1, -1],
        [ 0,  0,  0],
        [ 1,  1,  1],
    ];

    $matrix2 = [
        [-1,  0,  1],
        [-1,  0,  1],
        [-1,  0,  1],
    ];

    $kernel1 = ImagickKernel::fromMatrix($matrix1);
    $kernel2 = ImagickKernel::fromMatrix($matrix2);
    $kernel1->addKernel($kernel2);

    $imagick = new \Imagick(realpath($imagePath));
    $imagick->filter($kernel1);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Description

  • « ImagickKernel::addKernel
  • ImagickKernel::fromBuiltIn »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::addUnityKernel

(PECL imagick >= 3.3.0)

ImagickKernel::addUnityKernel — Description

Описание

public void ImagickKernel::addUnityKernel ( void )

Adds a given amount of the 'Unity' Convolution Kernel to the given pre-scaled and normalized Kernel. This in effect adds that amount of the original image into the resulting convolution kernel. The resulting effect is to convert the defined kernels into blended soft-blurs, unsharp kernels or into sharpening kernels.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 ImagickKernel::addUnityKernel()

<?php

    function renderKernelTable($matrix) {
        $output = "<table class='infoTable'>";

        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output = "Before adding unity kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());
    $kernel->addUnityKernel(0.5);
    $output .= "After adding unity kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output .= "After renormalizing kernel: <br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    echo $output;

?>

Пример #2 ImagickKernel::addUnityKernel()

<?php
function addUnityKernel($imagePath) {

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = ImagickKernel::fromMatrix($matrix);

    $kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE);
    $kernel->addUnityKernel(0.5);

    $imagick = new \Imagick(realpath($imagePath));
    $imagick->filter($kernel);
    header("Content-Type: image/jpg");
    echo $imagick->getImageBlob();

}

?>


Description

  • « ImagickKernel::addUnityKernel
  • ImagickKernel::fromMatrix »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::fromBuiltIn

(PECL imagick >= 3.3.0)

ImagickKernel::fromBuiltIn — Description

Описание

public static ImagickKernel ImagickKernel::fromBuiltin ( string $kernelType , string $kernelString )

Create a kernel from a builtin in kernel. See http://www.imagemagick.org/Usage/morphology/#kernel for examples. Currently the 'rotation' symbols are not supported. Example: $diamondKernel = ImagickKernel::fromBuiltIn(\Imagick::KERNEL_DIAMOND, "2");

Список параметров

kerneltype

The type of kernel to build e.g. \Imagick::KERNEL_DIAMOND

kernelString

A string that describes the parameters e.g. "4,2.5"

Возвращаемые значения

Примеры

Пример #1 ImagickKernel::fromBuiltin()

<?php

function renderKernel(ImagickKernel $imagickKernel) {
    $matrix = $imagickKernel->getMatrix();

    $imageMargin = 20;

    $tileSize = 20;
    $tileSpace = 4;
    $shadowSigma = 4;
    $shadowDropX = 20;
    $shadowDropY = 0;

    $radius = ($tileSize / 2) * 0.9;

    $rows = count($matrix);
    $columns = count($matrix[0]);

    $imagickDraw = new \ImagickDraw();

    $imagickDraw->setFillColor('#afafaf');
    $imagickDraw->setStrokeColor('none');

    $imagickDraw->translate($imageMargin, $imageMargin);
    $imagickDraw->push();

    ksort($matrix);

    foreach ($matrix as $row) {
        ksort($row);
        $imagickDraw->push();
        foreach ($row as $cell) {
            if ($cell !== false) {
                $color = intval(255 * $cell);
                $colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color);
                $imagickDraw->setFillColor($colorString);
                $imagickDraw->rectangle(0, 0, $tileSize, $tileSize);
            }
            $imagickDraw->translate(($tileSize + $tileSpace), 0);
        }
        $imagickDraw->pop();
        $imagickDraw->translate(0, ($tileSize + $tileSpace));
    }

    $imagickDraw->pop();

    $width = ($columns * $tileSize) + (($columns - 1) * $tileSpace);
    $height = ($rows * $tileSize) + (($rows - 1) * $tileSpace);

    $imagickDraw->push();
    $imagickDraw->translate($width/2 , $height/2);
    $imagickDraw->setFillColor('rgba(0, 0, 0, 0)');
    $imagickDraw->setStrokeColor('white');
    $imagickDraw->circle(0, 0, $radius - 1, 0);
    $imagickDraw->setStrokeColor('black');
    $imagickDraw->circle(0, 0, $radius, 0);
    $imagickDraw->pop();

    $canvasWidth = $width + (2 * $imageMargin);
    $canvasHeight = $height + (2 * $imageMargin);

    $kernel = new \Imagick();
    $kernel->newPseudoImage(
        $canvasWidth,
        $canvasHeight,
        'canvas:none'
    );

    $kernel->setImageFormat('png');
    $kernel->drawImage($imagickDraw);

    /* create drop shadow on it's own layer */
    $canvas = $kernel->clone();
    $canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)'));
    $canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY);

    $canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5);
    $canvas->cropImage($canvasWidth, $canvasHeight, 0, 0);

    /* composite original text_layer onto shadow_layer */
    $canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0);
    $canvas->setImageFormat('png');

    return $canvas;
}

function createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
    $string = '';

    if ($kernelFirstTerm != false && strlen(trim($kernelFirstTerm)) != 0) {
        $string .= $kernelFirstTerm;

        if ($kernelSecondTerm != false && strlen(trim($kernelSecondTerm)) != 0) {
            $string .= ','.$kernelSecondTerm;
            if ($kernelThirdTerm != false && strlen(trim($kernelThirdTerm)) != 0) {
                $string .= ','.$kernelThirdTerm;
            }
        }
    }

    $kernel = ImagickKernel::fromBuiltIn(
        $kernelType,
        $string
    );

    return $kernel;
}

function fromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm) {
    $diamondKernel = createFromBuiltin($kernelType, $kernelFirstTerm, $kernelSecondTerm, $kernelThirdTerm);
    $imagick = renderKernel($diamondKernel);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

fromBuiltin(\Imagick::KERNEL_DIAMOND, 2, false, false);

?>


Description

  • « ImagickKernel::fromBuiltIn
  • ImagickKernel::getMatrix »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::fromMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::fromMatrix — Description

Описание

public static ImagickKernel ImagickKernel::fromMatrix ( array $matrix [, array $origin ] )

Create a kernel from an 2d matrix of values. Each value should either be a float (if the element should be used) or 'false' if the element should be skipped. For matrices that are odd sizes in both dimensions the the origin pixel will default to the centre of the kernel. For all other kernel sizes the origin pixel must be specified.

Список параметров

array

A matrix (i.e. 2d array) of values that define the kernel. Each element should be either a float value, or FALSE if that element shouldn't be used by the kernel.

array

Which element of the kernel should be used as the origin pixel. e.g. For a 3x3 matrix specifying the origin as [2, 2] would specify that the bottom right element should be the origin pixel.

Возвращаемые значения

The generated ImagickKernel.

Примеры

Пример #1 ImagickKernel::fromMatrix()

<?php

function renderKernel(ImagickKernel $imagickKernel) {
    $matrix = $imagickKernel->getMatrix();

    $imageMargin = 20;

    $tileSize = 20;
    $tileSpace = 4;
    $shadowSigma = 4;
    $shadowDropX = 20;
    $shadowDropY = 0;

    $radius = ($tileSize / 2) * 0.9;

    $rows = count($matrix);
    $columns = count($matrix[0]);

    $imagickDraw = new \ImagickDraw();

    $imagickDraw->setFillColor('#afafaf');
    $imagickDraw->setStrokeColor('none');

    $imagickDraw->translate($imageMargin, $imageMargin);
    $imagickDraw->push();

    ksort($matrix);

    foreach ($matrix as $row) {
        ksort($row);
        $imagickDraw->push();
        foreach ($row as $cell) {
            if ($cell !== false) {
                $color = intval(255 * $cell);
                $colorString = sprintf("rgb(%f, %f, %f)", $color, $color, $color);
                $imagickDraw->setFillColor($colorString);
                $imagickDraw->rectangle(0, 0, $tileSize, $tileSize);
            }
            $imagickDraw->translate(($tileSize + $tileSpace), 0);
        }
        $imagickDraw->pop();
        $imagickDraw->translate(0, ($tileSize + $tileSpace));
    }

    $imagickDraw->pop();

    $width = ($columns * $tileSize) + (($columns - 1) * $tileSpace);
    $height = ($rows * $tileSize) + (($rows - 1) * $tileSpace);

    $imagickDraw->push();
    $imagickDraw->translate($width/2 , $height/2);
    $imagickDraw->setFillColor('rgba(0, 0, 0, 0)');
    $imagickDraw->setStrokeColor('white');
    $imagickDraw->circle(0, 0, $radius - 1, 0);
    $imagickDraw->setStrokeColor('black');
    $imagickDraw->circle(0, 0, $radius, 0);
    $imagickDraw->pop();

    $canvasWidth = $width + (2 * $imageMargin);
    $canvasHeight = $height + (2 * $imageMargin);

    $kernel = new \Imagick();
    $kernel->newPseudoImage(
        $canvasWidth,
        $canvasHeight,
        'canvas:none'
    );

    $kernel->setImageFormat('png');
    $kernel->drawImage($imagickDraw);

    /* create drop shadow on it's own layer */
    $canvas = $kernel->clone();
    $canvas->setImageBackgroundColor(new \ImagickPixel('rgb(0, 0, 0)'));
    $canvas->shadowImage(100, $shadowSigma, $shadowDropX, $shadowDropY);

    $canvas->setImagePage($canvasWidth, $canvasHeight, -5, -5);
    $canvas->cropImage($canvasWidth, $canvasHeight, 0, 0);

    /* composite original text_layer onto shadow_layer */
    $canvas->compositeImage($kernel, \Imagick::COMPOSITE_OVER, 0, 0);
    $canvas->setImageFormat('png');

    return $canvas;
}

function createFromMatrix() {
    $matrix = [
        [0.5, 0, 0.2],
        [0, 1, 0],
        [0.9, 0, false],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);

    return $kernel;
}

function fromMatrix() {
    $kernel = createFromMatrix();
    $imagick = renderKernel($kernel);

    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
}

?>


Description

  • « ImagickKernel::fromMatrix
  • ImagickKernel::scale »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::getMatrix

(PECL imagick >= 3.3.0)

ImagickKernel::getMatrix — Description

Описание

public array ImagickKernel::getMatrix ( void )

Get the 2d matrix of values used in this kernel. The elements are either float for elements that are used or 'false' if the element should be skipped.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A matrix (2d array) of the values that represent the kernel.

Примеры

Пример #1 ImagickKernel::getMatrix()

<?php

function renderKernelTable($matrix) {
    $output = "<table class='infoTable'>";

    foreach ($matrix as $row) {
        $output .= "<tr>";
        foreach ($row as $cell) {
            $output .= "<td style='text-align:left'>";
            if ($cell === false) {
                $output .= "false";
            }
            else {
                $output .= round($cell, 3);
            }
            $output .= "</td>";
        }
        $output .= "</tr>";
    }

    $output .= "</table>";

    return $output;
}

    $output = "The built-in kernel name 'ring' with parameters of '2,3.5':<br/>";
    $kernel = \ImagickKernel::fromBuiltIn(
        \Imagick::KERNEL_RING,
        "2,3.5"
    );
    $matrix = $kernel->getMatrix();
    $output .= renderKernelTable($matrix);

    echo $output;

?>


Description

  • « ImagickKernel::getMatrix
  • ImagickKernel::separate »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::scale

(PECL imagick >= 3.3.0)

ImagickKernel::scale — Description

Описание

public void ImagickKernel::scale ( void )

ScaleKernelInfo() scales the given kernel list by the given amount, with or without normalization of the sum of the kernel values (as per given flags). The exact behaviour of this function depends on the normalization type being used please see http://www.imagemagick.org/api/morphology.php#ScaleKernelInfo for details. Flag should be one of Imagick::NORMALIZE_KERNEL_VALUE, Imagick::NORMALIZE_KERNEL_CORRELATE, Imagick::NORMALIZE_KERNEL_PERCENT or not set.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 ImagickKernel::scale()

<?php

    function renderKernelTable($matrix) {
        $output = "<table class='infoTable'>";

        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $output = "";

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernelClone = clone $kernel;

    $output .= "Start kernel<br/>";
    $output .= renderKernelTable($kernel->getMatrix());

    $output .= "Scaling with NORMALIZE_KERNEL_VALUE. The  <br/>";
    $kernel->scale(2, \Imagick::NORMALIZE_KERNEL_VALUE);
    $output .= renderKernelTable($kernel->getMatrix());

    $kernel = clone $kernelClone;
    $output .= "Scaling by percent<br/>";
    $kernel->scale(2, \Imagick::NORMALIZE_KERNEL_PERCENT);
    $output .= renderKernelTable($kernel->getMatrix());

    $matrix2 = [
        [-1, -1, 1],
        [ -1, false,  1],
        [1, 1, 1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix2);
    $output .= "Scaling by correlate<br/>";
    $kernel->scale(1, \Imagick::NORMALIZE_KERNEL_CORRELATE);
    $output .= renderKernelTable($kernel->getMatrix());

    return $output;
?>


Description

  • « ImagickKernel::scale
  • Расширения для работы с почтой »
  • PHP Manual
  • ImagickKernel
  • Description

ImagickKernel::separate

(PECL imagick >= 3.3.0)

ImagickKernel::separate — Description

Описание

public array ImagickKernel::separate ( void )

Separates a linked set of kernels and returns an array of ImagickKernels.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 ImagickKernel::separate()

<?php

    function renderKernelTable($matrix) {

        $output = "<table class='infoTable'>";
        foreach ($matrix as $row) {
            $output .= "<tr>";
            foreach ($row as $cell) {
                $output .= "<td style='text-align:left'>";
                if ($cell === false) {
                    $output .= "false";
                }
                else {
                    $output .= round($cell, 3);
                }
                $output .= "</td>";
            }
            $output .= "</tr>";
        }

        $output .= "</table>";

        return $output;
    }

    $matrix = [
        [-1, 0, -1],
        [ 0, 4,  0],
        [-1, 0, -1],
    ];

    $kernel = \ImagickKernel::fromMatrix($matrix);
    $kernel->scale(4, \Imagick::NORMALIZE_KERNEL_VALUE);
    $diamondKernel = \ImagickKernel::fromBuiltIn(
        \Imagick::KERNEL_DIAMOND,
        "2"
    );

    $kernel->addKernel($diamondKernel);

    $kernelList = $kernel->separate();

    $output = '';
    $count = 0;
    foreach ($kernelList as $kernel) {
        $output .= "<br/>Kernel $count<br/>";
        $output .= renderKernelTable($kernel->getMatrix());
        $count++;
    }

    return $output;

?>


Расширения для работы с почтой

  • Cyrus — Администрирование Cyrus IMAP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Cyrus Функции
  • IMAP — IMAP, POP3 и NNTP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • IMAP Функции
  • Mail
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Почта
  • Mailparse
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Mailparse
  • vpopmail
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции vpopmail


Администрирование Cyrus IMAP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Cyrus Функции
    • cyrus_authenticate — Аутентификация на сервере Cyrus IMAP
    • cyrus_bind — Привязать обратные вызовы для Cyrus IMAP соединения
    • cyrus_close — Закрывает соединение с сервером Cyrus IMAP
    • cyrus_connect — Установить соединение с сервером Cyrus IMAP
    • cyrus_query — Послать запрос Cyrus IMAP серверу
    • cyrus_unbind — Убрать привязки обратных вызовов для Cyrus IMAP соединения


Введение

Замечание: Для Windows-платформ это расширение недоступно.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.0.0.


Установка

Чтобы включить поддержку Cyrus IMAP и использовать эти функции, вы должны скомпилировать PHP с опцией --with-cyrus .

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки, YAZ или Cyrus. Это связано с тем фактом, что они оба используют одни и те же внутренние символы. Замечание: Версии Yaz 2.0 и выше избавлены от этого недостатка.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение определяет идентификатор соединения Cyrus IMAP, возвращаемый функцией cyrus_connect().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

CYRUS_CONN_NONSYNCLITERAL (integer)
CYRUS_CONN_INITIALRESPONSE (integer)
CYRUS_CALLBACK_NUMBERED (integer)
CYRUS_CALLBACK_NOLITERAL (integer)


Cyrus Функции

Содержание

  • cyrus_authenticate — Аутентификация на сервере Cyrus IMAP
  • cyrus_bind — Привязать обратные вызовы для Cyrus IMAP соединения
  • cyrus_close — Закрывает соединение с сервером Cyrus IMAP
  • cyrus_connect — Установить соединение с сервером Cyrus IMAP
  • cyrus_query — Послать запрос Cyrus IMAP серверу
  • cyrus_unbind — Убрать привязки обратных вызовов для Cyrus IMAP соединения


Аутентификация на сервере Cyrus IMAP

  • « Cyrus Функции
  • cyrus_bind »
  • PHP Manual
  • Cyrus Функции
  • Аутентификация на сервере Cyrus IMAP

cyrus_authenticate

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_authenticate — Аутентификация на сервере Cyrus IMAP

Описание

void cyrus_authenticate ( resource $connection [, string $mechlist [, string $service [, string $user [, int $minssf [, int $maxssf [, string $authname [, string $password ]]]]]]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Привязать обратные вызовы для Cyrus IMAP соединения

  • « cyrus_authenticate
  • cyrus_close »
  • PHP Manual
  • Cyrus Функции
  • Привязать обратные вызовы для Cyrus IMAP соединения

cyrus_bind

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_bind — Привязать обратные вызовы для Cyrus IMAP соединения

Описание

bool cyrus_bind ( resource $connection , array $callbacks )

Привязывает обратные вызовы для Cyrus IMAP соединения.

Список параметров

connection

Дескриптор соединения.

callbacks

Массив обратных вызовов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Закрывает соединение с сервером Cyrus IMAP

  • « cyrus_bind
  • cyrus_connect »
  • PHP Manual
  • Cyrus Функции
  • Закрывает соединение с сервером Cyrus IMAP

cyrus_close

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_close — Закрывает соединение с сервером Cyrus IMAP

Описание

bool cyrus_close ( resource $connection )

Закрывает соединение с сервером Cyrus IMAP.

Список параметров

connection

Дескриптор соединения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установить соединение с сервером Cyrus IMAP

  • « cyrus_close
  • cyrus_query »
  • PHP Manual
  • Cyrus Функции
  • Установить соединение с сервером Cyrus IMAP

cyrus_connect

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_connect — Установить соединение с сервером Cyrus IMAP

Описание

resource cyrus_connect ([ string $host [, string $port [, int $flags ]]] )

Устанавливает соединение с сервером Cyrus IMAP.

Список параметров

host

Имя хоста Cyrus IMAP сервера.

port

Номер порта.

flags

Возвращаемые значения

Возвращает дескриптор соединения в случае успеха или FALSE в случае возникновения ошибки.


Послать запрос Cyrus IMAP серверу

  • « cyrus_connect
  • cyrus_unbind »
  • PHP Manual
  • Cyrus Функции
  • Послать запрос Cyrus IMAP серверу

cyrus_query

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_query — Послать запрос Cyrus IMAP серверу

Описание

array cyrus_query ( resource $connection , string $query )

Посылает запрос Cyrus IMAP серверу.

Список параметров

connection

Дескриптор соединения.

query

Строка запроса.

Возвращаемые значения

Возвращает ассоциативный массив со следующими ключами: text, msgno и keyword.


Убрать привязки обратных вызовов для Cyrus IMAP соединения

  • « cyrus_query
  • IMAP »
  • PHP Manual
  • Cyrus Функции
  • Убрать привязки обратных вызовов для Cyrus IMAP соединения

cyrus_unbind

(PHP 4 >= 4.1.0, PECL cyrus 1.0)

cyrus_unbind — Убрать привязки обратных вызовов для Cyrus IMAP соединения

Описание

bool cyrus_unbind ( resource $connection , string $trigger_name )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

connection

Дескриптор соединения.

trigger_name

Имя триггера.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


IMAP, POP3 и NNTP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • IMAP Функции
    • imap_8bit — Конвертирует 8-битную строку в quoted-printable строку
    • imap_alerts — Возвращает все произошедшие предупредительные IMAP сообщения
    • imap_append — Добавляет строковое сообщение в указанный почтовый ящик
    • imap_base64 — Decode BASE64 encoded text
    • imap_binary — Convert an 8bit string to a base64 string
    • imap_body — Read the message body
    • imap_bodystruct — Read the structure of a specified body section of a specific message
    • imap_check — Check current mailbox
    • imap_clearflag_full — Clears flags on messages
    • imap_close — Close an IMAP stream
    • imap_create — Псевдоним imap_createmailbox
    • imap_createmailbox — Create a new mailbox
    • imap_delete — Mark a message for deletion from current mailbox
    • imap_deletemailbox — Delete a mailbox
    • imap_errors — Returns all of the IMAP errors that have occurred
    • imap_expunge — Delete all messages marked for deletion
    • imap_fetch_overview — Read an overview of the information in the headers of the given message
    • imap_fetchbody — Fetch a particular section of the body of the message
    • imap_fetchheader — Returns header for a message
    • imap_fetchmime — Fetch MIME headers for a particular section of the message
    • imap_fetchstructure — Read the structure of a particular message
    • imap_fetchtext — Псевдоним imap_body
    • imap_gc — Clears IMAP cache
    • imap_get_quota — Retrieve the quota level settings, and usage statics per mailbox
    • imap_get_quotaroot — Retrieve the quota settings per user
    • imap_getacl — Gets the ACL for a given mailbox
    • imap_getmailboxes — Read the list of mailboxes, returning detailed information on each one
    • imap_getsubscribed — List all the subscribed mailboxes
    • imap_header — Псевдоним imap_headerinfo
    • imap_headerinfo — Read the header of the message
    • imap_headers — Returns headers for all messages in a mailbox
    • imap_last_error — Gets the last IMAP error that occurred during this page request
    • imap_list — Read the list of mailboxes
    • imap_listmailbox — Псевдоним imap_list
    • imap_listscan — Returns the list of mailboxes that matches the given text
    • imap_listsubscribed — Псевдоним imap_lsub
    • imap_lsub — List all the subscribed mailboxes
    • imap_mail_compose — Create a MIME message based on given envelope and body sections
    • imap_mail_copy — Copy specified messages to a mailbox
    • imap_mail_move — Move specified messages to a mailbox
    • imap_mail — Send an email message
    • imap_mailboxmsginfo — Get information about the current mailbox
    • imap_mime_header_decode — Decode MIME header elements
    • imap_msgno — Gets the message sequence number for the given UID
    • imap_num_msg — Gets the number of messages in the current mailbox
    • imap_num_recent — Gets the number of recent messages in current mailbox
    • imap_open — Open an IMAP stream to a mailbox
    • imap_ping — Check if the IMAP stream is still active
    • imap_qprint — Convert a quoted-printable string to an 8 bit string
    • imap_rename — Псевдоним imap_renamemailbox
    • imap_renamemailbox — Rename an old mailbox to new mailbox
    • imap_reopen — Reopen IMAP stream to new mailbox
    • imap_rfc822_parse_adrlist — Parses an address string
    • imap_rfc822_parse_headers — Parse mail headers from a string
    • imap_rfc822_write_address — Returns a properly formatted email address given the mailbox, host, and personal info
    • imap_savebody — Save a specific body section to a file
    • imap_scan — Псевдоним imap_listscan
    • imap_scanmailbox — Псевдоним imap_listscan
    • imap_search — This function returns an array of messages matching the given search criteria
    • imap_set_quota — Sets a quota for a given mailbox
    • imap_setacl — Sets the ACL for a given mailbox
    • imap_setflag_full — Sets flags on messages
    • imap_sort — Gets and sort messages
    • imap_status — Returns status information on a mailbox
    • imap_subscribe — Subscribe to a mailbox
    • imap_thread — Returns a tree of threaded message
    • imap_timeout — Set or fetch imap timeout
    • imap_uid — This function returns the UID for the given message sequence number
    • imap_undelete — Unmark the message which is marked deleted
    • imap_unsubscribe — Unsubscribe from a mailbox
    • imap_utf7_decode — Decodes a modified UTF-7 encoded string
    • imap_utf7_encode — Converts ISO-8859-1 string to modified UTF-7 text
    • imap_utf8 — Converts MIME-encoded text to UTF-8


Введение

Эти функции позволяют работать с IMAP протоколом, а также NNTP, POP3 и локальными методами доступа к почтовому ящику.

Внимание, некоторые IMAP функции не будут корректно работать c POP протоколом.


Требования

Это расширение требует установленной библиотеки c-client. Возьмите последнюю версию с » ftp://ftp.cac.washington.edu/imap/ и скомпилируйте её.

Важно, чтобы вы не копировали исходные файлы IMAP непосредственно в системные include директории, это может вызвать конфликт. Вместо этого создайте новую директорию внутри системной include директории, например /usr/local/imap-2000b/ (месторасположение и имя зависит от вашей установленной версии IMAP), и внутри них создайте новые директории с именами lib/ и include/. Для c-client директории из вашей исходной директории IMAP скопируйте все *.h файлы в include/ и все *.c файлы в lib/. После того, как вы скомпилируете IMAP, будет создан файл с именем c-client.a. Затем переименуйте этот файл в libc-client.a и скопируйте его в lib/.

Замечание:

Для сборки библиотеки c-client с поддержкой SSL и/или Kerberos прочитайте документацию, поставляемую с пакетом.

Замечание: В Mandrake Linux, библиотека IMAP (libc-client.a) компилируется без поддержки Kerberos. Версия с поддержкой SSL (client-PHP4.a) устанавливается отдельно. Чтобы добавить поддержку Kerberos, перекомпилируйте библиотеку.


Установка

Чтобы включить поддержку IMAP в сборку PHP, добавьте в конфигурацию ключ --with-imap[=DIR] , где DIR это папка установки c-client. Для нашего вышеуказанного примера вы должны использовать --with-imap=/usr/local/imap-2000b . Этот путь зависит от того, где вы создали эту директорию в соответствии с описанием выше. Windows пользователи могут подключить php_imap.dll DLL в php.ini.

IMAP не поддерживается в системах ранее Windows 2000. Потому что используется функции шифрования, чтобы позволить SSL соединения к mail серверу.

Замечание: В зависимости от того как настроен ваш c-client, вам может понадобиться добавить --with-imap-ssl=/path/to/openssl/ и/или --with-kerberos=/path/to/kerberos ключ при конфигурировании PHP.

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки, YAZ или Cyrus. Это связано с тем фактом, что они оба используют одни и те же внутренние символы. Замечание: Версии Yaz 2.0 и выше избавлены от этого недостатка.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

NIL (integer)
OP_DEBUG (integer)
OP_READONLY (integer)
Открыть почтовый ящик только для чтения
OP_ANONYMOUS (integer)
Не используйте обновления .newsrc для новостей (только для NNTP)
OP_SHORTCACHE (integer)
OP_SILENT (integer)
OP_PROTOTYPE (integer)
OP_HALFOPEN (integer)
Для IMAP и NNTP имен, открыть соединение, но не открывать почтовый ящик.
OP_EXPUNGE (integer)
OP_SECURE (integer)
CL_EXPUNGE (integer)
Не выдавая никаких предупреждений стирать сообщения прежде чем закрыть при вызове imap_close()
FT_UID (integer)
Параметром является UID
FT_PEEK (integer)
Не устанавливать флаг \Seen, если до этого он еще не установлен
FT_NOT (integer)
FT_INTERNAL (integer)
Возвращаемая строка во внутреннем формате. Не будет канонизирована к виду CRLF.
FT_PREFETCHTEXT (integer)
ST_UID (integer)
Последовательность аргументов, которая содержит идентификаторы UID вместо последовательности номеров
ST_SILENT (integer)
ST_SET (integer)
CP_UID (integer)
порядковые номера, содержащие идентификаторы UID
CP_MOVE (integer)
Удалить сообщения из текущего почтового ящика после копирования с помощью imap_mail_copy()
SE_UID (integer)
Возвращать идентификаторы UID вместо порядковых номеров
SE_FREE (integer)
SE_NOPREFETCH (integer)
Не выполнять предвыборку найденных сообщений
SO_FREE (integer)
SO_NOSERVER (integer)
SA_MESSAGES (integer)
SA_RECENT (integer)
SA_UNSEEN (integer)
SA_UIDNEXT (integer)
SA_UIDVALIDITY (integer)
SA_ALL (integer)
LATT_NOINFERIORS (integer)
Этот почтовый ящик не имеет "потомков". (Почтовые ящики за этим отсутствуют)
LATT_NOSELECT (integer)
Это только контейнер, а не почтовый ящик. Вы не можете открыть его.
LATT_MARKED (integer)
Этот почтовый ящик помечен. Используется только UW-IMAPD.
LATT_UNMARKED (integer)
Этот почтовый ящик не помечен. Используется только с UW-IMAPD.
SORTDATE (integer)
Критерий сортировки для imap_sort(): дата написания
SORTARRIVAL (integer)
Критерий сортировки для imap_sort(): дата доставки
SORTFROM (integer)
Критерий сортировки для imap_sort(): почтовый ящик первый в поле "от кого" (поле from)
SORTSUBJECT (integer)
Критерий сортировки для imap_sort(): тема письма
SORTTO (integer)
Критерий сортировки для imap_sort(): почтовый ящик первый в поле "кому" (поле to)
SORTCC (integer)
Критерий сортировки для imap_sort(): почтовый ящик первый в поле "копия" (поле cc)
SORTSIZE (integer)
Критерий сортировки для imap_sort(): размер сообщения в байтах
TYPETEXT (integer)
Первичный тип тела сообщения: неформатированный текст
TYPEMULTIPART (integer)
Первичный тип тела сообщения: несколько частей
TYPEMESSAGE (integer)
Первичный тип тела сообщения: инкапсулированное сообщение
TYPEAPPLICATION (integer)
Первичный тип тела сообщения: данные приложения
TYPEAUDIO (integer)
Первичный тип тела сообщения: аудио
TYPEIMAGE (integer)
Первичный тип тела сообщения: статическое изображение
TYPEVIDEO (integer)
Первичный тип тела сообщения: видео
TYPEMODEL (integer)
Первичный тип тела сообщения: модель
TYPEOTHER (integer)
Первичный тип тела сообщения: неизвестно
ENC7BIT (integer)
Кодировка тела сообщения: 7-битные данные в семантике SMTP
ENC8BIT (integer)
Кодировка тела сообщения: 8-битные данные в семантике SMTP
ENCBINARY (integer)
Кодировка тела сообщения: 7-битные двоичные данные
ENCBASE64 (integer)
Кодировка тела сообщения: данные закодированные в base-64
ENCQUOTEDPRINTABLE (integer)
Кодировка тела сообщения: человеко-читаемые 7-как-8 битные данные
ENCOTHER (integer)
Кодировка тела сообщения: неизвестно
IMAP_OPENTIMEOUT (integer)
IMAP_READTIMEOUT (integer)
IMAP_WRITETIMEOUT (integer)
IMAP_CLOSETIMEOUT (integer)
LATT_REFERRAL (integer)
LATT_HASCHILDREN (integer)
LATT_HASNOCHILDREN (integer)
IMAP_GC_ELT (integer)
Сборщик мусора, очищает элементы кеша сообщений.
IMAP_GC_ENV (integer)
Сборщик мусора, очищает обертку и тело сообщения.
IMAP_GC_TEXTS (integer)
Сборщик мусора, очищает текст.


IMAP Функции

Смотрите также

Данный документ не может вдаваться в детали всех вопросов, затронутых представленными функциями. Дополнительная информация представлена в документации клиентской библиотеки (docs/internal.txt) и в следующих RFC документах:

  • » RFC2821: Simple Mail Transfer Protocol (SMTP).
  • » RFC2822: Standard for ARPA internet text messages.
  • » RFC2060: Internet Message Access Protocol (IMAP) Version 4rev1.
  • » RFC1939: Post Office Protocol Version 3 (POP3).
  • » RFC977: Network News Transfer Protocol (NNTP).
  • » RFC2076: Common Internet Message Headers.
  • » RFC2045 , » RFC2046 , » RFC2047 , » RFC2048 & » RFC2049: Multipurpose Internet Mail Extensions (MIME).
Детальное описание также доступно в книгах » Programming Internet Email Дэвида Вуда (David Wood) и » Managing IMAP авторов Дианы Маллет (Dianna Mullet) и Кевина Маллет (Kevin Mullet).

Содержание

  • imap_8bit — Конвертирует 8-битную строку в quoted-printable строку
  • imap_alerts — Возвращает все произошедшие предупредительные IMAP сообщения
  • imap_append — Добавляет строковое сообщение в указанный почтовый ящик
  • imap_base64 — Decode BASE64 encoded text
  • imap_binary — Convert an 8bit string to a base64 string
  • imap_body — Read the message body
  • imap_bodystruct — Read the structure of a specified body section of a specific message
  • imap_check — Check current mailbox
  • imap_clearflag_full — Clears flags on messages
  • imap_close — Close an IMAP stream
  • imap_create — Псевдоним imap_createmailbox
  • imap_createmailbox — Create a new mailbox
  • imap_delete — Mark a message for deletion from current mailbox
  • imap_deletemailbox — Delete a mailbox
  • imap_errors — Returns all of the IMAP errors that have occurred
  • imap_expunge — Delete all messages marked for deletion
  • imap_fetch_overview — Read an overview of the information in the headers of the given message
  • imap_fetchbody — Fetch a particular section of the body of the message
  • imap_fetchheader — Returns header for a message
  • imap_fetchmime — Fetch MIME headers for a particular section of the message
  • imap_fetchstructure — Read the structure of a particular message
  • imap_fetchtext — Псевдоним imap_body
  • imap_gc — Clears IMAP cache
  • imap_get_quota — Retrieve the quota level settings, and usage statics per mailbox
  • imap_get_quotaroot — Retrieve the quota settings per user
  • imap_getacl — Gets the ACL for a given mailbox
  • imap_getmailboxes — Read the list of mailboxes, returning detailed information on each one
  • imap_getsubscribed — List all the subscribed mailboxes
  • imap_header — Псевдоним imap_headerinfo
  • imap_headerinfo — Read the header of the message
  • imap_headers — Returns headers for all messages in a mailbox
  • imap_last_error — Gets the last IMAP error that occurred during this page request
  • imap_list — Read the list of mailboxes
  • imap_listmailbox — Псевдоним imap_list
  • imap_listscan — Returns the list of mailboxes that matches the given text
  • imap_listsubscribed — Псевдоним imap_lsub
  • imap_lsub — List all the subscribed mailboxes
  • imap_mail_compose — Create a MIME message based on given envelope and body sections
  • imap_mail_copy — Copy specified messages to a mailbox
  • imap_mail_move — Move specified messages to a mailbox
  • imap_mail — Send an email message
  • imap_mailboxmsginfo — Get information about the current mailbox
  • imap_mime_header_decode — Decode MIME header elements
  • imap_msgno — Gets the message sequence number for the given UID
  • imap_num_msg — Gets the number of messages in the current mailbox
  • imap_num_recent — Gets the number of recent messages in current mailbox
  • imap_open — Open an IMAP stream to a mailbox
  • imap_ping — Check if the IMAP stream is still active
  • imap_qprint — Convert a quoted-printable string to an 8 bit string
  • imap_rename — Псевдоним imap_renamemailbox
  • imap_renamemailbox — Rename an old mailbox to new mailbox
  • imap_reopen — Reopen IMAP stream to new mailbox
  • imap_rfc822_parse_adrlist — Parses an address string
  • imap_rfc822_parse_headers — Parse mail headers from a string
  • imap_rfc822_write_address — Returns a properly formatted email address given the mailbox, host, and personal info
  • imap_savebody — Save a specific body section to a file
  • imap_scan — Псевдоним imap_listscan
  • imap_scanmailbox — Псевдоним imap_listscan
  • imap_search — This function returns an array of messages matching the given search criteria
  • imap_set_quota — Sets a quota for a given mailbox
  • imap_setacl — Sets the ACL for a given mailbox
  • imap_setflag_full — Sets flags on messages
  • imap_sort — Gets and sort messages
  • imap_status — Returns status information on a mailbox
  • imap_subscribe — Subscribe to a mailbox
  • imap_thread — Returns a tree of threaded message
  • imap_timeout — Set or fetch imap timeout
  • imap_uid — This function returns the UID for the given message sequence number
  • imap_undelete — Unmark the message which is marked deleted
  • imap_unsubscribe — Unsubscribe from a mailbox
  • imap_utf7_decode — Decodes a modified UTF-7 encoded string
  • imap_utf7_encode — Converts ISO-8859-1 string to modified UTF-7 text
  • imap_utf8 — Converts MIME-encoded text to UTF-8


Конвертирует 8-битную строку в quoted-printable строку

  • « IMAP Функции
  • imap_alerts »
  • PHP Manual
  • IMAP Функции
  • Конвертирует 8-битную строку в quoted-printable строку

imap_8bit

(PHP 4, PHP 5, PHP 7)

imap_8bit — Конвертирует 8-битную строку в quoted-printable строку

Описание

string imap_8bit ( string $string )

Конвертирует 8-битную строку в quoted-printable строку (в соответствии с » RFC2045, раздел 6.7).

Список параметров

string

8-битная строка для конвертации

Возвращаемые значения

Возвращает quoted-printable строку.

Смотрите также

  • imap_qprint() - Convert a quoted-printable string to an 8 bit string


Возвращает все произошедшие предупредительные IMAP сообщения

  • « imap_8bit
  • imap_append »
  • PHP Manual
  • IMAP Функции
  • Возвращает все произошедшие предупредительные IMAP сообщения

imap_alerts

(PHP 4, PHP 5, PHP 7)

imap_alerts — Возвращает все произошедшие предупредительные IMAP сообщения

Описание

массив imap_alerts ( void )

Возвращает все созданные предупредительные IMAP сообщения с момента последнего вызова imap_alerts(), или при загрузке страницы.

Когда imap_alerts() вызываеться, стек предупреждений очищается. Спецификация IMAP требует чтобы эти сообщения были переданы пользователю.

Возвращаемые значения

Возвращает массив всех созданных предупредительных IMAP сообщений или FALSE в случае если таковых нет.

Смотрите также

  • imap_errors() - Returns all of the IMAP errors that have occurred


Добавляет строковое сообщение в указанный почтовый ящик

  • « imap_alerts
  • imap_base64 »
  • PHP Manual
  • IMAP Функции
  • Добавляет строковое сообщение в указанный почтовый ящик

imap_append

(PHP 4, PHP 5, PHP 7)

imap_append — Добавляет строковое сообщение в указанный почтовый ящик

Описание

bool imap_append ( resource $imap_stream , string $mailbox , string $message [, string $options = NULL [, string $internal_date = NULL ]] )

Добавляет строку message в указанный mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

Имя почтового ящика. Смотрите imap_open() для подробной информации.

message

Добавляемое сообщение в виде строки

При обращении к Cyrus IMAP серверу следует использовать "\r\n" как завершающий символ строки вместо "\n", иначе операция будет неудачна.

options

Если указан, то параметр options также будет записан в mailbox

internal_date

Если этот параметр указан, он установит INTERNALDATE в добавляемом сообщении. Параметр должен содержать дату, представленную строкой, которая соответствует спецификации rfc2060 для значения date_time.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.2 | Добавлена поддержка INTERNALDATE для imap_append.

Примеры

Пример #1 Пример использования imap_append()

<?php
$stream = imap_open("{imap.example.org}INBOX.Drafts", "username", "password");

$check = imap_check($stream);
echo "Кол-во сообщений до добавления: ". $check->Nmsgs . "\n";

imap_append($stream, "{imap.example.org}INBOX.Drafts"
                   , "From: me@example.com\r\n"
                   . "To: you@example.com\r\n"
                   . "Subject: test\r\n"
                   . "\r\n"
                   . "это проверочное сообщение, пожалуйста, игнорируйте его\r\n"
                   );

$check = imap_check($stream);
echo "Кол-во сообщений после добавления : ". $check->Nmsgs . "\n";

imap_close($stream);
?>


Decode BASE64 encoded text

  • « imap_append
  • imap_binary »
  • PHP Manual
  • IMAP Функции
  • Decode BASE64 encoded text

imap_base64

(PHP 4, PHP 5, PHP 7)

imap_base64 — Decode BASE64 encoded text

Описание

string imap_base64 ( string $text )

Decodes the given BASE-64 encoded text.

Список параметров

text

The encoded text

Возвращаемые значения

Returns the decoded message as a string.

Смотрите также

  • imap_binary() - Convert an 8bit string to a base64 string
  • base64_encode() - Кодирует данные алгоритмом MIME base64
  • base64_decode() - Декодирует данные, закодированные алгоритмом MIME base64
  • » RFC2045, Section 6.8


Convert an 8bit string to a base64 string

  • « imap_base64
  • imap_body »
  • PHP Manual
  • IMAP Функции
  • Convert an 8bit string to a base64 string

imap_binary

(PHP 4, PHP 5, PHP 7)

imap_binary — Convert an 8bit string to a base64 string

Описание

string imap_binary ( string $string )

Convert an 8bit string to a base64 string according to » RFC2045, Section 6.8.

Список параметров

string

The 8bit string

Возвращаемые значения

Returns a base64 encoded string.

Смотрите также

  • imap_base64() - Decode BASE64 encoded text


Read the message body

  • « imap_binary
  • imap_bodystruct »
  • PHP Manual
  • IMAP Функции
  • Read the message body

imap_body

(PHP 4, PHP 5, PHP 7)

imap_body — Read the message body

Описание

string imap_body ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

imap_body() returns the body of the message, numbered msg_number in the current mailbox.

imap_body() will only return a verbatim copy of the message body. To extract single parts of a multipart MIME-encoded message you have to use imap_fetchstructure() to analyze its structure and imap_fetchbody() to extract a copy of a single body component.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

The message number

options

The optional options are a bit mask with one or more of the following:

  • FT_UID - The msg_number is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

Возвращаемые значения

Returns the body of the specified message, as a string.


Read the structure of a specified body section of a specific message

  • « imap_body
  • imap_check »
  • PHP Manual
  • IMAP Функции
  • Read the structure of a specified body section of a specific message

imap_bodystruct

(PHP 4, PHP 5, PHP 7)

imap_bodystruct — Read the structure of a specified body section of a specific message

Описание

object imap_bodystruct ( resource $imap_stream , int $msg_number , string $section )

Read the structure of a specified body section of a specific message.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

The message number

section

The body section to read

Возвращаемые значения

Returns the information in an object, for a detailed description of the object structure and properties see imap_fetchstructure().

Смотрите также

  • imap_fetchstructure() - Read the structure of a particular message


Check current mailbox

  • « imap_bodystruct
  • imap_clearflag_full »
  • PHP Manual
  • IMAP Функции
  • Check current mailbox

imap_check

(PHP 4, PHP 5, PHP 7)

imap_check — Check current mailbox

Описание

object imap_check ( resource $imap_stream )

Checks information about the current mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Returns the information in an object with following properties:

  • Date - current system time formatted according to » RFC2822
  • Driver - protocol used to access this mailbox: POP3, IMAP, NNTP
  • Mailbox - the mailbox name
  • Nmsgs - number of messages in the mailbox
  • Recent - number of recent messages in the mailbox

Returns FALSE on failure.

Примеры

Пример #1 imap_check() example

<?php

$imap_obj = imap_check($imap_stream);
var_dump($imap_obj);

?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)(5) {
  ["Date"]=>
  string(37) "Wed, 10 Dec 2003 17:56:54 +0100 (CET)"
  ["Driver"]=>
  string(4) "imap"
  ["Mailbox"]=>
  string(54)
  "{www.example.com:143/imap/user="foo@example.com"}INBOX"
  ["Nmsgs"]=>
  int(1)
  ["Recent"]=>
  int(0)
}


Clears flags on messages

  • « imap_check
  • imap_close »
  • PHP Manual
  • IMAP Функции
  • Clears flags on messages

imap_clearflag_full

(PHP 4, PHP 5, PHP 7)

imap_clearflag_full — Clears flags on messages

Описание

bool imap_clearflag_full ( resource $imap_stream , string $sequence , string $flag [, int $options = 0 ] )

This function causes a store to delete the specified flag to the flags set for the messages in the specified sequence.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

sequence

A sequence of message numbers. You can enumerate desired messages with the X,Y syntax, or retrieve all messages within an interval with the X:Y syntax

flag

The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged", "\\Deleted", and "\\Draft" (as defined by » RFC2060)

options

options are a bit mask and may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_setflag_full() - Sets flags on messages


Close an IMAP stream

  • « imap_clearflag_full
  • imap_create »
  • PHP Manual
  • IMAP Функции
  • Close an IMAP stream

imap_close

(PHP 4, PHP 5, PHP 7)

imap_close — Close an IMAP stream

Описание

bool imap_close ( resource $imap_stream [, int $flag = 0 ] )

Closes the imap stream.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

flag

If set to CL_EXPUNGE, the function will silently expunge the mailbox before closing, removing all messages marked for deletion. You can achieve the same thing by using imap_expunge()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_open() - Open an IMAP stream to a mailbox


Псевдоним imap_createmailbox

  • « imap_close
  • imap_createmailbox »
  • PHP Manual
  • IMAP Функции
  • Псевдоним imap_createmailbox

imap_create

(PHP 4, PHP 5, PHP 7)

imap_create — Псевдоним imap_createmailbox()

Описание

Эта функция является псевдонимом: imap_createmailbox().


Create a new mailbox

  • « imap_create
  • imap_delete »
  • PHP Manual
  • IMAP Функции
  • Create a new mailbox

imap_createmailbox

(PHP 4, PHP 5, PHP 7)

imap_createmailbox — Create a new mailbox

Описание

bool imap_createmailbox ( resource $imap_stream , string $mailbox )

Creates a new mailbox specified by mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

The mailbox name, see imap_open() for more information. Names containing international characters should be encoded by imap_utf7_encode()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imap_createmailbox() example

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
     or die("can't connect: " . imap_last_error());

$name1 = "phpnewbox";
$name2 = imap_utf7_encode("phpnewbox"); // phpnewb&w7Y-x

$newname = $name1;

echo "Newname will be '$name1'<br />\n";

// we will now create a new mailbox "phptestbox" in your inbox folder,
// check its status after creation and finally remove it to restore
// your inbox to its initial state

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 "your new mailbox '$name1' has the following status:<br />\n";
        echo "Messages:   " . $status->messages    . "<br />\n";
        echo "Recent:     " . $status->recent      . "<br />\n";
        echo "Unseen:     " . $status->unseen      . "<br />\n";
        echo "UIDnext:    " . $status->uidnext     . "<br />\n";
        echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";

        if (imap_renamemailbox($mbox, "{imap.example.org}INBOX.$newname", "{imap.example.org}INBOX.$name2")) {
            echo "renamed new mailbox from '$name1' to '$name2'<br />\n";
            $newname = $name2;
        } else {
            echo "imap_renamemailbox on new mailbox failed: " . imap_last_error() . "<br />\n";
        }
    } else {
        echo "imap_status on new mailbox failed: " . imap_last_error() . "<br />\n";
    }

    if (@imap_deletemailbox($mbox, "{imap.example.org}INBOX.$newname")) {
        echo "new mailbox removed to restore initial state<br />\n";
    } else {
        echo "imap_deletemailbox on new mailbox failed: " . implode("<br />\n", imap_errors()) . "<br />\n";
    }

} else {
    echo "could not create new mailbox: " . implode("<br />\n", imap_errors()) . "<br />\n";
}

imap_close($mbox);
?>

Смотрите также

  • imap_renamemailbox() - Rename an old mailbox to new mailbox
  • imap_deletemailbox() - Delete a mailbox


Mark a message for deletion from current mailbox

  • « imap_createmailbox
  • imap_deletemailbox »
  • PHP Manual
  • IMAP Функции
  • Mark a message for deletion from current mailbox

imap_delete

(PHP 4, PHP 5, PHP 7)

imap_delete — Mark a message for deletion from current mailbox

Описание

bool imap_delete ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

Marks messages listed in msg_number for deletion. Messages marked for deletion will stay in the mailbox until either imap_expunge() is called or imap_close() is called with the optional parameter CL_EXPUNGE.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

The message number

options

You can set the FT_UID which tells the function to treat the msg_number argument as an UID.

Возвращаемые значения

Returns TRUE.

Примеры

Пример #1 imap_delete() example

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
    or die("Can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo "Messages before delete: " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after  delete: " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after expunge: " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

Примечания

Замечание:

IMAP mailboxes may not have their message flags saved between connections, so imap_expunge() should be called during the same connection in order to guarantee that messages marked for deletion will actually be purged.

Смотрите также

  • imap_undelete() - Unmark the message which is marked deleted
  • imap_expunge() - Delete all messages marked for deletion
  • imap_close() - Close an IMAP stream


Delete a mailbox

  • « imap_delete
  • imap_errors »
  • PHP Manual
  • IMAP Функции
  • Delete a mailbox

imap_deletemailbox

(PHP 4, PHP 5, PHP 7)

imap_deletemailbox — Delete a mailbox

Описание

bool imap_deletemailbox ( resource $imap_stream , string $mailbox )

Deletes the specified mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

The mailbox name, see imap_open() for more information

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_createmailbox() - Create a new mailbox
  • imap_renamemailbox() - Rename an old mailbox to new mailbox
  • imap_open() - Open an IMAP stream to a mailbox for the format of mbox


Returns all of the IMAP errors that have occurred

  • « imap_deletemailbox
  • imap_expunge »
  • PHP Manual
  • IMAP Функции
  • Returns all of the IMAP errors that have occurred

imap_errors

(PHP 4, PHP 5, PHP 7)

imap_errors — Returns all of the IMAP errors that have occurred

Описание

array imap_errors ( void )

Gets all of the IMAP errors (if any) that have occurred during this page request or since the error stack was reset.

When imap_errors() is called, the error stack is subsequently cleared.

Возвращаемые значения

This function returns an array of all of the IMAP error messages generated since the last imap_errors() call, or the beginning of the page. Returns FALSE if no error messages are available.

Смотрите также

  • imap_last_error() - Gets the last IMAP error that occurred during this page request
  • imap_alerts() - Возвращает все произошедшие предупредительные IMAP сообщения


Delete all messages marked for deletion

  • « imap_errors
  • imap_fetch_overview »
  • PHP Manual
  • IMAP Функции
  • Delete all messages marked for deletion

imap_expunge

(PHP 4, PHP 5, PHP 7)

imap_expunge — Delete all messages marked for deletion

Описание

bool imap_expunge ( resource $imap_stream )

Deletes all the messages marked for deletion by imap_delete(), imap_mail_move(), or imap_setflag_full().

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Returns TRUE.


Read an overview of the information in the headers of the given message

  • « imap_expunge
  • imap_fetchbody »
  • PHP Manual
  • IMAP Функции
  • Read an overview of the information in the headers of the given message

imap_fetch_overview

(PHP 4, PHP 5, PHP 7)

imap_fetch_overview — Read an overview of the information in the headers of the given message

Описание

array imap_fetch_overview ( resource $imap_stream , string $sequence [, int $options = 0 ] )

This function fetches mail headers for the given sequence and returns an overview of their contents.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

sequence

A message sequence description. You can enumerate desired messages with the X,Y syntax, or retrieve all messages within an interval with the X:Y syntax

options

sequence will contain a sequence of message indices or UIDs, if this parameter is set to FT_UID.

Возвращаемые значения

Returns an array of objects describing one message header each. The object will only define a property if it exists. The possible properties are:

  • subject - the messages subject
  • from - who sent it
  • to - recipient
  • date - when was it sent
  • message_id - Message-ID
  • references - is a reference to this message id
  • in_reply_to - is a reply to this message id
  • size - size in bytes
  • uid - UID the message has in the mailbox
  • msgno - message sequence number in the mailbox
  • recent - this message is flagged as recent
  • flagged - this message is flagged
  • answered - this message is flagged as answered
  • deleted - this message is flagged for deletion
  • seen - this message is flagged as already read
  • draft - this message is flagged as being a draft
  • update - the UNIX timestamp of the arrival date

Список изменений

Версия | Описание
5.3.3 | Add the update property.

Примеры

Пример #1 imap_fetch_overview() example

<?php
$mbox = imap_open("{imap.example.org:143}INBOX", "username", "password")
     or die("can't connect: " . imap_last_error());

$MC = imap_check($mbox);

// Fetch an overview for all messages in 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() - Returns header for a message


Fetch a particular section of the body of the message

  • « imap_fetch_overview
  • imap_fetchheader »
  • PHP Manual
  • IMAP Функции
  • Fetch a particular section of the body of the message

imap_fetchbody

(PHP 4, PHP 5, PHP 7)

imap_fetchbody — Fetch a particular section of the body of the message

Описание

string imap_fetchbody ( resource $imap_stream , int $msg_number , string $section [, int $options = 0 ] )

Fetch of a particular section of the body of the specified messages. Body parts are not decoded by this function.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

The message number

section

The part number. It is a string of integers delimited by period which index into a body part list as per the IMAP4 specification

options

A bitmask with one or more of the following:

  • FT_UID - The msg_number is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

Возвращаемые значения

Returns a particular section of the body of the specified messages as a text string.

Смотрите также

  • imap_savebody() - Save a specific body section to a file
  • imap_fetchstructure() - Read the structure of a particular message


Returns header for a message

  • « imap_fetchbody
  • imap_fetchmime »
  • PHP Manual
  • IMAP Функции
  • Returns header for a message

imap_fetchheader

(PHP 4, PHP 5, PHP 7)

imap_fetchheader — Returns header for a message

Описание

string imap_fetchheader ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

This function causes a fetch of the complete, unfiltered » RFC2822 format header of the specified message.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

The message number

options

The possible options are:

  • FT_UID - The msgno argument is a UID
  • FT_INTERNAL - The return string is in "internal" format, without any attempt to canonicalize to CRLF newlines
  • FT_PREFETCHTEXT - The RFC822.TEXT should be pre-fetched at the same time. This avoids an extra RTT on an IMAP connection if a full message text is desired (e.g. in a "save to local file" operation)

Возвращаемые значения

Returns the header of the specified message as a text string.

Смотрите также

  • imap_fetch_overview() - Read an overview of the information in the headers of the given message


Fetch MIME headers for a particular section of the message

  • « imap_fetchheader
  • imap_fetchstructure »
  • PHP Manual
  • IMAP Функции
  • Fetch MIME headers for a particular section of the message

imap_fetchmime

(PHP 5 >= 5.3.6, PHP 7)

imap_fetchmime — Fetch MIME headers for a particular section of the message

Описание

string imap_fetchmime ( resource $imap_stream , int $msg_number , string $section [, int $options = 0 ] )

Fetch the MIME headers of a particular section of the body of the specified messages.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

The message number

section

The part number. It is a string of integers delimited by period which index into a body part list as per the IMAP4 specification

options

A bitmask with one or more of the following:

  • FT_UID - The msg_number is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

Возвращаемые значения

Returns the MIME headers of a particular section of the body of the specified messages as a text string.

Смотрите также

  • imap_fetchbody() - Fetch a particular section of the body of the message
  • imap_fetchstructure() - Read the structure of a particular message
  • imap_fetchheader() - Returns header for a message


Read the structure of a particular message

  • « imap_fetchmime
  • imap_fetchtext »
  • PHP Manual
  • IMAP Функции
  • Read the structure of a particular message

imap_fetchstructure

(PHP 4, PHP 5, PHP 7)

imap_fetchstructure — Read the structure of a particular message

Описание

object imap_fetchstructure ( resource $imap_stream , int $msg_number [, int $options = 0 ] )

Fetches all the structured information for a given message.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

The message number

options

This optional parameter only has a single option, FT_UID, which tells the function to treat the msg_number argument as a UID.

Возвращаемые значения

Returns an object includes the envelope, internal date, size, flags and body structure along with a similar object for each mime attachment. The structure of the returned objects is as follows:

Returned Objects for imap_fetchstructure()
type | Primary body type
encoding | Body transfer encoding
ifsubtype | TRUE if there is a subtype string
subtype | MIME subtype
ifdescription | TRUE if there is a description string
description | Content description string
ifid | TRUE if there is an identification string
id | Identification string
lines | Number of lines
bytes | Number of bytes
ifdisposition | TRUE if there is a disposition string
disposition | Disposition string
ifdparameters | TRUE if the dparameters array exists
dparameters | An array of objects where each object has an "attribute" and a "value" property corresponding to the parameters on the Content-disposition MIME header.
ifparameters | TRUE if the parameters array exists
parameters | An array of objects where each object has an "attribute" and a "value" property.
parts | An array of objects identical in structure to the top-level object, each of which corresponds to a MIME body part.

Primary body type (value may vary with used library, use of constants is recommended)
Value | Type | Constant
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

Transfer encodings (value may vary with used library, use of constants is recommended)
Value | Type | Constant
0 | 7bit | ENC7BIT
1 | 8bit | ENC8BIT
2 | Binary | ENCBINARY
3 | Base64 | ENCBASE64
4 | Quoted-Printable | ENCQUOTEDPRINTABLE
5 | other | ENCOTHER

Смотрите также

  • imap_fetchbody() - Fetch a particular section of the body of the message
  • imap_bodystruct() - Read the structure of a specified body section of a specific message


Псевдоним imap_body

  • « imap_fetchstructure
  • imap_gc »
  • PHP Manual
  • IMAP Функции
  • Псевдоним imap_body

imap_fetchtext

(PHP 4, PHP 5, PHP 7)

imap_fetchtext — Псевдоним imap_body()

Описание

Эта функция является псевдонимом: imap_body().


Clears IMAP cache

  • « imap_fetchtext
  • imap_get_quota »
  • PHP Manual
  • IMAP Функции
  • Clears IMAP cache

imap_gc

(PHP 5 >= 5.3.0, PHP 7)

imap_gc — Clears IMAP cache

Описание

bool imap_gc ( resource $imap_stream , int $caches )

Purges the cache of entries of a specific type.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

caches

Specifies the cache to purge. It may one or a combination of the following constants: IMAP_GC_ELT (message cache elements), IMAP_GC_ENV (envelope and bodies), IMAP_GC_TEXTS (texts).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imap_gc() example

<?php

$mbox = imap_open("{imap.example.org:143}", "username", "password");

imap_gc($mbox, IMAP_GC_ELT);

?>


Retrieve the quota level settings, and usage statics per mailbox

  • « imap_gc
  • imap_get_quotaroot »
  • PHP Manual
  • IMAP Функции
  • Retrieve the quota level settings, and usage statics per mailbox

imap_get_quota

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

imap_get_quota — Retrieve the quota level settings, and usage statics per mailbox

Описание

array imap_get_quota ( resource $imap_stream , string $quota_root )

Retrieve the quota level settings, and usage statics per mailbox.

For a non-admin user version of this function, please see the imap_get_quotaroot() function of PHP.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

quota_root

quota_root should normally be in the form of user.name where name is the mailbox you wish to retrieve information about.

Возвращаемые значения

Returns an array with integer values limit and usage for the given mailbox. The value of limit represents the total amount of space allowed for this mailbox. The usage value represents the mailboxes current level of capacity. Will return FALSE in the case of failure.

As of PHP 4.3, the function more properly reflects the functionality as dictated by the » RFC2087. The array return value has changed to support an unlimited number of returned resources (i.e. messages, or sub-folders) with each named resource receiving an individual array key. Each key value then contains an another array with the usage and limit values within it.

For backwards compatibility reasons, the original access methods are still available for use, although it is suggested to update.

Примеры

Пример #1 imap_get_quota() example

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_value = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_value)) {
    echo "Usage level is: " . $quota_value['usage'];
    echo "Limit level is: " . $quota_value['limit'];
}

imap_close($mbox);
?>

Пример #2 imap_get_quota() 4.3 or greater example

<?php
$mbox = imap_open("{imap.example.org}", "mailadmin", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota_values = imap_get_quota($mbox, "user.kalowsky");
if (is_array($quota_values)) {
   $storage = $quota_values['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota_values['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE limit is: " .  $message['limit'];

   /* ...  */
}

imap_close($mbox);
?>

Примечания

This function is currently only available to users of the c-client2000 or greater library.

The given imap_stream must be opened as the mail administrator, otherwise this function will fail.

Смотрите также

  • imap_open() - Open an IMAP stream to a mailbox
  • imap_set_quota() - Sets a quota for a given mailbox
  • imap_get_quotaroot() - Retrieve the quota settings per user


Retrieve the quota settings per user

  • « imap_get_quota
  • imap_getacl »
  • PHP Manual
  • IMAP Функции
  • Retrieve the quota settings per user

imap_get_quotaroot

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

imap_get_quotaroot — Retrieve the quota settings per user

Описание

array imap_get_quotaroot ( resource $imap_stream , string $quota_root )

Retrieve the quota settings per user. The limit value represents the total amount of space allowed for this user's total mailbox usage. The usage value represents the user's current total mailbox capacity.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

quota_root

quota_root should normally be in the form of which mailbox (i.e. INBOX).

Возвращаемые значения

Returns an array of integer values pertaining to the specified user mailbox. All values contain a key based upon the resource name, and a corresponding array with the usage and limit values within.

This function will return FALSE in the case of call failure, and an array of information about the connection upon an un-parsable response from the server.

Примеры

Пример #1 imap_get_quotaroot() example

<?php
$mbox = imap_open("{imap.example.org}", "kalowsky", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$quota = imap_get_quotaroot($mbox, "INBOX");
if (is_array($quota)) {
   $storage = $quota['STORAGE'];
   echo "STORAGE usage level is: " .  $storage['usage'];
   echo "STORAGE limit level is: " .  $storage['limit'];

   $message = $quota['MESSAGE'];
   echo "MESSAGE usage level is: " .  $message['usage'];
   echo "MESSAGE limit level is: " .  $message['limit'];

   /* ...  */

}

imap_close($mbox);
?>

Примечания

This function is currently only available to users of the c-client2000 or greater library.

The imap_stream should be opened as the user whose mailbox you wish to check.

Смотрите также

  • imap_open() - Open an IMAP stream to a mailbox
  • imap_set_quota() - Sets a quota for a given mailbox
  • imap_get_quota() - Retrieve the quota level settings, and usage statics per mailbox


Gets the ACL for a given mailbox

  • « imap_get_quotaroot
  • imap_getmailboxes »
  • PHP Manual
  • IMAP Функции
  • Gets the ACL for a given mailbox

imap_getacl

(PHP 5, PHP 7)

imap_getacl — Gets the ACL for a given mailbox

Описание

array imap_getacl ( resource $imap_stream , string $mailbox )

Gets the ACL for a given mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

The mailbox name, see imap_open() for more information

Возвращаемые значения

Returns an associative array of "folder" => "acl" pairs.

Примеры

Пример #1 imap_getacl() example

<?php

print_r(imap_getacl($conn_id, 'user.joecool'));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [asubfolder] => lrswipcda
    [anothersubfolder] => lrswipcda
)

Примечания

This function is currently only available to users of the c-client2000 or greater library.

Смотрите также

  • imap_setacl() - Sets the ACL for a given mailbox


Read the list of mailboxes, returning detailed information on each one

  • « imap_getacl
  • imap_getsubscribed »
  • PHP Manual
  • IMAP Функции
  • Read the list of mailboxes, returning detailed information on each one

imap_getmailboxes

(PHP 4, PHP 5, PHP 7)

imap_getmailboxes — Read the list of mailboxes, returning detailed information on each one

Описание

array imap_getmailboxes ( resource $imap_stream , string $ref , string $pattern )

Gets information on the mailboxes.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

ref

ref should normally be just the server specification as described in imap_open()

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернет только текущий уровень. '%', переданный как параметр pattern, вернет почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернет все ящики в директории ~/mail, кроме тех, которые находятся в ее поддиректориях.

Возвращаемые значения

Returns an array of objects containing mailbox information. Each object has the attributes name, specifying the full name of the mailbox; delimiter, which is the hierarchy delimiter for the part of the hierarchy this mailbox is in; and attributes. Attributes is a bitmask that can be tested against:

  • LATT_NOINFERIORS - This mailbox contains, and may not contain any "children" (there are no mailboxes below this one). Calling imap_createmailbox() will not work on this mailbox.

  • LATT_NOSELECT - This is only a container, not a mailbox - you cannot open it.

  • LATT_MARKED - This mailbox is marked. This means that it may contain new messages since the last time it was checked. Not provided by all IMAP servers.

  • LATT_UNMARKED - This mailbox is not marked, does not contain new messages. If either MARKED or UNMARKED is provided, you can assume the IMAP server supports this feature for this mailbox.

Примеры

Пример #1 imap_getmailboxes() example

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . 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 failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Смотрите также

  • imap_getsubscribed() - List all the subscribed mailboxes


List all the subscribed mailboxes

  • « imap_getmailboxes
  • imap_header »
  • PHP Manual
  • IMAP Функции
  • List all the subscribed mailboxes

imap_getsubscribed

(PHP 4, PHP 5, PHP 7)

imap_getsubscribed — List all the subscribed mailboxes

Описание

array imap_getsubscribed ( resource $imap_stream , string $ref , string $pattern )

Gets information about the subscribed mailboxes.

Identical to imap_getmailboxes(), except that it only returns mailboxes that the user is subscribed to.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

ref

ref should normally be just the server specification as described in imap_open()

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернет только текущий уровень. '%', переданный как параметр pattern, вернет почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернет все ящики в директории ~/mail, кроме тех, которые находятся в ее поддиректориях.

Возвращаемые значения

Returns an array of objects containing mailbox information. Each object has the attributes name, specifying the full name of the mailbox; delimiter, which is the hierarchy delimiter for the part of the hierarchy this mailbox is in; and attributes. Attributes is a bitmask that can be tested against:

  • LATT_NOINFERIORS - This mailbox has no "children" (there are no mailboxes below this one).
  • LATT_NOSELECT - This is only a container, not a mailbox - you cannot open it.
  • LATT_MARKED - This mailbox is marked. Only used by UW-IMAPD.
  • LATT_UNMARKED - This mailbox is not marked. Only used by UW-IMAPD.


Псевдоним imap_headerinfo

  • « imap_getsubscribed
  • imap_headerinfo »
  • PHP Manual
  • IMAP Функции
  • Псевдоним imap_headerinfo

imap_header

(PHP 4, PHP 5, PHP 7)

imap_header — Псевдоним imap_headerinfo()

Описание

Эта функция является псевдонимом: imap_headerinfo().


Read the header of the message

  • « imap_header
  • imap_headers »
  • PHP Manual
  • IMAP Функции
  • Read the header of the message

imap_headerinfo

(PHP 4, PHP 5, PHP 7)

imap_headerinfo — Read the header of the message

Описание

object imap_headerinfo ( resource $imap_stream , int $msg_number [, int $fromlength = 0 [, int $subjectlength = 0 [, string $defaulthost = NULL ]]] )

Gets information about the given message number by reading its headers.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

The message number

fromlength

Number of characters for the fetchfrom property. Must be greater than or equal to zero.

subjectlength

Number of characters for the fetchsubject property Must be greater than or equal to zero.

defaulthost

Возвращаемые значения

Returns the information in an object with following properties:

  • toaddress - full to: line, up to 1024 characters
  • to - an array of objects from the To: line, with the following properties: personal, adl, mailbox, and host
  • fromaddress - full from: line, up to 1024 characters
  • from - an array of objects from the From: line, with the following properties: personal, adl, mailbox, and host
  • ccaddress - full cc: line, up to 1024 characters
  • cc - an array of objects from the Cc: line, with the following properties: personal, adl, mailbox, and host
  • bccaddress - full bcc: line, up to 1024 characters
  • bcc - an array of objects from the Bcc: line, with the following properties: personal, adl, mailbox, and host
  • reply_toaddress - full Reply-To: line, up to 1024 characters
  • reply_to - an array of objects from the Reply-To: line, with the following properties: personal, adl, mailbox, and host
  • senderaddress - full sender: line, up to 1024 characters
  • sender - an array of objects from the Sender: line, with the following properties: personal, adl, mailbox, and host
  • return_pathaddress - full Return-Path: line, up to 1024 characters
  • return_path - an array of objects from the Return-Path: line, with the following properties: personal, adl, mailbox, and host
  • remail -
  • date - The message date as found in its headers
  • Date - Same as date
  • subject - The message subject
  • Subject - Same as subject
  • in_reply_to -
  • message_id -
  • newsgroups -
  • followup_to -
  • references -
  • Recent - R if recent and seen, N if recent and not seen, ' ' if not recent.
  • Unseen - U if not seen AND not recent, ' ' if seen OR not seen and recent
  • Flagged - F if flagged, ' ' if not flagged
  • Answered - A if answered, ' ' if unanswered
  • Deleted - D if deleted, ' ' if not deleted
  • Draft - X if draft, ' ' if not draft
  • Msgno - The message number
  • MailDate -
  • Size - The message size
  • udate - mail message date in Unix time
  • fetchfrom - from line formatted to fit fromlength characters
  • fetchsubject - subject line formatted to fit subjectlength characters

Смотрите также

  • imap_fetch_overview() - Read an overview of the information in the headers of the given message


Returns headers for all messages in a mailbox

  • « imap_headerinfo
  • imap_last_error »
  • PHP Manual
  • IMAP Функции
  • Returns headers for all messages in a mailbox

imap_headers

(PHP 4, PHP 5, PHP 7)

imap_headers — Returns headers for all messages in a mailbox

Описание

array imap_headers ( resource $imap_stream )

Returns headers for all messages in a mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Returns an array of string formatted with header info. One element per mail message.


Gets the last IMAP error that occurred during this page request

  • « imap_headers
  • imap_list »
  • PHP Manual
  • IMAP Функции
  • Gets the last IMAP error that occurred during this page request

imap_last_error

(PHP 4, PHP 5, PHP 7)

imap_last_error — Gets the last IMAP error that occurred during this page request

Описание

string imap_last_error ( void )

Gets the full text of the last IMAP error message that occurred on the current page. The error stack is untouched; calling imap_last_error() subsequently, with no intervening errors, will return the same error.

Возвращаемые значения

Returns the full text of the last IMAP error message that occurred on the current page. Returns FALSE if no error messages are available.

Смотрите также

  • imap_errors() - Returns all of the IMAP errors that have occurred


Read the list of mailboxes

  • « imap_last_error
  • imap_listmailbox »
  • PHP Manual
  • IMAP Функции
  • Read the list of mailboxes

imap_list

(PHP 4, PHP 5, PHP 7)

imap_list — Read the list of mailboxes

Описание

array imap_list ( resource $imap_stream , string $ref , string $pattern )

Read the list of mailboxes.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

ref

ref should normally be just the server specification as described in imap_open().

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернет только текущий уровень. '%', переданный как параметр pattern, вернет почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернет все ящики в директории ~/mail, кроме тех, которые находятся в ее поддиректориях.

Возвращаемые значения

Returns an array containing the names of the mailboxes.

Примеры

Пример #1 imap_list() example

<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . 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 failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>

Смотрите также

  • imap_getmailboxes() - Read the list of mailboxes, returning detailed information on each one
  • imap_lsub() - List all the subscribed mailboxes


Псевдоним imap_list

  • « imap_list
  • imap_listscan »
  • PHP Manual
  • IMAP Функции
  • Псевдоним imap_list

imap_listmailbox

(PHP 4, PHP 5, PHP 7)

imap_listmailbox — Псевдоним imap_list()

Описание

Эта функция является псевдонимом: imap_list().


Returns the list of mailboxes that matches the given text

  • « imap_listmailbox
  • imap_listsubscribed »
  • PHP Manual
  • IMAP Функции
  • Returns the list of mailboxes that matches the given text

imap_listscan

(PHP 4, PHP 5, PHP 7)

imap_listscan — Returns the list of mailboxes that matches the given text

Описание

array imap_listscan ( resource $imap_stream , string $ref , string $pattern , string $content )

Returns an array containing the names of the mailboxes that have content in the text of the mailbox.

This function is similar to imap_listmailbox(), but it will additionally check for the presence of the string content inside the mailbox data.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

ref

ref should normally be just the server specification as described in imap_open()

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернет только текущий уровень. '%', переданный как параметр pattern, вернет почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернет все ящики в директории ~/mail, кроме тех, которые находятся в ее поддиректориях.

content

The searched string

Возвращаемые значения

Returns an array containing the names of the mailboxes that have content in the text of the mailbox.

Смотрите также

  • imap_listmailbox() - Псевдоним imap_list
  • imap_search() - This function returns an array of messages matching the given search criteria


Псевдоним imap_lsub

  • « imap_listscan
  • imap_lsub »
  • PHP Manual
  • IMAP Функции
  • Псевдоним imap_lsub

imap_listsubscribed

(PHP 4, PHP 5, PHP 7)

imap_listsubscribed — Псевдоним imap_lsub()

Описание

Эта функция является псевдонимом: imap_lsub().


List all the subscribed mailboxes

  • « imap_listsubscribed
  • imap_mail_compose »
  • PHP Manual
  • IMAP Функции
  • List all the subscribed mailboxes

imap_lsub

(PHP 4, PHP 5, PHP 7)

imap_lsub — List all the subscribed mailboxes

Описание

array imap_lsub ( resource $imap_stream , string $ref , string $pattern )

Gets an array of all the mailboxes that you have subscribed.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

ref

ref should normally be just the server specification as described in imap_open()

pattern

Определяет начало поиска в иерархии почтовых ящиков.

Есть два специальных символа, которые можно использовать при передаче как часть pattern: '*' и '%'. '*' возвращает все почтовые ящики. Если вы передадите pattern как '*', то получите полный список иерархии почтовых ящиков. '%' вернет только текущий уровень. '%', переданный как параметр pattern, вернет почтовые ящики только на самом верхнем уровне; '~/mail/%' на UW_IMAPD вернет все ящики в директории ~/mail, кроме тех, которые находятся в ее поддиректориях.

Возвращаемые значения

Returns an array of all the subscribed mailboxes.

Смотрите также

  • imap_list() - Read the list of mailboxes
  • imap_getmailboxes() - Read the list of mailboxes, returning detailed information on each one


Create a MIME message based on given envelope and body sections

  • « imap_lsub
  • imap_mail_copy »
  • PHP Manual
  • IMAP Функции
  • Create a MIME message based on given envelope and body sections

imap_mail_compose

(PHP 4, PHP 5, PHP 7)

imap_mail_compose — Create a MIME message based on given envelope and body sections

Описание

string imap_mail_compose ( array $envelope , array $body )

Create a MIME message based on the given envelope and body sections.

Список параметров

envelope

An associative array of headers fields. Valid keys are: "remail", "return_path", "date", "from", "reply_to", "in_reply_to", "subject", "to", "cc", "bcc", "message_id" and "custom_headers" (which contains associative array of other headers).

body

An indexed array of bodies

A body is an associative array which can consist of the following keys: "type", "encoding", "charset", "type.parameters", "subtype", "id", "description", "disposition.type", "disposition", "contents.data", "lines", "bytes" and "md5".

Возвращаемые значения

Returns the MIME message.

Примеры

Пример #1 imap_mail_compose() example

<?php

$envelope["from"]= "joe@example.com";
$envelope["to"]  = "foo@example.com";
$envelope["cc"]  = "bar@example.com";

$part1["type"] = TYPEMULTIPART;
$part1["subtype"] = "mixed";

$filename = "/tmp/imap.c.gz";
$fp = fopen($filename, "r");
$contents = fread($fp, filesize($filename));
fclose($fp);

$part2["type"] = TYPEAPPLICATION;
$part2["encoding"] = ENCBINARY;
$part2["subtype"] = "octet-stream";
$part2["description"] = basename($filename);
$part2["contents.data"] = $contents;

$part3["type"] = TYPETEXT;
$part3["subtype"] = "plain";
$part3["description"] = "description3";
$part3["contents.data"] = "contents.data3\n\n\n\t";

$body[1] = $part1;
$body[2] = $part2;
$body[3] = $part3;

echo nl2br(imap_mail_compose($envelope, $body));

?>


Copy specified messages to a mailbox

  • « imap_mail_compose
  • imap_mail_move »
  • PHP Manual
  • IMAP Функции
  • Copy specified messages to a mailbox

imap_mail_copy

(PHP 4, PHP 5, PHP 7)

imap_mail_copy — Copy specified messages to a mailbox

Описание

bool imap_mail_copy ( resource $imap_stream , string $msglist , string $mailbox [, int $options = 0 ] )

Copies mail messages specified by msglist to specified mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msglist

msglist is a range not just message numbers (as described in » RFC2060).

mailbox

The mailbox name, see imap_open() for more information

options

options is a bitmask of one or more of

  • CP_UID - the sequence numbers contain UIDS
  • CP_MOVE - Delete the messages from the current mailbox after copying

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_mail_move() - Move specified messages to a mailbox


Move specified messages to a mailbox

  • « imap_mail_copy
  • imap_mail »
  • PHP Manual
  • IMAP Функции
  • Move specified messages to a mailbox

imap_mail_move

(PHP 4, PHP 5, PHP 7)

imap_mail_move — Move specified messages to a mailbox

Описание

bool imap_mail_move ( resource $imap_stream , string $msglist , string $mailbox [, int $options = 0 ] )

Moves mail messages specified by msglist to the specified mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msglist

msglist is a range not just message numbers (as described in » RFC2060).

mailbox

The mailbox name, see imap_open() for more information

options

options is a bitmask and may contain the single option:

  • CP_UID - the sequence numbers contain UIDS

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

imap_mail_move() will flag the original mail with a delete flag, to successfully delete it a call to the imap_expunge() function must be made.

Смотрите также

  • imap_mail_copy() - Copy specified messages to a mailbox


Send an email message

  • « imap_mail_move
  • imap_mailboxmsginfo »
  • PHP Manual
  • IMAP Функции
  • Send an email message

imap_mail

(PHP 4, PHP 5, PHP 7)

imap_mail — Send an email message

Описание

bool imap_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $cc = NULL [, string $bcc = NULL [, string $rpath = NULL ]]]] )

This function allows sending of emails with correct handling of Cc and Bcc receivers.

The parameters to, cc and bcc are all strings and are all parsed as » RFC822 address lists.

Список параметров

to

The receiver

subject

The mail subject

message

The mail body, see imap_mail_compose()

additional_headers

As string with additional headers to be set on the mail

cc

bcc

The receivers specified in bcc will get the mail, but are excluded from the headers.

rpath

Use this parameter to specify return path upon mail delivery failure. This is useful when using PHP as a mail client for multiple users.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mail() - Отправляет электронную почту
  • imap_mail_compose() - Create a MIME message based on given envelope and body sections


Get information about the current mailbox

  • « imap_mail
  • imap_mime_header_decode »
  • PHP Manual
  • IMAP Функции
  • Get information about the current mailbox

imap_mailboxmsginfo

(PHP 4, PHP 5, PHP 7)

imap_mailboxmsginfo — Get information about the current mailbox

Описание

object imap_mailboxmsginfo ( resource $imap_stream )

Checks the current mailbox status on the server. It is similar to imap_status(), but will additionally sum up the size of all messages in the mailbox, which will take some additional time to execute.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Returns the information in an object with following properties:

Mailbox properties
Date | date of last change (current datetime)
Driver | driver
Mailbox | name of the mailbox
Nmsgs | number of messages
Recent | number of recent messages
Unread | number of unread messages
Deleted | number of deleted messages
Size | mailbox size

Returns FALSE on failure.

Примеры

Пример #1 imap_mailboxmsginfo() example

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
      or die("can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);

if ($check) {
    echo "Date: "     . $check->Date    . "<br />\n" ;
    echo "Driver: "   . $check->Driver  . "<br />\n" ;
    echo "Mailbox: "  . $check->Mailbox . "<br />\n" ;
    echo "Messages: " . $check->Nmsgs   . "<br />\n" ;
    echo "Recent: "   . $check->Recent  . "<br />\n" ;
    echo "Unread: "   . $check->Unread  . "<br />\n" ;
    echo "Deleted: "  . $check->Deleted . "<br />\n" ;
    echo "Size: "     . $check->Size    . "<br />\n" ;
} else {
    echo "imap_mailboxmsginfo() failed: " . imap_last_error() . "<br />\n";
}

imap_close($mbox);

?>


Decode MIME header elements

  • « imap_mailboxmsginfo
  • imap_msgno »
  • PHP Manual
  • IMAP Функции
  • Decode MIME header elements

imap_mime_header_decode

(PHP 4, PHP 5, PHP 7)

imap_mime_header_decode — Decode MIME header elements

Описание

array imap_mime_header_decode ( string $text )

Decodes MIME message header extensions that are non ASCII text (see » RFC2047).

Список параметров

text

The MIME text

Возвращаемые значения

The decoded elements are returned in an array of objects, where each object has two properties, charset and text.

If the element hasn't been encoded, and in other words is in plain US-ASCII, the charset property of that element is set to default.

Примеры

Пример #1 imap_mime_header_decode() example

<?php
$text = "=?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@example.com>";

$elements = imap_mime_header_decode($text);
for ($i=0; $i<count($elements); $i++) {
    echo "Charset: {$elements[$i]->charset}\n";
    echo "Text: {$elements[$i]->text}\n\n";
}
?>

Результат выполнения данного примера:

Charset: ISO-8859-1
Text: Keld Jorn Simonsen

Charset: default
Text:  <keld@example.com>

In the above example we would have two elements, whereas the first element had previously been encoded with ISO-8859-1, and the second element would be plain US-ASCII.

Смотрите также

  • imap_utf8() - Converts MIME-encoded text to UTF-8


Gets the message sequence number for the given UID

  • « imap_mime_header_decode
  • imap_num_msg »
  • PHP Manual
  • IMAP Функции
  • Gets the message sequence number for the given UID

imap_msgno

(PHP 4, PHP 5, PHP 7)

imap_msgno — Gets the message sequence number for the given UID

Описание

int imap_msgno ( resource $imap_stream , int $uid )

Returns the message sequence number for the given uid.

This function is the inverse of imap_uid().

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

uid

The message UID

Возвращаемые значения

Returns the message sequence number for the given uid.

Смотрите также

  • imap_uid() - This function returns the UID for the given message sequence number


Gets the number of messages in the current mailbox

  • « imap_msgno
  • imap_num_recent »
  • PHP Manual
  • IMAP Функции
  • Gets the number of messages in the current mailbox

imap_num_msg

(PHP 4, PHP 5, PHP 7)

imap_num_msg — Gets the number of messages in the current mailbox

Описание

int imap_num_msg ( resource $imap_stream )

Gets the number of messages in the current mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Return the number of messages in the current mailbox, as an integer.

Смотрите также

  • imap_num_recent() - Gets the number of recent messages in current mailbox
  • imap_status() - Returns status information on a mailbox


Gets the number of recent messages in current mailbox

  • « imap_num_msg
  • imap_open »
  • PHP Manual
  • IMAP Функции
  • Gets the number of recent messages in current mailbox

imap_num_recent

(PHP 4, PHP 5, PHP 7)

imap_num_recent — Gets the number of recent messages in current mailbox

Описание

int imap_num_recent ( resource $imap_stream )

Gets the number of recent messages in the current mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Returns the number of recent messages in the current mailbox, as an integer.

Смотрите также

  • imap_num_msg() - Gets the number of messages in the current mailbox
  • imap_status() - Returns status information on a mailbox


Open an IMAP stream to a mailbox

  • « imap_num_recent
  • imap_ping »
  • PHP Manual
  • IMAP Функции
  • Open an IMAP stream to a mailbox

imap_open

(PHP 4, PHP 5, PHP 7)

imap_open — Open an IMAP stream to a mailbox

Описание

resource imap_open ( string $mailbox , string $username , string $password [, int $options = 0 [, int $n_retries = 0 [, array $params = NULL ]]] )

Opens an IMAP stream to a mailbox.

This function can also be used to open streams to POP3 and NNTP servers, but some functions and features are only available on IMAP servers.

Список параметров

mailbox

A mailbox name consists of a server and a mailbox path on this server. The special name INBOX stands for the current users personal mailbox. Mailbox names that contain international characters besides those in the printable ASCII space have to be encoded width imap_utf7_encode().

The server part, which is enclosed in '{' and '}', consists of the servers name or ip address, an optional port (prefixed by ':'), and an optional protocol specification (prefixed by '/').

The server part is mandatory in all mailbox parameters.

All names which start with { are remote names, and are in the form "{" remote_system_name [":" port] [flags] "}" [mailbox_name] where:

  • remote_system_name - Internet domain name or bracketed IP address of server.
  • port - optional TCP port number, default is the default port for that service
  • flags - optional flags, see following table.
  • mailbox_name - remote mailbox name, default is INBOX

Optional flags for names
Flag | Description
/service=service | mailbox access service, default is "imap"
/user=user | remote user name for login on the server
/authuser=user | remote authentication user; if specified this is the user name whose password is used (e.g. administrator)
/anonymous | remote access as anonymous user
/debug | record protocol telemetry in application's debug log
/secure | do not transmit a plaintext password over the network
/imap, /imap2, /imap2bis, /imap4, /imap4rev1 | equivalent to /service=imap
/pop3 | equivalent to /service=pop3
/nntp | equivalent to /service=nntp
/norsh | do not use rsh or ssh to establish a preauthenticated IMAP session
/ssl | use the Secure Socket Layer to encrypt the session
/validate-cert | validate certificates from TLS/SSL server (this is the default behavior)
/novalidate-cert | do not validate certificates from TLS/SSL server, needed if server uses self-signed certificates
/tls | force use of start-TLS to encrypt the session, and reject connection to servers that do not support it
/notls | do not do start-TLS to encrypt the session, even with servers that support it
/readonly | request read-only mailbox open (IMAP only; ignored on NNTP, and an error with SMTP and POP3)

username

The user name

password

The password associated with the username

options

The options are a bit mask with one or more of the following:

  • OP_READONLY - Open mailbox read-only
  • OP_ANONYMOUS - Don't use or update a .newsrc for news (NNTP only)
  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but don't open a mailbox.
  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close (see also imap_delete() and imap_expunge())
  • OP_DEBUG - Debug protocol negotiations
  • OP_SHORTCACHE - Short (elt-only) caching
  • OP_SILENT - Don't pass up events (internal use)
  • OP_PROTOTYPE - Return driver prototype
  • OP_SECURE - Don't do non-secure authentication

n_retries

Number of maximum connect attempts

params

Connection parameters, the following (string) keys maybe used to set one or more connection parameters:

  • DISABLE_AUTHENTICATOR - Disable authentication properties

Возвращаемые значения

Returns an IMAP stream on success or FALSE on error.

Список изменений

Версия | Описание
5.3.2 | params added
5.2.0 | n_retries added

Примеры

Пример #1 Different use of imap_open()

<?php
// To connect to an IMAP server running on port 143 on the local machine,
// do the following:
$mbox = imap_open("{localhost:143}INBOX", "user_id", "password");

// To connect to a POP3 server on port 110 on the local server, use:
$mbox = imap_open ("{localhost:110/pop3}INBOX", "user_id", "password");

// To connect to an SSL IMAP or POP3 server, add /ssl after the protocol
// specification:
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");

// To connect to an SSL IMAP or POP3 server with a self-signed certificate,
// add /ssl/novalidate-cert after the protocol specification:
$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

// To connect to an NNTP server on port 119 on the local server, use:
$nntp = imap_open ("{localhost:119/nntp}comp.test", "", "");
// To connect to a remote server replace "localhost" with the name or the
// IP address of the server you want to connect to.
?>

Пример #2 imap_open() example

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");

echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*");

if ($folders == false) {
    echo "Call failed<br />\n";
} else {
    foreach ($folders as $val) {
        echo $val . "<br />\n";
    }
}

echo "<h1>Headers in INBOX</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
    echo "Call failed<br />\n";
} else {
    foreach ($headers as $val) {
        echo $val . "<br />\n";
    }
}

imap_close($mbox);
?>

Смотрите также

  • imap_close() - Close an IMAP stream


Check if the IMAP stream is still active

  • « imap_open
  • imap_qprint »
  • PHP Manual
  • IMAP Функции
  • Check if the IMAP stream is still active

imap_ping

(PHP 4, PHP 5, PHP 7)

imap_ping — Check if the IMAP stream is still active

Описание

bool imap_ping ( resource $imap_stream )

imap_ping() pings the stream to see if it's still active. It may discover new mail; this is the preferred method for a periodic "new mail check" as well as a "keep alive" for servers which have inactivity timeout.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

Возвращаемые значения

Returns TRUE if the stream is still alive, FALSE otherwise.

Примеры

Пример #1 imap_ping() Example

<?php

$imap = imap_open("{imap.example.org}", "mailadmin", "password");

// after some sleeping
if (!imap_ping($imap)) {
    // do some stuff to reconnect
}

?>


Convert a quoted-printable string to an 8 bit string

  • « imap_ping
  • imap_rename »
  • PHP Manual
  • IMAP Функции
  • Convert a quoted-printable string to an 8 bit string

imap_qprint

(PHP 4, PHP 5, PHP 7)

imap_qprint — Convert a quoted-printable string to an 8 bit string

Описание

string imap_qprint ( string $string )

Convert a quoted-printable string to an 8 bit string according to » RFC2045, section 6.7.

Список параметров

string

A quoted-printable string

Возвращаемые значения

Returns an 8 bits string.

Смотрите также

  • imap_8bit() - Конвертирует 8-битную строку в quoted-printable строку


Псевдоним imap_renamemailbox

  • « imap_qprint
  • imap_renamemailbox »
  • PHP Manual
  • IMAP Функции
  • Псевдоним imap_renamemailbox

imap_rename

(PHP 4, PHP 5, PHP 7)

imap_rename — Псевдоним imap_renamemailbox()

Описание

Эта функция является псевдонимом: imap_renamemailbox().


Rename an old mailbox to new mailbox

  • « imap_rename
  • imap_reopen »
  • PHP Manual
  • IMAP Функции
  • Rename an old mailbox to new mailbox

imap_renamemailbox

(PHP 4, PHP 5, PHP 7)

imap_renamemailbox — Rename an old mailbox to new mailbox

Описание

bool imap_renamemailbox ( resource $imap_stream , string $old_mbox , string $new_mbox )

This function renames on old mailbox to new mailbox (see imap_open() for the format of mbox names).

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

old_mbox

The old mailbox name, see imap_open() for more information

new_mbox

The new mailbox name, see imap_open() for more information

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_createmailbox() - Create a new mailbox
  • imap_deletemailbox() - Delete a mailbox


Reopen IMAP stream to new mailbox

  • « imap_renamemailbox
  • imap_rfc822_parse_adrlist »
  • PHP Manual
  • IMAP Функции
  • Reopen IMAP stream to new mailbox

imap_reopen

(PHP 4, PHP 5, PHP 7)

imap_reopen — Reopen IMAP stream to new mailbox

Описание

bool imap_reopen ( resource $imap_stream , string $mailbox [, int $options = 0 [, int $n_retries = 0 ]] )

Reopens the specified stream to a new mailbox on an IMAP or NNTP server.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

The mailbox name, see imap_open() for more information

options

The options are a bit mask with one or more of the following:

  • OP_READONLY - Open mailbox read-only
  • OP_ANONYMOUS - Don't use or update a .newsrc for news (NNTP only)
  • OP_HALFOPEN - For IMAP and NNTP names, open a connection but don't open a mailbox.
  • OP_EXPUNGE - Silently expunge recycle stream
  • CL_EXPUNGE - Expunge mailbox automatically upon mailbox close (see also imap_delete() and imap_expunge())

n_retries

Number of maximum connect attempts

Возвращаемые значения

Returns TRUE if the stream is reopened, FALSE otherwise.

Список изменений

Версия | Описание
5.2.0 | n_retries added

Примеры

Пример #1 imap_reopen() example

<?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()));
// ..
?>


Parses an address string

  • « imap_reopen
  • imap_rfc822_parse_headers »
  • PHP Manual
  • IMAP Функции
  • Parses an address string

imap_rfc822_parse_adrlist

(PHP 4, PHP 5, PHP 7)

imap_rfc822_parse_adrlist — Parses an address string

Описание

array imap_rfc822_parse_adrlist ( string $address , string $default_host )

Parses the address string as defined in » RFC2822 and for each address.

Список параметров

address

A string containing addresses

default_host

The default host name

Возвращаемые значения

Returns an array of objects. The objects properties are:

  • mailbox - the mailbox name (username)
  • host - the host name
  • personal - the personal name
  • adl - at domain source route

Примеры

Пример #1 imap_rfc822_parse_adrlist() example

<?php

$address_string = "Joe Doe <doe@example.com>, postmaster@example.com, root";
$address_array  = imap_rfc822_parse_adrlist($address_string, "example.com");
if (!is_array($address_array) || count($address_array) < 1) {
    die("something is wrong\n");
}

foreach ($address_array as $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() - Parse mail headers from a string


Parse mail headers from a string

  • « imap_rfc822_parse_adrlist
  • imap_rfc822_write_address »
  • PHP Manual
  • IMAP Функции
  • Parse mail headers from a string

imap_rfc822_parse_headers

(PHP 4, PHP 5, PHP 7)

imap_rfc822_parse_headers — Parse mail headers from a string

Описание

object imap_rfc822_parse_headers ( string $headers [, string $defaulthost = "UNKNOWN" ] )

Gets an object of various header elements, similar to imap_header().

Список параметров

headers

The parsed headers data

defaulthost

The default host name

Возвращаемые значения

Returns an object similar to the one returned by imap_header(), except for the flags and other properties that come from the IMAP server.

Смотрите также

  • imap_rfc822_parse_adrlist() - Parses an address string


Returns a properly formatted email address given the mailbox, host, and personal info

  • « imap_rfc822_parse_headers
  • imap_savebody »
  • PHP Manual
  • IMAP Функции
  • Returns a properly formatted email address given the mailbox, host, and personal info

imap_rfc822_write_address

(PHP 4, PHP 5, PHP 7)

imap_rfc822_write_address — Returns a properly formatted email address given the mailbox, host, and personal info

Описание

string imap_rfc822_write_address ( string $mailbox , string $host , string $personal )

Returns a properly formatted email address as defined in » RFC2822 given the needed information.

Список параметров

mailbox

The mailbox name, see imap_open() for more information

host

The email host part

personal

The name of the account owner

Возвращаемые значения

Returns a string properly formatted email address as defined in » RFC2822.

Примеры

Пример #1 imap_rfc822_write_address() example

<?php
echo imap_rfc822_write_address("hartmut", "example.com", "Hartmut Holzgraefe");
?>

Результат выполнения данного примера:

Hartmut Holzgraefe <hartmut@example.com>


Save a specific body section to a file

  • « imap_rfc822_write_address
  • imap_scan »
  • PHP Manual
  • IMAP Функции
  • Save a specific body section to a file

imap_savebody

(PHP 5 >= 5.1.3, PHP 7)

imap_savebody — Save a specific body section to a file

Описание

bool imap_savebody ( resource $imap_stream , mixed $file , int $msg_number [, string $part_number = "" [, int $options = 0 ]] )

Saves a part or the whole body of the specified message.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

file

The path to the saved file as a string, or a valid file descriptor returned by fopen().

msg_number

The message number

part_number

The part number. It is a string of integers delimited by period which index into a body part list as per the IMAP4 specification

options

A bitmask with one or more of the following:

  • FT_UID - The msg_number is a UID
  • FT_PEEK - Do not set the \Seen flag if not already set
  • FT_INTERNAL - The return string is in internal format, will not canonicalize to CRLF.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_fetchbody() - Fetch a particular section of the body of the message


Псевдоним imap_listscan

  • « imap_savebody
  • imap_scanmailbox »
  • PHP Manual
  • IMAP Функции
  • Псевдоним imap_listscan

imap_scan

(PHP 4, PHP 5, PHP 7)

imap_scan — Псевдоним imap_listscan()

Описание

Эта функция является псевдонимом: imap_listscan().


Псевдоним imap_listscan

  • « imap_scan
  • imap_search »
  • PHP Manual
  • IMAP Функции
  • Псевдоним imap_listscan

imap_scanmailbox

(PHP 4, PHP 5, PHP 7)

imap_scanmailbox — Псевдоним imap_listscan()

Описание

Эта функция является псевдонимом: imap_listscan().


This function returns an array of messages matching the given search criteria

  • « imap_scanmailbox
  • imap_set_quota »
  • PHP Manual
  • IMAP Функции
  • This function returns an array of messages matching the given search criteria

imap_search

(PHP 4, PHP 5, PHP 7)

imap_search — This function returns an array of messages matching the given search criteria

Описание

array imap_search ( resource $imap_stream , string $criteria [, int $options = SE_FREE [, string $charset = NULL ]] )

This function performs a search on the mailbox currently opened in the given IMAP stream.

For example, to match all unanswered messages sent by Mom, you'd use: "UNANSWERED FROM mom". Searches appear to be case insensitive. This list of criteria is from a reading of the UW c-client source code and may be incomplete or inaccurate (see also » RFC2060, section 6.4.4).

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

criteria

A string, delimited by spaces, in which the following keywords are allowed. Any multi-word arguments (e.g. FROM "joey smith") must be quoted. Results will match all criteria entries.

  • ALL - return all messages matching the rest of the criteria
  • ANSWERED - match messages with the \\ANSWERED flag set
  • BCC "string" - match messages with "string" in the Bcc: field
  • BEFORE "date" - match messages with Date: before "date"
  • BODY "string" - match messages with "string" in the body of the message
  • CC "string" - match messages with "string" in the Cc: field
  • DELETED - match deleted messages
  • FLAGGED - match messages with the \\FLAGGED (sometimes referred to as Important or Urgent) flag set
  • FROM "string" - match messages with "string" in the From: field
  • KEYWORD "string" - match messages with "string" as a keyword
  • NEW - match new messages
  • OLD - match old messages
  • ON "date" - match messages with Date: matching "date"
  • RECENT - match messages with the \\RECENT flag set
  • SEEN - match messages that have been read (the \\SEEN flag is set)
  • SINCE "date" - match messages with Date: after "date"
  • SUBJECT "string" - match messages with "string" in the Subject:
  • TEXT "string" - match messages with text "string"
  • TO "string" - match messages with "string" in the To:
  • UNANSWERED - match messages that have not been answered
  • UNDELETED - match messages that are not deleted
  • UNFLAGGED - match messages that are not flagged
  • UNKEYWORD "string" - match messages that do not have the keyword "string"
  • UNSEEN - match messages which have not been read yet

options

Valid values for options are SE_UID, which causes the returned array to contain UIDs instead of messages sequence numbers.

charset

MIME character set to use when searching strings.

Возвращаемые значения

Returns an array of message numbers or UIDs.

Return FALSE if it does not understand the search criteria or no messages have been found.

Примеры

Пример #1 imap_search() example

<?php
$conn   = imap_open('{imap.example.com:993/imap/ssl}INBOX', 'foo@example.com', 'pass123', OP_READONLY);

$some   = imap_search($conn, 'SUBJECT "HOWTO be Awesome" SINCE "8 August 2008"', SE_UID);
$msgnos = imap_search($conn, 'ALL');
$uids   = imap_search($conn, 'ALL', SE_UID);

print_r($some);
print_r($msgnos);
print_r($uids);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 4
    [1] => 6
    [2] => 11
)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
)
Array
(
    [0] => 1
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 11
    [5] => 12
)

Смотрите также

  • imap_listscan() - Returns the list of mailboxes that matches the given text


Sets a quota for a given mailbox

  • « imap_search
  • imap_setacl »
  • PHP Manual
  • IMAP Функции
  • Sets a quota for a given mailbox

imap_set_quota

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

imap_set_quota — Sets a quota for a given mailbox

Описание

bool imap_set_quota ( resource $imap_stream , string $quota_root , int $quota_limit )

Sets an upper limit quota on a per mailbox basis.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

quota_root

The mailbox to have a quota set. This should follow the IMAP standard format for a mailbox: user.name.

quota_limit

The maximum size (in KB) for the quota_root

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imap_set_quota() example

<?php
$mbox = imap_open("{imap.example.org:143}", "mailadmin", "password");

if (!imap_set_quota($mbox, "user.kalowsky", 3000)) {
    echo "Error in setting quota\n";
    return;
}

imap_close($mbox);
?>

Примечания

This function is currently only available to users of the c-client2000 or greater library.

The given imap_stream must be opened as the mail administrator, other wise this function will fail.

Смотрите также

  • imap_open() - Open an IMAP stream to a mailbox
  • imap_get_quota() - Retrieve the quota level settings, and usage statics per mailbox


Sets the ACL for a given mailbox

  • « imap_set_quota
  • imap_setflag_full »
  • PHP Manual
  • IMAP Функции
  • Sets the ACL for a given mailbox

imap_setacl

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imap_setacl — Sets the ACL for a given mailbox

Описание

bool imap_setacl ( resource $imap_stream , string $mailbox , string $id , string $rights )

Sets the ACL for a giving mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

The mailbox name, see imap_open() for more information

id

The user to give the rights to.

rights

The rights to give to the user. Passing an empty string will delete acl.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

This function is currently only available to users of the c-client2000 or greater library.

Смотрите также

  • imap_getacl() - Gets the ACL for a given mailbox


Sets flags on messages

  • « imap_setacl
  • imap_sort »
  • PHP Manual
  • IMAP Функции
  • Sets flags on messages

imap_setflag_full

(PHP 4, PHP 5, PHP 7)

imap_setflag_full — Sets flags on messages

Описание

bool imap_setflag_full ( resource $imap_stream , string $sequence , string $flag [, int $options = NIL ] )

Causes a store to add the specified flag to the flags set for the messages in the specified sequence.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

sequence

A sequence of message numbers. You can enumerate desired messages with the X,Y syntax, or retrieve all messages within an interval with the X:Y syntax

flag

The flags which you can set are \Seen, \Answered, \Flagged, \Deleted, and \Draft as defined by » RFC2060.

options

A bit mask that may contain the single option:

  • ST_UID - The sequence argument contains UIDs instead of sequence numbers

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 imap_setflag_full() example

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password")
     or die("can't connect: " . imap_last_error());

$status = imap_setflag_full($mbox, "2,5", "\\Seen \\Flagged");

echo gettype($status) . "\n";
echo $status . "\n";

imap_close($mbox);
?>

Смотрите также

  • imap_clearflag_full() - Clears flags on messages


Gets and sort messages

  • « imap_setflag_full
  • imap_status »
  • PHP Manual
  • IMAP Функции
  • Gets and sort messages

imap_sort

(PHP 4, PHP 5, PHP 7)

imap_sort — Gets and sort messages

Описание

array imap_sort ( resource $imap_stream , int $criteria , int $reverse [, int $options = 0 [, string $search_criteria = NULL [, string $charset = NULL ]]] )

Gets and sorts message numbers by the given parameters.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

criteria

Criteria can be one (and only one) of the following:

  • SORTDATE - message Date
  • SORTARRIVAL - arrival date
  • SORTFROM - mailbox in first From address
  • SORTSUBJECT - message subject
  • SORTTO - mailbox in first To address
  • SORTCC - mailbox in first cc address
  • SORTSIZE - size of message in octets

reverse

Set this to 1 for reverse sorting

options

The options are a bitmask of one or more of the following:

  • SE_UID - Return UIDs instead of sequence numbers
  • SE_NOPREFETCH - Don't prefetch searched messages

search_criteria

IMAP2-format search criteria string. For details see imap_search().

charset

MIME character set to use when sorting strings.

Возвращаемые значения

Returns an array of message numbers sorted by the given parameters.


Returns status information on a mailbox

  • « imap_sort
  • imap_subscribe »
  • PHP Manual
  • IMAP Функции
  • Returns status information on a mailbox

imap_status

(PHP 4, PHP 5, PHP 7)

imap_status — Returns status information on a mailbox

Описание

object imap_status ( resource $imap_stream , string $mailbox , int $options )

Gets status information about the given mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

The mailbox name, see imap_open() for more information

options

Valid flags are:

  • SA_MESSAGES - set $status->messages to the number of messages in the mailbox
  • SA_RECENT - set $status->recent to the number of recent messages in the mailbox
  • SA_UNSEEN - set $status->unseen to the number of unseen (new) messages in the mailbox
  • SA_UIDNEXT - set $status->uidnext to the next uid to be used in the mailbox
  • SA_UIDVALIDITY - set $status->uidvalidity to a constant that changes when uids for the mailbox may no longer be valid
  • SA_ALL - set all of the above

Возвращаемые значения

This function returns an object containing status information. The object has the following properties: messages, recent, unseen, uidnext, and uidvalidity.

flags is also set, which contains a bitmask which can be checked against any of the above constants.

Примеры

Пример #1 imap_status() example

<?php
$mbox = imap_open("{imap.example.com}", "username", "password", OP_HALFOPEN)
      or die("can't connect: " . imap_last_error());

$status = imap_status($mbox, "{imap.example.org}INBOX", SA_ALL);
if ($status) {
  echo "Messages:   " . $status->messages    . "<br />\n";
  echo "Recent:     " . $status->recent      . "<br />\n";
  echo "Unseen:     " . $status->unseen      . "<br />\n";
  echo "UIDnext:    " . $status->uidnext     . "<br />\n";
  echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";
} else {
  echo "imap_status failed: " . imap_last_error() . "\n";
}

imap_close($mbox);
?>


Subscribe to a mailbox

  • « imap_status
  • imap_thread »
  • PHP Manual
  • IMAP Функции
  • Subscribe to a mailbox

imap_subscribe

(PHP 4, PHP 5, PHP 7)

imap_subscribe — Subscribe to a mailbox

Описание

bool imap_subscribe ( resource $imap_stream , string $mailbox )

Subscribe to a new mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

The mailbox name, see imap_open() for more information

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_unsubscribe() - Unsubscribe from a mailbox


Returns a tree of threaded message

  • « imap_subscribe
  • imap_timeout »
  • PHP Manual
  • IMAP Функции
  • Returns a tree of threaded message

imap_thread

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

imap_thread — Returns a tree of threaded message

Описание

array imap_thread ( resource $imap_stream [, int $options = SE_FREE ] )

Gets a tree of a threaded message.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

options

Возвращаемые значения

imap_thread() returns an associative array containing a tree of messages threaded by REFERENCES, or FALSE on error.

Every message in the current mailbox will be represented by three entries in the resulting array:

  • $thread["XX.num"] - current message number

  • $thread["XX.next"]

  • $thread["XX.branch"]

Примеры

Пример #1 imap_thread() Example

<?php

// Here we're outputting the threads of a newsgroup, in HTML

$nntp = imap_open('{news.example.com:119/nntp}some.newsgroup', '', '');
$threads = imap_thread($nntp);

foreach ($threads as $key => $val) {
  $tree = explode('.', $key);
  if ($tree[1] == 'num') {
    $header = imap_headerinfo($nntp, $val);
    echo "<ul>\n\t<li>" . $header->fromaddress . "\n";
  } elseif ($tree[1] == 'branch') {
    echo "\t</li>\n</ul>\n";
  }
}

imap_close($nntp);

?>


Set or fetch imap timeout

  • « imap_thread
  • imap_uid »
  • PHP Manual
  • IMAP Функции
  • Set or fetch imap timeout

imap_timeout

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

imap_timeout — Set or fetch imap timeout

Описание

mixed imap_timeout ( int $timeout_type [, int $timeout = -1 ] )

Sets or fetches the imap timeout.

Список параметров

timeout_type

One of the following: IMAP_OPENTIMEOUT, IMAP_READTIMEOUT, IMAP_WRITETIMEOUT, or IMAP_CLOSETIMEOUT.

timeout

The timeout, in seconds.

Возвращаемые значения

If the timeout parameter is set, this function returns TRUE on success and FALSE on failure.

If timeout is not provided or evaluates to -1, the current timeout value of timeout_type is returned as an integer.

Примеры

Пример #1 imap_timeout() example

<?php

echo "The current read timeout is " . imap_timeout(IMAP_READTIMEOUT) . "\n";

?>


This function returns the UID for the given message sequence number

  • « imap_timeout
  • imap_undelete »
  • PHP Manual
  • IMAP Функции
  • This function returns the UID for the given message sequence number

imap_uid

(PHP 4, PHP 5, PHP 7)

imap_uid — This function returns the UID for the given message sequence number

Описание

int imap_uid ( resource $imap_stream , int $msg_number )

This function returns the UID for the given message sequence number. An UID is a unique identifier that will not change over time while a message sequence number may change whenever the content of the mailbox changes.

This function is the inverse of imap_msgno().

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

The message number.

Возвращаемые значения

The UID of the given message.

Примечания

Замечание:

This function is not supported by POP3 mailboxes.

Смотрите также

  • imap_msgno() - Gets the message sequence number for the given UID


Unmark the message which is marked deleted

  • « imap_uid
  • imap_unsubscribe »
  • PHP Manual
  • IMAP Функции
  • Unmark the message which is marked deleted

imap_undelete

(PHP 4, PHP 5, PHP 7)

imap_undelete — Unmark the message which is marked deleted

Описание

bool imap_undelete ( resource $imap_stream , int $msg_number [, int $flags = 0 ] )

Removes the deletion flag for a specified message, which is set by imap_delete() or imap_mail_move().

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

msg_number

The message number

flags

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_delete() - Mark a message for deletion from current mailbox
  • imap_mail_move() - Move specified messages to a mailbox


Unsubscribe from a mailbox

  • « imap_undelete
  • imap_utf7_decode »
  • PHP Manual
  • IMAP Функции
  • Unsubscribe from a mailbox

imap_unsubscribe

(PHP 4, PHP 5, PHP 7)

imap_unsubscribe — Unsubscribe from a mailbox

Описание

bool imap_unsubscribe ( resource $imap_stream , string $mailbox )

Unsubscribe from the specified mailbox.

Список параметров

imap_stream

Поток IMAP, полученный из imap_open().

mailbox

The mailbox name, see imap_open() for more information

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • imap_subscribe() - Subscribe to a mailbox


Decodes a modified UTF-7 encoded string

  • « imap_unsubscribe
  • imap_utf7_encode »
  • PHP Manual
  • IMAP Функции
  • Decodes a modified UTF-7 encoded string

imap_utf7_decode

(PHP 4, PHP 5, PHP 7)

imap_utf7_decode — Decodes a modified UTF-7 encoded string

Описание

string imap_utf7_decode ( string $text )

Decodes modified UTF-7 text into ISO-8859-1 string.

This function is needed to decode mailbox names that contain certain characters which are not in range of printable ASCII characters.

Список параметров

text

A modified UTF-7 encoding string, as defined in » RFC 2060, section 5.1.3 (original UTF-7 was defined in » RFC1642).

Возвращаемые значения

Returns a string that is encoded in ISO-8859-1 and consists of the same sequence of characters in text, or FALSE if text contains invalid modified UTF-7 sequence or text contains a character that is not part of ISO-8859-1 character set.

Смотрите также

  • imap_utf7_encode() - Converts ISO-8859-1 string to modified UTF-7 text


Converts ISO-8859-1 string to modified UTF-7 text

  • « imap_utf7_decode
  • imap_utf8 »
  • PHP Manual
  • IMAP Функции
  • Converts ISO-8859-1 string to modified UTF-7 text

imap_utf7_encode

(PHP 4, PHP 5, PHP 7)

imap_utf7_encode — Converts ISO-8859-1 string to modified UTF-7 text

Описание

string imap_utf7_encode ( string $data )

Converts data to modified UTF-7 text.

This is needed to encode mailbox names that contain certain characters which are not in range of printable ASCII characters.

Список параметров

data

An ISO-8859-1 string.

Возвращаемые значения

Returns data encoded with the modified UTF-7 encoding as defined in » RFC 2060, section 5.1.3 (original UTF-7 was defined in » RFC1642).

Смотрите также

  • imap_utf7_decode() - Decodes a modified UTF-7 encoded string


Converts MIME-encoded text to UTF-8

  • « imap_utf7_encode
  • Mail »
  • PHP Manual
  • IMAP Функции
  • Converts MIME-encoded text to UTF-8

imap_utf8

(PHP 4, PHP 5, PHP 7)

imap_utf8 — Converts MIME-encoded text to UTF-8

Описание

string imap_utf8 ( string $mime_encoded_text )

Converts the given mime_encoded_text to UTF-8.

Список параметров

mime_encoded_text

A MIME encoded string. MIME encoding method and the UTF-8 specification are described in » RFC2047 and » RFC2044 respectively.

Возвращаемые значения

Returns an UTF-8 encoded string.

Смотрите также

  • imap_mime_header_decode() - Decode MIME header elements


Mail

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Почта
    • ezmlm_hash — Вычисляет хеш-сумму, необходимую для EZMLM
    • mail — Отправляет электронную почту


  • « Mail
  • Установка и настройка »
  • PHP Manual
  • Mail
  • Введение

Введение

Функция mail() позволяет вам отправлять электронную почту.


Требования

Для работы функций Mail PHP должно иметь доступ к бинарным файлам sendmail в вашей системе во время компиляции. Если вы используете другую почтовую программу, такую как qmail или postfix, вы должны быть уверены, что используете соответствующие обертки sendmail, поставляемые с этими продуктами. PHP будет в первую очередь искать файлы sendmail по пути в переменной окружения PATH, и далее: /usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib. Очень рекомендуется иметь sendmail доступным из переменной окружения PATH. Также, пользователь под кем был скомпилирован PHP обязан иметь доступ к бинарным файлам sendmail.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Конфигурационные опции отправки писем
Имя | По умолчанию | Меняемо | Список изменений
mail.add_x_header | "0" | PHP_INI_PERDIR | Доступна с PHP 5.3.0.
mail.log | NULL | PHP_INI_PERDIR | Доступна с PHP 5.3.0. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
mail.force_extra_parameters | NULL | PHP_INI_PERDIR | Доступна с PHP 5.0.0. (PHP_INI_SYSTEM|PHP_INI_PERDIR)
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL |
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

mail.add_x_header bool

Добавляет заголовок X-PHP-Originating-Script, который будет содержать UID скрипта и имя файла.

mail.log string

Путь к лог-файлу, в который будут записываться все вызовы функции mail(). Записи в логе содержат полный путь до скрипта, номер строки, адрес получателя To и заголовки.

mail.force_extra_parameters string

Принудительно добавить указанные параметры для отправки в sendmail. Эти параметры всегда замещают пятый параметр в mail(), даже в безопасном режиме.

SMTP string

Использутся только в Windows: домен или IP-адрес SMTP-сервера, к которому будет обращаться PHP при отправке почты функцией mail().

smtp_port int

Использутся только в Windows: порт SMTP-сервера, к которому будет обращаться PHP при отправке почты функцией mail(); по умолчанию 25.

sendmail_from string

Адрес, который будет использоваться в заголовке "From:" в письмах, посылаемых PHP в Windows. Эта директива также устанавливает заголовок "Return-Path:".

sendmail_path string

Путь до программы sendmail, обычно /usr/sbin/sendmail или /usr/lib/sendmail. configure пытается найти sendmail автоматически и установить значение по умолчанию самостоятельно, но если это не удалось, вы можете установить путь здесь.

Системы, не использующие sendmail, должны установить эту директиву в путь до обертки/заменителя sendmail. Например, пользователи » Qmail обычно устанавливают значение /var/qmail/bin/sendmail или /var/qmail/bin/qmail-inject.

qmail-inject не требует дополнительных опций для отправки писем.

Эта директива также работает и в Windows. Если она установлена, smtp, smtp_port и sendmail_from будут проигнорированы и выполнится указанная программа.


  • « Типы ресурсов
  • Почта »
  • PHP Manual
  • Mail
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Почта

Содержание

  • ezmlm_hash — Вычисляет хеш-сумму, необходимую для EZMLM
  • mail — Отправляет электронную почту


Вычисляет хеш-сумму, необходимую для EZMLM

  • « Почта
  • mail »
  • PHP Manual
  • Почта
  • Вычисляет хеш-сумму, необходимую для EZMLM

ezmlm_hash

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ezmlm_hash — Вычисляет хеш-сумму, необходимую для EZMLM

Описание

int ezmlm_hash ( string $addr )

ezmlm_hash() вычисляет хеш-сумму, необходимую при хранении почтовых списков EZMLM в базе MySQL.

Список параметров

addr

Хешируемый адрес электронной почты.

Возвращаемые значения

Хеш-сумма параметра addr.

Примеры

Пример #1 Вычисляет хеш-сумму и подписка пользователя на что-либо

<?php

$user = "joecool@example.com";
$hash = ezmlm_hash($user);
$query = sprintf("INSERT INTO sample VALUES (%s, '%s')", $hash, $user);
$db->query($query); // используя интерфейс PHPLIB db

?>


Отправляет электронную почту

  • « ezmlm_hash
  • Mailparse »
  • PHP Manual
  • Почта
  • Отправляет электронную почту

mail

(PHP 4, PHP 5, PHP 7)

mail — Отправляет электронную почту

Описание

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

Отправляет электронную почту.

Список параметров

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). Если для составления этого заголовка используются внешние данные, то они должны быть проверены для избежания инъекций нежелательных заголовков.

Замечание:

additional_headers не имеет защиты от инъекции. Так что пользователи должны удостовериться, что передаваемые заголовки безопасны и содержат только заголовки. т.е. не содержат несколько переводов строк подряд, что стартует тело сообщения.

Замечание:

При отправке письмо должно содержать заголовок From. Он может быть установлен с помощью параметра additional_headers, или значение по умолчанию может быть установлено в php.ini.

Если заголовок отсутствует, будет сгенерировано сообщение об ошибке вида Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing. Заголовок From также определяет заголовок Return-Path в Windows.

Замечание:

Если сообщения не отправляются, попробуйте использовать только LF (\n). Некоторые агенты пересылки сообщений Unix (особенно » qmail) автоматически заменяют LF на CRLF (что приводит к двойному CR, если использовалось CRLF). Используйте эту меру в крайнем случае, так как это нарушает » RFC 2822.

additional_parameters (необязательный)

Параметр additional_parameters может быть использован для передачи дополнительных флагов в виде аргументов командной строки для программы сконфигурированной для отправки писем, указанной директивой sendmail_path. Например, можно установить отправителя письма при использовании sendmail с помощью опции -f.

Параметр автоматически экранируется функцией escapeshellcmd(), чтобы не допустить выполнение команд. Но escapeshellcmd() позволяет добавлять дополнительные параметры. В целях безопасности рекомендуется проверять и очищать этот параметр.

Так как escapeshellcmd() применяется автоматически, то нельзя использовать некоторые символы, допустимые к использованию в email-адресах некоторыми RFC. mail() не допускает такие символы, поэтому в программах, в которых они требуются, рекомендуется использовать альтернативы для их отправки (например фреймворки или библиотеки).

Пользователь, под которым работает веб-сервер должен быть добавлен в список доверенных в конфигурации sendmail для того чтобы избежать добавления заголовка 'X-Warning' при указании отправителя с помощью опции (-f). Для пользователей sendmail - это файл /etc/mail/trusted-users.

Возвращаемые значения

Возвращает TRUE, если письмо было принято для передачи, иначе FALSE.

Важно заметить, что то что письмо было принято для передачи вовсе НЕ означает что оно достигло получателя.

Список изменений

Версия | Описание
4.2.3 | Параметр additional_parameters отключен в режиме safe_mode и при его использовании функция mail() вызовет предупреждение и вернет FALSE.

Примеры

Пример #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 Отправка письма с дополнительными аргументами командной строки.

Параметр additional_parameters может быть использован для передачи дополнительных параметров программе, используемой для отправки писем с помощью директивы sendmail_path.

<?php
mail('nobody@example.com', 'the subject', 'the message', null,
   '-fwebmaster@example.com');
?>

Пример #4 Отправка HTML-сообщения

С помощью функции mail() также можно отправить и HTML-письмо.

<?php
// несколько получателей
$to  = 'aidan@example.com' . ', '; // обратите внимание на запятую
$to .= 'wez@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>Joe</td><td>3rd</td><td>August</td><td>1970</td>
    </tr>
    <tr>
      <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
    </tr>
  </table>
</body>
</html>
';

// Для отправки HTML-письма должен быть установлен заголовок Content-type
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Дополнительные заголовки
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Отправляем
mail($to, $subject, $message, $headers);
?>

Замечание:

Для отправки HTML или других комплексных сообщений рекомендуется использовать PEAR-пакет » PEAR::Mail_Mime.

Примечания

Замечание:

Реализация функции mail() в Windows во многом отличается от реализации в Unix. Во-первых, она не использует локальную программу для составления писем, а работает непосредственно с сокетами, что означает что необходим почтовый агент (MTA), ожидающий соединений на сокете (может быть как на локальном так и на удаленном сервере).

Во-вторых, дополнительные заголовки вроде: From:, Cc:, Bcc: и Date: интерпретируются в первую очередь не, MTA, а PHP.

Поэтому параметр to не должен быть адресом вида "Something <someone@example.com>". Команда mail может неправильно интерпретировать этот адрес во время передачи данных MTA.

Замечание:

Не следует использовать функцию mail() для отправки большого количества писем в цикле. Функция открывает и закрывает соединение с SMTP-сервером для каждого письма, что не очень эффективно.

Для отправки большого количества сообщений обратите внимание на пакеты » PEAR::Mail и » PEAR::Mail_Queue.

Замечание:

Полезные RFC: » RFC 1896, » RFC 2045, » RFC 2046, » RFC 2047, » RFC 2048, » RFC 2049 и » RFC 2822.

Смотрите также

  • imap_mail() - Send an email message
  • » PEAR::Mail
  • » PEAR::Mail_Mime


Mailparse

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Mailparse
    • mailparse_determine_best_xfer_encoding — Gets the best way of encoding
    • mailparse_msg_create — Create a mime mail resource
    • mailparse_msg_extract_part_file — Extracts/decodes a message section
    • mailparse_msg_extract_part — Extracts/decodes a message section
    • mailparse_msg_extract_whole_part_file — Extracts a message section including headers without decoding the transfer encoding
    • mailparse_msg_free — Frees a MIME resource
    • mailparse_msg_get_part_data — Returns an associative array of info about the message
    • mailparse_msg_get_part — Returns a handle on a given section in a mimemessage
    • mailparse_msg_get_structure — Returns an array of mime section names in the supplied message
    • mailparse_msg_parse_file — Parses a file
    • mailparse_msg_parse — Incrementally parse data into buffer
    • mailparse_rfc822_parse_addresses — Parse RFC 822 compliant addresses
    • mailparse_stream_encode — Streams data from source file pointer, apply encoding and write to destfp
    • mailparse_uudecode_all — Scans the data from fp and extract each embedded uuencoded file


Введение

Mailparse - это расширение для анализа и работы с почтовыми сообщениями. Расширение работает с сообщениями, совместимыми c » RFC 822 и » RFC 2045 (MIME).

Mailparse не держит в памяти копии обрабатываемых файлов, что очень эффективно с точки зрения ресурсов при обработке объемных сообщений.

Замечание:

Mailparse требует наличия расширения mbstring , и оно должно быть загружено перед mailparse.

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 4.2.0.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/mailparse.

Для использования этих функций вы должны скомпилировать PHP с поддержкой mailparse используя опцию конфигурации --enable-mailparse .

Пользователям Windows необходимо разрешить php_mailparse.dll в php.ini для использования этих функций. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Необходимо, что бы модуль mbstring был загружен перед использованием mailparse.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MAILPARSE_EXTRACT_OUTPUT (integer)
MAILPARSE_EXTRACT_STREAM (integer)
MAILPARSE_EXTRACT_RETURN (integer)


Mailparse

Содержание

  • mailparse_determine_best_xfer_encoding — Gets the best way of encoding
  • mailparse_msg_create — Create a mime mail resource
  • mailparse_msg_extract_part_file — Extracts/decodes a message section
  • mailparse_msg_extract_part — Extracts/decodes a message section
  • mailparse_msg_extract_whole_part_file — Extracts a message section including headers without decoding the transfer encoding
  • mailparse_msg_free — Frees a MIME resource
  • mailparse_msg_get_part_data — Returns an associative array of info about the message
  • mailparse_msg_get_part — Returns a handle on a given section in a mimemessage
  • mailparse_msg_get_structure — Returns an array of mime section names in the supplied message
  • mailparse_msg_parse_file — Parses a file
  • mailparse_msg_parse — Incrementally parse data into buffer
  • mailparse_rfc822_parse_addresses — Parse RFC 822 compliant addresses
  • mailparse_stream_encode — Streams data from source file pointer, apply encoding and write to destfp
  • mailparse_uudecode_all — Scans the data from fp and extract each embedded uuencoded file


Gets the best way of encoding

  • « Mailparse
  • mailparse_msg_create »
  • PHP Manual
  • Mailparse
  • Gets the best way of encoding

mailparse_determine_best_xfer_encoding

(PECL mailparse >= 0.9.0)

mailparse_determine_best_xfer_encoding — Gets the best way of encoding

Описание

string mailparse_determine_best_xfer_encoding ( resource $fp )

Figures out the best way of encoding the content read from the given file pointer.

Список параметров

fp

A valid file pointer, which must be seek-able.

Возвращаемые значения

Returns one of the character encodings supported by the mbstring module.

Примеры

Пример #1 mailparse_determine_best_xfer_encoding() example

<?php

$fp = fopen('somemail.eml', 'r');
echo 'Best encoding: ' . mailparse_determine_best_xfer_encoding($fp);

?>

Результатом выполнения данного примера будет что-то подобное:

Best encoding: 7bit


Create a mime mail resource

  • « mailparse_determine_best_xfer_encoding
  • mailparse_msg_extract_part_file »
  • PHP Manual
  • Mailparse
  • Create a mime mail resource

mailparse_msg_create

(PECL mailparse >= 0.9.0)

mailparse_msg_create — Create a mime mail resource

Описание

resource mailparse_msg_create ( void )

Create a MIME mail resource.

Возвращаемые значения

Returns a handle that can be used to parse a message.

Смотрите также

  • mailparse_msg_free() - Frees a MIME resource
  • mailparse_msg_parse_file() - Parses a file


Extracts/decodes a message section

  • « mailparse_msg_create
  • mailparse_msg_extract_part »
  • PHP Manual
  • Mailparse
  • Extracts/decodes a message section

mailparse_msg_extract_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part_file — Extracts/decodes a message section

Описание

string mailparse_msg_extract_part_file ( resource $mimemail , mixed $filename [, callable $callbackfunc ] )

Extracts/decodes a message section from the supplied filename.

The contents of the section will be decoded according to their transfer encoding - base64, quoted-printable and uuencoded text are supported.

Список параметров

mimemail

A valid MIME resource, created with mailparse_msg_create().

filename

Can be a file name or a valid stream resource.

callbackfunc

If set, this must be either a valid callback that will be passed the extracted section, or NULL to make this function return the extracted section.

If not specified, the contents will be sent to "stdout".

Возвращаемые значения

If callbackfunc is not NULL returns TRUE on success.

If callbackfunc is set to NULL, returns the extracted section as a string.

Returns FALSE on error.

Смотрите также

  • mailparse_msg_extract_part() - Extracts/decodes a message section
  • mailparse_msg_extract_whole_part_file() - Extracts a message section including headers without decoding the transfer encoding


Extracts/decodes a message section

  • « mailparse_msg_extract_part_file
  • mailparse_msg_extract_whole_part_file »
  • PHP Manual
  • Mailparse
  • Extracts/decodes a message section

mailparse_msg_extract_part

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_part — Extracts/decodes a message section

Описание

void mailparse_msg_extract_part ( resource $mimemail , string $msgbody [, callable $callbackfunc ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mimemail

A valid MIME resource.

msgbody

callbackfunc

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • mailparse_msg_extract_part_file() - Extracts/decodes a message section
  • mailparse_msg_extract_whole_part_file() - Extracts a message section including headers without decoding the transfer encoding


Extracts a message section including headers without decoding the transfer encoding

  • « mailparse_msg_extract_part
  • mailparse_msg_free »
  • PHP Manual
  • Mailparse
  • Extracts a message section including headers without decoding the transfer encoding

mailparse_msg_extract_whole_part_file

(PECL mailparse >= 0.9.0)

mailparse_msg_extract_whole_part_file — Extracts a message section including headers without decoding the transfer encoding

Описание

string mailparse_msg_extract_whole_part_file ( resource $mimemail , string $filename [, callable $callbackfunc ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mimemail

A valid MIME resource.

filename

callbackfunc

Возвращаемые значения

Смотрите также

  • mailparse_msg_extract_part() - Extracts/decodes a message section
  • mailparse_msg_extract_part_file() - Extracts/decodes a message section


Frees a MIME resource

  • « mailparse_msg_extract_whole_part_file
  • mailparse_msg_get_part_data »
  • PHP Manual
  • Mailparse
  • Frees a MIME resource

mailparse_msg_free

(PECL mailparse >= 0.9.0)

mailparse_msg_free — Frees a MIME resource

Описание

bool mailparse_msg_free ( resource $mimemail )

Frees a MIME resource.

Список параметров

mimemail

A valid MIME resource allocated by mailparse_msg_create() or mailparse_msg_parse_file().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • mailparse_msg_create() - Create a mime mail resource
  • mailparse_msg_parse_file() - Parses a file


Returns an associative array of info about the message

  • « mailparse_msg_free
  • mailparse_msg_get_part »
  • PHP Manual
  • Mailparse
  • Returns an associative array of info about the message

mailparse_msg_get_part_data

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part_data — Returns an associative array of info about the message

Описание

array mailparse_msg_get_part_data ( resource $mimemail )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mimemail

A valid MIME resource.


Returns a handle on a given section in a mimemessage

  • « mailparse_msg_get_part_data
  • mailparse_msg_get_structure »
  • PHP Manual
  • Mailparse
  • Returns a handle on a given section in a mimemessage

mailparse_msg_get_part

(PECL mailparse >= 0.9.0)

mailparse_msg_get_part — Returns a handle on a given section in a mimemessage

Описание

resource mailparse_msg_get_part ( resource $mimemail , string $mimesection )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mimemail

A valid MIME resource.

mimesection


Returns an array of mime section names in the supplied message

  • « mailparse_msg_get_part
  • mailparse_msg_parse_file »
  • PHP Manual
  • Mailparse
  • Returns an array of mime section names in the supplied message

mailparse_msg_get_structure

(PECL mailparse >= 0.9.0)

mailparse_msg_get_structure — Returns an array of mime section names in the supplied message

Описание

array mailparse_msg_get_structure ( resource $mimemail )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mimemail

A valid MIME resource.


Parses a file

  • « mailparse_msg_get_structure
  • mailparse_msg_parse »
  • PHP Manual
  • Mailparse
  • Parses a file

mailparse_msg_parse_file

(PECL mailparse >= 0.9.0)

mailparse_msg_parse_file — Parses a file

Описание

resource mailparse_msg_parse_file ( string $filename )

Parses a file. This is the optimal way of parsing a mail file that you have on disk.

Список параметров

filename

Path to the file holding the message. The file is opened and streamed through the parser.

Возвращаемые значения

Returns a MIME resource representing the structure, or FALSE on error.

Смотрите также

  • mailparse_msg_free() - Frees a MIME resource
  • mailparse_msg_create() - Create a mime mail resource


Incrementally parse data into buffer

  • « mailparse_msg_parse_file
  • mailparse_rfc822_parse_addresses »
  • PHP Manual
  • Mailparse
  • Incrementally parse data into buffer

mailparse_msg_parse

(PECL mailparse >= 0.9.0)

mailparse_msg_parse — Incrementally parse data into buffer

Описание

bool mailparse_msg_parse ( resource $mimemail , string $data )

Incrementally parse data into the supplied mime mail resource.

This function allow you to stream portions of a file at a time, rather than read and parse the whole thing.

Список параметров

mimemail

A valid MIME resource.

data

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Parse RFC 822 compliant addresses

  • « mailparse_msg_parse
  • mailparse_stream_encode »
  • PHP Manual
  • Mailparse
  • Parse RFC 822 compliant addresses

mailparse_rfc822_parse_addresses

(PECL mailparse >= 0.9.0)

mailparse_rfc822_parse_addresses — Parse RFC 822 compliant addresses

Описание

array mailparse_rfc822_parse_addresses ( string $addresses )

Parses a » RFC 822 compliant recipient list, such as that found in the To: header.

Список параметров

addresses

A string containing addresses, like in: Wez Furlong <wez@example.com>, doe@example.com

Замечание:

This string must not include the header name.

Возвращаемые значения

Returns an array of associative arrays with the following keys for each recipient:

display | The recipient name, for display purpose. If this part is not set for a recipient, this key will hold the same value as address.
address | The email address
is_group | TRUE if the recipient is a newsgroup, FALSE otherwise.

Примеры

Пример #1 mailparse_rfc822_parse_addresses() example

<?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)
  }
}


Streams data from source file pointer, apply encoding and write to destfp

  • « mailparse_rfc822_parse_addresses
  • mailparse_uudecode_all »
  • PHP Manual
  • Mailparse
  • Streams data from source file pointer, apply encoding and write to destfp

mailparse_stream_encode

(PECL mailparse >= 0.9.0)

mailparse_stream_encode — Streams data from source file pointer, apply encoding and write to destfp

Описание

bool mailparse_stream_encode ( resource $sourcefp , resource $destfp , string $encoding )

Streams data from the source file pointer, apply encoding and write to the destination file pointer.

Список параметров

sourcefp

A valid file handle. The file is streamed through the parser.

destfp

The destination file handle in which the encoded data will be written.

encoding

One of the character encodings supported by the mbstring module.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 mailparse_stream_encode() example

<?php

// email.eml contents: hello, this is some text=hello.
$fp = fopen('email.eml', 'r');

$dest = tmpfile();

mailparse_stream_encode($fp, $dest, "quoted-printable");

rewind($dest);

// Display new file contents
fpassthru($dest);

?>

Результат выполнения данного примера:

hello, this is some text=3Dhello.


Scans the data from fp and extract each embedded uuencoded file

  • « mailparse_stream_encode
  • vpopmail »
  • PHP Manual
  • Mailparse
  • Scans the data from fp and extract each embedded uuencoded file

mailparse_uudecode_all

(PECL mailparse >= 0.9.0)

mailparse_uudecode_all — Scans the data from fp and extract each embedded uuencoded file

Описание

array mailparse_uudecode_all ( resource $fp )

Scans the data from the given file pointer and extract each embedded uuencoded file into a temporary file.

Список параметров

fp

A valid file pointer.

Возвращаемые значения

Returns an array of associative arrays listing filename information.

filename | Path to the temporary file name created
origfilename | The original filename, for uuencoded parts only
The first filename entry is the message body. The next entries are the decoded uuencoded files.

Примеры

Пример #1 mailparse_uudecode_all() example

<?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"]);

// Clean up
unlink($data[0]["filename"]);
unlink($data[1]["filename"]);

?>

Результат выполнения данного примера:

BODY
To: fred@example.com

hello, this is some text hello.
blah blah blah.

UUE (test.txt)
this is a test


vpopmail

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции vpopmail
    • vpopmail_add_alias_domain_ex — Add alias to an existing virtual domain
    • vpopmail_add_alias_domain — Add an alias for a virtual domain
    • vpopmail_add_domain_ex — Add a new virtual domain
    • vpopmail_add_domain — Add a new virtual domain
    • vpopmail_add_user — Add a new user to the specified virtual domain
    • vpopmail_alias_add — Insert a virtual alias
    • vpopmail_alias_del_domain — Deletes all virtual aliases of a domain
    • vpopmail_alias_del — Deletes all virtual aliases of a user
    • vpopmail_alias_get_all — Get all lines of an alias for a domain
    • vpopmail_alias_get — Get all lines of an alias for a domain
    • vpopmail_auth_user — Attempt to validate a username/domain/password
    • vpopmail_del_domain_ex — Delete a virtual domain
    • vpopmail_del_domain — Delete a virtual domain
    • vpopmail_del_user — Delete a user from a virtual domain
    • vpopmail_error — Get text message for last vpopmail error
    • vpopmail_passwd — Change a virtual user's password
    • vpopmail_set_user_quota — Sets a virtual user's quota


Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Это расширение было исключено из PHP с версии PHP 4.3.0 и сейчас vpopmail включено в состав » PECL.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/vpopmail.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Типы ресурсов
  • Функции vpopmail »
  • PHP Manual
  • vpopmail
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции vpopmail

Содержание

  • vpopmail_add_alias_domain_ex — Add alias to an existing virtual domain
  • vpopmail_add_alias_domain — Add an alias for a virtual domain
  • vpopmail_add_domain_ex — Add a new virtual domain
  • vpopmail_add_domain — Add a new virtual domain
  • vpopmail_add_user — Add a new user to the specified virtual domain
  • vpopmail_alias_add — Insert a virtual alias
  • vpopmail_alias_del_domain — Deletes all virtual aliases of a domain
  • vpopmail_alias_del — Deletes all virtual aliases of a user
  • vpopmail_alias_get_all — Get all lines of an alias for a domain
  • vpopmail_alias_get — Get all lines of an alias for a domain
  • vpopmail_auth_user — Attempt to validate a username/domain/password
  • vpopmail_del_domain_ex — Delete a virtual domain
  • vpopmail_del_domain — Delete a virtual domain
  • vpopmail_del_user — Delete a user from a virtual domain
  • vpopmail_error — Get text message for last vpopmail error
  • vpopmail_passwd — Change a virtual user's password
  • vpopmail_set_user_quota — Sets a virtual user's quota


Add alias to an existing virtual domain

  • « Функции vpopmail
  • vpopmail_add_alias_domain »
  • PHP Manual
  • Функции vpopmail
  • Add alias to an existing virtual domain

vpopmail_add_alias_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_alias_domain_ex — Add alias to an existing virtual domain

Описание

bool vpopmail_add_alias_domain_ex ( string $olddomain , string $newdomain )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Add an alias for a virtual domain

  • « vpopmail_add_alias_domain_ex
  • vpopmail_add_domain_ex »
  • PHP Manual
  • Функции vpopmail
  • Add an alias for a virtual domain

vpopmail_add_alias_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_alias_domain — Add an alias for a virtual domain

Описание

bool vpopmail_add_alias_domain ( string $domain , string $aliasdomain )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Add a new virtual domain

  • « vpopmail_add_alias_domain
  • vpopmail_add_domain »
  • PHP Manual
  • Функции vpopmail
  • Add a new virtual domain

vpopmail_add_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_domain_ex — Add a new virtual domain

Описание

bool vpopmail_add_domain_ex ( string $domain , string $passwd [, string $quota [, string $bounce [, bool $apop ]]] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Add a new virtual domain

  • « vpopmail_add_domain_ex
  • vpopmail_add_user »
  • PHP Manual
  • Функции vpopmail
  • Add a new virtual domain

vpopmail_add_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_domain — Add a new virtual domain

Описание

bool vpopmail_add_domain ( string $domain , string $dir , int $uid , int $gid )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Add a new user to the specified virtual domain

  • « vpopmail_add_domain
  • vpopmail_alias_add »
  • PHP Manual
  • Функции vpopmail
  • Add a new user to the specified virtual domain

vpopmail_add_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_add_user — Add a new user to the specified virtual domain

Описание

bool vpopmail_add_user ( string $user , string $domain , string $password [, string $gecos [, bool $apop ]] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Insert a virtual alias

  • « vpopmail_add_user
  • vpopmail_alias_del_domain »
  • PHP Manual
  • Функции vpopmail
  • Insert a virtual alias

vpopmail_alias_add

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_add — Insert a virtual alias

Описание

bool vpopmail_alias_add ( string $user , string $domain , string $alias )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Deletes all virtual aliases of a domain

  • « vpopmail_alias_add
  • vpopmail_alias_del »
  • PHP Manual
  • Функции vpopmail
  • Deletes all virtual aliases of a domain

vpopmail_alias_del_domain

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_del_domain — Deletes all virtual aliases of a domain

Описание

bool vpopmail_alias_del_domain ( string $domain )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Deletes all virtual aliases of a user

  • « vpopmail_alias_del_domain
  • vpopmail_alias_get_all »
  • PHP Manual
  • Функции vpopmail
  • Deletes all virtual aliases of a user

vpopmail_alias_del

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_del — Deletes all virtual aliases of a user

Описание

bool vpopmail_alias_del ( string $user , string $domain )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Get all lines of an alias for a domain

  • « vpopmail_alias_del
  • vpopmail_alias_get »
  • PHP Manual
  • Функции vpopmail
  • Get all lines of an alias for a domain

vpopmail_alias_get_all

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_get_all — Get all lines of an alias for a domain

Описание

array vpopmail_alias_get_all ( string $domain )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Get all lines of an alias for a domain

  • « vpopmail_alias_get_all
  • vpopmail_auth_user »
  • PHP Manual
  • Функции vpopmail
  • Get all lines of an alias for a domain

vpopmail_alias_get

(PHP 4 >= 4.0.7, PECL vpopmail >= 0.2)

vpopmail_alias_get — Get all lines of an alias for a domain

Описание

array vpopmail_alias_get ( string $alias , string $domain )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Attempt to validate a username/domain/password

  • « vpopmail_alias_get
  • vpopmail_del_domain_ex »
  • PHP Manual
  • Функции vpopmail
  • Attempt to validate a username/domain/password

vpopmail_auth_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_auth_user — Attempt to validate a username/domain/password

Описание

bool vpopmail_auth_user ( string $user , string $domain , string $password [, string $apop ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Delete a virtual domain

  • « vpopmail_auth_user
  • vpopmail_del_domain »
  • PHP Manual
  • Функции vpopmail
  • Delete a virtual domain

vpopmail_del_domain_ex

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_domain_ex — Delete a virtual domain

Описание

bool vpopmail_del_domain_ex ( string $domain )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Delete a virtual domain

  • « vpopmail_del_domain_ex
  • vpopmail_del_user »
  • PHP Manual
  • Функции vpopmail
  • Delete a virtual domain

vpopmail_del_domain

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_domain — Delete a virtual domain

Описание

bool vpopmail_del_domain ( string $domain )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Delete a user from a virtual domain

  • « vpopmail_del_domain
  • vpopmail_error »
  • PHP Manual
  • Функции vpopmail
  • Delete a user from a virtual domain

vpopmail_del_user

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_del_user — Delete a user from a virtual domain

Описание

bool vpopmail_del_user ( string $user , string $domain )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Get text message for last vpopmail error

  • « vpopmail_del_user
  • vpopmail_passwd »
  • PHP Manual
  • Функции vpopmail
  • Get text message for last vpopmail error

vpopmail_error

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_error — Get text message for last vpopmail error

Описание

string vpopmail_error ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Change a virtual user's password

  • « vpopmail_error
  • vpopmail_set_user_quota »
  • PHP Manual
  • Функции vpopmail
  • Change a virtual user's password

vpopmail_passwd

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_passwd — Change a virtual user's password

Описание

bool vpopmail_passwd ( string $user , string $domain , string $password [, bool $apop ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Sets a virtual user's quota

  • « vpopmail_passwd
  • Математические расширения »
  • PHP Manual
  • Функции vpopmail
  • Sets a virtual user's quota

vpopmail_set_user_quota

(PHP 4 >= 4.0.5, PECL vpopmail >= 0.2)

vpopmail_set_user_quota — Sets a virtual user's quota

Описание

bool vpopmail_set_user_quota ( string $user , string $domain , string $quota )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Математические расширения

  • BC Math — Вычисления с произвольной точностью BCMath
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • BC Math Функции
  • GMP — Вычисления с увеличенной точностью (GNU Multiple Precision)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • GMP Функции
    • GMP — Класс GMP
  • Lapack
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Lapack — The Lapack class
    • LapackException — The LapackException class
  • Math — Математические функции
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Математические функции
  • Статистика
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Статистические Функции
  • Trader — Technical Analysis for Traders
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Trader Функции


Вычисления с произвольной точностью BCMath

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • BC Math Функции
    • bcadd — Сложить 2 числа произвольной точности
    • bccomp — Сравнение двух чисел произвольной точности
    • bcdiv — Операция деления для чисел произвольной точности
    • bcmod — Получает остаток от деления чисел с произвольной точностью
    • bcmul — Умножение двух чисел с произвольной точностью
    • bcpow — Возведение в степень чисел с произвольной точностью
    • bcpowmod — Возводит одно число в степень другого и возвращает остаток от деления результата на третье число
    • bcscale — Задает количество чисел после десятичной точки по умолчанию для всех bc math функций.
    • bcsqrt — Извлекает квадратный корень из числа с заданной точностью
    • bcsub — Вычитает одно число из другого с заданной точностью


Введение

Для вычислений с произвольной точностью PHP предоставляет Двоичный калькулятор, который поддерживает числа любого размера и точности, вплоть до 2147483647-1 (или 0x7FFFFFFF-1) десятичных знаков, представленные в виде строк.


Требования

Начиная с PHP 4.0.4, libbcmath встроена в PHP. Расширение не требует внешних библиотек.


Установка

Функции доступны, только если PHP сконфигурирован с включенной настройкой --enable-bcmath .

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки конфигурации BC-вычислений
Имя | По умолчанию | Меняемо | Список изменений
bcmath.scale | "0" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

bcmath.scale integer

Число десятичных цифр для всех bcmath-функций. См. также bcscale().


  • « Типы ресурсов
  • BC Math Функции »
  • PHP Manual
  • BC Math
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


BC Math Функции

Содержание

  • bcadd — Сложить 2 числа произвольной точности
  • bccomp — Сравнение двух чисел произвольной точности
  • bcdiv — Операция деления для чисел произвольной точности
  • bcmod — Получает остаток от деления чисел с произвольной точностью
  • bcmul — Умножение двух чисел с произвольной точностью
  • bcpow — Возведение в степень чисел с произвольной точностью
  • bcpowmod — Возводит одно число в степень другого и возвращает остаток от деления результата на третье число
  • bcscale — Задает количество чисел после десятичной точки по умолчанию для всех bc math функций.
  • bcsqrt — Извлекает квадратный корень из числа с заданной точностью
  • bcsub — Вычитает одно число из другого с заданной точностью


Сложить 2 числа произвольной точности

  • « BC Math Функции
  • bccomp »
  • PHP Manual
  • BC Math Функции
  • Сложить 2 числа произвольной точности

bcadd

(PHP 4, PHP 5, PHP 7)

bcadd — Сложить 2 числа произвольной точности

Описание

string bcadd ( string $left_operand , string $right_operand [, int $scale = 0 ] )

Складывает left_operand с right_operand.

Список параметров

left_operand

Левый операнд (слагаемое) в виде строки.

right_operand

Правый операнд (слагаемое) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Сумма слагаемых в виде строки.

Примеры

Пример #1 Пример использования bcadd()

<?php

$a = '1.234';
$b = '5';

echo bcadd($a, $b);     // 6
echo bcadd($a, $b, 4);  // 6.2340

?>

Смотрите также

  • bcsub() - Вычитает одно число из другого с заданной точностью


Сравнение двух чисел произвольной точности

  • « bcadd
  • bcdiv »
  • PHP Manual
  • BC Math Функции
  • Сравнение двух чисел произвольной точности

bccomp

(PHP 4, PHP 5, PHP 7)

bccomp — Сравнение двух чисел произвольной точности

Описание

int bccomp ( string $left_operand , string $right_operand [, int $scale = 0 ] )

Сравнивает left_operand с right_operand и возвращает целочисленный результат.

Список параметров

left_operand

Левый операнд в виде строки.

right_operand

Правый операнд в виде строки.

scale

Необязательный аргумент scale задает количество цифр после десятичной точки, которое будет участвовать в сравнении.

Возвращаемые значения

Возвращает 0, если числа равны; 1, если left_operand больше, чем right_operand; -1, если меньше.

Примеры

Пример #1 Пример использования bccomp()

<?php

echo bccomp('1', '2') . "\n";   // -1
echo bccomp('1.00001', '1', 3); // 0
echo bccomp('1.00001', '1', 5); // 1

?>


Операция деления для чисел произвольной точности

  • « bccomp
  • bcmod »
  • PHP Manual
  • BC Math Функции
  • Операция деления для чисел произвольной точности

bcdiv

(PHP 4, PHP 5, PHP 7)

bcdiv — Операция деления для чисел произвольной точности

Описание

string bcdiv ( string $left_operand , string $right_operand [, int $scale = 0 ] )

Делит left_operand на right_operand.

Список параметров

left_operand

Левый операнд в виде строки.

right_operand

Правый операнд в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает результат деления в виде строки или NULL, если right_operand равен 0.

Примеры

Пример #1 Пример использования bcdiv()

<?php

echo bcdiv('105', '6.55957', 3);  // 16.007

?>

Смотрите также

  • bcmul() - Умножение двух чисел с произвольной точностью


Получает остаток от деления чисел с произвольной точностью

  • « bcdiv
  • bcmul »
  • PHP Manual
  • BC Math Функции
  • Получает остаток от деления чисел с произвольной точностью

bcmod

(PHP 4, PHP 5, PHP 7)

bcmod — Получает остаток от деления чисел с произвольной точностью

Описание

string bcmod ( string $left_operand , string $modulus )

Получает остаток от деления left_operand на modulus.

Список параметров

left_operand

Левый операнд в виде строки.

modulus

Правый операнд (модуль) в виде строки.

Возвращаемые значения

Возвращает остаток от деления в виде строки или NULL, если modulus равен 0.

Примеры

Пример #1 Пример использования bcmod()

<?php
echo bcmod('4', '2'); // 0
echo bcmod('2', '4'); // 2
?>

Смотрите также

  • bcdiv() - Операция деления для чисел произвольной точности


Умножение двух чисел с произвольной точностью

  • « bcmod
  • bcpow »
  • PHP Manual
  • BC Math Функции
  • Умножение двух чисел с произвольной точностью

bcmul

(PHP 4, PHP 5, PHP 7)

bcmul — Умножение двух чисел с произвольной точностью

Описание

string bcmul ( string $left_operand , string $right_operand [, int $scale = 0 ] )

Умножает left_operand на right_operand.

Список параметров

left_operand

Левый операнд (первый множитель) в виде строки.

right_operand

Правый операнд (второй множитель) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает результат в виде строки.

Примеры

Пример #1 Пример использования bcmul()

<?php
echo bcmul('1.34747474747', '35', 3); // 47.161
echo bcmul('2', '4'); // 8
?>

Смотрите также

  • bcdiv() - Операция деления для чисел произвольной точности


Возведение в степень чисел с произвольной точностью

  • « bcmul
  • bcpowmod »
  • PHP Manual
  • BC Math Функции
  • Возведение в степень чисел с произвольной точностью

bcpow

(PHP 4, PHP 5, PHP 7)

bcpow — Возведение в степень чисел с произвольной точностью

Описание

string bcpow ( string $left_operand , string $right_operand [, int $scale = 0 ] )

Возводит left_operand в степень right_operand.

Список параметров

left_operand

Левый операнд (основание) в виде строки.

right_operand

Правый операнд (степень) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает результат в виде строки.

Примеры

Пример #1 Пример использования bcpow()

<?php

echo bcpow('4.2', '3', 2); // 74.08

?>

Примечания

Замечание:

bcpow() может вернуть результат с меньшим числом цифр после десятичной точки, чем указано в аргументе scale. Так происходит, только когда результату не требуется вся точность, предоставленная в scale. Например:

Пример #2 Пример уменьшения точности в bcpow()

<?php
echo bcpow('5', '2', 2);     // выдаст "25", вместо "25.00"
?>

Смотрите также

  • bcpowmod() - Возводит одно число в степень другого и возвращает остаток от деления результата на третье число
  • bcsqrt() - Извлекает квадратный корень из числа с заданной точностью


Возводит одно число в степень другого и возвращает остаток от деления результата на третье число

  • « bcpow
  • bcscale »
  • PHP Manual
  • BC Math Функции
  • Возводит одно число в степень другого и возвращает остаток от деления результата на третье число

bcpowmod

(PHP 5, PHP 7)

bcpowmod — Возводит одно число в степень другого и возвращает остаток от деления результата на третье число

Описание

string bcpowmod ( string $left_operand , string $right_operand , string $modulus [, int $scale = 0 ] )

Используйте метод быстрого возведения числа left_operand в степень right_operand и получения остатка от деления на modulus.

Список параметров

left_operand

Левый операнд (основание степени) в виде строки.

right_operand

Правый операнд (показатель степени) в виде строки.

modulus

Модуль (на него делится результат) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает результат в виде строки или NULL, если modulus равен 0.

Примечания

Замечание:

Так как этот метод использует операцию деления по модулю, отрицательные числа могут давать неожидаемый результат.

Примеры

Следующие выражения дают одинаковый результат. Однако функция bcpowmod() работает быстрее и может принимать большие значения аргументов.

<?php
$a = bcpowmod($x, $y, $mod);

$b = bcmod(bcpow($x, $y), $mod);

// $a == $b.

?>

Смотрите также

  • bcpow() - Возведение в степень чисел с произвольной точностью
  • bcmod() - Получает остаток от деления чисел с произвольной точностью


Задает количество чисел после десятичной точки по умолчанию для всех bc math функций.

  • « bcpowmod
  • bcsqrt »
  • PHP Manual
  • BC Math Функции
  • Задает количество чисел после десятичной точки по умолчанию для всех bc math функций.

bcscale

(PHP 4, PHP 5, PHP 7)

bcscale — Задает количество чисел после десятичной точки по умолчанию для всех bc math функций.

Описание

bool bcscale ( int $scale )

Задает количество чисел после десятичной точки по умолчанию для bc math функций, которые не могут явно получить это число в виде аргумента.

Список параметров

scale

Масштаб, число знаков после запятой.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bcscale()

<?php

// масштаб по умолчанию : 3
bcscale(3);
echo bcdiv('105', '6.55957'); // 16.007

// то же самое без bcscale()
echo bcdiv('105', '6.55957', 3); // 16.007

?>


Извлекает квадратный корень из числа с заданной точностью

  • « bcscale
  • bcsub »
  • PHP Manual
  • BC Math Функции
  • Извлекает квадратный корень из числа с заданной точностью

bcsqrt

(PHP 4, PHP 5, PHP 7)

bcsqrt — Извлекает квадратный корень из числа с заданной точностью

Описание

string bcsqrt ( string $operand [, int $scale = 0 ] )

Возвращает квадратный корень из operand.

Список параметров

operand

Операнд (подкоренное выражение) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Возвращает квадратный корень в виде строки или NULL, если operand отрицателен.

Примеры

Пример #1 Пример использования bcsqrt()

<?php

echo bcsqrt('2', 3); // 1.414

?>

Смотрите также

  • bcpow() - Возведение в степень чисел с произвольной точностью


Вычитает одно число из другого с заданной точностью

  • « bcsqrt
  • GMP »
  • PHP Manual
  • BC Math Функции
  • Вычитает одно число из другого с заданной точностью

bcsub

(PHP 4, PHP 5, PHP 7)

bcsub — Вычитает одно число из другого с заданной точностью

Описание

string bcsub ( string $left_operand , string $right_operand [, int $scale = 0 ] )

Вычитает число right_operand из left_operand.

Список параметров

left_operand

Левый операнд (уменьшаемое) в виде строки.

right_operand

Правый операнд (вычитаемое) в виде строки.

scale

Этот необязательный параметр используется для установки количества знаков после десятичного разделителя в результате. Если не задано, то, по умолчанию, будет использовано значение заданное глобально с помощью bcscale(), либо 0.

Возвращаемые значения

Разность в виде строки.

Примеры

Пример #1 Пример использования bcsub()

<?php

$a = '1.234';
$b = '5';

echo bcsub($a, $b);     // -3
echo bcsub($a, $b, 4);  // -3.7660

?>

Смотрите также

  • bcadd() - Сложить 2 числа произвольной точности


Вычисления с увеличенной точностью (GNU Multiple Precision)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • GMP Функции
    • gmp_abs — Абсолютная величина
    • gmp_add — Сложение чисел
    • gmp_and — Побитовое И
    • gmp_clrbit — Сброс бита
    • gmp_cmp — Сравнение чисел
    • gmp_com — Вычисляет дополнение до единицы числа
    • gmp_div_q — Деление чисел
    • gmp_div_qr — Деление чисел и получение частного и остатка
    • gmp_div_r — Остаток от деления чисел
    • gmp_div — Псевдоним gmp_div_q
    • gmp_divexact — Деление чисел без остатка
    • gmp_export — Export to a binary string
    • gmp_fact — Факториал
    • gmp_gcd — Вычисление наибольшего общего делителя
    • gmp_gcdext — Вычисление НОД и множителей
    • gmp_hamdist — Расстояние Хэмминга
    • gmp_import — Import from a binary string
    • gmp_init — Создание GMP числа
    • gmp_intval — Преобразование числа GMP в целое число
    • gmp_invert — Инверсия остатка от деления
    • gmp_jacobi — Символ Якоби
    • gmp_legendre — Символ Лежандра
    • gmp_mod — Вычисление остатка от целочисленного деления
    • gmp_mul — Умножение чисел
    • gmp_neg — Изменение знака числа
    • gmp_nextprime — Поиск следующего простого числа
    • gmp_or — Побитовое ИЛИ
    • gmp_perfect_square — Проверка числа на точный квадрат
    • gmp_popcount — Количество единиц в двоичной записи числа
    • gmp_pow — Возводит число в степень
    • gmp_powm — Возводит число в степень и производит деление по модулю
    • gmp_prob_prime — Проверяет, является ли число "вероятно простым"
    • gmp_random_bits — Random number
    • gmp_random_range — Random number
    • gmp_random_seed — Sets the RNG seed
    • gmp_random — Случайное число
    • gmp_root — Take the integer part of nth root
    • gmp_rootrem — Take the integer part and remainder of nth root
    • gmp_scan0 — Поиск нуля в числе
    • gmp_scan1 — Поиск единицы в числе
    • gmp_setbit — Установка бита
    • gmp_sign — Знак числа
    • gmp_sqrt — Вычисление квадратного корня
    • gmp_sqrtrem — Квадратный корень с остатком
    • gmp_strval — Преобразование GMP числа в строку
    • gmp_sub — Вычитание чисел
    • gmp_testbit — Проверка, установлен ли бит в 1
    • gmp_xor — Побитовое исключающее ИЛИ
  • GMP — Класс GMP


Введение

Эти функции позволяют работать с целыми числами произвольной длины, используя GNU MP библиотеку.

Замечание:

Большинство GMP функций принимают GMP числа в виде аргументов. Они представлены в документации как объекты класса GMP; однако учтите, что PHP 5.5 и старее работали с GMP числами в как с ресурсами (resource). Большинство этих функций также допускают числовые и строковые аргументы, если есть возможность преобразовать последние в числа. Также, если существует более быстрая функция, которая может работать с переданными аргументами (актуально только для целых чисел), то будет использована именно она, прозрачно для пользователя. Смотрите также функцию gmp_init().

Замечание:

С версии PHP 5.6 и новее, вы можете использовать арифметические, побитовые и операторы сравнения с объектами GMP, возвращаемыми gmp_init() и другими GMP функциями.

Внимание

Если требуется явно задать большое целое число, задавайте его строкой, иначе PHP приведет его к типу float и в результате потеряется точность.

Замечание: На Windows платформах это расширение доступно начиная с PHP 5.1.0.


Требования

Библиотеку GMP можно загрузить тут » http://gmplib.org/#DOWNLOAD. На этом сайте также есть руководство по GMP.

Как минимум требуется GMP версии 2, при этом, некоторые функции требуют более поздней версии библиотеки GMP.


Установка

Чтобы эти функции были доступны, необходимо во время компиляции PHP включить поддержку GMP с помощью настройки --with-gmp .


Типы ресурсов

До PHP 5.6, большинство функций GMP оперировали или возвращали числовые ресурсы GMP, В PHP 5.6 и выше используются объекты GMP, а не числовые ресурсы GMP.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

GMP_ROUND_ZERO (integer)
GMP_ROUND_PLUSINF (integer)
GMP_ROUND_MINUSINF (integer)
GMP_MSW_FIRST (integer)
GMP_LSW_FIRST (integer)
GMP_LITTLE_ENDIAN (integer)
GMP_BIG_ENDIAN (integer)
GMP_NATIVE_ENDIAN (integer)
GMP_VERSION (string)
Версия библиотеки GMP


Примеры

Пример #1 Вычисление факториала с помощью GMP

<?php
function fact($x)
{
    $return = 1;
    for ($i=2; $i <= $x; $i++) {
        $return = gmp_mul($return, $i);
    }
    return $return;
}

echo gmp_strval(fact(1000)) . "\n";
?>

Этот пример довольно быстро вычислит факториал от 1000 (а это весьма большое число).


GMP Функции

Смотрите также

Другие математические функции можно найти в разделе Математические расширения

Содержание

  • gmp_abs — Абсолютная величина
  • gmp_add — Сложение чисел
  • gmp_and — Побитовое И
  • gmp_clrbit — Сброс бита
  • gmp_cmp — Сравнение чисел
  • gmp_com — Вычисляет дополнение до единицы числа
  • gmp_div_q — Деление чисел
  • gmp_div_qr — Деление чисел и получение частного и остатка
  • gmp_div_r — Остаток от деления чисел
  • gmp_div — Псевдоним gmp_div_q
  • gmp_divexact — Деление чисел без остатка
  • gmp_export — Export to a binary string
  • gmp_fact — Факториал
  • gmp_gcd — Вычисление наибольшего общего делителя
  • gmp_gcdext — Вычисление НОД и множителей
  • gmp_hamdist — Расстояние Хэмминга
  • gmp_import — Import from a binary string
  • gmp_init — Создание GMP числа
  • gmp_intval — Преобразование числа GMP в целое число
  • gmp_invert — Инверсия остатка от деления
  • gmp_jacobi — Символ Якоби
  • gmp_legendre — Символ Лежандра
  • gmp_mod — Вычисление остатка от целочисленного деления
  • gmp_mul — Умножение чисел
  • gmp_neg — Изменение знака числа
  • gmp_nextprime — Поиск следующего простого числа
  • gmp_or — Побитовое ИЛИ
  • gmp_perfect_square — Проверка числа на точный квадрат
  • gmp_popcount — Количество единиц в двоичной записи числа
  • gmp_pow — Возводит число в степень
  • gmp_powm — Возводит число в степень и производит деление по модулю
  • gmp_prob_prime — Проверяет, является ли число "вероятно простым"
  • gmp_random_bits — Random number
  • gmp_random_range — Random number
  • gmp_random_seed — Sets the RNG seed
  • gmp_random — Случайное число
  • gmp_root — Take the integer part of nth root
  • gmp_rootrem — Take the integer part and remainder of nth root
  • gmp_scan0 — Поиск нуля в числе
  • gmp_scan1 — Поиск единицы в числе
  • gmp_setbit — Установка бита
  • gmp_sign — Знак числа
  • gmp_sqrt — Вычисление квадратного корня
  • gmp_sqrtrem — Квадратный корень с остатком
  • gmp_strval — Преобразование GMP числа в строку
  • gmp_sub — Вычитание чисел
  • gmp_testbit — Проверка, установлен ли бит в 1
  • gmp_xor — Побитовое исключающее ИЛИ


Абсолютная величина

  • « GMP Функции
  • gmp_add »
  • PHP Manual
  • GMP Функции
  • Абсолютная величина

gmp_abs

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_abs — Абсолютная величина

Описание

GMP gmp_abs ( GMP $a )

Получение абсолютной величины числа.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Возвращает абсолютную величину аргумента a, в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_abs()

<?php
     $abs1 = gmp_abs("274982683358");
     $abs2 = gmp_abs("-274982683358");

     echo gmp_strval($abs1) . "\n";
     echo gmp_strval($abs2) . "\n";
     ?>

Результат выполнения данного примера:

     274982683358
     274982683358


Сложение чисел

  • « gmp_abs
  • gmp_and »
  • PHP Manual
  • GMP Функции
  • Сложение чисел

gmp_add

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_add — Сложение чисел

Описание

GMP gmp_add ( GMP $a , GMP $b )

Складывает два числа.

Список параметров

a

Первое слагаемое.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

b

Второе слагаемое.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Сумма аргументов в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_add()

<?php
$sum = gmp_add("123456789012345", "76543210987655");
echo gmp_strval($sum) . "\n";
?>

Результат выполнения данного примера:

200000000000000


Побитовое И

  • « gmp_add
  • gmp_clrbit »
  • PHP Manual
  • GMP Функции
  • Побитовое И

gmp_and

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_and — Побитовое И

Описание

GMP gmp_and ( GMP $a , GMP $b )

Вичисляет побитовое И двух GMP чисел.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

b

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Результат побитового И в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_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_cmp »
  • PHP Manual
  • GMP Функции
  • Сброс бита

gmp_clrbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_clrbit — Сброс бита

Описание

void gmp_clrbit ( GMP $a , int $index )

Сбрасывает (устанавливает в 0) бит на позиции index аргумента a. Индексация начинается с 0.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

index

Индекс очищаемого бита. Индекс 0 указывает на младший бит.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_clrbit()

<?php
    $a = gmp_init("0xff");
    gmp_clrbit($a, 0); // индексация с 0, младший значащий бит
    echo gmp_strval($a) . "\n";
    ?>

Результат выполнения данного примера:

    254

Примечания

Замечание:

В отличие от большинства GMP функций, gmp_clrbit() должна вызываться для уже существующего GMP ресурса (например, созданного с помощью gmp_init()). Функция не создает их автоматически.

Смотрите также

  • gmp_setbit() - Установка бита
  • gmp_testbit() - Проверка, установлен ли бит в 1


Сравнение чисел

  • « gmp_clrbit
  • gmp_com »
  • PHP Manual
  • GMP Функции
  • Сравнение чисел

gmp_cmp

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_cmp — Сравнение чисел

Описание

int gmp_cmp ( GMP $a , GMP $b )

Сравнивает два числа.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

b

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Возвращает положительное значение, если a > b, ноль, если a = b и отрицательное значение, если a < b.

Примеры

Пример #1 Пример использования gmp_cmp()

<?php
$cmp1 = gmp_cmp("1234", "1000"); // больше
$cmp2 = gmp_cmp("1000", "1234"); // меньше
$cmp3 = gmp_cmp("1234", "1234"); // равны

echo "$cmp1 $cmp2 $cmp3\n";
?>

Результат выполнения данного примера:

1 -1 0


Вычисляет дополнение до единицы числа

  • « gmp_cmp
  • gmp_div_q »
  • PHP Manual
  • GMP Функции
  • Вычисляет дополнение до единицы числа

gmp_com

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_com — Вычисляет дополнение до единицы числа

Описание

GMP gmp_com ( GMP $a )

Возвращает дополнение до единицы числа a.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Возвращает дополнение до единицы числа a в виде числа GMP.

Примеры

Пример #1 Пример использования gmp_com()

<?php
$com = gmp_com("1234");
echo gmp_strval($com) . "\n";
?>

Результат выполнения данного примера:

-1235


Деление чисел

  • « gmp_com
  • gmp_div_qr »
  • PHP Manual
  • GMP Функции
  • Деление чисел

gmp_div_q

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div_q — Деление чисел

Описание

GMP gmp_div_q ( GMP $a , GMP $b [, int $round = GMP_ROUND_ZERO ] )

Делит a на b и возвращает целочисленный результат.

Список параметров

a

Делимое.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

b

Делитель числа a.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

round

Округление результата определяется параметром round, который может принимать следующие значения:

  • GMP_ROUND_ZERO: Дробная часть просто отрезается.
  • GMP_ROUND_PLUSINF: Результат округляется до ближайшего целого в сторону +бесконечности.
  • GMP_ROUND_MINUSINF: Результат округляется до ближайшего целого в сторону -бесконечности.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_div_q()

<?php
     $div1 = gmp_div_q("100", "5");
     echo gmp_strval($div1) . "\n";

     $div2 = gmp_div_q("1", "3");
     echo gmp_strval($div2) . "\n";

     $div3 = gmp_div_q("1", "3", GMP_ROUND_PLUSINF);
     echo gmp_strval($div3) . "\n";

     $div4 = gmp_div_q("-1", "4", GMP_ROUND_PLUSINF);
     echo gmp_strval($div4) . "\n";

     $div5 = gmp_div_q("-1", "4", GMP_ROUND_MINUSINF);
     echo gmp_strval($div5) . "\n";
     ?>

Результат выполнения данного примера:

     20
     0
     1
     0
     -1

Примечания

Замечание:

Эта функция имеет псевдоним gmp_div().

Смотрите также

  • gmp_div_r() - Остаток от деления чисел
  • gmp_div_qr() - Деление чисел и получение частного и остатка


Деление чисел и получение частного и остатка

  • « gmp_div_q
  • gmp_div_r »
  • PHP Manual
  • GMP Функции
  • Деление чисел и получение частного и остатка

gmp_div_qr

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div_qr — Деление чисел и получение частного и остатка

Описание

array gmp_div_qr ( GMP $n , GMP $d [, int $round = GMP_ROUND_ZERO ] )

Функция делит n на d.

Список параметров

n

Делимое.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

d

Делитель числа n.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

round

В документации к функции gmp_div_q() приведено описание аргумента round.

Возвращаемые значения

Возвращает массив (array), в котором первый элемент содержит [n/d] (целое частное), а второй (n - [n/d] * d) (остаток от деления).

Примеры

Пример #1 Деление GMP чисел

<?php
     $a = gmp_init("0x41682179fbf5");
     $res = gmp_div_qr($a, "0xDEFE75");
     printf("Результат: q - %s, r - %s",
     gmp_strval($res[0]), gmp_strval($res[1]));
     ?>

Смотрите также

  • gmp_div_q() - Деление чисел
  • gmp_div_r() - Остаток от деления чисел


Остаток от деления чисел

  • « gmp_div_qr
  • gmp_div »
  • PHP Manual
  • GMP Функции
  • Остаток от деления чисел

gmp_div_r

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div_r — Остаток от деления чисел

Описание

GMP gmp_div_r ( GMP $n , GMP $d [, int $round = GMP_ROUND_ZERO ] )

Вычисляет остаток от деления нацело числа n на d. Если число n отлично от нуля, результат будет иметь знак этого числа.

Список параметров

n

Делимое.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

d

Делитель числа n.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

round

В документации к функции gmp_div_q() приведено описание аргумента round.

Возвращаемые значения

Остаток в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_div_r()

<?php
     $div = gmp_div_r("105", "20");
     echo gmp_strval($div) . "\n";
     ?>

Результат выполнения данного примера:

     5

Смотрите также

  • gmp_div_q() - Деление чисел
  • gmp_div_qr() - Деление чисел и получение частного и остатка


Псевдоним gmp_div_q

  • « gmp_div_r
  • gmp_divexact »
  • PHP Manual
  • GMP Функции
  • Псевдоним gmp_div_q

gmp_div

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_div — Псевдоним gmp_div_q()

Описание

Эта функция является псевдонимом: gmp_div_q().


Деление чисел без остатка

  • « gmp_div
  • gmp_export »
  • PHP Manual
  • GMP Функции
  • Деление чисел без остатка

gmp_divexact

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_divexact — Деление чисел без остатка

Описание

GMP gmp_divexact ( GMP $n , GMP $d )

Делит число n на d, используя быстрый алгоритм деления без остатка. Функция выдает корректный результат, только если заведомо известно, что число d делит n нацело.

Список параметров

n

Делимое.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

d

Делитель числа a.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_divexact()

<?php
$div1 = gmp_divexact("10", "2");
echo gmp_strval($div1) . "\n";

$div2 = gmp_divexact("10", "3"); // некорректный результат
echo gmp_strval($div2) . "\n";
?>

Результат выполнения данного примера:

5
2863311534


Export to a binary string

  • « gmp_divexact
  • gmp_fact »
  • PHP Manual
  • GMP Функции
  • Export to a binary string

gmp_export

(PHP 5 >= 5.6.1, PHP 7)

gmp_export — Export to a binary string

Описание

string gmp_export ( GMP $gmpnumber , integer $word_size , integer $options )

Export a GMP number to a binary string

Список параметров

gmpnumber

The GMP number being exported

word_size

Default value is 1. The number of bytes in each chunk of binary data. This is mainly used in conjunction with the options parameter.

options

Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Возвращаемые значения

Returns a string или FALSE в случае возникновения ошибки.

Примеры

Пример #1 gmp_export() example

<?php
$number = gmp_init(16705);
echo gmp_export($number) . "\n";
?>

Результат выполнения данного примера:

AA


Факториал

  • « gmp_export
  • gmp_gcd »
  • PHP Manual
  • GMP Функции
  • Факториал

gmp_fact

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_fact — Факториал

Описание

GMP gmp_fact ( mixed $a )

Вычисляет факториал (a!) числа a.

Список параметров

a

Число, факториал которого вычисляется.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_fact()

<?php
$fact1 = gmp_fact(5); // 5 * 4 * 3 * 2 * 1
echo gmp_strval($fact1) . "\n";

$fact2 = gmp_fact(50); // 50 * 49 * 48, ... и т.д.
echo gmp_strval($fact2) . "\n";
?>

Результат выполнения данного примера:

120
30414093201713378043612608166064768844377641568960512000000000000


Вычисление наибольшего общего делителя

  • « gmp_fact
  • gmp_gcdext »
  • PHP Manual
  • GMP Функции
  • Вычисление наибольшего общего делителя

gmp_gcd

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_gcd — Вычисление наибольшего общего делителя

Описание

GMP gmp_gcd ( GMP $a , GMP $b )

Вычисляет наибольший общий делитель чисел a и b. Результат всегда положителен, даже если одно из чисел, или оба, отрицательные.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

b

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Положительный НОД чисел a и b.

Примеры

Пример #1 Пример использования gmp_gcd()

<?php
$gcd = gmp_gcd("12", "21");
echo gmp_strval($gcd) . "\n";
?>

Результат выполнения данного примера:

3


Вычисление НОД и множителей

  • « gmp_gcd
  • gmp_hamdist »
  • PHP Manual
  • GMP Функции
  • Вычисление НОД и множителей

gmp_gcdext

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_gcdext — Вычисление НОД и множителей

Описание

array gmp_gcdext ( GMP $a , GMP $b )

Вычисляет величины g, s и t, в выражении a*s + b*t = g = gcd(a,b), где gcd - наибольший общий делитель. Возвращает массив, значения которого соответствуют значениям величин g, s и t.

Эта функция может использоваться для решения Диофантовых уравнении с двумя переменными. Это такие уравнения, которые имеют только целочисленные решения и имеют вид: a*x + b*y = c. За дополнительной информацией обращайтесь на » страницу "Диофантово уравнение" в MathWorld

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

b

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Массив array GMP чисел.

Примеры

Пример #1 Решение линейного Диофантового уравнения

<?php
// Решение уравнения a*s + b*t = g
// где a = 12, b = 21, g = gcd(12, 21) = 3
$a = gmp_init(12);
$b = gmp_init(21);
$g = gmp_gcd($a, $b);
$r = gmp_gcdext($a, $b);

$check_gcd = (gmp_strval($g) == gmp_strval($r['g']));
$eq_res = gmp_add(gmp_mul($a, $r['s']), gmp_mul($b, $r['t']));
$check_res = (gmp_strval($g) == gmp_strval($eq_res));

if ($check_gcd && $check_res) {
    $fmt = "Solution: %d*%d + %d*%d = %d\n";
    printf($fmt, gmp_strval($a), gmp_strval($r['s']), gmp_strval($b),
    gmp_strval($r['t']), gmp_strval($r['g']));
} else {
    echo "Ошибка во время решения уравнения\n";
}

// вывод: Решение: 12*2 + 21*-1 = 3
?>


Расстояние Хэмминга

  • « gmp_gcdext
  • gmp_import »
  • PHP Manual
  • GMP Функции
  • Расстояние Хэмминга

gmp_hamdist

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_hamdist — Расстояние Хэмминга

Описание

int gmp_hamdist ( GMP $a , GMP $b )

Возвращает расстояние Хэмминга для чисел a и b. Оба операнда должны быть неотрицательными.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Должно быть неотрицательным.

b

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Должно быть неотрицательным.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_hamdist()

<?php
$ham1 = gmp_init("1001010011", 2);
$ham2 = gmp_init("1011111100", 2);
echo gmp_hamdist($ham1, $ham2) . "\n";

/* расстояние Хэмминга эквивалентно: */
echo gmp_popcount(gmp_xor($ham1, $ham2)) . "\n";
?>

Результат выполнения данного примера:

6
6

Смотрите также

  • gmp_popcount() - Количество единиц в двоичной записи числа
  • gmp_xor() - Побитовое исключающее ИЛИ


Import from a binary string

  • « gmp_hamdist
  • gmp_init »
  • PHP Manual
  • GMP Функции
  • Import from a binary string

gmp_import

(PHP 5 >= 5.6.1, PHP 7)

gmp_import — Import from a binary string

Описание

GMP gmp_import ( string $data , integer $word_size , integer $options )

Import a GMP number from a binary string

Список параметров

data

The binary string being imported

word_size

Default value is 1. The number of bytes in each chunk of binary data. This is mainly used in conjunction with the options parameter.

options

Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN.

Возвращаемые значения

Returns a GMP number или FALSE в случае возникновения ошибки.

Примеры

Пример #1 gmp_import() example

<?php
$number = gmp_import("\0");
echo gmp_strval($number) . "\n";

$number = gmp_import("\0\1\2");
echo gmp_strval($number) . "\n";
?>

Результат выполнения данного примера:

0
258


Создание GMP числа

  • « gmp_import
  • gmp_intval »
  • PHP Manual
  • GMP Функции
  • Создание GMP числа

gmp_init

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_init — Создание GMP числа

Описание

GMP gmp_init ( mixed $number [, int $base = 0 ] )

Создает GMP число из целого числа или строки.

Список параметров

number

Целое число или строка. Число, заданное строкой может быть десятичным, шестнадцатеричным или восьмеричным.

base

Основание системы счисления.

Основание может варьироваться от 2 до 36. Если основание 0 (по умолчанию), основание будет определено, исходя из первых символов: если первые два символа 0x или 0X, число будет интерпретировано как шестнадцатеричное, если первый символ "0", то как восьмеричное, в остальных случаях числа будут восприниматься как десятичные.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Список изменений

Версия | Описание
5.3.2 | Диапазон возможных оснований системы счисления base расширен с значений от 2 до 36, до значений от 2 до 62 и от -2 до -36.

Примечания

Замечание:

Чтобы использовать расширенные диапазоны системы счисления в PHP 5.3.2, PHP должен быть скомпилирован с библиотекой GMP версии 4.2.0 или выше.

Примеры

Пример #1 Создание GMP числа

<?php
$a = gmp_init(123456);
$b = gmp_init("0xFFFFDEBACDFEDF7200");
?>

Примечания

Замечание:

Нет необходимости явно вызывать эту функцию, если требуется вставить целое число или строку на место GMP числа в GMP функциях, как например gmp_add(). Аргументы функций автоматически преобразуются в GMP числа, если такое преобразование требуется и оно возможно, по тем же правилам, что и в gmp_init().


Преобразование числа GMP в целое число

  • « gmp_init
  • gmp_invert »
  • PHP Manual
  • GMP Функции
  • Преобразование числа GMP в целое число

gmp_intval

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_intval — Преобразование числа GMP в целое число

Описание

int gmp_intval ( GMP $gmpnumber )

Эта функция преобразует число GMP в обычное целое число PHP (integer).

Список параметров

gmpnumber

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Целое число типа integer преобразованное из gmpnumber.

Примеры

Пример #1 Пример использования gmp_intval()

<?php
// выводит корректный результат
echo gmp_intval("2147483647") . "\n";

// выводит неверный результат, выше границы диапазона PHP integer
echo gmp_intval("2147483648") . "\n";

// выводит корректный результат
echo gmp_strval("2147483648") . "\n";
?>

Результат выполнения данного примера:

2147483647
2147483647
2147483648

Примечания

Внимание

Эта функция возвращает пригодный для дальнейшего применения результат, только если число вписывается в диапазон возможных чисел типа PHP integer (то есть, длинное целое со знаком). Если необходимо просто вывести GMP на экран, используйте gmp_strval().


Инверсия остатка от деления

  • « gmp_intval
  • gmp_jacobi »
  • PHP Manual
  • GMP Функции
  • Инверсия остатка от деления

gmp_invert

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_invert — Инверсия остатка от деления

Описание

GMP gmp_invert ( GMP $a , GMP $b )

Вычисляет инверсию остатка от деления числа b на число a.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

b

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

GMP число при успешном завершении либо FALSE если инверсия не существует.

Примеры

Пример #1 Пример использования gmp_invert()

<?php
echo gmp_invert("5", "10"); // нет инверсии, не выводит ничего, результат FALSE
$invert = gmp_invert("5", "11");
echo gmp_strval($invert) . "\n";
?>

Результат выполнения данного примера:

9


Символ Якоби

  • « gmp_invert
  • gmp_legendre »
  • PHP Manual
  • GMP Функции
  • Символ Якоби

gmp_jacobi

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_jacobi — Символ Якоби

Описание

int gmp_jacobi ( GMP $a , GMP $p )

Вычисляет » Символ Якоби для чисел a и p. p должно быть положительным и нечетным.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

p

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Должно быть положительным и нечетным.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_jacobi()

<?php
echo gmp_jacobi("1", "3") . "\n";
echo gmp_jacobi("2", "3") . "\n";
?>

Результат выполнения данного примера:

1
0


Символ Лежандра

  • « gmp_jacobi
  • gmp_mod »
  • PHP Manual
  • GMP Функции
  • Символ Лежандра

gmp_legendre

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_legendre — Символ Лежандра

Описание

int gmp_legendre ( GMP $a , GMP $p )

Вычисляет » символ Лежандра чисел a и p. p должно быть нечетным и положительным.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

p

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Должно быть положительным и нечетным.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_legendre()

<?php
echo gmp_legendre("1", "3") . "\n";
echo gmp_legendre("2", "3") . "\n";
?>

Результат выполнения данного примера:

1
0


Вычисление остатка от целочисленного деления

  • « gmp_legendre
  • gmp_mul »
  • PHP Manual
  • GMP Функции
  • Вычисление остатка от целочисленного деления

gmp_mod

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_mod — Вычисление остатка от целочисленного деления

Описание

GMP gmp_mod ( GMP $n , GMP $d )

Вычисляет остаток от деления числа n на d. Результат всегда неотрицательный, знак числа d игнорируется.

Список параметров

n

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

d

Делитель (модуль).

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_mod()

<?php
$mod = gmp_mod("8", "3");
echo gmp_strval($mod) . "\n";
?>

Результат выполнения данного примера:

2


Умножение чисел

  • « gmp_mod
  • gmp_neg »
  • PHP Manual
  • GMP Функции
  • Умножение чисел

gmp_mul

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_mul — Умножение чисел

Описание

GMP gmp_mul ( GMP $a , GMP $b )

Умножает число a на b и возвращает результат.

Список параметров

a

Первый множитель, число умножаемое на b.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

b

Второй множитель, число умножаемое на a.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_mul()

<?php
$mul = gmp_mul("12345678", "2000");
echo gmp_strval($mul) . "\n";
?>

Результат выполнения данного примера:

24691356000


Изменение знака числа

  • « gmp_mul
  • gmp_nextprime »
  • PHP Manual
  • GMP Функции
  • Изменение знака числа

gmp_neg

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_neg — Изменение знака числа

Описание

GMP gmp_neg ( GMP $a )

Возвращает противоположное относительно нуля число.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Возвращает -a в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_neg()

<?php
$neg1 = gmp_neg("1");
echo gmp_strval($neg1) . "\n";
$neg2 = gmp_neg("-1");
echo gmp_strval($neg2) . "\n";
?>

Результат выполнения данного примера:

-1
1


Поиск следующего простого числа

  • « gmp_neg
  • gmp_or »
  • PHP Manual
  • GMP Функции
  • Поиск следующего простого числа

gmp_nextprime

(PHP 5 >= 5.2.0, PHP 7)

gmp_nextprime — Поиск следующего простого числа

Описание

GMP gmp_nextprime ( int $a )

Ищет следующее простое число

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Возвращает следующее простое число, большее, чем a в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_nextprime()

<?php
$prime1 = gmp_nextprime(10); // ближайшее простое число, большее 10
$prime2 = gmp_nextprime(-1000); // ближайшее простое число, большее -1000

echo gmp_strval($prime1) . "\n";
echo gmp_strval($prime2) . "\n";
?>

Результат выполнения данного примера:

11
-997

Примечания

Замечание:

This function uses a probabilistic algorithm to identify primes and chances to get a composite number are extremely small.


Побитовое ИЛИ

  • « gmp_nextprime
  • gmp_perfect_square »
  • PHP Manual
  • GMP Функции
  • Побитовое ИЛИ

gmp_or

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_or — Побитовое ИЛИ

Описание

GMP gmp_or ( GMP $a , GMP $b )

Вычисляет побитовое ИЛИ двух GMP чисел.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

b

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_or()

<?php
$or1 = gmp_or("0xfffffff2", "4");
echo gmp_strval($or1, 16) . "\n";
$or2 = gmp_or("0xfffffff2", "2");
echo gmp_strval($or2, 16) . "\n";
?>

Результат выполнения данного примера:

fffffff6
fffffff2


Проверка числа на точный квадрат

  • « gmp_or
  • gmp_popcount »
  • PHP Manual
  • GMP Функции
  • Проверка числа на точный квадрат

gmp_perfect_square

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_perfect_square — Проверка числа на точный квадрат

Описание

bool gmp_perfect_square ( GMP $a )

Проверяет, является ли число точным квадратом, т.е. квадратом целого числа.

Список параметров

a

Проверяемое на точный квадрат число.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Возвращает TRUE, если a является квадратом целого числа, FALSE в противном случае.

Примеры

Пример #1 Пример использования gmp_perfect_square()

<?php
// 3 * 3, точный квадрат
var_dump(gmp_perfect_square("9"));

// не является точным квадратом
var_dump(gmp_perfect_square("7"));

// 1234567890 * 1234567890, точный квадрат
var_dump(gmp_perfect_square("1524157875019052100"));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)

Смотрите также

  • gmp_sqrt() - Вычисление квадратного корня
  • gmp_sqrtrem() - Квадратный корень с остатком


Количество единиц в двоичной записи числа

  • « gmp_perfect_square
  • gmp_pow »
  • PHP Manual
  • GMP Функции
  • Количество единиц в двоичной записи числа

gmp_popcount

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_popcount — Количество единиц в двоичной записи числа

Описание

int gmp_popcount ( GMP $a )

Возвращает количество единиц в двоичной записи числа.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Количество единиц в двоичной записи числа a, в виде числа типа integer.

Примеры

Пример #1 Пример использования gmp_popcount()

<?php
$pop1 = gmp_init("10000101", 2); // 3 1's
echo gmp_popcount($pop1) . "\n";
$pop2 = gmp_init("11111110", 2); // 7 1's
echo gmp_popcount($pop2) . "\n";
?>

Результат выполнения данного примера:

3
7


Возводит число в степень

  • « gmp_popcount
  • gmp_powm »
  • PHP Manual
  • GMP Функции
  • Возводит число в степень

gmp_pow

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_pow — Возводит число в степень

Описание

GMP gmp_pow ( GMP $base , int $exp )

Возводит число base в степень exp.

Список параметров

base

Основание степени.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

exp

Положительный показатель степени числа base.

Возвращаемые значения

Новое (результирующее) GMP число. Результатом примера 0^0 будет 1.

Примеры

Пример #1 Пример использования gmp_pow()

<?php
$pow1 = gmp_pow("2", 31);
echo gmp_strval($pow1) . "\n";
$pow2 = gmp_pow("0", 0);
echo gmp_strval($pow2) . "\n";
$pow3 = gmp_pow("2", -1); // Отрицательный показатель степени вызовет предупреждение
echo gmp_strval($pow3) . "\n";
?>

Результат выполнения данного примера:

2147483648
1


Возводит число в степень и производит деление по модулю

  • « gmp_pow
  • gmp_prob_prime »
  • PHP Manual
  • GMP Функции
  • Возводит число в степень и производит деление по модулю

gmp_powm

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_powm — Возводит число в степень и производит деление по модулю

Описание

GMP gmp_powm ( GMP $base , GMP $exp , GMP $mod )

Вычисляет (base возводится в степень exp) остаток от целочисленного деления на mod. Если exp отрицателен, результат не определен.

Список параметров

base

Основание степени.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

exp

Положительный показатель степени, в которую возводится base.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

mod

Делитель, остаток от целочисленного деления на который будет возвращен.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Новое GMP число (результат операции).

Примеры

Пример #1 Пример использования gmp_powm()

<?php
$pow1 = gmp_powm("2", "31", "2147483649");
echo gmp_strval($pow1) . "\n";
?>

Результат выполнения данного примера:

2147483648


Проверяет, является ли число "вероятно простым"

  • « gmp_powm
  • gmp_random_bits »
  • PHP Manual
  • GMP Функции
  • Проверяет, является ли число "вероятно простым"

gmp_prob_prime

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_prob_prime — Проверяет, является ли число "вероятно простым"

Описание

int gmp_prob_prime ( GMP $a [, int $reps = 10 ] )

Функция использует тест Миллера-Рабина для определения, является ли число простым.

Список параметров

a

Число, для которого проводится проверка.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

reps

Допустимые значения аргумента reps лежат в диапазоне от 5 до 10 (по умолчанию 10); чем больше это число, тем меньше вероятность, что непростые числа пройдут этот тест и определятся, как "возможно простые".

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Если функция возвращает 0, a точно не является простым. Если возвращает 1, то a "возможно" простое. Если возвращает 2, то a точно простое.

Примеры

Пример #1 Пример использования gmp_prob_prime()

<?php
// по определению не является простым
echo gmp_prob_prime("6") . "\n";

// возможно простое
echo gmp_prob_prime("1111111111111111111") . "\n";

// по определению простое
echo gmp_prob_prime("11") . "\n";
?>

Результат выполнения данного примера:

0
1
2


Random number

  • « gmp_prob_prime
  • gmp_random_range »
  • PHP Manual
  • GMP Функции
  • Random number

gmp_random_bits

(PHP 5 >= 5.6.3, PHP 7)

gmp_random_bits — Random number

Описание

GMP gmp_random_bits ( integer $bits )

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.

Список параметров

bits

The number of bits.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

A random GMP number.

Примеры

Пример #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


Random number

  • « gmp_random_bits
  • gmp_random_seed »
  • PHP Manual
  • GMP Функции
  • Random number

gmp_random_range

(PHP 5 >= 5.6.3, PHP 7)

gmp_random_range — Random number

Описание

GMP gmp_random_range ( GMP $min , GMP $max )

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.

Список параметров

min

A GMP number representing the lower bound for the random number

max

A GMP number representing the upper bound for the random number

Возвращаемые значения

A random GMP number.

Примеры

Пример #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


Sets the RNG seed

  • « gmp_random_range
  • gmp_random »
  • PHP Manual
  • GMP Функции
  • Sets the RNG seed

gmp_random_seed

(PHP 7)

gmp_random_seed — Sets the RNG seed

Описание

mixed gmp_random_seed ( mixed $seed )

Список параметров

seed

The seed to be set for the gmp_random(), gmp_random_bits(), and gmp_random_range() functions.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Returns NULL on success.

Ошибки

Issues an E_WARNING and returns FALSE if seed is not valid.

Примеры

Пример #1 gmp_random_seed() example

<?php
// set the seed
gmp_random_seed(100);

var_dump(gmp_strval(gmp_random(1)));

// set the seed to something else
gmp_random_seed(gmp_init(-100));

var_dump(gmp_strval(gmp_random_bits(10)));

// set the seed to something invalid
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() - Random number


Случайное число

  • « gmp_random_seed
  • gmp_root »
  • PHP Manual
  • GMP Функции
  • Случайное число

gmp_random

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_random — Случайное число

Описание

GMP gmp_random ([ int $limiter = 20 ] )

Генерирует случайное число. Число будет лежать в пределах от нуля до числа, представляющего из себя произведение числа limiter и количества бит в лимбе (limb). Если число limiter отрицательное, то будет возвращен отрицательный результат.

Лимб (дословно конечность) - внутренний GMP механизм. Технически это часть числа, помещающаяся в одно машинное слово. Количество бит в нем может различаться в разных системах. В основном это либо 16, либо 32, но это не гарантируется.

Список параметров

limiter

Ограничитель.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Случайное GMP число.

Примеры

Пример #1 Пример использования gmp_random()

<?php
$rand1 = gmp_random(1); // случайное число от 0 до 1 * бит на лимб
$rand2 = gmp_random(2); // случайное число от 0 до 2 * бит на лимб

echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>

Результат выполнения данного примера:

1915834968
8642564075890328087


Take the integer part of nth root

  • « gmp_random
  • gmp_rootrem »
  • PHP Manual
  • GMP Функции
  • Take the integer part of nth root

gmp_root

(PHP 5 >= 5.6.0, PHP 7)

gmp_root — Take the integer part of nth root

Описание

GMP gmp_root ( GMP $a , int $nth )

Takes the nth root of a and returns the integer component of the result.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

nth

The positive root to take of a.

Возвращаемые значения

The integer component of the resultant root, as a GMP number.


Take the integer part and remainder of nth root

  • « gmp_root
  • gmp_scan0 »
  • PHP Manual
  • GMP Функции
  • Take the integer part and remainder of nth root

gmp_rootrem

(PHP 5 >= 5.6.0, PHP 7)

gmp_rootrem — Take the integer part and remainder of nth root

Описание

array gmp_rootrem ( GMP $a , int $nth )

Takes the nth root of a and returns the integer component and remainder of the result.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

nth

The positive root to take of a.

Возвращаемые значения

A two element array, where the first element is the integer component of the root, and the second element is the remainder, both represented as GMP numbers.


Поиск нуля в числе

  • « gmp_rootrem
  • gmp_scan1 »
  • PHP Manual
  • GMP Функции
  • Поиск нуля в числе

gmp_scan0

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_scan0 — Поиск нуля в числе

Описание

int gmp_scan0 ( GMP $a , int $start )

Сканирует a, начиная с бита start, пока не найдет бит установленный в 0.

Список параметров

a

Число для сканирования.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

start

Бит начала сканирования.

Возвращаемые значения

Возвращает индекс найденного бита в виде числа типа integer. Индексация начинается с нуля.

Примеры

Пример #1 Пример использования gmp_scan0()

<?php
// "0" бит найдет на позиции 3. поиск начинается с 0
$s1 = gmp_init("10111", 2);
echo gmp_scan0($s1, 0) . "\n";

// "0" бит найдет на позиции 7. поиск начинается с 5
$s2 = gmp_init("101110000", 2);
echo gmp_scan0($s2, 5) . "\n";
?>

Результат выполнения данного примера:

3
7


Поиск единицы в числе

  • « gmp_scan0
  • gmp_setbit »
  • PHP Manual
  • GMP Функции
  • Поиск единицы в числе

gmp_scan1

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_scan1 — Поиск единицы в числе

Описание

int gmp_scan1 ( GMP $a , int $start )

Сканирует a, начиная с бита start, пока не найдет бит установленный в 1.

Список параметров

a

Сканируемое число.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

start

Бит начала поиска.

Возвращаемые значения

Возвращает индекс найденного бита в виде числа типа integer. Если таких нет, будет возвращено -1.

Примеры

Пример #1 Пример использования gmp_scan1()

<?php
// "1" бит найден в позиции 3. Поиск начинается с 0
$s1 = gmp_init("01000", 2);
echo gmp_scan1($s1, 0) . "\n";

// "1" бит найден в позиции 9. Поиск начинается с 5
$s2 = gmp_init("01000001111", 2);
echo gmp_scan1($s2, 5) . "\n";
?>

Результат выполнения данного примера:

3
9


Установка бита

  • « gmp_scan1
  • gmp_sign »
  • PHP Manual
  • GMP Функции
  • Установка бита

gmp_setbit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_setbit — Установка бита

Описание

void gmp_setbit ( GMP &$a , int $index [, bool $bit_on = true ] )

Устанавливает в 1 бит с индексом index в числе a.

Список параметров

a

Изменяемое значение.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

index

Индекс устанавливаемого бита. Индекс 0 указывает на младший бит.

bit_on

True для установки бита (установки в 1/включен); false для его очистки (установки в 0/выключен).

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_setbit() - 0 индекс

<?php
$a = gmp_init("2"); //
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0); // 0b10 now becomes 0b11
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

Результат выполнения данного примера:

2 -> 0b10
3 -> 0b11

Пример #2 Пример использования gmp_setbit() - 1 индекс

<?php
$a = gmp_init("0xfd");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 1); // index starts at 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

Результат выполнения данного примера:

253 -> 0b11111101
255 -> 0b11111111

Пример #3 Пример использования gmp_setbit() очистка бита

<?php
$a = gmp_init("0xff");
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
gmp_setbit($a, 0, false); // clear bit at index 0
echo gmp_strval($a), ' -> 0b', gmp_strval($a, 2), "\n";
?>

Результат выполнения данного примера:

255 -> 0b11111111
254 -> 0b11111110

Примечания

Замечание:

В отличие от большинства GMP функций, gmp_setbit() должна вызываться для уже существующего GMP ресурса (например, созданного функцией gmp_init()). Число не будет создаваться автоматически.

Смотрите также

  • gmp_clrbit() - Сброс бита
  • gmp_testbit() - Проверка, установлен ли бит в 1


Знак числа

  • « gmp_setbit
  • gmp_sqrt »
  • PHP Manual
  • GMP Функции
  • Знак числа

gmp_sign

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sign — Знак числа

Описание

int gmp_sign ( GMP $a )

Проверяет знак числа.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Возвращает 1, если a положительное; -1, если a отрицательное; и 0, если a равно нулю.

Примеры

Пример #1 Пример использования gmp_sign()

<?php
// положительное
echo gmp_sign("500") . "\n";

// отрицательное
echo gmp_sign("-500") . "\n";

// ноль
echo gmp_sign("0") . "\n";
?>

Результат выполнения данного примера:

1
-1
0

Смотрите также

  • gmp_abs() - Абсолютная величина
  • abs() - Модуль числа


Вычисление квадратного корня

  • « gmp_sign
  • gmp_sqrtrem »
  • PHP Manual
  • GMP Функции
  • Вычисление квадратного корня

gmp_sqrt

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sqrt — Вычисление квадратного корня

Описание

GMP gmp_sqrt ( GMP $a )

Вычисляет квадратный корень числа a.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Целая часть корня в виде GMP числа.

Примеры

Пример #1 Пример использования gmp_sqrt()

<?php
$sqrt1 = gmp_sqrt("9");
$sqrt2 = gmp_sqrt("7");
$sqrt3 = gmp_sqrt("1524157875019052100");

echo gmp_strval($sqrt1) . "\n";
echo gmp_strval($sqrt2) . "\n";
echo gmp_strval($sqrt3) . "\n";
?>

Результат выполнения данного примера:

3
2
1234567890


Квадратный корень с остатком

  • « gmp_sqrt
  • gmp_strval »
  • PHP Manual
  • GMP Функции
  • Квадратный корень с остатком

gmp_sqrtrem

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sqrtrem — Квадратный корень с остатком

Описание

array gmp_sqrtrem ( GMP $a )

Вычисляет квадратный корень числа, с остатком.

Список параметров

a

Число, из которого извлекается корень.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Возвращает массив, в котором первый элемент - целая часть корня из числа a, а второй - остаток (т.е. разность чисел a и квадрата первого элемента массива).

Примеры

Пример #1 Пример использования gmp_sqrtrem()

<?php
list($sqrt1, $sqrt1rem) = gmp_sqrtrem("9");
list($sqrt2, $sqrt2rem) = gmp_sqrtrem("7");
list($sqrt3, $sqrt3rem) = gmp_sqrtrem("1048576");

echo gmp_strval($sqrt1) . ", " . gmp_strval($sqrt1rem) . "\n";
echo gmp_strval($sqrt2) . ", " . gmp_strval($sqrt2rem) . "\n";
echo gmp_strval($sqrt3) . ", " . gmp_strval($sqrt3rem) . "\n";
?>

Результат выполнения данного примера:

3, 0
2, 3
1024, 0


Преобразование GMP числа в строку

  • « gmp_sqrtrem
  • gmp_sub »
  • PHP Manual
  • GMP Функции
  • Преобразование GMP числа в строку

gmp_strval

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_strval — Преобразование GMP числа в строку

Описание

string gmp_strval ( GMP $gmpnumber [, int $base = 10 ] )

Преобразует GMP число в строку в системе счисления base. По умолчанию числа преобразуются в десятеричной системе счисления.

Список параметров

gmpnumber

GMP число для конвертации.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

base

Система счисления возвращаемого числа. По умолчанию - 10. Возможные значения: от 2 до 62 и от -2 до -36.

Возвращаемые значения

Число в виде строки типа string.

Список изменений

Версия | Описание
5.3.2 | Диапазон возможных систем счисления base расширен со значений 2 - 36, до 2 - 62 и -2 - -36.

Примечания

Замечание:

Для использования расширенного диапазона систем счисления введенного в PHP 5.3.2, PHP должен быть скомпилирован с библиотекой GMP версии 4.2.0 или выше.

Примеры

Пример #1 Преобразование GMP числа в строку

<?php
$a = gmp_init("0x41682179fbf5");
printf("Десятичное: %s, 36-ричное: %s", gmp_strval($a), gmp_strval($a,36));
?>


Вычитание чисел

  • « gmp_strval
  • gmp_testbit »
  • PHP Manual
  • GMP Функции
  • Вычитание чисел

gmp_sub

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_sub — Вычитание чисел

Описание

GMP gmp_sub ( GMP $a , GMP $b )

Вычитает число b из числа a и возвращает результат.

Список параметров

a

Уменьшаемое.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

b

Вычитаемое из числа a.

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_sub()

<?php
$sub = gmp_sub("281474976710656", "4294967296"); // 2^48 - 2^32
echo gmp_strval($sub) . "\n";
?>

Результат выполнения данного примера:

281470681743360


Проверка, установлен ли бит в 1

  • « gmp_sub
  • gmp_xor »
  • PHP Manual
  • GMP Функции
  • Проверка, установлен ли бит в 1

gmp_testbit

(PHP 5 >= 5.3.0, PHP 7)

gmp_testbit — Проверка, установлен ли бит в 1

Описание

bool gmp_testbit ( GMP $a , int $index )

Проверяет, установлен ли заданный бит в 1.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

index

Проверяемый бит

Возвращаемые значения

Возвращает TRUE если бит установлен в $a, иначе FALSE.

Ошибки

Бросается ошибка уровня E_WARNING, если index меньше нуля, и возвращается FALSE.

Примеры

Пример #1 Пример использования gmp_testbit()

<?php
$n = gmp_init("1000000");
var_dump(gmp_testbit($n, 1));
gmp_setbit($n, 1);
var_dump(gmp_testbit($n, 1));
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • gmp_setbit() - Установка бита
  • gmp_clrbit() - Сброс бита


Побитовое исключающее ИЛИ

  • « gmp_testbit
  • GMP »
  • PHP Manual
  • GMP Функции
  • Побитовое исключающее ИЛИ

gmp_xor

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

gmp_xor — Побитовое исключающее ИЛИ

Описание

GMP gmp_xor ( GMP $a , GMP $b )

Вычисляет побитовое исключающее ИЛИ (XOR) двух GMP чисел.

Список параметров

a

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

b

Или ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее, или числовая строка, при условии, что ее можно преобразовать в число позже.

Возвращаемые значения

Ресурс resource GMP числа в PHP 5.5 и ранее, или объект класса GMP в PHP 5.6 и новее.

Примеры

Пример #1 Пример использования gmp_xor()

<?php
$xor1 = gmp_init("1101101110011101", 2);
$xor2 = gmp_init("0110011001011001", 2);

$xor3 = gmp_xor($xor1, $xor2);

echo gmp_strval($xor3, 2) . "\n";
?>

Результат выполнения данного примера:

1011110111000100


Класс GMP

(PHP 5 >= 5.6.0, PHP 7)

Введение

Номер GMP. Поддержка следующих объектов перезагружена arithmetic, bitwise и comparison операторы.

Замечание:

Объектно-ориентированный интерфейс для манипуляций с объектами GMP отсутствует. Используйте процедурный GMP API.

GMP implements Serializable {
}


Lapack

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Lapack — The Lapack class
    • Lapack::eigenValues — This function returns the eigenvalues for a given square matrix
    • Lapack::identity — Return an identity matrix
    • Lapack::leastSquaresByFactorisation — Calculate the linear least squares solution of a matrix using QR factorisation
    • Lapack::leastSquaresBySVD — Solve the linear least squares problem, using SVD
    • Lapack::pseudoInverse — Calculate the inverse of a matrix
    • Lapack::singularValues — Calculated the singular values of a matrix
    • Lapack::solveLinearEquation — Solve a system of linear equations
  • LapackException — The LapackException class


Введение

LAPACK is written in Fortran 90 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. This extension wraps the LAPACKE C bindings to allow access to several processes exposed by the library. Most functions work with arrays of arrays, representing rectangular matrices in row major order - so a two by two matrix [1 2; 3 4] would be array(array(1, 2), array(3, 4))


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Lapack requires the LAPACK and LAPACKE libraries.


Установка

Most distribution LAPACK packages do not include lapacke, so the easiest method is to build from source:

  svn co https://icl.cs.utk.edu/svn/lapack-dev/lapack/trunk lapack
  cd lapack
  mkdir build
  cd build
  cmake -D BUILD_SHARED_LIBS=ON -D LAPACKE=ON ../
  make
  sudo make install


  • « Типы ресурсов
  • Lapack »
  • PHP Manual
  • Lapack
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


The Lapack class

(PECL lapack >= 0.1.0)

Введение

LAPACK is written in Fortran 90 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems. This extension wraps the LAPACKE C bindings to allow access to several processes exposed by the library. Most functions work with arrays of arrays, representing rectangular matrices in row major order - so a two by two matrix [1 2; 3 4] would be array(array(1, 2), array(3, 4)).

All of the functions are called statically, for example $eig = Lapack::eigenvalues($a);

Обзор классов

Lapack {
/* Методы */
public static array eigenValues ( array $a [, array $left [, array $right ]] )
public static array identity ( int $n )
public static array leastSquaresByFactorisation ( array $a , array $b )
public static array leastSquaresBySVD ( array $a , array $b )
public static array pseudoInverse ( array $a )
public static array singularValues ( array $a )
public static array solveLinearEquation ( array $a , array $b )
}

Содержание

  • Lapack::eigenValues — This function returns the eigenvalues for a given square matrix
  • Lapack::identity — Return an identity matrix
  • Lapack::leastSquaresByFactorisation — Calculate the linear least squares solution of a matrix using QR factorisation
  • Lapack::leastSquaresBySVD — Solve the linear least squares problem, using SVD
  • Lapack::pseudoInverse — Calculate the inverse of a matrix
  • Lapack::singularValues — Calculated the singular values of a matrix
  • Lapack::solveLinearEquation — Solve a system of linear equations


This function returns the eigenvalues for a given square matrix

  • « Lapack
  • Lapack::identity »
  • PHP Manual
  • Lapack
  • This function returns the eigenvalues for a given square matrix

Lapack::eigenValues

(PECL lapack >= 0.1.0)

Lapack::eigenValues — This function returns the eigenvalues for a given square matrix

Описание

public static array Lapack::eigenValues ( array $a [, array $left [, array $right ]] )

Calculate the eigenvalues for a square matrix, and optionally calculate the left and right eigenvectors.

Список параметров

a

The matrix to calculate the eigenvalues for.

left

Optional parameter - if an array is passed here, it will be filled with the left eigenvectors

right

Optional parameter - if an array is passed here, it will be filled with the right eigenvectors

Возвращаемые значения

Returns an array of arrays representing the eigenvalues for the array.

Примеры

Пример #1 Using Lapack::eigenValues():

<?php

 $a = array(
     array(-1.01,   0.86,  -4.60,  3.31,  -4.81  ),
     array( 3.98,   0.53,  -7.04,  5.29,   3.55  ),
     array( 3.30,   8.26,  -3.89,  8.20,  -1.51  ),
     array( 4.43,   4.96,  -7.66, -7.33,   6.18  ),
     array( 7.31,  -6.43,  -6.16,  2.47,   5.58  ),
 );

 $result = Lapack::eigenValues($a);

 ?>


Return an identity matrix

  • « Lapack::eigenValues
  • Lapack::leastSquaresByFactorisation »
  • PHP Manual
  • Lapack
  • Return an identity matrix

Lapack::identity

(PECL lapack >= 0.1.0)

Lapack::identity — Return an identity matrix

Описание

public static array Lapack::identity ( int $n )

Return a size n identity matrix

Список параметров

n

The height and width of the identity matrix.

Возвращаемые значения

Will return a an array of n arrays, each containing n entries. The diagonals of the matrix will be 1s, the other positions 0.


Calculate the linear least squares solution of a matrix using QR factorisation

  • « Lapack::identity
  • Lapack::leastSquaresBySVD »
  • PHP Manual
  • Lapack
  • Calculate the linear least squares solution of a matrix using QR factorisation

Lapack::leastSquaresByFactorisation

(PECL lapack >= 0.1.0)

Lapack::leastSquaresByFactorisation — Calculate the linear least squares solution of a matrix using QR factorisation

Описание

public static array Lapack::leastSquaresByFactorisation ( array $a , array $b )

Solve the linear least squares problem, find min x in || B - Ax || Returns an array representing x. Expects arrays of arrays, and will return an array of arrays in the dimension B num cols x A num cols. Uses QR or LQ factorisation on matrix A.

Список параметров

a

Matrix A

b

Matrix B

Возвращаемые значения

Array of the solution matrix

Примеры

Пример #1 Using Lapack::leastSquaresByFactorisation():

<?php

 $a = array(
     array( 1.44,  -7.84,  -4.39,   4.53),
     array(-9.96,  -0.28,  -3.24,   3.83),
     array(-7.55,   3.24,   6.27,  -6.64),
     array( 8.34,   8.09,   5.28,   2.06),
     array( 7.08,   2.52,   0.74,  -2.47),
     array(-5.45,  -5.70,  -1.19,   4.70),
 );

 $b = array(
     array( 8.58,   9.35),
     array( 8.26,  -4.43),
     array( 8.48,  -0.70),
     array(-5.28,  -0.26),
     array( 5.72,  -7.36),
     array( 8.93,  -2.52),
 );

 $result = Lapack::leastSquaresByFactorisation($a, $b);
 ?>


Solve the linear least squares problem, using SVD

  • « Lapack::leastSquaresByFactorisation
  • Lapack::pseudoInverse »
  • PHP Manual
  • Lapack
  • Solve the linear least squares problem, using SVD

Lapack::leastSquaresBySVD

(PECL lapack >= 0.1.0)

Lapack::leastSquaresBySVD — Solve the linear least squares problem, using SVD

Описание

public static array Lapack::leastSquaresBySVD ( array $a , array $b )

Solve the linear least squares problem, find min x in || B - Ax || Returns an array representing x. Expects arrays of arrays, and will return an array of arrays in the dimension B num cols x A num cols. Uses SVD with a divide and conquer algorithm.

Список параметров

a

Matrix A

b

Matrix B

Возвращаемые значения

Returns the solution as an array of arrays.

Примеры

Пример #1 Using Lapack::leastSquaresBySVD():

<?php

  $a = array(
      array( 1.44,  -7.84,  -4.39,   4.53),
      array(-9.96,  -0.28,  -3.24,   3.83),
      array(-7.55,   3.24,   6.27,  -6.64),
      array( 8.34,   8.09,   5.28,   2.06),
      array( 7.08,   2.52,   0.74,  -2.47),
      array(-5.45,  -5.70,  -1.19,   4.70),
  );

  $b = array(
      array( 8.58,   9.35),
      array( 8.26,  -4.43),
      array( 8.48,  -0.70),
      array(-5.28,  -0.26),
      array( 5.72,  -7.36),
      array( 8.93,  -2.52),
  );

  $result = Lapack::leastSquaresBySVD($a, $b);

  ?>


Calculate the inverse of a matrix

  • « Lapack::leastSquaresBySVD
  • Lapack::singularValues »
  • PHP Manual
  • Lapack
  • Calculate the inverse of a matrix

Lapack::pseudoInverse

(PECL lapack >= 0.1.0)

Lapack::pseudoInverse — Calculate the inverse of a matrix

Описание

public static array Lapack::pseudoInverse ( array $a )

Find the pseudoinverse of a matrix A.

Список параметров

a

Matrix to invert

Возвращаемые значения

Inverted matrix (array of arrays).

Примеры

Пример #1 Using Lapack::pseudoInverse():

<?php

   $a = array(
       array( 8, 1, 6 ),
       array( 3, 5, 7 ),
       array( 4, 9, 2 ),
   );

   $result = Lapack::pseudoInverse($a);

   ?>


Calculated the singular values of a matrix

  • « Lapack::pseudoInverse
  • Lapack::solveLinearEquation »
  • PHP Manual
  • Lapack
  • Calculated the singular values of a matrix

Lapack::singularValues

(PECL lapack >= 0.1.0)

Lapack::singularValues — Calculated the singular values of a matrix

Описание

public static array Lapack::singularValues ( array $a )

Calculate the singular values of the matrix A.

Список параметров

a

The matrix to calculate the singular values for

Возвращаемые значения

The singular values

Примеры

Пример #1 Using Lapack::singularValues():

<?php

    $a = array(
        array( 7.52,  -1.10,  -7.95,  1.08  ),
        array(-0.76,   0.62,   9.34, -7.10  ),
        array( 5.13,   6.62,  -5.66,  0.87  ),
        array(-4.75,   8.52,   5.75,  5.30  ),
        array( 1.33,   4.91,  -5.49, -3.52  ),
        array(-2.40,  -6.77,   2.34,  3.95  ),
    );

    $result = Lapack::singularValues($a);

    ?>


Solve a system of linear equations

  • « Lapack::singularValues
  • LapackException »
  • PHP Manual
  • Lapack
  • Solve a system of linear equations

Lapack::solveLinearEquation

(PECL lapack >= 0.1.0)

Lapack::solveLinearEquation — Solve a system of linear equations

Описание

public static array Lapack::solveLinearEquation ( array $a , array $b )

This function computes the solution to the system of linear equations with a square matrix A and multiple right-hand sides B. Solves A * X = B for multiple B.

Список параметров

a

Square matrix of linear equations

b

Right hand side to be solved for

Возвращаемые значения

Matrix X

Примеры

Пример #1 Using Lapack::singularValues():

<?php

    $a = array(
        array( 6.80,  -6.05,  -0.45,   8.32,  -9.67   ),
        array(-2.11,  -3.30,   2.58,   2.71,  -5.14   ),
        array( 5.66,   5.36,  -2.70,   4.35,  -7.26   ),
        array( 5.97,  -4.44,   0.27,  -7.17,   6.08   ),
        array( 8.23,   1.08,   9.04,   2.14,  -6.87   ),
    );

    $b = array(
       array(  4.02,  -1.56,   9.81   ),
       array(  6.19,   4.00,  -4.09   ),
       array( -8.22,  -8.67,  -4.57   ),
       array( -7.57,   1.75,  -8.61   ),
       array( -3.03,   2.86,   8.99   ),
    );

    $result = Lapack::solveLinearEquation($a, $b);

    ?>


The LapackException class

(PECL lapack >= 0.1.0)

Введение

Exception thrown when an error is caught in the LAPACK functions

Обзор классов

lapackexception extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Математические функции

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Математические функции
    • abs — Модуль числа
    • acos — Арккосинус
    • acosh — Гиперболический арккосинус
    • asin — Арксинус
    • asinh — Гиперболический арксинус
    • atan2 — Арктангенс двух переменных
    • atan — Арктангенс
    • atanh — Гиперболический арктангенс
    • base_convert — Преобразование числа между произвольными системами счисления
    • bindec — Двоичное в десятичное
    • ceil — Округляет дробь в большую сторону
    • cos — Косинус
    • cosh — Гиперболический косинус
    • decbin — Переводит число из десятичной системы счисления в двоичную
    • dechex — Переводит число из десятичной системы счисления в шестнадцатеричную
    • decoct — Переводит число из десятичной системы счисления в восьмеричную
    • deg2rad — Преобразует значение из градусов в радианы
    • exp — Вычисляет число e в степени
    • expm1 — Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если number близок к нулю.
    • floor — Округляет дробь в меньшую сторону
    • fmod — Возвращает дробный остаток от деления по модулю
    • getrandmax — Возвращает максимально возможное случайное число
    • hexdec — Переводит число из шестнадцатеричной системы счисления в десятичную
    • hypot — Рассчитывает длину гипотенузы прямоугольного треугольника
    • intdiv — Целочисленное деление
    • is_finite — Проверяет, является ли значение допустимым конечным числом
    • is_infinite — Проверяет, является ли значение бесконечным
    • is_nan — Проверяет, является ли значение "не числом"
    • lcg_value — Комбинированный линейно конгруэнтный генератор
    • log10 — Десятичный логарифм
    • log1p — Возвращает log(1 + number), рассчитанный таким, что результат точен, даже если значение number близко к нулю
    • log — Натуральный логарифм
    • max — Возвращает наибольшее значение
    • min — Находит наименьшее значение
    • mt_getrandmax — Показывает максимально возможное значение случайного числа
    • mt_rand — Генерирует случайное значение методом mt
    • mt_srand — Переинициализирует генератор случайных чисел mt
    • octdec — Переводит число из восьмеричной системы счисления в десятичную
    • pi — Возвращает число Пи
    • pow — Возведение в степень
    • rad2deg — Преобразует значение из радианов в градусы
    • rand — Генерирует случайное число
    • round — Округляет число типа float
    • sin — Синус
    • sinh — Гиперболический синус
    • sqrt — Квадратный корень
    • srand — Изменяет начальное число генератора псевдослучайных чисел
    • tan — Тангенс
    • tanh — Гиперболический тангенс


Введение

Данные функции работают с числами в диапазонах типов integer и float на вашей машине (это соответствует C-типам long и double). Если вам нужно работать с большими числами, обратитесь к разделу математических функций произвольной точности.

См. также арифметические операторы.


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Математические константы
Константа | Значение | Описание | Доступна с версии
M_PI | 3.14159265358979323846 | число Пи |
M_E | 2.7182818284590452354 | число Эйлера (e) |
M_LOG2E | 1.4426950408889634074 | log_2 e |
M_LOG10E | 0.43429448190325182765 | lg e |
M_LN2 | 0.69314718055994530942 | ln 2 |
M_LN10 | 2.30258509299404568402 | ln 10 |
M_PI_2 | 1.57079632679489661923 | Пи/2 |
M_PI_4 | 0.78539816339744830962 | Пи/4 |
M_1_PI | 0.31830988618379067154 | 1/Пи |
M_2_PI | 0.63661977236758134308 | 2/Пи |
M_SQRTPI | 1.77245385090551602729 | sqrt(Пи) | PHP 5.2.0
M_2_SQRTPI | 1.12837916709551257390 | 2/sqrt(Пи) |
M_SQRT2 | 1.41421356237309504880 | sqrt(2) |
M_SQRT3 | 1.73205080756887729352 | sqrt(3) | PHP 5.2.0
M_SQRT1_2 | 0.70710678118654752440 | 1/sqrt(2) |
M_LNPI | 1.14472988584940017414 | Натуральный логарифм числа пи | PHP 5.2.0
M_EULER | 0.57721566490153286061 | Постоянная Эйлера | PHP 5.2.0
PHP_ROUND_HALF_UP | 1 | Округление к большему целому | PHP 5.3.0
PHP_ROUND_HALF_DOWN | 2 | Округление к меньшему целому | PHP 5.3.0
PHP_ROUND_HALF_EVEN | 3 | Округление к четному числу | PHP 5.3.0
PHP_ROUND_HALF_ODD | 4 | Округление к нечетному числу | PHP 5.3.0
NAN | NAN (тип float) | Не является числом (Not A Number) |
INF | INF (тип float) | Бесконечность |

Все константы без указания версии PHP доступны начиная с PHP 5.0.0.


Математические функции

Содержание

  • abs — Модуль числа
  • acos — Арккосинус
  • acosh — Гиперболический арккосинус
  • asin — Арксинус
  • asinh — Гиперболический арксинус
  • atan2 — Арктангенс двух переменных
  • atan — Арктангенс
  • atanh — Гиперболический арктангенс
  • base_convert — Преобразование числа между произвольными системами счисления
  • bindec — Двоичное в десятичное
  • ceil — Округляет дробь в большую сторону
  • cos — Косинус
  • cosh — Гиперболический косинус
  • decbin — Переводит число из десятичной системы счисления в двоичную
  • dechex — Переводит число из десятичной системы счисления в шестнадцатеричную
  • decoct — Переводит число из десятичной системы счисления в восьмеричную
  • deg2rad — Преобразует значение из градусов в радианы
  • exp — Вычисляет число e в степени
  • expm1 — Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если number близок к нулю.
  • floor — Округляет дробь в меньшую сторону
  • fmod — Возвращает дробный остаток от деления по модулю
  • getrandmax — Возвращает максимально возможное случайное число
  • hexdec — Переводит число из шестнадцатеричной системы счисления в десятичную
  • hypot — Рассчитывает длину гипотенузы прямоугольного треугольника
  • intdiv — Целочисленное деление
  • is_finite — Проверяет, является ли значение допустимым конечным числом
  • is_infinite — Проверяет, является ли значение бесконечным
  • is_nan — Проверяет, является ли значение "не числом"
  • lcg_value — Комбинированный линейно конгруэнтный генератор
  • log10 — Десятичный логарифм
  • log1p — Возвращает log(1 + number), рассчитанный таким, что результат точен, даже если значение number близко к нулю
  • log — Натуральный логарифм
  • max — Возвращает наибольшее значение
  • min — Находит наименьшее значение
  • mt_getrandmax — Показывает максимально возможное значение случайного числа
  • mt_rand — Генерирует случайное значение методом mt
  • mt_srand — Переинициализирует генератор случайных чисел mt
  • octdec — Переводит число из восьмеричной системы счисления в десятичную
  • pi — Возвращает число Пи
  • pow — Возведение в степень
  • rad2deg — Преобразует значение из радианов в градусы
  • rand — Генерирует случайное число
  • round — Округляет число типа float
  • sin — Синус
  • sinh — Гиперболический синус
  • sqrt — Квадратный корень
  • srand — Изменяет начальное число генератора псевдослучайных чисел
  • tan — Тангенс
  • tanh — Гиперболический тангенс


Модуль числа

  • « Математические функции
  • acos »
  • PHP Manual
  • Математические функции
  • Модуль числа

abs

(PHP 4, PHP 5, PHP 7)

abs — Модуль числа

Описание

number abs ( mixed $number )

Возвращает абсолютное значение number.

Список параметров

number

Числовое значение

Возвращаемые значения

Абсолютное значение number. Если тип аргумента number - float, то возвращаемый тип также float, иначе - integer (тип float обычно имеет большую область значений, чем тип integer).

Примеры

Пример #1 Пример использования abs()

<?php
echo abs(-4.2); // 4.2 (double/float)
echo abs(5);    // 5 (integer)
echo abs(-5);   // 5 (integer)
?>

Смотрите также

  • gmp_abs() - Абсолютная величина
  • gmp_sign() - Знак числа


Арккосинус

  • « abs
  • acosh »
  • PHP Manual
  • Математические функции
  • Арккосинус

acos

(PHP 4, PHP 5, PHP 7)

acos — Арккосинус

Описание

float acos ( float $arg )

Возвращает арккосинус числа arg в радианах. acos() - обратная тригонометрическая функция к cos(), т.е. a==cos(acos(a)) для каждого значения а, входящего в область значений функции acos().

Список параметров

arg

Аргумент функции

Возвращаемые значения

Арккосинус числа arg в радианах.

Смотрите также

  • cos() - Косинус
  • acosh() - Гиперболический арккосинус
  • asin() - Арксинус
  • atan() - Арктангенс


Гиперболический арккосинус

  • « acos
  • asin »
  • PHP Manual
  • Математические функции
  • Гиперболический арккосинус

acosh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

acosh — Гиперболический арккосинус

Описание

float acosh ( float $arg )

Возвращает гиперболический арккосинус arg, т.е. значение, чей гиперболический косинус равен arg.

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический арккосинус arg

Список изменений

Версия | Описание
5.3.0 | Функция стала доступна для всех платформ

Смотрите также

  • cosh() - Гиперболический косинус
  • acos() - Арккосинус
  • asinh() - Гиперболический арксинус
  • atanh() - Гиперболический арктангенс


Арксинус

  • « acosh
  • asinh »
  • PHP Manual
  • Математические функции
  • Арксинус

asin

(PHP 4, PHP 5, PHP 7)

asin — Арксинус

Описание

float asin ( float $arg )

Возвращает арксинус числа arg в радианах. asin() - обратная тригонометрическая функция к sin(), т.е. a==sin(asin(a)) для каждого значения a, входящего в область значений функции asin().

Список параметров

arg

Аргумент функции

Возвращаемые значения

Арксинус числа arg в радианах.

Смотрите также

  • sin() - Синус
  • asinh() - Гиперболический арксинус
  • acos() - Арккосинус
  • atan() - Арктангенс


Гиперболический арксинус

  • « asin
  • atan2 »
  • PHP Manual
  • Математические функции
  • Гиперболический арксинус

asinh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

asinh — Гиперболический арксинус

Описание

float asinh ( float $arg )

Возвращает гиперболический арксинус arg, т.е. значение, чей гиперболический синус равен arg.

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический арксинус arg

Список изменений

Версия | Описание
5.3.0 | Функция стала доступна для всех платформ

Смотрите также

  • sinh() - Гиперболический синус
  • asin() - Арксинус
  • acosh() - Гиперболический арккосинус
  • atanh() - Гиперболический арктангенс


Арктангенс двух переменных

  • « asinh
  • atan »
  • PHP Manual
  • Математические функции
  • Арктангенс двух переменных

atan2

(PHP 4, PHP 5, PHP 7)

atan2 — Арктангенс двух переменных

Описание

float atan2 ( float $y , float $x )

Функция вычисляет арктангенс переменных x и y. Это подобно вычислению арктангенса y / x, за исключением того, что знаки обоих аргументов используются для вычисления квадранта результата.

Функция возвращает значение в радианах в диапазоне от -PI до PI (включительно).

Список параметров

y

Делитель

x

Делимое

Возвращаемые значения

Арктангенс y/x в радианах.

Смотрите также

  • atan() - Арктангенс


Арктангенс

  • « atan2
  • atanh »
  • PHP Manual
  • Математические функции
  • Арктангенс

atan

(PHP 4, PHP 5, PHP 7)

atan — Арктангенс

Описание

float atan ( float $arg )

Возвращает арктангенс числа arg в радианах. atan() - обратная тригонометрическая функция к tan(), т.е. a==tan(atan(a)) для каждого значения a, входящего в область значений функции atan().

Список параметров

arg

Аргумент функции

Возвращаемые значения

Арктангенс числа arg в радианах.

Смотрите также

  • tan() - Тангенс
  • atanh() - Гиперболический арктангенс
  • asin() - Арксинус
  • acos() - Арккосинус


Гиперболический арктангенс

  • « atan
  • base_convert »
  • PHP Manual
  • Математические функции
  • Гиперболический арктангенс

atanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

atanh — Гиперболический арктангенс

Описание

float atanh ( float $arg )

Возвращает гиперболический арктангенс arg, т.е. значение, чей гиперболический тангенс равен arg.

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический арктангенс arg

Список изменений

Версия | Описание
5.3.0 | Функция стала доступна для всех платформ

Смотрите также

  • tanh() - Гиперболический тангенс
  • atan() - Арктангенс
  • asinh() - Гиперболический арксинус
  • acosh() - Гиперболический арккосинус


Преобразование числа между произвольными системами счисления

  • « atanh
  • bindec »
  • PHP Manual
  • Математические функции
  • Преобразование числа между произвольными системами счисления

base_convert

(PHP 4, PHP 5, PHP 7)

base_convert — Преобразование числа между произвольными системами счисления

Описание

string base_convert ( string $number , int $frombase , int $tobase )

Возвращает строку, содержащую число number, представленное в системе счисления tobase. Система счисления, в которой дано число number указана в frombase. Значения frombase и tobase должны быть между 2 и 36 (включительно). Цифры в числах, представленных в системе счисления выше десятичной, будут представлены буквами a-z, где "a" обозначает 10, "b" обозначает 11 и "z" - 35. Регистр букв не имеет значения, поскольку числа(number) интерпретируются регистронезависимо.

Внимание

base_convert() может потерять точность представления больших чисел из-за свойств связанных с внутренним представлением типов "double" или "float". Более подробную информацию о специфике данных типов и связанных и ними ограничениях, смотрите в разделе Числа с плавающей точкой.

Список параметров

number

Число для преобразования. Любой некорректный символ в number будет проигнорирован без какого либо предупреждения.

frombase

Основание системы счисления числа number

tobase

Основание системы счисления для преобразования числа number

Возвращаемые значения

number преобразованное в систему счисления tobase

Примеры

Пример #1 Пример использования base_convert()

<?php
$hexadecimal = 'a37334';
echo base_convert($hexadecimal, 16, 2);
?>

Результат выполнения данного примера:

101000110111001100110100

Смотрите также

  • intval() - Возвращает целое значение переменной


Двоичное в десятичное

  • « base_convert
  • ceil »
  • PHP Manual
  • Математические функции
  • Двоичное в десятичное

bindec

(PHP 4, PHP 5, PHP 7)

bindec — Двоичное в десятичное

Описание

number bindec ( string $binary_string )

Возвращает десятичный эквивалент двоичного числа binary_string.

bindec() преобразует двоичное число в integer или, если необходимо по причинам размера, в float.

bindec() интерпретирует значения binary_string как беззнаковое число. Так как bindec() воспринимает старший бит как еще один порядок величины, а не знаковый бит.

Список параметров

binary_string

Бинарная строка для преобразования

Внимание

Параметр должен быть строкой. Использование иных типов данных приведет к непредсказуемому результату.

Возвращаемые значения

Десятичное значение binary_string

Примеры

Пример #1 Пример использования bindec()

<?php
echo bindec('110011') . "\n";
echo bindec('000110011') . "\n";

echo bindec('111');
?>

Результат выполнения данного примера:

51
51
7

Пример #2 Пример. bindec() интерпретирует ввод как беззнаковое число

<?php
/*
 * Смысл этого примера можно найти в выводе скрипта,
 * а не в коде PHP.
 */

$magnitude_lower = pow(2, (PHP_INT_SIZE * 8) - 2);
p($magnitude_lower - 1);
p($magnitude_lower, 'Видите резкую смену значений? Смотрите в следующий раз...');

p(PHP_INT_MAX, 'PHP_INT_MAX');
p(~PHP_INT_MAX, 'интерпретируется как увеличенное на единицу значение PHP_INT_MAX');

if (PHP_INT_SIZE == 4) {
    $note = 'интерпретируется как самое большое целое без знака (unsigned integer)';
} else {
    $note = 'интерпретируется как самое большое целое без знака (unsigned integer)
              (18446744073709551615), но искажается из-за недостаточной точности float';
}
p(-1, $note);

function p($input, $note = '') {
    echo "input:        $input\n";

    $format = '%0' . (PHP_INT_SIZE * 8) . 'b';
    $bin = sprintf($format, $input);
    echo "binary:       $bin\n";

    ini_set('precision', 20);  // Для надежности на 64-битных системах.
    $dec = bindec($bin);
    echo 'bindec():     ' . $dec . "\n";

    if ($note) {
        echo "NOTE:         $note\n";
    }

    echo "\n";
}
?>

Результат выполнения данного примера на 32-битных машинах:

input:        1073741823
binary:       00111111111111111111111111111111
bindec():     1073741823

input:        1073741824
binary:       01000000000000000000000000000000
bindec():     1073741824
NOTE:         Видите резкую смену значений? Смотрите в следующий раз...

input:        2147483647
binary:       01111111111111111111111111111111
bindec():     2147483647
NOTE:         PHP_INT_MAX

input:        -2147483648
binary:       10000000000000000000000000000000
bindec():     2147483648
NOTE:         интерпретируется как увеличенное на единицу значение PHP_INT_MAX

input:        -1
binary:       11111111111111111111111111111111
bindec():     4294967295
NOTE:         интерпретируется как самое большое целое без знака (unsigned integer)

Результат выполнения данного примера на 64-битных машинах:

input:        4611686018427387903
binary:       0011111111111111111111111111111111111111111111111111111111111111
bindec():     4611686018427387903

input:        4611686018427387904
binary:       0100000000000000000000000000000000000000000000000000000000000000
bindec():     4611686018427387904
NOTE:         Видите резкую смену значений? Смотрите в следующий раз...

input:        9223372036854775807
binary:       0111111111111111111111111111111111111111111111111111111111111111
bindec():     9223372036854775807
NOTE:         PHP_INT_MAX

input:        -9223372036854775808
binary:       1000000000000000000000000000000000000000000000000000000000000000
bindec():     9223372036854775808
NOTE:         интерпретируется как увеличенное на единицу значение PHP_INT_MAX

input:        -1
binary:       1111111111111111111111111111111111111111111111111111111111111111
bindec():     18446744073709551616
NOTE:         интерпретируется как самое большое целое без знака (unsigned integer)
              (18446744073709551615), но искажается из-за недостаточной точности float

Примечания

Замечание:

Эта функция может конвертировать числа, которые слишком большие для типа integer на текущей платформе. В этом случае большие значения возвращаются как float.

Смотрите также

  • decbin() - Переводит число из десятичной системы счисления в двоичную
  • octdec() - Переводит число из восьмеричной системы счисления в десятичную
  • hexdec() - Переводит число из шестнадцатеричной системы счисления в десятичную
  • base_convert() - Преобразование числа между произвольными системами счисления


Округляет дробь в большую сторону

  • « bindec
  • cos »
  • PHP Manual
  • Математические функции
  • Округляет дробь в большую сторону

ceil

(PHP 4, PHP 5, PHP 7)

ceil — Округляет дробь в большую сторону

Описание

float ceil ( float $value )

Возвращает ближайшее большее целое от value.

Список параметров

value

Значение, которое требуется округлить в большую сторону

Возвращаемые значения

Возвращает ближайшее большее целое от value. Тип возвращаемого значения остаётся float т.к. диапазон float больше integer.

Примеры

Пример #1 Пример использования ceil()

<?php
echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
echo ceil(-3.14);  // -3
?>

Смотрите также

  • floor() - Округляет дробь в меньшую сторону
  • round() - Округляет число типа float


Косинус

  • « ceil
  • cosh »
  • PHP Manual
  • Математические функции
  • Косинус

cos

(PHP 4, PHP 5, PHP 7)

cos — Косинус

Описание

float cos ( float $arg )

cos() возвращает косинус параметра arg . Параметр arg задаётся в радианах.

Список параметров

arg

Угол в радианах

Возвращаемые значения

Косинус угла arg

Примеры

Пример #1 Пример использования cos()

<?php

echo cos(M_PI); // -1

?>

Смотрите также

  • acos() - Арккосинус
  • sin() - Синус
  • tan() - Тангенс
  • deg2rad() - Преобразует значение из градусов в радианы


Гиперболический косинус

  • « cos
  • decbin »
  • PHP Manual
  • Математические функции
  • Гиперболический косинус

cosh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

cosh — Гиперболический косинус

Описание

float cosh ( float $arg )

Возвращает гиперболический косинус arg, определяемый как (exp(arg) + exp(-arg))/2.

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический косинус arg

Смотрите также

  • cos() - Косинус
  • acosh() - Гиперболический арккосинус
  • sinh() - Гиперболический синус
  • cosh()


Переводит число из десятичной системы счисления в двоичную

  • « cosh
  • dechex »
  • PHP Manual
  • Математические функции
  • Переводит число из десятичной системы счисления в двоичную

decbin

(PHP 4, PHP 5, PHP 7)

decbin — Переводит число из десятичной системы счисления в двоичную

Описание

string decbin ( int $number )

Возвращает строку, содержащую двоичное представление указанного аргумента number.

Список параметров

number

Десятичное число для преобразования

Область ввода для 32-битных машин
положительный number | отрицательный number | возвращаемое значение
0 | 0
1 | 1
2 | 10
... и так далее ...
2147483646 | 1111111111111111111111111111110
2147483647 (наибольший знаковый integer) | 1111111111111111111111111111111 (31 единичка)
2147483648 | -2147483648 | 10000000000000000000000000000000
... и так далее ...
4294967294 | -2 | 11111111111111111111111111111110
4294967295 (наибольший беззнаковый integer) | -1 | 11111111111111111111111111111111 (32 единички)
Область ввода для 64-битных машин
положительный number | отрицательный number | возвращаемое значение
0 | 0
1 | 1
2 | 10
... и так далее ...
9223372036854775806 | 111111111111111111111111111111111111111111111111111111111111110
9223372036854775807 (наибольший знаковый integer) | 111111111111111111111111111111111111111111111111111111111111111 (63 единички)
-9223372036854775808 | 1000000000000000000000000000000000000000000000000000000000000000
... и так далее ...
-2 | 1111111111111111111111111111111111111111111111111111111111111110
-1 | 1111111111111111111111111111111111111111111111111111111111111111 (64 единички)

Возвращаемые значения

Бинарное строковое представление number

Примеры

Пример #1 Пример использования decbin()

<?php
echo decbin(12) . "\n";
echo decbin(26);
?>

Результат выполнения данного примера:

1100
11010

Смотрите также

  • bindec() - Двоичное в десятичное
  • decoct() - Переводит число из десятичной системы счисления в восьмеричную
  • dechex() - Переводит число из десятичной системы счисления в шестнадцатеричную
  • base_convert() - Преобразование числа между произвольными системами счисления
  • printf() - Выводит отформатированную строку, используя форматы %b, %032b или %064b
  • sprintf(), используя форматы %b, %032b или %064b


Переводит число из десятичной системы счисления в шестнадцатеричную

  • « decbin
  • decoct »
  • PHP Manual
  • Математические функции
  • Переводит число из десятичной системы счисления в шестнадцатеричную

dechex

(PHP 4, PHP 5, PHP 7)

dechex — Переводит число из десятичной системы счисления в шестнадцатеричную

Описание

string dechex ( int $number )

Возвращает строку, содержащую шестнадцатеричное представление указанного безнакового аргумента number.

Наибольшее число, которое может быть преобразовано - PHP_INT_MAX * 2 + 1 (или -1): на 32-битных платформах это 4294967295 в десятеричной системе, что конвертируется функцией dechex() в ffffffff.

Список параметров

number

Десятичное значение для преобразования

Так как тип PHP integer является знаковым, а dechex() работает с безнаковыми целыми, то отрицательные целые воспринимаются как безнаковые.

Возвращаемые значения

Шестнадцатеричное строковое представление number.

Примеры

Пример #1 Пример использования dechex()

<?php
echo dechex(10) . "\n";
echo dechex(47);
?>

Результат выполнения данного примера:

a
2f

Пример #2 Пример использования dechex() с большими целыми

<?php
// Вывод подразуемвает 32-битную платформу.
// Обратите внимание, что вывод одинаков для всех этих значений.
echo dechex(-1)."\n";
echo dechex(PHP_INT_MAX * 2 + 1)."\n";
echo dechex(pow(2, 32) - 1)."\n";
?>

Результат выполнения данного примера:

ffffffff
ffffffff
ffffffff

Смотрите также

  • hexdec() - Переводит число из шестнадцатеричной системы счисления в десятичную
  • decbin() - Переводит число из десятичной системы счисления в двоичную
  • decoct() - Переводит число из десятичной системы счисления в восьмеричную
  • base_convert() - Преобразование числа между произвольными системами счисления


Переводит число из десятичной системы счисления в восьмеричную

  • « dechex
  • deg2rad »
  • PHP Manual
  • Математические функции
  • Переводит число из десятичной системы счисления в восьмеричную

decoct

(PHP 4, PHP 5, PHP 7)

decoct — Переводит число из десятичной системы счисления в восьмеричную

Описание

string decoct ( int $number )

Возвращает строку, содержащую восьмеричное представление указанного аргумента number. Значение наибольшего числа, которое может быть преобразовано, зависит от платформы. Для 32-битных платформ это обычно 4294967295 в десятичном представлении и 37777777777 в восьмеричном. Для 64-битных платформ это обычно 9223372036854775807 и 777777777777777777777 соответственно.

Список параметров

number

Десятичное значение для преобразования

Возвращаемые значения

Восьмеричное строковое представление number

Примеры

Пример #1 Пример использования decoct()

<?php
echo decoct(15) . "\n";
echo decoct(264);
?>

Результат выполнения данного примера:

17
410

Смотрите также

  • octdec() - Переводит число из восьмеричной системы счисления в десятичную
  • decbin() - Переводит число из десятичной системы счисления в двоичную
  • dechex() - Переводит число из десятичной системы счисления в шестнадцатеричную
  • base_convert() - Преобразование числа между произвольными системами счисления


Преобразует значение из градусов в радианы

  • « decoct
  • exp »
  • PHP Manual
  • Математические функции
  • Преобразует значение из градусов в радианы

deg2rad

(PHP 4, PHP 5, PHP 7)

deg2rad — Преобразует значение из градусов в радианы

Описание

float deg2rad ( float $number )

Функция преобразует number из градусов в радианы.

Список параметров

number

Угловая величина в градусах

Возвращаемые значения

Эквивалент number в радианах

Примеры

Пример #1 Пример использования deg2rad()

<?php

echo deg2rad(45); // 0.785398163397
var_dump(deg2rad(45) === M_PI_4); // bool(true)

?>

Смотрите также

  • rad2deg() - Преобразует значение из радианов в градусы


Вычисляет число e в степени

  • « deg2rad
  • expm1 »
  • PHP Manual
  • Математические функции
  • Вычисляет число e в степени

exp

(PHP 4, PHP 5, PHP 7)

exp — Вычисляет число e в степени

Описание

float exp ( float $arg )

Возвращает e в степени arg.

Замечание:

Число e - основание натурального логарифма. Приблизительно равно 2.718282.

Список параметров

arg

Степень для возведения

Возвращаемые значения

'e' возводится в степень arg

Примеры

Пример #1 Пример использования exp()

<?php
echo exp(12) . "\n";
echo exp(5.7);
?>

Результат выполнения данного примера:

1.6275E+005
298.87

Смотрите также

  • log() - Натуральный логарифм
  • pow() - Возведение в степень


Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если number близок к нулю.

  • « exp
  • floor »
  • PHP Manual
  • Математические функции
  • Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если number близок к нулю.

expm1

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

expm1 — Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если number близок к нулю.

Описание

float expm1 ( float $arg )

expm1() возвращает эквивалент выражения 'exp(arg) - 1', рассчитанный таким образом, что результат точен, даже если значение arg близко к нулю, тогда как 'exp (arg) - 1' будет неточно из-за вычитания двух почти равных чисел.

Список параметров

arg

Входное значение

Возвращаемые значения

'e' в степени arg минус один

Список изменений

Версия | Описание
5.3.0 | Теперь функция доступна на всех платформах

Смотрите также

  • log1p() - Возвращает log(1 + number), рассчитанный таким, что результат точен, даже если значение number близко к нулю
  • exp() - Вычисляет число e в степени


Округляет дробь в меньшую сторону

  • « expm1
  • fmod »
  • PHP Manual
  • Математические функции
  • Округляет дробь в меньшую сторону

floor

(PHP 4, PHP 5, PHP 7)

floor — Округляет дробь в меньшую сторону

Описание

mixed floor ( float $value )

Возвращает ближайшее целое число(сохраняя тип float), округляя value в меньшую сторону.

Список параметров

value

Числовое значение для округления

Возвращаемые значения

Значение value, округленное в меньшую сторону до ближайшего целого числа. Возвращаемое значение функции floor() по прежнему типа float потому, что диапазон значений float обычно больше, чем у integer. В случае возникновения какой либо ошибки(например в качестве параметра передан массив), эта функция вернет FALSE.

Примеры

Пример #1 Пример использования floor()

<?php
echo floor(4.3);   // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4
?>

Смотрите также

  • ceil() - Округляет дробь в большую сторону
  • round() - Округляет число типа float


Возвращает дробный остаток от деления по модулю

  • « floor
  • getrandmax »
  • PHP Manual
  • Математические функции
  • Возвращает дробный остаток от деления по модулю

fmod

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

fmod — Возвращает дробный остаток от деления по модулю

Описание

float fmod ( float $x , float $y )

Возвращает дробный остаток от деления делимого (x) и делителя (y). Остаток (r) определяется так: x = i * y + r, где i - некоторое целое. Если y не равен нулю, то r имеет такой же знак, как x и величину, меньшую или равную величине y.

Список параметров

x

Делимое.

y

Делитель.

Возвращаемые значения

Остаток от операции деления x/y

Примеры

Пример #1 Пример использования fmod()

<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r равно 0.5, потому что 4 * 1.3 + 0.5 = 5.7
?>

Смотрите также

  • / - деление с плавающей точкой
  • % - целочисленный остаток
  • intdiv() - целочисленное деление


Возвращает максимально возможное случайное число

  • « fmod
  • hexdec »
  • PHP Manual
  • Математические функции
  • Возвращает максимально возможное случайное число

getrandmax

(PHP 4, PHP 5, PHP 7)

getrandmax — Возвращает максимально возможное случайное число

Описание

int getrandmax ( void )

Возвращает максимальное значение, которое может быть получено функцией rand().

Возвращаемые значения

Максимально возможное случайное значение, возвращаемое функцией rand()

Смотрите также

  • rand() - Генерирует случайное число
  • srand() - Изменяет начальное число генератора псевдослучайных чисел
  • mt_getrandmax() - Показывает максимально возможное значение случайного числа


Переводит число из шестнадцатеричной системы счисления в десятичную

  • « getrandmax
  • hypot »
  • PHP Manual
  • Математические функции
  • Переводит число из шестнадцатеричной системы счисления в десятичную

hexdec

(PHP 4, PHP 5, PHP 7)

hexdec — Переводит число из шестнадцатеричной системы счисления в десятичную

Описание

number hexdec ( string $hex_string )

Возвращает десятичный эквивалент шестнадцатеричного числа, содержащегося в аргументе hex_string. hexdec() преобразует шестнадцатеричную строку в десятичное число.

hexdec() игнорирует любые обнаруженные не-шестнадцатеричные символы.

Список параметров

hex_string

Шестнадцатеричная строка для преобразования

Возвращаемые значения

Десятичное представление hex_string

Примеры

Пример #1 Пример использования hexdec()

<?php
var_dump(hexdec("See"));
var_dump(hexdec("ee"));
// в обоих случаех будет выведено "int(238)"

var_dump(hexdec("that")); // выведет "int(10)"
var_dump(hexdec("a0")); // выведет "int(160)"
?>

Примечания

Замечание:

Эта функция может конвертировать числа, которые слишком большие для типа integer на текущей платформе. В этом случае большие значения возвращаются как float.

Смотрите также

  • dechex() - Переводит число из десятичной системы счисления в шестнадцатеричную
  • bindec() - Двоичное в десятичное
  • octdec() - Переводит число из восьмеричной системы счисления в десятичную
  • base_convert() - Преобразование числа между произвольными системами счисления


Рассчитывает длину гипотенузы прямоугольного треугольника

  • « hexdec
  • intdiv »
  • PHP Manual
  • Математические функции
  • Рассчитывает длину гипотенузы прямоугольного треугольника

hypot

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

hypot — Рассчитывает длину гипотенузы прямоугольного треугольника

Описание

float hypot ( float $x , float $y )

hypot() возвращает длину гипотенузы прямоугольного треугольника с длинами сторон x и y, или расстояние точки (x, y) до начала координат Эквивалентно sqrt(x*x + y*y).

Список параметров

x

Длина первой стороны

y

Длина второй стороны

Возвращаемые значения

Вычисленная длина гипотенузы


Целочисленное деление

  • « hypot
  • is_finite »
  • PHP Manual
  • Математические функции
  • Целочисленное деление

intdiv

(PHP 7)

intdiv — Целочисленное деление

Описание

int intdiv ( int $dividend , int $divisor )

Возвращает целочисленное деление числителя на знаменатель.

Список параметров

dividend

Числитель. То, что делится.

divisor

Знаменатель. Числитель будет делиться на divisor

Возвращаемые значения

Целое частное от деления dividend на divisor.

Ошибки

Если divisor равен 0, будет вызвано исключение DivisionByZeroError. Если dividend равен PHP_INT_MIN и divisor равен -1, то будет брошено исключение ArithmeticError.

Примеры

Пример #1 Пример использования intdiv()

<?php
var_dump(intdiv(3, 2));
var_dump(intdiv(-3, 2));
var_dump(intdiv(3, -2));
var_dump(intdiv(-3, -2));
var_dump(intdiv(PHP_INT_MAX, PHP_INT_MAX));
var_dump(intdiv(PHP_INT_MIN, PHP_INT_MIN));
var_dump(intdiv(PHP_INT_MIN, -1));
var_dump(intdiv(1, 0));
?>
int(1)
int(-1)
int(-1)
int(1)
int(1)
int(1)

Fatal error: Uncaught ArithmeticError: Division of PHP_INT_MIN by -1 is not an integer in %s on line 8
Fatal error: Uncaught DivisionByZeroError: Division by zero in %s on line 9

Смотрите также

  • / - деление рациональных чисел
  • % - остаток от деления
  • fmod() - остаток от деления рациональных чисел


Проверяет, является ли значение допустимым конечным числом

  • « intdiv
  • is_infinite »
  • PHP Manual
  • Математические функции
  • Проверяет, является ли значение допустимым конечным числом

is_finite

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_finite — Проверяет, является ли значение допустимым конечным числом

Описание

bool is_finite ( float $val )

Проверяет, является ли val допустимым конечным числом на данной платформе.

Список параметров

val

Проверяемое значение

Возвращаемые значения

TRUE, если val является допустимым конечным числом в разрешенном для PHP float диапазоне для данной платформы, и FALSE в противном случае.

Смотрите также

  • is_infinite() - Проверяет, является ли значение бесконечным
  • is_nan() - Проверяет, является ли значение "не числом"


Проверяет, является ли значение бесконечным

  • « is_finite
  • is_nan »
  • PHP Manual
  • Математические функции
  • Проверяет, является ли значение бесконечным

is_infinite

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_infinite — Проверяет, является ли значение бесконечным

Описание

bool is_infinite ( float $val )

Возвращает TRUE, если val является бесконечностью (положительной или отрицательной), например, как результат вычисления log(0) или любые другие значения, слишком большие, чтобы уместиться в float на данной платформе.

Список параметров

val

Проверяемое значение

Возвращаемые значения

TRUE если val является бесконечным, и FALSE в противном случае.

Смотрите также

  • is_finite() - Проверяет, является ли значение допустимым конечным числом
  • is_nan() - Проверяет, является ли значение "не числом"


Проверяет, является ли значение "не числом"

  • « is_infinite
  • lcg_value »
  • PHP Manual
  • Математические функции
  • Проверяет, является ли значение "не числом"

is_nan

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_nan — Проверяет, является ли значение "не числом"

Описание

bool is_nan ( float $val )

Проверяет, является ли val "не числом" (NaN), например, как результат выполнения функции acos(1.01).

Список параметров

val

Проверяемое значение

Возвращаемые значения

Возвращает TRUE, если val имеет значение "не число" (NaN), и FALSE в противном случае.

Примеры

Пример #1 Пример использования is_nan()

<?php
// Недопустимое вычисление, возвращает
// значение "не число" (NaN)
$nan = acos(8);

var_dump($nan, is_nan($nan));
?>

Результат выполнения данного примера:

float(NAN)
bool(true)

Смотрите также

  • is_finite() - Проверяет, является ли значение допустимым конечным числом
  • is_infinite() - Проверяет, является ли значение бесконечным


Комбинированный линейно конгруэнтный генератор

  • « is_nan
  • log10 »
  • PHP Manual
  • Математические функции
  • Комбинированный линейно конгруэнтный генератор

lcg_value

(PHP 4, PHP 5, PHP 7)

lcg_value — Комбинированный линейно конгруэнтный генератор

Описание

float lcg_value ( void )

lcg_value() возвращает псевдослучайное значение в диапазоне(0, 1). Функция комбинирует два КГ с периодами 2^31 - 85 и 2^31 - 249. Период этой функции равен произведению базовых.

Предостережение

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функций random_int(), random_bytes(), или openssl_random_pseudo_bytes() вместо данной.

Возвращаемые значения

Псевдослучайное число с плавающей точкой в диапазоне (0, 1)

Смотрите также

  • rand() - Генерирует случайное число
  • mt_rand() - Генерирует случайное значение методом mt


Десятичный логарифм

  • « lcg_value
  • log1p »
  • PHP Manual
  • Математические функции
  • Десятичный логарифм

log10

(PHP 4, PHP 5, PHP 7)

log10 — Десятичный логарифм

Описание

float log10 ( float $arg )

Возвращает десятичный логарифм arg.

Список параметров

arg

Входное значение

Возвращаемые значения

Десятичный логарифм arg

Смотрите также

  • log() - Натуральный логарифм


Возвращает log(1 + number), рассчитанный таким, что результат точен, даже если значение number близко к нулю

  • « log10
  • log »
  • PHP Manual
  • Математические функции
  • Возвращает log(1 + number), рассчитанный таким, что результат точен, даже если значение number близко к нулю

log1p

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

log1p — Возвращает log(1 + number), рассчитанный таким, что результат точен, даже если значение number близко к нулю

Описание

float log1p ( float $number )

log1p() возвращает log(1 + number), рассчитанное таким образом, что результат точен, даже когда значение number близко к нулю. Из-за недостатка точности log() в этом случае может вернуть просто log(1).

Список параметров

number

Входное значение

Возвращаемые значения

log(1 + number)

Список изменений

Версия | Описание
5.3.0 | Теперь функция доступна на всех платформах

Смотрите также

  • expm1() - Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если number близок к нулю.
  • log() - Натуральный логарифм
  • log10() - Десятичный логарифм


Натуральный логарифм

  • « log1p
  • max »
  • PHP Manual
  • Математические функции
  • Натуральный логарифм

log

(PHP 4, PHP 5, PHP 7)

log — Натуральный логарифм

Описание

float log ( float $arg [, float $base = M_E ] )

Если указан необязательный параметр base, log() возвращает logbase от arg, иначе log() возвращает натуральный логарифм числа arg.

Список параметров

arg

Число, для которого необходимо вычислить логарифм

base

Необязательное основание логарифма (по умолчанию основание 'e', что соответствует натуральному логарифму).

Возвращаемые значения

Логарифм числа arg по основанию base, если указано, или натуральный логарифм.

Смотрите также

  • log10() - Десятичный логарифм
  • exp() - Вычисляет число e в степени
  • pow() - Возведение в степень


Возвращает наибольшее значение

  • « log
  • min »
  • PHP Manual
  • Математические функции
  • Возвращает наибольшее значение

max

(PHP 4, PHP 5, PHP 7)

max — Возвращает наибольшее значение

Описание

mixed max ( array $values )
mixed max ( mixed $value1 , mixed $value2 [, mixed $... ] )

Если первый и единственный параметр - массив, то max() возвратит наибольшее значение из этого массива. Если переданы хотя бы два параметра, max() вернет наибольший из них.

Замечание:

Значения разных типов будут сравниваться в соответствии со стандартными правилами сравнения. К примеру, нечисловая строка (string) будет сравниваться с целым числом (integer) так, как будто это 0, а множество нечисловых строк (string) будут сравниваться алфавитно-цифровым порядком. Выбранное значение будет возвращено без конвертации типа.

Предостережение

Будьте осторожны, задавая аргументы разных типов, поскольку результат max() может вас удивить.

Список параметров

values

Массив с данными.

value1

Любое поддающееся сравнению значение.

value2

Любое поддающееся сравнению значение.

...

Любое поддающееся сравнению значение.

Возвращаемые значения

max() вернет значение "наибольшего" из элементов массива, в соответствии со стандартными правилами сравнения. Если несколько разнотипных значений посчитаются идентичнымы (например 0 и 'abc'), функция вернет первое из них.

Если передан один пустой массив, то функция вернет FALSE и вызовет ошибку уровня E_WARNING.

Примеры

Пример #1 Пример использования max()

<?php
echo max(1, 3, 5, 6, 7);  // 7
echo max(array(2, 4, 5)); // 5

// 'hello' будет представлено как числое значение значение 0.
// Оба параметра имеют одинаковое значение, поэтому результат
// определяется порядком, в котором параметры переданы
echo max(0, 'hello');     // 0
echo max('hello', 0);     // hello

// Здесь сравниваются -1 < 0, так что 'hello' больше
echo max('hello', -1);    // hello

// В данном случае 0 больше, чем -1, поэтому результат равен 'hello'.
echo max(-1, 'hello');    // hello

// При сравнении массивов, разной длины - max вернет более длинный
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(1, 1, 1, 1)

// При сравнении массивов одинаковой длины - max будет сравнивать их поэлементно
// слева направо, в данном примере 2 == 2, но 4 < 5
$val = max(array(2, 4, 8), array(2, 5, 1)); // array(2, 5, 1)

// Если передан массив и не массив, в результате всегда будет возвращен массив
$val = max('string', array(2, 5, 7), 42);   // array(2, 5, 7)

// Если один из аргументов NULL или будево значение, то сравнение с другими
// значениями будет происходить по правилу FALSE < TRUE, вне зависимости от того
// какого типа параметры переданы.
// В примере ниже, -10 трактуется как TRUE
$val = max(-10, FALSE); // -10

// 0 всегда трактуется как FALSE, значит он "меньше чем" TRUE
$val = max(0, TRUE); // TRUE
?>

Смотрите также

  • min() - Находит наименьшее значение
  • count() - Подсчитывает количество элементов массива или что-то в объекте


Находит наименьшее значение

  • « max
  • mt_getrandmax »
  • PHP Manual
  • Математические функции
  • Находит наименьшее значение

min

(PHP 4, PHP 5, PHP 7)

min — Находит наименьшее значение

Описание

mixed min ( array $values )
mixed min ( mixed $value1 , mixed $value2 [, mixed $... ] )

Если первый и единственный параметр - массив, то min() возвратит наименьшее значение из этого массива. Если переданы хотя бы два параметра, min() вернет наименьший из них.

Замечание:

Значения разных типов будут сравниваться в соответствии со стандартными правилами сравнения. К примеру, нечисловая строка (string) будет сравниваться с целым числом (integer) так, как будто это 0, а множество нечисловых строк (string) будут сравниваться алфавитно-цифровым порядком. Выбранное значение будет возвращено без конвертации типа.

Предостережение

Будьте осторожны, задавая аргументы разных типов, поскольку результат max() может вас удивить.

Список параметров

values

Массив содержащий значения.

value1

Любое поддающееся сравнению значение.

value2

Любое поддающееся сравнению значение.

...

Любое поддающееся сравнению значение.

Возвращаемые значения

min() вернет значение "наименьшего" из элементов массива, в соответствии со стандартными правилами сравнения. Если несколько разнотипных значений посчитаются идентичнымы (например 0 и 'abc'), функция вернет первое из них.

Если передан один пустой массив, то функция вернет FALSE и вызовет ошибку уровня E_WARNING.

Примеры

Пример #1 Пример использования min()

<?php
echo min(2, 3, 1, 6, 7);  // 1
echo min(array(2, 4, 5)); // 2

// 'hello' будет представлено как числое значение значение 0.
// Оба параметра имеют одинаковое значение, поэтому результат
// определяется порядком, в котором параметры переданы
echo min(0, 'hello');     // 0
echo min('hello', 0);     // hello

// Здесь сравниваются -1 < 0, так что -1 меньше
echo min('hello', -1);    // -1

// При сравнении массивов, разной длины - min вернет самый короткий
$val = max(array(2, 2, 2), array(1, 1, 1, 1)); // array(2, 2, 2)

// При указании нескольких массивов, они сравниваются полностью
// в нашем примере: 2 == 2, но 4 < 5
$val = min(array(2, 4, 8), array(2, 5, 1)); // array(2, 4, 8)

// При указании массива и не массива,
// первый никогда не возвращается, т.к. считается самым большим
$val = min('string', array(2, 5, 7), 42);   // string

// Если один из аргументов NULL или будево значение, то сравнение с другими
// значениями будет происходить по правилу FALSE < TRUE и NULL == FALSE, вне
// зависимости от того какого типа параметры переданы.
// В примере ниже, -10 трактуется как TRUE
$val = min(-10, FALSE, 10); // FALSE
$val = min(-10, NULL, 10);  // NULL

// 0 всегда трактуется как FALSE, значит он "меньше чем" TRUE
$val = min(0, TRUE); // 0
?>

Смотрите также

  • max() - Возвращает наибольшее значение
  • count() - Подсчитывает количество элементов массива или что-то в объекте


Показывает максимально возможное значение случайного числа

  • « min
  • mt_rand »
  • PHP Manual
  • Математические функции
  • Показывает максимально возможное значение случайного числа

mt_getrandmax

(PHP 4, PHP 5, PHP 7)

mt_getrandmax — Показывает максимально возможное значение случайного числа

Описание

int mt_getrandmax ( void )

Возвращает максимальное значение, которое может быть получено при вызове mt_rand().

Возвращаемые значения

Возвращает максимальное случайное значение, возвращаемое mt_rand(), вызванного без аргументов. Т.е. максимальное значение, которое можно передать в параметр max, так чтобы результат не округлился и, соответственно, не уменьшалась случайность.

Примеры

Пример #1 Вычисление случайного числа с плавающей точкой

<?php
function randomFloat($min = 0, $max = 1) {
    return $min + mt_rand() / mt_getrandmax() * ($max - $min);
}

var_dump(randomFloat());
var_dump(randomFloat(2, 20));
?>

Результатом выполнения данного примера будет что-то подобное:

float(0.91601131712832)
float(16.511210331931)

Смотрите также

  • mt_rand() - Генерирует случайное значение методом mt
  • mt_srand() - Переинициализирует генератор случайных чисел mt
  • getrandmax() - Возвращает максимально возможное случайное число


Генерирует случайное значение методом mt

  • « mt_getrandmax
  • mt_srand »
  • PHP Manual
  • Математические функции
  • Генерирует случайное значение методом mt

mt_rand

(PHP 4, PHP 5, PHP 7)

mt_rand — Генерирует случайное значение методом mt

Описание

int mt_rand ( void )
int mt_rand ( int $min , int $max )

Многие генераторы случайных чисел в старых библиотеках имеют сомнительные или неизвестные характеристики, а также работают довольно медленно. По умолчанию, PHP использует генератор случайных чисел libc с помощью функции rand(). Функция mt_rand() представляет собой удобную замену этой функции. Она использует генератор случайных чисел с известными характеристиками, основанный на "» Вихре Мерсенна", который генерирует случайные числа в среднем в четыре раза быстрее, чем libc rand().

Вызванная без необязательных параметров min и max, функция mt_rand() возвращает псевдослучайное значение между 0 и mt_getrandmax(). Если вам нужно, например, случайное число между 5 и 15 (включительно), используйте вызов mt_rand(5,15)

Предостережение

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функций random_int(), random_bytes(), или openssl_random_pseudo_bytes() вместо данной.

Список параметров

min

Необязательный параметр: минимальное значение случайного числа (по умолчанию: 0)

max

Необязательный параметр: максимальное значение случайного числа (по умолчанию: mt_getrandmax())

Возвращаемые значения

Случайное целое значение между min (или 0) и max (или mt_getrandmax(), включительно), или FALSE в случае, если max меньше min.

Список изменений

Версия | Описание
5.3.4 | Приводит к ошибке E_WARNING и возвращает FALSE, если max < min.

Примеры

Пример #1 Пример использования mt_rand()

<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";

echo mt_rand(5, 15);
?>

Результатом выполнения данного примера будет что-то подобное:

1604716014
1478613278
6

Примечания

Внимание

Диапазон min - max не должен выходить за границы mt_getrandmax(). То есть (max - min) <= mt_getrandmax(). В противном случае, mt_rand() может возвращать менее качественные случайные числа.

Смотрите также

  • mt_srand() - Переинициализирует генератор случайных чисел mt
  • mt_getrandmax() - Показывает максимально возможное значение случайного числа
  • random_int() - Генератор криптографически безопасных случайных целых чисел
  • random_bytes() - Генератор криптографически безопасных случайных байт
  • openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes
  • rand() - Генерирует случайное число


Переинициализирует генератор случайных чисел mt

  • « mt_rand
  • octdec »
  • PHP Manual
  • Математические функции
  • Переинициализирует генератор случайных чисел mt

mt_srand

(PHP 4, PHP 5, PHP 7)

mt_srand — Переинициализирует генератор случайных чисел mt

Описание

void mt_srand ([ int $seed ] )

Переинициализирует генератор случайных чисел параметром seed или случайным числом, если seed не указан.

Замечание: Нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку это происходит автоматически.

Список параметров

seed

Необязательное целоциисленноеinteger значение параметра переинициализации

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.2.1 | Реализация Вихря Мерсена (Mersenne Twister) в PHP теперь использует новый алгоритм переинициализации, разработанный Ричардом Вагнером (Richard Wagner). При том же параметре последовательность значений будет отличатся от последовательности, сгенерированной в предыдущих версиях PHP. (Ранее при одинаковых параметрах последовательность была одинаковой). Это поведение более не планируется изменять, но тем не менее, полагаться на это небезопасно.

Примеры

Пример #1 Пример использования mt_srand()

<?php
// инициализация текущими микросекундами
function make_seed()
{
  list($usec, $sec) = explode(' ', microtime());
  return $sec + $usec * 1000000;
}
mt_srand(make_seed());
$randval = mt_rand();
?>

Смотрите также

  • mt_rand() - Генерирует случайное значение методом mt
  • mt_getrandmax() - Показывает максимально возможное значение случайного числа
  • srand() - Изменяет начальное число генератора псевдослучайных чисел


Переводит число из восьмеричной системы счисления в десятичную

  • « mt_srand
  • pi »
  • PHP Manual
  • Математические функции
  • Переводит число из восьмеричной системы счисления в десятичную

octdec

(PHP 4, PHP 5, PHP 7)

octdec — Переводит число из восьмеричной системы счисления в десятичную

Описание

number octdec ( string $octal_string )

Возвращает десятичный эквивалент восьмеричного числа, указанного в аргументе octal_string.

Список параметров

octal_string

Восьмеричная строка для преобразования

Возвращаемые значения

Десятичное представление octal_string

Примеры

Пример #1 Пример использования octdec()

<?php
echo octdec('77') . "\n";
echo octdec(decoct(45));
?>

Результат выполнения данного примера:

63
45

Примечания

Замечание:

Эта функция может конвертировать числа, которые слишком большие для типа integer на текущей платформе. В этом случае большие значения возвращаются как float.

Смотрите также

  • decoct() - Переводит число из десятичной системы счисления в восьмеричную
  • bindec() - Двоичное в десятичное
  • hexdec() - Переводит число из шестнадцатеричной системы счисления в десятичную
  • base_convert() - Преобразование числа между произвольными системами счисления


Возвращает число Пи

  • « octdec
  • pow »
  • PHP Manual
  • Математические функции
  • Возвращает число Пи

pi

(PHP 4, PHP 5, PHP 7)

pi — Возвращает число Пи

Описание

float pi ( void )

Возвращает приближённое значение числа Пи с точностью, определяемой директивой precision в php.ini, значение по умолчанию которой 14. Константа M_PI даёт идентичный результат.

Возвращаемые значения

Приближенное значение числа Пи, представленное как float.

Примеры

Пример #1 Пример использования pi()

<?php
echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898
?>


Возведение в степень

  • « pi
  • rad2deg »
  • PHP Manual
  • Математические функции
  • Возведение в степень

pow

(PHP 4, PHP 5, PHP 7)

pow — Возведение в степень

Описание

number pow ( number $base , number $exp )

Возвращает base, возведенное в степень exp.

Замечание:

В PHP 5.6 и выше вы можете использовать оператор **.

Список параметров

base

Основание

exp

Показатель степени

Возвращаемые значения

Основание base возведенное в степень exp. Если оба аргумента - неотрицательные целые и результат может быть представлен как целое, то возвращаемый результат будет типа integer. В ином случае результат будет типа float.

Примеры

Пример #1 Примеры использования pow()

<?php

var_dump(pow(2, 8)); // int(256)
echo pow(-1, 20); // 1
echo pow(0, 0); // 1
echo pow(10, -1); // 0.1

echo pow(-1, 5.5); // PHP >=5.2.2: NAN
echo pow(-1, 5.5); // PHP <5.2.2: -NAN
?>

Примечания

Замечание:

Функция преобразует все входные значения, даже не-скалярные, к числовым, что может привести к странным результатам.

Смотрите также

  • exp() - Вычисляет число e в степени
  • sqrt() - Квадратный корень
  • bcpow() - Возведение в степень чисел с произвольной точностью
  • gmp_pow() - Возводит число в степень


Преобразует значение из радианов в градусы

  • « pow
  • rand »
  • PHP Manual
  • Математические функции
  • Преобразует значение из радианов в градусы

rad2deg

(PHP 4, PHP 5, PHP 7)

rad2deg — Преобразует значение из радианов в градусы

Описание

float rad2deg ( float $number )

Функция преобразует значение number из радианов в градусы.

Список параметров

number

Значение в радианах

Возвращаемые значения

Эквивалент number в градусах

Примеры

Пример #1 Пример использования rad2deg()

<?php

echo rad2deg(M_PI_4); // 45

?>

Смотрите также

  • deg2rad() - Преобразует значение из градусов в радианы


Генерирует случайное число

  • « rad2deg
  • round »
  • PHP Manual
  • Математические функции
  • Генерирует случайное число

rand

(PHP 4, PHP 5, PHP 7)

rand — Генерирует случайное число

Описание

int rand ( void )
int rand ( int $min , int $max )

При вызове без параметров min и max, возвращает псевдослучайное целое в диапазоне от 0 до getrandmax(). Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите rand(5, 15).

Предостережение

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функций random_int(), random_bytes(), или openssl_random_pseudo_bytes() вместо данной.

Замечание: На некоторых платформах (таких как Windows) getrandmax() всего лишь 32767. Чтобы расширить диапазон, используйте параметры min и max, или обратитесь к функции mt_rand().

Список параметров

min

Наименьшее значение, которое может быть возвращено (по умолчанию: 0)

max

Наибольшее значение, которое может быть возвращено (по умолчанию: getrandmax())

Возвращаемые значения

Псевдослучайное значение в диапазоне от min (или 0) до max (или getrandmax()).

Примеры

Пример #1 Пример использования rand()

<?php
echo rand() . "\n";
echo rand() . "\n";

echo rand(5, 15);
?>

Результатом выполнения данного примера будет что-то подобное:

7771
22264
11

Примечания

Внимание

Диапазон min - max не должен выходить за границы getrandmax(). То есть (max - min) <= getrandmax(). В противном случае, rand() может возвращать менее качественные случайные числа.

Смотрите также

  • srand() - Изменяет начальное число генератора псевдослучайных чисел
  • getrandmax() - Возвращает максимально возможное случайное число
  • mt_rand() - Генерирует случайное значение методом mt
  • random_int() - Генератор криптографически безопасных случайных целых чисел
  • random_bytes() - Генератор криптографически безопасных случайных байт
  • openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes


Округляет число типа float

  • « rand
  • sin »
  • PHP Manual
  • Математические функции
  • Округляет число типа float

round

(PHP 4, PHP 5, PHP 7)

round — Округляет число типа float

Описание

float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] )

Возвращает округлённое значение val с указанной точностью precision (количество цифр после запятой). precision может быть отрицательным или нулём (по умолчанию).

Замечание: PHP, по умолчанию, не может правильно обрабатывать строки типа "12,300.2". Более подробно читайте в разделе Преобразование строк в числа.

Список параметров

val

Значение для округления

precision

Количество десятичных знаков, до которых округлять

mode

Используйте одну из этих констант для задания способа округления.

Константа | Описание
PHP_ROUND_HALF_UP | Округляет val в большую сторону от нуля до precision десятичных знаков, если следующий знак находится посередине. Т.е. округляет 1.5 в 2 и -1.5 в -2.
PHP_ROUND_HALF_DOWN | Округляет val в меньшую сторону к нулю до precision десятичных знаков, если следующий знак находится посередине. Т.е. округляет 1.5 в 1 и -1.5 в -1.
PHP_ROUND_HALF_EVEN | Округляет val до precision десятичных знаков в сторону ближайшего четного знака.
PHP_ROUND_HALF_ODD | Округляет val до precision десятичных знаков в сторону ближайшего нечетного знака.

Возвращаемые значения

Округленное значение

Примеры

Пример #1 Пример использования round()

<?php
echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.05
echo round(5.055, 2);    // 5.06
?>

Пример #2 Примеры использования параметра mode

<?php
echo round(9.5, 0, PHP_ROUND_HALF_UP);   // 10
echo round(9.5, 0, PHP_ROUND_HALF_DOWN); // 9
echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10
echo round(9.5, 0, PHP_ROUND_HALF_ODD);  // 9

echo round(8.5, 0, PHP_ROUND_HALF_UP);   // 9
echo round(8.5, 0, PHP_ROUND_HALF_DOWN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_EVEN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_ODD);  // 9
?>

Пример #3 Примеры использования параметра mode с указанием точности

<?php
/* Использование PHP_ROUND_HALF_UP с точностью до 1 знака */
echo round( 1.55, 1, PHP_ROUND_HALF_UP);   //  1.6
echo round( 1.54, 1, PHP_ROUND_HALF_UP);   //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_UP);   // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_UP);   // -1.5

/* Использование PHP_ROUND_HALF_DOWN с точностью до 1 знака */
echo round( 1.55, 1, PHP_ROUND_HALF_DOWN); //  1.5
echo round( 1.54, 1, PHP_ROUND_HALF_DOWN); //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_DOWN); // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_DOWN); // -1.5

/* Использование PHP_ROUND_HALF_EVEN с точностью до 1 знака */
echo round( 1.55, 1, PHP_ROUND_HALF_EVEN); //  1.6
echo round( 1.54, 1, PHP_ROUND_HALF_EVEN); //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_EVEN); // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_EVEN); // -1.5

/* Использование PHP_ROUND_HALF_ODD с точностью до 1 знака */
echo round( 1.55, 1, PHP_ROUND_HALF_ODD);  //  1.5
echo round( 1.54, 1, PHP_ROUND_HALF_ODD);  //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_ODD);  // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_ODD);  // -1.5
?>

Список изменений

Версия | Описание
5.3.0 | Был добавлен параметр mode.
5.2.7 | Работа функции round() была изменена в соответствии со стандартом C99.

Смотрите также

  • ceil() - Округляет дробь в большую сторону
  • floor() - Округляет дробь в меньшую сторону
  • number_format() - Форматирует число с разделением групп


Синус

  • « round
  • sinh »
  • PHP Manual
  • Математические функции
  • Синус

sin

(PHP 4, PHP 5, PHP 7)

sin — Синус

Описание

float sin ( float $arg )

sin() возвращает синус параметра arg . Параметр arg задаётся в радианах.

Список параметров

arg

Значение в радианах

Возвращаемые значения

Синус угла arg

Примеры

Пример #1 Пример использования sin()

<?php

// Точность зависит от ваших настроек точности
echo sin(deg2rad(60));  //  0.866025403 ...
echo sin(60);           // -0.304810621 ...

?>

Смотрите также

  • asin() - Арксинус
  • sinh() - Гиперболический синус
  • cos() - Косинус
  • tan() - Тангенс
  • deg2rad() - Преобразует значение из градусов в радианы


Гиперболический синус

  • « sin
  • sqrt »
  • PHP Manual
  • Математические функции
  • Гиперболический синус

sinh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

sinh — Гиперболический синус

Описание

float sinh ( float $arg )

Возвращает гиперболический синус arg, определяемый как (exp(arg) - exp(-arg))/2.

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический синус arg

Смотрите также

  • sin() - Синус
  • asinh() - Гиперболический арксинус
  • cosh() - Гиперболический косинус
  • tanh() - Гиперболический тангенс


Квадратный корень

  • « sinh
  • srand »
  • PHP Manual
  • Математические функции
  • Квадратный корень

sqrt

(PHP 4, PHP 5, PHP 7)

sqrt — Квадратный корень

Описание

float sqrt ( float $arg )

Возвращает квадратный корень из arg.

Список параметров

arg

Аргумент для вычисления

Возвращаемые значения

Квадратный корень из arg или специальное значение NAN для отрицательных чисел.

Примеры

Пример #1 Пример использованияsqrt()

<?php
// Точность зависит от ваших настроек точности
echo sqrt(9); // 3
echo sqrt(10); // 3.16227766 ...
?>

Смотрите также

  • pow() - Возведение в степень


Изменяет начальное число генератора псевдослучайных чисел

  • « sqrt
  • tan »
  • PHP Manual
  • Математические функции
  • Изменяет начальное число генератора псевдослучайных чисел

srand

(PHP 4, PHP 5, PHP 7)

srand — Изменяет начальное число генератора псевдослучайных чисел

Описание

void srand ([ int $seed ] )

Устанавливает начальное число генератора случайных чисел равным seed или случайному числу, если seed не указан.

Замечание: Нет необходимости инициализировать генератор случайных чисел функциями srand() или mt_srand(), поскольку это происходит автоматически.

Список параметров

seed

Произвольное целочисленное(integer) начальное значение генератора

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования srand()

<?php
// рандомизировать микросекундами
function make_seed()
{
    list($usec, $sec) = explode(' ', microtime());
    return $sec + $usec * 1000000;
}
srand(make_seed());
$randval = rand();
?>

Смотрите также

  • rand() - Генерирует случайное число
  • getrandmax() - Возвращает максимально возможное случайное число
  • mt_srand() - Переинициализирует генератор случайных чисел mt


Тангенс

  • « srand
  • tanh »
  • PHP Manual
  • Математические функции
  • Тангенс

tan

(PHP 4, PHP 5, PHP 7)

tan — Тангенс

Описание

float tan ( float $arg )

tan() возвращает тангенс параметра arg. Параметр arg задаётся в радианах.

Список параметров

arg

Значение в радианах

Возвращаемые значения

Тангенс угла arg

Примеры

Пример #1 Пример использования tan()

<?php

echo tan(M_PI_4); // 1

?>

Смотрите также

  • atan() - Арктангенс
  • atan2() - Арктангенс двух переменных
  • sin() - Синус
  • cos() - Косинус
  • tanh() - Гиперболический тангенс
  • deg2rad() - Преобразует значение из градусов в радианы


Гиперболический тангенс

  • « tan
  • Статистика »
  • PHP Manual
  • Математические функции
  • Гиперболический тангенс

tanh

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

tanh — Гиперболический тангенс

Описание

float tanh ( float $arg )

Возвращает гиперболический тангенс arg, определяемый как sinh(arg)/cosh(arg).

Список параметров

arg

Входное значение

Возвращаемые значения

Гиперболический тангенс arg

Смотрите также

  • tan() - Тангенс
  • atanh() - Гиперболический арктангенс
  • sinh() - Гиперболический синус
  • cosh() - Гиперболический косинус


Статистика

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Статистические Функции
    • stats_absolute_deviation — Возвращает абсолютное отклонение массива значений
    • stats_cdf_beta — CDF function for BETA Distribution. Calculates any one parameter of the beta distribution given values for the others.
    • stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others.
    • stats_cdf_cauchy — Не документирована
    • stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others.
    • stats_cdf_exponential — Не документирована
    • stats_cdf_f — Calculates any one parameter of the F distribution given values for the others.
    • stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others.
    • stats_cdf_laplace — Не документирована
    • stats_cdf_logistic — Не документирована
    • stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others.
    • stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others.
    • stats_cdf_noncentral_f — Calculates any one parameter of the Non-central F distribution given values for the others.
    • stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others.
    • stats_cdf_t — Calculates any one parameter of the T distribution given values for the others.
    • stats_cdf_uniform — Не документирована
    • stats_cdf_weibull — Не документирована
    • stats_covariance — Вычисляет ковариацию двух наборов данных
    • stats_den_uniform — Не документирована
    • 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_negative_binomial — Не документирована
    • stats_dens_normal — Не документирована
    • stats_dens_pmf_binomial — Не документирована
    • stats_dens_pmf_hypergeometric — Описание
    • stats_dens_pmf_poisson — Не документирована
    • stats_dens_t — Не документирована
    • stats_dens_weibull — Не документирована
    • stats_harmonic_mean — Возвращает среднее гармоническое массива значений
    • stats_kurtosis — Вычисляет эксцесс данных в массиве
    • stats_rand_gen_beta — Generates beta random deviate
    • stats_rand_gen_chisquare — Generates random deviate from the distribution of a chisquare with "df" degrees of freedom random variable.
    • stats_rand_gen_exponential — Generates a single random deviate from an exponential distribution with mean "av"
    • stats_rand_gen_f — Generates a random deviate
    • stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)
    • stats_rand_gen_gamma — Generates random deviates from a gamma distribution
    • stats_rand_gen_ibinomial_negative — Generates a single random deviate from a negative binomial distribution. Arguments : n - the number of trials in the negative binomial distribution from which a random deviate is to be generated (n > 0), p - the probability of an event (0 < p < 1)).
    • stats_rand_gen_ibinomial — Generates a single random deviate from a binomial distribution whose number of trials is "n" (n >= 0) and whose probability of an event in each trial is "pp" ([0;1]). Method : algorithm BTPE
    • stats_rand_gen_int — Генерирует случайное число в диапазоне от 1 до 2147483562
    • stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution with mean "mu" (mu >= 0.0).
    • stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
    • stats_rand_gen_noncenral_chisquare — Generates random deviate from the distribution of a noncentral chisquare with "df" degrees of freedom and noncentrality parameter "xnonc". d must be >= 1.0, xnonc must >= 0.0
    • stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F (variance ratio) distribution with "dfn" degrees of freedom in the numerator, and "dfd" degrees of freedom in the denominator, and noncentrality parameter "xnonc". Method : directly generates ratio of noncentral numerator chisquare variate to central denominator chisquare variate.
    • stats_rand_gen_noncentral_t — Generates a single random deviate from a noncentral T distribution
    • stats_rand_gen_normal — Generates a single random deviate from a normal distribution with mean, av, and standard deviation, sd (sd >= 0). Method : Renames SNORM from TOMS as slightly modified by BWB to use RANF instead of SUNIF.
    • stats_rand_gen_t — Generates a single random deviate from a T distribution
    • stats_rand_get_seeds — Не документирована
    • stats_rand_phrase_to_seeds — generate two seeds for the RGN random number generator
    • stats_rand_ranf — Returns a random floating point number from a uniform distribution over 0 - 1 (endpoints of this interval are not returned) using the current generator
    • stats_rand_setall — Не документирована
    • stats_skew — Вычисляет асимметрию данных в массиве
    • stats_standard_deviation — Возвращает стандартное отклонение
    • stats_stat_binomial_coef — Не документирована
    • stats_stat_correlation — Не документирована
    • stats_stat_gennch — Не документирована
    • stats_stat_independent_t — Не документирована
    • stats_stat_innerproduct — Описание
    • stats_stat_noncentral_t — Calculates any one parameter of the noncentral t distribution give values for the others.
    • stats_stat_paired_t — Не документирована
    • stats_stat_percentile — Не документирована
    • stats_stat_powersum — Не документирована
    • stats_variance — Возвращает дисперсию генеральной совокупности


Введение

Это статистическое расширение. Оно содержит несколько десятков функций, полезных для статистических расчетов. Это обертка над двумя научными библиотеками, а именно - DCDFLIB (библиотека подпрограмм на C для кумулятивных функций распределения, обратных, и других характеристик) от B. Brown & J. Lavato и RANDLIB от Barry Brown, James Lavato & Kathy Russell. Включает кумулятивные функции распределения(CD) и функции плотности вероятности(PD).


Требования

Никаких внешних библиотек не требуется. Используемые библиотеки идут в комплекте с этим расширением.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/stats.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Типы ресурсов
  • Статистические Функции »
  • PHP Manual
  • Статистика
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Статистические Функции

Содержание

  • stats_absolute_deviation — Возвращает абсолютное отклонение массива значений
  • stats_cdf_beta — CDF function for BETA Distribution. Calculates any one parameter of the beta distribution given values for the others.
  • stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others.
  • stats_cdf_cauchy — Не документирована
  • stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others.
  • stats_cdf_exponential — Не документирована
  • stats_cdf_f — Calculates any one parameter of the F distribution given values for the others.
  • stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others.
  • stats_cdf_laplace — Не документирована
  • stats_cdf_logistic — Не документирована
  • stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others.
  • stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others.
  • stats_cdf_noncentral_f — Calculates any one parameter of the Non-central F distribution given values for the others.
  • stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others.
  • stats_cdf_t — Calculates any one parameter of the T distribution given values for the others.
  • stats_cdf_uniform — Не документирована
  • stats_cdf_weibull — Не документирована
  • stats_covariance — Вычисляет ковариацию двух наборов данных
  • stats_den_uniform — Не документирована
  • 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_negative_binomial — Не документирована
  • stats_dens_normal — Не документирована
  • stats_dens_pmf_binomial — Не документирована
  • stats_dens_pmf_hypergeometric — Описание
  • stats_dens_pmf_poisson — Не документирована
  • stats_dens_t — Не документирована
  • stats_dens_weibull — Не документирована
  • stats_harmonic_mean — Возвращает среднее гармоническое массива значений
  • stats_kurtosis — Вычисляет эксцесс данных в массиве
  • stats_rand_gen_beta — Generates beta random deviate
  • stats_rand_gen_chisquare — Generates random deviate from the distribution of a chisquare with "df" degrees of freedom random variable.
  • stats_rand_gen_exponential — Generates a single random deviate from an exponential distribution with mean "av"
  • stats_rand_gen_f — Generates a random deviate
  • stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)
  • stats_rand_gen_gamma — Generates random deviates from a gamma distribution
  • stats_rand_gen_ibinomial_negative — Generates a single random deviate from a negative binomial distribution. Arguments : n - the number of trials in the negative binomial distribution from which a random deviate is to be generated (n > 0), p - the probability of an event (0 < p < 1)).
  • stats_rand_gen_ibinomial — Generates a single random deviate from a binomial distribution whose number of trials is "n" (n >= 0) and whose probability of an event in each trial is "pp" ([0;1]). Method : algorithm BTPE
  • stats_rand_gen_int — Генерирует случайное число в диапазоне от 1 до 2147483562
  • stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution with mean "mu" (mu >= 0.0).
  • stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)
  • stats_rand_gen_noncenral_chisquare — Generates random deviate from the distribution of a noncentral chisquare with "df" degrees of freedom and noncentrality parameter "xnonc". d must be >= 1.0, xnonc must >= 0.0
  • stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F (variance ratio) distribution with "dfn" degrees of freedom in the numerator, and "dfd" degrees of freedom in the denominator, and noncentrality parameter "xnonc". Method : directly generates ratio of noncentral numerator chisquare variate to central denominator chisquare variate.
  • stats_rand_gen_noncentral_t — Generates a single random deviate from a noncentral T distribution
  • stats_rand_gen_normal — Generates a single random deviate from a normal distribution with mean, av, and standard deviation, sd (sd >= 0). Method : Renames SNORM from TOMS as slightly modified by BWB to use RANF instead of SUNIF.
  • stats_rand_gen_t — Generates a single random deviate from a T distribution
  • stats_rand_get_seeds — Не документирована
  • stats_rand_phrase_to_seeds — generate two seeds for the RGN random number generator
  • stats_rand_ranf — Returns a random floating point number from a uniform distribution over 0 - 1 (endpoints of this interval are not returned) using the current generator
  • stats_rand_setall — Не документирована
  • stats_skew — Вычисляет асимметрию данных в массиве
  • stats_standard_deviation — Возвращает стандартное отклонение
  • stats_stat_binomial_coef — Не документирована
  • stats_stat_correlation — Не документирована
  • stats_stat_gennch — Не документирована
  • stats_stat_independent_t — Не документирована
  • stats_stat_innerproduct — Описание
  • stats_stat_noncentral_t — Calculates any one parameter of the noncentral t distribution give values for the others.
  • stats_stat_paired_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 — Возвращает абсолютное отклонение массива значений

Описание

float stats_absolute_deviation ( array $a )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

a

Возвращаемые значения


CDF function for BETA Distribution. Calculates any one parameter of the beta distribution given values for the others.

  • « stats_absolute_deviation
  • stats_cdf_binomial »
  • PHP Manual
  • Статистические Функции
  • CDF function for BETA Distribution. Calculates any one parameter of the beta distribution given values for the others.

stats_cdf_beta

(PECL stats >= 1.0.0)

stats_cdf_beta — CDF function for BETA Distribution. Calculates any one parameter of the beta distribution given values for the others.

Описание

float stats_cdf_beta ( float $par1 , float $par2 , float $par3 , int $which )

Method Cumulative distribution function (P) is calculated directly by code associated with the following reference. DiDinato, A. R. and Morris, A. H. Algorithm 708: Significant Digit Computation of the Incomplete Beta Function Ratios. ACM Trans. Math. Softw. 18 (1993), 360-373. Computation of other parameters involve a search for a value that produces the desired value of P. The search relies on the monotonicity of P with the other parameter. Note The beta density is proportional to t^(A-1) * (1-t)^(B-1) Arguments P -- The integral from 0 to X of the chi-square distribution. Input range: [0, 1]. Q -- 1-P. Input range: [0, 1]. P + Q = 1.0. X -- Upper limit of integration of beta density. Input range: [0,1]. Search range: [0,1] Y -- 1-X. Input range: [0,1]. Search range: [0,1] X + Y = 1.0. A -- The first parameter of the beta density. Input range: (0, +infinity). Search range: [1D-100,1D100] B -- The second parameter of the beta density. Input range: (0, +infinity). Search range: [1D-100,1D100] STATUS -- 0 if calculation completed correctly -I if input parameter number I is out of range 1 if answer appears to be lower than lowest search bound 2 if answer appears to be higher than greatest search bound 3 if P + Q .ne. 1 4 if X + Y .ne. 1 BOUND -- Undefined if STATUS is 0 Bound exceeded by parameter number I if STATUS is negative. Lower search bound if STATUS is 1. Upper search bound if STATUS is 2.

Список параметров

par1

par2

par3

which

Integer indicating which of the next four argument values is to be calculated from the others. Legal range: 1..4 which = 1 : Calculate P and Q from X,Y,A and B which = 2 : Calculate X and Y from P,Q,A and B which = 3 : Calculate A from P,Q,X,Y and B which = 4 : Calculate B from P,Q,X,Y and A

Возвращаемые значения

STATUS -- 0 if calculation completed correctly -I if input parameter number I is out of range 1 if answer appears to be lower than lowest search bound 2 if answer appears to be higher than greatest search bound 3 if P + Q .ne. 1 4 if X + Y .ne. 1


Calculates any one parameter of the binomial distribution given values for the others.

  • « stats_cdf_beta
  • stats_cdf_cauchy »
  • PHP Manual
  • Статистические Функции
  • Calculates any one parameter of the binomial distribution given values for the others.

stats_cdf_binomial

(PECL stats >= 1.0.0)

stats_cdf_binomial — Calculates any one parameter of the binomial distribution given values for the others.

Описание

float stats_cdf_binomial ( float $par1 , float $par2 , float $par3 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

which

Возвращаемые значения


Не документирована

  • « stats_cdf_binomial
  • stats_cdf_chisquare »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_cdf_cauchy

(PECL stats >= 1.0.0)

stats_cdf_cauchy — Не документирована

Описание

float stats_cdf_cauchy ( float $par1 , float $par2 , float $par3 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

which

Возвращаемые значения


Calculates any one parameter of the chi-square distribution given values for the others.

  • « stats_cdf_cauchy
  • stats_cdf_exponential »
  • PHP Manual
  • Статистические Функции
  • Calculates any one parameter of the chi-square distribution given values for the others.

stats_cdf_chisquare

(PECL stats >= 1.0.0)

stats_cdf_chisquare — Calculates any one parameter of the chi-square distribution given values for the others.

Описание

float stats_cdf_chisquare ( float $par1 , float $par2 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

which

Возвращаемые значения


Не документирована

  • « stats_cdf_chisquare
  • stats_cdf_f »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_cdf_exponential

(PECL stats >= 1.0.0)

stats_cdf_exponential — Не документирована

Описание

float stats_cdf_exponential ( float $par1 , float $par2 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

which

Возвращаемые значения


Calculates any one parameter of the F distribution given values for the others.

  • « stats_cdf_exponential
  • stats_cdf_gamma »
  • PHP Manual
  • Статистические Функции
  • Calculates any one parameter of the F distribution given values for the others.

stats_cdf_f

(PECL stats >= 1.0.0)

stats_cdf_f — Calculates any one parameter of the F distribution given values for the others.

Описание

float stats_cdf_f ( float $par1 , float $par2 , float $par3 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

which

Возвращаемые значения


Calculates any one parameter of the gamma distribution given values for the others.

  • « stats_cdf_f
  • stats_cdf_laplace »
  • PHP Manual
  • Статистические Функции
  • Calculates any one parameter of the gamma distribution given values for the others.

stats_cdf_gamma

(PECL stats >= 1.0.0)

stats_cdf_gamma — Calculates any one parameter of the gamma distribution given values for the others.

Описание

float stats_cdf_gamma ( float $par1 , float $par2 , float $par3 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

which

Возвращаемые значения


Не документирована

  • « stats_cdf_gamma
  • stats_cdf_logistic »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_cdf_laplace

(PECL stats >= 1.0.0)

stats_cdf_laplace — Не документирована

Описание

float stats_cdf_laplace ( float $par1 , float $par2 , float $par3 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

which

Возвращаемые значения


Не документирована

  • « stats_cdf_laplace
  • stats_cdf_negative_binomial »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_cdf_logistic

(PECL stats >= 1.0.0)

stats_cdf_logistic — Не документирована

Описание

float stats_cdf_logistic ( float $par1 , float $par2 , float $par3 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

which

Возвращаемые значения


Calculates any one parameter of the negative binomial distribution given values for the others.

  • « stats_cdf_logistic
  • stats_cdf_noncentral_chisquare »
  • PHP Manual
  • Статистические Функции
  • Calculates any one parameter of the negative binomial distribution given values for the others.

stats_cdf_negative_binomial

(PECL stats >= 1.0.0)

stats_cdf_negative_binomial — Calculates any one parameter of the negative binomial distribution given values for the others.

Описание

float stats_cdf_negative_binomial ( float $par1 , float $par2 , float $par3 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

which

Возвращаемые значения


Calculates any one parameter of the non-central chi-square distribution given values for the others.

  • « stats_cdf_negative_binomial
  • stats_cdf_noncentral_f »
  • PHP Manual
  • Статистические Функции
  • Calculates any one parameter of the non-central chi-square distribution given values for the others.

stats_cdf_noncentral_chisquare

(PECL stats >= 1.0.0)

stats_cdf_noncentral_chisquare — Calculates any one parameter of the non-central chi-square distribution given values for the others.

Описание

float stats_cdf_noncentral_chisquare ( float $par1 , float $par2 , float $par3 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

which

Возвращаемые значения


Calculates any one parameter of the Non-central F distribution given values for the others.

  • « stats_cdf_noncentral_chisquare
  • stats_cdf_poisson »
  • PHP Manual
  • Статистические Функции
  • Calculates any one parameter of the Non-central F distribution given values for the others.

stats_cdf_noncentral_f

(PECL stats >= 1.0.0)

stats_cdf_noncentral_f — Calculates any one parameter of the Non-central F distribution given values for the others.

Описание

float stats_cdf_noncentral_f ( float $par1 , float $par2 , float $par3 , float $par4 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

par4

which

Возвращаемые значения


Calculates any one parameter of the Poisson distribution given values for the others.

  • « stats_cdf_noncentral_f
  • stats_cdf_t »
  • PHP Manual
  • Статистические Функции
  • Calculates any one parameter of the Poisson distribution given values for the others.

stats_cdf_poisson

(PECL stats >= 1.0.0)

stats_cdf_poisson — Calculates any one parameter of the Poisson distribution given values for the others.

Описание

float stats_cdf_poisson ( float $par1 , float $par2 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

which

Возвращаемые значения


Calculates any one parameter of the T distribution given values for the others.

  • « stats_cdf_poisson
  • stats_cdf_uniform »
  • PHP Manual
  • Статистические Функции
  • Calculates any one parameter of the T distribution given values for the others.

stats_cdf_t

(PECL stats >= 1.0.0)

stats_cdf_t — Calculates any one parameter of the T distribution given values for the others.

Описание

float stats_cdf_t ( float $par1 , float $par2 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

which

Возвращаемые значения


Не документирована

  • « stats_cdf_t
  • stats_cdf_weibull »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_cdf_uniform

(PECL stats >= 1.0.0)

stats_cdf_uniform — Не документирована

Описание

float stats_cdf_uniform ( float $par1 , float $par2 , float $par3 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

which

Возвращаемые значения


Не документирована

  • « stats_cdf_uniform
  • stats_covariance »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_cdf_weibull

(PECL stats >= 1.0.0)

stats_cdf_weibull — Не документирована

Описание

float stats_cdf_weibull ( float $par1 , float $par2 , float $par3 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

which

Возвращаемые значения


Вычисляет ковариацию двух наборов данных

  • « stats_cdf_weibull
  • stats_den_uniform »
  • PHP Manual
  • Статистические Функции
  • Вычисляет ковариацию двух наборов данных

stats_covariance

(PECL stats >= 1.0.0)

stats_covariance — Вычисляет ковариацию двух наборов данных

Описание

float stats_covariance ( array $a , array $b )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

a

b

Возвращаемые значения


Не документирована

  • « stats_covariance
  • stats_dens_beta »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_den_uniform

(PECL stats >= 1.0.0)

stats_den_uniform — Не документирована

Описание

float stats_den_uniform ( float $x , float $a , float $b )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

a

b

Возвращаемые значения


Не документирована

  • « stats_den_uniform
  • stats_dens_cauchy »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_beta

(PECL stats >= 1.0.0)

stats_dens_beta — Не документирована

Описание

float stats_dens_beta ( float $x , float $a , float $b )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

a

b

Возвращаемые значения


Не документирована

  • « stats_dens_beta
  • stats_dens_chisquare »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_cauchy

(PECL stats >= 1.0.0)

stats_dens_cauchy — Не документирована

Описание

float stats_dens_cauchy ( float $x , float $ave , float $stdev )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

ave

stdev

Возвращаемые значения


Не документирована

  • « stats_dens_cauchy
  • stats_dens_exponential »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_chisquare

(PECL stats >= 1.0.0)

stats_dens_chisquare — Не документирована

Описание

float stats_dens_chisquare ( float $x , float $dfr )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

dfr

Возвращаемые значения


Не документирована

  • « stats_dens_chisquare
  • stats_dens_f »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_exponential

(PECL stats >= 1.0.0)

stats_dens_exponential — Не документирована

Описание

float stats_dens_exponential ( float $x , float $scale )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

scale

Возвращаемые значения


Описание

  • « stats_dens_exponential
  • stats_dens_gamma »
  • PHP Manual
  • Статистические Функции
  • Описание

stats_dens_f

(PECL stats >= 1.0.0)

stats_dens_f —

Описание

float stats_dens_f ( float $x , float $dfr1 , float $dfr2 )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

dfr1

dfr2

Возвращаемые значения


Не документирована

  • « stats_dens_f
  • stats_dens_laplace »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_gamma

(PECL stats >= 1.0.0)

stats_dens_gamma — Не документирована

Описание

float stats_dens_gamma ( float $x , float $shape , float $scale )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

shape

scale

Возвращаемые значения


Не документирована

  • « stats_dens_gamma
  • stats_dens_logistic »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_laplace

(PECL stats >= 1.0.0)

stats_dens_laplace — Не документирована

Описание

float stats_dens_laplace ( float $x , float $ave , float $stdev )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

ave

stdev

Возвращаемые значения


Не документирована

  • « stats_dens_laplace
  • stats_dens_negative_binomial »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_logistic

(PECL stats >= 1.0.0)

stats_dens_logistic — Не документирована

Описание

float stats_dens_logistic ( float $x , float $ave , float $stdev )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

ave

stdev

Возвращаемые значения


Не документирована

  • « stats_dens_logistic
  • stats_dens_normal »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_negative_binomial

(PECL stats >= 1.0.0)

stats_dens_negative_binomial — Не документирована

Описание

float stats_dens_negative_binomial ( float $x , float $n , float $pi )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

n

pi

Возвращаемые значения


Не документирована

  • « stats_dens_negative_binomial
  • stats_dens_pmf_binomial »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_normal

(PECL stats >= 1.0.0)

stats_dens_normal — Не документирована

Описание

float stats_dens_normal ( float $x , float $ave , float $stdev )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

ave

stdev

Возвращаемые значения


Не документирована

  • « stats_dens_normal
  • stats_dens_pmf_hypergeometric »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_pmf_binomial

(PECL stats >= 1.0.0)

stats_dens_pmf_binomial — Не документирована

Описание

float stats_dens_pmf_binomial ( float $x , float $n , float $pi )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

n

pi

Возвращаемые значения


Описание

  • « stats_dens_pmf_binomial
  • stats_dens_pmf_poisson »
  • PHP Manual
  • Статистические Функции
  • Описание

stats_dens_pmf_hypergeometric

(PECL stats >= 1.0.0)

stats_dens_pmf_hypergeometric —

Описание

float stats_dens_pmf_hypergeometric ( float $n1 , float $n2 , float $N1 , float $N2 )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

n1

n2

N1

N2

Возвращаемые значения


Не документирована

  • « stats_dens_pmf_hypergeometric
  • stats_dens_t »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_pmf_poisson

(PECL stats >= 1.0.0)

stats_dens_pmf_poisson — Не документирована

Описание

float stats_dens_pmf_poisson ( float $x , float $lb )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

lb

Возвращаемые значения


Не документирована

  • « stats_dens_pmf_poisson
  • stats_dens_weibull »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_t

(PECL stats >= 1.0.0)

stats_dens_t — Не документирована

Описание

float stats_dens_t ( float $x , float $dfr )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

dfr

Возвращаемые значения


Не документирована

  • « stats_dens_t
  • stats_harmonic_mean »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_dens_weibull

(PECL stats >= 1.0.0)

stats_dens_weibull — Не документирована

Описание

float stats_dens_weibull ( float $x , float $a , float $b )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

a

b

Возвращаемые значения


Возвращает среднее гармоническое массива значений

  • « stats_dens_weibull
  • stats_kurtosis »
  • PHP Manual
  • Статистические Функции
  • Возвращает среднее гармоническое массива значений

stats_harmonic_mean

(PECL stats >= 1.0.0)

stats_harmonic_mean — Возвращает среднее гармоническое массива значений

Описание

number stats_harmonic_mean ( array $a )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

a

Возвращаемые значения


Вычисляет эксцесс данных в массиве

  • « stats_harmonic_mean
  • stats_rand_gen_beta »
  • PHP Manual
  • Статистические Функции
  • Вычисляет эксцесс данных в массиве

stats_kurtosis

(PECL stats >= 1.0.0)

stats_kurtosis — Вычисляет эксцесс данных в массиве

Описание

float stats_kurtosis ( array $a )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

a

Возвращаемые значения


Generates beta random deviate

  • « stats_kurtosis
  • stats_rand_gen_chisquare »
  • PHP Manual
  • Статистические Функции
  • Generates beta random deviate

stats_rand_gen_beta

(PECL stats >= 1.0.0)

stats_rand_gen_beta — Generates beta random deviate

Описание

float stats_rand_gen_beta ( float $a , float $b )

Returns a random deviate from the beta distribution with parameters A and B. The density of the beta is x^(a-1) * (1-x)^(b-1) / B(a,b) for 0 < x <. Method R. C. H. Cheng.

Список параметров

a

b

Возвращаемые значения


Generates random deviate from the distribution of a chisquare with "df" degrees of freedom random variable.

  • « stats_rand_gen_beta
  • stats_rand_gen_exponential »
  • PHP Manual
  • Статистические Функции
  • Generates random deviate from the distribution of a chisquare with "df" degrees of freedom random variable.

stats_rand_gen_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_chisquare — Generates random deviate from the distribution of a chisquare with "df" degrees of freedom random variable.

Описание

float stats_rand_gen_chisquare ( float $df )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

df

Возвращаемые значения


Generates a single random deviate from an exponential distribution with mean "av"

  • « stats_rand_gen_chisquare
  • stats_rand_gen_f »
  • PHP Manual
  • Статистические Функции
  • Generates a single random deviate from an exponential distribution with mean "av"

stats_rand_gen_exponential

(PECL stats >= 1.0.0)

stats_rand_gen_exponential — Generates a single random deviate from an exponential distribution with mean "av"

Описание

float stats_rand_gen_exponential ( float $av )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

av

Возвращаемые значения


Generates a random deviate

  • « stats_rand_gen_exponential
  • stats_rand_gen_funiform »
  • PHP Manual
  • Статистические Функции
  • Generates a random deviate

stats_rand_gen_f

(PECL stats >= 1.0.0)

stats_rand_gen_f — Generates a random deviate

Описание

float stats_rand_gen_f ( float $dfn , float $dfd )

Generates a random deviate from the F (variance ratio) distribution with "dfn" degrees of freedom in the numerator and "dfd" degrees of freedom in the denominator. Method : directly generates ratio of chisquare variates.

Список параметров

dfn

dfd

Возвращаемые значения


Generates uniform float between low (exclusive) and high (exclusive)

  • « stats_rand_gen_f
  • stats_rand_gen_gamma »
  • PHP Manual
  • Статистические Функции
  • Generates uniform float between low (exclusive) and high (exclusive)

stats_rand_gen_funiform

(PECL stats >= 1.0.0)

stats_rand_gen_funiform — Generates uniform float between low (exclusive) and high (exclusive)

Описание

float stats_rand_gen_funiform ( float $low , float $high )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

low

high

Возвращаемые значения


Generates random deviates from a gamma distribution

  • « stats_rand_gen_funiform
  • stats_rand_gen_ibinomial_negative »
  • PHP Manual
  • Статистические Функции
  • Generates random deviates from a gamma distribution

stats_rand_gen_gamma

(PECL stats >= 1.0.0)

stats_rand_gen_gamma — Generates random deviates from a gamma distribution

Описание

float stats_rand_gen_gamma ( float $a , float $r )

Generates random deviates from the gamma distribution whose density is (A**R)/Gamma(R) * X**(R-1) * Exp(-A*X).

Список параметров

a

location parameter of Gamma distribution (a > 0).

r

shape parameter of Gamma distribution (r > 0).

Возвращаемые значения


Generates a single random deviate from a negative binomial distribution. Arguments : n - the number of trials in the negative binomial distribution from which a random deviate is to be generated (n > 0), p - the probability of an event (0 < p < 1)).

  • « stats_rand_gen_gamma
  • stats_rand_gen_ibinomial »
  • PHP Manual
  • Статистические Функции
  • Generates a single random deviate from a negative binomial distribution. Arguments : n - the number of trials in the negative binomial distribution from which a random deviate is to be generated (n > 0), p - the probability of an event (0 < p < 1)).

stats_rand_gen_ibinomial_negative

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial_negative — Generates a single random deviate from a negative binomial distribution. Arguments : n - the number of trials in the negative binomial distribution from which a random deviate is to be generated (n > 0), p - the probability of an event (0 < p < 1)).

Описание

int stats_rand_gen_ibinomial_negative ( int $n , float $p )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

n

p

Возвращаемые значения


Generates a single random deviate from a binomial distribution whose number of trials is "n" (n >= 0) and whose probability of an event in each trial is "pp" ([0;1]). Method : algorithm BTPE

  • « stats_rand_gen_ibinomial_negative
  • stats_rand_gen_int »
  • PHP Manual
  • Статистические Функции
  • Generates a single random deviate from a binomial distribution whose number of trials is "n" (n >= 0) and whose probability of an event in each trial is "pp" ([0;1]). Method : algorithm BTPE

stats_rand_gen_ibinomial

(PECL stats >= 1.0.0)

stats_rand_gen_ibinomial — Generates a single random deviate from a binomial distribution whose number of trials is "n" (n >= 0) and whose probability of an event in each trial is "pp" ([0;1]). Method : algorithm BTPE

Описание

int stats_rand_gen_ibinomial ( int $n , float $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

Описание

int stats_rand_gen_int ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения


Generates a single random deviate from a Poisson distribution with mean "mu" (mu >= 0.0).

  • « stats_rand_gen_int
  • stats_rand_gen_iuniform »
  • PHP Manual
  • Статистические Функции
  • Generates a single random deviate from a Poisson distribution with mean "mu" (mu >= 0.0).

stats_rand_gen_ipoisson

(PECL stats >= 1.0.0)

stats_rand_gen_ipoisson — Generates a single random deviate from a Poisson distribution with mean "mu" (mu >= 0.0).

Описание

int stats_rand_gen_ipoisson ( float $mu )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mu

Возвращаемые значения


Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

  • « stats_rand_gen_ipoisson
  • stats_rand_gen_noncenral_chisquare »
  • PHP Manual
  • Статистические Функции
  • Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

stats_rand_gen_iuniform

(PECL stats >= 1.0.0)

stats_rand_gen_iuniform — Generates integer uniformly distributed between LOW (inclusive) and HIGH (inclusive)

Описание

int stats_rand_gen_iuniform ( int $low , int $high )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

low

high

Возвращаемые значения


Generates random deviate from the distribution of a noncentral chisquare with "df" degrees of freedom and noncentrality parameter "xnonc". d must be >= 1.0, xnonc must >= 0.0

  • « stats_rand_gen_iuniform
  • stats_rand_gen_noncentral_f »
  • PHP Manual
  • Статистические Функции
  • Generates random deviate from the distribution of a noncentral chisquare with "df" degrees of freedom and noncentrality parameter "xnonc". d must be >= 1.0, xnonc must >= 0.0

stats_rand_gen_noncenral_chisquare

(PECL stats >= 1.0.0)

stats_rand_gen_noncenral_chisquare — Generates random deviate from the distribution of a noncentral chisquare with "df" degrees of freedom and noncentrality parameter "xnonc". d must be >= 1.0, xnonc must >= 0.0

Описание

float stats_rand_gen_noncenral_chisquare ( float $df , float $xnonc )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

df

xnonc

Возвращаемые значения


Generates a random deviate from the noncentral F (variance ratio) distribution with "dfn" degrees of freedom in the numerator, and "dfd" degrees of freedom in the denominator, and noncentrality parameter "xnonc". Method : directly generates ratio of noncentral numerator chisquare variate to central 

  • « stats_rand_gen_noncenral_chisquare
  • stats_rand_gen_noncentral_t »
  • PHP Manual
  • Статистические Функции
  • Generates a random deviate from the noncentral F (variance ratio) distribution with "dfn" degrees of freedom in the numerator, and "dfd" degrees of freedom in the denominator, and noncentrality parameter "xnonc". Method : directly generates ratio of noncentral numerator chisquare variate to central denominator chisquare variate.

stats_rand_gen_noncentral_f

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_f — Generates a random deviate from the noncentral F (variance ratio) distribution with "dfn" degrees of freedom in the numerator, and "dfd" degrees of freedom in the denominator, and noncentrality parameter "xnonc". Method : directly generates ratio of noncentral numerator chisquare variate to central denominator chisquare variate.

Описание

float stats_rand_gen_noncentral_f ( float $dfn , float $dfd , float $xnonc )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

dfn

dfd

xnonc

Возвращаемые значения


Generates a single random deviate from a noncentral T distribution

  • « stats_rand_gen_noncentral_f
  • stats_rand_gen_normal »
  • PHP Manual
  • Статистические Функции
  • Generates a single random deviate from a noncentral T distribution

stats_rand_gen_noncentral_t

(PECL stats >= 1.0.0)

stats_rand_gen_noncentral_t — Generates a single random deviate from a noncentral T distribution

Описание

float stats_rand_gen_noncentral_t ( float $df , float $xnonc )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

df

xnonc

Возвращаемые значения


Generates a single random deviate from a normal distribution with mean, av, and standard deviation, sd (sd >= 0). Method : Renames SNORM from TOMS as slightly modified by BWB to use RANF instead of SUNIF.

  • « stats_rand_gen_noncentral_t
  • stats_rand_gen_t »
  • PHP Manual
  • Статистические Функции
  • Generates a single random deviate from a normal distribution with mean, av, and standard deviation, sd (sd >= 0). Method : Renames SNORM from TOMS as slightly modified by BWB to use RANF instead of SUNIF.

stats_rand_gen_normal

(PECL stats >= 1.0.0)

stats_rand_gen_normal — Generates a single random deviate from a normal distribution with mean, av, and standard deviation, sd (sd >= 0). Method : Renames SNORM from TOMS as slightly modified by BWB to use RANF instead of SUNIF.

Описание

float stats_rand_gen_normal ( float $av , float $sd )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

av

sd

Возвращаемые значения


Generates a single random deviate from a T distribution

  • « stats_rand_gen_normal
  • stats_rand_get_seeds »
  • PHP Manual
  • Статистические Функции
  • Generates a single random deviate from a T distribution

stats_rand_gen_t

(PECL stats >= 1.0.0)

stats_rand_gen_t — Generates a single random deviate from a T distribution

Описание

float stats_rand_gen_t ( float $df )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

df

Возвращаемые значения


Не документирована

  • « stats_rand_gen_t
  • stats_rand_phrase_to_seeds »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_rand_get_seeds

(PECL stats >= 1.0.0)

stats_rand_get_seeds — Не документирована

Описание

array stats_rand_get_seeds ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения


generate two seeds for the RGN random number generator

  • « stats_rand_get_seeds
  • stats_rand_ranf »
  • PHP Manual
  • Статистические Функции
  • generate two seeds for the RGN random number generator

stats_rand_phrase_to_seeds

(PECL stats >= 1.0.0)

stats_rand_phrase_to_seeds — generate two seeds for the RGN random number generator

Описание

array stats_rand_phrase_to_seeds ( string $phrase )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

phrase

Возвращаемые значения


Returns a random floating point number from a uniform distribution over 0 - 1 (endpoints of this interval are not returned) using the current generator

  • « stats_rand_phrase_to_seeds
  • stats_rand_setall »
  • PHP Manual
  • Статистические Функции
  • Returns a random floating point number from a uniform distribution over 0 - 1 (endpoints of this interval are not returned) using the current generator

stats_rand_ranf

(PECL stats >= 1.0.0)

stats_rand_ranf — Returns a random floating point number from a uniform distribution over 0 - 1 (endpoints of this interval are not returned) using the current generator

Описание

float stats_rand_ranf ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

Возвращаемые значения


Не документирована

  • « stats_rand_ranf
  • stats_skew »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_rand_setall

(PECL stats >= 1.0.0)

stats_rand_setall — Не документирована

Описание

void stats_rand_setall ( int $iseed1 , int $iseed2 )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iseed1

iseed2

Возвращаемые значения


Вычисляет асимметрию данных в массиве

  • « stats_rand_setall
  • stats_standard_deviation »
  • PHP Manual
  • Статистические Функции
  • Вычисляет асимметрию данных в массиве

stats_skew

(PECL stats >= 1.0.0)

stats_skew — Вычисляет асимметрию данных в массиве

Описание

float stats_skew ( array $a )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

a

Возвращаемые значения


Возвращает стандартное отклонение

  • « stats_skew
  • stats_stat_binomial_coef »
  • PHP Manual
  • Статистические Функции
  • Возвращает стандартное отклонение

stats_standard_deviation

(PECL stats >= 1.0.0)

stats_standard_deviation — Возвращает стандартное отклонение

Описание

float stats_standard_deviation ( array $a [, bool $sample = false ] )

Список параметров

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 — Не документирована

Описание

float stats_stat_binomial_coef ( int $x , int $n )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

x

n

Возвращаемые значения


Не документирована

  • « stats_stat_binomial_coef
  • stats_stat_gennch »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_stat_correlation

(PECL stats >= 1.0.0)

stats_stat_correlation — Не документирована

Описание

float stats_stat_correlation ( array $arr1 , array $arr2 )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

arr1

arr2

Возвращаемые значения


Не документирована

  • « stats_stat_correlation
  • stats_stat_independent_t »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_stat_gennch

(PECL stats >= 1.0.0)

stats_stat_gennch — Не документирована

Описание

float stats_stat_gennch ( int $n )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

n

Возвращаемые значения


Не документирована

  • « stats_stat_gennch
  • stats_stat_innerproduct »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_stat_independent_t

(PECL stats >= 1.0.0)

stats_stat_independent_t — Не документирована

Описание

float stats_stat_independent_t ( array $arr1 , array $arr2 )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

arr1

arr2

Возвращаемые значения


Описание

  • « stats_stat_independent_t
  • stats_stat_noncentral_t »
  • PHP Manual
  • Статистические Функции
  • Описание

stats_stat_innerproduct

(PECL stats >= 1.0.0)

stats_stat_innerproduct —

Описание

float stats_stat_innerproduct ( array $arr1 , array $arr2 )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

arr1

arr2

Возвращаемые значения


Calculates any one parameter of the noncentral t distribution give values for the others.

  • « stats_stat_innerproduct
  • stats_stat_paired_t »
  • PHP Manual
  • Статистические Функции
  • Calculates any one parameter of the noncentral t distribution give values for the others.

stats_stat_noncentral_t

(PECL stats >= 1.0.0)

stats_stat_noncentral_t — Calculates any one parameter of the noncentral t distribution give values for the others.

Описание

float stats_stat_noncentral_t ( float $par1 , float $par2 , float $par3 , int $which )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

par1

par2

par3

which

Возвращаемые значения


Не документирована

  • « stats_stat_noncentral_t
  • stats_stat_percentile »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_stat_paired_t

(PECL stats >= 1.0.0)

stats_stat_paired_t — Не документирована

Описание

float stats_stat_paired_t ( array $arr1 , array $arr2 )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

arr1

arr2

Возвращаемые значения


Не документирована

  • « stats_stat_paired_t
  • stats_stat_powersum »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_stat_percentile

(PECL stats >= 1.0.0)

stats_stat_percentile — Не документирована

Описание

float stats_stat_percentile ( float $df , float $xnonc )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

df

xnonc

Возвращаемые значения


Не документирована

  • « stats_stat_percentile
  • stats_variance »
  • PHP Manual
  • Статистические Функции
  • Не документирована

stats_stat_powersum

(PECL stats >= 1.0.0)

stats_stat_powersum — Не документирована

Описание

float stats_stat_powersum ( array $arr , float $power )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

arr

power

Возвращаемые значения


Возвращает дисперсию генеральной совокупности

  • « stats_stat_powersum
  • Trader »
  • PHP Manual
  • Статистические Функции
  • Возвращает дисперсию генеральной совокупности

stats_variance

(PECL stats >= 1.0.0)

stats_variance — Возвращает дисперсию генеральной совокупности

Описание

float stats_variance ( array $a [, bool $sample = false ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

a

sample

Возвращаемые значения


Technical Analysis for Traders

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Trader Функции
    • trader_acos — Vector Trigonometric ACos
    • trader_ad — Chaikin A/D Line
    • trader_add — Vector Arithmetic Add
    • trader_adosc — Chaikin A/D Oscillator
    • trader_adx — Average Directional Movement Index
    • trader_adxr — Average Directional Movement Index Rating
    • trader_apo — Absolute Price Oscillator
    • trader_aroon — Aroon
    • trader_aroonosc — Aroon Oscillator
    • trader_asin — Vector Trigonometric ASin
    • trader_atan — Vector Trigonometric ATan
    • trader_atr — Average True Range
    • trader_avgprice — Average Price
    • trader_bbands — Bollinger Bands
    • trader_beta — Beta
    • trader_bop — Balance Of Power
    • trader_cci — Commodity Channel Index
    • trader_cdl2crows — Two Crows
    • trader_cdl3blackcrows — Three Black Crows
    • trader_cdl3inside — Three Inside Up/Down
    • trader_cdl3linestrike — Three-Line Strike
    • trader_cdl3outside — Three Outside Up/Down
    • trader_cdl3starsinsouth — Three Stars In The South
    • trader_cdl3whitesoldiers — Three Advancing White Soldiers
    • trader_cdlabandonedbaby — Abandoned Baby
    • trader_cdladvanceblock — Advance Block
    • trader_cdlbelthold — Belt-hold
    • trader_cdlbreakaway — Breakaway
    • trader_cdlclosingmarubozu — Closing Marubozu
    • trader_cdlconcealbabyswall — Concealing Baby Swallow
    • trader_cdlcounterattack — Counterattack
    • trader_cdldarkcloudcover — Dark Cloud Cover
    • trader_cdldoji — Doji
    • trader_cdldojistar — Doji Star
    • trader_cdldragonflydoji — Dragonfly Doji
    • trader_cdlengulfing — Engulfing Pattern
    • trader_cdleveningdojistar — Evening Doji Star
    • trader_cdleveningstar — Evening Star
    • trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines
    • trader_cdlgravestonedoji — Gravestone Doji
    • trader_cdlhammer — Hammer
    • trader_cdlhangingman — Hanging Man
    • trader_cdlharami — Harami Pattern
    • trader_cdlharamicross — Harami Cross Pattern
    • trader_cdlhighwave — High-Wave Candle
    • trader_cdlhikkake — Hikkake Pattern
    • trader_cdlhikkakemod — Modified Hikkake Pattern
    • trader_cdlhomingpigeon — Homing Pigeon
    • trader_cdlidentical3crows — Identical Three Crows
    • trader_cdlinneck — In-Neck Pattern
    • trader_cdlinvertedhammer — Inverted Hammer
    • trader_cdlkicking — Kicking
    • trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu
    • trader_cdlladderbottom — Ladder Bottom
    • trader_cdllongleggeddoji — Long Legged Doji
    • trader_cdllongline — Long Line Candle
    • trader_cdlmarubozu — Marubozu
    • trader_cdlmatchinglow — Matching Low
    • trader_cdlmathold — Mat Hold
    • trader_cdlmorningdojistar — Morning Doji Star
    • trader_cdlmorningstar — Morning Star
    • trader_cdlonneck — On-Neck Pattern
    • trader_cdlpiercing — Piercing Pattern
    • trader_cdlrickshawman — Rickshaw Man
    • trader_cdlrisefall3methods — Rising/Falling Three Methods
    • trader_cdlseparatinglines — Separating Lines
    • trader_cdlshootingstar — Shooting Star
    • trader_cdlshortline — Short Line Candle
    • trader_cdlspinningtop — Spinning Top
    • trader_cdlstalledpattern — Stalled Pattern
    • trader_cdlsticksandwich — Stick Sandwich
    • trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)
    • trader_cdltasukigap — Tasuki Gap
    • trader_cdlthrusting — Thrusting Pattern
    • trader_cdltristar — Tristar Pattern
    • trader_cdlunique3river — Unique 3 River
    • trader_cdlupsidegap2crows — Upside Gap Two Crows
    • trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods
    • trader_ceil — Vector Ceil
    • trader_cmo — Chande Momentum Oscillator
    • trader_correl — Pearson's Correlation Coefficient (r)
    • trader_cos — Vector Trigonometric Cos
    • trader_cosh — Vector Trigonometric Cosh
    • trader_dema — Double Exponential Moving Average
    • trader_div — Vector Arithmetic Div
    • trader_dx — Directional Movement Index
    • trader_ema — Exponential Moving Average
    • trader_errno — Get error code
    • trader_exp — Vector Arithmetic Exp
    • trader_floor — Vector Floor
    • trader_get_compat — Get compatibility mode
    • trader_get_unstable_period — Get unstable period
    • trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period
    • trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase
    • trader_ht_phasor — Hilbert Transform - Phasor Components
    • trader_ht_sine — Hilbert Transform - SineWave
    • trader_ht_trendline — Hilbert Transform - Instantaneous Trendline
    • trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode
    • trader_kama — Kaufman Adaptive Moving Average
    • trader_linearreg_angle — Linear Regression Angle
    • trader_linearreg_intercept — Linear Regression Intercept
    • trader_linearreg_slope — Linear Regression Slope
    • trader_linearreg — Linear Regression
    • trader_ln — Vector Log Natural
    • trader_log10 — Vector Log10
    • trader_ma — Moving average
    • trader_macd — Moving Average Convergence/Divergence
    • trader_macdext — MACD with controllable MA type
    • trader_macdfix — Moving Average Convergence/Divergence Fix 12/26
    • trader_mama — MESA Adaptive Moving Average
    • trader_mavp — Moving average with variable period
    • trader_max — Highest value over a specified period
    • trader_maxindex — Index of highest value over a specified period
    • trader_medprice — Median Price
    • trader_mfi — Money Flow Index
    • trader_midpoint — MidPoint over period
    • trader_midprice — Midpoint Price over period
    • trader_min — Lowest value over a specified period
    • trader_minindex — Index of lowest value over a specified period
    • trader_minmax — Lowest and highest values over a specified period
    • trader_minmaxindex — Indexes of lowest and highest values over a specified period
    • trader_minus_di — Minus Directional Indicator
    • trader_minus_dm — Minus Directional Movement
    • trader_mom — Momentum
    • trader_mult — Vector Arithmetic Mult
    • trader_natr — Normalized Average True Range
    • trader_obv — On Balance Volume
    • trader_plus_di — Plus Directional Indicator
    • trader_plus_dm — Plus Directional Movement
    • trader_ppo — Percentage Price Oscillator
    • trader_roc — Rate of change : ((price/prevPrice)-1)*100
    • trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice
    • trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100
    • trader_rocr — Rate of change ratio: (price/prevPrice)
    • trader_rsi — Relative Strength Index
    • trader_sar — Parabolic SAR
    • trader_sarext — Parabolic SAR - Extended
    • trader_set_compat — Set compatibility mode
    • trader_set_unstable_period — Set unstable period
    • trader_sin — Vector Trigonometric Sin
    • trader_sinh — Vector Trigonometric Sinh
    • trader_sma — Simple Moving Average
    • trader_sqrt — Vector Square Root
    • trader_stddev — Standard Deviation
    • trader_stoch — Stochastic
    • trader_stochf — Stochastic Fast
    • trader_stochrsi — Stochastic Relative Strength Index
    • trader_sub — Vector Arithmetic Subtraction
    • trader_sum — Summation
    • trader_t3 — Triple Exponential Moving Average (T3)
    • trader_tan — Vector Trigonometric Tan
    • trader_tanh — Vector Trigonometric Tanh
    • trader_tema — Triple Exponential Moving Average
    • trader_trange — True Range
    • trader_trima — Triangular Moving Average
    • trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
    • trader_tsf — Time Series Forecast
    • trader_typprice — Typical Price
    • trader_ultosc — Ultimate Oscillator
    • trader_var — Variance
    • trader_wclprice — Weighted Close Price
    • trader_willr — Williams' %R
    • trader_wma — Weighted Moving Average


Введение

The trader extension is a free open source stock library based on TA-Lib. It's dedicated to trading software developers requiring to perform technical analysis of financial market data. Alongside many indicators like ADX, MACD, RSI, Stochastic, TRIX the candlestick pattern recognition and several vector arithmetic and algebraic functions are present.

Calculations can be done in two modes - TA-Lib and Metastock. Changing it using trader_set_compat() will affect the way some trader functions work.

Some trader functions provide different results depending of the "starting point" of the data being involved. This is often referred as a function having memories. An example of such function is the Exponential Moving Average. It is possible to control the unstable period (the amount of data to strip off) using trader_set_unstable_period() function.

Extended documentation about indicators, formulas and implementations in other programming languages can be found under » tadoc.org.


Требования

The trader extension is based on » TA-Lib. TA-Lib is fully integrated into the extension, therefore no external libraries are needed.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/trader.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/trader/.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Trader Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
trader.real_precision | 3 | PHP_INI_ALL | Since trader 0.2.1
trader.real_round_mode | HALF_DOWN | PHP_INI_ALL | Since trader 0.3.0

Краткое разъяснение конфигурационных директив.

trader.real_precision integer

All the values in the returned arrays will be rounded to this precision. However the calculations inside TA-Lib happen with unrounded values.

trader.real_round_mode string

Controls the trader real rounding policy. Valid values are HALF_UP, HALF_DOWN, HALF_EVEN and HALF_ODD. The behaviour is identical to the round() function used with the mode argument.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

TRADER_MA_TYPE_SMA (integer)
TRADER_MA_TYPE_EMA (integer)
TRADER_MA_TYPE_WMA (integer)
TRADER_MA_TYPE_DEMA (integer)
TRADER_MA_TYPE_TEMA (integer)
TRADER_MA_TYPE_TRIMA (integer)
TRADER_MA_TYPE_KAMA (integer)
TRADER_MA_TYPE_MAMA (integer)
TRADER_MA_TYPE_T3 (integer)
TRADER_REAL_MIN (double)
TRADER_REAL_MAX (double)
TRADER_FUNC_UNST_ADX (integer)
TRADER_FUNC_UNST_ADXR (integer)
TRADER_FUNC_UNST_ATR (integer)
TRADER_FUNC_UNST_CMO (integer)
TRADER_FUNC_UNST_DX (integer)
TRADER_FUNC_UNST_EMA (integer)
TRADER_FUNC_UNST_HT_DCPERIOD (integer)
TRADER_FUNC_UNST_HT_DCPHASE (integer)
TRADER_FUNC_UNST_HT_PHASOR (integer)
TRADER_FUNC_UNST_HT_SINE (integer)
TRADER_FUNC_UNST_HT_TRENDLINE (integer)
TRADER_FUNC_UNST_HT_TRENDMODE (integer)
TRADER_FUNC_UNST_KAMA (integer)
TRADER_FUNC_UNST_MAMA (integer)
TRADER_FUNC_UNST_MFI (integer)
TRADER_FUNC_UNST_MINUS_DI (integer)
TRADER_FUNC_UNST_MINUS_DM (integer)
TRADER_FUNC_UNST_NATR (integer)
TRADER_FUNC_UNST_PLUS_DI (integer)
TRADER_FUNC_UNST_PLUS_DM (integer)
TRADER_FUNC_UNST_RSI (integer)
TRADER_FUNC_UNST_STOCHRSI (integer)
TRADER_FUNC_UNST_T3 (integer)
TRADER_FUNC_UNST_ALL (integer)
TRADER_FUNC_UNST_NONE (integer)
TRADER_COMPATIBILITY_DEFAULT (integer)
TRADER_COMPATIBILITY_METASTOCK (integer)
TRADER_ERR_SUCCESS (integer)
TRADER_ERR_LIB_NOT_INITIALIZE (integer)
TRADER_ERR_BAD_PARAM (integer)
TRADER_ERR_ALLOC_ERR (integer)
TRADER_ERR_GROUP_NOT_FOUND (integer)
TRADER_ERR_FUNC_NOT_FOUND (integer)
TRADER_ERR_INVALID_HANDLE (integer)
TRADER_ERR_INVALID_PARAM_HOLDER (integer)
TRADER_ERR_INVALID_PARAM_HOLDER_TYPE (integer)
TRADER_ERR_INVALID_PARAM_FUNCTION (integer)
TRADER_ERR_INPUT_NOT_ALL_INITIALIZE (integer)
TRADER_ERR_OUTPUT_NOT_ALL_INITIALIZE (integer)
TRADER_ERR_OUT_OF_RANGE_START_INDEX (integer)
TRADER_ERR_OUT_OF_RANGE_END_INDEX (integer)
TRADER_ERR_INVALID_LIST_TYPE (integer)
TRADER_ERR_BAD_OBJECT (integer)
TRADER_ERR_NOT_SUPPORTED (integer)
TRADER_ERR_INTERNAL_ERROR (integer)
TRADER_ERR_UNKNOWN_ERROR (integer)


Trader Функции

Содержание

  • trader_acos — Vector Trigonometric ACos
  • trader_ad — Chaikin A/D Line
  • trader_add — Vector Arithmetic Add
  • trader_adosc — Chaikin A/D Oscillator
  • trader_adx — Average Directional Movement Index
  • trader_adxr — Average Directional Movement Index Rating
  • trader_apo — Absolute Price Oscillator
  • trader_aroon — Aroon
  • trader_aroonosc — Aroon Oscillator
  • trader_asin — Vector Trigonometric ASin
  • trader_atan — Vector Trigonometric ATan
  • trader_atr — Average True Range
  • trader_avgprice — Average Price
  • trader_bbands — Bollinger Bands
  • trader_beta — Beta
  • trader_bop — Balance Of Power
  • trader_cci — Commodity Channel Index
  • trader_cdl2crows — Two Crows
  • trader_cdl3blackcrows — Three Black Crows
  • trader_cdl3inside — Three Inside Up/Down
  • trader_cdl3linestrike — Three-Line Strike
  • trader_cdl3outside — Three Outside Up/Down
  • trader_cdl3starsinsouth — Three Stars In The South
  • trader_cdl3whitesoldiers — Three Advancing White Soldiers
  • trader_cdlabandonedbaby — Abandoned Baby
  • trader_cdladvanceblock — Advance Block
  • trader_cdlbelthold — Belt-hold
  • trader_cdlbreakaway — Breakaway
  • trader_cdlclosingmarubozu — Closing Marubozu
  • trader_cdlconcealbabyswall — Concealing Baby Swallow
  • trader_cdlcounterattack — Counterattack
  • trader_cdldarkcloudcover — Dark Cloud Cover
  • trader_cdldoji — Doji
  • trader_cdldojistar — Doji Star
  • trader_cdldragonflydoji — Dragonfly Doji
  • trader_cdlengulfing — Engulfing Pattern
  • trader_cdleveningdojistar — Evening Doji Star
  • trader_cdleveningstar — Evening Star
  • trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines
  • trader_cdlgravestonedoji — Gravestone Doji
  • trader_cdlhammer — Hammer
  • trader_cdlhangingman — Hanging Man
  • trader_cdlharami — Harami Pattern
  • trader_cdlharamicross — Harami Cross Pattern
  • trader_cdlhighwave — High-Wave Candle
  • trader_cdlhikkake — Hikkake Pattern
  • trader_cdlhikkakemod — Modified Hikkake Pattern
  • trader_cdlhomingpigeon — Homing Pigeon
  • trader_cdlidentical3crows — Identical Three Crows
  • trader_cdlinneck — In-Neck Pattern
  • trader_cdlinvertedhammer — Inverted Hammer
  • trader_cdlkicking — Kicking
  • trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu
  • trader_cdlladderbottom — Ladder Bottom
  • trader_cdllongleggeddoji — Long Legged Doji
  • trader_cdllongline — Long Line Candle
  • trader_cdlmarubozu — Marubozu
  • trader_cdlmatchinglow — Matching Low
  • trader_cdlmathold — Mat Hold
  • trader_cdlmorningdojistar — Morning Doji Star
  • trader_cdlmorningstar — Morning Star
  • trader_cdlonneck — On-Neck Pattern
  • trader_cdlpiercing — Piercing Pattern
  • trader_cdlrickshawman — Rickshaw Man
  • trader_cdlrisefall3methods — Rising/Falling Three Methods
  • trader_cdlseparatinglines — Separating Lines
  • trader_cdlshootingstar — Shooting Star
  • trader_cdlshortline — Short Line Candle
  • trader_cdlspinningtop — Spinning Top
  • trader_cdlstalledpattern — Stalled Pattern
  • trader_cdlsticksandwich — Stick Sandwich
  • trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)
  • trader_cdltasukigap — Tasuki Gap
  • trader_cdlthrusting — Thrusting Pattern
  • trader_cdltristar — Tristar Pattern
  • trader_cdlunique3river — Unique 3 River
  • trader_cdlupsidegap2crows — Upside Gap Two Crows
  • trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods
  • trader_ceil — Vector Ceil
  • trader_cmo — Chande Momentum Oscillator
  • trader_correl — Pearson's Correlation Coefficient (r)
  • trader_cos — Vector Trigonometric Cos
  • trader_cosh — Vector Trigonometric Cosh
  • trader_dema — Double Exponential Moving Average
  • trader_div — Vector Arithmetic Div
  • trader_dx — Directional Movement Index
  • trader_ema — Exponential Moving Average
  • trader_errno — Get error code
  • trader_exp — Vector Arithmetic Exp
  • trader_floor — Vector Floor
  • trader_get_compat — Get compatibility mode
  • trader_get_unstable_period — Get unstable period
  • trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period
  • trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase
  • trader_ht_phasor — Hilbert Transform - Phasor Components
  • trader_ht_sine — Hilbert Transform - SineWave
  • trader_ht_trendline — Hilbert Transform - Instantaneous Trendline
  • trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode
  • trader_kama — Kaufman Adaptive Moving Average
  • trader_linearreg_angle — Linear Regression Angle
  • trader_linearreg_intercept — Linear Regression Intercept
  • trader_linearreg_slope — Linear Regression Slope
  • trader_linearreg — Linear Regression
  • trader_ln — Vector Log Natural
  • trader_log10 — Vector Log10
  • trader_ma — Moving average
  • trader_macd — Moving Average Convergence/Divergence
  • trader_macdext — MACD with controllable MA type
  • trader_macdfix — Moving Average Convergence/Divergence Fix 12/26
  • trader_mama — MESA Adaptive Moving Average
  • trader_mavp — Moving average with variable period
  • trader_max — Highest value over a specified period
  • trader_maxindex — Index of highest value over a specified period
  • trader_medprice — Median Price
  • trader_mfi — Money Flow Index
  • trader_midpoint — MidPoint over period
  • trader_midprice — Midpoint Price over period
  • trader_min — Lowest value over a specified period
  • trader_minindex — Index of lowest value over a specified period
  • trader_minmax — Lowest and highest values over a specified period
  • trader_minmaxindex — Indexes of lowest and highest values over a specified period
  • trader_minus_di — Minus Directional Indicator
  • trader_minus_dm — Minus Directional Movement
  • trader_mom — Momentum
  • trader_mult — Vector Arithmetic Mult
  • trader_natr — Normalized Average True Range
  • trader_obv — On Balance Volume
  • trader_plus_di — Plus Directional Indicator
  • trader_plus_dm — Plus Directional Movement
  • trader_ppo — Percentage Price Oscillator
  • trader_roc — Rate of change : ((price/prevPrice)-1)*100
  • trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice
  • trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100
  • trader_rocr — Rate of change ratio: (price/prevPrice)
  • trader_rsi — Relative Strength Index
  • trader_sar — Parabolic SAR
  • trader_sarext — Parabolic SAR - Extended
  • trader_set_compat — Set compatibility mode
  • trader_set_unstable_period — Set unstable period
  • trader_sin — Vector Trigonometric Sin
  • trader_sinh — Vector Trigonometric Sinh
  • trader_sma — Simple Moving Average
  • trader_sqrt — Vector Square Root
  • trader_stddev — Standard Deviation
  • trader_stoch — Stochastic
  • trader_stochf — Stochastic Fast
  • trader_stochrsi — Stochastic Relative Strength Index
  • trader_sub — Vector Arithmetic Subtraction
  • trader_sum — Summation
  • trader_t3 — Triple Exponential Moving Average (T3)
  • trader_tan — Vector Trigonometric Tan
  • trader_tanh — Vector Trigonometric Tanh
  • trader_tema — Triple Exponential Moving Average
  • trader_trange — True Range
  • trader_trima — Triangular Moving Average
  • trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
  • trader_tsf — Time Series Forecast
  • trader_typprice — Typical Price
  • trader_ultosc — Ultimate Oscillator
  • trader_var — Variance
  • trader_wclprice — Weighted Close Price
  • trader_willr — Williams' %R
  • trader_wma — Weighted Moving Average


Vector Trigonometric ACos

  • « Trader Функции
  • trader_ad »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric ACos

trader_acos

(PECL trader >= 0.2.0)

trader_acos — Vector Trigonometric ACos

Описание

array trader_acos ( array $real )

Calculates the arc cosine for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Chaikin A/D Line

  • « trader_acos
  • trader_add »
  • PHP Manual
  • Trader Функции
  • Chaikin A/D Line

trader_ad

(PECL trader >= 0.2.0)

trader_ad — Chaikin A/D Line

Описание

array trader_ad ( array $high , array $low , array $close , array $volume )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

volume

Объем торгов, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Arithmetic Add

  • « trader_ad
  • trader_adosc »
  • PHP Manual
  • Trader Функции
  • Vector Arithmetic Add

trader_add

(PECL trader >= 0.2.0)

trader_add — Vector Arithmetic Add

Описание

array trader_add ( array $real0 , array $real1 )

Calculates the vector addition of real0 to real1 and returns the resulting vector.

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Chaikin A/D Oscillator

  • « trader_add
  • trader_adx »
  • PHP Manual
  • Trader Функции
  • Chaikin A/D Oscillator

trader_adosc

(PECL trader >= 0.2.0)

trader_adosc — Chaikin A/D Oscillator

Описание

array trader_adosc ( array $high , array $low , array $close , array $volume [, integer $fastPeriod [, integer $slowPeriod ]] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

volume

Объем торгов, массив реальных значений.

fastPeriod

Номер периода для быстрого скользящего среднего. Допустимы значения от 2 до 100000.

slowPeriod

Номер периода для медленного скользящего среднего. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Average Directional Movement Index

  • « trader_adosc
  • trader_adxr »
  • PHP Manual
  • Trader Функции
  • Average Directional Movement Index

trader_adx

(PECL trader >= 0.2.0)

trader_adx — Average Directional Movement Index

Описание

array trader_adx ( array $high , array $low , array $close [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Average Directional Movement Index Rating

  • « trader_adx
  • trader_apo »
  • PHP Manual
  • Trader Функции
  • Average Directional Movement Index Rating

trader_adxr

(PECL trader >= 0.2.0)

trader_adxr — Average Directional Movement Index Rating

Описание

array trader_adxr ( array $high , array $low , array $close [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Absolute Price Oscillator

  • « trader_adxr
  • trader_aroon »
  • PHP Manual
  • Trader Функции
  • Absolute Price Oscillator

trader_apo

(PECL trader >= 0.2.0)

trader_apo — Absolute Price Oscillator

Описание

array trader_apo ( array $real [, integer $fastPeriod [, integer $slowPeriod [, integer $mAType ]]] )

Список параметров

real

Массив, содержащий реальные значения.

fastPeriod

Номер периода для быстрого скользящего среднего. Допустимы значения от 2 до 100000.

slowPeriod

Номер периода для медленного скользящего среднего. Допустимы значения от 2 до 100000.

mAType

Тип скользящей средней. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Aroon

  • « trader_apo
  • trader_aroonosc »
  • PHP Manual
  • Trader Функции
  • Aroon

trader_aroon

(PECL trader >= 0.2.0)

trader_aroon — Aroon

Описание

array trader_aroon ( array $high , array $low [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Aroon Oscillator

  • « trader_aroon
  • trader_asin »
  • PHP Manual
  • Trader Функции
  • Aroon Oscillator

trader_aroonosc

(PECL trader >= 0.2.0)

trader_aroonosc — Aroon Oscillator

Описание

array trader_aroonosc ( array $high , array $low [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Trigonometric ASin

  • « trader_aroonosc
  • trader_atan »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric ASin

trader_asin

(PECL trader >= 0.2.0)

trader_asin — Vector Trigonometric ASin

Описание

array trader_asin ( array $real )

Calculates the arc sine for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Trigonometric ATan

  • « trader_asin
  • trader_atr »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric ATan

trader_atan

(PECL trader >= 0.2.0)

trader_atan — Vector Trigonometric ATan

Описание

array trader_atan ( array $real )

Calculates the arc tangent for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Average True Range

  • « trader_atan
  • trader_avgprice »
  • PHP Manual
  • Trader Функции
  • Average True Range

trader_atr

(PECL trader >= 0.2.0)

trader_atr — Average True Range

Описание

array trader_atr ( array $high , array $low , array $close [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Average Price

  • « trader_atr
  • trader_bbands »
  • PHP Manual
  • Trader Функции
  • Average Price

trader_avgprice

(PECL trader >= 0.2.0)

trader_avgprice — Average Price

Описание

array trader_avgprice ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Bollinger Bands

  • « trader_avgprice
  • trader_beta »
  • PHP Manual
  • Trader Функции
  • Bollinger Bands

trader_bbands

(PECL trader >= 0.2.0)

trader_bbands — Bollinger Bands

Описание

array trader_bbands ( array $real [, integer $timePeriod [, float $nbDevUp [, float $nbDevDn [, integer $mAType ]]]] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

nbDevUp

Отклоняющий множитель для верхней полосы. Допустимы значения от TRADER_REAL_MIN до TRADER_REAL_MAX.

nbDevDn

Отклоняющий множитель для нижней полосы. Допустимы значения от TRADER_REAL_MIN до TRADER_REAL_MAX.

mAType

Тип скользящей средней. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Beta

  • « trader_bbands
  • trader_bop »
  • PHP Manual
  • Trader Функции
  • Beta

trader_beta

(PECL trader >= 0.2.0)

trader_beta — Beta

Описание

array trader_beta ( array $real0 , array $real1 [, integer $timePeriod ] )

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Balance Of Power

  • « trader_beta
  • trader_cci »
  • PHP Manual
  • Trader Функции
  • Balance Of Power

trader_bop

(PECL trader >= 0.2.0)

trader_bop — Balance Of Power

Описание

array trader_bop ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Commodity Channel Index

  • « trader_bop
  • trader_cdl2crows »
  • PHP Manual
  • Trader Функции
  • Commodity Channel Index

trader_cci

(PECL trader >= 0.2.0)

trader_cci — Commodity Channel Index

Описание

array trader_cci ( array $high , array $low , array $close [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Two Crows

  • « trader_cci
  • trader_cdl3blackcrows »
  • PHP Manual
  • Trader Функции
  • Two Crows

trader_cdl2crows

(PECL trader >= 0.2.0)

trader_cdl2crows — Two Crows

Описание

array trader_cdl2crows ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Three Black Crows

  • « trader_cdl2crows
  • trader_cdl3inside »
  • PHP Manual
  • Trader Функции
  • Three Black Crows

trader_cdl3blackcrows

(PECL trader >= 0.2.0)

trader_cdl3blackcrows — Three Black Crows

Описание

array trader_cdl3blackcrows ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Three Inside Up/Down

  • « trader_cdl3blackcrows
  • trader_cdl3linestrike »
  • PHP Manual
  • Trader Функции
  • Three Inside Up/Down

trader_cdl3inside

(PECL trader >= 0.2.0)

trader_cdl3inside — Three Inside Up/Down

Описание

array trader_cdl3inside ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Three-Line Strike

  • « trader_cdl3inside
  • trader_cdl3outside »
  • PHP Manual
  • Trader Функции
  • Three-Line Strike

trader_cdl3linestrike

(PECL trader >= 0.2.0)

trader_cdl3linestrike — Three-Line Strike

Описание

array trader_cdl3linestrike ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Three Outside Up/Down

  • « trader_cdl3linestrike
  • trader_cdl3starsinsouth »
  • PHP Manual
  • Trader Функции
  • Three Outside Up/Down

trader_cdl3outside

(PECL trader >= 0.2.0)

trader_cdl3outside — Three Outside Up/Down

Описание

array trader_cdl3outside ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Three Stars In The South

  • « trader_cdl3outside
  • trader_cdl3whitesoldiers »
  • PHP Manual
  • Trader Функции
  • Three Stars In The South

trader_cdl3starsinsouth

(PECL trader >= 0.2.0)

trader_cdl3starsinsouth — Three Stars In The South

Описание

array trader_cdl3starsinsouth ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Three Advancing White Soldiers

  • « trader_cdl3starsinsouth
  • trader_cdlabandonedbaby »
  • PHP Manual
  • Trader Функции
  • Three Advancing White Soldiers

trader_cdl3whitesoldiers

(PECL trader >= 0.2.0)

trader_cdl3whitesoldiers — Three Advancing White Soldiers

Описание

array trader_cdl3whitesoldiers ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Abandoned Baby

  • « trader_cdl3whitesoldiers
  • trader_cdladvanceblock »
  • PHP Manual
  • Trader Функции
  • Abandoned Baby

trader_cdlabandonedbaby

(PECL trader >= 0.2.0)

trader_cdlabandonedbaby — Abandoned Baby

Описание

array trader_cdlabandonedbaby ( array $open , array $high , array $low , array $close [, float $penetration ] )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Advance Block

  • « trader_cdlabandonedbaby
  • trader_cdlbelthold »
  • PHP Manual
  • Trader Функции
  • Advance Block

trader_cdladvanceblock

(PECL trader >= 0.2.0)

trader_cdladvanceblock — Advance Block

Описание

array trader_cdladvanceblock ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Belt-hold

  • « trader_cdladvanceblock
  • trader_cdlbreakaway »
  • PHP Manual
  • Trader Функции
  • Belt-hold

trader_cdlbelthold

(PECL trader >= 0.2.0)

trader_cdlbelthold — Belt-hold

Описание

array trader_cdlbelthold ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Breakaway

  • « trader_cdlbelthold
  • trader_cdlclosingmarubozu »
  • PHP Manual
  • Trader Функции
  • Breakaway

trader_cdlbreakaway

(PECL trader >= 0.2.0)

trader_cdlbreakaway — Breakaway

Описание

array trader_cdlbreakaway ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Closing Marubozu

  • « trader_cdlbreakaway
  • trader_cdlconcealbabyswall »
  • PHP Manual
  • Trader Функции
  • Closing Marubozu

trader_cdlclosingmarubozu

(PECL trader >= 0.2.0)

trader_cdlclosingmarubozu — Closing Marubozu

Описание

array trader_cdlclosingmarubozu ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Concealing Baby Swallow

  • « trader_cdlclosingmarubozu
  • trader_cdlcounterattack »
  • PHP Manual
  • Trader Функции
  • Concealing Baby Swallow

trader_cdlconcealbabyswall

(PECL trader >= 0.2.0)

trader_cdlconcealbabyswall — Concealing Baby Swallow

Описание

array trader_cdlconcealbabyswall ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Counterattack

  • « trader_cdlconcealbabyswall
  • trader_cdldarkcloudcover »
  • PHP Manual
  • Trader Функции
  • Counterattack

trader_cdlcounterattack

(PECL trader >= 0.2.0)

trader_cdlcounterattack — Counterattack

Описание

array trader_cdlcounterattack ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Dark Cloud Cover

  • « trader_cdlcounterattack
  • trader_cdldoji »
  • PHP Manual
  • Trader Функции
  • Dark Cloud Cover

trader_cdldarkcloudcover

(PECL trader >= 0.2.0)

trader_cdldarkcloudcover — Dark Cloud Cover

Описание

array trader_cdldarkcloudcover ( array $open , array $high , array $low , array $close [, float $penetration ] )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Doji

  • « trader_cdldarkcloudcover
  • trader_cdldojistar »
  • PHP Manual
  • Trader Функции
  • Doji

trader_cdldoji

(PECL trader >= 0.2.0)

trader_cdldoji — Doji

Описание

array trader_cdldoji ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Doji Star

  • « trader_cdldoji
  • trader_cdldragonflydoji »
  • PHP Manual
  • Trader Функции
  • Doji Star

trader_cdldojistar

(PECL trader >= 0.2.0)

trader_cdldojistar — Doji Star

Описание

array trader_cdldojistar ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Dragonfly Doji

  • « trader_cdldojistar
  • trader_cdlengulfing »
  • PHP Manual
  • Trader Функции
  • Dragonfly Doji

trader_cdldragonflydoji

(PECL trader >= 0.2.0)

trader_cdldragonflydoji — Dragonfly Doji

Описание

array trader_cdldragonflydoji ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Engulfing Pattern

  • « trader_cdldragonflydoji
  • trader_cdleveningdojistar »
  • PHP Manual
  • Trader Функции
  • Engulfing Pattern

trader_cdlengulfing

(PECL trader >= 0.2.0)

trader_cdlengulfing — Engulfing Pattern

Описание

array trader_cdlengulfing ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Evening Doji Star

  • « trader_cdlengulfing
  • trader_cdleveningstar »
  • PHP Manual
  • Trader Функции
  • Evening Doji Star

trader_cdleveningdojistar

(PECL trader >= 0.2.0)

trader_cdleveningdojistar — Evening Doji Star

Описание

array trader_cdleveningdojistar ( array $open , array $high , array $low , array $close [, float $penetration ] )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Evening Star

  • « trader_cdleveningdojistar
  • trader_cdlgapsidesidewhite »
  • PHP Manual
  • Trader Функции
  • Evening Star

trader_cdleveningstar

(PECL trader >= 0.2.0)

trader_cdleveningstar — Evening Star

Описание

array trader_cdleveningstar ( array $open , array $high , array $low , array $close [, float $penetration ] )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Up/Down-gap side-by-side white lines

  • « trader_cdleveningstar
  • trader_cdlgravestonedoji »
  • PHP Manual
  • Trader Функции
  • Up/Down-gap side-by-side white lines

trader_cdlgapsidesidewhite

(PECL trader >= 0.2.0)

trader_cdlgapsidesidewhite — Up/Down-gap side-by-side white lines

Описание

array trader_cdlgapsidesidewhite ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Gravestone Doji

  • « trader_cdlgapsidesidewhite
  • trader_cdlhammer »
  • PHP Manual
  • Trader Функции
  • Gravestone Doji

trader_cdlgravestonedoji

(PECL trader >= 0.2.0)

trader_cdlgravestonedoji — Gravestone Doji

Описание

array trader_cdlgravestonedoji ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hammer

  • « trader_cdlgravestonedoji
  • trader_cdlhangingman »
  • PHP Manual
  • Trader Функции
  • Hammer

trader_cdlhammer

(PECL trader >= 0.2.0)

trader_cdlhammer — Hammer

Описание

array trader_cdlhammer ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hanging Man

  • « trader_cdlhammer
  • trader_cdlharami »
  • PHP Manual
  • Trader Функции
  • Hanging Man

trader_cdlhangingman

(PECL trader >= 0.2.0)

trader_cdlhangingman — Hanging Man

Описание

array trader_cdlhangingman ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Harami Pattern

  • « trader_cdlhangingman
  • trader_cdlharamicross »
  • PHP Manual
  • Trader Функции
  • Harami Pattern

trader_cdlharami

(PECL trader >= 0.2.0)

trader_cdlharami — Harami Pattern

Описание

array trader_cdlharami ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Harami Cross Pattern

  • « trader_cdlharami
  • trader_cdlhighwave »
  • PHP Manual
  • Trader Функции
  • Harami Cross Pattern

trader_cdlharamicross

(PECL trader >= 0.2.0)

trader_cdlharamicross — Harami Cross Pattern

Описание

array trader_cdlharamicross ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


High-Wave Candle

  • « trader_cdlharamicross
  • trader_cdlhikkake »
  • PHP Manual
  • Trader Функции
  • High-Wave Candle

trader_cdlhighwave

(PECL trader >= 0.2.0)

trader_cdlhighwave — High-Wave Candle

Описание

array trader_cdlhighwave ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hikkake Pattern

  • « trader_cdlhighwave
  • trader_cdlhikkakemod »
  • PHP Manual
  • Trader Функции
  • Hikkake Pattern

trader_cdlhikkake

(PECL trader >= 0.2.0)

trader_cdlhikkake — Hikkake Pattern

Описание

array trader_cdlhikkake ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Modified Hikkake Pattern

  • « trader_cdlhikkake
  • trader_cdlhomingpigeon »
  • PHP Manual
  • Trader Функции
  • Modified Hikkake Pattern

trader_cdlhikkakemod

(PECL trader >= 0.2.0)

trader_cdlhikkakemod — Modified Hikkake Pattern

Описание

array trader_cdlhikkakemod ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Homing Pigeon

  • « trader_cdlhikkakemod
  • trader_cdlidentical3crows »
  • PHP Manual
  • Trader Функции
  • Homing Pigeon

trader_cdlhomingpigeon

(PECL trader >= 0.2.0)

trader_cdlhomingpigeon — Homing Pigeon

Описание

array trader_cdlhomingpigeon ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Identical Three Crows

  • « trader_cdlhomingpigeon
  • trader_cdlinneck »
  • PHP Manual
  • Trader Функции
  • Identical Three Crows

trader_cdlidentical3crows

(PECL trader >= 0.2.0)

trader_cdlidentical3crows — Identical Three Crows

Описание

array trader_cdlidentical3crows ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


In-Neck Pattern

  • « trader_cdlidentical3crows
  • trader_cdlinvertedhammer »
  • PHP Manual
  • Trader Функции
  • In-Neck Pattern

trader_cdlinneck

(PECL trader >= 0.2.0)

trader_cdlinneck — In-Neck Pattern

Описание

array trader_cdlinneck ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Inverted Hammer

  • « trader_cdlinneck
  • trader_cdlkicking »
  • PHP Manual
  • Trader Функции
  • Inverted Hammer

trader_cdlinvertedhammer

(PECL trader >= 0.2.0)

trader_cdlinvertedhammer — Inverted Hammer

Описание

array trader_cdlinvertedhammer ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Kicking

  • « trader_cdlinvertedhammer
  • trader_cdlkickingbylength »
  • PHP Manual
  • Trader Функции
  • Kicking

trader_cdlkicking

(PECL trader >= 0.2.0)

trader_cdlkicking — Kicking

Описание

array trader_cdlkicking ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Kicking - bull/bear determined by the longer marubozu

  • « trader_cdlkicking
  • trader_cdlladderbottom »
  • PHP Manual
  • Trader Функции
  • Kicking - bull/bear determined by the longer marubozu

trader_cdlkickingbylength

(PECL trader >= 0.2.0)

trader_cdlkickingbylength — Kicking - bull/bear determined by the longer marubozu

Описание

array trader_cdlkickingbylength ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Ladder Bottom

  • « trader_cdlkickingbylength
  • trader_cdllongleggeddoji »
  • PHP Manual
  • Trader Функции
  • Ladder Bottom

trader_cdlladderbottom

(PECL trader >= 0.2.0)

trader_cdlladderbottom — Ladder Bottom

Описание

array trader_cdlladderbottom ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Long Legged Doji

  • « trader_cdlladderbottom
  • trader_cdllongline »
  • PHP Manual
  • Trader Функции
  • Long Legged Doji

trader_cdllongleggeddoji

(PECL trader >= 0.2.0)

trader_cdllongleggeddoji — Long Legged Doji

Описание

array trader_cdllongleggeddoji ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Long Line Candle

  • « trader_cdllongleggeddoji
  • trader_cdlmarubozu »
  • PHP Manual
  • Trader Функции
  • Long Line Candle

trader_cdllongline

(PECL trader >= 0.2.0)

trader_cdllongline — Long Line Candle

Описание

array trader_cdllongline ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Marubozu

  • « trader_cdllongline
  • trader_cdlmatchinglow »
  • PHP Manual
  • Trader Функции
  • Marubozu

trader_cdlmarubozu

(PECL trader >= 0.2.0)

trader_cdlmarubozu — Marubozu

Описание

array trader_cdlmarubozu ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Matching Low

  • « trader_cdlmarubozu
  • trader_cdlmathold »
  • PHP Manual
  • Trader Функции
  • Matching Low

trader_cdlmatchinglow

(PECL trader >= 0.2.0)

trader_cdlmatchinglow — Matching Low

Описание

array trader_cdlmatchinglow ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Mat Hold

  • « trader_cdlmatchinglow
  • trader_cdlmorningdojistar »
  • PHP Manual
  • Trader Функции
  • Mat Hold

trader_cdlmathold

(PECL trader >= 0.2.0)

trader_cdlmathold — Mat Hold

Описание

array trader_cdlmathold ( array $open , array $high , array $low , array $close [, float $penetration ] )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Morning Doji Star

  • « trader_cdlmathold
  • trader_cdlmorningstar »
  • PHP Manual
  • Trader Функции
  • Morning Doji Star

trader_cdlmorningdojistar

(PECL trader >= 0.2.0)

trader_cdlmorningdojistar — Morning Doji Star

Описание

array trader_cdlmorningdojistar ( array $open , array $high , array $low , array $close [, float $penetration ] )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Morning Star

  • « trader_cdlmorningdojistar
  • trader_cdlonneck »
  • PHP Manual
  • Trader Функции
  • Morning Star

trader_cdlmorningstar

(PECL trader >= 0.2.0)

trader_cdlmorningstar — Morning Star

Описание

array trader_cdlmorningstar ( array $open , array $high , array $low , array $close [, float $penetration ] )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

penetration

Процент проникновения одной свечи внутри другой свечи.

Возвращаемые значения

Returns an array with calculated data or false on failure.


On-Neck Pattern

  • « trader_cdlmorningstar
  • trader_cdlpiercing »
  • PHP Manual
  • Trader Функции
  • On-Neck Pattern

trader_cdlonneck

(PECL trader >= 0.2.0)

trader_cdlonneck — On-Neck Pattern

Описание

array trader_cdlonneck ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Piercing Pattern

  • « trader_cdlonneck
  • trader_cdlrickshawman »
  • PHP Manual
  • Trader Функции
  • Piercing Pattern

trader_cdlpiercing

(PECL trader >= 0.2.0)

trader_cdlpiercing — Piercing Pattern

Описание

array trader_cdlpiercing ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Rickshaw Man

  • « trader_cdlpiercing
  • trader_cdlrisefall3methods »
  • PHP Manual
  • Trader Функции
  • Rickshaw Man

trader_cdlrickshawman

(PECL trader >= 0.2.0)

trader_cdlrickshawman — Rickshaw Man

Описание

array trader_cdlrickshawman ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Rising/Falling Three Methods

  • « trader_cdlrickshawman
  • trader_cdlseparatinglines »
  • PHP Manual
  • Trader Функции
  • Rising/Falling Three Methods

trader_cdlrisefall3methods

(PECL trader >= 0.2.0)

trader_cdlrisefall3methods — Rising/Falling Three Methods

Описание

array trader_cdlrisefall3methods ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Separating Lines

  • « trader_cdlrisefall3methods
  • trader_cdlshootingstar »
  • PHP Manual
  • Trader Функции
  • Separating Lines

trader_cdlseparatinglines

(PECL trader >= 0.2.0)

trader_cdlseparatinglines — Separating Lines

Описание

array trader_cdlseparatinglines ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Shooting Star

  • « trader_cdlseparatinglines
  • trader_cdlshortline »
  • PHP Manual
  • Trader Функции
  • Shooting Star

trader_cdlshootingstar

(PECL trader >= 0.2.0)

trader_cdlshootingstar — Shooting Star

Описание

array trader_cdlshootingstar ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Short Line Candle

  • « trader_cdlshootingstar
  • trader_cdlspinningtop »
  • PHP Manual
  • Trader Функции
  • Short Line Candle

trader_cdlshortline

(PECL trader >= 0.2.0)

trader_cdlshortline — Short Line Candle

Описание

array trader_cdlshortline ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Spinning Top

  • « trader_cdlshortline
  • trader_cdlstalledpattern »
  • PHP Manual
  • Trader Функции
  • Spinning Top

trader_cdlspinningtop

(PECL trader >= 0.2.0)

trader_cdlspinningtop — Spinning Top

Описание

array trader_cdlspinningtop ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Stalled Pattern

  • « trader_cdlspinningtop
  • trader_cdlsticksandwich »
  • PHP Manual
  • Trader Функции
  • Stalled Pattern

trader_cdlstalledpattern

(PECL trader >= 0.2.0)

trader_cdlstalledpattern — Stalled Pattern

Описание

array trader_cdlstalledpattern ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Stick Sandwich

  • « trader_cdlstalledpattern
  • trader_cdltakuri »
  • PHP Manual
  • Trader Функции
  • Stick Sandwich

trader_cdlsticksandwich

(PECL trader >= 0.2.0)

trader_cdlsticksandwich — Stick Sandwich

Описание

array trader_cdlsticksandwich ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Takuri (Dragonfly Doji with very long lower shadow)

  • « trader_cdlsticksandwich
  • trader_cdltasukigap »
  • PHP Manual
  • Trader Функции
  • Takuri (Dragonfly Doji with very long lower shadow)

trader_cdltakuri

(PECL trader >= 0.2.0)

trader_cdltakuri — Takuri (Dragonfly Doji with very long lower shadow)

Описание

array trader_cdltakuri ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Tasuki Gap

  • « trader_cdltakuri
  • trader_cdlthrusting »
  • PHP Manual
  • Trader Функции
  • Tasuki Gap

trader_cdltasukigap

(PECL trader >= 0.2.0)

trader_cdltasukigap — Tasuki Gap

Описание

array trader_cdltasukigap ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Thrusting Pattern

  • « trader_cdltasukigap
  • trader_cdltristar »
  • PHP Manual
  • Trader Функции
  • Thrusting Pattern

trader_cdlthrusting

(PECL trader >= 0.2.0)

trader_cdlthrusting — Thrusting Pattern

Описание

array trader_cdlthrusting ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Tristar Pattern

  • « trader_cdlthrusting
  • trader_cdlunique3river »
  • PHP Manual
  • Trader Функции
  • Tristar Pattern

trader_cdltristar

(PECL trader >= 0.2.0)

trader_cdltristar — Tristar Pattern

Описание

array trader_cdltristar ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Unique 3 River

  • « trader_cdltristar
  • trader_cdlupsidegap2crows »
  • PHP Manual
  • Trader Функции
  • Unique 3 River

trader_cdlunique3river

(PECL trader >= 0.2.0)

trader_cdlunique3river — Unique 3 River

Описание

array trader_cdlunique3river ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Upside Gap Two Crows

  • « trader_cdlunique3river
  • trader_cdlxsidegap3methods »
  • PHP Manual
  • Trader Функции
  • Upside Gap Two Crows

trader_cdlupsidegap2crows

(PECL trader >= 0.2.0)

trader_cdlupsidegap2crows — Upside Gap Two Crows

Описание

array trader_cdlupsidegap2crows ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Upside/Downside Gap Three Methods

  • « trader_cdlupsidegap2crows
  • trader_ceil »
  • PHP Manual
  • Trader Функции
  • Upside/Downside Gap Three Methods

trader_cdlxsidegap3methods

(PECL trader >= 0.2.0)

trader_cdlxsidegap3methods — Upside/Downside Gap Three Methods

Описание

array trader_cdlxsidegap3methods ( array $open , array $high , array $low , array $close )

Список параметров

open

Цена открытия, массив реальных значений.

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Ceil

  • « trader_cdlxsidegap3methods
  • trader_cmo »
  • PHP Manual
  • Trader Функции
  • Vector Ceil

trader_ceil

(PECL trader >= 0.2.0)

trader_ceil — Vector Ceil

Описание

array trader_ceil ( array $real )

Calculates the next higest integer for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Chande Momentum Oscillator

  • « trader_ceil
  • trader_correl »
  • PHP Manual
  • Trader Функции
  • Chande Momentum Oscillator

trader_cmo

(PECL trader >= 0.2.0)

trader_cmo — Chande Momentum Oscillator

Описание

array trader_cmo ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Pearson's Correlation Coefficient (r)

  • « trader_cmo
  • trader_cos »
  • PHP Manual
  • Trader Функции
  • Pearson's Correlation Coefficient (r)

trader_correl

(PECL trader >= 0.2.0)

trader_correl — Pearson's Correlation Coefficient (r)

Описание

array trader_correl ( array $real0 , array $real1 [, integer $timePeriod ] )

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Trigonometric Cos

  • « trader_correl
  • trader_cosh »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric Cos

trader_cos

(PECL trader >= 0.2.0)

trader_cos — Vector Trigonometric Cos

Описание

array trader_cos ( array $real )

Calculates the cosine for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Trigonometric Cosh

  • « trader_cos
  • trader_dema »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric Cosh

trader_cosh

(PECL trader >= 0.2.0)

trader_cosh — Vector Trigonometric Cosh

Описание

array trader_cosh ( array $real )

Calculates the hyperbolic cosine for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Double Exponential Moving Average

  • « trader_cosh
  • trader_div »
  • PHP Manual
  • Trader Функции
  • Double Exponential Moving Average

trader_dema

(PECL trader >= 0.2.0)

trader_dema — Double Exponential Moving Average

Описание

array trader_dema ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Arithmetic Div

  • « trader_dema
  • trader_dx »
  • PHP Manual
  • Trader Функции
  • Vector Arithmetic Div

trader_div

(PECL trader >= 0.2.0)

trader_div — Vector Arithmetic Div

Описание

array trader_div ( array $real0 , array $real1 )

Divides each value from real0 by the corresponding value from real1 and returns the resulting array.

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Directional Movement Index

  • « trader_div
  • trader_ema »
  • PHP Manual
  • Trader Функции
  • Directional Movement Index

trader_dx

(PECL trader >= 0.2.0)

trader_dx — Directional Movement Index

Описание

array trader_dx ( array $high , array $low , array $close [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Exponential Moving Average

  • « trader_dx
  • trader_errno »
  • PHP Manual
  • Trader Функции
  • Exponential Moving Average

trader_ema

(PECL trader >= 0.2.0)

trader_ema — Exponential Moving Average

Описание

array trader_ema ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Get error code

  • « trader_ema
  • trader_exp »
  • PHP Manual
  • Trader Функции
  • Get error code

trader_errno

(PECL trader >= 0.3.0)

trader_errno — Get error code

Описание

integer trader_errno ( void )

Get error code of the last operation.

Возвращаемые значения

Returns the error code identified by one of the TRADER_ERR_* constants.


Vector Arithmetic Exp

  • « trader_errno
  • trader_floor »
  • PHP Manual
  • Trader Функции
  • Vector Arithmetic Exp

trader_exp

(PECL trader >= 0.2.0)

trader_exp — Vector Arithmetic Exp

Описание

array trader_exp ( array $real )

Calculates e raised to the power of each value in real. Returns an array with the calculated data.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Floor

  • « trader_exp
  • trader_get_compat »
  • PHP Manual
  • Trader Функции
  • Vector Floor

trader_floor

(PECL trader >= 0.2.0)

trader_floor — Vector Floor

Описание

array trader_floor ( array $real )

Calculates the next lowest integer for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Get compatibility mode

  • « trader_floor
  • trader_get_unstable_period »
  • PHP Manual
  • Trader Функции
  • Get compatibility mode

trader_get_compat

(PECL trader >= 0.2.2)

trader_get_compat — Get compatibility mode

Описание

integer trader_get_compat ( void )

Get compatibility mode which affects the way calculations are done by all the extension functions.

Возвращаемые значения

Returns the compatibility mode id which can be identified by TRADER_COMPATIBILITY_* series of constants.


Get unstable period

  • « trader_get_compat
  • trader_ht_dcperiod »
  • PHP Manual
  • Trader Функции
  • Get unstable period

trader_get_unstable_period

(PECL trader >= 0.2.2)

trader_get_unstable_period — Get unstable period

Описание

integer trader_get_unstable_period ( integer $functionId )

Get unstable period factor for a particular function.

Список параметров

functionId

Function ID the factor to be read for. TRADER_FUNC_UNST_* series of constants should be used.

Возвращаемые значения

Returns the unstable period factor for the corresponding function.


Hilbert Transform - Dominant Cycle Period

  • « trader_get_unstable_period
  • trader_ht_dcphase »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - Dominant Cycle Period

trader_ht_dcperiod

(PECL trader >= 0.2.0)

trader_ht_dcperiod — Hilbert Transform - Dominant Cycle Period

Описание

array trader_ht_dcperiod ( array $real )

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hilbert Transform - Dominant Cycle Phase

  • « trader_ht_dcperiod
  • trader_ht_phasor »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - Dominant Cycle Phase

trader_ht_dcphase

(PECL trader >= 0.2.0)

trader_ht_dcphase — Hilbert Transform - Dominant Cycle Phase

Описание

array trader_ht_dcphase ( array $real )

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hilbert Transform - Phasor Components

  • « trader_ht_dcphase
  • trader_ht_sine »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - Phasor Components

trader_ht_phasor

(PECL trader >= 0.2.0)

trader_ht_phasor — Hilbert Transform - Phasor Components

Описание

array trader_ht_phasor ( array $real )

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hilbert Transform - SineWave

  • « trader_ht_phasor
  • trader_ht_trendline »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - SineWave

trader_ht_sine

(PECL trader >= 0.2.0)

trader_ht_sine — Hilbert Transform - SineWave

Описание

array trader_ht_sine ( array $real )

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hilbert Transform - Instantaneous Trendline

  • « trader_ht_sine
  • trader_ht_trendmode »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - Instantaneous Trendline

trader_ht_trendline

(PECL trader >= 0.2.0)

trader_ht_trendline — Hilbert Transform - Instantaneous Trendline

Описание

array trader_ht_trendline ( array $real )

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Hilbert Transform - Trend vs Cycle Mode

  • « trader_ht_trendline
  • trader_kama »
  • PHP Manual
  • Trader Функции
  • Hilbert Transform - Trend vs Cycle Mode

trader_ht_trendmode

(PECL trader >= 0.2.0)

trader_ht_trendmode — Hilbert Transform - Trend vs Cycle Mode

Описание

array trader_ht_trendmode ( array $real )

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Kaufman Adaptive Moving Average

  • « trader_ht_trendmode
  • trader_linearreg_angle »
  • PHP Manual
  • Trader Функции
  • Kaufman Adaptive Moving Average

trader_kama

(PECL trader >= 0.2.0)

trader_kama — Kaufman Adaptive Moving Average

Описание

array trader_kama ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Linear Regression Angle

  • « trader_kama
  • trader_linearreg_intercept »
  • PHP Manual
  • Trader Функции
  • Linear Regression Angle

trader_linearreg_angle

(PECL trader >= 0.2.0)

trader_linearreg_angle — Linear Regression Angle

Описание

array trader_linearreg_angle ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Linear Regression Intercept

  • « trader_linearreg_angle
  • trader_linearreg_slope »
  • PHP Manual
  • Trader Функции
  • Linear Regression Intercept

trader_linearreg_intercept

(PECL trader >= 0.2.0)

trader_linearreg_intercept — Linear Regression Intercept

Описание

array trader_linearreg_intercept ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Linear Regression Slope

  • « trader_linearreg_intercept
  • trader_linearreg »
  • PHP Manual
  • Trader Функции
  • Linear Regression Slope

trader_linearreg_slope

(PECL trader >= 0.2.0)

trader_linearreg_slope — Linear Regression Slope

Описание

array trader_linearreg_slope ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Linear Regression

  • « trader_linearreg_slope
  • trader_ln »
  • PHP Manual
  • Trader Функции
  • Linear Regression

trader_linearreg

(PECL trader >= 0.2.0)

trader_linearreg — Linear Regression

Описание

array trader_linearreg ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Log Natural

  • « trader_linearreg
  • trader_log10 »
  • PHP Manual
  • Trader Функции
  • Vector Log Natural

trader_ln

(PECL trader >= 0.2.0)

trader_ln — Vector Log Natural

Описание

array trader_ln ( array $real )

Calculates the natural logarithm for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Log10

  • « trader_ln
  • trader_ma »
  • PHP Manual
  • Trader Функции
  • Vector Log10

trader_log10

(PECL trader >= 0.2.0)

trader_log10 — Vector Log10

Описание

array trader_log10 ( array $real )

Calculates the base-10 logarithm for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Moving average

  • « trader_log10
  • trader_macd »
  • PHP Manual
  • Trader Функции
  • Moving average

trader_ma

(PECL trader >= 0.2.0)

trader_ma — Moving average

Описание

array trader_ma ( array $real [, integer $timePeriod [, integer $mAType ]] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

mAType

Тип скользящей средней. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Moving Average Convergence/Divergence

  • « trader_ma
  • trader_macdext »
  • PHP Manual
  • Trader Функции
  • Moving Average Convergence/Divergence

trader_macd

(PECL trader >= 0.2.0)

trader_macd — Moving Average Convergence/Divergence

Описание

array trader_macd ( array $real [, integer $fastPeriod [, integer $slowPeriod [, integer $signalPeriod ]]] )

Список параметров

real

Массив, содержащий реальные значения.

fastPeriod

Номер периода для быстрого скользящего среднего. Допустимы значения от 2 до 100000.

slowPeriod

Номер периода для медленного скользящего среднего. Допустимы значения от 2 до 100000.

signalPeriod

Сглаживание для сигнальной линии (номер периода). Допустимы значения от 1 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


MACD with controllable MA type

  • « trader_macd
  • trader_macdfix »
  • PHP Manual
  • Trader Функции
  • MACD with controllable MA type

trader_macdext

(PECL trader >= 0.2.0)

trader_macdext — MACD with controllable MA type

Описание

array trader_macdext ( array $real [, integer $fastPeriod [, integer $fastMAType [, integer $slowPeriod [, integer $slowMAType [, integer $signalPeriod [, integer $signalMAType ]]]]]] )

Список параметров

real

Массив, содержащий реальные значения.

fastPeriod

Номер периода для быстрого скользящего среднего. Допустимы значения от 2 до 100000.

fastMAType

Тип скользящей средней для быстрого скользящего среднего. Следует использовать серию констант TRADER_MA_TYPE_*.

slowPeriod

Номер периода для медленного скользящего среднего. Допустимы значения от 2 до 100000.

slowMAType

Тип скользящей средней для медленного скользящего среднего. Следует использовать серию констант TRADER_MA_TYPE_*.

signalPeriod

Сглаживание для сигнальной линии (номер периода). Допустимы значения от 1 до 100000.

signalMAType

Тип скользящей средней для сигнальной линии. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Moving Average Convergence/Divergence Fix 12/26

  • « trader_macdext
  • trader_mama »
  • PHP Manual
  • Trader Функции
  • Moving Average Convergence/Divergence Fix 12/26

trader_macdfix

(PECL trader >= 0.2.0)

trader_macdfix — Moving Average Convergence/Divergence Fix 12/26

Описание

array trader_macdfix ( array $real [, integer $signalPeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

signalPeriod

Сглаживание для сигнальной линии (номер периода). Допустимы значения от 1 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


MESA Adaptive Moving Average

  • « trader_macdfix
  • trader_mavp »
  • PHP Manual
  • Trader Функции
  • MESA Adaptive Moving Average

trader_mama

(PECL trader >= 0.2.0)

trader_mama — MESA Adaptive Moving Average

Описание

array trader_mama ( array $real [, float $fastLimit [, float $slowLimit ]] )

Список параметров

real

Массив, содержащий реальные значения.

fastLimit

Верхний предел, используемый в адаптивном алгоритме. Допустимы значения от 0.01 до 0.99.

slowLimit

Нижний предел, используемый в адаптивном алгоритме. Допустимы значения от 0.01 до 0.99.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Moving average with variable period

  • « trader_mama
  • trader_max »
  • PHP Manual
  • Trader Функции
  • Moving average with variable period

trader_mavp

(PECL trader >= 0.2.0)

trader_mavp — Moving average with variable period

Описание

array trader_mavp ( array $real , array $periods [, integer $minPeriod [, integer $maxPeriod [, integer $mAType ]]] )

Список параметров

real

Массив, содержащий реальные значения.

periods

Массив, содержащий реальные значения.

minPeriod

Значение, меньшее минимума, будет изменено на минимальный период. Допустимы значения от 2 до 100000

maxPeriod

Значение, большее максимума, будет изменено на максимальный период. Допустимы значения от 2 до 100000

mAType

Тип скользящей средней. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Highest value over a specified period

  • « trader_mavp
  • trader_maxindex »
  • PHP Manual
  • Trader Функции
  • Highest value over a specified period

trader_max

(PECL trader >= 0.2.0)

trader_max — Highest value over a specified period

Описание

array trader_max ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Index of highest value over a specified period

  • « trader_max
  • trader_medprice »
  • PHP Manual
  • Trader Функции
  • Index of highest value over a specified period

trader_maxindex

(PECL trader >= 0.2.0)

trader_maxindex — Index of highest value over a specified period

Описание

array trader_maxindex ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Median Price

  • « trader_maxindex
  • trader_mfi »
  • PHP Manual
  • Trader Функции
  • Median Price

trader_medprice

(PECL trader >= 0.2.0)

trader_medprice — Median Price

Описание

array trader_medprice ( array $high , array $low )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Money Flow Index

  • « trader_medprice
  • trader_midpoint »
  • PHP Manual
  • Trader Функции
  • Money Flow Index

trader_mfi

(PECL trader >= 0.2.0)

trader_mfi — Money Flow Index

Описание

array trader_mfi ( array $high , array $low , array $close , array $volume [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

volume

Объем торгов, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


MidPoint over period

  • « trader_mfi
  • trader_midprice »
  • PHP Manual
  • Trader Функции
  • MidPoint over period

trader_midpoint

(PECL trader >= 0.2.0)

trader_midpoint — MidPoint over period

Описание

array trader_midpoint ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Midpoint Price over period

  • « trader_midpoint
  • trader_min »
  • PHP Manual
  • Trader Функции
  • Midpoint Price over period

trader_midprice

(PECL trader >= 0.2.0)

trader_midprice — Midpoint Price over period

Описание

array trader_midprice ( array $high , array $low [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Lowest value over a specified period

  • « trader_midprice
  • trader_minindex »
  • PHP Manual
  • Trader Функции
  • Lowest value over a specified period

trader_min

(PECL trader >= 0.2.0)

trader_min — Lowest value over a specified period

Описание

array trader_min ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Index of lowest value over a specified period

  • « trader_min
  • trader_minmax »
  • PHP Manual
  • Trader Функции
  • Index of lowest value over a specified period

trader_minindex

(PECL trader >= 0.2.0)

trader_minindex — Index of lowest value over a specified period

Описание

array trader_minindex ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Lowest and highest values over a specified period

  • « trader_minindex
  • trader_minmaxindex »
  • PHP Manual
  • Trader Функции
  • Lowest and highest values over a specified period

trader_minmax

(PECL trader >= 0.2.0)

trader_minmax — Lowest and highest values over a specified period

Описание

array trader_minmax ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Indexes of lowest and highest values over a specified period

  • « trader_minmax
  • trader_minus_di »
  • PHP Manual
  • Trader Функции
  • Indexes of lowest and highest values over a specified period

trader_minmaxindex

(PECL trader >= 0.2.0)

trader_minmaxindex — Indexes of lowest and highest values over a specified period

Описание

array trader_minmaxindex ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Minus Directional Indicator

  • « trader_minmaxindex
  • trader_minus_dm »
  • PHP Manual
  • Trader Функции
  • Minus Directional Indicator

trader_minus_di

(PECL trader >= 0.2.0)

trader_minus_di — Minus Directional Indicator

Описание

array trader_minus_di ( array $high , array $low , array $close [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Minus Directional Movement

  • « trader_minus_di
  • trader_mom »
  • PHP Manual
  • Trader Функции
  • Minus Directional Movement

trader_minus_dm

(PECL trader >= 0.2.0)

trader_minus_dm — Minus Directional Movement

Описание

array trader_minus_dm ( array $high , array $low [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Momentum

  • « trader_minus_dm
  • trader_mult »
  • PHP Manual
  • Trader Функции
  • Momentum

trader_mom

(PECL trader >= 0.2.0)

trader_mom — Momentum

Описание

array trader_mom ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Arithmetic Mult

  • « trader_mom
  • trader_natr »
  • PHP Manual
  • Trader Функции
  • Vector Arithmetic Mult

trader_mult

(PECL trader >= 0.2.0)

trader_mult — Vector Arithmetic Mult

Описание

array trader_mult ( array $real0 , array $real1 )

Calculates the vector dot product of real0 with real1 and returns the resulting vector.

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Normalized Average True Range

  • « trader_mult
  • trader_obv »
  • PHP Manual
  • Trader Функции
  • Normalized Average True Range

trader_natr

(PECL trader >= 0.2.0)

trader_natr — Normalized Average True Range

Описание

array trader_natr ( array $high , array $low , array $close [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


On Balance Volume

  • « trader_natr
  • trader_plus_di »
  • PHP Manual
  • Trader Функции
  • On Balance Volume

trader_obv

(PECL trader >= 0.2.0)

trader_obv — On Balance Volume

Описание

array trader_obv ( array $real , array $volume )

Список параметров

real

Массив, содержащий реальные значения.

volume

Объем торгов, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Plus Directional Indicator

  • « trader_obv
  • trader_plus_dm »
  • PHP Manual
  • Trader Функции
  • Plus Directional Indicator

trader_plus_di

(PECL trader >= 0.2.0)

trader_plus_di — Plus Directional Indicator

Описание

array trader_plus_di ( array $high , array $low , array $close [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Plus Directional Movement

  • « trader_plus_di
  • trader_ppo »
  • PHP Manual
  • Trader Функции
  • Plus Directional Movement

trader_plus_dm

(PECL trader >= 0.2.0)

trader_plus_dm — Plus Directional Movement

Описание

array trader_plus_dm ( array $high , array $low [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Percentage Price Oscillator

  • « trader_plus_dm
  • trader_roc »
  • PHP Manual
  • Trader Функции
  • Percentage Price Oscillator

trader_ppo

(PECL trader >= 0.2.0)

trader_ppo — Percentage Price Oscillator

Описание

array trader_ppo ( array $real [, integer $fastPeriod [, integer $slowPeriod [, integer $mAType ]]] )

Список параметров

real

Массив, содержащий реальные значения.

fastPeriod

Номер периода для быстрого скользящего среднего. Допустимы значения от 2 до 100000.

slowPeriod

Номер периода для медленного скользящего среднего. Допустимы значения от 2 до 100000.

mAType

Тип скользящей средней. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Rate of change : ((price/prevPrice)-1)*100

  • « trader_ppo
  • trader_rocp »
  • PHP Manual
  • Trader Функции
  • Rate of change : ((price/prevPrice)-1)*100

trader_roc

(PECL trader >= 0.2.0)

trader_roc — Rate of change : ((price/prevPrice)-1)*100

Описание

array trader_roc ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Rate of change Percentage: (price-prevPrice)/prevPrice

  • « trader_roc
  • trader_rocr100 »
  • PHP Manual
  • Trader Функции
  • Rate of change Percentage: (price-prevPrice)/prevPrice

trader_rocp

(PECL trader >= 0.2.0)

trader_rocp — Rate of change Percentage: (price-prevPrice)/prevPrice

Описание

array trader_rocp ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Rate of change ratio 100 scale: (price/prevPrice)*100

  • « trader_rocp
  • trader_rocr »
  • PHP Manual
  • Trader Функции
  • Rate of change ratio 100 scale: (price/prevPrice)*100

trader_rocr100

(PECL trader >= 0.2.0)

trader_rocr100 — Rate of change ratio 100 scale: (price/prevPrice)*100

Описание

array trader_rocr100 ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Rate of change ratio: (price/prevPrice)

  • « trader_rocr100
  • trader_rsi »
  • PHP Manual
  • Trader Функции
  • Rate of change ratio: (price/prevPrice)

trader_rocr

(PECL trader >= 0.2.0)

trader_rocr — Rate of change ratio: (price/prevPrice)

Описание

array trader_rocr ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Relative Strength Index

  • « trader_rocr
  • trader_sar »
  • PHP Manual
  • Trader Функции
  • Relative Strength Index

trader_rsi

(PECL trader >= 0.2.0)

trader_rsi — Relative Strength Index

Описание

array trader_rsi ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Parabolic SAR

  • « trader_rsi
  • trader_sarext »
  • PHP Manual
  • Trader Функции
  • Parabolic SAR

trader_sar

(PECL trader >= 0.2.0)

trader_sar — Parabolic SAR

Описание

array trader_sar ( array $high , array $low [, float $acceleration [, float $maximum ]] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

acceleration

Acceleration Factor used up to the Maximum value. Valid range from 0 to TRADER_REAL_MAX.

maximum

Acceleration Factor Maximum value. Valid range from 0 to TRADER_REAL_MAX.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Parabolic SAR - Extended

  • « trader_sar
  • trader_set_compat »
  • PHP Manual
  • Trader Функции
  • Parabolic SAR - Extended

trader_sarext

(PECL trader >= 0.2.0)

trader_sarext — Parabolic SAR - Extended

Описание

array trader_sarext ( array $high , array $low [, float $startValue [, float $offsetOnReverse [, float $accelerationInitLong [, float $accelerationLong [, float $accelerationMaxLong [, float $accelerationInitShort [, float $accelerationShort [, float $accelerationMaxShort ]]]]]]]] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

startValue

Start value and direction. 0 for Auto, >0 for Long, <0 for Short. Valid range from TRADER_REAL_MIN to TRADER_REAL_MAX.

offsetOnReverse

Percent offset added/removed to initial stop on short/long reversal. Valid range from 0 to TRADER_REAL_MAX.

accelerationInitLong

Acceleration Factor initial value for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationLong

Acceleration Factor for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationMaxLong

Acceleration Factor maximum value for the Long direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationInitShort

Acceleration Factor initial value for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationShort

Acceleration Factor for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

accelerationMaxShort

Acceleration Factor maximum value for the Short direction. Valid range from 0 to TRADER_REAL_MAX.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Set compatibility mode

  • « trader_sarext
  • trader_set_unstable_period »
  • PHP Manual
  • Trader Функции
  • Set compatibility mode

trader_set_compat

(PECL trader >= 0.2.2)

trader_set_compat — Set compatibility mode

Описание

void trader_set_compat ( integer $compatId )

Set compatibility mode which will affect the way calculations are done by all the extension functions.

Список параметров

compatId

Compatibility Id. TRADER_COMPATIBILITY_* series of constants should be used.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Set unstable period

  • « trader_set_compat
  • trader_sin »
  • PHP Manual
  • Trader Функции
  • Set unstable period

trader_set_unstable_period

(PECL trader >= 0.2.2)

trader_set_unstable_period — Set unstable period

Описание

void trader_set_unstable_period ( integer $functionId , integer $timePeriod )

Influences unstable period factor for functions, which are sensible to it. More information about unstable periods can be found on the » TA-Lib API documentation page.

Список параметров

functionId

Function ID the factor should be set for. TRADER_FUNC_UNST_* constant series can be used to affect the corresponding function.

timePeriod

Unstable period value.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Vector Trigonometric Sin

  • « trader_set_unstable_period
  • trader_sinh »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric Sin

trader_sin

(PECL trader >= 0.2.0)

trader_sin — Vector Trigonometric Sin

Описание

array trader_sin ( array $real )

Calculates the sine for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Trigonometric Sinh

  • « trader_sin
  • trader_sma »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric Sinh

trader_sinh

(PECL trader >= 0.2.0)

trader_sinh — Vector Trigonometric Sinh

Описание

array trader_sinh ( array $real )

Calculates the hyperbolic sine for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Simple Moving Average

  • « trader_sinh
  • trader_sqrt »
  • PHP Manual
  • Trader Функции
  • Simple Moving Average

trader_sma

(PECL trader >= 0.2.0)

trader_sma — Simple Moving Average

Описание

array trader_sma ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Square Root

  • « trader_sma
  • trader_stddev »
  • PHP Manual
  • Trader Функции
  • Vector Square Root

trader_sqrt

(PECL trader >= 0.2.0)

trader_sqrt — Vector Square Root

Описание

array trader_sqrt ( array $real )

Calculates the square root of each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Standard Deviation

  • « trader_sqrt
  • trader_stoch »
  • PHP Manual
  • Trader Функции
  • Standard Deviation

trader_stddev

(PECL trader >= 0.2.0)

trader_stddev — Standard Deviation

Описание

array trader_stddev ( array $real [, integer $timePeriod [, float $nbDev ]] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

nbDev

Возвращаемые значения

Returns an array with calculated data or false on failure.


Stochastic

  • « trader_stddev
  • trader_stochf »
  • PHP Manual
  • Trader Функции
  • Stochastic

trader_stoch

(PECL trader >= 0.2.0)

trader_stoch — Stochastic

Описание

array trader_stoch ( array $high , array $low , array $close [, integer $fastK_Period [, integer $slowK_Period [, integer $slowK_MAType [, integer $slowD_Period [, integer $slowD_MAType ]]]]] )

Список параметров

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_*.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Stochastic Fast

  • « trader_stoch
  • trader_stochrsi »
  • PHP Manual
  • Trader Функции
  • Stochastic Fast

trader_stochf

(PECL trader >= 0.2.0)

trader_stochf — Stochastic Fast

Описание

array trader_stochf ( array $high , array $low , array $close [, integer $fastK_Period [, integer $fastD_Period [, integer $fastD_MAType ]]] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

fastK_Period

Временной период для построения линии Fast-K. Допустимы значения от 1 до 100000.

fastD_Period

Сглаживание для создания линии Fast-D. Допустимы значения от 1 до 100000, обычно установлено значение 3.

fastD_MAType

Тип скользящей средней для Fast-D. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Stochastic Relative Strength Index

  • « trader_stochf
  • trader_sub »
  • PHP Manual
  • Trader Функции
  • Stochastic Relative Strength Index

trader_stochrsi

(PECL trader >= 0.2.0)

trader_stochrsi — Stochastic Relative Strength Index

Описание

array trader_stochrsi ( array $real [, integer $timePeriod [, integer $fastK_Period [, integer $fastD_Period [, integer $fastD_MAType ]]]] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

fastK_Period

Временной период для построения линии Fast-K. Допустимы значения от 1 до 100000.

fastD_Period

Сглаживание для создания линии Fast-D. Допустимы значения от 1 до 100000, обычно установлено значение 3.

fastD_MAType

Тип скользящей средней для Fast-D. Следует использовать серию констант TRADER_MA_TYPE_*.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Arithmetic Subtraction

  • « trader_stochrsi
  • trader_sum »
  • PHP Manual
  • Trader Функции
  • Vector Arithmetic Subtraction

trader_sub

(PECL trader >= 0.2.0)

trader_sub — Vector Arithmetic Subtraction

Описание

array trader_sub ( array $real0 , array $real1 )

Calculates the vector subtraction of real1 from real0 and returns the resulting vector.

Список параметров

real0

Массив, содержащий реальные значения.

real1

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Summation

  • « trader_sub
  • trader_t3 »
  • PHP Manual
  • Trader Функции
  • Summation

trader_sum

(PECL trader >= 0.2.0)

trader_sum — Summation

Описание

array trader_sum ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Triple Exponential Moving Average (T3)

  • « trader_sum
  • trader_tan »
  • PHP Manual
  • Trader Функции
  • Triple Exponential Moving Average (T3)

trader_t3

(PECL trader >= 0.2.0)

trader_t3 — Triple Exponential Moving Average (T3)

Описание

array trader_t3 ( array $real [, integer $timePeriod [, float $vFactor ]] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

vFactor

Коэффициент объема. Допустимы значения от 1 до 0.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Trigonometric Tan

  • « trader_t3
  • trader_tanh »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric Tan

trader_tan

(PECL trader >= 0.2.0)

trader_tan — Vector Trigonometric Tan

Описание

array trader_tan ( array $real )

Calculates the tangent for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Vector Trigonometric Tanh

  • « trader_tan
  • trader_tema »
  • PHP Manual
  • Trader Функции
  • Vector Trigonometric Tanh

trader_tanh

(PECL trader >= 0.2.0)

trader_tanh — Vector Trigonometric Tanh

Описание

array trader_tanh ( array $real )

Calculates the hyperbolic tangent for each value in real and returns the resulting array.

Список параметров

real

Массив, содержащий реальные значения.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Triple Exponential Moving Average

  • « trader_tanh
  • trader_trange »
  • PHP Manual
  • Trader Функции
  • Triple Exponential Moving Average

trader_tema

(PECL trader >= 0.2.0)

trader_tema — Triple Exponential Moving Average

Описание

array trader_tema ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


True Range

  • « trader_tema
  • trader_trima »
  • PHP Manual
  • Trader Функции
  • True Range

trader_trange

(PECL trader >= 0.2.0)

trader_trange — True Range

Описание

array trader_trange ( array $high , array $low , array $close )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Triangular Moving Average

  • « trader_trange
  • trader_trix »
  • PHP Manual
  • Trader Функции
  • Triangular Moving Average

trader_trima

(PECL trader >= 0.2.0)

trader_trima — Triangular Moving Average

Описание

array trader_trima ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

  • « trader_trima
  • trader_tsf »
  • PHP Manual
  • Trader Функции
  • 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

trader_trix

(PECL trader >= 0.2.0)

trader_trix — 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA

Описание

array trader_trix ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Time Series Forecast

  • « trader_trix
  • trader_typprice »
  • PHP Manual
  • Trader Функции
  • Time Series Forecast

trader_tsf

(PECL trader >= 0.2.0)

trader_tsf — Time Series Forecast

Описание

array trader_tsf ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Typical Price

  • « trader_tsf
  • trader_ultosc »
  • PHP Manual
  • Trader Функции
  • Typical Price

trader_typprice

(PECL trader >= 0.2.0)

trader_typprice — Typical Price

Описание

array trader_typprice ( array $high , array $low , array $close )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Ultimate Oscillator

  • « trader_typprice
  • trader_var »
  • PHP Manual
  • Trader Функции
  • Ultimate Oscillator

trader_ultosc

(PECL trader >= 0.2.0)

trader_ultosc — Ultimate Oscillator

Описание

array trader_ultosc ( array $high , array $low , array $close [, integer $timePeriod1 [, integer $timePeriod2 [, integer $timePeriod3 ]]] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod1

Number of bars for 1st period. Valid range from 1 to 100000.

timePeriod2

Number of bars for 2nd period. Valid range from 1 to 100000.

timePeriod3

Number of bars for 3rd period. Valid range from 1 to 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Variance

  • « trader_ultosc
  • trader_wclprice »
  • PHP Manual
  • Trader Функции
  • Variance

trader_var

(PECL trader >= 0.2.0)

trader_var — Variance

Описание

array trader_var ( array $real [, integer $timePeriod [, float $nbDev ]] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

nbDev

Возвращаемые значения

Returns an array with calculated data or false on failure.


Weighted Close Price

  • « trader_var
  • trader_willr »
  • PHP Manual
  • Trader Функции
  • Weighted Close Price

trader_wclprice

(PECL trader >= 0.2.0)

trader_wclprice — Weighted Close Price

Описание

array trader_wclprice ( array $high , array $low , array $close )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Williams' %R

  • « trader_wclprice
  • trader_wma »
  • PHP Manual
  • Trader Функции
  • Williams' %R

trader_willr

(PECL trader >= 0.2.0)

trader_willr — Williams' %R

Описание

array trader_willr ( array $high , array $low , array $close [, integer $timePeriod ] )

Список параметров

high

Высокая цена, массив реальных значений.

low

Низкая цена, массив реальных значений.

close

Цена закрытия, массив реальных значений.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Weighted Moving Average

  • « trader_willr
  • Генерация нетекстовых MIME форматов »
  • PHP Manual
  • Trader Функции
  • Weighted Moving Average

trader_wma

(PECL trader >= 0.2.0)

trader_wma — Weighted Moving Average

Описание

array trader_wma ( array $real [, integer $timePeriod ] )

Список параметров

real

Массив, содержащий реальные значения.

timePeriod

Номер периода. Допустимы значения от 2 до 100000.

Возвращаемые значения

Returns an array with calculated data or false on failure.


Генерация нетекстовых MIME форматов

  • FDF — Формат данных форм
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • FDF
  • GnuPG — GNU Privacy Guard
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • GnuPG Функции
  • haru — Haru PDF
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Встроенные шрифты и кодировки
    • HaruException — Класс HaruException
    • HaruDoc — Класс HaruDoc
    • HaruPage — Класс HaruPage
    • HaruFont — Класс HaruFont
    • HaruImage — Класс HaruImage
    • HaruEncoder — Класс HaruEncoder
    • HaruOutline — Класс HaruOutline
    • HaruAnnotation — Класс HaruAnnotation
    • HaruDestination — Класс HaruDestination
  • Ming — Ming (flash)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Ming Функции
    • SWFAction — The SWFAction class
    • SWFBitmap — The SWFBitmap class
    • SWFButton — The SWFButton class
    • SWFDisplayItem — The SWFDisplayItem class
    • SWFFill — The SWFFill class
    • SWFFont — The SWFFont class
    • SWFFontChar — The SWFFontChar class
    • SWFGradient — The SWFGradient class
    • SWFMorph — The SWFMorph class
    • SWFMovie — The SWFMovie class
    • SWFPrebuiltClip — The SWFPrebuiltClip class
    • SWFShape — The SWFShape class
    • SWFSound — The SWFSound class
    • SWFSoundInstance — The SWFSoundInstance class
    • SWFSprite — The SWFSprite class
    • SWFText — The SWFText class
    • SWFTextField — The SWFTextField class
    • SWFVideoStream — The SWFVideoStream class
  • PDF
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции PDF
  • PS — Создание документов PostScript
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • PS Функции
  • RPM Reader — RPM Header Reading
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • RPM Reader Функции


Формат данных форм

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • FDF
    • fdf_add_doc_javascript — Adds javascript code to the FDF document
    • fdf_add_template — Добавляет шаблон в FDF-документ
    • fdf_close — Закрывает FDF-документ
    • fdf_create — Create a new FDF document
    • fdf_enum_values — Call a user defined function for each document value
    • fdf_errno — Return error code for last fdf operation
    • fdf_error — Return error description for FDF error code
    • fdf_get_ap — Get the appearance of a field
    • fdf_get_attachment — Extracts uploaded file embedded in the FDF
    • fdf_get_encoding — Получает значение ключа /Encoding
    • fdf_get_file — Получает значение ключа /F
    • fdf_get_flags — Gets the flags of a field
    • fdf_get_opt — Gets a value from the opt array of a field
    • fdf_get_status — Получает значение ключа /STATUS
    • fdf_get_value — Get the value of a field
    • fdf_get_version — Gets version number for FDF API or file
    • fdf_header — Sets FDF-specific output headers
    • fdf_next_field_name — Get the next field name
    • fdf_open_string — Read a FDF document from a string
    • fdf_open — Open a FDF document
    • fdf_remove_item — Sets target frame for form
    • fdf_save_string — Returns the FDF document as a string
    • fdf_save — Save a FDF document
    • fdf_set_ap — Set the appearance of a field
    • fdf_set_encoding — Sets FDF character encoding
    • fdf_set_file — Set PDF document to display FDF data in
    • fdf_set_flags — Sets a flag of a field
    • fdf_set_javascript_action — Sets an javascript action of a field
    • fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF
    • fdf_set_opt — Sets an option of a field
    • fdf_set_status — Set the value of the /STATUS key
    • fdf_set_submit_form_action — Sets a submit form action of a field
    • fdf_set_target_frame — Set target frame for form display
    • fdf_set_value — Set the value of a field
    • fdf_set_version — Sets version number for a FDF file


Введение

Формал данных форм (FDF) - это формат для обработки форм в документах PDF. Более подробно данный формат описан в документации на сайте » http://www.adobe.com/devnet/acrobat/fdftoolkit.html.

Главная идея FDF похода на формы HTML. Отличие в только в формате передачи данных на сервер после нажатия кнопки "Отправить" (как раз про это и FDF) и формате самой формы (а это PDF). Обработка данных формы - это одна из возможностей, предоставляемых функциями fdf. Другая возможность - можно автоматически заполнить существующую форму данными. В этом случае мы можем создать документ FDF (fdf_create()), задать значения для каждого полля ввода (fdf_set_value()) и связать его с формой PDF (fdf_set_file()). В итоге она будет послана браузеру с Mime-типом application/vnd.fdf. Плагин "Acrobat reader" в вашем браузере опознает Mime-тип, прочитает связанную форму PDF и заполнит ее данными из документа FDF.

Если вы посмотрите на документ FDF в простом текстовом редакторе, вы увидите каталог объектов с именем FDF. Такой объект может содержать набор элементов, таких как Fields, F, Status и т.д. Наиболее часто использующаяся запись - это Fields, которая содержит список полей ввода, и F, которая содержит имя файла документа PDF, для которого предназначены данные. Эти записи называются в документации PDF как /F-Key или /Status-Key. Изменение этих записей производится такими функциями как fdf_set_file() и fdf_set_status(). Поля модифицируются функциями fdf_set_value(), fdf_set_opt() и т.д.


Требования

Вам будет нужен "FDF toolkit SDK", который доступен по ссылке » http://www.adobe.com/devnet/acrobat/fdftoolkit.html. Начиная с PHP 4.3.0 вам необходима SDK версии не ниже 5.0. Библиотека "FDF toolkit" только в виде бинарного файла. Adobe поддерживает Win32, Linux, Solaris и AIX.


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » http://svn.php.net/viewvc/pecl/fdf.

Начиная с PHP 5.3.0 это расширение более не поставляется в составе PHP.

Замечание: Если у вас возникли проблемы при конфигурировании поддержки fdftk в PHP, проверьте, где находятся заголовочный файл fdftk.h и библиотека libfdftk.so. Скрипт configure поддерживает обе структуры каталогов поставки FDF SDK и обычно используют раскладку DIR/include / DIR/lib, так что вы указать или каталог, в который распаковали установочный пакет, либо соответствующие директории вашей операционной системы, например /usr/local/include и /usr/local/lib и конфигурировать с опцией --with-fdftk=/usr/local .

Замечание: Для пользователей Win32

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: fdftk.dll


Типы ресурсов

Большинство функций fdf требую ресурсfdf в качестве первого параметра. Ресурс fdf указывает на открытый файл fdf. fdf можно получить с помощью функций fdf_create(), fdf_open() и fdf_open_string().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

FDFValue (integer)
FDFStatus (integer)
FDFFile (integer)
FDFID (integer)
FDFFf (integer)
FDFSetFf (integer)
FDFClearFf (integer)
FDFFlags (integer)
FDFSetF (integer)
FDFClrF (integer)
FDFAP (integer)
FDFAS (integer)
FDFAction (integer)
FDFAA (integer)
FDFAPRef (integer)
FDFIF (integer)
FDFEnter (integer)
FDFExit (integer)
FDFDown (integer)
FDFUp (integer)
FDFFormat (integer)
FDFValidate (integer)
FDFKeystroke (integer)
FDFCalculate (integer)
FDFNormalAP (integer)
FDFRolloverAP (integer)
FDFDownAP (integer)


Примеры

Следующий пример демонстрирует простую обработку данных.

Пример #1 Обработка документа FDF

<?php
// Откроем fdf из входной строки, предоставляемой этим расширением
// Форма pdf содержит несколько полей для ввода со следующими именами:
// volume, date, comment, publisher, preparer, и два чекбокса
// show_publisher и show_preparer.
$fdf = fdf_open_string($HTTP_FDF_DATA);
$volume = fdf_get_value($fdf, "volume");
echo "Поле volume содержит '<b>$volume</b>'<br />";

$date = fdf_get_value($fdf, "date");
echo "Поле date содержит '<b>$date</b>'<br />";

$comment = fdf_get_value($fdf, "comment");
echo "Поле comment содержит '<b>$comment</b>'<br />";

if (fdf_get_value($fdf, "show_publisher") == "On") {
  $publisher = fdf_get_value($fdf, "publisher");
  echo "Поле publisher содержит '<b>$publisher</b>'<br />";
} else
  echo "Поле publisher не должно быть показано.<br />";

if (fdf_get_value($fdf, "show_preparer") == "On") {
  $preparer = fdf_get_value($fdf, "preparer");
  echo "Поле preparer содержит '<b>$preparer</b>'<br />";
} else
  echo "Поле preparer не должно быть показано.<br />";
fdf_close($fdf);
?>


FDF

Содержание

  • fdf_add_doc_javascript — Adds javascript code to the FDF document
  • fdf_add_template — Добавляет шаблон в FDF-документ
  • fdf_close — Закрывает FDF-документ
  • fdf_create — Create a new FDF document
  • fdf_enum_values — Call a user defined function for each document value
  • fdf_errno — Return error code for last fdf operation
  • fdf_error — Return error description for FDF error code
  • fdf_get_ap — Get the appearance of a field
  • fdf_get_attachment — Extracts uploaded file embedded in the FDF
  • fdf_get_encoding — Получает значение ключа /Encoding
  • fdf_get_file — Получает значение ключа /F
  • fdf_get_flags — Gets the flags of a field
  • fdf_get_opt — Gets a value from the opt array of a field
  • fdf_get_status — Получает значение ключа /STATUS
  • fdf_get_value — Get the value of a field
  • fdf_get_version — Gets version number for FDF API or file
  • fdf_header — Sets FDF-specific output headers
  • fdf_next_field_name — Get the next field name
  • fdf_open_string — Read a FDF document from a string
  • fdf_open — Open a FDF document
  • fdf_remove_item — Sets target frame for form
  • fdf_save_string — Returns the FDF document as a string
  • fdf_save — Save a FDF document
  • fdf_set_ap — Set the appearance of a field
  • fdf_set_encoding — Sets FDF character encoding
  • fdf_set_file — Set PDF document to display FDF data in
  • fdf_set_flags — Sets a flag of a field
  • fdf_set_javascript_action — Sets an javascript action of a field
  • fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF
  • fdf_set_opt — Sets an option of a field
  • fdf_set_status — Set the value of the /STATUS key
  • fdf_set_submit_form_action — Sets a submit form action of a field
  • fdf_set_target_frame — Set target frame for form display
  • fdf_set_value — Set the value of a field
  • fdf_set_version — Sets version number for a FDF file


Adds javascript code to the FDF document

  • « FDF
  • fdf_add_template »
  • PHP Manual
  • FDF
  • Adds javascript code to the FDF document

fdf_add_doc_javascript

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_add_doc_javascript — Adds javascript code to the FDF document

Описание

bool fdf_add_doc_javascript ( resource $fdf_document , string $script_name , string $script_code )

Adds a script to the FDF, which Acrobat then adds to the doc-level scripts of a document, once the FDF is imported into it.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

script_name

The script name.

script_code

The script code. It is strongly suggested to use \r for linebreaks within the script code.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Adding JavaScript code to a FDF

<?php
$fdf = fdf_create();
fdf_add_doc_javascript($fdf, "PlusOne", "function PlusOne(x)\r{\r  return x+1;\r}\r");
fdf_save($fdf);
?>

will create a FDF like this:

%FDF-1.2
%aaIO
1 0 obj
<<
/FDF << /JavaScript << /Doc [ (PlusOne)(function PlusOne\(x\)\r{\r  return x+1;\r}\r)] >> >>
>>
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF


Добавляет шаблон в FDF-документ

  • « fdf_add_doc_javascript
  • fdf_close »
  • PHP Manual
  • FDF
  • Добавляет шаблон в FDF-документ

fdf_add_template

(PHP 4, PHP 5, PHP 7)

fdf_add_template — Добавляет шаблон в FDF-документ

Описание

bool fdf_add_template ( resource $fdf_document , int $newpage , string $filename , string $template , int $rename )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Закрывает FDF-документ

  • « fdf_add_template
  • fdf_create »
  • PHP Manual
  • FDF
  • Закрывает FDF-документ

fdf_close

(PHP 4, PHP 5, PHP 7)

fdf_close — Закрывает FDF-документ

Описание

void fdf_close ( resource $fdf_document )

Закрывает FDF-документ.

Список параметров

fdf_document

Дескриптор FDF-документа, возвращенный функциями fdf_create(), fdf_open() или fdf_open_string().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • fdf_open() - Open a FDF document


Create a new FDF document

  • « fdf_close
  • fdf_enum_values »
  • PHP Manual
  • FDF
  • Create a new FDF document

fdf_create

(PHP 4, PHP 5, PHP 7)

fdf_create — Create a new FDF document

Описание

resource fdf_create ( void )

Creates a new FDF document.

This function is needed if one would like to populate input fields in a PDF document with data.

Возвращаемые значения

Returns a FDF document handle, or FALSE on error.

Примеры

Пример #1 Populating a PDF document

<?php
$outfdf = fdf_create();
fdf_set_value($outfdf, "volume", $volume, 0);

fdf_set_file($outfdf, "http:/testfdf/resultlabel.pdf");
fdf_save($outfdf, "outtest.fdf");
fdf_close($outfdf);
Header("Content-type: application/vnd.fdf");
$fp = fopen("outtest.fdf", "r");
fpassthru($fp);
unlink("outtest.fdf");
?>

Смотрите также

  • fdf_close() - Закрывает FDF-документ
  • fdf_save() - Save a FDF document
  • fdf_open() - Open a FDF document


Call a user defined function for each document value

  • « fdf_create
  • fdf_errno »
  • PHP Manual
  • FDF
  • Call a user defined function for each document value

fdf_enum_values

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_enum_values — Call a user defined function for each document value

Описание

bool fdf_enum_values ( resource $fdf_document , callable $function [, mixed $userdata ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Return error code for last fdf operation

  • « fdf_enum_values
  • fdf_error »
  • PHP Manual
  • FDF
  • Return error code for last fdf operation

fdf_errno

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_errno — Return error code for last fdf operation

Описание

int fdf_errno ( void )

Gets the error code set by the last FDF function call.

A textual description of the error may be obtained using with fdf_error().

Возвращаемые значения

Returns the error code as an integer, or zero if there was no errors.

Смотрите также

  • fdf_error() - Return error description for FDF error code


Return error description for FDF error code

  • « fdf_errno
  • fdf_get_ap »
  • PHP Manual
  • FDF
  • Return error description for FDF error code

fdf_error

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_error — Return error description for FDF error code

Описание

string fdf_error ([ int $error_code = -1 ] )

Gets a textual description for the FDF error code given in error_code.

Список параметров

error_code

An error code obtained with fdf_errno(). If not provided, this function uses the internal error code set by the last operation.

Возвращаемые значения

Returns the error message as a string, or the string no error if nothing went wrong.

Смотрите также

  • fdf_errno() - Return error code for last fdf operation


Get the appearance of a field

  • « fdf_error
  • fdf_get_attachment »
  • PHP Manual
  • FDF
  • Get the appearance of a field

fdf_get_ap

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_ap — Get the appearance of a field

Описание

bool fdf_get_ap ( resource $fdf_document , string $field , int $face , string $filename )

Gets the appearance of a field (i.e. the value of the /AP key) and stores it in a file.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

field

face

The possible values are FDFNormalAP, FDFRolloverAP and FDFDownAP.

filename

The appearance will be stored in this parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Extracts uploaded file embedded in the FDF

  • « fdf_get_ap
  • fdf_get_encoding »
  • PHP Manual
  • FDF
  • Extracts uploaded file embedded in the FDF

fdf_get_attachment

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_attachment — Extracts uploaded file embedded in the FDF

Описание

array fdf_get_attachment ( resource $fdf_document , string $fieldname , string $savepath )

Extracts a file uploaded by means of the "file selection" field fieldname and stores it under savepath.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

savepath

May be the name of a plain file or an existing directory in which the file is to be created under its original name. Any existing file under the same name will be overwritten.

Замечание:

There seems to be no other way to find out the original filename but to store the file using a directory as savepath and check for the basename it was stored under.

Возвращаемые значения

The returned array contains the following fields:

  • path - path were the file got stored
  • size - size of the stored file in bytes
  • type - mimetype if given in the FDF

Примеры

Пример #1 Storing an uploaded file

<?php
  $fdf = fdf_open_string($HTTP_FDF_DATA);
  $data = fdf_get_attachment($fdf, "filename", "/tmpdir");
  echo "The uploaded file is stored in $data[path]";
?>


Получает значение ключа /Encoding

  • « fdf_get_attachment
  • fdf_get_file »
  • PHP Manual
  • FDF
  • Получает значение ключа /Encoding

fdf_get_encoding

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_encoding — Получает значение ключа /Encoding

Описание

string fdf_get_encoding ( resource $fdf_document )

Получает значение ключа /Encoding.

Список параметров

fdf_document

Дескриптор FDF-документа, возвращенный функциями fdf_create(), fdf_open() или fdf_open_string().

Возвращаемые значения

Возвращает кодировку в виде строки. Возвращается пустая строка, если используется схема по умолчанию PDFDocEncoding/Unicode.

Смотрите также

  • fdf_set_encoding() - Sets FDF character encoding


Получает значение ключа /F

  • « fdf_get_encoding
  • fdf_get_flags »
  • PHP Manual
  • FDF
  • Получает значение ключа /F

fdf_get_file

(PHP 4, PHP 5, PHP 7)

fdf_get_file — Получает значение ключа /F

Описание

string fdf_get_file ( resource $fdf_document )

Получает значение ключа /F.

Список параметров

fdf_document

Дескриптор FDF-документа, возвращенный функциями fdf_create(), fdf_open() или fdf_open_string().

Возвращаемые значения

Возвращает значение ключа в виде строки.

Смотрите также

  • fdf_set_file() - Set PDF document to display FDF data in


Gets the flags of a field

  • « fdf_get_file
  • fdf_get_opt »
  • PHP Manual
  • FDF
  • Gets the flags of a field

fdf_get_flags

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_flags — Gets the flags of a field

Описание

int fdf_get_flags ( resource $fdf_document , string $fieldname , int $whichflags )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Gets a value from the opt array of a field

  • « fdf_get_flags
  • fdf_get_status »
  • PHP Manual
  • FDF
  • Gets a value from the opt array of a field

fdf_get_opt

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_opt — Gets a value from the opt array of a field

Описание

mixed fdf_get_opt ( resource $fdf_document , string $fieldname [, int $element = -1 ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получает значение ключа /STATUS

  • « fdf_get_opt
  • fdf_get_value »
  • PHP Manual
  • FDF
  • Получает значение ключа /STATUS

fdf_get_status

(PHP 4, PHP 5, PHP 7)

fdf_get_status — Получает значение ключа /STATUS

Описание

string fdf_get_status ( resource $fdf_document )

Получает значение ключа /STATUS.

Список параметров

fdf_document

Дескриптор FDF-документа, возвращенный функциями fdf_create(), fdf_open() или fdf_open_string().

Возвращаемые значения

Возвращает значение ключа в виде строки.

Смотрите также

  • fdf_set_status() - Set the value of the /STATUS key


Get the value of a field

  • « fdf_get_status
  • fdf_get_version »
  • PHP Manual
  • FDF
  • Get the value of a field

fdf_get_value

(PHP 4, PHP 5, PHP 7)

fdf_get_value — Get the value of a field

Описание

mixed fdf_get_value ( resource $fdf_document , string $fieldname [, int $which = -1 ] )

Gets the value for the requested field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

which

Elements of an array field can be retrieved by passing this optional parameter, starting at zero. For non-array fields, this parameter will be ignored.

Возвращаемые значения

Returns the field value.

Список изменений

Версия | Описание
4.3.0 | Support for arrays and the which parameter were added.

Смотрите также

  • fdf_set_value() - Set the value of a field


Gets version number for FDF API or file

  • « fdf_get_value
  • fdf_header »
  • PHP Manual
  • FDF
  • Gets version number for FDF API or file

fdf_get_version

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_get_version — Gets version number for FDF API or file

Описание

string fdf_get_version ([ resource $fdf_document ] )

Return the FDF version for the given document, or the toolkit API version number if no parameter is given.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

Возвращаемые значения

Returns the version as a string. For the current FDF toolkit 5.0 the API version number is 5.0 and the document version number is either 1.2, 1.3 or 1.4.

Смотрите также

  • fdf_set_version() - Sets version number for a FDF file


Sets FDF-specific output headers

  • « fdf_get_version
  • fdf_next_field_name »
  • PHP Manual
  • FDF
  • Sets FDF-specific output headers

fdf_header

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_header — Sets FDF-specific output headers

Описание

void fdf_header ( void )

This is a convenience function to set appropriate HTTP headers for FDF output. It sets the Content-type: to application/vnd.fdf.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Get the next field name

  • « fdf_header
  • fdf_open_string »
  • PHP Manual
  • FDF
  • Get the next field name

fdf_next_field_name

(PHP 4, PHP 5, PHP 7)

fdf_next_field_name — Get the next field name

Описание

string fdf_next_field_name ( resource $fdf_document [, string $fieldname ] )

Gets the name of the field after the given field. This name can be used with several functions.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string. If not given, the first field will be assumed.

Возвращаемые значения

Returns the field name as a string.

Примеры

Пример #1 Detecting all fieldnames in a FDF

<?php
$fdf = fdf_open($HTTP_FDF_DATA);
for ($field = fdf_next_field_name($fdf);
    $field != "";
    $field = fdf_next_field_name($fdf, $field)) {
    echo "field: $field\n";
}
?>

Смотрите также

  • fdf_get_value() - Get the value of a field


Read a FDF document from a string

  • « fdf_next_field_name
  • fdf_open »
  • PHP Manual
  • FDF
  • Read a FDF document from a string

fdf_open_string

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_open_string — Read a FDF document from a string

Описание

resource fdf_open_string ( string $fdf_data )

Reads form data from a string.

You can use fdf_open_string() together with $HTTP_FDF_DATA to process FDF form input from a remote client.

Список параметров

fdf_data

The data as returned from a PDF form or created using fdf_create() and fdf_save_string().

Возвращаемые значения

Returns a FDF document handle, or FALSE on error.

Примеры

Пример #1 Accessing the form data

<?php
$fdf = fdf_open_string($HTTP_FDF_DATA);
/* ... */
fdf_close($fdf);
?>

Смотрите также

  • fdf_open() - Open a FDF document
  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Create a new FDF document
  • fdf_save_string() - Returns the FDF document as a string


Open a FDF document

  • « fdf_open_string
  • fdf_remove_item »
  • PHP Manual
  • FDF
  • Open a FDF document

fdf_open

(PHP 4, PHP 5, PHP 7)

fdf_open — Open a FDF document

Описание

resource fdf_open ( string $filename )

Opens a file with form data.

You can also use fdf_open_string() to process the results of a PDF form POST request.

Список параметров

filename

Path to the FDF file. This file must contain the data as returned from a PDF form or created using fdf_create() and fdf_save().

Возвращаемые значения

Returns a FDF document handle, or FALSE on error.

Примеры

Пример #1 Accessing the form data

<?php
// Save the FDF data into a temp file
$fdffp = fopen("test.fdf", "w");
fwrite($fdffp, $HTTP_FDF_DATA, strlen($HTTP_FDF_DATA));
fclose($fdffp);

// Open temp file and evaluate data
$fdf = fdf_open("test.fdf");
/* ... */
fdf_close($fdf);
?>

Смотрите также

  • fdf_open_string() - Read a FDF document from a string
  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Create a new FDF document
  • fdf_save() - Save a FDF document


Sets target frame for form

  • « fdf_open
  • fdf_save_string »
  • PHP Manual
  • FDF
  • Sets target frame for form

fdf_remove_item

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_remove_item — Sets target frame for form

Описание

bool fdf_remove_item ( resource $fdf_document , string $fieldname , int $item )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns the FDF document as a string

  • « fdf_remove_item
  • fdf_save »
  • PHP Manual
  • FDF
  • Returns the FDF document as a string

fdf_save_string

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_save_string — Returns the FDF document as a string

Описание

string fdf_save_string ( resource $fdf_document )

Returns the FDF document as a string.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

Возвращаемые значения

Returns the document as a string, or FALSE on error.

Примеры

Пример #1 Retrieving FDF as a string

<?php
$fdf = fdf_create();
fdf_set_value($fdf, "foo", "bar");
$str = fdf_save_string($fdf);
fdf_close($fdf);
echo $str;
?>

Результат выполнения данного примера:

%FDF-1.2
%aaIO
1 0 obj
<<
/FDF << /Fields 2 0 R >>
>>
endobj
2 0 obj
[
<< /T (foo)/V (bar)>>
]
endobj
trailer
<<
/Root 1 0 R

>>
%%EOF

Смотрите также

  • fdf_open_string() - Read a FDF document from a string
  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Create a new FDF document
  • fdf_save() - Save a FDF document


Save a FDF document

  • « fdf_save_string
  • fdf_set_ap »
  • PHP Manual
  • FDF
  • Save a FDF document

fdf_save

(PHP 4, PHP 5, PHP 7)

fdf_save — Save a FDF document

Описание

bool fdf_save ( resource $fdf_document [, string $filename ] )

Saves a FDF document.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

filename

If provided, the resulting FDF will be written in this parameter. Otherwise, this function will write the FDF to the default PHP output stream.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_close() - Закрывает FDF-документ
  • fdf_create() - Create a new FDF document
  • fdf_save_string() - Returns the FDF document as a string


Set the appearance of a field

  • « fdf_save
  • fdf_set_encoding »
  • PHP Manual
  • FDF
  • Set the appearance of a field

fdf_set_ap

(PHP 4, PHP 5, PHP 7)

fdf_set_ap — Set the appearance of a field

Описание

bool fdf_set_ap ( resource $fdf_document , string $field_name , int $face , string $filename , int $page_number )

Sets the appearance of a field (i.e. the value of the /AP key).

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

field_name

face

The possible values FDFNormalAP, FDFRolloverAP and FDFDownAP.

filename

page_number

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets FDF character encoding

  • « fdf_set_ap
  • fdf_set_file »
  • PHP Manual
  • FDF
  • Sets FDF character encoding

fdf_set_encoding

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

fdf_set_encoding — Sets FDF character encoding

Описание

bool fdf_set_encoding ( resource $fdf_document , string $encoding )

Sets the character encoding for the FDF document.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

encoding

The encoding name. The following values are supported: "Shift-JIS", "UHC", "GBK" and "BigFive".

An empty string resets the encoding to the default PDFDocEncoding/Unicode scheme.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set PDF document to display FDF data in

  • « fdf_set_encoding
  • fdf_set_flags »
  • PHP Manual
  • FDF
  • Set PDF document to display FDF data in

fdf_set_file

(PHP 4, PHP 5, PHP 7)

fdf_set_file — Set PDF document to display FDF data in

Описание

bool fdf_set_file ( resource $fdf_document , string $url [, string $target_frame ] )

Selects a different PDF document to display the form results in then the form it originated from.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

url

Should be given as an absolute URL.

target_frame

Use this parameter to specify the frame in which the document will be displayed. You can also set the default value for this parameter using fdf_set_target_frame().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Passing FDF data to a second form

<?php
  /* set content type for Adobe FDF */
  fdf_header();

  /* start new fdf */
  $fdf = fdf_create();

  /* set field "foo" to value "bar" */
  fdf_set_value($fdf, "foo", "bar");

  /* tell client to display FDF data using "fdf_form.pdf" */
  fdf_set_file($fdf, "http://www.example.com/fdf_form.pdf");

  /* output fdf */
  fdf_save($fdf);

  /* clean up */
  fdf_close($fdf);
?>

Смотрите также

  • fdf_get_file() - Получает значение ключа /F
  • fdf_set_target_frame() - Set target frame for form display


Sets a flag of a field

  • « fdf_set_file
  • fdf_set_javascript_action »
  • PHP Manual
  • FDF
  • Sets a flag of a field

fdf_set_flags

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_flags — Sets a flag of a field

Описание

bool fdf_set_flags ( resource $fdf_document , string $fieldname , int $whichFlags , int $newFlags )

Sets certain flags of the given field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

whichFlags

newFlags

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_set_opt() - Sets an option of a field


Sets an javascript action of a field

  • « fdf_set_flags
  • fdf_set_on_import_javascript »
  • PHP Manual
  • FDF
  • Sets an javascript action of a field

fdf_set_javascript_action

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_javascript_action — Sets an javascript action of a field

Описание

bool fdf_set_javascript_action ( resource $fdf_document , string $fieldname , int $trigger , string $script )

Sets a javascript action for the given field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

trigger

script

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_set_submit_form_action() - Sets a submit form action of a field


Adds javascript code to be executed when Acrobat opens the FDF

  • « fdf_set_javascript_action
  • fdf_set_opt »
  • PHP Manual
  • FDF
  • Adds javascript code to be executed when Acrobat opens the FDF

fdf_set_on_import_javascript

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_set_on_import_javascript — Adds javascript code to be executed when Acrobat opens the FDF

Описание

bool fdf_set_on_import_javascript ( resource $fdf_document , string $script , bool $before_data_import )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • fdf_add_doc_javascript() - Adds javascript code to the FDF document
  • fdf_set_javascript_action() - Sets an javascript action of a field


Sets an option of a field

  • « fdf_set_on_import_javascript
  • fdf_set_status »
  • PHP Manual
  • FDF
  • Sets an option of a field

fdf_set_opt

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_opt — Sets an option of a field

Описание

bool fdf_set_opt ( resource $fdf_document , string $fieldname , int $element , string $str1 , string $str2 )

Sets options of the given field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

element

str1

str2

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_set_flags() - Sets a flag of a field


Set the value of the /STATUS key

  • « fdf_set_opt
  • fdf_set_submit_form_action »
  • PHP Manual
  • FDF
  • Set the value of the /STATUS key

fdf_set_status

(PHP 4, PHP 5, PHP 7)

fdf_set_status — Set the value of the /STATUS key

Описание

bool fdf_set_status ( resource $fdf_document , string $status )

Sets the value of the /STATUS key. When a client receives a FDF with a status set it will present the value in an alert box.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

status

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_get_status() - Получает значение ключа /STATUS


Sets a submit form action of a field

  • « fdf_set_status
  • fdf_set_target_frame »
  • PHP Manual
  • FDF
  • Sets a submit form action of a field

fdf_set_submit_form_action

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

fdf_set_submit_form_action — Sets a submit form action of a field

Описание

bool fdf_set_submit_form_action ( resource $fdf_document , string $fieldname , int $trigger , string $script , int $flags )

Sets a submit form action for the given field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

trigger

script

flags

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_set_javascript_action() - Sets an javascript action of a field


Set target frame for form display

  • « fdf_set_submit_form_action
  • fdf_set_value »
  • PHP Manual
  • FDF
  • Set target frame for form display

fdf_set_target_frame

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_set_target_frame — Set target frame for form display

Описание

bool fdf_set_target_frame ( resource $fdf_document , string $frame_name )

Sets the target frame to display a result PDF defined with fdf_save_file() in.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

frame_name

The frame name, as a string.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_save_file()


Set the value of a field

  • « fdf_set_target_frame
  • fdf_set_version »
  • PHP Manual
  • FDF
  • Set the value of a field

fdf_set_value

(PHP 4, PHP 5, PHP 7)

fdf_set_value — Set the value of a field

Описание

bool fdf_set_value ( resource $fdf_document , string $fieldname , mixed $value [, int $isName ] )

Sets the value for the given field.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

fieldname

Name of the FDF field, as a string.

value

This parameter will be stored as a string unless it is an array. In this case all array elements will be stored as a value array.

isName

Замечание:

In older versions of the FDF toolkit last parameter determined if the field value was to be converted to a PDF Name (= 1) or set to a PDF String (= 0).

The value is no longer used in the current toolkit version 5.0. For compatibility reasons it is still supported as an optional parameter beginning with PHP 4.3, but ignored internally.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
4.3.0 | Support for arrays in the value parameter was added.

Смотрите также

  • fdf_get_value() - Get the value of a field
  • fdf_remove_item() - Sets target frame for form


Sets version number for a FDF file

  • « fdf_set_value
  • GnuPG »
  • PHP Manual
  • FDF
  • Sets version number for a FDF file

fdf_set_version

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

fdf_set_version — Sets version number for a FDF file

Описание

bool fdf_set_version ( resource $fdf_document , string $version )

Sets the FDF version for the given document.

Some features supported by this extension are only available in newer FDF versions.

Список параметров

fdf_document

The FDF document handle, returned by fdf_create(), fdf_open() or fdf_open_string().

version

The version number. For the current FDF toolkit 5.0, this may be either 1.2, 1.3 or 1.4.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fdf_get_version() - Gets version number for FDF API or file


GNU Privacy Guard

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Прозрачное подписывание текста
  • GnuPG Функции
    • gnupg_adddecryptkey — Добавить ключ для расшифровки
    • gnupg_addencryptkey — Добавляет ключ для шифрования
    • gnupg_addsignkey — Добавить ключ для подписания
    • gnupg_cleardecryptkeys — Удаляет все ключи, которые были установлены для расшифровки раньше
    • gnupg_clearencryptkeys — Удаляет все ключи, которые были установлены для шифрования раньше
    • gnupg_clearsignkeys — Удаляет все ключи, которые были установлены для подписания раньше
    • gnupg_decrypt — Расшифровывает переданный текст
    • gnupg_decryptverify — Расшифровывает и проверяет подпись переданного текста
    • gnupg_encrypt — Encrypts a given text
    • gnupg_encryptsign — Шифрует и подписывает переданный текст
    • gnupg_export — Экспортирует ключ
    • gnupg_geterror — Возвращает текст сообщения об ошибке, если функция не была выполнена
    • gnupg_getprotocol — Возвращает текущий активный протокол для всех операций
    • gnupg_import — Imports a key
    • gnupg_init — Инициализировать GnuPG
    • gnupg_keyinfo — Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону
    • gnupg_setarmor — Переключает вывод в текстовом или бинарном режиме
    • gnupg_seterrormode — Устанавливает режим отчетов об ошибках (error_reporting)
    • gnupg_setsignmode — Устанавливает режим подписывания
    • gnupg_sign — Подписывает переданный текст
    • gnupg_verify — Проверяет подпись текста


  • « GnuPG
  • Установка и настройка »
  • PHP Manual
  • GnuPG
  • Введение

Введение

Этот модуль позволяет взаимодействовать с » gnupg.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Этот модуль требует » библиотеку gpgme


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/gnupg.


Предопределенные константы

GNUPG_SIG_MODE_NORMAL (integer)
GNUPG_SIG_MODE_DETACH (integer)
GNUPG_SIG_MODE_CLEAR (integer)
GNUPG_VALIDITY_UNKNOWN (integer)
GNUPG_VALIDITY_UNDEFINED (integer)
GNUPG_VALIDITY_NEVER (integer)
GNUPG_VALIDITY_MARGINAL (integer)
GNUPG_VALIDITY_FULL (integer)
GNUPG_VALIDITY_ULTIMATE (integer)
GNUPG_PROTOCOL_OpenPGP (integer)
GNUPG_PROTOCOL_CMS (integer)
GNUPG_SIGSUM_VALID (integer)
GNUPG_SIGSUM_GREEN (integer)
GNUPG_SIGSUM_RED (integer)
GNUPG_SIGSUM_KEY_REVOKED (integer)
GNUPG_SIGSUM_KEY_EXPIRED (integer)
GNUPG_SIGSUM_KEY_MISSING (integer)
GNUPG_SIGSUM_SIG_EXPIRED (integer)
GNUPG_SIGSUM_CRL_MISSING (integer)
GNUPG_SIGSUM_CRL_TOO_OLD (integer)
GNUPG_SIGSUM_BAD_POLICY (integer)
GNUPG_SIGSUM_SYS_ERROR (integer)
GNUPG_ERROR_WARNING (integer)
GNUPG_ERROR_EXCEPTION (integer)
GNUPG_ERROR_SILENT (integer)


  • « Предопределенные константы
  • Прозрачное подписывание текста »
  • PHP Manual
  • GnuPG
  • Примеры

Примеры

Содержание

  • Прозрачное подписывание текста


Прозрачное подписывание текста

Это пример создания чистой подписи переданного текста.

Пример #1 Процедурный пример создания чистой подписи GnuPG

<?php
// инициализация GnuPG
$res = gnupg_init();
// на самом деле не нужно. Clearsign по умолчанию
gnupg_setsignmode($res, GNUPG_SIG_MODE_CLEAR);
// добавить ключ для подписания с паролем 'test'
gnupg_addsignkey($res, "8660281B6051D071D94B5B230549F9DC851566DC", "test");
// подписывание
$signed = gnupg_sign($res, "просто тест");
echo $signed;
?>

Пример #2 Объектно ориентированный пример создания чистой подписи GnuPG

<?php
// новый класс
$gnupg = new gnupg();
// на самом деле не нужно. Clearsign по умолчанию
$gnupg->setsignmode(gnupg::SIG_MODE_CLEAR);
// добавить ключ для подписания с паролем 'test'
$gnupg->addsignkey("8660281B6051D071D94B5B230549F9DC851566DC", "test");
// подписывание
$signed = $gnupg->sign("просто тест");
echo $signed;
?>

Пример #3 keylistiterator

Этот модуль также поставляется с Iterator для ваших ключей.

<?php
// создаём новый итератор для включения в список всех открытых ключей, которые соответствуют 'example'
$iterator = new gnupg_keylistiterator("example");
foreach($iterator as $fingerprint => $userid){
    echo $fingerprint." -> ".$userid."\n";
}
?>


GnuPG Функции

Примечания

Этот модуль позволяет использовать связку ключей текущего пользователя. Связка, как правило, расположена в ~/.gnupg/. Чтобы указать другую папку, сохраните путь к связке ключей в переменной окружения GNUPGHOME. Смотрите putenv для получения дополнительной информации, как это сделать.

Некоторые функции требуют спецификации ключа. Эта спецификация может быть все, что относится к уникальному ключу (идентификатор пользователя, идентификатор ключа, отпечатки пальцев, ...). В этой документации используется отпечаток пальца во всех примерах.

Замечание:

В качестве альтернативы явно документированным функциям использующим resource, вы можете использовать объектно-ориентированный стиль с помощью объектов gnupg.

Содержание

  • gnupg_adddecryptkey — Добавить ключ для расшифровки
  • gnupg_addencryptkey — Добавляет ключ для шифрования
  • gnupg_addsignkey — Добавить ключ для подписания
  • gnupg_cleardecryptkeys — Удаляет все ключи, которые были установлены для расшифровки раньше
  • gnupg_clearencryptkeys — Удаляет все ключи, которые были установлены для шифрования раньше
  • gnupg_clearsignkeys — Удаляет все ключи, которые были установлены для подписания раньше
  • gnupg_decrypt — Расшифровывает переданный текст
  • gnupg_decryptverify — Расшифровывает и проверяет подпись переданного текста
  • gnupg_encrypt — Encrypts a given text
  • gnupg_encryptsign — Шифрует и подписывает переданный текст
  • gnupg_export — Экспортирует ключ
  • gnupg_geterror — Возвращает текст сообщения об ошибке, если функция не была выполнена
  • gnupg_getprotocol — Возвращает текущий активный протокол для всех операций
  • gnupg_import — Imports a key
  • gnupg_init — Инициализировать GnuPG
  • gnupg_keyinfo — Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону
  • gnupg_setarmor — Переключает вывод в текстовом или бинарном режиме
  • gnupg_seterrormode — Устанавливает режим отчетов об ошибках (error_reporting)
  • gnupg_setsignmode — Устанавливает режим подписывания
  • gnupg_sign — Подписывает переданный текст
  • gnupg_verify — Проверяет подпись текста


Добавить ключ для расшифровки

  • « GnuPG Функции
  • gnupg_addencryptkey »
  • PHP Manual
  • GnuPG Функции
  • Добавить ключ для расшифровки

gnupg_adddecryptkey

(PECL gnupg >= 0.5)

gnupg_adddecryptkey — Добавить ключ для расшифровки

Описание

bool gnupg_adddecryptkey ( resource $identifier , string $fingerprint , string $passphrase )

Список параметров

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 — Добавляет ключ для шифрования

Описание

bool gnupg_addencryptkey ( resource $identifier , string $fingerprint )

Список параметров

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 — Добавить ключ для подписания

Описание

bool gnupg_addsignkey ( resource $identifier , string $fingerprint [, string $passphrase ] )

Список параметров

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 — Удаляет все ключи, которые были установлены для расшифровки раньше

Описание

bool gnupg_cleardecryptkeys ( resource $identifier )

Список параметров

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 — Удаляет все ключи, которые были установлены для шифрования раньше

Описание

bool gnupg_clearencryptkeys ( resource $identifier )

Список параметров

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 — Удаляет все ключи, которые были установлены для подписания раньше

Описание

bool gnupg_clearsignkeys ( resource $identifier )

Список параметров

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 — Расшифровывает переданный текст

Описание

string gnupg_decrypt ( resource $identifier , string $text )

Расшифровывает переданный текст ключами, установленными ранее с помощью gnupg_adddecryptkey.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

text

Расшифровываемый текст.

Возвращаемые значения

В случае успеха, эта функция возвращает расшифрованный текст. В случае ошибки, эта функция возвращает FALSE.

Примеры

Пример #1 Процедурный пример использования gnupg_decrypt()

<?php
$res = gnupg_init();
gnupg_adddecryptkey($res, "8660281B6051D071D94B5B230549F9DC851566DC", "test");
$plain = gnupg_decrypt($res,$encrypted_text);
echo $plain;
?>

Пример #2 Объектно-ориентированный пример использования gnupg_encrypt()

<?php
$gpg = new gnupg();
$gpg -> adddecryptkey("8660281B6051D071D94B5B230549F9DC851566DC", "test");
$plain = $gpg -> decrypt($encrypted_text);
echo $plain;
?>


Расшифровывает и проверяет подпись переданного текста

  • « gnupg_decrypt
  • gnupg_encrypt »
  • PHP Manual
  • GnuPG Функции
  • Расшифровывает и проверяет подпись переданного текста

gnupg_decryptverify

(PECL gnupg >= 0.2)

gnupg_decryptverify — Расшифровывает и проверяет подпись переданного текста

Описание

array gnupg_decryptverify ( resource $identifier , string $text , string &$plaintext )

Расшифровывает и проверяет подпись переданного текста и возвращает информацию о подписи.

Список параметров

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);
?>


Encrypts a given text

  • « gnupg_decryptverify
  • gnupg_encryptsign »
  • PHP Manual
  • GnuPG Функции
  • Encrypts a given text

gnupg_encrypt

(PECL gnupg >= 0.1)

gnupg_encrypt — Encrypts a given text

Описание

string gnupg_encrypt ( resource $identifier , string $plaintext )

Encrypts the given plaintext with the keys, which were set with gnupg_addencryptkey before and returns the encrypted text.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

plaintext

The text being encrypted.

Возвращаемые значения

On success, this function returns the encrypted text. On failure, this function returns FALSE.

Примеры

Пример #1 Procedural gnupg_encrypt() example

<?php
$res = gnupg_init();
gnupg_addencryptkey($res,"8660281B6051D071D94B5B230549F9DC851566DC");
$enc = gnupg_encrypt($res, "just a test");
echo $enc;
?>

Пример #2 OO gnupg_encrypt() example

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$enc = $gpg -> encrypt("just a test");
echo $enc;
?>


Шифрует и подписывает переданный текст

  • « gnupg_encrypt
  • gnupg_export »
  • PHP Manual
  • GnuPG Функции
  • Шифрует и подписывает переданный текст

gnupg_encryptsign

(PECL gnupg >= 0.2)

gnupg_encryptsign — Шифрует и подписывает переданный текст

Описание

string gnupg_encryptsign ( resource $identifier , string $plaintext )

Шифрует и подписывает переданный в параметре plaintext текст ключами, которые были установлены gnupg_addsignkey и gnupg_addencryptkey ранее и возвращает зашифрованный и подписанный текст.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

plaintext

Текст для шифрования.

Возвращаемые значения

В случае успеха, эта функция возвращает зашифрованный и подписанный текст. В случае ошибки эта функция возвращает FALSE.

Примеры

Пример #1 Процедурный пример использования gnupg_encryptsign()

<?php
$res = gnupg_init();
gnupg_addencryptkey($res, "8660281B6051D071D94B5B230549F9DC851566DC");
gnupg_addsignkey($res, "8660281B6051D071D94B5B230549F9DC851566DC", "test");
$enc = gnupg_encryptsign($res, "просто тест");
echo $enc;
?>

Пример #2 Объектно-ориентированный пример использования gnupg_encryptsign()

<?php
$gpg = new gnupg();
$gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
$gpg -> addsignkey("8660281B6051D071D94B5B230549F9DC851566DC", "test");
$enc = $gpg -> encryptsign("просто тест");
echo $enc;
?>


Экспортирует ключ

  • « gnupg_encryptsign
  • gnupg_geterror »
  • PHP Manual
  • GnuPG Функции
  • Экспортирует ключ

gnupg_export

(PECL gnupg >= 0.1)

gnupg_export — Экспортирует ключ

Описание

string gnupg_export ( resource $identifier , string $fingerprint )

Экспортирует ключ fingerprint.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

fingerprint

Отпечаток ключа.

Возвращаемые значения

В случае успеха, эта функция возвращает ключ. В случае ошибки, эта функция возвращает FALSE.

Примеры

Пример #1 Процедурный пример использования gnupg_export()

<?php
$res = gnupg_init();
$export = gnupg_export($res, "8660281B6051D071D94B5B230549F9DC851566DC");
echo $export;
?>

Пример #2 Объектно-ориентированный пример использования gnupg_export()

<?php
$gpg = new gnupg();
$export = $gpg -> export("8660281B6051D071D94B5B230549F9DC851566DC");
?>


Возвращает текст сообщения об ошибке, если функция не была выполнена

  • « gnupg_export
  • gnupg_getprotocol »
  • PHP Manual
  • GnuPG Функции
  • Возвращает текст сообщения об ошибке, если функция не была выполнена

gnupg_geterror

(PECL gnupg >= 0.1)

gnupg_geterror — Возвращает текст сообщения об ошибке, если функция не была выполнена

Описание

string gnupg_geterror ( resource $identifier )

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

Возвращаемые значения

Возвращает текст сообщения об ошибке, если произошла ошибка, в противном случае FALSE.

Примеры

Пример #1 Процедурный пример использования gnupg_geterror()

<?php
$res = gnupg_init();
echo gnupg_geterror($res);
?>

Пример #2 Объектно-ориентированный пример использования gnupg_geterror()

<?php
$gpg = new gnupg();
echo $gpg -> geterror();
?>


Возвращает текущий активный протокол для всех операций

  • « gnupg_geterror
  • gnupg_import »
  • PHP Manual
  • GnuPG Функции
  • Возвращает текущий активный протокол для всех операций

gnupg_getprotocol

(PECL gnupg >= 0.1)

gnupg_getprotocol — Возвращает текущий активный протокол для всех операций

Описание

int gnupg_getprotocol ( resource $identifier )

Список параметров

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();
?>


Imports a key

  • « gnupg_getprotocol
  • gnupg_init »
  • PHP Manual
  • GnuPG Функции
  • Imports a key

gnupg_import

(PECL gnupg >= 0.3)

gnupg_import — Imports a key

Описание

array gnupg_import ( resource $identifier , string $keydata )

Imports the key keydata and returns an array with information about the importprocess.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

keydata

The data key that is being imported.

Возвращаемые значения

On success, this function returns and info-array about the importprocess. On failure, this function returns FALSE.

Примеры

Пример #1 Procedural gnupg_import() example

<?php
$res = gnupg_init();
$info = gnupg_import($res,$keydata);
print_r($info);
?>

Пример #2 OO gnupg_import() example

<?php
$gpg = new gnupg();
$info = $gpg -> import($keydata);
print_r($info);
?>


Инициализировать GnuPG

  • « gnupg_import
  • gnupg_keyinfo »
  • PHP Manual
  • GnuPG Функции
  • Инициализировать GnuPG

gnupg_init

(PECL gnupg >= 0.4)

gnupg_init — Инициализировать GnuPG

Описание

resource gnupg_init ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

resource GnuPG используется другими функциями GnuPG.

Примеры

Пример #1 Процедурный пример использования gnupg_init()

<?php
$res = gnupg_init();
?>

Пример #2 Объектно-ориентированный пример инициализации GnuPG

<?php
$gpg = new gnupg();
?>


Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону

  • « gnupg_init
  • gnupg_setarmor »
  • PHP Manual
  • GnuPG Функции
  • Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону

gnupg_keyinfo

(PECL gnupg >= 0.1)

gnupg_keyinfo — Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону

Описание

array gnupg_keyinfo ( resource $identifier , string $pattern )

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

pattern

Шаблон проверяемый на соответствие.

Возвращаемые значения

Возвращает массив с информацией обо всех ключах, которые соответствуют заданному шаблону или FALSE, если произошла ошибка.

Примеры

Пример #1 Процедурный пример использования gnupg_keyinfo()

<?php
$res = gnupg_init();
$info = gnupg_keyinfo($res, 'test');
print_r($info);
?>

Пример #2 Объектно-ориентированный пример использования gnupg_keyinfo()

<?php
$gpg = new gnupg();
$info = $gpg -> keyinfo("test");
print_r($info);
?>


Переключает вывод в текстовом или бинарном режиме

  • « gnupg_keyinfo
  • gnupg_seterrormode »
  • PHP Manual
  • GnuPG Функции
  • Переключает вывод в текстовом или бинарном режиме

gnupg_setarmor

(PECL gnupg >= 0.1)

gnupg_setarmor — Переключает вывод в текстовом или бинарном режиме

Описание

bool gnupg_setarmor ( resource $identifier , int $armor )

Переключает вывод в текстовом или бинарном режиме.

Список параметров

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)

Описание

void gnupg_seterrormode ( resource $identifier , int $errormode )

Устанавливает режим 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 — Устанавливает режим подписывания

Описание

bool gnupg_setsignmode ( resource $identifier , int $signmode )

Устанавливает режим подписывания.

Список параметров

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 — Подписывает переданный текст

Описание

string gnupg_sign ( resource $identifier , string $plaintext )

Подписывает переданный в параметре 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("just a test");
echo $signed;
?>


Проверяет подпись текста

  • « gnupg_sign
  • haru »
  • PHP Manual
  • GnuPG Функции
  • Проверяет подпись текста

gnupg_verify

(PECL gnupg >= 0.1)

gnupg_verify — Проверяет подпись текста

Описание

array gnupg_verify ( resource $identifier , string $signed_text , string $signature [, string &$plaintext ] )

Проверяет подпись переданного в параметре signed_text текста и возвращает информацию о подписи.

Список параметров

identifier

Идентификатор gnupg, полученный из gnupg_init() или gnupg.

signed_text

Подписанный текст.

signature

Подпись. Чтобы проверить прозрачную подпись, параметр должен быть равен FALSE.

plaintext

Обычный текст. Если этот необязательный параметр необходимо передать, то он заполняется обычным текстом.

Возвращаемые значения

В случае успеха, эта функция возвращает информацию о подписи. В случае ошибки эта функция возвращает FALSE.

Примеры

Пример #1 Процедурный пример использования gnupg_verify()

<?php
$plaintext = "";
$res = gnupg_init();
// прозрачная подпись
$info = gnupg_verify($res, $signed_text, false, $plaintext);
print_r($info);
// раздельная подпись
$info = gnupg_verify($res, $signed_text, $signature);
print_r($info);
?>

Пример #2 Объектно ориентированный пример использования gnupg_verify()

<?php
$plaintext = "";
$gpg = new gnupg();
// прозрачная подпись
$info = $gpg -> verify($signed_text, false, $plaintext);
print_r($info);
// раздельная подпись
$info = $gpg -> verify($signed_text, $signature);
print_r($info);
?>


Haru PDF

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Простые примеры PECL/haru
  • Встроенные шрифты и кодировки
    • Builtin Fonts
    • Встроенные кодировки
  • HaruException — Класс HaruException
  • HaruDoc — Класс HaruDoc
    • HaruDoc::addPage — Добавляет новую страницу в документ
    • HaruDoc::addPageLabel — Set the numbering style for the specified range of pages
    • HaruDoc::__construct — Construct new HaruDoc instance
    • HaruDoc::createOutline — Create a HaruOutline instance
    • HaruDoc::getCurrentEncoder — Get HaruEncoder currently used in the document
    • HaruDoc::getCurrentPage — Return current page of the document
    • HaruDoc::getEncoder — Get HaruEncoder instance for the specified encoding
    • HaruDoc::getFont — Get HaruFont instance
    • HaruDoc::getInfoAttr — Get current value of the specified document attribute
    • HaruDoc::getPageLayout — Get current page layout
    • HaruDoc::getPageMode — Get current page mode
    • HaruDoc::getStreamSize — Get the size of the temporary stream
    • HaruDoc::insertPage — Insert new page just before the specified page
    • HaruDoc::loadJPEG — Load a JPEG image
    • HaruDoc::loadPNG — Load PNG image and return HaruImage instance
    • HaruDoc::loadRaw — Load a RAW image
    • HaruDoc::loadTTC — Load the font with the specified index from TTC file
    • HaruDoc::loadTTF — Load TTF font file
    • HaruDoc::loadType1 — Load Type1 font
    • HaruDoc::output — Write the document data to the output buffer
    • HaruDoc::readFromStream — Read data from the temporary stream
    • HaruDoc::resetError — Reset error state of the document handle
    • HaruDoc::resetStream — Rewind the temporary stream
    • HaruDoc::save — Save the document into the specified file
    • HaruDoc::saveToStream — Save the document into a temporary stream
    • HaruDoc::setCompressionMode — Set compression mode for the document
    • HaruDoc::setCurrentEncoder — Set the current encoder for the document
    • HaruDoc::setEncryptionMode — Set encryption mode for the document
    • HaruDoc::setInfoAttr — Set the info attribute of the document
    • HaruDoc::setInfoDateAttr — Set the datetime info attributes of the document
    • HaruDoc::setOpenAction — Define which page is shown when the document is opened
    • HaruDoc::setPageLayout — Set how pages should be displayed
    • HaruDoc::setPageMode — Set how the document should be displayed
    • HaruDoc::setPagesConfiguration — Set the number of pages per set of pages
    • HaruDoc::setPassword — Set owner and user passwords for the document
    • HaruDoc::setPermission — Set permissions for the document
    • HaruDoc::useCNSEncodings — Enable Chinese simplified encodings
    • HaruDoc::useCNSFonts — Enable builtin Chinese simplified fonts
    • HaruDoc::useCNTEncodings — Enable Chinese traditional encodings
    • HaruDoc::useCNTFonts — Enable builtin Chinese traditional fonts
    • HaruDoc::useJPEncodings — Enable Japanese encodings
    • HaruDoc::useJPFonts — Enable builtin Japanese fonts
    • HaruDoc::useKREncodings — Enable Korean encodings
    • HaruDoc::useKRFonts — Enable builtin Korean fonts
  • HaruPage — Класс HaruPage
    • HaruPage::arc — Append an arc to the current path
    • HaruPage::beginText — Begin a text object and set the current text position to (0,0)
    • HaruPage::circle — Append a circle to the current path
    • HaruPage::closePath — Append a straight line from the current point to the start point of the path
    • HaruPage::concat — Concatenate current transformation matrix of the page and the specified matrix
    • HaruPage::createDestination — Create new HaruDestination instance
    • HaruPage::createLinkAnnotation — Create new HaruAnnotation instance
    • HaruPage::createTextAnnotation — Create new HaruAnnotation instance
    • HaruPage::createURLAnnotation — Create and return new HaruAnnotation instance
    • HaruPage::curveTo2 — Append a Bezier curve to the current path
    • HaruPage::curveTo3 — Append a Bezier curve to the current path
    • HaruPage::curveTo — Append a Bezier curve to the current path
    • HaruPage::drawImage — Show image at the page
    • HaruPage::ellipse — Append an ellipse to the current path
    • HaruPage::endPath — End current path object without filling and painting operations
    • HaruPage::endText — End current text object
    • HaruPage::eofill — Fill current path using even-odd rule
    • HaruPage::eoFillStroke — Fill current path using even-odd rule, then paint the path
    • HaruPage::fill — Fill current path using nonzero winding number rule
    • HaruPage::fillStroke — Fill current path using nonzero winding number rule, then paint the path
    • HaruPage::getCharSpace — Get the current value of character spacing
    • HaruPage::getCMYKFill — Get the current filling color
    • HaruPage::getCMYKStroke — Get the current stroking color
    • HaruPage::getCurrentFont — Get the currently used font
    • HaruPage::getCurrentFontSize — Get the current font size
    • HaruPage::getCurrentPos — Get the current position for path painting
    • HaruPage::getCurrentTextPos — Get the current position for text printing
    • HaruPage::getDash — Get the current dash pattern
    • HaruPage::getFillingColorSpace — Get the current filling color space
    • HaruPage::getFlatness — Get the flatness of the page
    • HaruPage::getGMode — Get the current graphics mode
    • HaruPage::getGrayFill — Get the current filling color
    • HaruPage::getGrayStroke — Get the current stroking color
    • HaruPage::getHeight — Get the height of the page
    • HaruPage::getHorizontalScaling — Get the current value of horizontal scaling
    • HaruPage::getLineCap — Get the current line cap style
    • HaruPage::getLineJoin — Get the current line join style
    • HaruPage::getLineWidth — Get the current line width
    • HaruPage::getMiterLimit — Get the value of miter limit
    • HaruPage::getRGBFill — Get the current filling color
    • HaruPage::getRGBStroke — Get the current stroking color
    • HaruPage::getStrokingColorSpace — Get the current stroking color space
    • HaruPage::getTextLeading — Get the current value of line spacing
    • HaruPage::getTextMatrix — Get the current text transformation matrix of the page
    • HaruPage::getTextRenderingMode — Get the current text rendering mode
    • HaruPage::getTextRise — Get the current value of text rising
    • HaruPage::getTextWidth — Get the width of the text using current fontsize, character spacing and word spacing
    • HaruPage::getTransMatrix — Get the current transformation matrix of the page
    • HaruPage::getWidth — Get the width of the page
    • HaruPage::getWordSpace — Get the current value of word spacing
    • HaruPage::lineTo — Draw a line from the current point to the specified point
    • HaruPage::measureText — Calculate the byte length of characters which can be included on one line of the specified width
    • HaruPage::moveTextPos — Move text position to the specified offset
    • HaruPage::moveTo — Set starting point for new drawing path
    • HaruPage::moveToNextLine — Move text position to the start of the next line
    • HaruPage::rectangle — Append a rectangle to the current path
    • HaruPage::setCharSpace — Set character spacing for the page
    • HaruPage::setCMYKFill — Set filling color for the page
    • HaruPage::setCMYKStroke — Set stroking color for the page
    • HaruPage::setDash — Set the dash pattern for the page
    • HaruPage::setFlatness — Set flatness for the page
    • HaruPage::setFontAndSize — Set font and fontsize for the page
    • HaruPage::setGrayFill — Set filling color for the page
    • HaruPage::setGrayStroke — Sets stroking color for the page
    • HaruPage::setHeight — Set height of the page
    • HaruPage::setHorizontalScaling — Set horizontal scaling for the page
    • HaruPage::setLineCap — Set the shape to be used at the ends of lines
    • HaruPage::setLineJoin — Set line join style for the page
    • HaruPage::setLineWidth — Set line width for the page
    • HaruPage::setMiterLimit — Set the current value of the miter limit of the page
    • HaruPage::setRGBFill — Set filling color for the page
    • HaruPage::setRGBStroke — Set stroking color for the page
    • HaruPage::setRotate — Set rotation angle of the page
    • HaruPage::setSize — Set size and direction of the page
    • HaruPage::setSlideShow — Set transition style for the page
    • HaruPage::setTextLeading — Set text leading (line spacing) for the page
    • HaruPage::setTextMatrix — Set the current text transformation matrix of the page
    • HaruPage::setTextRenderingMode — Set text rendering mode for the page
    • HaruPage::setTextRise — Set the current value of text rising
    • HaruPage::setWidth — Set width of the page
    • HaruPage::setWordSpace — Set word spacing for the page
    • HaruPage::showText — Print text at the current position of the page
    • HaruPage::showTextNextLine — Move the current position to the start of the next line and print the text
    • HaruPage::stroke — Paint current path
    • HaruPage::textOut — Print the text on the specified position
    • HaruPage::textRect — Print the text inside the specified region
  • HaruFont — Класс HaruFont
    • HaruFont::getAscent — Get the vertical ascent of the font
    • HaruFont::getCapHeight — Get the distance from the baseline of uppercase letters
    • HaruFont::getDescent — Get the vertical descent of the font
    • HaruFont::getEncodingName — Get the name of the encoding
    • HaruFont::getFontName — Get the name of the font
    • HaruFont::getTextWidth — Get the total width of the text, number of characters, number of words and number of spaces
    • HaruFont::getUnicodeWidth — Get the width of the character in the font
    • HaruFont::getXHeight — Get the distance from the baseline of lowercase letters
    • HaruFont::measureText — Calculate the number of characters which can be included within the specified width
  • HaruImage — Класс HaruImage
    • HaruImage::getBitsPerComponent — Get the number of bits used to describe each color component of the image
    • HaruImage::getColorSpace — Get the name of the color space
    • HaruImage::getHeight — Get the height of the image
    • HaruImage::getSize — Get size of the image
    • HaruImage::getWidth — Get the width of the image
    • HaruImage::setColorMask — Set the color mask of the image
    • HaruImage::setMaskImage — Set the image mask
  • HaruEncoder — Класс HaruEncoder
    • HaruEncoder::getByteType — Get the type of the byte in the text
    • HaruEncoder::getType — Get the type of the encoder
    • HaruEncoder::getUnicode — Convert the specified character to unicode
    • HaruEncoder::getWritingMode — Get the writing mode of the encoder
  • HaruOutline — Класс HaruOutline
    • HaruOutline::setDestination — Set the destination for the outline
    • HaruOutline::setOpened — Set the initial state of the outline
  • HaruAnnotation — Класс HaruAnnotation
    • HaruAnnotation::setBorderStyle — Set the border style of the annotation
    • HaruAnnotation::setHighlightMode — Set the highlighting mode of the annotation
    • HaruAnnotation::setIcon — Set the icon style of the annotation
    • HaruAnnotation::setOpened — Set the initial state of the annotation
  • HaruDestination — Класс HaruDestination
    • HaruDestination::setFit — Set the appearance of the page to fit the window
    • HaruDestination::setFitB — Set the appearance of the page to fit the bounding box of the page within the window
    • HaruDestination::setFitBH — Set the appearance of the page to fit the width of the bounding box
    • HaruDestination::setFitBV — Set the appearance of the page to fit the height of the boudning box
    • HaruDestination::setFitH — Set the appearance of the page to fit the window width
    • HaruDestination::setFitR — Set the appearance of the page to fit the specified rectangle
    • HaruDestination::setFitV — Set the appearance of the page to fit the window height
    • HaruDestination::setXYZ — Set the appearance of the page


Введение

Расширение PECL/haru предоставляет связь с библиотекой libHaru. Эта библиотека является свободной, кросс-платформенной библиотекой с открытым исходным кодом и используется для создания файлов PDF.

Библиотеку Haru (libHaru) можно найти здесь: » http://libharu.org.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Требования

Вы должны установить libharu перед использованием PECL/haru. PECL/haru тестировался с libharu 2.0.8, с предыдущими версиями он может не работать. PECL/haru также требует PHP 5.1.3 или более новую.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/haru.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • haru
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Простые примеры PECL/haru »
  • PHP Manual
  • haru
  • Примеры

Примеры

Содержание

  • Простые примеры PECL/haru


Простые примеры PECL/haru

Пример #1 "Hello world"

<?php

$doc = new HaruDoc;

$doc->setPageMode(HaruDoc::PAGE_MODE_USE_THUMBS); /* показываем уменьшенные изображения */

$page = $doc->addPage(); /* добавляем страницу в документ */
$page->setSize(HaruPage::SIZE_A4, HaruPage::LANDSCAPE); /* устанавливаем альбомный формат A4*/

$courier = $doc->getFont("Courier-Bold"); /* используем стандартный шрифт */

$page->setRGBStroke(0, 0, 0); /* установим цвет */
$page->setRGBFill(0.7, 0.8, 0.9);
$page->rectangle(150, 150, 550, 250); /* нарисуем прямоугольник */

$page->fillStroke(); /* зальем и обведем его */

$page->setDash(array(3, 3), 0); /* установим стиль линий так, чтоб они рисовались черточками */
$page->setFontAndSize($courier, 60); /* установим шрифт и размер */

$page->setRGBStroke(0.5, 0.5, 0.1); /* sзададим цвет линии */
$page->setRGBFill(1, 1, 1); /* установим цвет заливки */

$page->setTextRenderingMode(HaruPage::FILL_THEN_STROKE); /* зальем и обведем текст */

/* напечатаем текст */
$page->beginText();
$page->textOut(210, 270, "Hello World!");
$page->endText();

$doc->save("/tmp/test.pdf"); /* сохраним документ в файл */

?>

Откроем получившийся файл в любимом просмотрщике PDF и увидим светло-голубой прямоугольник, с надписью "Hello World!" на нем.


  • « Простые примеры PECL/haru
  • Builtin Fonts »
  • PHP Manual
  • haru
  • Встроенные шрифты и кодировки

Встроенные шрифты и кодировки

Содержание

  • Builtin Fonts
  • Встроенные кодировки


Builtin Fonts

Эти шрифты Base14 встроены в PDF и все просмотрщики могут отобразить их. Использование этих шрифтов поможет уменьшить размер целевого файла и сделать его чтение более быстрым, так как не нужно будет загружать шрифты. Однако, встроенные шрифты поддерживают только кодировку latin1 и, если вы используете символы, не входящие в нее, то шрифты грузить придется.

Шрифты Base14:

  • Courier

  • Courier-Bold

  • Courier-Oblique

  • Courier-BoldOblique

  • Helvetica

  • Helvetica-Bold

  • Helvetica-Oblique

  • Helvetica-BoldOblique

  • Times-Roman

  • Times-Bold

  • Times-Italic

  • Times-BoldItalic

  • Symbol

  • ZapfDingbats


Встроенные кодировки

Однобайтовые кодировки
Имя | Описание
StandardEncoding | Кодировка PDF по умолчанию.
MacRomanEncoding | Стандартаня кодировка Mac OS.
WinAnsiEncoding | Стандартная кодировка Windows.
FontSpecific | Кодировка определяемая шрифтом.
ISO8859-2 | Latin2 (Восточная Европа)
ISO8859-3 | Latin3 (Южная Европа)
ISO8859-4 | Latin4 (Северная Европа)
ISO8859-5 | Кириллица
ISO8859-6 | Арабская
ISO8859-7 | Греческая
ISO8859-8 | Иврит
ISO8859-9 | Latin5 (Турецкая)
ISO8859-10 | Latin6 (Скандинавская
ISO8859-11 | Тайская
ISO8859-13 | Latin7 (Балтийская)
ISO8859-14 | Latin8 (Кельтская)
ISO8859-15 | Latin9
ISO8859-16 | Latin10
CP1250 | MS Windows 1250.
CP1251 | MS Windows 1251.
CP1252 | MS Windows 1252.
CP1253 | MS Windows 1253.
CP1254 | MS Windows 1254.
CP1255 | MS Windows 1255.
CP1256 | MS Windows 1256.
CP1257 | MS Windows 1257.
CP1258 | MS Windows 1258.
KOI8-R | Кириллица.
Многобайтные кодировки
Name | Description
GB-EUC-H | Кодировка EUC-CN.
GB-EUC-V | Версия GB-EUC-H с вертикальным направлением письма.
GBK-EUC-H | Microsoft Code Page 936 (lfCharSet 0x86) GBK.
GBK-EUC-V | Версия GBK-EUC-H с вертикальным направлением письма.
ETen-B5-H | Microsoft Code Page 950 (lfCharSet 0x88), набор символов Big Five расширенный ETen.
ETen-B5-V | Версия ETen-B5-H с вертикальным направлением письма..
90ms-RKSJ-H | Microsoft Code Page 932, JIS X 0208.
90ms-RKSJ-V | Версия 90ms-RKSJ-V с вертикальным направлением письма.
90msp-RKSJ-H | Microsoft Code Page 932, JIS X 0208 (пропорционалная).
EUC-H | Набор символов JIS X 0208, кодировка EUC-JP.
EUC-V | Версия EUC-H, с вертикальным направлением письма..
KSC-EUC-H | Набор символов KS X 1001:1992, кодировка EUC-KR.
KSC-EUC-V | Версия KSC-EUC-V, с вертикальным направлением письма.
KSCms-UHC-H | Microsoft Code Page 949 (lfCharSet 0x81), набор символов KS X 1001:1992 плюс 8822 дополнительных hangul, кодировка Unified Hangul Code (UHC) (пропорциональная).
KSCms-UHC-HW-H | Microsoft Code Page 949 (lfCharSet 0x81), набор символов KS X 1001:1992 плюс 8822 дополнительных hangul, кодировка Unified Hangul Code (UHC) (фиксированная ширина).
KSCms-UHC-HW-V | Версия KSCms-UHC-HW-H, с вертикальным направлением письма.


Класс HaruException

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Exception.

Обзор классов

HaruException extends Exception {
/* Inherits */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс HaruDoc

(PECL haru >= 0.0.1)

Введение

Haru PDF Document Class.

Обзор классов

HaruDoc {
/* Методы */
object addPage ( void )
bool addPageLabel ( int $first_page , int $style , int $first_num [, string $prefix = "" ] )
__construct ( void )
object createOutline ( string $title [, object $parent_outline [, object $encoder ]] )
object getCurrentEncoder ( void )
object getCurrentPage ( void )
object getEncoder ( string $encoding )
object getFont ( string $fontname [, string $encoding ] )
string getInfoAttr ( int $type )
int getPageLayout ( void )
int getPageMode ( void )
int getStreamSize ( void )
object insertPage ( object $page )
object loadJPEG ( string $filename )
object loadPNG ( string $filename [, bool $deferred = false ] )
object loadRaw ( string $filename , int $width , int $height , int $color_space )
string loadTTC ( string $fontfile , int $index [, bool $embed = false ] )
string loadTTF ( string $fontfile [, bool $embed = false ] )
string loadType1 ( string $afmfile [, string $pfmfile ] )
bool output ( void )
string readFromStream ( int $bytes )
bool resetError ( void )
bool resetStream ( void )
bool save ( string $file )
bool saveToStream ( void )
bool setCompressionMode ( int $mode )
bool setCurrentEncoder ( string $encoding )
bool setEncryptionMode ( int $mode [, int $key_len = 5 ] )
bool setInfoAttr ( int $type , string $info )
bool setInfoDateAttr ( int $type , int $year , int $month , int $day , int $hour , int $min , int $sec , string $ind , int $off_hour , int $off_min )
bool setOpenAction ( object $destination )
bool setPageLayout ( int $layout )
bool setPageMode ( int $mode )
bool setPagesConfiguration ( int $page_per_pages )
bool setPassword ( string $owner_password , string $user_password )
bool setPermission ( int $permission )
bool useCNSEncodings ( void )
bool useCNSFonts ( void )
bool useCNTEncodings ( void )
bool useCNTFonts ( void )
bool useJPEncodings ( void )
bool useJPFonts ( void )
bool useKREncodings ( void )
bool useKRFonts ( void )
}

Предопределенные константы

Тип | Имя | Описание
int | HaruDoc::CS_DEVICE_GRAY |
int | HaruDoc::CS_DEVICE_RGB |
int | HaruDoc::CS_DEVICE_CMYK |
int | HaruDoc::CS_CAL_GRAY |
int | HaruDoc::CS_CAL_RGB |
int | HaruDoc::CS_LAB |
int | HaruDoc::CS_ICC_BASED |
int | HaruDoc::CS_SEPARATION |
int | HaruDoc::CS_DEVICE_N |
int | HaruDoc::CS_INDEXED |
int | HaruDoc::CS_PATTERN |
int | HaruDoc::ENABLE_READ |
int | HaruDoc::ENABLE_PRINT |
int | HaruDoc::ENABLE_EDIT_ALL |
int | HaruDoc::ENABLE_COPY |
int | HaruDoc::ENABLE_EDIT |
int | HaruDoc::ENCRYPT_R2 |
int | HaruDoc::ENCRYPT_R3 |
int | HaruDoc::INFO_AUTHOR |
int | HaruDoc::INFO_CREATOR |
int | HaruDoc::INFO_TITLE |
int | HaruDoc::INFO_SUBJECT |
int | HaruDoc::INFO_KEYWORDS |
int | HaruDoc::INFO_CREATION_DATE |
int | HaruDoc::INFO_MOD_DATE |
int | HaruDoc::COMP_NONE |
int | HaruDoc::COMP_TEXT |
int | HaruDoc::COMP_IMAGE |
int | HaruDoc::COMP_METADATA |
int | HaruDoc::COMP_ALL |
int | HaruDoc::PAGE_LAYOUT_SINGLE |
int | HaruDoc::PAGE_LAYOUT_ONE_COLUMN |
int | HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT |
int | HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT |
int | HaruDoc::PAGE_MODE_USE_NONE |
int | HaruDoc::PAGE_MODE_USE_OUTLINE |
int | HaruDoc::PAGE_MODE_USE_THUMBS |
int | HaruDoc::PAGE_MODE_FULL_SCREEN |

Содержание

  • HaruDoc::addPage — Добавляет новую страницу в документ
  • HaruDoc::addPageLabel — Set the numbering style for the specified range of pages
  • HaruDoc::__construct — Construct new HaruDoc instance
  • HaruDoc::createOutline — Create a HaruOutline instance
  • HaruDoc::getCurrentEncoder — Get HaruEncoder currently used in the document
  • HaruDoc::getCurrentPage — Return current page of the document
  • HaruDoc::getEncoder — Get HaruEncoder instance for the specified encoding
  • HaruDoc::getFont — Get HaruFont instance
  • HaruDoc::getInfoAttr — Get current value of the specified document attribute
  • HaruDoc::getPageLayout — Get current page layout
  • HaruDoc::getPageMode — Get current page mode
  • HaruDoc::getStreamSize — Get the size of the temporary stream
  • HaruDoc::insertPage — Insert new page just before the specified page
  • HaruDoc::loadJPEG — Load a JPEG image
  • HaruDoc::loadPNG — Load PNG image and return HaruImage instance
  • HaruDoc::loadRaw — Load a RAW image
  • HaruDoc::loadTTC — Load the font with the specified index from TTC file
  • HaruDoc::loadTTF — Load TTF font file
  • HaruDoc::loadType1 — Load Type1 font
  • HaruDoc::output — Write the document data to the output buffer
  • HaruDoc::readFromStream — Read data from the temporary stream
  • HaruDoc::resetError — Reset error state of the document handle
  • HaruDoc::resetStream — Rewind the temporary stream
  • HaruDoc::save — Save the document into the specified file
  • HaruDoc::saveToStream — Save the document into a temporary stream
  • HaruDoc::setCompressionMode — Set compression mode for the document
  • HaruDoc::setCurrentEncoder — Set the current encoder for the document
  • HaruDoc::setEncryptionMode — Set encryption mode for the document
  • HaruDoc::setInfoAttr — Set the info attribute of the document
  • HaruDoc::setInfoDateAttr — Set the datetime info attributes of the document
  • HaruDoc::setOpenAction — Define which page is shown when the document is opened
  • HaruDoc::setPageLayout — Set how pages should be displayed
  • HaruDoc::setPageMode — Set how the document should be displayed
  • HaruDoc::setPagesConfiguration — Set the number of pages per set of pages
  • HaruDoc::setPassword — Set owner and user passwords for the document
  • HaruDoc::setPermission — Set permissions for the document
  • HaruDoc::useCNSEncodings — Enable Chinese simplified encodings
  • HaruDoc::useCNSFonts — Enable builtin Chinese simplified fonts
  • HaruDoc::useCNTEncodings — Enable Chinese traditional encodings
  • HaruDoc::useCNTFonts — Enable builtin Chinese traditional fonts
  • HaruDoc::useJPEncodings — Enable Japanese encodings
  • HaruDoc::useJPFonts — Enable builtin Japanese fonts
  • HaruDoc::useKREncodings — Enable Korean encodings
  • HaruDoc::useKRFonts — Enable builtin Korean fonts


Добавляет новую страницу в документ

  • « HaruDoc
  • HaruDoc::addPageLabel »
  • PHP Manual
  • HaruDoc
  • Добавляет новую страницу в документ

HaruDoc::addPage

(PECL haru >= 0.0.1)

HaruDoc::addPage — Добавляет новую страницу в документ

Описание

object HaruDoc::addPage ( void )

Добавляет новую страницу в документ.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает новый экземпляр HaruPage.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::insertPage() - Insert new page just before the specified page


Set the numbering style for the specified range of pages

  • « HaruDoc::addPage
  • HaruDoc::__construct »
  • PHP Manual
  • HaruDoc
  • Set the numbering style for the specified range of pages

HaruDoc::addPageLabel

(PECL haru >= 0.0.1)

HaruDoc::addPageLabel — Set the numbering style for the specified range of pages

Описание

bool HaruDoc::addPageLabel ( int $first_page , int $style , int $first_num [, string $prefix = "" ] )

Set the numbering style for the specified range of pages.

Список параметров

first_page

The first page included into the labeling range.

style

The numbering style. The following values are allowed:

  • HaruPage::NUM_STYLE_DECIMAL - page label is displayed using decimal numerals.
  • HaruPage::NUM_STYLE_UPPER_ROMAN - page label is displayed using uppercase Roman numerals.
  • HaruPage::NUM_STYLE_LOWER_ROMAN - page label is displayed using lowercase Roman numerals.
  • HaruPage::NUM_STYLE_UPPER_LETTER - page label is displayed using uppercase letters (from A to Z).
  • HaruPage::NUM_STYLE_LOWER_LETTERS - page label is displayed using lowercase letters (from a to z).

first_num

The first page number in this range.

prefix

The prefix for the page label.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Construct new HaruDoc instance

  • « HaruDoc::addPageLabel
  • HaruDoc::createOutline »
  • PHP Manual
  • HaruDoc
  • Construct new HaruDoc instance

HaruDoc::__construct

(PECL haru >= 0.0.1)

HaruDoc::__construct — Construct new HaruDoc instance

Описание

HaruDoc::__construct ( void )

Constructs new HaruDoc instance.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Вызывает исключение HaruException при ошибке.


Create a HaruOutline instance

  • « HaruDoc::__construct
  • HaruDoc::getCurrentEncoder »
  • PHP Manual
  • HaruDoc
  • Create a HaruOutline instance

HaruDoc::createOutline

(PECL haru >= 0.0.1)

HaruDoc::createOutline — Create a HaruOutline instance

Описание

object HaruDoc::createOutline ( string $title [, object $parent_outline [, object $encoder ]] )

Create a HaruOutline instance.

Список параметров

title

The caption of new outline object.

parent_outline

A valid HaruOutline instance or NULL.

encoder

A valid HaruEncoder instance or NULL.

Возвращаемые значения

Returns a new HaruOutline instance.

Ошибки

Вызывает исключение HaruException при ошибке.


Get HaruEncoder currently used in the document

  • « HaruDoc::createOutline
  • HaruDoc::getCurrentPage »
  • PHP Manual
  • HaruDoc
  • Get HaruEncoder currently used in the document

HaruDoc::getCurrentEncoder

(PECL haru >= 0.0.1)

HaruDoc::getCurrentEncoder — Get HaruEncoder currently used in the document

Описание

object HaruDoc::getCurrentEncoder ( void )

Get the HaruEncoder currently used in the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns HaruEncoder currently used in the document or FALSE if encoder is not set.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setCurrentEncoder() - Set the current encoder for the document


Return current page of the document

  • « HaruDoc::getCurrentEncoder
  • HaruDoc::getEncoder »
  • PHP Manual
  • HaruDoc
  • Return current page of the document

HaruDoc::getCurrentPage

(PECL haru >= 0.0.1)

HaruDoc::getCurrentPage — Return current page of the document

Описание

object HaruDoc::getCurrentPage ( void )

Get current page of the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns HaruPage instance on success or FALSE if there is no current page at the moment.

Ошибки

Вызывает исключение HaruException при ошибке.


Get HaruEncoder instance for the specified encoding

  • « HaruDoc::getCurrentPage
  • HaruDoc::getFont »
  • PHP Manual
  • HaruDoc
  • Get HaruEncoder instance for the specified encoding

HaruDoc::getEncoder

(PECL haru >= 0.0.1)

HaruDoc::getEncoder — Get HaruEncoder instance for the specified encoding

Описание

object HaruDoc::getEncoder ( string $encoding )

Get the HaruEncoder instance for the specified encoding.

Список параметров

encoding

The encoding name. See Builtin Encodings for the list of allowed values.

Возвращаемые значения

Returns a HaruEncoder instance for the specified encoding.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setCurrentEncoder() - Set the current encoder for the document
  • HaruDoc::getCurrentEncoder() - Get HaruEncoder currently used in the document


Get HaruFont instance

  • « HaruDoc::getEncoder
  • HaruDoc::getInfoAttr »
  • PHP Manual
  • HaruDoc
  • Get HaruFont instance

HaruDoc::getFont

(PECL haru >= 0.0.1)

HaruDoc::getFont — Get HaruFont instance

Описание

object HaruDoc::getFont ( string $fontname [, string $encoding ] )

Get a HaruFont instance.

Список параметров

fontname

The name of the font. See Builtin Fonts for the list of builtin fonts. You can also use the name of a font loaded via HaruDoc::loadTTF(), HaruDoc::loadTTC() and HaruDoc::loadType1().

encoding

The encoding to use. See Builtin Encodings for the list of supported encodings.

Возвращаемые значения

Returns a HaruFont instance with the specified fontname and encoding.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setFontAndSize() - Set font and fontsize for the page
  • HaruPage::setCurrentFont()


Get current value of the specified document attribute

  • « HaruDoc::getFont
  • HaruDoc::getPageLayout »
  • PHP Manual
  • HaruDoc
  • Get current value of the specified document attribute

HaruDoc::getInfoAttr

(PECL haru >= 0.0.1)

HaruDoc::getInfoAttr — Get current value of the specified document attribute

Описание

string HaruDoc::getInfoAttr ( int $type )

Get the current value of the specified document attribute.

Список параметров

type

The type of the attribute. The following values are available:

  • HaruDoc::INFO_AUTHOR
  • HaruDoc::INFO_CREATOR
  • HaruDoc::INFO_TITLE
  • HaruDoc::INFO_SUBJECT
  • HaruDoc::INFO_KEYWORDS
  • HaruDoc::INFO_CREATION_DATE
  • HaruDoc::INFO_MOD_DATE

Возвращаемые значения

Returns the string value of the specified document attribute.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setInfoAttr() - Set the info attribute of the document
  • HaruDoc::setInfoDateAttr() - Set the datetime info attributes of the document


Get current page layout

  • « HaruDoc::getInfoAttr
  • HaruDoc::getPageMode »
  • PHP Manual
  • HaruDoc
  • Get current page layout

HaruDoc::getPageLayout

(PECL haru >= 0.0.1)

HaruDoc::getPageLayout — Get current page layout

Описание

int HaruDoc::getPageLayout ( void )

Get the current page layout. See HaruDoc::setPageLayout() for the list of possible values.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the page layout currently set in the document or FALSE if page layout was not set. See HaruDoc::setPageLayout() for the list of possible values.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setPageLayout() - Set how pages should be displayed


Get current page mode

  • « HaruDoc::getPageLayout
  • HaruDoc::getStreamSize »
  • PHP Manual
  • HaruDoc
  • Get current page mode

HaruDoc::getPageMode

(PECL haru >= 0.0.1)

HaruDoc::getPageMode — Get current page mode

Описание

int HaruDoc::getPageMode ( void )

Get the current page mode. See HaruDoc::setPageMode() for the list of possible values.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the page mode currently set in the document. See HaruDoc::setPageMode() for the list of possible values.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setPageMode() - Set how the document should be displayed


Get the size of the temporary stream

  • « HaruDoc::getPageMode
  • HaruDoc::insertPage »
  • PHP Manual
  • HaruDoc
  • Get the size of the temporary stream

HaruDoc::getStreamSize

(PECL haru >= 0.0.1)

HaruDoc::getStreamSize — Get the size of the temporary stream

Описание

int HaruDoc::getStreamSize ( void )

Get the size of the temporary stream.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the size of the data in the temporary stream of the document. The size is zero if the document was not saved to the temporary stream.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::saveToStream() - Save the document into a temporary stream
  • HaruDoc::resetStream() - Rewind the temporary stream
  • HaruDoc::readFromStream() - Read data from the temporary stream


Insert new page just before the specified page

  • « HaruDoc::getStreamSize
  • HaruDoc::loadJPEG »
  • PHP Manual
  • HaruDoc
  • Insert new page just before the specified page

HaruDoc::insertPage

(PECL haru >= 0.0.1)

HaruDoc::insertPage — Insert new page just before the specified page

Описание

object HaruDoc::insertPage ( object $page )

Creates a new page and inserts just before the specified page.

Список параметров

page

A valid HaruPage instance.

Возвращаемые значения

Returns a new HaruPage instance.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::addPage() - Добавляет новую страницу в документ


Load a JPEG image

  • « HaruDoc::insertPage
  • HaruDoc::loadPNG »
  • PHP Manual
  • HaruDoc
  • Load a JPEG image

HaruDoc::loadJPEG

(PECL haru >= 0.0.1)

HaruDoc::loadJPEG — Load a JPEG image

Описание

object HaruDoc::loadJPEG ( string $filename )

Loads the specified JPEG image.

Список параметров

filename

A valid JPEG image file.

Возвращаемые значения

Returns a new HaruImage instance.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadPNG() - Load PNG image and return HaruImage instance
  • HaruDoc::loadRAW() - Load a RAW image


Load PNG image and return HaruImage instance

  • « HaruDoc::loadJPEG
  • HaruDoc::loadRaw »
  • PHP Manual
  • HaruDoc
  • Load PNG image and return HaruImage instance

HaruDoc::loadPNG

(PECL haru >= 0.0.1)

HaruDoc::loadPNG — Load PNG image and return HaruImage instance

Описание

object HaruDoc::loadPNG ( string $filename [, bool $deferred = false ] )

Loads a PNG image.

Libharu might be built without libpng support, in this case each call to this function would result in exception.

Список параметров

filename

The name of a PNG image file.

deferred

Do not load data immediately. You can set deferred parameter to TRUE for deferred data loading, in this case only size and color are loaded immediately.

Возвращаемые значения

Returns a HaruImage instance.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadJPEG() - Load a JPEG image
  • HaruDoc::loadRAW() - Load a RAW image


Load a RAW image

  • « HaruDoc::loadPNG
  • HaruDoc::loadTTC »
  • PHP Manual
  • HaruDoc
  • Load a RAW image

HaruDoc::loadRaw

(PECL haru >= 0.0.1)

HaruDoc::loadRaw — Load a RAW image

Описание

object HaruDoc::loadRaw ( string $filename , int $width , int $height , int $color_space )

Loads a RAW image.

Список параметров

filename

The name of a RAW image file.

width

The width of the image.

height

The height of the image.

color_space

The color space of the image. Can be one of the following values:

  • HaruDoc::CS_DEVICE_GRAY
  • HaruDoc::CS_DEVICE_RGB
  • HaruDoc::CS_DEVICE_CMYK

Возвращаемые значения

Returns a HaruImage instance.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadJPEG() - Load a JPEG image
  • HaruDoc::loadPNG() - Load PNG image and return HaruImage instance


Load the font with the specified index from TTC file

  • « HaruDoc::loadRaw
  • HaruDoc::loadTTF »
  • PHP Manual
  • HaruDoc
  • Load the font with the specified index from TTC file

HaruDoc::loadTTC

(PECL haru >= 0.0.1)

HaruDoc::loadTTC — Load the font with the specified index from TTC file

Описание

string HaruDoc::loadTTC ( string $fontfile , int $index [, bool $embed = false ] )

Loads the TrueType font with the specified index from a TrueType collection file.

Список параметров

fontfile

The TrueType collection file.

index

The index of the font in the collection file.

embed

When set to TRUE, the glyph data of the font is embedded into the PDF file, otherwise only the matrix data is included.

Возвращаемые значения

Returns the name of the loaded font on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadTTF() - Load TTF font file
  • HaruDoc::loadType1() - Load Type1 font


Load TTF font file

  • « HaruDoc::loadTTC
  • HaruDoc::loadType1 »
  • PHP Manual
  • HaruDoc
  • Load TTF font file

HaruDoc::loadTTF

(PECL haru >= 0.0.1)

HaruDoc::loadTTF — Load TTF font file

Описание

string HaruDoc::loadTTF ( string $fontfile [, bool $embed = false ] )

Loads the given TTF file and (optionally) embed its data into the document.

Список параметров

fontfile

The TTF file to load.

embed

When set to TRUE, the glyph data of the font is embedded into the PDF file, otherwise only the matrix data is included.

Возвращаемые значения

Returns the name of the loaded font on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadTTC() - Load the font with the specified index from TTC file
  • HaruDoc::loadType1() - Load Type1 font


Load Type1 font

  • « HaruDoc::loadTTF
  • HaruDoc::output »
  • PHP Manual
  • HaruDoc
  • Load Type1 font

HaruDoc::loadType1

(PECL haru >= 0.0.1)

HaruDoc::loadType1 — Load Type1 font

Описание

string HaruDoc::loadType1 ( string $afmfile [, string $pfmfile ] )

Loads Type1 font from the given file and registers it in the PDF document.

Список параметров

afmfile

Path to an AFM file.

pfmfile

Path to a PFA/PFB file, optional. If it's not set only the glyph data of the font is embedded into the PDF document.

Возвращаемые значения

Returns the name of the loaded font on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::loadTTC() - Load the font with the specified index from TTC file
  • HaruDoc::loadTTF() - Load TTF font file


Write the document data to the output buffer

  • « HaruDoc::loadType1
  • HaruDoc::readFromStream »
  • PHP Manual
  • HaruDoc
  • Write the document data to the output buffer

HaruDoc::output

(PECL haru >= 0.0.1)

HaruDoc::output — Write the document data to the output buffer

Описание

bool HaruDoc::output ( void )

Writes the document data into standard output.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::save() - Save the document into the specified file


Read data from the temporary stream

  • « HaruDoc::output
  • HaruDoc::resetError »
  • PHP Manual
  • HaruDoc
  • Read data from the temporary stream

HaruDoc::readFromStream

(PECL haru >= 0.0.1)

HaruDoc::readFromStream — Read data from the temporary stream

Описание

string HaruDoc::readFromStream ( int $bytes )

Read data from the temporary stream.

Список параметров

bytes

The bytes parameter specifies how many bytes to read, though the stream may contain less bytes than requested.

Возвращаемые значения

Returns data from the temporary stream.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::saveToStream() - Save the document into a temporary stream
  • HaruDoc::resetStream() - Rewind the temporary stream
  • HaruDoc::getStreamSize() - Get the size of the temporary stream


Reset error state of the document handle

  • « HaruDoc::readFromStream
  • HaruDoc::resetStream »
  • PHP Manual
  • HaruDoc
  • Reset error state of the document handle

HaruDoc::resetError

(PECL haru >= 0.0.1)

HaruDoc::resetError — Reset error state of the document handle

Описание

bool HaruDoc::resetError ( void )

Once an error code is set, most of the operations, including I/O processing functions cannot be performed. In case if you want to continue after the cause of the error has been fixed, you have to invoke this function in order to reset the document error state.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Always succeeds and returns TRUE.


Rewind the temporary stream

  • « HaruDoc::resetError
  • HaruDoc::save »
  • PHP Manual
  • HaruDoc
  • Rewind the temporary stream

HaruDoc::resetStream

(PECL haru >= 0.0.1)

HaruDoc::resetStream — Rewind the temporary stream

Описание

bool HaruDoc::resetStream ( void )

Rewinds the temporary stream of the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::saveToStream() - Save the document into a temporary stream
  • HaruDoc::getStreamSize() - Get the size of the temporary stream
  • HaruDoc::readFromStream() - Read data from the temporary stream


Save the document into the specified file

  • « HaruDoc::resetStream
  • HaruDoc::saveToStream »
  • PHP Manual
  • HaruDoc
  • Save the document into the specified file

HaruDoc::save

(PECL haru >= 0.0.1)

HaruDoc::save — Save the document into the specified file

Описание

bool HaruDoc::save ( string $file )

Saves the document into the specified file.

Список параметров

file

The file to save the document to.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::output() - Write the document data to the output buffer


Save the document into a temporary stream

  • « HaruDoc::save
  • HaruDoc::setCompressionMode »
  • PHP Manual
  • HaruDoc
  • Save the document into a temporary stream

HaruDoc::saveToStream

(PECL haru >= 0.0.1)

HaruDoc::saveToStream — Save the document into a temporary stream

Описание

bool HaruDoc::saveToStream ( void )

Saves the document data into a temporary stream.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::resetStream() - Rewind the temporary stream
  • HaruDoc::getStreamSize() - Get the size of the temporary stream
  • HaruDoc::readFromStream() - Read data from the temporary stream


Set compression mode for the document

  • « HaruDoc::saveToStream
  • HaruDoc::setCurrentEncoder »
  • PHP Manual
  • HaruDoc
  • Set compression mode for the document

HaruDoc::setCompressionMode

(PECL haru >= 0.0.1)

HaruDoc::setCompressionMode — Set compression mode for the document

Описание

bool HaruDoc::setCompressionMode ( int $mode )

Defines compression mode for the document. In case when libharu was compiled without Zlib support this function will always throw HaruException.

Список параметров

mode

The compression mode to use. The value is a combination of the following flags:

  • HaruDoc::COMP_NONE - all contents is not compressed.
  • HaruDoc::COMP_TEXT - compress the text data.
  • HaruDoc::COMP_IMAGE - compress the image data.
  • HaruDoc::COMP_METADATA - compress other data (fonts, cmaps).
  • HaruDoc::COMP_ALL - compress all data.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the current encoder for the document

  • « HaruDoc::setCompressionMode
  • HaruDoc::setEncryptionMode »
  • PHP Manual
  • HaruDoc
  • Set the current encoder for the document

HaruDoc::setCurrentEncoder

(PECL haru >= 0.0.1)

HaruDoc::setCurrentEncoder — Set the current encoder for the document

Описание

bool HaruDoc::setCurrentEncoder ( string $encoding )

Defines the encoder currently used in the document.

Список параметров

encoding

The name of the encoding to use. See Builtin Encodings for the list of allowed values.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set encryption mode for the document

  • « HaruDoc::setCurrentEncoder
  • HaruDoc::setInfoAttr »
  • PHP Manual
  • HaruDoc
  • Set encryption mode for the document

HaruDoc::setEncryptionMode

(PECL haru >= 0.0.1)

HaruDoc::setEncryptionMode — Set encryption mode for the document

Описание

bool HaruDoc::setEncryptionMode ( int $mode [, int $key_len = 5 ] )

Defines encryption mode for the document. The encryption mode cannot be set before setting the password.

Список параметров

mode

The encryption mode to use. Can be one of the following:

  • HaruDoc::ENCRYPT_R2 - use "revision2" algorithm.
  • HaruDoc::ENCRYPT_R3 - use "revision3" algorithm. Using this value bumps the version of PDF to 1.4.

key_len

The encryption key length in bytes. This parameter is optional and used only when mode is HaruDoc::ENCRYPT_R3. The default value is 5 (40bit).

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setPassword() - Set owner and user passwords for the document
  • HaruDoc::setPermission() - Set permissions for the document


Set the info attribute of the document

  • « HaruDoc::setEncryptionMode
  • HaruDoc::setInfoDateAttr »
  • PHP Manual
  • HaruDoc
  • Set the info attribute of the document

HaruDoc::setInfoAttr

(PECL haru >= 0.0.1)

HaruDoc::setInfoAttr — Set the info attribute of the document

Описание

bool HaruDoc::setInfoAttr ( int $type , string $info )

Defines an info attribute. Uses the current encoding of the document.

Список параметров

type

The type of the attribute. Can be one of the following:

  • HaruDoc::INFO_AUTHOR
  • HaruDoc::INFO_CREATOR
  • HaruDoc::INFO_TITLE
  • HaruDoc::INFO_SUBJECT
  • HaruDoc::INFO_KEYWORDS

info

The value of the attribute.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setInfoDateAttr() - Set the datetime info attributes of the document


Set the datetime info attributes of the document

  • « HaruDoc::setInfoAttr
  • HaruDoc::setOpenAction »
  • PHP Manual
  • HaruDoc
  • Set the datetime info attributes of the document

HaruDoc::setInfoDateAttr

(PECL haru >= 0.0.1)

HaruDoc::setInfoDateAttr — Set the datetime info attributes of the document

Описание

bool HaruDoc::setInfoDateAttr ( int $type , int $year , int $month , int $day , int $hour , int $min , int $sec , string $ind , int $off_hour , int $off_min )

Sets the datetime info attributes of the document.

Список параметров

type

The type of the attribute. Can be one of the following:

  • HaruDoc::INFO_CREATION_DATE
  • HaruDoc::INFO_MOD_DATE

year

month

Between 1 and 12.

day

Between 1 and 31, 30, 29 or 28 (different for each month).

hour

Between 0 and 23.

min

Between 0 and 59.

sec

Between 0 and 59.

ind

The timezone relation to UTC, can be "", " ", "+", "-" and "Z".

off_hour

If ind is not " " or "", values between 0 and 23 are valid. Otherwise, this parameter is ignored.

off_min

If ind is not " " or "", values between 0 and 59 are valid. Otherwise, this parameter is ignored.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setInfoAttr() - Set the info attribute of the document


Define which page is shown when the document is opened

  • « HaruDoc::setInfoDateAttr
  • HaruDoc::setPageLayout »
  • PHP Manual
  • HaruDoc
  • Define which page is shown when the document is opened

HaruDoc::setOpenAction

(PECL haru >= 0.0.1)

HaruDoc::setOpenAction — Define which page is shown when the document is opened

Описание

bool HaruDoc::setOpenAction ( object $destination )

Defines which page should be shown when the document is opened.

Список параметров

destination

A valid HaruDestination instance.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set how pages should be displayed

  • « HaruDoc::setOpenAction
  • HaruDoc::setPageMode »
  • PHP Manual
  • HaruDoc
  • Set how pages should be displayed

HaruDoc::setPageLayout

(PECL haru >= 0.0.1)

HaruDoc::setPageLayout — Set how pages should be displayed

Описание

bool HaruDoc::setPageLayout ( int $layout )

Defines how pages should be displayed.

Список параметров

layout

The following values are accepted:

  • HaruDoc::PAGE_LAYOUT_SINGLE - only one page is displayed.
  • HaruDoc::PAGE_LAYOUT_ONE_COLUMN - display the pages in one column.
  • HaruDoc::PAGE_LAYOUT_TWO_COLUMN_LEFT - display pages in two columns, first page left.
  • HaruDoc::PAGE_LAYOUT_TWO_COLUMN_RIGHT - display pages in two columns, first page right.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::getPageLayout() - Get current page layout


Set how the document should be displayed

  • « HaruDoc::setPageLayout
  • HaruDoc::setPagesConfiguration »
  • PHP Manual
  • HaruDoc
  • Set how the document should be displayed

HaruDoc::setPageMode

(PECL haru >= 0.0.1)

HaruDoc::setPageMode — Set how the document should be displayed

Описание

bool HaruDoc::setPageMode ( int $mode )

Defines how the document should be displayed.

Список параметров

mode

The following values are accepted:

  • HaruDoc::PAGE_MODE_USE_NONE - display the document with neither outline nor thumbnail.
  • HaruDoc::PAGE_MODE_USE_OUTLINE - display the document with outline pane.
  • HaruDoc::PAGE_MODE_USE_THUMBS - display the document with thumbnail pane.
  • HaruDoc::PAGE_MODE_FULL_SCREEN - display the document with full screen mode.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::getPageMode() - Get current page mode


Set the number of pages per set of pages

  • « HaruDoc::setPageMode
  • HaruDoc::setPassword »
  • PHP Manual
  • HaruDoc
  • Set the number of pages per set of pages

HaruDoc::setPagesConfiguration

(PECL haru >= 0.0.1)

HaruDoc::setPagesConfiguration — Set the number of pages per set of pages

Описание

bool HaruDoc::setPagesConfiguration ( int $page_per_pages )

By default the document has one pages object as a root for all pages. All page objects are create as branches of this object. One pages object can contain only 8191, therefore the maximum number of pages per document is 8191. But you can change that fact by setting page_per_pages parameter, so that the root pages object contains 8191 more pages (not page) objects, which in turn contain 8191 pages each. So the maximum number of pages in the document becomes 8191*page_per_pages.

Список параметров

page_per_pages

The numbers of pages that a pages object can contain.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set owner and user passwords for the document

  • « HaruDoc::setPagesConfiguration
  • HaruDoc::setPermission »
  • PHP Manual
  • HaruDoc
  • Set owner and user passwords for the document

HaruDoc::setPassword

(PECL haru >= 0.0.1)

HaruDoc::setPassword — Set owner and user passwords for the document

Описание

bool HaruDoc::setPassword ( string $owner_password , string $user_password )

Defines owner and user passwords for the document. Setting the passwords makes the document contents encrypted.

Список параметров

owner_password

The password of the owner, which can change permissions of the document. Empty password is not accepted. Owner's password cannot be the same as the user's password.

user_password

The password of the user. Can be empty.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setEncryptionMode() - Set encryption mode for the document
  • HaruDoc::setPermission() - Set permissions for the document


Set permissions for the document

  • « HaruDoc::setPassword
  • HaruDoc::useCNSEncodings »
  • PHP Manual
  • HaruDoc
  • Set permissions for the document

HaruDoc::setPermission

(PECL haru >= 0.0.1)

HaruDoc::setPermission — Set permissions for the document

Описание

bool HaruDoc::setPermission ( int $permission )

Defines permissions for the document.

Список параметров

permission

The values is a combination of these flags:

  • HaruDoc::ENABLE_READ - user can read the document.
  • HaruDoc::ENABLE_PRINT - user can print the document.
  • HaruDoc::ENABLE_EDIT_ALL - user can edit the contents of the document other than annotations and form fields.
  • HaruDoc::ENABLE_COPY - user can copy the text and the graphics of the document.
  • HaruDoc::ENABLE_EDIT - user can add or modify the annotations and form fields of the document.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::setPassword() - Set owner and user passwords for the document
  • HaruDoc::setEncryptionMode() - Set encryption mode for the document


Enable Chinese simplified encodings

  • « HaruDoc::setPermission
  • HaruDoc::useCNSFonts »
  • PHP Manual
  • HaruDoc
  • Enable Chinese simplified encodings

HaruDoc::useCNSEncodings

(PECL haru >= 0.0.1)

HaruDoc::useCNSEncodings — Enable Chinese simplified encodings

Описание

bool HaruDoc::useCNSEncodings ( void )

Enables Chinese simplified encodings.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useCNSFonts() - Enable builtin Chinese simplified fonts


Enable builtin Chinese simplified fonts

  • « HaruDoc::useCNSEncodings
  • HaruDoc::useCNTEncodings »
  • PHP Manual
  • HaruDoc
  • Enable builtin Chinese simplified fonts

HaruDoc::useCNSFonts

(PECL haru >= 0.0.1)

HaruDoc::useCNSFonts — Enable builtin Chinese simplified fonts

Описание

bool HaruDoc::useCNSFonts ( void )

Enables builtin Chinese simplified fonts.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useCNSEncodings() - Enable Chinese simplified encodings


Enable Chinese traditional encodings

  • « HaruDoc::useCNSFonts
  • HaruDoc::useCNTFonts »
  • PHP Manual
  • HaruDoc
  • Enable Chinese traditional encodings

HaruDoc::useCNTEncodings

(PECL haru >= 0.0.1)

HaruDoc::useCNTEncodings — Enable Chinese traditional encodings

Описание

bool HaruDoc::useCNTEncodings ( void )

Enables Chinese traditional encodings.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useCNTFonts() - Enable builtin Chinese traditional fonts


Enable builtin Chinese traditional fonts

  • « HaruDoc::useCNTEncodings
  • HaruDoc::useJPEncodings »
  • PHP Manual
  • HaruDoc
  • Enable builtin Chinese traditional fonts

HaruDoc::useCNTFonts

(PECL haru >= 0.0.1)

HaruDoc::useCNTFonts — Enable builtin Chinese traditional fonts

Описание

bool HaruDoc::useCNTFonts ( void )

Enables builtin Chinese traditional fonts.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useCNTEncodings() - Enable Chinese traditional encodings


Enable Japanese encodings

  • « HaruDoc::useCNTFonts
  • HaruDoc::useJPFonts »
  • PHP Manual
  • HaruDoc
  • Enable Japanese encodings

HaruDoc::useJPEncodings

(PECL haru >= 0.0.1)

HaruDoc::useJPEncodings — Enable Japanese encodings

Описание

bool HaruDoc::useJPEncodings ( void )

Enables Japanese encodings.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useJPFonts() - Enable builtin Japanese fonts


Enable builtin Japanese fonts

  • « HaruDoc::useJPEncodings
  • HaruDoc::useKREncodings »
  • PHP Manual
  • HaruDoc
  • Enable builtin Japanese fonts

HaruDoc::useJPFonts

(PECL haru >= 0.0.1)

HaruDoc::useJPFonts — Enable builtin Japanese fonts

Описание

bool HaruDoc::useJPFonts ( void )

Enables builtin Japanese fonts.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useJPEncodings() - Enable Japanese encodings


Enable Korean encodings

  • « HaruDoc::useJPFonts
  • HaruDoc::useKRFonts »
  • PHP Manual
  • HaruDoc
  • Enable Korean encodings

HaruDoc::useKREncodings

(PECL haru >= 0.0.1)

HaruDoc::useKREncodings — Enable Korean encodings

Описание

bool HaruDoc::useKREncodings ( void )

Enables Korean encodings.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useKRFonts() - Enable builtin Korean fonts


Enable builtin Korean fonts

  • « HaruDoc::useKREncodings
  • HaruPage »
  • PHP Manual
  • HaruDoc
  • Enable builtin Korean fonts

HaruDoc::useKRFonts

(PECL haru >= 0.0.1)

HaruDoc::useKRFonts — Enable builtin Korean fonts

Описание

bool HaruDoc::useKRFonts ( void )

Enables builtin Korean fonts.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::useKREncodings() - Enable Korean encodings


Класс HaruPage

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Page.

Обзор классов

HaruPage {
/* Методы */
bool arc ( float $x , float $y , float $ray , float $ang1 , float $ang2 )
bool beginText ( void )
bool circle ( float $x , float $y , float $ray )
bool closePath ( void )
bool concat ( float $a , float $b , float $c , float $d , float $x , float $y )
object createDestination ( void )
object createLinkAnnotation ( array $rectangle , object $destination )
object createTextAnnotation ( array $rectangle , string $text [, object $encoder ] )
object createURLAnnotation ( array $rectangle , string $url )
bool curveTo2 ( float $x2 , float $y2 , float $x3 , float $y3 )
bool curveTo3 ( float $x1 , float $y1 , float $x3 , float $y3 )
bool curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )
bool drawImage ( object $image , float $x , float $y , float $width , float $height )
bool ellipse ( float $x , float $y , float $xray , float $yray )
bool endPath ( void )
bool endText ( void )
bool eofill ( void )
bool eoFillStroke ([ bool $close_path = false ] )
bool fill ( void )
bool fillStroke ([ bool $close_path = false ] )
float getCharSpace ( void )
array getCMYKFill ( void )
array getCMYKStroke ( void )
object getCurrentFont ( void )
float getCurrentFontSize ( void )
array getCurrentPos ( void )
array getCurrentTextPos ( void )
array getDash ( void )
int getFillingColorSpace ( void )
float getFlatness ( void )
int getGMode ( void )
float getGrayFill ( void )
float getGrayStroke ( void )
float getHeight ( void )
float getHorizontalScaling ( void )
int getLineCap ( void )
int getLineJoin ( void )
float getLineWidth ( void )
float getMiterLimit ( void )
array getRGBFill ( void )
array getRGBStroke ( void )
int getStrokingColorSpace ( void )
float getTextLeading ( void )
array getTextMatrix ( void )
int getTextRenderingMode ( void )
float getTextRise ( void )
float getTextWidth ( string $text )
array getTransMatrix ( void )
float getWidth ( void )
float getWordSpace ( void )
bool lineTo ( float $x , float $y )
int measureText ( string $text , float $width [, bool $wordwrap = false ] )
bool moveTextPos ( float $x , float $y [, bool $set_leading = false ] )
bool moveTo ( float $x , float $y )
bool moveToNextLine ( void )
bool rectangle ( float $x , float $y , float $width , float $height )
bool setCharSpace ( float $char_space )
bool setCMYKFill ( float $c , float $m , float $y , float $k )
bool setCMYKStroke ( float $c , float $m , float $y , float $k )
bool setDash ( array $pattern , int $phase )
bool setFlatness ( float $flatness )
bool setFontAndSize ( object $font , float $size )
bool setGrayFill ( float $value )
bool setGrayStroke ( float $value )
bool setHeight ( float $height )
bool setHorizontalScaling ( float $scaling )
bool setLineCap ( int $cap )
bool setLineJoin ( int $join )
bool setLineWidth ( float $width )
bool setMiterLimit ( float $limit )
bool setRGBFill ( float $r , float $g , float $b )
bool setRGBStroke ( float $r , float $g , float $b )
bool setRotate ( int $angle )
bool setSize ( int $size , int $direction )
bool setSlideShow ( int $type , float $disp_time , float $trans_time )
bool setTextLeading ( float $text_leading )
bool setTextMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
bool setTextRenderingMode ( int $mode )
bool setTextRise ( float $rise )
bool setWidth ( float $width )
bool setWordSpace ( float $word_space )
bool showText ( string $text )
bool showTextNextLine ( string $text [, float $word_space = 0 [, float $char_space = 0 ]] )
bool stroke ([ bool $close_path = false ] )
bool textOut ( float $x , float $y , string $text )
bool textRect ( float $left , float $top , float $right , float $bottom , string $text [, int $align = HaruPage::TALIGN_LEFT ] )
}

Предопределенные константы

Тип | Имя | Описание
int | HaruPage::GMODE_PAGE_DESCRIPTION |
int | HaruPage::GMODE_TEXT_OBJECT |
int | HaruPage::GMODE_PATH_OBJECT |
int | HaruPage::GMODE_CLIPPING_PATH |
int | HaruPage::GMODE_SHADING |
int | HaruPage::GMODE_INLINE_IMAGE |
int | HaruPage::GMODE_EXTERNAL_OBJECT |
int | HaruPage::BUTT_END |
int | HaruPage::ROUND_END |
int | HaruPage::PROJECTING_SCUARE_END |
int | HaruPage::MITER_JOIN |
int | HaruPage::ROUND_JOIN |
int | HaruPage::BEVEL_JOIN |
int | HaruPage::FILL |
int | HaruPage::STROKE |
int | HaruPage::FILL_THEN_STROKE |
int | HaruPage::INVISIBLE |
int | HaruPage::FILL_CLIPPING |
int | HaruPage::STROKE_CLIPPING |
int | HaruPage::FILL_STROKE_CLIPPING |
int | HaruPage::CLIPPING |
int | HaruPage::TALIGN_LEFT |
int | HaruPage::TALIGN_RIGHT |
int | HaruPage::TALIGN_CENTER |
int | HaruPage::TALIGN_JUSTIFY |
int | HaruPage::SIZE_LETTER |
int | HaruPage::SIZE_LEGAL |
int | HaruPage::SIZE_A3 |
int | HaruPage::SIZE_A4 |
int | HaruPage::SIZE_A5 |
int | HaruPage::SIZE_B4 |
int | HaruPage::SIZE_B5 |
int | HaruPage::SIZE_EXECUTIVE |
int | HaruPage::SIZE_US4x6 |
int | HaruPage::SIZE_US4x8 |
int | HaruPage::SIZE_US5x7 |
int | HaruPage::SIZE_COMM10 |
int | HaruPage::PORTRAIT |
int | HaruPage::LANDSCAPE |
int | HaruPage::TS_WIPE_LIGHT |
int | HaruPage::TS_WIPE_UP |
int | HaruPage::TS_WIPE_LEFT |
int | HaruPage::TS_WIPE_DOWN |
int | HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT |
int | HaruPage::TS_BARN_DOORS_HORIZONTAL_IN |
int | HaruPage::TS_BARN_DOORS_VERTICAL_OUT |
int | HaruPage::TS_BARN_DOORS_VERTICAL_IN |
int | HaruPage::TS_BOX_OUT |
int | HaruPage::TS_BOX_IN |
int | HaruPage::TS_BLINDS_HORIZONTAL |
int | HaruPage::TS_BLINDS_VERTICAL |
int | HaruPage::TS_DISSOLVE |
int | HaruPage::TS_GLITTER_RIGHT |
int | HaruPage::TS_GLITTER_DOWN |
int | HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT |
int | HaruPage::TS_REPLACE |
int | HaruPage::NUM_STYLE_DECIMAL |
int | HaruPage::NUM_STYLE_UPPER_ROMAN |
int | HaruPage::NUM_STYLE_LOWER_ROMAN |
int | HaruPage::NUM_STYLE_UPPER_LETTERS |
int | HaruPage::NUM_STYLE_LOWER_LETTERS |

Содержание

  • HaruPage::arc — Append an arc to the current path
  • HaruPage::beginText — Begin a text object and set the current text position to (0,0)
  • HaruPage::circle — Append a circle to the current path
  • HaruPage::closePath — Append a straight line from the current point to the start point of the path
  • HaruPage::concat — Concatenate current transformation matrix of the page and the specified matrix
  • HaruPage::createDestination — Create new HaruDestination instance
  • HaruPage::createLinkAnnotation — Create new HaruAnnotation instance
  • HaruPage::createTextAnnotation — Create new HaruAnnotation instance
  • HaruPage::createURLAnnotation — Create and return new HaruAnnotation instance
  • HaruPage::curveTo2 — Append a Bezier curve to the current path
  • HaruPage::curveTo3 — Append a Bezier curve to the current path
  • HaruPage::curveTo — Append a Bezier curve to the current path
  • HaruPage::drawImage — Show image at the page
  • HaruPage::ellipse — Append an ellipse to the current path
  • HaruPage::endPath — End current path object without filling and painting operations
  • HaruPage::endText — End current text object
  • HaruPage::eofill — Fill current path using even-odd rule
  • HaruPage::eoFillStroke — Fill current path using even-odd rule, then paint the path
  • HaruPage::fill — Fill current path using nonzero winding number rule
  • HaruPage::fillStroke — Fill current path using nonzero winding number rule, then paint the path
  • HaruPage::getCharSpace — Get the current value of character spacing
  • HaruPage::getCMYKFill — Get the current filling color
  • HaruPage::getCMYKStroke — Get the current stroking color
  • HaruPage::getCurrentFont — Get the currently used font
  • HaruPage::getCurrentFontSize — Get the current font size
  • HaruPage::getCurrentPos — Get the current position for path painting
  • HaruPage::getCurrentTextPos — Get the current position for text printing
  • HaruPage::getDash — Get the current dash pattern
  • HaruPage::getFillingColorSpace — Get the current filling color space
  • HaruPage::getFlatness — Get the flatness of the page
  • HaruPage::getGMode — Get the current graphics mode
  • HaruPage::getGrayFill — Get the current filling color
  • HaruPage::getGrayStroke — Get the current stroking color
  • HaruPage::getHeight — Get the height of the page
  • HaruPage::getHorizontalScaling — Get the current value of horizontal scaling
  • HaruPage::getLineCap — Get the current line cap style
  • HaruPage::getLineJoin — Get the current line join style
  • HaruPage::getLineWidth — Get the current line width
  • HaruPage::getMiterLimit — Get the value of miter limit
  • HaruPage::getRGBFill — Get the current filling color
  • HaruPage::getRGBStroke — Get the current stroking color
  • HaruPage::getStrokingColorSpace — Get the current stroking color space
  • HaruPage::getTextLeading — Get the current value of line spacing
  • HaruPage::getTextMatrix — Get the current text transformation matrix of the page
  • HaruPage::getTextRenderingMode — Get the current text rendering mode
  • HaruPage::getTextRise — Get the current value of text rising
  • HaruPage::getTextWidth — Get the width of the text using current fontsize, character spacing and word spacing
  • HaruPage::getTransMatrix — Get the current transformation matrix of the page
  • HaruPage::getWidth — Get the width of the page
  • HaruPage::getWordSpace — Get the current value of word spacing
  • HaruPage::lineTo — Draw a line from the current point to the specified point
  • HaruPage::measureText — Calculate the byte length of characters which can be included on one line of the specified width
  • HaruPage::moveTextPos — Move text position to the specified offset
  • HaruPage::moveTo — Set starting point for new drawing path
  • HaruPage::moveToNextLine — Move text position to the start of the next line
  • HaruPage::rectangle — Append a rectangle to the current path
  • HaruPage::setCharSpace — Set character spacing for the page
  • HaruPage::setCMYKFill — Set filling color for the page
  • HaruPage::setCMYKStroke — Set stroking color for the page
  • HaruPage::setDash — Set the dash pattern for the page
  • HaruPage::setFlatness — Set flatness for the page
  • HaruPage::setFontAndSize — Set font and fontsize for the page
  • HaruPage::setGrayFill — Set filling color for the page
  • HaruPage::setGrayStroke — Sets stroking color for the page
  • HaruPage::setHeight — Set height of the page
  • HaruPage::setHorizontalScaling — Set horizontal scaling for the page
  • HaruPage::setLineCap — Set the shape to be used at the ends of lines
  • HaruPage::setLineJoin — Set line join style for the page
  • HaruPage::setLineWidth — Set line width for the page
  • HaruPage::setMiterLimit — Set the current value of the miter limit of the page
  • HaruPage::setRGBFill — Set filling color for the page
  • HaruPage::setRGBStroke — Set stroking color for the page
  • HaruPage::setRotate — Set rotation angle of the page
  • HaruPage::setSize — Set size and direction of the page
  • HaruPage::setSlideShow — Set transition style for the page
  • HaruPage::setTextLeading — Set text leading (line spacing) for the page
  • HaruPage::setTextMatrix — Set the current text transformation matrix of the page
  • HaruPage::setTextRenderingMode — Set text rendering mode for the page
  • HaruPage::setTextRise — Set the current value of text rising
  • HaruPage::setWidth — Set width of the page
  • HaruPage::setWordSpace — Set word spacing for the page
  • HaruPage::showText — Print text at the current position of the page
  • HaruPage::showTextNextLine — Move the current position to the start of the next line and print the text
  • HaruPage::stroke — Paint current path
  • HaruPage::textOut — Print the text on the specified position
  • HaruPage::textRect — Print the text inside the specified region


Append an arc to the current path

  • « HaruPage
  • HaruPage::beginText »
  • PHP Manual
  • HaruPage
  • Append an arc to the current path

HaruPage::arc

(PECL haru >= 0.0.1)

HaruPage::arc — Append an arc to the current path

Описание

bool HaruPage::arc ( float $x , float $y , float $ray , float $ang1 , float $ang2 )

Appends an arc to the current path.

Список параметров

x

Horizontal coordinate of the center.

y

Vertical coordinate of the center.

ray

The ray of the arc.

ang1

The angle of the beginning.

ang2

The angle of the end. Must be greater than ang1.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Begin a text object and set the current text position to (0,0)

  • « HaruPage::arc
  • HaruPage::circle »
  • PHP Manual
  • HaruPage
  • Begin a text object and set the current text position to (0,0)

HaruPage::beginText

(PECL haru >= 0.0.1)

HaruPage::beginText — Begin a text object and set the current text position to (0,0)

Описание

bool HaruPage::beginText ( void )

Begins new text object and sets the current text position to (0,0).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Append a circle to the current path

  • « HaruPage::beginText
  • HaruPage::closePath »
  • PHP Manual
  • HaruPage
  • Append a circle to the current path

HaruPage::circle

(PECL haru >= 0.0.1)

HaruPage::circle — Append a circle to the current path

Описание

bool HaruPage::circle ( float $x , float $y , float $ray )

Appends a circle to the current path.

Список параметров

x

Horizontal coordinate of the center point.

y

Vertical coordinate of the center point.

ray

The ray of the circle.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Append a straight line from the current point to the start point of the path

  • « HaruPage::circle
  • HaruPage::concat »
  • PHP Manual
  • HaruPage
  • Append a straight line from the current point to the start point of the path

HaruPage::closePath

(PECL haru >= 0.0.1)

HaruPage::closePath — Append a straight line from the current point to the start point of the path

Описание

bool HaruPage::closePath ( void )

Appends a straight line from the current point to the start point of the path.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Concatenate current transformation matrix of the page and the specified matrix

  • « HaruPage::closePath
  • HaruPage::createDestination »
  • PHP Manual
  • HaruPage
  • Concatenate current transformation matrix of the page and the specified matrix

HaruPage::concat

(PECL haru >= 0.0.1)

HaruPage::concat — Concatenate current transformation matrix of the page and the specified matrix

Описание

bool HaruPage::concat ( float $a , float $b , float $c , float $d , float $x , float $y )

Concatenates current transformation matrix of the page and the specified matrix.

Список параметров

a

b

c

d

x

y

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Create new HaruDestination instance

  • « HaruPage::concat
  • HaruPage::createLinkAnnotation »
  • PHP Manual
  • HaruPage
  • Create new HaruDestination instance

HaruPage::createDestination

(PECL haru >= 0.0.1)

HaruPage::createDestination — Create new HaruDestination instance

Описание

object HaruPage::createDestination ( void )

Create a new HaruDestination instance.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a new HaruDestination instance.

Ошибки

Вызывает исключение HaruException при ошибке.


Create new HaruAnnotation instance

  • « HaruPage::createDestination
  • HaruPage::createTextAnnotation »
  • PHP Manual
  • HaruPage
  • Create new HaruAnnotation instance

HaruPage::createLinkAnnotation

(PECL haru >= 0.0.1)

HaruPage::createLinkAnnotation — Create new HaruAnnotation instance

Описание

object HaruPage::createLinkAnnotation ( array $rectangle , object $destination )

Creates a new HaruAnnotation instance.

Список параметров

rectangle

An array with 4 coordinates of the clickable area.

destination

Valid HaruDestination instance.

Возвращаемые значения

Returns a new HaruAnnotation instance.

Ошибки

Вызывает исключение HaruException при ошибке.


Create new HaruAnnotation instance

  • « HaruPage::createLinkAnnotation
  • HaruPage::createURLAnnotation »
  • PHP Manual
  • HaruPage
  • Create new HaruAnnotation instance

HaruPage::createTextAnnotation

(PECL haru >= 0.0.1)

HaruPage::createTextAnnotation — Create new HaruAnnotation instance

Описание

object HaruPage::createTextAnnotation ( array $rectangle , string $text [, object $encoder ] )

Creates a new HaruAnnotation instance.

Список параметров

rectangle

An array with 4 coordinates of the annotation area.

text

The text to be displayed.

encoder

Optional HaruEncoder instance.

Возвращаемые значения

Returns a new HaruAnnotation instance.

Ошибки

Вызывает исключение HaruException при ошибке.


Create and return new HaruAnnotation instance

  • « HaruPage::createTextAnnotation
  • HaruPage::curveTo2 »
  • PHP Manual
  • HaruPage
  • Create and return new HaruAnnotation instance

HaruPage::createURLAnnotation

(PECL haru >= 0.0.1)

HaruPage::createURLAnnotation — Create and return new HaruAnnotation instance

Описание

object HaruPage::createURLAnnotation ( array $rectangle , string $url )

Creates a new HaruAnnotation instance.

Список параметров

rectangle

An array with 4 coordinates of the clickable area.

url

The URL to open.

Возвращаемые значения

Returns a new HaruAnnotation instance.

Ошибки

Вызывает исключение HaruException при ошибке.


Append a Bezier curve to the current path

  • « HaruPage::createURLAnnotation
  • HaruPage::curveTo3 »
  • PHP Manual
  • HaruPage
  • Append a Bezier curve to the current path

HaruPage::curveTo2

(PECL haru >= 0.0.1)

HaruPage::curveTo2 — Append a Bezier curve to the current path

Описание

bool HaruPage::curveTo2 ( float $x2 , float $y2 , float $x3 , float $y3 )

Appends a Bezier curve to the current path. The current point and the point (x2, y2) are used as the control points for the Bezier curve and current point is moved to the point (x3, y3).

Список параметров

x2

A Bezier curve control point.

y2

A Bezier curve control point.

x3

The current point moves here.

x3

The current point moves here.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Append a Bezier curve to the current path

  • « HaruPage::curveTo2
  • HaruPage::curveTo »
  • PHP Manual
  • HaruPage
  • Append a Bezier curve to the current path

HaruPage::curveTo3

(PECL haru >= 0.0.1)

HaruPage::curveTo3 — Append a Bezier curve to the current path

Описание

bool HaruPage::curveTo3 ( float $x1 , float $y1 , float $x3 , float $y3 )

Appends a Bezier curve to the current path. The point (x1, y1) and the point (x3, y3) are used as the control points for a Bezier curve and current point is moved to the point (x3, y3).

Список параметров

x1

A Bezier curve control point.

y1

A Bezier curve control point.

x3

The current point moves here.

x3

The current point moves here.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Append a Bezier curve to the current path

  • « HaruPage::curveTo3
  • HaruPage::drawImage »
  • PHP Manual
  • HaruPage
  • Append a Bezier curve to the current path

HaruPage::curveTo

(PECL haru >= 0.0.1)

HaruPage::curveTo — Append a Bezier curve to the current path

Описание

bool HaruPage::curveTo ( float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Append a Bezier curve to the current path. The point (x1, y1) and the point (x2, y2) are used as the control points for a Bezier curve and current point is moved to the point (x3, y3).

Список параметров

x1

A Bezier curve control point.

y1

A Bezier curve control point.

x2

A Bezier curve control point.

y2

A Bezier curve control point.

x3

The current point moves here.

x3

The current point moves here.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Show image at the page

  • « HaruPage::curveTo
  • HaruPage::ellipse »
  • PHP Manual
  • HaruPage
  • Show image at the page

HaruPage::drawImage

(PECL haru >= 0.0.1)

HaruPage::drawImage — Show image at the page

Описание

bool HaruPage::drawImage ( object $image , float $x , float $y , float $width , float $height )

Show image at the page.

Список параметров

image

Valid HaruImage instance.

x

The left border of the area where the image is displayed.

y

The lower border of the area where the image is displayed.

width

The width of the image area.

height

The height of the image area.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Append an ellipse to the current path

  • « HaruPage::drawImage
  • HaruPage::endPath »
  • PHP Manual
  • HaruPage
  • Append an ellipse to the current path

HaruPage::ellipse

(PECL haru >= 0.0.1)

HaruPage::ellipse — Append an ellipse to the current path

Описание

bool HaruPage::ellipse ( float $x , float $y , float $xray , float $yray )

Appends an ellipse to the current path.

Список параметров

x

Horizontal coordinate of the center.

y

Vertical coordinate of the center.

xray

The ray of the ellipse in the x direction.

yray

The ray of the ellipse in the y direction.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


End current path object without filling and painting operations

  • « HaruPage::ellipse
  • HaruPage::endText »
  • PHP Manual
  • HaruPage
  • End current path object without filling and painting operations

HaruPage::endPath

(PECL haru >= 0.0.1)

HaruPage::endPath — End current path object without filling and painting operations

Описание

bool HaruPage::endPath ( void )

Ends current path object without performing filling and painting operations.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


End current text object

  • « HaruPage::endPath
  • HaruPage::eofill »
  • PHP Manual
  • HaruPage
  • End current text object

HaruPage::endText

(PECL haru >= 0.0.1)

HaruPage::endText — End current text object

Описание

bool HaruPage::endText ( void )

Finalizes current text object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Fill current path using even-odd rule

  • « HaruPage::endText
  • HaruPage::eoFillStroke »
  • PHP Manual
  • HaruPage
  • Fill current path using even-odd rule

HaruPage::eofill

(PECL haru >= 0.0.1)

HaruPage::eofill — Fill current path using even-odd rule

Описание

bool HaruPage::eofill ( void )

Fills current path using even-odd rule.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Fill current path using even-odd rule, then paint the path

  • « HaruPage::eofill
  • HaruPage::fill »
  • PHP Manual
  • HaruPage
  • Fill current path using even-odd rule, then paint the path

HaruPage::eoFillStroke

(PECL haru >= 0.0.1)

HaruPage::eoFillStroke — Fill current path using even-odd rule, then paint the path

Описание

bool HaruPage::eoFillStroke ([ bool $close_path = false ] )

Fills current path using even-odd rule, then paints the path.

Список параметров

close_path

Optional parameter. When set to TRUE, the function closes the current path. Default to FALSE.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Fill current path using nonzero winding number rule

  • « HaruPage::eoFillStroke
  • HaruPage::fillStroke »
  • PHP Manual
  • HaruPage
  • Fill current path using nonzero winding number rule

HaruPage::fill

(PECL haru >= 0.0.1)

HaruPage::fill — Fill current path using nonzero winding number rule

Описание

bool HaruPage::fill ( void )

Fills current path using nonzero winding number rule.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Fill current path using nonzero winding number rule, then paint the path

  • « HaruPage::fill
  • HaruPage::getCharSpace »
  • PHP Manual
  • HaruPage
  • Fill current path using nonzero winding number rule, then paint the path

HaruPage::fillStroke

(PECL haru >= 0.0.1)

HaruPage::fillStroke — Fill current path using nonzero winding number rule, then paint the path

Описание

bool HaruPage::fillStroke ([ bool $close_path = false ] )

Fills current path using nonzero winding number rule, then paints the path.

Список параметров

close_path

Optional parameter. When set to TRUE, the function closes the current path. Default to FALSE.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current value of character spacing

  • « HaruPage::fillStroke
  • HaruPage::getCMYKFill »
  • PHP Manual
  • HaruPage
  • Get the current value of character spacing

HaruPage::getCharSpace

(PECL haru >= 0.0.1)

HaruPage::getCharSpace — Get the current value of character spacing

Описание

float HaruPage::getCharSpace ( void )

Get the current value of character spacing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value of character spacing.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current filling color

  • « HaruPage::getCharSpace
  • HaruPage::getCMYKStroke »
  • PHP Manual
  • HaruPage
  • Get the current filling color

HaruPage::getCMYKFill

(PECL haru >= 0.0.1)

HaruPage::getCMYKFill — Get the current filling color

Описание

array HaruPage::getCMYKFill ( void )

Returns the current filling color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current filling color as an array with 4 elements ("c", "m", "y" and "k").

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current stroking color

  • « HaruPage::getCMYKFill
  • HaruPage::getCurrentFont »
  • PHP Manual
  • HaruPage
  • Get the current stroking color

HaruPage::getCMYKStroke

(PECL haru >= 0.0.1)

HaruPage::getCMYKStroke — Get the current stroking color

Описание

array HaruPage::getCMYKStroke ( void )

Get the current stroking color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current stroking color as an array with 4 elements ("c", "m", "y" and "k").

Ошибки

Вызывает исключение HaruException при ошибке.


Get the currently used font

  • « HaruPage::getCMYKStroke
  • HaruPage::getCurrentFontSize »
  • PHP Manual
  • HaruPage
  • Get the currently used font

HaruPage::getCurrentFont

(PECL haru >= 0.0.1)

HaruPage::getCurrentFont — Get the currently used font

Описание

object HaruPage::getCurrentFont ( void )

Get the currently used font.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the currently used font as an instance of HaruFont.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current font size

  • « HaruPage::getCurrentFont
  • HaruPage::getCurrentPos »
  • PHP Manual
  • HaruPage
  • Get the current font size

HaruPage::getCurrentFontSize

(PECL haru >= 0.0.1)

HaruPage::getCurrentFontSize — Get the current font size

Описание

float HaruPage::getCurrentFontSize ( void )

Get the current font size.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current font size.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current position for path painting

  • « HaruPage::getCurrentFontSize
  • HaruPage::getCurrentTextPos »
  • PHP Manual
  • HaruPage
  • Get the current position for path painting

HaruPage::getCurrentPos

(PECL haru >= 0.0.1)

HaruPage::getCurrentPos — Get the current position for path painting

Описание

array HaruPage::getCurrentPos ( void )

Get the current position for path painting.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current position for path painting as an array of with two elements - "x" and "y".

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current position for text printing

  • « HaruPage::getCurrentPos
  • HaruPage::getDash »
  • PHP Manual
  • HaruPage
  • Get the current position for text printing

HaruPage::getCurrentTextPos

(PECL haru >= 0.0.1)

HaruPage::getCurrentTextPos — Get the current position for text printing

Описание

array HaruPage::getCurrentTextPos ( void )

Get the current position for text printing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current position for text printing as an array with 2 elements - "x" and "y".

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current dash pattern

  • « HaruPage::getCurrentTextPos
  • HaruPage::getFillingColorSpace »
  • PHP Manual
  • HaruPage
  • Get the current dash pattern

HaruPage::getDash

(PECL haru >= 0.0.1)

HaruPage::getDash — Get the current dash pattern

Описание

array HaruPage::getDash ( void )

Get the current dash pattern. See HaruPage::setDash() for more information on dash patterns.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current dash pattern as an array of two elements - "pattern" and "phase" or FALSE if dash pattern was not set.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setDash() - Set the dash pattern for the page


Get the current filling color space

  • « HaruPage::getDash
  • HaruPage::getFlatness »
  • PHP Manual
  • HaruPage
  • Get the current filling color space

HaruPage::getFillingColorSpace

(PECL haru >= 0.0.1)

HaruPage::getFillingColorSpace — Get the current filling color space

Описание

int HaruPage::getFillingColorSpace ( void )

Get the current filling color space.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current filling color space. The result value is one of the following:

  • HaruDoc::CS_DEVICE_GRAY
  • HaruDoc::CS_DEVICE_RGB
  • HaruDoc::CS_DEVICE_CMYK
  • HaruDoc::CS_CAL_GRAY
  • HaruDoc::CS_CAL_RGB
  • HaruDoc::CS_LAB
  • HaruDoc::CS_ICC_BASED
  • HaruDoc::CS_SEPARATION
  • HaruDoc::CS_DEVICE_N
  • HaruDoc::CS_INDEXED
  • HaruDoc::CS_PATTERN

Ошибки

Вызывает исключение HaruException при ошибке.


Get the flatness of the page

  • « HaruPage::getFillingColorSpace
  • HaruPage::getGMode »
  • PHP Manual
  • HaruPage
  • Get the flatness of the page

HaruPage::getFlatness

(PECL haru >= 0.0.1)

HaruPage::getFlatness — Get the flatness of the page

Описание

float HaruPage::getFlatness ( void )

Get the flatness of the page.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the flatness of the page.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setFlatness() - Set flatness for the page


Get the current graphics mode

  • « HaruPage::getFlatness
  • HaruPage::getGrayFill »
  • PHP Manual
  • HaruPage
  • Get the current graphics mode

HaruPage::getGMode

(PECL haru >= 0.0.1)

HaruPage::getGMode — Get the current graphics mode

Описание

int HaruPage::getGMode ( void )

Get the current graphics mode.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current graphics mode. The result value is one of the following:

  • HaruPage::GMODE_PAGE_DESCRIPTION
  • HaruPage::GMODE_TEXT_OBJECT
  • HaruPage::GMODE_PATH_OBJECT
  • HaruPage::GMODE_CLIPPING_PATH
  • HaruPage::GMODE_SHADING
  • HaruPage::GMODE_INLINE_IMAGE
  • HaruPage::GMODE_EXTERNAL_OBJECT

Ошибки

Вызывает исключение HaruException при ошибке.


Get the current filling color

  • « HaruPage::getGMode
  • HaruPage::getGrayStroke »
  • PHP Manual
  • HaruPage
  • Get the current filling color

HaruPage::getGrayFill

(PECL haru >= 0.0.1)

HaruPage::getGrayFill — Get the current filling color

Описание

float HaruPage::getGrayFill ( void )

Get the current filling color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current filling color.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setGrayFill() - Set filling color for the page


Get the current stroking color

  • « HaruPage::getGrayFill
  • HaruPage::getHeight »
  • PHP Manual
  • HaruPage
  • Get the current stroking color

HaruPage::getGrayStroke

(PECL haru >= 0.0.1)

HaruPage::getGrayStroke — Get the current stroking color

Описание

float HaruPage::getGrayStroke ( void )

Get the current stroking color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current stroking color.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setGrayStroke() - Sets stroking color for the page


Get the height of the page

  • « HaruPage::getGrayStroke
  • HaruPage::getHorizontalScaling »
  • PHP Manual
  • HaruPage
  • Get the height of the page

HaruPage::getHeight

(PECL haru >= 0.0.1)

HaruPage::getHeight — Get the height of the page

Описание

float HaruPage::getHeight ( void )

Get the height of the page.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the height of the page.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setHeight() - Set height of the page


Get the current value of horizontal scaling

  • « HaruPage::getHeight
  • HaruPage::getLineCap »
  • PHP Manual
  • HaruPage
  • Get the current value of horizontal scaling

HaruPage::getHorizontalScaling

(PECL haru >= 0.0.1)

HaruPage::getHorizontalScaling — Get the current value of horizontal scaling

Описание

float HaruPage::getHorizontalScaling ( void )

Get the current value of the horizontal scaling.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value of horizontal scaling.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setHorizontalScaling() - Set horizontal scaling for the page


Get the current line cap style

  • « HaruPage::getHorizontalScaling
  • HaruPage::getLineJoin »
  • PHP Manual
  • HaruPage
  • Get the current line cap style

HaruPage::getLineCap

(PECL haru >= 0.0.1)

HaruPage::getLineCap — Get the current line cap style

Описание

int HaruPage::getLineCap ( void )

Get the current line cap style.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current line cap style. The result value is one of the following:

  • HaruPage::BUTT_END - the line is squared off at the endpoint of the path.
  • HaruPage::ROUND_END - the end of the line becomes a semicircle with center in the end point of the path.
  • HaruPage::PROJECTING_SCUARE_END - the line continues to the point that exceeds half of the stroke width the end point.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setLineCap() - Set the shape to be used at the ends of lines


Get the current line join style

  • « HaruPage::getLineCap
  • HaruPage::getLineWidth »
  • PHP Manual
  • HaruPage
  • Get the current line join style

HaruPage::getLineJoin

(PECL haru >= 0.0.1)

HaruPage::getLineJoin — Get the current line join style

Описание

int HaruPage::getLineJoin ( void )

Get the current line join style.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current line join style. The result value is one of the following:

  • HaruPage::MITER_JOIN
  • HaruPage::ROUND_JOIN
  • HaruPage::BEVEL_JOIN

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setLineJoin() - Set line join style for the page


Get the current line width

  • « HaruPage::getLineJoin
  • HaruPage::getMiterLimit »
  • PHP Manual
  • HaruPage
  • Get the current line width

HaruPage::getLineWidth

(PECL haru >= 0.0.1)

HaruPage::getLineWidth — Get the current line width

Описание

float HaruPage::getLineWidth ( void )

Get the current line width.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current line width.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setLineWidth() - Set line width for the page


Get the value of miter limit

  • « HaruPage::getLineWidth
  • HaruPage::getRGBFill »
  • PHP Manual
  • HaruPage
  • Get the value of miter limit

HaruPage::getMiterLimit

(PECL haru >= 0.0.1)

HaruPage::getMiterLimit — Get the value of miter limit

Описание

float HaruPage::getMiterLimit ( void )

Get the value of the miter limit.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the value of the miter limit.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setMiterLimit() - Set the current value of the miter limit of the page


Get the current filling color

  • « HaruPage::getMiterLimit
  • HaruPage::getRGBStroke »
  • PHP Manual
  • HaruPage
  • Get the current filling color

HaruPage::getRGBFill

(PECL haru >= 0.0.1)

HaruPage::getRGBFill — Get the current filling color

Описание

array HaruPage::getRGBFill ( void )

Get the current filling color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current filling color as an array with 3 elements: "r", "g" and "b".

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setRGBFill() - Set filling color for the page


Get the current stroking color

  • « HaruPage::getRGBFill
  • HaruPage::getStrokingColorSpace »
  • PHP Manual
  • HaruPage
  • Get the current stroking color

HaruPage::getRGBStroke

(PECL haru >= 0.0.1)

HaruPage::getRGBStroke — Get the current stroking color

Описание

array HaruPage::getRGBStroke ( void )

Get the current stroking color.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current stroking color.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setRGBStroke() - Set stroking color for the page


Get the current stroking color space

  • « HaruPage::getRGBStroke
  • HaruPage::getTextLeading »
  • PHP Manual
  • HaruPage
  • Get the current stroking color space

HaruPage::getStrokingColorSpace

(PECL haru >= 0.0.1)

HaruPage::getStrokingColorSpace — Get the current stroking color space

Описание

int HaruPage::getStrokingColorSpace ( void )

Get the current stroking color space.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current stroking color space. The list of return values is the same as for HaruPage::getFillingColorSpace()

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getFillingColorSpace() - Get the current filling color space


Get the current value of line spacing

  • « HaruPage::getStrokingColorSpace
  • HaruPage::getTextMatrix »
  • PHP Manual
  • HaruPage
  • Get the current value of line spacing

HaruPage::getTextLeading

(PECL haru >= 0.0.1)

HaruPage::getTextLeading — Get the current value of line spacing

Описание

float HaruPage::getTextLeading ( void )

Get the current value of line spacing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value of line spacing.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setTextLeading() - Set text leading (line spacing) for the page


Get the current text transformation matrix of the page

  • « HaruPage::getTextLeading
  • HaruPage::getTextRenderingMode »
  • PHP Manual
  • HaruPage
  • Get the current text transformation matrix of the page

HaruPage::getTextMatrix

(PECL haru >= 0.0.1)

HaruPage::getTextMatrix — Get the current text transformation matrix of the page

Описание

array HaruPage::getTextMatrix ( void )

Get the current text transformation matrix of the page.

Возвращаемые значения

Returns the current text transformation matrix of the page as an array of 6 elements: "a", "b", "c", "d", "x" and "y".

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setTextMatrix() - Set the current text transformation matrix of the page


Get the current text rendering mode

  • « HaruPage::getTextMatrix
  • HaruPage::getTextRise »
  • PHP Manual
  • HaruPage
  • Get the current text rendering mode

HaruPage::getTextRenderingMode

(PECL haru >= 0.0.1)

HaruPage::getTextRenderingMode — Get the current text rendering mode

Описание

int HaruPage::getTextRenderingMode ( void )

Get the current text rendering mode.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current text rendering mode. The result value is one of the following:

  • HaruPage::FILL
  • HaruPage::STROKE
  • HaruPage::FILL_THEN_STROKE
  • HaruPage::INVISIBLE
  • HaruPage::FILL_CLIPPING
  • HaruPage::STROKE_CLIPPING
  • HaruPage::FILL_STROKE_CLIPPING
  • HaruPage::CLIPPING

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setTextRenderingMode() - Set text rendering mode for the page


Get the current value of text rising

  • « HaruPage::getTextRenderingMode
  • HaruPage::getTextWidth »
  • PHP Manual
  • HaruPage
  • Get the current value of text rising

HaruPage::getTextRise

(PECL haru >= 0.0.1)

HaruPage::getTextRise — Get the current value of text rising

Описание

float HaruPage::getTextRise ( void )

Get the current value of text rising.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value of text rising.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setTextRise() - Set the current value of text rising


Get the width of the text using current fontsize, character spacing and word spacing

  • « HaruPage::getTextRise
  • HaruPage::getTransMatrix »
  • PHP Manual
  • HaruPage
  • Get the width of the text using current fontsize, character spacing and word spacing

HaruPage::getTextWidth

(PECL haru >= 0.0.1)

HaruPage::getTextWidth — Get the width of the text using current fontsize, character spacing and word spacing

Описание

float HaruPage::getTextWidth ( string $text )

Get the width of the text using current fontsize, character spacing and word spacing

Список параметров

text

The text to measure.

Возвращаемые значения

Returns the width of the text using current fontsize, character spacing and word spacing.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::measureText() - Calculate the byte length of characters which can be included on one line of the specified width


Get the current transformation matrix of the page

  • « HaruPage::getTextWidth
  • HaruPage::getWidth »
  • PHP Manual
  • HaruPage
  • Get the current transformation matrix of the page

HaruPage::getTransMatrix

(PECL haru >= 0.0.1)

HaruPage::getTransMatrix — Get the current transformation matrix of the page

Описание

array HaruPage::getTransMatrix ( void )

Get the current transformation matrix of the page.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current transformation matrix of the page as an array of 6 elements: "a", "b", "c", "d", "x" and "y".

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::concat() - Concatenate current transformation matrix of the page and the specified matrix


Get the width of the page

  • « HaruPage::getTransMatrix
  • HaruPage::getWordSpace »
  • PHP Manual
  • HaruPage
  • Get the width of the page

HaruPage::getWidth

(PECL haru >= 0.0.1)

HaruPage::getWidth — Get the width of the page

Описание

float HaruPage::getWidth ( void )

Get the width of the page.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the width of the page.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setWidth() - Set width of the page


Get the current value of word spacing

  • « HaruPage::getWidth
  • HaruPage::lineTo »
  • PHP Manual
  • HaruPage
  • Get the current value of word spacing

HaruPage::getWordSpace

(PECL haru >= 0.0.1)

HaruPage::getWordSpace — Get the current value of word spacing

Описание

float HaruPage::getWordSpace ( void )

Get the current value of word spacing.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current value of word spacing.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setWordSpace() - Set word spacing for the page


Draw a line from the current point to the specified point

  • « HaruPage::getWordSpace
  • HaruPage::measureText »
  • PHP Manual
  • HaruPage
  • Draw a line from the current point to the specified point

HaruPage::lineTo

(PECL haru >= 0.0.1)

HaruPage::lineTo — Draw a line from the current point to the specified point

Описание

bool HaruPage::lineTo ( float $x , float $y )

Draws a line from the current point to the specified point.

Список параметров

x

y

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::curveTo() - Append a Bezier curve to the current path
  • HaruPage::curveTo2() - Append a Bezier curve to the current path
  • HaruPage::curveTo3() - Append a Bezier curve to the current path


Calculate the byte length of characters which can be included on one line of the specified width

  • « HaruPage::lineTo
  • HaruPage::moveTextPos »
  • PHP Manual
  • HaruPage
  • Calculate the byte length of characters which can be included on one line of the specified width

HaruPage::measureText

(PECL haru >= 0.0.1)

HaruPage::measureText — Calculate the byte length of characters which can be included on one line of the specified width

Описание

int HaruPage::measureText ( string $text , float $width [, bool $wordwrap = false ] )

Get the byte length of characters which can be included on one line of the specified width.

Список параметров

text

The text to measure.

width

The width of the line.

wordwrap

When this parameter is set to TRUE the function "emulates" word wrapping by stopping after the last full word (delimited by whitespace) that can fit on the line.

Возвращаемые значения

Returns the byte length of characters which can be included within the specified width. For single-byte encodings, this is equal to the number of characters. For multi-byte encodings, this is not necessarily the case.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruFont::measureText() - Calculate the number of characters which can be included within the specified width


Move text position to the specified offset

  • « HaruPage::measureText
  • HaruPage::moveTo »
  • PHP Manual
  • HaruPage
  • Move text position to the specified offset

HaruPage::moveTextPos

(PECL haru >= 0.0.1)

HaruPage::moveTextPos — Move text position to the specified offset

Описание

bool HaruPage::moveTextPos ( float $x , float $y [, bool $set_leading = false ] )

Moves text position to the specified offset. If the start position of the current line is (x1, y1), the start of the next line is (x1 + x, y1 + y).

Список параметров

x

The specified text position offset.

y

The specified text position offset.

set_leading

If set to TRUE, the function sets the text leading to -y.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::moveToNextLine() - Move text position to the start of the next line


Set starting point for new drawing path

  • « HaruPage::moveTextPos
  • HaruPage::moveToNextLine »
  • PHP Manual
  • HaruPage
  • Set starting point for new drawing path

HaruPage::moveTo

(PECL haru >= 0.0.1)

HaruPage::moveTo — Set starting point for new drawing path

Описание

bool HaruPage::moveTo ( float $x , float $y )

Defines starting point for new drawing path.

Список параметров

x

A new starting point coordinate.

y

A new starting point coordinate.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Move text position to the start of the next line

  • « HaruPage::moveTo
  • HaruPage::rectangle »
  • PHP Manual
  • HaruPage
  • Move text position to the start of the next line

HaruPage::moveToNextLine

(PECL haru >= 0.0.1)

HaruPage::moveToNextLine — Move text position to the start of the next line

Описание

bool HaruPage::moveToNextLine ( void )

Moves text position to the start of the next line.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::moveTextPos() - Move text position to the specified offset


Append a rectangle to the current path

  • « HaruPage::moveToNextLine
  • HaruPage::setCharSpace »
  • PHP Manual
  • HaruPage
  • Append a rectangle to the current path

HaruPage::rectangle

(PECL haru >= 0.0.1)

HaruPage::rectangle — Append a rectangle to the current path

Описание

bool HaruPage::rectangle ( float $x , float $y , float $width , float $height )

Appends a rectangle to the current drawing path.

Список параметров

x

The left border of the rectangle.

y

The lower border of the rectangle.

width

The width of the rectangle.

height

The height of the rectangle.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set character spacing for the page

  • « HaruPage::rectangle
  • HaruPage::setCMYKFill »
  • PHP Manual
  • HaruPage
  • Set character spacing for the page

HaruPage::setCharSpace

(PECL haru >= 0.0.1)

HaruPage::setCharSpace — Set character spacing for the page

Описание

bool HaruPage::setCharSpace ( float $char_space )

Defines character spacing for the page.

Список параметров

char_space

The new character spacing for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getCharSpace() - Get the current value of character spacing


Set filling color for the page

  • « HaruPage::setCharSpace
  • HaruPage::setCMYKStroke »
  • PHP Manual
  • HaruPage
  • Set filling color for the page

HaruPage::setCMYKFill

(PECL haru >= 0.0.1)

HaruPage::setCMYKFill — Set filling color for the page

Описание

bool HaruPage::setCMYKFill ( float $c , float $m , float $y , float $k )

Defines filling color for the page.

Список параметров

c

m

y

k

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getCMYKFill() - Get the current filling color


Set stroking color for the page

  • « HaruPage::setCMYKFill
  • HaruPage::setDash »
  • PHP Manual
  • HaruPage
  • Set stroking color for the page

HaruPage::setCMYKStroke

(PECL haru >= 0.0.1)

HaruPage::setCMYKStroke — Set stroking color for the page

Описание

bool HaruPage::setCMYKStroke ( float $c , float $m , float $y , float $k )

Defines stroking color for the page.

Список параметров

c

m

y

k

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getCMYKStroke() - Get the current stroking color


Set the dash pattern for the page

  • « HaruPage::setCMYKStroke
  • HaruPage::setFlatness »
  • PHP Manual
  • HaruPage
  • Set the dash pattern for the page

HaruPage::setDash

(PECL haru >= 0.0.1)

HaruPage::setDash — Set the dash pattern for the page

Описание

bool HaruPage::setDash ( array $pattern , int $phase )

Defines the dash pattern for the page.

Список параметров

pattern

An array (8 elements max) which contains a pattern of dashes and gaps used for lines on the page.

phase

The phase on which the pattern begins.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getDash() - Get the current dash pattern


Set flatness for the page

  • « HaruPage::setDash
  • HaruPage::setFontAndSize »
  • PHP Manual
  • HaruPage
  • Set flatness for the page

HaruPage::setFlatness

(PECL haru >= 0.0.1)

HaruPage::setFlatness — Set flatness for the page

Описание

bool HaruPage::setFlatness ( float $flatness )

Defines flatness for the page.

Список параметров

flatness

The defined flatness for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getFlatness() - Get the flatness of the page


Set font and fontsize for the page

  • « HaruPage::setFlatness
  • HaruPage::setGrayFill »
  • PHP Manual
  • HaruPage
  • Set font and fontsize for the page

HaruPage::setFontAndSize

(PECL haru >= 0.0.1)

HaruPage::setFontAndSize — Set font and fontsize for the page

Описание

bool HaruPage::setFontAndSize ( object $font , float $size )

Defines current font and its size for the page.

Список параметров

font

A valid HaruFont instance.

size

The size of the font.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruDoc::getFont() - Get HaruFont instance


Set filling color for the page

  • « HaruPage::setFontAndSize
  • HaruPage::setGrayStroke »
  • PHP Manual
  • HaruPage
  • Set filling color for the page

HaruPage::setGrayFill

(PECL haru >= 0.0.1)

HaruPage::setGrayFill — Set filling color for the page

Описание

bool HaruPage::setGrayFill ( float $value )

Defines filling color for the page.

Список параметров

value

The value of gray level between 0 and 1.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getGrayFill() - Get the current filling color


Sets stroking color for the page

  • « HaruPage::setGrayFill
  • HaruPage::setHeight »
  • PHP Manual
  • HaruPage
  • Sets stroking color for the page

HaruPage::setGrayStroke

(PECL haru >= 0.0.1)

HaruPage::setGrayStroke — Sets stroking color for the page

Описание

bool HaruPage::setGrayStroke ( float $value )

Defines stroking color for the page.

Список параметров

value

The value of gray level between 0 and 1.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getGrayStroke() - Get the current stroking color


Set height of the page

  • « HaruPage::setGrayStroke
  • HaruPage::setHorizontalScaling »
  • PHP Manual
  • HaruPage
  • Set height of the page

HaruPage::setHeight

(PECL haru >= 0.0.1)

HaruPage::setHeight — Set height of the page

Описание

bool HaruPage::setHeight ( float $height )

Defines height of the page.

Список параметров

height

The defined height for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getHeight() - Get the height of the page


Set horizontal scaling for the page

  • « HaruPage::setHeight
  • HaruPage::setLineCap »
  • PHP Manual
  • HaruPage
  • Set horizontal scaling for the page

HaruPage::setHorizontalScaling

(PECL haru >= 0.0.1)

HaruPage::setHorizontalScaling — Set horizontal scaling for the page

Описание

bool HaruPage::setHorizontalScaling ( float $scaling )

Set the horizontal scaling for the page.

Список параметров

scaling

The horizontal scaling for text showing on the page. The initial value is 100.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getHorizontalScaling() - Get the current value of horizontal scaling


Set the shape to be used at the ends of lines

  • « HaruPage::setHorizontalScaling
  • HaruPage::setLineJoin »
  • PHP Manual
  • HaruPage
  • Set the shape to be used at the ends of lines

HaruPage::setLineCap

(PECL haru >= 0.0.1)

HaruPage::setLineCap — Set the shape to be used at the ends of lines

Описание

bool HaruPage::setLineCap ( int $cap )

Defines the shape to be used at the ends of lines.

Список параметров

cap

Must be one of the following values:

  • HaruPage::BUTT_END - the line is squared off at the endpoint of the path.
  • HaruPage::ROUND_END - the end of the line becomes a semicircle with center in the end point of the path.
  • HaruPage::PROJECTING_SCUARE_END - the line continues to the point that exceeds half of the stroke width the end point.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getLineCap() - Get the current line cap style


Set line join style for the page

  • « HaruPage::setLineCap
  • HaruPage::setLineWidth »
  • PHP Manual
  • HaruPage
  • Set line join style for the page

HaruPage::setLineJoin

(PECL haru >= 0.0.1)

HaruPage::setLineJoin — Set line join style for the page

Описание

bool HaruPage::setLineJoin ( int $join )

Defines line join style for the page.

Список параметров

join

Must be one of the following values:

  • HaruPage::MITER_JOIN
  • HaruPage::ROUND_JOIN
  • HaruPage::BEVEL_JOIN

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getLineJoin() - Get the current line join style


Set line width for the page

  • « HaruPage::setLineJoin
  • HaruPage::setMiterLimit »
  • PHP Manual
  • HaruPage
  • Set line width for the page

HaruPage::setLineWidth

(PECL haru >= 0.0.1)

HaruPage::setLineWidth — Set line width for the page

Описание

bool HaruPage::setLineWidth ( float $width )

Defines line width for the page.

Список параметров

width

The defined line width for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getLineWidth() - Get the current line width


Set the current value of the miter limit of the page

  • « HaruPage::setLineWidth
  • HaruPage::setRGBFill »
  • PHP Manual
  • HaruPage
  • Set the current value of the miter limit of the page

HaruPage::setMiterLimit

(PECL haru >= 0.0.1)

HaruPage::setMiterLimit — Set the current value of the miter limit of the page

Описание

bool HaruPage::setMiterLimit ( float $limit )

Set the current value of the miter limit of the page.

Список параметров

limit

Defines the current value of the miter limit of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getMiterLimit() - Get the value of miter limit


Set filling color for the page

  • « HaruPage::setMiterLimit
  • HaruPage::setRGBStroke »
  • PHP Manual
  • HaruPage
  • Set filling color for the page

HaruPage::setRGBFill

(PECL haru >= 0.0.1)

HaruPage::setRGBFill — Set filling color for the page

Описание

bool HaruPage::setRGBFill ( float $r , float $g , float $b )

Defines filling color for the page. All values must be between 0 and 1.

Список параметров

r

g

b

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getRGBFill() - Get the current filling color


Set stroking color for the page

  • « HaruPage::setRGBFill
  • HaruPage::setRotate »
  • PHP Manual
  • HaruPage
  • Set stroking color for the page

HaruPage::setRGBStroke

(PECL haru >= 0.0.1)

HaruPage::setRGBStroke — Set stroking color for the page

Описание

bool HaruPage::setRGBStroke ( float $r , float $g , float $b )

Defines stroking color for the page. All values must be between 0 and 1.

Список параметров

r

g

b

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getRGBStroke() - Get the current stroking color


Set rotation angle of the page

  • « HaruPage::setRGBStroke
  • HaruPage::setSize »
  • PHP Manual
  • HaruPage
  • Set rotation angle of the page

HaruPage::setRotate

(PECL haru >= 0.0.1)

HaruPage::setRotate — Set rotation angle of the page

Описание

bool HaruPage::setRotate ( int $angle )

Defines rotation angle of the page.

Список параметров

angle

Must be a multiple of 90 degrees.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set size and direction of the page

  • « HaruPage::setRotate
  • HaruPage::setSlideShow »
  • PHP Manual
  • HaruPage
  • Set size and direction of the page

HaruPage::setSize

(PECL haru >= 0.0.1)

HaruPage::setSize — Set size and direction of the page

Описание

bool HaruPage::setSize ( int $size , int $direction )

Changes size and direction of the page to a predefined format.

Список параметров

size

Must be one of the following values:

  • HaruPage::SIZE_LETTER
  • HaruPage::SIZE_LEGAL
  • HaruPage::SIZE_A3
  • HaruPage::SIZE_A4
  • HaruPage::SIZE_A5
  • HaruPage::SIZE_B4
  • HaruPage::SIZE_B5
  • HaruPage::SIZE_EXECUTIVE
  • HaruPage::SIZE_US4x6
  • HaruPage::SIZE_US4x8
  • HaruPage::SIZE_US5x7
  • HaruPage::SIZE_COMM10

direction

Must be one of the following values:

  • HaruPage::PORTRAIT
  • HaruPage::LANDSCAPE

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::setWidth() - Set width of the page
  • HaruPage::setHeight() - Set height of the page


Set transition style for the page

  • « HaruPage::setSize
  • HaruPage::setTextLeading »
  • PHP Manual
  • HaruPage
  • Set transition style for the page

HaruPage::setSlideShow

(PECL haru >= 0.0.1)

HaruPage::setSlideShow — Set transition style for the page

Описание

bool HaruPage::setSlideShow ( int $type , float $disp_time , float $trans_time )

Defines transition style for the page.

Список параметров

type

Must be one of the following values:

  • HaruPage::TS_WIPE_RIGHT
  • HaruPage::TS_WIPE_LEFT
  • HaruPage::TS_WIPE_UP
  • HaruPage::TS_WIPE_DOWN
  • HaruPage::TS_BARN_DOORS_HORIZONTAL_OUT
  • HaruPage::TS_BARN_DOORS_HORIZONTAL_IN
  • HaruPage::TS_BARN_DOORS_VERTICAL_OUT
  • HaruPage::TS_BARN_DOORS_VERTICAL_IN
  • HaruPage::TS_BOX_OUT
  • HaruPage::TS_BOX_IN
  • HaruPage::TS_BLINDS_HORIZONTAL
  • HaruPage::TS_BLINDS_VERTICAL
  • HaruPage::TS_DISSOLVE
  • HaruPage::TS_GLITTER_RIGHT
  • HaruPage::TS_GLITTER_DOWN
  • HaruPage::TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT
  • HaruPage::TS_REPLACE

disp_time

The display duration of the page in seconds.

trans_time

The duration of the transition effect in seconds.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set text leading (line spacing) for the page

  • « HaruPage::setSlideShow
  • HaruPage::setTextMatrix »
  • PHP Manual
  • HaruPage
  • Set text leading (line spacing) for the page

HaruPage::setTextLeading

(PECL haru >= 0.0.1)

HaruPage::setTextLeading — Set text leading (line spacing) for the page

Описание

bool HaruPage::setTextLeading ( float $text_leading )

Set the text leading (line spacing) for the page.

Список параметров

text_leading

Defines line spacing for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getTextLeading() - Get the current value of line spacing


Set the current text transformation matrix of the page

  • « HaruPage::setTextLeading
  • HaruPage::setTextRenderingMode »
  • PHP Manual
  • HaruPage
  • Set the current text transformation matrix of the page

HaruPage::setTextMatrix

(PECL haru >= 0.0.1)

HaruPage::setTextMatrix — Set the current text transformation matrix of the page

Описание

bool HaruPage::setTextMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )

Defines the text transformation matrix of the page.

Список параметров

a

Width multiplier.

b

Vertical skew in radians.

c

Horizontal skew in radians.

d

Height multiplier.

x

Horizontal position for text.

y

Vertical position for text.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getTextMatrix() - Get the current text transformation matrix of the page


Set text rendering mode for the page

  • « HaruPage::setTextMatrix
  • HaruPage::setTextRise »
  • PHP Manual
  • HaruPage
  • Set text rendering mode for the page

HaruPage::setTextRenderingMode

(PECL haru >= 0.0.1)

HaruPage::setTextRenderingMode — Set text rendering mode for the page

Описание

bool HaruPage::setTextRenderingMode ( int $mode )

Defines text rendering mode for the page.

Список параметров

mode

Must be one of the following values:

  • HaruPage::FILL
  • HaruPage::STROKE
  • HaruPage::FILL_THEN_STROKE
  • HaruPage::INVISIBLE
  • HaruPage::FILL_CLIPPING
  • HaruPage::STROKE_CLIPPING
  • HaruPage::FILL_STROKE_CLIPPING
  • HaruPage::CLIPPING

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getTextRenderingMode() - Get the current text rendering mode


Set the current value of text rising

  • « HaruPage::setTextRenderingMode
  • HaruPage::setWidth »
  • PHP Manual
  • HaruPage
  • Set the current value of text rising

HaruPage::setTextRise

(PECL haru >= 0.0.1)

HaruPage::setTextRise — Set the current value of text rising

Описание

bool HaruPage::setTextRise ( float $rise )

Set the current value of text rising.

Список параметров

rise

Defines the current value of text rising.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getTextRise() - Get the current value of text rising


Set width of the page

  • « HaruPage::setTextRise
  • HaruPage::setWordSpace »
  • PHP Manual
  • HaruPage
  • Set width of the page

HaruPage::setWidth

(PECL haru >= 0.0.1)

HaruPage::setWidth — Set width of the page

Описание

bool HaruPage::setWidth ( float $width )

Set the width of the page.

Список параметров

width

Defines width of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getWidth() - Get the width of the page


Set word spacing for the page

  • « HaruPage::setWidth
  • HaruPage::showText »
  • PHP Manual
  • HaruPage
  • Set word spacing for the page

HaruPage::setWordSpace

(PECL haru >= 0.0.1)

HaruPage::setWordSpace — Set word spacing for the page

Описание

bool HaruPage::setWordSpace ( float $word_space )

Set the word spacing for the page.

Список параметров

word_space

Defines word spacing for the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::getWordSpace() - Get the current value of word spacing


Print text at the current position of the page

  • « HaruPage::setWordSpace
  • HaruPage::showTextNextLine »
  • PHP Manual
  • HaruPage
  • Print text at the current position of the page

HaruPage::showText

(PECL haru >= 0.0.1)

HaruPage::showText — Print text at the current position of the page

Описание

bool HaruPage::showText ( string $text )

Prints out the text at the current position of the page.

Список параметров

text

The text to show.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::showTextNextLine() - Move the current position to the start of the next line and print the text
  • HaruPage::textOut() - Print the text on the specified position


Move the current position to the start of the next line and print the text

  • « HaruPage::showText
  • HaruPage::stroke »
  • PHP Manual
  • HaruPage
  • Move the current position to the start of the next line and print the text

HaruPage::showTextNextLine

(PECL haru >= 0.0.1)

HaruPage::showTextNextLine — Move the current position to the start of the next line and print the text

Описание

bool HaruPage::showTextNextLine ( string $text [, float $word_space = 0 [, float $char_space = 0 ]] )

Moves the current position to the start of the next line and print out the text.

Список параметров

text

The text to show.

word_space

The word spacing.

char_space

The character spacing.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::showText() - Print text at the current position of the page
  • HaruPage::textOut() - Print the text on the specified position


Paint current path

  • « HaruPage::showTextNextLine
  • HaruPage::textOut »
  • PHP Manual
  • HaruPage
  • Paint current path

HaruPage::stroke

(PECL haru >= 0.0.1)

HaruPage::stroke — Paint current path

Описание

bool HaruPage::stroke ([ bool $close_path = false ] )

Paints the current path.

Список параметров

close_path

Closes the current path if set to TRUE.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Print the text on the specified position

  • « HaruPage::stroke
  • HaruPage::textRect »
  • PHP Manual
  • HaruPage
  • Print the text on the specified position

HaruPage::textOut

(PECL haru >= 0.0.1)

HaruPage::textOut — Print the text on the specified position

Описание

bool HaruPage::textOut ( float $x , float $y , string $text )

Prints the text on the specified position.

Список параметров

x

y

text

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::showTextNextLine() - Move the current position to the start of the next line and print the text
  • HaruPage::showText() - Print text at the current position of the page


Print the text inside the specified region

  • « HaruPage::textOut
  • HaruFont »
  • PHP Manual
  • HaruPage
  • Print the text inside the specified region

HaruPage::textRect

(PECL haru >= 0.0.1)

HaruPage::textRect — Print the text inside the specified region

Описание

bool HaruPage::textRect ( float $left , float $top , float $right , float $bottom , string $text [, int $align = HaruPage::TALIGN_LEFT ] )

Prints the text inside the specified region.

Список параметров

left

Left border of the text area.

top

Top border of the text area.

right

Right border of the text area.

bottom

Lower border of the text area.

text

The text to print.

align

Text alignment. Must be one of the following values:

  • HaruPage::TALIGN_LEFT
  • HaruPage::TALIGN_RIGHT
  • HaruPage::TALIGN_CENTER
  • HaruPage::TALIGN_JUSTIFY

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.

Смотрите также

  • HaruPage::showTextNextLine() - Move the current position to the start of the next line and print the text
  • HaruPage::showText() - Print text at the current position of the page
  • HaruPage::textOut() - Print the text on the specified position


Класс HaruFont

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Font.

Обзор классов

HaruFont {
/* Методы */
int getAscent ( void )
int getCapHeight ( void )
int getDescent ( void )
string getEncodingName ( void )
string getFontName ( void )
array getTextWidth ( string $text )
int getUnicodeWidth ( int $character )
int getXHeight ( void )
int measureText ( string $text , float $width , float $font_size , float $char_space , float $word_space [, bool $word_wrap = false ] )
}

Содержание

  • HaruFont::getAscent — Get the vertical ascent of the font
  • HaruFont::getCapHeight — Get the distance from the baseline of uppercase letters
  • HaruFont::getDescent — Get the vertical descent of the font
  • HaruFont::getEncodingName — Get the name of the encoding
  • HaruFont::getFontName — Get the name of the font
  • HaruFont::getTextWidth — Get the total width of the text, number of characters, number of words and number of spaces
  • HaruFont::getUnicodeWidth — Get the width of the character in the font
  • HaruFont::getXHeight — Get the distance from the baseline of lowercase letters
  • HaruFont::measureText — Calculate the number of characters which can be included within the specified width


Get the vertical ascent of the font

  • « HaruFont
  • HaruFont::getCapHeight »
  • PHP Manual
  • HaruFont
  • Get the vertical ascent of the font

HaruFont::getAscent

(PECL haru >= 0.0.1)

HaruFont::getAscent — Get the vertical ascent of the font

Описание

int HaruFont::getAscent ( void )

Get the vertical ascent of the font.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the vertical ascent of the font.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the distance from the baseline of uppercase letters

  • « HaruFont::getAscent
  • HaruFont::getDescent »
  • PHP Manual
  • HaruFont
  • Get the distance from the baseline of uppercase letters

HaruFont::getCapHeight

(PECL haru >= 0.0.1)

HaruFont::getCapHeight — Get the distance from the baseline of uppercase letters

Описание

int HaruFont::getCapHeight ( void )

Get the distance from the baseline of uppercase letters.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the distance from the baseline of uppercase letters.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the vertical descent of the font

  • « HaruFont::getCapHeight
  • HaruFont::getEncodingName »
  • PHP Manual
  • HaruFont
  • Get the vertical descent of the font

HaruFont::getDescent

(PECL haru >= 0.0.1)

HaruFont::getDescent — Get the vertical descent of the font

Описание

int HaruFont::getDescent ( void )

Get the vertical descent of the font.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return the vertical descent of the font.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the name of the encoding

  • « HaruFont::getDescent
  • HaruFont::getFontName »
  • PHP Manual
  • HaruFont
  • Get the name of the encoding

HaruFont::getEncodingName

(PECL haru >= 0.0.1)

HaruFont::getEncodingName — Get the name of the encoding

Описание

string HaruFont::getEncodingName ( void )

Get the name of the font encoding.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the name of the font encoding.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the name of the font

  • « HaruFont::getEncodingName
  • HaruFont::getTextWidth »
  • PHP Manual
  • HaruFont
  • Get the name of the font

HaruFont::getFontName

(PECL haru >= 0.0.1)

HaruFont::getFontName — Get the name of the font

Описание

string HaruFont::getFontName ( void )

Get the name of the font.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the name of the font.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the total width of the text, number of characters, number of words and number of spaces

  • « HaruFont::getFontName
  • HaruFont::getUnicodeWidth »
  • PHP Manual
  • HaruFont
  • Get the total width of the text, number of characters, number of words and number of spaces

HaruFont::getTextWidth

(PECL haru >= 0.0.1)

HaruFont::getTextWidth — Get the total width of the text, number of characters, number of words and number of spaces

Описание

array HaruFont::getTextWidth ( string $text )

Get the total width of the text, number of characters, number of words and number of spaces.

Список параметров

text

The text to measure.

Возвращаемые значения

Returns the total width of the text, number of characters, number of words and number of spaces in the given text.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the width of the character in the font

  • « HaruFont::getTextWidth
  • HaruFont::getXHeight »
  • PHP Manual
  • HaruFont
  • Get the width of the character in the font

HaruFont::getUnicodeWidth

(PECL haru >= 0.0.1)

HaruFont::getUnicodeWidth — Get the width of the character in the font

Описание

int HaruFont::getUnicodeWidth ( int $character )

Get the width of the character in the font.

Список параметров

character

The code of the character.

Возвращаемые значения

Returns the width of the character in the font.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the distance from the baseline of lowercase letters

  • « HaruFont::getUnicodeWidth
  • HaruFont::measureText »
  • PHP Manual
  • HaruFont
  • Get the distance from the baseline of lowercase letters

HaruFont::getXHeight

(PECL haru >= 0.0.1)

HaruFont::getXHeight — Get the distance from the baseline of lowercase letters

Описание

int HaruFont::getXHeight ( void )

Gets the distance from the baseline of lowercase letters.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the distance from the baseline of lowercase letters.

Ошибки

Вызывает исключение HaruException при ошибке.


Calculate the number of characters which can be included within the specified width

  • « HaruFont::getXHeight
  • HaruImage »
  • PHP Manual
  • HaruFont
  • Calculate the number of characters which can be included within the specified width

HaruFont::measureText

(PECL haru >= 0.0.1)

HaruFont::measureText — Calculate the number of characters which can be included within the specified width

Описание

int HaruFont::measureText ( string $text , float $width , float $font_size , float $char_space , float $word_space [, bool $word_wrap = false ] )

Calculate the number of characters which can be included within the specified width.

Список параметров

text

The text to fit the width.

width

The width of the area to put the text to.

font_size

The size of the font.

char_space

The character spacing.

word_space

The word spacing.

word_wrap

When this parameter is set to TRUE the function "emulates" word wrapping and doesn't include the part of the current word if reached the end of the area.

Возвращаемые значения

Returns the number of characters which can be included within the specified width.

Ошибки

Вызывает исключение HaruException при ошибке.


Класс HaruImage

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Image.

Обзор классов

HaruImage {
/* Методы */
int getBitsPerComponent ( void )
string getColorSpace ( void )
int getHeight ( void )
array getSize ( void )
int getWidth ( void )
bool setColorMask ( int $rmin , int $rmax , int $gmin , int $gmax , int $bmin , int $bmax )
bool setMaskImage ( object $mask_image )
}

Содержание

  • HaruImage::getBitsPerComponent — Get the number of bits used to describe each color component of the image
  • HaruImage::getColorSpace — Get the name of the color space
  • HaruImage::getHeight — Get the height of the image
  • HaruImage::getSize — Get size of the image
  • HaruImage::getWidth — Get the width of the image
  • HaruImage::setColorMask — Set the color mask of the image
  • HaruImage::setMaskImage — Set the image mask


Get the number of bits used to describe each color component of the image

  • « HaruImage
  • HaruImage::getColorSpace »
  • PHP Manual
  • HaruImage
  • Get the number of bits used to describe each color component of the image

HaruImage::getBitsPerComponent

(PECL haru >= 0.0.1)

HaruImage::getBitsPerComponent — Get the number of bits used to describe each color component of the image

Описание

int HaruImage::getBitsPerComponent ( void )

Gets the number of bits used to describe each color component of the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of bits used to describe each color component of the image.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the name of the color space

  • « HaruImage::getBitsPerComponent
  • HaruImage::getHeight »
  • PHP Manual
  • HaruImage
  • Get the name of the color space

HaruImage::getColorSpace

(PECL haru >= 0.0.1)

HaruImage::getColorSpace — Get the name of the color space

Описание

string HaruImage::getColorSpace ( void )

Get the name of the color space.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the name of the color space of the image. The name is one of the following values:

  • "DeviceGray"
  • "DeviceRGB"
  • "DeviceCMYK"
  • "Indexed"

Ошибки

Вызывает исключение HaruException при ошибке.


Get the height of the image

  • « HaruImage::getColorSpace
  • HaruImage::getSize »
  • PHP Manual
  • HaruImage
  • Get the height of the image

HaruImage::getHeight

(PECL haru >= 0.0.1)

HaruImage::getHeight — Get the height of the image

Описание

int HaruImage::getHeight ( void )

Get the height of the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the height of the image.

Ошибки

Вызывает исключение HaruException при ошибке.


Get size of the image

  • « HaruImage::getHeight
  • HaruImage::getWidth »
  • PHP Manual
  • HaruImage
  • Get size of the image

HaruImage::getSize

(PECL haru >= 0.0.1)

HaruImage::getSize — Get size of the image

Описание

array HaruImage::getSize ( void )

Get the size of the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array with two elements: width and height, which contain appropriate dimensions of the image.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the width of the image

  • « HaruImage::getSize
  • HaruImage::setColorMask »
  • PHP Manual
  • HaruImage
  • Get the width of the image

HaruImage::getWidth

(PECL haru >= 0.0.1)

HaruImage::getWidth — Get the width of the image

Описание

int HaruImage::getWidth ( void )

Get the width of the image.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the width of the image.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the color mask of the image

  • « HaruImage::getWidth
  • HaruImage::setMaskImage »
  • PHP Manual
  • HaruImage
  • Set the color mask of the image

HaruImage::setColorMask

(PECL haru >= 0.0.1)

HaruImage::setColorMask — Set the color mask of the image

Описание

bool HaruImage::setColorMask ( int $rmin , int $rmax , int $gmin , int $gmax , int $bmin , int $bmax )

Defines the transparent color of the image using the RGB range values. The color within the range is displayed as a transparent color. The color space of the image must be RGB.

Список параметров

rmin

The lower limit of red. Must be between 0 and 255.

rmax

The upper limit of red. Must be between 0 and 255.

gmin

The lower limit of green. Must be between 0 and 255.

gmax

The upper limit of green. Must be between 0 and 255.

bmin

The lower limit of blue. Must be between 0 and 255.

bmax

The upper limit of blue. Must be between 0 and 255.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the image mask

  • « HaruImage::setColorMask
  • HaruEncoder »
  • PHP Manual
  • HaruImage
  • Set the image mask

HaruImage::setMaskImage

(PECL haru >= 0.0.1)

HaruImage::setMaskImage — Set the image mask

Описание

bool HaruImage::setMaskImage ( object $mask_image )

Sets the image used as image-mask. It must be 1bit gray-scale color image.

Список параметров

mask_image

A valid HaruImage instance.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Класс HaruEncoder

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Encoder.

Обзор классов

HaruEncoder {
/* Методы */
int getByteType ( string $text , int $index )
int getType ( void )
int getUnicode ( int $character )
int getWritingMode ( void )
}

Предопределенные константы

Тип | Имя | Описание
int | HaruEncoder::TYPE_SINGLE_BYTE |
int | HaruEncoder::TYPE_DOUBLE_BYTE |
int | HaruEncoder::TYPE_UNINITIALIZED |
int | HaruEncoder::UNKNOWN |
int | HaruEncoder::WMODE_HORIZONTAL |
int | HaruEncoder::WMODE_VERTICAL |
int | HaruEncoder::BYTE_TYPE_SINGLE |
int | HaruEncoder::BYTE_TYPE_LEAD |
int | HaruEncoder::BYTE_TYPE_TRAIL |
int | HaruEncoder::BYTE_TYPE_UNKNOWN |

Содержание

  • HaruEncoder::getByteType — Get the type of the byte in the text
  • HaruEncoder::getType — Get the type of the encoder
  • HaruEncoder::getUnicode — Convert the specified character to unicode
  • HaruEncoder::getWritingMode — Get the writing mode of the encoder


Get the type of the byte in the text

  • « HaruEncoder
  • HaruEncoder::getType »
  • PHP Manual
  • HaruEncoder
  • Get the type of the byte in the text

HaruEncoder::getByteType

(PECL haru >= 0.0.1)

HaruEncoder::getByteType — Get the type of the byte in the text

Описание

int HaruEncoder::getByteType ( string $text , int $index )

Get the type of the byte in the text.

Список параметров

text

The text.

index

The position in the text.

Возвращаемые значения

Returns the type of the byte in the text on the specified position. The result is one of the following values:

  • HaruEncoder::BYTE_TYPE_SINGLE - single byte character.
  • HaruEncoder::BYTE_TYPE_LEAD - lead byte of a double-byte character.
  • HaruEncoder::BYTE_TYPE_TRAIL - trailing byte of a double-byte character.
  • HaruEncoder::BYTE_TYPE_UNKNOWN - invalid encoder or cannot detect the byte type.

Ошибки

Вызывает исключение HaruException при ошибке.


Get the type of the encoder

  • « HaruEncoder::getByteType
  • HaruEncoder::getUnicode »
  • PHP Manual
  • HaruEncoder
  • Get the type of the encoder

HaruEncoder::getType

(PECL haru >= 0.0.1)

HaruEncoder::getType — Get the type of the encoder

Описание

int HaruEncoder::getType ( void )

Get the type of the encoder.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the type of the encoder. The result is one of the following values:

  • HaruEncoder::TYPE_SINGLE_BYTE - the encoder is for single byte characters.
  • HaruEncoder::TYPE_DOUBLE_BYTE - the encoder is for multibyte characters.
  • HaruEncoder::TYPE_UNINITIALIZED - the encoder is not initialized.
  • HaruEncoder::UNKNOWN - the encoder is invalid.

Ошибки

Вызывает исключение HaruException при ошибке.


Convert the specified character to unicode

  • « HaruEncoder::getType
  • HaruEncoder::getWritingMode »
  • PHP Manual
  • HaruEncoder
  • Convert the specified character to unicode

HaruEncoder::getUnicode

(PECL haru >= 0.0.1)

HaruEncoder::getUnicode — Convert the specified character to unicode

Описание

int HaruEncoder::getUnicode ( int $character )

Converts the specified character to unicode.

Список параметров

character

The character code to convert.

Возвращаемые значения

Ошибки

Вызывает исключение HaruException при ошибке.


Get the writing mode of the encoder

  • « HaruEncoder::getUnicode
  • HaruOutline »
  • PHP Manual
  • HaruEncoder
  • Get the writing mode of the encoder

HaruEncoder::getWritingMode

(PECL haru >= 0.0.1)

HaruEncoder::getWritingMode — Get the writing mode of the encoder

Описание

int HaruEncoder::getWritingMode ( void )

Get the writing mode of the encoder.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the writing mode of the encoder. The result value is on of the following:

  • HaruEncoder::WMODE_HORIZONTAL - horizontal writing mode.
  • HaruEncoder::WMODE_VERTICAL - vertical writing mode.

Ошибки

Вызывает исключение HaruException при ошибке.


Класс HaruOutline

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Outline.

Обзор классов

HaruOutline {
/* Методы */
bool setDestination ( object $destination )
bool setOpened ( bool $opened )
}

Содержание

  • HaruOutline::setDestination — Set the destination for the outline
  • HaruOutline::setOpened — Set the initial state of the outline


Set the destination for the outline

  • « HaruOutline
  • HaruOutline::setOpened »
  • PHP Manual
  • HaruOutline
  • Set the destination for the outline

HaruOutline::setDestination

(PECL haru >= 0.0.1)

HaruOutline::setDestination — Set the destination for the outline

Описание

bool HaruOutline::setDestination ( object $destination )

Sets a destination object which becomes a target to jump to when the outline is clicked.

Список параметров

destination

A valid HaruDestination instance.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the initial state of the outline

  • « HaruOutline::setDestination
  • HaruAnnotation »
  • PHP Manual
  • HaruOutline
  • Set the initial state of the outline

HaruOutline::setOpened

(PECL haru >= 0.0.1)

HaruOutline::setOpened — Set the initial state of the outline

Описание

bool HaruOutline::setOpened ( bool $opened )

Defines whether this node is opened or not when the outline is displayed for the first time.

Список параметров

opened

TRUE means open, FALSE - closed.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Класс HaruAnnotation

(PECL haru >= 0.0.1)

Введение

Haru PDF Annotation Class.

Обзор классов

HaruAnnotation {
/* Методы */
bool setBorderStyle ( float $width , int $dash_on , int $dash_off )
bool setHighlightMode ( int $mode )
bool setIcon ( int $icon )
bool setOpened ( bool $opened )
}

Предопределенные константы

Тип | Имя | Описание
int | HaruAnnotation::NO_HIGHLIGHT |
int | HaruAnnotation::INVERT_BOX |
int | HaruAnnotation::INVERT_BORDER |
int | HaruAnnotation::DOWN_APPEARANCE |
int | HaruAnnotation::ICON_COMMENT |
int | HaruAnnotation::ICON_KEY |
int | HaruAnnotation::ICON_NOTE |
int | HaruAnnotation::ICON_HELP |
int | HaruAnnotation::ICON_NEW_PARAGRAPH |
int | HaruAnnotation::ICON_PARAGRAPH |
int | HaruAnnotation::ICON_INSERT |

Содержание

  • HaruAnnotation::setBorderStyle — Set the border style of the annotation
  • HaruAnnotation::setHighlightMode — Set the highlighting mode of the annotation
  • HaruAnnotation::setIcon — Set the icon style of the annotation
  • HaruAnnotation::setOpened — Set the initial state of the annotation


Set the border style of the annotation

  • « HaruAnnotation
  • HaruAnnotation::setHighlightMode »
  • PHP Manual
  • HaruAnnotation
  • Set the border style of the annotation

HaruAnnotation::setBorderStyle

(PECL haru >= 0.0.1)

HaruAnnotation::setBorderStyle — Set the border style of the annotation

Описание

bool HaruAnnotation::setBorderStyle ( float $width , int $dash_on , int $dash_off )

Defines the style of the border of the annotation. This function may be used with link annotations only.

Список параметров

width

The width of the border line.

dash_on

The dash style.

dash_off

The dash style.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the highlighting mode of the annotation

  • « HaruAnnotation::setBorderStyle
  • HaruAnnotation::setIcon »
  • PHP Manual
  • HaruAnnotation
  • Set the highlighting mode of the annotation

HaruAnnotation::setHighlightMode

(PECL haru >= 0.0.1)

HaruAnnotation::setHighlightMode — Set the highlighting mode of the annotation

Описание

bool HaruAnnotation::setHighlightMode ( int $mode )

Defines the appearance of the annotation when clicked. This function may be used with link annotations only.

Список параметров

mode

The highlighting mode of the annotation. Can take only these values:

  • HaruAnnotation::NO_HIGHLIGHT - no highlighting.
  • HaruAnnotation::INVERT_BOX - invert the contents of the annotation.
  • HaruAnnotation::INVERT_BORDER - invert the border of the annotation.
  • HaruAnnotation::DOWN_APPEARANCE - dent the annotation.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the icon style of the annotation

  • « HaruAnnotation::setHighlightMode
  • HaruAnnotation::setOpened »
  • PHP Manual
  • HaruAnnotation
  • Set the icon style of the annotation

HaruAnnotation::setIcon

(PECL haru >= 0.0.1)

HaruAnnotation::setIcon — Set the icon style of the annotation

Описание

bool HaruAnnotation::setIcon ( int $icon )

Defines the style of the annotation icon. This function may be used with text annotations only.

Список параметров

icon

The style of the icon. Can take only these values:

  • HaruAnnotation::ICON_COMMENT
  • HaruAnnotation::ICON_KEY
  • HaruAnnotation::ICON_NOTE
  • HaruAnnotation::ICON_HELP
  • HaruAnnotation::ICON_NEW_PARAGRAPH
  • HaruAnnotation::ICON_PARAGRAPH
  • HaruAnnotation::ICON_INSERT

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the initial state of the annotation

  • « HaruAnnotation::setIcon
  • HaruDestination »
  • PHP Manual
  • HaruAnnotation
  • Set the initial state of the annotation

HaruAnnotation::setOpened

(PECL haru >= 0.0.1)

HaruAnnotation::setOpened — Set the initial state of the annotation

Описание

bool HaruAnnotation::setOpened ( bool $opened )

Defines whether the annotation is initially displayed open. This function may be used with text annotations only.

Список параметров

opened

TRUE means the annotation is initially displayed open, FALSE - means it's closed.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Класс HaruDestination

(PECL haru >= 0.0.1)

Введение

Класс Haru PDF Destination.

Обзор классов

HaruDestination {
/* Методы */
bool setFit ( void )
bool setFitB ( void )
bool setFitBH ( float $top )
bool setFitBV ( float $left )
bool setFitH ( float $top )
bool setFitR ( float $left , float $bottom , float $right , float $top )
bool setFitV ( float $left )
bool setXYZ ( float $left , float $top , float $zoom )
}

Содержание

  • HaruDestination::setFit — Set the appearance of the page to fit the window
  • HaruDestination::setFitB — Set the appearance of the page to fit the bounding box of the page within the window
  • HaruDestination::setFitBH — Set the appearance of the page to fit the width of the bounding box
  • HaruDestination::setFitBV — Set the appearance of the page to fit the height of the boudning box
  • HaruDestination::setFitH — Set the appearance of the page to fit the window width
  • HaruDestination::setFitR — Set the appearance of the page to fit the specified rectangle
  • HaruDestination::setFitV — Set the appearance of the page to fit the window height
  • HaruDestination::setXYZ — Set the appearance of the page


Set the appearance of the page to fit the window

  • « HaruDestination
  • HaruDestination::setFitB »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the window

HaruDestination::setFit

(PECL haru >= 0.0.1)

HaruDestination::setFit — Set the appearance of the page to fit the window

Описание

bool HaruDestination::setFit ( void )

Defines the appearance of the page to fit the window.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the bounding box of the page within the window

  • « HaruDestination::setFit
  • HaruDestination::setFitBH »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the bounding box of the page within the window

HaruDestination::setFitB

(PECL haru >= 0.0.1)

HaruDestination::setFitB — Set the appearance of the page to fit the bounding box of the page within the window

Описание

bool HaruDestination::setFitB ( void )

Defines the appearance of the page to fit the bounding box of the page within the window.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the width of the bounding box

  • « HaruDestination::setFitB
  • HaruDestination::setFitBV »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the width of the bounding box

HaruDestination::setFitBH

(PECL haru >= 0.0.1)

HaruDestination::setFitBH — Set the appearance of the page to fit the width of the bounding box

Описание

bool HaruDestination::setFitBH ( float $top )

Defines the appearance of the page to magnifying to fit the width of the bounding box and setting the top position of the page to the value of top.

Список параметров

top

The top coordinates of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the height of the boudning box

  • « HaruDestination::setFitBH
  • HaruDestination::setFitH »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the height of the boudning box

HaruDestination::setFitBV

(PECL haru >= 0.0.1)

HaruDestination::setFitBV — Set the appearance of the page to fit the height of the boudning box

Описание

bool HaruDestination::setFitBV ( float $left )

Defines the appearance of the page to magnifying to fit the height of the bounding box and setting the left position of the page to the value of left.

Список параметров

left

The left coordinates of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the window width

  • « HaruDestination::setFitBV
  • HaruDestination::setFitR »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the window width

HaruDestination::setFitH

(PECL haru >= 0.0.1)

HaruDestination::setFitH — Set the appearance of the page to fit the window width

Описание

bool HaruDestination::setFitH ( float $top )

Defines the appearance of the page to fit the window width and sets the top position of the page to the value of top.

Список параметров

top

The top position of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the specified rectangle

  • « HaruDestination::setFitH
  • HaruDestination::setFitV »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the specified rectangle

HaruDestination::setFitR

(PECL haru >= 0.0.1)

HaruDestination::setFitR — Set the appearance of the page to fit the specified rectangle

Описание

bool HaruDestination::setFitR ( float $left , float $bottom , float $right , float $top )

Defines the appearance of the page to fit the rectangle by the parameters.

Список параметров

left

The left coordinates of the page.

bottom

The bottom coordinates of the page.

right

The right coordinates of the page.

top

The top coordinates of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page to fit the window height

  • « HaruDestination::setFitR
  • HaruDestination::setXYZ »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page to fit the window height

HaruDestination::setFitV

(PECL haru >= 0.0.1)

HaruDestination::setFitV — Set the appearance of the page to fit the window height

Описание

bool HaruDestination::setFitV ( float $left )

Defines the appearance of the page to fit the window height.

Список параметров

left

The left position of the page.

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Set the appearance of the page

  • « HaruDestination::setFitV
  • Ming »
  • PHP Manual
  • HaruDestination
  • Set the appearance of the page

HaruDestination::setXYZ

(PECL haru >= 0.0.1)

HaruDestination::setXYZ — Set the appearance of the page

Описание

bool HaruDestination::setXYZ ( float $left , float $top , float $zoom )

Defines the appearance of the page using three parameters: left, top and zoom.

Список параметров

left

The left position of the page.

top

The top position of the page.

zoom

The magnification factor. The value must be between 0.08 (8%) and 32 (3200%).

Возвращаемые значения

Returns TRUE on success.

Ошибки

Вызывает исключение HaruException при ошибке.


Ming (flash)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • SWFAction Examples
    • SWFSPrite basic examples
  • Ming Функции
    • ming_keypress — Returns the action flag for keyPress(char)
    • ming_setcubicthreshold — Set cubic threshold
    • ming_setscale — Set the global scaling factor.
    • ming_setswfcompression — Sets the SWF output compression
    • ming_useconstants — Use constant pool
    • ming_useswfversion — Sets the SWF version
  • SWFAction — The SWFAction class
    • SWFAction::__construct — Creates a new SWFAction
  • SWFBitmap — The SWFBitmap class
    • SWFBitmap::__construct — Loads Bitmap object
    • SWFBitmap::getHeight — Returns the bitmap's height
    • SWFBitmap::getWidth — Returns the bitmap's width
  • SWFButton — The SWFButton class
    • SWFButton::addAction — Adds an action
    • SWFButton::addASound — Associates a sound with a button transition
    • SWFButton::addShape — Adds a shape to a button
    • SWFButton::__construct — Creates a new Button
    • SWFButton::setAction — Sets the action
    • SWFButton::setDown — Alias for addShape(shape, SWFBUTTON_DOWN)
    • SWFButton::setHit — Alias for addShape(shape, SWFBUTTON_HIT)
    • SWFButton::setMenu — enable track as menu button behaviour
    • SWFButton::setOver — Alias for addShape(shape, SWFBUTTON_OVER)
    • SWFButton::setUp — Alias for addShape(shape, SWFBUTTON_UP)
  • SWFDisplayItem — The SWFDisplayItem class
    • SWFDisplayItem::addAction — Adds this SWFAction to the given SWFSprite instance
    • SWFDisplayItem::addColor — Adds the given color to this item's color transform
    • SWFDisplayItem::endMask — Another way of defining a MASK layer
    • SWFDisplayItem::getRot — Описание
    • SWFDisplayItem::getX — Описание
    • SWFDisplayItem::getXScale — Описание
    • SWFDisplayItem::getXSkew — Описание
    • SWFDisplayItem::getY — Описание
    • SWFDisplayItem::getYScale — Описание
    • SWFDisplayItem::getYSkew — Описание
    • SWFDisplayItem::move — Moves object in relative coordinates
    • SWFDisplayItem::moveTo — Moves object in global coordinates
    • SWFDisplayItem::multColor — Multiplies the item's color transform
    • SWFDisplayItem::remove — Removes the object from the movie
    • SWFDisplayItem::rotate — Rotates in relative coordinates
    • SWFDisplayItem::rotateTo — Rotates the object in global coordinates
    • SWFDisplayItem::scale — Scales the object in relative coordinates
    • SWFDisplayItem::scaleTo — Scales the object in global coordinates
    • SWFDisplayItem::setDepth — Sets z-order
    • SWFDisplayItem::setMaskLevel — Defines a MASK layer at level
    • SWFDisplayItem::setMatrix — Sets the item's transform matrix
    • SWFDisplayItem::setName — Sets the object's name
    • SWFDisplayItem::setRatio — Sets the object's ratio
    • SWFDisplayItem::skewX — Sets the X-skew
    • SWFDisplayItem::skewXTo — Sets the X-skew
    • SWFDisplayItem::skewY — Sets the Y-skew
    • SWFDisplayItem::skewYTo — Sets the Y-skew
  • SWFFill — The SWFFill class
    • SWFFill::moveTo — Moves fill origin
    • SWFFill::rotateTo — Sets fill's rotation
    • SWFFill::scaleTo — Sets fill's scale
    • SWFFill::skewXTo — Sets fill x-skew
    • SWFFill::skewYTo — Sets fill y-skew
  • SWFFont — The SWFFont class
    • SWFFont::__construct — Loads a font definition
    • SWFFont::getAscent — Returns the ascent of the font, or 0 if not available
    • SWFFont::getDescent — Returns the descent of the font, or 0 if not available
    • SWFFont::getLeading — Returns the leading of the font, or 0 if not available
    • SWFFont::getShape — Returns the glyph shape of a char as a text string
    • SWFFont::getUTF8Width — Calculates the width of the given string in this font at full height
    • SWFFont::getWidth — Returns the string's width
  • SWFFontChar — The SWFFontChar class
    • SWFFontChar::addChars — Adds characters to a font for exporting font
    • SWFFontChar::addUTF8Chars — Adds characters to a font for exporting font
  • SWFGradient — The SWFGradient class
    • SWFGradient::addEntry — Adds an entry to the gradient list
    • SWFGradient::__construct — Creates a gradient object
  • SWFMorph — The SWFMorph class
    • SWFMorph::__construct — Creates a new SWFMorph object
    • SWFMorph::getShape1 — Gets a handle to the starting shape
    • SWFMorph::getShape2 — Gets a handle to the ending shape
  • SWFMovie — The SWFMovie class
    • SWFMovie::add — Adds any type of data to a movie
    • SWFMovie::addExport — Описание
    • SWFMovie::addFont — Описание
    • SWFMovie::__construct — Creates a new movie object, representing an SWF version 4 movie
    • SWFMovie::importChar — Описание
    • SWFMovie::importFont — Описание
    • SWFMovie::labelFrame — Labels a frame
    • SWFMovie::nextFrame — Moves to the next frame of the animation
    • SWFMovie::output — Dumps your lovingly prepared movie out
    • SWFMovie::remove — Removes the object instance from the display list
    • SWFMovie::save — Saves the SWF movie in a file
    • SWFMovie::saveToFile — Описание
    • SWFMovie::setbackground — Sets the background color
    • SWFMovie::setDimension — Sets the movie's width and height
    • SWFMovie::setFrames — Sets the total number of frames in the animation
    • SWFMovie::setRate — Sets the animation's frame rate
    • SWFMovie::startSound — Описание
    • SWFMovie::stopSound — Описание
    • SWFMovie::streamMP3 — Streams a MP3 file
    • SWFMovie::writeExports — Описание
  • SWFPrebuiltClip — The SWFPrebuiltClip class
    • SWFPrebuiltClip::__construct — Возвращает объект класса SWFPrebuiltClip
  • SWFShape — The SWFShape class
    • SWFShape::addFill — Adds a solid fill to the shape
    • SWFShape::__construct — Creates a new shape object
    • SWFShape::drawArc — Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock
    • SWFShape::drawCircle — Draws a circle of radius r centered at the current location, in a counter-clockwise fashion
    • SWFShape::drawCubic — Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape::drawCubicTo — Draws a cubic bezier curve using the current position and the three given points as control points
    • SWFShape::drawCurve — Draws a curve (relative)
    • SWFShape::drawCurveTo — Draws a curve
    • SWFShape::drawGlyph — Draws the first character in the given string into the shape using the glyph definition from the given font
    • SWFShape::drawLine — Draws a line (relative)
    • SWFShape::drawLineTo — Draws a line
    • SWFShape::movePen — Moves the shape's pen (relative)
    • SWFShape::movePenTo — Moves the shape's pen
    • SWFShape::setLeftFill — Sets left rasterizing color
    • SWFShape::setLine — Sets the shape's line style
    • SWFShape::setRightFill — Sets right rasterizing color
  • SWFSound — The SWFSound class
    • SWFSound::__construct — Возвращает новый объект SWFSound из заданного файла
  • SWFSoundInstance — The SWFSoundInstance class
    • SWFSoundInstance::loopCount — Описание
    • SWFSoundInstance::loopInPoint — Описание
    • SWFSoundInstance::loopOutPoint — Описание
    • SWFSoundInstance::noMultiple — Описание
  • SWFSprite — The SWFSprite class
    • SWFSprite::add — Adds an object to a sprite
    • SWFSprite::__construct — Creates a movie clip (a sprite)
    • SWFSprite::labelFrame — Labels frame
    • SWFSprite::nextFrame — Moves to the next frame of the animation
    • SWFSprite::remove — Removes an object to a sprite
    • SWFSprite::setFrames — Sets the total number of frames in the animation
    • SWFSprite::startSound — Описание
    • SWFSprite::stopSound — Описание
  • SWFText — The SWFText class
    • SWFText::addString — Draws a string
    • SWFText::addUTF8String — Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color
    • SWFText::__construct — Creates a new SWFText object
    • SWFText::getAscent — Returns the ascent of the current font at its current size, or 0 if not available
    • SWFText::getDescent — Returns the descent of the current font at its current size, or 0 if not available
    • SWFText::getLeading — Returns the leading of the current font at its current size, or 0 if not available
    • SWFText::getUTF8Width — calculates the width of the given string in this text objects current font and size
    • SWFText::getWidth — Computes string's width
    • SWFText::moveTo — Moves the pen
    • SWFText::setColor — Sets the current text color
    • SWFText::setFont — Sets the current font
    • SWFText::setHeight — Sets the current font height
    • SWFText::setSpacing — Sets the current font spacing
  • SWFTextField — The SWFTextField class
    • SWFTextField::addChars — adds characters to a font that will be available within a textfield
    • SWFTextField::addString — Concatenates the given string to the text field
    • SWFTextField::align — Sets the text field alignment
    • SWFTextField::__construct — Creates a text field object
    • SWFTextField::setBounds — Sets the text field width and height
    • SWFTextField::setColor — Sets the color of the text field
    • SWFTextField::setFont — Sets the text field font
    • SWFTextField::setHeight — Sets the font height of this text field font
    • SWFTextField::setIndentation — Sets the indentation of the first line
    • SWFTextField::setLeftMargin — Sets the left margin width of the text field
    • SWFTextField::setLineSpacing — Sets the line spacing of the text field
    • SWFTextField::setMargins — Sets the margins width of the text field
    • SWFTextField::setName — Sets the variable name
    • SWFTextField::setPadding — Sets the padding of this textfield
    • SWFTextField::setRightMargin — Sets the right margin width of the text field
  • SWFVideoStream — The SWFVideoStream class
    • SWFVideoStream::__construct — Возвращает объект класса SWFVideoStream
    • SWFVideoStream::getNumFrames — Возвращает количество кадров в видео-файле
    • SWFVideoStream::setDimension — Устанавливает размер видео


Введение

First of all: Ming is not an acronym. Ming is an open-source (LGPL) library which allows you to create SWF ("Flash") format movies. Ming supports almost all of Flash 4's features, including: shapes, gradients, bitmaps (pngs and jpegs), morphs ("shape tweens"), text, buttons, actions, sprites ("movie clips"), streaming mp3, and color transforms --the only thing that's missing is sound events.

Note that all values specifying length, distance, size, etc. are in "twips", twenty units per pixel. That's pretty much arbitrary, though, since the player scales the movie to whatever pixel size is specified in the embed/object tag, or the entire frame if not embedded.

Ming offers a number of advantages over the existing PHP/libswf module. You can use Ming anywhere you can compile the code, whereas libswf is closed-source and only available for a few platforms, Windows not one of them. Ming provides some insulation from the mundane details of the SWF file format, wrapping the movie elements in PHP objects. Also, Ming is still being maintained; if there's a feature that you want to see, just let us know at » http://www.libming.org/.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.3.0.


Требования

To use Ming with PHP, you first need to build and install the Ming library. Source code and installation instructions are available at the Ming home page: » http://www.libming.org/ along with examples, a small tutorial, and the latest news.

Download the ming archive. Unpack the archive. Go in the Ming directory. make. make install.

This will build libming.so and install it into /usr/lib/, and copy ming.h into /usr/include/. Edit the PREFIX= line in the Makefile to change the installation directory.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/ming.

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.3.0

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

MING_NEW (integer)
MING_ZLIB (integer)
SWFBUTTON_HIT (integer)
SWFBUTTON_DOWN (integer)
SWFBUTTON_OVER (integer)
SWFBUTTON_UP (integer)
SWFBUTTON_MOUSEUPOUTSIDE (integer)
SWFBUTTON_DRAGOVER (integer)
SWFBUTTON_DRAGOUT (integer)
SWFBUTTON_MOUSEUP (integer)
SWFBUTTON_MOUSEDOWN (integer)
SWFBUTTON_MOUSEOUT (integer)
SWFBUTTON_MOUSEOVER (integer)
SWFFILL_RADIAL_GRADIENT (integer)
SWFFILL_LINEAR_GRADIENT (integer)
SWFFILL_TILED_BITMAP (integer)
SWFFILL_CLIPPED_BITMAP (integer)
SWFTEXTFIELD_HASLENGTH (integer)
SWFTEXTFIELD_NOEDIT (integer)
SWFTEXTFIELD_PASSWORD (integer)
SWFTEXTFIELD_MULTILINE (integer)
SWFTEXTFIELD_WORDWRAP (integer)
SWFTEXTFIELD_DRAWBOX (integer)
SWFTEXTFIELD_NOSELECT (integer)
SWFTEXTFIELD_HTML (integer)
SWFTEXTFIELD_ALIGN_LEFT (integer)
SWFTEXTFIELD_ALIGN_RIGHT (integer)
SWFTEXTFIELD_ALIGN_CENTER (integer)
SWFTEXTFIELD_ALIGN_JUSTIFY (integer)
SWFACTION_ONLOAD (integer)
SWFACTION_ENTERFRAME (integer)
SWFACTION_UNLOAD (integer)
SWFACTION_MOUSEMOVE (integer)
SWFACTION_MOUSEDOWN (integer)
SWFACTION_MOUSEUP (integer)
SWFACTION_KEYDOWN (integer)
SWFACTION_KEYUP (integer)
SWFACTION_DATA (integer)


  • « Предопределенные константы
  • SWFAction Examples »
  • PHP Manual
  • Ming
  • Примеры

Примеры

Содержание

  • SWFAction Examples
  • SWFSPrite basic examples


SWFAction Examples

This simple example will move the red square across the window.

Пример #1 swfaction() example

<?php
  $s = new SWFShape();
  $f = $s->addFill(0xff, 0, 0);
  $s->setRightFill($f);

  $s->movePenTo(-500, -500);
  $s->drawLineTo(500, -500);
  $s->drawLineTo(500, 500);
  $s->drawLineTo(-500, 500);
  $s->drawLineTo(-500, -500);

  $p = new SWFSprite();
  $i = $p->add($s);
  $i->setDepth(1);
  $p->nextFrame();

  for ($n=0; $n<5; ++$n) {
    $i->rotate(-15);
    $p->nextFrame();
  }

  $m = new SWFMovie();
  $m->setBackground(0xff, 0xff, 0xff);
  $m->setDimension(6000, 4000);

  $i = $m->add($p);
  $i->setDepth(1);
  $i->moveTo(-500,2000);
  $i->setName("box");

  $m->add(new SWFAction("/box.x += 3;"));
  $m->nextFrame();
  $m->add(new SWFAction("gotoFrame(0); play();"));
  $m->nextFrame();

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

This simple example tracks down your mouse on the screen.

Пример #2 swfaction() example

<?php

  $m = new SWFMovie();
  $m->setRate(36.0);
  $m->setDimension(1200, 800);
  $m->setBackground(0, 0, 0);

  /* mouse tracking sprite - empty, but follows mouse so we can
     get its x and y coordinates */

  $i = $m->add(new SWFSprite());
  $i->setName('mouse');

  $m->add(new SWFAction("
    startDrag('/mouse', 1); /* '1' means lock sprite to the mouse */
  "));

  /* might as well turn off antialiasing, since these are just squares. */

  $m->add(new SWFAction("
    this.quality = 0;
  "));

  /* morphing box */
  $r = new SWFMorph();
  $s = $r->getShape1();

  /* Note this is backwards from normal shapes.  No idea why. */
  $s->setLeftFill($s->addFill(0xff, 0xff, 0xff));
  $s->movePenTo(-40, -40);
  $s->drawLine(80, 0);
  $s->drawLine(0, 80);
  $s->drawLine(-80, 0);
  $s->drawLine(0, -80);

  $s = $r->getShape2();

  $s->setLeftFill($s->addFill(0x00, 0x00, 0x00));
  $s->movePenTo(-1, -1);
  $s->drawLine(2, 0);
  $s->drawLine(0, 2);
  $s->drawLine(-2, 0);
  $s->drawLine(0, -2);

  /* sprite container for morphing box -
     this is just a timeline w/ the box morphing */

  $box = new SWFSprite();
  $box->add(new SWFAction("
    stop();
  "));
  $i = $box->add($r);

  for ($n=0; $n<=20; ++$n) {
    $i->setRatio($n/20);
    $box->nextFrame();
  }

  /* this container sprite allows us to use the same action code many times */

  $cell = new SWFSprite();
  $i = $cell->add($box);
  $i->setName('box');

  $cell->add(new SWFAction("

    setTarget('box');

    /* ...x means the x coordinate of the parent, i.e. (..).x */
    dx = (/mouse.x + random(6)-3 - ...x)/5;
    dy = (/mouse.y + random(6)-3 - ...y)/5;
    gotoFrame(int(dx*dx + dy*dy));

  "));

  $cell->nextFrame();
  $cell->add(new SWFAction("

    gotoFrame(0);
    play();

  "));

  $cell->nextFrame();

  /* finally, add a bunch of the cells to the movie */

  for ($x=0; $x<12; ++$x) {
    for ($y=0; $y<8; ++$y) {
      $i = $m->add($cell);
      $i->moveTo(100*$x+50, 100*$y+50);
    }
  }

  $m->nextFrame();

  $m->add(new SWFAction("

    gotoFrame(1);
    play();

  "));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>

Same as above, but with nice colored balls...

Пример #3 swfaction() example

<?php

  $m = new SWFMovie();
  $m->setDimension(11000, 8000);
  $m->setBackground(0x00, 0x00, 0x00);

  $m->add(new SWFAction("

this.quality = 0;
/frames.visible = 0;
startDrag('/mouse', 1);

  "));

  // mouse tracking sprite
  $t = new SWFSprite();
  $i = $m->add($t);
  $i->setName('mouse');

  $g = new SWFGradient();
  $g->addEntry(0, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.1, 0xff, 0xff, 0xff, 0xff);
  $g->addEntry(0.5, 0xff, 0xff, 0xff, 0x5f);
  $g->addEntry(1.0, 0xff, 0xff, 0xff, 0);

  // gradient shape thing
  $s = new SWFShape();
  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.03);
  $s->setRightFill($f);
  $s->movePenTo(-600, -600);
  $s->drawLine(1200, 0);
  $s->drawLine(0, 1200);
  $s->drawLine(-1200, 0);
  $s->drawLine(0, -1200);

  // need to make this a sprite so we can multColor it
  $p = new SWFSprite();
  $p->add($s);
  $p->nextFrame();

  // put the shape in here, each frame a different color
  $q = new SWFSprite();
  $q->add(new SWFAction("gotoFrame(random(7)+1); stop();"));
  $i = $q->add($p);

  $i->multColor(1.0, 1.0, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 0.75, 0.5);
  $q->nextFrame();
  $i->multColor(1.0, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 1.0, 0.5);
  $q->nextFrame();
  $i->multColor(0.5, 0.5, 1.0);
  $q->nextFrame();
  $i->multColor(1.0, 0.5, 1.0);
  $q->nextFrame();

  // finally, this one contains the action code
  $p = new SWFSprite();
  $i = $p->add($q);
  $i->setName('frames');
  $p->add(new SWFAction("

dx = (/:mousex-/:lastx)/3 + random(10)-5;
dy = (/:mousey-/:lasty)/3;
x = /:mousex;
y = /:mousey;
alpha = 100;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("

this.x = x;
this.y = y;
this.alpha = alpha;
x += dx;
y += dy;
dy += 3;
alpha -= 8;

  "));
  $p->nextFrame();

  $p->add(new SWFAction("prevFrame(); play();"));
  $p->nextFrame();

  $i = $m->add($p);
  $i->setName('frames');
  $m->nextFrame();

  $m->add(new SWFAction("

lastx = mousex;
lasty = mousey;
mousex = /mouse.x;
mousey = /mouse.y;

++num;

if (num == 11)
  num = 1;

removeClip('char' & num);
duplicateClip(/frames, 'char' & num, num);

  "));

  $m->nextFrame();
  $m->add(new SWFAction("prevFrame(); play();"));

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>


SWFSPrite basic examples

This simple example will spin gracefully a big red square.

Пример #1 swfsprite() example

<?php
$s = new SWFShape();
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->movePenTo(-500, -500);
$s->drawLineTo(500, -500);
$s->drawLineTo(500, 500);
$s->drawLineTo(-500, 500);
$s->drawLineTo(-500, -500);

$p = new SWFSprite();
$i = $p->add($s);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();
$i->rotate(15);
$p->nextFrame();

$m = new SWFMovie();
$i = $m->add($p);
$i->moveTo(1500, 1000);
$i->setName("blah");

$m->setBackground(0xff, 0xff, 0xff);
$m->setDimension(3000, 2000);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Ming Функции

Содержание

  • ming_keypress — Returns the action flag for keyPress(char)
  • ming_setcubicthreshold — Set cubic threshold
  • ming_setscale — Set the global scaling factor.
  • ming_setswfcompression — Sets the SWF output compression
  • ming_useconstants — Use constant pool
  • ming_useswfversion — Sets the SWF version


Returns the action flag for keyPress(char)

  • « Ming Функции
  • ming_setcubicthreshold »
  • PHP Manual
  • Ming Функции
  • Returns the action flag for keyPress(char)

ming_keypress

(PHP 5 <= 5.3.0, PECL ming SVN)

ming_keypress — Returns the action flag for keyPress(char)

Описание

int ming_keypress ( string $char )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Set cubic threshold

  • « ming_keypress
  • ming_setscale »
  • PHP Manual
  • Ming Функции
  • Set cubic threshold

ming_setcubicthreshold

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PECL ming SVN)

ming_setcubicthreshold — Set cubic threshold

Описание

void ming_setcubicthreshold ( int $threshold )

Sets the threshold error for drawing cubic beziers.

Список параметров

threshold

The Threshold. Lower is more accurate, hence larger file size.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Set the global scaling factor.

  • « ming_setcubicthreshold
  • ming_setswfcompression »
  • PHP Manual
  • Ming Функции
  • Set the global scaling factor.

ming_setscale

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PECL ming SVN)

ming_setscale — Set the global scaling factor.

Описание

void ming_setscale ( float $scale )

Sets the scale of the output SWF. Inside the SWF file, coordinates are measured in TWIPS, rather than PIXELS. There are 20 TWIPS in 1 pixel.

Список параметров

scale

The scale to be set.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the SWF output compression

  • « ming_setscale
  • ming_useconstants »
  • PHP Manual
  • Ming Функции
  • Sets the SWF output compression

ming_setswfcompression

(PHP 5.2.1-5.3.0, PHP 7, PECL ming SVN)

ming_setswfcompression — Sets the SWF output compression

Описание

void ming_setswfcompression ( int $level )

Sets the SWF output compression level.

Список параметров

level

The new compression level. Should be a value between 1 and 9 inclusive.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Use constant pool

  • « ming_setswfcompression
  • ming_useswfversion »
  • PHP Manual
  • Ming Функции
  • Use constant pool

ming_useconstants

(PHP 5 <= 5.3.0, PECL ming SVN)

ming_useconstants — Use constant pool

Описание

void ming_useconstants ( int $use )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the SWF version

  • « ming_useconstants
  • SWFAction »
  • PHP Manual
  • Ming Функции
  • Sets the SWF version

ming_useswfversion

(PHP 4 >= 4.2.0, PHP 5 <= 5.3.0, PECL ming SVN)

ming_useswfversion — Sets the SWF version

Описание

void ming_useswfversion ( int $version )

Sets the SWF version to be used in the movie. This affect the bahaviour of Action Script.

Список параметров

version

SWF version to use.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ming_useswfversion() example

<?php

$movie = new SWFMovie();
ming_useswfversion(4); // Flash 4

?>


The SWFAction class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFAction.

Обзор классов

SWFAction {
/* Методы */
__construct ( string $script )
}

Описание

The script syntax is based on the C language, but with a lot taken out- the SWF bytecode machine is just too simpleminded to do a lot of things we might like. For instance, we can't implement function calls without a tremendous amount of hackery because the jump bytecode has a hardcoded offset value. No pushing your calling address to the stack and returning- every function would have to know exactly where to return to.

So what's left? The compiler recognises the following tokens:

  • break
  • for
  • continue
  • if
  • else
  • do
  • while

There is no typed data; all values in the SWF action machine are stored as strings. The following functions can be used in expressions:

time()
Returns the number of milliseconds (?) elapsed since the movie started.
random(seed)
Returns a pseudo-random number in the range 0-seed.
length(expr)
Returns the length of the given expression.
int(number)
Returns the given number rounded down to the nearest integer.
concat(expr, expr)
Returns the concatenation of the given expressions.
ord(expr)
Returns the ASCII code for the given character
chr(num)
Returns the character for the given ASCII code
substr(string, location, length)
Returns the substring of length length at location location of the given string string.

Additionally, the following commands may be used:

duplicateClip(clip, name, depth)
Duplicate the named movie clip (aka sprite). The new movie clip has name name and is at depth depth.
removeClip(expr)
Removes the named movie clip.
trace(expr)
Write the given expression to the trace log. Doubtful that the browser plugin does anything with this.
startDrag(target, lock, [left, top, right, bottom])
Start dragging the movie clip target. The lock argument indicates whether to lock the mouse (?)- use 0 (FALSE) or 1 (TRUE). Optional parameters define a bounding area for the dragging.
stopDrag()
Stop dragging my heart around. And this movie clip, too.
callFrame(expr)
Call the named frame as a function.
getURL(url, target, [method])
Load the given URL into the named target. The target argument corresponds to HTML document targets (such as "_top" or "_blank"). The optional method argument can be POST or GET if you want to submit variables back to the server.
loadMovie(url, target)
Load the given URL into the named target. The target argument can be a frame name (I think), or one of the magical values "_level0" (replaces current movie) or "_level1" (loads new movie on top of current movie).
nextFrame()
Go to the next frame.
prevFrame()
Go to the last (or, rather, previous) frame.
play()
Start playing the movie.
stop()
Stop playing the movie.
toggleQuality()
Toggle between high and low quality.
stopSounds()
Stop playing all sounds.
gotoFrame(num)
Go to frame number num. Frame numbers start at 0.
gotoFrame(name)
Go to the frame named name. Which does a lot of good, since I haven't added frame labels yet.
setTarget(expr)
Sets the context for action. Or so they say- I really have no idea what this does.
And there's one weird extra thing. The expression frameLoaded(num) can be used in if statements and while loops to check if the given frame number has been loaded yet. Well, it's supposed to, anyway, but I've never tested it and I seriously doubt it actually works. You can just use /:framesLoaded instead.

Movie clips (all together now- aka sprites) have properties. You can read all of them (or can you?), you can set some of them, and here they are:

  • x
  • y
  • xScale
  • yScale
  • currentFrame - (read-only)
  • totalFrames - (read-only)
  • alpha - transparency level
  • visible - 1=on, 0=off (?)
  • width - (read-only)
  • height - (read-only)
  • rotation
  • target - (read-only) (???)
  • framesLoaded - (read-only)
  • name
  • dropTarget - (read-only) (???)
  • url - (read-only) (???)
  • highQuality - 1=high, 0=low (?)
  • focusRect - (???)
  • soundBufTime - (???)
So, setting a sprite's x position is as simple as /box.x = 100;. Why the slash in front of the box, though? That's how flash keeps track of the sprites in the movie, just like a Unix filesystem- here it shows that box is at the top level. If the sprite named box had another sprite named biff inside of it, you'd set its x position with /box/biff.x = 100;. At least, I think so; correct me if I'm wrong here.

Содержание

  • SWFAction::__construct — Creates a new SWFAction


Creates a new SWFAction

  • « SWFAction
  • SWFBitmap »
  • PHP Manual
  • SWFAction
  • Creates a new SWFAction

SWFAction::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFAction::__construct — Creates a new SWFAction

Описание

SWFAction::__construct ( string $script )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Creates a new SWFAction and compiles the given script in it.

Список параметров

script

An ActionScript snippet to associate with the SWFAction. See SWFAction for more details.


The SWFBitmap class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFBitmap.

Обзор классов

SWFBitmap {
/* Методы */
__construct ( mixed $file [, mixed $alphafile ] )
float getHeight ( void )
float getWidth ( void )
}

Содержание

  • SWFBitmap::__construct — Loads Bitmap object
  • SWFBitmap::getHeight — Returns the bitmap's height
  • SWFBitmap::getWidth — Returns the bitmap's width


Loads Bitmap object

  • « SWFBitmap
  • SWFBitmap::getHeight »
  • PHP Manual
  • SWFBitmap
  • Loads Bitmap object

SWFBitmap::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFBitmap::__construct — Loads Bitmap object

Описание

SWFBitmap::__construct ( mixed $file [, mixed $alphafile ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Creates the new SWFBitmap object from the given file.

Список параметров

For both parameters you can provide a file pointer returned by fopen() or the image data, as a binary string.

file

Замечание:

We can only deal with baseline (frame 0) jpegs, no baseline optimized or progressive scan jpegs!

You can't import png images directly, though- have to use the png2dbl utility to make a dbl ("define bits lossless") file from the png. The reason for this is that I don't want a dependency on the png library in ming- autoconf should solve this, but that's not set up yet.

alphafile

An MSK file to be used as an alpha mask for a JPEG image.

Примеры

Пример #1 Importing a DBL file

<?php
$s = new SWFShape();
$f = $s->addFill(new SWFBitmap(file_get_contents("image.dbl")));
$s->setRightFill($f);

$s->drawLine(32, 0);
$s->drawLine(0, 32);
$s->drawLine(-32, 0);
$s->drawLine(0, -32);

$m = new SWFMovie();
$m->setDimension(32, 32);
$m->add($s);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Пример #2 Using an alpha mask

<?php

$s = new SWFShape();

// .msk file generated with "gif2mask" utility
$f = $s->addFill(new SWFBitmap(file_get_contents("alphafill.jpg"), file_get_contents("alphafill.msk")));
$s->setRightFill($f);

$s->drawLine(640, 0);
$s->drawLine(0, 480);
$s->drawLine(-640, 0);
$s->drawLine(0, -480);

$c = new SWFShape();
$c->setRightFill($c->addFill(0x99, 0x99, 0x99));
$c->drawLine(40, 0);
$c->drawLine(0, 40);
$c->drawLine(-40, 0);
$c->drawLine(0, -40);

$m = new SWFMovie();
$m->setDimension(640, 480);
$m->setBackground(0xcc, 0xcc, 0xcc);

// draw checkerboard background
for ($y=0; $y<480; $y+=40) {
  for ($x=0; $x<640; $x+=80) {
    $i = $m->add($c);
    $i->moveTo($x, $y);
  }

  $y+=40;

  for ($x=40; $x<640; $x+=80) {
    $i = $m->add($c);
    $i->moveTo($x, $y);
  }
}

$m->add($s);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Returns the bitmap's height

  • « SWFBitmap::__construct
  • SWFBitmap::getWidth »
  • PHP Manual
  • SWFBitmap
  • Returns the bitmap's height

SWFBitmap::getHeight

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFBitmap::getHeight — Returns the bitmap's height

Описание

float SWFBitmap::getHeight ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the bitmap's height.

Возвращаемые значения

Returns the bitmap height in pixels.

Смотрите также

  • SWFBitmap::getWidth() - Returns the bitmap's width


Returns the bitmap's width

  • « SWFBitmap::getHeight
  • SWFButton »
  • PHP Manual
  • SWFBitmap
  • Returns the bitmap's width

SWFBitmap::getWidth

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFBitmap::getWidth — Returns the bitmap's width

Описание

float SWFBitmap::getWidth ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the bitmap's width.

Возвращаемые значения

Returns the bitmap width in pixels.

Смотрите также

  • SWFBitmap::getHeight() - Returns the bitmap's height


The SWFButton class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFButton.

Обзор классов

SWFButton {
/* Методы */
void addAction ( SWFAction $action , int $flags )
SWFSoundInstance addASound ( SWFSound $sound , int $flags )
void addShape ( SWFShape $shape , int $flags )
__construct ( void )
void setAction ( SWFAction $action )
void setDown ( SWFShape $shape )
void setHit ( SWFShape $shape )
void setMenu ( int $flag )
void setOver ( SWFShape $shape )
void setUp ( SWFShape $shape )
}

Содержание

  • SWFButton::addAction — Adds an action
  • SWFButton::addASound — Associates a sound with a button transition
  • SWFButton::addShape — Adds a shape to a button
  • SWFButton::__construct — Creates a new Button
  • SWFButton::setAction — Sets the action
  • SWFButton::setDown — Alias for addShape(shape, SWFBUTTON_DOWN)
  • SWFButton::setHit — Alias for addShape(shape, SWFBUTTON_HIT)
  • SWFButton::setMenu — enable track as menu button behaviour
  • SWFButton::setOver — Alias for addShape(shape, SWFBUTTON_OVER)
  • SWFButton::setUp — Alias for addShape(shape, SWFBUTTON_UP)


Adds an action

  • « SWFButton
  • SWFButton::addASound »
  • PHP Manual
  • SWFButton
  • Adds an action

SWFButton::addAction

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::addAction — Adds an action

Описание

void SWFButton::addAction ( SWFAction $action , int $flags )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Adds the given action to the button for the given conditions.

Список параметров

action

An SWFAction, returned by SWFAction::__construct().

flags

The following flags are valid: SWFBUTTON_MOUSEOVER, SWFBUTTON_MOUSEOUT, SWFBUTTON_MOUSEUP, SWFBUTTON_MOUSEUPOUTSIDE, SWFBUTTON_MOUSEDOWN, SWFBUTTON_DRAGOUT and SWFBUTTON_DRAGOVER.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addShape() - Adds a shape to a button
  • SWFAction


Associates a sound with a button transition

  • « SWFButton::addAction
  • SWFButton::addShape »
  • PHP Manual
  • SWFButton
  • Associates a sound with a button transition

SWFButton::addASound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::addASound — Associates a sound with a button transition

Описание

SWFSoundInstance SWFButton::addASound ( SWFSound $sound , int $flags )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Adds a shape to a button

  • « SWFButton::addASound
  • SWFButton::__construct »
  • PHP Manual
  • SWFButton
  • Adds a shape to a button

SWFButton::addShape

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::addShape — Adds a shape to a button

Описание

void SWFButton::addShape ( SWFShape $shape , int $flags )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Adds the given shape to the button.

Список параметров

shape

An SWFShape instance

flags

The following flags are valid: SWFBUTTON_UP, SWFBUTTON_OVER, SWFBUTTON_DOWN and SWFBUTTON_HIT.

SWFBUTTON_HIT isn't ever displayed, it defines the hit region for the button. That is, everywhere the hit shape would be drawn is considered a "touchable" part of the button.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Creates a new Button

  • « SWFButton::addShape
  • SWFButton::setAction »
  • PHP Manual
  • SWFButton
  • Creates a new Button

SWFButton::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::__construct — Creates a new Button

Описание

SWFButton::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Creates a new Button.

Примеры

This simple example will show your usual interactions with buttons : rollover, rollon, mouseup, mousedown, noaction.

Пример #1 Usual interactions with buttons

<?php

$f = new SWFFont("_serif");

$p = new SWFSprite();

function label($string)
{
  global $f;

  $t = new SWFTextField();
  $t->setFont($f);
  $t->addString($string);
  $t->setHeight(200);
  $t->setBounds(3200, 200);
  return $t;
}

function addLabel($string)
{
  global $p;

  $i = $p->add(label($string));
  $p->nextFrame();
  $p->remove($i);
}

$p->add(new SWFAction("stop();"));
addLabel("NO ACTION");
addLabel("SWFBUTTON_MOUSEUP");
addLabel("SWFBUTTON_MOUSEDOWN");
addLabel("SWFBUTTON_MOUSEOVER");
addLabel("SWFBUTTON_MOUSEOUT");
addLabel("SWFBUTTON_MOUSEUPOUTSIDE");
addLabel("SWFBUTTON_DRAGOVER");
addLabel("SWFBUTTON_DRAGOUT");

function rect($r, $g, $b)
{
  $s = new SWFShape();
  $s->setRightFill($s->addFill($r, $g, $b));
  $s->drawLine(600, 0);
  $s->drawLine(0, 600);
  $s->drawLine(-600, 0);
  $s->drawLine(0, -600);

  return $s;
}

$b = new SWFButton();
$b->addShape(rect(0xff, 0, 0), SWFBUTTON_UP | SWFBUTTON_HIT);
$b->addShape(rect(0, 0xff, 0), SWFBUTTON_OVER);
$b->addShape(rect(0, 0, 0xff), SWFBUTTON_DOWN);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(1);"),
          SWFBUTTON_MOUSEUP);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(2);"),
      SWFBUTTON_MOUSEDOWN);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(3);"),
      SWFBUTTON_MOUSEOVER);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(4);"),
      SWFBUTTON_MOUSEOUT);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(5);"),
      SWFBUTTON_MOUSEUPOUTSIDE);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(6);"),
      SWFBUTTON_DRAGOVER);

$b->addAction(new SWFAction("setTarget('/label'); gotoFrame(7);"),
      SWFBUTTON_DRAGOUT);

$m = new SWFMovie();
$m->setDimension(4000, 3000);

$i = $m->add($p);
$i->setName("label");
$i->moveTo(400, 1900);

$i = $m->add($b);
$i->moveTo(400, 900);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

This simple example will enables you to drag draw a big red button on the windows. No drag-and-drop, just moving around.

Пример #2 Drag example

<?php

$s = new SWFShape();
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->drawLine(1000,0);
$s->drawLine(0,1000);
$s->drawLine(-1000,0);
$s->drawLine(0,-1000);

$b = new SWFButton();
$b->addShape($s, SWFBUTTON_HIT | SWFBUTTON_UP | SWFBUTTON_DOWN | SWFBUTTON_OVER);

$b->addAction(new SWFAction("startDrag('/test', 0);"), // '0' means don't lock to mouse
      SWFBUTTON_MOUSEDOWN);

$b->addAction(new SWFAction("stopDrag();"),
      SWFBUTTON_MOUSEUP | SWFBUTTON_MOUSEUPOUTSIDE);

$p = new SWFSprite();
$p->add($b);
$p->nextFrame();

$m = new SWFMovie();
$i = $m->add($p);
$i->setName('test');
$i->moveTo(1000,1000);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Sets the action

  • « SWFButton::__construct
  • SWFButton::setDown »
  • PHP Manual
  • SWFButton
  • Sets the action

SWFButton::setAction

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setAction — Sets the action

Описание

void SWFButton::setAction ( SWFAction $action )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the action to be performed when the button is clicked.

This is a shortcut for SWFButton::addAction() called with the SWFBUTTON_MOUSEUP flag.

Список параметров

action

An SWFAction, returned by SWFAction::__construct().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addAction() - Adds an action
  • SWFAction


Alias for addShape(shape, SWFBUTTON_DOWN)

  • « SWFButton::setAction
  • SWFButton::setHit »
  • PHP Manual
  • SWFButton
  • Alias for addShape(shape, SWFBUTTON_DOWN)

SWFButton::setDown

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setDown — Alias for addShape(shape, SWFBUTTON_DOWN)

Описание

void SWFButton::setDown ( SWFShape $shape )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton::setdown() alias for addShape(shape, SWFBUTTON_DOWN).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addShape() - Adds a shape to a button
  • SWFAction


Alias for addShape(shape, SWFBUTTON_HIT)

  • « SWFButton::setDown
  • SWFButton::setMenu »
  • PHP Manual
  • SWFButton
  • Alias for addShape(shape, SWFBUTTON_HIT)

SWFButton::setHit

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setHit — Alias for addShape(shape, SWFBUTTON_HIT)

Описание

void SWFButton::setHit ( SWFShape $shape )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton::sethit() alias for addShape(shape, SWFBUTTON_HIT).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addShape() - Adds a shape to a button
  • SWFAction


enable track as menu button behaviour

  • « SWFButton::setHit
  • SWFButton::setOver »
  • PHP Manual
  • SWFButton
  • enable track as menu button behaviour

SWFButton::setMenu

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setMenu — enable track as menu button behaviour

Описание

void SWFButton::setMenu ( int $flag )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flag

This parameter can be used for a slight different behavior of buttons. You can set it to 0 (off) or 1 (on).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Alias for addShape(shape, SWFBUTTON_OVER)

  • « SWFButton::setMenu
  • SWFButton::setUp »
  • PHP Manual
  • SWFButton
  • Alias for addShape(shape, SWFBUTTON_OVER)

SWFButton::setOver

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setOver — Alias for addShape(shape, SWFBUTTON_OVER)

Описание

void SWFButton::setOver ( SWFShape $shape )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton::setover() alias for addShape(shape, SWFBUTTON_OVER).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addShape() - Adds a shape to a button
  • SWFAction


Alias for addShape(shape, SWFBUTTON_UP)

  • « SWFButton::setOver
  • SWFDisplayItem »
  • PHP Manual
  • SWFButton
  • Alias for addShape(shape, SWFBUTTON_UP)

SWFButton::setUp

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFButton::setUp — Alias for addShape(shape, SWFBUTTON_UP)

Описание

void SWFButton::setUp ( SWFShape $shape )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfbutton::setup() alias for addShape(shape, SWFBUTTON_UP).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFButton::addShape() - Adds a shape to a button
  • SWFAction


The SWFDisplayItem class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFDisplayItem.

Обзор классов

SWFDisplayItem {
/* Методы */
void addAction ( SWFAction $action , int $flags )
void addColor ( int $red , int $green , int $blue [, int $a ] )
void endMask ( void )
float getRot ( void )
float getX ( void )
float getXScale ( void )
float getXSkew ( void )
float getY ( void )
float getYScale ( void )
float getYSkew ( void )
void move ( float $dx , float $dy )
void moveTo ( float $x , float $y )
void multColor ( float $red , float $green , float $blue [, float $a ] )
void remove ( void )
void rotate ( float $angle )
void rotateTo ( float $angle )
void scale ( float $dx , float $dy )
void scaleTo ( float $x [, float $y ] )
void setDepth ( int $depth )
void setMaskLevel ( int $level )
void setMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
void setName ( string $name )
void setRatio ( float $ratio )
void skewX ( float $ddegrees )
void skewXTo ( float $degrees )
void skewY ( float $ddegrees )
void skewYTo ( float $degrees )
}

Содержание

  • SWFDisplayItem::addAction — Adds this SWFAction to the given SWFSprite instance
  • SWFDisplayItem::addColor — Adds the given color to this item's color transform
  • SWFDisplayItem::endMask — Another way of defining a MASK layer
  • SWFDisplayItem::getRot — Описание
  • SWFDisplayItem::getX — Описание
  • SWFDisplayItem::getXScale — Описание
  • SWFDisplayItem::getXSkew — Описание
  • SWFDisplayItem::getY — Описание
  • SWFDisplayItem::getYScale — Описание
  • SWFDisplayItem::getYSkew — Описание
  • SWFDisplayItem::move — Moves object in relative coordinates
  • SWFDisplayItem::moveTo — Moves object in global coordinates
  • SWFDisplayItem::multColor — Multiplies the item's color transform
  • SWFDisplayItem::remove — Removes the object from the movie
  • SWFDisplayItem::rotate — Rotates in relative coordinates
  • SWFDisplayItem::rotateTo — Rotates the object in global coordinates
  • SWFDisplayItem::scale — Scales the object in relative coordinates
  • SWFDisplayItem::scaleTo — Scales the object in global coordinates
  • SWFDisplayItem::setDepth — Sets z-order
  • SWFDisplayItem::setMaskLevel — Defines a MASK layer at level
  • SWFDisplayItem::setMatrix — Sets the item's transform matrix
  • SWFDisplayItem::setName — Sets the object's name
  • SWFDisplayItem::setRatio — Sets the object's ratio
  • SWFDisplayItem::skewX — Sets the X-skew
  • SWFDisplayItem::skewXTo — Sets the X-skew
  • SWFDisplayItem::skewY — Sets the Y-skew
  • SWFDisplayItem::skewYTo — Sets the Y-skew


Adds this SWFAction to the given SWFSprite instance

  • « SWFDisplayItem
  • SWFDisplayItem::addColor »
  • PHP Manual
  • SWFDisplayItem
  • Adds this SWFAction to the given SWFSprite instance

SWFDisplayItem::addAction

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::addAction — Adds this SWFAction to the given SWFSprite instance

Описание

void SWFDisplayItem::addAction ( SWFAction $action , int $flags )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

action

An SWFAction, returned by SWFAction::__construct().

flags

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFAction


Adds the given color to this item's color transform

  • « SWFDisplayItem::addAction
  • SWFDisplayItem::endMask »
  • PHP Manual
  • SWFDisplayItem
  • Adds the given color to this item's color transform

SWFDisplayItem::addColor

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::addColor — Adds the given color to this item's color transform

Описание

void SWFDisplayItem::addColor ( int $red , int $green , int $blue [, int $a ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::addcolor() adds the color to this item's color transform. The color is given in its RGB form.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Another way of defining a MASK layer

  • « SWFDisplayItem::addColor
  • SWFDisplayItem::getRot »
  • PHP Manual
  • SWFDisplayItem
  • Another way of defining a MASK layer

SWFDisplayItem::endMask

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::endMask — Another way of defining a MASK layer

Описание

void SWFDisplayItem::endMask ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « SWFDisplayItem::endMask
  • SWFDisplayItem::getX »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getRot

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getRot —

Описание

float SWFDisplayItem::getRot ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Описание

  • « SWFDisplayItem::getRot
  • SWFDisplayItem::getXScale »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getX

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getX —

Описание

float SWFDisplayItem::getX ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getY() - Описание


Описание

  • « SWFDisplayItem::getX
  • SWFDisplayItem::getXSkew »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getXScale

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getXScale —

Описание

float SWFDisplayItem::getXScale ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getYScale() - Описание


Описание

  • « SWFDisplayItem::getXScale
  • SWFDisplayItem::getY »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getXSkew

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getXSkew —

Описание

float SWFDisplayItem::getXSkew ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getYSkew() - Описание


Описание

  • « SWFDisplayItem::getXSkew
  • SWFDisplayItem::getYScale »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getY

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getY —

Описание

float SWFDisplayItem::getY ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getX() - Описание


Описание

  • « SWFDisplayItem::getY
  • SWFDisplayItem::getYSkew »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getYScale

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getYScale —

Описание

float SWFDisplayItem::getYScale ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getXScale() - Описание


Описание

  • « SWFDisplayItem::getYScale
  • SWFDisplayItem::move »
  • PHP Manual
  • SWFDisplayItem
  • Описание

SWFDisplayItem::getYSkew

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::getYSkew —

Описание

float SWFDisplayItem::getYSkew ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFDisplayItem::getXSkew() - Описание


Moves object in relative coordinates

  • « SWFDisplayItem::getYSkew
  • SWFDisplayItem::moveTo »
  • PHP Manual
  • SWFDisplayItem
  • Moves object in relative coordinates

SWFDisplayItem::move

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::move — Moves object in relative coordinates

Описание

void SWFDisplayItem::move ( float $dx , float $dy )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::move() moves the current object by (dx,dy) from its current position.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::moveTo() - Moves object in global coordinates


Moves object in global coordinates

  • « SWFDisplayItem::move
  • SWFDisplayItem::multColor »
  • PHP Manual
  • SWFDisplayItem
  • Moves object in global coordinates

SWFDisplayItem::moveTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::moveTo — Moves object in global coordinates

Описание

void SWFDisplayItem::moveTo ( float $x , float $y )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::moveto() moves the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::move() - Moves object in relative coordinates


Multiplies the item's color transform

  • « SWFDisplayItem::moveTo
  • SWFDisplayItem::remove »
  • PHP Manual
  • SWFDisplayItem
  • Multiplies the item's color transform

SWFDisplayItem::multColor

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::multColor — Multiplies the item's color transform

Описание

void SWFDisplayItem::multColor ( float $red , float $green , float $blue [, float $a ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::multcolor() multiplies the item's color transform by the given values.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Список параметров

These parameters are floats between 0.0 and 1.0:

red

Value of red component

green

Value of green component

blue

Value of blue component

a

Value of alpha component

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

This simple example will modify your picture's atmosphere to Halloween (use a landscape or bright picture).

Пример #1 swfdisplayitem::multcolor() example

<?php

$b = new SWFBitmap(file_get_contents("backyard.jpg"));
// note use your own picture :-)
$s = new SWFShape();
$s->setRightFill($s->addFill($b));
$s->drawLine($b->getWidth(), 0);
$s->drawLine(0, $b->getHeight());
$s->drawLine(-$b->getWidth(), 0);
$s->drawLine(0, -$b->getHeight());

$m = new SWFMovie();
$m->setDimension($b->getWidth(), $b->getHeight());

$i = $m->add($s);

for ($n=0; $n<=20; ++$n) {
  $i->multColor(1.0-$n/10, 1.0, 1.0);
  $i->addColor(0xff*$n/20, 0, 0);
  $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Removes the object from the movie

  • « SWFDisplayItem::multColor
  • SWFDisplayItem::rotate »
  • PHP Manual
  • SWFDisplayItem
  • Removes the object from the movie

SWFDisplayItem::remove

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::remove — Removes the object from the movie

Описание

void SWFDisplayItem::remove ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::remove() removes this object from the movie's display list.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFMovie::add() - Adds any type of data to a movie


Rotates in relative coordinates

  • « SWFDisplayItem::remove
  • SWFDisplayItem::rotateTo »
  • PHP Manual
  • SWFDisplayItem
  • Rotates in relative coordinates

SWFDisplayItem::rotate

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::rotate — Rotates in relative coordinates

Описание

void SWFDisplayItem::rotate ( float $angle )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::rotate() rotates the current object by angle degrees from its current rotation.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::rotateTo() - Rotates the object in global coordinates


Rotates the object in global coordinates

  • « SWFDisplayItem::rotate
  • SWFDisplayItem::scale »
  • PHP Manual
  • SWFDisplayItem
  • Rotates the object in global coordinates

SWFDisplayItem::rotateTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::rotateTo — Rotates the object in global coordinates

Описание

void SWFDisplayItem::rotateTo ( float $angle )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::rotateto() set the current object rotation to angle degrees in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

This example bring three rotating string from the background to the foreground. Pretty nice.

Пример #1 swfdisplayitem::rotateto() example

<?php
$thetext =  "ming!";

$f = new SWFFont("Bauhaus 93.fdb");

$m = new SWFMovie();
$m->setRate(24.0);
$m->setDimension(2400, 1600);
$m->setBackground(0xff, 0xff, 0xff);

// functions with huge numbers of arbitrary
// arguments are always a good idea!  Really!

function text($r, $g, $b, $a, $rot, $x, $y, $scale, $string)
{
  global $f, $m;

  $t = new SWFText();
  $t->setFont($f);
  $t->setColor($r, $g, $b, $a);
  $t->setHeight(960);
  $t->moveTo(-($f->getWidth($string))/2, $f->getAscent()/2);
  $t->addString($string);

  // we can add properties just like a normal PHP var,
  // as long as the names aren't already used.
  // e.g., we can't set $i->scale, because that's a function

  $i = $m->add($t);
  $i->x = $x;
  $i->y = $y;
  $i->rot = $rot;
  $i->s = $scale;
  $i->rotateTo($rot);
  $i->scale($scale, $scale);

  // but the changes are local to the function, so we have to
  // return the changed object.  kinda weird..

  return $i;
}

function step($i)
{
  $oldrot = $i->rot;
  $i->rot = 19*$i->rot/20;
  $i->x = (19*$i->x + 1200)/20;
  $i->y = (19*$i->y + 800)/20;
  $i->s = (19*$i->s + 1.0)/20;

  $i->rotateTo($i->rot);
  $i->scaleTo($i->s, $i->s);
  $i->moveTo($i->x, $i->y);

  return $i;
}

// see?  it sure paid off in legibility:

$i1 = text(0xff, 0x33, 0x33, 0xff, 900, 1200, 800, 0.03, $thetext);
$i2 = text(0x00, 0x33, 0xff, 0x7f, -560, 1200, 800, 0.04, $thetext);
$i3 = text(0xff, 0xff, 0xff, 0x9f, 180, 1200, 800, 0.001, $thetext);

for ($i=1; $i<=100; ++$i) {
  $i1 = step($i1);
  $i2 = step($i2);
  $i3 = step($i3);

  $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Смотрите также

  • SWFDisplayItem::rotate() - Rotates in relative coordinates


Scales the object in relative coordinates

  • « SWFDisplayItem::rotateTo
  • SWFDisplayItem::scaleTo »
  • PHP Manual
  • SWFDisplayItem
  • Scales the object in relative coordinates

SWFDisplayItem::scale

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::scale — Scales the object in relative coordinates

Описание

void SWFDisplayItem::scale ( float $dx , float $dy )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::scale() scales the current object by (dx,dy) from its current size.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::scaleTo() - Scales the object in global coordinates


Scales the object in global coordinates

  • « SWFDisplayItem::scale
  • SWFDisplayItem::setDepth »
  • PHP Manual
  • SWFDisplayItem
  • Scales the object in global coordinates

SWFDisplayItem::scaleTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::scaleTo — Scales the object in global coordinates

Описание

void SWFDisplayItem::scaleTo ( float $x [, float $y ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::scaleto() scales the current object to (x,y) in global coordinates.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::scale() - Scales the object in relative coordinates


Sets z-order

  • « SWFDisplayItem::scaleTo
  • SWFDisplayItem::setMaskLevel »
  • PHP Manual
  • SWFDisplayItem
  • Sets z-order

SWFDisplayItem::setDepth

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::setDepth — Sets z-order

Описание

void SWFDisplayItem::setDepth ( int $depth )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::setdepth() sets the object's z-order to depth. Depth defaults to the order in which instances are created (by adding a shape/text to a movie)- newer ones are on top of older ones. If two objects are given the same depth, only the later-defined one can be moved.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Defines a MASK layer at level

  • « SWFDisplayItem::setDepth
  • SWFDisplayItem::setMatrix »
  • PHP Manual
  • SWFDisplayItem
  • Defines a MASK layer at level

SWFDisplayItem::setMaskLevel

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::setMaskLevel — Defines a MASK layer at level

Описание

void SWFDisplayItem::setMaskLevel ( int $level )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the item's transform matrix

  • « SWFDisplayItem::setMaskLevel
  • SWFDisplayItem::setName »
  • PHP Manual
  • SWFDisplayItem
  • Sets the item's transform matrix

SWFDisplayItem::setMatrix

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::setMatrix — Sets the item's transform matrix

Описание

void SWFDisplayItem::setMatrix ( float $a , float $b , float $c , float $d , float $x , float $y )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the object's name

  • « SWFDisplayItem::setMatrix
  • SWFDisplayItem::setRatio »
  • PHP Manual
  • SWFDisplayItem
  • Sets the object's name

SWFDisplayItem::setName

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::setName — Sets the object's name

Описание

void SWFDisplayItem::setName ( string $name )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::setname() sets the object's name to name, for targetting with action script. Only useful on sprites.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the object's ratio

  • « SWFDisplayItem::setName
  • SWFDisplayItem::skewX »
  • PHP Manual
  • SWFDisplayItem
  • Sets the object's ratio

SWFDisplayItem::setRatio

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::setRatio — Sets the object's ratio

Описание

void SWFDisplayItem::setRatio ( float $ratio )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::setratio() sets the object's ratio to ratio. Obviously only useful for morphs.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

This simple example will morph nicely three concentric circles.

Пример #1 swfdisplayitem::setname() example

<?php

$p = new SWFMorph();

$g = new SWFGradient();
$g->addEntry(0.0, 0, 0, 0);
$g->addEntry(0.16, 0xff, 0xff, 0xff);
$g->addEntry(0.32, 0, 0, 0);
$g->addEntry(0.48, 0xff, 0xff, 0xff);
$g->addEntry(0.64, 0, 0, 0);
$g->addEntry(0.80, 0xff, 0xff, 0xff);
$g->addEntry(1.00, 0, 0, 0);

$s = $p->getShape1();
$f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
$f->scaleTo(0.05);
$s->setLeftFill($f);
$s->movePenTo(-160, -120);
$s->drawLine(320, 0);
$s->drawLine(0, 240);
$s->drawLine(-320, 0);
$s->drawLine(0, -240);

$g = new SWFGradient();
$g->addEntry(0.0, 0, 0, 0);
$g->addEntry(0.16, 0xff, 0, 0);
$g->addEntry(0.32, 0, 0, 0);
$g->addEntry(0.48, 0, 0xff, 0);
$g->addEntry(0.64, 0, 0, 0);
$g->addEntry(0.80, 0, 0, 0xff);
$g->addEntry(1.00, 0, 0, 0);

$s = $p->getShape2();
$f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
$f->scaleTo(0.05);
$f->skewXTo(1.0);
$s->setLeftFill($f);
$s->movePenTo(-160, -120);
$s->drawLine(320, 0);
$s->drawLine(0, 240);
$s->drawLine(-320, 0);
$s->drawLine(0, -240);

$m = new SWFMovie();
$m->setDimension(320, 240);
$i = $m->add($p);
$i->moveTo(160, 120);

for ($n=0; $n<=1.001; $n+=0.01) {
    $i->setRatio($n);
    $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Sets the X-skew

  • « SWFDisplayItem::setRatio
  • SWFDisplayItem::skewXTo »
  • PHP Manual
  • SWFDisplayItem
  • Sets the X-skew

SWFDisplayItem::skewX

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::skewX — Sets the X-skew

Описание

void SWFDisplayItem::skewX ( float $ddegrees )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::skewx() adds ddegrees to current x-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::skewXTo() - Sets the X-skew
  • SWFDisplayItem::skewY() - Sets the Y-skew
  • SWFDisplayItem::skewYTo() - Sets the Y-skew


Sets the X-skew

  • « SWFDisplayItem::skewX
  • SWFDisplayItem::skewY »
  • PHP Manual
  • SWFDisplayItem
  • Sets the X-skew

SWFDisplayItem::skewXTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::skewXTo — Sets the X-skew

Описание

void SWFDisplayItem::skewXTo ( float $degrees )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::skewxto() sets the x-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more forward, less is more backward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::skewX() - Sets the X-skew
  • SWFDisplayItem::skewY() - Sets the Y-skew
  • SWFDisplayItem::skewYTo() - Sets the Y-skew


Sets the Y-skew

  • « SWFDisplayItem::skewXTo
  • SWFDisplayItem::skewYTo »
  • PHP Manual
  • SWFDisplayItem
  • Sets the Y-skew

SWFDisplayItem::skewY

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::skewY — Sets the Y-skew

Описание

void SWFDisplayItem::skewY ( float $ddegrees )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::skewy() adds ddegrees to current y-skew.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::skewYTo() - Sets the Y-skew
  • SWFDisplayItem::skewX() - Sets the X-skew
  • SWFDisplayItem::skewXTo() - Sets the X-skew


Sets the Y-skew

  • « SWFDisplayItem::skewY
  • SWFFill »
  • PHP Manual
  • SWFDisplayItem
  • Sets the Y-skew

SWFDisplayItem::skewYTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFDisplayItem::skewYTo — Sets the Y-skew

Описание

void SWFDisplayItem::skewYTo ( float $degrees )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfdisplayitem::skewyto() sets the y-skew to degrees. For degrees is 1.0, it means a 45-degree forward slant. More is more upward, less is more downward.

The object may be a swfshape(), a swfbutton(), a swftext() or a swfsprite() object. It must have been added using the swfmovie::add().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFDisplayItem::skewY() - Sets the Y-skew
  • SWFDisplayItem::skewX() - Sets the X-skew
  • SWFDisplayItem::skewXTo() - Sets the X-skew


The SWFFill class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

The SWFFill object allows you to transform (scale, skew, rotate) bitmap and gradient fills.

swffill objects are created by the SWFShape::addFill() method.

Обзор классов

SWFFill {
/* Методы */
void moveTo ( float $x , float $y )
void rotateTo ( float $angle )
void scaleTo ( float $x [, float $y ] )
void skewXTo ( float $x )
void skewYTo ( float $y )
}

Содержание

  • SWFFill::moveTo — Moves fill origin
  • SWFFill::rotateTo — Sets fill's rotation
  • SWFFill::scaleTo — Sets fill's scale
  • SWFFill::skewXTo — Sets fill x-skew
  • SWFFill::skewYTo — Sets fill y-skew


Moves fill origin

  • « SWFFill
  • SWFFill::rotateTo »
  • PHP Manual
  • SWFFill
  • Moves fill origin

SWFFill::moveTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFill::moveTo — Moves fill origin

Описание

void SWFFill::moveTo ( float $x , float $y )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Moves the fill origin to the given global coordinates.

Список параметров

x

X-coordinate

y

Y-coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets fill's rotation

  • « SWFFill::moveTo
  • SWFFill::scaleTo »
  • PHP Manual
  • SWFFill
  • Sets fill's rotation

SWFFill::rotateTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFill::rotateTo — Sets fill's rotation

Описание

void SWFFill::rotateTo ( float $angle )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the fill rotation to the given angle.

Список параметров

angle

The rotation angle, in degrees.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets fill's scale

  • « SWFFill::rotateTo
  • SWFFill::skewXTo »
  • PHP Manual
  • SWFFill
  • Sets fill's scale

SWFFill::scaleTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFill::scaleTo — Sets fill's scale

Описание

void SWFFill::scaleTo ( float $x [, float $y ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the fill scale to the given coordinates.

Список параметров

x

X-coordinate

y

Y-coordinate

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets fill x-skew

  • « SWFFill::scaleTo
  • SWFFill::skewYTo »
  • PHP Manual
  • SWFFill
  • Sets fill x-skew

SWFFill::skewXTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFill::skewXTo — Sets fill x-skew

Описание

void SWFFill::skewXTo ( float $x )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the fill x-skew to x.

Список параметров

x

When x is 1.0, it is a 45-degree forward slant. More is more forward, less is more backward.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFFill::skewYTo() - Sets fill y-skew


Sets fill y-skew

  • « SWFFill::skewXTo
  • SWFFont »
  • PHP Manual
  • SWFFill
  • Sets fill y-skew

SWFFill::skewYTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFill::skewYTo — Sets fill y-skew

Описание

void SWFFill::skewYTo ( float $y )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the fill y-skew to y.

Список параметров

y

When y is 1.0, it is a 45-degree upward slant. More is more upward, less is more downward.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFFill::skewXTo() - Sets fill x-skew


The SWFFont class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

The SWFFont object represent a reference to the font definition, for us with SWFText::setFont() and SWFTextField::setFont().

Обзор классов

SWFFont {
/* Методы */
__construct ( string $filename )
float getAscent ( void )
float getDescent ( void )
float getLeading ( void )
string getShape ( int $code )
float getUTF8Width ( string $string )
float getWidth ( string $string )
}

Содержание

  • SWFFont::__construct — Loads a font definition
  • SWFFont::getAscent — Returns the ascent of the font, or 0 if not available
  • SWFFont::getDescent — Returns the descent of the font, or 0 if not available
  • SWFFont::getLeading — Returns the leading of the font, or 0 if not available
  • SWFFont::getShape — Returns the glyph shape of a char as a text string
  • SWFFont::getUTF8Width — Calculates the width of the given string in this font at full height
  • SWFFont::getWidth — Returns the string's width


Loads a font definition

  • « SWFFont
  • SWFFont::getAscent »
  • PHP Manual
  • SWFFont
  • Loads a font definition

SWFFont::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::__construct — Loads a font definition

Описание

SWFFont::__construct ( string $filename )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

If filename is the name of an FDB file (i.e., it ends in ".fdb"), load the font definition found in said file. Otherwise, create a browser-defined font reference.

FDB ("font definition block") is a very simple wrapper for the SWF DefineFont2 block which contains a full description of a font. One may create FDB files from SWT Generator template files with the included makefdb utility- look in the util directory off the main ming distribution directory.

Browser-defined fonts don't contain any information about the font other than its name. It is assumed that the font definition will be provided by the movie player. The fonts _serif, _sans, and _typewriter should always be available. For example:

<?php
$f = newSWFFont("_sans");
?>
will give you the standard sans-serif font, probably the same as what you'd get with <font name="sans-serif"> in HTML.


Returns the ascent of the font, or 0 if not available

  • « SWFFont::__construct
  • SWFFont::getDescent »
  • PHP Manual
  • SWFFont
  • Returns the ascent of the font, or 0 if not available

SWFFont::getAscent

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getAscent — Returns the ascent of the font, or 0 if not available

Описание

float SWFFont::getAscent ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFFont::getDescent() - Returns the descent of the font, or 0 if not available


Returns the descent of the font, or 0 if not available

  • « SWFFont::getAscent
  • SWFFont::getLeading »
  • PHP Manual
  • SWFFont
  • Returns the descent of the font, or 0 if not available

SWFFont::getDescent

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getDescent — Returns the descent of the font, or 0 if not available

Описание

float SWFFont::getDescent ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFFont::getAscent() - Returns the ascent of the font, or 0 if not available


Returns the leading of the font, or 0 if not available

  • « SWFFont::getDescent
  • SWFFont::getShape »
  • PHP Manual
  • SWFFont
  • Returns the leading of the font, or 0 if not available

SWFFont::getLeading

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getLeading — Returns the leading of the font, or 0 if not available

Описание

float SWFFont::getLeading ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns the glyph shape of a char as a text string

  • « SWFFont::getLeading
  • SWFFont::getUTF8Width »
  • PHP Manual
  • SWFFont
  • Returns the glyph shape of a char as a text string

SWFFont::getShape

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getShape — Returns the glyph shape of a char as a text string

Описание

string SWFFont::getShape ( int $code )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Calculates the width of the given string in this font at full height

  • « SWFFont::getShape
  • SWFFont::getWidth »
  • PHP Manual
  • SWFFont
  • Calculates the width of the given string in this font at full height

SWFFont::getUTF8Width

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getUTF8Width — Calculates the width of the given string in this font at full height

Описание

float SWFFont::getUTF8Width ( string $string )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFFont::getWidth() - Returns the string's width


Returns the string's width

  • « SWFFont::getUTF8Width
  • SWFFontChar »
  • PHP Manual
  • SWFFont
  • Returns the string's width

SWFFont::getWidth

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFont::getWidth — Returns the string's width

Описание

float SWFFont::getWidth ( string $string )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swffont::getwidth() returns the string string's width, using font's default scaling. You'll probably want to use the swftext() version of this method which uses the text object's scale.

Смотрите также

  • SWFFont::getUTF8Width() - Calculates the width of the given string in this font at full height


The SWFFontChar class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFFontChar.

Обзор классов

SWFFontChar {
/* Методы */
void addChars ( string $char )
void addUTF8Chars ( string $char )
}

Содержание

  • SWFFontChar::addChars — Adds characters to a font for exporting font
  • SWFFontChar::addUTF8Chars — Adds characters to a font for exporting font


Adds characters to a font for exporting font

  • « SWFFontChar
  • SWFFontChar::addUTF8Chars »
  • PHP Manual
  • SWFFontChar
  • Adds characters to a font for exporting font

SWFFontChar::addChars

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFontChar::addChars — Adds characters to a font for exporting font

Описание

void SWFFontChar::addChars ( string $char )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFFontChar::addUTF8Chars() - Adds characters to a font for exporting font


Adds characters to a font for exporting font

  • « SWFFontChar::addChars
  • SWFGradient »
  • PHP Manual
  • SWFFontChar
  • Adds characters to a font for exporting font

SWFFontChar::addUTF8Chars

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFFontChar::addUTF8Chars — Adds characters to a font for exporting font

Описание

void SWFFontChar::addUTF8Chars ( string $char )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFFontChar::addChars() - Adds characters to a font for exporting font


The SWFGradient class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFGradient.

Обзор классов

SWFGradient {
/* Методы */
void addEntry ( float $ratio , int $red , int $green , int $blue [, int $alpha = 255 ] )
__construct ( void )
}

Содержание

  • SWFGradient::addEntry — Adds an entry to the gradient list
  • SWFGradient::__construct — Creates a gradient object


Adds an entry to the gradient list

  • « SWFGradient
  • SWFGradient::__construct »
  • PHP Manual
  • SWFGradient
  • Adds an entry to the gradient list

SWFGradient::addEntry

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFGradient::addEntry — Adds an entry to the gradient list

Описание

void SWFGradient::addEntry ( float $ratio , int $red , int $green , int $blue [, int $alpha = 255 ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfgradient::addentry() adds an entry to the gradient list. ratio is a number between 0 and 1 indicating where in the gradient this color appears. Thou shalt add entries in order of increasing ratio.

red, green, blue is a color (RGB mode).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Creates a gradient object

  • « SWFGradient::addEntry
  • SWFMorph »
  • PHP Manual
  • SWFGradient
  • Creates a gradient object

SWFGradient::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFGradient::__construct — Creates a gradient object

Описание

SWFGradient::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfgradient() creates a new SWFGradient object.

After you've added the entries to your gradient, you can use the gradient in a shape fill with the swfshape::addfill() method.

SWFGradient has the following methods : swfgradient::addentry().

This simple example will draw a big black-to-white gradient as background, and a reddish disc in its center.

Пример #1 swfgradient() example

<?php

  $m = new SWFMovie();
  $m->setDimension(320, 240);

  $s = new SWFShape();

  // first gradient- black to white
  $g = new SWFGradient();
  $g->addEntry(0.0, 0, 0, 0);
  $g->addEntry(1.0, 0xff, 0xff, 0xff);

  $f = $s->addFill($g, SWFFILL_LINEAR_GRADIENT);
  $f->scaleTo(0.01);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  $s = new SWFShape();

  // second gradient- radial gradient from red to transparent
  $g = new SWFGradient();
  $g->addEntry(0.0, 0xff, 0, 0, 0xff);
  $g->addEntry(1.0, 0xff, 0, 0, 0);

  $f = $s->addFill($g, SWFFILL_RADIAL_GRADIENT);
  $f->scaleTo(0.005);
  $f->moveTo(160, 120);
  $s->setRightFill($f);
  $s->drawLine(320, 0);
  $s->drawLine(0, 240);
  $s->drawLine(-320, 0);
  $s->drawLine(0, -240);

  $m->add($s);

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>


The SWFMorph class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

The methods here are sort of weird. It would make more sense to just have newSWFMorph(shape1, shape2);, but as things are now, shape2 needs to know that it's the second part of a morph. (This, because it starts writing its output as soon as it gets drawing commands- if it kept its own description of its shapes and wrote on completion this and some other things would be much easier.)

Обзор классов

SWFMorph {
/* Методы */
__construct ( void )
SWFShape getShape1 ( void )
SWFShape getShape2 ( void )
}

Содержание

  • SWFMorph::__construct — Creates a new SWFMorph object
  • SWFMorph::getShape1 — Gets a handle to the starting shape
  • SWFMorph::getShape2 — Gets a handle to the ending shape


Creates a new SWFMorph object

  • « SWFMorph
  • SWFMorph::getShape1 »
  • PHP Manual
  • SWFMorph
  • Creates a new SWFMorph object

SWFMorph::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMorph::__construct — Creates a new SWFMorph object

Описание

SWFMorph::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Creates a new SWFMorph object.

Also called a "shape tween". This thing lets you make those tacky twisting things that make your computer choke. Oh, joy!

Примеры

This simple example will morph a big red square into a smaller blue black-bordered square.

Пример #1 swfmorph() example

<?php
  $p = new SWFMorph();

  $s = $p->getShape1();
  $s->setLine(0, 0, 0, 0);

  /* Note that this is backwards from normal shapes (left instead of right).
     I have no idea why, but this seems to work.. */

  $s->setLeftFill($s->addFill(0xff, 0, 0));
  $s->movePenTo(-1000,-1000);
  $s->drawLine(2000,0);
  $s->drawLine(0,2000);
  $s->drawLine(-2000,0);
  $s->drawLine(0,-2000);

  $s = $p->getShape2();
  $s->setLine(60,0,0,0);
  $s->setLeftFill($s->addFill(0, 0, 0xff));
  $s->movePenTo(0,-1000);
  $s->drawLine(1000,1000);
  $s->drawLine(-1000,1000);
  $s->drawLine(-1000,-1000);
  $s->drawLine(1000,-1000);

  $m = new SWFMovie();
  $m->setDimension(3000,2000);
  $m->setBackground(0xff, 0xff, 0xff);

  $i = $m->add($p);
  $i->moveTo(1500,1000);

  for ($r=0.0; $r<=1.0; $r+=0.1) {
    $i->setRatio($r);
    $m->nextFrame();
  }

  header('Content-type: application/x-shockwave-flash');
  $m->output();
?>


Gets a handle to the starting shape

  • « SWFMorph::__construct
  • SWFMorph::getShape2 »
  • PHP Manual
  • SWFMorph
  • Gets a handle to the starting shape

SWFMorph::getShape1

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMorph::getShape1 — Gets a handle to the starting shape

Описание

SWFShape SWFMorph::getShape1 ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Gets the morph's starting shape.

Возвращаемые значения

Returns a SWFShape object.

Смотрите также

  • SWFMorph::getShape2() - Gets a handle to the ending shape


Gets a handle to the ending shape

  • « SWFMorph::getShape1
  • SWFMovie »
  • PHP Manual
  • SWFMorph
  • Gets a handle to the ending shape

SWFMorph::getShape2

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMorph::getShape2 — Gets a handle to the ending shape

Описание

SWFShape SWFMorph::getShape2 ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Gets the morph's ending shape.

Возвращаемые значения

Returns a SWFShape object.

Смотрите также

  • SWFMorph::getShape1() - Gets a handle to the starting shape


The SWFMovie class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFMovie is a movie object representing an SWF movie.

Обзор классов

SWFMovie {
/* Методы */
mixed add ( object $instance )
void addExport ( SWFCharacter $char , string $name )
mixed addFont ( SWFFont $font )
__construct ([ int $version ] )
SWFSprite importChar ( string $libswf , string $name )
SWFFontChar importFont ( string $libswf , string $name )
void labelFrame ( string $label )
void nextFrame ( void )
int output ([ int $compression ] )
void remove ( object $instance )
int save ( string $filename [, int $compression = -1 ] )
int saveToFile ( resource $x [, int $compression = -1 ] )
void setbackground ( int $red , int $green , int $blue )
void setDimension ( float $width , float $height )
void setFrames ( int $number )
void setRate ( float $rate )
SWFSoundInstance startSound ( SWFSound $sound )
void stopSound ( SWFSound $sound )
int streamMP3 ( mixed $mp3file [, float $skip = 0 ] )
void writeExports ( void )
}

Содержание

  • SWFMovie::add — Adds any type of data to a movie
  • SWFMovie::addExport — Описание
  • SWFMovie::addFont — Описание
  • SWFMovie::__construct — Creates a new movie object, representing an SWF version 4 movie
  • SWFMovie::importChar — Описание
  • SWFMovie::importFont — Описание
  • SWFMovie::labelFrame — Labels a frame
  • SWFMovie::nextFrame — Moves to the next frame of the animation
  • SWFMovie::output — Dumps your lovingly prepared movie out
  • SWFMovie::remove — Removes the object instance from the display list
  • SWFMovie::save — Saves the SWF movie in a file
  • SWFMovie::saveToFile — Описание
  • SWFMovie::setbackground — Sets the background color
  • SWFMovie::setDimension — Sets the movie's width and height
  • SWFMovie::setFrames — Sets the total number of frames in the animation
  • SWFMovie::setRate — Sets the animation's frame rate
  • SWFMovie::startSound — Описание
  • SWFMovie::stopSound — Описание
  • SWFMovie::streamMP3 — Streams a MP3 file
  • SWFMovie::writeExports — Описание


Adds any type of data to a movie

  • « SWFMovie
  • SWFMovie::addExport »
  • PHP Manual
  • SWFMovie
  • Adds any type of data to a movie

SWFMovie::add

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::add — Adds any type of data to a movie

Описание

mixed SWFMovie::add ( object $instance )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Adds an SWF object instance to the current movie.

Список параметров

instance

Any type of object instance, like SWFShape, SWFText, SWFFont.

Возвращаемые значения

For displayable types (shape, text, button, sprite), this returns an SWFDisplayItem, a handle to the object in a display list. Thus, you can add the same shape to a movie multiple times and get separate handles back for each separate instance.

Смотрите также

  • SWFMovie::remove() - Removes the object instance from the display list


Описание

  • « SWFMovie::add
  • SWFMovie::addFont »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::addExport

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::addExport —

Описание

void SWFMovie::addExport ( SWFCharacter $char , string $name )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « SWFMovie::addExport
  • SWFMovie::__construct »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::addFont

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::addFont —

Описание

mixed SWFMovie::addFont ( SWFFont $font )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Creates a new movie object, representing an SWF version 4 movie

  • « SWFMovie::addFont
  • SWFMovie::importChar »
  • PHP Manual
  • SWFMovie
  • Creates a new movie object, representing an SWF version 4 movie

SWFMovie::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::__construct — Creates a new movie object, representing an SWF version 4 movie

Описание

SWFMovie::__construct ([ int $version ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Creates a new movie object, representing an SWF movie.

Список параметров

version

The desired SWF version. Default is 4.


Описание

  • « SWFMovie::__construct
  • SWFMovie::importFont »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::importChar

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::importChar —

Описание

SWFSprite SWFMovie::importChar ( string $libswf , string $name )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFMovie::importFont() - Описание


Описание

  • « SWFMovie::importChar
  • SWFMovie::labelFrame »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::importFont

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::importFont —

Описание

SWFFontChar SWFMovie::importFont ( string $libswf , string $name )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFMovie::importChar() - Описание


Labels a frame

  • « SWFMovie::importFont
  • SWFMovie::nextFrame »
  • PHP Manual
  • SWFMovie
  • Labels a frame

SWFMovie::labelFrame

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::labelFrame — Labels a frame

Описание

void SWFMovie::labelFrame ( string $label )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Moves to the next frame of the animation

  • « SWFMovie::labelFrame
  • SWFMovie::output »
  • PHP Manual
  • SWFMovie
  • Moves to the next frame of the animation

SWFMovie::nextFrame

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::nextFrame — Moves to the next frame of the animation

Описание

void SWFMovie::nextFrame ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Moves to the next frame of the animation.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Dumps your lovingly prepared movie out

  • « SWFMovie::nextFrame
  • SWFMovie::remove »
  • PHP Manual
  • SWFMovie
  • Dumps your lovingly prepared movie out

SWFMovie::output

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::output — Dumps your lovingly prepared movie out

Описание

int SWFMovie::output ([ int $compression ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Dumps the SWFMovie.

Don't forget to send the Content-Type HTTP header file before using this function, in order to display the movie in a browser.

Список параметров

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

Возвращаемые значения

Return the number of bytes written or FALSE on error.

Примеры

Пример #1 Displaying your $movie in a browser

<?php
header('Content-type: application/x-shockwave-flash');
$movie->output();
?>

Смотрите также

  • SWFMovie::save() - Saves the SWF movie in a file
  • SWFMovie::saveToFile() - Описание


Removes the object instance from the display list

  • « SWFMovie::output
  • SWFMovie::save »
  • PHP Manual
  • SWFMovie
  • Removes the object instance from the display list

SWFMovie::remove

(PHP 5.2.1-5.3.0, PHP 7, PECL ming SVN)

SWFMovie::remove — Removes the object instance from the display list

Описание

void SWFMovie::remove ( object $instance )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Removes the given object instance from the display list.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFMovie::add() - Adds any type of data to a movie


Saves the SWF movie in a file

  • « SWFMovie::remove
  • SWFMovie::saveToFile »
  • PHP Manual
  • SWFMovie
  • Saves the SWF movie in a file

SWFMovie::save

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::save — Saves the SWF movie in a file

Описание

int SWFMovie::save ( string $filename [, int $compression = -1 ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Saves the SWF movie to the specified filename.

Список параметров

filename

The path to the saved SWF document.

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

Возвращаемые значения

Return the number of bytes written or FALSE on error.

Смотрите также

  • SWFMovie::output() - Dumps your lovingly prepared movie out
  • SWFMovie::saveToFile() - Описание


Описание

  • « SWFMovie::save
  • SWFMovie::setbackground »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::saveToFile

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::saveToFile —

Описание

int SWFMovie::saveToFile ( resource $x [, int $compression = -1 ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

X

compression

The compression level can be a value between 0 and 9, defining the SWF compression similar to gzip compression.

This parameter is only available as of Flash MX (6).

Возвращаемые значения

Return the number of bytes written or FALSE on error.

Смотрите также

  • SWFMovie::output() - Dumps your lovingly prepared movie out
  • SWFMovie::save() - Saves the SWF movie in a file


Sets the background color

  • « SWFMovie::saveToFile
  • SWFMovie::setDimension »
  • PHP Manual
  • SWFMovie
  • Sets the background color

SWFMovie::setbackground

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::setbackground — Sets the background color

Описание

void SWFMovie::setbackground ( int $red , int $green , int $blue )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the background color.

Why is there no rgba version? Think about it, you might want to let the HTML background show through. There's a way to do that, but it only works on IE4. Search the » http://www.macromedia.com/ site for details.

Список параметров

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the movie's width and height

  • « SWFMovie::setbackground
  • SWFMovie::setFrames »
  • PHP Manual
  • SWFMovie
  • Sets the movie's width and height

SWFMovie::setDimension

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::setDimension — Sets the movie's width and height

Описание

void SWFMovie::setDimension ( float $width , float $height )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the movie's dimension to the specified width and height.

Список параметров

width

The movie width.

height

The movie height.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the total number of frames in the animation

  • « SWFMovie::setDimension
  • SWFMovie::setRate »
  • PHP Manual
  • SWFMovie
  • Sets the total number of frames in the animation

SWFMovie::setFrames

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::setFrames — Sets the total number of frames in the animation

Описание

void SWFMovie::setFrames ( int $number )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the total number of frames in the animation to the given number.

Список параметров

number

The number of frames.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the animation's frame rate

  • « SWFMovie::setFrames
  • SWFMovie::startSound »
  • PHP Manual
  • SWFMovie
  • Sets the animation's frame rate

SWFMovie::setRate

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::setRate — Sets the animation's frame rate

Описание

void SWFMovie::setRate ( float $rate )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Sets the frame rate to the specified rate.

Animation will slow down if the player can't render frames fast enough- unless there's a streaming sound, in which case display frames are sacrificed to keep sound from skipping.

Список параметров

rate

The frame rate, in frame per seconds.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « SWFMovie::setRate
  • SWFMovie::stopSound »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::startSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::startSound —

Описание

SWFSoundInstance SWFMovie::startSound ( SWFSound $sound )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFMovie::stopSound() - Описание


Описание

  • « SWFMovie::startSound
  • SWFMovie::streamMP3 »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::stopSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::stopSound —

Описание

void SWFMovie::stopSound ( SWFSound $sound )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFMovie::startSound() - Описание


Streams a MP3 file

  • « SWFMovie::stopSound
  • SWFMovie::writeExports »
  • PHP Manual
  • SWFMovie
  • Streams a MP3 file

SWFMovie::streamMP3

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::streamMP3 — Streams a MP3 file

Описание

int SWFMovie::streamMP3 ( mixed $mp3file [, float $skip = 0 ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Streams the given MP3 file mp3file.

This method is not very robust in dealing with oddities (can skip over an initial ID3 tag, but that's about it).

Note that the movie isn't smart enough to put enough frames in to contain the entire mp3 stream- you'll have to add (length of song * frames per second) frames to get the entire stream in.

Список параметров

mp3file

Can be a file pointer returned by fopen() or the MP3 data, as a binary string.

skip

Number of seconds to skip.

Возвращаемые значения

Return number of frames.

Список изменений

Версия | Описание
5.2.0 | skip added

Примеры

Пример #1 Streaming example

<?php
$m = new SWFMovie();
$m->setRate(12.0);
$m->streamMp3(file_get_contents("distortobass.mp3"));
// use your own MP3

// The file is 11.85 seconds at 12.0 fps = 142 frames
$m->setFrames(142);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Описание

  • « SWFMovie::streamMP3
  • SWFPrebuiltClip »
  • PHP Manual
  • SWFMovie
  • Описание

SWFMovie::writeExports

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFMovie::writeExports —

Описание

void SWFMovie::writeExports ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The SWFPrebuiltClip class

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

Введение

SWFPrebuiltClip.

Обзор классов

SWFPrebuiltClip {
/* Методы */
__construct ( mixed $file )
}

Содержание

  • SWFPrebuiltClip::__construct — Возвращает объект класса SWFPrebuiltClip


Возвращает объект класса SWFPrebuiltClip

  • « SWFPrebuiltClip
  • SWFShape »
  • PHP Manual
  • SWFPrebuiltClip
  • Возвращает объект класса SWFPrebuiltClip

SWFPrebuiltClip::__construct

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFPrebuiltClip::__construct — Возвращает объект класса SWFPrebuiltClip

Описание

SWFPrebuiltClip::__construct ( mixed $file )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


The SWFShape class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFShape.

Обзор классов

SWFShape {
/* Методы */
SWFFill addFill ( int $red , int $green , int $blue [, int $alpha = 255 ] )
__construct ( void )
void drawArc ( float $r , float $startAngle , float $endAngle )
void drawCircle ( float $r )
int drawCubic ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
int drawCubicTo ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
int drawCurve ( float $controldx , float $controldy , float $anchordx , float $anchordy [, float $targetdx ], float $targetdy )
int drawCurveTo ( float $controlx , float $controly , float $anchorx , float $anchory [, float $targetx ], float $targety )
void drawGlyph ( SWFFont $font , string $character [, int $size ] )
void drawLine ( float $dx , float $dy )
void drawLineTo ( float $x , float $y )
void movePen ( float $dx , float $dy )
void movePenTo ( float $x , float $y )
void setLeftFill ( SWFGradient $fill )
void setLine ( SWFShape $shape )
void setRightFill ( SWFGradient $fill )
}

Содержание

  • SWFShape::addFill — Adds a solid fill to the shape
  • SWFShape::__construct — Creates a new shape object
  • SWFShape::drawArc — Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock
  • SWFShape::drawCircle — Draws a circle of radius r centered at the current location, in a counter-clockwise fashion
  • SWFShape::drawCubic — Draws a cubic bezier curve using the current position and the three given points as control points
  • SWFShape::drawCubicTo — Draws a cubic bezier curve using the current position and the three given points as control points
  • SWFShape::drawCurve — Draws a curve (relative)
  • SWFShape::drawCurveTo — Draws a curve
  • SWFShape::drawGlyph — Draws the first character in the given string into the shape using the glyph definition from the given font
  • SWFShape::drawLine — Draws a line (relative)
  • SWFShape::drawLineTo — Draws a line
  • SWFShape::movePen — Moves the shape's pen (relative)
  • SWFShape::movePenTo — Moves the shape's pen
  • SWFShape::setLeftFill — Sets left rasterizing color
  • SWFShape::setLine — Sets the shape's line style
  • SWFShape::setRightFill — Sets right rasterizing color


Adds a solid fill to the shape

  • « SWFShape
  • SWFShape::__construct »
  • PHP Manual
  • SWFShape
  • Adds a solid fill to the shape

SWFShape::addFill

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::addFill — Adds a solid fill to the shape

Описание

SWFFill SWFShape::addFill ( int $red , int $green , int $blue [, int $alpha = 255 ] )
SWFFill addFill ( SWFBitmap $bitmap [, int $flags ] )
SWFFill addFill ( SWFGradient $gradient [, int $flags ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

SWFShape::addFill() adds a solid fill to the shape's list of fill styles. SWFShape::addFill() accepts three different types of arguments.

red, green, blue is a color (RGB mode).

The bitmap argument is an SWFBitmap() object. The flags argument can be one of the following values: SWFFILL_CLIPPED_BITMAP, SWFFILL_TILED_BITMAP, SWFFILL_LINEAR_GRADIENT or SWFFILL_RADIAL_GRADIENT. Default is SWFFILL_TILED_BITMAP for SWFBitmap and SWFFILL_LINEAR_GRADIENT for SWFGradient.

The gradient argument is an SWFGradient() object. The flags argument can be one of the following values : SWFFILL_RADIAL_GRADIENT or SWFFILL_LINEAR_GRADIENT. Default is SWFFILL_LINEAR_GRADIENT. I'm sure about this one. Really.

SWFShape::addFill() returns an SWFFill()
object for use with the SWFShape::setLeftFill()
and SWFShape::setRightFill() functions
described below.

Примеры

This simple example will draw a frame on a bitmap. Ah, here's another buglet in the flash player- it doesn't seem to care about the second shape's bitmap's transformation in a morph. According to spec, the bitmap should stretch along with the shape in this example..

Пример #1 SWFShape::addFill() example

<?php

$p = new SWFMorph();

$b = new SWFBitmap(file_get_contents("alphafill.jpg"));
// use your own bitmap
$width = $b->getWidth();
$height = $b->getHeight();

$s = $p->getShape1();
$f = $s->addFill($b, SWFFILL_TILED_BITMAP);
$f->moveTo(-$width/2, -$height/4);
$f->scaleTo(1.0, 0.5);
$s->setLeftFill($f);
$s->movePenTo(-$width/2, -$height/4);
$s->drawLine($width, 0);
$s->drawLine(0, $height/2);
$s->drawLine(-$width, 0);
$s->drawLine(0, -$height/2);

$s = $p->getShape2();
$f = $s->addFill($b, SWFFILL_TILED_BITMAP);

// these two have no effect!
$f->moveTo(-$width/4, -$height/2);
$f->scaleTo(0.5, 1.0);

$s->setLeftFill($f);
$s->movePenTo(-$width/4, -$height/2);
$s->drawLine($width/2, 0);
$s->drawLine(0, $height);
$s->drawLine(-$width/2, 0);
$s->drawLine(0, -$height);

$m = new SWFMovie();
$m->setDimension($width, $height);
$i = $m->add($p);
$i->moveTo($width/2, $height/2);

for ($n=0; $n<1.001; $n+=0.03) {
    $i->setRatio($n);
    $m->nextFrame();
}

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Смотрите также

  • SWFShape::setLeftFill() - Sets left rasterizing color
  • SWFShape::setRightFill() - Sets right rasterizing color


Creates a new shape object

  • « SWFShape::addFill
  • SWFShape::drawArc »
  • PHP Manual
  • SWFShape
  • Creates a new shape object

SWFShape::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::__construct — Creates a new shape object

Описание

SWFShape::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Created a new SWFShape object.

Примеры

This simple example will draw a big red elliptic quadrant.

Пример #1 swfshape() example

<?php
$s = new SWFShape();
$s->setLine(40, 0x7f, 0, 0);
$s->setRightFill($s->addFill(0xff, 0, 0));
$s->movePenTo(200, 200);
$s->drawLineTo(6200, 200);
$s->drawLineTo(6200, 4600);
$s->drawCurveTo(200, 4600, 200, 200);

$m = new SWFMovie();
$m->setDimension(6400, 4800);
$m->setRate(12.0);
$m->add($s);
$m->nextFrame();

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock

  • « SWFShape::__construct
  • SWFShape::drawCircle »
  • PHP Manual
  • SWFShape
  • Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock

SWFShape::drawArc

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawArc — Draws an arc of radius r centered at the current location, from angle startAngle to angle endAngle measured clockwise from 12 o'clock

Описание

void SWFShape::drawArc ( float $r , float $startAngle , float $endAngle )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::drawCircle() - Draws a circle of radius r centered at the current location, in a counter-clockwise fashion


Draws a circle of radius r centered at the current location, in a counter-clockwise fashion

  • « SWFShape::drawArc
  • SWFShape::drawCubic »
  • PHP Manual
  • SWFShape
  • Draws a circle of radius r centered at the current location, in a counter-clockwise fashion

SWFShape::drawCircle

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawCircle — Draws a circle of radius r centered at the current location, in a counter-clockwise fashion

Описание

void SWFShape::drawCircle ( float $r )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a cubic bezier curve using the current position and the three given points as control points

  • « SWFShape::drawCircle
  • SWFShape::drawCubicTo »
  • PHP Manual
  • SWFShape
  • Draws a cubic bezier curve using the current position and the three given points as control points

SWFShape::drawCubic

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawCubic — Draws a cubic bezier curve using the current position and the three given points as control points

Описание

int SWFShape::drawCubic ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFShape::drawCubicTo() - Draws a cubic bezier curve using the current position and the three given points as control points


Draws a cubic bezier curve using the current position and the three given points as control points

  • « SWFShape::drawCubic
  • SWFShape::drawCurve »
  • PHP Manual
  • SWFShape
  • Draws a cubic bezier curve using the current position and the three given points as control points

SWFShape::drawCubicTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawCubicTo — Draws a cubic bezier curve using the current position and the three given points as control points

Описание

int SWFShape::drawCubicTo ( float $bx , float $by , float $cx , float $cy , float $dx , float $dy )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFShape::drawCubic() - Draws a cubic bezier curve using the current position and the three given points as control points


Draws a curve (relative)

  • « SWFShape::drawCubicTo
  • SWFShape::drawCurveTo »
  • PHP Manual
  • SWFShape
  • Draws a curve (relative)

SWFShape::drawCurve

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawCurve — Draws a curve (relative)

Описание

int SWFShape::drawCurve ( float $controldx , float $controldy , float $anchordx , float $anchordy [, float $targetdx ], float $targetdy )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape::drawcurve() draws a quadratic curve (using the current line style,set by swfshape::setline()) from the current pen position to the relative position (anchorx,anchory) using relative control point (controlx,controly). That is, head towards the control point, then smoothly turn to the anchor point.

With 6 parameters, it draws a cubic bezier to point (x+targetdx, x+targetdy) with control points (x+controldx, y+controldy) and (x+anchordx, y+anchordy).

Смотрите также

  • SWFShape::drawCurve()


Draws a curve

  • « SWFShape::drawCurve
  • SWFShape::drawGlyph »
  • PHP Manual
  • SWFShape
  • Draws a curve

SWFShape::drawCurveTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawCurveTo — Draws a curve

Описание

int SWFShape::drawCurveTo ( float $controlx , float $controly , float $anchorx , float $anchory [, float $targetx ], float $targety )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape::drawcurveto() draws a quadratic curve (using the current line style, set by swfshape::setline()) from the current pen position to (anchorx,anchory) using (controlx,controly) as a control point. That is, head towards the control point, then smoothly turn to the anchor point.

With 6 parameters, it draws a cubic bezier to point (targetx, targety) with control points (controlx, controly) and (anchorx, anchory).

Смотрите также

  • SWFShape::drawCurveTo()


Draws the first character in the given string into the shape using the glyph definition from the given font

  • « SWFShape::drawCurveTo
  • SWFShape::drawLine »
  • PHP Manual
  • SWFShape
  • Draws the first character in the given string into the shape using the glyph definition from the given font

SWFShape::drawGlyph

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawGlyph — Draws the first character in the given string into the shape using the glyph definition from the given font

Описание

void SWFShape::drawGlyph ( SWFFont $font , string $character [, int $size ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Draws a line (relative)

  • « SWFShape::drawGlyph
  • SWFShape::drawLineTo »
  • PHP Manual
  • SWFShape
  • Draws a line (relative)

SWFShape::drawLine

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawLine — Draws a line (relative)

Описание

void SWFShape::drawLine ( float $dx , float $dy )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape::drawline() draws a line (using the current line style set by swfshape::setline()) from the current pen position to displacement (dx,dy).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::drawLineTo() - Draws a line


Draws a line

  • « SWFShape::drawLine
  • SWFShape::movePen »
  • PHP Manual
  • SWFShape
  • Draws a line

SWFShape::drawLineTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::drawLineTo — Draws a line

Описание

void SWFShape::drawLineTo ( float $x , float $y )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape::setrightfill() draws a line (using the current line style, set by swfshape::setline()) from the current pen position to point (x,y) in the shape's coordinate space.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::drawLine() - Draws a line (relative)


Moves the shape's pen (relative)

  • « SWFShape::drawLineTo
  • SWFShape::movePenTo »
  • PHP Manual
  • SWFShape
  • Moves the shape's pen (relative)

SWFShape::movePen

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::movePen — Moves the shape's pen (relative)

Описание

void SWFShape::movePen ( float $dx , float $dy )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape::setrightfill() move the shape's pen from coordinates (current x,current y) to (current x + dx, current y + dy) in the shape's coordinate space.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::movePenTo() - Moves the shape's pen


Moves the shape's pen

  • « SWFShape::movePen
  • SWFShape::setLeftFill »
  • PHP Manual
  • SWFShape
  • Moves the shape's pen

SWFShape::movePenTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::movePenTo — Moves the shape's pen

Описание

void SWFShape::movePenTo ( float $x , float $y )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape::setrightfill() move the shape's pen to (x,y) in the shape's coordinate space.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::movePen() - Moves the shape's pen (relative)


Sets left rasterizing color

  • « SWFShape::movePenTo
  • SWFShape::setLine »
  • PHP Manual
  • SWFShape
  • Sets left rasterizing color

SWFShape::setLeftFill

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::setLeftFill — Sets left rasterizing color

Описание

void SWFShape::setLeftFill ( SWFGradient $fill )
void setLeftFill ( int $red , int $green , int $blue [, int $a ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

What this nonsense is about is, every edge segment borders at most two fills. When rasterizing the object, it's pretty handy to know what those fills are ahead of time, so the swf format requires these to be specified.

swfshape::setleftfill() sets the fill on the left side of the edge- that is, on the interior if you're defining the outline of the shape in a counter-clockwise fashion. The fill object is an SWFFill object returned from one of the addFill functions above.

This seems to be reversed when you're defining a shape in a morph, though. If your browser crashes, just try setting the fill on the other side.

Shortcut for $swfshape->setleftfill($s->addfill($r, $g, $b [, $a]));.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::setRightFill() - Sets right rasterizing color


Sets the shape's line style

  • « SWFShape::setLeftFill
  • SWFShape::setRightFill »
  • PHP Manual
  • SWFShape
  • Sets the shape's line style

SWFShape::setLine

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFShape::setLine — Sets the shape's line style

Описание

void SWFShape::setLine ( SWFShape $shape )
void setLine ( int $width , int $red , int $green , int $blue [, int $a ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfshape::setline() sets the shape's line style. width is the line's width. If width is 0, the line's style is removed (then, all other arguments are ignored). If width > 0, then line's color is set to red, green, blue. Last parameter a is optional.

You must declare all line styles before you use them (see example).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

This simple example will draw a big "!#%*@", in funny colors and gracious style.

Пример #1 swfshape::setline() example

<?php
$s = new SWFShape();
$f1 = $s->addFill(0xff, 0, 0);
$f2 = $s->addFill(0xff, 0x7f, 0);
$f3 = $s->addFill(0xff, 0xff, 0);
$f4 = $s->addFill(0, 0xff, 0);
$f5 = $s->addFill(0, 0, 0xff);

// bug: have to declare all line styles before you use them
$s->setLine(40, 0x7f, 0, 0);
$s->setLine(40, 0x7f, 0x3f, 0);
$s->setLine(40, 0x7f, 0x7f, 0);
$s->setLine(40, 0, 0x7f, 0);
$s->setLine(40, 0, 0, 0x7f);

$f = new SWFFont('Techno.fdb');

$s->setRightFill($f1);
$s->setLine(40, 0x7f, 0, 0);
$s->drawGlyph($f, '!');
$s->movePen($f->getWidth('!'), 0);

$s->setRightFill($f2);
$s->setLine(40, 0x7f, 0x3f, 0);
$s->drawGlyph($f, '#');
$s->movePen($f->getWidth('#'), 0);

$s->setRightFill($f3);
$s->setLine(40, 0x7f, 0x7f, 0);
$s->drawGlyph($f, '%');
$s->movePen($f->getWidth('%'), 0);

$s->setRightFill($f4);
$s->setLine(40, 0, 0x7f, 0);
$s->drawGlyph($f, '*');
$s->movePen($f->getWidth('*'), 0);

$s->setRightFill($f5);
$s->setLine(40, 0, 0, 0x7f);
$s->drawGlyph($f, '@');

$m = new SWFMovie();
$m->setDimension(3000,2000);
$m->setRate(12.0);
$i = $m->add($s);
$i->moveTo(1500-$f->getWidth("!#%*@")/2, 1000+$f->getAscent()/2);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets right rasterizing color

  • « SWFShape::setLine
  • SWFSound »
  • PHP Manual
  • SWFShape
  • Sets right rasterizing color

SWFShape::setRightFill

(Информация о версии неизвестна, возможно, только в SVN)

SWFShape::setRightFill — Sets right rasterizing color

Описание

void SWFShape::setRightFill ( SWFGradient $fill )
void setRightFill ( int $red , int $green , int $blue [, int $a ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Shortcut for $swfshape->setrightfill($s->addfill($r, $g, $b [, $a]));.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFShape::setLeftFill() - Sets left rasterizing color


The SWFSound class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFSound.

Обзор классов

SWFSound {
/* Методы */
__construct ( string $filename [, int $flags = 0 ] )
}

Содержание

  • SWFSound::__construct — Возвращает новый объект SWFSound из заданного файла


Возвращает новый объект SWFSound из заданного файла

  • « SWFSound
  • SWFSoundInstance »
  • PHP Manual
  • SWFSound
  • Возвращает новый объект SWFSound из заданного файла

SWFSound::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSound::__construct — Возвращает новый объект SWFSound из заданного файла

Описание

SWFSound::__construct ( string $filename [, int $flags = 0 ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


The SWFSoundInstance class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFSoundInstance objects are returned by the SWFSprite::startSound() and SWFMovie::startSound() methods.

Обзор классов

SWFSoundInstance {
/* Методы */
void loopCount ( int $point )
void loopInPoint ( int $point )
void loopOutPoint ( int $point )
void noMultiple ( void )
}

Содержание

  • SWFSoundInstance::loopCount — Описание
  • SWFSoundInstance::loopInPoint — Описание
  • SWFSoundInstance::loopOutPoint — Описание
  • SWFSoundInstance::noMultiple — Описание


Описание

  • « SWFSoundInstance
  • SWFSoundInstance::loopInPoint »
  • PHP Manual
  • SWFSoundInstance
  • Описание

SWFSoundInstance::loopCount

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance::loopCount —

Описание

void SWFSoundInstance::loopCount ( int $point )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFSoundInstance::loopOutPoint() - Описание


Описание

  • « SWFSoundInstance::loopCount
  • SWFSoundInstance::loopOutPoint »
  • PHP Manual
  • SWFSoundInstance
  • Описание

SWFSoundInstance::loopInPoint

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance::loopInPoint —

Описание

void SWFSoundInstance::loopInPoint ( int $point )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFSoundInstance::loopOutPoint() - Описание


Описание

  • « SWFSoundInstance::loopInPoint
  • SWFSoundInstance::noMultiple »
  • PHP Manual
  • SWFSoundInstance
  • Описание

SWFSoundInstance::loopOutPoint

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance::loopOutPoint —

Описание

void SWFSoundInstance::loopOutPoint ( int $point )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

point

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFSoundInstance::loopInPoint() - Описание


Описание

  • « SWFSoundInstance::loopOutPoint
  • SWFSprite »
  • PHP Manual
  • SWFSoundInstance
  • Описание

SWFSoundInstance::noMultiple

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSoundInstance::noMultiple —

Описание

void SWFSoundInstance::noMultiple ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The SWFSprite class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

An SWFSprite is also known as a "movie clip", this allows one to create objects which are animated in their own timelines. Hence, the sprite has most of the same methods as the movie.

Обзор классов

SWFSprite {
/* Методы */
void add ( object $object )
__construct ( void )
void labelFrame ( string $label )
void nextFrame ( void )
void remove ( object $object )
void setFrames ( int $number )
SWFSoundInstance startSound ( SWFSound $sount )
void stopSound ( SWFSound $sount )
}

Содержание

  • SWFSprite::add — Adds an object to a sprite
  • SWFSprite::__construct — Creates a movie clip (a sprite)
  • SWFSprite::labelFrame — Labels frame
  • SWFSprite::nextFrame — Moves to the next frame of the animation
  • SWFSprite::remove — Removes an object to a sprite
  • SWFSprite::setFrames — Sets the total number of frames in the animation
  • SWFSprite::startSound — Описание
  • SWFSprite::stopSound — Описание


Adds an object to a sprite

  • « SWFSprite
  • SWFSprite::__construct »
  • PHP Manual
  • SWFSprite
  • Adds an object to a sprite

SWFSprite::add

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::add — Adds an object to a sprite

Описание

void SWFSprite::add ( object $object )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfsprite::add() adds a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object.

For displayable types (swfshape(),
swfbutton(), swftext(),
swfaction() or swfsprite()),
this returns a handle  to the object in a display list.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Creates a movie clip (a sprite)

  • « SWFSprite::add
  • SWFSprite::labelFrame »
  • PHP Manual
  • SWFSprite
  • Creates a movie clip (a sprite)

SWFSprite::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::__construct — Creates a movie clip (a sprite)

Описание

SWFSprite::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Creates a new SWFSprite object.


Labels frame

  • « SWFSprite::__construct
  • SWFSprite::nextFrame »
  • PHP Manual
  • SWFSprite
  • Labels frame

SWFSprite::labelFrame

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::labelFrame — Labels frame

Описание

void SWFSprite::labelFrame ( string $label )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Moves to the next frame of the animation

  • « SWFSprite::labelFrame
  • SWFSprite::remove »
  • PHP Manual
  • SWFSprite
  • Moves to the next frame of the animation

SWFSprite::nextFrame

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::nextFrame — Moves to the next frame of the animation

Описание

void SWFSprite::nextFrame ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfsprite::setframes() moves to the next frame of the animation.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Removes an object to a sprite

  • « SWFSprite::nextFrame
  • SWFSprite::setFrames »
  • PHP Manual
  • SWFSprite
  • Removes an object to a sprite

SWFSprite::remove

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::remove — Removes an object to a sprite

Описание

void SWFSprite::remove ( object $object )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfsprite::remove() remove a swfshape(), a
swfbutton(), a swftext(),
a swfaction() or a swfsprite() object
from the sprite.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the total number of frames in the animation

  • « SWFSprite::remove
  • SWFSprite::startSound »
  • PHP Manual
  • SWFSprite
  • Sets the total number of frames in the animation

SWFSprite::setFrames

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::setFrames — Sets the total number of frames in the animation

Описание

void SWFSprite::setFrames ( int $number )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swfsprite::setframes() sets the total number of frames in the animation to numberofframes.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Описание

  • « SWFSprite::setFrames
  • SWFSprite::stopSound »
  • PHP Manual
  • SWFSprite
  • Описание

SWFSprite::startSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::startSound —

Описание

SWFSoundInstance SWFSprite::startSound ( SWFSound $sount )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFSprite::stopSound() - Описание


Описание

  • « SWFSprite::startSound
  • SWFText »
  • PHP Manual
  • SWFSprite
  • Описание

SWFSprite::stopSound

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFSprite::stopSound —

Описание

void SWFSprite::stopSound ( SWFSound $sount )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFSprite::startSound() - Описание


The SWFText class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFText.

Обзор классов

SWFText {
/* Методы */
void addString ( string $string )
void addUTF8String ( string $text )
__construct ( void )
float getAscent ( void )
float getDescent ( void )
float getLeading ( void )
float getUTF8Width ( string $string )
float getWidth ( string $string )
void moveTo ( float $x , float $y )
void setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
void setFont ( SWFFont $font )
void setHeight ( float $height )
void setSpacing ( float $spacing )
}

Содержание

  • SWFText::addString — Draws a string
  • SWFText::addUTF8String — Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color
  • SWFText::__construct — Creates a new SWFText object
  • SWFText::getAscent — Returns the ascent of the current font at its current size, or 0 if not available
  • SWFText::getDescent — Returns the descent of the current font at its current size, or 0 if not available
  • SWFText::getLeading — Returns the leading of the current font at its current size, or 0 if not available
  • SWFText::getUTF8Width — calculates the width of the given string in this text objects current font and size
  • SWFText::getWidth — Computes string's width
  • SWFText::moveTo — Moves the pen
  • SWFText::setColor — Sets the current text color
  • SWFText::setFont — Sets the current font
  • SWFText::setHeight — Sets the current font height
  • SWFText::setSpacing — Sets the current font spacing


Draws a string

  • « SWFText
  • SWFText::addUTF8String »
  • PHP Manual
  • SWFText
  • Draws a string

SWFText::addString

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::addString — Draws a string

Описание

void SWFText::addString ( string $string )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext::addstring() draws the string string at the current pen (cursor) location. Pen is at the baseline of the text; i.e., ascending text is in the -y direction.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFText::addUTF8String() - Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color


Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color

  • « SWFText::addString
  • SWFText::__construct »
  • PHP Manual
  • SWFText
  • Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color

SWFText::addUTF8String

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::addUTF8String — Writes the given text into this SWFText object at the current pen position, using the current font, height, spacing, and color

Описание

void SWFText::addUTF8String ( string $text )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFText::addString() - Draws a string


Creates a new SWFText object

  • « SWFText::addUTF8String
  • SWFText::getAscent »
  • PHP Manual
  • SWFText
  • Creates a new SWFText object

SWFText::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::__construct — Creates a new SWFText object

Описание

SWFText::__construct ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Creates a new SWFText object, fresh for manipulating.

Примеры

This simple example will draw a big yellow "PHP generates Flash with Ming" text, on white background.

Пример #1 swftext() example

<?php
$f = new SWFFont("Techno.fdb");
$t = new SWFText();
$t->setFont($f);
$t->moveTo(200, 2400);
$t->setColor(0xff, 0xff, 0);
$t->setHeight(1200);
$t->addString("PHP generates Flash with Ming!!");

$m = new SWFMovie();
$m->setDimension(5400, 3600);

$m->add($t);

header('Content-type: application/x-shockwave-flash');
$m->output();
?>


Returns the ascent of the current font at its current size, or 0 if not available

  • « SWFText::__construct
  • SWFText::getDescent »
  • PHP Manual
  • SWFText
  • Returns the ascent of the current font at its current size, or 0 if not available

SWFText::getAscent

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::getAscent — Returns the ascent of the current font at its current size, or 0 if not available

Описание

float SWFText::getAscent ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFText::getDescent() - Returns the descent of the current font at its current size, or 0 if not available


Returns the descent of the current font at its current size, or 0 if not available

  • « SWFText::getAscent
  • SWFText::getLeading »
  • PHP Manual
  • SWFText
  • Returns the descent of the current font at its current size, or 0 if not available

SWFText::getDescent

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::getDescent — Returns the descent of the current font at its current size, or 0 if not available

Описание

float SWFText::getDescent ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFText::getAscent() - Returns the ascent of the current font at its current size, or 0 if not available


Returns the leading of the current font at its current size, or 0 if not available

  • « SWFText::getDescent
  • SWFText::getUTF8Width »
  • PHP Manual
  • SWFText
  • Returns the leading of the current font at its current size, or 0 if not available

SWFText::getLeading

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::getLeading — Returns the leading of the current font at its current size, or 0 if not available

Описание

float SWFText::getLeading ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


calculates the width of the given string in this text objects current font and size

  • « SWFText::getLeading
  • SWFText::getWidth »
  • PHP Manual
  • SWFText
  • calculates the width of the given string in this text objects current font and size

SWFText::getUTF8Width

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::getUTF8Width — calculates the width of the given string in this text objects current font and size

Описание

float SWFText::getUTF8Width ( string $string )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • SWFText::getWidth() - Computes string's width


Computes string's width

  • « SWFText::getUTF8Width
  • SWFText::moveTo »
  • PHP Manual
  • SWFText
  • Computes string's width

SWFText::getWidth

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::getWidth — Computes string's width

Описание

float SWFText::getWidth ( string $string )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the rendered width of the string at the text object's current font, scale, and spacing settings.

Смотрите также

  • SWFText::getUTF8Width() - calculates the width of the given string in this text objects current font and size


Moves the pen

  • « SWFText::getWidth
  • SWFText::setColor »
  • PHP Manual
  • SWFText
  • Moves the pen

SWFText::moveTo

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::moveTo — Moves the pen

Описание

void SWFText::moveTo ( float $x , float $y )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext::moveto() moves the pen (or cursor, if that makes more sense) to (x,y) in text object's coordinate space. If either is zero, though, value in that dimension stays the same. Annoying, should be fixed.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the current text color

  • « SWFText::moveTo
  • SWFText::setFont »
  • PHP Manual
  • SWFText
  • Sets the current text color

SWFText::setColor

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::setColor — Sets the current text color

Описание

void SWFText::setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Changes the current text color.

Список параметров

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

a

Value of alpha component

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the current font

  • « SWFText::setColor
  • SWFText::setHeight »
  • PHP Manual
  • SWFText
  • Sets the current font

SWFText::setFont

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::setFont — Sets the current font

Описание

void SWFText::setFont ( SWFFont $font )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext::setfont() sets the current font to font.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the current font height

  • « SWFText::setFont
  • SWFText::setSpacing »
  • PHP Manual
  • SWFText
  • Sets the current font height

SWFText::setHeight

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::setHeight — Sets the current font height

Описание

void SWFText::setHeight ( float $height )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext::setheight() sets the current font height to height. Default is 240.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the current font spacing

  • « SWFText::setHeight
  • SWFTextField »
  • PHP Manual
  • SWFText
  • Sets the current font spacing

SWFText::setSpacing

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFText::setSpacing — Sets the current font spacing

Описание

void SWFText::setSpacing ( float $spacing )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftext::setspacing() sets the current font spacing to spacing. Default is 1.0. 0 is all of the letters written at the same point. This doesn't really work that well because it inflates the advance across the letter, doesn't add the same amount of spacing between the letters. I should try and explain that better, prolly. Or just fix the damn thing to do constant spacing. This was really just a way to figure out how letter advances work, anyway.. So nyah.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The SWFTextField class

(PHP 5 <= 5.3.0, PECL ming SVN)

Введение

SWFTextField.

Обзор классов

SWFTextField {
/* Методы */
void addChars ( string $chars )
void addString ( string $string )
void align ( int $alignement )
__construct ([ int $flags ] )
void setBounds ( float $width , float $height )
void setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
void setFont ( SWFFont $font )
void setHeight ( float $height )
void setIndentation ( float $width )
void setLeftMargin ( float $width )
void setLineSpacing ( float $height )
void setMargins ( float $left , float $right )
void setName ( string $name )
void setPadding ( float $padding )
void setRightMargin ( float $width )
}

Содержание

  • SWFTextField::addChars — adds characters to a font that will be available within a textfield
  • SWFTextField::addString — Concatenates the given string to the text field
  • SWFTextField::align — Sets the text field alignment
  • SWFTextField::__construct — Creates a text field object
  • SWFTextField::setBounds — Sets the text field width and height
  • SWFTextField::setColor — Sets the color of the text field
  • SWFTextField::setFont — Sets the text field font
  • SWFTextField::setHeight — Sets the font height of this text field font
  • SWFTextField::setIndentation — Sets the indentation of the first line
  • SWFTextField::setLeftMargin — Sets the left margin width of the text field
  • SWFTextField::setLineSpacing — Sets the line spacing of the text field
  • SWFTextField::setMargins — Sets the margins width of the text field
  • SWFTextField::setName — Sets the variable name
  • SWFTextField::setPadding — Sets the padding of this textfield
  • SWFTextField::setRightMargin — Sets the right margin width of the text field


adds characters to a font that will be available within a textfield

  • « SWFTextField
  • SWFTextField::addString »
  • PHP Manual
  • SWFTextField
  • adds characters to a font that will be available within a textfield

SWFTextField::addChars

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::addChars — adds characters to a font that will be available within a textfield

Описание

void SWFTextField::addChars ( string $chars )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SWFTextField::addString() - Concatenates the given string to the text field


Concatenates the given string to the text field

  • « SWFTextField::addChars
  • SWFTextField::align »
  • PHP Manual
  • SWFTextField
  • Concatenates the given string to the text field

SWFTextField::addString

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::addString — Concatenates the given string to the text field

Описание

void SWFTextField::addString ( string $string )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setname() concatenates the string string to the text field.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the text field alignment

  • « SWFTextField::addString
  • SWFTextField::__construct »
  • PHP Manual
  • SWFTextField
  • Sets the text field alignment

SWFTextField::align

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::align — Sets the text field alignment

Описание

void SWFTextField::align ( int $alignement )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::align() sets the text field alignment to alignement. Valid values for alignement are : SWFTEXTFIELD_ALIGN_LEFT, SWFTEXTFIELD_ALIGN_RIGHT, SWFTEXTFIELD_ALIGN_CENTER and SWFTEXTFIELD_ALIGN_JUSTIFY.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Creates a text field object

  • « SWFTextField::align
  • SWFTextField::setBounds »
  • PHP Manual
  • SWFTextField
  • Creates a text field object

SWFTextField::__construct

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::__construct — Creates a text field object

Описание

SWFTextField::__construct ([ int $flags ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield() creates a new text field object. Text Fields are less flexible than swftext() objects- they can't be rotated, scaled non-proportionally, or skewed, but they can be used as form entries, and they can use browser-defined fonts.

The optional flags change the text field's behavior. It has the following possibles values :

  • SWFTEXTFIELD_DRAWBOX draws the outline of the textfield
  • SWFTEXTFIELD_HASLENGTH
  • SWFTEXTFIELD_HTML allows text markup using HTML-tags
  • SWFTEXTFIELD_MULTILINE allows multiple lines
  • SWFTEXTFIELD_NOEDIT indicates that the field shouldn't be user-editable
  • SWFTEXTFIELD_NOSELECT makes the field non-selectable
  • SWFTEXTFIELD_PASSWORD obscures the data entry
  • SWFTEXTFIELD_WORDWRAP allows text to wrap
Flags are combined with the bitwise OR operation. For example,
<?php
$t = newSWFTextField(SWFTEXTFIELD_PASSWORD | SWFTEXTFIELD_NOEDIT);
?>
creates a totally useless non-editable password field.

SWFTextField has the following methods : swftextfield::setfont(),
swftextfield::setbounds(), swftextfield::align(),
swftextfield::setheight(), swftextfield::setleftmargin(),
swftextfield::setrightmargin(), swftextfield::setmargins(),
swftextfield::setindentation(), swftextfield::setlinespacing(),
swftextfield::setcolor(), swftextfield::setname() and
swftextfield::addstring().


Sets the text field width and height

  • « SWFTextField::__construct
  • SWFTextField::setColor »
  • PHP Manual
  • SWFTextField
  • Sets the text field width and height

SWFTextField::setBounds

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setBounds — Sets the text field width and height

Описание

void SWFTextField::setBounds ( float $width , float $height )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setbounds() sets the text field width to width and height to height. If you don't set the bounds yourself, Ming makes a poor guess at what the bounds are.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the color of the text field

  • « SWFTextField::setBounds
  • SWFTextField::setFont »
  • PHP Manual
  • SWFTextField
  • Sets the color of the text field

SWFTextField::setColor

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setColor — Sets the color of the text field

Описание

void SWFTextField::setColor ( int $red , int $green , int $blue [, int $a = 255 ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setcolor() sets the color of the text field. Default is fully opaque black. Color is represented using RGB system.

Список параметров

These parameters are integers between 0 and 255 or hexadecimals between 0x00 and 0xFF:

red

Value of red component

green

Value of green component

blue

Value of blue component

a

Value of alpha component

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the text field font

  • « SWFTextField::setColor
  • SWFTextField::setHeight »
  • PHP Manual
  • SWFTextField
  • Sets the text field font

SWFTextField::setFont

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setFont — Sets the text field font

Описание

void SWFTextField::setFont ( SWFFont $font )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setfont() sets the text field font to the [browser-defined?] font font.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the font height of this text field font

  • « SWFTextField::setFont
  • SWFTextField::setIndentation »
  • PHP Manual
  • SWFTextField
  • Sets the font height of this text field font

SWFTextField::setHeight

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setHeight — Sets the font height of this text field font

Описание

void SWFTextField::setHeight ( float $height )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setheight() sets the font height of this text field font to the given height height. Default is 240.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the indentation of the first line

  • « SWFTextField::setHeight
  • SWFTextField::setLeftMargin »
  • PHP Manual
  • SWFTextField
  • Sets the indentation of the first line

SWFTextField::setIndentation

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setIndentation — Sets the indentation of the first line

Описание

void SWFTextField::setIndentation ( float $width )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setindentation() sets the indentation of the first line in the text field, to width.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the left margin width of the text field

  • « SWFTextField::setIndentation
  • SWFTextField::setLineSpacing »
  • PHP Manual
  • SWFTextField
  • Sets the left margin width of the text field

SWFTextField::setLeftMargin

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setLeftMargin — Sets the left margin width of the text field

Описание

void SWFTextField::setLeftMargin ( float $width )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setleftmargin() sets the left margin width of the text field to width. Default is 0.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the line spacing of the text field

  • « SWFTextField::setLeftMargin
  • SWFTextField::setMargins »
  • PHP Manual
  • SWFTextField
  • Sets the line spacing of the text field

SWFTextField::setLineSpacing

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setLineSpacing — Sets the line spacing of the text field

Описание

void SWFTextField::setLineSpacing ( float $height )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setlinespacing() sets the line spacing of the text field to the height of height. Default is 40.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the margins width of the text field

  • « SWFTextField::setLineSpacing
  • SWFTextField::setName »
  • PHP Manual
  • SWFTextField
  • Sets the margins width of the text field

SWFTextField::setMargins

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setMargins — Sets the margins width of the text field

Описание

void SWFTextField::setMargins ( float $left , float $right )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setmargins() set both margins at once, for the man on the go.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the variable name

  • « SWFTextField::setMargins
  • SWFTextField::setPadding »
  • PHP Manual
  • SWFTextField
  • Sets the variable name

SWFTextField::setName

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setName — Sets the variable name

Описание

void SWFTextField::setName ( string $name )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setname() sets the variable name of this text field to name, for form posting and action scripting purposes.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the padding of this textfield

  • « SWFTextField::setName
  • SWFTextField::setRightMargin »
  • PHP Manual
  • SWFTextField
  • Sets the padding of this textfield

SWFTextField::setPadding

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setPadding — Sets the padding of this textfield

Описание

void SWFTextField::setPadding ( float $padding )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the right margin width of the text field

  • « SWFTextField::setPadding
  • SWFVideoStream »
  • PHP Manual
  • SWFTextField
  • Sets the right margin width of the text field

SWFTextField::setRightMargin

(PHP 5 <= 5.3.0, PECL ming SVN)

SWFTextField::setRightMargin — Sets the right margin width of the text field

Описание

void SWFTextField::setRightMargin ( float $width )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

swftextfield::setrightmargin() sets the right margin width of the text field to width. Default is 0.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The SWFVideoStream class

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

Введение

SWFVideoStream.

Обзор классов

SWFVideoStream {
/* Методы */
__construct ([ string $file ] )
int getNumFrames ( void )
void setDimension ( int $x , int $y )
}

Содержание

  • SWFVideoStream::__construct — Возвращает объект класса SWFVideoStream
  • SWFVideoStream::getNumFrames — Возвращает количество кадров в видео-файле
  • SWFVideoStream::setDimension — Устанавливает размер видео


Возвращает объект класса SWFVideoStream

  • « SWFVideoStream
  • SWFVideoStream::getNumFrames »
  • PHP Manual
  • SWFVideoStream
  • Возвращает объект класса SWFVideoStream

SWFVideoStream::__construct

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFVideoStream::__construct — Возвращает объект класса SWFVideoStream

Описание

SWFVideoStream::__construct ([ string $file ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Возвращает количество кадров в видео-файле

  • « SWFVideoStream::__construct
  • SWFVideoStream::setDimension »
  • PHP Manual
  • SWFVideoStream
  • Возвращает количество кадров в видео-файле

SWFVideoStream::getNumFrames

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFVideoStream::getNumFrames — Возвращает количество кадров в видео-файле

Описание

int SWFVideoStream::getNumFrames ( void )

Эта функция возвращает количество видео-кадров из SWFVideoStream.

Возвращаемые значения

Возвращает количество кадров как целое число


Устанавливает размер видео

  • « SWFVideoStream::getNumFrames
  • PDF »
  • PHP Manual
  • SWFVideoStream
  • Устанавливает размер видео

SWFVideoStream::setDimension

(PHP 5.0.5-5.3.0, PHP 7, PECL ming SVN)

SWFVideoStream::setDimension — Устанавливает размер видео

Описание

void SWFVideoStream::setDimension ( int $x , int $y )

Устанавливает ширину и высоту для потокового видео.

Список параметров

x

Ширина в пикселях.

y

Высота в пикселях.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


PDF

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Примеры использования
  • Функции PDF
    • PDF_activate_item — Activate structure element or other content item
    • PDF_add_annotation — Add annotation [deprecated]
    • PDF_add_bookmark — Add bookmark for current page [deprecated]
    • PDF_add_launchlink — Add launch annotation for current page [deprecated]
    • PDF_add_locallink — Add link annotation for current page [deprecated]
    • PDF_add_nameddest — Create named destination
    • PDF_add_note — Set annotation for current page [deprecated]
    • PDF_add_outline — Add bookmark for current page [deprecated]
    • PDF_add_pdflink — Add file link annotation for current page [deprecated]
    • PDF_add_table_cell — Add a cell to a new or existing table
    • PDF_add_textflow — Create Textflow or add text to existing Textflow
    • PDF_add_thumbnail — Add thumbnail for current page
    • PDF_add_weblink — Add weblink for current page [deprecated]
    • PDF_arc — Рисует дугу окружности против часовой стрелки
    • PDF_arcn — Рисует дугу окружности по часовой стрелке
    • PDF_attach_file — Add file attachment for current page [deprecated]
    • PDF_begin_document — Create new PDF file
    • PDF_begin_font — Start a Type 3 font definition
    • PDF_begin_glyph — Start glyph definition for Type 3 font
    • PDF_begin_item — Open structure element or other content item
    • PDF_begin_layer — Start layer
    • PDF_begin_page_ext — Start new page
    • PDF_begin_page — Start new page [deprecated]
    • PDF_begin_pattern — Start pattern definition
    • PDF_begin_template_ext — Start template definition
    • PDF_begin_template — Start template definition [deprecated]
    • PDF_circle — Рисует окружность
    • PDF_clip — Clip to current path
    • PDF_close_image — Закрывает изображение
    • PDF_close_pdi_page — Close the page handle
    • PDF_close_pdi — Close the input PDF document [deprecated]
    • PDF_close — Закрывает pdf-документ [устаревшее]
    • PDF_closepath_fill_stroke — Close, fill and stroke current path
    • PDF_closepath_stroke — Close and stroke path
    • PDF_closepath — Close current path
    • PDF_concat — Concatenate a matrix to the CTM
    • PDF_continue_text — Output text in next line
    • PDF_create_3dview — Создает объемное изображение
    • PDF_create_action — Создает действие для объекта или события
    • PDF_create_annotation — Создает прямоугольную аннотацию
    • PDF_create_bookmark — Create bookmark
    • PDF_create_field — Create form field
    • PDF_create_fieldgroup — Create form field group
    • PDF_create_gstate — Create graphics state object
    • PDF_create_pvf — Create PDFlib virtual file
    • PDF_create_textflow — Create textflow object
    • PDF_curveto — Draw Bezier curve
    • PDF_define_layer — Create layer definition
    • PDF_delete_pvf — Delete PDFlib virtual file
    • PDF_delete_table — Delete table object
    • PDF_delete_textflow — Delete textflow object
    • PDF_delete — Удаляет объект PDFlib
    • PDF_encoding_set_char — Add glyph name and/or Unicode value
    • PDF_end_document — Close PDF file
    • PDF_end_font — Terminate Type 3 font definition
    • PDF_end_glyph — Terminate glyph definition for Type 3 font
    • PDF_end_item — Close structure element or other content item
    • PDF_end_layer — Deactivate all active layers
    • PDF_end_page_ext — Finish page
    • PDF_end_page — Finish page
    • PDF_end_pattern — Finish pattern
    • PDF_end_template — Finish template
    • PDF_endpath — End current path
    • PDF_fill_imageblock — Fill image block with variable data
    • PDF_fill_pdfblock — Fill PDF block with variable data
    • PDF_fill_stroke — Fill and stroke path
    • PDF_fill_textblock — Fill text block with variable data
    • PDF_fill — Fill current path
    • PDF_findfont — Prepare font for later use [deprecated]
    • PDF_fit_image — Place image or template
    • PDF_fit_pdi_page — Place imported PDF page
    • PDF_fit_table — Place table on page
    • PDF_fit_textflow — Format textflow in rectangular area
    • PDF_fit_textline — Place single line of text
    • PDF_get_apiname — Get name of unsuccessfull API function
    • PDF_get_buffer — Get PDF output buffer
    • PDF_get_errmsg — Возвращает текст ошибки
    • PDF_get_errnum — Возвращает код ошибки
    • PDF_get_font — Возвращает шрифт [устаревшее]
    • PDF_get_fontname — Возвращает название шрифта [устаревшее]
    • PDF_get_fontsize — Font handling [deprecated]
    • PDF_get_image_height — Возвращает высоту изображения [устаревшее]
    • PDF_get_image_width — Возвращает ширину изображения [устаревшее]
    • PDF_get_majorversion — Get major version number [deprecated]
    • PDF_get_minorversion — Get minor version number [deprecated]
    • PDF_get_parameter — Get string parameter
    • PDF_get_pdi_parameter — Get PDI string parameter [deprecated]
    • PDF_get_pdi_value — Get PDI numerical parameter [deprecated]
    • PDF_get_value — Get numerical parameter
    • PDF_info_font — Query detailed information about a loaded font
    • PDF_info_matchbox — Query matchbox information
    • PDF_info_table — Retrieve table information
    • PDF_info_textflow — Query textflow state
    • PDF_info_textline — Perform textline formatting and query metrics
    • PDF_initgraphics — Reset graphic state
    • PDF_lineto — Draw a line
    • PDF_load_3ddata — Load 3D model
    • PDF_load_font — Search and prepare font
    • PDF_load_iccprofile — Search and prepare ICC profile
    • PDF_load_image — Open image file
    • PDF_makespotcolor — Make spot color
    • PDF_moveto — Set current point
    • PDF_new — Создает объект PDFlib
    • PDF_open_ccitt — Open raw CCITT image [deprecated]
    • PDF_open_file — Создает PDF-файл [устаревшее]
    • PDF_open_gif — Открывает GIF-изображение [устаревшее]
    • PDF_open_image_file — Read image from file [deprecated]
    • PDF_open_image — Use image data [deprecated]
    • PDF_open_jpeg — Открывает JPEG-изображение [устаревшее]
    • PDF_open_memory_image — Open image created with PHP's image functions [not supported]
    • PDF_open_pdi_document — Prepare a pdi document
    • PDF_open_pdi_page — Prepare a page
    • PDF_open_pdi — Open PDF file [deprecated]
    • PDF_open_tiff — Открывает TIFF-изображение [устаревшее]
    • PDF_pcos_get_number — Get value of pCOS path with type number or boolean
    • PDF_pcos_get_stream — Get contents of pCOS path with type stream, fstream, or string
    • PDF_pcos_get_string — Get value of pCOS path with type name, string, or boolean
    • PDF_place_image — Place image on the page [deprecated]
    • PDF_place_pdi_page — Place PDF page [deprecated]
    • PDF_process_pdi — Process imported PDF document
    • PDF_rect — Рисует прямоугольник
    • PDF_restore — Restore graphics state
    • PDF_resume_page — Resume page
    • PDF_rotate — Поворачивает систему координат
    • PDF_save — Save graphics state
    • PDF_scale — Масштабирует систему координат
    • PDF_set_border_color — Set border color of annotations [deprecated]
    • PDF_set_border_dash — Set border dash style of annotations [deprecated]
    • PDF_set_border_style — Set border style of annotations [deprecated]
    • PDF_set_char_spacing — Set character spacing [deprecated]
    • PDF_set_duration — Set duration between pages [deprecated]
    • PDF_set_gstate — Activate graphics state object
    • PDF_set_horiz_scaling — Set horizontal text scaling [deprecated]
    • PDF_set_info_author — Fill the author document info field [deprecated]
    • PDF_set_info_creator — Fill the creator document info field [deprecated]
    • PDF_set_info_keywords — Fill the keywords document info field [deprecated]
    • PDF_set_info_subject — Fill the subject document info field [deprecated]
    • PDF_set_info_title — Fill the title document info field [deprecated]
    • PDF_set_info — Fill document info field
    • PDF_set_layer_dependency — Define relationships among layers
    • PDF_set_leading — Set distance between text lines [deprecated]
    • PDF_set_parameter — Set string parameter
    • PDF_set_text_matrix — Set text matrix [deprecated]
    • PDF_set_text_pos — Устанавливает позицию текста
    • PDF_set_text_rendering — Determine text rendering [deprecated]
    • PDF_set_text_rise — Set text rise [deprecated]
    • PDF_set_value — Set numerical parameter
    • PDF_set_word_spacing — Set spacing between words [deprecated]
    • PDF_setcolor — Set fill and stroke color
    • PDF_setdash — Set simple dash pattern
    • PDF_setdashpattern — Set dash pattern
    • PDF_setflat — Set flatness
    • PDF_setfont — Set font
    • PDF_setgray_fill — Set fill color to gray [deprecated]
    • PDF_setgray_stroke — Set stroke color to gray [deprecated]
    • PDF_setgray — Set color to gray [deprecated]
    • PDF_setlinecap — Set linecap parameter
    • PDF_setlinejoin — Set linejoin parameter
    • PDF_setlinewidth — Set line width
    • PDF_setmatrix — Set current transformation matrix
    • PDF_setmiterlimit — Set miter limit
    • PDF_setpolydash — Set complicated dash pattern [deprecated]
    • PDF_setrgbcolor_fill — Set fill rgb color values [deprecated]
    • PDF_setrgbcolor_stroke — Set stroke rgb color values [deprecated]
    • PDF_setrgbcolor — Set fill and stroke rgb color values [deprecated]
    • PDF_shading_pattern — Define shading pattern
    • PDF_shading — Define blend
    • PDF_shfill — Fill area with shading
    • PDF_show_boxed — Output text in a box [deprecated]
    • PDF_show_xy — Output text at given position
    • PDF_show — Output text at current position
    • PDF_skew — Skew the coordinate system
    • PDF_stringwidth — Return width of text
    • PDF_stroke — Stroke path
    • PDF_suspend_page — Suspend page
    • PDF_translate — Set origin of coordinate system
    • PDF_utf16_to_utf8 — Конвертирует строку из UTF-16 в UTF-8
    • PDF_utf32_to_utf16 — Конвертирует строку из UTF-32 в UTF-16
    • PDF_utf8_to_utf16 — Конвертирует строку из UTF-8 в UTF-16


Введение

Функции PDF в PHP могут создавать файлы PDF с использованием библиотеки PDFlib, созданной PDFlib GmbH (» www.pdflib.com). Версия с ограничениями PDFlib Lite 7 доступна бесплатно, но с 2010 года больше не поддерживается разработчиком. Интеграция PDFlib в PHP все еще активно поддерживается PDFlib GmbH. В основном она направлена на коммерческую версию, но может также использоваться и с бесплатной старой PDFlib Lite.

Если вы хотите воспользоваться PDFlib, то предлагаем вам ознакомиться с примерами, которые входят во все пакеты PDFlib, а также содержат отсылки к обширной документации стандарта PDF. Как минимум, вам следует обратить внимание на пример hello.php, чтобы изучить основы использования PDFlib.

Замечание:

Если вы заинтересованы в альтернативных генераторах PDF, которые не используют внешние PDF библиотеки, то обратитесь к этому FAQ.


Требования

PDFlib Lite доступна как открытый код. Тем не менее, лицензия PDFlib Lite позволяет бесплатное использование с определенными ограничениями. PDFlib Lite функционально ограничен, относительно PDFlib, пожалуйста, обратитесь к вебсайту PDFlib для получения дополнительной информации. Полная версия PDFlib доступна для скачивания по ссылке » http://www.pdflib.com/products/pdflib-family/, но требует приобретения лицензии при использовании в коммерческих целях.

Проблемы, связанные с более старыми версиями PDFlib

Любая версия PHP 4 после 9 Марта 2000 г. не поддерживает версии PDFlib старше чем 3.0.

PDFlib версии 4.0 и выше поддерживается PHP 4.3.0 более поздними версиями.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/pdflib.

Чтобы иметь возможность работать с этими функциями в PHP < 4.3.9, вы должны скомпилировать PHP с опцией --with-pdflib[=DIR] . DIR - это каталог установки PDFlib, по умолчанию /usr/local.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

PDF_new() создает новый объект PDFlib, требующийся для большинства PDF функций.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • PDF
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Примеры использования »
  • PHP Manual
  • PDF
  • Примеры

Примеры

Содержание

  • Примеры использования


Примеры использования

Большинство функций достаточно просты в использовании. Самой сложной частью, вероятно, является создание первого PDF-файла. Следующий пример должен помочь начать работу. Пример разработан для PHP 4 и создаёт файл hello.pdf с одной страницей. При этом наполняется содержимое документа, загружается шрифт Helvetica-Bold и создается текст "Hello world! (says PHP)".

Пример #1 Пример PDFlib на PHP 4

<?php
$p = PDF_new();

/*  Создание нового PDF-файла; указание имени PDF-файла для размещения на диске */
if (PDF_begin_document($p, "", "") == 0) {
    die("Error: " . PDF_get_errmsg($p));
}

PDF_set_info($p, "Creator", "hello.php");
PDF_set_info($p, "Author", "Rainer Schaaf");
PDF_set_info($p, "Title", "Hello world (PHP)!");

PDF_begin_page_ext($p, 595, 842, "");

$font = PDF_load_font($p, "Helvetica-Bold", "winansi", "");

PDF_setfont($p, $font, 24.0);
PDF_set_text_pos($p, 50, 700);
PDF_show($p, "Hello world!");
PDF_continue_text($p, "(says PHP)");
PDF_end_page_ext($p, "");

PDF_end_document($p, "");

$buf = PDF_get_buffer($p);
$len = strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print $buf;

PDF_delete($p);
?>

Следующий пример показывает использование PDFlib в PHP 5. Он использует новые обработки исключений и инкапсуляцию, доступные в PHP 5. Он создаёт файл hello.pdf с одной страницей. Пример определяет некоторое содержимое документа, загружает шрифт Helvetica-Bold и выводит текст "Hello world! (says PHP)".

Пример #2 Пример PDFlib на PHP 5

<?php

try {
    $p = new PDFlib();

    /*  Создание нового PDF-файла с указанием имени PDF-файла на диске */
    if ($p->begin_document("", "") == 0) {
        die("Error: " . $p->get_errmsg());
    }

    $p->set_info("Creator", "hello.php");
    $p->set_info("Author", "Rainer Schaaf");
    $p->set_info("Title", "Hello world (PHP)!");

    $p->begin_page_ext(595, 842, "");

    $font = $p->load_font("Helvetica-Bold", "winansi", "");

    $p->setfont($font, 24.0);
    $p->set_text_pos(50, 700);
    $p->show("Hello world!");
    $p->continue_text("(says PHP)");
    $p->end_page_ext("");

    $p->end_document("");

    $buf = $p->get_buffer();
    $len = strlen($buf);

    header("Content-type: application/pdf");
    header("Content-Length: $len");
    header("Content-Disposition: inline; filename=hello.pdf");
    print $buf;
}
catch (PDFlibException $e) {
    die("PDFlib exception occurred in hello sample:\n" .
    "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
    $e->get_errmsg() . "\n");
}
catch (Exception $e) {
    die($e);
}
$p = 0;
?>


Функции PDF

Замечания об устаревших функциях PDFlib

Начиная с PHP 4.0.5, PHP расширение для PDFlib официально поддерживается PDFlib GmbH. Это означает, что все функции, описанные в руководстве PDFlib Reference Manual, поддерживаются PHP 4 по тому же назначению и с теми же параметрами. Тем не менее, с PDFlib версии 5.0.4 и выше все параметры должны быть указаны. Из соображений совместимости, PDFlib в обязательном порядке, по-прежнему поддерживает большинство устаревших функций, но они должны быть заменены их новыми версиями. PDFlib GmbH не осуществляет поддержку при возникновении проблем в использовании этих устаревших функций. Документация этого раздела обозначает старые функции меткой "Deprecated" и предлагает для использования функции взамен устаревшим.

Содержание

  • PDF_activate_item — Activate structure element or other content item
  • PDF_add_annotation — Add annotation [deprecated]
  • PDF_add_bookmark — Add bookmark for current page [deprecated]
  • PDF_add_launchlink — Add launch annotation for current page [deprecated]
  • PDF_add_locallink — Add link annotation for current page [deprecated]
  • PDF_add_nameddest — Create named destination
  • PDF_add_note — Set annotation for current page [deprecated]
  • PDF_add_outline — Add bookmark for current page [deprecated]
  • PDF_add_pdflink — Add file link annotation for current page [deprecated]
  • PDF_add_table_cell — Add a cell to a new or existing table
  • PDF_add_textflow — Create Textflow or add text to existing Textflow
  • PDF_add_thumbnail — Add thumbnail for current page
  • PDF_add_weblink — Add weblink for current page [deprecated]
  • PDF_arc — Рисует дугу окружности против часовой стрелки
  • PDF_arcn — Рисует дугу окружности по часовой стрелке
  • PDF_attach_file — Add file attachment for current page [deprecated]
  • PDF_begin_document — Create new PDF file
  • PDF_begin_font — Start a Type 3 font definition
  • PDF_begin_glyph — Start glyph definition for Type 3 font
  • PDF_begin_item — Open structure element or other content item
  • PDF_begin_layer — Start layer
  • PDF_begin_page_ext — Start new page
  • PDF_begin_page — Start new page [deprecated]
  • PDF_begin_pattern — Start pattern definition
  • PDF_begin_template_ext — Start template definition
  • PDF_begin_template — Start template definition [deprecated]
  • PDF_circle — Рисует окружность
  • PDF_clip — Clip to current path
  • PDF_close_image — Закрывает изображение
  • PDF_close_pdi_page — Close the page handle
  • PDF_close_pdi — Close the input PDF document [deprecated]
  • PDF_close — Закрывает pdf-документ [устаревшее]
  • PDF_closepath_fill_stroke — Close, fill and stroke current path
  • PDF_closepath_stroke — Close and stroke path
  • PDF_closepath — Close current path
  • PDF_concat — Concatenate a matrix to the CTM
  • PDF_continue_text — Output text in next line
  • PDF_create_3dview — Создает объемное изображение
  • PDF_create_action — Создает действие для объекта или события
  • PDF_create_annotation — Создает прямоугольную аннотацию
  • PDF_create_bookmark — Create bookmark
  • PDF_create_field — Create form field
  • PDF_create_fieldgroup — Create form field group
  • PDF_create_gstate — Create graphics state object
  • PDF_create_pvf — Create PDFlib virtual file
  • PDF_create_textflow — Create textflow object
  • PDF_curveto — Draw Bezier curve
  • PDF_define_layer — Create layer definition
  • PDF_delete_pvf — Delete PDFlib virtual file
  • PDF_delete_table — Delete table object
  • PDF_delete_textflow — Delete textflow object
  • PDF_delete — Удаляет объект PDFlib
  • PDF_encoding_set_char — Add glyph name and/or Unicode value
  • PDF_end_document — Close PDF file
  • PDF_end_font — Terminate Type 3 font definition
  • PDF_end_glyph — Terminate glyph definition for Type 3 font
  • PDF_end_item — Close structure element or other content item
  • PDF_end_layer — Deactivate all active layers
  • PDF_end_page_ext — Finish page
  • PDF_end_page — Finish page
  • PDF_end_pattern — Finish pattern
  • PDF_end_template — Finish template
  • PDF_endpath — End current path
  • PDF_fill_imageblock — Fill image block with variable data
  • PDF_fill_pdfblock — Fill PDF block with variable data
  • PDF_fill_stroke — Fill and stroke path
  • PDF_fill_textblock — Fill text block with variable data
  • PDF_fill — Fill current path
  • PDF_findfont — Prepare font for later use [deprecated]
  • PDF_fit_image — Place image or template
  • PDF_fit_pdi_page — Place imported PDF page
  • PDF_fit_table — Place table on page
  • PDF_fit_textflow — Format textflow in rectangular area
  • PDF_fit_textline — Place single line of text
  • PDF_get_apiname — Get name of unsuccessfull API function
  • PDF_get_buffer — Get PDF output buffer
  • PDF_get_errmsg — Возвращает текст ошибки
  • PDF_get_errnum — Возвращает код ошибки
  • PDF_get_font — Возвращает шрифт [устаревшее]
  • PDF_get_fontname — Возвращает название шрифта [устаревшее]
  • PDF_get_fontsize — Font handling [deprecated]
  • PDF_get_image_height — Возвращает высоту изображения [устаревшее]
  • PDF_get_image_width — Возвращает ширину изображения [устаревшее]
  • PDF_get_majorversion — Get major version number [deprecated]
  • PDF_get_minorversion — Get minor version number [deprecated]
  • PDF_get_parameter — Get string parameter
  • PDF_get_pdi_parameter — Get PDI string parameter [deprecated]
  • PDF_get_pdi_value — Get PDI numerical parameter [deprecated]
  • PDF_get_value — Get numerical parameter
  • PDF_info_font — Query detailed information about a loaded font
  • PDF_info_matchbox — Query matchbox information
  • PDF_info_table — Retrieve table information
  • PDF_info_textflow — Query textflow state
  • PDF_info_textline — Perform textline formatting and query metrics
  • PDF_initgraphics — Reset graphic state
  • PDF_lineto — Draw a line
  • PDF_load_3ddata — Load 3D model
  • PDF_load_font — Search and prepare font
  • PDF_load_iccprofile — Search and prepare ICC profile
  • PDF_load_image — Open image file
  • PDF_makespotcolor — Make spot color
  • PDF_moveto — Set current point
  • PDF_new — Создает объект PDFlib
  • PDF_open_ccitt — Open raw CCITT image [deprecated]
  • PDF_open_file — Создает PDF-файл [устаревшее]
  • PDF_open_gif — Открывает GIF-изображение [устаревшее]
  • PDF_open_image_file — Read image from file [deprecated]
  • PDF_open_image — Use image data [deprecated]
  • PDF_open_jpeg — Открывает JPEG-изображение [устаревшее]
  • PDF_open_memory_image — Open image created with PHP's image functions [not supported]
  • PDF_open_pdi_document — Prepare a pdi document
  • PDF_open_pdi_page — Prepare a page
  • PDF_open_pdi — Open PDF file [deprecated]
  • PDF_open_tiff — Открывает TIFF-изображение [устаревшее]
  • PDF_pcos_get_number — Get value of pCOS path with type number or boolean
  • PDF_pcos_get_stream — Get contents of pCOS path with type stream, fstream, or string
  • PDF_pcos_get_string — Get value of pCOS path with type name, string, or boolean
  • PDF_place_image — Place image on the page [deprecated]
  • PDF_place_pdi_page — Place PDF page [deprecated]
  • PDF_process_pdi — Process imported PDF document
  • PDF_rect — Рисует прямоугольник
  • PDF_restore — Restore graphics state
  • PDF_resume_page — Resume page
  • PDF_rotate — Поворачивает систему координат
  • PDF_save — Save graphics state
  • PDF_scale — Масштабирует систему координат
  • PDF_set_border_color — Set border color of annotations [deprecated]
  • PDF_set_border_dash — Set border dash style of annotations [deprecated]
  • PDF_set_border_style — Set border style of annotations [deprecated]
  • PDF_set_char_spacing — Set character spacing [deprecated]
  • PDF_set_duration — Set duration between pages [deprecated]
  • PDF_set_gstate — Activate graphics state object
  • PDF_set_horiz_scaling — Set horizontal text scaling [deprecated]
  • PDF_set_info_author — Fill the author document info field [deprecated]
  • PDF_set_info_creator — Fill the creator document info field [deprecated]
  • PDF_set_info_keywords — Fill the keywords document info field [deprecated]
  • PDF_set_info_subject — Fill the subject document info field [deprecated]
  • PDF_set_info_title — Fill the title document info field [deprecated]
  • PDF_set_info — Fill document info field
  • PDF_set_layer_dependency — Define relationships among layers
  • PDF_set_leading — Set distance between text lines [deprecated]
  • PDF_set_parameter — Set string parameter
  • PDF_set_text_matrix — Set text matrix [deprecated]
  • PDF_set_text_pos — Устанавливает позицию текста
  • PDF_set_text_rendering — Determine text rendering [deprecated]
  • PDF_set_text_rise — Set text rise [deprecated]
  • PDF_set_value — Set numerical parameter
  • PDF_set_word_spacing — Set spacing between words [deprecated]
  • PDF_setcolor — Set fill and stroke color
  • PDF_setdash — Set simple dash pattern
  • PDF_setdashpattern — Set dash pattern
  • PDF_setflat — Set flatness
  • PDF_setfont — Set font
  • PDF_setgray_fill — Set fill color to gray [deprecated]
  • PDF_setgray_stroke — Set stroke color to gray [deprecated]
  • PDF_setgray — Set color to gray [deprecated]
  • PDF_setlinecap — Set linecap parameter
  • PDF_setlinejoin — Set linejoin parameter
  • PDF_setlinewidth — Set line width
  • PDF_setmatrix — Set current transformation matrix
  • PDF_setmiterlimit — Set miter limit
  • PDF_setpolydash — Set complicated dash pattern [deprecated]
  • PDF_setrgbcolor_fill — Set fill rgb color values [deprecated]
  • PDF_setrgbcolor_stroke — Set stroke rgb color values [deprecated]
  • PDF_setrgbcolor — Set fill and stroke rgb color values [deprecated]
  • PDF_shading_pattern — Define shading pattern
  • PDF_shading — Define blend
  • PDF_shfill — Fill area with shading
  • PDF_show_boxed — Output text in a box [deprecated]
  • PDF_show_xy — Output text at given position
  • PDF_show — Output text at current position
  • PDF_skew — Skew the coordinate system
  • PDF_stringwidth — Return width of text
  • PDF_stroke — Stroke path
  • PDF_suspend_page — Suspend page
  • PDF_translate — Set origin of coordinate system
  • PDF_utf16_to_utf8 — Конвертирует строку из UTF-16 в UTF-8
  • PDF_utf32_to_utf16 — Конвертирует строку из UTF-32 в UTF-16
  • PDF_utf8_to_utf16 — Конвертирует строку из UTF-8 в UTF-16


Activate structure element or other content item

  • « Функции PDF
  • PDF_add_annotation »
  • PHP Manual
  • Функции PDF
  • Activate structure element or other content item

PDF_activate_item

(PECL pdflib >= 2.0.0)

PDF_activate_item — Activate structure element or other content item

Описание

bool PDF_activate_item ( resource $pdfdoc , int $id )

Activates a previously created structure element or other content item. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Add annotation [deprecated]

  • « PDF_activate_item
  • PDF_add_bookmark »
  • PHP Manual
  • Функции PDF
  • Add annotation [deprecated]

PDF_add_annotation

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_annotation — Add annotation [deprecated]

Описание

This function is deprecated, use PDF_create_annotation() with type=Text instead.


Add bookmark for current page [deprecated]

  • « PDF_add_annotation
  • PDF_add_launchlink »
  • PHP Manual
  • Функции PDF
  • Add bookmark for current page [deprecated]

PDF_add_bookmark

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_add_bookmark — Add bookmark for current page [deprecated]

Описание

This function is deprecated since PDFlib version 6, use PDF_create_bookmark() instead.


Add launch annotation for current page [deprecated]

  • « PDF_add_bookmark
  • PDF_add_locallink »
  • PHP Manual
  • Функции PDF
  • Add launch annotation for current page [deprecated]

PDF_add_launchlink

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_launchlink — Add launch annotation for current page [deprecated]

Описание

bool PDF_add_launchlink ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $filename )

Adds a link to a web resource.

This function is deprecated since PDFlib version 6,
use PDF_create_action() with
type=Launch and
PDF_create_annotation() with
type=Link instead.


Add link annotation for current page [deprecated]

  • « PDF_add_launchlink
  • PDF_add_nameddest »
  • PHP Manual
  • Функции PDF
  • Add link annotation for current page [deprecated]

PDF_add_locallink

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_locallink — Add link annotation for current page [deprecated]

Описание

bool PDF_add_locallink ( resource $pdfdoc , float $lowerleftx , float $lowerlefty , float $upperrightx , float $upperrighty , int $page , string $dest )

Add a link annotation to a target within the current PDF file. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use
PDF_create_action() with type=GoTo
and PDF_create_annotation() with
type=Link instead.


Create named destination

  • « PDF_add_locallink
  • PDF_add_note »
  • PHP Manual
  • Функции PDF
  • Create named destination

PDF_add_nameddest

(PECL pdflib >= 2.0.0)

PDF_add_nameddest — Create named destination

Описание

bool PDF_add_nameddest ( resource $pdfdoc , string $name , string $optlist )

Creates a named destination on an arbitrary page in the current document. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set annotation for current page [deprecated]

  • « PDF_add_nameddest
  • PDF_add_outline »
  • PHP Manual
  • Функции PDF
  • Set annotation for current page [deprecated]

PDF_add_note

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_note — Set annotation for current page [deprecated]

Описание

bool PDF_add_note ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $contents , string $title , string $icon , int $open )

Sets an annotation for the current page. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use PDF_create_annotation() with type=Text instead.


Add bookmark for current page [deprecated]

  • « PDF_add_note
  • PDF_add_pdflink »
  • PHP Manual
  • Функции PDF
  • Add bookmark for current page [deprecated]

PDF_add_outline

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_outline — Add bookmark for current page [deprecated]

Описание

This function is deprecated, use PDF_create_bookmark() instead.


Add file link annotation for current page [deprecated]

  • « PDF_add_outline
  • PDF_add_table_cell »
  • PHP Manual
  • Функции PDF
  • Add file link annotation for current page [deprecated]

PDF_add_pdflink

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_pdflink — Add file link annotation for current page [deprecated]

Описание

bool PDF_add_pdflink ( resource $pdfdoc , float $bottom_left_x , float $bottom_left_y , float $up_right_x , float $up_right_y , string $filename , int $page , string $dest )

Add a file link annotation to a PDF target. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use
PDF_create_action() with
type=GoToR and
PDF_create_annotation() with
type=Link instead.


Add a cell to a new or existing table

  • « PDF_add_pdflink
  • PDF_add_textflow »
  • PHP Manual
  • Функции PDF
  • Add a cell to a new or existing table

PDF_add_table_cell

(PECL pdflib >= 2.1.0)

PDF_add_table_cell — Add a cell to a new or existing table

Описание

int PDF_add_table_cell ( resource $pdfdoc , int $table , int $column , int $row , string $text , string $optlist )

Adds a cell to a new or existing table.


Create Textflow or add text to existing Textflow

  • « PDF_add_table_cell
  • PDF_add_thumbnail »
  • PHP Manual
  • Функции PDF
  • Create Textflow or add text to existing Textflow

PDF_add_textflow

(PECL pdflib >= 2.1.0)

PDF_add_textflow — Create Textflow or add text to existing Textflow

Описание

int PDF_add_textflow ( resource $pdfdoc , int $textflow , string $text , string $optlist )

Creates a Textflow object, or adds text and explicit options to an existing Textflow.


Add thumbnail for current page

  • « PDF_add_textflow
  • PDF_add_weblink »
  • PHP Manual
  • Функции PDF
  • Add thumbnail for current page

PDF_add_thumbnail

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_add_thumbnail — Add thumbnail for current page

Описание

bool PDF_add_thumbnail ( resource $pdfdoc , int $image )

Adds an existing image as thumbnail for the current page. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Add weblink for current page [deprecated]

  • « PDF_add_thumbnail
  • PDF_arc »
  • PHP Manual
  • Функции PDF
  • Add weblink for current page [deprecated]

PDF_add_weblink

(PHP 4, PECL pdflib >= 1.0.0)

PDF_add_weblink — Add weblink for current page [deprecated]

Описание

bool PDF_add_weblink ( resource $pdfdoc , float $lowerleftx , float $lowerlefty , float $upperrightx , float $upperrighty , string $url )

Adds a weblink annotation to a target url on the Web. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use
PDF_create_action() with type=URI
and PDF_create_annotation() with
type=Link instead.


Рисует дугу окружности против часовой стрелки

  • « PDF_add_weblink
  • PDF_arcn »
  • PHP Manual
  • Функции PDF
  • Рисует дугу окружности против часовой стрелки

PDF_arc

(PHP 4, PECL pdflib >= 1.0.0)

PDF_arc — Рисует дугу окружности против часовой стрелки

Описание

bool PDF_arc ( resource $p , float $x , float $y , float $r , float $alpha , float $beta )

Рисует дугу окружности против часовой стрелки.


Рисует дугу окружности по часовой стрелке

  • « PDF_arc
  • PDF_attach_file »
  • PHP Manual
  • Функции PDF
  • Рисует дугу окружности по часовой стрелке

PDF_arcn

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_arcn — Рисует дугу окружности по часовой стрелке

Описание

bool PDF_arcn ( resource $p , float $x , float $y , float $r , float $alpha , float $beta )

За исключением направления рисования, эта функция ведет себя так же, как PDF_arc().


Add file attachment for current page [deprecated]

  • « PDF_arcn
  • PDF_begin_document »
  • PHP Manual
  • Функции PDF
  • Add file attachment for current page [deprecated]

PDF_attach_file

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_attach_file — Add file attachment for current page [deprecated]

Описание

bool PDF_attach_file ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $filename , string $description , string $author , string $mimetype , string $icon )

Adds a file attachment annotation. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use PDF_create_annotation() with type=FileAttachment instead.


Create new PDF file

  • « PDF_attach_file
  • PDF_begin_font »
  • PHP Manual
  • Функции PDF
  • Create new PDF file

PDF_begin_document

(PECL pdflib >= 2.0.0)

PDF_begin_document — Create new PDF file

Описание

int PDF_begin_document ( resource $pdfdoc , string $filename , string $optlist )

Creates a new PDF file subject to various options.


Start a Type 3 font definition

  • « PDF_begin_document
  • PDF_begin_glyph »
  • PHP Manual
  • Функции PDF
  • Start a Type 3 font definition

PDF_begin_font

(PECL pdflib >= 2.0.0)

PDF_begin_font — Start a Type 3 font definition

Описание

bool PDF_begin_font ( resource $pdfdoc , string $filename , float $a , float $b , float $c , float $d , float $e , float $f , string $optlist )

Starts a Type 3 font definition.


Start glyph definition for Type 3 font

  • « PDF_begin_font
  • PDF_begin_item »
  • PHP Manual
  • Функции PDF
  • Start glyph definition for Type 3 font

PDF_begin_glyph

(PECL pdflib >= 2.0.0)

PDF_begin_glyph — Start glyph definition for Type 3 font

Описание

bool PDF_begin_glyph ( resource $pdfdoc , string $glyphname , float $wx , float $llx , float $lly , float $urx , float $ury )

Starts a glyph definition for a Type 3 font.


Open structure element or other content item

  • « PDF_begin_glyph
  • PDF_begin_layer »
  • PHP Manual
  • Функции PDF
  • Open structure element or other content item

PDF_begin_item

(PECL pdflib >= 2.0.0)

PDF_begin_item — Open structure element or other content item

Описание

int PDF_begin_item ( resource $pdfdoc , string $tag , string $optlist )

Opens a structure element or other content item with attributes supplied as options.


Start layer

  • « PDF_begin_item
  • PDF_begin_page_ext »
  • PHP Manual
  • Функции PDF
  • Start layer

PDF_begin_layer

(PECL pdflib >= 2.0.0)

PDF_begin_layer — Start layer

Описание

bool PDF_begin_layer ( resource $pdfdoc , int $layer )

Starts a layer for subsequent output on the page. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function requires PDF 1.5.


Start new page

  • « PDF_begin_layer
  • PDF_begin_page »
  • PHP Manual
  • Функции PDF
  • Start new page

PDF_begin_page_ext

(PECL pdflib >= 2.0.0)

PDF_begin_page_ext — Start new page

Описание

bool PDF_begin_page_ext ( resource $pdfdoc , float $width , float $height , string $optlist )

Adds a new page to the document, and specifies various options. The parameters width and height are the dimensions of the new page in points. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Common Page Sizes in Points
name | size
A0 | 2380 x 3368
A1 | 1684 x 2380
A2 | 1190 x 1684
A3 | 842 x 1190
A4 | 595 x 842
A5 | 421 x 595
A6 | 297 x 421
B5 | 501 x 709
letter (8.5" x 11") | 612 x 792
legal (8.5" x 14") | 612 x 1008
ledger (17" x 11") | 1224 x 792
11" x 17" | 792 x 1224


Start new page [deprecated]

  • « PDF_begin_page_ext
  • PDF_begin_pattern »
  • PHP Manual
  • Функции PDF
  • Start new page [deprecated]

PDF_begin_page

(PHP 4, PECL pdflib >= 1.0.0)

PDF_begin_page — Start new page [deprecated]

Описание

bool PDF_begin_page ( resource $pdfdoc , float $width , float $height )

Adds a new page to the document. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use PDF_begin_page_ext() instead.


Start pattern definition

  • « PDF_begin_page
  • PDF_begin_template_ext »
  • PHP Manual
  • Функции PDF
  • Start pattern definition

PDF_begin_pattern

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_begin_pattern — Start pattern definition

Описание

int PDF_begin_pattern ( resource $pdfdoc , float $width , float $height , float $xstep , float $ystep , int $painttype )

Starts a new pattern definition.


Start template definition

  • « PDF_begin_pattern
  • PDF_begin_template »
  • PHP Manual
  • Функции PDF
  • Start template definition

PDF_begin_template_ext

(PECL pdflib >= 2.1.0)

PDF_begin_template_ext — Start template definition

Описание

int PDF_begin_template_ext ( resource $pdfdoc , float $width , float $height , string $optlist )

Starts a new template definition.


Start template definition [deprecated]

  • « PDF_begin_template_ext
  • PDF_circle »
  • PHP Manual
  • Функции PDF
  • Start template definition [deprecated]

PDF_begin_template

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_begin_template — Start template definition [deprecated]

Описание

int PDF_begin_template ( resource $pdfdoc , float $width , float $height )

Starts a new template definition.

This function is deprecated since PDFlib version 7, use PDF_begin_template_ext() instead.


Рисует окружность

  • « PDF_begin_template
  • PDF_clip »
  • PHP Manual
  • Функции PDF
  • Рисует окружность

PDF_circle

(PHP 4, PECL pdflib >= 1.0.0)

PDF_circle — Рисует окружность

Описание

bool PDF_circle ( resource $pdfdoc , float $x , float $y , float $r )

Добавляет окружность. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Clip to current path

  • « PDF_circle
  • PDF_close_image »
  • PHP Manual
  • Функции PDF
  • Clip to current path

PDF_clip

(PHP 4, PECL pdflib >= 1.0.0)

PDF_clip — Clip to current path

Описание

bool PDF_clip ( resource $p )

Uses the current path as clipping path, and terminate the path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Закрывает изображение

  • « PDF_clip
  • PDF_close_pdi_page »
  • PHP Manual
  • Функции PDF
  • Закрывает изображение

PDF_close_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_close_image — Закрывает изображение

Описание

bool PDF_close_image ( resource $p , int $image )

Закрывает изображение image, полученное с помощью функции PDF_open_image().


Close the page handle

  • « PDF_close_image
  • PDF_close_pdi »
  • PHP Manual
  • Функции PDF
  • Close the page handle

PDF_close_pdi_page

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_close_pdi_page — Close the page handle

Описание

bool PDF_close_pdi_page ( resource $p , int $page )

Closes the page handle, and frees all page-related resources. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Close the input PDF document [deprecated]

  • « PDF_close_pdi_page
  • PDF_close »
  • PHP Manual
  • Функции PDF
  • Close the input PDF document [deprecated]

PDF_close_pdi

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_close_pdi — Close the input PDF document [deprecated]

Описание

bool PDF_close_pdi ( resource $p , int $doc )

Closes all open page handles, and closes the input PDF document. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 7, use PDF_close_pdi_document() instead.


Закрывает pdf-документ [устаревшее]

  • « PDF_close_pdi
  • PDF_closepath_fill_stroke »
  • PHP Manual
  • Функции PDF
  • Закрывает pdf-документ [устаревшее]

PDF_close

(PHP 4, PECL pdflib >= 1.0.0)

PDF_close — Закрывает pdf-документ [устаревшее]

Описание

bool PDF_close ( resource $p )

Закрывает сгенерированный PDF-файл и освобождает все относящиеся к документу ресурсы. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Эта функция устарела начиная с 6-ой версии PDFlib, вместо нее используйте PDF_end_document().


Close, fill and stroke current path

  • « PDF_close
  • PDF_closepath_stroke »
  • PHP Manual
  • Функции PDF
  • Close, fill and stroke current path

PDF_closepath_fill_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath_fill_stroke — Close, fill and stroke current path

Описание

bool PDF_closepath_fill_stroke ( resource $p )

Closes the path, fills, and strokes it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Close and stroke path

  • « PDF_closepath_fill_stroke
  • PDF_closepath »
  • PHP Manual
  • Функции PDF
  • Close and stroke path

PDF_closepath_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath_stroke — Close and stroke path

Описание

bool PDF_closepath_stroke ( resource $p )

Closes the path, and strokes it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Close current path

  • « PDF_closepath_stroke
  • PDF_concat »
  • PHP Manual
  • Функции PDF
  • Close current path

PDF_closepath

(PHP 4, PECL pdflib >= 1.0.0)

PDF_closepath — Close current path

Описание

bool PDF_closepath ( resource $p )

Closes the current path. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Concatenate a matrix to the CTM

  • « PDF_closepath
  • PDF_continue_text »
  • PHP Manual
  • Функции PDF
  • Concatenate a matrix to the CTM

PDF_concat

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_concat — Concatenate a matrix to the CTM

Описание

bool PDF_concat ( resource $p , float $a , float $b , float $c , float $d , float $e , float $f )

Concatenates a matrix to the current transformation matrix (CTM). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Output text in next line

  • « PDF_concat
  • PDF_create_3dview »
  • PHP Manual
  • Функции PDF
  • Output text in next line

PDF_continue_text

(PHP 4, PECL pdflib >= 1.0.0)

PDF_continue_text — Output text in next line

Описание

bool PDF_continue_text ( resource $p , string $text )

Prints text at the next line. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Создает объемное изображение

  • « PDF_continue_text
  • PDF_create_action »
  • PHP Manual
  • Функции PDF
  • Создает объемное изображение

PDF_create_3dview

(PECL pdflib >= 2.1.0)

PDF_create_3dview — Создает объемное изображение

Описание

int PDF_create_3dview ( resource $pdfdoc , string $username , string $optlist )

Создает объемное изображение.

Эта функция требует PDF 1.6.


Создает действие для объекта или события

  • « PDF_create_3dview
  • PDF_create_annotation »
  • PHP Manual
  • Функции PDF
  • Создает действие для объекта или события

PDF_create_action

(PECL pdflib >= 2.0.0)

PDF_create_action — Создает действие для объекта или события

Описание

int PDF_create_action ( resource $pdfdoc , string $type , string $optlist )

Создает действие, которое может быть применено к различным объектам или событиям.


Создает прямоугольную аннотацию

  • « PDF_create_action
  • PDF_create_bookmark »
  • PHP Manual
  • Функции PDF
  • Создает прямоугольную аннотацию

PDF_create_annotation

(PECL pdflib >= 2.0.0)

PDF_create_annotation — Создает прямоугольную аннотацию

Описание

bool PDF_create_annotation ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $type , string $optlist )

Создает прямоугольную аннотацию на текущей странице.


Create bookmark

  • « PDF_create_annotation
  • PDF_create_field »
  • PHP Manual
  • Функции PDF
  • Create bookmark

PDF_create_bookmark

(PECL pdflib >= 2.0.0)

PDF_create_bookmark — Create bookmark

Описание

int PDF_create_bookmark ( resource $pdfdoc , string $text , string $optlist )

Creates a bookmark subject to various options.


Create form field

  • « PDF_create_bookmark
  • PDF_create_fieldgroup »
  • PHP Manual
  • Функции PDF
  • Create form field

PDF_create_field

(PECL pdflib >= 2.0.0)

PDF_create_field — Create form field

Описание

bool PDF_create_field ( resource $pdfdoc , float $llx , float $lly , float $urx , float $ury , string $name , string $type , string $optlist )

Creates a form field on the current page subject to various options.


Create form field group

  • « PDF_create_field
  • PDF_create_gstate »
  • PHP Manual
  • Функции PDF
  • Create form field group

PDF_create_fieldgroup

(PECL pdflib >= 2.0.0)

PDF_create_fieldgroup — Create form field group

Описание

bool PDF_create_fieldgroup ( resource $pdfdoc , string $name , string $optlist )

Creates a form field group subject to various options.


Create graphics state object

  • « PDF_create_fieldgroup
  • PDF_create_pvf »
  • PHP Manual
  • Функции PDF
  • Create graphics state object

PDF_create_gstate

(PECL pdflib >= 2.0.0)

PDF_create_gstate — Create graphics state object

Описание

int PDF_create_gstate ( resource $pdfdoc , string $optlist )

Creates a graphics state object subject to various options.


Create PDFlib virtual file

  • « PDF_create_gstate
  • PDF_create_textflow »
  • PHP Manual
  • Функции PDF
  • Create PDFlib virtual file

PDF_create_pvf

(PECL pdflib >= 2.0.0)

PDF_create_pvf — Create PDFlib virtual file

Описание

bool PDF_create_pvf ( resource $pdfdoc , string $filename , string $data , string $optlist )

Creates a named virtual read-only file from data provided in memory.


Create textflow object

  • « PDF_create_pvf
  • PDF_curveto »
  • PHP Manual
  • Функции PDF
  • Create textflow object

PDF_create_textflow

(PECL pdflib >= 2.0.0)

PDF_create_textflow — Create textflow object

Описание

int PDF_create_textflow ( resource $pdfdoc , string $text , string $optlist )

Preprocesses text for later formatting and creates a textflow object.


Draw Bezier curve

  • « PDF_create_textflow
  • PDF_define_layer »
  • PHP Manual
  • Функции PDF
  • Draw Bezier curve

PDF_curveto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_curveto — Draw Bezier curve

Описание

bool PDF_curveto ( resource $p , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Draws a Bezier curve from the current point, using 3 more control points. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Create layer definition

  • « PDF_curveto
  • PDF_delete_pvf »
  • PHP Manual
  • Функции PDF
  • Create layer definition

PDF_define_layer

(PECL pdflib >= 2.0.0)

PDF_define_layer — Create layer definition

Описание

int PDF_define_layer ( resource $pdfdoc , string $name , string $optlist )

Creates a new layer definition.

This function requires PDF 1.5.


Delete PDFlib virtual file

  • « PDF_define_layer
  • PDF_delete_table »
  • PHP Manual
  • Функции PDF
  • Delete PDFlib virtual file

PDF_delete_pvf

(PECL pdflib >= 2.0.0)

PDF_delete_pvf — Delete PDFlib virtual file

Описание

int PDF_delete_pvf ( resource $pdfdoc , string $filename )

Deletes a named virtual file and frees its data structures (but not the contents).


Delete table object

  • « PDF_delete_pvf
  • PDF_delete_textflow »
  • PHP Manual
  • Функции PDF
  • Delete table object

PDF_delete_table

(PECL pdflib >= 2.1.0)

PDF_delete_table — Delete table object

Описание

bool PDF_delete_table ( resource $pdfdoc , int $table , string $optlist )

Deletes a table and all associated data structures.


Delete textflow object

  • « PDF_delete_table
  • PDF_delete »
  • PHP Manual
  • Функции PDF
  • Delete textflow object

PDF_delete_textflow

(PECL pdflib >= 2.0.0)

PDF_delete_textflow — Delete textflow object

Описание

bool PDF_delete_textflow ( resource $pdfdoc , int $textflow )

Deletes a textflow and the associated data structures.


Удаляет объект PDFlib

  • « PDF_delete_textflow
  • PDF_encoding_set_char »
  • PHP Manual
  • Функции PDF
  • Удаляет объект PDFlib

PDF_delete

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_delete — Удаляет объект PDFlib

Описание

bool PDF_delete ( resource $pdfdoc )

Удаляет объект PDFlib и освобождает все внутренние ресурсы. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Add glyph name and/or Unicode value

  • « PDF_delete
  • PDF_end_document »
  • PHP Manual
  • Функции PDF
  • Add glyph name and/or Unicode value

PDF_encoding_set_char

(PECL pdflib >= 2.0.0)

PDF_encoding_set_char — Add glyph name and/or Unicode value

Описание

bool PDF_encoding_set_char ( resource $pdfdoc , string $encoding , int $slot , string $glyphname , int $uv )

Adds a glyph name and/or Unicode value to a custom encoding.


Close PDF file

  • « PDF_encoding_set_char
  • PDF_end_font »
  • PHP Manual
  • Функции PDF
  • Close PDF file

PDF_end_document

(PECL pdflib >= 2.0.0)

PDF_end_document — Close PDF file

Описание

bool PDF_end_document ( resource $pdfdoc , string $optlist )

Closes the generated PDF file and applies various options.


Terminate Type 3 font definition

  • « PDF_end_document
  • PDF_end_glyph »
  • PHP Manual
  • Функции PDF
  • Terminate Type 3 font definition

PDF_end_font

(PECL pdflib >= 2.0.0)

PDF_end_font — Terminate Type 3 font definition

Описание

bool PDF_end_font ( resource $pdfdoc )

Terminates a Type 3 font definition.


Terminate glyph definition for Type 3 font

  • « PDF_end_font
  • PDF_end_item »
  • PHP Manual
  • Функции PDF
  • Terminate glyph definition for Type 3 font

PDF_end_glyph

(PECL pdflib >= 2.0.0)

PDF_end_glyph — Terminate glyph definition for Type 3 font

Описание

bool PDF_end_glyph ( resource $pdfdoc )

Terminates a glyph definition for a Type 3 font.


Close structure element or other content item

  • « PDF_end_glyph
  • PDF_end_layer »
  • PHP Manual
  • Функции PDF
  • Close structure element or other content item

PDF_end_item

(PECL pdflib >= 2.0.0)

PDF_end_item — Close structure element or other content item

Описание

bool PDF_end_item ( resource $pdfdoc , int $id )

Closes a structure element or other content item.


Deactivate all active layers

  • « PDF_end_item
  • PDF_end_page_ext »
  • PHP Manual
  • Функции PDF
  • Deactivate all active layers

PDF_end_layer

(PECL pdflib >= 2.0.0)

PDF_end_layer — Deactivate all active layers

Описание

bool PDF_end_layer ( resource $pdfdoc )

Deactivates all active layers. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function requires PDF 1.5.


Finish page

  • « PDF_end_layer
  • PDF_end_page »
  • PHP Manual
  • Функции PDF
  • Finish page

PDF_end_page_ext

(PECL pdflib >= 2.0.0)

PDF_end_page_ext — Finish page

Описание

bool PDF_end_page_ext ( resource $pdfdoc , string $optlist )

Finishes a page, and applies various options. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Finish page

  • « PDF_end_page_ext
  • PDF_end_pattern »
  • PHP Manual
  • Функции PDF
  • Finish page

PDF_end_page

(PHP 4, PECL pdflib >= 1.0.0)

PDF_end_page — Finish page

Описание

bool PDF_end_page ( resource $p )

Finishes the page. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Finish pattern

  • « PDF_end_page
  • PDF_end_template »
  • PHP Manual
  • Функции PDF
  • Finish pattern

PDF_end_pattern

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_end_pattern — Finish pattern

Описание

bool PDF_end_pattern ( resource $p )

Finishes the pattern definition. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Finish template

  • « PDF_end_pattern
  • PDF_endpath »
  • PHP Manual
  • Функции PDF
  • Finish template

PDF_end_template

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_end_template — Finish template

Описание

bool PDF_end_template ( resource $p )

Finishes a template definition. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


End current path

  • « PDF_end_template
  • PDF_fill_imageblock »
  • PHP Manual
  • Функции PDF
  • End current path

PDF_endpath

(PHP 4, PECL pdflib >= 1.0.0)

PDF_endpath — End current path

Описание

bool PDF_endpath ( resource $p )

Ends the current path without filling or stroking it.


Fill image block with variable data

  • « PDF_endpath
  • PDF_fill_pdfblock »
  • PHP Manual
  • Функции PDF
  • Fill image block with variable data

PDF_fill_imageblock

(PECL pdflib >= 2.0.0)

PDF_fill_imageblock — Fill image block with variable data

Описание

int PDF_fill_imageblock ( resource $pdfdoc , int $page , string $blockname , int $image , string $optlist )

Fills an image block with variable data according to its properties.

This function is only available in the PDFlib Personalization Server (PPS).


Fill PDF block with variable data

  • « PDF_fill_imageblock
  • PDF_fill_stroke »
  • PHP Manual
  • Функции PDF
  • Fill PDF block with variable data

PDF_fill_pdfblock

(PECL pdflib >= 2.0.0)

PDF_fill_pdfblock — Fill PDF block with variable data

Описание

int PDF_fill_pdfblock ( resource $pdfdoc , int $page , string $blockname , int $contents , string $optlist )

Fills a PDF block with variable data according to its properties.

This function is only available in the PDFlib Personalization Server (PPS).


Fill and stroke path

  • « PDF_fill_pdfblock
  • PDF_fill_textblock »
  • PHP Manual
  • Функции PDF
  • Fill and stroke path

PDF_fill_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_fill_stroke — Fill and stroke path

Описание

bool PDF_fill_stroke ( resource $p )

Fills and strokes the current path with the current fill and stroke color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Fill text block with variable data

  • « PDF_fill_stroke
  • PDF_fill »
  • PHP Manual
  • Функции PDF
  • Fill text block with variable data

PDF_fill_textblock

(PECL pdflib >= 2.0.0)

PDF_fill_textblock — Fill text block with variable data

Описание

int PDF_fill_textblock ( resource $pdfdoc , int $page , string $blockname , string $text , string $optlist )

Fills a text block with variable data according to its properties.

This function is only available in the PDFlib Personalization Server (PPS).


Fill current path

  • « PDF_fill_textblock
  • PDF_findfont »
  • PHP Manual
  • Функции PDF
  • Fill current path

PDF_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_fill — Fill current path

Описание

bool PDF_fill ( resource $p )

Fills the interior of the current path with the current fill color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Prepare font for later use [deprecated]

  • « PDF_fill
  • PDF_fit_image »
  • PHP Manual
  • Функции PDF
  • Prepare font for later use [deprecated]

PDF_findfont

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_findfont — Prepare font for later use [deprecated]

Описание

int PDF_findfont ( resource $p , string $fontname , string $encoding , int $embed )

Search for a font and prepare it for later use with PDF_setfont(). The metrics will be loaded, and if embed is nonzero, the font file will be checked, but not yet used. encoding is one of builtin, macroman, winansi, host, a user-defined encoding name or the name of a CMap. Parameter embed is optional before PHP 4.3.5 or with PDFlib less than 5.

This function is deprecated since PDFlib version 5, use PDF_load_font() instead.


Place image or template

  • « PDF_findfont
  • PDF_fit_pdi_page »
  • PHP Manual
  • Функции PDF
  • Place image or template

PDF_fit_image

(PECL pdflib >= 2.0.0)

PDF_fit_image — Place image or template

Описание

bool PDF_fit_image ( resource $pdfdoc , int $image , float $x , float $y , string $optlist )

Places an image or template on the page, subject to various options. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Place imported PDF page

  • « PDF_fit_image
  • PDF_fit_table »
  • PHP Manual
  • Функции PDF
  • Place imported PDF page

PDF_fit_pdi_page

(PECL pdflib >= 2.0.0)

PDF_fit_pdi_page — Place imported PDF page

Описание

bool PDF_fit_pdi_page ( resource $pdfdoc , int $page , float $x , float $y , string $optlist )

Places an imported PDF page on the page, subject to various options. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Place table on page

  • « PDF_fit_pdi_page
  • PDF_fit_textflow »
  • PHP Manual
  • Функции PDF
  • Place table on page

PDF_fit_table

(PECL pdflib >= 2.1.0)

PDF_fit_table — Place table on page

Описание

string PDF_fit_table ( resource $pdfdoc , int $table , float $llx , float $lly , float $urx , float $ury , string $optlist )

Places a table on the page fully or partially.


Format textflow in rectangular area

  • « PDF_fit_table
  • PDF_fit_textline »
  • PHP Manual
  • Функции PDF
  • Format textflow in rectangular area

PDF_fit_textflow

(PECL pdflib >= 2.0.0)

PDF_fit_textflow — Format textflow in rectangular area

Описание

string PDF_fit_textflow ( resource $pdfdoc , int $textflow , float $llx , float $lly , float $urx , float $ury , string $optlist )

Formats the next portion of a textflow into a rectangular area.


Place single line of text

  • « PDF_fit_textflow
  • PDF_get_apiname »
  • PHP Manual
  • Функции PDF
  • Place single line of text

PDF_fit_textline

(PECL pdflib >= 2.0.0)

PDF_fit_textline — Place single line of text

Описание

bool PDF_fit_textline ( resource $pdfdoc , string $text , float $x , float $y , string $optlist )

Places a single line of text on the page, subject to various options. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Get name of unsuccessfull API function

  • « PDF_fit_textline
  • PDF_get_buffer »
  • PHP Manual
  • Функции PDF
  • Get name of unsuccessfull API function

PDF_get_apiname

(PECL pdflib >= 2.0.0)

PDF_get_apiname — Get name of unsuccessfull API function

Описание

string PDF_get_apiname ( resource $pdfdoc )

Gets the name of the API function which threw the last exception or failed.


Get PDF output buffer

  • « PDF_get_apiname
  • PDF_get_errmsg »
  • PHP Manual
  • Функции PDF
  • Get PDF output buffer

PDF_get_buffer

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_buffer — Get PDF output buffer

Описание

string PDF_get_buffer ( resource $p )

Fetches the buffer containing the generated PDF data.


Возвращает текст ошибки

  • « PDF_get_buffer
  • PDF_get_errnum »
  • PHP Manual
  • Функции PDF
  • Возвращает текст ошибки

PDF_get_errmsg

(PECL pdflib >= 2.0.0)

PDF_get_errmsg — Возвращает текст ошибки

Описание

string PDF_get_errmsg ( resource $pdfdoc )

Возвращает текст последнего брошенного исключения или причины неудачи при вызове функции.


Возвращает код ошибки

  • « PDF_get_errmsg
  • PDF_get_font »
  • PHP Manual
  • Функции PDF
  • Возвращает код ошибки

PDF_get_errnum

(PECL pdflib >= 2.0.0)

PDF_get_errnum — Возвращает код ошибки

Описание

int PDF_get_errnum ( resource $pdfdoc )

Возвращает номер последнего брошенного исключения или причины неудачи при вызове функции.


Возвращает шрифт [устаревшее]

  • « PDF_get_errnum
  • PDF_get_fontname »
  • PHP Manual
  • Функции PDF
  • Возвращает шрифт [устаревшее]

PDF_get_font

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_font — Возвращает шрифт [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте функцию PDF_get_value() с параметром font.


Возвращает название шрифта [устаревшее]

  • « PDF_get_font
  • PDF_get_fontsize »
  • PHP Manual
  • Функции PDF
  • Возвращает название шрифта [устаревшее]

PDF_get_fontname

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_fontname — Возвращает название шрифта [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте функцию PDF_get_parameter() с параметром fontname.


Font handling [deprecated]

  • « PDF_get_fontname
  • PDF_get_image_height »
  • PHP Manual
  • Функции PDF
  • Font handling [deprecated]

PDF_get_fontsize

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_fontsize — Font handling [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_get_value() with the parameter fontsizeinstead.


Возвращает высоту изображения [устаревшее]

  • « PDF_get_fontsize
  • PDF_get_image_width »
  • PHP Manual
  • Функции PDF
  • Возвращает высоту изображения [устаревшее]

PDF_get_image_height

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_image_height — Возвращает высоту изображения [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте функцию PDF_get_value() с параметром imageheight.


Возвращает ширину изображения [устаревшее]

  • « PDF_get_image_height
  • PDF_get_majorversion »
  • PHP Manual
  • Функции PDF
  • Возвращает ширину изображения [устаревшее]

PDF_get_image_width

(PHP 4, PECL pdflib >= 1.0.0)

PDF_get_image_width — Возвращает ширину изображения [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте функцию PDF_get_value() с параметром imagewidth.


Get major version number [deprecated]

  • « PDF_get_image_width
  • PDF_get_minorversion »
  • PHP Manual
  • Функции PDF
  • Get major version number [deprecated]

PDF_get_majorversion

(PHP 4 >= 4.2.0, PECL pdflib >= 1.0.0)

PDF_get_majorversion — Get major version number [deprecated]

Описание

int PDF_get_majorversion ( void )

This function is deprecated since PDFlib version 5, use PDF_get_value() with the parameter major instead.


Get minor version number [deprecated]

  • « PDF_get_majorversion
  • PDF_get_parameter »
  • PHP Manual
  • Функции PDF
  • Get minor version number [deprecated]

PDF_get_minorversion

(PHP 4 >= 4.2.0, PECL pdflib >= 1.0.0)

PDF_get_minorversion — Get minor version number [deprecated]

Описание

int PDF_get_minorversion ( void )

Returns the minor version number of the PDFlib version.

This function is deprecated since PDFlib version 5, use PDF_get_value() with the parameter minor instead.


Get string parameter

  • « PDF_get_minorversion
  • PDF_get_pdi_parameter »
  • PHP Manual
  • Функции PDF
  • Get string parameter

PDF_get_parameter

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_get_parameter — Get string parameter

Описание

string PDF_get_parameter ( resource $p , string $key , float $modifier )

Gets the contents of some PDFlib parameter with string type.


Get PDI string parameter [deprecated]

  • « PDF_get_parameter
  • PDF_get_pdi_value »
  • PHP Manual
  • Функции PDF
  • Get PDI string parameter [deprecated]

PDF_get_pdi_parameter

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_pdi_parameter — Get PDI string parameter [deprecated]

Описание

string PDF_get_pdi_parameter ( resource $p , string $key , int $doc , int $page , int $reserved )

Gets the contents of a PDI document parameter with string type.

This function is deprecated since PDFlib version 7, use PDF_pcos_get_string() instead.


Get PDI numerical parameter [deprecated]

  • « PDF_get_pdi_parameter
  • PDF_get_value »
  • PHP Manual
  • Функции PDF
  • Get PDI numerical parameter [deprecated]

PDF_get_pdi_value

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_get_pdi_value — Get PDI numerical parameter [deprecated]

Описание

float PDF_get_pdi_value ( resource $p , string $key , int $doc , int $page , int $reserved )

Gets the contents of a PDI document parameter with numerical type.

This function is deprecated since PDFlib version 7, use PDF_pcos_get_number() instead.


Get numerical parameter

  • « PDF_get_pdi_value
  • PDF_info_font »
  • PHP Manual
  • Функции PDF
  • Get numerical parameter

PDF_get_value

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_get_value — Get numerical parameter

Описание

float PDF_get_value ( resource $p , string $key , float $modifier )

Gets the value of some PDFlib parameter with numerical type.


Query detailed information about a loaded font

  • « PDF_get_value
  • PDF_info_matchbox »
  • PHP Manual
  • Функции PDF
  • Query detailed information about a loaded font

PDF_info_font

(PECL pdflib >= 2.1.0)

PDF_info_font — Query detailed information about a loaded font

Описание

float PDF_info_font ( resource $pdfdoc , int $font , string $keyword , string $optlist )

Queries detailed information about a loaded font.


Query matchbox information

  • « PDF_info_font
  • PDF_info_table »
  • PHP Manual
  • Функции PDF
  • Query matchbox information

PDF_info_matchbox

(PECL pdflib >= 2.1.0)

PDF_info_matchbox — Query matchbox information

Описание

float PDF_info_matchbox ( resource $pdfdoc , string $boxname , int $num , string $keyword )

Queries information about a matchbox on the current page.


Retrieve table information

  • « PDF_info_matchbox
  • PDF_info_textflow »
  • PHP Manual
  • Функции PDF
  • Retrieve table information

PDF_info_table

(PECL pdflib >= 2.1.0)

PDF_info_table — Retrieve table information

Описание

float PDF_info_table ( resource $pdfdoc , int $table , string $keyword )

Retrieves table information related to the most recently placed table instance.


Query textflow state

  • « PDF_info_table
  • PDF_info_textline »
  • PHP Manual
  • Функции PDF
  • Query textflow state

PDF_info_textflow

(PECL pdflib >= 2.0.0)

PDF_info_textflow — Query textflow state

Описание

float PDF_info_textflow ( resource $pdfdoc , int $textflow , string $keyword )

Queries the current state of a textflow.


Perform textline formatting and query metrics

  • « PDF_info_textflow
  • PDF_initgraphics »
  • PHP Manual
  • Функции PDF
  • Perform textline formatting and query metrics

PDF_info_textline

(PECL pdflib >= 2.1.0)

PDF_info_textline — Perform textline formatting and query metrics

Описание

float PDF_info_textline ( resource $pdfdoc , string $text , string $keyword , string $optlist )

Performs textline formatting and queries the resulting metrics.


Reset graphic state

  • « PDF_info_textline
  • PDF_lineto »
  • PHP Manual
  • Функции PDF
  • Reset graphic state

PDF_initgraphics

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_initgraphics — Reset graphic state

Описание

bool PDF_initgraphics ( resource $p )

Reset all color and graphics state parameters to their defaults. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Draw a line

  • « PDF_initgraphics
  • PDF_load_3ddata »
  • PHP Manual
  • Функции PDF
  • Draw a line

PDF_lineto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_lineto — Draw a line

Описание

bool PDF_lineto ( resource $p , float $x , float $y )

Draws a line from the current point to another point. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Load 3D model

  • « PDF_lineto
  • PDF_load_font »
  • PHP Manual
  • Функции PDF
  • Load 3D model

PDF_load_3ddata

(PECL pdflib >= 2.1.0)

PDF_load_3ddata — Load 3D model

Описание

int PDF_load_3ddata ( resource $pdfdoc , string $filename , string $optlist )

Loads a 3D model from a disk-based or virtual file.

This function requires PDF 1.6.


Search and prepare font

  • « PDF_load_3ddata
  • PDF_load_iccprofile »
  • PHP Manual
  • Функции PDF
  • Search and prepare font

PDF_load_font

(PECL pdflib >= 2.0.0)

PDF_load_font — Search and prepare font

Описание

int PDF_load_font ( resource $pdfdoc , string $fontname , string $encoding , string $optlist )

Searches for a font and prepares it for later use.


Search and prepare ICC profile

  • « PDF_load_font
  • PDF_load_image »
  • PHP Manual
  • Функции PDF
  • Search and prepare ICC profile

PDF_load_iccprofile

(PECL pdflib >= 2.0.0)

PDF_load_iccprofile — Search and prepare ICC profile

Описание

int PDF_load_iccprofile ( resource $pdfdoc , string $profilename , string $optlist )

Searches for an ICC profile, and prepares it for later use.


Open image file

  • « PDF_load_iccprofile
  • PDF_makespotcolor »
  • PHP Manual
  • Функции PDF
  • Open image file

PDF_load_image

(PECL pdflib >= 2.0.0)

PDF_load_image — Open image file

Описание

int PDF_load_image ( resource $pdfdoc , string $imagetype , string $filename , string $optlist )

Opens a disk-based or virtual image file subject to various options.


Make spot color

  • « PDF_load_image
  • PDF_moveto »
  • PHP Manual
  • Функции PDF
  • Make spot color

PDF_makespotcolor

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_makespotcolor — Make spot color

Описание

int PDF_makespotcolor ( resource $p , string $spotname )

Finds a built-in spot color name, or makes a named spot color from the current fill color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set current point

  • « PDF_makespotcolor
  • PDF_new »
  • PHP Manual
  • Функции PDF
  • Set current point

PDF_moveto

(PHP 4, PECL pdflib >= 1.0.0)

PDF_moveto — Set current point

Описание

bool PDF_moveto ( resource $p , float $x , float $y )

Sets the current point for graphics output. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Создает объект PDFlib

  • « PDF_moveto
  • PDF_open_ccitt »
  • PHP Manual
  • Функции PDF
  • Создает объект PDFlib

PDF_new

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_new — Создает объект PDFlib

Описание

resource PDF_new ( void )

Создает новый объект PDFlib с настройками по умолчанию.


Open raw CCITT image [deprecated]

  • « PDF_new
  • PDF_open_file »
  • PHP Manual
  • Функции PDF
  • Open raw CCITT image [deprecated]

PDF_open_ccitt

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_ccitt — Open raw CCITT image [deprecated]

Описание

int PDF_open_ccitt ( resource $pdfdoc , string $filename , int $width , int $height , int $BitReverse , int $k , int $Blackls1 )

Opens a raw CCITT image.

This function is deprecated since PDFlib version 5, use PDF_load_image() instead.


Создает PDF-файл [устаревшее]

  • « PDF_open_ccitt
  • PDF_open_gif »
  • PHP Manual
  • Функции PDF
  • Создает PDF-файл [устаревшее]

PDF_open_file

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_file — Создает PDF-файл [устаревшее]

Описание

bool PDF_open_file ( resource $p , string $filename )

Создает новый PDF-файл с использованием предоставленного имени файла. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Эта функция устарела начиная с 6-ой версии PDFlib, вместо нее используйте PDF_begin_document().


Открывает GIF-изображение [устаревшее]

  • « PDF_open_file
  • PDF_open_image_file »
  • PHP Manual
  • Функции PDF
  • Открывает GIF-изображение [устаревшее]

PDF_open_gif

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_gif — Открывает GIF-изображение [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте PDF_load_image().


Read image from file [deprecated]

  • « PDF_open_gif
  • PDF_open_image »
  • PHP Manual
  • Функции PDF
  • Read image from file [deprecated]

PDF_open_image_file

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_image_file — Read image from file [deprecated]

Описание

int PDF_open_image_file ( resource $p , string $imagetype , string $filename , string $stringparam , int $intparam )

Opens an image file.

This function is deprecated since PDFlib version 5, use PDF_load_image() with the colorize, ignoremask, invert, mask, masked, and page options instead.


Use image data [deprecated]

  • « PDF_open_image_file
  • PDF_open_jpeg »
  • PHP Manual
  • Функции PDF
  • Use image data [deprecated]

PDF_open_image

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_image — Use image data [deprecated]

Описание

int PDF_open_image ( resource $p , string $imagetype , string $source , string $data , int $length , int $width , int $height , int $components , int $bpc , string $params )

Uses image data from a variety of data sources.

This function is deprecated since PDFlib version 5, use virtual files and PDF_load_image() instead.


Открывает JPEG-изображение [устаревшее]

  • « PDF_open_image
  • PDF_open_memory_image »
  • PHP Manual
  • Функции PDF
  • Открывает JPEG-изображение [устаревшее]

PDF_open_jpeg

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_jpeg — Открывает JPEG-изображение [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте PDF_load_image().


Open image created with PHP's image functions [not supported]

  • « PDF_open_jpeg
  • PDF_open_pdi_document »
  • PHP Manual
  • Функции PDF
  • Open image created with PHP's image functions [not supported]

PDF_open_memory_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_memory_image — Open image created with PHP's image functions [not supported]

Описание

int PDF_open_memory_image ( resource $p , resource $image )

This function is not supported by PDFlib GmbH.


Prepare a pdi document

  • « PDF_open_memory_image
  • PDF_open_pdi_page »
  • PHP Manual
  • Функции PDF
  • Prepare a pdi document

PDF_open_pdi_document

(PECL pdflib >= 2.1.0)

PDF_open_pdi_document — Prepare a pdi document

Описание

int PDF_open_pdi_document ( resource $p , string $filename , string $optlist )

Open a disk-based or virtual PDF document and prepare it for later use.


Prepare a page

  • « PDF_open_pdi_document
  • PDF_open_pdi »
  • PHP Manual
  • Функции PDF
  • Prepare a page

PDF_open_pdi_page

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_pdi_page — Prepare a page

Описание

int PDF_open_pdi_page ( resource $p , int $doc , int $pagenumber , string $optlist )

Prepares a page for later use with PDF_fit_pdi_page().


Open PDF file [deprecated]

  • « PDF_open_pdi_page
  • PDF_open_tiff »
  • PHP Manual
  • Функции PDF
  • Open PDF file [deprecated]

PDF_open_pdi

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_open_pdi — Open PDF file [deprecated]

Описание

int PDF_open_pdi ( resource $pdfdoc , string $filename , string $optlist , int $len )

Opens a disk-based or virtual PDF document and prepares it for later use.

This function is deprecated since PDFlib version 7, use PDF_open_pdi_document() instead.


Открывает TIFF-изображение [устаревшее]

  • « PDF_open_pdi
  • PDF_pcos_get_number »
  • PHP Manual
  • Функции PDF
  • Открывает TIFF-изображение [устаревшее]

PDF_open_tiff

(PHP 4, PECL pdflib >= 1.0.0)

PDF_open_tiff — Открывает TIFF-изображение [устаревшее]

Описание

Эта функция устарела начиная с 3-ей версии PDFlib, вместо нее используйте PDF_load_image().


Get value of pCOS path with type number or boolean

  • « PDF_open_tiff
  • PDF_pcos_get_stream »
  • PHP Manual
  • Функции PDF
  • Get value of pCOS path with type number or boolean

PDF_pcos_get_number

(PECL pdflib >= 2.1.0)

PDF_pcos_get_number — Get value of pCOS path with type number or boolean

Описание

float PDF_pcos_get_number ( resource $p , int $doc , string $path )

Gets the value of a pCOS path with type number or boolean.


Get contents of pCOS path with type stream, fstream, or string

  • « PDF_pcos_get_number
  • PDF_pcos_get_string »
  • PHP Manual
  • Функции PDF
  • Get contents of pCOS path with type stream, fstream, or string

PDF_pcos_get_stream

(PECL pdflib >= 2.1.0)

PDF_pcos_get_stream — Get contents of pCOS path with type stream, fstream, or string

Описание

string PDF_pcos_get_stream ( resource $p , int $doc , string $optlist , string $path )

Gets the contents of a pCOS path with type stream, fstream, or string.


Get value of pCOS path with type name, string, or boolean

  • « PDF_pcos_get_stream
  • PDF_place_image »
  • PHP Manual
  • Функции PDF
  • Get value of pCOS path with type name, string, or boolean

PDF_pcos_get_string

(PECL pdflib >= 2.1.0)

PDF_pcos_get_string — Get value of pCOS path with type name, string, or boolean

Описание

string PDF_pcos_get_string ( resource $p , int $doc , string $path )

Gets the value of a pCOS path with type name, string, or boolean.


Place image on the page [deprecated]

  • « PDF_pcos_get_string
  • PDF_place_pdi_page »
  • PHP Manual
  • Функции PDF
  • Place image on the page [deprecated]

PDF_place_image

(PHP 4, PECL pdflib >= 1.0.0)

PDF_place_image — Place image on the page [deprecated]

Описание

bool PDF_place_image ( resource $pdfdoc , int $image , float $x , float $y , float $scale )

Places an image and scales it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 5, use PDF_fit_image() instead.


Place PDF page [deprecated]

  • « PDF_place_image
  • PDF_process_pdi »
  • PHP Manual
  • Функции PDF
  • Place PDF page [deprecated]

PDF_place_pdi_page

(PHP 4 >= 4.0.6, PECL pdflib >= 1.0.0)

PDF_place_pdi_page — Place PDF page [deprecated]

Описание

bool PDF_place_pdi_page ( resource $pdfdoc , int $page , float $x , float $y , float $sx , float $sy )

Places a PDF page and scales it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 5, use PDF_fit_pdi_page() instead.


Process imported PDF document

  • « PDF_place_pdi_page
  • PDF_rect »
  • PHP Manual
  • Функции PDF
  • Process imported PDF document

PDF_process_pdi

(PECL pdflib >= 2.0.0)

PDF_process_pdi — Process imported PDF document

Описание

int PDF_process_pdi ( resource $pdfdoc , int $doc , int $page , string $optlist )

Processes certain elements of an imported PDF document.


Рисует прямоугольник

  • « PDF_process_pdi
  • PDF_restore »
  • PHP Manual
  • Функции PDF
  • Рисует прямоугольник

PDF_rect

(PHP 4, PECL pdflib >= 1.0.0)

PDF_rect — Рисует прямоугольник

Описание

bool PDF_rect ( resource $p , float $x , float $y , float $width , float $height )

Рисует прямоугольник. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Restore graphics state

  • « PDF_rect
  • PDF_resume_page »
  • PHP Manual
  • Функции PDF
  • Restore graphics state

PDF_restore

(PHP 4, PECL pdflib >= 1.0.0)

PDF_restore — Restore graphics state

Описание

bool PDF_restore ( resource $p )

Restores the most recently saved graphics state. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Resume page

  • « PDF_restore
  • PDF_rotate »
  • PHP Manual
  • Функции PDF
  • Resume page

PDF_resume_page

(PECL pdflib >= 2.0.0)

PDF_resume_page — Resume page

Описание

bool PDF_resume_page ( resource $pdfdoc , string $optlist )

Resumes a page to add more content to it.


Поворачивает систему координат

  • « PDF_resume_page
  • PDF_save »
  • PHP Manual
  • Функции PDF
  • Поворачивает систему координат

PDF_rotate

(PHP 4, PECL pdflib >= 1.0.0)

PDF_rotate — Поворачивает систему координат

Описание

bool PDF_rotate ( resource $p , float $phi )

Поворачивает систему координат. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Save graphics state

  • « PDF_rotate
  • PDF_scale »
  • PHP Manual
  • Функции PDF
  • Save graphics state

PDF_save

(PHP 4, PECL pdflib >= 1.0.0)

PDF_save — Save graphics state

Описание

bool PDF_save ( resource $p )

Saves the current graphics state. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Масштабирует систему координат

  • « PDF_save
  • PDF_set_border_color »
  • PHP Manual
  • Функции PDF
  • Масштабирует систему координат

PDF_scale

(PHP 4, PECL pdflib >= 1.0.0)

PDF_scale — Масштабирует систему координат

Описание

bool PDF_scale ( resource $p , float $sx , float $sy )

Масштабирует систему координат. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set border color of annotations [deprecated]

  • « PDF_scale
  • PDF_set_border_dash »
  • PHP Manual
  • Функции PDF
  • Set border color of annotations [deprecated]

PDF_set_border_color

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_border_color — Set border color of annotations [deprecated]

Описание

bool PDF_set_border_color ( resource $p , float $red , float $green , float $blue )

Sets the border color for all kinds of annotations. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use the option annotcolor in PDF_create_annotation() instead.


Set border dash style of annotations [deprecated]

  • « PDF_set_border_color
  • PDF_set_border_style »
  • PHP Manual
  • Функции PDF
  • Set border dash style of annotations [deprecated]

PDF_set_border_dash

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_border_dash — Set border dash style of annotations [deprecated]

Описание

bool PDF_set_border_dash ( resource $pdfdoc , float $black , float $white )

Sets the border dash style for all kinds of annotations. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use the option dasharray in PDF_create_annotation() instead.


Set border style of annotations [deprecated]

  • « PDF_set_border_dash
  • PDF_set_char_spacing »
  • PHP Manual
  • Функции PDF
  • Set border style of annotations [deprecated]

PDF_set_border_style

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_border_style — Set border style of annotations [deprecated]

Описание

bool PDF_set_border_style ( resource $pdfdoc , string $style , float $width )

Sets the border style for all kinds of annotations. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 6, use the options borderstyle and linewidth in PDF_create_annotation() instead.


Set character spacing [deprecated]

  • « PDF_set_border_style
  • PDF_set_duration »
  • PHP Manual
  • Функции PDF
  • Set character spacing [deprecated]

PDF_set_char_spacing

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_char_spacing — Set character spacing [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with parameter charspacing instead.


Set duration between pages [deprecated]

  • « PDF_set_char_spacing
  • PDF_set_gstate »
  • PHP Manual
  • Функции PDF
  • Set duration between pages [deprecated]

PDF_set_duration

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_duration — Set duration between pages [deprecated]

Описание

This function is deprecated since PDFlib version 3, use the duration option in PDF_begin_page_ext() or PDF_end_page_ext() instead.


Activate graphics state object

  • « PDF_set_duration
  • PDF_set_horiz_scaling »
  • PHP Manual
  • Функции PDF
  • Activate graphics state object

PDF_set_gstate

(PECL pdflib >= 2.0.0)

PDF_set_gstate — Activate graphics state object

Описание

bool PDF_set_gstate ( resource $pdfdoc , int $gstate )

Activates a graphics state object.


Set horizontal text scaling [deprecated]

  • « PDF_set_gstate
  • PDF_set_info_author »
  • PHP Manual
  • Функции PDF
  • Set horizontal text scaling [deprecated]

PDF_set_horiz_scaling

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_horiz_scaling — Set horizontal text scaling [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with parameter horizscaling instead.


Fill the author document info field [deprecated]

  • « PDF_set_horiz_scaling
  • PDF_set_info_creator »
  • PHP Manual
  • Функции PDF
  • Fill the author document info field [deprecated]

PDF_set_info_author

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_author — Fill the author document info field [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.


Fill the creator document info field [deprecated]

  • « PDF_set_info_author
  • PDF_set_info_keywords »
  • PHP Manual
  • Функции PDF
  • Fill the creator document info field [deprecated]

PDF_set_info_creator

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_creator — Fill the creator document info field [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.


Fill the keywords document info field [deprecated]

  • « PDF_set_info_creator
  • PDF_set_info_subject »
  • PHP Manual
  • Функции PDF
  • Fill the keywords document info field [deprecated]

PDF_set_info_keywords

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_keywords — Fill the keywords document info field [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.


Fill the subject document info field [deprecated]

  • « PDF_set_info_keywords
  • PDF_set_info_title »
  • PHP Manual
  • Функции PDF
  • Fill the subject document info field [deprecated]

PDF_set_info_subject

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_subject — Fill the subject document info field [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.


Fill the title document info field [deprecated]

  • « PDF_set_info_subject
  • PDF_set_info »
  • PHP Manual
  • Функции PDF
  • Fill the title document info field [deprecated]

PDF_set_info_title

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_info_title — Fill the title document info field [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_info() instead.


Fill document info field

  • « PDF_set_info_title
  • PDF_set_layer_dependency »
  • PHP Manual
  • Функции PDF
  • Fill document info field

PDF_set_info

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_info — Fill document info field

Описание

bool PDF_set_info ( resource $p , string $key , string $value )

Fill document information field key with value. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Define relationships among layers

  • « PDF_set_info
  • PDF_set_leading »
  • PHP Manual
  • Функции PDF
  • Define relationships among layers

PDF_set_layer_dependency

(PECL pdflib >= 2.0.0)

PDF_set_layer_dependency — Define relationships among layers

Описание

bool PDF_set_layer_dependency ( resource $pdfdoc , string $type , string $optlist )

Defines hierarchical and group relationships among layers. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function requires PDF 1.5.


Set distance between text lines [deprecated]

  • « PDF_set_layer_dependency
  • PDF_set_parameter »
  • PHP Manual
  • Функции PDF
  • Set distance between text lines [deprecated]

PDF_set_leading

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_leading — Set distance between text lines [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with the parameter leading instead.


Set string parameter

  • « PDF_set_leading
  • PDF_set_text_matrix »
  • PHP Manual
  • Функции PDF
  • Set string parameter

PDF_set_parameter

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_parameter — Set string parameter

Описание

bool PDF_set_parameter ( resource $p , string $key , string $value )

Sets some PDFlib parameter with string type. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set text matrix [deprecated]

  • « PDF_set_parameter
  • PDF_set_text_pos »
  • PHP Manual
  • Функции PDF
  • Set text matrix [deprecated]

PDF_set_text_matrix

(PHP 4 <= 4.0.4)

PDF_set_text_matrix — Set text matrix [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_scale(), PDF_translate(), PDF_rotate(), or PDF_skew() instead.


Устанавливает позицию текста

  • « PDF_set_text_matrix
  • PDF_set_text_rendering »
  • PHP Manual
  • Функции PDF
  • Устанавливает позицию текста

PDF_set_text_pos

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_pos — Устанавливает позицию текста

Описание

bool PDF_set_text_pos ( resource $p , float $x , float $y )

Устанавливает позицию вывода текста на страницу. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Determine text rendering [deprecated]

  • « PDF_set_text_pos
  • PDF_set_text_rise »
  • PHP Manual
  • Функции PDF
  • Determine text rendering [deprecated]

PDF_set_text_rendering

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_rendering — Determine text rendering [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with the textrendering parameter instead.


Set text rise [deprecated]

  • « PDF_set_text_rendering
  • PDF_set_value »
  • PHP Manual
  • Функции PDF
  • Set text rise [deprecated]

PDF_set_text_rise

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_text_rise — Set text rise [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with the textrise parameter instead.


Set numerical parameter

  • « PDF_set_text_rise
  • PDF_set_word_spacing »
  • PHP Manual
  • Функции PDF
  • Set numerical parameter

PDF_set_value

(PHP 4 >= 4.0.1, PECL pdflib >= 1.0.0)

PDF_set_value — Set numerical parameter

Описание

bool PDF_set_value ( resource $p , string $key , float $value )

Sets the value of some PDFlib parameter with numerical type. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set spacing between words [deprecated]

  • « PDF_set_value
  • PDF_setcolor »
  • PHP Manual
  • Функции PDF
  • Set spacing between words [deprecated]

PDF_set_word_spacing

(PHP 4, PECL pdflib >= 1.0.0)

PDF_set_word_spacing — Set spacing between words [deprecated]

Описание

This function is deprecated since PDFlib version 3, use PDF_set_value() with the wordspacing parameter instead.


Set fill and stroke color

  • « PDF_set_word_spacing
  • PDF_setdash »
  • PHP Manual
  • Функции PDF
  • Set fill and stroke color

PDF_setcolor

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setcolor — Set fill and stroke color

Описание

bool PDF_setcolor ( resource $p , string $fstype , string $colorspace , float $c1 , float $c2 , float $c3 , float $c4 )

Sets the current color space and color. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set simple dash pattern

  • « PDF_setcolor
  • PDF_setdashpattern »
  • PHP Manual
  • Функции PDF
  • Set simple dash pattern

PDF_setdash

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setdash — Set simple dash pattern

Описание

bool PDF_setdash ( resource $pdfdoc , float $b , float $w )

Sets the current dash pattern to b black and w white units. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set dash pattern

  • « PDF_setdash
  • PDF_setflat »
  • PHP Manual
  • Функции PDF
  • Set dash pattern

PDF_setdashpattern

(PECL pdflib >= 2.0.0)

PDF_setdashpattern — Set dash pattern

Описание

bool PDF_setdashpattern ( resource $pdfdoc , string $optlist )

Sets a dash pattern defined by an option list. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set flatness

  • « PDF_setdashpattern
  • PDF_setfont »
  • PHP Manual
  • Функции PDF
  • Set flatness

PDF_setflat

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setflat — Set flatness

Описание

bool PDF_setflat ( resource $pdfdoc , float $flatness )

Sets the flatness parameter. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set font

  • « PDF_setflat
  • PDF_setgray_fill »
  • PHP Manual
  • Функции PDF
  • Set font

PDF_setfont

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setfont — Set font

Описание

bool PDF_setfont ( resource $pdfdoc , int $font , float $fontsize )

Sets the current font in the specified fontsize, using a font handle returned by PDF_load_font(). Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set fill color to gray [deprecated]

  • « PDF_setfont
  • PDF_setgray_stroke »
  • PHP Manual
  • Функции PDF
  • Set fill color to gray [deprecated]

PDF_setgray_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray_fill — Set fill color to gray [deprecated]

Описание

bool PDF_setgray_fill ( resource $p , float $g )

Sets the current fill color to a gray value between 0 and 1 inclusive. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Set stroke color to gray [deprecated]

  • « PDF_setgray_fill
  • PDF_setgray »
  • PHP Manual
  • Функции PDF
  • Set stroke color to gray [deprecated]

PDF_setgray_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray_stroke — Set stroke color to gray [deprecated]

Описание

bool PDF_setgray_stroke ( resource $p , float $g )

Sets the current stroke color to a gray value between 0 and 1 inclusive. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Set color to gray [deprecated]

  • « PDF_setgray_stroke
  • PDF_setlinecap »
  • PHP Manual
  • Функции PDF
  • Set color to gray [deprecated]

PDF_setgray

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setgray — Set color to gray [deprecated]

Описание

bool PDF_setgray ( resource $p , float $g )

Sets the current fill and stroke color to a gray value between 0 and 1 inclusive. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Set linecap parameter

  • « PDF_setgray
  • PDF_setlinejoin »
  • PHP Manual
  • Функции PDF
  • Set linecap parameter

PDF_setlinecap

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinecap — Set linecap parameter

Описание

bool PDF_setlinecap ( resource $p , int $linecap )

Sets the linecap parameter to control the shape at the end of a path with respect to stroking.


Set linejoin parameter

  • « PDF_setlinecap
  • PDF_setlinewidth »
  • PHP Manual
  • Функции PDF
  • Set linejoin parameter

PDF_setlinejoin

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinejoin — Set linejoin parameter

Описание

bool PDF_setlinejoin ( resource $p , int $value )

Sets the linejoin parameter to specify the shape at the corners of paths that are stroked. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set line width

  • « PDF_setlinejoin
  • PDF_setmatrix »
  • PHP Manual
  • Функции PDF
  • Set line width

PDF_setlinewidth

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setlinewidth — Set line width

Описание

bool PDF_setlinewidth ( resource $p , float $width )

Sets the current line width. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set current transformation matrix

  • « PDF_setlinewidth
  • PDF_setmiterlimit »
  • PHP Manual
  • Функции PDF
  • Set current transformation matrix

PDF_setmatrix

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setmatrix — Set current transformation matrix

Описание

bool PDF_setmatrix ( resource $p , float $a , float $b , float $c , float $d , float $e , float $f )

Explicitly sets the current transformation matrix. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set miter limit

  • « PDF_setmatrix
  • PDF_setpolydash »
  • PHP Manual
  • Функции PDF
  • Set miter limit

PDF_setmiterlimit

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setmiterlimit — Set miter limit

Описание

bool PDF_setmiterlimit ( resource $pdfdoc , float $miter )

Sets the miter limit.Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set complicated dash pattern [deprecated]

  • « PDF_setmiterlimit
  • PDF_setrgbcolor_fill »
  • PHP Manual
  • Функции PDF
  • Set complicated dash pattern [deprecated]

PDF_setpolydash

(PHP 4 >= 4.0.5, PECL pdflib >= 1.0.0)

PDF_setpolydash — Set complicated dash pattern [deprecated]

Описание

This function is deprecated since PDFlib version 5, use PDF_setdashpattern() instead.


Set fill rgb color values [deprecated]

  • « PDF_setpolydash
  • PDF_setrgbcolor_stroke »
  • PHP Manual
  • Функции PDF
  • Set fill rgb color values [deprecated]

PDF_setrgbcolor_fill

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor_fill — Set fill rgb color values [deprecated]

Описание

bool PDF_setrgbcolor_fill ( resource $p , float $red , float $green , float $blue )

Sets the current fill color to the supplied RGB values. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Set stroke rgb color values [deprecated]

  • « PDF_setrgbcolor_fill
  • PDF_setrgbcolor »
  • PHP Manual
  • Функции PDF
  • Set stroke rgb color values [deprecated]

PDF_setrgbcolor_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor_stroke — Set stroke rgb color values [deprecated]

Описание

bool PDF_setrgbcolor_stroke ( resource $p , float $red , float $green , float $blue )

Sets the current stroke color to the supplied RGB values. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Set fill and stroke rgb color values [deprecated]

  • « PDF_setrgbcolor_stroke
  • PDF_shading_pattern »
  • PHP Manual
  • Функции PDF
  • Set fill and stroke rgb color values [deprecated]

PDF_setrgbcolor

(PHP 4, PECL pdflib >= 1.0.0)

PDF_setrgbcolor — Set fill and stroke rgb color values [deprecated]

Описание

bool PDF_setrgbcolor ( resource $p , float $red , float $green , float $blue )

Sets the current fill and stroke color to the supplied RGB values. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

This function is deprecated since PDFlib version 4, use PDF_setcolor() instead.


Define shading pattern

  • « PDF_setrgbcolor
  • PDF_shading »
  • PHP Manual
  • Функции PDF
  • Define shading pattern

PDF_shading_pattern

(PECL pdflib >= 2.0.0)

PDF_shading_pattern — Define shading pattern

Описание

int PDF_shading_pattern ( resource $pdfdoc , int $shading , string $optlist )

Defines a shading pattern using a shading object.

This function requires PDF 1.4 or above.


Define blend

  • « PDF_shading_pattern
  • PDF_shfill »
  • PHP Manual
  • Функции PDF
  • Define blend

PDF_shading

(PECL pdflib >= 2.0.0)

PDF_shading — Define blend

Описание

int PDF_shading ( resource $pdfdoc , string $shtype , float $x0 , float $y0 , float $x1 , float $y1 , float $c1 , float $c2 , float $c3 , float $c4 , string $optlist )

Defines a blend from the current fill color to another color.

This function requires PDF 1.4 or above.


Fill area with shading

  • « PDF_shading
  • PDF_show_boxed »
  • PHP Manual
  • Функции PDF
  • Fill area with shading

PDF_shfill

(PECL pdflib >= 2.0.0)

PDF_shfill — Fill area with shading

Описание

bool PDF_shfill ( resource $pdfdoc , int $shading )

Fills an area with a shading, based on a shading object.

This function requires PDF 1.4 or above.


Output text in a box [deprecated]

  • « PDF_shfill
  • PDF_show_xy »
  • PHP Manual
  • Функции PDF
  • Output text in a box [deprecated]

PDF_show_boxed

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show_boxed — Output text in a box [deprecated]

Описание

int PDF_show_boxed ( resource $p , string $text , float $left , float $top , float $width , float $height , string $mode , string $feature )

This function is deprecated since PDFlib version 6, use PDF_fit_textline() for single lines, or the PDF_*_textflow() functions for multi-line formatting instead.


Output text at given position

  • « PDF_show_boxed
  • PDF_show »
  • PHP Manual
  • Функции PDF
  • Output text at given position

PDF_show_xy

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show_xy — Output text at given position

Описание

bool PDF_show_xy ( resource $p , string $text , float $x , float $y )

Prints text in the current font. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Output text at current position

  • « PDF_show_xy
  • PDF_skew »
  • PHP Manual
  • Функции PDF
  • Output text at current position

PDF_show

(PHP 4, PECL pdflib >= 1.0.0)

PDF_show — Output text at current position

Описание

bool PDF_show ( resource $pdfdoc , string $text )

Prints text in the current font and size at the current position. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Skew the coordinate system

  • « PDF_show
  • PDF_stringwidth »
  • PHP Manual
  • Функции PDF
  • Skew the coordinate system

PDF_skew

(PHP 4, PECL pdflib >= 1.0.0)

PDF_skew — Skew the coordinate system

Описание

bool PDF_skew ( resource $p , float $alpha , float $beta )

Skews the coordinate system in x and y direction by alpha and beta degrees, respectively. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Return width of text

  • « PDF_skew
  • PDF_stroke »
  • PHP Manual
  • Функции PDF
  • Return width of text

PDF_stringwidth

(PHP 4, PECL pdflib >= 1.0.0)

PDF_stringwidth — Return width of text

Описание

float PDF_stringwidth ( resource $p , string $text , int $font , float $fontsize )

Returns the width of text in an arbitrary font.


Stroke path

  • « PDF_stringwidth
  • PDF_suspend_page »
  • PHP Manual
  • Функции PDF
  • Stroke path

PDF_stroke

(PHP 4, PECL pdflib >= 1.0.0)

PDF_stroke — Stroke path

Описание

bool PDF_stroke ( resource $p )

Strokes the path with the current color and line width, and clear it. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Suspend page

  • « PDF_stroke
  • PDF_translate »
  • PHP Manual
  • Функции PDF
  • Suspend page

PDF_suspend_page

(PECL pdflib >= 2.0.0)

PDF_suspend_page — Suspend page

Описание

bool PDF_suspend_page ( resource $pdfdoc , string $optlist )

Suspends the current page so that it can later be resumed with PDF_resume_page().


Set origin of coordinate system

  • « PDF_suspend_page
  • PDF_utf16_to_utf8 »
  • PHP Manual
  • Функции PDF
  • Set origin of coordinate system

PDF_translate

(PHP 4, PECL pdflib >= 1.0.0)

PDF_translate — Set origin of coordinate system

Описание

bool PDF_translate ( resource $p , float $tx , float $ty )

Translates the origin of the coordinate system.


Конвертирует строку из UTF-16 в UTF-8

  • « PDF_translate
  • PDF_utf32_to_utf16 »
  • PHP Manual
  • Функции PDF
  • Конвертирует строку из UTF-16 в UTF-8

PDF_utf16_to_utf8

(PECL pdflib >= 2.0.3)

PDF_utf16_to_utf8 — Конвертирует строку из UTF-16 в UTF-8

Описание

string PDF_utf16_to_utf8 ( resource $pdfdoc , string $utf16string )

Конвертирует строку из формата UTF-16 в формат UTF-8.


Конвертирует строку из UTF-32 в UTF-16

  • « PDF_utf16_to_utf8
  • PDF_utf8_to_utf16 »
  • PHP Manual
  • Функции PDF
  • Конвертирует строку из UTF-32 в UTF-16

PDF_utf32_to_utf16

(PECL pdflib >= Unknown future)

PDF_utf32_to_utf16 — Конвертирует строку из UTF-32 в UTF-16

Описание

string PDF_utf32_to_utf16 ( resource $pdfdoc , string $utf32string , string $ordering )

Конвертирует строку из формата UTF-32 в формат UTF-16.


Конвертирует строку из UTF-8 в UTF-16

  • « PDF_utf32_to_utf16
  • PS »
  • PHP Manual
  • Функции PDF
  • Конвертирует строку из UTF-8 в UTF-16

PDF_utf8_to_utf16

(PECL pdflib >= 2.0.3)

PDF_utf8_to_utf16 — Конвертирует строку из UTF-8 в UTF-16

Описание

string PDF_utf8_to_utf16 ( resource $pdfdoc , string $utf8string , string $ordering )

Конвертирует строку из формата UTF-8 в формат UTF-16.


Создание документов PostScript

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • PS Функции
    • ps_add_bookmark — Добавляет закладку на текущую страницу
    • ps_add_launchlink — Adds link which launches file
    • ps_add_locallink — Adds link to a page in the same document
    • ps_add_note — Adds note to current page
    • ps_add_pdflink — Adds link to a page in a second pdf document
    • ps_add_weblink — Adds link to a web location
    • ps_arc — Draws an arc counterclockwise
    • ps_arcn — Draws an arc clockwise
    • ps_begin_page — Start a new page
    • ps_begin_pattern — Start a new pattern
    • ps_begin_template — Start a new template
    • ps_circle — Draws a circle
    • ps_clip — Clips drawing to current path
    • ps_close_image — Closes image and frees memory
    • ps_close — Closes a PostScript document
    • ps_closepath_stroke — Closes and strokes path
    • ps_closepath — Closes path
    • ps_continue_text — Continue text in next line
    • ps_curveto — Draws a curve
    • ps_delete — Deletes all resources of a PostScript document
    • ps_end_page — End a page
    • ps_end_pattern — End a pattern
    • ps_end_template — End a template
    • ps_fill_stroke — Fills and strokes the current path
    • ps_fill — Fills the current path
    • ps_findfont — Loads a font
    • ps_get_buffer — Fetches the full buffer containig the generated PS data
    • ps_get_parameter — Gets certain parameters
    • ps_get_value — Gets certain values
    • ps_hyphenate — Hyphenates a word
    • ps_include_file — Reads an external file with raw PostScript code
    • ps_lineto — Draws a line
    • ps_makespotcolor — Create spot color
    • ps_moveto — Sets current point
    • ps_new — Creates a new PostScript document object
    • ps_open_file — Opens a file for output
    • ps_open_image_file — Opens image from file
    • ps_open_image — Reads an image for later placement
    • ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document
    • ps_place_image — Places image on the page
    • ps_rect — Draws a rectangle
    • ps_restore — Restore previously save context
    • ps_rotate — Sets rotation factor
    • ps_save — Save current context
    • ps_scale — Sets scaling factor
    • ps_set_border_color — Sets color of border for annotations
    • ps_set_border_dash — Sets length of dashes for border of annotations
    • ps_set_border_style — Sets border style of annotations
    • ps_set_info — Sets information fields of document
    • ps_set_parameter — Sets certain parameters
    • ps_set_text_pos — Sets position for text output
    • ps_set_value — Sets certain values
    • ps_setcolor — Sets current color
    • ps_setdash — Sets appearance of a dashed line
    • ps_setflat — Sets flatness
    • ps_setfont — Sets font to use for following output
    • ps_setgray — Sets gray value
    • ps_setlinecap — Sets appearance of line ends
    • ps_setlinejoin — Sets how contected lines are joined
    • ps_setlinewidth — Sets width of a line
    • ps_setmiterlimit — Sets the miter limit
    • ps_setoverprintmode — Sets overprint mode
    • ps_setpolydash — Sets appearance of a dashed line
    • ps_shading_pattern — Creates a pattern based on a shading
    • ps_shading — Creates a shading for later use
    • ps_shfill — Fills an area with a shading
    • ps_show_boxed — Output text in a box
    • ps_show_xy2 — Output text at position
    • ps_show_xy — Output text at given position
    • ps_show2 — Output a text at current position
    • ps_show — Output text
    • ps_string_geometry — Gets geometry of a string
    • ps_stringwidth — Gets width of a string
    • ps_stroke — Draws the current path
    • ps_symbol_name — Gets name of a glyph
    • ps_symbol_width — Gets width of a glyph
    • ps_symbol — Output a glyph
    • ps_translate — Sets translation


Введение

Это расширение позволяет создавать документы в формате PostScript. Оно имеет много общего с расширением для создания PDF. На самом деле, API обоих расширений практически одинаковые и в большинстве случаев отличаются только префиксом функций: pdf_ и ps_. Причем, это касается и таких функций, которые, казалось бы, не имеют смысла в документах PostScript (например, добавление гиперссылок), но сработают при конвертации документа в PDF.

Документы, создаваемые этим расширением в некоторых случаях выглядят даже лучше, чем сгенерированные с помощью расширения PDF из-за того, что функции рендеринга библиотеки pslib поддерживают обработку кернинга, переносов и связок, существенно улучшающих вид выводимого текста.


Требования

Требуется библиотека pslib версии 0.1.12 или выше. Библиотеку pslib можно скачать тут: » http://pslib.sourceforge.net/.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/ps.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

В этом расширении определен ресурс PostScript document, возвращаемый функцией ps_new().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Две следующие таблицы содержат все константы, определяемые расширением PS.

Константы для оконцовок линий
Константа | Значение
ps_LINECAP_BUTT | Заостренные
ps_LINECAP_ROUND | Закругленные
ps_LINECAP_SQUARED | Прямоугольные
Константы, определяющие вид пересечения линий
Константа | Значение
ps_LINEJOIN_MITER | Прямоугольное соединение
ps_LINEJOIN_ROUND | Скругленное
ps_LINEJOIN_BEVEL | Скошенное


PS Функции

Контакты

Комментарии, исправления и предложения по улучшению этого расширения или библиотеки pslib присылайте на почту » steinm@php.net. Приветствуется любая помощь.

Содержание

  • ps_add_bookmark — Добавляет закладку на текущую страницу
  • ps_add_launchlink — Adds link which launches file
  • ps_add_locallink — Adds link to a page in the same document
  • ps_add_note — Adds note to current page
  • ps_add_pdflink — Adds link to a page in a second pdf document
  • ps_add_weblink — Adds link to a web location
  • ps_arc — Draws an arc counterclockwise
  • ps_arcn — Draws an arc clockwise
  • ps_begin_page — Start a new page
  • ps_begin_pattern — Start a new pattern
  • ps_begin_template — Start a new template
  • ps_circle — Draws a circle
  • ps_clip — Clips drawing to current path
  • ps_close_image — Closes image and frees memory
  • ps_close — Closes a PostScript document
  • ps_closepath_stroke — Closes and strokes path
  • ps_closepath — Closes path
  • ps_continue_text — Continue text in next line
  • ps_curveto — Draws a curve
  • ps_delete — Deletes all resources of a PostScript document
  • ps_end_page — End a page
  • ps_end_pattern — End a pattern
  • ps_end_template — End a template
  • ps_fill_stroke — Fills and strokes the current path
  • ps_fill — Fills the current path
  • ps_findfont — Loads a font
  • ps_get_buffer — Fetches the full buffer containig the generated PS data
  • ps_get_parameter — Gets certain parameters
  • ps_get_value — Gets certain values
  • ps_hyphenate — Hyphenates a word
  • ps_include_file — Reads an external file with raw PostScript code
  • ps_lineto — Draws a line
  • ps_makespotcolor — Create spot color
  • ps_moveto — Sets current point
  • ps_new — Creates a new PostScript document object
  • ps_open_file — Opens a file for output
  • ps_open_image_file — Opens image from file
  • ps_open_image — Reads an image for later placement
  • ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document
  • ps_place_image — Places image on the page
  • ps_rect — Draws a rectangle
  • ps_restore — Restore previously save context
  • ps_rotate — Sets rotation factor
  • ps_save — Save current context
  • ps_scale — Sets scaling factor
  • ps_set_border_color — Sets color of border for annotations
  • ps_set_border_dash — Sets length of dashes for border of annotations
  • ps_set_border_style — Sets border style of annotations
  • ps_set_info — Sets information fields of document
  • ps_set_parameter — Sets certain parameters
  • ps_set_text_pos — Sets position for text output
  • ps_set_value — Sets certain values
  • ps_setcolor — Sets current color
  • ps_setdash — Sets appearance of a dashed line
  • ps_setflat — Sets flatness
  • ps_setfont — Sets font to use for following output
  • ps_setgray — Sets gray value
  • ps_setlinecap — Sets appearance of line ends
  • ps_setlinejoin — Sets how contected lines are joined
  • ps_setlinewidth — Sets width of a line
  • ps_setmiterlimit — Sets the miter limit
  • ps_setoverprintmode — Sets overprint mode
  • ps_setpolydash — Sets appearance of a dashed line
  • ps_shading_pattern — Creates a pattern based on a shading
  • ps_shading — Creates a shading for later use
  • ps_shfill — Fills an area with a shading
  • ps_show_boxed — Output text in a box
  • ps_show_xy2 — Output text at position
  • ps_show_xy — Output text at given position
  • ps_show2 — Output a text at current position
  • ps_show — Output text
  • ps_string_geometry — Gets geometry of a string
  • ps_stringwidth — Gets width of a string
  • ps_stroke — Draws the current path
  • ps_symbol_name — Gets name of a glyph
  • ps_symbol_width — Gets width of a glyph
  • ps_symbol — Output a glyph
  • ps_translate — Sets translation


Добавляет закладку на текущую страницу

  • « PS Функции
  • ps_add_launchlink »
  • PHP Manual
  • PS Функции
  • Добавляет закладку на текущую страницу

ps_add_bookmark

(PECL ps >= 1.1.0)

ps_add_bookmark — Добавляет закладку на текущую страницу

Описание

int ps_add_bookmark ( resource $psdoc , string $text [, int $parent = 0 [, int $open = 0 ]] )

Добавляет закладку на текущую страницу. Закладки обычно видны в программах просмотра PDF слева от страницы в иерархическом дереве. Нажатие на закладку открывает страницу, на которую она ссылается.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Идентификатор ресурса, возвращаемый ps_new(), ссылающегося на postscript-файл..

text

Описание закладки.

parent

Закладка, созданная этой же функцией, которая будет указана в качестве предка текущей закладки.

open

Если open не равен нулю, то закладка будет открываться при отображении файла в программе просмотра PDF файлов.

Возвращаемые значения

Возвращаемое функцией значение является ссылкой на закладку. Эта ссылка используется в случае построения иерархии закладок, если нужно указать созданную закладку как предка. Если функция отработала нормально, возвращаемое значение будет больше нуля. Если функция завершилась с ошибкой, то она вернет ноль.

Смотрите также

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds link which launches file

  • « ps_add_bookmark
  • ps_add_locallink »
  • PHP Manual
  • PS Функции
  • Adds link which launches file

ps_add_launchlink

(PECL ps >= 1.1.0)

ps_add_launchlink — Adds link which launches file

Описание

bool ps_add_launchlink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $filename )

Places a hyperlink at the given position pointing to a file program which is being started when clicked on. The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

filename

The path of the program to be started, when the link is clicked on.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds link to a page in the same document

  • « ps_add_launchlink
  • ps_add_note »
  • PHP Manual
  • PS Функции
  • Adds link to a page in the same document

ps_add_locallink

(PECL ps >= 1.1.0)

ps_add_locallink — Adds link to a page in the same document

Описание

bool ps_add_locallink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , int $page , string $dest )

Places a hyperlink at the given position pointing to a page in the same document. Clicking on the link will jump to the given page. The first page in a document has number 1.

The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

page

The number of the page displayed when clicking on the link.

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_weblink() - Adds link to a web location


Adds note to current page

  • « ps_add_locallink
  • ps_add_pdflink »
  • PHP Manual
  • PS Функции
  • Adds note to current page

ps_add_note

(PECL ps >= 1.1.0)

ps_add_note — Adds note to current page

Описание

bool ps_add_note ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $contents , string $title , string $icon , int $open )

Adds a note at a certain position on the page. Notes are like little rectangular sheets with text on it, which can be placed anywhere on a page. They are shown either folded or unfolded. If folded, the specified icon is used as a placeholder.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

contents

The text of the note.

title

The title of the note as displayed in the header of the note.

icon

The icon shown if the note is folded. This parameter can be set to comment, insert, note, paragraph, newparagraph, key, or help.

open

If open is unequal to zero the note will be shown unfolded after opening the document with a pdf viewer.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_add_pdflink() - Adds link to a page in a second pdf document
  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_weblink() - Adds link to a web location


Adds link to a page in a second pdf document

  • « ps_add_note
  • ps_add_weblink »
  • PHP Manual
  • PS Функции
  • Adds link to a page in a second pdf document

ps_add_pdflink

(PECL ps >= 1.1.0)

ps_add_pdflink — Adds link to a page in a second pdf document

Описание

bool ps_add_pdflink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $filename , int $page , string $dest )

Places a hyperlink at the given position pointing to a second pdf document. Clicking on the link will branch to the document at the given page. The first page in a document has number 1.

The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

filename

The name of the pdf document to be opened when clicking on this link.

page

The page number of the destination pdf document

dest

The parameter dest determines how the document is being viewed. It can be fitpage, fitwidth, fitheight, or fitbbox.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_weblink() - Adds link to a web location


Adds link to a web location

  • « ps_add_pdflink
  • ps_arc »
  • PHP Manual
  • PS Функции
  • Adds link to a web location

ps_add_weblink

(PECL ps >= 1.1.0)

ps_add_weblink — Adds link to a web location

Описание

bool ps_add_weblink ( resource $psdoc , float $llx , float $lly , float $urx , float $ury , string $url )

Places a hyperlink at the given position pointing to a web page. The hyperlink's source position is a rectangle with its lower left corner at (llx, lly) and its upper right corner at (urx, ury). The rectangle has by default a thin blue border.

Примечание не будет отображаться при печати или просмотре документа, но будет показано при конвертировании документа в pdf с помощью Acrobat Distiller™ или Ghostview.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

llx

The x-coordinate of the lower left corner.

lly

The y-coordinate of the lower left corner.

urx

The x-coordinate of the upper right corner.

ury

The y-coordinate of the upper right corner.

url

The url of the hyperlink to be opened when clicking on this link, e.g. http://www.php.net.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_add_launchlink() - Adds link which launches file
  • ps_add_locallink() - Adds link to a page in the same document
  • ps_add_pdflink() - Adds link to a page in a second pdf document


Draws an arc counterclockwise

  • « ps_add_weblink
  • ps_arcn »
  • PHP Manual
  • PS Функции
  • Draws an arc counterclockwise

ps_arc

(PECL ps >= 1.1.0)

ps_arc — Draws an arc counterclockwise

Описание

bool ps_arc ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta )

Draws a portion of a circle with at middle point at (x, y). The arc starts at an angle of alpha and ends at an angle of beta. It is drawn counterclockwise (use ps_arcn() to draw clockwise). The subpath added to the current path starts on the arc at angle alpha and ends on the arc at angle beta.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

alpha

The start angle given in degrees.

beta

The end angle given in degrees.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_arcn() - Draws an arc clockwise


Draws an arc clockwise

  • « ps_arc
  • ps_begin_page »
  • PHP Manual
  • PS Функции
  • Draws an arc clockwise

ps_arcn

(PECL ps >= 1.1.0)

ps_arcn — Draws an arc clockwise

Описание

bool ps_arcn ( resource $psdoc , float $x , float $y , float $radius , float $alpha , float $beta )

Draws a portion of a circle with at middle point at (x, y). The arc starts at an angle of alpha and ends at an angle of beta. It is drawn clockwise (use ps_arc() to draw counterclockwise). The subpath added to the current path starts on the arc at angle beta and ends on the arc at angle alpha.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

alpha

The starting angle given in degrees.

beta

The end angle given in degrees.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_arc() - Draws an arc counterclockwise


Start a new page

  • « ps_arcn
  • ps_begin_pattern »
  • PHP Manual
  • PS Функции
  • Start a new page

ps_begin_page

(PECL ps >= 1.1.0)

ps_begin_page — Start a new page

Описание

bool ps_begin_page ( resource $psdoc , float $width , float $height )

Starts a new page. Although the parameters width and height imply a different page size for each page, this is not possible in PostScript. The first call of ps_begin_page() will set the page size for the whole document. Consecutive calls will have no effect, except for creating a new page. The situation is different if you intent to convert the PostScript document into PDF. This function places pdfmarks into the document which can set the size for each page indiviually. The resulting PDF document will have different page sizes.

Though PostScript does not know different page sizes, pslib places a bounding box for each page into the document. This size is evaluated by some PostScript viewers and will have precedence over the BoundingBox in the Header of the document. This can lead to unexpected results when you set a BoundingBox whose lower left corner is not (0, 0), because the bounding box of the page will always have a lower left corner (0, 0) and overwrites the global setting.

Each page is encapsulated into save/restore. This means, that most of the settings made on one page will not be retained on the next page.

If there is up to the first call of ps_begin_page() no call of ps_findfont(), then the header of the PostScript document will be output and the bounding box will be set to the size of the first page. The lower left corner of the bounding box is set to (0, 0). If ps_findfont() was called before, then the header has been output already, and the document will not have a valid bounding box. In order to prevent this, one should call ps_set_info() to set the info field BoundingBox and possibly Orientation before any ps_findfont() or ps_begin_page() calls.

Замечание:

Up to version 0.2.6 of pslib, this function will always overwrite the BoundingBox and Orientation, if it has been set before with ps_set_info() and ps_findfont() has not been called before.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the page in pixel, e.g. 596 for A4 format.

height

The height of the page in pixel, e.g. 842 for A4 format.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_end_page() - End a page
  • ps_findfont() - Loads a font
  • ps_set_info() - Sets information fields of document


Start a new pattern

  • « ps_begin_page
  • ps_begin_template »
  • PHP Manual
  • PS Функции
  • Start a new pattern

ps_begin_pattern

(PECL ps >= 1.2.0)

ps_begin_pattern — Start a new pattern

Описание

int ps_begin_pattern ( resource $psdoc , float $width , float $height , float $xstep , float $ystep , int $painttype )

Starts a new pattern. A pattern is like a page containing e.g. a drawing which can be used for filling areas. It is used like a color by calling ps_setcolor() and setting the color space to pattern.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the pattern in pixel.

height

The height of the pattern in pixel.

x-step

The distance in pixel of placements of the pattern in horizontal direction.

y-step

The distance in pixel of placements of the pattern in vertical direction.

painttype

Must be 1 or 2.

Возвращаемые значения

The identifier of the pattern или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Creating and using a pattern

<?php
$ps = ps_new();

if (!ps_open_file($ps, "pattern.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "pattern.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Pattern example");

$pspattern = ps_begin_pattern($ps, 10.0, 10.0, 10.0, 10.0, 1);
ps_setlinewidth($ps, 0.2);
ps_setcolor($ps, "stroke", "rgb", 0.0, 0.0, 1.0, 0.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 7, 7);
ps_stroke($ps);
ps_moveto($ps, 0, 7);
ps_lineto($ps, 7, 0);
ps_stroke($ps);
ps_end_pattern($ps);

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "both", "pattern", $pspattern, 0.0, 0.0, 0.0);
ps_rect($ps, 50, 400, 200, 200);
ps_fill($ps);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Смотрите также

  • ps_end_pattern() - End a pattern
  • ps_setcolor() - Sets current color
  • ps_shading_pattern() - Creates a pattern based on a shading


Start a new template

  • « ps_begin_pattern
  • ps_circle »
  • PHP Manual
  • PS Функции
  • Start a new template

ps_begin_template

(PECL ps >= 1.2.0)

ps_begin_template — Start a new template

Описание

int ps_begin_template ( resource $psdoc , float $width , float $height )

Starts a new template. A template is called a form in the postscript language. It is created similar to a pattern but used like an image. Templates are often used for drawings which are placed several times through out the document, e.g. like a company logo. All drawing functions may be used within a template. The template will not be drawn until it is placed by ps_place_image().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of the template in pixel.

height

The height of the template in pixel.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Creating and using a template

<?php
$ps = ps_new();

if (!ps_open_file($ps, "template.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_parameter($ps, "warning", "true");
ps_set_info($ps, "Creator", "template.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Template example");

$pstemplate = ps_begin_template($ps, 30.0, 30.0);
ps_moveto($ps, 0, 0);
ps_lineto($ps, 30, 30);
ps_moveto($ps, 0, 30);
ps_lineto($ps, 30, 0);
ps_stroke($ps);
ps_end_template($ps);

ps_begin_page($ps, 596, 842);
ps_place_image($ps, $pstemplate, 20.0, 20.0, 1.0);
ps_place_image($ps, $pstemplate, 50.0, 30.0, 0.5);
ps_place_image($ps, $pstemplate, 70.0, 70.0, 0.6);
ps_place_image($ps, $pstemplate, 30.0, 50.0, 1.3);
ps_end_page($ps);

ps_close($ps);
ps_delete($ps);
?>

Смотрите также

  • ps_end_template() - End a template


Draws a circle

  • « ps_begin_template
  • ps_clip »
  • PHP Manual
  • PS Функции
  • Draws a circle

ps_circle

(PECL ps >= 1.1.0)

ps_circle — Draws a circle

Описание

bool ps_circle ( resource $psdoc , float $x , float $y , float $radius )

Draws a circle with its middle point at (x, y). The circle starts and ends at position (x+radius, y). If this function is called outside a path it will start a new path. If it is called within a path it will add the circle as a subpath. If the last drawing operation does not end in point (x+radius, y) then there will be a gap in the path.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

The x-coordinate of the circle's middle point.

y

The y-coordinate of the circle's middle point.

radius

The radius of the circle

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_arc() - Draws an arc counterclockwise
  • ps_arcn() - Draws an arc clockwise


Clips drawing to current path

  • « ps_circle
  • ps_close_image »
  • PHP Manual
  • PS Функции
  • Clips drawing to current path

ps_clip

(PECL ps >= 1.1.0)

ps_clip — Clips drawing to current path

Описание

bool ps_clip ( resource $psdoc )

Takes the current path and uses it to define the border of a clipping area. Everything drawn outside of that area will not be visible.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_closepath() - Closes path


Closes image and frees memory

  • « ps_clip
  • ps_close »
  • PHP Manual
  • PS Функции
  • Closes image and frees memory

ps_close_image

(PECL ps >= 1.1.0)

ps_close_image — Closes image and frees memory

Описание

void ps_close_image ( resource $psdoc , int $imageid )

Closes an image and frees its resources. Once an image is closed it cannot be used anymore.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

imageid

Resource identifier of the image as returned by ps_open_image() or ps_open_image_file().

Возвращаемые значения

Returns NULL on success или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_open_image() - Reads an image for later placement
  • ps_open_image_file() - Opens image from file


Closes a PostScript document

  • « ps_close_image
  • ps_closepath_stroke »
  • PHP Manual
  • PS Функции
  • Closes a PostScript document

ps_close

(PECL ps >= 1.1.0)

ps_close — Closes a PostScript document

Описание

bool ps_close ( resource $psdoc )

Closes the PostScript document.

This function writes the trailer of the PostScript document. It also writes the bookmark tree. ps_close() does not free any resources, which is done by ps_delete().

This function is also called by ps_delete() if it has not been called before.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_open_file() - Opens a file for output
  • ps_delete() - Deletes all resources of a PostScript document


Closes and strokes path

  • « ps_close
  • ps_closepath »
  • PHP Manual
  • PS Функции
  • Closes and strokes path

ps_closepath_stroke

(PECL ps >= 1.1.0)

ps_closepath_stroke — Closes and strokes path

Описание

bool ps_closepath_stroke ( resource $psdoc )

Connects the last point with first point of a path and draws the resulting closed line.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_closepath() - Closes path


Closes path

  • « ps_closepath_stroke
  • ps_continue_text »
  • PHP Manual
  • PS Функции
  • Closes path

ps_closepath

(PECL ps >= 1.1.0)

ps_closepath — Closes path

Описание

bool ps_closepath ( resource $psdoc )

Connects the last point with the first point of a path. The resulting path can be used for stroking, filling, clipping, etc..

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_clip() - Clips drawing to current path
  • ps_closepath_stroke() - Closes and strokes path


Continue text in next line

  • « ps_closepath
  • ps_curveto »
  • PHP Manual
  • PS Функции
  • Continue text in next line

ps_continue_text

(PECL ps >= 1.1.0)

ps_continue_text — Continue text in next line

Описание

bool ps_continue_text ( resource $psdoc , string $text )

Output a text one line below the last line. The line spacing is taken from the value "leading" which must be set with ps_set_value(). The actual position of the text is determined by the values "textx" and "texty" which can be requested with ps_get_value()

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to output.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_show() - Output text
  • ps_show_xy() - Output text at given position
  • ps_show_boxed() - Output text in a box


Draws a curve

  • « ps_continue_text
  • ps_delete »
  • PHP Manual
  • PS Функции
  • Draws a curve

ps_curveto

(PECL ps >= 1.1.0)

ps_curveto — Draws a curve

Описание

bool ps_curveto ( resource $psdoc , float $x1 , float $y1 , float $x2 , float $y2 , float $x3 , float $y3 )

Add a section of a cubic Bezier curve described by the three given control points to the current path.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x1

x-coordinate of first control point.

y1

y-coordinate of first control point.

x2

x-coordinate of second control point.

y2

y-coordinate of second control point.

x3

x-coordinate of third control point.

y3

y-coordinate of third control point.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_lineto() - Draws a line


Deletes all resources of a PostScript document

  • « ps_curveto
  • ps_end_page »
  • PHP Manual
  • PS Функции
  • Deletes all resources of a PostScript document

ps_delete

(PECL ps >= 1.1.0)

ps_delete — Deletes all resources of a PostScript document

Описание

bool ps_delete ( resource $psdoc )

Mainly frees memory used by the document. Also closes a file, if it was not closed before with ps_close(). You should in any case close the file with ps_close() before, because ps_close() not just closes the file but also outputs a trailor containing PostScript comments like the number of pages in the document and adding the bookmark hierarchy.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_close() - Closes a PostScript document


End a page

  • « ps_delete
  • ps_end_pattern »
  • PHP Manual
  • PS Функции
  • End a page

ps_end_page

(PECL ps >= 1.1.0)

ps_end_page — End a page

Описание

bool ps_end_page ( resource $psdoc )

Ends a page which was started with ps_begin_page(). Ending a page will leave the current drawing context, which e.g. requires to reload fonts if they were loading within the page, and to set many other drawing parameters like the line width, or color..

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_begin_page() - Start a new page


End a pattern

  • « ps_end_page
  • ps_end_template »
  • PHP Manual
  • PS Функции
  • End a pattern

ps_end_pattern

(PECL ps >= 1.2.0)

ps_end_pattern — End a pattern

Описание

bool ps_end_pattern ( resource $psdoc )

Ends a pattern which was started with ps_begin_pattern(). Once a pattern has been ended, it can be used like a color to fill areas.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_begin_pattern() - Start a new pattern


End a template

  • « ps_end_pattern
  • ps_fill_stroke »
  • PHP Manual
  • PS Функции
  • End a template

ps_end_template

(PECL ps >= 1.2.0)

ps_end_template — End a template

Описание

bool ps_end_template ( resource $psdoc )

Ends a template which was started with ps_begin_template(). Once a template has been ended, it can be used like an image.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_begin_template() - Start a new template


Fills and strokes the current path

  • « ps_end_template
  • ps_fill »
  • PHP Manual
  • PS Функции
  • Fills and strokes the current path

ps_fill_stroke

(PECL ps >= 1.1.0)

ps_fill_stroke — Fills and strokes the current path

Описание

bool ps_fill_stroke ( resource $psdoc )

Fills and draws the path constructed with previously called drawing functions like ps_lineto().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_fill() - Fills the current path
  • ps_stroke() - Draws the current path


Fills the current path

  • « ps_fill_stroke
  • ps_findfont »
  • PHP Manual
  • PS Функции
  • Fills the current path

ps_fill

(PECL ps >= 1.1.0)

ps_fill — Fills the current path

Описание

bool ps_fill ( resource $psdoc )

Fills the path constructed with previously called drawing functions like ps_lineto().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_fill_stroke() - Fills and strokes the current path
  • ps_stroke() - Draws the current path


Loads a font

  • « ps_fill
  • ps_get_buffer »
  • PHP Manual
  • PS Функции
  • Loads a font

ps_findfont

(PECL ps >= 1.1.0)

ps_findfont — Loads a font

Описание

int ps_findfont ( resource $psdoc , string $fontname , string $encoding [, bool $embed = false ] )

Loads a font for later use. Before text is output with a loaded font it must be set with ps_setfont(). This function needs the adobe font metric file in order to calculate the space used up by the characters. A font which is loaded within a page will only be available on that page. Fonts which are to be used in the complete document have to be loaded before the first call of ps_begin_page(). Calling ps_findfont() between pages will make that font available for all following pages.

The name of the afm file must be fontname.afm. If the font shall be embedded the file fontname.pfb containing the font outline must be present as well.

Calling ps_findfont() before the first page requires to output the postscript header which includes the BoundingBox for the whole document. Usually the BoundingBox is set with the first call of ps_begin_page() which now comes after ps_findfont(). Consequently the BoundingBox has not been set and a warning will be issued when ps_findfont() is called. In order to prevent this situation, one should call ps_set_parameter() to set the BoundingBox before ps_findfont() is called.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

fontname

The name of the font.

encoding

ps_findfont() will try to load the file passed in the parameter encoding. Encoding files are of the same syntax as those used by dvips(1). They contain a font encoding vector (which is currently not used but must be present) and a list of extra ligatures to extend the list of ligatures derived from the afm file.

encoding can be NULL or the empty string if the default encoding (TeXBase1) shall be used.

If the encoding is set to builtin then there will be no reencoding and the font specific encoding will be used. This is very useful with symbol fonts.

embed

If set to a value >0 the font will be embedded into the document. This requires the font outline (.pfb file) to be present.

Возвращаемые значения

Returns the identifier of the font or zero in case of an error. The identifier is a positive number.

Смотрите также

  • ps_begin_page() - Start a new page
  • ps_setfont() - Sets font to use for following output


Fetches the full buffer containig the generated PS data

  • « ps_findfont
  • ps_get_parameter »
  • PHP Manual
  • PS Функции
  • Fetches the full buffer containig the generated PS data

ps_get_buffer

(PECL ps >= 1.1.0)

ps_get_buffer — Fetches the full buffer containig the generated PS data

Описание

string ps_get_buffer ( resource $psdoc )

This function is not implemented yet. It will always return an empty string. The idea for a later implementation is to write the contents of the postscript file into an internal buffer if in memory creation is requested, and retrieve the buffer content with this function. Currently, documents created in memory are send to the browser without buffering.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Смотрите также

  • ps_open_file() - Opens a file for output


Gets certain parameters

  • « ps_get_buffer
  • ps_get_value »
  • PHP Manual
  • PS Функции
  • Gets certain parameters

ps_get_parameter

(PECL ps >= 1.1.0)

ps_get_parameter — Gets certain parameters

Описание

string ps_get_parameter ( resource $psdoc , string $name [, float $modifier ] )

Gets several parameters which were directly set by ps_set_parameter() or indirectly by one of the other functions. Parameters are by definition string values. This function cannot be used to retrieve resources which were also set by ps_set_parameter().

The parameter name can have the following values.

fontname

The name of the currently active font or the font whose identifier is passed in parameter modifier.

fontencoding

The encoding of the currently active font.

dottedversion

The version of the underlying pslib library in the format <major>.<minor>.<subminor>

scope

The current drawing scope. Can be object, document, null, page, pattern, path, template, prolog, font, glyph.

ligaturedisolvechar

The character which dissolves a ligature. If your are using a font which contains the ligature `ff' and `|' is the char to dissolve the ligature, then `f|f' will result in two `f' instead of the ligature `ff'.

imageencoding

The encoding used for encoding images. Can be either hex or 85. hex encoding uses two bytes in the postscript file each byte in the image. 85 stand for Ascii85 encoding.

linenumbermode

Set to paragraph if lines are numbered within a paragraph or box if they are numbered within the surrounding box.

linebreak

Only used if text is output with ps_show_boxed(). If set to TRUE a carriage return will add a line break.

parbreak

Only used if text is output with ps_show_boxed(). If set to TRUE a carriage return will start a new paragraph.

hyphenation

Only used if text is output with ps_show_boxed(). If set to TRUE the paragraph will be hyphenated if a hypen dictionary is set and exists.

hyphendict

Filename of the dictionary used for hyphenation pattern.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the parameter.

modifier

An identifier needed if a parameter of a resource is requested, e.g. the size of an image. In such a case the resource id is passed.

Возвращаемые значения

Returns the value of the parameter или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_set_parameter() - Sets certain parameters


Gets certain values

  • « ps_get_parameter
  • ps_hyphenate »
  • PHP Manual
  • PS Функции
  • Gets certain values

ps_get_value

(PECL ps >= 1.1.0)

ps_get_value — Gets certain values

Описание

float ps_get_value ( resource $psdoc , string $name [, float $modifier ] )

Gets several values which were set by ps_set_value(). Values are by definition float values.

The parameter name can have the following values.

fontsize

The size of the currently active font or the font whose identifier is passed in parameter modifier.

font

The currently active font itself.

imagewidth

The width of the image whose id is passed in the parameter modifier.

imageheight

The height of the image whose id is passed in the parameter modifier.

capheight

The height of a capital M in the currently active font or the font whose identifier is passed in parameter modifier.

ascender

The ascender of the currently active font or the font whose identifier is passed in parameter modifier.

descender

The descender of the currently active font or the font whose identifier is passed in parameter modifier.

italicangle

The italicangle of the currently active font or the font whose identifier is passed in parameter modifier.

underlineposition

The underlineposition of the currently active font or the font whose identifier is passed in parameter modifier.

underlinethickness

The underlinethickness of the currently active font or the font whose identifier is passed in parameter modifier.

textx

The current x-position for text output.

texty

The current y-position for text output.

textrendering

The current mode for text rendering.

textrise

The space by which text is risen above the base line.

leading

The distance between text lines in points.

wordspacing

The space between words as a multiple of the width of a space char.

charspacing

The space between chars. If charspacing is != 0.0 ligatures will always be dissolved.

hyphenminchars

Minimum number of chars hyphenated at the end of a word.

parindent

Indention of the first n line in a paragraph.

numindentlines

Number of line in a paragraph to indent if parindent != 0.0.

parskip

Distance between paragraphs.

linenumberspace

Overall space in front of each line for the line number.

linenumbersep

Space between the line and the line number.

major

The major version number of pslib.

minor

The minor version number of pslib.

subminor, revision

The subminor version number of pslib.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the value.

modifier

The parameter modifier specifies the resource for which the value is to be retrieved. This can be the id of a font or an image.

Возвращаемые значения

Returns the value of the parameter or FALSE.

Смотрите также

  • ps_set_value() - Sets certain values


Hyphenates a word

  • « ps_get_value
  • ps_include_file »
  • PHP Manual
  • PS Функции
  • Hyphenates a word

ps_hyphenate

(PECL ps >= 1.1.1)

ps_hyphenate — Hyphenates a word

Описание

array ps_hyphenate ( resource $psdoc , string $text )

Hyphenates the passed word. ps_hyphenate() evaluates the value hyphenminchars (set by ps_set_value()) and the parameter hyphendict (set by ps_set_parameter()). hyphendict must be set before calling this function.

This function requires the locale category LC_CTYPE to be set properly. This is done when the extension is initialized by using the environment variables. On Unix systems read the man page of locale for more information.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

text should not contain any non alpha characters. Possible positions for breaks are returned in an array of interger numbers. Each number is the position of the char in text after which a hyphenation can take place.

Возвращаемые значения

An array of integers indicating the position of possible breaks in the text или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Hyphennate a text

<?php
$word = "Koordinatensystem";
$psdoc = ps_new();
ps_set_parameter($psdoc, "hyphendict", "hyph_de.dic");
$hyphens = ps_hyphenate($psdoc, $word);
for($i=0; $i<strlen($word); $i++) {
  echo $word[$i];
  if(in_array($i, $hyphens))
    echo "-";
}
ps_delete($psdoc);
?>

Результат выполнения данного примера:

Ko-ordi-na-ten-sys-tem

Смотрите также

  • ps_show_boxed() - Output text in a box
  • locale(1)


Reads an external file with raw PostScript code

  • « ps_hyphenate
  • ps_lineto »
  • PHP Manual
  • PS Функции
  • Reads an external file with raw PostScript code

ps_include_file

(PECL ps >= 1.3.4)

ps_include_file — Reads an external file with raw PostScript code

Описание

bool ps_include_file ( resource $psdoc , string $file )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

file

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Draws a line

  • « ps_include_file
  • ps_makespotcolor »
  • PHP Manual
  • PS Функции
  • Draws a line

ps_lineto

(PECL ps >= 1.1.0)

ps_lineto — Draws a line

Описание

bool ps_lineto ( resource $psdoc , float $x , float $y )

Adds a straight line from the current point to the given coordinates to the current path. Use ps_moveto() to set the starting point of the line.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the end point of the line.

y

y-coordinate of the end point of the line.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Drawing a rectangle

<?php
$ps = ps_new();
if (!ps_open_file($ps, "rectangle.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Lineto example");

ps_begin_page($ps, 596, 842);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

Смотрите также

  • ps_moveto() - Sets current point


Create spot color

  • « ps_lineto
  • ps_moveto »
  • PHP Manual
  • PS Функции
  • Create spot color

ps_makespotcolor

(PECL ps >= 1.1.0)

ps_makespotcolor — Create spot color

Описание

int ps_makespotcolor ( resource $psdoc , string $name [, int $reserved = 0 ] )

Creates a spot color from the current fill color. The fill color must be defined in rgb, cmyk or gray colorspace. The spot color name can be an arbitrary name. A spot color can be set as any color with ps_setcolor(). When the document is not printed but displayed by an postscript viewer the given color in the specified color space is use.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

Name of the spot color, e.g. Pantone 5565.

Возвращаемые значения

The id of the new spot color or 0 in case of an error.

Примеры

Пример #1 Creating and using a spot color

<?php
$ps = ps_new();
if (!ps_open_file($ps, "spotcolor.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "spotcolor.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Spot color example");

ps_begin_page($ps, 596, 842);
ps_setcolor($ps, "fill", "cmyk", 0.37, 0.0, 0.34, 0.34);
$spotcolor = ps_makespotcolor($ps, "PANTONE 5565 C", 0);
ps_setcolor($ps, "fill", "spot", $spotcolor, 0.5, 0.0, 0.0);
ps_moveto($ps, 100, 100);
ps_lineto($ps, 100, 200);
ps_lineto($ps, 200, 200);
ps_lineto($ps, 200, 100);
ps_lineto($ps, 100, 100);
ps_fill($ps);
ps_end_page($ps);

ps_delete($ps);
?>

This example creates the spot color "PANTONE 5565 C" which is a darker green (olive) and fills a rectangle with 50% intensity.

Смотрите также

  • ps_setcolor() - Sets current color


Sets current point

  • « ps_makespotcolor
  • ps_new »
  • PHP Manual
  • PS Функции
  • Sets current point

ps_moveto

(PECL ps >= 1.1.0)

ps_moveto — Sets current point

Описание

bool ps_moveto ( resource $psdoc , float $x , float $y )

Sets the current point to new coordinates. If this is the first call of ps_moveto() after a previous path has been ended then it will start a new path. If this function is called in the middle of a path it will just set the current point and start a subpath.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the point to move to.

y

y-coordinate of the point to move to.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_lineto() - Draws a line


Creates a new PostScript document object

  • « ps_moveto
  • ps_open_file »
  • PHP Manual
  • PS Функции
  • Creates a new PostScript document object

ps_new

(PECL ps >= 1.1.0)

ps_new — Creates a new PostScript document object

Описание

resource ps_new ( void )

Creates a new document instance. It does not create the file on disk or in memory, it just sets up everything. ps_new() is usually followed by a call of ps_open_file() to actually create the postscript document.

Возвращаемые значения

Resource of PostScript document или FALSE в случае возникновения ошибки. The return value is passed to all other functions as the first argument.

Смотрите также

  • ps_delete() - Deletes all resources of a PostScript document


Opens a file for output

  • « ps_new
  • ps_open_image_file »
  • PHP Manual
  • PS Функции
  • Opens a file for output

ps_open_file

(PECL ps >= 1.1.0)

ps_open_file — Opens a file for output

Описание

bool ps_open_file ( resource $psdoc [, string $filename ] )

Creates a new file on disk and writes the PostScript document into it. The file will be closed when ps_close() is called.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

filename

The name of the postscript file. If filename is not passed the document will be created in memory and all output will go straight to the browser.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_close() - Closes a PostScript document


Opens image from file

  • « ps_open_file
  • ps_open_image »
  • PHP Manual
  • PS Функции
  • Opens image from file

ps_open_image_file

(PECL ps >= 1.1.0)

ps_open_image_file — Opens image from file

Описание

int ps_open_image_file ( resource $psdoc , string $type , string $filename [, string $stringparam [, int $intparam = 0 ]] )

Loads an image for later use.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of the image. Possible values are png, jpeg, or eps.

filename

The name of the file containing the image data.

stringparam

Not used.

intparam

Not used.

Возвращаемые значения

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

Смотрите также

  • ps_open_image() - Reads an image for later placement
  • ps_place_image() - Places image on the page
  • ps_close_image() - Closes image and frees memory


Reads an image for later placement

  • « ps_open_image_file
  • ps_open_memory_image »
  • PHP Manual
  • PS Функции
  • Reads an image for later placement

ps_open_image

(PECL ps >= 1.1.0)

ps_open_image — Reads an image for later placement

Описание

int ps_open_image ( resource $psdoc , string $type , string $source , string $data , int $lenght , int $width , int $height , int $components , int $bpc , string $params )

Reads an image which is already available in memory. The parameter source is currently not evaluated and assumed to be memory. The image data is a sequence of pixels starting in th upper left corner and ending in the lower right corner. Each pixel consists of components color components, and each component has bpc bits.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of the image. Possible values are png, jpeg, or eps.

source

Not used.

data

The image data.

length

The length of the image data.

width

The width of the image.

height

The height of the image.

components

The number of components for each pixel. This can be 1 (gray scale images), 3 (rgb images), or 4 (cmyk, rgba images).

bpc

Number of bits per component (quite often 8).

params

Возвращаемые значения

Returns identifier of image or zero in case of an error. The identifier is a positive number greater than 0.

Смотрите также

  • ps_open_image_file() - Opens image from file
  • ps_place_image() - Places image on the page
  • ps_close_image() - Closes image and frees memory


Takes an GD image and returns an image for placement in a PS document

  • « ps_open_image
  • ps_place_image »
  • PHP Manual
  • PS Функции
  • Takes an GD image and returns an image for placement in a PS document

ps_open_memory_image

(PECL ps >= 1.1.0)

ps_open_memory_image — Takes an GD image and returns an image for placement in a PS document

Описание

int ps_open_memory_image ( resource $psdoc , int $gd )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

gd


Places image on the page

  • « ps_open_memory_image
  • ps_rect »
  • PHP Manual
  • PS Функции
  • Places image on the page

ps_place_image

(PECL ps >= 1.1.0)

ps_place_image — Places image on the page

Описание

bool ps_place_image ( resource $psdoc , int $imageid , float $x , float $y , float $scale )

Places a formerly loaded image on the page. The image can be scaled. If the image shall be rotated as well, you will have to rotate the coordinate system before with ps_rotate().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

imageid

The resource identifier of the image as returned by ps_open_image() or ps_open_image_file().

x

x-coordinate of the lower left corner of the image.

y

y-coordinate of the lower left corner of the image.

scale

The scaling factor for the image. A scale of 1.0 will result in a resolution of 72 dpi, because each pixel is equivalent to 1 point.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_open_image() - Reads an image for later placement
  • ps_open_image_file() - Opens image from file


Draws a rectangle

  • « ps_place_image
  • ps_restore »
  • PHP Manual
  • PS Функции
  • Draws a rectangle

ps_rect

(PECL ps >= 1.1.0)

ps_rect — Draws a rectangle

Описание

bool ps_rect ( resource $psdoc , float $x , float $y , float $width , float $height )

Draws a rectangle with its lower left corner at (x, y). The rectangle starts and ends in its lower left corner. If this function is called outside a path it will start a new path. If it is called within a path it will add the rectangle as a subpath. If the last drawing operation does not end in the lower left corner then there will be a gap in the path.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the lower left corner of the rectangle.

y

y-coordinate of the lower left corner of the rectangle.

width

The width of the image.

height

The height of the image.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_arc() - Draws an arc counterclockwise
  • ps_cirle()
  • ps_lineto() - Draws a line


Restore previously save context

  • « ps_rect
  • ps_rotate »
  • PHP Manual
  • PS Функции
  • Restore previously save context

ps_restore

(PECL ps >= 1.1.0)

ps_restore — Restore previously save context

Описание

bool ps_restore ( resource $psdoc )

Restores a previously saved graphics context. Any call of ps_save() must be accompanied by a call to ps_restore(). All coordinate transformations, line style settings, color settings, etc. are being restored to the state before the call of ps_save().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_save() - Save current context


Sets rotation factor

  • « ps_restore
  • ps_save »
  • PHP Manual
  • PS Функции
  • Sets rotation factor

ps_rotate

(PECL ps >= 1.1.0)

ps_rotate — Sets rotation factor

Описание

bool ps_rotate ( resource $psdoc , float $rot )

Sets the rotation of the coordinate system.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

rot

Angle of rotation in degree.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Rotation of the coordinate system

<?php
function rectangle($ps) {
    ps_moveto($ps, 0, 0);
    ps_lineto($ps, 0, 50);
    ps_lineto($ps, 50, 50);
    ps_lineto($ps, 50, 0);
    ps_lineto($ps, 0, 0);
    ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "rotation.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rotation.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Rotation example");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 100, 100);
ps_rotate($ps, 45);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text without rotation");
ps_end_page($ps);

ps_delete($ps);
?>

The above example illustrates a very common way of rotating a graphic (in this case just a rectangle) by simply rotating the coordinate system. Since the graphic's coordinate system assumes (0,0) to be the origin, the page coordinate system is also translated to place the graphics not on the edge of the page. Pay attention to the order of ps_translate() and ps_rotate(). In the above case the rectancle is rotated around the point (100, 100) in the untranslated coordinate system. Switching the two statements has a completely different result.

In order to output the following text at the original position, all modifications of the coordinate system are encapsulated in ps_save() and ps_restore().

Смотрите также

  • ps_scale() - Sets scaling factor
  • ps_translate() - Sets translation


Save current context

  • « ps_rotate
  • ps_scale »
  • PHP Manual
  • PS Функции
  • Save current context

ps_save

(PECL ps >= 1.1.0)

ps_save — Save current context

Описание

bool ps_save ( resource $psdoc )

Saves the current graphics context, containing colors, translation and rotation settings and some more. A saved context can be restored with ps_restore().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_restore() - Restore previously save context


Sets scaling factor

  • « ps_save
  • ps_set_border_color »
  • PHP Manual
  • PS Функции
  • Sets scaling factor

ps_scale

(PECL ps >= 1.1.0)

ps_scale — Sets scaling factor

Описание

bool ps_scale ( resource $psdoc , float $x , float $y )

Sets horizontal and vertical scaling of the coordinate system.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

Scaling factor in horizontal direction.

y

Scaling factor in vertical direction.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_rotate() - Sets rotation factor
  • ps_translate() - Sets translation


Sets color of border for annotations

  • « ps_scale
  • ps_set_border_dash »
  • PHP Manual
  • PS Функции
  • Sets color of border for annotations

ps_set_border_color

(PECL ps >= 1.1.0)

ps_set_border_color — Sets color of border for annotations

Описание

bool ps_set_border_color ( resource $psdoc , float $red , float $green , float $blue )

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the color of the rectangle's border line.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

red

The red component of the border color.

green

The green component of the border color.

blue

The blue component of the border color.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_set_border_dash() - Sets length of dashes for border of annotations
  • ps_set_border_style() - Sets border style of annotations


Sets length of dashes for border of annotations

  • « ps_set_border_color
  • ps_set_border_style »
  • PHP Manual
  • PS Функции
  • Sets length of dashes for border of annotations

ps_set_border_dash

(PECL ps >= 1.1.0)

ps_set_border_dash — Sets length of dashes for border of annotations

Описание

bool ps_set_border_dash ( resource $psdoc , float $black , float $white )

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the length of the black and white portion of a dashed border line.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

black

The length of the dash.

white

The length of the gap between dashes.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_set_border_color() - Sets color of border for annotations
  • ps_set_border_style() - Sets border style of annotations


Sets border style of annotations

  • « ps_set_border_dash
  • ps_set_info »
  • PHP Manual
  • PS Функции
  • Sets border style of annotations

ps_set_border_style

(PECL ps >= 1.1.0)

ps_set_border_style — Sets border style of annotations

Описание

bool ps_set_border_style ( resource $psdoc , string $style , float $width )

Links added with one of the functions ps_add_weblink(), ps_add_pdflink(), etc. will be displayed with a surounded rectangle when the postscript document is converted to pdf and viewed in a pdf viewer. This rectangle is not visible in the postscript document. This function sets the appearance and width of the border line.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

style

style can be solid or dashed.

width

The line width of the border.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_set_border_color() - Sets color of border for annotations
  • ps_set_border_dash() - Sets length of dashes for border of annotations


Sets information fields of document

  • « ps_set_border_style
  • ps_set_parameter »
  • PHP Manual
  • PS Функции
  • Sets information fields of document

ps_set_info

(PECL ps >= 1.1.0)

ps_set_info — Sets information fields of document

Описание

bool ps_set_info ( resource $p , string $key , string $val )

Sets certain information fields of the document. This fields will be shown as a comment in the header of the PostScript file. If the document is converted to pdf this fields will also be used for the document information.

The BoundingBox is usually set to the value given to the first page. This only works if ps_findfont() has not been called before. In such cases the BoundingBox would be left unset unless you set it explicitly with this function.

This function will have no effect anymore when the header of the postscript file has been already written. It must be called before the first page or the first call of ps_findfont().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

key

The name of the information field to set. The values which can be set are Keywords, Subject, Title, Creator, Author, BoundingBox, and Orientation. Be aware that some of them has a meaning to PostScript viewers.

value

The value of the information field. The field Orientation can be set to either Portrait or Landscape. The BoundingBox is a string consisting of four numbers. The first two numbers are the coordinates of the lower left corner of the page. The last two numbers are the coordinates of the upper right corner.

Замечание:

Up to version 0.2.6 of pslib, the BoundingBox and Orientation will be overwritten by ps_begin_page(), unless ps_findfont() has been called before.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_findfont() - Loads a font
  • ps_begin_page() - Start a new page


Sets certain parameters

  • « ps_set_info
  • ps_set_text_pos »
  • PHP Manual
  • PS Функции
  • Sets certain parameters

ps_set_parameter

(PECL ps >= 1.1.0)

ps_set_parameter — Sets certain parameters

Описание

bool ps_set_parameter ( resource $psdoc , string $name , string $value )

Sets several parameters which are used by many functions. Parameters are by definition string values.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

For a list of possible names see ps_get_parameter().

value

The value of the parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_get_parameters()
  • ps_set_value() - Sets certain values


Sets position for text output

  • « ps_set_parameter
  • ps_set_value »
  • PHP Manual
  • PS Функции
  • Sets position for text output

ps_set_text_pos

(PECL ps >= 1.1.0)

ps_set_text_pos — Sets position for text output

Описание

bool ps_set_text_pos ( resource $psdoc , float $x , float $y )

Set the position for the next text output. You may alternatively set the x and y value separately by calling ps_set_value() and choosing textx respectively texty as the value name.

If you want to output text at a certain position it is more convenient to use ps_show_xy() instead of setting the text position and calling ps_show().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the new text position.

y

y-coordinate of the new text position.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Placing text at a given position

<?php
$ps = ps_new();
if (!ps_open_file($ps, "text.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "rectangle.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Text placement example");

ps_begin_page($ps, 596, 842);
$psfont = ps_findfont($ps, "Helvetica", "", 0);
ps_setfont($ps, $psfont, 8.0);
ps_show_xy($ps, "Some text at (100, 100)", 100, 100);

ps_set_value($ps, "textx", 100);
ps_set_value($ps, "texty", 120);
ps_show($ps, "Some text at (100, 120)");
ps_end_page($ps);

ps_delete($ps);
?>

Смотрите также

  • ps_set_value() - Sets certain values
  • ps_show() - Output text


Sets certain values

  • « ps_set_text_pos
  • ps_setcolor »
  • PHP Manual
  • PS Функции
  • Sets certain values

ps_set_value

(PECL ps >= 1.1.0)

ps_set_value — Sets certain values

Описание

bool ps_set_value ( resource $psdoc , string $name , float $value )

Sets several values which are used by many functions. Parameters are by definition float values.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

name

The name can be one of the following:

textrendering

The way how text is shown.

textx

The x coordinate for text output.

texty

The y coordinate for text output.

wordspacing

The distance between words relative to the width of a space.

leading

The distance between lines in pixels.

value

The value of the parameter.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_get_value() - Gets certain values
  • ps_set_parameter() - Sets certain parameters


Sets current color

  • « ps_set_value
  • ps_setdash »
  • PHP Manual
  • PS Функции
  • Sets current color

ps_setcolor

(PECL ps >= 1.1.0)

ps_setcolor — Sets current color

Описание

bool ps_setcolor ( resource $psdoc , string $type , string $colorspace , float $c1 , float $c2 , float $c3 , float $c4 )

Sets the color for drawing, filling, or both.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The parameter type can be both, fill, or fillstroke.

colorspace

The colorspace should be one of gray, rgb, cmyk, spot, pattern. Depending on the colorspace either only the first, the first three or all parameters will be used.

c1

Depending on the colorspace this is either the red component (rgb), the cyan component (cmyk), the gray value (gray), the identifier of the spot color or the identifier of the pattern.

c2

Depending on the colorspace this is either the green component (rgb), the magenta component (cmyk).

c3

Depending on the colorspace this is either the blue component (rgb), the yellow component (cmyk).

c4

This must only be set in cmyk colorspace and specifies the black component.

Bugs

The second parameter is currently not always evaluated. The color is sometimes set for filling and drawing just as if fillstroke were passed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets appearance of a dashed line

  • « ps_setcolor
  • ps_setflat »
  • PHP Manual
  • PS Функции
  • Sets appearance of a dashed line

ps_setdash

(PECL ps >= 1.1.0)

ps_setdash — Sets appearance of a dashed line

Описание

bool ps_setdash ( resource $psdoc , float $on , float $off )

Sets the length of the black and white portions of a dashed line.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

on

The length of the dash.

off

The length of the gap between dashes.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setpolydash() - Sets appearance of a dashed line


Sets flatness

  • « ps_setdash
  • ps_setfont »
  • PHP Manual
  • PS Функции
  • Sets flatness

ps_setflat

(PECL ps >= 1.1.0)

ps_setflat — Sets flatness

Описание

bool ps_setflat ( resource $psdoc , float $value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

value

The value must be between 0.2 and 1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets font to use for following output

  • « ps_setflat
  • ps_setgray »
  • PHP Manual
  • PS Функции
  • Sets font to use for following output

ps_setfont

(PECL ps >= 1.1.0)

ps_setfont — Sets font to use for following output

Описание

bool ps_setfont ( resource $psdoc , int $fontid , float $size )

Sets a font, which has to be loaded before with ps_findfont(). Outputting text without setting a font results in an error.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

fontid

The font identifier as returned by ps_findfont().

size

The size of the font.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_findfont() - Loads a font
  • ps_set_text_pos() - Sets position for text output for an example.


Sets gray value

  • « ps_setfont
  • ps_setlinecap »
  • PHP Manual
  • PS Функции
  • Sets gray value

ps_setgray

(PECL ps >= 1.1.0)

ps_setgray — Sets gray value

Описание

bool ps_setgray ( resource $psdoc , float $gray )

Sets the gray value for all following drawing operations.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

gray

The value must be between 0 (white) and 1 (black).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setcolor() - Sets current color


Sets appearance of line ends

  • « ps_setgray
  • ps_setlinejoin »
  • PHP Manual
  • PS Функции
  • Sets appearance of line ends

ps_setlinecap

(PECL ps >= 1.1.0)

ps_setlinecap — Sets appearance of line ends

Описание

bool ps_setlinecap ( resource $psdoc , int $type )

Sets how line ends look like.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of line ends. Possible values are PS_LINECAP_BUTT, PS_LINECAP_ROUND, or PS_LINECAP_SQUARED.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setlinewidth() - Sets width of a line
  • ps_setmiterlimit() - Sets the miter limit


Sets how contected lines are joined

  • « ps_setlinecap
  • ps_setlinewidth »
  • PHP Manual
  • PS Функции
  • Sets how contected lines are joined

ps_setlinejoin

(PECL ps >= 1.1.0)

ps_setlinejoin — Sets how contected lines are joined

Описание

bool ps_setlinejoin ( resource $psdoc , int $type )

Sets how lines are joined.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The way lines are joined. Possible values are PS_LINEJOIN_MITER, PS_LINEJOIN_ROUND, or PS_LINEJOIN_BEVEL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinewidth() - Sets width of a line
  • ps_setmiterlimit() - Sets the miter limit


Sets width of a line

  • « ps_setlinejoin
  • ps_setmiterlimit »
  • PHP Manual
  • PS Функции
  • Sets width of a line

ps_setlinewidth

(PECL ps >= 1.1.0)

ps_setlinewidth — Sets width of a line

Описание

bool ps_setlinewidth ( resource $psdoc , float $width )

Sets the line width for all following drawing operations.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

width

The width of lines in points.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setmiterlimit() - Sets the miter limit


Sets the miter limit

  • « ps_setlinewidth
  • ps_setoverprintmode »
  • PHP Manual
  • PS Функции
  • Sets the miter limit

ps_setmiterlimit

(PECL ps >= 1.1.0)

ps_setmiterlimit — Sets the miter limit

Описание

bool ps_setmiterlimit ( resource $psdoc , float $value )

If two lines join in a small angle and the line join is set to PS_LINEJOIN_MITER, then the resulting spike will be very long. The miter limit is the maximum ratio of the miter length (the length of the spike) and the line width.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

value

The maximum ratio between the miter length and the line width. Larger values (> 10) will result in very long spikes when two lines meet in a small angle. Keep the default unless you know what you are doing.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_setlinecap() - Sets appearance of line ends
  • ps_setlinejoin() - Sets how contected lines are joined
  • ps_setlinewidth() - Sets width of a line


Sets overprint mode

  • « ps_setmiterlimit
  • ps_setpolydash »
  • PHP Manual
  • PS Функции
  • Sets overprint mode

ps_setoverprintmode

(PECL ps >= 1.3.0)

ps_setoverprintmode — Sets overprint mode

Описание

bool ps_setoverprintmode ( resource $psdoc , int $mode )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

mode

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets appearance of a dashed line

  • « ps_setoverprintmode
  • ps_shading_pattern »
  • PHP Manual
  • PS Функции
  • Sets appearance of a dashed line

ps_setpolydash

(PECL ps >= 1.1.0)

ps_setpolydash — Sets appearance of a dashed line

Описание

bool ps_setpolydash ( resource $psdoc , float $arr )

Sets the length of the black and white portions of a dashed line. ps_setpolydash() is used to set more complicated dash patterns.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

arr

arr is a list of length elements alternately for the black and white portion.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Drawing a dashed line

<?php
$ps = ps_new();
if (!ps_open_file($ps, "polydash.ps")) {
   print "Cannot open PostScript file\n";
     exit;
}

ps_set_info($ps, "Creator", "polydash.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Poly dash example");

ps_begin_page($ps, 596, 842);
ps_setpolydash($ps, array(10, 5, 2, 5));
ps_moveto($ps, 100, 100);
ps_lineto($ps, 200, 200);
ps_stroke($ps);
ps_end_page($ps);

ps_delete($ps);
?>

This example draws a line with a 10 and 2 points long line, and gaps of 5 points inbetween.

Смотрите также

  • ps_setdash() - Sets appearance of a dashed line


Creates a pattern based on a shading

  • « ps_setpolydash
  • ps_shading »
  • PHP Manual
  • PS Функции
  • Creates a pattern based on a shading

ps_shading_pattern

(PECL ps >= 1.3.0)

ps_shading_pattern — Creates a pattern based on a shading

Описание

int ps_shading_pattern ( resource $psdoc , int $shadingid , string $optlist )

Creates a pattern based on a shading, which has to be created before with ps_shading(). Shading patterns can be used like regular patterns.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

shadingid

The identifier of a shading previously created with ps_shading().

optlist

This argument is not currently used.

Возвращаемые значения

The identifier of the pattern или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_shading() - Creates a shading for later use
  • ps_shfill() - Fills an area with a shading


Creates a shading for later use

  • « ps_shading_pattern
  • ps_shfill »
  • PHP Manual
  • PS Функции
  • Creates a shading for later use

ps_shading

(PECL ps >= 1.3.0)

ps_shading — Creates a shading for later use

Описание

int ps_shading ( resource $psdoc , string $type , float $x0 , float $y0 , float $x1 , float $y1 , float $c1 , float $c2 , float $c3 , float $c4 , string $optlist )

Creates a shading, which can be used by ps_shfill() or ps_shading_pattern().

The color of the shading can be in any color space except for pattern.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

type

The type of shading can be either radial or axial. Each shading starts with the current fill color and ends with the given color values passed in the parameters c1 to c4 (see ps_setcolor() for their meaning).

x0, x1, y0, y1

The coordinates x0, y0, x1, y1 are the start and end point of the shading. If the type of shading is radial the two points are the middle points of a starting and ending circle.

c1, c2, c3, c4

See ps_setcolor() for their meaning.

optlist

If the shading is of type radial the optlist must also contain the parameters r0 and r1 with the radius of the start and end circle.

Возвращаемые значения

Returns the identifier of the pattern или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_shading_pattern() - Creates a pattern based on a shading
  • ps_shfill() - Fills an area with a shading


Fills an area with a shading

  • « ps_shading
  • ps_show_boxed »
  • PHP Manual
  • PS Функции
  • Fills an area with a shading

ps_shfill

(PECL ps >= 1.3.0)

ps_shfill — Fills an area with a shading

Описание

bool ps_shfill ( resource $psdoc , int $shadingid )

Fills an area with a shading, which has to be created before with ps_shading(). This is an alternative way to creating a pattern from a shading ps_shading_pattern() and using the pattern as the filling color.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

shadingid

The identifier of a shading previously created with ps_shading().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_shading() - Creates a shading for later use
  • ps_shading_pattern() - Creates a pattern based on a shading


Output text in a box

  • « ps_shfill
  • ps_show_xy2 »
  • PHP Manual
  • PS Функции
  • Output text in a box

ps_show_boxed

(PECL ps >= 1.1.0)

ps_show_boxed — Output text in a box

Описание

int ps_show_boxed ( resource $psdoc , string $text , float $left , float $bottom , float $width , float $height , string $hmode [, string $feature ] )

Outputs a text in a given box. The lower left corner of the box is at (left, bottom). Line breaks will be inserted where needed. Multiple spaces are treated as one. Tabulators are treated as spaces.

The text will be hyphenated if the parameter hyphenation is set to TRUE and the parameter hyphendict contains a valid filename for a hyphenation file. The line spacing is taken from the value leading. Paragraphs can be separated by an empty line just like in TeX. If the value parindent is set to value > 0.0 then the first n lines will be indented. The number n of lines is set by the parameter numindentlines. In order to prevent indenting of the first m paragraphs set the value parindentskip to a positive number.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output into the given box.

left

x-coordinate of the lower left corner of the box.

bottom

y-coordinate of the lower left corner of the box.

width

Width of the box.

height

Height of the box.

hmode

The parameter hmode can be "justify", "fulljustify", "right", "left", or "center". The difference of "justify" and "fulljustify" just affects the last line of the box. In fulljustify mode the last line will be left and right justified unless this is also the last line of paragraph. In justify mode it will always be left justified.

feature

Used parameters

The output of ps_show_boxed() can be configured with several parameters and values which must be set with either ps_set_parameter() or ps_set_value(). Beside the parameters and values which affect text output, the following parameters and values are evaluated.

leading (value)

Distance between baselines of two consecutive lines.

linebreak (parameter)

Set to "true" if you want a carriage return to start a new line instead of treating it as a space. Defaults to "false".

parbreak (parameter)

Set to "true" if you want a carriage return on a single line to start a new paragraph instead of treating it as a space. Defaults to "true".

hyphenation (parameter)

Set to "true" in order to turn hyphenation on. This requires a dictionary to be set with the parameter "hyphendict". Defaults to "false".

hyphendict (parameter)

Filename of the dictionary used for hyphenation pattern (see below).

hyphenminchar (value)

The number of chars which must at least be left over before or after the hyphen. This implies that only words of at least two times this value will be hyphenated. The default value is three. Setting a value of zero will result in the default value.

parindent (value)

Set the amount of space in pixel for indenting the first m lines of a paragraph. m can be set with the value "numindentlines".

parskip (value)

Set the amount of extra space in pixel between paragraphs. Defaults to 0 which will result in a normal line distance.

numindentlines (value)

Number of lines from the start of the paragraph which will be indented. Defaults to 1.

parindentskip (value)

Number of paragraphs in the box whose first lines will not be indented. This defaults to 0. This is useful for paragraphs right after a section heading or text being continued in a second box. In both case one would set this to 1.

linenumbermode (parameter)

Set how lines are to be numbered. Possible values are "box" for numbering lines in the whole box or "paragraph" to number lines within each paragraph.

linenumberspace (value)

The space for the column left of the numbered line containing the line number. The line number will be right justified into this column. Defaults to 20.

linenumbersep (value)

The space between the column with line numbers and the line itself. Defaults to 5.

Hyphenation

Text is hyphenated if the parameter hyphenation is set to true and a valid hyphenation dictionary is set. pslib does not ship its own hyphenation dictionary but uses one from openoffice, scribus or koffice. You can find their dictionaries for different languages in one of the following directories if the software is installed:

  • /usr/share/apps/koffice/hyphdicts/
  • /usr/lib/scribus/dicts/
  • /usr/lib/openoffice/share/dict/ooo/
Currently scribus appears to have the most complete hyphenation dictionaries.

Возвращаемые значения

Number of characters that could not be written.

Смотрите также

  • ps_continue_text() - Continue text in next line


Output text at position

  • « ps_show_boxed
  • ps_show_xy »
  • PHP Manual
  • PS Функции
  • Output text at position

ps_show_xy2

(PECL ps >= 1.1.0)

ps_show_xy2 — Output text at position

Описание

bool ps_show_xy2 ( resource $psdoc , string $text , int $len , float $xcoor , float $ycoor )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Output text at given position

  • « ps_show_xy2
  • ps_show2 »
  • PHP Manual
  • PS Функции
  • Output text at given position

ps_show_xy

(PECL ps >= 1.1.0)

ps_show_xy — Output text at given position

Описание

bool ps_show_xy ( resource $psdoc , string $text , float $x , float $y )

Output a text at the given text position.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

x

x-coordinate of the lower left corner of the box surrounding the text.

y

y-coordinate of the lower left corner of the box surrounding the text.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_continue_text() - Continue text in next line
  • ps_show() - Output text


Output a text at current position

  • « ps_show_xy
  • ps_show »
  • PHP Manual
  • PS Функции
  • Output a text at current position

ps_show2

(PECL ps >= 1.1.0)

ps_show2 — Output a text at current position

Описание

bool ps_show2 ( resource $psdoc , string $text , int $len )

Output text at the current position. Do not print more than len characters.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

len

The maximum number of characters to print.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Output text

  • « ps_show2
  • ps_string_geometry »
  • PHP Manual
  • PS Функции
  • Output text

ps_show

(PECL ps >= 1.1.0)

ps_show — Output text

Описание

bool ps_show ( resource $psdoc , string $text )

Output a text at the current text position. The text position can be set by storing the x and y coordinates into the values textx and texty with the function ps_set_value(). The function will issue an error if a font was not set before with ps_setfont().

ps_show() evaluates the following parameters and values as set by ps_set_parameter() and ps_set_value().

charspacing (value)

Distance between two consecutive glyphs. If this value is unequal to zero then all ligatures will be resolved. Values less than zero are allowed.

kerning (parameter)

Setting this parameter to "false" will turn off kerning. Kerning is turned on by default.

ligatures (parameter)

Setting this parameter to "false" will turn off the use of ligatures. Ligatures are turned on by default.

underline (parameter)

Setting this parameter to "true" will turn on underlining. Underlining is turned off by default.

overline (parameter)

Setting this parameter to "true" will turn on overlining. Overlining is turned off by default.

strikeout (parameter)

Setting this parameter to "true" will turn on striking out. Striking out is turned off by default.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text to be output.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_continue_text() - Continue text in next line
  • ps_show_xy() - Output text at given position
  • ps_setfont() - Sets font to use for following output


Gets geometry of a string

  • « ps_show
  • ps_stringwidth »
  • PHP Manual
  • PS Функции
  • Gets geometry of a string

ps_string_geometry

(PECL ps >= 1.2.0)

ps_string_geometry — Gets geometry of a string

Описание

array ps_string_geometry ( resource $psdoc , string $text [, int $fontid = 0 [, float $size = 0.0 ]] )

This function is similar to ps_stringwidth() but returns an array of dimensions containing the width, ascender, and descender of the text.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text for which the geometry is to be calculated.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Возвращаемые значения

An array of the dimensions of a string. The element 'width' contains the width of the string as returned by ps_stringwidth(). The element 'descender' contains the maximum descender and 'ascender' the maximum ascender of the string.

Смотрите также

  • ps_continue_text() - Continue text in next line
  • ps_stringwidth() - Gets width of a string


Gets width of a string

  • « ps_string_geometry
  • ps_stroke »
  • PHP Manual
  • PS Функции
  • Gets width of a string

ps_stringwidth

(PECL ps >= 1.1.0)

ps_stringwidth — Gets width of a string

Описание

float ps_stringwidth ( resource $psdoc , string $text [, int $fontid = 0 [, float $size = 0.0 ]] )

Calculates the width of a string in points if it was output in the given font and font size. This function needs an Adobe font metrics file to calculate the precise width. If kerning is turned on, it will be taken into account.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

text

The text for which the width is to be calculated.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Возвращаемые значения

Width of a string in points.

Смотрите также

  • ps_string_geometry() - Gets geometry of a string


Draws the current path

  • « ps_stringwidth
  • ps_symbol_name »
  • PHP Manual
  • PS Функции
  • Draws the current path

ps_stroke

(PECL ps >= 1.1.0)

ps_stroke — Draws the current path

Описание

bool ps_stroke ( resource $psdoc )

Draws the path constructed with previously called drawing functions like ps_lineto().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_closepath_stroke() - Closes and strokes path
  • ps_fill() - Fills the current path
  • ps_fill_stroke() - Fills and strokes the current path


Gets name of a glyph

  • « ps_stroke
  • ps_symbol_width »
  • PHP Manual
  • PS Функции
  • Gets name of a glyph

ps_symbol_name

(PECL ps >= 1.2.0)

ps_symbol_name — Gets name of a glyph

Описание

string ps_symbol_name ( resource $psdoc , int $ord [, int $fontid = 0 ] )

This function needs an Adobe font metrics file to know which glyphs are available.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The parameter ord is the position of the glyph in the font encoding vector.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

Возвращаемые значения

The name of a glyph in the given font.

Смотрите также

  • ps_symbol() - Output a glyph
  • ps_symbol_width() - Gets width of a glyph


Gets width of a glyph

  • « ps_symbol_name
  • ps_symbol »
  • PHP Manual
  • PS Функции
  • Gets width of a glyph

ps_symbol_width

(PECL ps >= 1.2.0)

ps_symbol_width — Gets width of a glyph

Описание

float ps_symbol_width ( resource $psdoc , int $ord [, int $fontid = 0 [, float $size = 0.0 ]] )

Calculates the width of a glyph in points if it was output in the given font and font size. This function needs an Adobe font metrics file to calculate the precise width.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The position of the glyph in the font encoding vector.

fontid

The identifier of the font to be used. If not font is specified the current font will be used.

size

The size of the font. If no size is specified the current size is used.

Возвращаемые значения

The width of a glyph in points.

Смотрите также

  • ps_symbol() - Output a glyph
  • ps_symbol_name() - Gets name of a glyph


Output a glyph

  • « ps_symbol_width
  • ps_translate »
  • PHP Manual
  • PS Функции
  • Output a glyph

ps_symbol

(PECL ps >= 1.2.0)

ps_symbol — Output a glyph

Описание

bool ps_symbol ( resource $psdoc , int $ord )

Output the glyph at position ord in the font encoding vector of the current font. The font encoding for a font can be set when loading the font with ps_findfont().

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

ord

The position of the glyph in the font encoding vector.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ps_symbol_name() - Gets name of a glyph
  • ps_symbol_width() - Gets width of a glyph


Sets translation

  • « ps_symbol
  • RPM Reader »
  • PHP Manual
  • PS Функции
  • Sets translation

ps_translate

(PECL ps >= 1.1.0)

ps_translate — Sets translation

Описание

bool ps_translate ( resource $psdoc , float $x , float $y )

Sets a new initial point of the coordinate system.

Список параметров

psdoc

Resource identifier of the postscript file as returned by ps_new().

x

x-coordinate of the origin of the translated coordinate system.

y

y-coordinate of the origin of the translated coordinate system.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Translation of the coordinate system

<?php
function rectangle($ps) {
    ps_moveto($ps, 0, 0);
    ps_lineto($ps, 0, 50);
    ps_lineto($ps, 50, 50);
    ps_lineto($ps, 50, 0);
    ps_lineto($ps, 0, 0);
    ps_stroke($ps);
}

$ps = ps_new();
if (!ps_open_file($ps, "translate.ps")) {
  print "Cannot open PostScript file\n";
  exit;
}

ps_set_info($ps, "Creator", "translate.php");
ps_set_info($ps, "Author", "Uwe Steinmann");
ps_set_info($ps, "Title", "Translated example");
ps_set_info($ps, "BoundingBox", "0 0 596 842");

$psfont = ps_findfont($ps, "Helvetica", "", 0);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_translate($ps, -500, -750);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_begin_page($ps, 596, 842);
ps_set_text_pos($ps, 100, 100);
ps_save($ps);
ps_translate($ps, 500, 750);
rectangle($ps);
ps_restore($ps);
ps_setfont($ps, $psfont, 8.0);
ps_show($ps, "Text at initial position");
ps_end_page($ps);

ps_delete($ps);
?>

The above example demonstrates two possible ways to place a graphic (in this case just a rectangle) at any position on the page, while the graphic itself uses its own coordinate system. The trick is to change the origin of the current coordinate system before drawing the rectangle. The translation has to be undone after the graphic has been drawn.

On the second page a slightly different and more elegant approach is applied. Instead of undoing the translation with a second call of ps_translate() the graphics context is saved before modifying the coordinate system and restored after drawing the rectangle.

Смотрите также

  • ps_scale() - Sets scaling factor
  • ps_rotate() - Sets rotation factor


RPM Header Reading

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Basic usage
  • RPM Reader Функции
    • rpm_close — Closes an RPM file
    • rpm_get_tag — Retrieves a header tag from an RPM file
    • rpm_is_valid — Tests a filename for validity as an RPM file
    • rpm_open — Opens an RPM file
    • rpm_version — Returns a string representing the current version of the rpmreader extension


Введение

This module allows you to read the meta information stored in the headers of a » RedHat Package Manager (» RPM) file.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

The RPMReader extension requires PHP 5.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/rpmreader.


Типы ресурсов

There is one resource type used by the RPMReader module. The resource is a file pointer which identifies the RPM file with which to work.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

The following list of constants are used to obtain information using the rpm_get_tag() function. These constants represent the tag number to be retrieved from the RPM file's header section. Descriptions are given below as to what data the tag number constants reference.

RPMREADER_MINIMUM (integer)
The minimum valid value of any RPM tag number.
RPMREADER_NAME (integer)
The name of the RPM package.
RPMREADER_VERSION (integer)
The version of the RPM package.
RPMREADER_RELEASE (integer)
The release of the RPM package.
RPMREADER_EPOCH (integer)
RPMREADER_SERIAL (integer)
RPMREADER_SUMMARY (integer)
The summary text of the RPM package.
RPMREADER_DESCRIPTION (integer)
The full description text of the RPM package.
RPMREADER_BUILDTIME (integer)
The date and time when the RPM package was built.
RPMREADER_BUILDHOST (integer)
The name of the host on which the RPM package was built.
RPMREADER_INSTALLTIME (integer)
RPMREADER_SIZE (integer)
The size of the RPM package.
RPMREADER_DISTRIBUTION (integer)
RPMREADER_VENDOR (integer)
RPMREADER_GIF (integer)
RPMREADER_XPM (integer)
RPMREADER_LICENSE (integer)
RPMREADER_COPYRIGHT (integer)
RPMREADER_PACKAGER (integer)
RPMREADER_GROUP (integer)
RPMREADER_SOURCE (integer)
RPMREADER_PATCH (integer)
RPMREADER_URL (integer)
RPMREADER_OS (integer)
RPMREADER_ARCH (integer)
RPMREADER_PREIN (integer)
RPMREADER_POSTIN (integer)
RPMREADER_PREUN (integer)
RPMREADER_POSTUN (integer)
RPMREADER_OLDFILENAMES (integer)
The list of files in an RPM package (deprecated format). The correct way is now to use a combination of 3 tags (RPMREADER_BASENAMES, RPMREADER_DIRINDEXES, RPMREADER_DIRNAMES) in what RPM now calls "CompressedFileNames". This tag is still used in older RPM files that did not use the "CompressedFileNames" method and is maintained for backward compatibility.
RPMREADER_FILESIZES (integer)
RPMREADER_FILESTATES (integer)
RPMREADER_FILEMODES (integer)
RPMREADER_FILERDEVS (integer)
RPMREADER_FILEMTIMES (integer)
RPMREADER_FILEMD5S (integer)
RPMREADER_FILELINKTOS (integer)
RPMREADER_FILEFLAGS (integer)
RPMREADER_FILEUSERNAME (integer)
RPMREADER_FILEGROUPNAME (integer)
RPMREADER_ICON (integer)
RPMREADER_SOURCERPM (integer)
RPMREADER_FILEVERIFYFLAGS (integer)
RPMREADER_ARCHIVESIZE (integer)
RPMREADER_PROVIDENAME (integer)
RPMREADER_PROVIDES (integer)
RPMREADER_REQUIREFLAGS (integer)
RPMREADER_REQUIRENAME (integer)
RPMREADER_REQUIREVERSION (integer)
RPMREADER_CONFLICTFLAGS (integer)
RPMREADER_CONFLICTNAME (integer)
RPMREADER_CONFLICTVERSION (integer)
RPMREADER_EXCLUDEARCH (integer)
RPMREADER_EXCLUDEOS (integer)
RPMREADER_EXCLUSIVEARCH (integer)
RPMREADER_EXCLUSIVEOS (integer)
RPMREADER_RPMVERSION (integer)
RPMREADER_TRIGGERSCRIPTS (integer)
RPMREADER_TRIGGERNAME (integer)
RPMREADER_TRIGGERVERSION (integer)
RPMREADER_TRIGGERFLAGS (integer)
RPMREADER_TRIGGERINDEX (integer)
RPMREADER_VERIFYSCRIPT (integer)
RPMREADER_CHANGELOGTIME (integer)
The list of dates from changelog entries.
RPMREADER_CHANGELOGNAME (integer)
The list of changelog entry names.
RPMREADER_CHANGELOGTEXT (integer)
The list of the text from changelog entries.
RPMREADER_PREINPROG (integer)
RPMREADER_POSTINPROG (integer)
RPMREADER_PREUNPROG (integer)
RPMREADER_POSTUNPROG (integer)
RPMREADER_BUILDARCHS (integer)
RPMREADER_OBSOLETENAME (integer)
RPMREADER_OBSOLETES (integer)
RPMREADER_VERIFYSCRIPTPROG (integer)
RPMREADER_TRIGGERSCRIPTPROG (integer)
RPMREADER_COOKIE (integer)
RPMREADER_FILEDEVICES (integer)
RPMREADER_FILEINODES (integer)
RPMREADER_FILELANGS (integer)
RPMREADER_PREFIXES (integer)
RPMREADER_INSTPREFIXES (integer)
RPMREADER_PROVIDEFLAGS (integer)
RPMREADER_PROVIDEVERSION (integer)
RPMREADER_OBSOLETEFLAGS (integer)
RPMREADER_OBSOLETEVERSION (integer)
RPMREADER_DIRINDEXES (integer)
The list of indices that relate directory names to files in the RPM package. This tag is used in conjunction with RPMREADER_BASENAMES and RPMREADER_DIRNAMES to reconstruct filenames in the RPM package stored with the new "CompressedFileNames" method in RPM.
RPMREADER_BASENAMES (integer)
The list of the names of files in the RPM package without path information. This tag is used in conjunction with RPMREADER_DIRINDEXES and RPMREADER_DIRNAMES to reconstruct filenames in the RPM package stored with the new "CompressedFileNames" method in RPM.
RPMREADER_DIRNAMES (integer)
The list of directory names used by files in the RPM package. This tag is used in conjunction with RPMREADER_BASENAMES and RPMREADER_DIRINDEXES to reconstruct filenames in the RPM package stored with the new "CompressedFileNames" method in RPM.
RPMREADER_OPTFLAGS (integer)
RPMREADER_DISTURL (integer)
RPMREADER_PAYLOADFORMAT (integer)
RPMREADER_PAYLOADCOMPRESSOR (integer)
RPMREADER_PAYLOADFLAGS (integer)
RPMREADER_INSTALLCOLOR (integer)
RPMREADER_INSTALLTID (integer)
RPMREADER_REMOVETID (integer)
RPMREADER_RHNPLATFORM (integer)
RPMREADER_PLATFORM (integer)
RPMREADER_PATCHESNAME (integer)
RPMREADER_PATCHESFLAGS (integer)
RPMREADER_PATCHESVERSION (integer)
RPMREADER_CACHECTIME (integer)
RPMREADER_CACHEPKGPATH (integer)
RPMREADER_CACHEPKGSIZE (integer)
RPMREADER_CACHEPKGMTIME (integer)
RPMREADER_FILECOLORS (integer)
RPMREADER_FILECLASS (integer)
RPMREADER_CLASSDICT (integer)
RPMREADER_FILEDEPENDSX (integer)
RPMREADER_FILEDEPENDSN (integer)
RPMREADER_DEPENDSDICT (integer)
RPMREADER_SOURCEPKGID (integer)
RPMREADER_FILECONTEXTS (integer)
RPMREADER_FSCONTEXTS (integer)
RPMREADER_RECONTEXTS (integer)
RPMREADER_POLICIES (integer)
RPMREADER_MAXIMUM (integer)
The maximum valid value of any RPM tag number.


  • « Предопределенные константы
  • Basic usage »
  • PHP Manual
  • RPM Reader
  • Примеры

Примеры

Содержание

  • Basic usage


Basic usage

This example will open an RPM file and read the name, version, and release from the RPM file, echo the results, and close the RPM file.

Пример #1 Basic RPMReader Example

<?php

$filename = "/path/to/file.rpm";

// open file
$rpmr = rpm_open($filename);

// get "Name" tag
$name = rpm_get_tag($rpmr, RPMREADER_NAME);

// get "Version" tag
$ver = rpm_get_tag($rpmr, RPMREADER_VERSION);

// get "Release" tag
$rel = rpm_get_tag($rpmr, RPMREADER_RELEASE);

echo "$name-$ver-$rel<br>\n";

// close file
rpm_close($rpmr);

?>


RPM Reader Функции

Содержание

  • rpm_close — Closes an RPM file
  • rpm_get_tag — Retrieves a header tag from an RPM file
  • rpm_is_valid — Tests a filename for validity as an RPM file
  • rpm_open — Opens an RPM file
  • rpm_version — Returns a string representing the current version of the rpmreader extension


Closes an RPM file

  • « RPM Reader Функции
  • rpm_get_tag »
  • PHP Manual
  • RPM Reader Функции
  • Closes an RPM file

rpm_close

(PECL rpmreader >= 0.1.0)

rpm_close — Closes an RPM file

Описание

bool rpm_close ( resource $rpmr )

rpm_close() will close an RPM file pointer.

Список параметров

rpmr

A file pointer resource successfully opened by rpm_open().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 rpm_close() example

<?php

$file = "/path/to/file.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

Смотрите также

  • rpm_open() - Opens an RPM file


Retrieves a header tag from an RPM file

  • « rpm_close
  • rpm_is_valid »
  • PHP Manual
  • RPM Reader Функции
  • Retrieves a header tag from an RPM file

rpm_get_tag

(PECL rpmreader >= 0.1.0)

rpm_get_tag — Retrieves a header tag from an RPM file

Описание

mixed rpm_get_tag ( resource $rpmr , int $tagnum )

rpm_get_tag() will retrieve a given tag from the RPM file's header and return it.

Список параметров

rpmr

A file pointer resource successfully opened by rpm_open().

tagnum

The tag number to retrieve from the RPM header. This value can be specified using the list of constants defined by this module.

Возвращаемые значения

The return value can be of various types depending on the tagnum supplied to the function.

Примеры

Пример #1 rpm_get_tag() example

<?php

$file = "/path/to/file.rpm";
$rpmr = rpm_open($file);

$name = rpm_get_tag($rpmr, RPMREADER_NAME);
echo "$name<br>\n";

rpm_close($rpmr);

?>

Смотрите также

  • rpm_open() - Opens an RPM file
  • rpm_close() - Closes an RPM file


Tests a filename for validity as an RPM file

  • « rpm_get_tag
  • rpm_open »
  • PHP Manual
  • RPM Reader Функции
  • Tests a filename for validity as an RPM file

rpm_is_valid

(PECL rpmreader >= 0.1.0)

rpm_is_valid — Tests a filename for validity as an RPM file

Описание

bool rpm_is_valid ( string $filename )

rpm_is_valid() will test an RPM file for validity as an RPM file. This is not the same as rpm_open() as it only checks the file for validity but does not return a file pointer to be used by further functions.

Список параметров

filename

The filename of the RPM file you wish to check for validity.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 rpm_is_valid() example

<?php

$file = "/path/to/file.rpm";

if (rpm_is_valid($file)) {
    echo "File is recognized as an RPM file.<br>\n";
}
else {
    echo "File is not recognized as an RPM file.<br>\n";
}

?>


Opens an RPM file

  • « rpm_is_valid
  • rpm_version »
  • PHP Manual
  • RPM Reader Функции
  • Opens an RPM file

rpm_open

(PECL rpmreader >= 0.1.0)

rpm_open — Opens an RPM file

Описание

resource rpm_open ( string $filename )

rpm_open() will open an RPM file and will determine if the file is a valid RPM file.

Список параметров

filename

The filename of the RPM file you wish to open.

Возвращаемые значения

If the open succeeds, then rpm_open() will return a file pointer resource to the newly opened file. On error, the function will return FALSE.

Примеры

Пример #1 rpm_open() example

<?php

$file = "/path/to/file.rpm";
$rpmr = rpm_open($file);

rpm_close($rpmr);

?>

Смотрите также

  • rpm_close() - Closes an RPM file


Returns a string representing the current version of the rpmreader extension

  • « rpm_open
  • Расширения для управления процессами программ »
  • PHP Manual
  • RPM Reader Функции
  • Returns a string representing the current version of the rpmreader extension

rpm_version

(PECL rpmreader >= 0.3.0)

rpm_version — Returns a string representing the current version of the rpmreader extension

Описание

string rpm_version ( void )

rpm_version() will return the current version of the rpmreader extension.

Возвращаемые значения

rpm_version() will return a string representing the rpmreader version currently loaded in PHP.

Примеры

Пример #1 rpm_version() example

<?php

$rpmr_ver = rpm_version();

echo "$rpmr_ver<br />\n";

?>


Расширения для управления процессами программ

  • Eio
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Eio Функции
  • Ev
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Watchers
    • Watcher callbacks
    • Periodic watcher operation modes
    • Ev — Класс Ev
    • EvCheck — Класс EvCheck
    • EvChild — Класс EvChild
    • EvEmbed — Класс EvEmbed
    • EvFork — Класс EvFork
    • EvIdle — Класс EvIdle
    • EvIo — The EvIo class
    • EvLoop — The EvLoop class
    • EvPeriodic — The EvPeriodic class
    • EvPrepare — The EvPrepare class
    • EvSignal — The EvSignal class
    • EvStat — The EvStat class
    • EvTimer — The EvTimer class
    • EvWatcher — The EvWatcher class
  • Expect
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Expect
  • Libevent
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции Libevent
  • PCNTL — Process Control
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • PCNTL Функции
  • POSIX
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • POSIX Функции
  • Запуск программы — Запуск программ в системе
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции запуска программ
  • pthreads
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Threaded — The Threaded class
    • Thread — The Thread class
    • Worker — The Worker class
    • Collectable — The Collectable class
    • Modifiers — Method Modifiers
    • Pool — The Pool class
    • Mutex — The Mutex class
    • Cond — The Cond class
  • Семафоры — Семафоры, разделяемая память и IPC
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции семафоров
  • Управление разделяемой памятью
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Разделяемая (shared) память
  • Sync
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • SyncMutex — The SyncMutex class
    • SyncSemaphore — The SyncSemaphore class
    • SyncEvent — The SyncEvent class
    • SyncReaderWriter — The SyncReaderWriter class
    • SyncSharedMemory — The SyncSharedMemory class


Eio

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Eio Функции
    • eio_busy — Искусственно увеличивает нагрузку. Может быть полезно при тестировании, изучении производительности
    • eio_cancel — Отменяет запрос
    • eio_chmod — Изменяет права доступа к файлу/директории
    • eio_chown — Изменяет права доступа к файлу/директории
    • eio_close — Close file
    • 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 — (Re-)initialize 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 by средств » 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() функцией обратного вызова в eio_symlink() (т.н. callback-функции):

Пример #2 Создание запроса с использование функции обратного вызова

<?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 Создание запроса с использование функции обратного вызова

<?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 в функцию обратного вызова
$req = eio_symlink($filename, $link,
  EIO_PRI_DEFAULT, "my_symlink_done", $filename);
eio_grp_add($grp, $req);

// Выполнение запросов
eio_event_loop();
?>
Группа - это специальный вид запроса, позволяющий создать набор обычных eio-запросов. Это может быть использовано для создания сложных запросов, открывающих, читающих и закрывающих файл.

Начиная с версии 0.3.0 alpha, переменная, используемая для внутреннего взаимодействия с libeio, может быть получена функцией eio_get_event_stream(). Переменная может быть использована для привязке к циклу обработки, поставляемого сторонним расширением. Возможно организовать простой цикл обработки, где eio и libevent работают совместно.

Пример #4 Использование eio совместно с libevent

<?php
function my_eio_poll($fd, $events, $arg) {
    /* Некоторые действия с libevent могут быть здесь */
    if (eio_nreqs()) {
        eio_poll();
    }
    /* .. и здесь */
}

function my_res_cb($d, $r) {
    var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

// Этот поток требуется для привязки к libevent
$fd = eio_get_event_stream();

eio_nop(EIO_PRI_DEFAULT, "my_res_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_res_cb", "mkdir data");
/* Прочие eio_* запросы  ... */

// Установка флагов события
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// Установка основы события
event_base_set($event, $base);

// Включение события
event_add($event);

// Запуск цикла обработки
event_base_loop($base);

/* То же самое доступно через интерфейс буфера libevent */
?>


Требования

Расширение включает в себя библиотеку » libeio. Установка libeio отдельно НЕ требуется.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/eio.

Информация об установке в ручном режиме находится в файле INSTALL в пакете поставки.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

В данном расширении два типа ресурсов: request и request group.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы приоритета запроса:

EIO_PRI_MIN (integer)
Минимальный приоритет запроса
EIO_PRI_DEFAULT (integer)
Приоритет по умолчанию
EIO_PRI_MAX (integer)
Максимальный приоритет запроса

Аргумент whence функции eio_seek():

EIO_SEEK_SET (integer)
Смещение offset, заданное в байтах.
EIO_SEEK_CUR (integer)
Смещение offset, заданное в байтах от текущего значения.
EIO_SEEK_END (integer)
Смещение offset, заданное в байтах от размера файла.

Флаги, используемые в eio_readdir():

EIO_READDIR_DENTS (integer)
Флаг eio_readdir(). Если указан, аргумент для выполнения функции обратного вызова становится массивом со следующими ключами: 'names' - массив имен директории 'dents' - массив массивов вида struct eio_dirent, каждый из которых имеет ключи: 'name' - имя директории; 'type' - одна из констант EIO_DT_*; 'inode' - Номер inode, если он доступен, иначе значение не указывается;
EIO_READDIR_DIRS_FIRST (integer)
Когда флаг указан, имена будут возвращены в порядке, при котором будут возвращены первыми директории в оптимальном порядке.
EIO_READDIR_STAT_ORDER (integer)
Когда флаг указан, имена будут возвращены в порядке, в зависимости от stat каждого из них. Если планируется выполнить stat() для всех файлов в директории, такой порядок будет, скорее всего, наиболее быстрым.
EIO_READDIR_FOUND_UNKNOWN (integer)
EIO_DT_UNKNOWN (integer)
Неизвестный тип узла (очень распространено). Далее необходим вызов stat().
EIO_DT_FIFO (integer)
Тип FIFO узла
EIO_DT_CHR (integer)
Тип узла
EIO_DT_MPC (integer)
Тип узла мультиплексное символьное устройство (v7+coherent)
EIO_DT_DIR (integer)
Тип узла директория
EIO_DT_NAM (integer)
Тип узла специальный именованный файл Xenix (Xenix special named file)
EIO_DT_BLK (integer)
Тип узла
EIO_DT_MPB (integer)
Тип узла мультеплексное блочное устройство (Multiplexed block device) (v7+coherent)
EIO_DT_REG (integer)
Тип узла
EIO_DT_NWK (integer)
EIO_DT_CMP (integer)
Тип узла HP-UX network special
EIO_DT_LNK (integer)
Тип узла ссылка
EIO_DT_SOCK (integer)
Тип узла сокет
EIO_DT_DOOR (integer)
Тип узла Solaris door
EIO_DT_WHT (integer)
Тип узла
EIO_DT_MAX (integer)
Наибольшее значение типа узла

Режимы доступа для eio_open() Аргумент flags:

EIO_O_RDONLY (integer)
EIO_O_WRONLY (integer)
EIO_O_RDWR (integer)
EIO_O_NONBLOCK (integer)
EIO_O_APPEND (integer)
EIO_O_CREAT (integer)
EIO_O_TRUNC (integer)
EIO_O_EXCL (integer)
EIO_O_FSYNC (integer)

Флаги аргумент mode функции eio_open():

EIO_S_IRUSR (integer)
EIO_S_IWUSR (integer)
EIO_S_IXUSR (integer)
EIO_S_IRGRP (integer)
EIO_S_IWGRP (integer)
EIO_S_IXGRP (integer)
EIO_S_IROTH (integer)
EIO_S_IWOTH (integer)
EIO_S_IXOTH (integer)
EIO_S_IFREG (integer)
EIO_S_IFCHR (integer)
EIO_S_IFBLK (integer)
EIO_S_IFIFO (integer)
EIO_S_IFSOCK (integer)

Флаги функции eio_sync_file_range():

EIO_SYNC_FILE_RANGE_WAIT_BEFORE (integer)
EIO_SYNC_FILE_RANGE_WRITE (integer)
EIO_SYNC_FILE_RANGE_WAIT_AFTER (integer)

Флаги функции eio_fallocate():

EIO_FALLOC_FL_KEEP_SIZE (integer)

Замечание:

Константы EIO_S_I* имеют то же значение, что их коллеги S_I* в POSIX.

Замечание:

EIO_SYNC_FILE_* имеют то же значение, что их коллеги SYNC_FILE_**.

Замечание:

EIO_O_* имеют то же значение, что их коллеги O_* в POSIX.


Примеры

Пример #1 Отмена запроса

<?php
 /* Вызывается после завершения eio_nop() */
 function my_nop_cb($data, $result) {
  echo "my_nop ", $data, "\n";
 }

// Этот eio_nop() будет отменен
$req = eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "1");
var_dump($req);
eio_cancel($req);

// Этот eio_nop() будет выполнен
eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "2");

// Выполнение запросов
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

resource(4) of type (EIO Request Descriptor)
my_nop 2

Пример #2 Вызов eio_chmod()

<?php
$temp_filename = dirname(__FILE__) ."/eio-temp-file.tmp";
touch($temp_filename);

/* Вызывается после завершения eio_chmod() */
function my_chmod_callback($data, $result) {
    global $temp_filename;

    if ($result == 0 && !is_readable($temp_filename) && is_writable($temp_filename)) {
        echo "eio_chmod_ok";
    }

    @unlink($temp_filename);
}

eio_chmod($temp_filename, 0200, EIO_PRI_DEFAULT, "my_chmod_callback");
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

eio_chmod_ok

Пример #3 Создание пользовательского запроса

<?php
/* Пользовательская функция обратного вызова */
function my_custom_callback($data, $result) {
    var_dump($data);
    var_dump(count($result));
    var_dump($result['data_modified']);
    var_dump($result['result']);
}

/* Пользовательский запрос */
function my_custom($data) {
    var_dump($data);

    $result  = array(
        'result'        => 1001,
        'data_modified' => "my custom data",
    );

    return $result;
}

$data = "my_custom_data";
$req = eio_custom("my_custom", EIO_PRI_DEFAULT, "my_custom_callback", $data);
var_dump($req);
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

resource(4) of type (EIO Request Descriptor)
string(14) "my_custom_data"
string(14) "my_custom_data"
int(2)
string(14) "my custom data"
int(1001)

Пример #4 Группировка запросов

<?php
/*
 * Создание группы запросов для открытия, чтения и закрытия файла
 */

$temp_filename = dirname(__FILE__) ."/eio-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "some data");
fclose($fp);

/* Вызывается, когда группа запросов будет выполнена */
function my_grp_done($data, $result) {
 global $temp_filename;
 var_dump($result == 0);
 @unlink($temp_filename);
}

/* Вызывается после выполнения eio_open() */
function my_grp_file_opened_callback($data, $result) {
 global $my_file_fd, $grp;

 $my_file_fd = $result;

 var_dump($result > 0);

 // Создание запроса eio_read() и добавление в группу
 $req = eio_read($my_file_fd, 4, 0, EIO_PRI_DEFAULT, "my_grp_file_read_callback");
 eio_grp_add($grp, $req);
}

/* Вызывается после выполнения eio_read() */
function my_grp_file_read_callback($data, $result) {
 global $my_file_fd, $grp;

 var_dump($result);

 // Создание запроса eio_close() и добавление в группу
 $req = eio_close($my_file_fd);
 eio_grp_add($grp, $req);
}

$grp = eio_grp("my_grp_done", "my_grp_data");

// Создание запроса eio_open() и добавление в группу
$req = eio_open($temp_filename, EIO_O_RDWR | EIO_O_APPEND , NULL,
  EIO_PRI_DEFAULT, "my_grp_file_opened_callback", NULL);
eio_grp_add($grp, $req);
var_dump($grp);

eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

resource(6) of type (EIO Group Descriptor)
bool(true)
string(4) "some"
bool(true)

Пример #5 Использование eio совместно с модулем libevent

<?php
function my_eio_poll($fd, $events, $arg) {
    /* Некоторые действия с libevent могут быть здесь */
    if (eio_nreqs()) {
        eio_poll();
    }
    /* .. и здесь */
}

function my_nop_cb($d, $r) {
    var_dump($r); var_dump($d);
}

$base = event_base_new();
$event = event_new();

$fd = eio_get_event_stream();
var_dump($fd);

eio_nop(EIO_PRI_DEFAULT, "my_nop_cb", "nop data");
eio_mkdir("/tmp/abc-eio-temp", 0750, EIO_PRI_DEFAULT, "my_nop_cb", "nop data");
/* Прочие eio_* запросы  ... */

// Установка флагов события
event_set($event, $fd, EV_READ /*| EV_PERSIST*/, "my_eio_poll", array($event, $base));

// Установка основы события
event_base_set($event, $base);

// Включение события
event_add($event);

// Запуск цикла обработки
event_base_loop($base);

/* То же самое доступно через интерфейс буфера libevent */
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(0)
string(8) "nop data"
int(0)
string(10) "mkdir data"

Пример #6 Использование eio с модулем event

<?php
$base = new EventBase();

// Получаем поток опроса eio.
// Обратите внимание, что эта переменная должна быть жива все время
// пока запущен цикл событий
$eio_stream = eio_get_event_stream();

// Связываем поток опроса eio polling с циклом событий.
$poll_event = new Event($base, $eio_stream, Event::READ, function () {
  if (eio_nreqs()) {
    eio_poll();
  }
});
$poll_event->add();

// Добавляем задачу eio
eio_nop(EIO_PRI_DEFAULT, function () {
  echo "eio_nop\n";
});

// Добавляем события
$timer = Event::timer($base, function () {
  echo "прошло 2 секунды\n";
});
$timer->add(2);

// Отправляем события
$base->dispatch();
?>

Результатом выполнения данного примера будет что-то подобное:

eio_nop
прошло 2 секунды


Eio Функции

Содержание

  • eio_busy — Искусственно увеличивает нагрузку. Может быть полезно при тестировании, изучении производительности
  • eio_cancel — Отменяет запрос
  • eio_chmod — Изменяет права доступа к файлу/директории
  • eio_chown — Изменяет права доступа к файлу/директории
  • eio_close — Close file
  • 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 — (Re-)initialize 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 — Искусственно увеличивает нагрузку. Может быть полезно при тестировании, изучении производительности

Описание

resource eio_busy ( int $delay [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

Функция eio_busy() искусственно увеличивает нагрузку, добавляя delay секунд к времени исполнения. Полезно при отладке и тестировании производительности.

Список параметров

delay

Задержка в секундах

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

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 — Отменяет запрос

Описание

void eio_cancel ( resource $req )

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 — Изменяет права доступа к файлу/директории

Описание

resource eio_chmod ( string $path , int $mode [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Изменяет права доступа к файлу/директории

Описание

resource eio_chown ( string $path , int $uid [, int $gid = -1 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] )

Изменяет права доступа к файлу/директории.

Список параметров

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


Close file

  • « eio_chown
  • eio_custom »
  • PHP Manual
  • Eio Функции
  • Close file

eio_close

(PECL eio >= 0.0.1dev)

eio_close — Close file

Описание

resource eio_close ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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_* вызов

Описание

resource eio_custom ( callable $execute , int $pri , callable $callback [, mixed $data = NULL ] )

eio_custom() выполняет пользовательскую функцию, определенную в параметре execute как любой другой вызов запросов eio_*.

Список параметров

execute

Указывается функция, соответствующая нижеприведенному прототипу:

      mixed execute(mixed data);
Параметр 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
/* Пользовательская функция обратного вызова */
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 — Создает дубликат дескриптора файла

Описание

resource eio_dup2 ( mixed $fd , mixed $fd2 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 до тех пор, пока все запросы не будут выполнены

Описание

bool eio_event_loop ( void )

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 — Позволяет напрямую управлять размером используемого дискового пространства для файла

Описание

resource eio_fallocate ( mixed $fd , int $mode , int $offset , int $length [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Изменяет права доступа к файлу

Описание

resource eio_fchmod ( mixed $fd , int $mode [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Изменяет владельца файла

Описание

resource eio_fchown ( mixed $fd , int $uid [, int $gid = -1 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] )

eio_fchown() изменяет владельца файла, дескриптор которого указан в fd.

Список параметров

fd

Поток, указатель на сокет, или числовой дескриптор файла.

uid

Код пользователя. Игнорируется при значении, равном -1.

gid

Код группы. Игнорируется при значении, равном -1.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Произвольная переменная, передаваемая в callback-функцию.

Смотрите также

  • eio_fchmod


Синхронизирует текущее состояние файла с физическим устройством

  • « eio_fchown
  • eio_fstat »
  • PHP Manual
  • Eio Функции
  • Синхронизирует текущее состояние файла с физическим устройством

eio_fdatasync

(PECL eio >= 0.0.1dev)

eio_fdatasync — Синхронизирует текущее состояние файла с физическим устройством

Описание

resource eio_fdatasync ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Возвращает статус файла

Описание

resource eio_fstat ( mixed $fd , int $pri , callable $callback [, mixed $data ] )

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) {
 // Подготовка данных для обратного вызова
 $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 — Возвращает статистику файловой системы

Описание

resource eio_fstatvfs ( mixed $fd , int $pri , callable $callback [, mixed $data ] )

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 — Синхронизирует текущее состояние файла с физическим устройством

Описание

resource eio_fsync ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

Синхронизирует текущее состояние файла с физическим устройством.

Список параметров

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 — Урезает размер файла

Описание

resource eio_ftruncate ( mixed $fd [, int $offset = 0 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] )

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 — Изменяет дату и время последней модификации и доступа к файлу

Описание

resource eio_futime ( mixed $fd , float $atime , float $mtime [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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

Описание

mixed eio_get_event_stream ( void )

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 — Возвращает последнюю ошибку, связанную с указателем на ресурс

Описание

string eio_get_last_error ( resource $req )

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 — Добавляет запрос в группу запросов

Описание

void eio_grp_add ( resource $grp , resource $req )

eio_grp_add() добавляет запрос в группу запросов.

Список параметров

grp

Указатель на группу запросов, возвращённый eio_grp()

req

Указатель на ресурс

Возвращаемые значения

eio_grp_add() не возвращает ничего.

Примеры

Пример #1 Grouping requests

<?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() и добавление в группу
 // Дескриптор файла передается в функцию обратного вызова
 $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 — Отменяет группу запросов

Описание

void eio_grp_cancel ( resource $grp )

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 — Устанавливает предельное количество запросов в группе

Описание

void eio_grp_limit ( resource $grp , int $limit )

Устанавливает предельное количество запросов в группе.

Список параметров

grp

Указатель на группу ресурсов

limit

Максимальное количество ресурсов в группе.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • eio_grp_add


Создает группу запросов

  • « eio_grp_limit
  • eio_init »
  • PHP Manual
  • Eio Функции
  • Создает группу запросов

eio_grp

(PECL eio >= 0.0.1dev)

eio_grp — Создает группу запросов

Описание

resource eio_grp ( callable $callback [, string $data = NULL ] )

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


(Re-)initialize Eio

  • « eio_grp
  • eio_link »
  • PHP Manual
  • Eio Функции
  • (Re-)initialize Eio

eio_init

(PECL eio = 1.0.0)

eio_init — (Re-)initialize Eio

Описание

void eio_init ( void )

eio_init() (ре-)инициализирует Eio. Резервируется память для внутренних структур libeio и Eio. Можно вызывать eio_init() перед использованием Eio-функций. В любом случае, инициализация будет выполнена при первом вызове Eio-функции.

Внимание

Эта возможность устарела и будет обязательно удалена в будущем. Начиная с Eio 1.1.0 eio_init() считается устаревшей. В Eio 1.0.0 потому что » ограничения libeio необходим вызов eio_init() в дочерних процессах или в других случаях. Необходимо избегать использование Eio в родительских процессах если оно используется в дочерних.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Создает жесткую ссылку на файл

  • « eio_init
  • eio_lstat »
  • PHP Manual
  • Eio Функции
  • Создает жесткую ссылку на файл

eio_link

(PECL eio >= 0.0.1dev)

eio_link — Создает жесткую ссылку на файл

Описание

resource eio_link ( string $path , string $new_path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Возвращает статус файла

Описание

resource eio_lstat ( string $path , int $pri , callable $callback [, mixed $data = NULL ] )

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 — Создание директории

Описание

resource eio_mkdir ( string $path , int $mode [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Создает специальный или обычный файл

Описание

resource eio_mknod ( string $path , int $mode , int $dev [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

eio_mknod() создает обычный или специальный (что чаще) файл.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

Путь к новому файлу.

mode

Задает разрешения для файла и его тип. Значением аргумента является комбинация (используя побитовое ИЛИ) одной или нескольких констант, отвечающих за тип файла, и числа, отвечающего за разрешения для файла (например, 0640). Константы типов файлов: EIO_S_IFREG(обычный файл), EIO_S_IFCHR(символьный файл), EIO_S_IFBLK(специальный блочный файл), EIO_S_IFIFO(FIFO - именованный пайп) and 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-функцию 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 — Проход по циклу запроса, не совершая никаких операций

Описание

resource eio_nop ([ int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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-функцию callback.

Возвращаемые значения

eio_nop() возвращает ресурс запроса, либо FALSE в случае ошибки.

Смотрите также

  • eio_busy


Возвращает число завершенных, но необработанных процессов

  • « eio_nop
  • eio_nready »
  • PHP Manual
  • Eio Функции
  • Возвращает число завершенных, но необработанных процессов

eio_npending

(PECL eio >= 0.0.1dev)

eio_npending — Возвращает число завершенных, но необработанных процессов

Описание

int eio_npending ( void )

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 — Возвращает число еще не обработанных запросов

Описание

int eio_nready ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

eio_nready() возвращает число еще не обработанных запросов

Смотрите также

  • eio_nreqs
  • eio_nready
  • eio_nthreads


Возвращает число запросов, которые предстоит выполнить

  • « eio_nready
  • eio_nthreads »
  • PHP Manual
  • Eio Функции
  • Возвращает число запросов, которые предстоит выполнить

eio_nreqs

(PECL eio >= 0.0.1dev)

eio_nreqs — Возвращает число запросов, которые предстоит выполнить

Описание

int eio_nreqs ( void )

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 — Возвращает количество используемых в данный момент потоков

Описание

int eio_nthreads ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

eio_nthreads() возвращает количество используемых в данный момент потоков.

Смотрите также

  • eio_npending
  • eio_nready
  • eio_nreqs


Открывает файл

  • « eio_nthreads
  • eio_poll »
  • PHP Manual
  • Eio Функции
  • Открывает файл

eio_open

(PECL eio >= 0.0.1dev)

eio_open — Открывает файл

Описание

resource eio_open ( string $path , int $flags , int $mode , int $pri , callable $callback [, mixed $data = NULL ] )

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-функцию 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 — Может быть вызвана когда имеются запросы, ожидающие выполнения

Описание

int eio_poll ( void )

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 — Читает данные из файла, начиная с заданного смещения

Описание

resource eio_read ( mixed $fd , int $length , int $offset , int $pri , callable $callback [, mixed $data = NULL ] )

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


Помещает данные из файла в кэш страницы

  • « eio_read
  • eio_readdir »
  • PHP Manual
  • Eio Функции
  • Помещает данные из файла в кэш страницы

eio_readahead

(PECL eio >= 0.0.1dev)

eio_readahead — Помещает данные из файла в кэш страницы

Описание

resource eio_readahead ( mixed $fd , int $offset , int $length [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Читает содержимое директории

Описание

resource eio_readdir ( string $path , int $flags , int $pri , callable $callback [, string $data = NULL ] )

Читает содержимое директории (посредством системных вызовов opendir, readdir и closedir) и либо возвращает имена файлов, либо передает массив в качестве аргумента result в функцию callback. Поведение метода зависит от значения параметра flags.

Список параметров

path

Путь к директории.

flags

Комбинация констант EIO_READDIR_*.

pri

Приоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL. Если передан NULL, то pri устанавливается в EIO_PRI_DEFAULT.

callback

Функция callback вызывается при завершении запроса. Она должна удовлетворять следующему прототипу:

void callback(mixed $data, int $result[, resource $req]);
data

является пользовательскими данными, переданными в запросе.

result

содержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.

req

является опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()

data

Данные, которые необходимо передать функции callback.

Возвращаемые значения

eio_readdir() возвращает ресурс запроса или FALSE в случае ошибки. Также может задавать значение аргумента result функции callback в зависимости от значения параметра flags:

EIO_READDIR_DENTS (integer)
Флаг eio_readdir(). Если задан, в качестве аргумента callback-функции будет передаваться массив со следующими ключами: 'names' - массив имен директории 'dents' - массив структур типа struct eio_dirent, каждая из которых представляется массивом с ключами: 'name' - имя директории; 'type' - одна из констант EIO_DT_*; 'inode' - номер узла inode, если доступен, либо пустое значение;
EIO_READDIR_DIRS_FIRST (integer)
Если этот флаг задан, первыми будут возвращаться имена директорий, затем имена файлов. Порядок следования имен в каждой группе будет оптимальным для применения фукнции stat.
EIO_READDIR_STAT_ORDER (integer)
Если этот флаг задан, имена файлов и директорий будут возвращаеться в порядке, удобном для сбора статистики (stat) каждого из объектов. Если полученный список имен предполагается передавать в функцию stat(), порядок следования имен обеспечит наиболее быструю работу фукнции.
EIO_READDIR_FOUND_UNKNOWN (integer)

Node types:

EIO_DT_UNKNOWN (integer)
Неизвестный тип узла (очень часто). Необходима обработка функцией stat().
EIO_DT_FIFO (integer)
Тип узла - FIFO
EIO_DT_CHR (integer)
Тип узла
EIO_DT_MPC (integer)
Тип узла - составное символьное устройство (v7+coherent)
EIO_DT_DIR (integer)
Тип узла - директория
EIO_DT_NAM (integer)
Тип узла - файл со специальным Xenix наименованием
EIO_DT_BLK (integer)
Тип узла
EIO_DT_MPB (integer)
Составное блочное устройство (v7+coherent)
EIO_DT_REG (integer)
Тип узла
EIO_DT_NWK (integer)
EIO_DT_CMP (integer)
Специальный тип узла для сетей HP-UX
EIO_DT_LNK (integer)
Тип узла - ссылка
EIO_DT_SOCK (integer)
Тип узла - сокет
EIO_DT_DOOR (integer)
Тип узла - Solaris door
EIO_DT_WHT (integer)
Тип узла
EIO_DT_MAX (integer)
Максимальное значение типа узла

Примеры

Пример #1 Пример использования eio_readdir()

<?php
/* Вызывается, когда отработает eio_readdir() */
function my_readdir_callback($data, $result) {
    echo "Вызвана функция ", __FUNCTION__, "\n";
    echo "данные: "; var_dump($data);
    echo "результат: "; var_dump($result);
    echo "\n";
}

eio_readdir("/var/spool/news", EIO_READDIR_STAT_ORDER | EIO_READDIR_DIRS_FIRST,
  EIO_PRI_DEFAULT, "my_readdir_callback");
eio_event_loop();
?>

Результатом выполнения данного примера будет что-то подобное:

Вызвана функция my_readdir_callback
данные: NULL
результат: array(2) {
 ["names"]=>
  array(7) {
   [0]=>
    string(7) "archive"
    [1]=>
    string(8) "articles"
    [2]=>
    string(8) "incoming"
    [3]=>
    string(7) "innfeed"
    [4]=>
    string(8) "outgoing"
    [5]=>
    string(8) "overview"
    [6]=>
    string(3) "tmp"
  }
 ["dents"]=>
  array(7) {
   [0]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "archive"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393265)
    }
   [1]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "articles"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393266)
    }
   [2]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "incoming"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393267)
    }
   [3]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "innfeed"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393269)
    }
   [4]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "outgoing"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393270)
    }
   [5]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "overview"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393271)
    }
   [6]=>
    array(3)
    {
     ["name"]=>
      string(3)
      "tmp"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393272)
    }
  }
}


Читает значение символической ссылки

  • « eio_readdir
  • eio_realpath »
  • PHP Manual
  • Eio Функции
  • Читает значение символической ссылки

eio_readlink

(PECL eio >= 0.0.1dev)

eio_readlink — Читает значение символической ссылки

Описание

resource eio_readlink ( string $path , int $pri , callable $callback [, string $data = NULL ] )

Список параметров

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 — Получает абсолютный приведенный к каноническому виду путь

Описание

resource eio_realpath ( string $path , int $pri , callable $callback [, string $data = NULL ] )

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 — Изменяет имя или перемещает файл

Описание

resource eio_rename ( string $path , string $new_path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Удаляет директорию

Описание

resource eio_rmdir ( string $path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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

Описание

resource eio_seek ( mixed $fd , int $offset , int $whence [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Перемещает данные между файлами

Описание

resource eio_sendfile ( mixed $out_fd , mixed $in_fd , int $offset , int $length [, int $pri [, callable $callback [, string $data ]]] )

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 — Устанавливает максимальное количество ожидающих потоков

Описание

void eio_set_max_idle ( int $nthreads )

Список параметров

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 — Устанавливает максимальное количество параллельных потоков

Описание

void eio_set_max_parallel ( int $nthreads )

Список параметров

nthreads

Количество параллельных потоков

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • 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 — Устанавливает максимальное количество обрабатываемых запросов

Описание

void eio_set_max_poll_reqs ( int $nreqs )

Список параметров

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 — Устанавливает максимальное время выполнения

Описание

void eio_set_max_poll_time ( float $nseconds )

Выполнение запросов останавливается, если время выполнения превышает 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 — Устанавливает минимальное количество параллельных потоков

Описание

void eio_set_min_parallel ( string $nthreads )

Список параметров

nthreads

Количество параллельных потоков.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • eio_set_max_parallel


Возвращает статус файла

  • « eio_set_min_parallel
  • eio_statvfs »
  • PHP Manual
  • Eio Функции
  • Возвращает статус файла

eio_stat

(PECL eio >= 0.0.1dev)

eio_stat — Возвращает статус файла

Описание

resource eio_stat ( string $path , int $pri , callable $callback [, mixed $data = NULL ] )

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 — Возвращает статистику файловой системы

Описание

resource eio_statvfs ( string $path , int $pri , callable $callback [, mixed $data ] )

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 — Создает символическую ссылку

Описание

resource eio_symlink ( string $path , string $new_path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Синхронизирует сегмент файла с данными файла на внешнем хранилище

Описание

resource eio_sync_file_range ( mixed $fd , int $offset , int $nbytes , int $flags [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Записывает кэш из буфера на диск

Описание

resource eio_sync ([ int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

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, если это доступно

Описание

resource eio_syncfs ( mixed $fd [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

Список параметров

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 — Урезает размер файла

Описание

resource eio_truncate ( string $path [, int $offset = 0 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]] )

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 — Удаляет файл или одну из жестких ссылок на него

Описание

resource eio_unlink ( string $path [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

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 — Изменяет дату и время последней модификации и доступа к файлу

Описание

resource eio_utime ( string $path , float $atime , float $mtime [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]] )

Список параметров

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 — Запись в файл

Описание

resource eio_write ( mixed $fd , string $str [, int $length = 0 [, int $offset = 0 [, int $pri = EIO_PRI_DEFAULT [, callable $callback = NULL [, mixed $data = NULL ]]]]] )

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

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Watchers
  • Watcher callbacks
  • Periodic watcher operation modes
  • Ev — Класс Ev
    • Ev::backend — Returns an integer describing the backend used by libev.
    • Ev::depth — Returns recursion depth
    • Ev::embeddableBackends — Returns the set of backends that are embeddable in other event loops.
    • Ev::feedSignal — Feed a signal event info Ev
    • Ev::feedSignalEvent — Feed signal event into the default loop
    • Ev::iteration — Return the number of times the default event loop has polled for new events.
    • Ev::now — Returns the time when the last iteration of the default event loop has started.
    • Ev::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress.
    • Ev::recommendedBackends — Returns a bit mask of recommended backends for current platform.
    • Ev::resume — Resume previously suspended default event loop
    • Ev::run — Begin checking for events and calling callbacks for the default loop
    • Ev::sleep — Block the process for the given number of seconds.
    • Ev::stop — Stops the default event loop
    • Ev::supportedBackends — Returns the set of backends supported by current libev configuration.
    • Ev::suspend — Suspend the default event loop
    • Ev::time — Returns the current time in fractional seconds since the epoch.
    • Ev::verify — Performs internal consistency checks(for debugging)
  • EvCheck — Класс EvCheck
    • EvCheck::__construct — Constructs the EvCheck watcher object
    • EvCheck::createStopped — Create instance of a stopped EvCheck watcher
  • EvChild — Класс EvChild
    • EvChild::__construct — Constructs the EvChild watcher object
    • EvChild::createStopped — Create instance of a stopped EvCheck watcher
    • EvChild::set — Configures the watcher
  • EvEmbed — Класс EvEmbed
    • EvEmbed::__construct — Constructs the EvEmbed object
    • EvEmbed::createStopped — Create stopped EvEmbed watcher object
    • EvEmbed::set — Configures the watcher
    • EvEmbed::sweep — Make a single, non-blocking sweep over the embedded loop.
  • EvFork — Класс EvFork
    • EvFork::__construct — Constructs the EvFork watcher object
    • EvFork::createStopped — Creates a stopped instance of EvFork watcher class
  • EvIdle — Класс EvIdle
    • EvIdle::__construct — Constructs the EvIdle watcher object
    • EvIdle::createStopped — Creates instance of a stopped EvIdle watcher object
  • EvIo — The EvIo class
    • EvIo::__construct — Constructs EvIo watcher object
    • EvIo::createStopped — Create stopped EvIo watcher object
    • EvIo::set — Configures the watcher
  • EvLoop — The EvLoop class
    • EvLoop::backend — Returns an integer describing the backend used by libev.
    • EvLoop::check — Creates EvCheck object associated with the current event loop instance
    • EvLoop::child — Creates EvChild object associated with the current event loop
    • EvLoop::__construct — Constructs the event loop object
    • EvLoop::defaultLoop — Returns or creates the default event loop.
    • EvLoop::embed — Creates an instance of EvEmbed watcher associated with the current EvLoop object.
    • EvLoop::fork — Creates EvFork watcher object associated with the current event loop instance
    • EvLoop::idle — Creates EvIdle watcher object associated with the current event loop instance
    • EvLoop::invokePending — Invoke all pending watchers while resetting their pending state
    • EvLoop::io — Create EvIo watcher object associated with the current event loop instance
    • EvLoop::loopFork — Must be called after a fork
    • EvLoop::now — Returns the current "event loop time"
    • EvLoop::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress.
    • EvLoop::periodic — Creates EvPeriodic watcher object associated with the current event loop instance
    • EvLoop::prepare — Creates EvPrepare watcher object associated with the current event loop instance
    • EvLoop::resume — Resume previously suspended default event loop
    • EvLoop::run — Begin checking for events and calling callbacks for the loop
    • EvLoop::signal — Creates EvSignal watcher object associated with the current event loop instance
    • EvLoop::stat — Creates EvStat watcher object associated with the current event loop instance
    • EvLoop::stop — Stops the event loop
    • EvLoop::suspend — Suspend the loop
    • EvLoop::timer — Creates EvTimer watcher object associated with the current event loop instance
    • EvLoop::verify — Performs internal consistency checks(for debugging)
  • EvPeriodic — The EvPeriodic class
    • EvPeriodic::again — Simply stops and restarts the periodic watcher again.
    • EvPeriodic::at — Returns the absolute time that this watcher is supposed to trigger next
    • EvPeriodic::__construct — Constructs EvPeriodic watcher object
    • EvPeriodic::createStopped — Create a stopped EvPeriodic watcher
    • EvPeriodic::set — Configures the watcher
  • EvPrepare — The EvPrepare class
    • EvPrepare::__construct — Constructs EvPrepare watcher object
    • EvPrepare::createStopped — Creates a stopped instance of EvPrepare watcher
  • EvSignal — The EvSignal class
    • EvSignal::__construct — Constructs EvPeriodic watcher object
    • EvSignal::createStopped — Create stopped EvSignal watcher object
    • EvSignal::set — Configures the watcher
  • EvStat — The EvStat class
    • EvStat::attr — Returns the values most recently detected by Ev
    • EvStat::__construct — Constructs EvStat watcher object
    • EvStat::createStopped — Create a stopped EvStat watcher object
    • EvStat::prev — Returns the previous set of values returned by EvStat::attr
    • EvStat::set — Configures the watcher
    • EvStat::stat — Initiates the stat call
  • EvTimer — The EvTimer class
    • EvTimer::again — Restarts the timer watcher
    • EvTimer::__construct — Constructs an EvTimer watcher object
    • EvTimer::createStopped — Creates EvTimer stopped watcher object
    • EvTimer::set — Configures the watcher
  • EvWatcher — The EvWatcher class
    • EvWatcher::clear — Clear watcher pending status
    • EvWatcher::__construct — Abstract constructor of a watcher object
    • EvWatcher::feed — Feeds the given revents set into the event loop
    • EvWatcher::getLoop — Returns the loop responsible for the watcher
    • EvWatcher::invoke — Invokes the watcher callback with the given received events bit mask
    • EvWatcher::keepalive — Configures whether to keep the loop from returning
    • EvWatcher::setCallback — Sets new callback for the watcher
    • EvWatcher::start — Starts the watcher
    • EvWatcher::stop — Stops the watcher


Введение

Это расширение предоставляет интерфейс к С-библиотеке » Libev , являющейся высокопроизводительным диспетчером событий.

Замечание: Для Windows-платформ это расширение недоступно.

Libev - это диспетчер событий, занимающийся регистрацией определенных собыити (например изменение доступности файлового дескриптора, или превышение таймаута), управлением их источниками и реакцией на них.

Для этого он должен принять более или менее полный контроль над процессом (или нитью), путем запуска обработчика диспетчера событий, а затем обмениваться данными через механизм обратного вызова.

Для работы с нужными событиями, необходимо зарегистрировать, так называемых, наблюдателей за событиями, а затем запустить их, передав libev.

Для получения подробной информации обратитесь к » документации libev


Требования

libev library is embedded into this extension. You don't need to install it separately.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/ev .


Предопределенные константы

Данное расширение не определяет никакие константы.

Большинство констант перемещены в класс синглетон (одиночка) Ev


Примеры

Пример #1 Simple timers

<?php
// Create and start timer firing after 2 seconds
$w1 = new EvTimer(2, 0, function () {
    echo "2 seconds elapsed\n";
});

// Create and launch timer firing after 2 seconds repeating each second
// until we manually stop it
$w2 = new EvTimer(2, 1, function ($w) {
    echo "is called every second, is launched after 2 seconds\n";
    echo "iteration = ", Ev::iteration(), PHP_EOL;

    // Stop the watcher after 5 iterations
    Ev::iteration() == 5 and $w->stop();
    // Stop the watcher if further calls cause more than 10 iterations
    Ev::iteration() >= 10 and $w->stop();
});

// Create stopped timer. It will be inactive until we start it ourselves
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
    echo "Callback of a timer created as stopped\n";

    // Stop the watcher after 2 iterations
    Ev::iteration() >= 2 and $w->stop();
});

// Loop until Ev::stop() is called or all of watchers stop
Ev::run();

// Start and look if it works
$w_stopped->start();
echo "Run single iteration\n";
Ev::run(Ev::RUN_ONCE);

echo "Restart the second watcher and try to handle the same events, but don't block\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);

$w = new EvTimer(10, 0, function() {});
echo "Running a blocking loop\n";
Ev::run();
echo "END\n";
?>

Результатом выполнения данного примера будет что-то подобное:

2 seconds elapsed
is called every second, is launched after 2 seconds
iteration = 1
is called every second, is launched after 2 seconds
iteration = 2
is called every second, is launched after 2 seconds
iteration = 3
is called every second, is launched after 2 seconds
iteration = 4
is called every second, is launched after 2 seconds
iteration = 5
Run single iteration
Callback of a timer created as stopped
Restart the second watcher and try to handle the same events, but don't block
Running a blocking loop
is called every second, is launched after 2 seconds
iteration = 8
is called every second, is launched after 2 seconds
iteration = 9
is called every second, is launched after 2 seconds
iteration = 10
END

Пример #2 Periodic timer. Tick each 10.5 seconds

<?php
$w = new EvPeriodic(0., 10.5, NULL, function ($w, $revents) {
    echo time(), PHP_EOL;
});

Ev::run();
?>

Пример #3 Periodic timer. Use reschedule callback

<?php
// Tick each 10.5 seconds

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 Periodic timer. Tick every 10.5 seconds starting at now

<?php
// Tick every 10.5 seconds starting at now
$w = new EvPeriodic(fmod(Ev::now(), 10.5), 10.5, NULL, function ($w, $revents) {
    echo time(), PHP_EOL;
});

Ev::run();
?>

Пример #5 Wait until STDIN is readable

<?php
// Wait until STDIN is readable
$w = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
    echo "STDIN is readable\n";
});

Ev::run(Ev::RUN_ONCE);
?>

Пример #6 Use some async I/O to access a socket

<?php
/* Use some async I/O to access a socket */

// `sockets' extension still logs warnings
// for EINPROGRESS, EAGAIN/EWOULDBLOCK etc.
error_reporting(E_ERROR);

$e_nonblocking = array (/*EAGAIN or EWOULDBLOCK*/11, /*EINPROGRESS*/115);

// Get the port for the WWW service
$service_port = getservbyname('www', 'tcp');

// Get the IP address for the target host
$address = gethostbyname('google.co.uk');

// Create a TCP/IP socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === FALSE) {
    echo "socket_create() failed: reason: "
        .socket_strerror(socket_last_error()) . "\n";
}

// Set O_NONBLOCK flag
socket_set_nonblock($socket);

// Abort on timeout
$timeout_watcher = new EvTimer(10.0, 0., function () use ($socket) {
    socket_close($socket);
    Ev::stop(Ev::BREAK_ALL);
});

// Make HEAD request when the socket is writable
$write_watcher = new EvIo($socket, Ev::WRITE, function ($w)
    use ($socket, $timeout_watcher, $e_nonblocking)
{
    // Stop timeout watcher
    $timeout_watcher->stop();
    // 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("Failed writing $in to socket", E_USER_ERROR);
    }

    $read_watcher = new EvIo($socket, Ev::READ, function ($w, $re)
        use ($socket, $e_nonblocking)
    {
        // Socket is readable. recv() 20 bytes using non-blocking mode
        $ret = socket_recv($socket, $out, 20, MSG_DONTWAIT);

        if ($ret) {
            echo $out;
        } elseif ($ret === 0) {
            // All read
            $w->stop();
            socket_close($socket);
            return;
        }

        // Caught EINPROGRESS, EAGAIN, or 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 Embedding one loop into another

<?php
/*
* Try to get an embeddable event loop and embed it into the default event loop.
* If it is impossible, use the default
* loop. The default loop is stored in $loop_hi, while the embeddable loop is
* stored in $loop_lo(which is $loop_hi in the case no embeddable loop can be
* used).
*
* Sample translated to PHP
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop_hi = EvLoop::defaultLoop();
$loop_lo = NULL;
$embed   = NULL;

/*
* See if there is a chance of getting one that works
* (flags' value of 0 means autodetection)
*/
$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 Embedding loop created with kqueue backend into the default loop

<?php
/*
* Check if kqueue is available but not recommended and create a kqueue backend
* for use with sockets (which usually work with any kqueue implementation).
* Store the kqueue/socket-only event loop in loop_socket. (One might optionally
* use EVFLAG_NOENV, too)
*
* Example borrowed from
* 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;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Пример #9 Handle SIGTERM signal

<?php
$w = new EvSignal(SIGTERM, function ($watcher) {
    echo "SIGTERM received\n";
    $watcher->stop();
});

Ev::run();
?>

Пример #10 Monitor changes of /var/log/messages

<?php
// Use 10 second update interval.
$w = new EvStat("/var/log/messages", 8, function ($w) {
    echo "/var/log/messages changed\n";

    $attr = $w->attr();

    if ($attr['nlink']) {
        printf("Current size: %ld\n", $attr['size']);
        printf("Current atime: %ld\n", $attr['atime']);
        printf("Current mtime: %ld\n", $attr['mtime']);
    } else {
        fprintf(STDERR, "`messages` file is not there!");
        $w->stop();
    }
});

Ev::run();
?>

Пример #11 Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay

<?php
$timer = EvTimer::createStopped(0., 1.02, function ($w) {
    $w->stop();

    $stat = $w->data;

    // 1 second after the most recent change of the file
    printf("Current size: %ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
    // Reset timer watcher
    $timer->again();
});

$timer->data = $stat;

Ev::run();
?>

Пример #12 Process status changes

<?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("Process %d exited with status %d\n", $w->rpid, $w->rstatus);
    });

    Ev::run();

    // Protect against Zombies
    pcntl_wait($status);
} else {
    //Forked child
    exit(2);
}
?>


Watchers

A watcher is an object that gets created to record interest in some event. For instance, the following code waits for STDIN to become readable:

<?php
// Wait until STDIN is readable
$w = new EvIo(STDIN, Ev::READ, function ($watcher, $revents) {
 echo "STDIN is readable\n";
});
Ev::run(Ev::RUN_ONCE);
?>

All the watcher constructors automatically start the watchers. createStopped methods create stopped watchers(e.g. EvIo::createStopped() )

Note that a watcher will automatically be stopped when the watcher object is destroyed. Therefore, the watcher objects returned by the constructors or factory methods should be kept.

Note also that all methods changing some watcher property( set , priority etc.) automatically stop and start it again if it is active, which means pending events get lost.

See also: Watcher callbacks .


Watcher callbacks

All watchers can be active(waiting for events) or inactive(paused). Only active watchers will have their callbacks invoked. All callbacks will be called with at least two arguments: watcher - the watcher, and revents a bitmask of received events.

Watcher callbacks are passed to the watcher contructors(the classes derived from EvWatcher - EvCheck::__construct() , EvChild::__construct() etc.). A watcher callback should match the following prototype:

void callback ([ object $watcher = NULL [, int $revents = NULL ]] )

watcher

The watcher instance(of a class extending EvWatcher ).

revents

Watcher received events .

Each watcher type has its associated bit in revents , so one can use the same callback for multiple watchers. The event mask is named after the type, i.e. EvChild (or EvLoop::child() ) sets EV::CHILD , EvPrepare (or EvLoop::prepare() ) sets Ev::PREPARE , EvPeriodic (or EvLoop::periodic() ) sets Ev::PERIODIC and so on, with the exception of I/O events (which can set both Ev::READ and Ev::WRITE bits).


Periodic watcher operation modes

EvPeriodic watcher works in different modes depending on the offset , interval and reschedule_cb parameters.

  1. Absolute timer . In this mode interval = 0 , reschedule_cb = NULL. This time simply fires at the wallclock time offset and doesn't repeat. It will not adjust when a time jump occurs, that is, if it is to be run at January 1st 2014 then it will run when the system time reaches or surpasses this time.

  2. Repeating interval timer . In this mode interval > 0 , reschedule_cb = NULL; the watcher will always be scheduled to timeout at the next offset + N * interval time(for some integer N ) and then repeat, regardless of any time jumps.

    This can be used to create timers that do not drift with respect to system time:

    <?php
    $hourly     = EvPeriodic(0, 3600, NULL, function () {
      echo     "once per hour\n";
    };
    ?>
    That doesn't mean there will always be 3600 seconds in between triggers, but only that the callback will be called when the system time shows a full hour( UTC ).

    EvPeriodic will try to run the callback in this mode at the next possible time where time = offset ( mod interval ), regardless of any time jumps.

  3. Manual reschedule mode . In this mode reschedule_cb is a callable .

    interval and offset are both being ignored. Instead, each time the periodic watcher gets scheduled, the reschedule callback ( reschedule_cb ) will be called with the watcher as first, and the current time as second argument.

    This callback must not stop or destroy this or any other periodic watchers, ever, and must not call any event loop functions or methods. To stop it return 1e30 and stop it afterwards. An EvPrepare watcher may be used for this task.

    It must return the next time to trigger, based on the passed time value (that is, the lowest time value larger than or equal to the second argument). It will usually be called just before the callback will be triggered, but might be called at other times, too.

    Пример #1 Using reschedule callback

    <?php
    // Tick each 10.5 seconds

    function reschedule_cb ($watcher, $now) {
       return     $now + (10.5. - fmod($now, 10.5));
    }

    $w = new EvPeriodic(0., 0., "reschedule_cb", function ($w, $revents) {
       echo     time(), PHP_EOL;
    });

    Ev::run();
    ?>


Класс Ev

(PECL ev >= 0.2.0)

Введение

Класс EV является статическим классом, обеспечивая доступ к циклу по умолчанию и некоторым распространенным операциям.

Обзор классов

final Ev {
/* Константы */
const integer FLAG_AUTO = 0 ;
const integer FLAG_NOENV = 16777216 ;
const integer FLAG_FORKCHECK = 33554432 ;
const integer FLAG_NOINOTIFY = 1048576 ;
const integer FLAG_SIGNALFD = 2097152 ;
const integer FLAG_NOSIGMASK = 4194304 ;
const integer RUN_NOWAIT = 1 ;
const integer RUN_ONCE = 2 ;
const integer BREAK_CANCEL = 0 ;
const integer BREAK_ONE = 1 ;
const integer BREAK_ALL = 2 ;
const integer MINPRI = -2 ;
const integer MAXPRI = 2 ;
const integer READ = 1 ;
const integer WRITE = 2 ;
const integer TIMER = 256 ;
const integer PERIODIC = 512 ;
const integer SIGNAL = 1024 ;
const integer CHILD = 2048 ;
const integer STAT = 4096 ;
const integer IDLE = 8192 ;
const integer PREPARE = 16384 ;
const integer CHECK = 32768 ;
const integer EMBED = 65536 ;
const integer CUSTOM = 16777216 ;
const integer ERROR = 2147483648 ;
const integer BACKEND_SELECT = 1 ;
const integer BACKEND_POLL = 2 ;
const integer BACKEND_EPOLL = 4 ;
const integer BACKEND_KQUEUE = 8 ;
const integer BACKEND_DEVPOLL = 16 ;
const integer BACKEND_PORT = 32 ;
const integer BACKEND_ALL = 63 ;
const integer BACKEND_MASK = 65535 ;
/* Методы */
final public static int backend ( void )
final public static int depth ( void )
final public static void embeddableBackends ( void )
final public static void feedSignal ( int $signum )
final public static void feedSignalEvent ( int $signum )
final public static int iteration ( void )
final public static double now ( void )
final public static void nowUpdate ( void )
final public static void recommendedBackends ( void )
final public static void resume ( void )
final public static void run ([ int $flags ] )
final public static void sleep ( double $seconds )
final public static void stop ([ int $how ] )
final public static void supportedBackends ( void )
final public static void suspend ( void )
final public static double time ( void )
final public static void 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 — Returns an integer describing the backend used by libev.
  • Ev::depth — Returns recursion depth
  • Ev::embeddableBackends — Returns the set of backends that are embeddable in other event loops.
  • Ev::feedSignal — Feed a signal event info Ev
  • Ev::feedSignalEvent — Feed signal event into the default loop
  • Ev::iteration — Return the number of times the default event loop has polled for new events.
  • Ev::now — Returns the time when the last iteration of the default event loop has started.
  • Ev::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress.
  • Ev::recommendedBackends — Returns a bit mask of recommended backends for current platform.
  • Ev::resume — Resume previously suspended default event loop
  • Ev::run — Begin checking for events and calling callbacks for the default loop
  • Ev::sleep — Block the process for the given number of seconds.
  • Ev::stop — Stops the default event loop
  • Ev::supportedBackends — Returns the set of backends supported by current libev configuration.
  • Ev::suspend — Suspend the default event loop
  • Ev::time — Returns the current time in fractional seconds since the epoch.
  • Ev::verify — Performs internal consistency checks(for debugging)


Returns an integer describing the backend used by libev.

  • « Ev
  • Ev::depth »
  • PHP Manual
  • Ev
  • Returns an integer describing the backend used by libev.

Ev::backend

(PECL ev >= 0.2.0)

Ev::backend — Returns an integer describing the backend used by libev.

Описание

final public static int Ev::backend ( void )

Returns an integer describing the backend used by libev . See Backend flags

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer(bit mask) describing the backend used by libev .

Смотрите также

  • EvEmbed
  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops.
  • Ev::recommendedBackends() - Returns a bit mask of recommended backends for current platform.
  • Ev::supportedBackends() - Returns the set of backends supported by current libev configuration.
  • Backend flags


Returns recursion depth

  • « Ev::backend
  • Ev::embeddableBackends »
  • PHP Manual
  • Ev
  • Returns recursion depth

Ev::depth

(PECL ev >= 0.2.0)

Ev::depth — Returns recursion depth

Описание

final public static int Ev::depth ( void )

The number of times Ev::run() was entered minus the number of times Ev::run() was exited normally, in other words, the recursion depth. Outside Ev::run() , this number is 0 . In a callback, this number is 1 , unless Ev::run() was invoked recursively (or from another thread), in which case it is higher.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

ev_depth() returns recursion depth of the default loop.

Смотрите также

  • Ev::iteration() - Return the number of times the default event loop has polled for new events.


Returns the set of backends that are embeddable in other event loops.

  • « Ev::depth
  • Ev::feedSignal »
  • PHP Manual
  • Ev
  • Returns the set of backends that are embeddable in other event loops.

Ev::embeddableBackends

(PECL ev >= 0.2.0)

Ev::embeddableBackends — Returns the set of backends that are embeddable in other event loops.

Описание

final public static void Ev::embeddableBackends ( void )

Returns the set of backends that are embeddable in other event loops.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a bit mask which can containing backend flags combined using bitwise OR operator.

Примеры

Пример #1 Embedding loop created with kqueue backend into the default loop

<?php
/*
* Check if kqueue is available but not recommended and create a kqueue backend
* for use with sockets (which usually work with any kqueue implementation).
* Store the kqueue/socket-only event loop in loop_socket. (One might optionally
* use EVFLAG_NOENV, too)
*
* Example borrowed from
* 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;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Смотрите также

  • EvEmbed
  • Ev::recommendedBackends() - Returns a bit mask of recommended backends for current platform.
  • Ev::supportedBackends() - Returns the set of backends supported by current libev configuration.
  • Backend flags
  • Examples


Feed a signal event info Ev

  • « Ev::embeddableBackends
  • Ev::feedSignalEvent »
  • PHP Manual
  • Ev
  • Feed a signal event info Ev

Ev::feedSignal

(PECL ev >= 0.2.0)

Ev::feedSignal — Feed a signal event info Ev

Описание

final public static void Ev::feedSignal ( int $signum )

Simulates a signal receive. It is safe to call this function at any time, from any context, including signal handlers or random threads. Its main use is to customise signal handling in the process.

Unlike Ev::feedSignalEvent() , this works regardless of which loop has registered the signal.

Список параметров

signum

Signal number. See signal(7) man page for detals. You can use constants exported by pcntl extension.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::feedSignalEvent() - Feed signal event into the default loop


Feed signal event into the default loop

  • « Ev::feedSignal
  • Ev::iteration »
  • PHP Manual
  • Ev
  • Feed signal event into the default loop

Ev::feedSignalEvent

(Информация о версии неизвестна, возможно, только в SVN)

Ev::feedSignalEvent — Feed signal event into the default loop

Описание

final public static void Ev::feedSignalEvent ( int $signum )

Feed signal event into the default loop. Ev will react to this call as if the signal specified by signal had occurred.

Список параметров

signum

Signal number. See signal(7) man page for detals. See also constants exported by pcntl extension.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::feedSignal() - Feed a signal event info Ev


Return the number of times the default event loop has polled for new events.

  • « Ev::feedSignalEvent
  • Ev::now »
  • PHP Manual
  • Ev
  • Return the number of times the default event loop has polled for new events.

Ev::iteration

(PECL ev >= 0.2.0)

Ev::iteration — Return the number of times the default event loop has polled for new events.

Описание

final public static int Ev::iteration ( void )

Return the number of times the event loop has polled for new events. Sometimes useful as a generation counter.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns number of polls of the default event loop.

Смотрите также

  • Ev::depth() - Returns recursion depth


Returns the time when the last iteration of the default event loop has started.

  • « Ev::iteration
  • Ev::nowUpdate »
  • PHP Manual
  • Ev
  • Returns the time when the last iteration of the default event loop has started.

Ev::now

(PECL ev >= 0.2.0)

Ev::now — Returns the time when the last iteration of the default event loop has started.

Описание

final public static double Ev::now ( void )

Returns the time when the last iteration of the default event loop has started. This is the time that timers( EvTimer and EvPeriodic ) are based on, and referring to it is usually faster then calling Ev::time() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns number of seconds(fractional) representing the time when the last iteration of the default event loop has started.

Смотрите также

  • Ev::nowUpdate() - Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress.


Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress.

  • « Ev::now
  • Ev::recommendedBackends »
  • PHP Manual
  • Ev
  • Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress.

Ev::nowUpdate

(PECL ev >= 0.2.0)

Ev::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress.

Описание

final public static void Ev::nowUpdate ( void )

Establishes the current time by querying the kernel, updating the time returned by Ev::now() in the progress. This is a costly operation and is usually done automatically within Ev::run() .

This method is rarely useful, but when some event callback runs for a very long time without entering the event loop, updating libev 's consideration of the current time is a good idea.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::now() - Returns the time when the last iteration of the default event loop has started.


Returns a bit mask of recommended backends for current platform.

  • « Ev::nowUpdate
  • Ev::resume »
  • PHP Manual
  • Ev
  • Returns a bit mask of recommended backends for current platform.

Ev::recommendedBackends

(PECL ev >= 0.2.0)

Ev::recommendedBackends — Returns a bit mask of recommended backends for current platform.

Описание

final public static void Ev::recommendedBackends ( void )

Returns the set of all backends compiled into this binary of libev and also recommended for this platform, meaning it will work for most file descriptor types. This set is often smaller than the one returned by ev_supported_backends() , as for example kqueue is broken on most BSD systems and will not be auto-detected unless it is requested explicitly. This is the set of backends that libev will probe no backends specified explicitly.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a bit mask which can containing backend flags combined using bitwise OR operator.

Примеры

Пример #1 Embedding one loop into another

<?php
/*
* Try to get an embeddable event loop and embed it into the default event loop.
* If it is impossible, use the default
* loop. The default loop is stored in $loop_hi, while the embeddable loop is
* stored in $loop_lo(which is $loop_hi in the case no embeddable loop can be
* used).
*
* Sample translated to PHP
* http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Examples_CONTENT-9
*/
$loop_hi = EvLoop::defaultLoop();
$loop_lo = NULL;
$embed   = NULL;

/*
* See if there is a chance of getting one that works
* (flags' value of 0 means autodetection)
*/
$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() - Returns the set of backends that are embeddable in other event loops.
  • Ev::supportedBackends() - Returns the set of backends supported by current libev configuration.
  • Backend flags
  • Examples


Resume previously suspended default event loop

  • « Ev::recommendedBackends
  • Ev::run »
  • PHP Manual
  • Ev
  • Resume previously suspended default event loop

Ev::resume

(PECL ev >= 0.2.0)

Ev::resume — Resume previously suspended default event loop

Описание

final public static void Ev::resume ( void )

Ev::suspend() and Ev::resume() methods suspend and resume a loop correspondingly.

All timer watchers will be delayed by the time spend between suspend and resume , and all periodic watchers will be rescheduled(that is, they will lose any events that would have occurred while suspended).

After calling Ev::suspend() it is not allowed to call any function on the given loop other than Ev::resume() . Also it is not allowed to call Ev::resume() without a previous call to Ev::suspend() .

Calling suspend / resume has the side effect of updating the event loop time(see Ev::nowUpdate() ).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::suspend() - Suspend the default event loop


Begin checking for events and calling callbacks for the default loop

  • « Ev::resume
  • Ev::sleep »
  • PHP Manual
  • Ev
  • Begin checking for events and calling callbacks for the default loop

Ev::run

(PECL ev >= 0.2.0)

Ev::run — Begin checking for events and calling callbacks for the default loop

Описание

final public static void Ev::run ([ int $flags ] )

Begin checking for events and calling callbacks for the default loop . Returns when a callback calls Ev::stop() method, or the flags are nonzero(in which case the return value is true) or when there are no active watchers which reference the loop( EvWatcher::keepalive() is TRUE), in which case the return value will be FALSE. The return value can generally be interpreted as if TRUE, there is more work left to do .

Список параметров

flags

Optional parameter flags can be one of the following:

List for possible values of flags
flags | Description
0 | The default behavior described above
Ev::RUN_ONCE | Block at most one(wait, but don't loop)
Ev::RUN_NOWAIT | Don't block at all(fetch/handle events, but don't wait)

See the run flag constants .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::stop() - Stops the default event loop
  • EvLoop::run() - Begin checking for events and calling callbacks for the loop


Block the process for the given number of seconds.

  • « Ev::run
  • Ev::stop »
  • PHP Manual
  • Ev
  • Block the process for the given number of seconds.

Ev::sleep

(PECL ev >= 0.2.0)

Ev::sleep — Block the process for the given number of seconds.

Описание

final public static void Ev::sleep ( double $seconds )

Block the process for the given number of seconds.

Список параметров

seconds

Fractional number of seconds

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Stops the default event loop

  • « Ev::sleep
  • Ev::supportedBackends »
  • PHP Manual
  • Ev
  • Stops the default event loop

Ev::stop

(PECL ev >= 0.2.0)

Ev::stop — Stops the default event loop

Описание

final public static void Ev::stop ([ int $how ] )

Stops the default event loop

Список параметров

how

One of Ev::BREAK_* constants .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::run() - Begin checking for events and calling callbacks for the default loop


Returns the set of backends supported by current libev configuration.

  • « Ev::stop
  • Ev::suspend »
  • PHP Manual
  • Ev
  • Returns the set of backends supported by current libev configuration.

Ev::supportedBackends

(PECL ev >= 0.2.0)

Ev::supportedBackends — Returns the set of backends supported by current libev configuration.

Описание

final public static void Ev::supportedBackends ( void )

Returns the set of backends supported by current libev configuration.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a bit mask which can containing backend flags combined using bitwise OR operator.

Примеры

Пример #1 Embedding loop created with kqueue backend into the default loop

<?php
/*
* Check if kqueue is available but not recommended and create a kqueue backend
* for use with sockets (which usually work with any kqueue implementation).
* Store the kqueue/socket-only event loop in loop_socket. (One might optionally
* use EVFLAG_NOENV, too)
*
* Example borrowed from
* 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;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Смотрите также

  • EvEmbed
  • Ev::recommendedBackends() - Returns a bit mask of recommended backends for current platform.
  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops.
  • Backend flags
  • Examples


Suspend the default event loop

  • « Ev::supportedBackends
  • Ev::time »
  • PHP Manual
  • Ev
  • Suspend the default event loop

Ev::suspend

(PECL ev >= 0.2.0)

Ev::suspend — Suspend the default event loop

Описание

final public static void Ev::suspend ( void )

Ev::suspend() and Ev::resume() methods suspend and resume the default loop correspondingly.

All timer watchers will be delayed by the time spend between suspend and resume , and all periodic watchers will be rescheduled(that is, they will lose any events that would have occurred while suspended).

After calling Ev::suspend() it is not allowed to call any function on the given loop other than Ev::resume() . Also it is not allowed to call Ev::resume() without a previous call to Ev::suspend() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::resume() - Resume previously suspended default event loop


Returns the current time in fractional seconds since the epoch.

  • « Ev::suspend
  • Ev::verify »
  • PHP Manual
  • Ev
  • Returns the current time in fractional seconds since the epoch.

Ev::time

(PECL ev >= 0.2.0)

Ev::time — Returns the current time in fractional seconds since the epoch.

Описание

final public static double Ev::time ( void )

Returns the current time in fractional seconds since the epoch. Consider using Ev::now()

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current time in fractional seconds since the epoch.

Смотрите также

  • Ev::now() - Returns the time when the last iteration of the default event loop has started.


Performs internal consistency checks(for debugging)

  • « Ev::time
  • EvCheck »
  • PHP Manual
  • Ev
  • Performs internal consistency checks(for debugging)

Ev::verify

(PECL ev >= 0.2.0)

Ev::verify — Performs internal consistency checks(for debugging)

Описание

final public static void Ev::verify ( void )

Performs internal consistency checks(for debugging libev ) and abort the program if any data structures were found to be corrupted.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс EvCheck

(PECL ev >= 0.2.0)

Введение

Наблюдатели EvPrepare и EvCheck обычно используются в паре. Наблюдатель EvPrepare вызвается до блокировки процесса, затем вызывается EvCheck

Не разрешается вызывать EvLoop::run() или аналогичные методы или функции, веденные в текущий цикл событий другими наблюдателями EvPrepare или EvCheck. Однако другие циклы событий, не текущий, могут. Смысл в том, что текущему не нужно проверять рекурсию в таких наблюдателях, т.е. всегда будет последовательность: EvPrepare -> блокировка -> EvCheck, так что наблюдателя каждого вида всегда будут вызывать в парах, захватывая блокирующий вызов.

Основная цель заключается в интеграции других событийных механизмов в libev и улучшенное их использование. Они могут быть использованы, например, при отслеживании изменении переменных, при реализации пользовательских наблюдателей, при интегрировании NET-SNMP или сопрограмм библиотеки и многое другое. Они также иногда полезны при кэшировании данных и при очистке данных до блокировки.

Рекомендуется устанавливать наблюдателям EvCheck наивысший приоритет (Ev::MAXPRI), чтобы обеспечить возможность их запуска раньше любых других наблюдателей после опроса (это не имеет значения для наблюдателей EvPrepare).

Кроме того, наблюдатели EvCheck не смогут активировать/подавать события. Пока libev полностью поддерживает все это, они могут выполняться раньше, чем другие наблюдатели EvCheck выполнят свою работу.

Обзор классов

EvCheck extends EvWatcher {
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( callable $callback [, mixed $data [, int $priority ]] )
final public static object createStopped ( string $callback [, string $data [, string $priority ]] )
/* Наследуемые методы */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Содержание

  • EvCheck::__construct — Constructs the EvCheck watcher object
  • EvCheck::createStopped — Create instance of a stopped EvCheck watcher


Constructs the EvCheck watcher object

  • « EvCheck
  • EvCheck::createStopped »
  • PHP Manual
  • EvCheck
  • Constructs the EvCheck watcher object

EvCheck::__construct

(PECL ev >= 0.2.0)

EvCheck::__construct — Constructs the EvCheck watcher object

Описание

public EvCheck::__construct ( callable $callback [, mixed $data [, int $priority ]] )

Constructs the EvCheck watcher object.

Список параметров

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvCheck object on success.

Смотрите также

  • EvPrepare
  • EvLoop::check() - Creates EvCheck object associated with the current event loop instance


Create instance of a stopped EvCheck watcher

  • « EvCheck::__construct
  • EvChild »
  • PHP Manual
  • EvCheck
  • Create instance of a stopped EvCheck watcher

EvCheck::createStopped

(PECL ev >= 0.2.0)

EvCheck::createStopped — Create instance of a stopped EvCheck watcher

Описание

final public static object EvCheck::createStopped ( string $callback [, string $data [, string $priority ]] )

Create instance of a stopped EvCheck watcher

Список параметров

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvCheck object on success.

Смотрите также

  • EvPrepare


Класс EvChild

(PECL ev >= 0.2.0)

Введение

Наблюдатель EvChild вызывается тогда, когда процесс получает сигнал SIGCHLD в ответ на некоторые изменения статуса дочернего элемента (обычно когда дочерний процесс завершает свою работу или выходит из него). Разрешается устанавливать наблюдатель EvChild после того, как дочерний покот создал свой дочерний поток (что подразумевает, что он уже завершился), пока не началась итерация цикла событий (или продолжается из наблюдателя), т.е. ветвление и регистрации наблюдателя для дочернего элемента является хорошей практикой, а ветвление и регистрации наблюдателя после нескольких итераций цикла событий или при следующем запуске функции обратного вызова - нет.

Наблюдателей EvChild разрешается регистрировать только в цикле по умолчанию .

Обзор классов

EvChild extends EvWatcher {
/* Свойства */
public $pid ;
public $rpid ;
public $rstatus ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( int $pid , bool $trace , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static object createStopped ( int $pid , bool $trace , callable $callback [, mixed $data [, int $priority ]] )
public void set ( int $pid , bool $trace )
/* Наследуемые методы */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Свойства

pid

Только чтение. Идентификатор процесса, который следит, или 0, что означает любой идентификатор процесса.

rpid

Только чтение. Идентификатор процесса, который следит за изменением статуса.

rstatus

Только чтение. Статус завершения процесса, вызванный rpid.

Содержание

  • EvChild::__construct — Constructs the EvChild watcher object
  • EvChild::createStopped — Create instance of a stopped EvCheck watcher
  • EvChild::set — Configures the watcher


Constructs the EvChild watcher object

  • « EvChild
  • EvChild::createStopped »
  • PHP Manual
  • EvChild
  • Constructs the EvChild watcher object

EvChild::__construct

(PECL ev >= 0.2.0)

EvChild::__construct — Constructs the EvChild watcher object

Описание

public EvChild::__construct ( int $pid , bool $trace , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Constructs the EvChild watcher object.

Call the callback when a status change for process ID pid (or any PID if pid is 0 ) has been received(a status change happens when the process terminates or is killed, or, when trace is TRUE, additionally when it is stopped or continued). In other words, when the process receives a SIGCHLD , Ev will fetch the outstanding exit/wait status for all changed/zombie children and call the callback.

It is valid to install a child watcher after an EvChild has exited but before the event loop has started its next iteration. For example, first one calls fork , then the new child process might exit, and only then an EvChild watcher is installed in the parent for the new PID .

You can access both exit/tracing status and pid by using the rstatus and rpid properties of the watcher object.

The number of PID watchers per PID is unlimited. All of them will be called.

The EvChild::createStopped() method doesn't start(activate) the newly created watcher.

Список параметров

pid

Wait for status changes of process PID(or any process if PID is specified as 0 ).

trace

If FALSE, only activate the watcher when the process terminates. Otherwise(TRUE) additionally activate the watcher when the process is stopped or continued.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvChild object on success.

Смотрите также

  • EvLoop::child() - Creates EvChild object associated with the current event loop


Create instance of a stopped EvCheck watcher

  • « EvChild::__construct
  • EvChild::set »
  • PHP Manual
  • EvChild
  • Create instance of a stopped EvCheck watcher

EvChild::createStopped

(PECL ev >= 0.2.0)

EvChild::createStopped — Create instance of a stopped EvCheck watcher

Описание

final public static object EvChild::createStopped ( int $pid , bool $trace , callable $callback [, mixed $data [, int $priority ]] )

The same as EvChild::__construct() , but doesn't start the watcher automatically.

Список параметров

pid

The same as for EvChild::__construct()

trace

The same as for EvChild::__construct()

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Смотрите также

  • EvChild::__construct() - Constructs the EvChild watcher object
  • EvLoop::child() - Creates EvChild object associated with the current event loop


Configures the watcher

  • « EvChild::createStopped
  • EvEmbed »
  • PHP Manual
  • EvChild
  • Configures the watcher

EvChild::set

(PECL ev >= 0.2.0)

EvChild::set — Configures the watcher

Описание

public void EvChild::set ( int $pid , bool $trace )

Список параметров

pid

The same as for EvChild::__construct()

trace

The same as for EvChild::__construct()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvChild::__construct() - Constructs the EvChild watcher object


Класс EvEmbed

(PECL ev >= 0.2.0)

Введение

Используется для вставки одного цикла событий в другой.

Обзор классов

EvEmbed extends EvWatcher {
/* Свойства */
public $embed ;
/* Методы */
public __construct ( object $other [, callable $callback [, mixed $data [, int $priority ]]] )
final public static void createStopped ( object $other [, callable $callback [, mixed $data [, int $priority ]]] )
public void set ( object $other )
public void sweep ( void )
/* Наследуемые методы */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Свойства

is_active

data

is_pending

priority

embed

Содержание

  • EvEmbed::__construct — Constructs the EvEmbed object
  • EvEmbed::createStopped — Create stopped EvEmbed watcher object
  • EvEmbed::set — Configures the watcher
  • EvEmbed::sweep — Make a single, non-blocking sweep over the embedded loop.


Constructs the EvEmbed object

  • « EvEmbed
  • EvEmbed::createStopped »
  • PHP Manual
  • EvEmbed
  • Constructs the EvEmbed object

EvEmbed::__construct

(PECL ev >= 0.2.0)

EvEmbed::__construct — Constructs the EvEmbed object

Описание

public EvEmbed::__construct ( object $other [, callable $callback [, mixed $data [, int $priority ]]] )

This is a rather advanced watcher type that lets to embed one event loop into another(currently only IO events are supported in the embedded loop, other types of watchers might be handled in a delayed or incorrect fashion and must not be used).

See » the libev documentation for details.

This watcher is most useful on BSD systems without working kqueue to still be able to handle a large number of sockets. See example below.

Список параметров

other

Instance of EvLoop . The loop to embed, this loop must be embeddable(see Ev::embeddableBackends() ).

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvEmbed object on success.

Примеры

Пример #1 Embedding loop created with kqueue backend into the default loop

<?php
/*
 * Check if kqueue is available but not recommended and create a kqueue backend
 * for use with sockets (which usually work with any kqueue implementation).
 * Store the kqueue/socket-only event loop in loop_socket. (One might optionally
 * use EVFLAG_NOENV, too)
 *
 * Example borrowed from
 * 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;
}

// Now use $socket_loop for all sockets, and $loop for anything else
?>

Смотрите также

  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops.


Create stopped EvEmbed watcher object

  • « EvEmbed::__construct
  • EvEmbed::set »
  • PHP Manual
  • EvEmbed
  • Create stopped EvEmbed watcher object

EvEmbed::createStopped

(PECL ev >= 0.2.0)

EvEmbed::createStopped — Create stopped EvEmbed watcher object

Описание

final public static void EvEmbed::createStopped ( object $other [, callable $callback [, mixed $data [, int $priority ]]] )

The same as EvEmbed::__construct() , but doesn't start the watcher automatically.

Список параметров

other

The same as for EvEmbed::__construct()

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns stopped EvEmbed object on success.

Смотрите также

  • EvEmbed::__construct() - Constructs the EvEmbed object
  • Ev::embeddableBackends() - Returns the set of backends that are embeddable in other event loops.


Configures the watcher

  • « EvEmbed::createStopped
  • EvEmbed::sweep »
  • PHP Manual
  • EvEmbed
  • Configures the watcher

EvEmbed::set

(PECL ev >= 0.2.0)

EvEmbed::set — Configures the watcher

Описание

public void EvEmbed::set ( object $other )

Configures the watcher to use other event loop object.

Список параметров

other

The same as for EvEmbed::__construct()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Make a single, non-blocking sweep over the embedded loop.

  • « EvEmbed::set
  • EvFork »
  • PHP Manual
  • EvEmbed
  • Make a single, non-blocking sweep over the embedded loop.

EvEmbed::sweep

(PECL ev >= 0.2.0)

EvEmbed::sweep — Make a single, non-blocking sweep over the embedded loop.

Описание

public void EvEmbed::sweep ( void )

Make a single, non-blocking sweep over the embedded loop. Works similarly to the following, but in the most appropriate way for embedded loops:

<?php
$other->start(Ev::RUN_NOWAIT);
?>

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvWatcher::start() - Starts the watcher


Класс EvFork

(PECL ev >= 0.2.0)

Введение

Параллельный процесс наблюдателя вызывается тогда, когда вызывается fork() (обычно потому, что об этом сообщили libev путем вызова EvLoop::fork()). Вызов делается до следующей блокировки циклом событий и до начала вызова наблюдателей EvCheck и только в дочернем процессе после ветвления. Обратите внимание на то, что если кто-нибудь сделает вызов EvLoop::fork() в неправильном процессе, обработчики ветвления также будут вызваны.

Обзор классов

EvFork extends EvWatcher {
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static object createStopped ( string $callback [, string $data [, string $priority ]] )
/* Наследуемые методы */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Содержание

  • EvFork::__construct — Constructs the EvFork watcher object
  • EvFork::createStopped — Creates a stopped instance of EvFork watcher class


Constructs the EvFork watcher object

  • « EvFork
  • EvFork::createStopped »
  • PHP Manual
  • EvFork
  • Constructs the EvFork watcher object

EvFork::__construct

(PECL ev >= 0.2.0)

EvFork::__construct — Constructs the EvFork watcher object

Описание

public EvFork::__construct ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Constructs the EvFork watcher object and starts the watcher automatically.

Список параметров

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvFork object on success.

Смотрите также

  • EvLoop::fork() - Creates EvFork watcher object associated with the current event loop instance
  • EvCheck


Creates a stopped instance of EvFork watcher class

  • « EvFork::__construct
  • EvIdle »
  • PHP Manual
  • EvFork
  • Creates a stopped instance of EvFork watcher class

EvFork::createStopped

(PECL ev >= 0.2.0)

EvFork::createStopped — Creates a stopped instance of EvFork watcher class

Описание

final public static object EvFork::createStopped ( string $callback [, string $data [, string $priority ]] )

The same as EvFork::__construct() , but doesn't start the watcher automatically.

Список параметров

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvFork(stopped) object on success.

Смотрите также

  • EvFork::__construct() - Constructs the EvFork watcher object


Класс EvIdle

(PECL ev >= 0.2.0)

Введение

Наблюдатели EvIdle вызывают события тогда, когда никакие другие события такого же или более высокого приоритета не находятся в ожидании (EvPrepare, EvCheck и другие наблюдатели EvIdle не считаются за получающие события).

Таким образом этот процесс занят обработкой сокетов или ожиданий (или даже сигналов) такого же или более высокого приоритета до тех пор, пока он не будет активирован. Но когда процесс находится в режиме ожидания (или в очереди только наблюдатели с более низким приоритетом), наблюдатели EvIdle будут вызываться единожды за итерацию цикла событий - пока не будут остановлены или пока процессом не будут получены новые сообщения и он не будет занят более приоритетными задачами.

Помимо поддержания неблокирующего процесса (который полезен в некоторых случаях), наблюдатели EvIdle являются хорошим местом для выполнения "псевдо-фоновой обработки" или задержки обработки данных до момента, пока цикл событий не обработает все исключительные события.

Наиболее заметный эффект проявляется в том, что пока спящие наблюдатели активны, процесс не будет блокироваться в процессе ожидания новых событий.

Обзор классов

EvIdle extends EvWatcher {
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( callable $callback [, mixed $data [, int $priority ]] )
final public static object createStopped ( string $callback [, mixed $data [, int $priority ]] )
/* Наследуемые методы */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Содержание

  • EvIdle::__construct — Constructs the EvIdle watcher object
  • EvIdle::createStopped — Creates instance of a stopped EvIdle watcher object


Constructs the EvIdle watcher object

  • « EvIdle
  • EvIdle::createStopped »
  • PHP Manual
  • EvIdle
  • Constructs the EvIdle watcher object

EvIdle::__construct

(PECL ev >= 0.2.0)

EvIdle::__construct — Constructs the EvIdle watcher object

Описание

public EvIdle::__construct ( callable $callback [, mixed $data [, int $priority ]] )

Constructs the EvIdle watcher object and starts the watcher automatically.

Список параметров

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvIdle object on success.

Смотрите также

  • EvIdle::createStopped() - Creates instance of a stopped EvIdle watcher object
  • EvLoop::idle() - Creates EvIdle watcher object associated with the current event loop instance


Creates instance of a stopped EvIdle watcher object

  • « EvIdle::__construct
  • EvIo »
  • PHP Manual
  • EvIdle
  • Creates instance of a stopped EvIdle watcher object

EvIdle::createStopped

(PECL ev >= 0.2.0)

EvIdle::createStopped — Creates instance of a stopped EvIdle watcher object

Описание

final public static object EvIdle::createStopped ( string $callback [, mixed $data [, int $priority ]] )

The same as EvIdle::__construct() , but doesn't start the watcher automatically.

Список параметров

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvIdle object on success.

Смотрите также

  • EvIdle::__construct() - Constructs the EvIdle watcher object
  • EvLoop::idle() - Creates EvIdle watcher object associated with the current event loop instance


The EvIo class

(PECL ev >= 0.2.0)

Введение

EvIo watchers check whether a file descriptor(or socket, or a stream castable to numeric file descriptor) is readable or writable in each iteration of the event loop, or, more precisely, when reading would not block the process and writing would at least be able to write some data. This behaviour is called level-triggering because events are kept receiving as long as the condition persists. To stop receiving events just stop the watcher.

The number of read and/or write event watchers per fd is unlimited. Setting all file descriptors to non-blocking mode is also usually a good idea(but not required).

Another thing to watch out for is that it is quite easy to receive false readiness notifications, i.e. the callback might be called with Ev::READ but a subsequent read() will actually block because there is no data. It is very easy to get into this situation. Thus it is best to always use non-blocking I/O: An extra read() returning EAGAIN (or similar) is far preferable to a program hanging until some data arrives.

If for some reason it is impossible to run the fd in non-blocking mode, then separately re-test whether a file descriptor is really ready. Some people additionally use SIGALRM and an interval timer, just to be sure thry won't block infinitely.

Always consider using non-blocking mode.

Обзор классов

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 EvIo createStopped ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void set ( mixed $fd , int $events )
/* Наследуемые методы */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Свойства

fd

events

Содержание

  • EvIo::__construct — Constructs EvIo watcher object
  • EvIo::createStopped — Create stopped EvIo watcher object
  • EvIo::set — Configures the watcher


Constructs EvIo watcher object

  • « EvIo
  • EvIo::createStopped »
  • PHP Manual
  • EvIo
  • Constructs EvIo watcher object

EvIo::__construct

(PECL ev >= 0.2.0)

EvIo::__construct — Constructs EvIo watcher object

Описание

public EvIo::__construct ( mixed $fd , int $events , callable $callback [, mixed $data [, int $priority ]] )

Constructs EvIo watcher object and starts the watcher automatically.

Список параметров

fd

Can be a stream opened with fopen() or similar functions, numeric file descriptor, or socket.

events

Ev::READ and/or Ev::WRITE . See the bit masks .

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvIo object on success.

Смотрите также

  • EvIo::createStopped() - Create stopped EvIo watcher object
  • EvLoop::io() - Create EvIo watcher object associated with the current event loop instance


Create stopped EvIo watcher object

  • « EvIo::__construct
  • EvIo::set »
  • PHP Manual
  • EvIo
  • Create stopped EvIo watcher object

EvIo::createStopped

(PECL ev >= 0.2.0)

EvIo::createStopped — Create stopped EvIo watcher object

Описание

final public static EvIo EvIo::createStopped ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

The same as EvIo::__construct() , but doesn't start the watcher automatically.

Список параметров

fd

The same as for EvIo::__construct()

events

The same as for EvIo::__construct()

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvIo object on success.

Смотрите также

  • EvIo::__construct() - Constructs EvIo watcher object
  • EvLoop::io() - Create EvIo watcher object associated with the current event loop instance


Configures the watcher

  • « EvIo::createStopped
  • EvLoop »
  • PHP Manual
  • EvIo
  • Configures the watcher

EvIo::set

(PECL ev >= 0.2.0)

EvIo::set — Configures the watcher

Описание

public void EvIo::set ( mixed $fd , int $events )

Configures the EvIo watcher

Список параметров

fd

The same as for EvIo::__construct()

events

The same as for EvIo::__construct()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The EvLoop class

(PECL ev >= 0.2.0)

Введение

Represents an event loop that is always distinct from the default loop . Unlike the default loop , it cannot handle EvChild watchers.

Having threads we have to create a loop per thread, and use the the default loop in the parent thread.

The default event loop is initialized automatically by Ev . It is accessible via methods of the Ev class, or via EvLoop::defaultLoop() method.

Обзор классов

final EvLoop {
/* Свойства */
public $data ;
public $backend ;
public $is_default_loop ;
public $iteration ;
public $pending ;
public $io_interval ;
public $timeout_interval ;
public $depth ;
/* Методы */
public int backend ( void )
final public EvCheck check ( string $callback [, string $data [, string $priority ]] )
final public EvChild child ( string $pid , string $trace , string $callback [, string $data [, string $priority ]] )
public __construct ([ int $flags [, mixed $data = NULL [, double $io_interval = 0.0 [, double $timeout_interval = 0.0 ]]]] )
public static EvLoop defaultLoop ([ int $flags = Ev::FLAG_AUTO [, mixed $data = NULL [, double $io_interval = 0. [, double $timeout_interval = 0. ]]]] )
final public EvEmbed embed ( string $other [, string $callback [, string $data [, string $priority ]]] )
final public EvFork fork ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public EvIdle idle ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void invokePending ( void )
final public EvIo io ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void loopFork ( void )
public double now ( void )
public void nowUpdate ( void )
final public EvPeriodic periodic ( double $offset , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public EvPrepare prepare ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void resume ( void )
public void run ([ int $flags = 0 ] )
final public EvSignal signal ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public EvStat stat ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void stop ([ int $how ] )
public void suspend ( void )
final public EvTimer timer ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void verify ( void )
}

Свойства

data

Custom data attached to loop

backend

Readonly . The backend flags indicating the event backend in use.

is_default_loop

Readonly . TRUE if it is the default event loop.

iteration

The current iteration count of the loop. See Ev::iteration()

pending

The number of pending watchers. 0 indicates that there are no watchers pending.

io_interval

Higher io_interval allows libev to spend more time collecting EvIo events, so more events can be handled per iteration, at the cost of increasing latency. Timeouts (both EvPeriodic and EvTimer ) will not be affected. Setting this to a non-zero value will introduce an additional sleep() call into most loop iterations. The sleep time ensures that libev will not poll for EvIo events more often than once per this interval, on average. Many programs can usually benefit by setting the io_interval to a value near 0.1 , which is often enough for interactive servers(not for games). It usually doesn't make much sense to set it to a lower value than 0.01 , as this approaches the timing granularity of most systems.

See also » FUNCTIONS CONTROLLING EVENT LOOPS .

timeout_interval

Higher timeout_interval allows libev to spend more time collecting timeouts, at the expense of increased latency/jitter/inexactness(the watcher callback will be called later). EvIo watchers will not be affected. Setting this to a non-null value will not introduce any overhead in libev . See also » FUNCTIONS CONTROLLING EVENT LOOPS .

depth

The recursion depth. See Ev::depth() .

Содержание

  • EvLoop::backend — Returns an integer describing the backend used by libev.
  • EvLoop::check — Creates EvCheck object associated with the current event loop instance
  • EvLoop::child — Creates EvChild object associated with the current event loop
  • EvLoop::__construct — Constructs the event loop object
  • EvLoop::defaultLoop — Returns or creates the default event loop.
  • EvLoop::embed — Creates an instance of EvEmbed watcher associated with the current EvLoop object.
  • EvLoop::fork — Creates EvFork watcher object associated with the current event loop instance
  • EvLoop::idle — Creates EvIdle watcher object associated with the current event loop instance
  • EvLoop::invokePending — Invoke all pending watchers while resetting their pending state
  • EvLoop::io — Create EvIo watcher object associated with the current event loop instance
  • EvLoop::loopFork — Must be called after a fork
  • EvLoop::now — Returns the current "event loop time"
  • EvLoop::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress.
  • EvLoop::periodic — Creates EvPeriodic watcher object associated with the current event loop instance
  • EvLoop::prepare — Creates EvPrepare watcher object associated with the current event loop instance
  • EvLoop::resume — Resume previously suspended default event loop
  • EvLoop::run — Begin checking for events and calling callbacks for the loop
  • EvLoop::signal — Creates EvSignal watcher object associated with the current event loop instance
  • EvLoop::stat — Creates EvStat watcher object associated with the current event loop instance
  • EvLoop::stop — Stops the event loop
  • EvLoop::suspend — Suspend the loop
  • EvLoop::timer — Creates EvTimer watcher object associated with the current event loop instance
  • EvLoop::verify — Performs internal consistency checks(for debugging)


Returns an integer describing the backend used by libev.

  • « EvLoop
  • EvLoop::check »
  • PHP Manual
  • EvLoop
  • Returns an integer describing the backend used by libev.

EvLoop::backend

(PECL ev >= 0.2.0)

EvLoop::backend — Returns an integer describing the backend used by libev.

Описание

public int EvLoop::backend ( void )

The same as Ev::backend() , but for the loop instance.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer describing the backend used by libev. See Ev::backend() .

Смотрите также

  • Ev::backend() - Returns an integer describing the backend used by libev.


Creates EvCheck object associated with the current event loop instance

  • « EvLoop::backend
  • EvLoop::child »
  • PHP Manual
  • EvLoop
  • Creates EvCheck object associated with the current event loop instance

EvLoop::check

(PECL ev >= 0.2.0)

EvLoop::check — Creates EvCheck object associated with the current event loop instance

Описание

final public EvCheck EvLoop::check ( string $callback [, string $data [, string $priority ]] )

Creates EvCheck object associated with the current event loop instance.

Список параметров

All parameters have the same meaning as for EvCheck::__construct()

Возвращаемые значения

Returns EvCheck object on success.

Смотрите также

  • EvCheck::__construct() - Constructs the EvCheck watcher object


Creates EvChild object associated with the current event loop

  • « EvLoop::check
  • EvLoop::__construct »
  • PHP Manual
  • EvLoop
  • Creates EvChild object associated with the current event loop

EvLoop::child

(PECL ev >= 0.2.0)

EvLoop::child — Creates EvChild object associated with the current event loop

Описание

final public EvChild EvLoop::child ( string $pid , string $trace , string $callback [, string $data [, string $priority ]] )

Creates EvChild object associated with the current event loop.

Список параметров

All parameters have the same meaning as for EvChild::__construct()

Возвращаемые значения

Returns EvChild object on success.

Смотрите также

  • EvChild::__construct() - Constructs the EvChild watcher object


Constructs the event loop object

  • « EvLoop::child
  • EvLoop::defaultLoop »
  • PHP Manual
  • EvLoop
  • Constructs the event loop object

EvLoop::__construct

(PECL ev >= 0.2.0)

EvLoop::__construct — Constructs the event loop object

Описание

public EvLoop::__construct ([ int $flags [, mixed $data = NULL [, double $io_interval = 0.0 [, double $timeout_interval = 0.0 ]]]] )

Constructs the event loop object.

Список параметров

flags

One of the event loop flags

data

Custom data associated with the loop.

io_interval

See io_interval

timeout_interval

See timeout_interval

Возвращаемые значения

Returns new EvLoop object.

Смотрите также

  • EvLoop::defaultLoop() - Returns or creates the default event loop.


Returns or creates the default event loop.

  • « EvLoop::__construct
  • EvLoop::embed »
  • PHP Manual
  • EvLoop
  • Returns or creates the default event loop.

EvLoop::defaultLoop

(PECL ev >= 0.2.0)

EvLoop::defaultLoop — Returns or creates the default event loop.

Описание

public static EvLoop EvLoop::defaultLoop ([ int $flags = Ev::FLAG_AUTO [, mixed $data = NULL [, double $io_interval = 0. [, double $timeout_interval = 0. ]]]] )

If the default event loop is not created, EvLoop::defaultLoop() creates it with the specified parameters. Otherwise, it just returns the object representing previously created instance ignoring all the parameters.

Список параметров

flags

One of the event loop flags

data

Custom data to associate with the loop.

io_collect_interval

See io_interval

timeout_collect_interval

See timeout_interval

Возвращаемые значения

Returns EvLoop object on success.

Смотрите также

  • EvLoop::__construct() - Constructs the event loop object


Creates an instance of EvEmbed watcher associated with the current EvLoop object.

  • « EvLoop::defaultLoop
  • EvLoop::fork »
  • PHP Manual
  • EvLoop
  • Creates an instance of EvEmbed watcher associated with the current EvLoop object.

EvLoop::embed

(PECL ev >= 0.2.0)

EvLoop::embed — Creates an instance of EvEmbed watcher associated with the current EvLoop object.

Описание

final public EvEmbed EvLoop::embed ( string $other [, string $callback [, string $data [, string $priority ]]] )

Creates an instance of EvEmbed watcher associated with the current EvLoop object.

Список параметров

All parameters have the same meaning as for EvEmbed::__construct() .

Возвращаемые значения

Returns EvEmbed object on success.

Смотрите также

  • EvEmbed::__construct() - Constructs the EvEmbed object


Creates EvFork watcher object associated with the current event loop instance

  • « EvLoop::embed
  • EvLoop::idle »
  • PHP Manual
  • EvLoop
  • Creates EvFork watcher object associated with the current event loop instance

EvLoop::fork

(PECL ev >= 0.2.0)

EvLoop::fork — Creates EvFork watcher object associated with the current event loop instance

Описание

final public EvFork EvLoop::fork ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Creates EvFork watcher object associated with the current event loop instance

Список параметров

All parameters have the same meaning as for EvFork::__construct()

Возвращаемые значения

Returns EvFork object on success.

Смотрите также

  • EvFork::__construct() - Constructs the EvFork watcher object


Creates EvIdle watcher object associated with the current event loop instance

  • « EvLoop::fork
  • EvLoop::invokePending »
  • PHP Manual
  • EvLoop
  • Creates EvIdle watcher object associated with the current event loop instance

EvLoop::idle

(PECL ev >= 0.2.0)

EvLoop::idle — Creates EvIdle watcher object associated with the current event loop instance

Описание

final public EvIdle EvLoop::idle ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Creates EvIdle watcher object associated with the current event loop instance

Список параметров

All the parameters have the same meaning as for EvIdle::__construct()

Возвращаемые значения

Returns EvIdle object on success.

Смотрите также

  • EvIdle::__construct() - Constructs the EvIdle watcher object


Invoke all pending watchers while resetting their pending state

  • « EvLoop::idle
  • EvLoop::io »
  • PHP Manual
  • EvLoop
  • Invoke all pending watchers while resetting their pending state

EvLoop::invokePending

(PECL ev >= 0.2.0)

EvLoop::invokePending — Invoke all pending watchers while resetting their pending state

Описание

public void EvLoop::invokePending ( void )

Invoke all pending watchers while resetting their pending state.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Create EvIo watcher object associated with the current event loop instance

  • « EvLoop::invokePending
  • EvLoop::loopFork »
  • PHP Manual
  • EvLoop
  • Create EvIo watcher object associated with the current event loop instance

EvLoop::io

(PECL ev >= 0.2.0)

EvLoop::io — Create EvIo watcher object associated with the current event loop instance

Описание

final public EvIo EvLoop::io ( mixed $fd , int $events , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Create EvIo watcher object associated with the current event loop instance.

Список параметров

All parameters have the same meaning as for EvIo::__construct()

Возвращаемые значения

Returns EvIo object on success.

Смотрите также

  • EvIo::__construct() - Constructs EvIo watcher object


Must be called after a fork

  • « EvLoop::io
  • EvLoop::now »
  • PHP Manual
  • EvLoop
  • Must be called after a fork

EvLoop::loopFork

(PECL ev >= 0.2.0)

EvLoop::loopFork — Must be called after a fork

Описание

public void EvLoop::loopFork ( void )

Must be called after a fork in the child, before entering or continuing the event loop. An alternative is to use Ev::FLAG_FORKCHECK which calls this function automatically, at some performance loss (refer to the » libev documentation ).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Returns the current "event loop time"

  • « EvLoop::loopFork
  • EvLoop::nowUpdate »
  • PHP Manual
  • EvLoop
  • Returns the current "event loop time"

EvLoop::now

(PECL ev >= 0.2.0)

EvLoop::now — Returns the current "event loop time"

Описание

public double EvLoop::now ( void )

Returns the current "event loop time", which is the time the event loop received events and started processing them. This timestamp does not change as long as callbacks are being processed, and this is also the base time used for relative timers. You can treat it as the timestamp of the event occurring(or more correctly, libev finding out about it).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns time of the event loop in (fractional) seconds.

Смотрите также

  • Ev::now() - Returns the time when the last iteration of the default event loop has started.


Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress.

  • « EvLoop::now
  • EvLoop::periodic »
  • PHP Manual
  • EvLoop
  • Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress.

EvLoop::nowUpdate

(PECL ev >= 0.2.0)

EvLoop::nowUpdate — Establishes the current time by querying the kernel, updating the time returned by EvLoop::now in the progress.

Описание

public void EvLoop::nowUpdate ( void )

Establishes the current time by querying the kernel, updating the time returned by EvLoop::now() in the progress. This is a costly operation and is usually done automatically within EvLoop::run() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvLoop::now() - Returns the current "event loop time"
  • Ev::nowUpdate() - Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress.


Creates EvPeriodic watcher object associated with the current event loop instance

  • « EvLoop::nowUpdate
  • EvLoop::prepare »
  • PHP Manual
  • EvLoop
  • Creates EvPeriodic watcher object associated with the current event loop instance

EvLoop::periodic

(PECL ev >= 0.2.0)

EvLoop::periodic — Creates EvPeriodic watcher object associated with the current event loop instance

Описание

final public EvPeriodic EvLoop::periodic ( double $offset , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Creates EvPeriodic watcher object associated with the current event loop instance

Список параметров

All parameters have the same maening as for EvPeriodic::__construct()

Возвращаемые значения

Returns EvPeriodic object on success.

Смотрите также

  • EvPeriodic::__construct() - Constructs EvPeriodic watcher object


Creates EvPrepare watcher object associated with the current event loop instance

  • « EvLoop::periodic
  • EvLoop::resume »
  • PHP Manual
  • EvLoop
  • Creates EvPrepare watcher object associated with the current event loop instance

EvLoop::prepare

(PECL ev >= 0.2.0)

EvLoop::prepare — Creates EvPrepare watcher object associated with the current event loop instance

Описание

final public EvPrepare EvLoop::prepare ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Creates EvPrepare watcher object associated with the current event loop instance

Список параметров

All parameters have the same maening as for EvPrepare()

Возвращаемые значения

Returns EvPrepare object on success

Смотрите также

  • EvPrepare::__construct() - Constructs EvPrepare watcher object


Resume previously suspended default event loop

  • « EvLoop::prepare
  • EvLoop::run »
  • PHP Manual
  • EvLoop
  • Resume previously suspended default event loop

EvLoop::resume

(PECL ev >= 0.2.0)

EvLoop::resume — Resume previously suspended default event loop

Описание

public void EvLoop::resume ( void )

EvLoop::suspend() and EvLoop::resume() methods suspend and resume a loop correspondingly.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvLoop::suspend() - Suspend the loop
  • Ev::resume() - Resume previously suspended default event loop


Begin checking for events and calling callbacks for the loop

  • « EvLoop::resume
  • EvLoop::signal »
  • PHP Manual
  • EvLoop
  • Begin checking for events and calling callbacks for the loop

EvLoop::run

(PECL ev >= 0.2.0)

EvLoop::run — Begin checking for events and calling callbacks for the loop

Описание

public void EvLoop::run ([ int $flags = 0 ] )

Begin checking for events and calling callbacks for the current event loop. Returns when a callback calls Ev::stop() method, or the flags are nonzero(in which case the return value is true) or when there are no active watchers which reference the loop( EvWatcher::keepalive() is TRUE), in which case the return value will be FALSE. The return value can generally be interpreted as if TRUE, there is more work left to do .

Список параметров

flags

Optional parameter flags can be one of the following:

List for possible values of flags
flags | Description
0 | The default behavior described above
Ev::RUN_ONCE | Block at most one(wait, but don't loop)
Ev::RUN_NOWAIT | Don't block at all(fetch/handle events, but don't wait)

See the run flag constants .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvLoop::stop() - Stops the event loop
  • Ev::run() - Begin checking for events and calling callbacks for the default loop


Creates EvSignal watcher object associated with the current event loop instance

  • « EvLoop::run
  • EvLoop::stat »
  • PHP Manual
  • EvLoop
  • Creates EvSignal watcher object associated with the current event loop instance

EvLoop::signal

(PECL ev >= 0.2.0)

EvLoop::signal — Creates EvSignal watcher object associated with the current event loop instance

Описание

final public EvSignal EvLoop::signal ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Creates EvSignal watcher object associated with the current event loop instance

Список параметров

All parameters have the same meaning as for EvSignal::__construct()

Возвращаемые значения

Returns EvSignal object on success

Смотрите также

  • EvSignal::__construct() - Constructs EvPeriodic watcher object


Creates EvStat watcher object associated with the current event loop instance

  • « EvLoop::signal
  • EvLoop::stop »
  • PHP Manual
  • EvLoop
  • Creates EvStat watcher object associated with the current event loop instance

EvLoop::stat

(PECL ev >= 0.2.0)

EvLoop::stat — Creates EvStat watcher object associated with the current event loop instance

Описание

final public EvStat EvLoop::stat ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Creates EvStat watcher object associated with the current event loop instance

Список параметров

All parameters have the same meaning as for EvSignal::__construct()

Возвращаемые значения

Returns EvStat object on success

Смотрите также

  • EvSignal::__construct() - Constructs EvPeriodic watcher object


Stops the event loop

  • « EvLoop::stat
  • EvLoop::suspend »
  • PHP Manual
  • EvLoop
  • Stops the event loop

EvLoop::stop

(PECL ev >= 0.2.0)

EvLoop::stop — Stops the event loop

Описание

public void EvLoop::stop ([ int $how ] )

Stops the event loop

Список параметров

how

One of Ev::BREAK_* constants .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvLoop::run() - Begin checking for events and calling callbacks for the loop
  • Ev::stop() - Stops the default event loop


Suspend the loop

  • « EvLoop::stop
  • EvLoop::timer »
  • PHP Manual
  • EvLoop
  • Suspend the loop

EvLoop::suspend

(PECL ev >= 0.2.0)

EvLoop::suspend — Suspend the loop

Описание

public void EvLoop::suspend ( void )

EvLoop::suspend() and EvLoop::resume() methods suspend and resume a loop correspondingly.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvLoop::resume() - Resume previously suspended default event loop
  • Ev::suspend() - Suspend the default event loop


Creates EvTimer watcher object associated with the current event loop instance

  • « EvLoop::suspend
  • EvLoop::verify »
  • PHP Manual
  • EvLoop
  • Creates EvTimer watcher object associated with the current event loop instance

EvLoop::timer

(PECL ev >= 0.2.0)

EvLoop::timer — Creates EvTimer watcher object associated with the current event loop instance

Описание

final public EvTimer EvLoop::timer ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Creates EvTimer watcher object associated with the current event loop instance

Список параметров

All parameters have the same meaning as for EvTimer::__construct()

Возвращаемые значения

Returns EvTimer object on success

Смотрите также

  • EvTimer::__construct() - Constructs an EvTimer watcher object


Performs internal consistency checks(for debugging)

  • « EvLoop::timer
  • EvPeriodic »
  • PHP Manual
  • EvLoop
  • Performs internal consistency checks(for debugging)

EvLoop::verify

(PECL ev >= 0.2.0)

EvLoop::verify — Performs internal consistency checks(for debugging)

Описание

public void EvLoop::verify ( void )

Performs internal consistency checks(for debugging libev ) and abort the program if any data structures were found to be corrupted.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Ev::verify() - Performs internal consistency checks(for debugging)


The EvPeriodic class

(PECL ev >= 0.2.0)

Введение

Periodic watchers are also timers of a kind, but they are very versatile.

Unlike EvTimer , EvPeriodic watchers are not based on real time(or relative time, the physical time that passes) but on wall clock time(absolute time, calendar or clock). The difference is that wall clock time can run faster or slower than real time, and time jumps are not uncommon(e.g. when adjusting it).

EvPeriodic watcher can be configured to trigger after some specific point in time. For example, if an EvPeriodic watcher is configured to trigger "in 10 seconds" (e.g. EvLoop::now() + 10.0 , i.e. an absolute time, not a delay), and the system clock is reset to January of the previous year , then it will take a year or more to trigger the event (unlike an EvTimer , which would still trigger roughly 10 seconds after starting it as it uses a relative timeout).

As with timers, the callback is guaranteed to be invoked only when the point in time where it is supposed to trigger has passed. If multiple timers become ready during the same loop iteration then the ones with earlier time-out values are invoked before ones with later time-out values (but this is no longer true when a callback calls EvLoop::run() recursively).

Обзор классов

EvPeriodic extends EvWatcher {
/* Свойства */
public $offset ;
public $interval ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public void again ( void )
public double at ( void )
public __construct ( double $offset , string $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static EvPeriodic createStopped ( double $offset , double $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void set ( double $offset , double $interval )
/* Наследуемые методы */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Свойства

offset

When repeating, this contains the offset value, otherwise this is the absolute point in time(the offset value passed to EvPeriodic::set() , although libev might modify this value for better numerical stability).

interval

The current interval value. Can be modified any time, but changes only take effect when the periodic timer fires or EvPeriodic::again() is being called.

Содержание

  • EvPeriodic::again — Simply stops and restarts the periodic watcher again.
  • EvPeriodic::at — Returns the absolute time that this watcher is supposed to trigger next
  • EvPeriodic::__construct — Constructs EvPeriodic watcher object
  • EvPeriodic::createStopped — Create a stopped EvPeriodic watcher
  • EvPeriodic::set — Configures the watcher


Simply stops and restarts the periodic watcher again.

  • « EvPeriodic
  • EvPeriodic::at »
  • PHP Manual
  • EvPeriodic
  • Simply stops and restarts the periodic watcher again.

EvPeriodic::again

(PECL ev >= 0.2.0)

EvPeriodic::again — Simply stops and restarts the periodic watcher again.

Описание

public void EvPeriodic::again ( void )

Simply stops and restarts the periodic watcher again. This is only useful when attributes are changed.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvTimer::again() - Restarts the timer watcher


Returns the absolute time that this watcher is supposed to trigger next

  • « EvPeriodic::again
  • EvPeriodic::__construct »
  • PHP Manual
  • EvPeriodic
  • Returns the absolute time that this watcher is supposed to trigger next

EvPeriodic::at

(PECL ev >= 0.2.0)

EvPeriodic::at — Returns the absolute time that this watcher is supposed to trigger next

Описание

public double EvPeriodic::at ( void )

When the watcher is active, returns the absolute time that this watcher is supposed to trigger next. This is not the same as the offset argument to EvPeriodic::set() or EvPeriodic::__construct() , but indeed works even in interval mode.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the absolute time this watcher is supposed to trigger next in seconds.


Constructs EvPeriodic watcher object

  • « EvPeriodic::at
  • EvPeriodic::createStopped »
  • PHP Manual
  • EvPeriodic
  • Constructs EvPeriodic watcher object

EvPeriodic::__construct

(PECL ev >= 0.2.0)

EvPeriodic::__construct — Constructs EvPeriodic watcher object

Описание

public EvPeriodic::__construct ( double $offset , string $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Constructs EvPeriodic watcher object and starts it automatically. EvPeriodic::createStopped() method creates stopped periodic watcher.

Список параметров

offset

See Periodic watcher operation modes

interval

See Periodic watcher operation modes

reschedule_cb

Reschedule callback. You can pass NULL. See Periodic watcher operation modes

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvPeriodic object on success.

Примеры

Пример #1 Periodic timer. Use reschedule callback

<?php
// Tick each 10.5 seconds

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 Periodic timer. Tick every 10.5 seconds starting at now

<?php
// Tick every 10.5 seconds starting at now
$w = new EvPeriodic(fmod(Ev::now(), 10.5), 10.5, NULL, function ($w, $revents) {
 echo time(), PHP_EOL;
});
Ev::run();
?>

Пример #3 Hourly watcher

<?php
$hourly = EvPeriodic(0, 3600, NULL, function () {
 echo "once per hour\n";
};
?>

Смотрите также

  • Periodic watcher operation modes
  • EvTimer
  • EvPeriodic::createStopped() - Create a stopped EvPeriodic watcher


Create a stopped EvPeriodic watcher

  • « EvPeriodic::__construct
  • EvPeriodic::set »
  • PHP Manual
  • EvPeriodic
  • Create a stopped EvPeriodic watcher

EvPeriodic::createStopped

(PECL ev >= 0.2.0)

EvPeriodic::createStopped — Create a stopped EvPeriodic watcher

Описание

final public static EvPeriodic EvPeriodic::createStopped ( double $offset , double $interval , callable $reschedule_cb , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Create EvPeriodic object. Unlike EvPeriodic::__construct() this method doesn't start the watcher automatically.

Список параметров

offset

See Periodic watcher operation modes

interval

See Periodic watcher operation modes

reschedule_cb

Reschedule callback. You can pass NULL. See Periodic watcher operation modes

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvPeriodic watcher object on success.

Смотрите также

  • EvPeriodic::__construct() - Constructs EvPeriodic watcher object
  • EvTimer::createStopped() - Creates EvTimer stopped watcher object


Configures the watcher

  • « EvPeriodic::createStopped
  • EvPrepare »
  • PHP Manual
  • EvPeriodic
  • Configures the watcher

EvPeriodic::set

(PECL ev >= 0.2.0)

EvPeriodic::set — Configures the watcher

Описание

public void EvPeriodic::set ( double $offset , double $interval )

(Re-)Configures EvPeriodic watcher

Список параметров

offset

The same meaning as for EvPeriodic::__construct() . See Periodic watcher operation modes

interval

The same meaning as for EvPeriodic::__construct() . See Periodic watcher operation modes

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The EvPrepare class

(PECL ev >= 0.2.0)

Введение

Наблюдатели EvPrepare и EvCheck обычно используются в паре. Наблюдатель EvPrepare вызвается до блокировки процесса, затем вызывается EvCheck

Не разрешается вызывать EvLoop::run() или аналогичные методы или функции, веденные в текущий цикл событий другими наблюдателями EvPrepare или EvCheck. Однако другие циклы событий, не текущий, могут. Смысл в том, что текущему не нужно проверять рекурсию в таких наблюдателях, т.е. всегда будет последовательность: EvPrepare -> блокировка -> EvCheck, так что наблюдателя каждого вида всегда будут вызывать в парах, захватывая блокирующий вызов.

Основная цель заключается в интеграции других событийных механизмов в libev и улучшенное их использование. Они могут быть использованы, например, при отслеживании изменении переменных, при реализации пользовательских наблюдателей, при интегрировании NET-SNMP или сопрограмм библиотеки и многое другое. Они также иногда полезны при кэшировании данных и при очистке данных до блокировки.

Рекомендуется устанавливать наблюдателям EvCheck наивысший приоритет (Ev::MAXPRI), чтобы обеспечить возможность их запуска раньше любых других наблюдателей после опроса (это не имеет значения для наблюдателей EvPrepare).

Кроме того, наблюдатели EvCheck не смогут активировать/подавать события. Пока libev полностью поддерживает все это, они могут выполняться раньше, чем другие наблюдатели EvCheck выполнят свою работу.

Обзор классов

EvPrepare extends EvWatcher {
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public __construct ( string $callback [, string $data [, string $priority ]] )
final public static EvPrepare createStopped ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
/* Наследуемые методы */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Содержание

  • EvPrepare::__construct — Constructs EvPrepare watcher object
  • EvPrepare::createStopped — Creates a stopped instance of EvPrepare watcher


Constructs EvPrepare watcher object

  • « EvPrepare
  • EvPrepare::createStopped »
  • PHP Manual
  • EvPrepare
  • Constructs EvPrepare watcher object

EvPrepare::__construct

(PECL ev >= 0.2.0)

EvPrepare::__construct — Constructs EvPrepare watcher object

Описание

public EvPrepare::__construct ( string $callback [, string $data [, string $priority ]] )

Constructs EvPrepare watcher object. And starts the watcher automatically. If need a stopped watcher consider using EvPrepare::createStopped()

Список параметров

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvPrepare object on success.

Смотрите также

  • EvCheck


Creates a stopped instance of EvPrepare watcher

  • « EvPrepare::__construct
  • EvSignal »
  • PHP Manual
  • EvPrepare
  • Creates a stopped instance of EvPrepare watcher

EvPrepare::createStopped

(PECL ev >= 0.2.0)

EvPrepare::createStopped — Creates a stopped instance of EvPrepare watcher

Описание

final public static EvPrepare EvPrepare::createStopped ( callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Creates a stopped instance of EvPrepare watcher. Unlike EvPrepare::__construct() , this method doesn' start the watcher automatically.

Список параметров

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Return EvPrepare object on success.

Смотрите также

  • EvPrepare::__construct() - Constructs EvPrepare watcher object
  • EvWatcher::start() - Starts the watcher


The EvSignal class

(PECL ev >= 0.2.0)

Введение

EvSignal watchers will trigger an event when the process receives a specific signal one or more times. Even though signals are very asynchronous, libev will try its best to deliver signals synchronously, i.e. as part of the normal event processing, like any other event.

There is no limit for the number of watchers for the same signal, but only within the same loop, i.e. one can watch for SIGINT in the default loop and for SIGIO in another loop, but it is not allowed to watch for SIGINT in both the default loop and another loop at the same time. At the moment, SIGCHLD is permanently tied to the default loop.

If possible and supported, libev will install its handlers with SA_RESTART (or equivalent) behaviour enabled, so system calls should not be unduly interrupted. In case of a problem with system calls getting interrupted by signals, all the signals can be blocked in an EvCheck watcher and unblocked in a EvPrepare watcher.

Обзор классов

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 EvSignal createStopped ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void set ( int $signum )
/* Наследуемые методы */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Свойства

signum

Signal number. See the constants exported by pcntl extension. See also signal(7) man page.

Содержание

  • EvSignal::__construct — Constructs EvPeriodic watcher object
  • EvSignal::createStopped — Create stopped EvSignal watcher object
  • EvSignal::set — Configures the watcher


Constructs EvPeriodic watcher object

  • « EvSignal
  • EvSignal::createStopped »
  • PHP Manual
  • EvSignal
  • Constructs EvPeriodic watcher object

EvSignal::__construct

(PECL ev >= 0.2.0)

EvSignal::__construct — Constructs EvPeriodic watcher object

Описание

public EvSignal::__construct ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Constructs EvPeriodic watcher object and starts it automatically. For a stopped periodic watcher consider using EvSignal::createStopped() method.

Список параметров

signum

Signal number. See constants exported by pcntl extension. See also signal(7) man page.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvSignal object on success.

Примеры

Пример #1 Handle SIGTERM signal

<?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 EvSignal::createStopped ( int $signum , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Create stopped EvSignal watcher object. Unlike EvSignal::__construct() , this method does't start the watcher automatically.

Список параметров

signum

Signal number. See constants exported by pcntl extension. See also signal(7) man page.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvSignal object on success.

Смотрите также

  • EvWatcher::start() - Starts the watcher
  • EvSignal::__construct() - Constructs EvPeriodic watcher object


Configures the watcher

  • « EvSignal::createStopped
  • EvStat »
  • PHP Manual
  • EvSignal
  • Configures the watcher

EvSignal::set

(PECL ev >= 0.2.0)

EvSignal::set — Configures the watcher

Описание

public void EvSignal::set ( int $signum )

Configures the watcher.

Список параметров

signum

Signal number. The same as for EvSignal::__construct()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The EvStat class

(PECL ev >= 0.2.0)

Введение

EvStat monitors a file system path for attribute changes. It calls stat() on that path in regular intervals(or when the OS signals it changed) and sees if it changed compared to the last time, invoking the callback if it did.

The path does not need to exist: changing from "path exists" to "path does not exist" is a status change like any other. The condition "path does not exist" is signified by the 'nlink' item being 0(returned by EvStat::attr() method).

The path must not end in a slash or contain special components such as '.' or .. . The path should be absolute: if it is relative and the working directory changes, then the behaviour is undefined.

Since there is no portable change notification interface available, the portable implementation simply calls stat() regularly on the path to see if it changed somehow. For this case a recommended polling interval can be specified. If one specifies a polling interval of 0.0 (highly recommended) then a suitable, unspecified default value will be used(which could be expected to be around 5 seconds, although this might change dynamically). libev will also impose a minimum interval which is currently around 0.1 , but that's usually overkill.

This watcher type is not meant for massive numbers of EvStat watchers, as even with OS-supported change notifications, this can be resource-intensive.

Обзор классов

EvStat extends EvWatcher {
/* Свойства */
public $path ;
public $interval ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public array attr ( void )
public __construct ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static void createStopped ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void prev ( void )
public void set ( string $path , double $interval )
public bool stat ( void )
/* Наследуемые методы */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Свойства

interval

Readonly . Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

path

Readonly . The path to wait for status changes on.

Содержание

  • EvStat::attr — Returns the values most recently detected by Ev
  • EvStat::__construct — Constructs EvStat watcher object
  • EvStat::createStopped — Create a stopped EvStat watcher object
  • EvStat::prev — Returns the previous set of values returned by EvStat::attr
  • EvStat::set — Configures the watcher
  • EvStat::stat — Initiates the stat call


Returns the values most recently detected by Ev

  • « EvStat
  • EvStat::__construct »
  • PHP Manual
  • EvStat
  • Returns the values most recently detected by Ev

EvStat::attr

(PECL ev >= 0.2.0)

EvStat::attr — Returns the values most recently detected by Ev

Описание

public array EvStat::attr ( void )

Returns array of the values most recently detected by Ev

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns array with the values most recently detect by Ev(without actual stat 'ing):

List for item keys of the array returned by EvStat::attr()
Key | Description
'dev' | ID of device containing file
'ino' | inode number
'mode' | protection
'nlink' | number of hard links
'uid' | user ID of owner
'size' | total size, in bytes
'gid' | group ID of owner
'rdev' | device ID (if special file)
'blksize' | blocksize for file system I/O
'blocks' | number of 512B blocks allocated
'atime' | time of last access
'ctime' | time of last status change
'mtime' | time of last modification

See stat(2) man page for details.

Примеры

Пример #1 Monitor changes of /var/log/messages

<?php
// Use 10 second update interval.
$w = new EvStat("/var/log/messages", 8, function ($w) {
    echo "/var/log/messages changed\n";

    $attr = $w->attr();

    if ($attr['nlink']) {
        printf("Current size: %ld\n", $attr['size']);
        printf("Current atime: %ld\n", $attr['atime']);
        printf("Current mtime: %ld\n", $attr['mtime']);
    } else {
        fprintf(STDERR, "`messages` file is not there!");
        $w->stop();
    }
});

Ev::run();
?>

Смотрите также

  • EvStat::prev() - Returns the previous set of values returned by EvStat::attr
  • EvStat::stat() - Initiates the stat call


Constructs EvStat watcher object

  • « EvStat::attr
  • EvStat::createStopped »
  • PHP Manual
  • EvStat
  • Constructs EvStat watcher object

EvStat::__construct

(PECL ev >= 0.2.0)

EvStat::__construct — Constructs EvStat watcher object

Описание

public EvStat::__construct ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Constructs EvStat watcher object and starts the watcher automatically.

Список параметров

path

The path to wait for status changes on.

interval

Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvStat watcher object on succes.

Примеры

Пример #1 Monitor changes of /var/log/messages

<?php
// Use 10 second update interval.
$w = new EvStat("/var/log/messages", 8, function ($w) {
 echo "/var/log/messages changed\n";

 $attr = $w->attr();

 if ($attr['nlink']) {
  printf("Current size: %ld\n", $attr['size']);
  printf("Current atime: %ld\n", $attr['atime']);
  printf("Current mtime: %ld\n", $attr['mtime']);
 } else {
  fprintf(STDERR, "`messages` file is not there!");
  $w->stop();
 }
});

Ev::run();
?>


Create a stopped EvStat watcher object

  • « EvStat::__construct
  • EvStat::prev »
  • PHP Manual
  • EvStat
  • Create a stopped EvStat watcher object

EvStat::createStopped

(PECL ev >= 0.2.0)

EvStat::createStopped — Create a stopped EvStat watcher object

Описание

final public static void EvStat::createStopped ( string $path , double $interval , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Creates EvStat watcher object, but doesn't start it automatically(unlike EvStat::__construct() ).

Список параметров

path

The path to wait for status changes on.

interval

Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns a stopped EvStat watcher object on success.

Смотрите также

  • EvStat::__construct() - Constructs EvStat watcher object
  • EvWatcher::start() - Starts the watcher


Returns the previous set of values returned by EvStat::attr

  • « EvStat::createStopped
  • EvStat::set »
  • PHP Manual
  • EvStat
  • Returns the previous set of values returned by EvStat::attr

EvStat::prev

(PECL ev >= 0.2.0)

EvStat::prev — Returns the previous set of values returned by EvStat::attr

Описание

public void EvStat::prev ( void )

Just like EvStat::attr() , but returns the previous set of values.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array with the same structure as the array returned by EvStat::attr() . The array contains previously detected values.

Смотрите также

  • EvStat::attr() - Returns the values most recently detected by Ev
  • EvStat::stat() - Initiates the stat call


Configures the watcher

  • « EvStat::prev
  • EvStat::stat »
  • PHP Manual
  • EvStat
  • Configures the watcher

EvStat::set

(PECL ev >= 0.2.0)

EvStat::set — Configures the watcher

Описание

public void EvStat::set ( string $path , double $interval )

Configures the watcher.

Список параметров

path

The path to wait for status changes on.

interval

Hint on how quickly a change is expected to be detected and should normally be specified as 0.0 to let libev choose a suitable value.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Initiates the stat call

  • « EvStat::set
  • EvTimer »
  • PHP Manual
  • EvStat
  • Initiates the stat call

EvStat::stat

(PECL ev >= 0.2.0)

EvStat::stat — Initiates the stat call

Описание

public bool EvStat::stat ( void )

Initiates the stat call(updates internal cache). It stats(using lstat ) the path specified in the watcher and sets to the values found.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if path exists. Otherwise FALSE.

Смотрите также

  • EvStat::attr() - Returns the values most recently detected by Ev
  • EvStat::prev() - Returns the previous set of values returned by EvStat::attr


The EvTimer class

(PECL ev >= 0.2.0)

Введение

EvTimer watchers are simple relative timers that generate an event after a given time, and optionally repeating in regular intervals after that.

The timers are based on real time, that is, if one registers an event that times out after an hour and resets the system clock to January last year , it will still time out after(roughly) one hour. "Roughly" because detecting time jumps is hard, and some inaccuracies are unavoidable.

The callback is guaranteed to be invoked only after its timeout has passed (not at, so on systems with very low-resolution clocks this might introduce a small delay). If multiple timers become ready during the same loop iteration then the ones with earlier time-out values are invoked before ones of the same priority with later time-out values (but this is no longer true when a callback calls EvLoop::run() recursively).

The timer itself will do a best-effort at avoiding drift, that is, if a timer is configured to trigger every 10 seconds, then it will normally trigger at exactly 10 second intervals. If, however, the script cannot keep up with the timer because it takes longer than those 10 seconds to do) the timer will not fire more than once per event loop iteration.

Обзор классов

EvTimer extends EvWatcher {
/* Свойства */
public $repeat ;
public $remaining ;
/* Наследуемые свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public void again ( void )
public __construct ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
final public static EvTimer createStopped ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )
public void set ( double $after , double $repeat )
/* Наследуемые методы */
public int EvWatcher::clear ( void )
abstract public EvWatcher::__construct ( void )
public void EvWatcher::feed ( int $revents )
public EvLoop EvWatcher::getLoop ( void )
public void EvWatcher::invoke ( int $revents )
public bool EvWatcher::keepalive ([ bool $value ] )
public void EvWatcher::setCallback ( callable $callback )
public void EvWatcher::start ( void )
public void EvWatcher::stop ( void )
}

Свойства

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

remaining

Returns the remaining time until a timer fires. If the timer is active, then this time is relative to the current event loop time, otherwise it's the timeout value currently configured.

That is, after instanciating an EvTimer with an after value of 5.0 and repeat value of 7.0 , remaining returns 5.0 . When the timer is started and one second passes, remaining will return 4.0 . When the timer expires and is restarted, it will return roughly 7.0 (likely slightly less as callback invocation takes some time too), and so on.

Содержание

  • EvTimer::again — Restarts the timer watcher
  • EvTimer::__construct — Constructs an EvTimer watcher object
  • EvTimer::createStopped — Creates EvTimer stopped watcher object
  • EvTimer::set — Configures the watcher


Restarts the timer watcher

  • « EvTimer
  • EvTimer::__construct »
  • PHP Manual
  • EvTimer
  • Restarts the timer watcher

EvTimer::again

(PECL ev >= 0.2.0)

EvTimer::again — Restarts the timer watcher

Описание

public void EvTimer::again ( void )

This will act as if the timer timed out and restart it again if it is repeating. The exact semantics are:

  1. if the timer is pending, its pending status is cleared.

  2. if the timer is started but non-repeating, stop it (as if it timed out).

  3. if the timer is repeating, either start it if necessary (with the repeat value), or reset the running timer to the repeat value.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvWatcher::stop() - Stops the watcher


Constructs an EvTimer watcher object

  • « EvTimer::again
  • EvTimer::createStopped »
  • PHP Manual
  • EvTimer
  • Constructs an EvTimer watcher object

EvTimer::__construct

(PECL ev >= 0.2.0)

EvTimer::__construct — Constructs an EvTimer watcher object

Описание

public EvTimer::__construct ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Constructs an EvTimer watcher object.

Список параметров

after

Configures the timer to trigger after after seconds.

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvTimer object on success.

Примеры

Пример #1 Simple timers

<?php
// Create and start timer firing after 2 seconds
$w1 = new EvTimer(2, 0, function () {
    echo "2 seconds elapsed\n";
});

// Create and launch timer firing after 2 seconds repeating each second
// until we manually stop it
$w2 = new EvTimer(2, 1, function ($w) {
    echo "is called every second, is launched after 2 seconds\n";
    echo "iteration = ", Ev::iteration(), PHP_EOL;

    // Stop the watcher after 5 iterations
    Ev::iteration() == 5 and $w->stop();
    // Stop the watcher if further calls cause more than 10 iterations
    Ev::iteration() >= 10 and $w->stop();
});

// Create stopped timer. It will be inactive until we start it ourselves
$w_stopped = EvTimer::createStopped(10, 5, function($w) {
    echo "Callback of a timer created as stopped\n";

    // Stop the watcher after 2 iterations
    Ev::iteration() >= 2 and $w->stop();
});

// Loop until Ev::stop() is called or all of watchers stop
Ev::run();

// Start and look if it works
$w_stopped->start();
echo "Run single iteration\n";
Ev::run(Ev::RUN_ONCE);

echo "Restart the second watcher and try to handle the same events, but don't block\n";
$w2->again();
Ev::run(Ev::RUN_NOWAIT);

$w = new EvTimer(10, 0, function() {});
echo "Running a blocking loop\n";
Ev::run();
echo "END\n";
?>

Результатом выполнения данного примера будет что-то подобное:

2 seconds elapsed
is called every second, is launched after 2 seconds
iteration = 1
is called every second, is launched after 2 seconds
iteration = 2
is called every second, is launched after 2 seconds
iteration = 3
is called every second, is launched after 2 seconds
iteration = 4
is called every second, is launched after 2 seconds
iteration = 5
Run single iteration
Callback of a timer created as stopped
Restart the second watcher and try to handle the same events, but don't block
Running a blocking loop
is called every second, is launched after 2 seconds
iteration = 8
is called every second, is launched after 2 seconds
iteration = 9
is called every second, is launched after 2 seconds
iteration = 10
END

Смотрите также

  • EvTimer::createStopped() - Creates EvTimer stopped watcher object
  • EvPeriodic
  • » ev_timer - relative and optionally repeating timeouts
  • » Be smart about timeouts


Creates EvTimer stopped watcher object

  • « EvTimer::__construct
  • EvTimer::set »
  • PHP Manual
  • EvTimer
  • Creates EvTimer stopped watcher object

EvTimer::createStopped

(PECL ev >= 0.2.0)

EvTimer::createStopped — Creates EvTimer stopped watcher object

Описание

final public static EvTimer EvTimer::createStopped ( double $after , double $repeat , callable $callback [, mixed $data = NULL [, int $priority = 0 ]] )

Creates EvTimer stopped watcher object. Unlike EvTimer::__construct() , this method doesn't start the watcher automatically.

Список параметров

after

Configures the timer to trigger after after seconds.

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

callback

See Watcher callbacks .

data

Custom data associated with the watcher.

priority

Watcher priority

Возвращаемые значения

Returns EvTimer watcher object on success.

Примеры

Пример #1 Monotor changes of /var/log/messages. Avoid missing updates by means of one second delay

<?php
$timer = EvTimer::createStopped(0., 1.02, function ($w) {
    $w->stop();

    $stat = $w->data;

    // 1 second after the most recent change of the file
    printf("Current size: %ld\n", $stat->attr()['size']);
});

$stat = new EvStat("/var/log/messages", 0., function () use ($timer) {
    // Reset timer watcher
    $timer->again();
});

$timer->data = $stat;

Ev::run();
?>

Смотрите также

  • EvTimer::__construct() - Constructs an EvTimer watcher object
  • EvPeriodic


Configures the watcher

  • « EvTimer::createStopped
  • EvWatcher »
  • PHP Manual
  • EvTimer
  • Configures the watcher

EvTimer::set

(PECL ev >= 0.2.0)

EvTimer::set — Configures the watcher

Описание

public void EvTimer::set ( double $after , double $repeat )

Configures the watcher

Список параметров

after

Configures the timer to trigger after after seconds.

repeat

If repeat is 0.0 , then it will automatically be stopped once the timeout is reached. If it is positive, then the timer will automatically be configured to trigger again every repeat seconds later, until stopped manually.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The EvWatcher class

(PECL ev >= 0.2.0)

Введение

EvWatcher is a base class for all watchers( EvCheck , EvChild etc.). Since EvWatcher 's constructor is abstract , one can't(and don't need to) create EvWatcher objects directly.

Обзор классов

abstract EvWatcher {
/* Свойства */
public $is_active ;
public $data ;
public $is_pending ;
public $priority ;
/* Методы */
public int clear ( void )
abstract public __construct ( void )
public void feed ( int $revents )
public EvLoop getLoop ( void )
public void invoke ( int $revents )
public bool keepalive ([ bool $value ] )
public void setCallback ( callable $callback )
public void start ( void )
public void stop ( void )
}

Свойства

is_active

Readonly . TRUE if the watcher is active. FALSE otherwise.

data

User custom data associated with the watcher

is_pending

Readonly .TRUE if the watcher is pending, i.e. it has outstanding events, but its callback has not yet been invoked. FALSE otherwise. As long, as a watcher is pending(but not active), one must not change its priority.

priority

Integer between Ev::MINPRI and Ev::MAXPRI . Pending watchers with higher priority will be invoked before watchers with lower priority, but priority will not keep watchers from being executed(except for EvIdle watchers). EvIdle watchers provide functionality to suppress invocation when higher priority events are pending.

Содержание

  • EvWatcher::clear — Clear watcher pending status
  • EvWatcher::__construct — Abstract constructor of a watcher object
  • EvWatcher::feed — Feeds the given revents set into the event loop
  • EvWatcher::getLoop — Returns the loop responsible for the watcher
  • EvWatcher::invoke — Invokes the watcher callback with the given received events bit mask
  • EvWatcher::keepalive — Configures whether to keep the loop from returning
  • EvWatcher::setCallback — Sets new callback for the watcher
  • EvWatcher::start — Starts the watcher
  • EvWatcher::stop — Stops the watcher


Clear watcher pending status

  • « EvWatcher
  • EvWatcher::__construct »
  • PHP Manual
  • EvWatcher
  • Clear watcher pending status

EvWatcher::clear

(PECL ev >= 0.2.0)

EvWatcher::clear — Clear watcher pending status

Описание

public int EvWatcher::clear ( void )

If the watcher is pending, this method clears its pending status and returns its revents bitset(as if its callback was invoked). If the watcher isn't pending it does nothing and returns 0 .

Sometimes it can be useful to "poll" a watcher instead of waiting for its callback to be invoked, which can be accomplished with this function.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

In case if the watcher is pending, returns revents bitset as if the watcher callback had been invoked. Otherwise returns 0 .


Abstract constructor of a watcher object

  • « EvWatcher::clear
  • EvWatcher::feed »
  • PHP Manual
  • EvWatcher
  • Abstract constructor of a watcher object

EvWatcher::__construct

(PECL ev >= 0.2.0)

EvWatcher::__construct — Abstract constructor of a watcher object

Описание

abstract public EvWatcher::__construct ( void )

EvWatcher::__construct() is an abstract constructor of a watcher object implemented in the derived classes.


Feeds the given revents set into the event loop

  • « EvWatcher::__construct
  • EvWatcher::getLoop »
  • PHP Manual
  • EvWatcher
  • Feeds the given revents set into the event loop

EvWatcher::feed

(PECL ev >= 0.2.0)

EvWatcher::feed — Feeds the given revents set into the event loop

Описание

public void EvWatcher::feed ( int $revents )

Feeds the given revents set into the event loop, as if the specified event had happened for the watcher.

Список параметров

revents

Bit mask of watcher received events .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Returns the loop responsible for the watcher

  • « EvWatcher::feed
  • EvWatcher::invoke »
  • PHP Manual
  • EvWatcher
  • Returns the loop responsible for the watcher

EvWatcher::getLoop

(PECL ev >= 0.2.0)

EvWatcher::getLoop — Returns the loop responsible for the watcher

Описание

public EvLoop EvWatcher::getLoop ( void )

Returns the loop responsible for the watcher

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns EvLoop event loop object responsible for the watcher.


Invokes the watcher callback with the given received events bit mask

  • « EvWatcher::getLoop
  • EvWatcher::keepalive »
  • PHP Manual
  • EvWatcher
  • Invokes the watcher callback with the given received events bit mask

EvWatcher::invoke

(PECL ev >= 0.2.0)

EvWatcher::invoke — Invokes the watcher callback with the given received events bit mask

Описание

public void EvWatcher::invoke ( int $revents )

Invokes the watcher callback with the given received events bit mask.

Список параметров

revents

Bit mask of watcher received events .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Configures whether to keep the loop from returning

  • « EvWatcher::invoke
  • EvWatcher::setCallback »
  • PHP Manual
  • EvWatcher
  • Configures whether to keep the loop from returning

EvWatcher::keepalive

(PECL ev >= 0.2.0)

EvWatcher::keepalive — Configures whether to keep the loop from returning

Описание

public bool EvWatcher::keepalive ([ bool $value ] )

Configures whether to keep the loop from returning. With keepalive value set to FALSE the watcher won't keep Ev::run() / EvLoop::run() from returning even though the watcher is active.

Watchers have keepalive value TRUE by default.

Clearing keepalive status is useful when returning from Ev::run() / EvLoop::run() just because of the watcher is undesirable. It could be a long running UDP socket watcher or so.

Список параметров

value

With keepalive value set to FALSE the watcher won't keep Ev::run() / EvLoop::run() from returning even though the watcher is active.

Возвращаемые значения

Returns the previous state.

Примеры

Пример #1 Register an I/O watcher for some UDP socket but do not keep the event loop from running just because of that watcher.

<?php
$udp_socket = ...
$udp_watcher = new EvIo($udp_socket, Ev::READ, function () { /* ... */ });
$udp_watcher->keepalive(FALSE);
?>


Sets new callback for the watcher

  • « EvWatcher::keepalive
  • EvWatcher::start »
  • PHP Manual
  • EvWatcher
  • Sets new callback for the watcher

EvWatcher::setCallback

(PECL ev >= 0.2.0)

EvWatcher::setCallback — Sets new callback for the watcher

Описание

public void EvWatcher::setCallback ( callable $callback )

Sets new callback for the watcher

Список параметров

callback

See Watcher callbacks .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Starts the watcher

  • « EvWatcher::setCallback
  • EvWatcher::stop »
  • PHP Manual
  • EvWatcher
  • Starts the watcher

EvWatcher::start

(PECL ev >= 0.2.0)

EvWatcher::start — Starts the watcher

Описание

public void EvWatcher::start ( void )

Marks the watcher as active. Note that only active watchers will receive events.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvWatcher::stop() - Stops the watcher


Stops the watcher

  • « EvWatcher::start
  • Expect »
  • PHP Manual
  • EvWatcher
  • Stops the watcher

EvWatcher::stop

(PECL ev >= 0.2.0)

EvWatcher::stop — Stops the watcher

Описание

public void EvWatcher::stop ( void )

Marks the watcher as inactive. Note that only active watchers will receive events.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EvWatcher::start() - Starts the watcher


Expect

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Примеры использования Expect
  • Функции Expect
    • expect_expectl — Ожидает, пока вывод потока не совпадет с одним из шаблонов, либо пока не закончится максимальное время ожидания, либо вернется EOF
    • expect_popen — Запускает комманду через коммандную оболочку Bourne и открывает для процесса поток PTY


Введение

Это расширение позволяет взаимодействовать с процессами через PTY. Вы можете использовать обертку expect:// с функциями файловой системы которые обеспечивают более простой и интуитивно понятный интерфейс.


Требования

Это расширение использует библиотеку » expect. Необходима библиотека libexpect версии >= 5.43.0.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/expect.

Для использования этого расширения вам необходимо собрать PHP с опцией --with-expect[=DIR] .

Для использования в Windows нужно разрешить php_expect.dll в php.ini. DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Для настройки расширения используйте нижеперечисленные опции конфигурационного файла php.ini.

Опции настройки Expect
Имя | По умолчанию | Меняемо | Список изменений
expect.timeout | "10" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.logfile | "" | PHP_INI_ALL |
expect.match_max | "" | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

expect.timeout integer

Максимальное время ожидания данных при использовании функции expect_expectl().

Значение "-1" задает вечное ожидание.

Замечание:

Значение "0" означает, что функция expect_expectl() завершится сразу.

expect.loguser boolean

Определяет, будет ли порожденный процесс производить вывод в поток stdout. Так как интерактивные программы обычно дублируют пользовательский ввод, обычно нужно разрешать эту опцию, что бы взаимодействие было осознанным.

expect.logfile string

Имя файла, куда будет писаться вывод порожденного процесса. Если файл не существует - он будет создан.

Замечание:

Если этой опции присвоено какое либо не пустое значение, то вывод будет писаться в файл вне зависимости от настройки expect.loguser.

expect.match_max integer

Изменяет размер буфера (по умолчанирю 2000 байт) используемого для поиска символа звездочки в шаблонах.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

expect_popen() возвращает открытый поток PTY используемый expect_expectl().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

EXP_GLOB (integer)
Указывает, что шаблон является шаблоном поиска файла (glob).
EXP_EXACT (integer)
Указывает, что шаблон является точной строкой.
EXP_REGEXP (integer)
Указывает, что шаблон является регулярным выражением.
EXP_EOF (integer)
Значение, возвращаемое expect_expectl(), когда достигнут конец файла.
EXP_TIMEOUT (integer)
Значение, возвращаемое expect_expectl() после исчерпания времени ожидания, заданного в expect.timeout
EXP_FULLBUFFER (integer)
Значение, возвращаемое expect_expectl(), когда совпадений с шаблоном не найдено.


  • « Предопределенные константы
  • Примеры использования Expect »
  • PHP Manual
  • Expect
  • Примеры

Примеры

Содержание

  • Примеры использования Expect


Примеры использования Expect

Пример #1 Пример использования Expect

В этом примере мы соединимся с удаленным хостом по SSH, и напечатаем время непрерываной работы сервера.

<?php
ini_set("expect.loguser", "Off");

$stream = fopen("expect://ssh root@remotehost uptime", "r");

$cases = array (
    array (0 => "password:", 1 => PASSWORD)
);

switch (expect_expectl ($stream, $cases)) {
    case PASSWORD:
        fwrite ($stream, "password\n");
        break;

    default:
        die ("Ошибка соединения с удаленным сервером!\n");
}

while ($line = fgets($stream)) {
      print $line;
}
fclose ($stream);
?>

В следующем примере мы соединимся с удаленным сервером, узнаем разрядность его операционной системы и запустим обновления указанного пакета.

Пример #2 Another Expect Usage Example

<?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

Описание

int expect_expectl ( resource $expect , array $cases [, array &$match ] )

Ожидает, пока вывод потока не совпадет с одним из шаблонов, либо пока не закончится максимальное время ожидания, либо вернется EOF.

Если задан параметр match, то он заполняется с результатами поиска. Совпавшая строка будет сохранена в match[0]. Совпавшие подстроки (в зависимости от скобок) в оригинальном шаблоне будут сохранены в match[1], match[2], вплоть до match[9] (ограничения libexpect).

Список параметров

expect

Поток Expect, открытый с помощью expect_popen().

cases

Массив ожидаемых значений. Каждое ожидаемое значение представляет из себя индексированный массив, описанный в этой таблице:

Expect Case Array
Индекс | Тип значения | Описание | Обязательный | Значение по умолчанию
0 | string | шаблон, который будет сравниваться с потоком вывода | да
1 | mixed | значение, которое вернет функция, если совпадение найдено | да
2 | integer | тип шаблона: EXP_GLOB, EXP_EXACT или EXP_REGEXP | нет | EXP_GLOB

Возвращаемые значения

Возвращает значение, связанное с шаблоном, с которым оно совпало.

В случае неудачи эта функция вернет: EXP_EOF, EXP_TIMEOUT или EXP_FULLBUFFER

Список изменений

Версия | Описание
0.2.1 | До версии 0.2.1, в параметр match возвращалась строка, а не массив совпавших строк.

Примеры

Пример #1 Пример использования expect_expectl()

<?php
// Копируем файлы с сервера:
ini_set("expect.timeout", 30);

$stream = fopen("expect://scp user@remotehost:/var/log/messages /home/user/messages.txt", "r");

$cases = array(
    // array(шаблон, возвращаемов в случае совпадения значение)
    array("password:", "asked for password"),
    array("yes/no)?",  "asked for yes/no")
);

while (true) {
    switch (expect_expectl($stream, $cases)) {
        case "asked for password":
            fwrite($stream, "my password\n");
            break;
        case "asked for yes/no":
            fwrite($stream, "yes\n");
            break;
        case EXP_TIMEOUT:
        case EXP_EOF:
            break 2; // Прерывает как switch так и цикл while
        default:
            die "Произошла ошибка!";
    }
}

fclose($stream);
?>

Смотрите также

  • expect_popen() - Запускает комманду через коммандную оболочку Bourne и открывает для процесса поток PTY


Запускает комманду через коммандную оболочку Bourne и открывает для процесса поток PTY

  • « expect_expectl
  • Libevent »
  • PHP Manual
  • Функции Expect
  • Запускает комманду через коммандную оболочку Bourne и открывает для процесса поток PTY

expect_popen

(PECL expect >= 0.1.0)

expect_popen — Запускает комманду через коммандную оболочку Bourne и открывает для процесса поток PTY

Описание

resource expect_popen ( string $command )

Запускает комманду через коммандную оболочку Bourne и открывает для процесса поток PTY.

Список параметров

command

Комманда для запуска.

Возвращаемые значения

Возвращает поток PTY для stdio, stdout, и stderr процесса.

В случае неудачи возвращает FALSE.

Примеры

Пример #1 Пример использования expect_popen()

<?php
// Соединение с CVS репозиторием PHP.net:
$stream = expect_popen ("cvs -d :pserver:anonymous@cvs.php.net:/repository login");
sleep (3);
fwrite ($stream, "phpfi\n");
fclose ($stream);
?>

Смотрите также

  • popen() - Открывает файловый указатель процесса


Libevent

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции Libevent
    • event_add — Добавляет событие к набору наблюдаемых событий
    • event_base_free — Уничтожает событийную базу
    • event_base_loop — Управляет событиями
    • event_base_loopbreak — Прерывает цикл ожидания события
    • event_base_loopexit — Выходит из цикла через определенное время
    • event_base_new — Создает и инициализирует новую событийную базу
    • event_base_priority_init — Устанавливает приоритет события
    • event_base_reinit — Переиницализирует событийную базу после распараллеливания (fork)
    • event_base_set — Ассоциирует событийную базу с событием
    • event_buffer_base_set — Ассоциирует буфер событий с событийной базой
    • event_buffer_disable — Выключает буфер событий
    • event_buffer_enable — Включает буфер событий
    • event_buffer_fd_set — Изменяет файловый дескриптор буфера событий
    • event_buffer_free — Разрушает буфер событий
    • event_buffer_new — Создает новый буфер событий
    • event_buffer_priority_set — Assign a priority to a buffered event
    • event_buffer_read — Read data from a buffered event
    • event_buffer_set_callback — Set or reset callbacks for a buffered event
    • event_buffer_timeout_set — Set read and write timeouts for a buffered event
    • event_buffer_watermark_set — Set the watermarks for read and write events
    • event_buffer_write — Write data to a buffered event
    • event_del — Remove an event from the set of monitored events
    • event_free — Free event resource
    • event_new — Create new event
    • event_priority_set — Assign a priority to an event.
    • event_set — Prepare an event
    • event_timer_add — Псевдоним event_add
    • event_timer_del — Псевдоним event_del
    • event_timer_new — Псевдоним event_new
    • event_timer_set — Подготавливает событие таймер


Введение

Libevent это библиотека, которая предоставляет механизм оповещения о событиях с помощью выполнения callback-функции при наступлении заданного события для дескриптора файла или при достижении заданного таймаута.

Больше информации о Libevent вы можете найти на » http://libevent.org/.


Требования

Этому расширению необходима библиотека » libevent. Минимальная допустимая версия 1.4.0.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/libevent.


Типы ресурсов

Есть несколько типов ресурсов, используемых данным расширением. Эти ресурсы: событие, базовое событие и буферизированное событие.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

EV_TIMEOUT (integer)
EV_READ (integer)
EV_WRITE (integer)
EV_SIGNAL (integer)
EV_PERSIST (integer)
EVLOOP_NONBLOCK (integer)
EVLOOP_ONCE (integer)


Примеры

Пример #1 опрос STDIN с использованием базового API

<?php

function print_line($fd, $events, $arg)
{
    static $max_requests = 0;

    $max_requests++;

    if ($max_requests == 10) {
        // выходит из цикла после 10 записей
        event_base_loopexit($arg[1]);
    }

    // печатает строку
    echo  fgets($fd);
}

// создает базовое событие и событие
$base = event_base_new();
$event = event_new();

$fd = STDIN;

// устанавливает флаги события
event_set($event, $fd, EV_READ | EV_PERSIST, "print_line", array($event, $base));
// устанавливает базовое событие
event_base_set($event, $base);

// включает событие
event_add($event);
// запускает цикл ожидания события
event_base_loop($base);

?>

Пример #2 опрос STDIN с использованием API буферизированных событий

<?php

function print_line($buf, $arg)
{
    static $max_requests;

    $max_requests++;

    if ($max_requests == 10) {
        event_base_loopexit($arg);
    }

    // печатает строку
    echo event_buffer_read($buf, 4096);
}

function error_func($buf, $what, $arg)
{
    // управление ошибками
}

$base = event_base_new();
$eb = event_buffer_new(STDIN, "print_line", NULL, "error_func", $base);

event_buffer_base_set($eb, $base);
event_buffer_enable($eb, EV_READ);

event_base_loop($base);

?>


Функции Libevent

Содержание

  • event_add — Добавляет событие к набору наблюдаемых событий
  • event_base_free — Уничтожает событийную базу
  • event_base_loop — Управляет событиями
  • event_base_loopbreak — Прерывает цикл ожидания события
  • event_base_loopexit — Выходит из цикла через определенное время
  • event_base_new — Создает и инициализирует новую событийную базу
  • event_base_priority_init — Устанавливает приоритет события
  • event_base_reinit — Переиницализирует событийную базу после распараллеливания (fork)
  • event_base_set — Ассоциирует событийную базу с событием
  • event_buffer_base_set — Ассоциирует буфер событий с событийной базой
  • event_buffer_disable — Выключает буфер событий
  • event_buffer_enable — Включает буфер событий
  • event_buffer_fd_set — Изменяет файловый дескриптор буфера событий
  • event_buffer_free — Разрушает буфер событий
  • event_buffer_new — Создает новый буфер событий
  • event_buffer_priority_set — Assign a priority to a buffered event
  • event_buffer_read — Read data from a buffered event
  • event_buffer_set_callback — Set or reset callbacks for a buffered event
  • event_buffer_timeout_set — Set read and write timeouts for a buffered event
  • event_buffer_watermark_set — Set the watermarks for read and write events
  • event_buffer_write — Write data to a buffered event
  • event_del — Remove an event from the set of monitored events
  • event_free — Free event resource
  • event_new — Create new event
  • event_priority_set — Assign a priority to an event.
  • event_set — Prepare an event
  • event_timer_add — Псевдоним event_add
  • event_timer_del — Псевдоним event_del
  • event_timer_new — Псевдоним event_new
  • event_timer_set — Подготавливает событие таймер


Добавляет событие к набору наблюдаемых событий

  • « Функции Libevent
  • event_base_free »
  • PHP Manual
  • Функции Libevent
  • Добавляет событие к набору наблюдаемых событий

event_add

(PECL libevent >= 0.0.1)

event_add — Добавляет событие к набору наблюдаемых событий

Описание

bool event_add ( resource $event [, int $timeout = -1 ] )

event_add() планирует выполнение event, когда случится событие, заданное в event_set() или хотя бы по прошествии времени, указанного в аргументе timeout. Если timeout не был задан то таймаут не устанавливается. event уже должен быть инициализирован с помощью функций event_set() и event_base_set(). Если event уже имеет установленный таймаут, он будет заменен новым.

Список параметров

event

Валидные ресурс события.

timeout

Опциональный таймаут (в микросекундах).

Возвращаемые значения

event_add() возвращает TRUE в случае успешного выполнения и FALSE при ошибке.


Уничтожает событийную базу

  • « event_add
  • event_base_loop »
  • PHP Manual
  • Функции Libevent
  • Уничтожает событийную базу

event_base_free

(PECL libevent >= 0.0.1)

event_base_free — Уничтожает событийную базу

Описание

void event_base_free ( resource $event_base )

Уничтожает событийную базу, определенный в event_base и освобождает все связанные с ним ресурсы. Обратите внимание, что не возможно уничтожить событийный базис если к нему пркреплены события.

Список параметров

event_base

Корректный ресурс событийной базы.


Управляет событиями

  • « event_base_free
  • event_base_loopbreak »
  • PHP Manual
  • Функции Libevent
  • Управляет событиями

event_base_loop

(PECL libevent >= 0.0.1)

event_base_loop — Управляет событиями

Описание

int event_base_loop ( resource $event_base [, int $flags = 0 ] )

Запускает цикл ожидания события для определенной событийной базы.

Список параметров

event_base

Корректный ресурс событийной базы.

flags

Опциональный параметр, который может принять любую комбинацию EVLOOP_ONCE и EVLOOP_NONBLOCK.

Возвращаемые значения

event_base_loop() возвращает 0 в случае успеха, -1 при ошибке и 1 если ни одного события не было зарегистрировано.


Прерывает цикл ожидания события

  • « event_base_loop
  • event_base_loopexit »
  • PHP Manual
  • Функции Libevent
  • Прерывает цикл ожидания события

event_base_loopbreak

(PECL libevent >= 0.0.1)

event_base_loopbreak — Прерывает цикл ожидания события

Описание

bool event_base_loopbreak ( resource $event_base )

Немедленно прерывает цикл ожидания события. Поведение схожее с инструкцией break.

Список параметров

event_base

Корректный ресурс событийной базы.

Возвращаемые значения

event_base_loopbreak() возвращает TRUE в случае успеха и FALSE при ошибке.


Выходит из цикла через определенное время

  • « event_base_loopbreak
  • event_base_new »
  • PHP Manual
  • Функции Libevent
  • Выходит из цикла через определенное время

event_base_loopexit

(PECL libevent >= 0.0.1)

event_base_loopexit — Выходит из цикла через определенное время

Описание

bool event_base_loopexit ( resource $event_base [, int $timeout = -1 ] )

Следующая итерация цикла ожидания события после истечения времени будет завершена нормально, затем выход без блокирования очередных событий.

Список параметров

event_base

Корректный ресурс событийной базы.

timeout

Опциональный параметр таймаута (в микросекундах).

Возвращаемые значения

event_base_loopexit() воозвращает TRUE в случае успеха или FALSE при ошибке.


Создает и инициализирует новую событийную базу

  • « event_base_loopexit
  • event_base_priority_init »
  • PHP Manual
  • Функции Libevent
  • Создает и инициализирует новую событийную базу

event_base_new

(PECL libevent >= 0.0.1)

event_base_new — Создает и инициализирует новую событийную базу

Описание

resource event_base_new ( void )

Возвращает новое событийную базу, которая может быть потом использована в event_base_set(), event_base_loop() и других функциях.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

event_base_new() возвращает ресурс событийной базы в случае успеха и FALSE при ошибке.


Устанавливает приоритет события

  • « event_base_new
  • event_base_reinit »
  • PHP Manual
  • Функции Libevent
  • Устанавливает приоритет события

event_base_priority_init

(PECL libevent >= 0.0.2)

event_base_priority_init — Устанавливает приоритет события

Описание

bool event_base_priority_init ( resource $event_base , int $npriorities )

Устанавливает разный приоритет для событий.

По умолчанию все события запланированы с одинаковым приоритетом (npriorities/2). Используя event_base_priority_init() вы можете изменить приоритет для всех событий и потом установить желаемый приоритет для каждого отдельного события.

Список параметров

event_base

Корректный ресурс событийной базы.

npriorities

Число, указывающее уровень приоритета.

Возвращаемые значения

event_base_priority_init() возвращает TRUE в случае успеха и FALSE при ошибке.


Переиницализирует событийную базу после распараллеливания (fork)

  • « event_base_priority_init
  • event_base_set »
  • PHP Manual
  • Функции Libevent
  • Переиницализирует событийную базу после распараллеливания (fork)

event_base_reinit

(PECL libevent >= 0.1.0)

event_base_reinit — Переиницализирует событийную базу после распараллеливания (fork)

Описание

bool event_base_reinit ( resource $event_base )

Некоторые событийные механизмы не переживают распараллеливание. Необходимо переинициализировать event_base с помощью этой функции.

Список параметров

event_base

Корректный ресурс событийной базы, которая должна быть переинициализирована.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Ассоциирует событийную базу с событием

  • « event_base_reinit
  • event_buffer_base_set »
  • PHP Manual
  • Функции Libevent
  • Ассоциирует событийную базу с событием

event_base_set

(PECL libevent >= 0.0.1)

event_base_set — Ассоциирует событийную базу с событием

Описание

bool event_base_set ( resource $event , resource $event_base )

Ассоциирует event_base с event.

Список параметров

event

Валидный ресурс события.

event_base

Корректный ресурс событийной базы.

Возвращаемые значения

event_base_set() возвращает TRUE в случае успеха или FALSE при ошибке.


Ассоциирует буфер событий с событийной базой

  • « event_base_set
  • event_buffer_disable »
  • PHP Manual
  • Функции Libevent
  • Ассоциирует буфер событий с событийной базой

event_buffer_base_set

(PECL libevent >= 0.0.1)

event_buffer_base_set — Ассоциирует буфер событий с событийной базой

Описание

bool event_buffer_base_set ( resource $bevent , resource $event_base )

Назначает указанный bevent к event_base.

Список параметров

bevent

Корректный ресурс буфера событий.

event_base

Корректный ресурс событийной базы.

Возвращаемые значения

event_buffer_base_set() возвращает TRUE в случае успеха или FALSE при ошибке.


Выключает буфер событий

  • « event_buffer_base_set
  • event_buffer_enable »
  • PHP Manual
  • Функции Libevent
  • Выключает буфер событий

event_buffer_disable

(PECL libevent >= 0.0.1)

event_buffer_disable — Выключает буфер событий

Описание

bool event_buffer_disable ( resource $bevent , int $events )

Выключает указанный буфер событий.

Список параметров

bevent

Корректный ресурс буфера событий.

events

Любая комбинация EV_READ и EV_WRITE.

Возвращаемые значения

event_buffer_disable() возвращает TRUE в случае успеха или FALSE при ошибке.


Включает буфер событий

  • « event_buffer_disable
  • event_buffer_fd_set »
  • PHP Manual
  • Функции Libevent
  • Включает буфер событий

event_buffer_enable

(PECL libevent >= 0.0.1)

event_buffer_enable — Включает буфер событий

Описание

bool event_buffer_enable ( resource $bevent , int $events )

Включает указанное буфер событий.

Список параметров

bevent

Корректный ресурс буфера событий.

events

Любая комбинация EV_READ and EV_WRITE.

Возвращаемые значения

event_buffer_enable() возвращает TRUE в случае успеха или FALSE при ошибке.


Изменяет файловый дескриптор буфера событий

  • « event_buffer_enable
  • event_buffer_free »
  • PHP Manual
  • Функции Libevent
  • Изменяет файловый дескриптор буфера событий

event_buffer_fd_set

(PECL libevent >= 0.0.1)

event_buffer_fd_set — Изменяет файловый дескриптор буфера событий

Описание

void event_buffer_fd_set ( resource $bevent , resource $fd )

Изменяет файловый дескриптор, контролируемый буферомсобытий.

Список параметров

bevent

Корректный ресурс буфера событий.

fd

Корректный PHP поток, должен быть приводимым к файловому дескриптору.


Разрушает буфер событий

  • « event_buffer_fd_set
  • event_buffer_new »
  • PHP Manual
  • Функции Libevent
  • Разрушает буфер событий

event_buffer_free

(PECL libevent >= 0.0.1)

event_buffer_free — Разрушает буфер событий

Описание

void event_buffer_free ( resource $bevent )

Разрушает указанное буфер событий и освобождает все связанные с ним ресурсы.

Список параметров

bevent

Корректный ресурс буфера событий.


Создает новый буфер событий

  • « event_buffer_free
  • event_buffer_priority_set »
  • PHP Manual
  • Функции Libevent
  • Создает новый буфер событий

event_buffer_new

(PECL libevent >= 0.0.1)

event_buffer_new — Создает новый буфер событий

Описание

resource event_buffer_new ( resource $stream , mixed $readcb , mixed $writecb , mixed $errorcb [, mixed $arg ] )

Libevent предоставляет абстрактный слой поверх стандартного API. Используя буфер событий вы не обязаны разбираться с I/O вручную, вместо этого предоставляются буферы ввода и вывода, которые наполняются и освобождаются автоматически.

Список параметров

stream

Корректный ресурс потока (stream) PHP. Должен приводиться к файловому дескриптору.

readcb

Callback-функция, которая вызывается когда есть данные для чтения, или NULL если callback-функция не желательна.

writecb

Callback-функция, которая вызывается когда дескриптор готов для записи, или NULL если callback функция не желательна.

errorcb

Callback-функция, которая вызывается когда возникает ошибка дескриптора, не может быть NULL.

arg

Аргумент который будет передан в каждую из callback-функций (опционально).

Возвращаемые значения

event_buffer_new() возвращает ресурс нового буфера событий в случае успеха или FALSE при ошибке.


Assign a priority to a buffered event

  • « event_buffer_new
  • event_buffer_read »
  • PHP Manual
  • Функции Libevent
  • Assign a priority to a buffered event

event_buffer_priority_set

(PECL libevent >= 0.0.1)

event_buffer_priority_set — Assign a priority to a buffered event

Описание

bool event_buffer_priority_set ( resource $bevent , int $priority )

Assign a priority to the bevent.

Список параметров

bevent

Valid buffered event resource.

priority

Priority level. Cannot be less than zero and cannot exceed maximum priority level of the event base (see event_base_priority_init()).

Возвращаемые значения

event_buffer_priority_set() returns TRUE on success or FALSE on error.


Read data from a buffered event

  • « event_buffer_priority_set
  • event_buffer_set_callback »
  • PHP Manual
  • Функции Libevent
  • Read data from a buffered event

event_buffer_read

(PECL libevent >= 0.0.1)

event_buffer_read — Read data from a buffered event

Описание

string event_buffer_read ( resource $bevent , int $data_size )

Reads data from the input buffer of the buffered event.

Список параметров

bevent

Valid buffered event resource.

data_size

Data size in bytes.


Set or reset callbacks for a buffered event

  • « event_buffer_read
  • event_buffer_timeout_set »
  • PHP Manual
  • Функции Libevent
  • Set or reset callbacks for a buffered event

event_buffer_set_callback

(PECL libevent >= 0.0.4)

event_buffer_set_callback — Set or reset callbacks for a buffered event

Описание

bool event_buffer_set_callback ( resource $event , mixed $readcb , mixed $writecb , mixed $errorcb [, mixed $arg ] )

Sets or changes existing callbacks for the buffered event.

Список параметров

event

Valid buffered event resource.

readcb

Callback to invoke where there is data to read, or NULL if no callback is desired.

writecb

Callback to invoke where the descriptor is ready for writing, or NULL if no callback is desired.

errorcb

Callback to invoke where there is an error on the descriptor, cannot be NULL.

arg

An argument that will be passed to each of the callbacks (optional).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set read and write timeouts for a buffered event

  • « event_buffer_set_callback
  • event_buffer_watermark_set »
  • PHP Manual
  • Функции Libevent
  • Set read and write timeouts for a buffered event

event_buffer_timeout_set

(PECL libevent >= 0.0.1)

event_buffer_timeout_set — Set read and write timeouts for a buffered event

Описание

void event_buffer_timeout_set ( resource $bevent , int $read_timeout , int $write_timeout )

Sets the read and write timeouts for the specified buffered event.

Список параметров

bevent

Valid buffered event resource.

read_timeout

Read timeout (in seconds).

write_timeout

Write timeout (in seconds).


Set the watermarks for read and write events

  • « event_buffer_timeout_set
  • event_buffer_write »
  • PHP Manual
  • Функции Libevent
  • Set the watermarks for read and write events

event_buffer_watermark_set

(PECL libevent >= 0.0.1)

event_buffer_watermark_set — Set the watermarks for read and write events

Описание

void event_buffer_watermark_set ( resource $bevent , int $events , int $lowmark , int $highmark )

Sets the watermarks for read and write events. Libevent does not invoke read callback unless there is at least lowmark bytes in the input buffer; if the read buffer is beyond the highmark, reading is stopped. On output, the write callback is invoked whenever the buffered data falls below the lowmark.

Список параметров

bevent

Valid buffered event resource.

events

Any combination of EV_READ and EV_WRITE.

lowmark

Low watermark.

highmark

High watermark.


Write data to a buffered event

  • « event_buffer_watermark_set
  • event_del »
  • PHP Manual
  • Функции Libevent
  • Write data to a buffered event

event_buffer_write

(PECL libevent >= 0.0.1)

event_buffer_write — Write data to a buffered event

Описание

bool event_buffer_write ( resource $bevent , string $data [, int $data_size = -1 ] )

Writes data to the specified buffered event. The data is appended to the output buffer and written to the descriptor when it becomes available for writing.

Список параметров

bevent

Valid buffered event resource.

data

The data to be written.

data_size

Optional size parameter. event_buffer_write() writes all the data by default.

Возвращаемые значения

event_buffer_write() returns TRUE on success or FALSE on error.


Remove an event from the set of monitored events

  • « event_buffer_write
  • event_free »
  • PHP Manual
  • Функции Libevent
  • Remove an event from the set of monitored events

event_del

(PECL libevent >= 0.0.1)

event_del — Remove an event from the set of monitored events

Описание

bool event_del ( resource $event )

Cancels the event.

Список параметров

event

Valid event resource.

Возвращаемые значения

event_del() returns TRUE on success or FALSE on error.


Free event resource

  • « event_del
  • event_new »
  • PHP Manual
  • Функции Libevent
  • Free event resource

event_free

(PECL libevent >= 0.0.1)

event_free — Free event resource

Описание

void event_free ( resource $event )

Frees previously created event resource.

Список параметров

event

Valid event resource.


Create new event

  • « event_free
  • event_priority_set »
  • PHP Manual
  • Функции Libevent
  • Create new event

event_new

(PECL libevent >= 0.0.1)

event_new — Create new event

Описание

resource event_new ( void )

Creates and returns a new event resource.

Возвращаемые значения

event_new() returns a new event resource on success or FALSE on error.


Assign a priority to an event.

  • « event_new
  • event_set »
  • PHP Manual
  • Функции Libevent
  • Assign a priority to an event.

event_priority_set

(PECL libevent >= 0.0.5)

event_priority_set — Assign a priority to an event.

Описание

bool event_priority_set ( resource $event , int $priority )

Assign a priority to the event.

Список параметров

event

Valid event resource.

priority

Priority level. Cannot be less than zero and cannot exceed maximum priority level of the event base (see event_base_priority_init()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Prepare an event

  • « event_priority_set
  • event_timer_add »
  • PHP Manual
  • Функции Libevent
  • Prepare an event

event_set

(PECL libevent >= 0.0.1)

event_set — Prepare an event

Описание

bool event_set ( resource $event , mixed $fd , int $events , mixed $callback [, mixed $arg ] )

Prepares the event to be used in event_add(). The event is prepared to call the function specified by the callback on the events specified in parameter events, which is a set of the following flags: EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE and EV_PERSIST.

If EV_SIGNAL bit is set in parameter events, the fd is interpreted as signal number.

After initializing the event, use event_base_set() to associate the event with its event base.

In case of matching event, these three arguments are passed to the callback function:

fd

Signal number or resource indicating the stream.

events

A flag indicating the event. Consists of the following flags: EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE and EV_PERSIST.

arg

Optional parameter, previously passed to event_set() as arg.

Список параметров

event

Valid event resource.

fd

Valid PHP stream resource. The stream must be castable to file descriptor, so you most likely won't be able to use any of filtered streams.

events

A set of flags indicating the desired event, can be EV_READ and/or EV_WRITE. The additional flag EV_PERSIST makes the event to persist until event_del() is called, otherwise the callback is invoked only once.

callback

Callback function to be called when the matching event occurs.

arg

Optional callback parameter.

Возвращаемые значения

event_set() returns TRUE on success or FALSE on error.

Список изменений

Версия | Описание
0.0.4 | EV_SIGNAL support was added.


Псевдоним event_add

  • « event_set
  • event_timer_del »
  • PHP Manual
  • Функции Libevent
  • Псевдоним event_add

event_timer_add

(PECL libevent >= 0.0.2)

event_timer_add — Псевдоним event_add()

Описание

Эта функция является псевдонимом: event_add().


Псевдоним event_del

  • « event_timer_add
  • event_timer_new »
  • PHP Manual
  • Функции Libevent
  • Псевдоним event_del

event_timer_del

(PECL libevent >= 0.0.2)

event_timer_del — Псевдоним event_del()

Описание

Эта функция является псевдонимом: event_del().


Псевдоним event_new

  • « event_timer_del
  • event_timer_set »
  • PHP Manual
  • Функции Libevent
  • Псевдоним event_new

event_timer_new

(PECL libevent >= 0.0.2)

event_timer_new — Псевдоним event_new()

Описание

Эта функция является псевдонимом: event_new().


Подготавливает событие таймер

  • « event_timer_new
  • PCNTL »
  • PHP Manual
  • Функции Libevent
  • Подготавливает событие таймер

event_timer_set

(PECL libevent >= 0.0.2)

event_timer_set — Подготавливает событие таймер

Описание

bool event_timer_set ( resource $event , callable $callback [, mixed $arg ] )

Подготавливает событие таймер для использования в event_add(). Событие подготавливается для вызова указанной callback-функции по истечению заданного времени.

После инициализации события, используйте event_base_set() для связи события с его событийной базой.

В случае наступления события, эти три аргумента будут переданы в callback-функцию:

fd

Номер сигнала или ресура соответствующего потоку.

events

Флаг, соответствующий событию. Всегда будет EV_TIMEOUT для события таймера.

arg

Опциональный параметр, предварительно переданный в event_timer_set() как arg.

Список параметров

event

Корректный ресурс события.

callback

Callback-функция, вызываемая при наступлении события.

arg

Опциональный callback параметр.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Process Control

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Basic usage
  • PCNTL Функции
    • pcntl_alarm — Set an alarm clock for delivery of a signal
    • pcntl_errno — Псевдоним pcntl_strerror
    • pcntl_exec — Executes specified program in current process space
    • pcntl_fork — Forks the currently running process
    • pcntl_get_last_error — Retrieve the error number set by the last pcntl function which failed
    • pcntl_getpriority — Get the priority of any process
    • pcntl_setpriority — Change the priority of any process
    • pcntl_signal_dispatch — Calls signal handlers for pending signals
    • pcntl_signal — Installs a signal handler
    • pcntl_sigprocmask — Sets and retrieves blocked signals
    • pcntl_sigtimedwait — Waits for signals, with a timeout
    • pcntl_sigwaitinfo — Waits for signals
    • pcntl_strerror — Retrieve the system error message associated with the given errno
    • pcntl_wait — Waits on or returns the status of a forked child
    • pcntl_waitpid — Waits on or returns the status of a forked child
    • pcntl_wexitstatus — Returns the return code of a terminated child
    • pcntl_wifexited — Checks if status code represents a normal exit
    • pcntl_wifsignaled — Checks whether the status code represents a termination due to a signal
    • pcntl_wifstopped — Checks whether the child process is currently stopped
    • pcntl_wstopsig — Returns the signal which caused the child to stop
    • pcntl_wtermsig — Returns the signal which caused the child to terminate


Введение

Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. Process Control should not be enabled within a web server environment and unexpected results may happen if any Process Control functions are used within a web server environment.

This documentation is intended to explain the general usage of each of the Process Control functions. For detailed information about Unix process control you are encouraged to consult your systems documentation including fork(2), waitpid(2) and signal(2) or a comprehensive reference such as Advanced Programming in the UNIX Environment by W. Richard Stevens (Addison-Wesley).

PCNTL now uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You use the declare() statement to specify the locations in your program where callbacks are allowed to occur. This allows you to minimize the overhead of handling asynchronous events. In the past, compiling PHP with pcntl enabled would always incur this overhead, whether or not your script actually used pcntl.

There is one adjustment that all pcntl scripts prior to PHP 4.3.0 must make for them to work which is to either to use declare() on a section where you wish to allow callbacks or to just enable it across the entire script using the new global syntax of declare().

Замечание: Для Windows-платформ это расширение недоступно.


Установка

Process Control support in PHP is not enabled by default. You have to compile the CGI or CLI version of PHP with --enable-pcntl configuration option when compiling PHP to enable Process Control support.

Замечание:

Currently, this module will not function on non-Unix platforms (Windows).


Предопределенные константы

The following list of signals are supported by the Process Control functions. Please see your systems signal(7) man page for details of the default behavior of these signals.

WNOHANG (integer)
WUNTRACED (integer)
SIG_IGN (integer)
SIG_DFL (integer)
SIG_ERR (integer)
SIGHUP (integer)
SIGINT (integer)
SIGQUIT (integer)
SIGILL (integer)
SIGTRAP (integer)
SIGABRT (integer)
SIGIOT (integer)
SIGBUS (integer)
SIGFPE (integer)
SIGKILL (integer)
SIGUSR1 (integer)
SIGSEGV (integer)
SIGUSR2 (integer)
SIGPIPE (integer)
SIGALRM (integer)
SIGTERM (integer)
SIGSTKFLT (integer)
SIGCLD (integer)
SIGCHLD (integer)
SIGCONT (integer)
SIGSTOP (integer)
SIGTSTP (integer)
SIGTTIN (integer)
SIGTTOU (integer)
SIGURG (integer)
SIGXCPU (integer)
SIGXFSZ (integer)
SIGVTALRM (integer)
SIGPROF (integer)
SIGWINCH (integer)
SIGPOLL (integer)
SIGIO (integer)
SIGPWR (integer)
SIGSYS (integer)
SIGBABY (integer)
SIG_BLOCK (integer)
Available since PHP 5.3.0.
SIG_UNBLOCK (integer)
Available since PHP 5.3.0.
SIG_SETMASK (integer)
Available since PHP 5.3.0.
SI_USER (integer)
Available since PHP 5.3.0.
SI_NOINFO (integer)
Available since PHP 5.3.0.
SI_KERNEL (integer)
Available since PHP 5.3.0.
SI_QUEUE (integer)
Available since PHP 5.3.0.
SI_TIMER (integer)
Available since PHP 5.3.0.
SI_MSGGQ (integer)
Available since PHP 5.3.0.
SI_ASYNCIO (integer)
Available since PHP 5.3.0.
SI_SIGIO (integer)
Available since PHP 5.3.0.
SI_TKILL (integer)
Available since PHP 5.3.0.
CLD_EXITED (integer)
Available since PHP 5.3.0.
CLD_KILLED (integer)
Available since PHP 5.3.0.
CLD_DUMPED (integer)
Available since PHP 5.3.0.
CLD_TRAPPED (integer)
Available since PHP 5.3.0.
CLD_STOPPED (integer)
Available since PHP 5.3.0.
CLD_CONTINUED (integer)
Available since PHP 5.3.0.
TRAP_BRKPT (integer)
Available since PHP 5.3.0.
TRAP_TRACE (integer)
Available since PHP 5.3.0.
POLL_IN (integer)
Available since PHP 5.3.0.
POLL_OUT (integer)
Available since PHP 5.3.0.
POLL_MSG (integer)
Available since PHP 5.3.0.
POLL_ERR (integer)
Available since PHP 5.3.0.
POLL_PRI (integer)
Available since PHP 5.3.0.
POLL_HUP (integer)
Available since PHP 5.3.0.
ILL_ILLOPC (integer)
Available since PHP 5.3.0.
ILL_ILLOPN (integer)
Available since PHP 5.3.0.
ILL_ILLADR (integer)
Available since PHP 5.3.0.
ILL_ILLTRP (integer)
Available since PHP 5.3.0.
ILL_PRVOPC (integer)
Available since PHP 5.3.0.
ILL_PRVREG (integer)
Available since PHP 5.3.0.
ILL_COPROC (integer)
Available since PHP 5.3.0.
ILL_BADSTK (integer)
Available since PHP 5.3.0.
FPE_INTDIV (integer)
Available since PHP 5.3.0.
FPE_INTOVF (integer)
Available since PHP 5.3.0.
FPE_FLTDIV (integer)
Available since PHP 5.3.0.
FPE_FLTOVF (integer)
Available since PHP 5.3.0.
FPE_FLTUND (integer)
Available since PHP 5.3.0.
FPE_FLTRES (integer)
Available since PHP 5.3.0.
FPE_FLTINV (integer)
Available since PHP 5.3.0.
FPE_FLTSUB (integer)
Available since PHP 5.3.0.
SEGV_MAPERR (integer)
Available since PHP 5.3.0.
SEGV_ACCERR (integer)
Available since PHP 5.3.0.
BUS_ADRALN (integer)
Available since PHP 5.3.0.
BUS_ADRERR (integer)
Available since PHP 5.3.0.
BUS_OBJERR (integer)
Available since PHP 5.3.0.


  • « Предопределенные константы
  • Basic usage »
  • PHP Manual
  • PCNTL
  • Примеры

Примеры

Содержание

  • Basic usage


Basic usage

This example forks off a daemon process with a signal handler.

Пример #1 Process Control Example

<?php
declare(ticks=1);

$pid = pcntl_fork();
if ($pid == -1) {
     die("could not fork");
} else if ($pid) {
     exit(); // we are the parent
} else {
     // we are the child
}

// detatch from the controlling terminal
if (posix_setsid() == -1) {
    die("could not detach from terminal");
}

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");

// loop forever performing tasks
while (1) {

    // do something interesting here

}

function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         default:
             // handle all other signals
     }

}

?>


PCNTL Функции

Смотрите также

A look at the section about POSIX functions may be useful.

Содержание

  • pcntl_alarm — Set an alarm clock for delivery of a signal
  • pcntl_errno — Псевдоним pcntl_strerror
  • pcntl_exec — Executes specified program in current process space
  • pcntl_fork — Forks the currently running process
  • pcntl_get_last_error — Retrieve the error number set by the last pcntl function which failed
  • pcntl_getpriority — Get the priority of any process
  • pcntl_setpriority — Change the priority of any process
  • pcntl_signal_dispatch — Calls signal handlers for pending signals
  • pcntl_signal — Installs a signal handler
  • pcntl_sigprocmask — Sets and retrieves blocked signals
  • pcntl_sigtimedwait — Waits for signals, with a timeout
  • pcntl_sigwaitinfo — Waits for signals
  • pcntl_strerror — Retrieve the system error message associated with the given errno
  • pcntl_wait — Waits on or returns the status of a forked child
  • pcntl_waitpid — Waits on or returns the status of a forked child
  • pcntl_wexitstatus — Returns the return code of a terminated child
  • pcntl_wifexited — Checks if status code represents a normal exit
  • pcntl_wifsignaled — Checks whether the status code represents a termination due to a signal
  • pcntl_wifstopped — Checks whether the child process is currently stopped
  • pcntl_wstopsig — Returns the signal which caused the child to stop
  • pcntl_wtermsig — Returns the signal which caused the child to terminate


Set an alarm clock for delivery of a signal

  • « PCNTL Функции
  • pcntl_errno »
  • PHP Manual
  • PCNTL Функции
  • Set an alarm clock for delivery of a signal

pcntl_alarm

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pcntl_alarm — Set an alarm clock for delivery of a signal

Описание

int pcntl_alarm ( int $seconds )

Creates a timer that will send a SIGALRM signal to the process after the given number of seconds. Any call to pcntl_alarm() will cancel any previously set alarm.

Список параметров

seconds

The number of seconds to wait. If seconds is zero, no new alarm is created.

Возвращаемые значения

Returns the time in seconds that any previously scheduled alarm had remaining before it was to be delivered, or 0 if there was no previously scheduled alarm.


Псевдоним pcntl_strerror

  • « pcntl_alarm
  • pcntl_exec »
  • PHP Manual
  • PCNTL Функции
  • Псевдоним pcntl_strerror

pcntl_errno

(PHP 5 >= 5.3.4, PHP 7)

pcntl_errno — Псевдоним pcntl_strerror()

Описание

Эта функция является псевдонимом: pcntl_strerror()


Executes specified program in current process space

  • « pcntl_errno
  • pcntl_fork »
  • PHP Manual
  • PCNTL Функции
  • Executes specified program in current process space

pcntl_exec

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

pcntl_exec — Executes specified program in current process space

Описание

bool pcntl_exec ( string $path [, array $args [, array $envs ]] )

Executes the program with the given arguments.

Список параметров

path

path must be the path to a binary executable or a script with a valid path pointing to an executable in the shebang ( #!/usr/local/bin/perl for example) as the first line. See your system's man execve(2) page for additional information.

args

args is an array of argument strings passed to the program.

envs

envs is an array of strings which are passed as environment to the program. The array is in the format of name => value, the key being the name of the environmental variable and the value being the value of that variable.

Возвращаемые значения

Returns FALSE on error and does not return on success.


Forks the currently running process

  • « pcntl_exec
  • pcntl_get_last_error »
  • PHP Manual
  • PCNTL Функции
  • Forks the currently running process

pcntl_fork

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_fork — Forks the currently running process

Описание

int pcntl_fork ( void )

The pcntl_fork() function creates a child process that differs from the parent process only in its PID and PPID. Please see your system's fork(2) man page for specific details as to how fork works on your system.

Возвращаемые значения

On success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and a PHP error is raised.

Примеры

Пример #1 pcntl_fork() example

<?php

$pid = pcntl_fork();
if ($pid == -1) {
     die('could not fork');
} else if ($pid) {
     // we are the parent
     pcntl_wait($status); //Protect against Zombie children
} else {
     // we are the child
}

?>

Смотрите также

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_signal() - Installs a signal handler
  • setproctitle() - Set the process title


Retrieve the error number set by the last pcntl function which failed

  • « pcntl_fork
  • pcntl_getpriority »
  • PHP Manual
  • PCNTL Функции
  • Retrieve the error number set by the last pcntl function which failed

pcntl_get_last_error

(PHP 5 >= 5.3.4, PHP 7)

pcntl_get_last_error — Retrieve the error number set by the last pcntl function which failed

Описание

int pcntl_get_last_error ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns error code.

Смотрите также

  • pcntl_strerror() - Retrieve the system error message associated with the given errno


Get the priority of any process

  • « pcntl_get_last_error
  • pcntl_setpriority »
  • PHP Manual
  • PCNTL Функции
  • Get the priority of any process

pcntl_getpriority

(PHP 5, PHP 7)

pcntl_getpriority — Get the priority of any process

Описание

int pcntl_getpriority ([ int $pid = getmypid() [, int $process_identifier = PRIO_PROCESS ]] )

pcntl_getpriority() gets the priority of pid. Because priority levels can differ between system types and kernel versions, please see your system's getpriority(2) man page for specific details.

Список параметров

pid

If not specified, the pid of the current process is used.

process_identifier

One of PRIO_PGRP, PRIO_USER or PRIO_PROCESS.

Возвращаемые значения

pcntl_getpriority() returns the priority of the process or FALSE on error. A lower numerical value causes more favorable scheduling.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Смотрите также

  • pcntl_setpriority() - Change the priority of any process


Change the priority of any process

  • « pcntl_getpriority
  • pcntl_signal_dispatch »
  • PHP Manual
  • PCNTL Функции
  • Change the priority of any process

pcntl_setpriority

(PHP 5, PHP 7)

pcntl_setpriority — Change the priority of any process

Описание

bool pcntl_setpriority ( int $priority [, int $pid = getmypid() [, int $process_identifier = PRIO_PROCESS ]] )

pcntl_setpriority() sets the priority of pid.

Список параметров

priority

priority is generally a value in the range -20 to 20. The default priority is 0 while a lower numerical value causes more favorable scheduling. Because priority levels can differ between system types and kernel versions, please see your system's setpriority(2) man page for specific details.

pid

If not specified, the pid of the current process is used.

process_identifier

One of PRIO_PGRP, PRIO_USER or PRIO_PROCESS.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • pcntl_getpriority() - Get the priority of any process


Calls signal handlers for pending signals

  • « pcntl_setpriority
  • pcntl_signal »
  • PHP Manual
  • PCNTL Функции
  • Calls signal handlers for pending signals

pcntl_signal_dispatch

(PHP 5 >= 5.3.0, PHP 7)

pcntl_signal_dispatch — Calls signal handlers for pending signals

Описание

bool pcntl_signal_dispatch ( void )

The pcntl_signal_dispatch() function calls the signal handlers installed by pcntl_signal() for each pending signal.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pcntl_signal_dispatch() example

<?php
echo "Installing signal handler...\n";
pcntl_signal(SIGHUP,  function($signo) {
     echo "signal handler called\n";
});

echo "Generating signal SIGHUP to self...\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Dispatching...\n";
pcntl_signal_dispatch();

echo "Done\n";

?>

Результатом выполнения данного примера будет что-то подобное:

Installing signal handler...
Generating signal SIGHUP to self...
Dispatching...
signal handler called
Done

Смотрите также

  • pcntl_signal() - Installs a signal handler
  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigwaitinfo() - Waits for signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout


Installs a signal handler

  • « pcntl_signal_dispatch
  • pcntl_sigprocmask »
  • PHP Manual
  • PCNTL Функции
  • Installs a signal handler

pcntl_signal

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_signal — Installs a signal handler

Описание

bool pcntl_signal ( int $signo , callable|int $handler [, bool $restart_syscalls = true ] )

The pcntl_signal() function installs a new signal handler or replaces the current signal handler for the signal indicated by signo.

Список параметров

signo

The signal number.

handler

The signal handler. This may be either a callable, which will be invoked to handle the signal, or either of the two global constants SIG_IGN or SIG_DFL, which will ignore the signal or restore the default signal handler respectively.

If a callable is given, it must implement the following signature:

void handler ( int $signo )
signo
The signal being handled.

Замечание:

Note that when you set a handler to an object method, that object's reference count is increased which makes it persist until you either change the handler to something else, or your script ends.

restart_syscalls

Specifies whether system call restarting should be used when this signal arrives.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
4.3.0 | As of PHP 4.3.0 PCNTL uses ticks as the signal handle callback mechanism, which is much faster than the previous mechanism. This change follows the same semantics as using "user ticks". You must use the declare() statement to specify the locations in your program where callbacks are allowed to occur for the signal handler to function properly (as used in the example below).

Примеры

Пример #1 pcntl_signal() example

<?php
// tick use required as of PHP 4.3.0
declare(ticks = 1);

// signal handler function
function sig_handler($signo)
{

     switch ($signo) {
         case SIGTERM:
             // handle shutdown tasks
             exit;
             break;
         case SIGHUP:
             // handle restart tasks
             break;
         case SIGUSR1:
             echo "Caught SIGUSR1...\n";
             break;
         default:
             // handle all other signals
     }

}

echo "Installing signal handler...\n";

// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP,  "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");

// or use an object, available as of PHP 4.3.0
// pcntl_signal(SIGUSR1, array($obj, "do_something"));

echo"Generating signal SIGUSR1 to self...\n";

// send SIGUSR1 to current process id
// posix_* functions require the posix extension
posix_kill(posix_getpid(), SIGUSR1);

echo "Done\n";

?>

Примечания

pcntl_signal() doesn't stack the signal handlers, but replaces them.

Смотрите также

  • pcntl_fork() - Forks the currently running process
  • pcntl_waitpid() - Waits on or returns the status of a forked child


Sets and retrieves blocked signals

  • « pcntl_signal
  • pcntl_sigtimedwait »
  • PHP Manual
  • PCNTL Функции
  • Sets and retrieves blocked signals

pcntl_sigprocmask

(PHP 5 >= 5.3.0, PHP 7)

pcntl_sigprocmask — Sets and retrieves blocked signals

Описание

bool pcntl_sigprocmask ( int $how , array $set [, array &$oldset ] )

The pcntl_sigprocmask() function adds, removes or sets blocked signals, depending on the how parameter.

Список параметров

how

Sets the behavior of pcntl_sigprocmask(). Possible values:

  • SIG_BLOCK: Add the signals to the currently blocked signals.
  • SIG_UNBLOCK: Remove the signals from the currently blocked signals.
  • SIG_SETMASK: Replace the currently blocked signals by the given list of signals.

set

List of signals.

oldset

The oldset parameter is set to an array containing the list of the previously blocked signals.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 pcntl_sigprocmask() example

<?php
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));
$oldset = array();
pcntl_sigprocmask(SIG_UNBLOCK, array(SIGHUP), $oldset);
?>

Смотрите также

  • pcntl_sigwaitinfo() - Waits for signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout


Waits for signals, with a timeout

  • « pcntl_sigprocmask
  • pcntl_sigwaitinfo »
  • PHP Manual
  • PCNTL Функции
  • Waits for signals, with a timeout

pcntl_sigtimedwait

(PHP 5 >= 5.3.0, PHP 7)

pcntl_sigtimedwait — Waits for signals, with a timeout

Описание

int pcntl_sigtimedwait ( array $set [, array &$siginfo [, int $seconds = 0 [, int $nanoseconds = 0 ]]] )

The pcntl_sigtimedwait() function operates in exactly the same way as pcntl_sigwaitinfo() except that it takes two additional parameters, seconds and nanoseconds, which enable an upper bound to be placed on the time for which the script is suspended.

Список параметров

set

Array of signals to wait for.

siginfo

The siginfo is set to an array containing informations about the signal. See pcntl_sigwaitinfo().

seconds

Timeout in seconds.

nanoseconds

Timeout in nanoseconds.

Возвращаемые значения

On success, pcntl_sigtimedwait() returns a signal number.

Смотрите также

  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigwaitinfo() - Waits for signals


Waits for signals

  • « pcntl_sigtimedwait
  • pcntl_strerror »
  • PHP Manual
  • PCNTL Функции
  • Waits for signals

pcntl_sigwaitinfo

(PHP 5 >= 5.3.0, PHP 7)

pcntl_sigwaitinfo — Waits for signals

Описание

int pcntl_sigwaitinfo ( array $set [, array &$siginfo ] )

The pcntl_sigwaitinfo() function suspends execution of the calling script until one of the signals given in set are delivered. If one of the signal is already pending (e.g. blocked by pcntl_sigprocmask()), pcntl_sigwaitinfo() will return immediately.

Список параметров

set

Array of signals to wait for.

siginfo

The siginfo parameter is set to an array containing informations about the signal.

The following elements are set for all signals:

  • signo: Signal number
  • errno: An error number
  • code: Signal code

The following elements may be set for the SIGCHLD signal:

  • status: Exit value or signal
  • utime: User time consumed
  • stime: System time consumed
  • pid: Sending process ID
  • uid: Real user ID of sending process

The following elements may be set for the SIGILL, SIGFPE, SIGSEGV and SIGBUS signals:

  • addr: Memory location which caused fault

The following element may be set for the SIGPOLL signal:

  • band: Band event
  • fd: File descriptor number

Возвращаемые значения

On success, pcntl_sigwaitinfo() returns a signal number.

Примеры

Пример #1 pcntl_sigwaitinfo() example

<?php
echo "Blocking SIGHUP signal\n";
pcntl_sigprocmask(SIG_BLOCK, array(SIGHUP));

echo "Sending SIGHUP to self\n";
posix_kill(posix_getpid(), SIGHUP);

echo "Waiting for signals\n";
$info = array();
pcntl_sigwaitinfo(array(SIGHUP), $info);
?>

Смотрите также

  • pcntl_sigprocmask() - Sets and retrieves blocked signals
  • pcntl_sigtimedwait() - Waits for signals, with a timeout


Retrieve the system error message associated with the given errno

  • « pcntl_sigwaitinfo
  • pcntl_wait »
  • PHP Manual
  • PCNTL Функции
  • Retrieve the system error message associated with the given errno

pcntl_strerror

(PHP 5 >= 5.3.4, PHP 7)

pcntl_strerror — Retrieve the system error message associated with the given errno

Описание

string pcntl_strerror ( int $errno )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

errno

Возвращаемые значения

Returns error description on success или FALSE в случае возникновения ошибки.

Смотрите также

  • pcntl_get_last_error() - Retrieve the error number set by the last pcntl function which failed


Waits on or returns the status of a forked child

  • « pcntl_strerror
  • pcntl_waitpid »
  • PHP Manual
  • PCNTL Функции
  • Waits on or returns the status of a forked child

pcntl_wait

(PHP 5, PHP 7)

pcntl_wait — Waits on or returns the status of a forked child

Описание

int pcntl_wait ( int &$status [, int $options = 0 ] )

The wait function suspends execution of the current process until a child has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function. If a child has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's wait(2) man page for specific details as to how wait works on your system.

Замечание:

This function is equivalent to calling pcntl_waitpid() with a -1 pid and no options.

Список параметров

status

pcntl_wait() will store status information
in the status parameter which can be
evaluated using the following functions:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

options

If wait3 is available on your system (mostly BSD-style systems), you can provide the optional options parameter. If this parameter is not provided, wait will be used for the system call. If wait3 is not available, providing a value for options will have no effect. The value of options is the value of zero or more of the following two constants OR'ed together:

Possible values for options
WNOHANG | Return immediately if no child has exited.
WUNTRACED | Return for children which are stopped, and whose status has not been reported.

Возвращаемые значения

pcntl_wait() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was provided as an option (on wait3-available systems) and no child was available.

Смотрите также

  • pcntl_fork() - Forks the currently running process
  • pcntl_signal() - Installs a signal handler
  • pcntl_wifexited() - Checks if status code represents a normal exit
  • pcntl_wifstopped() - Checks whether the child process is currently stopped
  • pcntl_wifsignaled() - Checks whether the status code represents a termination due to a signal
  • pcntl_wexitstatus() - Returns the return code of a terminated child
  • pcntl_wtermsig() - Returns the signal which caused the child to terminate
  • pcntl_wstopsig() - Returns the signal which caused the child to stop
  • pcntl_waitpid() - Waits on or returns the status of a forked child


Waits on or returns the status of a forked child

  • « pcntl_wait
  • pcntl_wexitstatus »
  • PHP Manual
  • PCNTL Функции
  • Waits on or returns the status of a forked child

pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_waitpid — Waits on or returns the status of a forked child

Описание

int pcntl_waitpid ( int $pid , int &$status [, int $options = 0 ] )

Suspends execution of the current process until a child as specified by the pid argument has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function.

If a child as requested by pid has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's waitpid(2) man page for specific details as to how waitpid works on your system.

Список параметров

pid

The value of pid can be one of the following:

possible values for pid
< -1 | wait for any child process whose process group ID is equal to the absolute value of pid.
-1 | wait for any child process; this is the same behaviour that the wait function exhibits.
0 | wait for any child process whose process group ID is equal to that of the calling process.
> 0 | wait for the child whose process ID is equal to the value of pid.

Замечание:

Specifying -1 as the pid is equivalent to the functionality pcntl_wait() provides (minus options).

status

pcntl_waitpid() will store status information
in the status parameter which can be
evaluated using the following functions:
pcntl_wifexited(),
pcntl_wifstopped(),
pcntl_wifsignaled(),
pcntl_wexitstatus(),
pcntl_wtermsig() and
pcntl_wstopsig().

options

The value of options is the value of zero or more of the following two global constants OR'ed together:

possible values for options
WNOHANG | return immediately if no child has exited.
WUNTRACED | return for children which are stopped, and whose status has not been reported.

Возвращаемые значения

pcntl_waitpid() returns the process ID of the child which exited, -1 on error or zero if WNOHANG was used and no child was available

Смотрите также

  • pcntl_fork() - Forks the currently running process
  • pcntl_signal() - Installs a signal handler
  • pcntl_wifexited() - Checks if status code represents a normal exit
  • pcntl_wifstopped() - Checks whether the child process is currently stopped
  • pcntl_wifsignaled() - Checks whether the status code represents a termination due to a signal
  • pcntl_wexitstatus() - Returns the return code of a terminated child
  • pcntl_wtermsig() - Returns the signal which caused the child to terminate
  • pcntl_wstopsig() - Returns the signal which caused the child to stop


Returns the return code of a terminated child

  • « pcntl_waitpid
  • pcntl_wifexited »
  • PHP Manual
  • PCNTL Функции
  • Returns the return code of a terminated child

pcntl_wexitstatus

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wexitstatus — Returns the return code of a terminated child

Описание

int pcntl_wexitstatus ( int $status )

Returns the return code of a terminated child. This function is only useful if pcntl_wifexited() returned TRUE.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Returns the return code, as an integer.

Смотрите также

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_wifexited() - Checks if status code represents a normal exit


Checks if status code represents a normal exit

  • « pcntl_wexitstatus
  • pcntl_wifsignaled »
  • PHP Manual
  • PCNTL Функции
  • Checks if status code represents a normal exit

pcntl_wifexited

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wifexited — Checks if status code represents a normal exit

Описание

bool pcntl_wifexited ( int $status )

Checks whether the child status code represents a normal exit.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Returns TRUE if the child status code represents a normal exit, FALSE otherwise.

Смотрите также

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_wexitstatus() - Returns the return code of a terminated child


Checks whether the status code represents a termination due to a signal

  • « pcntl_wifexited
  • pcntl_wifstopped »
  • PHP Manual
  • PCNTL Функции
  • Checks whether the status code represents a termination due to a signal

pcntl_wifsignaled

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wifsignaled — Checks whether the status code represents a termination due to a signal

Описание

bool pcntl_wifsignaled ( int $status )

Checks whether the child process exited because of a signal which was not caught.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Returns TRUE if the child process exited because of a signal which was not caught, FALSE otherwise.

Смотрите также

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_signal() - Installs a signal handler


Checks whether the child process is currently stopped

  • « pcntl_wifsignaled
  • pcntl_wstopsig »
  • PHP Manual
  • PCNTL Функции
  • Checks whether the child process is currently stopped

pcntl_wifstopped

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wifstopped — Checks whether the child process is currently stopped

Описание

bool pcntl_wifstopped ( int $status )

Checks whether the child process which caused the return is currently stopped; this is only possible if the call to pcntl_waitpid() was done using the option WUNTRACED.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Returns TRUE if the child process which caused the return is currently stopped, FALSE otherwise.

Смотрите также

  • pcntl_waitpid() - Waits on or returns the status of a forked child


Returns the signal which caused the child to stop

  • « pcntl_wifstopped
  • pcntl_wtermsig »
  • PHP Manual
  • PCNTL Функции
  • Returns the signal which caused the child to stop

pcntl_wstopsig

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wstopsig — Returns the signal which caused the child to stop

Описание

int pcntl_wstopsig ( int $status )

Returns the number of the signal which caused the child to stop. This function is only useful if pcntl_wifstopped() returned TRUE.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Returns the signal number.

Смотрите также

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_wifstopped() - Checks whether the child process is currently stopped


Returns the signal which caused the child to terminate

  • « pcntl_wstopsig
  • POSIX »
  • PHP Manual
  • PCNTL Функции
  • Returns the signal which caused the child to terminate

pcntl_wtermsig

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

pcntl_wtermsig — Returns the signal which caused the child to terminate

Описание

int pcntl_wtermsig ( int $status )

Returns the number of the signal that caused the child process to terminate. This function is only useful if pcntl_wifsignaled() returned TRUE.

Список параметров

status

Параметр status - это параметр статуса, передаваемый для успешного вызова функции pcntl_waitpid().

Возвращаемые значения

Returns the signal number, as an integer.

Смотрите также

  • pcntl_waitpid() - Waits on or returns the status of a forked child
  • pcntl_signal() - Installs a signal handler
  • pcntl_wifsignaled() - Checks whether the status code represents a termination due to a signal


POSIX

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Константы posix_access
    • Константы posix_mknod
    • Константы posix_setrlimit
  • POSIX Функции
    • posix_access — Определяет доступность файла
    • posix_ctermid — Возвращает путь управляющего терминала
    • posix_errno — Псевдоним posix_get_last_error
    • posix_get_last_error — Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей
    • posix_getcwd — Возвращает путь текущей директории
    • posix_getegid — Возвращает эффективный идентификатор группы текущего процесса EGID
    • posix_geteuid — Возвращает эффективный идентификатор пользователя текущего процесса EUID
    • posix_getgid — Возвращает действительный ID группы текущего процесса GID
    • posix_getgrgid — Возвращает информацию о группе по её ID
    • posix_getgrnam — Возвращает информацию о группе, используя её имя
    • posix_getgroups — Возвращает список групп для текущего процесса
    • posix_getlogin — Возвращает логин владельца процесса
    • posix_getpgid — Возвращает ID группы текущего процесса для менеджера задач
    • posix_getpgrp — Возвращает идентификатор группы текущего процесса
    • posix_getpid — Возвращает идентификатор текущего процесса
    • posix_getppid — Возвращает идентификатор родительского процесса
    • posix_getpwnam — Возвращает информацию о пользователе по его имени
    • posix_getpwuid — Возвращает информацию о пользователе, используя его ID
    • posix_getrlimit — Возвращает информацию об ограничениях системных ресурсов
    • posix_getsid — Возвращает текущий SID процесса
    • posix_getuid — Возвращает фактический идентификатор пользователя текущего процесса UID
    • posix_initgroups — Определяет уровень доступа для группы
    • posix_isatty — Определяет является ли файловый дескриптор интерактивным терминалом
    • posix_kill — Отправляет сигнал соответствующему процессу
    • posix_mkfifo — Создает специальный fifo файл (именованный канал- pipe)
    • posix_mknod — Создает специальный или обычный файл (POSIX.1)
    • posix_setegid — Устанавливает эффективный идентификатор группы для текущего процесса EGID
    • posix_seteuid — Устанавливает эффективный идентификатор пользователя для текущего процесса EUID
    • posix_setgid — Устанавливает идентификатор группы для текущего процесса GID
    • posix_setpgid — Устанавливает идентификатор группы процесса для менеджера задач
    • posix_setrlimit — Устанавливает пределы системных ресурсов
    • posix_setsid — Делает текущий процесс лидером сессии
    • posix_setuid — Устанавливает UID текущего процесса
    • posix_strerror — Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки
    • posix_times — Возвращает информацию об использовании процессорного времени
    • posix_ttyname — Определяет имя терминального устройства
    • posix_uname — Возвращает информацию о системе


Введение

Этот модуль содержит интерфейс к функциям, определенным в стандарте IEEE 1003.1 (POSIX.1), которые не доступны с помощью других средств.

Внимание

Конфиденциальные данные могут быть получены с помощью POSIX функций, например posix_getpwnam() и других. Ни одна из POSIX функций не осуществляет какой либо проверки доступа когда включен безопасный режим. Поэтому строго рекомендуется отключать POSIX расширения вообще (используйте --disable-posix в вашей строке конфигурации) если вы работаете в таких условиях.

Замечание: Для Windows-платформ это расширение недоступно.


Установка

POSIX функции доступны по умолчанию. Можно отключить POSIX-подобные функции посредством директивы --disable-posix .


Предопределенные константы

Содержание

  • Константы posix_access
  • Константы posix_mknod
  • Константы posix_setrlimit

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.


Константы posix_access

  • « Предопределенные константы
  • Константы posix_mknod »
  • PHP Manual
  • Предопределенные константы
  • Константы posix_access

Константы posix_access()

Замечание:

Данные константы доступны начиная с версии PHP 5.1.0. Пожалуйста обратите внимание, что некоторые из данных констант могут быть недоступны в вашей операционной системе.

POSIX_F_OK (integer)
Проверить, существует ли файл.
POSIX_R_OK (integer)
Проверить, существует ли файл и имеется ли разрешение на чтение.
POSIX_W_OK (integer)
Проверить, существует ли файл и имеется ли разрешение на запись.
POSIX_X_OK (integer)
Проверить, существует ли файл и имеется ли разрешение на выполнение.


Константы posix_mknod

  • « Константы posix_access
  • Константы posix_setrlimit »
  • PHP Manual
  • Предопределенные константы
  • Константы posix_mknod

Константы posix_mknod()

Замечание:

Данные константы доступны начиная с версии PHP 5.1.0. Пожалуйста обратите внимание, что некоторые из данных констант могут быть недоступны в вашей операционной системе.

POSIX_S_IFBLK (integer)
Блочный специальный файл
POSIX_S_IFCHR (integer)
Символьный специальный файл
POSIX_S_IFIFO (integer)
FIFO (именованный канал) специальный файл
POSIX_S_IFREG (integer)
Обычный файл
POSIX_S_IFSOCK (integer)
Сокет


Константы posix_setrlimit

  • « Константы posix_mknod
  • POSIX Функции »
  • PHP Manual
  • Предопределенные константы
  • Константы posix_setrlimit

Константы posix_setrlimit()

Замечание:

Данные константы доступны начиная с версии PHP 7.0.0. Пожалуйста обратите внимание, что некоторые из данных констант могут быть недоступны в вашей операционной системе.

Замечание:

В дополнение к приведенной ниже информации вы можете изучить раздел руководства функции setrlimit() для вашей конкретной операционной системы, т.к. существуют различия в том как эти ограничения интерпретируются, даже в системах, которые заявляют о полной реализации POSIX.

POSIX_RLIMIT_AS (integer)
Максимальный размер адресного пространства процесса в байтах. Также смотрите конфигурационную директиву memory_limit.
POSIX_RLIMIT_CORE (integer)
Максимальный размер файла дампа ядра. Если это ограничение установлено в 0, то файл дампа ядра создаваться не будет.
POSIX_RLIMIT_CPU (integer)
Максимальное количество процессорного времени, которое может быть использовано процессом, в секундах. Когда достигается мягкое ограничение, процессу будет отправлен сигнал SIGXCPU, который может быть обработан с помощью функции pcntl_signal(). В зависимости от операционной системы, может ежесекундно посылаться дополнительный сигнал SIGXCPU, пока не будет достигнут жесткий предел, достижение которого нельзя обработать. Процессу будет отправлен сигнал SIGKILL. Смотрите также set_time_limit().
POSIX_RLIMIT_DATA (integer)
Максимальный размер сегмента данных процесса, в байтах. Крайне маловероятно, что данное ограничение будет влиять на выполнение PHP, за исключением расширений, использующих вызовы функций brk() или sbrk().
POSIX_RLIMIT_FSIZE (integer)
Максимальный размер файлов, которые могут быть созданы процессом. в байтах.
POSIX_RLIMIT_LOCKS (integer)
Максимальное количество блокировок, которое данный процесс может создать. Это поддерживается только на очень старых ядрах Linux.
POSIX_RLIMIT_MEMLOCK (integer)
Максимальное количество байт, которое может быть заблокировано в памяти.
POSIX_RLIMIT_MSGQUEUE (integer)
Максимальное количество байт, которое может быть выделено под очередь сообщений POSIX. Стандартная сборка PHP не поддерживает POSIX очередь сообщений, поэтому данное ограничение не будет иметь никакого эфефкта, кроме случаев, когда вы используете расширения, обеспечивающие эту поддержку.
POSIX_RLIMIT_NICE (integer)
Максимальное значение, приоритета планировщика процессов, которое может быть установлено. Итоговое значение вычисляется как 20 - limit. Как ограничение ресурса значение не может быть отрицательным.
POSIX_RLIMIT_NOFILE (integer)
Значение, превышающее на 1, максимальное количество файловых дескрипторов, которое может быть открыть процессом.
POSIX_RLIMIT_NPROC (integer)
Максимальное количество процессов (и/или нитей, в зависимости от операционной системы) которое может быть создано для реального пользователя процесса.
POSIX_RLIMIT_RSS (integer)
Максимальный размер физической памяти (RAM), используемой кодом процесса и данными, в страницах.
POSIX_RLIMIT_RTPRIO (integer)
Максимальный приоритет реального времени, который может быть установлен с помощью системных вызовов sched_setscheduler() и sched_setparam().
POSIX_RLIMIT_RTTIME (integer)
Максимальное количество процессорного времени, в миллисекундах, которое процесс может использовать без блокирования системных вызовов при использовании планировщика реального времени.
POSIX_RLIMIT_SIGPENDING (integer)
Максимальное количество сигналов, которое можно поставить в очередь для реального пользователя данного процесса.
POSIX_RLIMIT_STACK (integer)
Максимальный размер стека процесса, в байтах.
POSIX_RLIMIT_INFINITY (integer)
Используется для отображения бесконечного значения ограничения ресурса.


POSIX Функции

Смотрите также

Также может оказаться полезным раздел "Функции управления процессами".

Содержание

  • posix_access — Определяет доступность файла
  • posix_ctermid — Возвращает путь управляющего терминала
  • posix_errno — Псевдоним posix_get_last_error
  • posix_get_last_error — Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей
  • posix_getcwd — Возвращает путь текущей директории
  • posix_getegid — Возвращает эффективный идентификатор группы текущего процесса EGID
  • posix_geteuid — Возвращает эффективный идентификатор пользователя текущего процесса EUID
  • posix_getgid — Возвращает действительный ID группы текущего процесса GID
  • posix_getgrgid — Возвращает информацию о группе по её ID
  • posix_getgrnam — Возвращает информацию о группе, используя её имя
  • posix_getgroups — Возвращает список групп для текущего процесса
  • posix_getlogin — Возвращает логин владельца процесса
  • posix_getpgid — Возвращает ID группы текущего процесса для менеджера задач
  • posix_getpgrp — Возвращает идентификатор группы текущего процесса
  • posix_getpid — Возвращает идентификатор текущего процесса
  • posix_getppid — Возвращает идентификатор родительского процесса
  • posix_getpwnam — Возвращает информацию о пользователе по его имени
  • posix_getpwuid — Возвращает информацию о пользователе, используя его ID
  • posix_getrlimit — Возвращает информацию об ограничениях системных ресурсов
  • posix_getsid — Возвращает текущий SID процесса
  • posix_getuid — Возвращает фактический идентификатор пользователя текущего процесса UID
  • posix_initgroups — Определяет уровень доступа для группы
  • posix_isatty — Определяет является ли файловый дескриптор интерактивным терминалом
  • posix_kill — Отправляет сигнал соответствующему процессу
  • posix_mkfifo — Создает специальный fifo файл (именованный канал- pipe)
  • posix_mknod — Создает специальный или обычный файл (POSIX.1)
  • posix_setegid — Устанавливает эффективный идентификатор группы для текущего процесса EGID
  • posix_seteuid — Устанавливает эффективный идентификатор пользователя для текущего процесса EUID
  • posix_setgid — Устанавливает идентификатор группы для текущего процесса GID
  • posix_setpgid — Устанавливает идентификатор группы процесса для менеджера задач
  • posix_setrlimit — Устанавливает пределы системных ресурсов
  • posix_setsid — Делает текущий процесс лидером сессии
  • posix_setuid — Устанавливает UID текущего процесса
  • posix_strerror — Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки
  • posix_times — Возвращает информацию об использовании процессорного времени
  • posix_ttyname — Определяет имя терминального устройства
  • posix_uname — Возвращает информацию о системе


Определяет доступность файла

  • « POSIX Функции
  • posix_ctermid »
  • PHP Manual
  • POSIX Функции
  • Определяет доступность файла

posix_access

(PHP 5 >= 5.1.0, PHP 7)

posix_access — Определяет доступность файла

Описание

bool posix_access ( string $file [, int $mode = POSIX_F_OK ] )

Функция posix_access() проверяет права пользователя на доступ к файлу.

Список параметров

file

Путь к проверяемому файлу.

mode

Маска, состоящая из одной или более констант: POSIX_F_OK, POSIX_R_OK, POSIX_W_OK или POSIX_X_OK.

POSIX_R_OK, POSIX_W_OK и POSIX_X_OK проверяют существование и доступность файла на чтение, запись и выполнение. POSIX_F_OK проверяет только существование файла.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования posix_access()

В данном примере проверяется доступность файла на чтение и запись, в противном случае выводится сообщение об ошибке.

<?php

$file = 'some_file';

if (posix_access($file, POSIX_R_OK | POSIX_W_OK)) {
    echo 'Файл доступен на чтение и запись!';

} else {
    $error = posix_get_last_error();

    echo "Error $error: " . posix_strerror($error);
}

?>

Примечания

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.

Смотрите также

  • posix_get_last_error() - Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей
  • posix_strerror() - Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки


Возвращает путь управляющего терминала

  • « posix_access
  • posix_errno »
  • PHP Manual
  • POSIX Функции
  • Возвращает путь управляющего терминала

posix_ctermid

(PHP 4, PHP 5, PHP 7)

posix_ctermid — Возвращает путь управляющего терминала

Описание

string posix_ctermid ( void )

Возвращает переменную типа string, содержащую путь до текущего управляющего терминала данного процесса. В случае ошибки будет установлен ее номер, который может быть обработан с использованием posix_get_last_error()

Возвращаемые значения

В случае успешного выполнения возвращает string с путём до текущего управляющего терминала. В противном случае возвращает FALSE и устанавливает номер ошибки, который может быть обработан с помощью posix_get_last_error().

Примеры

Пример #1 Пример использования posix_ctermid()

Данный скрипт выводит путь до текущего управляющего терминала (TTY).

<?php
echo "I am running from ".posix_ctermid();
?>

Смотрите также

  • posix_ttyname() - Определяет имя терминального устройства
  • posix_get_last_error() - Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей


Псевдоним posix_get_last_error

  • « posix_ctermid
  • posix_get_last_error »
  • PHP Manual
  • POSIX Функции
  • Псевдоним posix_get_last_error

posix_errno

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

posix_errno — Псевдоним posix_get_last_error()

Описание

Эта функция является псевдонимом: posix_get_last_error().


Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей

  • « posix_errno
  • posix_getcwd »
  • PHP Manual
  • POSIX Функции
  • Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей

posix_get_last_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

posix_get_last_error — Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей

Описание

int posix_get_last_error ( void )

Возвращает номер ошибки, произошедшей в последней posix функции, завершившейся неудачей. Системное сообщение об ошибке, соответствующее ее номеру, может быть получено с помощью posix_strerror().

Возвращаемые значения

Возвращает номер ошибки, установленный последней posix функцией, завершившейся неудачей. В случае отсутствия ошибок возвращает 0.

Примеры

Пример #1 Пример использования posix_get_last_error()

В данном примере происходит попытка завершить несуществующий процесс по его id. Попытка завершается неудачей и возвращает номер ошибки, который будет выведен.

<?php
posix_kill(999459,SIGKILL);
echo 'Your error returned was '.posix_get_last_error(); //Your error was ___
?>

Смотрите также

  • posix_strerror() - Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки


Возвращает путь текущей директории

  • « posix_get_last_error
  • posix_getegid »
  • PHP Manual
  • POSIX Функции
  • Возвращает путь текущей директории

posix_getcwd

(PHP 4, PHP 5, PHP 7)

posix_getcwd — Возвращает путь текущей директории

Описание

string posix_getcwd ( void )

Возвращает абсолютный путь рабочей директории выполняемого скрипта. В случае ошибки будет установлен её номер, который может быть обработан с помощью posix_get_last_error()

Возвращаемые значения

Возвращает string с абсолютным путём в случае успеха. В случае ошибки будет возвращено FALSE, также будет установлен номер ошибки, который может быть обработан с помощью posix_get_last_error().

Примеры

Пример #1 Пример использования posix_getcwd()

В данном примере возвращается абсолютный путь рабочей директории выполняемого скрипта.

<?php
echo 'My current working directory is '.posix_getcwd();
?>

Примечания

Замечание:

Функция завершится ошибкой в следующих случаях

  • Отсутствуют права на чтение или поиск
  • Данного пути больше не существует


Возвращает эффективный идентификатор группы текущего процесса EGID

  • « posix_getcwd
  • posix_geteuid »
  • PHP Manual
  • POSIX Функции
  • Возвращает эффективный идентификатор группы текущего процесса EGID

posix_getegid

(PHP 4, PHP 5, PHP 7)

posix_getegid — Возвращает эффективный идентификатор группы текущего процесса EGID

Описание

int posix_getegid ( void )

Возвращает эффективной идентификатор группы текущего процесса.

Возвращаемые значения

Возвращает число типа integer соответствующее эффективному идентификатору группы.

Примеры

Пример #1 Пример использования posix_getegid()

В примере программа выводит эффективный идентификатор группы процесса, меняет его с помощью функции posix_setegid() и выводит снова.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

Примечания

posix_getegid() отличается от posix_getgid() потому, что эффективный идентификатор группы может быть изменен вызванным процессом, используя posix_setegid().

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • posix_getgid() - Возвращает действительный ID группы текущего процесса GID
  • posix_setgid() - Устанавливает идентификатор группы для текущего процесса GID


Возвращает эффективный идентификатор пользователя текущего процесса EUID

  • « posix_getegid
  • posix_getgid »
  • PHP Manual
  • POSIX Функции
  • Возвращает эффективный идентификатор пользователя текущего процесса EUID

posix_geteuid

(PHP 4, PHP 5, PHP 7)

posix_geteuid — Возвращает эффективный идентификатор пользователя текущего процесса EUID

Описание

int posix_geteuid ( void )

Возвращает число, соответствующее эффективному идентификатору пользователя текущего процесса. Посмотрите функцию posix_getpwuid() для получения информации как преобразовать данное число в имя пользователя.

Возвращаемые значения

Возвращает ID пользователя как integer

Примеры

Пример #1 Пример использования posix_geteuid()

Данный пример выводит ID текущего пользователя, затем устанавливает значение для эффективного идентификатора пользователя, используя функцию posix_seteuid(), и показывает разницу между действительным и эффективным идентификаторами пользователя.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_seteuid(10000);
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10000
?>

Смотрите также

  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID
  • posix_getuid() - Возвращает фактический идентификатор пользователя текущего процесса UID
  • posix_setuid() - Устанавливает UID текущего процесса
  • POSIX руководство GETEUID(2)


Возвращает действительный ID группы текущего процесса GID

  • « posix_geteuid
  • posix_getgrgid »
  • PHP Manual
  • POSIX Функции
  • Возвращает действительный ID группы текущего процесса GID

posix_getgid

(PHP 4, PHP 5, PHP 7)

posix_getgid — Возвращает действительный ID группы текущего процесса GID

Описание

int posix_getgid ( void )

Возвращает число, соответствующее действительному ID группы текущего процесса.

Возвращаемые значения

Возвращает integer, соответствующее действительному ID группы текущего процесса.

Примеры

Пример #1 Пример использования posix_getgid()

В примере выводится действительный идентификатор группы процесса до и после того как эффективный идентификатор группы процесса был изменен.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • posix_getegid() - Возвращает эффективный идентификатор группы текущего процесса EGID
  • posix_setgid() - Устанавливает идентификатор группы для текущего процесса GID
  • POSIX руководство GETGID(2)


Возвращает информацию о группе по её ID

  • « posix_getgid
  • posix_getgrnam »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о группе по её ID

posix_getgrgid

(PHP 4, PHP 5, PHP 7)

posix_getgrgid — Возвращает информацию о группе по её ID

Описание

array posix_getgrgid ( int $gid )

Возвращает информацию о группе, используя её ID.

Список параметров

gid

Идентификатор группы.

Возвращаемые значения

Массив со следующими элементами:

Массив с информацией о группе
Элемент | Описание
name | Элемент name содержит имя группы. Это короткий, обычно менее 16 символов "дескриптор" группы, не являющийся полным именем группы.
passwd | Элемент passwd содержит пароль группы в зашифрованном виде. Часто, например в системах, использующих "shadow" файлы для хранения информации о паролях, это поле содержит строку из звёздочек.
gid | Элемент содержит ID группы и должен соответствовать gid параметру, используемому при вызове функции. Данный элемент является избыточным.
members | Этот элемент состоит из array, содержащего string. Значениями данного массива являются имена членов данной группы.

Примеры

Пример #1 Пример использования posix_getgrgid()

<?php

$groupid   = posix_getegid();
$groupinfo = posix_getgrgid($groupid);

print_r($groupinfo);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Смотрите также

  • posix_getegid() - Возвращает эффективный идентификатор группы текущего процесса EGID
  • posix_getgrnam() - Возвращает информацию о группе, используя её имя
  • filegroup() - Получает идентификатор группы файла
  • stat() - Возвращает информацию о файле
  • safe_mode_gid
  • POSIX руководство GETGRNAM(3)


Возвращает информацию о группе, используя её имя

  • « posix_getgrgid
  • posix_getgroups »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о группе, используя её имя

posix_getgrnam

(PHP 4, PHP 5, PHP 7)

posix_getgrnam — Возвращает информацию о группе, используя её имя

Описание

array posix_getgrnam ( string $name )

Возвращает информацию о группе, используя её имя.

Список параметров

name

Имя группы

Возвращаемые значения

Возвращает массив со следующими элементами:

Массив с информацией о группе
Элемент | Описание
name | Элемент name содержит имя группы. Это короткий, обычно менее 16 символов "дескриптор" группы, не являющийся действительным полным именем группы. Он должен соответствовать name параметру, используемому в данной функции. Элемент является избыточным.
passwd | Элемент passwd содержит пароль группы в зашифрованном виде. Часто, например в системах, использующих "shadow" файлы для хранения информации о паролях, это поле содержит звёздочку.
gid | Идентификатор группы, состоящий из цифр.
members | Этот элемент состоит из array, содержащего string. Значениями данного массива являются имена членов данной группы.

Примеры

Пример #1 Пример использования posix_getgrnam()

<?php

$groupinfo = posix_getgrnam("toons");

print_r($groupinfo);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Смотрите также

  • posix_getegid() - Возвращает эффективный идентификатор группы текущего процесса EGID
  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • filegroup() - Получает идентификатор группы файла
  • stat() - Возвращает информацию о файле
  • safe_mode_gid
  • POSIX руководство GETGRNAM(3)


Возвращает список групп для текущего процесса

  • « posix_getgrnam
  • posix_getlogin »
  • PHP Manual
  • POSIX Функции
  • Возвращает список групп для текущего процесса

posix_getgroups

(PHP 4, PHP 5, PHP 7)

posix_getgroups — Возвращает список групп для текущего процесса

Описание

array posix_getgroups ( void )

Возвращает список групп для текущего процесса.

Возвращаемые значения

Возвращает числовой массив, содержащий список идентификаторов групп для текущего процесса.

Примеры

Пример #1 Пример использования posix_getgroups()

<?php

$groups = posix_getgroups();

print_r($groups);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => 4
    [1] => 20
    [2] => 24
    [3] => 25
    [4] => 29
    [5] => 30
    [6] => 33
    [7] => 44
    [8] => 46
    [9] => 104
    [10] => 109
    [11] => 110
    [12] => 1000
)

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID


Возвращает логин владельца процесса

  • « posix_getgroups
  • posix_getpgid »
  • PHP Manual
  • POSIX Функции
  • Возвращает логин владельца процесса

posix_getlogin

(PHP 4, PHP 5, PHP 7)

posix_getlogin — Возвращает логин владельца процесса

Описание

string posix_getlogin ( void )

Возвращает логин пользователя, являющегося владельцем данного процесса.

Возвращаемые значения

Возвращает логин пользователя как переменную типа string.

Примеры

Пример #1 Пример использования posix_getlogin()

<?php
echo posix_getlogin(); //apache
?>

Смотрите также

  • posix_getpwnam() - Возвращает информацию о пользователе по его имени
  • POSIX руководство GETLOGIN(3)


Возвращает ID группы текущего процесса для менеджера задач

  • « posix_getlogin
  • posix_getpgrp »
  • PHP Manual
  • POSIX Функции
  • Возвращает ID группы текущего процесса для менеджера задач

posix_getpgid

(PHP 4, PHP 5, PHP 7)

posix_getpgid — Возвращает ID группы текущего процесса для менеджера задач

Описание

int posix_getpgid ( int $pid )

Возвращает идентификатор группы текущего процесса. pid или FALSE в случае возникновения ошибки.

Список параметров

pid

Идентификатор текущего процесса.

Возвращаемые значения

Возвращает идентификатор как число типа integer.

Примеры

Пример #1 Пример использования posix_getpgid()

<?php
$pid = posix_getppid();
echo posix_getpgid($pid); //35
?>

Примечания

Замечание:

Это не POSIX функция, но она совместима с BSD и System V операционными системами. Если операционная система не поддерживает данную функцию, она не будет включена при компиляции. Доступность данной функции может быть проверена с помощью function_exists().

Смотрите также

  • posix_getppid() - Возвращает идентификатор родительского процесса
  • руководство SETPGID(2)


Возвращает идентификатор группы текущего процесса

  • « posix_getpgid
  • posix_getpid »
  • PHP Manual
  • POSIX Функции
  • Возвращает идентификатор группы текущего процесса

posix_getpgrp

(PHP 4, PHP 5, PHP 7)

posix_getpgrp — Возвращает идентификатор группы текущего процесса

Описание

int posix_getpgrp ( void )

Возвращает идентификатор группы текущего процесса.

Возвращаемые значения

Возвращает идентификатор как integer.

Смотрите также

  • POSIX.1 и getpgrp(2) руководства для POSIX систем для получения более подробной информации о группах процессов.


Возвращает идентификатор текущего процесса

  • « posix_getpgrp
  • posix_getppid »
  • PHP Manual
  • POSIX Функции
  • Возвращает идентификатор текущего процесса

posix_getpid

(PHP 4, PHP 5, PHP 7)

posix_getpid — Возвращает идентификатор текущего процесса

Описание

int posix_getpid ( void )

Возвращает идентификатор текущего процесса.

Возвращаемые значения

Возвращает идентификатор как integer.

Примеры

Пример #1 Пример использования posix_getpid()

<?php
echo posix_getpid(); //8805
?>

Смотрите также

  • posix_kill() - Отправляет сигнал соответствующему процессу
  • POSIX руководство GETPID(2)


Возвращает идентификатор родительского процесса

  • « posix_getpid
  • posix_getpwnam »
  • PHP Manual
  • POSIX Функции
  • Возвращает идентификатор родительского процесса

posix_getppid

(PHP 4, PHP 5, PHP 7)

posix_getppid — Возвращает идентификатор родительского процесса

Описание

int posix_getppid ( void )

Возвращает идентификатор родительского процесса по отношению к текущему процессу.

Возвращаемые значения

Возвращает идентификатор процесса как integer.

Примеры

Пример #1 Пример использования posix_getppid()

<?php
echo posix_getppid(); //8259
?>


Возвращает информацию о пользователе по его имени

  • « posix_getppid
  • posix_getpwuid »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о пользователе по его имени

posix_getpwnam

(PHP 4, PHP 5, PHP 7)

posix_getpwnam — Возвращает информацию о пользователе по его имени

Описание

array posix_getpwnam ( string $username )

Возвращает array с информацией о переданном пользователе.

Список параметров

username

Буквенно-цифровое имя пользователя.

Возвращаемые значения

В случае успеха возвращается массив со следующими элементами, иначе возвращается FALSE.

Массив с информацией о пользователе
Элемент | Описание
name | Элемент name содержит имя пользователя. Это короткий, обычно менее 16 символов "дескриптор" пользователя, не являющийся фактическим полным именем пользователя. Должно совпадать с именем, переданным в параметре username при вызове данной функции. Элемент является избыточным.
passwd | Элемент passwd содержит пароль группы в зашифрованном виде. Часто, например в системах, использующих "shadow" файлы для хранения информации о паролях, это поле содержит звёздочку.
uid | Числовой идентификатор пользователя.
gid | Идентификатор группы пользователя. Используйте функцию posix_getgrgid() для получения имени группы и списка пользователей- её членов.
gecos | GECOS является устаревшим членом, который указывает на информационное поле в системе пакетной обработки Honeywell. Однако, это поле существует, и его содержимое формализовано в стандарте POSIX. Это поле содержит список, разделенный запятыми, и содержащий в себе полное имя пользователя, рабочий телефон, номер офиса и домашний телефон. В большинстве систем доступно только полное имя пользователя.
dir | Этот элемент содержит абсолютный путь к домашней директории пользователя.
shell | Элемент shell содержит абсолютный путь к исполняемому файлу командной оболочки пользователя по умолчанию.

Примеры

Пример #1 Пример использования posix_getpwnam()

<?php

$userinfo = posix_getpwnam("tom");

print_r($userinfo);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [gecos]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Смотрите также

  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID
  • POSIX руководство GETPWNAM(3)


Возвращает информацию о пользователе, используя его ID

  • « posix_getpwnam
  • posix_getrlimit »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о пользователе, используя его ID

posix_getpwuid

(PHP 4, PHP 5, PHP 7)

posix_getpwuid — Возвращает информацию о пользователе, используя его ID

Описание

array posix_getpwuid ( int $uid )

Возвращает array с информацией о пользователе, используя идентификатор пользователя.

Список параметров

uid

Идентификатор пользователя.

Возвращаемые значения

Возвращает ассоциативный массив со следующими элементами:

Массив с информацией о пользователе
Элемент | Описание
name | Элемент name содержит имя пользователя. Это короткий, обычно менее 16 символов "дескриптор" пользователя, не являющийся фактическим полным именем пользователя.
passwd | Элемент passwd содержит пароль группы в зашифрованном виде. Часто, например в системах, использующих "shadow" файлы для хранения информации о паролях, это поле содержит звёздочку.
uid | Числовой идентификатор пользователя, должен совпадать с параметром uid, переданном при вызове функции. Является избыточным.
gid | Идентификатор группы пользователя. Используйте функцию posix_getgrgid() для получения имени группы и списка пользователей- её членов.
gecos | GECOS является устаревшим членом, который указывает на информационное поле в системе пакетной обработки Honeywell. Однако, это поле существует, и его содержимое было формализовано в стандарте POSIX. Это поле содержит список, разделенный запятыми, и содержащий в себе полное имя пользователя, рабочий телефон, номер офиса и домашний телефон. В большинстве систем доступно только полное имя пользователя.
dir | Этот элемент содержит абсолютный путь к домашней директории пользователя.
shell | Элемент shell содержит абсолютный путь к исполняемому файлу командной оболочки пользователя по умолчанию.

Примеры

Пример #1 Пример использования posix_getpwuid()

<?php

$userinfo = posix_getpwuid(10000);

print_r($userinfo);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name]    => tom
    [passwd]  => x
    [uid]     => 10000
    [gid]     => 42
    [gecos]   => "tom,,,"
    [dir]     => "/home/tom"
    [shell]   => "/bin/bash"
)

Смотрите также

  • posix_getpwnam() - Возвращает информацию о пользователе по его имени
  • POSIX руководство GETPWNAM(3)


Возвращает информацию об ограничениях системных ресурсов

  • « posix_getpwuid
  • posix_getsid »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию об ограничениях системных ресурсов

posix_getrlimit

(PHP 4, PHP 5, PHP 7)

posix_getrlimit — Возвращает информацию об ограничениях системных ресурсов

Описание

array posix_getrlimit ( void )

posix_getrlimit() возвращает array с информацией о текущих мягких и жестких ограничениях системных ресурсов.

С каждым ресурсом ассоциированы свои мягкие и жесткие ограничения. Мягкие ограничения - это величина, которую ядро обещает обеспечить ресурсу. Жесткие ограничения - это величина, характеризующая потолок мягких ресурсов. Непривилегированный процесс может управлять только своими мягкими ограничениями, выставляя их от 0 до величины жесткого ограничения.

Возвращаемые значения

Возвращает ассоциативный array, каждый элемент которого соответствует определенному ограничению. Каждый лимит имеет мягкое и жесткое ограничения.

Список возможных ограничений
Ограничение | Описание ограничения
core | Максимальный размер системного файла. В случае некорректного завершения программы, операционная система завершает этот процесс и создает системный файл с дампом состояния программы, чтобы программисты могли разобраться в причинах произошедшего. Если данное ограничение установлено в 0, то системные файлы не создаются. Если размер системного файла превышает этот предел, то он обрезается до указанного размера.
totalmem | Максимальный размер памяти, доступной процессу, в байтах.
virtualmem | Максимальный размер виртуальной памяти, доступной процессу, в байтах.
data | Максимальный размер сегмента данных для процесса, в байтах.
stack | Максимальный размер стека процесса в байтах.
rss | Максимальное количество виртуальных страниц в оперативной памяти
maxproc | Максимальное количество процессов, которое может быть создано для отдельного действительного ID пользователя, вызвавшего процесс.
memlock | Максимальный объем памяти в байтах, который может быть заблокирован в RAM
cpu | Количество процессорного времени, доступного для использования в CPU.
filesize | Максимальный размер сегмента данных для процесса, в байтах.
openfiles | На один больше, чем доступное максимальное количество открытых файловых дескрипторов.

Примеры

Пример #1 Пример использования posix_getrlimit()

<?php

$limits = posix_getrlimit();

print_r($limits);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [soft core] => 0
    [hard core] => unlimited
    [soft data] => unlimited
    [hard data] => unlimited
    [soft stack] => 8388608
    [hard stack] => unlimited
    [soft totalmem] => unlimited
    [hard totalmem] => unlimited
    [soft rss] => unlimited
    [hard rss] => unlimited
    [soft maxproc] => unlimited
    [hard maxproc] => unlimited
    [soft memlock] => unlimited
    [hard memlock] => unlimited
    [soft cpu] => unlimited
    [hard cpu] => unlimited
    [soft filesize] => unlimited
    [hard filesize] => unlimited
    [soft openfiles] => 1024
    [hard openfiles] => 1024
)

Смотрите также

  • руководство GETRLIMIT(2)
  • posix_setrlimit() - Устанавливает пределы системных ресурсов


Возвращает текущий SID процесса

  • « posix_getrlimit
  • posix_getuid »
  • PHP Manual
  • POSIX Функции
  • Возвращает текущий SID процесса

posix_getsid

(PHP 4, PHP 5, PHP 7)

posix_getsid — Возвращает текущий SID процесса

Описание

int posix_getsid ( int $pid )

Возвращает идентификатор сессии процесса pid. Сессионным идентификатором процесса является идентификатор процесса лидера сеанса.

Список параметров

pid

Идентификатор процесса. Если установлено в 0, подразумевается текущий процесс. Если передан некорректный pid, то будет возвращено FALSE. Также будет установлен номер ошибки, который можно обработать с помощью функции posix_get_last_error().

Возвращаемые значения

Возвращает идентификатор как integer.

Примеры

Пример #1 Пример использования posix_getsid()

<?php
$pid = posix_getpid();
echo posix_getsid($pid); //8805
?>

Смотрите также

  • posix_getpgid() - Возвращает ID группы текущего процесса для менеджера задач
  • posix_setsid() - Делает текущий процесс лидером сессии
  • POSIX руководство GETSID(2)


Возвращает фактический идентификатор пользователя текущего процесса UID

  • « posix_getsid
  • posix_initgroups »
  • PHP Manual
  • POSIX Функции
  • Возвращает фактический идентификатор пользователя текущего процесса UID

posix_getuid

(PHP 4, PHP 5, PHP 7)

posix_getuid — Возвращает фактический идентификатор пользователя текущего процесса UID

Описание

int posix_getuid ( void )

Возвращает число, соответствующее действительному ID пользователю текущего процесса.

Возвращаемые значения

Возвращает ID пользователя как integer

Примеры

Пример #1 Пример использования posix_getuid()

<?php
echo posix_getuid(); //10000
?>

Смотрите также

  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID
  • POSIX руководство GETUID(2)


Определяет уровень доступа для группы

  • « posix_getuid
  • posix_isatty »
  • PHP Manual
  • POSIX Функции
  • Определяет уровень доступа для группы

posix_initgroups

(PHP 5 >= 5.2.0, PHP 7)

posix_initgroups — Определяет уровень доступа для группы

Описание

bool posix_initgroups ( string $name , int $base_group_id )

Определяет уровень доступа группы для пользователя, указанного в параметрах.

Список параметров

name

Имя пользователя, для которого определяется уровень доступа.

base_group_id

Идентификатор базовой группы из файла password.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • Руководство Unix initgroups(3).


Определяет является ли файловый дескриптор интерактивным терминалом

  • « posix_initgroups
  • posix_kill »
  • PHP Manual
  • POSIX Функции
  • Определяет является ли файловый дескриптор интерактивным терминалом

posix_isatty

(PHP 4, PHP 5, PHP 7)

posix_isatty — Определяет является ли файловый дескриптор интерактивным терминалом

Описание

bool posix_isatty ( mixed $fd )

Определяет является ли файловый дескриптор fd ссылкой на валидный терминал.

Список параметров

fd

Файловый дескриптор, который ожидается в виде или ресурса resource или целого числа integer. Под integer подразумевается файловый дескриптор, который можно передать непосредственно в базовый системный вызов.

В большинстве случаев, вам нужно будет передавать файловый resource.

Возвращаемые значения

Возвращает TRUE если fd является открытым файловым дескриптором, связанным с терминалом и FALSE в остальных случаях.

Смотрите также

  • posix_ttyname() - Определяет имя терминального устройства


Отправляет сигнал соответствующему процессу

  • « posix_isatty
  • posix_mkfifo »
  • PHP Manual
  • POSIX Функции
  • Отправляет сигнал соответствующему процессу

posix_kill

(PHP 4, PHP 5, PHP 7)

posix_kill — Отправляет сигнал соответствующему процессу

Описание

bool posix_kill ( int $pid , int $sig )

Отправляет сигнал sig процессу с идентификатором pid.

Список параметров

pid

Идентификатор процесса.

sig

Одна из PCNTL констант сигналов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • kill(2) руководство для POSIX систем, которые содержат дополнительную информацию об отрицательных идентификаторах процессов, специальном идентификаторе 0, специальном идентификаторе -1, и сигнале с идентификатором 0.


Создает специальный fifo файл (именованный канал- pipe)

  • « posix_kill
  • posix_mknod »
  • PHP Manual
  • POSIX Функции
  • Создает специальный fifo файл (именованный канал- pipe)

posix_mkfifo

(PHP 4, PHP 5, PHP 7)

posix_mkfifo — Создает специальный fifo файл (именованный канал- pipe)

Описание

bool posix_mkfifo ( string $pathname , int $mode )

posix_mkfifo() создает специальный FIFO файл, который существует в файловой системе и выступает в качестве двунаправленной связи для процессов.

Список параметров

pathname

Путь к FIFO файлу.

mode

Второй параметр mode должен быть представлен в восьмеричной нотации (например 0644). Это уровень прав для вновь созданного FIFO файла, также зависит от настроек текущего umask(). Права на созданный файл будут определяться как результат (mode & ~umask).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Когда опция safe mode включена, PHP проверяет, имеют ли файлы/каталоги, с которыми вы собираетесь работать, такой же UID (владельца), как и выполняемый скрипт.


Создает специальный или обычный файл (POSIX.1)

  • « posix_mkfifo
  • posix_setegid »
  • PHP Manual
  • POSIX Функции
  • Создает специальный или обычный файл (POSIX.1)

posix_mknod

(PHP 5 >= 5.1.0, PHP 7)

posix_mknod — Создает специальный или обычный файл (POSIX.1)

Описание

bool posix_mknod ( string $pathname , int $mode [, int $major = 0 [, int $minor = 0 ]] )

Создает специальный или обычный файл.

Список параметров

pathname

Путь и имя создаваемого файла

mode

Данный параметр получается с помощью побитового ИЛИ между типом файла (одной из следующих констант: POSIX_S_IFREG, POSIX_S_IFCHR, POSIX_S_IFBLK, POSIX_S_IFIFO или POSIX_S_IFSOCK) и правами доступа.

major

Старший номер устройства (обязательный параметр при использовании констант S_IFCHR или S_IFBLK).

minor

Младший номер устройства.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования posix_mknod()

<?php

$file = '/tmp/tmpfile';  // file name
$type = POSIX_S_IFBLK;   // file type
$permissions = 0777;     // octal
$major = 1;
$minor = 8;              // /dev/random

if (!posix_mknod($file, $type | $permissions, $major, $minor)) {
    die('Error ' . posix_get_last_error() . ': ' . posix_strerror(posix_get_last_error()));
}

?>

Смотрите также

  • posix_mkfifo() - Создает специальный fifo файл (именованный канал- pipe)


Устанавливает эффективный идентификатор группы для текущего процесса EGID

  • « posix_mknod
  • posix_seteuid »
  • PHP Manual
  • POSIX Функции
  • Устанавливает эффективный идентификатор группы для текущего процесса EGID

posix_setegid

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

posix_setegid — Устанавливает эффективный идентификатор группы для текущего процесса EGID

Описание

bool posix_setegid ( int $gid )

Устанавливает эффективный идентификатор группы для текущего процесса. Это привилегированная функция и требует соответствующих прав (как правило прав суперпользователя root) в системе, чтобы иметь возможность выполнять её.

Список параметров

gid

Устанавливаемый эффективный идентификатор группы для текущего процесса

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования posix_setegid()

Данный пример выводит эффективный идентификатор группы процесса до и после изменения.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setegid(40);
echo 'My real group id is '.posix_getgid(); //20
echo 'My effective group id is '.posix_getegid(); //40
?>

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • posix_getgid() - Возвращает действительный ID группы текущего процесса GID
  • posix_setgid() - Устанавливает идентификатор группы для текущего процесса GID


Устанавливает эффективный идентификатор пользователя для текущего процесса EUID

  • « posix_setegid
  • posix_setgid »
  • PHP Manual
  • POSIX Функции
  • Устанавливает эффективный идентификатор пользователя для текущего процесса EUID

posix_seteuid

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

posix_seteuid — Устанавливает эффективный идентификатор пользователя для текущего процесса EUID

Описание

bool posix_seteuid ( int $uid )

Устанавливает эффективный идентификатор пользователя. Это привилегированная функция и требует соответствующих прав (как правило прав суперпользователя root) чтобы иметь возможность выполнить её.

Список параметров

uid

Устанавливаемый идентификатор пользователя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • posix_setgid() - Устанавливает идентификатор группы для текущего процесса GID


Устанавливает идентификатор группы для текущего процесса GID

  • « posix_seteuid
  • posix_setpgid »
  • PHP Manual
  • POSIX Функции
  • Устанавливает идентификатор группы для текущего процесса GID

posix_setgid

(PHP 4, PHP 5, PHP 7)

posix_setgid — Устанавливает идентификатор группы для текущего процесса GID

Описание

bool posix_setgid ( int $gid )

Устанавливает фактический идентификатор группы текущего процесса. Это привилегированная функция и требует соответствующих прав (обычно прав суперпользователя root) в системе, чтобы иметь возможность выполнить её. Правильным является следующий порядок вызова функций: сначала posix_setgid(), затем posix_setuid().

Замечание:

Если функция будет вызвана суперпользователем, то также будет установлен и эффективный идентификатор группы пользователя.

Список параметров

gid

Идентификатор группы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования posix_setgid()

Код ниже выводит эффективный идентификатор группы до и после изменения.

<?php
echo 'My real group id is '.posix_getgid(); //20
posix_setgid(40);
echo 'My real group id is '.posix_getgid(); //40
echo 'My effective group id is '.posix_getegid(); //40
?>

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID
  • posix_getgid() - Возвращает действительный ID группы текущего процесса GID


Устанавливает идентификатор группы процесса для менеджера задач

  • « posix_setgid
  • posix_setrlimit »
  • PHP Manual
  • POSIX Функции
  • Устанавливает идентификатор группы процесса для менеджера задач

posix_setpgid

(PHP 4, PHP 5, PHP 7)

posix_setpgid — Устанавливает идентификатор группы процесса для менеджера задач

Описание

bool posix_setpgid ( int $pid , int $pgid )

Добавляет к процессу pid идентификатор группы pgid.

Список параметров

pid

Идентификатор процесса.

pgid

Идентификатор группы процесса.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • Для получения более полной информации о процессах и управлении заданиями обратитесь к POSIX.1 и setsid(2) руководству в POSIX системах.


Устанавливает пределы системных ресурсов

  • « posix_setpgid
  • posix_setsid »
  • PHP Manual
  • POSIX Функции
  • Устанавливает пределы системных ресурсов

posix_setrlimit

(PHP 7)

posix_setrlimit — Устанавливает пределы системных ресурсов

Описание

bool posix_setrlimit ( int $resource , int $softlimit , int $hardlimit )

posix_setrlimit() устанавливает жесткие и мягкие пределы заданных системных ресурсов.

С каждым ресурсом ассоциированы свои мягкие и жесткие ограничения. Мягкие ограничения - это величина, которую ядро обещает обеспечить ресурсу. Жесткие ограничения - это величина, характеризующая потолок мягких ресурсов. Непривилегированный процесс может управлять только своими мягкими ограничениями, выставляя их от 0 до величины жесткого ограничения.

Список параметров

resource

Константа предела ресурса отвечающая за предел, который должен быть установлен.

softlimit

Мягкий предел, любой требуемый предел, или POSIX_RLIMIT_INFINITY.

hardlimit

Жесткий предел, любой требуемый предел, или POSIX_RLIMIT_INFINITY.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • man page SETRLIMIT(2)
  • posix_getrlimit() - Возвращает информацию об ограничениях системных ресурсов


Делает текущий процесс лидером сессии

  • « posix_setrlimit
  • posix_setuid »
  • PHP Manual
  • POSIX Функции
  • Делает текущий процесс лидером сессии

posix_setsid

(PHP 4, PHP 5, PHP 7)

posix_setsid — Делает текущий процесс лидером сессии

Описание

int posix_setsid ( void )

Делает текущий процесс лидером сессии.

Возвращаемые значения

Возвращает идентификатор сессии или -1 в случае ошибки.

Смотрите также

  • Стандарт POSIX.1 руководство по setsid(2) в POSIX совместимых системах для получения более полной информации о группах процессов и управлении заданиями.


Устанавливает UID текущего процесса

  • « posix_setsid
  • posix_strerror »
  • PHP Manual
  • POSIX Функции
  • Устанавливает UID текущего процесса

posix_setuid

(PHP 4, PHP 5, PHP 7)

posix_setuid — Устанавливает UID текущего процесса

Описание

bool posix_setuid ( int $uid )

Устанавливает фактический идентификатор пользователя текущего процесса. Это привилегированный процесс и требует соответствующих прав (обычно прав суперпользователя root) в системе для возможности выполнить эту функцию.

Список параметров

uid

Идентификатор пользователя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования posix_setuid()

Данный код выводит текущий идентификатор пользователя, затем изменяет его.

<?php
echo posix_getuid()."\n"; //10001
echo posix_geteuid()."\n"; //10001
posix_setuid(10000);
echo posix_getuid()."\n"; //10000
echo posix_geteuid()."\n"; //10000
?>

Смотрите также

  • posix_setgid() - Устанавливает идентификатор группы для текущего процесса GID
  • posix_seteuid() - Устанавливает эффективный идентификатор пользователя для текущего процесса EUID
  • posix_getuid() - Возвращает фактический идентификатор пользователя текущего процесса UID
  • posix_geteuid() - Возвращает эффективный идентификатор пользователя текущего процесса EUID


Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки

  • « posix_setuid
  • posix_times »
  • PHP Manual
  • POSIX Функции
  • Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки

posix_strerror

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

posix_strerror — Возвращает системное сообщение об ошибке, основываясь на полученном номере ошибки

Описание

string posix_strerror ( int $errno )

Возвращает POSIX системное сообщение об ошибке, связанное с полученным в параметре errno номером. Вы можете получить параметр errno с помощью вызова функции posix_get_last_error().

Список параметров

errno

POSIX номер ошибки, полученный из функции posix_get_last_error(). Если передано значение 0, то будет возвращено сообщение "Success".

Возвращаемые значения

Возвращает строку с сообщением об ошибке.

Примеры

Пример #1 Пример использования posix_strerror()

Данный скрипт пытается завершить несуществующий процесс, в следствие чего будет выведено соответствующее сообщение об ошибке.

<?php
posix_kill(50,SIGKILL);
echo posix_strerror(posix_get_last_error())."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

No such process

Смотрите также

  • posix_get_last_error() - Возвращает номер ошибки, которая произошла в последней posix функции, завершившейся неудачей


Возвращает информацию об использовании процессорного времени

  • « posix_strerror
  • posix_ttyname »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию об использовании процессорного времени

posix_times

(PHP 4, PHP 5, PHP 7)

posix_times — Возвращает информацию об использовании процессорного времени

Описание

array posix_times ( void )

Возвращает информацию об уровне загрузки CPU.

Возвращаемые значения

Возвращает массив строк с информацией об текущем использовании CPU, который включает следующее

  • ticks - число тактов, прошедшее с момента перезагрузки.
  • utime - время пользователя, затраченное текущим процессом.
  • stime - системное время, затраченное текущим процессом.
  • cutime - время пользователя, затраченное текущим процессом и его дочерними процессами.
  • cstime - системное время, затраченное текущим процессом и его дочерними процессами..

Примечания

Внимание

Данная функция не является надежной в использовании и может вернуть неправильные значения.

Примеры

Пример #1 Пример использования posix_times()

<?php

$times = posix_times();

print_r($times);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [ticks] => 25814410
    [utime] => 1
    [stime] => 1
    [cutime] => 0
    [cstime] => 0
)


Определяет имя терминального устройства

  • « posix_times
  • posix_uname »
  • PHP Manual
  • POSIX Функции
  • Определяет имя терминального устройства

posix_ttyname

(PHP 4, PHP 5, PHP 7)

posix_ttyname — Определяет имя терминального устройства

Описание

string posix_ttyname ( mixed $fd )

Возвращает string, содержащую абсолютный путь до текущего терминального устройства, которое открыто и связано с файловым дескриптором fd.

Список параметров

fd

Файловый дескриптор, который ожидается в виде или ресурса resource или целого числа integer. Под integer подразумевается файловый дескриптор, который можно передать непосредственно в базовый системный вызов.

В большинстве случаев, вам нужно будет передавать файловый resource.

Возвращаемые значения

В случае успеха возвращает string, содержащую абсолютный путь до терминала, связанного с файловым дескриптором fd. В случае неудачи возвращает FALSE


Возвращает информацию о системе

  • « posix_ttyname
  • Запуск программы »
  • PHP Manual
  • POSIX Функции
  • Возвращает информацию о системе

posix_uname

(PHP 4, PHP 5, PHP 7)

posix_uname — Возвращает информацию о системе

Описание

array posix_uname ( void )

Возвращает информацию о системе.

Posix требует, чтобы разработчики не полагались на определенный формат различных значений, например предположение, что номер релиза должен состоять из трех чисел. Тоже касается и другой информации, возвращаемой данной функцией.

Возвращаемые значения

Возвращает массив с информацией о системе, включая следующие элементы:

  • sysname - название операционной системы (например Linux)
  • nodename - системное имя (например valiant)
  • release - номер релиза (например 2.2.10)
  • version - версия операционной системы (например #4 Tue Jul 20 17:01:36 MEST 1999)
  • machine - архитектура системы (например i586)
  • domainname - DNS имя домена (например example.com)

domainname это GNU расширение, а не часть POSIX.1, поэтому это поле доступно только для GNU систем или при использовании библиотеки GNU libc.

Примеры

Пример #1 Пример использования posix_uname()

<?php
$uname=posix_uname();
print_r($uname);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [sysname] => Linux
    [nodename] => funbox
    [release] => 2.6.20-15-server
    [version] => #2 SMP Sun Apr 15 07:41:34 UTC 2007
    [machine] => i686
)


Запуск программ в системе

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции запуска программ
    • escapeshellarg — Экранирует строку для того, чтобы она могла быть использована как аргумент командной строки
    • escapeshellcmd — Экранирует метасимволы командной строки
    • exec — Исполняет внешнюю программу
    • passthru — Выполняет внешнюю программу и отображает необработанный вывод
    • proc_close — Завершает процесс, открытый при помощи функции proc_open и возвращает код завершения этого процесса
    • proc_get_status — Получает информацию о процессе, открытом при помощи функции proc_open
    • proc_nice — Изменяет приоритет текущего процесса
    • proc_open — Выполняет команду и открывает указатель на файл для ввода/вывода
    • proc_terminate — Уничтожает процесс, открытый при помощи функции proc_open
    • shell_exec — Выполняет команду через шелл и возвращает полный вывод в виде строки
    • system — Выполняет внешнюю программу и отображает её вывод


Введение

Эти функции являются средствами запуска команд в системе и средствами защиты таких команд.

Замечание:

Все функции запуска вызывают команды через cmd.exe в Windows. Следовательно, пользователь, вызывающий эти функции должен иметь соответствующие привилегии для запуска команды. Единственное исключение - это функция proc_open() с опцией bypass_shell.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение задает ресурс процесса, возвращаемый функцией proc_open().


  • « Типы ресурсов
  • Функции запуска программ »
  • PHP Manual
  • Запуск программы
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции запуска программ

Примечания

Внимание

Открытые файлы с блокировкой (особенно открытые сессии) должны быть закрыты до выполнения программы в фоне.

Смотрите также

Эти функции также тесно связаны с оператором обратные кавычки (``). Примите во внимание, что в режиме "безопасный режим" вам необходимо учитывать директиву safe_mode_exec_dir.

Содержание

  • escapeshellarg — Экранирует строку для того, чтобы она могла быть использована как аргумент командной строки
  • escapeshellcmd — Экранирует метасимволы командной строки
  • exec — Исполняет внешнюю программу
  • passthru — Выполняет внешнюю программу и отображает необработанный вывод
  • proc_close — Завершает процесс, открытый при помощи функции proc_open и возвращает код завершения этого процесса
  • proc_get_status — Получает информацию о процессе, открытом при помощи функции proc_open
  • proc_nice — Изменяет приоритет текущего процесса
  • proc_open — Выполняет команду и открывает указатель на файл для ввода/вывода
  • proc_terminate — Уничтожает процесс, открытый при помощи функции proc_open
  • shell_exec — Выполняет команду через шелл и возвращает полный вывод в виде строки
  • system — Выполняет внешнюю программу и отображает её вывод


Экранирует строку для того, чтобы она могла быть использована как аргумент командной строки

  • « Функции запуска программ
  • escapeshellcmd »
  • PHP Manual
  • Функции запуска программ
  • Экранирует строку для того, чтобы она могла быть использована как аргумент командной строки

escapeshellarg

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

escapeshellarg — Экранирует строку для того, чтобы она могла быть использована как аргумент командной строки

Описание

string escapeshellarg ( string $arg )

Функция escapeshellarg() добавляет одинарные кавычке вокруг строки и добавляет кавычки/экранирует любые существующие одинарные кавычки, позволяя вам передать строку непосредственно шелл-функции и рассматривать её как один безопасный аргумент. Эта функция должна быть использована для того, чтобы экранировать отдельные аргументы для шелл-функций, полученные из ввода пользователя. Экранирование аргумента необходимо в таких шелл-функциях как exec(), system() и оператор "обратный апостроф".

В Windows, escapeshellarg() заменяет восклицательный знак, знак процента (позднее связывание переменных) и двойные кавычки на пробелы и оборачивает всю строку в двойные кавычки.

Список параметров

arg

Аргумент, который будет экранирован.

Возвращаемые значения

Экранированная строка.

Примеры

Пример #1 Пример использования escapeshellarg()

<?php
system('ls '.escapeshellarg($dir));
?>

Список изменений

Версия | Описание
5.6.0 | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
5.4.43, 5.5.27, 5.6.11 | Восклицательный знак заменяется пробелом.

Смотрите также

  • escapeshellcmd() - Экранирует метасимволы командной строки
  • exec() - Исполняет внешнюю программу
  • popen() - Открывает файловый указатель процесса
  • system() - Выполняет внешнюю программу и отображает её вывод
  • оператор "обратный апостроф"


Экранирует метасимволы командной строки

  • « escapeshellarg
  • exec »
  • PHP Manual
  • Функции запуска программ
  • Экранирует метасимволы командной строки

escapeshellcmd

(PHP 4, PHP 5, PHP 7)

escapeshellcmd — Экранирует метасимволы командной строки

Описание

string escapeshellcmd ( string $command )

Команда escapeshellcmd() экранирует любые символы в строке, которые могут быть использованы для обмана шелл-команд при выполнении произвольных команд. Эта функция должна быть использована, чтобы убедиться, что любые данные, вводимые пользователем, экранированы перед передачей их функции exec() или system(), или оператору "обратный апостроф".

Следующие символы будут экранированы при помощи обратного слэша: &#;`|*?~<>^()[]{}$\, \x0A и \xFF. Символы ' и " экранируются только в том случае, если они встречаются не попарно. В Windows все эти символы, плюс ! и % заменяются пробелом.

Список параметров

command

Команда, которая будет экранирована.

Возвращаемые значения

Экранированая строка.

Примеры

Пример #1 Пример использования escapeshellcmd()

<?php
// Мы намеренно допускаем здесь произвольное количество аргументов.
$command = './configure '.$_POST['configure_options'];

$escaped_command = escapeshellcmd($command);

system($escaped_command);
?>

Внимание

Функцию escapeshellcmd() следует использовать над всей командной строкой, но она все еще позволяет атакующему передать произвольное количество аргументов. Для экранирования одиночного аргумента вместо нее необходимо использовать функцию escapeshellarg().

Список изменений

Версия | Описание
5.6.0 | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
5.4.43, 5.5.27, 5.6.11 | Восклицательные знаки заменяются пробелами.

Смотрите также

  • escapeshellarg() - Экранирует строку для того, чтобы она могла быть использована как аргумент командной строки
  • exec() - Исполняет внешнюю программу
  • popen() - Открывает файловый указатель процесса
  • system() - Выполняет внешнюю программу и отображает её вывод
  • backtick operator


Исполняет внешнюю программу

  • « escapeshellcmd
  • passthru »
  • PHP Manual
  • Функции запуска программ
  • Исполняет внешнюю программу

exec

(PHP 4, PHP 5, PHP 7)

exec — Исполняет внешнюю программу

Описание

string exec ( string $command [, array &$output [, int &$return_var ]] )

exec() исполняет команду command.

Список параметров

command

Команда (имя программы с аргументами - прим.пер.), которая будет исполнена.

output

Если параметр output указан, то массив будет заполнен строками вывода программы. Завершающие пробелы, такие как \n (перевод строки - прим.пер.), включены в массив не будут. Обратите внимание, что если массив уже содержит какие-либо элементы перед вызовом функции exec(), то вывод команды будет дописан в конец массива. Если же вы не хотите дополнять предыдущее содержимое массива, следует вызвать функцию unset() с именем массива в качестве аргумента перед его передачей в качестве аргумента функции exec().

return_var

Если заданы оба параметра return_var и output, то при выходе эта переменная будет содержать статус завершения внешней программы.

Возвращаемые значения

Последняя строка вывода при исполнении заданной команды. Если требуется исполнить команду и получить все данные программы обратно без какой-либо обработки, следует использовать функцию passthru().

Для получения вывода исполняемой программы, убедитесь, что параметр output инициализирован и используется.

Примеры

Пример #1 Пример функции exec()

<?php
// выводит имя пользователя, от имени которого запущен процесс php/httpd
// (применимо к системам с командой "whoami" в системном пути)
echo exec('whoami');
?>

Примечания

Внимание

Если вы собираетесь передавать функции пользовательские данные, используйте функции escapeshellarg() или escapeshellcmd() для того, чтобы пользователи не смогли обмануть систему, запустив произвольную команду.

Замечание:

Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути к исполняемому файлу.

Внимание

В случае работы в безопасном режиме, строка с командой экранируется с помощью escapeshellcmd(). Таким образом echo y | echo x становится echo y \| echo x.

Смотрите также

  • system() - Выполняет внешнюю программу и отображает её вывод
  • passthru() - Выполняет внешнюю программу и отображает необработанный вывод
  • escapeshellcmd() - Экранирует метасимволы командной строки
  • pcntl_exec() - Executes specified program in current process space
  • backtick operator


Выполняет внешнюю программу и отображает необработанный вывод

  • « exec
  • proc_close »
  • PHP Manual
  • Функции запуска программ
  • Выполняет внешнюю программу и отображает необработанный вывод

passthru

(PHP 4, PHP 5, PHP 7)

passthru — Выполняет внешнюю программу и отображает необработанный вывод

Описание

void passthru ( string $command [, int &$return_var ] )

Функция passthru() похожа на функцию exec() в том, что она выполняет команду command. Эта функция должна быть использована вместо функции exec() или system() когда вывод команды Unix является двоичными данными, которые необходимо передать непосредственно в браузер. Стандартное использование этой функции - выполнить команду, такую, как утилиты pbmplus, которые выводят непосредственно поток изображения. Установив Content-type в image/gif и затем вызвав программу pbmplus для вывода gif-рисунка, вы можете создать PHP-скрипты, которые выводят изображения непосредственно в браузер.

Список параметров

command

Команда, которая будет выполнена.

return_var

Если присутствует аргумент return_var, то код возврата Unix-команды будет помещён здесь.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Внимание

Если вы собираетесь передавать функции пользовательские данные, используйте функции escapeshellarg() или escapeshellcmd() для того, чтобы пользователи не смогли обмануть систему, запустив произвольную команду.

Замечание:

Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути к исполняемому файлу.

Внимание

В случае работы в безопасном режиме, строка с командой экранируется с помощью escapeshellcmd(). Таким образом echo y | echo x становится echo y \| echo x.

Смотрите также

  • exec() - Исполняет внешнюю программу
  • system() - Выполняет внешнюю программу и отображает её вывод
  • popen() - Открывает файловый указатель процесса
  • escapeshellcmd() - Экранирует метасимволы командной строки
  • оператор "обратный апостроф"


Завершает процесс, открытый при помощи функции proc_open и возвращает код завершения этого процесса

  • « passthru
  • proc_get_status »
  • PHP Manual
  • Функции запуска программ
  • Завершает процесс, открытый при помощи функции proc_open и возвращает код завершения этого процесса

proc_close

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

proc_close — Завершает процесс, открытый при помощи функции proc_open() и возвращает код завершения этого процесса

Описание

int proc_close ( resource $process )

Функция proc_close() похожа на функцию pclose(), за исключением того, что она работает только с процессами, открытыми при помощи функции proc_open(). Функция proc_close() ожидает завершения процесса и возвращает его код возврата. Если вы открывали пайпы у этого процесса, вы должны закрыть их при помощи функции fclose() перед тем, как вызывать эту функцию для того, чтобы избежать полной остановки программы: дочерние процессы могут быть неспособны завершиться, если пайпы открыты.

Список параметров

process

Дескриптор типа resource, открытый при помощи proc_open(), который будет закрыт.

Возвращаемые значения

Возвращает код завершения процесса, который был запущен. В случае ошибки возвращается -1.

Замечание:

Если PHP собран с опцией --enable-sigchild, возвращаемое значение этой функции не определено.


Получает информацию о процессе, открытом при помощи функции proc_open

  • « proc_close
  • proc_nice »
  • PHP Manual
  • Функции запуска программ
  • Получает информацию о процессе, открытом при помощи функции proc_open

proc_get_status

(PHP 5, PHP 7)

proc_get_status — Получает информацию о процессе, открытом при помощи функции proc_open()

Описание

array proc_get_status ( resource $process )

proc_get_status() получает данные о процессе, открытом при помощи функции proc_open().

Список параметров

process

Полученный при помощи функции proc_open() ресурс resource, который будет исследоваться.

Возвращаемые значения

Массив array с полученной информацией в случае успеха и FALSE в случае неудачи. Получаемый массив содержит следующие элементы:

элемент | тип | описание
command | string | Строка с командой, которая была передана функции proc_open().
pid | int | идентификатор процесса
running | bool | TRUE если процесс всё ещё работает, FALSE если он был завершён.
signaled | bool | TRUE если дочерний процесс был завершён сигналом. Всегда устанавливается в FALSE в Windows.
stopped | bool | TRUE если дочерний процесс был остановлен сигналом. Всегда устанавливается в FALSE в Windows.
exitcode | int | Код возврата, передаваемый процессом (имеет значение только в том случае, если running равно FALSE). Только первый вызов этой функции возвратит реальное значение, последующие вызовы будут возвращать -1.
termsig | int | Номер сигнала, который заставил дочерний процесс прекратить своё выполнение (имеет значение только в том случае, если signaled равно TRUE).
stopsig | int | Номер сигнала, который заставил дочерний процесс остановить своё выполнение (имеет значение только в том случае, если stopped равно TRUE).

Смотрите также

  • proc_open() - Выполняет команду и открывает указатель на файл для ввода/вывода


Изменяет приоритет текущего процесса

  • « proc_get_status
  • proc_open »
  • PHP Manual
  • Функции запуска программ
  • Изменяет приоритет текущего процесса

proc_nice

(PHP 5, PHP 7)

proc_nice — Изменяет приоритет текущего процесса

Описание

bool proc_nice ( int $increment )

proc_nice() изменяет приоритет текущего процесса на значение, указанное в параметре increment. Положительное значение параметра increment будет уменьшать приоритет текущего процесса, а отрицательное значение параметра increment будет увеличивать приоритет.

Функция proc_nice() не связана с функцией proc_open() и к относящимся к ней функциям каким-либо образом.

Список параметров

increment

Новое значение приоритета процесса. Может отличаться на разных платформах.

В Unix, чем ниже эта величина, например -20, тем выше приоритет процесса.

в Windows, параметр increment может принимать такие значения:

Класс приоритета | Допустимые значения
Высокий приоритет | increment < -9
Приоритет выше нормального | increment < -4
Нормальный приоритет | increment < 5 & increment > -5
Приоритет ниже нормального | increment > 5
Приоритет ожидения | increment > 9

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В случае, если происходит ошибка, например, пользователь не имеет прав на изменение приоритета, также генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Установка высокого приоритета с помощью proc_open()

<?php
// Наивысший приоритет
proc_nice(-20)
?>

Список изменений

Версия | Описание
7.2.0 | Эта функция стала доступна в Windows.

Примечания

Замечание: Доступность

Функция proc_nice() будет доступна только в том случае, если ваша операционная система её поддерживает. Поддержку 'nice' имеют: SVr4, SVID EXT, AT&T, X/OPEN, BSD 4.3.

Замечание: Только Windows

В Windows эта функция изменяет приоритет текущего процесса, даже если PHP был собран как потокобезопасный.


Выполняет команду и открывает указатель на файл для ввода/вывода

  • « proc_nice
  • proc_terminate »
  • PHP Manual
  • Функции запуска программ
  • Выполняет команду и открывает указатель на файл для ввода/вывода

proc_open

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

proc_open — Выполняет команду и открывает указатель на файл для ввода/вывода

Описание

resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]] )

proc_open() аналогична popen() но предоставляет намного больше контроля над исполнением программы.

Список параметров

cmd

Команда для выполнения

descriptorspec

Массив, ключи которого представляют собой номер дескриптора, а значение описывает, как PHP должен передать этот дескриптор дочернему процессу. 0 - stdin, 1 - stdout и 2 - stderr.

Каждый элемент может быть:

  • Массивом, описывающим канал (pipe) для передачи процессу. Первый элемент это дескриптор типа, второй - настройка для выбранного типа. Возможные типы: pipe (второй элемент либо r для передачи процессу стороны канала для чтения, либо w для передачи стороны записи) и file (второй элемент - имя файла).
  • Ресурсом потока, представляющим дескриптор файла (например, открытый файл, сокет, STDIN).

Номера дескрипторов не ограничены только 0, 1 и 2 - вы можете назначить любой действительный номер дескриптора и он будет передан дочернему процессу. Это позволяет скрипту взаимодействовать с другими скриптами, работающими, как параллельные процессы. В частности, таким образом можно передавать данные, требующие защиты, в программы вроде PGP, GPG и openssl более безопасно. Также это может оказаться полезным для чтения статусной информации, предоставляемой этими программами на вспомогательных файловых дескрипторах.

pipes

Будет задан массивом указателей на файлы, соответствующие созданным каналам передачи данных PHP.

cwd

Рабочая директория команды. Это должен быть абсолютный путь к директории или NULL, если требуется использовать директорию по умолчанию (рабочая директория текущего PHP процесса).

env

Массив переменных окружения для запускаемой команды или NULL, если требуется использовать то же окружение, что и у текущего PHP процесса.

other_options

Позволяет задать дополнительные настройки. На данный момент поддерживаются следующие настройки:

  • suppress_errors (только для Windows): при установке в TRUE не будут показываться ошибки, возникающие в ходе работы функции
  • bypass_shell (только для Windows): при установке в TRUE процесс будет запущен в обход оболочки cmd.exe

Возвращаемые значения

Возвращает ресурс, представляющий процесс. Этот ресурс необходимо освобождать функцией proc_close() по завершении работы с ним. В случае ошибки возвращает FALSE.

Список изменений

Версия | Описание
5.2.1 | Настройка bypass_shell добавлена в аргумент other_options.

Примеры

Пример #1 Пример использования proc_open()

<?php
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin - канал, из которого дочерний процесс будет читать
   1 => array("pipe", "w"),  // stdout - канал, в который дочерний процесс будет записывать
   2 => array("file", "/tmp/error-output.txt", "a") // stderr - файл для записи
);

$cwd = '/tmp';
$env = array('some_option' => 'aeiou');

$process = proc_open('php', $descriptorspec, $pipes, $cwd, $env);

if (is_resource($process)) {
    // $pipes теперь выглядит так:
    // 0 => записывающий обработчик, подключенный к дочернему stdin
    // 1 => читающий обработчик, подключенный к дочернему stdout
    // Вывод сообщений об ошибках будет добавляться в /tmp/error-output.txt

    fwrite($pipes[0], '<?php print_r($_ENV); ?>');
    fclose($pipes[0]);

    echo stream_get_contents($pipes[1]);
    fclose($pipes[1]);

    // Важно закрывать все каналы перед вызовом
    // proc_close во избежание мертвой блокировки
    $return_value = proc_close($process);

    echo "команда вернула $return_value\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [some_option] => aeiou
    [PWD] => /tmp
    [SHLVL] => 1
    [_] => /usr/local/bin/php
)
команда вернула 0

Примечания

Замечание:

Совместимость с Windows: Дескрипторы дальше 2 (stderr) наследуются дочерними процессам, однако с тех пор как Windows не ассоциирует номера файловых дескрипторов с низкоуровневыми обработчиками, дочерние процессы не имеют (пока) к ним доступа. Это не относится к stdin, stdout и stderr.

Замечание:

Если нужен однонаправленный канал процесса, используйте функцию popen(), так как она значительно проще в использовании.

Смотрите также

  • popen() - Открывает файловый указатель процесса
  • exec() - Исполняет внешнюю программу
  • system() - Выполняет внешнюю программу и отображает её вывод
  • passthru() - Выполняет внешнюю программу и отображает необработанный вывод
  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
  • Оператор обратный апостроф


Уничтожает процесс, открытый при помощи функции proc_open

  • « proc_open
  • shell_exec »
  • PHP Manual
  • Функции запуска программ
  • Уничтожает процесс, открытый при помощи функции proc_open

proc_terminate

(PHP 5, PHP 7)

proc_terminate — Уничтожает процесс, открытый при помощи функции proc_open

Описание

bool proc_terminate ( resource $process [, int $signal = 15 ] )

Отправляет процессу process (созданному при помощи функции proc_open()) сигнал, говорящий о том, что он должен завершиться. Функция proc_terminate() возвращается немедленно и не ожидает завершения процесса.

Функция proc_terminate() позволяет программе завершить процесс и продолжать выполнять другие задачи. Вы можете опрашивать процесс (для того, чтобы проверить, был ли он завершён) при помощи функции proc_get_status().

Список параметров

process

Открытый при помощи функции proc_open() дескриптор типа resource, который будет закрыт.

signal

Этот необязательный параметр полезен только на операционных системах, поддерживающих стандарт POSIX. Вы можете указать сигнал, который будет отправлен процессу, используя системный вызов kill(2). По умолчанию используется сигнал SIGTERM.

Возвращаемые значения

Возвращает статус прекращения процесса, который был запущен.

Список изменений

Версия | Описание
5.2.2 | Предыдущие версии использовали для уничтожения указанного процесса ресурс resource.

Смотрите также

  • proc_open() - Выполняет команду и открывает указатель на файл для ввода/вывода
  • proc_close() - Завершает процесс, открытый при помощи функции proc_open и возвращает код завершения этого процесса
  • proc_get_status() - Получает информацию о процессе, открытом при помощи функции proc_open


Выполняет команду через шелл и возвращает полный вывод в виде строки

  • « proc_terminate
  • system »
  • PHP Manual
  • Функции запуска программ
  • Выполняет команду через шелл и возвращает полный вывод в виде строки

shell_exec

(PHP 4, PHP 5, PHP 7)

shell_exec — Выполняет команду через шелл и возвращает полный вывод в виде строки

Описание

string shell_exec ( string $cmd )

Эта функция идентична оператору обратный апостроф.

Список параметров

cmd

Команда, которая будет выполнена.

Возвращаемые значения

Вывод исполняемой команды или NULL, если произошла ошибка или комманда не производит вывод.

Замечание:

Эта функция может вернуть NULL в двух случаях: если произошла ошибка или если выполняемая комманда ничего не выводит. Не пользуйтесь этой функцией, для определения, успешно ли выполнилась комманда. Вместо этого используйте exec(), так как она предоставляет возможность проверить код возврата.

Примеры

Пример #1 Пример использования shell_exec()

<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>

Примечания

Замечание:

Эта функция недоступна в безопасном режиме.

Смотрите также

  • exec() - Исполняет внешнюю программу
  • escapeshellcmd() - Экранирует метасимволы командной строки


Выполняет внешнюю программу и отображает её вывод

  • « shell_exec
  • pthreads »
  • PHP Manual
  • Функции запуска программ
  • Выполняет внешнюю программу и отображает её вывод

system

(PHP 4, PHP 5, PHP 7)

system — Выполняет внешнюю программу и отображает её вывод

Описание

string system ( string $command [, int &$return_var ] )

system() похожа на C-версию этой функции в том, что она выполняет указанную команду command и выводит её результат.

Вызов функции system() также пытается автоматически очистить буфер вывода веб-сервера после каждой строки вывода, если PHP работает как модуль сервера.

Если вам нужно выполнить команду и получить все данные из команды непосредственно без каких-либо препятствий, используйте функцию passthru().

Список параметров

command

Команда, которая будет выполнена.

return_var

Если есть аргумент return_var, то код возврата выполняемой команды будет записан в эту переменную.

Возвращаемые значения

Возвращает последнюю строку вывода команды в случае успеха, и FALSE - в случае неудачи.

Примеры

Пример #1 Пример использования system()

<?php
echo '<pre>';

// Выводит весь результат шелл-команды "ls", и возвращает
// последнюю строку вывода в переменной $last_line. Сохраняет код возврата
// шелл-команды в $retval.
$last_line = system('ls', $retval);

// Выводим дополнительную информацию
echo '
</pre>
<hr />Последняя строка вывода: ' . $last_line . '
<hr />Код возврата: ' . $retval;
?>

Примечания

Внимание

Если вы собираетесь передавать функции пользовательские данные, используйте функции escapeshellarg() или escapeshellcmd() для того, чтобы пользователи не смогли обмануть систему, запустив произвольную команду.

Замечание:

Если вы собираетесь использовать эту функцию в программе, работающей в качестве демона, убедитесь, что стандартный вывод функции направлен в файл или другой поток, в противном случае PHP зависнет вплоть до конца выполнения программы.

Замечание: В случае работы в безопасном режиме, вы можете запускать что-либо только в пределах safe_mode_exec_dir. В настоящее время по практическим причинам запрещено использование .. в качестве компонента пути к исполняемому файлу.

Внимание

В случае работы в безопасном режиме, строка с командой экранируется с помощью escapeshellcmd(). Таким образом echo y | echo x становится echo y \| echo x.

Смотрите также

  • exec() - Исполняет внешнюю программу
  • passthru() - Выполняет внешнюю программу и отображает необработанный вывод
  • popen() - Открывает файловый указатель процесса
  • escapeshellcmd() - Экранирует метасимволы командной строки
  • pcntl_exec() - Executes specified program in current process space
  • оператор "обратный апостроф"


pthreads

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Threaded — The Threaded class
    • Threaded::chunk — Manipulation
    • Threaded::count — Manipulation
    • Threaded::extend — Runtime Manipulation
    • Threaded::from — Creation
    • Threaded::getTerminationInfo — Error Detection
    • Threaded::isRunning — State Detection
    • Threaded::isTerminated — State Detection
    • Threaded::isWaiting — State Detection
    • Threaded::lock — Synchronization
    • Threaded::merge — Manipulation
    • Threaded::notify — Synchronization
    • Threaded::pop — Manipulation
    • Threaded::run — Execution
    • Threaded::shift — Manipulation
    • Threaded::synchronized — Synchronization
    • Threaded::unlock — Synchronization
    • Threaded::wait — Synchronization
  • Thread — The Thread class
    • Thread::detach — Execution
    • Thread::getCreatorId — Identification
    • Thread::getCurrentThread — Identification
    • Thread::getCurrentThreadId — Identification
    • Thread::getThreadId — Identification
    • Thread::globally — Execution
    • Thread::isJoined — State Detection
    • Thread::isStarted — State Detection
    • Thread::join — Synchronization
    • Thread::kill — Execution
    • Thread::start — Execution
  • Worker — The Worker class
    • Worker::getStacked — Stack Analysis
    • Worker::isShutdown — State Detection
    • Worker::isWorking — State Detection
    • Worker::shutdown — Synchronization
    • Worker::stack — Stacking
    • Worker::unstack — Stacking
  • Collectable — The Collectable class
    • Collectable::isGarbage — Determine whether an object has been marked as garbage
    • Collectable::setGarbage — Mark an object as garbage
  • Modifiers — Method Modifiers
  • Pool — The Pool class
    • Pool::collect — Collect references to completed tasks
    • Pool::__construct — Creates a new Pool of Workers
    • Pool::resize — Resize the Pool
    • Pool::shutdown — Shutdown all Workers
    • Pool::submit — Submits an object for execution
    • Pool::submitTo — Submits an object for execution
  • Mutex — The Mutex class
    • Mutex::create — Create a Mutex
    • Mutex::destroy — Destroy Mutex
    • Mutex::lock — Acquire Mutex
    • Mutex::trylock — Attempt to Acquire Mutex
    • Mutex::unlock — Release Mutex
  • Cond — The Cond class
    • Cond::broadcast — Broadcast a Condition
    • Cond::create — Create a Condition
    • Cond::destroy — Destroy a Condition
    • Cond::signal — Signal a Condition
    • Cond::wait — Wait for Condition


Введение

pthreads is an Object Orientated API that allows user-land multi-threading in PHP. It includes all the tools you need to create multi-threaded applications. PHP applications can create, read, write, execute and synchronize with Threads, Workers and Threaded objects.

A Threaded Object: A Threaded Object forms the basis of the functionality that allows pthreads to operate. It exposes synchronization methods and some useful interfaces for the programmer.

A Thread: The user can implement a Thread by extending the Thread declaration provided by pthreads implementing the run method. Any members can be written and read by any context with a reference to the Thread, any context can also execute any public and protected methods. The run method of the implementation is executed in a separate thread when the start method of the implementation is called from the context ( that's Thread or Process ) that created it. Only the context that creates a thread can start and join with it.

A Worker Object: A Worker Thread has a persistent state, and will be available from the call to start until the object goes out of scope, or is explicitly shutdown. Any context with a reference can stack objects onto the Worker, which will be executed by the Worker in a separate Thread. The run method of a Worker is executed before any objects on the stack, such that it can initialize resources that the objects to come may need.

A Pool: A Pool of Worker threads can be used to distribute Threaded objects among Workers. The Pool class included implements this functionality and takes care of referencing in a sane manner. Introduced in v1.0.0, the Pool implementation is the easiest and most efficient way of using multiple threads.

Предостережение

Pool is a normal PHP object, and so instances should not be shared among contexts.

Synchronization: All of the objects that pthreads creates have built in synchronization in the ( familiar to java programmers ) form of ::wait and ::notify. Calling ::wait on an object will cause the context to wait for another context to call ::notify on the same object. This allows for powerful synchronization between Threaded Objects in PHP.

Предостережение

Any objects that are intended for use in the multi-threaded parts of your application should extend Threaded.

Method Modifiers: The protected methods of Threaded Objects are protected by pthreads, such that only one context may call that method at a time. The private methods of Threaded Objects can only be called from within the Threaded Object during execution.

Data Storage: As a rule of thumb, any data type that can be serialized can be used as a member of a Threaded object, it can be read and written from any context with a reference to the Threaded Object. Not every type of data is stored serially, basic types are stored in their true form. Complex types, Arrays, and Objects that are not Threaded are stored serially; they can be read and written to the Threaded Object from any context with a reference. With the exception of Threaded Objects any reference used to set a member of a Threaded Object is separated from the reference in the Threaded Object; the same data can be read directly from the Threaded Object at any time by any context with a reference to the Threaded Object.

Static Members: When a new context is created ( Thread or Worker ), they are generally copied, but resources and objects with internal state are nullified (for safety reasons). This allows them to function as a kind of thread local storage. For example, upon starting the context, a class whose static members include connection information for a database server, and the connection itself, will only have the simple connection information copied, not the connection. Allowing the new context to initiate a connection in the same way as the context that created it, storing the connection in the same place without affecting the original context.

Предостережение

When print_r, var_dump and other object debug functions are executed, they do not include recursion protection.

Замечание:

Resources: The extensions and functionality that define resources in PHP are completely unprepared for this kind of environment; pthreads makes provisions for Resources to be shared among contexts, however, for most types of resource it should be considered unsafe. Extreme caution and care should be used when sharing resources among contexts.

Предостережение

In the environment which pthreads executes, some restrictions and limitations are necessary in order to provide a stable environment.


Требования

pthreads requires a build of PHP with ZTS (Zend Thread Safety) enabled ( --enable-maintainer-zts or --enable-zts on Windows )

Предостережение

Zend Thread Safety cannot be enabled post build; it is a build time configuration option.

pthreads should build anywhere there is a working Posix Threads header (pthread.h) and ZTS build of PHP, including Windows (using the pthread-w32 project from redhat).


Установка

pthreads releases are hosted by PECL and the source code by » github, the easiest route to installation is the normal PECL route: » http://pecl.php.net/package/pthreads.

Windows users can download prebuilt release binaries from the » PECL website.

Предостережение

Windows users need to take the additional step of adding pthreadVC2.dll (distributed with Windows releases) to their PATH.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

PTHREADS_INHERIT_ALL (integer)
The default options for all Threads, causes pthreads to copy the environment when new Threads are started
PTHREADS_INHERIT_NONE (integer)
Do not inherit anything when new Threads are started
PTHREADS_INHERIT_INI (integer)
Inherit INI entries when new Threads are started
PTHREADS_INHERIT_CONSTANTS (integer)
Inherit user declared constants when new Threads are started
PTHREADS_INHERIT_CLASSES (integer)
Inherit user declared classes when new Threads are started
PTHREADS_INHERIT_FUNCTIONS (integer)
Inherit user declared functions when new Threads are started
PTHREADS_INHERIT_INCLUDES (integer)
Inherit included file information when new Threads are started
PTHREADS_INHERIT_COMMENTS (integer)
Inherit all comments when new Threads are started
PTHREADS_ALLOW_HEADERS (integer)
Allow new Threads to send headers to standard output (normally prohibited)


The Threaded class

(PECL pthreads >= 2.0.0)

Введение

Threaded objects form the basis of pthreads ability to execute user code in parallel; they expose synchronization methods and various useful interfaces.

Threaded objects, most importantly, provide implicit safety for the programmer; all operations on the object scope are safe.

Обзор классов

Threaded implements Traversable , Countable , ArrayAccess {
/* Методы */
public array chunk ( integer $size , boolean $preserve )
public integer count ( void )
public bool extend ( string $class )
public Threaded from ( Closure $run [, Closure $construct [, array $args ]] )
public array getTerminationInfo ( void )
public boolean isRunning ( void )
public boolean isTerminated ( void )
public boolean isWaiting ( void )
public boolean lock ( void )
public boolean merge ( mixed $from [, bool $overwrite ] )
public boolean notify ( void )
public boolean pop ( void )
public void run ( void )
public mixed shift ( void )
public mixed synchronized ( Closure $block [, mixed $... ] )
public boolean unlock ( void )
public boolean wait ([ integer $timeout ] )
}

Содержание

  • Threaded::chunk — Manipulation
  • Threaded::count — Manipulation
  • Threaded::extend — Runtime Manipulation
  • Threaded::from — Creation
  • Threaded::getTerminationInfo — Error Detection
  • Threaded::isRunning — State Detection
  • Threaded::isTerminated — State Detection
  • Threaded::isWaiting — State Detection
  • Threaded::lock — Synchronization
  • Threaded::merge — Manipulation
  • Threaded::notify — Synchronization
  • Threaded::pop — Manipulation
  • Threaded::run — Execution
  • Threaded::shift — Manipulation
  • Threaded::synchronized — Synchronization
  • Threaded::unlock — Synchronization
  • Threaded::wait — Synchronization


Manipulation

  • « Threaded
  • Threaded::count »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::chunk

(PECL pthreads >= 2.0.0)

Threaded::chunk — Manipulation

Описание

public array Threaded::chunk ( integer $size , boolean $preserve )

Fetches a chunk of the objects property table of the given size, optionally preserving keys

Список параметров

size

The number of items to fetch

preserve

Preserve the keys of members, by default false

Возвращаемые значения

An array of items from the objects property table

Примеры

Пример #1 Fetch a chunk of the property table

<?php
$safe = new Threaded();

while (count($safe) < 10) {
    $safe[] = count($safe);
}

var_dump($safe->chunk(5));
?>

Результат выполнения данного примера:

array(5) {
  [0]=>
  int(0)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
  [4]=>
  int(4)
}


Manipulation

  • « Threaded::chunk
  • Threaded::extend »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::count

(PECL pthreads >= 2.0.0)

Threaded::count — Manipulation

Описание

public integer Threaded::count ( void )

Returns the number of properties for this object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Counting the properties of an object

<?php
$safe = new Threaded();

while (count($safe) < 10) {
    $safe[] = count($safe);
}

var_dump(count($safe));
?>

Результат выполнения данного примера:

int(10)


Runtime Manipulation

  • « Threaded::count
  • Threaded::from »
  • PHP Manual
  • Threaded
  • Runtime Manipulation

Threaded::extend

(PECL pthreads >= 2.0.8)

Threaded::extend — Runtime Manipulation

Описание

public bool Threaded::extend ( string $class )

Makes thread safe standard class at runtime

Список параметров

class

The class to extend

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Runtime inheritance

<?php
class My {}

Threaded::extend(My::class);

$my = new My();

var_dump($my instanceof Threaded);
?>

Результат выполнения данного примера:

bool(true)


Creation

  • « Threaded::extend
  • Threaded::getTerminationInfo »
  • PHP Manual
  • Threaded
  • Creation

Threaded::from

(PECL pthreads >= 2.0.9)

Threaded::from — Creation

Описание

public Threaded Threaded::from ( Closure $run [, Closure $construct [, array $args ]] )

Creates an anonymous Threaded object from closures

Список параметров

run

The closure to use for ::run

construct

The constructor to use for anonymous object

args

The arguments to pass to constructor

Возвращаемые значения

A new anonymous Threaded object

Примеры

Пример #1 Thread safe objects from closures

<?php
$pool = new Pool(4);
$pool->submit(Collectable::from(function(){
    echo "Hello World";
    $this->setGarbage();
}));
/* ... */
$pool->shutdown();
?>

Результат выполнения данного примера:

Hello World


Error Detection

  • « Threaded::from
  • Threaded::isRunning »
  • PHP Manual
  • Threaded
  • Error Detection

Threaded::getTerminationInfo

(PECL pthreads >= 2.0.0)

Threaded::getTerminationInfo — Error Detection

Описание

public array Threaded::getTerminationInfo ( void )

Retrieves terminal error information from the referenced object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

array containing the termination conditions of the referenced object

Примеры

Пример #1 Detecting fatal errors in Threads

<?php
class My extends Thread {
    public function run() {
        @not_found();
    }
}

$my = new My();
$my->start();
$my->join();

var_dump($my->isTerminated(), $my->getTerminationInfo());
?>

Результат выполнения данного примера:

bool(true)
array(4) {
  ["scope"]=>
  string(2) "My"
  ["function"]=>
  string(3) "run"
  ["file"]=>
  string(29) "/usr/src/pthreads/sandbox.php"
  ["line"]=>
  int(4)
}


State Detection

  • « Threaded::getTerminationInfo
  • Threaded::isTerminated »
  • PHP Manual
  • Threaded
  • State Detection

Threaded::isRunning

(PECL pthreads >= 2.0.0)

Threaded::isRunning — State Detection

Описание

public boolean Threaded::isRunning ( void )

Tell if the referenced object is executing

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of state

Замечание:

A object is considered running while executing the run method

Примеры

Пример #1 Detect the state of the referenced object

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
var_dump($my->isRunning());
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
?>

Результат выполнения данного примера:

bool(true)


State Detection

  • « Threaded::isRunning
  • Threaded::isWaiting »
  • PHP Manual
  • Threaded
  • State Detection

Threaded::isTerminated

(PECL pthreads >= 2.0.0)

Threaded::isTerminated — State Detection

Описание

public boolean Threaded::isTerminated ( void )

Tell if the referenced object was terminated during execution; suffered fatal errors, or threw uncaught exceptions

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of state

Примеры

Пример #1 Detect the state of the referenced object

<?php
class My extends Thread {
    public function run() {
        i_do_not_exist();
    }
}
$my = new My();
$my->start();
$my->join();
var_dump($my->isTerminated());
?>

Результат выполнения данного примера:

bool(true)


State Detection

  • « Threaded::isTerminated
  • Threaded::lock »
  • PHP Manual
  • Threaded
  • State Detection

Threaded::isWaiting

(PECL pthreads >= 2.0.0)

Threaded::isWaiting — State Detection

Описание

public boolean Threaded::isWaiting ( void )

Tell if the referenced object is waiting for notification

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of state

Примеры

Пример #1 Detect the state of the referenced object

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$this->done)
                $thread->wait();
        }, $this);
    }

    protected $done;
}
$my = new My();
$my->start();
$my->synchronized(function($thread){
    var_dump(
        $thread->isWaiting());
    $thread->done = true;
    $thread->notify();
}, $my);
?>

Результат выполнения данного примера:

bool(true)


Synchronization

  • « Threaded::isWaiting
  • Threaded::merge »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::lock

(PECL pthreads >= 2.0.0)

Threaded::lock — Synchronization

Описание

public boolean Threaded::lock ( void )

Lock the referenced objects property table

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Locking Object Properties

<?php
class My extends Thread {
    public function run() {
        var_dump($this->lock());
        /** nobody can read or write **/
        var_dump($this->unlock());
        /** reading / writing resumed for all other contexts */
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

bool(true)
bool(true)


Manipulation

  • « Threaded::lock
  • Threaded::notify »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::merge

(PECL pthreads >= 2.0.0)

Threaded::merge — Manipulation

Описание

public boolean Threaded::merge ( mixed $from [, bool $overwrite ] )

Merges data into the current object

Список параметров

from

The data to merge

overwrite

Overwrite existing keys, by default true

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Merging into the property table of a threaded object

<?php
$array = [];

while (count($array) < 10)
    $array[] = count($array);

$stdClass = new stdClass();
$stdClass->foo = "foo";
$stdClass->bar = "bar";
$stdClass->baz = "baz";

$safe = new Threaded();
$safe->merge($array);

$safe->foo = "bar";
$safe->merge($stdClass, false);

var_dump($safe);
?>

Результат выполнения данного примера:

object(Threaded)#2 (13) {
  ["0"]=>
  int(0)
  ["1"]=>
  int(1)
  ["2"]=>
  int(2)
  ["3"]=>
  int(3)
  ["4"]=>
  int(4)
  ["5"]=>
  int(5)
  ["6"]=>
  int(6)
  ["7"]=>
  int(7)
  ["8"]=>
  int(8)
  ["9"]=>
  int(9)
  ["foo"]=>
  string(3) "bar"
  ["bar"]=>
  string(3) "bar"
  ["baz"]=>
  string(3) "baz"
}


Synchronization

  • « Threaded::merge
  • Threaded::pop »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::notify

(PECL pthreads >= 2.0.0)

Threaded::notify — Synchronization

Описание

public boolean Threaded::notify ( void )

Send notification to the referenced object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Notifications and Waiting

<?php
class My extends Thread {
    public function run() {
        /** cause this thread to wait **/
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

Результат выполнения данного примера:

bool(true)


Manipulation

  • « Threaded::notify
  • Threaded::run »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::pop

(PECL pthreads >= 2.0.0)

Threaded::pop — Manipulation

Описание

public boolean Threaded::pop ( void )

Pops an item from the objects property table

Возвращаемые значения

The last item from the objects property table

Примеры

Пример #1 Popping the last item from the property table of a threaded object

<?php
$safe = new Threaded();

while (count($safe) < 10)
    $safe[] = count($safe);

var_dump($safe->pop());
?>

Результат выполнения данного примера:

int(9)


Execution

  • « Threaded::pop
  • Threaded::shift »
  • PHP Manual
  • Threaded
  • Execution

Threaded::run

(PECL pthreads >= 2.0.0)

Threaded::run — Execution

Описание

public void Threaded::run ( void )

The programmer should always implement the run method for objects that are intended for execution.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The methods return value, if used, will be ignored


Manipulation

  • « Threaded::run
  • Threaded::synchronized »
  • PHP Manual
  • Threaded
  • Manipulation

Threaded::shift

(PECL pthreads >= 2.0.0)

Threaded::shift — Manipulation

Описание

public mixed Threaded::shift ( void )

Shifts an item from the objects property table

Возвращаемые значения

The first item from the objects property table

Примеры

Пример #1 Shifting the first item from the property table of a threaded object

<?php
$safe = new Threaded();

while (count($safe) < 10)
    $safe[] = count($safe);

var_dump($safe->shift());
?>

Результат выполнения данного примера:

int(0)


Synchronization

  • « Threaded::shift
  • Threaded::unlock »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::synchronized

(PECL pthreads >= 2.0.0)

Threaded::synchronized — Synchronization

Описание

public mixed Threaded::synchronized ( Closure $block [, mixed $... ] )

Executes the block while retaining the referenced objects synchronization lock for the calling context

Список параметров

block

The block of code to execute

...

Variable length list of arguments to use as function arguments to the block

Возвращаемые значения

The return value from the block

Примеры

Пример #1 Synchronizing

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

Результат выполнения данного примера:

bool(true)


Synchronization

  • « Threaded::synchronized
  • Threaded::wait »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::unlock

(PECL pthreads >= 2.0.0)

Threaded::unlock — Synchronization

Описание

public boolean Threaded::unlock ( void )

Unlock the referenced objects storage for the calling context

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Locking the property table of a threaded object

<?php
class My extends Thread {
    public function run() {
        var_dump($this->lock());
        /** nobody can read or write **/
        var_dump($this->unlock());
        /** reading / writing resumed for all other contexts */
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

bool(true)
bool(true)


Synchronization

  • « Threaded::unlock
  • Thread »
  • PHP Manual
  • Threaded
  • Synchronization

Threaded::wait

(PECL pthreads >= 2.0.0)

Threaded::wait — Synchronization

Описание

public boolean Threaded::wait ([ integer $timeout ] )

Will cause the calling context to wait for notification from the referenced object

Список параметров

timeout

An optional timeout in microseconds

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Notifications and Waiting

<?php
class My extends Thread {
    public function run() {
        /** cause this thread to wait **/
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
/** send notification to the waiting thread **/
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
var_dump($my->join());
?>

Результат выполнения данного примера:

bool(true)


The Thread class

(PECL pthreads >= 2.0.0)

Введение

When the start method of a Thread is invoked, the run method code will be executed in separate Thread, in parallel.

After the run method is executed the Thread will exit immediately, it will be joined with the creating Thread at the appropriate time.

Внимание

Relying on the engine to determine when a Thread should join may cause undesirable behaviour; the programmer should be explicit, where possible.

Обзор классов

Thread extends Threaded implements Countable , Traversable , ArrayAccess {
/* Методы */
public void detach ( void )
public integer getCreatorId ( void )
public static Thread getCurrentThread ( void )
public static integer getCurrentThreadId ( void )
public integer getThreadId ( void )
public static mixed globally ( void )
public boolean isJoined ( void )
public boolean isStarted ( void )
public boolean join ( void )
public void kill ( void )
public boolean start ([ integer $options ] )
/* Наследуемые методы */
public array Threaded::chunk ( integer $size , boolean $preserve )
public integer Threaded::count ( void )
public bool Threaded::extend ( string $class )
public Threaded Threaded::from ( Closure $run [, Closure $construct [, array $args ]] )
public array Threaded::getTerminationInfo ( void )
public boolean Threaded::isRunning ( void )
public boolean Threaded::isTerminated ( void )
public boolean Threaded::isWaiting ( void )
public boolean Threaded::lock ( void )
public boolean Threaded::merge ( mixed $from [, bool $overwrite ] )
public boolean Threaded::notify ( void )
public boolean Threaded::pop ( void )
public void Threaded::run ( void )
public mixed Threaded::shift ( void )
public mixed Threaded::synchronized ( Closure $block [, mixed $... ] )
public boolean Threaded::unlock ( void )
public boolean Threaded::wait ([ integer $timeout ] )
}

Содержание

  • Thread::detach — Execution
  • Thread::getCreatorId — Identification
  • Thread::getCurrentThread — Identification
  • Thread::getCurrentThreadId — Identification
  • Thread::getThreadId — Identification
  • Thread::globally — Execution
  • Thread::isJoined — State Detection
  • Thread::isStarted — State Detection
  • Thread::join — Synchronization
  • Thread::kill — Execution
  • Thread::start — Execution


Execution

  • « Thread
  • Thread::getCreatorId »
  • PHP Manual
  • Thread
  • Execution

Thread::detach

(PECL pthreads >= 2.0.0)

Thread::detach — Execution

Описание

public void Thread::detach ( void )

Detaches the referenced Thread from the calling context, dangerous!

Внимание

This method can cause undefined, unsafe behaviour. It should not usually be used, it is present for completeness and advanced use cases.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Identification

  • « Thread::detach
  • Thread::getCurrentThread »
  • PHP Manual
  • Thread
  • Identification

Thread::getCreatorId

(PECL pthreads >= 2.0.0)

Thread::getCreatorId — Identification

Описание

public integer Thread::getCreatorId ( void )

Will return the identity of the Thread that created the referenced Thread

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A numeric identity

Примеры

Пример #1 Return the identity of the Thread or Process that created the referenced Thread

<?php
class My extends Thread {
    public function run() {
        printf("%s created by Thread #%lu\n", __CLASS__, $this->getCreatorId());
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

My created by Thread #123456778899


Identification

  • « Thread::getCreatorId
  • Thread::getCurrentThreadId »
  • PHP Manual
  • Thread
  • Identification

Thread::getCurrentThread

(PECL pthreads >= 2.0.0)

Thread::getCurrentThread — Identification

Описание

public static Thread Thread::getCurrentThread ( void )

Return a reference to the currently executing Thread

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An object representing the currently executing Thread

Примеры

Пример #1 Return the currently executing Thread

<?php
class My extends Thread {
    public function run() {
        var_dump(Thread::getCurrentThread());
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

object(My)#2 (0) {
}


Identification

  • « Thread::getCurrentThread
  • Thread::getThreadId »
  • PHP Manual
  • Thread
  • Identification

Thread::getCurrentThreadId

(PECL pthreads >= 2.0.0)

Thread::getCurrentThreadId — Identification

Описание

public static integer Thread::getCurrentThreadId ( void )

Will return the identity of the currently executing Thread

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A numeric identity

Примеры

Пример #1 Return the identity of the currently executing Thread

<?php
class My extends Thread {
    public function run() {
        printf("%s is Thread #%lu\n", __CLASS__, Thread::getCurrentThreadId());
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

My is Thread #123456778899


Identification

  • « Thread::getCurrentThreadId
  • Thread::globally »
  • PHP Manual
  • Thread
  • Identification

Thread::getThreadId

(PECL pthreads >= 2.0.0)

Thread::getThreadId — Identification

Описание

public integer Thread::getThreadId ( void )

Will return the identity of the referenced Thread

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A numeric identity

Примеры

Пример #1 Return the identity of the referenced Thread

<?php
class My extends Thread {
    public function run() {
        printf("%s is Thread #%lu\n", __CLASS__, $this->getThreadId());
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

My is Thread #123456778899


Execution

  • « Thread::getThreadId
  • Thread::isJoined »
  • PHP Manual
  • Thread
  • Execution

Thread::globally

(PECL pthreads >= 2.0.1)

Thread::globally — Execution

Описание

public static mixed Thread::globally ( void )

Will execute a Callable in the global scope

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The return value of the Callable

Примеры

Пример #1 Execute in the global scope

<?php
class My extends Thread {
    public function run() {
        global $std;

        Thread::globally(function(){
            $std = new stdClass;
        });

        var_dump($std);
    }
}
$my = new My();
$my->start();
?>

Результат выполнения данного примера:

object(stdClass)#3 (0) {
}


State Detection

  • « Thread::globally
  • Thread::isStarted »
  • PHP Manual
  • Thread
  • State Detection

Thread::isJoined

(PECL pthreads >= 2.0.0)

Thread::isJoined — State Detection

Описание

public boolean Thread::isJoined ( void )

Tell if the referenced Thread has been joined

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of state

Примеры

Пример #1 Detect the state of the referenced Thread

<?php
class My extends Thread {
    public function run() {
        $this->synchronized(function($thread){
            if (!$thread->done)
                $thread->wait();
        }, $this);
    }
}
$my = new My();
$my->start();
var_dump($my->isJoined());
$my->synchronized(function($thread){
    $thread->done = true;
    $thread->notify();
}, $my);
?>

Результат выполнения данного примера:

bool(false)


State Detection

  • « Thread::isJoined
  • Thread::join »
  • PHP Manual
  • Thread
  • State Detection

Thread::isStarted

(PECL pthreads >= 2.0.0)

Thread::isStarted — State Detection

Описание

public boolean Thread::isStarted ( void )

Tell if the referenced Thread was started

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean indication of state

Примеры

Пример #1 Tell if the referenced Thread was started

<?php
$worker = new Worker();
$worker->start();
var_dump($worker->isStarted());
?>

Результат выполнения данного примера:

bool(true)


Synchronization

  • « Thread::isStarted
  • Thread::kill »
  • PHP Manual
  • Thread
  • Synchronization

Thread::join

(PECL pthreads >= 2.0.0)

Thread::join — Synchronization

Описание

public boolean Thread::join ( void )

Causes the calling context to wait for the referenced Thread to finish executing

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Join with the referenced Thread

<?php
class My extends Thread {
    public function run() {
        /* ... */
    }
}
$my = new My();
$my->start();
/* ... */
var_dump($my->join());
/* ... */
?>

Результат выполнения данного примера:

bool(true)


Execution

  • « Thread::join
  • Thread::start »
  • PHP Manual
  • Thread
  • Execution

Thread::kill

(PECL pthreads >= 2.0.0)

Thread::kill — Execution

Описание

public void Thread::kill ( void )

Forces the referenced Thread to terminate

Внимание

The programmer should not ordinarily kill Threads by force

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Kill the referenced Thread

<?php
class T extends Thread {
    public function run() {
        $stdin = fopen("php://stdin", "r");
        while(($line = fgets($stdin))) {
            echo $line;
        }
    }
}

$t = new T();
$t->start();

var_dump($t->kill());
?>

Результат выполнения данного примера:

bool(true)


Execution

  • « Thread::kill
  • Worker »
  • PHP Manual
  • Thread
  • Execution

Thread::start

(PECL pthreads >= 2.0.0)

Thread::start — Execution

Описание

public boolean Thread::start ([ integer $options ] )

Will start a new Thread to execute the implemented run method

Список параметров

options

An optional mask of inheritance constants, by default PTHREADS_INHERIT_ALL

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Starting Threads

<?php
class My extends Thread {
    public function run() {
        /** ... **/
    }
}
$my = new My();
var_dump($my->start());
?>

Результат выполнения данного примера:

bool(true)


The Worker class

(PECL pthreads >= 2.0.0)

Введение

Worker Threads have a persistent context, as such should be used over Threads in most cases.

When a Worker is started, the run method will be executed, but the Thread will not leave until one of the following conditions are met:

  • the Worker goes out of scope (no more references remain)

  • the programmer calls shutdown

  • the script dies

This means the programmer can reuse the context throughout execution; placing objects on the stack of the Worker will cause the Worker to execute the stacked objects run method.

Внимание

The programmer must retain references to stacked objects until they are executed or unstacked; the Pool class provides a higher level abstraction of the Worker functionality and manages references for the programmer.

Обзор классов

Worker extends Thread implements Traversable , Countable , ArrayAccess {
/* Методы */
public integer getStacked ( void )
public boolean isShutdown ( void )
public boolean isWorking ( void )
public boolean shutdown ( void )
public integer stack ( Threaded &$work )
public integer unstack ([ Threaded &$work ] )
/* Наследуемые методы */
public void Thread::detach ( void )
public integer Thread::getCreatorId ( void )
public static Thread Thread::getCurrentThread ( void )
public static integer Thread::getCurrentThreadId ( void )
public integer Thread::getThreadId ( void )
public static mixed Thread::globally ( void )
public boolean Thread::isJoined ( void )
public boolean Thread::isStarted ( void )
public boolean Thread::join ( void )
public void Thread::kill ( void )
public boolean Thread::start ([ integer $options ] )
}

Содержание

  • Worker::getStacked — Stack Analysis
  • Worker::isShutdown — State Detection
  • Worker::isWorking — State Detection
  • Worker::shutdown — Synchronization
  • Worker::stack — Stacking
  • Worker::unstack — Stacking


Stack Analysis

  • « Worker
  • Worker::isShutdown »
  • PHP Manual
  • Worker
  • Stack Analysis

Worker::getStacked

(PECL pthreads >= 2.0.0)

Worker::getStacked — Stack Analysis

Описание

public integer Worker::getStacked ( void )

Returns the number of objects waiting to be executed by the referenced Worker

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An numeric value

Примеры

Пример #1 Returns the number of objects currently waiting to be executed by the referenced Worker

<?php
class Work extends Threaded {
    /** ... **/

    public function run(){
        /** ... **/
    }
}
$my = new Worker();
/** ... **/
$work = new Work();
$my->stack($work);
/** ... **/
printf("My worker has %d jobs remaining\n", $my->getStacked());
/** ... **/
?>

Результат выполнения данного примера:

My worker has 5 jobs remaining


State Detection

  • « Worker::getStacked
  • Worker::isWorking »
  • PHP Manual
  • Worker
  • State Detection

Worker::isShutdown

(PECL pthreads >= 2.0.0)

Worker::isShutdown — State Detection

Описание

public boolean Worker::isShutdown ( void )

Tell if the referenced Worker has been shutdown

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of state

Примеры

Пример #1 Detect the state of a Worker

<?php
$my = new Worker();
$my->start();
var_dump($my->isShutdown());
$my->shutdown();
var_dump($my->isShutdown());
?>

Результат выполнения данного примера:

bool(false)
bool(true)


State Detection

  • « Worker::isShutdown
  • Worker::shutdown »
  • PHP Manual
  • Worker
  • State Detection

Worker::isWorking

(PECL pthreads >= 2.0.0)

Worker::isWorking — State Detection

Описание

public boolean Worker::isWorking ( void )

Tell if a Worker is executing Stackables

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean indication of state

Примеры

Пример #1 Detect the state of a Worker

<?php
$my = new Worker();
$my->start();
/* ... */
if ($my->isWorking()) {
    /* ... the Worker is busy executing another object */
}
?>


Synchronization

  • « Worker::isWorking
  • Worker::stack »
  • PHP Manual
  • Worker
  • Synchronization

Worker::shutdown

(PECL pthreads >= 2.0.0)

Worker::shutdown — Synchronization

Описание

public boolean Worker::shutdown ( void )

Shuts down the Worker after executing all the objects previously stacked

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Shutdown the referenced Worker

<?php
$my = new Worker();
$my->start();
/* ... */
var_dump($my->shutdown());
/* ... */
?>

Результат выполнения данного примера:

bool(true)


Stacking

  • « Worker::shutdown
  • Worker::unstack »
  • PHP Manual
  • Worker
  • Stacking

Worker::stack

(PECL pthreads >= 2.0.0)

Worker::stack — Stacking

Описание

public integer Worker::stack ( Threaded &$work )

Appends the referenced object to the stack of the referenced Worker

Список параметров

work

Threaded object to be executed by the referenced Worker

Возвращаемые значения

The new length of the stack

Примеры

Пример #1 Stacking objects for execution in Workers

<?php
class Work extends Threaded {
    /** ... **/

    public function run(){
        /** ... **/
    }
}

$my = new Worker();
$work = new Work();
/** ... **/
var_dump($my->stack($work));
/** ... **/
?>

Результат выполнения данного примера:

int(1)


Stacking

  • « Worker::stack
  • Collectable »
  • PHP Manual
  • Worker
  • Stacking

Worker::unstack

(PECL pthreads >= 2.0.0)

Worker::unstack — Stacking

Описание

public integer Worker::unstack ([ Threaded &$work ] )

Removes the referenced object ( or all objects if parameters are void ) from stack of the referenced Worker

Список параметров

work

Threaded object previously stacked onto Worker

Возвращаемые значения

The new length of the stack

Примеры

Пример #1 Removing objects from the stack of Workers

<?php
class Work extends Threaded {
    public function run() {

    }
}

$my = new Worker();
$work = new Work();
var_dump($my->stack($work));
var_dump($my->unstack($work));
?>

Результат выполнения данного примера:

int(1)
int(0)


The Collectable class

(PECL pthreads >= 2.0.8)

Введение

Represents a garbage-collectable object.

Collectable objects are intended to be used by the Pool class, replacing Threaded objects as the unit of work. They provide methods to set and detect the collectability of an object.

Обзор классов

Collectable extends Threaded {
/* Методы */
public bool isGarbage ( void )
public void setGarbage ( void )
/* Наследуемые методы */
public array Threaded::chunk ( integer $size , boolean $preserve )
public integer Threaded::count ( void )
public bool Threaded::extend ( string $class )
public Threaded Threaded::from ( Closure $run [, Closure $construct [, array $args ]] )
public array Threaded::getTerminationInfo ( void )
public boolean Threaded::isRunning ( void )
public boolean Threaded::isTerminated ( void )
public boolean Threaded::isWaiting ( void )
public boolean Threaded::lock ( void )
public boolean Threaded::merge ( mixed $from [, bool $overwrite ] )
public boolean Threaded::notify ( void )
public boolean Threaded::pop ( void )
public void Threaded::run ( void )
public mixed Threaded::shift ( void )
public mixed Threaded::synchronized ( Closure $block [, mixed $... ] )
public boolean Threaded::unlock ( void )
public boolean Threaded::wait ([ integer $timeout ] )
}

Содержание

  • Collectable::isGarbage — Determine whether an object has been marked as garbage
  • Collectable::setGarbage — Mark an object as garbage


Determine whether an object has been marked as garbage

  • « Collectable
  • Collectable::setGarbage »
  • PHP Manual
  • Collectable
  • Determine whether an object has been marked as garbage

Collectable::isGarbage

(PECL pthreads >= 2.0.8)

Collectable::isGarbage — Determine whether an object has been marked as garbage

Описание

public bool Collectable::isGarbage ( void )

Can be called in Pool::collect() to determine if this object is garbage.

Смотрите также

  • Pool::collect() - Collect references to completed tasks


Mark an object as garbage

  • « Collectable::isGarbage
  • Modifiers »
  • PHP Manual
  • Collectable
  • Mark an object as garbage

Collectable::setGarbage

(PECL pthreads >= 2.0.8)

Collectable::setGarbage — Mark an object as garbage

Описание

public void Collectable::setGarbage ( void )

Should be called once per object when the object is finished being executed or referenced.

Смотрите также

  • Collectable::isGarbage() - Determine whether an object has been marked as garbage


Method Modifiers

pthreads overrides the functionality of the protected and private method modifiers in order to provide functionality more suited to multi-threaded objects. pthreads applies this functionality to all Threaded objects from creation.

Пример #1 protected method example: protected methods can only be executed by one Thread at a time.

<?php
class ExampleThread extends Thread {
    public function run() {
        /* thread code */
        if ($this->synchronized()) {

        }
    }

    protected function exclusive() {
        /* synchronized method */
    }
}

$thread = new ExampleThread();
if ($thread->start()) {
    $thread->exclusive();
}
?>

Пример #2 private method example: private methods may only be executed by the Threaded object during execution

<?php
class ExampleThread extends Thread {
    public function run() {
        /* thread code */
        if ($this->insideonly()) {

        }
    }

    private function insideonly() {
        /* private method */
    }
}

$thread = new ExampleThread();
if ($thread->start()) {
    $thread->insideonly();
}
?>


The Pool class

(PECL pthreads >= 2.0.0)

Введение

A Pool is a container for, and controller of, an adjustable number of Workers.

Pooling provides a higher level abstraction of the Worker functionality, including the management of references in the way required by pthreads.

Обзор классов

Pool {
/* Свойства */
protected $size ;
protected $class ;
protected $workers ;
protected $work ;
protected $ctor ;
protected $last ;
/* Методы */
public void collect ( Callable $collector )
public Pool __construct ( integer $size , string $class [, array $ctor ] )
public void resize ( integer $size )
public void shutdown ( void )
public integer submit ( Threaded $task )
public integer submitTo ( integer $worker , Threaded $task )
}

Свойства

size

maximum number of Workers this Pool can use

class

the class of the Worker

ctor

the arguments for constructor of new Workers

workers

references to Workers

work

references to Threaded objects submitted to the Pool

last

offset in workers of the last Worker used

Содержание

  • Pool::collect — Collect references to completed tasks
  • Pool::__construct — Creates a new Pool of Workers
  • Pool::resize — Resize the Pool
  • Pool::shutdown — Shutdown all Workers
  • Pool::submit — Submits an object for execution
  • Pool::submitTo — Submits an object for execution


Collect references to completed tasks

  • « Pool
  • Pool::__construct »
  • PHP Manual
  • Pool
  • Collect references to completed tasks

Pool::collect

(PECL pthreads >= 2.0.0)

Pool::collect — Collect references to completed tasks

Описание

public void Pool::collect ( Callable $collector )

Allows the Pool to collect references determined to be garbage by the given collector

Список параметров

collector

A Callable collector

Возвращаемые значения

void

Примеры

Пример #1 Creating Pools

<?php
class MyWork extends Stackable {
    public function __construct() {
        $this->complete = false;
    }

    public function run() {
        printf(
            "Hello from %s in Thread #%lu\n",
            __CLASS__, $this->worker->getThreadId());
        $this->complete = true;
    }

    public function isComplete() {
        return $this->complete;
    }

    protected $complete;
}

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());

usleep(1000);

$pool->collect(function($work){
    return $work->isComplete();
});
var_dump($pool);
?>

Результат выполнения данного примера:

Hello from MyWork in Thread #140222468777728
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(0) {
  }
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(1)
}


Creates a new Pool of Workers

  • « Pool::collect
  • Pool::resize »
  • PHP Manual
  • Pool
  • Creates a new Pool of Workers

Pool::__construct

(PECL pthreads >= 2.0.0)

Pool::__construct — Creates a new Pool of Workers

Описание

public Pool Pool::__construct ( integer $size , string $class [, array $ctor ] )

Construct a new Pool of Workers

Список параметров

size

The maximum number of Workers this Pool can create

class

The class for new Workers

ctor

An array of arguments to be passed to new Workers

Возвращаемые значения

the new Pool

Примеры

Пример #1 Creating Pools

<?php
class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);

var_dump($pool);
?>

Результат выполнения данного примера:

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  NULL
  ["work":protected]=>
  NULL
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(0)
}


Resize the Pool

  • « Pool::__construct
  • Pool::shutdown »
  • PHP Manual
  • Pool
  • Resize the Pool

Pool::resize

(PECL pthreads >= 2.0.0)

Pool::resize — Resize the Pool

Описание

public void Pool::resize ( integer $size )

Resize the Pool

Список параметров

size

The maximum number of Workers this Pool can create

Возвращаемые значения

void


Shutdown all Workers

  • « Pool::resize
  • Pool::submit »
  • PHP Manual
  • Pool
  • Shutdown all Workers

Pool::shutdown

(PECL pthreads >= 2.0.0)

Pool::shutdown — Shutdown all Workers

Описание

public void Pool::shutdown ( void )

Shutdown the Workers in this Pool

Возвращаемые значения

void


Submits an object for execution

  • « Pool::shutdown
  • Pool::submitTo »
  • PHP Manual
  • Pool
  • Submits an object for execution

Pool::submit

(PECL pthreads >= 2.0.0)

Pool::submit — Submits an object for execution

Описание

public integer Pool::submit ( Threaded $task )

Submit the task to the next Worker in the Pool

Список параметров

size

The task for execution

Возвращаемые значения

the identifier of the Worker executing the object

Примеры

Пример #1 Submitting Tasks

<?php
class MyWork extends Threaded {

    public function run() {
        /* ... */
    }
}

class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);
$pool->submit(new MyWork());
var_dump($pool);
?>

Результат выполнения данного примера:

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  array(1) {
    [0]=>
    object(MyWorker)#4 (1) {
      ["something"]=>
      object(Something)#5 (0) {
      }
    }
  }
  ["work":protected]=>
  array(1) {
    [0]=>
    object(MyWork)#3 (1) {
      ["worker"]=>
      object(MyWorker)#5 (1) {
        ["something"]=>
        object(Something)#6 (0) {
        }
      }
    }
  }
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(1)
}


Submits an object for execution

  • « Pool::submit
  • Mutex »
  • PHP Manual
  • Pool
  • Submits an object for execution

Pool::submitTo

(PECL pthreads >= 2.0.0)

Pool::submitTo — Submits an object for execution

Описание

public integer Pool::submitTo ( integer $worker , Threaded $task )

Submit the object to the specified Worker in the Pool

Список параметров

worker

The worker for execution

task

The task for execution

Возвращаемые значения

the identifier of the Worker that accepted the object

Примеры

Пример #1 Submitting Tasks

<?php
class MyWork extends Threaded {

    public function run() {
        /* ... */
    }
}

class MyWorker extends Worker {

    public function __construct(Something $something) {
        $this->something = $something;
    }

    public function run() {
        /** ... **/
    }
}

$pool = new Pool(8, \MyWorker::class, [new Something()]);
$pool->submit(new MyWork());
var_dump($pool);
?>

Результат выполнения данного примера:

object(Pool)#1 (6) {
  ["size":protected]=>
  int(8)
  ["class":protected]=>
  string(8) "MyWorker"
  ["workers":protected]=>
  array(1) {
    [0]=>
    object(MyWorker)#4 (1) {
      ["something"]=>
      object(Something)#5 (0) {
      }
    }
  }
  ["work":protected]=>
  array(1) {
    [0]=>
    object(MyWork)#3 (1) {
      ["worker"]=>
      object(MyWorker)#5 (1) {
        ["something"]=>
        object(Something)#6 (0) {
        }
      }
    }
  }
  ["ctor":protected]=>
  array(1) {
    [0]=>
    object(Something)#2 (0) {
    }
  }
  ["last":protected]=>
  int(1)
}


The Mutex class

(PECL pthreads >= 2.0.0)

Введение

The static methods contained in the Mutex class provide direct access to Posix Mutex functionality.

Обзор классов

Mutex {
/* Методы */
final public static long create ([ boolean $lock ] )
final public static boolean destroy ( long $mutex )
final public static boolean lock ( long $mutex )
final public static boolean trylock ( long $mutex )
final public static boolean unlock ( long $mutex [, boolean $destroy ] )
}

Содержание

  • Mutex::create — Create a Mutex
  • Mutex::destroy — Destroy Mutex
  • Mutex::lock — Acquire Mutex
  • Mutex::trylock — Attempt to Acquire Mutex
  • Mutex::unlock — Release Mutex


Create a Mutex

  • « Mutex
  • Mutex::destroy »
  • PHP Manual
  • Mutex
  • Create a Mutex

Mutex::create

(PECL pthreads >= 2.0.0)

Mutex::create — Create a Mutex

Описание

final public static long Mutex::create ([ boolean $lock ] )

Create, and optionally lock a new Mutex for the caller

Список параметров

lock

Setting lock to true will lock the Mutex for the caller before returning the handle

Возвращаемые значения

A newly created and optionally locked Mutex handle

Примеры

Пример #1 Mutex Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You have the physical address of the Mutex **/
var_dump($mutex);
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

int(40096976)


Destroy Mutex

  • « Mutex::create
  • Mutex::lock »
  • PHP Manual
  • Mutex
  • Destroy Mutex

Mutex::destroy

(PECL pthreads >= 2.0.0)

Mutex::destroy — Destroy Mutex

Описание

final public static boolean Mutex::destroy ( long $mutex )

Destroying Mutex handles must be carried out explicitly by the programmer when they are finished with the Mutex handle.

Список параметров

mutex

A handle returned by a previous call to Mutex::create(). The handle should not be locked by any Thread when Mutex::destroy() is called.

Возвращаемые значения

A boolean indication of success

Примеры

Пример #1 Mutex Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You have the physical address of the Mutex **/
var_dump($mutex);
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

int(40096976)


Acquire Mutex

  • « Mutex::destroy
  • Mutex::trylock »
  • PHP Manual
  • Mutex
  • Acquire Mutex

Mutex::lock

(PECL pthreads >= 2.0.0)

Mutex::lock — Acquire Mutex

Описание

final public static boolean Mutex::lock ( long $mutex )

Attempt to lock the Mutex for the caller.

An attempt to lock a Mutex owned (locked) by another Thread will result in blocking.

Список параметров

mutex

A handle returned by a previous call to Mutex::create().

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Mutex Locking and Unlocking

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You can now lock the mutex in any context **/
var_dump(Mutex::lock($mutex));
/** It is invalid to attempt to destroy a locked Mutex **/
var_dump(Mutex::unlock($mutex));
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

bool(true)
bool(true)


Attempt to Acquire Mutex

  • « Mutex::lock
  • Mutex::unlock »
  • PHP Manual
  • Mutex
  • Attempt to Acquire Mutex

Mutex::trylock

(PECL pthreads >= 2.0.0)

Mutex::trylock — Attempt to Acquire Mutex

Описание

final public static boolean Mutex::trylock ( long $mutex )

Attempt to lock the Mutex for the caller without blocking if the Mutex is owned (locked) by another Thread.

Список параметров

mutex

A handle returned by a previous call to Mutex::create().

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Mutex Locking and Unlocking

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You can now try to lock the mutex in any context **/
var_dump(Mutex::trylock($mutex));
/** It is invalid to attempt to destroy a locked Mutex **/
var_dump(Mutex::unlock($mutex));
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

bool(true)
bool(true)


Release Mutex

  • « Mutex::trylock
  • Cond »
  • PHP Manual
  • Mutex
  • Release Mutex

Mutex::unlock

(PECL pthreads >= 2.0.0)

Mutex::unlock — Release Mutex

Описание

final public static boolean Mutex::unlock ( long $mutex [, boolean $destroy ] )

Attempts to unlock the Mutex for the caller, optionally destroying the Mutex handle. The calling thread should own the Mutex at the time of the call.

Список параметров

mutex

A handle returned by a previous call to Mutex::create().

destroy

When true pthreads will destroy the Mutex after a successful unlock.

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Mutex Locking and Unlocking

<?php
/** You cannot use the "new" keyword, a Mutex is not a PHP object **/
$mutex = Mutex::create();
/** You can now lock the mutex in any context **/
var_dump(Mutex::lock($mutex));
/** It is invalid to attempt to destroy a locked Mutex **/
var_dump(Mutex::unlock($mutex));
/** Always destroy mutex you have created **/
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

bool(true)
bool(true)


The Cond class

(PECL pthreads >= 2.0.0)

Введение

The static methods contained in the Cond class provide direct access to Posix Condition Variables.

Обзор классов

Cond {
/* Методы */
final public static boolean broadcast ( long $condition )
final public static long create ( void )
final public static boolean destroy ( long $condition )
final public static boolean signal ( long $condition )
final public static boolean wait ( long $condition , long $mutex [, long $timeout ] )
}

Содержание

  • Cond::broadcast — Broadcast a Condition
  • Cond::create — Create a Condition
  • Cond::destroy — Destroy a Condition
  • Cond::signal — Signal a Condition
  • Cond::wait — Wait for Condition


Broadcast a Condition

  • « Cond
  • Cond::create »
  • PHP Manual
  • Cond
  • Broadcast a Condition

Cond::broadcast

(PECL pthreads >= 2.0.0)

Cond::broadcast — Broadcast a Condition

Описание

final public static boolean Cond::broadcast ( long $condition )

Broadcast to all Threads blocking on a call to Cond::wait().

Список параметров

condition

A handle to a Condition Variable returned by a previous call to Cond::create()

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Condition Broadcasting

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** The caller must lock the associated Mutex before a call to broadcast **/
var_dump(Cond::broadcast($cond));
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Результат выполнения данного примера:

bool(true)


Create a Condition

  • « Cond::broadcast
  • Cond::destroy »
  • PHP Manual
  • Cond
  • Create a Condition

Cond::create

(PECL pthreads >= 2.0.0)

Cond::create — Create a Condition

Описание

final public static long Cond::create ( void )

Creates a new Condition Variable for the caller.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A handle to a Condition Variable

Примеры

Пример #1 Condition Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** You can now use the Cond in any context **/
var_dump($cond);
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Результат выполнения данного примера:

int(4540682)


Destroy a Condition

  • « Cond::create
  • Cond::signal »
  • PHP Manual
  • Cond
  • Destroy a Condition

Cond::destroy

(PECL pthreads >= 2.0.0)

Cond::destroy — Destroy a Condition

Описание

final public static boolean Cond::destroy ( long $condition )

Destroying Condition Variable handles must be carried out explicitly by the programmer when they are finished with the Condition Variable. No Threads should be blocking on a call to Cond::wait() when the call to Cond::destroy() takes place.

Список параметров

condition

A handle to a Condition Variable returned by a previous call to Cond::create()

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Condition Creation and Destruction

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** You can now use the Cond in any context **/
var_dump($cond);
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Результат выполнения данного примера:

int(4540682)


Signal a Condition

  • « Cond::destroy
  • Cond::wait »
  • PHP Manual
  • Cond
  • Signal a Condition

Cond::signal

(PECL pthreads >= 2.0.0)

Cond::signal — Signal a Condition

Описание

final public static boolean Cond::signal ( long $condition )

Список параметров

condition

A handle returned by a previous call to Cond::create()

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Condition Signalling

<?php
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** The caller must lock the associated Mutex before a call to broadcast **/
var_dump(Cond::signal($cond));
/** Always destroy Cond you have created **/
Cond::destroy($cond);
?>

Результат выполнения данного примера:

bool(true)


Wait for Condition

  • « Cond::signal
  • Семафоры »
  • PHP Manual
  • Cond
  • Wait for Condition

Cond::wait

(PECL pthreads >= 2.0.0)

Cond::wait — Wait for Condition

Описание

final public static boolean Cond::wait ( long $condition , long $mutex [, long $timeout ] )

Wait for a signal on a Condition Variable, optionally specifying a timeout to limit waiting time.

Список параметров

condition

A handle returned by a previous call to Cond::create().

mutex

A handle returned by a previous call to Mutex::create() and owned (locked) by the caller.

timeout

An optional timeout, in microseconds ( millionths of a second ).

Возвращаемые значения

A boolean indication of success.

Примеры

Пример #1 Waiting for Conditions

<?php
/** PLEASE NOTE THIS EXAMPLE WILL CAUSE THE PROCESS TO HANG **/
$mutex = Mutex::create(true);
/** You cannot use the "new" keyword, a Cond is not a PHP object **/
$cond = Cond::create();
/** The caller must lock the associated Mutex before a call to broadcast **/
var_dump(Cond::wait($cond, $mutex));
/** Always destroy Cond you have created **/
Cond::destroy($cond);
Mutex::unlock($mutex);
Mutex::destroy($mutex);
?>

Результат выполнения данного примера:

int(49685473)


Семафоры, разделяемая память и IPC

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции семафоров
    • ftok — Преобразование пути и идентификатора проекта в ключ System V IPC
    • msg_get_queue — Создание или подключение к очереди сообщений
    • msg_queue_exists — Проверка существования очереди сообщений
    • msg_receive — Получение сообщения из очереди сообщений
    • msg_remove_queue — Удаление очереди сообщений
    • msg_send — Отправка сообщения в очередь сообщений
    • msg_set_queue — Установка информации в структуре данных очереди сообщений
    • msg_stat_queue — Получение информации из структуры данных очереди сообщений
    • sem_acquire — Захват семафора
    • sem_get — Получение идентификатора семафора
    • sem_release — Освобождение семафора
    • sem_remove — Удаление семафора
    • shm_attach — Creates or open a shared memory segment
    • shm_detach — Disconnects from shared memory segment
    • shm_get_var — Returns a variable from shared memory
    • shm_has_var — Check whether a specific entry exists
    • shm_put_var — Inserts or updates a variable in shared memory
    • shm_remove_var — Removes a variable from shared memory
    • shm_remove — Removes shared memory from Unix systems


Введение

Этот модуль обеспечивает поддержку семейства функций межпроцессного взаимодействия System V. Сюда входят семафоры, разделяемая память и обмен сообщениями между процессами (IPC).

Семафоры могут использоваться для получения эксклюзивного доступа к ресурсам локальной машины или для ограничения числа процессов, одновременно использующих ресурс.

Также этот модуль поддерживает функции для работы с разделяемой памятью System V. Разделяемая память может быть использована для предоставления доступа к глобальным переменным. Различные httpd-демоны и даже другие праграммы (написанные на Perl, C и т.д.) могут получать доступ к этим данным для осуществления глобального обмена данными. Помните, что разделяемая память НЕ ЗАЩИЩЕНА от одновременного доступа. Используйте семафоры для синхронизации.

Лимиты, наложенные на разделяемую память в Unix OS
SHMMAX | максимальный размер разделяемой памяти, обычно 131072 байт
SHMMIN | минимальный размер разделяемой памяти, обычно 1 байт
SHMMNI | максимальное количество сегментов разделяемой памяти в системе, обычно 100
SHMSEG | максимальное количество сегментов разделяемой памяти на процесс, обычно 6

Функции обмена сообщениями можно использовать для отправки и получения сообщений в/из другой процесс. Они обеспечивают простое и эффективное средство обмена данными между процессами без необходимости создания UNIX-сокетов.

Замечание: Для Windows-платформ это расширение недоступно.


Установка

Поддержка этих функций по умолчанию отключена. Для включения поддержки семафоров System V соберите PHP с опцией --enable-sysvsem . Для включения поддержки разделяемой памяти System V соберите PHP с опцией --enable-sysvshm . Для включения поддержки сообщений System V соберите PHP с опцией --enable-sysvmsg .


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройка конфигурации семафоров
Имя | По умолчанию | Меняемо | Список изменений
sysvshm.init_mem | 10000 | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

sysvshm.init_mem int

Размер сегмента разделяемой памяти по умолчанию.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы сообщений System V
Константа | Тип | История
MSG_IPC_NOWAIT | integer |
MSG_EAGAIN | integer | с 5.2.0
MSG_ENOMSG | integer | с 5.2.0
MSG_NOERROR | integer |
MSG_EXCEPT | integer |


Функции семафоров

Содержание

  • ftok — Преобразование пути и идентификатора проекта в ключ System V IPC
  • msg_get_queue — Создание или подключение к очереди сообщений
  • msg_queue_exists — Проверка существования очереди сообщений
  • msg_receive — Получение сообщения из очереди сообщений
  • msg_remove_queue — Удаление очереди сообщений
  • msg_send — Отправка сообщения в очередь сообщений
  • msg_set_queue — Установка информации в структуре данных очереди сообщений
  • msg_stat_queue — Получение информации из структуры данных очереди сообщений
  • sem_acquire — Захват семафора
  • sem_get — Получение идентификатора семафора
  • sem_release — Освобождение семафора
  • sem_remove — Удаление семафора
  • shm_attach — Creates or open a shared memory segment
  • shm_detach — Disconnects from shared memory segment
  • shm_get_var — Returns a variable from shared memory
  • shm_has_var — Check whether a specific entry exists
  • shm_put_var — Inserts or updates a variable in shared memory
  • shm_remove_var — Removes a variable from shared memory
  • shm_remove — Removes shared memory from Unix systems


Преобразование пути и идентификатора проекта в ключ System V IPC

  • « Функции семафоров
  • msg_get_queue »
  • PHP Manual
  • Функции семафоров
  • Преобразование пути и идентификатора проекта в ключ System V IPC

ftok

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftok — Преобразование пути и идентификатора проекта в ключ System V IPC

Описание

int ftok ( string $pathname , string $proj )

Функция преобразует pathname существующего, доступного файла и идентификатор проекта в целое для использования, например, в shmop_open() и других ключах System V IPC.

Список параметров

pathname

Путь к файлу

proj

Идентификатор проекта. Это должна быть одна строка.

Возвращаемые значения

В случае успеха возвращается созданное значение ключа, и -1 при неудаче.

Смотрите также

  • shmop_open() - Резервирование или использование блока разделяемой памяти
  • sem_get() - Получение идентификатора семафора


Создание или подключение к очереди сообщений

  • « ftok
  • msg_queue_exists »
  • PHP Manual
  • Функции семафоров
  • Создание или подключение к очереди сообщений

msg_get_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_get_queue — Создание или подключение к очереди сообщений

Описание

resource msg_get_queue ( int $key [, int $perms = 0666 ] )

msg_get_queue() возвращает идентификатор, который используется для доступа к очереди сообщений System V с указанным ключом key. Первый вызов создаёт очередь сообщений с необязательными правами perms. Второй и последующие вызовы msg_get_queue() для того же key будут возвращать другие идентификаторы, однако все они будут ссылаться на одну и ту же очередь сообщений.

Список параметров

key

Числовой идентификатор очереди сообщений.

perms

Права доступа к очереди. По умолчанию 0666. Если очередт сообщений уже существует, параметр perms игнорируется.

Возвращаемые значения

Возвращает дескриптор ресурса, который может быть использован для доступа к очереди сообщений System V.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_send() - Отправка сообщения в очередь сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений
  • msg_set_queue() - Установка информации в структуре данных очереди сообщений


Проверка существования очереди сообщений

  • « msg_get_queue
  • msg_receive »
  • PHP Manual
  • Функции семафоров
  • Проверка существования очереди сообщений

msg_queue_exists

(PHP 5 >= 5.3.0, PHP 7)

msg_queue_exists — Проверка существования очереди сообщений

Описание

bool msg_queue_exists ( int $key )

Проверяет существование очереди сообщений, задаваемой ключом key.

Список параметров

key

Ключ очереди.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений


Получение сообщения из очереди сообщений

  • « msg_queue_exists
  • msg_remove_queue »
  • PHP Manual
  • Функции семафоров
  • Получение сообщения из очереди сообщений

msg_receive

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_receive — Получение сообщения из очереди сообщений

Описание

bool msg_receive ( resource $queue , int $desiredmsgtype , int &$msgtype , int $maxsize , mixed &$message [, bool $unserialize = true [, int $flags = 0 [, int &$errorcode ]]] )

msg_receive() получает первое сообщение из задаваемой параметром queue очереди сообщений с типом, указанным в desiredmsgtype.

Список параметров

queue

Очередь.

desiredmsgtype

Если в desiredmsgtype указано 0, возвращается первое сообщение из очереди. Если desiredmsgtype больше 0, то возвращается первое сообщение с указанным типом. Если desiredmsgtype меньше 0, то возвращается первое сообщение с типом, меньшим или равным по модулю указанному в desiredmsgtype. Если нет сообщений, соответствующих критериям, ваш скрипт ожидает их появления в очереди. Вы можете изменить это поведение, указав MSG_IPC_NOWAIT в параметре flags.

msgtype

В этом параметре сохраняется тип полученного сообщения.

maxsize

Максимальный размер принимаемого сообщения задаётся в maxsize; если сообщение в очереди больше этого размера, то функция завершается ошибкой (если вы не установите flags как описано ниже).

message

Полученное сообщение сохраняется в message, если не было ошибок при получении.

unserialize

Если установлено в TRUE, сообщение рассматривается как сериализованое с использованием того же механизма, что и в модуле сессий. Сообщение десериализуется, а затем возвращается в ваш скрипт. Это позволяет вам легко получать массивы и сложные объекты из других PHP-скриптов, или, если вы используете WDDX-сериализатор, из любых совместимых с WDDX источников.

Если в unserialize указано FALSE, сообщение возвращается в виде бинарно-безопасной строки.

flags

Необязательный параметр flags позволяет вам передать флажки в низкоуровневый системный вызов msgrcv. По умолчанию его значение 0, однако вы можете указать одно или несколько следующих значений (складывая их или выполняя операцию бинарного ИЛИ).

Flag values for msg_receive
MSG_IPC_NOWAIT | Если нет сообщений, удовлетворяющих условиям desiredmsgtype, возвращаться немедленно, а не ждать. Функция завершается ошибкой и возвращает целочисленное значение MSG_ENOMSG.
MSG_EXCEPT | Использование этого флага в комбинации с указынным в desiredmsgtype положительным значением, позволяет получить первое сообщение, тип которого не равен значению desiredmsgtype.
MSG_NOERROR | Если размер сообщения превышает maxsize, то установка этого флага приводит к усечению сообщения до maxsize без сигнализирования об ошибке.

errorcode

Если функция завершается аварийно, необязательный параметр errorcode будет содержать значение системной переменной errno.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

При успешном завершении, структура данных очереди сообшений обновляется следующим образом: msg_lrpid содержит идентификатор вызвавшего процесса, msg_qnum уменьшается на 1 и msg_rtime устанавливается соответственно текущему времени.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_send() - Отправка сообщения в очередь сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений
  • msg_set_queue() - Установка информации в структуре данных очереди сообщений


Удаление очереди сообщений

  • « msg_receive
  • msg_send »
  • PHP Manual
  • Функции семафоров
  • Удаление очереди сообщений

msg_remove_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_remove_queue — Удаление очереди сообщений

Описание

bool msg_remove_queue ( resource $queue )

msg_remove_queue() удаляет очередь сообщений, указанную в параметре queue. Используйте эту функцию только тогда, когда все использовавшие очередь сообщений процессы завершили работу с ней и вам необходимо освободить системняе ресурсы.

Список параметров

queue

Дескриптор ресурса очереди сообщений

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msg_get_queue() - Создание или подключение к очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений
  • msg_set_queue() - Установка информации в структуре данных очереди сообщений


Отправка сообщения в очередь сообщений

  • « msg_remove_queue
  • msg_set_queue »
  • PHP Manual
  • Функции семафоров
  • Отправка сообщения в очередь сообщений

msg_send

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_send — Отправка сообщения в очередь сообщений

Описание

bool msg_send ( resource $queue , int $msgtype , mixed $message [, bool $serialize = true [, bool $blocking = true [, int &$errorcode ]]] )

msg_send() отправляет сообщение message с типом msgtype (должно быть больше 0) в очередь сообщений, указанную параметром queue.

Список параметров

queue

Очередь.

msgtype

Тип сообщения. Должно быть больше 0.

message

Сообщение.

serialize

Необязательный параметр serialize управляет тем, как будет отправлено сообщение message. По умолчанию serialize имеет значение TRUE, что означает сериализацию message перед отправкой тем же механизмом, который используется модулем обработки сессий. Это позволяет отправлять сложные массивы и объекты в другие PHP-скрипты, или, если вы используете сериализацию WDDX, в другие совместимые с WDDX клиенты.

blocking

Если помещаемое в очередь сообщение слишком велико, ваш скрипт будет ожидать прочтения сообщений другим процессом и освобождения места под отправляемое вами сообщение. Это называется блокировкой; вы можете отключить эту возможность, установив для blocking значение FALSE, в этом случае msg_send() будет немедленно возвращать FALSE если сообщение слишком велико, и устанавливать необязательный параметр errorcode в значение MSG_EAGAIN, что будет указывать вам на необходимость попробовать отправить сообщение несколько позже.

errorcode

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

При успешном завершении структура данных очереди сообщений обновится следующим образом: msg_lspid будет содержать идентификатор вызвавшего процесса, msg_qnum увеличится на 1, а msg_stime будет содержать текущее время.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений
  • msg_set_queue() - Установка информации в структуре данных очереди сообщений


Установка информации в структуре данных очереди сообщений

  • « msg_send
  • msg_stat_queue »
  • PHP Manual
  • Функции семафоров
  • Установка информации в структуре данных очереди сообщений

msg_set_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_set_queue — Установка информации в структуре данных очереди сообщений

Описание

bool msg_set_queue ( resource $queue , array $data )

msg_set_queue() позволяет вам изменить значения полей msg_perm.uid, msg_perm.gid, msg_perm.mode и msg_qbytes в служебной структуре данных очереди сообщений.

Изменение структуры данных возможно только в том случае, если PHP запущен от пользователя, создавшего очередь, владеющего очередью (определяется полем msg_perm.xxx), или имеющего root-привилегии. Root-привилегии требуются для увеличения значения msg_qbytes выше системных лимитов.

Список параметров

queue

Дескриптор ресурса очереди сообщений.

data

Вы указываете требующие установки значения через соответствующие ключи массива data.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_stat_queue() - Получение информации из структуры данных очереди сообщений
  • msg_get_queue() - Создание или подключение к очереди сообщений


Получение информации из структуры данных очереди сообщений

  • « msg_set_queue
  • sem_acquire »
  • PHP Manual
  • Функции семафоров
  • Получение информации из структуры данных очереди сообщений

msg_stat_queue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

msg_stat_queue — Получение информации из структуры данных очереди сообщений

Описание

array msg_stat_queue ( resource $queue )

msg_stat_queue() возвращает мета-данные очереди сообщений, задаваемой queue. Это полезно, например, для определения процесса-отправителя полученного вами только что сообщения.

Список параметров

queue

Дескриптор ресурса очереди сообщений.

Возвращаемые значения

Возвращаемое значение является массивом, ключи и значения которого означают следующее:

Структура массива для msg_stat_queue
msg_perm.uid | uid владельца очереди
msg_perm.gid | gid владельца очереди.
msg_perm.mode | Режим доступа к очереди.
msg_stime | Время последней отправки сообщения в очередь.
msg_rtime | Время последнего получения сообщаения из очереди.
msg_ctime | Время последнего изменения очереди.
msg_qnum | Количество сообщений в очереди.
msg_qbytes | Максимальное количество байт, допустимое в одной очеди сообщений. В Linux это значение можно получить и изменить через /proc/sys/kernel/msgmnb.
msg_lspid | pid процесса, последним отправившего сообщение в очередь.
msg_lrpid | pid прочесса, последним получившим сообщение из очереди.

Смотрите также

  • msg_remove_queue() - Удаление очереди сообщений
  • msg_receive() - Получение сообщения из очереди сообщений
  • msg_get_queue() - Создание или подключение к очереди сообщений
  • msg_set_queue() - Установка информации в структуре данных очереди сообщений


Захват семафора

  • « msg_stat_queue
  • sem_get »
  • PHP Manual
  • Функции семафоров
  • Захват семафора

sem_acquire

(PHP 4, PHP 5, PHP 7)

sem_acquire — Захват семафора

Описание

bool sem_acquire ( resource $sem_identifier [, bool $nowait = false ] )

sem_acquire() блокируется (при необходимости) до момента захвата семафора. Процесс, который попытается захватить семафор уже захваченный им же будет заблокирован навсегда, если будет превышено максимальное значение семафора.

После выполнения запроса, все захваченные, но явно не освобождённые процессом, семафоры освобождаются автоматически и генерируется предупреждение.

Список параметров

sem_identifier

sem_identifier это ресурс семафора, полученный из sem_get().

nowait

Указывает, должен ли процесс ждать для захвата семафора. Если установлено в true, вызов немедленно вернет false, если семафор не может быть захвачен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.6.1 | Добавлен параметр $nowait.

Смотрите также

  • sem_get() - Получение идентификатора семафора
  • sem_release() - Освобождение семафора


Получение идентификатора семафора

  • « sem_acquire
  • sem_release »
  • PHP Manual
  • Функции семафоров
  • Получение идентификатора семафора

sem_get

(PHP 4, PHP 5, PHP 7)

sem_get — Получение идентификатора семафора

Описание

resource sem_get ( int $key [, int $max_acquire = 1 [, int $perm = 0666 [, int $auto_release = 1 ]]] )

sem_get() возвращает идентификатор, который может быть использован для доступа к семафору System V, по заданному значению key.

Последующие вызовы sem_get() для того же самого ключа будут возвращать другие идентификаторы, однако все они будут ссылаться на один и тот же семафор.

Список параметров

key

max_acquire

Число процессов, которые могут одновременно использовать семафар задаётся через max_acquire.

perm

Права доступа к семафору. В действительности, устанавливается только если процесс является единственным использующим семафор.

auto_release

Определяет, должен ли семафор автоматически освобождаться при завершении работы.

Возвращаемые значения

При успешном завершении возвращается положительный идентификатор семафора, или FALSE при ошибке.

Примечания

Внимание

Когда sem_get() используется для доступа к семафору, созданному вне PHP, обратите внимание на то, что этот семафор должен бытль создан как набор из трех семафоров (к примеру, путем указания 3 в качестве параметра nsems во время вызова C-функции semget()), в пртивном слцчае, PHP не сможет обратиться к семафору.

Смотрите также

  • sem_acquire() - Захват семафора
  • sem_release() - Освобождение семафора
  • ftok() - Преобразование пути и идентификатора проекта в ключ System V IPC


Освобождение семафора

  • « sem_get
  • sem_remove »
  • PHP Manual
  • Функции семафоров
  • Освобождение семафора

sem_release

(PHP 4, PHP 5, PHP 7)

sem_release — Освобождение семафора

Описание

bool sem_release ( resource $sem_identifier )

sem_release() освобождает семафор, если он был захвачен вызывающим процессом, в противном случае генерируется предупреждение.

После освобождени семафор может быть захвачен повторно через вызов sem_acquire().

Список параметров

sem_identifier

Ресурс семафора, возвращённый sem_get().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sem_get() - Получение идентификатора семафора
  • sem_acquire() - Захват семафора


Удаление семафора

  • « sem_release
  • shm_attach »
  • PHP Manual
  • Функции семафоров
  • Удаление семафора

sem_remove

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

sem_remove — Удаление семафора

Описание

bool sem_remove ( resource $sem_identifier )

sem_remove() удаляет указанный семафор.

После удаления семафора он становится более не доступным.

Список параметров

sem_identifier

Идентификатор семафора, возвращённый sem_get().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • sem_get() - Получение идентификатора семафора
  • sem_release() - Освобождение семафора
  • sem_acquire() - Захват семафора


Creates or open a shared memory segment

  • « sem_remove
  • shm_detach »
  • PHP Manual
  • Функции семафоров
  • Creates or open a shared memory segment

shm_attach

(PHP 4, PHP 5, PHP 7)

shm_attach — Creates or open a shared memory segment

Описание

resource shm_attach ( int $key [, int $memsize [, int $perm = 0666 ]] )

shm_attach() returns an id that can be used to access the System V shared memory with the given key, the first call creates the shared memory segment with memsize and the optional perm-bits perm.

A second call to shm_attach() for the same key will return a different shared memory identifier, but both identifiers access the same underlying shared memory. memsize and perm will be ignored.

Список параметров

key

A numeric shared memory segment ID

memsize

The memory size. If not provided, default to the sysvshm.init_mem in the php.ini, otherwise 10000 bytes.

perm

The optional permission bits. Default to 0666.

Возвращаемые значения

Returns a shared memory segment identifier.

Список изменений

Версия | Описание
5.3.0 | This function now returns a resource instead of an integer.

Примечания

Замечание:

This function used to return an integer value prior to PHP 5.3.0. To achieve the same value in a portable manner, the return value can be cast to an integer like:

<?php
// Create a temporary file and return its path
$tmp = tempnam('/tmp', 'PHP');

// Get the file token key
$key = ftok($tmp, 'a');

// Attach the SHM resource, notice the cast afterwards
$id = shm_attach($key);

if ($id === false) {
    die('Unable to create the shared memory segment');
}

// Cast to integer, since prior to PHP 5.3.0 the resource id
// is returned which can be exposed when casting a resource
// to an integer
$id = (integer) $id;
?>

Смотрите также

  • shm_detach() - Disconnects from shared memory segment
  • ftok() - Преобразование пути и идентификатора проекта в ключ System V IPC


Disconnects from shared memory segment

  • « shm_attach
  • shm_get_var »
  • PHP Manual
  • Функции семафоров
  • Disconnects from shared memory segment

shm_detach

(PHP 4, PHP 5, PHP 7)

shm_detach — Disconnects from shared memory segment

Описание

bool shm_detach ( resource $shm_identifier )

shm_detach() disconnects from the shared memory given by the shm_identifier created by shm_attach(). Remember, that shared memory still exist in the Unix system and the data is still present.

Список параметров

shm_identifier

A shared memory resource handle as returned by shm_attach()

Возвращаемые значения

shm_detach() always returns TRUE.

Смотрите также

  • shm_attach() - Creates or open a shared memory segment
  • shm_remove() - Removes shared memory from Unix systems
  • shm_remove_var() - Removes a variable from shared memory


Returns a variable from shared memory

  • « shm_detach
  • shm_has_var »
  • PHP Manual
  • Функции семафоров
  • Returns a variable from shared memory

shm_get_var

(PHP 4, PHP 5, PHP 7)

shm_get_var — Returns a variable from shared memory

Описание

mixed shm_get_var ( resource $shm_identifier , int $variable_key )

shm_get_var() returns the variable with a given variable_key, in the given shared memory segment. The variable is still present in the shared memory.

Список параметров

shm_identifier

Shared memory segment, obtained from shm_attach().

variable_key

The variable key.

Возвращаемые значения

Returns the variable with the given key.

Смотрите также

  • shm_has_var() - Check whether a specific entry exists
  • shm_put_var() - Inserts or updates a variable in shared memory


Check whether a specific entry exists

  • « shm_get_var
  • shm_put_var »
  • PHP Manual
  • Функции семафоров
  • Check whether a specific entry exists

shm_has_var

(PHP 5 >= 5.3.0, PHP 7)

shm_has_var — Check whether a specific entry exists

Описание

bool shm_has_var ( resource $shm_identifier , int $variable_key )

Checks whether a specific key exists inside a shared memory segment.

Список параметров

shm_identifier

Shared memory segment, obtained from shm_attach().

variable_key

The variable key.

Возвращаемые значения

Returns TRUE if the entry exists, otherwise FALSE

Смотрите также

  • shm_get_var() - Returns a variable from shared memory
  • shm_put_var() - Inserts or updates a variable in shared memory


Inserts or updates a variable in shared memory

  • « shm_has_var
  • shm_remove_var »
  • PHP Manual
  • Функции семафоров
  • Inserts or updates a variable in shared memory

shm_put_var

(PHP 4, PHP 5, PHP 7)

shm_put_var — Inserts or updates a variable in shared memory

Описание

bool shm_put_var ( resource $shm_identifier , int $variable_key , mixed $variable )

shm_put_var() inserts or updates the variable with the given variable_key.

Warnings (E_WARNING level) will be issued if shm_identifier is not a valid SysV shared memory index or if there was not enough shared memory remaining to complete your request.

Список параметров

shm_identifier

A shared memory resource handle as returned by shm_attach()

variable_key

The variable key.

variable

The variable. All variable types that serialize() supports may be used: generally this means all types except for resources and some internal objects that cannot be serialized.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • shm_get_var() - Returns a variable from shared memory
  • shm_has_var() - Check whether a specific entry exists


Removes a variable from shared memory

  • « shm_put_var
  • shm_remove »
  • PHP Manual
  • Функции семафоров
  • Removes a variable from shared memory

shm_remove_var

(PHP 4, PHP 5, PHP 7)

shm_remove_var — Removes a variable from shared memory

Описание

bool shm_remove_var ( resource $shm_identifier , int $variable_key )

Removes a variable with a given variable_key and frees the occupied memory.

Список параметров

shm_identifier

The shared memory identifier as returned by shm_attach()

variable_key

The variable key.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • shm_remove() - Removes shared memory from Unix systems


Removes shared memory from Unix systems

  • « shm_remove_var
  • Управление разделяемой памятью »
  • PHP Manual
  • Функции семафоров
  • Removes shared memory from Unix systems

shm_remove

(PHP 4, PHP 5, PHP 7)

shm_remove — Removes shared memory from Unix systems

Описание

bool shm_remove ( resource $shm_identifier )

shm_remove() removes the shared memory shm_identifier. All data will be destroyed.

Список параметров

shm_identifier

The shared memory identifier as returned by shm_attach()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • shm_remove_var() - Removes a variable from shared memory


Управление разделяемой памятью

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
  • Разделяемая (shared) память
    • shmop_close — Закрытие блока разделяемой памяти
    • shmop_delete — Удаление блока разделяемой памяти
    • shmop_open — Резервирование или использование блока разделяемой памяти
    • shmop_read — Чтение данных из участка разделяемой памяти
    • shmop_size — Возвращает размер блока в разделяемой памяти
    • shmop_write — Запись данных в разделяемую память


Введение

Набор функций shmop позволяет легко выполнять операции чтения, записи, резервирования и удаления сегментов разделяемой памяти Unix.

Замечание: Версии Windows, предшествующие Windows 2000, не поддерживают разделяемую память.


Установка

Для использования набора функций shmop необходимо скомпилировать PHP с опцией --enable-shmop в строке конфигурации.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

С PHP 7.0.0, это расширение задает тип ресурса shmop, являющийся обработчиком блока разделяемой памяти.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Управление разделяемой памятью
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • Управление разделяемой памятью
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

Пример #1 Обзор операций с разделяемой памятью

<?php

// Создание блока с идентификатором 0xff3 и размером в 100 байт.
$shm_id = shmop_open(0xff3, "c", 0644, 100);
if (!$shm_id) {
    echo "Невозможно зарезервировать блок в сегменте памяти\n";
}

// Получение размера блока в разделяемой памяти
$shm_size = shmop_size($shm_id);
echo "Участок памяти, размером: " . $shm_size . ", успешно зарезервирован.\n";

// Проверочная запись некоторой строки в разделяемую память
$shm_bytes_written = shmop_write($shm_id, "Мой маленький блок", 0);
if ($shm_bytes_written != strlen("Мой маленький блок")) {
    echo "Не удалось записать весь размер данных\n";
}

// Получение хранимой строки из разделяемой памяти
$my_string = shmop_read($shm_id, 0, $shm_size);
if (!$my_string) {
    echo "Невозможно прочитать данные из блока памяти\n";
}
echo "Данные, размещенные в разделяемой памяти: " . $my_string . "\n";

// Удаление блока и закрытие сегмента разделяемой памяти
if (!shmop_delete($shm_id)) {
    echo "Невозможно отметить участок памяти для освобождения.";
}
shmop_close($shm_id);

?>


Разделяемая (shared) память

Содержание

  • shmop_close — Закрытие блока разделяемой памяти
  • shmop_delete — Удаление блока разделяемой памяти
  • shmop_open — Резервирование или использование блока разделяемой памяти
  • shmop_read — Чтение данных из участка разделяемой памяти
  • shmop_size — Возвращает размер блока в разделяемой памяти
  • shmop_write — Запись данных в разделяемую память


Закрытие блока разделяемой памяти

  • « Разделяемая (shared) память
  • shmop_delete »
  • PHP Manual
  • Разделяемая (shared) память
  • Закрытие блока разделяемой памяти

shmop_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_close — Закрытие блока разделяемой памяти

Описание

void shmop_close ( resource $shmid )

shmop_close() используется для завершения доступа к блоку разделяемой памяти.

Список параметров

shmid

Ресурс блока памяти, возвращаемый функцией shmop_open()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Закрытие блока разделяемой памяти

<?php
shmop_close($shm_id);
?>

В данном примере прекращается доступ к блоку памяти, имеющему идентификатор $shm_id.

Смотрите также

  • shmop_open() - Резервирование или использование блока разделяемой памяти


Удаление блока разделяемой памяти

  • « shmop_close
  • shmop_open »
  • PHP Manual
  • Разделяемая (shared) память
  • Удаление блока разделяемой памяти

shmop_delete

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_delete — Удаление блока разделяемой памяти

Описание

bool shmop_delete ( resource $shmid )

shmop_delete() используется для удаления блока разделяемой памяти.

Список параметров

shmid

Ресурс блока памяти, возвращаемый функцией shmop_open()

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Удаление блока разделяемой памяти

<?php
shmop_delete($shm_id);
?>

В приведенном примере показано удаление блока разделяемой памяти, имеющего идентификатор $shm_id.


Резервирование или использование блока разделяемой памяти

  • « shmop_delete
  • shmop_read »
  • PHP Manual
  • Разделяемая (shared) память
  • Резервирование или использование блока разделяемой памяти

shmop_open

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_open — Резервирование или использование блока разделяемой памяти

Описание

resource shmop_open ( int $key , string $flags , int $mode , int $size )

shmop_open() резервирует или использует существующий блок разделяемой памяти.

Список параметров

key

Системный идентификатор блока разделяемой памяти. Может быть задан в десятичной или шестнадцатеричной кодировке.

flags

Доступные для использования флаги:

  • "a" для доступа (устанавливает флаг SHM_RDONLY) Следует применять этот флаг, когда необходимо использовать ранее зарезервированный участок разделяемой памяти, уже содержащий какие-либо данные. В этом случае доступ возможен только для операций чтения.
  • "c" для резервирования (устанавливает флаг IPC_CREATE) Следует применять этот флаг для создания нового зарезервированного участка разделяемой памяти. Если участок памяти с таким идентификатором уже существует, выполняется попытка доступа к нему для последующих операций чтения и записи.
  • "w" для выполнения операций чтения и записи Следует применять этот флаг для чтения и записи данных, хранимых в разделяемой памяти. Данный флаг используется в большинстве случаев.
  • "n" для создания в памяти нового сегмента (устанавливает флаг IPC_CREATE|IPC_EXCL) Следует применять этот флаг для создания нового сегмента в разделяемой памяти, но если сегмент уже существует с тем же флагом, происходит отказ. Это полезно в целях безопасности, т.к. позволяет избежать ошибок синхронизации (Race condition exploits).

mode

Права доступа к участку памяти такие же, как к обычному файлу. Их можно указывать в восьмеричном виде, например 0644.

size

Размер резервируемого блока в разделяемой памяти в байтах

Замечание:

Обратите внимание: Третий и четвертый параметры должны быть указаны как 0, если необходимо получить доступ к существующему участку памяти.

Возвращаемые значения

При успешном выполнении shmop_open() возвращается роесурс, который может быть в дальнейшем использован для доступа к зарезервированному участку памяти.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Резервирование участка разделяемой памяти

<?php
$shm_key = ftok(__FILE__, 't');
$shm_id = shmop_open($shm_key, "c", 0644, 100);
?>

В приведенном примере выполняется доступ к блоку с идентификатором, возвращаемым функцией ftok().

Смотрите также

  • shmop_close() - Закрытие блока разделяемой памяти
  • shmop_delete() - Удаление блока разделяемой памяти


Чтение данных из участка разделяемой памяти

  • « shmop_open
  • shmop_size »
  • PHP Manual
  • Разделяемая (shared) память
  • Чтение данных из участка разделяемой памяти

shmop_read

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_read — Чтение данных из участка разделяемой памяти

Описание

string shmop_read ( resource $shmid , int $start , int $count )

shmop_read() возвращает строковые данные, хранимые в участке разделяемой памяти.

Список параметров

shmid

Ресурс блока памяти, возвращаемый функцией shmop_open()

start

Определяет, с какой позиции начинать чтение данных.

count

Количество байтов для чтения.

Возвращаемые значения

Возвращает строковые данные или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Чтение данных из участка разделяемой памяти

<?php
$shm_data = shmop_read($shm_id, 0, 50);
?>

В приведенном примере выполняется чтение 50 байт из участка разделяемой памяти (идентифицируемого по $shm_id) и размещение в $shm_data.

Смотрите также

  • shmop_write() - Запись данных в разделяемую память


Возвращает размер блока в разделяемой памяти

  • « shmop_read
  • shmop_write »
  • PHP Manual
  • Разделяемая (shared) память
  • Возвращает размер блока в разделяемой памяти

shmop_size

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_size — Возвращает размер блока в разделяемой памяти

Описание

int shmop_size ( resource $shmid )

shmop_size() используется для получения размера блока разделяемой памяти в байтах.

Список параметров

shmid

Ресурс блока памяти, возвращаемый функцией shmop_open()

Возвращаемые значения

Результатом является целое число, отражающее количество байт, зарезервированных в разделяемой памяти для конкретного блока.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Получение размера блока разделяемой памяти

<?php
$shm_size = shmop_size($shm_id);
?>

В приведенном примере показано получение размера блока с идентификатором $shm_id и его сохранение в $shm_size.


Запись данных в разделяемую память

  • « shmop_size
  • Sync »
  • PHP Manual
  • Разделяемая (shared) память
  • Запись данных в разделяемую память

shmop_write

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

shmop_write — Запись данных в разделяемую память

Описание

int shmop_write ( resource $shmid , string $data , int $offset )

shmop_write() записывает строковые данные в участок разделяемой памяти.

Список параметров

shmid

Ресурс блока памяти, возвращаемый функцией shmop_open()

data

Строковые данные для размещения в памяти

offset

Определяет, в каком месте участка памяти следует начать запись данных.

Возвращаемые значения

Размер записанных данных, переданных через параметр data, или FALSE при отказе.

Список изменений

Версия | Описание
7.0.0 | Тип shmid был изменен с int на resource.

Примеры

Пример #1 Запись данных в участок разделяемой памяти

<?php
$shm_bytes_written = shmop_write($shm_id, $my_string, 0);
?>

В данном примере в память помещается содержимое строковой переменной $my_string, после чего переменная $shm_bytes_written будет содержать размер фактически записанных данных.

Смотрите также

  • shmop_read() - Чтение данных из участка разделяемой памяти


Sync

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • SyncMutex — The SyncMutex class
    • SyncMutex::__construct — Constructs a new SyncMutex object
    • SyncMutex::lock — Waits for an exclusive lock
    • SyncMutex::unlock — Unlocks the mutex
  • SyncSemaphore — The SyncSemaphore class
    • SyncSemaphore::__construct — Constructs a new SyncSemaphore object
    • SyncSemaphore::lock — Decreases the count of the semaphore or waits
    • SyncSemaphore::unlock — Increases the count of the semaphore
  • SyncEvent — The SyncEvent class
    • SyncEvent::__construct — Constructs a new SyncEvent object
    • SyncEvent::fire — Fires/sets the event
    • SyncEvent::reset — Resets a manual event
    • SyncEvent::wait — Waits for the event to be fired/set
  • SyncReaderWriter — The SyncReaderWriter class
    • SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object
    • SyncReaderWriter::readlock — Waits for a read lock
    • SyncReaderWriter::readunlock — Releases a read lock
    • SyncReaderWriter::writelock — Waits for an exclusive write lock
    • SyncReaderWriter::writeunlock — Releases a write lock
  • SyncSharedMemory — The SyncSharedMemory class
    • SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object
    • SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory
    • SyncSharedMemory::read — Copy data from named shared memory
    • SyncSharedMemory::size — Returns the size of the named shared memory
    • SyncSharedMemory::write — Copy data to named shared memory


Введение

The 'sync' extension introduces cross-platform synchonization objects into PHP. Named and unnamed Mutex, Semaphore, Event, Reader-Writer, and named Shared Memory objects provide OS-level synchronization on both POSIX (e.g. Linux) and Windows platforms.

Automatic cleanup of acquired synchronization objects takes place during extension teardown. This means that if PHP prematurely terminates a script (e.g. script execution time is exceeded), objects will not be left in an unknown state. The only exception to this is if PHP itself crashes (e.g. an internal buffer overflow).

Unnamed synchronization objects don't have a lot of use outside of a multithreaded scenario. Unnamed objects are more useful in conjunction with the pthreads PECL extension.

Замечание:

Named objects require additional care to be used on all systems. If an object is instantiated with a specific set of parameters, it must always be instantiated with those parameters or the object will probably end up in an inconsistent state until the next reboot or a system administrator cleans up the mess.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

A system with support for POSIX shared memory (shm_open()) or running Windows.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/sync.


  • « Типы ресурсов
  • SyncMutex »
  • PHP Manual
  • Sync
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


The SyncMutex class

(PECL sync >= 1.0.0)

Введение

A cross-platform, native implementation of named and unnamed countable mutex objects.

A mutex is a mutual exclusion object that restricts access to a shared resource (e.g. a file) to a single instance. Countable mutexes acquire the mutex a single time and internally track the number of times the mutex is locked. The mutex is unlocked as soon as it goes out of scope or is unlocked the same number of times that it was locked.

Обзор классов

SyncMutex {
/* Методы */
public __construct ([ string $name ] )
public bool lock ([ integer $wait = -1 ] )
public bool unlock ([ bool $all = false ] )
}

Содержание

  • SyncMutex::__construct — Constructs a new SyncMutex object
  • SyncMutex::lock — Waits for an exclusive lock
  • SyncMutex::unlock — Unlocks the mutex


Constructs a new SyncMutex object

  • « SyncMutex
  • SyncMutex::lock »
  • PHP Manual
  • SyncMutex
  • Constructs a new SyncMutex object

SyncMutex::__construct

(PECL sync >= 1.0.0)

SyncMutex::__construct — Constructs a new SyncMutex object

Описание

public SyncMutex::__construct ([ string $name ] )

Constructs a named or unnamed countable mutex.

Список параметров

name

The name of the mutex if this is a named mutex object.

Замечание:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

Возвращаемые значения

The new SyncMutex object. An exception is thrown if the mutex cannot be created or opened.

Примеры

Пример #1 SyncMutex::__construct() named mutex with lock timeout example

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
    echo "Unable to lock mutex.";

    exit();
}

/* ... */

$mutex->unlock();
?>

Пример #2 SyncMutex::__construct() unnamed mutex example

<?php
$mutex = new SyncMutex();

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Смотрите также

  • SyncMutex::lock() - Waits for an exclusive lock
  • SyncMutex::unlock() - Unlocks the mutex


Waits for an exclusive lock

  • « SyncMutex::__construct
  • SyncMutex::unlock »
  • PHP Manual
  • SyncMutex
  • Waits for an exclusive lock

SyncMutex::lock

(PECL sync >= 1.0.0)

SyncMutex::lock — Waits for an exclusive lock

Описание

public bool SyncMutex::lock ([ integer $wait = -1 ] )

Obtains an exclusive lock on a SyncMutex object. If the lock is already acquired, then this increments an internal counter.

Список параметров

wait

The number of milliseconds to wait for the exclusive lock. A value of -1 is infinite.

Возвращаемые значения

A boolean of TRUE if the lock was obtained, FALSE otherwise.

Примеры

Пример #1 SyncMutex::lock() example

<?php
$mutex = new SyncMutex("UniqueName");

if (!$mutex->lock(3000))
{
    echo "Unable to lock mutex.";

    exit();
}

/* ... */

$mutex->unlock();
?>

Смотрите также

  • SyncMutex::unlock() - Unlocks the mutex


Unlocks the mutex

  • « SyncMutex::lock
  • SyncSemaphore »
  • PHP Manual
  • SyncMutex
  • Unlocks the mutex

SyncMutex::unlock

(PECL sync >= 1.0.0)

SyncMutex::unlock — Unlocks the mutex

Описание

public bool SyncMutex::unlock ([ bool $all = false ] )

Decreases the internal counter of a SyncMutex object. When the internal counter reaches zero, the actual lock on the object is released.

Список параметров

all

Specifies whether or not to set the internal counter to zero and therefore release the lock.

Возвращаемые значения

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Примеры

Пример #1 SyncMutex::unlock() example

<?php
$mutex = new SyncMutex("UniqueName");

$mutex->lock();

/* ... */

$mutex->unlock();
?>

Смотрите также

  • SyncMutex::lock() - Waits for an exclusive lock


The SyncSemaphore class

(PECL sync >= 1.0.0)

Введение

A cross-platform, native implementation of named and unnamed sempahore objects.

A semaphore restricts access to a limited resource to a limited number of instances. Semaphores differ from mutexes in that they can allow more than one instance to access a resource at one time while a mutex only allows one instance at a time.

Обзор классов

SyncSemaphore {
/* Методы */
public __construct ([ string $name [, integer $initialval = 1 [, bool $autounlock = true ]]] )
public bool lock ([ integer $wait = -1 ] )
public bool unlock ([ integer &$prevcount ] )
}

Содержание

  • SyncSemaphore::__construct — Constructs a new SyncSemaphore object
  • SyncSemaphore::lock — Decreases the count of the semaphore or waits
  • SyncSemaphore::unlock — Increases the count of the semaphore


Constructs a new SyncSemaphore object

  • « SyncSemaphore
  • SyncSemaphore::lock »
  • PHP Manual
  • SyncSemaphore
  • Constructs a new SyncSemaphore object

SyncSemaphore::__construct

(PECL sync >= 1.0.0)

SyncSemaphore::__construct — Constructs a new SyncSemaphore object

Описание

public SyncSemaphore::__construct ([ string $name [, integer $initialval = 1 [, bool $autounlock = true ]]] )

Constructs a named or unnamed semaphore.

Список параметров

name

The name of the semaphore if this is a named semaphore object.

Замечание:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

initialval

The initial value of the semaphore. This is the number of locks that may be obtained.

autounlock

Specifies whether or not to automatically unlock the semaphore at the conclusion of the PHP script.

Внимание

If an object is: A named semaphore with an autounlock of FALSE, the object is locked, and the PHP script concludes before the object is unlocked, then the underlying semaphore will end up in an inconsistent state.

Возвращаемые значения

The new SyncSemaphore object. An exception is thrown if the semaphore cannot be created or opened.

Примеры

Пример #1 SyncSemaphore::__construct() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Unable to lock semaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

Смотрите также

  • SyncSemaphore::lock() - Decreases the count of the semaphore or waits
  • SyncSemaphore::unlock() - Increases the count of the semaphore


Decreases the count of the semaphore or waits

  • « SyncSemaphore::__construct
  • SyncSemaphore::unlock »
  • PHP Manual
  • SyncSemaphore
  • Decreases the count of the semaphore or waits

SyncSemaphore::lock

(PECL sync >= 1.0.0)

SyncSemaphore::lock — Decreases the count of the semaphore or waits

Описание

public bool SyncSemaphore::lock ([ integer $wait = -1 ] )

Decreases the count of a SyncSemaphore object or waits until the semaphore becomes non-zero.

Список параметров

wait

The number of milliseconds to wait for the semaphore. A value of -1 is infinite.

Возвращаемые значения

A boolean of TRUE if the lock operation was successful, FALSE otherwise.

Примеры

Пример #1 SyncSemaphore::lock() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Unable to lock semaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

Смотрите также

  • SyncSemaphore::unlock() - Increases the count of the semaphore


Increases the count of the semaphore

  • « SyncSemaphore::lock
  • SyncEvent »
  • PHP Manual
  • SyncSemaphore
  • Increases the count of the semaphore

SyncSemaphore::unlock

(PECL sync >= 1.0.0)

SyncSemaphore::unlock — Increases the count of the semaphore

Описание

public bool SyncSemaphore::unlock ([ integer &$prevcount ] )

Increases the count of a SyncSemaphore object.

Список параметров

prevcount

Returns the previous count of the semaphore.

Возвращаемые значения

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Примеры

Пример #1 SyncSemaphore::unlock() example

<?php
$semaphore = new SyncSemaphore("LimitedResource_2clients", 2);

if (!$semaphore->lock(3000))
{
    echo "Unable to lock semaphore.";

    exit();
}

/* ... */

$semaphore->unlock();
?>

Смотрите также

  • SyncSemaphore::lock() - Decreases the count of the semaphore or waits


The SyncEvent class

(PECL sync >= 1.0.0)

Введение

A cross-platform, native implementation of named and unnamed event objects. Both automatic and manual event objects are supported.

An event object waits, without polling, for the object to be fired/set. One instance waits on the event object while another instance fires/sets the event. Event objects are useful wherever a long-running process would otherwise poll a resource (e.g. checking to see if uploaded data needs to be processed).

Обзор классов

SyncEvent {
/* Методы */
public __construct ([ string $name [, bool $manual = false [, bool $prefire = false ]]] )
public bool fire ( void )
public bool reset ( void )
public bool wait ([ integer $wait = -1 ] )
}

Содержание

  • SyncEvent::__construct — Constructs a new SyncEvent object
  • SyncEvent::fire — Fires/sets the event
  • SyncEvent::reset — Resets a manual event
  • SyncEvent::wait — Waits for the event to be fired/set


Constructs a new SyncEvent object

  • « SyncEvent
  • SyncEvent::fire »
  • PHP Manual
  • SyncEvent
  • Constructs a new SyncEvent object

SyncEvent::__construct

(PECL sync >= 1.0.0)

SyncEvent::__construct — Constructs a new SyncEvent object

Описание

public SyncEvent::__construct ([ string $name [, bool $manual = false [, bool $prefire = false ]]] )

Constructs a named or unnamed event object.

Список параметров

name

The name of the event if this is a named event object.

Замечание:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

manual

Specifies whether or not the event object must be reset manually.

Замечание:

Manual reset event objects allow all waiting processes through until the object is reset.

prefire

Specifies whether or not to prefire (signal) the event object.

Замечание:

Only has impact if the calling process/thread is the first to create the object.

Возвращаемые значения

The new SyncEvent object. An exception is thrown if the event object cannot be created or opened.

Примеры

Пример #1 SyncEvent::__construct() example

<?php
// In a web application:
$event = new SyncEvent("GetAppReport");
$event->fire();

// In a cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Список изменений

Версия | Описание
1.1.0 | Added prefire.

Смотрите также

  • SyncEvent::fire() - Fires/sets the event
  • SyncEvent::reset() - Resets a manual event
  • SyncEvent::wait() - Waits for the event to be fired/set


Fires/sets the event

  • « SyncEvent::__construct
  • SyncEvent::reset »
  • PHP Manual
  • SyncEvent
  • Fires/sets the event

SyncEvent::fire

(PECL sync >= 1.0.0)

SyncEvent::fire — Fires/sets the event

Описание

public bool SyncEvent::fire ( void )

Fires/sets a SyncEvent object. Lets multiple threads through that are waiting if the event object was created with a manual value of TRUE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean of TRUE if the event was fired, FALSE otherwise.

Примеры

Пример #1 SyncEvent::fire() example

<?php
// In a web application:
$event = new SyncEvent("GetAppReport");
$event->fire();

// In a cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Смотрите также

  • SyncEvent::reset() - Resets a manual event
  • SyncEvent::wait() - Waits for the event to be fired/set


Resets a manual event

  • « SyncEvent::fire
  • SyncEvent::wait »
  • PHP Manual
  • SyncEvent
  • Resets a manual event

SyncEvent::reset

(PECL sync >= 1.0.0)

SyncEvent::reset — Resets a manual event

Описание

public bool SyncEvent::reset ( void )

Resets a SyncEvent object that has been fired/set. Only valid for manual event objects.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean value of TRUE if the object was successfully reset, FALSE otherwise.

Примеры

Пример #1 SyncEvent::reset() example

<?php
// In a web application:
$event = new SyncEvent("DemoApplication", true);
$event->wait();

// In a cron job:
$event = new SyncEvent("DemoApplication", true);
$event->reset();
/* ... Do some maintenance task(s) ... */
$event->fire();
?>

Смотрите также

  • SyncEvent::fire() - Fires/sets the event
  • SyncEvent::reset()
  • SyncEvent::wait() - Waits for the event to be fired/set


Waits for the event to be fired/set

  • « SyncEvent::reset
  • SyncReaderWriter »
  • PHP Manual
  • SyncEvent
  • Waits for the event to be fired/set

SyncEvent::wait

(PECL sync >= 1.0.0)

SyncEvent::wait — Waits for the event to be fired/set

Описание

public bool SyncEvent::wait ([ integer $wait = -1 ] )

Waits for the SyncEvent object to be fired.

Список параметров

wait

The number of milliseconds to wait for the event to be fired. A value of -1 is infinite.

Возвращаемые значения

A boolean of TRUE if the event was fired, FALSE otherwise.

Примеры

Пример #1 SyncEvent::wait() example

<?php
// In a web application:
$event = new SyncEvent("GetAppReport");
$event->fire();

// In a cron job:
$event = new SyncEvent("GetAppReport");
$event->wait();
?>

Смотрите также

  • SyncEvent::fire() - Fires/sets the event


The SyncReaderWriter class

(PECL sync >= 1.0.0)

Введение

A cross-platform, native implementation of named and unnamed reader-writer objects.

A reader-writer object allows many readers or one writer to access a resource. This is an efficient solution for managing resources where access will primarily be read-only but exclusive write access is occasionally necessary.

Обзор классов

SyncReaderWriter {
/* Методы */
public __construct ([ string $name [, bool $autounlock = true ]] )
public bool readlock ([ integer $wait = -1 ] )
public bool readunlock ( void )
public bool writelock ([ integer $wait = -1 ] )
public bool writeunlock ( void )
}

Содержание

  • SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object
  • SyncReaderWriter::readlock — Waits for a read lock
  • SyncReaderWriter::readunlock — Releases a read lock
  • SyncReaderWriter::writelock — Waits for an exclusive write lock
  • SyncReaderWriter::writeunlock — Releases a write lock


Constructs a new SyncReaderWriter object

  • « SyncReaderWriter
  • SyncReaderWriter::readlock »
  • PHP Manual
  • SyncReaderWriter
  • Constructs a new SyncReaderWriter object

SyncReaderWriter::__construct

(PECL sync >= 1.0.0)

SyncReaderWriter::__construct — Constructs a new SyncReaderWriter object

Описание

public SyncReaderWriter::__construct ([ string $name [, bool $autounlock = true ]] )

Constructs a named or unnamed reader-writer object.

Список параметров

name

The name of the reader-writer if this is a named reader-writer object.

Замечание:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

autounlock

Specifies whether or not to automatically unlock the reader-writer at the conclusion of the PHP script.

Внимание

If an object is: A named reader-writer with an autounlock of FALSE, the object is locked for either reading or writing, and the PHP script concludes before the object is unlocked, then the underlying objects will end up in an inconsistent state.

Возвращаемые значения

The new SyncReaderWriter object. An exception is thrown if the reader-writer cannot be created or opened.

Примеры

Пример #1 SyncReaderWriter::__construct() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();

$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Смотрите также

  • SyncReaderWriter::readlock() - Waits for a read lock
  • SyncReaderWriter::readunlock() - Releases a read lock
  • SyncReaderWriter::writelock() - Waits for an exclusive write lock
  • SyncReaderWriter::writeunlock() - Releases a write lock


Waits for a read lock

  • « SyncReaderWriter::__construct
  • SyncReaderWriter::readunlock »
  • PHP Manual
  • SyncReaderWriter
  • Waits for a read lock

SyncReaderWriter::readlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readlock — Waits for a read lock

Описание

public bool SyncReaderWriter::readlock ([ integer $wait = -1 ] )

Obtains a read lock on a SyncReaderWriter object.

Список параметров

wait

The number of milliseconds to wait for a lock. A value of -1 is infinite.

Возвращаемые значения

A boolean of TRUE if the lock was obtained, FALSE otherwise.

Примеры

Пример #1 SyncReaderWriter::readlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Смотрите также

  • SyncReaderWriter::readunlock() - Releases a read lock


Releases a read lock

  • « SyncReaderWriter::readlock
  • SyncReaderWriter::writelock »
  • PHP Manual
  • SyncReaderWriter
  • Releases a read lock

SyncReaderWriter::readunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::readunlock — Releases a read lock

Описание

public bool SyncReaderWriter::readunlock ( void )

Releases a read lock on a SyncReaderWriter object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Примеры

Пример #1 SyncReaderWriter::readunlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->readlock();
/* ... */
$readwrite->readunlock();
?>

Смотрите также

  • SyncReaderWriter::readlock() - Waits for a read lock


Waits for an exclusive write lock

  • « SyncReaderWriter::readunlock
  • SyncReaderWriter::writeunlock »
  • PHP Manual
  • SyncReaderWriter
  • Waits for an exclusive write lock

SyncReaderWriter::writelock

(PECL sync >= 1.0.0)

SyncReaderWriter::writelock — Waits for an exclusive write lock

Описание

public bool SyncReaderWriter::writelock ([ integer $wait = -1 ] )

Obtains an exclusive write lock on a SyncReaderWriter object.

Список параметров

wait

The number of milliseconds to wait for a lock. A value of -1 is infinite.

Возвращаемые значения

A boolean of TRUE if the lock was obtained, FALSE otherwise.

Примеры

Пример #1 SyncReaderWriter::writelock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Смотрите также

  • SyncReaderWriter::writeunlock() - Releases a write lock


Releases a write lock

  • « SyncReaderWriter::writelock
  • SyncSharedMemory »
  • PHP Manual
  • SyncReaderWriter
  • Releases a write lock

SyncReaderWriter::writeunlock

(PECL sync >= 1.0.0)

SyncReaderWriter::writeunlock — Releases a write lock

Описание

public bool SyncReaderWriter::writeunlock ( void )

Releases a write lock on a SyncReaderWriter object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean of TRUE if the unlock operation was successful, FALSE otherwise.

Примеры

Пример #1 SyncReaderWriter::writeunlock() example

<?php
$readwrite = new SyncReaderWriter("FileCacheLock");
$readwrite->writelock();
/* ... */
$readwrite->writeunlock();
?>

Смотрите также

  • SyncReaderWriter::writelock() - Waits for an exclusive write lock


The SyncSharedMemory class

(PECL sync >= 1.1.0)

Введение

A cross-platform, native, consistent implementation of named shared memory objects.

Shared memory lets two separate processes communicate without the need for complex pipes or sockets. There are several integer-based shared memory implementations for PHP. Named shared memory is an alternative.

Synchronization objects (e.g. SyncMutex) are still required to protect most uses of shared memory.

Обзор классов

SyncSharedMemory {
/* Методы */
public __construct ( string $name , integer $size )
public bool first ( void )
public read ([ integer $start = 0 [, integer $length ]] )
public bool size ( void )
public write ([ string $string [, integer $start = 0 ]] )
}

Содержание

  • SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::read — Copy data from named shared memory
  • SyncSharedMemory::size — Returns the size of the named shared memory
  • SyncSharedMemory::write — Copy data to named shared memory


Constructs a new SyncSharedMemory object

  • « SyncSharedMemory
  • SyncSharedMemory::first »
  • PHP Manual
  • SyncSharedMemory
  • Constructs a new SyncSharedMemory object

SyncSharedMemory::__construct

(PECL sync >= 1.1.0)

SyncSharedMemory::__construct — Constructs a new SyncSharedMemory object

Описание

public SyncSharedMemory::__construct ( string $name , integer $size )

Constructs a named shared memory object.

Список параметров

name

The name of the shared memory object.

Замечание:

If the name already exists, it must be able to be opened by the current user that the process is running as or an exception will be thrown with a meaningless error message.

size

The size, in bytes, of shared memory to reserve.

Замечание:

The amount of memory cannot be resized later. Request sufficient storage up front.

Возвращаемые значения

The new SyncSharedMemory object. An exception is thrown if the shared memory object cannot be created or opened.

Примеры

Пример #1 SyncSharedMemory::__construct() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

$result = $mem->write(json_encode(array("name" => "my_report.txt")));
?>

Смотрите также

  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::size() - Returns the size of the named shared memory
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Check to see if the object is the first instance system-wide of named shared memory

  • « SyncSharedMemory::__construct
  • SyncSharedMemory::read »
  • PHP Manual
  • SyncSharedMemory
  • Check to see if the object is the first instance system-wide of named shared memory

SyncSharedMemory::first

(PECL sync >= 1.1.0)

SyncSharedMemory::first — Check to see if the object is the first instance system-wide of named shared memory

Описание

public bool SyncSharedMemory::first ( void )

Retrieves the system-wide first instance status of a SyncSharedMemory object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A boolean of TRUE if the object is the first instance system-wide, FALSE otherwise.

Примеры

Пример #1 SyncSharedMemory::first() example

<?php
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

var_dump($mem->first());

$mem2 = new SyncSharedMemory("AppReportName", 1024);

var_dump($mem2->first());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)

Смотрите также

  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Copy data from named shared memory

  • « SyncSharedMemory::first
  • SyncSharedMemory::size »
  • PHP Manual
  • SyncSharedMemory
  • Copy data from named shared memory

SyncSharedMemory::read

(PECL sync >= 1.1.0)

SyncSharedMemory::read — Copy data from named shared memory

Описание

public SyncSharedMemory::read ([ integer $start = 0 [, integer $length ]] )

Copies data from named shared memory.

Список параметров

start

The start/offset, in bytes, to begin reading.

Замечание:

If the value is negative, the starting position will begin at the specified number of bytes from the end of the shared memory segment.

length

The number of bytes to read.

Замечание:

If unspecified, reading will stop at the end of the shared memory segment.

If the value is negative, reading will stop the specified number of bytes from the end of the shared memory segment.

Возвращаемые значения

A string containing the data read from shared memory.

Примеры

Пример #1 SyncSharedMemory::__construct() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

$result = $mem->write("report.txt");

$result = $mem->read(3, -4);
var_dump($result);
?>

Результатом выполнения данного примера будет что-то подобное:

string(3) "ort"

Смотрите также

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read()


Returns the size of the named shared memory

  • « SyncSharedMemory::read
  • SyncSharedMemory::write »
  • PHP Manual
  • SyncSharedMemory
  • Returns the size of the named shared memory

SyncSharedMemory::size

(PECL sync >= 1.1.0)

SyncSharedMemory::size — Returns the size of the named shared memory

Описание

public bool SyncSharedMemory::size ( void )

Retrieves the shared memory size of a SyncSharedMemory object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An integer containing the size of the shared memory. This will be the same size that was passed to the constructor.

Примеры

Пример #1 SyncSharedMemory::size() example

<?php
$mem = new SyncSharedMemory("AppReportName", 1024);
var_dump($mem->size());
?>

Результатом выполнения данного примера будет что-то подобное:

int(1024)

Смотрите также

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::write() - Copy data to named shared memory
  • SyncSharedMemory::read() - Copy data from named shared memory


Copy data to named shared memory

  • « SyncSharedMemory::size
  • Другие базовые расширения »
  • PHP Manual
  • SyncSharedMemory
  • Copy data to named shared memory

SyncSharedMemory::write

(PECL sync >= 1.1.0)

SyncSharedMemory::write — Copy data to named shared memory

Описание

public SyncSharedMemory::write ([ string $string [, integer $start = 0 ]] )

Copies data to named shared memory.

Список параметров

string

The data to write to shared memoy.

Замечание:

If the size of the data exceeds the size of the shared memory, the number of bytes written returned will be less than the length of the input.

start

The start/offset, in bytes, to begin writing.

Замечание:

If the value is negative, the starting position will begin at the specified number of bytes from the end of the shared memory segment.

Возвращаемые значения

An integer containing the number of bytes written to shared memory.

Примеры

Пример #1 SyncSharedMemory::write() example

<?php
// You will probably need to protect shared memory with other synchronization objects.
// Shared memory goes away when the last reference to it disappears.
$mem = new SyncSharedMemory("AppReportName", 1024);
if ($mem->first())
{
    // Do first time initialization work here.
}

$result = $mem->write("report.txt");
var_dump($result);

$result = $mem->write("report.txt", -3);
var_dump($result);
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(3)

Смотрите также

  • SyncSharedMemory::__construct() - Constructs a new SyncSharedMemory object
  • SyncSharedMemory::first() - Check to see if the object is the first instance system-wide of named shared memory
  • SyncSharedMemory::write()
  • SyncSharedMemory::read() - Copy data from named shared memory


Другие базовые расширения

  • GeoIP — Geo IP Location
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • GeoIP Функции
  • FANN — FANN (Fast Artificial Neural Network)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Fann Функции
    • FANNConnection — The FANNConnection class
  • JSON — JavaScript Object Notation
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • JsonSerializable — Интерфейс JsonSerializable
    • JSON Функции
  • Judy — Judy Arrays
    • Введение
    • Установка и настройка
    • Judy — The Judy class
    • Judy Функции
  • Lua
    • Введение
    • Установка и настройка
    • Lua — The Lua class
    • LuaClosure — The LuaClosure class
  • Misc. — Разные функции
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Разные Функции
    • Список изменений
  • Parsekit
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Parsekit Функции
  • SPL — Стандартная библиотека PHP (SPL)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Структуры данных
    • Итераторы
    • Интерфейсы
    • Исключения
    • SPL Функции
    • Обработка файлов
    • Различные Классы и Интерфейсы
  • Типы SPL — Обработка типов SPL Type
    • Введение
    • Установка и настройка
    • SplType — Класс SplType
    • SplInt — Класс SplInt
    • SplFloat — Класс SplFloat
    • SplEnum — Класс SplEnum
    • SplBool — Класс SplBool
    • SplString — Класс SplString
  • Потоки
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Потоковые фильтры
    • Контексты потоков
    • Stream Errors
    • Примеры
    • php_user_filter — Класс php_user_filter
    • streamWrapper — Класс streamWrapper
    • Функции для работы с потоками
  • Tidy
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • tidy — Класс tidy
    • tidyNode — Класс tidyNode
    • Tidy
  • Лексер (Tokenizer)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции PHP-лексера (tokenizer)
  • URL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • URL
  • V8js — Интеграция V8 Javascript Engine
    • Введение
    • Установка и настройка
    • Примеры
    • V8Js — Класс V8Js
    • V8JsException — Класс V8JsException
  • Yaml — Сериализация данных YAML
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Callbacks
    • Yaml Функции
  • Yaf — Yet Another Framework
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Конфигурация приложения
    • Yaf_Application — Класс Yaf_Application
    • Yaf_Bootstrap_Abstract — Класс Yaf_Bootstrap_Abstract
    • Yaf_Dispatcher — Класс Yaf_Dispatcher
    • Yaf_Config_Abstract — The Yaf_Config_Abstract class
    • Yaf_Config_Ini — Класс Yaf_Config_Ini
    • Yaf_Config_Simple — The Yaf_Config_Simple class
    • Yaf_Controller_Abstract — The Yaf_Controller_Abstract class
    • Yaf_Action_Abstract — The Yaf_Action_Abstract class
    • Yaf_View_Interface — The Yaf_View_Interface class
    • Yaf_View_Simple — The Yaf_View_Simple class
    • Yaf_Loader — The Yaf_Loader class
    • Yaf_Plugin_Abstract — The Yaf_Plugin_Abstract class
    • Yaf_Registry — The Yaf_Registry class
    • Yaf_Request_Abstract — The Yaf_Request_Abstract class
    • Yaf_Request_Http — The Yaf_Request_Http class
    • Yaf_Request_Simple — The Yaf_Request_Simple class
    • Yaf_Response_Abstract — The Yaf_Response_Abstract class
    • Yaf_Route_Interface — The Yaf_Route_Interface class
    • Yaf_Route_Map — The Yaf_Route_Map class
    • Yaf_Route_Regex — The Yaf_Route_Regex class
    • Yaf_Route_Rewrite — The Yaf_Route_Rewrite class
    • Yaf_Router — The Yaf_Router class
    • Yaf_Route_Simple — The Yaf_Route_Simple class
    • Yaf_Route_Static — The Yaf_Route_Static class
    • Yaf_Route_Supervar — The Yaf_Route_Supervar class
    • Yaf_Session — The Yaf_Session class
    • Yaf_Exception — The Yaf_Exception class
    • Yaf_Exception_TypeError — The Yaf_Exception_TypeError class
    • Yaf_Exception_StartupError — The Yaf_Exception_StartupError class
    • Yaf_Exception_DispatchFailed — The Yaf_Exception_DispatchFailed class
    • Yaf_Exception_RouterFailed — The Yaf_Exception_RouterFailed class
    • Yaf_Exception_LoadFailed — The Yaf_Exception_LoadFailed class
    • Yaf_Exception_LoadFailed_Module — The Yaf_Exception_LoadFailed_Module class
    • Yaf_Exception_LoadFailed_Controller — The Yaf_Exception_LoadFailed_Controller class
    • Yaf_Exception_LoadFailed_Action — The Yaf_Exception_LoadFailed_Action class
    • Yaf_Exception_LoadFailed_View — The Yaf_Exception_LoadFailed_View class
  • Taint
    • Введение
    • Установка и настройка
    • More Details
    • Taint Функции


Geo IP Location

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • GeoIP Функции
    • geoip_asnum_by_name — Get the Autonomous System Numbers (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 — Get the second level domain name
    • geoip_id_by_name — Возвращает тип интернет соединения
    • geoip_isp_by_name — Возвращает имя Интернет провайдера (ISP)
    • geoip_netspeedcell_by_name — Get the Internet connection speed
    • geoip_org_by_name — Возвращает название организации, владеющей IP адресом
    • geoip_record_by_name — Возвращает подробную информацию об адресе, найденном в базе GeoIP
    • geoip_region_by_name — Возвращает коды страны и региона
    • geoip_region_name_by_code — Возвращает название региона для выбранной страны и кода региона
    • geoip_setup_custom_directory — Set a custom directory for the GeoIP database.
    • geoip_time_zone_by_country_and_region — Возвращает временную зону и код региона для некоторых стран


Введение

Расширение GeoIP позволяет найти местоположение по IP-адресу. С помощью GeoIP можно получить такую информацию как город, государство, страна, долгота и широта, а также можно узнать, интернет-провайдера и тип соединения.


Требования

Это расширение требует наличие установленной библиотеки C GeoIP версии 1.4.0 или выше. Вы можете получить данную библиотеку по ссылке » http://www.maxmind.com/app/c и скомпилировать самостоятельно.

По умолчанию, у вас есть доступ только к бесплатным базам GeoIP Country или GeoLite City. Если вы хотите чтобы этот модуль работал с прочими базами GeoIP, необходимо купить коммерческую лицензию » Maxmind.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/geoip.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

GeoIP Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
geoip.custom_directory | "" | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

geoip.custom_directory string

По умолчанию пустая, но может быть установлена для принудительного использования другого пути к базе данных, нежели указанного в библиотеке.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

GEOIP_COUNTRY_EDITION (integer)
GEOIP_REGION_EDITION_REV0 (integer)
GEOIP_CITY_EDITION_REV0 (integer)
GEOIP_ORG_EDITION (integer)
GEOIP_ISP_EDITION (integer)
GEOIP_CITY_EDITION_REV1 (integer)
GEOIP_REGION_EDITION_REV1 (integer)
GEOIP_PROXY_EDITION (integer)
GEOIP_ASNUM_EDITION (integer)
GEOIP_NETSPEED_EDITION (integer)
GEOIP_DOMAIN_EDITION (integer)

Следующие константы предназначены для установки скорости сети:

GEOIP_UNKNOWN_SPEED (integer)
GEOIP_DIALUP_SPEED (integer)
GEOIP_CABLEDSL_SPEED (integer)
GEOIP_CORPORATE_SPEED (integer)


GeoIP Функции

Содержание

  • geoip_asnum_by_name — Get the Autonomous System Numbers (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 — Get the second level domain name
  • geoip_id_by_name — Возвращает тип интернет соединения
  • geoip_isp_by_name — Возвращает имя Интернет провайдера (ISP)
  • geoip_netspeedcell_by_name — Get the Internet connection speed
  • geoip_org_by_name — Возвращает название организации, владеющей IP адресом
  • geoip_record_by_name — Возвращает подробную информацию об адресе, найденном в базе GeoIP
  • geoip_region_by_name — Возвращает коды страны и региона
  • geoip_region_name_by_code — Возвращает название региона для выбранной страны и кода региона
  • geoip_setup_custom_directory — Set a custom directory for the GeoIP database.
  • geoip_time_zone_by_country_and_region — Возвращает временную зону и код региона для некоторых стран


Get the Autonomous System Numbers (ASN)

  • « GeoIP Функции
  • geoip_continent_code_by_name »
  • PHP Manual
  • GeoIP Функции
  • Get the Autonomous System Numbers (ASN)

geoip_asnum_by_name

(PECL geoip >= 1.1.0)

geoip_asnum_by_name — Get the Autonomous System Numbers (ASN)

Описание

string geoip_asnum_by_name ( string $hostname )

The geoip_asnum_by_name() function will return the Autonomous System Numbers (ASN) associated with an IP address.

Список параметров

hostname

The hostname or IP address.

Возвращаемые значения

Returns the ASN on success, or FALSE if the address cannot be found in the database.

Примеры

Пример #1 A geoip_asnum_by_name() example

This will output the ASN of the host www.example.com.

<?php
$asn = geoip_asnum_by_name('www.example.com');

if ($asn) {
    echo 'The ASN is: ' $asn;
}
?>

Результат выполнения данного примера:

The ASN is: 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 — Получить двухсимвольный код континента

Описание

string geoip_continent_code_by_name ( string $hostname )

Функция 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 — Получить двухсимвольный код страны

Описание

string geoip_country_code_by_name ( string $hostname )

Функция 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 — Получить трехсимвольный код страны

Описание

string geoip_country_code3_by_name ( string $hostname )

Функция 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 — Получить полное название страны

Описание

string geoip_country_name_by_name ( string $hostname )

Функция 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

Описание

string geoip_database_info ([ int $database = GEOIP_COUNTRY_EDITION ] )

Функция 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

Описание

bool geoip_db_avail ( int $database )

Функция geoip_db_avail() определяет доступна ли соответствующая база GeoIP и может ли быть открыта на диске.

При этом не определяется, соответствует ли файл базе данных, только доступность для чтения.

Список параметров

database

Тип базы определяется целым числом (integer). Вы можете использовать разнообразные константы, определённые в этом расширении (ie: GEOIP_*_EDITION).

Возвращаемые значения

Возвращает TRUE если база существует, FALSE если не найдена, или NULL при ошибке.

Примеры

Пример #1 Пример использованияgeoip_db_avail()

Пример демонстрирует вывод версии текущей базы GeoIP в виде строки.

<?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

Описание

string geoip_db_filename ( int $database )

Функция 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

Описание

array geoip_db_get_all_info ( void )

Функция 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


Get the second level domain name

  • « geoip_db_get_all_info
  • geoip_id_by_name »
  • PHP Manual
  • GeoIP Функции
  • Get the second level domain name

geoip_domain_by_name

(PECL geoip >= 1.1.0)

geoip_domain_by_name — Get the second level domain name

Описание

string geoip_domain_by_name ( string $hostname )

The geoip_domain_by_name() function will return the second level domain names associated with a hostname or an IP address.

This function is currently only available to users who have bought a commercial GeoIP Domain Edition. A warning will be issued if the proper database cannot be located.

Список параметров

hostname

The hostname or IP address.

Возвращаемые значения

Returns the domain name on success, or FALSE if the address cannot be found in the database.

Примеры

Пример #1 A geoip_domain_by_name() example

This will output the domain associated with IP 61.106.139.1.

<?php
$domain = geoip_domain_by_name('61.106.139.1');

if ($domain) {
    echo 'The domain is: '. $domain;
}

?>

Результат выполнения данного примера:

The domain is: 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 — Возвращает тип интернет соединения

Описание

int geoip_id_by_name ( string $hostname )

Функция 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)

Описание

string geoip_isp_by_name ( string $hostname )

Функция 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 'Адрес управляется провайдером: ' . $isp;
}
?>

Результат выполнения данного примера:

Адрес управляется провайдером: ICANN c/o Internet Assigned Numbers Authority


Get the Internet connection speed

  • « geoip_isp_by_name
  • geoip_org_by_name »
  • PHP Manual
  • GeoIP Функции
  • Get the Internet connection speed

geoip_netspeedcell_by_name

(PECL geoip >= 1.1.0)

geoip_netspeedcell_by_name — Get the Internet connection speed

Описание

string geoip_netspeedcell_by_name ( string $hostname )

The geoip_netspeedcell_by_name() function will return the Internet connection type and speed corresponding to a hostname or an IP address.

This function is only available if using GeoIP Library version 1.4.8 or newer.

This function is currently only available to users who have bought a commercial GeoIP NetSpeedCell Edition. A warning will be issued if the proper database cannot be located.

The return value is a string, common values are:

  • Cable/DSL
  • Dialup
  • Cellular
  • Corporate

Список параметров

hostname

The hostname or IP address.

Возвращаемые значения

Returns the connection speed on success, or FALSE if the address cannot be found in the database.

Примеры

Пример #1 A geoip_netspeedcell_by_name() example

This will output the connection speed of the host example.com.

<?php
$netspeed = geoip_netspeedcell_by_name('www.example.com');

if ($netspeed) {
    echo 'The connection type is: '. $netspeed;
}
?>

Результат выполнения данного примера:

The connection type is: 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 адресом

Описание

string geoip_org_by_name ( string $hostname )

Функция 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

Описание

array geoip_record_by_name ( string $hostname )

Функция 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" -- Почтовый индекс.
  • "latitude" -- Широта, знаковое вещественное число (signed double).
  • "longitude" -- Долгота, знаковое вещественное число (signed double).
  • "dma_code" -- Код рыночной зоны (DMA, только для США и Канады)
  • "area_code" -- Код телефонной сети общего пользования (PSTN, например: 212)

Список параметров

hostname

Имя хоста или IP адрес, данные о котором должны быть получены.

Возвращаемые значения

Возвращает ассоциативный массив в случае успеха или FALSE, если адрес не может быть найден в базе.

Список изменений

Версия | Описание
1.0.4 | Добавлен код континента (continent_code) с GeoIP Library 1.4.3 или более поздними.
1.0.3 | Добавлен трехбуквенный код страны (country_code3) и название страны (and 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 — Возвращает коды страны и региона

Описание

array geoip_region_by_name ( string $hostname )

Функция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 — Возвращает название региона для выбранной страны и кода региона

Описание

string geoip_region_name_by_code ( string $country_code , string $region_code )

Функция 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 'Region name for CA/QC is: ' . $region;
}
?>

Результат выполнения данного примера:

Region name for CA/QC is: Quebec

Пример #2 Пример использования geoip_region_name_by_code()(коды FIPS)

Будет выведено имя региона для страны JP (Япония), региона 01 (Айти).

<?php
$region = geoip_region_name_by_code('JP', '01');
if ($region) {
    echo 'Region name for JP/01 is: ' . $region;
}
?>

Результат выполнения данного примера:

Region name for JP/01 is: Aichi


Set a custom directory for the GeoIP database.

  • « geoip_region_name_by_code
  • geoip_time_zone_by_country_and_region »
  • PHP Manual
  • GeoIP Функции
  • Set a custom directory for the GeoIP database.

geoip_setup_custom_directory

(PECL geoip >= 1.1.0)

geoip_setup_custom_directory — Set a custom directory for the GeoIP database.

Описание

void geoip_setup_custom_directory ( string $path )

The geoip_setup_custom_directory() function will change the default directory of the GeoIP database. This is equivalent to changing geoip.custom_directory.

Список параметров

path

The full path of where the GeoIP database is on disk.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 A geoip_setup_custom_directory() example

This will change the GeoIP default database path.

<?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 — Возвращает временную зону и код региона для некоторых стран

Описание

string geoip_time_zone_by_country_and_region ( string $country_code [, string $region_code ] )

Функция 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


FANN (Fast Artificial Neural Network)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Обучение XOR
  • Fann Функции
    • fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
    • fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.
    • fann_clear_scaling_params — Clears scaling parameters
    • fann_copy — Creates a copy of a fann structure
    • fann_create_from_file — Constructs a backpropagation neural network from a configuration file
    • fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
    • fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
    • fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected
    • fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes
    • fann_create_standard — Creates a standard fully connected backpropagation neural network
    • fann_create_train_from_callback — Creates the training data struct from a user supplied function
    • fann_create_train — Creates an empty training data struct
    • fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters
    • fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters
    • fann_descale_train — Descale input and output data based on previously calculated parameters
    • fann_destroy_train — Destructs the training data
    • fann_destroy — Destroys the entire network and properly freeing all the associated memory
    • fann_duplicate_train_data — Returns an exact copy of a fann train data
    • fann_get_activation_function — Returns the activation function
    • fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number
    • fann_get_bias_array — Get the number of bias in each layer in the network
    • fann_get_bit_fail_limit — Returns the bit fail limit used during training
    • fann_get_bit_fail — The number of fail bits
    • fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions
    • fann_get_cascade_activation_functions — Returns the cascade activation functions
    • fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses
    • fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses
    • fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction
    • fann_get_cascade_candidate_limit — Return the candidate limit
    • fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs
    • fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs
    • fann_get_cascade_max_out_epochs — Returns the maximum out epochs
    • fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs
    • fann_get_cascade_min_out_epochs — Returns the minimum out epochs
    • fann_get_cascade_num_candidate_groups — Returns the number of candidate groups
    • fann_get_cascade_num_candidates — Returns the number of candidates used during training
    • fann_get_cascade_output_change_fraction — Returns the cascade output change fraction
    • fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs
    • fann_get_cascade_weight_multiplier — Returns the weight multiplier
    • fann_get_connection_array — Get connections in the network
    • fann_get_connection_rate — Get the connection rate used when the network was created
    • fann_get_errno — Returns the last error number
    • fann_get_errstr — Returns the last errstr
    • fann_get_layer_array — Get the number of neurons in each layer in the network
    • fann_get_learning_momentum — Returns the learning momentum
    • fann_get_learning_rate — Returns the learning rate
    • fann_get_MSE — Reads the mean square error from the network
    • fann_get_network_type — Get the type of neural network it was created as
    • fann_get_num_input — Get the number of input neurons
    • fann_get_num_layers — Get the number of layers in the neural network
    • fann_get_num_output — Get the number of output neurons
    • fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
    • fann_get_quickprop_mu — Returns the mu factor
    • fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training
    • fann_get_rprop_delta_max — Returns the maximum step-size
    • fann_get_rprop_delta_min — Returns the minimum step-size
    • fann_get_rprop_delta_zero — Returns the initial step-size
    • fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training
    • fann_get_sarprop_step_error_shift — Returns the sarprop step error shift
    • fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor
    • fann_get_sarprop_temperature — Returns the sarprop temperature
    • fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift
    • fann_get_total_connections — Get the total number of connections in the entire network
    • fann_get_total_neurons — Get the total number of neurons in the entire network
    • fann_get_train_error_function — Returns the error function used during training
    • fann_get_train_stop_function — Returns the stop function used during training
    • fann_get_training_algorithm — Returns the training algorithm
    • fann_init_weights — Initialize the weights using Widrow + Nguyen’s algorithm
    • fann_length_train_data — Returns the number of training patterns in the train data
    • fann_merge_train_data — Merges the train data
    • fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data
    • fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data
    • fann_print_error — Prints the error string
    • fann_randomize_weights — Give each connection a random weight between min_weight and max_weight
    • fann_read_train_from_file — Reads a file that stores training data
    • fann_reset_errno — Resets the last error number
    • fann_reset_errstr — Resets the last error string
    • fann_reset_MSE — Resets the mean square error from the network
    • fann_run — Will run input through the neural network
    • fann_save_train — Save the training structure to a file
    • fann_save — Saves the entire network to a configuration file
    • fann_scale_input_train_data — Scales the inputs in the training data to the specified range
    • fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters
    • fann_scale_output_train_data — Scales the outputs in the training data to the specified range
    • fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters
    • fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range
    • fann_scale_train — Scale input and output data based on previously calculated parameters
    • fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers
    • fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer.
    • fann_set_activation_function_output — Sets the activation function for the output layer
    • fann_set_activation_function — Sets the activation function for supplied neuron and layer
    • fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers
    • fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number
    • fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer
    • fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number
    • fann_set_bit_fail_limit — Set the bit fail limit used during training
    • fann_set_callback — Sets the callback function for use during training
    • fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions
    • fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses
    • fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction
    • fann_set_cascade_candidate_limit — Sets the candidate limit
    • fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs
    • fann_set_cascade_max_cand_epochs — Sets the max candidate epochs
    • fann_set_cascade_max_out_epochs — Sets the maximum out epochs
    • fann_set_cascade_min_cand_epochs — Sets the min candidate epochs
    • fann_set_cascade_min_out_epochs — Sets the minimum out epochs
    • fann_set_cascade_num_candidate_groups — Sets the number of candidate groups
    • fann_set_cascade_output_change_fraction — Sets the cascade output change fraction
    • fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs
    • fann_set_cascade_weight_multiplier — Sets the weight multiplier
    • fann_set_error_log — Sets where the errors are logged to
    • fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data
    • fann_set_learning_momentum — Sets the learning momentum
    • fann_set_learning_rate — Sets the learning rate
    • fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data
    • fann_set_quickprop_decay — Sets the quickprop decay factor
    • fann_set_quickprop_mu — Sets the quickprop mu factor
    • fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training
    • fann_set_rprop_delta_max — Sets the maximum step-size
    • fann_set_rprop_delta_min — Sets the minimum step-size
    • fann_set_rprop_delta_zero — Sets the initial step-size
    • fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training
    • fann_set_sarprop_step_error_shift — Sets the sarprop step error shift
    • fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor
    • fann_set_sarprop_temperature — Sets the sarprop temperature
    • fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift
    • fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data
    • fann_set_train_error_function — Sets the error function used during training
    • fann_set_train_stop_function — Sets the stop function used during training
    • fann_set_training_algorithm — Sets the training algorithm
    • fann_set_weight_array — Set connections in the network
    • fann_set_weight — Set a connection in the network
    • fann_shuffle_train_data — Shuffles training data, randomizing the order
    • fann_subset_train_data — Returns an copy of a subset of the train data
    • fann_test_data — Test a set of training data and calculates the MSE for the training data
    • fann_test — Test with a set of inputs, and a set of desired outputs
    • fann_train_epoch — Train one epoch with a set of training data
    • fann_train_on_data — Trains on an entire dataset for a period of time
    • fann_train_on_file — Trains on an entire dataset, which is read from file, for a period of time
    • fann_train — Train one iteration with a set of inputs, and a set of desired outputs
  • FANNConnection — The FANNConnection class
    • FANNConnection::__construct — The connection constructor
    • FANNConnection::getFromNeuron — Returns the postions of starting neuron.
    • FANNConnection::getToNeuron — Returns the postions of terminating neuron
    • FANNConnection::getWeight — Returns the connection weight
    • FANNConnection::setWeight — Sets the connections weight


Введение

PHP binding for FANN (Fast Artificial Neural Network) Library which implements multilayer artificial neural networks with support for both fully connected and sparsely connected networks. It includes a framework for easy handling of training data sets. It is easy to use, versatile, well documented, and fast.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

PHP >= 5.2.0 and libfann >= 2.1.0


Установка

The FANN PHP extension should work on all Linux systems.

  • FANN Library Installation
  • PECL Installation
  • Manual Installation

FANN Library Installation

Before you start installation make sure that libfann is installed on your system. It's part of the main repository in the most Linux distributions (search for fann). You need a development version.

If it is not installed, you need to install it first. Either download it from the » official site or get it from your distro repository. For example on Fedora:

$ sudo yum install fann-devel
or Ubuntu:

$ sudo apt-get install libfann-dev

If the library is re-installed manually, then all old library file should be removed before re-installing otherwise the old library version could be linked.

PECL Installation

This extension is available on PECL. The installation is very simple. Just run:

$ sudo pecl install fann

Manual Installation

For developers and people interested in the latest changes, you can compile the driver from the latest source code on » Github. Go to Github and click the "Download ZIP" button. Then run:

$ unzip php-fann-master.zip
$ cd php-fann-master
$ phpize
$ ./configure
$ make all
$ sudo make install

Make the following changes to php.ini:

  • Make sure the extension_dir variable is pointing to the directory containing fann.so. The build will display where it is installing the PHP driver with output that looks something like:

Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/fann.so'
    Make sure that it is the same as the PHP extension directory by runnning:

$ 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
    If it's not, change the extension_dir in php.ini or move fann.so.

  • To load the extension on PHP startup, add a line:

extension=fann.so


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Training algorithms
FANN_TRAIN_INCREMENTAL (integer)
Standard backpropagation algorithm, where the weights are updated after each training pattern. This means that the weights are updated many times during a single epoch. For this reason some problems, will train very fast with this algorithm, while other more advanced problems will not train very well.
FANN_TRAIN_BATCH (integer)
Standard backpropagation algorithm, where the weights are updated after calculating the mean square error for the whole training set. This means that the weights are only updated once during a epoch. For this reason some problems, will train slower with this algorithm. But since the mean square error is calculated more correctly than in incremental training, some problems will reach a better solutions with this algorithm.
FANN_TRAIN_RPROP (integer)
A more advanced batch training algorithm which achieves good results for many problems. The RPROP training algorithm is adaptive, and does therefore not use the learning_rate. Some other parameters can however be set to change the way the RPROP algorithm works, but it is only recommended for users with insight in how the RPROP training algorithm works. The RPROP training algorithm is described by [Riedmiller and Braun, 1993], but the actual learning algorithm used here is the iRPROP- training algorithm which is described by [Igel and Husken, 2000] which is an variety of the standard RPROP training algorithm.
FANN_TRAIN_QUICKPROP (integer)
A more advanced batch training algorithm which achieves good results for many problems. The quickprop training algorithm uses the learning_rate parameter along with other more advanced parameters, but it is only recommended to change these advanced parameters, for users with insight in how the quickprop training algorithm works. The quickprop training algorithm is described by [Fahlman, 1988].
FANN_TRAIN_SARPROP (integer)
Even more advance training algorithm. Only for version 2.2
Activation functions
FANN_LINEAR (integer)
Linear activation function.
FANN_THRESHOLD (integer)
Threshold activation function.
FANN_THRESHOLD_SYMMETRIC (integer)
Threshold activation function.
FANN_SIGMOID (integer)
Sigmoid activation function.
FANN_SIGMOID_STEPWISE (integer)
Stepwise linear approximation to sigmoid.
FANN_SIGMOID_SYMMETRIC (integer)
Symmetric sigmoid activation function, aka. tanh.
FANN_SIGMOID_SYMMETRIC_STEPWISE (integer)
Stepwise linear approximation to symmetric sigmoid
FANN_GAUSSIAN (integer)
Gaussian activation function.
FANN_GAUSSIAN_SYMMETRIC (integer)
Symmetric gaussian activation function.
FANN_GAUSSIAN_STEPWISE (integer)
Stepwise gaussian activation function.
FANN_ELLIOT (integer)
Fast (sigmoid like) activation function defined by David Elliott.
FANN_ELLIOT_SYMMETRIC (integer)
Fast (symmetric sigmoid like) activation function defined by David Elliott.
FANN_LINEAR_PIECE (integer)
Bounded linear activation function.
FANN_LINEAR_PIECE_SYMMETRIC (integer)
Bounded linear activation function.
FANN_SIN_SYMMETRIC (integer)
Periodical sinus activation function.
FANN_COS_SYMMETRIC (integer)
Periodical cosinus activation function.
FANN_SIN (integer)
Periodical sinus activation function.
FANN_COS (integer)
Periodical cosinus activation function.
Error function used during training
FANN_ERRORFUNC_LINEAR (integer)
Standard linear error function.
FANN_ERRORFUNC_TANH (integer)
Tanh error function, usually better but can require a lower learning rate. This error function agressively targets outputs that differ much from the desired, while not targetting outputs that only differ a little that much. This activation function is not recommended for cascade training and incremental training.
Stop criteria used during training
FANN_STOPFUNC_MSE (integer)
Stop criteria is Mean Square Error (MSE) value.
FANN_STOPFUNC_BIT (integer)
Stop criteria is number of bits that fail. The number of bits means the number of output neurons which differs more than the bit fail limit (see fann_get_bit_fail_limit, fann_set_bit_fail_limit). The bits are counted in all of the training data, so this number can be higher than the number of training data.
Definition of network types used by fann_get_network_type()
FANN_NETTYPE_LAYER (integer)
Each layer only has connections to the next layer.
FANN_NETTYPE_SHORTCUT (integer)
Each layer has connections to all following layers
Errors
FANN_E_NO_ERROR (integer)
No error.
FANN_E_CANT_OPEN_CONFIG_R (integer)
Unable to open configuration file for reading.
FANN_E_CANT_OPEN_CONFIG_W (integer)
Unable to open configuration file for writing.
FANN_E_WRONG_CONFIG_VERSION (integer)
Wrong version of configuration file.
FANN_E_CANT_READ_CONFIG (integer)
Error reading info from configuration file.
FANN_E_CANT_READ_NEURON (integer)
Error reading neuron info from configuration file.
FANN_E_CANT_READ_CONNECTIONS (integer)
Error reading connections from configuration file.
FANN_E_WRONG_NUM_CONNECTIONS (integer)
Number of connections not equal to the number expected.
FANN_E_CANT_OPEN_TD_W (integer)
Unable to open train data file for writing.
FANN_E_CANT_OPEN_TD_R (integer)
Unable to open train data file for reading.
FANN_E_CANT_READ_TD (integer)
Error reading training data from file.
FANN_E_CANT_ALLOCATE_MEM (integer)
Unable to allocate memory.
FANN_E_CANT_TRAIN_ACTIVATION (integer)
Unable to train with the selected activation function.
FANN_E_CANT_USE_ACTIVATION (integer)
Unable to use the selected activation function.
FANN_E_TRAIN_DATA_MISMATCH (integer)
Irreconcilable differences between two struct fann_train_data structures.
FANN_E_CANT_USE_TRAIN_ALG (integer)
Unable to use the selected training algorithm.
FANN_E_TRAIN_DATA_SUBSET (integer)
Trying to take subset which is not within the training set.
FANN_E_INDEX_OUT_OF_BOUND (integer)
Index is out of bound.
FANN_E_SCALE_NOT_PRESENT (integer)
Scaling parameters not present.
FANN_E_INPUT_NO_MATCH (integer)
The number of input neurons in the ann data do not match
FANN_E_OUTPUT_NO_MATCH (integer)
The number of output neurons in the ann and data do not match.


  • « Предопределенные константы
  • Обучение 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 — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
  • fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.
  • fann_clear_scaling_params — Clears scaling parameters
  • fann_copy — Creates a copy of a fann structure
  • fann_create_from_file — Constructs a backpropagation neural network from a configuration file
  • fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
  • fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes
  • fann_create_standard — Creates a standard fully connected backpropagation neural network
  • fann_create_train_from_callback — Creates the training data struct from a user supplied function
  • fann_create_train — Creates an empty training data struct
  • fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters
  • fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters
  • fann_descale_train — Descale input and output data based on previously calculated parameters
  • fann_destroy_train — Destructs the training data
  • fann_destroy — Destroys the entire network and properly freeing all the associated memory
  • fann_duplicate_train_data — Returns an exact copy of a fann train data
  • fann_get_activation_function — Returns the activation function
  • fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number
  • fann_get_bias_array — Get the number of bias in each layer in the network
  • fann_get_bit_fail_limit — Returns the bit fail limit used during training
  • fann_get_bit_fail — The number of fail bits
  • fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions
  • fann_get_cascade_activation_functions — Returns the cascade activation functions
  • fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses
  • fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses
  • fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction
  • fann_get_cascade_candidate_limit — Return the candidate limit
  • fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs
  • fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs
  • fann_get_cascade_max_out_epochs — Returns the maximum out epochs
  • fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs
  • fann_get_cascade_min_out_epochs — Returns the minimum out epochs
  • fann_get_cascade_num_candidate_groups — Returns the number of candidate groups
  • fann_get_cascade_num_candidates — Returns the number of candidates used during training
  • fann_get_cascade_output_change_fraction — Returns the cascade output change fraction
  • fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs
  • fann_get_cascade_weight_multiplier — Returns the weight multiplier
  • fann_get_connection_array — Get connections in the network
  • fann_get_connection_rate — Get the connection rate used when the network was created
  • fann_get_errno — Returns the last error number
  • fann_get_errstr — Returns the last errstr
  • fann_get_layer_array — Get the number of neurons in each layer in the network
  • fann_get_learning_momentum — Returns the learning momentum
  • fann_get_learning_rate — Returns the learning rate
  • fann_get_MSE — Reads the mean square error from the network
  • fann_get_network_type — Get the type of neural network it was created as
  • fann_get_num_input — Get the number of input neurons
  • fann_get_num_layers — Get the number of layers in the neural network
  • fann_get_num_output — Get the number of output neurons
  • fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
  • fann_get_quickprop_mu — Returns the mu factor
  • fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training
  • fann_get_rprop_delta_max — Returns the maximum step-size
  • fann_get_rprop_delta_min — Returns the minimum step-size
  • fann_get_rprop_delta_zero — Returns the initial step-size
  • fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training
  • fann_get_sarprop_step_error_shift — Returns the sarprop step error shift
  • fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor
  • fann_get_sarprop_temperature — Returns the sarprop temperature
  • fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift
  • fann_get_total_connections — Get the total number of connections in the entire network
  • fann_get_total_neurons — Get the total number of neurons in the entire network
  • fann_get_train_error_function — Returns the error function used during training
  • fann_get_train_stop_function — Returns the stop function used during training
  • fann_get_training_algorithm — Returns the training algorithm
  • fann_init_weights — Initialize the weights using Widrow + Nguyen’s algorithm
  • fann_length_train_data — Returns the number of training patterns in the train data
  • fann_merge_train_data — Merges the train data
  • fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data
  • fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data
  • fann_print_error — Prints the error string
  • fann_randomize_weights — Give each connection a random weight between min_weight and max_weight
  • fann_read_train_from_file — Reads a file that stores training data
  • fann_reset_errno — Resets the last error number
  • fann_reset_errstr — Resets the last error string
  • fann_reset_MSE — Resets the mean square error from the network
  • fann_run — Will run input through the neural network
  • fann_save_train — Save the training structure to a file
  • fann_save — Saves the entire network to a configuration file
  • fann_scale_input_train_data — Scales the inputs in the training data to the specified range
  • fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters
  • fann_scale_output_train_data — Scales the outputs in the training data to the specified range
  • fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters
  • fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range
  • fann_scale_train — Scale input and output data based on previously calculated parameters
  • fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers
  • fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer.
  • fann_set_activation_function_output — Sets the activation function for the output layer
  • fann_set_activation_function — Sets the activation function for supplied neuron and layer
  • fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer
  • fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number
  • fann_set_bit_fail_limit — Set the bit fail limit used during training
  • fann_set_callback — Sets the callback function for use during training
  • fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions
  • fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses
  • fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction
  • fann_set_cascade_candidate_limit — Sets the candidate limit
  • fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs
  • fann_set_cascade_max_cand_epochs — Sets the max candidate epochs
  • fann_set_cascade_max_out_epochs — Sets the maximum out epochs
  • fann_set_cascade_min_cand_epochs — Sets the min candidate epochs
  • fann_set_cascade_min_out_epochs — Sets the minimum out epochs
  • fann_set_cascade_num_candidate_groups — Sets the number of candidate groups
  • fann_set_cascade_output_change_fraction — Sets the cascade output change fraction
  • fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs
  • fann_set_cascade_weight_multiplier — Sets the weight multiplier
  • fann_set_error_log — Sets where the errors are logged to
  • fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data
  • fann_set_learning_momentum — Sets the learning momentum
  • fann_set_learning_rate — Sets the learning rate
  • fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data
  • fann_set_quickprop_decay — Sets the quickprop decay factor
  • fann_set_quickprop_mu — Sets the quickprop mu factor
  • fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training
  • fann_set_rprop_delta_max — Sets the maximum step-size
  • fann_set_rprop_delta_min — Sets the minimum step-size
  • fann_set_rprop_delta_zero — Sets the initial step-size
  • fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training
  • fann_set_sarprop_step_error_shift — Sets the sarprop step error shift
  • fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor
  • fann_set_sarprop_temperature — Sets the sarprop temperature
  • fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift
  • fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data
  • fann_set_train_error_function — Sets the error function used during training
  • fann_set_train_stop_function — Sets the stop function used during training
  • fann_set_training_algorithm — Sets the training algorithm
  • fann_set_weight_array — Set connections in the network
  • fann_set_weight — Set a connection in the network
  • fann_shuffle_train_data — Shuffles training data, randomizing the order
  • fann_subset_train_data — Returns an copy of a subset of the train data
  • fann_test_data — Test a set of training data and calculates the MSE for the training data
  • fann_test — Test with a set of inputs, and a set of desired outputs
  • fann_train_epoch — Train one epoch with a set of training data
  • fann_train_on_data — Trains on an entire dataset for a period of time
  • fann_train_on_file — Trains on an entire dataset, which is read from file, for a period of time
  • fann_train — Train one iteration with a set of inputs, and a set of desired outputs


Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

  • « Fann Функции
  • fann_cascadetrain_on_file »
  • PHP Manual
  • Fann Функции
  • Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

fann_cascadetrain_on_data

(PECL fann >= 1.0.0)

fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm

Описание

bool fann_cascadetrain_on_data ( resource $ann , resource $data , int $max_neurons , int $neurons_between_reports , float $desired_error )

The cascade output change fraction is a number between 0 and 1 determining how large a fraction the fann_get_MSE() value should change within fann_get_cascade_output_stagnation_epochs() during training of the output connections, in order for the training not to stagnate. If the training stagnates, the training of the output connections will be ended and new candidates will be prepared.

This training uses the parameters set using the fann_set_cascade_..., but it also uses another training algorithm as it's internal training algorithm. This algorithm can be set to either FANN_TRAIN_RPROP or FANN_TRAIN_QUICKPROP by fann_set_training_algorithm(), and the parameters set for these training algorithms will also affect the cascade training.

Список параметров

ann

Ресурс (resource) нейронной сети.

data

Ресурс (resource) обучающих данных нейронной сети.

max_neurons

The maximum number of neurons to be added to neural network.

neurons_between_reports

The number of neurons between printing a status report. A value of zero means no reports should be printed.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on which stop function is chosen by fann_set_train_stop_function()

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_cascadetrain_on_file() - Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.


Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.

  • « fann_cascadetrain_on_data
  • fann_clear_scaling_params »
  • PHP Manual
  • Fann Функции
  • Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.

fann_cascadetrain_on_file

(PECL fann >= 1.0.0)

fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm.

Описание

bool fann_cascadetrain_on_file ( resource $ann , string $filename , int $max_neurons , int $neurons_between_reports , float $desired_error )

Does the same as fann_cascadetrain_on_data(), but reads the training data directly from a file.

Список параметров

ann

Ресурс (resource) нейронной сети.

filename

The maximum number of neurons to be added to neural network

max_neurons

The number of neurons between printing a status report to stdout. A value of zero means no reports should be printed.

neurons_between_reports

The number of neurons between printing a status report. A value of zero means no reports should be printed.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on which stop function is chosen by fann_set_train_stop_function().

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_cascadetrain_on_data() - Trains on an entire dataset, for a period of time using the Cascade2 training algorithm


Clears scaling parameters

  • « fann_cascadetrain_on_file
  • fann_copy »
  • PHP Manual
  • Fann Функции
  • Clears scaling parameters

fann_clear_scaling_params

(PECL fann >= 1.0.0)

fann_clear_scaling_params — Clears scaling parameters

Описание

bool fann_clear_scaling_params ( resource $ann )

Clears scaling parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Creates a copy of a fann structure

  • « fann_clear_scaling_params
  • fann_create_from_file »
  • PHP Manual
  • Fann Функции
  • Creates a copy of a fann structure

fann_copy

(PECL fann >= 1.0.0)

fann_copy — Creates a copy of a fann structure

Описание

resource fann_copy ( resource $ann )

Creates a copy of a fann structure.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Returns a copy of neural network resource on success, or FALSE on error

Смотрите также

  • fann_test() - Test with a set of inputs, and a set of desired outputs


Constructs a backpropagation neural network from a configuration file

  • « fann_copy
  • fann_create_shortcut_array »
  • PHP Manual
  • Fann Функции
  • Constructs a backpropagation neural network from a configuration file

fann_create_from_file

(PECL fann >= 1.0.0)

fann_create_from_file — Constructs a backpropagation neural network from a configuration file

Описание

resource fann_create_from_file ( string $configuration_file )

Constructs a backpropagation neural network from a configuration file, which have been saved by fann_save().

Список параметров

configuration_file

The configuration file path.

Возвращаемые значения

Возвращает ресурс (resource) нейронной сети в случае успешного выполнения, или FALSE в случае ошибки.

Смотрите также

  • fann_save() - Saves the entire network to a configuration file


Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

  • « fann_create_from_file
  • fann_create_shortcut »
  • PHP Manual
  • Fann Функции
  • Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

fann_create_shortcut_array

(PECL fann >= 1.0.0)

fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

Описание

resource fann_create_shortcut_array ( int $num_layers , array $layers )

Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections using an array of layers sizes.

Список параметров

num_layers

The total number of layers including the input and the output layer.

layers

An array of layers sizes.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network


Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

  • « fann_create_shortcut_array
  • fann_create_sparse_array »
  • PHP Manual
  • Fann Функции
  • Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

fann_create_shortcut

(PECL fann >= 1.0.0)

fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections

Описание

reference fann_create_shortcut ( int $num_layers , int $num_neurons1 , int $num_neurons2 [, int $... ] )

Creates a standard backpropagation neural network, which is not fully connected and which also has shortcut connections.

Shortcut connections are connections that skip layers. A fully connected network with shortcut connections, is a network where all neurons are connected to all neurons in later layers. Including direct connections from the input layer to the output layer.

Список параметров

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

...

Number of neurons in other layers.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_shortcut_array() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network


Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

  • « fann_create_shortcut
  • fann_create_sparse »
  • PHP Manual
  • Fann Функции
  • Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

fann_create_sparse_array

(PECL fann >= 1.0.0)

fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes

Описание

ReturnType fann_create_sparse_array ( float $connection_rate , int $num_layers , array $layers )

Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes.

Список параметров

connection_rate

The connection rate controls how many connections there will be in the network. If the connection rate is set to 1, the network will be fully connected, but if it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield the same result as fann_create_standard().

num_layers

The total number of layers including the input and the output layer.

layers

An array of layer sizes.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard backpropagation neural network, which is not fully connected

  • « fann_create_sparse_array
  • fann_create_standard_array »
  • PHP Manual
  • Fann Функции
  • Creates a standard backpropagation neural network, which is not fully connected

fann_create_sparse

(PECL fann >= 1.0.0)

fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected

Описание

ReturnType fann_create_sparse ( float $connection_rate , int $num_layers , int $num_neurons1 , int $num_neurons2 [, int $... ] )

Creates a standard backpropagation neural network, which is not fully connected.

Список параметров

connection_rate

The connection rate controls how many connections there will be in the network. If the connection rate is set to 1, the network will be fully connected, but if it is set to 0.5 only half of the connections will be set. A connection rate of 1 will yield the same result as fann_create_standard().

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

...

Number of neurons in other layers.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_sparse_array() - Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard fully connected backpropagation neural network using an array of layer sizes

  • « fann_create_sparse
  • fann_create_standard »
  • PHP Manual
  • Fann Функции
  • Creates a standard fully connected backpropagation neural network using an array of layer sizes

fann_create_standard_array

(PECL fann >= 1.0.0)

fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes

Описание

resource fann_create_standard_array ( int $num_layers , array $layers )

Creates a standard fully connected backpropagation neural network.

There will be a bias neuron in each layer (except the output layer), and this bias neuron will be connected to all neurons in the next layer. When running the network, the bias nodes always emits 1.

To destroy a neural network use the fann_destroy() function.

Список параметров

num_layers

The total number of layers including the input and the output layer.

layers

An array of layer sizes.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_standard() - Creates a standard fully connected backpropagation neural network
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates a standard fully connected backpropagation neural network

  • « fann_create_standard_array
  • fann_create_train_from_callback »
  • PHP Manual
  • Fann Функции
  • Creates a standard fully connected backpropagation neural network

fann_create_standard

(PECL fann >= 1.0.0)

fann_create_standard — Creates a standard fully connected backpropagation neural network

Описание

resource fann_create_standard ( int $num_layers , int $num_neurons1 , int $num_neurons2 [, int $... ] )

Creates a standard fully connected backpropagation neural network.

There will be a bias neuron in each layer (except the output layer), and this bias neuron will be connected to all neurons in the next layer. When running the network, the bias nodes always emits 1.

To destroy a neural network use the fann_destroy() function.

Список параметров

num_layers

The total number of layers including the input and the output layer.

num_neurons1

Number of neurons in the first layer.

num_neurons2

Number of neurons in the second layer.

...

Number of neurons in other layers.

Возвращаемые значения

Returns a neural network resource on success, or FALSE on error.

Смотрите также

  • fann_create_standard_array() - Creates a standard fully connected backpropagation neural network using an array of layer sizes
  • fann_create_sparse() - Creates a standard backpropagation neural network, which is not fully connected
  • fann_create_shortcut() - Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections


Creates the training data struct from a user supplied function

  • « fann_create_standard
  • fann_create_train »
  • PHP Manual
  • Fann Функции
  • Creates the training data struct from a user supplied function

fann_create_train_from_callback

(PECL fann >= 1.0.0)

fann_create_train_from_callback — Creates the training data struct from a user supplied function

Описание

resource fann_create_train_from_callback ( int $num_data , int $num_input , int $num_output , callable $user_function )

Creates the training data struct from a user supplied function. As the training data are numerable (data 1, data 2...), the user must write a function that receives the number of the training data set (input, output) and returns the set.

Список параметров

num_data

The number of training data

num_input

The number of inputs per training data

num_output

The number of ouputs per training data

user_function

The user supplied function with following parameters:

  • num - The number of the training data set
  • num_input - The number of inputs per training data
  • num_output - The number of ouputs per training data

The function should return an associative array with keys input and output and two array values of input and output.

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или FALSE в случае ошибки.

Примеры

Пример #1 fann_create_train_from_callback() example

<?php
function create_train_callback($num_data, $num_input, $num_output) {
    return array(
        "input" => array_fill(0, $num_input, 1),
        "output" => array_fill(0, $num_output, 1),
    );
}

$num_data = 3;
$num_input = 2;
$num_output = 1;
$train_data = fann_create_train_from_callback($num_data, $num_input, $num_output, "create_train_callback");
if ($train_data) {
    // Do something with $train_data
}
?>

Смотрите также

  • fann_read_train_from_file() - Reads a file that stores training data
  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Creates an empty training data struct

  • « fann_create_train_from_callback
  • fann_descale_input »
  • PHP Manual
  • Fann Функции
  • Creates an empty training data struct

fann_create_train

(PECL fann >= 1.0.0)

fann_create_train — Creates an empty training data struct

Описание

resource fann_create_train ( int $num_data , int $num_input , int $num_output )

Creates an empty training data struct.

Список параметров

num_data

The number of training data

num_input

The number of inputs per training data

num_output

The number of ouputs per training data

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или FALSE в случае ошибки.

Смотрите также

  • fann_read_train_from_file() - Reads a file that stores training data
  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Scale data in input vector after get it from ann based on previously calculated parameters

  • « fann_create_train
  • fann_descale_output »
  • PHP Manual
  • Fann Функции
  • Scale data in input vector after get it from ann based on previously calculated parameters

fann_descale_input

(PECL fann >= 1.0.0)

fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters

Описание

bool fann_descale_input ( resource $ann , array $input_vector )

Scale data in input vector after get it from ann based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

input_vector

Input vector that will be descaled

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_input() - Scale data in input vector before feed it to ann based on previously calculated parameters
  • fann_descale_output() - Scale data in output vector after get it from ann based on previously calculated parameters


Scale data in output vector after get it from ann based on previously calculated parameters

  • « fann_descale_input
  • fann_descale_train »
  • PHP Manual
  • Fann Функции
  • Scale data in output vector after get it from ann based on previously calculated parameters

fann_descale_output

(PECL fann >= 1.0.0)

fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters

Описание

bool fann_descale_output ( resource $ann , array $output_vector )

Scale data in output vector after get it from ann based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

output_vector

Output vector that will be descaled

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_output() - Scale data in output vector before feed it to ann based on previously calculated parameters
  • fann_descale_input() - Scale data in input vector after get it from ann based on previously calculated parameters


Descale input and output data based on previously calculated parameters

  • « fann_descale_output
  • fann_destroy_train »
  • PHP Manual
  • Fann Функции
  • Descale input and output data based on previously calculated parameters

fann_descale_train

(PECL fann >= 1.0.0)

fann_descale_train — Descale input and output data based on previously calculated parameters

Описание

bool fann_descale_train ( resource $ann , resource $train_data )

Descale input and output data based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_train() - Scale input and output data based on previously calculated parameters
  • fann_set_scaling_params() - Calculate input and output scaling parameters for future use based on training data


Destructs the training data

  • « fann_descale_train
  • fann_destroy »
  • PHP Manual
  • Fann Функции
  • Destructs the training data

fann_destroy_train

(PECL fann >= 1.0.0)

fann_destroy_train — Destructs the training data

Описание

bool fann_destroy_train ( resource $train_data )

Destructs the training data

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Destroys the entire network and properly freeing all the associated memory

  • « fann_destroy_train
  • fann_duplicate_train_data »
  • PHP Manual
  • Fann Функции
  • Destroys the entire network and properly freeing all the associated memory

fann_destroy

(PECL fann >= 1.0.0)

fann_destroy — Destroys the entire network and properly freeing all the associated memory

Описание

bool fann_destroy ( resource $ann )

Destroys the entire network and properly freeing all the associated memory.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Returns an exact copy of a fann train data

  • « fann_destroy
  • fann_get_activation_function »
  • PHP Manual
  • Fann Функции
  • Returns an exact copy of a fann train data

fann_duplicate_train_data

(PECL fann >= 1.0.0)

fann_duplicate_train_data — Returns an exact copy of a fann train data

Описание

resource fann_duplicate_train_data ( resource $data )

Returns an exact copy of a fann train data resource.

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или FALSE в случае ошибки.


Returns the activation function

  • « fann_duplicate_train_data
  • fann_get_activation_steepness »
  • PHP Manual
  • Fann Функции
  • Returns the activation function

fann_get_activation_function

(PECL fann >= 1.0.0)

fann_get_activation_function — Returns the activation function

Описание

int fann_get_activation_function ( resource $ann , int $layer , int $neuron )

Get the activation function for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to get activation functions for the neurons in the input layer.

The return value is one of the activation functions constants.

Список параметров

ann

Ресурс (resource) нейронной сети.

layer

Layer number.

neuron

Neuron number.

Возвращаемые значения

Learning functions constant or -1 if the neuron is not defined in the neural network, or FALSE on error.

Смотрите также

  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer.
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Returns the activation steepness for supplied neuron and layer number

  • « fann_get_activation_function
  • fann_get_bias_array »
  • PHP Manual
  • Fann Функции
  • Returns the activation steepness for supplied neuron and layer number

fann_get_activation_steepness

(PECL fann >= 1.0.0)

fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number

Описание

float fann_get_activation_steepness ( resource $ann , int $layer , int $neuron )

Get the activation steepness for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to get activation steepness for the neurons in the input layer.

The steepness of an activation function says something about how fast the activation function goes from the minimum to the maximum. A high value for the activation function will also give a more agressive training.

When training neural networks where the output values should be at the extremes (usually 0 and 1, depending on the activation function), a steep activation function can be used (e.g. 1.0).

The default activation steepness is 0.5.

Список параметров

ann

Ресурс (resource) нейронной сети.

layer

Layer number

neuron

Neuron number

Возвращаемые значения

The activation steepness for the neuron or -1 if the neuron is not defined in the neural network, or FALSE on error.

Смотрите также

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Get the number of bias in each layer in the network

  • « fann_get_activation_steepness
  • fann_get_bit_fail_limit »
  • PHP Manual
  • Fann Функции
  • Get the number of bias in each layer in the network

fann_get_bias_array

(PECL fann >= 1.0.0)

fann_get_bias_array — Get the number of bias in each layer in the network

Описание

array fann_get_bias_array ( resource $ann )

Get the number of bias in each layer in the network.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

An array of numbers of bias in each layer


Returns the bit fail limit used during training

  • « fann_get_bias_array
  • fann_get_bit_fail »
  • PHP Manual
  • Fann Функции
  • Returns the bit fail limit used during training

fann_get_bit_fail_limit

(PECL fann >= 1.0.0)

fann_get_bit_fail_limit — Returns the bit fail limit used during training

Описание

float fann_get_bit_fail_limit ( resource $ann )

Returns the bit fail limit used during training.

The bit fail limit is used during training where the stop function is set to FANN_STOPFUNC_BIT.

The limit is the maximum accepted difference between the desired output and the actual output during training. Each output that diverges more than this limit is counted as an error bit. This difference is divided by two when dealing with symmetric activation functions, so that symmetric and not symmetric activation functions can use the same limit.

The default bit fail limit is 0.35.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The bit fail limit, or FALSE on error.

Смотрите также

  • fann_set_bit_fail_limit() - Set the bit fail limit used during training


The number of fail bits

  • « fann_get_bit_fail_limit
  • fann_get_cascade_activation_functions_count »
  • PHP Manual
  • Fann Функции
  • The number of fail bits

fann_get_bit_fail

(PECL fann >= 1.0.0)

fann_get_bit_fail — The number of fail bits

Описание

int fann_get_bit_fail ( resource $ann )

The number of fail bits; means the number of output neurons which differ more than the bit fail limit (see fann_get_bit_fail_limit(), fann_set_bit_fail_limit()). The bits are counted in all of the training data, so this number can be higher than the number of training data.

This value is reset by fann_reset_MSE() and updated by all the same functions which also updates the MSE value (e.g. fann_test_data(), fann_train_epoch())

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of bits fail, or FALSE on error.

Смотрите также

  • fann_get_MSE() - Reads the mean square error from the network
  • fann_reset_MSE() - Resets the mean square error from the network
  • fann_test_data() - Test a set of training data and calculates the MSE for the training data
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training
  • fann_set_bit_fail_limit() - Set the bit fail limit used during training


Returns the number of cascade activation functions

  • « fann_get_bit_fail
  • fann_get_cascade_activation_functions »
  • PHP Manual
  • Fann Функции
  • Returns the number of cascade activation functions

fann_get_cascade_activation_functions_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions

Описание

int fann_get_cascade_activation_functions_count ( resource $ann )

The number of activation functions in the fann_get_cascade_activation_functions() array.

The default number of activation functions is 6.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of cascade activation functions, or FALSE on error.

Смотрите также

  • fann_get_cascade_activation_functions() - Returns the cascade activation functions
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


Returns the cascade activation functions

  • « fann_get_cascade_activation_functions_count
  • fann_get_cascade_activation_steepnesses_count »
  • PHP Manual
  • Fann Функции
  • Returns the cascade activation functions

fann_get_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_get_cascade_activation_functions — Returns the cascade activation functions

Описание

array fann_get_cascade_activation_functions ( resource $ann )

The cascade activation functions array is an array of the different activation functions used by the candidates

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

The default activation functions are FANN_SIGMOID, FANN_SIGMOID_SYMMETRIC, FANN_GAUSSIAN, FANN_GAUSSIAN_SYMMETRIC, FANN_ELLIOT, FANN_ELLIOT_SYMMETRIC.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The cascade activation functions, or FALSE on error.

Смотрите также

  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


The number of activation steepnesses

  • « fann_get_cascade_activation_functions
  • fann_get_cascade_activation_steepnesses »
  • PHP Manual
  • Fann Функции
  • The number of activation steepnesses

fann_get_cascade_activation_steepnesses_count

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses

Описание

int fann_get_cascade_activation_steepnesses_count ( resource $ann )

The number of activation steepnesses in the fann_get_cascade_activation_functions() array.

The default number of activation steepnesses is 4.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of activation steepnesses, or FALSE on error.

Смотрите также

  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_set_cascade_activation_functions() - Sets the array of cascade candidate activation functions


Returns the cascade activation steepnesses

  • « fann_get_cascade_activation_steepnesses_count
  • fann_get_cascade_candidate_change_fraction »
  • PHP Manual
  • Fann Функции
  • Returns the cascade activation steepnesses

fann_get_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses

Описание

array fann_get_cascade_activation_steepnesses ( resource $ann )

The cascade activation steepnesses array is an array of the different activation functions used by the candidates.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

The default activation steepnesses are {0.25, 0.50, 0.75, 1.00}.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The cascade activation steepnesses, or FALSE on error.

Смотрите также

  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses
  • fann_set_cascade_activation_steepnesses() - Sets the array of cascade candidate activation steepnesses


Returns the cascade candidate change fraction

  • « fann_get_cascade_activation_steepnesses
  • fann_get_cascade_candidate_limit »
  • PHP Manual
  • Fann Функции
  • Returns the cascade candidate change fraction

fann_get_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction

Описание

float fann_get_cascade_candidate_change_fraction ( resource $ann )

The cascade candidate change fraction is a number between 0 and 1 determining how large a fraction the fann_get_MSE() value should change within fann_get_cascade_candidate_stagnation_epochs() during training of the candidate neurons, in order for the training not to stagnate. If the training stagnates, the training of the candidate neurons will be ended and the best candidate will be selected.

It means that if the MSE does not change by a fraction of fann_get_cascade_candidate_change_fraction() during a period of fann_get_cascade_candidate_stagnation_epochs(), the training of the candidate neurons is stopped because the training has stagnated.

If the cascade candidate change fraction is low, the candidate neurons will be trained more and if the fraction is high they will be trained less.

The default cascade candidate change fraction is 0.01, which is equalent to a 1% change in MSE.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The cascade candidate change fraction, or FALSE on error.

Смотрите также

  • fann_set_cascade_candidate_change_fraction() - Sets the cascade candidate change fraction
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_cascade_candidate_stagnation_epochs() - Returns the number of cascade candidate stagnation epochs


Return the candidate limit

  • « fann_get_cascade_candidate_change_fraction
  • fann_get_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Fann Функции
  • Return the candidate limit

fann_get_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_limit — Return the candidate limit

Описание

float fann_get_cascade_candidate_limit ( resource $ann )

The candidate limit is a limit for how much the candidate neuron may be trained. The limit is a limit on the proportion between the MSE and candidate score.

Set this to a lower value to avoid overfitting and to a higher if overfitting is not a problem.

The default candidate limit is 1000.0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The candidate limit, or FALSE on error.

Смотрите также

  • fann_set_cascade_candidate_limit() - Sets the candidate limit


Returns the number of cascade candidate stagnation epochs

  • « fann_get_cascade_candidate_limit
  • fann_get_cascade_max_cand_epochs »
  • PHP Manual
  • Fann Функции
  • Returns the number of cascade candidate stagnation epochs

fann_get_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs

Описание

float fann_get_cascade_candidate_stagnation_epochs ( resource $ann )

The number of cascade candidate stagnation epochs determines the number of epochs training is allowed to continue without changing the MSE by a fraction of fann_get_cascade_candidate_change_fraction().

See more info about this parameter in fann_get_cascade_candidate_change_fraction().

The default number of cascade candidate stagnation epochs is 12.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of cascade candidate stagnation epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_candidate_stagnation_epochs() - Sets the number of cascade candidate stagnation epochs
  • fann_get_cascade_candidate_change_fraction() - Returns the cascade candidate change fraction


Returns the maximum candidate epochs

  • « fann_get_cascade_candidate_stagnation_epochs
  • fann_get_cascade_max_out_epochs »
  • PHP Manual
  • Fann Функции
  • Returns the maximum candidate epochs

fann_get_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs

Описание

int fann_get_cascade_max_cand_epochs ( resource $ann )

The maximum candidate epochs determines the maximum number of epochs the input connections to the candidates may be trained before adding a new candidate neuron.

The default max candidate epochs is 150.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The maximum candidate epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_max_cand_epochs() - Sets the max candidate epochs


Returns the maximum out epochs

  • « fann_get_cascade_max_cand_epochs
  • fann_get_cascade_min_cand_epochs »
  • PHP Manual
  • Fann Функции
  • Returns the maximum out epochs

fann_get_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_max_out_epochs — Returns the maximum out epochs

Описание

int fann_get_cascade_max_out_epochs ( resource $ann )

The maximum out epochs determines the maximum number of epochs the output connections may be trained after adding a new candidate neuron.

The default max out epochs is 150.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The maximum out epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_max_out_epochs() - Sets the maximum out epochs


Returns the minimum candidate epochs

  • « fann_get_cascade_max_out_epochs
  • fann_get_cascade_min_out_epochs »
  • PHP Manual
  • Fann Функции
  • Returns the minimum candidate epochs

fann_get_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs

Описание

int fann_get_cascade_min_cand_epochs ( resource $ann )

The minimum candidate epochs determines the minimum number of epochs the input connections to the candidates may be trained before adding a new candidate neuron.

The default min candidate epochs is 50.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The minimum candidate epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_min_cand_epochs() - Sets the min candidate epochs


Returns the minimum out epochs

  • « fann_get_cascade_min_cand_epochs
  • fann_get_cascade_num_candidate_groups »
  • PHP Manual
  • Fann Функции
  • Returns the minimum out epochs

fann_get_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_min_out_epochs — Returns the minimum out epochs

Описание

int fann_get_cascade_min_out_epochs ( resource $ann )

The minimum out epochs determines the minimum number of epochs the output connections must be trained after adding a new candidate neuron.

The default min out epochs is 50.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The minimum out epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_min_out_epochs() - Sets the minimum out epochs


Returns the number of candidate groups

  • « fann_get_cascade_min_out_epochs
  • fann_get_cascade_num_candidates »
  • PHP Manual
  • Fann Функции
  • Returns the number of candidate groups

fann_get_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidate_groups — Returns the number of candidate groups

Описание

int fann_get_cascade_num_candidate_groups ( resource $ann )

The number of candidate groups is the number of groups of identical candidates which will be used during training.

This number can be used to have more candidates without having to define new parameters for the candidates.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this parameter.

The default number of candidate groups is 2.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of candidate groups, or FALSE on error.

Смотрите также

  • fann_set_cascade_num_candidate_groups() - Sets the number of candidate groups


Returns the number of candidates used during training

  • « fann_get_cascade_num_candidate_groups
  • fann_get_cascade_output_change_fraction »
  • PHP Manual
  • Fann Функции
  • Returns the number of candidates used during training

fann_get_cascade_num_candidates

(PECL fann >= 1.0.0)

fann_get_cascade_num_candidates — Returns the number of candidates used during training

Описание

int fann_get_cascade_num_candidates ( resource $ann )

The number of candidates used during training (calculated by multiplying
fann_get_cascade_activation_functions_count(),
fann_get_cascade_activation_steepnesses_count() and
fann_get_cascade_num_candidate_groups()).

The actual candidates is defined by the fann_get_cascade_activation_functions() and fann_get_cascade_activation_steepnesses() arrays. These arrays define the activation functions and activation steepnesses used for the candidate neurons. If there are 2 activation functions in the activation function array and 3 steepnesses in the steepness array, then there will be 2x3=6 different candidates which will be trained. These 6 different candidates can be copied into several candidate groups, where the only difference between these groups is the initial weights. If the number of groups is set to 2, then the number of candidate neurons will be 2x3x2=12. The number of candidate groups is defined by fann_set_cascade_num_candidate_groups().

The default number of candidates is 6x4x2 = 48

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of candidates used during training, or FALSE on error.

Смотрите также

  • fann_get_cascade_activation_functions() - Returns the cascade activation functions
  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses
  • fann_get_cascade_num_candidate_groups() - Returns the number of candidate groups


Returns the cascade output change fraction

  • « fann_get_cascade_num_candidates
  • fann_get_cascade_output_stagnation_epochs »
  • PHP Manual
  • Fann Функции
  • Returns the cascade output change fraction

fann_get_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_get_cascade_output_change_fraction — Returns the cascade output change fraction

Описание

float fann_get_cascade_output_change_fraction ( resource $ann )

The cascade output change fraction is a number between 0 and 1 determining how large a fraction of the fann_get_MSE() value should change within fann_get_cascade_output_stagnation_epochs() during training of the output connections, in order for the training not to stagnate. If the training stagnates, the training of the output connections will be ended and new candidates will be prepared.

It means that if the MSE does not change by a fraction of fann_get_cascade_output_change_fraction() during a period of fann_get_cascade_output_stagnation_epochs(), the training of the output connections is stopped because the training has stagnated.

If the cascade output change fraction is low, the output connections will be trained more and if the fraction is high, they will be trained less.

The default cascade output change fraction is 0.01, which is equalent to a 1% change in MSE.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The cascade output change fraction, or FALSE on error.

Смотрите также

  • fann_set_cascade_output_change_fraction() - Sets the cascade output change fraction
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_cascade_output_stagnation_epochs() - Returns the number of cascade output stagnation epochs


Returns the number of cascade output stagnation epochs

  • « fann_get_cascade_output_change_fraction
  • fann_get_cascade_weight_multiplier »
  • PHP Manual
  • Fann Функции
  • Returns the number of cascade output stagnation epochs

fann_get_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs

Описание

int fann_get_cascade_output_stagnation_epochs ( resource $ann )

The number of cascade output stagnation epochs determines the number of epochs training is allowed to continue without changing the MSE by a fraction of fann_get_cascade_output_change_fraction().

See more info about this parameter in fann_get_cascade_output_change_fraction().

The default number of cascade output stagnation epochs is 12.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of cascade output stagnation epochs, or FALSE on error.

Смотрите также

  • fann_set_cascade_output_stagnation_epochs() - Sets the number of cascade output stagnation epochs
  • fann_get_cascade_output_change_fraction() - Returns the cascade output change fraction


Returns the weight multiplier

  • « fann_get_cascade_output_stagnation_epochs
  • fann_get_connection_array »
  • PHP Manual
  • Fann Функции
  • Returns the weight multiplier

fann_get_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_get_cascade_weight_multiplier — Returns the weight multiplier

Описание

float fann_get_cascade_weight_multiplier ( resource $ann )

The weight multiplier is a parameter which is used to multiply the weights from the candidate neuron before adding the neuron to the neural network. This parameter is usually between 0 and 1, and is used to make the training a bit less aggressive.

The default weight multiplier is 0.4.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The weight multiplier, or FALSE on error.

Смотрите также

  • fann_set_cascade_weight_multiplier() - Sets the weight multiplier


Get connections in the network

  • « fann_get_cascade_weight_multiplier
  • fann_get_connection_rate »
  • PHP Manual
  • Fann Функции
  • Get connections in the network

fann_get_connection_array

(PECL fann >= 1.0.0)

fann_get_connection_array — Get connections in the network

Описание

array fann_get_connection_array ( resource $ann )

Get connections in the network.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

An array of connections in the network


Get the connection rate used when the network was created

  • « fann_get_connection_array
  • fann_get_errno »
  • PHP Manual
  • Fann Функции
  • Get the connection rate used when the network was created

fann_get_connection_rate

(PECL fann >= 1.0.0)

fann_get_connection_rate — Get the connection rate used when the network was created

Описание

float fann_get_connection_rate ( resource $ann )

Get the connection rate used when the network was created.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The connection rate used when the network was created, or FALSE on error.


Returns the last error number

  • « fann_get_connection_rate
  • fann_get_errstr »
  • PHP Manual
  • Fann Функции
  • Returns the last error number

fann_get_errno

(PECL fann >= 1.0.0)

fann_get_errno — Returns the last error number

Описание

int fann_get_errno ( resource $errdat )

Returns the last error number.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

The error number, or FALSE on error.

Смотрите также

  • fann_reset_errno() - Resets the last error number
  • fann_get_errstr() - Returns the last errstr


Returns the last errstr

  • « fann_get_errno
  • fann_get_layer_array »
  • PHP Manual
  • Fann Функции
  • Returns the last errstr

fann_get_errstr

(PECL fann >= 1.0.0)

fann_get_errstr — Returns the last errstr

Описание

string fann_get_errstr ( resource $errdat )

Returns the last errstr.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

The last error string, or FALSE on error.

Смотрите также

  • fann_reset_errstr() - Resets the last error string
  • fann_get_errno() - Returns the last error number


Get the number of neurons in each layer in the network

  • « fann_get_errstr
  • fann_get_learning_momentum »
  • PHP Manual
  • Fann Функции
  • Get the number of neurons in each layer in the network

fann_get_layer_array

(PECL fann >= 1.0.0)

fann_get_layer_array — Get the number of neurons in each layer in the network

Описание

array fann_get_layer_array ( resource $ann )

Get the number of neurons in each layer in the neural network.

Bias is not included so the layers match the fann_create functions.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

An array of numbers of neurons in each leayer


Returns the learning momentum

  • « fann_get_layer_array
  • fann_get_learning_rate »
  • PHP Manual
  • Fann Функции
  • Returns the learning momentum

fann_get_learning_momentum

(PECL fann >= 1.0.0)

fann_get_learning_momentum — Returns the learning momentum

Описание

float fann_get_learning_momentum ( resource $ann )

The learning momentum can be used to speed up FANN_TRAIN_INCREMENTAL training. A too high momentum will however not benefit training. Setting momentum to 0 will be the same as not using the momentum parameter. The recommended value of this parameter is between 0.0 and 1.0.

The default momentum is 0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

The learning momentum, or FALSE on error.

Смотрите также

  • fann_set_learning_momentum() - Sets the learning momentum
  • fann_set_training_algorithm() - Sets the training algorithm


Returns the learning rate

  • « fann_get_learning_momentum
  • fann_get_MSE »
  • PHP Manual
  • Fann Функции
  • Returns the learning rate

fann_get_learning_rate

(PECL fann >= 1.0.0)

fann_get_learning_rate — Returns the learning rate

Описание

float fann_get_learning_rate ( resource $ann )

The learning rate is used to determine how aggressive training should be for some of the training algorithms (FANN_TRAIN_INCREMENTAL, FANN_TRAIN_BATCH, FANN_TRAIN_QUICKPROP). Do however note that it is not used in FANN_TRAIN_RPROP.

The default learning rate is 0.7.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The learning rate, or FALSE on error.

Смотрите также

  • fann_set_learning_rate() - Sets the learning rate
  • fann_set_training_algorithm() - Sets the training algorithm


Reads the mean square error from the network

  • « fann_get_learning_rate
  • fann_get_network_type »
  • PHP Manual
  • Fann Функции
  • Reads the mean square error from the network

fann_get_MSE

(PECL fann >= 1.0.0)

fann_get_MSE — Reads the mean square error from the network

Описание

float fann_get_MSE ( resource $ann )

Reads the mean square error from the network.

Reads the mean square error from the network. This value is calculated during training or testing and can therefore sometimes be a bit off if the weights have been changed since the last calculation of the value.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The mean square error, or FALSE on error.

Смотрите также

  • fann_test_data() - Test a set of training data and calculates the MSE for the training data


Get the type of neural network it was created as

  • « fann_get_MSE
  • fann_get_num_input »
  • PHP Manual
  • Fann Функции
  • Get the type of neural network it was created as

fann_get_network_type

(PECL fann >= 1.0.0)

fann_get_network_type — Get the type of neural network it was created as

Описание

int fann_get_network_type ( resource $ann )

Get the type of neural network it was created as.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Network type constant, or FALSE on error.


Get the number of input neurons

  • « fann_get_network_type
  • fann_get_num_layers »
  • PHP Manual
  • Fann Функции
  • Get the number of input neurons

fann_get_num_input

(PECL fann >= 1.0.0)

fann_get_num_input — Get the number of input neurons

Описание

int fann_get_num_input ( resource $ann )

Get the number of input neurons.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Number of input neurons, or FALSE on error


Get the number of layers in the neural network

  • « fann_get_num_input
  • fann_get_num_output »
  • PHP Manual
  • Fann Функции
  • Get the number of layers in the neural network

fann_get_num_layers

(PECL fann >= 1.0.0)

fann_get_num_layers — Get the number of layers in the neural network

Описание

int fann_get_num_layers ( resource $ann )

Get the number of layers in the neural network.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The number of leayers in the neural network, or FALSE on error.


Get the number of output neurons

  • « fann_get_num_layers
  • fann_get_quickprop_decay »
  • PHP Manual
  • Fann Функции
  • Get the number of output neurons

fann_get_num_output

(PECL fann >= 1.0.0)

fann_get_num_output — Get the number of output neurons

Описание

int fann_get_num_output ( resource $ann )

Get the number of output neurons.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Number of output neurons, or FALSE on error


Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

  • « fann_get_num_output
  • fann_get_quickprop_mu »
  • PHP Manual
  • Fann Функции
  • Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

fann_get_quickprop_decay

(PECL fann >= 1.0.0)

fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training

Описание

float fann_get_quickprop_decay ( resource $ann )

The decay is a small negative valued number which is a factor that the weights should decrease in each iteration during quickprop training. This is used to make sure that the weights do not become too high during training.

The default decay is -0.0001.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The decay, or FALSE on error.

Смотрите также

  • fann_set_quickprop_decay() - Sets the quickprop decay factor


Returns the mu factor

  • « fann_get_quickprop_decay
  • fann_get_rprop_decrease_factor »
  • PHP Manual
  • Fann Функции
  • Returns the mu factor

fann_get_quickprop_mu

(PECL fann >= 1.0.0)

fann_get_quickprop_mu — Returns the mu factor

Описание

float fann_get_quickprop_mu ( resource $ann )

The mu factor is used to increase and decrease the step-size during quickprop training. The mu factor should always be above 1, since it would otherwise decrease the step-size when it was suppose to increase it.

The default mu factor is 1.75.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The mu factor, or FALSE on error.

Смотрите также

  • fann_set_quickprop_mu() - Sets the quickprop mu factor


Returns the increase factor used during RPROP training

  • « fann_get_quickprop_mu
  • fann_get_rprop_delta_max »
  • PHP Manual
  • Fann Функции
  • Returns the increase factor used during RPROP training

fann_get_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training

Описание

float fann_get_rprop_decrease_factor ( resource $ann )

The decrease factor is a value smaller than 1, which is used to decrease the step-size during RPROP training.

The default decrease factor is 0.5.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The decrease factor, or FALSE on error.

Смотрите также

  • fann_set_rprop_decrease_factor() - Sets the decrease factor used during RPROP training


Returns the maximum step-size

  • « fann_get_rprop_decrease_factor
  • fann_get_rprop_delta_min »
  • PHP Manual
  • Fann Функции
  • Returns the maximum step-size

fann_get_rprop_delta_max

(PECL fann >= 1.0.0)

fann_get_rprop_delta_max — Returns the maximum step-size

Описание

float fann_get_rprop_delta_max ( resource $ann )

The maximum step-size is a positive number determining how large the maximum step-size may be.

The default delta max is 50.0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The maximum step-size, or FALSE on error.

Смотрите также

  • fann_set_rprop_delta_max() - Sets the maximum step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size


Returns the minimum step-size

  • « fann_get_rprop_delta_max
  • fann_get_rprop_delta_zero »
  • PHP Manual
  • Fann Функции
  • Returns the minimum step-size

fann_get_rprop_delta_min

(PECL fann >= 1.0.0)

fann_get_rprop_delta_min — Returns the minimum step-size

Описание

float fann_get_rprop_delta_min ( resource $ann )

The minimum step-size is a small positive number determining how small the minimum step-size may be.

The default value delta min is 0.0.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The minimum step-size, or FALSE on error.

Смотрите также

  • fann_set_rprop_delta_min() - Sets the minimum step-size


Returns the initial step-size

  • « fann_get_rprop_delta_min
  • fann_get_rprop_increase_factor »
  • PHP Manual
  • Fann Функции
  • Returns the initial step-size

fann_get_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_get_rprop_delta_zero — Returns the initial step-size

Описание

ReturnType fann_get_rprop_delta_zero ( resource $ann )

The initial step-size is a positive number determining the initial step size.

The default delta zero is 0.1.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The initial step-size, or FALSE on error.

Смотрите также

  • fann_set_rprop_delta_zero() - Sets the initial step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size
  • fann_get_rprop_delta_max() - Returns the maximum step-size


Returns the increase factor used during RPROP training

  • « fann_get_rprop_delta_zero
  • fann_get_sarprop_step_error_shift »
  • PHP Manual
  • Fann Функции
  • Returns the increase factor used during RPROP training

fann_get_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training

Описание

float fann_get_rprop_increase_factor ( resource $ann )

The increase factor is a value larger than 1, which is used to increase the step-size during RPROP training.

The default increase factor is 1.2.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The increase factor, or FALSE on error.

Смотрите также

  • fann_set_rprop_increase_factor() - Sets the increase factor used during RPROP training


Returns the sarprop step error shift

  • « fann_get_rprop_increase_factor
  • fann_get_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Fann Функции
  • Returns the sarprop step error shift

fann_get_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_shift — Returns the sarprop step error shift

Описание

float fann_get_sarprop_step_error_shift ( resource $ann )

Returns the sarprop step error shift.

The default step error shift is 1.385.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The sarprop step error shift , or FALSE on error.

Смотрите также

  • fann_set_sarprop_step_error_shift() - Sets the sarprop step error shift


Returns the sarprop step error threshold factor

  • « fann_get_sarprop_step_error_shift
  • fann_get_sarprop_temperature »
  • PHP Manual
  • Fann Функции
  • Returns the sarprop step error threshold factor

fann_get_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor

Описание

float fann_get_sarprop_step_error_threshold_factor ( resource $ann )

The sarprop step error threshold factor.

The default factor is 0.1.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The sarprop step error threshold factor, or FALSE on error.

Смотрите также

  • fann_set_sarprop_step_error_threshold_factor() - Sets the sarprop step error threshold factor


Returns the sarprop temperature

  • « fann_get_sarprop_step_error_threshold_factor
  • fann_get_sarprop_weight_decay_shift »
  • PHP Manual
  • Fann Функции
  • Returns the sarprop temperature

fann_get_sarprop_temperature

(PECL fann >= 1.0.0)

fann_get_sarprop_temperature — Returns the sarprop temperature

Описание

float fann_get_sarprop_temperature ( resource $ann )

Returns the sarprop temperature.

The default temperature is 0.015.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The sarprop temperature, or FALSE on error.

Смотрите также

  • fann_set_sarprop_temperature() - Sets the sarprop temperature


Returns the sarprop weight decay shift

  • « fann_get_sarprop_temperature
  • fann_get_total_connections »
  • PHP Manual
  • Fann Функции
  • Returns the sarprop weight decay shift

fann_get_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift

Описание

float fann_get_sarprop_weight_decay_shift ( resource $ann )

The sarprop weight decay shift.

The default delta max is -6.644.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The sarprop weight decay shift, or FALSE on error.

Смотрите также

  • fann_set_sarprop_weight_decay_shift() - Sets the sarprop weight decay shift


Get the total number of connections in the entire network

  • « fann_get_sarprop_weight_decay_shift
  • fann_get_total_neurons »
  • PHP Manual
  • Fann Функции
  • Get the total number of connections in the entire network

fann_get_total_connections

(PECL fann >= 1.0.0)

fann_get_total_connections — Get the total number of connections in the entire network

Описание

int fann_get_total_connections ( resource $ann )

Get the total number of connections in the entire network.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Total number of connections in the entire network, or FALSE on error


Get the total number of neurons in the entire network

  • « fann_get_total_connections
  • fann_get_train_error_function »
  • PHP Manual
  • Fann Функции
  • Get the total number of neurons in the entire network

fann_get_total_neurons

(PECL fann >= 1.0.0)

fann_get_total_neurons — Get the total number of neurons in the entire network

Описание

int fann_get_total_neurons ( resource $ann )

Get the total number of neurons in the entire network. This number does also include the bias neurons, so a 2-4-2 network has 2+4+2 +2(bias) = 10 neurons.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Total number of neurons in the entire network, or FALSE on error.


Returns the error function used during training

  • « fann_get_total_neurons
  • fann_get_train_stop_function »
  • PHP Manual
  • Fann Функции
  • Returns the error function used during training

fann_get_train_error_function

(PECL fann >= 1.0.0)

fann_get_train_error_function — Returns the error function used during training

Описание

int fann_get_train_error_function ( resource $ann )

Returns the error function used during training.

The error functions are described further in error functions constants.

The default error function is FANN_ERRORFUNC_TANH.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The error function constant, or FALSE on error.

Смотрите также

  • fann_set_train_error_function() - Sets the error function used during training


Returns the stop function used during training

  • « fann_get_train_error_function
  • fann_get_training_algorithm »
  • PHP Manual
  • Fann Функции
  • Returns the stop function used during training

fann_get_train_stop_function

(PECL fann >= 1.0.0)

fann_get_train_stop_function — Returns the stop function used during training

Описание

int fann_get_train_stop_function ( resource $ann )

Returns the stop function used during training.

The stop functions are described further in stop functions constants.

The default stop function is FANN_STOPFUNC_MSE.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

The stop function constant, or FALSE on error.

Смотрите также

  • fann_set_train_stop_function() - Sets the stop function used during training


Returns the training algorithm

  • « fann_get_train_stop_function
  • fann_init_weights »
  • PHP Manual
  • Fann Функции
  • Returns the training algorithm

fann_get_training_algorithm

(PECL fann >= 1.0.0)

fann_get_training_algorithm — Returns the training algorithm

Описание

int fann_get_training_algorithm ( resource $ann )

Returns the training algorithm. This training algorithm is used by fann_train_on_data() and associated functions.

Note that this algorithm is also used during fann_cascadetrain_on_data(), although only FANN_TRAIN_RPROP and FANN_TRAIN_QUICKPROP is allowed during cascade training.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Training algorithm constant, or FALSE on error.

Смотрите также

  • fann_set_training_algorithm() - Sets the training algorithm


Initialize the weights using Widrow + Nguyen’s algorithm

  • « fann_get_training_algorithm
  • fann_length_train_data »
  • PHP Manual
  • Fann Функции
  • Initialize the weights using Widrow + Nguyen’s algorithm

fann_init_weights

(PECL fann >= 1.0.0)

fann_init_weights — Initialize the weights using Widrow + Nguyen's algorithm

Описание

bool fann_init_weights ( resource $ann , resource $train_data )

Initialize the weights using Widrow + Nguyen's algorithm.

This function behaves similarly to fann_randomize_weights(). It will use the algorithm developed by Derrick Nguyen and Bernard Widrow to set the weights in such a way as to speed up training. This technique is not always successful, and in some cases can be less efficient than a purely random initialization.

The algorithm requires access to the range of the input data (for example largest and smallest input), and therefore accepts a second argument, data, which is the training data that will be used to train the network.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_randomize_weights() - Give each connection a random weight between min_weight and max_weight
  • fann_read_train_from_file() - Reads a file that stores training data


Returns the number of training patterns in the train data

  • « fann_init_weights
  • fann_merge_train_data »
  • PHP Manual
  • Fann Функции
  • Returns the number of training patterns in the train data

fann_length_train_data

(PECL fann >= 1.0.0)

fann_length_train_data — Returns the number of training patterns in the train data

Описание

int fann_length_train_data ( resource $data )

Returns the number of training patterns in the train data resource.

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Number of elements in the train data resource, or FALSE on error.


Merges the train data

  • « fann_length_train_data
  • fann_num_input_train_data »
  • PHP Manual
  • Fann Функции
  • Merges the train data

fann_merge_train_data

(PECL fann >= 1.0.0)

fann_merge_train_data — Merges the train data

Описание

resource fann_merge_train_data ( resource $data1 , resource $data2 )

Merges the data from data1 and data2 into a new train data resource.

Список параметров

data1

Ресурс (resource) обучающих данных нейронной сети.

data2

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

New merged train data resource, or FALSE on error.


Returns the number of inputs in each of the training patterns in the train data

  • « fann_merge_train_data
  • fann_num_output_train_data »
  • PHP Manual
  • Fann Функции
  • Returns the number of inputs in each of the training patterns in the train data

fann_num_input_train_data

(PECL fann >= 1.0.0)

fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data

Описание

int fann_num_input_train_data ( resource $data )

Returns the number of inputs in each of the training patterns in the train data resource.

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

The number of inputs, or FALSE on error.

Смотрите также

  • fann_length_train_data() - Returns the number of training patterns in the train data
  • fann_num_output_train_data() - Returns the number of outputs in each of the training patterns in the train data


Returns the number of outputs in each of the training patterns in the train data

  • « fann_num_input_train_data
  • fann_print_error »
  • PHP Manual
  • Fann Функции
  • Returns the number of outputs in each of the training patterns in the train data

fann_num_output_train_data

(PECL fann >= 1.0.0)

fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data

Описание

int fann_num_output_train_data ( resource $data )

Returns the number of outputs in each of the training patterns in the train data resource.

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

The number of outputs, or FALSE on error.

Смотрите также

  • fann_length_train_data() - Returns the number of training patterns in the train data
  • fann_num_input_train_data() - Returns the number of inputs in each of the training patterns in the train data


Prints the error string

  • « fann_num_output_train_data
  • fann_randomize_weights »
  • PHP Manual
  • Fann Функции
  • Prints the error string

fann_print_error

(PECL fann >= 1.0.0)

fann_print_error — Prints the error string

Описание

void fann_print_error ( string $errdat )

Prints the error string.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Не возвращает никакого значения.

Смотрите также

  • fann_get_errstr() - Returns the last errstr


Give each connection a random weight between min_weight and max_weight

  • « fann_print_error
  • fann_read_train_from_file »
  • PHP Manual
  • Fann Функции
  • Give each connection a random weight between min_weight and max_weight

fann_randomize_weights

(PECL fann >= 1.0.0)

fann_randomize_weights — Give each connection a random weight between min_weight and max_weight

Описание

bool fann_randomize_weights ( resource $ann , float $min_weight , float $max_weight )

Give each connection a random weight between min_weight and max_weight

From the beginning the weights are random between -0.1 and 0.1.

Список параметров

ann

Ресурс (resource) нейронной сети.

min_weight

Minimum weight value

max_weight

Maximum weight value

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_init_weights() - Initialize the weights using Widrow + Nguyen’s algorithm


Reads a file that stores training data

  • « fann_randomize_weights
  • fann_reset_errno »
  • PHP Manual
  • Fann Функции
  • Reads a file that stores training data

fann_read_train_from_file

(PECL fann >= 1.0.0)

fann_read_train_from_file — Reads a file that stores training data

Описание

resource fann_read_train_from_file ( string $filename )

Reads a file that stores training data.

Список параметров

filename

The input file in the following format:

num_train_data num_input num_output
inputdata seperated by space
outputdata seperated by space

.
.
.

inputdata seperated by space
outputdata seperated by space

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или FALSE в случае ошибки.

Примеры

Пример #1 fann_read_train_from_file() example

<?php
$train_data = fann_read_train_from_file("xor.data");
if ($train_data) {
    // Do something with $train_data for XOR function
}
?>

Contents of xor.data

4 2 1
-1 -1
-1
-1 1
1
1 -1
1
1 1
-1

Смотрите также

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_destroy_train() - Destructs the training data
  • fann_save_train() - Save the training structure to a file


Resets the last error number

  • « fann_read_train_from_file
  • fann_reset_errstr »
  • PHP Manual
  • Fann Функции
  • Resets the last error number

fann_reset_errno

(PECL fann >= 1.0.0)

fann_reset_errno — Resets the last error number

Описание

void fann_reset_errno ( resource $errdat )

Resets the last error number.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Не возвращает никакого значения.

Смотрите также

  • fann_get_errno() - Returns the last error number
  • fann_reset_errstr() - Resets the last error string


Resets the last error string

  • « fann_reset_errno
  • fann_reset_MSE »
  • PHP Manual
  • Fann Функции
  • Resets the last error string

fann_reset_errstr

(PECL fann >= 1.0.0)

fann_reset_errstr — Resets the last error string

Описание

void fann_reset_errstr ( resource $errdat )

Resets the last error string.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Не возвращает никакого значения.

Смотрите также

  • fann_get_errstr() - Returns the last errstr
  • fann_reset_errno() - Resets the last error number


Resets the mean square error from the network

  • « fann_reset_errstr
  • fann_run »
  • PHP Manual
  • Fann Функции
  • Resets the mean square error from the network

fann_reset_MSE

(PECL fann >= 1.0.0)

fann_reset_MSE — Resets the mean square error from the network

Описание

bool fann_reset_MSE ( string $ann )

Resets the mean square error from the network.

This function also resets the number of bits that fail.

Список параметров

ann

Ресурс (resource) нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_MSE() - Reads the mean square error from the network
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training


Will run input through the neural network

  • « fann_reset_MSE
  • fann_save_train »
  • PHP Manual
  • Fann Функции
  • Will run input through the neural network

fann_run

(PECL fann >= 1.0.0)

fann_run — Will run input through the neural network

Описание

array fann_run ( resource $ann , array $input )

Will run input through the neural network, returning an array of outputs, the number of which being equal to the number of neurons in the output layer.

Список параметров

ann

Ресурс (resource) нейронной сети.

input

Array of input values

Возвращаемые значения

Array of output values, or FALSE on error


Save the training structure to a file

  • « fann_run
  • fann_save »
  • PHP Manual
  • Fann Функции
  • Save the training structure to a file

fann_save_train

(PECL fann >= 1.0.0)

fann_save_train — Save the training structure to a file

Описание

bool fann_save_train ( resource $data , string $file_name )

Save the training data to a file, with the format as specified in fann_read_train_from_file().

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

file_name

The file name of the file where training data is saved to.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_read_train_from_file() - Reads a file that stores training data


Saves the entire network to a configuration file

  • « fann_save_train
  • fann_scale_input_train_data »
  • PHP Manual
  • Fann Функции
  • Saves the entire network to a configuration file

fann_save

(PECL fann >= 1.0.0)

fann_save — Saves the entire network to a configuration file

Описание

bool fann_save ( resource $ann , string $configuration_file )

Saves the entire network to a configuration file.

The configuration file contains all information about the neural network and enables fann_create_from_file() to create an exact copy of the neural network and all of the parameters associated with the neural network.

These three parameters (fann_set_callback(), fann_set_error_log(), fann_set_user_data()) are NOT saved to the file because they cannot safely be ported to a different location. Also temporary parameters generated during training like fann_get_MSE() is not saved.

Список параметров

ann

Ресурс (resource) нейронной сети.

configuration_file

The configuration file path.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_create_from_file() - Constructs a backpropagation neural network from a configuration file


Scales the inputs in the training data to the specified range

  • « fann_save
  • fann_scale_input »
  • PHP Manual
  • Fann Функции
  • Scales the inputs in the training data to the specified range

fann_scale_input_train_data

(PECL fann >= 1.0.0)

fann_scale_input_train_data — Scales the inputs in the training data to the specified range

Описание

bool fann_scale_input_train_data ( resource $train_data , float $new_min , float $new_max )

Scales the inputs in the training data to the specified range.

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_min

New minimum after scaling inputs in training data.

new_max

New maximum after scaling inputs in training data.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_output_train_data() - Scales the outputs in the training data to the specified range
  • fann_scale_train_data() - Scales the inputs and outputs in the training data to the specified range


Scale data in input vector before feed it to ann based on previously calculated parameters

  • « fann_scale_input_train_data
  • fann_scale_output_train_data »
  • PHP Manual
  • Fann Функции
  • Scale data in input vector before feed it to ann based on previously calculated parameters

fann_scale_input

(PECL fann >= 1.0.0)

fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters

Описание

bool fann_scale_input ( resource $ann , array $input_vector )

Scale data in input vector before feed it to ann based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

input_vector

Input vector that will be scaled

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_descale_input() - Scale data in input vector after get it from ann based on previously calculated parameters
  • fann_scale_output() - Scale data in output vector before feed it to ann based on previously calculated parameters


Scales the outputs in the training data to the specified range

  • « fann_scale_input
  • fann_scale_output »
  • PHP Manual
  • Fann Функции
  • Scales the outputs in the training data to the specified range

fann_scale_output_train_data

(PECL fann >= 1.0.0)

fann_scale_output_train_data — Scales the outputs in the training data to the specified range

Описание

bool fann_scale_output_train_data ( resource $train_data , float $new_min , float $new_max )

Scales the outputs in the training data to the specified range.

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_min

New minimum after scaling outputs in training data.

new_max

New maximum after scaling outputs in training data.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_input_train_data() - Scales the inputs in the training data to the specified range
  • fann_scale_train_data() - Scales the inputs and outputs in the training data to the specified range


Scale data in output vector before feed it to ann based on previously calculated parameters

  • « fann_scale_output_train_data
  • fann_scale_train_data »
  • PHP Manual
  • Fann Функции
  • Scale data in output vector before feed it to ann based on previously calculated parameters

fann_scale_output

(PECL fann >= 1.0.0)

fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters

Описание

bool fann_scale_output ( resource $ann , array $output_vector )

Scale data in output vector before feed it to ann based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

output_vector

Output vector that will be scaled

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_descale_output() - Scale data in output vector after get it from ann based on previously calculated parameters
  • fann_scale_input() - Scale data in input vector before feed it to ann based on previously calculated parameters


Scales the inputs and outputs in the training data to the specified range

  • « fann_scale_output
  • fann_scale_train »
  • PHP Manual
  • Fann Функции
  • Scales the inputs and outputs in the training data to the specified range

fann_scale_train_data

(PECL fann >= 1.0.0)

fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range

Описание

bool fann_scale_train_data ( resource $train_data , float $new_min , float $new_max )

Scales the inputs and outputs in the training data to the specified range.

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_min

New minimum after scaling inputs and outputs in training data.

new_max

New maximum after scaling inputs and outputs in training data.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_scale_output_train_data() - Scales the outputs in the training data to the specified range
  • fann_scale_input_train_data() - Scales the inputs in the training data to the specified range


Scale input and output data based on previously calculated parameters

  • « fann_scale_train_data
  • fann_set_activation_function_hidden »
  • PHP Manual
  • Fann Функции
  • Scale input and output data based on previously calculated parameters

fann_scale_train

(PECL fann >= 1.0.0)

fann_scale_train — Scale input and output data based on previously calculated parameters

Описание

bool fann_scale_train ( resource $ann , resource $train_data )

Scale input and output data based on previously calculated parameters.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_descale_train() - Descale input and output data based on previously calculated parameters
  • fann_set_scaling_params() - Calculate input and output scaling parameters for future use based on training data


Sets the activation function for all of the hidden layers

  • « fann_scale_train
  • fann_set_activation_function_layer »
  • PHP Manual
  • Fann Функции
  • Sets the activation function for all of the hidden layers

fann_set_activation_function_hidden

(PECL fann >= 1.0.0)

fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers

Описание

bool fann_set_activation_function_hidden ( resource $ann , int $activation_function )

Sets the activation function for all of the hidden layers.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

The activation functions constant.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer.
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for all the neurons in the supplied layer.

  • « fann_set_activation_function_hidden
  • fann_set_activation_function_output »
  • PHP Manual
  • Fann Функции
  • Sets the activation function for all the neurons in the supplied layer.

fann_set_activation_function_layer

(PECL fann >= 1.0.0)

fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer.

Описание

bool fann_set_activation_function_layer ( resource $ann , int $activation_function , int $layer )

Set the activation function for all the neurons in the layer number layer, counting the input layer as layer 0.

It is not possible to set activation functions for the neurons in the input layer.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

The activation functions constant.

layer

Layer number.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for the output layer

  • « fann_set_activation_function_layer
  • fann_set_activation_function »
  • PHP Manual
  • Fann Функции
  • Sets the activation function for the output layer

fann_set_activation_function_output

(PECL fann >= 1.0.0)

fann_set_activation_function_output — Sets the activation function for the output layer

Описание

bool fann_set_activation_function_output ( resource $ann , int $activation_function )

Sets the activation function for the output layer.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

The activation functions constant.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer
  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer.
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number


Sets the activation function for supplied neuron and layer

  • « fann_set_activation_function_output
  • fann_set_activation_steepness_hidden »
  • PHP Manual
  • Fann Функции
  • Sets the activation function for supplied neuron and layer

fann_set_activation_function

(PECL fann >= 1.0.0)

fann_set_activation_function — Sets the activation function for supplied neuron and layer

Описание

bool fann_set_activation_function ( resource $ann , int $activation_function , int $layer , int $neuron )

Set the activation function for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to set activation functions for the neurons in the input layer.

When choosing an activation function it is important to note that the activation functions have different range. FANN_SIGMOID is e.g. in the 0 - 1 range while FANN_SIGMOID_SYMMETRIC is in the -1 - 1 range and FANN_LINEAR is unbound.

The supplied activation_function value must be one of the activation functions constants.

The return value is one of the activation functions constants.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_function

The activation functions constant.

layer

Layer number.

neuron

Neuron number.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_function_layer() - Sets the activation function for all the neurons in the supplied layer.
  • fann_set_activation_function_hidden() - Sets the activation function for all of the hidden layers
  • fann_set_activation_function_output() - Sets the activation function for the output layer
  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_get_activation_function() - Returns the activation function


Sets the steepness of the activation steepness for all neurons in the all hidden layers

  • « fann_set_activation_function
  • fann_set_activation_steepness_layer »
  • PHP Manual
  • Fann Функции
  • Sets the steepness of the activation steepness for all neurons in the all hidden layers

fann_set_activation_steepness_hidden

(PECL fann >= 1.0.0)

fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers

Описание

bool fann_set_activation_steepness_hidden ( resource $ann , float $activation_steepness )

Sets the steepness of the activation steepness for all neurons in the all hidden layers.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

The activation steepness.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the activation steepness for all of the neurons in the supplied layer number

  • « fann_set_activation_steepness_hidden
  • fann_set_activation_steepness_output »
  • PHP Manual
  • Fann Функции
  • Sets the activation steepness for all of the neurons in the supplied layer number

fann_set_activation_steepness_layer

(PECL fann >= 1.0.0)

fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number

Описание

bool fann_set_activation_steepness_layer ( resource $ann , float $activation_steepness , int $layer )

Set the activation steepness for all of the neurons in layer number layer, counting the input layer as layer 0.

It is not possible to set activation steepness for the neurons in the input layer.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

The activation steepness.

layer

Layer number.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the steepness of the activation steepness in the output layer

  • « fann_set_activation_steepness_layer
  • fann_set_activation_steepness »
  • PHP Manual
  • Fann Функции
  • Sets the steepness of the activation steepness in the output layer

fann_set_activation_steepness_output

(PECL fann >= 1.0.0)

fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer

Описание

bool fann_set_activation_steepness_output ( resource $ann , float $activation_steepness )

Sets the steepness of the activation steepness in the output layer.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

The activation steepness.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_steepness() - Sets the activation steepness for supplied neuron and layer number
  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Sets the activation steepness for supplied neuron and layer number

  • « fann_set_activation_steepness_output
  • fann_set_bit_fail_limit »
  • PHP Manual
  • Fann Функции
  • Sets the activation steepness for supplied neuron and layer number

fann_set_activation_steepness

(PECL fann >= 1.0.0)

fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number

Описание

bool fann_set_activation_steepness ( resource $ann , float $activation_steepness , int $layer , int $neuron )

Set the activation steepness for neuron number neuron in layer number layer, counting the input layer as layer 0.

It is not possible to set activation steepness for the neurons in the input layer.

The steepness of an activation function says something about how fast the activation function goes from the minimum to the maximum. A high value for the activation function will also give a more agressive training.

When training neural networks where the output values should be at the extremes (usually 0 and 1, depending on the activation function), a steep activation function can be used (e.g. 1.0).

The default activation steepness is 0.5.

Список параметров

ann

Ресурс (resource) нейронной сети.

activation_steepness

The activation steepness.

layer

Layer number.

neuron

Neuron number.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_activation_steepness_layer() - Sets the activation steepness for all of the neurons in the supplied layer number
  • fann_set_activation_steepness_hidden() - Sets the steepness of the activation steepness for all neurons in the all hidden layers
  • fann_set_activation_steepness_output() - Sets the steepness of the activation steepness in the output layer
  • fann_get_activation_steepness() - Returns the activation steepness for supplied neuron and layer number
  • fann_set_activation_function() - Sets the activation function for supplied neuron and layer


Set the bit fail limit used during training

  • « fann_set_activation_steepness
  • fann_set_callback »
  • PHP Manual
  • Fann Функции
  • Set the bit fail limit used during training

fann_set_bit_fail_limit

(PECL fann >= 1.0.0)

fann_set_bit_fail_limit — Set the bit fail limit used during training

Описание

bool fann_set_bit_fail_limit ( resource $ann , float $bit_fail_limit )

Set the bit fail limit used during training.

Список параметров

ann

Ресурс (resource) нейронной сети.

bit_fail_limit

The bit fail limit.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_bit_fail_limit() - Returns the bit fail limit used during training


Sets the callback function for use during training

  • « fann_set_bit_fail_limit
  • fann_set_cascade_activation_functions »
  • PHP Manual
  • Fann Функции
  • Sets the callback function for use during training

fann_set_callback

(PECL fann >= 1.0.0)

fann_set_callback — Sets the callback function for use during training

Описание

bool fann_set_callback ( resource $ann , collable $callback )

Sets the callback function for use during training. It means that it is called from fann_train_on_data() or fann_train_on_file().

Список параметров

ann

Ресурс (resource) нейронной сети.

callback

The supplied callback function takes following parameters:

  • ann - The neural network resource
  • train - The train data resource or NULL if called from fann_train_on_file()
  • max_epochs - The maximum number of epochs the training should continue
  • epochs_between_reports - The number of epochs between calling this function
  • desired_error - The desired fann_get_MSE() or fann_get_bit_fail(), depending on the stop function chosen by fann_set_train_stop_function()
  • epochs - The current epoch

The callback should return TRUE. If it returns FALSE, the training will terminate.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_on_file() - Trains on an entire dataset, which is read from file, for a period of time


Sets the array of cascade candidate activation functions

  • « fann_set_callback
  • fann_set_cascade_activation_steepnesses »
  • PHP Manual
  • Fann Функции
  • Sets the array of cascade candidate activation functions

fann_set_cascade_activation_functions

(PECL fann >= 1.0.0)

fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions

Описание

bool fann_set_cascade_activation_functions ( resource $ann , array $cascade_activation_functions )

Sets the array of cascade candidate activation functions.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_activation_functions

The array of cascade candidate activation functions.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_activation_functions_count() - Returns the number of cascade activation functions
  • fann_set_cascade_activation_functions()


Sets the array of cascade candidate activation steepnesses

  • « fann_set_cascade_activation_functions
  • fann_set_cascade_candidate_change_fraction »
  • PHP Manual
  • Fann Функции
  • Sets the array of cascade candidate activation steepnesses

fann_set_cascade_activation_steepnesses

(PECL fann >= 1.0.0)

fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses

Описание

bool fann_set_cascade_activation_steepnesses ( resource $ann , array $cascade_activation_steepnesses_count )

Sets the array of cascade candidate activation steepnesses.

See fann_get_cascade_num_candidates() for a description of which candidate neurons will be generated by this array.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_activation_steepnesses_count

The array of cascade candidate activation steepnesses.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_activation_steepnesses() - Returns the cascade activation steepnesses
  • fann_get_cascade_activation_steepnesses_count() - The number of activation steepnesses


Sets the cascade candidate change fraction

  • « fann_set_cascade_activation_steepnesses
  • fann_set_cascade_candidate_limit »
  • PHP Manual
  • Fann Функции
  • Sets the cascade candidate change fraction

fann_set_cascade_candidate_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction

Описание

bool fann_set_cascade_candidate_change_fraction ( resource $ann , float $cascade_candidate_change_fraction )

Sets the cascade candidate change fraction.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_candidate_change_fraction

The cascade candidate change fraction.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_candidate_change_fraction() - Returns the cascade candidate change fraction


Sets the candidate limit

  • « fann_set_cascade_candidate_change_fraction
  • fann_set_cascade_candidate_stagnation_epochs »
  • PHP Manual
  • Fann Функции
  • Sets the candidate limit

fann_set_cascade_candidate_limit

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_limit — Sets the candidate limit

Описание

bool fann_set_cascade_candidate_limit ( resource $ann , float $cascade_candidate_limit )

Sets the candidate limit.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_candidate_limit

The candidate limit.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_candidate_limit() - Return the candidate limit


Sets the number of cascade candidate stagnation epochs

  • « fann_set_cascade_candidate_limit
  • fann_set_cascade_max_cand_epochs »
  • PHP Manual
  • Fann Функции
  • Sets the number of cascade candidate stagnation epochs

fann_set_cascade_candidate_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs

Описание

bool fann_set_cascade_candidate_stagnation_epochs ( resource $ann , int $cascade_candidate_stagnation_epochs )

Sets the number of cascade candidate stagnation epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_candidate_stagnation_epochs

The number of cascade candidate stagnation epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_candidate_stagnation_epochs() - Returns the number of cascade candidate stagnation epochs


Sets the max candidate epochs

  • « fann_set_cascade_candidate_stagnation_epochs
  • fann_set_cascade_max_out_epochs »
  • PHP Manual
  • Fann Функции
  • Sets the max candidate epochs

fann_set_cascade_max_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_cand_epochs — Sets the max candidate epochs

Описание

bool fann_set_cascade_max_cand_epochs ( resource $ann , int $cascade_max_cand_epochs )

Sets the max candidate epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_max_cand_epochs

The max candidate epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_max_cand_epochs() - Returns the maximum candidate epochs


Sets the maximum out epochs

  • « fann_set_cascade_max_cand_epochs
  • fann_set_cascade_min_cand_epochs »
  • PHP Manual
  • Fann Функции
  • Sets the maximum out epochs

fann_set_cascade_max_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_max_out_epochs — Sets the maximum out epochs

Описание

bool fann_set_cascade_max_out_epochs ( resource $ann , int $cascade_max_out_epochs )

Sets the maximum out epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_max_out_epochs

The maximum out epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_max_out_epochs() - Returns the maximum out epochs


Sets the min candidate epochs

  • « fann_set_cascade_max_out_epochs
  • fann_set_cascade_min_out_epochs »
  • PHP Manual
  • Fann Функции
  • Sets the min candidate epochs

fann_set_cascade_min_cand_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_cand_epochs — Sets the min candidate epochs

Описание

bool fann_set_cascade_min_cand_epochs ( resource $ann , int $cascade_min_cand_epochs )

Sets the min candidate epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_min_cand_epochs

The minimum candidate epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_min_cand_epochs() - Returns the minimum candidate epochs


Sets the minimum out epochs

  • « fann_set_cascade_min_cand_epochs
  • fann_set_cascade_num_candidate_groups »
  • PHP Manual
  • Fann Функции
  • Sets the minimum out epochs

fann_set_cascade_min_out_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_min_out_epochs — Sets the minimum out epochs

Описание

bool fann_set_cascade_min_out_epochs ( resource $ann , int $cascade_min_out_epochs )

Sets the minimum out epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_min_out_epochs

The minimum out epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_min_out_epochs() - Returns the minimum out epochs


Sets the number of candidate groups

  • « fann_set_cascade_min_out_epochs
  • fann_set_cascade_output_change_fraction »
  • PHP Manual
  • Fann Функции
  • Sets the number of candidate groups

fann_set_cascade_num_candidate_groups

(PECL fann >= 1.0.0)

fann_set_cascade_num_candidate_groups — Sets the number of candidate groups

Описание

bool fann_set_cascade_num_candidate_groups ( resource $ann , int $cascade_num_candidate_groups )

Sets the number of candidate groups.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_num_candidate_groups

The number of candidate groups.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_num_candidate_groups() - Returns the number of candidate groups


Sets the cascade output change fraction

  • « fann_set_cascade_num_candidate_groups
  • fann_set_cascade_output_stagnation_epochs »
  • PHP Manual
  • Fann Функции
  • Sets the cascade output change fraction

fann_set_cascade_output_change_fraction

(PECL fann >= 1.0.0)

fann_set_cascade_output_change_fraction — Sets the cascade output change fraction

Описание

bool fann_set_cascade_output_change_fraction ( resource $ann , float $cascade_output_change_fraction )

Sets the cascade output change fraction.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_output_change_fraction

The cascade output change fraction.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_output_change_fraction() - Returns the cascade output change fraction


Sets the number of cascade output stagnation epochs

  • « fann_set_cascade_output_change_fraction
  • fann_set_cascade_weight_multiplier »
  • PHP Manual
  • Fann Функции
  • Sets the number of cascade output stagnation epochs

fann_set_cascade_output_stagnation_epochs

(PECL fann >= 1.0.0)

fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs

Описание

bool fann_set_cascade_output_stagnation_epochs ( resource $ann , int $cascade_output_stagnation_epochs )

Sets the number of cascade output stagnation epochs.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_output_stagnation_epochs

The number of cascade output stagnation epochs.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_output_stagnation_epochs() - Returns the number of cascade output stagnation epochs


Sets the weight multiplier

  • « fann_set_cascade_output_stagnation_epochs
  • fann_set_error_log »
  • PHP Manual
  • Fann Функции
  • Sets the weight multiplier

fann_set_cascade_weight_multiplier

(PECL fann >= 1.0.0)

fann_set_cascade_weight_multiplier — Sets the weight multiplier

Описание

bool fann_set_cascade_weight_multiplier ( resource $ann , float $cascade_weight_multiplier )

Sets the weight multiplier.

Список параметров

ann

Ресурс (resource) нейронной сети.

cascade_weight_multiplier

The weight multiplier.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_cascade_weight_multiplier() - Returns the weight multiplier


Sets where the errors are logged to

  • « fann_set_cascade_weight_multiplier
  • fann_set_input_scaling_params »
  • PHP Manual
  • Fann Функции
  • Sets where the errors are logged to

fann_set_error_log

(PECL fann >= 1.0.0)

fann_set_error_log — Sets where the errors are logged to

Описание

void fann_set_error_log ( resource $errdat , string $log_file )

Sets where the errors are logged to.

Список параметров

errdat

Или ресурс (resource) нейронной сети, или ресурс (resource) обучающих данных нейронной сети.

log_file

The log file path.

Возвращаемые значения

Не возвращает никакого значения.


Calculate input scaling parameters for future use based on training data

  • « fann_set_error_log
  • fann_set_learning_momentum »
  • PHP Manual
  • Fann Функции
  • Calculate input scaling parameters for future use based on training data

fann_set_input_scaling_params

(PECL fann >= 1.0.0)

fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data

Описание

bool fann_set_input_scaling_params ( resource $ann , resource $train_data , float $new_input_min , float $new_input_max )

Calculate input scaling parameters for future use based on training data.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_input_min

The desired lower bound in input data after scaling (not strictly followed)

new_input_max

The desired upper bound in input data after scaling (not strictly followed)

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_output_scaling_params() - Calculate output scaling parameters for future use based on training data


Sets the learning momentum

  • « fann_set_input_scaling_params
  • fann_set_learning_rate »
  • PHP Manual
  • Fann Функции
  • Sets the learning momentum

fann_set_learning_momentum

(PECL fann >= 1.0.0)

fann_set_learning_momentum — Sets the learning momentum

Описание

bool fann_set_learning_momentum ( resource $ann , float $learning_momentum )

Sets the learning momentum.

More info available in fann_get_learning_momentum().

Список параметров

ann

Ресурс (resource) нейронной сети.

learning_momentum

The learning momentum.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_learning_momentum() - Returns the learning momentum
  • fann_set_training_algorithm() - Sets the training algorithm


Sets the learning rate

  • « fann_set_learning_momentum
  • fann_set_output_scaling_params »
  • PHP Manual
  • Fann Функции
  • Sets the learning rate

fann_set_learning_rate

(PECL fann >= 1.0.0)

fann_set_learning_rate — Sets the learning rate

Описание

bool fann_set_learning_rate ( resource $ann , float $learning_rate )

Sets the learning rate.

More info available in fann_get_learning_rate().

Список параметров

ann

Ресурс (resource) нейронной сети.

learning_rate

The learning rate.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_learning_rate() - Returns the learning rate
  • fann_set_training_algorithm() - Sets the training algorithm


Calculate output scaling parameters for future use based on training data

  • « fann_set_learning_rate
  • fann_set_quickprop_decay »
  • PHP Manual
  • Fann Функции
  • Calculate output scaling parameters for future use based on training data

fann_set_output_scaling_params

(PECL fann >= 1.0.0)

fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data

Описание

bool fann_set_output_scaling_params ( resource $ann , resource $train_data , float $new_output_min , float $new_output_max )

Calculate output scaling parameters for future use based on training data.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_output_min

The desired lower bound in output data after scaling (not strictly followed)

new_output_max

The desired upper bound in output data after scaling (not strictly followed)

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_input_scaling_params() - Calculate input scaling parameters for future use based on training data


Sets the quickprop decay factor

  • « fann_set_output_scaling_params
  • fann_set_quickprop_mu »
  • PHP Manual
  • Fann Функции
  • Sets the quickprop decay factor

fann_set_quickprop_decay

(PECL fann >= 1.0.0)

fann_set_quickprop_decay — Sets the quickprop decay factor

Описание

bool fann_set_quickprop_decay ( resource $ann , float $quickprop_decay )

Sets the quickprop decay factor.

Список параметров

ann

Ресурс (resource) нейронной сети.

quickprop_decay

The quickprop decay factor.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_quickprop_decay() - Returns the decay which is a factor that weights should decrease in each iteration during quickprop training


Sets the quickprop mu factor

  • « fann_set_quickprop_decay
  • fann_set_rprop_decrease_factor »
  • PHP Manual
  • Fann Функции
  • Sets the quickprop mu factor

fann_set_quickprop_mu

(PECL fann >= 1.0.0)

fann_set_quickprop_mu — Sets the quickprop mu factor

Описание

bool fann_set_quickprop_mu ( resource $ann , float $quickprop_mu )

Sets the quickprop mu factor.

Список параметров

ann

Ресурс (resource) нейронной сети.

quickprop_mu

The mu factor.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_quickprop_mu() - Returns the mu factor


Sets the decrease factor used during RPROP training

  • « fann_set_quickprop_mu
  • fann_set_rprop_delta_max »
  • PHP Manual
  • Fann Функции
  • Sets the decrease factor used during RPROP training

fann_set_rprop_decrease_factor

(PECL fann >= 1.0.0)

fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training

Описание

bool fann_set_rprop_decrease_factor ( resource $ann , float $rprop_decrease_factor )

Sets the decrease factor used during RPROP training.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_decrease_factor

The decrease factor.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_rprop_decrease_factor() - Returns the increase factor used during RPROP training


Sets the maximum step-size

  • « fann_set_rprop_decrease_factor
  • fann_set_rprop_delta_min »
  • PHP Manual
  • Fann Функции
  • Sets the maximum step-size

fann_set_rprop_delta_max

(PECL fann >= 1.0.0)

fann_set_rprop_delta_max — Sets the maximum step-size

Описание

bool fann_set_rprop_delta_max ( resource $ann , float $rprop_delta_max )

The maximum step-size is a positive number determining how large the maximum step-size may be.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_delta_max

The maximum step-size.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_rprop_delta_max() - Returns the maximum step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size


Sets the minimum step-size

  • « fann_set_rprop_delta_max
  • fann_set_rprop_delta_zero »
  • PHP Manual
  • Fann Функции
  • Sets the minimum step-size

fann_set_rprop_delta_min

(PECL fann >= 1.0.0)

fann_set_rprop_delta_min — Sets the minimum step-size

Описание

bool fann_set_rprop_delta_min ( resource $ann , float $rprop_delta_min )

The minimum step-size is a small positive number determining how small the minimum step-size may be.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_delta_min

The minimum step-size.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_rprop_delta_min() - Returns the minimum step-size


Sets the initial step-size

  • « fann_set_rprop_delta_min
  • fann_set_rprop_increase_factor »
  • PHP Manual
  • Fann Функции
  • Sets the initial step-size

fann_set_rprop_delta_zero

(PECL fann >= 1.0.0)

fann_set_rprop_delta_zero — Sets the initial step-size

Описание

bool fann_set_rprop_delta_zero ( resource $ann , float $rprop_delta_zero )

The initial step-size is a positive number determining the initial step size.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_delta_zero

The initial step-size.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_rprop_delta_zero() - Returns the initial step-size
  • fann_get_rprop_delta_min() - Returns the minimum step-size
  • fann_get_rprop_delta_max() - Returns the maximum step-size


Sets the increase factor used during RPROP training

  • « fann_set_rprop_delta_zero
  • fann_set_sarprop_step_error_shift »
  • PHP Manual
  • Fann Функции
  • Sets the increase factor used during RPROP training

fann_set_rprop_increase_factor

(PECL fann >= 1.0.0)

fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training

Описание

bool fann_set_rprop_increase_factor ( resource $ann , float $rprop_increase_factor )

Sets the increase factor used during RPROP training.

Список параметров

ann

Ресурс (resource) нейронной сети.

rprop_increase_factor

The increase factor.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_rprop_increase_factor() - Returns the increase factor used during RPROP training


Sets the sarprop step error shift

  • « fann_set_rprop_increase_factor
  • fann_set_sarprop_step_error_threshold_factor »
  • PHP Manual
  • Fann Функции
  • Sets the sarprop step error shift

fann_set_sarprop_step_error_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_shift — Sets the sarprop step error shift

Описание

bool fann_set_sarprop_step_error_shift ( resource $ann , float $sarprop_step_error_shift )

Sets the sarprop step error shift.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_step_error_shift

The sarprop step error shift.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_sarprop_step_error_shift() - Returns the sarprop step error shift


Sets the sarprop step error threshold factor

  • « fann_set_sarprop_step_error_shift
  • fann_set_sarprop_temperature »
  • PHP Manual
  • Fann Функции
  • Sets the sarprop step error threshold factor

fann_set_sarprop_step_error_threshold_factor

(PECL fann >= 1.0.0)

fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor

Описание

bool fann_set_sarprop_step_error_threshold_factor ( resource $ann , float $sarprop_step_error_threshold_factor )

Sets the sarprop step error threshold factor.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_step_error_threshold_factor

The sarprop step error threshold factor.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_sarprop_step_error_threshold_factor() - Returns the sarprop step error threshold factor


Sets the sarprop temperature

  • « fann_set_sarprop_step_error_threshold_factor
  • fann_set_sarprop_weight_decay_shift »
  • PHP Manual
  • Fann Функции
  • Sets the sarprop temperature

fann_set_sarprop_temperature

(PECL fann >= 1.0.0)

fann_set_sarprop_temperature — Sets the sarprop temperature

Описание

bool fann_set_sarprop_temperature ( resource $ann , float $sarprop_temperature )

Sets the sarprop temperature.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_temperature

The sarprop temperature.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_sarprop_temperature() - Returns the sarprop temperature


Sets the sarprop weight decay shift

  • « fann_set_sarprop_temperature
  • fann_set_scaling_params »
  • PHP Manual
  • Fann Функции
  • Sets the sarprop weight decay shift

fann_set_sarprop_weight_decay_shift

(PECL fann >= 1.0.0)

fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift

Описание

bool fann_set_sarprop_weight_decay_shift ( resource $ann , float $sarprop_weight_decay_shift )

Sets the sarprop weight decay shift.

Список параметров

ann

Ресурс (resource) нейронной сети.

sarprop_weight_decay_shift

The sarprop weight decay shift.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_sarprop_weight_decay_shift() - Returns the sarprop weight decay shift


Calculate input and output scaling parameters for future use based on training data

  • « fann_set_sarprop_weight_decay_shift
  • fann_set_train_error_function »
  • PHP Manual
  • Fann Функции
  • Calculate input and output scaling parameters for future use based on training data

fann_set_scaling_params

(PECL fann >= 1.0.0)

fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data

Описание

bool 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 )

Calculate input and output scaling parameters for future use based on training data.

Список параметров

ann

Ресурс (resource) нейронной сети.

train_data

Ресурс (resource) обучающих данных нейронной сети.

new_input_min

The desired lower bound in input data after scaling (not strictly followed)

new_input_max

The desired upper bound in input data after scaling (not strictly followed)

new_output_min

The desired lower bound in output data after scaling (not strictly followed)

new_output_max

The desired upper bound in output data after scaling (not strictly followed)

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_set_input_scaling_params() - Calculate input scaling parameters for future use based on training data
  • fann_set_output_scaling_params() - Calculate output scaling parameters for future use based on training data


Sets the error function used during training

  • « fann_set_scaling_params
  • fann_set_train_stop_function »
  • PHP Manual
  • Fann Функции
  • Sets the error function used during training

fann_set_train_error_function

(PECL fann >= 1.0.0)

fann_set_train_error_function — Sets the error function used during training

Описание

bool fann_set_train_error_function ( resource $ann , int $error_function )

Sets the error function used during training.

The error functions are described further in error functions constants.

Список параметров

ann

Ресурс (resource) нейронной сети.

error_function

The error function constant

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_train_error_function() - Returns the error function used during training


Sets the stop function used during training

  • « fann_set_train_error_function
  • fann_set_training_algorithm »
  • PHP Manual
  • Fann Функции
  • Sets the stop function used during training

fann_set_train_stop_function

(PECL fann >= 1.0.0)

fann_set_train_stop_function — Sets the stop function used during training

Описание

bool fann_set_train_stop_function ( resource $ann , int $stop_function )

Sets the stop function used during training.

The stop functions are described further in stop functions constants.

Список параметров

ann

Ресурс (resource) нейронной сети.

stop_function

The stop function constant.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_train_stop_function() - Returns the stop function used during training


Sets the training algorithm

  • « fann_set_train_stop_function
  • fann_set_weight_array »
  • PHP Manual
  • Fann Функции
  • Sets the training algorithm

fann_set_training_algorithm

(PECL fann >= 1.0.0)

fann_set_training_algorithm — Sets the training algorithm

Описание

bool fann_set_training_algorithm ( resource $ann , int $training_algorithm )

Sets the training algorithm.

More info available in fann_get_training_algorithm().

Список параметров

ann

Ресурс (resource) нейронной сети.

training_algorithm

Training algorithm constant

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_get_training_algorithm() - Returns the training algorithm


Set connections in the network

  • « fann_set_training_algorithm
  • fann_set_weight »
  • PHP Manual
  • Fann Функции
  • Set connections in the network

fann_set_weight_array

(PECL fann >= 1.0.0)

fann_set_weight_array — Set connections in the network

Описание

bool fann_set_weight_array ( resource $ann , array $connections )

Set connections in the network.

Only the weights can be changed, connections and weights are ignored if they do not already exist in the network.

Список параметров

ann

Ресурс (resource) нейронной сети.

connections

An array of FANNConnection objects

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Set a connection in the network

  • « fann_set_weight_array
  • fann_shuffle_train_data »
  • PHP Manual
  • Fann Функции
  • Set a connection in the network

fann_set_weight

(PECL fann >= 1.0.0)

fann_set_weight — Set a connection in the network

Описание

bool fann_set_weight ( resource $ann , int $from_neuron , int $to_neuron , float $weight )

Set a connections in the network.

Список параметров

ann

Ресурс (resource) нейронной сети.

from_neuron

The neuron where the connection starts

to_neuron

The neuron where the connection ends

weight

Connection weight

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Shuffles training data, randomizing the order

  • « fann_set_weight
  • fann_subset_train_data »
  • PHP Manual
  • Fann Функции
  • Shuffles training data, randomizing the order

fann_shuffle_train_data

(PECL fann >= 1.0.0)

fann_shuffle_train_data — Shuffles training data, randomizing the order

Описание

bool fann_shuffle_train_data ( resource $train_data )

Shuffles training data, randomizing the order. This is recommended for incremental training, while it have no influence during batch training.

Список параметров

train_data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


Returns an copy of a subset of the train data

  • « fann_shuffle_train_data
  • fann_test_data »
  • PHP Manual
  • Fann Функции
  • Returns an copy of a subset of the train data

fann_subset_train_data

(PECL fann >= 1.0.0)

fann_subset_train_data — Returns an copy of a subset of the train data

Описание

resource fann_subset_train_data ( resource $data , int $pos , int $length )

Returns an copy of a subset of the train data resource, starting at position pos and length elements forward.

The fann_subset_train_data(train_data, 0, fann_length_train_data(train_data)) do the same as fann_duplicate_train_data()

Список параметров

data

Ресурс (resource) обучающих данных нейронной сети.

pos

Starting position.

length

The number of copied elements.

Возвращаемые значения

Возвращает ресурс (resource) обучающих данных, или FALSE в случае ошибки.

Смотрите также

  • fann_duplicate_train_data() - Returns an exact copy of a fann train data


Test a set of training data and calculates the MSE for the training data

  • « fann_subset_train_data
  • fann_test »
  • PHP Manual
  • Fann Функции
  • Test a set of training data and calculates the MSE for the training data

fann_test_data

(PECL fann >= 1.0.0)

fann_test_data — Test a set of training data and calculates the MSE for the training data

Описание

float fann_test_data ( resource $ann , resource $data )

Test a set of training data and calculates the MSE for the training data.

This function updates the MSE and the bit fail values.

Список параметров

ann

Ресурс (resource) нейронной сети.

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

The updated MSE, or FALSE on error.

Смотрите также

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_training_algorithm() - Sets the training algorithm


Test with a set of inputs, and a set of desired outputs

  • « fann_test_data
  • fann_train_epoch »
  • PHP Manual
  • Fann Функции
  • Test with a set of inputs, and a set of desired outputs

fann_test

(PECL fann >= 1.0.0)

fann_test — Test with a set of inputs, and a set of desired outputs

Описание

bool fann_test ( resource $ann , array $input , array $desired_output )

Test with a set of inputs, and a set of desired outputs. This operation updates the mean square error, but does not change the network in any way.

Список параметров

ann

Ресурс (resource) нейронной сети.

input

An array of inputs. This array must be exactly fann_get_num_input() long.

desired_output

An array of desired outputs. This array must be exactly fann_get_num_output() long.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_test_data() - Test a set of training data and calculates the MSE for the training data
  • fann_train() - Train one iteration with a set of inputs, and a set of desired outputs
  • fann_get_num_input() - Get the number of input neurons
  • fann_get_num_output() - Get the number of output neurons


Train one epoch with a set of training data

  • « fann_test
  • fann_train_on_data »
  • PHP Manual
  • Fann Функции
  • Train one epoch with a set of training data

fann_train_epoch

(PECL fann >= 1.0.0)

fann_train_epoch — Train one epoch with a set of training data

Описание

float fann_train_epoch ( resource $ann , resource $data )

Train one epoch with the training data stored in data. One epoch is where all of the training data is considered exactly once.

This function returns the MSE error as it is calculated either before or during the actual training. This is not the actual MSE after the training epoch, but since calculating this will require to go through the entire training set once more. It is more than adequate to use this value during training.

The training algorithm used by this function is chosen by fann_set_training_algorithm() function.

Список параметров

ann

Ресурс (resource) нейронной сети.

data

Ресурс (resource) обучающих данных нейронной сети.

Возвращаемые значения

The MSE, or FALSE on error.

Смотрите также

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_test_data() - Test a set of training data and calculates the MSE for the training data
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_training_algorithm() - Sets the training algorithm


Trains on an entire dataset for a period of time

  • « fann_train_epoch
  • fann_train_on_file »
  • PHP Manual
  • Fann Функции
  • Trains on an entire dataset for a period of time

fann_train_on_data

(PECL fann >= 1.0.0)

fann_train_on_data — Trains on an entire dataset for a period of time

Описание

bool fann_train_on_data ( resource $ann , resource $data , int $max_epochs , int $epochs_between_reports , float $desired_error )

Trains on an entire dataset for a period of time.

This training uses the training algorithm chosen by fann_set_training_algorithm() and the parameters set for these training algorithms.

Список параметров

ann

Ресурс (resource) нейронной сети.

data

Ресурс (resource) обучающих данных нейронной сети.

max_epochs

The maximum number of epochs the training should continue

epochs_between_reports

The number of epochs between calling a callback function. A value of zero means that user function is not called.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on the stop function chosen by fann_set_train_stop_function()

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_file() - Trains on an entire dataset, which is read from file, for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_train_stop_function() - Sets the stop function used during training
  • fann_set_training_algorithm() - Sets the training algorithm
  • fann_set_callback() - Sets the callback function for use during training


Trains on an entire dataset, which is read from file, for a period of time

  • « fann_train_on_data
  • fann_train »
  • PHP Manual
  • Fann Функции
  • Trains on an entire dataset, which is read from file, for a period of time

fann_train_on_file

(PECL fann >= 1.0.0)

fann_train_on_file — Trains on an entire dataset, which is read from file, for a period of time

Описание

bool fann_train_on_file ( resource $ann , string $filename , int $max_epochs , int $epochs_between_reports , float $desired_error )

Trains on an entire dataset, which is read from file, for a period of time.

This training uses the training algorithm chosen by fann_set_training_algorithm() and the parameters set for these training algorithms.

Список параметров

ann

Ресурс (resource) нейронной сети.

filename

The file containing train data

max_epochs

The maximum number of epochs the training should continue

epochs_between_reports

The number of epochs between calling a user function. A value of zero means that user function is not called.

desired_error

The desired fann_get_MSE() or fann_get_bit_fail(), depending on the stop function chosen by fann_set_train_stop_function()

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_bit_fail() - The number of fail bits
  • fann_get_MSE() - Reads the mean square error from the network
  • fann_set_train_stop_function() - Sets the stop function used during training
  • fann_set_training_algorithm() - Sets the training algorithm
  • fann_set_callback() - Sets the callback function for use during training


Train one iteration with a set of inputs, and a set of desired outputs

  • « fann_train_on_file
  • FANNConnection »
  • PHP Manual
  • Fann Функции
  • Train one iteration with a set of inputs, and a set of desired outputs

fann_train

(PECL fann >= 1.0.0)

fann_train — Train one iteration with a set of inputs, and a set of desired outputs

Описание

bool fann_train ( resource $ann , array $input , array $desired_output )

Train one iteration with a set of inputs, and a set of desired outputs. This training is always incremental training, since only one pattern is presented.

Список параметров

ann

Ресурс (resource) нейронной сети.

input

An array of inputs. This array must be exactly fann_get_num_input() long.

desired_output

An array of desired outputs. This array must be exactly fann_get_num_output() long.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.

Смотрите также

  • fann_train_on_data() - Trains on an entire dataset for a period of time
  • fann_train_epoch() - Train one epoch with a set of training data
  • fann_get_num_input() - Get the number of input neurons
  • fann_get_num_output() - Get the number of output neurons


The FANNConnection class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

FANNConnection is used for the neural network connection. The objects of this class are used in fann_get_connection_array() and fann_set_weight_array().

Обзор классов

FANNConnection {
/* Свойства */
public $from_neuron ;
public $to_neuron ;
public $weight ;
/* Методы */
public __construct ( int $from_neuron , int $to_neuron , float $weight )
public int getFromNeuron ( void )
public int getToNeuron ( void )
public void getWeight ( void )
public bool setWeight ( float $weight )
}

Свойства

from_neuron

The neuron where the connection starts.

to_neuron

The neuron where the connection ends.

weight

The weight of the connection.

Содержание

  • FANNConnection::__construct — The connection constructor
  • FANNConnection::getFromNeuron — Returns the postions of starting neuron.
  • FANNConnection::getToNeuron — Returns the postions of terminating neuron
  • FANNConnection::getWeight — Returns the connection weight
  • FANNConnection::setWeight — Sets the connections weight


The connection constructor

  • « FANNConnection
  • FANNConnection::getFromNeuron »
  • PHP Manual
  • FANNConnection
  • The connection constructor

FANNConnection::__construct

(PECL fann >= 1.0.0)

FANNConnection::__construct — The connection constructor

Описание

public FANNConnection::__construct ( int $from_neuron , int $to_neuron , float $weight )

Create new connection and initialize its params. After creating the connection, only weight can be changed.

Список параметров

from_neuron

The postion number of starting neuron.

to_neuron

The postion number of terminating neuron.

weight

The connection weight value.


Returns the postions of starting neuron.

  • « FANNConnection::__construct
  • FANNConnection::getToNeuron »
  • PHP Manual
  • FANNConnection
  • Returns the postions of starting neuron.

FANNConnection::getFromNeuron

(PECL fann >= 1.0.0)

FANNConnection::getFromNeuron — Returns the postions of starting neuron.

Описание

public int FANNConnection::getFromNeuron ( void )

Returns the postions of starting neuron.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The postions of starting neuron.


Returns the postions of terminating neuron

  • « FANNConnection::getFromNeuron
  • FANNConnection::getWeight »
  • PHP Manual
  • FANNConnection
  • Returns the postions of terminating neuron

FANNConnection::getToNeuron

(PECL fann >= 1.0.0)

FANNConnection::getToNeuron — Returns the postions of terminating neuron

Описание

public int FANNConnection::getToNeuron ( void )

Returns the postions of terminating neuron.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The postions of terminating neuron.


Returns the connection weight

  • « FANNConnection::getToNeuron
  • FANNConnection::setWeight »
  • PHP Manual
  • FANNConnection
  • Returns the connection weight

FANNConnection::getWeight

(PECL fann >= 1.0.0)

FANNConnection::getWeight — Returns the connection weight

Описание

public void FANNConnection::getWeight ( void )

Returns the connection weight.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The connection weight.


Sets the connections weight

  • « FANNConnection::getWeight
  • JSON »
  • PHP Manual
  • FANNConnection
  • Sets the connections weight

FANNConnection::setWeight

(PECL fann >= 1.0.0)

FANNConnection::setWeight — Sets the connections weight

Описание

public bool FANNConnection::setWeight ( float $weight )

Sets the connection weight.

This method is different than fann_set_weight(). It does not update the weight value in the network. The network value is updated only after calling fann_set_weight_array().

Список параметров

weight

The connection weight.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения, или FALSE в противном случае.


JavaScript Object Notation

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • JsonSerializable — Интерфейс JsonSerializable
    • JsonSerializable::jsonSerialize — Задает данные, которые должны быть сериализованы в JSON
  • JSON Функции
    • json_decode — Декодирует JSON строку
    • json_encode — Возвращает JSON-представление данных
    • json_last_error_msg — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
    • json_last_error — Возвращает последнюю ошибку


Введение

Модуль реализует работу с текстовым форматом обмена данными » JavaScript Object Notation (JSON) Обработка в PHP5 осуществляется парсером, построенном на JSON_checker от Дугласа Крокфорда (Douglas Crockford). В PHP 7 используется полностью новый парсер, написанный специально для PHP и под его лицензией.

Замечание:

PHP реализует надмножество JSON, который описан в первоначальном » RFC 7159.


Установка

Начиная с PHP 5.2.0, расширение JSON по умолчанию входит в поставку PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/json


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Следующие константы указывают на тип ошибки, возвращенной функцией json_last_error().

JSON_ERROR_NONE (integer)
Не произошло никаких ошибок. Доступна начиная с PHP 5.3.0.
JSON_ERROR_DEPTH (integer)
Была превышена максимальная глубина стека. Доступна начиная с PHP 5.3.0.
JSON_ERROR_STATE_MISMATCH (integer)
Неверный или поврежденный JSON. Доступна начиная с PHP 5.3.0.
JSON_ERROR_CTRL_CHAR (integer)
Ошибка управляющих символов, вероятно из-за неверного кодирования. Доступна начиная с PHP 5.3.0.
JSON_ERROR_SYNTAX (integer)
Синтаксическая ошибка. Доступна начиная с PHP 5.3.0.
JSON_ERROR_UTF8 (integer)
Поврежденные символы UTF-8, вероятно, из-за неверного кодирования. Эта константа стала доступна начиная с PHP 5.3.3.
JSON_ERROR_RECURSION (integer)
Объект или массив, переданный в функцию json_encode() включает рекурсивные ссылки и не может быть закодирован. Если была передана опция JSON_PARTIAL_OUTPUT_ON_ERROR, то на месте рекурсивных ссылок будет выведен NULL. Доступно с PHP 5.5.0.
JSON_ERROR_INF_OR_NAN (integer)
Значение, переданное в функцию json_encode() включает либо NAN, либо INF. Если была указана константа JSON_PARTIAL_OUTPUT_ON_ERROR, то вместо указанных особых значений будет выведен 0. Доступно с PHP 5.5.0.
JSON_ERROR_UNSUPPORTED_TYPE (integer)
В функцию json_encode() было передано значение неподдерживаемого типа, например, resource. Если была указана константа JSON_PARTIAL_OUTPUT_ON_ERROR, то вместо неподдерживаемого значения будет выводиться NULL. Доступна с PHP 5.5.0.
JSON_ERROR_INVALID_PROPERTY_NAME (integer)
В строке переданной в json_decode() был ключ, начинающийся с символа \u0000. Доступно с PHP 7.0.0.
JSON_ERROR_UTF16 (integer)
Один непарный суррогат UTF-16 в экранированной последовательности Unicode в строке JSON, переданной в json_encode(). Доступно с PHP 7.0.0.

Можно комбинировать следующие константы для передачи в json_decode().

JSON_BIGINT_AS_STRING (integer)
Декодирует длинные целочисленные значения как строку. Доступно с PHP 5.4.0.
JSON_OBJECT_AS_ARRAY (integer)
Преобразует объекты JSON в массив PHP. Эта опция может быть задана автоматически, если вызвать json_decode() указав вторым параметром TRUE. Доступн с PHP 5.4.0.

Следующие константы можно комбинировать для использования в json_encode().

JSON_HEX_TAG (integer)
Все < и > кодируются в \u003C и \u003E. Доступна начиная с PHP 5.3.0.
JSON_HEX_AMP (integer)
Все & кодируются в \u0026. Доступна начиная с PHP 5.3.0.
JSON_HEX_APOS (integer)
Все символы ' кодируются в \u0027. Доступна начиная с PHP 5.3.0.
JSON_HEX_QUOT (integer)
Все символы " кодируются в \u0022. Доступна начиная с PHP 5.3.0.
JSON_FORCE_OBJECT (integer)
Выдавать объект вместо массива при использовании неассоциативного массива. Это полезно, когда принимающая программа или код ожидают объект или же массив пуст. Доступна начиная с PHP 5.3.0.
JSON_NUMERIC_CHECK (integer)
Кодирование строк, содержащих числа, как числа. Доступна начиная с PHP 5.3.3.
JSON_PRETTY_PRINT (integer)
Использовать пробельные символы в возвращаемых данных для их форматирования. Доступна начиная с PHP 5.4.0.
JSON_UNESCAPED_SLASHES (integer)
Не экранировать /. Доступна начиная с PHP 5.4.0.
JSON_UNESCAPED_UNICODE (integer)
Не кодировать многобайтные символы Unicode (по умолчанию они кодируются как \uXXXX). Доступна начиная с PHP 5.4.0.
JSON_PARTIAL_OUTPUT_ON_ERROR (integer)
Позволяет избежать возникновения ошибок при использовании функции json_encode. Осуществляет подстановку значений по умолчанию вместо некодируемых. Доступна начиная с PHP 5.5.0.
JSON_PRESERVE_ZERO_FRACTION (integer)
Гарантирует, что значение типа float будет преобразовано именно в значение типа float в случае, если дробная часть равна 0. Доступна начиная с PHP 5.6.6.
JSON_UNESCAPED_LINE_TERMINATORS (integer)
Символы конца строки не будут экранироваться если задана константа JSON_UNESCAPED_UNICODE. Поведение будет таким же, какое оно было до PHP 7.1 без этой константы. Доступно с PHP 7.1.0.


Интерфейс JsonSerializable

(PHP 5 >= 5.4.0, PHP 7)

Введение

Объекты, реализующие интерфейс JsonSerializable, могут адаптировать свое JSON-представление когда кодируются с помощью json_encode().

Обзор интерфейсов

JsonSerializable {
/* Методы */
abstract public mixed jsonSerialize ( void )
}

Содержание

  • JsonSerializable::jsonSerialize — Задает данные, которые должны быть сериализованы в JSON


Задает данные, которые должны быть сериализованы в JSON

  • « JsonSerializable
  • JSON Функции »
  • PHP Manual
  • JsonSerializable
  • Задает данные, которые должны быть сериализованы в JSON

JsonSerializable::jsonSerialize

(PHP 5 >= 5.4.0, PHP 7)

JsonSerializable::jsonSerialize — Задает данные, которые должны быть сериализованы в JSON

Описание

abstract public mixed JsonSerializable::jsonSerialize ( void )

Сериализует объект в значение, которое в свою очередь может быть сериализовано функцией json_encode().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает данные, которые могут быть сериализованы json_encode(), которые являются значением любого типа, отличным от типа resource.

Примеры

Пример #1 Пример использования JsonSerializable::jsonSerialize(), возвращающий массив (array)

<?php
class ArrayValue implements JsonSerializable {
    public function __construct(array $array) {
        $this->array = $array;
    }

    public function jsonSerialize() {
        return $this->array;
    }
}

$array = [1, 2, 3];
echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

Результат выполнения данного примера:

[
    1,
    2,
    3
]

Пример #2 Пример использования JsonSerializable::jsonSerialize(), возвращающий ассоциативный массив (array)

<?php
class ArrayValue implements JsonSerializable {
    public function __construct(array $array) {
        $this->array = $array;
    }

    public function jsonSerialize() {
        return $this->array;
    }
}

$array = ['foo' => 'bar', 'quux' => 'baz'];
echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

Результат выполнения данного примера:

{
    "foo": "bar",
    "quux": "baz"
}

Пример #3 Пример использования JsonSerializable::jsonSerialize(), возвращающий целое значение (integer)

<?php
class IntegerValue implements JsonSerializable {
    public function __construct($number) {
        $this->number = (integer) $number;
    }

    public function jsonSerialize() {
        return $this->number;
    }
}

echo json_encode(new IntegerValue(1), JSON_PRETTY_PRINT);
?>

Результат выполнения данного примера:

1

Пример #4 Пример использования JsonSerializable::jsonSerialize(), возвращающий строку (string)

<?php
class StringValue implements JsonSerializable {
    public function __construct($string) {
        $this->string = (string) $string;
    }

    public function jsonSerialize() {
        return $this->string;
    }
}

echo json_encode(new StringValue('Hello!'), JSON_PRETTY_PRINT);
?>

Результат выполнения данного примера:

"Hello!"


JSON Функции

Содержание

  • json_decode — Декодирует JSON строку
  • json_encode — Возвращает JSON-представление данных
  • json_last_error_msg — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
  • json_last_error — Возвращает последнюю ошибку


Декодирует JSON строку

  • « JSON Функции
  • json_encode »
  • PHP Manual
  • JSON Функции
  • Декодирует JSON строку

json_decode

(PHP 5 >= 5.2.0, PECL json >= 1.2.0, PHP 7)

json_decode — Декодирует JSON строку

Описание

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

Принимает закодированную в JSON строку и преобразует ее в переменную PHP.

Список параметров

json

json строка (string) для декодирования.

Эта функция работает только со строками в UTF-8 кодировке.

Замечание:

PHP реализует надмножество JSON, который описан в первоначальном » RFC 7159.

assoc

Если TRUE, возвращаемые объекты будут преобразованы в ассоциативные массивы.

depth

Указывает глубину рекурсии.

options

Битовая маска опций декодирования JSON. В настоящий момент поддерживается только JSON_BIGINT_AS_STRING (по умолчанию большие целые числа приводятся к числам с плавающей запятой (float))

Возвращаемые значения

Возвращает данные json преобразованные в соответствующие типы PHP. Значения true, false и null возвращаются как TRUE, FALSE и NULL соответственно. NULL также возвращается, если json не может быть преобразован или закодированные данные содержат вложенных уровней больше, чем допустимый предел для рекурсий.

Примеры

Пример #1 Пример использования json_decode()

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));
var_dump(json_decode($json, true));

?>

Результат выполнения данного примера:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

Пример #2 Доступ к свойствам объектов с неправильными именами

Доступ к элементам объекта, которые содержат символы недопустимые согласно соглашению об именах PHP (т.е. дефис), может производиться путем обрамления имени элемента фигурными скобками и апострофами.

<?php

$json = '{"foo-bar": 12345}';

$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345

?>

Пример #3 Распространенная ошибка при использовании json_decode()

<?php

// Следующие строки являются валидным кодом JavaScript, но не валидными JSON данными

// Имя и значение должны помещаться в двойные кавычки
// Одинарные кавычки использовать нельзя
$bad_json = "{ 'bar': 'baz' }";
json_decode($bad_json); // null

// Имя должно обрамляться в двойные кавычки
$bad_json = '{ bar: "baz" }';
json_decode($bad_json); // null

// Не должно быть завершающей запятой (без последующего элемента)
$bad_json = '{ bar: "baz", }';
json_decode($bad_json); // null

?>

Пример #4 Ошибки с глубиной вложенных объектов (depth)

<?php
// Кодирование данных.
$json = json_encode(
    array(
        1 => array(
            'English' => array(
                'One',
                'January'
            ),
            'French' => array(
                'Une',
                'Janvier'
            )
        )
    )
);

// Создаем массив с ошибками.
$constants = get_defined_constants(true);
$json_errors = array();
foreach ($constants["json"] as $name => $value) {
    if (!strncmp($name, "JSON_ERROR_", 11)) {
        $json_errors[$value] = $name;
    }
}

// Отображаем ошибки для разных глубин рекурсий
foreach (range(4, 3, -1) as $depth) {
    var_dump(json_decode($json, true, $depth));
    echo 'Last error: ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL;
}
?>

Результат выполнения данного примера:

array(1) {
  [1]=>
  array(2) {
    ["English"]=>
    array(2) {
      [0]=>
      string(3) "One"
      [1]=>
      string(7) "January"
    }
    ["French"]=>
    array(2) {
      [0]=>
      string(3) "Une"
      [1]=>
      string(7) "Janvier"
    }
  }
}
Last error: JSON_ERROR_NONE

NULL
Last error: JSON_ERROR_DEPTH

Пример #5 json_decode() с большими целыми числами

<?php
$json = '{"number": 12345678901234567890}';

var_dump(json_decode($json));
var_dump(json_decode($json, false, 512, JSON_BIGINT_AS_STRING));

?>

Результат выполнения данного примера:

object(stdClass)#1 (1) {
  ["number"]=>
  float(1.2345678901235E+19)
}
object(stdClass)#1 (1) {
  ["number"]=>
  string(20) "12345678901234567890"
}

Примечания

Замечание:

Спецификация JSON не тоже самое, что и JavaScript, но является его частью.

Замечание:

В случае ошибки декодирования можно использовать json_last_error() для определения ее причины.

Список изменений

Версия | Описание
5.6.0 | Недопустимые варианты true, false и null не в нижнем регистре больше не допускаются во входящих данных, и приводят к предупреждениям.
5.4.0 | Был добавлен параметр options.
5.3.0 | Добавлен опциональный параметр depth. Глубина рекурсии по умолчанию увеличено с 128 до 512
5.2.3 | Глубина рекурсии увеличена с 20 до 128
5.2.1 | Добавлена поддержка декодирования основных типов JSON.

Смотрите также

  • json_encode() - Возвращает JSON-представление данных
  • json_last_error() - Возвращает последнюю ошибку


Возвращает JSON-представление данных

  • « json_decode
  • json_last_error_msg »
  • PHP Manual
  • JSON Функции
  • Возвращает JSON-представление данных

json_encode

(PHP 5 >= 5.2.0, PECL json >= 1.2.0, PHP 7)

json_encode — Возвращает JSON-представление данных

Описание

string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )

Возвращает строку, содержащую JSON-представление value.

Список параметров

value

value - значение, которое будет закодировано. Может быть любого типа за исключением resource.

Функция работает только с кодировкой UTF-8.

Замечание:

PHP реализует надмножество JSON, который описан в первоначальном » RFC 7159.

options

Битовая маска, составляемая из значений JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_PRESERVE_ZERO_FRACTION, JSON_UNESCAPED_UNICODE, JSON_PARTIAL_OUTPUT_ON_ERROR. Смысл этих констант объясняется на странице JSON констант.

depth

Устанавливает максимальную глубину. Должен быть больше нуля.

Возвращаемые значения

Возвращает JSON строку (string) либо или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.1.0 | При кодировании чисел с плавающей запятой используется serialize_precision вместо precision
5.6.6 | Добавлено значение JSON_PRESERVE_ZERO_FRACTION для параметра option.
5.5.0 | Добавлен параметр depth.
5.4.0 | Для options были добавлены константы JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, и JSON_UNESCAPED_UNICODE.
5.3.3 | Добавлено значение JSON_NUMERIC_CHECK для параметра option.
5.3.0 | Был добавлен параметр options.

Примеры

Пример #1 Пример использования json_encode()

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

Результат выполнения данного примера:

{"a":1,"b":2,"c":3,"d":4,"e":5}

Пример #2 Пример использования json_encode(), с опциями

<?php
$a = array('<foo>',"'bar'",'"baz"','&blong&', "\xc3\xa9");

echo "Обычно: ",     json_encode($a), "\n";
echo "Тэги: ",       json_encode($a, JSON_HEX_TAG), "\n";
echo "Апострофы: ",  json_encode($a, JSON_HEX_APOS), "\n";
echo "Кавычки: ",    json_encode($a, JSON_HEX_QUOT), "\n";
echo "Амперсанты: ", json_encode($a, JSON_HEX_AMP), "\n";
echo "Юникод: ",     json_encode($a, JSON_UNESCAPED_UNICODE), "\n";
echo "Все: ",        json_encode($a, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE), "\n\n";

$b = array();

echo "Пустой массива как массив: ", json_encode($b), "\n";
echo "Пустой массив как объект: ", json_encode($b, JSON_FORCE_OBJECT), "\n\n";

$c = array(array(1,2,3));

echo "Неассоциативный массив как массив: ", json_encode($c), "\n";
echo "Неассоциативный массив как объект: ", json_encode($c, JSON_FORCE_OBJECT), "\n\n";

$d = array('foo' => 'bar', 'baz' => 'long');

echo "Ассоциативный массив всегда отображается как объект: ", json_encode($d), "\n";
echo "Ассоциативный массив всегда отображается как объект: ", json_encode($d, JSON_FORCE_OBJECT), "\n\n";
?>

Результат выполнения данного примера:

Обычно: ["<foo>","'bar'","\"baz\"","&blong&","\u00e9"]
Тэги: ["\u003Cfoo\u003E","'bar'","\"baz\"","&blong&","\u00e9"]
Апострофы: ["<foo>","\u0027bar\u0027","\"baz\"","&blong&","\u00e9"]
Кавычки: ["<foo>","'bar'","\u0022baz\u0022","&blong&","\u00e9"]
Амперсанты: ["<foo>","'bar'","\"baz\"","\u0026blong\u0026","\u00e9"]
Unicode: ["<foo>","'bar'","\"baz\"","&blong&","e"]
Все: ["\u003Cfoo\u003E","\u0027bar\u0027","\u0022baz\u0022","\u0026blong\u0026","e"]

Отображение пустого массива как массива: []
Отображение не ассоциативного массива как объекта: {}

Отображение неассоциативного массива как массива: [[1,2,3]]
Отображение неассоциативного массива как объекта: {"0":{"0":1,"1":2,"2":3}}

Ассоциативный массив всегда отображается как объект: {"foo":"bar","baz":"long"}
Ассоциативный массив всегда отображается как объект: {"foo":"bar","baz":"long"}

Пример #3 Пример использования опции JSON_NUMERIC_CHECK

<?php
echo "Строки, содержащие числа преобразуются в числа".PHP_EOL;
$numbers = array('+123123', '-123123', '1.2e3', '0.00001');
var_dump(
 $numbers,
 json_encode($numbers, JSON_NUMERIC_CHECK)
);
echo "Строки, содержащие некорректно заданные числа".PHP_EOL;
$strings = array('+a33123456789', 'a123');
var_dump(
 $strings,
 json_encode($strings, JSON_NUMERIC_CHECK)
);
?>

Результатом выполнения данного примера будет что-то подобное:

Строки, содержащие числа преобразуются в числа
array(4) {
  [0]=>
  string(7) "+123123"
  [1]=>
  string(7) "-123123"
  [2]=>
  string(5) "1.2e3"
  [3]=>
  string(7) "0.00001"
}
string(28) "[123123,-123123,1200,1.0e-5]"
Строки, содержащие некорректно заданные числа
array(2) {
  [0]=>
  string(13) "+a33123456789"
  [1]=>
  string(4) "a123"
}
string(24) "["+a33123456789","a123"]"

Пример #4 Пример с последовательными индексами, начинающимися с нуля, и непоследовательными индексами массивов

<?php
echo "Последовательный массив".PHP_EOL;
$sequential = array("foo", "bar", "baz", "blong");
var_dump(
 $sequential,
 json_encode($sequential)
);

echo PHP_EOL."Непоследовательный массив".PHP_EOL;
$nonsequential = array(1=>"foo", 2=>"bar", 3=>"baz", 4=>"blong");
var_dump(
 $nonsequential,
 json_encode($nonsequential)
);

echo PHP_EOL."Последовательный массив с одним удаленным индексом".PHP_EOL;
unset($sequential[1]);
var_dump(
 $sequential,
 json_encode($sequential)
);
?>

Результат выполнения данного примера:

Последовательный массив
array(4) {
  [0]=>
  string(3) "foo"
  [1]=>
  string(3) "bar"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(27) "["foo","bar","baz","blong"]"

Непоследовательный массив
array(4) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(3) "baz"
  [4]=>
  string(5) "blong"
}
string(43) "{"1":"foo","2":"bar","3":"baz","4":"blong"}"

Последовательный массив с одним удаленным индексом
array(3) {
  [0]=>
  string(3) "foo"
  [2]=>
  string(3) "baz"
  [3]=>
  string(5) "blong"
}
string(33) "{"0":"foo","2":"baz","3":"blong"}"

Пример #5 Пример использования опцииJSON_PRESERVE_ZERO_FRACTION

<?php
var_dump(json_encode(12.0, JSON_PRESERVE_ZERO_FRACTION));
var_dump(json_encode(12.0));
?>

Результат выполнения данного примера:

string(4) "12.0"
string(2) "12"

Примечания

Замечание:

В случае ошибки кодирования можно использовать json_last_error() для определения точной ошибки.

Замечание:

При кодировании массива в случае, если его индексы не являются последовательными числами от нуля, то все индексы кодируются в строковые ключи для каждой пары индекс-значение.

Замечание:

Как и эталонный кодировщик JSON, json_encode() будет создавать JSON в виде простого значения (т.е. не объект и не массив), если ему переданы string, integer, float или boolean в качестве входящего значения value. Большинство декодеров воспринимают эти значения как правильный JSON, но некоторые нет, потому что спецификация неоднозначна на этот счет.

Всегда проверяйте, что ваш JSON декодер может правильно обрабатывать данные, которые вы создаете с помощью json_encode().

Смотрите также

  • JsonSerializable
  • json_decode() - Декодирует JSON строку
  • json_last_error() - Возвращает последнюю ошибку
  • serialize() - Генерирует пригодное для хранения представление переменной


Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()

  • « json_encode
  • json_last_error »
  • PHP Manual
  • JSON Функции
  • Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()

json_last_error_msg

(PHP 5 >= 5.5.0, PHP 7)

json_last_error_msg — Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()

Описание

string json_last_error_msg ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает сообщение об ошибке в случае успеха, "No Error" если ошибки не произошло, или FALSE в случае возникновения ошибки.

Смотрите также

  • json_last_error() - Возвращает последнюю ошибку


Возвращает последнюю ошибку

  • « json_last_error_msg
  • Judy »
  • PHP Manual
  • JSON Функции
  • Возвращает последнюю ошибку

json_last_error

(PHP 5 >= 5.3.0, PHP 7)

json_last_error — Возвращает последнюю ошибку

Описание

int json_last_error ( void )

Если при последнем JSON кодировании/декодировании возникла ошибка, то возвращает её код.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целочисленное значение, которое может быть одной из следующих констант:

Коды ошибок JSON
Константа | Значение | Доступность
JSON_ERROR_NONE | Ошибок нет |
JSON_ERROR_DEPTH | Достигнута максимальная глубина стека |
JSON_ERROR_STATE_MISMATCH | Неверный или не корректный JSON |
JSON_ERROR_CTRL_CHAR | Ошибка управляющего символа, возможно неверная кодировка |
JSON_ERROR_SYNTAX | Синтаксическая ошибка |
JSON_ERROR_UTF8 | Некорректные символы UTF-8, возможно неверная кодировка | PHP 5.3.3
JSON_ERROR_RECURSION | Одна или несколько зацикленных ссылок в кодируемом значении | PHP 5.5.0
JSON_ERROR_INF_OR_NAN | Одно или несколько значений NAN или INF в кодируемом значении | PHP 5.5.0
JSON_ERROR_UNSUPPORTED_TYPE | Передано значение с неподдерживаемым типом | PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME | Имя свойства не может быть закодировано | PHP 7.0.0
JSON_ERROR_UTF16 | Некорректный символ UTF-16, возможно некорректно закодирован | PHP 7.0.0

Примеры

Пример #1 Пример использования json_last_error()

<?php
// Верная json-строка
$json[] = '{"Organization": "PHP Documentation Team"}';

// Неверная json-строка, которая вызовет синтаксическую ошибку,
// здесь в качестве кавычек мы используем ' вместо "
$json[] = "{'Organization': 'PHP Documentation Team'}";

foreach ($json as $string) {
    echo 'Декодируем: ' . $string;
    json_decode($string);

    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            echo ' - Ошибок нет';
        break;
        case JSON_ERROR_DEPTH:
            echo ' - Достигнута максимальная глубина стека';
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo ' - Некорректные разряды или не совпадение режимов';
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo ' - Некорректный управляющий символ';
        break;
        case JSON_ERROR_SYNTAX:
            echo ' - Синтаксическая ошибка, не корректный JSON';
        break;
        case JSON_ERROR_UTF8:
            echo ' - Некорректные символы UTF-8, возможно неверная кодировка';
        break;
        default:
            echo ' - Неизвестная ошибка';
        break;
    }

    echo PHP_EOL;
}
?>

Результат выполнения данного примера:

Декодируем: {"Organization": "PHP Documentation Team"} - Ошибок нет
Декодируем: {'Organization': 'PHP Documentation Team'} - Синтаксическая ошибка, некорректный JSON

Пример #2 Совместное использование json_last_error() и json_encode()

<?php
// Некорректная последователньость UTF8
$text = "\xB1\x31";

$json  = json_encode($text);
$error = json_last_error();

var_dump($json, $error === JSON_ERROR_UTF8);
?>

Результат выполнения данного примера:

string(4) "null"
bool(true)

Смотрите также

  • json_last_error_msg() - Возвращает строку с сообщением об ошибке последнего вызова json_encode() или json_decode()
  • json_decode() - Декодирует JSON строку
  • json_encode() - Возвращает JSON-представление данных


Judy Arrays

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Judy — The Judy class
    • Judy::byCount — Locate the Nth index present in the Judy array
    • Judy::__construct — Construct a new Judy object
    • Judy::count — Count the number of elements in the Judy array
    • Judy::__destruct — Destruct a Judy object
    • Judy::first — Search for the first index in the Judy array
    • Judy::firstEmpty — Search for the first absent index in the Judy array
    • Judy::free — Free the entire Judy array
    • Judy::getType — Return the type of the current Judy array
    • Judy::last — Search for the last index in the Judy array
    • Judy::lastEmpty — Search for the last absent index in the Judy array
    • Judy::memoryUsage — Return the memory used by the Judy array
    • Judy::next — Search for the next index in the Judy array
    • Judy::nextEmpty — Search for the next absent index in the Judy array
    • Judy::offsetExists — Whether a offset exists
    • Judy::offsetGet — Offset to retrieve
    • Judy::offsetSet — Offset to set
    • Judy::offsetUnset — Offset to unset
    • Judy::prev — Search for the previous index in the Judy array
    • Judy::prevEmpty — Search for the previous absent index in the Judy array
    • Judy::size — Return the size of the current Judy array
  • Judy Функции
    • judy_type — Return the type of a Judy array
    • judy_version — Return or print the current PHP Judy version


Введение

PHP Judy is a PECL extension for the » Judy C library implementing dynamic sparse arrays.

A Judy array is a complex but very fast associative array data structure for storing and looking up values using integer or string keys. Unlike normal arrays, Judy arrays may be sparse; that is, they may have large ranges of unassigned indices.

A Judy array consumes memory only when populated yet can grow to take advantage of all available memory. Judy's key benefits are: scalability, performance, memory efficiency, and ease of use. Judy arrays are designed to grow without tuning into the peta-element range, scaling near O(log-base-256) -- 1 more RAM access at 256 X population.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

This extension require the » Judy C library.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/judy

Installation on Linux Systems

From sources

Download and install » libJudy, then :

     phpize
     ./configure --with-judy[=DIR]
     make
     make test
     make install

Ubuntu/Debian

libJudy can be installed with apt-get :

    apt-get install libjudydebian1 libjudy-dev
Then by installing the Judy extension from PECL or from the sources.

Installation on Windows Systems

Download » libJudy, then extract the sources and open the Visual Studio command prompt and navigate to the source directory. Then execute :

build
This creates "Judy.lib", copy this into the php-sdk library folder and name it "libJudy.lib" Then copy the include file "judy.h" into the php-sdk includes folder.

Next, the PHP Judy extension can be installed from PECL or from the sources by extracting the pecl/judy into your build folder where the build scripts will be able to pick it up, e.g.:

    C:\php\pecl\judy\
If your source of PHP is located in:
    C:\php\src\
The rest of the steps is pretty straight forward, like any other external extension:
    buildconf
    configure --with-judy=shared
    nmake

Installation on Mac OS X

Download and install » libJudy. Then install the Judy extension from PECL or from the sources.


  • « Настройка во время выполнения
  • Judy »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


The Judy class

(PECL judy >= 0.1.1)

Введение

The Judy class implements the ArrayAccess interface and the Iterator interface. This class, once instantiated, can be accessed like a PHP array.

A PHP Judy object (or Judy Array) can be one of the following type :

  • Judy::BITSET
  • Judy::INT_TO_INT
  • Judy::INT_TO_MIXED
  • Judy::STRING_TO_INT
  • Judy::STRING_TO_MIXED

Пример #1 Judy array example

<?php
    $judy = new Judy(Judy::INT_TO_MIXED);
    $judy[1] = "one";
    $judy[2] = array('a', 'b', 'c');
    $judy[3] = new Judy(Judy::BITSET);
?>

Обзор классов

Judy implements ArrayAccess , Iterator {
/* Constants */
const integer BITSET = 1 ;
const integer INT_TO_INT = 2 ;
const integer INT_TO_MIXED = 3 ;
const integer STRING_TO_INT = 4 ;
const integer STRING_TO_MIXED = 5 ;
/* Методы */
public int byCount ( int $nth_index )
public __construct ( int $judy_type )
public int count ([ int $index_start = 0 [, int $index_end = -1 ]] )
public void __destruct ( void )
public mixed first ([ mixed $index ] )
public int firstEmpty ([ mixed $index = 0 ] )
public int free ( void )
public int getType ( void )
public void last ([ string $index ] )
public int lastEmpty ([ int $index = -1 ] )
public int memoryUsage ( void )
public mixed next ( mixed $index )
public int nextEmpty ( int $index )
public bool offsetExists ( mixed $offset )
public mixed offsetGet ( mixed $offset )
public bool offsetSet ( mixed $offset , mixed $value )
public bool offsetUnset ( mixed $offset )
public mixed prev ( mixed $index )
public int prevEmpty ( mixed $index )
public void size ( void )
}

Предопределенные константы

Judy::BITSET

Define the Judy Array as a Bitset with keys as Integer and Values as a Boolean

Judy::INT_TO_INT

Define the Judy Array with key/values as Integer, and Integer only.

Judy::INT_TO_MIXED

Define the Judy Array with keys as Integer and Values of any type.

Judy::STRING_TO_INT

Define the Judy Array with keys as a String and Values as Integer, and Integer only.

Judy::STRING_TO_MIXED

Define the Judy Array with keys as a String and Values of any type.

Содержание

  • Judy::byCount — Locate the Nth index present in the Judy array
  • Judy::__construct — Construct a new Judy object
  • Judy::count — Count the number of elements in the Judy array
  • Judy::__destruct — Destruct a Judy object
  • Judy::first — Search for the first index in the Judy array
  • Judy::firstEmpty — Search for the first absent index in the Judy array
  • Judy::free — Free the entire Judy array
  • Judy::getType — Return the type of the current Judy array
  • Judy::last — Search for the last index in the Judy array
  • Judy::lastEmpty — Search for the last absent index in the Judy array
  • Judy::memoryUsage — Return the memory used by the Judy array
  • Judy::next — Search for the next index in the Judy array
  • Judy::nextEmpty — Search for the next absent index in the Judy array
  • Judy::offsetExists — Whether a offset exists
  • Judy::offsetGet — Offset to retrieve
  • Judy::offsetSet — Offset to set
  • Judy::offsetUnset — Offset to unset
  • Judy::prev — Search for the previous index in the Judy array
  • Judy::prevEmpty — Search for the previous absent index in the Judy array
  • Judy::size — Return the size of the current Judy array


Locate the Nth index present in the Judy array

  • « Judy
  • Judy::__construct »
  • PHP Manual
  • Judy
  • Locate the Nth index present in the Judy array

Judy::byCount

(PECL judy >= 0.1.1)

Judy::byCount — Locate the Nth index present in the Judy array

Описание

public int Judy::byCount ( int $nth_index )

Locate the Nth index present in the Judy array.

Список параметров

nth_index

Nth index to return. If nth_index equal 1, then it will return the first index in the array.

Возвращаемые значения

Return the index at the given Nth position.


Construct a new Judy object

  • « Judy::byCount
  • Judy::count »
  • PHP Manual
  • Judy
  • Construct a new Judy object

Judy::__construct

(PECL judy >= 0.1.1)

Judy::__construct — Construct a new Judy object

Описание

public Judy::__construct ( int $judy_type )

Construct a new Judy object. A Judy object can be accessed like a PHP Array.

Список параметров

judy_type

The Judy type to be used.

Возвращаемые значения

Return the new Judy instance.


Count the number of elements in the Judy array

  • « Judy::__construct
  • Judy::__destruct »
  • PHP Manual
  • Judy
  • Count the number of elements in the Judy array

Judy::count

(PECL judy >= 0.1.1)

Judy::count — Count the number of elements in the Judy array

Описание

public int Judy::count ([ int $index_start = 0 [, int $index_end = -1 ]] )

Count the number of elements in the Judy array.

Список параметров

index_start

Start counting from the given index. Default is first index.

index_end

Stop counting when reaching this index. Default is last index.

Возвращаемые значения

Return the number of elements.


Destruct a Judy object

  • « Judy::count
  • Judy::first »
  • PHP Manual
  • Judy
  • Destruct a Judy object

Judy::__destruct

(PECL judy >= 0.1.1)

Judy::__destruct — Destruct a Judy object

Описание

public void Judy::__destruct ( void )

Destruct a Judy object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Search for the first index in the Judy array

  • « Judy::__destruct
  • Judy::firstEmpty »
  • PHP Manual
  • Judy
  • Search for the first index in the Judy array

Judy::first

(PECL judy >= 0.1.1)

Judy::first — Search for the first index in the Judy array

Описание

public mixed Judy::first ([ mixed $index ] )

Search (inclusive) for the first index present that is equal to or greater than the passed Index.

Список параметров

index

The index can be an integer or a string corresponding to the index where to start the search.

Возвращаемые значения

Return the corresponding index in the array.


Search for the first absent index in the Judy array

  • « Judy::first
  • Judy::free »
  • PHP Manual
  • Judy
  • Search for the first absent index in the Judy array

Judy::firstEmpty

(PECL judy >= 0.1.1)

Judy::firstEmpty — Search for the first absent index in the Judy array

Описание

public int Judy::firstEmpty ([ mixed $index = 0 ] )

Search (inclusive) for the first absent index that is equal to or greater than the passed Index.

Список параметров

index

The index can be an integer or a string corresponding to the index where to start the search.

Возвращаемые значения

Return the corresponding index in the array.


Free the entire Judy array

  • « Judy::firstEmpty
  • Judy::getType »
  • PHP Manual
  • Judy
  • Free the entire Judy array

Judy::free

(PECL judy >= 0.1.1)

Judy::free — Free the entire Judy array

Описание

public int Judy::free ( void )

Free the entire Judy array.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Return the type of the current Judy array

  • « Judy::free
  • Judy::last »
  • PHP Manual
  • Judy
  • Return the type of the current Judy array

Judy::getType

(PECL judy >= 0.1.1)

Judy::getType — Return the type of the current Judy array

Описание

public int Judy::getType ( void )

Return an integer corresponding to the Judy type of the current object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return an integer corresponding to a Judy type.


Search for the last index in the Judy array

  • « Judy::getType
  • Judy::lastEmpty »
  • PHP Manual
  • Judy
  • Search for the last index in the Judy array

Judy::last

(PECL judy >= 0.1.1)

Judy::last — Search for the last index in the Judy array

Описание

public void Judy::last ([ string $index ] )

Search (inclusive) for the last index present that is equal to or less than the passed Index.

Список параметров

index

The index can be an integer or a string corresponding to the index where to start the search.

Возвращаемые значения

Return the corresponding index in the array.


Search for the last absent index in the Judy array

  • « Judy::last
  • Judy::memoryUsage »
  • PHP Manual
  • Judy
  • Search for the last absent index in the Judy array

Judy::lastEmpty

(PECL judy >= 0.1.1)

Judy::lastEmpty — Search for the last absent index in the Judy array

Описание

public int Judy::lastEmpty ([ int $index = -1 ] )

Search (inclusive) for the last absent index that is equal to or less than the passed Index.

Список параметров

index

The index can be an integer or a string corresponding to the index where to start the search.

Возвращаемые значения

Return the corresponding index in the array.


Return the memory used by the Judy array

  • « Judy::lastEmpty
  • Judy::next »
  • PHP Manual
  • Judy
  • Return the memory used by the Judy array

Judy::memoryUsage

(PECL judy >= 0.1.1)

Judy::memoryUsage — Return the memory used by the Judy array

Описание

public int Judy::memoryUsage ( void )

Return the memory used by the Judy array.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return the memory used in bytes.


Search for the next index in the Judy array

  • « Judy::memoryUsage
  • Judy::nextEmpty »
  • PHP Manual
  • Judy
  • Search for the next index in the Judy array

Judy::next

(PECL judy >= 0.1.1)

Judy::next — Search for the next index in the Judy array

Описание

public mixed Judy::next ( mixed $index )

Search (exclusive) for the next index present that is greater than the passed Index.

Список параметров

index

The index can be an integer or a string corresponding to the index where to start the search.

Возвращаемые значения

Return the corresponding index in the array.


Search for the next absent index in the Judy array

  • « Judy::next
  • Judy::offsetExists »
  • PHP Manual
  • Judy
  • Search for the next absent index in the Judy array

Judy::nextEmpty

(PECL judy >= 0.1.1)

Judy::nextEmpty — Search for the next absent index in the Judy array

Описание

public int Judy::nextEmpty ( int $index )

Search (exclusive) for the next absent index that is greater than the passed Index.

Список параметров

index

The index can be an integer or a string corresponding to the index where to start the search.

Возвращаемые значения

Return the corresponding index in the array.


Whether a offset exists

  • « Judy::nextEmpty
  • Judy::offsetGet »
  • PHP Manual
  • Judy
  • Whether a offset exists

Judy::offsetExists

(PECL judy >= 0.1.1)

Judy::offsetExists — Whether a offset exists

Описание

public bool Judy::offsetExists ( mixed $offset )

Whether or not an offset exists.

Список параметров

offset

An offset to check for.

Возвращаемые значения

Returns TRUE on success or FALSE on failure.


Offset to retrieve

  • « Judy::offsetExists
  • Judy::offsetSet »
  • PHP Manual
  • Judy
  • Offset to retrieve

Judy::offsetGet

(PECL judy >= 0.1.1)

Judy::offsetGet — Offset to retrieve

Описание

public mixed Judy::offsetGet ( mixed $offset )

Returns the value at specified offset.

Список параметров

offset

The offset to retrieve.

Возвращаемые значения

Can return all value types.


Offset to set

  • « Judy::offsetGet
  • Judy::offsetUnset »
  • PHP Manual
  • Judy
  • Offset to set

Judy::offsetSet

(PECL judy >= 0.1.1)

Judy::offsetSet — Offset to set

Описание

public bool Judy::offsetSet ( mixed $offset , mixed $value )

Assigns a value to the specified offset.

Список параметров

offset

The offset to assign the value to.

value

The value to set.

Возвращаемые значения

No value is returned.


Offset to unset

  • « Judy::offsetSet
  • Judy::prev »
  • PHP Manual
  • Judy
  • Offset to unset

Judy::offsetUnset

(PECL judy >= 0.1.1)

Judy::offsetUnset — Offset to unset

Описание

public bool Judy::offsetUnset ( mixed $offset )

Unsets an offset.

Список параметров

offset

The offset to unset.

Возвращаемые значения

No value is returned.


Search for the previous index in the Judy array

  • « Judy::offsetUnset
  • Judy::prevEmpty »
  • PHP Manual
  • Judy
  • Search for the previous index in the Judy array

Judy::prev

(PECL judy >= 0.1.1)

Judy::prev — Search for the previous index in the Judy array

Описание

public mixed Judy::prev ( mixed $index )

Search (exclusive) for the previous index present that is less than the passed Index.

Список параметров

index

The index can be an integer or a string corresponding to the index where to start the search.

Возвращаемые значения

Return the corresponding index in the array.


Search for the previous absent index in the Judy array

  • « Judy::prev
  • Judy::size »
  • PHP Manual
  • Judy
  • Search for the previous absent index in the Judy array

Judy::prevEmpty

(PECL judy >= 0.1.1)

Judy::prevEmpty — Search for the previous absent index in the Judy array

Описание

public int Judy::prevEmpty ( mixed $index )

Search (exclusive) for the previous index absent that is less than the passed Index.

Список параметров

index

The index can be an integer or a string corresponding to the index where to start the search.

Возвращаемые значения

Return the corresponding index in the array.


Return the size of the current Judy array

  • « Judy::prevEmpty
  • Judy Функции »
  • PHP Manual
  • Judy
  • Return the size of the current Judy array

Judy::size

(PECL judy >= 0.1.1)

Judy::size — Return the size of the current Judy array

Описание

public void Judy::size ( void )

This method is an alias of Judy::count.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return an integer.


Judy Функции

Содержание

  • judy_type — Return the type of a Judy array
  • judy_version — Return or print the current PHP Judy version


Return the type of a Judy array

  • « Judy Функции
  • judy_version »
  • PHP Manual
  • Judy Функции
  • Return the type of a Judy array

judy_type

(PECL judy >= 0.1.1)

judy_type — Return the type of a Judy array

Описание

int judy_type ( Judy $array )

judy_type() return an integer corresponding to the Judy type of the specified Judy array.

Список параметров

array

The Judy Array to test.

Возвращаемые значения

Return an integer corresponding to a Judy type.


Return or print the current PHP Judy version

  • « judy_type
  • Lua »
  • PHP Manual
  • Judy Функции
  • Return or print the current PHP Judy version

judy_version

(PECL judy >= 0.1.1)

judy_version — Return or print the current PHP Judy version

Описание

string judy_version ( void )

Return a string of the PHP Judy version. If the return value is not used, the string will be printed.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return a string of the PHP Judy version.


Lua

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Lua — The Lua class
    • Lua::assign — Assign a PHP variable to Lua
    • Lua::call — Call Lua functions
    • Lua::__construct — Lua constructor
    • Lua::eval — Evaluate a string as Lua code
    • Lua::getVersion — The getversion purpose
    • Lua::include — Parse a Lua script file
    • Lua::registerCallback — Register a PHP function to Lua
  • LuaClosure — The LuaClosure class
    • LuaClosure::__invoke — invoke luaclosure


Введение

"Lua is a powerful, fast, light-weight, embeddable scripting language." This extension embeds the lua interpreter and offers an OO-API to lua variables and functions.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

To use this extension, you will need Lua installed, available on the » Lua homepage


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/lua.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • Lua »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


The Lua class

(PECL lua >=0.9.0)

Введение

Обзор классов

Lua {
/* Constants */
const string LUA_VERSION = Lua 5.1.4 ;
/* Методы */
public mixed assign ( string $name , string $value )
public mixed call ( callable $lua_func [, array $args [, int $use_self = 0 ]] )
public mixed __call ( callable $lua_func [, array $args [, int $use_self = 0 ]] )
public __construct ( string $lua_script_file = NULL )
public mixed eval ( string $statements )
public string getVersion ( void )
public mixed include ( string $file )
public mixed registerCallback ( string $name , callable $function )
}

Предопределенные константы

Lua::LUA_VERSION

Содержание

  • Lua::assign — Assign a PHP variable to Lua
  • Lua::call — Call Lua functions
  • Lua::__construct — Lua constructor
  • Lua::eval — Evaluate a string as Lua code
  • Lua::getVersion — The getversion purpose
  • Lua::include — Parse a Lua script file
  • Lua::registerCallback — Register a PHP function to Lua


Assign a PHP variable to Lua

  • « Lua
  • Lua::call »
  • PHP Manual
  • Lua
  • Assign a PHP variable to Lua

Lua::assign

(PECL lua >=0.9.0)

Lua::assign — Assign a PHP variable to Lua

Описание

public mixed Lua::assign ( string $name , string $value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения

Returns $this or NULL on failure.

Примеры

Пример #1 Lua::assign()example

<?php
$lua = new Lua();
$lua->assign("php_var", array(1=>1, 2, 3)); //lua table index begin with 1
$lua->eval(<<<CODE
    print(php_var);
CODE
);
?>

Результат выполнения данного примера:

Array
 (
     [1] => 1
     [2] => 2
     [3] => 3
 )


Call Lua functions

  • « Lua::assign
  • Lua::__construct »
  • PHP Manual
  • Lua
  • Call Lua functions

Lua::call

Lua::__call

(PECL lua >=0.9.0)

Lua::call -- Lua::__call — Call Lua functions

Описание

public mixed Lua::call ( callable $lua_func [, array $args [, int $use_self = 0 ]] )
public mixed Lua::__call ( callable $lua_func [, array $args [, int $use_self = 0 ]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

lua_func

Function name in lua

args

Arguments passed to the Lua function

use_self

Whether to use self

Возвращаемые значения

Returns result of the called function, NULL for wrong arguments or FALSE on other failure.

Примеры

Пример #1 Lua::call()example

<?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 constructor

  • « Lua::call
  • Lua::eval »
  • PHP Manual
  • Lua
  • Lua constructor

Lua::__construct

(PECL lua >=0.9.0)

Lua::__construct — Lua constructor

Описание

public Lua::__construct ( string $lua_script_file = NULL )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

lua_script_file

Возвращаемые значения


Evaluate a string as Lua code

  • « Lua::__construct
  • Lua::getVersion »
  • PHP Manual
  • Lua
  • Evaluate a string as Lua code

Lua::eval

(PECL lua >=0.9.0)

Lua::eval — Evaluate a string as Lua code

Описание

public mixed Lua::eval ( string $statements )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

statements

Возвращаемые значения

Returns result of evaled code, NULL for wrong arguments or FALSE on other failure.

Примеры

Пример #1 Lua::eval()example

<?php
$lua = new Lua();
$lua->eval(<<<CODE
    print(2);
CODE
);
?>

Результат выполнения данного примера:

2


The getversion purpose

  • « Lua::eval
  • Lua::include »
  • PHP Manual
  • Lua
  • The getversion purpose

Lua::getVersion

(PECL lua >=0.9.0)

Lua::getVersion — The getversion purpose

Описание

public string Lua::getVersion ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns Lua::LUA_VERSION.


Parse a Lua script file

  • « Lua::getVersion
  • Lua::registerCallback »
  • PHP Manual
  • Lua
  • Parse a Lua script file

Lua::include

(PECL lua >=0.9.0)

Lua::include — Parse a Lua script file

Описание

public mixed Lua::include ( string $file )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

file

Возвращаемые значения

Returns result of included code, NULL for wrong arguments or FALSE on other failure.


Register a PHP function to Lua

  • « Lua::include
  • LuaClosure »
  • PHP Manual
  • Lua
  • Register a PHP function to Lua

Lua::registerCallback

(Информация о версии неизвестна, возможно, только в SVN)

Lua::registerCallback — Register a PHP function to Lua

Описание

public mixed Lua::registerCallback ( string $name , callable $function )

Register a PHP function to Lua as a function named "$name"

Список параметров

name

function

A valid PHP function callback

Возвращаемые значения

Returns $this, NULL for wrong arguments or FALSE on other failure.

Примеры

Пример #1 Lua::registerCallback()example

<?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)
}


The LuaClosure class

(PECL lua >=0.9.0)

Введение

LuaClosure is a wrapper class for LUA_TFUNCTION which could be return from calling to Lua function.

Обзор классов

LuaClosure {
/* Методы */
public void __invoke ( mixed $arg [, mixed $... ] )
}

Содержание

  • LuaClosure::__invoke — invoke luaclosure


invoke luaclosure

  • « LuaClosure
  • Misc. »
  • PHP Manual
  • LuaClosure
  • invoke luaclosure

LuaClosure::__invoke

(PECL lua >=0.9.0)

LuaClosure::__invoke — invoke luaclosure

Описание

public void LuaClosure::__invoke ( mixed $arg [, mixed $... ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

arg

...

Возвращаемые значения

Примеры

Пример #1 LuaClosure::__invoke()example

<?php
$lua = new Lua();
$closure = $lua->eval(<<<CODE
    return (function ()
        print("hello world")
    end)
CODE
);

$lua->call($closure);
/* after PHP 5.3 */
$closure();
?>

Результат выполнения данного примера:

hello worldhello world


Разные функции

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Разные Функции
    • connection_aborted — Проверяет подключение клиента
    • connection_status — Возвращает статус соединения в битах
    • constant — Возвращает значение константы
    • define — Определяет именованную константу
    • defined — Проверяет существование указанной именованной константы
    • die — Эквивалент функции exit
    • eval — Исполняет код PHP, содержащейся в строке
    • exit — Выводит сообщение и прекращает выполнение текущего скрипта
    • get_browser — Сообщает о возможностях браузера пользователя
    • __halt_compiler — Останавливает работу компилятора
    • highlight_file — Подсветка синтаксиса файла
    • highlight_string — Подсветка синтаксиса строки
    • ignore_user_abort — Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента
    • pack — Упаковывает данные в бинарную строку
    • php_check_syntax — Проверяет (и запускает) PHP синтаксис указанного файла
    • php_strip_whitespace — Возвращает исходный код без комментариев и пробелов
    • show_source — Псевдоним highlight_file
    • sleep — Откладывает выполнение
    • sys_getloadavg — Получает среднюю загрузку системы
    • time_nanosleep — Откладывает исполнение на заданное число секунд и наносекунд
    • time_sleep_until — Откладывает исполнение скрипта до заданного времени
    • uniqid — Генерирует уникальный ID
    • unpack — Распаковывает данные из бинарной строки
    • usleep — Откладывает выполнение на микросекунды
  • Список изменений


Введение

Эти функции помещены сюда, поскольку не подходят ни к одной из категорий.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настроек разных функций
Имя | По умолчанию | Меняемо | Список изменений
ignore_user_abort | "0" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.bg | "#FFFFFF" | PHP_INI_ALL | Удалено в PHP 5.4.0.
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ignore_user_abort boolean

FALSE по умолчанию. Если изменяется на TRUE, то скрипты не будут остановлены после того как клиент разорвет соединение.

См. также ignore_user_abort().

highlight.bg string
highlight.comment string
highlight.default string
highlight.html string
highlight.keyword string
highlight.string string

Цвета для режима подсвечивания (Syntax Highlighting). Всё, что приемлемо в <font color="??????">, будет работать.

browscap string

Имя (н-р: browscap.ini) и расположение файла возможностей браузера. См. также get_browser().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

CONNECTION_ABORTED (integer)
CONNECTION_NORMAL (integer)
CONNECTION_TIMEOUT (integer)
__COMPILER_HALT_OFFSET__ (integer)
Добавлено в PHP 5.1.


Разные Функции

Содержание

  • connection_aborted — Проверяет подключение клиента
  • connection_status — Возвращает статус соединения в битах
  • constant — Возвращает значение константы
  • define — Определяет именованную константу
  • defined — Проверяет существование указанной именованной константы
  • die — Эквивалент функции exit
  • eval — Исполняет код PHP, содержащейся в строке
  • exit — Выводит сообщение и прекращает выполнение текущего скрипта
  • get_browser — Сообщает о возможностях браузера пользователя
  • __halt_compiler — Останавливает работу компилятора
  • highlight_file — Подсветка синтаксиса файла
  • highlight_string — Подсветка синтаксиса строки
  • ignore_user_abort — Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента
  • pack — Упаковывает данные в бинарную строку
  • php_check_syntax — Проверяет (и запускает) PHP синтаксис указанного файла
  • php_strip_whitespace — Возвращает исходный код без комментариев и пробелов
  • show_source — Псевдоним highlight_file
  • sleep — Откладывает выполнение
  • sys_getloadavg — Получает среднюю загрузку системы
  • time_nanosleep — Откладывает исполнение на заданное число секунд и наносекунд
  • time_sleep_until — Откладывает исполнение скрипта до заданного времени
  • uniqid — Генерирует уникальный ID
  • unpack — Распаковывает данные из бинарной строки
  • usleep — Откладывает выполнение на микросекунды


Проверяет подключение клиента

  • « Разные Функции
  • connection_status »
  • PHP Manual
  • Разные Функции
  • Проверяет подключение клиента

connection_aborted

(PHP 4, PHP 5, PHP 7)

connection_aborted — Проверяет подключение клиента

Описание

int connection_aborted ( void )

Проверяет подключен ли клиент.

Возвращаемые значения

Возвращает 1, если клиент отключен, 0 в другом случае.

Смотрите также

  • connection_status() - Возвращает статус соединения в битах
  • ignore_user_abort() - Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента
  • См. Управление подключениями для получения полного описания управления подключениями в PHP.


Возвращает статус соединения в битах

  • « connection_aborted
  • constant »
  • PHP Manual
  • Разные Функции
  • Возвращает статус соединения в битах

connection_status

(PHP 4, PHP 5, PHP 7)

connection_status — Возвращает статус соединения в битах

Описание

int connection_status ( void )

Получает статус соединения в битах.

Возвращаемые значения

Возвращает статус соединения в битах, который можно использовать в константах CONNECTION_XXX для определения статуса соединения.

Смотрите также

  • connection_aborted() - Проверяет подключение клиента
  • ignore_user_abort() - Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента
  • См. Управление соединением для полной информации об управлении соединением в PHP.


Возвращает значение константы

  • « connection_status
  • define »
  • PHP Manual
  • Разные Функции
  • Возвращает значение константы

constant

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

constant — Возвращает значение константы

Описание

mixed constant ( string $name )

Возвращает значение константы, указанной в параметре name.

Функция constant() полезна, если вам необходимо получить значение константы, но неизвестно её имя. Например, если оно хранится в переменной или возвращается функцией.

Данная функция также работает с константами классов.

Список параметров

name

Имя константы.

Возвращаемые значения

Возвращает значение константы либо NULL, если константа не определена.

Ошибки

Если константа не определена, то генерируется исключение уровня E_WARNING.

Примеры

Пример #1 Пример функции constant()

<?php

define("MAXSIZE", 100);

echo MAXSIZE;
echo constant("MAXSIZE"); // результат аналогичен предыдущему выводу

interface bar {
    const test = 'foobar!';
}

class foo {
    const test = 'foobar!';
}

$const = 'test';

var_dump(constant('bar::'. $const)); // string(7) "foobar!"
var_dump(constant('foo::'. $const)); // string(7) "foobar!"

?>

Смотрите также

  • define() - Определяет именованную константу
  • defined() - Проверяет существование указанной именованной константы
  • См. раздел Константы


Определяет именованную константу

  • « constant
  • defined »
  • PHP Manual
  • Разные Функции
  • Определяет именованную константу

define

(PHP 4, PHP 5, PHP 7)

define — Определяет именованную константу

Описание

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

Определяет именованную константу во время выполнения.

Список параметров

name

Имя константы.

value

Значение константы. В PHP 5, value должно быть скалярной величиной(integer, float, string, boolean либо NULL). В PHP 7 также возможно использовать тип array.

Внимание

Также возможно задавать константы типа resource, но делать этого не рекомендуется, поскольку может привести к непредсказуемым результатам.

case_insensitive

Если параметр установлен как TRUE, то константа будет определена без учета регистра. По умолчанию регистр учитывается, т.е. CONSTANT и Constant могут содержать различные значения.

Замечание:

Регистронезависимые константы хранятся в нижнем регистре.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
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]; // выводит "кошка"

?>

Смотрите также

  • defined() - Проверяет существование указанной именованной константы
  • constant() - Возвращает значение константы
  • См. раздел Константы


Проверяет существование указанной именованной константы

  • « define
  • die »
  • PHP Manual
  • Разные Функции
  • Проверяет существование указанной именованной константы

defined

(PHP 4, PHP 5, PHP 7)

defined — Проверяет существование указанной именованной константы

Описание

bool defined ( string $name )

Проверяет существование и наличие значения указанной константы.

Замечание:

Если необходимо узнать о существовании переменной, то используйте isset(), так как defined() применима лишь для констант. Если вам необходимо узнать о существовании функции, то используйте function_exists().

Список параметров

name

Имя константы.

Возвращаемые значения

Возвращает TRUE, если именованная константа, указанная в параметре name, была определена, FALSE в противном случае.

Примеры

Пример #1 Проверка констант

<?php
/* Важно учесть необходимость использования кавычек. Данный пример проверяет
 * является ли строка 'TEST' именем константы TEST. */
if (defined('TEST')) {
    echo TEST;
}
?>

Смотрите также

  • define() - Определяет именованную константу
  • constant() - Возвращает значение константы
  • get_defined_constants() - Возвращает ассоциативный массив с именами и значениями всех предопределенных констант
  • function_exists() - Возвращает TRUE, если указанная функция определена
  • См. раздел Константы


Эквивалент функции exit

  • « defined
  • eval »
  • PHP Manual
  • Разные Функции
  • Эквивалент функции exit

die

(PHP 4, PHP 5, PHP 7)

die — Эквивалент функции exit

Описание

Данная функция эквивалентна функции exit().


Исполняет код PHP, содержащейся в строке

  • « die
  • exit »
  • PHP Manual
  • Разные Функции
  • Исполняет код PHP, содержащейся в строке

eval

(PHP 4, PHP 5, PHP 7)

eval — Исполняет код PHP, содержащейся в строке

Описание

mixed eval ( string $code )

Исполняет строку, переданную в параметре code, как код PHP.

Предостережение

Использование eval() может быть очень опасно, поскольку позволяет исполнить произвольный код. Использование данной функции не рекомендуется. Если вы полностью убеждены, что нет иного способа воспроизведения необходимого функционала, обратите особое внимание на исключения обработки таким образом данных, вводимых пользователем, без специальной обработки и валидации.

Список параметров

code

Исполняемая строка кода PHP.

Код не должен быть обрамлен открывающимся и закрывающимся тегами PHP, т.е. строка должна быть, например, такой 'echo "Привет!";', но не такой '<?php echo "Привет!"; >'. Возможно переключаться между режимами PHP и HTML кода, например 'echo "Код PHP!"; ?>Код HTML<?php echo "Снова код PHP!";'.

Передаваемый код должен быть верный исполняемым кодом PHP. Это значит, что операторы должны быть разделены точкой с запятой (;). При исполнении строки 'echo "Привет!"' будет сгенерирована ошибка, а строка 'echo "Привет!";' будет успешно выполнена.

Указание в коде ключевого слова return прекращает исполнение кода в строке.

Исполняемый код из строки будет выполняться в области видимости кода, вызвавшего eval(). Таким образом, любые переменные, определенные или измененные кодом, выполненным eval(), будут доступны после его выполнения в теле программы.

Возвращаемые значения

Функция eval() возвращает NULL пока не вызывается return, в случае чего возвращается значение, переданное return. С PHP 7, если в исполняемом коде присутствует ошибка, то eval() вызывает исключение "ParseError", до PHP 7, в этом случае возвращается FALSE и продолжается нормальное выполнение последующего кода. Ошибку обработки кода парсером невозможно использовать в set_error_handler().

Примеры

Пример #1 Пример функции eval() - простое слияние текста

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>

Результат выполнения данного примера:

This is a $string with my $name in it.
This is a cup with my coffee in it.

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Подсказка

Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в string.

Замечание:

В случае фатальной ошибки в исполняемом коде прекращается исполнение всего скрипта.

Смотрите также

  • call_user_func() - Вызывает пользовательскую функцию, указанную в первом параметре


Выводит сообщение и прекращает выполнение текущего скрипта

  • « eval
  • get_browser »
  • PHP Manual
  • Разные Функции
  • Выводит сообщение и прекращает выполнение текущего скрипта

exit

(PHP 4, PHP 5, PHP 7)

exit — Выводит сообщение и прекращает выполнение текущего скрипта

Описание

void exit ([ string $status ] )
void exit ( int $status )

Прекращает выполнение скрипта. Функции отключения и деструкторы объекта будут запущены даже если была вызвана конструкция exit.

exit - это конструкция языка, и она может быть вызвана без круглых скобок если не передается параметр status.

Список параметров

status

Если параметр status задан в виде строки, то эта функция выведет содержимое status перед выходом.

Если параметр status задан в виде целого числа (integer), то это значение будет использовано как статус выхода и не будет выведено. Статусы выхода должны быть в диапазоне от 0 до 254, статус выхода 255 зарезервирован PHP и не должен использоваться. Статус выхода 0 используется для успешного завершения программы.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования exit

<?php

$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
    or exit("Невозможно открыть файл ($filename)");

?>

Пример #2 Пример использования exit со статусом выхода

<?php

//нормальный выход из программы
exit;
exit();
exit(0);

//выход с кодом ошибки
exit(1);
exit(0376); //восьмеричный

?>

Пример #3 Функции выключения и деструкторы выполняются независимо

<?php
class Foo
{
    public function __destruct()
    {
        echo 'Деинициализировать: ' . __METHOD__ . '()' . PHP_EOL;
    }
}

function shutdown()
{
    echo 'Завершить: ' . __FUNCTION__ . '()' . PHP_EOL;
}

$foo = new Foo();
register_shutdown_function('shutdown');

exit();
echo 'Эта строка не будет выведена.';
?>

Результат выполнения данного примера:

 Завершить: shutdown()
 Деинициализировать: Foo::__destruct()

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Замечание:

Эта языковая конструкция эквивалентна функции die().

Смотрите также

  • register_shutdown_function() - Регистрирует функцию, которая выполнится по завершении работы скрипта


Сообщает о возможностях браузера пользователя

  • « exit
  • __halt_compiler »
  • PHP Manual
  • Разные Функции
  • Сообщает о возможностях браузера пользователя

get_browser

(PHP 4, PHP 5, PHP 7)

get_browser — Сообщает о возможностях браузера пользователя

Описание

mixed get_browser ([ string $user_agent [, bool $return_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(), обновление страницы и проверка значения.

Примеры

Пример #1 Вывод информации о браузере пользователя

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";

$browser = get_browser(null, true);
print_r($browser);
?>

Результатом выполнения данного примера будет что-то подобное:

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [cssversion] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)

Примечания

Замечание:

Для работы этой функции необходимо, чтобы в установке browscap в настройках php.ini был установлен корректный путь к файлу browscap.ini в вашей системе.

browscap.ini не поставляется с PHP, но вы можете последнюю его версию здесь: » php_browscap.ini.

browscap.ini содержит информацию о большинстве браузеров, он требует обновлений для поддержания его базы актуальной Формат файла довольно очевиден.


Останавливает работу компилятора

  • « get_browser
  • highlight_file »
  • PHP Manual
  • Разные Функции
  • Останавливает работу компилятора

__halt_compiler

(PHP 5 >= 5.1.0, PHP 7)

__halt_compiler — Останавливает работу компилятора

Описание

void __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)

highlight_file — Подсветка синтаксиса файла

Описание

mixed highlight_file ( string $filename [, bool $return = false ] )

Выводит или возвращает версию с подсветкой синтаксиса кода, содержащегося в файле filename, используя цвета определенные во встроенной подсветке синтаксиса PHP.

Большинство серверов сконфигурированы автоматически подсвечивать файлы с расширением phps. К примеру, при отображении файла example.phps будет выведен код с подсветкой синтаксиса. Для включения добавьте следующую строку в httpd.conf:

AddType application/x-httpd-php-source .phps

Список параметров

filename

Путь к подсвечиваемому PHP файлу.

return

Установите в этот параметр TRUE для того чтобы функция возвращала подсвеченный код.

Возвращаемые значения

Если в return установлено TRUE, то подсвеченный код возвращается в виде строки, а не отображается. В другом случае будет возвращено TRUE, либо FALSE при ошибке.

Список изменений

Версия | Описание
4.2.1 | На данный момент на эту функцию также воздействуют режимы safe_mode и open_basedir.

Примечания

Предостережение

Необходимо пользоваться функцией highlight_file() с должным вниманием, с тем чтобы по неосторожности не раскрыть конфиденциальную информацию, такую как пароли или любую другую информацию, которая может создать потенциальную угрозу безопасности.

Замечание:

При использовании параметра return данная функция использует внутреннюю буферизацию вывода, поэтому она не может быть использована внутри callback-функции ob_start().

Смотрите также

  • highlight_string() - Подсветка синтаксиса строки
  • Подсвечивание INI директив


Подсветка синтаксиса строки

  • « highlight_file
  • ignore_user_abort »
  • PHP Manual
  • Разные Функции
  • Подсветка синтаксиса строки

highlight_string

(PHP 4, PHP 5, PHP 7)

highlight_string — Подсветка синтаксиса строки

Описание

mixed highlight_string ( string $str [, bool $return = false ] )

Выводит или возвращает PHP код с разметкой html для подсвеченного синтаксиса, используя цвета, определенные во встроенном обработчике подсветки синтаксиса PHP.

Список параметров

str

Подсвечиваемый PHP код, который должен включать открывающий тег.

return

При установке этого параметра равным TRUE функция возвращает код с подсветкой синтаксиса.

Возвращаемые значения

Если параметр return равен TRUE, то, вместо вывода, в виде строки возвращается код с подсветкой синтаксиса. В другом случае возвращает TRUE, либо FALSE при ошибке.

Примеры

Пример #1 Пример использования highlight_string()

<?php
highlight_string('<?php phpinfo(); ?>');
?>

Результат выполнения данного примера:

<code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php phpinfo</span><span style="color: #007700">(); </span><span style="color: #0000BB">?&gt;</span>
</span>
</code>

Примечания

Замечание:

При использовании параметра return данная функция использует внутреннюю буферизацию вывода, поэтому она не может быть использована внутри callback-функции ob_start().

Разметку HTML можно изменять.

Смотрите также

  • highlight_file() - Подсветка синтаксиса файла
  • Подсветка INI директив


Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента

  • « highlight_string
  • pack »
  • PHP Manual
  • Разные Функции
  • Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента

ignore_user_abort

(PHP 4, PHP 5, PHP 7)

ignore_user_abort — Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента

Описание

int ignore_user_abort ([ bool $value ] )

Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента.

При работе с PHP скриптом в командной строке, когда терминал скрипта отключается без прерывания работы скрипта, скрипт будет остановлен, если параметр value не равен TRUE

Список параметров

value

Если параметр задан, то функция устанавливает заданный параметр value функции ignore_user_abort в ini настройку. Если же параметр не задано, то функция вернут предыдущее значение без его изменения.

Возвращаемые значения

Возвращает предыдущее значение в виде целого числа.

Примеры

Пример #1 Пример использования ignore_user_abort()

<?php
// Игнорирует отключение пользователя и позволяет скрипту
// быть запущенным постоянно
ignore_user_abort(true);
set_time_limit(0);

echo 'Тестирование управления соединением PHP';

// Запуск бесконечного цикла,
// который будет завершен при выходе со страницы
// либо при нажатии кнопки "Stop".
while(1)
{
    // Завершено ли соединение?
    if(connection_status() != CONNECTION_NORMAL)
    {
        break;
    }

    // Пауза на 10 секунд
    sleep(10);
}

// Если скрипт достиг этой строки, то была
// выполнена функция 'break' из цикла while

// Здесь можно производить журналирование, либо
// выполнять другие необходимые операции независимо
// от браузера.
?>

Примечания

PHP не сможет определить обрыв пользователем соединения пока не будет произведена попытка отправки информации клиенту. Простое использование выражения echo не гарантирует отправку информации, см. функцию flush().

Смотрите также

  • connection_aborted() - Проверяет подключение клиента
  • connection_status() - Возвращает статус соединения в битах
  • См. Управление Соединением для получения более детальной информации по управлению соединениями в PHP.


Упаковывает данные в бинарную строку

  • « ignore_user_abort
  • php_check_syntax »
  • PHP Manual
  • Разные Функции
  • Упаковывает данные в бинарную строку

pack

(PHP 4, PHP 5, PHP 7)

pack — Упаковывает данные в бинарную строку

Описание

string pack ( string $format [, mixed $args [, mixed $... ]] )

Упаковывает заданные аргументы в бинарную строку согласно формату в параметре 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 (машинно-зависимые размер и представление)
d | double (машинно-зависимые размер и представление)
x | NUL байт
X | Резервирование одного байта
Z | Строка (string) с NUL-заполнением (добавлено в PHP 5.5)
@ NUL-заполнение до абсолютной позиции

args

Возвращаемые значения

Возвращает бинарную строку, содержащую данные.

Список изменений

Версия | Описание
5.6.3 | Добавлены коды "q", "Q", "J" и "P" для поддержки 64-bit чисел.
5.5.0 | Добавлен код "Z", работающий аналогично "a" для совместимости с Perl.

Примеры

Пример #1 Пример использования pack()

<?php
$binarydata = pack("nvc*", 0x1234, 0x5678, 65, 66);
?>

Полученная бинарная строка длиной 6 байт будет содержать последовательность байтов 0x12, 0x34, 0x78, 0x56, 0x41, 0x42.

Примечания

Предостережение

Необходимо отметить, что PHP сохраняет значения типа integer как знаковые с машинно-зависимым размером (C тип long). Все числа, переданные как integer, но выходящие за границы этого типа будут сохранены с типом float. При упаковке этих float как integer, они будут переданы с типом integer. Это может как совпадать, так и нет с заданным шаблоном.

Наиболее частым является случай, когда упаковываются беззнаковые числа типа integer. В системах, где integer имеет размер в 32 бита, число обычно передается по тому же шаблону, как если бы integer был беззнаковым (хотя, это зависит от определенных преобразований из знаковое в беззнаковое, согласно стандарту С). В системах, где тип integer имеет размер в 64 бита, тип float не имеет мантиссы, достаточной по размеру для хранения значения без потери точности. Если эти системы также имеют простой 64-битный С тип int (большинство UNIX систем не имеют), то единственным путем для использования формата I в верхнем разряде является создание отрицательных integer значений с тем же представлением как и в определенном беззнаковом значении.

Смотрите также

  • unpack() - Распаковывает данные из бинарной строки


Проверяет (и запускает) PHP синтаксис указанного файла

  • « pack
  • php_strip_whitespace »
  • PHP Manual
  • Разные Функции
  • Проверяет (и запускает) PHP синтаксис указанного файла

php_check_syntax

(PHP 5 <= 5.0.4)

php_check_syntax — Проверяет (и запускает) PHP синтаксис указанного файла

Описание

bool php_check_syntax ( string $filename [, string &$error_message ] )

Выполняет проверку синтаксиса (производит верификацию) файла, указанного в filename проверяя ошибки в коде.

Действие похоже на использование php -l из командной строки, исключая то, что эта функция запустит (но не выведет) проверяемый файл из filename.

К примеру, если функция определена в filename, то эта функция будет доступна после в файле, из которого производится запуск функции php_check_syntax(), но вывод из файла, указанного в filename будет невозможен.

Замечание:

По техническим причинам эта функция устарела и удалена из PHP. Вместо этой функции используйте php -l somefile.php из командной строки.

Список параметров

filename

Имя проверяемого файла.

error_message

Если используется параметр error_message, то в нем будет содержаться сообщение об ошибке, сформированное при проверке синтаксиса. error_message передается по ссылке.

Возвращаемые значения

Возвращает TRUE если проверка пройдена, и FALSE если возникла ошибка или файл из filename недоступен.

Список изменений

Версия | Описание
5.0.5 | Эта функция была удалена из PHP.
5.0.3 | Вызов функции exit() после php_check_syntax() передает результат в Segfault.
5.0.1 | error_message передается по ссылке.

Примеры

php -l somefile.php

Результатом выполнения данного примера будет что-то подобное:

PHP Parse error: unexpected T_STRING in /tmp/somefile.php on line 81

Смотрите также

  • include - include
  • is_readable() - Определяет существование файла и доступен ли он для чтения


Возвращает исходный код без комментариев и пробелов

  • « php_check_syntax
  • show_source »
  • PHP Manual
  • Разные Функции
  • Возвращает исходный код без комментариев и пробелов

php_strip_whitespace

(PHP 5, PHP 7)

php_strip_whitespace — Возвращает исходный код без комментариев и пробелов

Описание

string php_strip_whitespace ( string $filename )

Возвращает исходный код PHP в файл (filename) исключая комментарии и пробелы. Эта функция может быть полезной для определения актуального объема чистого кода в скриптах по сравнению с объемом комментариев. Функция аналогична использованию php -w из командной строки.

Список параметров

filename

Путь к PHP файлу.

Возвращаемые значения

Возвращает очищенный исходный код, или пустую строку в случае ошибки.

Замечание:

Эта функция работает как описано в PHP 5.0.1. Перед этим может быть возвращена пустая строка. Для более детальной информации смотрите отчет об ошибках » #29606.

Примеры

Пример #1 Пример использования php_strip_whitespace()

<?php
// PHP комментарий

/*
 * Другой PHP комментарий
 */

echo        php_strip_whitespace(__FILE__);
// Символы новой строки считаются пробелами, и также удаляются:
do_nothing();
?>

Результат выполнения данного примера:

<?php
 echo php_strip_whitespace(__FILE__); do_nothing(); ?>

В результате выполнения примера выведен исходный код PHP, исключая комментарии, пробелы и пустые строки.


Псевдоним highlight_file

  • « php_strip_whitespace
  • sleep »
  • PHP Manual
  • Разные Функции
  • Псевдоним highlight_file

show_source

(PHP 4, PHP 5, PHP 7)

show_source — Псевдоним highlight_file()

Описание

Эта функция является псевдонимом: highlight_file().


Откладывает выполнение

  • « show_source
  • sys_getloadavg »
  • PHP Manual
  • Разные Функции
  • Откладывает выполнение

sleep

(PHP 4, PHP 5, PHP 7)

sleep — Откладывает выполнение

Описание

int sleep ( int $seconds )

Откладывает исполнение программы на число секунд, заданное параметром seconds.

Список параметров

seconds

Время остановки в секундах.

Возвращаемые значения

Возвращает 0 при успешном выполнении или FALSE при ошибке.

Если вызов был прерван сигналом, функция sleep() возвратит значение, не равное нулю. В Windows это значение всегда будет равно 192 (значение константы Windows API WAIT_IO_COMPLETION). На других платформах возвращаемое значение будет числом оставшихся секунд.

Ошибки

Если указанное число секунд в параметре seconds отрицательно, то функция создаст исключение уровня E_WARNING.

Список изменений

Версия | Описание
5.3.4 | До версии PHP 5.3.4 функция sleep() в Windows всегда возвращала NULL после завершения ожидания, независимо от того было ли прервано выполнение функции или нет.

Примеры

Пример #1 Пример использования sleep()

<?php

// текущее время
echo date('h:i:s') . "\n";

// ожидание в течениe 10 секунд
sleep(10);

// завершение ожидания
echo date('h:i:s') . "\n";

?>

Этот пример выведет (через 10 секунд)

05:31:23
05:31:33

Смотрите также

  • usleep() - Откладывает выполнение на микросекунды
  • time_nanosleep() - Откладывает исполнение на заданное число секунд и наносекунд
  • time_sleep_until() - Откладывает исполнение скрипта до заданного времени
  • set_time_limit() - Ограничение времени выполнения скрипта


Получает среднюю загрузку системы

  • « sleep
  • time_nanosleep »
  • PHP Manual
  • Разные Функции
  • Получает среднюю загрузку системы

sys_getloadavg

(PHP 5 >= 5.1.3, PHP 7)

sys_getloadavg — Получает среднюю загрузку системы

Описание

array sys_getloadavg ( void )

Возвращает информацию о средней загрузке системы (число процессов в очереди системных процессов) через 1, 5 и 15 минут соответственно.

Возвращаемые значения

Возвращает массив (array), содержащий информацию за последние 1, 5 и 15 минут.

Примеры

Пример #1 Пример использования sys_getloadavg()

<?php
$load = sys_getloadavg();
if ($load[0] > 0.80) {
    header('HTTP/1.1 503 Too busy, try again later');
    die('Server too busy. Please try again later.');
}
?>

Примечания

Замечание: Для Windows-платформ эта функция не реализована.


Откладывает исполнение на заданное число секунд и наносекунд

  • « sys_getloadavg
  • time_sleep_until »
  • PHP Manual
  • Разные Функции
  • Откладывает исполнение на заданное число секунд и наносекунд

time_nanosleep

(PHP 5, PHP 7)

time_nanosleep — Откладывает исполнение на заданное число секунд и наносекунд

Описание

mixed time_nanosleep ( int $seconds , int $nanoseconds )

Откладывает исполнение программы на заданные в параметрах seconds и nanoseconds число секунд и наносекунд соответственно.

Список параметров

seconds

Должно быть целым положительным числом.

nanoseconds

Должно быть целым положительным числом, меньшим одного миллиарда.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Если отложенное исполнение было прервано сигналом, то возвращается ассоциативный массив со следующими компонентами:

  • seconds - число оставшихся секунд
  • nanoseconds - число оставшихся наносекунд

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь доступна на платформах Windows.

Примеры

Пример #1 Пример использования time_nanosleep()

<?php
// Внимание! Если будет возвращен массив, то такая функция не сработает как ожидалось
if (time_nanosleep(0, 500000000)) {
    echo "Задержка на пол-секунды.\n";
}

// Так лучше:
if (time_nanosleep(0, 500000000) === true) {
    echo "Задержка на пол-секунды.\n";
}

// И так лучше всего:
$nano = time_nanosleep(2, 100000);

if ($nano === true) {
    echo "Задержка на 2 секунды, 100 микросекунд.\n";
} elseif ($nano === false) {
    echo "Задержка не удалась.\n";
} elseif (is_array($nano)) {
    $seconds = $nano['seconds'];
    $nanoseconds = $nano['nanoseconds'];
    echo "Прервано сигналом.\n";
    echo "Осталось: $seconds секунд, $nanoseconds наносекунд.";
}
?>

Смотрите также

  • sleep() - Откладывает выполнение
  • usleep() - Откладывает выполнение на микросекунды
  • time_sleep_until() - Откладывает исполнение скрипта до заданного времени
  • set_time_limit() - Ограничение времени выполнения скрипта


Откладывает исполнение скрипта до заданного времени

  • « time_nanosleep
  • uniqid »
  • PHP Manual
  • Разные Функции
  • Откладывает исполнение скрипта до заданного времени

time_sleep_until

(PHP 5 >= 5.1.0, PHP 7)

time_sleep_until — Откладывает исполнение скрипта до заданного времени

Описание

bool time_sleep_until ( float $timestamp )

Откладывает исполнение скрипта до заданной отметки времени, указанной в параметре timestamp.

Список параметров

timestamp

Отметка времени продолжения исполнения скрипта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь доступна на Windows платформах.

Ошибки

Если указанная временная отметка timestamp просрочена, то функция создаст исключение уровня E_WARNING.

Примеры

Пример #1 Пример использования time_sleep_until()

<?php

//возвращает false и выводит предупреждение
var_dump(time_sleep_until(time()-1));

// может работать только на быстродействующих компьютерах, выполнение отложено до 0.2 секунд
var_dump(time_sleep_until(microtime(true)+0.2));

?>

Примечания

Замечание: Все сигналы будут доставлены после продолжения исполнения скрипта.

Смотрите также

  • sleep() - Откладывает выполнение
  • usleep() - Откладывает выполнение на микросекунды
  • time_nanosleep() - Откладывает исполнение на заданное число секунд и наносекунд
  • set_time_limit() - Ограничение времени выполнения скрипта


Генерирует уникальный ID

  • « time_sleep_until
  • unpack »
  • PHP Manual
  • Разные Функции
  • Генерирует уникальный ID

uniqid

(PHP 4, PHP 5, PHP 7)

uniqid — Генерирует уникальный ID

Описание

string uniqid ([ string $prefix = "" [, bool $more_entropy = false ]] )

Получает уникальный идентификатор с префиксом, основанный на текущем времени в микросекундах.

Предостережение

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функций random_int(), random_bytes(), или openssl_random_pseudo_bytes() вместо данной.

Внимание

Эта функция не гарантирует получения уникального значения. Большинство операционных систем синхронизирует время с NTP, либо его аналогами, так что системное время постоянно меняется. Следовательно возможна ситуация, когда эта функция вернет неуникальный идентификатор для процесса/потока. Для увеличения вероятности получения уникального значения используйте параметр more_entropy.

Список параметров

prefix

Может быть полезно, к примеру, если идентификаторы генерируются одновременно на нескольких хостах и генерация идентификаторов производится в одну и ту же микросекунду.

С пустым параметром prefix, возвращаемая строка будет длиной в 13 символов. Если параметр more_entropy равен TRUE, то строка будет длиной в 23 символа.

more_entropy

Если равен TRUE, то функция uniqid() добавит дополнительную энтропию (используя комбинированный линейный конгруэнтный генератор) в конце возвращаемого значения, что увеличивает вероятность уникальности результата.

Возвращаемые значения

Возвращает уникальный идентификатор в виде строки (string).

Внимание

Эта функция пытается создать уникальный идентификатор, но не дает 100% гарантии уникальности.

Примеры

Пример #1 Пример использования uniqid()

<?php
/* Уникальный id, например: 4b3403665fea6 */
printf("uniqid(): %s\r\n", uniqid());

/* Префикс к уникальному id можно добавить одним
 * из следующих способов:
 *
 * $uniqid = $prefix . uniqid();
 * $uniqid = uniqid($prefix);
 */
printf("uniqid('php_'): %s\r\n", uniqid('php_'));

/* Также можно активировать параметр большей энтропии, который
 * требуется на некоторых системах, таких как Cygwin. Таким образом
 * функция uniqid() сгенерирует значение: 4b340550242239.64159797
 */
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>

Примечания

Замечание:

В Cygwin, параметр more_entropy должен быть задан как TRUE для работы этой функции.


Распаковывает данные из бинарной строки

  • « uniqid
  • usleep »
  • PHP Manual
  • Разные Функции
  • Распаковывает данные из бинарной строки

unpack

(PHP 4, PHP 5, PHP 7)

unpack — Распаковывает данные из бинарной строки

Описание

array unpack ( string $format , string $data )

Распаковывает данные из бинарной строки в массив согласно заданному в format формату.

Распакованные данные хранятся в ассоциативном массиве. Для осуществления этого необходимо обозначить различные коды форматов и разделить их с помощью слеша "/". Можно также передать замещающий аргумент, с помощью которого каждый ключ массива будет иметь порядковый номер после обозначенного имени ключа.

Список параметров

format

См. функцию pack() для разъяснения кодов форматов.

data

Упакованные данные.

Возвращаемые значения

Возвращает ассоциативный массив, содержащий распакованные элементы бинарной строки.

Список изменений

Версия | Описание
5.5.0 | Для поддержания совместимости с Perl сделано следующее: Код "a" теперь сохраняет завершающие NULL байты. Код "A" теперь удаляет все завершающие ASCII пробельные символы (пробелы, табуляцию, переносы строк, возврат каретки, и NULL байты). Код "Z" добавлен для NULL-дополненными строками, и удаляет завершающие NULL байты.

Примеры

Пример #1 Пример использования unpack()

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("cchars/nint", $binarydata);
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [chars] => 4
    [int] => 160
)

Пример #2 Пример использования unpack() с замещающим аргументом

<?php
$binarydata = "\x04\x00\xa0\x00";
$array = unpack("c2chars/nint", $binarydata);
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [chars1] => 4
    [chars2] => 0
    [int] => 40960
)

Примечания

Предостережение

Необходимо отметить, что PHP хранит значения как signed. Если распаковать large unsigned long и оно будет иметь тот же размер, что и хранимое PHP значение, то результатом будет отрицательное число, даже если было указано распаковывать как unsigned.

Предостережение

Если не обозначить элемент, то будут использованы числовые индексы начиная с 1. Если не обозначить более чем один элемент, то это значит, что некоторые данные будут перезаписаны, так как нумерация стартует с 1 для каждого такого элемента.

Пример #3 Пример использования unpack() с безымянными ключами

<?php
$binarydata = "\x32\x42\x00\xa0";
$array = unpack("c2/n", $binarydata);
var_dump($array);
?>

Результат выполнения данного примера:

array(2) {
  [1]=>
  int(160)
  [2]=>
  int(66)
}

Обратите внимание, что первое значение из спецификатора c перезаписывается первым значением из спецификатора n.

Смотрите также

  • pack() - Упаковывает данные в бинарную строку


Откладывает выполнение на микросекунды

  • « unpack
  • Список изменений »
  • PHP Manual
  • Разные Функции
  • Откладывает выполнение на микросекунды

usleep

(PHP 4, PHP 5, PHP 7)

usleep — Откладывает выполнение на микросекунды

Описание

void usleep ( int $micro_seconds )

Откладывает выполнение программы на указанное число микросекунд.

Список параметров

micro_seconds

Время откладываемого исполнения в микросекундах. Микросекунда - это одна миллионная секунды.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования usleep()

<?php

// Текущее время
echo date('h:i:s') . "\n";

// ждать 2 секунды
usleep(2000000);

// вернуться к исполнению
echo date('h:i:s') . "\n";

?>

Результат выполнения данного примера:

11:13:28
11:13:30

Смотрите также

  • sleep() - Откладывает выполнение
  • time_nanosleep() - Откладывает исполнение на заданное число секунд и наносекунд
  • time_sleep_until() - Откладывает исполнение скрипта до заданного времени
  • set_time_limit() - Ограничение времени выполнения скрипта


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного расширения.

Version | Function | Description
7.0.0 | define | Допустимы значения типа array.
5.6.3 | pack | Добавлены коды "q", "Q", "J" и "P" для поддержки 64-bit чисел.
5.5.0 | pack | Добавлен код "Z", работающий аналогично "a" для совместимости с Perl.
 | unpack | Для поддержания совместимости с Perl сделано следующее: Код "a" теперь сохраняет завершающие NULL байты. Код "A" теперь удаляет все завершающие ASCII пробельные символы (пробелы, табуляцию, переносы строк, возврат каретки, и NULL байты). Код "Z" добавлен для NULL-дополненными строками, и удаляет завершающие NULL байты.
5.3.4 | sleep | До версии PHP 5.3.4 функция sleep в Windows всегда возвращала NULL после завершения ожидания, независимо от того было ли прервано выполнение функции или нет.
5.3.0 | time_nanosleep | Эта функция теперь доступна на платформах Windows.
 | time_sleep_until | Эта функция теперь доступна на Windows платформах.
5.0.5 | php_check_syntax | Эта функция была удалена из PHP.
5.0.3 | php_check_syntax | Вызов функции exit после php_check_syntax передает результат в Segfault.
5.0.1 | php_check_syntax | error_message передается по ссылке.
4.2.1 | highlight_file | На данный момент на эту функцию также воздействуют режимы safe_mode и open_basedir.


Parsekit

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Parsekit Функции
    • parsekit_compile_file — Compile a PHP file and return the resulting op array
    • parsekit_compile_string — Compile a string of PHP code and return the resulting op array
    • parsekit_func_arginfo — Return information regarding function argument(s)


Введение

These functions allow runtime analysis of opcodes compiled from PHP scripts.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/parsekit.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

PARSEKIT_QUIET (int)
Return full detail, but without unnecessary NULL entries.
PARSEKIT_SIMPLE (int)
Return shorthand opcode notation.
PARSEKIT_EXTENDED_VALUE (int)
Opnode Flag
PARSEKIT_RESULT_CONST (int)
Opnode Flag
PARSEKIT_RESULT_EA_TYPE (int)
Opnode Flag
PARSEKIT_RESULT_JMP_ADDR (int)
Opnode Flag
PARSEKIT_RESULT_OPARRAY (int)
Opnode Flag
PARSEKIT_RESULT_OPLINE (int)
Opnode Flag
PARSEKIT_RESULT_VAR (int)
Opnode Flag
PARSEKIT_USAGE_UNKNOWN (int)
Opnode Flag
PARSEKIT_ZEND_INTERNAL_CLASS (int)
Class Type
PARSEKIT_ZEND_USER_CLASS (int)
Class Type
PARSEKIT_ZEND_EVAL_CODE (int)
Function Type
PARSEKIT_ZEND_INTERNAL_FUNCTION (int)
Function Type
PARSEKIT_ZEND_OVERLOADED_FUNCTION (int)
Function Type
PARSEKIT_ZEND_OVERLOADED_FUNCTION_TEMPORARY (int) PHP >= 5.0.0
Function Type
PARSEKIT_ZEND_USER_FUNCTION (int)
Function Type
PARSEKIT_IS_CONST (int)
Node Type
PARSEKIT_IS_TMP_VAR (int)
Node Type
PARSEKIT_IS_UNUSED (int)
Node Type
PARSEKIT_IS_VAR (int)
Node Type
PARSEKIT_ZEND_ADD (int)
Opcode
PARSEKIT_ZEND_ADD_ARRAY_ELEMENT (int)
Opcode
PARSEKIT_ZEND_ADD_CHAR (int)
Opcode
PARSEKIT_ZEND_ADD_INTERFACE (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ADD_STRING (int)
Opcode
PARSEKIT_ZEND_ADD_VAR (int)
Opcode
PARSEKIT_ZEND_ASSIGN (int)
Opcode
PARSEKIT_ZEND_ASSIGN_ADD (int)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_AND (int)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_OR (int)
Opcode
PARSEKIT_ZEND_ASSIGN_BW_XOR (int)
Opcode
PARSEKIT_ZEND_ASSIGN_CONCAT (int)
Opcode
PARSEKIT_ZEND_ASSIGN_DIM (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ASSIGN_DIV (int)
Opcode
PARSEKIT_ZEND_ASSIGN_MOD (int)
Opcode
PARSEKIT_ZEND_ASSIGN_MUL (int)
Opcode
PARSEKIT_ZEND_ASSIGN_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ASSIGN_REF (int)
Opcode
PARSEKIT_ZEND_ASSIGN_SL (int)
Opcode
PARSEKIT_ZEND_ASSIGN_SR (int)
Opcode
PARSEKIT_ZEND_ASSIGN_SUB (int)
Opcode
PARSEKIT_ZEND_BEGIN_SILENCE (int)
Opcode
PARSEKIT_ZEND_BOOL (int)
Opcode
PARSEKIT_ZEND_BOOL_NOT (int)
Opcode
PARSEKIT_ZEND_BOOL_XOR (int)
Opcode
PARSEKIT_ZEND_BRK (int)
Opcode
PARSEKIT_ZEND_BW_AND (int)
Opcode
PARSEKIT_ZEND_BW_NOT (int)
Opcode
PARSEKIT_ZEND_BW_OR (int)
Opcode
PARSEKIT_ZEND_BW_XOR (int)
Opcode
PARSEKIT_ZEND_CASE (int)
Opcode
PARSEKIT_ZEND_CAST (int)
Opcode
PARSEKIT_ZEND_CATCH (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_CLONE (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_CONCAT (int)
Opcode
PARSEKIT_ZEND_CONT (int)
Opcode
PARSEKIT_ZEND_DECLARE_CLASS (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DECLARE_FUNCTION (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DECLARE_INHERITED_CLASS (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_DIV (int)
Opcode
PARSEKIT_ZEND_DO_FCALL (int)
Opcode
PARSEKIT_ZEND_DO_FCALL_BY_NAME (int)
Opcode
PARSEKIT_ZEND_ECHO (int)
Opcode
PARSEKIT_ZEND_END_SILENCE (int)
Opcode
PARSEKIT_ZEND_EXIT (int)
Opcode
PARSEKIT_ZEND_EXT_FCALL_BEGIN (int)
Opcode
PARSEKIT_ZEND_EXT_FCALL_END (int)
Opcode
PARSEKIT_ZEND_EXT_NOP (int)
Opcode
PARSEKIT_ZEND_EXT_STMT (int)
Opcode
PARSEKIT_ZEND_FETCH_CLASS (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_FETCH_CONSTANT (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_FUNC_ARG (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_IS (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_R (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_RW (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_TMP_VAR (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_UNSET (int)
Opcode
PARSEKIT_ZEND_FETCH_DIM_W (int)
Opcode
PARSEKIT_ZEND_FETCH_FUNC_ARG (int)
Opcode
PARSEKIT_ZEND_FETCH_IS (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_FUNC_ARG (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_IS (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_R (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_RW (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_UNSET (int)
Opcode
PARSEKIT_ZEND_FETCH_OBJ_W (int)
Opcode
PARSEKIT_ZEND_FETCH_R (int)
Opcode
PARSEKIT_ZEND_FETCH_RW (int)
Opcode
PARSEKIT_ZEND_FETCH_UNSET (int)
Opcode
PARSEKIT_ZEND_FETCH_W (int)
Opcode
PARSEKIT_ZEND_FE_FETCH (int)
Opcode
PARSEKIT_ZEND_FE_RESET (int)
Opcode
PARSEKIT_ZEND_FREE (int)
Opcode
PARSEKIT_ZEND_HANDLE_EXCEPTION (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_CLASS (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_CONST (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IMPORT_FUNCTION (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INCLUDE_OR_EVAL (int)
Opcode
PARSEKIT_ZEND_INIT_ARRAY (int)
Opcode
PARSEKIT_ZEND_INIT_CTOR_CALL (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_FCALL_BY_NAME (int)
Opcode
PARSEKIT_ZEND_INIT_METHOD_CALL (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_STATIC_METHOD_CALL (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_INIT_STRING (int)
Opcode
PARSEKIT_ZEND_INSTANCEOF (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY (int) PHP < 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_DIM_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_PROP_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_ISSET_ISEMPTY_VAR (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_IS_EQUAL (int)
Opcode
PARSEKIT_ZEND_IS_IDENTICAL (int)
Opcode
PARSEKIT_ZEND_IS_NOT_EQUAL (int)
Opcode
PARSEKIT_ZEND_IS_NOT_IDENTICAL (int)
Opcode
PARSEKIT_ZEND_IS_SMALLER (int)
Opcode
PARSEKIT_ZEND_IS_SMALLER_OR_EQUAL (int)
Opcode
PARSEKIT_ZEND_JMP (int)
Opcode
PARSEKIT_ZEND_JMPNZ (int)
Opcode
PARSEKIT_ZEND_JMPNZ_EX (int)
Opcode
PARSEKIT_ZEND_JMPZ (int)
Opcode
PARSEKIT_ZEND_JMPZNZ (int)
Opcode
PARSEKIT_ZEND_JMPZ_EX (int)
Opcode
PARSEKIT_ZEND_JMP_NO_CTOR (int)
Opcode
PARSEKIT_ZEND_MOD (int)
Opcode
PARSEKIT_ZEND_MUL (int)
Opcode
PARSEKIT_ZEND_NEW (int)
Opcode
PARSEKIT_ZEND_NOP (int)
Opcode
PARSEKIT_ZEND_OP_DATA (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_POST_DEC (int)
Opcode
PARSEKIT_ZEND_POST_DEC_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_POST_INC (int)
Opcode
PARSEKIT_ZEND_POST_INC_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRE_DEC (int)
Opcode
PARSEKIT_ZEND_PRE_DEC_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRE_INC (int)
Opcode
PARSEKIT_ZEND_PRE_INC_OBJ (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_PRINT (int)
Opcode
PARSEKIT_ZEND_QM_ASSIGN (int)
Opcode
PARSEKIT_ZEND_RAISE_ABSTRACT_ERROR (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_RECV (int)
Opcode
PARSEKIT_ZEND_RECV_INIT (int)
Opcode
PARSEKIT_ZEND_RETURN (int)
Opcode
PARSEKIT_ZEND_SEND_REF (int)
Opcode
PARSEKIT_ZEND_SEND_VAL (int)
Opcode
PARSEKIT_ZEND_SEND_VAR (int)
Opcode
PARSEKIT_ZEND_SEND_VAR_NO_REF (int)
Opcode
PARSEKIT_ZEND_SL (int)
Opcode
PARSEKIT_ZEND_SR (int)
Opcode
PARSEKIT_ZEND_SUB (int)
Opcode
PARSEKIT_ZEND_SWITCH_FREE (int)
Opcode
PARSEKIT_ZEND_THROW (int) PHP >= 5.0.0
Opcode
PARSEKIT_ZEND_TICKS (int)
Opcode
PARSEKIT_ZEND_UNSET_DIM_OBJ (int)
Opcode
PARSEKIT_ZEND_UNSET_VAR (int)
Opcode
PARSEKIT_ZEND_VERIFY_ABSTRACT_CLASS (int) PHP >= 5.0.0
Opcode


Parsekit Функции

Содержание

  • parsekit_compile_file — Compile a PHP file and return the resulting op array
  • parsekit_compile_string — Compile a string of PHP code and return the resulting op array
  • parsekit_func_arginfo — Return information regarding function argument(s)


Compile a PHP file and return the resulting op array

  • « Parsekit Функции
  • parsekit_compile_string »
  • PHP Manual
  • Parsekit Функции
  • Compile a PHP file and return the resulting op array

parsekit_compile_file

(PECL parsekit >= 0.2.0)

parsekit_compile_file — Compile a PHP file and return the resulting op array

Описание

array parsekit_compile_file ( string $filename [, array &$errors [, int $options = PARSEKIT_QUIET ]] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

filename

A string containing the name of the file to compile. Similar to the argument to include.

errors

A 2D hash of errors (including fatal errors) encountered during compilation. Returned by reference.

options

One of either PARSEKIT_QUIET or PARSEKIT_SIMPLE. To produce varying degrees of verbosity in the returned output.

Возвращаемые значения

Returns a complex multi-layer array structure as detailed below.

Примеры

Пример #1 parsekit_compile_file() example

<?php
var_dump(parsekit_compile_file('hello_world.php', $errors, PARSEKIT_SIMPLE));
?>

Результат выполнения данного примера:

array(5) {
  [0]=>
  string(37) "ZEND_ECHO UNUSED 'Hello World' UNUSED"
  [1]=>
  string(30) "ZEND_RETURN UNUSED NULL UNUSED"
  [2]=>
  string(42) "ZEND_HANDLE_EXCEPTION UNUSED UNUSED UNUSED"
  ["function_table"]=>
  NULL
  ["class_table"]=>
  NULL
}

Смотрите также

  • parsekit_compile_string() - Compile a string of PHP code and return the resulting op array


Compile a string of PHP code and return the resulting op array

  • « parsekit_compile_file
  • parsekit_func_arginfo »
  • PHP Manual
  • Parsekit Функции
  • Compile a string of PHP code and return the resulting op array

parsekit_compile_string

(PECL parsekit >= 0.2.0)

parsekit_compile_string — Compile a string of PHP code and return the resulting op array

Описание

array parsekit_compile_string ( string $phpcode [, array &$errors [, int $options = PARSEKIT_QUIET ]] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

phpcode

A string containing phpcode. Similar to the argument to eval().

errors

A 2D hash of errors (including fatal errors) encountered during compilation. Returned by reference.

options

One of either PARSEKIT_QUIET or PARSEKIT_SIMPLE. To produce varying degrees of verbosity in the returned output.

Возвращаемые значения

Returns a complex multi-layer array structure as detailed below.

Примеры

Пример #1 parsekit_compile_string() example

<?php
  $ops = parsekit_compile_string('
echo "Foo\n";
', $errors, PARSEKIT_QUIET);

  var_dump($ops);
?>

Результат выполнения данного примера:

array(20) {
  ["type"]=>
  int(4)
  ["type_name"]=>
  string(14) "ZEND_EVAL_CODE"
  ["fn_flags"]=>
  int(0)
  ["num_args"]=>
  int(0)
  ["required_num_args"]=>
  int(0)
  ["pass_rest_by_reference"]=>
  bool(false)
  ["uses_this"]=>
  bool(false)
  ["line_start"]=>
  int(0)
  ["line_end"]=>
  int(0)
  ["return_reference"]=>
  bool(false)
  ["refcount"]=>
  int(1)
  ["last"]=>
  int(3)
  ["size"]=>
  int(3)
  ["T"]=>
  int(0)
  ["last_brk_cont"]=>
  int(0)
  ["current_brk_cont"]=>
  int(-1)
  ["backpatch_count"]=>
  int(0)
  ["done_pass_two"]=>
  bool(true)
  ["filename"]=>
  string(17) "Parsekit Compiler"
  ["opcodes"]=>
  array(3) {
    [8594800]=>
    array(5) {
      ["opcode"]=>
      int(40)
      ["opcode_name"]=>
      string(9) "ZEND_ECHO"
      ["flags"]=>
      int(768)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &string(4) "Foo
"
      }
      ["lineno"]=>
      int(2)
    }
    ["859484C"]=>
    array(6) {
      ["opcode"]=>
      int(62)
      ["opcode_name"]=>
      string(11) "ZEND_RETURN"
      ["flags"]=>
      int(16777984)
      ["op1"]=>
      array(3) {
        ["type"]=>
        int(1)
        ["type_name"]=>
        string(8) "IS_CONST"
        ["constant"]=>
        &NULL
      }
      ["extended_value"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
    [8594898]=>
    array(4) {
      ["opcode"]=>
      int(149)
      ["opcode_name"]=>
      string(21) "ZEND_HANDLE_EXCEPTION"
      ["flags"]=>
      int(0)
      ["lineno"]=>
      int(3)
    }
  }
}

Смотрите также

  • parsekit_compile_file() - Compile a PHP file and return the resulting op array


Return information regarding function argument(s)

  • « parsekit_compile_string
  • SPL »
  • PHP Manual
  • Parsekit Функции
  • Return information regarding function argument(s)

parsekit_func_arginfo

(PECL parsekit >= 0.3.0)

parsekit_func_arginfo — Return information regarding function argument(s)

Описание

array parsekit_func_arginfo ( mixed $function )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

function

A string describing a function, or an array describing a class/method.

Возвращаемые значения

Returns an array containing argument information.

Примеры

Пример #1 parsekit_func_arginfo() example

<?php
function foo($bar, stdClass $baz, &$bomb, $bling = false) {
}

var_dump(parsekit_func_arginfo('foo'));
?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  array(3) {
    ["name"]=>
    string(3) "bar"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
  [1]=>
  array(4) {
    ["name"]=>
    string(3) "baz"
    ["class_name"]=>
    string(8) "stdClass"
    ["allow_null"]=>
    bool(false)
    ["pass_by_reference"]=>
    bool(false)
  }
  [2]=>
  array(3) {
    ["name"]=>
    string(4) "bomb"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(true)
  }
  [3]=>
  array(3) {
    ["name"]=>
    string(5) "bling"
    ["allow_null"]=>
    bool(true)
    ["pass_by_reference"]=>
    bool(false)
  }
}


Стандартная библиотека 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 — The InvalidArgumentException class
    • 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 — Возвращает хеш-идентификатор для объекта
  • Обработка файлов
    • SplFileInfo — Класс SplFileInfo
    • SplFileObject — Класс SplFileObject
    • SplTempFileObject — Класс SplTempFileObject
  • Различные Классы и Интерфейсы
    • ArrayObject — Класс ArrayObject
    • SplObserver — Интерфейс SplObserver
    • SplSubject — Интерфейс SplSubject


Введение

Стандартная библиотека PHP (SPL) - это набор интерфейсов и классов, предназначенных для решения стандартных задач.

Не требуется никаких внешних библиотек для сборки этого расширения, и оно доступно по умолчанию в PHP 5.0.0 и выше.

SPL предоставляет ряд стандартных структур данных, итераторов для оббегания объектов, интерфейсов, стандартных исключений, некоторое количество классов для работы с файлами и предоставляет ряд функций, например spl_autoload_register().


Установка

Это расширение доступно и включено по умолчанию начиная с версии PHP 5.0.0.

Замечание:

Начиная с версии PHP 5.3.0 данное расширение не может быть отключено и доступно всегда.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Внимание

Начиная с версии PHP 5.1 в SPL используются константы класса. Для предыдущих версий - глобальные константы в виде RIT_LEAVES_ONLY.


Структуры данных

Содержание

  • SplDoublyLinkedList
  • SplStack
  • SplQueue
  • SplHeap
  • SplMaxHeap
  • SplMinHeap
  • SplPriorityQueue
  • SplFixedArray
  • SplObjectStorage

SPL предоставляет набор стандартных структур данных. Они сгруппированы здесь по своей базовой реализации, которая обычно определяет их общую область применения.

Двусвязные списки

Двусвязный список (DLL) - это список узлов, связанных в обоих направлениях друг между другом. Операции итератора, доступ к обоим концам, добавление или удаление узлов стоимостью O(1), когда основная структура является DLL. Следовательно, он обеспечивает хорошую реализацию для стеков и очередей.

  • SplDoublyLinkedList
    • SplStack
    • SplQueue

Кучи

Кучи являются древовидными структурами, что следует из свойства кучи: каждый узел больше или равен своим потомкам, при этом для сравнения используется внедренный метод сравнения, который является общим для всей кучи.

  • SplHeap
    • SplMaxHeap
    • SplMinHeap
  • SplPriorityQueue

Массивы

Массивы - структуры, которые хранят данные в непрерывном виде, доступные через индексы. Не путайте их с массивами PHP: последние на самом деле реализованы в виде упорядоченных хэш-таблиц.

  • SplFixedArray

Карта

Карта - это структура данных, содержащая пары ключ-значение. Массивы PHP можно рассматривать как карты, отображающие целые/строковые данные в их значения. SPL предоставляет карту, отображающую объекты к данным. Эта карта также может быть использована как множество объектов.

  • SplObjectStorage


Класс SplDoublyLinkedList

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplDoublyLinkedList обеспечивает основные функциональные возможности двусвязного списка.

Обзор классов

SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Методы */
public __construct ( void )
public void add ( mixed $index , mixed $newval )
public mixed bottom ( void )
public int count ( void )
public mixed current ( void )
public int getIteratorMode ( void )
public bool isEmpty ( void )
public mixed key ( void )
public void next ( void )
public bool offsetExists ( mixed $index )
public mixed offsetGet ( mixed $index )
public void offsetSet ( mixed $index , mixed $newval )
public void offsetUnset ( mixed $index )
public mixed pop ( void )
public void prev ( void )
public void push ( mixed $value )
public void rewind ( void )
public string serialize ( void )
public void setIteratorMode ( int $mode )
public mixed shift ( void )
public mixed top ( void )
public void unserialize ( string $serialized )
public void unshift ( mixed $value )
public bool valid ( void )
}

Содержание

  • SplDoublyLinkedList::add — Добавляет/вставляет новое значение по указанному индексу
  • SplDoublyLinkedList::bottom — Получает узел, находящийся в начале двусвязного списка
  • SplDoublyLinkedList::__construct — Создает новый двусвязный список
  • SplDoublyLinkedList::count — Подсчитывает количество элементов в двусвязном списке
  • SplDoublyLinkedList::current — Возвращает текущий элемент массива
  • SplDoublyLinkedList::getIteratorMode — Возвращает режим итерации
  • SplDoublyLinkedList::isEmpty — Проверяет, является ли двусвязный список пустым
  • SplDoublyLinkedList::key — Возвращает индекс текущего узла
  • SplDoublyLinkedList::next — Перемещает итератор к следующему элементу
  • SplDoublyLinkedList::offsetExists — Проверяет, существует ли запрашиваемый индекс
  • SplDoublyLinkedList::offsetGet — Возвращает значение по указанному индексу
  • SplDoublyLinkedList::offsetSet — Устанавливает значение по заданному индексу $index в $newval
  • SplDoublyLinkedList::offsetUnset — Удаляет значение по указанному индексу $index
  • SplDoublyLinkedList::pop — Удаляет (выталкивает) узел, находящийся в конце двусвязного списка
  • SplDoublyLinkedList::prev — Перемещает итератор к предыдущему элементу
  • SplDoublyLinkedList::push — Помещает элемент в конец двусвязного списка
  • SplDoublyLinkedList::rewind — Возвращает итератор в начало
  • SplDoublyLinkedList::serialize — Сериализует хранилище
  • SplDoublyLinkedList::setIteratorMode — Устанавливает режим итерации
  • SplDoublyLinkedList::shift — Удаляет узел, находящийся в начале двусвязного списка
  • SplDoublyLinkedList::top — Получает узел, находящийся в конце двусвязного списка
  • SplDoublyLinkedList::unserialize — Десериализует хранилище
  • SplDoublyLinkedList::unshift — Вставляет элемент в начало двусвязного списка
  • SplDoublyLinkedList::valid — Проверяет, содержит ли узлы двусвязный список


Добавляет/вставляет новое значение по указанному индексу

  • « SplDoublyLinkedList
  • SplDoublyLinkedList::bottom »
  • PHP Manual
  • SplDoublyLinkedList
  • Добавляет/вставляет новое значение по указанному индексу

SplDoublyLinkedList::add

(PHP 5 >= 5.5.0, PHP 7)

SplDoublyLinkedList::add — Добавляет/вставляет новое значение по указанному индексу

Описание

public void SplDoublyLinkedList::add ( mixed $index , mixed $newval )

Вставляет значение newval по указанному индексу index. Предыдущее значение (и все последующие), смещаются вверх по списку.

Список параметров

index

Индекс, по которому надо вставить значение.

newval

Значение, которое надо вставить по индексу index.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Вызывает исключение OutOfRangeException если index за пределами списка, либо если index невозможно преобразовать к целому.


Получает узел, находящийся в начале двусвязного списка

  • « SplDoublyLinkedList::add
  • SplDoublyLinkedList::__construct »
  • PHP Manual
  • SplDoublyLinkedList
  • Получает узел, находящийся в начале двусвязного списка

SplDoublyLinkedList::bottom

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::bottom — Получает узел, находящийся в начале двусвязного списка

Описание

public mixed SplDoublyLinkedList::bottom ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение первого узла.

Ошибки

Бросает исключение RuntimeException, когда структура данных пуста.


Создает новый двусвязный список

  • « SplDoublyLinkedList::bottom
  • SplDoublyLinkedList::count »
  • PHP Manual
  • SplDoublyLinkedList
  • Создает новый двусвязный список

SplDoublyLinkedList::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::__construct — Создает новый двусвязный список

Описание

public SplDoublyLinkedList::__construct ( void )

Создает новый пустой двусвязный список.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplDoublyLinkedList::__construct()

<?php
$dll = new SplDoublyLinkedList();

$dll->push(2);
$dll->push(3);
$dll->unshift(5);

var_dump($dll);
?>

Результат выполнения данного примера:

object(SplDoublyLinkedList)#1 (2) {
  ["flags":"SplDoublyLinkedList":private]=>
  int(0)
  ["dllist":"SplDoublyLinkedList":private]=>
  array(3) {
    [0]=>
    int(5)
    [1]=>
    int(2)
    [2]=>
    int(3)
  }
}


Подсчитывает количество элементов в двусвязном списке

  • « SplDoublyLinkedList::__construct
  • SplDoublyLinkedList::current »
  • PHP Manual
  • SplDoublyLinkedList
  • Подсчитывает количество элементов в двусвязном списке

SplDoublyLinkedList::count

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::count — Подсчитывает количество элементов в двусвязном списке

Описание

public int SplDoublyLinkedList::count ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество элементов в двусвязном списке.


Возвращает текущий элемент массива

  • « SplDoublyLinkedList::count
  • SplDoublyLinkedList::getIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает текущий элемент массива

SplDoublyLinkedList::current

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::current — Возвращает текущий элемент массива

Описание

public mixed SplDoublyLinkedList::current ( void )

Получает текущий узел двусвязного списка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего узла.


Возвращает режим итерации

  • « SplDoublyLinkedList::current
  • SplDoublyLinkedList::isEmpty »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает режим итерации

SplDoublyLinkedList::getIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::getIteratorMode — Возвращает режим итерации

Описание

public int SplDoublyLinkedList::getIteratorMode ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает различные режимы и флаги, влияющие на итерацию.


Проверяет, является ли двусвязный список пустым

  • « SplDoublyLinkedList::getIteratorMode
  • SplDoublyLinkedList::key »
  • PHP Manual
  • SplDoublyLinkedList
  • Проверяет, является ли двусвязный список пустым

SplDoublyLinkedList::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::isEmpty — Проверяет, является ли двусвязный список пустым

Описание

public bool SplDoublyLinkedList::isEmpty ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает результат проверки двусвязного списка на пустоту.


Возвращает индекс текущего узла

  • « SplDoublyLinkedList::isEmpty
  • SplDoublyLinkedList::next »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает индекс текущего узла

SplDoublyLinkedList::key

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::key — Возвращает индекс текущего узла

Описание

public mixed SplDoublyLinkedList::key ( void )

Возвращает индекс текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего узла.


Перемещает итератор к следующему элементу

  • « SplDoublyLinkedList::key
  • SplDoublyLinkedList::offsetExists »
  • PHP Manual
  • SplDoublyLinkedList
  • Перемещает итератор к следующему элементу

SplDoublyLinkedList::next

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::next — Перемещает итератор к следующему элементу

Описание

public void SplDoublyLinkedList::next ( void )

Перемещает итератор к следующему узлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Проверяет, существует ли запрашиваемый индекс

  • « SplDoublyLinkedList::next
  • SplDoublyLinkedList::offsetGet »
  • PHP Manual
  • SplDoublyLinkedList
  • Проверяет, существует ли запрашиваемый индекс

SplDoublyLinkedList::offsetExists

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetExists — Проверяет, существует ли запрашиваемый индекс

Описание

public bool SplDoublyLinkedList::offsetExists ( mixed $index )

Список параметров

index

Проверяемый индекс.

Возвращаемые значения

TRUE если запрашиваемый индекс index существует, в противном случае FALSE


Возвращает значение по указанному индексу

  • « SplDoublyLinkedList::offsetExists
  • SplDoublyLinkedList::offsetSet »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает значение по указанному индексу

SplDoublyLinkedList::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetGet — Возвращает значение по указанному индексу

Описание

public mixed SplDoublyLinkedList::offsetGet ( mixed $index )

Список параметров

index

Индекс.

Возвращаемые значения

Значение указанного индекса index.

Ошибки

Бросает исключение OutOfRangeException, когда index выходит за границы, или когда index не может быть представлен в виде целого числа.


Устанавливает значение по заданному индексу $index в $newval

  • « SplDoublyLinkedList::offsetGet
  • SplDoublyLinkedList::offsetUnset »
  • PHP Manual
  • SplDoublyLinkedList
  • Устанавливает значение по заданному индексу $index в $newval

SplDoublyLinkedList::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetSet — Устанавливает значение по заданному индексу $index в $newval

Описание

public void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )

Устанавливает значение по заданному индексу index в newval.

Список параметров

index

Индекс.

newval

Новое значение для индекса index.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Бросает исключение OutOfRangeException, когда index выходит за границы, или когда index не может быть представлен в виде целого числа.


Удаляет значение по указанному индексу $index

  • « SplDoublyLinkedList::offsetSet
  • SplDoublyLinkedList::pop »
  • PHP Manual
  • SplDoublyLinkedList
  • Удаляет значение по указанному индексу $index

SplDoublyLinkedList::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::offsetUnset — Удаляет значение по указанному индексу $index

Описание

public void SplDoublyLinkedList::offsetUnset ( mixed $index )

Удаляет значение по указанному индексу.

Список параметров

index

Индекс, для которого удаляется значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Бросает исключение OutOfRangeException, когда index выходит за границы, или когда index не может быть представлен в виде целого числа.


Удаляет (выталкивает) узел, находящийся в конце двусвязного списка

  • « SplDoublyLinkedList::offsetUnset
  • SplDoublyLinkedList::prev »
  • PHP Manual
  • SplDoublyLinkedList
  • Удаляет (выталкивает) узел, находящийся в конце двусвязного списка

SplDoublyLinkedList::pop

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::pop — Удаляет (выталкивает) узел, находящийся в конце двусвязного списка

Описание

public mixed SplDoublyLinkedList::pop ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение удаленного узла.

Ошибки

Бросает исключение RuntimeException, когда структура данных пуста.


Перемещает итератор к предыдущему элементу

  • « SplDoublyLinkedList::pop
  • SplDoublyLinkedList::push »
  • PHP Manual
  • SplDoublyLinkedList
  • Перемещает итератор к предыдущему элементу

SplDoublyLinkedList::prev

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::prev — Перемещает итератор к предыдущему элементу

Описание

public void SplDoublyLinkedList::prev ( void )

Перемещает итератор к предыдущему узлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Помещает элемент в конец двусвязного списка

  • « SplDoublyLinkedList::prev
  • SplDoublyLinkedList::rewind »
  • PHP Manual
  • SplDoublyLinkedList
  • Помещает элемент в конец двусвязного списка

SplDoublyLinkedList::push

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::push — Помещает элемент в конец двусвязного списка

Описание

public void SplDoublyLinkedList::push ( mixed $value )

Помещает value в конец двусвязного списка.

Список параметров

value

Значения для добавления.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает итератор в начало

  • « SplDoublyLinkedList::push
  • SplDoublyLinkedList::serialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Возвращает итератор в начало

SplDoublyLinkedList::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::rewind — Возвращает итератор в начало

Описание

public void SplDoublyLinkedList::rewind ( void )

Возвращает итератор в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Сериализует хранилище

  • « SplDoublyLinkedList::rewind
  • SplDoublyLinkedList::setIteratorMode »
  • PHP Manual
  • SplDoublyLinkedList
  • Сериализует хранилище

SplDoublyLinkedList::serialize

(PHP 5 >= 5.4.0, PHP 7)

SplDoublyLinkedList::serialize — Сериализует хранилище

Описание

public string SplDoublyLinkedList::serialize ( void )

Сериализует хранилище.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованная строка.

Смотрите также

  • SplDoublyLinkedList::unserialize() - Десериализует хранилище


Устанавливает режим итерации

  • « SplDoublyLinkedList::serialize
  • SplDoublyLinkedList::shift »
  • PHP Manual
  • SplDoublyLinkedList
  • Устанавливает режим итерации

SplDoublyLinkedList::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::setIteratorMode — Устанавливает режим итерации

Описание

public void SplDoublyLinkedList::setIteratorMode ( int $mode )

Список параметров

mode

Существуют два ортогональных набора режимов, которые могут быть установлены:

  • Направление итерации (одно из двух):
    • SplDoublyLinkedList::IT_MODE_LIFO (Стек)
    • SplDoublyLinkedList::IT_MODE_FIFO (Очередь)
  • Поведение итератора (одно из двух):
    • SplDoublyLinkedList::IT_MODE_DELETE (Элементы удаляются итератором)
    • SplDoublyLinkedList::IT_MODE_KEEP (Итератор обходит элементы, не удаляя их)

По умолчанию используется режим: SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Удаляет узел, находящийся в начале двусвязного списка

  • « SplDoublyLinkedList::setIteratorMode
  • SplDoublyLinkedList::top »
  • PHP Manual
  • SplDoublyLinkedList
  • Удаляет узел, находящийся в начале двусвязного списка

SplDoublyLinkedList::shift

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::shift — Удаляет узел, находящийся в начале двусвязного списка

Описание

public mixed SplDoublyLinkedList::shift ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение удаленного узла.

Ошибки

Бросает исключение RuntimeException, когда структура данных пуста.


Получает узел, находящийся в конце двусвязного списка

  • « SplDoublyLinkedList::shift
  • SplDoublyLinkedList::unserialize »
  • PHP Manual
  • SplDoublyLinkedList
  • Получает узел, находящийся в конце двусвязного списка

SplDoublyLinkedList::top

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::top — Получает узел, находящийся в конце двусвязного списка

Описание

public mixed SplDoublyLinkedList::top ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение последнего узла.

Ошибки

Бросает исключение RuntimeException, когда структура данных пуста.


Десериализует хранилище

  • « SplDoublyLinkedList::top
  • SplDoublyLinkedList::unshift »
  • PHP Manual
  • SplDoublyLinkedList
  • Десериализует хранилище

SplDoublyLinkedList::unserialize

(PHP 5 >= 5.4.0, PHP 7)

SplDoublyLinkedList::unserialize — Десериализует хранилище

Описание

public void SplDoublyLinkedList::unserialize ( string $serialized )

Десериализует хранилище из строкового представления, полученного с помощью SplDoublyLinkedList::serialize().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

serialized

Сериализованная строка.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SplDoublyLinkedList::serialize() - Сериализует хранилище


Вставляет элемент в начало двусвязного списка

  • « SplDoublyLinkedList::unserialize
  • SplDoublyLinkedList::valid »
  • PHP Manual
  • SplDoublyLinkedList
  • Вставляет элемент в начало двусвязного списка

SplDoublyLinkedList::unshift

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::unshift — Вставляет элемент в начало двусвязного списка

Описание

public void SplDoublyLinkedList::unshift ( mixed $value )

Вставляет value в начало двусвязного списка.

Список параметров

value

Значение, добавляемое в начало.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Проверяет, содержит ли узлы двусвязный список

  • « SplDoublyLinkedList::unshift
  • SplStack »
  • PHP Manual
  • SplDoublyLinkedList
  • Проверяет, содержит ли узлы двусвязный список

SplDoublyLinkedList::valid

(PHP 5 >= 5.3.0, PHP 7)

SplDoublyLinkedList::valid — Проверяет, содержит ли узлы двусвязный список

Описание

public bool SplDoublyLinkedList::valid ( void )

Проверяет, содержит ли еще узлы двусвязный список.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если двусвязный список содержит узлы после текущего указателя, FALSE в противном случае.


Класс SplStack

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplStack предоставляет основные функциональные возможности стека, реализованные с использованием двусвязного списка.

Обзор классов

SplStack extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Методы */
__construct ( void )
void setIteratorMode ( int $mode )
/* Наследуемые методы */
public void SplDoublyLinkedList::add ( mixed $index , mixed $newval )
public mixed SplDoublyLinkedList::bottom ( void )
public int SplDoublyLinkedList::count ( void )
public mixed SplDoublyLinkedList::current ( void )
public int SplDoublyLinkedList::getIteratorMode ( void )
public bool SplDoublyLinkedList::isEmpty ( void )
public mixed SplDoublyLinkedList::key ( void )
public void SplDoublyLinkedList::next ( void )
public bool SplDoublyLinkedList::offsetExists ( mixed $index )
public mixed SplDoublyLinkedList::offsetGet ( mixed $index )
public void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )
public void SplDoublyLinkedList::offsetUnset ( mixed $index )
public mixed SplDoublyLinkedList::pop ( void )
public void SplDoublyLinkedList::prev ( void )
public void SplDoublyLinkedList::push ( mixed $value )
public void SplDoublyLinkedList::rewind ( void )
public string SplDoublyLinkedList::serialize ( void )
public void SplDoublyLinkedList::setIteratorMode ( int $mode )
public mixed SplDoublyLinkedList::shift ( void )
public mixed SplDoublyLinkedList::top ( void )
public void SplDoublyLinkedList::unserialize ( string $serialized )
public void SplDoublyLinkedList::unshift ( mixed $value )
public bool SplDoublyLinkedList::valid ( void )
}

Содержание

  • SplStack::__construct — Создает новый стек, реализованный с использованием двусвязного списка
  • SplStack::setIteratorMode — Устанавливает режим итератора


Создает новый стек, реализованный с использованием двусвязного списка

  • « SplStack
  • SplStack::setIteratorMode »
  • PHP Manual
  • SplStack
  • Создает новый стек, реализованный с использованием двусвязного списка

SplStack::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplStack::__construct — Создает новый стек, реализованный с использованием двусвязного списка

Описание

SplStack::__construct ( void )

Создаёт новый пустой стек.

Замечание:

Этот метод автоматически устанавливает режим итератора SplDoublyLinkedList::IT_MODE_LIFO.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplStack::__construct()

<?php
$q = new SplStack();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach ($q as $elem)  {
 echo $elem."\n";
}
?>

Результат выполнения данного примера:

3
2
1


Устанавливает режим итератора

  • « SplStack::__construct
  • SplQueue »
  • PHP Manual
  • SplStack
  • Устанавливает режим итератора

SplStack::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplStack::setIteratorMode — Устанавливает режим итератора

Описание

void SplStack::setIteratorMode ( int $mode )

Список параметров

mode

Можно изменить только один параметр итератора.

  • Поведение итератора (либо одно, либо другое):
    • SplDoublyLinkedList::IT_MODE_DELETE (Элементы удаляются итератором)
    • SplDoublyLinkedList::IT_MODE_KEEP (Итератор обходит элементы, не удаляя их)

По умолчанию используется режим 0x2 : SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyLinkedList::IT_MODE_KEEP

Внимание

Направление итерации не может быть изменено для объектов SplStack. Попытка сделать это приведет к тому, что будет выброшено RuntimeException.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс SplQueue

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplQueue предоставляет основные функциональные возможности очереди, реализованные с использованием двусвязного списка.

Обзор классов

SplQueue extends SplDoublyLinkedList implements Iterator , ArrayAccess , Countable {
/* Методы */
__construct ( void )
mixed dequeue ( void )
void enqueue ( mixed $value )
void setIteratorMode ( int $mode )
/* Наследуемые методы */
public void SplDoublyLinkedList::add ( mixed $index , mixed $newval )
public mixed SplDoublyLinkedList::bottom ( void )
public int SplDoublyLinkedList::count ( void )
public mixed SplDoublyLinkedList::current ( void )
public int SplDoublyLinkedList::getIteratorMode ( void )
public bool SplDoublyLinkedList::isEmpty ( void )
public mixed SplDoublyLinkedList::key ( void )
public void SplDoublyLinkedList::next ( void )
public bool SplDoublyLinkedList::offsetExists ( mixed $index )
public mixed SplDoublyLinkedList::offsetGet ( mixed $index )
public void SplDoublyLinkedList::offsetSet ( mixed $index , mixed $newval )
public void SplDoublyLinkedList::offsetUnset ( mixed $index )
public mixed SplDoublyLinkedList::pop ( void )
public void SplDoublyLinkedList::prev ( void )
public void SplDoublyLinkedList::push ( mixed $value )
public void SplDoublyLinkedList::rewind ( void )
public string SplDoublyLinkedList::serialize ( void )
public void SplDoublyLinkedList::setIteratorMode ( int $mode )
public mixed SplDoublyLinkedList::shift ( void )
public mixed SplDoublyLinkedList::top ( void )
public void SplDoublyLinkedList::unserialize ( string $serialized )
public void SplDoublyLinkedList::unshift ( mixed $value )
public bool SplDoublyLinkedList::valid ( void )
}

Содержание

  • SplQueue::__construct — Создает новую очередь, реализованную с использованием двусвязного списка
  • SplQueue::dequeue — Удаляет элемент из очереди
  • SplQueue::enqueue — Добавляет элемент в очередь
  • SplQueue::setIteratorMode — Устанавливает режим итератора


Создает новую очередь, реализованную с использованием двусвязного списка

  • « SplQueue
  • SplQueue::dequeue »
  • PHP Manual
  • SplQueue
  • Создает новую очередь, реализованную с использованием двусвязного списка

SplQueue::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::__construct — Создает новую очередь, реализованную с использованием двусвязного списка

Описание

SplQueue::__construct ( void )

Создаёт новую пустую очередь.

Замечание:

Этот метод автоматически устанавливает режим итератора SplDoublyLinkedList::IT_MODE_FIFO.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplQueue::__construct()

<?php
$q = new SplQueue();

$q[] = 1;
$q[] = 2;
$q[] = 3;

foreach ($q as $elem)  {
 echo $elem."\n";
}
?>

Результат выполнения данного примера:

1
2
3

Пример #2 Эффективная обработка задач с помощью SplQueue

<?php
$q = new SplQueue();
$q->setIteratorMode(SplQueue::IT_MODE_DELETE);

// ... поставить несколько задач в очередь ...

// обработать их
foreach ($q as $task) {
    // ... обработать $task ...

    // добавить новые задачи в очередь
    $q[] = $newTask;
    // ...
}
?>


Удаляет элемент из очереди

  • « SplQueue::__construct
  • SplQueue::enqueue »
  • PHP Manual
  • SplQueue
  • Удаляет элемент из очереди

SplQueue::dequeue

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::dequeue — Удаляет элемент из очереди

Описание

mixed SplQueue::dequeue ( void )

Удаляет value из начала очереди.

Замечание:

SplQueue::dequeue() - псевдоним SplDoublyLinkedList::shift().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение удаленного из очереди элемента.


Добавляет элемент в очередь

  • « SplQueue::dequeue
  • SplQueue::setIteratorMode »
  • PHP Manual
  • SplQueue
  • Добавляет элемент в очередь

SplQueue::enqueue

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::enqueue — Добавляет элемент в очередь

Описание

void SplQueue::enqueue ( mixed $value )

Добавляет value в конец очереди.

Замечание:

SplQueue::enqueue() - псевдоним SplDoublyLinkedList::push().

Список параметров

value

Значение для постановки в очередь.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает режим итератора

  • « SplQueue::enqueue
  • SplHeap »
  • PHP Manual
  • SplQueue
  • Устанавливает режим итератора

SplQueue::setIteratorMode

(PHP 5 >= 5.3.0, PHP 7)

SplQueue::setIteratorMode — Устанавливает режим итератора

Описание

void SplQueue::setIteratorMode ( int $mode )

Список параметров

mode

Можно изменить только один параметр итератора.

  • Поведение итератора (либо одно, либо другое):
    • SplDoublyLinkedList::IT_MODE_DELETE (Элементы удаляются итератором)
    • SplDoublyLinkedList::IT_MODE_KEEP (Итератор обходит элементы, не удаляя их)

По умолчанию используется режим: SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP

Внимание

Направление итерации не может быть изменено для объектов SplQueue, оно всегда равно SplDoublyLinkedList::IT_MODE_FIFO.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Бросает RuntimeException при попытке изменить направление итерации на отличное от SplDoublyLinkedList::IT_MODE_LIFO.


Класс SplHeap

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplHeap предоставляет основные функциональные возможности кучи.

Обзор классов

abstract SplHeap implements Iterator , Countable {
/* Методы */
public __construct ( void )
abstract protected int compare ( mixed $value1 , mixed $value2 )
public int count ( void )
public mixed current ( void )
public mixed extract ( void )
public void insert ( mixed $value )
public bool isEmpty ( void )
public mixed key ( void )
public void next ( void )
public void recoverFromCorruption ( void )
public void rewind ( void )
public mixed top ( void )
public bool valid ( void )
}

Содержание

  • SplHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче
  • SplHeap::__construct — Создает новую пустую кучу
  • SplHeap::count — Определяет количество элементов в куче
  • SplHeap::current — Возвращает текущий узел, на который указывает итератор
  • SplHeap::extract — Извлекает узел из кучи и пересортирует ее
  • SplHeap::insert — Вставляет элемент в кучу и пересортирует ее
  • SplHeap::isEmpty — Проверка, пуста ли куча
  • SplHeap::key — Возвращает индекс текущего узла
  • SplHeap::next — Переход к следующему узлу
  • SplHeap::recoverFromCorruption — Восстанавливает корректное состояние кучи
  • SplHeap::rewind — Перевод итератора на начало
  • SplHeap::top — Возвращает узел находящийся на вершине кучи
  • SplHeap::valid — Проверяет, содержит ли куча еще элементы


Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

  • « SplHeap
  • SplHeap::__construct »
  • PHP Manual
  • SplHeap
  • Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

SplHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

Описание

abstract protected int SplHeap::compare ( mixed $value1 , mixed $value2 )

Сравнивает value1 с value2.

Внимание

Вызов исключений в методе SplHeap::compare() может нарушить целостность кучи и перевести ее в заблокированное состояние. Разблокировать кучу можно методом SplHeap::recoverFromCorruption(). Однако, некоторые элементы могут быть помещены некорректно, что нарушит сортировку внутри кучи.

Список параметров

value1

Значение первого сравниваемого узла.

value2

Значение второго сравниваемого узла.

Возвращаемые значения

Метод должен возвращать положительное значение, когда value1 больше value2, 0 если они равны, и отрицательное в остальных случаях.

Замечание:

Помещению в кучу одинаковых элементов нежелательно, так как невозможно будет отследить точное положение конкретного элемента.


Создает новую пустую кучу

  • « SplHeap::compare
  • SplHeap::count »
  • PHP Manual
  • SplHeap
  • Создает новую пустую кучу

SplHeap::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::__construct — Создает новую пустую кучу

Описание

public SplHeap::__construct ( void )

Создает новую пустую кучу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Определяет количество элементов в куче

  • « SplHeap::__construct
  • SplHeap::current »
  • PHP Manual
  • SplHeap
  • Определяет количество элементов в куче

SplHeap::count

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::count — Определяет количество элементов в куче

Описание

public int SplHeap::count ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество элементов в куче.


Возвращает текущий узел, на который указывает итератор

  • « SplHeap::count
  • SplHeap::extract »
  • PHP Manual
  • SplHeap
  • Возвращает текущий узел, на который указывает итератор

SplHeap::current

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::current — Возвращает текущий узел, на который указывает итератор

Описание

public mixed SplHeap::current ( void )

Получает текущий элемент, представляющий собой структуру данных.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение узла.


Извлекает узел из кучи и пересортирует ее

  • « SplHeap::current
  • SplHeap::insert »
  • PHP Manual
  • SplHeap
  • Извлекает узел из кучи и пересортирует ее

SplHeap::extract

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::extract — Извлекает узел из кучи и пересортирует ее

Описание

public mixed SplHeap::extract ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение извлеченного узла.

Ошибки

Если структура данных узла окажется пустой, будет выброшено исключение RuntimeException.


Вставляет элемент в кучу и пересортирует ее

  • « SplHeap::extract
  • SplHeap::isEmpty »
  • PHP Manual
  • SplHeap
  • Вставляет элемент в кучу и пересортирует ее

SplHeap::insert

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::insert — Вставляет элемент в кучу и пересортирует ее

Описание

public void SplHeap::insert ( mixed $value )

Вставляет value в кучу.

Список параметров

value

Значение, которое требуется вставить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Проверка, пуста ли куча

  • « SplHeap::insert
  • SplHeap::key »
  • PHP Manual
  • SplHeap
  • Проверка, пуста ли куча

SplHeap::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::isEmpty — Проверка, пуста ли куча

Описание

public bool SplHeap::isEmpty ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Определяет, есть ли в куче элементы.


Возвращает индекс текущего узла

  • « SplHeap::isEmpty
  • SplHeap::next »
  • PHP Manual
  • SplHeap
  • Возвращает индекс текущего узла

SplHeap::key

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::key — Возвращает индекс текущего узла

Описание

public mixed SplHeap::key ( void )

Возвращает индекс текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего узла.


Переход к следующему узлу

  • « SplHeap::key
  • SplHeap::recoverFromCorruption »
  • PHP Manual
  • SplHeap
  • Переход к следующему узлу

SplHeap::next

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::next — Переход к следующему узлу

Описание

public void SplHeap::next ( void )

Переход к следующему узлу. Также удалит узел на вершине кучи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Восстанавливает корректное состояние кучи

  • « SplHeap::next
  • SplHeap::rewind »
  • PHP Manual
  • SplHeap
  • Восстанавливает корректное состояние кучи

SplHeap::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::recoverFromCorruption — Восстанавливает корректное состояние кучи

Описание

public void SplHeap::recoverFromCorruption ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Перевод итератора на начало

  • « SplHeap::recoverFromCorruption
  • SplHeap::top »
  • PHP Manual
  • SplHeap
  • Перевод итератора на начало

SplHeap::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::rewind — Перевод итератора на начало

Описание

public void SplHeap::rewind ( void )

Метод переводит итератор на начало кучи. На самом деле итератор является виртуальным и никуда не двигается с вершины кучи. Так что никаких операций над данными этот метод не совершает.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает узел находящийся на вершине кучи

  • « SplHeap::rewind
  • SplHeap::valid »
  • PHP Manual
  • SplHeap
  • Возвращает узел находящийся на вершине кучи

SplHeap::top

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::top — Возвращает узел находящийся на вершине кучи

Описание

public mixed SplHeap::top ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Узел находящийся на вершине кучи.

Ошибки

Если структура данных узла окажется пустой, будет выброшено исключение RuntimeException.


Проверяет, содержит ли куча еще элементы

  • « SplHeap::top
  • SplMaxHeap »
  • PHP Manual
  • SplHeap
  • Проверяет, содержит ли куча еще элементы

SplHeap::valid

(PHP 5 >= 5.3.0, PHP 7)

SplHeap::valid — Проверяет, содержит ли куча еще элементы

Описание

public bool SplHeap::valid ( void )

Проверяет, содержит ли куча еще элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если элементы в куче еще есть, FALSE в противном случае.


Класс SplMaxHeap

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplMaxHeap предоставляет основные функциональные возможности кучи, сохраняя максимальный элемент наверху.

Обзор классов

SplMaxHeap extends SplHeap implements Iterator , Countable {
/* Методы */
protected int compare ( mixed $value1 , mixed $value2 )
/* Наследуемые методы */
abstract protected int SplHeap::compare ( mixed $value1 , mixed $value2 )
public int SplHeap::count ( void )
public mixed SplHeap::current ( void )
public mixed SplHeap::extract ( void )
public void SplHeap::insert ( mixed $value )
public bool SplHeap::isEmpty ( void )
public mixed SplHeap::key ( void )
public void SplHeap::next ( void )
public void SplHeap::recoverFromCorruption ( void )
public void SplHeap::rewind ( void )
public mixed SplHeap::top ( void )
public bool SplHeap::valid ( void )
}

Содержание

  • SplMaxHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче


Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

  • « SplMaxHeap
  • SplMinHeap »
  • PHP Manual
  • SplMaxHeap
  • Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

SplMaxHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplMaxHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

Описание

protected int SplMaxHeap::compare ( mixed $value1 , mixed $value2 )

Сравнивает value1 с value2.

Список параметров

value1

Значение первого сравниваемого узла.

value2

Значение второго сравниваемого узла.

Возвращаемые значения

Метод возвращает положительное значение, когда value1 больше value2, 0 если они равны, и отрицательное в остальных случаях.

Замечание:

Помещению в кучу одинаковых элементов нежелательно, так как невозможно будет отследить точное положение конкретного элемента.


Класс SplMinHeap

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplMinHeap предоставляет основные функциональные возможности кучи, сохраняя минимальный элемент наверху.

Обзор классов

SplMinHeap extends SplHeap implements Iterator , Countable {
/* Методы */
protectedint compare ( mixed $value1 , mixed $value2 )
/* Наследуемые методы */
abstract protected int SplHeap::compare ( mixed $value1 , mixed $value2 )
public int SplHeap::count ( void )
public mixed SplHeap::current ( void )
public mixed SplHeap::extract ( void )
public void SplHeap::insert ( mixed $value )
public bool SplHeap::isEmpty ( void )
public mixed SplHeap::key ( void )
public void SplHeap::next ( void )
public void SplHeap::recoverFromCorruption ( void )
public void SplHeap::rewind ( void )
public mixed SplHeap::top ( void )
public bool SplHeap::valid ( void )
}

Содержание

  • SplMinHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче


Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

  • « SplMinHeap
  • SplPriorityQueue »
  • PHP Manual
  • SplMinHeap
  • Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

SplMinHeap::compare

(PHP 5 >= 5.3.0, PHP 7)

SplMinHeap::compare — Сравнивает элементы, чтобы во время сортировки корректно разместить их в куче

Описание

protectedint SplMinHeap::compare ( mixed $value1 , mixed $value2 )

Сравнивает value1 с value2.

Список параметров

value1

Значение первого сравниваемого узла.

value2

Значение второго сравниваемого узла.

Возвращаемые значения

Метод возвращает положительное значение, когда value1 больше value2, 0 если они равны, и отрицательное в остальных случаях.

Замечание:

Помещению в кучу одинаковых элементов нежелательно, так как невозможно будет отследить точное положение конкретного элемента.


Класс SplPriorityQueue

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplPriorityQueue обеспечивает основные функциональные возможности приоритетной очереди, реализованный при помощи кучи (max-heap).

Обзор классов

SplPriorityQueue implements Iterator , Countable {
/* Методы */
public __construct ( void )
public int compare ( mixed $priority1 , mixed $priority2 )
public int count ( void )
public mixed current ( void )
public mixed extract ( void )
public void insert ( mixed $value , mixed $priority )
public bool isEmpty ( void )
public mixed key ( void )
public void next ( void )
public void recoverFromCorruption ( void )
public void rewind ( void )
public void setExtractFlags ( int $flags )
public mixed top ( void )
public bool valid ( void )
}

Содержание

  • SplPriorityQueue::compare — Сравнивает приоритеты для корректного помещения элементов в очередь
  • SplPriorityQueue::__construct — Создает новую пустую очередь
  • SplPriorityQueue::count — Производит подсчет элементов в очереди
  • SplPriorityQueue::current — Возвращает текущий узел, на который указывает итератор
  • SplPriorityQueue::extract — Извлекает узел из начала очереди и пересортирует ее
  • SplPriorityQueue::insert — Добавляет элемент в очередь и пересортирует ее
  • SplPriorityQueue::isEmpty — Проверяет, является ли очередь пустой
  • SplPriorityQueue::key — Возвращает индекс текущего узла
  • SplPriorityQueue::next — Переход к следующему узлу
  • SplPriorityQueue::recoverFromCorruption — Восстанавливает корректное состояние очереди
  • SplPriorityQueue::rewind — Переводит итератор на начало очереди
  • SplPriorityQueue::setExtractFlags — Задает режим извлечения узлов
  • SplPriorityQueue::top — Возвращает узел находящийся в начале очереди
  • SplPriorityQueue::valid — Проверяет, есть ли в очереди еще элементы


Сравнивает приоритеты для корректного помещения элементов в очередь

  • « SplPriorityQueue
  • SplPriorityQueue::__construct »
  • PHP Manual
  • SplPriorityQueue
  • Сравнивает приоритеты для корректного помещения элементов в очередь

SplPriorityQueue::compare

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::compare — Сравнивает приоритеты для корректного помещения элементов в очередь

Описание

public int SplPriorityQueue::compare ( mixed $priority1 , mixed $priority2 )

Сравнивает priority1 с priority2.

Список параметров

priority1

Приоритет первого узла.

priority2

Приоритет второго узла.

Возвращаемые значения

Результат сравнения, положительное число, когда priority1 больше priority2, 0 если они равны, и отрицательное число в остальных случаях.

Замечание:

При добавлении нескольких элементов с одинаковым приоритетом точный порядок следования этих элементов в очереди не определен.


Создает новую пустую очередь

  • « SplPriorityQueue::compare
  • SplPriorityQueue::count »
  • PHP Manual
  • SplPriorityQueue
  • Создает новую пустую очередь

SplPriorityQueue::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::__construct — Создает новую пустую очередь

Описание

public SplPriorityQueue::__construct ( void )

Создает новую пустую очередь.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Производит подсчет элементов в очереди

  • « SplPriorityQueue::__construct
  • SplPriorityQueue::current »
  • PHP Manual
  • SplPriorityQueue
  • Производит подсчет элементов в очереди

SplPriorityQueue::count

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::count — Производит подсчет элементов в очереди

Описание

public int SplPriorityQueue::count ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество элементов в очереди.


Возвращает текущий узел, на который указывает итератор

  • « SplPriorityQueue::count
  • SplPriorityQueue::extract »
  • PHP Manual
  • SplPriorityQueue
  • Возвращает текущий узел, на который указывает итератор

SplPriorityQueue::current

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::current — Возвращает текущий узел, на который указывает итератор

Описание

public mixed SplPriorityQueue::current ( void )

Возвращает структуру данных текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение или приоритет (или и то, и другое) текущего узла в зависимости от заданного флага.


Извлекает узел из начала очереди и пересортирует ее

  • « SplPriorityQueue::current
  • SplPriorityQueue::insert »
  • PHP Manual
  • SplPriorityQueue
  • Извлекает узел из начала очереди и пересортирует ее

SplPriorityQueue::extract

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::extract — Извлекает узел из начала очереди и пересортирует ее

Описание

public mixed SplPriorityQueue::extract ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение или приоритет (или и то, и другое) текущего узла в зависимости от заданного флага.


Добавляет элемент в очередь и пересортирует ее

  • « SplPriorityQueue::extract
  • SplPriorityQueue::isEmpty »
  • PHP Manual
  • SplPriorityQueue
  • Добавляет элемент в очередь и пересортирует ее

SplPriorityQueue::insert

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::insert — Добавляет элемент в очередь и пересортирует ее

Описание

public void SplPriorityQueue::insert ( mixed $value , mixed $priority )

Добавляет значение value с приоритетом priority в очередь.

Список параметров

value

Добавляемое значение.

priority

Приоритет значения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Проверяет, является ли очередь пустой

  • « SplPriorityQueue::insert
  • SplPriorityQueue::key »
  • PHP Manual
  • SplPriorityQueue
  • Проверяет, является ли очередь пустой

SplPriorityQueue::isEmpty

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::isEmpty — Проверяет, является ли очередь пустой

Описание

public bool SplPriorityQueue::isEmpty ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает результат проверки очереди на пустоту.


Возвращает индекс текущего узла

  • « SplPriorityQueue::isEmpty
  • SplPriorityQueue::next »
  • PHP Manual
  • SplPriorityQueue
  • Возвращает индекс текущего узла

SplPriorityQueue::key

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::key — Возвращает индекс текущего узла

Описание

public mixed SplPriorityQueue::key ( void )

Возвращает индекс текущего узла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего узла.


Переход к следующему узлу

  • « SplPriorityQueue::key
  • SplPriorityQueue::recoverFromCorruption »
  • PHP Manual
  • SplPriorityQueue
  • Переход к следующему узлу

SplPriorityQueue::next

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::next — Переход к следующему узлу

Описание

public void SplPriorityQueue::next ( void )

Переводит итератор на следующий узел.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Восстанавливает корректное состояние очереди

  • « SplPriorityQueue::next
  • SplPriorityQueue::rewind »
  • PHP Manual
  • SplPriorityQueue
  • Восстанавливает корректное состояние очереди

SplPriorityQueue::recoverFromCorruption

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::recoverFromCorruption — Восстанавливает корректное состояние очереди

Описание

public void SplPriorityQueue::recoverFromCorruption ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Переводит итератор на начало очереди

  • « SplPriorityQueue::recoverFromCorruption
  • SplPriorityQueue::setExtractFlags »
  • PHP Manual
  • SplPriorityQueue
  • Переводит итератор на начало очереди

SplPriorityQueue::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::rewind — Переводит итератор на начало очереди

Описание

public void SplPriorityQueue::rewind ( void )

Переводит итератор на начало очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Задает режим извлечения узлов

  • « SplPriorityQueue::rewind
  • SplPriorityQueue::top »
  • PHP Manual
  • SplPriorityQueue
  • Задает режим извлечения узлов

SplPriorityQueue::setExtractFlags

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::setExtractFlags — Задает режим извлечения узлов

Описание

public void SplPriorityQueue::setExtractFlags ( int $flags )

Список параметров

flags

Определяет, что будет извлекаться методами SplPriorityQueue::current(),
SplPriorityQueue::top() и
SplPriorityQueue::extract().

  • SplPriorityQueue::EXTR_DATA (0x00000001): Извлекать данные
  • SplPriorityQueue::EXTR_PRIORITY (0x00000002): Извлекать приоритет
  • SplPriorityQueue::EXTR_BOTH (0x00000003): Извлекать данные и приоритет в виде массива

По умолчанию работает режим SplPriorityQueue::EXTR_DATA.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает узел находящийся в начале очереди

  • « SplPriorityQueue::setExtractFlags
  • SplPriorityQueue::valid »
  • PHP Manual
  • SplPriorityQueue
  • Возвращает узел находящийся в начале очереди

SplPriorityQueue::top

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::top — Возвращает узел находящийся в начале очереди

Описание

public mixed SplPriorityQueue::top ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение или приоритет узла (или и то, и другое) в зависимости от установленного флага.


Проверяет, есть ли в очереди еще элементы

  • « SplPriorityQueue::top
  • SplFixedArray »
  • PHP Manual
  • SplPriorityQueue
  • Проверяет, есть ли в очереди еще элементы

SplPriorityQueue::valid

(PHP 5 >= 5.3.0, PHP 7)

SplPriorityQueue::valid — Проверяет, есть ли в очереди еще элементы

Описание

public bool SplPriorityQueue::valid ( void )

Проверяет, есть ли в очереди еще элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если в очереди еще есть доступные элементы, и FALSE в противном случае.


Класс SplFixedArray

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplFixedArray обеспечивает базовую функциональность, предоставляемую массивами. Главное различие между SplFixedArray и обычным массивом PHP в том, что SplFixedArray имеет фиксированную длину, а в качестве индексов могут выступать только целочисленные значения. Преимущество данных ограничений заключается в более быстрой обработке массива.

Обзор классов

SplFixedArray implements Iterator , ArrayAccess , Countable {
/* Методы */
public __construct ([ int $size = 0 ] )
public int count ( void )
public mixed current ( void )
public static SplFixedArray fromArray ( array $array [, bool $save_indexes = true ] )
public int getSize ( void )
public int key ( void )
public void next ( void )
public bool offsetExists ( int $index )
public mixed offsetGet ( int $index )
public void offsetSet ( int $index , mixed $newval )
public void offsetUnset ( int $index )
public void rewind ( void )
public int setSize ( int $size )
public array toArray ( void )
public bool valid ( void )
public void __wakeup ( void )
}

Примеры

Пример #1 Пример использования SplFixedArray

<?php
// Инициализация массива фиксированной длиной
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

var_dump($array[0]); // NULL
var_dump($array[1]); // int(2)

var_dump($array["4"]); // string(3) "foo"

// Увеличение размера массива до 10
$array->setSize(10);

$array[9] = "asdf";

// Сокращаем размер массива до 2-х
$array->setSize(2);

// Следующий код вызывает исключение RuntimeException: Index invalid or out of range
try {
    var_dump($array["non-numeric"]);
} catch(RuntimeException $re) {
    echo "RuntimeException: ".$re->getMessage()."\n";
}

try {
    var_dump($array[-1]);
} catch(RuntimeException $re) {
    echo "RuntimeException: ".$re->getMessage()."\n";
}

try {
    var_dump($array[5]);
} catch(RuntimeException $re) {
    echo "RuntimeException: ".$re->getMessage()."\n";
}
?>

Результат выполнения данного примера:

NULL
int(2)
string(3) "foo"
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range
RuntimeException: Index invalid or out of range

Содержание

  • SplFixedArray::__construct — Создает новый массив фиксированной длины
  • SplFixedArray::count — Возвращает размер массива
  • SplFixedArray::current — Возвращает текущий элемент массива
  • SplFixedArray::fromArray — Импортирует PHP-массив в объект класса SplFixedArray
  • SplFixedArray::getSize — Получает размер массива
  • SplFixedArray::key — Возвращает индекс текущего элемента массива
  • SplFixedArray::next — Переходит к следующему элементу массива
  • SplFixedArray::offsetExists — Возвращает факт наличия указанного индекса массива
  • SplFixedArray::offsetGet — Возвращает значение по указанному индексу
  • SplFixedArray::offsetSet — Устанавливает новое значение по заданному индексу
  • SplFixedArray::offsetUnset — Удаляет значение по индексу $index
  • SplFixedArray::rewind — Выставляет итератор массива в начало
  • SplFixedArray::setSize — Изменяет размер массива
  • SplFixedArray::toArray — Возвращает обычный PHP-массив со значениями фиксированного массива
  • SplFixedArray::valid — Проверяет массив на наличие элементов
  • SplFixedArray::__wakeup — Reinitialises the array after being unserialised


Создает новый массив фиксированной длины

  • « SplFixedArray
  • SplFixedArray::count »
  • PHP Manual
  • SplFixedArray
  • Создает новый массив фиксированной длины

SplFixedArray::__construct

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::__construct — Создает новый массив фиксированной длины

Описание

public SplFixedArray::__construct ([ int $size = 0 ] )

Создает фиксированный массив с числом NULL значений, равных size.

Список параметров

size

Размер фиксированного массива. Ожидается значение между 0 и PHP_INT_MAX.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение InvalidArgumentException, когда параметр size отрицателен.

Вызывает ошибку уровня E_WARNING, когда size нельзя распознать как число.

Примеры

Пример #1 Пример использования SplFixedArray::__construct()

<?php
$array = new SplFixedArray(5);

$array[1] = 2;
$array[4] = "foo";

foreach($array as $v) {
  var_dump($v);
}
?>

Результат выполнения данного примера:

NULL
int(2)
NULL
NULL
string(3) "foo"


Возвращает размер массива

  • « SplFixedArray::__construct
  • SplFixedArray::current »
  • PHP Manual
  • SplFixedArray
  • Возвращает размер массива

SplFixedArray::count

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::count — Возвращает размер массива

Описание

public int SplFixedArray::count ( void )

Возвращает размер массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер массива.

Примеры

Пример #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 mixed SplFixedArray::current ( void )

Получает текущий элемент массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий элемент массива.

Ошибки

Выбрасывает исключение RuntimeException, когда внутренний указатель массива указывает на неверный индекс или вышел за допустимые пределы.


Импортирует PHP-массив в объект класса SplFixedArray

  • « SplFixedArray::current
  • SplFixedArray::getSize »
  • PHP Manual
  • SplFixedArray
  • Импортирует PHP-массив в объект класса SplFixedArray

SplFixedArray::fromArray

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::fromArray — Импортирует PHP-массив в объект класса SplFixedArray

Описание

public static SplFixedArray SplFixedArray::fromArray ( array $array [, bool $save_indexes = true ] )

Импортирует PHP-массив array в новый объект класса SplFixedArray

Список параметров

array

Массив, который следует импортировать.

save_indexes

По возможности сохранить численные индексы, заданные в оригинальном массиве.

Возвращаемые значения

Возвращает объект класса SplFixedArray, содержащий данные из импортированного массива.

Примеры

Пример #1 Пример использования SplFixedArray::fromArray()

<?php
$fa = SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3));

var_dump($fa);

$fa = SplFixedArray::fromArray(array(1 => 1, 0 => 2, 3 => 3), false);

var_dump($fa);
?>

Результат выполнения данного примера:

object(SplFixedArray)#1 (4) {
  [0]=>
  int(2)
  [1]=>
  int(1)
  [2]=>
  NULL
  [3]=>
  int(3)
}
object(SplFixedArray)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Получает размер массива

  • « SplFixedArray::fromArray
  • SplFixedArray::key »
  • PHP Manual
  • SplFixedArray
  • Получает размер массива

SplFixedArray::getSize

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::getSize — Получает размер массива

Описание

public int SplFixedArray::getSize ( void )

Получает размер массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер массива как integer.

Примеры

Пример #1 Пример использования SplFixedArray::getSize()

<?php
$array = new SplFixedArray(5);
echo $array->getSize()."\n";
$array->setSize(10);
echo $array->getSize()."\n";
?>

Результат выполнения данного примера:

5
10

Примечания

Замечание:

Данный метод эквивалентен SplFixedArray::count()

Смотрите также

  • SplFixedArray::count() - Возвращает размер массива


Возвращает индекс текущего элемента массива

  • « SplFixedArray::getSize
  • SplFixedArray::next »
  • PHP Manual
  • SplFixedArray
  • Возвращает индекс текущего элемента массива

SplFixedArray::key

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::key — Возвращает индекс текущего элемента массива

Описание

public int SplFixedArray::key ( void )

Возвращает индекс текущего элемента массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего элемента массива.


Переходит к следующему элементу массива

  • « SplFixedArray::key
  • SplFixedArray::offsetExists »
  • PHP Manual
  • SplFixedArray
  • Переходит к следующему элементу массива

SplFixedArray::next

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::next — Переходит к следующему элементу массива

Описание

public void SplFixedArray::next ( void )

Перемещает итератор на следующий элемент массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает факт наличия указанного индекса массива

  • « SplFixedArray::next
  • SplFixedArray::offsetGet »
  • PHP Manual
  • SplFixedArray
  • Возвращает факт наличия указанного индекса массива

SplFixedArray::offsetExists

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetExists — Возвращает факт наличия указанного индекса массива

Описание

public bool SplFixedArray::offsetExists ( int $index )

Проверяет существование индексаindex в массиве.

Список параметров

index

Индекс, который необходимо проверить.

Возвращаемые значения

TRUE если требуемый index существует, иначе FALSE


Возвращает значение по указанному индексу

  • « SplFixedArray::offsetExists
  • SplFixedArray::offsetSet »
  • PHP Manual
  • SplFixedArray
  • Возвращает значение по указанному индексу

SplFixedArray::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetGet — Возвращает значение по указанному индексу

Описание

public mixed SplFixedArray::offsetGet ( int $index )

Возвращает значение по индексу index.

Список параметров

index

Индекс.

Возвращаемые значения

Значение по индексу index.

Ошибки

Выбрасывает исключение RuntimeException, когда параметр index выходит за рамки заданного размера массива или когда index нельзя распознать как целое число.


Устанавливает новое значение по заданному индексу

  • « SplFixedArray::offsetGet
  • SplFixedArray::offsetUnset »
  • PHP Manual
  • SplFixedArray
  • Устанавливает новое значение по заданному индексу

SplFixedArray::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetSet — Устанавливает новое значение по заданному индексу

Описание

public void SplFixedArray::offsetSet ( int $index , mixed $newval )

По индексу index устанавливает значение newval.

Список параметров

index

Индекс, по которому устанавливается значение.

newval

Новое значение для индекса index.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение RuntimeException, когда index превышает заданный размер массива или когда index нельзя распознать как целое число.


Удаляет значение по индексу $index

  • « SplFixedArray::offsetSet
  • SplFixedArray::rewind »
  • PHP Manual
  • SplFixedArray
  • Удаляет значение по индексу $index

SplFixedArray::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::offsetUnset — Удаляет значение по индексу $index

Описание

public void SplFixedArray::offsetUnset ( int $index )

Удаляет значение по заданному индексу.

Список параметров

index

Индекс, по которому удаляется значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение RuntimeException, когда index превышает заданный размер массива или когда index нельзя распознать как целое число.


Выставляет итератор массива в начало

  • « SplFixedArray::offsetUnset
  • SplFixedArray::setSize »
  • PHP Manual
  • SplFixedArray
  • Выставляет итератор массива в начало

SplFixedArray::rewind

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::rewind — Выставляет итератор массива в начало

Описание

public void SplFixedArray::rewind ( void )

Выставляет итератор массива в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Изменяет размер массива

  • « SplFixedArray::rewind
  • SplFixedArray::toArray »
  • PHP Manual
  • SplFixedArray
  • Изменяет размер массива

SplFixedArray::setSize

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::setSize — Изменяет размер массива

Описание

public int SplFixedArray::setSize ( int $size )

Устанавливает размер массива в значение size. Если size меньше текущего размера массива, то все лишние значения отбрасываются. Если же size больше текущего размера массива, то массив будет дополнен NULL значениями.

Список параметров

size

Новое значение размера массива. Ожидается значение между 0 и PHP_INT_MAX.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение InvalidArgumentException, когда size меньше нуля.

Вызывает ошибку уровня E_WARNING, когда size нельзя обработать как число.

Примеры

Пример #1 Пример использования SplFixedArray::setSize()

<?php
   $array = new SplFixedArray(5);
   echo $array->getSize()."\n";
   $array->setSize(10);
   echo $array->getSize()."\n";
?>

Результат выполнения данного примера:

5
10


Возвращает обычный PHP-массив со значениями фиксированного массива

  • « SplFixedArray::setSize
  • SplFixedArray::valid »
  • PHP Manual
  • SplFixedArray
  • Возвращает обычный PHP-массив со значениями фиксированного массива

SplFixedArray::toArray

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::toArray — Возвращает обычный PHP-массив со значениями фиксированного массива

Описание

public array SplFixedArray::toArray ( void )

Возвращает обычный PHP-массив со значениями фиксированного массива.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает PHP-массив типа array, составленный из значений фиксированного массива.

Примеры

Пример #1 Пример использования SplFixedArray::toArray()

<?php
$fa = new SplFixedArray(3);
$fa[0] = 0;
$fa[2] = 2;
var_dump($fa->toArray());
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  int(0)
  [1]=>
  NULL
  [2]=>
  int(2)
}


Проверяет массив на наличие элементов

  • « SplFixedArray::toArray
  • SplFixedArray::__wakeup »
  • PHP Manual
  • SplFixedArray
  • Проверяет массив на наличие элементов

SplFixedArray::valid

(PHP 5 >= 5.3.0, PHP 7)

SplFixedArray::valid — Проверяет массив на наличие элементов

Описание

public bool SplFixedArray::valid ( void )

Проверяет массив на наличие элементов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если массив содержит хотя бы один элемент, и FALSE в противном случае.


Reinitialises the array after being unserialised

  • « SplFixedArray::valid
  • SplObjectStorage »
  • PHP Manual
  • SplFixedArray
  • Reinitialises the array after being unserialised

SplFixedArray::__wakeup

(PHP 5 >= 5.5.0, PHP 7)

SplFixedArray::__wakeup — Reinitialises the array after being unserialised

Описание

public void SplFixedArray::__wakeup ( void )

Reinitialises the array after being unserialised.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс SplObjectStorage

(PHP 5 >= 5.3.0, PHP 7)

Введение

Класс SplObjectStorage предоставляет соответствие объекты-данные или набор объектов, игнорируя данные. Эта двойная цель может быть полезна во многих случаях, включая необходимость уникальной идентификации объектов.

Обзор классов

SplObjectStorage implements Countable , Iterator , Serializable , ArrayAccess {
/* Методы */
public void addAll ( SplObjectStorage $storage )
public void attach ( object $object [, mixed $data = NULL ] )
public bool contains ( object $object )
public int count ( void )
public object current ( void )
public void detach ( object $object )
public string getHash ( object $object )
public mixed getInfo ( void )
public int key ( void )
public void next ( void )
public bool offsetExists ( object $object )
public mixed offsetGet ( object $object )
public void offsetSet ( object $object [, mixed $data = NULL ] )
public void offsetUnset ( object $object )
public void removeAll ( SplObjectStorage $storage )
public void removeAllExcept ( SplObjectStorage $storage )
public void rewind ( void )
public string serialize ( void )
public void setInfo ( mixed $data )
public void unserialize ( string $serialized )
public bool valid ( void )
}

Примеры

Пример #1 Класс SplObjectStorage как набор объектов

<?php
// Набор объектов
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;

$s->attach($o1);
$s->attach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));

$s->detach($o2);

var_dump($s->contains($o1));
var_dump($s->contains($o2));
var_dump($s->contains($o3));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)
bool(true)
bool(false)
bool(false)

Пример #2 Класс SplObjectStorage как отображение объектов в данные

<?php
// Как отображение объектов к данным
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;
$o3 = new StdClass;

$s[$o1] = "данные для объекта 1";
$s[$o2] = array(1,2,3);

if (isset($s[$o2])) {
    var_dump($s[$o2]);
}
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}

Содержание

  • SplObjectStorage::addAll — Добавляет все объекты из другого контейнера
  • SplObjectStorage::attach — Добавляет объект в контейнер
  • SplObjectStorage::contains — Проверяет, содержит ли контейнер заданный объект
  • SplObjectStorage::count — Возвращает количество объектов в контейнере
  • SplObjectStorage::current — Возвращает текущий объект
  • SplObjectStorage::detach — Удаляет объект object из контейнера
  • SplObjectStorage::getHash — Вычисляет уникальный идентификатор для объектов контейнера
  • SplObjectStorage::getInfo — Возвращает данные ассоциированные с текущим объектом
  • SplObjectStorage::key — Возвращает индекс текущего положения итератора
  • SplObjectStorage::next — Переход к следующему объекту
  • SplObjectStorage::offsetExists — Проверяет, существует ли объект в контейнере
  • SplObjectStorage::offsetGet — Возвращает данные ассоциированные с объектом object
  • SplObjectStorage::offsetSet — Ассоциирует данные с объектом в контейнере
  • SplObjectStorage::offsetUnset — Удаляет объект из контейнера
  • SplObjectStorage::removeAll — Удаляет из текущего контейнера объекты, которые есть в другом контейнере
  • SplObjectStorage::removeAllExcept — Удаляет из текущего контейнера все объекты, которых нет в другом контейнере
  • SplObjectStorage::rewind — Переводит итератор на первый элемент контейнера
  • SplObjectStorage::serialize — Сериализует контейнер
  • SplObjectStorage::setInfo — Ассоциирует данные с текущим объектом контейнера
  • SplObjectStorage::unserialize — Восстанавливает сериализованый контейнер из строки
  • SplObjectStorage::valid — Определяет, допустимо ли текущее значение итератора


Добавляет все объекты из другого контейнера

  • « SplObjectStorage
  • SplObjectStorage::attach »
  • PHP Manual
  • SplObjectStorage
  • Добавляет все объекты из другого контейнера

SplObjectStorage::addAll

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::addAll — Добавляет все объекты из другого контейнера

Описание

public void SplObjectStorage::addAll ( SplObjectStorage $storage )

Добавляет все пары объект-данные из другого контейнера в текущий.

Список параметров

storage

Контейнер объектов, из которого требуется импортировать данные.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::addAll()

<?php
$o = new StdClass;
$a = new SplObjectStorage();
$a[$o] = "hello";

$b = new SplObjectStorage();
$b->addAll($a);
echo $b[$o]."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

hello

Смотрите также

  • SplObjectStorage::removeAll() - Удаляет из текущего контейнера объекты, которые есть в другом контейнере


Добавляет объект в контейнер

  • « SplObjectStorage::addAll
  • SplObjectStorage::contains »
  • PHP Manual
  • SplObjectStorage
  • Добавляет объект в контейнер

SplObjectStorage::attach

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::attach — Добавляет объект в контейнер

Описание

public void SplObjectStorage::attach ( object $object [, mixed $data = NULL ] )

Добавляет объект object в контейнер и дополнительно может ассоциировать этот объект с какими-то данными.

Список параметров

object

Добавляемый объект object.

data

Данные, с которыми требуется ассоциировать объект object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::attach()

<?php
$o1 = new StdClass;
$o2 = new StdClass;
$s = new SplObjectStorage();
$s->attach($o1); // то же, что и $s[$o1] = NULL;
$s->attach($o2, "hello"); // то же, что и $s[$o2] = "hello";

var_dump($s[$o1]);
var_dump($s[$o2]);

?>

Результатом выполнения данного примера будет что-то подобное:

NULL
string(5) "hello"

Список изменений

Версия | Описание
5.3.0 | Добавлен аргумент data.

Смотрите также

  • SplObjectStorage::detach() - Удаляет объект object из контейнера
  • SplObjectStorage::offsetSet() - Ассоциирует данные с объектом в контейнере


Проверяет, содержит ли контейнер заданный объект

  • « SplObjectStorage::attach
  • SplObjectStorage::count »
  • PHP Manual
  • SplObjectStorage
  • Проверяет, содержит ли контейнер заданный объект

SplObjectStorage::contains

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::contains — Проверяет, содержит ли контейнер заданный объект

Описание

public bool SplObjectStorage::contains ( object $object )

Проверяет, содержит ли контейнер заданный объект object.

Список параметров

object

Искомый объект object.

Возвращаемые значения

Возвращает TRUE, если object находится в контейнере, и FALSE в противном случае.

Примеры

Пример #1 Пример использования SplObjectStorage::contains()

<?php
$o1 = new StdClass;
$o2 = new StdClass;

$s = new SplObjectStorage();

$s[$o1] = "hello";
var_dump($s->contains($o1));
var_dump($s->contains($o2));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)

Смотрите также

  • SplObjectStorage::offsetExists() - Проверяет, существует ли объект в контейнере


Возвращает количество объектов в контейнере

  • « SplObjectStorage::contains
  • SplObjectStorage::current »
  • PHP Manual
  • SplObjectStorage
  • Возвращает количество объектов в контейнере

SplObjectStorage::count

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::count — Возвращает количество объектов в контейнере

Описание

public int SplObjectStorage::count ( void )

Производит подсчет объектов в контейнере.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество объектов в контейнере.

Примеры

Пример #1 Пример использования SplObjectStorage::count()

<?php
$s = new SplObjectStorage();
$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1);
$s->attach($o2);
$s->attach($o1);
var_dump($s->count());
var_dump(count($s));
?>

Результатом выполнения данного примера будет что-то подобное:

int(2)
int(2)

Смотрите также

  • SplObjectStorage::attach() - Добавляет объект в контейнер
  • SplObjectStorage::detach() - Удаляет объект object из контейнера


Возвращает текущий объект

  • « SplObjectStorage::count
  • SplObjectStorage::detach »
  • PHP Manual
  • SplObjectStorage
  • Возвращает текущий объект

SplObjectStorage::current

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::current — Возвращает текущий объект

Описание

public object SplObjectStorage::current ( void )

Возвращает текущий объект.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект object, на который указывает итератор контейнера.

Примеры

Пример #1 Пример использования SplObjectStorage::current()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // аналогично current($s)
    $data   = $s->getInfo();

    var_dump($object);
    var_dump($data);
    $s->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Смотрите также

  • SplObjectStorage::rewind() - Переводит итератор на первый элемент контейнера
  • SplObjectStorage::key() - Возвращает индекс текущего положения итератора
  • SplObjectStorage::next() - Переход к следующему объекту
  • SplObjectStorage::valid() - Определяет, допустимо ли текущее значение итератора
  • SplObjectStorage::getInfo() - Возвращает данные ассоциированные с текущим объектом


Удаляет объект object из контейнера

  • « SplObjectStorage::current
  • SplObjectStorage::getHash »
  • PHP Manual
  • SplObjectStorage
  • Удаляет объект object из контейнера

SplObjectStorage::detach

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::detach — Удаляет объект object из контейнера

Описание

public void SplObjectStorage::detach ( object $object )

Удаляет объект object из контейнера.

Список параметров

object

Удаляемый объект object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::detach()

<?php
$o = new StdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->detach($o);
var_dump(count($s));
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)
int(0)

Смотрите также

  • SplObjectStorage::attach() - Добавляет объект в контейнер
  • SplObjectStorage::removeAll() - Удаляет из текущего контейнера объекты, которые есть в другом контейнере


Вычисляет уникальный идентификатор для объектов контейнера

  • « SplObjectStorage::detach
  • SplObjectStorage::getInfo »
  • PHP Manual
  • SplObjectStorage
  • Вычисляет уникальный идентификатор для объектов контейнера

SplObjectStorage::getHash

(PHP 5 >= 5.4.0, PHP 7)

SplObjectStorage::getHash — Вычисляет уникальный идентификатор для объектов контейнера

Описание

public string SplObjectStorage::getHash ( object $object )

Этот метод вычисляет уникальный идентификатор для объектов добавляемых в контейнер SplObjectStorage.

Реализация SplObjectStorage возвращает то же значение, что и функция spl_object_hash().

В одном контейнере никогда не появится двух объектов с одинаковыми идентификаторами. Таким образом, с помощью контейнера можно реализовать множество (коллекцию значений, каждое из которых представлено в единственном экземпляре), в котором уникальность объектов будет определяться этим идентификатором.

Список параметров

object

Объект, чей идентификатор требуется вычислить.

Возвращаемые значения

Строка string с результатом вычисления.

Ошибки

Метод выбрасывает исключение RuntimeException, когда тип возвращаемого значения отличен от типа string.

Примеры

Пример #1 Пример использования SplObjectStorage::getHash()

<?php
class OneSpecimenPerClassStorage extends SplObjectStorage {
    public function getHash($o) {
        return get_class($o);
    }
}
class A {}

$s = new OneSpecimenPerClassStorage;
$o1 = new stdClass;
$o2 = new stdClass;
$o3 = new A;

$s[$o1] = 1;
//$o2 предполагается равным $o1, соответственно значение замещается
$s[$o2] = 2;
$s[$o3] = 3;

//предполагаем, что следующие объекты эквивалентны приведенным выше
//таким образом их можно использовать для извлечения данных из контейнера
$p1 = new stdClass;
$p2 = new A;
echo $s[$p1], "\n";
echo $s[$p2], "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

2
3

Смотрите также

  • spl_object_hash() - Возвращает хеш-идентификатор для объекта


Возвращает данные ассоциированные с текущим объектом

  • « SplObjectStorage::getHash
  • SplObjectStorage::key »
  • PHP Manual
  • SplObjectStorage
  • Возвращает данные ассоциированные с текущим объектом

SplObjectStorage::getInfo

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::getInfo — Возвращает данные ассоциированные с текущим объектом

Описание

public mixed SplObjectStorage::getInfo ( void )

Возвращает данные ассоциированные с объектом, на который указывает итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Данные ассоциированные с объектом.

Примеры

Пример #1 Пример использования SplObjectStorage::getInfo()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // аналогично current($s)
    $data   = $s->getInfo();

    var_dump($object);
    var_dump($data);
    $s->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#2 (0) {
}
string(2) "d1"
object(stdClass)#3 (0) {
}
string(2) "d2"

Смотрите также

  • SplObjectStorage::current() - Возвращает текущий объект
  • SplObjectStorage::rewind() - Переводит итератор на первый элемент контейнера
  • SplObjectStorage::key() - Возвращает индекс текущего положения итератора
  • SplObjectStorage::next() - Переход к следующему объекту
  • SplObjectStorage::valid() - Определяет, допустимо ли текущее значение итератора
  • SplObjectStorage::setInfo() - Ассоциирует данные с текущим объектом контейнера


Возвращает индекс текущего положения итератора

  • « SplObjectStorage::getInfo
  • SplObjectStorage::next »
  • PHP Manual
  • SplObjectStorage
  • Возвращает индекс текущего положения итератора

SplObjectStorage::key

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::key — Возвращает индекс текущего положения итератора

Описание

public int SplObjectStorage::key ( void )

Возвращает индекс текущего положения итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Индекс текущего положения итератора.

Примеры

Пример #1 Пример использования SplObjectStorage::key()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $index  = $s->key();
    $object = $s->current(); // аналогично current($s)

    var_dump($index);
    var_dump($object);
    $s->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
object(stdClass)#2 (0) {
}
int(1)
object(stdClass)#3 (0) {
}

Смотрите также

  • SplObjectStorage::rewind() - Переводит итератор на первый элемент контейнера
  • SplObjectStorage::current() - Возвращает текущий объект
  • SplObjectStorage::next() - Переход к следующему объекту
  • SplObjectStorage::valid() - Определяет, допустимо ли текущее значение итератора


Переход к следующему объекту

  • « SplObjectStorage::key
  • SplObjectStorage::offsetExists »
  • PHP Manual
  • SplObjectStorage
  • Переход к следующему объекту

SplObjectStorage::next

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::next — Переход к следующему объекту

Описание

public void 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)

SplObjectStorage::offsetExists — Проверяет, существует ли объект в контейнере

Описание

public bool SplObjectStorage::offsetExists ( object $object )

Проверяет, существует ли объект object в контейнере.

Замечание:

SplObjectStorage::offsetExists() является псевдонимом метода SplObjectStorage::contains().

Список параметров

object

Искомый объект object.

Возвращаемые значения

Возвращает TRUE, если объект object есть в контейнере, и FALSE в противном случае.

Примеры

Пример #1 Пример использования SplObjectStorage::offsetExists()

<?php
$s = new SplObjectStorage;
$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1);

var_dump($s->offsetExists($o1)); // isset($s[$o1])
var_dump($s->offsetExists($o2)); // isset($s[$o2])
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)

Смотрите также

  • SplObjectStorage::offsetSet() - Ассоциирует данные с объектом в контейнере
  • SplObjectStorage::offsetGet() - Возвращает данные ассоциированные с объектом object
  • SplObjectStorage::offsetUnset() - Удаляет объект из контейнера


Возвращает данные ассоциированные с объектом object

  • « SplObjectStorage::offsetExists
  • SplObjectStorage::offsetSet »
  • PHP Manual
  • SplObjectStorage
  • Возвращает данные ассоциированные с объектом object

SplObjectStorage::offsetGet

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetGet — Возвращает данные ассоциированные с объектом object

Описание

public mixed SplObjectStorage::offsetGet ( object $object )

Возвращает данные ассоциированные с объектом object.

Список параметров

object

Искомый объект object.

Возвращаемые значения

данные ассоциированные с объектом object.

Ошибки

Выбрасывает исключение UnexpectedValueException, если объект object не удалось найти.

Примеры

Пример #1 Пример использования SplObjectStorage::offsetGet()

<?php
$s = new SplObjectStorage;

$o1 = new StdClass;
$o2 = new StdClass;

$s[$o1] = "hello";
$s->attach($o2);

var_dump($s->offsetGet($o1)); //  $s[$o1]
var_dump($s->offsetGet($o2)); //  $s[$o2]
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "hello"
NULL

Смотрите также

  • SplObjectStorage::offsetSet() - Ассоциирует данные с объектом в контейнере
  • SplObjectStorage::offsetExists() - Проверяет, существует ли объект в контейнере
  • SplObjectStorage::offsetUnset() - Удаляет объект из контейнера


Ассоциирует данные с объектом в контейнере

  • « SplObjectStorage::offsetGet
  • SplObjectStorage::offsetUnset »
  • PHP Manual
  • SplObjectStorage
  • Ассоциирует данные с объектом в контейнере

SplObjectStorage::offsetSet

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetSet — Ассоциирует данные с объектом в контейнере

Описание

public void SplObjectStorage::offsetSet ( object $object [, mixed $data = NULL ] )

Ассоциирует данные с объектом object в контейнере.

Замечание:

SplObjectStorage::offsetSet()является псевдонимом метода SplObjectStorage::attach().

Список параметров

object

Объект object, с которым требуется связать данные.

data

Данные, которые требуется связать с объектом object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::offsetSet()

<?php
$s = new SplObjectStorage;

$o1 = new StdClass;

$s->offsetSet($o1, "hello"); // $s[$o1] = "hello";

var_dump($s[$o1]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "hello"

Смотрите также

  • SplObjectStorage::attach() - Добавляет объект в контейнер
  • SplObjectStorage::offsetGet() - Возвращает данные ассоциированные с объектом object
  • SplObjectStorage::offsetExists() - Проверяет, существует ли объект в контейнере
  • SplObjectStorage::offsetUnset() - Удаляет объект из контейнера


Удаляет объект из контейнера

  • « SplObjectStorage::offsetSet
  • SplObjectStorage::removeAll »
  • PHP Manual
  • SplObjectStorage
  • Удаляет объект из контейнера

SplObjectStorage::offsetUnset

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::offsetUnset — Удаляет объект из контейнера

Описание

public void SplObjectStorage::offsetUnset ( object $object )

Удаляет объект object из контейнера.

Замечание:

SplObjectStorage::offsetUnset() является псевдонимом метода SplObjectStorage::detach().

Список параметров

object

Удаляемый объект object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::offsetUnset()

<?php
$o = new StdClass;
$s = new SplObjectStorage();
$s->attach($o);
var_dump(count($s));
$s->offsetUnset($o); // unset($s[$o])
var_dump(count($s));
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)
int(0)

Смотрите также

  • SplObjectStorage::offsetGet() - Возвращает данные ассоциированные с объектом object
  • SplObjectStorage::offsetSet() - Ассоциирует данные с объектом в контейнере
  • SplObjectStorage::offsetExists() - Проверяет, существует ли объект в контейнере


Удаляет из текущего контейнера объекты, которые есть в другом контейнере

  • « SplObjectStorage::offsetUnset
  • SplObjectStorage::removeAllExcept »
  • PHP Manual
  • SplObjectStorage
  • Удаляет из текущего контейнера объекты, которые есть в другом контейнере

SplObjectStorage::removeAll

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::removeAll — Удаляет из текущего контейнера объекты, которые есть в другом контейнере

Описание

public void SplObjectStorage::removeAll ( SplObjectStorage $storage )

Удаляет из текущего контейнера объекты, которые есть в другом контейнере.

Список параметров

storage

Контейнер содержащий элементы, которые требуется удалить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::removeAll()

<?php
$o1 = new StdClass;
$o2 = new StdClass;
$a = new SplObjectStorage();
$a[$o1] = "foo";

$b = new SplObjectStorage();
$b[$o1] = "bar";
$b[$o2] = "gee";

var_dump(count($b));
$b->removeAll($a);
var_dump(count($b));
?>

Результатом выполнения данного примера будет что-то подобное:

int(2)
int(1)

Смотрите также

  • SplObjectStorage::addAll() - Добавляет все объекты из другого контейнера


Удаляет из текущего контейнера все объекты, которых нет в другом контейнере

  • « SplObjectStorage::removeAll
  • SplObjectStorage::rewind »
  • PHP Manual
  • SplObjectStorage
  • Удаляет из текущего контейнера все объекты, которых нет в другом контейнере

SplObjectStorage::removeAllExcept

(PHP 5 >= 5.3.6, PHP 7)

SplObjectStorage::removeAllExcept — Удаляет из текущего контейнера все объекты, которых нет в другом контейнере

Описание

public void SplObjectStorage::removeAllExcept ( SplObjectStorage $storage )

Удаляет из текущего контейнера все объекты, которых нет в другом контейнере.

Список параметров

storage

Контейнер содержащий элементы, которые должны остаться в текущем контейнере.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::removeAllExcept()

<?php
$a = (object) 'a';
$b = (object) 'b';
$c = (object) 'c';

$foo = new SplObjectStorage;
$foo->attach($a);
$foo->attach($b);

$bar = new SplObjectStorage;
$bar->attach($b);
$bar->attach($c);

$foo->removeAllExcept($bar);
var_dump($foo->contains($a));
var_dump($foo->contains($b));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Переводит итератор на первый элемент контейнера

  • « SplObjectStorage::removeAllExcept
  • SplObjectStorage::serialize »
  • PHP Manual
  • SplObjectStorage
  • Переводит итератор на первый элемент контейнера

SplObjectStorage::rewind

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::rewind — Переводит итератор на первый элемент контейнера

Описание

public void 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)

SplObjectStorage::serialize — Сериализует контейнер

Описание

public string SplObjectStorage::serialize ( void )

Возвращает строковое представление контейнера.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое представление контейнера.

Примеры

Пример #1 Пример использования SplObjectStorage::serialize()

<?php
$s = new SplObjectStorage;
$o = new StdClass;
$s[$o] = "data";

echo $s->serialize()."\n";
?>

Результатом выполнения данного примера будет что-то подобное:

x:i:1;O:8:"stdClass":0:{},s:4:"data";;m:a:0:{}

Смотрите также

  • SplObjectStorage::unserialize() - Восстанавливает сериализованый контейнер из строки


Ассоциирует данные с текущим объектом контейнера

  • « SplObjectStorage::serialize
  • SplObjectStorage::unserialize »
  • PHP Manual
  • SplObjectStorage
  • Ассоциирует данные с текущим объектом контейнера

SplObjectStorage::setInfo

(PHP 5 >= 5.3.0, PHP 7)

SplObjectStorage::setInfo — Ассоциирует данные с текущим объектом контейнера

Описание

public void SplObjectStorage::setInfo ( mixed $data )

Ассоциирует данные с текущим объектом контейнера, на который указывает итератор.

Список параметров

data

Данные, которые требуется связать с текущим объектом.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::setInfo()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    $s->setInfo("new");
    $s->next();
}
var_dump($s[$o1]);
var_dump($s[$o2]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(3) "new"
string(3) "new"

Смотрите также

  • SplObjectStorage::current() - Возвращает текущий объект
  • SplObjectStorage::rewind() - Переводит итератор на первый элемент контейнера
  • SplObjectStorage::key() - Возвращает индекс текущего положения итератора
  • SplObjectStorage::next() - Переход к следующему объекту
  • SplObjectStorage::valid() - Определяет, допустимо ли текущее значение итератора
  • SplObjectStorage::getInfo() - Возвращает данные ассоциированные с текущим объектом


Восстанавливает сериализованый контейнер из строки

  • « SplObjectStorage::setInfo
  • SplObjectStorage::valid »
  • PHP Manual
  • SplObjectStorage
  • Восстанавливает сериализованый контейнер из строки

SplObjectStorage::unserialize

(PHP 5 >= 5.2.2, PHP 7)

SplObjectStorage::unserialize — Восстанавливает сериализованый контейнер из строки

Описание

public void SplObjectStorage::unserialize ( string $serialized )

Восстанавливает данные контейнера из строки и добавляет их в текущий контейнер.

Список параметров

serialized

Сериализованное представление контейнера.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplObjectStorage::unserialize()

<?php
$s1 = new SplObjectStorage;
$s2 = new SplObjectStorage;
$o = new StdClass;
$s1[$o] = "data";

$s2->unserialize($s1->serialize());

var_dump(count($s2));
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)

Смотрите также

  • SplObjectStorage::serialize() - Сериализует контейнер


Определяет, допустимо ли текущее значение итератора

  • « SplObjectStorage::unserialize
  • Итераторы »
  • PHP Manual
  • SplObjectStorage
  • Определяет, допустимо ли текущее значение итератора

SplObjectStorage::valid

(PHP 5 >= 5.1.0, PHP 7)

SplObjectStorage::valid — Определяет, допустимо ли текущее значение итератора

Описание

public bool SplObjectStorage::valid ( void )

Определяет, допустимо ли текущее значение итератора, то есть возможна ли работа с этим объектом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если текущий объект допустим, и FALSE в противном случае.

Примеры

Пример #1 Пример использования SplObjectStorage::valid()

<?php
$s = new SplObjectStorage();

$o1 = new StdClass;
$o2 = new StdClass;

$s->attach($o1, "d1");
$s->attach($o2, "d2");

$s->rewind();
while($s->valid()) {
    echo $s->key()."\n";
    $s->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

0
1

Смотрите также

  • SplObjectStorage::current() - Возвращает текущий объект
  • SplObjectStorage::getInfo() - Возвращает данные ассоциированные с текущим объектом


Итераторы

Содержание

  • AppendIterator
  • ArrayIterator
  • CachingIterator
  • CallbackFilterIterator
  • DirectoryIterator
  • EmptyIterator
  • FilesystemIterator
  • FilterIterator
  • GlobIterator
  • InfiniteIterator
  • IteratorIterator
  • LimitIterator
  • MultipleIterator
  • NoRewindIterator
  • ParentIterator
  • RecursiveArrayIterator
  • RecursiveCachingIterator
  • RecursiveCallbackFilterIterator
  • RecursiveDirectoryIterator
  • RecursiveFilterIterator
  • RecursiveIteratorIterator
  • RecursiveRegexIterator
  • RecursiveTreeIterator
  • RegexIterator

SPL обеспечивает набор итераторов для обхода объектов.

Дерево классов итераторов SPL

  • ArrayIterator
    • RecursiveArrayIterator
  • EmptyIterator
  • IteratorIterator
    • AppendIterator
    • CachingIterator
      • RecursiveCachingIterator
    • FilterIterator
      • CallbackFilterIterator
        • RecursiveCallbackFilterIterator
      • RecursiveFilterIterator
        • ParentIterator
      • RegexIterator
        • RecursiveRegexIterator
    • InfiniteIterator
    • LimitIterator
    • NoRewindIterator
  • MultipleIterator
  • RecursiveIteratorIterator
    • RecursiveTreeIterator
  • DirectoryIterator (наследует класс SplFileInfo)
    • FilesystemIterator
      • GlobIterator
      • RecursiveDirectoryIterator


Класс AppendIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Итератор, который выполняет несколько других итераторов один за другим

Обзор классов

AppendIterator extends IteratorIterator implements OuterIterator {
/* Методы */
public __construct ( void )
public void append ( Iterator $iterator )
public mixed current ( void )
public ArrayIterator getArrayIterator ( void )
public Iterator getInnerIterator ( void )
public int getIteratorIndex ( void )
public scalar key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
/* Наследуемые методы */
public IteratorIterator::__construct ( Traversable $iterator )
public mixed IteratorIterator::current ( void )
public Traversable IteratorIterator::getInnerIterator ( void )
public scalar IteratorIterator::key ( void )
public void IteratorIterator::next ( void )
public void IteratorIterator::rewind ( void )
public bool IteratorIterator::valid ( void )
}

Содержание

  • AppendIterator::append — Добавляет итератор
  • AppendIterator::__construct — Создает AppendIterator
  • AppendIterator::current — Возвращает текущее значение
  • AppendIterator::getArrayIterator — Возвращает класс итератора массива ArrayIterator
  • AppendIterator::getInnerIterator — Возвращает внутренний итератор
  • AppendIterator::getIteratorIndex — Возвращает индекс итератора
  • AppendIterator::key — Возвращает текущий ключ
  • AppendIterator::next — Переходит к следующему элементу
  • AppendIterator::rewind — Перематывает итератор
  • AppendIterator::valid — Проверяет срок действия текущего элемента


Добавляет итератор

  • « AppendIterator
  • AppendIterator::__construct »
  • PHP Manual
  • AppendIterator
  • Добавляет итератор

AppendIterator::append

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::append — Добавляет итератор

Описание

public void AppendIterator::append ( Iterator $iterator )

Добавляет итератор.

Список параметров

iterator

Итератор для добавления.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использованияAppendIterator::append()

<?php
$array_a = new ArrayIterator(array('a', 'b', 'c'));
$array_b = new ArrayIterator(array('d', 'e', 'f'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $current) {
    echo $current;
}
?>

Результат выполнения данного примера:

abcdef

Смотрите также

  • AppendIterator::__construct() - Создает AppendIterator


Создает AppendIterator

  • « AppendIterator::append
  • AppendIterator::current »
  • PHP Manual
  • AppendIterator
  • Создает AppendIterator

AppendIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::__construct — Создает AppendIterator

Описание

public AppendIterator::__construct ( void )

Создает AppendIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Итерация AppendIterator с помощью foreach

<?php
$pizzas   = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii'));
$toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

foreach ($appendIterator as $key => $item) {
    echo $key . ' => ' . $item . PHP_EOL;
}
?>

Результат выполнения данного примера:

0 => Margarita
1 => Siciliana
2 => Hawaii
0 => Cheese
1 => Anchovies
2 => Olives
3 => Pineapple
4 => Ham

Пример #2 Итерация AppendIterator с помощью AppendIterator API

<?php
$pizzas   = new ArrayIterator(array('Margarita', 'Siciliana', 'Hawaii'));
$toppings = new ArrayIterator(array('Cheese', 'Anchovies', 'Olives', 'Pineapple', 'Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

while ($appendIterator->valid()) {
    printf(
        '%s => %s => %s%s',
        $appendIterator->getIteratorIndex(),
        $appendIterator->key(),
        $appendIterator->current(),
        PHP_EOL
    );
    $appendIterator->next();
}
?>

Результат выполнения данного примера:

0 => 0 => Margarita
0 => 1 => Siciliana
0 => 2 => Hawaii
1 => 0 => Cheese
1 => 1 => Anchovies
1 => 2 => Olives
1 => 3 => Pineapple
1 => 4 => Ham

Примечания

Предостережение

При использовании функции iterator_to_array() для копирования значения AppendIterator в массив, вам необходимо установить дополнительный аргумент use_key в значение FALSE. Когда use_key не принимает значение FALSE, какие-либо ключи, повторно встречающиеся во внутренних итераторах, будут перезаписаны в возвращаемый массив. Сохранить оригинальные ключи невозможно.

Смотрите также

  • AppendIterator::append() - Добавляет итератор


Возвращает текущее значение

  • « AppendIterator::__construct
  • AppendIterator::getArrayIterator »
  • PHP Manual
  • AppendIterator
  • Возвращает текущее значение

AppendIterator::current

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::current — Возвращает текущее значение

Описание

public mixed AppendIterator::current ( void )

Возвращает текущее значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение, если оно действительное, или NULL в противном случае.

Смотрите также

  • Iterator::current() - Возвращает текущий элемент
  • AppendIterator::key() - Возвращает текущий ключ
  • AppendIterator::valid() - Проверяет срок действия текущего элемента
  • AppendIterator::next() - Переходит к следующему элементу
  • AppendIterator::rewind() - Перематывает итератор


Возвращает класс итератора массива ArrayIterator

  • « AppendIterator::current
  • AppendIterator::getInnerIterator »
  • PHP Manual
  • AppendIterator
  • Возвращает класс итератора массива ArrayIterator

AppendIterator::getArrayIterator

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::getArrayIterator — Возвращает класс итератора массива ArrayIterator

Описание

public ArrayIterator AppendIterator::getArrayIterator ( void )

Этот метод получает класс ArrayIterator, который используется для хранения итераторов, добавленных с помощью метода AppendIterator::append().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает класс ArrayIterator, содержащий добавленные итераторы.

Смотрите также

  • AppendIterator::getInnerIterator() - Возвращает внутренний итератор


Возвращает внутренний итератор

  • « AppendIterator::getArrayIterator
  • AppendIterator::getIteratorIndex »
  • PHP Manual
  • AppendIterator
  • Возвращает внутренний итератор

AppendIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::getInnerIterator — Возвращает внутренний итератор

Описание

public Iterator AppendIterator::getInnerIterator ( void )

Этот метод возвращает текущий внутренний итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий внутренний итератор или NULL, если таковые отсутствуют.

Примеры

Пример #1 Пример использования AppendIterator::getInnerIterator()

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new RegexIterator($array_a, '/^[ac]/');

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $current) {
    $inner = $iterator->getInnerIterator();
    if ($inner instanceOf RegexIterator) {
        echo 'Filtered: ';
    } else {
        echo 'Original: ';
    }
    echo $current . PHP_EOL;
}
?>

Результат выполнения данного примера:

Original: aardwolf
Original: bear
Original: capybara
Filtered: aardwolf
Filtered: capybara

Смотрите также

  • AppendIterator::getIteratorIndex() - Возвращает индекс итератора


Возвращает индекс итератора

  • « AppendIterator::getInnerIterator
  • AppendIterator::key »
  • PHP Manual
  • AppendIterator
  • Возвращает индекс итератора

AppendIterator::getIteratorIndex

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::getIteratorIndex — Возвращает индекс итератора

Описание

public int AppendIterator::getIteratorIndex ( void )

Возвращает индекс текущего внутреннего итератора.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число типа integer, которое является индексом, начинающимся с нуля, текущего внутреннего итератора.

Примеры

Пример #1 Пример использования AppendIterator.getIteratorIndex()

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new ArrayIterator(array('apple', 'orange', 'lemon'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

foreach ($iterator as $key => $current) {
    echo $iterator->getIteratorIndex() . '  ' . $key . ' ' . $current . PHP_EOL;
}
?>

Результат выполнения данного примера:

0  a aardwolf
0  b bear
0  c capybara
1  0 apple
1  1 orange
1  2 lemon

Смотрите также

  • AppendIterator::getInnerIterator() - Возвращает внутренний итератор
  • AppendIterator::getArrayIterator() - Возвращает класс итератора массива ArrayIterator


Возвращает текущий ключ

  • « AppendIterator::getIteratorIndex
  • AppendIterator::next »
  • PHP Manual
  • AppendIterator
  • Возвращает текущий ключ

AppendIterator::key

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::key — Возвращает текущий ключ

Описание

public scalar AppendIterator::key ( void )

Возвращает текущий ключ.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ, если он является действительным, или NULL в противном случае.

Примеры

Пример #1 Пример использования AppendIterator::key()

<?php
$array_a = new ArrayIterator(array('a' => 'aardwolf', 'b' => 'bear', 'c' => 'capybara'));
$array_b = new ArrayIterator(array('apple', 'orange', 'lemon'));

$iterator = new AppendIterator;
$iterator->append($array_a);
$iterator->append($array_b);

// Ручная итерация
$iterator->rewind();
while ($iterator->valid()) {
    echo $iterator->key() . ' ' . $iterator->current() . PHP_EOL;
    $iterator->next();
}

echo PHP_EOL;

// С конструкцией foreach
foreach ($iterator as $key => $current) {
    echo $key . ' ' . $current . PHP_EOL;
}
?>

Результат выполнения данного примера:

a aardwolf
b bear
c capybara
0 apple
1 orange
2 lemon

a aardwolf
b bear
c capybara
0 apple
1 orange
2 lemon

Смотрите также

  • Iterator::key() - Возвращает ключ текущего элемента
  • AppendIterator::current() - Возвращает текущее значение
  • AppendIterator::valid() - Проверяет срок действия текущего элемента
  • AppendIterator::next() - Переходит к следующему элементу
  • AppendIterator::rewind() - Перематывает итератор


Переходит к следующему элементу

  • « AppendIterator::key
  • AppendIterator::rewind »
  • PHP Manual
  • AppendIterator
  • Переходит к следующему элементу

AppendIterator::next

(PHP 5 >= 5.1.0, PHP 7)

AppendIterator::next — Переходит к следующему элементу

Описание

public void 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)

AppendIterator::rewind — Перематывает итератор

Описание

public void 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)

AppendIterator::valid — Проверяет срок действия текущего элемента

Описание

public bool AppendIterator::valid ( void )

Проверяет срок действия текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если текущая итерация допустима и FALSE в ином случае.

Смотрите также

  • AppendIterator::current() - Возвращает текущее значение
  • AppendIterator::key() - Возвращает текущий ключ
  • AppendIterator::next() - Переходит к следующему элементу
  • AppendIterator::rewind() - Перематывает итератор


Класс ArrayIterator

(PHP 5, PHP 7)

Введение

Этот итератор позволяет сбрасывать и модифицировать значения и ключи в процессе итерации по массивам и объектам.

Когда вы хотите перебрать некоторый массив несколько раз, вы должны создать экземпляр ArrayObject и позволить ему создать экземпляр ArrayIterator, ссылающийся на него при использовании foreach, или при вызове метода getIterator() вручную.

Обзор классов

ArrayIterator implements ArrayAccess , SeekableIterator , Countable , Serializable {
/* Методы */
public void append ( mixed $value )
public void asort ( void )
public __construct ([ mixed $array = array() [, int $flags = 0 ]] )
public int count ( void )
public mixed current ( void )
public array getArrayCopy ( void )
public void getFlags ( void )
public mixed key ( void )
public void ksort ( void )
public void natcasesort ( void )
public void natsort ( void )
public void next ( void )
public void offsetExists ( string $index )
public mixed offsetGet ( string $index )
public void offsetSet ( string $index , string $newval )
public void offsetUnset ( string $index )
public void rewind ( void )
public void seek ( int $position )
public string serialize ( void )
public void setFlags ( string $flags )
public void uasort ( string $cmp_function )
public void uksort ( string $cmp_function )
public string unserialize ( string $serialized )
public bool valid ( void )
}

Содержание

  • 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::uasort — Сортировка, определенная пользователем
  • ArrayIterator::uksort — Сортировка, определенная пользователем
  • ArrayIterator::unserialize — Десериализация
  • ArrayIterator::valid — Проверяет, содержит ли массив еще записи


Добавить элемент

  • « ArrayIterator
  • ArrayIterator::asort »
  • PHP Manual
  • ArrayIterator
  • Добавить элемент

ArrayIterator::append

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::append — Добавить элемент

Описание

public void ArrayIterator::append ( mixed $value )

Добавляет значение value, как последний элемент массива.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

value

Значение, которое нужно добавить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

Этот метод не может быть вызван, если ArrayIterator указывает на object.

Смотрите также

  • ArrayIterator::next() - Перемещает указатель за следующую запись


Сортирует массив по значениям

  • « ArrayIterator::append
  • ArrayIterator::__construct »
  • PHP Manual
  • ArrayIterator
  • Сортирует массив по значениям

ArrayIterator::asort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::asort — Сортирует массив по значениям

Описание

public void ArrayIterator::asort ( void )

Сортирует массив по значениям.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::ksort() - Сортирует массив по ключам
  • ArrayIterator::natcasesort() - Сортирует массив "натурально", с учетом регистра
  • ArrayIterator::natsort() - Сортирует массив "натурально"


Создает ArrayIterator

  • « ArrayIterator::asort
  • ArrayIterator::count »
  • PHP Manual
  • ArrayIterator
  • Создает ArrayIterator

ArrayIterator::__construct

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::__construct — Создает ArrayIterator

Описание

public ArrayIterator::__construct ([ mixed $array = array() [, int $flags = 0 ]] )

Создает ArrayIterator типа object.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

array

Массив или объект, который может быть итерирован.

flags

Флаги для управления поведением объекта ArrayIterator. См. ArrayIterator::setFlags().

Возвращаемые значения

ArrayIterator object.

Ошибки

ArrayIterator::__construct() выкидывает исключение типа InvalidArgumentException, если передано что-то кроме массива или объекта.

Смотрите также

  • ArrayIterator::getArrayCopy() - Возвращает копию массива


Посчитать количество элементов

  • « ArrayIterator::__construct
  • ArrayIterator::current »
  • PHP Manual
  • ArrayIterator
  • Посчитать количество элементов

ArrayIterator::count

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::count — Посчитать количество элементов

Описание

public int ArrayIterator::count ( void )

Возвращает количество элементов в массиве (array), или количество публичных свойств объекта (object).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество элементов или публичных свойств в ассоциативном массиве (array) или объекте (object) соответственно.

Смотрите также

  • ArrayIterator::getFlags() - Получает флаги


Возвращает текущий элемент в массиве

  • « ArrayIterator::count
  • ArrayIterator::getArrayCopy »
  • PHP Manual
  • ArrayIterator
  • Возвращает текущий элемент в массиве

ArrayIterator::current

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::current — Возвращает текущий элемент в массиве

Описание

public mixed ArrayIterator::current ( void )

Возвращает текущий элемент 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 >= 5.0.0, PHP 7)

ArrayIterator::getArrayCopy — Возвращает копию массива

Описание

public array ArrayIterator::getArrayCopy ( void )

Возвращает копию массива.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Копия array или массив публичных свойств, если ArrayIterator указывает на object.

Смотрите также

  • ArrayIterator::valid() - Проверяет, содержит ли массив еще записи


Получает флаги

  • « ArrayIterator::getArrayCopy
  • ArrayIterator::key »
  • PHP Manual
  • ArrayIterator
  • Получает флаги

ArrayIterator::getFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayIterator::getFlags — Получает флаги

Описание

public void ArrayIterator::getFlags ( void )

Получить текущие флаги.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущие флаги.

Смотрите также

  • ArrayIterator::valid() - Проверяет, содержит ли массив еще записи


Возвращает ключ текущего элемента массива

  • « ArrayIterator::getFlags
  • ArrayIterator::ksort »
  • PHP Manual
  • ArrayIterator
  • Возвращает ключ текущего элемента массива

ArrayIterator::key

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::key — Возвращает ключ текущего элемента массива

Описание

public mixed ArrayIterator::key ( void )

Эта функция возвращает ключ текущего элемента массива

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ текущего элемента в массиве array.

Примеры

Пример #1 Пример использования ArrayIterator::key()

<?php
$array = array('key' => 'value');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

echo $iterator->key(); //key
?>


Сортирует массив по ключам

  • « ArrayIterator::key
  • ArrayIterator::natcasesort »
  • PHP Manual
  • ArrayIterator
  • Сортирует массив по ключам

ArrayIterator::ksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::ksort — Сортирует массив по ключам

Описание

public void ArrayIterator::ksort ( void )

Сортирует массив по ключам.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::asort() - Сортирует массив по значениям
  • ArrayIterator::natcasesort() - Сортирует массив "натурально", с учетом регистра
  • ArrayIterator::natsort() - Сортирует массив "натурально"


Сортирует массив "натурально", с учетом регистра

  • « ArrayIterator::ksort
  • ArrayIterator::natsort »
  • PHP Manual
  • ArrayIterator
  • Сортирует массив "натурально", с учетом регистра

ArrayIterator::natcasesort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::natcasesort — Сортирует массив "натурально", с учетом регистра

Описание

public void ArrayIterator::natcasesort ( void )

Сортирует записи в массиве по значениям, используя алгоритм натуральной сортировки с учетом регистра.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::asort() - Сортирует массив по значениям
  • ArrayIterator::ksort() - Сортирует массив по ключам
  • ArrayIterator::natsort() - Сортирует массив "натурально"
  • natcasesort() - Сортирует массив, используя алгоритм "natural order" без учета регистра символов


Сортирует массив "натурально"

  • « ArrayIterator::natcasesort
  • ArrayIterator::next »
  • PHP Manual
  • ArrayIterator
  • Сортирует массив "натурально"

ArrayIterator::natsort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::natsort — Сортирует массив "натурально"

Описание

public void ArrayIterator::natsort ( void )

Сортирует записи в массиве по значениям, используя алгоритм натуральной сортировки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::asort() - Сортирует массив по значениям
  • ArrayIterator::ksort() - Сортирует массив по ключам
  • ArrayIterator::natcasesort() - Сортирует массив "натурально", с учетом регистра
  • natsort() - Сортирует массив, используя алгоритм "natural order"


Перемещает указатель за следующую запись

  • « ArrayIterator::natsort
  • ArrayIterator::offsetExists »
  • PHP Manual
  • ArrayIterator
  • Перемещает указатель за следующую запись

ArrayIterator::next

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::next — Перемещает указатель за следующую запись

Описание

public void ArrayIterator::next ( void )

Перемещает указатель на следующую запись в массиве.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ArrayIterator::next() example

<?php
$arrayobject = new ArrayObject();

$arrayobject[] = 'zero';
$arrayobject[] = 'one';

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

Результат выполнения данного примера:

0 => zero
1 => one


Проверяет существует ли смещение

  • « ArrayIterator::next
  • ArrayIterator::offsetGet »
  • PHP Manual
  • ArrayIterator
  • Проверяет существует ли смещение

ArrayIterator::offsetExists

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::offsetExists — Проверяет существует ли смещение

Описание

public void ArrayIterator::offsetExists ( string $index )

Проверяет существует ли смещение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Проверяемое смещение.

Возвращаемые значения

Возвращает TRUE, если смещение существует, в противном случае - FALSE

Смотрите также

  • ArrayIterator::valid() - Проверяет, содержит ли массив еще записи


Получает значение для смещения

  • « ArrayIterator::offsetExists
  • ArrayIterator::offsetSet »
  • PHP Manual
  • ArrayIterator
  • Получает значение для смещения

ArrayIterator::offsetGet

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::offsetGet — Получает значение для смещения

Описание

public mixed ArrayIterator::offsetGet ( string $index )

Получает значение из предоставленного смещения.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Смещение, из которого необходимо получить значения.

Возвращаемые значения

Значение по смещению index.

Смотрите также

  • ArrayIterator::offsetSet() - Устанавливает значение для смещения
  • ArrayIterator::offsetUnset() - Сбрасывает значение по смещению


Устанавливает значение для смещения

  • « ArrayIterator::offsetGet
  • ArrayIterator::offsetUnset »
  • PHP Manual
  • ArrayIterator
  • Устанавливает значение для смещения

ArrayIterator::offsetSet

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::offsetSet — Устанавливает значение для смещения

Описание

public void ArrayIterator::offsetSet ( string $index , string $newval )

Устанавливает значения для данного смещения.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Индекс для установки значения.

newval

Новое значение для хранения в индексе.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::offsetGet() - Получает значение для смещения
  • ArrayIterator::offsetUnset() - Сбрасывает значение по смещению


Сбрасывает значение по смещению

  • « ArrayIterator::offsetSet
  • ArrayIterator::rewind »
  • PHP Manual
  • ArrayIterator
  • Сбрасывает значение по смещению

ArrayIterator::offsetUnset

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::offsetUnset — Сбрасывает значение по смещению

Описание

public void ArrayIterator::offsetUnset ( string $index )

Сбрасывает значение по смещению.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Смещение для сброса.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::offsetGet() - Получает значение для смещения
  • ArrayIterator::offsetSet() - Устанавливает значение для смещения


Перемещает указатель в начало массива

  • « ArrayIterator::offsetUnset
  • ArrayIterator::seek »
  • PHP Manual
  • ArrayIterator
  • Перемещает указатель в начало массива

ArrayIterator::rewind

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::rewind — Перемещает указатель в начало массива

Описание

public void 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 >= 5.0.0, PHP 7)

ArrayIterator::seek — Перемещает указатель на выбранную позицию

Описание

public void ArrayIterator::seek ( int $position )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

position

Позиция, на которую нужно переместить указатель.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Сериализует массив

  • « ArrayIterator::seek
  • ArrayIterator::setFlags »
  • PHP Manual
  • ArrayIterator
  • Сериализует массив

ArrayIterator::serialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayIterator::serialize — Сериализует массив

Описание

public string ArrayIterator::serialize ( void )

Сериализует массив.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованный ArrayIterator.

Смотрите также

  • ArrayIterator::unserialize() - Десериализация


Устанавливает флаги, управляющие поведением

  • « ArrayIterator::serialize
  • ArrayIterator::uasort »
  • PHP Manual
  • ArrayIterator
  • Устанавливает флаги, управляющие поведением

ArrayIterator::setFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayIterator::setFlags — Устанавливает флаги, управляющие поведением

Описание

public void ArrayIterator::setFlags ( string $flags )

Устанавливает флаги, управляющие поведением.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flags

Следующие битовые маски:

  • 0 = Свойства объекта имеют свои нормальные функции при доступе в виде списка (var_dump, foreach, etc.).
  • 1 = Индексы массивов могут быть доступны как свойства в режиме чтения/записи.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::getFlags() - Получает флаги


Сортировка, определенная пользователем

  • « ArrayIterator::setFlags
  • ArrayIterator::uksort »
  • PHP Manual
  • ArrayIterator
  • Сортировка, определенная пользователем

ArrayIterator::uasort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::uasort — Сортировка, определенная пользователем

Описание

public void ArrayIterator::uasort ( string $cmp_function )

Сортирует записи в массиве по значениям, используя функцию сортировки, определенную пользователем.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

cmp_function

Функция сравнения элементов, используемая для сортировки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::uksort() - Сортировка, определенная пользователем
  • usort() - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов


Сортировка, определенная пользователем

  • « ArrayIterator::uasort
  • ArrayIterator::unserialize »
  • PHP Manual
  • ArrayIterator
  • Сортировка, определенная пользователем

ArrayIterator::uksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayIterator::uksort — Сортировка, определенная пользователем

Описание

public void ArrayIterator::uksort ( string $cmp_function )

Сортирует записи в массиве по ключам, используя функцию сортировки, определенную пользователем.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

cmp_function

Функция сравнения элементов, используемая для сортировки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ArrayIterator::uasort() - Сортировка, определенная пользователем
  • uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей


Десериализация

  • « ArrayIterator::uksort
  • ArrayIterator::valid »
  • PHP Manual
  • ArrayIterator
  • Десериализация

ArrayIterator::unserialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayIterator::unserialize — Десериализация

Описание

public string ArrayIterator::unserialize ( string $serialized )

Десериализация.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

serialized

Сериализованный объект ArrayIterator, который предстоит десериализовать.

Возвращаемые значения

ArrayIterator.

Смотрите также

  • ArrayIterator::serialize() - Сериализует массив


Проверяет, содержит ли массив еще записи

  • « ArrayIterator::unserialize
  • CachingIterator »
  • PHP Manual
  • ArrayIterator
  • Проверяет, содержит ли массив еще записи

ArrayIterator::valid

(PHP 5 >= 5.0.0, PHP 7)

ArrayIterator::valid — Проверяет, содержит ли массив еще записи

Описание

public bool ArrayIterator::valid ( void )

Проверяет, содержит ли массив array еще записи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если итератор действительный и FALSE в противном случае.

Примеры

Пример #1 Пример использования ArrayIterator::valid()

<?php
$array = array('1' => 'one');

$arrayobject = new ArrayObject($array);
$iterator = $arrayobject->getIterator();

var_dump($iterator->valid()); //bool(true)

$iterator->next(); // перемещаем указатель на следующий элемент

//bool(false) потому что в массиве только один элемент
var_dump($iterator->valid());
?>


Класс CachingIterator

(PHP 5, PHP 7)

Введение

Этот объект поддерживает кеширование итерации над другим итератором.

Обзор классов

CachingIterator extends IteratorIterator implements OuterIterator , ArrayAccess , Countable {
/* Константы */
const integer CALL_TOSTRING = 1 ;
const integer CATCH_GET_CHILD = 16 ;
const integer TOSTRING_USE_KEY = 2 ;
const integer TOSTRING_USE_CURRENT = 4 ;
const integer TOSTRING_USE_INNER = 8 ;
const integer FULL_CACHE = 256 ;
/* Методы */
public __construct ( Iterator $iterator [, int $flags = self::CALL_TOSTRING ] )
public int count ( void )
public void current ( void )
public array getCache ( void )
public void getFlags ( void )
public Iterator getInnerIterator ( void )
public void hasNext ( void )
public scalar key ( void )
public void next ( void )
public void offsetExists ( string $index )
public void offsetGet ( string $index )
public void offsetSet ( string $index , string $newval )
public void offsetUnset ( string $index )
public void rewind ( void )
public void setFlags ( int $flags )
public void __toString ( void )
public void valid ( void )
}

Предопределенные константы

CachingIterator::CALL_TOSTRING

Преобразует каждый элемент в строку.

CachingIterator::CATCH_GET_CHILD

Не выбрасывать исключения при доступе к дочерним элементам.

CachingIterator::TOSTRING_USE_KEY

Использовать ключ при преобразовании в строку.

CachingIterator::TOSTRING_USE_CURRENT

Использовать текущий элемент при преобразовании в строку.

CachingIterator::TOSTRING_USE_INNER

Использовать внутренний итератор при преобразовании в строку.

CachingIterator::FULL_CACHE

Кеширование всей прочтенной информации.

Содержание

  • CachingIterator::__construct — Строит новый объект CachingIterator для итератора
  • CachingIterator::count — Возвращает число элементов в итераторе
  • CachingIterator::current — Возвращает текущий элемент
  • CachingIterator::getCache — Получение содержимого кэша
  • CachingIterator::getFlags — Получает используемые флаги
  • CachingIterator::getInnerIterator — Возвращает внутренний итератор
  • CachingIterator::hasNext — Проверяет, имеет ли внутренний итератор допустимый следующий элемент
  • CachingIterator::key — Возвращает ключ для текущего элемента
  • CachingIterator::next — Перемещает итератор к следующему элементу
  • CachingIterator::offsetExists — Назначение offsetExists
  • CachingIterator::offsetGet — Назначение offsetGet
  • CachingIterator::offsetSet — Назначение offsetSet
  • CachingIterator::offsetUnset — Назначение offsetUnset
  • CachingIterator::rewind — Возвращает итератор в начало
  • CachingIterator::setFlags — Устанавливает флаги для объекта CachingIterator
  • CachingIterator::__toString — Возвращает строковое представление текущего элемента
  • CachingIterator::valid — Проверяет, является ли текущий элемент допустимым


Строит новый объект CachingIterator для итератора

  • « CachingIterator
  • CachingIterator::count »
  • PHP Manual
  • CachingIterator
  • Строит новый объект CachingIterator для итератора

CachingIterator::__construct

(PHP 5, PHP 7)

CachingIterator::__construct — Строит новый объект CachingIterator для итератора

Описание

public CachingIterator::__construct ( Iterator $iterator [, int $flags = self::CALL_TOSTRING ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Iterator для кэширования

flags

Битовые маски флагов.


Возвращает число элементов в итераторе

  • « CachingIterator::__construct
  • CachingIterator::current »
  • PHP Manual
  • CachingIterator
  • Возвращает число элементов в итераторе

CachingIterator::count

(PHP 5 >= 5.2.2, PHP 7)

CachingIterator::count — Возвращает число элементов в итераторе

Описание

public int CachingIterator::count ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает число элементов в итераторе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество проитерированных элементов.


Возвращает текущий элемент

  • « CachingIterator::count
  • CachingIterator::getCache »
  • PHP Manual
  • CachingIterator
  • Возвращает текущий элемент

CachingIterator::current

(PHP 5, PHP 7)

CachingIterator::current — Возвращает текущий элемент

Описание

public void CachingIterator::current ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает текущий элемент в итерации.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Mixed

Смотрите также

  • Iterator::current() - Возвращает текущий элемент


Получение содержимого кэша

  • « CachingIterator::current
  • CachingIterator::getFlags »
  • PHP Manual
  • CachingIterator
  • Получение содержимого кэша

CachingIterator::getCache

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::getCache — Получение содержимого кэша

Описание

public array CachingIterator::getCache ( void )

Получение содержимого кэша.

Замечание:

Должен использоваться флаг CachingIterator::FULL_CACHE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив array содержащий элементы кэша.

Ошибки

Бросает BadMethodCallException в случае, если не установлен флаг CachingIterator::FULL_CACHE.

Примеры

Пример #1 Пример использования CachingIterator::getCache()

<?php
$iterator = new ArrayIterator(array(1, 2, 3));
$cache    = new CachingIterator($iterator, CachingIterator::FULL_CACHE);

$cache->next();
$cache->next();
var_dump($cache->getCache());

$cache->next();
var_dump($cache->getCache());
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Получает используемые флаги

  • « CachingIterator::getCache
  • CachingIterator::getInnerIterator »
  • PHP Manual
  • CachingIterator
  • Получает используемые флаги

CachingIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::getFlags — Получает используемые флаги

Описание

public void CachingIterator::getFlags ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Получает битовую маску флагов, используемых для данного экземпляра CachingIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описание...


Возвращает внутренний итератор

  • « CachingIterator::getFlags
  • CachingIterator::hasNext »
  • PHP Manual
  • CachingIterator
  • Возвращает внутренний итератор

CachingIterator::getInnerIterator

(PHP 5, PHP 7)

CachingIterator::getInnerIterator — Возвращает внутренний итератор

Описание

public Iterator CachingIterator::getInnerIterator ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает итератор, переданный конструктору.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект, реализующий интерфейс итератора (Iterator).


Проверяет, имеет ли внутренний итератор допустимый следующий элемент

  • « CachingIterator::getInnerIterator
  • CachingIterator::key »
  • PHP Manual
  • CachingIterator
  • Проверяет, имеет ли внутренний итератор допустимый следующий элемент

CachingIterator::hasNext

(PHP 5, PHP 7)

CachingIterator::hasNext — Проверяет, имеет ли внутренний итератор допустимый следующий элемент

Описание

public void CachingIterator::hasNext ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает ключ для текущего элемента

  • « CachingIterator::hasNext
  • CachingIterator::next »
  • PHP Manual
  • CachingIterator
  • Возвращает ключ для текущего элемента

CachingIterator::key

(PHP 5, PHP 7)

CachingIterator::key — Возвращает ключ для текущего элемента

Описание

public scalar CachingIterator::key ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Этот метод может вернуть ключ для текущего элемента.

Список параметров

У этой функции нет параметров.


Перемещает итератор к следующему элементу

  • « CachingIterator::key
  • CachingIterator::offsetExists »
  • PHP Manual
  • CachingIterator
  • Перемещает итератор к следующему элементу

CachingIterator::next

(PHP 5, PHP 7)

CachingIterator::next — Перемещает итератор к следующему элементу

Описание

public void CachingIterator::next ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Перемещает итератор к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Назначение offsetExists

  • « CachingIterator::next
  • CachingIterator::offsetGet »
  • PHP Manual
  • CachingIterator
  • Назначение offsetExists

CachingIterator::offsetExists

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetExists — Назначение offsetExists

Описание

public void CachingIterator::offsetExists ( string $index )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Индекс, который должен быть проверен.

Возвращаемые значения

Возвращает TRUE если элемент с указанным смещением существует, FALSE - в противном случае.


Назначение offsetGet

  • « CachingIterator::offsetExists
  • CachingIterator::offsetSet »
  • PHP Manual
  • CachingIterator
  • Назначение offsetGet

CachingIterator::offsetGet

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetGet — Назначение offsetGet

Описание

public void CachingIterator::offsetGet ( string $index )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Описание...

Возвращаемые значения

Описание...


Назначение offsetSet

  • « CachingIterator::offsetGet
  • CachingIterator::offsetUnset »
  • PHP Manual
  • CachingIterator
  • Назначение offsetSet

CachingIterator::offsetSet

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetSet — Назначение offsetSet

Описание

public void CachingIterator::offsetSet ( string $index , string $newval )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Индекс элемента.

newval

Новое значение для элемента с индексомindex.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Назначение offsetUnset

  • « CachingIterator::offsetSet
  • CachingIterator::rewind »
  • PHP Manual
  • CachingIterator
  • Назначение offsetUnset

CachingIterator::offsetUnset

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::offsetUnset — Назначение offsetUnset

Описание

public void CachingIterator::offsetUnset ( string $index )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Индекс элемента, который будет удален.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает итератор в начало

  • « CachingIterator::offsetUnset
  • CachingIterator::setFlags »
  • PHP Manual
  • CachingIterator
  • Возвращает итератор в начало

CachingIterator::rewind

(PHP 5, PHP 7)

CachingIterator::rewind — Возвращает итератор в начало

Описание

public void CachingIterator::rewind ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает итератор в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает флаги для объекта CachingIterator

  • « CachingIterator::rewind
  • CachingIterator::__toString »
  • PHP Manual
  • CachingIterator
  • Устанавливает флаги для объекта CachingIterator

CachingIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7)

CachingIterator::setFlags — Устанавливает флаги для объекта CachingIterator

Описание

public void CachingIterator::setFlags ( int $flags )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Устанавливает флаги для объекта CachingIterator.

Список параметров

flags

Битовая маска флагов для установки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает строковое представление текущего элемента

  • « CachingIterator::setFlags
  • CachingIterator::valid »
  • PHP Manual
  • CachingIterator
  • Возвращает строковое представление текущего элемента

CachingIterator::__toString

(PHP 5, PHP 7)

CachingIterator::__toString — Возвращает строковое представление текущего элемента

Описание

public void CachingIterator::__toString ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Получает строковое представление текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое (string) представление текущего элемента.


Проверяет, является ли текущий элемент допустимым

  • « CachingIterator::__toString
  • CallbackFilterIterator »
  • PHP Manual
  • CachingIterator
  • Проверяет, является ли текущий элемент допустимым

CachingIterator::valid

(PHP 5, PHP 7)

CachingIterator::valid — Проверяет, является ли текущий элемент допустимым

Описание

public void CachingIterator::valid ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Проверяет, является ли текущий элемент допустимым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Класс CallbackFilterIterator

(PHP 5 >= 5.4.0, PHP 7)

Введение

Обзор классов

CallbackFilterIterator extends FilterIterator implements OuterIterator {
/* Методы */
public __construct ( Iterator $iterator , callable $callback )
public string accept ( void )
/* Наследуемые методы */
public abstract bool FilterIterator::accept ( void )
public FilterIterator::__construct ( Iterator $iterator )
public mixed FilterIterator::current ( void )
public Iterator FilterIterator::getInnerIterator ( void )
public mixed FilterIterator::key ( void )
public void FilterIterator::next ( void )
public void FilterIterator::rewind ( void )
public bool FilterIterator::valid ( void )
}

Примеры

Обратный вызов может принимать до трех аргументов: текущий элемент, текущий ключ и итератор соответственно.

Пример #1 Доступные аргументы обратного вызова

<?php

/**
 * Обратный вызов для CallbackFilterIterator
 *
 * @param $current   Значение текущего элемента
 * @param $key       Ключ текущего элемента
 * @param $iterator  Фильтруемый итератор
 * @return boolean   TRUE для принятия текущего элемента, иначе - FALSE
 */
function my_callback($current, $key, $iterator) {
    // Your filtering code here
}

?>

Любой обратный вызов типа callable может быть использован. Например, строка, содержащая имя функции, массив для метода или анонимная функция.

Пример #2 Основные примеры обратного вызова

<?php

$dir = new FilesystemIterator(__DIR__);

// Фильтр больших файлов ( > 100MB)
function is_large_file($current) {
    return $current->isFile() && $current->getSize() > 104857600;
}
$large_files = new CallbackFilterIterator($dir, 'is_large_file');

// Фильтр каталогов
$files = new CallbackFilterIterator($dir, function ($current, $key, $iterator) {
    return $current->isDir() && ! $iterator->isDot();
});

?>

Содержание

  • CallbackFilterIterator::accept — Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель
  • CallbackFilterIterator::__construct — Создает фильтрующий итератор на основе другого итератора


Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель

  • « CallbackFilterIterator
  • CallbackFilterIterator::__construct »
  • PHP Manual
  • CallbackFilterIterator
  • Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель

CallbackFilterIterator::accept

(PHP 5 >= 5.4.0, PHP 7)

CallbackFilterIterator::accept — Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель

Описание

public string CallbackFilterIterator::accept ( void )

Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель.

Callback-функция должна возвращать TRUE, если текущий элемент прошел фильтр, FALSE в противном случае.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если текущий элемент прошел фильтр, FALSE в противном случае.

Смотрите также

  • CallbackFilterIterator Examples
  • CallbackFilterIterator::__construct() - Создает фильтрующий итератор на основе другого итератора


Создает фильтрующий итератор на основе другого итератора

  • « CallbackFilterIterator::accept
  • DirectoryIterator »
  • PHP Manual
  • CallbackFilterIterator
  • Создает фильтрующий итератор на основе другого итератора

CallbackFilterIterator::__construct

(PHP 5 >= 5.4.0, PHP 7)

CallbackFilterIterator::__construct — Создает фильтрующий итератор на основе другого итератора

Описание

public CallbackFilterIterator::__construct ( Iterator $iterator , callable $callback )

Создает фильтрующий итератор, используя функцию callback для отбора или отклонения элементов.

Список параметров

iterator

Итератор, к которому применяется фильтр.

callback

Callback-функция, которая должна возвращать TRUE, если текущий элемент прошел фильтр, и FALSE, если элемент отклонен. См. примеры.

Может быть любым callable значением.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Примеры использования CallbackFilterIterator
  • CallbackFilterIterator::accept() - Вызывает callback-функцию и передает ей в качестве аргументов текущее значение, текущий ключ и внутренний указатель


Класс DirectoryIterator

(PHP 5, PHP 7)

Введение

Класс DirectoryIterator предоставляет простой интерфейс для просмотра содержимого каталогов файловой системы.

Обзор классов

DirectoryIterator extends SplFileInfo implements SeekableIterator {
/* Методы */
public __construct ( string $path )
public DirectoryIterator current ( void )
public int getATime ( void )
public string getBasename ([ string $suffix ] )
public int getCTime ( void )
public string getExtension ( void )
public string getFilename ( void )
public int getGroup ( void )
public int getInode ( void )
public int getMTime ( void )
public int getOwner ( void )
public string getPath ( void )
public string getPathname ( void )
public int getPerms ( void )
public int getSize ( void )
public string getType ( void )
public bool isDir ( void )
public bool isDot ( void )
public bool isExecutable ( void )
public bool isFile ( void )
public bool isLink ( void )
public bool isReadable ( void )
public bool isWritable ( void )
public string key ( void )
public void next ( void )
public void rewind ( void )
public void seek ( int $position )
public string __toString ( void )
public bool valid ( void )
}

Список изменений

Версия | Описание
5.1.2 | DirectoryIterator наследует класс SplFileInfo.

Содержание

  • DirectoryIterator::__construct — Создаёт новый итератор директорий по пути
  • DirectoryIterator::current — Возвращает текущий элемент DirectoryIterator
  • DirectoryIterator::getATime — Возвращает время последнего доступа к текущему элементу DirectoryIterator
  • DirectoryIterator::getBasename — Возвращает имя файла (без расширения) текущего элемента DirectoryIterator
  • DirectoryIterator::getCTime — Возвращает время последнего изменения i-узла текущего элемента DirectoryIterator
  • DirectoryIterator::getExtension — Возвращает расширение файла
  • DirectoryIterator::getFilename — Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getGroup — Возвращает идентификатор группы текущего элемента DirectoryIterator
  • DirectoryIterator::getInode — Возвращает inode текущего элемента DirectoryIterator
  • DirectoryIterator::getMTime — Возвращает время последнего изменения текущего элемента DirectoryIterator
  • DirectoryIterator::getOwner — Возвращает идентификатор владельца текущего элемента DirectoryIterator
  • DirectoryIterator::getPath — Возвращает путь к текущему элементу DirectoryIterator без имени файла
  • DirectoryIterator::getPathname — Возвращает путь и имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getPerms — Возвращает набор прав для текущего элемента DirectoryIterator item
  • DirectoryIterator::getSize — Возвращает размер текущего элемента DirectoryIterator
  • DirectoryIterator::getType — Определяет тип текущего элемента DirectoryIterator
  • DirectoryIterator::isDir — Определяет, является ли текущий элемент DirectoryIterator директорией
  • DirectoryIterator::isDot — Определяет, является ли текущий элемент DirectoryIterator '.' или '..'
  • DirectoryIterator::isExecutable — Определяет, является ли текущий элемент DirectoryIterator исполняемым
  • DirectoryIterator::isFile — Определяет, является ли текущий элемент DirectoryIterator обычным файлом
  • DirectoryIterator::isLink — Определяет, является ли текущий элемент DirectoryIterator символической ссылкой
  • DirectoryIterator::isReadable — Определяет, доступен ли текущий элемент DirectoryIterator для чтения
  • DirectoryIterator::isWritable — Определяет, доступен ли текущий элемент DirectoryIterator для записи
  • DirectoryIterator::key — Возвращает ключ текущего элемента DirectoryIterator
  • DirectoryIterator::next — Перемещает указатель на следующий элемент DirectoryIterator
  • DirectoryIterator::rewind — Устанавливает указатель на первый элемент DirectoryIterator
  • DirectoryIterator::seek — Перемещает указатель DirectoryIterator на определённую позицию
  • DirectoryIterator::__toString — Возвращает имя файла в виде строки
  • DirectoryIterator::valid — Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом


Создаёт новый итератор директорий по пути

  • « DirectoryIterator
  • DirectoryIterator::current »
  • PHP Manual
  • DirectoryIterator
  • Создаёт новый итератор директорий по пути

DirectoryIterator::__construct

(PHP 5, PHP 7)

DirectoryIterator::__construct — Создаёт новый итератор директорий по пути

Описание

public DirectoryIterator::__construct ( string $path )

Создаёт новый итератор директорий по пути.

Список параметров

path

Путь к директории для прохода.

Ошибки

Будет вызвано исключение UnexpectedValueException в случае, если параметр path не может быть открыт.

Будет вызвано исключение RuntimeException в случае, если параметр path содержит пустую строку.

Список изменений

Версия | Описание
5.3.0 | Вызывается исключение UnexpectedValueException, если путь path не может быть открыт.
5.1.3 | Вызывается исключение RuntimeException, если параметр path содержит пустую строку.
5.1.0 | Вызывается исключение RuntimeException при ошибке. Раньше вызывалось исключение Exception.

Примеры

Пример #1 Пример использования DirectoryIterator::__construct()

Этот пример выведет список содержимого директории, содержащей выполняемый скрипт.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
        var_dump($fileinfo->getFilename());
    }
}
?>

Смотрите также

  • SplFileInfo
  • Iterator


Возвращает текущий элемент DirectoryIterator

  • « DirectoryIterator::__construct
  • DirectoryIterator::getATime »
  • PHP Manual
  • DirectoryIterator
  • Возвращает текущий элемент DirectoryIterator

DirectoryIterator::current

(PHP 5, PHP 7)

DirectoryIterator::current — Возвращает текущий элемент DirectoryIterator

Описание

public DirectoryIterator DirectoryIterator::current ( void )

Возвращает текущий элемент DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий элемент DirectoryIterator.

Примеры

Пример #1 Пример использования DirectoryIterator::current()

Этот пример выведет список содержимого директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(__DIR__);
while($iterator->valid()) {
    $file = $iterator->current();
    echo $iterator->key() . " => " . $file->getFilename() . "\n";
    $iterator->next();
}
?>

Результатом выполнения данного примера будет что-то подобное:

0 => .
1 => ..
2 => apple.jpg
3 => banana.jpg
4 => index.php
5 => pear.jpg

Смотрите также

  • DirectoryIterator::key() - Возвращает ключ текущего элемента DirectoryIterator
  • DirectoryIterator::next() - Перемещает указатель на следующий элемент DirectoryIterator
  • DirectoryIterator::rewind() - Устанавливает указатель на первый элемент DirectoryIterator
  • DirectoryIterator::valid() - Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом
  • Iterator::current() - Возвращает текущий элемент


Возвращает время последнего доступа к текущему элементу DirectoryIterator

  • « DirectoryIterator::current
  • DirectoryIterator::getBasename »
  • PHP Manual
  • DirectoryIterator
  • Возвращает время последнего доступа к текущему элементу DirectoryIterator

DirectoryIterator::getATime

(PHP 5, PHP 7)

DirectoryIterator::getATime — Возвращает время последнего доступа к текущему элементу DirectoryIterator

Описание

public int DirectoryIterator::getATime ( void )

Возвращает время последнего доступа к текущему элементу DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время, когда в последний раз был осуществлен доступ к указанному файлу. Время возвращается в формате отметки времени Unix.

Примеры

Пример #1 Пример использования DirectoryIterator::getATime()

Этот пример выведет список файлов директории, содержащей выполняемый скрипт, и время последнего доступа к ним.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getATime() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg 1240047118
banana.jpg 1240065176
index.php 1240047208
pear.jpg 12240047979

Смотрите также

  • DirectoryIterator::getCTime() - Возвращает время последнего изменения i-узла текущего элемента DirectoryIterator
  • DirectoryIterator::getMTime() - Возвращает время последнего изменения текущего элемента DirectoryIterator
  • fileatime() - Возвращает время последнего доступа к файлу


Возвращает имя файла (без расширения) текущего элемента DirectoryIterator

  • « DirectoryIterator::getATime
  • DirectoryIterator::getCTime »
  • PHP Manual
  • DirectoryIterator
  • Возвращает имя файла (без расширения) текущего элемента DirectoryIterator

DirectoryIterator::getBasename

(PHP 5 >= 5.2.2, PHP 7)

DirectoryIterator::getBasename — Возвращает имя файла (без расширения) текущего элемента DirectoryIterator

Описание

public string DirectoryIterator::getBasename ([ string $suffix ] )

Возвращает имя файла (без расширения) текущего элемента DirectoryIterator.

Список параметров

suffix

Если имя файла оканчивается на suffix, то он будет отброшен.

Возвращаемые значения

Имя файла текущего элемента DirectoryIterator.

Примеры

Пример #1 Пример использования DirectoryIterator::getBasename()

Этот пример выведет список имён файлов директории, содержащей выполняемый скрипт. Если имя файла заканчивается на .jpg, данный суффикс будет отброшен.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getBasename() . "\n";
        echo $fileinfo->getBasename('.jpg') . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
apple
banana.jpg
banana
index.php
index.php
pear.jpg
pear

Смотрите также

  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getPath() - Возвращает путь к текущему элементу DirectoryIterator без имени файла
  • DirectoryIterator::getPathname() - Возвращает путь и имя файла текущего элемента DirectoryIterator
  • basename() - Возвращает последний компонент имени из указанного пути
  • pathinfo() - Возвращает информацию о пути к файлу


Возвращает время последнего изменения i-узла текущего элемента DirectoryIterator

  • « DirectoryIterator::getBasename
  • DirectoryIterator::getExtension »
  • PHP Manual
  • DirectoryIterator
  • Возвращает время последнего изменения i-узла текущего элемента DirectoryIterator

DirectoryIterator::getCTime

(PHP 5, PHP 7)

DirectoryIterator::getCTime — Возвращает время последнего изменения i-узла текущего элемента DirectoryIterator

Описание

public int DirectoryIterator::getCTime ( void )

Возвращает время последнего изменения i-узла текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время последнего изменения файла, в формате отметки времени Unix.

Примеры

Пример #1 Пример использования DirectoryIterator::getCTime()

Этот пример выведет список файлов директории, содержащей выполняемый скрипт и время их последнего изменения.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " changed at " . $fileinfo->getCTime() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg changed at 1240398312
banana.jpg changed at 1238605440
index.php changed at 1240398935
pear.jpg changed at 1237423740

Смотрите также

  • DirectoryIterator::getATime() - Возвращает время последнего доступа к текущему элементу DirectoryIterator
  • DirectoryIterator::getMTime() - Возвращает время последнего изменения текущего элемента DirectoryIterator
  • filectime() - Возвращает время изменения индексного дескриптора файла


Возвращает расширение файла

  • « DirectoryIterator::getCTime
  • DirectoryIterator::getFilename »
  • PHP Manual
  • DirectoryIterator
  • Возвращает расширение файла

DirectoryIterator::getExtension

(PHP 5 >= 5.3.6, PHP 7)

DirectoryIterator::getExtension — Возвращает расширение файла

Описание

public string DirectoryIterator::getExtension ( void )

Возвращает расширение файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string), содержащую расширение файла или пустую строку (string), если файл его не имеет.

Примеры

Пример #1 Пример использования DirectoryIterator::getExtension()

<?php

$directory = new DirectoryIterator(__DIR__);
foreach ($directory as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getExtension() . "\n";
    }
}

?>

Результатом выполнения данного примера будет что-то подобное:

php
txt
jpg
gz

Примечания

Замечание:

Данный метод доступен только в PHP 5.3.6. Другим доступным решением может быть функция pathinfo().

<?php
$extension = pathinfo($fileinfo->getFilename(), PATHINFO_EXTENSION);
?>

Смотрите также

  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getBasename() - Возвращает имя файла (без расширения) текущего элемента DirectoryIterator
  • pathinfo() - Возвращает информацию о пути к файлу


Возвращает имя файла текущего элемента DirectoryIterator

  • « DirectoryIterator::getExtension
  • DirectoryIterator::getGroup »
  • PHP Manual
  • DirectoryIterator
  • Возвращает имя файла текущего элемента DirectoryIterator

DirectoryIterator::getFilename

(PHP 5, PHP 7)

DirectoryIterator::getFilename — Возвращает имя файла текущего элемента DirectoryIterator

Описание

public string DirectoryIterator::getFilename ( void )

Возвращает имя файла текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файл текущего элемента DirectoryIterator.

Примеры

Пример #1 Пример использования DirectoryIterator::getFilename()

Этот пример выведет список содержимого директории, содержащей выполняемый скрипт.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    echo $fileinfo->getFilename() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Смотрите также

  • DirectoryIterator::getBasename() - Возвращает имя файла (без расширения) текущего элемента DirectoryIterator
  • DirectoryIterator::getPath() - Возвращает путь к текущему элементу DirectoryIterator без имени файла
  • DirectoryIterator::getPathname() - Возвращает путь и имя файла текущего элемента DirectoryIterator
  • pathinfo() - Возвращает информацию о пути к файлу


Возвращает идентификатор группы текущего элемента DirectoryIterator

  • « DirectoryIterator::getFilename
  • DirectoryIterator::getInode »
  • PHP Manual
  • DirectoryIterator
  • Возвращает идентификатор группы текущего элемента DirectoryIterator

DirectoryIterator::getGroup

(PHP 5, PHP 7)

DirectoryIterator::getGroup — Возвращает идентификатор группы текущего элемента DirectoryIterator

Описание

public int DirectoryIterator::getGroup ( void )

Возвращает идентификатор группы текущего файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает идентификатор группы текущего элемента DirectoryIterator в числовом формате.

Примеры

Пример #1 Пример использования DirectoryIterator::getGroup()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
$groupid  = $iterator->getGroup();
echo 'Directory belongs to group id ' . $groupid . "\n";
print_r(posix_getgrgid($groupid));
?>

Результатом выполнения данного примера будет что-то подобное:

Directory belongs to group id 42
Array
(
    [name]    => toons
    [passwd]  => x
    [members] => Array
        (
            [0] => tom
            [1] => jerry
        )
    [gid]     => 42
)

Смотрите также

  • DirectoryIterator::getiNode() - Возвращает inode текущего элемента DirectoryIterator
  • DirectoryIterator::getOwner() - Возвращает идентификатор владельца текущего элемента DirectoryIterator
  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item
  • filegroup() - Получает идентификатор группы файла
  • posix_getgrgid() - Возвращает информацию о группе по её ID


Возвращает inode текущего элемента DirectoryIterator

  • « DirectoryIterator::getGroup
  • DirectoryIterator::getMTime »
  • PHP Manual
  • DirectoryIterator
  • Возвращает inode текущего элемента DirectoryIterator

DirectoryIterator::getInode

(PHP 5, PHP 7)

DirectoryIterator::getInode — Возвращает inode текущего элемента DirectoryIterator

Описание

public int DirectoryIterator::getInode ( void )

Возвращает inode текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает inode файла.

Примеры

Пример #1 Пример использования DirectoryIterator::getInode()

Этот пример выведет inode директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
echo $iterator->getInode();
?>

Смотрите также

  • DirectoryIterator::getGroup() - Возвращает идентификатор группы текущего элемента DirectoryIterator
  • DirectoryIterator::getOwner() - Возвращает идентификатор владельца текущего элемента DirectoryIterator
  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item
  • fileinode() - Возвращает индексный дескриптор файла


Возвращает время последнего изменения текущего элемента DirectoryIterator

  • « DirectoryIterator::getInode
  • DirectoryIterator::getOwner »
  • PHP Manual
  • DirectoryIterator
  • Возвращает время последнего изменения текущего элемента DirectoryIterator

DirectoryIterator::getMTime

(PHP 5, PHP 7)

DirectoryIterator::getMTime — Возвращает время последнего изменения текущего элемента DirectoryIterator

Описание

public int DirectoryIterator::getMTime ( void )

Возвращает время последнего изменения текущего элемента DirectoryIterator, в формате отметки времени Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Время последнего изменения файла, в формате отметки времени Unix.

Примеры

Пример #1 Пример использования DirectoryIterator::getMTime()

Этот пример выведет список файлов директории, содержащей выполняемый скрипт и время их последней модификации.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getMTime() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg 1240047118
banana.jpg 1240065176
index.php 1240047208
pear.jpg 12240047979

Смотрите также

  • DirectoryIterator::getATime() - Возвращает время последнего доступа к текущему элементу DirectoryIterator
  • DirectoryIterator::getCTime() - Возвращает время последнего изменения i-узла текущего элемента DirectoryIterator
  • filemtime() - Возвращает время последнего изменения файла


Возвращает идентификатор владельца текущего элемента DirectoryIterator

  • « DirectoryIterator::getMTime
  • DirectoryIterator::getPath »
  • PHP Manual
  • DirectoryIterator
  • Возвращает идентификатор владельца текущего элемента DirectoryIterator

DirectoryIterator::getOwner

(PHP 5, PHP 7)

DirectoryIterator::getOwner — Возвращает идентификатор владельца текущего элемента DirectoryIterator

Описание

public int DirectoryIterator::getOwner ( void )

Возвращает идентификатор владельца текущего элемента DirectoryIterator в числовом формате.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Владелец файла, в числовом формате.

Примеры

Пример #1 Пример использования DirectoryIterator::getOwner()

Этот пример показывает владельца директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
print_r(posix_getpwuid($iterator->getOwner()));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [name] => tom
    [passwd] => x
    [uid] => 501
    [gid] => 42
    [gecos] => Tom Cat
    [dir] => /home/tom
    [shell] => /bin/bash
)

Смотрите также

  • DirectoryIterator::getGroup() - Возвращает идентификатор группы текущего элемента DirectoryIterator
  • DirectoryIterator::getiNode() - Возвращает inode текущего элемента DirectoryIterator
  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item
  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID


Возвращает путь к текущему элементу DirectoryIterator без имени файла

  • « DirectoryIterator::getOwner
  • DirectoryIterator::getPathname »
  • PHP Manual
  • DirectoryIterator
  • Возвращает путь к текущему элементу DirectoryIterator без имени файла

DirectoryIterator::getPath

(PHP 5, PHP 7)

DirectoryIterator::getPath — Возвращает путь к текущему элементу DirectoryIterator без имени файла

Описание

public string DirectoryIterator::getPath ( void )

Возвращает путь к текущему элементу DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь до файла (без имени файла и завершающего слеша).

Примеры

Пример #1 Пример использования DirectoryIterator::getPath()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
echo $iterator->getPath();
?>

Результатом выполнения данного примера будет что-то подобное:

/home/examples/public_html

Смотрите также

  • DirectoryIterator::getBasename() - Возвращает имя файла (без расширения) текущего элемента DirectoryIterator
  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getPathname() - Возвращает путь и имя файла текущего элемента DirectoryIterator
  • pathinfo() - Возвращает информацию о пути к файлу


Возвращает путь и имя файла текущего элемента DirectoryIterator

  • « DirectoryIterator::getPath
  • DirectoryIterator::getPerms »
  • PHP Manual
  • DirectoryIterator
  • Возвращает путь и имя файла текущего элемента DirectoryIterator

DirectoryIterator::getPathname

(PHP 5, PHP 7)

DirectoryIterator::getPathname — Возвращает путь и имя файла текущего элемента DirectoryIterator

Описание

public string DirectoryIterator::getPathname ( void )

Возвращает путь и имя файла текущего файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь и имя файла текущего файла. Директория не будет содержать завершающего слеша.

Примеры

Пример #1 Пример использования DirectoryIterator::getPathname()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    echo $fileinfo->getPathname() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

/home/examples/.
/home/examples/..
/home/examples/apple.jpg
/home/examples/banana.jpg
/home/examples/getpathname.php
/home/examples/pear.jpg

Смотрите также

  • DirectoryIterator::getBasename() - Возвращает имя файла (без расширения) текущего элемента DirectoryIterator
  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getPath() - Возвращает путь к текущему элементу DirectoryIterator без имени файла
  • pathinfo() - Возвращает информацию о пути к файлу


Возвращает набор прав для текущего элемента DirectoryIterator item

  • « DirectoryIterator::getPathname
  • DirectoryIterator::getSize »
  • PHP Manual
  • DirectoryIterator
  • Возвращает набор прав для текущего элемента DirectoryIterator item

DirectoryIterator::getPerms

(PHP 5, PHP 7)

DirectoryIterator::getPerms — Возвращает набор прав для текущего элемента DirectoryIterator item

Описание

public int DirectoryIterator::getPerms ( void )

Возвращает набор прав для текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает набор прав для текущего файла, в виде десятичного числа integer.

Примеры

Пример #1 Пример использования DirectoryIterator::getPerms()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if (!$fileinfo->isDot()) {
        $octal_perms = substr(sprintf('%o', $fileinfo->getPerms()), -4);
        echo $fileinfo->getFilename() . " " . $octal_perms . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg 0644
banana.jpg 0644
index.php 0744
pear.jpg 0644

Смотрите также

  • DirectoryIterator::isExecutable() - Определяет, является ли текущий элемент DirectoryIterator исполняемым
  • DirectoryIterator::isReadable() - Определяет, доступен ли текущий элемент DirectoryIterator для чтения
  • DirectoryIterator::isWritable() - Определяет, доступен ли текущий элемент DirectoryIterator для записи


Возвращает размер текущего элемента DirectoryIterator

  • « DirectoryIterator::getPerms
  • DirectoryIterator::getType »
  • PHP Manual
  • DirectoryIterator
  • Возвращает размер текущего элемента DirectoryIterator

DirectoryIterator::getSize

(PHP 5, PHP 7)

DirectoryIterator::getSize — Возвращает размер текущего элемента DirectoryIterator

Описание

public int DirectoryIterator::getSize ( void )

Возвращает объем занимаемого дискового пространства для текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает размер файла, в байтах.

Примеры

Пример #1 Пример использования DirectoryIterator::getSize()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . " " . $fileinfo->getSize() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg 15385
banana.jpg 15190
example.php 170
pear.jpg 34406

Смотрите также

  • filesize() - Возвращает размер файла


Определяет тип текущего элемента DirectoryIterator

  • « DirectoryIterator::getSize
  • DirectoryIterator::isDir »
  • PHP Manual
  • DirectoryIterator
  • Определяет тип текущего элемента DirectoryIterator

DirectoryIterator::getType

(PHP 5, PHP 7)

DirectoryIterator::getType — Определяет тип текущего элемента DirectoryIterator

Описание

public string DirectoryIterator::getType ( void )

Определяет к какому типу принадлежит текущей элемент DirectoryIterator. Возможные варианты: file (файл), link (ссылка), или dir (директория).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string), содержащую тип файла. Возможные варианты: file (файл), link (ссылка), или dir (директория).

Примеры

Пример #1 Пример использования DirectoryIterator::getType()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    echo $fileinfo->getFilename() . " " . $fileinfo->getType() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

. dir
.. dir
apple.jpg file
banana.jpg file
example.php file
pear.jpg file

Смотрите также

  • DirectoryIterator::isDir() - Определяет, является ли текущий элемент DirectoryIterator директорией
  • DirectoryIterator::isDot() - Определяет, является ли текущий элемент DirectoryIterator '.' или '..'
  • DirectoryIterator::isFile() - Определяет, является ли текущий элемент DirectoryIterator обычным файлом
  • DirectoryIterator::isLink() - Определяет, является ли текущий элемент DirectoryIterator символической ссылкой


Определяет, является ли текущий элемент DirectoryIterator директорией

  • « DirectoryIterator::getType
  • DirectoryIterator::isDot »
  • PHP Manual
  • DirectoryIterator
  • Определяет, является ли текущий элемент DirectoryIterator директорией

DirectoryIterator::isDir

(PHP 5, PHP 7)

DirectoryIterator::isDir — Определяет, является ли текущий элемент DirectoryIterator директорией

Описание

public bool DirectoryIterator::isDir ( void )

Определяет, является ли текущий элемент DirectoryIterator директорией.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если элемент является директорией, иначе FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isDir()

Этот пример выведет список вложенных директорий в директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isDir()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

.
..
apples
bananas
pears

Смотрите также

  • DirectoryIterator::getType() - Определяет тип текущего элемента DirectoryIterator
  • DirectoryIterator::isDot() - Определяет, является ли текущий элемент DirectoryIterator '.' или '..'
  • DirectoryIterator::isFile() - Определяет, является ли текущий элемент DirectoryIterator обычным файлом
  • DirectoryIterator::isLink() - Определяет, является ли текущий элемент DirectoryIterator символической ссылкой


Определяет, является ли текущий элемент DirectoryIterator '.' или '..'

  • « DirectoryIterator::isDir
  • DirectoryIterator::isExecutable »
  • PHP Manual
  • DirectoryIterator
  • Определяет, является ли текущий элемент DirectoryIterator '.' или '..'

DirectoryIterator::isDot

(PHP 5, PHP 7)

DirectoryIterator::isDot — Определяет, является ли текущий элемент DirectoryIterator '.' или '..'

Описание

public bool DirectoryIterator::isDot ( void )

Определяет, является ли текущий элемент DirectoryIterator . или ...

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если элемент является . или .., иначе FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isDot()

Этот пример выведет список всех файлов в директории, кроме . и ..

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if (!$fileinfo->isDot()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
banana.jpg
example.php
pears.jpg

Смотрите также

  • DirectoryIterator::getType() - Определяет тип текущего элемента DirectoryIterator
  • DirectoryIterator::isDir() - Определяет, является ли текущий элемент DirectoryIterator директорией
  • DirectoryIterator::isFile() - Определяет, является ли текущий элемент DirectoryIterator обычным файлом
  • DirectoryIterator::isLink() - Определяет, является ли текущий элемент DirectoryIterator символической ссылкой


Определяет, является ли текущий элемент DirectoryIterator исполняемым

  • « DirectoryIterator::isDot
  • DirectoryIterator::isFile »
  • PHP Manual
  • DirectoryIterator
  • Определяет, является ли текущий элемент DirectoryIterator исполняемым

DirectoryIterator::isExecutable

(PHP 5, PHP 7)

DirectoryIterator::isExecutable — Определяет, является ли текущий элемент DirectoryIterator исполняемым

Описание

public bool DirectoryIterator::isExecutable ( void )

Определяет, является ли текущий элемент DirectoryIterator исполняемым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл является исполняемым, иначе FALSE

Примеры

Пример #1 DirectoryIterator::isExecutable() example

Этот пример показывает список исполняемых файлов в директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isExecutable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

example.php
myscript.sh

Смотрите также

  • DirectoryIterator::isReadable() - Определяет, доступен ли текущий элемент DirectoryIterator для чтения
  • DirectoryIterator::isWritable() - Определяет, доступен ли текущий элемент DirectoryIterator для записи
  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item


Определяет, является ли текущий элемент DirectoryIterator обычным файлом

  • « DirectoryIterator::isExecutable
  • DirectoryIterator::isLink »
  • PHP Manual
  • DirectoryIterator
  • Определяет, является ли текущий элемент DirectoryIterator обычным файлом

DirectoryIterator::isFile

(PHP 5, PHP 7)

DirectoryIterator::isFile — Определяет, является ли текущий элемент DirectoryIterator обычным файлом

Описание

public bool DirectoryIterator::isFile ( void )

Определяет, является ли текущий элемент DirectoryIterator обычным файлом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если файл существует и является обычным файлом (т.е., не является ссылкой или директорией), иначе FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isFile() example

Этот пример выведет список всех файлов в директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isFile()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
banana.jpg
example.php
pears.jpg

Смотрите также

  • DirectoryIterator::getType() - Определяет тип текущего элемента DirectoryIterator
  • DirectoryIterator::isDir() - Определяет, является ли текущий элемент DirectoryIterator директорией
  • DirectoryIterator::isDot() - Определяет, является ли текущий элемент DirectoryIterator '.' или '..'
  • DirectoryIterator::isLink() - Определяет, является ли текущий элемент DirectoryIterator символической ссылкой


Определяет, является ли текущий элемент DirectoryIterator символической ссылкой

  • « DirectoryIterator::isFile
  • DirectoryIterator::isReadable »
  • PHP Manual
  • DirectoryIterator
  • Определяет, является ли текущий элемент DirectoryIterator символической ссылкой

DirectoryIterator::isLink

(PHP 5, PHP 7)

DirectoryIterator::isLink — Определяет, является ли текущий элемент DirectoryIterator символической ссылкой

Описание

public bool DirectoryIterator::isLink ( void )

Определяет, является ли текущий элемент DirectoryIterator символической ссылкой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если элемент является символической ссылкой, иначе FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isLink()

Этот пример содержит рекурсивную функцию для удаления дерева каталогов.

<?php
/**
 * Данная функция рекурсивно удаляет все файлы, символические ссылки и директории
 * по указанному пути.
 *
 * @param string $path Path to the directory to remove.
 */
function removeDir($path) {
    $dir = new DirectoryIterator($path);
    foreach ($dir as $fileinfo) {
        if ($fileinfo->isFile() || $fileinfo->isLink()) {
            unlink($fileinfo->getPathName());
        } elseif (!$fileinfo->isDot() && $fileinfo->isDir()) {
            removeDir($fileinfo->getPathName());
        }
    }
    rmdir($path);
}

removeDir('foo');
?>

Смотрите также

  • DirectoryIterator::getType() - Определяет тип текущего элемента DirectoryIterator
  • DirectoryIterator::isDir() - Определяет, является ли текущий элемент DirectoryIterator директорией
  • DirectoryIterator::isDot() - Определяет, является ли текущий элемент DirectoryIterator '.' или '..'
  • DirectoryIterator::isFile() - Определяет, является ли текущий элемент DirectoryIterator обычным файлом


Определяет, доступен ли текущий элемент DirectoryIterator для чтения

  • « DirectoryIterator::isLink
  • DirectoryIterator::isWritable »
  • PHP Manual
  • DirectoryIterator
  • Определяет, доступен ли текущий элемент DirectoryIterator для чтения

DirectoryIterator::isReadable

(PHP 5, PHP 7)

DirectoryIterator::isReadable — Определяет, доступен ли текущий элемент DirectoryIterator для чтения

Описание

public bool DirectoryIterator::isReadable ( void )

Определяет, доступен ли текущий элемент DirectoryIterator для чтения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл доступен для чтения, иначе FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isReadable()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isReadable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
banana.jpg
example.php
pears.jpg

Смотрите также

  • DirectoryIterator::isExecutable() - Определяет, является ли текущий элемент DirectoryIterator исполняемым
  • DirectoryIterator::isWritable() - Определяет, доступен ли текущий элемент DirectoryIterator для записи
  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item


Определяет, доступен ли текущий элемент DirectoryIterator для записи

  • « DirectoryIterator::isReadable
  • DirectoryIterator::key »
  • PHP Manual
  • DirectoryIterator
  • Определяет, доступен ли текущий элемент DirectoryIterator для записи

DirectoryIterator::isWritable

(PHP 5, PHP 7)

DirectoryIterator::isWritable — Определяет, доступен ли текущий элемент DirectoryIterator для записи

Описание

public bool DirectoryIterator::isWritable ( void )

Определяет, доступен ли текущий элемент DirectoryIterator для записи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл или директория доступны для записи, иначе FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::isWritable()

Этот пример показывает список файлов и директорий, которые могут быть открыты для записи, расположенные в директории, содержащей выполняемый скрипт.

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
foreach ($iterator as $fileinfo) {
    if ($fileinfo->isWritable()) {
        echo $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

apples.txt
bananas.html
pears

Смотрите также

  • DirectoryIterator::getPerms() - Возвращает набор прав для текущего элемента DirectoryIterator item
  • DirectoryIterator::isExecutable() - Определяет, является ли текущий элемент DirectoryIterator исполняемым
  • DirectoryIterator::isReadable() - Определяет, доступен ли текущий элемент DirectoryIterator для чтения


Возвращает ключ текущего элемента DirectoryIterator

  • « DirectoryIterator::isWritable
  • DirectoryIterator::next »
  • PHP Manual
  • DirectoryIterator
  • Возвращает ключ текущего элемента DirectoryIterator

DirectoryIterator::key

(PHP 5, PHP 7)

DirectoryIterator::key — Возвращает ключ текущего элемента DirectoryIterator

Описание

public string DirectoryIterator::key ( void )

Возвращает ключ текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ текущего элемента DirectoryIterator.

Примеры

Пример #1 Пример использования DirectoryIterator::key()

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    if (!$fileinfo->isDot()) {
        echo $fileinfo->key() . " => " . $fileinfo->getFilename() . "\n";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

0 => apple.jpg
1 => banana.jpg
2 => index.php
3 => pear.jpg

Смотрите также

  • DirectoryIterator::current() - Возвращает текущий элемент DirectoryIterator
  • DirectoryIterator::next() - Перемещает указатель на следующий элемент DirectoryIterator
  • DirectoryIterator::rewind() - Устанавливает указатель на первый элемент DirectoryIterator
  • DirectoryIterator::valid() - Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом
  • Iterator::key() - Возвращает ключ текущего элемента


Перемещает указатель на следующий элемент DirectoryIterator

  • « DirectoryIterator::key
  • DirectoryIterator::rewind »
  • PHP Manual
  • DirectoryIterator
  • Перемещает указатель на следующий элемент DirectoryIterator

DirectoryIterator::next

(PHP 5, PHP 7)

DirectoryIterator::next — Перемещает указатель на следующий элемент DirectoryIterator

Описание

public void 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)

DirectoryIterator::rewind — Устанавливает указатель на первый элемент DirectoryIterator

Описание

public void 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)

DirectoryIterator::seek — Перемещает указатель DirectoryIterator на определённую позицию

Описание

public void DirectoryIterator::seek ( int $position )

Перемещает указатель DirectoryIterator на определённую позицию.

Список параметров

position

Номер позиции для перемещения. Нумерация начинается с нуля.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования DirectoryIterator::seek()

Перейти к четвертому элементу в директории, содержащей выполняемый скрипт. Первые два, как правило . и ...

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));
$iterator->seek(3);
if ($iterator->valid()) {
    echo $iterator->getFilename();
} else {
    echo 'Нет третьего элемента в директории';
}
?>

Смотрите также

  • DirectoryIterator::rewind() - Устанавливает указатель на первый элемент DirectoryIterator
  • DirectoryIterator::next() - Перемещает указатель на следующий элемент DirectoryIterator
  • SeekableIterator::seek() - Осуществляет перемещение к заданной позиции


Возвращает имя файла в виде строки

  • « DirectoryIterator::seek
  • DirectoryIterator::valid »
  • PHP Manual
  • DirectoryIterator
  • Возвращает имя файла в виде строки

DirectoryIterator::__toString

(PHP 5, PHP 7)

DirectoryIterator::__toString — Возвращает имя файла в виде строки

Описание

public string DirectoryIterator::__toString ( void )

Возвращает имя файла текущего элемента DirectoryIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла текущего элемента DirectoryIterator.

Примеры

Пример #1 Пример использования DirectoryIterator::__toString()

Этот пример выведет список содержимого директории, содержащей выполняемый скрипт.

<?php
$dir = new DirectoryIterator(dirname(__FILE__));
foreach ($dir as $fileinfo) {
    echo $fileinfo;
}
?>

Результатом выполнения данного примера будет что-то подобное:

.
..
apple.jpg
banana.jpg
index.php
pear.jpg

Смотрите также

  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • Магический метод __toString()


Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом

  • « DirectoryIterator::__toString
  • EmptyIterator »
  • PHP Manual
  • DirectoryIterator
  • Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом

DirectoryIterator::valid

(PHP 5, PHP 7)

DirectoryIterator::valid — Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом

Описание

public bool DirectoryIterator::valid ( void )

Проверяет, является ли текущий элемент DirectoryIterator допустимым файлом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если элемент является допустимым, иначе FALSE

Примеры

Пример #1 Пример использования DirectoryIterator::valid()

<?php
$iterator = new DirectoryIterator(dirname(__FILE__));

// Loop to end of iterator
while($iterator->valid()) {
    $iterator->next();
}

$iterator->valid(); // FALSE
$iterator->rewind();
$iterator->valid(); // TRUE

?>

Смотрите также

  • DirectoryIterator::current() - Возвращает текущий элемент DirectoryIterator
  • DirectoryIterator::key() - Возвращает ключ текущего элемента DirectoryIterator
  • DirectoryIterator::next() - Перемещает указатель на следующий элемент DirectoryIterator
  • DirectoryIterator::rewind() - Устанавливает указатель на первый элемент DirectoryIterator
  • Iterator::valid() - Проверка корректности позиции


Класс EmptyIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Класс EmptyIterator для пустого итератора.

Обзор классов

EmptyIterator implements Iterator {
/* Методы */
public mixed current ( void )
public scalar key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
}

Содержание

  • EmptyIterator::current — Метод current()
  • EmptyIterator::key — Метод key()
  • EmptyIterator::next — Метод next()
  • EmptyIterator::rewind — Метод rewind()
  • EmptyIterator::valid — Метод valid()


Метод current()

  • « EmptyIterator
  • EmptyIterator::key »
  • PHP Manual
  • EmptyIterator
  • Метод current()

EmptyIterator::current

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::current — Метод current()

Описание

public mixed EmptyIterator::current ( void )

Эта функция не должна вызываться. Вызывает исключение при попытке доступа.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Ошибки

Вызывает исключение Exception при вызове.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Метод key()

  • « EmptyIterator::current
  • EmptyIterator::next »
  • PHP Manual
  • EmptyIterator
  • Метод key()

EmptyIterator::key

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::key — Метод key()

Описание

public scalar EmptyIterator::key ( void )

Эта функция не должна вызываться. Вызывает исключение при попытке доступа.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Ошибки

Вызывает исключение Exception при вызове.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Метод next()

  • « EmptyIterator::key
  • EmptyIterator::rewind »
  • PHP Manual
  • EmptyIterator
  • Метод next()

EmptyIterator::next

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::next — Метод next()

Описание

public void EmptyIterator::next ( void )

Нет действия. Ничего не делает.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Метод rewind()

  • « EmptyIterator::next
  • EmptyIterator::valid »
  • PHP Manual
  • EmptyIterator
  • Метод rewind()

EmptyIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::rewind — Метод rewind()

Описание

public void EmptyIterator::rewind ( void )

Нет действия. Ничего не делает.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Метод valid()

  • « EmptyIterator::rewind
  • FilesystemIterator »
  • PHP Manual
  • EmptyIterator
  • Метод valid()

EmptyIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

EmptyIterator::valid — Метод valid()

Описание

public bool EmptyIterator::valid ( void )

Метод valid() класса EmptyIterator.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

FALSE


Класс FilesystemIterator

(PHP 5 >= 5.3.0, PHP 7)

Введение

Итератор файловой системы

Обзор классов

FilesystemIterator extends DirectoryIterator implements SeekableIterator {
/* Константы */
const integer CURRENT_AS_PATHNAME = 32 ;
const integer CURRENT_AS_FILEINFO = 0 ;
const integer CURRENT_AS_SELF = 16 ;
const integer CURRENT_MODE_MASK = 240 ;
const integer KEY_AS_PATHNAME = 0 ;
const integer KEY_AS_FILENAME = 256 ;
const integer FOLLOW_SYMLINKS = 512 ;
const integer KEY_MODE_MASK = 3840 ;
const integer NEW_CURRENT_AND_KEY = 256 ;
const integer SKIP_DOTS = 4096 ;
const integer UNIX_PATHS = 8192 ;
/* Методы */
public __construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public mixed current ( void )
public int getFlags ( void )
public string key ( void )
public void next ( void )
public void rewind ( void )
public void setFlags ([ int $flags ] )
/* Наследуемые методы */
public DirectoryIterator DirectoryIterator::current ( void )
public int DirectoryIterator::getATime ( void )
public string DirectoryIterator::getBasename ([ string $suffix ] )
public int DirectoryIterator::getCTime ( void )
public string DirectoryIterator::getExtension ( void )
public string DirectoryIterator::getFilename ( void )
public int DirectoryIterator::getGroup ( void )
public int DirectoryIterator::getInode ( void )
public int DirectoryIterator::getMTime ( void )
public int DirectoryIterator::getOwner ( void )
public string DirectoryIterator::getPath ( void )
public string DirectoryIterator::getPathname ( void )
public int DirectoryIterator::getPerms ( void )
public int DirectoryIterator::getSize ( void )
public string DirectoryIterator::getType ( void )
public bool DirectoryIterator::isDir ( void )
public bool DirectoryIterator::isDot ( void )
public bool DirectoryIterator::isExecutable ( void )
public bool DirectoryIterator::isFile ( void )
public bool DirectoryIterator::isLink ( void )
public bool DirectoryIterator::isReadable ( void )
public bool DirectoryIterator::isWritable ( void )
public string DirectoryIterator::key ( void )
public void DirectoryIterator::next ( void )
public void DirectoryIterator::rewind ( void )
public void DirectoryIterator::seek ( int $position )
public string DirectoryIterator::__toString ( void )
public bool DirectoryIterator::valid ( void )
}

Предопределенные константы

FilesystemIterator::CURRENT_AS_PATHNAME

Заставляет метод FilesystemIterator::current() вернуть путь.

FilesystemIterator::CURRENT_AS_FILEINFO

Заставляет метод FilesystemIterator::current() вернуть экземпляр SplFileInfo.

FilesystemIterator::CURRENT_AS_SELF

Заставляет метод FilesystemIterator::current() вернуть $this (FilesystemIterator).

FilesystemIterator::CURRENT_MODE_MASK

Маскирует FilesystemIterator::current()

FilesystemIterator::KEY_AS_PATHNAME

Заставляет метод FilesystemIterator::key() вернуть путь.

FilesystemIterator::KEY_AS_FILENAME

Заставляет метод FilesystemIterator::key() вернуть имя файла.

FilesystemIterator::FOLLOW_SYMLINKS

Заставляет метод RecursiveDirectoryIterator::hasChildren() следовать символическим ссылкам.

FilesystemIterator::KEY_MODE_MASK

Маскирует FilesystemIterator::key()

FilesystemIterator::NEW_CURRENT_AND_KEY

Тоже, что FilesystemIterator::KEY_AS_FILENAME | FilesystemIterator::CURRENT_AS_FILEINFO.

FilesystemIterator::SKIP_DOTS

Пропускает точечные файлы (. and ..).

FilesystemIterator::UNIX_PATHS

Заставляет все пути использовать обратный слеш в Unix-стиле, независимо от настроек системы по умолчанию. Обратите внимание, что path, переданный в конструктор, не меняется.

Список изменений

Версия | Описание
5.3.1 | Добавлена константа FilesystemIterator::FOLLOW_SYMLINKS

Содержание

  • FilesystemIterator::__construct — Создает новый итератор файловой системы
  • FilesystemIterator::current — Текущий файл
  • FilesystemIterator::getFlags — Получение флагов настроек объекта
  • FilesystemIterator::key — Определение ключа текущего файла
  • FilesystemIterator::next — Перемещение указателя на следующий файл
  • FilesystemIterator::rewind — Перемещение указателя на начало
  • FilesystemIterator::setFlags — Задание настроечных флагов


Создает новый итератор файловой системы

  • « FilesystemIterator
  • FilesystemIterator::current »
  • PHP Manual
  • FilesystemIterator
  • Создает новый итератор файловой системы

FilesystemIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::__construct — Создает новый итератор файловой системы

Описание

public FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )

Создает новый объект итератора файловой системы на основе аргумента path.

Список параметров

path

Путь к объекту файловой системы, по которому требуется навигация.

flags

Поведение некоторых методов можно задать с помощью флагов. Список этих флагов можно найти на странице предопределенных констант FilesystemIterator. Также их можно задать позже методом FilesystemIterator::setFlags().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение UnexpectedValueException, если найти путь path оказалось невозможным.

Примеры

Пример #1 Пример использования FilesystemIterator::__construct()

<?php
$it = new FilesystemIterator(dirname(__FILE__));
foreach ($it as $fileinfo) {
    echo $fileinfo->getFilename() . "\n";
}
?>

Результат выполнения данного примера:

apples.jpg
banana.jpg
example.php

Смотрите также

  • FilesystemIterator::setFlags() - Задание настроечных флагов
  • DirectoryIterator::__construct() - Создаёт новый итератор директорий по пути


Текущий файл

  • « FilesystemIterator::__construct
  • FilesystemIterator::getFlags »
  • PHP Manual
  • FilesystemIterator
  • Текущий файл

FilesystemIterator::current

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::current — Текущий файл

Описание

public mixed FilesystemIterator::current ( void )

Извлекает информацию о текущем файле.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя файла, информация о файле, либо $this, в зависимости от установленных флагов. См. Константы FilesystemIterator.

Примеры

Пример #1 Пример использования FilesystemIterator::current()

В этом примере будет выведен список содержимого директории, в которой находится выполняемый скрипт.

<?php
$iterator = new FilesystemIterator(__DIR__, FilesystemIterator::CURRENT_AS_PATHNAME);
foreach ($iterator as $fileinfo) {
    echo $iterator->current() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

Смотрите также

  • Константы FilesystemIterator
  • DirectoryIterator::current() - Возвращает текущий элемент DirectoryIterator
  • DirectoryIterator::getFileName() - Возвращает имя файла текущего элемента DirectoryIterator


Получение флагов настроек объекта

  • « FilesystemIterator::current
  • FilesystemIterator::key »
  • PHP Manual
  • FilesystemIterator
  • Получение флагов настроек объекта

FilesystemIterator::getFlags

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::getFlags — Получение флагов настроек объекта

Описание

public int FilesystemIterator::getFlags ( void )

Получает значения флагов настроек объекта в том виде, как они были заданы методами FilesystemIterator::__construct() или FilesystemIterator::setFlags().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Целое число, представляющее заданные флаги.

Смотрите также

  • FilesystemIterator::__construct() - Создает новый итератор файловой системы
  • FilesystemIterator::setFlags() - Задание настроечных флагов


Определение ключа текущего файла

  • « FilesystemIterator::getFlags
  • FilesystemIterator::next »
  • PHP Manual
  • FilesystemIterator
  • Определение ключа текущего файла

FilesystemIterator::key

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::key — Определение ключа текущего файла

Описание

public string FilesystemIterator::key ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь или имя файла в зависимости от установленных флагов. См. Константы FilesystemIterator.

Примеры

Пример #1 Пример использования FilesystemIterator::key()

Этот пример выведет список содержимого директории, в которой расположен скрипт.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_FILENAME);
foreach ($iterator as $fileinfo) {
    echo $iterator->key() . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple.jpg
banana.jpg
example.php

Смотрите также

  • FilesystemIterator constants
  • DirectoryIterator::key() - Возвращает ключ текущего элемента DirectoryIterator
  • DirectoryIterator::getFilename() - Возвращает имя файла текущего элемента DirectoryIterator
  • DirectoryIterator::getPathname() - Возвращает путь и имя файла текущего элемента DirectoryIterator


Перемещение указателя на следующий файл

  • « FilesystemIterator::key
  • FilesystemIterator::rewind »
  • PHP Manual
  • FilesystemIterator
  • Перемещение указателя на следующий файл

FilesystemIterator::next

(PHP 5 >= 5.3.0, PHP 7)

FilesystemIterator::next — Перемещение указателя на следующий файл

Описание

public void 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)

FilesystemIterator::rewind — Перемещение указателя на начало

Описание

public void 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)

FilesystemIterator::setFlags — Задание настроечных флагов

Описание

public void FilesystemIterator::setFlags ([ int $flags ] )

Задает настройки итератора.

Список параметров

flags

Флаги, которые необходимо установить. См. Константы FilesystemIterator.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования FilesystemIterator::key()

Этот пример демонстрирует различия между флагами FilesystemIterator::KEY_AS_PATHNAME и FilesystemIterator::KEY_AS_FILENAME.

<?php
$iterator = new FilesystemIterator(dirname(__FILE__), FilesystemIterator::KEY_AS_PATHNAME);
echo "Ключом является путь к файлу:\n";
foreach ($iterator as $key => $fileinfo) {
    echo $key . "\n";
}

$iterator->setFlags(FilesystemIterator::KEY_AS_FILENAME);
echo "\nКлючом является имя файла:\n";
foreach ($iterator as $key => $fileinfo) {
    echo $key . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Ключом является путь к файлу:
/www/examples/apple.jpg
/www/examples/banana.jpg
/www/examples/example.php

nКлючом является имя файла:
apple.jpg
banana.jpg
example.php

Смотрите также

  • FilesystemIterator::__construct() - Создает новый итератор файловой системы
  • FilesystemIterator::getFlags() - Получение флагов настроек объекта


Класс FilterIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Этот абстрактный итератор фильтрует нежелательные значения. Этот класс следует расширить для реализации пользовательских фильтров итератора. Метод FilterIterator::accept() должен быть реализован в подклассе.

Обзор классов

abstract FilterIterator extends IteratorIterator implements OuterIterator {
/* Методы */
public abstract bool accept ( void )
public __construct ( Iterator $iterator )
public mixed current ( void )
public Iterator getInnerIterator ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
}

Содержание

  • FilterIterator::accept — Проверяет, является ли текущий элемент итератора допустимым
  • FilterIterator::__construct — Создает FilterIterator
  • FilterIterator::current — Получает значение текущего элемента
  • FilterIterator::getInnerIterator — Получает внутренний итератор
  • FilterIterator::key — Получает текущий ключ
  • FilterIterator::next — Перемещает итератор к следующему элементу
  • FilterIterator::rewind — Возвращает итератор в начало
  • FilterIterator::valid — Проверяет, является ли текущий элемент допустимым


Проверяет, является ли текущий элемент итератора допустимым

  • « FilterIterator
  • FilterIterator::__construct »
  • PHP Manual
  • FilterIterator
  • Проверяет, является ли текущий элемент итератора допустимым

FilterIterator::accept

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::accept — Проверяет, является ли текущий элемент итератора допустимым

Описание

public abstract bool FilterIterator::accept ( void )

Проверяет, является ли текущий элемент итератора допустимым для данного фильтра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE если текущий элемент допустим, в противном случае FALSE.

Примеры

Пример #1 Пример использования FilterIterator::accept()

<?php
// Этот итератор фильтрует все значения с длиной менее 10 символов
class LengthFilterIterator extends FilterIterator {

    public function accept() {
        // Допускает строки с длиной 10 символов и более
        return strlen(parent::current()) >= 10;
    }

}

$arrayIterator = new ArrayIterator(array('тест1', 'больше 10 символов'));
$lengthFilter = new LengthFilterIterator($arrayIterator);

foreach ($lengthFilter as $value) {
    echo $value . "\n";
}
?>

Результат выполнения данного примера:

больше 10 символов


Создает FilterIterator

  • « FilterIterator::accept
  • FilterIterator::current »
  • PHP Manual
  • FilterIterator
  • Создает FilterIterator

FilterIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::__construct — Создает FilterIterator

Описание

public FilterIterator::__construct ( Iterator $iterator )

Создает объект класса FilterIterator, который состоит из итератора, переданного в параметре iterator, и фильтров, применяемых к нему.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Фильтруемый итератор.

Возвращаемые значения

Объект класса FilterIterator.

Смотрите также

  • LimitIterator::__construct() - Конструктор класса LimitIterator


Получает значение текущего элемента

  • « FilterIterator::__construct
  • FilterIterator::getInnerIterator »
  • PHP Manual
  • FilterIterator
  • Получает значение текущего элемента

FilterIterator::current

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::current — Получает значение текущего элемента

Описание

public mixed FilterIterator::current ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Получает значение текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего элемента.

Смотрите также

  • FilterIterator::key() - Получает текущий ключ
  • FilterIterator::next() - Перемещает итератор к следующему элементу


Получает внутренний итератор

  • « FilterIterator::current
  • FilterIterator::key »
  • PHP Manual
  • FilterIterator
  • Получает внутренний итератор

FilterIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::getInnerIterator — Получает внутренний итератор

Описание

public Iterator FilterIterator::getInnerIterator ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Получает внутренний итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний итератор.


Получает текущий ключ

  • « FilterIterator::getInnerIterator
  • FilterIterator::next »
  • PHP Manual
  • FilterIterator
  • Получает текущий ключ

FilterIterator::key

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::key — Получает текущий ключ

Описание

public mixed FilterIterator::key ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Получает текущий ключ.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ.

Смотрите также

  • FilterIterator::next() - Перемещает итератор к следующему элементу
  • FilterIterator::current() - Получает значение текущего элемента


Перемещает итератор к следующему элементу

  • « FilterIterator::key
  • FilterIterator::rewind »
  • PHP Manual
  • FilterIterator
  • Перемещает итератор к следующему элементу

FilterIterator::next

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::next — Перемещает итератор к следующему элементу

Описание

public void FilterIterator::next ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Перемещает итератор к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • FilterIterator::current() - Получает значение текущего элемента
  • FilterIterator::next()


Возвращает итератор в начало

  • « FilterIterator::next
  • FilterIterator::valid »
  • PHP Manual
  • FilterIterator
  • Возвращает итератор в начало

FilterIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::rewind — Возвращает итератор в начало

Описание

public void FilterIterator::rewind ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает итератор в начало.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • FilterIterator::current() - Получает значение текущего элемента
  • FilterIterator::key() - Получает текущий ключ
  • FilterIterator::next() - Перемещает итератор к следующему элементу


Проверяет, является ли текущий элемент допустимым

  • « FilterIterator::rewind
  • GlobIterator »
  • PHP Manual
  • FilterIterator
  • Проверяет, является ли текущий элемент допустимым

FilterIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

FilterIterator::valid — Проверяет, является ли текущий элемент допустимым

Описание

public bool FilterIterator::valid ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Проверяет, является ли текущий элемент допустимым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE если текущий элемент допустим, в противном случае FALSE


Класс GlobIterator

(PHP 5 >= 5.3.0, PHP 7)

Введение

Итерирует через файловую систему похожим образом, как работает glob().

Обзор классов

GlobIterator extends FilesystemIterator implements SeekableIterator , Countable {
/* Методы */
public __construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )
public int count ( void )
/* Наследуемые методы */
public FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public mixed FilesystemIterator::current ( void )
public int FilesystemIterator::getFlags ( void )
public string FilesystemIterator::key ( void )
public void FilesystemIterator::next ( void )
public void FilesystemIterator::rewind ( void )
public void FilesystemIterator::setFlags ([ int $flags ] )
}

Содержание

  • GlobIterator::__construct — Создает итератор директории, используя glob-выражение
  • GlobIterator::count — Определяет количество директорий и файлов


Создает итератор директории, используя glob-выражение

  • « GlobIterator
  • GlobIterator::count »
  • PHP Manual
  • GlobIterator
  • Создает итератор директории, используя glob-выражение

GlobIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

GlobIterator::__construct — Создает итератор директории, используя glob-выражение

Описание

public GlobIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )

Создает новый итератор директории на основе glob-выражения.

Список параметров

path

Путь к директории.

flags

Настроечные флаги. Флаги можно задавать битовой маской констант FilesystemIterator.

Примеры

Пример #1 Пример использования GlobIterator

<?php
$iterator = new GlobIterator('*.dll', FilesystemIterator::KEY_AS_FILENAME);

if (!$iterator->count()) {
    echo 'Нет совпадений';
} else {
    $n = 0;

    printf("Найдено элементов: %d \r\n", $iterator->count());

    foreach ($iterator as $item) {
        printf("[%d] %s\r\n", ++$n, $iterator->key());
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

Найдено элементов: 2
[1] php5ts.dll
[2] php_gd2.dll

Смотрите также

  • DirectoryIterator::__construct() - Создаёт новый итератор директорий по пути
  • GlobIterator::count() - Определяет количество директорий и файлов
  • glob() - Находит файловые пути, совпадающие с шаблоном


Определяет количество директорий и файлов

  • « GlobIterator::__construct
  • InfiniteIterator »
  • PHP Manual
  • GlobIterator
  • Определяет количество директорий и файлов

GlobIterator::count

(PHP 5 >= 5.3.0, PHP 7)

GlobIterator::count — Определяет количество директорий и файлов

Описание

public int GlobIterator::count ( void )

Определяет количество директорий и файлов, совпадающих с glob-выражением.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество директорий и файлов в виде целого числа типа integer.

Примеры

Пример #1 Пример использования GlobIterator::count()

<?php
$iterator = new GlobIterator('*.xml');

printf("Найдено элементов: %d \r\n", $iterator->count());
?>

Результатом выполнения данного примера будет что-то подобное:

Найдено элементов: 8

Смотрите также

  • GlobIterator::__construct() - Создает итератор директории, используя glob-выражение
  • count() - Подсчитывает количество элементов массива или что-то в объекте
  • glob() - Находит файловые пути, совпадающие с шаблоном


Класс InfiniteIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Класс InfiniteIterator позволяет сделать бесконечный перебор итератора без необходимости вручную перебирать итератор до момента достижения его конца.

Обзор классов

InfiniteIterator extends IteratorIterator implements OuterIterator {
/* Методы */
public __construct ( Iterator $iterator )
public void next ( void )
/* Наследуемые методы */
public IteratorIterator::__construct ( Traversable $iterator )
public mixed IteratorIterator::current ( void )
public Traversable IteratorIterator::getInnerIterator ( void )
public scalar IteratorIterator::key ( void )
public void IteratorIterator::next ( void )
public void IteratorIterator::rewind ( void )
public bool IteratorIterator::valid ( void )
}

Содержание

  • InfiniteIterator::__construct — Конструктор класса InfiniteIterator
  • InfiniteIterator::next — Перемещает итератор на одну позицию вперед или в начало


Конструктор класса InfiniteIterator

  • « InfiniteIterator
  • InfiniteIterator::next »
  • PHP Manual
  • InfiniteIterator
  • Конструктор класса InfiniteIterator

InfiniteIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

InfiniteIterator::__construct — Конструктор класса InfiniteIterator

Описание

public InfiniteIterator::__construct ( Iterator $iterator )

Создает новый объект класса InfiniteIterator на основе объекта-итератора Iterator.

Список параметров

iterator

Бесконечный итератор.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение E_RECOVERABLE_ERROR, если переданный параметр iterator не является объектом класса Iterator.

Примеры

Пример #1 Пример использования InfiniteIterator::__construct()

<?php
$arrayit  = new ArrayIterator(array('cat','dog'));
$infinite = new InfiniteIterator($arrayit);
$limit    = new LimitIterator($infinite, 0, 7);
foreach($limit as $value)
{
    echo "$value\n";
}
?>

Результат выполнения данного примера:

cat
dog
cat
dog
cat
dog
cat

Смотрите также

  • InfiniteIterator::next() - Перемещает итератор на одну позицию вперед или в начало


Перемещает итератор на одну позицию вперед или в начало

  • « InfiniteIterator::__construct
  • IteratorIterator »
  • PHP Manual
  • InfiniteIterator
  • Перемещает итератор на одну позицию вперед или в начало

InfiniteIterator::next

(PHP 5 >= 5.1.0, PHP 7)

InfiniteIterator::next — Перемещает итератор на одну позицию вперед или в начало

Описание

public void InfiniteIterator::next ( void )

Перемещает внутренний указатель объекта Iterator на следующий элемент или на первый элемент, если текущий элемент был последним.

Замечание:

Итератор InfiniteIterator останавливается, когда хранящийся внутри объект Iterator оказывается пустым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • InfiniteIterator::__construct() - Конструктор класса InfiniteIterator


Класс IteratorIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Этот итератор-обертка позволяет преобразовывать все, что является "обходимым" (traversable) в итераторе. Важно понимать, что большинство классов, которые не реализуют итераторы, имеют на то причины, так как, скорее всего, они не позволяют реализовать полный набор возможностей итератора. Если так, то должны быть предприняты меры для предотвращения неправильного использования, иначе можно ожидать исключений или фатальных ошибок.

Обзор классов

IteratorIterator implements OuterIterator {
/* Методы */
public __construct ( Traversable $iterator )
public mixed current ( void )
public Traversable getInnerIterator ( void )
public scalar key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
}

Примечания

Замечание:

Этот класс разрешает доступ к методам внутреннего итератора через магический метод __call.

Содержание

  • IteratorIterator::__construct — Создает итератор из чего-либо, что является обходимым (traversable)
  • IteratorIterator::current — Получает текущее значение
  • IteratorIterator::getInnerIterator — Получает внутренний итератор
  • IteratorIterator::key — Получает ключ текущего элемента
  • IteratorIterator::next — Перемещает итератор к следующему элементу
  • IteratorIterator::rewind — Возвращает итератор к первому элементу
  • IteratorIterator::valid — Проверяет, является ли итератор допустимым


Создает итератор из чего-либо, что является обходимым (traversable)

  • « IteratorIterator
  • IteratorIterator::current »
  • PHP Manual
  • IteratorIterator
  • Создает итератор из чего-либо, что является обходимым (traversable)

IteratorIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::__construct — Создает итератор из чего-либо, что является обходимым (traversable)

Описание

public IteratorIterator::__construct ( Traversable $iterator )

Создает итератор из чего-либо, что является обходимым (traversable).

Список параметров

iterator

Обходимый (traversable) итератор.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Traversable


Получает текущее значение

  • « IteratorIterator::__construct
  • IteratorIterator::getInnerIterator »
  • PHP Manual
  • IteratorIterator
  • Получает текущее значение

IteratorIterator::current

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::current — Получает текущее значение

Описание

public mixed IteratorIterator::current ( void )

Получает значение текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего элемента.

Смотрите также

  • IteratorIterator::key() - Получает ключ текущего элемента


Получает внутренний итератор

  • « IteratorIterator::current
  • IteratorIterator::key »
  • PHP Manual
  • IteratorIterator
  • Получает внутренний итератор

IteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::getInnerIterator — Получает внутренний итератор

Описание

public Traversable IteratorIterator::getInnerIterator ( void )

Получает внутренний итератор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний итератор, который был передан методу IteratorIterator::__construct().

Смотрите также

  • Iterator
  • OuterIterator


Получает ключ текущего элемента

  • « IteratorIterator::getInnerIterator
  • IteratorIterator::next »
  • PHP Manual
  • IteratorIterator
  • Получает ключ текущего элемента

IteratorIterator::key

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::key — Получает ключ текущего элемента

Описание

public scalar IteratorIterator::key ( void )

Получает ключ текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ключ текущего элемента.

Смотрите также

  • IteratorIterator::current() - Получает текущее значение


Перемещает итератор к следующему элементу

  • « IteratorIterator::key
  • IteratorIterator::rewind »
  • PHP Manual
  • IteratorIterator
  • Перемещает итератор к следующему элементу

IteratorIterator::next

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::next — Перемещает итератор к следующему элементу

Описание

public void IteratorIterator::next ( void )

Перемещает итератор к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • IteratorIterator::rewind() - Возвращает итератор к первому элементу
  • IteratorIterator::valid() - Проверяет, является ли итератор допустимым


Возвращает итератор к первому элементу

  • « IteratorIterator::next
  • IteratorIterator::valid »
  • PHP Manual
  • IteratorIterator
  • Возвращает итератор к первому элементу

IteratorIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::rewind — Возвращает итератор к первому элементу

Описание

public void IteratorIterator::rewind ( void )

Возвращает итератор к первому элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • IteratorIterator::next() - Перемещает итератор к следующему элементу
  • IteratorIterator::valid() - Проверяет, является ли итератор допустимым


Проверяет, является ли итератор допустимым

  • « IteratorIterator::rewind
  • LimitIterator »
  • PHP Manual
  • IteratorIterator
  • Проверяет, является ли итератор допустимым

IteratorIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

IteratorIterator::valid — Проверяет, является ли итератор допустимым

Описание

public bool IteratorIterator::valid ( void )

Проверяет, является ли итератор допустимым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если итератор является допустимым; в противном случае - FALSE

Смотрите также

  • iterator_count() - Подсчитывает количество элементов в итераторе
  • IteratorIterator::current() - Получает текущее значение


Класс LimitIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Класс LimitIterator позволяет сделать перебор ограниченного количества элементов в Iterator.

Обзор классов

LimitIterator extends IteratorIterator implements OuterIterator {
/* Методы */
public __construct ( Iterator $iterator [, int $offset = 0 [, int $count = -1 ]] )
public mixed current ( void )
public Iterator getInnerIterator ( void )
public int getPosition ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public int seek ( int $position )
public bool valid ( void )
}

Примеры

Пример #1 Пример использования LimitIterator

<?php

// Создать итератор для ограничения
$fruits = new ArrayIterator(array(
    'apple',
    'banana',
    'cherry',
    'damson',
    'elderberry'
));

// Цикл только по первым трем фруктам
foreach (new LimitIterator($fruits, 0, 3) as $fruit) {
    var_dump($fruit);
}

echo "\n";

// Цикл начиная с третьего фрукта и до конца
// Примечание: смещение начинается с нуля для яблока
foreach (new LimitIterator($fruits, 2) as $fruit) {
    var_dump($fruit);
}

?>

Результат выполнения данного примера:

string(5) "apple"
string(6) "banana"
string(6) "cherry"

string(6) "cherry"
string(6) "damson"
string(10) "elderberry"

Содержание

  • LimitIterator::__construct — Конструктор класса LimitIterator
  • LimitIterator::current — Получение текущего элемента
  • LimitIterator::getInnerIterator — Получение внутреннего объекта-итератора
  • LimitIterator::getPosition — Возвращает текущую позицию
  • LimitIterator::key — Получение текущего ключа
  • LimitIterator::next — Перемещение к следующей позиции
  • LimitIterator::rewind — Перемещает указатель на начальную позицию
  • LimitIterator::seek — Перемещает итератор на заданную позицию
  • LimitIterator::valid — Проверяет валидность текущего элемента


Конструктор класса LimitIterator

  • « LimitIterator
  • LimitIterator::current »
  • PHP Manual
  • LimitIterator
  • Конструктор класса LimitIterator

LimitIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::__construct — Конструктор класса LimitIterator

Описание

public LimitIterator::__construct ( Iterator $iterator [, int $offset = 0 [, int $count = -1 ]] )

Создает новый объект класса LimitIterator на основе заданного объекта iterator, начального смещения offset максимального числа итераций count.

Список параметров

iterator

Объект-итератор Iterator, число итераций которого требуется ограничить.

offset

Необязательное начальное смещение.

count

Необязательное ограничение количества итераций.

Возвращаемые значения

Новый объект-итератор LimitIterator.

Ошибки

Выбрасывает исключение OutOfRangeException, если смещение offset окажется меньше 0, либо если count окажется меньше -1.

Примеры

Пример #1 Пример использования LimitIterator::__construct()

<?php
$ait = new ArrayIterator(array('a', 'b', 'c', 'd', 'e'));
$lit = new LimitIterator($ait, 1, 3);
foreach ($lit as $value) {
    echo $value . "\n";
}
?>

Результат выполнения данного примера:

b
c
d

Смотрите также

  • Примеры использования LimitIterator


Получение текущего элемента

  • « LimitIterator::__construct
  • LimitIterator::getInnerIterator »
  • PHP Manual
  • LimitIterator
  • Получение текущего элемента

LimitIterator::current

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::current — Получение текущего элемента

Описание

public mixed LimitIterator::current ( void )

Получает текущий элемент, на который ссылается внутренний указатель Iterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент или NULL, если такового нет.

Смотрите также

  • LimitIterator::key() - Получение текущего ключа
  • LimitIterator::next() - Перемещение к следующей позиции
  • LimitIterator::rewind() - Перемещает указатель на начальную позицию
  • LimitIterator::seek() - Перемещает итератор на заданную позицию
  • LimitIterator::valid() - Проверяет валидность текущего элемента


Получение внутреннего объекта-итератора

  • « LimitIterator::current
  • LimitIterator::getPosition »
  • PHP Manual
  • LimitIterator
  • Получение внутреннего объекта-итератора

LimitIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::getInnerIterator — Получение внутреннего объекта-итератора

Описание

public Iterator LimitIterator::getInnerIterator ( void )

Возвращает объект-итератор Iterator скрытый внутри объекта.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний объект-итератор, переданный конструктору LimitIterator::__construct().

Смотрите также

  • LimitIterator::__construct() - Конструктор класса LimitIterator
  • IteratorIterator::getInnerIterator() - Получает внутренний итератор


Возвращает текущую позицию

  • « LimitIterator::getInnerIterator
  • LimitIterator::key »
  • PHP Manual
  • LimitIterator
  • Возвращает текущую позицию

LimitIterator::getPosition

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::getPosition — Возвращает текущую позицию

Описание

public int LimitIterator::getPosition ( void )

Возвращает текущую позицию (начиная с 0) внутреннего объекта-итератора Iterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая позиция.

Примеры

Пример #1 Пример использования LimitIterator::getPosition()

<?php
$fruits = array(
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
    'd' => 'damson',
    'e' => 'elderberry'
);
$array_it = new ArrayIterator($fruits);
$limit_it = new LimitIterator($array_it, 2, 3);
foreach ($limit_it as $item) {
    echo $limit_it->getPosition() . ' ' . $item . "\n";
}
?>

Результат выполнения данного примера:

2 cherry
3 damson
4 elderberry

Смотрите также

  • FilterIterator::key() - Получает текущий ключ


Получение текущего ключа

  • « LimitIterator::getPosition
  • LimitIterator::next »
  • PHP Manual
  • LimitIterator
  • Получение текущего ключа

LimitIterator::key

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::key — Получение текущего ключа

Описание

public mixed LimitIterator::key ( void )

Возвращает ключ текущего элемента, на который указывает внутренний объект-итератор Iterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ключ текущего элемента.

Смотрите также

  • LimitIterator::getPosition() - Возвращает текущую позицию
  • LimitIterator::current() - Получение текущего элемента
  • LimitIterator::next() - Перемещение к следующей позиции
  • LimitIterator::rewind() - Перемещает указатель на начальную позицию
  • LimitIterator::seek() - Перемещает итератор на заданную позицию
  • LimitIterator::valid() - Проверяет валидность текущего элемента


Перемещение к следующей позиции

  • « LimitIterator::key
  • LimitIterator::rewind »
  • PHP Manual
  • LimitIterator
  • Перемещение к следующей позиции

LimitIterator::next

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::next — Перемещение к следующей позиции

Описание

public void 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)

LimitIterator::rewind — Перемещает указатель на начальную позицию

Описание

public void 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)

LimitIterator::seek — Перемещает итератор на заданную позицию

Описание

public int LimitIterator::seek ( int $position )

Перемещает указатель на заданную позицию position.

Список параметров

position

Позиция, на которую требуется переместить указатель.

Возвращаемые значения

Возвращает смещение от начальной позиции после перемещения.

Ошибки

Выбрасывает исключение OutOfBoundsException, если заданная позиция выходит за пределы, переданные конструктору LimitIterator::__construct().

Смотрите также

  • LimitIterator::current() - Получение текущего элемента
  • LimitIterator::key() - Получение текущего ключа
  • LimitIterator::rewind() - Перемещает указатель на начальную позицию
  • LimitIterator::next() - Перемещение к следующей позиции
  • LimitIterator::valid() - Проверяет валидность текущего элемента


Проверяет валидность текущего элемента

  • « LimitIterator::seek
  • MultipleIterator »
  • PHP Manual
  • LimitIterator
  • Проверяет валидность текущего элемента

LimitIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

LimitIterator::valid — Проверяет валидность текущего элемента

Описание

public bool LimitIterator::valid ( void )

Проверяет, имеет ли текущий элемент допустимое значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • LimitIterator::current() - Получение текущего элемента
  • LimitIterator::key() - Получение текущего ключа
  • LimitIterator::rewind() - Перемещает указатель на начальную позицию
  • LimitIterator::next() - Перемещение к следующей позиции
  • LimitIterator::seek() - Перемещает итератор на заданную позицию


Класс MultipleIterator

(PHP 5 >= 5.3.0, PHP 7)

Введение

Итератор, который последовательно перебирает все подключенные итераторы

Обзор классов

MultipleIterator implements Iterator {
/* Константы */
const integer MIT_NEED_ANY = 0 ;
const integer MIT_NEED_ALL = 1 ;
const integer MIT_KEYS_NUMERIC = 0 ;
const integer MIT_KEYS_ASSOC = 2 ;
/* Методы */
public __construct ([ int $flags = MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC ] )
public void attachIterator ( Iterator $iterator [, string $infos ] )
public bool containsIterator ( Iterator $iterator )
public int countIterators ( void )
public array current ( void )
public void detachIterator ( Iterator $iterator )
public int getFlags ( void )
public array key ( void )
public void next ( void )
public void rewind ( void )
public void setFlags ( int $flags )
public bool valid ( void )
}

Предопределенные константы

MultipleIterator::MIT_NEED_ANY

Не требовать, чтобы все подытераторы были действительными в итерации.

MultipleIterator::MIT_NEED_ALL

Требовать, чтобы все подытераторы были действительными в итерации.

MultipleIterator::MIT_KEYS_NUMERIC

Ключи создаются из позиции подытератора.

MultipleIterator::MIT_KEYS_ASSOC

Ключи создаются из ассоциативной информации подытератора.

Содержание

  • MultipleIterator::attachIterator — Присоединяет итератор
  • MultipleIterator::__construct — Создает новый MultipleIterator
  • MultipleIterator::containsIterator — Проверяет, присоединен ли итератор
  • MultipleIterator::countIterators — Получает число присоединенных итераторов
  • MultipleIterator::current — Получает зарегистрированные итераторы
  • MultipleIterator::detachIterator — Отсоединяет итератор
  • MultipleIterator::getFlags — Получает информацию о флагах
  • MultipleIterator::key — Получает зарегистрированные итераторы
  • MultipleIterator::next — Перемещает все присоединенные итераторы к своим следующим элементам
  • MultipleIterator::rewind — Возвращает в начало все присоединенные итераторы
  • MultipleIterator::setFlags — Устанавливает флаги
  • MultipleIterator::valid — Проверяет корректность подытераторов


Присоединяет итератор

  • « MultipleIterator
  • MultipleIterator::__construct »
  • PHP Manual
  • MultipleIterator
  • Присоединяет итератор

MultipleIterator::attachIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::attachIterator — Присоединяет итератор

Описание

public void MultipleIterator::attachIterator ( Iterator $iterator [, string $infos ] )

Присоединяет итератор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Новый итератор для присоединения.

infos

Ассоциативная информация для итератора (Iterator), которая должна быть представлена целым (integer), строкой (string), или NULL.

Возвращаемые значения

Описание...

Ошибки

IllegalValueException если параметр iterator недействителен, или если infos содержит уже ассоциированную информацию.

Смотрите также

  • MultipleIterator::__construct() - Создает новый MultipleIterator


Создает новый MultipleIterator

  • « MultipleIterator::attachIterator
  • MultipleIterator::containsIterator »
  • PHP Manual
  • MultipleIterator
  • Создает новый MultipleIterator

MultipleIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::__construct — Создает новый MultipleIterator

Описание

public MultipleIterator::__construct ([ int $flags = MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC ] )

Создает новый MultipleIterator.

Список параметров

flags

Флаги для установки, согласно Предопределенным константам.

  • MultipleIterator::MIT_NEED_ALL или MultipleIterator::MIT_NEED_ANY
  • MultipleIterator::MIT_KEYS_NUMERIC или MultipleIterator::MIT_KEYS_ASSOC

По умолчанию MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Итерирование MultipleIterator

<?php
$people = new ArrayIterator(array('John', 'Jane', 'Jack', 'Judy'));
$roles  = new ArrayIterator(array('Developer', 'Scrum Master', 'Project Owner'));

$team = new MultipleIterator($flags);
$team->attachIterator($people, 'person');
$team->attachIterator($roles, 'role');

foreach ($team as $member) {
    print_r($member);
}
?>

Вывод с $flags = MIT_NEED_ALL|MIT_KEYS_NUMERIC

Array
(
    [0] => John
    [1] => Developer
)
Array
(
    [0] => Jane
    [1] => Scrum Master
)
Array
(
    [0] => Jack
    [1] => Project Owner
)

Вывод с $flags = MIT_NEED_ANY|MIT_KEYS_NUMERIC

Array
(
    [0] => John
    [1] => Developer
)
Array
(
    [0] => Jane
    [1] => Scrum Master
)
Array
(
    [0] => Jack
    [1] => Project Owner
)
Array
(
    [0] => Judy
    [1] =>
)

Вывод с $flags = MIT_NEED_ALL|MIT_KEYS_ASSOC

Array
(
    [person] => John
    [role] => Developer
)
Array
(
    [person] => Jane
    [role] => Scrum Master
)
Array
(
    [person] => Jack
    [role] => Project Owner
)

Вывод с $flags = MIT_NEED_ANY|MIT_KEYS_ASSOC

Array
(
    [person] => John
    [role] => Developer
)
Array
(
    [person] => Jane
    [role] => Scrum Master
)
Array
(
    [person] => Jack
    [role] => Project Owner
)
Array
(
    [person] => Judy
    [role] =>
)

Смотрите также

  • Предопределенные константы
  • MultipleIterator::valid() - Проверяет корректность подытераторов


Проверяет, присоединен ли итератор

  • « MultipleIterator::__construct
  • MultipleIterator::countIterators »
  • PHP Manual
  • MultipleIterator
  • Проверяет, присоединен ли итератор

MultipleIterator::containsIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::containsIterator — Проверяет, присоединен ли итератор

Описание

public bool MultipleIterator::containsIterator ( Iterator $iterator )

Проверяет, присоединен итератор, или нет.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Итератор для проверки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • MultipleIterator::valid() - Проверяет корректность подытераторов


Получает число присоединенных итераторов

  • « MultipleIterator::containsIterator
  • MultipleIterator::current »
  • PHP Manual
  • MultipleIterator
  • Получает число присоединенных итераторов

MultipleIterator::countIterators

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::countIterators — Получает число присоединенных итераторов

Описание

public int MultipleIterator::countIterators ( void )

Получает число присоединенных итераторов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число присоединенных итераторов (в виде integer).

Смотрите также

  • MultipleIterator::containsIterator() - Проверяет, присоединен ли итератор


Получает зарегистрированные итераторы

  • « MultipleIterator::countIterators
  • MultipleIterator::detachIterator »
  • PHP Manual
  • MultipleIterator
  • Получает зарегистрированные итераторы

MultipleIterator::current

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::current — Получает зарегистрированные итераторы

Описание

public array MultipleIterator::current ( void )

Получает результат выполнения current() зарегистрированных итераторов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив array всех текущих значений каждого присоединенного итератора, или FALSE если нет присоединенных подытераторов.

Ошибки

RuntimeException если установлен режим MIT_NEED_ALL и хотя бы один присоединенный итератор недействителен. Или IllegalValueException, если ключ имеет значение NULL, а флаг MIT_KEYS_ASSOC - установлен.

Смотрите также

  • MultipleIterator::valid() - Проверяет корректность подытераторов


Отсоединяет итератор

  • « MultipleIterator::current
  • MultipleIterator::getFlags »
  • PHP Manual
  • MultipleIterator
  • Отсоединяет итератор

MultipleIterator::detachIterator

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::detachIterator — Отсоединяет итератор

Описание

public void MultipleIterator::detachIterator ( Iterator $iterator )

Отсоединяет итератор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Отсоединяемый итератор.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • MultipleIterator::attachIterator() - Присоединяет итератор


Получает информацию о флагах

  • « MultipleIterator::detachIterator
  • MultipleIterator::key »
  • PHP Manual
  • MultipleIterator
  • Получает информацию о флагах

MultipleIterator::getFlags

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::getFlags — Получает информацию о флагах

Описание

public int MultipleIterator::getFlags ( void )

Получает информацию о флагах.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Информация о флагах, в виде integer.

Смотрите также

  • Предопределенные константы
  • MultipleIterator::__construct() - Создает новый MultipleIterator
  • MultipleIterator::setFlags() - Устанавливает флаги


Получает зарегистрированные итераторы

  • « MultipleIterator::getFlags
  • MultipleIterator::next »
  • PHP Manual
  • MultipleIterator
  • Получает зарегистрированные итераторы

MultipleIterator::key

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::key — Получает зарегистрированные итераторы

Описание

public array MultipleIterator::key ( void )

Получает результат выполнения key() зарегистрированных итераторов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив array всех зарегистрированных итераторов, или FALSE если нет присоединенных подытераторов.

Ошибки

LogicException, если установлен режим MIT_NEED_ALL, и хотя бы один присоединенный итератор недействителен.

Вызов этого метода из foreach вызовет предупреждение "Возвращен неверный тип" ("Illegal type returned").

Смотрите также

  • MultipleIterator::current() - Получает зарегистрированные итераторы


Перемещает все присоединенные итераторы к своим следующим элементам

  • « MultipleIterator::key
  • MultipleIterator::rewind »
  • PHP Manual
  • MultipleIterator
  • Перемещает все присоединенные итераторы к своим следующим элементам

MultipleIterator::next

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::next — Перемещает все присоединенные итераторы к своим следующим элементам

Описание

public void MultipleIterator::next ( void )

Перемещает все присоединенные итераторы к своим следующим элементам.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • MultipleIterator::rewind() - Возвращает в начало все присоединенные итераторы


Возвращает в начало все присоединенные итераторы

  • « MultipleIterator::next
  • MultipleIterator::setFlags »
  • PHP Manual
  • MultipleIterator
  • Возвращает в начало все присоединенные итераторы

MultipleIterator::rewind

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::rewind — Возвращает в начало все присоединенные итераторы

Описание

public void MultipleIterator::rewind ( void )

Возвращает в начало все присоединенные итераторы.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • MultipleIterator::next() - Перемещает все присоединенные итераторы к своим следующим элементам


Устанавливает флаги

  • « MultipleIterator::rewind
  • MultipleIterator::valid »
  • PHP Manual
  • MultipleIterator
  • Устанавливает флаги

MultipleIterator::setFlags

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::setFlags — Устанавливает флаги

Описание

public void MultipleIterator::setFlags ( int $flags )

Устанавливает флаги.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flags

Флаги для установки, согласно Предопределенным константам

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Предопределенные константы
  • MultipleIterator::__construct() - Создает новый MultipleIterator
  • MultipleIterator::getFlags() - Получает информацию о флагах


Проверяет корректность подытераторов

  • « MultipleIterator::setFlags
  • NoRewindIterator »
  • PHP Manual
  • MultipleIterator
  • Проверяет корректность подытераторов

MultipleIterator::valid

(PHP 5 >= 5.3.0, PHP 7)

MultipleIterator::valid — Проверяет корректность подытераторов

Описание

public bool MultipleIterator::valid ( void )

Проверяет корректность подытераторов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если один или все (в зависимости от флагов) подытераторы действительны; в противном случае - FALSE

Смотрите также

  • MultipleIterator::__construct() - Создает новый MultipleIterator


Класс NoRewindIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Этот итератор не может быть перемотан.

Обзор классов

NoRewindIterator extends IteratorIterator {
/* Методы */
public __construct ( Iterator $iterator )
public mixed current ( void )
public iterator getInnerIterator ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
/* Наследуемые методы */
public IteratorIterator::__construct ( Traversable $iterator )
public mixed IteratorIterator::current ( void )
public Traversable IteratorIterator::getInnerIterator ( void )
public scalar IteratorIterator::key ( void )
public void IteratorIterator::next ( void )
public void IteratorIterator::rewind ( void )
public bool IteratorIterator::valid ( void )
}

Содержание

  • NoRewindIterator::__construct — Создает новый объект NoRewindIterator
  • NoRewindIterator::current — Получает текущее значение
  • NoRewindIterator::getInnerIterator — Получает внутренний итератор
  • NoRewindIterator::key — Получает текущий ключ
  • NoRewindIterator::next — Перемещает итератор к следующему элементу
  • NoRewindIterator::rewind — Предотвращает возврат внутреннего итератора в начало
  • NoRewindIterator::valid — Проверяет итератор


Создает новый объект NoRewindIterator

  • « NoRewindIterator
  • NoRewindIterator::current »
  • PHP Manual
  • NoRewindIterator
  • Создает новый объект NoRewindIterator

NoRewindIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::__construct — Создает новый объект NoRewindIterator

Описание

public NoRewindIterator::__construct ( Iterator $iterator )

Создает новый объект NoRewindIterator.

Список параметров

iterator

Используемый итератор.

Возвращаемые значения

Объект NoRewindIterator() основанный на итераторе, переданном в параметре iterator.

Примеры

Пример #1 Пример использования NoRewindIterator::__construct()

Второй цикл ничего не выведет, поскольку итератор используется только один раз и не может быть возвращен в начало.

<?php
$fruit = array('яблоко', 'банан', 'клюква');

$arr = new ArrayObject($fruit);
$it  = new NoRewindIterator($arr->getIterator());

echo "Фрукт А:\n";
foreach( $it as $item ) {
    echo $item . "\n";
}

echo "Фрукт Б:\n";
foreach( $it as $item ) {
    echo $item . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Фрукт А:
яблоко
банан
клюква
Фрукт Б:

Смотрите также

  • NoRewindIterator::valid() - Проверяет итератор


Получает текущее значение

  • « NoRewindIterator::__construct
  • NoRewindIterator::getInnerIterator »
  • PHP Manual
  • NoRewindIterator
  • Получает текущее значение

NoRewindIterator::current

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::current — Получает текущее значение

Описание

public mixed NoRewindIterator::current ( void )

Получает текущее значение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущее значение.

Смотрите также

  • NoRewindIterator::key() - Получает текущий ключ


Получает внутренний итератор

  • « NoRewindIterator::current
  • NoRewindIterator::key »
  • PHP Manual
  • NoRewindIterator
  • Получает внутренний итератор

NoRewindIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::getInnerIterator — Получает внутренний итератор

Описание

public iterator NoRewindIterator::getInnerIterator ( void )

Получает внутренний итератор, который был передан в NoRewindIterator.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний итератор, переданный в NoRewindIterator::__construct().

Смотрите также

  • NoRewindIterator::valid() - Проверяет итератор


Получает текущий ключ

  • « NoRewindIterator::getInnerIterator
  • NoRewindIterator::next »
  • PHP Manual
  • NoRewindIterator
  • Получает текущий ключ

NoRewindIterator::key

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::key — Получает текущий ключ

Описание

public mixed NoRewindIterator::key ( void )

Получает текущий ключ.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ.

Смотрите также

  • NoRewindIterator::next() - Перемещает итератор к следующему элементу


Перемещает итератор к следующему элементу

  • « NoRewindIterator::key
  • NoRewindIterator::rewind »
  • PHP Manual
  • NoRewindIterator
  • Перемещает итератор к следующему элементу

NoRewindIterator::next

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::next — Перемещает итератор к следующему элементу

Описание

public void NoRewindIterator::next ( void )

Перемещает итератор к следующему элементу.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • NoRewindIterator::rewind() - Предотвращает возврат внутреннего итератора в начало


Предотвращает возврат внутреннего итератора в начало

  • « NoRewindIterator::next
  • NoRewindIterator::valid »
  • PHP Manual
  • NoRewindIterator
  • Предотвращает возврат внутреннего итератора в начало

NoRewindIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

NoRewindIterator::rewind — Предотвращает возврат внутреннего итератора в начало

Описание

public void 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)

NoRewindIterator::valid — Проверяет итератор

Описание

public bool NoRewindIterator::valid ( void )

Проверяет, является ли итератор действительным.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • NoRewindIterator::getInnerIterator() - Получает внутренний итератор


Класс ParentIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Это расширенный класс от FilterIterator, позволяющий осуществить рекурсивную итерацию, используя класс RecursiveIteratorIterator, который показывает только те элементы, которые имеют потомков.

Обзор классов

ParentIterator extends RecursiveFilterIterator implements RecursiveIterator , OuterIterator {
/* Методы */
public bool accept ( void )
public __construct ( RecursiveIterator $iterator )
public ParentIterator getChildren ( void )
public bool hasChildren ( void )
public void next ( void )
public void rewind ( void )
}

Содержание

  • ParentIterator::accept — Определение доступности
  • ParentIterator::__construct — Конструктор класса ParentIterator
  • ParentIterator::getChildren — Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator
  • ParentIterator::hasChildren — Проверяет, имеет ли внутренний объект-итератор дочерние объекты
  • ParentIterator::next — Перемещает указатель на одну позицию вперед
  • ParentIterator::rewind — Переводит итератор на начало


Определение доступности

  • « ParentIterator
  • ParentIterator::__construct »
  • PHP Manual
  • ParentIterator
  • Определение доступности

ParentIterator::accept

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::accept — Определение доступности

Описание

public bool ParentIterator::accept ( void )

Определяет, имеет ли элемент дочерние элементы.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если элемент доступен, FALSE, в противном случае.

Смотрите также

  • ParentIterator::hasChildren() - Проверяет, имеет ли внутренний объект-итератор дочерние объекты
  • FilterIterator::accept() - Проверяет, является ли текущий элемент итератора допустимым


Конструктор класса ParentIterator

  • « ParentIterator::accept
  • ParentIterator::getChildren »
  • PHP Manual
  • ParentIterator
  • Конструктор класса ParentIterator

ParentIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::__construct — Конструктор класса ParentIterator

Описание

public ParentIterator::__construct ( RecursiveIterator $iterator )

Создает новый объект класса ParentIterator на основе объекта-итератора.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Объект-итератор, на основе которого создается новый объект.

Возвращаемые значения

Объект ParentIterator.


Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator

  • « ParentIterator::__construct
  • ParentIterator::hasChildren »
  • PHP Manual
  • ParentIterator
  • Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator

ParentIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::getChildren — Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator

Описание

public ParentIterator ParentIterator::getChildren ( void )

Возвращает дочерние объекты итератора, хранящегося внутри ParentIterator.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект (object).


Проверяет, имеет ли внутренний объект-итератор дочерние объекты

  • « ParentIterator::getChildren
  • ParentIterator::next »
  • PHP Manual
  • ParentIterator
  • Проверяет, имеет ли внутренний объект-итератор дочерние объекты

ParentIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::hasChildren — Проверяет, имеет ли внутренний объект-итератор дочерние объекты

Описание

public bool ParentIterator::hasChildren ( void )

Проверяет, имеет ли внутренний объект-итератор дочерние объекты.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Перемещает указатель на одну позицию вперед

  • « ParentIterator::hasChildren
  • ParentIterator::rewind »
  • PHP Manual
  • ParentIterator
  • Перемещает указатель на одну позицию вперед

ParentIterator::next

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::next — Перемещает указатель на одну позицию вперед

Описание

public void ParentIterator::next ( void )

Перемещает указатель на одну позицию вперед.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Переводит итератор на начало

  • « ParentIterator::next
  • RecursiveArrayIterator »
  • PHP Manual
  • ParentIterator
  • Переводит итератор на начало

ParentIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

ParentIterator::rewind — Переводит итератор на начало

Описание

public void ParentIterator::rewind ( void )

Перемещает указатель на начальную позицию.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс RecursiveArrayIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Этот итератор позволяет сбросить и изменить значения и ключи во время прохода по массивам и объектам таким же образом, как и ArrayIterator. Кроме того, можно перебирать текущие записи итератора.

Обзор классов

RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator {
/* Методы */
public RecursiveArrayIterator getChildren ( void )
public bool hasChildren ( void )
/* Inherits */
public void ArrayIterator::append ( mixed $value )
public void ArrayIterator::asort ( void )
public ArrayIterator::__construct ([ mixed $array = array() [, int $flags = 0 ]] )
public int ArrayIterator::count ( void )
public mixed ArrayIterator::current ( void )
public array ArrayIterator::getArrayCopy ( void )
public void ArrayIterator::getFlags ( void )
public mixed ArrayIterator::key ( void )
public void ArrayIterator::ksort ( void )
public void ArrayIterator::natcasesort ( void )
public void ArrayIterator::natsort ( void )
public void ArrayIterator::next ( void )
public void ArrayIterator::offsetExists ( string $index )
public mixed ArrayIterator::offsetGet ( string $index )
public void ArrayIterator::offsetSet ( string $index , string $newval )
public void ArrayIterator::offsetUnset ( string $index )
public void ArrayIterator::rewind ( void )
public void ArrayIterator::seek ( int $position )
public string ArrayIterator::serialize ( void )
public void ArrayIterator::setFlags ( string $flags )
public void ArrayIterator::uasort ( string $cmp_function )
public void ArrayIterator::uksort ( string $cmp_function )
public string ArrayIterator::unserialize ( string $serialized )
public bool ArrayIterator::valid ( void )
}

Содержание

  • RecursiveArrayIterator::getChildren — Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)
  • RecursiveArrayIterator::hasChildren — Определяет, является ли текущий элемент массивом или объектом


Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)

  • « RecursiveArrayIterator
  • RecursiveArrayIterator::hasChildren »
  • PHP Manual
  • RecursiveArrayIterator
  • Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)

RecursiveArrayIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveArrayIterator::getChildren — Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)

Описание

public RecursiveArrayIterator RecursiveArrayIterator::getChildren ( void )

Возвращает итератор для текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object).

Ошибки

Метод выбрасывает исключение InvalidArgumentException, если текущий элемент не содержит массивов (array) или объектов (object).

Примеры

Пример #1 Пример использования RecursiveArrayIterator::getChildren()

<?php
$fruits = array("a" => "lemon", "b" => "orange", array("a" => "apple", "p" => "pear"));

$iterator = new RecursiveArrayIterator($fruits);

while ($iterator->valid()) {

    if ($iterator->hasChildren()) {
        // выводим информацию о всех дочерних элементах
        foreach ($iterator->getChildren() as $key => $value) {
            echo $key . ' : ' . $value . "\n";
        }
    } else {
        echo "Дочерних элементов не обнаружено.\n";
    }

    $iterator->next();
}
?>

Результат выполнения данного примера:

Дочерних элементов не обнаружено.
Дочерних элементов не обнаружено.
a : apple
p : pear

Смотрите также

  • RecursiveArrayIterator::hasChildren() - Определяет, является ли текущий элемент массивом или объектом


Определяет, является ли текущий элемент массивом или объектом

  • « RecursiveArrayIterator::getChildren
  • RecursiveCachingIterator »
  • PHP Manual
  • RecursiveArrayIterator
  • Определяет, является ли текущий элемент массивом или объектом

RecursiveArrayIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveArrayIterator::hasChildren — Определяет, является ли текущий элемент массивом или объектом

Описание

public bool RecursiveArrayIterator::hasChildren ( void )

Определяет, является ли текущий элемент массивом (array) или объектом (object). Эти сведения необходимо проверять, прежде чем вызывать метод RecursiveArrayIterator::getChildren().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если текущий элемент является массивом (array) или объектом (object), FALSE в противном случае.

Примеры

Пример #1 Пример использования RecursiveArrayIterator::hasChildren()

<?php
$fruits = array("a" => "lemon", "b" => "orange", array("a" => "apple", "p" => "pear"));

$iterator = new RecursiveArrayIterator($fruits);

while ($iterator->valid()) {

    // проверим, есть ли дочерние элементы
    if ($iterator->hasChildren()) {
        // выведем информацию о дочерних элементах
        foreach ($iterator->getChildren() as $key => $value) {
            echo $key . ' : ' . $value . "\n";
        }
    } else {
        echo "Дочерних элементов нет.\n";
    }

    $iterator->next();
}
?>

Результат выполнения данного примера:

Дочерних элементов нет.
Дочерних элементов нет.
a : apple
p : pear

Смотрите также

  • RecursiveArrayIterator::getChildren() - Возвращает итератор для текущего элемента, если этот элемент является массивом (array) или объектом (object)


Класс RecursiveCachingIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

...

Обзор классов

RecursiveCachingIterator extends CachingIterator implements Countable , ArrayAccess , OuterIterator , RecursiveIterator {
/* Методы */
public __construct ( Iterator $iterator [, string $flags = self::CALL_TOSTRING ] )
public RecursiveCachingIterator getChildren ( void )
public bool hasChildren ( void )
/* Inherits */
public CachingIterator::__construct ( Iterator $iterator [, int $flags = self::CALL_TOSTRING ] )
public int CachingIterator::count ( void )
public void CachingIterator::current ( void )
public array CachingIterator::getCache ( void )
public void CachingIterator::getFlags ( void )
public Iterator CachingIterator::getInnerIterator ( void )
public void CachingIterator::hasNext ( void )
public scalar CachingIterator::key ( void )
public void CachingIterator::next ( void )
public void CachingIterator::offsetExists ( string $index )
public void CachingIterator::offsetGet ( string $index )
public void CachingIterator::offsetSet ( string $index , string $newval )
public void CachingIterator::offsetUnset ( string $index )
public void CachingIterator::rewind ( void )
public void CachingIterator::setFlags ( int $flags )
public void CachingIterator::__toString ( void )
public void CachingIterator::valid ( void )
}

Содержание

  • RecursiveCachingIterator::__construct — Конструктор
  • RecursiveCachingIterator::getChildren — Возвращает потомков внутреннего итератора в виде объекта RecursiveCachingIterator
  • RecursiveCachingIterator::hasChildren — Проверяет, имеет ли текущий элемент внутреннего итератора потомков


Конструктор

  • « RecursiveCachingIterator
  • RecursiveCachingIterator::getChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Конструктор

RecursiveCachingIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::__construct — Конструктор

Описание

public RecursiveCachingIterator::__construct ( Iterator $iterator [, string $flags = self::CALL_TOSTRING ] )

Создает новый RecursiveCachingIterator, который состоит из переданного итератора (iterator).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

iterator

Используемый итератор.

flags

Флаги. Используйте CALL_TOSTRING для того, чтобы вызвать RecursiveCachingIterator::__toString() для каждого элемента (по умолчанию), и/или CATCH_GET_CHILD для перехвата исключений при попытке получения потомков.

Возвращаемые значения

RecursiveCachingIterator.

Смотрите также

  • CachingIterator::__construct() - Строит новый объект CachingIterator для итератора


Возвращает потомков внутреннего итератора в виде объекта RecursiveCachingIterator

  • « RecursiveCachingIterator::__construct
  • RecursiveCachingIterator::hasChildren »
  • PHP Manual
  • RecursiveCachingIterator
  • Возвращает потомков внутреннего итератора в виде объекта RecursiveCachingIterator

RecursiveCachingIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::getChildren — Возвращает потомков внутреннего итератора в виде объекта RecursiveCachingIterator

Описание

public RecursiveCachingIterator RecursiveCachingIterator::getChildren ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Потомки внутреннего итератора, в виде объекта RecursiveCachingIterator.


Проверяет, имеет ли текущий элемент внутреннего итератора потомков

  • « RecursiveCachingIterator::getChildren
  • RecursiveCallbackFilterIterator »
  • PHP Manual
  • RecursiveCachingIterator
  • Проверяет, имеет ли текущий элемент внутреннего итератора потомков

RecursiveCachingIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveCachingIterator::hasChildren — Проверяет, имеет ли текущий элемент внутреннего итератора потомков

Описание

public bool RecursiveCachingIterator::hasChildren ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE если внутренний итератор имеет потомков; в противном случае - FALSE


Класс RecursiveCallbackFilterIterator

(PHP 5 >= 5.4.0, PHP 7)

Введение

Обзор классов

RecursiveCallbackFilterIterator extends CallbackFilterIterator implements OuterIterator , RecursiveIterator {
/* Методы */
public __construct ( RecursiveIterator $iterator , string $callback )
public RecursiveCallbackFilterIterator getChildren ( void )
public bool hasChildren ( void )
/* Наследуемые методы */
public string CallbackFilterIterator::accept ( void )
}

Примеры

Обратный вызов может принимать до трех аргументов: текущий элемент, текущий ключ и итератор соответственно.

Пример #1 Доступные аргументы обратного вызова

<?php

/**
 * Обратный вызов для RecursiveCallbackFilterIterator
 *
 * @param $current   Значение текущего элемента
 * @param $key       Ключ текущего элемента
 * @param $iterator  Итератор, который фильтруется
 * @return boolean   TRUE для приема текущего элемента или FALSE - в ином случае.
 */
function my_callback($current, $key, $iterator) {
    // Здесь ваш код фильтрации
}

?>

Фильтрация рекурсивного итератора обычно включает в себя два условия. Первое заключается в том, чтобы разрешить рекурсию. Функция обратного вызова должна возвращать TRUE, если текущий элемент итератора имеет потомков. Второе - это нормальное условие фильтра, например, проверка размера файла или расширения, как в примере ниже.

Пример #2 Простой пример рекурсивного обратного вызова

<?php

$dir = new RecursiveDirectoryIterator(__DIR__);

// Фильтр больших файлов ( > 100MB)
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
    // Разрешить рекурсию
    if ($iterator->hasChildren()) {
        return TRUE;
    }
    // Проверка больших файлов
    if ($current->isFile() && $current->getSize() > 104857600) {
        return TRUE;
    }
    return FALSE;
});

foreach (new RecursiveIteratorIterator($files) as $file) {
    echo $file->getPathname() . PHP_EOL;
}

?>

Содержание

  • RecursiveCallbackFilterIterator::__construct — Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator
  • RecursiveCallbackFilterIterator::getChildren — Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::hasChildren — Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы


Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator

  • « RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::getChildren »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator

RecursiveCallbackFilterIterator::__construct

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::__construct — Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator

Описание

public RecursiveCallbackFilterIterator::__construct ( RecursiveIterator $iterator , string $callback )

Создает фильтрующий итератор на основе объекта-итератора RecursiveIterator, используя фунцкию callback для отбора нужных элементов.

Список параметров

iterator

Рекурсивный итератор, к которому нужно применить фильтр.

callback

Callback-функция, которая должна возвращать TRUE, если текущий элемент подходит под условия фильтра, и FALSE, если элемент нужно исключить из перебора. См. Примеры.

Может быть любым допустимым callable значением.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Примеры использования RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::getChildren() - Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator
  • RecursiveCallbackFilteriterator::hasChildren() - Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы


Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator

  • « RecursiveCallbackFilterIterator::__construct
  • RecursiveCallbackFilterIterator::hasChildren »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator

RecursiveCallbackFilterIterator::getChildren

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::getChildren — Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator

Описание

public RecursiveCallbackFilterIterator RecursiveCallbackFilterIterator::getChildren ( void )

Выбирает дочерние элементы внутреннего итератора, подходящие под условия фильтра.

Прежде чем вызывать этот метод, необходимо удостовериться, что внутренний итератор содержит дочерние элементы. Сделать это можно с помощью метода RecursiveCallbackFilterIterator::hasChildren().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект RecursiveCallbackFilterIterator содержащий дочерние элементы внутреннего итератора.

Смотрите также

  • Примеры использования RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::__construct() - Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator
  • RecursiveCallbackFilteriterator::hasChildren() - Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы


Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы

  • « RecursiveCallbackFilterIterator::getChildren
  • RecursiveDirectoryIterator »
  • PHP Manual
  • RecursiveCallbackFilterIterator
  • Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы

RecursiveCallbackFilterIterator::hasChildren

(PHP 5 >= 5.4.0, PHP 7)

RecursiveCallbackFilterIterator::hasChildren — Проверяет, содержит ли текущий элемент внутреннего итератора дочерние элементы

Описание

public bool RecursiveCallbackFilterIterator::hasChildren ( void )

Возвращает TRUE, если у текущего элемента есть дочерние, и FALSE, если нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если у текущего элемента есть дочерние, и FALSE, если нет.

Примеры

Пример #1 Пример использования RecursiveCallbackFilterIterator::hasChildren()

<?php

$dir = new RecursiveDirectoryIterator(__DIR__);

// рекурсивный обход XML файлов
$files = new RecursiveCallbackFilterIterator($dir, function ($current, $key, $iterator) {
    // просматривать директории
    if ($iterator->hasChildren()) {
        return TRUE;
    }
    // отбор XML файлов
    if (!strcasecmp($current->getExtension(), 'xml')) {
        return TRUE;
    }
    return FALSE;
});

?>

Смотрите также

  • Примеры использования RecursiveCallbackFilterIterator
  • RecursiveCallbackFilterIterator::__construct() - Создает объект класса RecursiveCallbackFilterIterator на основе объекта RecursiveIterator
  • RecursiveCallbackFilteriterator::getChildren() - Возвращает дочерние элементы итератора, хранящегося внутри RecursiveCallbackFilterIterator


Класс RecursiveDirectoryIterator

(PHP 5, PHP 7)

Введение

Класс RecursiveDirectoryIterator предоставляет интерфейс для рекурсивного перебора каталогов файловой системы.

Обзор классов

RecursiveDirectoryIterator extends FilesystemIterator implements SeekableIterator , RecursiveIterator {
/* Методы */
public __construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )
public mixed getChildren ( void )
public string getSubPath ( void )
public string getSubPathname ( void )
public bool hasChildren ([ bool $allow_links = false ] )
public string key ( void )
public void next ( void )
public void rewind ( void )
/* Inherits */
public FilesystemIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS ] )
public mixed FilesystemIterator::current ( void )
public int FilesystemIterator::getFlags ( void )
public string FilesystemIterator::key ( void )
public void FilesystemIterator::next ( void )
public void FilesystemIterator::rewind ( void )
public void FilesystemIterator::setFlags ([ int $flags ] )
}

Список изменений

Версия | Описание
5.3.0 | Класс FilesystemIterator был введен в качестве родительского класса. Ранее родителем был DirectoryIterator.
5.3.0 | Осуществляет SeekableIterator.
5.2.11, 5.3.1 | Добавлено RecursiveDirectoryIterator::FOLLOW_SYMLINKS

Содержание

  • RecursiveDirectoryIterator::__construct — Конструктор класса RecursiveDirectoryIterator
  • RecursiveDirectoryIterator::getChildren — Если текущий элемент является директорией, метод возвращает для нее итератор
  • RecursiveDirectoryIterator::getSubPath — Возвращает путь к поддиректории
  • RecursiveDirectoryIterator::getSubPathname — Возвращает путь к поддиректории и имя файла
  • RecursiveDirectoryIterator::hasChildren — Определяет, является ли текущий элемент директорией
  • RecursiveDirectoryIterator::key — Возвращает путь и имя файла текущего элемента
  • RecursiveDirectoryIterator::next — Переход к следующему элементу
  • RecursiveDirectoryIterator::rewind — Переводит итератор на начало директории


Конструктор класса RecursiveDirectoryIterator

  • « RecursiveDirectoryIterator
  • RecursiveDirectoryIterator::getChildren »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Конструктор класса RecursiveDirectoryIterator

RecursiveDirectoryIterator::__construct

(PHP 5 >= 5.1.2, PHP 7)

RecursiveDirectoryIterator::__construct — Конструктор класса RecursiveDirectoryIterator

Описание

public RecursiveDirectoryIterator::__construct ( string $path [, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO ] )

Создает новый объект класса RecursiveDirectoryIterator(), используя заданный путь path.

Список параметров

path

Путь к директории, по которой будет осуществляться навигация.

flags

Можно установить несколько флагов, от которых будет зависеть поведение некоторых методов. Список возможных флагов можно найти на странице Предопределенных констант класса FilesystemIterator. Эти флаги можно задать позднее методом FilesystemIterator::setFlags().

Возвращаемые значения

Возвращает новый объект-итератор класса RecursiveDirectoryIterator.

Ошибки

Выбрасывает исключение UnexpectedValueException, если переданный путь path не удалось найти или он не является директорией.

Примеры

Пример #1 Пример использования RecursiveDirectoryIterator

<?php

$directory = '/tmp';

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));

$it->rewind();
while($it->valid()) {

    if (!$it->isDot()) {
        echo 'SubPathName: ' . $it->getSubPathName() . "\n";
        echo 'SubPath:     ' . $it->getSubPath() . "\n";
        echo 'Key:         ' . $it->key() . "\n\n";
    }

    $it->next();
}

?>

Результатом выполнения данного примера будет что-то подобное:

SubPathName: fruit/apple.xml
SubPath:     fruit
Key:         /tmp/fruit/apple.xml

SubPathName: stuff.xml
SubPath:
Key:         /tmp/stuff.xml

SubPathName: veggies/carrot.xml
SubPath:     veggies
Key:         /tmp/veggies/carrot.xml

Смотрите также

  • FilesystemIterator::__construct() - Создает новый итератор файловой системы
  • RecursiveIteratorIterator::__construct() - Конструктор класса RecursiveIteratorIterator
  • Предопределенные константы класса FilesystemIterator


Если текущий элемент является директорией, метод возвращает для нее итератор

  • « RecursiveDirectoryIterator::__construct
  • RecursiveDirectoryIterator::getSubPath »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Если текущий элемент является директорией, метод возвращает для нее итератор

RecursiveDirectoryIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getChildren — Если текущий элемент является директорией, метод возвращает для нее итератор

Описание

public mixed RecursiveDirectoryIterator::getChildren ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя файла, информация о файле или ссылка на объект $this. Что именно будет возвращаться зависит от флагов настроек. См. дополнительно Константы FilesystemIterator.


Возвращает путь к поддиректории

  • « RecursiveDirectoryIterator::getChildren
  • RecursiveDirectoryIterator::getSubPathname »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Возвращает путь к поддиректории

RecursiveDirectoryIterator::getSubPath

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getSubPath — Возвращает путь к поддиректории

Описание

public string RecursiveDirectoryIterator::getSubPath ( void )

Возвращает путь к поддиректории.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Путь к поддиректории.

Смотрите также

  • RecursiveDirectoryIterator::getSubPathName() - Возвращает путь к поддиректории и имя файла
  • RecursiveDirectoryIterator::key() - Возвращает путь и имя файла текущего элемента


Возвращает путь к поддиректории и имя файла

  • « RecursiveDirectoryIterator::getSubPath
  • RecursiveDirectoryIterator::hasChildren »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Возвращает путь к поддиректории и имя файла

RecursiveDirectoryIterator::getSubPathname

(PHP 5 >= 5.1.0, PHP 7)

RecursiveDirectoryIterator::getSubPathname — Возвращает путь к поддиректории и имя файла

Описание

public string RecursiveDirectoryIterator::getSubPathname ( void )

Возвращает путь к поддиректории и имя файла.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь к поддиректории и имя файла.

Смотрите также

  • RecursiveDirectoryIterator::getSubPath() - Возвращает путь к поддиректории
  • RecursiveDirectoryIterator::key() - Возвращает путь и имя файла текущего элемента


Определяет, является ли текущий элемент директорией

  • « RecursiveDirectoryIterator::getSubPathname
  • RecursiveDirectoryIterator::key »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Определяет, является ли текущий элемент директорией

RecursiveDirectoryIterator::hasChildren

(PHP 5, PHP 7)

RecursiveDirectoryIterator::hasChildren — Определяет, является ли текущий элемент директорией

Описание

public bool RecursiveDirectoryIterator::hasChildren ([ bool $allow_links = false ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

allow_links

Возвращаемые значения

Возвращает true, если текущий элемент является директорией, причем отличной от '.' и '..'.


Возвращает путь и имя файла текущего элемента

  • « RecursiveDirectoryIterator::hasChildren
  • RecursiveDirectoryIterator::next »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Возвращает путь и имя файла текущего элемента

RecursiveDirectoryIterator::key

(PHP 5, PHP 7)

RecursiveDirectoryIterator::key — Возвращает путь и имя файла текущего элемента

Описание

public string RecursiveDirectoryIterator::key ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь и имя файла текущего элемента.


Переход к следующему элементу

  • « RecursiveDirectoryIterator::key
  • RecursiveDirectoryIterator::rewind »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Переход к следующему элементу

RecursiveDirectoryIterator::next

(PHP 5, PHP 7)

RecursiveDirectoryIterator::next — Переход к следующему элементу

Описание

public void RecursiveDirectoryIterator::next ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Переводит итератор на начало директории

  • « RecursiveDirectoryIterator::next
  • RecursiveFilterIterator »
  • PHP Manual
  • RecursiveDirectoryIterator
  • Переводит итератор на начало директории

RecursiveDirectoryIterator::rewind

(PHP 5, PHP 7)

RecursiveDirectoryIterator::rewind — Переводит итератор на начало директории

Описание

public void RecursiveDirectoryIterator::rewind ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Класс RecursiveFilterIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Этот абстрактный итератор отфильтровывает нежелательные значения для RecursiveIterator. Этот класс следует расширять для реализации пользовательских фильтров. Метод RecursiveFilterIterator::accept() необходимо реализовывать в подклассе.

Обзор классов

abstract RecursiveFilterIterator extends FilterIterator implements OuterIterator , RecursiveIterator {
/* Методы */
public __construct ( RecursiveIterator $iterator )
public RecursiveFilterIterator getChildren ( void )
public bool hasChildren ( void )
/* Наследуемые методы */
public abstract bool FilterIterator::accept ( void )
public FilterIterator::__construct ( Iterator $iterator )
public mixed FilterIterator::current ( void )
public Iterator FilterIterator::getInnerIterator ( void )
public mixed FilterIterator::key ( void )
public void FilterIterator::next ( void )
public void FilterIterator::rewind ( void )
public bool FilterIterator::valid ( void )
}

Содержание

  • RecursiveFilterIterator::__construct — Создает объект RecursiveFilterIterator на основе объекта-итератора RecursiveIterator
  • RecursiveFilterIterator::getChildren — Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator
  • RecursiveFilterIterator::hasChildren — Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы


Создает объект RecursiveFilterIterator на основе объекта-итератора RecursiveIterator

  • « RecursiveFilterIterator
  • RecursiveFilterIterator::getChildren »
  • PHP Manual
  • RecursiveFilterIterator
  • Создает объект RecursiveFilterIterator на основе объекта-итератора RecursiveIterator

RecursiveFilterIterator::__construct

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::__construct — Создает объект RecursiveFilterIterator на основе объекта-итератора RecursiveIterator

Описание

public RecursiveFilterIterator::__construct ( RecursiveIterator $iterator )

Создает итератор RecursiveFilterIterator на основе RecursiveIterator.

Список параметров

iterator

Объект-итератор RecursiveIterator, элементы которого требуется отфильтровать.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования RecursiveFilterIterator()

<?php
class TestsOnlyFilter extends RecursiveFilterIterator {
    public function accept() {
        // текущий элемент пройдет фильтр, если имеет дочерние элементы или
        // его значение начинается со строки "test"
        return $this->hasChildren() || (strpos($this->current(), "test") !== FALSE);
    }
}

$array    = array("test1", array("taste2", "test3", "test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter   = new TestsOnlyFilter($iterator);

foreach(new RecursiveIteratorIterator($filter) as $key => $value)
{
    echo $value . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

test1
test3
test4
test5

Пример #2 Еще пример с RecursiveFilterIterator()

<?php
class StartsWithFilter extends RecursiveFilterIterator {

    protected $word;

    public function __construct(RecursiveIterator $rit, $word) {
        $this->word = $word;
        parent::__construct($rit);
    }

    public function accept() {
        return $this->hasChildren() OR strpos($this->current(), $this->word) === 0;
    }

    public function getChildren() {
        return new self($this->getInnerIterator()->getChildren(), $this->word);
    }
}

$array    = array("test1", array("taste2", "test3", "test4"), "test5");
$iterator = new RecursiveArrayIterator($array);
$filter   = new StartsWithFilter($iterator, "test");

foreach(new RecursiveIteratorIterator($filter) as $key => $value)
{
    echo $value . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

test1
test3
test4
test5

Смотрите также

  • RecursiveFilterIterator::getChildren() - Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator
  • RecursiveFilterIterator::hasChildren() - Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы
  • FilterIterator::accept() - Проверяет, является ли текущий элемент итератора допустимым


Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator

  • « RecursiveFilterIterator::__construct
  • RecursiveFilterIterator::hasChildren »
  • PHP Manual
  • RecursiveFilterIterator
  • Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator

RecursiveFilterIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::getChildren — Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator

Описание

public RecursiveFilterIterator RecursiveFilterIterator::getChildren ( void )

Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает RecursiveFilterIterator содержащий дочерние элементы текущего элемента внутреннего итератора.

Смотрите также

  • RecursiveFilterIterator::hasChildren() - Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы
  • RecursiveIterator::getChildren() - Возвращает итератор для текущего элемента


Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы

  • « RecursiveFilterIterator::getChildren
  • RecursiveIteratorIterator »
  • PHP Manual
  • RecursiveFilterIterator
  • Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы

RecursiveFilterIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveFilterIterator::hasChildren — Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы

Описание

public bool RecursiveFilterIterator::hasChildren ( void )

Проверяет, есть ли у текущего элемента внутреннего итератора дочерние элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если у текущего элемента внутреннего итератора есть дочерние элементы, FALSE в противно случае.

Смотрите также

  • RecursiveFilterIterator::getChildren() - Возвращает дочерние элементы внутреннего итератора в виде объекта RecursiveFilterIterator
  • RecursiveIterator::hasChildren() - Определяет, можно ли для текущего элемента создать итератор


Класс RecursiveIteratorIterator

(PHP 5, PHP 7)

Введение

Может быть использован для перебора рекурсивных итераторов.

Обзор классов

RecursiveIteratorIterator implements OuterIterator {
/* Константы */
const integer LEAVES_ONLY = 0 ;
const integer SELF_FIRST = 1 ;
const integer CHILD_FIRST = 2 ;
const integer CATCH_GET_CHILD = 16 ;
/* Методы */
public void beginChildren ( void )
public void beginIteration ( void )
public RecursiveIterator callGetChildren ( void )
public bool callHasChildren ( void )
public __construct ( Traversable $iterator [, int $mode = RecursiveIteratorIterator::LEAVES_ONLY [, int $flags = 0 ]] )
public mixed current ( void )
public void endChildren ( void )
public void endIteration ( void )
public int getDepth ( void )
public iterator getInnerIterator ( void )
public mixed getMaxDepth ( void )
public RecursiveIterator getSubIterator ([ int $level ] )
public mixed key ( void )
public void next ( void )
public void nextElement ( void )
public void rewind ( void )
public void setMaxDepth ([ string $max_depth = -1 ] )
public bool valid ( void )
/* Наследуемые методы */
public Iterator OuterIterator::getInnerIterator ( void )
}

Предопределенные константы

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 — End children
  • RecursiveIteratorIterator::endIteration — Окончание навигации
  • RecursiveIteratorIterator::getDepth — Определяет текущую глубину рекурсии
  • RecursiveIteratorIterator::getInnerIterator — Получение ссылки на внутренний итератор
  • RecursiveIteratorIterator::getMaxDepth — Получение максимальной глубины рекурсии
  • RecursiveIteratorIterator::getSubIterator — Получение активного вложенного итератора
  • RecursiveIteratorIterator::key — Получение ключа текущего элемента
  • RecursiveIteratorIterator::next — Перемещение итератора к следующему элементу
  • RecursiveIteratorIterator::nextElement — Следующий элемент
  • RecursiveIteratorIterator::rewind — Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора
  • RecursiveIteratorIterator::setMaxDepth — Установка максимальной глубины вложенности
  • RecursiveIteratorIterator::valid — Проверка допустимости текущей позиции


Переход к первому дочернему элементу

  • « RecursiveIteratorIterator
  • RecursiveIteratorIterator::beginIteration »
  • PHP Manual
  • RecursiveIteratorIterator
  • Переход к первому дочернему элементу

RecursiveIteratorIterator::beginChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::beginChildren — Переход к первому дочернему элементу

Описание

public void RecursiveIteratorIterator::beginChildren ( void )

Метод вызывается после выполнения RecursiveIteratorIterator::getChildren(), а результат его работы аналогичен вызову RecursiveIteratorIterator::rewind().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Начало навигации

  • « RecursiveIteratorIterator::beginChildren
  • RecursiveIteratorIterator::callGetChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Начало навигации

RecursiveIteratorIterator::beginIteration

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::beginIteration — Начало навигации

Описание

public void RecursiveIteratorIterator::beginIteration ( void )

Вызывается, чтобы начать навигацию (после первого вызова RecursiveIteratorIterator::rewind()).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Получение дочерних элементов

  • « RecursiveIteratorIterator::beginIteration
  • RecursiveIteratorIterator::callHasChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение дочерних элементов

RecursiveIteratorIterator::callGetChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::callGetChildren — Получение дочерних элементов

Описание

public RecursiveIterator RecursiveIteratorIterator::callGetChildren ( void )

Получает дочерние элементы текущего элемента итератора.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса RecursiveIterator().


Проверка, есть ли у элемента дочерние

  • « RecursiveIteratorIterator::callGetChildren
  • RecursiveIteratorIterator::__construct »
  • PHP Manual
  • RecursiveIteratorIterator
  • Проверка, есть ли у элемента дочерние

RecursiveIteratorIterator::callHasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::callHasChildren — Проверка, есть ли у элемента дочерние

Описание

public bool RecursiveIteratorIterator::callHasChildren ( void )

Вызывается для каждого элемента, чтобы проверить, есть ли у него дочерние.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если элемент имеет дочерние элементы, FALSE в противном случае.


Конструктор класса RecursiveIteratorIterator

  • « RecursiveIteratorIterator::callHasChildren
  • RecursiveIteratorIterator::current »
  • PHP Manual
  • RecursiveIteratorIterator
  • Конструктор класса RecursiveIteratorIterator

RecursiveIteratorIterator::__construct

(PHP 5 >= 5.1.3, PHP 7)

RecursiveIteratorIterator::__construct — Конструктор класса RecursiveIteratorIterator

Описание

public RecursiveIteratorIterator::__construct ( Traversable $iterator [, int $mode = RecursiveIteratorIterator::LEAVES_ONLY [, int $flags = 0 ]] )

Создает новый объект класса RecursiveIteratorIterator на основе объекта RecursiveIterator.

Список параметров

iterator

Объект-итератор, на основе которого требуется построить данный экземпляр. Это может быть объект класса RecursiveIterator или класса IteratorAggregate.

mode

Необязательный параметр. Задание режима работы конструктора. Возможные значения:

  • RecursiveIteratorIterator::LEAVES_ONLY - По умолчанию. Навигация будет осуществляться только по листам дерева элементов.
  • RecursiveIteratorIterator::SELF_FIRST - Навигация будет осуществляться по всему дереву элементов, причем первыми будут идти родительские элементы.
  • RecursiveIteratorIterator::CHILD_FIRST - Навигация будет осуществляться по всему дереву элементов, причем первыми будут идти дочерние элементы.

flags

Необязательный настроечный флаг. Возможное значение RecursiveIteratorIterator::CATCH_GET_CHILD дает предписание объекту не принимать во внимание исключения, которые вызывает метод RecursiveIteratorIterator::getChildren().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Навигация по дереву элементов с помощью RecursiveIteratorIterator

<?php
$array = array(
    array(
        array(
            array(
                'leaf-0-0-0-0',
                'leaf-0-0-0-1'
            ),
            'leaf-0-0-0'
        ),
        array(
            array(
                'leaf-0-1-0-0',
                'leaf-0-1-0-1'
            ),
            'leaf-0-1-0'
        ),
        'leaf-0-0'
    )
);

$iterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator($array),
    $mode
);
foreach ($iterator as $key => $leaf) {
    echo "$key => $leaf", PHP_EOL;
}
?>

Вывод примера в режиме $mode = RecursiveIteratorIterator::LEAVES_ONLY

0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
0 => leaf-0-0-0
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
0 => leaf-0-1-0
0 => leaf-0-0

Вывод примера в режиме $mode = RecursiveIteratorIterator::SELF_FIRST

0 => Array
0 => Array
0 => Array
0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
1 => leaf-0-0-0
1 => Array
0 => Array
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
1 => leaf-0-1-0
2 => leaf-0-0

Вывод примера в режиме $mode = RecursiveIteratorIterator::CHILD_FIRST

0 => leaf-0-0-0-0
1 => leaf-0-0-0-1
0 => Array
1 => leaf-0-0-0
0 => Array
0 => leaf-0-1-0-0
1 => leaf-0-1-0-1
0 => Array
1 => leaf-0-1-0
1 => Array
2 => leaf-0-0
0 => Array


Получает значение текущего элемента

  • « RecursiveIteratorIterator::__construct
  • RecursiveIteratorIterator::endChildren »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получает значение текущего элемента

RecursiveIteratorIterator::current

(PHP 5, PHP 7)

RecursiveIteratorIterator::current — Получает значение текущего элемента

Описание

public mixed RecursiveIteratorIterator::current ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение текущего элемента.


End children

  • « RecursiveIteratorIterator::current
  • RecursiveIteratorIterator::endIteration »
  • PHP Manual
  • RecursiveIteratorIterator
  • End children

RecursiveIteratorIterator::endChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::endChildren — End children

Описание

public void RecursiveIteratorIterator::endChildren ( void )

Вызывается, когда закончились элементы находящиеся на одном уровне родства.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Окончание навигации

  • « RecursiveIteratorIterator::endChildren
  • RecursiveIteratorIterator::getDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Окончание навигации

RecursiveIteratorIterator::endIteration

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::endIteration — Окончание навигации

Описание

public void RecursiveIteratorIterator::endIteration ( void )

Вызывается по завершении навигации (когда метод RecursiveIteratorIterator::valid() впервые вернет FALSE).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Определяет текущую глубину рекурсии

  • « RecursiveIteratorIterator::endIteration
  • RecursiveIteratorIterator::getInnerIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Определяет текущую глубину рекурсии

RecursiveIteratorIterator::getDepth

(PHP 5, PHP 7)

RecursiveIteratorIterator::getDepth — Определяет текущую глубину рекурсии

Описание

public int RecursiveIteratorIterator::getDepth ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая глубина рекурсии навигации.


Получение ссылки на внутренний итератор

  • « RecursiveIteratorIterator::getDepth
  • RecursiveIteratorIterator::getMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение ссылки на внутренний итератор

RecursiveIteratorIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::getInnerIterator — Получение ссылки на внутренний итератор

Описание

public iterator RecursiveIteratorIterator::getInnerIterator ( void )

Получает ссылку на активный в данный момент внутренний итератор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ссылка на внутренний объект-итератор.


Получение максимальной глубины рекурсии

  • « RecursiveIteratorIterator::getInnerIterator
  • RecursiveIteratorIterator::getSubIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение максимальной глубины рекурсии

RecursiveIteratorIterator::getMaxDepth

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::getMaxDepth — Получение максимальной глубины рекурсии

Описание

public mixed RecursiveIteratorIterator::getMaxDepth ( void )

Определяет максимальную допустимую глубину вложенности элементов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Максимальная глубина рекурсии или FALSE, если глубина не ограничена.

Смотрите также

  • RecursiveIteratorIterator::setMaxDepth() - Установка максимальной глубины вложенности


Получение активного вложенного итератора

  • « RecursiveIteratorIterator::getMaxDepth
  • RecursiveIteratorIterator::key »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение активного вложенного итератора

RecursiveIteratorIterator::getSubIterator

(PHP 5, PHP 7)

RecursiveIteratorIterator::getSubIterator — Получение активного вложенного итератора

Описание

public RecursiveIterator RecursiveIteratorIterator::getSubIterator ([ int $level ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

Возвращаемые значения

Активный вложенный итератор.


Получение ключа текущего элемента

  • « RecursiveIteratorIterator::getSubIterator
  • RecursiveIteratorIterator::next »
  • PHP Manual
  • RecursiveIteratorIterator
  • Получение ключа текущего элемента

RecursiveIteratorIterator::key

(PHP 5, PHP 7)

RecursiveIteratorIterator::key — Получение ключа текущего элемента

Описание

public mixed RecursiveIteratorIterator::key ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущий ключ.


Перемещение итератора к следующему элементу

  • « RecursiveIteratorIterator::key
  • RecursiveIteratorIterator::nextElement »
  • PHP Manual
  • RecursiveIteratorIterator
  • Перемещение итератора к следующему элементу

RecursiveIteratorIterator::next

(PHP 5, PHP 7)

RecursiveIteratorIterator::next — Перемещение итератора к следующему элементу

Описание

public void RecursiveIteratorIterator::next ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Следующий элемент

  • « RecursiveIteratorIterator::next
  • RecursiveIteratorIterator::rewind »
  • PHP Manual
  • RecursiveIteratorIterator
  • Следующий элемент

RecursiveIteratorIterator::nextElement

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::nextElement — Следующий элемент

Описание

public void RecursiveIteratorIterator::nextElement ( void )

Вызывается, когда следующий элемент становится доступен.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора

  • « RecursiveIteratorIterator::nextElement
  • RecursiveIteratorIterator::setMaxDepth »
  • PHP Manual
  • RecursiveIteratorIterator
  • Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора

RecursiveIteratorIterator::rewind

(PHP 5, PHP 7)

RecursiveIteratorIterator::rewind — Перемещает итератор на первый элемент самого верхнего уровня вложенности внутреннего итератора

Описание

public void RecursiveIteratorIterator::rewind ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Установка максимальной глубины вложенности

  • « RecursiveIteratorIterator::rewind
  • RecursiveIteratorIterator::valid »
  • PHP Manual
  • RecursiveIteratorIterator
  • Установка максимальной глубины вложенности

RecursiveIteratorIterator::setMaxDepth

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIteratorIterator::setMaxDepth — Установка максимальной глубины вложенности

Описание

public void RecursiveIteratorIterator::setMaxDepth ([ string $max_depth = -1 ] )

Задает максимальную глубину вложенности элементов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

max_depth

Максимально допустимая глубина вложенности. -1 снимает ограничение на глубину рекурсии.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение Exception, если аргумент max_depth меньше -1.


Проверка допустимости текущей позиции

  • « RecursiveIteratorIterator::setMaxDepth
  • RecursiveRegexIterator »
  • PHP Manual
  • RecursiveIteratorIterator
  • Проверка допустимости текущей позиции

RecursiveIteratorIterator::valid

(PHP 5, PHP 7)

RecursiveIteratorIterator::valid — Проверка допустимости текущей позиции

Описание

public bool RecursiveIteratorIterator::valid ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если текущая позиция допустима, FALSE в противном случае.


Класс RecursiveRegexIterator

(PHP 5 >= 5.2.0, PHP 7)

Введение

Этот рекурсивный итератор может фильтровать другой рекурсивный итератор с помощью регулярных выражений.

Обзор классов

RecursiveRegexIterator extends RegexIterator implements RecursiveIterator {
/* Методы */
public __construct ( RecursiveIterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )
public RecursiveRegexIterator getChildren ( void )
public bool hasChildren ( void )
/* Наследуемые методы */
public RecursiveIterator RecursiveIterator::getChildren ( void )
public bool RecursiveIterator::hasChildren ( void )
public bool RegexIterator::accept ( void )
public int RegexIterator::getFlags ( void )
public int RegexIterator::getMode ( void )
public int RegexIterator::getPregFlags ( void )
public string RegexIterator::getRegex ( void )
public void RegexIterator::setFlags ( int $flags )
public void RegexIterator::setMode ( int $mode )
public void RegexIterator::setPregFlags ( int $preg_flags )
}

Содержание

  • RecursiveRegexIterator::__construct — Конструктор класса RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren — Возвращает итератор для текущего элемента
  • RecursiveRegexIterator::hasChildren — Определяет, возможна ли навигация по содержимому текущего элемента


Конструктор класса RecursiveRegexIterator

  • « RecursiveRegexIterator
  • RecursiveRegexIterator::getChildren »
  • PHP Manual
  • RecursiveRegexIterator
  • Конструктор класса RecursiveRegexIterator

RecursiveRegexIterator::__construct

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::__construct — Конструктор класса RecursiveRegexIterator

Описание

public RecursiveRegexIterator::__construct ( RecursiveIterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )

Создает новый объект-итератор регулярного выражения.

Список параметров

iterator

Рекурсивный итератор к которому требуется применить фильтр на основе регулярного выражения.

regex

Регулярное выражение.

mode

Режим работы, список доступных режимов приведен в описании метода RegexIterator::setMode().

flags

Специальные флаги. Список доступных флагов приведен в описании метода RegexIterator::setFlags().

preg_flags

Флаги регулярного выражения. Список флагов зависит от режима работы:

RegexIterator preg_flags
режим работы | доступные флаги
RecursiveRegexIterator::ALL_MATCHES | См. preg_match_all().
RecursiveRegexIterator::GET_MATCH | См. preg_match().
RecursiveRegexIterator::MATCH | См. preg_match().
RecursiveRegexIterator::REPLACE | нет
RecursiveRegexIterator::SPLIT | См. preg_split().

Примеры

Пример #1 Пример использования RecursiveRegexIterator::__construct()

Создает новый объект-итератор RegexIterator, который выбирает все строки, которые начинаются со слова 'test'.

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $key1 => $value1) {

    if ($rRegexIterator->hasChildren()) {

        // выведем все дочерние элементы
        echo "Дочерние элементы: ";
        foreach ($rRegexIterator->getChildren() as $key => $value) {
            echo $value . " ";
        }
        echo "\n";
    } else {
        echo "Нет дочерних элементов\n";
    }

}
?>

Результатом выполнения данного примера будет что-то подобное:

Нет дочерних элементов
Дочерние элементы: test4 test5

Смотрите также

  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • preg_match_all() - Выполняет глобальный поиск шаблона в строке
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_split() - Разбивает строку по регулярному выражению


Возвращает итератор для текущего элемента

  • « RecursiveRegexIterator::__construct
  • RecursiveRegexIterator::hasChildren »
  • PHP Manual
  • RecursiveRegexIterator
  • Возвращает итератор для текущего элемента

RecursiveRegexIterator::getChildren

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::getChildren — Возвращает итератор для текущего элемента

Описание

public RecursiveRegexIterator RecursiveRegexIterator::getChildren ( void )

Возвращает итератор для текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Итератор для текущего элемента, если возможна навигация по содержимому внутреннего итератора.

Ошибки

Если внутренний итератор указывает на элемент, который не содержит дочерних элементов, будет выброшено исключение InvalidArgumentException.

Примеры

Пример #1 Пример использования RecursiveRegexIterator::getChildren()

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $key1 => $value1) {

    if ($rRegexIterator->hasChildren()) {

        // выведем все дочерние элементы
        echo "Дочерние элементы: ";
        foreach ($rRegexIterator->getChildren() as $key => $value) {
            echo $value . " ";
        }
        echo "\n";
    } else {
        echo "Нет дочерних элементов\n";
    }

}
?>

Результат выполнения данного примера:

Нет дочерних элементов
Дочерние элементы: test4 test5

Смотрите также

  • RecursiveRegexIterator::hasChildren() - Определяет, возможна ли навигация по содержимому текущего элемента


Определяет, возможна ли навигация по содержимому текущего элемента

  • « RecursiveRegexIterator::getChildren
  • RecursiveTreeIterator »
  • PHP Manual
  • RecursiveRegexIterator
  • Определяет, возможна ли навигация по содержимому текущего элемента

RecursiveRegexIterator::hasChildren

(PHP 5 >= 5.2.0, PHP 7)

RecursiveRegexIterator::hasChildren — Определяет, возможна ли навигация по содержимому текущего элемента

Описание

public bool RecursiveRegexIterator::hasChildren ( void )

Определяет, возможна ли навигация по содержимому текущего элемента. В случае, если текущий элемент имеет потомков, итератор для них можно получить методом RecursiveRegexIterator::getChildren().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если возможна навигация по содержимому текущего элемента, FALSE в противном случае.

Примеры

Пример #1 Пример использования RecursiveRegexIterator::hasChildren()

<?php
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
    RecursiveRegexIterator::ALL_MATCHES);

foreach ($rRegexIterator as $value) {
    var_dump($rRegexIterator->hasChildren());
}
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • RecursiveRegexIterator::getChildren() - Возвращает итератор для текущего элемента


Класс RecursiveTreeIterator

(PHP 5 >= 5.3.0, PHP 7)

Введение

Позволяет производить итерации над RecursiveIterator для генерации дерева в ASCII графике.

Обзор классов

RecursiveTreeIterator extends RecursiveIteratorIterator implements OuterIterator {
/* Константы */
const integer BYPASS_CURRENT = 4 ;
const integer BYPASS_KEY = 8 ;
const integer PREFIX_LEFT = 0 ;
const integer PREFIX_MID_HAS_NEXT = 1 ;
const integer PREFIX_MID_LAST = 2 ;
const integer PREFIX_END_HAS_NEXT = 3 ;
const integer PREFIX_END_LAST = 4 ;
const integer PREFIX_RIGHT = 5 ;
/* Методы */
public void beginChildren ( void )
public RecursiveIterator beginIteration ( void )
public RecursiveIterator callGetChildren ( void )
public bool callHasChildren ( void )
public __construct ( RecursiveIterator|IteratorAggregate $it [, int $flags = RecursiveTreeIterator::BYPASS_KEY [, int $cit_flags = CachingIterator::CATCH_GET_CHILD [, int $mode = RecursiveIteratorIterator::SELF_FIRST ]]] )
public string current ( void )
public void endChildren ( void )
public void endIteration ( void )
public string getEntry ( void )
public void getPostfix ( void )
public string getPrefix ( void )
public string key ( void )
public void next ( void )
public void nextElement ( void )
public void rewind ( void )
public void setPrefixPart ( int $part , string $value )
public bool valid ( void )
/* Наследуемые методы */
public void RecursiveIteratorIterator::beginChildren ( void )
public void RecursiveIteratorIterator::beginIteration ( void )
public RecursiveIterator RecursiveIteratorIterator::callGetChildren ( void )
public bool RecursiveIteratorIterator::callHasChildren ( void )
public RecursiveIteratorIterator::__construct ( Traversable $iterator [, int $mode = RecursiveIteratorIterator::LEAVES_ONLY [, int $flags = 0 ]] )
public mixed RecursiveIteratorIterator::current ( void )
public void RecursiveIteratorIterator::endChildren ( void )
public void RecursiveIteratorIterator::endIteration ( void )
public int RecursiveIteratorIterator::getDepth ( void )
public iterator RecursiveIteratorIterator::getInnerIterator ( void )
public mixed RecursiveIteratorIterator::getMaxDepth ( void )
public RecursiveIterator RecursiveIteratorIterator::getSubIterator ([ int $level ] )
public mixed RecursiveIteratorIterator::key ( void )
public void RecursiveIteratorIterator::next ( void )
public void RecursiveIteratorIterator::nextElement ( void )
public void RecursiveIteratorIterator::rewind ( void )
public void RecursiveIteratorIterator::setMaxDepth ([ string $max_depth = -1 ] )
public bool RecursiveIteratorIterator::valid ( void )
}

Предопределенные константы

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::setPrefixPart — Задание части префикса
  • RecursiveTreeIterator::valid — Проверка допустимости элемента


Начало навигации по потомкам элемента

  • « RecursiveTreeIterator
  • RecursiveTreeIterator::beginIteration »
  • PHP Manual
  • RecursiveTreeIterator
  • Начало навигации по потомкам элемента

RecursiveTreeIterator::beginChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::beginChildren — Начало навигации по потомкам элемента

Описание

public void RecursiveTreeIterator::beginChildren ( void )

Вызывается, когда обход дерева спускается на один уровень вниз.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Начало навигации

  • « RecursiveTreeIterator::beginChildren
  • RecursiveTreeIterator::callGetChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Начало навигации

RecursiveTreeIterator::beginIteration

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::beginIteration — Начало навигации

Описание

public RecursiveIterator RecursiveTreeIterator::beginIteration ( void )

Вызывается, когда начинается навигация по элементам (после первого вызова метода RecursiveTreeIterator::rewind()).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект RecursiveIterator.


Получение дочерних элементов

  • « RecursiveTreeIterator::beginIteration
  • RecursiveTreeIterator::callHasChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение дочерних элементов

RecursiveTreeIterator::callGetChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::callGetChildren — Получение дочерних элементов

Описание

public RecursiveIterator RecursiveTreeIterator::callGetChildren ( void )

Возвращает итератор для элементов-потомков текущего элемента.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект RecursiveIterator.


Проверка, есть ли у текущего элемента потомки

  • « RecursiveTreeIterator::callGetChildren
  • RecursiveTreeIterator::__construct »
  • PHP Manual
  • RecursiveTreeIterator
  • Проверка, есть ли у текущего элемента потомки

RecursiveTreeIterator::callHasChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::callHasChildren — Проверка, есть ли у текущего элемента потомки

Описание

public bool RecursiveTreeIterator::callHasChildren ( void )

Проверяет, есть ли у текущего элемента потомки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если у текущего элемента есть дочерние, FALSE в противном случае.


Конструктор класса RecursiveTreeIterator

  • « RecursiveTreeIterator::callHasChildren
  • RecursiveTreeIterator::current »
  • PHP Manual
  • RecursiveTreeIterator
  • Конструктор класса RecursiveTreeIterator

RecursiveTreeIterator::__construct

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::__construct — Конструктор класса RecursiveTreeIterator

Описание

 public RecursiveTreeIterator::__construct
  ( RecursiveIterator|IteratorAggregate $it
 [, int $flags = RecursiveTreeIterator::BYPASS_KEY
 [, int $cit_flags = CachingIterator::CATCH_GET_CHILD
 [, int $mode = RecursiveIteratorIterator::SELF_FIRST
]]] )

Создает новый объект класса RecursiveTreeIterator на основе рекурсивного объекта-итератора.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

it

Объект класса RecursiveIterator или класса IteratorAggregate.

flags

Флаги влияют на поведение некоторых методов класса. Список возможных флагов можно найти на странице Предопределенных констант RecursiveTreeIterator.

caching_it_flags

Флаги для настройки внутреннего объекта RecursiveCachingIterator.

mode

Флаги для настройки внутреннего объекта RecursiveIteratorIterator.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Получение текущего элемента

  • « RecursiveTreeIterator::__construct
  • RecursiveTreeIterator::endChildren »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение текущего элемента

RecursiveTreeIterator::current

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::current — Получение текущего элемента

Описание

public string RecursiveTreeIterator::current ( void )

Возвращает текущий элемент с префиксом и суффиксом.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент с префиксом и суфиксом.


Завершение навигации по потомкам элемента

  • « RecursiveTreeIterator::current
  • RecursiveTreeIterator::endIteration »
  • PHP Manual
  • RecursiveTreeIterator
  • Завершение навигации по потомкам элемента

RecursiveTreeIterator::endChildren

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::endChildren — Завершение навигации по потомкам элемента

Описание

public void RecursiveTreeIterator::endChildren ( void )

Вызывается, когда дочерние элементы одного уровня закончились.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Завершение навигации

  • « RecursiveTreeIterator::endChildren
  • RecursiveTreeIterator::getEntry »
  • PHP Manual
  • RecursiveTreeIterator
  • Завершение навигации

RecursiveTreeIterator::endIteration

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::endIteration — Завершение навигации

Описание

public void RecursiveTreeIterator::endIteration ( void )

Вызывается по завершении навигации (когда метод RecursiveTreeIterator::valid() впервые вернет FALSE).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Получение поддерева, корнем которого является текущий элемент

  • « RecursiveTreeIterator::endIteration
  • RecursiveTreeIterator::getPostfix »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение поддерева, корнем которого является текущий элемент

RecursiveTreeIterator::getEntry

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getEntry — Получение поддерева, корнем которого является текущий элемент

Описание

public string RecursiveTreeIterator::getEntry ( void )

Получает поддерево, корнем которого является текущий элемент.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает поддерево, корнем которого является текущий элемент.


Получение суффикса

  • « RecursiveTreeIterator::getEntry
  • RecursiveTreeIterator::getPrefix »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение суффикса

RecursiveTreeIterator::getPostfix

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getPostfix — Получение суффикса

Описание

public void RecursiveTreeIterator::getPostfix ( void )

Получает строку для помещения после текущего элемента.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку для помещения после текущего элемента.


Получение префикса

  • « RecursiveTreeIterator::getPostfix
  • RecursiveTreeIterator::key »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение префикса

RecursiveTreeIterator::getPrefix

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::getPrefix — Получение префикса

Описание

public string RecursiveTreeIterator::getPrefix ( void )

Получает строку для помещения перед текущим элементом.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку для помещения перед текущим элементом.


Получение ключа текущего элемента

  • « RecursiveTreeIterator::getPrefix
  • RecursiveTreeIterator::next »
  • PHP Manual
  • RecursiveTreeIterator
  • Получение ключа текущего элемента

RecursiveTreeIterator::key

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::key — Получение ключа текущего элемента

Описание

public string RecursiveTreeIterator::key ( void )

Получает ключ текущего элемента с префиксом и суффиксом.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ключ текущего элемента с префиксом и суффиксом.


Переход к следующему элементу

  • « RecursiveTreeIterator::key
  • RecursiveTreeIterator::nextElement »
  • PHP Manual
  • RecursiveTreeIterator
  • Переход к следующему элементу

RecursiveTreeIterator::next

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::next — Переход к следующему элементу

Описание

public void RecursiveTreeIterator::next ( void )

Переход к следующему элементу.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Следующий элемент

  • « RecursiveTreeIterator::next
  • RecursiveTreeIterator::rewind »
  • PHP Manual
  • RecursiveTreeIterator
  • Следующий элемент

RecursiveTreeIterator::nextElement

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::nextElement — Следующий элемент

Описание

public void RecursiveTreeIterator::nextElement ( void )

Вызывается, когда следующий элемент становится доступным.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Перевод итератора в начало

  • « RecursiveTreeIterator::nextElement
  • RecursiveTreeIterator::setPrefixPart »
  • PHP Manual
  • RecursiveTreeIterator
  • Перевод итератора в начало

RecursiveTreeIterator::rewind

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::rewind — Перевод итератора в начало

Описание

public void RecursiveTreeIterator::rewind ( void )

Переводит итератор на первый элемент верхнего уровня элементов внутреннего итератора.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Задание части префикса

  • « RecursiveTreeIterator::rewind
  • RecursiveTreeIterator::valid »
  • PHP Manual
  • RecursiveTreeIterator
  • Задание части префикса

RecursiveTreeIterator::setPrefixPart

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::setPrefixPart — Задание части префикса

Описание

public void RecursiveTreeIterator::setPrefixPart ( int $part , string $value )

Устанавливает часть префикса, которая используется для построения графа.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

part

Одна из констант RecursiveTreeIterator::PREFIX_*.

value

Значение, которое требуется присвоить части префикса part.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Проверка допустимости элемента

  • « RecursiveTreeIterator::setPrefixPart
  • RegexIterator »
  • PHP Manual
  • RecursiveTreeIterator
  • Проверка допустимости элемента

RecursiveTreeIterator::valid

(PHP 5 >= 5.3.0, PHP 7)

RecursiveTreeIterator::valid — Проверка допустимости элемента

Описание

public bool RecursiveTreeIterator::valid ( void )

Проверяет, имеет ли текущий элемент допустимое значение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если текущий элемент валиден, FALSE в противном случае.


Класс RegexIterator

(PHP 5 >= 5.2.0, PHP 7)

Введение

Этот итератор может быть использован для фильтрации другого итератора на основе регулярных выражений.

Обзор классов

RegexIterator extends FilterIterator {
/* Константы */
const integer MATCH = 0 ;
const integer GET_MATCH = 1 ;
const integer ALL_MATCHES = 2 ;
const integer SPLIT = 3 ;
const integer REPLACE = 4 ;
const integer USE_KEY = 1 ;
/* Методы */
public __construct ( Iterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )
public bool accept ( void )
public int getFlags ( void )
public int getMode ( void )
public int getPregFlags ( void )
public string getRegex ( void )
public void setFlags ( int $flags )
public void setMode ( int $mode )
public void setPregFlags ( int $preg_flags )
/* Наследуемые методы */
public abstract bool FilterIterator::accept ( void )
public FilterIterator::__construct ( Iterator $iterator )
public mixed FilterIterator::current ( void )
public Iterator FilterIterator::getInnerIterator ( void )
public mixed FilterIterator::key ( void )
public void FilterIterator::next ( void )
public void FilterIterator::rewind ( void )
public bool FilterIterator::valid ( void )
}

Предопределенные константы

Режимы работы RegexIterator

RegexIterator::ALL_MATCHES

Возвращает все совпадения для текущий записи (смотрите preg_match_all()).

RegexIterator::GET_MATCH

Возвращает первое совпадение для текущей записи (смотрите preg_match()).

RegexIterator::MATCH

Только выполнение сравнения (фильтра) для текущей записи (смотрите preg_match()).

RegexIterator::REPLACE

Замена текущей записи (смотрите preg_replace(); Полностью пока не реализовано)

RegexIterator::SPLIT

Возвращает разделенные значения для текущей записи (смотрите preg_split()).

Флаги RegexIterator

RegexIterator::USE_KEY

Специальный флаг: Сравнивать ключ записи вместо значения записи.

Содержание

  • RegexIterator::accept — Проверка соответствия регулярному выражению
  • RegexIterator::__construct — Конструктор класса RegexIterator
  • RegexIterator::getFlags — Получение флагов настройки
  • RegexIterator::getMode — Возвращает режим работы
  • RegexIterator::getPregFlags — Возвращает флаги регулярного выражения
  • RegexIterator::getRegex — Возвращает строку текущего регулярного выражения
  • RegexIterator::setFlags — Установка флагов
  • RegexIterator::setMode — Установка режима работы
  • RegexIterator::setPregFlags — Задание флагов регулярного выражения


Проверка соответствия регулярному выражению

  • « RegexIterator
  • RegexIterator::__construct »
  • PHP Manual
  • RegexIterator
  • Проверка соответствия регулярному выражению

RegexIterator::accept

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::accept — Проверка соответствия регулярному выражению

Описание

public bool RegexIterator::accept ( void )

Проверяет соответствие строки (string), которую вернул
метод RegexIterator::current()
(или RegexIterator::key(), если установлен флаг
RegexIterator::USE_KEY),
регулярному выражению.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE если значение элемента соответствует регулярному выражению, FALSE в противном случае.

Примеры

Пример #1 Пример использования RegexIterator::accept()

В этом примере будет осуществляться навигация только по тем элементам, значения которых соответствуют регулярному выражению.

<?php
$names = new ArrayIterator(array('Ann', 'Bob', 'Charlie', 'David'));
$filter = new RegexIterator($names, '/^[B-D]/');
foreach ($filter as $name) {
    echo $name . PHP_EOL;
}
?>

Результат выполнения данного примера:

Bob
Charlie
David

Смотрите также

  • Константы RegexIterator
  • RegexIterator::setFlags() - Установка флагов


Конструктор класса RegexIterator

  • « RegexIterator::accept
  • RegexIterator::getFlags »
  • PHP Manual
  • RegexIterator
  • Конструктор класса RegexIterator

RegexIterator::__construct

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::__construct — Конструктор класса RegexIterator

Описание

public RegexIterator::__construct ( Iterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )

Создает новый объект класса RegexIterator, который фильтрует элементы итератора Iterator основываясь на регулярном выражении.

Список параметров

iterator

Итератор, к элементам которого требуется применить фильтр.

regex

Регулярное выражение, на основе которого проводится отбор элементов.

mode

Режим работы. Список возможных режимов можно посмотреть в описании к методу RegexIterator::setMode().

flags

Специальные флаги. Список возможных флагов приведен в описании к методу RegexIterator::setFlags().

preg_flags

Флаги регулярного выражения. Список возможных флагов зависит от режима работы:

RegexIterator preg_flags
режим работы | доступные флаги
RegexIterator::ALL_MATCHES | См. preg_match_all().
RegexIterator::GET_MATCH | См. preg_match().
RegexIterator::MATCH | См. preg_match().
RegexIterator::REPLACE | нет
RegexIterator::SPLIT | См. preg_split().

Ошибки

Бросает исключение InvalidArgumentException, если regex задан некорректно.

Примеры

Пример #1 Пример использования RegexIterator::__construct()

Создает новый объект RegexIterator, который отбирает строки, начинающиеся со слова 'test'.

<?php
$arrayIterator = new ArrayIterator(array('test 1', 'another test', 'test 123'));
$regexIterator = new RegexIterator($arrayIterator, '/^test/');

foreach ($regexIterator as $value) {
    echo $value . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

test 1
test 123

Смотрите также

  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • preg_match_all() - Выполняет глобальный поиск шаблона в строке
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_split() - Разбивает строку по регулярному выражению


Получение флагов настройки

  • « RegexIterator::__construct
  • RegexIterator::getMode »
  • PHP Manual
  • RegexIterator
  • Получение флагов настройки

RegexIterator::getFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getFlags — Получение флагов настройки

Описание

public int RegexIterator::getFlags ( void )

Возвращает флаги настройки. Список возможных флагов приведен в описании метода RegexIterator::setFlags().

Возвращаемые значения

Возвращает набор флагов.

Примеры

Пример #1 Пример использования RegexIterator::getFlags()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

if ($regexIterator->getFlags() & RegexIterator::USE_KEY) {
    echo 'Фильрация на основе ключей массива.';
} else {
    echo 'Фильрация на основе значений массива.';
}
?>

Результат выполнения данного примера:

Фильрация на основе ключей массива.

Смотрите также

  • RegexIterator::setFlags() - Установка флагов


Возвращает режим работы

  • « RegexIterator::getFlags
  • RegexIterator::getPregFlags »
  • PHP Manual
  • RegexIterator
  • Возвращает режим работы

RegexIterator::getMode

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getMode — Возвращает режим работы

Описание

public int RegexIterator::getMode ( void )

Возвращает режим работы. Список возможных режимов приведен на странице RegexIterator::setMode().

Возвращаемые значения

Возвращает режим работы.

Примеры

Пример #1 Пример использования RegexIterator::getMode()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^[a-z]+/', RegexIterator::GET_MATCH);

$mode = $regexIterator->getMode();
if ($mode & RegexIterator::GET_MATCH) {
    echo 'Проверка соответствий для каждого элемента.';
} elseif ($mode & RegexIterator::ALL_MATCHES) {
    echo 'Получение всех соответствий для каждого элемента.';
} elseif ($mode & RegexIterator::MATCH) {
    echo 'Получение элементов прошедших отбор.';
} elseif ($mode & RegexIterator::SPLIT) {
    echo 'Получение отдельных частей каждого элемента.';
}
?>

Результат выполнения данного примера:

Проверка соответствий для каждого элемента.

Смотрите также

  • RegexIterator::setMode() - Установка режима работы


Возвращает флаги регулярного выражения

  • « RegexIterator::getMode
  • RegexIterator::getRegex »
  • PHP Manual
  • RegexIterator
  • Возвращает флаги регулярного выражения

RegexIterator::getPregFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::getPregFlags — Возвращает флаги регулярного выражения

Описание

public int RegexIterator::getPregFlags ( void )

Возвращает флаги регулярного выражения. Список возможных флагов приведен в описании метода RegexIterator::__construct().

Возвращаемые значения

Возвращает битовую маску флагов регулярного выражения.

Примеры

Пример #1 Пример использования RegexIterator::getPregFlags()

<?php

$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/\s/', RegexIterator::SPLIT);
$regexIterator->setPregFlags(PREG_SPLIT_NO_EMPTY | PREG_SPLIT_OFFSET_CAPTURE);

if ($regexIterator->getPregFlags() & PREG_SPLIT_NO_EMPTY) {
    echo 'Не принимать во внимание пустые участки';
} else {
    echo 'Рассматривать пустые участки';
}

?>

Результат выполнения данного примера:

Не принимать во внимание пустые участки

Смотрите также

  • RegexIterator::setPregFlags() - Задание флагов регулярного выражения


Возвращает строку текущего регулярного выражения

  • « RegexIterator::getPregFlags
  • RegexIterator::setFlags »
  • PHP Manual
  • RegexIterator
  • Возвращает строку текущего регулярного выражения

RegexIterator::getRegex

(PHP 5 >= 5.4.0, PHP 7)

RegexIterator::getRegex — Возвращает строку текущего регулярного выражения

Описание

public string RegexIterator::getRegex ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Установка флагов

  • « RegexIterator::getRegex
  • RegexIterator::setMode »
  • PHP Manual
  • RegexIterator
  • Установка флагов

RegexIterator::setFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setFlags — Установка флагов

Описание

public void RegexIterator::setFlags ( int $flags )

Задает флаги настройки.

Список параметров

flags

Флаги, битовая маска констант класса.

Ниже перечислены доступные флаги. Смысл и значения флагов описаны в разделе предопределенных констант.

Флаги RegexIterator
значение | константа
1 | RegexIterator::USE_KEY

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования RegexIterator::setFlags()

Создает новый объект-итератор, отбирающий элементы, ключи которых начинаются со слова 'test'.

<?php
$test = array ('str1' => 'test 1', 'teststr2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/');
$regexIterator->setFlags(RegexIterator::USE_KEY);

foreach ($regexIterator as $key => $value) {
    echo $key . ' => ' . $value . "\n";
}
?>

Результат выполнения данного примера:

teststr2 => another test

Смотрите также

  • RegexIterator::getFlags() - Получение флагов настройки


Установка режима работы

  • « RegexIterator::setFlags
  • RegexIterator::setPregFlags »
  • PHP Manual
  • RegexIterator
  • Установка режима работы

RegexIterator::setMode

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setMode — Установка режима работы

Описание

public void RegexIterator::setMode ( int $mode )

Задает режим работы.

Список параметров

mode

Режим работы.

Ниже перечислены возможные режимы. Смысл и значения режимов описаны в разделе предопределенных констант.

Режимы работы RegexIterator
значение | константа
0 | RegexIterator::MATCH
1 | RegexIterator::GET_MATCH
2 | RegexIterator::ALL_MATCHES
3 | RegexIterator::SPLIT
4 | RegexIterator::REPLACE

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования RegexIterator::setMode()

<?php
$test = array ('str1' => 'test 1', 'test str2' => 'another test', 'str3' => 'test 123');

$arrayIterator = new ArrayIterator($test);
// Отбор всех элементов, которые начинаются со слова 'test ', за которым идут числа
$regexIterator = new RegexIterator($arrayIterator, '/^test (\d+)/');
// Режим работы: Замена совпавших строк
$regexIterator->setMode(RegexIterator::GET_MATCH);

foreach ($regexIterator as $key => $value) {
    // вывод совпавших чисел
    echo $key . ' => ' . $value[1] . PHP_EOL;
}
?>

Результатом выполнения данного примера будет что-то подобное:

str1 => 1
str3 => 123

Смотрите также

  • RegexIterator::getMode() - Возвращает режим работы


Задание флагов регулярного выражения

  • « RegexIterator::setMode
  • Интерфейсы »
  • PHP Manual
  • RegexIterator
  • Задание флагов регулярного выражения

RegexIterator::setPregFlags

(PHP 5 >= 5.2.0, PHP 7)

RegexIterator::setPregFlags — Задание флагов регулярного выражения

Описание

public void RegexIterator::setPregFlags ( int $preg_flags )

Устанавливает флаги регулярного выражения.

Список параметров

preg_flags

Флаги настройки регулярного выражения. Список возможных флагов приведен в описании метода RegexIterator::__construct().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования RegexIterator::setPregFlags()

Создает новый объект RegexIterator, отбирающий элементы массива, ключи которых начинаются со слова 'test'.

<?php
$test = array ('test 1', 'another test', 'test 123');

$arrayIterator = new ArrayIterator($test);
$regexIterator = new RegexIterator($arrayIterator, '/^test/', RegexIterator::GET_MATCH);

$regexIterator->setPregFlags(PREG_OFFSET_CAPTURE);

foreach ($regexIterator as $key => $value) {
    var_dump($value);
}
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(4) "test"
    [1]=>
    int(0)
  }
}

Смотрите также

  • RegexIterator::getPregFlags() - Возвращает флаги регулярного выражения


Интерфейсы

Содержание

  • Countable
  • OuterIterator
  • RecursiveIterator
  • SeekableIterator

SPL обеспечивает набор интерфейсов.

Смотрите также Встроенные интерфейсы и классы

Список интерфейсов

  • Countable
  • OuterIterator
  • RecursiveIterator
  • SeekableIterator
  • SplObserver
  • SplSubject


Интерфейс Countable

(PHP 5 >= 5.1.0, PHP 7)

Введение

Классы, которые реализуют интерфейс Countable, могут быть использованы с функцией count().

Обзор интерфейсов

Countable {
/* Методы */
abstract public int count ( void )
}

Содержание

  • Countable::count — Количество элементов объекта


Количество элементов объекта

  • « Countable
  • OuterIterator »
  • PHP Manual
  • Countable
  • Количество элементов объекта

Countable::count

(PHP 5 >= 5.1.0, PHP 7)

Countable::count — Количество элементов объекта

Описание

abstract public int Countable::count ( void )

Этот метод выполняется при использовании метода count() объекта Countable.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Пользовательское значение типа integer.

Замечание:

Возвращаемое значение приводится к типу integer.

Примеры

Пример #1 Пример использования Countable::count()

<?php
class myCounter implements Countable {
    private $count = 0;
    public function count() {
        return ++$this->count;
    }
}

$counter = new myCounter;

for($i=0; $i<10; ++$i) {
    echo "Я посчитан " . count($counter) . " раз\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Я посчитан 1 раз
Я посчитан 2 раз
Я посчитан 3 раз
Я посчитан 4 раз
Я посчитан 5 раз
Я посчитан 6 раз
Я посчитан 7 раз
Я посчитан 8 раз
Я посчитан 9 раз
Я посчитан 10 раз


Интерфейс OuterIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Классы реализации OuterIterator могут быть использованы для перебора итераторов.

Обзор интерфейсов

OuterIterator extends Iterator {
/* Методы */
public Iterator getInnerIterator ( void )
/* Наследуемые методы */
abstract public mixed Iterator::current ( void )
abstract public scalar Iterator::key ( void )
abstract public void Iterator::next ( void )
abstract public void Iterator::rewind ( void )
abstract public boolean Iterator::valid ( void )
}

Содержание

  • OuterIterator::getInnerIterator — Возвращает внутренний итератор для текущего элемента


Возвращает внутренний итератор для текущего элемента

  • « OuterIterator
  • RecursiveIterator »
  • PHP Manual
  • OuterIterator
  • Возвращает внутренний итератор для текущего элемента

OuterIterator::getInnerIterator

(PHP 5 >= 5.1.0, PHP 7)

OuterIterator::getInnerIterator — Возвращает внутренний итератор для текущего элемента

Описание

public Iterator OuterIterator::getInnerIterator ( void )

Возвращает внутренний итератор для текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Внутренний итератор для текущего элемента.


Интерфейс RecursiveIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Классы, реализующие RecursiveIterator, могут быть использованы для рекурсивного перебора итераторов.

Обзор интерфейсов

RecursiveIterator extends Iterator {
/* Методы */
public RecursiveIterator getChildren ( void )
public bool hasChildren ( void )
/* Наследуемые методы */
abstract public mixed Iterator::current ( void )
abstract public scalar Iterator::key ( void )
abstract public void Iterator::next ( void )
abstract public void Iterator::rewind ( void )
abstract public boolean Iterator::valid ( void )
}

Содержание

  • RecursiveIterator::getChildren — Возвращает итератор для текущего элемента
  • RecursiveIterator::hasChildren — Определяет, можно ли для текущего элемента создать итератор


Возвращает итератор для текущего элемента

  • « RecursiveIterator
  • RecursiveIterator::hasChildren »
  • PHP Manual
  • RecursiveIterator
  • Возвращает итератор для текущего элемента

RecursiveIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIterator::getChildren — Возвращает итератор для текущего элемента

Описание

public RecursiveIterator RecursiveIterator::getChildren ( void )

Возвращает итератор для текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Итератор для текущего элемента.

Смотрите также

  • RecursiveIterator::hasChildren() - Определяет, можно ли для текущего элемента создать итератор


Определяет, можно ли для текущего элемента создать итератор

  • « RecursiveIterator::getChildren
  • SeekableIterator »
  • PHP Manual
  • RecursiveIterator
  • Определяет, можно ли для текущего элемента создать итератор

RecursiveIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

RecursiveIterator::hasChildren — Определяет, можно ли для текущего элемента создать итератор

Описание

public bool RecursiveIterator::hasChildren ( void )

Определяет, можно ли для текущего элемента создать итератор методом RecursiveIterator::getChildren().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если по текущему элементу можно осуществить навигацию, FALSE в противном случае.

Смотрите также

  • RecursiveIterator::getChildren() - Возвращает итератор для текущего элемента


Интерфейс SeekableIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

Итератор Seekable.

Обзор интерфейсов

SeekableIterator extends Iterator {
/* Методы */
abstract public void seek ( int $position )
/* Наследуемые методы */
abstract public mixed Iterator::current ( void )
abstract public scalar Iterator::key ( void )
abstract public void Iterator::next ( void )
abstract public void Iterator::rewind ( void )
abstract public boolean Iterator::valid ( void )
}

Пример #1 Простое использование

Этот пример демонстрирует создание пользовательского итератора SeekableIterator, который ищет позицию и обрабатывает недействительную позицию.

<?php
class MySeekableIterator implements SeekableIterator {

    private $position;

    private $array = array(
        "first element",
        "second element",
        "third element",
        "fourth element"
    );

    /* Метод требуемый для интерфейса SeekableIterator */

    public function seek($position) {
      if (!isset($this->array[$position])) {
          throw new OutOfBoundsException("invalid seek position ($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();
}
?>

Результатом выполнения данного примера будет что-то подобное:

first element
third element
second element
invalid seek position (10)

Содержание

  • SeekableIterator::seek — Осуществляет перемещение к заданной позиции


Осуществляет перемещение к заданной позиции

  • « SeekableIterator
  • Исключения »
  • PHP Manual
  • SeekableIterator
  • Осуществляет перемещение к заданной позиции

SeekableIterator::seek

(PHP 5 >= 5.1.0, PHP 7)

SeekableIterator::seek — Осуществляет перемещение к заданной позиции

Описание

abstract public void SeekableIterator::seek ( int $position )

Перемещается к заданной позиции в итераторе.

Список параметров

position

Позиция, к которой нужно переместиться.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Реализации должны выбрасывать исключение OutOfBoundsException, если position недостижима.

Примеры

Пример #1 Пример использования SeekableIterator::seek()

Перемещение к элементу на 3-ей позиции в итераторе (ArrayIterator реализует SeekableIterator).

<?php
$array = array("яблоко", "банан", "вишня", "тернослив", "ягода бузины");
$iterator = new ArrayIterator($array);
$iterator->seek(3);
echo $iterator->current();
?>

Результатом выполнения данного примера будет что-то подобное:

тернослив

Смотрите также

  • SeekableIterator
  • Iterator


Исключения

Содержание

  • BadFunctionCallException
  • BadMethodCallException
  • DomainException
  • InvalidArgumentException
  • LengthException
  • LogicException
  • OutOfBoundsException
  • OutOfRangeException
  • OverflowException
  • RangeException
  • RuntimeException
  • UnderflowException
  • UnexpectedValueException

SPL обеспечивает набор стандартных исключений.

Смотрите также Предопределённые исключения

Иерархия классов исключений SPL

  • LogicException (extends Exception)
    • BadFunctionCallException
      • BadMethodCallException
    • DomainException
    • InvalidArgumentException
    • LengthException
    • OutOfRangeException
  • RuntimeException (extends Exception)
    • OutOfBoundsException
    • OverflowException
    • RangeException
    • UnderflowException
    • UnexpectedValueException


Класс BadFunctionCallException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если обратный вызов относится к неопределенной функции или если некоторые аргументы отсутствуют.

Обзор классов

BadFunctionCallException extends LogicException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс BadMethodCallException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если обратный вызов относится к неопределенному методу или если некоторые аргументы отсутствуют.

Обзор классов

BadMethodCallException extends BadFunctionCallException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс DomainException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если значение не придерживается определенных действительных данных домена.

Обзор классов

DomainException extends LogicException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


The InvalidArgumentException class

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если аргумент не принадлежит ожидаемому типу.

Обзор классов

InvalidArgumentException extends LogicException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс LengthException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если длина является недопустимой.

Обзор классов

LengthException extends LogicException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс LogicException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Исключение, которое представляет ошибку в логике программы. Такой тип исключений должен непосредственно привести к исправлениям в вашем коде.

Обзор классов

LogicException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс OutOfBoundsException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если значение не является действительным ключом. Это соответствует ошибкам, которые не могут быть обнаружены во время компиляции.

Обзор классов

OutOfBoundsException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс OutOfRangeException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение при запросе несуществующего индекса. Такие ошибки будут обнаружены во время компиляции.

Обзор классов

OutOfRangeException extends LogicException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс OverflowException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение при добавлении элемента в полный контейнер.

Обзор классов

OverflowException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс RangeException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Генерируется исключение, чтобы указать ошибки диапазона во время исполнения программы. Как правило, это означает, что была арифметическая ошибка, отличная от потери значимости и переполнения. Это версия класса DomainException, доступная на этапе исполнения.

Обзор классов

RangeException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс RuntimeException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение в случае ошибки, которая может быть найдена только во время исполнения.

Обзор классов

RuntimeException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс UnderflowException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение при попытке произвести недопустимую операцию над пустым контейнером. Например такую, как удаление элемента пустого контейнера.

Обзор классов

UnderflowException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Класс UnexpectedValueException

(PHP 5 >= 5.1.0, PHP 7)

Введение

Создается исключение, если значение не совпадает с набором значений. Обычно это происходит, когда функция вызывает другую функцию и ожидает, что возвращаемое значение будет определенного типа, или значение, не включая арифметические ошибки, или ошибки, связанные с буфером.

Обзор классов

UnexpectedValueException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void 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 Функции
  • class_parents »
  • PHP Manual
  • SPL Функции
  • Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе

class_implements

(PHP 5 >= 5.1.0, PHP 7)

class_implements — Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе

Описание

array class_implements ( mixed $class [, bool $autoload = true ] )

Функция возвращает массив имен интерфейсов, реализованных в заданном классе class и его родительских классах.

Список параметров

class

Объект (экземпляр класса) или строка (имя класса или интерфейса).

autoload

В зависимости от переданного значения функция может загрузить описание класса автоматически магическим методом __autoload().

Возвращаемые значения

В случае успеха будет возвращен массив. В случае ошибки - FALSE.

Список изменений

Версия | Описание
5.1.0 | Добавлена возможность передавать строку в качестве аргумента class. Добавлен аргумент autoload.

Примеры

Пример #1 Пример использования class_implements()

<?php

interface foo { }
class bar implements foo {}

print_r(class_implements(new bar));

// начиная с версии PHP 5.1.0 можно передавать имя класса вместо объекта
print_r(class_implements('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// использование __autoload для загрузки еще незагруженного класса 'not_loaded'
print_r(class_implements('not_loaded', true));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [foo] => foo
)

Array
(
    [interface_of_not_loaded] => interface_of_not_loaded
)

Смотрите также

  • class_parents() - Возвращает список родительских классов заданного класса
  • get_declared_interfaces() - Возвращает массив всех объявленных интерфейсов


Возвращает список родительских классов заданного класса

  • « class_implements
  • class_uses »
  • PHP Manual
  • SPL Функции
  • Возвращает список родительских классов заданного класса

class_parents

(PHP 5 >= 5.1.0, PHP 7)

class_parents — Возвращает список родительских классов заданного класса

Описание

array class_parents ( mixed $class [, bool $autoload = true ] )

Эта функция возвращает массив с именами базовых классов заданного класса class.

Список параметров

class

Объект (экземпляр класса) или строка (имя класса).

autoload

В зависимости от переданного значения функция может загрузить описание класса автоматически магическим методом __autoload().

Возвращаемые значения

В случае успеха будет возвращен массив. В случае ошибки - FALSE.

Список изменений

Версия | Описание
5.1.0 | Добавлена возможность передавать строку в качестве аргумента class. Добавлен аргумент autoload.

Примеры

Пример #1 Пример использования class_parents()

<?php

class foo { }
class bar extends foo {}

print_r(class_parents(new bar));

// начиная с версии PHP 5.1.0 можно передавать имя класса вместо объекта
print_r(class_parents('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// использование __autoload для загрузки еще незагруженного класса 'not_loaded'
print_r(class_parents('not_loaded', true));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [foo] => foo
)

Array
(
    [parent_of_not_loaded] => parent_of_not_loaded
)

Смотрите также

  • class_implements() - Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе


Возвращает список трэйтов, используемых заданным классом

  • « class_parents
  • iterator_apply »
  • PHP Manual
  • SPL Функции
  • Возвращает список трэйтов, используемых заданным классом

class_uses

(PHP 5 >= 5.4.0, PHP 7)

class_uses — Возвращает список трэйтов, используемых заданным классом

Описание

array class_uses ( mixed $class [, bool $autoload = true ] )

Эта функция возвращает массив с именами трэйтов, которые использует заданный класс class. В этот массив, однако, не попадут трэйты, используемые в классах-родителях.

Список параметров

class

Объект (экземпляр класса) или строка (имя класса).

autoload

В зависимости от переданного значения функция может загрузить описание класса автоматически магическим методом __autoload().

Возвращаемые значения

В случае успеха будет возвращен массив. В случае ошибки - FALSE.

Примеры

Пример #1 Пример использования class_uses()

<?php

trait foo { }
class bar {
  use foo;
}

print_r(class_uses(new bar));

print_r(class_uses('bar'));

function __autoload($class_name) {
   require_once $class_name . '.php';
}

// использование __autoload для загрузки еще незагруженного класса 'not_loaded'
print_r(class_uses('not_loaded', true));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [foo] => foo
)

Array
(
    [foo] => foo
)

Array
(
    [trait_of_not_loaded] => trait_of_not_loaded
)

Смотрите также

  • class_parents() - Возвращает список родительских классов заданного класса
  • get_declared_traits() - Возвращает массив со всеми объявленными трейтами


Вызывает функцию для каждого элемента в итераторе

  • « class_uses
  • iterator_count »
  • PHP Manual
  • SPL Функции
  • Вызывает функцию для каждого элемента в итераторе

iterator_apply

(PHP 5 >= 5.1.0, PHP 7)

iterator_apply — Вызывает функцию для каждого элемента в итераторе

Описание

int iterator_apply ( Traversable $iterator , callable $function [, array $args ] )

Вызывает функцию для каждого элемента в итераторе.

Список параметров

iterator

Класс для перебора.

function

Функция обратного вызова, которая применяется к каждому элементу.

Замечание: Функция должна возвращать TRUE для того, чтобы продолжать процесс итерации над iterator.

args

Аргументы для передачи в функцию обратного вызова.

Возвращаемые значения

Returns the iteration count.

Примеры

Пример #1 Пример использования iterator_apply()

<?php
function print_caps(Iterator $iterator) {
    echo strtoupper($iterator->current()) . "\n";
    return TRUE;
}

$it = new ArrayIterator(array("Apples", "Bananas", "Cherries"));
iterator_apply($it, "print_caps", array($it));
?>

Результат выполнения данного примера:

APPLES
BANANAS
CHERRIES

Смотрите также

  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива


Подсчитывает количество элементов в итераторе

  • « iterator_apply
  • iterator_to_array »
  • PHP Manual
  • SPL Функции
  • Подсчитывает количество элементов в итераторе

iterator_count

(PHP 5 >= 5.1.0, PHP 7)

iterator_count — Подсчитывает количество элементов в итераторе

Описание

int iterator_count ( Traversable $iterator )

Подсчитывает количество элементов в итераторе. iterator_count() не гарантирует сохранение текущей позиции iterator.

Список параметров

iterator

Итератор, в котором производится подсчет.

Возвращаемые значения

Количество элементов в итераторе (iterator).

Примеры

Пример #1 Пример использования iterator_count()

<?php
$iterator = new ArrayIterator(array('recipe'=>'pancakes', 'egg', 'milk', 'flour'));
var_dump(iterator_count($iterator));
?>

Результат выполнения данного примера:

int(4)

Пример #2 iterator_count() модифицирует позицию

<?php
$iterator = new ArrayIterator(['one', 'two', 'three']);
var_dump($iterator->current());
var_dump(iterator_count($iterator));
var_dump($iterator->current());
?>

Результат выполнения данного примера:

string(3) "one"
int(3)
NULL

Пример #3 iterator_count() в цикле foreach

<?php
$iterator = new ArrayIterator(['one', 'two', 'three']);
foreach ($iterator as $key => $value) {
    echo "$key: $value (", iterator_count($iterator), ")\n";
}?>

Результат выполнения данного примера:

0: one (3)


Копирует итератор в массив

  • « iterator_count
  • spl_autoload_call »
  • PHP Manual
  • SPL Функции
  • Копирует итератор в массив

iterator_to_array

(PHP 5 >= 5.1.0, PHP 7)

iterator_to_array — Копирует итератор в массив

Описание

array iterator_to_array ( Traversable $iterator [, bool $use_keys = true ] )

Копирует элементы итератора в массив.

Список параметров

iterator

Копируемый итератор.

use_keys

Следует ли использовать ключи элементов итератора как индексы.

В PHP 5.5. и новее, если ключ является массивом array или объектом object, то бросается предупреждение. Ключи со значением NULL преобразуются в пустую строку, ключи типа double обрезаются до их целочисленных integer частей, ключи с ресурсами resource бросают предупреждение и преобразуются в их идентификаторы ресурса, а булевы boolean ключи преобразуются в целые числа.

Замечание:

Если параметр не задан, либо задан как TRUE, дублирующиеся ключи будут перезаписаны. Последнее значение с заданным ключем будет в результирующем массиве. Установите этот параметр равным FALSE для получения всех значений.

Возвращаемые значения

Массив, содержащий элементы iterator.

Список изменений

Версия | Описание
5.5.0 | iterator_to_array() стал поддерживать ключи с типами отличными от integer и string, если включен параметр use_keys.
5.2.1 | Добавлен параметр use_keys.

Примеры

Пример #1 Пример использования iterator_to_array()

<?php
$iterator = new ArrayIterator(array('recipe'=>'pancakes', 'egg', 'milk', 'flour'));
var_dump(iterator_to_array($iterator, true));
var_dump(iterator_to_array($iterator, false));
?>

Результат выполнения данного примера:

array(4) {
  ["recipe"]=>
  string(8) "pancakes"
  [0]=>
  string(3) "egg"
  [1]=>
  string(4) "milk"
  [2]=>
  string(5) "flour"
}
array(4) {
  [0]=>
  string(8) "pancakes"
  [1]=>
  string(3) "egg"
  [2]=>
  string(4) "milk"
  [3]=>
  string(5) "flour"
}


Попытка загрузить описание класса всеми зарегистрированными методами __autoload()

  • « iterator_to_array
  • spl_autoload_extensions »
  • PHP Manual
  • SPL Функции
  • Попытка загрузить описание класса всеми зарегистрированными методами __autoload()

spl_autoload_call

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_call — Попытка загрузить описание класса всеми зарегистрированными методами __autoload()

Описание

void spl_autoload_call ( string $class_name )

Эту функцию можно использовать для ручного поиска описания класса или интерфейса, используя все зарегистрированные реализации метода __autoload.

Список параметров

class_name

Имя искомого класса.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Регистрация и вывод расширений файлов для spl_autoload

  • « spl_autoload_call
  • spl_autoload_functions »
  • PHP Manual
  • SPL Функции
  • Регистрация и вывод расширений файлов для spl_autoload

spl_autoload_extensions

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_extensions — Регистрация и вывод расширений файлов для spl_autoload

Описание

string spl_autoload_extensions ([ string $file_extensions ] )

Эта функция может задавать расширения файлов, в которых callback-функция __autoload() будет искать описания классов и интерфейсов. spl_autoload() будет вызывать метод __autoload и передавать ему эти расширения. Также эта функция может выводить уже зарегистрированные расширения файлов.

Список параметров

file_extensions

При вызове без параметров функция просто выведет список зарегистрированных на данный момент расширений, перечисленных через запятую. Чтобы изменить этот список, необходимо вызывать функцию, передав ей строку с расширениями, также перечисленными через запятую.

Возвращаемые значения

Список перечисленных через запятую расширений файлов для функции spl_autoload().


Получение списка всех зарегистрированных функций __autoload()

  • « spl_autoload_extensions
  • spl_autoload_register »
  • PHP Manual
  • SPL Функции
  • Получение списка всех зарегистрированных функций __autoload()

spl_autoload_functions

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_functions — Получение списка всех зарегистрированных функций __autoload()

Описание

array spl_autoload_functions ( void )

Получает список всех зарегистрированных функций __autoload().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив array всех зарегистрированных в __autoload функций. Если автозагрузка не включена, то вернет FALSE. Если ни одна функция не зарегистрирована, то вернет пустой массив.


Регистрирует заданную функцию в качестве реализации метода __autoload()

  • « spl_autoload_functions
  • spl_autoload_unregister »
  • PHP Manual
  • SPL Функции
  • Регистрирует заданную функцию в качестве реализации метода __autoload()

spl_autoload_register

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_register — Регистрирует заданную функцию в качестве реализации метода __autoload()

Описание

bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )

Регистрирует функцию в spl очереди метода __autoload. В результате очередь будет активирована, даже если ранее она был выключена.

Если в вашем скрипте реализована функция __autoload(), ее
необходимо явно зарегистрировать в очереди __autoload. Это необходимо,
так как spl_autoload_register() полностью заменяет механизм
кэширования __autoload() функциями
spl_autoload() и
spl_autoload_call().

spl_autoload_register() позволяет задать несколько реализаций метода автозагрузки описаний классов и интерфейсов. Она создает очередь из функций автозагрузки в порядке их определения в скрипте, тогда как встроенная функция __autoload() может иметь только одну реализацию.

Список параметров

autoload_function

Имя функции, реализующей метод spl_autoload(). Если аргумент не задан, будет зарегистрирована реализация по умолчанию.

throw

Этот параметр определяет, должна ли spl_autoload_register() выбрасывать исключение, если зарегистрировать autoload_function оказалось невозможным.

prepend

Если передано значение true, spl_autoload_register() поместит указанную функцию в начало очереди вместо добавления в конец.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлена поддержка пространств имен.
5.3.0 | Добавлен аргумент prepend.

Примеры

Пример #1 spl_autoload_register() как альтернатива функции __autoload()

<?php

// function __autoload($class) {
//     include 'classes/' . $class . '.class.php';
// }

function my_autoloader($class) {
    include 'classes/' . $class . '.class.php';
}

spl_autoload_register('my_autoloader');

// начиная с версии PHP 5.3.0 можно использовать безымянные функции
spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

?>

Пример #2 Пример использования spl_autoload_register(), где описание класса не загрузится

<?php

namespace Foobar;

class Foo {
    static public function test($name) {
        print '[['. $name .']]';
    }
}

spl_autoload_register(__NAMESPACE__ .'\Foo::test'); // версии PHP выше 5.3.0

new InexistentClass;

?>

Результатом выполнения данного примера будет что-то подобное:

[[Foobar\InexistentClass]]
Fatal error: Class 'Foobar\InexistentClass' not found in ...

Смотрите также

  • __autoload() - Попытка автоматически загрузить используемый, но не загруженный ранее, класс


Отмена регистрации функции в качестве реализации метода __autoload()

  • « spl_autoload_register
  • spl_autoload »
  • PHP Manual
  • SPL Функции
  • Отмена регистрации функции в качестве реализации метода __autoload()

spl_autoload_unregister

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_unregister — Отмена регистрации функции в качестве реализации метода __autoload()

Описание

bool spl_autoload_unregister ( mixed $autoload_function )

Удаляет функцию из spl очереди реализаций метода __autoload. Если очередь была активна и после удаления функции окажется пустой, она будет автоматически деактивирована.

Если на момент вызова функции очередь была неактивна, то после снятия регистрации, функция не будет ее реактивировать.

Список параметров

autoload_function

Функция автозагрузки описаний классов, регистрацию которой требуется снять.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Реализация по умолчанию метода __autoload()

  • « spl_autoload_unregister
  • spl_classes »
  • PHP Manual
  • SPL Функции
  • Реализация по умолчанию метода __autoload()

spl_autoload

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload — Реализация по умолчанию метода __autoload()

Описание

void spl_autoload ( string $class_name [, string $file_extensions = spl_autoload_extensions() ] )

Эта фунция представляет из себя базовую реализацию метода __autoload(). Если пользователь не определил свою реализацию, и spl_autoload_register() вызывается без параметров, то при каждом последующем вызове __autoload() будет работать именно эта функция.

Список параметров

class_name

Имя класса (и пространства имен) в нижнем регистре, описание которого требуется загрузить.

file_extensions

По умолчанию фунция будет искать файлы с расширениями .inc и .php. по всем include-путям, где может располагаться искомое описание класса.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Вызывает исключение LogicException если класс не найден и отсутствуют другие зарегистрированные автозагрузчики.


Возвращает доступные классы SPL

  • « spl_autoload
  • spl_object_hash »
  • PHP Manual
  • SPL Функции
  • Возвращает доступные классы SPL

spl_classes

(PHP 5, PHP 7)

spl_classes — Возвращает доступные классы SPL

Описание

array spl_classes ( void )

Эта функция возвращает массив c доступными в настоящее время классами SPL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив (array), содержащий доступные а настоящий момент классы 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
  • Обработка файлов »
  • PHP Manual
  • SPL Функции
  • Возвращает хеш-идентификатор для объекта

spl_object_hash

(PHP 5 >= 5.2.0, PHP 7)

spl_object_hash — Возвращает хеш-идентификатор для объекта

Описание

string spl_object_hash ( object $obj )

Эта функция возвращает уникальный идентификатор для заданного объекта. Этот id можно использовать в качестве хэш-ключа для хранения объектов или для идентификации объектов, пока объект не будет уничтожен. Как только объект уничтожен, этот хэш может быть использован повторно для других объектов.

Список параметров

object

Какой-либо объект.

Возвращаемые значения

Строка символов, уникальная для каждого существующего на данный момент объекта, но в то же время одна и та же для каждого конкретного объекта.

Примеры

Пример #1 Пример использования spl_object_hash()

<?php
$id = spl_object_hash($object);
$storage[$id] = $object;
?>

Примечания

Замечание:

После уничтожения объекта, его хеш-идентификатор может быть использован для других объектов.


Обработка файлов

Содержание

  • SplFileInfo
  • SplFileObject
  • SplTempFileObject

SPL обеспечивает несколько классов для работы с файлами.


Класс SplFileInfo

(PHP 5 >= 5.1.2, PHP 7)

Введение

Класс SplFileInfo предлагает высокоуровневый объектно-ориентированный интерфейс к информации об отдельном файле.

Обзор классов

SplFileInfo {
/* Методы */
public __construct ( string $file_name )
public int getATime ( void )
public string getBasename ([ string $suffix ] )
public int getCTime ( void )
public string getExtension ( void )
public SplFileInfo getFileInfo ([ string $class_name ] )
public string getFilename ( void )
public int getGroup ( void )
public int getInode ( void )
public string getLinkTarget ( void )
public int getMTime ( void )
public int getOwner ( void )
public string getPath ( void )
public SplFileInfo getPathInfo ([ string $class_name ] )
public string getPathname ( void )
public int getPerms ( void )
public string getRealPath ( void )
public int getSize ( void )
public string getType ( void )
public bool isDir ( void )
public bool isExecutable ( void )
public bool isFile ( void )
public bool isLink ( void )
public bool isReadable ( void )
public bool isWritable ( void )
public SplFileObject openFile ([ string $open_mode = "r" [, bool $use_include_path = false [, resource $context = NULL ]]] )
public void setFileClass ([ string $class_name = "SplFileObject" ] )
public void setInfoClass ([ string $class_name = "SplFileInfo" ] )
public void __toString ( void )
}

Содержание

  • SplFileInfo::__construct — Создает новый объект SplFileInfo
  • SplFileInfo::getATime — Получает время последнего обращения к файлу
  • SplFileInfo::getBasename — Получает базовое имя файла
  • SplFileInfo::getCTime — Возвращает время последнего изменения индексного дескриптора файла
  • SplFileInfo::getExtension — Получает расширение файла
  • SplFileInfo::getFileInfo — Получает объект SplFileInfo для файла
  • SplFileInfo::getFilename — Получает имя файла
  • SplFileInfo::getGroup — Получает группу файла
  • SplFileInfo::getInode — Получение индексного узла для файла
  • SplFileInfo::getLinkTarget — Получение пути по ссылке
  • SplFileInfo::getMTime — Получает время последнего изменения
  • SplFileInfo::getOwner — Определяет владельца файла
  • SplFileInfo::getPath — Получение пути без имени файла
  • SplFileInfo::getPathInfo — Получение объекта SplFileInfo для заданного пути
  • SplFileInfo::getPathname — Определение пути к файлу
  • SplFileInfo::getPerms — Получает список разрешений для файла
  • SplFileInfo::getRealPath — Определяет абсолютный путь к файлу
  • SplFileInfo::getSize — Получает размер файла
  • SplFileInfo::getType — Получает тип файла
  • SplFileInfo::isDir — Сообщает, является ли файл каталогом
  • SplFileInfo::isExecutable — Сообщает, является ли файл исполняемым
  • SplFileInfo::isFile — Сообщает, ссылается ли объект на обычный файл
  • SplFileInfo::isLink — Сообщает, является ли файл ссылкой
  • SplFileInfo::isReadable — Сообщает, является ли файл доступным для чтения
  • SplFileInfo::isWritable — Сообщает, является ли элемент доступным для записи
  • SplFileInfo::openFile — Получает объект SplFileObject для файла
  • SplFileInfo::setFileClass — Задает имя класса, который будет использоваться методом SplFileInfo::openFile
  • SplFileInfo::setInfoClass — Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo
  • SplFileInfo::__toString — Возвращает путь к файлу в виде строки


Создает новый объект SplFileInfo

  • « SplFileInfo
  • SplFileInfo::getATime »
  • PHP Manual
  • SplFileInfo
  • Создает новый объект SplFileInfo

SplFileInfo::__construct

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::__construct — Создает новый объект SplFileInfo

Описание

public SplFileInfo::__construct ( string $file_name )

Создаёт новый объект SplFileInfo для указанного имени файла. Файл не обязательно должен существовать или быть доступным для чтения.

Список параметров

file_name

Путь к файлу.

Примеры

Пример #1 Пример использования SplFileInfo::__construct()

<?php
$info = new SplFileInfo('example.php');
if ($info->isFile()) {
    echo $info->getRealPath();
}
?>


Получает время последнего обращения к файлу

  • « SplFileInfo::__construct
  • SplFileInfo::getBasename »
  • PHP Manual
  • SplFileInfo
  • Получает время последнего обращения к файлу

SplFileInfo::getATime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getATime — Получает время последнего обращения к файлу

Описание

public int SplFileInfo::getATime ( void )

Получает время последнего обращения к файлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время последнего доступа к файлу.

Ошибки

Выбрасывает RunTimeException в случае ошибки.

Смотрите также

  • fileatime() - Возвращает время последнего доступа к файлу


Получает базовое имя файла

  • « SplFileInfo::getATime
  • SplFileInfo::getCTime »
  • PHP Manual
  • SplFileInfo
  • Получает базовое имя файла

SplFileInfo::getBasename

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getBasename — Получает базовое имя файла

Описание

public string SplFileInfo::getBasename ([ string $suffix ] )

Этот метод возвращает базовое имя файла, каталога, или ссылки без информации о пути.

Список параметров

suffix

Дополнительный суффикс будет исключен из базового имени.

Возвращаемые значения

Возвращает базовое имя, без информации о пути.

Примеры

Пример #1 Пример использования SplFileInfo::getBasename()

<?php
$info = new SplFileInfo('file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename());

$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename('.txt'));
?>

Результатом выполнения данного примера будет что-то подобное:

string(8) "file.txt"
string(8) "file.txt"
string(4) "file"

Смотрите также

  • SplFileInfo::getFilename() - Получает имя файла


Возвращает время последнего изменения индексного дескриптора файла

  • « SplFileInfo::getBasename
  • SplFileInfo::getExtension »
  • PHP Manual
  • SplFileInfo
  • Возвращает время последнего изменения индексного дескриптора файла

SplFileInfo::getCTime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getCTime — Возвращает время последнего изменения индексного дескриптора файла

Описание

public int SplFileInfo::getCTime ( void )

Возвращает время последнего изменения индексного дескриптора файла. Возвращает временную метку Unix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Время последнего изменения в виде временной метки Unix.

Ошибки

В случае ошибки выбрасывает исключение RunTimeException.

Примеры

Пример #1 Пример использования SplFileInfo::getCTime()

<?php
$info = new SplFileInfo(__FILE__);
echo 'Время последнего изменения ' . date('g:i a', $info->getCTime());
?>

Результатом выполнения данного примера будет что-то подобное:

Время последнего изменения 1:49 pm

Смотрите также

  • filectime() - Возвращает время изменения индексного дескриптора файла


Получает расширение файла

  • « SplFileInfo::getCTime
  • SplFileInfo::getFileInfo »
  • PHP Manual
  • SplFileInfo
  • Получает расширение файла

SplFileInfo::getExtension

(PHP 5 >= 5.3.6, PHP 7)

SplFileInfo::getExtension — Получает расширение файла

Описание

public string SplFileInfo::getExtension ( void )

Возвращает расширение файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string), содержащую расширение файла, или пустую строку (string), если у файла нет расширения.

Примеры

Пример #1 Пример использования SplFileInfo::getExtension()

<?php

$info = new SplFileInfo('foo.txt');
var_dump($info->getExtension());

$info = new SplFileInfo('photo.jpg');
var_dump($info->getExtension());

$info = new SplFileInfo('something.tar.gz');
var_dump($info->getExtension());

?>

Результат выполнения данного примера:

string(3) "txt"
string(3) "jpg"
string(2) "gz"

Примечания

Замечание:

Этот метод доступен только в PHP 5.3.6. Другой способ для получения расширения - использование функции pathinfo().

<?php
$extension = pathinfo($info->getFilename(), PATHINFO_EXTENSION);
?>

Смотрите также

  • SplFileInfo::getFilename() - Получает имя файла
  • SplFileInfo::getBasename() - Получает базовое имя файла
  • pathinfo() - Возвращает информацию о пути к файлу


Получает объект SplFileInfo для файла

  • « SplFileInfo::getExtension
  • SplFileInfo::getFilename »
  • PHP Manual
  • SplFileInfo
  • Получает объект SplFileInfo для файла

SplFileInfo::getFileInfo

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getFileInfo — Получает объект SplFileInfo для файла

Описание

public SplFileInfo SplFileInfo::getFileInfo ([ string $class_name ] )

Этот метод получает объект SplFileInfo для указанного файла.

Список параметров

class_name

Имя производного от SplFileInfo класса для использования.

Возвращаемые значения

Объект SplFileInfo, созданный для файла.

Смотрите также

  • SplFileInfo::setInfoClass() - Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo


Получает имя файла

  • « SplFileInfo::getFileInfo
  • SplFileInfo::getGroup »
  • PHP Manual
  • SplFileInfo
  • Получает имя файла

SplFileInfo::getFilename

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getFilename — Получает имя файла

Описание

public string SplFileInfo::getFilename ( void )

Получает имя файла без информации о пути к нему.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя файла.

Примеры

Пример #1 Пример использования SplFileInfo::getFilename()

<?php
$info = new SplFileInfo('foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('/path/to/foo.txt');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/');
var_dump($info->getFilename());

$info = new SplFileInfo('http://www.php.net/svn.php');
var_dump($info->getFilename());
?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "foo.txt"
string(7) "foo.txt"
string(0) ""
string(7) "svn.php"

Смотрите также

  • SplFileInfo::getBasename() - Получает базовое имя файла


Получает группу файла

  • « SplFileInfo::getFilename
  • SplFileInfo::getInode »
  • PHP Manual
  • SplFileInfo
  • Получает группу файла

SplFileInfo::getGroup

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getGroup — Получает группу файла

Описание

public int SplFileInfo::getGroup ( void )

Получает группу файла. Числовой идентификатор группы возвращается в числовом формате.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

ID группы в числовом формате.

Ошибки

Выбрасывает RuntimeException в случае ошибки.

Примеры

Пример #1 Пример использования SplFileInfo::getGroup()

<?php
$info = new SplFileInfo(__FILE__);
print_r(posix_getgrgid($info->getGroup()));
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • posix_getgrgid() - Возвращает информацию о группе по её ID


Получение индексного узла для файла

  • « SplFileInfo::getGroup
  • SplFileInfo::getLinkTarget »
  • PHP Manual
  • SplFileInfo
  • Получение индексного узла для файла

SplFileInfo::getInode

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getInode — Получение индексного узла для файла

Описание

public int SplFileInfo::getInode ( void )

Получает номер индексного узла для объекта файловой системы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер индексного узла для объекта файловой системы.

Ошибки

В случае ошибки выбрасывает исключение RuntimeException.

Смотрите также

  • fileinode() - Возвращает индексный дескриптор файла


Получение пути по ссылке

  • « SplFileInfo::getInode
  • SplFileInfo::getMTime »
  • PHP Manual
  • SplFileInfo
  • Получение пути по ссылке

SplFileInfo::getLinkTarget

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getLinkTarget — Получение пути по ссылке

Описание

public string SplFileInfo::getLinkTarget ( void )

Получает целевой путь по ссылке файловой системы.

Замечание:

Этот путь может не быть реальным расположением в файловой системе. Чтобы получить реальный путь файловой системы, используйте метод SplFileInfo::getRealPath().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает целевой путь по ссылке файловой системы.

Ошибки

В случае ошибки выбрасывает исключение RuntimeException.

Примеры

Пример #1 Пример использования SplFileInfo::getLinkTarget()

<?php
$info = new SplFileInfo('/Users/bbieber/workspace');
if ($info->isLink()) {
    var_dump($info->getLinkTarget());
    var_dump($info->getRealPath());
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(19) "Documents/workspace"
string(34) "/Users/bbieber/Documents/workspace"

Смотрите также

  • SplFileInfo::isLink() - Сообщает, является ли файл ссылкой
  • SplFileInfo::getRealPath() - Определяет абсолютный путь к файлу


Получает время последнего изменения

  • « SplFileInfo::getLinkTarget
  • SplFileInfo::getOwner »
  • PHP Manual
  • SplFileInfo
  • Получает время последнего изменения

SplFileInfo::getMTime

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getMTime — Получает время последнего изменения

Описание

public int SplFileInfo::getMTime ( void )

Возвращает время, когда содержимое файла было изменено. Время возвращается в формате Unix timestamp.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает время последнего изменения файла в формате Unix timestamp.

Смотрите также

  • filemtime() - Возвращает время последнего изменения файла


Определяет владельца файла

  • « SplFileInfo::getMTime
  • SplFileInfo::getPath »
  • PHP Manual
  • SplFileInfo
  • Определяет владельца файла

SplFileInfo::getOwner

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getOwner — Определяет владельца файла

Описание

public int SplFileInfo::getOwner ( void )

Определяет владельца файла. ID владельца файла возвращается в виде числа.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

ID владельца файла в виде числа.

Ошибки

В случае ошибки выбрасывает исключение RuntimeException.

Примеры

Пример #1 Пример использования SplFileInfo::getOwner()

<?php
$info = new SplFileInfo('file.txt');
print_r(posix_getpwuid($info->getOwner()));
?>

Смотрите также

  • posix_getpwuid() - Возвращает информацию о пользователе, используя его ID
  • SplFileInfo::getGroup() - Получает группу файла


Получение пути без имени файла

  • « SplFileInfo::getOwner
  • SplFileInfo::getPathInfo »
  • PHP Manual
  • SplFileInfo
  • Получение пути без имени файла

SplFileInfo::getPath

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPath — Получение пути без имени файла

Описание

public string SplFileInfo::getPath ( void )

Возвращает путь к файлу, исключая само имя файла и замыкающий слеш.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь к файлу.

Примеры

Пример #1 Пример использования SplFileInfo::getPath()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPath());

$info = new SplFileInfo('/usr/');
var_dump($info->getPath());?>

Результатом выполнения данного примера будет что-то подобное:

string(8) "/usr/bin"
string(4) "/usr"

Смотрите также

  • SplFileInfo::getRealPath() - Определяет абсолютный путь к файлу
  • SplFileInfo::getFilename() - Получает имя файла
  • SplFileInfo::getPathInfo() - Получение объекта SplFileInfo для заданного пути


Получение объекта SplFileInfo для заданного пути

  • « SplFileInfo::getPath
  • SplFileInfo::getPathname »
  • PHP Manual
  • SplFileInfo
  • Получение объекта SplFileInfo для заданного пути

SplFileInfo::getPathInfo

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPathInfo — Получение объекта SplFileInfo для заданного пути

Описание

public SplFileInfo SplFileInfo::getPathInfo ([ string $class_name ] )

Получает объект класса SplFileInfo для пути текущего файла.

Список параметров

class_name

Имя используемого объекта SplFileInfo, путь которого требуется получить.

Возвращаемые значения

Возвращает объект класса SplFileInfo представляющий путь к родительской директории файла.

Примеры

Пример #1 Пример использования SplFileInfo::getPathInfo()

<?php
$info = new SplFileInfo('/usr/bin/php');
$parent_info = $info->getPathInfo();
var_dump($parent_info->getRealPath());
?>

Результатом выполнения данного примера будет что-то подобное:

string(8) "/usr/bin"

Смотрите также

  • SplFileInfo::setInfoClass() - Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo


Определение пути к файлу

  • « SplFileInfo::getPathInfo
  • SplFileInfo::getPerms »
  • PHP Manual
  • SplFileInfo
  • Определение пути к файлу

SplFileInfo::getPathname

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPathname — Определение пути к файлу

Описание

public string SplFileInfo::getPathname ( void )

Возвращает путь к файлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Путь к файлу.

Примеры

Пример #1 Пример использования SplFileInfo::getPathname()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->getPathname());
?>

Результатом выполнения данного примера будет что-то подобное:

string(12) "/usr/bin/php"

Смотрите также

  • SplFileInfo::getRealPath() - Определяет абсолютный путь к файлу


Получает список разрешений для файла

  • « SplFileInfo::getPathname
  • SplFileInfo::getRealPath »
  • PHP Manual
  • SplFileInfo
  • Получает список разрешений для файла

SplFileInfo::getPerms

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getPerms — Получает список разрешений для файла

Описание

public int SplFileInfo::getPerms ( void )

Получает список разрешений для файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает список разрешений для файла.

Примеры

Пример #1 Пример использования SplFileInfo::getPerms()

<?php
$info = new SplFileInfo('/tmp');
echo substr(sprintf('%o', $info->getPerms()), -4);

$info = new SplFileInfo(__FILE__);
echo substr(sprintf('%o', $info->getPerms()), -4);
?>

Результатом выполнения данного примера будет что-то подобное:

1777
0644


Определяет абсолютный путь к файлу

  • « SplFileInfo::getPerms
  • SplFileInfo::getSize »
  • PHP Manual
  • SplFileInfo
  • Определяет абсолютный путь к файлу

SplFileInfo::getRealPath

(PHP 5 >= 5.2.2, PHP 7)

SplFileInfo::getRealPath — Определяет абсолютный путь к файлу

Описание

public string SplFileInfo::getRealPath ( void )

Этот метод распаковывает все символические ссылки, разрешает относительные пути и возвращает абсолютный путь к файлу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь к файлу или 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("");
var_dump($info->getRealPath());
?>

Результатом выполнения данного примера будет что-то подобное:

string(28) "/private/tmp/phptempfile.php"
string(12) "/private/tmp"
bool(false)
string(12) "/private/tmp"

Смотрите также

  • SplFileInfo::isLink() - Сообщает, является ли файл ссылкой
  • realpath() - Возвращает канонизированный абсолютный путь к файлу


Получает размер файла

  • « SplFileInfo::getRealPath
  • SplFileInfo::getType »
  • PHP Manual
  • SplFileInfo
  • Получает размер файла

SplFileInfo::getSize

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getSize — Получает размер файла

Описание

public int SplFileInfo::getSize ( void )

Возвращает размер файла в байтах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Размер файла в байтах.

Ошибки

Будет выброшено исключение RuntimeException, если файл не существует или возникла ошибка.

Смотрите также

  • filesize() - Возвращает размер файла


Получает тип файла

  • « SplFileInfo::getSize
  • SplFileInfo::isDir »
  • PHP Manual
  • SplFileInfo
  • Получает тип файла

SplFileInfo::getType

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::getType — Получает тип файла

Описание

public string SplFileInfo::getType ( void )

Возвращает тип указанного файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка (string), представляющая тип элемента. Возможны следующие значения: file, link или dir.

Ошибки

Выбрасывает RuntimeException в случае ошибки.

Примеры

Пример #1 Пример использования SplFileInfo::getType()

<?php

$info = new SplFileInfo(__FILE__);
echo $info->getType().PHP_EOL;

$info = new SplFileInfo(dirname(__FILE__));
echo $info->getType();

?>

Результатом выполнения данного примера будет что-то подобное:

file
dir


Сообщает, является ли файл каталогом

  • « SplFileInfo::getType
  • SplFileInfo::isExecutable »
  • PHP Manual
  • SplFileInfo
  • Сообщает, является ли файл каталогом

SplFileInfo::isDir

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isDir — Сообщает, является ли файл каталогом

Описание

public bool SplFileInfo::isDir ( void )

Этот метод может быть использован для определения того, является ли файл каталогом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если каталог; в противном случае - FALSE.

Примеры

Пример #1 Пример использования SplFileInfo::isDir()

<?php
$d = new SplFileInfo(dirname(__FILE__));
var_dump($d->isDir());

$d = new SplFileInfo(__FILE__);
var_dump($d->isDir());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)


Сообщает, является ли файл исполняемым

  • « SplFileInfo::isDir
  • SplFileInfo::isFile »
  • PHP Manual
  • SplFileInfo
  • Сообщает, является ли файл исполняемым

SplFileInfo::isExecutable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isExecutable — Сообщает, является ли файл исполняемым

Описание

public bool SplFileInfo::isExecutable ( void )

Проверяет, является ли файл исполняемым.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если файл является исполняемым; иначе - FALSE.

Примеры

Пример #1 Пример использования SplFileInfo::isExecutable()

<?php
$info = new SplFileInfo('/usr/bin/php');
var_dump($info->isExecutable());

$info = new SplFileInfo('/usr/bin');
var_dump($info->isExecutable());

$info = new SplFileInfo('foo');
var_dump($info->isExecutable());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(false)


Сообщает, ссылается ли объект на обычный файл

  • « SplFileInfo::isExecutable
  • SplFileInfo::isLink »
  • PHP Manual
  • SplFileInfo
  • Сообщает, ссылается ли объект на обычный файл

SplFileInfo::isFile

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isFile — Сообщает, ссылается ли объект на обычный файл

Описание

public bool SplFileInfo::isFile ( void )

Проверяет, существует ли файл, на который ссылается объект SplFileInfo, и является ли он обычным файлом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл существует и является обычным файлом (не ссылкой), иначе - FALSE.

Примеры

Пример #1 Пример использования SplFileInfo::isFile()

<?php
$info = new SplFileInfo(__FILE__);
var_dump($info->isFile());

$info = new SplFileInfo(dirname(__FILE__));
var_dump($info->isFile());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)


Сообщает, является ли файл ссылкой

  • « SplFileInfo::isFile
  • SplFileInfo::isReadable »
  • PHP Manual
  • SplFileInfo
  • Сообщает, является ли файл ссылкой

SplFileInfo::isLink

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isLink — Сообщает, является ли файл ссылкой

Описание

public bool SplFileInfo::isLink ( void )

Используйте этот метод для проверки того, является ли файл, на который ссылается объект SplFileInfo, ссылкой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если файл является ссылкой; в противном случае - FALSE.

Примеры

Пример #1 Пример использования SplFileInfo::isLink()

<?php
$info = new SplFileInfo('/path/to/symlink');
if ($info->isLink()) {
    echo 'Реальный путь: '.$info->getRealPath();
}
?>

Смотрите также

  • SplFileInfo::getRealPath() - Определяет абсолютный путь к файлу


Сообщает, является ли файл доступным для чтения

  • « SplFileInfo::isLink
  • SplFileInfo::isWritable »
  • PHP Manual
  • SplFileInfo
  • Сообщает, является ли файл доступным для чтения

SplFileInfo::isReadable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isReadable — Сообщает, является ли файл доступным для чтения

Описание

public bool SplFileInfo::isReadable ( void )

Проверяет, является ли файл доступным для чтения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если файл доступен для чтения; в противном случае - FALSE.

Примеры

Пример #1 Пример использования SplFileInfo::isReadable()

<?php
$info = new SplFileInfo(__FILE__);
var_dump($info->isReadable());

$info = new SplFileInfo('foo');
var_dump($info->isReadable());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)


Сообщает, является ли элемент доступным для записи

  • « SplFileInfo::isReadable
  • SplFileInfo::openFile »
  • PHP Manual
  • SplFileInfo
  • Сообщает, является ли элемент доступным для записи

SplFileInfo::isWritable

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::isWritable — Сообщает, является ли элемент доступным для записи

Описание

public bool SplFileInfo::isWritable ( void )

Проверяет, является ли текущий элемент доступным для записи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если элемент доступен для записи; в противном случае - FALSE.


Получает объект SplFileObject для файла

  • « SplFileInfo::isWritable
  • SplFileInfo::setFileClass »
  • PHP Manual
  • SplFileInfo
  • Получает объект SplFileObject для файла

SplFileInfo::openFile

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::openFile — Получает объект SplFileObject для файла

Описание

public SplFileObject SplFileInfo::openFile ([ string $open_mode = "r" [, bool $use_include_path = false [, resource $context = NULL ]]] )

Создает SplFileObject object файла. Это полезно, потому что SplFileObject содержит дополнительные методы для работы с файлом, в то время как SplFileInfo пригоден только для получения информации наподобие является ли файл доступным для записи.

Список параметров

open_mode

Режим открытия файла. См. документацию по функции fopen() с описанием возможных режимов. По умолчанию только для чтения.

use_include_path

Если установлено в TRUE, имя файла также ищется в include_path

context

Для описания контекстов обратитесь к следующему разделу руководства: контекст.

Возвращаемые значения

Открытый файл как SplFileObject object.

Ошибки

Бросает RuntimeException если файл не может быть открыт (например, недостаточно прав доступа).

Примеры

Пример #1 Пример использования SplFileInfo::openFile()

<?php
$fileinfo = new SplFileInfo('/tmp/foo.txt');

if ($fileinfo->isWritable()) {

    $fileobj = $fileinfo->openFile('a');

    $fileobj->fwrite("образец текста");
}
?>

Смотрите также

  • SplFileObject
  • stream_context_create() - Создаёт контекст потока
  • fopen() - Открывает файл или URL


Задает имя класса, который будет использоваться методом SplFileInfo::openFile

  • « SplFileInfo::openFile
  • SplFileInfo::setInfoClass »
  • PHP Manual
  • SplFileInfo
  • Задает имя класса, который будет использоваться методом SplFileInfo::openFile

SplFileInfo::setFileClass

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::setFileClass — Задает имя класса, который будет использоваться методом SplFileInfo::openFile()

Описание

public void SplFileInfo::setFileClass ([ string $class_name = "SplFileObject" ] )

Задает имя класса, которое будет использовать метод SplFileInfo::openFile(). Этим классом должен быть SplFileObject или наследник класса SplFileObject.

Список параметров

class_name

Имя класса для метода SplFileInfo::openFile().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplFileInfo::setFileClass()

<?php
// создаем класс расширяющий SplFileObject
class MyFoo extends SplFileObject {}

$info = new SplFileInfo(__FILE__);
// задаем имя класса
$info->setFileClass('MyFoo');
var_dump($info->openFile());
?>

Результатом выполнения данного примера будет что-то подобное:

object(MyFoo)#2 (0) { }

Смотрите также

  • SplFileInfo::openFile() - Получает объект SplFileObject для файла


Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo

  • « SplFileInfo::setFileClass
  • SplFileInfo::__toString »
  • PHP Manual
  • SplFileInfo
  • Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo и SplFileInfo::getPathInfo

SplFileInfo::setInfoClass

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::setInfoClass — Задает имя класса, объекты которого будут создаваться методами SplFileInfo::getFileInfo() и SplFileInfo::getPathInfo()

Описание

public void SplFileInfo::setInfoClass ([ string $class_name = "SplFileInfo" ] )

Задает имя класса, объекты которого будут создаваться при вызове методов SplFileInfo::getFileInfo() и SplFileInfo::getPathInfo(). Класс должен быть или SplFileInfo или наследоваться от SplFileInfo.

Список параметров

class_name

Имя класса используемого при вызове SplFileInfo::getFileInfo() и SplFileInfo::getPathInfo().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplFileInfo::setFileClass()

<?php
// определяем класс наследник SplFileInfo
class MyFoo extends SplFileInfo {}

$info = new SplFileInfo('foo');
// задаем имя класса
$info->setInfoClass('MyFoo');
var_dump($info->getFileInfo());
?>

Результатом выполнения данного примера будет что-то подобное:

object(MyFoo)#2 (0) { }

Смотрите также

  • SplFileInfo::getFileInfo() - Получает объект SplFileInfo для файла


Возвращает путь к файлу в виде строки

  • « SplFileInfo::setInfoClass
  • SplFileObject »
  • PHP Manual
  • SplFileInfo
  • Возвращает путь к файлу в виде строки

SplFileInfo::__toString

(PHP 5 >= 5.1.2, PHP 7)

SplFileInfo::__toString — Возвращает путь к файлу в виде строки

Описание

public void SplFileInfo::__toString ( void )

Этот метод вернет имя указанного файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает путь к файлу.

Примеры

Пример #1 Пример использования SplFileInfo::__toString()

<?php
$info = new SplFileInfo('foo');
var_dump($info->__toString());
echo $info.PHP_EOL;

$info = new SplFileInfo('/usr/bin/php');
var_dump($info->__toString());
echo $info.PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

string(3) "foo"
foo
string(12) "/usr/bin/php"
/usr/bin/php


Класс SplFileObject

(PHP 5 >= 5.1.0, PHP 7)

Введение

Класс SplFileObject предоставляет объектно-ориентированный интерфейс для файлов.

Обзор классов

SplFileObject extends SplFileInfo implements RecursiveIterator , SeekableIterator {
/* Константы */
const integer DROP_NEW_LINE = 1 ;
const integer READ_AHEAD = 2 ;
const integer SKIP_EMPTY = 4 ;
const integer READ_CSV = 8 ;
/* Методы */
public string|array current ( void )
public bool eof ( void )
public bool fflush ( void )
public string fgetc ( void )
 public array fgetcsv
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )
public string fgets ( void )
public string fgetss ([ string $allowable_tags ] )
public bool flock ( int $operation [, int &$wouldblock ] )
public int fpassthru ( void )
public int fputcsv ( array $fields [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]] )
public string fread ( int $length )
public mixed fscanf ( string $format [, mixed &$... ] )
public int fseek ( int $offset [, int $whence = SEEK_SET ] )
public array fstat ( void )
public int ftell ( void )
public bool ftruncate ( int $size )
public int fwrite ( string $str [, int $length ] )
public void getChildren ( void )
public array getCsvControl ( void )
public int getFlags ( void )
public int getMaxLineLen ( void )
public bool hasChildren ( void )
public int key ( void )
public void next ( void )
public void rewind ( void )
public void seek ( int $line_pos )
 public void setCsvControl
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )
public void setFlags ( int $flags )
public void setMaxLineLen ( int $max_len )
public void __toString ( void )
public bool valid ( void )
/* Наследуемые методы */
public SplFileInfo::__construct ( string $file_name )
public int SplFileInfo::getATime ( void )
public string SplFileInfo::getBasename ([ string $suffix ] )
public int SplFileInfo::getCTime ( void )
public string SplFileInfo::getExtension ( void )
public SplFileInfo SplFileInfo::getFileInfo ([ string $class_name ] )
public string SplFileInfo::getFilename ( void )
public int SplFileInfo::getGroup ( void )
public int SplFileInfo::getInode ( void )
public string SplFileInfo::getLinkTarget ( void )
public int SplFileInfo::getMTime ( void )
public int SplFileInfo::getOwner ( void )
public string SplFileInfo::getPath ( void )
public SplFileInfo SplFileInfo::getPathInfo ([ string $class_name ] )
public string SplFileInfo::getPathname ( void )
public int SplFileInfo::getPerms ( void )
public string SplFileInfo::getRealPath ( void )
public int SplFileInfo::getSize ( void )
public string SplFileInfo::getType ( void )
public bool SplFileInfo::isDir ( void )
public bool SplFileInfo::isExecutable ( void )
public bool SplFileInfo::isFile ( void )
public bool SplFileInfo::isLink ( void )
public bool SplFileInfo::isReadable ( void )
public bool SplFileInfo::isWritable ( void )
public SplFileObject SplFileInfo::openFile ([ string $open_mode = "r" [, bool $use_include_path = false [, resource $context = NULL ]]] )
public void SplFileInfo::setFileClass ([ string $class_name = "SplFileObject" ] )
public void SplFileInfo::setInfoClass ([ string $class_name = "SplFileInfo" ] )
public void SplFileInfo::__toString ( void )
}

Предопределенные константы

SplFileObject::DROP_NEW_LINE

Удаляет символы переноса в конце строки.

SplFileObject::READ_AHEAD

Читает при использовании функций rewind/next.

SplFileObject::SKIP_EMPTY

Пропускает пустые строки с файле. Для правильной работы требуется включить флаг READ_AHEAD.

SplFileObject::READ_CSV

Читает строки в формате CSV.

Список изменений

Версия | Описание
5.3.9 | Значение SplFileObject::SKIP_EMPTY изменено на 4. Раньше значение было равным 6.

Содержание

  • SplFileObject::__construct — Конструктор класса SplFileObject
  • SplFileObject::current — Получение текущей строки файла
  • SplFileObject::eof — Проверяет, достигнут ли конец файла
  • SplFileObject::fflush — Сбрасывает буфер вывода в файл
  • SplFileObject::fgetc — Читает символ из файла
  • SplFileObject::fgetcsv — Получение строки файла и ее разбор в соответствии с CSV разметкой
  • SplFileObject::fgets — Читает строку из файла
  • SplFileObject::fgetss — Получение строки из файла с очисткой от HTML тэгов
  • SplFileObject::flock — Портируемая блокировка файла
  • SplFileObject::fpassthru — Выводит все оставшееся содержимое файла в выходной поток
  • SplFileObject::fputcsv — Записывает поля массива в виде строки CSV
  • SplFileObject::fread — Чтение из файла
  • SplFileObject::fscanf — Разбор строки файла в соответствии с заданным форматом
  • SplFileObject::fseek — Перевод файлового указателя на заданную позицию
  • SplFileObject::fstat — Получает информацию о файле
  • SplFileObject::ftell — Определение текущей позиции файлового указателя
  • SplFileObject::ftruncate — Обрезает файл до заданной длины
  • SplFileObject::fwrite — Запись в файл
  • SplFileObject::getChildren — Метод-заглушка
  • SplFileObject::getCsvControl — Получает символы разделителя, обертывания и экранирования для CSV
  • SplFileObject::getCurrentLine — Псевдоним метода SplFileObject::fgets
  • SplFileObject::getFlags — Получает флаги настройки объекта SplFileObject
  • SplFileObject::getMaxLineLen — Получает максимальную длину строки
  • SplFileObject::hasChildren — Класс SplFileObject не имеет наследников
  • SplFileObject::key — Получение номера строки
  • SplFileObject::next — Читает следующую строку
  • SplFileObject::rewind — Перевод файлового указателя в начало файла
  • SplFileObject::seek — Перевод файлового указателя на заданную строку
  • SplFileObject::setCsvControl — Устанавливает символы разделителя, обертывания и экранирования для CSV
  • SplFileObject::setFlags — Устанавливает флаги для SplFileObject
  • SplFileObject::setMaxLineLen — Устанавливает максимальную длину строки
  • SplFileObject::__toString — Псевдоним SplFileObject::current
  • SplFileObject::valid — Проверяет, достигнут ли конец файла (EOF)


Конструктор класса SplFileObject

  • « SplFileObject
  • SplFileObject::current »
  • PHP Manual
  • SplFileObject
  • Конструктор класса SplFileObject

SplFileObject::__construct

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::__construct — Конструктор класса SplFileObject

Описание

public SplFileObject::__construct ( string $filename [, string $open_mode = "r" [, bool $use_include_path = false [, resource $context ]]] )

Создает новый файловый объект.

Список параметров

filename

Файл, который требуется прочитать.

Подсказка

Для этой функции вы можете использовать URL в качестве имени файла, если была включена опция fopen wrappers. Смотрите более подробную информацию об определении имени файла в описании функции fopen(). Смотрите также список поддерживаемых оберток URL, их возможности, замечания по использованию и список предопределенных констант в Поддерживаемые протоколы и обработчики (wrappers).

open_mode

Режим работы с файлом. Список возможных режимов работы приведен в описании функции fopen().

use_include_path

Требуется ли просматривать include_path во время поиска файла filename.

context

Допустимый ресурс контекста, созданный функцией stream_context_create().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение RuntimeException, если файл filename невозможно открыть.

Примеры

Пример #1 Пример использования SplFileObject::__construct()

Этот пример открывает текущий файл и осуществляет перебор его строк.

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $line_num => $line) {
    echo "Строка $line_num: $line";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Строка 0: <?php
Строка 1: $file = new SplFileObject(__FILE__);
Строка 2: foreach ($file as $line_num => $line) {
Строка 3:     echo "Line $line_num is $line";
Строка 4: }
Строка 5: ?>

Смотрите также

  • SplFileInfo::openFile() - Получает объект SplFileObject для файла
  • fopen() - Открывает файл или URL


Получение текущей строки файла

  • « SplFileObject::__construct
  • SplFileObject::eof »
  • PHP Manual
  • SplFileObject
  • Получение текущей строки файла

SplFileObject::current

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::current — Получение текущей строки файла

Описание

public string|array SplFileObject::current ( void )

Извлекает текущую строку файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Извлекает текущую строку файла. Если задан флаг SplFileObject::READ_CSV, этот метод будет разбирать строку, как CSV данные, и вернет массив.

Примеры

Пример #1 Пример использования SplFileObject::current()

<?php
$file = new SplFileObject(__FILE__);
foreach ($file as $k => $line) {
   echo ($file->key() + 1) . ': ' . $file->current();
}
?>

Результатом выполнения данного примера будет что-то подобное:

1: <?php
2: $file = new SplFileObject(__FILE__);
3: foreach ($file as $line) {
4:     echo ($file->key() + 1) . ': ' . $file->current();
5: }
6: ?>

Смотрите также

  • SplFileObject::key() - Получение номера строки
  • SplFileObject::seek() - Перевод файлового указателя на заданную строку
  • SplFileObject::next() - Читает следующую строку
  • SplFileObject::rewind() - Перевод файлового указателя в начало файла
  • SplFileObject::valid() - Проверяет, достигнут ли конец файла (EOF)


Проверяет, достигнут ли конец файла

  • « SplFileObject::current
  • SplFileObject::fflush »
  • PHP Manual
  • SplFileObject
  • Проверяет, достигнут ли конец файла

SplFileObject::eof

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::eof — Проверяет, достигнут ли конец файла

Описание

public bool SplFileObject::eof ( void )

Определяет, был ли достигнут конец файла

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если конец файла был достигнут; FALSE - в противном случае.

Примеры

Пример #1 Пример использования SplFileObject::eof()

<?php
$file = new SplFileObject("fruits.txt");
while ( ! $file->eof()) {
    echo $file->fgets();
}
?>

Результатом выполнения данного примера будет что-то подобное:

apple
banana
cherry
date
elderberry

Смотрите также

  • SplFileObject::valid() - Проверяет, достигнут ли конец файла (EOF)
  • feof() - Проверяет, достигнут ли конец файла


Сбрасывает буфер вывода в файл

  • « SplFileObject::eof
  • SplFileObject::fgetc »
  • PHP Manual
  • SplFileObject
  • Сбрасывает буфер вывода в файл

SplFileObject::fflush

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fflush — Сбрасывает буфер вывода в файл

Описание

public bool SplFileObject::fflush ( void )

Принудительная запись всех буферизованных данных в файл.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SplFileObject::fflush()

<?php
$file = new SplFileObject('misc.txt', 'r+');
$file->rewind();
$file->fwrite("Foo");
$file->fflush();
$file->ftruncate($file->ftell());
?>

Смотрите также

  • SplFileObject::fwrite() - Запись в файл


Читает символ из файла

  • « SplFileObject::fflush
  • SplFileObject::fgetcsv »
  • PHP Manual
  • SplFileObject
  • Читает символ из файла

SplFileObject::fgetc

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetc — Читает символ из файла

Описание

public string SplFileObject::fgetc ( void )

Читает символ из файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую один символ, прочитанный из файла, или FALSE при достижении EOF.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример использования SplFileObject::fgetc()

<?php
$file = new SplFileObject('file.txt');
while (false !== ($char = $file->fgetc())) {
    echo "$char\n";
}
?>

Смотрите также

  • SplFileObject::fgets() - Читает строку из файла


Получение строки файла и ее разбор в соответствии с CSV разметкой

  • « SplFileObject::fgetc
  • SplFileObject::fgets »
  • PHP Manual
  • SplFileObject
  • Получение строки файла и ее разбор в соответствии с CSV разметкой

SplFileObject::fgetcsv

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetcsv — Получение строки файла и ее разбор в соответствии с CSV разметкой

Описание

 public array SplFileObject::fgetcsv
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )

Извлекает строку из файла и разбирает ее в соответствии с форматом CSV. Результаты разбора возвращает в виде массива.

Список параметров

delimiter

Разделитель полей (один символ). По умолчанию это запятая или символ, который был задан методом SplFileObject::setCsvControl().

enclosure

Символ обрамления полей (один символ). По умолчанию это двойная кавычка или символ, который был задан методом SplFileObject::setCsvControl().

escape

Экранирующий символ (один символ). По умолчанию это обратный слеш (\) или символ, который был задан методом SplFileObject::setCsvControl().

Возвращаемые значения

Возвращает массив содержащий данные прочитанной строки или FALSE в случае ошибки.

Замечание:

Пустая строка CSV файла будет возвращаться в виде массива, содержащего единственный элемент NULL, если не включена опция SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE, которая позволяет пропускать пустые строки.

Примеры

Пример #1 Пример использования SplFileObject::fgetcsv()

<?php
$file = new SplFileObject("data.csv");
while (!$file->eof()) {
    var_dump($file->fgetcsv());
}
?>

Пример #2 Пример использования SplFileObject::READ_CSV

<?php
$file = new SplFileObject("animals.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
    list($animal, $class, $legs) = $row;
    printf("A %s is a %s with %d legs\n", $animal, $class, $legs);
}
?>

Contents of animals.csv

crocodile,reptile,4
dolphin,mammal,0
duck,bird,2
koala,mammal,4
salmon,fish,0

Результатом выполнения данного примера будет что-то подобное:

A crocodile is a reptile with 4 legs
A dolphin is a mammal with 0 legs
A duck is a bird with 2 legs
A koala is a mammal with 4 legs
A salmon is a fish with 0 legs

Смотрите также

  • SplFileObject::setCsvControl() - Устанавливает символы разделителя, обертывания и экранирования для CSV
  • SplFileObject::setFlags() - Устанавливает флаги для SplFileObject
  • SplFileObject::READ_CSV
  • SplFileObject::current() - Получение текущей строки файла


Читает строку из файла

  • « SplFileObject::fgetcsv
  • SplFileObject::fgetss »
  • PHP Manual
  • SplFileObject
  • Читает строку из файла

SplFileObject::fgets

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgets — Читает строку из файла

Описание

public string SplFileObject::fgets ( void )

Читает строку из файла.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку, содержащую следующую строку из файла, или FALSE в случае ошибки.

Ошибки

Выбрасывает RuntimeException, если файл не может быть прочитан.

Примеры

Пример #1 Пример использования SplFileObject::fgets()

Этот пример построчно выводит содержимое file.txt.

<?php
$file = new SplFileObject("file.txt");
while (!$file->eof()) {
    echo $file->fgets();
}
?>

Смотрите также

  • fgets() - Читает строку из файла
  • SplFileObject::fgetss() - Получение строки из файла с очисткой от HTML тэгов
  • SplFileObject::fgetc() - Читает символ из файла
  • SplFileObject::current() - Получение текущей строки файла


Получение строки из файла с очисткой от HTML тэгов

  • « SplFileObject::fgets
  • SplFileObject::flock »
  • PHP Manual
  • SplFileObject
  • Получение строки из файла с очисткой от HTML тэгов

SplFileObject::fgetss

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fgetss — Получение строки из файла с очисткой от HTML тэгов

Описание

public string SplFileObject::fgetss ([ string $allowable_tags ] )

Работа функции идентична SplFileObject::fgets() за исключением того, что SplFileObject::fgetss() пытается очистить строку от HTML и PHP тэгов.

Список параметров

allowable_tags

Необязательный параметр. Перечисленные тэги не будут исключаться из строки.

Возвращаемые значения

Возвращает строку из файла, очищенную от HTML и PHP кода, либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования SplFileObject::fgetss()

<?php
$str = <<<EOD
<html><body>
 <p>Welcome! Today is the <?php echo(date('jS')); ?> of <?= date('F'); ?>.</p>
</body></html>
Text outside of the HTML block.
EOD;
file_put_contents("sample.php", $str);

$file = new SplFileObject("sample.php");
while (!$file->eof()) {
    echo $file->fgetss();
}
?>

Результатом выполнения данного примера будет что-то подобное:

 Welcome! Today is the  of .

Text outside of the HTML block.

Смотрите также

  • fgetss() - Прочитать строку из файла и отбросить HTML-теги
  • SplFileObject::fgets() - Читает строку из файла
  • SplFileObject::fgetc() - Читает символ из файла
  • SplFileObject::current() - Получение текущей строки файла


Портируемая блокировка файла

  • « SplFileObject::fgetss
  • SplFileObject::fpassthru »
  • PHP Manual
  • SplFileObject
  • Портируемая блокировка файла

SplFileObject::flock

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::flock — Портируемая блокировка файла

Описание

public bool SplFileObject::flock ( int $operation [, int &$wouldblock ] )

Блокирует или разблокирует файл тем же портируемым способом, что и flock().

Список параметров

operation

operation может принимать следующие значения:

  • LOCK_SH для получения разделяемой блокировки (чтение).
  • LOCK_EX для получения эксклюзивной блокировки (запись).
  • LOCK_UN для снятия блокировки (разделяемой или эксклюзивной).
  • LOCK_NB чтобы не ждать, пока будет получена блокировка (не поддерживается в Windows).

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)

SplFileObject::fpassthru — Выводит все оставшееся содержимое файла в выходной поток

Описание

public int SplFileObject::fpassthru ( void )

Читает данные из файла с текущей позиции до конца файла и помещает их в буфер выходного потока.

Если вы уже записали какие-то данные в файл и вам необходимо вернуться на начальную позицию, файловый указатель можно сбросить методом SplFileObject::rewind().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает количество символов, которые были прочитаны из файла с описателем handle и переданы на вывод.

Примеры

Пример #1 Пример использования SplFileObject::fpassthru()

<?php

// открываем файл в режиме чтения двоичных данных
$file = new SplFileObject("./img/ok.png", "rb");

// отправка заголовков
header("Content-Type: image/png");
header("Content-Length: " . $file->getSize());

// передаем изображение и заканчиваем работу
$file->fpassthru();
exit;

?>

Смотрите также

  • fpassthru() - Выводит все оставшиеся данные из файлового указателя


Записывает поля массива в виде строки CSV

  • « SplFileObject::fpassthru
  • SplFileObject::fread »
  • PHP Manual
  • SplFileObject
  • Записывает поля массива в виде строки CSV

SplFileObject::fputcsv

(PHP 5 >= 5.4.0, PHP 7)

SplFileObject::fputcsv — Записывает поля массива в виде строки CSV

Описание

 public int SplFileObject::fputcsv
  ( array $fields
 [, string $delimiter = ","
 [, string $enclosure = '"'
 [, string $escape = "\"
]]] )

Записывает массив fields в файл в формате CSV.

Список параметров

fields

Массив значений

delimiter

Опциональный параметр delimiter устанавливает разделитей полей (только один символ).

enclosure

Опциональный параметр enclosure (только один символ). Символ обертывания используется для помещения в него значений полей. Например строка 'строка' обернута в одиночные кавычки (').

escape

Опциональный параметр escape устанавливает символ экранирования (только один символ).

Возвращаемые значения

Возвращает длину записанной строки или FALSE в случае возникновения ошибки.

Возвращает FALSE и не производит запись в файл, если параметры delimiter или enclosure содержат больше одного символа.

Ошибки

Вызывает ошибку уровня E_WARNING, если параметры delimiter или enclosure содержат больше одного символа.

Список изменений

Версия | Описание
5.5.21, 5.6.5 | Добавлен параметр escape.

Примеры

Пример #1 Пример SplFileObject::fputcsv()

<?php

$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$file = new SplFileObject('file.csv', 'w');

foreach ($list as $fields) {
    $file->fputcsv($fields);
}

?>

Пример выше записывает следующие строки в file.csv:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Смотрите также

  • fputcsv() - Форматирует строку в виде CSV и записывает её в файловый указатель
  • SplFileObject::fgetcsv() - Получение строки файла и ее разбор в соответствии с CSV разметкой


Чтение из файла

  • « SplFileObject::fputcsv
  • SplFileObject::fscanf »
  • PHP Manual
  • SplFileObject
  • Чтение из файла

SplFileObject::fread

(PHP 5 >= 5.5.11, PHP 7)

SplFileObject::fread — Чтение из файла

Описание

public string SplFileObject::fread ( int $length )

Чтение заданного количества байт из файла.

Список параметров

length

Количество байт для чтения.

Возвращаемые значения

Возвращает строку, прочитанную из файла или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример SplFileObject::fread()

<?php
// Чтение контента файла в строку
$filename = "/usr/local/something.txt";
$file = new SplFileObject($filename, "r");
$contents = $file->fread($file->getSize());
?>

Примечания

Замечание:

Обратите внимание, что SplFileObject::fread() читае с текущей позиции указателя файла. Используйте SplFileObject::ftell() для поиска текущей позиции указателя и SplFileObject::rewind() (или SplFileObject::fseek()) для изменения его позиции.

Смотрите также

  • fread() - Бинарно-безопасное чтение файла


Разбор строки файла в соответствии с заданным форматом

  • « SplFileObject::fread
  • SplFileObject::fseek »
  • PHP Manual
  • SplFileObject
  • Разбор строки файла в соответствии с заданным форматом

SplFileObject::fscanf

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fscanf — Разбор строки файла в соответствии с заданным форматом

Описание

public mixed SplFileObject::fscanf ( string $format [, mixed &$... ] )

Читает строку из файла и разбирает ее в соответствии с заданным форматом format. Спецификация формата приведена в документации к функции sprintf().

Любое межсловное пространство в строке format может соответствовать любому межсловному пространству в строке файла. Это значит, что символ табуляции \t с строке формата может соответствовать пробелу в строке файла.

Список параметров

format

Строка форматирования. О символах форматирования можно узнать из документации к функции sprintf().

...

Дополнительные строки форматирования.

Возвращаемые значения

Если передан только один параметр, распознанные в строке значения будут помещены в массив. Если переданы дополнительные строки форматирования, функция вернет количество шаблонов, с которыми совпала строка. Необязательные параметры должны передаваться по ссылке.

Примеры

Пример #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() - Обрабатывает данные из файла в соответствии с форматом


Перевод файлового указателя на заданную позицию

  • « SplFileObject::fscanf
  • SplFileObject::fstat »
  • PHP Manual
  • SplFileObject
  • Перевод файлового указателя на заданную позицию

SplFileObject::fseek

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fseek — Перевод файлового указателя на заданную позицию

Описание

public int SplFileObject::fseek ( int $offset [, int $whence = SEEK_SET ] )

Перемещает файловый указатель на указанное в параметре offset количество байт. За позицию, от которой будет отсчитываться смещение отвечает параметр whence.

Список параметров

offset

Смещение. Отрицательная величина смещения используется, когда нужно перемещаться по файлу от конца к началу, т.е. когда в качестве аргумента whence передано значение SEEK_END.

whence

Возможные значения параметра whence:

  • SEEK_SET - Установить указатель на позицию offset байт от начала файла.
  • SEEK_CUR - Переместить указатель на offset байт относительно текущего положения.
  • SEEK_END - Установить указатель на позицию offset байт от конца файла.

Если параметр whence опущен, функция будет работать в режиме SEEK_SET.

Возвращаемые значения

Возвращает 0, если перемещение прошло успешно, и -1 в противном случае. Следует помнить, что перемещение за конец файла не рассматривается как ошибка.

Примеры

Пример #1 Пример использования SplFileObject::fseek()

<?php
$file = new SplFileObject("somefile.txt");

// Чтение первой строки
$data = $file->fgets();

// Перемещаемся снова в начало файла
// смысл тот же, что и $file->rewind();
$file->fseek(0);
?>

Смотрите также

  • fseek() - Устанавливает смещение в файловом указателе


Получает информацию о файле

  • « SplFileObject::fseek
  • SplFileObject::ftell »
  • PHP Manual
  • SplFileObject
  • Получает информацию о файле

SplFileObject::fstat

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fstat — Получает информацию о файле

Описание

public array SplFileObject::fstat ( void )

Собирает статистическую информацию о файле. Поведение идентично fstat().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив со статистической информацией о файле; формат массива подробно описан на странице описания функции stat().

Примеры

Пример #1 Пример использования SplFileObject::fstat()

<?php
$file = new SplFileObject("/etc/passwd");
$stat = $file->fstat();

// Печать только ассоциативной части
print_r(array_slice($stat, 13));

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [dev] => 771
    [ino] => 488704
    [mode] => 33188
    [nlink] => 1
    [uid] => 0
    [gid] => 0
    [rdev] => 0
    [size] => 1114
    [atime] => 1061067181
    [mtime] => 1056136526
    [ctime] => 1056136526
    [blksize] => 4096
    [blocks] => 8
)

Смотрите также

  • fstat() - Получает информацию о файле используя открытый файловый указатель
  • stat() - Возвращает информацию о файле


Определение текущей позиции файлового указателя

  • « SplFileObject::fstat
  • SplFileObject::ftruncate »
  • PHP Manual
  • SplFileObject
  • Определение текущей позиции файлового указателя

SplFileObject::ftell

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::ftell — Определение текущей позиции файлового указателя

Описание

public int SplFileObject::ftell ( void )

Возвращает текущую позицию файлового указателя, или, другими словами, текущее смещение в файловом потоке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает позицию файлового указателя в виде целого числа или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования SplFileObject::ftell()

<?php
$file = new SplFileObject("/etc/passwd");

// читаем первую строку
$data = $file->fgets();

// определяем, где мы?
echo $file->ftell();
?>

Смотрите также

  • ftell() - Сообщает текущую позицию чтения/записи файла


Обрезает файл до заданной длины

  • « SplFileObject::ftell
  • SplFileObject::fwrite »
  • PHP Manual
  • SplFileObject
  • Обрезает файл до заданной длины

SplFileObject::ftruncate

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::ftruncate — Обрезает файл до заданной длины

Описание

public bool SplFileObject::ftruncate ( int $size )

Отбрасывает все данные в файле после байта size.

Список параметров

size

Размер, под который требуется подогнать файл.

Замечание:

Если size больше текущего размера файла, в конец будут добавлены нуль-байты.

Если size меньше размера файла, лишние данные будут утеряны.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SplFileObject::ftruncate()

<?php
// Создаем файл, содержащий "Hello World!"
$file = new SplFileObject("/tmp/ftruncate", "w+");
$file->fwrite("Hello World!");

// укорачиваем до 5 байт
$file->ftruncate(5);

// возвращаемся к началу файла и читаем данные
$file->rewind();
echo $file->fgets();
?>

Результатом выполнения данного примера будет что-то подобное:

Hello

Смотрите также

  • ftruncate() - Урезает файл до указанной длинны


Запись в файл

  • « SplFileObject::ftruncate
  • SplFileObject::getChildren »
  • PHP Manual
  • SplFileObject
  • Запись в файл

SplFileObject::fwrite

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::fwrite — Запись в файл

Описание

public int SplFileObject::fwrite ( string $str [, int $length ] )

Записывает содержимое строки string в файл

Список параметров

str

Строка, которая будет записана в файл.

length

Если задан аргумент length, запись остановится после того, как length байт будут записаны или будет достигнут конец строки string, в зависимости от того, что случится раньше.

Возвращаемые значения

Возвращает количество записанных байт или NULL в случае ошибки.

Примеры

Пример #1 Пример использования SplFileObject::fwrite()

<?php
$file = new SplFileObject("fwrite.txt", "w");
$written = $file->fwrite("12345");
echo "В файл записано $written байт";
?>

Результатом выполнения данного примера будет что-то подобное:

В файл записано 5 байт

Смотрите также

  • fwrite() - Бинарно-безопасная запись в файл


Метод-заглушка

  • « SplFileObject::fwrite
  • SplFileObject::getCsvControl »
  • PHP Manual
  • SplFileObject
  • Метод-заглушка

SplFileObject::getChildren

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getChildren — Метод-заглушка

Описание

public void SplFileObject::getChildren ( void )

Класс SplFileObject не имеет потомков, поэтому этот метод возвращает NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • RecursiveIterator::getChildren() - Возвращает итератор для текущего элемента


Получает символы разделителя, обертывания и экранирования для CSV

  • « SplFileObject::getChildren
  • SplFileObject::getCurrentLine »
  • PHP Manual
  • SplFileObject
  • Получает символы разделителя, обертывания и экранирования для CSV

SplFileObject::getCsvControl

(PHP 5 >= 5.2.0, PHP 7)

SplFileObject::getCsvControl — Получает символы разделителя, обертывания и экранирования для CSV

Описание

public array SplFileObject::getCsvControl ( void )

Получает символы разделителя, обертывания и экранирования для CSV. Символ обертывания используется для помещения в него значений полей. Например строка 'строка' обернута в одиночные кавычки (').

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает индексный массив, содержащий символы разделителя и ограничителя.

Список изменений

Версия | Описание
5.6.25, 7.0.10 | Добавлен символ экранирования в результирующий массив.

Примеры

Пример #1 Пример использования SplFileObject::getCsvControl()

<?php
$file = new SplFileObject("data.txt");
print_r($file->getCsvControl());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => ,
    [1] => "
    [2] => \
)

Смотрите также

  • SplFileObject::setCsvControl() - Устанавливает символы разделителя, обертывания и экранирования для CSV
  • SplFileObject::fgetcsv() - Получение строки файла и ее разбор в соответствии с CSV разметкой


Псевдоним метода SplFileObject::fgets

  • « SplFileObject::getCsvControl
  • SplFileObject::getFlags »
  • PHP Manual
  • SplFileObject
  • Псевдоним метода SplFileObject::fgets

SplFileObject::getCurrentLine

(PHP 5 >= 5.1.2, PHP 7)

SplFileObject::getCurrentLine — Псевдоним метода SplFileObject::fgets()

Описание

Этот метод является псевдонимом SplFileObject::fgets().


Получает флаги настройки объекта SplFileObject

  • « SplFileObject::getCurrentLine
  • SplFileObject::getMaxLineLen »
  • PHP Manual
  • SplFileObject
  • Получает флаги настройки объекта SplFileObject

SplFileObject::getFlags

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getFlags — Получает флаги настройки объекта SplFileObject

Описание

public int SplFileObject::getFlags ( void )

Получает флаги настройки объекта SplFileObject в виде целого числа типа integer.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает число типа integer представляющее набор флагов.

Примеры

Пример #1 Пример использования SplFileObject::getFlags()

<?php
$file = new SplFileObject(__FILE__, "r");

if ($file->getFlags() & SplFileObject::SKIP_EMPTY) {
    echo "Пропускать пустые строки\n";
} else {
    echo "Не пропускать пустые строки\n";
}

$file->setFlags(SplFileObject::SKIP_EMPTY);

if ($file->getFlags() & SplFileObject::SKIP_EMPTY) {
    echo "Пропускать пустые строки\n";
} else {
    echo "Не пропускать пустые строки\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Не пропускать пустые строки
Пропускать пустые строки

Смотрите также

  • SplFileObject::setFlags() - Устанавливает флаги для SplFileObject


Получает максимальную длину строки

  • « SplFileObject::getFlags
  • SplFileObject::hasChildren »
  • PHP Manual
  • SplFileObject
  • Получает максимальную длину строки

SplFileObject::getMaxLineLen

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::getMaxLineLen — Получает максимальную длину строки

Описание

public int SplFileObject::getMaxLineLen ( void )

Получает максимальную длину строки, установленную с помощью SplFileObject::setMaxLineLen().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает максимальную длину строки, если она была установлена с помощью SplFileObject::setMaxLineLen(), по умолчанию 0.

Примеры

Пример #1 Пример использования SplFileObject::getMaxLineLen()

<?php
$file = new SplFileObject("file.txt");
var_dump($file->getMaxLineLen());

$file->setMaxLineLen(20);
var_dump($file->getMaxLineLen());
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
int(20)

Смотрите также

  • Classname::Method()


Класс SplFileObject не имеет наследников

  • « SplFileObject::getMaxLineLen
  • SplFileObject::key »
  • PHP Manual
  • SplFileObject
  • Класс SplFileObject не имеет наследников

SplFileObject::hasChildren

(PHP 5 >= 5.1.2, PHP 7)

SplFileObject::hasChildren — Класс SplFileObject не имеет наследников

Описание

public bool SplFileObject::hasChildren ( void )

Класс SplFileObject не имеет наследников, поэтому метод всегда возвращает FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает FALSE

Смотрите также

  • RecursiveIterator::hasChildren() - Определяет, можно ли для текущего элемента создать итератор


Получение номера строки

  • « SplFileObject::hasChildren
  • SplFileObject::next »
  • PHP Manual
  • SplFileObject
  • Получение номера строки

SplFileObject::key

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::key — Получение номера строки

Описание

public int SplFileObject::key ( void )

Получает номер текущей строки.

Замечание:

Этот номер может отличаться от реального положения файлового указателя, когда читаются строки фиксированной длины с заданием этой длины методом SplFileObject::setMaxLineLen().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает номер текущей строки файла.

Примеры

Пример #1 Пример использования SplFileObject::key()

<?php
$file = new SplFileObject("lipsum.txt");
foreach ($file as $line) {
    echo $file->key() . ". " . $line;
}
?>

Результатом выполнения данного примера будет что-то подобное:

0. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
1. Duis nec sapien felis, ac sodales nisl.
2. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Пример #2 Пример использования SplFileObject::key() при задании длины строки методом SplFileObject::setMaxLineLen()

<?php
$file = new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach ($file as $line) {
    echo $file->key() . ". " . $line . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

0. Lorem ipsum dolor s
1. it amet, consectetu
2. r adipiscing elit.
3.

4. Duis nec sapien fel
5. is, ac sodales nisl
6. .

7. Lorem ipsum dolor s
8. it amet, consectetu
9. r adipiscing elit.

Смотрите также

  • SplFileObject::current() - Получение текущей строки файла
  • SplFileObject::seek() - Перевод файлового указателя на заданную строку
  • SplFileObject::next() - Читает следующую строку
  • SplFileObject::rewind() - Перевод файлового указателя в начало файла
  • SplFileObject::valid() - Проверяет, достигнут ли конец файла (EOF)


Читает следующую строку

  • « SplFileObject::key
  • SplFileObject::rewind »
  • PHP Manual
  • SplFileObject
  • Читает следующую строку

SplFileObject::next

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::next — Читает следующую строку

Описание

public void 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)

SplFileObject::rewind — Перевод файлового указателя в начало файла

Описание

public void 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)

SplFileObject::seek — Перевод файлового указателя на заданную строку

Описание

public void SplFileObject::seek ( int $line_pos )

Переводит файловый указатель на заданную строку.

Список параметров

line_pos

Номер строки, начиная с 0, на которую требуется перейти.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Выбрасывает исключение LogicException, если аргумент line_pos принимает отрицательное значение.

Примеры

Пример #1 Пример использования SplFileObject::seek()

Этот пример выводит третью строку скрипта, находящуюся на 2й позиции.

<?php
$file = new SplFileObject(__FILE__);
$file->seek(2);
echo $file->current();
?>

Результатом выполнения данного примера будет что-то подобное:

$file->seek(2);

Смотрите также

  • SplFileObject::current() - Получение текущей строки файла
  • SplFileObject::key() - Получение номера строки
  • SplFileObject::next() - Читает следующую строку
  • SplFileObject::rewind() - Перевод файлового указателя в начало файла
  • SplFileObject::valid() - Проверяет, достигнут ли конец файла (EOF)


Устанавливает символы разделителя, обертывания и экранирования для CSV

  • « SplFileObject::seek
  • SplFileObject::setFlags »
  • PHP Manual
  • SplFileObject
  • Устанавливает символы разделителя, обертывания и экранирования для CSV

SplFileObject::setCsvControl

(PHP 5 >= 5.2.0, PHP 7)

SplFileObject::setCsvControl — Устанавливает символы разделителя, обертывания и экранирования для CSV

Описание

 public void SplFileObject::setCsvControl
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )

Устанавливает символы разделителя, обертывания и экранирования для CSV. Символ обертывания используется для помещения в него значений полей. Например строка 'строка' обернута в одиночные кавычки (').

Список параметров

delimiter

Разделитель поля (только один символ).

enclosure

Символ ограничителя поля (только один символ).

escape

Экранирующий символ (только один символ).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.3.0 | Добавлен параметр escape.

Примеры

Пример #1 Пример использования SplFileObject::setCsvControl()

<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl('|');
foreach ($file as $row) {
    list ($fruit, $quantity) = $row;
    // Что-то делаем со значениями
}
?>

Содержимое data.csv

<?php
apples|20
bananas|14
cherries|87
?>

Смотрите также

  • SplFileObject::getCsvControl() - Получает символы разделителя, обертывания и экранирования для CSV
  • SplFileObject::fgetcsv() - Получение строки файла и ее разбор в соответствии с CSV разметкой


Устанавливает флаги для SplFileObject

  • « SplFileObject::setCsvControl
  • SplFileObject::setMaxLineLen »
  • PHP Manual
  • SplFileObject
  • Устанавливает флаги для SplFileObject

SplFileObject::setFlags

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::setFlags — Устанавливает флаги для SplFileObject

Описание

public void SplFileObject::setFlags ( int $flags )

Устанавливает флаги, которые будут использоваться SplFileObject.

Список параметров

flags

Битовая маска флагов для установки. Смотрите константы SplFileObject для получения списка доступных флагов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplFileObject::setFlags()

<?php
$file = new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $fields) {
    var_dump($fields);
}
?>

Смотрите также

  • SplFileObject::getFlags() - Получает флаги настройки объекта SplFileObject


Устанавливает максимальную длину строки

  • « SplFileObject::setFlags
  • SplFileObject::__toString »
  • PHP Manual
  • SplFileObject
  • Устанавливает максимальную длину строки

SplFileObject::setMaxLineLen

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::setMaxLineLen — Устанавливает максимальную длину строки

Описание

public void SplFileObject::setMaxLineLen ( int $max_len )

Устанавливает максимальную длину строки для чтения.

Список параметров

max_len

Максимальная длина строки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Бросает DomainException, если значение max_len меньше нуля.

Примеры

Пример #1 Пример использования SplFileObject::setMaxLineLen()

<?php
$file = new SplFileObject("lipsum.txt");
$file->setMaxLineLen(20);
foreach ($file as $line) {
    echo $line . "\n";
}
?>

Содержимое lipsum.txt

Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Duis nec sapien felis, ac sodales nisl.
Nulla vitae magna vitae purus aliquet consequat.

Результатом выполнения данного примера будет что-то подобное:

Lorem ipsum dolor s
it amet, consectetu
r adipiscing elit.

Duis nec sapien fel
is, ac sodales nisl
.

Nulla vitae magna v
itae purus aliquet
consequat.

Смотрите также

  • Classname::Method()


Псевдоним SplFileObject::current

  • « SplFileObject::setMaxLineLen
  • SplFileObject::valid »
  • PHP Manual
  • SplFileObject
  • Псевдоним SplFileObject::current

SplFileObject::__toString

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::__toString — Псевдоним SplFileObject::current()

Описание

public void SplFileObject::__toString ( void )

Этот метод является псевдонимом SplFileObject::current().


Проверяет, достигнут ли конец файла (EOF)

  • « SplFileObject::__toString
  • SplTempFileObject »
  • PHP Manual
  • SplFileObject
  • Проверяет, достигнут ли конец файла (EOF)

SplFileObject::valid

(PHP 5 >= 5.1.0, PHP 7)

SplFileObject::valid — Проверяет, достигнут ли конец файла (EOF)

Описание

public bool SplFileObject::valid ( void )

Проверяет, был ли достигнут конец файла (EOF).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если EOF не достигнут, FALSE - в противном случае.

Примеры

Пример #1 Пример использования SplFileObject::valid()

<?php
// Цикл по файлу
$file = new SplFileObject("file.txt");
while ($file->valid()) {
    echo $file->fgets();
}
?>

Смотрите также

  • SplFileObject::current() - Получение текущей строки файла
  • SplFileObject::key() - Получение номера строки
  • SplFileObject::seek() - Перевод файлового указателя на заданную строку
  • SplFileObject::next() - Читает следующую строку
  • SplFileObject::rewind() - Перевод файлового указателя в начало файла


Класс SplTempFileObject

(PHP 5 >= 5.1.2, PHP 7)

Введение

Класс SplTempFileObject предлагает объектно-ориентированный интерфейс для работы с временными файлами.

Обзор классов

SplTempFileObject extends SplFileObject implements SeekableIterator , RecursiveIterator {
/* Методы */
public __construct ([ int $max_memory ] )
/* Наследуемые методы */
public string|array SplFileObject::current ( void )
public bool SplFileObject::eof ( void )
public bool SplFileObject::fflush ( void )
public string SplFileObject::fgetc ( void )
 public array SplFileObject::fgetcsv
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )
public string SplFileObject::fgets ( void )
public string SplFileObject::fgetss ([ string $allowable_tags ] )
public bool SplFileObject::flock ( int $operation [, int &$wouldblock ] )
public int SplFileObject::fpassthru ( void )
 public int SplFileObject::fputcsv
  ( array $fields
 [, string $delimiter = ","
 [, string $enclosure = '"'
 [, string $escape = "\"
]]] )
public string SplFileObject::fread ( int $length )
public mixed SplFileObject::fscanf ( string $format [, mixed &$... ] )
public int SplFileObject::fseek ( int $offset [, int $whence = SEEK_SET ] )
public array SplFileObject::fstat ( void )
public int SplFileObject::ftell ( void )
public bool SplFileObject::ftruncate ( int $size )
public int SplFileObject::fwrite ( string $str [, int $length ] )
public void SplFileObject::getChildren ( void )
public array SplFileObject::getCsvControl ( void )
public int SplFileObject::getFlags ( void )
public int SplFileObject::getMaxLineLen ( void )
public bool SplFileObject::hasChildren ( void )
public int SplFileObject::key ( void )
public void SplFileObject::next ( void )
public void SplFileObject::rewind ( void )
public void SplFileObject::seek ( int $line_pos )
 public void SplFileObject::setCsvControl
  ([ string $delimiter = ","
 [, string $enclosure = "\""
 [, string $escape = "\\"
]]] )
public void SplFileObject::setFlags ( int $flags )
public void SplFileObject::setMaxLineLen ( int $max_len )
public void SplFileObject::__toString ( void )
public bool SplFileObject::valid ( void )
}

Содержание

  • SplTempFileObject::__construct — Создает новый объект, представляющий временный файл


Создает новый объект, представляющий временный файл

  • « SplTempFileObject
  • Различные Классы и Интерфейсы »
  • PHP Manual
  • SplTempFileObject
  • Создает новый объект, представляющий временный файл

SplTempFileObject::__construct

(PHP 5 >= 5.1.2, PHP 7)

SplTempFileObject::__construct — Создает новый объект, представляющий временный файл

Описание

public SplTempFileObject::__construct ([ int $max_memory ] )

Создает новый объект, представляющий временный файл.

Список параметров

max_memory

Максимальный объем памяти (в байтах, по умолчанию равен 2 МБ) для временного файла. Если временный файл превысит этот размер, он будет перемещен в файл в системной папке временных файлов.

Если значение max_memory отрицательно, используется только память. Если значение max_memory равно нулю, то память не будет использоваться.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Бросает исключение RuntimeException в случае возникновения ошибок.

Примеры

Пример #1 Пример использования SplTempFileObject()

Этот пример создает в памяти временный файл, в который мы можем записывать данные, и читать их.

<?php
$temp = new SplTempFileObject();
$temp->fwrite("Первая строка\n");
$temp->fwrite("А это - вторая.\n");
echo "Во временный файл записано " . $temp->ftell() . " байт.\n\n";

// Перемотка и чтение того, что было записано
$temp->rewind();
foreach ($temp as $line) {
    echo $line;
}
?>

Результатом выполнения данного примера будет что-то подобное:

Во временный файл записано 28 байт.

Первая строка
А это - вторая.

Смотрите также

  • SplFileObject
  • потоки ввода-вывода PHP (дляphp://temp и php://memory)


Различные Классы и Интерфейсы

Содержание

  • ArrayObject
  • SplObserver
  • SplSubject

SPL классы и интерфейсы, не подходящие в другие категории.


Класс ArrayObject

(PHP 5, PHP 7)

Введение

Данный класс позволяет работать с объектами как с массивами.

Обзор классов

ArrayObject implements IteratorAggregate , ArrayAccess , Serializable , Countable {
/* Константы */
const integer STD_PROP_LIST = 1 ;
const integer ARRAY_AS_PROPS = 2 ;
/* Методы */
public __construct ([ mixed $input = [] [, int $flags = 0 [, string $iterator_class = "ArrayIterator" ]]] )
public void append ( mixed $value )
public void asort ( void )
public int count ( void )
public array exchangeArray ( mixed $input )
public array getArrayCopy ( void )
public int getFlags ( void )
public ArrayIterator getIterator ( void )
public string getIteratorClass ( void )
public void ksort ( void )
public void natcasesort ( void )
public void natsort ( void )
public bool offsetExists ( mixed $index )
public mixed offsetGet ( mixed $index )
public void offsetSet ( mixed $index , mixed $newval )
public void offsetUnset ( mixed $index )
public string serialize ( void )
public void setFlags ( int $flags )
public void setIteratorClass ( string $iterator_class )
public void uasort ( callable $cmp_function )
public void uksort ( callable $cmp_function )
public void unserialize ( string $serialized )
}

Предопределенные константы

Опции ArrayObject

ArrayObject::STD_PROP_LIST

Свойства объекта получают стандартное поведение, при доступе к объекту как к списку (var_dump, foreach и т.д.).

ArrayObject::ARRAY_AS_PROPS

Записи могут быть доступны как свойства (для чтения и записи).

Список изменений

Версия | Описание
5.3.0 | Реализует Serializable.

Содержание

  • ArrayObject::append — Добавляет значение в конец массива
  • ArrayObject::asort — Сортирует записи по значению
  • ArrayObject::__construct — Создает новый объект типа массив
  • ArrayObject::count — Возвращает количество публичных свойств ArrayObject
  • ArrayObject::exchangeArray — Заменяет текущий массив на другой
  • ArrayObject::getArrayCopy — Создаёт копию ArrayObject
  • ArrayObject::getFlags — Получает флаги поведения
  • ArrayObject::getIterator — Создаёт новый итератор из экземпляра ArrayObject
  • ArrayObject::getIteratorClass — Возвращает имя класса итератора для ArrayObject
  • ArrayObject::ksort — Сортирует записи по ключам
  • ArrayObject::natcasesort — Сортирует массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::natsort — Сортирует массив, используя алгоритм "natural order"
  • ArrayObject::offsetExists — Проверяет, существует ли указанный индекс
  • ArrayObject::offsetGet — Возвращает значение по указанному индексу
  • ArrayObject::offsetSet — Устанавливает новое значение по указанному индексу
  • ArrayObject::offsetUnset — Удаляет значение по указанному индексу
  • ArrayObject::serialize — Сериализует ArrayObject
  • ArrayObject::setFlags — Устанавливает флаги поведения
  • ArrayObject::setIteratorClass — Устанавливает имя класса итератора для ArrayObject
  • ArrayObject::uasort — Сортирует записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
  • ArrayObject::uksort — Сортирует массив по ключам, используя пользовательскую функцию для сравнения
  • ArrayObject::unserialize — Десериализует ArrayObject


Добавляет значение в конец массива

  • « ArrayObject
  • ArrayObject::asort »
  • PHP Manual
  • ArrayObject
  • Добавляет значение в конец массива

ArrayObject::append

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::append — Добавляет значение в конец массива

Описание

public void ArrayObject::append ( mixed $value )

Добавляет новое значение в конец массива.

Замечание:

Этот метод не может быть вызван, если ArrayObject был порожден объектом. В этом случае используйте вместо него ArrayObject::offsetSet().

Список параметров

value

Значение, которое должно быть добавлено.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::append()

<?php
$arrayobj = new ArrayObject(array('first','second','third'));
$arrayobj->append('fourth');
$arrayobj->append(array('five', 'six'));
var_dump($arrayobj);
?>

Результат выполнения данного примера:

object(ArrayObject)#1 (5) {
  [0]=>
  string(5) "first"
  [1]=>
  string(6) "second"
  [2]=>
  string(5) "third"
  [3]=>
  string(6) "fourth"
  [4]=>
  array(2) {
    [0]=>
    string(4) "five"
    [1]=>
    string(3) "six"
  }
}

Смотрите также

  • ArrayObject::offsetSet() - Устанавливает новое значение по указанному индексу


Сортирует записи по значению

  • « ArrayObject::append
  • ArrayObject::__construct »
  • PHP Manual
  • ArrayObject
  • Сортирует записи по значению

ArrayObject::asort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::asort — Сортирует записи по значению

Описание

public void ArrayObject::asort ( void )

Эта функция сортирует элементы массива таким образом, что сохраняются отношения между ключами и значениями. В основном, она используется при сортировке ассоциативных массивов, где важно сохранить отношение ключ => значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::asort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->asort();

foreach ($fruitArrayObject as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

c = apple
b = banana
d = lemon
a = orange

Названия фруктов были отсортированы в алфавитном порядке и отношения ключ => значение были сохранены.

Смотрите также

  • ArrayObject::ksort() - Сортирует записи по ключам
  • ArrayObject::natsort() - Сортирует массив, используя алгоритм "natural order"
  • ArrayObject::natcasesort() - Сортирует массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::uasort() - Сортирует записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
  • ArrayObject::uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения


Создает новый объект типа массив

  • « ArrayObject::asort
  • ArrayObject::count »
  • PHP Manual
  • ArrayObject
  • Создает новый объект типа массив

ArrayObject::__construct

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::__construct — Создает новый объект типа массив

Описание

public ArrayObject::__construct ([ mixed $input = [] [, int $flags = 0 [, string $iterator_class = "ArrayIterator" ]]] )

Создает новый объект типа массив (object).

Список параметров

input

Параметр input допускает значение типа array или Object.

flags

Флаги для контролирования поведения объекта ArrayObject. Смотрите ArrayObject::setFlags().

iterator_class

Указывает класс, который будет использоваться в качестве итератора объекта ArrayObject.

Возвращаемые значения

Возвращает ArrayObject при успешном выполнении.

Ошибки

Выбрасывает InvalidArgumentException в случае если:

  • input не является массивом или объектом
  • flags не является целым числом
  • iterator_class не является объектом, который имплементирует Iterator

Примеры

Пример #1 Пример использования ArrayObject::__construct()

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

var_dump($arrayobject);
?>

Результат выполнения данного примера:

object(ArrayObject)#1 (3) {
  [1]=>
  string(3) "one"
  [2]=>
  string(3) "two"
  [3]=>
  string(5) "three"
}

Смотрите также

  • ArrayObject::setflags() - Устанавливает флаги поведения


Возвращает количество публичных свойств ArrayObject

  • « ArrayObject::__construct
  • ArrayObject::exchangeArray »
  • PHP Manual
  • ArrayObject
  • Возвращает количество публичных свойств ArrayObject

ArrayObject::count

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::count — Возвращает количество публичных свойств ArrayObject

Описание

public int ArrayObject::count ( void )

Возвращает количество публичных свойств ArrayObject.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Количество публичных свойств ArrayObject.

Замечание:

Если ArrayObject получен из массива, то все свойства являются общедоступными (public).

Примеры

Пример #1 Пример использования ArrayObject::count()

<?php
class Example {
    public $public = 'prop:public';
    private $prv   = 'prop:private';
    protected $prt = 'prop:protected';
}

$arrayobj = new ArrayObject(new Example());
var_dump($arrayobj->count());

$arrayobj = new ArrayObject(array('first','second','third'));
var_dump($arrayobj->count());
?>

Результат выполнения данного примера:

int(1)
int(3)


Заменяет текущий массив на другой

  • « ArrayObject::count
  • ArrayObject::getArrayCopy »
  • PHP Manual
  • ArrayObject
  • Заменяет текущий массив на другой

ArrayObject::exchangeArray

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::exchangeArray — Заменяет текущий массив на другой

Описание

public array ArrayObject::exchangeArray ( mixed $input )

Заменяет текущий массив (array) на другой массив (array) или объект (object).

Список параметров

input

Новый массив (array) или объект (object) для замены текущего массива.

Возвращаемые значения

Возвращает старый массив (array).

Примеры

Пример #1 Пример использования ArrayObject::exchangeArray()

<?php
// Массив с количеством фруктов
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);
// Массив мест в Европе
$locations = array('Amsterdam', 'Paris', 'London');

$fruitsArrayObject = new ArrayObject($fruits);

// Сейчас заменим фрукты на места
$old = $fruitsArrayObject->exchangeArray($locations);
print_r($old);
print_r($fruitsArrayObject);

?>

Результат выполнения данного примера:

Array
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
)
ArrayObject Object
(
    [0] => Amsterdam
    [1] => Paris
    [2] => London
)


Создаёт копию ArrayObject

  • « ArrayObject::exchangeArray
  • ArrayObject::getFlags »
  • PHP Manual
  • ArrayObject
  • Создаёт копию ArrayObject

ArrayObject::getArrayCopy

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::getArrayCopy — Создаёт копию ArrayObject

Описание

public array ArrayObject::getArrayCopy ( void )

Экспортирует ArrayObject в массив.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает копию массива. Если ArrayObject ссылается на объект, то будет возвращен массив публичных (public) свойств данного объекта.

Примеры

Пример #1 Пример использования ArrayObject::getArrayCopy()

<?php
// Массив с количеством фруктов
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);
$fruitsArrayObject['pears'] = 4;

// Создать копию массива
$copy = $fruitsArrayObject->getArrayCopy();
print_r($copy);

?>

Результат выполнения данного примера:

Array
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
    [pears] => 4
)


Получает флаги поведения

  • « ArrayObject::getArrayCopy
  • ArrayObject::getIterator »
  • PHP Manual
  • ArrayObject
  • Получает флаги поведения

ArrayObject::getFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::getFlags — Получает флаги поведения

Описание

public int ArrayObject::getFlags ( void )

Получает флаги поведения 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 >= 5.0.0, PHP 7)

ArrayObject::getIterator — Создаёт новый итератор из экземпляра ArrayObject

Описание

public ArrayIterator ArrayObject::getIterator ( void )

Создаёт новый итератор из экземпляра ArrayObject.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Итератор из ArrayObject.

Примеры

Пример #1 Пример использования ArrayObject::getIterator()

<?php
$array = array('1' => 'one',
               '2' => 'two',
               '3' => 'three');

$arrayobject = new ArrayObject($array);

$iterator = $arrayobject->getIterator();

while($iterator->valid()) {
    echo $iterator->key() . ' => ' . $iterator->current() . "\n";

    $iterator->next();
}
?>

Результат выполнения данного примера:

1 => one
2 => two
3 => three


Возвращает имя класса итератора для ArrayObject

  • « ArrayObject::getIterator
  • ArrayObject::ksort »
  • PHP Manual
  • ArrayObject
  • Возвращает имя класса итератора для ArrayObject

ArrayObject::getIteratorClass

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::getIteratorClass — Возвращает имя класса итератора для ArrayObject

Описание

public string ArrayObject::getIteratorClass ( void )

Возвращает имя класса итератора массива, который используемый ArrayObject::getIterator().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя класса итератора массива, который будет использоваться при итерации по этому объекту.

Примеры

Пример #1 Пример использования ArrayObject::getIteratorClass()

<?php
// Пользовательский ArrayIterator (включает в себя ArrayIterator)
class MyArrayIterator extends ArrayIterator {
    // пользовательская реализация
}

// Массив с количеством фруктов
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Получает текущее имя класса итератора
$className = $fruitsArrayObject->getIteratorClass();
var_dump($className);

// Устанавливает новое имя класса итератора
$fruitsArrayObject->setIteratorClass('MyArrayIterator');

// Получает новое имя класса итератора
$className = $fruitsArrayObject->getIteratorClass();
var_dump($className);
?>

Результат выполнения данного примера:

string(13) "ArrayIterator"
string(15) "MyArrayIterator"

Смотрите также

  • ArrayObject::setIteratorClass


Сортирует записи по ключам

  • « ArrayObject::getIteratorClass
  • ArrayObject::natcasesort »
  • PHP Manual
  • ArrayObject
  • Сортирует записи по ключам

ArrayObject::ksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::ksort — Сортирует записи по ключам

Описание

public void ArrayObject::ksort ( void )

Сортирует массив по ключам, сохраняя отношения между ключами и значениями. Функция полезна, в основном, для работы с ассоциативными массивами.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::ksort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
$fruitArrayObject = new ArrayObject($fruits);
$fruitArrayObject->ksort();

foreach ($fruitArrayObject as $key => $val) {
    echo "$key = $val\n";
}
 ?>

Результат выполнения данного примера:

a = orange
b = banana
c = apple
d = lemon

Смотрите также

  • ArrayObject::asort() - Сортирует записи по значению
  • ArrayObject::natsort() - Сортирует массив, используя алгоритм "natural order"
  • ArrayObject::natcasesort() - Сортирует массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::uasort() - Сортирует записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
  • ArrayObject::uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения


Сортирует массив, используя регистронезависимый алгоритм "natural order"

  • « ArrayObject::ksort
  • ArrayObject::natsort »
  • PHP Manual
  • ArrayObject
  • Сортирует массив, используя регистронезависимый алгоритм "natural order"

ArrayObject::natcasesort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::natcasesort — Сортирует массив, используя регистронезависимый алгоритм "natural order"

Описание

public void ArrayObject::natcasesort ( void )

Этот метод является регистронезависимой версией ArrayObject::natsort.

Этот метод реализует алгоритм сортировки, при котором порядок цифробуквенных строк будет привычным для человека, сохраняя при этом связь ключ/значение. Иными словами, сортирует массив в "естественный порядок" (natural ordering).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::natcasesort()

<?php
$array = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo "Стандартная сортировка\n";
print_r($arr1);

$arr2->natcasesort();
echo "\nСортировка в естественном порядке (Вне зависимости от регистра)\n";
print_r($arr2);
?>

Результат выполнения данного примера:

Стандартная сортировка
ArrayObject Object
(
    [0] => IMG0.png
    [5] => IMG3.png
    [4] => img1.png
    [2] => img10.png
    [1] => img12.png
    [3] => img2.png
)

Сортировка в естественном порядке (Вне зависимости от регистра)
ArrayObject Object
(
    [0] => IMG0.png
    [4] => img1.png
    [3] => img2.png
    [5] => IMG3.png
    [2] => img10.png
    [1] => img12.png
)

Для более подробной информации смотрите страницу Мартина Пула (Martin Pool) » Natural Order String Comparison.

Смотрите также

  • ArrayObject::asort() - Сортирует записи по значению
  • ArrayObject::ksort() - Сортирует записи по ключам
  • ArrayObject::natsort() - Сортирует массив, используя алгоритм "natural order"
  • ArrayObject::uasort() - Сортирует записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
  • ArrayObject::uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения


Сортирует массив, используя алгоритм "natural order"

  • « ArrayObject::natcasesort
  • ArrayObject::offsetExists »
  • PHP Manual
  • ArrayObject
  • Сортирует массив, используя алгоритм "natural order"

ArrayObject::natsort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::natsort — Сортирует массив, используя алгоритм "natural order"

Описание

public void ArrayObject::natsort ( void )

Этот метод реализует алгоритм сортировки, при котором порядок цифробуквенных строк будет привычным для человека, сохраняя при этом связь ключ/значение. Иными словами, сортирует массив в "естественный порядок" (natural ordering). Пример отличия между этим алгоритмом и обычными алгоритмами сортировки, (Например, ArrayObject::asort) можно увидеть в примере ниже.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::natsort()

<?php
$array = array("img12.png", "img10.png", "img2.png", "img1.png");

$arr1 = new ArrayObject($array);
$arr2 = clone $arr1;

$arr1->asort();
echo "Стандартная сортировка\n";
print_r($arr1);

$arr2->natsort();
echo "\nСортировка в естественном порядке\n";
print_r($arr2);
?>

Результат выполнения данного примера:

Стандартная сортировка
ArrayObject Object
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Сортировка в естественном порядке
ArrayObject Object
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Для более подробной информации смотрите страницу Мартина Пула (Martin Pool) » Natural Order String Comparison.

Смотрите также

  • ArrayObject::asort() - Сортирует записи по значению
  • ArrayObject::ksort() - Сортирует записи по ключам
  • ArrayObject::natcasesort() - Сортирует массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::uasort() - Сортирует записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение
  • ArrayObject::uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения


Проверяет, существует ли указанный индекс

  • « ArrayObject::natsort
  • ArrayObject::offsetGet »
  • PHP Manual
  • ArrayObject
  • Проверяет, существует ли указанный индекс

ArrayObject::offsetExists

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::offsetExists — Проверяет, существует ли указанный индекс

Описание

public bool ArrayObject::offsetExists ( mixed $index )

Список параметров

index

Индекс, который должен быть проверен.

Возвращаемые значения

TRUE если указанный индекс существует, иначе FALSE

Примеры

Пример #1 Пример использования ArrayObject::offsetExists()

<?php
$arrayobj = new ArrayObject(array('zero', 'one', 'example'=>'e.g.'));
var_dump($arrayobj->offsetExists(1));
var_dump($arrayobj->offsetExists('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

Результат выполнения данного примера:

bool(true)
bool(true)
bool(false)


Возвращает значение по указанному индексу

  • « ArrayObject::offsetExists
  • ArrayObject::offsetSet »
  • PHP Manual
  • ArrayObject
  • Возвращает значение по указанному индексу

ArrayObject::offsetGet

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::offsetGet — Возвращает значение по указанному индексу

Описание

public mixed ArrayObject::offsetGet ( mixed $index )

Список параметров

index

Индекс, ссылающийся на значение.

Возвращаемые значения

Значение по указанному индексу или NULL.

Ошибки

Вызывает ошибку уровня E_NOTICE, если указанный индекс не существует.

Примеры

Пример #1 Пример использования ArrayObject::offsetGet()

<?php
$arrayobj = new ArrayObject(array('zero', 7, 'example'=>'e.g.'));
var_dump($arrayobj->offsetGet(1));
var_dump($arrayobj->offsetGet('example'));
var_dump($arrayobj->offsetExists('notfound'));
?>

Результат выполнения данного примера:

int(7)
string(4) "e.g."
bool(false)


Устанавливает новое значение по указанному индексу

  • « ArrayObject::offsetGet
  • ArrayObject::offsetUnset »
  • PHP Manual
  • ArrayObject
  • Устанавливает новое значение по указанному индексу

ArrayObject::offsetSet

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::offsetSet — Устанавливает новое значение по указанному индексу

Описание

public void ArrayObject::offsetSet ( mixed $index , mixed $newval )

Устанавливает новое значение по указанному индексу.

Список параметров

index

Индекс для установки значения.

newval

Новое значение для index.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::offsetSet()

<?php
class Example {
    public $property = 'prop:public';
}
$arrayobj = new ArrayObject(new Example());
$arrayobj->offsetSet(4, 'four');
$arrayobj->offsetSet('group', array('g1', 'g2'));
var_dump($arrayobj);

$arrayobj = new ArrayObject(array('zero','one'));
$arrayobj->offsetSet(null, 'last');
var_dump($arrayobj);
?>

Результат выполнения данного примера:

object(ArrayObject)#1 (3) {
  ["property"]=>
  string(11) "prop:public"
  [4]=>
  string(4) "four"
  ["group"]=>
  array(2) {
    [0]=>
    string(2) "g1"
    [1]=>
    string(2) "g2"
  }
}
object(ArrayObject)#3 (3) {
  [0]=>
  string(4) "zero"
  [1]=>
  string(3) "one"
  [2]=>
  string(4) "last"
}

Смотрите также

  • ArrayObject::append() - Добавляет значение в конец массива


Удаляет значение по указанному индексу

  • « ArrayObject::offsetSet
  • ArrayObject::serialize »
  • PHP Manual
  • ArrayObject
  • Удаляет значение по указанному индексу

ArrayObject::offsetUnset

(PHP 5 >= 5.0.0, PHP 7)

ArrayObject::offsetUnset — Удаляет значение по указанному индексу

Описание

public void ArrayObject::offsetUnset ( mixed $index )

Удаляет значение по указанному индексу.

Список параметров

index

Индекс, значение которого необходимо удалить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::offsetUnset()

<?php
$arrayobj = new ArrayObject(array(0=>'zero',2=>'two'));
$arrayobj->offsetUnset(2);
var_dump($arrayobj);
?>

Результат выполнения данного примера:

object(ArrayObject)#1 (1) {
  [0]=>
  string(4) "zero"
}


Сериализует ArrayObject

  • « ArrayObject::offsetUnset
  • ArrayObject::setFlags »
  • PHP Manual
  • ArrayObject
  • Сериализует ArrayObject

ArrayObject::serialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayObject::serialize — Сериализует ArrayObject

Описание

public string ArrayObject::serialize ( void )

Сериализует ArrayObject (преобразует в пригодное для хранения представление - прим. пер.).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованное представление ArrayObject.

Примеры

Пример #1 Пример использования ArrayObject::serialize()

<?php
$o = new ArrayObject();

$s1 = serialize($o);
$s2 = $o->serialize();

var_dump($s1);
var_dump($s2);
?>

Результат выполнения данного примера:

string(45) "C:11:"ArrayObject":21:{x:i:0;a:0:{};m:a:0:{}}"
string(21) "x:i:0;a:0:{};m:a:0:{}"

Смотрите также

  • ArrayObject::unserialize() - Десериализует ArrayObject
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Сериализация объектов


Устанавливает флаги поведения

  • « ArrayObject::serialize
  • ArrayObject::setIteratorClass »
  • PHP Manual
  • ArrayObject
  • Устанавливает флаги поведения

ArrayObject::setFlags

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::setFlags — Устанавливает флаги поведения

Описание

public void ArrayObject::setFlags ( int $flags )

Устанавливает флаги, которые влияют на поведение ArrayObject.

Список параметров

flags

Новое поведение ArrayObject. Допускается либо битовую маску, либо именованные константы. Использование именованных констант настоятельно рекомендуется для обеспечения совместимости с будущими версиями.

Доступные флаги поведения перечислены ниже. Фактические значения этих флагов описаны в разделе предопределенные константы.

Флаги поведения ArrayObject
Значение | Константа
1 | ArrayObject::STD_PROP_LIST
2 | ArrayObject::ARRAY_AS_PROPS

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::setFlags()

<?php
// Массив с количеством фруктов
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Попытка использовать ключ массива как свойство
var_dump($fruitsArrayObject->lemons);
// Установка флага, позволяющего использовать ключи массива как свойства ArrayObject
$fruitsArrayObject->setFlags(ArrayObject::ARRAY_AS_PROPS);
// Новая попытка
var_dump($fruitsArrayObject->lemons);
?>

Результат выполнения данного примера:

NULL
int(1)


Устанавливает имя класса итератора для ArrayObject

  • « ArrayObject::setFlags
  • ArrayObject::uasort »
  • PHP Manual
  • ArrayObject
  • Устанавливает имя класса итератора для ArrayObject

ArrayObject::setIteratorClass

(PHP 5 >= 5.1.0, PHP 7)

ArrayObject::setIteratorClass — Устанавливает имя класса итератора для ArrayObject

Описание

public void ArrayObject::setIteratorClass ( string $iterator_class )

Устанавливает имя класса итератора массива, возвращаемое ArrayObject::getIterator().

Список параметров

iterator_class

Имя класса итератора массива, который будет использоваться при итерации по этому объекту.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::setIteratorClass()

<?php
// Пользовательский ArrayIterator (включает в себя ArrayIterator)
class MyArrayIterator extends ArrayIterator {
    // пользовательская реализация
}

// Массив с количеством фруктов
$fruits = array("lemons" => 1, "oranges" => 4, "bananas" => 5, "apples" => 10);

$fruitsArrayObject = new ArrayObject($fruits);

// Устанавливает новое имя класса итератора
$fruitsArrayObject->setIteratorClass('MyArrayIterator');
print_r($fruitsArrayObject->getIterator());

?>

Результат выполнения данного примера:

MyArrayIterator Object
(
    [lemons] => 1
    [oranges] => 4
    [bananas] => 5
    [apples] => 10
)


Сортирует записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение

  • « ArrayObject::setIteratorClass
  • ArrayObject::uksort »
  • PHP Manual
  • ArrayObject
  • Сортирует записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение

ArrayObject::uasort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::uasort — Сортирует записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение

Описание

public void ArrayObject::uasort ( callable $cmp_function )

Эта функция сортирует значения так, чтобы сохранить связь ключа и значения, при этом для сравнения элементов вызывается пользовательская функция.

Функция используется в основном при сортировке ассоциативных массивов, где реальный порядок элементов имеет большое значение.

Список параметров

cmp_function

Функция cmp_function должна принимать два параметра, которым будут присвоены значения пары элементов. Функция сравнения должна возвращать целое число меньшее, равное или большее нуля, если первый параметр должен быть меньше, равен или больше второго параметра.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::uasort()

<?php
// Функция сравнения
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

// Массив для сортировки
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
$arrayObject = new ArrayObject($array);
print_r($arrayObject);

// Сортировка и вывод массива
$arrayObject->uasort('cmp');
print_r($arrayObject);
?>

Результат выполнения данного примера:

Array
(
    [a] => 4
    [b] => 8
    [c] => -1
    [d] => -9
    [e] => 2
    [f] => 5
    [g] => 3
    [h] => -4
)
Array
(
    [d] => -9
    [h] => -4
    [c] => -1
    [e] => 2
    [g] => 3
    [a] => 4
    [f] => 5
    [b] => 8
)

Смотрите также

  • ArrayObject::asort() - Сортирует записи по значению
  • ArrayObject::ksort() - Сортирует записи по ключам
  • ArrayObject::natsort() - Сортирует массив, используя алгоритм "natural order"
  • ArrayObject::natcasesort() - Сортирует массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::uksort() - Сортирует массив по ключам, используя пользовательскую функцию для сравнения


Сортирует массив по ключам, используя пользовательскую функцию для сравнения

  • « ArrayObject::uasort
  • ArrayObject::unserialize »
  • PHP Manual
  • ArrayObject
  • Сортирует массив по ключам, используя пользовательскую функцию для сравнения

ArrayObject::uksort

(PHP 5 >= 5.2.0, PHP 7)

ArrayObject::uksort — Сортирует массив по ключам, используя пользовательскую функцию для сравнения

Описание

public void ArrayObject::uksort ( callable $cmp_function )

Эта функция сортирует ключи так, чтобы сохранить связь ключа и значения, при этом для сравнения элементов вызывается пользовательская функция.

Список параметров

cmp_function

Callback-функция, используемая для сравнения.

Функция cmp_function должна принимать два параметра, которым будут присвоены значения пары элементов. Функция сравнения должна возвращать целое число меньшее, равное или большее нуля, если первый параметр должен быть меньше, равен или больше второго параметра.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования ArrayObject::uksort()

<?php
function cmp($a, $b) {
    $a = preg_replace('@^(a|an|the) @', '', $a);
    $b = preg_replace('@^(a|an|the) @', '', $b);
    return strcasecmp($a, $b);
}

$array = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);
$arrayObject = new ArrayObject($array);
$arrayObject->uksort('cmp');

foreach ($arrayObject as $key => $value) {
    echo "$key: $value\n";
}
?>

Результат выполнения данного примера:

an apple: 3
a banana: 4
the Earth: 2
John: 1

Смотрите также

  • ArrayObject::asort() - Сортирует записи по значению
  • ArrayObject::ksort() - Сортирует записи по ключам
  • ArrayObject::natsort() - Сортирует массив, используя алгоритм "natural order"
  • ArrayObject::natcasesort() - Сортирует массив, используя регистронезависимый алгоритм "natural order"
  • ArrayObject::uasort() - Сортирует записи, используя пользовательскую функцию для сравнения элементов и сохраняя при этом связь ключ/значение


Десериализует ArrayObject

  • « ArrayObject::uksort
  • SplObserver »
  • PHP Manual
  • ArrayObject
  • Десериализует ArrayObject

ArrayObject::unserialize

(PHP 5 >= 5.3.0, PHP 7)

ArrayObject::unserialize — Десериализует ArrayObject

Описание

public void ArrayObject::unserialize ( string $serialized )

Десериализует (конвертирует в значение PHP - прим.пер.) сериализованный объект ArrayObject.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

serialized

Сериализованный объект ArrayObject.

Возвращаемые значения

ArrayObject, конвертированный в значение PHP.

Смотрите также

  • ArrayIterator::serialize() - Сериализует массив
  • unserialize() - Создает PHP-значение из хранимого представления
  • Сериализация объектов


Интерфейс SplObserver

(PHP 5 >= 5.1.0, PHP 7)

Введение

Интерфейс SplObserver используется совместно с SplSubject для реализации шаблона проектирования Наблюдатель (Observer).

Обзор интерфейсов

SplObserver {
/* Методы */
abstract public void update ( SplSubject $subject )
}

Содержание

  • SplObserver::update — Получает уведомление от субъекта


Получает уведомление от субъекта

  • « SplObserver
  • SplSubject »
  • PHP Manual
  • SplObserver
  • Получает уведомление от субъекта

SplObserver::update

(PHP 5 >= 5.1.0, PHP 7)

SplObserver::update — Получает уведомление от субъекта

Описание

abstract public void SplObserver::update ( SplSubject $subject )

Этот метод вызывается, когда любой SplSubject, к которому присоединен наблюдатель, вызывает SplSubject::notify().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

subject

SplSubject, уведомляющий наблюдателя об обновлении.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Интерфейс SplSubject

(PHP 5 >= 5.1.0, PHP 7)

Введение

Интерфейс SplSubject используется совместно с SplObserver для реализации шаблона проектирования Наблюдатель (Observer).

Обзор интерфейсов

SplSubject {
/* Методы */
abstract public void attach ( SplObserver $observer )
abstract public void detach ( SplObserver $observer )
abstract public void 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)

SplSubject::attach — Присоединяет наблюдателя (объект класса SplObserver)

Описание

abstract public void SplSubject::attach ( SplObserver $observer )

Присоединяет SplObserver, чтобы он мог получать уведомления об обновлениях.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

observer

Объект класса SplObserver для присоединения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Отсоединяет наблюдателя

  • « SplSubject::attach
  • SplSubject::notify »
  • PHP Manual
  • SplSubject
  • Отсоединяет наблюдателя

SplSubject::detach

(PHP 5 >= 5.1.0, PHP 7)

SplSubject::detach — Отсоединяет наблюдателя

Описание

abstract public void SplSubject::detach ( SplObserver $observer )

Отсоединяет наблюдателя от субъекта чтобы больше не уведомлять его об обновлениях.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

observer

Объект класса SplObserver для отсоединения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Посылает уведомление наблюдателю

  • « SplSubject::detach
  • Типы SPL »
  • PHP Manual
  • SplSubject
  • Посылает уведомление наблюдателю

SplSubject::notify

(PHP 5 >= 5.1.0, PHP 7)

SplSubject::notify — Посылает уведомление наблюдателю

Описание

abstract public void SplSubject::notify ( void )

Посылает уведомление всем присоединенным наблюдателям.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Обработка типов SPL Type

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • SplType — Класс SplType
    • SplType::__construct — Создать новое значение некоторого типа
  • SplInt — Класс SplInt
  • SplFloat — Класс SplFloat
  • SplEnum — Класс SplEnum
    • SplEnum::getConstList — Возвратить все константы (возможные значение), в виде массива
  • SplBool — Класс SplBool
  • SplString — Класс SplString


Введение

Это расширение стремится помогать людям, делающим PHP более сильным типизированным языком и может быть хорошей альтернативой скалярному выводу подсказок типа. Это обеспечивается различными классами обработки типа, таких как integer, float, bool, enum and string

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/SPL_Types.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Настройка во время выполнения
  • SplType »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Класс SplType

(PECL spl_types >= 0.1.0)

Введение

Родительский класс для всех типов SPL.

Обзор классов

abstract SplType {
/* Константы */
const NULL __default = null ;
/* Методы */
__construct ([ mixed $initial_value [, bool $strict ]] )
}

Предопределенные константы

SplType::__default

Содержание

  • SplType::__construct — Создать новое значение некоторого типа


Создать новое значение некоторого типа

  • « SplType
  • SplInt »
  • PHP Manual
  • SplType
  • Создать новое значение некоторого типа

SplType::__construct

(PECL spl_types >= 0.1.0)

SplType::__construct — Создать новое значение некоторого типа

Описание

SplType::__construct ([ mixed $initial_value [, bool $strict ]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

initial_value

Тип и значение по умолчания зависят от расширения класса.

strict

Установить ли объектную строгость.

Ошибки

Выбрасывает UnexpectedValueException если задан несовместимый тип.


Класс SplInt

(PECL spl_types >= 0.1.0)

Введение

Класс SplInt используется для обеспечения сильной типизации целочисленного типа.

Обзор классов

SplInt extends SplType {
/* Константы */
const integer __default = 0 ;
/* Наследуемые методы */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Предопределенные константы

SplInt::__default

Примеры

Пример #1 Пример использования SplInt

<?php
$int = new SplInt(94);

try {
    $int = 'Try to cast a string value for fun';
} catch (UnexpectedValueException $uve) {
    echo $uve->getMessage() . PHP_EOL;
}

echo $int . PHP_EOL;
?>

Результат выполнения данного примера:

Value not an integer
94


Класс SplFloat

(PECL spl_types >= 0.1.0)

Введение

Класс SplFloat используется для обеспечения сильной типизации типа числа с плавающей запятой.

Обзор классов

SplFloat extends SplType {
/* Константы */
const float __default = 0 ;
/* Наследуемые методы */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Предопределенные константы

SplFloat::__default

Примеры

Пример #1 Пример использования SplFloat

<?php
$float = new SplFloat(3.154);
$newFloat = new SplFloat(3);

try {
    $float = 'Try to cast a string value for fun';
} catch (UnexpectedValueException $uve) {
    echo $e->getMessage() . PHP_EOL;
}

echo $float . PHP_EOL;
echo $newFloat . PHP_EOL;
?>

Результат выполнения данного примера:

Value not a float
3.154
3


Класс SplEnum

(PECL spl_types >= 0.1.0)

Введение

SplEnum дает возможность эмулировать и создать перечисление объектов непосредственно в PHP.

Обзор классов

SplEnum extends SplType {
/* Константы */
const NULL __default = null ;
/* Методы */
public array getConstList ([ bool $include_default = false ] )
/* Наследуемые методы */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Предопределенные константы

SplEnum::__default

Примеры

Пример #1 Пример использования SplEnum

<?php
class Month extends SplEnum {
    const __default = self::January;

    const January = 1;
    const February = 2;
    const March = 3;
    const April = 4;
    const May = 5;
    const June = 6;
    const July = 7;
    const August = 8;
    const September = 9;
    const October = 10;
    const November = 11;
    const December = 12;
}

echo new Month(Month::June) . PHP_EOL;

try {
    new Month(13);
} catch (UnexpectedValueException $uve) {
    echo $uve->getMessage() . PHP_EOL;
}
?>

Результат выполнения данного примера:

6
Value not a const in enum Month

Содержание

  • SplEnum::getConstList — Возвратить все константы (возможные значение), в виде массива


Возвратить все константы (возможные значение), в виде массива

  • « SplEnum
  • SplBool »
  • PHP Manual
  • SplEnum
  • Возвратить все константы (возможные значение), в виде массива

SplEnum::getConstList

(PECL spl_types >= 0.1.0)

SplEnum::getConstList — Возвратить все константы (возможные значение), в виде массива

Описание

public array SplEnum::getConstList ([ bool $include_default = false ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

include_default

Включать ли свойство __default.

Возвращаемые значения

Примеры

Пример #1 Пример использования SplEnum::getConstList()

<?php
$bool = new SplBool;
var_dump($bool->getConstList(true));
?>

Результат выполнения данного примера:

array(3) {
  ["__default"]=>
  bool(false)
  ["false"]=>
  bool(false)
  ["true"]=>
  bool(true)
}


Класс SplBool

(PECL spl_types >= 0.1.0)

Введение

Класс SplBool используется для обеспечения сильной типизации булева типа .

Обзор классов

SplBool extends SplEnum {
/* Константы */
const boolean __default = false ;
const boolean false = false ;
const boolean true = true ;
/* Наследуемые методы */
public array SplEnum::getConstList ([ bool $include_default = false ] )
}

Предопределенные константы

SplBool::__default

SplBool::false

SplBool::true

Примеры

Пример #1 Пример использования SplBool

<?php
$true = new SplBool(true);
if ($true) {
    echo "TRUE\n";
}

$false = new SplBool;
if ($false) {
    echo "FALSE\n";
}
?>

Результат выполнения данного примера:

TRUE


Класс SplString

(PECL spl_types >= 0.1.0)

Введение

Класс SplString используется для обеспечения сильной типизации строкового типа.

Обзор классов

SplString extends SplType {
/* Константы */
const string __default = '' ;
/* Наследуемые методы */
SplType::__construct ([ mixed $initial_value [, bool $strict ]] )
}

Предопределенные константы

SplString::__default

Примеры

Пример #1 Пример использования SplString

<?php
$string = new SplString("Testing");

try {
    $string = array();
} catch (UnexpectedValueException $uve) {
    echo $uve->getMessage() . PHP_EOL;
}

var_dump($string);
echo $string; // Outputs "Testing"
?>

Результат выполнения данного примера:

Value not a string
object(SplString)#1 (1) {
  ["__default"]=>
  string(7) "Testing"
}
Testing


Потоки

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Классы для работы с потоками
  • Предопределенные константы
  • Потоковые фильтры
  • Контексты потоков
  • Stream Errors
  • Примеры
    • Пример класса, зарегистрированного в качестве обертки потока
  • 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 — Advisory file locking
    • streamWrapper::stream_metadata — Изменяет метаданные потока
    • streamWrapper::stream_open — Открывает файл или URL
    • streamWrapper::stream_read — Читает из потока
    • streamWrapper::stream_seek — Перемещение на заданную позицию в потоке
    • streamWrapper::stream_set_option — Изменение настроек потока
    • streamWrapper::stream_stat — Получение информации о файловом ресурсе
    • streamWrapper::stream_tell — Определение текущей позиции потока
    • streamWrapper::stream_truncate — Усечение потока
    • streamWrapper::stream_write — Запись в поток
    • streamWrapper::unlink — Удаление файла
    • streamWrapper::url_stat — Получение информации о файле
  • Функции для работы с потоками
    • set_socket_blocking — Псевдоним stream_set_blocking
    • stream_bucket_append — Добавление бакета (bucket) в очередь бакетов потока (brigade)
    • stream_bucket_make_writeable — Вернуть ссылку на бакет в цепочке для дальнейшей работы с ним
    • stream_bucket_new — Создать новый бакет для использования с текущим потоком
    • stream_bucket_prepend — Добавление бакета (bucket) в начало очереди бакетов потока (brigade)
    • stream_context_create — Создаёт контекст потока
    • stream_context_get_default — Получает контекст потока по умолчанию
    • stream_context_get_options — Получает настройки для потока/обёртки/контекста
    • stream_context_get_params — Извлекает параметры из контекста
    • stream_context_set_default — Устанавливает контекст потоков по умолчанию
    • stream_context_set_option — Устанавливает опцию для потока/обёртки/контекста
    • stream_context_set_params — Устанавливает параметры для потока/обертки/контекста
    • stream_copy_to_stream — Копирует данные из одного потока в другой
    • stream_encoding — Устанавливает кодировку для потока
    • 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_notification_callback — Callback-функция для параметра контекста notification
    • stream_register_wrapper — Псевдоним stream_wrapper_register
    • stream_resolve_include_path — Составляет полное имя файла, используя пути включения
    • stream_select — Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
    • stream_set_blocking — Устанавливает блокирующий/неблокирующий режим на потоке
    • stream_set_chunk_size — Задание размера фрагмента данных потока
    • stream_set_read_buffer — Устанавливает буферизацию чтения файла на указанном потоке
    • stream_set_timeout — Устанавливает значение тайм-аута на потоке
    • stream_set_write_buffer — Устанавливает буферизацию файла при записи в указанный поток
    • stream_socket_accept — Принимает соединение на сокете, созданном c помощью функции stream_socket_server
    • stream_socket_client — Открывает соединение с интернет-сокетом или с доменным сокетом Unix
    • stream_socket_enable_crypto — Включает или отключает шифрование на уже подсоединённом сокете
    • stream_socket_get_name — Извлекает название локального или удалённого сокета
    • stream_socket_pair — Создаёт пару связанных неразличимых потоковых сокетов
    • stream_socket_recvfrom — Получает данные из сокета, подсоединённого или нет
    • stream_socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
    • stream_socket_server — Создаёт интернет-сокет или доменный сокет Unix
    • stream_socket_shutdown — Закрывает полнодуплексное соединение
    • stream_supports_lock — Определяет, поддерживает ли поток блокировку
    • stream_wrapper_register — Регистрирует обёртку URL, реализованную в виде PHP-класса
    • stream_wrapper_restore — Восстанавливает ранее разрегистрированную встроенную обёртку
    • stream_wrapper_unregister — Отменяет регистрацию обертки URL


Введение

Потоки были введены как инструмент для работы с файлами, сетевого обмена, сжатия данных и выполнения других операций с помощью одного общего набора функций. Выражаясь простыми понятиями, поток (stream) - это ресурс (resource), который ведет себя, как источник непрерывной последовательности данных. То есть из потока можно последовательно читать данные, равно как и записывать в него. Также возможно перемещаться (fseek()) в разные позиции внутри потока.

Обертка (wrapper) - дополнительный код, который объясняет потоку особенности работы со специфичными протоколами или кодировками. Например, обертка http знает, как преобразовать URL в HTTP/1.0-запрос для файла на удаленном сервере. Существует множество оберток, как встроенных в PHP изначально (см. Поддерживаемые протоколы и обработчики (wrappers)), так и дополнительных. Дополнительные обертки можно добавлять либо отдельным скриптом с помощью функции stream_wrapper_register(), либо напрямую из расширения, используя API Working with streams. Добавлять можно произвольное количество оберток, что делает возможности работы с потоками практически безграничными. Посмотреть список зарегистрированных на данный момент оберток можно с помощью функции stream_get_wrappers().

Ссылка на поток записывается в следующем виде: scheme://target

  • scheme(строка) - Название обертки. Например, file, http, https, ftp, ftps, compress.zlib, compress.bz2, php. Список встроенных оберток можно посмотреть здесь Поддерживаемые протоколы и обработчики (wrappers). На случай, если название обертки не указать, каждая функция, работающая с потоком, имеет свои умолчания (обычно это file://).
  • target - Зависит от того, какая обертка используется. Для потоков связанных с файловой системой это обычно путь и имя файла. Для сетевых потоков это, как правило, имя хоста (зачастую с добавлением к нему пути). Описания целей для встроенных оберток приведены в Поддерживаемые протоколы и обработчики (wrappers).

Замечание:

Информация об использовании потоков внутри исходного кода PHP приведена в Streams API for PHP Extension Authors reference.


Установка и настройка

Содержание

  • Требования
  • Установка
  • Настройка во время выполнения
  • Классы для работы с потоками


Установка

Потоки являются неотъемлемой частью PHP, начиная с версии 4.3.0. Для их включения не требуется каких-либо действий.


  • « Установка
  • Классы для работы с потоками »
  • 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 indicating if the stream used the include path.
STREAM_REPORT_ERRORS | Флаг (Flag) указывающий, что wrapper может выбрасывать исключения в процессе открытия потока функцией trigger_error() Если этот флаг не установлен, вызывать ошибки не стоит.
STREAM_CLIENT_ASYNC_CONNECT * | Асинхронное открытие соединения с клиентским сокетом. Эта настройка должна использоваться совместно с флагом STREAM_CLIENT_CONNECT. Используется в функции stream_socket_client().
STREAM_CLIENT_CONNECT * | Открытие соединения с клиентским сокетом. Клиентские сокеты всегда должны включать этот флаг. Используется функцией stream_socket_client().
STREAM_CLIENT_PERSISTENT * | Клиентский сокет, открытый функцией stream_socket_client() будет оставаться открытым между загрузками страниц.
STREAM_SERVER_BIND * | Сообщает потоку, созданному функцией stream_socket_server(), связаться с заданной целью. Серверные сокеты всегда должны включать этот флаг.
STREAM_SERVER_LISTEN * | Указывает потоку, созданному функцией stream_socket_server() и связанному флагом STREAM_SERVER_BIND, начать слушать сокет. Передачи данных, устанавливающие соединение (как TCP), должны использовать этот флаг, иначе сокет не включится. Использование этого флага при передаче без установления соединения (как UDP) вызовет ошибку.
STREAM_NOTIFY_RESOLVE * | Требуемый для потока адрес удаленного ресурса определен, либо это определение завершилось неудачей. Чтобы узнать, что именно произошло, см. severity.
STREAM_NOTIFY_CONNECT | Соединение с внешним ресурсом установлено.
STREAM_NOTIFY_AUTH_REQUIRED | Для доступа к заданному ресурсу необходима дополнительная авторизация. Обычно выдается в ошибке уровня severity STREAM_NOTIFY_SEVERITY_ERR.
STREAM_NOTIFY_MIME_TYPE_IS | mime-type ресурса идентифицирован. Описание найденного типа можно посмотреть в параметре message.
STREAM_NOTIFY_FILE_SIZE_IS | Размер (size) ресурса определен.
STREAM_NOTIFY_REDIRECTED | Внешний ресурс перенаправил поток в другое место. Дополнительно смотри message.
STREAM_NOTIFY_PROGRESS | Индикатор текущего процесса передачи данных через поток. Можно узнать, сколько передано (bytes_transferred), и сколько всего байт (bytes_max).
STREAM_NOTIFY_COMPLETED * | В потоке больше нет доступных данных.
STREAM_NOTIFY_FAILURE | Общая ошибка при работе с потоком. Детали смотри в message и message_code.
STREAM_NOTIFY_AUTH_RESULT | Авторизация завершена (независимо от успеха авторизации).
STREAM_NOTIFY_SEVERITY_INFO | Обычное уведомление, не относящееся к ошибкам.
STREAM_NOTIFY_SEVERITY_WARN | Некритичная ошибка. Возможно продолжить работу.
STREAM_NOTIFY_SEVERITY_ERR | Критичная ошибка. Продолжение работы невозможно.
STREAM_IPPROTO_ICMP + | Предоставляет ICMP сокет.
STREAM_IPPROTO_IP + | Предоставляет IP сокет.
STREAM_IPPROTO_RAW + | Предоставляет RAW сокет.
STREAM_IPPROTO_TCP + | Предоставляет TCP сокет.
STREAM_IPPROTO_UDP + | Предоставляет UDP сокет.
STREAM_PF_INET + | Интернет протокол 4 версии (IPv4).
STREAM_PF_INET6 + | Интернет протокол 6 версии (IPv6).
STREAM_PF_UNIX + | Внутренние протоколы Unix.
STREAM_SOCK_DGRAM + | Предоставляет датаграммы - сообщения без установления соединения (UDP, например).
STREAM_SOCK_RAW + | Предоставляет raw сокет, который дает доступ к внутренним сетевым протоколам и интерфейсам. Обычно сокеты этого типа доступны только root-пользователям.
STREAM_SOCK_RDM + | Предоставляет RDM (Reliably-delivered messages) сокет.
STREAM_SOCK_SEQPACKET + | Предоставляет сокет последовательного потока пакетов.
STREAM_SOCK_STREAM + | Предоставляет последовательные двунаправленные байтовые потоки с механизмом передачи связанных данных (TCP, например).
STREAM_SHUT_RD | Используется функцией stream_socket_shutdown() для отключения дальнейшего приема данных. Добавлено в PHP 5.2.1.
STREAM_SHUT_WR | Используется функцией stream_socket_shutdown() для отключения дальнейшей передачи данных. Добавлено в PHP 5.2.1.
STREAM_SHUT_RDWR | Используется функцией stream_socket_shutdown() для отключения дальнейших приема и передачи данных. Добавлено в PHP 5.2.1.
STREAM_CAST_FOR_SELECT | Распределение потоков, используется, когда функция stream_select() вызывает stream_cast().
STREAM_CAST_AS_STREAM | Распределение потоков, используется, когда функция stream_cast() вызывается из другого места (см. выше).
STREAM_META_TOUCH | Используется в функции stream_metadata() для задания вызова touch().
STREAM_META_OWNER | Используется в функции stream_metadata() для задания вызова chown().
STREAM_META_OWNER_NAME | Используется в функции stream_metadata() для задания вызова chown().
STREAM_META_GROUP | Используется в функции stream_metadata() для задания вызова chgrp().
STREAM_META_GROUP_NAME | Используется в функции stream_metadata() для задания вызова chgrp().
STREAM_META_ACCESS | Используется в функции stream_metadata() для задания вызова chmod().

Замечание: Константы, отмеченные *, доступны с версии PHP 5.0.0.

Замечание: Константы, отмеченные +, доступны с версии PHP 5.1.0 и предназначены для использования в функции stream_socket_pair(). Учитывайте, что некоторые из констант могут быть недоступны в Вашей системе.

Замечание: Константы STREAM_META_* доступны с версии PHP 5.4.0 и предназначены для использования в функции stream_metadata().


Потоковые фильтры

Фильтр (filter) - рабочий код, который может осуществлять операции с данными, читаемыми из потока или записываемыми в него. На каждый поток можно надстроить несколько фильтров. Пользовательские фильтры можно регистрировать либо в PHP скрипте функцией stream_filter_register(), либо в расширении, используя API Reference Working with streams. Чтобы посмотреть список зарегистрированных на данный момент фильтров, воспользуйтесь функцией stream_get_filters().


Контексты потоков

Контекст - это набор параметров и зависящих от контекста опций, который изменяет или расширяет поведение потока. Контексты создаются при помощи функции stream_context_create() и могут быть переданы большинству функций файловой системы, связанных с созданием потоков (например, fopen(), file(), file_get_contents(), и т. д...).

Опции могут быть определены при вызове функции stream_context_create(), или позже, используя функцию stream_context_set_option(). Список возможных опций в данном контексте может быть найден в главе Контекстные опции и параметры.

Параметры могут быть определены для контекстов, используя функцию stream_context_set_params().


Stream Errors

Как и любая другая функция работающая с файлами и сокетами, потоковая операция может завершиться неудачей по причинам, независящим от правильности разработки скрипта (ошибки: невозможно подключиться к удаленному хосту, не найден файл и т.п.). Также вызов работающих с потоками функций может аварийно завершится из-за того, что ожидаемый поток не зарегистрирован в системе. Чтобы предупредить подобные ошибки, ознакомьтесь со списком потоков, которые поддерживает Ваша сборка PHP. Список можно получить с помощью функции stream_get_wrappers(). Как для большинства встроенных функций PHP в исключительных ситуациях генерируется сообщение E_WARNING с описанием природы ошибки.


Примеры

Содержание

  • Пример класса, зарегистрированного в качестве обертки потока

Пример #1 Использование file_get_contents() для получения данных их различных источников

<?php
/* Чтение локального файла из /home/bar */
$localfile = file_get_contents("/home/bar/foo.txt");

/* То же самое с явным заданием схемы FILE */
$localfile = file_get_contents("file:///home/bar/foo.txt");

/* Чтение удаленного файла по адресу from www.example.com, используя HTTP */
$httpfile  = file_get_contents("http://www.example.com/foo.txt");

/* Чтение удаленного файла по адресу www.example.com, используя HTTPS */
$httpsfile = file_get_contents("https://www.example.com/foo.txt");

/* Чтение удаленного файла по адресу ftp.example.com, используя FTP */
$ftpfile   = file_get_contents("ftp://user:pass@ftp.example.com/foo.txt");

/* Чтение удаленного файла по адресу ftp.example.com, используя FTPS */
$ftpsfile  = file_get_contents("ftps://user:pass@ftp.example.com/foo.txt");
?>

Пример #2 Осуществление POST запроса к https серверу

<?php
/* Посылаем POST запрос на адрес https://secure.example.com/form_action.php
* Включаем элементы формы "foo" и "bar" с подходящими данными
*/

$sock = fsockopen("ssl://secure.example.com", 443, $errno, $errstr, 30);
if (!$sock) die("$errstr ($errno)\n");

$data = "foo=" . urlencode("Значение Foo") . "&bar=" . urlencode("Значение Bar");

fwrite($sock, "POST /form_action.php HTTP/1.0\r\n");
fwrite($sock, "Host: secure.example.com\r\n");
fwrite($sock, "Content-type: application/x-www-form-urlencoded\r\n");
fwrite($sock, "Content-length: " . strlen($data) . "\r\n");
fwrite($sock, "Accept: */*\r\n");
fwrite($sock, "\r\n");
fwrite($sock, $data);

$headers = "";
while ($str = trim(fgets($sock, 4096)))
$headers .= "$str\n";

echo "\n";

$body = "";
while (!feof($sock))
$body .= fgets($sock, 4096);

fclose($sock);
?>

Пример #3 Запись данных в сжатый файл

<?php
/* Создаем сжатый файл с различными данными
* Файл можно прочитать с помощью потока compress.zlib либо
* просто разархивировать из командной строки 'gzip -d foo-bar.txt.gz'
*/
$fp = fopen("compress.zlib://foo-bar.txt.gz", "wb");
if (!$fp) die("Невозможно создать файл.");

fwrite($fp, "Тестовые данные.\n");

fclose($fp);
?>


Пример класса, зарегистрированного в качестве обертки потока

Пример ниже реализует обработчик протокола var://, который позволяет читать/писать в именованную глобальную переменную, используя стандартные потоковые функции, работающие с файловой системой, такие как fread(). Протокол var:// при передаче URL "var://foo" будет читать/писать из/в $GLOBALS["foo"].

Пример #1 Поток для чтения/записи глобальных переменных

<?php

class VariableStream {
    var $position;
    var $varname;

    function stream_open($path, $mode, $options, &$opened_path)
    {
        $url = parse_url($path);
        $this->varname = $url["host"];
        $this->position = 0;

        return true;
    }

    function stream_read($count)
    {
        $ret = substr($GLOBALS[$this->varname], $this->position, $count);
        $this->position += strlen($ret);
        return $ret;
    }

    function stream_write($data)
    {
        $left = substr($GLOBALS[$this->varname], 0, $this->position);
        $right = substr($GLOBALS[$this->varname], $this->position + strlen($data));
        $GLOBALS[$this->varname] = $left . $data . $right;
        $this->position += strlen($data);
        return strlen($data);
    }

    function stream_tell()
    {
        return $this->position;
    }

    function stream_eof()
    {
        return $this->position >= strlen($GLOBALS[$this->varname]);
    }

    function stream_seek($offset, $whence)
    {
        switch ($whence) {
            case SEEK_SET:
                if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {
                     $this->position = $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_CUR:
                if ($offset >= 0) {
                     $this->position += $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            case SEEK_END:
                if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {
                     $this->position = strlen($GLOBALS[$this->varname]) + $offset;
                     return true;
                } else {
                     return false;
                }
                break;

            default:
                return false;
        }
    }

    function stream_metadata($path, $option, $var)
    {
        if($option == STREAM_META_TOUCH) {
            $url = parse_url($path);
            $varname = $url["host"];
            if(!isset($GLOBALS[$varname])) {
                $GLOBALS[$varname] = '';
            }
            return true;
        }
        return false;
    }
}

stream_wrapper_register("var", "VariableStream")
    or die("Не удалось зарегистрировать обертку");

$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while (!feof($fp)) {
    echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

?>

Результат выполнения данного примера:

line1
line2
line3
string(18) "line1
line2
line3
"


Класс php_user_filter

(PHP 5, PHP 7)

Введение

Потомки этого класса передаются в функцию stream_filter_register().

Обзор классов

php_user_filter {
/* Свойства */
public $filtername ;
public $params ;
/* Методы */
public int filter ( resource $in , resource $out , int &$consumed , bool $closing )
public void onClose ( void )
public bool onCreate ( void )
}

Свойства

filtername

Имя фильтра, зарегистрированного функцией stream_filter_append().

params

Содержание

  • php_user_filter::filter — Вызывается, как только применяется фильтр
  • php_user_filter::onClose — Вызывается при закрытии фильтра
  • php_user_filter::onCreate — Вызывается при создании объекта фильтра


Вызывается, как только применяется фильтр

  • « php_user_filter
  • php_user_filter::onClose »
  • PHP Manual
  • php_user_filter
  • Вызывается, как только применяется фильтр

php_user_filter::filter

(PHP 5, PHP 7)

php_user_filter::filter — Вызывается, как только применяется фильтр

Описание

public int php_user_filter::filter ( resource $in , resource $out , int &$consumed , bool $closing )

Этот метод вызывается всякий раз, когда данные читаются из присоединенного потока или записываются в него (такими функциями, как fread() или fwrite()).

Список параметров

in

in - ресурс, указывающий на bucket brigade, которая содержит один или несколько объектов bucket содержащих фильтруемые данные.

out

out - ресурс, указывающий на другой объект bucket brigade, в который будут помещаться модифицированные бакеты.

consumed

consumed, который должен всегда передаваться по ссылке, должен увеличиваться на размер данных, которые фильтр читает и изменяет. В большинстве случаев это значит, что Вы сами будете увеличивать значение consumed на $bucket->datalen для каждого $bucket.

closing

Если поток закрывается (следовательно, это последний фильтр в цепочке), аргумент closing примет значение TRUE.

Возвращаемые значения

Метод filter() должен возвращать одно из трех значений.

Возвращаемое значение | Описание
PSFS_PASS_ON | Фильтр отработал успешно, данные доступны через аргумент out bucket brigade.
PSFS_FEED_ME | Фильтр отработал успешно, однако доступных для вывода данных нет. Требуются еще данные из потока или предыдущего фильтра.
PSFS_ERR_FATAL (по умолчанию) | Фильтр вызвал необрабатываемую ошибку и не может продолжить выполнение.


Вызывается при закрытии фильтра

  • « php_user_filter::filter
  • php_user_filter::onCreate »
  • PHP Manual
  • php_user_filter
  • Вызывается при закрытии фильтра

php_user_filter::onClose

(PHP 5, PHP 7)

php_user_filter::onClose — Вызывается при закрытии фильтра

Описание

public void 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_user_filter::onCreate — Вызывается при создании объекта фильтра

Описание

public bool php_user_filter::onCreate ( void )

Этот метод вызывается при создании фильтра во время инстанцирования экземпляра класса. В этом методе можно выделять необходимые ресурсы и инициализировать объекты (например, различные буферы).

Когда фильтр создан и вызвался метод yourfilter->onCreate() разработчику будут доступны следующие свойства.

Свойство | Содержание
FilterClass->filtername | Строка содержащая имя фильтра, присвоенное ему при создании. Фильтры можно регистрировать под разными именами или спецсимволами. Это свойство можно использовать для определения, какое имя было использовано.
FilterClass->params | Содержимое аргумента params передается в функцию stream_filter_append() или stream_filter_prepend().
FilterClass->stream | Ресурс потока, который будет фильтроваться. Свойство доступно, только если метод filter() вызывается, когда параметр closing равен FALSE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ваша реализация метода должна возвращать FALSE при неуспешном завершении работы или TRUE при успешном.


Класс streamWrapper

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

Введение

Позволяет реализовывать собственные обработчики протоколов и потоков для дальнейшего использования со всеми функциями по работе с файловой системой (такими как fopen(), fread() и т.п.).

Замечание:

Это НЕ реальный класс, а лишь прототип, предоставленный в качестве наглядного пособия.

Замечание:

Реализация методов, отличная от описанной здесь, может привести к нестабильному поведению.

Объект класса инициализируется в тот момент, когда потоковая функция пытается получить доступ к протоколу, с которым этот класс ассоциирован.

Обзор классов

streamWrapper {
/* Свойства */
public resource $context ;
/* Методы */
__construct ( void )
__destruct ( void )
public bool dir_closedir ( void )
public bool dir_opendir ( string $path , int $options )
public string dir_readdir ( void )
public bool dir_rewinddir ( void )
public bool mkdir ( string $path , int $mode , int $options )
public bool rename ( string $path_from , string $path_to )
public bool rmdir ( string $path , int $options )
public resource stream_cast ( int $cast_as )
public void stream_close ( void )
public bool stream_eof ( void )
public bool stream_flush ( void )
public bool stream_lock ( int $operation )
public bool stream_metadata ( string $path , int $option , mixed $value )
public bool stream_open ( string $path , string $mode , int $options , string &$opened_path )
public string stream_read ( int $count )
public bool stream_seek ( int $offset , int $whence = SEEK_SET )
public bool stream_set_option ( int $option , int $arg1 , int $arg2 )
public array stream_stat ( void )
public int stream_tell ( void )
public bool stream_truncate ( int $new_size )
public int stream_write ( string $data )
public bool unlink ( string $path )
public array url_stat ( string $path , int $flags )
}

Свойства

resource context

Текущий контекстили NULL, если в вызывающую функцию не было передано никакого контекста.

Используйте функцию stream_context_get_options() для анализа и разбора контекста.

Замечание:

Это свойство должно быть общедоступным (иметь модификатор public), чтобы PHP мог ассоциировать его с актуальным контекстом.

Список изменений

Версия | Описание
5.0.0 | Добавлено свойство context.

Смотрите также

  • Пример класса, зарегистрированного в качестве обертки потока
  • 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 — Advisory file locking
  • streamWrapper::stream_metadata — Изменяет метаданные потока
  • streamWrapper::stream_open — Открывает файл или URL
  • streamWrapper::stream_read — Читает из потока
  • streamWrapper::stream_seek — Перемещение на заданную позицию в потоке
  • streamWrapper::stream_set_option — Изменение настроек потока
  • streamWrapper::stream_stat — Получение информации о файловом ресурсе
  • streamWrapper::stream_tell — Определение текущей позиции потока
  • streamWrapper::stream_truncate — Усечение потока
  • streamWrapper::stream_write — Запись в поток
  • streamWrapper::unlink — Удаление файла
  • streamWrapper::url_stat — Получение информации о файле


Создает новый объект-обертку для потока

  • « streamWrapper
  • streamWrapper::__destruct »
  • PHP Manual
  • streamWrapper
  • Создает новый объект-обертку для потока

streamWrapper::__construct

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::__construct — Создает новый объект-обертку для потока

Описание

streamWrapper::__construct ( void )

Вызывается при открытии обертки потока непосредственно перед вызовом метода streamWrapper::stream_open().

Список параметров

У этой функции нет параметров.


Уничтожает существующую обертку потока

  • « streamWrapper::__construct
  • streamWrapper::dir_closedir »
  • PHP Manual
  • streamWrapper
  • Уничтожает существующую обертку потока

streamWrapper::__destruct

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::__destruct — Уничтожает существующую обертку потока

Описание

streamWrapper::__destruct ( void )

Вызывается во время закрытия обертки потока непосредственно перед вызовом метода streamWrapper::stream_flush().

Список параметров

У этой функции нет параметров.


Обработчик закрытия директории

  • « streamWrapper::__destruct
  • streamWrapper::dir_opendir »
  • PHP Manual
  • streamWrapper
  • Обработчик закрытия директории

streamWrapper::dir_closedir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_closedir — Обработчик закрытия директории

Описание

public bool streamWrapper::dir_closedir ( void )

Этот метод вызывается в результате вызова closedir().

Все ресурсы, выделенные или заблокированные во время открытия и использования потока директории, необходимо освободить.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • closedir() - Освобождает дескриптор каталога
  • streamWrapper::dir_opendir() - Обработчик открытия директории


Обработчик открытия директории

  • « streamWrapper::dir_closedir
  • streamWrapper::dir_readdir »
  • PHP Manual
  • streamWrapper
  • Обработчик открытия директории

streamWrapper::dir_opendir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_opendir — Обработчик открытия директории

Описание

public bool streamWrapper::dir_opendir ( string $path , int $options )

Этот метод вызывается в результате вызова opendir().

Список параметров

path

Задает URL, который будет передаваться в opendir().

Замечание:

URL можно разделить на части с помощью parse_url().

options

Требуется ли принудительно включить безопасный режим (0x04).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • opendir() - Открывает дескриптор каталога
  • streamWrapper::dir_closedir() - Обработчик закрытия директории
  • parse_url() - Разбирает URL и возвращает его компоненты


Обработчик чтения содержимого директории

  • « streamWrapper::dir_opendir
  • streamWrapper::dir_rewinddir »
  • PHP Manual
  • streamWrapper
  • Обработчик чтения содержимого директории

streamWrapper::dir_readdir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_readdir — Обработчик чтения содержимого директории

Описание

public string streamWrapper::dir_readdir ( void )

Этот метод вызывается в результате вызова readdir().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Должен возвращать строку (string), представляющую имя следующего файла, либо FALSE, если следующего файла нет.

Замечание:

Возвращаемое значение будет приведено к типу string.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примеры

Пример #1 Получение списка файлов из tar архивов

<?php
class streamWrapper {
    protected $fp;

    public function dir_opendir($path, $options) {
        $url = parse_url($path);

        $path = $url["host"] . $url["path"];

        if (!is_readable($path)) {
            trigger_error("Не могу прочитать $path ", E_USER_NOTICE);
            return false;
        }
        if (!is_file($path)) {
            trigger_error("$path не является файлом", E_USER_NOTICE);
            return false;
        }

        $this->fp = fopen($path, "rb");
        return true;
    }

    public function dir_readdir() {
        // Извлечение заголовка
        $header      = fread($this->fp, 512);
        $data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/a8checksum/a1filetype/a100link/a100linkedfile", $header);

        // Убираем лишние пробелы в имени файла и его размере
        $filename    = trim($data["filename"]);

        // Нет файла? Значит мы дошли до конца архива
        if (!$filename) {
            return false;
        }

        $octal_bytes = trim($data["size"]);
        // Размер файла определен в восьмеричной системе
        $bytes       = octdec($octal_bytes);

        // tar округляет вверх размеры файлов, чтобы они были
        // кратными 512 байтам (добавляет нули)
        $rest        = $bytes % 512;
        if ($rest > 0) {
            $bytes      += 512 - $rest;
        }

        // Перемещаемся внутри файла
        fseek($this->fp, $bytes, SEEK_CUR);

        return $filename;
    }

    public function dir_closedir() {
        return fclose($this->fp);
    }

    public function dir_rewinddir() {
        return fseek($this->fp, 0, SEEK_SET);
    }
}

stream_wrapper_register("tar", "streamWrapper");
$handle = opendir("tar://example.tar");
while (false !== ($file = readdir($handle))) {
    var_dump($file);
}

echo "Перемотка в начало..\n";
rewind($handle);
var_dump(readdir($handle));

closedir($handle);
?>

Результатом выполнения данного примера будет что-то подобное:

string(13) "construct.xml"
string(16) "dir-closedir.xml"
string(15) "dir-opendir.xml"
string(15) "dir-readdir.xml"
string(17) "dir-rewinddir.xml"
string(9) "mkdir.xml"
string(10) "rename.xml"
string(9) "rmdir.xml"
string(15) "stream-cast.xml"
string(16) "stream-close.xml"
string(14) "stream-eof.xml"
string(16) "stream-flush.xml"
string(15) "stream-lock.xml"
string(15) "stream-open.xml"
string(15) "stream-read.xml"
string(15) "stream-seek.xml"
string(21) "stream-set-option.xml"
string(15) "stream-stat.xml"
string(15) "stream-tell.xml"
string(16) "stream-write.xml"
string(10) "unlink.xml"
string(12) "url-stat.xml"
Rewinding..
string(13) "construct.xml"

Смотрите также

  • readdir() - Получает элемент каталога по его дескриптору


Обработчик перемещения на начало директории

  • « streamWrapper::dir_readdir
  • streamWrapper::mkdir »
  • PHP Manual
  • streamWrapper
  • Обработчик перемещения на начало директории

streamWrapper::dir_rewinddir

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::dir_rewinddir — Обработчик перемещения на начало директории

Описание

public bool streamWrapper::dir_rewinddir ( void )

Этот метод вызывается в процессе выполнения rewinddir().

Должен сбрасывать текущий вывод, генерируемый методом streamWrapper::dir_readdir(). Т.е. при следующем вызове метод streamWrapper::dir_readdir() должен возвращать первую запись в директории, определенной методом streamWrapper::dir_opendir().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • rewinddir() - Сбросить дескриптор каталога
  • streamWrapper::dir_readdir() - Обработчик чтения содержимого директории


Создание директории

  • « streamWrapper::dir_rewinddir
  • streamWrapper::rename »
  • PHP Manual
  • streamWrapper
  • Создание директории

streamWrapper::mkdir

(PHP 5, PHP 7)

streamWrapper::mkdir — Создание директории

Описание

public bool streamWrapper::mkdir ( string $path , int $mode , int $options )

Этот метод вызывается в результате вызова mkdir().

Замечание:

Чтобы сообщения об ошибках соответствовали реальным ошибкам, этот метод не нужно определять в случаях, когда обертка не поддерживает создание директорий.

Список параметров

path

Создаваемая директория.

mode

Значение, которое будет передано в mkdir().

options

Битовая маска, составленная из констант, вроде STREAM_MKDIR_RECURSIVE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • mkdir() - Создаёт директорию
  • streamwrapper::rmdir() - Удаляет директорию


Переименовывает файл или директорию

  • « streamWrapper::mkdir
  • streamWrapper::rmdir »
  • PHP Manual
  • streamWrapper
  • Переименовывает файл или директорию

streamWrapper::rename

(PHP 5, PHP 7)

streamWrapper::rename — Переименовывает файл или директорию

Описание

public bool streamWrapper::rename ( string $path_from , string $path_to )

Этот метод вызывается в результате вызова rename().

Должен попытаться переименовать path_from в path_to

Замечание:

Чтобы сообщения об ошибках соответствовали реальным ошибкам, этот метод не нужно определять в случаях, когда обертка не поддерживает переименование файлов.

Список параметров

path_from

URL текущего файла.

path_to

URL в который path_from нужно переименовать.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • rename() - Переименовывает файл или директорию


Удаляет директорию

  • « streamWrapper::rename
  • streamWrapper::stream_cast »
  • PHP Manual
  • streamWrapper
  • Удаляет директорию

streamWrapper::rmdir

(PHP 5, PHP 7)

streamWrapper::rmdir — Удаляет директорию

Описание

public bool streamWrapper::rmdir ( string $path , int $options )

Этот метод вызывается в результате вызова rmdir().

Замечание:

Чтобы сообщения об ошибках соответствовали реальным ошибкам, этот метод не нужно определять в случаях, когда обертка не поддерживает удаление директорий.

Список параметров

path

URL удаляемой директории.

options

Битовая маска, составленная из констант, вроде STREAM_MKDIR_RECURSIVE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • rmdir() - Удаляет директорию
  • streamwrapper::mkdir() - Создание директории
  • streamwrapper::unlink() - Удаление файла


Получает ресурс уровнем ниже

  • « streamWrapper::rmdir
  • streamWrapper::stream_close »
  • PHP Manual
  • streamWrapper
  • Получает ресурс уровнем ниже

streamWrapper::stream_cast

(PHP 5 >= 5.3.0, PHP 7)

streamWrapper::stream_cast — Получает ресурс уровнем ниже

Описание

public resource streamWrapper::stream_cast ( int $cast_as )

Этот метод вызывается в результате вызова stream_select().

Список параметров

cast_as

Может быть STREAM_CAST_FOR_SELECT, когда stream_select() вызывает stream_cast(), либо STREAM_CAST_AS_STREAM, когда stream_cast() вызывается для других целей.

Возвращаемые значения

Должен вернуть ресурс потока, лежащего уровнем ниже, или FALSE.

Смотрите также

  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec


Закрывает ресурс

  • « streamWrapper::stream_cast
  • streamWrapper::stream_eof »
  • PHP Manual
  • streamWrapper
  • Закрывает ресурс

streamWrapper::stream_close

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_close — Закрывает ресурс

Описание

public void 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)

streamWrapper::stream_eof — Проверяет достижение конца файла по файловому указателю

Описание

public bool streamWrapper::stream_eof ( void )

Этот метод вызывается в результате вызова feof().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Должен вернуть TRUE, если позиция чтения/записи находится в конце потока и доступных для чтения данных больше нет. В остальных случаях возвращается FALSE.

Примечания

Внимание

При чтении файла целиком (например, функцией
file_get_contents()), PHP будет вызывает
streamWrapper::stream_read() и вместе с ним
streamWrapper::stream_eof() в цикле, пока
streamWrapper::stream_read() возвращает
непустую строку. Возвращаемое из
streamWrapper::stream_eof() значение при этом
игнорируется.

Смотрите также

  • feof() - Проверяет, достигнут ли конец файла


Сохранение данных вывода

  • « streamWrapper::stream_eof
  • streamWrapper::stream_lock »
  • PHP Manual
  • streamWrapper
  • Сохранение данных вывода

streamWrapper::stream_flush

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_flush — Сохранение данных вывода

Описание

public bool streamWrapper::stream_flush ( void )

Этот метод вызывается в результате вызова fflush(), если поток закрывается имея несброшенные данные записанные в него ранее.

Если в потоке есть кэшированные и еще неиспользованные данные, в этом методе самое место передать их на низлежащий уровень.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Должен возвращать TRUE, если кэшированные данные успешно сохранены (или их вообще нет), либо FALSE, если данные не могут быть сохранены.

Примечания

Замечание:

Если метод не реализован, в качестве возвращаемого значения полагается FALSE.

Смотрите также

  • fflush() - Сбрасывает буфер вывода в файл


Advisory file locking

  • « streamWrapper::stream_flush
  • streamWrapper::stream_metadata »
  • PHP Manual
  • streamWrapper
  • Advisory file locking

streamWrapper::stream_lock

(PHP 5, PHP 7)

streamWrapper::stream_lock — Advisory file locking

Описание

public bool streamWrapper::stream_lock ( int $operation )

Этот метод вызывается в следующих случаях: при вызове функции flock(), при вызове file_put_contents() (когда flags содержит LOCK_EX), при вызове stream_set_blocking() и при закрытии потока (LOCK_UN).

Список параметров

operation

operation может принимать одно из следующих значений:

  • LOCK_SH установить совместную блокировку (для чтения).
  • LOCK_EX установить эксклюзивную блокировку (для записи).
  • LOCK_UN снять блокировку (совместную или эксклюзивную).
  • LOCK_NB, если Вы не хотите, чтобы flock() ставила свои блокировки. (не поддерживается в Windows)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку E_WARNING, если вызов метода не удался (то есть метод не реализован).

Смотрите также

  • stream_set_blocking() - Устанавливает блокирующий/неблокирующий режим на потоке
  • flock() - Портируемая консультативная блокировка файлов


Изменяет метаданные потока

  • « streamWrapper::stream_lock
  • streamWrapper::stream_open »
  • PHP Manual
  • streamWrapper
  • Изменяет метаданные потока

streamWrapper::stream_metadata

(PHP 5 >= 5.4.0, PHP 7)

streamWrapper::stream_metadata — Изменяет метаданные потока

Описание

public bool streamWrapper::stream_metadata ( string $path , int $option , mixed $value )

Этот метод вызывается для задания метаданных потока. Он работает, когда над URL потока выполняется одна из следующих операций:

  • touch()
  • chmod()
  • chown()
  • chgrp()
Следует помнить, что некоторые из этих операций могут быть недоступны в Вашей системе.

Список параметров

path

Путь к файлу или URL для задания метаданных. URL должен быть отделен символами :// Другие форматы URL не поддерживаются.

option

Одно из значений:

  • STREAM_META_TOUCH (Метод вызывается в результате вызова touch())
  • STREAM_META_OWNER_NAME (Метод вызывается в результате вызова chown() со строковым аргументом)
  • STREAM_META_OWNER (Метод вызывается в результате вызова chown())
  • STREAM_META_GROUP_NAME (Метод вызывается в результате вызова chgrp())
  • STREAM_META_GROUP (Метод вызывается в результате вызова chgrp())
  • STREAM_META_ACCESS (Метод вызывается в результате вызова chmod())

value

Если option принимает значение

  • STREAM_META_TOUCH: Массив (Array) состоящий из двух аргументов функции touch().
  • STREAM_META_OWNER_NAME или STREAM_META_GROUP_NAME: Имя владельца/группы в виде строки (string).
  • STREAM_META_OWNER или STREAM_META_GROUP: Значение владельца/группу в виде числа (integer).
  • STREAM_META_ACCESS: Аргумент функции chmod() в виде целого числа (integer).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если option не реализован, метод должен вернуть FALSE.

Смотрите также

  • touch() - Устанавливает время доступа и модификации файла
  • chmod() - Изменяет режим доступа к файлу
  • chown() - Изменяет владельца файла
  • chgrp() - Изменяет группу владельцев файла


Открывает файл или URL

  • « streamWrapper::stream_metadata
  • streamWrapper::stream_read »
  • PHP Manual
  • streamWrapper
  • Открывает файл или URL

streamWrapper::stream_open

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_open — Открывает файл или URL

Описание

public bool streamWrapper::stream_open ( string $path , string $mode , int $options , string &$opened_path )

This method is called immediately after the wrapper is initialized (f.e. by fopen() and file_get_contents()).

Список параметров

path

Задает URL, который будет передан в вызывающую функцию.

Замечание:

URL можно разделить на части функцией parse_url(). URL должен быть отделен символами ://. Символы : and :/ пока работают, но дальнейшая поддержка не гарантируется.

mode

Режим открытия файла, аналогичен режимам для fopen().

Замечание:

Не забывайте проверять, поддерживается ли режим mode файлом path.

options

Хранит дополнительные флаги, задаваемые API потоков. Может содержать одно или несколько значений объединенных операцией ИЛИ. Значения приведены ниже.

Флаг | Описание
STREAM_USE_PATH | Если путь path относительный, требуется искать ресурс, используя include_path.
STREAM_REPORT_ERRORS | Если этот флаг задан, Вы можете вызывать ошибки функцией trigger_error() во время открытия потока. Если флаг не задан, ошибки вызывать нельзя.

opened_path

Если path успешно открыт, и STREAM_USE_PATH задана в options, то в аргументе opened_path необходимо сохранить полный путь к открытому файлу или ресурсу.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • fopen() - Открывает файл или URL
  • parse_url() - Разбирает URL и возвращает его компоненты


Читает из потока

  • « streamWrapper::stream_open
  • streamWrapper::stream_seek »
  • PHP Manual
  • streamWrapper
  • Читает из потока

streamWrapper::stream_read

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_read — Читает из потока

Описание

public string streamWrapper::stream_read ( int $count )

Этот метод вызывается в результате вызова функций fread() и fgets().

Замечание:

Не забывайте обновлять позицию чтения/записи в потоке (на число успешно прочитанных байт).

Список параметров

count

Сколько байт данных от текущей позиции требуется вернуть.

Возвращаемые значения

Если в потоке имеется меньше байт, чем count, нужно возвращать столько, сколько доступно. Если доступных данных больше нет, нужно вернуть либо FALSE, либо пустую строку.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Замечание:

Если возвращаемое значение будет больше, чем count, то будет вызвана ошибка E_WARNING, и данные свыше указанного количества будут утеряны.

Примечания

Замечание:

streamWrapper::stream_eof() вызывается сразу после вызова streamWrapper::stream_read(), чтобы проверить, достигнут ли конец файла EOF. Если метод не реализован, то полагается, что конец файла EOF достигнут.

Внимание

При чтении файла целиком (например, функцией
file_get_contents()), PHP будет вызывать
streamWrapper::stream_read() и вместе с ним
streamWrapper::stream_eof() в цикле, пока
streamWrapper::stream_read() возвращает
непустую строку. Возвращаемое из
streamWrapper::stream_eof() значение при этом
игнорируется.

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fgets() - Читает строку из файла


Перемещение на заданную позицию в потоке

  • « streamWrapper::stream_read
  • streamWrapper::stream_set_option »
  • PHP Manual
  • streamWrapper
  • Перемещение на заданную позицию в потоке

streamWrapper::stream_seek

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_seek — Перемещение на заданную позицию в потоке

Описание

public bool streamWrapper::stream_seek ( int $offset , int $whence = SEEK_SET )

Этот метод вызывается в результате вызова функции fseek().

Позицию чтения/записи в потоке необходимо обновлять в соответствии с аргументами offset и whence.

Список параметров

offset

Смещение в потоке, на которое требуется переместиться.

whence

Возможные значения:

  • SEEK_SET - Переместиться на позицию offset байт от начала файла.
  • SEEK_CUR - Переместиться на offset байт относительно текущей позиции.
  • SEEK_END - Переместиться на позицию offset байт от конца файла.

Возвращаемые значения

Возвращает TRUE, если позиция обновлена, FALSE в остальных случаях.

Примечания

Замечание:

Если не реализован, в качестве возвращаемого значения принимается FALSE.

Замечание:

В случае успеха
streamWrapper::stream_tell() будет вызвана сразу
после того, как streamWrapper::stream_seek() отработает.
Если выполнение streamWrapper::stream_tell() завершится
неудачей, то в вызывающую функцию будет возвращено значение FALSE

Замечание:

Не все операции перемещения в потоке приведут к вызову этой функции. В PHP по умолчанию включена буферизация потоков (см. также stream_set_read_buffer()), поэтому перемещение в потоке может означать лишь перемещение указателя в буфере.

Смотрите также

  • fseek() - Устанавливает смещение в файловом указателе


Изменение настроек потока

  • « streamWrapper::stream_seek
  • streamWrapper::stream_stat »
  • PHP Manual
  • streamWrapper
  • Изменение настроек потока

streamWrapper::stream_set_option

(PHP 5 >= 5.3.0, PHP 7)

streamWrapper::stream_set_option — Изменение настроек потока

Описание

public bool streamWrapper::stream_set_option ( int $option , int $arg1 , int $arg2 )

Этот метод вызывается при задании настроек потока.

Список параметров

option

Одно из значений:

  • STREAM_OPTION_BLOCKING (Метод вызван в результате вызова функции stream_set_blocking())
  • STREAM_OPTION_READ_TIMEOUT (Метод вызван в результате вызова функции stream_set_timeout())
  • STREAM_OPTION_WRITE_BUFFER (Метод вызван в результате вызова функции stream_set_write_buffer())

arg1

Если option принимает значение:

  • STREAM_OPTION_BLOCKING: запрошен режим блокировки (1 блокировать, 0 не блокировать).
  • STREAM_OPTION_READ_TIMEOUT: таймаут в секундах.
  • STREAM_OPTION_WRITE_BUFFER: режим буферизации (STREAM_BUFFER_NONE или STREAM_BUFFER_FULL).

arg2

Если option принимает занчение:

  • STREAM_OPTION_BLOCKING: это значение ни на что не влияет.
  • STREAM_OPTION_READ_TIMEOUT: таймаут в миллисекундах.
  • STREAM_OPTION_WRITE_BUFFER: требуемый размер буфера.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если option не реализован, метод должен возвращать FALSE.

Смотрите также

  • stream_set_blocking() - Устанавливает блокирующий/неблокирующий режим на потоке
  • stream_set_timeout() - Устанавливает значение тайм-аута на потоке
  • stream_set_write_buffer() - Устанавливает буферизацию файла при записи в указанный поток


Получение информации о файловом ресурсе

  • « streamWrapper::stream_set_option
  • streamWrapper::stream_tell »
  • PHP Manual
  • streamWrapper
  • Получение информации о файловом ресурсе

streamWrapper::stream_stat

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_stat — Получение информации о файловом ресурсе

Описание

public array streamWrapper::stream_stat ( void )

Этот метод вызывается в результате вызова функции fstat().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

См. stat().

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Смотрите также

  • stat() - Возвращает информацию о файле
  • streamwrapper::url_stat() - Получение информации о файле


Определение текущей позиции потока

  • « streamWrapper::stream_stat
  • streamWrapper::stream_truncate »
  • PHP Manual
  • streamWrapper
  • Определение текущей позиции потока

streamWrapper::stream_tell

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_tell — Определение текущей позиции потока

Описание

public int streamWrapper::stream_tell ( void )

Этот метод вызывается в результате вызова функции fseek() для определения текущей позиции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Должен возвращать текущую позицию потока.

Смотрите также

  • streamWrapper::stream_tell()


Усечение потока

  • « streamWrapper::stream_tell
  • streamWrapper::stream_write »
  • PHP Manual
  • streamWrapper
  • Усечение потока

streamWrapper::stream_truncate

(PHP 5 >= 5.4.0, PHP 7)

streamWrapper::stream_truncate — Усечение потока

Описание

public bool streamWrapper::stream_truncate ( int $new_size )

Будет срабатывать при усечении потока функцией ftruncate().

Список параметров

new_size

Новый размер.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ftruncate() - Урезает файл до указанной длинны


Запись в поток

  • « streamWrapper::stream_truncate
  • streamWrapper::unlink »
  • PHP Manual
  • streamWrapper
  • Запись в поток

streamWrapper::stream_write

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::stream_write — Запись в поток

Описание

public int streamWrapper::stream_write ( string $data )

Этот метод вызывается в результате запуска функции fwrite().

Замечание:

Не забывайте изменять текущую позицию потока на число успешно записанных байт.

Список параметров

data

Эти данные должны передаваться потоку уровнем ниже.

Замечание:

Если нижележащий поток не способен принять все данные, передавайте сколько возможно.

Возвращаемые значения

Должен возвращать количество успешно записанных байт или 0, если ничего записать не удалось.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Замечание:

Если возвращаемое значение окажется больше размера данных data, будет вызвана ошибка уровня E_WARNING, а возвращаемое значение будет усечено до этого размера.

Смотрите также

  • fwrite() - Бинарно-безопасная запись в файл


Удаление файла

  • « streamWrapper::stream_write
  • streamWrapper::url_stat »
  • PHP Manual
  • streamWrapper
  • Удаление файла

streamWrapper::unlink

(PHP 5, PHP 7)

streamWrapper::unlink — Удаление файла

Описание

public bool streamWrapper::unlink ( string $path )

Этот метод вызывается в результате вызова unlink().

Замечание:

Чтобы сообщения об ошибках соответствовали реальным ошибкам, этот метод не нужно определять в случаях, когда обертка не поддерживает удаление файлов.

Список параметров

path

URL удаляемого файла.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • unlink() - Удаляет файл
  • streamWrapper::rmdir() - Удаляет директорию


Получение информации о файле

  • « streamWrapper::unlink
  • Функции для работы с потоками »
  • PHP Manual
  • streamWrapper
  • Получение информации о файле

streamWrapper::url_stat

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

streamWrapper::url_stat — Получение информации о файле

Описание

public array streamWrapper::url_stat ( string $path , int $flags )

Этот метод вызывается в результате вызова любой из stat() функций, таких как:

  • chmod() (только в безопасном режиме)
  • copy()
  • fileperms()
  • fileinode()
  • filesize()
  • fileowner()
  • filegroup()
  • fileatime()
  • filemtime()
  • filectime()
  • filetype()
  • is_writable()
  • is_readable()
  • is_executable()
  • is_file()
  • is_dir()
  • is_link()
  • file_exists()
  • lstat()
  • stat()
  • SplFileInfo::getPerms()
  • SplFileInfo::getInode()
  • SplFileInfo::getSize()
  • SplFileInfo::getOwner()
  • SplFileInfo::getGroup()
  • SplFileInfo::getATime()
  • SplFileInfo::getMTime()
  • SplFileInfo::getCTime()
  • SplFileInfo::getType()
  • SplFileInfo::isWritable()
  • SplFileInfo::isReadable()
  • SplFileInfo::isExecutable()
  • SplFileInfo::isFile()
  • SplFileInfo::isDir()
  • SplFileInfo::isLink()
  • RecursiveDirectoryIterator::hasChildren()

Список параметров

path

Путь к файлу или его URL. Помните, что URL должен быть отделен символами :// , другие формы URL не поддерживаются.

flags

Хранит дополнительные флаги, установленные API потоков. Может хранить одно или несколько приведенных ниже значений, объединенных операцией ИЛИ.

Флаг | Описание
STREAM_URL_STAT_LINK | Для ресурсов, которые могут ссылаться на другие ресурсы (как например HTTP Location: forward, или символические ссылки файловой системы). Этот флаг указывает, что возвращаемая информация относится к самой ссылке, а не к ресурсу, на который она указывает. Этот используется при вызове функций lstat(), is_link() или filetype().
STREAM_URL_STAT_QUIET | Если флаг установлен, обертка не должна вызывать никаких ошибок. Если нет, можно вызывать сообщения об ошибках с помощью функции trigger_error().

Возвращаемые значения

Должна возвращать столько элементов, сколько возвращает вызывающая stat(). Неизвестные или недоступные значения необходимо приводить к разумным значениям (обычно к 0).

Ошибки

Вызывает ошибку уровня E_WARNING, если вызов к этому методу не удался (например, не реализован).

Примечания

Замечание:

Свойство streamWrapper::$context будет обновлено, если корректный контекст был передан в вызываемую функцию.

Смотрите также

  • stat() - Возвращает информацию о файле
  • streamwrapper::stream_stat() - Получение информации о файловом ресурсе


Функции для работы с потоками

Содержание

  • set_socket_blocking — Псевдоним stream_set_blocking
  • stream_bucket_append — Добавление бакета (bucket) в очередь бакетов потока (brigade)
  • stream_bucket_make_writeable — Вернуть ссылку на бакет в цепочке для дальнейшей работы с ним
  • stream_bucket_new — Создать новый бакет для использования с текущим потоком
  • stream_bucket_prepend — Добавление бакета (bucket) в начало очереди бакетов потока (brigade)
  • stream_context_create — Создаёт контекст потока
  • stream_context_get_default — Получает контекст потока по умолчанию
  • stream_context_get_options — Получает настройки для потока/обёртки/контекста
  • stream_context_get_params — Извлекает параметры из контекста
  • stream_context_set_default — Устанавливает контекст потоков по умолчанию
  • stream_context_set_option — Устанавливает опцию для потока/обёртки/контекста
  • stream_context_set_params — Устанавливает параметры для потока/обертки/контекста
  • stream_copy_to_stream — Копирует данные из одного потока в другой
  • stream_encoding — Устанавливает кодировку для потока
  • 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_notification_callback — Callback-функция для параметра контекста notification
  • stream_register_wrapper — Псевдоним stream_wrapper_register
  • stream_resolve_include_path — Составляет полное имя файла, используя пути включения
  • stream_select — Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
  • stream_set_blocking — Устанавливает блокирующий/неблокирующий режим на потоке
  • stream_set_chunk_size — Задание размера фрагмента данных потока
  • stream_set_read_buffer — Устанавливает буферизацию чтения файла на указанном потоке
  • stream_set_timeout — Устанавливает значение тайм-аута на потоке
  • stream_set_write_buffer — Устанавливает буферизацию файла при записи в указанный поток
  • stream_socket_accept — Принимает соединение на сокете, созданном c помощью функции stream_socket_server
  • stream_socket_client — Открывает соединение с интернет-сокетом или с доменным сокетом Unix
  • stream_socket_enable_crypto — Включает или отключает шифрование на уже подсоединённом сокете
  • stream_socket_get_name — Извлекает название локального или удалённого сокета
  • stream_socket_pair — Создаёт пару связанных неразличимых потоковых сокетов
  • stream_socket_recvfrom — Получает данные из сокета, подсоединённого или нет
  • stream_socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
  • stream_socket_server — Создаёт интернет-сокет или доменный сокет Unix
  • stream_socket_shutdown — Закрывает полнодуплексное соединение
  • stream_supports_lock — Определяет, поддерживает ли поток блокировку
  • stream_wrapper_register — Регистрирует обёртку URL, реализованную в виде PHP-класса
  • stream_wrapper_restore — Восстанавливает ранее разрегистрированную встроенную обёртку
  • stream_wrapper_unregister — Отменяет регистрацию обертки URL


Псевдоним stream_set_blocking

  • « Функции для работы с потоками
  • stream_bucket_append »
  • PHP Manual
  • Функции для работы с потоками
  • Псевдоним stream_set_blocking

set_socket_blocking

(PHP 4, PHP 5)

set_socket_blocking — Псевдоним stream_set_blocking()

Внимание

Этот псевдоним считается УСТАРЕВШИМ с PHP 5.3.0, и УДАЛЕН в PHP 7.0.0.

Описание

Эта функция является псевдонимом: stream_set_blocking()


Добавление бакета (bucket) в очередь бакетов потока (brigade)

  • « set_socket_blocking
  • stream_bucket_make_writeable »
  • PHP Manual
  • Функции для работы с потоками
  • Добавление бакета (bucket) в очередь бакетов потока (brigade)

stream_bucket_append

(PHP 5, PHP 7)

stream_bucket_append — Добавление бакета (bucket) в очередь бакетов потока (brigade)

Описание

void stream_bucket_append ( resource $brigade , object $bucket )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Вернуть ссылку на бакет в цепочке для дальнейшей работы с ним

  • « stream_bucket_append
  • stream_bucket_new »
  • PHP Manual
  • Функции для работы с потоками
  • Вернуть ссылку на бакет в цепочке для дальнейшей работы с ним

stream_bucket_make_writeable

(PHP 5, PHP 7)

stream_bucket_make_writeable — Вернуть ссылку на бакет в цепочке для дальнейшей работы с ним

Описание

object stream_bucket_make_writeable ( resource $brigade )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Создать новый бакет для использования с текущим потоком

  • « stream_bucket_make_writeable
  • stream_bucket_prepend »
  • PHP Manual
  • Функции для работы с потоками
  • Создать новый бакет для использования с текущим потоком

stream_bucket_new

(PHP 5, PHP 7)

stream_bucket_new — Создать новый бакет для использования с текущим потоком

Описание

object stream_bucket_new ( resource $stream , string $buffer )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Добавление бакета (bucket) в начало очереди бакетов потока (brigade)

  • « stream_bucket_new
  • stream_context_create »
  • PHP Manual
  • Функции для работы с потоками
  • Добавление бакета (bucket) в начало очереди бакетов потока (brigade)

stream_bucket_prepend

(PHP 5, PHP 7)

stream_bucket_prepend — Добавление бакета (bucket) в начало очереди бакетов потока (brigade)

Описание

void stream_bucket_prepend ( resource $brigade , object $bucket )

Добавление бакета (bucket) в начало очереди бакетов потока (brigade) Обычно она вызывается из php_user_filter::filter().

Список параметров

brigade

brigade - ресурс, указывающий на очередь бакетов, которая содержит один или несколько объектов bucket.

bucket

Бакет.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Примеры использования stream_bucket_prepend()

<?php

class foo extends php_user_filter {
  protected $calls = 0;
  public function filter($in, $out, &$consumed, $closing) {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $consumed += $bucket->datalen;
      if ($this->calls++ == 2) {
        // Этот бакет будет продублирован и появится перед всеми остальными.
        stream_bucket_prepend($in, $bucket);
      }
    }
    return PSFS_FEED_ME;
  }
}
stream_filter_register('test', 'foo');
print  file_get_contents('php://filter/read=test/resource=foo');
?>


Создаёт контекст потока

  • « stream_bucket_prepend
  • stream_context_get_default »
  • PHP Manual
  • Функции для работы с потоками
  • Создаёт контекст потока

stream_context_create

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_create — Создаёт контекст потока

Описание

resource stream_context_create ([ array $options [, array $params ]] )

Создаёт и возвращает контекст потока с опциями, указанными в массиве options.

Список параметров

options

Должен быть ассоциативным массивом в формате $arr['wrapper']['option'] = $value. Список доступных обработчиков и опций смотрите в разделе Опции контекста

Значение по умолчанию - пустой массив.

params

Должен быть ассоциативным массивом в формате $arr['parameter'] = $value. Обратитесь к разделу cОпции контекста за списком стандартных параметров потока.

Возвращаемые значения

resource контекста потока.

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный аргумент params.

Примеры

Пример #1 Использование stream_context_create()

<?php
$opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar\r\n"
  )
);

$context = stream_context_create($opts);

/* Отправляет http-запрос на домен www.example.com
   с дополнительными заголовкам, показанными выше */
$fp = fopen('http://www.example.com', 'r', false, $context);
fpassthru($fp);
fclose($fp);
?>

Смотрите также

  • stream_context_set_option() - Устанавливает опцию для потока/обёртки/контекста
  • Список поддерживаемых обработчиков (Поддерживаемые протоколы и обработчики (wrappers))
  • Опции контекста (Контекстные опции и параметры)


Получает контекст потока по умолчанию

  • « stream_context_create
  • stream_context_get_options »
  • PHP Manual
  • Функции для работы с потоками
  • Получает контекст потока по умолчанию

stream_context_get_default

(PHP 5 >= 5.1.0, PHP 7)

stream_context_get_default — Получает контекст потока по умолчанию

Описание

resource stream_context_get_default ([ array $options ] )

Возвращает контекст потока по умолчанию, который используется в любых файловых операциях (fopen(), file_get_contents(), etc...), вызванных без параметра контекста. Опции для контекста по умолчанию могут быть опционально указаны с этой функцией используя тот же синтаксис, что и для stream_context_create().

Список параметров

options
options должны быть ассоциативным массивом ассоциативных массивов в формате $arr['wrapper']['option'] = $value.

Замечание:

Начиная с PHP 5.3.0, функция stream_context_set_default() может быть использована для установки контекста по умолчанию.

Возвращаемые значения

Ресурс resource контекста потока.

Примеры

Пример #1 Пример использования stream_context_get_default()

<?php
$default_opts = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "Cookie: foo=bar",
    'proxy'=>"tcp://10.54.1.39:8000"
  )
);

$alternate_opts = array(
  'http'=>array(
    'method'=>"POST",
    'header'=>"Content-type: application/x-www-form-urlencoded\r\n" .
              "Content-length: " . strlen("baz=bomb"),
    'content'=>"baz=bomb"
  )
);

$default = stream_context_get_default($default_opts);
$alternate = stream_context_create($alternate_opts);

/* Отправляет обычный GET запрос на прокси-сервер 10.54.1.39
 * Для www.example.com используются опции контекста, указанные в $default_opts
 */
readfile('http://www.example.com');

/* Отправляет POST запрос напрямую к www.example.com
 * Используемые опции контекста определены в $alternate_opts
 */
readfile('http://www.example.com', false, $alternate);

?>

Смотрите также

  • stream_context_create() - Создаёт контекст потока
  • Список поддерживаемых обёрток с опциями контекста (Поддерживаемые протоколы и обработчики (wrappers)).


Получает настройки для потока/обёртки/контекста

  • « stream_context_get_default
  • stream_context_get_params »
  • PHP Manual
  • Функции для работы с потоками
  • Получает настройки для потока/обёртки/контекста

stream_context_get_options

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_get_options — Получает настройки для потока/обёртки/контекста

Описание

array stream_context_get_options ( resource $stream_or_context )

Возвращает массив настроек на указанном потоке или контексте.

Список параметров

stream_or_context

Поток stream или контекст context, у которого будут получены настройки

Возвращаемые значения

Возвращает ассоциативный массив с настройками.

Примеры

Пример #1 Пример использования stream_context_get_options()

<?php
$params = array("method" => "POST");

stream_context_set_default(array("http" => $params));

var_dump(stream_context_get_options(stream_context_get_default()));

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  ["http"]=>
  array(1) {
    ["method"]=>
    string(4) "POST"
  }
}


Извлекает параметры из контекста

  • « stream_context_get_options
  • stream_context_set_default »
  • PHP Manual
  • Функции для работы с потоками
  • Извлекает параметры из контекста

stream_context_get_params

(PHP 5 >= 5.3.0, PHP 7)

stream_context_get_params — Извлекает параметры из контекста

Описание

array stream_context_get_params ( resource $stream_or_context )

Возвращает информацию о параметрах и опциях из потока или контекста.

Список параметров

stream_or_context

Ресурс resource потока или контекстовый ресурс resource

Возвращаемые значения

Возвращает ассоциативный массив, содержащий все опции и параметры контекста.

Примеры

Пример #1 Пример использования stream_context_get_params()

Пример простого использования

<?php
$ctx = stream_context_create();
$params = array("notification" => "stream_notification_callback");
stream_context_set_params($ctx, $params);

var_dump(stream_context_get_params($ctx));
?>

Результатом выполнения данного примера будет что-то подобное:

array(2) {
  ["notification"]=>
  string(28) "stream_notification_callback"
  ["options"]=>
  array(0) {
  }
}

Смотрите также

  • stream_context_set_option() - Устанавливает опцию для потока/обёртки/контекста
  • stream_context_get_params()
  • stream_context_set_params() - Устанавливает параметры для потока/обертки/контекста


Устанавливает контекст потоков по умолчанию

  • « stream_context_get_params
  • stream_context_set_option »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает контекст потоков по умолчанию

stream_context_set_default

(PHP 5 >= 5.3.0, PHP 7)

stream_context_set_default — Устанавливает контекст потоков по умолчанию

Описание

resource stream_context_set_default ( array $options )

Устанавливает контекст потока по умолчанию, который будет использоваться всякий раз, когда файловые операции (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 (Поддерживаемые протоколы и обработчики (wrappers)).


Устанавливает опцию для потока/обёртки/контекста

  • « stream_context_set_default
  • stream_context_set_params »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает опцию для потока/обёртки/контекста

stream_context_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_set_option — Устанавливает опцию для потока/обёртки/контекста

Описание

bool stream_context_set_option ( resource $stream_or_context , string $wrapper , string $option , mixed $value )
bool stream_context_set_option ( resource $stream_or_context , array $options )

Устанавливает опцию на указанный контекст. Значение value устанавливается в option для wrapper

Список параметров

stream_or_context

Поток или ресурс контекста, к которому будут применены опции.

options

Опции, которые будут применены к контексту.

Замечание:

Параметр options должен быть ассоциативным массивом ассоциативных массивов в формате $arr['wrapper']['option'] = $value.

Обратитесь к разделу опции и параметры контекста, чтобы получить список опций потока.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Устанавливает параметры для потока/обертки/контекста

  • « stream_context_set_option
  • stream_copy_to_stream »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает параметры для потока/обертки/контекста

stream_context_set_params

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_context_set_params — Устанавливает параметры для потока/обертки/контекста

Описание

bool stream_context_set_params ( resource $stream_or_context , array $params )

Устанавливает параметры для указанного контекста.

Список параметров

stream_or_context

Поток или контекст, к которому будут применены параметры.

params

Массив параметров, которые будут установлены.

Замечание:

Массив params должен быть ассоциативным массивом со следующей структурой: $params['paramname'] = "paramvalue";.

Поддерживаемые параметры

Параметры | Назначение
notification | Название определённой пользователем callback-функции, которая будет вызвана, когда потоком посылается уведомление.
options | Массив опций и параметров контекста.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • stream_notification_callback() - Callback-функция для параметра контекста notification


Копирует данные из одного потока в другой

  • « stream_context_set_params
  • stream_encoding »
  • PHP Manual
  • Функции для работы с потоками
  • Копирует данные из одного потока в другой

stream_copy_to_stream

(PHP 5, PHP 7)

stream_copy_to_stream — Копирует данные из одного потока в другой

Описание

int stream_copy_to_stream ( resource $source , resource $dest [, int $maxlength = -1 [, int $offset = 0 ]] )

Делает копию до maxlength байт данных от текущей позиции (или от позиции offset, если указана) потока source в поток dest. Если maxlength не указан, будет скопировано всё оставшееся содержимое из source.

Список параметров

source

Исходный поток

dest

Поток назначения

maxlength

Максимальное количество байт для копирования

offset

Смещение, с которого будут копироваться данные

Возвращаемые значения

Возвращает общее количество скопированных байт, или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр offset

Примеры

Пример #1 Пример использования stream_copy_to_stream()

<?php
$src = fopen('http://www.example.com', 'r');
$dest1 = fopen('first1k.txt', 'w');
$dest2 = fopen('remainder.txt', 'w');

echo stream_copy_to_stream($src, $dest1, 1024) . " байт скопировано в first1k.txt\n";
echo stream_copy_to_stream($src, $dest2) . " байт скопировано в remainder.txt\n";

?>

Смотрите также

  • copy() - Копирует файл


Устанавливает кодировку для потока

  • « stream_copy_to_stream
  • stream_filter_append »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает кодировку для потока

stream_encoding

(Информация о версии неизвестна, возможно, только в SVN)

stream_encoding — Устанавливает кодировку для потока

Описание

bool stream_encoding ( resource $stream [, string $encoding ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Прикрепляет фильтр к потоку

  • « stream_encoding
  • stream_filter_prepend »
  • PHP Manual
  • Функции для работы с потоками
  • Прикрепляет фильтр к потоку

stream_filter_append

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_filter_append — Прикрепляет фильтр к потоку

Описание

resource stream_filter_append ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] )

Добавляет filtername в список фильтров, прикреплённых к stream.

Список параметров

stream

Целевой поток.

filtername

Название фильтра.

read_write

По умолчанию stream_filter_append() будет прикреплять фильтр к цепочке фильтров чтения, если файл был открыт для чтения (т. е. режим файла: r, и/или +). Фильтр также будет прикреплён к цепочке фильтров записи, если файл был открыт для записи (т. е. режим файла: w, a, и/или +). Константы STREAM_FILTER_READ, STREAM_FILTER_WRITE, и/или STREAM_FILTER_ALL также могут быть переданы в параметре read_write, чтобы переопределить это поведение.

params

Этот фильтр будет добавлен с указанными params к концу списка и, таким образом, будет вызван последним в списке потоковых операций. Чтобы добавить фильтр в начало списка, используйте stream_filter_prepend().

Возвращаемые значения

Возвращает ресурс в случае успеха или FALSE при неудаче. Ресурс должен быть использован для ссылки на этот экземпляр фильтра во время вызова stream_filter_remove().

Вернет FALSE, если stream не является ресурсом или если filtername не найден.

Список изменений

Версия | Описание
5.1.0 | До PHP 5.1.0 эта функция возвращает TRUE в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Контроль применения фильтров

<?php
/* Открываем тестовый файл для чтения и записи */
$fp = fopen('test.txt', 'w+');

/* Прикрепляем фильтр ROT13 к
 * цепочке фильтров записи, но не к
 * цепочке фильтров чтения */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Запишем простую строку в файл
 * она будет преобразована при помощи ROT13
 * на выходе */
fwrite($fp, "Это тест\n");

/* Назад к началу файла */
rewind($fp);

/* Прочитаем содержимое файла.
 * Если фильтр также был бы прикреплён к
 * цепочке фильтров чтения, мы бы увидели
 * преобразованный при помощи ROT13 текст в исходном состоянии */
fpassthru($fp);

fclose($fp);

/* Ожидаемый вывод
   ---------------

Guvf vf n grfg

 */
?>

Примечания

Замечание: При использовании пользовательских фильтров
Сначала должна быть вызвана функция stream_filter_register() для того, чтобы зарегистрировать желаемый пользовательский фильтр на имя filtername.

Замечание: Потоковые данные читаются из ресурсов (и локальных, и удалённых) по кускам, и любые невостребованные данные сохраняются во внутренних буферах. Когда новый фильтр добавляется в конец потока, то данные во внутренних буферах обрабатываются через новый фильтр. Это отличается от поведения функции stream_filter_prepend().

Замечание: Когда фильтр добавляется для чтения и записи, создаются два экземпляра фильтра. Функция stream_filter_append() должна быть вызвана дважды с STREAM_FILTER_READ и STREAM_FILTER_WRITE чтобы получить оба ресурса фильтра.

Смотрите также

  • stream_filter_register() - Регистрирует потоковый фильтр, определённый пользователем
  • stream_filter_prepend() - Прикрепляет фильтр к потоку
  • stream_get_filters() - Извлекает список зарегистрированных фильтров


Прикрепляет фильтр к потоку

  • « stream_filter_append
  • stream_filter_register »
  • PHP Manual
  • Функции для работы с потоками
  • Прикрепляет фильтр к потоку

stream_filter_prepend

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_filter_prepend — Прикрепляет фильтр к потоку

Описание

resource stream_filter_prepend ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] )

Добавляет фильтр filtername к списку фильтров, прикреплённых к потоку stream.

Список параметров

stream

Целевой поток.

filtername

Название потока.

read_write

По умолчанию, функция stream_filter_prepend() будет прикреплять фильтр к цепочке фильтров чтения, если файл был открыт для чтения (т. е. режим файла: r, и/или +). Фильтр также будет прикреплён к цепочке фильтров записи, если файл был открыт для записи (т. е. режим файла: w, a, и/или +). Константы STREAM_FILTER_READ, STREAM_FILTER_WRITE, и/или STREAM_FILTER_ALL также могут быть переданы в параметре read_write, чтобы переопределить это поведение. Смотрите функцию stream_filter_append() для примера использования этого параметра.

params

Этот фильтр будет добавлен с указанными параметрами params к началу списка и, таким образом, будет вызван первым во время потоковых операций. Для того, чтобы добавить фильтр к концу списка, используйте stream_filter_append().

Возвращаемые значения

Возвращает ресурс в случае успеха или FALSE при неудаче. Ресурс должен быть использован для ссылки на этот экземпляр фильтра во время вызова stream_filter_remove().

Вернет FALSE, если stream не является ресурсом или если filtername не найден.

Список изменений

Версия | Описание
5.1.0 | До PHP 5.1.0 эта функция возвращает TRUE в случае успешного выполнения или FALSE в случае возникновения ошибки.

Примечания

Замечание: При использовании пользовательских фильтров
Сначала должна быть вызвана функция stream_filter_register() для того, чтобы зарегистрировать желаемый пользовательский фильтр на имя filtername.

Замечание: Потоковые данные читаются из ресурсов (и локальных, и удалённых) по кускам, и любые невостребованные данные сохраняются во внутренних буферах. Когда новый фильтр добавляется в начало потока, данные во внутренних буферах, который уже были обработаны через другие фильтры, не будут обработаны через новый фильтр. Это отличается от поведения функции stream_filter_append().

Замечание: Когда фильтр добавляется для чтения и записи, создаются два экземпляра фильтра. Функция stream_filter_append() должна быть вызвана дважды с STREAM_FILTER_READ и STREAM_FILTER_WRITE чтобы получить оба ресурса фильтра.

Смотрите также

  • stream_filter_register() - Регистрирует потоковый фильтр, определённый пользователем
  • stream_filter_append() - Прикрепляет фильтр к потоку


Регистрирует потоковый фильтр, определённый пользователем

  • « stream_filter_prepend
  • stream_filter_remove »
  • PHP Manual
  • Функции для работы с потоками
  • Регистрирует потоковый фильтр, определённый пользователем

stream_filter_register

(PHP 5, PHP 7)

stream_filter_register — Регистрирует потоковый фильтр, определённый пользователем

Описание

bool stream_filter_register ( string $filtername , string $classname )

stream_filter_register() позволяет вам реализовать ваш собственный фильтр на любом зарегистрированном потоке, используемом со всеми другими функциями файловой системы (такими как fopen(), fread() и т. д.).

Список параметров

filtername

Название регистрируемого фильтра.

classname

Для того, чтобы реализовать фильтр, вам нужно определить класс как расширение php_user_filter c целым рядом функций-членов. При выполнении операций чтения/записи на потоке, к которому прикреплён ваш фильтр, PHP будет передавать данные через ваш фильтр (и через любые другие фильтры, прикреплённые к потоку), так что данные могут быть изменены как требуется. Вам необходимо реализовать методы точно как описано в php_user_filter. Иная реализация приведёт к непредсказуемому поведению.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

stream_filter_register() будет возвращать FALSE если фильтр с именем filtername уже определён.

Примеры

Пример #1 Фильтр для перевода букв в верхний регистр в потоке foo-bar.txt

Пример ниже реализует фильтр с названием strtoupper на файловом потоке foo-bar.txt, который будет переводить в заглавные все буквы, которые пишутся/читаются из этого потока.

<?php

/* Определяем наш класс фильтра */
class strtoupper_filter extends php_user_filter {
  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      $bucket->data = strtoupper($bucket->data);
      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }
}

/* Регистрируем наш фильтр в  PHP */
stream_filter_register("strtoupper", "strtoupper_filter")
    or die("Не удалось зарегистрировать фильтр");

$fp = fopen("foo-bar.txt", "w");

/* Присоединяем зарегистрированный фильтр к только что открытому потоку */
stream_filter_append($fp, "strtoupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Читаем содержимое снова
 */
readfile("foo-bar.txt");

?>

Результат выполнения данного примера:

LINE1
WORD - 2
EASY AS 123

Пример #2 Регистрация стандартного фильтра, соответствующего множественным именам фильтров.

<?php

/* Определяем наш класс фильтра */
class string_filter extends php_user_filter {
  var $mode;

  function filter($in, $out, &$consumed, $closing)
  {
    while ($bucket = stream_bucket_make_writeable($in)) {
      if ($this->mode == 1) {
        $bucket->data = strtoupper($bucket->data);
      } elseif ($this->mode == 0) {
        $bucket->data = strtolower($bucket->data);
      }

      $consumed += $bucket->datalen;
      stream_bucket_append($out, $bucket);
    }
    return PSFS_PASS_ON;
  }

  function onCreate()
  {
    if ($this->filtername == 'str.toupper') {
      $this->mode = 1;
    } elseif ($this->filtername == 'str.tolower') {
      $this->mode = 0;
    } else {
      /* Был вызван какой-то другой фильтр str.*,
         возвращаем ошибку, чтобы  PHP мог продолжить его поиск */
      return false;
    }

    return true;
  }
}

/* Регистрируем наш фильтр в  PHP */
stream_filter_register("str.*", "string_filter")
    or die("Не удалось зарегистрировать фильтр");

$fp = fopen("foo-bar.txt", "w");

/* Присоединяем зарегистрированный фильтр к только что открытому потоку
   Мы могли бы использовать здесь  str.tolower */
stream_filter_append($fp, "str.toupper");

fwrite($fp, "Line1\n");
fwrite($fp, "Word - 2\n");
fwrite($fp, "Easy As 123\n");

fclose($fp);

/* Читаем содержимое снова
 */
readfile("foo-bar.txt");
?>

Результат выполнения данного примера:

LINE1
WORD - 2
EASY AS 123

Смотрите также

  • stream_wrapper_register() - Регистрирует обёртку URL, реализованную в виде PHP-класса
  • stream_filter_append() - Прикрепляет фильтр к потоку
  • stream_filter_prepend() - Прикрепляет фильтр к потоку


Удаляет фильтр из потока

  • « stream_filter_register
  • stream_get_contents »
  • PHP Manual
  • Функции для работы с потоками
  • Удаляет фильтр из потока

stream_filter_remove

(PHP 5 >= 5.1.0, PHP 7)

stream_filter_remove — Удаляет фильтр из потока

Описание

bool stream_filter_remove ( resource $stream_filter )

Удаляет потоковый фильтр, ранее добавленный к потоку при помощи функции stream_filter_prepend() или stream_filter_append(). Любые данные, оставшиеся во внутреннем буфере фильтра, будут отправлены в следующий фильтр до его удаления.

Список параметров

stream_filter

Потоковый фильтр для удаления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Динамическое изменение фильтров потока

<?php
/* Открытие тестового файла для чтения и записи */
$fp = fopen("test.txt", "rw");

$rot13_filter = stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
fwrite($fp, "This is ");
stream_filter_remove($rot13_filter);
fwrite($fp, "a test\n");

rewind($fp);
fpassthru($fp);
fclose($fp);

?>

Результат выполнения данного примера:

Guvf vf a test

Смотрите также

  • stream_filter_register() - Регистрирует потоковый фильтр, определённый пользователем
  • stream_filter_append() - Прикрепляет фильтр к потоку
  • stream_filter_prepend() - Прикрепляет фильтр к потоку


Читает оставшуюся часть потока в строку

  • « stream_filter_remove
  • stream_get_filters »
  • PHP Manual
  • Функции для работы с потоками
  • Читает оставшуюся часть потока в строку

stream_get_contents

(PHP 5, PHP 7)

stream_get_contents — Читает оставшуюся часть потока в строку

Описание

string stream_get_contents ( resource $handle [, int $maxlength = -1 [, int $offset = -1 ]] )

Похожа на функцию file_get_contents(), за исключением того, что stream_get_contents() работает с уже открытым ресурсом потока и возвращает оставшуюся часть содержимого в строку размером до maxlength байт и начиная с указанного смещения offset.

Список параметров

handle (resource)

Ресурс потока (например, полученный при помощи функции fopen())

maxlength (integer)

Максимальное количество байт для чтения. По умолчанию -1 (прочитать весь оставшийся буфер).

offset (integer)

Перейти к указанному смещению перед чтением. Если это число отрицательное, то переход не произойдёт и чтение начнётся с текущей позиции.

Возвращаемые значения

Возвращает строку или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.1.0 | Был добавлен параметр offset.

Примеры

Пример #1 Пример использования stream_get_contents()

<?php

if ($stream = fopen('http://www.example.com', 'r')) {
    // вывести всю страницу начиная со смещения 10
    echo stream_get_contents($stream, -1, 10);

    fclose($stream);
}

if ($stream = fopen('http://www.example.net', 'r')) {
    // вывести первые 5 байт
    echo stream_get_contents($stream, 5);

    fclose($stream);
}

?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • fgets() - Читает строку из файла
  • fread() - Бинарно-безопасное чтение файла
  • fpassthru() - Выводит все оставшиеся данные из файлового указателя


Извлекает список зарегистрированных фильтров

  • « stream_get_contents
  • stream_get_line »
  • PHP Manual
  • Функции для работы с потоками
  • Извлекает список зарегистрированных фильтров

stream_get_filters

(PHP 5, PHP 7)

stream_get_filters — Извлекает список зарегистрированных фильтров

Описание

array stream_get_filters ( void )

Извлекает список зарегистрированных фильтров на запущенной системе.

Возвращаемые значения

Возвращает индексированный массив, содержащий названия всех доступных системных фильтров потока.

Примеры

Пример #1 Пример использования функции stream_get_filters()

<?php
$streamlist = stream_get_filters();
print_r($streamlist);
?>

Результатом выполнения данного примера будет что-то подобное:

Array (
  [0] => string.rot13
  [1] => string.toupper
  [2] => string.tolower
  [3] => string.base64
  [4] => string.quoted-printable
)

Смотрите также

  • stream_filter_register() - Регистрирует потоковый фильтр, определённый пользователем
  • stream_get_wrappers() - Извлекает список зарегистрированных потоков


Получает строку из потокового ресурса до указанного разделителя

  • « stream_get_filters
  • stream_get_meta_data »
  • PHP Manual
  • Функции для работы с потоками
  • Получает строку из потокового ресурса до указанного разделителя

stream_get_line

(PHP 5, PHP 7)

stream_get_line — Получает строку из потокового ресурса до указанного разделителя

Описание

string stream_get_line ( resource $handle , int $length [, string $ending ] )

Получает строку из указанного дескриптора.

Чтение заканчивается, когда прочитано length количество байт, когда строка, указанная в параметре ending найдена (она не включается в возвращаемое значение), или достигнут EOF (смотря что произойдет раньше).

Функция очень похожа на функцию fgets(), кроме того, что она позволяет использовать разделители строк, отличающиеся от стандартных \n, \r, и \r\n, и не возвращает сам разделитель.

Список параметров

handle

Допустимый дескриптор файла.

length

Количество байт для чтения из дескриптора.

ending

Необязательный разделитель строки.

Возвращаемые значения

Возвращает строку длиной до length байт, прочитанную из файла указанного параметром handle.

Если возникает ошибка, возвращает FALSE.

Смотрите также

  • fread() - Бинарно-безопасное чтение файла
  • fgets() - Читает строку из файла
  • fgetc() - Считывает символ из файла


Извлекает заголовок/метаданные из потоков/файловых указателей

  • « stream_get_line
  • stream_get_transports »
  • PHP Manual
  • Функции для работы с потоками
  • Извлекает заголовок/метаданные из потоков/файловых указателей

stream_get_meta_data

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_get_meta_data — Извлекает заголовок/метаданные из потоков/файловых указателей

Описание

array stream_get_meta_data ( resource $stream )

Возвращает информацию о существующем потоке stream.

Список параметров

stream

Переменная stream может быть любым потоком, созданным при помощи функций fopen(), fsockopen() и pfsockopen().

Возвращаемые значения

Получаемый массив содержит следующие элементы:

  • timed_out (bool) - TRUE если поток превысил время ожидания данных во время последнего вызова функции fread() или fgets().

  • blocked (bool) - TRUE если поток находится в режиме блокирующего ввода-вывода. Смотрите функцию stream_set_blocking().

  • eof (bool) - TRUE если поток достиг конца файла. Заметьте, что для потоков типа socket этот член может быть равен TRUE даже когда unread_bytes не равно нулю. Для того, чтобы определить есть ли ещё данные для чтения, используйте feof() вместо чтения этого элемента.

  • unread_bytes (int) - количество байт, находящихся сейчас в собственном внутреннем буфере PHP.

    Замечание: Вы не должны использовать это значение в скрипте.

  • stream_type (string) - метка, описывающая внутреннюю реализацию потока.

  • wrapper_type (string) - метка, описывающая реализацию обёртки протокола, наложенного на поток. Смотрите раздел Поддерживаемые протоколы и обработчики (wrappers) для подробной информации об обёртках.

  • wrapper_data (mixed) - специфические для обёртки данные, прикреплённые к этому потоку. Смотрите раздел Поддерживаемые протоколы и обработчики (wrappers) для подробной информации об обёртках и их данных.

  • mode (string) - тип доступа, требуемый для этого потока (смотрите таблицу 1 в описании функции fopen())

  • seekable (bool) - можно ли перемещаться по текущему потоку.

  • uri (string) - URI/имя файла, связанное с этим stream.

Примеры

Пример #1 Пример использования функцииstream_get_meta_data()

<?php
$url = 'http://www.example.com/';

if (!$fp = fopen($url, 'r')) {
    trigger_error("Невозможно открыть URL ($url)", E_USER_ERROR);
}

$meta = stream_get_meta_data($fp);

print_r($meta);

fclose($fp);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [wrapper_data] => Array
        (
            [0] => HTTP/1.1 200 OK
            [1] => Server: Apache/2.2.3 (Red Hat)
            [2] => Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
            [3] => ETag: "b300b4-1b6-4059a80bfd280"
            [4] => Accept-Ranges: bytes
            [5] => Content-Type: text/html; CHARSET=Windows-1251
            [6] => Set-Cookie: FOO=BAR; expires=Fri, 21-Dec-2012 12:00:00 GMT; path=/; domain=.example.com
            [6] => Connection: close
            [7] => Date: Fri, 16 Oct 2009 12:00:00 GMT
            [8] => Age: 1164
            [9] => Content-Length: 438
        )

    [wrapper_type] => http
    [stream_type] => tcp_socket/ssl
    [mode] => r
    [unread_bytes] => 438
    [seekable] =>
    [uri] => http://www.example.com/
    [timed_out] =>
    [blocked] => 1
    [eof] =>
)

Примечания

Замечание:

Эта функция НЕ будет работать с сокетами, созданными при помощи расширения Socket.

Смотрите также

  • get_headers() - Возвращает все заголовки из ответа сервера на HTTP-запрос
  • $http_response_header


Возвращает список зарегистрированных транспортов сокета

  • « stream_get_meta_data
  • stream_get_wrappers »
  • PHP Manual
  • Функции для работы с потоками
  • Возвращает список зарегистрированных транспортов сокета

stream_get_transports

(PHP 5, PHP 7)

stream_get_transports — Возвращает список зарегистрированных транспортов сокета

Описание

array stream_get_transports ( void )

Возвращает индексированный массив, содержащий названия всех транспортов сокета, доступных на работающей системе.

Возвращаемые значения

Возвращает индексированный массив названий транспортов сокета.

Примеры

Пример #1 Пример использования stream_get_transports()

<?php
$xportlist = stream_get_transports();
print_r($xportlist);
?>

Результатом выполнения данного примера будет что-то подобное:

Array (
  [0] => tcp
  [1] => udp
  [2] => unix
  [3] => udg
)

Смотрите также

  • stream_get_filters() - Извлекает список зарегистрированных фильтров
  • stream_get_wrappers() - Извлекает список зарегистрированных потоков


Извлекает список зарегистрированных потоков

  • « stream_get_transports
  • stream_is_local »
  • PHP Manual
  • Функции для работы с потоками
  • Извлекает список зарегистрированных потоков

stream_get_wrappers

(PHP 5, PHP 7)

stream_get_wrappers — Извлекает список зарегистрированных потоков

Описание

array stream_get_wrappers ( void )

Извлекает список зарегистрированных потоков, доступных на запущенной системе.

Возвращаемые значения

Возвращает индексированный массив, содержащий названия все обёрток потоков, доступных на запущенной системе.

Примеры

Пример #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_notification_callback »
  • PHP Manual
  • Функции для работы с потоками
  • Проверяет, является ли поток локальным потоком

stream_is_local

(PHP 5 >= 5.2.4, PHP 7)

stream_is_local — Проверяет, является ли поток локальным потоком

Описание

bool stream_is_local ( mixed $stream_or_url )

Проверяет, является ли поток или URL локальным или нет.

Список параметров

stream_or_url

Ресурс потока (resource) или URL для проверки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 stream_is_local() example

Пример простого использования.

<?php
var_dump(stream_is_local("http://example.com"));
var_dump(stream_is_local("/etc"));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Callback-функция для параметра контекста notification

  • « stream_is_local
  • stream_register_wrapper »
  • PHP Manual
  • Функции для работы с потоками
  • Callback-функция для параметра контекста notification

stream_notification_callback

(PHP 5 >= 5.2.0, PHP 7)

stream_notification_callback — Callback-функция для параметра контекста notification

Описание

void stream_notification_callback ( int $notification_code , int $severity , string $message , int $message_code , int $bytes_transferred , int $bytes_max )

Callback-функция типа callable, используемая параметром контекста notification, вызываемая во время события.

Замечание:

Это не настоящая функция, а только прототип того, как должна быть реализована функция.

Список параметров

notification_code

Одна из констант оповещения STREAM_NOTIFY_*.

severity

Одна из констант оповещения STREAM_NOTIFY_SEVERITY_*.

message

Передаётся, если для события доступно описывающее сообщение.

message_code

Передаётся, если для события доступен код описывающего сообщения.

Значение данной величины зависит от используемой обёртки.

bytes_transferred

Если доступно, то параметр bytes_transferred будет заполнен.

bytes_max

Если доступно, то параметр bytes_max будет заполнен.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования stream_notification_callback()

<?php
function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {

    switch($notification_code) {
        case STREAM_NOTIFY_RESOLVE:
        case STREAM_NOTIFY_AUTH_REQUIRED:
        case STREAM_NOTIFY_COMPLETED:
        case STREAM_NOTIFY_FAILURE:
        case STREAM_NOTIFY_AUTH_RESULT:
            var_dump($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max);
            /* Игнорируем */
            break;

        case STREAM_NOTIFY_REDIRECTED:
            echo "Перенаправлены на: ", $message;
            break;

        case STREAM_NOTIFY_CONNECT:
            echo "Подсоединились...";
            break;

        case STREAM_NOTIFY_FILE_SIZE_IS:
            echo "Получили размер файла: ", $bytes_max;
            break;

        case STREAM_NOTIFY_MIME_TYPE_IS:
            echo "Получили mime-тип файла: ", $message;
            break;

        case STREAM_NOTIFY_PROGRESS:
            echo "Пошёл прогресс, пока загружено ", $bytes_transferred, " байт";
            break;
    }
    echo "\n";
}

$ctx = stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

file_get_contents("http://php.net/contact", false, $ctx);
?>

Результатом выполнения данного примера будет что-то подобное:

Подсоединились...
Получили mime-тип файла: text/html; CHARSET=Windows-1251
Перенаправлены на: http://no.php.net/contact
Подсоединились...
Получили размер файла: 0
Получили mime-тип файла: text/html; CHARSET=Windows-1251
Перенаправлены на: http://no.php.net/contact.php
Подсоединились...
Получили размер файла: 4589
Получили mime-тип файла: text/html;CHARSET=Windows-1251
Пошёл прогресс, пока загружено 0 байт
Пошёл прогресс, пока загружено 0 байт
Пошёл прогресс, пока загружено 0 байт
Пошёл прогресс, пока загружено 1440 байт
Пошёл прогресс, пока загружено 2880 байт
Пошёл прогресс, пока загружено 4320 байт
Пошёл прогресс, пока загружено 5760 байт
Пошёл прогресс, пока загружено 6381 байт
Пошёл прогресс, пока загружено 7002 байт

Пример #2 Простой индикатор для загрузчика файлов из командной строки

<?php
function usage($argv) {
    echo "Использование:\n";
    printf("\tphp %s <http://example.com/file> <localfile>\n", $argv[0]);
    exit(1);
}

function stream_notification_callback($notification_code, $severity, $message, $message_code, $bytes_transferred, $bytes_max) {
    static $filesize = null;

    switch($notification_code) {
    case STREAM_NOTIFY_RESOLVE:
    case STREAM_NOTIFY_AUTH_REQUIRED:
    case STREAM_NOTIFY_COMPLETED:
    case STREAM_NOTIFY_FAILURE:
    case STREAM_NOTIFY_AUTH_RESULT:
        /* Игнорируем */
        break;

    case STREAM_NOTIFY_REDIRECTED:
        echo "Перенаправлены на: ", $message, "\n";
        break;

    case STREAM_NOTIFY_CONNECT:
        echo "Подсоединились...\n";
        break;

    case STREAM_NOTIFY_FILE_SIZE_IS:
        $filesize = $bytes_max;
        echo "Размер файла: ", $filesize, "\n";
        break;

    case STREAM_NOTIFY_MIME_TYPE_IS:
        echo "Mime-тип файла: ", $message, "\n";
        break;

    case STREAM_NOTIFY_PROGRESS:
        if ($bytes_transferred > 0) {
            if (!isset($filesize)) {
                printf("\rНеизвестный размер файла.. Закачано %2d Кб..", $bytes_transferred/1024);
            } else {
                $length = (int)(($bytes_transferred/$filesize)*100);
                printf("\r[%-100s] %d%% (%2d/%2d kb)", str_repeat("=", $length). ">", $length, ($bytes_transferred/1024), $filesize/1024);
            }
        }
        break;
    }
}

isset($argv[1], $argv[2]) or usage($argv);

$ctx = stream_context_create();
stream_context_set_params($ctx, array("notification" => "stream_notification_callback"));

$fp = fopen($argv[1], "r", false, $ctx);
if (is_resource($fp) && file_put_contents($argv[2], $fp)) {
    echo "\nГотово!\n";
    exit(0);
}

$err = error_get_last();
echo "\nОшшшшибкка..\n", $err["message"], "\n";
exit(1);
?>

Выполнение вышеприведённого примера со следующими опциями: php -n fetch.php http://no2.php.net/get/php-5-LATEST.tar.bz2/from/this/mirror php-latest.tar.bz2 выведет что-то похожее на это:

Подсоединились...
Mime-тип файла: text/html; CHARSET=Windows-1251
Перенаправлены на: http://no2.php.net/distributions/php-5.2.5.tar.bz2
Подсоединились...
Размер файла: 7773024
Mime-тип файла: application/octet-stream
[========================================>                                                           ] 40% (3076/7590 kb)

Смотрите также

  • Параметры контекста


Псевдоним stream_wrapper_register

  • « stream_notification_callback
  • stream_resolve_include_path »
  • PHP Manual
  • Функции для работы с потоками
  • Псевдоним stream_wrapper_register

stream_register_wrapper

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_register_wrapper — Псевдоним stream_wrapper_register()

Описание

Эта функция является псевдонимом: stream_wrapper_register().


Составляет полное имя файла, используя пути включения

  • « stream_register_wrapper
  • stream_select »
  • PHP Manual
  • Функции для работы с потоками
  • Составляет полное имя файла, используя пути включения

stream_resolve_include_path

(PHP 5 >= 5.3.2, PHP 7)

stream_resolve_include_path — Составляет полное имя файла, используя пути включения

Описание

string stream_resolve_include_path ( string $filename )

Составляет полное имя файла из параметра filename, используя пути включения в соответствии с теми же правилами, что и функции fopen()/include.

Список параметров

filename

Имя файла, которое необходимо преобразовать.

Возвращаемые значения

Возвращает строку string, содержащую полученное абсолютное имя файла, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования stream_resolve_include_path()

Основной пример использования.

<?php
var_dump(stream_resolve_include_path("test.php"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(22) "/var/www/html/test.php"


Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec

  • « stream_resolve_include_path
  • stream_set_blocking »
  • PHP Manual
  • Функции для работы с потоками
  • Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec

stream_select

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_select — Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec

Описание

int stream_select ( array &$read , array &$write , array &$except , int $tv_sec [, int $tv_usec = 0 ] )

Функция stream_select() получает массивы потоков и ждёт изменения их статуса. Её работа эквивалентна работе функции socket_select(), за исключением того, что она работает с потоками.

Список параметров

read

Потоки, перечисленные в массиве read будут отслеживаться на предмет появления символов, доступных для чтения (точнее отслеживается, что чтение не будет блокироваться - в частности, потоковый ресурс также готов для чтения в конце файла, но в этом случае функция fread() будет возвращать строку нулевой длины).

write

Потоки, перечисленные в массиве write, будут отслеживаться на предмет того, что запись в них не будет блокироваться.

except

Потоки, перечисленные в массиве except, будут отслеживаться на предмет поступления высокоприоритетных исключительных (внеполосных или "out-of-band") данных.

Замечание:

Когда stream_select() возвращается, массивы read, write и except изменяются для того, чтобы указать, какие потоковые ресурсы на самом деле изменили статус.

Вам нет необходимости передавать каждый массив функции stream_select(). Вы можете использовать вместо этого пустые массивы или NULL. Также не забывайте, что эти массивы передаются по ссылке и будут изменены после выполнения функцииstream_select().
tv_sec

Параметры tv_sec и tv_usec вместе формируют параметр timeout, tv_sec указывает число секунд, а tv_usec - число микросекунд. Параметр timeout - это верхняя граница времени, которое функция stream_select() будет ожидать до возвращения. Если параметры tv_sec и tv_usec оба установлены в 0, то функция stream_select() не будет ожидать данных - вместо этого она вернётся немедленно, указывая текущий статус потоков.

Если параметр tv_sec равен NULL, то функция stream_select() может выполняться неопределённое время, возвращаясь только тогда, когда происходит событие на одном из отслеживаемых потоков (или если системный вызов прерывается сигналом).

Внимание

Использование значения тайм-аута 0 позволяет вам мгновенно опросить статус потоков, однако ПЛОХАЯ идея использовать значение тайм-аута 0 в цикле, так как это заставит ваш скрипт потреблять слишком много процессорного времени.

Гораздо лучше указать значение тайм-аута в несколько секунд, хотя если вам нужно проверять и одновременно запускать другой код, использование тайм-аута как минимум 200000 микросекунд поможет уменьшить использование процессорного времени вашим скриптом.

Запомните, что значение тайм-аута - это максимальное время, которое будет затрачено. Функция stream_select() вернётся как только запрошенные потоки будут готовы к использованию.

tv_usec

Смотрите описание параметра tv_sec.

Возвращаемые значения

В случае успеха функция stream_select() возвращает количество потоковых ресурсов, содержащееся в изменённых массивах, которое может равно нулю, если истёк тайм-аут до того, как произошло что-то интересное. В случае ошибки возвращается FALSE и возникает предупреждение (это может случится, если системный вызов прерывается входящим сигналом).

Примеры

Пример #1 Пример использованияstream_select()

Этот пример проверяет, что получены данные для чтения на потоках $stream1 или $stream2. Так как значение тайм-аута равно 0, функция возвратится немедленно:

<?php
/* Подготовить массив для чтения */
$read   = array($stream1, $stream2);
$write  = NULL;
$except = NULL;
if (false === ($num_changed_streams = stream_select($read, $write, $except, 0))) {
    /* Обработка ошибок */
} elseif ($num_changed_streams > 0) {
    /* Как минимум на одном из потоков произошло что-то интересное */
}
?>

Примечания

Замечание:

По причине ограничения в текущем Zend Engine невозможно передать постоянную NULL непосредственно как параметр в функцию, которая ожидает, что этот параметр будет передан по ссылке. Вместо этого используйте временную переменную или выражение, в котором крайний левый член будет временной переменной:

<?php
$e = NULL;
stream_select($r, $w, $e, 0);
?>

Замечание:

Убедитесь, что используете оператор === при проверке на ошибку. Так как функция stream_select() может возвращать 0, сравнение с использованием == может возвращать TRUE:

<?php
$e = NULL;
if (false === stream_select($r, $w, $e, 0)) {
    echo "Произошла ошибка при вызове stream_select()\n";
}
?>

Замечание:

Если вы читаете/пишете в поток, возвращаемый в массивах, знайте, что они не обязательно читают/пишут полное количество данных, которое вы запросили. Будьте готовы к тому, чтобы иметь возможность читать/писать даже по одному байту.

Замечание:

Некоторые потоки (например, zlib) не могут быть выбраны этой функцией.

Замечание:

Совместимость с Windows: функция stream_select(), используемая на канале, возвращённом из функции proc_open(), может вызвать потерю данных под Windows 98.

Использование функции stream_select() на файловых дескрипторах, возвращённых функцией proc_open() не удастся и возвратит FALSE под Windows.

Смотрите также

  • stream_set_blocking() - Устанавливает блокирующий/неблокирующий режим на потоке


Устанавливает блокирующий/неблокирующий режим на потоке

  • « stream_select
  • stream_set_chunk_size »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает блокирующий/неблокирующий режим на потоке

stream_set_blocking

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_set_blocking — Устанавливает блокирующий/неблокирующий режим на потоке

Описание

bool stream_set_blocking ( resource $stream , bool $mode )

Устанавливает блокирующий или неблокирующий режим на потоке stream.

Эта функция работает на любом потоке, который поддерживает неблокирующий режим (в настоящее время это обычные файлы и сокетные потоки).

Список параметров

stream

Поток.

mode

Если параметр mode равен FALSE, указанный поток будет переключен в неблокирующий режим, а если он равен TRUE, поток будет переключен в блокирующий режим. Это влияет на такие вызовы, как fgets() и fread(), которые читают из потока. В неблокирующем режиме вызов функции fgets() будет всегда возвращаться сразу, тогда как в блокирующем режиме он будет ожидать, пока данные станут доступны на потоке.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Эта функция раньше вызывалась через set_socket_blocking() и позднее socket_set_blocking(), но это использование устарело.

Смотрите также

  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec


Задание размера фрагмента данных потока

  • « stream_set_blocking
  • stream_set_read_buffer »
  • PHP Manual
  • Функции для работы с потоками
  • Задание размера фрагмента данных потока

stream_set_chunk_size

(PHP 5 >= 5.4.0, PHP 7)

stream_set_chunk_size — Задание размера фрагмента данных потока

Описание

int stream_set_chunk_size ( resource $fp , int $chunk_size )

Устанавливает размер фрагмента обрабатываемых данных потока.

Список параметров

fp

Поток.

chunk_size

Желаемый размер фрагмента.

Возвращаемые значения

Возвращает предыдущий размер фрагмента в случае успеха.

Вернет FALSE, если chunk_size меньше 1 или больше PHP_INT_MAX.

Ошибки

Вызывает ошибку уровня E_WARNING, если chunk_size меньше 1 или больше PHP_INT_MAX.


Устанавливает буферизацию чтения файла на указанном потоке

  • « stream_set_chunk_size
  • stream_set_timeout »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает буферизацию чтения файла на указанном потоке

stream_set_read_buffer

(PHP 5 >= 5.3.3, PHP 7)

stream_set_read_buffer — Устанавливает буферизацию чтения файла на указанном потоке

Описание

int stream_set_read_buffer ( resource $stream , int $buffer )

Устанавливает буфер чтения. Это эквивалент функции stream_set_write_buffer(), но для операций чтения.

Список параметров

stream

Файловый указатель.

buffer

Число байт для буферизации. Если аргумент buffer равен 0, то операции чтения не буферизуются. Это гарантирует, что все операции чтения при помощи функции fread() были завершены до того, как остальным процессам будет позволено читать из входного потока.

Возвращаемые значения

Возвращает 0 в случае удачи, или другое значение, если запрос не может быть выполнен.

Смотрите также

  • stream_set_write_buffer() - Устанавливает буферизацию файла при записи в указанный поток


Устанавливает значение тайм-аута на потоке

  • « stream_set_read_buffer
  • stream_set_write_buffer »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает значение тайм-аута на потоке

stream_set_timeout

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_set_timeout — Устанавливает значение тайм-аута на потоке

Описание

bool stream_set_timeout ( resource $stream , int $seconds [, int $microseconds = 0 ] )

Устанавливает значение тайм-аута на потоке stream, равное сумме параметров seconds и microseconds.

Когда время работы потока истекает, ключ 'timed_out' массива, возвращаемого функцией stream_get_meta_data(), устанавливается в значение TRUE, хотя ошибка или предупреждение не генерируется.

Список параметров

stream

Целевой поток.

seconds

Секунды в устанавливаемом тайм-ауте.

microseconds

Микросекунды в устанавливаемом тайм-ауте.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
4.3.0 | Начиная с PHP 4.3 эта функция может (потенциально) работать на любом типе потока. В PHP 4.3 потоки, основанные на сокетах - это единственный тип потоков, поддерживаемый в ядре PHP, хотя потоки из других расширений могут поддерживать эту функцию.

Примеры

Пример #1 Пример использования stream_set_timeout()

<?php
$fp = fsockopen("www.example.com", 80);
if (!$fp) {
    echo "Невозможно открыть сокет\n";
} else {

    fwrite($fp, "GET / HTTP/1.0\r\n\r\n");
    stream_set_timeout($fp, 2);
    $res = fread($fp, 2000);

    $info = stream_get_meta_data($fp);
    fclose($fp);

    if ($info['timed_out']) {
        echo 'Истекло время соединения!';
    } else {
        echo $res;
    }

}
?>

Примечания

Замечание:

Эта функция не работает с продвинутыми операциями, такими, как stream_socket_recvfrom(). Используйте вместо неё stream_select() с параметром тайм-аута

Эта функция раньше вызывалась через set_socket_timeout() и позднее через socket_set_timeout(), но это использование устарело.

Смотрите также

  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix
  • fopen() - Открывает файл или URL


Устанавливает буферизацию файла при записи в указанный поток

  • « stream_set_timeout
  • stream_socket_accept »
  • PHP Manual
  • Функции для работы с потоками
  • Устанавливает буферизацию файла при записи в указанный поток

stream_set_write_buffer

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

stream_set_write_buffer — Устанавливает буферизацию файла при записи в указанный поток

Описание

int stream_set_write_buffer ( resource $stream , int $buffer )

Устанавливает буферизацию для операций записи на заданном потоке stream в число buffer байт.

Список параметров

stream

Файловый указатель.

buffer

Число байт для буферизации. Если аргумент buffer равен 0, то операции записи не буферизуются. Это гарантирует, что все операции записи с использованием функции fwrite() будут завершены перед тем, как другим процессам будет позволено записывать в поток вывода.

Возвращаемые значения

Возвращает 0 в случае успеха, или другое значение в случае, если запрос не может быть выполнен.

Примеры

Пример #1 Пример использования stream_set_write_buffer()

Следующий пример демонстрирует использование функции stream_set_write_buffer() для создания небуферизуемого потока.

<?php
$fp = fopen($file, "w");
if ($fp) {
   if (stream_set_write_buffer($fp, 0) !== 0) {
      // не удалось внести изменение
  }
  fwrite($fp, $output);
  fclose($fp);
}
?>

Смотрите также

  • fopen() - Открывает файл или URL
  • fwrite() - Бинарно-безопасная запись в файл


Принимает соединение на сокете, созданном c помощью функции stream_socket_server

  • « stream_set_write_buffer
  • stream_socket_client »
  • PHP Manual
  • Функции для работы с потоками
  • Принимает соединение на сокете, созданном c помощью функции stream_socket_server

stream_socket_accept

(PHP 5, PHP 7)

stream_socket_accept — Принимает соединение на сокете, созданном c помощью функции stream_socket_server()

Описание

resource stream_socket_accept ( resource $server_socket [, float $timeout = ini_get("default_socket_timeout") [, string &$peername ]] )

Принимает соединение на сокете, предварительно созданном с помощью функции stream_socket_server().

Список параметров

server_socket

Серверный сокет для принятия соединения.

timeout

Заменяет тайм-аут подключения сокета по умолчанию. Время должно быть указано в секундах.

peername

Будет присвоено имя (адрес) клиента, который подсоединился, если оно содержится и доступно из выбранного транспорта.

Замечание:

Может быть определено позже, используя функцию stream_socket_get_name().

Возвращаемые значения

Возвращает поток принятого соединения с сокетом или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция не должна использоваться с серверными сокетами UDP. Вместо этого используйте stream_socket_recvfrom() и stream_socket_sendto().

Смотрите также

  • stream_socket_server() - Создаёт интернет-сокет или доменный сокет Unix
  • stream_socket_get_name() - Извлекает название локального или удалённого сокета
  • stream_set_blocking() - Устанавливает блокирующий/неблокирующий режим на потоке
  • stream_set_timeout() - Устанавливает значение тайм-аута на потоке
  • fgets() - Читает строку из файла
  • fgetss() - Прочитать строку из файла и отбросить HTML-теги
  • fwrite() - Бинарно-безопасная запись в файл
  • fclose() - Закрывает открытый дескриптор файла
  • feof() - Проверяет, достигнут ли конец файла
  • cURL


Открывает соединение с интернет-сокетом или с доменным сокетом Unix

  • « stream_socket_accept
  • stream_socket_enable_crypto »
  • PHP Manual
  • Функции для работы с потоками
  • Открывает соединение с интернет-сокетом или с доменным сокетом Unix

stream_socket_client

(PHP 5, PHP 7)

stream_socket_client — Открывает соединение с интернет-сокетом или с доменным сокетом Unix

Описание

resource stream_socket_client ( string $remote_socket [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") [, int $flags = STREAM_CLIENT_CONNECT [, resource $context ]]]]] )

Начинает потоковое или датаграммное соединение с удалённым сокетом, указанным параметром remote_socket. Тип создаваемого сокета определяется по транспорту, указанному с использованием стандартного форматирования URL: transport://target. Для интернет-сокетов, (AF_INET) таких, как TCP и UDP, часть target параметра remote_socket должна состоять из имени хоста или IP-адреса, за которым следует двоеточие и номер порта. Для доменных сокетов Unix, часть target должна указывать на файл сокета в файловой системе.

Замечание:

По умолчанию поток будет открыт в блокирующем режиме. Вы можете переключить его в неблокирующий режим, используя функцию stream_set_blocking().

Список параметров

remote_socket

Адрес удалённого сокета для соединения.

errno

Будет присвоен номер системной ошибки, если соединение не удалось установить.

errstr

Будет присвоено сообщение о системной ошибке, если соединение не удалось установить.

timeout

Число секунд, в течение которых должен произойти тайм-аут системного вызова connect().

Замечание: Этот параметр применяется только если не происходит попытка асинхронного соединения.

Замечание:

Чтобы указать тайм-аут для чтения/записи данных через сокет, используйте функцию stream_set_timeout(), так как параметр timeout применяется только при создании соединения через сокет.

flags

Поле битовой маски, которое может принимать значение любой комбинации флагов соединения. В настоящее время набор флагов соединения ограничен следующими значениями STREAM_CLIENT_CONNECT (по умолчанию), STREAM_CLIENT_ASYNC_CONNECT и STREAM_CLIENT_PERSISTENT.

context

Действующий ресурс контекста, созданный при помощи функции stream_context_create().

Возвращаемые значения

В случае успеха возвращается ресурс потока, который может быть
использован с другими файловыми функциями (такими, как
fgets(), fgetss(),
fwrite(), fclose(), и
feof()), в случае неудачи возвращается FALSE.

Ошибки

В случае неудачного вызова функции аргументы errno и errstr будут заполнены системной ошибкой, которая произошла при системном вызове connect(). Если значение, возвращённое в аргументе errno равно 0 и функция возвратила значение FALSE, это означает, что ошибка произошла до вызова connect(). Это произошло скорее всего из-за проблемы инициализации сокета. Примите во внимание, что аргументы errno и errstr всегда будут передаваться по ссылке.

Примеры

Пример #1 Пример использования функции stream_socket_client()

<?php
$fp = stream_socket_client("tcp://www.example.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    fwrite($fp, "GET / HTTP/1.0\r\nHost: www.example.com\r\nAccept: */*\r\n\r\n");
    while (!feof($fp)) {
        echo fgets($fp, 1024);
    }
    fclose($fp);
}
?>

Пример #2 Использование UDP-соединения

Получения дня и времени от UDP-сервиса "daytime" (порт 13) на localhost.

<?php
$fp = stream_socket_client("udp://127.0.0.1:13", $errno, $errstr);
if (!$fp) {
    echo "ОШИБКА: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Примечания

Внимание

UDP-сокеты иногда могут открываться без ошибки, даже если удалённый хост недоступен. Ошибка станет заметной только когда вы будете читать или писать данные из/в сокет. Причина этого в том, что UDP - это протокол без соединения, что означает, что операционная система не пытается установить соединение с сокетом до тех пор, пока ей в действительности не нужно отправить или получить данные.

Замечание: При указании числового адреса IPv6 (например, fe80::1) вы должны заключать его в квадратные скобки. Например, tcp://[fe80::1]:80.

Замечание:

В зависимости от окружения, Unix-домены или произвольный таймаут соединения могут быть недоступны. Список доступных транспортов может быть получен используя функцию stream_get_transports(). Смотрите список встроенных транспортов на странице Список поддерживаемых транспортных протоколов.

Смотрите также

  • stream_socket_server() - Создаёт интернет-сокет или доменный сокет Unix
  • stream_set_blocking() - Устанавливает блокирующий/неблокирующий режим на потоке
  • stream_set_timeout() - Устанавливает значение тайм-аута на потоке
  • stream_select() - Запускает эквивалент системного вызова select() на заданных массивах потоков с таймаутом, указанным параметрами tv_sec и tv_usec
  • fgets() - Читает строку из файла
  • fgetss() - Прочитать строку из файла и отбросить HTML-теги
  • fwrite() - Бинарно-безопасная запись в файл
  • fclose() - Закрывает открытый дескриптор файла
  • feof() - Проверяет, достигнут ли конец файла
  • cURL


Включает или отключает шифрование на уже подсоединённом сокете

  • « stream_socket_client
  • stream_socket_get_name »
  • PHP Manual
  • Функции для работы с потоками
  • Включает или отключает шифрование на уже подсоединённом сокете

stream_socket_enable_crypto

(PHP 5 >= 5.1.0, PHP 7)

stream_socket_enable_crypto — Включает или отключает шифрование на уже подсоединённом сокете

Описание

mixed stream_socket_enable_crypto ( resource $stream , bool $enable [, int $crypto_type [, resource $session_stream ]] )

Включает или отключает шифрование на потоке.

После настройки шифрования, криптография может быть включена или выключена динамически при помощи передачи значения TRUE или FALSE параметру enable.

Список параметров

stream

Потоковый ресурс.

enable

Включить/отключить криптографию на потоке.

crypto_type

Включить шифрование на потоке. Допустимые методы

  • STREAM_CRYPTO_METHOD_SSLv2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv3_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv23_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_TLS_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_SSLv2_SERVER
  • STREAM_CRYPTO_METHOD_SSLv3_SERVER
  • STREAM_CRYPTO_METHOD_SSLv23_SERVER
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLS_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

Если не указан, то будет использован параметр crypto_type из SSL контекста потока.

session_stream

Использовать в потоке настройки из session_stream.

Возвращаемые значения

Возвращает TRUE в случае успеха, FALSE, если не удалось установить шифрование или 0, если недостаточно данных и вы должны попытаться ещё раз (только для неблокирующих сокетов).

Список изменений

Версия | Описание
5.6.0 | Добавлены константы STREAM_CRYPTO_METHOD_ANY_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT, STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT, STREAM_CRYPTO_METHOD_ANY_SERVER, STREAM_CRYPTO_METHOD_TLSv1_0_SERVER, STREAM_CRYPTO_METHOD_TLSv1_1_SERVER, STREAM_CRYPTO_METHOD_TLSv1_2_SERVER.
5.6.0 | Параметр crypto_type теперь необязателен.

Примеры

Пример #1 Пример использования stream_socket_enable_crypto()

<?php
$fp = stream_socket_client("tcp://myproto.example.com:31337", $errno, $errstr, 30);
if (!$fp) {
    die("Не могу соединиться: $errstr ($errno)");
}

/* Включить шифрование для этапа входа в систему */
stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
fwrite($fp, "USER бог\r\n");
fwrite($fp, "PASS секрет\r\n");

/* Отключить шифрование для всего остального */
stream_socket_enable_crypto($fp, false);

while ($motd = fgets($fp)) {
    echo $motd;
}

fclose($fp);
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • OpenSSL
    •

  • Список поддерживаемых транспортных протоколов
    •


Извлекает название локального или удалённого сокета

  • « stream_socket_enable_crypto
  • stream_socket_pair »
  • PHP Manual
  • Функции для работы с потоками
  • Извлекает название локального или удалённого сокета

stream_socket_get_name

(PHP 5, PHP 7)

stream_socket_get_name — Извлекает название локального или удалённого сокета

Описание

string stream_socket_get_name ( resource $handle , bool $want_peer )

Возвращает локальное или удалённое название указанного сокетного соединения.

Список параметров

handle

Сокет, название которого нужно получить.

want_peer

Если установлено в TRUE, то удалённое название сокета будет возвращено, если установлено в FALSE, то локальное название сокета будет возвращено.

Возвращаемые значения

Название сокета.

Смотрите также

  • stream_socket_accept() - Принимает соединение на сокете, созданном c помощью функции stream_socket_server


Создаёт пару связанных неразличимых потоковых сокетов

  • « stream_socket_get_name
  • stream_socket_recvfrom »
  • PHP Manual
  • Функции для работы с потоками
  • Создаёт пару связанных неразличимых потоковых сокетов

stream_socket_pair

(PHP 5 >= 5.1.0, PHP 7)

stream_socket_pair — Создаёт пару связанных неразличимых потоковых сокетов

Описание

array stream_socket_pair ( int $domain , int $type , int $protocol )

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 or STREAM_SOCK_STREAM

protocol

Используемый протокол: STREAM_IPPROTO_ICMP, STREAM_IPPROTO_IP, STREAM_IPPROTO_RAW, STREAM_IPPROTO_TCP or STREAM_IPPROTO_UDP

Замечание: Пожалуйста, обратитесь к разделу Список потоковых констант за подробной информацией по каждой константе.

Возвращаемые значения

Возвращает массив array с двумя потоковыми ресурсами в случае успеха, или FALSE в случае неудачи.

Список изменений

Версия | Описание
5.3.0 | Теперь эта функция доступна на Windows платформах.

Примеры

Пример #1 Пример использования stream_socket_pair()

Этот пример демонстрирует основы использования функции stream_socket_pair() в межпроцессном взаимодействии.

<?php

$sockets = stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
$pid     = pcntl_fork();

if ($pid == -1) {
     die('не удалось создать процесс');

} else if ($pid) {
     /* родительский процесс */
    fclose($sockets[0]);

    fwrite($sockets[1], "дочерний PID: $pid\n");
    echo fgets($sockets[1]);

    fclose($sockets[1]);

} else {
    /* дочерний процесс */
    fclose($sockets[1]);

    fwrite($sockets[0], "сообщение от дочернего процесса\n");
    echo fgets($sockets[0]);

    fclose($sockets[0]);
}

?>

Результатом выполнения данного примера будет что-то подобное:

дочерний PID: 1378
сообщение от дочернего процесса


Получает данные из сокета, подсоединённого или нет

  • « stream_socket_pair
  • stream_socket_sendto »
  • PHP Manual
  • Функции для работы с потоками
  • Получает данные из сокета, подсоединённого или нет

stream_socket_recvfrom

(PHP 5, PHP 7)

stream_socket_recvfrom — Получает данные из сокета, подсоединённого или нет

Описание

string stream_socket_recvfrom ( resource $socket , int $length [, int $flags = 0 [, string &$address ]] )

stream_socket_recvfrom() принимает данные из удалённого сокета размером до length байт.

Список параметров

socket

Удалённый сокет.

length

Количество байт для получения из параметра socket.

flags

Значение параметра flags может быть любой комбинацией из следующего:

Возможные значения для параметра flags
STREAM_OOB | Обрабатывать данные OOB (out-of-band).
STREAM_PEEK | Получать данные из сокета, но не расходовать буфер. Последующие вызовы функций fread() или stream_socket_recvfrom() получат те же самые данные.

address

Если указан параметр address, он будет заполнен адресом удалённого сокета.

Возвращаемые значения

Возвращает прочитанные данные, в виде строки

Примеры

Пример #1 Пример использования функции stream_socket_recvfrom()

<?php
/* Открывает серверный сокет на 1234-м порту на localhost */
$server = stream_socket_server('tcp://127.0.0.1:1234');

/* Принимает соединение */
$socket = stream_socket_accept($server);

/* Получает пакет (обычный размер MTU 1500)  OOB-данных */
echo "Получены данные OOB (Out-Of-Band): '" . stream_socket_recvfrom($socket, 1500, STREAM_OOB) . "'\n";

/* Получить обычные данные, но не расходовать их. */
echo "Данные: '" . stream_socket_recvfrom($socket, 1500, STREAM_PEEK) . "'\n";

/* Получить тот же самый пакет снова, но в этот раз удалить его из буфера данных. */
echo "Данные: '" . stream_socket_recvfrom($socket, 1500) . "'\n";

/* Закрыть сокет */
fclose($socket);
fclose($server);
?>

Примечания

Замечание:

Если получено сообщение длиной больше, чем параметр length, лишние байты могут быть пропущены в зависимости от типа сокета, из которого получено сообщение (такого, как UDP).

Замечание:

Вызовы функции stream_socket_recvfrom() на потоках, основанных на сокетах, после вызовов потоковых функций, основанных на буферах (таких, как fread() или stream_get_line()) читают данные непосредственно из сокета и пропускают потоковый буфер.

Смотрите также

  • stream_socket_sendto() - Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
  • stream_socket_client() - Открывает соединение с интернет-сокетом или с доменным сокетом Unix
  • stream_socket_server() - Создаёт интернет-сокет или доменный сокет Unix


Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

  • « stream_socket_recvfrom
  • stream_socket_server »
  • PHP Manual
  • Функции для работы с потоками
  • Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

stream_socket_sendto

(PHP 5, PHP 7)

stream_socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

Описание

int stream_socket_sendto ( resource $socket , string $data [, int $flags = 0 [, string $address ]] )

Отправляет указанные данные data через сокет socket.

Список параметров

socket

Сокет, через который будут отправлены данные data.

data

Отправляемые данные.

flags

Значение параметра flags может быть комбинацией следующего:

возможные значения для параметра flags
STREAM_OOB Обрабатывать OOB (out-of-band, внеполосные) данные.

address

Адрес, указанный при создании потокового сокета, будет использоваться до тех пор, пока не указан альтернативный адрес в параметре address.

Если указан, он должен быть в формате ipv4 или ipv6.

Возвращаемые значения

Возвращает код результата, как целое число.

Примеры

Пример #1 Пример использования stream_socket_sendto()

<?php
/* Открыть сокет на 1234-м порту на localhost */
$socket = stream_socket_client('tcp://127.0.0.1:1234');

/* Отправить обычные данные через обычные каналы. */
fwrite($socket, "Передача обычных данных.");

/* Отправляем внеполосные данные. */
stream_socket_sendto($socket, "Внеполосные данные.", STREAM_OOB);

/* Закрыть сокет */
fclose($socket);
?>

Смотрите также

  • stream_socket_recvfrom() - Получает данные из сокета, подсоединённого или нет
  • stream_socket_client() - Открывает соединение с интернет-сокетом или с доменным сокетом Unix
  • stream_socket_server() - Создаёт интернет-сокет или доменный сокет Unix


Создаёт интернет-сокет или доменный сокет Unix

  • « stream_socket_sendto
  • stream_socket_shutdown »
  • PHP Manual
  • Функции для работы с потоками
  • Создаёт интернет-сокет или доменный сокет Unix

stream_socket_server

(PHP 5, PHP 7)

stream_socket_server — Создаёт интернет-сокет или доменный сокет Unix

Описание

resource stream_socket_server ( string $local_socket [, int &$errno [, string &$errstr [, int $flags = STREAM_SERVER_BIND | STREAM_SERVER_LISTEN [, resource $context ]]]] )

Создаёт потоковый или датаграммный сокет на указанном local_socket.

Эта функция только создаёт сокет. Чтобы начать принимать соединения используйте stream_socket_accept().

Список параметров

local_socket

Тип создаваемого сокета определяется по транспорту, указанному с использованием стандартного форматирования URL: transport://target.

Для доменных сокетов интернета (AF_INET), таких, как TCP и UDP, часть target параметра remote_socket должна состоять из имени хоста или IP-адреса с последующим двоеточием и номера порта. Для доменных сокетов Unix часть target должна указывать на файл сокета в файловой системе.

В зависимости от окружения, доменные сокеты Unix могут быть недоступны. Список доступных транспортов может быть получен при помощи функции stream_get_transports(). Смотрите Список поддерживаемых транспортных протоколов для списка встроенных транспортов.

errno

Если необязательные аргументы errno и errstr присутствуют, то они будут установлены для указания действительного уровня системной ошибки, которая происходит при системных вызовах socket(), bind() и listen(). Если значение, возвращаемое в errno, равно 0 и функция возвратила FALSE, это означает, что ошибка произошла до вызова bind(). Скорее всего это произошло из-за проблемы инициализации сокета. Примите во внимание, что аргументы errno и errstr должны всегда передаваться по ссылке.

errstr

Смотрите описание параметра errno.

flags

Битовая маска, которая может быть установлена в любую комбинацию флагов для создания сокета.

Замечание:

Для UDP-сокетов вы должны использовать STREAM_SERVER_BIND в качестве параметра flags.

context

Возвращаемые значения

Возвращает созданный поток, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования серверных сокетов TCP

<?php
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, 'Локальное время ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}
?>

Пример ниже показывает, как работать в качестве сервера времени, который может отвечать на запросы времени, как показано в примере функции stream_socket_client().

Замечание: Большинство систем требуют доступа с правами root для создания серверного сокета на порту ниже, чем 1024.

Пример #2 Пример использования серверных сокетов UDP

<?php
$socket = stream_socket_server("udp://127.0.0.1:1113", $errno, $errstr, STREAM_SERVER_BIND);
if (!$socket) {
    die("$errstr ($errno)");
}

do {
    $pkt = stream_socket_recvfrom($socket, 1, 0, $peer);
    echo "$peer\n";
    stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0, $peer);
} while ($pkt !== false);

?>

Примечания

Замечание: При указании числового адреса IPv6 (например, fe80::1) вы должны заключать его в квадратные скобки. Например, tcp://[fe80::1]:80.

Смотрите также

  • stream_socket_client() - Открывает соединение с интернет-сокетом или с доменным сокетом Unix
  • stream_set_blocking() - Устанавливает блокирующий/неблокирующий режим на потоке
  • stream_set_timeout() - Устанавливает значение тайм-аута на потоке
  • fgets() - Читает строку из файла
  • fgetss() - Прочитать строку из файла и отбросить HTML-теги
  • fwrite() - Бинарно-безопасная запись в файл
  • fclose() - Закрывает открытый дескриптор файла
  • feof() - Проверяет, достигнут ли конец файла
  • Расширение curl


Закрывает полнодуплексное соединение

  • « stream_socket_server
  • stream_supports_lock »
  • PHP Manual
  • Функции для работы с потоками
  • Закрывает полнодуплексное соединение

stream_socket_shutdown

(PHP 5 >= 5.2.1, PHP 7)

stream_socket_shutdown — Закрывает полнодуплексное соединение

Описание

bool stream_socket_shutdown ( resource $stream , int $how )

Закрывает (частично или нет) полнодуплексное соединение.

Замечание:

Ассоциированные буферы, или буферы, могут быть закрыты, а могут и нет.

Список параметров

stream

Открытый поток (открытый при помощи функции stream_socket_client(), например)

how

Одна из следующих констант: STREAM_SHUT_RD (отключает последующее получение данных), STREAM_SHUT_WR (отключает последующую передачу данных) или STREAM_SHUT_RDWR (отключает последующие получение и передачу данных).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования stream_socket_shutdown()

<?php

$server = stream_socket_server('tcp://127.0.0.1:1337');
$client = stream_socket_client('tcp://127.0.0.1:1337');

var_dump(fputs($client, "привет"));

stream_socket_shutdown($client, STREAM_SHUT_WR);
var_dump(fputs($client, "привет")); // не работает сейчас

?>

Результатом выполнения данного примера будет что-то подобное:

int(5)

Notice: fputs(): send of 6 bytes failed with errno=32 Broken pipe in test.php on line 9
int(0)

Смотрите также

  • fclose() - Закрывает открытый дескриптор файла


Определяет, поддерживает ли поток блокировку

  • « stream_socket_shutdown
  • stream_wrapper_register »
  • PHP Manual
  • Функции для работы с потоками
  • Определяет, поддерживает ли поток блокировку

stream_supports_lock

(PHP 5 >= 5.3.0, PHP 7)

stream_supports_lock — Определяет, поддерживает ли поток блокировку

Описание

bool stream_supports_lock ( resource $stream )

Определяет, поддерживает ли поток блокировку с использованием flock().

Список параметров

stream

Поток для проверки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • flock() - Портируемая консультативная блокировка файлов


Регистрирует обёртку URL, реализованную в виде PHP-класса

  • « stream_supports_lock
  • stream_wrapper_restore »
  • PHP Manual
  • Функции для работы с потоками
  • Регистрирует обёртку URL, реализованную в виде PHP-класса

stream_wrapper_register

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

stream_wrapper_register — Регистрирует обёртку URL, реализованную в виде PHP-класса

Описание

bool stream_wrapper_register ( string $protocol , string $classname [, int $flags = 0 ] )

Позволяет вам реализовать ваши собственные обработчики протоколов и потоков для использования со всеми другими функциями файловой системы (такими, как fopen(), fread() и т. д.).

Список параметров

protocol

Название регистрируемой обёртки.

classname

Название класса, который реализует протокол protocol.

flags

Должно быть установлено в STREAM_IS_URL, если параметр protocol является протоколом URL. По умолчанию 0, локальный поток.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

stream_wrapper_register() будет возвращать FALSE, если протокол protocol уже имеет обработчик.

Список изменений

Версия | Описание
5.2.4 | Добавлен параметр flags.

Примеры

Пример #1 Как зарегистрировать обёртку потока

<?php
$existed = in_array("var", stream_get_wrappers());
if ($existed) {
    stream_wrapper_unregister("var");
}
stream_wrapper_register("var", "VariableStream");
$myvar = "";

$fp = fopen("var://myvar", "r+");

fwrite($fp, "line1\n");
fwrite($fp, "line2\n");
fwrite($fp, "line3\n");

rewind($fp);
while (!feof($fp)) {
    echo fgets($fp);
}
fclose($fp);
var_dump($myvar);

if ($existed) {
    stream_wrapper_restore("var");
}

?>

Результат выполнения данного примера:

line1
line2
line3
string(18) "line1
line2
line3
"

Смотрите также

  • Класс-прототип streamWrapper
  • Пример класса, зарегистрированного в качестве обертки потока
  • stream_wrapper_unregister() - Отменяет регистрацию обертки URL
  • stream_wrapper_restore() - Восстанавливает ранее разрегистрированную встроенную обёртку
  • stream_get_wrappers() - Извлекает список зарегистрированных потоков


Восстанавливает ранее разрегистрированную встроенную обёртку

  • « stream_wrapper_register
  • stream_wrapper_unregister »
  • PHP Manual
  • Функции для работы с потоками
  • Восстанавливает ранее разрегистрированную встроенную обёртку

stream_wrapper_restore

(PHP 5 >= 5.1.0, PHP 7)

stream_wrapper_restore — Восстанавливает ранее разрегистрированную встроенную обёртку

Описание

bool stream_wrapper_restore ( string $protocol )

Восстанавливает встроенную обёртку, ранее разрегистрированную при помощи stream_wrapper_unregister().

Список параметров

protocol

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Отменяет регистрацию обертки URL

  • « stream_wrapper_restore
  • Tidy »
  • PHP Manual
  • Функции для работы с потоками
  • Отменяет регистрацию обертки URL

stream_wrapper_unregister

(PHP 5 >= 5.1.0, PHP 7)

stream_wrapper_unregister — Отменяет регистрацию обертки URL

Описание

bool stream_wrapper_unregister ( string $protocol )

Позволяет вам отключить уже определённую обёртку потока. Как только обёртка будет отключена, вы можете перезаписать её пользовательской обёрткой, используя stream_wrapper_register() или включить её повторно, используя stream_wrapper_restore().

Список параметров

protocol

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


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::getParent — Возвращает родительский узел текущего узла
    • tidyNode::hasChildren — Проверяет существование потомков у узла
    • tidyNode::hasSiblings — Проверяет существование соседних узлов
    • tidyNode::isAsp — Проверяет текущий узел на соответствие ASP
    • tidyNode::isComment — Проверяет, является ли узел комментарием
    • tidyNode::isHtml — Проверяет, является ли текущий узел частью HTML-документа
    • tidyNode::isJste — Проверяет текущий узел на соответствие JSTE
    • tidyNode::isPhp — Проверяет, является ли текущий узел PHP-кодом
    • tidyNode::isText — Проверяет, является ли текущий узел обычным текстом (не разметкой)
  • Tidy
    • ob_tidyhandler — Функция обратного вызова ob_start для восстановление буфера
    • tidy_access_count — Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе
    • tidy_config_count — Возвращает число ошибок конфигурации Tidy, встретившихся при рассмотрении документа
    • tidy_error_count — Возвращает число ошибок Tidy, встретившихся при рассмотрении документа
    • tidy_get_output — Возвращает строку, представляющую разобранную tidy-разметку
    • tidy_load_config — Загрузить конфигурационный файл ASCII Tidy с указанной кодировкой
    • tidy_reset_config — Сбрасывает конфигурацию Tidy в стандартные значения
    • tidy_save_config — Сохранить текущие настройки в файл
    • tidy_set_encoding — Устанавливает входную/выходную кодировку символов для указанной разметки
    • tidy_setopt — Обновляет конфигурационные настройки для указанного документа tidy
    • tidy_warning_count — Возвращает число Tidy-предупреждений, встреченных в указанном документе


Введение

Tidy является интерфейсом к утилите очистки и восстановления Tidy HTML, которая позволяет помимо очистки и восстановления также манипулировать HTML-документами, а также перемещаться по дереву документа.


Требования

Использование Tidy требует установленной библиотеки libtidy, доступной на домашней странице tidy » http://tidy.sourceforge.net/.


Установка

Это расширение поставляется вместе с PHP 5 и выше, а устанавливается с помощью параметра конфигурации --with-tidy .


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации Tidy
Имя | По умолчанию | Меняемо | Список изменений
tidy.default_config | "" | PHP_INI_SYSTEM |
tidy.clean_output | "0" | PHP_INI_USER | PHP_INI_PERDIR до PHP 5.4.0
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

tidy.default_config string

Путь по умолчанию к конфигурационному файлу Tidy.

tidy.clean_output boolean

Включает/выключает восстановление потока вывода средствами Tidy.

Внимание

Не следует включать tidy.clean_output в случае генерации контента, отличного от html, такого как динамические изображения.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Каждая константа вида TIDY_TAG_XXX представляет HTML-тег. Например, TIDY_TAG_A представляет тег "<a href="XX">link</a>". Каждая константа вида TIDY_ATTR_XXX представляет HTML-атрибут. Например, TIDY_ATTR_HREF представляет атрибут href в предыдущем примере.

В расширении определены следующие константы:

Константы Tidy, соответствующие тэгам
Константа
TIDY_TAG_UNKNOWN
TIDY_TAG_A
TIDY_TAG_ABBR
TIDY_TAG_ACRONYM
TIDY_TAG_ALIGN
TIDY_TAG_APPLET
TIDY_TAG_AREA
TIDY_TAG_B
TIDY_TAG_BASE
TIDY_TAG_BASEFONT
TIDY_TAG_BDO
TIDY_TAG_BGSOUND
TIDY_TAG_BIG
TIDY_TAG_BLINK
TIDY_TAG_BLOCKQUOTE
TIDY_TAG_BODY
TIDY_TAG_BR
TIDY_TAG_BUTTON
TIDY_TAG_CAPTION
TIDY_TAG_CENTER
TIDY_TAG_CITE
TIDY_TAG_CODE
TIDY_TAG_COL
TIDY_TAG_COLGROUP
TIDY_TAG_COMMENT
TIDY_TAG_DD
TIDY_TAG_DEL
TIDY_TAG_DFN
TIDY_TAG_DIR
TIDY_TAG_DIV
TIDY_TAG_DL
TIDY_TAG_DT
TIDY_TAG_EM
TIDY_TAG_EMBED
TIDY_TAG_FIELDSET
TIDY_TAG_FONT
TIDY_TAG_FORM
TIDY_TAG_FRAME
TIDY_TAG_FRAMESET
TIDY_TAG_H1
TIDY_TAG_H2
TIDY_TAG_H3
TIDY_TAG_H4
TIDY_TAG_H5
TIDY_TAG_H6
TIDY_TAG_HEAD
TIDY_TAG_HR
TIDY_TAG_HTML
TIDY_TAG_I
TIDY_TAG_IFRAME
TIDY_TAG_ILAYER
TIDY_TAG_IMG
TIDY_TAG_INPUT
TIDY_TAG_INS
TIDY_TAG_ISINDEX
TIDY_TAG_KBD
TIDY_TAG_KEYGEN
TIDY_TAG_LABEL
TIDY_TAG_LAYER
TIDY_TAG_LEGEND
TIDY_TAG_LI
TIDY_TAG_LINK
TIDY_TAG_LISTING
TIDY_TAG_MAP
TIDY_TAG_MARQUEE
TIDY_TAG_MENU
TIDY_TAG_META
TIDY_TAG_MULTICOL
TIDY_TAG_NOBR
TIDY_TAG_NOEMBED
TIDY_TAG_NOFRAMES
TIDY_TAG_NOLAYER
TIDY_TAG_NOSAVE
TIDY_TAG_NOSCRIPT
TIDY_TAG_OBJECT
TIDY_TAG_OL
TIDY_TAG_OPTGROUP
TIDY_TAG_OPTION
TIDY_TAG_P
TIDY_TAG_PARAM
TIDY_TAG_PLAINTEXT
TIDY_TAG_PRE
TIDY_TAG_Q
TIDY_TAG_RP
TIDY_TAG_RT
TIDY_TAG_RTC
TIDY_TAG_RUBY
TIDY_TAG_S
TIDY_TAG_SAMP
TIDY_TAG_SCRIPT
TIDY_TAG_SELECT
TIDY_TAG_SERVER
TIDY_TAG_SERVLET
TIDY_TAG_SMALL
TIDY_TAG_SPACER
TIDY_TAG_SPAN
TIDY_TAG_STRIKE
TIDY_TAG_STRONG
TIDY_TAG_STYLE
TIDY_TAG_SUB
TIDY_TAG_TABLE
TIDY_TAG_TBODY
TIDY_TAG_TD
TIDY_TAG_TEXTAREA
TIDY_TAG_TFOOT
TIDY_TAG_TH
TIDY_TAG_THEAD
TIDY_TAG_TITLE
TIDY_TAG_TR
TIDY_TAG_TT
TIDY_TAG_U
TIDY_TAG_UL
TIDY_TAG_VAR
TIDY_TAG_WBR
TIDY_TAG_XMP

Константы Tidy, соответствующие атрибутам
Константа
TIDY_ATTR_UNKNOWN
TIDY_ATTR_ABBR
TIDY_ATTR_ACCEPT
TIDY_ATTR_ACCEPT_CHARSET
TIDY_ATTR_ACCESSKEY
TIDY_ATTR_ACTION
TIDY_ATTR_ADD_DATE
TIDY_ATTR_ALIGN
TIDY_ATTR_ALINK
TIDY_ATTR_ALT
TIDY_ATTR_ARCHIVE
TIDY_ATTR_AXIS
TIDY_ATTR_BACKGROUND
TIDY_ATTR_BGCOLOR
TIDY_ATTR_BGPROPERTIES
TIDY_ATTR_BORDER
TIDY_ATTR_BORDERCOLOR
TIDY_ATTR_BOTTOMMARGIN
TIDY_ATTR_CELLPADDING
TIDY_ATTR_CELLSPACING
TIDY_ATTR_CHAR
TIDY_ATTR_CHAROFF
TIDY_ATTR_CHARSET
TIDY_ATTR_CHECKED
TIDY_ATTR_CITE
TIDY_ATTR_CLASS
TIDY_ATTR_CLASSID
TIDY_ATTR_CLEAR
TIDY_ATTR_CODE
TIDY_ATTR_CODEBASE
TIDY_ATTR_CODETYPE
TIDY_ATTR_COLOR
TIDY_ATTR_COLS
TIDY_ATTR_COLSPAN
TIDY_ATTR_COMPACT
TIDY_ATTR_CONTENT
TIDY_ATTR_COORDS
TIDY_ATTR_DATA
TIDY_ATTR_DATAFLD
TIDY_ATTR_DATAPAGESIZE
TIDY_ATTR_DATASRC
TIDY_ATTR_DATETIME
TIDY_ATTR_DECLARE
TIDY_ATTR_DEFER
TIDY_ATTR_DIR
TIDY_ATTR_DISABLED
TIDY_ATTR_ENCODING
TIDY_ATTR_ENCTYPE
TIDY_ATTR_FACE
TIDY_ATTR_FOR
TIDY_ATTR_FRAME
TIDY_ATTR_FRAMEBORDER
TIDY_ATTR_FRAMESPACING
TIDY_ATTR_GRIDX
TIDY_ATTR_GRIDY
TIDY_ATTR_HEADERS
TIDY_ATTR_HEIGHT
TIDY_ATTR_HREF
TIDY_ATTR_HREFLANG
TIDY_ATTR_HSPACE
TIDY_ATTR_HTTP_EQUIV
TIDY_ATTR_ID
TIDY_ATTR_ISMAP
TIDY_ATTR_LABEL
TIDY_ATTR_LANG
TIDY_ATTR_LANGUAGE
TIDY_ATTR_LAST_MODIFIED
TIDY_ATTR_LAST_VISIT
TIDY_ATTR_LEFTMARGIN
TIDY_ATTR_LINK
TIDY_ATTR_LONGDESC
TIDY_ATTR_LOWSRC
TIDY_ATTR_MARGINHEIGHT
TIDY_ATTR_MARGINWIDTH
TIDY_ATTR_MAXLENGTH
TIDY_ATTR_MEDIA
TIDY_ATTR_METHOD
TIDY_ATTR_MULTIPLE
TIDY_ATTR_NAME
TIDY_ATTR_NOHREF
TIDY_ATTR_NORESIZE
TIDY_ATTR_NOSHADE
TIDY_ATTR_NOWRAP
TIDY_ATTR_OBJECT
TIDY_ATTR_OnAFTERUPDATE
TIDY_ATTR_OnBEFOREUNLOAD
TIDY_ATTR_OnBEFOREUPDATE
TIDY_ATTR_OnBLUR
TIDY_ATTR_OnCHANGE
TIDY_ATTR_OnCLICK
TIDY_ATTR_OnDATAAVAILABLE
TIDY_ATTR_OnDATASETCHANGED
TIDY_ATTR_OnDATASETCOMPLETE
TIDY_ATTR_OnDBLCLICK
TIDY_ATTR_OnERRORUPDATE
TIDY_ATTR_OnFOCUS
TIDY_ATTR_OnKEYDOWN
TIDY_ATTR_OnKEYPRESS
TIDY_ATTR_OnKEYUP
TIDY_ATTR_OnLOAD
TIDY_ATTR_OnMOUSEDOWN
TIDY_ATTR_OnMOUSEMOVE
TIDY_ATTR_OnMOUSEOUT
TIDY_ATTR_OnMOUSEOVER
TIDY_ATTR_OnMOUSEUP
TIDY_ATTR_OnRESET
TIDY_ATTR_OnROWENTER
TIDY_ATTR_OnROWEXIT
TIDY_ATTR_OnSELECT
TIDY_ATTR_OnSUBMIT
TIDY_ATTR_OnUNLOAD
TIDY_ATTR_PROFILE
TIDY_ATTR_PROMPT
TIDY_ATTR_RBSPAN
TIDY_ATTR_READONLY
TIDY_ATTR_REL
TIDY_ATTR_REV
TIDY_ATTR_RIGHTMARGIN
TIDY_ATTR_ROWS
TIDY_ATTR_ROWSPAN
TIDY_ATTR_RULES
TIDY_ATTR_SCHEME
TIDY_ATTR_SCOPE
TIDY_ATTR_SCROLLING
TIDY_ATTR_SELECTED
TIDY_ATTR_SHAPE
TIDY_ATTR_SHOWGRID
TIDY_ATTR_SHOWGRIDX
TIDY_ATTR_SHOWGRIDY
TIDY_ATTR_SIZE
TIDY_ATTR_SPAN
TIDY_ATTR_SRC
TIDY_ATTR_STANDBY
TIDY_ATTR_START
TIDY_ATTR_STYLE
TIDY_ATTR_SUMMARY
TIDY_ATTR_TABINDEX
TIDY_ATTR_TARGET
TIDY_ATTR_TEXT
TIDY_ATTR_TITLE
TIDY_ATTR_TOPMARGIN
TIDY_ATTR_TYPE
TIDY_ATTR_USEMAP
TIDY_ATTR_VALIGN
TIDY_ATTR_VALUE
TIDY_ATTR_VALUETYPE
TIDY_ATTR_VERSION
TIDY_ATTR_VLINK
TIDY_ATTR_VSPACE
TIDY_ATTR_WIDTH
TIDY_ATTR_WRAP
TIDY_ATTR_XML_LANG
TIDY_ATTR_XML_SPACE
TIDY_ATTR_XMLNS

Константы Tidy, соответствующие типам узлов
Константа | Описание
TIDY_NODETYPE_ROOT | Корневой узел
TIDY_NODETYPE_DOCTYPE | Тип документа
TIDY_NODETYPE_COMMENT | HTML-комментарий
TIDY_NODETYPE_PROCINS | Инструкции по обработке в потоке вывода
TIDY_NODETYPE_TEXT | Текст
TIDY_NODETYPE_START | Открывающий тег
TIDY_NODETYPE_END | Закрывающий тег
TIDY_NODETYPE_STARTEND | Пустой тег
TIDY_NODETYPE_CDATA | Символьные данные
TIDY_NODETYPE_SECTION | Раздел XML
TIDY_NODETYPE_ASP | ASP-код
TIDY_NODETYPE_JSTE | JSTE-код
TIDY_NODETYPE_PHP | PHP-код
TIDY_NODETYPE_XMLDECL | Декларация XML


  • « Предопределенные константы
  • Пример использования Tidy »
  • PHP Manual
  • Tidy
  • Примеры

Примеры

Содержание

  • Пример использования Tidy


Пример использования Tidy

Простой пример, демонстрирующий базовые возможности использования Tidy.

Пример #1 Базовые возможности использования Tidy

<?php
ob_start();
?>
<html>a html document</html>
<?php
$html = ob_get_clean();

// Установка конфигурации
$config = array(
           'indent'         => true,
           'output-xhtml'   => true,
           'wrap'           => 200);

// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();

// Вывод
echo $tidy;
?>


Класс tidy

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

Введение

HTML-узел в HTML-файле, обнаруженный Tidy.

Обзор классов

tidy {
/* Свойства */
string $errorBuffer;
/* Методы */
tidyNode body ( void )
bool cleanRepair ( void )
__construct ([ string $filename [, mixed $config [, string $encoding [, bool $use_include_path ]]]] )
bool diagnose ( void )
array getConfig ( void )
int getHtmlVer ( void )
mixed getOpt ( string $option )
string getOptDoc ( string $optname )
string getRelease ( void )
int getStatus ( void )
tidyNode head ( void )
tidyNode html ( void )
bool isXhtml ( void )
bool isXml ( void )
bool parseFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )
bool parseString ( string $input [, mixed $config [, string $encoding ]] )
string repairFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )
string repairString ( string $data [, mixed $config [, string $encoding ]] )
tidyNode root ( void )
}

Содержание

  • tidy::body — Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева
  • tidy::cleanRepair — Выполнить настроенную очистку и восстановление разобранной разметки
  • tidy::__construct — Создает новый tidy-объект
  • tidy::diagnose — Запуск настроенной диагностики для разобранной и восстановленной разметки
  • tidy::$errorBuffer — Возвращает предупреждения и ошибки, возникшие при разборе указанного документа
  • tidy::getConfig — Получает текущую конфигурацию Tidy
  • tidy::getHtmlVer — Получает обнаруженную HTML версию для указанного документа
  • tidy::getOpt — Возвращает значение указанного параметра конфигурации для документа tidy
  • tidy::getOptDoc — Возвращает описание для опции с указанным названием
  • tidy::getRelease — Получить дату релиза (версию) для библиотеки Tidy
  • tidy::getStatus — Получает статус указанного документа
  • tidy::head — Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева
  • tidy::html — Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева
  • tidy::isXhtml — Определяет, является ли документ XHTML-документом
  • tidy::isXml — Определяет, является ли документ общим XML-документом (не HTML/XHTML)
  • tidy::parseFile — Разбор разметки в файле или URI
  • tidy::parseString — Разбор документа, хранимого в строке
  • tidy::repairFile — Восстанавливает разметку файла и возвращает его в виде строки
  • tidy::repairString — Восстанавливает строку, используя по возможности конфигурационный файл
  • tidy::root — Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева


Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева

  • « tidy
  • tidy::cleanRepair »
  • PHP Manual
  • tidy
  • Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева

tidy::body

tidy_get_body

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0)

tidy::body -- tidy_get_body — Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

tidyNode tidy::body ( void )

Процедурный стиль

tidyNode tidy_get_body ( tidy $object )

Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева.

Примеры

Пример #1 Пример использования функции tidy::getBody()

<?php
$html = '
<html>
  <head>
    <title>test</title>
  </head>
  <body>
    <p>paragraph</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$body = $tidy->Body();
echo $body->value;
?>

Результат выполнения данного примера:

<body>
<p>paragraph</p>
</body>

Примечания

Замечание: Эта функция доступна только в Zend Engine 2 (PHP >= 5.0.0).

Смотрите также

  • tidy::head() - Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева
  • tidy::html() - Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева


Выполнить настроенную очистку и восстановление разобранной разметки

  • « tidy::body
  • tidy::__construct »
  • PHP Manual
  • tidy
  • Выполнить настроенную очистку и восстановление разобранной разметки

tidy::cleanRepair

tidy_clean_repair

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::cleanRepair -- tidy_clean_repair — Выполнить настроенную очистку и восстановление разобранной разметки

Описание

Объектно-ориентированный стиль

bool tidy::cleanRepair ( void )

Процедурный стиль

bool tidy_clean_repair ( tidy $object )

Эта функция очищает и восстанавливает полученный tidy-объект object.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции tidy::cleanrepair()

<?php
$html = '<p>test</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>test</p>
</body>
</html>

Смотрите также

  • tidy::repairFile() - Восстанавливает разметку файла и возвращает его в виде строки
  • tidy::repairString() - Восстанавливает строку, используя по возможности конфигурационный файл


Создает новый tidy-объект

  • « tidy::cleanRepair
  • tidy::diagnose »
  • PHP Manual
  • tidy
  • Создает новый tidy-объект

tidy::__construct

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::__construct — Создает новый tidy-объект

Описание

tidy::__construct ([ string $filename [, mixed $config [, string $encoding [, bool $use_include_path ]]]] )

Создает новый tidy-объект.

Список параметров

filename

Если задан параметр filename, то эта функция прочитает файл и инициализирует объект с этим файлом, действуя как функция tidy_parse_file().

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то это интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Описание каждого параметра можно найти тут: » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

use_include_path

Поиск файла в include_path.

Возвращаемые значения

Возвращает новый экземпляр tidy.

Примеры

Пример #1 Пример использования функции tidy::__construct()

<?php

$html = <<< HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>title</title></head>
<body>
<p>paragraph <bt />
text</p>
</body></html>

HTML;

$tidy = new tidy();
$tidy->ParseString($html);

$tidy->cleanRepair();

if ($tidy->errorBuffer) {
    echo "Были обнаружены следующие ошибки:\n";
    echo $tidy->errorBuffer;
}

?>

Результат выполнения данного примера:

Были обнаружены следующие ошибки:
line 8 column 14 - Error: <bt> is not recognized!
line 8 column 14 - Warning: discarding unexpected <bt>

Смотрите также

  • tidy::parseFile() - Разбор разметки в файле или URI
  • tidy::parseString() - Разбор документа, хранимого в строке


Запуск настроенной диагностики для разобранной и восстановленной разметки

  • « tidy::__construct
  • tidy::$errorBuffer »
  • PHP Manual
  • tidy
  • Запуск настроенной диагностики для разобранной и восстановленной разметки

tidy::diagnose

tidy_diagnose

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::diagnose -- tidy_diagnose — Запуск настроенной диагностики для разобранной и восстановленной разметки

Описание

Объектно-ориентированный стиль

bool tidy::diagnose ( void )

Процедурный стиль

bool tidy_diagnose ( tidy $object )

Выполняет диагностические тесты полученного tidy-объекта object, добавляя некоторую информацию о документе в буфер ошибок.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции tidy::diagnose()

<?php

$html = <<< HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<p>paragraph</p>
HTML;

$tidy = tidy_parse_string($html);
$tidy->cleanRepair();

// обратите внимание на разницу между двумя выводами
echo $tidy->errorBuffer . "\n";

$tidy->diagnose();
echo $tidy->errorBuffer;

?>

Результат выполнения данного примера:

line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
line 4 column 1 - Warning: <p> isn't allowed in <head> elements
line 4 column 1 - Warning: inserting missing 'title' element
Info: Doctype given is "-//W3C//DTD XHTML 1.0 Strict//EN"
Info: Document content looks like XHTML 1.0 Strict
2 warnings, 0 errors were found!

Смотрите также

  • tidy::errorBuffer()


Возвращает предупреждения и ошибки, возникшие при разборе указанного документа

  • « tidy::diagnose
  • tidy::getConfig »
  • PHP Manual
  • tidy
  • Возвращает предупреждения и ошибки, возникшие при разборе указанного документа

tidy::$errorBuffer

tidy_get_error_buffer

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::$errorBuffer -- tidy_get_error_buffer — Возвращает предупреждения и ошибки, возникшие при разборе указанного документа

Описание

Объектно-ориентированный стиль (property):

string $tidy->errorBuffer;

Процедурный стиль:

string tidy_get_error_buffer ( tidy $tidy )

Возвращает предупреждения и ошибки, возникшие при разборе указанного документа.

Список параметров

tidy

Объект Tidy.

Возвращаемые значения

Возвращает буфер ошибки в виде строки.

Примеры

Пример #1 Пример использования функции tidy_get_error_buffer()

<?php
$html = '<p>параграф</p>';

$tidy = tidy_parse_string($html);

echo tidy_get_error_buffer($tidy);
/* или в ООП стиле: */
echo $tidy->errorBuffer;
?>

Результат выполнения данного примера:

line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 1 - Warning: inserting missing 'title' element

Смотрите также

  • tidy_access_count() - Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе
  • tidy_error_count() - Возвращает число ошибок Tidy, встретившихся при рассмотрении документа
  • tidy_warning_count() - Возвращает число Tidy-предупреждений, встреченных в указанном документе


Получает текущую конфигурацию Tidy

  • « tidy::$errorBuffer
  • tidy::getHtmlVer »
  • PHP Manual
  • tidy
  • Получает текущую конфигурацию Tidy

tidy::getConfig

tidy_get_config

(PHP 5, PHP 7, PECL tidy >= 0.7.0)

tidy::getConfig -- tidy_get_config — Получает текущую конфигурацию Tidy

Описание

Объектно-ориентированный стиль

array tidy::getConfig ( void )

Процедурный стиль

array tidy_get_config ( tidy $object )

Получает список используемых опций конфигурации в указанном объекте tidy object.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает массив опций конфигурации.

Информацию о каждом параметре можно получить тут: » http://tidy.sourceforge.net/docs/quickref.html.

Примеры

Пример #1 Пример использования функции tidy::getConfig()

<?php
$html = '<p>тест</p>';
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap' => 200);

$tidy = tidy_parse_string($html, $config);

print_r($tidy->getConfig());
?>

Результат выполнения данного примера:

Array
(
    [indent-spaces] => 2
    [wrap] => 200
    [tab-size] => 8
    [char-encoding] => 1
    [input-encoding] => 3
    [output-encoding] => 1
    [newline] => 1
    [doctype-mode] => 1
    [doctype] =>
    [repeated-attributes] => 1
    [alt-text] =>
    [slide-style] =>
    [error-file] =>
    [output-file] =>
    [write-back] =>
    [markup] => 1
    [show-warnings] => 1
    [quiet] =>
    [indent] => 1
    [hide-endtags] =>
    [input-xml] =>
    [output-xml] => 1
    [output-xhtml] => 1
    [output-html] =>
    [add-xml-decl] =>
    [uppercase-tags] =>
    [uppercase-attributes] =>
    [bare] =>
    [clean] =>
    [logical-emphasis] =>
    [drop-proprietary-attributes] =>
    [drop-font-tags] =>
    [drop-empty-paras] => 1
    [fix-bad-comments] => 1
    [break-before-br] =>
    [split] =>
    [numeric-entities] =>
    [quote-marks] =>
    [quote-nbsp] => 1
    [quote-ampersand] => 1
    [wrap-attributes] =>
    [wrap-script-literals] =>
    [wrap-sections] => 1
    [wrap-asp] => 1
    [wrap-jste] => 1
    [wrap-php] => 1
    [fix-backslash] => 1
    [indent-attributes] =>
    [assume-xml-procins] =>
    [add-xml-space] =>
    [enclose-text] =>
    [enclose-block-text] =>
    [keep-time] =>
    [word-2000] =>
    [tidy-mark] =>
    [gnu-emacs] =>
    [gnu-emacs-file] =>
    [literal-attributes] =>
    [show-body-only] =>
    [fix-uri] => 1
    [lower-literals] => 1
    [hide-comments] =>
    [indent-cdata] =>
    [force-output] => 1
    [show-errors] => 6
    [ascii-chars] => 1
    [join-classes] =>
    [join-styles] => 1
    [escape-cdata] =>
    [language] =>
    [ncr] => 1
    [output-bom] => 2
    [replace-color] =>
    [css-prefix] =>
    [new-inline-tags] =>
    [new-blocklevel-tags] =>
    [new-empty-tags] =>
    [new-pre-tags] =>
    [accessibility-check] => 0
    [vertical-space] =>
    [punctuation-wrap] =>
    [merge-divs] => 1
)

Смотрите также

  • tidy_reset_config() - Сбрасывает конфигурацию Tidy в стандартные значения
  • tidy_save_config() - Сохранить текущие настройки в файл


Получает обнаруженную HTML версию для указанного документа

  • « tidy::getConfig
  • tidy::getOpt »
  • PHP Manual
  • tidy
  • Получает обнаруженную HTML версию для указанного документа

tidy::getHtmlVer

tidy_get_html_ver

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::getHtmlVer -- tidy_get_html_ver — Получает обнаруженную HTML версию для указанного документа

Описание

Объектно-ориентированный стиль

int tidy::getHtmlVer ( void )

Процедурный стиль

int tidy_get_html_ver ( tidy $object )

Возвращает обнаруженную HTML версию для указанного объекта tidy object.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает обнаруженную HTML версию.

Внимание

Эта функция еще не реализована в самом Tidylib, поэтому всегда возвращается 0.


Возвращает значение указанного параметра конфигурации для документа tidy

  • « tidy::getHtmlVer
  • tidy::getOptDoc »
  • PHP Manual
  • tidy
  • Возвращает значение указанного параметра конфигурации для документа tidy

tidy::getOpt

tidy_getopt

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::getOpt -- tidy_getopt — Возвращает значение указанного параметра конфигурации для документа tidy

Описание

Объектно-ориентированный стиль

mixed tidy::getOpt ( string $option )

Процедурный стиль

mixed tidy_getopt ( tidy $object , string $option )

Возвращает значение указанного параметра option для указанного объекта tidy object.

Список параметров

object

Объект Tidy.

option

Вы можете найти список из каждой опции конфигурации с типом здесь: » http://tidy.sourceforge.net/docs/quickref.html.

Возвращаемые значения

Возвращает значение указанной опции option. Тип возвращаемого значения зависит от типа указанной опции.

Примеры

Пример #1 Пример использования функции tidy_getopt()

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Заголовок</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

$config = array('accessibility-check' => 3,
                'alt-text' => 'какой-то текст');

$tidy = new tidy();
$tidy->parseString($html, $config);

var_dump($tidy->getOpt('accessibility-check')); //integer
var_dump($tidy->getOpt('lower-literals')); //boolean
var_dump($tidy->getOpt('alt-text')); //string

?>

Результат выполнения данного примера:

int(3)
bool(true)
string(9) "какой-то текст"


Возвращает описание для опции с указанным названием

  • « tidy::getOpt
  • tidy::getRelease »
  • PHP Manual
  • tidy
  • Возвращает описание для опции с указанным названием

tidy::getOptDoc

tidy_get_opt_doc

(PHP 5 >= 5.1.0, PHP 7)

tidy::getOptDoc -- tidy_get_opt_doc — Возвращает описание для опции с указанным названием

Описание

Объектно-ориентированный стиль

string tidy::getOptDoc ( string $optname )

Процедурный стиль

string tidy_get_opt_doc ( tidy $object , string $optname )

Функция tidy_get_opt_doc() возвращает описание для опции с указанным названием.

Замечание:

Для использования этой функции вам потребуется библиотека libtidy минимум от 25 Апреля 2005 г.

Список параметров

object

Объект Tidy.

optname

Название опции

Возвращаемые значения

Возвращается строка существующей опции и имеющееся описание, в противном случае возвращается FALSE.

Примеры

Пример #1 Печать всех опций вместе с описанием и значением по умолчанию

<?php

$tidy = new tidy;
$config = $tidy->getConfig();

ksort($config);

foreach ($config as $opt => $val) {

    if (!$doc = $tidy->getOptDoc($opt))
        $doc = 'документация не существует!';

    $val = ($tidy->getOpt($opt) === true)  ? 'true'  : $val;
    $val = ($tidy->getOpt($opt) === false) ? 'false' : $val;

    echo "<p><b>$opt</b> (default: '$val')<br />".
         "$doc</p><hr />\n";
}

?>

Смотрите также

  • tidy::getconfig() - Получает текущую конфигурацию Tidy
  • tidy::getopt() - Возвращает значение указанного параметра конфигурации для документа tidy


Получить дату релиза (версию) для библиотеки Tidy

  • « tidy::getOptDoc
  • tidy::getStatus »
  • PHP Manual
  • tidy
  • Получить дату релиза (версию) для библиотеки Tidy

tidy::getRelease

tidy_get_release

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::getRelease -- tidy_get_release — Получить дату релиза (версию) для библиотеки Tidy

Описание

Объектно-ориентированный стиль

string tidy::getRelease ( void )

Процедурный стиль

string tidy_get_release ( void )

Получает дату релиза для библиотеки Tidy.

Возвращаемые значения

Возвращает строку с датой релиза библиотеки Tidy.


Получает статус указанного документа

  • « tidy::getRelease
  • tidy::head »
  • PHP Manual
  • tidy
  • Получает статус указанного документа

tidy::getStatus

tidy_get_status

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::getStatus -- tidy_get_status — Получает статус указанного документа

Описание

Объектно-ориентированный стиль

int tidy::getStatus ( void )

Процедурный стиль

int tidy_get_status ( tidy $object )

Возвращает статус указанного tidy-объекта object.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает 0, если не было ошибок/предупреждений, 1 - для предупреждений или возможных ошибок или 2 - для ошибок.

Примеры

Пример #1 Пример использования функции tidy::getStatus()

<?php
$html = '<p>параграф</i>';
$tidy = new tidy();
$tidy->parseString($html);

$tidy2 = new tidy();
$html2 = '<bogus>тест</bogus>';
$tidy2->parseString($html2);

echo $tidy->getStatus(); //1

echo $tidy2->getStatus(); //2
?>


Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева

  • « tidy::getStatus
  • tidy::html »
  • PHP Manual
  • tidy
  • Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева

tidy::head

tidy_get_head

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0.0)

tidy::head -- tidy_get_head — Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

tidyNode tidy::head ( void )

Процедурный стиль

tidyNode tidy_get_head ( tidy $object )

Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает объект tidyNode.

Примеры

Пример #1 Пример использования функции tidy::head()

<?php
$html = '
<html>
  <head>
    <title>тест</title>
  </head>
  <body>
    <p>параграф</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$head = $tidy->head();
echo $head->value;
?>

Результат выполнения данного примера:

<head>
<title>тест</title>
</head>

Примечания

Замечание: Эта функция доступна только в Zend Engine 2 (PHP >= 5.0.0).

Смотрите также

  • tidy::body() - Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева
  • tidy::html() - Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева


Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева

  • « tidy::head
  • tidy::isXhtml »
  • PHP Manual
  • tidy
  • Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева

tidy::html

tidy_get_html

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0.0)

tidy::html -- tidy_get_html — Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

tidyNode tidy::html ( void )

Процедурный стиль

tidyNode tidy_get_html ( tidy $object )

Возвращает объект tidyNode, начиная с тега <html> разобранного tidy-дерева.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает объект tidyNode.

Примеры

Пример #1 Пример использования функции tidy::html()

<?php
$html = '
<html>
  <head>
    <title>тест</title>
  </head>
  <body>
    <p>параграф</p>
  </body>
</html>';

$tidy = tidy_parse_string($html);

$html = $tidy->html();
echo $html->value;
?>

Результат выполнения данного примера:

<html>
<head>
<title>тест</title>
</head>
<body>
<p>параграф</p>
</body>
</html>

Примечания

Замечание: Эта функция доступна только в Zend Engine 2 (PHP >= 5.0.0).

Смотрите также

  • tidy::body() - Возвращает объект tidyNode, начиная с тега <body> разобранного tidy-дерева
  • tidy::head() - Возвращает объект tidyNode, начиная с тега <head> разобранного tidy-дерева


Определяет, является ли документ XHTML-документом

  • « tidy::html
  • tidy::isXml »
  • PHP Manual
  • tidy
  • Определяет, является ли документ XHTML-документом

tidy::isXhtml

tidy_is_xhtml

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::isXhtml -- tidy_is_xhtml — Определяет, является ли документ XHTML-документом

Описание

Объектно-ориентированный стиль

bool tidy::isXhtml ( void )

Процедурный стиль

bool tidy_is_xhtml ( tidy $object )

Определяет, является ли документ XHTML-документом.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Эта функция возвращает TRUE если указанный tidy-объект object является XHTML-документом, или FALSE в противном случае.

Внимание

Эта функция еще не реализована в самом Tidylib, поэтому всегда возвращается FALSE.


Определяет, является ли документ общим XML-документом (не HTML/XHTML)

  • « tidy::isXhtml
  • tidy::parseFile »
  • PHP Manual
  • tidy
  • Определяет, является ли документ общим XML-документом (не HTML/XHTML)

tidy::isXml

tidy_is_xml

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::isXml -- tidy_is_xml — Определяет, является ли документ общим XML-документом (не HTML/XHTML)

Описание

Объектно-ориентированный стиль

bool tidy::isXml ( void )

Процедурный стиль

bool tidy_is_xml ( tidy $object )

Определяет, является ли документ общим XML-документом (не HTML/XHTML).

Список параметров

object

Объект Tidy.

Возвращаемые значения

Эта функция возвращает TRUE если указанный tidy-объект object является общим XML-документом (не HTML/XHTML), или FALSE в противном случае.

Внимание

Эта функция еще не реализована в самом Tidylib, поэтому всегда возвращается FALSE.


Разбор разметки в файле или URI

  • « tidy::isXml
  • tidy::parseString »
  • PHP Manual
  • tidy
  • Разбор разметки в файле или URI

tidy::parseFile

tidy_parse_file

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::parseFile -- tidy_parse_file — Разбор разметки в файле или URI

Описание

Объектно-ориентированный стиль

bool tidy::parseFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Процедурный стиль

tidy tidy_parse_file ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Разбор полученного файла.

Список параметров

filename

Если получен параметр filename, то функция прочитает этот файл и инициализирует объект с этим файлом, так же как делает это функция tidy_parse_file().

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то это интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Информацию о каждом параметре можно найти тут: » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

use_include_path

Поиск файла в include_path.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции tidy::parseFile()

<?php
$tidy = new tidy();
$tidy->parseFile('file.html');

$tidy->cleanRepair();

if(!empty($tidy->errorBuffer)) {
    echo "Возникли следующие ошибки или предупреждения:\n";
    echo $tidy->errorBuffer;
}
?>

Примечания

Замечание: Необязательные параметры config и enconding были добавлены в Tidy 2.0.

Смотрите также

  • tidy::parsestring() - Разбор документа, хранимого в строке
  • tidy::repairfile() - Восстанавливает разметку файла и возвращает его в виде строки
  • tidy::repairstring() - Восстанавливает строку, используя по возможности конфигурационный файл


Разбор документа, хранимого в строке

  • « tidy::parseFile
  • tidy::repairFile »
  • PHP Manual
  • tidy
  • Разбор документа, хранимого в строке

tidy::parseString

tidy_parse_string

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy::parseString -- tidy_parse_string — Разбор документа, хранимого в строке

Описание

Объектно-ориентированный стиль

bool tidy::parseString ( string $input [, mixed $config [, string $encoding ]] )

Процедурный стиль

tidy tidy_parse_string ( string $input [, mixed $config [, string $encoding ]] )

Разбор документа, хранимого в строке.

Список параметров

input

Данные для разбора.

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то это интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Информацию о каждом параметре можно найти тут: » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

Возвращаемые значения

Возвращает новый экземпляр tidy.

Примеры

Пример #1 Пример использования функции tidy::parseString()

<?php
ob_start();
?>

<html>
  <head>
   <title>тест</title>
  </head>
  <body>
   <p>ошибка<br>другая линия</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$config = array('indent' => TRUE,
                'output-xhtml' => TRUE,
                'wrap' => 200);

$tidy = tidy_parse_string($buffer, $config, 'UTF8');

$tidy->cleanRepair();
echo $tidy;
?>

Результат выполнения данного примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
      тест
    </title>
  </head>
  <body>
    <p>
      ошибка<br />
      другая линия
    </p>
  </body>
</html>

Примечания

Замечание: Необязательные параметры config и enconding были добавлены в Tidy 2.0.

Смотрите также

  • tidy::parseFile() - Разбор разметки в файле или URI
  • tidy::repairFile() - Восстанавливает разметку файла и возвращает его в виде строки
  • tidy::repairString() - Восстанавливает строку, используя по возможности конфигурационный файл


Восстанавливает разметку файла и возвращает его в виде строки

  • « tidy::parseString
  • tidy::repairString »
  • PHP Manual
  • tidy
  • Восстанавливает разметку файла и возвращает его в виде строки

tidy::repairFile

tidy_repair_file

(PHP 5, PHP 7, PECL tidy >= 0.7.0)

tidy::repairFile -- tidy_repair_file — Восстанавливает разметку файла и возвращает его в виде строки

Описание

Объектно-ориентированный стиль

string tidy::repairFile ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Процедурный стиль

string tidy_repair_file ( string $filename [, mixed $config [, string $encoding [, bool $use_include_path = false ]]] )

Воcстанавливает полученный файл и возвращает его в виде строки.

Список параметров

filename

Имя файла для восстановления.

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то это интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Информацию о каждом параметре можно найти тут: http://tidy.sourceforge.net/docs/quickref.html.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

use_include_path

Поиск файла в include_path.

Возвращаемые значения

Возвращает восстановленный документ в виде строки.

Примеры

Пример #1 Пример использования функции tidy::repairFile()

<?php
$file = 'file.html';

$tidy = new tidy();
$repaired = $tidy->repairfile($file);
rename($file, $file . '.bak');

file_put_contents($file, $repaired);
?>

Примечания

Замечание: Необязательные параметры config и enconding были добавлены в Tidy 2.0.

Смотрите также

  • tidy::parseFile() - Разбор разметки в файле или URI
  • tidy::parseString() - Разбор документа, хранимого в строке
  • tidy::repairString() - Восстанавливает строку, используя по возможности конфигурационный файл


Восстанавливает строку, используя по возможности конфигурационный файл

  • « tidy::repairFile
  • tidy::root »
  • PHP Manual
  • tidy
  • Восстанавливает строку, используя по возможности конфигурационный файл

tidy::repairString

tidy_repair_string

(PHP 5, PHP 7, PECL tidy >= 0.7.0)

tidy::repairString -- tidy_repair_string — Восстанавливает строку, используя по возможности конфигурационный файл

Описание

Объектно-ориентированный стиль

string tidy::repairString ( string $data [, mixed $config [, string $encoding ]] )

Процедурный стиль

string tidy_repair_string ( string $data [, mixed $config [, string $encoding ]] )

Восстанавливает полученную строку.

Список параметров

data

Данные для восстановления.

config

Настройки config могут быть заданы в виде массива или строки. Если задана строка, то это интерпретируется как имя файла конфигурации, в противном случае, параметр интерпретируется как сами настройки.

Информацию о каждом параметре можно найти тут: » http://tidy.sourceforge.net/docs/quickref.html.

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

Возвращаемые значения

Возвращает восстановленную строку.

Примеры

Пример #1 Пример использования функции tidy::repairString()

<?php
ob_start();
?>

<html>
  <head>
    <title>тест</title>
  </head>
  <body>
    <p>ошибка</i>
  </body>
</html>

<?php

$buffer = ob_get_clean();
$tidy = new tidy();
$clean = $tidy->repairString($buffer);

echo $clean;
?>

Результат выполнения данного примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>тест</title>
</head>
<body>
<p>ошибка</p>
</body>
</html>

Примечания

Замечание: Необязательные параметры config и enconding были добавлены в Tidy 2.0.

Смотрите также

  • tidy::parseFile() - Разбор разметки в файле или URI
  • tidy::parseString() - Разбор документа, хранимого в строке
  • tidy::repairFile() - Восстанавливает разметку файла и возвращает его в виде строки


Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева

  • « tidy::repairString
  • tidyNode »
  • PHP Manual
  • tidy
  • Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева

tidy::root

tidy_get_root

(PHP 5, PHP 7, PECL tidy 0.5.2-1.0.0)

tidy::root -- tidy_get_root — Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева

Описание

Объектно-ориентированный стиль

tidyNode tidy::root ( void )

Процедурный стиль

tidyNode tidy_get_root ( tidy $object )

Возвращает объект tidyNode, представляющий вершину разобранного tidy-дерева.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает объект tidyNode.

Примеры

Пример #1 Пример использования функции tidy::root()

<?php

$html = <<< HTML
<html><body>

<p>параграф</p>
<br/>

</body></html>
HTML;

$tidy = tidy_parse_string($html);
dump_nodes($tidy->root(), 1);

function dump_nodes($node, $indent) {

    if($node->hasChildren()) {
        foreach($node->child as $child) {
            echo str_repeat('.', $indent*2) . ($child->name ? $child->name : '"'.$child->value.'"'). "\n";

            dump_nodes($child, $indent+1);
        }
    }
}
?>

Результат выполнения данного примера:

..html
....head
......title
....body
......p
........"параграф"
......br

Примечания

Замечание: Эта функция доступна только в Zend Engine 2 (PHP >= 5.0.0).


Класс tidyNode

(PHP 5 >= 5.0.1, PHP 7)

Введение

HTML-узел в HTML-файле, обнаруженный Tidy.

Обзор классов

tidyNode {
/* Свойства */
string $value;
string $name;
int $type;
int $line;
int $column;
bool $proprietary;
int $id;
array $attribute;
array $child;
/* Методы */
tidyNode getParent ( void )
bool hasChildren ( void )
bool hasSiblings ( void )
bool isAsp ( void )
bool isComment ( void )
bool isHtml ( void )
bool isJste ( void )
bool isPhp ( void )
bool isText ( void )
}

Свойства

value

HTML-представление узла, включая окружающие теги.

name

Название HTML-узла

type

Тип тэга (одна из констант, описанных выше, таких как TIDY_NODETYPE_PHP)

line

Номер строки, на которой расположен тег в файле

column

Номер столбца, на котором расположен тег в файле

proprietary

Признак проприетарности тега

id

Идентификатор тега (одна из констант, описанных выше, таких как TIDY_TAG_FRAME)

attribute

Массив строк, представляющих имена атрибутов (в качестве ключей) текущего узла.

child

Массив, состоящий из экземпляров tidyNode, представляющий детей текущего узла.

Версия | Описание
5.1.0 | Были добавлены line, column и proprietary

Содержание

  • tidyNode::getParent — Возвращает родительский узел текущего узла
  • tidyNode::hasChildren — Проверяет существование потомков у узла
  • tidyNode::hasSiblings — Проверяет существование соседних узлов
  • tidyNode::isAsp — Проверяет текущий узел на соответствие ASP
  • tidyNode::isComment — Проверяет, является ли узел комментарием
  • tidyNode::isHtml — Проверяет, является ли текущий узел частью HTML-документа
  • tidyNode::isJste — Проверяет текущий узел на соответствие JSTE
  • tidyNode::isPhp — Проверяет, является ли текущий узел PHP-кодом
  • tidyNode::isText — Проверяет, является ли текущий узел обычным текстом (не разметкой)


Возвращает родительский узел текущего узла

  • « tidyNode
  • tidyNode::hasChildren »
  • PHP Manual
  • tidyNode
  • Возвращает родительский узел текущего узла

tidyNode::getParent

(PHP 5 >= 5.2.2, PHP 7)

tidyNode::getParent — Возвращает родительский узел текущего узла

Описание

tidyNode tidyNode::getParent ( void )

Возвращает родительский узел текущего узла.

Примеры

Пример #1 Пример использования функции tidyNode::getParent()

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE код */
  alert('Hello World');
#>
 </head>
 <body>
 Hello World
 </body>
</html>

HTML;

$tidy = tidy_parse_string($html);
$num = 0;

$node = $tidy->html()->child[0]->child[0];

var_dump($node->getparent()->name);
?>

Результат выполнения данного примера:

string(4) "head"

Возвращаемые значения

Возвращает объект tidyNode, если узел имеет родителя, в противном случае NULL.


Проверяет существование потомков у узла

  • « tidyNode::getParent
  • tidyNode::hasSiblings »
  • PHP Manual
  • tidyNode
  • Проверяет существование потомков у узла

tidyNode::hasChildren

(PHP 5 >= 5.0.1, PHP 7)

tidyNode::hasChildren — Проверяет существование потомков у узла

Описание

bool tidyNode::hasChildren ( void )

Сообщает, есть ли у заданного узла потомки.

Возвращаемые значения

Возвращает 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 >= 5.0.1, PHP 7)

tidyNode::hasSiblings — Проверяет существование соседних узлов

Описание

bool tidyNode::hasSiblings ( void )

Проверяет существование соседних узлов.

Возвращаемые значения

Возвращает 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 >= 5.0.1, PHP 7)

tidyNode::isAsp — Проверяет текущий узел на соответствие ASP

Описание

bool tidyNode::isAsp ( void )

Проверяет текущий узел на соответствие 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 >= 5.0.1, PHP 7)

tidyNode::isComment — Проверяет, является ли узел комментарием

Описание

bool tidyNode::isComment ( void )

Проверяет, является ли узел комментарием.

Возвращаемые значения

Возвращает TRUE, если узел является комментарием, FALSE - в противном случае.

Примеры

Пример #1 Извлечение комментариев из смешанного HTML-документа

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE код */
  alert('Привет Мир');
#>
</head>
<body>

<?php
  // PHP код
  echo 'привет мир!';
?>

<%
  /* ASP код */
  response.write("Привет Мир!")
%>

<!-- Комментарии -->
Привет Мир
</body></html>
За пределами HTML кода
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {

    // проверяет текущий узел на соответствие требуемому типу
    if($node->isComment()) {
        echo "\n\n# узел комментария #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // проверяет существование потомков у текущего узла
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Результат выполнения данного примера:

# нода комментария #1
<!-- Комментарии -->


Проверяет, является ли текущий узел частью HTML-документа

  • « tidyNode::isComment
  • tidyNode::isJste »
  • PHP Manual
  • tidyNode
  • Проверяет, является ли текущий узел частью HTML-документа

tidyNode::isHtml

(PHP 5 >= 5.0.1, PHP 7)

tidyNode::isHtml — Проверяет, является ли текущий узел частью HTML-документа

Описание

bool tidyNode::isHtml ( void )

Проверяет, является ли текущий узел частью HTML-документа.

Возвращаемые значения

Возвращает TRUE, если узел является частью HTML-документа, FALSE - в противном случае.

Примеры

Пример #1 Извлечение HTML-кода из смешанного HTML-документа

<?php

$html = <<< HTML
<html><head>
<?php echo '<title>заголовок</title>'; ?>
<#
  /* JSTE код */
  alert('Привет Мир');
#>
</head>
<body>

<?php
  // PHP код
  echo 'привет мир!';
?>

<%
  /* ASP код */
  response.write("Привет Мир!")
%>

<!-- Комментарии -->
Привет Мир
</body></html>
За пределами HTML кода
HTML;

$tidy = tidy_parse_string($html);
$num = 0;

get_nodes($tidy->html());

function get_nodes($node) {
    // проверяет текущий узел на соответствие требуемому типу
    if($node->isHtml()) {
        echo "\n\n# html нода #" . ++$GLOBALS['num'] . "\n";
        echo $node->value;
    }

    // проверяет существование потомков у текущего узла
    if($node->hasChildren()) {
        foreach($node->child as $child) {
            get_nodes($child);
        }
    }
}

?>

Результат выполнения данного примера:

# html узел #1
<html>
<head>
<?php echo '<title>заголовок</title>'; ?><#
  /* JSTE код */
  alert('Привет Мир');
#>
<title></title>
</head>
<body>
<?php
  // PHP код
  echo 'привет мир!';
?><%
  /* ASP код */
  response.write("Привет Мир!")
%><!-- Комментарии -->
Привет МирЗа пределами HTML кода
</body>
</html>

# html узел #2
<head>
<?php echo '<title>заголовок</title>'; ?><#
  /* JSTE код */
  alert('Привет Мир');
#>
<title></title>
</head>

# html узел #3
<?php echo '<title>заголовок</title>'; ?>

# html узел #4
<#
  /* JSTE код */
  alert('Привет Мир');
#>

# html узел #5
<title></title>

# html узел #6
<body>
<?php
  // PHP код
  echo 'привет мир!';
?><%
  /* ASP код */
  response.write("Привет Мир!")
%><!-- Комментарии -->
Привет МирЗа пределами HTML кода
</body>

# html узел #7
<?php
  // PHP код
  echo 'привет мир!';
?>

# html узел #8
<%
  /* ASP код */
  response.write("Привет Мир!")
%>

# html узел #9
<!-- Комментарии -->

# html узел #10
Привет Мир

# html узел #11
За пределами HTML кода


Проверяет текущий узел на соответствие JSTE

  • « tidyNode::isHtml
  • tidyNode::isPhp »
  • PHP Manual
  • tidyNode
  • Проверяет текущий узел на соответствие JSTE

tidyNode::isJste

(PHP 5 >= 5.0.1, PHP 7)

tidyNode::isJste — Проверяет текущий узел на соответствие JSTE

Описание

bool tidyNode::isJste ( void )

Сообщает, если узел соответствует 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 >= 5.0.1, PHP 7)

tidyNode::isPhp — Проверяет, является ли текущий узел PHP-кодом

Описание

bool tidyNode::isPhp ( void )

Проверяет, является ли текущий узел 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 >= 5.0.1, PHP 7)

tidyNode::isText — Проверяет, является ли текущий узел обычным текстом (не разметкой)

Описание

bool tidyNode::isText ( void )

Проверяет, является ли текущий узел обычным текстом (без какой-либо разметки).

Возвращаемые значения

Возвращает 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_load_config — Загрузить конфигурационный файл ASCII Tidy с указанной кодировкой
  • tidy_reset_config — Сбрасывает конфигурацию Tidy в стандартные значения
  • tidy_save_config — Сохранить текущие настройки в файл
  • tidy_set_encoding — Устанавливает входную/выходную кодировку символов для указанной разметки
  • tidy_setopt — Обновляет конфигурационные настройки для указанного документа tidy
  • tidy_warning_count — Возвращает число Tidy-предупреждений, встреченных в указанном документе


Функция обратного вызова ob_start для восстановление буфера

  • « Tidy
  • tidy_access_count »
  • PHP Manual
  • Tidy
  • Функция обратного вызова ob_start для восстановление буфера

ob_tidyhandler

(PHP 5, PHP 7)

ob_tidyhandler — Функция обратного вызова ob_start для восстановление буфера

Описание

string ob_tidyhandler ( string $input [, int $mode ] )

Функция обратного вызова ob_start() для восстановление буфера.

Список параметров

input

Буфер.

mode

Режим буфера.

Возвращаемые значения

Возвращает видоизмененный буфер.

Примеры

Пример #1 Пример использования ob_tidyhandler()

<?php
ob_start('ob_tidyhandler');

echo '<p>test</i>';
?>

Результат выполнения данного примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>test</p>
</body>
</html>

Смотрите также

  • ob_start() - Включение буферизации вывода


Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе

  • « ob_tidyhandler
  • tidy_config_count »
  • PHP Manual
  • Tidy
  • Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе

tidy_access_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_access_count — Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе

Описание

int tidy_access_count ( tidy $object )

tidy_access_count() возвращает число доступных предупреждений, найденных в рассмотренном документе.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает число предупреждений.

Примеры

Пример #1 Пример использования tidy_access_count()

<?php

$html ='<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html><head><title>Title</title></head>
<body>

<p><img src="img.png"></p>

</body></html>';

// выбирается уровень проверки доступности: 1, 2 или 3
$config = array('accessibility-check' => 3);

$tidy = new tidy();
$tidy->parseString($html, $config);
$tidy->cleanRepair();

/* Нельзя забывать про этот вызов! */
$tidy->diagnose();

echo tidy_access_count($tidy); //5

?>

Примечания

Замечание:

В соответствии с дизайном TidyLib, следует вызывать tidy_diagnose() до tidy_access_count() или последний будет всегда возвращать 0. Необходимо также указывать параметр конфигурации accessibility-check.

Смотрите также

  • tidy_error_count() - Возвращает число ошибок Tidy, встретившихся при рассмотрении документа
  • tidy_warning_count() - Возвращает число Tidy-предупреждений, встреченных в указанном документе


Возвращает число ошибок конфигурации Tidy, встретившихся при рассмотрении документа

  • « tidy_access_count
  • tidy_error_count »
  • PHP Manual
  • Tidy
  • Возвращает число ошибок конфигурации Tidy, встретившихся при рассмотрении документа

tidy_config_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_config_count — Возвращает число ошибок конфигурации Tidy, встретившихся при рассмотрении документа

Описание

int tidy_config_count ( tidy $object )

Возвращает число ошибок в конфигурации заданного объекта tidy.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает число ошибок.

Примеры

Пример #1 Пример использования tidy_config_count()

<?php
$html = '<p>test</I>';

$config = array('doctype' => 'bogus');

$tidy = tidy_parse_string($html, $config);

/* Выведет 1, потому как 'bogus' некорректное объявление типа документа */
echo tidy_config_count($tidy);
?>


Возвращает число ошибок Tidy, встретившихся при рассмотрении документа

  • « tidy_config_count
  • tidy_get_output »
  • PHP Manual
  • Tidy
  • Возвращает число ошибок Tidy, встретившихся при рассмотрении документа

tidy_error_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_error_count — Возвращает число ошибок Tidy, встретившихся при рассмотрении документа

Описание

int tidy_error_count ( tidy $object )

Возвращает число ошибок Tidy, встретившихся при рассмотрении документа.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает число ошибок Tidy.

Примеры

Пример #1 Пример использования tidy_error_count()

<?php
$html = '<p>test</i>
<bogustag>bogus</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1

echo $tidy->errorBuffer;
?>

Результат выполнения данного примера:

1
line 1 column 1 - Warning: missing <!DOCTYPE> declaration
line 1 column 8 - Warning: discarding unexpected </i>
line 2 column 1 - Error: <bogustag> is not recognized!
line 2 column 1 - Warning: discarding unexpected <bogustag>
line 2 column 16 - Warning: discarding unexpected </bogustag>
line 1 column 1 - Warning: inserting missing 'title' element

Смотрите также

  • tidy_access_count() - Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе
  • tidy_warning_count() - Возвращает число Tidy-предупреждений, встреченных в указанном документе


Возвращает строку, представляющую разобранную tidy-разметку

  • « tidy_error_count
  • tidy_load_config »
  • PHP Manual
  • Tidy
  • Возвращает строку, представляющую разобранную tidy-разметку

tidy_get_output

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_get_output — Возвращает строку, представляющую разобранную tidy-разметку

Описание

string tidy_get_output ( tidy $object )

Получить строку с восстановленным html.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает разобранную tidy-разметку.

Примеры

Пример #1 Пример использования функции tidy_get_output()

<?php

$html = '<p>параграф</i>';
$tidy = tidy_parse_string($html);

$tidy->cleanRepair();

echo tidy_get_output($tidy);
?>

Результат выполнения данного примера:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
<p>параграф</p>
</body>
</html>


Загрузить конфигурационный файл ASCII Tidy с указанной кодировкой

  • « tidy_get_output
  • tidy_reset_config »
  • PHP Manual
  • Tidy
  • Загрузить конфигурационный файл ASCII Tidy с указанной кодировкой

tidy_load_config

(PECL tidy >= 0.5.2)

tidy_load_config — Загрузить конфигурационный файл ASCII Tidy с указанной кодировкой

Описание

void tidy_load_config ( string $filename , string $encoding )

Загружает конфигурационный файл Tidy с указанной кодировкой encoding.

Список параметров

filename

encoding

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание: Эта функция доступна только в Tidy 1.0. С приходом Tidy 2.0 она стала ненужной и была удалена.


Сбрасывает конфигурацию Tidy в стандартные значения

  • « tidy_load_config
  • tidy_save_config »
  • PHP Manual
  • Tidy
  • Сбрасывает конфигурацию Tidy в стандартные значения

tidy_reset_config

(PECL tidy >= 0.7.0)

tidy_reset_config — Сбрасывает конфигурацию Tidy в стандартные значения

Описание

bool tidy_reset_config ( void )

Эта функция сбрасывает конфигурацию Tidy в стандартные значения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Эта функция доступна только в Tidy 1.0. С приходом Tidy 2.0 она стала ненужной и была удалена.


Сохранить текущие настройки в файл

  • « tidy_reset_config
  • tidy_set_encoding »
  • PHP Manual
  • Tidy
  • Сохранить текущие настройки в файл

tidy_save_config

(PECL tidy >= 0.5.2)

tidy_save_config — Сохранить текущие настройки в файл

Описание

bool tidy_save_config ( string $filename )

Сохраняет текущие настройки в указанный файл. Записываются только те значения, которые отличаются от значений по умолчанию.

Список параметров

filename

Путь к файлу конфигурации.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Эта функция доступна только в Tidy 1.0. С приходом Tidy 2.0 она стала ненужной и была удалена.

Смотрите также

  • tidy_get_config() - Получает текущую конфигурацию Tidy
  • tidy_getopt() - Возвращает значение указанного параметра конфигурации для документа tidy
  • tidy_reset_config() - Сбрасывает конфигурацию Tidy в стандартные значения
  • tidy_setopt() - Обновляет конфигурационные настройки для указанного документа tidy


Устанавливает входную/выходную кодировку символов для указанной разметки

  • « tidy_save_config
  • tidy_setopt »
  • PHP Manual
  • Tidy
  • Устанавливает входную/выходную кодировку символов для указанной разметки

tidy_set_encoding

(PECL tidy >= 0.5.2)

tidy_set_encoding — Устанавливает входную/выходную кодировку символов для указанной разметки

Описание

bool tidy_set_encoding ( string $encoding )

Устанавливает кодировку для входных/выходных документов.

Список параметров

encoding

Параметр encoding устанавливает кодировку для входных/выходных документов. Возможные значения: ascii, latin0, latin1, raw, utf8, iso2022, mac, win1252, ibm858, utf16, utf16le, utf16be, big5, и shiftjis.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Эта функция доступна только в Tidy 1.0. С приходом Tidy 2.0 она стала ненужной и была удалена.


Обновляет конфигурационные настройки для указанного документа tidy

  • « tidy_set_encoding
  • tidy_warning_count »
  • PHP Manual
  • Tidy
  • Обновляет конфигурационные настройки для указанного документа tidy

tidy_setopt

(PECL tidy >= 0.5.2)

tidy_setopt — Обновляет конфигурационные настройки для указанного документа tidy

Описание

bool tidy_setopt ( string $option , mixed $value )

Функция tidy_setopt() обновляет указанную опцию option новым значением value.

Список параметров

option

Название опции tidy. Список доступных конфигурационных опций может быть найден здесь: » http://tidy.sourceforge.net/docs/quickref.html.

value

Название опции tidy.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции tidy_setopt()

<?php
$html = '<p>тест</i>';

$tidy = tidy_parse_string($html);

tidy_setopt('indent', FALSE);
?>

Примечания

Замечание: Эта функция доступна только в Tidy 1.0. С приходом Tidy 2.0 она стала ненужной и была удалена.

Смотрите также

  • tidy_getopt() - Возвращает значение указанного параметра конфигурации для документа tidy
  • tidy_get_config() - Получает текущую конфигурацию Tidy
  • tidy_reset_config() - Сбрасывает конфигурацию Tidy в стандартные значения
  • tidy_save_config() - Сохранить текущие настройки в файл


Возвращает число Tidy-предупреждений, встреченных в указанном документе

  • « tidy_setopt
  • Лексер (Tokenizer) »
  • PHP Manual
  • Tidy
  • Возвращает число Tidy-предупреждений, встреченных в указанном документе

tidy_warning_count

(PHP 5, PHP 7, PECL tidy >= 0.5.2)

tidy_warning_count — Возвращает число Tidy-предупреждений, встреченных в указанном документе

Описание

int tidy_warning_count ( tidy $object )

Возвращает число Tidy-предупреждений, встреченных в указанном документе.

Список параметров

object

Объект Tidy.

Возвращаемые значения

Возвращает число предупреждений.

Примеры

Пример #1 Пример использования функции tidy_warning_count()

<?php
$html = '<p>тест</i>
<bogustag>фикция</bogustag>';

$tidy = tidy_parse_string($html);

echo tidy_error_count($tidy) . "\n"; //1
echo tidy_warning_count($tidy) . "\n"; //5
?>

Смотрите также

  • tidy_error_count() - Возвращает число ошибок Tidy, встретившихся при рассмотрении документа
  • tidy_access_count() - Возвращает число доступных предупреждений Tidy, встретившихся в рассмотренном документе


Лексер (Tokenizer)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции PHP-лексера (tokenizer)
    • token_get_all — Разбивает переданный исходный код на PHP-лексемы
    • token_name — Возвращает символьное имя для переданной PHP-лексемы


Введение

Лексические функции предоставляют интерфейс ко встроенному в Zend Engine PHP-лексеру (tokenizer). Используя эти функции, вы можете писать собственные утилиты анализа или модификации исходного кода на PHP без необходимости иметь дело с языковой спецификацией на лексическом уровне.

Смотрите также приложение со списком лексем.


Установка

Эти функции включены по умолчанию. Можно отключить поддержку лексера (tokenizer) с --disable-tokenizer .

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание: Встроенная поддержка для лексера доступна начиная с PHP 4.3.0.


Предопределенные константы

Когда расширение скомпилировано в PHP или динамически загружено во время выполнения, лексемы, приведенные в Список меток (tokens) парсера определены как константы.


Примеры

Простой пример PHP-скрипта, использующего tokenizer(лексер), который читает PHP файл, удаляет все комментарии из исходного кода и выводит только чистый код.

Пример #1 Удаление комментариев лексером

<?php
/*
* T_ML_COMMENT не существует в PHP 5.
* Следующие три строчки определяют его для
* сохранения обратной совместимости.
*
* Следующие две строчки определяют T_DOC_COMMENT только для PHP 5,
* который мы маскируем как T_ML_COMMENT для PHP 4.
*/
if (!defined('T_ML_COMMENT')) {
   define('T_ML_COMMENT', T_COMMENT);
} else {
   define('T_DOC_COMMENT', T_ML_COMMENT);
}

$source = file_get_contents('example.php');
$tokens = token_get_all($source);

foreach ($tokens as $token) {
   if (is_string($token)) {
       // простая 1-буквенная лексема
       echo $token;
   } else {
       // токен-массив
       list($id, $text) = $token;

       switch ($id) {
           case T_COMMENT:
           case T_ML_COMMENT: // мы определили это
           case T_DOC_COMMENT: // и это
               // нет действий для комментариев
               break;

           default:
               // все остальное -> выводим "как есть"
               echo $text;
               break;
       }
   }
}
?>


Функции PHP-лексера (tokenizer)

Содержание

  • token_get_all — Разбивает переданный исходный код на PHP-лексемы
  • token_name — Возвращает символьное имя для переданной PHP-лексемы


Разбивает переданный исходный код на PHP-лексемы

  • « Функции PHP-лексера (tokenizer)
  • token_name »
  • PHP Manual
  • Функции PHP-лексера (tokenizer)
  • Разбивает переданный исходный код на PHP-лексемы

token_get_all

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

token_get_all — Разбивает переданный исходный код на PHP-лексемы

Описание

array token_get_all ( string $source [, int $flags = 0 ] )

Функция token_get_all() разбирает переданную строку source в языковые лексемы PHP используя лексический сканер Zend Engine.

Список лексем смотрите в Список меток (tokens) парсера, или используйте token_name() для перевода значения лексемы в строковое представление.

Список параметров

source

Исходный код PHP для разбора.

flags

Корректные флаги:

  • TOKEN_PARSE - Признает возможность использовать зарезервированные слова в определенных контекстах.

Возвращаемые значения

Массив идентификаторов лексем. Каждый индивидуальный идентификатор лексемы это или одиночный символ (например, ;, ., >, !, другие...), или трехэлементный массив, содержащий индекс лексемы в нулевом элементе, строку с оригинальным содержимым лексемы в первом элементе и номером строки во втором элементе.

Список изменений

Версия | Описание
7.0.0 | Добавлен необязательный параметр flags, который может принимать значение TOKEN_PARSE.
5.2.2 | Номера строк возвращаются в элементе 2.

Примеры

Пример #1 token_get_all() example

<?php
$tokens = token_get_all('<?php echo; ?>');

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo "Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

Line 1: T_OPEN_TAG ('<?php ')
Line 1: T_ECHO ('echo')
Line 1: T_WHITESPACE (' ')
Line 1: T_CLOSE_TAG ('?>')

Пример #2 Пример неправильного использования token_get_all()

<?php
$tokens = token_get_all('/* комментарий */');

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo "Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

Line 1: T_INLINE_HTML ('/* комментарий */')
Обратите внимание, в приведенном примере строка разбирается как T_INLINE_HTML вместо ожидаемого T_COMMENT. Это происходит потому, что не используется открывающего тега в "коде". Это будет эквиалентно помещению комментариев вне тегов PHP в нормальном файле.

Пример #3 Пример использования token_get_all() с классом, использующим зарезервированные слова

<?php

$source = <<<'code'
<?php

class A
{
    const PUBLIC = 1;
}
code;

$tokens = token_get_all($source, TOKEN_PARSE);

foreach ($tokens as $token) {
    if (is_array($token)) {
        echo token_name($token[0]) , PHP_EOL;
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

T_OPEN_TAG
T_WHITESPACE
T_CLASS
T_WHITESPACE
T_STRING
T_CONST
T_WHITESPACE
T_STRING
T_LNUMBER
Без флага TOKEN_PARSE, предпоследний токен (T_STRING) был бы T_PUBLIC.

Смотрите также

  • token_name() - Возвращает символьное имя для переданной PHP-лексемы


Возвращает символьное имя для переданной PHP-лексемы

  • « token_get_all
  • URL »
  • PHP Manual
  • Функции PHP-лексера (tokenizer)
  • Возвращает символьное имя для переданной PHP-лексемы

token_name

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

token_name — Возвращает символьное имя для переданной PHP-лексемы

Описание

string token_name ( int $token )

Функция token_name() возвращает символьное имя для значения PHP-лексемы token.

Список параметров

token

Значение лексемы.

Возвращаемые значения

Символьное значение для переданной лексемы token.

Примеры

Пример #1 Пример использования token_name()

<?php
// 260 - значение для лексемы T_EVAL
echo token_name(260);        // -> "T_EVAL"

// Константа лексемы сопоставима с его собственным именем
echo token_name(T_FUNCTION); // -> "T_FUNCTION"
?>

Смотрите также

  • Список лексем


URL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • URL
    • base64_decode — Декодирует данные, закодированные алгоритмом MIME base64
    • base64_encode — Кодирует данные алгоритмом MIME base64
    • get_headers — Возвращает все заголовки из ответа сервера на HTTP-запрос
    • get_meta_tags — Извлекает из файла содержимое всех мета-тегов и возвращает как ассоциативный массив
    • http_build_query — Генерирует URL-кодированную строку запроса
    • parse_url — Разбирает URL и возвращает его компоненты
    • rawurldecode — Декодирование URL-кодированной строки
    • rawurlencode — URL-кодирование строки согласно RFC 3986
    • urldecode — Декодирование URL-кодированной строки
    • urlencode — URL-кодирование строки


  • « URL
  • Установка и настройка »
  • PHP Manual
  • URL
  • Введение

Введение

Работа со строками URL: кодирование, декодирование, разбор.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Следующие константы доступны для использования с parse_url() начиная с версии PHP 5.1.2.

PHP_URL_SCHEME (integer)
PHP_URL_HOST (integer)
Вывод имени из хоста разобранного URL.
PHP_URL_PORT (integer)
Вывод порта из разобранного URL.
PHP_URL_USER (integer)
Вывод пользователя из разобранного URL.
PHP_URL_PASS (integer)
Вывод пароля из разобранного URL.
PHP_URL_PATH (integer)
Вывод пути из разобранного URL.
PHP_URL_QUERY (integer)
Вывод строки запроса из разобранного URL.
PHP_URL_FRAGMENT (integer)
Вывод фрагмента(строка после символа #) из разобранного URL.

Следующие константы предназначены для использования с http_build_query().

PHP_QUERY_RFC1738 (integer)
Кодирование выполняется в соответствии с » RFC 1738 и медиа-типом application/x-www-form-urlencoded. Это означает, что пробелы заменяются символом плюс(+).
PHP_QUERY_RFC3986 (integer)
Кодирование производится в соответствии с » RFC 3986, и пробелы кодируются как %20.


URL

Содержание

  • base64_decode — Декодирует данные, закодированные алгоритмом MIME base64
  • base64_encode — Кодирует данные алгоритмом MIME base64
  • get_headers — Возвращает все заголовки из ответа сервера на HTTP-запрос
  • get_meta_tags — Извлекает из файла содержимое всех мета-тегов и возвращает как ассоциативный массив
  • http_build_query — Генерирует URL-кодированную строку запроса
  • parse_url — Разбирает URL и возвращает его компоненты
  • rawurldecode — Декодирование URL-кодированной строки
  • rawurlencode — URL-кодирование строки согласно RFC 3986
  • urldecode — Декодирование URL-кодированной строки
  • urlencode — URL-кодирование строки


Декодирует данные, закодированные алгоритмом MIME base64

  • « URL
  • base64_encode »
  • PHP Manual
  • URL
  • Декодирует данные, закодированные алгоритмом MIME base64

base64_decode

(PHP 4, PHP 5, PHP 7)

base64_decode — Декодирует данные, закодированные алгоритмом MIME base64

Описание

string base64_decode ( string $data [, bool $strict = false ] )

Декодирует строку data, закодированную при помощи base64.

Список параметров

data

Закодированные данные.

strict

Возвращает FALSE, если данные содержат символы вне алфавита base64.

Возвращаемые значения

Возвращает декодированные данные или FALSE в случае возникновения ошибки. Возвращаемые данные могут быть бинарными.

Список изменений

Версия | Описание
5.2.0 | Добавлен параметр strict

Примеры

Пример #1 Пример использования base64_decode()

<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo base64_decode($str);
?>

Результат выполнения данного примера:

This is an encoded string

Смотрите также

  • base64_encode() - Кодирует данные алгоритмом MIME base64
  • » RFC 2045 раздел 6.8


Кодирует данные алгоритмом MIME base64

  • « base64_decode
  • get_headers »
  • PHP Manual
  • URL
  • Кодирует данные алгоритмом MIME base64

base64_encode

(PHP 4, PHP 5, PHP 7)

base64_encode — Кодирует данные алгоритмом MIME base64

Описание

string base64_encode ( string $data )

Кодирует data алгоритмом base64.

Это кодирование разработано для корректной передачи бинарных данных по протоколам, не поддерживающим 8-битную передачу, например для отправки бинарных файлов в теле письма.

Данные кодированные алгоритмом Base64 увеличиваются в объеме на 33% по сравнению с оригинальными данными.

Список параметров

data

Данные для кодирования.

Возвращаемые значения

Кодированные данные, как строку или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования base64_encode()

<?php
$str = 'Строка в кодировке UTF-8';
echo base64_encode($str);
?>

Результат выполнения данного примера:

0KHRgtGA0L7QutCwINCyINC60L7QtNC40YDQvtCy0LrQtSBVVEYtOA==

Смотрите также

  • base64_decode() - Декодирует данные, закодированные алгоритмом MIME base64
  • chunk_split() - Разбивает строку на фрагменты
  • convert_uuencode() - Кодирует строку в формат uuencode
  • » RFC 2045 раздел 6.8


Возвращает все заголовки из ответа сервера на HTTP-запрос

  • « base64_encode
  • get_meta_tags »
  • PHP Manual
  • URL
  • Возвращает все заголовки из ответа сервера на HTTP-запрос

get_headers

(PHP 5, PHP 7)

get_headers — Возвращает все заголовки из ответа сервера на HTTP-запрос

Описание

array get_headers ( string $url [, int $format = 0 ] )

get_headers() возвращает массив с заголовками из ответа сервера на HTTP-запрос.

Список параметров

url

Целевой URL.

format

Если необязательный параметр format установлен в ненулевое значение, get_headers() разберет ответ сервера и установит ключи для возвращаемого массива.

Возвращаемые значения

Возвращает список или ассоциативный массив с заголовками ответа при нормальном завершении и FALSE, если возникла ошибка.

Список изменений

Версия | Описание
5.1.3 | Эта функция теперь использует stream context по умолчанию, который может быть установлен или изменен при помощи функции stream_context_set_default().

Примеры

Пример #1 Пример использования get_headers()

<?php
$url = 'http://www.example.com';

print_r(get_headers($url));

print_r(get_headers($url, 1));
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Sat, 29 May 2004 12:28:13 GMT
    [2] => Server: Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [3] => Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
    [4] => ETag: "3f80f-1b6-3e1cb03b"
    [5] => Accept-Ranges: bytes
    [6] => Content-Length: 438
    [7] => Connection: close
    [8] => Content-Type: text/html
)

Array
(
    [0] => HTTP/1.1 200 OK
    [Date] => Sat, 29 May 2004 12:28:14 GMT
    [Server] => Apache/1.3.27 (Unix)  (Red-Hat/Linux)
    [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT
    [ETag] => "3f80f-1b6-3e1cb03b"
    [Accept-Ranges] => bytes
    [Content-Length] => 438
    [Connection] => close
    [Content-Type] => text/html
)

Пример #2 Пример использования запроса HEAD в функцииget_headers()

<?php
// По умолчанию функция get_headers использует GET-запрос для получения заголовков. Если
// вы хотите вместо него отправить HEAD-запрос, то это можно сделать следующим образом, используя stream context:
stream_context_set_default(
    array(
        'http' => array(
            'method' => 'HEAD'
        )
    )
);
$headers = get_headers('http://example.com');
?>

Смотрите также

  • apache_request_headers() - Получает список всех заголовков HTTP-запроса


Извлекает из файла содержимое всех мета-тегов и возвращает как ассоциативный массив

  • « get_headers
  • http_build_query »
  • PHP Manual
  • URL
  • Извлекает из файла содержимое всех мета-тегов и возвращает как ассоциативный массив

get_meta_tags

(PHP 4, PHP 5, PHP 7)

get_meta_tags — Извлекает из файла содержимое всех мета-тегов и возвращает как ассоциативный массив

Описание

array get_meta_tags ( string $filename [, bool $use_include_path = 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> <!-- разбор файла будет остановлен здесь -->
(обратите внимание на символы конца строки - PHP использует для разбора строк функции, встроенные в операционную систему, поэтому файлы, созданные в MacOS не будут правильно обрабатываться на Unix).

use_include_path

Если use_include_path равен TRUE, PHP будет искать файл используя стандартные пути поиска из директивы php.ini include_path. Это актуально только для локальных файлов, но не для URL.

Возвращаемые значения

Возвращает ассоциативный массив со значениями разобранных мета-тегов.

Значение атрибута name становится ключом массива, а значение атрибута content - значением этого элемента. Вы можете использовать стандартные функции работы с массивами для обхода или доступа к конкретным значениям. Специальные символы в именах (ключах массива) заменяются на '_', и ключи приводятся к нижнему регистру. Если два мета-тега имеют одинаковые имена, будет возвращен только последний.

Примеры

Пример #2 Что возвращает функция get_meta_tags()

<?php
// Предположим, что указанные выше мета-теги расположены на www.example.com
$tags = get_meta_tags('http://www.example.com/');

// Обратите внимание, что ключи приведены к нижнему регистру, а
//  точки ('.') в ключах  заменены на '_'
echo $tags['author'];       // name
echo $tags['keywords'];     // php documentation
echo $tags['description'];  // a php manual
echo $tags['geo_position']; // 49.33;-86.59
?>

Примечания

Замечание:

Обрабатываются только мета-теги с атрибутом name. Кавычки не требуются.

Смотрите также

  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • urlencode() - URL-кодирование строки


Генерирует URL-кодированную строку запроса

  • « get_meta_tags
  • parse_url »
  • PHP Manual
  • URL
  • Генерирует URL-кодированную строку запроса

http_build_query

(PHP 5, PHP 7)

http_build_query — Генерирует URL-кодированную строку запроса

Описание

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )

Генерирует URL-кодированную строку запроса из предоставленного ассоциативного (или индексного) массива.

Список параметров

query_data

Может быть массивом или объектом, содержащим свойства.

Если query_data массив, то он может быть простой одномерной структурой, или массивом массивов (который, в свою очередь, может содержать другие массивы).

Если query_data объект, тогда только общедоступные (public) свойства будут включены в результат.

numeric_prefix

Если числовые индексы используются в базовом массиве и этот параметр указан, то будет добавлен числовой индекс только для элементов в базовом массиве.

Это позволяет обеспечить допустимые имена переменных, в которые позже данные декодируются PHP или другим CGI приложением.

arg_separator

arg_separator.output Используется в качестве разделителя аргументов, но может быть переопределен через задание этого параметра.

enc_type

По умолчанию, PHP_QUERY_RFC1738.

Если enc_type равен PHP_QUERY_RFC1738, тогда кодирование осуществляется по » RFC 1738 и типу контента application/x-www-form-urlencoded, который подразумевает, что пробелы кодируются как символы "плюс"(+).

Если enc_type равен PHP_QUERY_RFC3986, тогда кодирование осуществляется в соответствии с » RFC 3986, и пробелы будут кодированы как %20.

Возвращаемые значения

Возвращает URL-кодированную строку.

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр enc_type.
5.1.3 | Квадратные скобки экранируются.
5.1.2 | Добавлен параметр arg_separator.

Примеры

Пример #1 Простой пример использования http_build_query()

<?php
$data = array('foo'=>'bar',
              'baz'=>'boom',
              'cow'=>'milk',
              'php'=>'hypertext processor');

echo http_build_query($data) . "\n";
echo http_build_query($data, '', '&amp;');

?>

Результат выполнения данного примера:

foo=bar&baz=boom&cow=milk&php=hypertext+processor
foo=bar&amp;baz=boom&amp;cow=milk&amp;php=hypertext+processor

Пример #2 Пример использования http_build_query() с числовыми индексами элементов.

<?php
$data = array('foo', 'bar', 'baz', 'boom', 'cow' => 'milk', 'php' =>'hypertext processor');

echo http_build_query($data) . "\n";
echo http_build_query($data, 'myvar_');
?>

Результат выполнения данного примера:

0=foo&1=bar&2=baz&3=boom&cow=milk&php=hypertext+processor
myvar_0=foo&myvar_1=bar&myvar_2=baz&myvar_3=boom&cow=milk&php=hypertext+processor

Пример #3 Пример использования http_build_query() с многомерными массивами

<?php
$data = array('user'=>array('name'=>'Bob Smith',
                            'age'=>47,
                            'sex'=>'M',
                            'dob'=>'5/12/1956'),
              'pastimes'=>array('golf', 'opera', 'poker', 'rap'),
              'children'=>array('bobby'=>array('age'=>12,
                                               'sex'=>'M'),
                                'sally'=>array('age'=>8,
                                               'sex'=>'F')),
              'CEO');

echo http_build_query($data, 'flags_');
?>

Результат выполнения данных примеров: (символы перенесены для удобства чтения)

user%5Bname%5D=Bob+Smith&user%5Bage%5D=47&user%5Bsex%5D=M&
user%5Bdob%5D=5%2F12%2F1956&pastimes%5B0%5D=golf&pastimes%5B1%5D=opera&
pastimes%5B2%5D=poker&pastimes%5B3%5D=rap&children%5Bbobby%5D%5Bage%5D=12&
children%5Bbobby%5D%5Bsex%5D=M&children%5Bsally%5D%5Bage%5D=8&
children%5Bsally%5D%5Bsex%5D=F&flags_0=CEO

Замечание:

Только числовой индексированный элемент "CEO" в базовом массиве получил префикс. Другие числовые индексы, найденные в pastimes, не требуют строкового префикса чтобы быть допустимым именем переменной.

Пример #4 Пример использования http_build_query() с объектом

<?php
class parentClass {
    public    $pub      = 'publicParent';
    protected $prot     = 'protectedParent';
    private   $priv     = 'privateParent';
    public    $pub_bar  = Null;
    protected $prot_bar = Null;
    private   $priv_bar = Null;

    public function __construct(){
        $this->pub_bar  = new childClass();
        $this->prot_bar = new childClass();
        $this->priv_bar = new childClass();
    }
}

class childClass {
    public    $pub  = 'publicChild';
    protected $prot = 'protectedChild';
    private   $priv = 'privateChild';
}

$parent = new parentClass();

echo http_build_query($parent);
?>

Результат выполнения данного примера:

pub=publicParent&pub_bar%5Bpub%5D=publicChild

Смотрите также

  • parse_str() - Разбирает строку в переменные
  • parse_url() - Разбирает URL и возвращает его компоненты
  • urlencode() - URL-кодирование строки
  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива


Разбирает URL и возвращает его компоненты

  • « http_build_query
  • rawurldecode »
  • PHP Manual
  • URL
  • Разбирает URL и возвращает его компоненты

parse_url

(PHP 4, PHP 5, PHP 7)

parse_url — Разбирает URL и возвращает его компоненты

Описание

mixed parse_url ( string $url [, int $component = -1 ] )

Эта функция разбирает URL и возвращает ассоциативный массив, содержащий все компоненты URL, которые в нём присутствуют.

Эта функция не предназначена для проверки на корректность данного URL, она только разбивает его на нижеперечисленные части. Частичные URL также принимаются, parse_url() пытается сделать всё возможное, чтобы разобрать их корректно.

Список параметров

url

URL для разбора. Недопустимые символы будут заменены на знаки подчёркивания _.

component

Укажите одну из констант PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY или PHP_URL_FRAGMENT, чтобы получить только конкретный компонент URL в виде строки (string). Исключением является указание PHP_URL_PORT, в этом случае возвращаемое значение будет типа integer.

Возвращаемые значения

При разборе значительно некорректных URL-адресов parse_url() может вернуть FALSE.

Если параметр component будет опущен, функция возвратит ассоциативный массив (array). В массиве будет находиться по крайней мере один элемент. Возможные ключи в этом массиве:

  • scheme - например, http
  • host
  • port
  • user
  • pass
  • path
  • query - после знака вопроса ?
  • fragment - после знака диеза #

Если параметр component определён, функция parse_url() вернёт строку (string) или число (integer), в случае PHP_URL_PORT) вместо массива (array). Если запрошенный компонент не существует в данном URL, будет возвращён NULL.

Список изменений

Версия | Описание
5.4.7 | Исправлено распознавание host, если в URL отсутствовал компонент scheme и использовался ведущий разделитель компонентов.
5.3.3 | Удалено E_WARNING, которое сообщало о невозможности разбора URL.
5.1.2 | Добавлен параметр component.

Примеры

Пример #1 Пример использования parse_url()

<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';

var_dump(parse_url($url));
var_dump(parse_url($url, PHP_URL_SCHEME));
var_dump(parse_url($url, PHP_URL_USER));
var_dump(parse_url($url, PHP_URL_PASS));
var_dump(parse_url($url, PHP_URL_HOST));
var_dump(parse_url($url, PHP_URL_PORT));
var_dump(parse_url($url, PHP_URL_PATH));
var_dump(parse_url($url, PHP_URL_QUERY));
var_dump(parse_url($url, PHP_URL_FRAGMENT));
?>

Результат выполнения данного примера:

array(8) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(8) "hostname"
  ["port"]=>
  int(9090)
  ["user"]=>
  string(8) "username"
  ["pass"]=>
  string(8) "password"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(9) "arg=value"
  ["fragment"]=>
  string(6) "anchor"
}
string(4) "http"
string(8) "username"
string(8) "password"
string(8) "hostname"
int(9090)
string(5) "/path"
string(9) "arg=value"
string(6) "anchor"

Пример #2 Пример использования parse_url() при отсутствии протокола

<?php
$url = '//www.example.com/path?googleguy=googley';

// До 5.4.7 в path выводилось "//www.example.com/path"
var_dump(parse_url($url));
?>

Результат выполнения данного примера:

array(3) {
  ["host"]=>
  string(15) "www.example.com"
  ["path"]=>
  string(5) "/path"
  ["query"]=>
  string(17) "googleguy=googley"
}

Примечания

Замечание:

Эта функция не работает с относительными URL.

Замечание:

Эта функция предназначена специально для разбора URL-адресов, а не URI. Однако, чтобы соответствовать требованиям обратной совместимости PHP, она делает исключение для протокола file://, в которой допускаются тройные слеши (file:///...). Для любого другого протокола это недопустимо.

Смотрите также

  • pathinfo() - Возвращает информацию о пути к файлу
  • parse_str() - Разбирает строку в переменные
  • http_build_query() - Генерирует URL-кодированную строку запроса
  • dirname() - Возвращает имя родительского каталога из указанного пути
  • basename() - Возвращает последний компонент имени из указанного пути
  • » RFC 3986


Декодирование URL-кодированной строки

  • « parse_url
  • rawurlencode »
  • PHP Manual
  • URL
  • Декодирование URL-кодированной строки

rawurldecode

(PHP 4, PHP 5, PHP 7)

rawurldecode — Декодирование URL-кодированной строки

Описание

string rawurldecode ( string $str )

Возвращает строку, в которой последовательность знаков процента (%) и следующие за ним два шестнадцатеричных числа заменены буквенными символами.

Список параметров

str

URL, который должен быть декодирован.

Возвращаемые значения

Возвращает декодированный URL в виде строки.

Примеры

Пример #1 Пример использования rawurldecode()

<?php

echo rawurldecode('foo%20bar%40baz'); // foo bar@baz

?>

Примечания

Замечание:

rawurldecode() не декодирует символ сложения ('+') в пробелы. Это делает urldecode().

Смотрите также

  • rawurlencode() - URL-кодирование строки согласно RFC 3986
  • urldecode() - Декодирование URL-кодированной строки
  • urlencode() - URL-кодирование строки
  • » RFC 3986


URL-кодирование строки согласно RFC 3986

  • « rawurldecode
  • urldecode »
  • PHP Manual
  • URL
  • URL-кодирование строки согласно RFC 3986

rawurlencode

(PHP 4, PHP 5, PHP 7)

rawurlencode — URL-кодирование строки согласно RFC 3986

Описание

string rawurlencode ( string $str )

Кодирование строки осуществляется согласно » RFC 3986.

Список параметров

str

URL, который должен быть закодирован.

Возвращаемые значения

Возвращает строку, в которой все не цифробуквенные символы, кроме -_. должны быть заменены знаком процента (%), за которым следует два шестнадцатеричных числа. Это кодирование, описанное в » RFC 3986, служит для защиты буквенных символов от интерпретации в качестве специальных разграничителей URL и защищает URL от искажения при передаче символов с последующей конвертацией (как в некоторых почтовых системах).

Замечание:

До версии PHP 5.3.0, rawurlencode кодировал символ "тильда" (~) в соответствии с » RFC 1738.

Список изменений

Версия | Описание
5.3.4 | Символы "тильда" больше не кодируются, когда rawurlencode() используется с EBCDIC строками.
5.3.0 | Теперь соответствует » RFC 3986.

Примеры

Пример #1 Пример использования rawurlencode для включение пароля в FTP URL

<?php
echo '<a href="ftp://user:', rawurlencode('foo @+%/'),
     '@ftp.example.com/x.txt">';
?>

Результат выполнения данного примера:

<a href="ftp://user:foo%20%40%2B%25%2F@ftp.example.com/x.txt">

Или, если вы передаете информацию как часть URL:

Пример #2 Пример использования rawurlencode()

<?php
echo '<a href="http://example.com/department_list_script/',
    rawurlencode('sales and marketing/Miami'), '">';
?>

Результат выполнения данного примера:

<a href="http://example.com/department_list_script/sales%20and%20marketing%2FMiami">

Смотрите также

  • rawurldecode() - Декодирование URL-кодированной строки
  • urldecode() - Декодирование URL-кодированной строки
  • urlencode() - URL-кодирование строки
  • » RFC 3986


Декодирование URL-кодированной строки

  • « rawurlencode
  • urlencode »
  • PHP Manual
  • URL
  • Декодирование URL-кодированной строки

urldecode

(PHP 4, PHP 5, PHP 7)

urldecode — Декодирование URL-кодированной строки

Описание

string urldecode ( string $str )

Декодирует любые %## кодированные последовательности в данной строке. Символ "плюс" ('+') декодируется в символ пробела.

Список параметров

str

Строка, которая должны быть декодирована.

Возвращаемые значения

Возвращает декодированную строку.

Примеры

Пример #1 Пример использования urldecode()

<?php
$query = "my=apples&are=green+and+red";

foreach (explode('&', $query) as $chunk) {
    $param = explode("=", $chunk);

    if ($param) {
        printf("Value for parameter \"%s\" is \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
    }
}
?>

Примечания

Внимание

Переменные в суперглобальных массивах $_GET и $_REQUEST уже декодированы. Применение urldecode() к элементам $_GET или $_REQUEST может привести к непредсказуемым и опасным результатам.

Смотрите также

  • urlencode() - URL-кодирование строки
  • rawurlencode() - URL-кодирование строки согласно RFC 3986
  • rawurldecode() - Декодирование URL-кодированной строки
  • » RFC 3986


URL-кодирование строки

  • « urldecode
  • V8js »
  • PHP Manual
  • URL
  • URL-кодирование строки

urlencode

(PHP 4, PHP 5, PHP 7)

urlencode — URL-кодирование строки

Описание

string urlencode ( string $str )

Эта функция удобна, когда закодированная строка будет использоваться в запросе, как часть URL, также это удобный способ для передачи переменных другим страницам.

Список параметров

str

Строка, которая должны быть закодирована.

Возвращаемые значения

Возвращает строку, в которой все не цифробуквенные символы, кроме -_. должны быть заменены знаком процента (%), за которым следует два шестнадцатеричных числа, а пробелы кодируются как знак сложения (+). Строка кодируется тем же способом, что и POST данные WWW-формы, то есть по типу контента application/x-www-form-urlencoded. Это отличается от » RFC 3986 кодирования (см. rawurlencode() ) тем, что, по историческим соображениям, пробелы кодируются как знак "плюс" (+).

Примеры

Пример #1 Пример использования urlencode()

<?php
echo '<a href="mycgi?foo=', urlencode($userinput), '">';
?>

Пример #2 Пример использования urlencode() и htmlentities()

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

Примечания

Замечание:

Будьте внимательны с переменными, которые могут совпадать с элементами HTML. Такие сущности как &amp, &copy и &pound разбираются браузером и используется как реальная сущность, а не желаемое имя переменной. Это очевидный конфликт, на который W3C указывает в течение многих лет. См. подробности: » http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2

PHP поддерживает изменение разделителя аргументов на рекомендуемый W3C символ "точку с запятой" путём изменения директивы arg_separator в .ini файле. К сожалению, большинство пользовательских приложений не отправляют данные формы в формате с разделителем "точка с запятой". Более переносимый способ решить эту проблему - это использовать &amp; вместо & в качестве разделителя. Вам не нужно будет для этого изменять PHP-директиву arg_separator. Оставьте разделитель как &, но кодируйте ваши URL с помощью htmlentities() или htmlspecialchars().

Смотрите также

  • urldecode() - Декодирование URL-кодированной строки
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • rawurlencode() - URL-кодирование строки согласно RFC 3986
  • rawurldecode() - Декодирование URL-кодированной строки
  • » RFC 3986


Интеграция V8 Javascript Engine

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Примеры
  • V8Js — Класс V8Js
    • V8Js::__construct — Создает новый объект V8Js
    • V8Js::executeString — Выполнить строку как код Javascript
    • V8Js::getExtensions — Возвращает массив зарегистрированных расширений
    • V8Js::getPendingException — Возвращает ожидающее непойманное исключение Javascript
    • V8Js::registerExtension — Регистрация расширения Javascript для V8Js
  • V8JsException — Класс V8JsException
    • V8JsException::getJsFileName — Получить имя файла JavaScript
    • V8JsException::getJsLineNumber — Получить номер строки
    • V8JsException::getJsSourceLine — Получить исходную строку JavaScript
    • V8JsException::getJsTrace — Получить стек вызовов


  • « V8js
  • Установка и настройка »
  • PHP Manual
  • V8js
  • Введение

Введение

Это расширение включает » V8 Javascript Engine в PHP.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

PHP 5.3.3+, библиотеки и заголовочные файлы V8 установленные по правильному пути.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/v8js


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки V8js
Имя | По умолчанию | Меняемо | Список изменений
v8js.max_disposed_contexts | 25 | PHP_INI_ALL |
v8js.flags |  | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

v8js.max_disposed_contexts integer

Устанавливает предел размещенного контекста, после которого V8 принудительно запустит сборщик мусора.

v8js.flags string

Устанавливает флаги коммандной строки V8. Список доступных флагов можно посмотреть в режиме CLI, задав параметр --help. Пример:

$ php -r 'ini_set("v8js.flags", "--help"); new V8Js;' | less

Замечание:

Для эффективного управления флагами во время исполнения используйте ini_set() перед тем, как создавать объекты V8Js!


Примеры

Основы использования

Пример #1 Запуск Javascript

<?php

$v8 = new V8Js();

/* basic.js */
$JS = <<< EOT
len = print('Hello' + ' ' + 'World!' + "\\n");
len;
EOT;

try {
  var_dump($v8->executeString($JS, 'basic.js'));
} catch (V8JsException $e) {
  var_dump($e);
}

?>

Результат выполнения данного примера:

Hello World!
int(13)


Класс V8Js

(PECL v8js >= 0.1.0)

Введение

Это основной класс расширения V8Js. Каждый экземпляр этого класса имеет собственный контекст, в котором будет скомпилирован и запущен JavaScript.

Также смотрите V8Js::__construct().

Обзор классов

V8Js {
/* Константы */
const string V8_VERSION ;
const integer FLAG_NONE = 1 ;
const integer FLAG_FORCE_ARRAY = 2 ;
/* Методы */
public __construct ([ string $object_name = "PHP" [, array $variables = array() [, array $extensions = array() [, bool $report_uncaught_exceptions = TRUE ]]]] )
public mixed executeString ( string $script [, string $identifier = "V8Js::executeString()" [, int $flags = V8Js::FLAG_NONE ]] )
public static array getExtensions ( void )
public V8JsException getPendingException ( void )
public static bool registerExtension ( string $extension_name , string $script [, array $dependencies = array() [, bool $auto_enable = FALSE ]] )
}

Предопределенные константы

V8Js::V8_VERSION

Версия движка V8 Javascript.

V8Js::FLAG_NONE

Без флагов.

V8Js::FLAG_FORCE_ARRAY

Принуждает объекты JS быть ассоциативными массивами PHP.

Содержание

  • V8Js::__construct — Создает новый объект V8Js
  • V8Js::executeString — Выполнить строку как код Javascript
  • V8Js::getExtensions — Возвращает массив зарегистрированных расширений
  • V8Js::getPendingException — Возвращает ожидающее непойманное исключение Javascript
  • V8Js::registerExtension — Регистрация расширения Javascript для V8Js


Создает новый объект V8Js

  • « V8Js
  • V8Js::executeString »
  • PHP Manual
  • V8Js
  • Создает новый объект V8Js

V8Js::__construct

(PECL v8js >= 0.1.0)

V8Js::__construct — Создает новый объект V8Js

Описание

 public V8Js::__construct
  ([ string $object_name = "PHP"
 [, array $variables = array()
 [, array $extensions = array()
 [, bool $report_uncaught_exceptions = TRUE
]]]] )

Создает новый объект V8Js.

Список параметров

object_name

Имя объекта, передаваемого в Javascript.

variables

Список переменных PHP, которые должны быть доступны в Javascript. Ассоциативный массив формата array("name-for-js" => "name-of-php-variable"). По умолчанию пустой массив.

extensions

Список зарегистрированных через V8Js::registerExtension() расширений, которые должны быть доступны в контексте созданного объекта V8Js.

Замечание:

Расширения, зарегистрированные как доступные автоматически, не нужно перечислять в этом массиве. Также, если расширение имеет какие либо зависимости, то их тоже не нужно перечислять. По умолчанию пустой массив.

report_uncaught_exceptions

Определяет, будут ли сообщаться о непойманных исключениях JavaScript сразу или нет. По умолчанию TRUE. Если установить в FALSE, то эти исключения будут доступны через V8Js::getPendingException().

Возвращаемые значения

Возвращает новый объект V8Js.


Выполнить строку как код Javascript

  • « V8Js::__construct
  • V8Js::getExtensions »
  • PHP Manual
  • V8Js
  • Выполнить строку как код Javascript

V8Js::executeString

(PECL v8js >= 0.1.0)

V8Js::executeString — Выполнить строку как код Javascript

Описание

public mixed V8Js::executeString ( string $script [, string $identifier = "V8Js::executeString()" [, int $flags = V8Js::FLAG_NONE ]] )

Компилирует и выполняет строку, переданную в параметр 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 array V8Js::getExtensions ( void )

Возвращает массив зарегистрированных через V8Js::registerExtension() расширений Javascript.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив зарегистрированных расширений или пустой массив, если их нет.


Возвращает ожидающее непойманное исключение Javascript

  • « V8Js::getExtensions
  • V8Js::registerExtension »
  • PHP Manual
  • V8Js
  • Возвращает ожидающее непойманное исключение Javascript

V8Js::getPendingException

(PECL v8js >= 0.1.0)

V8Js::getPendingException — Возвращает ожидающее непойманное исключение Javascript

Описание

public V8JsException V8Js::getPendingException ( void )

Возвращает ожидающее непойманное исключение 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 bool V8Js::registerExtension ( string $extension_name , string $script [, array $dependencies = array() [, bool $auto_enable = FALSE ]] )

Регистрация переданного в script Javascript как расширения для использования V8Js.

Список параметров

extension_name

Имя регистрируемого расширения.

script

Код Javascript для регистрации.

dependencies

Массив имен расширений, от которых зависит регистрируемое расширение. Каждое из этих расширений будет разрешено автоматически при загрузке этого расширения.

Замечание:

Все расширения, включая зависимости, должны быть зарегистрированы до того, как создавать V8Js их использующие.

auto_enable

Если установлено в TRUE, расширение будет разрешено автоматически для любого контекста V8Js.

Возвращаемые значения

Возвращает TRUE если расширение зарегистрировано удачно или FALSE в обратном случае.


Класс V8JsException

(PECL v8js >= 0.1.0)

Введение

Обзор классов

V8JsException extends Exception {
/* Свойства */
protected $JsFileName ;
protected $JsLineNumber ;
protected $JsSourceLine ;
protected $JsTrace ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
final public string getJsFileName ( void )
final public int getJsLineNumber ( void )
final public string getJsSourceLine ( void )
final public string getJsTrace ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void 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 string V8JsException::getJsFileName ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить номер строки

  • « V8JsException::getJsFileName
  • V8JsException::getJsSourceLine »
  • PHP Manual
  • V8JsException
  • Получить номер строки

V8JsException::getJsLineNumber

(PECL v8js >= 0.1.0)

V8JsException::getJsLineNumber — Получить номер строки

Описание

final public int V8JsException::getJsLineNumber ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить исходную строку JavaScript

  • « V8JsException::getJsLineNumber
  • V8JsException::getJsTrace »
  • PHP Manual
  • V8JsException
  • Получить исходную строку JavaScript

V8JsException::getJsSourceLine

(PECL v8js >= 0.1.0)

V8JsException::getJsSourceLine — Получить исходную строку JavaScript

Описание

final public string V8JsException::getJsSourceLine ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить стек вызовов

  • « V8JsException::getJsSourceLine
  • Yaml »
  • PHP Manual
  • V8JsException
  • Получить стек вызовов

V8JsException::getJsTrace

(PECL v8js >= 0.1.0)

V8JsException::getJsTrace — Получить стек вызовов

Описание

final public string V8JsException::getJsTrace ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Сериализация данных YAML

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Callbacks
    • Parse callbacks
    • Emit callbacks
  • 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, может быть найдена здесь: » http://pecl.php.net/package/yaml.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Yaml Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
yaml.decode_binary | 0 | PHP_INI_ALL |
yaml.decode_php | 1 | PHP_INI_ALL |
yaml.decode_timestamp | 0 | PHP_INI_ALL |
yaml.output_canonical | 0 | PHP_INI_ALL |
yaml.output_indent | 2 | PHP_INI_ALL |
yaml.output_width | 80 | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

yaml.decode_binary boolean

Off by default, but can be set to on to cause base64 binary encoded entities which have the explicit tag "tag:yaml.org,2002:binary" to be decoded.

yaml.decode_php boolean

On by default, but can be set to off to prevent serialized php objects which have the explicit tag "!php/object" from being unserialized.

yaml.decode_timestamp integer

Controls the decoding of both implicit and explict "tag:yaml.org,2002:timestamp" scalars in the YAML document stream. The default setting of 0 will not apply any decoding. A setting of 1 will use strtotime() to parse the timestamp value as a Unix timestamp. A setting of 2 will use date_create() to parse the timestamp value as DateTime object.

yaml.output_canonical boolean

Off by default, but can be set to on to cause canonical form output.

yaml.output_indent integer

Number of spaces to indent sections. Value should be between 1 and 10.

yaml.output_width integer

Set the preferred line width. -1 means unlimited.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Скалярные стлил сущностей, которые можно использовать в callback-методах yaml_parse().
YAML_ANY_SCALAR_STYLE (integer)
YAML_PLAIN_SCALAR_STYLE (integer)
YAML_SINGLE_QUOTED_SCALAR_STYLE (integer)
YAML_DOUBLE_QUOTED_SCALAR_STYLE (integer)
YAML_LITERAL_SCALAR_STYLE (integer)
YAML_FOLDED_SCALAR_STYLE (integer)
Стандартные теги, которые можно использовать в callback-методах yaml_parse().
YAML_NULL_TAG (string)
"tag:yaml.org,2002:null"
YAML_BOOL_TAG (string)
"tag:yaml.org,2002:bool"
YAML_STR_TAG (string)
"tag:yaml.org,2002:str"
YAML_INT_TAG (string)
"tag:yaml.org,2002:int"
YAML_FLOAT_TAG (string)
"tag:yaml.org,2002:float"
YAML_TIMESTAMP_TAG (string)
"tag:yaml.org,2002:timestamp"
YAML_SEQ_TAG (string)
"tag:yaml.org,2002:seq"
YAML_MAP_TAG (string)
"tag:yaml.org,2002:map"
YAML_PHP_TAG (string)
"!php/object"
Типы кодировок для yaml_emit()
YAML_ANY_ENCODING (integer)
Позволить источнику выбрать кодировку.
YAML_UTF8_ENCODING (integer)
UTF8
YAML_UTF16LE_ENCODING (integer)
UTF16LE
YAML_UTF16BE_ENCODING (integer)
UTF16BE
Символ(ы) конца строки для yaml_emit()
YAML_ANY_BREAK (integer)
Позволить источнику выбрать символ конца строки.
YAML_CR_BREAK (integer)
Использовать \r (стиль Mac).
YAML_LN_BREAK (integer)
Использовать \n (стиль Unix).
YAML_CRLN_BREAK (integer)
Использовать \r\n (стиль DOS/Windows).


Примеры

Пример #1 Пример работы с Yaml

<?php
$addr = array(
    "given" => "Chris",
    "family"=> "Dumars",
    "address"=> array(
        "lines"=> "458 Walkman Dr.
        Suite #292",
        "city"=> "Royal Oak",
        "state"=> "MI",
        "postal"=> 48046,
      ),
  );
$invoice = array (
    "invoice"=> 34843,
    "date"=> "2001-01-23",
    "bill-to"=> $addr,
    "ship-to"=> $addr,
    "product"=> array(
        array(
            "sku"=> "BL394D",
            "quantity"=> 4,
            "description"=> "Basketball",
            "price"=> 450,
          ),
        array(
            "sku"=> "BL4438H",
            "quantity"=> 1,
            "description"=> "Super Hoop",
            "price"=> 2392,
          ),
      ),
    "tax"=> 251.42,
    "total"=> 4443.52,
    "comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
    );

// создание YAML-представления заказа
$yaml = yaml_emit($invoice);
var_dump($yaml);

// преобразование YAML обратно в PHP-переменную
$parsed = yaml_parse($yaml);

// проверка на соответствие оригинала и результата конвертации в YAML и обратно
var_dump($parsed == $invoice);
?>

Результатом выполнения данного примера будет что-то подобное:

string(631) "---
invoice: 34843
date: "2001-01-23"
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"
bool(true)


  • « Примеры
  • Parse callbacks »
  • PHP Manual
  • Yaml
  • Callbacks

Callbacks

Содержание

  • Parse callbacks
  • Emit callbacks


Parse callbacks

Parse callbacks are invoked by yaml_parse(), yaml_parse_file() or yaml_parse_url() functions when a registered YAML tag is encountered. The callback is passed the tagged entity's value, the tag, and flags indicating the scalar entity style. The callback must return the data that the YAML parser should emit for this entity.

Пример #1 Parse callback example

<?php
/**
 * Parsing callback for yaml tag.
 * @param mixed $value Data from yaml file
 * @param string $tag Tag that triggered callback
 * @param int $flags Scalar entity style (see YAML_*_SCALAR_STYLE)
 * @return mixed Value that YAML parser should emit for the given value
 */
function tag_callback ($value, $tag, $flags) {
  var_dump(func_get_args()); // debugging
  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"
}


Emit callbacks

Emit callbacks are invoked when an instance of a registered class is emitted by yaml_emit() or yaml_emit_file(). The callback is passed the object to be emitted. The callback must return an array having two keys: "tag" and "data". The value associated with the "tag" key must be a string to be used as the YAML tag in the output. The value associated with the "data" key will be encoded as YAML and emitted in place of the intercepted object.

Пример #1 Emit callback example

<?php
class EmitExample {
  public $data;    // data may be in any pecl/yaml suitable type

  public function __construct ($d) {
    $this->data = $d;
  }

  /**
   * Yaml emit callback function, referred on yaml_emit call by class name.
   *
   * Expected to return an array with 2 values:
   *   - 'tag': custom tag for this serialization
   *   - 'data': value to convert to yaml (array, string, bool, number)
   *
   * @param object $obj Object to be emitted
   * @return array Tag and surrogate data to emit
   */
  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-представление значения в файл

Описание

bool yaml_emit_file ( string $filename , mixed $data [, int $encoding = YAML_ANY_ENCODING [, int $linebreak = YAML_ANY_BREAK [, array $callbacks = null ]]] )

Генерирует 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 объектов класса => callable. Дополнительная информация приведена в emit callbacks.

Возвращаемые значения

Возвращает TRUE в случае успеха.

Список изменений

Версия | Описание
1.1.0 | Добавлен аргумент callbacks.

Смотрите также

  • yaml_emit() - Возвращает YAML представление значения
  • yaml_parse() - Разбирает поток YAML


Возвращает YAML представление значения

  • « yaml_emit_file
  • yaml_parse_file »
  • PHP Manual
  • Yaml Функции
  • Возвращает YAML представление значения

yaml_emit

(PECL yaml >= 0.5.0)

yaml_emit — Возвращает YAML представление значения

Описание

string yaml_emit ( mixed $data [, int $encoding = YAML_ANY_ENCODING [, int $linebreak = YAML_ANY_BREAK [, array $callbacks = null ]]] )

Возвращает 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. Ассоциативный массив, где в качестве ключей используются имена классов, а в качестве значений, callback-функции, которые будут создавать узлы для этих классов. Больше подробностей можно узнать в разделе испускающие callback-функции.

Возвращаемые значения

Возвращает YAML закодированную string при успешной обработке.

Список изменений

Версия | Описание
1.1.0 | Добавлен параметр callbacks.

Примеры

Пример #1 Пример использования yaml_emit()

<?php
$addr = array(
    "given" => "Chris",
    "family"=> "Dumars",
    "address"=> array(
        "lines"=> "458 Walkman Dr.
        Suite #292",
        "city"=> "Royal Oak",
        "state"=> "MI",
        "postal"=> 48046,
      ),
  );
$invoice = array (
    "invoice"=> 34843,
    "date"=> 980208000,
    "bill-to"=> $addr,
    "ship-to"=> $addr,
    "product"=> array(
        array(
            "sku"=> "BL394D",
            "quantity"=> 4,
            "description"=> "Basketball",
            "price"=> 450,
          ),
        array(
            "sku"=> "BL4438H",
            "quantity"=> 1,
            "description"=> "Super Hoop",
            "price"=> 2392,
          ),
      ),
    "tax"=> 251.42,
    "total"=> 4443.52,
    "comments"=> "Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.",
  );
var_dump(yaml_emit($invoice));
?>

Результатом выполнения данного примера будет что-то подобное:

string(628) "---
invoice: 34843
date: 980208000
bill-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
ship-to:
  given: Chris
  family: Dumars
  address:
    lines: |-
      458 Walkman Dr.
              Suite #292
    city: Royal Oak
    state: MI
    postal: 48046
product:
- sku: BL394D
  quantity: 4
  description: Basketball
  price: 450
- sku: BL4438H
  quantity: 1
  description: Super Hoop
  price: 2392
tax: 251.420000
total: 4443.520000
comments: Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
...
"

Смотрите также

  • yaml_emit_file() - Отправляет YAML-представление значения в файл
  • yaml_parse() - Разбирает поток YAML


Разбирает YAML-поток из файла

  • « yaml_emit
  • yaml_parse_url »
  • PHP Manual
  • Yaml Функции
  • Разбирает YAML-поток из файла

yaml_parse_file

(PECL yaml >= 0.4.0)

yaml_parse_file — Разбирает YAML-поток из файла

Описание

mixed yaml_parse_file ( string $filename [, int $pos = 0 [, int &$ndocs [, array $callbacks = null ]]] )

Конвертирует полностью или частично поток YAML-документов, читаемых из файла, в переменную PHP.

Список параметров

filename

Путь к файлу.

pos

Индекс документа для извлечения из потока (-1 для всех документов, 0 для первого документа, ...).

ndocs

Если ndocs передан, то он будет заполнен количеством документов, найденных в потоке.

callbacks

Обработчики содержимых YAML-нод. Ассоциативный массив array сопоставлений: YAML-тэг => callback. Больше информации в разделе callback-функции разбора

Возвращаемые значения

Возвращает значение, кодированное в input, в подходящем PHP типе или FALSE в случае возникновения ошибки. Если pos равняется -1, то будет возвращен массив, содержащий по одной записи для каждого документа, найденного в потоке.

Примечания

Внимание

Обрабатывать недоверенный пользовательский ввод с помощью функции 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

Описание

mixed yaml_parse_url ( string $url [, int $pos = 0 [, int &$ndocs [, array $callbacks = null ]]] )

Конвертирует полностью или частично поток YAML-документов, читаемых из URL, в переменную PHP.

Список параметров

url

url должен быть в форме "scheme://...". PHP будет искать обработчик протокола (также известный как адаптер) для указанной схемы. Если адаптеры для этого протокола не зарегистрированы, PHP сгенерирует уведомление, чтобы помочь вам отследить потенциальные проблемы в вашем скрипте, а затем продолжит выполнение так, как будто был указан обычный файл.

pos

Индекс документа для извлечения из потока (-1 для всех документов, 0 для первого документа, ...).

ndocs

Если ndocs передан, то он будет заполнен количеством документов, найденных в потоке.

callbacks

Обработчики содержимых YAML-нод. Ассоциативный массив array сопоставлений: YAML-тэг => callback. Больше информации в разделе 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

Описание

mixed yaml_parse ( string $input [, int $pos = 0 [, int &$ndocs [, array $callbacks = null ]]] )

Конвертирует весь поток YAML или его часть и записывает в переменную.

Список параметров

input

Строка для парсинга как поток YAML.

pos

Документ для разбора (-1 для всех документов, 0 для первого документа, ...).

ndocs

Если ndocs найден, тогда он будет заменен на количество документов в потоке YAML.

callbacks

Обработчик контент для узлов YAML. Ассоциативный массив, ключи которого являются тегами YAML, а значения callback-функциями, которые будут их обрабатывать. Более подробно этот механизм описан в разделе 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 — Retrieve an Application instance
    • Yaf_Application::bootstrap — Call bootstrap
    • Yaf_Application::clearLastError — Clear the last error info
    • Yaf_Application::__clone — Yaf_Application can not be cloned
    • Yaf_Application::__construct — Yaf_Application constructor
    • Yaf_Application::__destruct — The __destruct purpose
    • Yaf_Application::environ — Retrive environ
    • Yaf_Application::execute — Execute a callback
    • Yaf_Application::getAppDirectory — Get the application directory
    • Yaf_Application::getConfig — Retrive the config instance
    • Yaf_Application::getDispatcher — Get Yaf_Dispatcher instance
    • Yaf_Application::getLastErrorMsg — Get message of the last occurred error
    • Yaf_Application::getLastErrorNo — Get code of last occurred error
    • Yaf_Application::getModules — Get defined module names
    • Yaf_Application::run — Start Yaf_Application
    • Yaf_Application::setAppDirectory — Change the application directory
    • Yaf_Application::__sleep — Yaf_Application can not be serialized
    • Yaf_Application::__wakeup — Yaf_Application can not be unserialized
  • Yaf_Bootstrap_Abstract — Класс Yaf_Bootstrap_Abstract
  • Yaf_Dispatcher — Класс Yaf_Dispatcher
    • Yaf_Dispatcher::autoRender — Switch on/off autorendering
    • Yaf_Dispatcher::catchException — Switch on/off exception catching
    • Yaf_Dispatcher::__clone — Yaf_Dispatcher can not be cloned
    • Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor
    • Yaf_Dispatcher::disableView — Disable view rendering
    • Yaf_Dispatcher::dispatch — Dispatch a request
    • Yaf_Dispatcher::enableView — enable view rendering
    • Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing
    • Yaf_Dispatcher::getApplication — Retrive the application
    • Yaf_Dispatcher::getInstance — Retrive the dispatcher instance
    • Yaf_Dispatcher::getRequest — Retrive the request instance
    • Yaf_Dispatcher::getRouter — Retrive router instance
    • Yaf_Dispatcher::initView — Initialize view and return it
    • Yaf_Dispatcher::registerPlugin — Register a plugin
    • Yaf_Dispatcher::returnResponse — The returnResponse purpose
    • Yaf_Dispatcher::setDefaultAction — Change default action name
    • Yaf_Dispatcher::setDefaultController — Change default controller name
    • Yaf_Dispatcher::setDefaultModule — Change default module name
    • Yaf_Dispatcher::setErrorHandler — Set error handler
    • Yaf_Dispatcher::setRequest — The setRequest purpose
    • Yaf_Dispatcher::setView — Set a custom view engine
    • Yaf_Dispatcher::__sleep — Yaf_Dispatcher can not be serialized
    • Yaf_Dispatcher::throwException — Switch on/off exception throwing
    • Yaf_Dispatcher::__wakeup — Yaf_Dispatcher can not be unserialized
  • Yaf_Config_Abstract — The Yaf_Config_Abstract class
    • Yaf_Config_Abstract::get — Getter
    • Yaf_Config_Abstract::readonly — Find a config whether readonly
    • Yaf_Config_Abstract::set — Setter
    • Yaf_Config_Abstract::toArray — Cast to array
  • Yaf_Config_Ini — Класс Yaf_Config_Ini
    • Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor
    • Yaf_Config_Ini::count — The count purpose
    • Yaf_Config_Ini::current — The current purpose
    • Yaf_Config_Ini::__get — The __get purpose
    • Yaf_Config_Ini::__isset — The __isset purpose
    • Yaf_Config_Ini::key — The key purpose
    • Yaf_Config_Ini::next — The next purpose
    • Yaf_Config_Ini::offsetExists — The offsetExists purpose
    • Yaf_Config_Ini::offsetGet — The offsetGet purpose
    • Yaf_Config_Ini::offsetSet — The offsetSet purpose
    • Yaf_Config_Ini::offsetUnset — The offsetUnset purpose
    • Yaf_Config_Ini::readonly — The readonly purpose
    • Yaf_Config_Ini::rewind — The rewind purpose
    • Yaf_Config_Ini::__set — The __set purpose
    • Yaf_Config_Ini::toArray — Returns a PHP array
    • Yaf_Config_Ini::valid — The valid purpose
  • Yaf_Config_Simple — The Yaf_Config_Simple class
    • Yaf_Config_Simple::__construct — The __construct purpose
    • Yaf_Config_Simple::count — The count purpose
    • Yaf_Config_Simple::current — The current purpose
    • Yaf_Config_Simple::__get — The __get purpose
    • Yaf_Config_Simple::__isset — The __isset purpose
    • Yaf_Config_Simple::key — The key purpose
    • Yaf_Config_Simple::next — The next purpose
    • Yaf_Config_Simple::offsetExists — The offsetExists purpose
    • Yaf_Config_Simple::offsetGet — The offsetGet purpose
    • Yaf_Config_Simple::offsetSet — The offsetSet purpose
    • Yaf_Config_Simple::offsetUnset — The offsetUnset purpose
    • Yaf_Config_Simple::readonly — The readonly purpose
    • Yaf_Config_Simple::rewind — The rewind purpose
    • Yaf_Config_Simple::__set — The __set purpose
    • Yaf_Config_Simple::toArray — Returns a PHP array
    • Yaf_Config_Simple::valid — The valid purpose
  • Yaf_Controller_Abstract — The Yaf_Controller_Abstract class
    • Yaf_Controller_Abstract::__clone — Yaf_Controller_Abstract can not be cloned
    • Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor
    • Yaf_Controller_Abstract::display — The display purpose
    • Yaf_Controller_Abstract::forward — foward to another action
    • Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose
    • Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose
    • Yaf_Controller_Abstract::getModuleName — Get module name
    • Yaf_Controller_Abstract::getRequest — Retrieve current request object
    • Yaf_Controller_Abstract::getResponse — Retrieve current response object
    • Yaf_Controller_Abstract::getView — Retrieve the view engine
    • Yaf_Controller_Abstract::getViewpath — The getViewpath purpose
    • Yaf_Controller_Abstract::init — Controller initializer
    • Yaf_Controller_Abstract::initView — The initView purpose
    • Yaf_Controller_Abstract::redirect — Redirect to a URL
    • Yaf_Controller_Abstract::render — Render view template
    • Yaf_Controller_Abstract::setViewpath — The setViewpath purpose
  • Yaf_Action_Abstract — The Yaf_Action_Abstract class
    • Yaf_Action_Abstract::execute — Action entry point
    • Yaf_Action_Abstract::getController — Retrieve controller object
  • Yaf_View_Interface — The Yaf_View_Interface class
    • Yaf_View_Interface::assign — Assign value to View engine
    • Yaf_View_Interface::display — Render and output a template
    • Yaf_View_Interface::getScriptPath — The getScriptPath purpose
    • Yaf_View_Interface::render — Render a template
    • Yaf_View_Interface::setScriptPath — The setScriptPath purpose
  • Yaf_View_Simple — The Yaf_View_Simple class
    • Yaf_View_Simple::assign — Assign values
    • Yaf_View_Simple::assignRef — The assignRef purpose
    • Yaf_View_Simple::clear — Clear Assigned values
    • Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple
    • Yaf_View_Simple::display — Render and display
    • Yaf_View_Simple::eval — Render template
    • Yaf_View_Simple::__get — Retrieve assigned variable
    • Yaf_View_Simple::getScriptPath — Get templates directory
    • Yaf_View_Simple::__isset — The __isset purpose
    • Yaf_View_Simple::render — Render template
    • Yaf_View_Simple::__set — Set value to engine
    • Yaf_View_Simple::setScriptPath — Set tempaltes directory
  • Yaf_Loader — The Yaf_Loader class
    • Yaf_Loader::autoload — The autoload purpose
    • Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose
    • Yaf_Loader::__clone — The __clone purpose
    • Yaf_Loader::__construct — The __construct purpose
    • Yaf_Loader::getInstance — The getInstance purpose
    • Yaf_Loader::getLibraryPath — get the library path
    • Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose
    • Yaf_Loader::import — The import purpose
    • Yaf_Loader::isLocalName — The isLocalName purpose
    • Yaf_Loader::registerLocalNamespace — register local class prefix
    • Yaf_Loader::setLibraryPath — Change the library path
    • Yaf_Loader::__sleep — The __sleep purpose
    • Yaf_Loader::__wakeup — The __wakeup purpose
  • Yaf_Plugin_Abstract — The Yaf_Plugin_Abstract class
    • Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose
    • Yaf_Plugin_Abstract::dispatchLoopStartup — The dispatchLoopStartup purpose
    • Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose
    • Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose
    • Yaf_Plugin_Abstract::preResponse — The preResponse purpose
    • Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose
    • Yaf_Plugin_Abstract::routerStartup — RouterStartup hook
  • Yaf_Registry — The Yaf_Registry class
    • Yaf_Registry::__clone — The __clone purpose
    • Yaf_Registry::__construct — Yaf_Registry implements singleton
    • Yaf_Registry::del — Remove an item from registry
    • Yaf_Registry::get — Retrieve an item from registry
    • Yaf_Registry::has — Check whether an item exists
    • Yaf_Registry::set — Add an item into registry
  • Yaf_Request_Abstract — The Yaf_Request_Abstract class
    • Yaf_Request_Abstract::getActionName — The getActionName purpose
    • Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose
    • Yaf_Request_Abstract::getControllerName — The getControllerName purpose
    • Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe
    • Yaf_Request_Abstract::getException — The getException purpose
    • Yaf_Request_Abstract::getLanguage — The getLanguage purpose
    • Yaf_Request_Abstract::getMethod — The getMethod purpose
    • Yaf_Request_Abstract::getModuleName — The getModuleName purpose
    • Yaf_Request_Abstract::getParam — The getParam purpose
    • Yaf_Request_Abstract::getParams — The getParams purpose
    • Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose
    • Yaf_Request_Abstract::getServer — Retrieve SERVER variable
    • Yaf_Request_Abstract::isCli — The isCli purpose
    • Yaf_Request_Abstract::isDispatched — The isDispatched purpose
    • Yaf_Request_Abstract::isGet — The isGet purpose
    • Yaf_Request_Abstract::isHead — The isHead purpose
    • Yaf_Request_Abstract::isOptions — The isOptions purpose
    • Yaf_Request_Abstract::isPost — The isPost purpose
    • Yaf_Request_Abstract::isPut — The isPut purpose
    • Yaf_Request_Abstract::isRouted — The isRouted purpose
    • Yaf_Request_Abstract::isXmlHttpRequest — The isXmlHttpRequest purpose
    • Yaf_Request_Abstract::setActionName — The setActionName purpose
    • Yaf_Request_Abstract::setBaseUri — set base URI
    • Yaf_Request_Abstract::setControllerName — The setControllerName purpose
    • Yaf_Request_Abstract::setDispatched — The setDispatched purpose
    • Yaf_Request_Abstract::setModuleName — The setModuleName purpose
    • Yaf_Request_Abstract::setParam — The setParam purpose
    • Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose
    • Yaf_Request_Abstract::setRouted — The setRouted purpose
  • Yaf_Request_Http — The Yaf_Request_Http class
    • Yaf_Request_Http::__clone — The __clone purpose
    • Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http
    • Yaf_Request_Http::get — Retrieve variable from client
    • Yaf_Request_Http::getCookie — Retrieve Cookie variable
    • Yaf_Request_Http::getFiles — The getFiles purpose
    • Yaf_Request_Http::getPost — Retrieve POST variable
    • Yaf_Request_Http::getQuery — Fetch a query parameter
    • Yaf_Request_Http::getRequest — The getRequest purpose
    • Yaf_Request_Http::isXmlHttpRequest — Whether a Ajax Request
  • Yaf_Request_Simple — The Yaf_Request_Simple class
    • Yaf_Request_Simple::__clone — The __clone purpose
    • Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple
    • Yaf_Request_Simple::get — The get purpose
    • Yaf_Request_Simple::getCookie — The getCookie purpose
    • Yaf_Request_Simple::getFiles — The getFiles purpose
    • Yaf_Request_Simple::getPost — The getPost purpose
    • Yaf_Request_Simple::getQuery — The getQuery purpose
    • Yaf_Request_Simple::getRequest — The getRequest purpose
    • Yaf_Request_Simple::isXmlHttpRequest — The isXmlHttpRequest purpose
  • Yaf_Response_Abstract — The Yaf_Response_Abstract class
    • Yaf_Response_Abstract::appendBody — append to body
    • Yaf_Response_Abstract::clearBody — The clearBody purpose
    • Yaf_Response_Abstract::clearHeaders — The clearHeaders purpose
    • Yaf_Response_Abstract::__clone — The __clone purpose
    • Yaf_Response_Abstract::__construct — The __construct purpose
    • Yaf_Response_Abstract::__destruct — The __destruct purpose
    • Yaf_Response_Abstract::getBody — Retrieve a exists content
    • Yaf_Response_Abstract::getHeader — The getHeader purpose
    • Yaf_Response_Abstract::prependBody — The prependBody purpose
    • Yaf_Response_Abstract::response — send response
    • Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose
    • Yaf_Response_Abstract::setBody — Set content to response
    • Yaf_Response_Abstract::setHeader — The setHeader purpose
    • Yaf_Response_Abstract::setRedirect — The setRedirect purpose
    • Yaf_Response_Abstract::__toString — The __toString purpose
  • Yaf_Route_Interface — The Yaf_Route_Interface class
    • Yaf_Route_Interface::assemble — assemble a request
    • Yaf_Route_Interface::route — route a request
  • Yaf_Route_Map — The Yaf_Route_Map class
    • Yaf_Route_Map::assemble — Assemble a url
    • Yaf_Route_Map::__construct — The __construct purpose
    • Yaf_Route_Map::route — The route purpose
  • Yaf_Route_Regex — The Yaf_Route_Regex class
    • Yaf_Route_Regex::assemble — Assemble a url
    • Yaf_Route_Regex::__construct — Yaf_Route_Regex constructor
    • Yaf_Route_Regex::route — The route purpose
  • Yaf_Route_Rewrite — The Yaf_Route_Rewrite class
    • Yaf_Route_Rewrite::assemble — Assemble a url
    • Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor
    • Yaf_Route_Rewrite::route — The route purpose
  • Yaf_Router — The Yaf_Router class
    • Yaf_Router::addConfig — Add config-defined routes into Router
    • Yaf_Router::addRoute — Add new Route into Router
    • Yaf_Router::__construct — Yaf_Router constructor
    • Yaf_Router::getCurrentRoute — Get the effective route name
    • Yaf_Router::getRoute — Retrieve a route by name
    • Yaf_Router::getRoutes — Retrieve registered routes
    • Yaf_Router::route — The route purpose
  • Yaf_Route_Simple — The Yaf_Route_Simple class
    • Yaf_Route_Simple::assemble — Assemble a url
    • Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor
    • Yaf_Route_Simple::route — Route a request
  • Yaf_Route_Static — The Yaf_Route_Static class
    • Yaf_Route_Static::assemble — Assemble a url
    • Yaf_Route_Static::match — The match purpose
    • Yaf_Route_Static::route — Route a request
  • Yaf_Route_Supervar — The Yaf_Route_Supervar class
    • Yaf_Route_Supervar::assemble — Assemble a url
    • Yaf_Route_Supervar::__construct — The __construct purpose
    • Yaf_Route_Supervar::route — The route purpose
  • Yaf_Session — The Yaf_Session class
    • Yaf_Session::__clone — The __clone purpose
    • Yaf_Session::__construct — Constructor of Yaf_Session
    • Yaf_Session::count — The count purpose
    • Yaf_Session::current — The current purpose
    • Yaf_Session::del — The del purpose
    • Yaf_Session::__get — The __get purpose
    • Yaf_Session::getInstance — The getInstance purpose
    • Yaf_Session::has — The has purpose
    • Yaf_Session::__isset — The __isset purpose
    • Yaf_Session::key — The key purpose
    • Yaf_Session::next — The next purpose
    • Yaf_Session::offsetExists — The offsetExists purpose
    • Yaf_Session::offsetGet — The offsetGet purpose
    • Yaf_Session::offsetSet — The offsetSet purpose
    • Yaf_Session::offsetUnset — The offsetUnset purpose
    • Yaf_Session::rewind — The rewind purpose
    • Yaf_Session::__set — The __set purpose
    • Yaf_Session::__sleep — The __sleep purpose
    • Yaf_Session::start — The start purpose
    • Yaf_Session::__unset — The __unset purpose
    • Yaf_Session::valid — The valid purpose
    • Yaf_Session::__wakeup — The __wakeup purpose
  • Yaf_Exception — The Yaf_Exception class
    • Yaf_Exception::__construct — Конструктор Yaf_Exception
    • Yaf_Exception::getPrevious — Получить предыдущее исключение
  • Yaf_Exception_TypeError — The Yaf_Exception_TypeError class
  • Yaf_Exception_StartupError — The Yaf_Exception_StartupError class
  • Yaf_Exception_DispatchFailed — The Yaf_Exception_DispatchFailed class
  • Yaf_Exception_RouterFailed — The Yaf_Exception_RouterFailed class
  • Yaf_Exception_LoadFailed — The Yaf_Exception_LoadFailed class
  • Yaf_Exception_LoadFailed_Module — The Yaf_Exception_LoadFailed_Module class
  • Yaf_Exception_LoadFailed_Controller — The Yaf_Exception_LoadFailed_Controller class
  • Yaf_Exception_LoadFailed_Action — The Yaf_Exception_LoadFailed_Action class
  • Yaf_Exception_LoadFailed_View — The Yaf_Exception_LoadFailed_View class


Введение

Расширение Yet Another Framework (Yaf) является PHP-фреймворком для разработки веб-приложений.

Для Yaf требуется PHP 5.2.1 и выше. В более ранних версиях может не работать.

Простой тест производительности Yaf можно найти на » Yaf Performance.

Краткое руководство описано в разделе Учебник.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/yaf.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Yaf Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
yaf.library |  | its PHP_INI_ALL value |
yaf.action_prefer | 0 | its PHP_INI_ALL value |
yaf.lowcase_path | 0 | its PHP_INI_ALL value |
yaf.use_spl_autoload | 0 | its PHP_INI_ALL value |
yaf.forward_limit | 5 | its PHP_INI_ALL value |
yaf.name_suffix | 1 | its PHP_INI_ALL value |
yaf.name_separator |  | its PHP_INI_ALL value |
yaf.cache_config | 0 | its PHP_INI_SYSTEM value |
yaf.environ | product | its PHP_INI_SYSTEM value |
yaf.use_namespace | 0 | its PHP_INI_ALL value |

Краткое разъяснение конфигурационных директив.

yaf.library string

The global library path, Yaf_loader will search global library in this directory.

yaf.action_prefer integer

If there is only one part in PATH_INFO, should it consider as a controller or action.

If this configure On, it will be considered as a Action name.

yaf.lowcase_path integer

Whether lowercase all the path during the class autoloading.

yaf.use_spl_autoload integer

When this value is On, if Yaf_Loader can not find a class, it will return FALSE, then give chance to other auto load function to be called.

When this value is Off, if Yaf_Loader can not find a class, it will return TRUE, and make the class autoloading failed immediately.

Замечание:

Yaf will register its loader during a instantiation of Yaf_Application, so any other auto loaders which is register before the instantiation will be called before Yaf_Loader::autoload().

When this value is Off(default), Yaf_Loader::autoload() will always return TRUE.

yaf.forward_limit integer

The max forward count, default is 5. that means you can have a max value of 5 in the forward stack.

This is a protection for prevent recursive Yaf_Controller_Abstract::forward().

yaf.name_suffix integer

When this On, Yaf_Loader will identify a class by it's suffix to decide whether it is a MVC Class.

When this Off, Yaf_Loader will look at the prefix of the class name.

yaf.name_separator string

When this is not empty, Yaf_Loader will identify the class suffix and string value of this.

For example, when this value is "_", Yaf_Loader will take Index_Controller as a Controller Class, IndexController as a normal class.

yaf.cache_config integer

If this is On, and in the meantime you are using ini config file as the parameter of Yaf_Application(), the compiling result of the ini config file will be cached in the PHP process.

Замечание:

Yaf examine the mtime of the ini file, if it was changed since last compiling, Yaf will reload it.

Внимание

Yaf use the ini file path as the cache entry key, so do use the absolute path in ini file path, otherwise there might be some conflicts if two application use the same relative path of ini config.

yaf.environ string

This value is "product" by default, used for Yaf to fetch the config section of a ini config file.

That is, if this value is "product", Yaf will use the section named "product" in the ini config file(the first parameter of the Yaf_Application) as the final config of the Yaf_Application.

yaf.use_namespace integer

Only works as of PHP 5.3, if this value is On, All classes of Yaf will named in namespace style.

For example:

Yaf_Route_Rewrite => \Yaf\Route\Rewrite
Yaf_Request_Http  => \Yaf\Request\Http
There is a exception, that is some classes like Yaf_Controller_Abstract. The last component is a keyword of PHP, could not be used as a class name, so for such classes:
Yaf_Controller_Abstract => \Yaf\Controller_Abstract
Yaf_Route_Static => \Yaf\Route_Static


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

YAF_VERSION (string)
YAF_ENVIRON (string)
YAF_ERR_STARTUP_FAILED (integer)
YAF_ERR_ROUTE_FAILED (integer)
YAF_ERR_DISPATCH_FAILED (integer)
YAF_ERR_AUTOLOAD_FAILED (integer)
YAF_ERR_NOTFOUND_MODULE (integer)
YAF_ERR_NOTFOUND_CONTROLLER (integer)
YAF_ERR_NOTFOUND_ACTION (integer)
YAF_ERR_NOTFOUND_VIEW (integer)
YAF_ERR_CALL_FAILED (integer)
YAF_ERR_TYPE_ERROR (integer)


Примеры

Пример #1 Классический пример каталога для приложения

- index.php
- .htaccess
+ conf
  |- application.ini //Файл настроек
- application/
  - Bootstrap.php
  + controllers
     - Index.php //Контроллер по умолчанию
  + views
     |+ index
        - index.phtml //Шаблон вывода для экшена по умолчанию
  + modules
  - library
  - models
  - plugins

Пример #2 Введение

index.php единственная точка входа в приложение, все запросы вы должны направлять через него (например при помощи .htaccess в Apache+php_mod)

<?php
define("APPLICATION_PATH",  dirname(__FILE__));

$app  = new Yaf_Application(APPLICATION_PATH . "/conf/application.ini");
$app->bootstrap() //Выполнение методов опрделенных в Bootstrap.php
 ->run();
?>

Пример #3 Правила перенаправления

#для apache (.htaccess)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php

#для nginx
server {
  listen ****;
  server_name  domain.com;
  root   document_root;
  index  index.php index.html index.htm;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
  }
}

#для lighttpd
$HTTP["host"] =~ "(www.)?domain.com$" {
  url.rewrite = (
     "^/(.+)/?$"  => "/index.php/$1",
  )
}

Пример #4 Конфигурация приложения

[yaf]
;APPLICATION_PATH должна быть определена в index.php
application.directory=APPLICATION_PATH "/application/"

;product секция должна наследовать yaf
[product:yaf]
foo=bar

Пример #5 Контроллер по умолчанию

<?php
class IndexController extends Yaf_Controller_Abstract {
   /* экшен по умолчанию */
   public function indexAction() {
       $this->_view->word = "hello world";
       //или
       // $this->getView()->word = "hello world";
   }
}
?>

Пример #6 Шаблон вывода по умолчанию

<html>
 <head>
   <title>Hello World</title>
 </head>
 <body>
   <?php echo $word;?>
 </body>
</html>

Пример #7 Запуск приложения

Результатом выполнения данного примера будет что-то подобное:

<html>
 <head>
   <title>Hello World</title>
 </head>
 <body>
   hello world
 </body>
</html>

Замечание:

Пример выше можно также создать с помощью генератора кода Yaf который можно найти здесь yaf@github.


Конфигурация приложения

Вы должны задать конфигурацию в виде массива или INI файла (Смотрите Yaf_Config_Ini) в конструкторе Yaf_Application::__construct().

Yaf автоматически обьеденит параметры приложения и пользовательские параметры. Конфигурация приложений имеет префикс "yaf." или "application.". Если указанны оба "yaf." и "application.", преимущество будет отдано"application.".

Пример #1 Пример PHP массива

<?php
    $configs = array(
            "application" => array(
                "directory" => dirname(__FILE__),
                "dispatcher" => array(
                      "catchException" => 0,
                    ),
                "view" => array(
                       "ext" => "phtml",
                    ),
                ),
           );
    $app = new Yaf_Application($config);
?>

Пример #2 Пример INI файла

[yaf]
yaf.directory = APPLICATION_PATH "/appliation"
yaf.dispatcher.catchException = 0

[product : yaf]
; user configuration list here

Конфигурация Yaf приложения
Имя | По умолчанию | Список изменений
application.directory |  |
application.ext | "php" |
application.view.ext | "phtml" |
application.modules | "index" |
application.library | application.directory . "/library" |
application.library.directory | application.directory . "/library" |
application.library.namespace | "" |
application.bootstrap | application.directory . "/Bootstrap" . application.ext |
application.baseUri | "" |
application.dispatcher.defaultRoute |  |
application.dispatcher.throwException | 1 |
application.dispatcher.catchException | 0 |
application.dispatcher.defaultModule | "index" |
application.dispatcher.defaultController | "index" |
application.dispatcher.defaultAction | "index" |
application.system |  |

Краткое разъяснение конфигурационных директив.

application.directory string

Директория, которая содержит папки "controllers"(контроллеры), "views"(шаблоны вывода), "models"(модели), "plugins"(плагины).

Замечание:

Это единственная конфигурация которая не имеет параметров по умолчанию. Вы должны ввести ее вручную.

application.ext string

Раширения файлов PHP скриптов, использующихся в классе автозагрузки ( Yaf_Loader).

application.view.ext string

Расширения файлов шаблонов вывода.

application.modules string

Список зарегистрированных модулей, разделенных запятыми, используемых в маршрутизации, особенно если в PATH_INFO более трех сегментов,

Yaf должен иметь возможность потянь, является ли первый сегмент именем модуля или нет.

application.library string

Локальный каталог с библиотеками, смотри Yaf_Loader и yaf.library.

Замечание:

После Yaf 2.1.6, эта настройка должна представлять из себя массив. Путь к библиотекам будет пытаться использовать элементы application.library.directory

application.library.directory string

Псевдоним для application.library. введеный в Yaf 2.1.6

application.library.namespace string

Префиксы пространств имен локальных библиотек, перечисленные через запятую.

Добавлено в Yaf 2.1.6

application.bootstrap string

Абсолютный путь к скрипту класса Bootstrap.

application.baseUri string

Используется для удаления фиксированного префикса URI запроса в процессе маршрутизации. К примеру пришел запрос к "/prefix/controller/action". Если вы зададите application.baseUri равным "/prefix", то в процессе маршрутизации, в качестве PATH_INFO будет использоваться только "/controller/action".

В целом, это довольно бесполезная настройка.

application.dispatcher.throwException bool

Если установлено как On, Yaf будет выбрасывать исключения в случае возникновения ошибок. Также смотрите Yaf_Dispatcher::throwException().

application.dispatcher.catchException bool

Если установлено как On, Yaf будет посылать не обработанные исключения в контроллер Ошибок/Действий. Также смотрите Yaf_Dispatcher::catchException().

application.dispatcher.defaultRoute string

Маршрутизация по умолчанию, если не задано, то, по умолчанию, будет использован маршрут Static. Смотри: Yaf_Router::addRoute().

application.dispatcher.defaultModule string

Имя модуля по умолчанию, также смотри Yaf_Dispatcher::setDefaultModule().

application.dispatcher.defaultController string

Имя контроллера по умолчанию, также смотри Yaf_Dispatcher::setDefaultController().

application.dispatcher.defaultAction string

Имя действия по умолчанию, также смотри Yaf_Dispatcher::setDefaultAction().

application.system string

Устанавливает конфигурацию времени исполнения yaf в application.ini, типа: application.system.lowcase_path

Замечание:

только PHP_INI_ALL опции могут быть установлены таким образом


Класс Yaf_Application

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Yaf_Application обеспечивает инициализацию объекта для приложений которые предостовляют переиспользуемые ресурсы, общие и модульные bootstrap-классы и проверки зависимостей.

Замечание:

Yaf_Application реализует шаблоном singleton, и Yaf_Application не может быть сериализован или десериализован что вызывает проблемы когда вы пытетесь использовать PHPUnit чтобы написать некоторые тесты для Yaf.

Вы можете использовать @backupGlobals анотации PHPUnit для контроля бэкапов и операций восстановления глобальных переменных. Таким образом можно решить эту проблему.

Обзор классов

final Yaf_Application {
/* Свойства */
protected $config ;
protected $dispatcher ;
protected static $_app ;
protected $_modules ;
protected $_running ;
protected $_environ ;
/* Методы */
public static void app ( void )
public void bootstrap ([ Yaf_Bootstrap_Abstract $bootstrap ] )
public Yaf_Application clearLastError ( void )
private void __clone ( void )
public __construct ( mixed $config [, string $envrion ] )
public void __destruct ( void )
public void environ ( void )
public void execute ( callable $entry , string $... )
public Yaf_Application getAppDirectory ( void )
public Yaf_Config_Abstract getConfig ( void )
public Yaf_Dispatcher getDispatcher ( void )
public string getLastErrorMsg ( void )
public int getLastErrorNo ( void )
public array getModules ( void )
public void run ( void )
public Yaf_Application setAppDirectory ( string $directory )
private void __sleep ( void )
private void __wakeup ( void )
}

Свойства

config

dispatcher

_app

_modules

_running

_environ

Содержание

  • Yaf_Application::app — Retrieve an Application instance
  • Yaf_Application::bootstrap — Call bootstrap
  • Yaf_Application::clearLastError — Clear the last error info
  • Yaf_Application::__clone — Yaf_Application can not be cloned
  • Yaf_Application::__construct — Yaf_Application constructor
  • Yaf_Application::__destruct — The __destruct purpose
  • Yaf_Application::environ — Retrive environ
  • Yaf_Application::execute — Execute a callback
  • Yaf_Application::getAppDirectory — Get the application directory
  • Yaf_Application::getConfig — Retrive the config instance
  • Yaf_Application::getDispatcher — Get Yaf_Dispatcher instance
  • Yaf_Application::getLastErrorMsg — Get message of the last occurred error
  • Yaf_Application::getLastErrorNo — Get code of last occurred error
  • Yaf_Application::getModules — Get defined module names
  • Yaf_Application::run — Start Yaf_Application
  • Yaf_Application::setAppDirectory — Change the application directory
  • Yaf_Application::__sleep — Yaf_Application can not be serialized
  • Yaf_Application::__wakeup — Yaf_Application can not be unserialized


Retrieve an Application instance

  • « Yaf_Application
  • Yaf_Application::bootstrap »
  • PHP Manual
  • Yaf_Application
  • Retrieve an Application instance

Yaf_Application::app

(Yaf >=1.0.0)

Yaf_Application::app — Retrieve an Application instance

Описание

public static void Yaf_Application::app ( void )

Retrieve the Yaf_Application instance. Alternatively, we also could use Yaf_Dispatcher::getApplication().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A Yaf_Application instance, if no Yaf_Application was initialized before, NULL will be returned.

Смотрите также

  • Yaf_Dispatcher::getApplication() - Retrive the application


Call bootstrap

  • « Yaf_Application::app
  • Yaf_Application::clearLastError »
  • PHP Manual
  • Yaf_Application
  • Call bootstrap

Yaf_Application::bootstrap

(Yaf >=1.0.0)

Yaf_Application::bootstrap — Call bootstrap

Описание

public void Yaf_Application::bootstrap ([ Yaf_Bootstrap_Abstract $bootstrap ] )

Run a Bootstrap, all the methods defined in the Bootstrap and named with prefix "_init" will be called according to their declaration order, if the parameter bootstrap is not supplied, Yaf will look for a Bootstrap under application.directory.

Список параметров

bootstrap

A Yaf_Bootstrap_Abstract instance

Возвращаемые значения

Yaf_Application instance

Примеры

Пример #1 A Bootstrap()example

<?php
/**
 * This file should be under the APPLICATION_PATH . "/application/"(which was defined in the config passed to Yaf_Application).
 * and named Bootstrap.php,  so the Yaf_Application can find it
 */
class Bootstrap extends Yaf_Bootstrap_Abstract {
    function _initConfig(Yaf_Dispatcher $dispatcher) {
        echo "1st called\n";
    }

    function _initPlugin($dispatcher) {
        echo "2nd called\n";
    }
}
?>

Пример #2 Yaf_Application::bootstrap()example

<?php

defined('APPLICATION_PATH')                  // APPLICATION_PATH will be used in the ini config file
    || define('APPLICATION_PATH', __DIR__)); //__DIR__ was introduced after PHP 5.3

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap();
?>

Результатом выполнения данного примера будет что-то подобное:

1st called
2nd called

Смотрите также

  • Yaf_Bootstrap_Abstract


Clear the last error info

  • « Yaf_Application::bootstrap
  • Yaf_Application::__clone »
  • PHP Manual
  • Yaf_Application
  • Clear the last error info

Yaf_Application::clearLastError

(Yaf >=2.1.2)

Yaf_Application::clearLastError — Clear the last error info

Описание

public Yaf_Application Yaf_Application::clearLastError ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yaf_Application::clearLastError()example

<?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, //trigger error instead of throw exception when error occure
      ),
  ),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)


Yaf_Application can not be cloned

  • « Yaf_Application::clearLastError
  • Yaf_Application::__construct »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application can not be cloned

Yaf_Application::__clone

(Yaf >=1.0.0)

Yaf_Application::__clone — Yaf_Application can not be cloned

Описание

private void Yaf_Application::__clone ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Yaf_Application constructor

  • « Yaf_Application::__clone
  • Yaf_Application::__destruct »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application constructor

Yaf_Application::__construct

(Yaf >=1.0.0)

Yaf_Application::__construct — Yaf_Application constructor

Описание

public Yaf_Application::__construct ( mixed $config [, string $envrion ] )

Instance a Yaf_Application.

Список параметров

config

A ini config file path, or a config array

If is a ini config file, there should be a section named as the one defined by yaf.environ, which is "product" by default.

Замечание:

If you use a ini configuration file as your applicatioin's config container. you would open the yaf.cache_config to improve performance.

And the config entry(and there default value) list blow:

Пример #1 A ini config file example

[product]
;this one should alway be defined, and have no default value
application.directory=APPLICATION_PATH

;following configs have default value, you may no need to define them
application.library = APPLICATION_PATH . "/library"
application.dispatcher.throwException=1
application.dispatcher.catchException=1

application.baseUri=""

;the php script ext name
ap.ext=php

;the view template ext name
ap.view.ext=phtml

ap.dispatcher.defaultModuel=Index
ap.dispatcher.defaultController=Index
ap.dispatcher.defaultAction=index

;defined modules
ap.modules=Index

envrion

Which section will be loaded as the final config

Возвращаемые значения

Примеры

Пример #2 Yaf_Application::__construct()example

<?php
defined('APPLICATION_PATH')                  // APPLICATION_PATH will be used in the ini config file
    || define('APPLICATION_PATH', __DIR__)); //__DIR__ was introduced after PHP 5.3

$application = new Yaf_Application(APPLICATION_PATH.'/conf/application.ini');
$application->bootstrap()->run();
?>

Результатом выполнения данного примера будет что-то подобное:

Пример #3 Yaf_Application::__construct()example

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
$application->bootstrap()->run();
?>

Результатом выполнения данного примера
будет что-то подобное:

Смотрите также

  • Yaf_Config_Ini
    •


The __destruct purpose

  • « Yaf_Application::__construct
  • Yaf_Application::environ »
  • PHP Manual
  • Yaf_Application
  • The __destruct purpose

Yaf_Application::__destruct

(Yaf >=1.0.0)

Yaf_Application::__destruct — The __destruct purpose

Описание

public void Yaf_Application::__destruct ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrive environ

  • « Yaf_Application::__destruct
  • Yaf_Application::execute »
  • PHP Manual
  • Yaf_Application
  • Retrive environ

Yaf_Application::environ

(Yaf >=1.0.0)

Yaf_Application::environ — Retrive environ

Описание

public void Yaf_Application::environ ( void )

Retrive environ which was defined in yaf.environ which has a default value "product".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yaf_Application::environ()example

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->environ());
?>

Результатом выполнения данного примера будет что-то подобное:

product


Execute a callback

  • « Yaf_Application::environ
  • Yaf_Application::getAppDirectory »
  • PHP Manual
  • Yaf_Application
  • Execute a callback

Yaf_Application::execute

(Yaf >=1.0.0)

Yaf_Application::execute — Execute a callback

Описание

public void Yaf_Application::execute ( callable $entry , string $... )

This method is typically used to run Yaf_Application in a crontab work. Make the crontab work can also use the autoloader and Bootstrap mechanism.

Список параметров

entry

a valid callback

...

parameters will pass to the callback

Возвращаемые значения

Примеры

Пример #1 Yaf_Application::execute()example

<?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);
?>

Результатом выполнения данного примера будет что-то подобное:


Get the application directory

  • « Yaf_Application::execute
  • Yaf_Application::getConfig »
  • PHP Manual
  • Yaf_Application
  • Get the application directory

Yaf_Application::getAppDirectory

(Yaf >=2.1.4)

Yaf_Application::getAppDirectory — Get the application directory

Описание

public Yaf_Application Yaf_Application::getAppDirectory ( void )

Список параметров

directory

Возвращаемые значения


Retrive the config instance

  • « Yaf_Application::getAppDirectory
  • Yaf_Application::getDispatcher »
  • PHP Manual
  • Yaf_Application
  • Retrive the config instance

Yaf_Application::getConfig

(Yaf >=1.0.0)

Yaf_Application::getConfig — Retrive the config instance

Описание

public Yaf_Config_Abstract Yaf_Application::getConfig ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A Yaf_Config_Abstract instance

Примеры

Пример #1 Yaf_Application::getConfig()example

<?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
)


Get Yaf_Dispatcher instance

  • « Yaf_Application::getConfig
  • Yaf_Application::getLastErrorMsg »
  • PHP Manual
  • Yaf_Application
  • Get Yaf_Dispatcher instance

Yaf_Application::getDispatcher

(Yaf >=1.0.0)

Yaf_Application::getDispatcher — Get Yaf_Dispatcher instance

Описание

public Yaf_Dispatcher Yaf_Application::getDispatcher ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yaf_Application::getDispatcher()example

<?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] =>
        )

)


Get message of the last occurred error

  • « Yaf_Application::getDispatcher
  • Yaf_Application::getLastErrorNo »
  • PHP Manual
  • Yaf_Application
  • Get message of the last occurred error

Yaf_Application::getLastErrorMsg

(Yaf >=2.1.2)

Yaf_Application::getLastErrorMsg — Get message of the last occurred error

Описание

public string Yaf_Application::getLastErrorMsg ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yaf_Application::getLastErrorMsg()example

<?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, //trigger error instead of throw exception when error occure
      ),
  ),
);

$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"


Get code of last occurred error

  • « Yaf_Application::getLastErrorMsg
  • Yaf_Application::getModules »
  • PHP Manual
  • Yaf_Application
  • Get code of last occurred error

Yaf_Application::getLastErrorNo

(Yaf >=2.1.2)

Yaf_Application::getLastErrorNo — Get code of last occurred error

Описание

public int Yaf_Application::getLastErrorNo ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yaf_Application::getLastErrorNo()example

<?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, //trigger error instead of throw exception when error occure
      ),
  ),
);

$app = new Yaf_Application($config);
$app->getDispatcher()->setErrorHandler("error_handler", E_RECOVERABLE_ERROR);
$app->run();
?>

Результатом выполнения данного примера будет что-то подобное:

int(516)
bool(true)


Get defined module names

  • « Yaf_Application::getLastErrorNo
  • Yaf_Application::run »
  • PHP Manual
  • Yaf_Application
  • Get defined module names

Yaf_Application::getModules

(Yaf >=1.0.0)

Yaf_Application::getModules — Get defined module names

Описание

public array Yaf_Application::getModules ( void )

Get the modules list defined in config, if no one defined, there will always be a module named "Index".

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yaf_Application::getModules()example

<?php
$config = array(
    "application" => array(
        "directory" => realpath(dirname(__FILE__)) . "/application",
    ),
);

/** Yaf_Application */
$application = new Yaf_Application($config);
print_r($application->getModules());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Index
)


Start Yaf_Application

  • « Yaf_Application::getModules
  • Yaf_Application::setAppDirectory »
  • PHP Manual
  • Yaf_Application
  • Start Yaf_Application

Yaf_Application::run

(Yaf >=1.0.0)

Yaf_Application::run — Start Yaf_Application

Описание

public void Yaf_Application::run ( void )

Run a Yaf_Application, let the Yaf_Application accept a request and route this request, dispatch to controller/action and render response. Finally, return the response to the client.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Change the application directory

  • « Yaf_Application::run
  • Yaf_Application::__sleep »
  • PHP Manual
  • Yaf_Application
  • Change the application directory

Yaf_Application::setAppDirectory

(Yaf >=2.1.4)

Yaf_Application::setAppDirectory — Change the application directory

Описание

public Yaf_Application Yaf_Application::setAppDirectory ( string $directory )

Список параметров

directory

Возвращаемые значения


Yaf_Application can not be serialized

  • « Yaf_Application::setAppDirectory
  • Yaf_Application::__wakeup »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application can not be serialized

Yaf_Application::__sleep

(Yaf >=1.0.0)

Yaf_Application::__sleep — Yaf_Application can not be serialized

Описание

private void Yaf_Application::__sleep ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Yaf_Application can not be unserialized

  • « Yaf_Application::__sleep
  • Yaf_Bootstrap_Abstract »
  • PHP Manual
  • Yaf_Application
  • Yaf_Application can not be unserialized

Yaf_Application::__wakeup

(Yaf >=1.0.0)

Yaf_Application::__wakeup — Yaf_Application can not be unserialized

Описание

private void Yaf_Application::__wakeup ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Bootstrap_Abstract

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Bootstrap является механизмом который используется для начального конфигурирования чего либо до запуска приложения.

Пользователь может определить свой собственный Bootstrap класс, унаследовав Yaf_Bootstrap_Abstract

Любой метод, объявленный в классе Bootstrap начинающийся на "_init", будет вызван Yaf_Application::bootstrap() один за другим в соответсвии с заданной последовательностью.

Примеры

Пример #1 Пример использования Bootstrap

<?php
   /* класс bootstrap должен быть задан в ./application/Bootstrap.php */
   class Bootstrap extends Yaf_Bootstrap_Abstract {
        public function _initConfig(Yaf_Dispatcher $dispatcher) {
            var_dump(__METHOD__);
        }
        public function _initPlugin(Yaf_Dispatcher $dispatcher) {
            var_dump(__METHOD__);
        }
   }

   $config = array(
       "application" => array(
           "directory" => dirname(__FILE__) . "/application/",
       ),
   );

   $app = new Yaf_Application($config);
   $app->bootstrap();
?>

Результатом выполнения данного примера будет что-то подобное:

string(22) "Bootstrap::_initConfig"
string(22) "Bootstrap::_initPlugin"

Обзор классов

abstract Yaf_Bootstrap_Abstract {
/* Свойства */
/* Методы */
}


Класс Yaf_Dispatcher

(Yaf >=1.0.0)

Введение

Yaf_Dispatcher предназначен для инициализации окружения запроса, маршрутизации входяшего запроса, и последующей отправки любых обнаруженых задач; агрегирует все ответы и возвращает их по завершению процесса.

Yaf_Dispatcher реализует шаблон проектирования Singleton, это значит что только один экземпляр класса может быть доступен в любое время. Это позволяет ему также выступать в качестве реестра в который другие объекты в процессе диспетчеризации могут подтягиваться.

Обзор классов

final Yaf_Dispatcher {
/* Свойства */
protected $_router ;
protected $_view ;
protected $_request ;
protected $_plugins ;
protected static $_instance ;
protected $_auto_render ;
protected $_return_response ;
protected $_instantly_flush ;
protected $_default_module ;
protected $_default_controller ;
protected $_default_action ;
/* Методы */
public Yaf_Dispatcher autoRender ([ bool $flag ] )
public Yaf_Dispatcher catchException ([ bool $flag ] )
private void __clone ( void )
public __construct ( void )
public bool disableView ( void )
public Yaf_Response_Abstract dispatch ( Yaf_Request_Abstract $request )
public Yaf_Dispatcher enableView ( void )
public Yaf_Dispatcher flushInstantly ([ bool $flag ] )
public Yaf_Application getApplication ( void )
public static Yaf_Dispatcher getInstance ( void )
public Yaf_Request_Abstract getRequest ( void )
public Yaf_Router getRouter ( void )
public Yaf_View_Interface initView ( string $templates_dir [, array $options ] )
public Yaf_Dispatcher registerPlugin ( Yaf_Plugin_Abstract $plugin )
public Yaf_Dispatcher returnResponse ( bool $flag )
public Yaf_Dispatcher setDefaultAction ( string $action )
public Yaf_Dispatcher setDefaultController ( string $controller )
public Yaf_Dispatcher setDefaultModule ( string $module )
public Yaf_Dispatcher setErrorHandler ( call $callback , int $error_types )
public Yaf_Dispatcher setRequest ( Yaf_Request_Abstract $request )
public Yaf_Dispatcher setView ( Yaf_View_Interface $view )
private void __sleep ( void )
public Yaf_Dispatcher throwException ([ bool $flag ] )
private void __wakeup ( void )
}

Свойства

_router

_view

_request

_plugins

_instance

_auto_render

_return_response

_instantly_flush

_default_module

_default_controller

_default_action

Содержание

  • Yaf_Dispatcher::autoRender — Switch on/off autorendering
  • Yaf_Dispatcher::catchException — Switch on/off exception catching
  • Yaf_Dispatcher::__clone — Yaf_Dispatcher can not be cloned
  • Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor
  • Yaf_Dispatcher::disableView — Disable view rendering
  • Yaf_Dispatcher::dispatch — Dispatch a request
  • Yaf_Dispatcher::enableView — enable view rendering
  • Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing
  • Yaf_Dispatcher::getApplication — Retrive the application
  • Yaf_Dispatcher::getInstance — Retrive the dispatcher instance
  • Yaf_Dispatcher::getRequest — Retrive the request instance
  • Yaf_Dispatcher::getRouter — Retrive router instance
  • Yaf_Dispatcher::initView — Initialize view and return it
  • Yaf_Dispatcher::registerPlugin — Register a plugin
  • Yaf_Dispatcher::returnResponse — The returnResponse purpose
  • Yaf_Dispatcher::setDefaultAction — Change default action name
  • Yaf_Dispatcher::setDefaultController — Change default controller name
  • Yaf_Dispatcher::setDefaultModule — Change default module name
  • Yaf_Dispatcher::setErrorHandler — Set error handler
  • Yaf_Dispatcher::setRequest — The setRequest purpose
  • Yaf_Dispatcher::setView — Set a custom view engine
  • Yaf_Dispatcher::__sleep — Yaf_Dispatcher can not be serialized
  • Yaf_Dispatcher::throwException — Switch on/off exception throwing
  • Yaf_Dispatcher::__wakeup — Yaf_Dispatcher can not be unserialized


Switch on/off autorendering

  • « Yaf_Dispatcher
  • Yaf_Dispatcher::catchException »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off autorendering

Yaf_Dispatcher::autoRender

(Yaf >=1.0.0)

Yaf_Dispatcher::autoRender — Switch on/off autorendering

Описание

public Yaf_Dispatcher Yaf_Dispatcher::autoRender ([ bool $flag ] )

Yaf_Dispatcher will render automatically after dispatches a incoming request, you can prevent the rendering by calling this method with flag TRUE

Замечание:

you can simply return FALSE in a action to prevent the auto-rendering of that action

Список параметров

flag

bool

Замечание:

since 2.2.0, if this parameter is not given, then the current state will be renturned

Возвращаемые значения

Примеры

Пример #1 Yaf_Dispatcher::autoRender()example

<?php
class IndexController extends Yaf_Controller_Abstract {
     /* init method will be called as soon as a controller is initialized */
     public function init() {
         if ($this->getRequest()->isXmlHttpRequest()) {
             //do not call render for ajax request
             //we will outpu a json string
             Yaf_Dispatcher::getInstance()->autoRender(FALSE);
         }
     }

}
?>

Результатом выполнения данного примера будет что-то подобное:


Switch on/off exception catching

  • « Yaf_Dispatcher::autoRender
  • Yaf_Dispatcher::__clone »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off exception catching

Yaf_Dispatcher::catchException

(Yaf >=1.0.0)

Yaf_Dispatcher::catchException — Switch on/off exception catching

Описание

public Yaf_Dispatcher Yaf_Dispatcher::catchException ([ bool $flag ] )

While the application.dispatcher.throwException is On(you can also calling to Yaf_Dispatcher::throwException(TRUE)() to enable it), Yaf will throw Exception whe error occurrs instead of trigger error.

then if you enable Yaf_Dispatcher::catchException()(also can enabled by set application.dispatcher.catchException), all uncaught Exceptions will be caught by ErrorController::error if you have defined one.

Список параметров

flag

bool

Возвращаемые значения

Примеры

Пример #1 Yaf_Dispatcher::catchException()example

/* if you defined a ErrorController like following */
<?php
class ErrorController extends Yaf_Controller_Abstract {
     /**
      * you can also call to Yaf_Request_Abstract::getException to get the
      * un-caught exception.
      */
     public function errorAction($exception) {
        /* error occurs */
        switch ($exception->getCode()) {
            case YAF_ERR_NOTFOUND_MODULE:
            case YAF_ERR_NOTFOUND_CONTROLLER:
            case YAF_ERR_NOTFOUND_ACTION:
            case YAF_ERR_NOTFOUND_VIEW:
                echo 404, ":", $exception->getMessage();
                break;
            default :
                $message = $exception->getMessage();
                echo 0, ":", $exception->getMessage();
                break;
        }
     }
}
?>

Результатом выполнения данного примера будет что-то подобное:

/* now if some error occur, assuming access a non-exists controller(or you can throw a exception yourself): */
404:Could not find controller script **/application/controllers/No-exists-controller.php

Смотрите также

  • Yaf_Dispatcher::throwException() - Switch on/off exception throwing
  • Yaf_Dispatcher::setErrorHandler() - Set error handler


Yaf_Dispatcher can not be cloned

  • « Yaf_Dispatcher::catchException
  • Yaf_Dispatcher::__construct »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher can not be cloned

Yaf_Dispatcher::__clone

(Yaf >=1.0.0)

Yaf_Dispatcher::__clone — Yaf_Dispatcher can not be cloned

Описание

private void Yaf_Dispatcher::__clone ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Yaf_Dispatcher constructor

  • « Yaf_Dispatcher::__clone
  • Yaf_Dispatcher::disableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher constructor

Yaf_Dispatcher::__construct

(Yaf >=1.0.0)

Yaf_Dispatcher::__construct — Yaf_Dispatcher constructor

Описание

public Yaf_Dispatcher::__construct ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Disable view rendering

  • « Yaf_Dispatcher::__construct
  • Yaf_Dispatcher::dispatch »
  • PHP Manual
  • Yaf_Dispatcher
  • Disable view rendering

Yaf_Dispatcher::disableView

(Yaf >=1.0.0)

Yaf_Dispatcher::disableView — Disable view rendering

Описание

public bool Yaf_Dispatcher::disableView ( void )

disable view engine, used in some app that user will output by theirself

Замечание:

you can simply return FALSE in a action to prevent the auto-rendering of that action

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Dispatch a request

  • « Yaf_Dispatcher::disableView
  • Yaf_Dispatcher::enableView »
  • PHP Manual
  • Yaf_Dispatcher
  • Dispatch a request

Yaf_Dispatcher::dispatch

(Yaf >=1.0.0)

Yaf_Dispatcher::dispatch — Dispatch a request

Описание

public Yaf_Response_Abstract Yaf_Dispatcher::dispatch ( Yaf_Request_Abstract $request )

This method does the heavy work of the Yaf_Dispatcher. It take a request object.

The dispatch process has three distinct events:

  • Routing
  • Dispatching
  • Response
Routing takes place exactly once, using the values in the request object when dispatch() is called. Dispatching takes place in a loop; a request may either indicate multiple actions to dispatch, or the controller or a plugin may reset the request object to force additional actions to dispatch(see Yaf_Plugin_Abstract. When all is done, the Yaf_Dispatcher returns a response.

Список параметров

request

Возвращаемые значения


enable view rendering

  • « Yaf_Dispatcher::dispatch
  • Yaf_Dispatcher::flushInstantly »
  • PHP Manual
  • Yaf_Dispatcher
  • enable view rendering

Yaf_Dispatcher::enableView

(Yaf >=1.0.0)

Yaf_Dispatcher::enableView — enable view rendering

Описание

public Yaf_Dispatcher Yaf_Dispatcher::enableView ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Switch on/off the instant flushing

  • « Yaf_Dispatcher::enableView
  • Yaf_Dispatcher::getApplication »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off the instant flushing

Yaf_Dispatcher::flushInstantly

(Yaf >=1.0.0)

Yaf_Dispatcher::flushInstantly — Switch on/off the instant flushing

Описание

public Yaf_Dispatcher Yaf_Dispatcher::flushInstantly ([ bool $flag ] )

Список параметров

flag

bool

Замечание:

since 2.2.0, if this parameter is not given, then the current state will be renturned

Возвращаемые значения


Retrive the application

  • « Yaf_Dispatcher::flushInstantly
  • Yaf_Dispatcher::getInstance »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the application

Yaf_Dispatcher::getApplication

(Yaf >=1.0.0)

Yaf_Dispatcher::getApplication — Retrive the application

Описание

public Yaf_Application Yaf_Dispatcher::getApplication ( void )

Retrive the Yaf_Application instance. same as Yaf_Application::app().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Application::app() - Retrieve an Application instance


Retrive the dispatcher instance

  • « Yaf_Dispatcher::getApplication
  • Yaf_Dispatcher::getRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the dispatcher instance

Yaf_Dispatcher::getInstance

(Yaf >=1.0.0)

Yaf_Dispatcher::getInstance — Retrive the dispatcher instance

Описание

public static Yaf_Dispatcher Yaf_Dispatcher::getInstance ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrive the request instance

  • « Yaf_Dispatcher::getInstance
  • Yaf_Dispatcher::getRouter »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive the request instance

Yaf_Dispatcher::getRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::getRequest — Retrive the request instance

Описание

public Yaf_Request_Abstract Yaf_Dispatcher::getRequest ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrive router instance

  • « Yaf_Dispatcher::getRequest
  • Yaf_Dispatcher::initView »
  • PHP Manual
  • Yaf_Dispatcher
  • Retrive router instance

Yaf_Dispatcher::getRouter

(Yaf >=1.0.0)

Yaf_Dispatcher::getRouter — Retrive router instance

Описание

public Yaf_Router Yaf_Dispatcher::getRouter ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Initialize view and return it

  • « Yaf_Dispatcher::getRouter
  • Yaf_Dispatcher::registerPlugin »
  • PHP Manual
  • Yaf_Dispatcher
  • Initialize view and return it

Yaf_Dispatcher::initView

(Yaf >=1.0.0)

Yaf_Dispatcher::initView — Initialize view and return it

Описание

public Yaf_View_Interface Yaf_Dispatcher::initView ( string $templates_dir [, array $options ] )

Список параметров

templates_dir

options

Возвращаемые значения


Register a plugin

  • « Yaf_Dispatcher::initView
  • Yaf_Dispatcher::returnResponse »
  • PHP Manual
  • Yaf_Dispatcher
  • Register a plugin

Yaf_Dispatcher::registerPlugin

(Yaf >=1.0.0)

Yaf_Dispatcher::registerPlugin — Register a plugin

Описание

public Yaf_Dispatcher Yaf_Dispatcher::registerPlugin ( Yaf_Plugin_Abstract $plugin )

Register a plugin(see Yaf_Plugin_Abstract). Generally, we register plugins in Bootstrap(see Yaf_Bootstrap_Abstract).

Список параметров

plugin

Возвращаемые значения

Примеры

Пример #1 Yaf_Dispatcher::registerPlugin()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {
  public function _initPlugin(Yaf_Dispatcher $dispatcher) {
    /**
    * Yaf assumes plugin scripts under [application.directory] .  "/plugins"
    * for this case, it will be:
    * [application.directory] . "/plugins/" . "User" . [application.ext]
    */
    $user = new UserPlugin();
    $dispatcher->registerPlugin($user);
  }
}
?>

Смотрите также

  • Yaf_Plugin_Abstract
  • Yaf_Bootstrap_Abstract


The returnResponse purpose

  • « Yaf_Dispatcher::registerPlugin
  • Yaf_Dispatcher::setDefaultAction »
  • PHP Manual
  • Yaf_Dispatcher
  • The returnResponse purpose

Yaf_Dispatcher::returnResponse

(Yaf >=1.0.0)

Yaf_Dispatcher::returnResponse — The returnResponse purpose

Описание

public Yaf_Dispatcher Yaf_Dispatcher::returnResponse ( bool $flag )

Список параметров

flag

Возвращаемые значения


Change default action name

  • « Yaf_Dispatcher::returnResponse
  • Yaf_Dispatcher::setDefaultController »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default action name

Yaf_Dispatcher::setDefaultAction

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultAction — Change default action name

Описание

public Yaf_Dispatcher Yaf_Dispatcher::setDefaultAction ( string $action )

Список параметров

action

Возвращаемые значения


Change default controller name

  • « Yaf_Dispatcher::setDefaultAction
  • Yaf_Dispatcher::setDefaultModule »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default controller name

Yaf_Dispatcher::setDefaultController

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultController — Change default controller name

Описание

public Yaf_Dispatcher Yaf_Dispatcher::setDefaultController ( string $controller )

Список параметров

controller

Возвращаемые значения


Change default module name

  • « Yaf_Dispatcher::setDefaultController
  • Yaf_Dispatcher::setErrorHandler »
  • PHP Manual
  • Yaf_Dispatcher
  • Change default module name

Yaf_Dispatcher::setDefaultModule

(Yaf >=1.0.0)

Yaf_Dispatcher::setDefaultModule — Change default module name

Описание

public Yaf_Dispatcher Yaf_Dispatcher::setDefaultModule ( string $module )

Список параметров

module

Возвращаемые значения


Set error handler

  • « Yaf_Dispatcher::setDefaultModule
  • Yaf_Dispatcher::setRequest »
  • PHP Manual
  • Yaf_Dispatcher
  • Set error handler

Yaf_Dispatcher::setErrorHandler

(Yaf >=1.0.0)

Yaf_Dispatcher::setErrorHandler — Set error handler

Описание

public Yaf_Dispatcher Yaf_Dispatcher::setErrorHandler ( call $callback , int $error_types )

Set error handler for Yaf. when application.dispatcher.throwException is off, Yaf will trigger catchable error while unexpected errors occrred.

Thus, this error handler will be called while the error raise.

Список параметров

callback

A callable callback

error_types

Возвращаемые значения

Смотрите также

  • Yaf_Dispatcher::throwException() - Switch on/off exception throwing
  • Yaf_Application::getLastErrorNo() - Get code of last occurred error
  • Yaf_Application::getLastErrorMsg() - Get message of the last occurred error


The setRequest purpose

  • « Yaf_Dispatcher::setErrorHandler
  • Yaf_Dispatcher::setView »
  • PHP Manual
  • Yaf_Dispatcher
  • The setRequest purpose

Yaf_Dispatcher::setRequest

(Yaf >=1.0.0)

Yaf_Dispatcher::setRequest — The setRequest purpose

Описание

public Yaf_Dispatcher Yaf_Dispatcher::setRequest ( Yaf_Request_Abstract $request )

Список параметров

plugin

Возвращаемые значения


Set a custom view engine

  • « Yaf_Dispatcher::setRequest
  • Yaf_Dispatcher::__sleep »
  • PHP Manual
  • Yaf_Dispatcher
  • Set a custom view engine

Yaf_Dispatcher::setView

(Yaf >=1.0.0)

Yaf_Dispatcher::setView — Set a custom view engine

Описание

public Yaf_Dispatcher Yaf_Dispatcher::setView ( Yaf_View_Interface $view )

This method proviods a solution for that if you want use a custom view engine instead of Yaf_View_Simple

Список параметров

view

A Yaf_View_Interface instance

Возвращаемые значения

Примеры

Пример #1 A custom View engine()example

<?php
require "/path/to/smarty/Smarty.class.php";

class Smarty_Adapter implements Yaf_View_Interface
{
    /**
     * Smarty object
     * @var Smarty
     */
    public $_smarty;

    /**
     * Constructor
     *
     * @param string $tmplPath
     * @param array $extraParams
     * @return void
     */
    public function __construct($tmplPath = null, $extraParams = array()) {
        $this->_smarty = new Smarty;

        if (null !== $tmplPath) {
            $this->setScriptPath($tmplPath);
        }

        foreach ($extraParams as $key => $value) {
            $this->_smarty->$key = $value;
        }
    }

    /**
     * Set the path to the templates
     *
     * @param string $path The directory to set as the path.
     * @return void
     */
    public function setScriptPath($path)
    {
        if (is_readable($path)) {
            $this->_smarty->template_dir = $path;
            return;
        }

        throw new Exception('Invalid path provided');
    }

    /**
     * Assign a variable to the template
     *
     * @param string $key The variable name.
     * @param mixed $val The variable value.
     * @return void
     */
    public function __set($key, $val)
    {
        $this->_smarty->assign($key, $val);
    }

    /**
     * Allows testing with empty() and isset() to work
     *
     * @param string $key
     * @return boolean
     */
    public function __isset($key)
    {
        return (null !== $this->_smarty->get_template_vars($key));
    }

    /**
     * Allows unset() on object properties to work
     *
     * @param string $key
     * @return void
     */
    public function __unset($key)
    {
        $this->_smarty->clear_assign($key);
    }

    /**
     * Assign variables to the template
     *
     * Allows setting a specific key to the specified value, OR passing
     * an array of key => value pairs to set en masse.
     *
     * @see __set()
     * @param string|array $spec The assignment strategy to use (key or
     * array of key => value pairs)
     * @param mixed $value (Optional) If assigning a named variable,
     * use this as the value.
     * @return void
     */
    public function assign($spec, $value = null) {
        if (is_array($spec)) {
            $this->_smarty->assign($spec);
            return;
        }

        $this->_smarty->assign($spec, $value);
    }

    /**
     * Clear all assigned variables
     *
     * Clears all variables assigned to Yaf_View either via
     * {@link assign()} or property overloading
     * ({@link __get()}/{@link __set()}).
     *
     * @return void
     */
    public function clearVars() {
        $this->_smarty->clear_all_assign();
    }

    /**
     * Processes a template and returns the output.
     *
     * @param string $name The template to process.
     * @return string The output.
     */
    public function render($name, $value = NULL) {
        return $this->_smarty->fetch($name);
    }

    public function display($name, $value = NULL) {
        echo $this->_smarty->fetch($name);
    }

}
?>

Пример #2 Yaf_Dispatcher::setView()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract {

    /**
     * there are some config for smarty in the config:
     *
     * smarty.left_delimiter   = "{{"
     * smarty.right_delimiter  = "}}"
     * smarty.template_dir     = APPLICATION_PATH "/views/scripts/"
     * smarty.compile_dir      = APPLICATION_PATH "/views/templates_c/"
     * smarty.cache_dir        = APPLICATION_PATH "/views/templates_d/"
     *
     */
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initLocalName() {
        /** we put class Smarty_Adapter under the local library directory */
        Yaf_Loader::getInstance()->registerLocalNamespace('Smarty');
    }

    public function _initSmarty(Yaf_Dispatcher $dispatcher) {
        $smarty = new Smarty_Adapter(null, Yaf_Registry::get("config")->get("smarty"));
        $dispatcher->setView($smarty);
        /* now the Smarty view engine become the default view engine of Yaf */
    }
}
?>

Смотрите также

  • Yaf_View_Interface
  • Yaf_View_Simple


Yaf_Dispatcher can not be serialized

  • « Yaf_Dispatcher::setView
  • Yaf_Dispatcher::throwException »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher can not be serialized

Yaf_Dispatcher::__sleep

(Yaf >=1.0.0)

Yaf_Dispatcher::__sleep — Yaf_Dispatcher can not be serialized

Описание

private void Yaf_Dispatcher::__sleep ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Switch on/off exception throwing

  • « Yaf_Dispatcher::__sleep
  • Yaf_Dispatcher::__wakeup »
  • PHP Manual
  • Yaf_Dispatcher
  • Switch on/off exception throwing

Yaf_Dispatcher::throwException

(Yaf >=1.0.0)

Yaf_Dispatcher::throwException — Switch on/off exception throwing

Описание

public Yaf_Dispatcher Yaf_Dispatcher::throwException ([ bool $flag ] )

Siwtch on/off exception throwing while unexpected error occurring. When this is on, Yaf will throwing exceptions instead of triggering catchable errors.

You can also use application.dispatcher.throwException to achieve the same purpose.

Список параметров

flag

bool

Возвращаемые значения

Примеры

Пример #1 Yaf_Dispatcher::throwexception()example

<?php

$config = array(
    'application' => array(
        'directory' => dirname(__FILE__),
    ),
);
$app = new Yaf_Application($config);

$app->getDispatcher()->throwException(true);

try {
    $app->run();
} catch (Yaf_Exception $e) {
    var_dump($e->getMessage());
}
?>

Результатом выполнения данного примера будет что-то подобное:

string(59) "Could not find controller script /tmp/controllers/Index.php"

Пример #2 Yaf_Dispatcher::throwexception()example

<?php

$config = array(
    'application' => array(
        'directory' => dirname(__FILE__),
    ),
);
$app = new Yaf_Application($config);

$app->getDispatcher()->throwException(false);

$app->run();
?>

Результатом выполнения данного примера будет что-то подобное:

PHP Catchable fatal error:  Yaf_Application::run(): Could not find controller script /tmp/controllers/Index.php in /tmp/1.php on line 12

Смотрите также

  • Yaf_Dispatcher::catchException() - Switch on/off exception catching
  • Yaf_Exception


Yaf_Dispatcher can not be unserialized

  • « Yaf_Dispatcher::throwException
  • Yaf_Config_Abstract »
  • PHP Manual
  • Yaf_Dispatcher
  • Yaf_Dispatcher can not be unserialized

Yaf_Dispatcher::__wakeup

(Yaf >=1.0.0)

Yaf_Dispatcher::__wakeup — Yaf_Dispatcher can not be unserialized

Описание

private void Yaf_Dispatcher::__wakeup ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The Yaf_Config_Abstract class

(Yaf >=1.0.0)

Введение

Обзор классов

abstract Yaf_Config_Abstract {
/* Свойства */
protected $_config ;
protected $_readonly ;
/* Методы */
abstract public mixed get ( string $name , mixed $value )
abstract public bool readonly ( void )
abstract public Yaf_Config_Abstract set ( void )
abstract public array toArray ( void )
}

Свойства

_config

_readonly

Содержание

  • Yaf_Config_Abstract::get — Getter
  • Yaf_Config_Abstract::readonly — Find a config whether readonly
  • Yaf_Config_Abstract::set — Setter
  • Yaf_Config_Abstract::toArray — Cast to array


Getter

  • « Yaf_Config_Abstract
  • Yaf_Config_Abstract::readonly »
  • PHP Manual
  • Yaf_Config_Abstract
  • Getter

Yaf_Config_Abstract::get

(Yaf >=1.0.0)

Yaf_Config_Abstract::get — Getter

Описание

abstract public mixed Yaf_Config_Abstract::get ( string $name , mixed $value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Find a config whether readonly

  • « Yaf_Config_Abstract::get
  • Yaf_Config_Abstract::set »
  • PHP Manual
  • Yaf_Config_Abstract
  • Find a config whether readonly

Yaf_Config_Abstract::readonly

(Yaf >=1.0.0)

Yaf_Config_Abstract::readonly — Find a config whether readonly

Описание

abstract public bool Yaf_Config_Abstract::readonly ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Setter

  • « Yaf_Config_Abstract::readonly
  • Yaf_Config_Abstract::toArray »
  • PHP Manual
  • Yaf_Config_Abstract
  • Setter

Yaf_Config_Abstract::set

(Yaf >=1.0.0)

Yaf_Config_Abstract::set — Setter

Описание

abstract public Yaf_Config_Abstract Yaf_Config_Abstract::set ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Cast to array

  • « Yaf_Config_Abstract::set
  • Yaf_Config_Ini »
  • PHP Manual
  • Yaf_Config_Abstract
  • Cast to array

Yaf_Config_Abstract::toArray

(Yaf >=1.0.0)

Yaf_Config_Abstract::toArray — Cast to array

Описание

abstract public array Yaf_Config_Abstract::toArray ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс Yaf_Config_Ini

(Yaf >=1.0.0)

Введение

Yaf_Config_Ini позволяет разработчикам хранить конфигурационные данные в известном INI формате и читать их в приложении с использованием синтаксиса вложенных свойств объекта. INI формат специализируется на обеспечении возможности иметь иерархию ключей конфигаруционных данных и наследовании между разделами конфигурационных данных. Иерархия конфигурационных данных поддерживается путем разделения ключей с точкой ("."). Разделы можно расширять или наследовать от других разделов путем проставления после имени раздела двоеточия (":") и названия раздела от которого данные унаследованы.

Замечание:

Yaf_Config_Ini использует функцию parse_ini_file(). Пожалуйста изучите документацию для понимания ее поведения, которое наследует Yaf_Config_Ini, такого как обработка специяльных значений "TRUE", "FALSE", "yes", "no", и "NULL".

Обзор классов

Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator , ArrayAccess , Countable {
/* Свойства */
/* Методы */
public __construct ( string $config_file [, string $section ] )
public void count ( void )
public void current ( void )
public void __get ([ string $name ] )
public void __isset ( string $name )
public void key ( void )
public void next ( void )
public void offsetExists ( string $name )
public void offsetGet ( string $name )
public void offsetSet ( string $name , string $value )
public void offsetUnset ( string $name )
public void readonly ( void )
public void rewind ( void )
public void __set ( string $name , mixed $value )
public array toArray ( void )
public void valid ( void )
/* Наследуемые методы */
abstract public mixed Yaf_Config_Abstract::get ( string $name , mixed $value )
abstract public bool Yaf_Config_Abstract::readonly ( void )
abstract public Yaf_Config_Abstract Yaf_Config_Abstract::set ( void )
abstract public array Yaf_Config_Abstract::toArray ( void )
}

Свойства

_config

_readonly

Примеры

Пример #1 Yaf_Config_Ini()example

Этот пример раскрывает базовые особенности использования Yaf_Config_Ini при загрузке данных из INI-файла. В этом примере задается конфигурация для промышленной и демонстрационной среды. Так как конфигурация демо-среды очень похожа на конфигурацию промышленной, то она наследует от нее. Но вы в своих приложениях вольны поступать как хотите. В общем, вот такая конфигурация задана в /path/to/config.ini:

; Промышленная среда
[production]
webhost                  = www.example.com
database.adapter         = pdo_mysql
database.params.host     = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname   = dbname

; Демо-среда. Наследует конфигурацию промышленной с некоторыми поправками
[staging : production]
database.params.host     = dev.example.com
database.params.username = devuser
database.params.password = devsecret
<?php
$config = new Yaf_Config_Ini('/path/to/config.ini', 'staging');

var_dump($config->database->params->host);
var_dump($config->database->params->dbname);
var_dump($config->get("database.params.username"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(15) "dev.example.com"
string(6) "dbname"
string(7) "devuser

Содержание

  • Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor
  • Yaf_Config_Ini::count — The count purpose
  • Yaf_Config_Ini::current — The current purpose
  • Yaf_Config_Ini::__get — The __get purpose
  • Yaf_Config_Ini::__isset — The __isset purpose
  • Yaf_Config_Ini::key — The key purpose
  • Yaf_Config_Ini::next — The next purpose
  • Yaf_Config_Ini::offsetExists — The offsetExists purpose
  • Yaf_Config_Ini::offsetGet — The offsetGet purpose
  • Yaf_Config_Ini::offsetSet — The offsetSet purpose
  • Yaf_Config_Ini::offsetUnset — The offsetUnset purpose
  • Yaf_Config_Ini::readonly — The readonly purpose
  • Yaf_Config_Ini::rewind — The rewind purpose
  • Yaf_Config_Ini::__set — The __set purpose
  • Yaf_Config_Ini::toArray — Returns a PHP array
  • Yaf_Config_Ini::valid — The valid purpose


Yaf_Config_Ini constructor

  • « Yaf_Config_Ini
  • Yaf_Config_Ini::count »
  • PHP Manual
  • Yaf_Config_Ini
  • Yaf_Config_Ini constructor

Yaf_Config_Ini::__construct

(Yaf >=1.0.0)

Yaf_Config_Ini::__construct — Yaf_Config_Ini constructor

Описание

public Yaf_Config_Ini::__construct ( string $config_file [, string $section ] )

Yaf_Config_Ini constructor

Список параметров

config_file

path to an INI configure file

section

which section in that INI file you want to be parsed

Возвращаемые значения


The count purpose

  • « Yaf_Config_Ini::__construct
  • Yaf_Config_Ini::current »
  • PHP Manual
  • Yaf_Config_Ini
  • The count purpose

Yaf_Config_Ini::count

(Yaf >=1.0.0)

Yaf_Config_Ini::count — The count purpose

Описание

public void Yaf_Config_Ini::count ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The current purpose

  • « Yaf_Config_Ini::count
  • Yaf_Config_Ini::__get »
  • PHP Manual
  • Yaf_Config_Ini
  • The current purpose

Yaf_Config_Ini::current

(Yaf >=1.0.0)

Yaf_Config_Ini::current — The current purpose

Описание

public void Yaf_Config_Ini::current ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __get purpose

  • « Yaf_Config_Ini::current
  • Yaf_Config_Ini::__isset »
  • PHP Manual
  • Yaf_Config_Ini
  • The __get purpose

Yaf_Config_Ini::__get

(Yaf >=1.0.0)

Yaf_Config_Ini::__get — The __get purpose

Описание

public void Yaf_Config_Ini::__get ([ string $name ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The __isset purpose

  • « Yaf_Config_Ini::__get
  • Yaf_Config_Ini::key »
  • PHP Manual
  • Yaf_Config_Ini
  • The __isset purpose

Yaf_Config_Ini::__isset

(Yaf >=1.0.0)

Yaf_Config_Ini::__isset — The __isset purpose

Описание

public void Yaf_Config_Ini::__isset ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The key purpose

  • « Yaf_Config_Ini::__isset
  • Yaf_Config_Ini::next »
  • PHP Manual
  • Yaf_Config_Ini
  • The key purpose

Yaf_Config_Ini::key

(Yaf >=1.0.0)

Yaf_Config_Ini::key — The key purpose

Описание

public void Yaf_Config_Ini::key ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The next purpose

  • « Yaf_Config_Ini::key
  • Yaf_Config_Ini::offsetExists »
  • PHP Manual
  • Yaf_Config_Ini
  • The next purpose

Yaf_Config_Ini::next

(Yaf >=1.0.0)

Yaf_Config_Ini::next — The next purpose

Описание

public void Yaf_Config_Ini::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The offsetExists purpose

  • « Yaf_Config_Ini::next
  • Yaf_Config_Ini::offsetGet »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetExists purpose

Yaf_Config_Ini::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetExists — The offsetExists purpose

Описание

public void Yaf_Config_Ini::offsetExists ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetGet purpose

  • « Yaf_Config_Ini::offsetExists
  • Yaf_Config_Ini::offsetSet »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetGet purpose

Yaf_Config_Ini::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetGet — The offsetGet purpose

Описание

public void Yaf_Config_Ini::offsetGet ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetSet purpose

  • « Yaf_Config_Ini::offsetGet
  • Yaf_Config_Ini::offsetUnset »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetSet purpose

Yaf_Config_Ini::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetSet — The offsetSet purpose

Описание

public void Yaf_Config_Ini::offsetSet ( string $name , string $value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


The offsetUnset purpose

  • « Yaf_Config_Ini::offsetSet
  • Yaf_Config_Ini::readonly »
  • PHP Manual
  • Yaf_Config_Ini
  • The offsetUnset purpose

Yaf_Config_Ini::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Ini::offsetUnset — The offsetUnset purpose

Описание

public void Yaf_Config_Ini::offsetUnset ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The readonly purpose

  • « Yaf_Config_Ini::offsetUnset
  • Yaf_Config_Ini::rewind »
  • PHP Manual
  • Yaf_Config_Ini
  • The readonly purpose

Yaf_Config_Ini::readonly

(Yaf >=1.0.0)

Yaf_Config_Ini::readonly — The readonly purpose

Описание

public void Yaf_Config_Ini::readonly ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The rewind purpose

  • « Yaf_Config_Ini::readonly
  • Yaf_Config_Ini::__set »
  • PHP Manual
  • Yaf_Config_Ini
  • The rewind purpose

Yaf_Config_Ini::rewind

(Yaf >=1.0.0)

Yaf_Config_Ini::rewind — The rewind purpose

Описание

public void Yaf_Config_Ini::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __set purpose

  • « Yaf_Config_Ini::rewind
  • Yaf_Config_Ini::toArray »
  • PHP Manual
  • Yaf_Config_Ini
  • The __set purpose

Yaf_Config_Ini::__set

(Yaf >=1.0.0)

Yaf_Config_Ini::__set — The __set purpose

Описание

public void Yaf_Config_Ini::__set ( string $name , mixed $value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Returns a PHP array

  • « Yaf_Config_Ini::__set
  • Yaf_Config_Ini::valid »
  • PHP Manual
  • Yaf_Config_Ini
  • Returns a PHP array

Yaf_Config_Ini::toArray

(Yaf >=1.0.0)

Yaf_Config_Ini::toArray — Returns a PHP array

Описание

public array Yaf_Config_Ini::toArray ( void )

Returns a PHP array from the Yaf_Config_Ini

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The valid purpose

  • « Yaf_Config_Ini::toArray
  • Yaf_Config_Simple »
  • PHP Manual
  • Yaf_Config_Ini
  • The valid purpose

Yaf_Config_Ini::valid

(Yaf >=1.0.0)

Yaf_Config_Ini::valid — The valid purpose

Описание

public void Yaf_Config_Ini::valid ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The Yaf_Config_Simple class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Config_Simple extends Yaf_Config_Abstract implements Iterator , ArrayAccess , Countable {
/* Свойства */
protected $_readonly ;
/* Методы */
public __construct ( string $config_file [, string $section ] )
public void count ( void )
public void current ( void )
public void __get ([ string $name ] )
public void __isset ( string $name )
public void key ( void )
public void next ( void )
public void offsetExists ( string $name )
public void offsetGet ( string $name )
public void offsetSet ( string $name , string $value )
public void offsetUnset ( string $name )
public void readonly ( void )
public void rewind ( void )
public void __set ( string $name , string $value )
public array toArray ( void )
public void valid ( void )
/* Наследуемые методы */
abstract public mixed Yaf_Config_Abstract::get ( string $name , mixed $value )
abstract public bool Yaf_Config_Abstract::readonly ( void )
abstract public Yaf_Config_Abstract Yaf_Config_Abstract::set ( void )
abstract public array Yaf_Config_Abstract::toArray ( void )
}

Свойства

_config

_readonly

Содержание

  • Yaf_Config_Simple::__construct — The __construct purpose
  • Yaf_Config_Simple::count — The count purpose
  • Yaf_Config_Simple::current — The current purpose
  • Yaf_Config_Simple::__get — The __get purpose
  • Yaf_Config_Simple::__isset — The __isset purpose
  • Yaf_Config_Simple::key — The key purpose
  • Yaf_Config_Simple::next — The next purpose
  • Yaf_Config_Simple::offsetExists — The offsetExists purpose
  • Yaf_Config_Simple::offsetGet — The offsetGet purpose
  • Yaf_Config_Simple::offsetSet — The offsetSet purpose
  • Yaf_Config_Simple::offsetUnset — The offsetUnset purpose
  • Yaf_Config_Simple::readonly — The readonly purpose
  • Yaf_Config_Simple::rewind — The rewind purpose
  • Yaf_Config_Simple::__set — The __set purpose
  • Yaf_Config_Simple::toArray — Returns a PHP array
  • Yaf_Config_Simple::valid — The valid purpose


The __construct purpose

  • « Yaf_Config_Simple
  • Yaf_Config_Simple::count »
  • PHP Manual
  • Yaf_Config_Simple
  • The __construct purpose

Yaf_Config_Simple::__construct

(Yaf >=1.0.0)

Yaf_Config_Simple::__construct — The __construct purpose

Описание

public Yaf_Config_Simple::__construct ( string $config_file [, string $section ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

config_file

section

Возвращаемые значения


The count purpose

  • « Yaf_Config_Simple::__construct
  • Yaf_Config_Simple::current »
  • PHP Manual
  • Yaf_Config_Simple
  • The count purpose

Yaf_Config_Simple::count

(Yaf >=1.0.0)

Yaf_Config_Simple::count — The count purpose

Описание

public void Yaf_Config_Simple::count ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The current purpose

  • « Yaf_Config_Simple::count
  • Yaf_Config_Simple::__get »
  • PHP Manual
  • Yaf_Config_Simple
  • The current purpose

Yaf_Config_Simple::current

(Yaf >=1.0.0)

Yaf_Config_Simple::current — The current purpose

Описание

public void Yaf_Config_Simple::current ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __get purpose

  • « Yaf_Config_Simple::current
  • Yaf_Config_Simple::__isset »
  • PHP Manual
  • Yaf_Config_Simple
  • The __get purpose

Yaf_Config_Simple::__get

(Yaf >=1.0.0)

Yaf_Config_Simple::__get — The __get purpose

Описание

public void Yaf_Config_Simple::__get ([ string $name ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The __isset purpose

  • « Yaf_Config_Simple::__get
  • Yaf_Config_Simple::key »
  • PHP Manual
  • Yaf_Config_Simple
  • The __isset purpose

Yaf_Config_Simple::__isset

(Yaf >=1.0.0)

Yaf_Config_Simple::__isset — The __isset purpose

Описание

public void Yaf_Config_Simple::__isset ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The key purpose

  • « Yaf_Config_Simple::__isset
  • Yaf_Config_Simple::next »
  • PHP Manual
  • Yaf_Config_Simple
  • The key purpose

Yaf_Config_Simple::key

(Yaf >=1.0.0)

Yaf_Config_Simple::key — The key purpose

Описание

public void Yaf_Config_Simple::key ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The next purpose

  • « Yaf_Config_Simple::key
  • Yaf_Config_Simple::offsetExists »
  • PHP Manual
  • Yaf_Config_Simple
  • The next purpose

Yaf_Config_Simple::next

(Yaf >=1.0.0)

Yaf_Config_Simple::next — The next purpose

Описание

public void Yaf_Config_Simple::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The offsetExists purpose

  • « Yaf_Config_Simple::next
  • Yaf_Config_Simple::offsetGet »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetExists purpose

Yaf_Config_Simple::offsetExists

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetExists — The offsetExists purpose

Описание

public void Yaf_Config_Simple::offsetExists ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetGet purpose

  • « Yaf_Config_Simple::offsetExists
  • Yaf_Config_Simple::offsetSet »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetGet purpose

Yaf_Config_Simple::offsetGet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetGet — The offsetGet purpose

Описание

public void Yaf_Config_Simple::offsetGet ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetSet purpose

  • « Yaf_Config_Simple::offsetGet
  • Yaf_Config_Simple::offsetUnset »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetSet purpose

Yaf_Config_Simple::offsetSet

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetSet — The offsetSet purpose

Описание

public void Yaf_Config_Simple::offsetSet ( string $name , string $value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


The offsetUnset purpose

  • « Yaf_Config_Simple::offsetSet
  • Yaf_Config_Simple::readonly »
  • PHP Manual
  • Yaf_Config_Simple
  • The offsetUnset purpose

Yaf_Config_Simple::offsetUnset

(Yaf >=1.0.0)

Yaf_Config_Simple::offsetUnset — The offsetUnset purpose

Описание

public void Yaf_Config_Simple::offsetUnset ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The readonly purpose

  • « Yaf_Config_Simple::offsetUnset
  • Yaf_Config_Simple::rewind »
  • PHP Manual
  • Yaf_Config_Simple
  • The readonly purpose

Yaf_Config_Simple::readonly

(Yaf >=1.0.0)

Yaf_Config_Simple::readonly — The readonly purpose

Описание

public void Yaf_Config_Simple::readonly ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The rewind purpose

  • « Yaf_Config_Simple::readonly
  • Yaf_Config_Simple::__set »
  • PHP Manual
  • Yaf_Config_Simple
  • The rewind purpose

Yaf_Config_Simple::rewind

(Yaf >=1.0.0)

Yaf_Config_Simple::rewind — The rewind purpose

Описание

public void Yaf_Config_Simple::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __set purpose

  • « Yaf_Config_Simple::rewind
  • Yaf_Config_Simple::toArray »
  • PHP Manual
  • Yaf_Config_Simple
  • The __set purpose

Yaf_Config_Simple::__set

(Yaf >=1.0.0)

Yaf_Config_Simple::__set — The __set purpose

Описание

public void Yaf_Config_Simple::__set ( string $name , string $value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Returns a PHP array

  • « Yaf_Config_Simple::__set
  • Yaf_Config_Simple::valid »
  • PHP Manual
  • Yaf_Config_Simple
  • Returns a PHP array

Yaf_Config_Simple::toArray

(Yaf >=1.0.0)

Yaf_Config_Simple::toArray — Returns a PHP array

Описание

public array Yaf_Config_Simple::toArray ( void )

Returns a PHP array from the Yaf_Config_Simple

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The valid purpose

  • « Yaf_Config_Simple::toArray
  • Yaf_Controller_Abstract »
  • PHP Manual
  • Yaf_Config_Simple
  • The valid purpose

Yaf_Config_Simple::valid

(Yaf >=1.0.0)

Yaf_Config_Simple::valid — The valid purpose

Описание

public void Yaf_Config_Simple::valid ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The Yaf_Controller_Abstract class

(Yaf >=1.0.0)

Введение

Yaf_Controller_Abstract is the heart of Yaf's system. MVC stands for Model-View-Controller and is a design pattern targeted at separating application logic from display logic.

Every custom controller shall inherit Yaf_Controller_Abstract.

You will find that you can not define __construct function for your custom controller, thus, Yaf_Controller_Abstract provides a magic method: Yaf_Controller_Abstract::init().

If you have defined a init() method in your custom controller, it will be called as long as the controller was instantiated.

Action may have arguments, when a request coming, if there are the same name variable in the request parameters(see Yaf_Request_Abstract::getParam()) after routed, Yaf will pass them to the action method (see Yaf_Action_Abstract::execute()).

Замечание:

These arguments are directly fetched without filtering, it should be carefully processed before use them.

Обзор классов

abstract Yaf_Controller_Abstract {
/* Свойства */
public $actions ;
protected $_module ;
protected $_name ;
protected $_request ;
protected $_response ;
protected $_invoke_args ;
protected $_view ;
/* Методы */
final private void __clone ( void )
final private __construct ( void )
protected bool display ( string $tpl [, array $parameters ] )
public void forward ( string $action [, array $paramters ] )
public void getInvokeArg ( string $name )
public void getInvokeArgs ( void )
public string getModuleName ( void )
public Yaf_Request_Abstract getRequest ( void )
public Yaf_Response_Abstract getResponse ( void )
public Yaf_View_Interface getView ( void )
public void getViewpath ( void )
public void init ( void )
public void initView ([ array $options ] )
public bool redirect ( string $url )
protected string render ( string $tpl [, array $parameters ] )
public void setViewpath ( string $view_directory )
}

Свойства

actions

You can also define a action method in a separate PHP script by using this property and Yaf_Action_Abstract.

Пример #1 define action in a separate file

<?php
class IndexController extends Yaf_Controller_Abstract {
    protected $actions = array(
        /** now dummyAction is defined in a separate file */
        "dummy" => "actions/Dummy_action.php",
    );

    /* action method may have arguments */
    public indexAction($name, $id) {
       /* $name and $id are unsafe raw data */
       assert($name == $this->getRequest()->getParam("name"));
       assert($id   == $this->_request->getParam("id"));
    }
}
?>

Пример #2 Dummy_action.php

<?php
class DummyAction extends Yaf_Action_Abstract {
    /* a action class shall define this method  as the entry point */
    public execute() {
    }
}
?>

_module

module name

_name

controller name

_request

current request object

_response

current response object

_invoke_args

_view

view engine object

Содержание

  • Yaf_Controller_Abstract::__clone — Yaf_Controller_Abstract can not be cloned
  • Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor
  • Yaf_Controller_Abstract::display — The display purpose
  • Yaf_Controller_Abstract::forward — foward to another action
  • Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose
  • Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose
  • Yaf_Controller_Abstract::getModuleName — Get module name
  • Yaf_Controller_Abstract::getRequest — Retrieve current request object
  • Yaf_Controller_Abstract::getResponse — Retrieve current response object
  • Yaf_Controller_Abstract::getView — Retrieve the view engine
  • Yaf_Controller_Abstract::getViewpath — The getViewpath purpose
  • Yaf_Controller_Abstract::init — Controller initializer
  • Yaf_Controller_Abstract::initView — The initView purpose
  • Yaf_Controller_Abstract::redirect — Redirect to a URL
  • Yaf_Controller_Abstract::render — Render view template
  • Yaf_Controller_Abstract::setViewpath — The setViewpath purpose


Yaf_Controller_Abstract can not be cloned

  • « Yaf_Controller_Abstract
  • Yaf_Controller_Abstract::__construct »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Yaf_Controller_Abstract can not be cloned

Yaf_Controller_Abstract::__clone

(Yaf >=1.0.0)

Yaf_Controller_Abstract::__clone — Yaf_Controller_Abstract can not be cloned

Описание

final private void Yaf_Controller_Abstract::__clone ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Yaf_Controller_Abstract constructor

  • « Yaf_Controller_Abstract::__clone
  • Yaf_Controller_Abstract::display »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Yaf_Controller_Abstract constructor

Yaf_Controller_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Controller_Abstract::__construct — Yaf_Controller_Abstract constructor

Описание

final private Yaf_Controller_Abstract::__construct ( void )

Yaf_Controller_Abstract::__construct() is final, which means it can not be overridden. You may want to see Yaf_Controller_Abstract::init() instead.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Controller_Abstract::init() - Controller initializer


The display purpose

  • « Yaf_Controller_Abstract::__construct
  • Yaf_Controller_Abstract::forward »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The display purpose

Yaf_Controller_Abstract::display

(Yaf >=1.0.0)

Yaf_Controller_Abstract::display — The display purpose

Описание

protected bool Yaf_Controller_Abstract::display ( string $tpl [, array $parameters ] )

Список параметров

tpl

parameters

Возвращаемые значения


foward to another action

  • « Yaf_Controller_Abstract::display
  • Yaf_Controller_Abstract::getInvokeArg »
  • PHP Manual
  • Yaf_Controller_Abstract
  • foward to another action

Yaf_Controller_Abstract::forward

(Yaf >=1.0.0)

Yaf_Controller_Abstract::forward — foward to another action

Описание

public void Yaf_Controller_Abstract::forward ( string $action [, array $paramters ] )
public void Yaf_Controller_Abstract::forward ( string $controller , string $action [, array $paramters ] )
public void Yaf_Controller_Abstract::forward ( string $module , string $controller , string $action [, array $paramters ] )

forward current execution process to other action.

Замечание:

this method doesn't switch to the destination action immediately, it will take place after current flow finish.

Список параметров

module

destination module name, if NULL was given, then default module name is assumed

controller

destination controller name

action

destination action name

paramters

calling arguments

Примеры

Пример #1 Yaf_Controller_Abstract::forward()example

<?php
class IndexController extends Yaf_Controller_Abstract
{
    public function indexAction(){
         $logined = $_SESSION["login"];
         if (!$logined) {
             $this->forward("login", array("from" => "Index")); // forward to login action
             return FALSE;  // this is important, this finish current working flow
                            // and tell the Yaf do not doing auto-render
         }

         // other processes
    }

    public function loginAction() {
         echo "login, redirected from ", $this->_request->getParam("from") , " action";
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

   login, redirected from Index action

Возвращаемые значения

return FALSE on failure

Смотрите также

  • Yaf_Request_Abstrace::getParam()


The getInvokeArg purpose

  • « Yaf_Controller_Abstract::forward
  • Yaf_Controller_Abstract::getInvokeArgs »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getInvokeArg purpose

Yaf_Controller_Abstract::getInvokeArg

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArg — The getInvokeArg purpose

Описание

public void Yaf_Controller_Abstract::getInvokeArg ( string $name )

Список параметров

name

Возвращаемые значения


The getInvokeArgs purpose

  • « Yaf_Controller_Abstract::getInvokeArg
  • Yaf_Controller_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getInvokeArgs purpose

Yaf_Controller_Abstract::getInvokeArgs

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getInvokeArgs — The getInvokeArgs purpose

Описание

public void Yaf_Controller_Abstract::getInvokeArgs ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get module name

  • « Yaf_Controller_Abstract::getInvokeArgs
  • Yaf_Controller_Abstract::getRequest »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Get module name

Yaf_Controller_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getModuleName — Get module name

Описание

public string Yaf_Controller_Abstract::getModuleName ( void )

get the controller's module name

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve current request object

  • « Yaf_Controller_Abstract::getModuleName
  • Yaf_Controller_Abstract::getResponse »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve current request object

Yaf_Controller_Abstract::getRequest

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getRequest — Retrieve current request object

Описание

public Yaf_Request_Abstract Yaf_Controller_Abstract::getRequest ( void )

retrieve current request object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Yaf_Request_Abstract instance


Retrieve current response object

  • « Yaf_Controller_Abstract::getRequest
  • Yaf_Controller_Abstract::getView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve current response object

Yaf_Controller_Abstract::getResponse

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getResponse — Retrieve current response object

Описание

public Yaf_Response_Abstract Yaf_Controller_Abstract::getResponse ( void )

retrieve current response object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Yaf_Response_Abstract instance


Retrieve the view engine

  • « Yaf_Controller_Abstract::getResponse
  • Yaf_Controller_Abstract::getViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Retrieve the view engine

Yaf_Controller_Abstract::getView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getView — Retrieve the view engine

Описание

public Yaf_View_Interface Yaf_Controller_Abstract::getView ( void )

retrieve view engine

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getViewpath purpose

  • « Yaf_Controller_Abstract::getView
  • Yaf_Controller_Abstract::init »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The getViewpath purpose

Yaf_Controller_Abstract::getViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::getViewpath — The getViewpath purpose

Описание

public void Yaf_Controller_Abstract::getViewpath ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Controller initializer

  • « Yaf_Controller_Abstract::getViewpath
  • Yaf_Controller_Abstract::initView »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Controller initializer

Yaf_Controller_Abstract::init

(Yaf >=1.0.0)

Yaf_Controller_Abstract::init — Controller initializer

Описание

public void Yaf_Controller_Abstract::init ( void )

Yaf_Controller_Abstract::__construct() is final, which means users can not override it. but users can define Yaf_Controller_Abstract::init(), which will be called after controller object is instantiated.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Controller_Abstract::__construct() - Yaf_Controller_Abstract constructor


The initView purpose

  • « Yaf_Controller_Abstract::init
  • Yaf_Controller_Abstract::redirect »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The initView purpose

Yaf_Controller_Abstract::initView

(Yaf >=1.0.0)

Yaf_Controller_Abstract::initView — The initView purpose

Описание

public void Yaf_Controller_Abstract::initView ([ array $options ] )

Список параметров

options

Возвращаемые значения


Redirect to a URL

  • « Yaf_Controller_Abstract::initView
  • Yaf_Controller_Abstract::render »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Redirect to a URL

Yaf_Controller_Abstract::redirect

(Yaf >=1.0.0)

Yaf_Controller_Abstract::redirect — Redirect to a URL

Описание

public bool Yaf_Controller_Abstract::redirect ( string $url )

redirect to a URL by sending a 302 header

Список параметров

url

a location URL

Возвращаемые значения

bool


Render view template

  • « Yaf_Controller_Abstract::redirect
  • Yaf_Controller_Abstract::setViewpath »
  • PHP Manual
  • Yaf_Controller_Abstract
  • Render view template

Yaf_Controller_Abstract::render

(Yaf >=1.0.0)

Yaf_Controller_Abstract::render — Render view template

Описание

protected string Yaf_Controller_Abstract::render ( string $tpl [, array $parameters ] )

Список параметров

tpl

parameters

Возвращаемые значения


The setViewpath purpose

  • « Yaf_Controller_Abstract::render
  • Yaf_Action_Abstract »
  • PHP Manual
  • Yaf_Controller_Abstract
  • The setViewpath purpose

Yaf_Controller_Abstract::setViewpath

(Yaf >=1.0.0)

Yaf_Controller_Abstract::setViewpath — The setViewpath purpose

Описание

public void Yaf_Controller_Abstract::setViewpath ( string $view_directory )

Список параметров

view_directory

Возвращаемые значения


The Yaf_Action_Abstract class

(Yaf >=1.0.0)

Введение

A action can be defined in a separate file in Yaf(see Yaf_Controller_Abstract). that is a action method can also be a Yaf_Action_Abstract class.

Since there should be a entry point which can be called by Yaf (as of PHP 5.3, there is a new magic method __invoke, but Yaf is not only works with PHP 5.3+, Yaf choose another magic method execute), you must implement the abstract method Yaf_Action_Abstract::execute() in your custom action class.

Обзор классов

Yaf_Action_Abstract extends Yaf_Controller_Abstract {
/* Свойства */
protected $_controller ;
/* Методы */
abstract publicmixed execute ([ mixed $arg [, mixed $... ]] )
publicYaf_Controller_Abstract getController ( void )
/* Наследуемые методы */
final private void Yaf_Controller_Abstract::__clone ( void )
final private Yaf_Controller_Abstract::__construct ( void )
protected bool Yaf_Controller_Abstract::display ( string $tpl [, array $parameters ] )
public void Yaf_Controller_Abstract::forward ( string $action [, array $paramters ] )
public void Yaf_Controller_Abstract::getInvokeArg ( string $name )
public void Yaf_Controller_Abstract::getInvokeArgs ( void )
public string Yaf_Controller_Abstract::getModuleName ( void )
public Yaf_Request_Abstract Yaf_Controller_Abstract::getRequest ( void )
public Yaf_Response_Abstract Yaf_Controller_Abstract::getResponse ( void )
public Yaf_View_Interface Yaf_Controller_Abstract::getView ( void )
public void Yaf_Controller_Abstract::getViewpath ( void )
public void Yaf_Controller_Abstract::init ( void )
public void Yaf_Controller_Abstract::initView ([ array $options ] )
public bool Yaf_Controller_Abstract::redirect ( string $url )
protected string Yaf_Controller_Abstract::render ( string $tpl [, array $parameters ] )
public void Yaf_Controller_Abstract::setViewpath ( string $view_directory )
}

Свойства

_module

_name

_request

_response

_invoke_args

_view

_controller

Содержание

  • Yaf_Action_Abstract::execute — Action entry point
  • Yaf_Action_Abstract::getController — Retrieve controller object


Action entry point

  • « Yaf_Action_Abstract
  • Yaf_Action_Abstract::getController »
  • PHP Manual
  • Yaf_Action_Abstract
  • Action entry point

Yaf_Action_Abstract::execute

(Yaf >=1.0.0)

Yaf_Action_Abstract::execute — Action entry point

Описание

abstract publicmixed Yaf_Action_Abstract::execute ([ mixed $arg [, mixed $... ]] )

user should always define this method for a action, this is the entry point of an action. Yaf_Action_Abstract::execute() may have agruments.

Замечание:

The value retrived from the request is not safe. you should do some filtering work before you use it.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yaf_Action_Abstract::execute()example

<?php
/**
 * A controller example
 */
class ProductController extends Yaf_Controller_Abstract {
      protected $actions = array(
          "index" => "actions/Index.php",
      );
}
?>

Пример #2 Yaf_Action_Abstract::execute()example

<?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)

Смотрите также


Retrieve controller object

  • « Yaf_Action_Abstract::execute
  • Yaf_View_Interface »
  • PHP Manual
  • Yaf_Action_Abstract
  • Retrieve controller object

Yaf_Action_Abstract::getController

(Yaf >=1.0.0)

Yaf_Action_Abstract::getController — Retrieve controller object

Описание

publicYaf_Controller_Abstract Yaf_Action_Abstract::getController ( void )

retrieve current controller object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Yaf_Controller_Abstract instance


The Yaf_View_Interface class

(Yaf >=1.0.0)

Введение

Yaf provides a ability for developers to use coustom view engine instead of build-in engine which is Yaf_View_Simple. There is a example to explain how to do this, please see Yaf_Dispatcher::setView().

Обзор классов

Yaf_View_Interface {
/* Методы */
abstract public bool assign ( string $name [, string $value ] )
abstract public bool display ( string $tpl [, array $tpl_vars ] )
abstract public void getScriptPath ( void )
abstract public string render ( string $tpl [, array $tpl_vars ] )
abstract public void setScriptPath ( string $template_dir )
}

Содержание

  • Yaf_View_Interface::assign — Assign value to View engine
  • Yaf_View_Interface::display — Render and output a template
  • Yaf_View_Interface::getScriptPath — The getScriptPath purpose
  • Yaf_View_Interface::render — Render a template
  • Yaf_View_Interface::setScriptPath — The setScriptPath purpose


Assign value to View engine

  • « Yaf_View_Interface
  • Yaf_View_Interface::display »
  • PHP Manual
  • Yaf_View_Interface
  • Assign value to View engine

Yaf_View_Interface::assign

(Yaf >=1.0.0)

Yaf_View_Interface::assign — Assign value to View engine

Описание

abstract public bool Yaf_View_Interface::assign ( string $name [, string $value ] )

Assigan values to View engine, then the value can access directly by name in template.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


Render and output a template

  • « Yaf_View_Interface::assign
  • Yaf_View_Interface::getScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Render and output a template

Yaf_View_Interface::display

(Yaf >=1.0.0)

Yaf_View_Interface::display — Render and output a template

Описание

abstract public bool Yaf_View_Interface::display ( string $tpl [, array $tpl_vars ] )

Render a template and output the result immediatly.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

tpl

tpl_vars

Возвращаемые значения


The getScriptPath purpose

  • « Yaf_View_Interface::display
  • Yaf_View_Interface::render »
  • PHP Manual
  • Yaf_View_Interface
  • The getScriptPath purpose

Yaf_View_Interface::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::getScriptPath — The getScriptPath purpose

Описание

abstract public void Yaf_View_Interface::getScriptPath ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Render a template

  • « Yaf_View_Interface::getScriptPath
  • Yaf_View_Interface::setScriptPath »
  • PHP Manual
  • Yaf_View_Interface
  • Render a template

Yaf_View_Interface::render

(Yaf >=1.0.0)

Yaf_View_Interface::render — Render a template

Описание

abstract public string Yaf_View_Interface::render ( string $tpl [, array $tpl_vars ] )

Render a template and return the result.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

tpl

tpl_vars

Возвращаемые значения


The setScriptPath purpose

  • « Yaf_View_Interface::render
  • Yaf_View_Simple »
  • PHP Manual
  • Yaf_View_Interface
  • The setScriptPath purpose

Yaf_View_Interface::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Interface::setScriptPath — The setScriptPath purpose

Описание

abstract public void Yaf_View_Interface::setScriptPath ( string $template_dir )

Set the templates base directory, this is usually called by Yaf_Dispatcher

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

template_dir

A absolute path to the template directory, by default, Yaf_Dispatcher use application.directory . "/views" as this paramter.

Возвращаемые значения


The Yaf_View_Simple class

(Yaf >=1.0.0)

Введение

Yaf_View_Simple is the built-in template engine in Yaf, it is a simple but fast template engine, and only support PHP script template.

Обзор классов

Yaf_View_Simple implements Yaf_View_Interface {
/* Свойства */
protected $_tpl_vars ;
protected $_tpl_dir ;
/* Методы */
public bool assign ( string $name [, mixed $value ] )
public bool assignRef ( string $name , mixed &$value )
public bool clear ([ string $name ] )
final public __construct ( string $template_dir [, array $options ] )
public bool display ( string $tpl [, array $tpl_vars ] )
public string eval ( string $tpl_content [, array $tpl_vars ] )
public void __get ([ string $name ] )
public string getScriptPath ( void )
public void __isset ( string $name )
public string render ( string $tpl [, array $tpl_vars ] )
public void __set ( string $name , mixed $value )
public bool setScriptPath ( string $template_dir )
}

Свойства

_tpl_vars

_tpl_dir

Содержание

  • Yaf_View_Simple::assign — Assign values
  • Yaf_View_Simple::assignRef — The assignRef purpose
  • Yaf_View_Simple::clear — Clear Assigned values
  • Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple
  • Yaf_View_Simple::display — Render and display
  • Yaf_View_Simple::eval — Render template
  • Yaf_View_Simple::__get — Retrieve assigned variable
  • Yaf_View_Simple::getScriptPath — Get templates directory
  • Yaf_View_Simple::__isset — The __isset purpose
  • Yaf_View_Simple::render — Render template
  • Yaf_View_Simple::__set — Set value to engine
  • Yaf_View_Simple::setScriptPath — Set tempaltes directory


Assign values

  • « Yaf_View_Simple
  • Yaf_View_Simple::assignRef »
  • PHP Manual
  • Yaf_View_Simple
  • Assign values

Yaf_View_Simple::assign

(Yaf >=1.0.0)

Yaf_View_Simple::assign — Assign values

Описание

public bool Yaf_View_Simple::assign ( string $name [, mixed $value ] )

assign variable to view engine

Список параметров

name

A string or an array.

if is string, then the next argument $value is required.

value

mixed value

Возвращаемые значения

Примеры

Пример #1 Yaf_View_Simple::assign()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->assign("foo", "bar");
        $this->_view->assign( array( "key" => "value", "name" => "value"));
    }
?>

Пример #2 template()example

<html>
 <head>
  <title><?php echo $foo; ?></title>
 </head>
<body>
  <?php
    foreach ($this->_tpl_vars as $name => value) {
         echo $$name; // or echo $this->_tpl_vars[$name];
    }
  ?>
</body>
</html>

Смотрите также

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::clear()
  • Yaf_View_Simple::__set() - Set value to engine


The assignRef purpose

  • « Yaf_View_Simple::assign
  • Yaf_View_Simple::clear »
  • PHP Manual
  • Yaf_View_Simple
  • The assignRef purpose

Yaf_View_Simple::assignRef

(Yaf >=1.0.0)

Yaf_View_Simple::assignRef — The assignRef purpose

Описание

public bool Yaf_View_Simple::assignRef ( string $name , mixed &$value )

unlike Yaf_View_Simple::assign(), this method assign a ref value to engine.

Список параметров

name

A string name which will be used to access the value in the tempalte.

value

mixed value

Возвращаемые значения

Примеры

Пример #1 Yaf_View_Simple::assignRef()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $value = "bar";
        $this->getView()->assign("foo", $value);

        /* plz note that there was a bug before Yaf 2.1.4,
         * which make following output "bar";
         */
        $dummy = $this->getView()->render("index/index.phtml");
        echo $value;

        //prevent the auto-render
        Yaf_Dispatcher::getInstance()->autoRender(FALSE);
    }
?>

Пример #2 template()example

<html>
 <head>
  <title><?php echo $foo;  $foo = "changed"; ?></title>
 </head>
<body>
</body>
</html>

Результатом выполнения данного примера будет что-то подобное:

/* access the index controller will result: */
changed

Смотрите также

  • Yaf_View_Simple::assign() - Assign values
  • Yaf_View_Simple::__set() - Set value to engine


Clear Assigned values

  • « Yaf_View_Simple::assignRef
  • Yaf_View_Simple::__construct »
  • PHP Manual
  • Yaf_View_Simple
  • Clear Assigned values

Yaf_View_Simple::clear

(Yaf >=2.2.0)

Yaf_View_Simple::clear — Clear Assigned values

Описание

public bool Yaf_View_Simple::clear ([ string $name ] )

clear assigned variable

Список параметров

name

assigned variable name

if empty, will clear all assigned variables

Возвращаемые значения

Примеры

Пример #1 Yaf_View_Simple::clear()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->clear("foo")->clear("bar"); // clear "foo" and "bar"
        $this->_view->clear(); //clear all assigned variables
    }
?>

Смотрите также

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::assign() - Assign value to View engine
  • Yaf_View_Simple::__set() - Set value to engine


Constructor of Yaf_View_Simple

  • « Yaf_View_Simple::clear
  • Yaf_View_Simple::display »
  • PHP Manual
  • Yaf_View_Simple
  • Constructor of Yaf_View_Simple

Yaf_View_Simple::__construct

(Yaf >=1.0.0)

Yaf_View_Simple::__construct — Constructor of Yaf_View_Simple

Описание

final public Yaf_View_Simple::__construct ( string $template_dir [, array $options ] )

Список параметров

template_dir

The base directory of the templates, by default, it is APPLICATOIN . "/views" for Yaf.

options

Options for the engine, as of Yaf 2.1.13, you can use short tag
      "<?=$var?>" in your template(regardless of "short_open_tag"),
      so comes a option named "short_tag",  you can switch this off
      to prevent use short_tag in template.

Примеры

Пример #1 Yaf_View_Simple::__constructor()example

<?php
   define ("TEMPLATE_DIRECTORY", APPLICATOIN_PATH . '/views');
   $view = new Yaf_View_Simple(TEMPLATE_DIRECTORY, array(
                           'short_tag' => false //doesn't allow use short tag in template
   ));
?>

Возвращаемые значения


Render and display

  • « Yaf_View_Simple::__construct
  • Yaf_View_Simple::eval »
  • PHP Manual
  • Yaf_View_Simple
  • Render and display

Yaf_View_Simple::display

(Yaf >=1.0.0)

Yaf_View_Simple::display — Render and display

Описание

public bool Yaf_View_Simple::display ( string $tpl [, array $tpl_vars ] )

Render a template and display the result instantly.

Список параметров

tpl

tpl_vars

Возвращаемые значения


Render template

  • « Yaf_View_Simple::display
  • Yaf_View_Simple::__get »
  • PHP Manual
  • Yaf_View_Simple
  • Render template

Yaf_View_Simple::eval

(Yaf >=2.2.0)

Yaf_View_Simple::eval — Render template

Описание

public string Yaf_View_Simple::eval ( string $tpl_content [, array $tpl_vars ] )

Render a string tempalte and return the result.

Список параметров

tpl_content

string template

tpl_vars

Возвращаемые значения


Retrieve assigned variable

  • « Yaf_View_Simple::eval
  • Yaf_View_Simple::getScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Retrieve assigned variable

Yaf_View_Simple::__get

(Yaf >=1.0.0)

Yaf_View_Simple::__get — Retrieve assigned variable

Описание

public void Yaf_View_Simple::__get ([ string $name ] )

Retrieve assigned varaiable

Замечание:

parameter can be empty since 2.1.11

Список параметров

name

the assigned variable name

if this is empty, all assigned variables will be returned

Возвращаемые значения


Get templates directory

  • « Yaf_View_Simple::__get
  • Yaf_View_Simple::__isset »
  • PHP Manual
  • Yaf_View_Simple
  • Get templates directory

Yaf_View_Simple::getScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::getScriptPath — Get templates directory

Описание

public string Yaf_View_Simple::getScriptPath ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __isset purpose

  • « Yaf_View_Simple::getScriptPath
  • Yaf_View_Simple::render »
  • PHP Manual
  • Yaf_View_Simple
  • The __isset purpose

Yaf_View_Simple::__isset

(Yaf >=1.0.0)

Yaf_View_Simple::__isset — The __isset purpose

Описание

public void Yaf_View_Simple::__isset ( string $name )

Список параметров

name

Возвращаемые значения


Render template

  • « Yaf_View_Simple::__isset
  • Yaf_View_Simple::__set »
  • PHP Manual
  • Yaf_View_Simple
  • Render template

Yaf_View_Simple::render

(Yaf >=1.0.0)

Yaf_View_Simple::render — Render template

Описание

public string Yaf_View_Simple::render ( string $tpl [, array $tpl_vars ] )

Render a template and return the result.

Список параметров

tpl

tpl_vars

Возвращаемые значения


Set value to engine

  • « Yaf_View_Simple::render
  • Yaf_View_Simple::setScriptPath »
  • PHP Manual
  • Yaf_View_Simple
  • Set value to engine

Yaf_View_Simple::__set

(Yaf >=1.0.0)

Yaf_View_Simple::__set — Set value to engine

Описание

public void Yaf_View_Simple::__set ( string $name , mixed $value )

This is a alternative and easier way to Yaf_View_Simple::assign().

Список параметров

name

A string value name.

value

Mixed value.

Возвращаемые значения

Примеры

Пример #1 Yaf_View_Simple::__set()example

<?php
class IndexController extends Yaf_Controller_Abstract {
    public function indexAction() {
        $this->getView()->foo = "bar"; // same as assign("foo", "bar");
    }
?>

Смотрите также

  • Yaf_View_Simple::assignRef() - The assignRef purpose
  • Yaf_View_Interface::assign() - Assign value to View engine


Set tempaltes directory

  • « Yaf_View_Simple::__set
  • Yaf_Loader »
  • PHP Manual
  • Yaf_View_Simple
  • Set tempaltes directory

Yaf_View_Simple::setScriptPath

(Yaf >=1.0.0)

Yaf_View_Simple::setScriptPath — Set tempaltes directory

Описание

public bool Yaf_View_Simple::setScriptPath ( string $template_dir )

Список параметров

template_dir

Возвращаемые значения


The Yaf_Loader class

(Yaf >=1.0.0)

Введение

Yaf_Loader introduces a comprehensive autoloading solution for Yaf.

The first time an instance of Yaf_Application is retrieved, Yaf_Loader will instance a singleton, and registers itself with spl_autoload. You retrieve an instance using the Yaf_Loader::getInstance()

Yaf_Loader attempt to load a class only one shot, if failed, depend on yaf.use_spl_auload, if this config is On Yaf_Loader::autoload() will return FALSE, thus give the chance to other autoload function. if it is Off (by default), Yaf_Loader::autoload() will return TRUE, and more important is that a very usefull warning will be triggerd (very usefull to find out why a class could not be loaded).

Замечание:

Please keep yaf.use_spl_autoload Off unless there is some library have their own autoload mechanism and impossible to rewrite it.

By default, Yaf_Loader assume all library (class defined script) store in the global library directory, which is defined in the php.ini(yaf.library).

If you want Yaf_Loader search some classes(libraries) in the local class directory(which is defined in application.ini, and by default, it is application.directory . "/library"), you should register the class prefix using the Yaf_Loader::registerLocalNameSpace()

Let's see some examples(assuming APPLICATION_PATH is application.directory):

Пример #1 Config example

// Assuming the following configure in php.ini:
yaf.library = "/global_dir"

//Assuming the following configure in application.ini
application.library = APPLICATION_PATH "/library"
Assuming the following local name space registerd:

Пример #2 Register localnamespace

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
     public function _initLoader($dispatcher) {
          Yaf_Loader::getInstance()->registerLocalNameSpace(array("Foo", "Bar"));
     }
?>
Then the autoload examples:

Пример #3 Load class example

class Foo_Bar_Test =>
  // APPLICATION_PATH/library/Foo/Bar/Test.php

class GLO_Name  =>
  // /global_dir/Glo/Name.php

class BarNon_Test
  // /global_dir/Barnon/Test.php
As of PHP 5.3, you can use namespace:

Пример #4 Load namespace class example

class \Foo\Bar\Dummy =>
   // APPLICATION_PATH/library/Foo/Bar/Dummy.php

class \FooBar\Bar\Dummy =>
   // /global_dir/FooBar/Bar/Dummy.php

You may noticed that all the folder wth the first letter capitalized, you can make them lowercase by set yaf.lowcase_path = On in php.ini

Yaf_Loader is also designed to load the MVC classes, and the rule is:

Пример #5 MVC class loading example

Controller Classes =>
// APPLICATION_PATH/controllers/

Model Classes =>
// APPLICATION_PATH/models/

Plugin Classes =>
// APPLICATION_PATH/plugins/
Yaf identify a class's suffix(this is by default, you can also change to the prefix by change the configure yaf.name_suffix) to decide whether it is a MVC class:

Пример #6 MVC class distinctions

Controller Classes =>
    // ***Controller

Model Classes =>
    // ***Model

Plugin Classes =>
    // ***Plugin
some examples:

Пример #7 MVC loading example

class IndexController
    // APPLICATION_PATH/controllers/Index.php

class DataModel =>
   // APPLICATION_PATH/models/Data.php

class DummyPlugin =>
  // APPLICATION_PATH/plugins/Dummy.php

class A_B_TestModel =>
  // APPLICATION_PATH/models/A/B/Test.php

Замечание:

As of 2.1.18, Yaf supports Controllers autoloading for user script side, (which means the autoloading triggered by user php script, eg: access a controller static property in Bootstrap or Plugins), but autoloader only try to locate controller class script under the default module folder, which is "APPLICATION_PATH/controllers/".

also, the directory will be affected by yaf.lowcase_path.

Обзор классов

Yaf_Loader {
/* Свойства */
protected $_local_ns ;
protected $_library ;
protected $_global_library ;
static $_instance ;
/* Методы */
public void autoload ( void )
public void clearLocalNamespace ( void )
private void __clone ( void )
private __construct ( void )
public static void getInstance ( void )
public Yaf_Loader getLibraryPath ([ bool $is_global = false ] )
public void getLocalNamespace ( void )
public static void import ( void )
public void isLocalName ( void )
public void registerLocalNamespace ( mixed $prefix )
public Yaf_Loader setLibraryPath ( string $directory [, bool $is_global = false ] )
private void __sleep ( void )
private void __wakeup ( void )
}

Свойства

_local_ns

_library

By default, this value is application.directory . "/library", you can change this either in the application.ini(application.library) or call to Yaf_Loader::setLibraryPath()

_global_library

_instance

Содержание

  • Yaf_Loader::autoload — The autoload purpose
  • Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose
  • Yaf_Loader::__clone — The __clone purpose
  • Yaf_Loader::__construct — The __construct purpose
  • Yaf_Loader::getInstance — The getInstance purpose
  • Yaf_Loader::getLibraryPath — get the library path
  • Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose
  • Yaf_Loader::import — The import purpose
  • Yaf_Loader::isLocalName — The isLocalName purpose
  • Yaf_Loader::registerLocalNamespace — register local class prefix
  • Yaf_Loader::setLibraryPath — Change the library path
  • Yaf_Loader::__sleep — The __sleep purpose
  • Yaf_Loader::__wakeup — The __wakeup purpose


The autoload purpose

  • « Yaf_Loader
  • Yaf_Loader::clearLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • The autoload purpose

Yaf_Loader::autoload

(Yaf >=1.0.0)

Yaf_Loader::autoload — The autoload purpose

Описание

public void Yaf_Loader::autoload ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The clearLocalNamespace purpose

  • « Yaf_Loader::autoload
  • Yaf_Loader::__clone »
  • PHP Manual
  • Yaf_Loader
  • The clearLocalNamespace purpose

Yaf_Loader::clearLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::clearLocalNamespace — The clearLocalNamespace purpose

Описание

public void Yaf_Loader::clearLocalNamespace ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __clone purpose

  • « Yaf_Loader::clearLocalNamespace
  • Yaf_Loader::__construct »
  • PHP Manual
  • Yaf_Loader
  • The __clone purpose

Yaf_Loader::__clone

(Yaf >=1.0.0)

Yaf_Loader::__clone — The __clone purpose

Описание

private void Yaf_Loader::__clone ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __construct purpose

  • « Yaf_Loader::__clone
  • Yaf_Loader::getInstance »
  • PHP Manual
  • Yaf_Loader
  • The __construct purpose

Yaf_Loader::__construct

(Yaf >=1.0.0)

Yaf_Loader::__construct — The __construct purpose

Описание

private Yaf_Loader::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getInstance purpose

  • « Yaf_Loader::__construct
  • Yaf_Loader::getLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • The getInstance purpose

Yaf_Loader::getInstance

(Yaf >=1.0.0)

Yaf_Loader::getInstance — The getInstance purpose

Описание

public static void Yaf_Loader::getInstance ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


get the library path

  • « Yaf_Loader::getInstance
  • Yaf_Loader::getLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • get the library path

Yaf_Loader::getLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::getLibraryPath — get the library path

Описание

public Yaf_Loader Yaf_Loader::getLibraryPath ([ bool $is_global = false ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getLocalNamespace purpose

  • « Yaf_Loader::getLibraryPath
  • Yaf_Loader::import »
  • PHP Manual
  • Yaf_Loader
  • The getLocalNamespace purpose

Yaf_Loader::getLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::getLocalNamespace — The getLocalNamespace purpose

Описание

public void Yaf_Loader::getLocalNamespace ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The import purpose

  • « Yaf_Loader::getLocalNamespace
  • Yaf_Loader::isLocalName »
  • PHP Manual
  • Yaf_Loader
  • The import purpose

Yaf_Loader::import

(Yaf >=1.0.0)

Yaf_Loader::import — The import purpose

Описание

public static void Yaf_Loader::import ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The isLocalName purpose

  • « Yaf_Loader::import
  • Yaf_Loader::registerLocalNamespace »
  • PHP Manual
  • Yaf_Loader
  • The isLocalName purpose

Yaf_Loader::isLocalName

(Yaf >=1.0.0)

Yaf_Loader::isLocalName — The isLocalName purpose

Описание

public void Yaf_Loader::isLocalName ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


register local class prefix

  • « Yaf_Loader::isLocalName
  • Yaf_Loader::setLibraryPath »
  • PHP Manual
  • Yaf_Loader
  • register local class prefix

Yaf_Loader::registerLocalNamespace

(Yaf >=1.0.0)

Yaf_Loader::registerLocalNamespace — register local class prefix

Описание

public void Yaf_Loader::registerLocalNamespace ( mixed $prefix )

Register local class prefix name, Yaf_Loader search classes in two library directories, the one is configured via application.library.directory(in application.ini) which is called local libraray directory; the other is configured via yaf.library (in php.ini) which is callled global library directory, since it can be shared by many applications in the same server.

When an autloading is trigger, Yaf_Loader will determine which library directory should be searched in by exame the prefix name of the missed classname. If the prefix name is registered as a localnamespack then look for it in local library directory, otherwise look for it in global library directory.

Замечание:

If yaf.library is not configured, then the global library directory is assumed to be the local library directory. in that case, all autoloading will look for local library directory. But if you want your Yaf application be strong, then always register your own classes as local classes.

Список параметров

prefix

a string or a array of class name prefix. all class prefix with these prefix will be loaded in local library path.

Возвращаемые значения

bool

Примеры

Пример #1 Yaf_Loader::registerLocalNamespace()example

<?php
$loader = Yaf_Loader::getInstance('/local/library/', '/global/library');
$loader->registerLocalNamespace("Baidu");
$loader->registerLocalNamespace(array("Sina", "Weibo"));

$loader->autoload("Baidu_Name"); // search in '/local/library/'
$loader->autoload("Sina");       // search '/local/library/'
$loader->autoload("Global_Name");// search in '/global/library/'
$loader->autoload("Foo_Bar");    // search in '/global/library/'

?>


Change the library path

  • « Yaf_Loader::registerLocalNamespace
  • Yaf_Loader::__sleep »
  • PHP Manual
  • Yaf_Loader
  • Change the library path

Yaf_Loader::setLibraryPath

(Yaf >=2.1.4)

Yaf_Loader::setLibraryPath — Change the library path

Описание

public Yaf_Loader Yaf_Loader::setLibraryPath ( string $directory [, bool $is_global = false ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __sleep purpose

  • « Yaf_Loader::setLibraryPath
  • Yaf_Loader::__wakeup »
  • PHP Manual
  • Yaf_Loader
  • The __sleep purpose

Yaf_Loader::__sleep

(Yaf >=1.0.0)

Yaf_Loader::__sleep — The __sleep purpose

Описание

private void Yaf_Loader::__sleep ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __wakeup purpose

  • « Yaf_Loader::__sleep
  • Yaf_Plugin_Abstract »
  • PHP Manual
  • Yaf_Loader
  • The __wakeup purpose

Yaf_Loader::__wakeup

(Yaf >=1.0.0)

Yaf_Loader::__wakeup — The __wakeup purpose

Описание

private void Yaf_Loader::__wakeup ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The Yaf_Plugin_Abstract class

(Yaf >=1.0.0)

Введение

Plugins allow for easy extensibility and customization of the framework.

Plugins are classes. The actual class definition will vary based on the component -- you may need to implement this interface, but the fact remains that the plugin is itself a class.

A plugin could be loaded into Yaf by using Yaf_Dispatcher::registerPlugin(), after registerd, All the methods which the plugin implemented according to this interface, will be called at the proper time.

Примеры

Пример #1 Plugin example

<?php
   /* bootstrap class should be defined under ./application/Bootstrap.php */
   class Bootstrap extends Yaf_Bootstrap_Abstract {
        public function _initPlugin(Yaf_Dispatcher $dispatcher) {
            /* register a plugin */
            $dispatcher->registerPlugin(new TestPlugin());
        }
   }

   /* plugin class should be placed under ./application/plugins/ */
   class TestPlugin extends Yaf_Plugin_Abstract {
        public function routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            /* before router
               in this hook,  user can do some url rewrite */
            var_dump("routerStartup");
        }
        public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
            /* router complete
               in this hook, user can do login check */
            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) {
            /* final hoook
               in this hook user can do loging or implement layout */
            var_dump("dispatchLoopShutdown");
        }
   }

   Class IndexController extends Yaf_Controller_Abstract {
        public function indexAction() {
            return FALSE; //prevent rendering
        }
   }

   $config = array(
       "application" => array(
           "directory" => dirname(__FILE__) . "/application/",
       ),
   );

   $app = new Yaf_Application($config);
   $app->bootstrap()->run();
?>

Результатом выполнения данного примера будет что-то подобное:

string(13) "routerStartup"
string(14) "routerShutdown"
string(19) "dispatchLoopStartup"
string(11) "preDispatch"
string(12) "postDispatch"
string(20) "dispatchLoopShutdown"

Обзор классов

Yaf_Plugin_Abstract {
/* Методы */
public void dispatchLoopShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void dispatchLoopStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void postDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void preDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void preResponse ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void routerShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
public void routerStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )
}

Содержание

  • Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup — The dispatchLoopStartup purpose
  • Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose
  • Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose
  • Yaf_Plugin_Abstract::preResponse — The preResponse purpose
  • Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose
  • Yaf_Plugin_Abstract::routerStartup — RouterStartup hook


The dispatchLoopShutdown purpose

  • « Yaf_Plugin_Abstract
  • Yaf_Plugin_Abstract::dispatchLoopStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The dispatchLoopShutdown purpose

Yaf_Plugin_Abstract::dispatchLoopShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopShutdown — The dispatchLoopShutdown purpose

Описание

public void Yaf_Plugin_Abstract::dispatchLoopShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

This is the latest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called after the dispatch loop finished.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения

Смотрите также

  • Yaf_Plugin_Abstract::routerStartup() - RouterStartup hook
  • Yaf_Plugin_Abstract::routerShutdown() - The routerShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - The dispatchLoopStartup purpose
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose


The dispatchLoopStartup purpose

  • « Yaf_Plugin_Abstract::dispatchLoopShutdown
  • Yaf_Plugin_Abstract::postDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The dispatchLoopStartup purpose

Yaf_Plugin_Abstract::dispatchLoopStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::dispatchLoopStartup — The dispatchLoopStartup purpose

Описание

public void Yaf_Plugin_Abstract::dispatchLoopStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения


The postDispatch purpose

  • « Yaf_Plugin_Abstract::dispatchLoopStartup
  • Yaf_Plugin_Abstract::preDispatch »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The postDispatch purpose

Yaf_Plugin_Abstract::postDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::postDispatch — The postDispatch purpose

Описание

public void Yaf_Plugin_Abstract::postDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения


The preDispatch purpose

  • « Yaf_Plugin_Abstract::postDispatch
  • Yaf_Plugin_Abstract::preResponse »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The preDispatch purpose

Yaf_Plugin_Abstract::preDispatch

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preDispatch — The preDispatch purpose

Описание

public void Yaf_Plugin_Abstract::preDispatch ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения


The preResponse purpose

  • « Yaf_Plugin_Abstract::preDispatch
  • Yaf_Plugin_Abstract::routerShutdown »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The preResponse purpose

Yaf_Plugin_Abstract::preResponse

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::preResponse — The preResponse purpose

Описание

public void Yaf_Plugin_Abstract::preResponse ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения


The routerShutdown purpose

  • « Yaf_Plugin_Abstract::preResponse
  • Yaf_Plugin_Abstract::routerStartup »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • The routerShutdown purpose

Yaf_Plugin_Abstract::routerShutdown

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerShutdown — The routerShutdown purpose

Описание

public void Yaf_Plugin_Abstract::routerShutdown ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

This hook will be trigged after the route process finished, this hook is usually used for login check.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения

Примеры

Пример #1 Yaf_Plugin_Abstract::routerShutdown()example

<?php
class UserInitPlugin extends Yaf_Plugin_Abstract {

    public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
        $controller = $request->getControllerName();

        /**
         * Use access controller is unecessary for APIs
         */
        if (in_array(strtolower($controller), array(
            'api',
        ))) {
            return TRUE;
        }

        if (Yaf_Session::getInstance()->has("login")) {
            return TRUE;
        }

        /* Use access check failed, need to login */
        $response->redirect("http://yourdomain.com/login/");
        return FALSE;
    }
?>

Смотрите также

  • Yaf_Plugin_Abstract::routerStartup() - RouterStartup hook
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - The dispatchLoopStartup purpose
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - The dispatchLoopShutdown purpose


RouterStartup hook

  • « Yaf_Plugin_Abstract::routerShutdown
  • Yaf_Registry »
  • PHP Manual
  • Yaf_Plugin_Abstract
  • RouterStartup hook

Yaf_Plugin_Abstract::routerStartup

(Yaf >=1.0.0)

Yaf_Plugin_Abstract::routerStartup — RouterStartup hook

Описание

public void Yaf_Plugin_Abstract::routerStartup ( Yaf_Request_Abstract $request , Yaf_Response_Abstract $response )

This is the earliest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called before routing a request.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

response

Возвращаемые значения

Смотрите также

  • Yaf_Plugin_Abstract::routerShutdown() - The routerShutdown purpose
  • Yaf_Plugin_Abstract::dispatchLoopStartup() - The dispatchLoopStartup purpose
  • Yaf_Plugin_Abstract::preDispatch() - The preDispatch purpose
  • Yaf_Plugin_Abstract::postDispatch() - The postDispatch purpose
  • Yaf_Plugin_Abstract::dispatchLoopShutdown() - The dispatchLoopShutdown purpose


The Yaf_Registry class

(Yaf >=1.0.0)

Введение

All methods of Yaf_Registry declared as static, making it unversally accessible. This provides the ability to get or set any custom data from anyway in your code as necessary.

Обзор классов

Yaf_Registry {
/* Свойства */
static $_instance ;
protected $_entries ;
/* Методы */
private void __clone ( void )
private __construct ( void )
public static void del ( string $name )
public static mixed get ( string $name )
public static bool has ( string $name )
public static bool set ( string $name , string $value )
}

Свойства

_instance

_entries

Содержание

  • Yaf_Registry::__clone — The __clone purpose
  • Yaf_Registry::__construct — Yaf_Registry implements singleton
  • Yaf_Registry::del — Remove an item from registry
  • Yaf_Registry::get — Retrieve an item from registry
  • Yaf_Registry::has — Check whether an item exists
  • Yaf_Registry::set — Add an item into registry


The __clone purpose

  • « Yaf_Registry
  • Yaf_Registry::__construct »
  • PHP Manual
  • Yaf_Registry
  • The __clone purpose

Yaf_Registry::__clone

(Yaf >=1.0.0)

Yaf_Registry::__clone — The __clone purpose

Описание

private void Yaf_Registry::__clone ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Yaf_Registry implements singleton

  • « Yaf_Registry::__clone
  • Yaf_Registry::del »
  • PHP Manual
  • Yaf_Registry
  • Yaf_Registry implements singleton

Yaf_Registry::__construct

(Yaf >=1.0.0)

Yaf_Registry::__construct — Yaf_Registry implements singleton

Описание

private Yaf_Registry::__construct ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Remove an item from registry

  • « Yaf_Registry::__construct
  • Yaf_Registry::get »
  • PHP Manual
  • Yaf_Registry
  • Remove an item from registry

Yaf_Registry::del

(Yaf >=1.0.0)

Yaf_Registry::del — Remove an item from registry

Описание

public static void Yaf_Registry::del ( string $name )

Remove an item from registry

Список параметров

name

Возвращаемые значения


Retrieve an item from registry

  • « Yaf_Registry::del
  • Yaf_Registry::has »
  • PHP Manual
  • Yaf_Registry
  • Retrieve an item from registry

Yaf_Registry::get

(Yaf >=1.0.0)

Yaf_Registry::get — Retrieve an item from registry

Описание

public static mixed Yaf_Registry::get ( string $name )

Retrieve an item from registry

Список параметров

name

Возвращаемые значения


Check whether an item exists

  • « Yaf_Registry::get
  • Yaf_Registry::set »
  • PHP Manual
  • Yaf_Registry
  • Check whether an item exists

Yaf_Registry::has

(Yaf >=1.0.0)

Yaf_Registry::has — Check whether an item exists

Описание

public static bool Yaf_Registry::has ( string $name )

Check whether an item exists

Список параметров

name

Возвращаемые значения


Add an item into registry

  • « Yaf_Registry::has
  • Yaf_Request_Abstract »
  • PHP Manual
  • Yaf_Registry
  • Add an item into registry

Yaf_Registry::set

(Yaf >=1.0.0)

Yaf_Registry::set — Add an item into registry

Описание

public static bool Yaf_Registry::set ( string $name , string $value )

Add an item into registry

Список параметров

name

value

Возвращаемые значения


The Yaf_Request_Abstract class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Request_Abstract {
/* Constants */
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 void getActionName ( void )
public void getBaseUri ( void )
public void getControllerName ( void )
public void getEnv ( string $name [, string $default ] )
public void getException ( void )
public void getLanguage ( void )
public void getMethod ( void )
public void getModuleName ( void )
public void getParam ( string $name [, string $default ] )
public void getParams ( void )
public void getRequestUri ( void )
public void getServer ( string $name [, string $default ] )
public void isCli ( void )
public void isDispatched ( void )
public void isGet ( void )
public void isHead ( void )
public void isOptions ( void )
public void isPost ( void )
public void isPut ( void )
public void isRouted ( void )
public void isXmlHttpRequest ( void )
public void setActionName ( string $action )
public bool setBaseUri ( string $uir )
public void setControllerName ( string $controller )
public void setDispatched ( void )
public void setModuleName ( string $module )
public void setParam ( string $name [, string $value ] )
public void setRequestUri ( string $uir )
public void setRouted ([ string $flag ] )
}

Свойства

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Предопределенные константы

Yaf_Request_Abstract::SCHEME_HTTP

Yaf_Request_Abstract::SCHEME_HTTPS

Содержание

  • Yaf_Request_Abstract::getActionName — The getActionName purpose
  • Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose
  • Yaf_Request_Abstract::getControllerName — The getControllerName purpose
  • Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe
  • Yaf_Request_Abstract::getException — The getException purpose
  • Yaf_Request_Abstract::getLanguage — The getLanguage purpose
  • Yaf_Request_Abstract::getMethod — The getMethod purpose
  • Yaf_Request_Abstract::getModuleName — The getModuleName purpose
  • Yaf_Request_Abstract::getParam — The getParam purpose
  • Yaf_Request_Abstract::getParams — The getParams purpose
  • Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose
  • Yaf_Request_Abstract::getServer — Retrieve SERVER variable
  • Yaf_Request_Abstract::isCli — The isCli purpose
  • Yaf_Request_Abstract::isDispatched — The isDispatched purpose
  • Yaf_Request_Abstract::isGet — The isGet purpose
  • Yaf_Request_Abstract::isHead — The isHead purpose
  • Yaf_Request_Abstract::isOptions — The isOptions purpose
  • Yaf_Request_Abstract::isPost — The isPost purpose
  • Yaf_Request_Abstract::isPut — The isPut purpose
  • Yaf_Request_Abstract::isRouted — The isRouted purpose
  • Yaf_Request_Abstract::isXmlHttpRequest — The isXmlHttpRequest purpose
  • Yaf_Request_Abstract::setActionName — The setActionName purpose
  • Yaf_Request_Abstract::setBaseUri — set base URI
  • Yaf_Request_Abstract::setControllerName — The setControllerName purpose
  • Yaf_Request_Abstract::setDispatched — The setDispatched purpose
  • Yaf_Request_Abstract::setModuleName — The setModuleName purpose
  • Yaf_Request_Abstract::setParam — The setParam purpose
  • Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose
  • Yaf_Request_Abstract::setRouted — The setRouted purpose


The getActionName purpose

  • « Yaf_Request_Abstract
  • Yaf_Request_Abstract::getBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getActionName purpose

Yaf_Request_Abstract::getActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getActionName — The getActionName purpose

Описание

public void Yaf_Request_Abstract::getActionName ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getBaseUri purpose

  • « Yaf_Request_Abstract::getActionName
  • Yaf_Request_Abstract::getControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getBaseUri purpose

Yaf_Request_Abstract::getBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getBaseUri — The getBaseUri purpose

Описание

public void Yaf_Request_Abstract::getBaseUri ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getControllerName purpose

  • « Yaf_Request_Abstract::getBaseUri
  • Yaf_Request_Abstract::getEnv »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getControllerName purpose

Yaf_Request_Abstract::getControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getControllerName — The getControllerName purpose

Описание

public void Yaf_Request_Abstract::getControllerName ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve ENV varialbe

  • « Yaf_Request_Abstract::getControllerName
  • Yaf_Request_Abstract::getException »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve ENV varialbe

Yaf_Request_Abstract::getEnv

(Yaf >=1.0.0)

Yaf_Request_Abstract::getEnv — Retrieve ENV varialbe

Описание

public void Yaf_Request_Abstract::getEnv ( string $name [, string $default ] )

Retrieve ENV variable

Список параметров

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Возвращаемые значения

Смотрите также

  • Yaf_Request_Abstract::getServer
  • Yaf_Request_Abstract::getParam


The getException purpose

  • « Yaf_Request_Abstract::getEnv
  • Yaf_Request_Abstract::getLanguage »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getException purpose

Yaf_Request_Abstract::getException

(Yaf >=1.0.0)

Yaf_Request_Abstract::getException — The getException purpose

Описание

public void Yaf_Request_Abstract::getException ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getLanguage purpose

  • « Yaf_Request_Abstract::getException
  • Yaf_Request_Abstract::getMethod »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getLanguage purpose

Yaf_Request_Abstract::getLanguage

(Yaf >=1.0.0)

Yaf_Request_Abstract::getLanguage — The getLanguage purpose

Описание

public void Yaf_Request_Abstract::getLanguage ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getMethod purpose

  • « Yaf_Request_Abstract::getLanguage
  • Yaf_Request_Abstract::getModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getMethod purpose

Yaf_Request_Abstract::getMethod

(Yaf >=1.0.0)

Yaf_Request_Abstract::getMethod — The getMethod purpose

Описание

public void Yaf_Request_Abstract::getMethod ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getModuleName purpose

  • « Yaf_Request_Abstract::getMethod
  • Yaf_Request_Abstract::getParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getModuleName purpose

Yaf_Request_Abstract::getModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::getModuleName — The getModuleName purpose

Описание

public void Yaf_Request_Abstract::getModuleName ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getParam purpose

  • « Yaf_Request_Abstract::getModuleName
  • Yaf_Request_Abstract::getParams »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getParam purpose

Yaf_Request_Abstract::getParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParam — The getParam purpose

Описание

public void Yaf_Request_Abstract::getParam ( string $name [, string $default ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

default

Возвращаемые значения


The getParams purpose

  • « Yaf_Request_Abstract::getParam
  • Yaf_Request_Abstract::getRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getParams purpose

Yaf_Request_Abstract::getParams

(Yaf >=1.0.0)

Yaf_Request_Abstract::getParams — The getParams purpose

Описание

public void Yaf_Request_Abstract::getParams ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getRequestUri purpose

  • « Yaf_Request_Abstract::getParams
  • Yaf_Request_Abstract::getServer »
  • PHP Manual
  • Yaf_Request_Abstract
  • The getRequestUri purpose

Yaf_Request_Abstract::getRequestUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::getRequestUri — The getRequestUri purpose

Описание

public void Yaf_Request_Abstract::getRequestUri ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve SERVER variable

  • « Yaf_Request_Abstract::getRequestUri
  • Yaf_Request_Abstract::isCli »
  • PHP Manual
  • Yaf_Request_Abstract
  • Retrieve SERVER variable

Yaf_Request_Abstract::getServer

(Yaf >=1.0.0)

Yaf_Request_Abstract::getServer — Retrieve SERVER variable

Описание

public void Yaf_Request_Abstract::getServer ( string $name [, string $default ] )

Retrieve SERVER variable

Список параметров

name

the variable name

default

if this parameter is provide, this will be returned if the variable can not be found

Возвращаемые значения

Смотрите также

  • Yaf_Request_Abstract::getParam
  • Yaf_Request_Abstract::getEnv


The isCli purpose

  • « Yaf_Request_Abstract::getServer
  • Yaf_Request_Abstract::isDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • The isCli purpose

Yaf_Request_Abstract::isCli

(Yaf >=1.0.0)

Yaf_Request_Abstract::isCli — The isCli purpose

Описание

public void Yaf_Request_Abstract::isCli ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The isDispatched purpose

  • « Yaf_Request_Abstract::isCli
  • Yaf_Request_Abstract::isGet »
  • PHP Manual
  • Yaf_Request_Abstract
  • The isDispatched purpose

Yaf_Request_Abstract::isDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::isDispatched — The isDispatched purpose

Описание

public void Yaf_Request_Abstract::isDispatched ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The isGet purpose

  • « Yaf_Request_Abstract::isDispatched
  • Yaf_Request_Abstract::isHead »
  • PHP Manual
  • Yaf_Request_Abstract
  • The isGet purpose

Yaf_Request_Abstract::isGet

(Yaf >=1.0.0)

Yaf_Request_Abstract::isGet — The isGet purpose

Описание

public void Yaf_Request_Abstract::isGet ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The isHead purpose

  • « Yaf_Request_Abstract::isGet
  • Yaf_Request_Abstract::isOptions »
  • PHP Manual
  • Yaf_Request_Abstract
  • The isHead purpose

Yaf_Request_Abstract::isHead

(Yaf >=1.0.0)

Yaf_Request_Abstract::isHead — The isHead purpose

Описание

public void Yaf_Request_Abstract::isHead ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The isOptions purpose

  • « Yaf_Request_Abstract::isHead
  • Yaf_Request_Abstract::isPost »
  • PHP Manual
  • Yaf_Request_Abstract
  • The isOptions purpose

Yaf_Request_Abstract::isOptions

(Yaf >=1.0.0)

Yaf_Request_Abstract::isOptions — The isOptions purpose

Описание

public void Yaf_Request_Abstract::isOptions ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The isPost purpose

  • « Yaf_Request_Abstract::isOptions
  • Yaf_Request_Abstract::isPut »
  • PHP Manual
  • Yaf_Request_Abstract
  • The isPost purpose

Yaf_Request_Abstract::isPost

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPost — The isPost purpose

Описание

public void Yaf_Request_Abstract::isPost ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The isPut purpose

  • « Yaf_Request_Abstract::isPost
  • Yaf_Request_Abstract::isRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • The isPut purpose

Yaf_Request_Abstract::isPut

(Yaf >=1.0.0)

Yaf_Request_Abstract::isPut — The isPut purpose

Описание

public void Yaf_Request_Abstract::isPut ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The isRouted purpose

  • « Yaf_Request_Abstract::isPut
  • Yaf_Request_Abstract::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Abstract
  • The isRouted purpose

Yaf_Request_Abstract::isRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::isRouted — The isRouted purpose

Описание

public void Yaf_Request_Abstract::isRouted ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The isXmlHttpRequest purpose

  • « Yaf_Request_Abstract::isRouted
  • Yaf_Request_Abstract::setActionName »
  • PHP Manual
  • Yaf_Request_Abstract
  • The isXmlHttpRequest purpose

Yaf_Request_Abstract::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Abstract::isXmlHttpRequest — The isXmlHttpRequest purpose

Описание

public void Yaf_Request_Abstract::isXmlHttpRequest ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The setActionName purpose

  • « Yaf_Request_Abstract::isXmlHttpRequest
  • Yaf_Request_Abstract::setBaseUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setActionName purpose

Yaf_Request_Abstract::setActionName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setActionName — The setActionName purpose

Описание

public void Yaf_Request_Abstract::setActionName ( string $action )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

action

Возвращаемые значения


set base URI

  • « Yaf_Request_Abstract::setActionName
  • Yaf_Request_Abstract::setControllerName »
  • PHP Manual
  • Yaf_Request_Abstract
  • set base URI

Yaf_Request_Abstract::setBaseUri

(Yaf >=1.0.0)

Yaf_Request_Abstract::setBaseUri — set base URI

Описание

public bool Yaf_Request_Abstract::setBaseUri ( string $uir )

Set base URI, base URI is used when doing routing, in routing phase request URI is used to route a request, while base URI is used to skip the leadding part(base URI) of request URI. That is, if comes a request with request URI a/b/c, then if you set base URI to "a/b", only "/c" will be used in routing phase.

Замечание:

generally, you don't need to set this, Yaf will determine it automatically.

Список параметров

uir

base URI

Возвращаемые значения

bool


The setControllerName purpose

  • « Yaf_Request_Abstract::setBaseUri
  • Yaf_Request_Abstract::setDispatched »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setControllerName purpose

Yaf_Request_Abstract::setControllerName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setControllerName — The setControllerName purpose

Описание

public void Yaf_Request_Abstract::setControllerName ( string $controller )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

controller

Возвращаемые значения


The setDispatched purpose

  • « Yaf_Request_Abstract::setControllerName
  • Yaf_Request_Abstract::setModuleName »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setDispatched purpose

Yaf_Request_Abstract::setDispatched

(Yaf >=1.0.0)

Yaf_Request_Abstract::setDispatched — The setDispatched purpose

Описание

public void Yaf_Request_Abstract::setDispatched ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The setModuleName purpose

  • « Yaf_Request_Abstract::setDispatched
  • Yaf_Request_Abstract::setParam »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setModuleName purpose

Yaf_Request_Abstract::setModuleName

(Yaf >=1.0.0)

Yaf_Request_Abstract::setModuleName — The setModuleName purpose

Описание

public void Yaf_Request_Abstract::setModuleName ( string $module )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

module

Возвращаемые значения


The setParam purpose

  • « Yaf_Request_Abstract::setModuleName
  • Yaf_Request_Abstract::setRequestUri »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setParam purpose

Yaf_Request_Abstract::setParam

(Yaf >=1.0.0)

Yaf_Request_Abstract::setParam — The setParam purpose

Описание

public void Yaf_Request_Abstract::setParam ( string $name [, string $value ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


The setRequestUri purpose

  • « Yaf_Request_Abstract::setParam
  • Yaf_Request_Abstract::setRouted »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setRequestUri purpose

Yaf_Request_Abstract::setRequestUri

(Yaf >=2.1.0)

Yaf_Request_Abstract::setRequestUri — The setRequestUri purpose

Описание

public void Yaf_Request_Abstract::setRequestUri ( string $uir )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

uir

Возвращаемые значения


The setRouted purpose

  • « Yaf_Request_Abstract::setRequestUri
  • Yaf_Request_Http »
  • PHP Manual
  • Yaf_Request_Abstract
  • The setRouted purpose

Yaf_Request_Abstract::setRouted

(Yaf >=1.0.0)

Yaf_Request_Abstract::setRouted — The setRouted purpose

Описание

public void Yaf_Request_Abstract::setRouted ([ string $flag ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

flag

Возвращаемые значения


The Yaf_Request_Http class

(Yaf >=1.0.0)

Введение

Any request from client is initialized as a Yaf_Request_Http. you can get the rquest infomations like, uri query and post parameters via methods of this class.

Замечание:

For security, $_GET/$_POST are readonly in Yaf, which means if you set a value to these global variables, you can not get it from Yaf_Request_Http::getQurey() or Yaf_Request_Http::getPost().

But there do is some usage need such feature, like unit testing. thus Yaf can be built with --enable-yaf-debug, which will allow Yaf read the value user set via script.

in such case, Yaf will throw a E_STRICT warning to remind you about that: Strict Standards: you are running yaf in debug mode

Обзор классов

Yaf_Request_Http extends Yaf_Request_Abstract {
/* Свойства */
/* Методы */
private void __clone ( void )
public __construct ([ string $request_uri [, string $base_uri ]] )
public mixed get ( string $name [, string $default ] )
public mixed getCookie ( string $name [, string $default ] )
public void getFiles ( void )
public mixed getPost ( string $name [, string $default ] )
public mixed getQuery ( string $name [, string $default ] )
public void getRequest ( void )
public bool isXmlHttpRequest ( void )
/* Наследуемые методы */
public void Yaf_Request_Abstract::getActionName ( void )
public void Yaf_Request_Abstract::getBaseUri ( void )
public void Yaf_Request_Abstract::getControllerName ( void )
public void Yaf_Request_Abstract::getEnv ( string $name [, string $default ] )
public void Yaf_Request_Abstract::getException ( void )
public void Yaf_Request_Abstract::getLanguage ( void )
public void Yaf_Request_Abstract::getMethod ( void )
public void Yaf_Request_Abstract::getModuleName ( void )
public void Yaf_Request_Abstract::getParam ( string $name [, string $default ] )
public void Yaf_Request_Abstract::getParams ( void )
public void Yaf_Request_Abstract::getRequestUri ( void )
public void Yaf_Request_Abstract::getServer ( string $name [, string $default ] )
public void Yaf_Request_Abstract::isCli ( void )
public void Yaf_Request_Abstract::isDispatched ( void )
public void Yaf_Request_Abstract::isGet ( void )
public void Yaf_Request_Abstract::isHead ( void )
public void Yaf_Request_Abstract::isOptions ( void )
public void Yaf_Request_Abstract::isPost ( void )
public void Yaf_Request_Abstract::isPut ( void )
public void Yaf_Request_Abstract::isRouted ( void )
public void Yaf_Request_Abstract::isXmlHttpRequest ( void )
public void Yaf_Request_Abstract::setActionName ( string $action )
public bool Yaf_Request_Abstract::setBaseUri ( string $uir )
public void Yaf_Request_Abstract::setControllerName ( string $controller )
public void Yaf_Request_Abstract::setDispatched ( void )
public void Yaf_Request_Abstract::setModuleName ( string $module )
public void Yaf_Request_Abstract::setParam ( string $name [, string $value ] )
public void Yaf_Request_Abstract::setRequestUri ( string $uir )
public void Yaf_Request_Abstract::setRouted ([ string $flag ] )
}

Свойства

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Содержание

  • Yaf_Request_Http::__clone — The __clone purpose
  • Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http
  • Yaf_Request_Http::get — Retrieve variable from client
  • Yaf_Request_Http::getCookie — Retrieve Cookie variable
  • Yaf_Request_Http::getFiles — The getFiles purpose
  • Yaf_Request_Http::getPost — Retrieve POST variable
  • Yaf_Request_Http::getQuery — Fetch a query parameter
  • Yaf_Request_Http::getRequest — The getRequest purpose
  • Yaf_Request_Http::isXmlHttpRequest — Whether a Ajax Request


The __clone purpose

  • « Yaf_Request_Http
  • Yaf_Request_Http::__construct »
  • PHP Manual
  • Yaf_Request_Http
  • The __clone purpose

Yaf_Request_Http::__clone

(Yaf >=1.0.0)

Yaf_Request_Http::__clone — The __clone purpose

Описание

private void Yaf_Request_Http::__clone ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Constructor of Yaf_Request_Http

  • « Yaf_Request_Http::__clone
  • Yaf_Request_Http::get »
  • PHP Manual
  • Yaf_Request_Http
  • Constructor of Yaf_Request_Http

Yaf_Request_Http::__construct

(Yaf >=1.0.0)

Yaf_Request_Http::__construct — Constructor of Yaf_Request_Http

Описание

public Yaf_Request_Http::__construct ([ string $request_uri [, string $base_uri ]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve variable from client

  • « Yaf_Request_Http::__construct
  • Yaf_Request_Http::getCookie »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve variable from client

Yaf_Request_Http::get

(Yaf >=1.0.0)

Yaf_Request_Http::get — Retrieve variable from client

Описание

public mixed Yaf_Request_Http::get ( string $name [, string $default ] )

Retrieve variable from client, this method will search the name in request pramas, if the name is not found, then will search in POST, GET, Cookie, Server

Список параметров

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::getQuery
  • Yaf_Request_Http::getPost
  • Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getServer
  • Yaf_Request_Http::getParam


Retrieve Cookie variable

  • « Yaf_Request_Http::get
  • Yaf_Request_Http::getFiles »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve Cookie variable

Yaf_Request_Http::getCookie

(Yaf >=1.0.0)

Yaf_Request_Http::getCookie — Retrieve Cookie variable

Описание

public mixed Yaf_Request_Http::getCookie ( string $name [, string $default ] )

Retrieve Cookie variable

Список параметров

name

the cookie name

default

if this parameter is provide, this will be returned if the cookie can not be found

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::get
  • Yaf_Request_Http::getQuery
  • Yaf_Request_Http::getPost
  • Yaf_Request_Http::getServer
  • Yaf_Request_Http::getParam


The getFiles purpose

  • « Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getPost »
  • PHP Manual
  • Yaf_Request_Http
  • The getFiles purpose

Yaf_Request_Http::getFiles

(Yaf >=1.0.0)

Yaf_Request_Http::getFiles — The getFiles purpose

Описание

public void Yaf_Request_Http::getFiles ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve POST variable

  • « Yaf_Request_Http::getFiles
  • Yaf_Request_Http::getQuery »
  • PHP Manual
  • Yaf_Request_Http
  • Retrieve POST variable

Yaf_Request_Http::getPost

(Yaf >=1.0.0)

Yaf_Request_Http::getPost — Retrieve POST variable

Описание

public mixed Yaf_Request_Http::getPost ( string $name [, string $default ] )

Retrieve POST variable

Список параметров

name

the variable name

default

if this parameter is provide, this will be returned if the varialbe can not be found

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::get
  • Yaf_Request_Http::getQuery
  • Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getServer
  • Yaf_Request_Http::getParam


Fetch a query parameter

  • « Yaf_Request_Http::getPost
  • Yaf_Request_Http::getRequest »
  • PHP Manual
  • Yaf_Request_Http
  • Fetch a query parameter

Yaf_Request_Http::getQuery

(Yaf >=1.0.0)

Yaf_Request_Http::getQuery — Fetch a query parameter

Описание

public mixed Yaf_Request_Http::getQuery ( string $name [, string $default ] )

Retrieve GET variable

Список параметров

name

the variable name

default

if this parameter is provide, this will be returned if the variable can not be found

Возвращаемые значения

Смотрите также

  • Yaf_Request_Http::get
  • Yaf_Request_Http::getPost
  • Yaf_Request_Http::getCookie
  • Yaf_Request_Http::getServer
  • Yaf_Request_Http::getParam


The getRequest purpose

  • « Yaf_Request_Http::getQuery
  • Yaf_Request_Http::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Http
  • The getRequest purpose

Yaf_Request_Http::getRequest

(Yaf >=1.0.0)

Yaf_Request_Http::getRequest — The getRequest purpose

Описание

public void Yaf_Request_Http::getRequest ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Whether a Ajax Request

  • « Yaf_Request_Http::getRequest
  • Yaf_Request_Simple »
  • PHP Manual
  • Yaf_Request_Http
  • Whether a Ajax Request

Yaf_Request_Http::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Http::isXmlHttpRequest — Whether a Ajax Request

Описание

public bool Yaf_Request_Http::isXmlHttpRequest ( void )

Check the request whether it is a Ajax Request.

Замечание:

This method depends on the request header: HTTP_X_REQUESTED_WITH, some Javascript library doesn't set this header while doing Ajax request

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The Yaf_Request_Simple class

(Yaf >=1.0.0)

Введение

Yaf_Request_Simple is particularlly used for test puporse. ie. simulate some espacial request under CLI mode.

Обзор классов

Yaf_Request_Simple extends Yaf_Request_Abstract {
/* Constants */
const string SCHEME_HTTP = http ;
const string SCHEME_HTTPS = https ;
/* Свойства */
/* Методы */
private void __clone ( void )
public __construct ([ string $method [, string $module [, string $controller [, string $action [, array $params ]]]]] )
public void get ( void )
public void getCookie ( void )
public void getFiles ( void )
public void getPost ( void )
public void getQuery ( void )
public void getRequest ( void )
public void isXmlHttpRequest ( void )
/* Наследуемые методы */
public void Yaf_Request_Abstract::getActionName ( void )
public void Yaf_Request_Abstract::getBaseUri ( void )
public void Yaf_Request_Abstract::getControllerName ( void )
public void Yaf_Request_Abstract::getEnv ( string $name [, string $default ] )
public void Yaf_Request_Abstract::getException ( void )
public void Yaf_Request_Abstract::getLanguage ( void )
public void Yaf_Request_Abstract::getMethod ( void )
public void Yaf_Request_Abstract::getModuleName ( void )
public void Yaf_Request_Abstract::getParam ( string $name [, string $default ] )
public void Yaf_Request_Abstract::getParams ( void )
public void Yaf_Request_Abstract::getRequestUri ( void )
public void Yaf_Request_Abstract::getServer ( string $name [, string $default ] )
public void Yaf_Request_Abstract::isCli ( void )
public void Yaf_Request_Abstract::isDispatched ( void )
public void Yaf_Request_Abstract::isGet ( void )
public void Yaf_Request_Abstract::isHead ( void )
public void Yaf_Request_Abstract::isOptions ( void )
public void Yaf_Request_Abstract::isPost ( void )
public void Yaf_Request_Abstract::isPut ( void )
public void Yaf_Request_Abstract::isRouted ( void )
public void Yaf_Request_Abstract::isXmlHttpRequest ( void )
public void Yaf_Request_Abstract::setActionName ( string $action )
public bool Yaf_Request_Abstract::setBaseUri ( string $uir )
public void Yaf_Request_Abstract::setControllerName ( string $controller )
public void Yaf_Request_Abstract::setDispatched ( void )
public void Yaf_Request_Abstract::setModuleName ( string $module )
public void Yaf_Request_Abstract::setParam ( string $name [, string $value ] )
public void Yaf_Request_Abstract::setRequestUri ( string $uir )
public void Yaf_Request_Abstract::setRouted ([ string $flag ] )
}

Свойства

module

controller

action

method

params

language

_exception

_base_uri

uri

dispatched

routed

Предопределенные константы

Yaf_Request_Simple::SCHEME_HTTP

Yaf_Request_Simple::SCHEME_HTTPS

Содержание

  • Yaf_Request_Simple::__clone — The __clone purpose
  • Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple
  • Yaf_Request_Simple::get — The get purpose
  • Yaf_Request_Simple::getCookie — The getCookie purpose
  • Yaf_Request_Simple::getFiles — The getFiles purpose
  • Yaf_Request_Simple::getPost — The getPost purpose
  • Yaf_Request_Simple::getQuery — The getQuery purpose
  • Yaf_Request_Simple::getRequest — The getRequest purpose
  • Yaf_Request_Simple::isXmlHttpRequest — The isXmlHttpRequest purpose


The __clone purpose

  • « Yaf_Request_Simple
  • Yaf_Request_Simple::__construct »
  • PHP Manual
  • Yaf_Request_Simple
  • The __clone purpose

Yaf_Request_Simple::__clone

(Yaf >=1.0.0)

Yaf_Request_Simple::__clone — The __clone purpose

Описание

private void Yaf_Request_Simple::__clone ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Constructor of Yaf_Request_Simple

  • « Yaf_Request_Simple::__clone
  • Yaf_Request_Simple::get »
  • PHP Manual
  • Yaf_Request_Simple
  • Constructor of Yaf_Request_Simple

Yaf_Request_Simple::__construct

(Yaf >=1.0.0)

Yaf_Request_Simple::__construct — Constructor of Yaf_Request_Simple

Описание

public Yaf_Request_Simple::__construct ([ string $method [, string $module [, string $controller [, string $action [, array $params ]]]]] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The get purpose

  • « Yaf_Request_Simple::__construct
  • Yaf_Request_Simple::getCookie »
  • PHP Manual
  • Yaf_Request_Simple
  • The get purpose

Yaf_Request_Simple::get

(Yaf >=1.0.0)

Yaf_Request_Simple::get — The get purpose

Описание

public void Yaf_Request_Simple::get ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getCookie purpose

  • « Yaf_Request_Simple::get
  • Yaf_Request_Simple::getFiles »
  • PHP Manual
  • Yaf_Request_Simple
  • The getCookie purpose

Yaf_Request_Simple::getCookie

(Yaf >=1.0.0)

Yaf_Request_Simple::getCookie — The getCookie purpose

Описание

public void Yaf_Request_Simple::getCookie ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getFiles purpose

  • « Yaf_Request_Simple::getCookie
  • Yaf_Request_Simple::getPost »
  • PHP Manual
  • Yaf_Request_Simple
  • The getFiles purpose

Yaf_Request_Simple::getFiles

(Yaf >=1.0.0)

Yaf_Request_Simple::getFiles — The getFiles purpose

Описание

public void Yaf_Request_Simple::getFiles ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getPost purpose

  • « Yaf_Request_Simple::getFiles
  • Yaf_Request_Simple::getQuery »
  • PHP Manual
  • Yaf_Request_Simple
  • The getPost purpose

Yaf_Request_Simple::getPost

(Yaf >=1.0.0)

Yaf_Request_Simple::getPost — The getPost purpose

Описание

public void Yaf_Request_Simple::getPost ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getQuery purpose

  • « Yaf_Request_Simple::getPost
  • Yaf_Request_Simple::getRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • The getQuery purpose

Yaf_Request_Simple::getQuery

(Yaf >=1.0.0)

Yaf_Request_Simple::getQuery — The getQuery purpose

Описание

public void Yaf_Request_Simple::getQuery ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The getRequest purpose

  • « Yaf_Request_Simple::getQuery
  • Yaf_Request_Simple::isXmlHttpRequest »
  • PHP Manual
  • Yaf_Request_Simple
  • The getRequest purpose

Yaf_Request_Simple::getRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::getRequest — The getRequest purpose

Описание

public void Yaf_Request_Simple::getRequest ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The isXmlHttpRequest purpose

  • « Yaf_Request_Simple::getRequest
  • Yaf_Response_Abstract »
  • PHP Manual
  • Yaf_Request_Simple
  • The isXmlHttpRequest purpose

Yaf_Request_Simple::isXmlHttpRequest

(Yaf >=1.0.0)

Yaf_Request_Simple::isXmlHttpRequest — The isXmlHttpRequest purpose

Описание

public void Yaf_Request_Simple::isXmlHttpRequest ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The Yaf_Response_Abstract class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Response_Abstract {
/* Constants */
const string DEFAULT_BODY = "content" ;
/* Свойства */
protected $_header ;
protected $_body ;
protected $_sendheader ;
/* Методы */
public bool appendBody ( string $content [, string $key ] )
public bool clearBody ([ string $key ] )
public void clearHeaders ( void )
private void __clone ( void )
public __construct ( void )
public void __destruct ( void )
public mixed getBody ([ string $key ] )
public void getHeader ( void )
public bool prependBody ( string $content [, string $key ] )
public void response ( void )
protected void setAllHeaders ( void )
public bool setBody ( string $content [, string $key ] )
public void setHeader ( void )
public void setRedirect ( void )
private void __toString ( void )
}

Свойства

_header

_body

_sendheader

Содержание

  • Yaf_Response_Abstract::appendBody — append to body
  • Yaf_Response_Abstract::clearBody — The clearBody purpose
  • Yaf_Response_Abstract::clearHeaders — The clearHeaders purpose
  • Yaf_Response_Abstract::__clone — The __clone purpose
  • Yaf_Response_Abstract::__construct — The __construct purpose
  • Yaf_Response_Abstract::__destruct — The __destruct purpose
  • Yaf_Response_Abstract::getBody — Retrieve a exists content
  • Yaf_Response_Abstract::getHeader — The getHeader purpose
  • Yaf_Response_Abstract::prependBody — The prependBody purpose
  • Yaf_Response_Abstract::response — send response
  • Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose
  • Yaf_Response_Abstract::setBody — Set content to response
  • Yaf_Response_Abstract::setHeader — The setHeader purpose
  • Yaf_Response_Abstract::setRedirect — The setRedirect purpose
  • Yaf_Response_Abstract::__toString — The __toString purpose


append to body

  • « Yaf_Response_Abstract
  • Yaf_Response_Abstract::clearBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • append to body

Yaf_Response_Abstract::appendBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::appendBody — append to body

Описание

public bool Yaf_Response_Abstract::appendBody ( string $content [, string $key ] )

append a content to a exists content block

Список параметров

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Замечание:

this parameter is introduced as of 2.2.0

Возвращаемые значения

bool

Примеры

Пример #1 Yaf_Response_Abstract::appendBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->prependBody(" World");

echo $response;
?>

Результатом выполнения данного примера будет что-то подобное:

Hello World

Смотрите также

  • Yaf_Config_Ini

Смотрите также

  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - The clearBody purpose


The clearBody purpose

  • « Yaf_Response_Abstract::appendBody
  • Yaf_Response_Abstract::clearHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • The clearBody purpose

Yaf_Response_Abstract::clearBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearBody — The clearBody purpose

Описание

public bool Yaf_Response_Abstract::clearBody ([ string $key ] )

Clear existsed content

Список параметров

key

the content key, if you don't specific, then all contents will be cleared.

Замечание:

this parameter is introduced as of 2.2.0

Возвращаемые значения

Смотрите также

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - append to body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::getBody() - Retrieve a exists content


The clearHeaders purpose

  • « Yaf_Response_Abstract::clearBody
  • Yaf_Response_Abstract::__clone »
  • PHP Manual
  • Yaf_Response_Abstract
  • The clearHeaders purpose

Yaf_Response_Abstract::clearHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::clearHeaders — The clearHeaders purpose

Описание

public void Yaf_Response_Abstract::clearHeaders ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __clone purpose

  • « Yaf_Response_Abstract::clearHeaders
  • Yaf_Response_Abstract::__construct »
  • PHP Manual
  • Yaf_Response_Abstract
  • The __clone purpose

Yaf_Response_Abstract::__clone

(Yaf >=1.0.0)

Yaf_Response_Abstract::__clone — The __clone purpose

Описание

private void Yaf_Response_Abstract::__clone ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __construct purpose

  • « Yaf_Response_Abstract::__clone
  • Yaf_Response_Abstract::__destruct »
  • PHP Manual
  • Yaf_Response_Abstract
  • The __construct purpose

Yaf_Response_Abstract::__construct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__construct — The __construct purpose

Описание

public Yaf_Response_Abstract::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __destruct purpose

  • « Yaf_Response_Abstract::__construct
  • Yaf_Response_Abstract::getBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The __destruct purpose

Yaf_Response_Abstract::__destruct

(Yaf >=1.0.0)

Yaf_Response_Abstract::__destruct — The __destruct purpose

Описание

public void Yaf_Response_Abstract::__destruct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieve a exists content

  • « Yaf_Response_Abstract::__destruct
  • Yaf_Response_Abstract::getHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Retrieve a exists content

Yaf_Response_Abstract::getBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::getBody — Retrieve a exists content

Описание

public mixed Yaf_Response_Abstract::getBody ([ string $key ] )

Retrieve a exists content

Список параметров

key

the content key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used. if you pass in a NULL, then all contents will be returned as a array

Замечание:

this parameter is introduced as of 2.2.0

Возвращаемые значения

Примеры

Пример #1 Yaf_Response_Abstract::getBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

var_dump($response->getBody()); //default
var_dump($response->getBody(Yaf_Response_Abstract::DEFAULT_BODY)); //same as above
var_dump($response->getBody("footer"));
var_dump($response->getBody(NULL)); //get all
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "Hello"
string(5) "Hello"
string(6) " World"
array(2) {
  ["content"]=>
  string(5) "Hello"
  ["footer"]=>
  string(6) " World"
}

Смотрите также

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - append to body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - The clearBody purpose


The getHeader purpose

  • « Yaf_Response_Abstract::getBody
  • Yaf_Response_Abstract::prependBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The getHeader purpose

Yaf_Response_Abstract::getHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::getHeader — The getHeader purpose

Описание

public void Yaf_Response_Abstract::getHeader ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The prependBody purpose

  • « Yaf_Response_Abstract::getHeader
  • Yaf_Response_Abstract::response »
  • PHP Manual
  • Yaf_Response_Abstract
  • The prependBody purpose

Yaf_Response_Abstract::prependBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::prependBody — The prependBody purpose

Описание

public bool Yaf_Response_Abstract::prependBody ( string $content [, string $key ] )

prepend a content to a exists content block

Список параметров

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Замечание:

this parameter is introduced as of 2.2.0

Возвращаемые значения

bool

Примеры

Пример #1 Yaf_Response_Abstract::prependBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("World")->prependBody("Hello ");

echo $response;
?>

Результатом выполнения данного примера будет что-то подобное:

Hello World

Смотрите также

  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::appendBody() - append to body
  • Yaf_Response_Abstract::clearBody() - The clearBody purpose


send response

  • « Yaf_Response_Abstract::prependBody
  • Yaf_Response_Abstract::setAllHeaders »
  • PHP Manual
  • Yaf_Response_Abstract
  • send response

Yaf_Response_Abstract::response

(Yaf >=1.0.0)

Yaf_Response_Abstract::response — send response

Описание

public void Yaf_Response_Abstract::response ( void )

send response

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yaf_Response_Abstract::response()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

$response->response();
?>

Результатом выполнения данного примера будет что-то подобное:

Hello World

Смотрите также

  • Yaf_Response_Abstract::setBody() - Set content to response
  • Yaf_Response_Abstract::clearBody() - The clearBody purpose


The setAllHeaders purpose

  • « Yaf_Response_Abstract::response
  • Yaf_Response_Abstract::setBody »
  • PHP Manual
  • Yaf_Response_Abstract
  • The setAllHeaders purpose

Yaf_Response_Abstract::setAllHeaders

(Yaf >=1.0.0)

Yaf_Response_Abstract::setAllHeaders — The setAllHeaders purpose

Описание

protected void Yaf_Response_Abstract::setAllHeaders ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Set content to response

  • « Yaf_Response_Abstract::setAllHeaders
  • Yaf_Response_Abstract::setHeader »
  • PHP Manual
  • Yaf_Response_Abstract
  • Set content to response

Yaf_Response_Abstract::setBody

(Yaf >=1.0.0)

Yaf_Response_Abstract::setBody — Set content to response

Описание

public bool Yaf_Response_Abstract::setBody ( string $content [, string $key ] )

Set content to response

Список параметров

body

content string

key

the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used

Замечание:

this parameter is introduced as of 2.2.0

Возвращаемые значения

Примеры

Пример #1 Yaf_Response_Abstract::setBody()example

<?php
$response = new Yaf_Response_Http();

$response->setBody("Hello")->setBody(" World", "footer");

print_r($response);
echo $response;
?>

Результатом выполнения данного примера будет что-то подобное:

Yaf_Response_Http Object
(
    [_header:protected] => Array
        (
        )

    [_body:protected] => Array
        (
            [content] => Hello
            [footer] =>  World
        )

    [_sendheader:protected] => 1
    [_response_code:protected] => 200
)
Hello World

Смотрите также

  • Yaf_Response_Abstract::getBody() - Retrieve a exists content
  • Yaf_Response_Abstract::appendBody() - append to body
  • Yaf_Response_Abstract::prependBody() - The prependBody purpose
  • Yaf_Response_Abstract::clearBody() - The clearBody purpose


The setHeader purpose

  • « Yaf_Response_Abstract::setBody
  • Yaf_Response_Abstract::setRedirect »
  • PHP Manual
  • Yaf_Response_Abstract
  • The setHeader purpose

Yaf_Response_Abstract::setHeader

(Yaf >=1.0.0)

Yaf_Response_Abstract::setHeader — The setHeader purpose

Описание

public void Yaf_Response_Abstract::setHeader ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The setRedirect purpose

  • « Yaf_Response_Abstract::setHeader
  • Yaf_Response_Abstract::__toString »
  • PHP Manual
  • Yaf_Response_Abstract
  • The setRedirect purpose

Yaf_Response_Abstract::setRedirect

(Yaf >=1.0.0)

Yaf_Response_Abstract::setRedirect — The setRedirect purpose

Описание

public void Yaf_Response_Abstract::setRedirect ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __toString purpose

  • « Yaf_Response_Abstract::setRedirect
  • Yaf_Route_Interface »
  • PHP Manual
  • Yaf_Response_Abstract
  • The __toString purpose

Yaf_Response_Abstract::__toString

(Yaf >=1.0.0)

Yaf_Response_Abstract::__toString — The __toString purpose

Описание

private void Yaf_Response_Abstract::__toString ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The Yaf_Route_Interface class

(Yaf >=1.0.0)

Введение

Yaf_Route_Interface used for developer defined their custom route.

Обзор классов

Yaf_Route_Interface {
/* Методы */
abstract public string assemble ( array $info [, array $query ] )
abstract public bool route ( Yaf_Request_Abstract $request )
}

Содержание

  • Yaf_Route_Interface::assemble — assemble a request
  • Yaf_Route_Interface::route — route a request


assemble a request

  • « Yaf_Route_Interface
  • Yaf_Route_Interface::route »
  • PHP Manual
  • Yaf_Route_Interface
  • assemble a request

Yaf_Route_Interface::assemble

(Yaf >=2.3.0)

Yaf_Route_Interface::assemble — assemble a request

Описание

abstract public string Yaf_Route_Interface::assemble ( array $info [, array $query ] )

this method returns a url according to the argument info, and append query strings to the url according to the argument query.

a route should implement this method according to its own route rules, and do a reverse progress.

Список параметров

info

query

Возвращаемые значения


route a request

  • « Yaf_Route_Interface::assemble
  • Yaf_Route_Map »
  • PHP Manual
  • Yaf_Route_Interface
  • route a request

Yaf_Route_Interface::route

(Yaf >=1.0.0)

Yaf_Route_Interface::route — route a request

Описание

abstract public bool Yaf_Route_Interface::route ( Yaf_Request_Abstract $request )

Yaf_Route_Interface::route() is the only method that a custom route should implement.

Замечание:

since of 2.3.0, there is another method should also be implemented, see Yaf_Route_Interface::assemble().

if this method return TRUE, then the route process will be end. otherwise, Yaf_Router will call next route in the route stack to route request.

This method would set the route result to the parameter request, by
calling Yaf_Request_Abstract::setControllerName(),
Yaf_Request_Abstract::setActionName() and
Yaf_Request_Abstract::setModuleName().

This method should also call Yaf_Request_Abstract::setRouted() to make the request routed at last.

Список параметров

request

A Yaf_Request_Abstract instance.

Возвращаемые значения


The Yaf_Route_Map class

(Yaf >=1.0.0)

Введение

Yaf_Route_Map is a built-in route, it simply convert a URI endpoint (that part of the URI which comes after the base URI: see Yaf_Request_Abstract::setBaseUri()) to a controller name or action name(depends on the paramter passed to Yaf_Route_Map::__construct()) in following rule: A => controller A. A/B/C => controller A_B_C. A/B/C/D/E => controller A_B_C_D_E.

If the second parameter of Yaf_Route_Map::__construct() is specificed, then only the part before delimeter of URI will used to routing, the part after it is used to routing request parameters (see the example section of Yaf_Route_Map::__construct()).

Обзор классов

Yaf_Route_Map implements Yaf_Route_Interface {
/* Свойства */
protected $_ctl_router ;
protected $_delimeter ;
/* Методы */
public string assemble ( array $info [, array $query ] )
public __construct ([ string $controller_prefer = false [, string $delimiter = "" ]] )
public bool route ( Yaf_Request_Abstract $request )
}

Свойства

_ctl_router

_delimeter

Содержание

  • Yaf_Route_Map::assemble — Assemble a url
  • Yaf_Route_Map::__construct — The __construct purpose
  • Yaf_Route_Map::route — The route purpose


Assemble a url

  • « Yaf_Route_Map
  • Yaf_Route_Map::__construct »
  • PHP Manual
  • Yaf_Route_Map
  • Assemble a url

Yaf_Route_Map::assemble

(Yaf >=2.3.0)

Yaf_Route_Map::assemble — Assemble a url

Описание

public string Yaf_Route_Map::assemble ( array $info [, array $query ] )

Assemble a url.

Список параметров

info

query

Примеры

Пример #1 Yaf_Route_Map::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Map();

$router->addRoute("map", $route);

var_dump($router->getRoute('map')->assemble(
                        array(
                                ':c' => 'foo_bar'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                        )
                   )
);

$route = new Yaf_Route_Map(true, '_');
$router->addRoute("map", $route);

var_dump($router->getRoute('map')->assemble(
                        array(
                                ':a' => 'foo_bar'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                        )
                   )
);

Результатом выполнения данного примера будет что-то подобное:

string(%d) "/foo/bar?tkey1=tval1&tkey2=tval2"
string(%d) "/foo/bar/_/tkey1/tval1/tkey2/tval2"

Возвращаемые значения


The __construct purpose

  • « Yaf_Route_Map::assemble
  • Yaf_Route_Map::route »
  • PHP Manual
  • Yaf_Route_Map
  • The __construct purpose

Yaf_Route_Map::__construct

(Yaf >=1.0.0)

Yaf_Route_Map::__construct — The __construct purpose

Описание

public Yaf_Route_Map::__construct ([ string $controller_prefer = false [, string $delimiter = "" ]] )

Список параметров

controller_prefer

Whether the result should considering as controller or action

delimiter

Возвращаемые значения

Примеры

Пример #1 Yaf_Route_Map()example

<?php
   /**
    * Add a map route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Map());
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/product/foo/bar
 * route will result in following values:
 */
array(
  "controller" => "product_foo_bar",
)

Пример #2 Yaf_Route_Map()example

<?php
   /**
    * Add a map route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Map(true, "_"));
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/user/list/_/foo/22
 * route will result in following values:
 */
array(
    "action" => "user_list",
)

/**
 * and request parameters:
 */
array(
  "foo"   => 22,
)

Пример #3 Yaf_Route_Map()example

<?php
   /**
    * Add a map route to Yaf_Router route stack by calling addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "map",         //Yaf_Route_Map route
           "controllerPrefer" => FALSE,
           "delimiter"        => "#!",
           ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Смотрите также

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite


The route purpose

  • « Yaf_Route_Map::__construct
  • Yaf_Route_Regex »
  • PHP Manual
  • Yaf_Route_Map
  • The route purpose

Yaf_Route_Map::route

(Yaf >=1.0.0)

Yaf_Route_Map::route — The route purpose

Описание

public bool Yaf_Route_Map::route ( Yaf_Request_Abstract $request )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения


The Yaf_Route_Regex class

(Yaf >=1.0.0)

Введение

Yaf_Route_Regex is the most flexible route among the Yaf built-in routes.

Обзор классов

Yaf_Route_Regex extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Свойства */
protected $_route ;
protected $_default ;
protected $_maps ;
protected $_verify ;
/* Методы */
public string assemble ( array $info [, array $query ] )
public __construct ( string $match , array $route [, array $map [, array $verify [, string $reverse ]]] )
public bool route ( Yaf_Request_Abstract $request )
/* Наследуемые методы */
abstract public string Yaf_Route_Interface::assemble ( array $info [, array $query ] )
abstract public bool Yaf_Route_Interface::route ( Yaf_Request_Abstract $request )
}

Свойства

_route

_default

_maps

_verify

Содержание

  • Yaf_Route_Regex::assemble — Assemble a url
  • Yaf_Route_Regex::__construct — Yaf_Route_Regex constructor
  • Yaf_Route_Regex::route — The route purpose


Assemble a url

  • « Yaf_Route_Regex
  • Yaf_Route_Regex::__construct »
  • PHP Manual
  • Yaf_Route_Regex
  • Assemble a url

Yaf_Route_Regex::assemble

(Yaf >=2.3.0)

Yaf_Route_Regex::assemble — Assemble a url

Описание

public string Yaf_Route_Regex::assemble ( array $info [, array $query ] )

Assemble a url.

Список параметров

info

query

Примеры

Пример #1 Yaf_Route_Regex::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Regex(
            "#^/product/([^/]+)/([^/])+#",
            array(
                'controller' => "product",  //route to product controller,
                ),
            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 constructor

  • « Yaf_Route_Regex::assemble
  • Yaf_Route_Regex::route »
  • PHP Manual
  • Yaf_Route_Regex
  • Yaf_Route_Regex constructor

Yaf_Route_Regex::__construct

(Yaf >=1.0.0)

Yaf_Route_Regex::__construct — Yaf_Route_Regex constructor

Описание

public Yaf_Route_Regex::__construct ( string $match , array $route [, array $map [, array $verify [, string $reverse ]]] )

Список параметров

match

A complete Regex pattern, will be used to match a request uri, if doesn't matched, Yaf_Route_Regex will return FALSE.

route

When the match pattern matches the request uri, Yaf_Route_Regex will use this to decide which m/c/a to routed.

either of m/c/a in this array is optianl, if you don't assgian a specific value, it will be routed to default.

map

A array to assign name to the captrues in the match result.

verify

reverse

a string, used to assemble url, see Yaf_Route_Regex::assemble().

Замечание:

this parameter is introduced in 2.3.0

Возвращаемые значения

Примеры

Пример #1 Yaf_Route_Regex()example

<?php
   /**
    * Add a regex route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#", //match request uri leading "/product"
           array(
               'controller' => "product",  //route to product controller,
           ),
           array(
              1 => "name",   // now you can call $request->getParam("name")
              2 => "id",     // to get the first captrue in the match pattern.
           )
        )
    );
?>

Пример #2 Yaf_Route_Regex(as of 2.3.0)()example

<?php
   /**
    * Use match result as MVC name
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#i", //match request uri leading "/product"
           array(
              'controller' => ":name", // route to :name, which is $1 in the match result as controller name
           ),
           array(
              1 => "name",   // now you can call $request->getParam("name")
              2 => "id",     // to get the first captrue in the match pattern.
           )
        )
    );
?>

Пример #3 Yaf_Route_Regex and named capture ground(as of 2.3.0)()example

<?php
   /**
    * Use match result as MVC name
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/(?<name>[^/]+)/([^/])+#i", //match request uri leading "/product"
           array(
           'controller' => ":name", // route to :name,
                                    // which is named capture group 'name' in the match result as controller name
           ),
           array(
              2 => "id",     // to get the first captrue in the match pattern.
           )
        )
    );
?>

Пример #4 Yaf_Route_Regex()example

<?php
   /**
    * Add a regex route to Yaf_Router route stack by calling addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "regex",          //Yaf_Route_Regex route
           "match" => "#(.*)#",         //match arbitrary request uri
           "route" => array(
               'controller' => "product",  //route to product controller,
               'action'     => "dummy",    //route to dummy action
           ),
           "map" => array(
              1 => "uri",   // now you can call $request->getParam("uri")
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Смотрите также

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


The route purpose

  • « Yaf_Route_Regex::__construct
  • Yaf_Route_Rewrite »
  • PHP Manual
  • Yaf_Route_Regex
  • The route purpose

Yaf_Route_Regex::route

(Yaf >=1.0.0)

Yaf_Route_Regex::route — The route purpose

Описание

public bool Yaf_Route_Regex::route ( Yaf_Request_Abstract $request )

Route a incoming request.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения

If the pattern given by the first parameter of Yaf_Route_Regex::_construct() matche the request uri, return TRUE, otherwise return FALSE.


The Yaf_Route_Rewrite class

(Yaf >=1.0.0)

Введение

For usage, please see the example section of Yaf_Route_Rewrite::__construct()

Обзор классов

Yaf_Route_Rewrite extends Yaf_Route_Interface implements Yaf_Route_Interface {
/* Свойства */
protected $_route ;
protected $_default ;
protected $_verify ;
/* Методы */
public string assemble ( array $info [, array $query ] )
public __construct ( string $match , array $route [, array $verify ] )
public bool route ( Yaf_Request_Abstract $request )
/* Наследуемые методы */
abstract public string Yaf_Route_Interface::assemble ( array $info [, array $query ] )
abstract public bool Yaf_Route_Interface::route ( Yaf_Request_Abstract $request )
}

Свойства

_route

_default

_verify

Содержание

  • Yaf_Route_Rewrite::assemble — Assemble a url
  • Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor
  • Yaf_Route_Rewrite::route — The route purpose


Assemble a url

  • « Yaf_Route_Rewrite
  • Yaf_Route_Rewrite::__construct »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Assemble a url

Yaf_Route_Rewrite::assemble

(Yaf >=2.3.0)

Yaf_Route_Rewrite::assemble — Assemble a url

Описание

public string Yaf_Route_Rewrite::assemble ( array $info [, array $query ] )

Assemble a url.

Список параметров

info

query

Примеры

Пример #1 Yaf_Route_Rewrite::assemble()example

router = new Yaf_Router();

$route  = new Yaf_Route_Rewrite(
                "/product/:name/:id/*",
                array(
                        'controller' => "product",
                ),
                array()
);

$router->addRoute("rewrite", $route);

var_dump($router->getRoute('rewrite')->assemble(
                        array(
                                ':name' => 'foo',
                                ':id' => 'bar',
                                ':tmpkey1' => 'tmpval1'
                        ),
                        array(
                                'tkey1' => 'tval1',
                                'tkey2' => 'tval2'
                             )
                        )
);

Результатом выполнения данного примера будет что-то подобное:

string(57) "/product/foo/bar/tmpkey1/tmpval1/?tkey1=tval1&tkey2=tval2"

Возвращаемые значения


Yaf_Route_Rewrite constructor

  • « Yaf_Route_Rewrite::assemble
  • Yaf_Route_Rewrite::route »
  • PHP Manual
  • Yaf_Route_Rewrite
  • Yaf_Route_Rewrite constructor

Yaf_Route_Rewrite::__construct

(Yaf >=1.0.0)

Yaf_Route_Rewrite::__construct — Yaf_Route_Rewrite constructor

Описание

public Yaf_Route_Rewrite::__construct ( string $match , array $route [, array $verify ] )

Список параметров

match

A pattern, will be used to match a request uri, if it doesn't match, Yaf_Route_Rewrite will return FALSE.

You can use :name style to name segments matched, and use * to match the rest of the URL segments.

route

When the match pattern matches the request uri, Yaf_Route_Rewrite will use this to decide which module/controller/action is the destination.

Either of module/controller/action in this array is optional, if you don't assign a specific value, it will be routed to default.

verify

Возвращаемые значения

Примеры

Пример #1 Yaf_Route_Rewrite()example

<?php
   /**
    * Add a rewrite route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_rewrite(
           "/product/:name/:id/*", //match request uri leading "/product"
           array(
               'controller' => "product",  //route to product controller,
           ),
        )
    );
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/product/foo/22/foo/bar
 * route will result in following values:
 */
array(
  "controller" => "product",
  "module"     => "index", //(default)
  "action"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "name" => "foo",
  "id"   => 22,
  "foo"  => bar
)

Пример #2 Yaf_Route_Rewrite()example

<?php
   /**
    * Add a rewrite route to Yaf_Router route stack by calling addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "rewrite",        //Yaf_Route_Rewrite route
           "match" => "/user-list/:id", //match only /user/list/?/
           "route" => array(
               'controller' => "user",  //route to user controller,
               'action'     => "list",  //route to list action
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/user-list/22
 * route will result in following values:
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "id"   => 22,
)

Пример #3 Yaf_Route_Rewrite(as of 2.3.0)()example

<?php
   /**
    * Add a rewrite route use match result as m/c/a name
    */
    $config = array(
        "name" => array(
           "type"  => "rewrite",
           "match" => "/user-list/:a/:id", //match only /user-list/*
           "route" => array(
               'controller' => "user",   //route to user controller,
               'action'     => ":a",     //route to :a action
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/user-list/list/22
 * route will result in following values:
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(default)
)

/**
 * and request parameters:
 */
array(
  "id"   => 22,
)

Смотрите также

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Map


The route purpose

  • « Yaf_Route_Rewrite::__construct
  • Yaf_Router »
  • PHP Manual
  • Yaf_Route_Rewrite
  • The route purpose

Yaf_Route_Rewrite::route

(Yaf >=1.0.0)

Yaf_Route_Rewrite::route — The route purpose

Описание

public bool Yaf_Route_Rewrite::route ( Yaf_Request_Abstract $request )

Список параметров

request

Возвращаемые значения


The Yaf_Router class

(Yaf >=1.0.0)

Введение

Yaf_Router is the standard framework router. Routing is the process of taking a URI endpoint (that part of the URI which comes after the base URI: see Yaf_Request_Abstract::setBaseUri()) and decomposing it into parameters to determine which module, controller, and action of that controller should receive the request. This values of the module, controller, action and other parameters are packaged into a Yaf_Request_Abstract object which is then processed by Yaf_Dispatcher. Routing occurs only once: when the request is initially received and before the first controller is dispatched. Yaf_Router is designed to allow for mod_rewrite-like functionality using pure PHP structures. It is very loosely based on Ruby on Rails routing and does not require any prior knowledge of webserver URL rewriting. It is designed to work with a single Apache mod_rewrite rule (one of):

Пример #1 Rewrite rule for Apache

RewriteEngine on
RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php
or (preferred):

Пример #2 Rewrite rule for Apache

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
If using Lighttpd, the following rewrite rule is valid:

Пример #3 Rewrite rule for Lighttpd

url.rewrite-once = (
  ".*\?(.*)$" => "/index.php?$1",
  ".*\.(js|ico|gif|jpg|png|css|html)$" => "$0",
  "" => "/index.php"
)
If using Nginx, use the following rewrite rule:

Пример #4 Rewrite rule for Nginx

server {
  listen ****;
  server_name  yourdomain.com;
  root   document_root;
  index  index.php index.html;

  if (!-e $request_filename) {
    rewrite ^/(.*)  /index.php/$1 last;
  }
}

Default route

Yaf_Router comes preconfigured with a default route Yaf_Route_Static, which will match URIs in the shape of controller/action. Additionally, a module name may be specified as the first path element, allowing URIs of the form module/controller/action. Finally, it will also match any additional parameters appended to the URI by default - controller/action/var1/value1/var2/value2.

Замечание:

Module name must be defined in config, considering application.module="Index,Foo,Bar", in this case, only index, foo and bar can be considerd as a module name. if doesn't config, there is only one module named "Index".

Some examples of how such routes are matched:

Пример #5 Yaf_Route_Static(default route)example

// Assuming the following configure:
$conf = array(
   "application" => array(
      "modules" => "Index,Blog",
   ),
);

Controller only:
http://example/news
    controller == news
Action only(when defined yaf.action_prefer=1 in php.ini)
    action  == news

Invalid module maps to controller name:
http://example/foo
    controller == foo

Module + controller:
http://example/blog/archive
    module     == blog
    controller == archive

Module + controller + action:
http://example/blog/archive/list
    module     == blog
    controller == archive
    action     == list

Module + controller + action + params:
http://example/blog/archive/list/sort/alpha/date/desc
    module     == blog
    controller == archive
    action     == list
    sort       == alpha
    date       == desc

Обзор классов

Yaf_Router {
/* Свойства */
protected $_routes ;
protected $_current ;
/* Методы */
public bool addConfig ( Yaf_Config_Abstract $config )
public bool addRoute ( string $name , Yaf_Route_Abstract $route )
public __construct ( void )
public string getCurrentRoute ( void )
public Yaf_Route_Interface getRoute ( string $name )
public mixed getRoutes ( void )
public bool route ( Yaf_Request_Abstract $request )
}

Свойства

_routes

registered routes stack

_current

after routing phase, this indicated the name of which route is used to route current request. you can get this name by Yaf_Router::getCurrentRoute().

Содержание

  • Yaf_Router::addConfig — Add config-defined routes into Router
  • Yaf_Router::addRoute — Add new Route into Router
  • Yaf_Router::__construct — Yaf_Router constructor
  • Yaf_Router::getCurrentRoute — Get the effective route name
  • Yaf_Router::getRoute — Retrieve a route by name
  • Yaf_Router::getRoutes — Retrieve registered routes
  • Yaf_Router::route — The route purpose


Add config-defined routes into Router

  • « Yaf_Router
  • Yaf_Router::addRoute »
  • PHP Manual
  • Yaf_Router
  • Add config-defined routes into Router

Yaf_Router::addConfig

(Yaf >=1.0.0)

Yaf_Router::addConfig — Add config-defined routes into Router

Описание

public bool Yaf_Router::addConfig ( Yaf_Config_Abstract $config )

Add routes defined by configs into Yaf_Router's route stack

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An Yaf_Config_Abstract instance, which should contains one or more valid route configs

Примеры

Пример #1 application.ini()example

;the order is very important, the prior one will be called first

;a rewrite route match request /product/*/*
routes.route_name.type="rewrite"
routes.route_name.match="/product/:name/:value"
routes.route_name.route.controller=product
routes.route_name.route.action=info

;a regex route match request /list/*/*
routes.route_name1.type="regex"
routes.route_name1.match="#^list/([^/]*)/([^/]*)#"
routes.route_name1.route.controller=Index
routes.route_name1.route.action=action
routes.route_name1.map.1=name
routes.route_name1.map.2=value

;a simple route match /**?c=controller&a=action&m=module
routes.route_name2.type="simple"
routes.route_name2.controller=c
routes.route_name2.module=m
routes.route_name2.action=a

;a simple router match /**?r=PATH_INFO
routes.route_name3.type="supervar"
routes.route_name3.varname=r

;a map route match any request to controller
routes.route_name4.type="map"
routes.route_name4.controllerPrefer=TRUE
routes.route_namer.delimiter="#!"

Пример #2 Yaf_Dispatcher::autoConfig()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        /**
         * we can add some pre-defined routes in application.ini
         */
        $router->addConfig(Yaf_Registry::get("config")->routes);
    }
?>

Смотрите также

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Add new Route into Router

  • « Yaf_Router::addConfig
  • Yaf_Router::__construct »
  • PHP Manual
  • Yaf_Router
  • Add new Route into Router

Yaf_Router::addRoute

(Yaf >=1.0.0)

Yaf_Router::addRoute — Add new Route into Router

Описание

public bool Yaf_Router::addRoute ( string $name , Yaf_Route_Abstract $route )

defaultly, Yaf_Router using a Yaf_Route_Static as its defualt route. you can add new routes into router's route stack by calling this method.

the newer route will be called before the older(route stack), and if the newer router return TRUE, the router process will be end. otherwise, the older one will be called.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yaf_Dispatcher::autoRender()example

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        /**
         * we can add some pre-defined routes in application.ini
         */
        $router->addConfig(Yaf_Registry::get("config")->routes);
        /**
         * add a Rewrite route, then for a request uri:
         * http://***/product/list/22/foo
         * will be matched by this route, and result:
         *
         *  [module] =>
         *  [controller] => product
         *  [action] => info
         *  [method] => GET
         *  [params:protected] => Array
         *      (
         *          [id] => 22
         *          [name] => foo
         *      )
         *
         */
        $route  = new Yaf_Route_Rewrite(
            "/product/list/:id/:name",
            array(
                "controller" => "product",
                "action"     => "info",
            )
        );

        $router->addRoute('dummy', $route);
    }
?>

Смотрите также

  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Supervar
  • Yaf_Route_Simple
  • Yaf_Route_Regex
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


Yaf_Router constructor

  • « Yaf_Router::addRoute
  • Yaf_Router::getCurrentRoute »
  • PHP Manual
  • Yaf_Router
  • Yaf_Router constructor

Yaf_Router::__construct

(Yaf >=1.0.0)

Yaf_Router::__construct — Yaf_Router constructor

Описание

public Yaf_Router::__construct ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get the effective route name

  • « Yaf_Router::__construct
  • Yaf_Router::getRoute »
  • PHP Manual
  • Yaf_Router
  • Get the effective route name

Yaf_Router::getCurrentRoute

(Yaf >=1.0.0)

Yaf_Router::getCurrentRoute — Get the effective route name

Описание

public string Yaf_Router::getCurrentRoute ( void )

Get the name of the route which is effective in the route process.

Замечание:

You should call this method after the route process finished, since before that, this method will always return NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

String, the name of the effective route.

Примеры

Пример #1 Register some routes in Bootstrap

<?php
class Bootstrap extends Yaf_Bootstrap_Abstract{
    public function _initConfig() {
        $config = Yaf_Application::app()->getConfig();
        Yaf_Registry::set("config", $config);
    }

    public function _initRoute(Yaf_Dispatcher $dispatcher) {
        $router = $dispatcher->getRouter();
        $rewrite_route  = new Yaf_Route_Rewrite(
            "/product/list/:page",
            array(
                "controller" => "product",
                "action"     => "list",
            )
        );

        $regex_route  = new Yaf_Route_Rewrite(
            "#^/product/info/(\d+)",
            array(
                "controller" => "product",
                "action"     => "info",
            )
        );

        $router->addRoute('rewrite', $rewrite_route)->addRoute('regex', $regex_route);
    }

    /**
     * register plugin
     */
    public function __initPlugins(Yaf_Dispatcher $dispatcher) {
        $dispatcher->registerPlugin(new DummyPlugin());
    }
?>

Пример #2 plugin Dummy.php (under application.directory/plugins)

<?php
class DummyPlugin extends Yaf_Plugin_Abstract {

    public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {
         var_dump(Yaf_Dispatcher::getInstance()->getRouter()->getCurrentRoute());
    }
?>
?>

Результатом выполнения данного примера будет что-то подобное:

/* for http://yourdomain.com/product/list/1
 * DummyPlugin will output:
 */
string(7) "rewrite"

/* for http://yourdomain.com/product/info/34
 * DummyPlugin will output:
 */
string(5) "regex"

/* for other request URI
 * DummyPlugin will output:
 */
string(8) "_default"

Смотрите также

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Add new Route into Router


Retrieve a route by name

  • « Yaf_Router::getCurrentRoute
  • Yaf_Router::getRoutes »
  • PHP Manual
  • Yaf_Router
  • Retrieve a route by name

Yaf_Router::getRoute

(Yaf >=1.0.0)

Yaf_Router::getRoute — Retrieve a route by name

Описание

public Yaf_Route_Interface Yaf_Router::getRoute ( string $name )

Retrieve a route by name, see also Yaf_Router::getCurrentRoute()

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Yaf_Bootstrap_Abstract
  • Yaf_Plugin_Abstract
  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::getCurrentRoute() - Get the effective route name


Retrieve registered routes

  • « Yaf_Router::getRoute
  • Yaf_Router::route »
  • PHP Manual
  • Yaf_Router
  • Retrieve registered routes

Yaf_Router::getRoutes

(Yaf >=1.0.0)

Yaf_Router::getRoutes — Retrieve registered routes

Описание

public mixed Yaf_Router::getRoutes ( void )

Retrieve registered routes

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The route purpose

  • « Yaf_Router::getRoutes
  • Yaf_Route_Simple »
  • PHP Manual
  • Yaf_Router
  • The route purpose

Yaf_Router::route

(Yaf >=1.0.0)

Yaf_Router::route — The route purpose

Описание

public bool Yaf_Router::route ( Yaf_Request_Abstract $request )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The Yaf_Route_Simple class

(Yaf >=1.0.0)

Введение

Yaf_Route_Simple will match the query string, and find the route info.

all you need to do is tell Yaf_Route_Simple what key in the $_GET is module, what key is controller, and what key is action.

Yaf_Route_Simple::route() will always return TRUE, so it is important put Yaf_Route_Simple in the front of the Route stack, otherwise all the other routes will not be called.

Обзор классов

Yaf_Route_Simple implements Yaf_Route_Interface {
/* Свойства */
protected $controller ;
protected $module ;
protected $action ;
/* Методы */
public string assemble ( array $info [, array $query ] )
public __construct ( string $module_name , string $controller_name , string $action_name )
public bool route ( Yaf_Request_Abstract $request )
}

Свойства

controller

module

action

Содержание

  • Yaf_Route_Simple::assemble — Assemble a url
  • Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor
  • Yaf_Route_Simple::route — Route a request


Assemble a url

  • « Yaf_Route_Simple
  • Yaf_Route_Simple::__construct »
  • PHP Manual
  • Yaf_Route_Simple
  • Assemble a url

Yaf_Route_Simple::assemble

(Yaf >=2.3.0)

Yaf_Route_Simple::assemble — Assemble a url

Описание

public string Yaf_Route_Simple::assemble ( array $info [, array $query ] )

Assemble a url.

Список параметров

info

query

Примеры

Пример #1 Yaf_Route_Simple::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Simple('m', 'c', 'a');

$router->addRoute("simple", $route);

var_dump($router->getRoute('simple')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
                ),
            array(
                'tkey1' => 'tval1',
                'tkey2' => 'tval2'
                )
            ));

Результатом выполнения данного примера будет что-то подобное:

string(64) "?m=yafmodule&c=yafcontroller&a=yafaction&tkey1=tval1&tkey2=tval2"

Возвращаемые значения


Yaf_Route_Simple constructor

  • « Yaf_Route_Simple::assemble
  • Yaf_Route_Simple::route »
  • PHP Manual
  • Yaf_Route_Simple
  • Yaf_Route_Simple constructor

Yaf_Route_Simple::__construct

(Yaf >=1.0.0)

Yaf_Route_Simple::__construct — Yaf_Route_Simple constructor

Описание

public Yaf_Route_Simple::__construct ( string $module_name , string $controller_name , string $action_name )

Yaf_Route_Simple will get route info from query string. and the parameters of this constructor will used as keys while searching for the route info in $_GET.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

module_name

The key name of the module info.

controller_name

the key name of the controller info.

action_name

the key name of the action info.

Возвращаемые значения

Always return TRUE.

Примеры

Пример #1 Yaf_Route_Simple::route()example

<?php
   $route = new Yaf_Route_Simple("m", "controller", "act");
   Yaf_Router::getInstance()->addRoute("simple", $route);
?>

Пример #2 Yaf_Route_Simple::route()example

Request: http://yourdomain.com/path/?controller=a&act=b
=> module = default(index), controller = a, action = b

Request: http://yourdomain.com/path
=> module = default(index), controller = default(index), action = default(index)

Смотрите также

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Static::route() - Route a request
  • Yaf_Route_Regex::route() - The route purpose
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


Route a request

  • « Yaf_Route_Simple::__construct
  • Yaf_Route_Static »
  • PHP Manual
  • Yaf_Route_Simple
  • Route a request

Yaf_Route_Simple::route

(Yaf >=1.0.0)

Yaf_Route_Simple::route — Route a request

Описание

public bool Yaf_Route_Simple::route ( Yaf_Request_Abstract $request )

see Yaf_Route_Simple::__construct()

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения

always be TRUE

Смотрите также

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Static::route() - Route a request
  • Yaf_Route_Regex::route() - The route purpose
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


The Yaf_Route_Static class

(Yaf >=1.0.0)

Введение

Defaultly, Yaf_Router only have a Yaf_Route_Static as its default route.

And Yaf_Route_Static is designed to handle the 80% requirement.

please *NOTE* that it is unecessary to instance a Yaf_Route_Static, also unecesary to add it into Yaf_Router's routes stack, since there is always be one in Yaf_Router's routes stack, and always be called at the last time.

Обзор классов

Yaf_Route_Static implements Yaf_Router {
/* Методы */
public string assemble ( array $info [, array $query ] )
public void match ( string $uri )
public bool route ( Yaf_Request_Abstract $request )
}

Содержание

  • Yaf_Route_Static::assemble — Assemble a url
  • Yaf_Route_Static::match — The match purpose
  • Yaf_Route_Static::route — Route a request


Assemble a url

  • « Yaf_Route_Static
  • Yaf_Route_Static::match »
  • PHP Manual
  • Yaf_Route_Static
  • Assemble a url

Yaf_Route_Static::assemble

(Yaf >=2.3.0)

Yaf_Route_Static::assemble — Assemble a url

Описание

public string Yaf_Route_Static::assemble ( array $info [, array $query ] )

Assemble a url.

Список параметров

info

query

Примеры

Пример #1 Yaf_Route_Static::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Static();

$router->addRoute("static", $route);

var_dump($router->getRoute('static')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
            ),
        )
);

var_dump($router->getRoute('static')->assemble(
            array(
                ':a' => 'yafaction',
                'tkey' => 'tval',
                ':c' => 'yafcontroller',
                ':m' => 'yafmodule'
            ),
            array(
                'tkey1' => 'tval1',
                'tkey2' => 'tval2'
            )
        )
);

Результатом выполнения данного примера будет что-то подобное:

string(%d) "/yafmodule/yafcontroller/yafaction"
string(%d) "/yafmodule/yafcontroller/yafaction?tkey1=tval1&tkey2=tval2"

Возвращаемые значения


The match purpose

  • « Yaf_Route_Static::assemble
  • Yaf_Route_Static::route »
  • PHP Manual
  • Yaf_Route_Static
  • The match purpose

Yaf_Route_Static::match

(Yaf >=1.0.0)

Yaf_Route_Static::match — The match purpose

Описание

public void Yaf_Route_Static::match ( string $uri )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

uri

Возвращаемые значения


Route a request

  • « Yaf_Route_Static::match
  • Yaf_Route_Supervar »
  • PHP Manual
  • Yaf_Route_Static
  • Route a request

Yaf_Route_Static::route

(Yaf >=1.0.0)

Yaf_Route_Static::route — Route a request

Описание

public bool Yaf_Route_Static::route ( Yaf_Request_Abstract $request )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения

always be TRUE

Примеры

Пример #1 Yaf_Route_Static::route()example

// assuming there is only one module defined:Index
Request: http://yourdomain.com/a/b
=> module = index, controller=a, action=b

//assuming ap.action_prefer = On
Request: http://yourdomain.com/b
=> module = default(index), controller = default(index), action = b

//assuming ap.action_prefer = Off
Request: http://yourdomain.com/b
=> module = default(index), controller = b, action = default(index)

Request: http://yourdomain.com/a/b/foo/bar/test/a/id/4
=> module = default(index), controller = a, action = b, request parameters: foo = bar, test = a, id = 4

Смотрите также

  • Yaf_Route_Supervar::route() - The route purpose
  • Yaf_Route_Simple::route() - Route a request
  • Yaf_Route_Regex::route() - The route purpose
  • Yaf_Route_Rewrite::route() - The route purpose
  • Yaf_Route_Map::route() - The route purpose


The Yaf_Route_Supervar class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Route_Supervar implements Yaf_Route_Interface {
/* Свойства */
protected $_var_name ;
/* Методы */
public string assemble ( array $info [, array $query ] )
public __construct ( string $supervar_name )
public bool route ( Yaf_Request_Abstract $request )
}

Свойства

_var_name

Содержание

  • Yaf_Route_Supervar::assemble — Assemble a url
  • Yaf_Route_Supervar::__construct — The __construct purpose
  • Yaf_Route_Supervar::route — The route purpose


Assemble a url

  • « Yaf_Route_Supervar
  • Yaf_Route_Supervar::__construct »
  • PHP Manual
  • Yaf_Route_Supervar
  • Assemble a url

Yaf_Route_Supervar::assemble

(Yaf >=2.3.0)

Yaf_Route_Supervar::assemble — Assemble a url

Описание

public string Yaf_Route_Supervar::assemble ( array $info [, array $query ] )

Assemble a url.

Список параметров

info

query

Примеры

Пример #1 Yaf_Route_Supervar::assemble()example

<?php

$router = new Yaf_Router();

$route  = new Yaf_Route_Supervar('r');

$router->addRoute("supervar", $route);

var_dump($router->getRoute('supervar')->assemble(
        array(
              ':a' => 'yafaction',
              'tkey' => 'tval',
              ':c' => 'yafcontroller',
              ':m' => 'yafmodule'
        ),
        array(
              'tkey1' => 'tval1',
              'tkey2' => 'tval2'
        )
));

try {
var_dump($router->getRoute('supervar')->assemble(
        array(
              ':a' => 'yafaction',
              'tkey' => 'tval',
              ':m' => 'yafmodule'
        ),
        array(
              'tkey1' => 'tval1',
              'tkey2' => 'tval2',
              1 => array(),
        )
));
} catch (Exception $e) {
    var_dump($e->getMessage());
}

Результатом выполнения данного примера будет что-то подобное:

string(%d) "?r=/yafmodule/yafcontroller/yafaction&tkey1=tval1&tkey2=tval2"
string(%d) "You need to specify the controller by ':c'"

Возвращаемые значения


The __construct purpose

  • « Yaf_Route_Supervar::assemble
  • Yaf_Route_Supervar::route »
  • PHP Manual
  • Yaf_Route_Supervar
  • The __construct purpose

Yaf_Route_Supervar::__construct

(Yaf >=1.0.0)

Yaf_Route_Supervar::__construct — The __construct purpose

Описание

public Yaf_Route_Supervar::__construct ( string $supervar_name )

Yaf_Route_Supervar is similar with Yaf_Route_Static, the difference is Yaf_Route_Supervar will look for path info in query string, and the parameter supervar_name is the key.

Список параметров

supervar_name

The name of key.

Возвращаемые значения

Примеры

Пример #1 Yaf_Route_Supervar()example

<?php
   /**
    * Add a supervar route to Yaf_Router route stack
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Supervar("r"));
    );
?>

Результатом выполнения данного примера будет что-то подобное:

/** for request: http://yourdomain.com/xx/oo/?r=/ctr/act/var/value
  * will result in following:
  */
  array (
    "module"   => index(default),
    "controller" => ctr,
    "action"     => act,
    "params"     => array(
          "var" => value,
     )
  )

Смотрите также

  • Yaf_Router::addRoute() - Add new Route into Router
  • Yaf_Router::addConfig() - Add config-defined routes into Router
  • Yaf_Route_Static
  • Yaf_Route_Regex
  • Yaf_Route_Simple
  • Yaf_Route_Rewrite
  • Yaf_Route_Map


The route purpose

  • « Yaf_Route_Supervar::__construct
  • Yaf_Session »
  • PHP Manual
  • Yaf_Route_Supervar
  • The route purpose

Yaf_Route_Supervar::route

(Yaf >=1.0.0)

Yaf_Route_Supervar::route — The route purpose

Описание

public bool Yaf_Route_Supervar::route ( Yaf_Request_Abstract $request )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

request

Возвращаемые значения

If there is a key(which was defined in Yaf_Route_Supervar::__construct()) in $_GET, return TRUE. otherwise return FALSE.


The Yaf_Session class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Session implements Iterator , ArrayAccess , Countable {
/* Свойства */
protected static $_instance ;
protected $_session ;
protected $_started ;
/* Методы */
private void __clone ( void )
private __construct ( void )
public void count ( void )
public void current ( void )
public void del ( string $name )
public void __get ( string $name )
public static void getInstance ( void )
public void has ( string $name )
public void __isset ( string $name )
public void key ( void )
public void next ( void )
public void offsetExists ( string $name )
public void offsetGet ( string $name )
public void offsetSet ( string $name , string $value )
public void offsetUnset ( string $name )
public void rewind ( void )
public void __set ( string $name , string $value )
private void __sleep ( void )
public void start ( void )
public void __unset ( string $name )
public void valid ( void )
private void __wakeup ( void )
}

Свойства

_instance

_session

_started

Содержание

  • Yaf_Session::__clone — The __clone purpose
  • Yaf_Session::__construct — Constructor of Yaf_Session
  • Yaf_Session::count — The count purpose
  • Yaf_Session::current — The current purpose
  • Yaf_Session::del — The del purpose
  • Yaf_Session::__get — The __get purpose
  • Yaf_Session::getInstance — The getInstance purpose
  • Yaf_Session::has — The has purpose
  • Yaf_Session::__isset — The __isset purpose
  • Yaf_Session::key — The key purpose
  • Yaf_Session::next — The next purpose
  • Yaf_Session::offsetExists — The offsetExists purpose
  • Yaf_Session::offsetGet — The offsetGet purpose
  • Yaf_Session::offsetSet — The offsetSet purpose
  • Yaf_Session::offsetUnset — The offsetUnset purpose
  • Yaf_Session::rewind — The rewind purpose
  • Yaf_Session::__set — The __set purpose
  • Yaf_Session::__sleep — The __sleep purpose
  • Yaf_Session::start — The start purpose
  • Yaf_Session::__unset — The __unset purpose
  • Yaf_Session::valid — The valid purpose
  • Yaf_Session::__wakeup — The __wakeup purpose


The __clone purpose

  • « Yaf_Session
  • Yaf_Session::__construct »
  • PHP Manual
  • Yaf_Session
  • The __clone purpose

Yaf_Session::__clone

(Yaf >=1.0.0)

Yaf_Session::__clone — The __clone purpose

Описание

private void Yaf_Session::__clone ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Constructor of Yaf_Session

  • « Yaf_Session::__clone
  • Yaf_Session::count »
  • PHP Manual
  • Yaf_Session
  • Constructor of Yaf_Session

Yaf_Session::__construct

(Yaf >=1.0.0)

Yaf_Session::__construct — Constructor of Yaf_Session

Описание

private Yaf_Session::__construct ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The count purpose

  • « Yaf_Session::__construct
  • Yaf_Session::current »
  • PHP Manual
  • Yaf_Session
  • The count purpose

Yaf_Session::count

(Yaf >=1.0.0)

Yaf_Session::count — The count purpose

Описание

public void Yaf_Session::count ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The current purpose

  • « Yaf_Session::count
  • Yaf_Session::del »
  • PHP Manual
  • Yaf_Session
  • The current purpose

Yaf_Session::current

(Yaf >=1.0.0)

Yaf_Session::current — The current purpose

Описание

public void Yaf_Session::current ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The del purpose

  • « Yaf_Session::current
  • Yaf_Session::__get »
  • PHP Manual
  • Yaf_Session
  • The del purpose

Yaf_Session::del

(Yaf >=1.0.0)

Yaf_Session::del — The del purpose

Описание

public void Yaf_Session::del ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The __get purpose

  • « Yaf_Session::del
  • Yaf_Session::getInstance »
  • PHP Manual
  • Yaf_Session
  • The __get purpose

Yaf_Session::__get

(Yaf >=1.0.0)

Yaf_Session::__get — The __get purpose

Описание

public void Yaf_Session::__get ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The getInstance purpose

  • « Yaf_Session::__get
  • Yaf_Session::has »
  • PHP Manual
  • Yaf_Session
  • The getInstance purpose

Yaf_Session::getInstance

(Yaf >=1.0.0)

Yaf_Session::getInstance — The getInstance purpose

Описание

public static void Yaf_Session::getInstance ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The has purpose

  • « Yaf_Session::getInstance
  • Yaf_Session::__isset »
  • PHP Manual
  • Yaf_Session
  • The has purpose

Yaf_Session::has

(Yaf >=1.0.0)

Yaf_Session::has — The has purpose

Описание

public void Yaf_Session::has ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The __isset purpose

  • « Yaf_Session::has
  • Yaf_Session::key »
  • PHP Manual
  • Yaf_Session
  • The __isset purpose

Yaf_Session::__isset

(Yaf >=1.0.0)

Yaf_Session::__isset — The __isset purpose

Описание

public void Yaf_Session::__isset ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The key purpose

  • « Yaf_Session::__isset
  • Yaf_Session::next »
  • PHP Manual
  • Yaf_Session
  • The key purpose

Yaf_Session::key

(Yaf >=1.0.0)

Yaf_Session::key — The key purpose

Описание

public void Yaf_Session::key ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The next purpose

  • « Yaf_Session::key
  • Yaf_Session::offsetExists »
  • PHP Manual
  • Yaf_Session
  • The next purpose

Yaf_Session::next

(Yaf >=1.0.0)

Yaf_Session::next — The next purpose

Описание

public void Yaf_Session::next ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The offsetExists purpose

  • « Yaf_Session::next
  • Yaf_Session::offsetGet »
  • PHP Manual
  • Yaf_Session
  • The offsetExists purpose

Yaf_Session::offsetExists

(Yaf >=1.0.0)

Yaf_Session::offsetExists — The offsetExists purpose

Описание

public void Yaf_Session::offsetExists ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetGet purpose

  • « Yaf_Session::offsetExists
  • Yaf_Session::offsetSet »
  • PHP Manual
  • Yaf_Session
  • The offsetGet purpose

Yaf_Session::offsetGet

(Yaf >=1.0.0)

Yaf_Session::offsetGet — The offsetGet purpose

Описание

public void Yaf_Session::offsetGet ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The offsetSet purpose

  • « Yaf_Session::offsetGet
  • Yaf_Session::offsetUnset »
  • PHP Manual
  • Yaf_Session
  • The offsetSet purpose

Yaf_Session::offsetSet

(Yaf >=1.0.0)

Yaf_Session::offsetSet — The offsetSet purpose

Описание

public void Yaf_Session::offsetSet ( string $name , string $value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


The offsetUnset purpose

  • « Yaf_Session::offsetSet
  • Yaf_Session::rewind »
  • PHP Manual
  • Yaf_Session
  • The offsetUnset purpose

Yaf_Session::offsetUnset

(Yaf >=1.0.0)

Yaf_Session::offsetUnset — The offsetUnset purpose

Описание

public void Yaf_Session::offsetUnset ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The rewind purpose

  • « Yaf_Session::offsetUnset
  • Yaf_Session::__set »
  • PHP Manual
  • Yaf_Session
  • The rewind purpose

Yaf_Session::rewind

(Yaf >=1.0.0)

Yaf_Session::rewind — The rewind purpose

Описание

public void Yaf_Session::rewind ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __set purpose

  • « Yaf_Session::rewind
  • Yaf_Session::__sleep »
  • PHP Manual
  • Yaf_Session
  • The __set purpose

Yaf_Session::__set

(Yaf >=1.0.0)

Yaf_Session::__set — The __set purpose

Описание

public void Yaf_Session::__set ( string $name , string $value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

value

Возвращаемые значения


The __sleep purpose

  • « Yaf_Session::__set
  • Yaf_Session::start »
  • PHP Manual
  • Yaf_Session
  • The __sleep purpose

Yaf_Session::__sleep

(Yaf >=1.0.0)

Yaf_Session::__sleep — The __sleep purpose

Описание

private void Yaf_Session::__sleep ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The start purpose

  • « Yaf_Session::__sleep
  • Yaf_Session::__unset »
  • PHP Manual
  • Yaf_Session
  • The start purpose

Yaf_Session::start

(Yaf >=1.0.0)

Yaf_Session::start — The start purpose

Описание

public void Yaf_Session::start ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __unset purpose

  • « Yaf_Session::start
  • Yaf_Session::valid »
  • PHP Manual
  • Yaf_Session
  • The __unset purpose

Yaf_Session::__unset

(Yaf >=1.0.0)

Yaf_Session::__unset — The __unset purpose

Описание

public void Yaf_Session::__unset ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


The valid purpose

  • « Yaf_Session::__unset
  • Yaf_Session::__wakeup »
  • PHP Manual
  • Yaf_Session
  • The valid purpose

Yaf_Session::valid

(Yaf >=1.0.0)

Yaf_Session::valid — The valid purpose

Описание

public void Yaf_Session::valid ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The __wakeup purpose

  • « Yaf_Session::valid
  • Yaf_Exception »
  • PHP Manual
  • Yaf_Session
  • The __wakeup purpose

Yaf_Session::__wakeup

(Yaf >=1.0.0)

Yaf_Session::__wakeup — The __wakeup purpose

Описание

private void Yaf_Session::__wakeup ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The Yaf_Exception class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public __construct ( void )
public void getPrevious ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void 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 ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получить предыдущее исключение

  • « Yaf_Exception::__construct
  • Yaf_Exception_TypeError »
  • PHP Manual
  • Yaf_Exception
  • Получить предыдущее исключение

Yaf_Exception::getPrevious

(Yaf >=1.0.0)

Yaf_Exception::getPrevious — Получить предыдущее исключение

Описание

public void Yaf_Exception::getPrevious ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The Yaf_Exception_TypeError class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_TypeError extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


The Yaf_Exception_StartupError class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_StartupError extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


The Yaf_Exception_DispatchFailed class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_DispatchFailed extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


The Yaf_Exception_RouterFailed class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_RouterFailed extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


The Yaf_Exception_LoadFailed class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_LoadFailed extends Yaf_Exception {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


The Yaf_Exception_LoadFailed_Module class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_LoadFailed_Module extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


The Yaf_Exception_LoadFailed_Controller class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_LoadFailed_Controller extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


The Yaf_Exception_LoadFailed_Action class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_LoadFailed_Action extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


The Yaf_Exception_LoadFailed_View class

(Yaf >=1.0.0)

Введение

Обзор классов

Yaf_Exception_LoadFailed_View extends Yaf_Exception_LoadFailed {
/* Свойства */
/* Методы */
/* Наследуемые методы */
public Yaf_Exception::__construct ( void )
public void Yaf_Exception::getPrevious ( void )
}


Taint

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • More Details
    • Functions and Statements which will spread the tainted mark of a tainted string
    • Functions and statements which will check tainted string
    • Functions which untaint the tainted string
  • Taint Функции
    • is_tainted — Checks whether a string is tainted
    • taint — Taint a string
    • untaint — Untaint strings


Введение

Taint is an extension, which is used for detecting XSS codes(tainted string). And also can be used to spot sql injection vulnerabilities, and shell inject, etc.

When taint is enabled, if you pass a tainted string (comes from $_GET, $_POST or $_COOKIE) to some functions, taint will warn you about that.

Пример #1 Taint()example

<?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, может быть найдена здесь: » http://pecl.php.net/package/taint.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Taint Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
taint.enable | 0 | its PHP_INI_SYS value |
taint.error_level | E_WARNING | its PHP_INI_ALL value |

Краткое разъяснение конфигурационных директив.

taint.enable integer

Whether enable the taint.

taint.error_level integer

the error type which taint will report as when taint find a tainted string.


  • « Настройка во время выполнения
  • More Details »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


More Details

Содержание

  • Functions and Statements which will spread the tainted mark of a tainted string
  • Functions and statements which will check tainted string
  • Functions which untaint the tainted string


Functions and Statements which will spread the tainted mark of a tainted string

Function/Statement | Since
= (assign) | 0.1.0
. (concat) | 0.1.0
"{$var}" (variable substitution) | 0.1.0
.= (assign concat) | 0.1.0
strval | 0.3.0
explode | 0.3.0
implode | 0.3.0
sprintf | 0.3.0
vsprintf | 0.3.0
trim | 0.4.0
rtrim | 0.4.0
ltrim | 0.4.0


Functions and statements which will check tainted string

Function/Statement | Since
Basic statments
eval | 0.1.0
include/include_once | 0.1.0
require/require_once | 0.1.0
Outputing Functions
echo | 0.1.0
print | 0.1.0
printf | 0.1.0
file_put_contents | 0.1.0
File System Functions
fopen | 0.2.0
opendir | 0.2.0
basename | 0.2.0
dirname | 0.2.0
file | 0.2.0
pathinfo | 0.2.0
Database relevant Functions
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
Command Line relevant Functions
system | 0.1.0
exec | 0.1.0
proc_open | 0.1.0
passthru | 0.1.0
shell_exec | 0.3.0


Functions which untaint the tainted string

Function | Since
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 — Checks whether a string is tainted
  • taint — Taint a string
  • untaint — Untaint strings


Checks whether a string is tainted

  • « Taint Функции
  • taint »
  • PHP Manual
  • Taint Функции
  • Checks whether a string is tainted

is_tainted

(PECL taint >=0.1.0)

is_tainted — Checks whether a string is tainted

Описание

bool is_tainted ( string $string )

Checks whether a string is tainted

Список параметров

string

Возвращаемые значения

Return TRUE if the string is tainted, FALSE otherwise.


Taint a string

  • « is_tainted
  • untaint »
  • PHP Manual
  • Taint Функции
  • Taint a string

taint

(PECL taint >=0.1.0)

taint — Taint a string

Описание

bool taint ( string &$string [, string $... ] )

Make a string tainted. This is used for testing purpose only.

Список параметров

string

...

Возвращаемые значения

Return TRUE if the transformation is done. Always return TRUE if the taint extension is not enabled.


Untaint strings

  • « taint
  • Другие службы »
  • PHP Manual
  • Taint Функции
  • Untaint strings

untaint

(PECL taint >=0.1.0)

untaint — Untaint strings

Описание

bool untaint ( string &$string [, string $... ] )

Untaint strings

Список параметров

string

...

Возвращаемые значения


Другие службы

  • chdb — База данных хэша констант (CHDB)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • chdb — Класс chdb
    • Функции chdb
  • cURL — Клиентская библиотека работы с URL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • cURL
  • Event
    • Введение
    • Установка и настройка
    • Примеры
    • Event flags
    • About event persistence
    • Event callbacks
    • Constructing signal events
    • Event — The Event class
    • EventBase — The EventBase class
    • EventBuffer — The EventBuffer class
    • EventBufferEvent — The EventBufferEvent class
    • About buffer event callbacks
    • EventConfig — The EventConfig class
    • EventDnsBase — The EventDnsBase class
    • EventHttp — The EventHttp class
    • EventHttpConnection — The EventHttpConnection class
    • EventHttpRequest — The EventHttpRequest class
    • EventListener — The EventListener class
    • EventSslContext — The EventSslContext class
    • EventUtil — The EventUtil class
  • FAM — File Alteration Monitor
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции FAM
  • FTP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • FTP Функции
  • Gearman
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • GearmanClient — Класс GearmanClient
    • GearmanJob — Класс GearmanJob
    • GearmanTask — Класс GearmanTask
    • GearmanWorker — Класс GearmanWorker
    • GearmanException — Класс GearmanException
  • Gopher — Net Gopher
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Gopher Функции
  • Gupnp
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Gupnp Функции
  • Hyperwave API
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Integration with Apache
    • Hyperwave API Функции
  • LDAP — Облегчённый протокол доступа к каталогам (LDAP)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Использование вызовов PHP LDAP
    • Примеры
    • LDAP
  • Memcache
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Memcache — Класс Memcache
    • Memcache Функции
  • Memcached
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Время хранения объекта
    • Callbacks
    • Sessions support
    • Memcached — The Memcached class
    • MemcachedException — The MemcachedException class
  • mqseries
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • mqseries Функции
  • Network
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Сетевые Функции
  • RRD — RRDtool
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • RRD Функции
    • RRDCreator — The RRDCreator class
    • RRDGraph — The RRDGraph class
    • RRDUpdater — The RRDUpdater class
  • SAM — Simple Asynchronous Messaging
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • SAM Функции
  • SNMP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • SNMP Функции
    • SNMP — The SNMP class
    • SNMPException — The SNMPException class
  • Сокеты
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Ошибки сокетов
    • Сокетные Функции
  • SSH2 — Secure Shell2
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • SSH2 Функции
  • Stomp — Stomp Client
    • Введение
    • Установка и настройка
    • Примеры
    • Stomp
    • Stomp — Класс Stomp
    • StompFrame — Класс StompFrame
    • StompException — Класс StompException
  • SVM — Support Vector Machine
    • Введение
    • Установка и настройка
    • Примеры
    • SVM — The SVM class
    • SVMModel — The SVMModel class
  • SVN — Subversion
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • SVN
  • TCP — Обертки TCP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции TCP
  • Varnish
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • VarnishAdmin — The VarnishAdmin class
    • VarnishStat — The VarnishStat class
    • VarnishLog — The VarnishLog class
  • YAZ
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции YAZ
  • YP/NIS
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • YP/NIS Функции
  • 0MQ messaging — ZMQ
    • Введение
    • Установка и настройка
    • ZMQ — The ZMQ class
    • ZMQContext — The ZMQContext class
    • ZMQSocket — The ZMQSocket class
    • ZMQPoll — The ZMQPoll class
    • ZMQDevice — The ZMQDevice class
  • ZooKeeper
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • ZooKeeper — The ZooKeeper class


База данных хэша констант (CHDB)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • chdb — Класс chdb
    • chdb::__construct — Creates a chdb instance
    • chdb::get — Возвращает значение по ключу
  • Функции chdb
    • chdb_create — Создает файл chdb


Введение

CHDB (constant hash database) - это быстрая база данных типа ключ-значение для неизменяемых данных. Реализуется путем файла отображенного в память и предоставляет следующий функционал:

  • Экстремально быстрая первоначальная загрузка, независимо от размера базы.

  • В память загружены только те страницы файла, которые в данный момент используются.

  • Как только страница загружена, она становится доступна любому количеству процессов.

  • Загруженные страницы кешируются.

Стандартное использование CHDB - это быстрая альтернатива заданию множества констант в PHP constants.

Внутри CHDB устроена как хэш-таблица, использующая функцию » превосходного хеширования, что гарантирует время поиска O(1).


Требования

Расширение использует » cmph версии 0.9 для обеспечения функции » превосходного хэширования.

Для установки этого расширения требуется cmph 0.9.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/chdb

Для установки этого расширения требуется » cmph версии 0.9. Если cmph установлена в нестандартную директорию, используйте опцию --with-libcmph-dir=DIR во время компиляции для указания пути установки cmph.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • chdb
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Пример #1 Создание файла chdb

<?php

$data = array(
    'key1' => 'value1',
    'key2' => 'value2',
    // ...
);
chdb_create('data.chdb', $data);

?>

В примере выше создается файл chdb с именем data.chdb, содержащий пары ключ-значение, заданные в $data.

Пример #2 Загрузка и поиск в файле chdb

<?php

$chdb = new chdb('data.chdb');
$value1 = $chdb->get('key1');
$value2 = $chdb->get('key2');

echo $value1, PHP_EOL;
echo $value2, PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

value1
value2


Класс chdb

(PECL chdb >= 0.1.0)

Введение

Представляет загруженный файл chdb.

Обзор классов

chdb {
/* Методы */
public __construct ( string $pathname )
public string get ( string $key )
}

Содержание

  • chdb::__construct — Creates a chdb instance
  • chdb::get — Возвращает значение по ключу


Creates a chdb instance

  • « chdb
  • chdb::get »
  • PHP Manual
  • chdb
  • Creates a chdb instance

chdb::__construct

(PECL chdb >= 0.1.0)

chdb::__construct — Creates a chdb instance

Описание

public chdb::__construct ( string $pathname )

Разружает файл chdb, путем отображения его в память..

Замечание:

В то время как производятся некоторые проверки целостности данных в этом файле, они, в основном, проверяют на наличие наиболее распространенных ошибок (например, загрузка файла, который не является базой данных chdb, или если что-то несовместимо с текущей системой). Таким образом, вредоносный файл chdb может быть опасен, поэтому к файлы chdb должны быть надежны и к ним следует относиться с тем же уровенем защиты, как и к разделяемым библиотекам PHP.

Список параметров

pathname

Имя файла.

Ошибки

Бросает исключение, если не удалось загрузить файл.

Замечание:

Корректный файл может не загрузиться, если он был создан на архитектуре использующей другой прядок байт, с помощью другой версии chdb, или если файл слишком большой для отображения в память (в основном это касается огромных файлов и 32-битных архитектур). В таких случаях загрузка закончится вызовом исключения и не допустит выполнения каких либо неправильных операций.


Возвращает значение по ключу

  • « chdb::__construct
  • Функции chdb »
  • PHP Manual
  • chdb
  • Возвращает значение по ключу

chdb::get

(PECL chdb >= 0.1.0)

chdb::get — Возвращает значение по ключу

Описание

public string chdb::get ( string $key )

Возвращает значение по ключу.

Список параметров

key

Ключ.

Возвращаемые значения

Возвращает строку, содержащуюся по ключу key, или NULL если ничего не найдено.

Примеры

Пример #1 Пример использования chdb::get()

<?php

$data = array(
    'key1' => 'value1',
    'key2' => 'value2',
    // ...
);
chdb_create('data.chdb', $data);

$chdb = new chdb('data.chdb');
$value1 = $chdb->get('key1');
$value2 = $chdb->get('key2');

echo $value1, PHP_EOL;
echo $value2, PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

value1
value2


  • « chdb::get
  • chdb_create »
  • PHP Manual
  • chdb
  • Функции chdb

Функции chdb

Содержание

  • chdb_create — Создает файл chdb


Создает файл chdb

  • « Функции chdb
  • cURL »
  • PHP Manual
  • Функции chdb
  • Создает файл chdb

chdb_create

(PECL chdb >= 0.1.0)

chdb_create — Создает файл chdb

Описание

bool chdb_create ( string $pathname , array $data )

chdb_create() создает файл chdb, содержащий указанные пары ключ/значение.

Замечание:

Файлы chdb не переносимы между окружениями little-endian и big-endian. Но зато они переносимы между разными архитектурами. Также не гарантируется совместимость между разными версиями chdb.

Список параметров

pathname

Имя создаваемого файла.

Если указанный файл уже существует, то он будет перезаписан.

data

Массив пар ключ/значение для записи в файл.

Ключи и значения будут преобразованы в строки, перед тем, как будут записаны, так как chdb поддерживает только строковые значения. Обратите внимание, что бинарные строки также поддерживаются, как для значений, так и для ключей.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Вызывает исключение, если не удалось создать файл.

Примеры

Пример #1 Пример chdb_create()

<?php

$data = array(
    'key1' => 'value1',
    'key2' => 'value2',
    // ...
);
chdb_create('data.chdb', $data);

?>

В примере выше, создается файл chdb с именем data.chdb и содержащий пары ключ/значение из массива $data.


Клиентская библиотека работы с URL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Простой пример использования curl
  • cURL
    • curl_close — Завершает сеанс cURL
    • curl_copy_handle — Копирует дескриптор cURL вместе со всеми его настройками
    • curl_errno — Возвращает код последней ошибки
    • curl_error — Возвращает строку с описанием последней ошибки текущего сеанса
    • curl_escape — Кодирует заданную строку как URL
    • curl_exec — Выполняет запрос cURL
    • curl_file_create — Создает объект CURLFile
    • curl_getinfo — Возвращает информацию об определенной операции
    • curl_init — Инициализирует сеанс cURL
    • curl_multi_add_handle — Добавляет обычный cURL дескриптор к набору cURL дескрипторов
    • curl_multi_close — Закрывает набор cURL дескрипторов
    • curl_multi_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 — Set an option for the cURL multi handle
    • curl_multi_strerror — Возвращает строку, описывающую ошибку
    • curl_pause — Приостановить и возобновить соединение
    • curl_reset — Сбросить все настройки обработчика сессии libcurl
    • curl_setopt_array — Устанавливает несколько параметров для сеанса cURL
    • curl_setopt — Устанавливает параметр для сеанса CURL
    • curl_share_close — Закрыть разделяемый обработчик cURL
    • curl_share_init — Инициализация разделяемого обработчика cURL
    • curl_share_setopt — Установить опции разделяемого обработчика cURL
    • curl_strerror — Получить текстовое описание для кода ошибки
    • curl_unescape — Раскодировать закодированную URL-строку
    • curl_version — Возвращает версию cURL


Введение

В PHP включена поддержка libcurl - библиотеки функций, написанной Daniel Stenberg, которая позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов. В настоящее время libcurl поддерживает протоколы http, https, ftp, gopher, telnet, dict, file и ldap. libcurl также умеет работать с сертификатами HTTPS, посылать запросы к HTTP серверам методами POST и PUT, закачивать файлы по протоколам HTTP и FTP (последнее можно сделать с помощью модуля FTP), использовать прокси-серверы, cookies и аутентификацию пользователей.


Требования

Для использования функций cURL в PHP необходимо установить пакет » libcurl. Необходимо использовать версию libcurl 7.10.5 или новее.


Установка

Для использования cURL необходимо собрать PHP с опцией --with-curl[=DIR] , где DIR - имя каталога, содержащего подкаталоги lib и include. Каталог include должен содержать подкаталог curl с файлами easy.h и curl.h. В каталоге lib должен быть файл libcurl.a. Начиная с PHP 4.3.0 с помощью опции --with-curlwrappers можно сконфигурировать PHP для использования cURL при работе с обертками URL. Начиная с версии PHP 5.5.0 данная возможность была перемещена в PECL.

Замечание: Замечание для пользователей Win32
Для работы с этим модулем в Windows файлы libeay32.dll и ssleay32.dll должны существовать в системной переменной окружения PATH. Вам не требуется файл libcurl.dll с сайта cURL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Настройки конфигурации cURL
Имя | По умолчанию | Меняемо | Список изменений
curl.cainfo | NULL | PHP_INI_SYSTEM | Доступна, начиная с версии PHP 5.3.7.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

curl.cainfo string

Значение по умолчанию для директивы CURLOPT_CAINFO. Данное значение должно быть указано в виде абсолютного пути.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение определяет два типа ресурсов: дескриптор cURL и мульти-дескриптор cURL.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Descriptions и uses for these constants are described within the curl_setopt(), curl_multi_setopt() and curl_getinfo() documentation.

CURLOPT_AUTOREFERER (integer)
Доступно с PHP 5.1.0
CURLOPT_COOKIESESSION (integer)
Доступно с PHP 5.1.0
CURLOPT_DNS_USE_GLOBAL_CACHE (integer)
CURLOPT_DNS_CACHE_TIMEOUT (integer)
CURLOPT_FTP_SSL (integer)
Доступно с PHP 5.2.0
CURLFTP_CREATE_DIR (integer)
Доступно с PHP 7.0.7 и cURL 7.19.3
CURLFTP_CREATE_DIR_NONE (integer)
Доступно с PHP 7.0.7 и cURL 7.19.3
CURLFTP_CREATE_DIR_RETRY (integer)
Доступно с PHP 7.0.7 и cURL 7.19.3
CURLFTPSSL_TRY (integer)
Доступно с PHP 5.2.0
CURLFTPSSL_ALL (integer)
Доступно с PHP 5.2.0
CURLFTPSSL_CONTROL (integer)
Доступно с PHP 5.2.0
CURLFTPSSL_NONE (integer)
Доступно с PHP 5.2.0
CURLOPT_PRIVATE (integer)
Доступно с PHP 5.2.4
CURLOPT_FTPSSLAUTH (integer)
Доступно с PHP 5.1.0
CURLOPT_PORT (integer)
CURLOPT_FILE (integer)
CURLOPT_INFILE (integer)
CURLOPT_INFILESIZE (integer)
CURLOPT_URL (integer)
CURLOPT_PROXY (integer)
CURLOPT_VERBOSE (integer)
CURLOPT_HEADER (integer)
CURLOPT_HTTPHEADER (integer)
CURLOPT_NOPROGRESS (integer)
CURLOPT_NOBODY (integer)
CURLOPT_FAILONERROR (integer)
CURLOPT_UPLOAD (integer)
CURLOPT_POST (integer)
CURLOPT_FTPLISTONLY (integer)
CURLOPT_FTPAPPEND (integer)
CURLOPT_FTP_CREATE_MISSING_DIRS (integer)
CURLOPT_NETRC (integer)
CURLOPT_FOLLOWLOCATION (integer)
Эта опция недоступна, если разрешены open_basedir или safe_mode.
CURLOPT_FTPASCII (integer)
CURLOPT_PUT (integer)
CURLOPT_MUTE (integer)
CURLOPT_USERPWD (integer)
CURLOPT_PROXYUSERPWD (integer)
CURLOPT_RANGE (integer)
CURLOPT_TIMEOUT (integer)
CURLOPT_TIMEOUT_MS (integer)
CURLOPT_TCP_NODELAY (integer)
Доступно с PHP 5.2.1
CURLOPT_POSTFIELDS (integer)
CURLOPT_PROGRESSFUNCTION (integer)
Доступно с PHP 5.3.0
CURLOPT_REFERER (integer)
CURLOPT_USERAGENT (integer)
CURLOPT_FTPPORT (integer)
CURLOPT_FTP_USE_EPSV (integer)
CURLOPT_LOW_SPEED_LIMIT (integer)
CURLOPT_LOW_SPEED_TIME (integer)
CURLOPT_RESUME_FROM (integer)
CURLOPT_COOKIE (integer)
CURLOPT_SSLCERT (integer)
CURLOPT_SSLCERTPASSWD (integer)
CURLOPT_WRITEHEADER (integer)
CURLOPT_SSL_VERIFYHOST (integer)
CURLOPT_COOKIEFILE (integer)
CURLOPT_SSLVERSION (integer)
CURL_SSLVERSION_DEFAULT (integer)
CURL_SSLVERSION_TLSv1 (integer)
CURL_SSLVERSION_SSLv2 (integer)
CURL_SSLVERSION_SSLv3 (integer)
CURL_SSLVERSION_TLSv1_0 (integer)
Доступно с PHP 5.5.19 и 5.6.3
CURL_SSLVERSION_TLSv1_1 (integer)
Доступно с PHP 5.5.19 и 5.6.3
CURL_SSLVERSION_TLSv1_2 (integer)
Доступно с PHP 5.5.19 и 5.6.3
CURLOPT_TIMECONDITION (integer)
CURLOPT_TIMEVALUE (integer)
CURLOPT_CUSTOMREQUEST (integer)
CURLOPT_STDERR (integer)
CURLOPT_TRANSFERTEXT (integer)
CURLOPT_RETURNTRANSFER (integer)
CURLOPT_QUOTE (integer)
CURLOPT_POSTQUOTE (integer)
CURLOPT_INTERFACE (integer)
CURLOPT_KRB4LEVEL (integer)
CURLOPT_HTTPPROXYTUNNEL (integer)
CURLOPT_FILETIME (integer)
CURLOPT_WRITEFUNCTION (integer)
CURLOPT_READFUNCTION (integer)
CURLOPT_PASSWDFUNCTION (integer)
CURLOPT_HEADERFUNCTION (integer)
CURLOPT_MAXREDIRS (integer)
CURLOPT_MAXCONNECTS (integer)
CURLOPT_CLOSEPOLICY (integer)
Удалено в PHP 5.6.0.
CURLOPT_FRESH_CONNECT (integer)
CURLOPT_FORBID_REUSE (integer)
CURLOPT_RANDOM_FILE (integer)
CURLOPT_EGDSOCKET (integer)
CURLOPT_CONNECTTIMEOUT (integer)
CURLOPT_CONNECTTIMEOUT_MS (integer)
CURLOPT_SSL_VERIFYPEER (integer)
CURLOPT_CAINFO (integer)
CURLOPT_CAPATH (integer)
CURLOPT_COOKIEJAR (integer)
CURLOPT_SSL_CIPHER_LIST (integer)
CURLOPT_BINARYTRANSFER (integer)
CURLOPT_NOSIGNAL (integer)
CURLOPT_PROXYTYPE (integer)
Доступно с cURL 7.10.
CURLOPT_BUFFERSIZE (integer)
CURLOPT_HTTPGET (integer)
CURLOPT_HTTP_VERSION (integer)
CURLOPT_SSLKEY (integer)
CURLOPT_SSLKEYTYPE (integer)
CURLOPT_SSLKEYPASSWD (integer)
CURLOPT_SSLENGINE (integer)
CURLOPT_SSLENGINE_DEFAULT (integer)
CURLOPT_SSLCERTTYPE (integer)
CURLOPT_CRLF (integer)
CURLOPT_ENCODING (integer)
CURLOPT_PROXYPORT (integer)
CURLOPT_UNRESTRICTED_AUTH (integer)
CURLOPT_FTP_USE_EPRT (integer)
CURLOPT_HTTP200ALIASES (integer)
CURLOPT_HTTPAUTH (integer)
CURLAUTH_BASIC (integer)
CURLAUTH_DIGEST (integer)
CURLAUTH_GSSNEGOTIATE (integer)
CURLAUTH_NEGOTIATE (integer)
Доступно с PHP 7.0.7 и cURL 7.38.0.
CURLAUTH_NTLM (integer)
CURLAUTH_NTLM_WB (integer)
Доступно с PHP 7.0.7 и cURL 7.22.0
CURLAUTH_ANY (integer)
CURLAUTH_ANYSAFE (integer)
CURLOPT_PROXYAUTH (integer)
CURLOPT_MAX_RECV_SPEED_LARGE (integer)
Доступно с PHP 5.4.0 и cURL 7.15.5
CURLOPT_MAX_SEND_SPEED_LARGE (integer)
Доступно с PHP 5.4.0 и cURL 7.15.5
CURLOPT_HEADEROPT (integer)
Доступно с PHP 7.0.7 и cURL 7.37.0
CURLOPT_PROXYHEADER (integer)
Доступно с PHP 7.0.7 и cURL 7.37.0
CURLCLOSEPOLICY_LEAST_RECENTLY_USED (integer)
Удалено в PHP 5.6.0.
CURLCLOSEPOLICY_LEAST_TRAFFIC (integer)
Удалено в PHP 5.6.0.
CURLCLOSEPOLICY_SLOWEST (integer)
Удалено в PHP 5.6.0.
CURLCLOSEPOLICY_CALLBACK (integer)
Удалено в PHP 5.6.0.
CURLCLOSEPOLICY_OLDEST (integer)
Удалено в PHP 5.6.0.
CURLINFO_PRIVATE (integer)
Доступно с PHP 5.2.4
CURLINFO_EFFECTIVE_URL (integer)
CURLINFO_HTTP_CODE (integer)
CURLINFO_HEADER_OUT (integer)
Доступно с PHP 5.1.3
CURLINFO_HEADER_SIZE (integer)
CURLINFO_REQUEST_SIZE (integer)
CURLINFO_TOTAL_TIME (integer)
CURLINFO_NAMELOOKUP_TIME (integer)
CURLINFO_CONNECT_TIME (integer)
CURLINFO_PRETRANSFER_TIME (integer)
CURLINFO_SIZE_UPLOAD (integer)
CURLINFO_SIZE_DOWNLOAD (integer)
CURLINFO_SPEED_DOWNLOAD (integer)
CURLINFO_SPEED_UPLOAD (integer)
CURLINFO_FILETIME (integer)
CURLINFO_SSL_VERIFYRESULT (integer)
CURLINFO_CONTENT_LENGTH_DOWNLOAD (integer)
CURLINFO_CONTENT_LENGTH_UPLOAD (integer)
CURLINFO_STARTTRANSFER_TIME (integer)
CURLINFO_CONTENT_TYPE (integer)
CURLINFO_REDIRECT_TIME (integer)
CURLINFO_REDIRECT_COUNT (integer)
CURLINFO_REDIRECT_URL (string)
Доступно с PHP 5.3.7
CURLINFO_PRIMARY_IP (string)
Доступно с PHP 5.4.7
CURLINFO_PRIMARY_PORT (integer)
Доступно с PHP 5.4.7
CURLINFO_LOCAL_IP (string)
Доступно с PHP 5.4.7
CURLINFO_LOCAL_PORT (integer)
Доступно с PHP 5.4.7
CURL_REDIR_POST_301 (integer)
Доступно с PHP 7.0.7 и cURL 7.18.2
CURL_REDIR_POST_302 (integer)
Доступно с PHP 7.0.7 и cURL 7.18.2
CURL_REDIR_POST_303 (integer)
Доступно с PHP 7.0.7 и cURL 7.25.1
CURL_REDIR_POST_ALL (integer)
Доступно с PHP 7.0.7 и cURL 7.18.2
CURL_TIMECOND_IFMODSINCE (integer)
CURL_TIMECOND_IFUNMODSINCE (integer)
CURL_TIMECOND_LASTMOD (integer)
CURL_VERSION_IPV6 (integer)
CURL_VERSION_KERBEROS4 (integer)
CURL_VERSION_KERBEROS5 (integer)
Доступно с PHP 7.0.7 и cURL 7.40.0
CURL_VERSION_HTTP2 (integer)
Доступно с PHP 5.5.24 и 5.6.8 и cURL 7.33.0
CURL_VERSION_PSL (integer)
Доступно с PHP 7.0.7 и cURL 7.47.0
CURL_VERSION_SSL (integer)
CURL_VERSION_UNIX_SOCKETS (integer)
Доступно с PHP 7.0.7 и cURL 7.40.0
CURL_VERSION_LIBZ (integer)
CURLVERSION_NOW (integer)
CURLE_OK (integer)
CURLE_UNSUPPORTED_PROTOCOL (integer)
CURLE_FAILED_INIT (integer)
CURLE_URL_MALFORMAT (integer)
CURLE_URL_MALFORMAT_USER (integer)
CURLE_COULDNT_RESOLVE_PROXY (integer)
CURLE_COULDNT_RESOLVE_HOST (integer)
CURLE_COULDNT_CONNECT (integer)
CURLE_FTP_WEIRD_SERVER_REPLY (integer)
CURLE_FTP_ACCESS_DENIED (integer)
CURLE_FTP_USER_PASSWORD_INCORRECT (integer)
CURLE_FTP_WEIRD_PASS_REPLY (integer)
CURLE_FTP_WEIRD_USER_REPLY (integer)
CURLE_FTP_WEIRD_PASV_REPLY (integer)
CURLE_FTP_WEIRD_227_FORMAT (integer)
CURLE_FTP_CANT_GET_HOST (integer)
CURLE_FTP_CANT_RECONNECT (integer)
CURLE_FTP_COULDNT_SET_BINARY (integer)
CURLE_PARTIAL_FILE (integer)
CURLE_FTP_COULDNT_RETR_FILE (integer)
CURLE_FTP_WRITE_ERROR (integer)
CURLE_FTP_QUOTE_ERROR (integer)
CURLE_HTTP_NOT_FOUND (integer)
CURLE_WRITE_ERROR (integer)
CURLE_MALFORMAT_USER (integer)
CURLE_FTP_COULDNT_STOR_FILE (integer)
CURLE_READ_ERROR (integer)
CURLE_OUT_OF_MEMORY (integer)
CURLE_OPERATION_TIMEOUTED (integer)
CURLE_FTP_COULDNT_SET_ASCII (integer)
CURLE_FTP_PORT_FAILED (integer)
CURLE_FTP_COULDNT_USE_REST (integer)
CURLE_FTP_COULDNT_GET_SIZE (integer)
CURLE_HTTP_RANGE_ERROR (integer)
CURLE_HTTP_POST_ERROR (integer)
CURLE_SSL_CONNECT_ERROR (integer)
CURLE_FTP_BAD_DOWNLOAD_RESUME (integer)
CURLE_FILE_COULDNT_READ_FILE (integer)
CURLE_LDAP_CANNOT_BIND (integer)
CURLE_LDAP_SEARCH_FAILED (integer)
CURLE_LIBRARY_NOT_FOUND (integer)
CURLE_FUNCTION_NOT_FOUND (integer)
CURLE_ABORTED_BY_CALLBACK (integer)
CURLE_BAD_FUNCTION_ARGUMENT (integer)
CURLE_BAD_CALLING_ORDER (integer)
CURLE_HTTP_PORT_FAILED (integer)
CURLE_BAD_PASSWORD_ENTERED (integer)
CURLE_TOO_MANY_REDIRECTS (integer)
CURLE_UNKNOWN_TELNET_OPTION (integer)
CURLE_TELNET_OPTION_SYNTAX (integer)
CURLE_OBSOLETE (integer)
CURLE_SSL_PEER_CERTIFICATE (integer)
CURLE_GOT_NOTHING (integer)
CURLE_SSL_ENGINE_NOTFOUND (integer)
CURLE_SSL_ENGINE_SETFAILED (integer)
CURLE_SEND_ERROR (integer)
CURLE_RECV_ERROR (integer)
CURLE_SHARE_IN_USE (integer)
CURLE_SSL_CERTPROBLEM (integer)
CURLE_SSL_CIPHER (integer)
CURLE_SSL_CACERT (integer)
CURLE_BAD_CONTENT_ENCODING (integer)
CURLE_LDAP_INVALID_URL (integer)
CURLE_FILESIZE_EXCEEDED (integer)
CURLE_FTP_SSL_FAILED (integer)
CURLE_SSH (integer)
Доступно с PHP 5.3.0 и cURL 7.16.1.
CURLFTPAUTH_DEFAULT (integer)
Доступно с PHP 5.1.0
CURLFTPAUTH_SSL (integer)
Доступно с PHP 5.1.0
CURLFTPAUTH_TLS (integer)
Доступно с PHP 5.1.0
CURLPROXY_HTTP (integer)
Доступно с cURL 7.10.
CURLPROXY_HTTP_1_0 (integer)
Доступно с PHP 7.0.7 и cURL 7.19.3
CURLPROXY_SOCKS4 (integer)
Доступно с PHP 5.2.10 и cURL 7.10.
CURLPROXY_SOCKS5 (integer)
Доступно с cURL 7.10.
CURL_NETRC_OPTIONAL (integer)
CURL_NETRC_IGNORED (integer)
CURL_NETRC_REQUIRED (integer)
CURL_HTTP_VERSION_NONE (integer)
CURL_HTTP_VERSION_1_0 (integer)
CURL_HTTP_VERSION_1_1 (integer)
CURL_HTTP_VERSION_2 (integer)
Доступно с PHP 7.0.7 и cURL 7.43.0
CURL_HTTP_VERSION_2TLS (integer)
Доступно с PHP 7.0.7 и cURL 7.47.0
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (integer)
Доступно с PHP 7.0.7 и cURL 7.49.0
CURLM_CALL_MULTI_PERFORM (integer)
CURLM_OK (integer)
CURLM_BAD_HANDLE (integer)
CURLM_BAD_EASY_HANDLE (integer)
CURLM_OUT_OF_MEMORY (integer)
CURLM_INTERNAL_ERROR (integer)
CURLMSG_DONE (integer)
CURLOPT_KEYPASSWD (integer)
CURLOPT_SSH_AUTH_TYPES (integer)
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (integer)
CURLOPT_SSH_PRIVATE_KEYFILE (integer)
CURLOPT_SSH_PUBLIC_KEYFILE (integer)
CURLOPT_SSL_OPTIONS (integer)
Доступно с PHP 5.5.0 и cURL 7.25.0
CURLSSLOPT_ALLOW_BEAST (integer)
Доступно с PHP 5.5.0 и cURL 7.25.0
CURLSSLOPT_NO_REVOKE (integer)
Доступно с PHP 7.0.7 и cURL 7.44.0
CURLOPT_USERNAME (integer)
Доступно с PHP 5.5.0 и cURL 7.19.1
CURLOPT_SASL_IR (integer)
Доступно с PHP 7.0.7 и cURL 7.31.0
CURLOPT_DNS_INTERFACE (integer)
Доступно с PHP 7.0.7 и cURL 7.33.0
CURLOPT_DNS_LOCAL_IP4 (integer)
Доступно с PHP 7.0.7 и cURL 7.33.0
CURLOPT_DNS_LOCAL_IP6 (integer)
Доступно с PHP 7.0.7 и cURL 7.33.0
CURLOPT_XOAUTH2_BEARER (integer)
Доступно с PHP 7.0.7 и cURL 7.33.0
CURLOPT_LOGIN_OPTIONS (integer)
Доступно с PHP 7.0.7 и cURL 7.34.0
CURLOPT_EXPECT_100_TIMEOUT_MS (integer)
Доступно с PHP 7.0.7 и cURL 7.36.0
CURLOPT_SSL_ENABLE_ALPN (integer)
Доступно с PHP 7.0.7 и cURL 7.36.0
CURLOPT_SSL_ENABLE_NPN (integer)
Доступно с PHP 7.0.7 и cURL 7.36.0
CURLOPT_PINNEDPUBLICKEY (integer)
Доступно с PHP 7.0.7 и cURL 7.39.0
CURLOPT_UNIX_SOCKET_PATH (integer)
Доступно с PHP 7.0.7 и cURL 7.40.0
CURLOPT_SSL_VERIFYSTATUS (integer)
Доступно с PHP 7.0.7 и cURL 7.41.0
CURLOPT_PATH_AS_IS (integer)
Доступно с PHP 7.0.7 и cURL 7.42.0
CURLOPT_SSL_FALSESTART (integer)
Доступно с PHP 7.0.7 и cURL 7.42.0
CURLOPT_PIPEWAIT (integer)
Доступно с PHP 7.0.7 и cURL 7.43.0
CURLOPT_PROXY_SERVICE_NAME (integer)
Доступно с PHP 7.0.7 и cURL 7.43.0
CURLOPT_SERVICE_NAME (integer)
Доступно с PHP 7.0.7 и cURL 7.43.0
CURLOPT_DEFAULT_PROTOCOL (integer)
Доступно с PHP 7.0.7 и cURL 7.45.0
CURLOPT_STREAM_WEIGHT (integer)
Доступно с PHP 7.0.7 и cURL 7.46.0
CURLOPT_TFTP_NO_OPTIONS (integer)
Доступно с PHP 7.0.7 и cURL 7.48.0
CURLOPT_CONNECT_TO (integer)
Доступно с PHP 7.0.7 и cURL 7.49.0
CURLOPT_TCP_FASTOPEN (integer)
Доступно с PHP 7.0.7 и cURL 7.49.0
CURLMOPT_PIPELINING (integer)
Доступно с PHP 5.5.0 и cURL 7.16.0.
CURLMOPT_MAXCONNECTS (integer)
Доступно с PHP 5.5.0 и cURL 7.16.3.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE (integer)
Доступно с PHP 7.0.7 и cURL 7.30.0
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE (integer)
Доступно с PHP 7.0.7 и cURL 7.30.0
CURLMOPT_MAX_HOST_CONNECTIONS (integer)
Доступно с PHP 7.0.7 и cURL 7.30.0
CURLMOPT_MAX_PIPELINE_LENGTH (integer)
Доступно с PHP 7.0.7 и cURL 7.30.0
CURLMOPT_MAX_TOTAL_CONNECTIONS (integer)
Доступно с PHP 7.0.7 и cURL 7.30.0
CURLSSH_AUTH_AGENT (integer)
Доступно с PHP 7.0.7 и cURL 7.28.0
CURLSSH_AUTH_ANY (integer)
CURLSSH_AUTH_DEFAULT (integer)
CURLSSH_AUTH_HOST (integer)
CURLSSH_AUTH_KEYBOARD (integer)
CURLSSH_AUTH_NONE (integer)
CURLSSH_AUTH_PASSWORD (integer)
CURLSSH_AUTH_PUBLICKEY (integer)
CURL_WRAPPERS_ENABLED (integer)
Определена в PHP с помощью --with-curlwrappers . Перемещено в PECL в PHP 5.5.0.
CURLPAUSE_ALL (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPAUSE_CONT (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPAUSE_RECV (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPAUSE_RECV_CONT (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPAUSE_SEND (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPAUSE_SEND_CONT (integer)
Доступно с PHP 5.5.0 и cURL 7.18.0.
CURLPIPE_NOTHING (integer)
Доступно с PHP 7.0.0 и cURL 7.43.0.
CURLPIPE_HTTP1 (integer)
Доступно с PHP 7.0.0 и cURL 7.43.0.
CURLPIPE_MULTIPLEX (integer)
Доступно с PHP 7.0.0 и cURL 7.43.0.
CURLPROXY_SOCKS4A (integer)
Доступно с PHP 5.5.23 и PHP 5.6.7 и cURL 7.18.0.
CURLPROXY_SOCKS5_HOSTNAME (integer)
Доступно с PHP 5.5.23 и PHP 5.6.7 и cURL 7.18.0.
CURLHEADER_SEPARATE (integer)
Доступно с PHP 7.0.7 и cURL 7.37.0.
CURLHEADER_UNIFIED (integer)
Доступно с PHP 7.0.7 и cURL 7.37.0.
CURLPROTO_SMB (integer)
Доступно с PHP 7.0.7 и cURL 7.40.0.
CURLPROTO_SMBS (integer)
Доступно с PHP 7.0.7 и cURL 7.40.0.


  • « Предопределенные константы
  • Простой пример использования 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);
curl_close($ch);
fclose($fp);
?>


cURL

Содержание

  • curl_close — Завершает сеанс cURL
  • curl_copy_handle — Копирует дескриптор cURL вместе со всеми его настройками
  • curl_errno — Возвращает код последней ошибки
  • curl_error — Возвращает строку с описанием последней ошибки текущего сеанса
  • curl_escape — Кодирует заданную строку как URL
  • curl_exec — Выполняет запрос cURL
  • curl_file_create — Создает объект CURLFile
  • curl_getinfo — Возвращает информацию об определенной операции
  • curl_init — Инициализирует сеанс cURL
  • curl_multi_add_handle — Добавляет обычный cURL дескриптор к набору cURL дескрипторов
  • curl_multi_close — Закрывает набор cURL дескрипторов
  • curl_multi_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 — Set an option for the cURL multi handle
  • curl_multi_strerror — Возвращает строку, описывающую ошибку
  • curl_pause — Приостановить и возобновить соединение
  • curl_reset — Сбросить все настройки обработчика сессии libcurl
  • curl_setopt_array — Устанавливает несколько параметров для сеанса cURL
  • curl_setopt — Устанавливает параметр для сеанса CURL
  • curl_share_close — Закрыть разделяемый обработчик cURL
  • curl_share_init — Инициализация разделяемого обработчика cURL
  • curl_share_setopt — Установить опции разделяемого обработчика cURL
  • curl_strerror — Получить текстовое описание для кода ошибки
  • curl_unescape — Раскодировать закодированную URL-строку
  • curl_version — Возвращает версию cURL


Завершает сеанс cURL

  • « cURL
  • curl_copy_handle »
  • PHP Manual
  • cURL
  • Завершает сеанс cURL

curl_close

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_close — Завершает сеанс cURL

Описание

void curl_close ( resource $ch )

Завершает сеанс cURL и освобождает все ресурсы. Дескриптор ch также уничтожается.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Инициализация сеанса cURL и загрузка web-страницы

<?php
// создание нового ресурса cURL
$ch = curl_init();

// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>

Смотрите также

  • curl_init() - Инициализирует сеанс cURL
  • curl_multi_close() - Закрывает набор cURL дескрипторов


Копирует дескриптор cURL вместе со всеми его настройками

  • « curl_close
  • curl_errno »
  • PHP Manual
  • cURL
  • Копирует дескриптор cURL вместе со всеми его настройками

curl_copy_handle

(PHP 5, PHP 7)

curl_copy_handle — Копирует дескриптор cURL вместе со всеми его настройками

Описание

resource curl_copy_handle ( resource $ch )

Копирует дескриптор cURL сохраняя его настройки.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает новый дескриптор cURL.

Примеры

Пример #1 Копирование дескриптора cURL

<?php
// создание нового ресурса cURL
$ch = curl_init();

// установка URL и других соответствующих параметров
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);

// копирование дескриптора
$ch2 = curl_copy_handle($ch);

// загрузка URL (http://www.example.com/) и ее передача в браузер
curl_exec($ch2);

// закрытие ресурсов cURL и освобождение системных ресурсов
curl_close($ch2);
curl_close($ch);
?>


Возвращает код последней ошибки

  • « curl_copy_handle
  • curl_error »
  • PHP Manual
  • cURL
  • Возвращает код последней ошибки

curl_errno

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

curl_errno — Возвращает код последней ошибки

Описание

int curl_errno ( resource $ch )

Возвращает код ошибки последней операции cURL.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает номер ошибки или 0 (ноль), если ошибки не произошло.

Примеры

Пример #1 Пример использования curl_errno()

<?php
// Создаем дескриптор curl к несуществующему адресу
$ch = curl_init('http://404.php.net/');

// Запускаем
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);

// Проверяем наличие ошибки
if(curl_errno($ch))
{
    echo 'Ошибка curl: ' . curl_error($ch);
}

// Закрываем дескриптор
curl_close($ch);
?>

Смотрите также

  • curl_error() - Возвращает строку с описанием последней ошибки текущего сеанса
  • » Коды ошибок cURL


Возвращает строку с описанием последней ошибки текущего сеанса

  • « curl_errno
  • curl_escape »
  • PHP Manual
  • cURL
  • Возвращает строку с описанием последней ошибки текущего сеанса

curl_error

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

curl_error — Возвращает строку с описанием последней ошибки текущего сеанса

Описание

string curl_error ( resource $ch )

Возвращает понятное сообщение об ошибке для последней операции cURL.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает сообщение об ошибке или '' (пустую строку), если ошибки не произошло.

Примеры

Пример #1 Пример использования curl_error()

<?php
// Создаем дескриптор curl к несуществующему адресу
$ch = curl_init('http://404.php.net/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if(curl_exec($ch) === false)
{
    echo 'Ошибка curl: ' . curl_error($ch);
}
else
{
    echo 'Операция завершена без каких-либо ошибок';
}

// Закрываем дескриптор
curl_close($ch);
?>

Смотрите также

  • curl_errno() - Возвращает код последней ошибки
  • » Коды ошибок cURL


Кодирует заданную строку как URL

  • « curl_error
  • curl_exec »
  • PHP Manual
  • cURL
  • Кодирует заданную строку как URL

curl_escape

(PHP 5 >= 5.5.0, PHP 7)

curl_escape — Кодирует заданную строку как URL

Описание

string curl_escape ( resource $ch , string $str )

Кодирует строку согласно » RFC 3986.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

str

Строка для кодирования.

Возвращаемые значения

Возвращает экранированную строку или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования curl_escape()

<?php
// Создаем обработчик curl
$ch = curl_init();

// Экранируем строку, которую хотим передать методом GET
$location = curl_escape($ch, 'Hofbrauhaus / Munchen');
// Результат: Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen

// Собираем URL по частям
$url = "http://example.com/add_location.php?location={$location}";
// Result: http://example.com/add_location.php?location=Hofbr%C3%A4uhaus%20%2F%20M%C3%BCnchen

// Посылаем запрос HTTP и закрываем обработчик
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
?>

Смотрите также

  • curl_unescape() - Раскодировать закодированную URL-строку
  • urlencode() - URL-кодирование строки
  • rawurlencode() - URL-кодирование строки согласно RFC 3986
  • » RFC 3986


Выполняет запрос cURL

  • « curl_escape
  • curl_file_create »
  • PHP Manual
  • cURL
  • Выполняет запрос cURL

curl_exec

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_exec — Выполняет запрос cURL

Описание

mixed curl_exec ( resource $ch )

Выполняет запрос cURL.

Эта функция должна вызываться после инициализации сеанса и установки всех необходимых параметров.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Однако, если установлена опция CURLOPT_RETURNTRANSFER, при успешном завершении будет возвращен результат, а при неудаче - FALSE.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Загрузка web-страницы

<?php
// создание нового cURL ресурса
$ch = curl_init();

// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>

Смотрите также

  • curl_multi_exec() - Запускает под-соединения текущего дескриптора cURL


Создает объект CURLFile

  • « curl_exec
  • curl_getinfo »
  • PHP Manual
  • cURL
  • Создает объект CURLFile

curl_file_create

(PHP 5 >= 5.5.0, PHP 7)

curl_file_create — Создает объект CURLFile

Описание

Эта функция является псевдонимом: CURLFile::__construct()


Возвращает информацию об определенной операции

  • « curl_file_create
  • curl_init »
  • PHP Manual
  • cURL
  • Возвращает информацию об определенной операции

curl_getinfo

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

curl_getinfo — Возвращает информацию об определенной операции

Описание

mixed curl_getinfo ( resource $ch [, int $opt ] )

Возвращает информацию о последней операции.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

opt

Одна из перечисленных констант:

  • CURLINFO_EFFECTIVE_URL - Последний использованный URL
  • CURLINFO_HTTP_CODE - Последний полученный HTTP код
  • CURLINFO_FILETIME - Удаленная (серверная) дата загруженного документа, если включена опция CURLOPT_FILETIME; Если получено -1, значит это время неизвестно
  • CURLINFO_TOTAL_TIME - Полное время выполнения последней операции в секундах
  • CURLINFO_NAMELOOKUP_TIME - Время разрешения имени сервера в секундах
  • CURLINFO_CONNECT_TIME - Время, затраченное на установку соединения, в секундах
  • CURLINFO_PRETRANSFER_TIME - Время, прошедшее от начала операции до готовности к фактической передаче данных, все кундах
  • CURLINFO_STARTTRANSFER_TIME - Время, прошедшее от начала операции до момента передачи первого байта данных, в секундах
  • CURLINFO_REDIRECT_COUNT - Число перенаправлений, с включенной опцией CURLOPT_FOLLOWLOCATION
  • CURLINFO_REDIRECT_TIME - Общее время в секундах, затраченное на перенаправления, с включенной опцией CURLOPT_FOLLOWLOCATION
  • CURLINFO_REDIRECT_URL - При отключенной опции CURLOPT_FOLLOWLOCATION: URL перенаправления, найденный в прошлой итерации, который необходимо запрашивать вручную. Если опция CURLOPT_FOLLOWLOCATION включена: пустое значение. URL перенаправления в этом случае доступен в CURLINFO_EFFECTIVE_URL
  • CURLINFO_PRIMARY_IP - IP адрес последнего соединения
  • CURLINFO_PRIMARY_PORT - Порт получателя последнего соединения
  • CURLINFO_LOCAL_IP - Локальный (исходящий) IP адрес последнего соединения
  • CURLINFO_LOCAL_PORT - Локальный (исходящий) порт последнего соединения
  • CURLINFO_SIZE_UPLOAD - Общее количество байт при закачке
  • CURLINFO_SIZE_DOWNLOAD - Общее количество байт при загрузке
  • CURLINFO_SPEED_DOWNLOAD - Средняя скорость загрузки
  • CURLINFO_SPEED_UPLOAD - Средняя скорость закачки
  • CURLINFO_HEADER_SIZE - Суммарный размер всех полученных заголовков
  • CURLINFO_HEADER_OUT - Посылаемая строка запроса. Для работы этого параметра, добавьте опцию CURLINFO_HEADER_OUT к дескриптору с помощью вызова curl_setopt()
  • CURLINFO_REQUEST_SIZE - Суммарный размер всех отправленных запросов, в настоящее время используется только для HTTP запросов
  • CURLINFO_SSL_VERIFYRESULT - Результат проверки SSL сертификата, запрошенной с помощью установки параметра CURLOPT_SSL_VERIFYPEER
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD - размер скачанных данных, прочитанный из заголовка Content-Length:
  • CURLINFO_CONTENT_LENGTH_UPLOAD - Размер закачиваемых данных
  • CURLINFO_CONTENT_TYPE - Содержимое полученного заголовка Content-Type:, или NULL, если сервер не послал правильный заголовок Content-Type:
  • CURLINFO_PRIVATE - Внутренние данные, связанные с данным cURL обработчиком, ранее установленные с помощью опции CURLOPT_PRIVATE в функции curl_setopt()
  • CURLINFO_RESPONSE_CODE - Последний код возврата
  • CURLINFO_HTTP_CONNECTCODE - Код ответа операции CONNECT
  • CURLINFO_HTTPAUTH_AVAIL - Битовая маска, показывающая возможные методы аутентификации, доступные при предыдущем ответе
  • CURLINFO_PROXYAUTH_AVAIL - Битовая маска, показывающая возможные методы аутентификации на proxy, доступные при предыдущем ответе
  • 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 - Info on unmet time conditional
  • CURLINFO_RTSP_CLIENT_CSEQ - Следующий RTSP клиентского CSeq
  • CURLINFO_RTSP_CSEQ_RECV - Недавно полученный CSeq
  • CURLINFO_RTSP_SERVER_CSEQ - Следующий RTSP серверного CSeq
  • CURLINFO_RTSP_SESSION_ID - ID сессии RTSP

Возвращаемые значения

Если параметр opt указан, то возвращается его значение. Иначе, возвращается ассоциативный массив со следующими индексами (которые соответствуют значениям аргумента opt), или FALSE в случае ошибки:

  • "url"
  • "content_type"
  • "http_code"
  • "header_size"
  • "request_size"
  • "filetime"
  • "ssl_verify_result"
  • "redirect_count"
  • "total_time"
  • "namelookup_time"
  • "connect_time"
  • "pretransfer_time"
  • "size_upload"
  • "size_download"
  • "speed_download"
  • "speed_upload"
  • "download_content_length"
  • "upload_content_length"
  • "starttransfer_time"
  • "redirect_time"
  • "certinfo"
  • "primary_ip"
  • "primary_port"
  • "local_ip"
  • "local_port"
  • "redirect_url"
  • "request_header" (возвращается только при установленной опции CURLINFO_HEADER_OUT с помощью вызова curl_setopt() до выполнения запроса)
Учтите, что внутренние данные не добавляются в ассоциативный массив и должны получаться отдельно с помощью опции CURLINFO_PRIVATE.

Список изменений

Версия | Описание
5.5.0 | Добавлены CURLINFO_RESPONSE_CODE, CURLINFO_HTTP_CONNECTCODE, CURLINFO_HTTPAUTH_AVAIL, CURLINFO_PROXYAUTH_AVAIL, CURLINFO_OS_ERRNO, CURLINFO_NUM_CONNECTS, CURLINFO_SSL_ENGINES, CURLINFO_COOKIELIST, CURLINFO_FTP_ENTRY_PATH, CURLINFO_APPCONNECT_TIME, CURLINFO_CONDITION_UNMET, CURLINFO_RTSP_CLIENT_CSEQ, CURLINFO_RTSP_CSEQ_RECV, CURLINFO_RTSP_SERVER_CSEQ и CURLINFO_RTSP_SESSION_ID.
5.4.7 | Добавлены CURLINFO_PRIMARY_IP, CURLINFO_PRIMARY_PORT, CURLINFO_LOCAL_IP и CURLINFO_LOCAL_PORT.
5.3.7 | Добавлена CURLINFO_REDIRECT_URL.
5.3.0 | Добавлена CURLINFO_CERTINFO.
5.2.4 | Добавлена CURLINFO_PRIVATE.
5.1.3 | Добавлена CURLINFO_HEADER_OUT.

Примеры

Пример #1 Пример curl_getinfo()

<?php
// Создаем дескриптор cURL
$ch = curl_init('http://www.example.com/');

// Запускаем
curl_exec($ch);

// Проверяем наличие ошибок
if (!curl_errno($ch)) {
  $info = curl_getinfo($ch);
  echo 'Прошло ', $info['total_time'], ' секунд во время запроса к ', $info['url'], "\n";
}

// Закрываем дескриптор
curl_close($ch);
?>

Пример #2 Пример curl_getinfo() с параметром opt

<?php
// Создаем дескриптор cURL
$ch = curl_init('http://www.example.com/');

// Запускаем
curl_exec($ch);

// Проверяем наличие ошибок
if (!curl_errno($ch)) {
  switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
    case 200:  # OK
      break;
    default:
      echo 'Неожиданный код HTTP: ', $http_code, "\n";
  }
}

// Закрываем дескриптор
curl_close($ch);
?>

Примечания

Замечание:

Информация, собранная этой функцией, будет сохранена при дальнейшем использовании дескриптора. Это означает, что если статистика не будет перезаписана самой функцией, будет возвращаться информация по предыдущему запросу.


Инициализирует сеанс cURL

  • « curl_getinfo
  • curl_multi_add_handle »
  • PHP Manual
  • cURL
  • Инициализирует сеанс cURL

curl_init

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_init — Инициализирует сеанс cURL

Описание

resource curl_init ([ string $url = NULL ] )

Инициализирует новый сеанс cURL и возвращает дескриптор, который используется с функциями curl_setopt(), curl_exec() и curl_close().

Список параметров

url

Если указан, опция CURLOPT_URL будет автоматически установлена в значение этого аргумента. Вы можете вручную установить эту опцию с помощью функции curl_setopt().

Замечание:

Протокол file становится недоступным в cURL, если задана опция open_basedir.

Возвращаемые значения

Возвращает дескриптор cURL при удаче, и FALSE в случае ошибки.

Примеры

Пример #1 Инициализация нового сеанса cURL и загрузка web-страницы

<?php
// создание нового ресурса cURL
$ch = curl_init();

// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>

Смотрите также

  • curl_close() - Завершает сеанс cURL
  • curl_multi_init() - Создает набор cURL-дескрипторов


Добавляет обычный cURL дескриптор к набору cURL дескрипторов

  • « curl_init
  • curl_multi_close »
  • PHP Manual
  • cURL
  • Добавляет обычный cURL дескриптор к набору cURL дескрипторов

curl_multi_add_handle

(PHP 5, PHP 7)

curl_multi_add_handle — Добавляет обычный cURL дескриптор к набору cURL дескрипторов

Описание

int curl_multi_add_handle ( resource $mh , resource $ch )

Добавляет дескриптор ch к набору дескрипторов mh

Список параметров

mh

Мульти-дескриптор cURL, полученный из curl_multi_init().

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает 0 при успехе, или один из кодов ошибок CURLM_XXX.

Примеры

Пример #1 Пример использования curl_multi_add_handle()

This example will create two cURL handles, add them to a multi handle, and process them asynchronously.

<?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);

$running=null;
//запускаем дескрипторы
do {
    curl_multi_exec($mh,$running);
} while($running > 0);

//закрываем все дескрипторы
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_exec »
  • PHP Manual
  • cURL
  • Закрывает набор cURL дескрипторов

curl_multi_close

(PHP 5, PHP 7)

curl_multi_close — Закрывает набор cURL дескрипторов

Описание

void curl_multi_close ( resource $mh )

Закрывает набор cURL дескрипторов.

Список параметров

mh

Мульти-дескриптор cURL, полученный из curl_multi_init().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования curl_multi_close()

Этот пример создаст два дескриптора cURL, добавит их в набор дескрипторов, а затем запустит их асинхронно.

<?php
// создаем оба ресурса cURL
$ch1 = curl_init();
$ch2 = curl_init();

// устанавливаем URL и другие соответствующие опции
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//создаем набор дескрипторов cURL
$mh = curl_multi_init();

//добавляем два дескриптора
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$running=null;
//запускаем дескрипторы
do {
    curl_multi_exec($mh,$running);
} while ($running > 0);

//закрываем все дескрипторы
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_getcontent »
  • PHP Manual
  • cURL
  • Запускает под-соединения текущего дескриптора cURL

curl_multi_exec

(PHP 5, PHP 7)

curl_multi_exec — Запускает под-соединения текущего дескриптора cURL

Описание

int curl_multi_exec ( resource $mh , int &$still_running )

Обрабатывает каждый дескриптор в стеке. Этот метод может быть вызван вне зависимости от необходимости дескриптора читать или записывать данные.

Список параметров

mh

Мульти-дескриптор cURL, полученный из curl_multi_init().

still_running

Ссылка на флаг, указывающий, идут ли еще какие-либо действия.

Возвращаемые значения

Код cURL, указанный в "Предопределенных константах" cURL.

Замечание:

Здесь возвращаются ошибки, относящиеся только ко всему стеку. Проблемы все еще могут произойти на индивидуальных запросах, даже когда эта функция возвращает CURLM_OK.

Примеры

Пример #1 Пример использования curl_multi_exec()

Этот пример создаст два дескриптора cURL, добавит их в набор дескрипторов, а затем запустит их асинхронно.

<?php
// создаем оба ресурса cURL
$ch1 = curl_init();
$ch2 = curl_init();

// устанавливаем URL и другие соответствующие опции
curl_setopt($ch1, CURLOPT_URL, "http://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);

$active = null;
//запускаем дескрипторы
do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
        do {
            $mrc = curl_multi_exec($mh, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
}

//закрываем дескрипторы
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

Смотрите также

  • curl_multi_init() - Создает набор cURL-дескрипторов
  • curl_multi_select() - Ждет активности на любом curl_multi соединении
  • curl_exec() - Выполняет запрос cURL


Возвращает результат операции, если была установлена опция CURLOPT_RETURNTRANSFER

  • « curl_multi_exec
  • curl_multi_info_read »
  • PHP Manual
  • cURL
  • Возвращает результат операции, если была установлена опция CURLOPT_RETURNTRANSFER

curl_multi_getcontent

(PHP 5, PHP 7)

curl_multi_getcontent — Возвращает результат операции, если была установлена опция CURLOPT_RETURNTRANSFER

Описание

string curl_multi_getcontent ( resource $ch )

Если для определенного дескриптора была установлена опция CURLOPT_RETURNTRANSFER, то эта функция вернет содержимое этого cURL дескриптора в виде строки.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Возвращает содержимое cURL дескриптора, если была использована опция CURLOPT_RETURNTRANSFER.

Смотрите также

  • curl_multi_init() - Создает набор cURL-дескрипторов


Возвращает информацию о текущих операциях

  • « curl_multi_getcontent
  • curl_multi_init »
  • PHP Manual
  • cURL
  • Возвращает информацию о текущих операциях

curl_multi_info_read

(PHP 5, PHP 7)

curl_multi_info_read — Возвращает информацию о текущих операциях

Описание

array curl_multi_info_read ( resource $mh [, int &$msgs_in_queue = NULL ] )

Опрашивает набор дескрипторов о наличии сообщений или информации от индивидуальных передач. Сообщения могут включать такую информацию как код ошибки передачи или просто факт завершения передачи.

Повторяющиеся вызовы этой функции будут каждый раз возвращать новый результат, пока не будет возвращено FALSE в качестве сигнала окончания сообщений. Целое число, содержащееся в msgs_in_queue, указывает количество оставшихся сообщений после вызова данной функции.

Внимание

Данные, на которые указывает возвращаемый ресурс, будут затерты вызовом curl_multi_remove_handle().

Список параметров

mh

Мульти-дескриптор cURL, полученный из curl_multi_init().

msgs_in_queue

Количество оставшихся сообщений в очереди

Возвращаемые значения

В случае успеха, возвращает ассоциативный массив сообщений, или FALSE в случае неудачи.

Содержимое возвращаемого массива
Ключ: | Значение:
msg | Константа CURLMSG_DONE. Остальные возвращаемые значения пока недоступны.
result | Одна из констант CURLE_*. Если все OK, результатом будет константа CURLE_OK.
handle | Ресурс типа curl, указывающий на дескриптор, к которому он относится.

Примеры

Пример #1 Пример использования curl_multi_info_read()

<?php

$urls = array(
   "http://www.cnn.com/",
   "http://www.bbc.co.uk/",
   "http://www.yahoo.com/"
);

$mh = curl_multi_init();

foreach ($urls as $i => $url) {
    $conn[$i] = curl_init($url);
    curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
    curl_multi_add_handle($mh, $conn[$i]);
}

do {
    $status = curl_multi_exec($mh, $active);
    $info = curl_multi_info_read($mh);
    if (false !== $info) {
        var_dump($info);
    }
} while ($status === CURLM_CALL_MULTI_PERFORM || $active);

foreach ($urls as $i => $url) {
    $res[$i] = curl_multi_getcontent($conn[$i]);
    curl_close($conn[$i]);
}

var_dump(curl_multi_info_read($mh));

?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(5) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(7) of type (curl)
}
array(3) {
  ["msg"]=>
  int(1)
  ["result"]=>
  int(0)
  ["handle"]=>
  resource(6) of type (curl)
}
bool(false)

Список изменений

Версия | Описание
5.2.0 | Добавлен параметр msgs_in_queue.

Смотрите также

  • curl_multi_init() - Создает набор cURL-дескрипторов


Создает набор cURL-дескрипторов

  • « curl_multi_info_read
  • curl_multi_remove_handle »
  • PHP Manual
  • cURL
  • Создает набор cURL-дескрипторов

curl_multi_init

(PHP 5, PHP 7)

curl_multi_init — Создает набор cURL-дескрипторов

Описание

resource curl_multi_init ( void )

Позволяет асинхронную обработку множества cURL-дескрипторов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает набор cURL-дескрипторов в случае успеха, или FALSE в случае неудачи.

Примеры

Пример #1 Пример использования curl_multi_init()

Этот пример создаст два дескриптора cURL, добавит их в набор дескрипторов, а затем запустит их асинхронно.

<?php
// создаем оба ресурса cURL
$ch1 = curl_init();
$ch2 = curl_init();

// устанавливаем URL и другие соответствующие опции
curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);

//создаем набор дескрипторов cURL
$mh = curl_multi_init();

//добавляем два дескриптора
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);

$active = null;
//запускаем дескрипторы
do {
    $mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
        do {
            $mrc = curl_multi_exec($mh, $active);
        } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
}

//закрываем все дескрипторы
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);

?>

Смотрите также

  • curl_init() - Инициализирует сеанс cURL
  • curl_multi_close() - Закрывает набор cURL дескрипторов


Удаляет cURL дескриптор из набора cURL дескрипторов

  • « curl_multi_init
  • curl_multi_select »
  • PHP Manual
  • cURL
  • Удаляет cURL дескриптор из набора cURL дескрипторов

curl_multi_remove_handle

(PHP 5, PHP 7)

curl_multi_remove_handle — Удаляет cURL дескриптор из набора cURL дескрипторов

Описание

int curl_multi_remove_handle ( resource $mh , resource $ch )

Удаляет указанный дескриптор ch из указанного набора дескрипторов mh. После того, как дескриптор ch удален, его можно снова совершенно легально использовать в функции curl_exec(). Удаление дескриптора ch во время использования также остановит текущую передачу, идущую на этом дескрипторе.

Список параметров

mh

Мульти-дескриптор cURL, полученный из curl_multi_init().

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

В случае успеха возвращает 0 или одну из констант CURLM_XXX, где XXX - код ошибки.

Смотрите также

  • curl_init() - Инициализирует сеанс cURL
  • curl_multi_init() - Создает набор cURL-дескрипторов
  • curl_multi_add_handle() - Добавляет обычный cURL дескриптор к набору cURL дескрипторов


Ждет активности на любом curl_multi соединении

  • « curl_multi_remove_handle
  • curl_multi_setopt »
  • PHP Manual
  • cURL
  • Ждет активности на любом curl_multi соединении

curl_multi_select

(PHP 5, PHP 7)

curl_multi_select — Ждет активности на любом curl_multi соединении

Описание

int curl_multi_select ( resource $mh [, float $timeout = 1.0 ] )

Блокирует выполнение скрипта, пока какое-либо из curl_multi соединений не станет активным.

Список параметров

mh

Мульти-дескриптор cURL, полученный из curl_multi_init().

timeout

Время, в секундах, для ожидания ответа.

Возвращаемые значения

В случае успеха, возвращает количество дескрипторов, содержащихся в наборах дескрипторов. Может вернуть 0, если не было активности ни на одном дескрипторе. В случае неудачи эта функция вернет -1 при ошибке выборки (из нижележащего системного вызова выборки).

Смотрите также

  • curl_multi_init() - Создает набор cURL-дескрипторов


Set an option for the cURL multi handle

  • « curl_multi_select
  • curl_multi_strerror »
  • PHP Manual
  • cURL
  • Set an option for the cURL multi handle

curl_multi_setopt

(PHP 5 >= 5.5.0, PHP 7)

curl_multi_setopt — Set an option for the cURL multi handle

Описание

bool curl_multi_setopt ( resource $mh , int $option , mixed $value )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

mh

option

One of the CURLMOPT_* constants.

value

The value to be set on option.

value should be an int for the following values of the option parameter:

Option | Set value to
CURLMOPT_PIPELINING | Pass 1 to enable or 0 to disable. Enabling pipelining on a multi handle will make it attempt to perform HTTP Pipelining as far as possible for transfers using this handle. This means that if you add a second request that can use an already existing connection, the second request will be "piped" on the same connection. As of cURL 7.43.0 you can also pass 2 to try to multiplex the new transfer over an existing HTTP/2 connection if possible. Instead of integer literals, you can also use the CURLPIPE_* constants if available.
CURLMOPT_MAXCONNECTS | Pass a number that will be used as the maximum amount of simultaneously open connections that libcurl may cache. By default the size will be enlarged to fit four times the number of handles added via curl_multi_add_handle(). When the cache is full, curl closes the oldest one in the cache to prevent the number of open connections from increasing.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE | Pass a number that specifies the chunk length threshold for pipelining in bytes.
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE | Pass a number that specifies the size threshold for pipelining penalty in bytes.
CURLMOPT_MAX_HOST_CONNECTIONS | Pass a number that specifies the maximum number of connections to a single host.
CURLMOPT_MAX_PIPELINE_LENGTH | Pass a number that specifies the maximum number of requests in a pipeline.
CURLMOPT_MAX_TOTAL_CONNECTIONS | Pass a number that specifies the maximum number of simultaneously open connections.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.7 | Introduced CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH and CURLMOPT_MAX_TOTAL_CONNECTIONS.


Возвращает строку, описывающую ошибку

  • « curl_multi_setopt
  • curl_pause »
  • PHP Manual
  • cURL
  • Возвращает строку, описывающую ошибку

curl_multi_strerror

(PHP 5 >= 5.5.0, PHP 7)

curl_multi_strerror — Возвращает строку, описывающую ошибку

Описание

string curl_multi_strerror ( int $errornum )

Возвращает текст сообщения об ошибке, соответствующей заданному коду ошибки CURLM.

Список параметров

errornum

Одна и констант » кодов ошибок CURLM.

Возвращаемые значения

Возвращает строку с описанием ошибки и NULL, если переданный код некорректен.

Примеры

Пример #1 Пример использования curl_multi_strerror()

<?php
// Создаем обработчики curl
$ch1 = curl_init("http://example.com"/);
$ch2 = curl_init("http://php.net/");

// Создаем множественный обработчик cURL
$mh = curl_multi_init();

// Add the handles to the multi handle
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);

// Запускаем множественный обработчик
do {
    $status = curl_multi_exec($mh, $active);
    // Проверяем на ошибки
    if($status > 0) {
        // Выводим сообщение об ошибке
        echo "ОШИБКА!\n " . curl_multi_strerror($status);
    }
} while ($status === CURLM_CALL_MULTI_PERFORM || $active);
?>

Смотрите также

  • curl_strerror() - Получить текстовое описание для кода ошибки
  • » коды ошибок cURL


Приостановить и возобновить соединение

  • « curl_multi_strerror
  • curl_reset »
  • PHP Manual
  • cURL
  • Приостановить и возобновить соединение

curl_pause

(PHP 5 >= 5.5.0, PHP 7)

curl_pause — Приостановить и возобновить соединение

Описание

int curl_pause ( resource $ch , int $bitmask )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

bitmask

Одна из констант CURLPAUSE_*.

Возвращаемые значения

Возвращает один из кодов возврата (CURLE_OK если ошибок нет).


Сбросить все настройки обработчика сессии libcurl

  • « curl_pause
  • curl_setopt_array »
  • PHP Manual
  • cURL
  • Сбросить все настройки обработчика сессии libcurl

curl_reset

(PHP 5 >= 5.5.0, PHP 7)

curl_reset — Сбросить все настройки обработчика сессии libcurl

Описание

void curl_reset ( resource $ch )

Эта функция переинициализирует все настройки заданного обработчика сессии cURL значениями по умолчанию.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования curl_reset()

<?php
// Создаем обработчик curl
$ch = curl_init();

// Устанавливаем опцию CURLOPT_USERAGENT
curl_setopt($ch, CURLOPT_USERAGENT, "My test user-agent");

// Сбрасываем все установленные опции
curl_reset($ch);

// Посылаем запрос HTTP
curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
curl_exec($ch); // установленный ранее user-agent сброшен

// Закрываем обработчик
curl_close($ch);
?>

Примечания

Замечание:

curl_reset() also resets the URL given as the curl_init() parameter.

Смотрите также

  • curl_setopt() - Устанавливает параметр для сеанса CURL


Устанавливает несколько параметров для сеанса cURL

  • « curl_reset
  • curl_setopt »
  • PHP Manual
  • cURL
  • Устанавливает несколько параметров для сеанса cURL

curl_setopt_array

(PHP 5 >= 5.1.3, PHP 7)

curl_setopt_array — Устанавливает несколько параметров для сеанса cURL

Описание

bool curl_setopt_array ( resource $ch , array $options )

Устанавливает несколько параметров для сеанса cURL. Эта функция полезна при установке большого количества cURL-параметров без необходимости постоянно вызывать curl_setopt().

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

options

Массив (array), определяющий устанавливаемые параметры и их значения. Ключи должны быть корректными константами для функции curl_setopt() или их целочисленными эквивалентами.

Возвращаемые значения

Возвращает TRUE, если все параметры были успешно установлены. Если не удалось успешно установить какой-либо параметр, немедленно возвращается значение FALSE, а последующие параметры в массиве options будут проигнорированы.

Примеры

Пример #1 Инициализация новой сессии cURL и загрузка веб-страницы

<?php
// создание нового ресурса cURL
$ch = curl_init();

// установка set URL и других соответствующих параметров
$options = array(CURLOPT_URL => 'http://www.example.com/',
                 CURLOPT_HEADER => false
                );

curl_setopt_array($ch, $options);

// загрузка URL и ее выдача в браузер
curl_exec($ch);

// закрытие ресурса cURL и освобождение системных ресурсов
curl_close($ch);
?>

До версии PHP 5.1.3 вместо этой функции можно было использовать следующий код:

Пример #2 Наша собственная реализация curl_setopt_array()

<?php
if (!function_exists('curl_setopt_array')) {
   function curl_setopt_array(&$ch, $curl_options)
   {
       foreach ($curl_options as $option => $value) {
           if (!curl_setopt($ch, $option, $value)) {
               return false;
           }
       }
       return true;
   }
}
?>

Примечания

Замечание:

Как и при работе с curl_setopt(), передача массива в параметр CURLOPT_POST закодирует все данные с помощью multipart/form-data, тогда как передача URL-кодированной строки будет использовать кодировку application/x-www-form-urlencoded.

Смотрите также

  • curl_setopt() - Устанавливает параметр для сеанса CURL


Устанавливает параметр для сеанса CURL

  • « curl_setopt_array
  • curl_share_close »
  • PHP Manual
  • cURL
  • Устанавливает параметр для сеанса CURL

curl_setopt

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_setopt — Устанавливает параметр для сеанса CURL

Описание

bool curl_setopt ( resource $ch , int $option , mixed $value )

Устанавливает параметр для указанного сеанса cURL.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

option

Устанавливаемый параметр CURLOPT_XXX.

value

Значение параметра option.

Для следующих значений параметра option, параметр value должен быть типа bool:

Параметр | Устанавливаемое значение value | Замечания
CURLOPT_AUTOREFERER | TRUE для автоматической установки поля Referer: в запросах, перенаправленных заголовком Location:.
CURLOPT_BINARYTRANSFER | TRUE для возврата необработанного ответа при использовании константы CURLOPT_RETURNTRANSFER. | С PHP 5.1.3 эта опция больше не требуется: необработанный вывод всегда возвращается при использовании опции CURLOPT_RETURNTRANSFER.
CURLOPT_COOKIESESSION | TRUE для указания текущему сеансу начать новую "сессию" cookies. Это заставит libcurl проигнорировать все "сессионные" cookies, которые она должна была бы загрузить, полученные из предыдущей сессии. По умолчанию, libcurl всегда сохраняет и загружает все cookies, вне зависимости от того, являются ли они "сессионными" или нет. "Сессионные" cookies - это cookies без срока истечения, которые должны существовать только для текущей "сессии".
CURLOPT_CERTINFO | TRUE для вывода информации о сертификате SSL в поток STDERR при безопасных соединениях. | Добавлена в cURL 7.19.1. Доступна, начиная с версии PHP 5.3.2. Для корректной работы требует включенной опции CURLOPT_VERBOSE.
CURLOPT_CONNECT_ONLY | TRUE сообщает библиотеке, чтобы она провела необходимые аутентификацию прокси и настройку соединения, но не передавала данные. Эта опция реализована для HTTP, SMTP и POP3. | Добавлена в 7.15.2. Доступна с версии PHP 5.5.0.
CURLOPT_CRLF | TRUE для преобразования концов строк Unix в CRLF.
CURLOPT_DNS_USE_GLOBAL_CACHE | TRUE для использования глобального кэша DNS. Этот параметр не является потокобезопасным и по умолчанию включен.
CURLOPT_FAILONERROR | TRUE для подробного отчета при неудаче, если полученный HTTP-код больше или равен 400. Поведение по умолчанию возвращает страницу как обычно, игнорируя код.
CURLOPT_SSL_FALSESTART | TRUE для разрешения ложного старта TLS. | Добавлено cURL 7.42.0. Доступно с PHP 7.0.7.
CURLOPT_FILETIME | TRUE для попытки получения даты модификации удаленного документа. Это значение может быть получено с помощью параметра CURLINFO_FILETIME из функции curl_getinfo().
CURLOPT_FOLLOWLOCATION | TRUE для следования любому заголовку "Location: ", отправленному сервером в своем ответе (учтите, что это происходит рекурсивно, PHP будет следовать за всеми посылаемыми заголовками "Location: ", за исключением случая, когда установлена константа CURLOPT_MAXREDIRS).
CURLOPT_FORBID_REUSE | TRUE для принудительного закрытия соединения после завершения его обработки так, чтобы его нельзя было использовать повторно.
CURLOPT_FRESH_CONNECT | TRUE для принудительного использования нового соединения вместо закэшированного.
CURLOPT_FTP_USE_EPRT | TRUE для использования EPRT (и LPRT) при активных FTP загрузках. Используйте FALSE для того, чтобы отключить EPRT и LPRT и использовать только PORT.
CURLOPT_FTP_USE_EPSV | TRUE для первоначальной пробы команды EPSV при FTP передачах. Если команда не удалась, будет произведен обратный откат к PASV. Установите в FALSE для отключения EPSV.
CURLOPT_FTP_CREATE_MISSING_DIRS | TRUE для создания отсутствующих директорий, если FTP-операция обнаруживает несуществующий путь.
CURLOPT_FTPAPPEND | TRUE для записи в конец удаленного файла, вместо перезаписывания.
CURLOPT_TCP_NODELAY | TRUE для отключения алгоритма Нейгла, который пытается уменьшить количество мелких пакетов в сети. | Доступна с версии PHP 5.2.1 для версий собранных с libcurl 7.11.2 или новее.
CURLOPT_FTPASCII | Псевдоним CURLOPT_TRANSFERTEXT. Используйте его вместо этого.
CURLOPT_FTPLISTONLY | TRUE для возврата только списка имен из FTP директории.
CURLOPT_HEADER | TRUE для включения заголовков в вывод.
CURLINFO_HEADER_OUT | TRUE для отслеживания строки запроса дескриптора. | Доступен, начиная с версии PHP 5.1.3. Префикс CURLINFO_ употреблен специально.
CURLOPT_HTTPGET | TRUE для сброса метода HTTP-запроса в метод GET. Так как GET используется по умолчанию, этот параметр необходим только в случае, если метод запроса был ранее изменен.
CURLOPT_HTTPPROXYTUNNEL | TRUE для туннелирования через указанный HTTP-прокси.
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 процессу. Этот параметр включен по умолчанию в многопоточных SAPIs для корректной работы таймаут параметров. | Добавлен в версии cURL 7.10.
CURLOPT_PATH_AS_IS | TRUE для игнорирования последовательностей точка точка. | Добавлено в cURL 7.42.0. Доступно с PHP 7.0.7.
CURLOPT_PIPEWAIT | TRUE для ожидания конвеера/мультиплексирования. | Добавлено в cURL 7.43.0. Доступно с PHP 7.0.7.
CURLOPT_POST | TRUE для использования обычного HTTP POST. Данный метод POST использует обычный application/x-www-form-urlencoded, обычно используемый в HTML-формах.
CURLOPT_PUT | TRUE для загрузки файла методом HTTP PUT. Используемый файл должен быть установлен с помощью параметров CURLOPT_INFILE и CURLOPT_INFILESIZE.
CURLOPT_RETURNTRANSFER | TRUE для возврата результата передачи в качестве строки из curl_exec() вместо прямого вывода в браузер.
CURLOPT_SAFE_UPLOAD | TRUE для отключения поддержки префикса @ для загружаемых файлов в CURLOPT_POSTFIELDS, который означает, что значения, переданные с @ могут безопасно передаваться в виде полей. Вместо префикса можно использовать опцию CURLFiled. | Добавлена в PHP 5.5.0 со значением по умолчанию FALSE. В PHP 5.6.0 стала по умолчанию равна TRUE.
CURLOPT_SASL_IR | TRUE для разрешения посылки инициирующего ответа в первом пакете. | Добавлено в cURL 7.31.10. Доступно с PHP 7.0.7.
CURLOPT_SSL_ENABLE_ALPN | FALSE для запрещения ALPN в SSL handshake (если на бэкенде SSL libcurl собран с ее поддержкой), это можно использовать при общении http2. | Добавлено в cURL 7.36.0. Доступно с PHP 7.0.7.
CURLOPT_SSL_ENABLE_NPN | FALSE для запрещения ALPN в SSL handshake (если на бэкенде SSL libcurl собран с ее поддержкой), это можно использовать при общении http2. | Добавлено в cURL 7.36.0. Доступно с PHP 7.0.7.
CURLOPT_SSL_VERIFYPEER | FALSE для остановки cURL от проверки сертификата узла сети. Альтернативные сверяемые сертификаты могут быть указаны с помощью параметра CURLOPT_CAINFO или директории с сертификатами, указываемой параметром CURLOPT_CAPATH. | По умолчанию равно TRUE начиная с версии cURL 7.10. Дистрибутив по умолчанию устанавливается начиная с версии cURL 7.10.
CURLOPT_SSL_VERIFYSTATUS | TRUE для проверки статуса сертификата. | Добавлено в cURL 7.41.0. Доступно с PHP 7.0.7.
CURLOPT_TCP_FASTOPEN | TRUE для разрешения TCP Fast Open. | Добавлено в cURL 7.49.0. Доступно с PHP 7.0.7.
CURLOPT_TFTP_NO_OPTIONS | TRUE для запрета посылки запроса TFTP опций. | Добавлено в cURL 7.48.0. Доступно с PHP 7.0.7.
CURLOPT_TRANSFERTEXT | TRUE для использования ASCII режима при FTP передачах. При использовании LDAP данные возвращаются простым текстом вместо HTML. В Windows системах поток STDOUT не устанавливается в бинарный режим.
CURLOPT_UNRESTRICTED_AUTH | TRUE для продолжения посылки логина и пароля при редиректах (при использовании CURLOPT_FOLLOWLOCATION), даже при изменении имени хоста.
CURLOPT_UPLOAD | TRUE для подготовки к загрузке файла на сервер.
CURLOPT_VERBOSE | TRUE для вывода дополнительной информации. Записывает вывод в поток STDERR, или файл, указанный параметром CURLOPT_STDERR.

Для следующих значений параметра option, параметр value должен быть типа integer:

Параметр | Устанавливаемое значение value | Замечания
CURLOPT_BUFFERSIZE | Размер буфера, используемого при каждом чтении. Однако, нет никакой гарантии что данный запрос будет завершен. | Добавлен в версии cURL 7.10.
CURLOPT_CLOSEPOLICY Одна из констант CURLCLOSEPOLICY_*.

Замечание:

Эта опция устарела, так как никогда не была реализована в cURL и не работала.

Удалена в PHP 5.6.0.
CURLOPT_CONNECTTIMEOUT | Количество секунд ожидания при попытке соединения. Используйте 0 для бесконечного ожидания.
CURLOPT_CONNECTTIMEOUT_MS | Количество миллисекунд ожидания при попытке соединения. Используйте 0 для бесконечного ожидания. Если библиотека libcurl скомпилирована с использованием стандартного системного преобразователя имен, то соединение будет по-прежнему использовать полносекундное ожидание в качестве тайм-аута с минимально допустимым тайм-аутом в 1 секунду. | Добавлен в версии cURL 7.16.2. Доступно, начиная с версии PHP 5.2.3.
CURLOPT_DNS_CACHE_TIMEOUT | Количество секунд, в течение которых в памяти хранятся DNS-записи. По умолчанию этот параметр равен 120 (2 минуты).
CURLOPT_EXPECT_100_TIMEOUT_MS | Таймаут для Expect: 100-continue запросов в миллисекундах. По умолчанию 1000 миллисекунд. | Добавлено в cURL 7.36.0. Доступно с PHP 7.0.7.
CURLOPT_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).
CURLOPT_HTTPAUTH

Используемые HTTP методы авторизации. Используемые параметры: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY, and CURLAUTH_ANYSAFE.

Можно использовать побитовый оператор | (или) для комбинации нескольких методов вместе. В этом случае cURL опросит сервер на предмет поддерживаемых методов авторизации и выберет лучший из них.

CURLAUTH_ANY - это псевдоним CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLAUTH_ANYSAFE - это псевдоним CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM.

CURLOPT_INFILESIZE | Ожидаемый размер файла, в байтах, при загрузке файла на удаленный сервер. Учтите, что использование этой опции не остановит дальнейшую посылку данных, превышающих это значение, так как посылаемые данные зависят от результата CURLOPT_READFUNCTION.
CURLOPT_LOW_SPEED_LIMIT | Верхний порог скорости передачи данных, в байтах в секунду. Проверка происходит в течение CURLOPT_LOW_SPEED_TIME секунд, после чего PHP считает передачу слишком медленной и прерывает ее.
CURLOPT_LOW_SPEED_TIME | Максимальное количество секунд, в течение которых скорость передачи не должна превышать CURLOPT_LOW_SPEED_LIMIT, иначе PHP пометит передачу как слишком медленную и прекратит ее.
CURLOPT_MAXCONNECTS | Максимальное количество постоянных соединений. При достижении лимита для определения закрываемого соединения используется параметр CURLOPT_CLOSEPOLICY.
CURLOPT_MAXREDIRS | Максимальное количество принимаемых редиректов. Используйте этот параметр вместе с параметром CURLOPT_FOLLOWLOCATION.
CURLOPT_PORT | Альтернативный порт соединения.
CURLOPT_POSTREDIR | Битовая маска, содержащая 1 (301 Moved Permanently), 2 (302 Found) и 4 (303 See Other), чтобы задавать должен ли метод HTTP POST обрабатываться при включенной опции CURLOPT_FOLLOWLOCATION, если произошел указанный тип перенаправления. | Добавлено в cURL 7.19.1. Доступно с PHP 5.3.2.
CURLOPT_PROTOCOLS

Битовая маска из значений CURLPROTO_*. Данная маска ограничивает используемые libcurl протоколы. Это позволяет иметь libcurl, работающую с большим количеством протоколов, и ограничивать работу определенных передач только для некоторого их набора. По умолчанию, libcurl использует все поддерживаемые протоколы. Смотрите также параметр CURLOPT_REDIR_PROTOCOLS.

Корректные значения протоколов: CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_TFTP, CURLPROTO_ALL

Добавлен в версии cURL 7.19.4.
CURLOPT_PROXYAUTH | Методы авторизации HTTP, используемые при соединении с прокси-сервером. Используйте те же самые битовые маски, которые были описаны у параметра CURLOPT_HTTPAUTH. В данный момент для авторизации прокси поддерживаются только CURLAUTH_BASIC и CURLAUTH_NTLM. | Добавлен в версии cURL 7.10.7.
CURLOPT_PROXYPORT | Номер порта прокси-сервера, к которому осуществляется соединение. Этот номер также может быть установлен с помощью параметра CURLOPT_PROXY.
CURLOPT_PROXYTYPE | Либо CURLPROXY_HTTP (по умолчанию), либо CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A или CURLPROXY_SOCKS5_HOSTNAME. | Добавлен в версии cURL 7.10.
CURLOPT_REDIR_PROTOCOLS | Битовая маска из значений CURLPROTO_*. Данная битовая масска ограничивает протоколы используемые libcurl при редиректе (при включенном параметре CURLOPT_FOLLOWLOCATION). Это позволяет ограничить набор используемых протоколов при редиректах для некоторых передач. По умолчанию, libcurl поддерживает все протоколы, кроме FILE и SCP. В версиях, предшествовавших 7.19.4, перенаправление использовалось для всех протоколов без исключения. Смотрите также описание параметра CURLOPT_PROTOCOLS для списка констант со значениями протоколов. | Добавлен в версии cURL 7.19.4.
CURLOPT_RESUME_FROM | Смещение начала передачи, в байтах.
CURLOPT_SSL_OPTIONS | Устанавливает опции поведения SSL. Битовая маска из следующих констант: CURLSSLOPT_ALLOW_BEAST: не пытаться найти обходной путь для изъяна в безопасности протоколов SSL3 и TLS1.0. CURLSSLOPT_NO_REVOKE: не производить проверку, отозван ли сертификат, для тех SSL бэкендов, где оно есть. | Добавлено в cURL 7.25.0. Доступно с PHP 7.0.7.
CURLOPT_SSL_VERIFYHOST | Используйте 1 для проверки существования общего имени в сертификате SSL. Используйте 2 для проверки существования общего имени и также его совпадения с указанным хостом. В боевом окружении значение этого параметра должно быть 2 (установлено по умолчанию). | Поддержка значения 1 убрана в cURL 7.28.1
CURLOPT_SSLVERSION Одна из констант CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) или CURL_SSLVERSION_TLSv1_2 (6).

Замечание:

Рекомендуется не устанавливать эту опцию и оставить значение по умолчанию. Установка в 2 или 3 опасно и допускает применение известных уязвимостей в SSLv2 и SSLv3.

CURLOPT_STREAM_WEIGHT | Установить вес цифрового потока (число между 1 и 256). | Добавлено в cURL 7.46.0. Доступно с PHP 7.0.7.
CURLOPT_TIMECONDITION | Способ трактовки параметра CURLOPT_TIMEVALUE. Используйте CURL_TIMECOND_IFMODSINCE для возвращения страницы, только если она была изменена со времени, указанного в параметре CURLOPT_TIMEVALUE. Если страница не была изменена, вернется заголовок "304 Not Modified", подразумевая, что параметрCURLOPT_HEADER установлен в TRUE. Используйте CURL_TIMECOND_IFUNMODSINCE для обратного эффекта. По умолчанию используется CURL_TIMECOND_IFMODSINCE.
CURLOPT_TIMEOUT | Максимально позволенное количество секунд для выполнения cURL-функций.
CURLOPT_TIMEOUT_MS | Максимально позволенное количество миллисекунд для выполнения cURL-функций. Если libcurl собрана с использованием обычного системного распознавателя имен, то этот промежуток соединения все еще будет использовать секундное округление таймаутов, с минимально разрешенным таймаутом в одну секунду. | Добавлен в версии cURL 7.16.2. Доступен, начиная с версии PHP 5.2.3.
CURLOPT_TIMEVALUE | Количество секунд, начиная с 1 января 1970 года. Это время будет использовано параметром CURLOPT_TIMECONDITION. По умолчанию, используется параметр CURL_TIMECOND_IFMODSINCE.
CURLOPT_MAX_RECV_SPEED_LARGE | Если скорость скачки превысит это значение (указанное в байтах в секунду) в среднем в течение всей передачи, то скачка будет приостановлена для поддержания средней скорости меньше либо равной данному параметру. По умолчанию скорость не ограничивается. | Добавлен в версии cURL 7.15.5. Доступен, начиная с версии PHP 5.4.0.
CURLOPT_MAX_SEND_SPEED_LARGE | Если загрузка на сервер превысит это значение (указанное в байтах в секунду) в среднем в течение всей передачи, то загрузка будет приостановлена для поддержания средней скорости меньше либо равной данному параметру. По умолчанию скорость не ограничивается. | Добавлен в версии cURL 7.15.5. Доступен, начиная с версии PHP 5.4.0.
CURLOPT_SSH_AUTH_TYPES | Битовая маска, состоящая из одной или более констант: CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD. Установите CURLSSH_AUTH_ANY, чтобы libcurl сам выбрал одну из них. | Добавлено в cURL 7.16.1.
CURLOPT_IPRESOLVE | Позволяет приложению выбрать вид IP адреса, с которым определяется имя хоста. Это необходимо, если используется имя хоста, которое получается с использованием более одной версии IP адреса. Возможными значениями могут быть CURL_IPRESOLVE_WHATEVER, CURL_IPRESOLVE_V4, CURL_IPRESOLVE_V6, и по умолчанию CURL_IPRESOLVE_WHATEVER. | Добавлено в cURL 7.10.8.
CURLOPT_FTP_FILEMETHOD | Какой метод использовать, чтобы достать файл на сервере FTP. Варианты: CURLFTPMETHOD_MULTICWD, CURLFTPMETHOD_NOCWD и CURLFTPMETHOD_SINGLECWD. | Добавлено в cURL 7.15.1. Доступно с PHP 5.3.0.

Для следующих значений параметра option, параметр value должен быть типа string:

Параметр | Устанавливаемое значение value | Замечания
CURLOPT_CAINFO | Имя файла, содержащего один или более сертификатов, с которыми будут сверяться узлы. Этот параметр имеет смысл только при использовании совместно с CURLOPT_SSL_VERIFYPEER. | Может потребоваться абсолютный путь.
CURLOPT_CAPATH | Директория, содержащая несколько CA сертификатов. Используйте этот параметр совместно с CURLOPT_SSL_VERIFYPEER.
CURLOPT_COOKIE | Содержимое заголовка "Cookie: ", используемого в HTTP-запросе. Обратите внимание, что несколько cookies разделяются точкой с запятой с последующим пробелом (например, "fruit=apple; colour=red")
CURLOPT_COOKIEFILE | Имя файла, содержащего cookies. Данный файл должен быть в формате Netscape или просто заголовками HTTP, записанными в файл. Если в качестве имени файла передана пустая строка, то cookies сохраняться не будут, но их обработка все еще будет включена.
CURLOPT_COOKIEJAR | Имя файла, в котором будут сохранены все внутренние cookies текущей передачи после закрытия дескриптора, например, после вызова curl_close.
CURLOPT_CUSTOMREQUEST

Собственный метод запроса, используемый вместо "GET" или "HEAD" при выполнении HTTP-запроса. Это полезно при запросах "DELETE" или других, более редких HTTP-запросах. Корректными значениями будут слова наподобие "GET", "POST", "CONNECT" и так далее; т.е. не вводите здесь всю строку с HTTP-запросом. Например, указание "GET /index.html HTTP/1.0\r\n\r\n" будет неправильным.

Замечание:

Не используйте эту возможность пока не убедитесь, что сервер поддерживает данный тип запроса.

CURLOPT_DEFAULT_PROTOCOL

Протокол по умолчанию, если он отсутствует в схеме URL.

Добавлено в cURL 7.45.0. Доступно с PHP 7.0.7.
CURLOPT_DNS_INTERFACE

Устанавливает имя сетевого интерфейса, к которому привязан DNS. Это должно быть имя интерфейса, а не адрес.

Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP4

Установить локальный IPv4 адрес, по которому доступне DNS. Адрес должен быть представлен в виде строки, содержащий одно число.

Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP6

Установить локальный IPv6 адрес, по которому доступне DNS. Адрес должен быть представлен в виде строки, содержащий одно число.

Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7.
CURLOPT_EGDSOCKET | Наподобие CURLOPT_RANDOM_FILE, за исключением того, что имя файла устанавливается в сокет Entropy Gathering Daemon.
CURLOPT_ENCODING | Содержимое заголовка "Accept-Encoding: ". Это позволяет декодировать запрос. Поддерживаемыми кодировками являются "identity", "deflate" и "gzip". Если передана пустая строка, "", посылается заголовок, содержащий все поддерживаемые типы кодировок. | Добавлен в версии cURL 7.10.
CURLOPT_FTPPORT | Значение, которое будет использоваться для определения IP-адреса для команды "PORT" FTP-протокола. Команда "PORT" сообщает серверу, с каким IP-адресом он должен устанавливать соединение. Это может быть IP-адрес, имя хоста, имя сетевого интерфейса (под Unix), или просто '-' для использования системного IP-адреса по умолчанию.
CURLOPT_INTERFACE | Имя используемого сетевого интерфейса. Может быть именем интерфейса, IP адресом или именем хоста.
CURLOPT_KEYPASSWD | Пароль, который требуется для использования приватного ключа CURLOPT_SSLKEY или CURLOPT_SSH_PRIVATE_KEYFILE. | Добавлено в cURL 7.16.1.
CURLOPT_KRB4LEVEL | Уровень безопасности KRB4 (Kerberos 4). Любое из следующих значений (в порядке от слабого к самому сильному) корректно: "clear", "safe", "confidential", "private".. Если указанная строка отличается от данных значений, будет использовано значение "private". Установка этого параметра в NULL полностью отключит безопасность KRB4. На данный момент безопасность KRB4 работает только с FTP транзакциями.
CURLOPT_LOGIN_OPTIONS | Используется для установки специфичных для протокола настроек логина, таких как предпочитаемый механизм аутентификации "AUTH=NTLM" или "AUTH=*", и должна использоваться совместно с CURLOPT_USERNAME. | Добавлено в cURL 7.34.0. Доступно с PHP 7.0.7.
CURLOPT_PINNEDPUBLICKEY | Устанавливает Устанавливает зафиксированный публичный ключ. Строка должны содержать имя файла, в котором лежит ваш зафиксированный публичный ключ. Ожидается формат файла "PEM" или "DEX". Строка также может быть числом в формате base64, закодированным sha256 с префиксом "sha256//" и разделенная точкой с запятой ";". | Добавлено в cURL 7.39.0. Доступно с PHP 7.0.7.
CURLOPT_POSTFIELDS | Все данные, передаваемые в HTTP POST-запросе. Для передачи файла, укажите перед именем файла @, а также используйте полный путь к файлу. Тип файла также может быть указан с помощью формата ';type=mimetype', следующим за именем файла. Этот параметр может быть передан как в качестве url-закодированной строки, наподобие 'para1=val1&para2=val2&...', так и в виде массива, ключами которого будут имена полей, а значениями - их содержимое. Если value является массивом, заголовок Content-Type будет установлен в значение multipart/form-data. Начиная с версии PHP 5.2.0, при передаче файлов с префиксом @, value должен быть массивом. С версии PHP 5.5.0, префикс @ устарел и файлы можно отправлять с помощью CURLFile. Префикс @ можно отключить, чтобы можно было передавать значения, начинающиеся с @, задав опцию CURLOPT_SAFE_UPLOAD в значение TRUE.
CURLOPT_PRIVATE | Любые данные, которые должны ассоциироваться с этим дескриптором cURL. Эти данные могут быть выбраны подзапросом опции CURLINFO_PRIVATE функции curl_getinfo(). cURL ничего не делает с этими данными. Если используется множество дескрипторов cURL, эти данные обычно используются как уникальный ключ для определения дескриптора cURL. | Добавлено в cURL 7.10.3.
CURLOPT_PROXY | HTTP-прокси, через который будут направляться запросы.
CURLOPT_PROXY_SERVICE_NAME | Имя сервиса аутентификации прокси. | Добавлено в cURL 7.34.0. Доступно с PHP 7.0.7.
CURLOPT_PROXYUSERPWD | Логин и пароль, записанные в виде "[username]:[password]", используемые при соединении через прокси.
CURLOPT_RANDOM_FILE | Имя файла, используемого для инициализации генератора случайных чисел для SSL.
CURLOPT_RANGE | Диапазон данных, которые нужно загрузить, в формате "X-Y", причем либо X, либо Y могут быть опущены. Протокол HTTP также поддерживает передачу нескольких диапазонов, разделенных запятыми, они задаются в формате "X-Y,N-M".
CURLOPT_REFERER | Содержимое заголовка "Referer: ", который будет использован в HTTP-запросе.
CURLOPT_SERVICE_NAME | Имя сервиса аутентификации. | Добавлено в cURL 7.43.0. доступно с PHP 7.0.7.
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 | Строка, содержащая 32 шестнадцатеричных цифры. Строка должна являться контрольной суммой по алгоритму MD5 публичного ключа удаленного компьютера и libcurl будет сбрасывать соединение к удаленному хосту до тех пор, пока контрольная сумма не будет соответствовать публичному ключу. Эта опция предназначена только для передачи данных с помощью SCP и SFTP. | Добавлено в cURL 7.17.1.
CURLOPT_SSH_PUBLIC_KEYFILE | Имя файла для вашего публичного ключа. Если не задано, то libcurl использует по умолчанию файл $HOME/.ssh/id_dsa.pub, если переменная окружения HOME установлена и файл "id_dsa.pub" в текущей директории, если переменная HOME не установлена. | Добавлено в cURL 7.16.1.
CURLOPT_SSH_PRIVATE_KEYFILE | Имя файла для вашего приватного ключа. Если не задано, то libcurl использует по умолчанию файл $HOME/.ssh/id_dsa, если переменная окружения HOME установлена и файл "id_dsa" в текущей директории, если переменная HOME не установлена. Если файл защищен паролем, установите пароль с помощью CURLOPT_KEYPASSWD. | Добавлено в cURL 7.16.1.
CURLOPT_SSL_CIPHER_LIST | Список шифров, используемый в SSL-передачах. Например, RC4-SHA и TLSv1 являются корректными списками шифров.
CURLOPT_SSLCERT | Имя файла с корректно отформатированным PEM-сертификатом.
CURLOPT_SSLCERTPASSWD | Пароль, необходимый для использования сертификата CURLOPT_SSLCERT.
CURLOPT_SSLCERTTYPE | Формат сертификата. Поддерживаются форматы "PEM" (по умолчанию), "DER" и "ENG". | Добавлен в версии cURL 7.9.3.
CURLOPT_SSLENGINE | Идентификатор механизма шифрования для закрытого ключа SSL, указанного в параметре CURLOPT_SSLKEY.
CURLOPT_SSLENGINE_DEFAULT | Идентификатор механизма шифрования, используемого для ассиметричных операций шифрования.
CURLOPT_SSLKEY | Имя файла с закрытым ключом SSL.
CURLOPT_SSLKEYPASSWD

Тайный пароль, необходимый для использования закрытого ключа SSL, указанного параметром CURLOPT_SSLKEY.

Замечание:

Так как этот параметр содержит ценный пароль, помните, что данный PHP-скрипт нужно хранить в безопасном месте.

CURLOPT_SSLKEYTYPE | Тип закрытого ключа SSL, указанного в параметре CURLOPT_SSLKEY. Поддерживаются следующие типы ключей: "PEM" (по умолчанию), "DER" и "ENG".
CURLOPT_UNIX_SOCKET_PATH | Разрешает использовать доменные сокеты UNIX в качестве конечной точки для соединения и устанавливает путь к ним равным заданной строке (string). | Добавлено в cURL 7.40.0. Доступно с PHP 7.0.7.
CURLOPT_URL | Загружаемый URL. Данный параметр может быть также установлен при инициализации сеанса с помощью curl_init().
CURLOPT_USERAGENT | Содержимое заголовка "User-Agent: ", посылаемого в HTTP-запросе.
CURLOPT_USERNAME | Ипя пользователя для аутентификации. | Добавлено в cURL 7.19.1. Доступно с PHP 5.5.0.
CURLOPT_USERPWD | Логин и пароль, используемые при соединении, указанные в формате "[username]:[password]".
CURLOPT_XOAUTH2_BEARER | Задает токен доступа OAuth 2.0. | Добавлено в cURL 7.33.0. Доступно с PHP 7.0.7.

Для следующих значений параметра option, параметр value должен быть массивом:

Параметр | Устанавливаемое значение value | Замечания
CURLOPT_CONNECT_TO | Соединяться с указанный хостом по указанному порту, игнорируя URL. Принимает массив строк формата HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT. | Added in cURL 7.49.0. Available since 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-запроса.

Для следующих значений параметра option, параметр value должен быть потоковым дескриптором (возвращаемым, например, функцией fopen()):

Параметр | Устанавливаемое значение value
CURLOPT_FILE | Файл, в который будет записан результат передачи. По умолчанию используется поток вывода STDOUT (окно браузера).
CURLOPT_INFILE | Файл, из которого должно идти чтение данных, при загрузке на сервер.
CURLOPT_STDERR | Альтернативное файл для вывода ошибок, используемый вместо потока ошибок STDERR.
CURLOPT_WRITEHEADER | Файл, в который будут записаны заголовки текущей операции.

Для следующих значений параметра option, параметр value должен быть правильным именем функции или замыканием:

Параметр | Устанавливаемое значение value
CURLOPT_HEADERFUNCTION | Callback-функция принимает два параметра. Первым параметром является дескриптор cURL, вторым параметром является строка с записываемыми заголовками. Заголовки должны быть записаны с помощью данной callback-функции. Должна возвратить количество записанных байт.
CURLOPT_PASSWDFUNCTION | Callback-функция принимает три параметра. Первым параметром является дескриптор cURL, вторым параметром является строка с запросом пароля, третьим параметром является максимальная длина пароля. Должна возвратить строку, содержащую пароль.
CURLOPT_PROGRESSFUNCTION

Callback-функция принимает пять параметров. Первый является декскриптором cURL, второй - общим количеством байт, которое ожидается загрузить с сервера, третий - количество уже загруженных байт, четвертый - общее количество байт, которое ожидается отправить на сервер, и пятый - количество уже отправленных байт.

Замечание:

Callback-функция вызывается только, если опция CURLOPT_NOPROGRESS установлена в значение FALSE.

Можно вернуть ненулевое значение, чтобы отменить передачу. В этом случае будет выставлена ошибка CURLE_ABORTED_BY_CALLBACK.

CURLOPT_READFUNCTION | Callback-функция принимает три параметра. Первым параметром является дескриптор cURL, вторым параметром является ресурс потока, переданный cURL через опцию CURLOPT_INFILE, а третьим параметром является максимально разрешенное количество данных для чтения. Callback-функция должна возвратить строку, с длиной не превышающей запрошенного количества данных, обычно с помощью чтения из переданного потокового ресурса. Должна возвратить пустую строку для сигнала о конце файла EOF.
CURLOPT_WRITEFUNCTION | Callback-функция принимает два параметра. Первым параметром является дескриптор cURL, а вторым параметром является строка с записываемыми данными. Данные должны быть сохранены с помощью данной функции. Она должна возвратить точное количество записанных байт, иначе закачка будет прервана с ошибкой.

Другие значения:

Параметр | Устанавливаемое значение value
CURLOPT_SHARE | Результат выполнения функции curl_share_init(). Позволяет обработчику cURL использовать данные из общего обработчика.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.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.
5.6.0 | Опция CURLOPT_SAFE_UPLOAD теперь имеет значение по умолчанию равное TRUE.
5.6.0 | Удалена опция CURLOPT_CLOSEPOLICY и связанные с ней значения.
5.5.0 | Ресурс cURL добавлен первым аргументом в callback-функцию CURLOPT_PROGRESSFUNCTION.
5.5.0 | Добавлена опция CURLOPT_SHARE.
5.3.0 | Добавлена опция CURLOPT_PROGRESSFUNCTION.
5.2.10 | Добавлены параметры CURLOPT_PROTOCOLS и CURLOPT_REDIR_PROTOCOLS.
5.2.4 | Добавлено CURLOPT_PRIVATE.
5.1.0 | Добавлены параметры CURLOPT_AUTOREFERER, CURLOPT_BINARYTRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH и CURLOPT_TIMECONDITION.
5.0.0 | Добавлены параметры CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE и CURLOPT_HTTP200ALIASES.

Примеры

Пример #1 Инициализация сеанса CURL и загрузка web-страницы

<?php
// создание нового ресурса cURL
$ch = curl_init();

// установка URL и других необходимых параметров
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);

// загрузка страницы и выдача её браузеру
curl_exec($ch);

// завершение сеанса и освобождение ресурсов
curl_close($ch);
?>

Пример #2 Закачка файла (устарело с PHP 5.5.0)

<?php

/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/

$ch = curl_init();

$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');

curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); // required as of PHP 5.6.0
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_exec($ch);
?>

Результат выполнения данного примера:

Array
(
    [name] => Foo
)
Array
(
    [file] => Array
        (
            [name] => test.png
            [type] => image/png
            [tmp_name] => /tmp/phpcpjNeQ
            [error] => 0
            [size] => 279
        )

)

Примечания

Замечание:

Передача массива в CURLOPT_POSTFIELDS закодирует данные в виде multipart/form-data, тогда как передача URL-кодированной строки закодирует данные в виде application/x-www-form-urlencoded.

Смотрите также

  • curl_setopt_array() - Устанавливает несколько параметров для сеанса cURL


Закрыть разделяемый обработчик cURL

  • « curl_setopt
  • curl_share_init »
  • PHP Manual
  • cURL
  • Закрыть разделяемый обработчик cURL

curl_share_close

(PHP 5 >= 5.5.0, PHP 7)

curl_share_close — Закрыть разделяемый обработчик cURL

Описание

void curl_share_close ( resource $sh )

Закрывает разделяемый обработчик cURL и высвобождает все его ресурсы.

Список параметров

sh

Обреботчик cURL полученый из curl_share_init()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования curl_share_setopt() example

В этом примере мы создаем разделяемый обработчик 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_setopt »
  • PHP Manual
  • cURL
  • Инициализация разделяемого обработчика cURL

curl_share_init

(PHP 5 >= 5.5.0, PHP 7)

curl_share_init — Инициализация разделяемого обработчика cURL

Описание

resource curl_share_init ( void )

Позволяет разным обработчикам cURL делиться данными друг с другом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ресурс типа "cURL Share Handle".

Примеры

Пример #1 Пример использования curl_share_init()

В этом примере мы создаем разделяемый обработчик cURL, добавляем в него два обычных обработчика и запускаем их. Они будут использовать одни и те же куки.

<?php
// Создаем разделяемый обработчик и настраиваем его на обмен куками
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// Инициализируем первый обработчик cURL и связываем его с разделяемым
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// Запускаем первый запрос
curl_exec($ch1);

// Инициализируем второй обработчик cURL и связываем его с разделяемым
$ch2 = curl_init("http://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// Запускаем второй обработчик.
//  Ему будут доступны все куки от первого обработчика $ch1
curl_exec($ch2);

// Закрываем разделяемый обработчик
curl_share_close($sh);

// Закрываем оба обычных обработчика
curl_close($ch1);
curl_close($ch2);
?>

Смотрите также

  • curl_share_setopt() - Установить опции разделяемого обработчика cURL
  • curl_share_close() - Закрыть разделяемый обработчик cURL


Установить опции разделяемого обработчика cURL

  • « curl_share_init
  • curl_strerror »
  • PHP Manual
  • cURL
  • Установить опции разделяемого обработчика cURL

curl_share_setopt

(PHP 5 >= 5.5.0, PHP 7)

curl_share_setopt — Установить опции разделяемого обработчика cURL

Описание

bool curl_share_setopt ( resource $sh , int $option , string $value )

Устанавливает опции разделяемого обработчика cURL.

Список параметров

sh

Обреботчик cURL полученый из curl_share_init()

option

Опция | Описание
CURLSHOPT_SHARE | Задает тип данных, которые необходимо разделять.
CURLSHOPT_UNSHARE | Задает тип данных, которые больше не надо разделять.

value

Значение | Описание
CURL_LOCK_DATA_COOKIE | Куки.
CURL_LOCK_DATA_DNS | Кеш DNS. Обратите внимание, что если вы используете множественный обработчик cURL, то разделены будут кеши всех обработчиков в его составе.
CURL_LOCK_DATA_SSL_SESSION | Идентификаторы сессий SSL. Позволяет сократить время на установление сессии SSL при переконнекте к тому же самому серверу. Помните, что идентификатор сессии SSL будет по умолчанию переиспользоваться тем же самым обработчиком.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 curl_share_setopt() example

В этом примере мы создаем разделяемый обработчик 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_unescape »
  • PHP Manual
  • cURL
  • Получить текстовое описание для кода ошибки

curl_strerror

(PHP 5 >= 5.5.0, PHP 7)

curl_strerror — Получить текстовое описание для кода ошибки

Описание

string curl_strerror ( int $errornum )

Возвращает текстовое описание заданного кода ошибки.

Список параметров

errornum

Одина из констант » кодов ошибок cURL.

Возвращаемые значения

Возвращает описание ошибки или NULL, если такой ошибки нет.

Примеры

Пример #1 Пример использования curl_errno()

<?php
// СОздаем обработчик curl с некорректным указанием протокола в URL
$ch = curl_init("htp://example.com/");

// Посылаем запрос
curl_exec($ch);

// Проверяем на ошибки и выводим их описание
if($errno = curl_errno($ch)) {
    $error_message = curl_strerror($errno);
    echo "cURL error ({$errno}):\n {$error_message}";
}

// Закрываем обработчик
curl_close($ch);
?>

Результат выполнения данного примера:

cURL error (1):
 Unsupported protocol

Смотрите также

  • curl_errno() - Возвращает код последней ошибки
  • curl_error() - Возвращает строку с описанием последней ошибки текущего сеанса
  • » Curl error codes


Раскодировать закодированную URL-строку

  • « curl_strerror
  • curl_version »
  • PHP Manual
  • cURL
  • Раскодировать закодированную URL-строку

curl_unescape

(PHP 5 >= 5.5.0, PHP 7)

curl_unescape — Раскодировать закодированную URL-строку

Описание

string curl_unescape ( resource $ch , string $str )

Раскодирует закодированную URL-строку. This function decodes the given URL encoded string.

Список параметров

ch

Дескриптор cURL, полученный из curl_init().

str

Закодированая строка.

Возвращаемые значения

Возвращает раскодированную строку или FALSE в случае возникновения ошибки.

Примеры

Пример #1 curl_escape() example

<?php
// Создаем обработчик curl
$ch = curl_init('http://example.com/redirect.php');

// Посылаем HTTP-запрос
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_exec($ch);

// Получаем последний рабочий URL
$effective_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
// например "http://example.com/show_location.php?loc=M%C3%BCnchen"

// Декодируем
$effective_url_decoded = curl_unescape($ch, $effective_url);
// "http://example.com/show_location.php?loc=Munchen"

// Закрываем обработчик
curl_close($ch);
?>

Примечания

Замечание:

curl_unescape() не преобразует плюс (+) в пробел. Это делает функция urldecode().

Смотрите также

  • curl_escape() - Кодирует заданную строку как URL
  • urlencode() - URL-кодирование строки
  • urldecode() - Декодирование URL-кодированной строки
  • rawurlencode() - URL-кодирование строки согласно RFC 3986
  • rawurldecode() - Декодирование URL-кодированной строки


Возвращает версию cURL

  • « curl_unescape
  • Event »
  • PHP Manual
  • cURL
  • Возвращает версию cURL

curl_version

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_version — Возвращает версию cURL

Описание

array curl_version ([ int $age = CURLVERSION_NOW ] )

Возвращает информацию о версии cURL.

Список параметров

age

Возвращаемые значения

Возвращает ассоциативный массив со следующими элементами:

Индекс | Описание значения
version_number | 24-битный номер версии cURL
version | Номер версии cURL, в виде строки
ssl_version_number | 24-битный номер версии OpenSSL
ssl_version | Номер версии OpenSSL, в виде строки
libz_version | Номер версии zlib, в виде строки
host | Информация о хосте, где была собрана cURL
age |
features | Битовая маска констант CURL_VERSION_XXX
protocols | Массив поддерживаемых протоколов cURL

Примеры

Пример #1 Пример использования curl_version()

Этот пример проверит какие возможности поддерживает данная сборка cURL с помощью битовой маски 'features', возвращаемой функцией curl_version().

<?php
// Получаем массив с информацией о версии curl
$version = curl_version();

// Это битовые поля, которые можно использовать
// для проверки возможностей сборки curl
$bitfields = Array(
            'CURL_VERSION_IPV6',
            'CURL_VERSION_KERBEROS4',
            'CURL_VERSION_SSL',
            'CURL_VERSION_LIBZ'
            );

foreach($bitfields as $feature)
{
    echo $feature . ($version['features'] & constant($feature) ? ' есть' : ' нет');
    echo PHP_EOL;
}
?>


Event

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Примеры
  • Event flags
  • About event persistence
  • Event callbacks
  • Constructing signal events
  • Event — The Event class
    • Event::add — Makes event pending
    • Event::addSignal — Makes signal event pending
    • Event::addTimer — Makes timer event pending
    • Event::__construct — Constructs Event object
    • Event::del — Makes event non-pending
    • Event::delSignal — Makes signal event non-pending
    • Event::delTimer — Makes timer event non-pending
    • Event::free — Make event non-pending and free resources allocated for this event.
    • Event::getSupportedMethods — Returns array with of the names of the methods supported in this version of Libevent
    • Event::pending — Detects whether event is pending or scheduled
    • Event::set — Re-configures event
    • Event::setPriority — Set event priority
    • Event::setTimer — Re-configures timer event
    • Event::signal — Constructs signal event object
    • Event::timer — Constructs timer event object
  • EventBase — The EventBase class
    • EventBase::__construct — Constructs EventBase object
    • EventBase::dispatch — Dispatch pending events
    • EventBase::exit — Stop dispatching events
    • EventBase::free — Free resources allocated for this event base
    • EventBase::getFeatures — Returns bitmask of features supported
    • EventBase::getMethod — Returns event method in use
    • EventBase::getTimeOfDayCached — Returns the current event base time
    • EventBase::gotExit — Checks if the event loop was told to exit
    • EventBase::gotStop — Checks if the event loop was told to exit
    • EventBase::loop — Dispatch pending events
    • EventBase::priorityInit — Sets number of priorities per event base
    • EventBase::reInit — Re-initialize event base(after a fork).
    • EventBase::stop — Tells event_base to stop dispatching events
  • EventBuffer — The EventBuffer class
    • EventBuffer::add — Append data to the end of an event buffer
    • EventBuffer::addBuffer — Move all data from a buffer provided to the current instance of EventBuffer
    • EventBuffer::appendFrom — Moves the specified number of bytes from a source buffer to the end of the current buffer
    • EventBuffer::__construct — Constructs EventBuffer object
    • EventBuffer::copyout — Copies out specified number of bytes from the front of the buffer
    • EventBuffer::drain — Removes specified number of bytes from the front of the buffer without copying it anywhere
    • EventBuffer::enableLocking — Описание
    • EventBuffer::expand — Reserves space in buffer
    • EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding
    • EventBuffer::lock — Acquires a lock on buffer
    • EventBuffer::prepend — Prepend data to the front of the buffer
    • EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer
    • EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string
    • EventBuffer::read — Read data from an evbuffer and drain the bytes read
    • EventBuffer::readFrom — Read data from a file onto the end of the buffer
    • EventBuffer::readLine — Extracts a line from the front of the buffer
    • EventBuffer::search — Scans the buffer for an occurrence of a string
    • EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line
    • EventBuffer::substr — Substracts a portion of the buffer data
    • EventBuffer::unfreeze — Re-enable calls that modify an event buffer
    • EventBuffer::unlock — Releases lock acquired by EventBuffer::lock
    • EventBuffer::write — Write contents of the buffer to a file or socket
  • EventBufferEvent — The EventBufferEvent class
    • EventBufferEvent::close — Closes file descriptor associated with the current buffer event
    • EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket
    • EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving
    • EventBufferEvent::__construct — Constructs EventBufferEvent object
    • EventBufferEvent::createPair — Creates two buffer events connected to each other
    • EventBufferEvent::disable — Disable events read, write, or both on a buffer event.
    • EventBufferEvent::enable — Enable events read, write, or both on a buffer event.
    • EventBufferEvent::free — Free a buffer event
    • EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt
    • EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event
    • EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event
    • EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event
    • EventBufferEvent::read — Read buffer's data
    • EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf
    • EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks
    • EventBufferEvent::setPriority — Assign a priority to a bufferevent
    • EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event
    • EventBufferEvent::setWatermark — Adjusts read and/or write watermarks
    • EventBufferEvent::sslError — Returns most recent OpenSSL error reported on the buffer event
    • EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event
    • EventBufferEvent::sslGetCipherInfo — Returns a textual description of the cipher.
    • EventBufferEvent::sslGetCipherName — Returns the current cipher name of the SSL connection.
    • EventBufferEvent::sslGetCipherVersion — Returns version of cipher used by current SSL connection.
    • EventBufferEvent::sslGetProtocol — Returns the name of the protocol used for current SSL connection.
    • EventBufferEvent::sslRenegotiate — Tells a bufferevent to begin SSL renegotiation.
    • EventBufferEvent::sslSocket — Creates a new SSL buffer event to send its data over an SSL on a socket
    • EventBufferEvent::write — Adds data to a buffer event's output buffer
    • EventBufferEvent::writeBuffer — Adds contents of the entire buffer to a buffer event's output buffer
  • About buffer event callbacks
  • EventConfig — The EventConfig class
    • EventConfig::avoidMethod — Tells libevent to avoid specific event method
    • EventConfig::__construct — Constructs EventConfig object
    • EventConfig::requireFeatures — Enters a required event method feature that the application demands
    • EventConfig::setMaxDispatchInterval — Prevents priority inversion
  • EventDnsBase — The EventDnsBase class
    • EventDnsBase::addNameserverIp — Adds a nameserver to the DNS base
    • EventDnsBase::addSearch — Adds a domain to the list of search domains
    • EventDnsBase::clearSearch — Removes all current search suffixes
    • EventDnsBase::__construct — Constructs EventDnsBase object
    • EventDnsBase::countNameservers — Gets the number of configured nameservers
    • EventDnsBase::loadHosts — Loads a hosts file (in the same format as /etc/hosts) from hosts file
    • EventDnsBase::parseResolvConf — Scans the resolv.conf-formatted file
    • EventDnsBase::setOption — Set the value of a configuration option
    • EventDnsBase::setSearchNdots — Set the 'ndots' parameter for searches
  • EventHttp — The EventHttp class
    • EventHttp::accept — Makes an HTTP server accept connections on the specified socket stream or resource
    • EventHttp::addServerAlias — Adds a server alias to the HTTP server object
    • EventHttp::bind — Binds an HTTP server on the specified address and port
    • EventHttp::__construct — Constructs EventHttp object(the HTTP server)
    • EventHttp::removeServerAlias — Removes server alias
    • EventHttp::setAllowedMethods — Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks
    • EventHttp::setCallback — Sets a callback for specified URI
    • EventHttp::setDefaultCallback — Sets default callback to handle requests that are not caught by specific callbacks
    • EventHttp::setMaxBodySize — Sets maximum request body size
    • EventHttp::setMaxHeadersSize — Sets maximum HTTP header size
    • EventHttp::setTimeout — Sets the timeout for an HTTP request
  • EventHttpConnection — The EventHttpConnection class
    • EventHttpConnection::__construct — Constructs EventHttpConnection object
    • EventHttpConnection::getBase — Returns event base associated with the connection
    • EventHttpConnection::getPeer — Gets the remote address and port associated with the connection
    • EventHttpConnection::makeRequest — Makes an HTTP request over the specified connection
    • EventHttpConnection::setCloseCallback — Set callback for connection close
    • EventHttpConnection::setLocalAddress — Sets the IP address from which HTTP connections are made
    • EventHttpConnection::setLocalPort — Sets the local port from which connections are made
    • EventHttpConnection::setMaxBodySize — Sets maximum body size for the connection
    • EventHttpConnection::setMaxHeadersSize — Sets maximum header size
    • EventHttpConnection::setRetries — Sets the retry limit for the connection
    • EventHttpConnection::setTimeout — Sets the timeout for the connection
  • EventHttpRequest — The EventHttpRequest class
    • EventHttpRequest::addHeader — Adds an HTTP header to the headers of the request
    • EventHttpRequest::cancel — Cancels a pending HTTP request
    • EventHttpRequest::clearHeaders — Removes all output headers from the header list of the request
    • EventHttpRequest::closeConnection — Closes associated HTTP connection
    • EventHttpRequest::__construct — Constructs EventHttpRequest object
    • EventHttpRequest::findHeader — Finds the value belonging a header
    • EventHttpRequest::free — Frees the object and removes associated events
    • EventHttpRequest::getBufferEvent — Returns EventBufferEvent object
    • EventHttpRequest::getCommand — Returns the request command(method)
    • EventHttpRequest::getConnection — Returns EventHttpConnection object
    • EventHttpRequest::getHost — Returns the request host
    • EventHttpRequest::getInputBuffer — Returns the input buffer
    • EventHttpRequest::getInputHeaders — Returns associative array of the input headers
    • EventHttpRequest::getOutputBuffer — Returns the output buffer of the request
    • EventHttpRequest::getOutputHeaders — Returns associative array of the output headers
    • EventHttpRequest::getResponseCode — Returns the response code
    • EventHttpRequest::getUri — Returns the request URI
    • EventHttpRequest::removeHeader — Removes an HTTP header from the headers of the request
    • EventHttpRequest::sendError — Send an HTML error message to the client
    • EventHttpRequest::sendReply — Send an HTML reply to the client
    • EventHttpRequest::sendReplyChunk — Send another data chunk as part of an ongoing chunked reply
    • EventHttpRequest::sendReplyEnd — Complete a chunked reply, freeing the request as appropriate
    • EventHttpRequest::sendReplyStart — Initiate a chunked reply
  • EventListener — The EventListener class
    • EventListener::__construct — Creates new connection listener associated with an event base
    • EventListener::disable — Disables an event connect listener object
    • EventListener::enable — Enables an event connect listener object
    • EventListener::getBase — Returns event base associated with the event listener
    • EventListener::getSocketName — Retreives the current address to which the listener's socket is bound.
    • EventListener::setCallback — The setCallback purpose
    • EventListener::setErrorCallback — Set event listener's error callback
  • EventSslContext — The EventSslContext class
    • EventSslContext::__construct — Constructs an OpenSSL context for use with Event classes
  • EventUtil — The EventUtil class
    • EventUtil::__construct — The abstract constructor
    • EventUtil::getLastSocketErrno — Returns the most recent socket error number
    • EventUtil::getLastSocketError — Returns the most recent socket error
    • EventUtil::getSocketFd — Returns numeric file descriptor of a socket, or stream
    • EventUtil::getSocketName — Retreives the current address to which the socket is bound.
    • EventUtil::setSocketOption — Sets socket options
    • EventUtil::sslRandPoll — Generates entropy by means of OpenSSL's RAND_poll()


Введение

This is an extension to efficiently schedule I/O, time and signal based events using the best I/O notification mechanism available for specific platform. This is a port of libevent to the PHP infrastructure.

Замечание:

Note, Windows support introduced in event-1.9.0 .

Version 1.0.0 introduces new object-oriented API (breaking backwards compatibility), and support of libevent 2+ including HTTP, DNS, OpenSSL and the event listener.

Замечание:

Note, event-1.0.0 and greater is not compatible with previous versions.


Требования

This extension requires » libevent library. Most modern distributions provide packages for libevent.

OpenSSL features require » OpenSSL library.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/event .


Примеры

Пример #1 Simple HTTP client

<?php
// Read callback
function readcb($bev, $base) {
    //$input = $bev->input; //$bev->getInput();

    //$pos = $input->search("TTP");
    $pos = $bev->input->search("TTP");

    while (($n = $bev->input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

// Event callback
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connected.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Closing\n";
        $base->exit();
        exit("Done\n");
    }
}

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); // We'll use async DNS resolving
if (!$dns_base) {
    exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb"
);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

//$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

if (!$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
    exit("Can't connect to host {$argv[1]}\n");
}

$base->dispatch();
?>

Результатом выполнения данного примера будет что-то подобное:

Connected.
HTTP/1.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>
Closing
Done

Пример #2 HTTP client using asynchronous DNS resolver

<?php
/*
 * 1. Connect to 127.0.0.1 at port 80
 * by means of EventBufferEvent::connect().
 *
 * 2. Request /index.cphp via HTTP/1.0
 * using the output buffer.
 *
 * 3. Asyncronously read the response and print it to stdout.
 */

// Read callback
function readcb($bev, $base) {
    $input = $bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

// Event callback
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connected.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Closing\n";
        $base->exit();
        exit("Done\n");
    }
}

$base = new EventBase();

echo "step 1\n";
$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

echo "step 2\n";
$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

echo "step 3\n";
// Send request
$output = $bev->getOutput();
if (!$output->add(
    "GET /index.cphp HTTP/1.0\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

/* Connect to the host syncronously.
We know the IP, and don't need to resolve DNS. */
if (!$bev->connect("127.0.0.1:80")) {
    exit("Can't connect to host\n");
}

// Dispatch pending events
$base->dispatch();
?>

Пример #3 Echo server

<?php
/*
 * Simple echo server based on libevent's connection listener.
 *
 * Usage:
 * 1) In one terminal window run:
 *
 * $ php listener.php 9881
 *
 * 2) In another terminal window open up connection, e.g.:
 *
 * $ nc 127.0.0.1 9881
 *
 * 3) start typing. The server should repeat the input.
 */

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 "Failed to enable READ\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Copy all the data from the input buffer to the output buffer

        // Variant #1
        $bev->output->addBuffer($bev->input);

        /* Variant #2 */
        /*
        $input    = $bev->getInput();
        $output = $bev->getOutput();
        $output->addBuffer($input);
        */
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Error from 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 "Couldn't open event base";
            exit(1);
        }

        // Variant #1
        /*
        $this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        if (!socket_bind($this->socket, '0.0.0.0', $port)) {
            echo "Unable to bind socket\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);
         */

        // Variant #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 "Couldn't create listener";
            exit(1);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // This callback is invoked when there is data to read on $bev
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // We got a new connection! Set up a bufferevent for it. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "Got an error %d (%s) on the listener. "
            ."Shutting down.\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();
?>

Пример #4 SSL echo server

<?php
/*
 * SSL echo server
 *
 * To test:
 * 1) Run:
 * $ php examples/ssl-echo-server/server.php 9998
 *
 * 2) in another terminal window run:
 * $ 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("Failed creating SSL context\n");
        }

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Couldn't open event base\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("Couldn't create listener\n");
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }
    function dispatch() {
        $this->base->dispatch();
    }

    // This callback is invoked when there is data to read on $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);
    }

    // This callback is invoked when some even occurs on the event listener,
    // e.g. connection closed, or an error occured
    function ssl_event_cb($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            // Fetch errors from the SSL error stack
            while ($err = $bev->sslError()) {
                fprintf(STDERR, "Bufferevent error %s.\n", $err);
            }
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            $bev->free();
        }
    }

    // This callback is invoked when a client accepts new connection
    function ssl_accept_cb($listener, $fd, $address, $ctx) {
        // We got a new connection! Set up a bufferevent for it.
        $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);
    }

    // This callback is invoked when we failed to setup new connection for a client
    function accept_error_cb($listener, $ctx) {
        fprintf(STDERR, "Got an error %d (%s) on the listener. "
            ."Shutting down.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $this->base->exit(NULL);
    }

    // Initialize SSL structures, create an EventSslContext
    // Optionally create self-signed certificates
    function init_ssl() {
        // We *must* have entropy. Otherwise there's no point to crypto.
        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 "Couldn't read $local_cert or $local_pk file.  To generate a key\n",
                "and self-signed certificate, run:\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;
    }
}

// Allow to override the port
$port = 9999;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port\n");
}

$l = new MySslEchoServer($port);
$l->dispatch();
?>

Пример #5 Signal handler

<?php
/*
Launch it in a terminal window:

$ php examples/signal.php

In another terminal window find out the pid and send SIGTERM, e.g.:

$ 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

At the first terminal window you should catch the following:

Caught signal 15
*/
class MyEventSignal {
    private $base;

    function __construct($base) {
        $this->base = $base;
    }

    function eventSighandler($no, $c) {
        echo "Caught signal $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 Use libevent's loop to process requests of `eio' extension

<?php
// Callback for 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 "Done\n";
?>

Пример #7 Miscellaneous

<?php
/* {{{ Config & supported stuff */
echo "Supported methods:\n";
foreach (Event::getSupportedMethods() as $m) {
    echo $m, PHP_EOL;
}

// Avoiding "select" method
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}

// Create event_base associated with the config
$base = new EventBase($cfg);
echo "Event method used: ", $base->getMethod(), PHP_EOL;

echo "Features:\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");

// Require FDS feature
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
    echo "FDS feature is now requried\n";

    $base = new EventBase($cfg);
    ($base->getFeatures() & EventConfig::FEATURE_FDS)
        and print("FDS - arbitrary file descriptor types, and not just sockets\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) {
        /* exit after 5 iterations with timeout of 2.33 seconds */
        echo "Stopping...\n";
        $arg[0]->exit(2.33);
    }

    echo fgets($fd);
}, array (&$base));

$event->add();
$base->loop();
/* Base }}} */
?>

Пример #8 Simple HTTP server

<?php
/*
 * Simple HTTP server.
 *
 * To test it:
 * 1) Run it on a port of your choice, e.g.:
 * $ php examples/http.php 8010
 * 2) In another terminal connect to some address on this port
 * and make GET or POST request(others are turned off here), e.g.:
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * It will output
 * 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)
 *
 * It will output:
 * 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
 *
 * It will output:
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) See what the server outputs on the previous terminal window.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Counter reached max requests $max_requests. Exiting\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "request:"; var_dump($req);
    echo "data:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Command:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Input headers:"; var_dump($req->getInputHeaders());
    echo "Output headers:"; var_dump($req->getOutputHeaders());

    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Reading input buffer ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "No more data in the buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$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
(press Enter)

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close

Пример #9 Simple HTTPS server

<?php
/*
 * Simple HTTPS server.
 *
 * 1) Run the server: `php examples/https.php 9999`
 * 2) Test it: `php examples/ssl-connection.php 9999`
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 200;

    if (++$counter >= $max_requests)  {
        echo "Counter reached max requests $max_requests. Exiting\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "request:"; var_dump($req);
    echo "data:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Command:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Input headers:"; var_dump($req->getInputHeaders());
    echo "Output headers:"; var_dump($req->getOutputHeaders());

    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    $buf = $req->getInputBuffer();
    echo "\n >> Reading input buffer (", $buf->length, ") ...\n";
    while ($s = $buf->read(1024)) {
        echo $s;
    }
    echo "\nNo more data in the buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $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("Invalid port");
}
$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 connection

<?php
/*
 * Sample OpenSSL client.
 *
 * Usage:
 * 1) Launch a server, e.g.:
 * $ php examples/https.php 9999
 *
 * 2) Launch the client in another terminal:
 * $ php examples/ssl-connection.php 9999
 */

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 "Connection refused\n";
        } elseif ($response_code != 200) {
            echo "Unexpected response: $response_code\n";
        } else {
            echo "Success: $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;
}

// Allow to override the port
$port = 9999;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port\n");
}
$host = '127.0.0.1';

$ctx = _init_ssl();
if (!$ctx) {
    trigger_error("Failed creating SSL context", E_USER_ERROR);
}

$base = new EventBase();
if (!$base) {
    trigger_error("Failed to initialize event base", 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() example

<?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 "Connection refused\n";
        } elseif ($response_code != 200) {
            echo "Unexpected response: $response_code\n";
        } else {
            echo "Success: $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Body:\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 Connection listener based on a UNIX domain socket

<?php
/*
 * Simple echo server based on libevent's connection listener.
 *
 * Usage:
 * 1) In one terminal window run:
 *
 * $ php unix-domain-listener.php [path-to-socket]
 *
 * 2) In another terminal window open up connection
 * to the socket, e.g.:
 *
 * $ socat - GOPEN:/tmp/1.sock
 *
 * 3) Start typing. The server should repeat the input.
 */

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 "Failed to enable READ\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Copy all the data from the input buffer to the output buffer
        $bev->output->addBuffer($bev->input);
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Error from 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 "Couldn't open event base";
            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("Couldn't create listener", E_USER_ERROR);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // This callback is invoked when there is data to read on $bev
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // We got a new connection! Set up a bufferevent for it. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "Got an error %d (%s) on the listener. "
            ."Shutting down.\n",
            EventUtil::getLastSocketErrno(),
            EventUtil::getLastSocketError());

        $base->exit(NULL);
    }
}

if ($argc <= 1) {
    exit("Socket path is not provided\n");
}
$sock_path = $argv[1];

$l = new MyListener($sock_path);
$l->dispatch();
?>

Пример #13 Simple SMTP server

<?php
 /*
 * Author: Andrew Rose <hello at andrewrose dot co dot uk>
 *
 * Usage:
 * 1) Prepare cert.pem certificate and privkey.pem private key files.
 * 2) Launch the server script
 * 3) Open TLS connection, e.g.:
 *      $ openssl s_client -connect localhost:25 -starttls smtp -crlf
 * 4) Start testing the commands listed in `cmd` method below.
 */

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, // change to true with authentic cert
            EventSslContext::OPT_ALLOW_SELF_SIGNED => true // change to false with authentic cert
        ]);

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Couldn't open event base\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("Couldn't create listener\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, "Got an error %d (%s) on the listener. Shutting down.\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")
            {
                // remove the trailing \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 'unknown command: '.$line."\n";
                break;
        }
    }
}

new Handler();


Event flags

Event::READ This flag indicates an event that becomes active when the provided file descriptor (usually a stream resource, or socket) is ready for reading.

Event::WRITE flag indicates an event that becomes active when the provided file descriptor (usually a stream resource, or socket) is ready for writing.

Event::SIGNAL used to implement signal detection. See "Constructing signal events" below.

Event::TIMEOUT indicates an event that becomes active after a timeout elapses. The Event::TIMEOUT flag is ignored when constructing an event: one can either set a timeout when event is added , or not. It is set in the $what argument to the callback function when a timeout has occurred.

See also » Fast portable non-blocking network programming with Libevent, Working with events, Event flags


About event persistence

By default, whenever a pending event becomes active (because its file descriptor is ready to read or write, or because its timeout expires), it becomes non-pending right before its callback is executed. Thus, to make the event pending again one may call Event::add() on it again from inside the callback function.

If the Event::PERSIST flag is set on an event, however, the event is persistent . This means that event remains pending even when its callback is activated. Event::del() method can be called to make it non-pending.

The timeout on a persistent event resets whenever the event's callback runs. Thus, if one has an event with flags Event::READ | Event::PERSIST and a timeout of five seconds, the event will become active:

  1. Whenever the socket or file descriptor is ready for reading.

  2. Whenever five seconds have passed since the event last became active.

See also » Fast portable non-blocking network programming with Libevent, About Event Persistence


Event callbacks

If a callback is registered for an event, it will be called when the event becomes active. To associate a callback with event one can pass a callable to either Event::__construct() , or Event::set() , or one of the factory methods like Event::timer() .

An event callback should match the following prototype:

void callback ([ mixed $fd = NULL [, int $what [, mixed $arg = NULL ]]] )

fd

The file descriptor, stream resource or socket associated with the event. For signal event fd is equal to the signal number.

what

Bit mask of all events triggered.

arg

User custom data.

Event::timer() expects the callback to match the following prototype:

void callback ([ mixed $arg = NULL ] )

arg

User custom data.

Event::signal() expects the callback to match the following prototype:

void callback ([ int $signum [, mixed $arg = NULL ]] )

signum

The number of the triggered signal(e.g. SIGTERM ).

arg

User custom data.


Constructing signal events

Event can also watch for POSIX-style signals. To construct a handler for a signal, use Event::__construct() constructor with Event::SIGNAL flag, or Event::signal() factory method.

Пример #1 Handling SIGTERM signal

<?php
/*
Launch it in a terminal window:

$ php examples/signal.php

In another terminal window find out the pid and send SIGTERM, e.g.:

$ 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

At the first terminal window you should catch the following:

Caught signal 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 "Caught signal $no\n";
        $this->base->exit();
    }
}

$base = new EventBase();
$c    = new MyEventSignal($base);

$base->loop();
?>

Note that signal callbacks are run in the event loop after the signal occurs, so it is safe for them to call functions that you are not supposed to call from a regular POSIX signal handler.

See also » Fast portable non-blocking network programming with Libevent, Constructing Signal Events .


The Event class

(PECL event >= 1.2.6-beta)

Введение

Event class represents and event firing on a file descriptor being ready to read from or write to; a file descriptor becoming ready to read from or write to(edge-triggered I/O only); a timeout expiring; a signal occuring; a user-triggered event.

Every event is associated with EventBase . However, event will never fire until it is added (via Event::add() ). An added event remains in pending state until the registered event occurs, thus turning it to active state. To handle events user may register a callback which is called when event becomes active. If event is configured persistent , it remains pending. If it is not persistent, it stops being pending when it's callback runs. Event::del() method deletes event, thus making it non-pending. By means of Event::add() method it could be added again.

Обзор классов

final Event {
/* Constants */
const integer ET = 32 ;
const integer PERSIST = 16 ;
const integer READ = 2 ;
const integer WRITE = 4 ;
const integer SIGNAL = 8 ;
const integer TIMEOUT = 1 ;
/* Свойства */
public readonly bool $pending ;
/* Методы */
public bool add ([ double $timeout ] )
public bool addSignal ([ double $timeout ] )
public bool addTimer ([ double $timeout ] )
public __construct ( EventBase $base , mixed $fd , int $what , callable $cb [, mixed $arg = NULL ] )
public bool del ( void )
public bool delSignal ( void )
public bool delTimer ( void )
public void free ( void )
public static array getSupportedMethods ( void )
public bool pending ( int $flags )
public bool set ( EventBase $base , mixed $fd [, int $what [, callable $cb [, mixed $arg ]]] )
public bool setPriority ( int $priority )
public bool setTimer ( EventBase $base , callable $cb [, mixed $arg ] )
public static Event signal ( EventBase $base , int $signum , callable $cb [, mixed $arg ] )
public static Event timer ( EventBase $base , callable $cb [, mixed $arg ] )
}

Свойства

pending

Whether event is pending. See About event persistence .

Предопределенные константы

Event::ET

Indicates that the event should be edge-triggered, if the underlying event base backend supports edge-triggered events. This affects the semantics of Event::READ and Event::WRITE .

Event::PERSIST

Indicates that the event is persistent. See About event persistence .

Event::READ

This flag indicates an event that becomes active when the provided file descriptor(usually a stream resource, or socket) is ready for reading.

Event::WRITE

This flag indicates an event that becomes active when the provided file descriptor(usually a stream resource, or socket) is ready for reading.

Event::SIGNAL

Used to implement signal detection. See "Constructing signal events" below.

Event::TIMEOUT

This flag indicates an event that becomes active after a timeout elapses.

The Event::TIMEOUT flag is ignored when constructing an event: one can either set a timeout when event is added , or not. It is set in the $what argument to the callback function when a timeout has occurred.

Содержание

  • Event::add — Makes event pending
  • Event::addSignal — Makes signal event pending
  • Event::addTimer — Makes timer event pending
  • Event::__construct — Constructs Event object
  • Event::del — Makes event non-pending
  • Event::delSignal — Makes signal event non-pending
  • Event::delTimer — Makes timer event non-pending
  • Event::free — Make event non-pending and free resources allocated for this event.
  • Event::getSupportedMethods — Returns array with of the names of the methods supported in this version of Libevent
  • Event::pending — Detects whether event is pending or scheduled
  • Event::set — Re-configures event
  • Event::setPriority — Set event priority
  • Event::setTimer — Re-configures timer event
  • Event::signal — Constructs signal event object
  • Event::timer — Constructs timer event object


Makes event pending

  • « Event
  • Event::addSignal »
  • PHP Manual
  • Event
  • Makes event pending

Event::add

(PECL libevent >= 0.0.1)

Event::add — Makes event pending

Описание

public bool Event::add ([ double $timeout ] )

Marks event pending. Non-pending event will never occur, and the event callback will never be called. In conjuction with Event::del() an event could be re-scheduled by user at any time.

If Event::add() is called on an already pending event, libevent will leave it pending and re-schedule it with the given timeout(if specified). If in this case timeout is not specified, Event::add() has no effect.

Список параметров

timeout

Timeout in seconds.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE

Смотрите также

  • Event::addSignal() - Makes signal event pending
  • Event::addTimer() - Makes timer event pending
  • Event::del() - Makes event non-pending


Makes signal event pending

  • « Event::add
  • Event::addTimer »
  • PHP Manual
  • Event
  • Makes signal event pending

Event::addSignal

(PECL event >= 1.2.6-beta)

Event::addSignal — Makes signal event pending

Описание

public bool Event::addSignal ([ double $timeout ] )

Event::addSignal() is an alias of Event::add()

Примеры

Пример #1 Event::addSignal() example

<?php
/*
Launch it in a terminal window:

$ php examples/signal.php

In another terminal window find out the pid and send SIGTERM, e.g.:

$ 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

At the first terminal window you should catch the following:

Caught signal 15
*/
class MyEventSignal {
    private $base, $ev;

    public function __construct($base) {
        $this->base = $base;
        $this->ev = Event::signal($base, SIGTERM, array($this, 'eventSighandler'));
        $this->ev->addSignal();
    }

    public function eventSighandler($no, $c) {
        echo "Caught signal $no\n";
        $this->base->exit();
    }
}

$base = new EventBase();
$c    = new MyEventSignal($base);

$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

Caught signal 15

Смотрите также

  • Event::add() - Makes event pending
  • Event::del() - Makes event non-pending
  • Event::delSignal() - Makes signal event non-pending
  • Event::signal() - Constructs signal event object


Makes timer event pending

  • « Event::addSignal
  • Event::__construct »
  • PHP Manual
  • Event
  • Makes timer event pending

Event::addTimer

(PECL event >= 1.2.6-beta)

Event::addTimer — Makes timer event pending

Описание

public bool Event::addTimer ([ double $timeout ] )

Event::addTimer() is an alias of Event::add()

Возвращаемые значения

Примеры

Пример #1 Event::addTimer() example

<?php
$base = new EventBase();
$n = 2;
$e = Event::timer($base, function($n) use (&$e) {
    echo "$n seconds elapsed\n";
    $e->delTimer();
}, $n);
$e->addTimer($n);
$base->loop();
?>

Результатом выполнения данного примера будет что-то подобное:

2 seconds elapsed

Смотрите также

  • Event::add() - Makes event pending
  • Event::del() - Makes event non-pending
  • Event::delTimer() - Makes timer event non-pending


Constructs Event object

  • « Event::addTimer
  • Event::del »
  • PHP Manual
  • Event
  • Constructs Event object

Event::__construct

(PECL event >= 1.2.6-beta)

Event::__construct — Constructs Event object

Описание

public Event::__construct ( EventBase $base , mixed $fd , int $what , callable $cb [, mixed $arg = NULL ] )

Constructs Event object.

Список параметров

base

The event base to associate with.

fd

stream resource, socket resource, or numeric file descriptor. For timer events pass -1 . For signal events pass the signal number, e.g. SIGHUP .

what

Event flags. See Event flags .

cb

The event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Возвращаемые значения

Returns Event object.

Смотрите также

  • Event::signal() - Constructs signal event object
  • Event::timer() - Constructs timer event object


Makes event non-pending

  • « Event::__construct
  • Event::delSignal »
  • PHP Manual
  • Event
  • Makes event non-pending

Event::del

(PECL libevent >= 0.0.1)

Event::del — Makes event non-pending

Описание

public bool Event::del ( void )

Removes an event from the set of monitored events, i.e. makes it non-pending.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE

Смотрите также

  • Event::add() - Makes event pending


Makes signal event non-pending

  • « Event::del
  • Event::delTimer »
  • PHP Manual
  • Event
  • Makes signal event non-pending

Event::delSignal

(PECL event >= 1.2.6-beta)

Event::delSignal — Makes signal event non-pending

Описание

public bool Event::delSignal ( void )

Event::delSignal() is an alias of Event::del()

Смотрите также

  • Event::del() - Makes event non-pending


Makes timer event non-pending

  • « Event::delSignal
  • Event::free »
  • PHP Manual
  • Event
  • Makes timer event non-pending

Event::delTimer

(PECL event >= 1.2.6-beta)

Event::delTimer — Makes timer event non-pending

Описание

public bool Event::delTimer ( void )

Event::delTimer() is an alias of Event::del() .

Смотрите также

  • Event::del() - Makes event non-pending


Make event non-pending and free resources allocated for this event.

  • « Event::delTimer
  • Event::getSupportedMethods »
  • PHP Manual
  • Event
  • Make event non-pending and free resources allocated for this event.

Event::free

(PECL libevent >= 0.0.1)

Event::free — Make event non-pending and free resources allocated for this event.

Описание

public void Event::free ( void )

Removes event from the list of events monitored by libevent, and free resources allocated for the event.

Внимание

The Event::free() method currently doesn't destruct the object itself. To destruct the object completely call unset() , or assign NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • Event::__construct() - Constructs Event object


Returns array with of the names of the methods supported in this version of Libevent

  • « Event::free
  • Event::pending »
  • PHP Manual
  • Event
  • Returns array with of the names of the methods supported in this version of Libevent

Event::getSupportedMethods

(PECL event >= 1.2.6-beta)

Event::getSupportedMethods — Returns array with of the names of the methods supported in this version of Libevent

Описание

public static array Event::getSupportedMethods ( void )

Returns array with of the names of the methods(backends) supported in this version of Libevent.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns array.

Смотрите также

  • EventConfig


Detects whether event is pending or scheduled

  • « Event::getSupportedMethods
  • Event::set »
  • PHP Manual
  • Event
  • Detects whether event is pending or scheduled

Event::pending

(PECL event >= 1.2.6-beta)

Event::pending — Detects whether event is pending or scheduled

Описание

public bool Event::pending ( int $flags )

Detects whether event is pending or scheduled

Список параметров

flags

One of, or a composition of the following constants: Event::READ , Event::WRITE , Event::TIMEOUT , Event::SIGNAL .

Возвращаемые значения

Returns TRUE if event is pending or scheduled. Otherwise FALSE.


Re-configures event

  • « Event::pending
  • Event::setPriority »
  • PHP Manual
  • Event
  • Re-configures event

Event::set

(PECL libevent >= 0.0.1)

Event::set — Re-configures event

Описание

public bool Event::set ( EventBase $base , mixed $fd [, int $what [, callable $cb [, mixed $arg ]]] )

Re-configures event. Note, this function doesn't invoke obsolete libevent's event_set. It calls event_assign instead.

Список параметров

base

The event base to associate the event with.

fd

A stream, socket resource, or numeric file descriptor; for signal events pass -1 .

what

See Event flags .

cb

The event callback. See Event callbacks .

arg

Custom data associated with the event. It will be passed to the callback when the event becomes active.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Set event priority

  • « Event::set
  • Event::setTimer »
  • PHP Manual
  • Event
  • Set event priority

Event::setPriority

(PECL event >= 1.2.6-beta)

Event::setPriority — Set event priority

Описание

public bool Event::setPriority ( int $priority )

Set event priority.

Список параметров

priority

The event priority.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Re-configures timer event

  • « Event::setPriority
  • Event::signal »
  • PHP Manual
  • Event
  • Re-configures timer event

Event::setTimer

(PECL event >= 1.2.6-beta)

Event::setTimer — Re-configures timer event

Описание

public bool Event::setTimer ( EventBase $base , callable $cb [, mixed $arg ] )

Re-configures timer event. Note, this function doesn't invoke obsolete libevent's event_set . It calls event_assign instead.

Список параметров

base

The event base to associate with.

cb

The timer event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • Event::__construct() - Constructs Event object
  • Event::timer() - Constructs timer event object


Constructs signal event object

  • « Event::setTimer
  • Event::timer »
  • PHP Manual
  • Event
  • Constructs signal event object

Event::signal

(PECL event >= 1.2.6-beta)

Event::signal — Constructs signal event object

Описание

public static Event Event::signal ( EventBase $base , int $signum , callable $cb [, mixed $arg ] )

Constructs signal event object. This is a straightforward method to create a signal event. Note, the generic Event::__construct() method can contruct signal event objects too.

Список параметров

base

The associated event base object.

signum

The signal number.

cb

The signal event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Возвращаемые значения

Returns Event object on success. Otherwise FALSE.

Смотрите также

  • Constructing signal events


Constructs timer event object

  • « Event::signal
  • EventBase »
  • PHP Manual
  • Event
  • Constructs timer event object

Event::timer

(PECL event >= 1.2.6-beta)

Event::timer — Constructs timer event object

Описание

public static Event Event::timer ( EventBase $base , callable $cb [, mixed $arg ] )

Constructs timer event object. This is a straightforward method to create a timer event. Note, the generic Event::__construct() method can contruct signal event objects too.

Список параметров

base

The associated event base object.

cb

The signal event callback. See Event callbacks .

arg

Custom data. If specified, it will be passed to the callback when event triggers.

Возвращаемые значения

Returns Event object on success. Otherwise FALSE.


The EventBase class

(PECL event >= 1.2.6-beta)

Введение

EventBase class represents libevent's event base structure. It holds a set of events and can poll to determine which events are active.

Each event base has a method , or a backend that it uses to determine which events are ready. The recognized methods are: select , poll , epoll , kqueue , devpoll , evport and win32 .

To configure event base to use, or avoid specific backend EventConfig class can be used.

Внимание

Do NOT destroy the EventBase object as long as resources of the associated Event objects are not released. Otherwise, it will lead to unpredictable results!

Обзор классов

final EventBase {
/* Constants */
const integer LOOP_ONCE = 1 ;
const integer LOOP_NONBLOCK = 2 ;
const integer NOLOCK = 1 ;
const integer STARTUP_IOCP = 4 ;
const integer NO_CACHE_TIME = 8 ;
const integer EPOLL_USE_CHANGELIST = 16 ;
/* Методы */
public __construct ([ EventConfig $cfg ] )
public void dispatch ( void )
public bool exit ([ double $timeout ] )
public void free ( void )
public int getFeatures ( void )
public string getMethod ( void )
public double getTimeOfDayCached ( void )
public bool gotExit ( void )
public bool gotStop ( void )
public bool loop ([ int $flags ] )
public bool priorityInit ( int $n_priorities )
public bool reInit ( void )
public bool stop ( void )
}

Предопределенные константы

EventBase::LOOP_ONCE

Flag used with EventBase::loop() method which means: "block until libevent has an active event, then exit once all active events have had their callbacks run".

EventBase::LOOP_NONBLOCK

Flag used with EventBase::loop() method which means: "do not block: see which events are ready now, run the callbacks of the highest-priority ones, then exit".

EventBase::NOLOCK

Configuration flag. Do not allocate a lock for the event base, even if we have locking set up".

EventBase::STARTUP_IOCP

Windows-only configuration flag. Enables the IOCP dispatcher at startup.

EventBase::NO_CACHE_TIME

Configuration flag. Instead of checking the current time every time the event loop is ready to run timeout callbacks, check after each timeout callback.

EventBase::EPOLL_USE_CHANGELIST

If we are using the epoll backend, this flag says that it is safe to use Libevent's internal change-list code to batch up adds and deletes in order to try to do as few syscalls as possible.

Setting this flag can make code run faster, but it may trigger a Linux bug: it is not safe to use this flag if one has any fds cloned by dup(), or its variants. Doing so will produce strange and hard-to-diagnose bugs.

This flag can also be activated by settnig the EVENT_EPOLL_USE_CHANGELIST environment variable.

This flag has no effect if one winds up using a backend other than epoll .

Содержание

  • EventBase::__construct — Constructs EventBase object
  • EventBase::dispatch — Dispatch pending events
  • EventBase::exit — Stop dispatching events
  • EventBase::free — Free resources allocated for this event base
  • EventBase::getFeatures — Returns bitmask of features supported
  • EventBase::getMethod — Returns event method in use
  • EventBase::getTimeOfDayCached — Returns the current event base time
  • EventBase::gotExit — Checks if the event loop was told to exit
  • EventBase::gotStop — Checks if the event loop was told to exit
  • EventBase::loop — Dispatch pending events
  • EventBase::priorityInit — Sets number of priorities per event base
  • EventBase::reInit — Re-initialize event base(after a fork).
  • EventBase::stop — Tells event_base to stop dispatching events


Constructs EventBase object

  • « EventBase
  • EventBase::dispatch »
  • PHP Manual
  • EventBase
  • Constructs EventBase object

EventBase::__construct

(PECL event >= 1.2.6-beta)

EventBase::__construct — Constructs EventBase object

Описание

public EventBase::__construct ([ EventConfig $cfg ] )

Constructs EventBase object

Список параметров

cfg

Optional EventConfig object.

Возвращаемые значения

Returns EventBase object.

Смотрите также

  • EventConfig


Dispatch pending events

  • « EventBase::__construct
  • EventBase::exit »
  • PHP Manual
  • EventBase
  • Dispatch pending events

EventBase::dispatch

(PECL event >= 1.2.6-beta)

EventBase::dispatch — Dispatch pending events

Описание

public void EventBase::dispatch ( void )

Wait for events to become active, and run their callbacks. The same as EventBase::loop() with no flags set.

Внимание

Do NOT destroy the EventBase object as long as resources of the associated Event objects are not released. Otherwise, it will lead to unpredictable results!

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBase::loop() - Dispatch pending events


Stop dispatching events

  • « EventBase::dispatch
  • EventBase::free »
  • PHP Manual
  • EventBase
  • Stop dispatching events

EventBase::exit

(PECL event >= 1.2.6-beta)

EventBase::exit — Stop dispatching events

Описание

public bool EventBase::exit ([ double $timeout ] )

Tells event base to stop optionally after given number of seconds.

Список параметров

timeout

Optional number of seconds after which the event base should stop dispatching events.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBase::stop() - Tells event_base to stop dispatching events


Free resources allocated for this event base

  • « EventBase::exit
  • EventBase::getFeatures »
  • PHP Manual
  • EventBase
  • Free resources allocated for this event base

EventBase::free

(PECL event >= 1.10.0)

EventBase::free — Free resources allocated for this event base

Описание

public void EventBase::free ( void )

Deallocates resources allocated by libevent for the EventBase object.

Внимание

The EventBase::free() method doesn't destruct the object itself. To destruct the object completely call unset() , or assign NULL.

This method does not deallocate or detach any of the events that are currently associated with the EventBase object, or close any of their sockets - beware.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventBase::__construct() - Constructs EventBase object


Returns bitmask of features supported

  • « EventBase::free
  • EventBase::getMethod »
  • PHP Manual
  • EventBase
  • Returns bitmask of features supported

EventBase::getFeatures

(PECL event >= 1.2.6-beta)

EventBase::getFeatures — Returns bitmask of features supported

Описание

public int EventBase::getFeatures ( void )

Returns bitmask of features supported.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns integer representing a bitmask of supported features. See EventConfig::FEATURE_* constants .

Примеры

Пример #1 EventBase::getFeatures() example

<?php
// Avoiding "select" method
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}

$base = new EventBase($cfg);

echo "Features:\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() - Returns event method in use
  • EventConfig


Returns event method in use

  • « EventBase::getFeatures
  • EventBase::getTimeOfDayCached »
  • PHP Manual
  • EventBase
  • Returns event method in use

EventBase::getMethod

(PECL event >= 1.2.6-beta)

EventBase::getMethod — Returns event method in use

Описание

public string EventBase::getMethod ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

String representing used event method(backend).

Примеры

Пример #1 EventBase::getMethod() example

<?php
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}

// Create event_base associated with the config
$base = new EventBase($cfg);
echo "Event method used: ", $base->getMethod(), PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

`select' method avoided
Event method used: epoll

Смотрите также

  • EventBase::getFeatures() - Returns bitmask of features supported


Returns the current event base time

  • « EventBase::getMethod
  • EventBase::gotExit »
  • PHP Manual
  • EventBase
  • Returns the current event base time

EventBase::getTimeOfDayCached

(PECL event >= 1.2.6-beta)

EventBase::getTimeOfDayCached — Returns the current event base time

Описание

public double EventBase::getTimeOfDayCached ( void )

On success returns the current time(as returned by gettimeofday() ), looking at the cached value in base if possible, and calling gettimeofday() or clock_gettime() as appropriate if there is no cached time.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current event base time. On failure returns NULL.


Checks if the event loop was told to exit

  • « EventBase::getTimeOfDayCached
  • EventBase::gotStop »
  • PHP Manual
  • EventBase
  • Checks if the event loop was told to exit

EventBase::gotExit

(PECL event >= 1.2.6-beta)

EventBase::gotExit — Checks if the event loop was told to exit

Описание

public bool EventBase::gotExit ( void )

Checks if the event loop was told to exit by EventBase::exit() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE, event loop was told to exit by EventBase::exit() . Otherwise FALSE.

Смотрите также

  • EventBase::exit() - Stop dispatching events
  • EventBase::stop() - Tells event_base to stop dispatching events
  • EventBase::gotStop() - Checks if the event loop was told to exit


Checks if the event loop was told to exit

  • « EventBase::gotExit
  • EventBase::loop »
  • PHP Manual
  • EventBase
  • Checks if the event loop was told to exit

EventBase::gotStop

(PECL event >= 1.2.6-beta)

EventBase::gotStop — Checks if the event loop was told to exit

Описание

public bool EventBase::gotStop ( void )

Checks if the event loop was told to exit by EventBase::stop() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE, event loop was told to stop by EventBase::stop() . Otherwise FALSE.

Смотрите также

  • EventBase::exit() - Stop dispatching events
  • EventBase::stop() - Tells event_base to stop dispatching events
  • EventBase::gotExit() - Checks if the event loop was told to exit


Dispatch pending events

  • « EventBase::gotStop
  • EventBase::priorityInit »
  • PHP Manual
  • EventBase
  • Dispatch pending events

EventBase::loop

(PECL event >= 1.2.6-beta)

EventBase::loop — Dispatch pending events

Описание

public bool EventBase::loop ([ int $flags ] )

Wait for events to become active, and run their callbacks.

Внимание

Do NOT destroy the EventBase object as long as resources of the associated Event objects are not released. Otherwise, it will lead to unpredictable results!

Список параметров

flags

Optional flags. One of EventBase::LOOP_* constants. See EventBase constants .

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBase::dispatch() - Dispatch pending events


Sets number of priorities per event base

  • « EventBase::loop
  • EventBase::reInit »
  • PHP Manual
  • EventBase
  • Sets number of priorities per event base

EventBase::priorityInit

(PECL event >= 1.2.6-beta)

EventBase::priorityInit — Sets number of priorities per event base

Описание

public bool EventBase::priorityInit ( int $n_priorities )

Sets number of priorities per event base.

Список параметров

n_priorities

The number of priorities per event base.

Возвращаемые значения

Returns TRUE on success, otherwise FALSE.

Смотрите также

  • Event::setPriority() - Set event priority


Re-initialize event base(after a fork).

  • « EventBase::priorityInit
  • EventBase::stop »
  • PHP Manual
  • EventBase
  • Re-initialize event base(after a fork).

EventBase::reInit

(PECL event >= 1.2.6-beta)

EventBase::reInit — Re-initialize event base(after a fork).

Описание

public bool EventBase::reInit ( void )

Re-initialize event base. Should be called after a fork.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Tells event_base to stop dispatching events

  • « EventBase::reInit
  • EventBuffer »
  • PHP Manual
  • EventBase
  • Tells event_base to stop dispatching events

EventBase::stop

(PECL event >= 1.2.6-beta)

EventBase::stop — Tells event_base to stop dispatching events

Описание

public bool EventBase::stop ( void )

Tells event_base to stop dispatching events

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBase::exit() - Stop dispatching events
  • EventBase::gotStop() - Checks if the event loop was told to exit


The EventBuffer class

(PECL event >= 1.5.0)

Введение

EventBuffer represents Libevent's "evbuffer", an utility functionality for buffered I/O.

Event buffers are meant to be generally useful for doing the "buffer" part of buffered network I/O.

Обзор классов

EventBuffer {
/* Constants */
const integer EOL_ANY = 0 ;
const integer EOL_CRLF = 1 ;
const integer EOL_CRLF_STRICT = 2 ;
const integer EOL_LF = 3 ;
const integer PTR_SET = 0 ;
const integer PTR_ADD = 1 ;
/* Свойства */
public readonly int $length ;
public readonly int $contiguous_space ;
/* Методы */
public bool add ( string $data )
public bool addBuffer ( EventBuffer $buf )
public int appendFrom ( EventBuffer $buf , int $len )
public __construct ( void )
public int copyout ( string &$data , int $max_bytes )
public bool drain ( int $len )
public void enableLocking ( void )
public bool expand ( int $len )
public bool freeze ( bool $at_front )
public void lock ( void )
public bool prepend ( string $data )
public bool prependBuffer ( EventBuffer $buf )
public string pullup ( int $size )
public string read ( int $max_bytes )
public int read ( mixed $fd , int $howmuch )
public string readLine ( int $eol_style )
public mixed search ( string $what [, int $start = -1 [, int $end = -1 ]] )
public mixed searchEol ([ int $start = -1 [, int $eol_style = EventBuffer::EOL_ANY ]] )
public string substr ( int $start [, int $length ] )
public bool unfreeze ( bool $at_front )
public bool unlock ( void )
public int write ( mixed $fd [, int $howmuch ] )
}

Свойства

length

The number of bytes stored in an event buffer.

contiguous_space

The number of bytes stored contiguously at the front of the buffer. The bytes in a buffer may be stored in multiple separate chunks of memory; the property returns the number of bytes currently stored in the first chunk.

Предопределенные константы

EventBuffer::EOL_ANY

The end of line is any sequence of any number of carriage return and linefeed characters. This format is not very useful; it exists mainly for backward compatibility.

EventBuffer::EOL_CRLF

The end of the line is an optional carriage return, followed by a linefeed. (In other words, it is either a "\r\n" or a "\n" .) This format is useful in parsing text-based Internet protocols, since the standards generally prescribe a "\r\n" line-terminator, but nonconformant clients sometimes say just "\n" .

EventBuffer::EOL_CRLF_STRICT

The end of a line is a single carriage return, followed by a single linefeed. (This is also known as "\r\n" . The ASCII values are 0x0D 0x0A ).

EventBuffer::EOL_LF

The end of a line is a single linefeed character. (This is also known as "\n" . It is ASCII value is 0x0A .)

EventBuffer::PTR_SET

Flag used as argument of EventBuffer::setPosition() method. If this flag specified, the position pointer is moved to an absolute position within the buffer.

EventBuffer::PTR_ADD

The same as EventBuffer::PTR_SET , except this flag causes EventBuffer::setPosition() method to move position forward up to the specified number of bytes(instead of setting absolute position).

Содержание

  • EventBuffer::add — Append data to the end of an event buffer
  • EventBuffer::addBuffer — Move all data from a buffer provided to the current instance of EventBuffer
  • EventBuffer::appendFrom — Moves the specified number of bytes from a source buffer to the end of the current buffer
  • EventBuffer::__construct — Constructs EventBuffer object
  • EventBuffer::copyout — Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain — Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::enableLocking — Описание
  • EventBuffer::expand — Reserves space in buffer
  • EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding
  • EventBuffer::lock — Acquires a lock on buffer
  • EventBuffer::prepend — Prepend data to the front of the buffer
  • EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer
  • EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::read — Read data from an evbuffer and drain the bytes read
  • EventBuffer::readFrom — Read data from a file onto the end of the buffer
  • EventBuffer::readLine — Extracts a line from the front of the buffer
  • EventBuffer::search — Scans the buffer for an occurrence of a string
  • EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line
  • EventBuffer::substr — Substracts a portion of the buffer data
  • EventBuffer::unfreeze — Re-enable calls that modify an event buffer
  • EventBuffer::unlock — Releases lock acquired by EventBuffer::lock
  • EventBuffer::write — Write contents of the buffer to a file or socket


Append data to the end of an event buffer

  • « EventBuffer
  • EventBuffer::addBuffer »
  • PHP Manual
  • EventBuffer
  • Append data to the end of an event buffer

EventBuffer::add

(PECL event >= 1.2.6-beta)

EventBuffer::add — Append data to the end of an event buffer

Описание

public bool EventBuffer::add ( string $data )

Append data to the end of an event buffer.

Список параметров

data

String to be appended to the end of the buffer.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::addBuffer() - Move all data from a buffer provided to the current instance of EventBuffer


Move all data from a buffer provided to the current instance of EventBuffer

  • « EventBuffer::add
  • EventBuffer::appendFrom »
  • PHP Manual
  • EventBuffer
  • Move all data from a buffer provided to the current instance of EventBuffer

EventBuffer::addBuffer

(PECL event >= 1.2.6-beta)

EventBuffer::addBuffer — Move all data from a buffer provided to the current instance of EventBuffer

Описание

public bool EventBuffer::addBuffer ( EventBuffer $buf )

Move all data from the buffer provided in buf parameter to the end of current EventBuffer . This is a destructive add. The data from one buffer moves into the other buffer. However, no unnecessary memory copies occur.

Список параметров

buf

The source EventBuffer object.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::add() - Append data to the end of an event buffer


Moves the specified number of bytes from a source buffer to the end of the current buffer

  • « EventBuffer::addBuffer
  • EventBuffer::__construct »
  • PHP Manual
  • EventBuffer
  • Moves the specified number of bytes from a source buffer to the end of the current buffer

EventBuffer::appendFrom

(PECL event >= 1.6.0)

EventBuffer::appendFrom — Moves the specified number of bytes from a source buffer to the end of the current buffer

Описание

public int EventBuffer::appendFrom ( EventBuffer $buf , int $len )

Moves the specified number of bytes from a source buffer to the end of the current buffer. If there are fewer number of bytes, it moves all the bytes available from the source buffer.

Список параметров

buf

Source buffer.

len

Возвращаемые значения

Returns the number of bytes read.

Список изменений

Версия | Описание
1.6.0 | Renamed EventBuffer::appendFrom()(the old method name) to EventBuffer::appendFrom().

Смотрите также

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


Constructs EventBuffer object

  • « EventBuffer::appendFrom
  • EventBuffer::copyout »
  • PHP Manual
  • EventBuffer
  • Constructs EventBuffer object

EventBuffer::__construct

(PECL event >= 1.2.6-beta)

EventBuffer::__construct — Constructs EventBuffer object

Описание

public EventBuffer::__construct ( void )

Constructs EventBuffer object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns EventBuffer object.


Copies out specified number of bytes from the front of the buffer

  • « EventBuffer::__construct
  • EventBuffer::drain »
  • PHP Manual
  • EventBuffer
  • Copies out specified number of bytes from the front of the buffer

EventBuffer::copyout

(PECL event >= 1.2.6-beta)

EventBuffer::copyout — Copies out specified number of bytes from the front of the buffer

Описание

public int EventBuffer::copyout ( string &$data , int $max_bytes )

Behaves just like EventBuffer::read() , but does not drain any data from the buffer. I.e. it copies the first max_bytes bytes from the front of the buffer into data . If there are fewer than max_bytes bytes available, the function copies all the bytes there are.

Список параметров

data

Output string.

max_bytes

The number of bytes to copy.

Возвращаемые значения

Returns the number of bytes copied, or -1 on failure.

Смотрите также

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Removes specified number of bytes from the front of the buffer without copying it anywhere

  • « EventBuffer::copyout
  • EventBuffer::enableLocking »
  • PHP Manual
  • EventBuffer
  • Removes specified number of bytes from the front of the buffer without copying it anywhere

EventBuffer::drain

(PECL event >= 1.2.6-beta)

EventBuffer::drain — Removes specified number of bytes from the front of the buffer without copying it anywhere

Описание

public bool EventBuffer::drain ( int $len )

Behaves as EventBuffer::read() , except that it does not copy the data: it just removes it from the front of the buffer.

Список параметров

len

The number of bytes to remove from the buffer.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Описание

  • « EventBuffer::drain
  • EventBuffer::expand »
  • PHP Manual
  • EventBuffer
  • Описание

EventBuffer::enableLocking

(PECL event >= 1.2.6-beta)

EventBuffer::enableLocking —

Описание

public void EventBuffer::enableLocking ( void )

Enable locking on an EventBuffer so that it can safely be used by multiple threads at the same time. When locking is enabled, the lock will be held when callbacks are invoked. This could result in deadlock if you aren't careful. Plan accordingly!

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • » Evbuffers and Thread-safety


Reserves space in buffer

  • « EventBuffer::enableLocking
  • EventBuffer::freeze »
  • PHP Manual
  • EventBuffer
  • Reserves space in buffer

EventBuffer::expand

(PECL event >= 1.2.6-beta)

EventBuffer::expand — Reserves space in buffer

Описание

public bool EventBuffer::expand ( int $len )

Alters the last chunk of memory in the buffer, or adds a new chunk, such that the buffer is now large enough to contain len bytes without any further allocations.

Список параметров

len

The number of bytes to reserve for the buffer

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Prevent calls that modify an event buffer from succeeding

  • « EventBuffer::expand
  • EventBuffer::lock »
  • PHP Manual
  • EventBuffer
  • Prevent calls that modify an event buffer from succeeding

EventBuffer::freeze

(PECL event >= 1.2.6-beta)

EventBuffer::freeze — Prevent calls that modify an event buffer from succeeding

Описание

public bool EventBuffer::freeze ( bool $at_front )

Prevent calls that modify an event buffer from succeeding

Список параметров

at_front

Whether to disable changes to the front or end of the buffer.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::unfreeze() - Re-enable calls that modify an event buffer


Acquires a lock on buffer

  • « EventBuffer::freeze
  • EventBuffer::prepend »
  • PHP Manual
  • EventBuffer
  • Acquires a lock on buffer

EventBuffer::lock

(PECL event >= 1.2.6-beta)

EventBuffer::lock — Acquires a lock on buffer

Описание

public void EventBuffer::lock ( void )

Acquires a lock on buffer. Can be used in pair with EventBuffer::unlock() to make a set of operations atomic, i.e. thread-safe. Note, it is not needed to lock buffers for individual operations. When locking is enabled(see EventBuffer::enableLocking() ), individual operations on event buffers are already atomic.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventBuffer::unlock() - Releases lock acquired by EventBuffer::lock


Prepend data to the front of the buffer

  • « EventBuffer::lock
  • EventBuffer::prependBuffer »
  • PHP Manual
  • EventBuffer
  • Prepend data to the front of the buffer

EventBuffer::prepend

(PECL event >= 1.2.6-beta)

EventBuffer::prepend — Prepend data to the front of the buffer

Описание

public bool EventBuffer::prepend ( string $data )

Prepend data to the front of the buffer.

Список параметров

data

String to be prepended to the front of the buffer.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::prependBuffer() - Moves all data from source buffer to the front of current buffer
  • EventBuffer::add() - Append data to the end of an event buffer
  • EventBuffer::addBuffer() - Move all data from a buffer provided to the current instance of EventBuffer


Moves all data from source buffer to the front of current buffer

  • « EventBuffer::prepend
  • EventBuffer::pullup »
  • PHP Manual
  • EventBuffer
  • Moves all data from source buffer to the front of current buffer

EventBuffer::prependBuffer

(PECL event >= 1.2.6-beta)

EventBuffer::prependBuffer — Moves all data from source buffer to the front of current buffer

Описание

public bool EventBuffer::prependBuffer ( EventBuffer $buf )

Behaves as EventBuffer::addBuffer() , except that it moves data to the front of the buffer.

Список параметров

buf

Source buffer.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::add() - Append data to the end of an event buffer
  • EventBuffer::addBuffer() - Move all data from a buffer provided to the current instance of EventBuffer
  • EventBuffer::prepend() - Prepend data to the front of the buffer


Linearizes data within buffer and returns it's contents as a string

  • « EventBuffer::prependBuffer
  • EventBuffer::read »
  • PHP Manual
  • EventBuffer
  • Linearizes data within buffer and returns it's contents as a string

EventBuffer::pullup

(PECL event >= 1.2.6-beta)

EventBuffer::pullup — Linearizes data within buffer and returns it's contents as a string

Описание

public string EventBuffer::pullup ( int $size )

"Linearizes" the first size bytes of the buffer, copying or moving them as needed to ensure that they are all contiguous and occupying the same chunk of memory. If size is negative, the function linearizes the entire buffer.

Внимание

Calling EventBuffer::pullup() with a large size can be quite slow, since it potentially needs to copy the entire buffer's contents.

Список параметров

size

The number of bytes required to be contiguous within the buffer.

Возвращаемые значения

If size is greater than the number of bytes in the buffer, the function returns NULL. Otherwise, EventBuffer::pullup() returns string.

Смотрите также

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Read data from an evbuffer and drain the bytes read

  • « EventBuffer::pullup
  • EventBuffer::readFrom »
  • PHP Manual
  • EventBuffer
  • Read data from an evbuffer and drain the bytes read

EventBuffer::read

(PECL event >= 1.6.0)

EventBuffer::read — Read data from an evbuffer and drain the bytes read

Описание

public string EventBuffer::read ( int $max_bytes )

Read the first max_bytes from the buffer and drain the bytes read. If more max_bytes are requested than are available in the buffer, it only extracts as many bytes as available.

Список параметров

max_bytes

Maxmimum number of bytes to read from the buffer.

Возвращаемые значения

Returns string read, or FALSE on failure.

Список изменений

Версия | Описание
1.6.0 | Renamed EventBuffer::read()(the old method name) to EventBuffer::read(). EventBuffer::read() now takes only max_bytes argument; returns string instead of integer.

Смотрите также

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Read data from a file onto the end of the buffer

  • « EventBuffer::read
  • EventBuffer::readLine »
  • PHP Manual
  • EventBuffer
  • Read data from a file onto the end of the buffer

EventBuffer::readFrom

(PECL event >= 1.7.0)

EventBuffer::readFrom — Read data from a file onto the end of the buffer

Описание

public int EventBuffer::read ( mixed $fd , int $howmuch )

Read data from the file specified by fd onto the end of the buffer.

Список параметров

fd

Socket resource, stream, or numeric file descriptor.

howmuch

Maxmimum number of bytes to read.

Возвращаемые значения

Returns the number of bytes read, or FALSE on failure.

Смотрите также

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::readLine() - Extracts a line from the front of the buffer
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Extracts a line from the front of the buffer

  • « EventBuffer::readFrom
  • EventBuffer::search »
  • PHP Manual
  • EventBuffer
  • Extracts a line from the front of the buffer

EventBuffer::readLine

(PECL event >= 1.2.6-beta)

EventBuffer::readLine — Extracts a line from the front of the buffer

Описание

public string EventBuffer::readLine ( int $eol_style )

Extracts a line from the front of the buffer and returns it in a newly allocated string. If there is not a whole line to read, the function returns NULL. The line terminator is not included in the copied string.

Список параметров

eol_style

One of EventBuffer:EOL_* constants .

Возвращаемые значения

On success returns the line read from the buffer, otherwise NULL.

Смотрите также

  • EventBuffer::copyout() - Copies out specified number of bytes from the front of the buffer
  • EventBuffer::drain() - Removes specified number of bytes from the front of the buffer without copying it anywhere
  • EventBuffer::pullup() - Linearizes data within buffer and returns it's contents as a string
  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read
  • EventBuffer::appendFrom() - Moves the specified number of bytes from a source buffer to the end of the current buffer


Scans the buffer for an occurrence of a string

  • « EventBuffer::readLine
  • EventBuffer::searchEol »
  • PHP Manual
  • EventBuffer
  • Scans the buffer for an occurrence of a string

EventBuffer::search

(PECL event >= 1.2.6-beta)

EventBuffer::search — Scans the buffer for an occurrence of a string

Описание

public mixed EventBuffer::search ( string $what [, int $start = -1 [, int $end = -1 ]] )

Scans the buffer for an occurrence of the string what . It returns numeric position of the string, or FALSE if the string was not found.

If the start argument is provided, it points to the position at which the search should begin; otherwise, the search is performed from the start of the string. If end argument provided, the search is performed between start and end buffer positions.

Список параметров

what

String to search.

start

Start search position.

end

End search position.

Возвращаемые значения

Returns numeric position of the first occurance of the string in the buffer, or FALSE if string is not found.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 EventBuffer::search() example

<?php
// Count total occurances of 'str' in 'buf'
function count_instances($buf, $str) {
    $total = 0;
    $p     = 0;
    $i     = 0;

    while (1) {
        $p = $buf->search($str, $p);
        if ($p === FALSE) {
            break;
        }
        ++$total;
        ++$p;
    }

    return $total;
}

$buf = new EventBuffer();
$buf->add("Some string within a string inside another string");
var_dump(count_instances($buf, "str"));
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)

Смотрите также

  • EventBuffer::searchEol() - Scans the buffer for an occurrence of an end of line


Scans the buffer for an occurrence of an end of line

  • « EventBuffer::search
  • EventBuffer::substr »
  • PHP Manual
  • EventBuffer
  • Scans the buffer for an occurrence of an end of line

EventBuffer::searchEol

(PECL event >= 1.5.0)

EventBuffer::searchEol — Scans the buffer for an occurrence of an end of line

Описание

public mixed EventBuffer::searchEol ([ int $start = -1 [, int $eol_style = EventBuffer::EOL_ANY ]] )

Scans the buffer for an occurrence of an end of line specified by eol_style parameter . It returns numeric position of the string, or FALSE if the string was not found.

If the start argument is provided, it represents the position at which the search should begin; otherwise, the search is performed from the start of the string. If end argument provided, the search is performed between start and end buffer positions.

Список параметров

start

Start search position.

eol_style

One of EventBuffer:EOL_* constants .

Возвращаемые значения

Returns numeric position of the first occurance of end-of-line symbol in the buffer, or FALSE if not found.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Смотрите также

  • EventBuffer::search() - Scans the buffer for an occurrence of a string


Substracts a portion of the buffer data

  • « EventBuffer::searchEol
  • EventBuffer::unfreeze »
  • PHP Manual
  • EventBuffer
  • Substracts a portion of the buffer data

EventBuffer::substr

(PECL event >= 1.6.0)

EventBuffer::substr — Substracts a portion of the buffer data

Описание

public string EventBuffer::substr ( int $start [, int $length ] )

Substracts up to length bytes of the buffer data beginning at start position.

Список параметров

start

The start position of data to be substracted.

length

Maximum number of bytes to substract.

Возвращаемые значения

Returns the data substracted as a string on success, or FALSE on failure.

Смотрите также

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


Re-enable calls that modify an event buffer

  • « EventBuffer::substr
  • EventBuffer::unlock »
  • PHP Manual
  • EventBuffer
  • Re-enable calls that modify an event buffer

EventBuffer::unfreeze

(PECL event >= 1.2.6-beta)

EventBuffer::unfreeze — Re-enable calls that modify an event buffer

Описание

public bool EventBuffer::unfreeze ( bool $at_front )

Re-enable calls that modify an event buffer.

Список параметров

at_front

Whether to enable events at the front or at the end of the buffer.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::freeze() - Prevent calls that modify an event buffer from succeeding


Releases lock acquired by EventBuffer::lock

  • « EventBuffer::unfreeze
  • EventBuffer::write »
  • PHP Manual
  • EventBuffer
  • Releases lock acquired by EventBuffer::lock

EventBuffer::unlock

(PECL event >= 1.2.6-beta)

EventBuffer::unlock — Releases lock acquired by EventBuffer::lock

Описание

public bool EventBuffer::unlock ( void )

Releases lock acquired by EventBuffer::lock() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBuffer::lock() - Acquires a lock on buffer


Write contents of the buffer to a file or socket

  • « EventBuffer::unlock
  • EventBufferEvent »
  • PHP Manual
  • EventBuffer
  • Write contents of the buffer to a file or socket

EventBuffer::write

(PECL event >= 1.6.0)

EventBuffer::write — Write contents of the buffer to a file or socket

Описание

public int EventBuffer::write ( mixed $fd [, int $howmuch ] )

Write contents of the buffer to a file descriptor. The buffer will be drained after the bytes have been successfully written.

Список параметров

fd

Socket resource, stream or numeric file descriptor associated normally associated with a socket.

howmuch

The maximum number of bytes to write.

Возвращаемые значения

Returns the number of bytes written, or FALSE on error.

Смотрите также

  • EventBuffer::read() - Read data from an evbuffer and drain the bytes read


The EventBufferEvent class

(PECL event >= 1.2.6-beta)

Введение

Represents Libevent's buffer event.

Usually an application wants to perform some amount of data buffering in addition to just responding to events. When we want to write data, for example, the usual pattern looks like:

  1. Decide that we want to write some data to a connection; put that data in a buffer.

  2. Wait for the connection to become writable

  3. Write as much of the data as we can

  4. Remember how much we wrote, and if we still have more data to write, wait for the connection to become writable again.

This buffered I/O pattern is common enough that Libevent provides a generic mechanism for it. A "buffer event" consists of an underlying transport (like a socket), a read buffer, and a write buffer. Instead of regular events, which give callbacks when the underlying transport is ready to be read or written, a buffer event invokes its user-supplied callbacks when it has read or written enough data.

Обзор классов

final EventBufferEvent {
/* Constants */
const integer READING = 1 ;
const integer WRITING = 2 ;
const integer EOF = 16 ;
const integer ERROR = 32 ;
const integer TIMEOUT = 64 ;
const integer CONNECTED = 128 ;
const integer OPT_CLOSE_ON_FREE = 1 ;
const integer OPT_THREADSAFE = 2 ;
const integer OPT_DEFER_CALLBACKS = 4 ;
const integer OPT_UNLOCK_CALLBACKS = 8 ;
const integer SSL_OPEN = 0 ;
const integer SSL_CONNECTING = 1 ;
const integer SSL_ACCEPTING = 2 ;
/* Свойства */
public integer $fd ;
public integer $priority ;
public readonly EventBuffer $input ;
public readonly EventBuffer $output ;
/* Методы */
public void close ( void )
public bool connect ( string $addr )
public bool connectHost ( EventDnsBase $dns_base , string $hostname , int $port [, int $family = EventUtil::AF_UNSPEC ] )
public __construct ( EventBase $base [, mixed $socket = NULL [, int $options = 0 [, callable $readcb = NULL [, callable $writecb = NULL [, callable $eventcb = NULL ]]]]] )
public static array createPair ( EventBase $base [, int $options = 0 ] )
public bool disable ( int $events )
public bool enable ( int $events )
public void free ( void )
public string getDnsErrorString ( void )
public int getEnabled ( void )
public EventBuffer getInput ( void )
public EventBuffer getOutput ( void )
public string read ( int $size )
public bool readBuffer ( EventBuffer $buf )
public void setCallbacks ( callable $readcb , callable $writecb , callable $eventcb [, string $arg ] )
public bool setPriority ( int $priority )
public bool setTimeouts ( float $timeout_read , float $timeout_write )
public void setWatermark ( int $events , int $lowmark , int $highmark )
public string sslError ( void )
public static EventBufferEvent sslFilter ( EventBase $base , EventBufferEvent $underlying , EventSslContext $ctx , int $state [, int $options = 0 ] )
public string sslGetCipherInfo ( void )
public string sslGetCipherName ( void )
public string sslGetCipherVersion ( void )
public string sslGetProtocol ( void )
public void sslRenegotiate ( void )
public static EventBufferEvent sslSocket ( EventBase $base , mixed $socket , EventSslContext $ctx , int $state [, int $options ] )
public bool write ( string $data )
public bool writeBuffer ( EventBuffer $buf )
}

Свойства

fd

Numeric file descriptor associated with the buffer event. Normally represents a bound socket. Equals to NULL, if there is no file descriptor(socket) associated with the buffer event.

priority

The priority of the events used to implement the buffer event.

input

Underlying input buffer object( EventBuffer )

output

Underlying output buffer object( EventBuffer )

Предопределенные константы

EventBufferEvent::READING

An event occured during a read operation on the bufferevent. See the other flags for which event it was.

EventBufferEvent::WRITING

An event occured during a write operation on the bufferevent. See the other flags for which event it was.

EventBufferEvent::EOF

Got an end-of-file indication on the buffer event.

EventBufferEvent::ERROR

An error occurred during a bufferevent operation. For more information on what the error was, call EventUtil::getLastSocketErrno() and/or EventUtil::getLastSocketError() .

EventBufferEvent::TIMEOUT

EventBufferEvent::CONNECTED

Finished a requested connection on the bufferevent.

EventBufferEvent::OPT_CLOSE_ON_FREE

When the buffer event is freed, close the underlying transport. This will close an underlying socket, free an underlying buffer event, etc.

EventBufferEvent::OPT_THREADSAFE

Automatically allocate locks for the bufferevent, so that it's safe to use from multiple threads.

EventBufferEvent::OPT_DEFER_CALLBACKS

When this flag is set, the bufferevent defers all of its callbacks. See » Fast portable non-blocking network programming with Libevent, Deferred callbacks .

EventBufferEvent::OPT_UNLOCK_CALLBACKS

By default, when the bufferevent is set up to be threadsafe, the buffer event's locks are held whenever the any user-provided callback is invoked. Setting this option makes Libevent release the buffer event's lock when it's invoking the callbacks.

EventBufferEvent::SSL_OPEN

The SSL handshake is done

EventBufferEvent::SSL_CONNECTING

SSL is currently performing negotiation as a client

EventBufferEvent::SSL_ACCEPTING

SSL is currently performing negotiation as a server

Содержание

  • EventBufferEvent::close — Closes file descriptor associated with the current buffer event
  • EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket
  • EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving
  • EventBufferEvent::__construct — Constructs EventBufferEvent object
  • EventBufferEvent::createPair — Creates two buffer events connected to each other
  • EventBufferEvent::disable — Disable events read, write, or both on a buffer event.
  • EventBufferEvent::enable — Enable events read, write, or both on a buffer event.
  • EventBufferEvent::free — Free a buffer event
  • EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt
  • EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event
  • EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event
  • EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event
  • EventBufferEvent::read — Read buffer's data
  • EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf
  • EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks
  • EventBufferEvent::setPriority — Assign a priority to a bufferevent
  • EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event
  • EventBufferEvent::setWatermark — Adjusts read and/or write watermarks
  • EventBufferEvent::sslError — Returns most recent OpenSSL error reported on the buffer event
  • EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event
  • EventBufferEvent::sslGetCipherInfo — Returns a textual description of the cipher.
  • EventBufferEvent::sslGetCipherName — Returns the current cipher name of the SSL connection.
  • EventBufferEvent::sslGetCipherVersion — Returns version of cipher used by current SSL connection.
  • EventBufferEvent::sslGetProtocol — Returns the name of the protocol used for current SSL connection.
  • EventBufferEvent::sslRenegotiate — Tells a bufferevent to begin SSL renegotiation.
  • EventBufferEvent::sslSocket — Creates a new SSL buffer event to send its data over an SSL on a socket
  • EventBufferEvent::write — Adds data to a buffer event's output buffer
  • EventBufferEvent::writeBuffer — Adds contents of the entire buffer to a buffer event's output buffer


Closes file descriptor associated with the current buffer event

  • « EventBufferEvent
  • EventBufferEvent::connect »
  • PHP Manual
  • EventBufferEvent
  • Closes file descriptor associated with the current buffer event

EventBufferEvent::close

(PECL event >= 1.10.0)

EventBufferEvent::close — Closes file descriptor associated with the current buffer event

Описание

public void EventBufferEvent::close ( void )

Closes file descriptor associated with the current buffer event.

This method may be used in cases when the EventBufferEvent::OPT_CLOSE_ON_FREE option is not appropriate.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Connect buffer event's file descriptor to given address or UNIX socket

  • « EventBufferEvent::close
  • EventBufferEvent::connectHost »
  • PHP Manual
  • EventBufferEvent
  • Connect buffer event's file descriptor to given address or UNIX socket

EventBufferEvent::connect

(PECL event >= 1.2.6-beta)

EventBufferEvent::connect — Connect buffer event's file descriptor to given address or UNIX socket

Описание

public bool EventBufferEvent::connect ( string $addr )

Connect buffer event's file descriptor to given address(optionally with port), or a UNIX domain socket.

If socket is not assigned to the buffer event, this function allocates a new socket and makes it non-blocking internally.

To resolve DNS names(asyncronously), use EventBufferEvent::connectHost() method.

Список параметров

addr

Should contain an IP address with optional port number, or a path to UNIX domain socket. Recognized formats are:

[IPv6Address]:port
[IPv6Address]
IPv6Address
IPv4Address:port
IPv4Address
unix:path
Note, 'unix:' prefix is currently not case sensitive.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Примеры

Пример #1 EventBufferEvent::connect() example

<?php
/*
 * 1. Connect to 127.0.0.1 at port 80
 * by means of EventBufferEvent::connect().
 *
 * 2. Request /index.cphp via HTTP/1.0
 * using the output buffer.
 *
 * 3. Asyncronously read the response and print it to stdout.
 */

/* Read callback */
function readcb($bev, $base) {
    $input = $bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

/* Event callback */
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connected.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Closing\n";
        $base->exit();
        exit("Done\n");
    }
}

$base = new EventBase();

echo "step 1\n";
$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

echo "step 2\n";
$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

echo "step 3\n";
/* Send request */
$output = $bev->getOutput();
if (!$output->add(
    "GET /index.cphp HTTP/1.0\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

/* Connect to the host syncronously.
 * We know the IP, and don't need to resolve DNS. */
if (!$bev->connect("127.0.0.1:80")) {
    exit("Can't connect to host\n");
}

/* Dispatch pending events */
$base->dispatch();

Результатом выполнения данного примера будет что-то подобное:

step 1
step 2
step 3
Connected.
HTTP/1.1 200 OK
Server: nginx/1.2.6
Date: Sat, 09 Mar 2013 10:06:58 GMT
Content-Type: text/html; CHARSET=Windows-1251
Connection: close
X-Powered-By: PHP/5.4.11--pl2-gentoo

sdfsdfsf
Closing
Done

Пример #2 Connect to UNIX domain socket which presumably is served by a server, read response from the server and output it to the console

<?php
class MyUnixSocketClient {
    private $base, $bev;

    function __construct($base, $sock_path) {
        $this->base = $base;
        $this->bev = new EventBufferEvent($base, NULL, EventBufferEvent::OPT_CLOSE_ON_FREE,
            array ($this, "read_cb"), NULL, array ($this, "event_cb"));

        if (!$this->bev->connect("unix:$sock_path")) {
            trigger_error("Failed to connect to socket `$sock_path'", E_USER_ERROR);
        }

        $this->bev->enable(Event::READ);
    }

    function __destruct() {
        if ($this->bev) {
            $this->bev->free();
            $this->bev = NULL;
        }
    }

    function dispatch() {
        $this->base->dispatch();
    }

    function read_cb($bev, $unused) {
        $in = $bev->input;

        printf("Received %ld bytes\n", $in->length);
        printf("----- data ----\n");
        printf("%ld:\t%s\n", (int) $in->length, $in->pullup(-1));

        $this->bev->free();
        $this->bev = NULL;
        $this->base->exit(NULL);
    }

    function event_cb($bev, $events, $unused) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Error from bufferevent\n";
        }

        if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
            $bev->free();
            $bev = NULL;
        } elseif ($events & EventBufferEvent::CONNECTED) {
            $bev->output->add("test\n");
        }
    }
}

if ($argc <= 1) {
    exit("Socket path is not provided\n");
}
$sock_path = $argv[1];

$base = new EventBase();
$cl = new MyUnixSocketClient($base, $sock_path);
$cl->dispatch();
?>

Результатом выполнения данного примера будет что-то подобное:

Received 5 bytes
----- data ----
5:  test

Смотрите также

  • EventBufferEvent::connectHost() - Connects to a hostname with optionally asyncronous DNS resolving


Connects to a hostname with optionally asyncronous DNS resolving

  • « EventBufferEvent::connect
  • EventBufferEvent::__construct »
  • PHP Manual
  • EventBufferEvent
  • Connects to a hostname with optionally asyncronous DNS resolving

EventBufferEvent::connectHost

(PECL event >= 1.2.6-beta)

EventBufferEvent::connectHost — Connects to a hostname with optionally asyncronous DNS resolving

Описание

public bool EventBufferEvent::connectHost ( EventDnsBase $dns_base , string $hostname , int $port [, int $family = EventUtil::AF_UNSPEC ] )

Resolves the DNS name hostname, looking for addresses of type family ( EventUtil::AF_* constants). If the name resolution fails, it invokes the event callback with an error event. If it succeeds, it launches a connection attempt just as EventBufferEvent::connect() would.

dns_base is optional. May be NULL, or an object created with EventDnsBase::__construct() . For asyncronous hostname resolving pass a valid event dns base resource. Otherwise the hostname resolving will block.

Замечание:

EventDnsBase is available only if Event configured --with-event-extra ( event_extra library, libevent protocol-specific functionality support including HTTP, DNS, and RPC ).

Замечание:

EventBufferEvent::connectHost() requires libevent-2.0.3-alpha or greater.

Список параметров

dns_base

Object of EventDnsBase in case if DNS is to be resolved asyncronously. Otherwise NULL.

hostname

Hostname to connect to. Recognized formats are:

www.example.com (hostname)
 1.2.3.4 (ipv4address)
 ::1 (ipv6address)
[::1] ([ipv6address])

port

Port number

family

Address family. EventUtil::AF_UNSPEC , EventUtil::AF_INET , or EventUtil::AF_INET6 . See EventUtil constants .

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Примеры

Пример #1 EventBufferEvent::connectHost() example

<?php
/* Read callback */
function readcb($bev, $base) {
    //$input = $bev->input; //$bev->getInput();

    //$pos = $input->search("TTP");
    $pos = $bev->input->search("TTP");

    while (($n = $bev->input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}

/* Event callback */
function eventcb($bev, $events, $base) {
    if ($events & EventBufferEvent::CONNECTED) {
        echo "Connected.\n";
    } elseif ($events & (EventBufferEvent::ERROR | EventBufferEvent::EOF)) {
        if ($events & EventBufferEvent::ERROR) {
            echo "DNS error: ", $bev->getDnsErrorString(), PHP_EOL;
        }

        echo "Closing\n";
        $base->exit();
        exit("Done\n");
    }
}

$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // We'll use async DNS resolving
if (!$dns_base) {
    exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb", $base
);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

//$bev->setCallbacks("readcb", /* writecb */ NULL, "eventcb", $base);
$bev->enable(Event::READ | Event::WRITE);

$output = $bev->output; //$bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

if (!$bev->connectHost($dns_base, $argv[1], 80, EventUtil::AF_UNSPEC)) {
    exit("Can't connect to host {$argv[1]}\n");
}

$base->dispatch();
?>

Результатом выполнения данного примера будет что-то подобное:

Connected.
HTTP/1.0 301 Moved Permanently
Location: http://www.google.co.uk/
Content-Type: text/html; CHARSET=Windows-1251
Date: Sat, 09 Mar 2013 12:21:19 GMT
Expires: Mon, 08 Apr 2013 12:21:19 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 221
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN

<HTML><HEAD><meta http-equiv="content-type" content="text/html;CHARSET=Windows-1251">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.co.uk/">here</A>.
</BODY></HTML>
Closing
Done

Смотрите также

  • EventBufferEvent::connect() - Connect buffer event's file descriptor to given address or UNIX socket


Constructs EventBufferEvent object

  • « EventBufferEvent::connectHost
  • EventBufferEvent::createPair »
  • PHP Manual
  • EventBufferEvent
  • Constructs EventBufferEvent object

EventBufferEvent::__construct

(PECL event >= 1.2.6-beta)

EventBufferEvent::__construct — Constructs EventBufferEvent object

Описание

public EventBufferEvent::__construct ( EventBase $base [, mixed $socket = NULL [, int $options = 0 [, callable $readcb = NULL [, callable $writecb = NULL [, callable $eventcb = NULL ]]]]] )

Create a buffer event on a socket, stream or a file descriptor. Passing NULL to socket means that the socket should be created later, e.g. by means of EventBufferEvent::connect() .

Список параметров

base

Event base that should be associated with the new buffer event.

socket

May be created as a stream(not necessarily by means of sockets extension)

options

One of EventBufferEvent::OPT_* constants , or 0 .

readcb

Read event callback. See About buffer event callbacks .

writecb

Write event callback. See About buffer event callbacks .

eventcb

Status-change event callback. See About buffer event callbacks .

arg

A variable that will be passed to all the callbacks.

Возвращаемые значения

Returns buffer event resource optionally associated with socket resource. */

Смотрите также

  • EventBufferEvent::sslFilter() - Create a new SSL buffer event to send its data over another buffer event
  • EventBufferEvent::sslSocket() - Creates a new SSL buffer event to send its data over an SSL on a socket


Creates two buffer events connected to each other

  • « EventBufferEvent::__construct
  • EventBufferEvent::disable »
  • PHP Manual
  • EventBufferEvent
  • Creates two buffer events connected to each other

EventBufferEvent::createPair

(PECL event >= 1.2.6-beta)

EventBufferEvent::createPair — Creates two buffer events connected to each other

Описание

public static array EventBufferEvent::createPair ( EventBase $base [, int $options = 0 ] )

Returns array of two EventBufferEvent objects connected to each other. All the usual options are supported, except for EventBufferEvent::OPT_CLOSE_ON_FREE , which has no effect, and EventBufferEvent::OPT_DEFER_CALLBACKS , which is always on.

Список параметров

base

Associated event base

options

EventBufferEvent::OPT_* constants combined with bitwise OR operator.

Возвращаемые значения

Returns array of two EventBufferEvent objects connected to each other.

Список изменений

Версия | Описание
1.9.0 | Method made static.


Disable events read, write, or both on a buffer event.

  • « EventBufferEvent::createPair
  • EventBufferEvent::enable »
  • PHP Manual
  • EventBufferEvent
  • Disable events read, write, or both on a buffer event.

EventBufferEvent::disable

(PECL event >= 1.2.6-beta)

EventBufferEvent::disable — Disable events read, write, or both on a buffer event.

Описание

public bool EventBufferEvent::disable ( int $events )

Disable events Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Список параметров

events

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBufferEvent::enable() - Enable events read, write, or both on a buffer event.


Enable events read, write, or both on a buffer event.

  • « EventBufferEvent::disable
  • EventBufferEvent::free »
  • PHP Manual
  • EventBufferEvent
  • Enable events read, write, or both on a buffer event.

EventBufferEvent::enable

(PECL event >= 1.2.6-beta)

EventBufferEvent::enable — Enable events read, write, or both on a buffer event.

Описание

public bool EventBufferEvent::enable ( int $events )

Enable events Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Список параметров

events

Event::READ , Event::WRITE , or Event::READ | Event::WRITE on a buffer event.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBufferEvent::disable() - Disable events read, write, or both on a buffer event.


Free a buffer event

  • « EventBufferEvent::enable
  • EventBufferEvent::getDnsErrorString »
  • PHP Manual
  • EventBufferEvent
  • Free a buffer event

EventBufferEvent::free

(PECL event >= 1.2.6-beta)

EventBufferEvent::free — Free a buffer event

Описание

public void EventBufferEvent::free ( void )

Free resources allocated by buffer event.

Usually there is no need to call this method, since normally it is done within internal object destructors. However, sometimes we have a long-time script allocating lots of instances, or a script with a heavy memory usage, where we need to free resources as soon as possible. In such cases EventBufferEvent::free() may be used to protect the script against running up to the memory_limit .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Returns string describing the last failed DNS lookup attempt

  • « EventBufferEvent::free
  • EventBufferEvent::getEnabled »
  • PHP Manual
  • EventBufferEvent
  • Returns string describing the last failed DNS lookup attempt

EventBufferEvent::getDnsErrorString

(PECL event >= 1.2.6-beta)

EventBufferEvent::getDnsErrorString — Returns string describing the last failed DNS lookup attempt

Описание

public string EventBufferEvent::getDnsErrorString ( void )

Returns string describing the last failed DNS lookup attempt made by EventBufferEvent::connectHost() , or an empty string, if there is no DNS error detected.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string describing DNS lookup error, or an empty string for no error.

Смотрите также

  • EventBufferEvent::connectHost() - Connects to a hostname with optionally asyncronous DNS resolving


Returns bitmask of events currently enabled on the buffer event

  • « EventBufferEvent::getDnsErrorString
  • EventBufferEvent::getInput »
  • PHP Manual
  • EventBufferEvent
  • Returns bitmask of events currently enabled on the buffer event

EventBufferEvent::getEnabled

(PECL event >= 1.2.6-beta)

EventBufferEvent::getEnabled — Returns bitmask of events currently enabled on the buffer event

Описание

public int EventBufferEvent::getEnabled ( void )

Returns bitmask of events currently enabled on the buffer event

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns integer representing a bitmask of events currently enabled on the buffer event

Смотрите также

  • EventBufferEvent::enable() - Enable events read, write, or both on a buffer event.
  • EventBufferEvent::disable() - Disable events read, write, or both on a buffer event.


Returns underlying input buffer associated with current buffer event

  • « EventBufferEvent::getEnabled
  • EventBufferEvent::getOutput »
  • PHP Manual
  • EventBufferEvent
  • Returns underlying input buffer associated with current buffer event

EventBufferEvent::getInput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getInput — Returns underlying input buffer associated with current buffer event

Описание

public EventBuffer EventBufferEvent::getInput ( void )

Returns underlying input buffer associated with current buffer event. An input buffer is a storage for data to read.

Note, there is also input property of EventBufferEvent class.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns instance of EventBuffer input buffer associated with current buffer event.

Примеры

Пример #1 Buffer event's read callback

<?php
function readcb($bev, $base) {
    $input = $bev->input; //$bev->getInput();

    while (($n = $input->remove($buf, 1024)) > 0) {
        echo $buf;
    }
}
?>

Смотрите также

  • EventBufferEvent::getOutput() - Returns underlying output buffer associated with current buffer event


Returns underlying output buffer associated with current buffer event

  • « EventBufferEvent::getInput
  • EventBufferEvent::read »
  • PHP Manual
  • EventBufferEvent
  • Returns underlying output buffer associated with current buffer event

EventBufferEvent::getOutput

(PECL event >= 1.2.6-beta)

EventBufferEvent::getOutput — Returns underlying output buffer associated with current buffer event

Описание

public EventBuffer EventBufferEvent::getOutput ( void )

Returns underlying output buffer associated with current buffer event. An output buffer is a storage for data to be written.

Note, there is also output property of EventBufferEvent class.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns instance of EventBuffer output buffer associated with current buffer event.

Примеры

Пример #1 EventBufferEvent::getOutput() example

<?php
$base = new EventBase();

$dns_base = new EventDnsBase($base, TRUE); // Use async DNS resolving
if (!$dns_base) {
    exit("Failed to init DNS Base\n");
}

$bev = new EventBufferEvent($base, /* use internal socket */ NULL,
    EventBufferEvent::OPT_CLOSE_ON_FREE | EventBufferEvent::OPT_DEFER_CALLBACKS,
    "readcb", /* writecb */ NULL, "eventcb", $base
);
if (!$bev) {
    exit("Failed creating bufferevent socket\n");
}

$bev->enable(Event::READ | Event::WRITE);

$output = $bev->getOutput();
if (!$output->add(
    "GET {$argv[2]} HTTP/1.0\r\n".
    "Host: {$argv[1]}\r\n".
    "Connection: Close\r\n\r\n"
)) {
    exit("Failed adding request to output buffer\n");
}

/* ... */
?>

Смотрите также

  • EventBufferEvent::getInput() - Returns underlying input buffer associated with current buffer event


Read buffer's data

  • « EventBufferEvent::getOutput
  • EventBufferEvent::readBuffer »
  • PHP Manual
  • EventBufferEvent
  • Read buffer's data

EventBufferEvent::read

(PECL event >= 1.2.6-beta)

EventBufferEvent::read — Read buffer's data

Описание

public string EventBufferEvent::read ( int $size )

Removes up to size bytes from the input buffer. Returns a string of data read from the input buffer.

Список параметров

size

Maximum number of bytes to read

Возвращаемые значения

Returns string of data read from the input buffer.

Смотрите также

  • EventBufferEvent::readBuffer() - Drains the entire contents of the input buffer and places them into buf


Drains the entire contents of the input buffer and places them into buf

  • « EventBufferEvent::read
  • EventBufferEvent::setCallbacks »
  • PHP Manual
  • EventBufferEvent
  • Drains the entire contents of the input buffer and places them into buf

EventBufferEvent::readBuffer

(PECL event >= 1.2.6-beta)

EventBufferEvent::readBuffer — Drains the entire contents of the input buffer and places them into buf

Описание

public bool EventBufferEvent::readBuffer ( EventBuffer $buf )

Drains the entire contents of the input buffer and places them into buf .

Список параметров

buf

Target buffer

Возвращаемые значения

Returns TRUE on success; Otherwise FALSE.

Смотрите также

  • EventBufferEvent::read() - Read buffer's data


Assigns read, write and event(status) callbacks

  • « EventBufferEvent::readBuffer
  • EventBufferEvent::setPriority »
  • PHP Manual
  • EventBufferEvent
  • Assigns read, write and event(status) callbacks

EventBufferEvent::setCallbacks

(PECL event >= 1.2.6-beta)

EventBufferEvent::setCallbacks — Assigns read, write and event(status) callbacks

Описание

public void EventBufferEvent::setCallbacks ( callable $readcb , callable $writecb , callable $eventcb [, string $arg ] )

Assigns read, write and event(status) callbacks.

Список параметров

readcb

Read event callback. See About buffer event callbacks .

writecb

Write event callback. See About buffer event callbacks .

eventcb

Status-change event callback. See About buffer event callbacks .

arg

A variable that will be passed to all the callbacks.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventBufferEvent::__construct() - Constructs EventBufferEvent object


Assign a priority to a bufferevent

  • « EventBufferEvent::setCallbacks
  • EventBufferEvent::setTimeouts »
  • PHP Manual
  • EventBufferEvent
  • Assign a priority to a bufferevent

EventBufferEvent::setPriority

(PECL event >= 1.2.6-beta)

EventBufferEvent::setPriority — Assign a priority to a bufferevent

Описание

public bool EventBufferEvent::setPriority ( int $priority )

Assign a priority to a bufferevent

Внимание

Only supported for socket buffer events

Список параметров

priority

Priority value.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Set the read and write timeout for a buffer event

  • « EventBufferEvent::setPriority
  • EventBufferEvent::setWatermark »
  • PHP Manual
  • EventBufferEvent
  • Set the read and write timeout for a buffer event

EventBufferEvent::setTimeouts

(PECL event >= 1.2.6-beta)

EventBufferEvent::setTimeouts — Set the read and write timeout for a buffer event

Описание

public bool EventBufferEvent::setTimeouts ( float $timeout_read , float $timeout_write )

Set the read and write timeout for a buffer event

Список параметров

timeout_read

Read timeout

timeout_write

Write timeout

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Adjusts read and/or write watermarks

  • « EventBufferEvent::setTimeouts
  • EventBufferEvent::sslError »
  • PHP Manual
  • EventBufferEvent
  • Adjusts read and/or write watermarks

EventBufferEvent::setWatermark

(PECL event >= 1.2.6-beta)

EventBufferEvent::setWatermark — Adjusts read and/or write watermarks

Описание

public void EventBufferEvent::setWatermark ( int $events , int $lowmark , int $highmark )

Adjusts the read watermarks, the write watermarks , or both, of a single buffer event.

A buffer event watermark is an edge, a value specifying number of bytes to be read or written before callback is invoked. By default every read/write event triggers a callback invokation. See » Fast portable non-blocking network programming with Libevent: Callbacks and watermarks

Список параметров

events

Bitmask of Event::READ , Event::WRITE , or both.

lowmark

Minimum watermark value.

highmark

Maximum watermark value. 0 means "unlimited".

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Returns most recent OpenSSL error reported on the buffer event

  • « EventBufferEvent::setWatermark
  • EventBufferEvent::sslFilter »
  • PHP Manual
  • EventBufferEvent
  • Returns most recent OpenSSL error reported on the buffer event

EventBufferEvent::sslError

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslError — Returns most recent OpenSSL error reported on the buffer event

Описание

public string EventBufferEvent::sslError ( void )

Returns most recent OpenSSL error reported on the buffer event.

Замечание:

This function is available only if Event is compiled with OpenSSL support.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns OpenSSL error string reported on the buffer event, or FALSE, if there is no more error to return.

Примеры

Пример #1 EventBufferEvent::sslError() example

<?php
// This callback is invoked when some even occurs on the event listener,
// e.g. connection closed, or an error occured
function ssl_event_cb($bev, $events, $ctx) {
    if ($events & EventBufferEvent::ERROR) {
        // Fetch errors from the SSL error stack
        while ($err = $bev->sslError()) {
            fprintf(STDERR, "Bufferevent error %s.\n", $err);
        }
    }

    if ($events & (EventBufferEvent::EOF | EventBufferEvent::ERROR)) {
        $bev->free();
    }
}
?>

Смотрите также

  • EventBufferEvent::sslRenegotiate() - Tells a bufferevent to begin SSL renegotiation.


Create a new SSL buffer event to send its data over another buffer event

  • « EventBufferEvent::sslError
  • EventBufferEvent::sslGetCipherInfo »
  • PHP Manual
  • EventBufferEvent
  • Create a new SSL buffer event to send its data over another buffer event

EventBufferEvent::sslFilter

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslFilter — Create a new SSL buffer event to send its data over another buffer event

Описание

public static EventBufferEvent EventBufferEvent::sslFilter ( EventBase $base , EventBufferEvent $underlying , EventSslContext $ctx , int $state [, int $options = 0 ] )

Create a new SSL buffer event to send its data over another buffer event

Замечание:

This function is available only if Event is compiled with OpenSSL support.

Список параметров

base

Associated event base.

underlying

A socket buffer event to use for this SSL.

ctx

Object of EventSslContext class.

state

The current state of SSL connection: EventBufferEvent::SSL_OPEN , EventBufferEvent::SSL_ACCEPTING or EventBufferEvent::SSL_CONNECTING .

options

One or more buffer event options.

Возвращаемые значения

Returns a new SSL EventBufferEvent object.

Примеры

Пример #1 Simple SMTP server

<?php
 /*
 * Author: Andrew Rose <hello at andrewrose dot co dot uk>
 *
 * Usage:
 * 1) Prepare cert.pem certificate and privkey.pem private key files.
 * 2) Launch the server script
 * 3) Open TLS connection, e.g.:
 *      $ openssl s_client -connect localhost:25 -starttls smtp -crlf
 * 4) Start testing the commands listed in `cmd` method below.
 */

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, // change to true with authentic cert
            EventSslContext::OPT_ALLOW_SELF_SIGNED => true // change to false with authentic cert
        ]);

        $this->base = new EventBase();
        if (!$this->base) {
            exit("Couldn't open event base\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("Couldn't create listener\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, "Got an error %d (%s) on the listener. Shutting down.\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")
            {
                // remove the trailing \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 'unknown command: '.$line."\n";
                break;
        }
    }
}

new Handler();

Смотрите также

  • EventBufferEvent::sslSocket() - Creates a new SSL buffer event to send its data over an SSL on a socket


Returns a textual description of the cipher.

  • « EventBufferEvent::sslFilter
  • EventBufferEvent::sslGetCipherName »
  • PHP Manual
  • EventBufferEvent
  • Returns a textual description of the cipher.

EventBufferEvent::sslGetCipherInfo

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherInfo — Returns a textual description of the cipher.

Описание

public string EventBufferEvent::sslGetCipherInfo ( void )

Retrieves description of the current cipher by means of the SSL_CIPHER_description SSL API function (see SSL_CIPHER_get_name(3) man page).

Замечание:

This function is available only if Event is compiled with OpenSSL support.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a textual description of the cipher on success, or FALSE on error.


Returns the current cipher name of the SSL connection.

  • « EventBufferEvent::sslGetCipherInfo
  • EventBufferEvent::sslGetCipherVersion »
  • PHP Manual
  • EventBufferEvent
  • Returns the current cipher name of the SSL connection.

EventBufferEvent::sslGetCipherName

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherName — Returns the current cipher name of the SSL connection.

Описание

public string EventBufferEvent::sslGetCipherName ( void )

Retrieves name of cipher used by current SSL connection.

Замечание:

This function is available only if Event is compiled with OpenSSL support.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current cipher name of the SSL connection, or FALSE on error.


Returns version of cipher used by current SSL connection.

  • « EventBufferEvent::sslGetCipherName
  • EventBufferEvent::sslGetProtocol »
  • PHP Manual
  • EventBufferEvent
  • Returns version of cipher used by current SSL connection.

EventBufferEvent::sslGetCipherVersion

(PECL event >= 1.10.0)

EventBufferEvent::sslGetCipherVersion — Returns version of cipher used by current SSL connection.

Описание

public string EventBufferEvent::sslGetCipherVersion ( void )

Retrieves version of cipher used by current SSL connection.

Замечание:

This function is available only if Event is compiled with OpenSSL support.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current cipher version of the SSL connection, or FALSE on error.


Returns the name of the protocol used for current SSL connection.

  • « EventBufferEvent::sslGetCipherVersion
  • EventBufferEvent::sslRenegotiate »
  • PHP Manual
  • EventBufferEvent
  • Returns the name of the protocol used for current SSL connection.

EventBufferEvent::sslGetProtocol

(PECL event >= 1.10.0)

EventBufferEvent::sslGetProtocol — Returns the name of the protocol used for current SSL connection.

Описание

public string EventBufferEvent::sslGetProtocol ( void )

Returns the name of the protocol used for current SSL connection.

Замечание:

This function is available only if Event is compiled with OpenSSL support.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the name of the protocol used for current SSL connection.


Tells a bufferevent to begin SSL renegotiation.

  • « EventBufferEvent::sslGetProtocol
  • EventBufferEvent::sslSocket »
  • PHP Manual
  • EventBufferEvent
  • Tells a bufferevent to begin SSL renegotiation.

EventBufferEvent::sslRenegotiate

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslRenegotiate — Tells a bufferevent to begin SSL renegotiation.

Описание

public void EventBufferEvent::sslRenegotiate ( void )

Tells a bufferevent to begin SSL renegotiation.

Внимание

Calling this function tells the SSL to renegotiate, and the buffer event to invoke appropriate callbacks. This is an advanced topic; this should be generally avoided unless one really knows what he/she does, especially since many SSL versions have had known security issues related to renegotiation.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Creates a new SSL buffer event to send its data over an SSL on a socket

  • « EventBufferEvent::sslRenegotiate
  • EventBufferEvent::write »
  • PHP Manual
  • EventBufferEvent
  • Creates a new SSL buffer event to send its data over an SSL on a socket

EventBufferEvent::sslSocket

(PECL event >= 1.2.6-beta)

EventBufferEvent::sslSocket — Creates a new SSL buffer event to send its data over an SSL on a socket

Описание

public static EventBufferEvent EventBufferEvent::sslSocket ( EventBase $base , mixed $socket , EventSslContext $ctx , int $state [, int $options ] )

Creates a new SSL buffer event to send its data over an SSL on a socket.

Список параметров

base

Associated event base.

socket

Socket to use for this SSL. Can be stream or socket resource, numeric file descriptor, or NULL. If socket is NULL, it is assumed that the file descriptor for the socket will be assigned later, for instance, by means of EventBufferEvent::connectHost() method.

ctx

Object of EventSslContext class.

state

The current state of SSL connection: EventBufferEvent::SSL_OPEN , EventBufferEvent::SSL_ACCEPTING or EventBufferEvent::SSL_CONNECTING .

options

The buffer event options.

Возвращаемые значения

Returns EventBufferEvent object.

Смотрите также

  • EventBufferEvent::sslFilter() - Create a new SSL buffer event to send its data over another buffer event


Adds data to a buffer event's output buffer

  • « EventBufferEvent::sslSocket
  • EventBufferEvent::writeBuffer »
  • PHP Manual
  • EventBufferEvent
  • Adds data to a buffer event's output buffer

EventBufferEvent::write

(PECL event >= 1.2.6-beta)

EventBufferEvent::write — Adds data to a buffer event's output buffer

Описание

public bool EventBufferEvent::write ( string $data )

Adds data to a buffer event's output buffer

Список параметров

data

Data to be added to the underlying buffer.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBufferEvent::writeBuffer() - Adds contents of the entire buffer to a buffer event's output buffer


Adds contents of the entire buffer to a buffer event's output buffer

  • « EventBufferEvent::write
  • About buffer event callbacks »
  • PHP Manual
  • EventBufferEvent
  • Adds contents of the entire buffer to a buffer event's output buffer

EventBufferEvent::writeBuffer

(PECL event >= 1.2.6-beta)

EventBufferEvent::writeBuffer — Adds contents of the entire buffer to a buffer event's output buffer

Описание

public bool EventBufferEvent::writeBuffer ( EventBuffer $buf )

Adds contents of the entire buffer to a buffer event's output buffer

Список параметров

buf

Source EventBuffer object.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventBufferEvent::write() - Adds data to a buffer event's output buffer


About buffer event callbacks

An object of EventBufferEvent class represents a buffer event . The asynchronous nature of I/O performed by Libevent implies that a socket(or other kind of file descriptor) is not always available. Event invokes corresponding callbacks when the resource becomes available for reading or writing, or when some event occurs(e.g. error, "end of line" etc.).

Read and write callbacks should match the following prototype:

void callback ([ EventBufferEvent $bev = NULL [, mixed $arg = NULL ]] )

bev

Associated EventBufferEvent object.

arg

Custom variable attached to all callbacks via EventBufferEvent::__construct() , or EventBufferEvent::setCallbacks() .

Event callback should match the following prototype:

void callback ([ EventBufferEvent $bev = NULL [, int $events = 0 [, mixed $arg = NULL ]]] )

bev

Associated EventBufferEvent object.

events

Bit mask of events: EventBufferEvent::READING , EventBufferEvent::WRITING , EventBufferEvent::EOL , EventBufferEvent::ERROR and EventBufferEvent::TIMEOUT . See EventBufferEvent constants

arg

Custom variable attached to all callbacks via EventBufferEvent::__construct() , or EventBufferEvent::setCallbacks() .


The EventConfig class

(PECL event >= 1.2.6-beta)

Введение

Represents configuration structure which could be used in construction of the EventBase .

Обзор классов

final EventConfig {
/* Constants */
const integer FEATURE_ET = 1 ;
const integer FEATURE_O1 = 2 ;
const integer FEATURE_FDS = 4 ;
/* Методы */
public bool avoidMethod ( string $method )
public __construct ( void )
public bool requireFeatures ( int $feature )
public void setMaxDispatchInterval ( int $max_interval , int $max_callbacks , int $min_priority )
}

Предопределенные константы

EventConfig::FEATURE_ET

Requires a backend method that supports edge-triggered I/O.

EventConfig::FEATURE_O1

Requires a backend method where adding or deleting a single event, or having a single event become active, is an O(1) operation.

EventConfig::FEATURE_FDS

Requires a backend method that can support arbitrary file descriptor types, and not just sockets.

Содержание

  • EventConfig::avoidMethod — Tells libevent to avoid specific event method
  • EventConfig::__construct — Constructs EventConfig object
  • EventConfig::requireFeatures — Enters a required event method feature that the application demands
  • EventConfig::setMaxDispatchInterval — Prevents priority inversion


Tells libevent to avoid specific event method

  • « EventConfig
  • EventConfig::__construct »
  • PHP Manual
  • EventConfig
  • Tells libevent to avoid specific event method

EventConfig::avoidMethod

(PECL event >= 1.2.6-beta)

EventConfig::avoidMethod — Tells libevent to avoid specific event method

Описание

public bool EventConfig::avoidMethod ( string $method )

Tells libevent to avoid specific event method(backend). See » Creating an event base .

Список параметров

method

The backend method to avoid. See EventConfig constants .

Возвращаемые значения

Returns TRUE on success, otherwise FALSE.

Примеры

Пример #1 EventConfig::avoidMethod() example

<?php
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}
?>

Смотрите также

  • EventBase::__construct() - Constructs EventBase object


Constructs EventConfig object

  • « EventConfig::avoidMethod
  • EventConfig::requireFeatures »
  • PHP Manual
  • EventConfig
  • Constructs EventConfig object

EventConfig::__construct

(PECL event >= 1.2.6-beta)

EventConfig::__construct — Constructs EventConfig object

Описание

public EventConfig::__construct ( void )

Constructs EventConfig object which could be passed to EventBase::__construct() constructor.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns EventConfig object.

Примеры

Пример #1 EventConfig::__construct() example

<?php
// Avoiding "select" method
$cfg = new EventConfig();
if ($cfg->avoidMethod("select")) {
    echo "`select' method avoided\n";
}

// Create event_base associated with the config
$base = new EventBase($cfg);

/* Now $base is configured to avoid select backend(method) */
?>

Смотрите также

  • EventBase::__construct() - Constructs EventBase object


Enters a required event method feature that the application demands

  • « EventConfig::__construct
  • EventConfig::setMaxDispatchInterval »
  • PHP Manual
  • EventConfig
  • Enters a required event method feature that the application demands

EventConfig::requireFeatures

(PECL event >= 1.2.6-beta)

EventConfig::requireFeatures — Enters a required event method feature that the application demands

Описание

public bool EventConfig::requireFeatures ( int $feature )

Enters a required event method feature that the application demands

Список параметров

feature

Bitmask of required features. See EventConfig::FEATURE_* constants

Возвращаемые значения

Примеры

Пример #1 EventConfig::requireFeatures() example

<?php
$cfg = new EventConfig();

// Create event_base associated with the config
$base = new EventBase($cfg);

// Require FDS feature
if ($cfg->requireFeatures(EventConfig::FEATURE_FDS)) {
    echo "FDS feature is now requried\n";

    $base = new EventBase($cfg);
    ($base->getFeatures() & EventConfig::FEATURE_FDS)
        and print("FDS - arbitrary file descriptor types, and not just sockets\n");
}
?>

Результатом выполнения данного примера будет что-то подобное:

FDS feature is now requried
FDS - arbitrary file descriptor types, and not just sockets

Смотрите также

  • EventBase::getFeatures() - Returns bitmask of features supported


Prevents priority inversion

  • « EventConfig::requireFeatures
  • EventDnsBase »
  • PHP Manual
  • EventConfig
  • Prevents priority inversion

EventConfig::setMaxDispatchInterval

(Информация о версии неизвестна, возможно, только в SVN)

EventConfig::setMaxDispatchInterval — Prevents priority inversion

Описание

public void EventConfig::setMaxDispatchInterval ( int $max_interval , int $max_callbacks , int $min_priority )

Prevents priority inversion by limiting how many low-priority event callbacks can be invoked before checking for more high-priority events.

Замечание:

Available since libevent 2.1.0-alpha .

Список параметров

max_interval

An interval after which Libevent should stop running callbacks and check for more events, or 0 , if there should be no such interval.

max_callbacks

A number of callbacks after which Libevent should stop running callbacks and check for more events, or -1 , if there should be no such limit.

min_priority

A priority below which max_interval and max_callbacks should not be enforced. If this is set to 0 , they are enforced for events of every priority; if it's set to 1 , they're enforced for events of priority 1 and above, and so on.

Возвращаемые значения

Returns TRUE on success, otherwise FALSE.


The EventDnsBase class

(PECL event >= 1.2.6-beta)

Введение

Represents Libevent's DNS base structure. Used to resolve DNS asyncronously, parse configuration files like resolv.conf etc.

Обзор классов

final EventDnsBase {
/* Constants */
const integer OPTION_SEARCH = 1 ;
const integer OPTION_NAMESERVERS = 2 ;
const integer OPTION_MISC = 4 ;
const integer OPTION_HOSTSFILE = 8 ;
const integer OPTIONS_ALL = 15 ;
/* Методы */
public bool addNameserverIp ( string $ip )
public void addSearch ( string $domain )
public void clearSearch ( void )
public __construct ( EventBase $base , bool $initialize )
public int countNameservers ( void )
public bool loadHosts ( string $hosts )
public bool parseResolvConf ( int $flags , string $filename )
public bool setOption ( string $option , string $value )
public bool setSearchNdots ( int $ndots )
}

Предопределенные константы

EventDnsBase::OPTION_SEARCH

Tells to read the domain and search fields from the resolv.conf file and the ndots option, and use them to decide which domains(if any) to search for hostnames that aren't fully-qualified.

EventDnsBase::OPTION_NAMESERVERS

Tells to learn the nameservers from the resolv.conf file.

EventDnsBase::OPTION_MISC

EventDnsBase::OPTION_HOSTSFILE

Tells to read a list of hosts from /etc/hosts as part of loading the resolv.conf file.

EventDnsBase::OPTIONS_ALL

Tells to learn as much as it can from the resolv.conf file.

Содержание

  • EventDnsBase::addNameserverIp — Adds a nameserver to the DNS base
  • EventDnsBase::addSearch — Adds a domain to the list of search domains
  • EventDnsBase::clearSearch — Removes all current search suffixes
  • EventDnsBase::__construct — Constructs EventDnsBase object
  • EventDnsBase::countNameservers — Gets the number of configured nameservers
  • EventDnsBase::loadHosts — Loads a hosts file (in the same format as /etc/hosts) from hosts file
  • EventDnsBase::parseResolvConf — Scans the resolv.conf-formatted file
  • EventDnsBase::setOption — Set the value of a configuration option
  • EventDnsBase::setSearchNdots — Set the 'ndots' parameter for searches


Adds a nameserver to the DNS base

  • « EventDnsBase
  • EventDnsBase::addSearch »
  • PHP Manual
  • EventDnsBase
  • Adds a nameserver to the DNS base

EventDnsBase::addNameserverIp

(PECL event >= 1.2.6-beta)

EventDnsBase::addNameserverIp — Adds a nameserver to the DNS base

Описание

public bool EventDnsBase::addNameserverIp ( string $ip )

Adds a nameserver to the evdns_base.

Список параметров

ip

The nameserver string, either as an IPv4 address, an IPv6 address, an IPv4 address with a port ( IPv4:Port ), or an IPv6 address with a port ( [IPv6]:Port ).

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Adds a domain to the list of search domains

  • « EventDnsBase::addNameserverIp
  • EventDnsBase::clearSearch »
  • PHP Manual
  • EventDnsBase
  • Adds a domain to the list of search domains

EventDnsBase::addSearch

(PECL event >= 1.2.6-beta)

EventDnsBase::addSearch — Adds a domain to the list of search domains

Описание

public void EventDnsBase::addSearch ( string $domain )

Adds a domain to the list of search domains

Список параметров

domain

Search domain.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Removes all current search suffixes

  • « EventDnsBase::addSearch
  • EventDnsBase::__construct »
  • PHP Manual
  • EventDnsBase
  • Removes all current search suffixes

EventDnsBase::clearSearch

(PECL event >= 1.2.6-beta)

EventDnsBase::clearSearch — Removes all current search suffixes

Описание

public void EventDnsBase::clearSearch ( void )

Removes all current search suffixes from the DNS base; the EventDnsBase::addSearch() function adds a suffix.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventDnsBase::addSearch() - Adds a domain to the list of search domains


Constructs EventDnsBase object

  • « EventDnsBase::clearSearch
  • EventDnsBase::countNameservers »
  • PHP Manual
  • EventDnsBase
  • Constructs EventDnsBase object

EventDnsBase::__construct

(PECL event >= 1.2.6-beta)

EventDnsBase::__construct — Constructs EventDnsBase object

Описание

public EventDnsBase::__construct ( EventBase $base , bool $initialize )

Constructs EventDnsBase object.

Список параметров

base

Event base.

initialize

If the initialize argument is TRUE, it tries to configure the DNS base sensibly given your operating system's default. Otherwise, it leaves the event DNS base empty, with no nameservers or options configured. In the latter case DNS base should be configured manually, e.g. with EventDnsBase::parseResolvConf() .

Возвращаемые значения

Returns EventDnsBase object.


Gets the number of configured nameservers

  • « EventDnsBase::__construct
  • EventDnsBase::loadHosts »
  • PHP Manual
  • EventDnsBase
  • Gets the number of configured nameservers

EventDnsBase::countNameservers

(PECL event >= 1.2.6-beta)

EventDnsBase::countNameservers — Gets the number of configured nameservers

Описание

public int EventDnsBase::countNameservers ( void )

Gets the number of configured nameservers

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the number of configured nameservers(not necessarily the number of running nameservers). This is useful for double-checking whether our calls to the various nameserver configuration functions have been successful.


Loads a hosts file (in the same format as /etc/hosts) from hosts file

  • « EventDnsBase::countNameservers
  • EventDnsBase::parseResolvConf »
  • PHP Manual
  • EventDnsBase
  • Loads a hosts file (in the same format as /etc/hosts) from hosts file

EventDnsBase::loadHosts

(PECL event >= 1.2.6-beta)

EventDnsBase::loadHosts — Loads a hosts file (in the same format as /etc/hosts) from hosts file

Описание

public bool EventDnsBase::loadHosts ( string $hosts )

Loads a hosts file (in the same format as /etc/hosts ) from hosts file.

Список параметров

hosts

Path to the hosts' file.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Scans the resolv.conf-formatted file

  • « EventDnsBase::loadHosts
  • EventDnsBase::setOption »
  • PHP Manual
  • EventDnsBase
  • Scans the resolv.conf-formatted file

EventDnsBase::parseResolvConf

(PECL event >= 1.2.6-beta)

EventDnsBase::parseResolvConf — Scans the resolv.conf-formatted file

Описание

public bool EventDnsBase::parseResolvConf ( int $flags , string $filename )

Scans the resolv.conf-formatted file stored in filename, and read in all the options from it that are listed in flags

Список параметров

flags

Determines what information is parsed from the resolv.conf file. See the man page for resolv.conf for the format of this file.

The following directives are not parsed from the file: sortlist, rotate, no-check-names, inet6, debug .

If this function encounters an error, the possible return values are:

  • 1 = failed to open file
  • 2 = failed to stat file
  • 3 = file too large
  • 4 = out of memory
  • 5 = short read from file
  • 6 = no nameservers listed in the file

filename

Path to resolv.conf file.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Set the value of a configuration option

  • « EventDnsBase::parseResolvConf
  • EventDnsBase::setSearchNdots »
  • PHP Manual
  • EventDnsBase
  • Set the value of a configuration option

EventDnsBase::setOption

(PECL event >= 1.2.6-beta)

EventDnsBase::setOption — Set the value of a configuration option

Описание

public bool EventDnsBase::setOption ( string $option , string $value )

Set the value of a configuration option.

Список параметров

option

The currently available configuration options are: "ndots" , "timeout" , "max-timeouts" , "max-inflight" , and "attempts" .

value

Option value.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Set the 'ndots' parameter for searches

  • « EventDnsBase::setOption
  • EventHttp »
  • PHP Manual
  • EventDnsBase
  • Set the 'ndots' parameter for searches

EventDnsBase::setSearchNdots

(PECL event >= 1.2.6-beta)

EventDnsBase::setSearchNdots — Set the 'ndots' parameter for searches

Описание

public bool EventDnsBase::setSearchNdots ( int $ndots )

Set the 'ndots' parameter for searches. Sets the number of dots which, when found in a name, causes the first query to be without any search domain.

Список параметров

ndots

The number of dots.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


The EventHttp class

(PECL event >= 1.4.0-beta)

Введение

Represents HTTP server.

Обзор классов

final EventHttp {
/* Методы */
public bool accept ( mixed $socket )
public bool addServerAlias ( string $alias )
public void bind ( string $address , int $port )
public __construct ( EventBase $base [, EventSslContext $ctx = NULL ] )
public bool removeServerAlias ( string $alias )
public void setAllowedMethods ( int $methods )
public void setCallback ( string $path , string $cb [, string $arg ] )
public void setDefaultCallback ( string $cb [, string $arg ] )
public void setMaxBodySize ( int $value )
public void setMaxHeadersSize ( int $value )
public void setTimeout ( int $value )
}

Содержание

  • EventHttp::accept — Makes an HTTP server accept connections on the specified socket stream or resource
  • EventHttp::addServerAlias — Adds a server alias to the HTTP server object
  • EventHttp::bind — Binds an HTTP server on the specified address and port
  • EventHttp::__construct — Constructs EventHttp object(the HTTP server)
  • EventHttp::removeServerAlias — Removes server alias
  • EventHttp::setAllowedMethods — Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks
  • EventHttp::setCallback — Sets a callback for specified URI
  • EventHttp::setDefaultCallback — Sets default callback to handle requests that are not caught by specific callbacks
  • EventHttp::setMaxBodySize — Sets maximum request body size
  • EventHttp::setMaxHeadersSize — Sets maximum HTTP header size
  • EventHttp::setTimeout — Sets the timeout for an HTTP request


Makes an HTTP server accept connections on the specified socket stream or resource

  • « EventHttp
  • EventHttp::addServerAlias »
  • PHP Manual
  • EventHttp
  • Makes an HTTP server accept connections on the specified socket stream or resource

EventHttp::accept

(PECL event >= 1.2.6-beta)

EventHttp::accept — Makes an HTTP server accept connections on the specified socket stream or resource

Описание

public bool EventHttp::accept ( mixed $socket )

Makes an HTTP server accept connections on the specified socket stream or resource. The socket should be ready to accept connections.

Can be called multiple times to accept connections on different sockets.

Замечание:

To bind a socket, listen , and accept connections on the socket in s single call use EventHttp::bind() . EventHttp::accept() is needed only if one already has a socket ready to accept connections.

Список параметров

socket

Socket resource, stream or numeric file descriptor representing a socket ready to accept connections.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Примеры

Пример #1 EventHttp::accept() example

<?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 failed\n");
    }
    socket_listen($socket[$i], 0);
    socket_set_nonblock($socket[$i]);

    if (!$http->accept($socket[$i])) {
        echo "Accept failed\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 "Caught SIGINT. Stopping...\n";
    $base->stop();
});
$signal->add();

$base->dispatch();
echo "END\n";
// We didn't close sockets, since Libevent already sets
// CLOSE_ON_FREE and CLOSE_ON_EXEC flags on the file
// descriptor associated with the sockets.
?>

Результатом выполнения данного примера будет что-то подобное:

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() - Binds an HTTP server on the specified address and port


Adds a server alias to the HTTP server object

  • « EventHttp::accept
  • EventHttp::bind »
  • PHP Manual
  • EventHttp
  • Adds a server alias to the HTTP server object

EventHttp::addServerAlias

(PECL event >= 1.4.0-beta)

EventHttp::addServerAlias — Adds a server alias to the HTTP server object

Описание

public bool EventHttp::addServerAlias ( string $alias )

Adds a server alias to the HTTP server object.

Список параметров

alias

The alias to add.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Примеры

Пример #1 EventHttp::addServerAlias() example

<?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");
};

if (!$http->addServerAlias("local.net")) {
    exit("Failed to add server alias\n");
}

$http->setCallback("/about", function($req) {
    echo "URI: ", $req->getUri(), PHP_EOL;
    $req->sendReply(200, "OK");
});
$base->dispatch();
?>

Смотрите также

  • EventHttp::removeServerAlias() - Removes server alias


Binds an HTTP server on the specified address and port

  • « EventHttp::addServerAlias
  • EventHttp::__construct »
  • PHP Manual
  • EventHttp
  • Binds an HTTP server on the specified address and port

EventHttp::bind

(PECL event >= 1.2.6-beta)

EventHttp::bind — Binds an HTTP server on the specified address and port

Описание

public void EventHttp::bind ( string $address , int $port )

Binds an HTTP server on the specified address and port.

Can be called multiple times to bind the same HTTP server to multiple different ports.

Список параметров

address

A string containing the IP address to listen(2) on.

port

The port number to listen on.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Примеры

Пример #1 EventHttp::bind() example

<?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");
};
if (!$http->bind("127.0.0.1", 8089)) {
    exit("bind(2) failed\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() - Makes an HTTP server accept connections on the specified socket stream or resource


Constructs EventHttp object(the HTTP server)

  • « EventHttp::bind
  • EventHttp::removeServerAlias »
  • PHP Manual
  • EventHttp
  • Constructs EventHttp object(the HTTP server)

EventHttp::__construct

(PECL event >= 1.2.6-beta)

EventHttp::__construct — Constructs EventHttp object(the HTTP server)

Описание

public EventHttp::__construct ( EventBase $base [, EventSslContext $ctx = NULL ] )

Constructs the HTTP server object.

Список параметров

base

Associated event base.

ctx

EventSslContext class object. Turns plain HTTP server into HTTPS server. It means that if ctx is configured correctly, then the underlying buffer events will be based on OpenSSL sockets. Thus, all traffic will pass through the SSL or TLS.

Замечание:

This parameter is available only if Event is compiled with OpenSSL support and only with Libevent 2.1.0-alpha and higher.

Возвращаемые значения

Returns EventHttp object.

Список изменений

Версия | Описание
1.9.0 | OpenSSL support (ctx) added.

Примеры

Пример #1 Simple HTTP server

<?php
/*
 * Simple HTTP server.
 *
 * To test it:
 * 1) Run it on a port of your choice, e.g.:
 * $ php examples/http.php 8010
 * 2) In another terminal connect to some address on this port
 * and make GET or POST request(others are turned off here), e.g.:
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * It will output
 * 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)
 *
 * It will output:
 * 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
 *
 * It will output:
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) See what the server outputs on the previous terminal window.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Counter reached max requests $max_requests. Exiting\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "request:"; var_dump($req);
    echo "data:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Command:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Input headers:"; var_dump($req->getInputHeaders());
    echo "Output headers:"; var_dump($req->getOutputHeaders());

    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Reading input buffer ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "No more data in the buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$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
(press Enter)

HTTP/1.0 200 OK
Content-Type: text/html; charset=ISO-8859-1
Connection: close


Removes server alias

  • « EventHttp::__construct
  • EventHttp::setAllowedMethods »
  • PHP Manual
  • EventHttp
  • Removes server alias

EventHttp::removeServerAlias

(PECL event >= 1.4.0-beta)

EventHttp::removeServerAlias — Removes server alias

Описание

public bool EventHttp::removeServerAlias ( string $alias )

Removes server alias added with EventHttp::addServerAlias()

Список параметров

alias

The alias to remove.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventHttp::addServerAlias() - Adds a server alias to the HTTP server object


Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

  • « EventHttp::removeServerAlias
  • EventHttp::setCallback »
  • PHP Manual
  • EventHttp
  • Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

EventHttp::setAllowedMethods

(PECL event >= 1.4.0-beta)

EventHttp::setAllowedMethods — Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

Описание

public void EventHttp::setAllowedMethods ( int $methods )

Sets the what HTTP methods are supported in requests accepted by this server, and passed to user callbacks

If not supported they will generate a "405 Method not allowed" response.

By default this includes the following methods: GET , POST , HEAD , PUT , DELETE . See EventHttpRequest::CMD_* constants.

Список параметров

methods

A bit mask of EventHttpRequest::CMD_* constants .

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets a callback for specified URI

  • « EventHttp::setAllowedMethods
  • EventHttp::setDefaultCallback »
  • PHP Manual
  • EventHttp
  • Sets a callback for specified URI

EventHttp::setCallback

(PECL event >= 1.4.0-beta)

EventHttp::setCallback — Sets a callback for specified URI

Описание

public void EventHttp::setCallback ( string $path , string $cb [, string $arg ] )

Sets a callback for specified URI.

Список параметров

path

The path for which to invoke the callback.

cb

The callback callable that gets invoked on requested path . It should match the following prototype:

void callback ([ EventHttpRequest $req = NULL [, mixed $arg = NULL ]] )

req

EventHttpRequest object.

arg

Custom data.

arg

Custom data.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Примеры

Пример #1 EventHttp::setCallback() example

<?php
/*
 * Simple HTTP server.
 *
 * To test it:
 * 1) Run it on a port of your choice, e.g.:
 * $ php examples/http.php 8010
 * 2) In another terminal connect to some address on this port
 * and make GET or POST request(others are turned off here), e.g.:
 * $ nc -t 127.0.0.1 8010
 * POST /about HTTP/1.0
 * Content-Type: text/plain
 * Content-Length: 4
 * Connection: close
 * (press Enter)
 *
 * It will output
 * a=12
 * HTTP/1.0 200 OK
 * Content-Type: text/html; charset=ISO-8859-1
 * Connection: close
 *
 * 3) See what the server outputs on the previous terminal window.
 */

function _http_dump($req, $data) {
    static $counter      = 0;
    static $max_requests = 2;

    if (++$counter >= $max_requests)  {
        echo "Counter reached max requests $max_requests. Exiting\n";
        exit();
    }

    echo __METHOD__, " called\n";
    echo "request:"; var_dump($req);
    echo "data:"; var_dump($data);

    echo "\n===== DUMP =====\n";
    echo "Command:", $req->getCommand(), PHP_EOL;
    echo "URI:", $req->getUri(), PHP_EOL;
    echo "Input headers:"; var_dump($req->getInputHeaders());
    echo "Output headers:"; var_dump($req->getOutputHeaders());

    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";

    echo "\n >> Reading input buffer ...\n";
    $buf = $req->getInputBuffer();
    while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
        echo $s, PHP_EOL;
    }
    echo "No more data in the buffer\n";
}

function _http_about($req) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

function _http_default($req, $data) {
    echo __METHOD__, PHP_EOL;
    echo "URI: ", $req->getUri(), PHP_EOL;
    echo "\n >> Sending reply ...";
    $req->sendReply(200, "OK");
    echo "OK\n";
}

$port = 8010;
if ($argc > 1) {
    $port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
    exit("Invalid port");
}

$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

Смотрите также

  • EventHttp::setDefaultCallback() - Sets default callback to handle requests that are not caught by specific callbacks


Sets default callback to handle requests that are not caught by specific callbacks

  • « EventHttp::setCallback
  • EventHttp::setMaxBodySize »
  • PHP Manual
  • EventHttp
  • Sets default callback to handle requests that are not caught by specific callbacks

EventHttp::setDefaultCallback

(PECL event >= 1.4.0-beta)

EventHttp::setDefaultCallback — Sets default callback to handle requests that are not caught by specific callbacks

Описание

public void EventHttp::setDefaultCallback ( string $cb [, string $arg ] )

Sets default callback to handle requests that are not caught by specific callbacks

Список параметров

cb

The callback callable . It should match the following prototype:

void callback ([ EventHttpRequest $req = NULL [, mixed $arg = NULL ]] )

req

EventHttpRequest object.

arg

Custom data.

arg

User custom data passed to the callback.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Примеры

Пример #1 EventHttp::setDefaultCallback() example

<?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() - Sets a callback for specified URI


Sets maximum request body size

  • « EventHttp::setDefaultCallback
  • EventHttp::setMaxHeadersSize »
  • PHP Manual
  • EventHttp
  • Sets maximum request body size

EventHttp::setMaxBodySize

(PECL event >= 1.4.0-beta)

EventHttp::setMaxBodySize — Sets maximum request body size

Описание

public void EventHttp::setMaxBodySize ( int $value )

Sets maximum request body size.

Список параметров

value

The body size in bytes.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttp::setMaxHeadersSize() - Sets maximum HTTP header size


Sets maximum HTTP header size

  • « EventHttp::setMaxBodySize
  • EventHttp::setTimeout »
  • PHP Manual
  • EventHttp
  • Sets maximum HTTP header size

EventHttp::setMaxHeadersSize

(PECL event >= 1.4.0-beta)

EventHttp::setMaxHeadersSize — Sets maximum HTTP header size

Описание

public void EventHttp::setMaxHeadersSize ( int $value )

Sets maximum HTTP header size.

Список параметров

value

The header size in bytes.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttp::setMaxHeadersSize()


Sets the timeout for an HTTP request

  • « EventHttp::setMaxHeadersSize
  • EventHttpConnection »
  • PHP Manual
  • EventHttp
  • Sets the timeout for an HTTP request

EventHttp::setTimeout

(PECL event >= 1.4.0-beta)

EventHttp::setTimeout — Sets the timeout for an HTTP request

Описание

public void EventHttp::setTimeout ( int $value )

Sets the timeout for an HTTP request.

Список параметров

value

The timeout in seconds.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The EventHttpConnection class

(PECL event >= 1.4.0-beta)

Введение

Represents an HTTP connection.

Обзор классов

EventHttpConnection {
/* Методы */
public __construct ( EventBase $base , EventDnsBase $dns_base , string $address , int $port [, EventSslContext $ctx = NULL ] )
public EventBase getBase ( void )
public void getPeer ( string &$address , int &$port )
public bool makeRequest ( EventHttpRequest $req , int $type , string $uri )
public void setCloseCallback ( callable $callback [, mixed $data ] )
public void setLocalAddress ( string $address )
public void setLocalPort ( int $port )
public void setMaxBodySize ( string $max_size )
public void setMaxHeadersSize ( string $max_size )
public void setRetries ( int $retries )
public void setTimeout ( int $timeout )
}

Содержание

  • EventHttpConnection::__construct — Constructs EventHttpConnection object
  • EventHttpConnection::getBase — Returns event base associated with the connection
  • EventHttpConnection::getPeer — Gets the remote address and port associated with the connection
  • EventHttpConnection::makeRequest — Makes an HTTP request over the specified connection
  • EventHttpConnection::setCloseCallback — Set callback for connection close
  • EventHttpConnection::setLocalAddress — Sets the IP address from which HTTP connections are made
  • EventHttpConnection::setLocalPort — Sets the local port from which connections are made
  • EventHttpConnection::setMaxBodySize — Sets maximum body size for the connection
  • EventHttpConnection::setMaxHeadersSize — Sets maximum header size
  • EventHttpConnection::setRetries — Sets the retry limit for the connection
  • EventHttpConnection::setTimeout — Sets the timeout for the connection


Constructs EventHttpConnection object

  • « EventHttpConnection
  • EventHttpConnection::getBase »
  • PHP Manual
  • EventHttpConnection
  • Constructs EventHttpConnection object

EventHttpConnection::__construct

(PECL event >= 1.2.6-beta)

EventHttpConnection::__construct — Constructs EventHttpConnection object

Описание

public EventHttpConnection::__construct ( EventBase $base , EventDnsBase $dns_base , string $address , int $port [, EventSslContext $ctx = NULL ] )

Constructs EventHttpConnection object.

Список параметров

base

Associated event base.

dns_base

If dns_base is NULL, hostname resolution will block.

address

The address to connect to.

port

The port to connect to.

ctx

EventSslContext class object. Enables OpenSSL.

Замечание:

This parameter is available only if Event is compiled with OpenSSL support and only with Libevent 2.1.0-alpha and higher.

Возвращаемые значения

Returns EventHttpConnection object.

Список изменений

Версия | Описание
1.9.0 | OpenSSL support (ctx) added.


Returns event base associated with the connection

  • « EventHttpConnection::__construct
  • EventHttpConnection::getPeer »
  • PHP Manual
  • EventHttpConnection
  • Returns event base associated with the connection

EventHttpConnection::getBase

(PECL event >= 1.2.6-beta)

EventHttpConnection::getBase — Returns event base associated with the connection

Описание

public EventBase EventHttpConnection::getBase ( void )

Returns event base associated with the connection.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

On success returns EventBase object associated with the connection. Otherwise FALSE.


Gets the remote address and port associated with the connection

  • « EventHttpConnection::getBase
  • EventHttpConnection::makeRequest »
  • PHP Manual
  • EventHttpConnection
  • Gets the remote address and port associated with the connection

EventHttpConnection::getPeer

(PECL event >= 1.2.6-beta)

EventHttpConnection::getPeer — Gets the remote address and port associated with the connection

Описание

public void EventHttpConnection::getPeer ( string &$address , int &$port )

Gets the remote address and port associated with the connection

Список параметров

address

Address of the peer.

port

Port of the peer.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Makes an HTTP request over the specified connection

  • « EventHttpConnection::getPeer
  • EventHttpConnection::setCloseCallback »
  • PHP Manual
  • EventHttpConnection
  • Makes an HTTP request over the specified connection

EventHttpConnection::makeRequest

(PECL event >= 1.4.0-beta)

EventHttpConnection::makeRequest — Makes an HTTP request over the specified connection

Описание

public bool EventHttpConnection::makeRequest ( EventHttpRequest $req , int $type , string $uri )

Makes an HTTP request over the specified connection. type is one of EventHttpRequest::CMD_* constants.

Список параметров

req

The connection object over which to send the request.

type

One of EventHttpRequest::CMD_* constants .

uri

The URI associated with the request.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Примеры

Пример #1 EventHttpConnection::makeRequest() example

<?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 "Connection refused\n";
        } elseif ($response_code != 200) {
            echo "Unexpected response: $response_code\n";
        } else {
            echo "Success: $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Body:\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() - Adds an HTTP header to the headers of the request


Set callback for connection close

  • « EventHttpConnection::makeRequest
  • EventHttpConnection::setLocalAddress »
  • PHP Manual
  • EventHttpConnection
  • Set callback for connection close

EventHttpConnection::setCloseCallback

(PECL event >= 1.8.0)

EventHttpConnection::setCloseCallback — Set callback for connection close

Описание

public void EventHttpConnection::setCloseCallback ( callable $callback [, mixed $data ] )

Sets callback for connection close.

Список параметров

callback

Callback which is called when connection is closed. Should match the following prototype:

void callback ([ EventHttpConnection $conn = NULL [, mixed $arg = NULL ]] )

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 EventHttpConnection::setCloseCallback() example

<?php
/*
 * Setting up close-connection callback
 *
 * The script handles closed connections using HTTP API.
 *
 * Usage:
 * 1) Launch the server:
 * $ php examples/http_closecb.php 4242
 *
 * 2) Launch a client in another terminal. Telnet-like
 * session should look like the following:
 *
 * $ nc -t 127.0.0.1 4242
 * GET / HTTP/1.0
 * Connection: close
 *
 * The server will output something similar to the following:
 *
 * HTTP/1.0 200 OK
 * Content-Type: multipart/x-mixed-replace;boundary=boundarydonotcross
 * Connection: close
 *
 * <html>
 *
 * 3) Terminate the client connection abruptly,
 * i.e. kill the process, or just press Ctrl-C.
 *
 * 4) Check if the server called _close_callback.
 * The script should output "_close_callback" string to standard output.
 *
 * 5) Check if the server's process has no orphaned connections,
 * e.g. with `lsof` utility.
 */

function _close_callback($conn)
{
    echo __FUNCTION__, PHP_EOL;
}

function _http_default($req, $dummy)
{
    $conn = $req->getConnection();
    $conn->setCloseCallback('_close_callback', NULL);

    /*
    By enabling Event::READ we protect the server against unclosed conections.
    This is a peculiarity of Libevent. The library disables Event::READ events
     on this connection, and the server is not notified about terminated
    connections.

    So each time client terminates connection abruptly, we get an orphaned
    connection. For instance, the following is a part of `lsof -p $PID | grep TCP`
    command after client has terminated connection:

    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)

    where $PID is our process ID.

    The following block of code fixes such kind of orphaned connections.
     */
    $bev = $req->getBufferEvent();
    $bev->enable(Event::READ);
    // We have to free it explicitly. See
EventHttpRequest::getConnection()
$bev->free(); // we have to free it explicitly

    $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();

?>


Sets the IP address from which HTTP connections are made

  • « EventHttpConnection::setCloseCallback
  • EventHttpConnection::setLocalPort »
  • PHP Manual
  • EventHttpConnection
  • Sets the IP address from which HTTP connections are made

EventHttpConnection::setLocalAddress

(PECL event >= 1.2.6-beta)

EventHttpConnection::setLocalAddress — Sets the IP address from which HTTP connections are made

Описание

public void EventHttpConnection::setLocalAddress ( string $address )

Sets the IP address from which http connections are made.

Список параметров

address

The IP address from which HTTP connections are made.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpConnection::setLocalPort() - Sets the local port from which connections are made


Sets the local port from which connections are made

  • « EventHttpConnection::setLocalAddress
  • EventHttpConnection::setMaxBodySize »
  • PHP Manual
  • EventHttpConnection
  • Sets the local port from which connections are made

EventHttpConnection::setLocalPort

(PECL event >= 1.2.6-beta)

EventHttpConnection::setLocalPort — Sets the local port from which connections are made

Описание

public void EventHttpConnection::setLocalPort ( int $port )

Sets the local port from which connections are made.

Список параметров

port

The port number.

Возвращаемые значения

Смотрите также

  • EventHttpConnection::setLocalAddress() - Sets the IP address from which HTTP connections are made


Sets maximum body size for the connection

  • « EventHttpConnection::setLocalPort
  • EventHttpConnection::setMaxHeadersSize »
  • PHP Manual
  • EventHttpConnection
  • Sets maximum body size for the connection

EventHttpConnection::setMaxBodySize

(PECL event >= 1.2.6-beta)

EventHttpConnection::setMaxBodySize — Sets maximum body size for the connection

Описание

public void EventHttpConnection::setMaxBodySize ( string $max_size )

Sets maximum body size for the connection.

Список параметров

max_size

The maximum body size in bytes.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpConnection::setMaxHeadersSize() - Sets maximum header size


Sets maximum header size

  • « EventHttpConnection::setMaxBodySize
  • EventHttpConnection::setRetries »
  • PHP Manual
  • EventHttpConnection
  • Sets maximum header size

EventHttpConnection::setMaxHeadersSize

(PECL event >= 1.2.6-beta)

EventHttpConnection::setMaxHeadersSize — Sets maximum header size

Описание

public void EventHttpConnection::setMaxHeadersSize ( string $max_size )

Sets maximum header size for the connection.

Список параметров

max_size

The maximum header size in bytes.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpConnection::setMaxBodySize() - Sets maximum body size for the connection


Sets the retry limit for the connection

  • « EventHttpConnection::setMaxHeadersSize
  • EventHttpConnection::setTimeout »
  • PHP Manual
  • EventHttpConnection
  • Sets the retry limit for the connection

EventHttpConnection::setRetries

(PECL event >= 1.2.6-beta)

EventHttpConnection::setRetries — Sets the retry limit for the connection

Описание

public void EventHttpConnection::setRetries ( int $retries )

Sets the retry limit for the connection

Список параметров

retries

The retry limit. -1 means infinity.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Sets the timeout for the connection

  • « EventHttpConnection::setRetries
  • EventHttpRequest »
  • PHP Manual
  • EventHttpConnection
  • Sets the timeout for the connection

EventHttpConnection::setTimeout

(PECL event >= 1.2.6-beta)

EventHttpConnection::setTimeout — Sets the timeout for the connection

Описание

public void EventHttpConnection::setTimeout ( int $timeout )

Sets the timeout for the connection

Список параметров

timeout

Timeout in seconds.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The EventHttpRequest class

(PECL event >= 1.4.0-beta)

Введение

Represents an HTTP request.

Обзор классов

EventHttpRequest {
/* Constants */
const integer CMD_GET = 1 ;
const integer CMD_POST = 2 ;
const integer CMD_HEAD = 4 ;
const integer CMD_PUT = 8 ;
const integer CMD_DELETE = 16 ;
const integer CMD_OPTIONS = 32 ;
const integer CMD_TRACE = 64 ;
const integer CMD_CONNECT = 128 ;
const integer CMD_PATCH = 256 ;
const integer INPUT_HEADER = 1 ;
const integer OUTPUT_HEADER = 2 ;
/* Методы */
public bool addHeader ( string $key , string $value , int $type )
public void cancel ( void )
public void clearHeaders ( void )
public void closeConnection ( void )
public __construct ( callable $callback [, mixed $data = NULL ] )
public void findHeader ( string $key , string $type )
public void free ( void )
public EventBufferEvent closeConnection ( void )
public void getCommand ( void )
public EventHttpConnection closeConnection ( void )
public string getHost ( void )
public EventBuffer getInputBuffer ( void )
public array getInputHeaders ( void )
public EventBuffer getOutputBuffer ( void )
public void getOutputHeaders ( void )
public int getResponseCode ( void )
public string getUri ( void )
public void removeHeader ( string $key , string $type )
public void sendError ( int $error [, string $reason = NULL ] )
public void sendReply ( int $code , string $reason [, EventBuffer $buf ] )
public void sendReplyChunk ( EventBuffer $buf )
public void sendReplyEnd ( void )
public void sendReplyStart ( int $code , string $reason )
}

Предопределенные константы

EventHttpRequest::CMD_GET

GET method(command)

EventHttpRequest::CMD_POST

POST method(command)

EventHttpRequest::CMD_HEAD

HEAD method(command)

EventHttpRequest::CMD_PUT

PUT method(command)

EventHttpRequest::CMD_DELETE

DELETE command(method)

EventHttpRequest::CMD_OPTIONS

OPTIONS method(command)

EventHttpRequest::CMD_TRACE

TRACE method(command)

EventHttpRequest::CMD_CONNECT

CONNECT method(command)

EventHttpRequest::CMD_PATCH

PATCH method(command)

EventHttpRequest::INPUT_HEADER

Request input header type.

EventHttpRequest::OUTPUT_HEADER

Request output header type.

Содержание

  • EventHttpRequest::addHeader — Adds an HTTP header to the headers of the request
  • EventHttpRequest::cancel — Cancels a pending HTTP request
  • EventHttpRequest::clearHeaders — Removes all output headers from the header list of the request
  • EventHttpRequest::closeConnection — Closes associated HTTP connection
  • EventHttpRequest::__construct — Constructs EventHttpRequest object
  • EventHttpRequest::findHeader — Finds the value belonging a header
  • EventHttpRequest::free — Frees the object and removes associated events
  • EventHttpRequest::getBufferEvent — Returns EventBufferEvent object
  • EventHttpRequest::getCommand — Returns the request command(method)
  • EventHttpRequest::getConnection — Returns EventHttpConnection object
  • EventHttpRequest::getHost — Returns the request host
  • EventHttpRequest::getInputBuffer — Returns the input buffer
  • EventHttpRequest::getInputHeaders — Returns associative array of the input headers
  • EventHttpRequest::getOutputBuffer — Returns the output buffer of the request
  • EventHttpRequest::getOutputHeaders — Returns associative array of the output headers
  • EventHttpRequest::getResponseCode — Returns the response code
  • EventHttpRequest::getUri — Returns the request URI
  • EventHttpRequest::removeHeader — Removes an HTTP header from the headers of the request
  • EventHttpRequest::sendError — Send an HTML error message to the client
  • EventHttpRequest::sendReply — Send an HTML reply to the client
  • EventHttpRequest::sendReplyChunk — Send another data chunk as part of an ongoing chunked reply
  • EventHttpRequest::sendReplyEnd — Complete a chunked reply, freeing the request as appropriate
  • EventHttpRequest::sendReplyStart — Initiate a chunked reply


Adds an HTTP header to the headers of the request

  • « EventHttpRequest
  • EventHttpRequest::cancel »
  • PHP Manual
  • EventHttpRequest
  • Adds an HTTP header to the headers of the request

EventHttpRequest::addHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::addHeader — Adds an HTTP header to the headers of the request

Описание

public bool EventHttpRequest::addHeader ( string $key , string $value , int $type )

Adds an HTTP header to the headers of the request.

Список параметров

key

Header name.

value

Header value.

type

One of EventHttpRequest::*_HEADER constants .

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventHttpRequest::removeHeader() - Removes an HTTP header from the headers of the request


Cancels a pending HTTP request

  • « EventHttpRequest::addHeader
  • EventHttpRequest::clearHeaders »
  • PHP Manual
  • EventHttpRequest
  • Cancels a pending HTTP request

EventHttpRequest::cancel

(PECL event >= 1.4.0-beta)

EventHttpRequest::cancel — Cancels a pending HTTP request

Описание

public void EventHttpRequest::cancel ( void )

Cancels a pending HTTP request.

Cancels an ongoing HTTP request. The callback associated with this request is not executed and the request object is freed. If the request is currently being processed, e.g. it is ongoing, the corresponding EventHttpConnection object is going to get reset.

A request cannot be canceled if its callback has executed already. A request may be canceled reentrantly from its chunked callback.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Removes all output headers from the header list of the request

  • « EventHttpRequest::cancel
  • EventHttpRequest::closeConnection »
  • PHP Manual
  • EventHttpRequest
  • Removes all output headers from the header list of the request

EventHttpRequest::clearHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::clearHeaders — Removes all output headers from the header list of the request

Описание

public void EventHttpRequest::clearHeaders ( void )

Removes all output headers from the header list of the request.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Closes associated HTTP connection

  • « EventHttpRequest::clearHeaders
  • EventHttpRequest::__construct »
  • PHP Manual
  • EventHttpRequest
  • Closes associated HTTP connection

EventHttpRequest::closeConnection

(PECL event >= 1.8.0)

EventHttpRequest::closeConnection — Closes associated HTTP connection

Описание

public void EventHttpRequest::closeConnection ( void )

Closes HTTP connection associated with the request.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Constructs EventHttpRequest object

  • « EventHttpRequest::closeConnection
  • EventHttpRequest::findHeader »
  • PHP Manual
  • EventHttpRequest
  • Constructs EventHttpRequest object

EventHttpRequest::__construct

(PECL event >= 1.4.0-beta)

EventHttpRequest::__construct — Constructs EventHttpRequest object

Описание

public EventHttpRequest::__construct ( callable $callback [, mixed $data = NULL ] )

Constructs EventHttpRequest object.

Список параметров

callback

Gets invoked on requesting path. Should match the following prototype:

void callback ([ EventHttpRequest $req = NULL [, mixed $arg = NULL ]] )
data

User custom data passed to the callback.

Возвращаемые значения

Returns EventHttpRequest object.

Примеры

Пример #1 EventHttpRequest::__construct() example

<?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 "Connection refused\n";
        } elseif ($response_code != 200) {
            echo "Unexpected response: $response_code\n";
        } else {
            echo "Success: $response_code\n";
            $buf = $req->getInputBuffer();
            echo "Body:\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() - Cancels a pending HTTP request
  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Finds the value belonging a header

  • « EventHttpRequest::__construct
  • EventHttpRequest::free »
  • PHP Manual
  • EventHttpRequest
  • Finds the value belonging a header

EventHttpRequest::findHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::findHeader — Finds the value belonging a header

Описание

public void EventHttpRequest::findHeader ( string $key , string $type )

Finds the value belonging a header.

Список параметров

key

The header name.

type

One of EventHttpRequest::*_HEADER constants .

Возвращаемые значения

Returns NULL if header not found.

Смотрите также

  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Frees the object and removes associated events

  • « EventHttpRequest::findHeader
  • EventHttpRequest::getBufferEvent »
  • PHP Manual
  • EventHttpRequest
  • Frees the object and removes associated events

EventHttpRequest::free

(PECL event >= 1.4.0-beta)

EventHttpRequest::free — Frees the object and removes associated events

Описание

public void EventHttpRequest::free ( void )

Frees the object and removes associated events.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Returns EventBufferEvent object

  • « EventHttpRequest::free
  • EventHttpRequest::getCommand »
  • PHP Manual
  • EventHttpRequest
  • Returns EventBufferEvent object

EventHttpRequest::getBufferEvent

(PECL event >= 1.8.0)

EventHttpRequest::getBufferEvent — Returns EventBufferEvent object

Описание

public EventBufferEvent EventHttpRequest::closeConnection ( void )

Returns EventBufferEvent object which represents buffer event that the connection is using.

Внимание

The reference counter of the returned object will be incremented by one to protect internal structures against premature destruction when the method is called from a user callback. So the EventBufferEvent object should be freed explicitly with EventBufferEvent::free() method. Otherwise memory will leak.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns EventBufferEvent object.

Смотрите также

  • EventHttpRequest::getConnection() - Returns EventHttpConnection object


Returns the request command(method)

  • « EventHttpRequest::getBufferEvent
  • EventHttpRequest::getConnection »
  • PHP Manual
  • EventHttpRequest
  • Returns the request command(method)

EventHttpRequest::getCommand

(PECL event >= 1.4.0-beta)

EventHttpRequest::getCommand — Returns the request command(method)

Описание

public void EventHttpRequest::getCommand ( void )

Returns the request command, one of EventHttpRequest::CMD_* constants.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the request command, one of EventHttpRequest::CMD_* constants.


Returns EventHttpConnection object

  • « EventHttpRequest::getCommand
  • EventHttpRequest::getHost »
  • PHP Manual
  • EventHttpRequest
  • Returns EventHttpConnection object

EventHttpRequest::getConnection

(PECL event >= 1.8.0)

EventHttpRequest::getConnection — Returns EventHttpConnection object

Описание

public EventHttpConnection EventHttpRequest::closeConnection ( void )

Returns EventHttpConnection object which represents HTTP connection associated with the request.

Внимание

Libevent API allows HTTP request objects to be not bound to any HTTP connection. Therefore we can't unambiguously associate EventHttpRequest with EventHttpConnection . Thus, we construct EventHttpConnection object on-the-fly. Having no information about the event base, DNS base and connection-close callback, we just leave these fields unset.

EventHttpRequest::getConnection() method is usually useful when we need to set up a callback on connection close. See EventHttpConnection::setCloseCallback() .

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns EventHttpConnection object.

Смотрите также

  • EventHttpConnection::setCloseCallback() - Set callback for connection close
  • EventHttpRequest::getBufferEvent() - Returns EventBufferEvent object


Returns the request host

  • « EventHttpRequest::getConnection
  • EventHttpRequest::getInputBuffer »
  • PHP Manual
  • EventHttpRequest
  • Returns the request host

EventHttpRequest::getHost

(PECL event >= 1.4.0-beta)

EventHttpRequest::getHost — Returns the request host

Описание

public string EventHttpRequest::getHost ( void )

Returns the request host.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the request host.

Смотрите также

  • EventHttpRequest::getUri() - Returns the request URI
  • EventHttpRequest::getCommand() - Returns the request command(method)


Returns the input buffer

  • « EventHttpRequest::getHost
  • EventHttpRequest::getInputHeaders »
  • PHP Manual
  • EventHttpRequest
  • Returns the input buffer

EventHttpRequest::getInputBuffer

(PECL event >= 1.4.0-beta)

EventHttpRequest::getInputBuffer — Returns the input buffer

Описание

public EventBuffer EventHttpRequest::getInputBuffer ( void )

Returns the input buffer.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the input buffer.

Смотрите также

  • EventHttpRequest::getOutputBuffer() - Returns the output buffer of the request


Returns associative array of the input headers

  • « EventHttpRequest::getInputBuffer
  • EventHttpRequest::getOutputBuffer »
  • PHP Manual
  • EventHttpRequest
  • Returns associative array of the input headers

EventHttpRequest::getInputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getInputHeaders — Returns associative array of the input headers

Описание

public array EventHttpRequest::getInputHeaders ( void )

Returns associative array of the input headers.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns associative array of the input headers.

Смотрите также

  • EventHttpRequest::getOutputHeaders() - Returns associative array of the output headers


Returns the output buffer of the request

  • « EventHttpRequest::getInputHeaders
  • EventHttpRequest::getOutputHeaders »
  • PHP Manual
  • EventHttpRequest
  • Returns the output buffer of the request

EventHttpRequest::getOutputBuffer

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputBuffer — Returns the output buffer of the request

Описание

public EventBuffer EventHttpRequest::getOutputBuffer ( void )

Returns the output buffer of the request.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the output buffer of the request.

Смотрите также

  • EventHttpRequest::getInputBuffer() - Returns the input buffer


Returns associative array of the output headers

  • « EventHttpRequest::getOutputBuffer
  • EventHttpRequest::getResponseCode »
  • PHP Manual
  • EventHttpRequest
  • Returns associative array of the output headers

EventHttpRequest::getOutputHeaders

(PECL event >= 1.4.0-beta)

EventHttpRequest::getOutputHeaders — Returns associative array of the output headers

Описание

public void EventHttpRequest::getOutputHeaders ( void )

Returns associative array of the output headers.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • EventHttpRequest::getInputHeaders() - Returns associative array of the input headers


Returns the response code

  • « EventHttpRequest::getOutputHeaders
  • EventHttpRequest::getUri »
  • PHP Manual
  • EventHttpRequest
  • Returns the response code

EventHttpRequest::getResponseCode

(PECL event >= 1.4.0-beta)

EventHttpRequest::getResponseCode — Returns the response code

Описание

public int EventHttpRequest::getResponseCode ( void )

Returns the response code.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the response code of the request.

Смотрите также

  • EventHttpRequest::getCommand() - Returns the request command(method)
  • EventHttpRequest::getHost() - Returns the request host
  • EventHttpRequest::getUri() - Returns the request URI


Returns the request URI

  • « EventHttpRequest::getResponseCode
  • EventHttpRequest::removeHeader »
  • PHP Manual
  • EventHttpRequest
  • Returns the request URI

EventHttpRequest::getUri

(PECL event >= 1.4.0-beta)

EventHttpRequest::getUri — Returns the request URI

Описание

public string EventHttpRequest::getUri ( void )

Returns the request URI

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the request URI

Смотрите также

  • EventHttpRequest::getCommand() - Returns the request command(method)
  • EventHttpRequest::getHost() - Returns the request host
  • EventHttpRequest::getResponseCode() - Returns the response code


Removes an HTTP header from the headers of the request

  • « EventHttpRequest::getUri
  • EventHttpRequest::sendError »
  • PHP Manual
  • EventHttpRequest
  • Removes an HTTP header from the headers of the request

EventHttpRequest::removeHeader

(PECL event >= 1.4.0-beta)

EventHttpRequest::removeHeader — Removes an HTTP header from the headers of the request

Описание

public void EventHttpRequest::removeHeader ( string $key , string $type )

Removes an HTTP header from the headers of the request.

Список параметров

key

The header name.

type

type is one of EventHttpRequest::*_HEADER constants.

Возвращаемые значения

Removes an HTTP header from the headers of the request.

Смотрите также

  • EventHttpRequest::addHeader() - Adds an HTTP header to the headers of the request


Send an HTML error message to the client

  • « EventHttpRequest::removeHeader
  • EventHttpRequest::sendReply »
  • PHP Manual
  • EventHttpRequest
  • Send an HTML error message to the client

EventHttpRequest::sendError

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendError — Send an HTML error message to the client

Описание

public void EventHttpRequest::sendError ( int $error [, string $reason = NULL ] )

Send an HTML error message to the client.

Список параметров

error

The HTTP error code.

reason

A brief explanation ofthe error. If NULL, the standard meaning of the error code will be used.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 EventHttpRequest::sendError() example

<?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() - Send an HTML reply to the client


Send an HTML reply to the client

  • « EventHttpRequest::sendError
  • EventHttpRequest::sendReplyChunk »
  • PHP Manual
  • EventHttpRequest
  • Send an HTML reply to the client

EventHttpRequest::sendReply

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReply — Send an HTML reply to the client

Описание

public void EventHttpRequest::sendReply ( int $code , string $reason [, EventBuffer $buf ] )

Send an HTML reply to the client. The body of the reply consists of data in optional buf parameter.

Список параметров

code

The HTTP response code to send.

reason

A brief message to send with the response code.

buf

The body of the response.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpRequest::sendError() - Send an HTML error message to the client
  • EventHttpRequest::sendReplyChunk() - Send another data chunk as part of an ongoing chunked reply


Send another data chunk as part of an ongoing chunked reply

  • « EventHttpRequest::sendReply
  • EventHttpRequest::sendReplyEnd »
  • PHP Manual
  • EventHttpRequest
  • Send another data chunk as part of an ongoing chunked reply

EventHttpRequest::sendReplyChunk

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyChunk — Send another data chunk as part of an ongoing chunked reply

Описание

public void EventHttpRequest::sendReplyChunk ( EventBuffer $buf )

Send another data chunk as part of an ongoing chunked reply. After calling this method buf will be empty.

Список параметров

buf

The data chunk to send as part of the reply.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpRequest::sendReplyStart() - Initiate a chunked reply
  • EventHttpRequest::sendReplyEnd() - Complete a chunked reply, freeing the request as appropriate


Complete a chunked reply, freeing the request as appropriate

  • « EventHttpRequest::sendReplyChunk
  • EventHttpRequest::sendReplyStart »
  • PHP Manual
  • EventHttpRequest
  • Complete a chunked reply, freeing the request as appropriate

EventHttpRequest::sendReplyEnd

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyEnd — Complete a chunked reply, freeing the request as appropriate

Описание

public void EventHttpRequest::sendReplyEnd ( void )

Complete a chunked reply, freeing the request as appropriate.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpRequest::sendReplyStart() - Initiate a chunked reply
  • EventHttpRequest::sendReplyChunk() - Send another data chunk as part of an ongoing chunked reply


Initiate a chunked reply

  • « EventHttpRequest::sendReplyEnd
  • EventListener »
  • PHP Manual
  • EventHttpRequest
  • Initiate a chunked reply

EventHttpRequest::sendReplyStart

(PECL event >= 1.4.0-beta)

EventHttpRequest::sendReplyStart — Initiate a chunked reply

Описание

public void EventHttpRequest::sendReplyStart ( int $code , string $reason )

Initiate a reply that uses Transfer-Encoding chunked .

This allows the caller to stream the reply back to the client and is useful when either not all of the reply data is immediately available or when sending very large replies.

The caller needs to supply data chunks with EventHttpRequest::sendReplyChunk() and complete the reply by calling EventHttpRequest::sendReplyEnd() .

Список параметров

code

The HTTP response code to send.

reason

A brief message to send with the response code.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • EventHttpRequest::sendReplyChunk() - Send another data chunk as part of an ongoing chunked reply
  • EventHttpRequest::sendReplyEnd() - Complete a chunked reply, freeing the request as appropriate


The EventListener class

(PECL event >= 1.5.0)

Введение

Represents a connection listener.

Обзор классов

final EventListener {
/* Constants */
const integer OPT_LEAVE_SOCKETS_BLOCKING = 1 ;
const integer OPT_CLOSE_ON_FREE = 2 ;
const integer OPT_CLOSE_ON_EXEC = 4 ;
const integer OPT_REUSEABLE = 8 ;
const integer OPT_THREADSAFE = 16 ;
/* Свойства */
public readonly int $fd ;
/* Методы */
public __construct ( EventBase $base , callable $cb , mixed $data , int $flags , int $backlog , mixed $target )
public bool disable ( void )
public bool enable ( void )
public void getBase ( void )
public static bool getSocketName ( string &$address [, mixed &$port ] )
public void setCallback ( callable $cb [, mixed $arg = NULL ] )
public void setErrorCallback ( string $cb )
}

Свойства

fd

Numeric file descriptor of the underlying socket. (Added in event-1.6.0 .)

Предопределенные константы

EventListener::OPT_LEAVE_SOCKETS_BLOCKING

By default Libevent turns underlying file descriptors, or sockets, to non-blocking mode. This flag tells to leave them non-blocking.

EventListener::OPT_CLOSE_ON_FREE

If this option is set, the connection listener closes its underlying socket when the EventListener object is freed.

EventListener::OPT_CLOSE_ON_EXEC

If this option is set, the connection listener sets the close-on-exec flag on the underlying listener socket. See platform documentation for fcntl and FD_CLOEXEC for more information.

EventListener::OPT_REUSEABLE

By default on some platforms, once a listener socket is closed, no other socket can bind to the same port until a while has passed. Setting this option makes Libevent mark the socket as reusable, so that once it is closed, another socket can be opened to listen on the same port.

EventListener::OPT_THREADSAFE

Allocate locks for the listener, so that it's safe to use it from multiple threads.

Содержание

  • EventListener::__construct — Creates new connection listener associated with an event base
  • EventListener::disable — Disables an event connect listener object
  • EventListener::enable — Enables an event connect listener object
  • EventListener::getBase — Returns event base associated with the event listener
  • EventListener::getSocketName — Retreives the current address to which the listener's socket is bound.
  • EventListener::setCallback — The setCallback purpose
  • EventListener::setErrorCallback — Set event listener's error callback


Creates new connection listener associated with an event base

  • « EventListener
  • EventListener::disable »
  • PHP Manual
  • EventListener
  • Creates new connection listener associated with an event base

EventListener::__construct

(PECL event >= 1.2.6-beta)

EventListener::__construct — Creates new connection listener associated with an event base

Описание

public EventListener::__construct ( EventBase $base , callable $cb , mixed $data , int $flags , int $backlog , mixed $target )

Creates new connection listener associated with an event base.

Список параметров

base

Associated event base.

cb

A callable that will be invoked when new connection received.

data

Custom user data attached to cb .

flags

Bit mask of EventListener::OPT_* constants. See EventListener constants .

backlog

Controls the maximum number of pending connections that the network stack should allow to wait in a not-yet-accepted state at any time; see documentation for your system's listen function for more details. If backlog is negative, Libevent tries to pick a good value for the backlog ; if it is zero, Event assumes that listen is already called on the socket( target )

target

May be string, socket resource, or a stream associated with a socket. In case if target is a string, the string will be parsed as network address. It will be interpreted as a UNIX domain socket path, if prefixed with 'unix:' , e.g. 'unix:/tmp/my.sock' .

Возвращаемые значения

Returns EventListener object representing the event connection listener.

Список изменений

Версия | Описание
1.5.0 | UNIX domain sockets' support added.

Примеры

Пример #1 EventListener::__construct() example

<?php
/*
 * Simple echo server based on libevent's connection listener.
 *
 * Usage:
 * 1) In one terminal window run:
 *
 * $ php listener.php 9881
 *
 * 2) In another terminal window open up connection, e.g.:
 *
 * $ nc 127.0.0.1 9881
 *
 * 3) start typing. The server should repeat the input.
 */

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 "Failed to enable READ\n";
            return;
        }
    }

    public function echoReadCallback($bev, $ctx) {
        // Copy all the data from the input buffer to the output buffer

        // Variant #1
        $bev->output->addBuffer($bev->input);

        /* Variant #2 */
        /*
        $input    = $bev->getInput();
        $output = $bev->getOutput();
        $output->addBuffer($input);
        */
    }

    public function echoEventCallback($bev, $events, $ctx) {
        if ($events & EventBufferEvent::ERROR) {
            echo "Error from 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 "Couldn't open event base";
            exit(1);
        }

        // Variant #1
        /*
        $this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
        if (!socket_bind($this->socket, '0.0.0.0', $port)) {
            echo "Unable to bind socket\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);
         */

        // Variant #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 "Couldn't create listener";
            exit(1);
        }

        $this->listener->setErrorCallback(array($this, "accept_error_cb"));
    }

    public function dispatch() {
        $this->base->dispatch();
    }

    // This callback is invoked when there is data to read on $bev
    public function acceptConnCallback($listener, $fd, $address, $ctx) {
        // We got a new connection! Set up a bufferevent for it. */
        $base = $this->base;
        $this->conn[] = new MyListenerConnection($base, $fd);
    }

    public function accept_error_cb($listener, $ctx) {
        $base = $this->base;

        fprintf(STDERR, "Got an error %d (%s) on the listener. "
            ."Shutting down.\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();
?>


Disables an event connect listener object

  • « EventListener::__construct
  • EventListener::enable »
  • PHP Manual
  • EventListener
  • Disables an event connect listener object

EventListener::disable

(PECL event >= 1.2.6-beta)

EventListener::disable — Disables an event connect listener object

Описание

public bool EventListener::disable ( void )

Disables an event connect listener object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventListener::enable() - Enables an event connect listener object


Enables an event connect listener object

  • « EventListener::disable
  • EventListener::getBase »
  • PHP Manual
  • EventListener
  • Enables an event connect listener object

EventListener::enable

(PECL event >= 1.2.6-beta)

EventListener::enable — Enables an event connect listener object

Описание

public bool EventListener::enable ( void )

Enables an event connect listener object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • EventListener::disable() - Disables an event connect listener object


Returns event base associated with the event listener

  • « EventListener::enable
  • EventListener::getSocketName »
  • PHP Manual
  • EventListener
  • Returns event base associated with the event listener

EventListener::getBase

(PECL event >= 1.2.6-beta)

EventListener::getBase — Returns event base associated with the event listener

Описание

public void EventListener::getBase ( void )

Returns event base associated with the event listener.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns event base associated with the event listener.


Retreives the current address to which the listener's socket is bound.

  • « EventListener::getBase
  • EventListener::setCallback »
  • PHP Manual
  • EventListener
  • Retreives the current address to which the listener's socket is bound.

EventListener::getSocketName

(PECL event >= 1.5.0)

EventListener::getSocketName — Retreives the current address to which the listener's socket is bound.

Описание

public static bool EventListener::getSocketName ( string &$address [, mixed &$port ] )

Retreives the current address to which the listener's socket is bound.

Список параметров

address

Output parameter. IP-address depending on the socket address family.

port

Output parameter. The port the socket is bound to.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


The setCallback purpose

  • « EventListener::getSocketName
  • EventListener::setErrorCallback »
  • PHP Manual
  • EventListener
  • The setCallback purpose

EventListener::setCallback

(PECL event >= 1.2.6-beta)

EventListener::setCallback — The setCallback purpose

Описание

public void EventListener::setCallback ( callable $cb [, mixed $arg = NULL ] )

Adjust event connect listener's callback and optionally the callback argument.

Список параметров

cb

The new callback for new connections. Ignored if NULL.

Should match the following prototype:

void callback ([ EventListener $listener = NULL [, mixed $fd = NULL [, array $address = NULL [, mixed $arg = NULL ]]]] )

listener

The EventListener object.

fd

The file descriptor or a resource associated with the listener.

address

Array of two elements: IP address and the server port.

arg

User custom data attached to the callback.

arg

Custom user data attached to the callback. Ignored if NULL.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Set event listener's error callback

  • « EventListener::setCallback
  • EventSslContext »
  • PHP Manual
  • EventListener
  • Set event listener's error callback

EventListener::setErrorCallback

(PECL event >= 1.2.6-beta)

EventListener::setErrorCallback — Set event listener's error callback

Описание

public void EventListener::setErrorCallback ( string $cb )

Set event listener's error callback

Список параметров

cb

The error callback. Should match the following prototype:

void callback ([ EventListener $listener = NULL [, mixed $data = NULL ]] )

listener

The EventListener object.

data

User custom data attached to the callback.

Возвращаемые значения

Смотрите также

  • EventListener::setCallback() - The setCallback purpose


The EventSslContext class

(PECL event >= 1.2.6-beta)

Введение

Represents SSL_CTX structure. Provides methods and properties to configure the SSL context.

Обзор классов

final EventSslContext {
/* Constants */
const integer SSLv2_CLIENT_METHOD = 1 ;
const integer SSLv3_CLIENT_METHOD = 2 ;
const integer SSLv23_CLIENT_METHOD = 3 ;
const integer TLS_CLIENT_METHOD = 4 ;
const integer SSLv2_SERVER_METHOD = 5 ;
const integer SSLv3_SERVER_METHOD = 6 ;
const integer SSLv23_SERVER_METHOD = 7 ;
const integer TLS_SERVER_METHOD = 8 ;
const integer OPT_LOCAL_CERT = 1 ;
const integer OPT_LOCAL_PK = 2 ;
const integer OPT_PASSPHRASE = 3 ;
const integer OPT_CA_FILE = 4 ;
const integer OPT_CA_PATH = 5 ;
const integer OPT_ALLOW_SELF_SIGNED = 6 ;
const integer OPT_VERIFY_PEER = 7 ;
const integer OPT_VERIFY_DEPTH = 8 ;
const integer OPT_CIPHERS = 9 ;
/* Свойства */
public string $local_cert ;
public string $local_pk ;
/* Методы */
public __construct ( string $method , string $options )
}

Свойства

local_cert

Path to local certificate file on filesystem. It must be a PEM-encoded file which contains certificate. It can optionally contain the certificate chain of issuers.

local_pk

Path to local private key file

Предопределенные константы

EventSslContext::SSLv2_CLIENT_METHOD

SSLv2 client method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv3_CLIENT_METHOD

SSLv3 client method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv23_CLIENT_METHOD

SSLv23 client method. See SSL_CTX_new(3) man page.

EventSslContext::TLS_CLIENT_METHOD

TLS client method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv2_SERVER_METHOD

SSLv2 server method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv3_SERVER_METHOD

SSLv3 server method. See SSL_CTX_new(3) man page.

EventSslContext::SSLv23_SERVER_METHOD

SSLv23 server method. See SSL_CTX_new(3) man page.

EventSslContext::TLS_SERVER_METHOD

TLS server method. See SSL_CTX_new(3) man page.

EventSslContext::OPT_LOCAL_CERT

Key for an item of the options' array used in EventSslContext::__construct() . The option points to path of local certificate.

EventSslContext::OPT_LOCAL_PK

Key for an item of the options' array used in EventSslContext::__construct() . The option points to path of the private key.

EventSslContext::OPT_PASSPHRASE

Key for an item of the options' array used in EventSslContext::__construct() . Represents passphrase of the certificate.

EventSslContext::OPT_CA_FILE

Key for an item of the options' array used in EventSslContext::__construct() . Represents path of the certificate authority file.

EventSslContext::OPT_CA_PATH

Key for an item of the options' array used in EventSslContext::__construct() . Represents path where the certificate authority file should be searched for.

EventSslContext::OPT_ALLOW_SELF_SIGNED

Key for an item of the options' array used in EventSslContext::__construct() . Represents option that allows self-signed certificates.

EventSslContext::OPT_VERIFY_PEER

Key for an item of the options' array used in EventSslContext::__construct() . Represents option that tells Event to verify peer.

EventSslContext::OPT_VERIFY_DEPTH

Key for an item of the options' array used in EventSslContext::__construct() . Represents maximum depth for the certificate chain verification that shall be allowed for the SSL context.

EventSslContext::OPT_CIPHERS

Key for an item of the options' array used in EventSslContext::__construct() . Represents the cipher list for the SSL context.

Содержание

  • EventSslContext::__construct — Constructs an OpenSSL context for use with Event classes


Constructs an OpenSSL context for use with Event classes

  • « EventSslContext
  • EventUtil »
  • PHP Manual
  • EventSslContext
  • Constructs an OpenSSL context for use with Event classes

EventSslContext::__construct

(PECL event >= 1.2.6-beta)

EventSslContext::__construct — Constructs an OpenSSL context for use with Event classes

Описание

public EventSslContext::__construct ( string $method , string $options )

Creates SSL context holding pointer to SSL_CTX (see the system manual).

Список параметров

method

One of EventSslContext::*_METHOD constants .

options

Associative array of SSL context options One of EventSslContext::OPT_* constants .

Возвращаемые значения

Returns EventSslContext object.

Примеры

Пример #1 EventSslContext::__construct() example

<?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,
));
?>


The EventUtil class

(PECL event >= 1.5.0)

Введение

EventUtil is a singleton with supplimentary methods and constants.

Обзор классов

final EventUtil {
/* Constants */
const integer AF_INET = 2 ;
const integer AF_INET6 = 10 ;
const integer AF_UNSPEC = 0 ;
const integer LIBEVENT_VERSION_NUMBER = 33559808 ;
const integer SO_DEBUG = 1 ;
const integer SO_REUSEADDR = 2 ;
const integer SO_KEEPALIVE = 9 ;
const integer SO_DONTROUTE = 5 ;
const integer SO_LINGER = 13 ;
const integer SO_BROADCAST = 6 ;
const integer SO_OOBINLINE = 10 ;
const integer SO_SNDBUF = 7 ;
const integer SO_RCVBUF = 8 ;
const integer SO_SNDLOWAT = 19 ;
const integer SO_RCVLOWAT = 18 ;
const integer SO_SNDTIMEO = 21 ;
const integer SO_RCVTIMEO = 20 ;
const integer SO_TYPE = 3 ;
const integer SO_ERROR = 4 ;
const integer SOL_SOCKET = 1 ;
const integer SOL_TCP = 6 ;
const integer SOL_UDP = 17 ;
const integer IPPROTO_IP = 0 ;
const integer IPPROTO_IPV6 = 41 ;
/* Методы */
abstract public __construct ( void )
public static int getLastSocketErrno ([ mixed $socket = NULL ] )
public static string getLastSocketError ([ mixed $socket ] )
public static int getSocketFd ( mixed $socket )
public static bool getSocketName ( mixed $socket , string &$address [, mixed &$port ] )
public static bool setSocketOption ( mixed $socket , int $level , int $optname , mixed $optval )
public static void sslRandPoll ( void )
}

Предопределенные константы

EventUtil::AF_INET

IPv4 address family

EventUtil::AF_INET6

IPv6 address family

EventUtil::AF_UNSPEC

Unspecified IP address family

EventUtil::SO_DEBUG

Socket option. Enable socket debugging. Only allowed for processes with the CAP_NET_ADMIN capability or an effective user ID of 0 . (Added in event-1.6.0.)

EventUtil::SO_REUSEADDR

Socket option. Indicates that the rules used in validating addresses supplied in a bind(2) call should allow reuse of local addresses. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_KEEPALIVE

Socket option. Enable sending of keep-alive messages on connection-oriented sockets. Expects an integer boolean flag. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_DONTROUTE

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_LINGER

Socket option. When enabled, a close(2) or shutdown(2) will not return until all queued messages for the socket have been successfully sent or the linger timeout has been reached. Otherwise, the call returns immediately and the closing is done in the background. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_BROADCAST

Socket option. Reports whether transmission of broadcast messages is supported. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_OOBINLINE

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_SNDBUF

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_RCVBUF

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_SNDLOWAT

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_RCVLOWAT

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_SNDTIMEO

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_RCVTIMEO

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_TYPE

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SO_ERROR

Socket option. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SOL_SOCKET

Socket option level. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SOL_TCP

Socket option level. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::SOL_UDP

Socket option level. See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::IPPROTO_IP

See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::IPPROTO_IPV6

See the socket(7) manual page. (Added in event-1.6.0.)

EventUtil::LIBEVENT_VERSION_NUMBER

Libevent' version number at the time when Event extension had been compiled with the library.

Содержание

  • EventUtil::__construct — The abstract constructor
  • EventUtil::getLastSocketErrno — Returns the most recent socket error number
  • EventUtil::getLastSocketError — Returns the most recent socket error
  • EventUtil::getSocketFd — Returns numeric file descriptor of a socket, or stream
  • EventUtil::getSocketName — Retreives the current address to which the socket is bound.
  • EventUtil::setSocketOption — Sets socket options
  • EventUtil::sslRandPoll — Generates entropy by means of OpenSSL's RAND_poll()


The abstract constructor

  • « EventUtil
  • EventUtil::getLastSocketErrno »
  • PHP Manual
  • EventUtil
  • The abstract constructor

EventUtil::__construct

(PECL event >= 1.2.6-beta)

EventUtil::__construct — The abstract constructor

Описание

abstract public EventUtil::__construct ( void )

EventUtil is a singleton. Therefore the constructor is abstract, and it is impossible to create objects based on this class.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Returns the most recent socket error number

  • « EventUtil::__construct
  • EventUtil::getLastSocketError »
  • PHP Manual
  • EventUtil
  • Returns the most recent socket error number

EventUtil::getLastSocketErrno

(PECL event >= 1.2.6-beta)

EventUtil::getLastSocketErrno — Returns the most recent socket error number

Описание

public static int EventUtil::getLastSocketErrno ([ mixed $socket = NULL ] )

Returns the most recent socket error number( errno ).

Список параметров

socket

Socket resource, stream or a file descriptor of a socket.

Возвращаемые значения

Returns the most recent socket error number( errno ).

Смотрите также

  • EventUtil::getLastSocketError() - Returns the most recent socket error


Returns the most recent socket error

  • « EventUtil::getLastSocketErrno
  • EventUtil::getSocketFd »
  • PHP Manual
  • EventUtil
  • Returns the most recent socket error

EventUtil::getLastSocketError

(PECL event >= 1.2.6-beta)

EventUtil::getLastSocketError — Returns the most recent socket error

Описание

public static string EventUtil::getLastSocketError ([ mixed $socket ] )

Returns the most recent socket error.

Список параметров

socket

Socket resource, stream or a file descriptor of a socket.

Возвращаемые значения

Returns the most recent socket error.

Смотрите также

  • EventUtil::getLastSocketErrno() - Returns the most recent socket error number


Returns numeric file descriptor of a socket, or stream

  • « EventUtil::getLastSocketError
  • EventUtil::getSocketName »
  • PHP Manual
  • EventUtil
  • Returns numeric file descriptor of a socket, or stream

EventUtil::getSocketFd

(PECL event >= 1.7.0)

EventUtil::getSocketFd — Returns numeric file descriptor of a socket, or stream

Описание

public static int EventUtil::getSocketFd ( mixed $socket )

Returns numeric file descriptor of a socket or stream specified by socket argument just like the Event extension does it internally for all methods accepting socket resource or stream.

Список параметров

socket

Socket resource or stream.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE. EventUtil::getSocketFd() returns FALSE in case if it is whether failed to recognize the type of the underlying file, or detected that the file descriptor associated with socket is not valid.


Retreives the current address to which the socket is bound.

  • « EventUtil::getSocketFd
  • EventUtil::setSocketOption »
  • PHP Manual
  • EventUtil
  • Retreives the current address to which the socket is bound.

EventUtil::getSocketName

(PECL event >= 1.5.0)

EventUtil::getSocketName — Retreives the current address to which the socket is bound.

Описание

public static bool EventUtil::getSocketName ( mixed $socket , string &$address [, mixed &$port ] )

Retreives the current address to which the socket is bound.

Список параметров

socket

Socket resource, stream or a file descriptor of a socket.

address

Output parameter. IP-address, or the UNIX domain socket path depending on the socket address family.

port

Output parameter. The port the socket is bound to. Has no meaning for UNIX domain sockets.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.


Sets socket options

  • « EventUtil::getSocketName
  • EventUtil::sslRandPoll »
  • PHP Manual
  • EventUtil
  • Sets socket options

EventUtil::setSocketOption

(PECL event >= 1.6.0)

EventUtil::setSocketOption — Sets socket options

Описание

public static bool EventUtil::setSocketOption ( mixed $socket , int $level , int $optname , mixed $optval )

Sets socket options.

Список параметров

socket

Socket resource, stream, or numeric file descriptor associated with the socket.

level

One of EventUtil::SOL_* constants. Specifies the protocol level at which the option resides. For example, to retrieve options at the socket level, a level parameter of EventUtil::SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function. See EventUtil constants .

optname

Option name(type). Has the same meaning as corresponding parameter of socket_get_option() function. See EventUtil constants .

optval

Accepts the same values as optval parameter of the socket_get_option() function.

Возвращаемые значения

Returns TRUE on success. Otherwise FALSE.

Смотрите также

  • socket_get_option() - Gets socket options for the socket
  • socket_set_option() - Устанавливает опции для сокета


Generates entropy by means of OpenSSL's RAND_poll()

  • « EventUtil::setSocketOption
  • FAM »
  • PHP Manual
  • EventUtil
  • Generates entropy by means of OpenSSL's RAND_poll()

EventUtil::sslRandPoll

(PECL event >= 1.2.6-beta)

EventUtil::sslRandPoll — Generates entropy by means of OpenSSL's RAND_poll()

Описание

public static void EventUtil::sslRandPoll ( void )

Generates entropy by means of OpenSSL's RAND_poll() (see the system manual).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


File Alteration Monitor

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции FAM
    • fam_cancel_monitor — Прекратить мониторинг
    • fam_close — Закрыть соединение с FAM
    • fam_monitor_collection — Мониторинг изменений файлов в директории
    • fam_monitor_directory — Мониторинг изменения директории
    • fam_monitor_file — Отслеживать изменения обычного файла
    • fam_next_event — Получить следующее ожидающее событие FAM
    • fam_open — Создает соединение к сервису FAM
    • fam_pending — Проверяет на наличие ожидающих событий FAM
    • fam_resume_monitor — Возобновить приостановленный мониторинг
    • fam_suspend_monitor — Временно приостанавливает мониторинг


Введение

FAM отслеживает файлы и директории, оповещая заинтересованные приложения об изменениях. Подробное описание FAM доступно по ссылке » http://oss.sgi.com/projects/fam/.

PHP скрипт может задать FAM список файлов для отслеживания используя функции, предоставляемые этим расширением.

Процесс FAM начинает работать когда к нему поступил первый запрос на соединения от любого приложения и завершает работу, когда все соединения будут закрыты.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.


Требования

Это расширение использует функции библиотеки » FAM, разработанной SGI. Следовательно необходимо скачать и установить эту библиотеку.


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » http://svn.php.net/viewvc/pecl/fam.

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0


Типы ресурсов

Расширение FAM использует два типа ресурсов. Первый - обработчик соединения к сервису FAM, возвращенный функцией fam_open(). Второй - ресурс мониторинга, возвращенный одной из функций fam_monitor_XXX.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы событий FAM
Константа | Описание
FAMChanged (integer) | Какие либо значения, полученные с помощью fstat(1) для файла или директории, изменились.
FAMDeleted (integer) | Файл или директория были удалены, либо переименованы.
FAMStartExecuting (integer) | Выполняемый файл был запущен.
FAMStopExecuting (integer) | ЗАпущенный ранее исполняемый файл прекратил работу.
FAMCreated (integer) | В директории создан файл.
FAMMoved (integer) | Это событие никогда не происходит.
FAMAcknowledge (integer) | Событие в ответ на fam_cancel_monitor().
FAMExists (integer) | Событие в ответ на запрос отслеживать файл или директорию. Если запрашивается отслеживание директории, то это событие вызывается для самой директории и для всех файлов внутри нее.
FAMEndExist (integer) | Событие завершающее последовательность событий FAMEExists.


Функции FAM

Содержание

  • fam_cancel_monitor — Прекратить мониторинг
  • fam_close — Закрыть соединение с FAM
  • fam_monitor_collection — Мониторинг изменений файлов в директории
  • fam_monitor_directory — Мониторинг изменения директории
  • fam_monitor_file — Отслеживать изменения обычного файла
  • fam_next_event — Получить следующее ожидающее событие FAM
  • fam_open — Создает соединение к сервису FAM
  • fam_pending — Проверяет на наличие ожидающих событий FAM
  • fam_resume_monitor — Возобновить приостановленный мониторинг
  • fam_suspend_monitor — Временно приостанавливает мониторинг


Прекратить мониторинг

  • « Функции FAM
  • fam_close »
  • PHP Manual
  • Функции FAM
  • Прекратить мониторинг

fam_cancel_monitor

(PHP 5 <= 5.0.5)

fam_cancel_monitor — Прекратить мониторинг

Описание

bool fam_cancel_monitor ( resource $fam , resource $fam_monitor )

Прекратить мониторинг ресурса.

Дополнительно возникает событие FAMAcknowledge.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

fam_monitor

Ресурс, возвращенный одной из функций fam_monitor_XXX

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fam_monitor_file() - Отслеживать изменения обычного файла
  • fam_monitor_directory() - Мониторинг изменения директории
  • fam_monitor_collection() - Мониторинг изменений файлов в директории
  • fam_suspend_monitor() - Временно приостанавливает мониторинг


Закрыть соединение с FAM

  • « fam_cancel_monitor
  • fam_monitor_collection »
  • PHP Manual
  • Функции FAM
  • Закрыть соединение с FAM

fam_close

(PHP 5 <= 5.0.5)

fam_close — Закрыть соединение с FAM

Описание

void fam_close ( resource $fam )

Закрывает соединение с сервисом FAM.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • fam_monitor_open()


Мониторинг изменений файлов в директории

  • « fam_close
  • fam_monitor_directory »
  • PHP Manual
  • Функции FAM
  • Мониторинг изменений файлов в директории

fam_monitor_collection

(PHP 5 <= 5.0.5)

fam_monitor_collection — Мониторинг изменений файлов в директории

Описание

resource fam_monitor_collection ( resource $fam , string $dirname , int $depth , string $mask )

Запрашивает мониторинг коллекции файлов в директории.

При изменении статуса файлов будет послано событие FAM. Возможные коды событий перечислены в секции Константы этого раздела.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

dirname

Путь к директории с файлами

depth

Максимальная глубина (depth) поиска, начиная с указанной директории.

mask

Шаблон mask, определяющий маску для поиска файлов

Возвращаемые значения

Возвращает ресурс мониторинга, либо FALSE в случае ошибки.

Смотрите также

  • fam_monitor_file() - Отслеживать изменения обычного файла
  • fam_monitor_directory() - Мониторинг изменения директории
  • fam_cancel_monitor() - Прекратить мониторинг
  • fam_suspend_monitor() - Временно приостанавливает мониторинг
  • fam_resume_monitor() - Возобновить приостановленный мониторинг


Мониторинг изменения директории

  • « fam_monitor_collection
  • fam_monitor_file »
  • PHP Manual
  • Функции FAM
  • Мониторинг изменения директории

fam_monitor_directory

(PHP 5 <= 5.0.5)

fam_monitor_directory — Мониторинг изменения директории

Описание

resource fam_monitor_directory ( resource $fam , string $dirname )

Requests monitoring for a directory and all contained files.

Когда статус директории изменится (т.е. результат функции stat() для этой директории) или будет изменен ее контент (т.е. результат вызова readdir()) будет создано событие FAM.

Возможные коды событий перечислены в секции Константы этого раздела.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

dirname

Путь к диретории

Возвращаемые значения

Возвращает ресурс мониторинга, либо FALSE в случае ошибки.

Смотрите также

  • fam_monitor_file() - Отслеживать изменения обычного файла
  • fam_monitor_collection() - Мониторинг изменений файлов в директории
  • fam_cancel_monitor() - Прекратить мониторинг
  • fam_suspend_monitor() - Временно приостанавливает мониторинг
  • fam_resume_monitor() - Возобновить приостановленный мониторинг


Отслеживать изменения обычного файла

  • « fam_monitor_directory
  • fam_next_event »
  • PHP Manual
  • Функции FAM
  • Отслеживать изменения обычного файла

fam_monitor_file

(PHP 5 <= 5.0.5)

fam_monitor_file — Отслеживать изменения обычного файла

Описание

resource fam_monitor_file ( resource $fam , string $filename )

Запрос мониторинга для одного файла. Когда статус файла изменится (т.е. результат функции stat() для этого файла), будет создано событие.

Возможные коды событий перечислены в секции Константы этого раздела.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

filename

Путь к файлу

Возвращаемые значения

Возвращает ресурс мониторинга, либо FALSE в случае ошибки.

Смотрите также

  • fam_monitor_directory() - Мониторинг изменения директории
  • fam_monitor_collection() - Мониторинг изменений файлов в директории
  • fam_cancel_monitor() - Прекратить мониторинг
  • fam_suspend_monitor() - Временно приостанавливает мониторинг
  • fam_resume_monitor() - Возобновить приостановленный мониторинг


Получить следующее ожидающее событие FAM

  • « fam_monitor_file
  • fam_open »
  • PHP Manual
  • Функции FAM
  • Получить следующее ожидающее событие FAM

fam_next_event

(PHP 5 <= 5.0.5)

fam_next_event — Получить следующее ожидающее событие FAM

Описание

array fam_next_event ( resource $fam )

Возвращает следующее ожидающее событие FAM.

Функция будет заблокирована, пока не будет доступно событие, которое может быть проверено с использованием функции fam_pending().

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

Возвращаемые значения

Возвращает ассоциативный массив, содержащий событие FAM. В поле 'code' будет содержаться кон события. В поле 'filename' будет содержаться путь к файлу. В поле 'hostname' будет опционально содержаться имя хоста.

Возможные коды событий перечислены в секции Константы этого раздела.

Смотрите также

  • fam_pending() - Проверяет на наличие ожидающих событий FAM


Создает соединение к сервису FAM

  • « fam_next_event
  • fam_pending »
  • PHP Manual
  • Функции FAM
  • Создает соединение к сервису FAM

fam_open

(PHP 5 <= 5.0.5)

fam_open — Создает соединение к сервису FAM

Описание

resource fam_open ([ string $appname ] )

Создает соединение к сервису FAM.

Список параметров

appname

Строковый идентификатор приложения, для которого запрашивается мониторинг

Возвращаемые значения

Возвращает ресурс, представляющий соединение к сервису FAM, либо FALSE, в случае ошибки.

Смотрите также

  • fam_close() - Закрыть соединение с FAM


Проверяет на наличие ожидающих событий FAM

  • « fam_open
  • fam_resume_monitor »
  • PHP Manual
  • Функции FAM
  • Проверяет на наличие ожидающих событий FAM

fam_pending

(PHP 5 <= 5.0.5)

fam_pending — Проверяет на наличие ожидающих событий FAM

Описание

int fam_pending ( resource $fam )

Проверяет на наличие ожидающих событий FAM.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

Возвращаемые значения

Возвращает не ноль, если есть ожидающие события, доступные для разбора функцией fam_next_event(), и ноль, если нет.

Смотрите также

  • fam_next_event() - Получить следующее ожидающее событие FAM


Возобновить приостановленный мониторинг

  • « fam_pending
  • fam_suspend_monitor »
  • PHP Manual
  • Функции FAM
  • Возобновить приостановленный мониторинг

fam_resume_monitor

(PHP 5 <= 5.0.5)

fam_resume_monitor — Возобновить приостановленный мониторинг

Описание

bool fam_resume_monitor ( resource $fam , resource $fam_monitor )

Возобновляет мониторинг, приостановленный функцией fam_suspend_monitor().

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

fam_monitor

Ресурс, возвращенный одной из функций fam_monitor_XXX

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fam_suspend_monitor() - Временно приостанавливает мониторинг


Временно приостанавливает мониторинг

  • « fam_resume_monitor
  • FTP »
  • PHP Manual
  • Функции FAM
  • Временно приостанавливает мониторинг

fam_suspend_monitor

(PHP 5 <= 5.0.5)

fam_suspend_monitor — Временно приостанавливает мониторинг

Описание

bool fam_suspend_monitor ( resource $fam , resource $fam_monitor )

fam_suspend_monitor() временно приостанавливает мониторинг ресурса.

В дальнейшем этот мониторинг можно возобновить с помощью функции fam_resume_monitor() без запроса нового ресурса мониторинга.

Список параметров

fam

Ресурс, представляющий соединение с сервисом FAM, возвращенный функцией fam_open()

fam_monitor

Ресурс, возвращенный одной из функций fam_monitor_XXX

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • fam_cancel_monitor() - Прекратить мониторинг
  • fam_resume_monitor() - Возобновить приостановленный мониторинг


FTP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Простое использование
  • FTP Функции
    • ftp_alloc — Резервирует место на диске для закачиваемого файла
    • ftp_cdup — Переходит в родительскую директорию
    • ftp_chdir — Изменяет текущую директорию на FTP сервере
    • ftp_chmod — Устанавливает права доступа к файлу
    • ftp_close — Закрывает соединение с FTP-сервером
    • ftp_connect — Устанавливает соединение с FTP-сервером
    • ftp_delete — Удаляет файл на FTP-сервере
    • ftp_exec — Запрашивает выполнение команды на FTP-сервере
    • ftp_fget — Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле
    • ftp_fput — Загружает предварительно открытый файл на FTP-сервер
    • ftp_get_option — Получает текущие параметры FTP соединения
    • ftp_get — Загружает файл с FTP-сервера
    • ftp_login — Выполняет вход на FTP сервер
    • ftp_mdtm — Возвращает время последней модификации файла
    • ftp_mkdir — Создаёт директорию
    • ftp_nb_continue — Продолжает асинхронную операцию
    • ftp_nb_fget — Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в предварительно открытом файле
    • ftp_nb_fput — Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме
    • ftp_nb_get — Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл
    • ftp_nb_put — Загружает файл на FTP сервер в асинхронном режиме
    • ftp_nlist — Возвращает список файлов в заданной директории
    • ftp_pasv — Включает или выключает пассивный режим
    • ftp_put — Загружает файл на FTP-сервер
    • ftp_pwd — Возвращает имя текущей директории
    • ftp_quit — Псевдоним ftp_close
    • ftp_raw — Отправляет произвольную команду FTP-серверу
    • ftp_rawlist — Возвращает подробный список файлов в заданной директории
    • ftp_rename — Переименовывает файл или директорию на FTP-сервере
    • ftp_rmdir — Удаляет директорию
    • ftp_set_option — Устанавливает параметры соединения с FTP сервером
    • ftp_site — Отправляет серверу команду SITE
    • ftp_size — Возвращает размер указанного файла
    • ftp_ssl_connect — Устанавливает соединение с FTP-сервером через SSL
    • ftp_systype — Возвращает тип операционной системы FTP-сервера


Введение

Функции этого модуля обеспечивают доступ к серверам по протоколу FTP (File Transfer Protocol), определенному в » http://www.faqs.org/rfcs/rfc959. Модуль позволяет выполнять множество довольно сложных операций. Если требуется лишь прочитать или записать файл на сервере FTP, можно воспользоваться ftp:// оберткой и функциями для работы с файловой системой, которые более просты в использовании.


Установка

Для использования FTP функций вы должны указать директиву --enable-ftp во время установки PHP.

Версия PHP 5 для Windows содержит это расширение по умолчанию и вам не нужно подгружать дополнительные расширения для использования его функций.

Начиная с PHP 7.0.0, для Windows это расширение всегда собрано как разделяемое (shared) и должно быть включено в php.ini.


Типы ресурсов

Этот модуль использует один тип ресурса - идентификатор соединения с FTP-сервером, возвращаемый функцией ftp_connect() или ftp_ssl_connect().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

FTP_ASCII (integer)

FTP_AUTOSEEK (integer)

Смотрите описание функции ftp_set_option().

FTP_AUTORESUME (integer)

Автоматическое определение позиции старта и возобновления запросов PUT и GET (работает только если разрешен FTP_AUTOSEEK)

FTP_FAILED (integer)

Асинхронная передача не удалась.

FTP_FINISHED (integer)

Асинхронная передача завершена.

FTP_MOREDATA (integer)

Асинхронная передача все еще активна.

FTP_TEXT (integer)

Синоним для FTP_ASCII

FTP_BINARY (integer)

FTP_IMAGE (integer)

Синоним для FTP_BINARY.

FTP_TIMEOUT_SEC (integer)

Смотрите описание функции ftp_set_option().


  • « Предопределенные константы
  • Простое использование »
  • PHP Manual
  • FTP
  • Примеры

Примеры

Содержание

  • Простое использование


Простое использование

Пример #1 Пример использования FTP-функций

<?php
// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// проверка соединения
if ((!$conn_id) || (!$login_result)) {
    echo "Не удалось установить соединение с FTP-сервером!";
    echo "Попытка подключения к серверу $ftp_server была произведена под именем $ftp_user_name";
    exit;
} else {
    echo "Установлено соединение с FTP сервером $ftp_server под именем $ftp_user_name";
}

// закачивание файла
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// проверка результата
if (!$upload) {
    echo "Не удалось закачать файл!";
} else {
    echo "Файл $source_file закачан на $ftp_server под именем $destination_file";
}

// закрытие соединения
ftp_close($conn_id);
?>


FTP Функции

Содержание

  • ftp_alloc — Резервирует место на диске для закачиваемого файла
  • ftp_cdup — Переходит в родительскую директорию
  • ftp_chdir — Изменяет текущую директорию на FTP сервере
  • ftp_chmod — Устанавливает права доступа к файлу
  • ftp_close — Закрывает соединение с FTP-сервером
  • ftp_connect — Устанавливает соединение с FTP-сервером
  • ftp_delete — Удаляет файл на FTP-сервере
  • ftp_exec — Запрашивает выполнение команды на FTP-сервере
  • ftp_fget — Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле
  • ftp_fput — Загружает предварительно открытый файл на FTP-сервер
  • ftp_get_option — Получает текущие параметры FTP соединения
  • ftp_get — Загружает файл с FTP-сервера
  • ftp_login — Выполняет вход на FTP сервер
  • ftp_mdtm — Возвращает время последней модификации файла
  • ftp_mkdir — Создаёт директорию
  • ftp_nb_continue — Продолжает асинхронную операцию
  • ftp_nb_fget — Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в предварительно открытом файле
  • ftp_nb_fput — Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме
  • ftp_nb_get — Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл
  • ftp_nb_put — Загружает файл на FTP сервер в асинхронном режиме
  • ftp_nlist — Возвращает список файлов в заданной директории
  • ftp_pasv — Включает или выключает пассивный режим
  • ftp_put — Загружает файл на FTP-сервер
  • ftp_pwd — Возвращает имя текущей директории
  • ftp_quit — Псевдоним ftp_close
  • ftp_raw — Отправляет произвольную команду FTP-серверу
  • ftp_rawlist — Возвращает подробный список файлов в заданной директории
  • ftp_rename — Переименовывает файл или директорию на FTP-сервере
  • ftp_rmdir — Удаляет директорию
  • ftp_set_option — Устанавливает параметры соединения с FTP сервером
  • ftp_site — Отправляет серверу команду SITE
  • ftp_size — Возвращает размер указанного файла
  • ftp_ssl_connect — Устанавливает соединение с FTP-сервером через SSL
  • ftp_systype — Возвращает тип операционной системы FTP-сервера


Резервирует место на диске для закачиваемого файла

  • « FTP Функции
  • ftp_cdup »
  • PHP Manual
  • FTP Функции
  • Резервирует место на диске для закачиваемого файла

ftp_alloc

(PHP 5, PHP 7)

ftp_alloc — Резервирует место на диске для закачиваемого файла

Описание

bool ftp_alloc ( resource $ftp_stream , int $filesize [, string &$result ] )

Посылает команду ALLO FTP-серверу для резервирования места под загружаемый файл.

Замечание:

Многие FTP-серверы не поддерживают эту команду. Такие серверы возвращают код неудачи (FALSE), что означает отсутствие поддержки этой команды, или код успешного выполнения (TRUE), означающий, что в резервировании нет необходимости и клиенту следует продолжать, будто операция была выполнена успешно. По этой причине эту функцию следует использовать с серверами, которые требуют обязательного резервирования.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

filesize

Количество резервируемых байт.

result

Текстовое представление ответа сервера будет возвращено по ссылке в аргумент result, если он указан.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ftp_alloc()

<?php

$file = "/home/user/myfile";

/* соединение с сервером */
$conn_id = ftp_connect('ftp.example.com');
$login_result = ftp_login($conn_id, 'anonymous', 'user@example.com');

if (ftp_alloc($conn_id, filesize($file), $result)) {
  echo "Место на сервере успешно зарезервировано.  Отправляю $file.\n";
  ftp_put($conn_id, '/incomming/myfile', $file, FTP_BINARY);
} else {
  echo "Не удалось зарезервировать место на сервере. Ответ сервера: $result\n";
}

ftp_close($conn_id);

?>

Смотрите также

  • ftp_put() - Загружает файл на FTP-сервер
  • ftp_fput() - Загружает предварительно открытый файл на FTP-сервер


Переходит в родительскую директорию

  • « ftp_alloc
  • ftp_chdir »
  • PHP Manual
  • FTP Функции
  • Переходит в родительскую директорию

ftp_cdup

(PHP 4, PHP 5, PHP 7)

ftp_cdup — Переходит в родительскую директорию

Описание

bool ftp_cdup ( resource $ftp_stream )

Переходит в родительскую директорию.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования функции ftp_cdup()

<?php
// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// изменение текущей директории на html
ftp_chdir($conn_id, 'html');

echo ftp_pwd($conn_id); // /html

// возврат в родительскую директорию
if (ftp_cdup($conn_id)) {
  echo "команда cdup выполнена успешно\n";
} else {
  echo "команда cdup завершилась неудачей\n";
}

echo ftp_pwd($conn_id); // /

ftp_close($conn_id);
?>

Смотрите также

  • ftp_chdir() - Изменяет текущую директорию на FTP сервере
  • ftp_pwd() - Возвращает имя текущей директории


Изменяет текущую директорию на FTP сервере

  • « ftp_cdup
  • ftp_chmod »
  • PHP Manual
  • FTP Функции
  • Изменяет текущую директорию на FTP сервере

ftp_chdir

(PHP 4, PHP 5, PHP 7)

ftp_chdir — Изменяет текущую директорию на FTP сервере

Описание

bool ftp_chdir ( resource $ftp_stream , string $directory )

Меняет текущую директорию на заданную аргументом.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером

directory

Целевая директория.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если изменение директории завершилось неудачей, PHP вызовет предупреждение.

Примеры

Пример #1 Пример использования ftp_chdir()

<?php

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// проверка соединения
if ((!$conn_id) || (!$login_result)) {
    die("Не удалось подключиться к FTP-серверу!");
}

echo "Текущая директория: " . ftp_pwd($conn_id) . "\n";

// пытаемся сменить текущую директорию на somedir
if (ftp_chdir($conn_id, "somedir")) {
    echo "Новая текущая директория: " . ftp_pwd($conn_id) . "\n";
} else {
    echo "Не удалось сменить директорию\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

  • ftp_cdup() - Переходит в родительскую директорию
  • ftp_pwd() - Возвращает имя текущей директории


Устанавливает права доступа к файлу

  • « ftp_chdir
  • ftp_close »
  • PHP Manual
  • FTP Функции
  • Устанавливает права доступа к файлу

ftp_chmod

(PHP 5, PHP 7)

ftp_chmod — Устанавливает права доступа к файлу

Описание

int ftp_chmod ( resource $ftp_stream , int $mode , string $filename )

Устанавливает права доступа к указанному удалённому файлу в значение mode.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером

mode

Новые права доступа, указанные в виде восьмеричного значения.

filename

Удалённый файл.

Возвращаемые значения

Возвращает новые права доступа к файлу в случае успеха или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования ftp_chmod()

<?php
$file = 'public_html/index.php';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка изменить права доступа к файлу $file на 644
if (ftp_chmod($conn_id, 0644, $file) !== false) {
 echo "Права доступа к файлу $file успешно изменены на 644\n";
} else {
 echo "Не удалось изменить права доступа к файлу $file\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

  • chmod() - Изменяет режим доступа к файлу


Закрывает соединение с FTP-сервером

  • « ftp_chmod
  • ftp_connect »
  • PHP Manual
  • FTP Функции
  • Закрывает соединение с FTP-сервером

ftp_close

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftp_close — Закрывает соединение с FTP-сервером

Описание

bool ftp_close ( resource $ftp_stream )

ftp_close() закрывает указанный идентификатор соединения с сервером и освобождает resource.

Замечание:

После вызова этой функции, соединение больше не может быть использовано, и при необходимости должно быть установлено заново при помощи функции ftp_connect().

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ftp_close()

<?php

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// вывод текущей директории
echo ftp_pwd($conn_id); // /

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

  • ftp_connect() - Устанавливает соединение с FTP-сервером


Устанавливает соединение с FTP-сервером

  • « ftp_close
  • ftp_delete »
  • PHP Manual
  • FTP Функции
  • Устанавливает соединение с FTP-сервером

ftp_connect

(PHP 4, PHP 5, PHP 7)

ftp_connect — Устанавливает соединение с FTP-сервером

Описание

resource ftp_connect ( string $host [, int $port = 21 [, int $timeout = 90 ]] )

ftp_connect() устанавливает FTP-соединение с указанным сервером host.

Список параметров

host

Адрес FTP-сервера. Этот аргумент не должен содержать слешей в конце и префикса ftp:// в начале.

port

Этот аргумент указывает альтернативный порт для подключения. Если он опущен или установлен в ноль, то будет использован FTP порт по умолчанию - 21.

timeout

Этот аргумент указывает таймаут для всех последующих сетевых операций. Если опущен, используется значение по умолчанию, равное 90 секундам. Таймаут может быть изменён и получен в любой момент при помощи функций ftp_set_option() и ftp_get_option() соответственно.

Возвращаемые значения

Возвращает поток FTP в случае успешного выполнения или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования ftp_connect()

<?php

$ftp_server = "ftp.example.com";

// устанавливает соединение или выходит
$conn_id = ftp_connect($ftp_server) or die("Не удалось установить соединение с $ftp_server");

?>

Смотрите также

  • ftp_close() - Закрывает соединение с FTP-сервером
  • ftp_ssl_connect() - Устанавливает соединение с FTP-сервером через SSL


Удаляет файл на FTP-сервере

  • « ftp_connect
  • ftp_exec »
  • PHP Manual
  • FTP Функции
  • Удаляет файл на FTP-сервере

ftp_delete

(PHP 4, PHP 5, PHP 7)

ftp_delete — Удаляет файл на FTP-сервере

Описание

bool ftp_delete ( resource $ftp_stream , string $path )

ftp_delete() удаляет файл, заданный аргументом path, с FTP-сервера.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером

path

Удаляемый файл.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ftp_delete()

<?php
$file = 'public_html/old.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка удалить файл
if (ftp_delete($conn_id, $file)) {
 echo "Файл $file удален\n";
} else {
 echo "Не удалось удалить $file\n";
}

// закрытие соединения
ftp_close($conn_id);
?>


Запрашивает выполнение команды на FTP-сервере

  • « ftp_delete
  • ftp_fget »
  • PHP Manual
  • FTP Функции
  • Запрашивает выполнение команды на FTP-сервере

ftp_exec

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

ftp_exec — Запрашивает выполнение команды на FTP-сервере

Описание

bool ftp_exec ( resource $ftp_stream , string $command )

Посылает команду SITE EXEC command на FTP-сервер.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

command

Команда для выполнения.

Возвращаемые значения

Возвращает TRUE в случае успешного выполнения команды (сервер отправляет код ответа: 200); в противном случае возвращает FALSE.

Примеры

Пример #1 Пример использования ftp_exec()

<?php
// инициализация переменных
$command = 'ls -al >files.txt';

// устанавливаем соединение
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// выполняем команду
if (ftp_exec($conn_id, $command)) {
    echo "Команда $command выполнена успешно\n";
} else {
    echo "Не удалось выполнить $command\n";
}

// закрываем соединение
ftp_close($conn_id);

?>

Смотрите также

  • ftp_raw() - Отправляет произвольную команду FTP-серверу


Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле

  • « ftp_exec
  • ftp_fput »
  • PHP Manual
  • FTP Функции
  • Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле

ftp_fget

(PHP 4, PHP 5, PHP 7)

ftp_fget — Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле

Описание

bool ftp_fget ( resource $ftp_stream , resource $handle , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_fget() загружает файл remote_file с FTP-сервера и записывает его в переданный файловый дескриптор.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

handle

Открытый файловый дескриптор, в который будут сохранены данные.

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ftp_fget()

<?php

// путь к удаленному файлу
$remote_file = 'somefile.txt';
$local_file = 'localfile.txt';

// открываем файл для записи
$handle = fopen($local_file, 'w');

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// пытаемся скачать файл и сохранить его в $handle
if (ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 0)) {
 echo "Произведена запись в $local_file\n";
} else {
 echo "При скачке $remote_file в $local_file произошла проблема\n";
}

// закрытие соединения и локального файла
ftp_close($conn_id);
fclose($handle);
?>

Смотрите также

  • ftp_get() - Загружает файл с FTP-сервера
  • ftp_nb_get() - Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл
  • ftp_nb_fget() - Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в предварительно открытом файле


Загружает предварительно открытый файл на FTP-сервер

  • « ftp_fget
  • ftp_get_option »
  • PHP Manual
  • FTP Функции
  • Загружает предварительно открытый файл на FTP-сервер

ftp_fput

(PHP 4, PHP 5, PHP 7)

ftp_fput — Загружает предварительно открытый файл на FTP-сервер

Описание

bool ftp_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode [, int $startpos = 0 ] )

ftp_fput() загружает данные из файлового дескриптора в удалённый файл на FTP сервере.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

remote_file

Путь к удалённому файлу.

handle

Открытый файловый дескриптор локального файла. Чтение прекращается при достижении конца файла.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

startpos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ftp_fput()

<?php

// открыть файл для чтения
$file = 'somefile.txt';
$fp = fopen($file, 'r');

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка закачивания файла
if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {
    echo "Файл $file успешно загружен\n";
} else {
    echo "При закачке $file произошла проблема\n";
}

// закрываем соединение и дескриптор файла
ftp_close($conn_id);
fclose($fp);

?>

Смотрите также

  • ftp_put() - Загружает файл на FTP-сервер
  • ftp_nb_fput() - Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме
  • ftp_nb_put() - Загружает файл на FTP сервер в асинхронном режиме


Получает текущие параметры FTP соединения

  • « ftp_fput
  • ftp_get »
  • PHP Manual
  • FTP Функции
  • Получает текущие параметры FTP соединения

ftp_get_option

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftp_get_option — Получает текущие параметры FTP соединения

Описание

mixed ftp_get_option ( resource $ftp_stream , int $option )

Эта функция возвращает значение запрошенной опции option для указанного FTP соединения.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером.

option

На текущий момент, поддерживаются следующие опции:

Поддерживаемые текущие опции FTP
FTP_TIMEOUT_SEC | Возвращает текущий таймаут, используемый в сетевых операциях.
FTP_AUTOSEEK | Возвращает TRUE, если эта опция включена, иначе FALSE.

Возвращаемые значения

Возвращает значение в случае успешного выполнения, или FALSE, если указанная опция option не поддерживается. В последнем случае так же вызывается предупреждение.

Примеры

Пример #1 Пример использования ftp_get_option()

<?php
// Получаем таймаут соединения
$timeout = ftp_get_option($conn_id, FTP_TIMEOUT_SEC);
?>

Смотрите также

  • ftp_set_option() - Устанавливает параметры соединения с FTP сервером


Загружает файл с FTP-сервера

  • « ftp_get_option
  • ftp_login »
  • PHP Manual
  • FTP Функции
  • Загружает файл с FTP-сервера

ftp_get

(PHP 4, PHP 5, PHP 7)

ftp_get — Загружает файл с FTP-сервера

Описание

bool ftp_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_get() загружает удалённый файл с FTP-сервера и сохраняет его локально.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером.

local_file

Путь к локальному файлу (файл будет перезаписан, если уже существует).

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ftp_get()

<?php

// объявление переменных
$local_file = 'local.zip';
$server_file = 'server.zip';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка скачать $server_file и сохранить в $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    echo "Произведена запись в $local_file\n";
} else {
    echo "Не удалось завершить операцию\n";
}

// закрытие соединения
ftp_close($conn_id);

?>

Смотрите также

  • ftp_pasv() - Включает или выключает пассивный режим
  • ftp_fget() - Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле
  • ftp_nb_get() - Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл
  • ftp_nb_fget() - Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в предварительно открытом файле


Выполняет вход на FTP сервер

  • « ftp_get
  • ftp_mdtm »
  • PHP Manual
  • FTP Функции
  • Выполняет вход на FTP сервер

ftp_login

(PHP 4, PHP 5, PHP 7)

ftp_login — Выполняет вход на FTP сервер

Описание

bool ftp_login ( resource $ftp_stream , string $username , string $password )

Выполняет вход на FTP сервер.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером.

username

Имя пользователя (USER).

password

Пароль (PASS).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если войти на сервер не удалось, PHP выведет предупреждение.

Примеры

Пример #1 Пример использования ftp_login()

<?php

$ftp_server = "ftp.example.com";
$ftp_user = "foo";
$ftp_pass = "bar";

// установить соединение или выйти
$conn_id = ftp_connect($ftp_server) or die("Не удалось установить соединение с $ftp_server");

// попытка входа
if (@ftp_login($conn_id, $ftp_user, $ftp_pass)) {
    echo "Произведен вход на $ftp_server под именем $ftp_user\n";
} else {
    echo "Не удалось войти под именем $ftp_user\n";
}

// close the connection
ftp_close($conn_id);
?>


Возвращает время последней модификации файла

  • « ftp_login
  • ftp_mkdir »
  • PHP Manual
  • FTP Функции
  • Возвращает время последней модификации файла

ftp_mdtm

(PHP 4, PHP 5, PHP 7)

ftp_mdtm — Возвращает время последней модификации файла

Описание

int ftp_mdtm ( resource $ftp_stream , string $remote_file )

ftp_mdtm() возвращает время последней модификации удалённого файла.

Замечание:

Не все серверы поддерживают эту функцию!

Замечание:

ftp_mdtm() не работает с директориями.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

remote_file

Файл, время модификации которого надо получить.

Возвращаемые значения

Возвращает время последней модификации виде временной метки Unix или -1 в случае ошибки.

Примеры

Пример #1 Пример использования ftp_mdtm()

<?php

$file = 'somefile.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

//  получение времени модификации файла
$buff = ftp_mdtm($conn_id, $file);

if ($buff != -1) {
    // дата последней модификации somefile.txt : March 26 2003 14:16:41.
    echo "дата последней модификации $file : " . date("F d Y H:i:s.", $buff);
} else {
    echo "Не удалось выполнить mdtime";
}

// закрытие соединения
ftp_close($conn_id);

?>


Создаёт директорию

  • « ftp_mdtm
  • ftp_nb_continue »
  • PHP Manual
  • FTP Функции
  • Создаёт директорию

ftp_mkdir

(PHP 4, PHP 5, PHP 7)

ftp_mkdir — Создаёт директорию

Описание

string ftp_mkdir ( resource $ftp_stream , string $directory )

Создает директорию directory на FTP сервере.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером.

directory

Имя создаваемой директории.

Возвращаемые значения

Возвращает имя только что созданной директории в случае успеха или FALSE в противном случае.

Примеры

Пример #1 Пример использования ftp_mkdir()

<?php

$dir = 'www';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// вход с именем пользователя и паролем
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка создания директории $dir
if (ftp_mkdir($conn_id, $dir)) {
 echo "Создана директория $dir\n";
} else {
 echo "Не удалось создать директорию $dir\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

  • ftp_rmdir() - Удаляет директорию


Продолжает асинхронную операцию

  • « ftp_mkdir
  • ftp_nb_fget »
  • PHP Manual
  • FTP Функции
  • Продолжает асинхронную операцию

ftp_nb_continue

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_continue — Продолжает асинхронную операцию

Описание

int ftp_nb_continue ( resource $ftp_stream )

Продолжает отправку или получение файла в асинхронном режиме.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером.

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Примеры

Пример #1 Пример использования ftp_nb_continue()

<?php

// Начало скачивания
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // продолжение скачивания  ...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "При скачивании файла произолшла ошибка...";
   exit(1);
}
?>


Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в предварительно открытом файле

  • « ftp_nb_continue
  • ftp_nb_fput »
  • PHP Manual
  • FTP Функции
  • Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в предварительно открытом файле

ftp_nb_fget

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_fget — Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в предварительно открытом файле

Описание

int ftp_nb_fget ( resource $ftp_stream , resource $handle , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_nb_fget() скачивает удалённый файл с FTP-сервера.

Разница между этой функцией и ftp_fget() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл скачивается.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

handle

Открытый файловый дескриптор для сохранения данных.

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Примеры

Пример #1 Пример использования ftp_nb_fget()

<?php

// открыть файл для записи
$file = 'index.php';
$fp = fopen($file, 'w');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Начало скачивания
$ret = ftp_nb_fget($conn_id, $fp, $file, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // производим какие-то действия ...
   echo ".";

   // продолжение скачивания ...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "При скачивании файла произошла ошибка...";
   exit(1);
}

// закрытие файла
fclose($fp);
?>

Смотрите также

  • ftp_nb_get() - Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл
  • ftp_nb_continue() - Продолжает асинхронную операцию
  • ftp_fget() - Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле
  • ftp_get() - Загружает файл с FTP-сервера


Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме

  • « ftp_nb_fget
  • ftp_nb_get »
  • PHP Manual
  • FTP Функции
  • Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме

ftp_nb_fput

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_fput — Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме

Описание

int ftp_nb_fput ( resource $ftp_stream , string $remote_file , resource $handle , int $mode [, int $startpos = 0 ] )

ftp_nb_fput() закачивает данные из дескриптора файла в удалённый файл на FTP-сервере.

Разница между этой функцией и ftp_fput() заключается в том, что эта функция загружает файл асинхронно, так что ваша программа может совершать другие операции, пока файл закачивается.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

remote_file

Путь к удалённому файлу.

handle

Открытый файловый дескриптор локального файла. Чтение прекращается при достижении конца файла.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

startpos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Примеры

Пример #1 Пример использования ftp_nb_fput()

<?php

$file = 'index.php';

$fp = fopen($file, 'r');

$conn_id = ftp_connect($ftp_server);

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Начало закачивания
$ret = ftp_nb_fput($conn_id, $file, $fp, FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // производим какие-то действия ...
   echo ".";

   // продолжение закачивания ...
   $ret = ftp_nb_continue($conn_id);
}
if ($ret != FTP_FINISHED) {
   echo "При закачивании файла произошла ошибка...";
   exit(1);
}

fclose($fp);
?>

Смотрите также

  • ftp_nb_put() - Загружает файл на FTP сервер в асинхронном режиме
  • ftp_nb_continue() - Продолжает асинхронную операцию
  • ftp_put() - Загружает файл на FTP-сервер
  • ftp_fput() - Загружает предварительно открытый файл на FTP-сервер


Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл

  • « ftp_nb_fput
  • ftp_nb_put »
  • PHP Manual
  • FTP Функции
  • Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл

ftp_nb_get

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_get — Скачивает файл с FTP-сервера в асинхронном режиме и сохраняет его в локальный файл

Описание

int ftp_nb_get ( resource $ftp_stream , string $local_file , string $remote_file , int $mode [, int $resumepos = 0 ] )

ftp_nb_get() скачивает удалённый файл с FTP-сервера и сохраняет его в локальный файл.

Разница между этой функцией и ftp_get() заключается в том, что эта функция получает файл асинхронно, так что ваша программа может совершать другие операции, пока файл скачивается.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

local_file

Путь к локальному файлу (файл будет перезаписан, если уже существует).

remote_file

Путь к удалённому файлу.

mode

Режим передачи. Должен быть либо FTP_ASCII, либо FTP_BINARY.

resumepos

Позиция начала загрузки в удаленном файле.

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Примеры

Пример #1 Пример использования ftp_nb_get()

<?php

// Начало скачивания
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // производим какие-то действия ...
   echo ".";

   // продолжение скачивания ...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "При скачивании файла произошла ошибка...";
   exit(1);
}
?>

Пример #2 Возобновление скачивания файла с помощью ftp_nb_get()

<?php

// Начало скачивания
$ret = ftp_nb_get($my_connection, "test", "README", FTP_BINARY,
                      filesize("test"));
// ИЛИ: $ret = ftp_nb_get($my_connection, "test", "README",
//                           FTP_BINARY, FTP_AUTORESUME);
while ($ret == FTP_MOREDATA) {

   // производим какие-то действия ...
   echo ".";

   // продолжение скачивания ...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "При скачивании файла произошла ошибка...";
   exit(1);
}
?>

Пример #3 Скачивание файла начиная с позиции 100 в новый файл с помощью ftp_nb_get()

<?php

// Запрет FTP_AUTOSEEK
ftp_set_option($my_connection, FTP_AUTOSEEK, false);

// Начало скачивания
$ret = ftp_nb_get($my_connection, "newfile", "README", FTP_BINARY, 100);
while ($ret == FTP_MOREDATA) {

   /* ... */

   // продолжение скачивания ...
   $ret = ftp_nb_continue($my_connection);
}
?>

В последнем примере, newfile будет на 100 байт меньше, чем README на FTP сервере, потому что скачивание начинается со смещения 100. Если не запретить FTP_AUTOSEEK, первые 100 байт файла newfile будут содержать '\0'.

Смотрите также

  • ftp_nb_fget() - Скачивает файл с FTP сервера в асинхронном режиме и сохраняет его в предварительно открытом файле
  • ftp_nb_continue() - Продолжает асинхронную операцию
  • ftp_fget() - Скачивает файл с FTP-сервера и сохраняет его в предварительно открытом файле
  • ftp_get() - Загружает файл с FTP-сервера


Загружает файл на FTP сервер в асинхронном режиме

  • « ftp_nb_get
  • ftp_nlist »
  • PHP Manual
  • FTP Функции
  • Загружает файл на FTP сервер в асинхронном режиме

ftp_nb_put

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_nb_put — Загружает файл на FTP сервер в асинхронном режиме

Описание

int ftp_nb_put ( resource $ftp_stream , string $remote_file , string $local_file , int $mode [, int $startpos = 0 ] )

ftp_nb_put() загружает локальный файл на FTP-сервер.

Отличие этой функции от ftp_put() состоит в том, что загрузка файла происходит в асинхронном режиме, что позволяет программе выполнять другие операции во время загрузки.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

remote_file

Путь к файлу на сервере.

local_file

Путь к локальному файлу.

mode

Режим передачи. Может принимать значения FTP_ASCII или FTP_BINARY.

startpos

Позиция в удаленном файле, в которую начинается загрузка

Возвращаемые значения

Возвращает FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Примеры

Пример #1 Пример использования ftp_nb_put()

<?php

// Начало загрузки
$ret = ftp_nb_put($my_connection, "test.remote", "test.local", FTP_BINARY);
while ($ret == FTP_MOREDATA) {

   // производим какие-то действия ...
   echo ".";

   // продолжение загрузки ...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "При загрузке файла произошла ошибка...";
   exit(1);
}
?>

Пример #2 Возобновление загрузки файла с помощью ftp_nb_put()

<?php

// Начало загрузки
$ret = ftp_nb_put($my_connection, "test.remote", "test.local",
                      FTP_BINARY, ftp_size("test.remote"));
// ИЛИ: $ret = ftp_nb_put($my_connection, "test.remote", "test.local",
//                           FTP_BINARY, FTP_AUTORESUME);

while ($ret == FTP_MOREDATA) {

   // производим какие-то действия ...
   echo ".";

   // продолжение загрузки ...
   $ret = ftp_nb_continue($my_connection);
}
if ($ret != FTP_FINISHED) {
   echo "При загрузке файла произошла ошибка...";
   exit(1);
}
?>

Смотрите также

  • ftp_nb_fput() - Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме
  • ftp_nb_continue() - Продолжает асинхронную операцию
  • ftp_put() - Загружает файл на FTP-сервер
  • ftp_fput() - Загружает предварительно открытый файл на FTP-сервер


Возвращает список файлов в заданной директории

  • « ftp_nb_put
  • ftp_pasv »
  • PHP Manual
  • FTP Функции
  • Возвращает список файлов в заданной директории

ftp_nlist

(PHP 4, PHP 5, PHP 7)

ftp_nlist — Возвращает список файлов в заданной директории

Описание

array ftp_nlist ( resource $ftp_stream , string $directory )

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером.

directory

Имя директории для получения списка файлов. Этот параметр также может включать аргументы, например ftp_nlist($conn_id, "-la /your/dir"); Обратите внимание, что этот параметр не проходит экранирование спецсимволов, так что могут возникнуть проблемы с именами, содержащими пробелы и прочие подобные символы.

Возвращаемые значения

Возвращает массив имён файлов в директории или FALSE при возникновении ошибки.

Примеры

Пример #1 Пример использования ftp_nlist()

<?php

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// получить содержимое текущей директории
$contents = ftp_nlist($conn_id, ".");

// вывод $contents
var_dump($contents);

?>

Приведенный выше пример выведет:

array(3) {
  [0]=>
  string(11) "public_html"
  [1]=>
  string(10) "public_ftp"
  [2]=>
  string(3) "www"

Смотрите также

  • ftp_rawlist() - Возвращает подробный список файлов в заданной директории


Включает или выключает пассивный режим

  • « ftp_nlist
  • ftp_put »
  • PHP Manual
  • FTP Функции
  • Включает или выключает пассивный режим

ftp_pasv

(PHP 4, PHP 5, PHP 7)

ftp_pasv — Включает или выключает пассивный режим

Описание

bool ftp_pasv ( resource $ftp_stream , bool $pasv )

ftp_pasv() включает или выключает пассивный режим. В пассивном режиме передача данных инициируется клиентом, а не сервером. Данный режим может понадобиться в случае, если клиент находится за файерволлом.

Пожалуйста, учтите, что ftp_pasv() может быть вызвана только после успешной авторизации, иначе она завершится с ошибкой.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

pasv

Если TRUE, пассивный режим будет включен, иначе выключен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ftp_pasv()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// включение пассивного режима
ftp_pasv($conn_id, true);

// загрузка файла
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "$file успешно загружен на сервер\n";
} else {
 echo "Не удалось загрузить $file на сервер\n";
}

// закрытие соединения
ftp_close($conn_id);
?>


Загружает файл на FTP-сервер

  • « ftp_pasv
  • ftp_pwd »
  • PHP Manual
  • FTP Функции
  • Загружает файл на FTP-сервер

ftp_put

(PHP 4, PHP 5, PHP 7)

ftp_put — Загружает файл на FTP-сервер

Описание

bool ftp_put ( resource $ftp_stream , string $remote_file , string $local_file , int $mode [, int $startpos = 0 ] )

ftp_put() загружает локальный файл на FTP-сервер.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

remote_file

Путь к файлу на FTP-сервере.

local_file

Путь к локальному файлу.

mode

Задает режим передачи. Может принимать значения FTP_ASCII или FTP_BINARY.

startpos

Задает позицию в удаленном файле, в которую начнется загрузка

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ftp_put()

<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// загрузка файла
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "$file успешно загружен на сервер\n";
} else {
 echo "Не удалось загрузить $file на сервер\n";
}

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

  • ftp_pasv() - Включает или выключает пассивный режим
  • ftp_fput() - Загружает предварительно открытый файл на FTP-сервер
  • ftp_nb_fput() - Загружает предварительно открытый файл на FTP-сервер в асинхронном режиме
  • ftp_nb_put() - Загружает файл на FTP сервер в асинхронном режиме


Возвращает имя текущей директории

  • « ftp_put
  • ftp_quit »
  • PHP Manual
  • FTP Функции
  • Возвращает имя текущей директории

ftp_pwd

(PHP 4, PHP 5, PHP 7)

ftp_pwd — Возвращает имя текущей директории

Описание

string ftp_pwd ( resource $ftp_stream )

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером

Возвращаемые значения

Возвращает имя текущей директории, или FALSE при возникновении ошибки.

Примеры

Пример #1 Пример использования ftp_pwd()

<?php

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// смена текущей директории на public_html
ftp_chdir($conn_id, 'public_html');

// вывод имени текущей директории
echo ftp_pwd($conn_id); // /public_html

// закрытие соединения
ftp_close($conn_id);
?>

Смотрите также

  • ftp_chdir() - Изменяет текущую директорию на FTP сервере
  • ftp_cdup() - Переходит в родительскую директорию


Псевдоним ftp_close

  • « ftp_pwd
  • ftp_raw »
  • PHP Manual
  • FTP Функции
  • Псевдоним ftp_close

ftp_quit

(PHP 4, PHP 5, PHP 7)

ftp_quit — Псевдоним ftp_close()

Описание

Эта функция является псевдонимом: ftp_close().


Отправляет произвольную команду FTP-серверу

  • « ftp_quit
  • ftp_rawlist »
  • PHP Manual
  • FTP Функции
  • Отправляет произвольную команду FTP-серверу

ftp_raw

(PHP 5, PHP 7)

ftp_raw — Отправляет произвольную команду FTP-серверу

Описание

array ftp_raw ( resource $ftp_stream , string $command )

Отправляет произвольную команду command FTP-серверу.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

command

Команда.

Возвращаемые значения

Возвращает ответ сервера в виде массива строк. Функция ftp_raw() не интерпретирует ответ сервера и не определяет, успешно ли выполнена команда.

Примеры

Пример #1 Использование ftp_raw() для входа на FTP-сервер

<?php
$fp = ftp_connect("ftp.example.com");

/* То же самое, что:
   ftp_login($fp, "joeblow", "secret"); */
ftp_raw($fp, "USER joeblow");
ftp_raw($fp, "PASS secret");
?>

Смотрите также

  • ftp_exec() - Запрашивает выполнение команды на FTP-сервере


Возвращает подробный список файлов в заданной директории

  • « ftp_raw
  • ftp_rename »
  • PHP Manual
  • FTP Функции
  • Возвращает подробный список файлов в заданной директории

ftp_rawlist

(PHP 4, PHP 5, PHP 7)

ftp_rawlist — Возвращает подробный список файлов в заданной директории

Описание

mixed ftp_rawlist ( resource $ftp_stream , string $directory [, bool $recursive = false ] )

ftp_rawlist() отправляет FTP-серверу команду LIST и возвращает результат в виде массива.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

directory

Имя директории на сервере. Может включать аргументы для команды LIST.

recursive

Если передано значение TRUE, серверу будет отправлена команда LIST -R.

Возвращаемые значения

Возвращает массив, каждый элемент которого содержит одну строку ответа сервера. Возвращает FALSE, если переданная директория directory не валидна.

Ответ сервера никак не обрабатывается. Для определения того, как следует интерпретировать результат, можно использовать результат работы функции ftp_systype().

Примеры

Пример #1 Пример использования ftp_rawlist()

<?php

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// получение списка файлов директории /
$buff = ftp_rawlist($conn_id, '/');

// закрытие соединения
ftp_close($conn_id);

// вывод буфера
var_dump($buff);
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  string(65) "drwxr-x---   3 vincent  vincent      4096 Jul 12 12:16 public_ftp"
  [1]=>
  string(66) "drwxr-x---  15 vincent  vincent      4096 Nov  3 21:31 public_html"
  [2]=>
  string(73) "lrwxrwxrwx   1 vincent  vincent        11 Jul 12 12:16 www -> public_html"
}

Смотрите также

  • ftp_nlist() - Возвращает список файлов в заданной директории


Переименовывает файл или директорию на FTP-сервере

  • « ftp_rawlist
  • ftp_rmdir »
  • PHP Manual
  • FTP Функции
  • Переименовывает файл или директорию на FTP-сервере

ftp_rename

(PHP 4, PHP 5, PHP 7)

ftp_rename — Переименовывает файл или директорию на FTP-сервере

Описание

bool ftp_rename ( resource $ftp_stream , string $oldname , string $newname )

ftp_rename() переименовывает файл или директорию на FTP-сервере.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

oldname

Старое имя файла/директории.

newname

Новое имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ftp_rename()

<?php
$old_file = 'somefile.txt.bak';
$new_file = 'somefile.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка переименовать $olf_file в $new_file
if (ftp_rename($conn_id, $old_file, $new_file)) {
 echo "Файл $old_file переименован в $new_file\n";
} else {
 echo "Не удалось переименовать $old_file в $new_file\n";
}

// закрытие соединения
ftp_close($conn_id);
?>


Удаляет директорию

  • « ftp_rename
  • ftp_set_option »
  • PHP Manual
  • FTP Функции
  • Удаляет директорию

ftp_rmdir

(PHP 4, PHP 5, PHP 7)

ftp_rmdir — Удаляет директорию

Описание

bool ftp_rmdir ( resource $ftp_stream , string $directory )

Удаляет директорию directory.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

directory

Имя директории. Параметр должен содержать относительный или абсолютный путь к пустой директории.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ftp_rmdir()

<?php

$dir = 'www/';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// попытка удаления директории $dir
if (ftp_rmdir($conn_id, $dir)) {
    echo "Директория $dir удалена\n";
} else {
    echo "Не удалось удалить директорию $dir\n";
}

ftp_close($conn_id);

?>

Смотрите также

  • ftp_mkdir() - Создаёт директорию


Устанавливает параметры соединения с FTP сервером

  • « ftp_rmdir
  • ftp_site »
  • PHP Manual
  • FTP Функции
  • Устанавливает параметры соединения с FTP сервером

ftp_set_option

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ftp_set_option — Устанавливает параметры соединения с FTP сервером

Описание

bool ftp_set_option ( resource $ftp_stream , int $option , mixed $value )

Эта функция устанавливает параметры соединения с FTP сервером.

Список параметров

ftp_stream

Идентификатор соединения с FTP сервером.

option

В настоящее время поддерживаются следующие параметры:

Поддерживаемые параметры
FTP_TIMEOUT_SEC | Устанавливает таймаут сетевых операций, в секундах. Аргумент value должен быть целым, больше 0. По умолчанию таймаут равен 90 секунд.
FTP_AUTOSEEK | При установке этого параметра, перед выполнением запросов GET или PUT с параметром resumepos или startpos указатель файла будет установлен на запрошенную позицию. Этот параметр установлен по умолчанию.

value

Назначение этого аргумента зависит от значения параметра option.

Возвращаемые значения

Возвращает TRUE если параметр был установлен; FALSE в противном случае. Если значение аргумента option не поддерживается или значение аргумента value не соответствует значению аргумента option, будет выведено предупреждение.

Примеры

Пример #1 Пример использования ftp_set_option()

<?php
// установка таймаута в 10 секунд
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 10);
?>

Смотрите также

  • ftp_get_option() - Получает текущие параметры FTP соединения


Отправляет серверу команду SITE

  • « ftp_set_option
  • ftp_size »
  • PHP Manual
  • FTP Функции
  • Отправляет серверу команду SITE

ftp_site

(PHP 4, PHP 5, PHP 7)

ftp_site — Отправляет серверу команду SITE

Описание

bool ftp_site ( resource $ftp_stream , string $command )

ftp_site() отправляет указанную команду SITE FTP-серверу.

Команды SITE не стандартизированы, и зависят от FTP-сервера. Они могут быть полезны для изменения прав доступа к файлам или смены владельца или группы.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

command

Команда SITE. Обратите внимание, что этот параметр не проходит экранирование спецсимволов, так что могут возникнуть проблемы с именами, содержащими пробелы и прочие подобные символы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Отправка команды SITE FTP-серверу

<?php
// Соединение с FTP-сервером
$conn = ftp_connect('ftp.example.com');
if (!$conn) die('Не удалось подключиться к ftp.example.com');

// Вход под именем "user" с паролем "pass"
if (!ftp_login($conn, 'user', 'pass')) die('Не удалось войти на ftp.example.com');

// Отправка "SITE CHMOD 0600 /home/user/privatefile" FTP-серверу
if (ftp_site($conn, 'CHMOD 0600 /home/user/privatefile')) {
   echo "Команда выполнена.\n";
} else {
   die('Команда не выполнена.');
}
?>

Смотрите также

  • ftp_raw() - Отправляет произвольную команду FTP-серверу


Возвращает размер указанного файла

  • « ftp_site
  • ftp_ssl_connect »
  • PHP Manual
  • FTP Функции
  • Возвращает размер указанного файла

ftp_size

(PHP 4, PHP 5, PHP 7)

ftp_size — Возвращает размер указанного файла

Описание

int ftp_size ( resource $ftp_stream , string $remote_file )

ftp_size() возвращает размер заданного файла в байтах.

Замечание:

Не все FTP-серверы поддерживают эту возможность.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

remote_file

Имя файла на сервере.

Возвращаемые значения

Возвращает размер файла, или -1 при возникновении ошибки.

Примеры

Пример #1 Пример использования ftp_size()

<?php

$file = 'somefile.txt';

// установка соединения
$conn_id = ftp_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// получение размера файла $file
$res = ftp_size($conn_id, $file);

if ($res != -1) {
    echo "Размер файла $file: $res байт";
} else {
    echo "Не удалось определить размер файла $file";
}

// закрытие соединения
ftp_close($conn_id);

?>

Смотрите также

  • ftp_rawlist() - Возвращает подробный список файлов в заданной директории


Устанавливает соединение с FTP-сервером через SSL

  • « ftp_size
  • ftp_systype »
  • PHP Manual
  • FTP Функции
  • Устанавливает соединение с FTP-сервером через SSL

ftp_ssl_connect

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

ftp_ssl_connect — Устанавливает соединение с FTP-сервером через SSL

Описание

resource ftp_ssl_connect ( string $host [, int $port = 21 [, int $timeout = 90 ]] )

ftp_ssl_connect() устанавливает явное SSL соединение с FTP-сервером, заданным аргументом host. Это означает, что ftp_ssl_connect() будет успешным даже если сервер не настроен для SSL-FTP, или его сертификат недействителен. Только когда будет вызвана функция ftp_login(), клиент пошлет необходимую комманду AUTH FTP, так что в указанных случаях ftp_login() завершится ошибкой.

Замечание: Почему эта функция может быть не определена

Функция ftp_ssl_connect() доступна только в том случае, если PHP был собран с поддержкой OpenSSL. Это означает что под Windows эта функция не будет определена в официальном дистрибутиве. Чтобы использовать эту функцию под Windows, вам придется собрать PHP самостоятельно для включения поддержки OpenSSL.

Замечание:

ftp_ssl_connect() не предназначена для использования по протоколу sFTP. Для использования sFTP из PHP смотрите функцию ssh2_sftp().

Список параметров

host

Адрес FTP-сервера. Этот параметр не должен содержать слеши в конце и префикс ftp:// в начале.

port

Задает порт, на котором устанавливается соединение. Если равен нулю или опущен, по умолчанию используется стандартный для протокола FTP порт 21.

timeout

Задает таймаут для всех операций с этим соединением. По умолчанию таймаут устанавливается в 90 секунд. Получить и установить значение таймаута можно также с помощью функций ftp_set_option() и ftp_get_option().

Возвращаемые значения

Возвращает SSL-FTP поток в случае успеха, или FALSE при возникновении ошибки.

Список изменений

Версия | Описание
5.2.2 | Эта функция теперь возвращает FALSE, если не удалось установить SSL-соединение, вместо прежнего поведения, когда устанавливалось обычное, не-SSL соединение.

Примеры

Пример #1 Пример использования функции ftp_ssl_connect()

<?php

// установка ssl-соединения
$conn_id = ftp_ssl_connect($ftp_server);

// проверка имени пользователя и пароля
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (!$login_result) {
    // В этом случае PHP уже выбросил сообщение уровня E_WARNING
    die("can't login");
}

echo ftp_pwd($conn_id); // /

// закрытие ssl-соединения
ftp_close($conn_id);
?>

Смотрите также

  • ftp_connect() - Устанавливает соединение с FTP-сервером


Возвращает тип операционной системы FTP-сервера

  • « ftp_ssl_connect
  • Gearman »
  • PHP Manual
  • FTP Функции
  • Возвращает тип операционной системы FTP-сервера

ftp_systype

(PHP 4, PHP 5, PHP 7)

ftp_systype — Возвращает тип операционной системы FTP-сервера

Описание

string ftp_systype ( resource $ftp_stream )

Возвращает тип операционной системы FTP-сервера.

Список параметров

ftp_stream

Идентификатор соединения с FTP-сервером.

Возвращаемые значения

Возвращает тип операционной системы FTP-сервера, или FALSE при возникновении ошибки.

Примеры

Пример #1 Пример использования ftp_systype()

<?php

// установка соединения
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'user', 'password');

// получение типа системы
if ($type = ftp_systype($ftp)) {
    echo "example.com использует $type\n";
} else {
    echo "Не удалось определить тип системы";
}

?>

Результатом выполнения данного примера будет что-то подобное:

example.com использует UNIX


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 — Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось
    • GearmanClient::setOptions — Задание настроек клиента
    • GearmanClient::setStatusCallback — Задание callback-функции, собирающей информацию о состоянии обработчика заданий
    • GearmanClient::setTimeout — Установка таймаута для операций ввода/вывода
    • GearmanClient::setWarningCallback — Задание callback-функции, обслуживающей предупреждения обработчика заданий
    • GearmanClient::setWorkloadCallback — Задание callback-функции принимающей промежуточные результаты от обработчика заданий
    • GearmanClient::timeout — Получение значения таймаута операций ввода/вывода
  • GearmanJob — Класс GearmanJob
    • GearmanJob::complete — Отправка результата и статуса завершения (устаревший метод)
    • GearmanJob::__construct — Создание объекта GearmanJob
    • GearmanJob::data — Отправка данных (устаревший метод)
    • GearmanJob::exception — Отправка исключения (устаревший метод)
    • GearmanJob::fail — Отправка статуса провала операции (устаревший метод)
    • GearmanJob::functionName — Получение имени функции
    • GearmanJob::handle — Получение описателя объекта "работы"
    • GearmanJob::returnCode — Получение последнего кода возврата
    • GearmanJob::sendComplete — Отправка результата и статуса завершения
    • GearmanJob::sendData — Отправка данных
    • GearmanJob::sendException — Отправка исключения
    • GearmanJob::sendFail — Отправка статуса провала операции
    • GearmanJob::sendStatus — Отправка статуса задания
    • GearmanJob::sendWarning — Отправка предупреждения
    • GearmanJob::setReturn — Установка возвращаемого значения
    • GearmanJob::status — Отправка статуса задания (устаревший метод)
    • GearmanJob::unique — Получение уникального идентификатора
    • GearmanJob::warning — Отправка предупреждения (устаревший метод)
    • GearmanJob::workload — Получение данных для обработки
    • GearmanJob::workloadSize — Получение размера обрабатываемых данных
  • GearmanTask — Класс GearmanTask
    • GearmanTask::__construct — Создает объект GearmanTask
    • GearmanTask::create — Создает задание (устаревший метод)
    • GearmanTask::data — Получение данных из обработчика
    • GearmanTask::dataSize — Получение размера возвращаемых данных
    • GearmanTask::function — Получение имени функции (устаревший метод)
    • GearmanTask::functionName — Получение имени функции
    • GearmanTask::isKnown — Определение, известно ли серверу об этом задании
    • GearmanTask::isRunning — Проверяет, выполняется ли задание в данный момент
    • GearmanTask::jobHandle — Получение описателя работы для этого задания
    • GearmanTask::recvData — Чтение рабочих или результирующих данных задания в буфер
    • GearmanTask::returnCode — Получение последнего кода возврата
    • GearmanTask::sendData — Отправка данных задания (устаревший метод)
    • GearmanTask::sendWorkload — Отправка данных задания
    • GearmanTask::taskDenominator — Получение знаменателя в дроби, отвечающей за процент выполненной работы
    • GearmanTask::taskNumerator — Получение числителя дроби, отвечающей за процент выполненной работы
    • GearmanTask::unique — Получение уникального идентификатора задания
    • GearmanTask::uuid — Получение уникального идентификатора задания (устаревший метод)
  • GearmanWorker — Класс GearmanWorker
    • GearmanWorker::addFunction — Регистрация и добавление callback-функции
    • GearmanWorker::addOptions — Добавление настроек обработчика
    • GearmanWorker::addServer — Добавление сервера заданий
    • GearmanWorker::addServers — Добавление нескольких серверов заданий
    • GearmanWorker::clone — Создание копии обработчика
    • GearmanWorker::__construct — Создание объекта GearmanWorker
    • GearmanWorker::echo — Проверка отклика серверов заданий
    • GearmanWorker::error — Получение последней обнаруженной ошибки
    • GearmanWorker::getErrno — Получение номера ошибки
    • GearmanWorker::options — Получение настроек обработчика
    • GearmanWorker::register — Регистрация функции на сервере заданий
    • GearmanWorker::removeOptions — Удаление настроек обработчика
    • GearmanWorker::returnCode — Получение последнего кода возврата Gearman
    • GearmanWorker::setId — Назначает обработчику идентификатор, чтобы в дальнейшем иметь возможность опросить все доступные обработчики
    • GearmanWorker::setOptions — Задание настроек обработчика
    • GearmanWorker::setTimeout — Задание таймаута ожидания ввода/вывода на сокете
    • GearmanWorker::timeout — Получение значения таймаута ожидания запросов на сокете
    • GearmanWorker::unregister — Удалить регистрацию имени функции на всех серверах заданий
    • GearmanWorker::unregisterAll — Удаление регистрации всех имен функций на серверах заданий
    • GearmanWorker::wait — Ожидание запроса от какого-либо сервера задач
    • GearmanWorker::work — Ожидание задания и его немедленное выполнение
  • GearmanException — Класс GearmanException


Введение

» Gearman это универсальный фреймворк разработки приложений для раздачи работ множеству машин или процессов. Это позволяет приложениям выполнять задачи параллельно, распределяя нагрузку и использовать функции различных языков. Фреймворк может использоваться во множестве приложений, от высоконадежных веб-сайтов до транспорта событий репликации базы данных.

Это расширение предоставляет классы для написания клиентов и обработчиков Gearman.


Требования

Это расширение требует библиотеки » libgearman, » libevent и » uuid и запущенного Gearman сервера.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/gearman


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Возвращаемые значения. Всегда проверяйте значение GearmanClient::error() или GearmanWorker(), содержащее строку с описанием ошибки, так как в этой строке может содержаться более детальная информация о последней операции:

GEARMAN_SUCCESS (integer)
Операция завершена успешно.
GEARMAN_IO_WAIT (integer)
В режиме без блокировок событие ожидает установку блокировки.
GEARMAN_ERRNO (integer)
Системная ошибка. Чтобы получить код ошибки, воспользуйтесь функцией GearmanClient::errno() или GearmanWorker::errno().
GEARMAN_NO_ACTIVE_FDS (integer)
На момент вызова GearmanClient::wait() или GearmanWorker() не было активных подключений.
GEARMAN_UNEXPECTED_PACKET (integer)
Означает, что что-то пошло совсем не так, как должно было. Применимо только к GearmanWorker.
GEARMAN_GETADDRINFO (integer)
Провал операции разрешения имен DNS (неверный порт, хост и т.п.).
GEARMAN_NO_SERVERS (integer)
Перед отправкой работы или задания не был вызван метод GearmanClient::addServer().
GEARMAN_LOST_CONNECTION (integer)
Во время обработки запроса прервалось соединение.
GEARMAN_MEMORY_ALLOCATION_FAILURE (integer)
Не удалось выделить память (недостаточно памяти).
GEARMAN_SERVER_ERROR (integer)
На сервере Gearman произошел сбой, и сервер не смог обработать запрос.
GEARMAN_WORK_DATA (integer)
Код-уведомление, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Выполняющий задание процесс (worker) посылает этот код, когда ему требуется обновить данные на клиенте, передать часть результатов работы или избавиться от ненужных данных во время выполнения долгих заданий.
GEARMAN_WORK_WARNING (integer)
Код-уведомление, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Принцип и поведение те же, что и в случае GEARMAN_WORK_DATA, однако этот код следует интерпретировать как предупреждение, которое обработчик задания передает клиенту.
GEARMAN_WORK_STATUS (integer)
Код-уведомление, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Обработчик задания посылает этот код, чтобы обновить текущее состояние выполняемого задания. С помощью метода GearmanClient::doStatus() можно узнать, какой процент работы уже выполнен.
GEARMAN_WORK_EXCEPTION (integer)
Код-уведомление, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Означает, что выполнение задания завершилось неудачей, и было выброшено заданное исключение.
GEARMAN_WORK_FAIL (integer)
Код-уведомление, который можно получить методом GearmanClient::returnCode() во время работы GearmanClient::do(). Означает, что работу выполнить не удалось.
GEARMAN_COULD_NOT_CONNECT (integer)
Не удалось подключиться к серверу.
GEARMAN_INVALID_FUNCTION_NAME (integer)
Это значение возвращается при попытке зарегистрировать NULL в качестве имени функции или при использовании callback-интерфейса без задания соответствующих функций обратного вызова.
GEARMAN_INVALID_WORKER_FUNCTION (integer)
Попытка зарегистрировать в обработчике функцию, передавая NULL в качестве функции обратного вызова.
GEARMAN_NO_REGISTERED_FUNCTIONS (integer)
Это значение означает, что обработчик получил задание для функции, которая в нем не зарегистрирована.
GEARMAN_NO_JOBS (integer)
Означает, что метод GearmanWorker::work() неблокирующего обработчика на данный момент не выполняет никакой работы.
GEARMAN_ECHO_DATA_CORRUPTION (integer)
Указывает, что после вызова GearmanClient::echo() или GearmanWorker::echo() возвращенные данные не соответствуют переданным.
GEARMAN_NEED_WORKLOAD_FN (integer)
Означает, что клиент выбрал потоковый режим передачи данных для обработки, но не задал callback-функцию для обработки данных из этого потока.
GEARMAN_PAUSE (integer)
При работе в неблокирующем режиме, это значение может вернуть callback-функция, чтобы приостановить обработку задания и выйти из метода GearmanClient::runTasks(). Чтобы продолжить работу, следует еще раз вызвать метод GearmanClient::runTasks().
GEARMAN_UNKNOWN_STATE (integer)
Состояние внутреннего взаимодействия клиента и обработчика неизвестно.
GEARMAN_SEND_BUFFER_TOO_SMALL (integer)
Внутренняя ошибка: попытка передать больше данных, чем помещается в один чанк. Размеры буфера жестко заданы и не подлежат изменению.
GEARMAN_TIMEOUT (integer)
Превышен таймаут ожидания, заданный клиентом - обработчиком.

Настройки GearmanClient:

GEARMAN_CLIENT_GENERATE_UNIQUE (integer)
Создавать уникальный id (UUID) для каждой задачи.
GEARMAN_CLIENT_NON_BLOCKING (integer)
Запускать клиента в неблокирующем режиме.
GEARMAN_CLIENT_UNBUFFERED_RESULT (integer)
Позволять клиенту читать данные и посылать их обратно в чанках вместо буферизации данных целиком средствами библиотеки.
GEARMAN_CLIENT_FREE_TASKS (integer)
Автоматически уничтожать объекты заданий после их выполнения. Эта настройка используется по умолчанию, чтобы предотвратить утечки памяти.

Настройки GearmanWorker:

GEARMAN_WORKER_NON_BLOCKING (integer)
Запускать обработчик заданий в неблокирующем режиме.
GEARMAN_WORKER_GRAB_UNIQ (integer)
Возвращать уникальный ID клиента, ассоциированный с обработчиком заданий.

Базовая конфигурация Gearman:

GEARMAN_DEFAULT_TCP_HOST (string)
GEARMAN_DEFAULT_TCP_PORT (integer)
GEARMAN_DEFAULT_SOCKET_TIMEOUT (integer)
GEARMAN_DEFAULT_SOCKET_SEND_SIZE (integer)
GEARMAN_DEFAULT_SOCKET_RECV_SIZE (integer)
GEARMAN_MAX_ERROR_SIZE (integer)
GEARMAN_PACKET_HEADER_SIZE (integer)
GEARMAN_JOB_HANDLE_SIZE (integer)
GEARMAN_OPTION_SIZE (integer)
GEARMAN_UNIQUE_SIZE (integer)
GEARMAN_MAX_COMMAND_ARGS (integer)
GEARMAN_ARGS_BUFFER_SIZE (integer)
GEARMAN_SEND_BUFFER_SIZE (integer)
GEARMAN_RECV_BUFFER_SIZE (integer)
GEARMAN_WORKER_WAIT_TIMEOUT (integer)


Примеры

Содержание

  • Базовое использование
  • Базовый клиент и обработчик Gearman, фоновый режим
  • Базовые клиент и обработчик Gearman, отправка задач


Базовое использование

Пример #1 Базовый клиент и обработчик Gearman

Этот пример демонстрирует базовую работу с клиентом и его обработчиком. Клиент отправляет строку серверу заданий, обработчик переворачивает строку и отсылает ее назад. Операция выполняется синхронно.

<?php

# Создание клиентского объекта
$gmclient= new GearmanClient();

# Указание сервера по умолчанию (localhost).
$gmclient->addServer();

echo "Sending job\n";

# Отправка задания обратно
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");

  # Проверка на различные возвращаемые пакеты и ошибки.
  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo "Data: $result\n";
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Status: $numerator/$denominator complete\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Failed\n";
      exit;
    case GEARMAN_SUCCESS:
      echo "Success: $result\n";
      break;
    default:
      echo "RET: " . $gmclient->returnCode() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

?>
<?php

echo "Starting\n";

# Создание нового обработчика.
$gmworker= new GearmanWorker();

# Добавление сервера по умолчанию (localhost).
$gmworker->addServer();

# Регистрация функции "reverse" на сервере. Изменение функции обработчика на
# "reverse_fn_fast" для более быстрой обработки без вывода.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # Этот цикл не является необходимым, но показывает как выполняется работа
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x, $workload_size);
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Возвращаем, когда необходимо отправить результат обратно клиенту.
  return $result;
}

# Гораздо более простая и менее подробная версия вышеприведенной функции выглядит так:
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

Результатом выполнения данного примера будет что-то подобное:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:36
Workload: Hello! (6)
Sending status: 1/6 complete
Sending status: 2/6 complete
Sending status: 3/6 complete
Sending status: 4/6 complete
Sending status: 5/6 complete
Sending status: 6/6 complete
Result: !olleH

% php reverse_client.php
Starting
Sending job
Status: 1/6 complete
Status: 2/6 complete
Status: 3/6 complete
Status: 4/6 complete
Status: 5/6 complete
Status: 6/6 complete
Success: !olleH


Базовый клиент и обработчик Gearman, фоновый режим

Пример #1 Базовый клиент и обработчик Gearman, фоновый режим

Этот пример демонстрирует базовую работу с клиентом и его обработчиком. Клиент отправляет строку серверу выполнения заданий в виде фоновой задачи, а обработчик переворачивает строку. Обратите внимание, что работа выполняется асинхронно, т.е. клиент не ждет завершения задания, а сразу отключается (а значит и не получает результат).

<?php

# создание объекта
$gmclient= new GearmanClient();

# указание сервера по умолчанию (localhost)
$gmclient->addServer();

# выполнение в фоновом режиме
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "bad return code\n";
  exit;
}

echo "done!\n";

?>
<?php

echo "Starting\n";

# Создание обработчика.
$gmworker= new GearmanWorker();

# Указание сервера по умолчанию (localhost).
$gmworker->addServer();

# Регистрация функции "reverse" на сервере. Изменение функции обработчика на
# "reverse_fn_fast" для более быстрой обработки без вывода.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # Этот цикл не является необходимым, но показывает как выполняется работа
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x, $workload_size);
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Возвращаем, когда необходимо отправить результат обратно клиенту.
  return $result;
}

# Гораздо более простая и менее подробная версия вышеприведенной функции выглядит так:
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

Результатом выполнения данного примера будет что-то подобное:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:41
Workload: this is a test (14)
1/14 complete
2/14 complete
3/14 complete
4/14 complete
5/14 complete
6/14 complete
7/14 complete
8/14 complete
9/14 complete
10/14 complete
11/14 complete
12/14 complete
13/14 complete
14/14 complete
Result: tset a si siht

% php reverse_client_bg.php
done!


Базовые клиент и обработчик Gearman, отправка задач

Пример #1 Базовые клиент и обработчик Gearman, отправка задач

В этом примере наш базовый клиент переворачивания строки расширен так, чтобы выполнять две задачи параллельно. Обработчик переворачивания строки не изменен, за исключением добавления отправляемых обратно данных во время обработки.

<?php

# создание клиента gearman
$gmc= new GearmanClient();

# указание сервера по умолчанию (localhost)
$gmc->addServer();

# регистрация функций обратного вызова
$gmc->setCreatedCallback("reverse_created");
$gmc->setDataCallback("reverse_data");
$gmc->setStatusCallback("reverse_status");
$gmc->setCompleteCallback("reverse_complete");
$gmc->setFailCallback("reverse_fail");

# указание неких произвольных данных
$data['foo'] = 'bar';

# добавление двух заданий
$task= $gmc->addTask("reverse", "foo", $data);
$task2= $gmc->addTaskLow("reverse", "bar", NULL);

# выполнение заданий параллельно (использование двух обработчиков)
if (! $gmc->runTasks())
{
    echo "ERROR " . $gmc->error() . "\n";
    exit;
}

echo "DONE\n";

function reverse_created($task)
{
    echo "CREATED: " . $task->jobHandle() . "\n";
}

function reverse_status($task)
{
    echo "STATUS: " . $task->jobHandle() . " - " . $task->taskNumerator() .
         "/" . $task->taskDenominator() . "\n";
}

function reverse_complete($task)
{
    echo "COMPLETE: " . $task->jobHandle() . ", " . $task->data() . "\n";
}

function reverse_fail($task)
{
    echo "FAILED: " . $task->jobHandle() . "\n";
}

function reverse_data($task)
{
    echo "DATA: " . $task->data() . "\n";
}

?>
<?php

echo "Starting\n";

# Создание обработчика.
$gmworker= new GearmanWorker();

# Указание сервера по умолчанию  (localhost).
$gmworker->addServer();

# Регистрация функции "reverse" на сервере. Изменение функции обработчика на
# "reverse_fn_fast" для более быстрой обработки без вывода.
$gmworker->addFunction("reverse", "reverse_fn");

print "Waiting for job...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "return_code: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Received job: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Workload: $workload ($workload_size)\n";

  # Этот цикл не является необходимым, но показывает как выполняется работа
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Sending status: " . ($x + 1) . "/$workload_size complete\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Result: $result\n";

  # Возвращаем, когда необходимо отправить результат обратно клиенту.
  return $result;
}

# Гораздо более простая и менее подробная версия вышеприведенной функции выглядит так:
function reverse_fn_fast($job)
{
  return strrev($job->workload());
}

?>

Результатом выполнения данного примера будет что-то подобное:

% php reverse_worker.php
Starting
Waiting for job...
Received job: H:foo.local:45
Workload: foo (3)
1/3 complete
2/3 complete
3/3 complete
Result: oof
Received job: H:foo.local:44
Workload: bar (3)
1/3 complete
2/3 complete
3/3 complete
Result: rab

% php reverse_client_task.php
CREATED: H:foo.local:44
CREATED: H:foo.local:45
STATUS: H:foo.local:45 - 1/3
DATA: f
STATUS: H:foo.local:45 - 2/3
DATA: o
STATUS: H:foo.local:45 - 3/3
DATA: o
COMPLETE: H:foo.local:45, oof
STATUS: H:foo.local:44 - 1/3
DATA: b
STATUS: H:foo.local:44 - 2/3
DATA: a
STATUS: H:foo.local:44 - 3/3
DATA: r
COMPLETE: H:foo.local:44, rab
DONE


Класс GearmanClient

(PECL gearman >= 0.5.0)

Введение

Представляет собой класс для подключения к серверу задач Gearman и выполнения некоторых функций над указанными данными. Выполняемая функция должна быть зарегистрирована процессом Gearman worker и передаваемые данные являются непрозрачными для сервера задач.

Обзор классов

GearmanClient {
/* Методы */
public bool addOptions ( int $options )
public bool addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )
public bool addServers ([ string $servers = 127.0.0.1:4730 ] )
public GearmanTask addTask ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskHigh ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskHighBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskLow ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskLowBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )
public GearmanTask addTaskStatus ( string $job_handle [, string &$context ] )
public bool clearCallbacks ( void )
public GearmanClient clone ( void )
public __construct ( void )
public string context ( void )
public string data ( void )
public string do ( string $function_name , string $workload [, string $unique ] )
public string doBackground ( string $function_name , string $workload [, string $unique ] )
public string doHigh ( string $function_name , string $workload [, string $unique ] )
public string doHighBackground ( string $function_name , string $workload [, string $unique ] )
public string doJobHandle ( void )
public string doLow ( string $function_name , string $workload [, string $unique ] )
public string doLowBackground ( string $function_name , string $workload [, string $unique ] )
public string doNormal ( string $function_name , string $workload [, string $unique ] )
public array doStatus ( void )
public bool echo ( string $workload )
public string error ( void )
public int getErrno ( void )
public array jobStatus ( string $job_handle )
public bool ping ( string $workload )
public bool removeOptions ( int $options )
public int returnCode ( void )
public bool runTasks ( void )
public void setClientCallback ( callable $callback )
public bool setCompleteCallback ( callable $callback )
public bool setContext ( string $context )
public bool setCreatedCallback ( string $callback )
public bool setData ( string $data )
public bool setDataCallback ( callable $callback )
public bool setExceptionCallback ( callable $callback )
public bool setFailCallback ( callable $callback )
public bool setOptions ( int $options )
public bool setStatusCallback ( callable $callback )
public bool setTimeout ( int $timeout )
public bool setWarningCallback ( callable $callback )
public bool setWorkloadCallback ( callable $callback )
public int timeout ( void )
}

Содержание

  • 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 — Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось
  • GearmanClient::setOptions — Задание настроек клиента
  • GearmanClient::setStatusCallback — Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setTimeout — Установка таймаута для операций ввода/вывода
  • GearmanClient::setWarningCallback — Задание callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback — Задание callback-функции принимающей промежуточные результаты от обработчика заданий
  • GearmanClient::timeout — Получение значения таймаута операций ввода/вывода


Добавить клиентские опции

  • « GearmanClient
  • GearmanClient::addServer »
  • PHP Manual
  • GearmanClient
  • Добавить клиентские опции

GearmanClient::addOptions

(PECL gearman >= 0.6.0)

GearmanClient::addOptions — Добавить клиентские опции

Описание

public bool GearmanClient::addOptions ( int $options )

Добавляет одну или несколько опций к уже установленным.

Список параметров

options

Опции для добавления. Одна из следующих констант, или их комбинация с помощью двоичного оператора OR ("|"): GEARMAN_CLIENT_GENERATE_UNIQUE, GEARMAN_CLIENT_NON_BLOCKING, GEARMAN_CLIENT_UNBUFFERED_RESULT или GEARMAN_CLIENT_FREE_TASKS.

Возвращаемые значения

Всегда возвращает TRUE.


Добавить сервер задач для клиента

  • « GearmanClient::addOptions
  • GearmanClient::addServers »
  • PHP Manual
  • GearmanClient
  • Добавить сервер задач для клиента

GearmanClient::addServer

(PECL gearman >= 0.5.0)

GearmanClient::addServer — Добавить сервер задач для клиента

Описание

public bool GearmanClient::addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )

Добавляет сервер задач к списку серверов, которые могут использоваться для выполнения задачи. Никаких операций ввода-вывода 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 bool GearmanClient::addServers ([ string $servers = 127.0.0.1:4730 ] )

Добавляет список серверов задач, которые могут использоваться для выполнения задачи. Никаких операций ввода-вывода 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 GearmanTask GearmanClient::addTask ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Добавляет задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Обратите внимание, что должно быть достаточное количество работников для одновременного выполнения всех задач.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Примеры

Пример #1 Основное представление двух задач

<?php

# Создаем нашего клиента
$gmclient= new GearmanClient();

# Добавляем сервер задач по умолчанию
$gmclient->addServer();

# Устанавливаем функцию, которая будет вызвана по завершению работы
$gmclient->setCompleteCallback("complete");

# Добавляем задачу для выполнения функции reverse, переворачивающей строку "Hello World!"
$gmclient->addTask("reverse", "Hello World!", null, "1");

# Добавляем другую задачу, для выполнения функции reverse, переворачивающей строку "!dlroW olleH"
$gmclient->addTask("reverse", "!dlroW olleH", null, "2");

# Выполняем задачи
$gmclient->runTasks();

function complete($task)
{
  print "Выполнено: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Выполнено: 2, Hello World!
Выполнено: 1, !dlroW olleH

Пример #2 Основное представление двух задач с передачей контекста приложения

<?php

$client = new GearmanClient();
$client->addServer();

# Устанавливаем функцию, которая будет вызвана по завершению работы
$client->setCompleteCallback("reverse_complete");

# Добавим несколько задач и местоположение результатов
$results = array();
$client->addTask("reverse", "Hello World!", &$results, "t1");
$client->addTask("reverse", "!dlroW olleH", &$results, "t2");

$client->runTasks();

# Результаты должны быть заполнены из обратного вызова
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 GearmanTask GearmanClient::addTaskBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Добавляет фоновую задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Примеры

Пример #1 Две задачи, одна в фоновом режиме другая нет

Этот пример иллюстрирует различие между выполнением фоновой задачи и нормальной задачей. Клиент добавляет две задачи для выполнения одних и тех же функций, но одна добавлена с помощью addTaskBackground(). Обратный вызов установлен так, чтобы выполнение задания можно было проследить. Простой рабочий с искусственной задержкой сообщает статус выполнения задания, и клиент понимает это посредством обратного вызова. Два рабочих запущены для этого примера. Обратите внимание, что фоновая задача не показывается в клиентском выводе.

<?php

# Клиентский скрипт

# Создание нашего клиента
$gmc= new GearmanClient();

# Добавление сервера задач по умолчанию
$gmc->addServer();

# Установка нескольких обратных вызовов. Таким образом, мы сможем отслеживать выполнение
$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 выполнено
Result: !dlroW olleH
Result: 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 GearmanTask GearmanClient::addTaskHigh ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Добавляет высокоприоритетную задачу для параллельной работы с другими задачами. Вызовите этот метод для всех высокоприоритетных задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с высоким приоритетом будут выбраны из очереди раньше задач с нормальным или низким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Примеры

Пример #1 Высокоприоритетная задача вместе с двумя нормальными задачами

Высокоприоритетная задача включена среди двух других задач. Доступен единственный рабочий, так что задачи запускаются одна за другой, высокоприоритетные задачи выполняются в первую очередь.

<?php

# создание клиента
$gmc= new GearmanClient();

# добавление сервера задач по умолчанию
$gmc->addServer();

# установка обратной функции для сигнализации о завершении задачи
$gmc->setCompleteCallback("reverse_complete");

# добавление задач, одна из которых высокоприоритетная
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->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 GearmanTask GearmanClient::addTaskHighBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Добавляет высокоприоритетную фоновую задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с высоким приоритетом будут выбраны из очереди раньше задач с нормальным или низким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Смотрите также

  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме
  • GearmanClient::addTaskHigh() - Добавить высокоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskLow() - Добавить низкоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskBackground() - Добавить фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskLowBackground() - Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::runTasks() - Запустить список задач в параллельном режиме


Добавить низкоприоритетную задачу для работы в параллельном режиме

  • « GearmanClient::addTaskHighBackground
  • GearmanClient::addTaskLowBackground »
  • PHP Manual
  • GearmanClient
  • Добавить низкоприоритетную задачу для работы в параллельном режиме

GearmanClient::addTaskLow

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLow — Добавить низкоприоритетную задачу для работы в параллельном режиме

Описание

public GearmanTask GearmanClient::addTaskLow ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Добавляет низкоприоритетную задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с низким приоритетом будут выбраны из очереди после задач с нормальным или высоким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Примеры

Пример #1 Низкоприоритетная задача вместе с двумя нормальными задачами

Низкоприоритетная задача включена среди двух других задач. Единственный рабочий доступен, так что задачи запускаются одна за другой, низкоприоритетные задачи выполняются в последнюю очередь.

<?php

# создание клиента
$gmc= new GearmanClient();

# добавление сервера задач по умолчанию
$gmc->addServer();

# установка функции обратного вызова по завершению задачи
$gmc->setCompleteCallback("reverse_complete");

# добавление задач, одна из которых с низким приоритетом
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskLow("reverse", "!dlroW olleH", null, "2");
$task= $gmc->addTask("reverse", "Hello World!", null, "3");

if (! $gmc->runTasks())
{
    echo "Ошибка " . $gmc->error() . "\n";
    exit;
}
echo "Готово\n";

function reverse_complete($task)
{
    echo "Выполнено: " . $task->unique() . ", " . $task->data() . "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Выполнено: 3, !dlroW olleH
Выполнено: 1, !dlroW olleH
Выполнено: 2, Hello World!
Готово

Смотрите также

  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме
  • GearmanClient::addTaskHigh() - Добавить высокоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskBackground() - Добавить фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskHighBackground() - Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskLowBackground() - Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::runTasks() - Запустить список задач в параллельном режиме


Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме

  • « GearmanClient::addTaskLow
  • GearmanClient::addTaskStatus »
  • PHP Manual
  • GearmanClient
  • Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме

GearmanClient::addTaskLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::addTaskLowBackground — Добавить низкоприоритетную фоновую задачу для работы в параллельном режиме

Описание

public GearmanTask GearmanClient::addTaskLowBackground ( string $function_name , string $workload [, mixed &$context [, string $unique ]] )

Добавляет низкоприоритетную фоновую задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите GearmanClient::runTasks() для выполнения работ. Задачи с низким приоритетом будут выбраны из очереди после задач с нормальным или высоким приоритетом.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

context

Контекст приложения, связываемый с задачей

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Объект GearmanTask или FALSE, если задача не может быть добавлена.

Смотрите также

  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме
  • GearmanClient::addTaskHigh() - Добавить высокоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskLow() - Добавить низкоприоритетную задачу для работы в параллельном режиме
  • GearmanClient::addTaskBackground() - Добавить фоновую задачу для работы в параллельном режиме
  • GearmanClient::addTaskHighBackground() - Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме
  • GearmanClient::runTasks() - Запустить список задач в параллельном режиме


Добавить задачу для получения статуса

  • « GearmanClient::addTaskLowBackground
  • GearmanClient::clearCallbacks »
  • PHP Manual
  • GearmanClient
  • Добавить задачу для получения статуса

GearmanClient::addTaskStatus

(PECL gearman >= 0.5.0)

GearmanClient::addTaskStatus — Добавить задачу для получения статуса

Описание

public GearmanTask GearmanClient::addTaskStatus ( string $job_handle [, string &$context ] )

Используется для запроса информации о состоянии с сервера Gearman, который будет вызывать указанный обратный вызов статуса (устанавливаются с помощью GearmanClient::setStatusCallback()).

Список параметров

job_handle

Дескриптор задания для получения статуса задачи

context

Данные, которые будут переданы обратному вызову. Обычно ссылка на массив или объект

Возвращаемые значения

Объект GearmanTask.

Примеры

Пример #1 Монитор завершения множественных фоновых задач

В этом примере представлена искусственная задержка в работнике, чтобы смоделировать долгий рабочий процесс. Есть только один рабочий, запущенный для этого примера.

<?php

/* создание клиентского объекта */
$gmclient= new GearmanClient();

/* добавление сервера задач по умолчанию */
$gmclient->addServer();

/* запуск некоторых фоновых задач и сохранение дескрипторов */
$handles = array();
$handles[0] = $gmclient->doBackground("reverse", "Hello World!");
$handles[1] = $gmclient->doBackground("reverse", "!dlroW olleH");

$gmclient->setStatusCallback("reverse_status");

/* Опрос сервера с целью определения, когда завершатся фоновые задачи; */
/* лучшим методом может быть использование обратных вызовов на события */
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 bool GearmanClient::clearCallbacks ( void )

Очищает все функции обратного вызова данной задачи, которые были ранее установлены.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Всегда возвращает TRUE.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Задание функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось
  • 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 GearmanClient::clone ( void )

Создаёт копию объекта GearmanClient.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

GearmanClient в случае успеха, FALSE в случае неудачи.


Создать экземпляр GearmanClient

  • « GearmanClient::clone
  • GearmanClient::context »
  • PHP Manual
  • GearmanClient
  • Создать экземпляр GearmanClient

GearmanClient::__construct

(PECL gearman >= 0.5.0)

GearmanClient::__construct — Создать экземпляр GearmanClient

Описание

public GearmanClient::__construct ( void )

Создает экземпляр GearmanClient, представляющий клиента, который соединяется с сервером заданий и передаёт задачи для выполнения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект GearmanClient.

Смотрите также

  • GearmanClient::clone() - Создать копию объекта GearmanClient


Возвращает контекст приложения

  • « GearmanClient::__construct
  • GearmanClient::data »
  • PHP Manual
  • GearmanClient
  • Возвращает контекст приложения

GearmanClient::context

(PECL gearman >= 0.6.0)

GearmanClient::context — Возвращает контекст приложения

Описание

public string GearmanClient::context ( void )

Возвращает контекст, ранее установленный с помощью GearmanClient::setContext().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Та же самая структура данных контекста, приведенная в GearmanClient::setContext()

Смотрите также

  • GearmanClient::setContext() - Установить данные приложения


Возвращает данные приложения (функция устарела)

  • « GearmanClient::context
  • GearmanClient::do »
  • PHP Manual
  • GearmanClient
  • Возвращает данные приложения (функция устарела)

GearmanClient::data

(PECL gearman <= 0.5.0)

GearmanClient::data — Возвращает данные приложения (функция устарела)

Описание

public string GearmanClient::data ( void )

Возвращает данные приложения, установленные ранее с помощью 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 string GearmanClient::do ( string $function_name , string $workload [, string $unique ] )

Метод GearmanClient::do() устарел начиная с pecl/gearman 1.0.0. Используйте GearmanClient::doNormal().

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Результат выполнения задачи в виде строки.

Примеры

Пример #1 Простое представление задания с непосредственным возвратом

<?php

# Код клиента

echo "Starting\n";

# Создание клиента
$gmclient= new GearmanClient();

# Указание сервера по умолчанию (localhost).
$gmclient->addServer();

echo "Sending job\n";

$result = $gmclient->doNormal("reverse", "Hello!");

echo "Success: $result\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)
{
  return strrev($job->workload());
}

?>

Результатом выполнения данного примера будет что-то подобное:

Starting
Sending job
Success: !olleH

Пример #2 Передача задания и получение инкрементного состояния

Дается задание и задается цикл для получения информации об изменении статуса. У обработчика указана искусственная задержка для моделирования длительного выполнения задания и задана отправка состояния и данных во время обработки. Каждый последующий вызов GearmanClient::do() выводит информацию о статусе выполнения текущего задания.

<?php

# Код клиента

# Создание экземпляра клиента Gearman
$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:
      break;
    default:
      echo "RET: " . $gmclient->returnCode() . "\n";
      echo "Error: " . $gmclient->error() . "\n";
      echo "Errno: " . $gmclient->getErrno() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Success: $result\n";

?>
<?php

# Код обработчика

echo "Starting\n";

# Создание экземпляра обработчика.
$gmworker= new GearmanWorker();

# Указание сервера по умолчанию  (localhost).
$gmworker->addServer();

# Регистрация функции "reverse" на сервере.
$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;
}

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод обработчика:

Starting
Waiting for job...
Received job: H:foo.local:106
Workload: Hello! (6)
1/6 complete
2/6 complete
3/6 complete
4/6 complete
5/6 complete
6/6 complete
Result: !olleH

Вывод клиента:

Starting
Sending job
Status: 1/6 complete
Data: H
Status: 2/6 complete
Data: e
Status: 3/6 complete
Data: l
Status: 4/6 complete
Data: l
Status: 5/6 complete
Data: o
Status: 6/6 complete
Data: !
Success: !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 string GearmanClient::doBackground ( string $function_name , string $workload [, string $unique ] )

Запускает выполнение задачи в фоновом режиме, возвращая дескриптор задания, который может быть использован для запроса состояния выполняющейся задачи.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Дескриптор текущего задания.

Примеры

Пример #1 Отправляет и отслеживает фоновое задание

Обработчик в этом примере имеет искусственную задержку, чтобы смоделировать длительное выполнение задания. Клиент периодически проверяет состояние выполняющегося задания.

<?php

/* создание объекта */
$gmclient= new GearmanClient();

/* указание сервера по умолчанию */
$gmclient->addServer();

/* запуск на выполнение клиента */
$job_handle = $gmclient->doBackground("reverse", "this is a test");

if ($gmclient->returnCode() != GEARMAN_SUCCESS)
{
  echo "bad return code\n";
  exit;
}

$done = false;
do
{
   sleep(3);
   $stat = $gmclient->jobStatus($job_handle);
   if (!$stat[0]) // задание известно, но не выполнено
      $done = true;
   echo "Running: " . ($stat[1] ? "true" : "false") . ", numerator: " . $stat[2] . ", denomintor: " . $stat[3] . "\n";
}
while(!$done);

echo "done!\n";

?>

Результатом выполнения данного примера будет что-то подобное:

Running: true, numerator: 3, denomintor: 14
Running: true, numerator: 6, denomintor: 14
Running: true, numerator: 9, denomintor: 14
Running: true, numerator: 12, denomintor: 14
Running: false, numerator: 0, denomintor: 0
done!

Смотрите также

  • 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 string GearmanClient::doHigh ( string $function_name , string $workload [, string $unique ] )

Запускает на выполнение одиночную высокоприоритетную задачу и возвращает строку, содержащую результат. Функция зависит от GearmanClient и GearmanWorker, поскольку необходимо обеспечить единый формат результата. Высокоприоритетные задачи имеют преимущество над нормальными и низкоприоритетными задачам в очереди заданий.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Строка, содержащая результат выполнения задачи.

Смотрите также

  • GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
  • GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
  • GearmanClient::doBackground() - Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
  • GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме


Запускает на выполнение с высоким приоритетом задачу в фоновом режиме

  • « GearmanClient::doHigh
  • GearmanClient::doJobHandle »
  • PHP Manual
  • GearmanClient
  • Запускает на выполнение с высоким приоритетом задачу в фоновом режиме

GearmanClient::doHighBackground

(PECL gearman >= 0.5.0)

GearmanClient::doHighBackground — Запускает на выполнение с высоким приоритетом задачу в фоновом режиме

Описание

public string GearmanClient::doHighBackground ( string $function_name , string $workload [, string $unique ] )

Запускает на выполнение с высоким приоритетом задачу в фоновом режиме, возвращая дескриптор задания, который может быть в дальнейшем использован для запроса состояния выполняющейся задачи. Задачи высокого приоритета имеют преимущество над нормальными и низкоприоритетными задачам в очереди заданий.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Дескриптор отправленной задачи.

Смотрите также

  • GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
  • GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
  • GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
  • GearmanClient::doBackground() - Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме


Получить дескриптор выполняющейся задачи

  • « GearmanClient::doHighBackground
  • GearmanClient::doLow »
  • PHP Manual
  • GearmanClient
  • Получить дескриптор выполняющейся задачи

GearmanClient::doJobHandle

(PECL gearman >= 0.5.0)

GearmanClient::doJobHandle — Получить дескриптор выполняющейся задачи

Описание

public string GearmanClient::doJobHandle ( void )

Получает дескриптор задания для выполняющейся задачи. Этот метод должен использоваться между повторным вызовами GearmanClient::doNormal(). Дескриптор задания может использоваться для получения информации о задаче.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Дескриптор задания для выполняющейся задачи.

Смотрите также

  • GearmanClient::jobStatus() - Получение статуса выполнения фонового задания


Запускает на выполнение задачу с низким приоритетом

  • « GearmanClient::doJobHandle
  • GearmanClient::doLowBackground »
  • PHP Manual
  • GearmanClient
  • Запускает на выполнение задачу с низким приоритетом

GearmanClient::doLow

(PECL gearman >= 0.5.0)

GearmanClient::doLow — Запускает на выполнение задачу с низким приоритетом

Описание

public string GearmanClient::doLow ( string $function_name , string $workload [, string $unique ] )

Запускает на выполнение задачу с низким приоритетом и возвращает строку, содержащую результат. Функция зависит от GearmanClient и GearmanWorker, поскольку необходимо обеспечить единый формат результата. Высокоприоритетные задачи имеют преимущество над нормальными и низкоприоритетными задачам в очереди заданий. Задачи нормального и высокого приоритета имеют преимущество над низкоприоритетными задачами в очереди заданий.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Строка, содержащая результат выполнения задачи.

Смотрите также

  • GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
  • GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
  • GearmanClient::doBackground() - Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
  • GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме


Запускает на выполнение с низким приоритетом задачу в фоновом режиме

  • « GearmanClient::doLow
  • GearmanClient::doNormal »
  • PHP Manual
  • GearmanClient
  • Запускает на выполнение с низким приоритетом задачу в фоновом режиме

GearmanClient::doLowBackground

(PECL gearman >= 0.5.0)

GearmanClient::doLowBackground — Запускает на выполнение с низким приоритетом задачу в фоновом режиме

Описание

public string GearmanClient::doLowBackground ( string $function_name , string $workload [, string $unique ] )

Запускает на выполнение с низким приоритетом задачу в фоновом режиме, возвращая дескриптор задания, который может быть использован для запроса состояния выполняющейся задачи. Задачи нормального и высокого приоритета имеют преимущество над низкоприоритетными задачам в очереди заданий.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Дескриптор отправленной задачи.

Смотрите также

  • GearmanClient::doNormal() - Выполняет одиночное задание и возвращает результат
  • GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
  • GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
  • GearmanClient::doBackground() - Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме


Выполняет одиночное задание и возвращает результат

  • « GearmanClient::doLowBackground
  • GearmanClient::doStatus »
  • PHP Manual
  • GearmanClient
  • Выполняет одиночное задание и возвращает результат

GearmanClient::doNormal

(Информация о версии неизвестна, возможно, только в SVN)

GearmanClient::doNormal — Выполняет одиночное задание и возвращает результат

Описание

public string GearmanClient::doNormal ( string $function_name , string $workload [, string $unique ] )

Выполняет одиночное задание и возвращает строковое представление результата. Формат возвращаемого результата определяют объекты GearmanClient и GearmanWorker.

Список параметров

function_name

Зарегистрированная функция, вызываемая рабочим процессом

workload

Сериализованные данные, подлежащие обработке

unique

Уникальный ID, назначаемый определенной задаче

Возвращаемые значения

Строка, представляющая результат выполнения задания.

Примеры

Пример #1 Выполнение простого задания с возвратом результата

<?php

?>
<?php

# Клиентский код

echo "Запуск\n";

# Создание клиента.
$gmclient= new GearmanClient();

# Добавление сервера по умолчанию (localhost).
$gmclient->addServer();

echo "Отправка задания\n";

$result = $gmclient->doNormal("reverse", "Hello!");

echo "Задание выполнено: $result\n";

?>
<?php

echo "Запуск\n";

# Создание объекта обработчика заданий.
$gmworker= new GearmanWorker();

# Добавление сервера по умолчанию (localhost).
$gmworker->addServer();

# Регистрация функции "reverse" на сервере. Замена обрабатывающей функции
# на "reverse_fn_fast" для быстрой обработки без вывода
$gmworker->addFunction("reverse", "reverse_fn");

print "Ожидание задания...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "Код возврата: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  return strrev($job->workload());
}

?>

Результатом выполнения данного примера будет что-то подобное:

Запуск
Отправка задания
Задание выполнено: !olleH

Пример #2 Отправка задания на обработку и мониторинг состояния

После отправки задания скрипт в цикле запрашивает текущий прогресс обработки. В обработчик введена искусственная задержка, чтобы сэмулировать долго выполняющееся задание. Обработчик посылает клиенту свое текущее состояние, как только завершена обработка очередной порции данных. Последовательные вызовы GearmanClient::doNormal() запрашивают текущее состояние выполняющегося задания.

<?php

# Клиентский код

# Создание клиента.
$gmclient= new GearmanClient();

# Добавление сервера по умолчанию (localhost).
$gmclient->addServer();

echo "Отправка задания\n";

# Отправка задания перевернуть строку
do
{
  $result = $gmclient->doNormal("reverse", "Hello!");
  # Проверка состояния на ошибки или возвращаемые данные.

  switch($gmclient->returnCode())
  {
    case GEARMAN_WORK_DATA:
      echo "Данные: $result\n";
      break;
    case GEARMAN_WORK_STATUS:
      list($numerator, $denominator)= $gmclient->doStatus();
      echo "Статус: $numerator/$denominator complete\n";
      break;
    case GEARMAN_WORK_FAIL:
      echo "Провал операции\n";
      exit;
    case GEARMAN_SUCCESS:
      break;
    default:
      echo "Код возврата: " . $gmclient->returnCode() . "\n";
      echo "Ошибка: " . $gmclient->error() . "\n";
      echo "Номер ошибки: " . $gmclient->getErrno() . "\n";
      exit;
  }
}
while($gmclient->returnCode() != GEARMAN_SUCCESS);

echo "Обработка завершена: $result\n";

?>
<?php

# Код обработчика

echo "Запуск\n";

# Создаем свой объект обработчика.
$gmworker= new GearmanWorker();

# Добавление сервера по умолчанию (localhost).
$gmworker->addServer();

# Регистрируем функцию "reverse" на сервере.
$gmworker->addFunction("reverse", "reverse_fn");

print "Ожидание задания...\n";
while($gmworker->work())
{
  if ($gmworker->returnCode() != GEARMAN_SUCCESS)
  {
    echo "Код возврата: " . $gmworker->returnCode() . "\n";
    break;
  }
}

function reverse_fn($job)
{
  echo "Получено задание: " . $job->handle() . "\n";

  $workload = $job->workload();
  $workload_size = $job->workloadSize();

  echo "Загружены данные: $workload ($workload_size)\n";

  # Этот цикл не является необходимым, просто показывает, как все работает
  for ($x= 0; $x < $workload_size; $x++)
  {
    echo "Отправка статуса: " + $x + 1 . "/$workload_size завершено\n";
    $job->sendStatus($x+1, $workload_size);
    $job->sendData(substr($workload, $x, 1));
    sleep(1);
  }

  $result= strrev($workload);
  echo "Результат: $result\n";

  # Возвращаем то, что хотим отправить клиенту
  return $result;
}

?>

Результатом выполнения данного примера будет что-то подобное:

Вывод обработчика:

Запуск
Ожидание задания...
Получено задание: H:foo.local:106
Загружены данные: Hello! (6)
1/6 завершено
2/6 завершено
3/6 завершено
4/6 завершено
5/6 завершено
6/6 завершено
Результат: !olleH

Вывод клиента:

Запуск
Отправка задания
Состояние: 1/6 завершено
Данные: H
Состояние: 2/6 завершено
Данные: e
Состояние: 3/6 завершено
Данные: l
Состояние: 4/6 завершено
Данные: l
Состояние: 5/6 завершено
Данные: o
Состояние: 6/6 завершено
Данные: !
Обработка завершена: !olleH

Смотрите также

  • GearmanClient::doHigh() - Запускает на выполнение задачу с высоким приоритетом
  • GearmanClient::doLow() - Запускает на выполнение задачу с низким приоритетом
  • GearmanClient::doBackground() - Запускает выполнение задачи в фоновом режиме
  • GearmanClient::doHighBackground() - Запускает на выполнение с высоким приоритетом задачу в фоновом режиме
  • GearmanClient::doLowBackground() - Запускает на выполнение с низким приоритетом задачу в фоновом режиме


Получение статуса обработки задания

  • « GearmanClient::doNormal
  • GearmanClient::echo »
  • PHP Manual
  • GearmanClient
  • Получение статуса обработки задания

GearmanClient::doStatus

(PECL gearman >= 0.5.0)

GearmanClient::doStatus — Получение статуса обработки задания

Описание

public array GearmanClient::doStatus ( void )

Возвращает статус обработки задания. Этот метод вызывается между повторяющимися вызовами 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 bool GearmanClient::echo ( string $workload )

Метод 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 string GearmanClient::error ( void )

Возвращает строку ошибки для последней встретившейся ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Удобочитаемая строка ошибки.

Смотрите также

  • GearmanClient::getErrno() - Получить значение errno


Получить значение errno

  • « GearmanClient::error
  • GearmanClient::jobStatus »
  • PHP Manual
  • GearmanClient
  • Получить значение errno

GearmanClient::getErrno

(PECL gearman >= 0.5.0)

GearmanClient::getErrno — Получить значение errno

Описание

public int GearmanClient::getErrno ( void )

Значение ERRNO в случае возвращаемого значения GEARMAN_ERRNO.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый Gearman errno.

Смотрите также

  • GearmanClient::error() - Вернуть строку ошибки для последней встретившейся ошибки


Получение статуса выполнения фонового задания

  • « GearmanClient::getErrno
  • GearmanClient::ping »
  • PHP Manual
  • GearmanClient
  • Получение статуса выполнения фонового задания

GearmanClient::jobStatus

gearman_job_status

(PECL gearman >= 0.5.0)

GearmanClient::jobStatus -- gearman_job_status — Получение статуса выполнения фонового задания

Описание

Объектно-ориентированный стиль (method):

public array GearmanClient::jobStatus ( string $job_handle )

Получает текущее состояние выполнения задания, запущенного в фоновом режиме. Информация о состоянии включает данные о том, что задание известно обработчику, выполняется ли задание в данный момент, а также процент обработанных данных.

Список параметров

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

(Информация о версии неизвестна, возможно, только в SVN)

GearmanClient::ping — Отправляет данные на все сервера и смотрит, какие из них выведут эти данные

Описание

public bool GearmanClient::ping ( string $workload )

Посылает данные на все сервера и определяет, какие из них выведут эти данные в выходной поток. Посылаемые данные никак не обрабатываются. Метод используется для тестирования и отладки.

Список параметров

workload

Данные, которые можно вывести в выходной поток.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Удалить клиентские опции

  • « GearmanClient::ping
  • GearmanClient::returnCode »
  • PHP Manual
  • GearmanClient
  • Удалить клиентские опции

GearmanClient::removeOptions

(PECL gearman >= 0.6.0)

GearmanClient::removeOptions — Удалить клиентские опции

Описание

public bool GearmanClient::removeOptions ( int $options )

Удаляет одну или несколько клиентских опций.

Список параметров

options

Опции, которые должны быть удалены.

Возвращаемые значения

Всегда возвращает TRUE.


Получить последний возвращённый код Gearman

  • « GearmanClient::removeOptions
  • GearmanClient::runTasks »
  • PHP Manual
  • GearmanClient
  • Получить последний возвращённый код Gearman

GearmanClient::returnCode

(PECL gearman >= 0.5.0)

GearmanClient::returnCode — Получить последний возвращённый код Gearman

Описание

public int GearmanClient::returnCode ( void )

Возвращает последний возвращённый код Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый возвращаемый код Gearman.


Запустить список задач в параллельном режиме

  • « GearmanClient::returnCode
  • GearmanClient::setClientCallback »
  • PHP Manual
  • GearmanClient
  • Запустить список задач в параллельном режиме

GearmanClient::runTasks

(PECL gearman >= 0.5.0)

GearmanClient::runTasks — Запустить список задач в параллельном режиме

Описание

public bool GearmanClient::runTasks ( void )

Для набора задач, ранее добавленных с помощью 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 void GearmanClient::setClientCallback ( callable $callback )

Устанавливает функцию обратного вызова для принятия пакетов данных для задачи. Функция обратного вызова должна принимать единственный параметр - объект GearmanTask.

Замечание:

Этот метод был заменён на GearmanClient::setDataCallback() в версии 0.6.0 расширения Gearman.

Список параметров

callback

Функция или метод, которые должны быть вызваны.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setExceptionCallback() - Задание функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось
  • 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 bool GearmanClient::setCompleteCallback ( callable $callback )

Используется для установки функции, которая будет вызвана, когда задача будет выполнена. Функция обратного вызова должна принимать единственный параметр - объект GearmanTask.

Список параметров

callback

Функция, которая должна быть вызвана.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Задание функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось
  • 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 bool GearmanClient::setContext ( string $context )

Устанавливает произвольную строку для предоставления контекста приложения, которая может быть позже получена с помощью GearmanClient::context().

Список параметров

context

Произвольные данные контекста

Возвращаемые значения

Всегда возвращает TRUE.

Смотрите также

  • GearmanClient::context() - Возвращает контекст приложения


Установить функцию обратного вызова, когда задача ставится в очередь

  • « GearmanClient::setContext
  • GearmanClient::setData »
  • PHP Manual
  • GearmanClient
  • Установить функцию обратного вызова, когда задача ставится в очередь

GearmanClient::setCreatedCallback

(PECL gearman >= 0.5.0)

GearmanClient::setCreatedCallback — Установить функцию обратного вызова, когда задача ставится в очередь

Описание

public bool GearmanClient::setCreatedCallback ( string $callback )

Устанавливает функцию, которая будет вызвана, когда задача получена и поставлена в очередь сервером задач Gearman. Функция обратного вызова должна принимать единственный параметр - объект GearmanTask.

Список параметров

callback

Функция, которая должна быть вызвана.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setExceptionCallback() - Задание функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось
  • 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 bool GearmanClient::setData ( string $data )

Устанавливает некоторые произвольные данные приложения, которые впоследствии могут быть извлечены 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 bool GearmanClient::setDataCallback ( callable $callback )

Задает callback-функцию, которая будет обрабатывать данные задания. Эта функция должна принимать один аргумент типа GearmanTask.

Список параметров

callback

Функция или метод для обратного вызова.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Задание функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось
  • 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 bool GearmanClient::setExceptionCallback ( callable $callback )

Задает функцию, которая будет вызываться, когда обработчик задания пошлет исключение.

Список параметров

callback

Функция для перехвата исключения, выброшенного обработчиком заданий.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setFailCallback() - Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Задание callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback() - Задание callback-функции принимающей промежуточные результаты от обработчика заданий


Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось

  • « GearmanClient::setExceptionCallback
  • GearmanClient::setOptions »
  • PHP Manual
  • GearmanClient
  • Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось

GearmanClient::setFailCallback

(PECL gearman >= 0.5.0)

GearmanClient::setFailCallback — Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось

Описание

public bool GearmanClient::setFailCallback ( callable $callback )

Задает функцию обратного вызова для обработки ситуации, когда задание выполнить не удалось. Принимает один аргумент типа GearmanTask.

Список параметров

callback

Функция обратного вызова.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Задание функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Задание callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback() - Задание callback-функции принимающей промежуточные результаты от обработчика заданий


Задание настроек клиента

  • « GearmanClient::setFailCallback
  • GearmanClient::setStatusCallback »
  • PHP Manual
  • GearmanClient
  • Задание настроек клиента

GearmanClient::setOptions

(PECL gearman >= 0.5.0)

GearmanClient::setOptions — Задание настроек клиента

Описание

public bool GearmanClient::setOptions ( int $options )

Устанавливает одну или несколько настроек клиента.

Список параметров

options

Задаваемые настройки

Возвращаемые значения

Всегда возвращает TRUE.


Задание callback-функции, собирающей информацию о состоянии обработчика заданий

  • « GearmanClient::setOptions
  • GearmanClient::setTimeout »
  • PHP Manual
  • GearmanClient
  • Задание callback-функции, собирающей информацию о состоянии обработчика заданий

GearmanClient::setStatusCallback

(PECL gearman >= 0.5.0)

GearmanClient::setStatusCallback — Задание callback-функции, собирающей информацию о состоянии обработчика заданий

Описание

public bool GearmanClient::setStatusCallback ( callable $callback )

Задает функцию обратного вызова, которая будет принимать и обрабатывать информацию о состоянии задания, передаваемую обработчиком заданий. Функция должна принимать один аргумент типа GearmanTask.

Список параметров

callback

Функция для обратного вызова

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Задание функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось
  • GearmanClient::setWarningCallback() - Задание callback-функции, обслуживающей предупреждения обработчика заданий
  • GearmanClient::setWorkloadCallback() - Задание callback-функции принимающей промежуточные результаты от обработчика заданий


Установка таймаута для операций ввода/вывода

  • « GearmanClient::setStatusCallback
  • GearmanClient::setWarningCallback »
  • PHP Manual
  • GearmanClient
  • Установка таймаута для операций ввода/вывода

GearmanClient::setTimeout

(PECL gearman >= 0.6.0)

GearmanClient::setTimeout — Установка таймаута для операций ввода/вывода

Описание

public bool GearmanClient::setTimeout ( int $timeout )

Устанавливает таймаут для операций ввода/вывода.

Список параметров

timeout

Временной интервал в миллисекундах

Возвращаемые значения

Всегда возвращает TRUE.


Задание callback-функции, обслуживающей предупреждения обработчика заданий

  • « GearmanClient::setTimeout
  • GearmanClient::setWorkloadCallback »
  • PHP Manual
  • GearmanClient
  • Задание callback-функции, обслуживающей предупреждения обработчика заданий

GearmanClient::setWarningCallback

(PECL gearman >= 0.5.0)

GearmanClient::setWarningCallback — Задание callback-функции, обслуживающей предупреждения обработчика заданий

Описание

public bool GearmanClient::setWarningCallback ( callable $callback )

Задает функцию, которая будет вызываться, когда обработчик заданий пришлет предупреждение. Функция должна принимать один аргумент типа GearmanTask.

Список параметров

callback

Функция для обратного вызова

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Задание функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось
  • 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 bool GearmanClient::setWorkloadCallback ( callable $callback )

Задает функцию, которая будет вызываться, когда обработчику задания необходимо передать промежуточные результаты клиенту до завершения всей обработки. Обработчику заданий может потребоваться такая пересылка, если нужно передать клиенту какие-либо обновления, частично отправить результаты обработки или освободить память во время выполнения долгих заданий. Функция должна принимать один аргумент типа GearmanTask.

Список параметров

callback

Функция для обратного вызова

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanClient::setDataCallback() - Задает callback-функцию для обработки переданных данных
  • GearmanClient::setCompleteCallback() - Установите функцию, которая будет вызвана по завершении задачи
  • GearmanClient::setCreatedCallback() - Установить функцию обратного вызова, когда задача ставится в очередь
  • GearmanClient::setExceptionCallback() - Задание функции обратного вызова для перехвата исключений обработчика заданий
  • GearmanClient::setFailCallback() - Задание функции обратного вызова для обработки ситуации, когда задание выполнить не удалось
  • GearmanClient::setStatusCallback() - Задание callback-функции, собирающей информацию о состоянии обработчика заданий
  • GearmanClient::setWarningCallback() - Задание callback-функции, обслуживающей предупреждения обработчика заданий


Получение значения таймаута операций ввода/вывода

  • « GearmanClient::setWorkloadCallback
  • GearmanJob »
  • PHP Manual
  • GearmanClient
  • Получение значения таймаута операций ввода/вывода

GearmanClient::timeout

(PECL gearman >= 0.6.0)

GearmanClient::timeout — Получение значения таймаута операций ввода/вывода

Описание

public int GearmanClient::timeout ( void )

Возвращает таймаут операций ввода/вывода в миллисекундах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Таймаут в миллисекундах. Отрицательное значение означает отсутствие ограничения.

Смотрите также

  • GearmanClient::setTimeout() - Установка таймаута для операций ввода/вывода


Класс GearmanJob

(PECL gearman >= 0.5.0)

Введение

Обзор классов

GearmanJob {
/* Методы */
public bool complete ( string $result )
public __construct ( void )
public bool data ( string $data )
public bool exception ( string $exception )
public bool fail ( void )
public string functionName ( void )
public string handle ( void )
public int returnCode ( void )
public bool sendComplete ( string $result )
public bool sendData ( string $data )
public bool sendException ( string $exception )
public bool sendFail ( void )
public bool sendStatus ( int $numerator , int $denominator )
public bool sendWarning ( string $warning )
public bool setReturn ( int $gearman_return_t )
public bool status ( int $numerator , int $denominator )
public string unique ( void )
public bool warning ( string $warning )
public string workload ( void )
public int workloadSize ( void )
}

Содержание

  • 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 bool GearmanJob::complete ( string $result )

Отправляет результаты обработки клиенту и обновляет статус работы на завершенный.

Замечание:

Этот метод был заменен на GearmanJob::sendComplete() в выпуске расширения Gearman 0.6.0.

Список параметров

result

Сериализованные результаты обработки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::sendFail() - Отправка статуса провала операции
  • GearmanJob::setReturn() - Установка возвращаемого значения


Создание объекта GearmanJob

  • « GearmanJob::complete
  • GearmanJob::data »
  • PHP Manual
  • GearmanJob
  • Создание объекта GearmanJob

GearmanJob::__construct

(PECL gearman >= 0.5.0)

GearmanJob::__construct — Создание объекта GearmanJob

Описание

public GearmanJob::__construct ( void )

Создает объект класса GearmanJob представляющий работу для обработчика.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект GearmanJob.


Отправка данных (устаревший метод)

  • « GearmanJob::__construct
  • GearmanJob::exception »
  • PHP Manual
  • GearmanJob
  • Отправка данных (устаревший метод)

GearmanJob::data

(PECL gearman <= 0.5.0)

GearmanJob::data — Отправка данных (устаревший метод)

Описание

public bool GearmanJob::data ( string $data )

Отправляет данные серверу заданий (и всем слушающим клиентам).

Замечание:

Этот метод был заменен на 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 bool GearmanJob::exception ( string $exception )

Посылает исключение, возникшее во время выполнения работы.

Замечание:

Этот метод был заменен на 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 bool GearmanJob::fail ( void )

Посылает сообщение о провале обработки, причем причина этого провала известна (в отличие от провала в результате возникновения исключительной ситуации).

Замечание:

Этот метод был заменен на 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 string GearmanJob::functionName ( void )

Возвращает имя функции, обрабатывающей данные, то есть функции, которая будет вызвана для выполнения работы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя функции.

Смотрите также

  • GearmanTask::function() - Получение имени функции (устаревший метод)


Получение описателя объекта "работы"

  • « GearmanJob::functionName
  • GearmanJob::returnCode »
  • PHP Manual
  • GearmanJob
  • Получение описателя объекта "работы"

GearmanJob::handle

(PECL gearman >= 0.5.0)

GearmanJob::handle — Получение описателя объекта "работы"

Описание

public string GearmanJob::handle ( void )

Возвращает дескриптор работы, присвоенный сервером.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описатель задания.

Смотрите также

  • GearmanTask::jobHandle() - Получение описателя работы для этого задания


Получение последнего кода возврата

  • « GearmanJob::handle
  • GearmanJob::sendComplete »
  • PHP Manual
  • GearmanJob
  • Получение последнего кода возврата

GearmanJob::returnCode

(PECL gearman >= 0.5.0)

GearmanJob::returnCode — Получение последнего кода возврата

Описание

public int GearmanJob::returnCode ( void )

Возвращает последний выданный сервером код возврата.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый в Gearman код возврата.

Смотрите также

  • GearmanTask::returnCode() - Получение последнего кода возврата


Отправка результата и статуса завершения

  • « GearmanJob::returnCode
  • GearmanJob::sendData »
  • PHP Manual
  • GearmanJob
  • Отправка результата и статуса завершения

GearmanJob::sendComplete

(PECL gearman >= 0.6.0)

GearmanJob::sendComplete — Отправка результата и статуса завершения

Описание

public bool GearmanJob::sendComplete ( string $result )

Отправляет результаты работы клиенту и обновляет статус объекта на завершенный.

Список параметров

result

Сериализованные результаты работы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::sendFail() - Отправка статуса провала операции
  • GearmanJob::setReturn() - Установка возвращаемого значения


Отправка данных

  • « GearmanJob::sendComplete
  • GearmanJob::sendException »
  • PHP Manual
  • GearmanJob
  • Отправка данных

GearmanJob::sendData

(PECL gearman >= 0.6.0)

GearmanJob::sendData — Отправка данных

Описание

public bool GearmanJob::sendData ( string $data )

Отправляет данные серверу заданий (и всем слушающим клиентам).

Список параметров

data

Сериализованные данные.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • GearmanJob::workload() - Получение данных для обработки
  • GearmanTask::data() - Получение данных из обработчика


Отправка исключения

  • « GearmanJob::sendData
  • GearmanJob::sendFail »
  • PHP Manual
  • GearmanJob
  • Отправка исключения

GearmanJob::sendException

(PECL gearman >= 0.6.0)

GearmanJob::sendException — Отправка исключения

Описание

public bool GearmanJob::sendException ( string $exception )

Посылает исключение, возникшее во время выполнения работы.

Список параметров

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 bool GearmanJob::sendFail ( void )

Посылает сообщение о провале обработки, причем причина этого провала известна (в отличие от провала в результате возникновения исключительной ситуации).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 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 bool GearmanJob::sendStatus ( int $numerator , int $denominator )

Посылает на сервер задач и всем слушающим клиентам статус текущей работы. С помощью этого метода можно узнать, какой процент задания выполнен.

Список параметров

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 bool GearmanJob::sendWarning ( string $warning )

Во время выполнения работы отправляет предупреждение.

Список параметров

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 bool GearmanJob::setReturn ( int $gearman_return_t )

Задает возвращаемое значение для текущей работы. Это значение поясняет, как завершилась обработка.

Список параметров

gearman_return_t

Допустимое в Gearman возвращаемое значение.

Возвращаемые значения

Описание...


Отправка статуса задания (устаревший метод)

  • « GearmanJob::setReturn
  • GearmanJob::unique »
  • PHP Manual
  • GearmanJob
  • Отправка статуса задания (устаревший метод)

GearmanJob::status

(PECL gearman <= 0.5.0)

GearmanJob::status — Отправка статуса задания (устаревший метод)

Описание

public bool GearmanJob::status ( int $numerator , int $denominator )

Посылает на сервер задач и всем слушающим клиентам статус текущей работы. С помощью этого метода можно узнать, какой процент задания выполнен.

Замечание:

Этот метод был заменен на 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 string GearmanJob::unique ( void )

Возвращает уникальный идентификатор объекта "работы", присвоенный клиентом.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Уникальный идентификатор.

Смотрите также

  • GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]
  • GearmanTask::uuid() - Получение уникального идентификатора задания (устаревший метод)


Отправка предупреждения (устаревший метод)

  • « GearmanJob::unique
  • GearmanJob::workload »
  • PHP Manual
  • GearmanJob
  • Отправка предупреждения (устаревший метод)

GearmanJob::warning

(PECL gearman <= 0.5.0)

GearmanJob::warning — Отправка предупреждения (устаревший метод)

Описание

public bool GearmanJob::warning ( string $warning )

Во время выполнения задания отправляет предупреждение.

Замечание:

Этот метод был заменен на 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 string GearmanJob::workload ( void )

Возвращает данные, переданные для обработки. Это сериализованные данные, с которыми будет работать обработчик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованные данные.

Смотрите также

  • GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]
  • GearmanJob::workloadSize() - Получение размера обрабатываемых данных


Получение размера обрабатываемых данных

  • « GearmanJob::workload
  • GearmanTask »
  • PHP Manual
  • GearmanJob
  • Получение размера обрабатываемых данных

GearmanJob::workloadSize

(PECL gearman >= 0.5.0)

GearmanJob::workloadSize — Получение размера обрабатываемых данных

Описание

public int GearmanJob::workloadSize ( void )

Возвращает размер данных, которые должен переработать обработчик заданий, в байтах.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Размер в байтах.

Смотрите также

  • GearmanJob::workload() - Получение данных для обработки


Класс GearmanTask

(PECL gearman >= 0.5.0)

Введение

Обзор классов

GearmanTask {
/* Методы */
public __construct ( void )
public GearmanTask create ( void )
public string data ( void )
public int dataSize ( void )
public string function ( void )
public string functionName ( void )
public bool isKnown ( void )
public bool isRunning ( void )
public string jobHandle ( void )
public array recvData ( int $data_len )
public int returnCode ( void )
public int sendData ( string $data )
public int sendWorkload ( string $data )
public int taskDenominator ( void )
public int taskNumerator ( void )
public string unique ( void )
public string uuid ( void )
}

Содержание

  • GearmanTask::__construct — Создает объект GearmanTask
  • GearmanTask::create — Создает задание (устаревший метод)
  • GearmanTask::data — Получение данных из обработчика
  • GearmanTask::dataSize — Получение размера возвращаемых данных
  • GearmanTask::function — Получение имени функции (устаревший метод)
  • GearmanTask::functionName — Получение имени функции
  • GearmanTask::isKnown — Определение, известно ли серверу об этом задании
  • GearmanTask::isRunning — Проверяет, выполняется ли задание в данный момент
  • GearmanTask::jobHandle — Получение описателя работы для этого задания
  • GearmanTask::recvData — Чтение рабочих или результирующих данных задания в буфер
  • GearmanTask::returnCode — Получение последнего кода возврата
  • GearmanTask::sendData — Отправка данных задания (устаревший метод)
  • GearmanTask::sendWorkload — Отправка данных задания
  • GearmanTask::taskDenominator — Получение знаменателя в дроби, отвечающей за процент выполненной работы
  • GearmanTask::taskNumerator — Получение числителя дроби, отвечающей за процент выполненной работы
  • GearmanTask::unique — Получение уникального идентификатора задания
  • GearmanTask::uuid — Получение уникального идентификатора задания (устаревший метод)


Создает объект GearmanTask

  • « GearmanTask
  • GearmanTask::create »
  • PHP Manual
  • GearmanTask
  • Создает объект GearmanTask

GearmanTask::__construct

(PECL gearman >= 0.5.0)

GearmanTask::__construct — Создает объект GearmanTask

Описание

public GearmanTask::__construct ( void )

Создает объект GearmanTask представляющий задание на обработку, которое в дальнейшем будет отправлено на сервер.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса GearmanTask.


Создает задание (устаревший метод)

  • « GearmanTask::__construct
  • GearmanTask::data »
  • PHP Manual
  • GearmanTask
  • Создает задание (устаревший метод)

GearmanTask::create

(PECL gearman <= 0.5.0)

GearmanTask::create — Создает задание (устаревший метод)

Описание

public GearmanTask GearmanTask::create ( void )

Возвращает новый объект класса GearmanTask.

Замечание:

Этот метод был удален в версии 0.6.0 расширения Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса GearmanTask или FALSE в случае возникновения ошибки.


Получение данных из обработчика

  • « GearmanTask::create
  • GearmanTask::dataSize »
  • PHP Manual
  • GearmanTask
  • Получение данных из обработчика

GearmanTask::data

(PECL gearman >= 0.5.0)

GearmanTask::data — Получение данных из обработчика

Описание

public string GearmanTask::data ( void )

Получает данные, которые обработчик вернул по завершении работы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сериализованные данные или FALSE, если обработчик не предоставил данных.

Смотрите также

  • GearmanTask::dataSize() - Получение размера возвращаемых данных


Получение размера возвращаемых данных

  • « GearmanTask::data
  • GearmanTask::function »
  • PHP Manual
  • GearmanTask
  • Получение размера возвращаемых данных

GearmanTask::dataSize

(PECL gearman >= 0.5.0)

GearmanTask::dataSize — Получение размера возвращаемых данных

Описание

public int GearmanTask::dataSize ( void )

Возвращает размер данных, которые выдал обработчик.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Размер данных или FALSE, если данных предоставлено не было.

Смотрите также

  • GearmanTask::data() - Получение данных из обработчика


Получение имени функции (устаревший метод)

  • « GearmanTask::dataSize
  • GearmanTask::functionName »
  • PHP Manual
  • GearmanTask
  • Получение имени функции (устаревший метод)

GearmanTask::function

(PECL gearman <= 0.5.0)

GearmanTask::function — Получение имени функции (устаревший метод)

Описание

public string GearmanTask::function ( void )

Возвращает имя функции, с которой ассоциировано задание. Эту функцию вызывает обработчик в процессе работы с данными.

Замечание:

Этот метод был заменен на GearmanTask::functionName() в версии 0.6.0 расширения Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя функции.


Получение имени функции

  • « GearmanTask::function
  • GearmanTask::isKnown »
  • PHP Manual
  • GearmanTask
  • Получение имени функции

GearmanTask::functionName

(PECL gearman >= 0.6.0)

GearmanTask::functionName — Получение имени функции

Описание

public string GearmanTask::functionName ( void )

Возвращает имя функции, с которой ассоциировано задание. Эту функцию вызывает обработчик в процессе работы с данными.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя функции.


Определение, известно ли серверу об этом задании

  • « GearmanTask::functionName
  • GearmanTask::isRunning »
  • PHP Manual
  • GearmanTask
  • Определение, известно ли серверу об этом задании

GearmanTask::isKnown

(PECL gearman >= 0.5.0)

GearmanTask::isKnown — Определение, известно ли серверу об этом задании

Описание

public bool GearmanTask::isKnown ( void )

Определяет, известно ли серверу задач об этом задании.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если задание известно, FALSE в противном случае.


Проверяет, выполняется ли задание в данный момент

  • « GearmanTask::isKnown
  • GearmanTask::jobHandle »
  • PHP Manual
  • GearmanTask
  • Проверяет, выполняется ли задание в данный момент

GearmanTask::isRunning

(PECL gearman >= 0.5.0)

GearmanTask::isRunning — Проверяет, выполняется ли задание в данный момент

Описание

public bool GearmanTask::isRunning ( void )

Указывает, выполняется сейчас задание или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

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 string GearmanTask::jobHandle ( void )

Возвращает дескриптор работы для этого задания.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Описатель объекта работы.

Смотрите также

  • GearmanClient::doJobHandle() - Получить дескриптор выполняющейся задачи


Чтение рабочих или результирующих данных задания в буфер

  • « GearmanTask::jobHandle
  • GearmanTask::returnCode »
  • PHP Manual
  • GearmanTask
  • Чтение рабочих или результирующих данных задания в буфер

GearmanTask::recvData

(PECL gearman >= 0.5.0)

GearmanTask::recvData — Чтение рабочих или результирующих данных задания в буфер

Описание

public array GearmanTask::recvData ( int $data_len )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

data_len

Размер данных.

Возвращаемые значения

Массив, в котором первый элемент отвечает за размер прочитанных данных, а второй за сами буферизованные данные. В случае провала операции метод вернет FALSE.

Смотрите также

  • GearmanTask::sendData() - Отправка данных задания (устаревший метод)


Получение последнего кода возврата

  • « GearmanTask::recvData
  • GearmanTask::sendData »
  • PHP Manual
  • GearmanTask
  • Получение последнего кода возврата

GearmanTask::returnCode

(PECL gearman >= 0.5.0)

GearmanTask::returnCode — Получение последнего кода возврата

Описание

public int GearmanTask::returnCode ( void )

Возвращает последний код возврата для этого задания.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый в Gearman код возврата.

Смотрите также

  • GearmanClient::returnCode() - Получить последний возвращённый код Gearman


Отправка данных задания (устаревший метод)

  • « GearmanTask::returnCode
  • GearmanTask::sendWorkload »
  • PHP Manual
  • GearmanTask
  • Отправка данных задания (устаревший метод)

GearmanTask::sendData

(PECL gearman <= 0.5.0)

GearmanTask::sendData — Отправка данных задания (устаревший метод)

Описание

public int GearmanTask::sendData ( string $data )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

data

Передаваемые обработчику данные.

Возвращаемые значения

Размер переданных данных или FALSE в случае провала операции.

Смотрите также

  • GearmanTask::recvData() - Чтение рабочих или результирующих данных задания в буфер


Отправка данных задания

  • « GearmanTask::sendData
  • GearmanTask::taskDenominator »
  • PHP Manual
  • GearmanTask
  • Отправка данных задания

GearmanTask::sendWorkload

(PECL gearman >= 0.6.0)

GearmanTask::sendWorkload — Отправка данных задания

Описание

public int GearmanTask::sendWorkload ( string $data )

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

data

Передаваемые обработчику данные.

Возвращаемые значения

Размер переданных данных или FALSE в случае провала операции.

Смотрите также

  • GearmanTask::recvData() - Чтение рабочих или результирующих данных задания в буфер


Получение знаменателя в дроби, отвечающей за процент выполненной работы

  • « GearmanTask::sendWorkload
  • GearmanTask::taskNumerator »
  • PHP Manual
  • GearmanTask
  • Получение знаменателя в дроби, отвечающей за процент выполненной работы

GearmanTask::taskDenominator

(PECL gearman >= 0.5.0)

GearmanTask::taskDenominator — Получение знаменателя в дроби, отвечающей за процент выполненной работы

Описание

public int GearmanTask::taskDenominator ( void )

Получает знаменатель дроби, который используется для определения процента выполненной работы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число от 0 до 100 или FALSE, если определить значение не удалось.

Смотрите также

  • GearmanTask::taskNumerator() - Получение числителя дроби, отвечающей за процент выполненной работы


Получение числителя дроби, отвечающей за процент выполненной работы

  • « GearmanTask::taskDenominator
  • GearmanTask::unique »
  • PHP Manual
  • GearmanTask
  • Получение числителя дроби, отвечающей за процент выполненной работы

GearmanTask::taskNumerator

(PECL gearman >= 0.5.0)

GearmanTask::taskNumerator — Получение числителя дроби, отвечающей за процент выполненной работы

Описание

public int GearmanTask::taskNumerator ( void )

Возвращает числитель дроби, которая используется для вычисления процента выполненной работы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число от 0 до 100 или FALSE, если значение определить не удалось.

Смотрите также

  • GearmanTask::taskDenominator() - Получение знаменателя в дроби, отвечающей за процент выполненной работы


Получение уникального идентификатора задания

  • « GearmanTask::taskNumerator
  • GearmanTask::uuid »
  • PHP Manual
  • GearmanTask
  • Получение уникального идентификатора задания

GearmanTask::unique

(PECL gearman >= 0.6.0)

GearmanTask::unique — Получение уникального идентификатора задания

Описание

public string GearmanTask::unique ( void )

Возвращает уникальный идентификатор этого задания. Этот идентификатор присваивает GearmanClient, в отличие от идентификатора объекта "работы", который присваивает сервер задач.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Уникальный идентификатор или FALSE, если никакого идентификатора не присвоено.

Смотрите также

  • GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]
  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме


Получение уникального идентификатора задания (устаревший метод)

  • « GearmanTask::unique
  • GearmanWorker »
  • PHP Manual
  • GearmanTask
  • Получение уникального идентификатора задания (устаревший метод)

GearmanTask::uuid

(PECL gearman <= 0.5.0)

GearmanTask::uuid — Получение уникального идентификатора задания (устаревший метод)

Описание

public string GearmanTask::uuid ( void )

Возвращает уникальный идентификатор этого задания. Этот идентификатор присваивает GearmanClient, в отличие от идентификатора объекта "работы", который присваивает сервер задач.

Замечание:

Этот метод был заменен на GearmanTask::unique() в версии 0.6.0 расширения Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Уникальный идентификатор или FALSE, если никакого идентификатора не присвоено.

Смотрите также

  • GearmanClient::do() - Выполняет одну задачу и возвращает результат [Устаревший метод]
  • GearmanClient::addTask() - Добавить задачу, которая будет выполнена в параллельном режиме


Класс GearmanWorker

(PECL gearman >= 0.5.0)

Введение

Обзор классов

GearmanWorker {
/* Методы */
public bool addFunction ( string $function_name , callable $function [, mixed &$context [, int $timeout ]] )
public bool addOptions ( int $option )
public bool addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )
public bool addServers ( string $servers = 127.0.0.1:4730 )
public void clone ( void )
public __construct ( void )
public bool echo ( string $workload )
public string error ( void )
public int getErrno ( void )
public int options ( void )
public bool register ( string $function_name [, int $timeout ] )
public bool removeOptions ( int $option )
public int returnCode ( void )
public bool setId ( string $id )
public bool setOptions ( int $option )
public bool setTimeout ( int $timeout )
public int timeout ( void )
public bool unregister ( string $function_name )
public bool unregisterAll ( void )
public bool wait ( void )
public bool work ( void )
}

Содержание

  • 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 bool GearmanWorker::addFunction ( string $function_name , callable $function [, mixed &$context [, int $timeout ]] )

Регистрирует имя функции на сервере заданий и добавляет ссылку на эту функцию для обратного вызова. Дополнительно можно задать контекст, который будет использоваться во время обратного вызова, и таймаут.

Список параметров

function_name

Имя функции, которое необходимо зарегистрировать на сервере.

function

Функция, которая будет вызываться, когда сервер получит работу для зарегистрированного имени.

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 bool GearmanWorker::addOptions ( int $option )

Добавляет одну или несколько настроек к заданным ранее.

Список параметров

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 bool GearmanWorker::addServer ([ string $host = 127.0.0.1 [, int $port = 4730 ]] )

Добавляет сервер заданий в обработчик. Обработчик хранит список серверов, от которых он может получать задания на обработку. Метод просто добавляет информацию о сервере в этот список, никакого обмена данными между сервером и обработчиком в этот момент не происходит.

Список параметров

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 bool GearmanWorker::addServers ( string $servers = 127.0.0.1:4730 )

Добавляет один или несколько серверов задач в обработчик. Обработчик хранит список серверов, от которых он может получать задания на обработку. Метод просто добавляет информацию о серверах в этот список, никакого обмена данными между сервером и обработчиком в этот момент не происходит.

Список параметров

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 void 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 ( void )

Создает объект GearmanWorker представляющий обработчик, который подключается к серверу задач и выполняет полученное от сервера задание.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса GearmanWorker.

Смотрите также

  • GearmanWorker::clone() - Создание копии обработчика


Проверка отклика серверов заданий

  • « GearmanWorker::__construct
  • GearmanWorker::error »
  • PHP Manual
  • GearmanWorker
  • Проверка отклика серверов заданий

GearmanWorker::echo

(PECL gearman >= 0.6.0)

GearmanWorker::echo — Проверка отклика серверов заданий

Описание

public bool GearmanWorker::echo ( string $workload )

Посылает данные всем серверам задач и смотрит, какие из серверов ответят. Это отладочная функция, для проверки отклика серверов.

Список параметров

workload

Какие-либо сериализованные данные

Возвращаемые значения

Стандартное для Gearman возвращаемое значение.

Смотрите также

  • GearmanClient::echo() - Отправляет данные всем серверам заданий, чтобы проверить отклик [Устаревший метод]


Получение последней обнаруженной ошибки

  • « GearmanWorker::echo
  • GearmanWorker::getErrno »
  • PHP Manual
  • GearmanWorker
  • Получение последней обнаруженной ошибки

GearmanWorker::error

(PECL gearman >= 0.5.0)

GearmanWorker::error — Получение последней обнаруженной ошибки

Описание

public string GearmanWorker::error ( void )

Возвращает строку с сообщением о последней обнаруженной ошибке.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка с описанием ошибки.

Смотрите также

  • GearmanWorker::getErrno() - Получение номера ошибки


Получение номера ошибки

  • « GearmanWorker::error
  • GearmanWorker::options »
  • PHP Manual
  • GearmanWorker
  • Получение номера ошибки

GearmanWorker::getErrno

(PECL gearman >= 0.5.0)

GearmanWorker::getErrno — Получение номера ошибки

Описание

public int GearmanWorker::getErrno ( void )

Возвращает номер ошибки, когда какой-либо метод вернул значение GEARMAN_ERRNO.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый номер ошибки.

Смотрите также

  • GearmanWorker::error() - Получение последней обнаруженной ошибки


Получение настроек обработчика

  • « GearmanWorker::getErrno
  • GearmanWorker::register »
  • PHP Manual
  • GearmanWorker
  • Получение настроек обработчика

GearmanWorker::options

(PECL gearman >= 0.6.0)

GearmanWorker::options — Получение настроек обработчика

Описание

public int GearmanWorker::options ( void )

Получает настройки обработчика, заданные ранее.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущие настройки обработчика.

Смотрите также

  • GearmanWorker::setOptions() - Задание настроек обработчика


Регистрация функции на сервере заданий

  • « GearmanWorker::options
  • GearmanWorker::removeOptions »
  • PHP Manual
  • GearmanWorker
  • Регистрация функции на сервере заданий

GearmanWorker::register

(PECL gearman >= 0.6.0)

GearmanWorker::register — Регистрация функции на сервере заданий

Описание

public bool GearmanWorker::register ( string $function_name [, int $timeout ] )

Регистрирует имя функции на сервере заданий и дополнительно задает таймаут. Таймаут определяет, сколько секунд сервер будет ждать, после чего объявит задание проваленным. Нулевое значение таймаута означает отсутствие ограничения.

Список параметров

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 bool GearmanWorker::removeOptions ( int $option )

Удаляет одну или несколько настроек обработчика.

Список параметров

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 int GearmanWorker::returnCode ( void )

Извлекает последний код возврата Gearman.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Допустимый возвращаемый код Gearman.

Смотрите также

  • GearmanWorker::error() - Получение последней обнаруженной ошибки
  • GearmanWorker::getErrno() - Получение номера ошибки


Назначает обработчику идентификатор, чтобы в дальнейшем иметь возможность опросить все доступные обработчики

  • « GearmanWorker::returnCode
  • GearmanWorker::setOptions »
  • PHP Manual
  • GearmanWorker
  • Назначает обработчику идентификатор, чтобы в дальнейшем иметь возможность опросить все доступные обработчики

GearmanWorker::setId

(Информация о версии неизвестна, возможно, только в SVN)

GearmanWorker::setId — Назначает обработчику идентификатор, чтобы в дальнейшем иметь возможность опросить все доступные обработчики

Описание

public bool GearmanWorker::setId ( string $id )

Назначает обработчику идентификатор.

Список параметров

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 bool GearmanWorker::setOptions ( int $option )

Устанавливает значения одной или нескольких настроек.

Список параметров

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 bool GearmanWorker::setTimeout ( int $timeout )

Устанавливает таймаут ожидания активности на сокете.

Список параметров

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)
  {
    # Normally one would want to do something useful here ...
    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 int GearmanWorker::timeout ( void )

Возвращает текущее значение таймаута, то есть время, в течение которого обработчик ожидает запрос от сервера заданий.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Временной интервал в миллисекундах. Отрицательное значение указывает на бесконечный таймаут.

Смотрите также

  • GearmanWorker::setTimeout() - Задание таймаута ожидания ввода/вывода на сокете


Удалить регистрацию имени функции на всех серверах заданий

  • « GearmanWorker::timeout
  • GearmanWorker::unregisterAll »
  • PHP Manual
  • GearmanWorker
  • Удалить регистрацию имени функции на всех серверах заданий

GearmanWorker::unregister

(PECL gearman >= 0.6.0)

GearmanWorker::unregister — Удалить регистрацию имени функции на всех серверах заданий

Описание

public bool GearmanWorker::unregister ( string $function_name )

Снимает регистрацию имени функции на всех серверах заданий. Это значит, что этому обработчику (этой функции) задания посылаться больше не будут.

Список параметров

function_name

Имя функции, регистрацию которой требуется снять.

Возвращаемые значения

Стандартное возвращаемое значение Gearman.

Смотрите также

  • GearmanWorker::register() - Регистрация функции на сервере заданий
  • GearmanWorker::unregisterAll() - Удаление регистрации всех имен функций на серверах заданий


Удаление регистрации всех имен функций на серверах заданий

  • « GearmanWorker::unregister
  • GearmanWorker::wait »
  • PHP Manual
  • GearmanWorker
  • Удаление регистрации всех имен функций на серверах заданий

GearmanWorker::unregisterAll

(PECL gearman >= 0.6.0)

GearmanWorker::unregisterAll — Удаление регистрации всех имен функций на серверах заданий

Описание

public bool GearmanWorker::unregisterAll ( void )

Снимает регистрацию всех ранее зарегистрированных функций на всех серверах заданий. Это значит, что этому обработчику больше не будут поступать никакие задачи.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Стандартное возвращаемое значение Gearman.

Смотрите также

  • GearmanWorker::register() - Регистрация функции на сервере заданий
  • GearmanWorker::unregister() - Удалить регистрацию имени функции на всех серверах заданий


Ожидание запроса от какого-либо сервера задач

  • « GearmanWorker::unregisterAll
  • GearmanWorker::work »
  • PHP Manual
  • GearmanWorker
  • Ожидание запроса от какого-либо сервера задач

GearmanWorker::wait

(PECL gearman >= 0.6.0)

GearmanWorker::wait — Ожидание запроса от какого-либо сервера задач

Описание

public bool GearmanWorker::wait ( void )

При работе в неблокирующем режиме ввода/вывода заставляет обработчика ожидать задания от какого-либо сервера заданий Gearman. В случае отказа будет выдано предупреждение E_WARNING с указанием последней произошедшей ошибки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Запуск обработчика в неблокирующем режиме

<?php

echo "Запуск\n";

# создание объекта обработчика
$worker= new GearmanWorker();

# включение неблокирующего режима
$worker->addOptions(GEARMAN_WORKER_NON_BLOCKING);

# добавление сервера по умолчанию (localhost, port 4730)
$worker->addServer();

# добавление функции обратного вызова
$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 bool GearmanWorker::work ( void )

Ждет от сервера задание, а затем вызывает соответствующую callback-функцию для его обработки. Вызывает ошибку уровня E_WARNING с информацией о последней ошибке Gearman в случаях, когда код возврата функции отличается от GEARMAN_SUCCESS, GEARMAN_IO_WAIT и GEARMAN_WORK_FAIL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования GearmanWorker::work()

<?php

# создаем обработчик
$worker = new GearmanWorker();

# добавляем сервер заданий по умолчанию (localhost)
$worker->addServer();

# добавляем функцию обратного вызова
$worker->addFunction("reverse", "my_reverse_function");

# запускаем обработчик, ожидающий заданий от сервера
while ($worker->work());

function my_reverse_function($job)
{
  return strrev($job->workload());
}

?>

Смотрите также

  • GearmanWorker::addFunction() - Регистрация и добавление callback-функции


Класс GearmanException

(PECL gearman >= 0.5.0)

Введение

Обзор классов

GearmanException extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Net Gopher

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Basic Example
  • Gopher Функции
    • gopher_parsedir — Преобразует директорию в формате gopher в ассоциативный массив


Введение

The gopher protocol, as defined by » RFC 1436, is generally considered the ancestor of the modern HTTP protocol. However, gopher was also intended to provide references to non-gopher resources including telnet, wais, nntp, and even http. This extension adds gopher support to PHP's URL Wrappers, and provides a helper function gopher_parsedir() to make sense of gopher formatted directory listings.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/net_gopher


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Net_Gopher constants
Constant | Value | Description
GOPHER_DOCUMENT | 0 | Standard text/plain document.
GOPHER_DIRECTORY | 1 | A resource containing a gopher formatted directory listing.
GOPHER_BINHEX | 4 | A BinHex encoded binary file.
GOPHER_DOSBINARY | 5 | A DOS formatted binary archive.
GOPHER_UUENCODED | 6 | A UUEncoded file.
GOPHER_BINARY | 9 | A generic binary file.
GOPHER_INFO | 255 | An Informational entry
GOPHER_HTTP | 254 | A reference to an HTTP resource.
GOPHER_UNKNOWN | -1 | An unrecognized entry.


  • « Предопределенные константы
  • Basic Example »
  • PHP Manual
  • Gopher
  • Примеры

Примеры

Содержание

  • Basic Example


  • « Примеры
  • Gopher Функции »
  • PHP Manual
  • Примеры
  • Basic Example

Basic Example

<?php
readfile("gopher://gopher.example.com/somedocument");
?>


Gopher Функции

Содержание

  • gopher_parsedir — Преобразует директорию в формате gopher в ассоциативный массив


Преобразует директорию в формате gopher в ассоциативный массив

  • « Gopher Функции
  • Gupnp »
  • PHP Manual
  • Gopher Функции
  • Преобразует директорию в формате gopher в ассоциативный массив

gopher_parsedir

(PECL net_gopher >= 0.1)

gopher_parsedir — Преобразует директорию в формате gopher в ассоциативный массив

Описание

array gopher_parsedir ( string $dirent )

gopher_parsedir() разбирает директорию в формате gopher в ассоциативный массив.

В то время как gopher возвращает text/plain документы для обычного запроса. При запросе директории (например /) возвращается специальным образом кодированный набор строк, каждая из которых является является одной записью директории или информационной строкой.

Список параметров

dirent

Запись директории.

Возвращаемые значения

Возвращает ассоциативный массив со следующими записями:

  • type - одна из констант GOPHER_XXX.
  • title - имя ресурса.
  • path - путь ресурса.
  • host - доменное имя хоста, содержащего данный документ (или директорию).
  • port - порт, по которому установлено соединение с host.

В случае неудачи, дополнительная запись data в возвращенном массиве будет содержать разбираемую строку.

Примеры

Пример #1 Гипететический вывод с gopher://gopher.example.com/

0All about my gopher site.               /allabout.txt               gopher.example.com    70
9A picture of my cat.                    /pics/cat.png               gopher.example.com    70
1A collection of my writings.            /stories                    gopher.example.com    70
hThe HTTP version of this site.          URL:http://www.example.com  gopher.example.com    70
1Mirror of this site in Spain.           /                           gopher.ejemplo.co.es  70
iWelcome to my gopher site.                                          error.host            1
iPlease select one of the options above                              error.host            1
iSend complaints to /dev/null                                        error.host            1
iLong live gopher!                                                   error.host            1

IВ примере выше, корневая директория на gopher.example.com знает об одном DOCUMENT с идентификатором 0 расположенном по адресу gopher://gopher.example.com:70/allabout.txt. Также она она знает о двух других директориях gopher://gopher.exmaple.com:70/stories и gopher://gopher.ejemplo.co.es:70/. В дополнение тут есть бинарный файл, ссылка на HTTP URL и несколько информационных строк.

Передавая каждую строку вывода в функцию gopher_parsedir(), мы получим ассоциативный массив, содержащий разобранные данные.

Пример #2 Использование gopher_parsedir()

<?php
$directory = file("gopher://gopher.example.com");

foreach($directory as $dirent) {
    print_r(gopher_parsedir($dirent));
}
?>

Результат выполнения данного примера:

Array (
  [type] => 0
  [title] => All about my gopher site.
  [path] => /allabout.txt
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 9
  [title] => A picture of my cat.
  [path] => /pics/cat.png
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => A collection of my writings.
  [path] => /stories
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 254
  [title] => The HTTP version of this site.
  [path] => URL:http://www.example.com
  [host] => gopher.example.com
  [port] => 70
)
Array (
  [type] => 1
  [title] => Mirror of this site in Spain.
  [path] => /
  [host] => gopher.ejemplo.co.es
  [port] => 70
)
Array (
  [type] => 255
  [title] => Welcome to my gopher site.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Please select one of the options above.
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Send complaints to /dev/null
  [path] =>
  [host] => error.host
  [port] => 1
)
Array (
  [type] => 255
  [title] => Long live gopher!
  [path] =>
  [host] => error.host
  [port] => 1
)


Gupnp

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Browsing devices and services
    • Implementing the BinaryLight device
  • Gupnp Функции
    • gupnp_context_get_host_ip — Get the IP address
    • gupnp_context_get_port — Get the port
    • gupnp_context_get_subscription_timeout — Get the event subscription timeout
    • gupnp_context_host_path — Start hosting
    • gupnp_context_new — Create a new context
    • gupnp_context_set_subscription_timeout — Sets the event subscription timeout
    • gupnp_context_timeout_add — Sets a function to be called at regular intervals
    • gupnp_context_unhost_path — Stop hosting
    • gupnp_control_point_browse_start — Start browsing
    • gupnp_control_point_browse_stop — Stop browsing
    • gupnp_control_point_callback_set — Set control point callback
    • gupnp_control_point_new — Create a new control point
    • gupnp_device_action_callback_set — Set device callback function
    • gupnp_device_info_get_service — Get the service with type
    • gupnp_device_info_get — Get info of root device
    • gupnp_root_device_get_available — Check whether root device is available
    • gupnp_root_device_get_relative_location — Get the relative location of root device.
    • gupnp_root_device_new — Create a new root device
    • gupnp_root_device_set_available — Set whether or not root_device is available
    • gupnp_root_device_start — Start main loop
    • gupnp_root_device_stop — Stop main loop
    • gupnp_service_action_get — Retrieves the specified action arguments
    • gupnp_service_action_return_error — Return error code
    • gupnp_service_action_return — Return successfully
    • gupnp_service_action_set — Sets the specified action return values
    • gupnp_service_freeze_notify — Freeze new notifications
    • gupnp_service_info_get_introspection — Get resource introspection of service
    • gupnp_service_info_get — Get full info of service
    • gupnp_service_introspection_get_state_variable — Returns the state variable data
    • gupnp_service_notify — Notifies listening clients
    • gupnp_service_proxy_action_get — Send action to the service and get value
    • gupnp_service_proxy_action_set — Send action to the service and set value
    • gupnp_service_proxy_add_notify — Sets up callback for variable change notification
    • gupnp_service_proxy_callback_set — Set service proxy callback for signal
    • gupnp_service_proxy_get_subscribed — Check whether subscription is valid to the service
    • gupnp_service_proxy_remove_notify — Cancels the variable change notification
    • gupnp_service_proxy_send_action — Send action with multiple parameters synchronously
    • gupnp_service_proxy_set_subscribed — (Un)subscribes to the service.
    • gupnp_service_thaw_notify — Sends out any pending notifications and stops queuing of new ones.


Введение

GUPnP is an object-oriented open source framework for creating UPnP devices and control points, written in C using GObject and libsoup. This extension wraps GUPnP and provides similar API. All sources and additional documentation can be obtained from the » official site


Требования

In order to use PECL/Gupnp functions you need to install the » gUPnP library version 0.12.7 or greater. It also requires glib-2.0, gssdp-1.0, libsoup-2.4 or greater for all of them.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/gupnp

Замечание: If ./configure is having trouble finding the libgupnp files (for example, it was installed into a custom prefix directory), use ./configure --with-gupnp=$PREFIX, where $PREFIX is installation prefix of libgupnp.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

GUPNP_TYPE_BOOLEAN (integer)
GUPNP_TYPE_INT (integer)
GUPNP_TYPE_LONG (integer)
GUPNP_TYPE_DOUBLE (integer)
GUPNP_TYPE_FLOAT (integer)
GUPNP_TYPE_STRING (integer)
GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE (integer)
GUPNP_SIGNAL_DEVICE_PROXY_UNAVAILABLE (integer)
GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE (integer)
GUPNP_SIGNAL_SERVICE_PROXY_UNAVAILABLE (integer)
GUPNP_SIGNAL_ACTION_INVOKED (integer)
GUPNP_SIGNAL_NOTIFY_FAILED (integer)
GUPNP_SIGNAL_SUBSCRIPTION_LOST (integer)
GUPNP_CONTROL_ERROR_INVALID_ACTION (integer)
GUPNP_CONTROL_ERROR_INVALID_ARGS (integer)
GUPNP_CONTROL_ERROR_OUT_OF_SYNC (integer)
GUPNP_CONTROL_ERROR_ACTION_FAILED (integer)


  • « Предопределенные константы
  • Browsing devices and services »
  • PHP Manual
  • Gupnp
  • Примеры

Примеры

Содержание

  • Browsing devices and services
  • Implementing the BinaryLight device


Browsing devices and services

This example shows how to obtain information about all devices and services. It starts an infinite loop (use CLI), and if any of available devices or services are found, the proper callback function will be invoked.

Пример #1 Search for all UPnP devices and services.

<?php

/* Callback for available device */
function device_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_device_info_get($proxy);

    $type = $info['device_type'];
    $location = $info['location'];

    printf("Device available:\n");
    printf("\ttype:     %s\n", $type);
    printf("\tlocation: %s\n", $location);
}

/* Callback for available service */
function service_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_service_info_get($proxy);

    $type = $info['service_type'];
    $location = $info['location'];

    printf("Service available:\n");
    printf("\ttype:     %s\n", $type);
    printf("\tlocation: %s\n", $location);
}

/* Create the UPnP context */
$context = gupnp_context_new();
if (!$context) {
    printf("Error creating the GUPnP context\n");
    exit(-1);
}

/* We're interested in everything */
$cp = gupnp_control_point_new($context, "ssdp:all");

/* Set callbacks */
gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE, 'device_proxy_available_cb');
gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE, 'service_proxy_available_cb');

/* Start for browsing (infinite loop, hit Ctrl-C to interrupt) */
gupnp_control_point_browse_start($cp);

?>


Implementing the BinaryLight device

This is an example of UPnP device/service, implementing the BinaryLight device and SwitchPower services to emulate a light switch.

The user interface was purposely simplified in order to show basic concepts and methods.

Пример #1 Implementing light server

<?php

/* SetTarget */
function set_target_cb($service, $action, $arg)
{
    /* Get the new target value */
    $target = gupnp_service_action_get($action, 'NewTargetValue', GUPNP_TYPE_BOOLEAN);

    /* If the new target doesn't match the current status, change the status and
       emit a notification that the status has changed. */
    if ($target != $GLOBALS['status']) {
        $GLOBALS['status'] = $target;
        gupnp_service_notify($service, 'Status', GUPNP_TYPE_BOOLEAN, $GLOBALS['status']);
        printf("The light is now %s.\n", $GLOBALS['status'] ? "on" : "off");
    }

    /* Return success to the client */
    gupnp_service_action_return($action);
}

/* GetTarget */
function get_target_cb($service, $action, $arg)
{
    gupnp_service_action_set($action, 'RetTargetValue', GUPNP_TYPE_BOOLEAN, $GLOBALS['status']);
    gupnp_service_action_return($action);
}

/* GetStatus */
function get_status_cb($service, $action, $arg)
{
    gupnp_service_action_set($action, 'ResultStatus', GUPNP_TYPE_BOOLEAN, $GLOBALS['status']);
    gupnp_service_action_return($action);
}

/* By default the light is off */
$GLOBALS['status'] = false;
printf("The light is now %s.\n", $GLOBALS['status'] ? "on" : "off");

/* Create the UPnP context */
$context = gupnp_context_new();
if (!$context) {
    printf("Error creating the GUPnP context\n");
    exit(-1);
}

/* Host the directory that contains device and service description files */
gupnp_context_host_path($context, "./web", "");

/* Create root device */
$location = "/BinaryLight.xml";
$dev = gupnp_root_device_new($context, $location);
gupnp_root_device_set_available($dev, true);

/* Get the switch service from the root device */
$service_type = "urn:schemas-upnp-org:service:SwitchPower:1";
$service = gupnp_device_info_get_service($dev, $service_type);
if (!$service) {
    die("Cannot get SwitchPower1 service\n");
}

/* Set callback for action GetStatus */
gupnp_device_action_callback_set($service, GUPNP_SIGNAL_ACTION_INVOKED, "GetStatus",
    "get_status_cb", "action data, GetStatus");

/* Set callback for action GetTarget */
gupnp_device_action_callback_set($service, GUPNP_SIGNAL_ACTION_INVOKED, "GetTarget",
    "get_target_cb", "action data, GetTarget");

/* Set callback for action SetTarget */
gupnp_device_action_callback_set($service, GUPNP_SIGNAL_ACTION_INVOKED, "SetTarget",
    "set_target_cb", "action data, SetTarget");

/* Run the main loop */
gupnp_root_device_start($dev);

?>

Пример #2 Implementing light client

<?php

function service_proxy_available_cb($proxy, $arg)
{
    $mode = $arg['mode'];

    printf("Set subscribed\n");
    gupnp_service_proxy_set_subscribed($proxy, true);

    /* Add notify if status will be changed */
    if (!gupnp_service_proxy_add_notify($proxy, "Status",
            GUPNP_TYPE_BOOLEAN, "status_changed_cb", NULL)) {
        printf("Failed to add notify\n");
    }

    if ($mode == 'TOGGLE') {
        /* We're toggling, so first fetch the current status */
        $target = gupnp_service_proxy_action_get($proxy, 'GetStatus', 'ResultStatus', GUPNP_TYPE_BOOLEAN);

        /* And then toggle it */
        $target = ! $target;
    } else {
        /* Mode is a boolean, so the target is the mode thanks to our well chosen
           enumeration values. */
        $target = ($mode == 'ON') ? true : false;
    }

    /* Set the target */
    if (!gupnp_service_proxy_action_set($proxy, 'SetTarget', 'NewTargetValue', $target, GUPNP_TYPE_BOOLEAN)) {
        printf("Cannot set switch\n");
    } else {
        printf("Set switch to %s.\n", $target ? "on" : "off");
    }

    /* Stop browsing */
    gupnp_control_point_browse_stop($arg['cp']);
}

function status_changed_cb($variable, $value, $arg)
{
    printf("Status has been changed\n");
    printf("\tvariable name: %s\n", $variable);
    printf("\tvalue: %s\n", (int)$value);
    printf("\n");
}

/* Check and parse command line arguments */
if (count($argv) != 2) {
    printf("Usage: light-client.php [on|off|toggle]\n");
    exit(-1);
}

if ($argv[1] == "on") {
    $mode = 'ON';
} elseif ($argv[1] == "off") {
    $mode = 'OFF';
} elseif ($argv[1] == "toggle") {
    $mode = 'TOGGLE';
} else {
    usage ();
    exit(-1);
}

/* Create the UPnP context */
$context = gupnp_context_new();
if (!$context) {
    printf("Error creating the GUPnP context\n");
    exit(-1);
}

/* Create the control point, searching for SwitchPower services */
$cp = gupnp_control_point_new ($context,
        "urn:schemas-upnp-org:service:SwitchPower:1");

/* Connect to the service-found callback */
$cb = "service_proxy_available_cb";
$arg = array('mode' => $mode, 'cp' => $cp);
gupnp_control_point_callback_set($cp, GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE, $cb, $arg);

/* Start for browsing */
gupnp_control_point_browse_start($cp);

?>


Gupnp Функции

Содержание

  • gupnp_context_get_host_ip — Get the IP address
  • gupnp_context_get_port — Get the port
  • gupnp_context_get_subscription_timeout — Get the event subscription timeout
  • gupnp_context_host_path — Start hosting
  • gupnp_context_new — Create a new context
  • gupnp_context_set_subscription_timeout — Sets the event subscription timeout
  • gupnp_context_timeout_add — Sets a function to be called at regular intervals
  • gupnp_context_unhost_path — Stop hosting
  • gupnp_control_point_browse_start — Start browsing
  • gupnp_control_point_browse_stop — Stop browsing
  • gupnp_control_point_callback_set — Set control point callback
  • gupnp_control_point_new — Create a new control point
  • gupnp_device_action_callback_set — Set device callback function
  • gupnp_device_info_get_service — Get the service with type
  • gupnp_device_info_get — Get info of root device
  • gupnp_root_device_get_available — Check whether root device is available
  • gupnp_root_device_get_relative_location — Get the relative location of root device.
  • gupnp_root_device_new — Create a new root device
  • gupnp_root_device_set_available — Set whether or not root_device is available
  • gupnp_root_device_start — Start main loop
  • gupnp_root_device_stop — Stop main loop
  • gupnp_service_action_get — Retrieves the specified action arguments
  • gupnp_service_action_return_error — Return error code
  • gupnp_service_action_return — Return successfully
  • gupnp_service_action_set — Sets the specified action return values
  • gupnp_service_freeze_notify — Freeze new notifications
  • gupnp_service_info_get_introspection — Get resource introspection of service
  • gupnp_service_info_get — Get full info of service
  • gupnp_service_introspection_get_state_variable — Returns the state variable data
  • gupnp_service_notify — Notifies listening clients
  • gupnp_service_proxy_action_get — Send action to the service and get value
  • gupnp_service_proxy_action_set — Send action to the service and set value
  • gupnp_service_proxy_add_notify — Sets up callback for variable change notification
  • gupnp_service_proxy_callback_set — Set service proxy callback for signal
  • gupnp_service_proxy_get_subscribed — Check whether subscription is valid to the service
  • gupnp_service_proxy_remove_notify — Cancels the variable change notification
  • gupnp_service_proxy_send_action — Send action with multiple parameters synchronously
  • gupnp_service_proxy_set_subscribed — (Un)subscribes to the service.
  • gupnp_service_thaw_notify — Sends out any pending notifications and stops queuing of new ones.


Get the IP address

  • « Gupnp Функции
  • gupnp_context_get_port »
  • PHP Manual
  • Gupnp Функции
  • Get the IP address

gupnp_context_get_host_ip

(PECL gupnp >= 0.1.0)

gupnp_context_get_host_ip — Get the IP address

Описание

string gupnp_context_get_host_ip ( resource $context )

Get the IP address we advertise ourselves as using.

Список параметров

context

A context identifier, returned by gupnp_context_new().

Возвращаемые значения

Returns the IP address for the current context and FALSE on error.

Примеры

Пример #1 Create new UPnP context and get IP address of the host

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Get IP address for the UPnP context */
$ip = gupnp_context_get_host_ip($context);
echo $ip;

?>

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_get_port() - Get the port


Get the port

  • « gupnp_context_get_host_ip
  • gupnp_context_get_subscription_timeout »
  • PHP Manual
  • Gupnp Функции
  • Get the port

gupnp_context_get_port

(PECL gupnp >= 0.1.0)

gupnp_context_get_port — Get the port

Описание

int gupnp_context_get_port ( resource $context )

Get the port that the SOAP server is running on.

Список параметров

context

A context identifier, returned by gupnp_context_new().

Возвращаемые значения

Returns the port number for the current context and FALSE on error.

Примеры

Пример #1 Create new UPnP context and get port number

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Get the port number for the UPnP context */
$port = gupnp_context_get_port($context);
echo $port;

?>

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_get_host_ip() - Get the IP address


Get the event subscription timeout

  • « gupnp_context_get_port
  • gupnp_context_host_path »
  • PHP Manual
  • Gupnp Функции
  • Get the event subscription timeout

gupnp_context_get_subscription_timeout

(PECL gupnp >= 0.1.0)

gupnp_context_get_subscription_timeout — Get the event subscription timeout

Описание

int gupnp_context_get_subscription_timeout ( resource $context )

Get the event subscription timeout (in seconds), or 0 meaning there is no timeout.

Список параметров

context

A context identifier, returned by gupnp_context_new().

Возвращаемые значения

The event subscription timeout in seconds.

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_set_subscription_timeout() - Sets the event subscription timeout


Start hosting

  • « gupnp_context_get_subscription_timeout
  • gupnp_context_new »
  • PHP Manual
  • Gupnp Функции
  • Start hosting

gupnp_context_host_path

(PECL gupnp >= 0.1.0)

gupnp_context_host_path — Start hosting

Описание

bool gupnp_context_host_path ( resource $context , string $local_path , string $server_path )

Start hosting local_path at server_path. Files with the path local_path.LOCALE (if they exist) will be served up when LOCALE is specified in the request's Accept-Language header.

Список параметров

context

A context identifier, returned by gupnp_context_new().

local_path

Path to the local file or folder to be hosted.

server_path

Web server path where local_path should be hosted.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Create new UPnP context and set host path

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Host current directory */
gupnp_context_host_path($context, "./web", "");

?>

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_unhost_path() - Stop hosting


Create a new context

  • « gupnp_context_host_path
  • gupnp_context_set_subscription_timeout »
  • PHP Manual
  • Gupnp Функции
  • Create a new context

gupnp_context_new

(PECL gupnp >= 0.1.0)

gupnp_context_new — Create a new context

Описание

resource gupnp_context_new ([ string $host_ip [, int $port = 0 ]] )

Create a new context with the specified host_ip and port.

Список параметров

host_ip

The local host's IP address, or NULL to use the IP address of the first non-loopback network interface.

port

Port to run on, or 0 if you don't care what port is used.

Возвращаемые значения

A context identifier.

Примеры

Пример #1 Create new UPnP context

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

?>

Ошибки

Issues E_WARNING with unable to create context.


Sets the event subscription timeout

  • « gupnp_context_new
  • gupnp_context_timeout_add »
  • PHP Manual
  • Gupnp Функции
  • Sets the event subscription timeout

gupnp_context_set_subscription_timeout

(PECL gupnp >= 0.1.0)

gupnp_context_set_subscription_timeout — Sets the event subscription timeout

Описание

void gupnp_context_set_subscription_timeout ( resource $context , int $timeout )

Sets the event subscription timeout (in seconds) to time out. Note that any client side subscriptions will automatically be renewed.

Список параметров

context

A context identifier, returned by gupnp_context_new().

timeout

The event subscription timeout in seconds. Use 0 if you don't want subscriptions to time out.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_get_subscription_timeout() - Get the event subscription timeout


Sets a function to be called at regular intervals

  • « gupnp_context_set_subscription_timeout
  • gupnp_context_unhost_path »
  • PHP Manual
  • Gupnp Функции
  • Sets a function to be called at regular intervals

gupnp_context_timeout_add

(PECL gupnp >= 0.1.0)

gupnp_context_timeout_add — Sets a function to be called at regular intervals

Описание

bool gupnp_context_timeout_add ( resource $context , int $timeout , mixed $callback [, mixed $arg ] )

Sets a function to be called at regular intervals.

Список параметров

context

A context identifier, returned by gupnp_context_new().

timeout

A timeout in miliseconds.

callback

The callback function calling every timeout period of time. Typically, callback function takes on arg parameter.

arg

User data for callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Create new UPnP context and set callback

<?php

$user_data = "user data";

function timeout_cb($arg)
{
    printf("Call timeout_cb, user data: '%s'", $arg);
    return true;
}

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Create root device */
$dev = gupnp_root_device_new($context, "/devicedesc.xml");

/* Set callback for timeout */
gupnp_context_timeout_add($context, 5000, "timeout_cb", $user_data);

/* Run the main loop */
gupnp_root_device_start($dev);

?>

Ошибки

Issues E_WARNING with not valid callback function.

Смотрите также

  • gupnp_context_new() - Create a new context


Stop hosting

  • « gupnp_context_timeout_add
  • gupnp_control_point_browse_start »
  • PHP Manual
  • Gupnp Функции
  • Stop hosting

gupnp_context_unhost_path

(PECL gupnp >= 0.1.0)

gupnp_context_unhost_path — Stop hosting

Описание

bool gupnp_context_unhost_path ( resource $context , string $server_path )

Stop hosting the file or folder at server_path.

Список параметров

context

A context identifier, returned by gupnp_context_new().

server_path

Web server path where the file or folder is hosted.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_context_new() - Create a new context
  • gupnp_context_host_path() - Start hosting


Start browsing

  • « gupnp_context_unhost_path
  • gupnp_control_point_browse_stop »
  • PHP Manual
  • Gupnp Функции
  • Start browsing

gupnp_control_point_browse_start

(PECL gupnp >= 0.1.0)

gupnp_control_point_browse_start — Start browsing

Описание

bool gupnp_control_point_browse_start ( resource $cpoint )

Start the search and calls user-defined callback.

Список параметров

cpoint

A control point identifier, returned by gupnp_control_point_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Create new UPnP context and start browsing

<?php

function device_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_device_info_get($proxy);

    $type = $info['device_type'];
    $location = $info['location'];

    printf("Device available:\n");
    printf("type:     %s\n", $type);
    printf("location: %s\n", $location);
}

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* We're interested in everything */
$cp = gupnp_control_point_new($context, "ssdp:all");

gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE, 'device_proxy_available_cb');

/* Start for browsing */
gupnp_control_point_browse_start($cp);

?>

Смотрите также

  • gupnp_control_point_new() - Create a new control point
  • gupnp_control_point_browse_stop() - Stop browsing


Stop browsing

  • « gupnp_control_point_browse_start
  • gupnp_control_point_callback_set »
  • PHP Manual
  • Gupnp Функции
  • Stop browsing

gupnp_control_point_browse_stop

(PECL gupnp >= 0.1.0)

gupnp_control_point_browse_stop — Stop browsing

Описание

bool gupnp_control_point_browse_stop ( resource $cpoint )

Stop the search and calls user-defined callback.

Список параметров

cpoint

A control point identifier, returned by gupnp_control_point_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_control_point_new() - Create a new control point
  • gupnp_control_point_browse_start() - Start browsing


Set control point callback

  • « gupnp_control_point_browse_stop
  • gupnp_control_point_new »
  • PHP Manual
  • Gupnp Функции
  • Set control point callback

gupnp_control_point_callback_set

(PECL gupnp >= 0.1.0)

gupnp_control_point_callback_set — Set control point callback

Описание

bool gupnp_control_point_callback_set ( resource $cpoint , int $signal , mixed $callback [, mixed $arg ] )

Set control point callback function for signal.

Список параметров

cpoint

A control point identifier, returned by gupnp_control_point_new().

signal

The value of signal. Signal can be one of the following values:

GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE
Emitted whenever a new device has become available.
GUPNP_SIGNAL_DEVICE_PROXY_UNAVAILABLE
Emitted whenever a device is not available any more.
GUPNP_SIGNAL_SERVICE_PROXY_AVAILABLE
Emitted whenever a new service has become available.
GUPNP_SIGNAL_SERVICE_PROXY_UNAVAILABLE
Emitted whenever a service is not available any more.

callback

The callback function for the certain signal. Typically, callback function takes on two parameters. The proxy parameter's identifier being the first, and the arg second.

arg

User data for callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Create new UPnP context and start browsing

<?php

function device_proxy_available_cb($proxy, $arg)
{
    $info = gupnp_device_info_get($proxy);

    $type = $info['device_type'];
    $location = $info['location'];

    printf("Device available:\n");
    printf("type:     %s\n", $type);
    printf("location: %s\n", $location);
}

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* We're interested in everything */
$cp = gupnp_control_point_new($context, "ssdp:all");

gupnp_control_point_callback_set($cp,
    GUPNP_SIGNAL_DEVICE_PROXY_AVAILABLE, 'device_proxy_available_cb');

/* Start for browsing */
gupnp_control_point_browse_start($cp);

?>

Ошибки

Issues E_WARNING with not valid callback function.

Смотрите также

  • gupnp_control_point_new() - Create a new control point
  • gupnp_control_point_browse_start() - Start browsing


Create a new control point

  • « gupnp_control_point_callback_set
  • gupnp_device_action_callback_set »
  • PHP Manual
  • Gupnp Функции
  • Create a new control point

gupnp_control_point_new

(PECL gupnp >= 0.1.0)

gupnp_control_point_new — Create a new control point

Описание

resource gupnp_control_point_new ( resource $context , string $target )

Create a new control point with the specified target.

Список параметров

context

A context identifier, returned by gupnp_context_new().

target

The search target. target should be a service or device name, such as urn:schemas-upnp-org:service:WANIPConnection:1 or urn:schemas-upnp-org:device:MediaRenderer:1.

Возвращаемые значения

A control point identifier.


Set device callback function

  • « gupnp_control_point_new
  • gupnp_device_info_get_service »
  • PHP Manual
  • Gupnp Функции
  • Set device callback function

gupnp_device_action_callback_set

(PECL gupnp >= 0.1.0)

gupnp_device_action_callback_set — Set device callback function

Описание

bool gupnp_device_action_callback_set ( resource $root_device , int $signal , string $action_name , mixed $callback [, mixed $arg ] )

Set device callback function for signal and action.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

signal

The value of signal. Signal can be one of the following values:

GUPNP_SIGNAL_ACTION_INVOKED
Emitted whenever an action is invoked. Handler should process action and must call either gupnp_service_action_return() or gupnp_service_action_return_error().
GUPNP_SIGNAL_NOTIFY_FAILED
Emitted whenever notification of a client fails.

action_name

The name of action.

callback

The callback function for the certain signal. Typically, callback function takes on three parameters. The service parameter's identifier being the first, action parameter's identifier (in case GUPNP_SIGNAL_ACTION_INVOKED signal) or error parameter's message (in case GUPNP_SIGNAL_NOTIFY_FAILED signal) being the second, and the arg is third.

arg

User data for callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Issues E_WARNING either with not valid callback function or with not valid signal.

Смотрите также

  • gupnp_root_device_new() - Create a new root device


Get the service with type

  • « gupnp_device_action_callback_set
  • gupnp_device_info_get »
  • PHP Manual
  • Gupnp Функции
  • Get the service with type

gupnp_device_info_get_service

(PECL gupnp >= 0.1.0)

gupnp_device_info_get_service — Get the service with type

Описание

resource gupnp_device_info_get_service ( resource $root_device , string $type )

Get the service with type or false if no such device was found.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

type

The type of the service to be retrieved.

Возвращаемые значения

A service identifier.

Примеры

Пример #1 Create new UPnP context and get device info service

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Create root device */
$location = "/BinaryLight1.xml";
$dev = gupnp_root_device_new($context, $location);

/* Set root device is available */
gupnp_root_device_set_available($dev, true);

/* Get the switch service from the root device */
$service_type = "urn:schemas-upnp-org:service:SwitchPower:1";
$service = gupnp_device_info_get_service($dev, $service_type);
if (!$service) {
    die("Cannot get SwitchPower1 service\n");
}

?>


Get info of root device

  • « gupnp_device_info_get_service
  • gupnp_root_device_get_available »
  • PHP Manual
  • Gupnp Функции
  • Get info of root device

gupnp_device_info_get

(PECL gupnp >= 0.1.0)

gupnp_device_info_get — Get info of root device

Описание

array gupnp_device_info_get ( resource $root_device )

Get info of root device.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

Возвращаемые значения

Return array wich contains the information of the root device (like location, url, udn and etc).


Check whether root device is available

  • « gupnp_device_info_get
  • gupnp_root_device_get_relative_location »
  • PHP Manual
  • Gupnp Функции
  • Check whether root device is available

gupnp_root_device_get_available

(PECL gupnp >= 0.1.0)

gupnp_root_device_get_available — Check whether root device is available

Описание

bool gupnp_root_device_get_available ( resource $root_device )

Get whether or not root_device is available (announcing its presence).

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_root_device_set_available() - Set whether or not root_device is available


Get the relative location of root device.

  • « gupnp_root_device_get_available
  • gupnp_root_device_new »
  • PHP Manual
  • Gupnp Функции
  • Get the relative location of root device.

gupnp_root_device_get_relative_location

(PECL gupnp >= 0.1.0)

gupnp_root_device_get_relative_location — Get the relative location of root device.

Описание

string gupnp_root_device_get_relative_location ( resource $root_device )

Get the relative location of root device.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

Возвращаемые значения

The relative location of root device


Create a new root device

  • « gupnp_root_device_get_relative_location
  • gupnp_root_device_set_available »
  • PHP Manual
  • Gupnp Функции
  • Create a new root device

gupnp_root_device_new

(PECL gupnp >= 0.1.0)

gupnp_root_device_new — Create a new root device

Описание

resource gupnp_root_device_new ( resource $context , string $location , string $description_dir )

Create a new root device, automatically downloading and parsing location.

Список параметров

context

A context identifier, returned by gupnp_context_new().

location

Location of the description file for this device, relative to the HTTP root

Возвращаемые значения

A root device identifier.

Примеры

Пример #1 Create new UPnP context and get device info service

<?php

/* Create the UPnP context */
$context = gupnp_context_new();

if (!$context) {
 die("Error creating the GUPnP context\n");
}

/* Create root device */
$location = "/BinaryLight1.xml";
$dev = gupnp_root_device_new($context, $location);

?>

Смотрите также

  • gupnp_root_device_set_available() - Set whether or not root_device is available
  • gupnp_root_device_start() - Start main loop
  • gupnp_root_device_stop() - Stop main loop


Set whether or not root_device is available

  • « gupnp_root_device_new
  • gupnp_root_device_start »
  • PHP Manual
  • Gupnp Функции
  • Set whether or not root_device is available

gupnp_root_device_set_available

(PECL gupnp >= 0.1.0)

gupnp_root_device_set_available — Set whether or not root_device is available

Описание

bool gupnp_root_device_set_available ( resource $root_device , bool $available )

Controls whether or not root_device is available (announcing its presence).

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

available

Set TRUE if root_device should be available.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_root_device_get_available() - Check whether root device is available


Start main loop

  • « gupnp_root_device_set_available
  • gupnp_root_device_stop »
  • PHP Manual
  • Gupnp Функции
  • Start main loop

gupnp_root_device_start

(PECL gupnp >= 0.1.0)

gupnp_root_device_start — Start main loop

Описание

bool gupnp_root_device_start ( resource $root_device )

Start root server's main loop.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_root_device_stop() - Stop main loop


Stop main loop

  • « gupnp_root_device_start
  • gupnp_service_action_get »
  • PHP Manual
  • Gupnp Функции
  • Stop main loop

gupnp_root_device_stop

(PECL gupnp >= 0.1.0)

gupnp_root_device_stop — Stop main loop

Описание

bool gupnp_root_device_stop ( resource $root_device )

Stop root server's main loop.

Список параметров

root_device

A root device identifier, returned by gupnp_root_device_new().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_root_device_start() - Start main loop


Retrieves the specified action arguments

  • « gupnp_root_device_stop
  • gupnp_service_action_return_error »
  • PHP Manual
  • Gupnp Функции
  • Retrieves the specified action arguments

gupnp_service_action_get

(PECL gupnp >= 0.1.0)

gupnp_service_action_get — Retrieves the specified action arguments

Описание

mixed gupnp_service_action_get ( resource $action , string $name , int $type )

Retrieves the specified action arguments.

Список параметров

action

A service action identifier.

name

The name of the variable to retrieve.

type

The type of the variable to retrieve. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

Возвращаемые значения

The value of the variable.

Ошибки

Issues E_WARNING with not correctly defined type of the variable.

Смотрите также

  • gupnp_service_action_set() - Sets the specified action return values


Return error code

  • « gupnp_service_action_get
  • gupnp_service_action_return »
  • PHP Manual
  • Gupnp Функции
  • Return error code

gupnp_service_action_return_error

(PECL gupnp >= 0.1.0)

gupnp_service_action_return_error — Return error code

Описание

bool gupnp_service_action_return_error ( resource $action , int $error_code [, string $error_description ] )

Return error code.

Список параметров

action

A service action identifier.

error_code

The error code. Signal can be one of the following values or user defined:

GUPNP_CONTROL_ERROR_INVALID_ACTION
The action name was invalid.
GUPNP_CONTROL_ERROR_INVALID_ARGS
The action arguments were invalid.
GUPNP_CONTROL_ERROR_OUT_OF_SYNC
Out of sync (deprecated).
GUPNP_CONTROL_ERROR_ACTION_FAILED
The action failed.

error_description

The error description.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_action_return() - Return successfully


Return successfully

  • « gupnp_service_action_return_error
  • gupnp_service_action_set »
  • PHP Manual
  • Gupnp Функции
  • Return successfully

gupnp_service_action_return

(PECL gupnp >= 0.1.0)

gupnp_service_action_return — Return successfully

Описание

bool gupnp_service_action_return ( resource $action )

Return successfully.

Список параметров

action

A service action identifier.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_action_return_error() - Return error code


Sets the specified action return values

  • « gupnp_service_action_return
  • gupnp_service_freeze_notify »
  • PHP Manual
  • Gupnp Функции
  • Sets the specified action return values

gupnp_service_action_set

(PECL gupnp >= 0.1.0)

gupnp_service_action_set — Sets the specified action return values

Описание

bool gupnp_service_action_set ( resource $action , string $name , int $type , mixed $value )

Sets the specified action return values.

Список параметров

action

A service action identifier.

name

The name of the variable to retrieve.

type

The type of the variable to retrieve. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

value

The value of the variable to retrieve.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Issues E_WARNING with neither not correctly defined type of the variable or the value is not corresponding to the defined type.

Смотрите также

  • gupnp_service_action_get() - Retrieves the specified action arguments


Freeze new notifications

  • « gupnp_service_action_set
  • gupnp_service_info_get_introspection »
  • PHP Manual
  • Gupnp Функции
  • Freeze new notifications

gupnp_service_freeze_notify

(PECL gupnp >= 0.1.0)

gupnp_service_freeze_notify — Freeze new notifications

Описание

bool gupnp_service_freeze_notify ( resource $service )

Causes new notifications to be queued up until gupnp_service_thaw_notify() is called.

Список параметров

service

A service identifier.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_notify() - Notifies listening clients
  • gupnp_service_thaw_notify() - Sends out any pending notifications and stops queuing of new ones.


Get resource introspection of service

  • « gupnp_service_freeze_notify
  • gupnp_service_info_get »
  • PHP Manual
  • Gupnp Функции
  • Get resource introspection of service

gupnp_service_info_get_introspection

(PECL gupnp >= 0.1.0)

gupnp_service_info_get_introspection — Get resource introspection of service

Описание

mixed gupnp_service_info_get_introspection ( resource $proxy [, mixed $callback [, mixed $arg ]] )

Get resource introspection of service or register callback if corresponding parameter was passed.

Список параметров

proxy

A service proxy identifier.

callback

The callback function to be called when introspection object is ready. Typically, callback function takes on three parameters. The introspection parameter's identifier being the first, error parameter's message being the second, and the arg is third.

arg

User data for callback.

Возвращаемые значения

Return true if callback function was defined. Return introspection identifier if callback function was omited.

Ошибки

Issues E_WARNING with not valid callback function.


Get full info of service

  • « gupnp_service_info_get_introspection
  • gupnp_service_introspection_get_state_variable »
  • PHP Manual
  • Gupnp Функции
  • Get full info of service

gupnp_service_info_get

(PECL gupnp >= 0.1.0)

gupnp_service_info_get — Get full info of service

Описание

array gupnp_service_info_get ( resource $proxy )

Get full info of service.

Список параметров

proxy

A service proxy identifier.

Возвращаемые значения

Return array wich contains the information of the service (like location, url, udn and etc).


Returns the state variable data

  • « gupnp_service_info_get
  • gupnp_service_notify »
  • PHP Manual
  • Gupnp Функции
  • Returns the state variable data

gupnp_service_introspection_get_state_variable

(PECL gupnp >= 0.1.0)

gupnp_service_introspection_get_state_variable — Returns the state variable data

Описание

array gupnp_service_introspection_get_state_variable ( resource $introspection , string $variable_name )

Returns the state variable data by the name variable_name in this service.

Список параметров

introspection

A introspection identifier.

variable_name

The name of the variable to retreive.

Возвращаемые значения

Return the state variable data or FALSE.


Notifies listening clients

  • « gupnp_service_introspection_get_state_variable
  • gupnp_service_proxy_action_get »
  • PHP Manual
  • Gupnp Функции
  • Notifies listening clients

gupnp_service_notify

(PECL gupnp >= 0.1.0)

gupnp_service_notify — Notifies listening clients

Описание

bool gupnp_service_notify ( resource $service , string $name , int $type , mixed $value )

Notifies listening clients that the property have changed to the specified values.

Список параметров

service

A service identifier.

name

The name of the variable.

type

The type of the variable. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

value

The value of the variable.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Issues E_WARNING with either not correctly defined type of the variable or the value is not corresponding to the defined type.

Смотрите также

  • gupnp_service_freeze_notify() - Freeze new notifications
  • gupnp_service_thaw_notify() - Sends out any pending notifications and stops queuing of new ones.


Send action to the service and get value

  • « gupnp_service_notify
  • gupnp_service_proxy_action_set »
  • PHP Manual
  • Gupnp Функции
  • Send action to the service and get value

gupnp_service_proxy_action_get

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_action_get — Send action to the service and get value

Описание

mixed gupnp_service_proxy_action_get ( resource $proxy , string $action , string $name , int $type )

Send action with parameters to the service exposed by proxy synchronously and get value.

Список параметров

proxy

A service proxy identifier.

action

An action.

name

The action name.

type

The type of the variable to retrieve. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

Возвращаемые значения

Return value of the action.

Ошибки

Issues E_WARNING with either not correctly defined type of the action or unable to send action.

Смотрите также

  • gupnp_service_proxy_action_set() - Send action to the service and set value
  • gupnp_service_proxy_send_action() - Send action with multiple parameters synchronously


Send action to the service and set value

  • « gupnp_service_proxy_action_get
  • gupnp_service_proxy_add_notify »
  • PHP Manual
  • Gupnp Функции
  • Send action to the service and set value

gupnp_service_proxy_action_set

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_action_set — Send action to the service and set value

Описание

bool gupnp_service_proxy_action_set ( resource $proxy , string $action , string $name , mixed $value , int $type )

Send action with parameters to the service exposed by proxy synchronously and set value.

Список параметров

proxy

A service proxy identifier.

action

An action.

name

The action name.

value

The action value.

type

The type of the action. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Issues E_WARNING with either not correctly defined type of the action or unable to send action.

Смотрите также

  • gupnp_service_proxy_action_get() - Send action to the service and get value
  • gupnp_service_proxy_send_action() - Send action with multiple parameters synchronously


Sets up callback for variable change notification

  • « gupnp_service_proxy_action_set
  • gupnp_service_proxy_callback_set »
  • PHP Manual
  • Gupnp Функции
  • Sets up callback for variable change notification

gupnp_service_proxy_add_notify

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_add_notify — Sets up callback for variable change notification

Описание

bool gupnp_service_proxy_add_notify ( resource $proxy , string $value , int $type , mixed $callback [, mixed $arg ] )

Sets up callback to be called whenever a change notification for variable is recieved.

Список параметров

proxy

A service proxy identifier.

value

The variable to add notification for.

type

The type of the variable. Type can be one of the following values:

GUPNP_TYPE_BOOLEAN
Type of the variable is boolean.
GUPNP_TYPE_INT
Type of the variable is integer.
GUPNP_TYPE_LONG
Type of the variable is long.
GUPNP_TYPE_DOUBLE
Type of the variable is double.
GUPNP_TYPE_FLOAT
Type of the variable is float.
GUPNP_TYPE_STRING
Type of the variable is string.

callback

The callback to call when variable changes. Typically, callback function takes on three parameters. The variable parameter being the first, value parameter being the second, and the arg is third.

arg

User data for callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_proxy_remove_notify() - Cancels the variable change notification


Set service proxy callback for signal

  • « gupnp_service_proxy_add_notify
  • gupnp_service_proxy_get_subscribed »
  • PHP Manual
  • Gupnp Функции
  • Set service proxy callback for signal

gupnp_service_proxy_callback_set

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_callback_set — Set service proxy callback for signal

Описание

bool gupnp_service_proxy_callback_set ( resource $proxy , int $signal , mixed $callback [, mixed $arg ] )

Set service proxy callback for signal.

Список параметров

proxy

A service proxy identifier.

signal

The value of signal.

GUPNP_SIGNAL_SUBSCRIPTION_LOST
Emitted whenever the subscription to this service has been lost due to an error condition.

callback

The callback function for the certain signal. Typically, callback function takes on two parameters. error parameter's message being the first, and the arg is second.

arg

User data for callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Issues E_WARNING either with not valid callback function or with not valid signal.


Check whether subscription is valid to the service

  • « gupnp_service_proxy_callback_set
  • gupnp_service_proxy_remove_notify »
  • PHP Manual
  • Gupnp Функции
  • Check whether subscription is valid to the service

gupnp_service_proxy_get_subscribed

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_get_subscribed — Check whether subscription is valid to the service

Описание

bool gupnp_service_proxy_get_subscribed ( resource $proxy )

Check whether subscription is valid to the service.

Список параметров

proxy

A service proxy identifier.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_proxy_set_subscribed() - (Un)subscribes to the service.


Cancels the variable change notification

  • « gupnp_service_proxy_get_subscribed
  • gupnp_service_proxy_send_action »
  • PHP Manual
  • Gupnp Функции
  • Cancels the variable change notification

gupnp_service_proxy_remove_notify

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_remove_notify — Cancels the variable change notification

Описание

bool gupnp_service_proxy_remove_notify ( resource $proxy , string $value )

Cancels the variable change notification.

Список параметров

proxy

A service proxy identifier.

value

The variable to add notification for.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_proxy_add_notify() - Sets up callback for variable change notification


Send action with multiple parameters synchronously

  • « gupnp_service_proxy_remove_notify
  • gupnp_service_proxy_set_subscribed »
  • PHP Manual
  • Gupnp Функции
  • Send action with multiple parameters synchronously

gupnp_service_proxy_send_action

(PECL gupnp >= 0.2.0)

gupnp_service_proxy_send_action — Send action with multiple parameters synchronously

Описание

array gupnp_service_proxy_send_action ( resource $proxy , string $action , array $in_params , array $out_params )

Send action with parameters in_params to the service exposed by proxy synchronously and return out_params with values or FALSE on error.

Список параметров

proxy

A service proxy identifier.

action

An action.

in_params

An array of in parameters. Each entry in in_params is supposed to an array containing name, type and value of the parameters.

out_params

An array of out parameters. Each entry in out_params is supposed to an array containing name and type of the parameters.

Возвращаемые значения

Return out_params array with values or FALSE on error.

Ошибки

Issues E_WARNING with either not correctly defined in_params and out_params or unable to send action.

Смотрите также

  • gupnp_service_proxy_action_get() - Send action to the service and get value
  • gupnp_service_proxy_action_set() - Send action to the service and set value


(Un)subscribes to the service.

  • « gupnp_service_proxy_send_action
  • gupnp_service_thaw_notify »
  • PHP Manual
  • Gupnp Функции
  • (Un)subscribes to the service.

gupnp_service_proxy_set_subscribed

(PECL gupnp >= 0.1.0)

gupnp_service_proxy_set_subscribed — (Un)subscribes to the service.

Описание

bool gupnp_service_proxy_set_subscribed ( resource $proxy , bool $subscribed )

(Un)subscribes to the service.

Список параметров

proxy

A service proxy identifier.

subscribed

Set TRUE to subscribe to this service.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_proxy_get_subscribed() - Check whether subscription is valid to the service


Sends out any pending notifications and stops queuing of new ones.

  • « gupnp_service_proxy_set_subscribed
  • Hyperwave API »
  • PHP Manual
  • Gupnp Функции
  • Sends out any pending notifications and stops queuing of new ones.

gupnp_service_thaw_notify

(PECL gupnp >= 0.1.0)

gupnp_service_thaw_notify — Sends out any pending notifications and stops queuing of new ones.

Описание

bool gupnp_service_thaw_notify ( resource $service )

Sends out any pending notifications and stops queuing of new ones.

Список параметров

service

A service identifier.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • gupnp_service_notify() - Notifies listening clients
  • gupnp_service_freeze_notify() - Freeze new notifications


Hyperwave API

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Integration with Apache
  • Hyperwave API Функции
    • hw_api::checkin — Checks in an object
    • hw_api::checkout — Checks out an object
    • hw_api::children — Returns children of an object
    • hw_api::content — Returns content of an object
    • hw_api::copy — Copies physically
    • hw_api::dbstat — Returns statistics about database server
    • hw_api::dcstat — Returns statistics about document cache server
    • hw_api::dstanchors — Returns a list of all destination anchors
    • hw_api::dstofsrcanchor — Returns destination of a source anchor
    • hw_api::find — Search for objects
    • hw_api::ftstat — Returns statistics about fulltext server
    • hw_api::hwstat — Returns statistics about Hyperwave server
    • hw_api::identify — Log into Hyperwave Server
    • hw_api::info — Returns information about server configuration
    • hw_api::insert — Inserts a new object
    • hw_api::insertanchor — Inserts a new object of type anchor
    • hw_api::insertcollection — Inserts a new object of type collection
    • hw_api::insertdocument — Inserts a new object of type document
    • hw_api::link — Creates a link to an object
    • hw_api::lock — Locks an object
    • hw_api::move — Moves object between collections
    • hw_api::object — Retrieve attribute information
    • hw_api::objectbyanchor — Returns the object an anchor belongs to
    • hw_api::parents — Returns parents of an object
    • hw_api::remove — Delete an object
    • hw_api::replace — Replaces an object
    • hw_api::setcommittedversion — Commits version other than last version
    • hw_api::srcanchors — Returns a list of all source anchors
    • hw_api::srcsofdst — Returns source of a destination object
    • hw_api::unlock — Unlocks a locked object
    • hw_api::user — Returns the own user object
    • hw_api::userlist — Returns a list of all logged in users
    • hw_api_attribute::key — Returns key of the attribute
    • hw_api_attribute::langdepvalue — Returns value for a given language
    • hw_api_attribute::value — Returns value of the attribute
    • hw_api_attribute::values — Returns all values of the attribute
    • hw_api_content::mimetype — Returns mimetype
    • hw_api_content::read — Read content
    • hw_api_error::count — Returns number of reasons
    • hw_api_error::reason — Returns reason of error
    • hw_api_object::assign — Clones object
    • hw_api_object::attreditable — Checks whether an attribute is editable
    • hw_api_object::count — Returns number of attributes
    • hw_api_object::insert — Inserts new attribute
    • hw_api_object::remove — Removes attribute
    • hw_api_object::title — Returns the title attribute
    • hw_api_object::value — Returns value of attribute
    • hw_api_reason::description — Returns description of reason
    • hw_api_reason::type — Returns type of reason
    • hwapi_attribute_new — Creates instance of class hw_api_attribute
    • hwapi_content_new — Create new instance of class hw_api_content
    • hwapi_hgcsp — Returns object of class hw_api
    • hwapi_object_new — Creates a new instance of class hwapi_object_new


Введение

Hyperwave has been developed at » IICM in Graz. It started with the name Hyper-G and changed to Hyperwave when it was commercialised (in 1996).

Hyperwave is not free software. The current version, 5.5, is available at » http://www.hyperwave.com/. A time limited version can be ordered for free (30 days).

Hyperwave is an information system similar to a database (HIS, Hyperwave Information Server). Its focus is the storage and management of documents. A document can be any possible piece of data that may as well be stored in file. Each document is accompanied by its object record. The object record contains meta data for the document. The meta data is a list of attributes which can be extended by the user. Certain attributes are always set by the Hyperwave server, other may be modified by the user.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.2.0.


Требования

Since 2001 there is a Hyperwave SDK available. It supports Java, JavaScript and C++. This PHP Extension is based on the C++ interface. In order to activate the hwapi support in PHP you will have to install the Hyperwave SDK first.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/hwapi.

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.2.0

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Hyperwave API configuration options
Имя | По умолчанию | Меняемо | Список изменений
hwapi.allow_persistent | "0" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.


  • « Типы ресурсов
  • Integration with Apache »
  • PHP Manual
  • Hyperwave API
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Integration with Apache

The Hyperwave extension is best used when PHP is compiled as an Apache module. In such a case the underlying Hyperwave server can be hidden from users almost completely if Apache uses its rewriting engine. The following instructions will explain this.

Since PHP with Hyperwave support built into Apache is intended to replace the native Hyperwave solution based on Wavemaster, we will assume that the Apache server will only serve as a Hyperwave web interface for these examples. This is not necessary but it simplifies the configuration. The concept is quite simple. First of all you need a PHP script which evaluates the $_ENV['PATH_INFO'] variable and treats its value as the name of a Hyperwave object. Let's call this script 'Hyperwave'. The URL http://your.hostname/Hyperwave/name_of_object would than return the Hyperwave object with the name 'name_of_object'. Depending on the type of the object the script has to react accordingly. If it is a collection, it will probably return a list of children. If it is a document it will return the mime type and the content. A slight improvement can be achieved if the Apache rewriting engine is used. From the users point of view it would be more straight forward if the URL http://your.hostname/name_of_object would return the object. The rewriting rule is quite easy:

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]
Now every URL relates to an object in the Hyperwave server. This causes a simple to solve problem. There is no way to execute a different script, e.g. for searching, than the 'Hyperwave' script. This can be fixed with another rewriting rule like the following:
RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]
This will reserve the directory /usr/local/apache/htdocs/hw for additional scripts and other files. Just make sure this rule is evaluated before the one above. There is just a little drawback: all Hyperwave objects whose name starts with 'hw/' will be shadowed. So, make sure you don't use such names. If you need more directories, e.g. for images just add more rules or place them all in one directory. Before you put those instructions, don't forget to turn on the rewriting engine with
RewriteEngine on
You will need scripts:
  • to return the object itself
  • to allow searching
  • to identify yourself
  • to set your profile
  • one for each additional function like to show the object attributes, to show information about users, to show the status of the server, etc.

As an alternative to the Rewrite Engine, you can also consider using the Apache ErrorDocument directive, but be aware, that ErrorDocument redirected pages cannot receive POST data.


Hyperwave API Функции

Integration with Apache

The integration with Apache and possible other servers has been described in the separate chapter.

Classes

The API provided by the HW_API extension is fully object oriented. It is very similar to the C++ interface of the Hyperwave SDK. It consist of the following classes.

  • HW_API
  • HW_API_Object
  • HW_API_Attribute
  • HW_API_Error
  • HW_API_Content
  • HW_API_Reason
Some basic classes like HW_API_String, HW_API_String_Array, etc., which exist in the Hyperwave SDK have not been implemented since PHP has powerful replacements for them.

Each class has certain method, whose names are identical to its counterparts in the Hyperwave SDK. Passing arguments to this function differs from all the other PHP extensions but is close to the C++ API of the HW SDK. Instead of passing several parameters they are all put into an associated array and passed as one parameter. The names of the keys are identical to those documented in the HW SDK. The common parameters are listed below. If other parameters are required they will be documented if needed.

  • objectIdentifier The name or id of an object, e.g. "rootcollection", "0x873A8768 0x00000002".
  • parentIdentifier The name or id of an object which is considered to be a parent.
  • object An instance of class HW_API_Object.
  • parameters An instance of class HW_API_Object.
  • version The version of an object.
  • mode An integer value determine the way an operation is executed.
  • attributeSelector Any array of strings, each containing a name of an attribute. This is used if you retrieve the object record and want to include certain attributes.
  • objectQuery A query to select certain object out of a list of objects. This is used to reduce the number of objects which was delivered by a function like hw_api::children() or hw_api::find().

Замечание:

Methods returning boolean can return TRUE, FALSE or HW_API_Error object.

Содержание

  • hw_api::checkin — Checks in an object
  • hw_api::checkout — Checks out an object
  • hw_api::children — Returns children of an object
  • hw_api::content — Returns content of an object
  • hw_api::copy — Copies physically
  • hw_api::dbstat — Returns statistics about database server
  • hw_api::dcstat — Returns statistics about document cache server
  • hw_api::dstanchors — Returns a list of all destination anchors
  • hw_api::dstofsrcanchor — Returns destination of a source anchor
  • hw_api::find — Search for objects
  • hw_api::ftstat — Returns statistics about fulltext server
  • hw_api::hwstat — Returns statistics about Hyperwave server
  • hw_api::identify — Log into Hyperwave Server
  • hw_api::info — Returns information about server configuration
  • hw_api::insert — Inserts a new object
  • hw_api::insertanchor — Inserts a new object of type anchor
  • hw_api::insertcollection — Inserts a new object of type collection
  • hw_api::insertdocument — Inserts a new object of type document
  • hw_api::link — Creates a link to an object
  • hw_api::lock — Locks an object
  • hw_api::move — Moves object between collections
  • hw_api::object — Retrieve attribute information
  • hw_api::objectbyanchor — Returns the object an anchor belongs to
  • hw_api::parents — Returns parents of an object
  • hw_api::remove — Delete an object
  • hw_api::replace — Replaces an object
  • hw_api::setcommittedversion — Commits version other than last version
  • hw_api::srcanchors — Returns a list of all source anchors
  • hw_api::srcsofdst — Returns source of a destination object
  • hw_api::unlock — Unlocks a locked object
  • hw_api::user — Returns the own user object
  • hw_api::userlist — Returns a list of all logged in users
  • hw_api_attribute::key — Returns key of the attribute
  • hw_api_attribute::langdepvalue — Returns value for a given language
  • hw_api_attribute::value — Returns value of the attribute
  • hw_api_attribute::values — Returns all values of the attribute
  • hw_api_content::mimetype — Returns mimetype
  • hw_api_content::read — Read content
  • hw_api_error::count — Returns number of reasons
  • hw_api_error::reason — Returns reason of error
  • hw_api_object::assign — Clones object
  • hw_api_object::attreditable — Checks whether an attribute is editable
  • hw_api_object::count — Returns number of attributes
  • hw_api_object::insert — Inserts new attribute
  • hw_api_object::remove — Removes attribute
  • hw_api_object::title — Returns the title attribute
  • hw_api_object::value — Returns value of attribute
  • hw_api_reason::description — Returns description of reason
  • hw_api_reason::type — Returns type of reason
  • hwapi_attribute_new — Creates instance of class hw_api_attribute
  • hwapi_content_new — Create new instance of class hw_api_content
  • hwapi_hgcsp — Returns object of class hw_api
  • hwapi_object_new — Creates a new instance of class hwapi_object_new


Checks in an object

  • « Hyperwave API Функции
  • hw_api::checkout »
  • PHP Manual
  • Hyperwave API Функции
  • Checks in an object

hw_api::checkin

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::checkin — Checks in an object

Описание

bool hw_api::checkin ( array $parameter )

This function checks in an object or a whole hierarchy of objects. The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'comment', 'mode' and 'objectQuery'. 'version' sets the version of the object. It consists of the major and minor version separated by a period. If the version is not set, the minor version is incremented. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL
Checks in and commits the object. The object must be a document.
HW_API_CHECKIN_RECURSIVE
If the object to check in is a collection, all children will be checked in recursively if they are documents. Trying to check in a collection would result in an error.
HW_API_CHECKIN_FORCE_VERSION_CONTROL
Checks in an object even if it is not under version control.
HW_API_CHECKIN_REVERT_IF_NOT_CHANGED
Check if the new version is different from the last version. Unless this is the case the object will be checked in.
HW_API_CHECKIN_KEEP_TIME_MODIFIED
Keeps the time modified from the most recent object.
HW_API_CHECKIN_NO_AUTO_COMMIT
The object is not automatically committed on check-in.

Список параметров

parameter

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api::checkout


Checks out an object

  • « hw_api::checkin
  • hw_api::children »
  • PHP Manual
  • Hyperwave API Функции
  • Checks out an object

hw_api::checkout

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::checkout — Checks out an object

Описание

bool hw_api::checkout ( array $parameter )

This function checks out an object or a whole hierarchy of objects.

Список параметров

parameter

The parameters array contains the required element 'objectIdentifier' and the optional element 'version', 'mode' and 'objectQuery'. 'mode' can be one of the following values:

HW_API_CHECKIN_NORMAL
Checks out an object. The object must be a document.
HW_API_CHECKIN_RECURSIVE
If the object to check out is a collection, all children will be checked out recursively if they are documents. Trying to check out a collection would result in an error.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api::checkin


Returns children of an object

  • « hw_api::checkout
  • hw_api::content »
  • PHP Manual
  • Hyperwave API Функции
  • Returns children of an object

hw_api::children

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::children — Returns children of an object

Описание

array hw_api::children ( array $parameter )

Retrieves the children of a collection or the attributes of a document. The children can be further filtered by specifying an object query.

Список параметров

parameter

The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

Возвращаемые значения

The return value is an array of objects of type HW_API_Object or HW_API_Error.

Смотрите также

  • hw_api::parents


Returns content of an object

  • « hw_api::children
  • hw_api::copy »
  • PHP Manual
  • Hyperwave API Функции
  • Returns content of an object

hw_api::content

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::content — Returns content of an object

Описание

HW_API_Content hw_api::content ( array $parameter )

This function returns the content of a document as an object of type hw_api_content.

Список параметров

parameter

The parameter array contains the required elements 'objectidentifier' and the optional element 'mode'. The mode can be one of the constants HW_API_CONTENT_ALLLINKS, HW_API_CONTENT_REACHABLELINKS or HW_API_CONTENT_PLAIN.

HW_API_CONTENT_ALLLINKS means to insert all anchors even if the destination is not reachable.

HW_API_CONTENT_REACHABLELINKS tells this method to insert only reachable links and HW_API_CONTENT_PLAIN will lead to document without any links.

Возвращаемые значения

Returns an instance of hw_api_content.


Copies physically

  • « hw_api::content
  • hw_api::dbstat »
  • PHP Manual
  • Hyperwave API Функции
  • Copies physically

hw_api::copy

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::copy — Copies physically

Описание

hw_api_content hw_api::copy ( array $parameter )

This function will make a physical copy including the content if it exists and returns the new object or an error object.

Список параметров

parameter

The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. The optional parameter is 'attributeSelector'`

Возвращаемые значения

Returns the copied object.

Смотрите также

  • hw_api::move
  • hw_api::link


Returns statistics about database server

  • « hw_api::copy
  • hw_api::dcstat »
  • PHP Manual
  • Hyperwave API Функции
  • Returns statistics about database server

hw_api::dbstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dbstat — Returns statistics about database server

Описание

hw_api_object hw_api::dbstat ( array $parameter )

Returns statistics about database server.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::dcstat
  • hw_api::hwstat
  • hw_api::ftstat


Returns statistics about document cache server

  • « hw_api::dbstat
  • hw_api::dstanchors »
  • PHP Manual
  • Hyperwave API Функции
  • Returns statistics about document cache server

hw_api::dcstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dcstat — Returns statistics about document cache server

Описание

hw_api_object hw_api::dcstat ( array $parameter )

Returns statistics about document cache server.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::dbstat
  • hw_api::hwstat
  • hw_api::ftstat


Returns a list of all destination anchors

  • « hw_api::dcstat
  • hw_api::dstofsrcanchor »
  • PHP Manual
  • Hyperwave API Функции
  • Returns a list of all destination anchors

hw_api::dstanchors

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dstanchors — Returns a list of all destination anchors

Описание

array hw_api::dstanchors ( array $parameter )

Retrieves all destination anchors of an object.

Список параметров

parameter

The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

Возвращаемые значения

Смотрите также

  • hw_api::srcanchors


Returns destination of a source anchor

  • « hw_api::dstanchors
  • hw_api::find »
  • PHP Manual
  • Hyperwave API Функции
  • Returns destination of a source anchor

hw_api::dstofsrcanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::dstofsrcanchor — Returns destination of a source anchor

Описание

hw_api_object hw_api::dstofsrcanchor ( array $parameter )

Retrieves the destination object pointed by the specified source anchors. The destination object can either be a destination anchor or a whole document.

Список параметров

parameter

The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

Возвращаемые значения

Смотрите также

  • hw_api::srcanchors
  • hw_api::dstanchors
  • hw_api::objectbyanchor


Search for objects

  • « hw_api::dstofsrcanchor
  • hw_api::ftstat »
  • PHP Manual
  • Hyperwave API Функции
  • Search for objects

hw_api::find

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::find — Search for objects

Описание

array hw_api::find ( array $parameter )

This functions searches for objects either by executing a key or/and full text query. The found objects can further be filtered by an optional object query. They are sorted by their importance. The second search operation is relatively slow and its result can be limited to a certain number of hits. This allows to perform an incremental search, each returning just a subset of all found documents, starting at a given index.

Список параметров

parameter

The parameter array contains the 'keyquery' or/and 'fulltextquery' depending on who you would like to search. Optional parameters are 'objectquery', 'scope', 'languages' and 'attributeselector'. In case of an incremental search the optional parameters 'startIndex', 'numberOfObjectsToGet' and 'exactMatchUnit' can be passed.

Возвращаемые значения


Returns statistics about fulltext server

  • « hw_api::find
  • hw_api::hwstat »
  • PHP Manual
  • Hyperwave API Функции
  • Returns statistics about fulltext server

hw_api::ftstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::ftstat — Returns statistics about fulltext server

Описание

hw_api_object hw_api::ftstat ( array $parameter )

Returns statistics about fulltext server.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::dcstat
  • hw_api::dbstat
  • hw_api::hwstat


Returns statistics about Hyperwave server

  • « hw_api::ftstat
  • hw_api::identify »
  • PHP Manual
  • Hyperwave API Функции
  • Returns statistics about Hyperwave server

hw_api::hwstat

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::hwstat — Returns statistics about Hyperwave server

Описание

hw_api_object hw_api::hwstat ( array $parameter )

Returns statistics about Hyperwave server.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::dcstat
  • hw_api::dbstat
  • hw_api::ftstat


Log into Hyperwave Server

  • « hw_api::hwstat
  • hw_api::info »
  • PHP Manual
  • Hyperwave API Функции
  • Log into Hyperwave Server

hw_api::identify

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::identify — Log into Hyperwave Server

Описание

bool hw_api::identify ( array $parameter )

Logs into the Hyperwave Server.

Список параметров

parameter

The parameter array must contain the elements 'username' and 'password'.

Возвращаемые значения

Returns an object of typeHW_API_Error if identification failed or TRUE if it was successful.


Returns information about server configuration

  • « hw_api::identify
  • hw_api::insert »
  • PHP Manual
  • Hyperwave API Функции
  • Returns information about server configuration

hw_api::info

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::info — Returns information about server configuration

Описание

array hw_api::info ( array $parameter )

Returns information about server configuration.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::dcstat
  • hw_api::dbstat
  • hw_api::ftstat
  • hw_api::hwstat


Inserts a new object

  • « hw_api::info
  • hw_api::insertanchor »
  • PHP Manual
  • Hyperwave API Функции
  • Inserts a new object

hw_api::insert

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insert — Inserts a new object

Описание

hw_api_object hw_api::insert ( array $parameter )

Insert a new object. The object type can be user, group, document or anchor. Depending on the type other object attributes has to be set.

Список параметров

parameter

The parameter array contains the required elements 'object' and 'content' (if the object is a document) and the optional parameters 'parameters', 'mode' and 'attributeSelector'. The 'object' must contain all attributes of the object. 'parameters' is an object as well holding further attributes like the destination (attribute key is 'Parent'). 'content' is the content of the document. 'mode' can be a combination of the following flags:

HW_API_INSERT_NORMAL
The object in inserted into the server.
HW_API_INSERT_FORCE_VERSION_CONTROL
HW_API_INSERT_AUTOMATIC_CHECKOUT
HW_API_INSERT_PLAIN
HW_API_INSERT_KEEP_TIME_MODIFIED
HW_API_INSERT_DELAY_INDEXING

Возвращаемые значения

Смотрите также

  • hw_api::replace


Inserts a new object of type anchor

  • « hw_api::insert
  • hw_api::insertcollection »
  • PHP Manual
  • Hyperwave API Функции
  • Inserts a new object of type anchor

hw_api::insertanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insertanchor — Inserts a new object of type anchor

Описание

hw_api_object hw_api::insertanchor ( array $parameter )

This function is a shortcut for hwapi_insert(). It inserts an object of type anchor and sets some of the attributes required for an anchor.

Список параметров

parameter

The parameter array contains the required elements 'object' and 'documentIdentifier' and the optional elements 'destinationIdentifier', 'parameter', 'hint' and 'attributeSelector'. The 'documentIdentifier' specifies the document where the anchor shall be inserted. The target of the anchor is set in 'destinationIdentifier' if it already exists. If the target does not exists the element 'hint' has to be set to the name of object which is supposed to be inserted later. Once it is inserted the anchor target is resolved automatically.

Возвращаемые значения

Смотрите также

  • hw_api::insert
  • hw_api::insertdocument
  • hw_api::insertcollection


Inserts a new object of type collection

  • « hw_api::insertanchor
  • hw_api::insertdocument »
  • PHP Manual
  • Hyperwave API Функции
  • Inserts a new object of type collection

hw_api::insertcollection

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insertcollection — Inserts a new object of type collection

Описание

hw_api_object hw_api::insertcollection ( array $parameter )

This function is a shortcut for hwapi_insert(). It inserts an object of type collection and sets some of the attributes required for a collection.

Список параметров

parameter

The parameter array contains the required elements 'object' and 'parentIdentifier' and the optional elements 'parameter' and 'attributeSelector'. See hwapi_insert() for the meaning of each element.

Возвращаемые значения

Смотрите также

  • hw_api::insert
  • hw_api::insertdocument
  • hw_api::insertanchor


Inserts a new object of type document

  • « hw_api::insertcollection
  • hw_api::link »
  • PHP Manual
  • Hyperwave API Функции
  • Inserts a new object of type document

hw_api::insertdocument

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::insertdocument — Inserts a new object of type document

Описание

hw_api_object hw_api::insertdocument ( array $parameter )

This function is a shortcut for hwapi_insert(). It inserts an object with content and sets some of the attributes required for a document.

Список параметров

parameter

The parameter array contains the required elements 'object', 'parentIdentifier' and 'content' and the optional elements 'mode', 'parameter' and 'attributeSelector'.

See hwapi_insert() for the meaning of each element.

Возвращаемые значения

Смотрите также

  • hw_api::insert
  • hw_api::insertcollection
  • hw_api::insertanchor


Creates a link to an object

  • « hw_api::insertdocument
  • hw_api::lock »
  • PHP Manual
  • Hyperwave API Функции
  • Creates a link to an object

hw_api::link

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::link — Creates a link to an object

Описание

bool hw_api::link ( array $parameter )

Creates a link to an object. Accessing this link is like accessing the object to links points to.

Список параметров

parameter

The parameter array contains the required elements 'objectIdentifier' and 'destinationParentIdentifier'. 'destinationParentIdentifier' is the target collection.

Возвращаемые значения

The function returns TRUE on success or an error object.

Смотрите также

  • hw_api::copy


Locks an object

  • « hw_api::link
  • hw_api::move »
  • PHP Manual
  • Hyperwave API Функции
  • Locks an object

hw_api::lock

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::lock — Locks an object

Описание

bool hw_api::lock ( array $parameter )

Locks an object for exclusive editing by the user calling this function. The object can be only unlocked by this user or the system user.

Список параметров

parameter

The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'.

'mode' determines how an object is locked. HW_API_LOCK_NORMAL means, an object is locked until it is unlocked. HW_API_LOCK_RECURSIVE is only valid for collection and locks all objects within the collection and possible subcollections. HW_API_LOCK_SESSION means, an object is locked only as long as the session is valid.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api::unlock


Moves object between collections

  • « hw_api::lock
  • hw_api::object »
  • PHP Manual
  • Hyperwave API Функции
  • Moves object between collections

hw_api::move

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::move — Moves object between collections

Описание

bool hw_api::move ( array $parameter )

Moves object between collections.

Список параметров

parameter

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_objrec2array()


Retrieve attribute information

  • « hw_api::move
  • hw_api::objectbyanchor »
  • PHP Manual
  • Hyperwave API Функции
  • Retrieve attribute information

hw_api::object

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::object — Retrieve attribute information

Описание

hw_api_object hw_api::object ( array $parameter )

This function retrieves the attribute information of an object of any version. It will not return the document content.

Список параметров

parameter

The parameter array contains the required elements 'objectIdentifier' and the optional elements 'attributeSelector' and 'version'.

Возвращаемые значения

The returned object is an instance of class HW_API_Object on success or HW_API_Error if an error occurred.

Примеры

This simple example retrieves an object and checks for errors.

Пример #1 Retrieve an object

<?php
function handle_error($error)
{
  $reason = $error->reason(0);
  echo "Type: <b>";
  switch ($reason->type()) {
    case 0:
      echo "Error";
      break;
    case 1:
      echo "Warning";
      break;
    case 2:
      echo "Message";
      break;
  }
  echo "</b><br />\n";
  echo "Description: " . $reason->description("en") . "<br />\n";
}

function list_attr($obj)
{
  echo "<table>\n";
  $count = $obj->count();
  for ($i=0; $i<$count; $i++) {
    $attr = $obj->attribute($i);
    printf("<tr><td align=\"right\" bgcolor=\"#c0c0c0\"><b>%s</b></td><td bgcolor=\"#F0F0F0\">%s</td></tr>\n",
             $attr->key(), $attr->value());
  }
  echo "</table>\n";
}

$hwapi = hwapi_hgcsp($g_config[HOSTNAME]);
$parms = array("objectIdentifier"=>"rootcollection", "attributeSelector"=>array("Title", "Name", "DocumentType"));
$root = $hwapi->object($parms);
if (get_class($root) == "HW_API_Error") {
  handle_error($root);
  exit;
}
list_attr($root);
?>

Смотрите также

  • hw_api::content


Returns the object an anchor belongs to

  • « hw_api::object
  • hw_api::parents »
  • PHP Manual
  • Hyperwave API Функции
  • Returns the object an anchor belongs to

hw_api::objectbyanchor

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::objectbyanchor — Returns the object an anchor belongs to

Описание

hw_api_object hw_api::objectbyanchor ( array $parameter )

This function retrieves an object the specified anchor belongs to.

Список параметров

parameter

The parameter array contains the required element 'objectIdentifier' and the optional element 'attributeSelector'.

Возвращаемые значения

Смотрите также

  • hw_api::dstofsrcanchor
  • hw_api::srcanchors
  • hw_api::dstanchors


Returns parents of an object

  • « hw_api::objectbyanchor
  • hw_api::remove »
  • PHP Manual
  • Hyperwave API Функции
  • Returns parents of an object

hw_api::parents

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::parents — Returns parents of an object

Описание

array hw_api::parents ( array $parameter )

Retrieves the parents of an object. The parents can be further filtered by specifying an object query.

Список параметров

parameter

The parameter array contains the required elements 'objectidentifier' and the optional elements 'attributeselector' and 'objectquery'.

Возвращаемые значения

The return value is an array of objects of type HW_API_Object or HW_API_Error.

Смотрите также

  • hw_api::children


Delete an object

  • « hw_api::parents
  • hw_api::replace »
  • PHP Manual
  • Hyperwave API Функции
  • Delete an object

hw_api::remove

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::remove — Delete an object

Описание

bool hw_api::remove ( array $parameter )

Removes an object from the specified parent. Collections will be removed recursively.

Список параметров

parameter

You can pass an optional object query to remove only those objects which match the query. An object will be deleted physically if it is the last instance.

The parameter array contains the required elements 'objectidentifier' and 'parentidentifier'. If you want to remove a user or group 'parentidentifier' can be skipped.

The optional parameter 'mode' determines how the deletion is performed. In normal mode the object will not be removed physically until all instances are removed. In physical mode all instances of the object will be deleted immediately. In removelinks mode all references to and from the objects will be deleted as well. In nonrecursive the deletion is not performed recursive. Removing a collection which is not empty will cause an error.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api::move


Replaces an object

  • « hw_api::remove
  • hw_api::setcommittedversion »
  • PHP Manual
  • Hyperwave API Функции
  • Replaces an object

hw_api::replace

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::replace — Replaces an object

Описание

hw_api_object hw_api::replace ( array $parameter )

Replaces the attributes and the content of an object.

Список параметров

parameter

The parameter array contains the required elements 'objectIdentifier' and 'object' and the optional parameters 'content', 'parameters', 'mode' and 'attributeSelector'. 'objectIdentifier' contains the object to be replaced. 'object' contains the new object. 'content' contains the new content. 'parameters' contain extra information for HTML documents. HTML_Language is the letter abbreviation of the language of the title. HTML_Base sets the base attribute of the HTML document.

'mode' can be a combination of the following flags:

HW_API_REPLACE_NORMAL
The object on the server is replace with the object passed.
HW_API_REPLACE_FORCE_VERSION_CONTROL
HW_API_REPLACE_AUTOMATIC_CHECKOUT
HW_API_REPLACE_AUTOMATIC_CHECKIN
HW_API_REPLACE_PLAIN
HW_API_REPLACE_REVERT_IF_NOT_CHANGED
HW_API_REPLACE_KEEP_TIME_MODIFIED

Возвращаемые значения

Смотрите также

  • hw_api::insert


Commits version other than last version

  • « hw_api::replace
  • hw_api::srcanchors »
  • PHP Manual
  • Hyperwave API Функции
  • Commits version other than last version

hw_api::setcommittedversion

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::setcommittedversion — Commits version other than last version

Описание

hw_api_object hw_api::setcommittedversion ( array $parameter )

Commits a version of a document. The committed version is the one which is visible to users with read access. By default the last version is the committed version.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::checkin
  • hw_api::checkout


Returns a list of all source anchors

  • « hw_api::setcommittedversion
  • hw_api::srcsofdst »
  • PHP Manual
  • Hyperwave API Функции
  • Returns a list of all source anchors

hw_api::srcanchors

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::srcanchors — Returns a list of all source anchors

Описание

array hw_api::srcanchors ( array $parameter )

Retrieves all source anchors of an object.

Список параметров

parameter

The parameter array contains the required element 'objectIdentifier' and the optional elements 'attributeSelector' and 'objectQuery'.

Возвращаемые значения

Смотрите также

  • hw_api::dstanchors


Returns source of a destination object

  • « hw_api::srcanchors
  • hw_api::unlock »
  • PHP Manual
  • Hyperwave API Функции
  • Returns source of a destination object

hw_api::srcsofdst

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::srcsofdst — Returns source of a destination object

Описание

array hw_api::srcsofdst ( array $parameter )

Retrieves all the source anchors pointing to the specified destination. The destination object can either be a destination anchor or a whole document.

Список параметров

parameter

The parameters array contains the required element 'objectIdentifier' and the optional element 'attributeSelector' and 'objectQuery'. The function returns an array of objects or an error.

Возвращаемые значения

Смотрите также

  • hw_api::dstofsrcanchor


Unlocks a locked object

  • « hw_api::srcsofdst
  • hw_api::user »
  • PHP Manual
  • Hyperwave API Функции
  • Unlocks a locked object

hw_api::unlock

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::unlock — Unlocks a locked object

Описание

bool hw_api::unlock ( array $parameter )

Unlocks a locked object. Only the user who has locked the object and the system user may unlock an object.

Список параметров

parameter

The parameter array contains the required element 'objectIdentifier' and the optional parameters 'mode' and 'objectquery'. The meaning of 'mode' is the same as in function hwapi_lock().

Возвращаемые значения

Returns TRUE on success or an object of class HW_API_Error.

Смотрите также

  • hw_api::lock


Returns the own user object

  • « hw_api::unlock
  • hw_api::userlist »
  • PHP Manual
  • Hyperwave API Функции
  • Returns the own user object

hw_api::user

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::user — Returns the own user object

Описание

hw_api_object hw_api::user ( array $parameter )

Returns the own user object.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::userlist


Returns a list of all logged in users

  • « hw_api::user
  • hw_api_attribute::key »
  • PHP Manual
  • Hyperwave API Функции
  • Returns a list of all logged in users

hw_api::userlist

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api::userlist — Returns a list of all logged in users

Описание

array hw_api::userlist ( array $parameter )

Returns a list of all logged in users.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::user


Returns key of the attribute

  • « hw_api::userlist
  • hw_api_attribute::langdepvalue »
  • PHP Manual
  • Hyperwave API Функции
  • Returns key of the attribute

hw_api_attribute::key

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::key — Returns key of the attribute

Описание

string hw_api_attribute::key ( void )

Returns the name of the attribute.

Возвращаемые значения

Returns the name of the attribute as a string.

Смотрите также

  • hw_api_attribute::value


Returns value for a given language

  • « hw_api_attribute::key
  • hw_api_attribute::value »
  • PHP Manual
  • Hyperwave API Функции
  • Returns value for a given language

hw_api_attribute::langdepvalue

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::langdepvalue — Returns value for a given language

Описание

string hw_api_attribute::langdepvalue ( string $language )

Returns the value in the given language of the attribute.

Список параметров

language

Возвращаемые значения

Returns the value of the attribute as a string.

Смотрите также

  • hw_api_attribute::value


Returns value of the attribute

  • « hw_api_attribute::langdepvalue
  • hw_api_attribute::values »
  • PHP Manual
  • Hyperwave API Функции
  • Returns value of the attribute

hw_api_attribute::value

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::value — Returns value of the attribute

Описание

string hw_api_attribute::value ( void )

Gets the value of the attribute.

Возвращаемые значения

Returns the value, as a string.

Смотрите также

  • hw_api_attribute::key
  • hw_api_attribute::values


Returns all values of the attribute

  • « hw_api_attribute::value
  • hw_api_content::mimetype »
  • PHP Manual
  • Hyperwave API Функции
  • Returns all values of the attribute

hw_api_attribute::values

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_attribute::values — Returns all values of the attribute

Описание

array hw_api_attribute::values ( void )

Gets all values of the attribute.

Возвращаемые значения

Returns an array of attribute values.

Смотрите также

  • hw_api_attribute::value


Returns mimetype

  • « hw_api_attribute::values
  • hw_api_content::read »
  • PHP Manual
  • Hyperwave API Функции
  • Returns mimetype

hw_api_content::mimetype

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_content::mimetype — Returns mimetype

Описание

string hw_api_content::mimetype ( void )

Returns the mimetype of the content.

Возвращаемые значения

Returns the mimetype as a string.


Read content

  • « hw_api_content::mimetype
  • hw_api_error::count »
  • PHP Manual
  • Hyperwave API Функции
  • Read content

hw_api_content::read

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_content::read — Read content

Описание

string hw_api_content::read ( string $buffer , int $len )

Reads len bytes from the content into the given buffer.

Список параметров

buffer

len

Number of bytes to read.

Возвращаемые значения


Returns number of reasons

  • « hw_api_content::read
  • hw_api_error::reason »
  • PHP Manual
  • Hyperwave API Функции
  • Returns number of reasons

hw_api_error::count

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_error::count — Returns number of reasons

Описание

int hw_api_error::count ( void )

Returns the number of error reasons.

Возвращаемые значения

Returns the number of errors, as an integer.

Смотрите также

  • hw_api_error::reason


Returns reason of error

  • « hw_api_error::count
  • hw_api_object::assign »
  • PHP Manual
  • Hyperwave API Функции
  • Returns reason of error

hw_api_error::reason

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_error::reason — Returns reason of error

Описание

HW_API_Reason hw_api_error::reason ( void )

Returns the first error reason.

Возвращаемые значения

Смотрите также

  • hw_api_error::count


Clones object

  • « hw_api_error::reason
  • hw_api_object::attreditable »
  • PHP Manual
  • Hyperwave API Функции
  • Clones object

hw_api_object::assign

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::assign — Clones object

Описание

bool hw_api_object::assign ( array $parameter )

Clones the attributes of an object.

Список параметров

parameter

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Checks whether an attribute is editable

  • « hw_api_object::assign
  • hw_api_object::count »
  • PHP Manual
  • Hyperwave API Функции
  • Checks whether an attribute is editable

hw_api_object::attreditable

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::attreditable — Checks whether an attribute is editable

Описание

bool hw_api_object::attreditable ( array $parameter )

Checks whether an attribute is editable.

Список параметров

parameter

Возвращаемые значения

Returns TRUE if the attribute is editable, FALSE otherwise.


Returns number of attributes

  • « hw_api_object::attreditable
  • hw_api_object::insert »
  • PHP Manual
  • Hyperwave API Функции
  • Returns number of attributes

hw_api_object::count

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::count — Returns number of attributes

Описание

int hw_api_object::count ( array $parameter )

Returns the number of attributes.

Список параметров

parameter

Возвращаемые значения

Returns the number as an integer.


Inserts new attribute

  • « hw_api_object::count
  • hw_api_object::remove »
  • PHP Manual
  • Hyperwave API Функции
  • Inserts new attribute

hw_api_object::insert

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::insert — Inserts new attribute

Описание

bool hw_api_object::insert ( HW_API_Attribute $attribute )

Adds an attribute to the object.

Список параметров

attribute

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api_object::remove


Removes attribute

  • « hw_api_object::insert
  • hw_api_object::title »
  • PHP Manual
  • Hyperwave API Функции
  • Removes attribute

hw_api_object::remove

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::remove — Removes attribute

Описание

bool hw_api_object::remove ( string $name )

Removes the attribute with the given name.

Список параметров

name

The attribute name.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • hw_api_object::insert


Returns the title attribute

  • « hw_api_object::remove
  • hw_api_object::value »
  • PHP Manual
  • Hyperwave API Функции
  • Returns the title attribute

hw_api_object::title

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::title — Returns the title attribute

Описание

string hw_api_object::title ( array $parameter )

Returns the title attribute.

Список параметров

parameter

Возвращаемые значения

Returns the title as a string.


Returns value of attribute

  • « hw_api_object::title
  • hw_api_reason::description »
  • PHP Manual
  • Hyperwave API Функции
  • Returns value of attribute

hw_api_object::value

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_object::value — Returns value of attribute

Описание

string hw_api_object::value ( string $name )

Returns value of an attribute.

Список параметров

name

The attribute name.

Возвращаемые значения

Returns the value of the attribute with the given name or FALSE if an error occurred.


Returns description of reason

  • « hw_api_object::value
  • hw_api_reason::type »
  • PHP Manual
  • Hyperwave API Функции
  • Returns description of reason

hw_api_reason::description

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_reason::description — Returns description of reason

Описание

string hw_api_reason::description ( void )

Returns the description of a reason

Возвращаемые значения

Returns the description, as a string.


Returns type of reason

  • « hw_api_reason::description
  • hwapi_attribute_new »
  • PHP Manual
  • Hyperwave API Функции
  • Returns type of reason

hw_api_reason::type

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hw_api_reason::type — Returns type of reason

Описание

HW_API_Reason hw_api_reason::type ( void )

Returns the type of a reason.

Возвращаемые значения

Returns an instance of HW_API_Reason.


Creates instance of class hw_api_attribute

  • « hw_api_reason::type
  • hwapi_content_new »
  • PHP Manual
  • Hyperwave API Функции
  • Creates instance of class hw_api_attribute

hwapi_attribute_new

(Информация о версии неизвестна, возможно, только в SVN)

hwapi_attribute_new — Creates instance of class hw_api_attribute

Описание

HW_API_Attribute hwapi_attribute_new ([ string $name [, string $value ]] )

Creates a new instance of hw_api_attribute with the given name and value.

Список параметров

name

The attribute name.

value

The attribute value.

Возвращаемые значения

Returns an instance of hw_api_attribute.


Create new instance of class hw_api_content

  • « hwapi_attribute_new
  • hwapi_hgcsp »
  • PHP Manual
  • Hyperwave API Функции
  • Create new instance of class hw_api_content

hwapi_content_new

(Информация о версии неизвестна, возможно, только в SVN)

hwapi_content_new — Create new instance of class hw_api_content

Описание

HW_API_Content hwapi_content_new ( string $content , string $mimetype )

Creates a new content object from the string content.

Список параметров

content

mimetype

The mimetype for the contents.

Возвращаемые значения


Returns object of class hw_api

  • « hwapi_content_new
  • hwapi_object_new »
  • PHP Manual
  • Hyperwave API Функции
  • Returns object of class hw_api

hwapi_hgcsp

(PHP 4, PHP 5 < 5.2.0, PECL hwapi SVN)

hwapi_hgcsp — Returns object of class hw_api

Описание

HW_API hwapi_hgcsp ( string $hostname [, int $port ] )

Opens a connection to the Hyperwave server on host hostname. The protocol used is HGCSP.

Список параметров

hostname

The host name.

port

If you do not pass a port number, 418 is used.

Возвращаемые значения

Returns an instance of HW_API.


Creates a new instance of class hwapi_object_new

  • « hwapi_hgcsp
  • LDAP »
  • PHP Manual
  • Hyperwave API Функции
  • Creates a new instance of class hwapi_object_new

hwapi_object_new

(Информация о версии неизвестна, возможно, только в SVN)

hwapi_object_new — Creates a new instance of class hwapi_object_new

Описание

hw_api_object hwapi_object_new ( array $parameter )

Creates a new instance of the class hw_api_object.

Список параметров

parameter

Возвращаемые значения

Смотрите также

  • hw_api::lock


Облегчённый протокол доступа к каталогам (LDAP)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Использование вызовов PHP LDAP
  • Примеры
    • Базовое использование
  • LDAP
    • ldap_8859_to_t61 — Переводит символы из кодировки ISO-8859 в t61
    • ldap_add — Добавить запись в LDAP директорию
    • ldap_bind — Привязать к LDAP директории
    • ldap_close — Псевдоним ldap_unbind
    • ldap_compare — Сравнить значение атрибута, найденного в записи определённой DN
    • ldap_connect — Подключиться к серверу LDAP
    • ldap_control_paged_result_response — Retrieve the LDAP pagination cookie
    • ldap_control_paged_result — Send LDAP pagination control
    • ldap_count_entries — Посчитать число записей в результатах поиска
    • ldap_delete — Удаляет запись из директории LDAP
    • ldap_dn2ufn — Преобразовать DN в удобный для пользователя формат именования
    • ldap_err2str — Преобразовать код ошибки LDAP в строковое сообщение об ошибке
    • ldap_errno — Возвратить номер ошибки LDAP последней команды
    • ldap_error — Возвратить сообщение об ошибке LDAP последней команды
    • ldap_escape — Escape a string for use in an LDAP filter or DN
    • ldap_explode_dn — Разделить DN на его составные части
    • ldap_first_attribute — Вернуть первый атрибут
    • ldap_first_entry — Возвратить первый идентификатор результата first result id
    • 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 — Добавить значения атрибута к текущим атрибутам
    • ldap_mod_del — Удалить значения атрибута из текущих атрибутов
    • ldap_mod_replace — Заменить значения атрибутов на новые
    • ldap_modify_batch — Batch and execute modifications on an LDAP entry
    • ldap_modify — Изменить LDAP запись
    • ldap_next_attribute — Получить следующий атрибут из результата
    • ldap_next_entry — Получить следующую запись результата
    • ldap_next_reference — Возвращает следующую справку
    • ldap_parse_reference — Извлекает информацию из справочника
    • ldap_parse_result — Извлечь информацию из результата
    • ldap_read — Читает запись
    • ldap_rename — Изменить имя записи
    • ldap_sasl_bind — Привязать к LDAP директории, используя SASL
    • ldap_search — Поиск по LDAP дереву
    • ldap_set_option — Установить значение данной опции
    • ldap_set_rebind_proc — Установить функцию обратного вызова для повторного связывания при ссылочном поиске
    • ldap_sort — Сортирует записи LDAP
    • ldap_start_tls — Запускает TLS
    • ldap_t61_to_8859 — Переводит символы из кодировки t61 в ISO-8859
    • ldap_unbind — Разорвать привязку к директории LDAP


Введение

LDAP - это облегчённый протокол доступа к каталогам, используемый для получения доступа к серверам каталогов. Каталог - специальный вид базы данных, которая содержит информацию в древовидной структуре.

Концепция похожа на структуру каталогов на жестком диске, за исключением того, что в этом контексте корневой каталог - это "Мир", и первый уровень подкаталогов - "Страны". Более низшие уровни структуры каталогов содержат записи для компаний, организаций или мест, в то время как еще ниже мы находим записи каталога для людей, и возможно, оборудования или документов.

Для обращения к файлу в подкаталоге на вашем жестком диске, вы могли бы использовать что-нибудь наподобие этого:

   /usr/local/myapp/docs

Слеш отмечает каждое подразделение в ссылке, и последовательность читается слева направо.

Эквивалентом полностью определенной ссылки на файл в LDAP является так называемое отличительное имя, упомянутое просто как "dn". К примеру, dn может быть таким:

   cn=John Smith,ou=Accounts,o=My Company,c=US

Запятая отмечает каждое подразделение в ссылке, и последовательность читается справа налево. Вы читали бы этот dn как:

   Страна (country) = US
   Организация (organization) = My Company
   Подразделение (organizationalUnit) = Accounts
   Имя (commonName) = John Smith

Таким образом, также как нет жестких правил для организации структуры каталогов жесткого диска, так и менеджер сервера каталогов может настроить любую структуру, которая является значимой для поставленных цели. Однако есть некоторые соглашения, которые используются.

Много информации о LDAP можно найти на

  • » Mozilla

  • » OpenLDAP Project

  • Internet Engineering Taskforce RFCs с » 4510 по » 4519.

Netscape SDK содержит полезное » Руководство программиста в HTML формате.


Требования

Необходимо получить и скомпилировать клиентские библиотеки LDAP из » OpenLDAP или » Bind9.net для того, чтобы скомпилировать РНР с поддержкой LDAP. Начиная с PHP 5.6 вы должны использовать OpenLDAP 2.4 или более свежий.


Установка

Поддержка LDAP в PHP не доступна по умолчанию. Для активации нужно использовать опцию --with-ldap[=DIR] при компиляции PHP, где DIR - это каталог установки базы LDAP. Для включения поддержки SASL, убедитесь что использована опция --with-ldap-sasl[=DIR] , и что sasl.h существует в системе.

Замечание: Примечание для пользователей Win32

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: libeay32.dll и ssleay32.dll

Для того чтобы использовать библиотеки Oracle LDAP, должны быть установлены надлежащие параметры окружающей среды Oracle.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации LDAP
Имя | По умолчанию | Меняемо | Список изменений
ldap.max_links | "-1" | PHP_INI_SYSTEM |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

ldap.max_links integer

Максимальное колиечство LDAP соединений на процесс.


Типы ресурсов

Большинство LDAP функций работает с возвращаемыми ресурсами (например. ldap_connect() возвращает положительный идентификатор ссылки LDAP, требуемый большинством функций LDAP).


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

LDAP_DEREF_NEVER (integer)
LDAP_DEREF_SEARCHING (integer)
LDAP_DEREF_FINDING (integer)
LDAP_DEREF_ALWAYS (integer)
LDAP_OPT_DEREF (integer)
Определяет альтернативные правила для следующих псевдонимов на сервере.
LDAP_OPT_SIZELIMIT (integer)

Определяет максимальное количество записей, которые могут быть возвращены при операции поиска.

Замечание: Предел фактического размера для операций также ограничен максимальным количеством возвращаемых записей, которое задаётся конфигурацией сервера. Меньшее из этих двух параметров является фактическим ограничением размера.

LDAP_OPT_TIMELIMIT (integer)
Определяет количество секунд для ожидания результатов поиска.

Замечание: Предел фактического времени выполнения для операций также ограничен максимальным временем, которое задаётся конфигурацией сервера. Меньшее из этих двух параметров является фактическим ограничением времени выполнения.

LDAP_OPT_NETWORK_TIMEOUT (integer)
Опция для ldap_set_option разрешает настройку сетевого таймаута. (Доступна с PHP 5.3.0)
LDAP_OPT_PROTOCOL_VERSION (integer)
Определяет используемый протокол LDAP (V2 или V3).
LDAP_OPT_ERROR_NUMBER (integer)
LDAP_OPT_REFERRALS (integer)
Определяет, следовать ли автоматически рефералам, возвращенным сервером LDAP.
LDAP_OPT_RESTART (integer)
LDAP_OPT_HOST_NAME (integer)
LDAP_OPT_ERROR_STRING (integer)
LDAP_OPT_DIAGNOSTIC_MESSAGE (integer)
LDAP_OPT_MATCHED_DN (integer)
LDAP_OPT_SERVER_CONTROLS (integer)
Определяет список серверных элементов управления по умолчанию, который должен быть отправлен с каждым запросом.
LDAP_OPT_CLIENT_CONTROLS (integer)
Определяет список клиентских элементов управления по умолчанию, которые должны обрабатываться с каждым запросом.
LDAP_OPT_DEBUG_LEVEL (integer)
Определяет поразрядный уровень для отладочных трассировок.
LDAP_OPT_X_KEEPALIVE_IDLE (integer)
Определяет число секунд, в течении которого соединение должно быть неактивным, прежде чем начнут посылаться пакеты keepalive.
LDAP_OPT_X_KEEPALIVE_PROBES (integer)
Определяет максимальное количество пакетов keepalive, которое должно быть послано, прежде чем соединение будет разорвано.
LDAP_OPT_X_KEEPALIVE_INTERVAL (integer)
Определяет интервал в секундах между посылками keepalive.
LDAP_OPT_X_TLS_CACERTDIR (string)
Определяет путь к директории, в которой лежат сертификаты CA.
LDAP_OPT_X_TLS_CACERTFILE (string)
Определяет полный путь к файлу сертификата CA.
LDAP_OPT_X_TLS_CERTFILE (string)
Определяет полный путь к файлу сертификата.
LDAP_OPT_X_TLS_CIPHER_SUITE (string)
Задает допустимый набор шифров.
LDAP_OPT_X_TLS_CRLCHECK (integer)
Определяет стратегию оценки CRL. Одна из констант: LDAP_OPT_X_TLS_CRL_NONE,LDAP_OPT_X_TLS_CRL_PEER, LDAP_OPT_X_TLS_CRL_ALL.

Замечание: Эта опция корректна только для OpenSSL.

LDAP_OPT_X_TLS_CRLFILE (string)
Определяет полный путь к файлу CRL.

Замечание: Эта опция корректна только для GnuTLS.

LDAP_OPT_X_TLS_DHFILE (string)
Определяет полный путь к файлу, содержащему параметры Протокола Диффи-Хеллмана.

Замечание: Эта опция игнорируется GnuTLS и Mozilla NSS.

LDAP_OPT_X_TLS_KEYFILE (string)
Определяет полный путь к файлю ключа сертификата.
LDAP_OPT_X_TLS_PROTOCOL_MIN (integer)
Определяет минимальную версию протокола. Одна из констант: LDAP_OPT_X_TLS_PROTOCOL_SSL2, LDAP_OPT_X_TLS_PROTOCOL_SSL3, LDAP_OPT_X_TLS_PROTOCOL_TLS1_0, LDAP_OPT_X_TLS_PROTOCOL_TLS1_1, LDAP_OPT_X_TLS_PROTOCOL_TLS1_2
LDAP_OPT_X_TLS_RANDOM_FILE (string)
LDAP_OPT_X_TLS_REQUIRE_CERT (integer)
Определяет стратегию проверки сертификата. Одна из констант: LDAP_OPT_X_TLS_NEVER, LDAP_OPT_X_TLS_HARD, LDAP_OPT_X_TLS_DEMAND, LDAP_OPT_X_TLS_ALLOW, LDAP_OPT_X_TLS_TRY.
GSLC_SSL_NO_AUTH (integer)
GSLC_SSL_ONEWAY_AUTH (integer)
GSLC_SSL_TWOWAY_AUTH (integer)


Использование вызовов PHP LDAP

Прежде чем использовать вызовы LDAP вам нужно знать следующее:

  • Имя или адрес сервера каталогов, который вы будете использовать

  • "base dn" сервера (часть мирового каталога, который хранится на этом сервере, который может быть "o=MyCompany,c=US")

  • Возможно нужен пароль, чтобы получить доступ к серверу (много серверов обеспечивает доступ для чтения для "анонимный привязки", но требуют пароль для чего-либо еще)

Типичная последовательность LDAP-вызовов, которые вы будете делать в приложении следуя этой схеме:

  ldap_connect()    // установить соединение с сервером
     |
  ldap_bind()       // анонимный вход или аутентификация по "login"
     |
  выполнение каких-либо действий, таких как поиск или обновление каталога
  и отображение результатов
     |
  ldap_close()      // закрытие соединения


  • « Использование вызовов PHP LDAP
  • Базовое использование »
  • PHP Manual
  • LDAP
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

Получить информацию для всех записей, где фамилия начинается с "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

Содержание

  • ldap_8859_to_t61 — Переводит символы из кодировки ISO-8859 в t61
  • ldap_add — Добавить запись в LDAP директорию
  • ldap_bind — Привязать к LDAP директории
  • ldap_close — Псевдоним ldap_unbind
  • ldap_compare — Сравнить значение атрибута, найденного в записи определённой DN
  • ldap_connect — Подключиться к серверу LDAP
  • ldap_control_paged_result_response — Retrieve the LDAP pagination cookie
  • ldap_control_paged_result — Send LDAP pagination control
  • ldap_count_entries — Посчитать число записей в результатах поиска
  • ldap_delete — Удаляет запись из директории LDAP
  • ldap_dn2ufn — Преобразовать DN в удобный для пользователя формат именования
  • ldap_err2str — Преобразовать код ошибки LDAP в строковое сообщение об ошибке
  • ldap_errno — Возвратить номер ошибки LDAP последней команды
  • ldap_error — Возвратить сообщение об ошибке LDAP последней команды
  • ldap_escape — Escape a string for use in an LDAP filter or DN
  • ldap_explode_dn — Разделить DN на его составные части
  • ldap_first_attribute — Вернуть первый атрибут
  • ldap_first_entry — Возвратить первый идентификатор результата first result id
  • 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 — Добавить значения атрибута к текущим атрибутам
  • ldap_mod_del — Удалить значения атрибута из текущих атрибутов
  • ldap_mod_replace — Заменить значения атрибутов на новые
  • ldap_modify_batch — Batch and execute modifications on an LDAP entry
  • ldap_modify — Изменить LDAP запись
  • ldap_next_attribute — Получить следующий атрибут из результата
  • ldap_next_entry — Получить следующую запись результата
  • ldap_next_reference — Возвращает следующую справку
  • ldap_parse_reference — Извлекает информацию из справочника
  • ldap_parse_result — Извлечь информацию из результата
  • ldap_read — Читает запись
  • 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 »
  • PHP Manual
  • LDAP
  • Переводит символы из кодировки ISO-8859 в t61

ldap_8859_to_t61

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ldap_8859_to_t61 — Переводит символы из кодировки ISO-8859 в t61

Описание

string ldap_8859_to_t61 ( string $value )

Переводит символы из кодировки ISO-8859 в t61.

Эта функция полезна, если необходимо работать с устаревшим LDAPv2 сервером.

Список параметров

value

Текст, которые должен быть переведён.

Возвращаемые значения

Возвращает кодированный в t61 параметр value.

Смотрите также

  • ldap_t61_to_8859() - Переводит символы из кодировки t61 в ISO-8859


Добавить запись в LDAP директорию

  • « ldap_8859_to_t61
  • ldap_bind »
  • PHP Manual
  • LDAP
  • Добавить запись в LDAP директорию

ldap_add

(PHP 4, PHP 5, PHP 7)

ldap_add — Добавить запись в LDAP директорию

Описание

bool ldap_add ( resource $link_identifier , string $dn , array $entry )

Добавляет запись в LDAP директорию.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP объекта.

entry

Массив, который определяет информацию о записи. Значения в записи индексируются индивидуальными атрибутами. В случае множественных значений для атрибута, они индексируются с использованием целых чисел, начиная с 0.

<?php
$entry["attribute1"] = "value";
$entry["attribute2"][0] = "value1";
$entry["attribute2"][1] = "value2";
?>

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Полный пример с проверкой подлинности привязки

<?php
$ds = ldap_connect("localhost");  // предположим, что сервер LDAP находится тут

if ($ds) {
    // привязка к соответствующему dn для возможности обновления
    $r = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");

    // prepare data
    $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_delete() - Удаляет запись из директории LDAP


Привязать к LDAP директории

  • « ldap_add
  • ldap_close »
  • PHP Manual
  • LDAP
  • Привязать к LDAP директории

ldap_bind

(PHP 4, PHP 5, PHP 7)

ldap_bind — Привязать к LDAP директории

Описание

bool ldap_bind ( resource $link_identifier [, string $bind_rdn = NULL [, string $bind_password = NULL ]] )

Связывает с LDAP директорией с указанным RDN и паролем.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

bind_rdn

bind_password

Если bind_rdn и bind_password не определены, то будет попытка анонимной привязки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования привязки LDAP

<?php

// используется ldap-привязка
$ldaprdn  = 'uname';     // ldap rdn или dn
$ldappass = 'password';  // ассоциированный пароль

// соединение с сервером
$ldapconn = ldap_connect("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.example.com")
    or die("Не могу соединиться с сервером LDAP.");

if ($ldapconn) {

    // анонимная привязка
    $ldapbind = ldap_bind($ldapconn);

    if ($ldapbind) {
        echo "Анонимная привязка LDAP прошла успешно...";
    } else {
        echo "Анонимная привязка LDAP не удалась...";
    }

}

?>

Смотрите также

  • ldap_unbind() - Разорвать привязку к директории LDAP


Псевдоним ldap_unbind

  • « ldap_bind
  • ldap_compare »
  • PHP Manual
  • LDAP
  • Псевдоним ldap_unbind

ldap_close

(PHP 4, PHP 5, PHP 7)

ldap_close — Псевдоним ldap_unbind()

Описание

Эта функция является псевдонимом: ldap_unbind().


Сравнить значение атрибута, найденного в записи определённой DN

  • « ldap_close
  • ldap_connect »
  • PHP Manual
  • LDAP
  • Сравнить значение атрибута, найденного в записи определённой DN

ldap_compare

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ldap_compare — Сравнить значение атрибута, найденного в записи определённой DN

Описание

mixed ldap_compare ( resource $link_identifier , string $dn , string $attribute , string $value )

Сравнивает значение (value) атрибута (attribute) со значением того же атрибута в записи LDAP директории.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP объекта.

attribute

Имя атрибута.

value

Сравниваемое значение.

Возвращаемые значения

Возвращает TRUE если value совпадают в противном случае FALSE. Возвращает -1 в случае ошибки.

Примеры

Следующий пример демонстрирует, как проверить, совпадает ли данный пароль с тем, который определен в указанной записи DN.

Пример #1 Полный пример проверки пароля

<?php

$ds=ldap_connect("localhost");  // Предположим, что LDAP сервер находится по этому адресу

if ($ds) {

    // bind
    if (ldap_bind($ds)) {

        // подготовка данных
        $dn = "cn=Matti Meikku, ou=My Unit, o=My Company, c=FI";
        $value = "secretpassword";
        $attr = "password";

        // сравнение данных
        $r=ldap_compare($ds, $dn, $attr, $value);

        if ($r === -1) {
            echo "Ошибка: " . ldap_error($ds);
        } elseif ($r === true) {
            echo "Пароль верный.";
        } elseif ($r === false) {
            echo "Неправильное предположение! Пароль не верен.";
        }

    } else {
        echo "Невозможно привязаться к серверу LDAP.";
    }

    ldap_close($ds);

} else {
    echo "Невозможно соединиться с сервером LDAP.";
}
?>

Примечания

Внимание

ldap_compare() не может быть использована для сравнения бинарных (BINARY) значений!


Подключиться к серверу LDAP

  • « ldap_compare
  • ldap_control_paged_result_response »
  • PHP Manual
  • LDAP
  • Подключиться к серверу LDAP

ldap_connect

(PHP 4, PHP 5, PHP 7)

ldap_connect — Подключиться к серверу LDAP

Описание

resource ldap_connect ([ string $host = NULL [, int $port = 389 ]] )

Создает идентификатор соединения LDAP и проверяет правдоподобность заданных hostname и port.

Обратите внимание: Эта функция НЕ открывает соединение. Она проверяет, правдоподобны ли заданные параметры и могут ли они использоваться для подключения, когда в нем возникнет нужна.

Список параметров

hostname

Это поле поддерживает использование имени хоста или, при использовании OpenLDAP 2.x.x и выше, полный URI в формате ldap://hostname:port или ldaps://hostname/.

Также, вы можете указать несколько LDAP-URI разделенных пробелом.

Обратите внимание, что hostname:port - это неподдерживаемый LDAP URI, так как отсутствует схема.

port

Порт для соединения. Не применяется, в случае использования URL.

Возвращаемые значения

Возвращает положительный идентификатор ссылки LDAP если заданая комбирания имени хоста и порта или LDAP URI правдоподобны. Она производит синтаксический разбор и проверку переданных параметров, но соединения с сервером не происходит. Если проверка синтаксиса провалилась - возвращается FALSE. Когда используется OpenLDAP 2.x.x, ldap_connect() будет всегда возвращать resource, поскольку она фактически не соединяется, а только инициализирует параметры соединения. Фактическое подключение происходит при последующих вызовах ldap_* функций, обычно при вызове ldap_bind().

Если никакие параметры не будут определены, тогда будет возвращен идентификатор уже открытой ссылки.

Примеры

Пример #1 Пример подключения к серверу LDAP.

<?php

// LDAP переменные
$ldaphost = "ldap.example.com";  // Ваш сервер ldap
$ldapport = 389;                 // Порт вашего сервера ldap

// Соединение с LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
          or die("Невозможно соединиться с $ldaphost");

?>

Пример #2 Пример безопасного подключения к серверу LDAP.

<?php

// убедитесь, что ваш хост корректный и
// что вы выдали ему сертификат безопасности
$ldaphost = "ldaps://ldap.example.com/";

// Соединение с LDAP
$ldapconn = ldap_connect($ldaphost)
          or die("Невозможно соединиться с {$ldaphost}");

?>

Смотрите также

  • ldap_bind() - Привязать к LDAP директории


Retrieve the LDAP pagination cookie

  • « ldap_connect
  • ldap_control_paged_result »
  • PHP Manual
  • LDAP
  • Retrieve the LDAP pagination cookie

ldap_control_paged_result_response

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_result_response — Retrieve the LDAP pagination cookie

Описание

bool ldap_control_paged_result_response ( resource $link , resource $result [, string &$cookie [, int &$estimated ]] )

Retrieve the pagination information send by the server.

Список параметров

link

An LDAP link identifier, returned by ldap_connect().

result

cookie

An opaque structure sent by the server.

estimated

The estimated number of entries to retrieve.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ldap_control_paged_result() - Send LDAP pagination control
  • » RFC2696 : LDAP Control Extension for Simple Paged Results Manipulation


Send LDAP pagination control

  • « ldap_control_paged_result_response
  • ldap_count_entries »
  • PHP Manual
  • LDAP
  • Send LDAP pagination control

ldap_control_paged_result

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_result — Send LDAP pagination control

Описание

bool ldap_control_paged_result ( resource $link , int $pagesize [, bool $iscritical = false [, string $cookie = "" ]] )

Enable LDAP pagination by sending the pagination control (page size, cookie...).

Список параметров

link

An LDAP link identifier, returned by ldap_connect().

pagesize

The number of entries by page.

iscritical

Indicates whether the pagination is critical or not. If true and if the server doesn't support pagination, the search will return no result.

cookie

An opaque structure sent by the server (ldap_control_paged_result_response()).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

The example below show the retrieval of the first page of a search paginated with one entry by page.

Пример #1 LDAP pagination

<?php
     // $ds is a valid link identifier (see 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');

     // enable pagination with a page size of 1.
     ldap_control_paged_result($ds, 1);

     $sr = ldap_search($ds, $dn, $filter, $justthese);

     $info = ldap_get_entries($ds, $sr);

     echo $info['count'] . ' entries returned' . PHP_EOL;

The example below show the retrieval of all the result paginated with 100 entries by page.

Пример #2 LDAP pagination

<?php
     // $ds is a valid link identifier (see 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');

     // enable pagination with a page size of 100.
     $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 != '');

Примечания

Замечание:

Pagination control is a LDAPv3 protocol feature.

Смотрите также

  • ldap_control_paged_result_response() - Retrieve the LDAP pagination cookie
  • » RFC2696 : LDAP Control Extension for Simple Paged Results Manipulation


Посчитать число записей в результатах поиска

  • « ldap_control_paged_result
  • ldap_delete »
  • PHP Manual
  • LDAP
  • Посчитать число записей в результатах поиска

ldap_count_entries

(PHP 4, PHP 5, PHP 7)

ldap_count_entries — Посчитать число записей в результатах поиска

Описание

int ldap_count_entries ( resource $link_identifier , resource $result_identifier )

Возвращает число записей, сохраненных в результате предыдущей операции поиска.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный функцией ldap_connect().

result_identifier

Внутренний результат LDAP.

Возвращаемые значения

Возвращает число записей в результате или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования функции ldap-count-entries()

Получение числа записей в результате.

// $ds является действительным идентификатором соединения (см. ldap_connect)

     $dn        = 'ou=example,dc=org';
     $filter    = '(|(sn=Doe*)(givenname=John*))';
     $justthese = array('ou', 'sn', 'givenname', 'mail');

     $sr = ldap_search($ds, $dn, $filter, $justthese);

     var_dump(ldap_count_entries($ds, $sr));

Результатом выполнения данного примера будет что-то подобное:

     int(1)


Удаляет запись из директории LDAP

  • « ldap_count_entries
  • ldap_dn2ufn »
  • PHP Manual
  • LDAP
  • Удаляет запись из директории LDAP

ldap_delete

(PHP 4, PHP 5, PHP 7)

ldap_delete — Удаляет запись из директории LDAP

Описание

bool ldap_delete ( resource $link_identifier , string $dn )

Удаление конкретной записи из директории LDAP.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращаемый ldap_connect().

dn

Уникальное имя LDAP записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ldap_add() - Добавить запись в LDAP директорию


Преобразовать DN в удобный для пользователя формат именования

  • « ldap_delete
  • ldap_err2str »
  • PHP Manual
  • LDAP
  • Преобразовать DN в удобный для пользователя формат именования

ldap_dn2ufn

(PHP 4, PHP 5, PHP 7)

ldap_dn2ufn — Преобразовать DN в удобный для пользователя формат именования

Описание

string ldap_dn2ufn ( string $dn )

Переключает указанный dn в более удобную для пользователя форму, снимая изоляцию с имен типов.

Список параметров

dn

Отличительное имя объекта LDAP.

Возвращаемые значения

Возвращает удобное для пользователя имя.


Преобразовать код ошибки LDAP в строковое сообщение об ошибке

  • « ldap_dn2ufn
  • ldap_errno »
  • PHP Manual
  • LDAP
  • Преобразовать код ошибки LDAP в строковое сообщение об ошибке

ldap_err2str

(PHP 4, PHP 5, PHP 7)

ldap_err2str — Преобразовать код ошибки LDAP в строковое сообщение об ошибке

Описание

string ldap_err2str ( int $errno )

Возвращает строковое сообщение об ошибке, объясняющее код ошибки errno. В то время как LDAP числа errno стандартизированы, различные библиотеки возвращают отличающиеся или даже локализованные текстовые сообщения об ошибках. Никогда не проверяйте на определенный текст сообщения об ошибке, всегда пользуйтесь кодами ошибок для проверки.

Список параметров

errno

Номер ошибки.

Возвращаемые значения

Возвращает сообщение ошибки в виде строки.

Примеры

Пример #1 Перечисление всех сообщений об ошибках LDAP

<?php
  for ($i=0; $i<100; $i++) {
    printf("Error $i: %s<br />\n", ldap_err2str($i));
  }
?>

Смотрите также

  • ldap_errno() - Возвратить номер ошибки LDAP последней команды
  • ldap_error() - Возвратить сообщение об ошибке LDAP последней команды


Возвратить номер ошибки LDAP последней команды

  • « ldap_err2str
  • ldap_error »
  • PHP Manual
  • LDAP
  • Возвратить номер ошибки LDAP последней команды

ldap_errno

(PHP 4, PHP 5, PHP 7)

ldap_errno — Возвратить номер ошибки LDAP последней команды

Описание

int ldap_errno ( resource $link_identifier )

Возвращает стандартизированный код ошибки, возвращенный последней командой LDAP. Это число может быть преобразовано в текстовое сообщение об ошибке, используя ldap_err2str().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

Возвращаемые значения

Возвращает код ошибки LDAP последней команды для этой ссылки.

Примеры

Если вы не снизите достаточно уровень предупреждений в php.ini, или префикс ваших LDAP-команд не будет с символом @ для подавления вывода предупреждений, генерируемые ошибки будут также отображаться в вашем HTML выводе.

Пример #1 Генерирование и фиксация ошибки

<?php
// Этот пример содержит ошибку, которую мы поймаем
$ld = ldap_connect("localhost");
$bind = ldap_bind($ld);
// синтаксическая ошибка в выражении фильтра (errno 87),
// должно быть "objectclass=*" для того, чтобы это работало.
$res =  @ldap_search($ld, "o=Myorg, c=DE", "objectclass");
if (!$res) {
    echo "LDAP-Errno: " . ldap_errno($ld) . "<br />\n";
    echo "LDAP-Error: " . ldap_error($ld) . "<br />\n";
    die("Argh!<br />\n");
}
$info = ldap_get_entries($ld, $res);
echo $info["count"] . " подходящих записей.<br />\n";
?>

Смотрите также

  • ldap_err2str() - Преобразовать код ошибки LDAP в строковое сообщение об ошибке
  • ldap_error() - Возвратить сообщение об ошибке LDAP последней команды


Возвратить сообщение об ошибке LDAP последней команды

  • « ldap_errno
  • ldap_escape »
  • PHP Manual
  • LDAP
  • Возвратить сообщение об ошибке LDAP последней команды

ldap_error

(PHP 4, PHP 5, PHP 7)

ldap_error — Возвратить сообщение об ошибке LDAP последней команды

Описание

string ldap_error ( resource $link_identifier )

Возвращает строковое сообщение об ошибке, объясняя ошибку, сгенерированную последней командой LDAP для данного идентификатора соединения link_identifier. В то время как LDAP errno числа стандартизированы, различные библиотеки возвращают отличающийся или даже локализованные текстовые сообщения об ошибках. Никогда не проверяйте на определенный текст сообщения об ошибке, всегда используйте кодами ошибок для проверки.

Если вы не снизите достаточно уровень предупреждений в php.ini, или префикс ваших LDAP-команд не будет с символом @ для подавления вывода предупреждений, генерируемые ошибки будут также отображаться в вашем HTML выводе.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

Возвращаемые значения

Возвращает сообщение ошибки в виде строки.

Смотрите также

  • ldap_err2str() - Преобразовать код ошибки LDAP в строковое сообщение об ошибке
  • ldap_errno() - Возвратить номер ошибки LDAP последней команды


Escape a string for use in an LDAP filter or DN

  • « ldap_error
  • ldap_explode_dn »
  • PHP Manual
  • LDAP
  • Escape a string for use in an LDAP filter or DN

ldap_escape

(PHP 5 >= 5.6.0, PHP 7)

ldap_escape — Escape a string for use in an LDAP filter or DN

Описание

string ldap_escape ( string $value [, string $ignore [, int $flags ]] )

Escapes value for use in the context implied by flags.

Список параметров

value

The value to escape.

ignore

Characters to ignore when escaping.

flags

The context the escaped string will be used in: LDAP_ESCAPE_FILTER for filters to be used with ldap_search(), or LDAP_ESCAPE_DN for DNs.

Возвращаемые значения

Returns the escaped string.


Разделить DN на его составные части

  • « ldap_escape
  • ldap_first_attribute »
  • PHP Manual
  • LDAP
  • Разделить DN на его составные части

ldap_explode_dn

(PHP 4, PHP 5, PHP 7)

ldap_explode_dn — Разделить DN на его составные части

Описание

array ldap_explode_dn ( string $dn , int $with_attrib )

Разделяет DN, возвращенный функцией ldap_get_dn(), и разбивает его на составные части. Каждая часть известна как относительное отличительное имя или RDN.

Список параметров

dn

Отличительное имя объекта LDAP.

with_attrib

Используется для запроса, если RDNs возвращены только со значениями или также с их атрибутами. Для получения RDNs с атрибутами (то есть в формате attribute=value) установите параметр with_attrib в 0 и для получения только значений установите его в 1.

Возвращаемые значения

Возвращает массив всех компонентов DN, или FALSE в случае возникновения ошибки. У первого элемента в этом массиве есть ключ count, и он представляет собой число возвращенных значений. Следующие элементы - это компоненты DN с цифровыми индексами.


Вернуть первый атрибут

  • « ldap_explode_dn
  • ldap_first_entry »
  • PHP Manual
  • LDAP
  • Вернуть первый атрибут

ldap_first_attribute

(PHP 4, PHP 5, PHP 7)

ldap_first_attribute — Вернуть первый атрибут

Описание

string ldap_first_attribute ( resource $link_identifier , resource $result_entry_identifier )

Получает первый атрибут в данной записи. Остающиеся атрибуты получаются последовательным вызовом ldap_next_attribute().

Подобно чтению записей, атрибуты также читаются один за другим из отдельного элемента.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

ber_identifier

ber_identifier является идентификатором внутреннего указателя ячейки памяти. Он передается по ссылке. Также ber_identifier передается в ldap_next_attribute(), которая изменяет этот указатель.

Замечание:

Этот параметр больше не используется, поскольку теперь автоматически обрабатывается PHP. Для целей обратной совместимости, PHP не выдает ошибку, если этот параметр все же передаётся.

Возвращаемые значения

Возвращает первый атрибут в записи, в случае успеха, и FALSE в случае ошибки.

Список изменений

Версия | Описание
5.2.4 | Параметр ber_identifier был удалён. В настоящее время обрабатывается PHP автоматически.

Смотрите также

  • ldap_next_attribute() - Получить следующий атрибут из результата
  • ldap_get_attributes() - Получает атрибуты из записи в результатах поиска


Возвратить первый идентификатор результата first result id

  • « ldap_first_attribute
  • ldap_first_reference »
  • PHP Manual
  • LDAP
  • Возвратить первый идентификатор результата first result id

ldap_first_entry

(PHP 4, PHP 5, PHP 7)

ldap_first_entry — Возвратить первый идентификатор результата first result id

Описание

resource ldap_first_entry ( resource $link_identifier , resource $result_identifier )

Возвращает идентификатор для первой записи в результате. Этот идентификатор затем используется в функции ldap_next_entry(), для последовательного получения записей из результата.

Записи в LDAP результате считываются последовательно используя функции ldap_first_entry() и ldap_next_entry().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_identifier

Возвращаемые значения

Возвращает результирующий идентификатор для первой записи в случае успеха и FALSE в случае ошибки.

Смотрите также

  • ldap_get_entries() - Получает все записи результата


Возвращает первую справку

  • « ldap_first_entry
  • ldap_free_result »
  • PHP Manual
  • LDAP
  • Возвращает первую справку

ldap_first_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_first_reference — Возвращает первую справку

Описание

resource ldap_first_reference ( resource $link , resource $result )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Освободить память результата

  • « ldap_first_reference
  • ldap_get_attributes »
  • PHP Manual
  • LDAP
  • Освободить память результата

ldap_free_result

(PHP 4, PHP 5, PHP 7)

ldap_free_result — Освободить память результата

Описание

bool ldap_free_result ( resource $result_identifier )

Освобождает память, внутренне выделенную для хранения результата. Вся память результата будет автоматически освобождена, когда сценарий завершится.

Обычно вся память, выделенная для результата LDAP, освобождается в конце сценария. В случае, если сценарий делает последовательные операции поиска, которые возвращают большие наборы результатов, ldap_free_result() может быть вызвана, чтобы сохранить небольшое использование памяти по время выполнения сценария.

Список параметров

result_identifier

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получает атрибуты из записи в результатах поиска

  • « ldap_free_result
  • ldap_get_dn »
  • PHP Manual
  • LDAP
  • Получает атрибуты из записи в результатах поиска

ldap_get_attributes

(PHP 4, PHP 5, PHP 7)

ldap_get_attributes — Получает атрибуты из записи в результатах поиска

Описание

array ldap_get_attributes ( resource $link_identifier , resource $result_entry_identifier )

Читает атрибуты и значения из записи в результатах поиска.

Определив местоположение определенной записи в каталоге, вы можете узнать, какая информация хранится для этой записи используя эту функцию. Вы должны использовать эту функцию для приложения, которое "просматривает" записи каталога и/или где структура записей каталога неизвестна. Во многих приложениях вы будете искать определенный атрибут, такой как адрес электронной почты или фамилия, не затрагивая другие данные.

return_value["count"] = число атрибутов в записи
return_value[0] = первый атрибут
return_value[n] = n-ый атрибут

return_value["attribute"]["count"] = число значений атрибута
return_value["attribute"][0] = первое значение атрибута
return_value["attribute"][i] = (i+1)-ое значение атрибута

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

Возвращаемые значения

Возвращает полную информацию записи в многомерный массив в случае успеха и FALSE в случае ошибки.

Примеры

Пример #1 Показывает список атрибутов, соответствующие определенной записи директории

<?php
// $ds - идентификатор ссылки для директории

// $sr - действительный результат поиска из запроса
// к директории ldap

$entry = ldap_first_entry($ds, $sr);

$attrs = ldap_get_attributes($ds, $entry);

echo $attrs["count"] . " атрибуты, соответствующие этой записи:<p>";

for ($i=0; $i < $attrs["count"]; $i++) {
    echo $attrs[$i] . "<br />";
}
?>

Смотрите также

  • ldap_first_attribute() - Вернуть первый атрибут
  • ldap_next_attribute() - Получить следующий атрибут из результата


Получить DN результирующей записи

  • « ldap_get_attributes
  • ldap_get_entries »
  • PHP Manual
  • LDAP
  • Получить DN результирующей записи

ldap_get_dn

(PHP 4, PHP 5, PHP 7)

ldap_get_dn — Получить DN результирующей записи

Описание

string ldap_get_dn ( resource $link_identifier , resource $result_entry_identifier )

Обнаружить DN записи в результате.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

Возвращаемые значения

Возвращает DN записи результата и FALSE в случае ошибки.


Получает все записи результата

  • « ldap_get_dn
  • ldap_get_option »
  • PHP Manual
  • LDAP
  • Получает все записи результата

ldap_get_entries

(PHP 4, PHP 5, PHP 7)

ldap_get_entries — Получает все записи результата

Описание

array ldap_get_entries ( resource $link_identifier , resource $result_identifier )

Читает множественные записи из заданного результата, и затем читает атрибуты и множественные значения.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_identifier

Возвращаемые значения

Возвращает полную информацию о результате в виде многомерного массива в случае успеха, и FALSE в случае ошибки.

Структура массива следующая: Индекс атрибута преобразован в нижний регистр. (Атрибуты для серверов каталогов являются нечувствительными к регистру, но не тогда, когда они используются в качестве индексов массива.)

return_value["count"] = число записей в результате
return_value[0] : ссылается на информацию о первой записи

return_value[i]["dn"] =  DN i-ой записи в результате

return_value[i]["count"] = число атрибутов в i-ой записи
return_value[i][j] = NAME j-ого атрибута в i-ой записи результата

return_value[i]["attribute"]["count"] = число значений атрибута в
                                        i-ой записи
return_value[i]["attribute"][j] = j-ое значение атрибута i-ой записи

Смотрите также

  • ldap_first_entry() - Возвратить первый идентификатор результата first result id
  • ldap_next_entry() - Получить следующую запись результата


Получить текущее значение данной опции

  • « ldap_get_entries
  • ldap_get_values_len »
  • PHP Manual
  • LDAP
  • Получить текущее значение данной опции

ldap_get_option

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ldap_get_option — Получить текущее значение данной опции

Описание

bool ldap_get_option ( resource $link_identifier , int $option , mixed &$retval )

Устанавливает retval в значение указанной опции.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

option

Параметр option может быть одним из:

Опция | Тип
LDAP_OPT_DEREF | integer
LDAP_OPT_SIZELIMIT | integer
LDAP_OPT_TIMELIMIT | integer
LDAP_OPT_NETWORK_TIMEOUT | integer
LDAP_OPT_PROTOCOL_VERSION | integer
LDAP_OPT_ERROR_NUMBER | integer
LDAP_OPT_REFERRALS | bool
LDAP_OPT_RESTART | bool
LDAP_OPT_HOST_NAME | string
LDAP_OPT_ERROR_STRING | string
LDAP_OPT_MATCHED_DN | string
LDAP_OPT_SERVER_CONTROLS | array
LDAP_OPT_CLIENT_CONTROLS | array
LDAP_OPT_X_KEEPALIVE_IDLE | int
LDAP_OPT_X_KEEPALIVE_PROBES | int
LDAP_OPT_X_KEEPALIVE_INTERVAL | int
LDAP_OPT_X_TLS_CACERTDIR | string
LDAP_OPT_X_TLS_CACERTFILE | string
LDAP_OPT_X_TLS_CERTFILE | string
LDAP_OPT_X_TLS_CIPHER_SUITE | string
LDAP_OPT_X_TLS_CRLCHECK | integer
LDAP_OPT_X_TLS_CRLFILE | string
LDAP_OPT_X_TLS_DHFILE | string
LDAP_OPT_X_TLS_KEYILE | string
LDAP_OPT_X_TLS_PACKAGE | string
LDAP_OPT_X_TLS_PROTOCOL_MIN | integer
LDAP_OPT_X_TLS_RANDOM_FILE | string
LDAP_OPT_X_TLS_REQUIRE_CERT | integer

retval

Будет установлен в значение опции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Проверка версии протокола

<?php
// $ds является действительным идентификатором связи с LDAP-сервером
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
    echo "Используется версия протокола $version\n";
} else {
    echo "Невозможно определить версию протокола\n";
}
?>

Примечания

Замечание:

Эта функция доступна только когда используется OpenLDAP 2.x.x или Netscape Directory SDK x.x.

Смотрите также

  • ldap_set_option() - Установить значение данной опции


Получить все бинарные значения из записи результата

  • « ldap_get_option
  • ldap_get_values »
  • PHP Manual
  • LDAP
  • Получить все бинарные значения из записи результата

ldap_get_values_len

(PHP 4, PHP 5, PHP 7)

ldap_get_values_len — Получить все бинарные значения из записи результата

Описание

array ldap_get_values_len ( resource $link_identifier , resource $result_entry_identifier , string $attribute )

Читает все значения атрибута в записи результата.

Эта функция используется точно также как и ldap_get_values() за исключением того, что обрабатывает двоичные данные, а не строковые.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

attribute

Возвращаемые значения

Возвращает массив значений для атрибута в случае успеха и FALSE в случае ошибки. Отдельные значения доступны по целочисленному индексу в массиве. Первый индекс 0. Число значений может быть найдено по индексу "count" в результирующем массиве.

Смотрите также

  • ldap_get_values() - Получает все значения из записи результата


Получает все значения из записи результата

  • « ldap_get_values_len
  • ldap_list »
  • PHP Manual
  • LDAP
  • Получает все значения из записи результата

ldap_get_values

(PHP 4, PHP 5, PHP 7)

ldap_get_values — Получает все значения из записи результата

Описание

array ldap_get_values ( resource $link_identifier , resource $result_entry_identifier , string $attribute )

Читает все значения атрибута в записи результата.

Эта функция требует result_entry_identifier, а следовательно, перед ней должны быть запущена одна из функций ldap поиска и один из результатов их вызова для получения отдельной записи.

В создаваемом приложении необходимо будет использовать сложные конструкции для поиска определённых атрибутов (таких как "фамилия" или "почта") или необходимо будет использовать функцию ldap_get_attributes(), чтобы разобрать, какие атрибуты существуют для данной записи.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

attribute

Возвращаемые значения

Возвращает массив значений для атрибута в случае успеха, и FALSE в случае ошибки. Число значений может быть найдено по индексу "count" в результирующем массиве. Отдельные значения могут быть доступны по целочисленным индексам в массиве. Первый индекс 0.

LDAP позволяет хранить больше чем одну запись для атрибута, таким образом, можно, например, сохранить много адресов электронной почты для записи каталога одного человека, все маркированные атрибутом "mail"

     return_value["count"] = число значений атрибута
     return_value[0] = первое значение атрибута
     return_value[i] = i-ое значение атрибута

Примеры

Пример #1 Список всех значений атрибута "mail" для записи каталога

<?php
// $ds верный идентификатор ссылки на сервер директории

// $sr верный результат поиска в директории ldap

// $entry верный идентификатор записи из вызова функции
//        вернувшей запись директории

$values = ldap_get_values($ds, $entry, "mail");

echo $values["count"] . " адреса email для этой записи.<br />";

for ($i=0; $i < $values["count"]; $i++) {
    echo $values[$i] . "<br />";
}
?>

Смотрите также

  • ldap_get_values_len() - Получить все бинарные значения из записи результата


Одноуровневый поиск

  • « ldap_get_values
  • ldap_mod_add »
  • PHP Manual
  • LDAP
  • Одноуровневый поиск

ldap_list

(PHP 4, PHP 5, PHP 7)

ldap_list — Одноуровневый поиск

Описание

resource ldap_list ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

Выполняет поиск для указанного filter в директории в рамках LDAP_SCOPE_ONELEVEL.

LDAP_SCOPE_ONELEVEL означает, что поиск должен возвратить только информацию, которая является следующим уровнем ниже base_dn, заданного при вызове. (Эквивалент вводу "ls" и получения списка файлов и папок в текущем рабочем каталоге.)

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

base_dn

Базовое DN для каталога.

filter

attributes

Массив необходимых атрибутов, например, array("mail", "sn", "cn"). Обратите внимание, что "dn" возвращается всегда, независимо от того, какие типы атрибутов требуются.

Использование этого параметра намного более эффективно чем действие по умолчанию (которое должно возвратить все атрибуты и их присвоенные значения). Поэтому использование этого параметра нужно считать хорошей практикой.

attrsonly

Должен быть равен 1, только если требуются типы атрибута. Если установлено 0, то, по умолчанию, выбираются и типы атрибутов и значения атрибута.

sizelimit

Позволяет ограничить количество выбранных записей. Установка этого параметра как 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку sizelimit на стороне сервера. Хотя его можно установить ниже.

Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы возвратить не больше, чем предварительно установленное число записей. Если это произойдет, то сервер укажет, что возвратил только частичный набор результатов. Это также происходит, если Вы используете этот параметр, чтобы ограничить количество выбранных записей.

timelimit

Устанавливает число секунд, ограничивающее процесс поиска. Установка этого параметра как 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку timelimit на стороне сервера. Хотя его можно установить ниже.

deref

Определяет, как псевдонимы должны быть обработаны во время поиска. Может быть одним из следующих:

  • LDAP_DEREF_NEVER - (по умолчанию) псевдонимы никогда не разыменовываться.
  • LDAP_DEREF_SEARCHING - псевдонимы должны быть разыменованы во время поиска, но не при определении местоположения базового объекта поиска.
  • LDAP_DEREF_FINDING - псевдонимы должны быть разыменованы при определении местоположения базового объекта, но не во время поиска.
  • LDAP_DEREF_ALWAYS - псевдонимы должны всегда разыменовываться всегда.

Возвращаемые значения

Возвращает идентификатор результата поиска или FALSE в случае ошибки.

Список изменений

Версия | Описание
4.0.5 | Была добавлена поддержка параллельного поиска. Для более подробной информации см. ldap_search().

Примеры

Пример #1 Выводит список всех организационных единиц организации

<?php
// $ds верный идентификатор ссылки на сервер директории

$basedn = "o=My Company, c=US";
$justthese = array("ou");

$sr = ldap_list($ds, $basedn, "ou=*", $justthese);

$info = ldap_get_entries($ds, $sr);

for ($i=0; $i < $info["count"]; $i++) {
    echo $info[$i]["ou"][0];
}
?>

Смотрите также

  • ldap_search() - Поиск по LDAP дереву


Добавить значения атрибута к текущим атрибутам

  • « ldap_list
  • ldap_mod_del »
  • PHP Manual
  • LDAP
  • Добавить значения атрибута к текущим атрибутам

ldap_mod_add

(PHP 4, PHP 5, PHP 7)

ldap_mod_add — Добавить значения атрибута к текущим атрибутам

Описание

bool ldap_mod_add ( resource $link_identifier , string $dn , array $entry )

Добавляет один или более атрибутов к указанному dn. Эта функция выполняет модификацию на уровне атрибута, а не на уровне объектов. На уровне объектов добавление осуществляются функцией ldap_add().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP объекта.

entry

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • ldap_mod_del() - Удалить значения атрибута из текущих атрибутов
  • ldap_mod_replace() - Заменить значения атрибутов на новые


Удалить значения атрибута из текущих атрибутов

  • « ldap_mod_add
  • ldap_mod_replace »
  • PHP Manual
  • LDAP
  • Удалить значения атрибута из текущих атрибутов

ldap_mod_del

(PHP 4, PHP 5, PHP 7)

ldap_mod_del — Удалить значения атрибута из текущих атрибутов

Описание

bool ldap_mod_del ( resource $link_identifier , string $dn , array $entry )

Удаляет один или более атрибутов из указанного dn. Эта функция выполняет модификацию на уровне атрибута, а не на уровне объектов. На уровне объектов удаление осуществляются функцией ldap_delete().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP объекта.

entry

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ldap_mod_add() - Добавить значения атрибута к текущим атрибутам
  • ldap_mod_replace() - Заменить значения атрибутов на новые


Заменить значения атрибутов на новые

  • « ldap_mod_del
  • ldap_modify_batch »
  • PHP Manual
  • LDAP
  • Заменить значения атрибутов на новые

ldap_mod_replace

(PHP 4, PHP 5, PHP 7)

ldap_mod_replace — Заменить значения атрибутов на новые

Описание

bool ldap_mod_replace ( resource $link_identifier , string $dn , array $entry )

Заменяет один или более атрибутов из указанного dn. Эта функция выполняет модификацию на уровне атрибута, а не на уровне объектов. На уровне объектов модификация осуществляются функцией ldap_modify().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP объекта.

entry

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • ldap_mod_del() - Удалить значения атрибута из текущих атрибутов
  • ldap_mod_add() - Добавить значения атрибута к текущим атрибутам


Batch and execute modifications on an LDAP entry

  • « ldap_mod_replace
  • ldap_modify »
  • PHP Manual
  • LDAP
  • Batch and execute modifications on an LDAP entry

ldap_modify_batch

(PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0, PHP 7)

ldap_modify_batch — Batch and execute modifications on an LDAP entry

Описание

bool ldap_modify_batch ( resource $link_identifier , string $dn , array $entry )

Modifies an existing entry in the LDAP directory. Allows detailed specification of the modifications to perform.

Список параметров

link_identifier

An LDAP link identifier, returned by ldap_connect().

dn

The distinguished name of an LDAP entity.

entry

An array that specifies the modifications to make. Each entry in this array is an associative array with two or three keys: attrib maps to the name of the attribute to modify, modtype maps to the type of modification to perform, and (depending on the type of modification) values maps to an array of attribute values relevant to the modification.

Possible values for modtype include:

LDAP_MODIFY_BATCH_ADD

Each value specified through values is added (as an additional value) to the attribute named by attrib.

LDAP_MODIFY_BATCH_REMOVE

Each value specified through values is removed from the attribute named by attrib. Any value of the attribute not contained in the values array will remain untouched.

LDAP_MODIFY_BATCH_REMOVE_ALL

All values are removed from the attribute named by attrib. A values entry must not be provided.

LDAP_MODIFY_BATCH_REPLACE

All current values of the attribute named by attrib are replaced with the values specified through values.

Note that any value for attrib must be a string, any value for values must be an array of strings, and any value for modtype must be one of the LDAP_MODIFY_BATCH_* constants listed above.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Add a telephone number to a contact

<?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 Rename a user

<?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 Add two e-mail addresses to a user

<?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 Change a user's password

<?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 Change a user's password (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 запись

  • « ldap_modify_batch
  • ldap_next_attribute »
  • PHP Manual
  • LDAP
  • Изменить LDAP запись

ldap_modify

(PHP 4, PHP 5, PHP 7)

ldap_modify — Изменить LDAP запись

Описание

bool ldap_modify ( resource $link_identifier , string $dn , array $entry )

Изменяет существующие записи в каталоге LDAP. Структура записей такая же, как и в ldap_add().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя объекта LDAP.

entry

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • ldap_rename() - Изменить имя записи


Получить следующий атрибут из результата

  • « ldap_modify
  • ldap_next_entry »
  • PHP Manual
  • LDAP
  • Получить следующий атрибут из результата

ldap_next_attribute

(PHP 4, PHP 5, PHP 7)

ldap_next_attribute — Получить следующий атрибут из результата

Описание

string ldap_next_attribute ( resource $link_identifier , resource $result_entry_identifier )

Возвращает атрибуты записи. Первый вызов ldap_next_attribute() производится с параметром result_entry_identifier, который возвращается ldap_first_attribute().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

ber_identifier

Внутреннее состояние указателя сохраняется этим параметром.

Замечание:

Этот параметр больше не используется, поскольку это теперь это обрабатывается автоматически PHP. Для обратной совместимости PHP не будет выбрасывать ошибку, если этот параметр будет передан.

Возвращаемые значения

Возвращает следующий атрибут записи в случае успеха и FALSE в случае ошибки.

Список изменений

Версия | Описание
5.2.4 | Параметр ber_identifier был удалён. Теперь это обрабатывается PHP автоматически.

Смотрите также

  • ldap_get_attributes() - Получает атрибуты из записи в результатах поиска


Получить следующую запись результата

  • « ldap_next_attribute
  • ldap_next_reference »
  • PHP Manual
  • LDAP
  • Получить следующую запись результата

ldap_next_entry

(PHP 4, PHP 5, PHP 7)

ldap_next_entry — Получить следующую запись результата

Описание

resource ldap_next_entry ( resource $link_identifier , resource $result_entry_identifier )

Получить записи, хранящиеся в результате. Последующие вызовы ldap_next_entry()
возвращают по одной записи, пока не останется больше записей.
Первый вызов ldap_next_entry() производится
после вызова ldap_first_entry() с параметром
result_entry_identifier, который был возвращён ldap_first_entry().

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

Возвращаемые значения

Возвращает идентификатор для следующей записи в результате, содержимое которого начинают читаться, запуская ldap_first_entry(). Если нет больше записей в результате, тогда возвращается FALSE.

Смотрите также

  • ldap_get_entries() - Получает все записи результата


Возвращает следующую справку

  • « ldap_next_entry
  • ldap_parse_reference »
  • PHP Manual
  • LDAP
  • Возвращает следующую справку

ldap_next_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_next_reference — Возвращает следующую справку

Описание

resource ldap_next_reference ( resource $link , resource $entry )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Извлекает информацию из справочника

  • « ldap_next_reference
  • ldap_parse_result »
  • PHP Manual
  • LDAP
  • Извлекает информацию из справочника

ldap_parse_reference

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_parse_reference — Извлекает информацию из справочника

Описание

bool ldap_parse_reference ( resource $link , resource $entry , array &$referrals )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Извлечь информацию из результата

  • « ldap_parse_reference
  • ldap_read »
  • PHP Manual
  • LDAP
  • Извлечь информацию из результата

ldap_parse_result

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_parse_result — Извлечь информацию из результата

Описание

bool ldap_parse_result ( resource $link , resource $result , int &$errcode [, string &$matcheddn [, string &$errmsg [, array &$referrals ]]] )

Обрабатывает результат поиска LDAP.

Список параметров

link

Идентификатор LDAP соединения, возвращаемый функцией ldap_connect().

result_identifier

Ресурс LDAP результата, возвращаемый функциями ldap_list() или ldap_search().

errcode

Ссылка на переменную, которой присваивается код ошибки LDAP, или 0, если нет ошибки.

matcheddn

Ссылка на переменную, которой присваивается найденный DN, если он определяется в запросе, иначе присваивается NULL.

errmsg

Ссылка на переменную, которой присваивается сообщение об LDAP ошибке, или пустая строка, если нет ошибки.

referrals

Ссылка на переменную, которой присваивается массив (array) со всеми отсылками (referral) в виде строк, или пустой массив, если они не были возвращены.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ldap_parse_result()

<?php
$result = ldap_search($link, "cn=userref,dc=my-domain,dc=com", "(cn=user*)");
$errcode = $dn = $errmsg = $refs =  null;
if (ldap_parse_result($link, $result, $errcode, $dn, $errmsg, $refs)) {
    // ращличные операции с $errcode, $dn, $errmsg и $refs
}
?>


Читает запись

  • « ldap_parse_result
  • ldap_rename »
  • PHP Manual
  • LDAP
  • Читает запись

ldap_read

(PHP 4, PHP 5, PHP 7)

ldap_read — Читает запись

Описание

resource ldap_read ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

Выполняет поиск для указанного filter в директории в рамках LDAP_SCOPE_BASE. Эквивалентно чтению записи из директории.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

base_dn

Базовое DN для каталога.

filter

Пустой фильтр не допустим. Если необходимо получить абсолютно всю информацию для этой записи, используйте фильтр objectClass=*. Если известно какие типы записи используются на сервере каталогов, то можно использовать соответствующий фильтр, такой как objectClass=inetOrgPerson.

attributes

Массив необходимых атрибутов, например, array("mail", "sn", "cn"). Обратите внимание, что "dn" всегда возвращается, независимо от того, какие типы атрибутов требуются.

Использование этого параметра намного более эффективно чем действие по умолчанию (которое возвращает все атрибуты и их присвоенные значения). Поэтому использование этого параметра нужно считать хорошей практикой.

attrsonly

Должен быть равен 1, только если требуются типы атрибута. Если равен 0, то, по умолчанию, выбираются и типы атрибутов и значения.

sizelimit

Позволяет ограничить количество выбранных записей. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку sizelimit на стороне сервера. Хотя его можно установить ниже.

Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы возвратить не больше, чем предварительно установленное число записей. Если это произойдет, то сервер укажет, что только возвратил частичный набор результатов. Это также происходит, если используется этот параметр, чтобы ограничить количество выбранных записей.

timelimit

Устанавливает число секунд, ограничивающее процесс поиска. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку timelimit на стороне сервера. Хотя его можно установить ниже.

deref

Определяет то, как псевдонимы должны быть обработаны во время поиска. Может быть одним из следующих:

  • LDAP_DEREF_NEVER - (по умолчанию) псевдонимы никогда не разыменовываются.
  • LDAP_DEREF_SEARCHING - псевдонимы должны быть разыменованы во время поиска, но не при определении местоположения базового объекта поиска.
  • LDAP_DEREF_FINDING - псевдонимы должны быть разыменованы при определении местоположения базового объекта, но не во время поиска.
  • LDAP_DEREF_ALWAYS - псевдонимы должны всегда разыменовываться.

Возвращаемые значения

Возвращает идентификатор результата поиска или FALSE в случае ошибки.

Список изменений

Версия | Описание
4.0.5 | Была добавлена поддержка параллельного поиска. Для более подробной информации см. ldap_search().


Изменить имя записи

  • « ldap_read
  • ldap_sasl_bind »
  • PHP Manual
  • LDAP
  • Изменить имя записи

ldap_rename

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

ldap_rename — Изменить имя записи

Описание

bool ldap_rename ( resource $link_identifier , string $dn , string $newrdn , string $newparent , bool $deleteoldrdn )

Переименование/перемещение записи, определённой dn.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

dn

Отличительное имя LDAP объекта.

newrdn

Новое RDN.

newparent

Новая родительская/превосходящая запись.

deleteoldrdn

Если TRUE, старые значения RDN удаляются, иначе старые значения RDN сохраняются как неуникальные значения записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Эта функция в настоящее время работает только с LDAPv3. Возможно, вам придется использовать ldap_set_option() перед привязкой, используя LDAPv3. Эта функция доступна только при использовании OpenLDAP 2.xx или Netscape Directory SDK x.x.

Смотрите также

  • ldap_modify() - Изменить LDAP запись


Привязать к LDAP директории, используя SASL

  • « ldap_rename
  • ldap_search »
  • PHP Manual
  • LDAP
  • Привязать к LDAP директории, используя SASL

ldap_sasl_bind

(PHP 5, PHP 7)

ldap_sasl_bind — Привязать к LDAP директории, используя SASL

Описание

bool ldap_sasl_bind ( resource $link [, string $binddn = NULL [, string $password = NULL [, string $sasl_mech = NULL [, string $sasl_realm = NULL [, string $sasl_authc_id = NULL [, string $sasl_authz_id = NULL [, string $props = NULL ]]]]]]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Требование
ldap_sasl_bind() требует SASL поддержки (sasl.h). Проверьте, что вы использовали --with-ldap-sasl при конфигурировании PHP, в противном случае эта функция будет не определена.

Список изменений

Версия | Описание
5.3.3 | Добавлена поддержка в Windows.


Поиск по LDAP дереву

  • « ldap_sasl_bind
  • ldap_set_option »
  • PHP Manual
  • LDAP
  • Поиск по LDAP дереву

ldap_search

(PHP 4, PHP 5, PHP 7)

ldap_search — Поиск по LDAP дереву

Описание

resource ldap_search ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )

Выполняет поиск для указанного фильтра в директории с границами LDAP_SCOPE_SUBTREE. Эквивалентно поиску по всему каталогу.

Начиная с 4.0.5 также возможно производить параллельный поиск. Чтобы это сделать, необходимо использовать в качестве первого параметра массив идентификаторов ссылок, а не единственный идентификатор. Если необходимости использовать то же самое основное DN и тот же самый фильтр для всех поисков нет, то можно использовать массив базовых DN и/или массив фильтров. Эти массивы должны иметь такой же размер, как и массив идентификаторов ссылок, так как первые записи массивов используются для одного поиска, вторые записи используются для другого и так далее. При выполнении параллельного поиска возвращается массив идентификаторов результатов поиска, кроме ошибочных случаев, тогда запись, соответствующая поиску, будет равна FALSE. Это похоже на обычный поиск, когда возвращается значение, за исключением того, что идентификатор результата всегда возвращается после проведения поиска. Есть некоторые редкие случаи, когда обычный поиск возвращает FALSE, в то время как параллельный поиск возвращает идентификатор.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

base_dn

Базовое DN для каталога.

filter

Поисковый фильтр может быть простым или расширенным, используя булевы операторы в формате, описанном в документации LDAP (см. » Netscape Directory SDK или » RFC4515 для полной информации о фильтрах).

attributes

Массив необходимых атрибутов, например, array("mail", "sn", "cn"). Обратите внимание, что "dn" всегда возвращается, независимо от того, какие типы атрибутов требуются.

Использование этого параметра намного более эффективно, чем действие по умолчанию (которое должно возвратить все атрибуты и присвоенные им значения). Поэтому использование этого параметра считается хорошей практикой.

attrsonly

Должен быть равен 1, если требуются только типы атрибута. Если равен 0, то, по умолчанию, выбираются и типы атрибутов и значения.

sizelimit

Позволяет ограничить количество выбранных записей. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку sizelimit на стороне сервера. Хотя его можно установить ниже.

Некоторые хосты серверов каталогов будут сконфигурированы так, чтобы возвратить не больше, чем предварительно установленное число записей. Если это произойдет, то сервер укажет, что возвратил только частичный набор результатов. Это также происходит, если Вы используете этот параметр чтобы ограничить количество выбранных записей.

timelimit

Устанавливает число секунд, ограничивающее процесс поиска. Установка этого параметра равным 0 означает, что ограничение отсутствует.

Замечание:

Этот параметр НЕ может переопределять предустановку timelimit на стороне сервера. Хотя его можно установить ниже.

deref

Определяет как псевдонимы должны быть обработаны во время поиска. Может быть одним из следующих:

  • LDAP_DEREF_NEVER - (по умолчанию) псевдонимы никогда не разыменовываются.
  • LDAP_DEREF_SEARCHING - псевдонимы должны быть разыменованы во время поиска, но не при определении местоположения базового объекта поиска.
  • LDAP_DEREF_FINDING - псевдонимы должны быть разыменованы при определении местоположения базового объекта, но не во время поиска.
  • LDAP_DEREF_ALWAYS - псевдонимы должны разыменовываться всегда.

Возвращаемые значения

Возвращает идентификатор результата поиска или FALSE в случае ошибки.

Примеры

Пример ниже получает организационную единицу, фамилию, имя и адрес электронной почты для всех людей в "My Company", где фамилия или имя содержат подстроку $person. Этот пример использует логический фильтр, чтобы сказать серверу, что нужно искать информацию больше, чем в одном атрибуте.

Пример #1 LDAP поиск

<?php
// $ds верный идентификатор ссылки на сервер директории

// $person всё или часть имени человека, н-р "Jo"

$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");

$sr=ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo $info["count"]." записей возвращено\n";
?>


Установить значение данной опции

  • « ldap_search
  • ldap_set_rebind_proc »
  • PHP Manual
  • LDAP
  • Установить значение данной опции

ldap_set_option

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ldap_set_option — Установить значение данной опции

Описание

bool ldap_set_option ( resource $link_identifier , int $option , mixed $newval )

Устанавливает значение указанной опции в newval.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

option

Параметр option может быть одним из:

Опция | Тип | Доступна с
LDAP_OPT_DEREF | integer
LDAP_OPT_SIZELIMIT | integer
LDAP_OPT_TIMELIMIT | integer
LDAP_OPT_NETWORK_TIMEOUT | integer | PHP 5.3.0
LDAP_OPT_PROTOCOL_VERSION | integer
LDAP_OPT_ERROR_NUMBER | integer
LDAP_OPT_REFERRALS | bool
LDAP_OPT_RESTART | bool
LDAP_OPT_HOST_NAME | string
LDAP_OPT_ERROR_STRING | string
LDAP_OPT_DIAGNOSTIC_MESSAGE | string
LDAP_OPT_MATCHED_DN | string
LDAP_OPT_SERVER_CONTROLS | array
LDAP_OPT_CLIENT_CONTROLS | array
LDAP_OPT_X_KEEPALIVE_IDLE | int
LDAP_OPT_X_KEEPALIVE_PROBES | int
LDAP_OPT_X_KEEPALIVE_INTERVAL | int
LDAP_OPT_X_TLS_CACERTDIR | string
LDAP_OPT_X_TLS_CACERTFILE | string
LDAP_OPT_X_TLS_CERTFILE | string
LDAP_OPT_X_TLS_CIPHER_SUITE | string
LDAP_OPT_X_TLS_CRLCHECK | integer
LDAP_OPT_X_TLS_CRLFILE | string
LDAP_OPT_X_TLS_DHFILE | string
LDAP_OPT_X_TLS_KEYILE | string
LDAP_OPT_X_TLS_PROTOCOL_MIN | integer
LDAP_OPT_X_TLS_RANDOM_FILE | string
LDAP_OPT_X_TLS_REQUIRE_CERT | integer

LDAP_OPT_SERVER_CONTROLS и LDAP_OPT_CLIENT_CONTROLS требуют список элементов управления. Это означает, что значение должно быть массивом элементов управления. Элемент управления состоит из oid, определяющего элемент управления, опционального значения, и дополнительного флага для критичности. В PHP элемент управления задается массивом, содержащим элемент с ключом oid и строковым значением, и двумя необязательными элементами. Необязательные элементы являются ключом value со строковым значением и ключом iscritical с логическим значением. iscritical по умолчанию устанавливается в FALSE, если не указан. Для более подробной информации смотрите » draft-ietf-ldapext-ldap-c-api-xx.txt. Смотрите также второй пример, расположенный ниже.

newval

Новое значение для указанной option (опции).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Устанавливает версию протокола

<?php
// $ds является действительным идентификатором связи с LDAP-сервером
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
    echo "Используется LDAPv3";
} else {
    echo "Не удалось установить версию протокола в 3";
}
?>

Пример #2 Устанавливает управление сервером

<?php
// $ds является действительным идентификатором связи с LDAP-сервером
// элемент управления с отсутствующим значением
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => true);
// iscritical по умолчанию FALSE
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// попытка установить оба элемента управления
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2))) {
    echo "Не удалось установить серверные элементы управления";
}
?>

Примечания

Замечание:

Эта функция доступна только, когда используется OpenLDAP 2.x.x или Netscape Directory SDK x.x.

Смотрите также

  • ldap_get_option() - Получить текущее значение данной опции


Установить функцию обратного вызова для повторного связывания при ссылочном поиске

  • « ldap_set_option
  • ldap_sort »
  • PHP Manual
  • LDAP
  • Установить функцию обратного вызова для повторного связывания при ссылочном поиске

ldap_set_rebind_proc

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ldap_set_rebind_proc — Установить функцию обратного вызова для повторного связывания при ссылочном поиске

Описание

bool ldap_set_rebind_proc ( resource $link , callable $callback )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Сортирует записи 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

Описание

bool ldap_sort ( resource $link , resource $result , string $sortfilter )

Сортирует результат запроса LDAP, возвращаемый функцией ldap_search().

Так как эта функция сортирует результат на клиентской стороне, вы можете получить не те результаты, которые ожидали в случае, если был превышен лимит sizelimit на стороне сервера либо указанный в ldap_search().

Внимание

Данная возможность была xmlns УСТАРЕВШЕЙ начиная с версии PHP 7.0.0. Крайне не рекомендуется полагаться на эту возможность в будущем.

Список параметров

link

Дескриптор соединения LDAP, возвращаемый функцией ldap_connect().

result

Дескриптор результата поиска, возвращаемый функцией ldap_search().

sortfilter

Атрибут, используемый в качестве ключа при сортировке.

Примеры

Сортировка результата поиска.

Пример #1 Сортировка LDAP

<?php
     // $ds является активным дескриптором соединения (см. ldap_connect)

     $dn        = 'ou=example,dc=org';
     $filter    = '(|(sn=Doe*)(givenname=John*))';
     $justthese = array('ou', 'sn', 'givenname', 'mail');

     $sr = ldap_search($ds, $dn, $filter, $justthese);

     // Сортировка
     ldap_sort($ds, $sr, 'sn');

     // Получение данных
     $info = ldap_get_entries($ds, $sr);


Запускает TLS

  • « ldap_sort
  • ldap_t61_to_8859 »
  • PHP Manual
  • LDAP
  • Запускает TLS

ldap_start_tls

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

ldap_start_tls — Запускает TLS

Описание

bool ldap_start_tls ( resource $link )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Переводит символы из кодировки t61 в ISO-8859

  • « ldap_start_tls
  • ldap_unbind »
  • PHP Manual
  • LDAP
  • Переводит символы из кодировки t61 в ISO-8859

ldap_t61_to_8859

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

ldap_t61_to_8859 — Переводит символы из кодировки t61 в ISO-8859

Описание

string ldap_t61_to_8859 ( string $value )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Разорвать привязку к директории LDAP

  • « ldap_t61_to_8859
  • Memcache »
  • PHP Manual
  • LDAP
  • Разорвать привязку к директории LDAP

ldap_unbind

(PHP 4, PHP 5, PHP 7)

ldap_unbind — Разорвать привязку к директории LDAP

Описание

bool ldap_unbind ( resource $link_identifier )

Разрывает привязку к LDAP-директории.

Список параметров

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ldap_bind() - Привязать к LDAP директории


Memcache

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование
  • Memcache — Класс Memcache
    • Memcache::add — Добавляет элемент с указанным ключем
    • Memcache::addServer — Add a memcached server to connection pool
    • Memcache::close — Закрыть соединение с сервером memcached
    • Memcache::connect — Открывает соединение с сервером memcached
    • Memcache::decrement — Декрементирует значение элемента
    • Memcache::delete — Удаление элемента
    • Memcache::flush — Flush all existing items at the server
    • Memcache::get — Извлечение элемента
    • Memcache::getExtendedStats — Get statistics from all servers in pool
    • Memcache::getServerStatus — Returns server status
    • Memcache::getStats — Get statistics of the server
    • Memcache::getVersion — Возвращает версию сервера
    • Memcache::increment — Увеличивает значение элемента
    • Memcache::pconnect — Open memcached server persistent connection
    • Memcache::replace — Заменяет значение существующего элемента
    • Memcache::set — Запись элемента
    • Memcache::setCompressThreshold — Включение автоматического сжатия для больших значений
    • Memcache::setServerParams — Changes server parameters and status at runtime
  • Memcache Функции
    • memcache_debug — Включить/выключить вывод отладочной информации


Введение

Модуль Memcache предоставляет удобный процедурный и объектно-ориентированный интерфейс к memcached, высокоэффективному кеширующему демону, который был специально разработан для снижения нагрузки на базу данных в динамических веб приложениях.

Модуль Memcache также предоставляет дескриптор сессий (memcache).

Больше информации о memcached вы сможете найти на » http://www.memcached.org/.


Требования

Этот модуль использует функции » zlib для поддержки сжатия "на лету". В связи с этим Zlib необходим для установки данного модуля.


Установка

Это расширение » PECL не поставляется вместе с PHP. Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/memcache.

Замечание:

Существует возможность запретить использование memcache в качестве обработчика сессий (session handler). Команда 'pecl install' выдает об этом запрос (по умолчанию включено). Кроме того, при статической компиляции в PHP для этой цели возможно использование опции конфигурации --disable-memcache-session .


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Конфигурационные параметры Memcache
Имя | По умолчанию | Меняемо | Список изменений
memcache.allow_failover | "1" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Доступно с memcache 2.1.0.
memcache.chunk_size | "8192" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.default_port | "11211" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.hash_strategy | "standard" | PHP_INI_ALL | Доступно с memcache 2.2.0.
memcache.hash_function | "crc32" | PHP_INI_ALL | Доступно с memcache 2.2.0.
session.save_handler | "files" | PHP_INI_ALL | Поддерживается с memcache 2.1.2
session.save_path | "" | PHP_INI_ALL | Поддерживается с memcache 2.1.2
memcache.protocol | ascii | >PHP_INI_ALL | Поддерживается с memcache 3.0.0
memcache.redundancy | 1 | >PHP_INI_ALL | Поддерживается с memcache 3.0.0
memcache.session_redundancy | 2 | >PHP_INI_ALL | Поддерживается с memcache 3.0.0
memcache.compress_threshold | 20000 | >PHP_INI_ALL | Поддерживается с memcache 3.0.3
memcache.lock_timeout | 15 | >PHP_INI_ALL | Поддерживается с memcache 3.0.4
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

memcache.allow_failover boolean

Разрешение прозрачного переключения на другие сервера при возникновении ошибок.

memcache.max_failover_attempts integer

Устанавливает число попыток чтения и записи данных. Используется только в сочетании с memcache.allow_failover.

memcache.chunk_size integer

Устанавливает размер передаваемых блоков данных. Использование малых значений приводит к повышению сетевой активности. В случае неожиданного замедления работы попробуйте увеличить значение до 32768.

memcache.default_port string

Устанавливает номер TCP порта по умолчанию для подключения к memcached-серверу, если явно не указан иной.

memcache.hash_strategy string

Контролирует стратегию функций отображения ключей на сервера. Установите этот параметр в consistent для включения последовательного хеширования, которое не требует переназначения ключей кеша при добавлении и удалении серверов из пула. Установка же этого параметра в standard приводит к использованию старой стратегии.

memcache.hash_function string

Устанавливает хеш-функцию для отображения ключей на сервера. При значении crc32 будет использоваться стандартный CRC32 хеш, а при fnv - FNV-1a.

session.save_handler string

Установите этот параметр в memcache для использовать memcache в качестве обработчика сессий.

session.save_path string

Устанавливает список адресов серверов, разделенных запятой, для хранений сессий. Например, "tcp://host1:11211, tcp://host2:11211".

Каждый адрес может содержать параметры аналогичные используемым в методе Memcache::addServer(), которые будут применены сервером. Например, "tcp://host1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"

memcache.protocol string

memcache.redundancy integer

memcache.session_redundancy integer

memcache.compress_threshold integer

memcache.lock_timeout integer


Типы ресурсов

Существует всего один тип ресурсов, используемых в модуле memcache - это идентификатор ссылки для подключения к кеш-серверу.


Предопределенные константы

Константы Memcache
Имя | Описание
MEMCACHE_COMPRESSED (integer) | Используется для включения сжатия данных "на лету" для следующих методов: Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_HAVE_SESSION (integer) | 1, если соединение с Memcache установлено, иначе 0.
MEMCACHE_USER1 (integer) | Используется для включения пользовательского флага приложения для Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_USER2 (integer) | Используется для включения пользовательского флага приложения для Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_USER3 (integer) | Используется для включения пользовательского флага приложения для Memcache::set(), Memcache::add() и Memcache::replace().
MEMCACHE_USER4 (integer) | Используется для включения пользовательского флага приложения для Memcache::set(), Memcache::add() и Memcache::replace().


  • « Предопределенные константы
  • Базовое использование »
  • PHP Manual
  • Memcache
  • Примеры

Примеры

Содержание

  • Базовое использование


Базовое использование

Пример #1 Пример использования расширения memcache

В этом примере происходит сохранение объекта в кеше и его последующее чтение. Объекты и другие не скалярные типы сериализируются перед сохранением, что делает невозможным хранение ресурсов наподобие идентификаторов подключений в кеше.

<?php

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Не могу подключиться");

$version = $memcache->getVersion();
echo "Версия сервера: ".$version."<br/>\n";

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;

$memcache->set('key', $tmp_object, false, 10) or die ("Ошибка при сохранении данных на сервере");
echo "Данные сохранены в кеше. (время жизни данных 10 секунд)<br/>\n";

$get_result = $memcache->get('key');
echo "Данные из кеша:<br/>\n";

var_dump($get_result);

?>

Пример #2 Использование memcache в качестве обработчика сессий

<?php

$session_save_path = "tcp://$host:$port?persistent=1&weight=2&timeout=2&retry_interval=10,  ,tcp://$host:$port  ";
ini_set('session.save_handler', 'memcache');
ini_set('session.save_path', $session_save_path);

?>


Класс Memcache

(PECL memcache >= 0.2.0)

Введение

Представляет подключение к множеству memcache серверов.

Обзор классов

Memcache {
bool add ( string $key , mixed $var [, int $flag [, int $expire ]] )
bool addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callable $failure_callback [, int $timeoutms ]]]]]]]] )
bool close ( void )
bool connect ( string $host [, int $port [, int $timeout ]] )
int decrement ( string $key [, int $value = 1 ] )
bool delete ( string $key [, int $timeout = 0 ] )
bool flush ( void )
string get ( string $key [, int &$flags ] )
array getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )
int getServerStatus ( string $host [, int $port = 11211 ] )
array getStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )
string getVersion ( void )
int increment ( string $key [, int $value = 1 ] )
mixed pconnect ( string $host [, int $port [, int $timeout ]] )
bool 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 ]]]]] )
}

Содержание

  • Memcache::add — Добавляет элемент с указанным ключем
  • Memcache::addServer — Add a memcached server to connection pool
  • Memcache::close — Закрыть соединение с сервером memcached
  • Memcache::connect — Открывает соединение с сервером memcached
  • Memcache::decrement — Декрементирует значение элемента
  • Memcache::delete — Удаление элемента
  • Memcache::flush — Flush all existing items at the server
  • Memcache::get — Извлечение элемента
  • Memcache::getExtendedStats — Get statistics from all servers in pool
  • Memcache::getServerStatus — Returns server status
  • Memcache::getStats — Get statistics of the server
  • Memcache::getVersion — Возвращает версию сервера
  • Memcache::increment — Увеличивает значение элемента
  • Memcache::pconnect — Open memcached server persistent connection
  • Memcache::replace — Заменяет значение существующего элемента
  • Memcache::set — Запись элемента
  • Memcache::setCompressThreshold — Включение автоматического сжатия для больших значений
  • Memcache::setServerParams — Changes server parameters and status at runtime


Добавляет элемент с указанным ключем

  • « Memcache
  • Memcache::addServer »
  • PHP Manual
  • Memcache
  • Добавляет элемент с указанным ключем

Memcache::add

(PECL memcache >= 0.2.0)

Memcache::add — Добавляет элемент с указанным ключем

Описание

bool Memcache::add ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::add() записывает элемент var с указанным ключем key только если указанный ключ еще не существует на сервере. Так же вы можете использовать функцию memcache_add().

Список параметров

key

Ключ с которым будет ассоциирован элемент.

var

Переменная для сохранения. Строковые и числовые значения сохраняются как есть, а остальные типы сериализируются.

flag

Используйте MEMCACHE_COMPRESSED для записи элемента со сжатием (используется zlib).

expire

Время жизни элемента. Если равно нулю, элемент никогда не устаревает. Так же вы можете использовать Unix timestamp или число секунд начиная с текущего момента, однако, число секунд не может быть больше 2592000 (30 дней).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Возвращает FALSE если такой ключ уже существует. В остальных случаях поведение Memcache::add() аналогично Memcache::set().

Примеры

Пример #1 Memcache::add() пример

<?php

$memcache_obj = memcache_connect("localhost", 11211);

/* процедурный стиль */
memcache_add($memcache_obj, 'var_key', 'test variable', false, 30);

/* объектный стиль */
$memcache_obj->add('var_key', 'test variable', false, 30);

?>

Смотрите также

  • Memcache::set() - Запись элемента
  • Memcache::replace() - Заменяет значение существующего элемента


Add a memcached server to connection pool

  • « Memcache::add
  • Memcache::close »
  • PHP Manual
  • Memcache
  • Add a memcached server to connection pool

Memcache::addServer

(PECL memcache >= 2.0.0)

Memcache::addServer — Add a memcached server to connection pool

Описание

bool Memcache::addServer ( string $host [, int $port = 11211 [, bool $persistent [, int $weight [, int $timeout [, int $retry_interval [, bool $status [, callable $failure_callback [, int $timeoutms ]]]]]]]] )

Memcache::addServer() adds a server to the connection pool. You can also use the memcache_add_server() function.

When using this method (as opposed to Memcache::connect() and Memcache::pconnect()) the network connection is not established until actually needed. Thus there is no overhead in adding a large number of servers to the pool, even though they might not all be used.

Failover may occur at any stage in any of the methods, as long as other servers are available the request the user won't notice. Any kind of socket or Memcached server level errors (except out-of-memory) may trigger the failover. Normal client errors such as adding an existing key will not trigger a failover.

Замечание:

This function has been added to Memcache version 2.0.0.

Список параметров

host

Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets.

Please note: port defaults to memcache.default_port if not specified. For this reason it is wise to specify the port explicitly in this method call.

persistent

Controls the use of a persistent connection. Default to TRUE.

weight

Number of buckets to create for this server which in turn control its probability of it being selected. The probability is relative to the total weight of all servers.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

retry_interval

Controls how often a failed server will be retried, the default value is 15 seconds. Setting this parameter to -1 disables automatic retry. Neither this nor the persistent parameter has any effect when the extension is loaded dynamically via dl().

Each failed connection struct has its own timeout and before it has expired the struct will be skipped when selecting backends to serve a request. Once expired the connection will be successfully reconnected or marked as failed for another retry_interval seconds. The typical effect is that each web server child will retry the connection about every retry_interval seconds when serving a page.

status

Controls if the server should be flagged as online. Setting this parameter to FALSE and retry_interval to -1 allows a failed server to be kept in the pool so as not to affect the key distribution algorithm. Requests for this server will then failover or fail immediately depending on the memcache.allow_failover setting. Default to TRUE, meaning the server should be considered online.

failure_callback

Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted. The function takes two parameters, the hostname and port of the failed server.

timeoutms

Примечания

Внимание

When the port is unspecified, this method defaults to the value set of the PHP ini directive memcache.default_port If this value was changed elsewhere in your application it might lead to unexpected results: for this reason it is wise to always specify the port explicitly in this method call.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Memcache::addServer() example

<?php

/* OO API */

$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
$memcache->addServer('memcache_host2', 11211);

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_add_server($memcache_obj, 'memcache_host2', 11211);

?>

Смотрите также

  • Memcache::connect() - Открывает соединение с сервером memcached
  • Memcache::pconnect() - Open memcached server persistent connection
  • Memcache::close() - Закрыть соединение с сервером memcached
  • Memcache::setServerParams() - Changes server parameters and status at runtime
  • Memcache::getServerStatus() - Returns server status


Закрыть соединение с сервером memcached

  • « Memcache::addServer
  • Memcache::connect »
  • PHP Manual
  • Memcache
  • Закрыть соединение с сервером memcached

Memcache::close

(PECL memcache >= 0.4.0)

Memcache::close — Закрыть соединение с сервером memcached

Описание

bool Memcache::close ( void )

Memcache::close() закрывает соединение с сервером memcached. Эта функция не закрывает постоянное соединение, которое закрывается только во время завершения работы/перезапуска web-сервера. Вы также можете использовать функцию memcache_close().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::close()

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
/*
do something here ..
*/
memcache_close($memcache_obj);

/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/*
do something here ..
*/
$memcache_obj->close();

?>

Смотрите также

  • Memcache::connect() - Открывает соединение с сервером memcached
  • Memcache::pconnect() - Open memcached server persistent connection


Открывает соединение с сервером memcached

  • « Memcache::close
  • Memcache::decrement »
  • PHP Manual
  • Memcache
  • Открывает соединение с сервером memcached

Memcache::connect

(PECL memcache >= 0.2.0)

Memcache::connect — Открывает соединение с сервером memcached

Описание

bool Memcache::connect ( string $host [, int $port [, int $timeout ]] )

Memcache::connect() устанавливает соединение с сервером memcached. Соединение, открытое с помощью Memcache::connect(), автоматически закрывается по окончанию выполнения скрипта. Также вы можете закрть соединение при помощи Memcache::close(). Так же вы можете использовать функцию memcache_connect().

Список параметров

host

Определяет хост, на котором memcached ожидает подключений. Этот параметр также может задавать другой транспорт, например unix:///path/to/memcached.sock для использования сокетов Unix. В таком случае, port должен быть задан как 0.

port

Определяет порт, на котором слушает memcached. Установите этот параметр равным 0, если используете сокеты Unix.

Пожалуйста обратите внимание: port, если не задан, по умолчанию будет равен memcache.default_port. По этой причине имеет смысл указать порт явно при вызове метода.

timeout

Значение в секундах, которое будет использовано для подключения к демону. Дважды подумайте, прежде чем изменить значение по умолчанию с 1 секунды - вы можете потерять все преимущества от кеширование, если ваше соединение очень медленное.

Примечания

Внимание

Если порт port не задан, этот метод использует значение по умолчанию, заданное в ini-настройке memcache.default_port. Если это значение изменится где нибудь в вашем приложении - это может привести к неожиданным результатам. По этой причине имеет смысл всегда указать порт явно при вызове метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::connect()

<?php

/* procedural API */

$memcache_obj = memcache_connect('memcache_host', 11211);

/* OO API */

$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);

?>

Смотрите также

  • Memcache::pconnect() - Open memcached server persistent connection
  • Memcache::close() - Закрыть соединение с сервером memcached


Декрементирует значение элемента

  • « Memcache::connect
  • Memcache::delete »
  • PHP Manual
  • Memcache
  • Декрементирует значение элемента

Memcache::decrement

(PECL memcache >= 0.2.0)

Memcache::decrement — Декрементирует значение элемента

Описание

int Memcache::decrement ( string $key [, int $value = 1 ] )

Memcache::decrement() уменьшает значение элемента на величину value. Аналогично Memcache::increment(), текущее значение элемента приводится к числовому и полсе этого из него вычитается value.

Замечание:

Новое значение элемента не может быть меньше нуля.

Замечание:

Не используйте Memcache::decrement() с элементами, которые были сохранены с использованием сжатия, потому что соответствующий вызов Memcache::get() обернется неудачей.

Memcache::decrement() не создает элемент если он до этого не существовал. Так же вы можете использовать функцию memcache_decrement().

Список параметров

key

Ключ декрементируемого элемента.

value

Уменьшение элемента на величину value.

Возвращаемые значения

При удаче возвращает новое значение элемента или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::decrement()

<?php

/* процедурный стиль */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* декрементировать на 2 */
$new_value = memcache_decrement($memcache_obj, 'test_item', 2);

/* объектный стиль */
$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 — Удаление элемента

Описание

bool Memcache::delete ( string $key [, int $timeout = 0 ] )

Memcache::delete() удаляет элемент с указанным ключем key.

Список параметров

key

Ключ удаляемого элемента.

timeout

Это устаревший параметр и в настоящее время не используется. Значение по-умолчанию 0 секунд. Не используйет этот параметр.

Список изменений

Версия | Описание
Unknown | Не рекомендуется использование параметра timeout. Поведение будет различаться в разных версиях memcache, однако его установка в 0 безопасна. Другие значения этого параметра могу привести к ошибкам при удалении элемента.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::delete()

<?php

/* процедурный стиль */
$memcache_obj = memcache_connect('memcache_host', 11211);

/* элемент будет удален сервером */
memcache_delete($memcache_obj, 'key_to_delete');

/* объектный стиль */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->delete('key_to_delete');

?>

Смотрите также

  • Memcache::set() - Запись элемента
  • Memcache::replace() - Заменяет значение существующего элемента


Flush all existing items at the server

  • « Memcache::delete
  • Memcache::get »
  • PHP Manual
  • Memcache
  • Flush all existing items at the server

Memcache::flush

(PECL memcache >= 1.0.0)

Memcache::flush — Flush all existing items at the server

Описание

bool Memcache::flush ( void )

Memcache::flush() immediately invalidates all existing items. Memcache::flush() doesn't actually free any resources, it only marks all the items as expired, so occupied memory will be overwritten by new items. Also you can use memcache_flush() function.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Memcache::flush() example

<?php

/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);

memcache_flush($memcache_obj);

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);

$memcache_obj->flush();

?>


Извлечение элемента

  • « Memcache::flush
  • Memcache::getExtendedStats »
  • PHP Manual
  • Memcache
  • Извлечение элемента

Memcache::get

(PECL memcache >= 0.2.0)

Memcache::get — Извлечение элемента

Описание

string Memcache::get ( string $key [, int &$flags ] )
array Memcache::get ( array $keys [, array &$flags ] )

Memcache::get() возвращает ранее сохраненный элемент с ключем key если он в данный момент существует на сервере.

Вы можете передать массив ключей в Memcache::get() чтобы получить массив элементов. Результирующий массив будет содержать только существующие пары ключ-значение.

Список параметров

key

Ключ или массив ключей для чтения.

flags

Если задан, в него будет прочитано значение флагов. Это в точности те флаги, что и переданные, например в Memcache::set(). Младший байт значения зарезервирован для внутреннего использования pecl/memcache (например для индикации сжатия или сериализации).

Возвращаемые значения

Возвращает значение ассоциированное с ключем key или массив найденых пар ключ-значение, если в key задан массив. Возвращает FALSE при ошибке или если указанный ключ key не был найден или является пустым массивом.

Примеры

Пример #1 Пример использования Memcache::get()

<?php

/* процедурный стиль */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, 'some_key');

/* объектный стиль */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get('some_key');

/*
Так же, в качестве параметра, вы можете использовать массив ключей.
Если элемент не будет найден то в результирующий массив просто не будет
включен этот ключ.
*/

/* процедурный стиль */
$memcache_obj = memcache_connect('memcache_host', 11211);
$var = memcache_get($memcache_obj, Array('some_key', 'another_key'));

/* объектный стиль */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$var = $memcache_obj->get(Array('some_key', 'second_key'));

?>


Get statistics from all servers in pool

  • « Memcache::get
  • Memcache::getServerStatus »
  • PHP Manual
  • Memcache
  • Get statistics from all servers in pool

Memcache::getExtendedStats

(PECL memcache >= 2.0.0)

Memcache::getExtendedStats — Get statistics from all servers in pool

Описание

array Memcache::getExtendedStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )

Memcache::getExtendedStats() returns a two-dimensional associative array with server statistics. Array keys correspond to host:port of server and values contain the individual server statistics. A failed server will have its corresponding entry set to FALSE. You can also use the memcache_get_extended_stats() function.

Замечание:

This function has been added to Memcache version 2.0.0.

Список параметров

type

The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".

slabid

Used in conjunction with type set to cachedump to identify the slab to dump from. The cachedump command ties up the server and is strictly to be used for debugging purposes.

limit

Used in conjunction with type set to cachedump to limit the number of entries to dump.

Внимание

The cachedump stat type has been removed from the memcached daemon due to security reasons.

Возвращаемые значения

Returns a two-dimensional associative array of server statistics or FALSE on failure.

Примеры

Пример #1 Memcache::getExtendedStats() example

<?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() - Get statistics of the server


Returns server status

  • « Memcache::getExtendedStats
  • Memcache::getStats »
  • PHP Manual
  • Memcache
  • Returns server status

Memcache::getServerStatus

(PECL memcache >= 2.1.0)

Memcache::getServerStatus — Returns server status

Описание

int Memcache::getServerStatus ( string $host [, int $port = 11211 ] )

Memcache::getServerStatus() returns a the servers online/offline status. You can also use memcache_get_server_status() function.

Замечание:

This function has been added to Memcache version 2.1.0.

Список параметров

host

Point to the host where memcached is listening for connections.

port

Point to the port where memcached is listening for connections.

Возвращаемые значения

Returns a the servers status. 0 if server is failed, non-zero otherwise

Примеры

Пример #1 Memcache::getServerStatus() example

<?php

/* OO API */
$memcache = new Memcache;
$memcache->addServer('memcache_host', 11211);
echo $memcache->getServerStatus('memcache_host', 11211);

/* procedural API */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_server_status($memcache, 'memcache_host', 11211);

?>

Смотрите также

  • Memcache::addServer() - Add a memcached server to connection pool
  • Memcache::setServerParams() - Changes server parameters and status at runtime


Get statistics of the server

  • « Memcache::getServerStatus
  • Memcache::getVersion »
  • PHP Manual
  • Memcache
  • Get statistics of the server

Memcache::getStats

(PECL memcache >= 0.2.0)

Memcache::getStats — Get statistics of the server

Описание

array Memcache::getStats ([ string $type [, int $slabid [, int $limit = 100 ]]] )

Memcache::getStats() returns an associative array with server's statistics. Array keys correspond to stats parameters and values to parameter's values. Also you can use memcache_get_stats() function.

Список параметров

type

The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".

slabid

Used in conjunction with type set to cachedump to identify the slab to dump from. The cachedump command ties up the server and is strictly to be used for debugging purposes.

limit

Used in conjunction with type set to cachedump to limit the number of entries to dump.

Возвращаемые значения

Returns an associative array of server statistics или FALSE в случае возникновения ошибки.

Смотрите также

  • Memcache::getVersion() - Возвращает версию сервера
  • Memcache::getExtendedStats() - Get statistics from all servers in pool


Возвращает версию сервера

  • « Memcache::getStats
  • Memcache::increment »
  • PHP Manual
  • Memcache
  • Возвращает версию сервера

Memcache::getVersion

(PECL memcache >= 0.2.0)

Memcache::getVersion — Возвращает версию сервера

Описание

string Memcache::getVersion ( void )

Memcache::getVersion() возвращает строку с номером версии сервера. Так же вы можете использовать функцию memcache_get_version().

Возвращаемые значения

Возвращает строку с номером версии сервера или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::getVersion()

<?php

/* объектный стиль */
$memcache = new Memcache;
$memcache->connect('memcache_host', 11211);
echo $memcache->getVersion();

/* процедурный стиль */
$memcache = memcache_connect('memcache_host', 11211);
echo memcache_get_version($memcache);

?>

Смотрите также

  • Memcache::getExtendedStats() - Get statistics from all servers in pool
  • Memcache::getStats() - Get statistics of the server


Увеличивает значение элемента

  • « Memcache::getVersion
  • Memcache::pconnect »
  • PHP Manual
  • Memcache
  • Увеличивает значение элемента

Memcache::increment

(PECL memcache >= 0.2.0)

Memcache::increment — Увеличивает значение элемента

Описание

int Memcache::increment ( string $key [, int $value = 1 ] )

Memcache::increment() увеличивает значение элмента на величину value. Если элемент с указанным ключем key не числовой и не может быть приведен к числу, то его значение будет установлено в value. Memcache::increment() не создает элемент если он до этого не существовал.

Замечание:

Не используйте Memcache::increment() с элементами, которые были сохранены с использованием сжатия, потому что соответствующий вызов Memcache::get() обернется неудачей.

Так же вы можете использовать функцию memcache_increment().

Список параметров

key

Ключ элемента.

value

Увеличение значения на величину value.

Возвращаемые значения

При удаче возвращает новое значение элемента или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::increment()

<?php

/* процедурный стиль */
$memcache_obj = memcache_connect('memcache_host', 11211);
/* инкрементировать счетчик на 2 */
$current_value = memcache_increment($memcache_obj, 'counter', 2);

/* объектный стиль */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
/* инкрементировать счетчик на 3 */
$current_value = $memcache_obj->increment('counter', 3);

?>

Смотрите также

  • Memcache::decrement() - Декрементирует значение элемента
  • Memcache::replace() - Заменяет значение существующего элемента


Open memcached server persistent connection

  • « Memcache::increment
  • Memcache::replace »
  • PHP Manual
  • Memcache
  • Open memcached server persistent connection

Memcache::pconnect

(PECL memcache >= 0.4.0)

Memcache::pconnect — Open memcached server persistent connection

Описание

mixed Memcache::pconnect ( string $host [, int $port [, int $timeout ]] )

Memcache::pconnect() is similar to Memcache::connect() with the difference, that the connection it establishes is persistent. This connection is not closed after the end of script execution and by Memcache::close() function. Also you can use memcache_pconnect() function.

Список параметров

host

Point to the host where memcached is listening for connections. This parameter may also specify other transports like unix:///path/to/memcached.sock to use UNIX domain sockets, in this case port must also be set to 0.

port

Point to the port where memcached is listening for connections. Set this parameter to 0 when using UNIX domain sockets.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

Возвращаемые значения

Returns a Memcache object или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Memcache::pconnect() example

<?php

/* procedural API */
$memcache_obj = memcache_pconnect('memcache_host', 11211);

/* OO API */

$memcache_obj = new Memcache;
$memcache_obj->pconnect('memcache_host', 11211);

?>

Смотрите также

  • Memcache::connect() - Открывает соединение с сервером memcached


Заменяет значение существующего элемента

  • « Memcache::pconnect
  • Memcache::set »
  • PHP Manual
  • Memcache
  • Заменяет значение существующего элемента

Memcache::replace

(PECL memcache >= 0.2.0)

Memcache::replace — Заменяет значение существующего элемента

Описание

bool Memcache::replace ( string $key , mixed $var [, int $flag [, int $expire ]] )

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);

/* procedural API */
memcache_replace($memcache_obj, "test_key", "some variable", false, 30);

/* OO 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 — Запись элемента

Описание

bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] )

Memcache::set() записывает элемент со значением var на сервере memcache с указанным ключем key. Параметр expire задает время жизни элемента. Если он развен 0, то элемент никогда не устареет (но memcached сервер не гарантирует что элемент будет постоянно храниться в кеше и он может быть удален для освобождения места для новых элементов). Вы можете использовать константу MEMCACHE_COMPRESSED в качестве значения для параметра flag если вам требуется сжатие "на лету" (используется zlib).

Замечание:

Помните, что ресурсы (например дескрипторы файлов или подключений) не могут быть сохранены в кеше, потому что они не могут быть сериализованы.

Так же вы можете использовать функцию memcache_set().

Список параметров

key

Ключ, с которым будет ассоциировано значение элемента.

var

Переменная для сохранения. Строковые и числовые значения сохраняются как есть, а остальные типы сериализируются.

flag

Используйте MEMCACHE_COMPRESSED для сохранения элементов с использованием сжатия (используется zlib).

expire

Время жизни элемента. Если равно нулю, элемент никогда не устаревает. Так же вы можете использовать Unix timestamp или число секунд начиная с текущего момента, однако, число секунд не может быть больше 2592000 (30 дней).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::set()

<?php
/* процедурный стиль */

/* подключение к 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
/* объектный стиль */

$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 — Включение автоматического сжатия для больших значений

Описание

bool Memcache::setCompressThreshold ( int $threshold [, float $min_savings ] )

Memcache::setCompressThreshold() включает автоматическое сжатие для больших значений. Вы так же можете использовать функцию memcache_set_compress_threshold().

Замечание:

Эта функция была добавлена в Memcache версии 2.0.0.

Список параметров

threshold

Задает минимальный размер элментов для попыток автоматического сжатия.

min_saving

Указывает минимальный размер сэкономленного размера. Переданное значение должно быть в пределать от 0 до 1. Значение по-умолчанию 0.2 что задает минимальный размер сэкомленного размера в 20%.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования Memcache::setCompressThreshold()

<?php

/* объектный стиль */

$memcache_obj = new Memcache;
$memcache_obj->addServer('memcache_host', 11211);
$memcache_obj->setCompressThreshold(20000, 0.2);

/* процедурный стиль */

$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set_compress_threshold($memcache_obj, 20000, 0.2);

?>


Changes server parameters and status at runtime

  • « Memcache::setCompressThreshold
  • Memcache Функции »
  • PHP Manual
  • Memcache
  • Changes server parameters and status at runtime

Memcache::setServerParams

(PECL memcache >= 2.1.0)

Memcache::setServerParams — Changes server parameters and status at runtime

Описание

bool Memcache::setServerParams ( string $host [, int $port = 11211 [, int $timeout [, int $retry_interval = false [, bool $status [, callable $failure_callback ]]]]] )

Memcache::setServerParams() changes server parameters at runtime. You can also use the memcache_set_server_params() function.

Замечание:

This function has been added to Memcache version 2.1.0.

Список параметров

host

Point to the host where memcached is listening for connections.

port

Point to the port where memcached is listening for connections.

timeout

Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.

retry_interval

Controls how often a failed server will be retried, the default value is 15 seconds. Setting this parameter to -1 disables automatic retry. Neither this nor the persistent parameter has any effect when the extension is loaded dynamically via dl().

status

Controls if the server should be flagged as online. Setting this parameter to FALSE and retry_interval to -1 allows a failed server to be kept in the pool so as not to affect the key distribution algorithm. Requests for this server will then failover or fail immediately depending on the memcache.allow_failover setting. Default to TRUE, meaning the server should be considered online.

failure_callback

Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted. The function takes two parameters, the hostname and port of the failed server.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Memcache::setServerParams() example

<?php

function _callback_memcache_failure($host, $port) {
    print "memcache '$host:$port' failed";
}

/* OO API */

$memcache = new Memcache;

// Add the server in offline mode
$memcache->addServer('memcache_host', 11211, false, 1, 1, -1, false);

// Bring the server back online
$memcache->setServerParams('memcache_host', 11211, 1, 15, true, '_callback_memcache_failure');

/* procedural 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() - Add a memcached server to connection pool
  • Memcache::getServerStatus() - Returns server status


  • « 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 — Включить/выключить вывод отладочной информации

Описание

bool memcache_debug ( bool $on_off )

memcache_debug() включает вывод отладочной информации, если on_off установлен в TRUE и выключает, если в FALSE.

Замечание:

Функция memcache_debug() доступна, только если PHP был собран с использованием опции --enable-debug и в этом случае всегда возвращает TRUE. Иначе вызов этой функции ничего не делает и возвращает FALSE.

Список параметров

on_off

Включает вывод отладочной информации если установлено в TRUE. Выключает вывод отладочной информации если установлено в FALSE.

Возвращаемые значения

Возвращает TRUE, если PHP был собран с опцией --enable-debug, иначе - FALSE.


Memcached

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Время хранения объекта
  • Callbacks
    • Result callbacks
    • Read-through cache callbacks
  • Sessions support
  • Memcached — The Memcached class
    • 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 — The MemcachedException class


Введение

» 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, может быть найдена здесь: » http://pecl.php.net/package/memcached.

Если libmemcached установлена в нестандартной директории, используйте опцию --with-libmemcached-dir=DIR , где DIR -- это директория, куда установлен libmemcached. Эта директория должна содержать файл include/libmemcached/memcached.h.

Библиотека Zlib необходима для поддержки сжатия. Для указания нестандартного расположения Zlib используйте ключ --with-zlib-dir=DIR , где DIR -- это директория установки Zlib.

Поддержка обработчика сессий включена по умолчанию. Для ее отключения используйте ключ --disable-memcached-session .

Поддержка SASL аутентификации по умолчанию отключена. Для ее включения используйте ключ --enable-memcached-sasl . Для этого также требуется установленная библиотека libsasl2, и чтобы libmemcached был собран с включенной поддержкой SASL.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Memcached Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
memcached.sess_locking | 1 | PHP_INI_ALL |
memcached.sess_consistent_hash | 0 | PHP_INI_ALL |
memcached.sess_binary | 0 | PHP_INI_ALL |
memcached.sess_lock_wait | 150000 | PHP_INI_ALL |
memcached.sess_prefix | memc.sess.key. | PHP_INI_ALL |
memcached.sess_number_of_replicas | 0 | PHP_INI_ALL |
memcached.sess_randomize_replica_read | 0 | PHP_INI_ALL |
memcached.sess_remove_failed | 0 | PHP_INI_ALL |
memcached.compression_type | fastlz | PHP_INI_ALL |
memcached.compression_factor | 1.3 | PHP_INI_ALL |
memcached.compression_threshold | 2000 | PHP_INI_ALL |
memcached.serializer | php | PHP_INI_ALL |
memcached.use_sasl | 0 | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

memcached.sess_locking integer

Use session locking. Valid values: On, Off, the default is On.

memcached.sess_consistent_hash integer

Memcached session consistent hash mode. If set to On, consistent hashing is used for session handling. When consistent hashing is used, one can add or remove cache node(s) without messing up too much with existing keys. The default is Off.

memcached.sess_binary integer

Use memcached session binary mode. Libmemcached replicas only work if binary mode is enabled. The default is Off.

memcached.sess_lock_wait integer

Session spin lock retry wait time in microseconds. Be carefull when setting this value. Valid values are integers, where 0 is interpreted as the default value. Negative values result in a reduces locking to a try lock. The default is 150000.

memcached.sess_prefix string

Memcached session key prefix. Valid values are strings less than 219 bytes long. The default value is "memc.sess.key."

memcached.sess_number_of_replicas integer

The memcached session number of replicas.

memcached.sess_randomize_replica_read integer

Memcached session replica read randomize.

memcached.sess_remove_failed integer

Allow failed memcached server to automatically be removed.

memcached.compression_type string

Set the compression type, valid values are: fastlz, zlib. The default is fastlz.

memcached.compression_factor float

Compression factor. Store compressed value only if the compression factor (saving) exceeds the set limit. Store compressed if: plain_len > comp_len * factor. The default value is 1.3 (23% space saving).

memcached.compression_threshold integer

The compression threshold. Do not compress serialized values below this threshold. The default is 2000 bytes.

memcached.serializer string

Set the default serializer for new memcached objects. Valid values are: php, igbinary, json, json_array.

json

Standard php JSON encoding. This serializer is fast and compact but only works on UTF-8 encoded data and does not fully implement serializing. See the JSON extension.

json_array

As json, but decodes into arrays.

php

The standard PHP serializer.

igbinary

A binary serializer

The default is igbinary if available and php otherwise.

memcached.use_sasl integer

Use SASL authentication for connections. Valid values: On, Off. The default is Off.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Memcached::OPT_COMPRESSION

Enables or disables payload compression. When enabled, item values longer than a certain threshold (currently 100 bytes) will be compressed during storage and decompressed during retrieval transparently.

Type: boolean, default: TRUE.

Memcached::OPT_SERIALIZER

Specifies the serializer to use for serializing non-scalar values. The valid serializers are Memcached::SERIALIZER_PHP or Memcached::SERIALIZER_IGBINARY. The latter is supported only when memcached is configured with --enable-memcached-igbinary option and the igbinary extension is loaded.

Type: integer, default: Memcached::SERIALIZER_PHP.

Memcached::SERIALIZER_PHP

The default PHP serializer.

Memcached::SERIALIZER_IGBINARY

The » igbinary serializer. Instead of textual representation it stores PHP data structures in a compact binary form, resulting in space and time gains.

Memcached::SERIALIZER_JSON

The JSON serializer. Requires PHP 5.2.10+.

Memcached::OPT_PREFIX_KEY

This can be used to create a "domain" for your item keys. The value specified here will be prefixed to each of the keys. It cannot be longer than 128 characters and will reduce the maximum available key size. The prefix is applied only to the item keys, not to the server keys.

Type: string, default: "".

Memcached::OPT_HASH

Specifies the hashing algorithm used for the item keys. The valid values are supplied via Memcached::HASH_* constants. Each hash algorithm has its advantages and its disadvantages. Go with the default if you don't know or don't care.

Type: integer, default: Memcached::HASH_DEFAULT

Memcached::HASH_DEFAULT

The default (Jenkins one-at-a-time) item key hashing algorithm.

Memcached::HASH_MD5

MD5 item key hashing algorithm.

Memcached::HASH_CRC

CRC item key hashing algorithm.

Memcached::HASH_FNV1_64

FNV1_64 item key hashing algorithm.

Memcached::HASH_FNV1A_64

FNV1_64A item key hashing algorithm.

Memcached::HASH_FNV1_32

FNV1_32 item key hashing algorithm.

Memcached::HASH_FNV1A_32

FNV1_32A item key hashing algorithm.

Memcached::HASH_HSIEH

Hsieh item key hashing algorithm.

Memcached::HASH_MURMUR

Murmur item key hashing algorithm.

Memcached::OPT_DISTRIBUTION

Specifies the method of distributing item keys to the servers. Currently supported methods are modulo and consistent hashing. Consistent hashing delivers better distribution and allows servers to be added to the cluster with minimal cache losses.

Type: integer, default: Memcached::DISTRIBUTION_MODULA.

Memcached::DISTRIBUTION_MODULA

Modulo-based key distribution algorithm.

Memcached::DISTRIBUTION_CONSISTENT

Consistent hashing key distribution algorithm (based on libketama).

Memcached::OPT_LIBKETAMA_COMPATIBLE

Enables or disables compatibility with libketama-like behavior. When enabled, the item key hashing algorithm is set to MD5 and distribution is set to be weighted consistent hashing distribution. This is useful because other libketama-based clients (Python, Ruby, etc.) with the same server configuration will be able to access the keys transparently.

Замечание:

It is highly recommended to enable this option if you want to use consistent hashing, and it may be enabled by default in future releases.

Type: boolean, default: FALSE.

Memcached::OPT_BUFFER_WRITES

Enables or disables buffered I/O. Enabling buffered I/O causes storage commands to "buffer" instead of being sent. Any action that retrieves data causes this buffer to be sent to the remote connection. Quitting the connection or closing down the connection will also cause the buffered data to be pushed to the remote connection.

Type: boolean, default: FALSE.

Memcached::OPT_BINARY_PROTOCOL

Enable the use of the binary protocol. Please note that you cannot toggle this option on an open connection.

Type: boolean, default: FALSE.

Memcached::OPT_NO_BLOCK

Enables or disables asynchronous I/O. This is the fastest transport available for storage functions.

Type: boolean, default: FALSE.

Memcached::OPT_TCP_NODELAY

Enables or disables the no-delay feature for connecting sockets (may be faster in some environments).

Type: boolean, default: FALSE.

Memcached::OPT_SOCKET_SEND_SIZE

The maximum socket send buffer in bytes.

Type: integer, default: varies by platform/kernel configuration.

Memcached::OPT_SOCKET_RECV_SIZE

The maximum socket receive buffer in bytes.

Type: integer, default: varies by platform/kernel configuration.

Memcached::OPT_CONNECT_TIMEOUT

In non-blocking mode this set the value of the timeout during socket connection, in milliseconds.

Type: integer, default: 1000.

Memcached::OPT_RETRY_TIMEOUT

The amount of time, in seconds, to wait until retrying a failed connection attempt.

Type: integer, default: 0.

Memcached::OPT_SEND_TIMEOUT

Socket sending timeout, in microseconds. In cases where you cannot use non-blocking I/O this will allow you to still have timeouts on the sending of data.

Type: integer, default: 0.

Memcached::OPT_RECV_TIMEOUT

Socket reading timeout, in microseconds. In cases where you cannot use non-blocking I/O this will allow you to still have timeouts on the reading of data.

Type: integer, default: 0.

Memcached::OPT_POLL_TIMEOUT

Timeout for connection polling, in milliseconds.

Type: integer, default: 1000.

Memcached::OPT_CACHE_LOOKUPS

Enables or disables caching of DNS lookups.

Type: boolean, default: FALSE.

Memcached::OPT_SERVER_FAILURE_LIMIT

Specifies the failure limit for server connection attempts. The server will be removed after this many continuous connection failures.

Type: integer, default: 0.

Memcached::HAVE_IGBINARY

Indicates whether igbinary serializer support is available.

Type: boolean.

Memcached::HAVE_JSON

Indicates whether JSON serializer support is available.

Type: boolean.

Memcached::GET_PRESERVE_ORDER

A flag for Memcached::getMulti() and Memcached::getMultiByKey() to ensure that the keys are returned in the same order as they were requested in. Non-existing keys get a default value of NULL.

Memcached::RES_SUCCESS

The operation was successful.

Memcached::RES_FAILURE

The operation failed in some fashion.

Memcached::RES_HOST_LOOKUP_FAILURE

DNS lookup failed.

Memcached::RES_UNKNOWN_READ_FAILURE

Failed to read network data.

Memcached::RES_PROTOCOL_ERROR

Bad command in memcached protocol.

Memcached::RES_CLIENT_ERROR

Error on the client side.

Memcached::RES_SERVER_ERROR

Error on the server side.

Memcached::RES_WRITE_FAILURE

Failed to write network data.

Memcached::RES_DATA_EXISTS

Failed to do compare-and-swap: item you are trying to store has been modified since you last fetched it.

Memcached::RES_NOTSTORED

Item was not stored: but not because of an error. This normally means that either the condition for an "add" or a "replace" command wasn't met, or that the item is in a delete queue.

Memcached::RES_NOTFOUND

Item with this key was not found (with "get" operation or "cas" operations).

Memcached::RES_PARTIAL_READ

Partial network data read error.

Memcached::RES_SOME_ERRORS

Some errors occurred during multi-get.

Memcached::RES_NO_SERVERS

Server list is empty.

Memcached::RES_END

End of result set.

Memcached::RES_ERRNO

System error.

Memcached::RES_BUFFERED

The operation was buffered.

Memcached::RES_TIMEOUT

The operation timed out.

Memcached::RES_BAD_KEY_PROVIDED

Bad key.

Memcached::RES_CONNECTION_SOCKET_CREATE_FAILURE

Failed to create network socket.

Memcached::RES_PAYLOAD_FAILURE

Payload failure: could not compress/decompress or serialize/unserialize the value.


Время хранения объекта

Некоторые команды сохранения отправляют на сервер время хранения (применительно к объектам или операциям, запрошенным клиентом). Во всех этих случаях фактическое время должно быть отправлено либо в формате Unix (количество секунд с 1 января 1970 года, в виде целого числа), либо как количество секунд с момента отправки/получения команды. В последнем случае это число не должно превышать 60*60*24*30 (количество секунд в 30 днях); если указано большее время хранения, сервер расценивает его как время в формате Unix.

Если время хранения равно 0 (по умолчанию), объект никогда не будет признан устаревшим (но при этом может быть удален с сервера для высвобождения пространства под другие объекты).


  • « Время хранения объекта
  • Result callbacks »
  • PHP Manual
  • Memcached
  • Callbacks

Callbacks

Содержание

  • Result callbacks
  • Read-through cache callbacks


Result callbacks

Result callbacks are invoked by Memcached::getDelayed() or Memcached::getDelayedBykey() methods for each item in the result set. The callback is passed the Memcached object and the array with the item information. The callback does not have to return anything.

Пример #1 Result callback example

<?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)
}


Read-through cache callbacks

Read-through cache callbacks are invoked when an item cannot be retrieved from the server. The callback is passed the Memcached object, the requested key, and the by-reference value variable. The callback is responsible for setting the value and returning true or false. If the callback returns true, Memcached will store the populated value on the server and return it to the original calling function. Only Memcached::get() and Memcached::getByKey() support these callbacks, because the memcache protocol does not provide information on which keys were not found in the multi-key request.

Пример #1 Read-through callback example

<?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);
    /* lookup profile info in the DB */
    /* ... */
    $value = $profile_info;
    return true;
}
?>


Sessions support

Memcached provides a custom session handler that can be used to store user sessions in memcache. A completely separate memcached instance is used for that internally, so you can use a different server pool if necessary. The session keys are stored under the prefix memc.sess.key., so be aware of this if you use the same server pool for sessions and generic caching.

session.save_handler string

Set to memcached to enable sessions support.

session.save_path string

Defines a comma separated of hostname:port entries to use for session server pool, for example "sess1:11211, sess2:11211".


The Memcached class

(PECL memcached >= 0.1.0)

Введение

Represents a connection to a set of memcached servers.

Обзор классов

Memcached {
public __construct ([ string $persistent_id ] )
public bool add ( string $key , mixed $value [, int $expiration ] )
public bool addByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool addServer ( string $host , int $port [, int $weight = 0 ] )
public bool addServers ( array $servers )
public bool append ( string $key , string $value )
public bool appendByKey ( string $server_key , string $key , string $value )
public bool cas ( float $cas_token , string $key , mixed $value [, int $expiration ] )
public bool casByKey ( float $cas_token , string $server_key , string $key , mixed $value [, int $expiration ] )
public int decrement ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )
public int decrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )
public bool delete ( string $key [, int $time = 0 ] )
public bool deleteByKey ( string $server_key , string $key [, int $time = 0 ] )
public array deleteMulti ( array $keys [, int $time = 0 ] )
public bool deleteMultiByKey ( string $server_key , array $keys [, int $time = 0 ] )
public array fetch ( void )
public array fetchAll ( void )
public bool flush ([ int $delay = 0 ] )
public mixed get ( string $key [, callable $cache_cb [, float &$cas_token ]] )
public array getAllKeys ( void )
public mixed getByKey ( string $server_key , string $key [, callable $cache_cb [, float &$cas_token ]] )
public bool getDelayed ( array $keys [, bool $with_cas [, callable $value_cb ]] )
public bool getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callable $value_cb ]] )
public mixed getMulti ( array $keys [, array &$cas_tokens [, int $flags ]] )
public array getMultiByKey ( string $server_key , array $keys [, string &$cas_tokens [, int $flags ]] )
public mixed getOption ( int $option )
public int getResultCode ( void )
public string getResultMessage ( void )
public array getServerByKey ( string $server_key )
public array getServerList ( void )
public array getStats ( void )
public array getVersion ( void )
public int increment ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )
public int incrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )
public bool isPersistent ( void )
public bool isPristine ( void )
public bool prepend ( string $key , string $value )
public bool prependByKey ( string $server_key , string $key , string $value )
public bool quit ( void )
public bool replace ( string $key , mixed $value [, int $expiration ] )
public bool replaceByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool resetServerList ( void )
public bool set ( string $key , mixed $value [, int $expiration ] )
public bool setByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )
public bool setMulti ( array $items [, int $expiration ] )
public bool setMultiByKey ( string $server_key , array $items [, int $expiration ] )
public bool setOption ( int $option , mixed $value )
public bool setOptions ( array $options )
public void setSaslAuthData ( string $username , string $password )
public bool touch ( string $key , int $expiration )
public bool touchByKey ( string $server_key , string $key , int $expiration )
}

Содержание

  • 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 bool Memcached::add ( string $key , mixed $value [, int $expiration ] )

Метод 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 bool Memcached::addByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

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 bool Memcached::addServer ( string $host , int $port [, int $weight = 0 ] )

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 bool Memcached::addServers ( array $servers )

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 bool Memcached::append ( string $key , string $value )

Memcached::append() добавляет переданную в value строку к существующей записи. Причина того что value приводится к строке в том, что добавление смешанных типов не определено.

Замечание:

Если параметр Memcached::OPT_COMPRESSION установлен, то операция будет завершена неудачей и будет выведено предупреждение, потому что добавление сжатых данных к записи, которая уже сжата, невозможно.

Список параметров

key

Ключ, под которым сохраняется значение.

value

Строка для добавления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED если переданный ключ не существует.

Примеры

Пример #1 Пример использования Memcached::append()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->append('foo', 'def');
var_dump($m->get('foo'));
?>

Результат выполнения данного примера:

string(6) "abcdef"

Смотрите также

  • Memcached::appendByKey() - Добавляет данные к существующей записи на заданном сервере
  • Memcached::prepend() - Добавляет данные в начало существующей записи


Добавляет данные к существующей записи на заданном сервере

  • « Memcached::append
  • Memcached::cas »
  • PHP Manual
  • Memcached
  • Добавляет данные к существующей записи на заданном сервере

Memcached::appendByKey

(PECL memcached >= 0.1.0)

Memcached::appendByKey — Добавляет данные к существующей записи на заданном сервере

Описание

public bool Memcached::appendByKey ( string $server_key , string $key , string $value )

Memcached::appendByKey() работает аналогично методу Memcached::append(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ, под которым сохраняется значение.

value

Строка для добавления в конец существующей записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED если переданный ключ не существует.

Смотрите также

  • Memcached::append() - Добавляет данные к существующей записи
  • Memcached::prepend() - Добавляет данные в начало существующей записи


Сравнивает и устанавливает значение для записи

  • « Memcached::appendByKey
  • Memcached::casByKey »
  • PHP Manual
  • Memcached
  • Сравнивает и устанавливает значение для записи

Memcached::cas

(PECL memcached >= 0.1.0)

Memcached::cas — Сравнивает и устанавливает значение для записи

Описание

public bool Memcached::cas ( float $cas_token , string $key , mixed $value [, int $expiration ] )

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 bool Memcached::casByKey ( float $cas_token , string $server_key , string $key , mixed $value [, int $expiration ] )

Memcached::casByKey() работает аналогично методу Memcached::cas(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки key на конкретный сервер. Это полезно когда необходимо держать несколько связанных значений на конкретном сервере.

Список параметров

cas_token

Уникальное значение, связанное с существующей записью. Генерируется сервером memcache.

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ, под которым сохраняется значение.

value

Сохраняемое значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_DATA_EXISTS если запись которую вы пытаетесь сохранить была изменена с момента последнего обращения.

Смотрите также

  • Memcached::cas() - Сравнивает и устанавливает значение для записи


Создает экземпляр класса Memcached

  • « Memcached::casByKey
  • Memcached::decrement »
  • PHP Manual
  • Memcached
  • Создает экземпляр класса Memcached

Memcached::__construct

(PECL memcached >= 0.1.0)

Memcached::__construct — Создает экземпляр класса Memcached

Описание

public Memcached::__construct ([ string $persistent_id ] )

Создает экземпляр класса Memcached, осуществляющий соединение с сервером memcache.

Список параметров

persistent_id

По умолчанию экземпляр класса Memcached уничтожается в конце запроса. Для создания экземпляра, который сохраняется между запросами, необходимо использовать persistent_id, чтобы указать уникальный идентификатор для экземпляра. Все экземпляры класса, созданные с использованием одного и тот же идентификатора persistent_id будут использовать общее соединение.

Возвращаемые значения

Memcached объект.

Примеры

Пример #1 Создание экземпляра класса Memcached

<?php
/* Создает обычный экземпляр класса */
$m = new Memcached();
echo get_class($m);

/* Создает устойчивый экземпляр класса */
$m2 = new Memcached('story_pool');
$m3 = new Memcached('story_pool');

/* Теперь объекты $m2 и $m3 используют общее соединение */
?>


Уменьшает числовое значение записи

  • « Memcached::__construct
  • Memcached::decrementByKey »
  • PHP Manual
  • Memcached
  • Уменьшает числовое значение записи

Memcached::decrement

(PECL memcached >= 0.1.0)

Memcached::decrement — Уменьшает числовое значение записи

Описание

public int Memcached::decrement ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )

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 int Memcached::decrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )

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 bool Memcached::delete ( string $key [, int $time = 0 ] )

Memcached::delete() удаляет запись с ключом key с сервера. Параметр time задает период времени в секундах в течение которого (или временную метку в формате Unix до которой) сервер будет отклонять add и replace запросы клиента по данному ключу. В течение этого времени, запись помещается в очередь на удаление, что означает невозможность получения значения с помощью команды get, команды add и replace по данному ключу также будут завершены неудачей (однако команда set будет успешно выполнена). По истечении этого времени, запись будет окончательно удалена из памяти сервера. По умолчанию параметр time установлен в 0 (что означает немедленное удаление записи и последующие операции с данной записью будут успешно выполнены).

Список параметров

key

Ключ удаляемой записи.

time

Время к течение которого сервер ожидает удаления записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если заданный ключ не существует.

Примеры

Пример #1 Пример использования Memcached::delete()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->delete('key1');
?>

Смотрите также

  • Memcached::deleteByKey() - Удаляет запись с указанного сервера
  • Memcached::deleteMulti() - Удаляет несколько записей


Удаляет запись с указанного сервера

  • « Memcached::delete
  • Memcached::deleteMulti »
  • PHP Manual
  • Memcached
  • Удаляет запись с указанного сервера

Memcached::deleteByKey

(PECL memcached >= 0.1.0)

Memcached::deleteByKey — Удаляет запись с указанного сервера

Описание

public bool Memcached::deleteByKey ( string $server_key , string $key [, int $time = 0 ] )

Memcached::deleteByKey() работает аналогично Memcached::delete(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ удаляемой записи.

time

Период времени, в течение которого сервер ожидает удаления записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если указанный ключ не существует.

Смотрите также

  • Memcached::delete() - Удаляет запись
  • Memcached::deleteMulti() - Удаляет несколько записей
  • Memcached::deleteMultiByKey() - Удаляет несколько записей с указанного сервера


Удаляет несколько записей

  • « Memcached::deleteByKey
  • Memcached::deleteMultiByKey »
  • PHP Manual
  • Memcached
  • Удаляет несколько записей

Memcached::deleteMulti

(PECL memcached >= 2.0.0)

Memcached::deleteMulti — Удаляет несколько записей

Описание

public array Memcached::deleteMulti ( array $keys [, int $time = 0 ] )

Memcached::deleteMulti() удаляет записи, переданные в массиве keys, с сервера. Параметр time задает период времени в секундах в течение которого (или временную метку в формате Unix до которой) сервер будет отклонять add и replace запросы клиента по данному ключу. В течение этого времени, запись помещается в очередь на удаление, что означает невозможность получения значения с помощью команды get, команды add и replace по данному ключу также будут завершены неудачей (однако команда set будет успешно выполнена). По истечении этого времени, запись будет окончательно удалена из памяти сервера. По умолчанию параметр time установлен в 0 (что означает немедленное удаление записи и последующие операции с данной записью будут успешно выполнены).

Список параметров

keys

Ключ удаляемой записи.

time

Время к течение которого сервер ожидает удаления записи.

Возвращаемые значения

Возвращает массив с индексами keys и значениями обозначающими удачно или нет завершилась операция. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если заданный ключ не существует.

Смотрите также

  • Memcached::delete() - Удаляет запись
  • Memcached::deleteByKey() - Удаляет запись с указанного сервера
  • Memcached::deleteMultiByKey() - Удаляет несколько записей с указанного сервера


Удаляет несколько записей с указанного сервера

  • « Memcached::deleteMulti
  • Memcached::fetch »
  • PHP Manual
  • Memcached
  • Удаляет несколько записей с указанного сервера

Memcached::deleteMultiByKey

(PECL memcached >= 2.0.0)

Memcached::deleteMultiByKey — Удаляет несколько записей с указанного сервера

Описание

public bool Memcached::deleteMultiByKey ( string $server_key , array $keys [, int $time = 0 ] )

Memcached::deleteMultiByKey() работает аналогично Memcached::deleteMulti(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом keys на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

keys

Ключ удаляемой записи.

time

Время к течение которого сервер ожидает удаления записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если заданный ключ не существует.

Смотрите также

  • Memcached::delete() - Удаляет запись
  • Memcached::deleteByKey() - Удаляет запись с указанного сервера
  • Memcached::deleteMulti() - Удаляет несколько записей


Извлекает следующий результат

  • « Memcached::deleteMultiByKey
  • Memcached::fetchAll »
  • PHP Manual
  • Memcached
  • Извлекает следующий результат

Memcached::fetch

(PECL memcached >= 0.1.0)

Memcached::fetch — Извлекает следующий результат

Описание

public array Memcached::fetch ( void )

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 array Memcached::fetchAll ( void )

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 bool Memcached::flush ([ int $delay = 0 ] )

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 mixed Memcached::get ( string $key [, callable $cache_cb [, float &$cas_token ]] )

Memcached::get() возвращает запись, которая ранее была сохранена под ключом key. Если элемент не найден и переменная cas_token передана, то в неё будет записан CAS токен этой записи. Обратитесь к документации по Memcached::cas() для получения информации об использовании CAS токена. Чтение при помощи кэширующих callback-функций может быть использовано с помощью параметра cache_cb.

Список параметров

key

Ключ получаемой записи.

cache_cb

Функция обратного вызова для кэшируемого чтения или NULL.

cas_token

Переменная в которую записывается CAS токен.

Возвращаемые значения

Возвращает значение хранимое в кеше или FALSE в противном случае. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если переданный ключ не существует.

Примеры

Пример #1 Пример использования Memcached::get() #1

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

$m->set('foo', 100);
var_dump($m->get('foo'));
?>

Результат выполнения данного примера:

int(100)

Пример #2 Пример использования Memcached::get() #2

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

if (!($ip = $m->get('ip_block'))) {
    if ($m->getResultCode() == Memcached::RES_NOTFOUND) {
        $ip = array();
        $m->set('ip_block', $ip);
    } else {
        /* log error */
        /* ...       */
    }
}
?>

Смотрите также

  • Memcached::getByKey() - Получает запись с определенного сервера
  • Memcached::getMulti() - Получает несколько записей
  • Memcached::getDelayed() - Запрашивает несколько записей


Получает все ключи, хранящиеся на серверах

  • « Memcached::get
  • Memcached::getByKey »
  • PHP Manual
  • Memcached
  • Получает все ключи, хранящиеся на серверах

Memcached::getAllKeys

(PECL memcached >= 2.0.0)

Memcached::getAllKeys — Получает все ключи, хранящиеся на серверах

Описание

public array Memcached::getAllKeys ( void )

Memcached::getAllKeys() отправляет запрос на каждый сервер и получает массив всех ключей, хранящихся на нем в данный момент. Это не атомарная операция, так что это не по-настоящему непротиворечивый снимок ключей в данный момент времени. Memcache не может гарантировать возврата всех ключей, вы также не можете полагаться на то, что все ключи были возвращены.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает список ключей, хранящихся на всех серверах в случае успеха или FALSE в случае возникновения ошибки.


Получает запись с определенного сервера

  • « Memcached::getAllKeys
  • Memcached::getDelayed »
  • PHP Manual
  • Memcached
  • Получает запись с определенного сервера

Memcached::getByKey

(PECL memcached >= 0.1.0)

Memcached::getByKey — Получает запись с определенного сервера

Описание

public mixed Memcached::getByKey ( string $server_key , string $key [, callable $cache_cb [, float &$cas_token ]] )

Memcached::getByKey() работает аналогично Memcached::get(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ получаемой записи.

cache_cb

Callback-функция для кэшируемого чтения или NULL

cas_token

Переменная в которую записывается CAS токен.

Возвращаемые значения

Возвращает значение хранимое в кеше или FALSE в противном случае. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTFOUND если переданный ключ не существует.

Смотрите также

  • Memcached::get() - Получение записи
  • Memcached::getMulti() - Получает несколько записей
  • Memcached::getDelayed() - Запрашивает несколько записей


Запрашивает несколько записей

  • « Memcached::getByKey
  • Memcached::getDelayedByKey »
  • PHP Manual
  • Memcached
  • Запрашивает несколько записей

Memcached::getDelayed

(PECL memcached >= 0.1.0)

Memcached::getDelayed — Запрашивает несколько записей

Описание

public bool Memcached::getDelayed ( array $keys [, bool $with_cas [, callable $value_cb ]] )

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 bool Memcached::getDelayedByKey ( string $server_key , array $keys [, bool $with_cas [, callable $value_cb ]] )

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 mixed Memcached::getMulti ( array $keys [, array &$cas_tokens [, int $flags ]] )

Memcached::getMulti() работает аналогично методу Memcached::get(), но вместо одной записи получает несколько, ключи которых были переданы в массиве keys. Если передана переменная cas_tokens, то она будет заполнена CAS токенами найденных записей.

Замечание:

В отличие от Memcached::get() нельзя указать callback-функцию с чтением из кеша для метода Memcached::getMulti(), потому что memcache протокол не дает информацию о том, какие ключи небыли найдены в множественном запросе.

Параметр flags может использоваться для указания дополнительных настроек для метода Memcached::getMulti(). На данный момент поддерживаются, только следующие настройки: Memcached::GET_PRESERVE_ORDER гарантирует что записи будут возвращены в том же порядке, что и были запрошены.

Список параметров

keys

Массив ключей для запроса.

cas_tokens

Переменная в которую будут записаны CAS токены найденных записей.

flags

Флаги для операции получения записей.

Возвращаемые значения

Возвращает массив найденных записей или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Примеры

Пример #1 Пример использования Memcached::getMulti()

<?php
$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)
}

Пример #2 Пример использования Memcached::GET_PRESERVE_ORDER

<?php
$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 array Memcached::getMultiByKey ( string $server_key , array $keys [, string &$cas_tokens [, int $flags ]] )

Memcached::getMultiByKey() работает аналогично Memcached::getMulti(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

keys

Массив с ключами для получения записей.

cas_tokens

Переменная в которую будут записаны CAS токены найденных записей.

flags

Флаги для операции получения записей.

Возвращаемые значения

Возвращает массив найденных записей или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Смотрите также

  • 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 mixed Memcached::getOption ( int $option )

Данный метод возвращает значение 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 int Memcached::getResultCode ( void )

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 string Memcached::getResultMessage ( void )

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 array Memcached::getServerByKey ( string $server_key )

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 array Memcached::getServerList ( void )

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 array Memcached::getStats ( void )

Memcached::getStats() возвращает массив, содержащий статистику всех доступных memcache серверов. Ознакомьтесь также со спецификацией » memcache протокола для получения полной информации об этой статистике.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Список массивов со статистикой по каждому серверу, где каждый элемент- отдельный сервер.

Примеры

Пример #1 Пример использования Memcached::getStats()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);

print_r($m->getStats());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [localhost:11211] => Array
        (
            [pid] => 4933
            [uptime] => 786123
            [threads] => 1
            [time] => 1233868010
            [pointer_size] => 32
            [rusage_user_seconds] => 0
            [rusage_user_microseconds] => 140000
            [rusage_system_seconds] => 23
            [rusage_system_microseconds] => 210000
            [curr_items] => 145
            [total_items] => 2374
            [limit_maxbytes] => 67108864
            [curr_connections] => 2
            [total_connections] => 151
            [connection_structures] => 3
            [bytes] => 20345
            [cmd_get] => 213343
            [cmd_set] => 2381
            [get_hits] => 204223
            [get_misses] => 9120
            [evictions] => 0
            [bytes_read] => 9092476
            [bytes_written] => 15420512
            [version] => 1.2.6
        )

)


Получает информацию о версии серверов в пуле

  • « Memcached::getStats
  • Memcached::increment »
  • PHP Manual
  • Memcached
  • Получает информацию о версии серверов в пуле

Memcached::getVersion

(PECL memcached >= 0.1.5)

Memcached::getVersion — Получает информацию о версии серверов в пуле

Описание

public array Memcached::getVersion ( void )

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 int Memcached::increment ( string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )

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 int Memcached::incrementByKey ( string $server_key , string $key [, int $offset = 1 [, int $initial_value = 0 [, int $expiry = 0 ]]] )

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 bool Memcached::isPersistent ( void )

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 bool Memcached::isPristine ( void )

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 bool Memcached::prepend ( string $key , string $value )

Memcached::prepend() добавляет строку, переданную в параметре value в начало существующей записи. Причина того что value приводится к строковому типу в том, что добавление значения в начало комплексных типов не определено.

Замечание:

Если установлен параметр Memcached::OPT_COMPRESSION, то выполнение данного метода завершится неудачей и будет выведено предупреждение, потому что добавление сжатых данных к значению, которое возможно уже сжато, невозможно.

Список параметров

key

Ключ записи к которой происходит добавление в начало.

value

Добавляемая строка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED если переданный ключ не существует.

Примеры

Пример #1 Пример использования Memcached::prepend()

<?php
$m = new Memcached();
$m->addServer('localhost', 11211);
$m->setOption(Memcached::OPT_COMPRESSION, false);

$m->set('foo', 'abc');
$m->prepend('foo', 'def');
var_dump($m->get('foo'));
?>

Результат выполнения данного примера:

string(6) "defabc"

Смотрите также

  • Memcached::prependByKey() - Добавляет данные в начало существующей записи на указанном сервере
  • Memcached::append() - Добавляет данные к существующей записи


Добавляет данные в начало существующей записи на указанном сервере

  • « Memcached::prepend
  • Memcached::quit »
  • PHP Manual
  • Memcached
  • Добавляет данные в начало существующей записи на указанном сервере

Memcached::prependByKey

(PECL memcached >= 0.1.0)

Memcached::prependByKey — Добавляет данные в начало существующей записи на указанном сервере

Описание

public bool Memcached::prependByKey ( string $server_key , string $key , string $value )

Memcached::prependByKey() работает аналогично Memcached::prepend(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ записи к которой происходит добавление в начало.

value

Добавляемая строка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Метод Memcached::getResultCode() возвращает Memcached::RES_NOTSTORED если переданный ключ не существует.

Смотрите также

  • Memcached::prepend() - Добавляет данные в начало существующей записи
  • Memcached::append() - Добавляет данные к существующей записи


Закрывает все открытые соединения

  • « Memcached::prependByKey
  • Memcached::replace »
  • PHP Manual
  • Memcached
  • Закрывает все открытые соединения

Memcached::quit

(PECL memcached >= 2.0.0)

Memcached::quit — Закрывает все открытые соединения

Описание

public bool Memcached::quit ( void )

Memcached::quit() закрывает все открытые соединения с серверами memcache.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Заменяет существующую запись с указанным ключом

  • « Memcached::quit
  • Memcached::replaceByKey »
  • PHP Manual
  • Memcached
  • Заменяет существующую запись с указанным ключом

Memcached::replace

(PECL memcached >= 0.1.0)

Memcached::replace — Заменяет существующую запись с указанным ключом

Описание

public bool Memcached::replace ( string $key , mixed $value [, int $expiration ] )

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 bool Memcached::replaceByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

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 bool Memcached::resetServerList ( void )

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 bool Memcached::set ( string $key , mixed $value [, int $expiration ] )

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 bool Memcached::setByKey ( string $server_key , string $key , mixed $value [, int $expiration ] )

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 bool Memcached::setMulti ( array $items [, int $expiration ] )

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 bool Memcached::setMultiByKey ( string $server_key , array $items [, int $expiration ] )

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 bool Memcached::setOption ( int $option , mixed $value )

Этот метод устанавливает значение параметра для Memcached, переданного в option. Некоторые параметры определены в библиотеке libmemcached, а некоторые указаны в расширении. Изучите раздел Memcached константы для получения более полной информации.

Параметры, перечисленные ниже, требуют значений, указанных с помощью констант.

  • Memcached::OPT_HASH требует Memcached::HASH_* значений.

  • Memcached::OPT_DISTRIBUTION требует Memcached::DISTRIBUTION_* значений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Устанавливает Memcached параметр

<?php
$m = new Memcached();
var_dump($m->getOption(Memcached::OPT_HASH) == Memcached::HASH_DEFAULT);
$m->setOption(Memcached::OPT_HASH, Memcached::HASH_MURMUR);
$m->setOption(Memcached::OPT_PREFIX_KEY, "widgets");
echo "Prefix key is now: ", $m->getOption(Memcached::OPT_PREFIX_KEY), "\n";
?>

Результат выполнения данного примера:

bool(true)
Prefix key is now: widgets

Смотрите также

  • Memcached::getOption() - Получает значение Memcached параметра
  • Memcached::setOptions() - Устанавливает несколько Memcached параметров
  • Memcached константы


Устанавливает несколько Memcached параметров

  • « Memcached::setOption
  • Memcached::setSaslAuthData »
  • PHP Manual
  • Memcached
  • Устанавливает несколько Memcached параметров

Memcached::setOptions

(PECL memcached >= 2.0.0)

Memcached::setOptions — Устанавливает несколько Memcached параметров

Описание

public bool Memcached::setOptions ( array $options )

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 void Memcached::setSaslAuthData ( string $username , string $password )

Memcached::setSaslAuthData() устанавливает имя пользователя и пароль, которые должны быть использованы для SASL аутентификации с серверами memcache.

Данный метод доступен только в случае, если расширение memcached собрано с поддержкой SASL. Обратитесь к разделу установка Memcached, чтобы узнать как это сделать.

Список параметров

username

Имя пользователя для аутентификации.

password

Пароль для аутентификации.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает новый срок хранения для записи

  • « Memcached::setSaslAuthData
  • Memcached::touchByKey »
  • PHP Manual
  • Memcached
  • Устанавливает новый срок хранения для записи

Memcached::touch

(PECL memcached >= 2.0.0)

Memcached::touch — Устанавливает новый срок хранения для записи

Описание

public bool Memcached::touch ( string $key , int $expiration )

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 bool Memcached::touchByKey ( string $server_key , string $key , int $expiration )

Memcached::touchByKey() работает аналогично Memcached::touch(), за исключением того, что произвольный server_key может быть использован для определения сервера и установки значения с ключом key на конкретный сервер.

Список параметров

server_key

Ключ, идентифицирующий сервер, на котором хранится значение. Вместо хэширования по ключу самого элемента, мы хэшируем по ключу сервера при выборе подключаемого сервера memcached. Данный подход позволяет группировать связанные элементы вместе на одном сервере, что улучшает эффективность групповых операций.

key

Ключ, под которым сохраняется значение.

expiration

Время хранения объекта, по умолчанию равно 0. Для более подробной информации смотрите Время хранения объекта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Используйте при необходимости Memcached::getResultCode().

Смотрите также

  • Memcached::touch() - Устанавливает новый срок хранения для записи


The MemcachedException class

(PECL memcached >= 0.1.0)

Введение

Обзор классов

MemcachedException extends RuntimeException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void 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 — Returns the error message corresponding to a result code (MQRC).


Введение

This extension aims to provide an interface for communicating with IBMs WebSphere MQ series Queue managers.

The interface mimics the C-API client interface of WebSphere MQ Series as close as possible. Using the same naming conventions and possibilities of the C-API. In order to understand the workings of this extension some level of understanding the C-API is required.

For MQ-options, MQ-structures, MQ-results etc. please read the WebSphere MQ Application Programming Guide and WebSphere MQ Application Programming Reference.


Требования

A working IBM WebSphere MQ installation. If building the extension the SDK for IBM WebSphere MQ is also required.

Замечание: Be aware that when running against a IBM WebSphere MQ Client installation some methods are not available. This is not a problem of the extension but just the way the WebSphere MQ Client Interface works.

Installation requirements on non windows platforms

Build the extension and put it in the PHP extension directory.

Installation requirements on Windows

No additional requirements.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/mqseries.

Замечание: The official name of this extension is mqseries.

There are two ways to connect to a queue manager. These depend on the way the extension is compiled and linked.

  • First one and also the default one is using the mqic libraries. Compiling and linking the extension against these IBM WebSphere MQSeries libraries allows the extension to connect to the Queue manager using the client interface. Remote connections are possible this way.

  • The other way is to compile and link against the mqm libraries. Using these libraries it is possible to make use of the transaction management of a queue manager.

Currently selecting the libraries to use is done by changing the config.m4 file.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

There are no extra configuration parameters.


Типы ресурсов

This extension defines a connection and object_handle resources.

The mqseries_conn() and mqseries_connx() define the connectionn handles.

The mqseries_open() defines the object handle.


Предопределенные константы

For each WebSphere MQ Constant there is a mqseries counterpart.

For definitions and usage see the WebSphere MQ Application Programming Guide and WebSphere MQ Application Programming Reference red books.

The name of the mqseries counterpart is made by appending the WebSphere MQ constant with MQSERIES_, for example the CompletionCode constants are:

mqseries constants
PHP Constant | MQ Constant
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 — Returns the error message corresponding to a result code (MQRC).


MQSeries MQBACK

  • « mqseries Функции
  • mqseries_begin »
  • PHP Manual
  • mqseries Функции
  • MQSeries MQBACK

mqseries_back

(PECL mqseries >= 0.10.0)

mqseries_back — MQSeries MQBACK

Описание

void mqseries_back ( resource $hconn , resource &$compCode , resource &$reason )

The mqseries_back() (MQBACK) call indicates to the queue manager that all the message gets and puts that have occurred since the last syncpoint are to be backed out. Messages put as part of a unit of work are deleted; messages retrieved as part of a unit of work are reinstated on the queue.

Using mqseries_back() only works in conjunction with mqseries_begin() and only function when connecting directly to a Queueu manager. Not via the mqclient interface.

Список параметров

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 mqseries_back() example

<?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() will not function when using MQSeries Client to connect to a Queueu Manager.

Смотрите также

  • 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

Описание

void mqseries_begin ( resource $hconn , array $beginOptions , resource &$compCode , resource &$reason )

The mqseries_begin() (MQBEGIN) call begins a unit of work that is coordinated by the queue manager, and that may involve external resource managers.

Using mqseries_begin() starts the unit of work. Either mqseries_back() or mqseries_cmit() ends the unit of work.

Список параметров

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 mqseries_begin() example

<?php
    $mqbo = array();
    mqseries_begin( $conn,
                    $mqbo,
                    $comp_code,
                    $reason);
    if ($comp_code !== MQSERIES_MQCC_OK) {
        /* reason code 2121 is a warning for more information see MQSeries reference manual.*/
        if ($reason !== 2121) {
            printf("CompCode:%d Reason:%d Text:%s<br>\n", $comp_code, $reason, mqseries_strerror($reason));
        }
    }
?>

Примечания

Замечание:

mqseries_begin() will not function when using MQSeries Client to connect to a Queueu Manager.

Смотрите также

  • 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

Описание

void mqseries_close ( resource $hconn , resource $hobj , int $options , resource &$compCode , resource &$reason )

The mqseries_close() (MQCLOSE) call relinquishes access to an object, and is the inverse of the mqseries_open() (MQOPEN) call.

Список параметров

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

options

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 mqseries_close() example

<?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

Описание

void mqseries_cmit ( resource $hconn , resource &$compCode , resource &$reason )

The mqseries_cmit() (MQCMIT) call indicates to the queue manager that the application has reached a syncpoint, and that all of the message gets and puts that have occurred since the last syncpoint are to be made permanent. Messages put as part of a unit of work are made available to other applications; messages retrieved as part of a unit of work are deleted.

Список параметров

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 mqseries_cmit() example

<?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() will not function when using MQSeries Client to connect to a Queueu Manager.

Смотрите также

  • 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

Описание

void mqseries_conn ( string $qManagerName , resource &$hconn , resource &$compCode , resource &$reason )

The mqseries_conn() (MQCONN) call connects an application program to a queue manager. It provides a queue manager connection handle, which is used by the application on subsequent message queuing calls.

Список параметров

qManagerName

Name of queue manager.

Name of the queue manager the application wishes to connect.

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 mqseries_conn() example

<?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

Описание

void mqseries_connx ( string $qManagerName , array &$connOptions , resource &$hconn , resource &$compCode , resource &$reason )

The mqseries_connx() (MQCONNX) call connects an application program to a queue manager. It provides a queue manager connection handle, which is used by the application on subsequent MQ calls.

Список параметров

qManagerName

Name of queue manager.

Name of the queue manager the application wishes to connect.

connOps

Options that control the action of function

See also the MQCNO structure.

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 mqseries_connx() example

<?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() example using SSL connection & OCSP Responder URL

<?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

Описание

void mqseries_disc ( resource $hconn , resource &$compCode , resource &$reason )

The mqseries_disc() (MQDISC) call breaks the connection between the queue manager and the application program, and is the inverse of the mqseries_conn() (MQCONN) or mqseries_connx() (MQCONNX) call.

Список параметров

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 mqseries_disc() example

<?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

Описание

void mqseries_get ( resource $hConn , resource $hObj , array &$md , array &$gmo , int &$bufferLength , string &$msg , int &$data_length , resource &$compCode , resource &$reason )

The mqseries_get() (MQGET) call retrieves a message from a local queue that has been opened using the mqseries_open() (MQOPEN) call

Список параметров

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

md

Message descriptor (MQMD).

gmo

Get message options (MQGMO).

bufferLength

Expected length of the result buffer

msg

Buffer holding the message that was retrieved from the object.

data_length

Actual buffer length

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 mqseries_get() example

<?php
// open connection to the queue manager
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connection to the testq queue
    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 now holds the reference to the object (TESTQ)

// setup empty message descriptor.
    $mdg = array();
// setup get message options
    $gmo = array('Options' => MQSERIES_MQGMO_FAIL_IF_QUIESCING | MQSERIES_MQGMO_WAIT, 'WaitInterval' => 3000);

// get the message from the queueu
    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));
    }

 // open connection to the queue manager
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connection to the testq queue
    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 now holds the reference to the object (TESTQ)

?>

Смотрите также

  • 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

Описание

void mqseries_inq ( resource $hconn , resource $hobj , int $selectorCount , array $selectors , int $intAttrCount , resource &$intAttr , int $charAttrLength , resource &$charAttr , resource &$compCode , resource &$reason )

The mqseries_inq() (MQINQ) call returns an array of integers and a set of character strings containing the attributes of an object.

Список параметров

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

selectorCount

Count of selectors.

selectors

Array of attribute selectors.

intAttrLength

Count of integer attributes.

intAttr

Array of integer attributes.

charAttrLength

Length of character attributes buffer.

charAttr

Character attributes.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 mqseries_inq() example

<?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

Описание

void mqseries_open ( resource $hconn , array &$objDesc , int $option , resource &$hobj , resource &$compCode , resource &$reason )

The mqseries_open() (MQOPEN) call establishes access to an object.

Список параметров

hConn

Connection handle.

This handle represents the connection to the queue manager.

objDesc

Object descriptor. (MQOD)

options

Options that control the action of the function.

hObj

Object handle.

This handle represents the object to be used.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 mqseries_open() example

<?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

Описание

void mqseries_put1 ( resource $hconn , resource &$objDesc , resource &$msgDesc , resource &$pmo , string $buffer , resource &$compCode , resource &$reason )

The mqseries_put1() (MQPUT1) call puts one message on a queue. The queue need not be open.

Список параметров

hConn

Connection handle.

This handle represents the connection to the queue manager.

objDesc

Object descriptor. (MQOD)

This is a structure which identifies the queue to which the message is added.

msgDesc

Message descriptor (MQMD).

pmo

Put message options (MQPMO).

compCode

Completion code.

reason

Reason code qualifying the 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

Описание

void mqseries_put ( resource $hConn , resource $hObj , array &$md , array &$pmo , string $message , resource &$compCode , resource &$reason )

The mqseries_put() (MQPUT) call puts a message on a queue or distribution list. The queue or distribution list must already be open.

Список параметров

hConn

Connection handle.

This handle represents the connection to the queue manager.

hObj

Object handle.

This handle represents the object to be used.

md

Message descriptor (MQMD).

pmo

Put message options (MQPMO).

message

The actual message to put onto the queue.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 mqseries_put() example

<?php
// open connection to the queue manager
    mqseries_conn('WMQ1', $conn, $comp_code, $reason);
// $conn now hold the reference to the connection to the queue manager.

// open the connectio to the testq queueu
    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 now holds the reference to the object (TESTQ)

// setup the message descriptor array. Check MQSeries reference manuals.
    $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);

// setup the put message options.
    $pmo = array('Options' => MQSERIES_MQPMO_NEW_MSG_ID|MQSERIES_MQPMO_SYNCPOINT);

// put the message 'Ping' on the queueu.
    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));
    }

// close the object reference $obj
    mqseries_close($conn, $obj, MQSERIES_MQCO_NONE, $comp_code, $reason);

// disconnect from the queue manager.
    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

Описание

void mqseries_set ( resource $hconn , resource $hobj , int $selectorcount , array $selectors , int $intattrcount , array $intattrs , int $charattrlength , array $charattrs , resource &$compCode , resource &$reason )

The mqseries_set() (MQSET) call is used to change the attributes of an object represented by a handle. The object must be a queue.

Список параметров

hConn

Connection handle.

This handle represents the connection to the queue manager.

compCode

Completion code.

reason

Reason code qualifying the compCode.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • mqseries_inq() - MQSeries MQINQ


Returns the error message corresponding to a result code (MQRC).

  • « mqseries_set
  • Network »
  • PHP Manual
  • mqseries Функции
  • Returns the error message corresponding to a result code (MQRC).

mqseries_strerror

(PECL mqseries >= 0.10.0)

mqseries_strerror — Returns the error message corresponding to a result code (MQRC).

Описание

string mqseries_strerror ( int $reason )

mqseries_strerror() returns the message that correspond to the reason result code.

Список параметров

reason

Reason code qualifying the compCode.

Возвращаемые значения

string representation of the reason code message.

Примеры

Пример #1 mqseries_strerror() example

<?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.


Network

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Сетевые Функции
    • checkdnsrr — Проверяет записи DNS, соответствующие переданному имени узла интернета или IP-адресу
    • closelog — Завершает соединение с системным журналом
    • define_syslog_variables — Инициализирует все syslog переменные
    • dns_check_record — Псевдоним checkdnsrr
    • dns_get_mx — Псевдоним getmxrr
    • dns_get_record — Получение DNS свойств и характеристик хоста
    • fsockopen — Открывает соединение с интернет сокетом или доменным сокетом Unix
    • gethostbyaddr — Получает доменное имя узла, соответствующее переданному IP-адресу
    • gethostbyname — Получает адрес IPv4, соответствующий переданному имени узла интернета
    • gethostbynamel — Возвращает список адресов IPv4, соответствующих переданному доменному имени узла
    • gethostname — Получает имя хоста
    • getmxrr — Получает запись MX, соответствующую переданному доменному имени узла
    • getprotobyname — Получает номер протокола по имени
    • getprotobynumber — Получает имя протокола по номеру
    • getservbyname — Получает номер порта, присвоенного Интернет службе и протоколу
    • getservbyport — Получает Интернет службу, соответствующую заданному порту и протоколу
    • header_register_callback — Вызывает функцию заголовка (header)
    • header_remove — Удаляет предварительно установленные заголовки
    • header — Отправка HTTP заголовка
    • headers_list — Возвращает список переданных (или готовых к передаче) заголовков
    • headers_sent — Проверяет были ли и куда отправлены заголовки
    • http_response_code — Получает или устанавливает код ответа HTTP
    • inet_ntop — Конвертирует упакованный интернет адрес в читаемый формат
    • inet_pton — Конвертирует читаемый IP адрес в упакованное in_addr представление
    • ip2long — Конвертирует строку, содержащую (IPv4) Интернет-адрес с точками в целое число (long)
    • long2ip — Конвертирует адрес в формате "длинное целое"(long integer) в, содержащую адрес Интернет сети(IPv4), стандартную строку с точками
    • openlog — Открывает соединение к системному журналу
    • pfsockopen — Открывает постоянное соединение с Интернет или сокетом Unix домена
    • setcookie — Посылает cookie
    • setrawcookie — Посылает cookie не преобразовывая значение
    • socket_get_status — Псевдоним stream_get_meta_data
    • socket_set_blocking — Псевдоним stream_set_blocking
    • socket_set_timeout — Псевдоним stream_set_timeout
    • syslog — Генерирует сообщение для системного журнала


  • « Network
  • Установка и настройка »
  • PHP Manual
  • Network
  • Введение

Введение

Предоставляет различные функции для работы с сетью.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Функции checkdnsrr(), getmxrr() и dns_get_record() требуют наличия Bind в Linux.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации сети
Имя | По умолчанию | Меняемо | Список изменений
define_syslog_variables | "0" | PHP_INI_ALL | Устарело с версии PHP 5.3.0. Удалено в PHP 5.4.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

define_syslog_variables boolean

Позволяет задать, необходимо ли определять различные переменные syslog (н-р. $LOG_PID, $LOG_CRON, и т.д.). Отключение определения этих переменных позволяет повысить производительность. Вы можете определить эти переменные при запуске с помощью функции define_syslog_variables().


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Это расширение определяет ресурс файлового указателя, возвращаемого функциями fsockopen() и pfsockopen().


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

Опции openlog()
Константа | Описание
LOG_CONS | если при передаче данных системному журналу произошла ошибка, произвести вывод в системную консоль
LOG_NDELAY | немедленно открыть соединение со службой журналирования
LOG_ODELAY | (по умолчанию) отсрочить открытие соединения до появления первого сообщения
LOG_NOWAIT |
LOG_PERROR | вывод журнала вместе со стандартной ошибкой
LOG_PID | добавить PID к каждому сообщению
Средства openlog()
Константа | Описание
LOG_AUTH | сообщения безопасности/авторизации (используйте LOG_AUTHPRIV в системах, где эта константа определена)
LOG_AUTHPRIV | сообщения безопасности/авторизации (частно)
LOG_CRON | планировщик событий (cron и at)
LOG_DAEMON | другие системные службы
LOG_KERN | сообщения ядра
LOG_LOCAL0 ... LOG_LOCAL7 | зарезервированы для локального использования, недоступны в Windows
LOG_LPR | подсистема построчной печати
LOG_MAIL | почтовая подсистема
LOG_NEWS | подсистема новостей USENET
LOG_SYSLOG | сообщения, сгенерированные syslogd
LOG_USER | общие сообщения уровня пользователя
LOG_UUCP | подсистема UUCP
Приоритеты syslog() (в порядке убывания)
Константа | Описание
LOG_EMERG | система не может быть использована
LOG_ALERT | необходимо незамедлительное действие
LOG_CRIT | критические условия
LOG_ERR | условия ошибки
LOG_WARNING | условия предупреждения
LOG_NOTICE | нормальное, но значительное состояние
LOG_INFO | информационное сообщение
LOG_DEBUG | сообщения уровня отладки
Опции dns_get_record()
Константа | Описание
DNS_A | Ресурсная запись IPv4
DNS_MX | Ресурсная запись Mail Exchanger
DNS_CNAME | Ресурсная запись Canonical Name
DNS_NS | Ресурсная запись Name Server
DNS_PTR | Ресурсная запись Pointer
DNS_HINFO | Ресурс Host Info (См. » IANA Названия операционных систем для получения расшифровки значений)
DNS_SOA | Ресурсная запись SOA
DNS_TXT | Ресурсная запись текстового типа
DNS_ANY | Любая ресурсная запись. На большинстве систем возвращает все ресурсные записи, однако для использования в критических условиях не подходит. Вместо этого необходимо использовать DNS_ALL
DNS_AAAA | Ресурсная запись IPv6
DNS_ALL | Итеративно опрашивает DNS сервер по каждому доступному типу записи.


Сетевые Функции

Содержание

  • checkdnsrr — Проверяет записи DNS, соответствующие переданному имени узла интернета или IP-адресу
  • closelog — Завершает соединение с системным журналом
  • define_syslog_variables — Инициализирует все syslog переменные
  • dns_check_record — Псевдоним checkdnsrr
  • dns_get_mx — Псевдоним getmxrr
  • dns_get_record — Получение DNS свойств и характеристик хоста
  • fsockopen — Открывает соединение с интернет сокетом или доменным сокетом Unix
  • gethostbyaddr — Получает доменное имя узла, соответствующее переданному IP-адресу
  • gethostbyname — Получает адрес IPv4, соответствующий переданному имени узла интернета
  • gethostbynamel — Возвращает список адресов IPv4, соответствующих переданному доменному имени узла
  • gethostname — Получает имя хоста
  • getmxrr — Получает запись MX, соответствующую переданному доменному имени узла
  • getprotobyname — Получает номер протокола по имени
  • getprotobynumber — Получает имя протокола по номеру
  • getservbyname — Получает номер порта, присвоенного Интернет службе и протоколу
  • getservbyport — Получает Интернет службу, соответствующую заданному порту и протоколу
  • header_register_callback — Вызывает функцию заголовка (header)
  • header_remove — Удаляет предварительно установленные заголовки
  • header — Отправка HTTP заголовка
  • headers_list — Возвращает список переданных (или готовых к передаче) заголовков
  • headers_sent — Проверяет были ли и куда отправлены заголовки
  • http_response_code — Получает или устанавливает код ответа HTTP
  • inet_ntop — Конвертирует упакованный интернет адрес в читаемый формат
  • inet_pton — Конвертирует читаемый IP адрес в упакованное in_addr представление
  • ip2long — Конвертирует строку, содержащую (IPv4) Интернет-адрес с точками в целое число (long)
  • long2ip — Конвертирует адрес в формате "длинное целое"(long integer) в, содержащую адрес Интернет сети(IPv4), стандартную строку с точками
  • openlog — Открывает соединение к системному журналу
  • pfsockopen — Открывает постоянное соединение с Интернет или сокетом Unix домена
  • setcookie — Посылает cookie
  • setrawcookie — Посылает cookie не преобразовывая значение
  • socket_get_status — Псевдоним stream_get_meta_data
  • socket_set_blocking — Псевдоним stream_set_blocking
  • socket_set_timeout — Псевдоним stream_set_timeout
  • syslog — Генерирует сообщение для системного журнала


Проверяет записи DNS, соответствующие переданному имени узла интернета или IP-адресу

  • « Сетевые Функции
  • closelog »
  • PHP Manual
  • Сетевые Функции
  • Проверяет записи DNS, соответствующие переданному имени узла интернета или IP-адресу

checkdnsrr

(PHP 4, PHP 5, PHP 7)

checkdnsrr — Проверяет записи DNS, соответствующие переданному имени узла интернета или IP-адресу

Описание

bool checkdnsrr ( string $host [, string $type = "MX" ] )

Ищет записи DNS типа type, соответствующие host.

Список параметров

host

Параметр host может быть IP-адресом в виде четырех десятичных чисел, разделенных точками, или именем узла.

type

Параметр type может быть одним из: A, MX, NS, SOA, PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT or ANY.

Возвращаемые значения

Возвращает TRUE, если были найдены записи; возвращает FALSE, если записей не было найдено или произошла ошибка.

Список изменений

Версия | Описание
5.3.0 | Функция стала доступна на платформе Windows.
5.2.4 | Добавлено значение TXT параметра type.

Примечания

Замечание:

Для совместимости с более ранними версиями PHP под Windows, где не было реализации этой функции, используйте класс » PEAR » Net_DNS.

Смотрите также

  • dns_get_record() - Получение DNS свойств и характеристик хоста
  • getmxrr() - Получает запись MX, соответствующую переданному доменному имени узла
  • gethostbyaddr() - Получает доменное имя узла, соответствующее переданному IP-адресу
  • gethostbyname() - Получает адрес IPv4, соответствующий переданному имени узла интернета
  • gethostbynamel() - Возвращает список адресов IPv4, соответствующих переданному доменному имени узла
  • страница руководства named(8)


Завершает соединение с системным журналом

  • « checkdnsrr
  • define_syslog_variables »
  • PHP Manual
  • Сетевые Функции
  • Завершает соединение с системным журналом

closelog

(PHP 4, PHP 5, PHP 7)

closelog — Завершает соединение с системным журналом

Описание

bool closelog ( void )

Функция closelog() закрывает дескриптор, используемый для записи в системный журнал. Использование closelog() не является обязательным.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • syslog() - Генерирует сообщение для системного журнала
  • openlog() - Открывает соединение к системному журналу


Инициализирует все syslog переменные

  • « closelog
  • dns_check_record »
  • PHP Manual
  • Сетевые Функции
  • Инициализирует все syslog переменные

define_syslog_variables

(PHP 4, PHP 5 < 5.4.0)

define_syslog_variables — Инициализирует все syslog переменные

Описание

void define_syslog_variables ( void )

Инициализирует все переменные, используемые в syslog функциях.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Переменные Syslog
Переменная | Эквивалентная константа | Значение | Примечание
$LOG_EMERG | LOG_EMERG | Система недоступна |
$LOG_ALERT | LOG_ALERT | Требуется незамедлительное действие |
$LOG_CRIT | LOG_CRIT | Критические условия |
$LOG_ERR | LOG_ERR |  |
$LOG_WARNING | LOG_WARNING |  |
$LOG_NOTICE | LOG_NOTICE |  |
$LOG_INFO | LOG_INFO |  |
$LOG_DEBUG | LOG_DEBUG |  |
$LOG_KERN | LOG_KERN |  |
$LOG_USER | LOG_USER | Обычный уровень пользователя |
$LOG_MAIL | LOG_MAIL | Отправка журнала событий по email |
$LOG_DAEMON | LOG_DAEMON | Другие системные службы журнала |
$LOG_AUTH | LOG_AUTH |  |
$LOG_SYSLOG | LOG_SYSLOG |  | Недоступно в Netware
$LOG_LPR | LOG_LPR |  |
$LOG_NEWS | LOG_NEWS | Usenet new | Недоступно в HP-UX
$LOG_CRON | LOG_CRON |  | Недоступно на всех платформах
$LOG_AUTHPRIV | LOG_AUTHPRIV |  | Недоступно в AIX
$LOG_LOCAL0 | LOG_LOCAL0 |  | Недоступно в Windows и Netware
$LOG_LOCAL1 | LOG_LOCAL1 |  | Недоступно в Windows и Netware
$LOG_LOCAL2 | LOG_LOCAL2 |  | Недоступно в Windows и Netware
$LOG_LOCAL3 | LOG_LOCAL3 |  | Недоступно в Windows и Netware
$LOG_LOCAL4 | LOG_LOCAL4 |  | Недоступно в Windows и Netware
$LOG_LOCAL5 | LOG_LOCAL5 |  | Недоступно в Windows и Netware
$LOG_LOCAL6 | LOG_LOCAL6 |  | Недоступно в Windows и Netware
$LOG_LOCAL7 | LOG_LOCAL7 |  | Недоступно в Windows и Netware
$LOG_PID | LOG_PID |  |
$LOG_CONS | LOG_CONS |  |
$LOG_ODELAY | LOG_ODELAY |  |
$LOG_NDELAY | LOG_NDELAY |  |
$LOG_NOWAIT | LOG_NOWAIT |  | Недоступно в BeOS
$LOG_PERROR | LOG_PERROR |  | Недоступно в AIX
Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Примеры

Пример #1 Пример использования define_syslog_variables()

<?php
// Проверка предопределения переменных syslog
if(!get_cfg_var('define_syslog_variables'))
{
    define_syslog_variables();
}

// Открыть журнал событий
openlog('', $LOG_ODELAY, $LOG_MAIL | $LOG_USER);

// Продолжить скрипт ...
?>

Список изменений

Версия | Описание
5.4.0 | This function was removed from PHP.
5.3.0 | Эта функция теперь передаёт напоминание E_DEPRECATED.

Смотрите также

  • openlog() - Открывает соединение к системному журналу
  • syslog() - Генерирует сообщение для системного журнала
  • closelog() - Завершает соединение с системным журналом


Псевдоним checkdnsrr

  • « define_syslog_variables
  • dns_get_mx »
  • PHP Manual
  • Сетевые Функции
  • Псевдоним checkdnsrr

dns_check_record

(PHP 5, PHP 7)

dns_check_record — Псевдоним checkdnsrr()

Описание

Эта функция является псевдонимом: checkdnsrr().


Псевдоним getmxrr

  • « dns_check_record
  • dns_get_record »
  • PHP Manual
  • Сетевые Функции
  • Псевдоним getmxrr

dns_get_mx

(PHP 5, PHP 7)

dns_get_mx — Псевдоним getmxrr()

Описание

Эта функция является псевдонимом: getmxrr().


Получение DNS свойств и характеристик хоста

  • « dns_get_mx
  • fsockopen »
  • PHP Manual
  • Сетевые Функции
  • Получение DNS свойств и характеристик хоста

dns_get_record

(PHP 5, PHP 7)

dns_get_record — Получение DNS свойств и характеристик хоста

Описание

array dns_get_record ( string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl [, bool &$raw = 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_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 записи, лучше воспользоваться более надежным, хоть и медленным, значением DNS_ALL,

authns

Передается по ссылке. Если массив задан, он будет заполняться ресурсными записями для Авторитетного сервера имен.

addtl

Передается по ссылке. Если задан, будет заполняться Дополнительными записями.

raw

В raw режиме запрашиваются только требуемый тип вместо перебора всех типов до тех пор пока не будет получена дополнительная информация.

Возвращаемые значения

Эта функция возвращает массив ассоциативных массивов, или 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.
SOA | mname: FQDN изначального компьютера, с которого получены ресурсные записи. rname: Адрес электронной почты администратора домена. serial: Порядковый номер этой ревизии запрашиваемого домена. refresh: Интервал времени (в секундах), который должны использовать вторичные сервера при обновлении удаленных копий этого домена. retry: Время ожидания (в секундах) после неудачного обновления до следующей попытки. expire: Максимальное время (в секундах), в течение которого вторичный DNS сервер должен держать в памяти данные удаленных копий доменной зоны, прежде чем ответить отказом, когда не удается обновить данные. minimum-ttl: Минимальное время (в секундах), в течение которого клиент может работать с текущим DNS разрешением, прежде чем ему придется повторно запрашивать это разрешение. Значение может быть замещено отдельными ресурсными записями.
AAAA | ipv6: IPv6 адреса
A6(PHP >= 5.1.0) | masklen: Длина (в битах), которую нужно унаследовать от целевого адреса chain. ipv6: Адрес для этой конкретной записи, который нужно объединить с chain. chain: Запись, которую нужно дополнить данными ipv6.
SRV | pri: (Приоритет) меньшие значения должны использоваться первыми. weight: Ранжирование. Записям с большим весом отдается предпочтение. targets должен выбираться случайно. target и port: имя хоста и номер порта, на котором можно найти запрошенную службу. Дополнительную информацию можно почерпнуть по ссылке: » RFC 2782
NAPTR | order и pref: Эквивалентны pri и weight приведенным выше. flags, services, regex и replacement: Параметры, определенные в » RFC 2915.

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр raw.
5.3.0 | Функция стала доступна на Windows платформах.
5.3.0 | До этого выпуска, если был задан параметр authns, то и addtl также становился обязательным. Теперь нет.

Примеры

Пример #1 Пример использования dns_get_record()

<?php
$result = dns_get_record("php.net");
print_r($result);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)

Пример #2 Использование dns_get_record() с DNS_ANY

Так как довольно часто требуется определить IP адрес почтового сервера, в указанном домене, dns_get_record() возвращает массив addtl с соответствующими записями. Массив authns будет содержать список авторитетных DNS серверов.

<?php
/* Отправим "ANY" запрос к php.net,
   создадим массивы $authns и $addtl,
   в которые будут помещен список серверов
   имен и дополнительные записи, этим
   серверам соответствующие
*/
$result = dns_get_record("php.net", DNS_ANY, $authns, $addtl);
echo "Результат = ";
print_r($result);
echo "Авторитетные серверы = ";
print_r($authns);
echo "Дополнительные записи = ";
print_r($addtl);
?>

Результатом выполнения данного примера будет что-то подобное:

Результат = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => MX
            [pri] => 5
            [target] => pair2.php.net
            [class] => IN
            [ttl] => 6765
        )

    [1] => Array
        (
            [host] => php.net
            [type] => A
            [ip] => 64.246.30.37
            [class] => IN
            [ttl] => 8125
        )

)
Авторитетные серверы = Array
(
    [0] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [1] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => remote2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [2] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns1.easydns.com
            [class] => IN
            [ttl] => 10722
        )

    [3] => Array
        (
            [host] => php.net
            [type] => NS
            [target] => ns2.easydns.com
            [class] => IN
            [ttl] => 10722
        )

)
Дополнительные записи = Array
(
    [0] => Array
        (
            [host] => pair2.php.net
            [type] => A
            [ip] => 216.92.131.5
            [class] => IN
            [ttl] => 6766
        )

    [1] => Array
        (
            [host] => remote1.easydns.com
            [type] => A
            [ip] => 64.39.29.212
            [class] => IN
            [ttl] => 100384
        )

    [2] => Array
        (
            [host] => remote2.easydns.com
            [type] => A
            [ip] => 212.100.224.80
            [class] => IN
            [ttl] => 81241
        )

    [3] => Array
        (
            [host] => ns1.easydns.com
            [type] => A
            [ip] => 216.220.40.243
            [class] => IN
            [ttl] => 81241
        )

    [4] => Array
        (
            [host] => ns2.easydns.com
            [type] => A
            [ip] => 216.220.40.244
            [class] => IN
            [ttl] => 81241
        )

)

Примечания

Замечание:

Из соображений совместимости с версиями PHP ниже 5.3.0 на некоторых ОС стоит попробовать » PEAR класс » Net_DNS.

Смотрите также

  • dns_get_mx() - Псевдоним getmxrr
  • dns_check_record() - Псевдоним checkdnsrr


Открывает соединение с интернет сокетом или доменным сокетом Unix

  • « dns_get_record
  • gethostbyaddr »
  • PHP Manual
  • Сетевые Функции
  • Открывает соединение с интернет сокетом или доменным сокетом Unix

fsockopen

(PHP 4, PHP 5, PHP 7)

fsockopen — Открывает соединение с интернет сокетом или доменным сокетом Unix

Описание

resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )

Устанавливает соединение с сокетом ресурса hostname.

PHP поддерживает целевые ресурсы в интернете и Unix доменах в том виде, как они описаны в Список поддерживаемых транспортных протоколов. Список поддерживаемых транспортов можно получить с помощью функции stream_get_transports().

По умолчанию, сокет будет открыт в блокирующем режиме. Переключить его в неблокирующих режим можно функцией stream_set_blocking().

stream_socket_client() выполняет аналогичную функцию, но предоставляет более широкий выбор настроек соединения, включающий установку неблокирующего режима и возможность предоставления потокового контекста.

Список параметров

hostname

Если установлена поддержка OpenSSL, можно использовать SSL или TLS протоколы соединений поверх TCP/IP при подключении к удаленному хосту. Для этого перед hostname нужно добавить префикс ssl:// или tls://.

port

Номер порта. Его можно не указывать, передав -1 для тех протоколов, которые не используют порты, например unix://.

errno

Если этот параметр предоставить, то в случае ошибки системного вызова функции connect() он будет принимать номер этой ошибки.

Если значение параметра errno равно 0, а функция вернула FALSE, значит ошибка произошла до вызова connect(). В большинстве случаев это свидетельствует о проблемах при инициализации сокета.

errstr

Сообщение об ошибке в виде строки.

timeout

Таймаут соединения в секундах.

Замечание:

Если требуется установить таймаут чтения/записи данных через сокет, используйте функцию stream_set_timeout(), так как параметр timeout функции fsockopen() ограничивает только время процесса установки соединения с сокетом.

Возвращаемые значения

fsockopen() возвращает файловый указатель, который можно передавать в функции работающие с файлами (такие как fgets(), fgetss(), fwrite(), fclose() и feof()). Если вызов завершится неудачей, функция вернет FALSE.

Ошибки

Вызывает ошибку уровня E_WARNING, если hostname не является допустимым доменом.

Примеры

Пример #1 Пример использования fsockopen()

<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
?>

Пример #2 Использование UDP соединения

Пример ниже демонстрирует, как получить день и время от UDP службы "daytime" (порт 13) на вашей машине.

<?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
    echo "ERROR: $errno - $errstr<br />\n";
} else {
    fwrite($fp, "\n");
    echo fread($fp, 26);
    fclose($fp);
}
?>

Примечания

Замечание:

В зависимости от окружения, Unix домен или таймаут установки подключения могут оказаться недоступными.

Внимание

Иногда UDP сокеты получают статус открытых, даже если удаленный хост недоступен. Ошибка проявит себя только во время чтения или записи данных в/из этого сокета. Причиной этому служит тот факт, что протокол UDP передает данные без установки соединения. То есть операционная система не устанавливает и не держит соединение с сокетом, пока не начнется передача данных.

Замечание: При указании числового адреса IPv6 (например, fe80::1) вы должны заключать его в квадратные скобки. Например, tcp://[fe80::1]:80.

Смотрите также

  • pfsockopen() - Открывает постоянное соединение с Интернет или сокетом Unix домена
  • stream_socket_client() - Открывает соединение с интернет-сокетом или с доменным сокетом Unix
  • stream_set_blocking() - Устанавливает блокирующий/неблокирующий режим на потоке
  • stream_set_timeout() - Устанавливает значение тайм-аута на потоке
  • fgets() - Читает строку из файла
  • fgetss() - Прочитать строку из файла и отбросить HTML-теги
  • fwrite() - Бинарно-безопасная запись в файл
  • fclose() - Закрывает открытый дескриптор файла
  • feof() - Проверяет, достигнут ли конец файла
  • socket_connect() - Начинает соединение с сокетом
  • Расширение Curl


Получает доменное имя узла, соответствующее переданному IP-адресу

  • « fsockopen
  • gethostbyname »
  • PHP Manual
  • Сетевые Функции
  • Получает доменное имя узла, соответствующее переданному IP-адресу

gethostbyaddr

(PHP 4, PHP 5, PHP 7)

gethostbyaddr — Получает доменное имя узла, соответствующее переданному IP-адресу

Описание

string gethostbyaddr ( string $ip_address )

Возвращает доменное имя узла по адресу ip_address.

Список параметров

ip_address

IP-адрес узла

Возвращаемые значения

Возвращает имя узла в случае успеха, исходный ip_address в случае ошибки, или FALSE в случае ошибочного ввода.

Примеры

Пример #1 Простой пример использования gethostbyaddr()

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);

echo $hostname;
?>

Смотрите также

  • gethostbyname() - Получает адрес IPv4, соответствующий переданному имени узла интернета
  • gethostbynamel() - Возвращает список адресов IPv4, соответствующих переданному доменному имени узла


Получает адрес IPv4, соответствующий переданному имени узла интернета

  • « gethostbyaddr
  • gethostbynamel »
  • PHP Manual
  • Сетевые Функции
  • Получает адрес IPv4, соответствующий переданному имени узла интернета

gethostbyname

(PHP 4, PHP 5, PHP 7)

gethostbyname — Получает адрес IPv4, соответствующий переданному имени узла интернета

Описание

string gethostbyname ( string $hostname )

Возвращает адрес IPv4 по имени узла hostname.

Список параметров

hostname

Имя узла.

Возвращаемые значения

Возвращает адрес IPv4 или строку, содержащую неизмененный hostname при ошибке.

Примеры

Пример #1 Простой пример использования gethostbyname()

<?php
$ip = gethostbyname('www.example.com');

echo $ip;
?>

Смотрите также

  • gethostbyaddr() - Получает доменное имя узла, соответствующее переданному IP-адресу
  • gethostbynamel() - Возвращает список адресов IPv4, соответствующих переданному доменному имени узла
  • inet_pton() - Конвертирует читаемый IP адрес в упакованное in_addr представление
  • inet_ntop() - Конвертирует упакованный интернет адрес в читаемый формат


Возвращает список адресов IPv4, соответствующих переданному доменному имени узла

  • « gethostbyname
  • gethostname »
  • PHP Manual
  • Сетевые Функции
  • Возвращает список адресов IPv4, соответствующих переданному доменному имени узла

gethostbynamel

(PHP 4, PHP 5, PHP 7)

gethostbynamel — Возвращает список адресов IPv4, соответствующих переданному доменному имени узла

Описание

array gethostbynamel ( string $hostname )

Возвращает список адресов 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.3.0)

gethostname — Получает имя хоста

Описание

string gethostname ( void )

Функция gethostname() получает стандартное имя хоста для локального компьютера.

Возвращаемые значения

Возвращает строку с именем хоста либо FALSE в случае ошибки.

Примеры

Пример #1 Пример использования gethostname()

<?php
echo gethostname(); // может вывести, н-р.: sandie

// Или вариант, который также работает в версиях до PHP 5.3
echo php_uname('n'); // может вывести, н-р.: sandie
?>

Смотрите также

  • gethostbyname() - Получает адрес IPv4, соответствующий переданному имени узла интернета
  • gethostbyaddr() - Получает доменное имя узла, соответствующее переданному IP-адресу
  • php_uname() - Выдает информацию об операционной системе, на которой запущен PHP


Получает запись MX, соответствующую переданному доменному имени узла

  • « gethostname
  • getprotobyname »
  • PHP Manual
  • Сетевые Функции
  • Получает запись MX, соответствующую переданному доменному имени узла

getmxrr

(PHP 4, PHP 5, PHP 7)

getmxrr — Получает запись MX, соответствующую переданному доменному имени узла

Описание

bool getmxrr ( string $hostname , array &$mxhosts [, array &$weight ] )

Ищет в DNS записи MX, соответствующие hostname.

Список параметров

hostname

Доменное имя узла

mxhosts

Список найденных записей MX, помещенный в массив mxhosts.

weight

Если передан массив weight, то он будет заполнен полученной информацией о приоритетах.

Возвращаемые значения

Возвращает TRUE, если были найдены записи; возвращает FALSE, если записей не было найдено или произошла ошибка.

Список изменений

Версия | Описание
5.3.0 | Функция стала доступна на платформе Windows.

Примечания

Замечание:

Эта функция не должна использоваться для проверки адреса. Возвращаются только почтовые сервера, найденные в DNS, однако, согласно » RFC 2821, когда в списке нет почтовых серверов, необходимо использовать только hostname в качестве почтового сервера с приоритетом 0.

Замечание:

Для совместимости с более ранними версиями PHP под Windows, где не было реализации этой функции, используйте класс » PEAR » Net_DNS.

Смотрите также

  • checkdnsrr() - Проверяет записи DNS, соответствующие переданному имени узла интернета или IP-адресу
  • dns_get_record() - Получение DNS свойств и характеристик хоста
  • gethostbyname() - Получает адрес IPv4, соответствующий переданному имени узла интернета
  • gethostbynamel() - Возвращает список адресов IPv4, соответствующих переданному доменному имени узла
  • gethostbyaddr() - Получает доменное имя узла, соответствующее переданному IP-адресу
  • страница руководства named(8)


Получает номер протокола по имени

  • « getmxrr
  • getprotobynumber »
  • PHP Manual
  • Сетевые Функции
  • Получает номер протокола по имени

getprotobyname

(PHP 4, PHP 5, PHP 7)

getprotobyname — Получает номер протокола по имени

Описание

int getprotobyname ( string $name )

Функция getprotobyname() возвращает номер протокола по имени, указанном в параметре name как в /etc/protocols.

Список параметров

name

Имя протокола.

Возвращаемые значения

Возвращает номер протокола или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования getprotobyname()

<?php
$protocol = 'tcp';
$get_prot = getprotobyname($protocol);
if ($get_prot === FALSE) {
    echo 'Протокол не найден';
} else {
    echo 'Протокол #' . $get_prot;
}
?>

Смотрите также

  • getprotobynumber() - Получает имя протокола по номеру


Получает имя протокола по номеру

  • « getprotobyname
  • getservbyname »
  • PHP Manual
  • Сетевые Функции
  • Получает имя протокола по номеру

getprotobynumber

(PHP 4, PHP 5, PHP 7)

getprotobynumber — Получает имя протокола по номеру

Описание

string getprotobynumber ( int $number )

Функция getprotobynumber() возвращает имя протокола по номеру, указанному в параметре number как в /etc/protocols.

Список параметров

number

Номер протокола.

Возвращаемые значения

Возвращает имя протокола в виде строки (string), или FALSE в случае возникновения ошибки.

Смотрите также

  • getprotobyname() - Получает номер протокола по имени


Получает номер порта, присвоенного Интернет службе и протоколу

  • « getprotobynumber
  • getservbyport »
  • PHP Manual
  • Сетевые Функции
  • Получает номер порта, присвоенного Интернет службе и протоколу

getservbyname

(PHP 4, PHP 5, PHP 7)

getservbyname — Получает номер порта, присвоенного Интернет службе и протоколу

Описание

int getservbyname ( string $service , string $protocol )

Функция getservbyname() возвращает Интернет порт, который соответствует параметру service для заданного в protocol протокола, как в /etc/services.

Список параметров

service

Имя Интернет службы в виде строки (string).

protocol

Параметр protocol может быть равен "tcp" или "udp" (в нижнем регистре).

Возвращаемые значения

Возвращает номер порта, или FALSE если service или protocol не найдены.

Примеры

Пример #1 Пример использования getservbyname()

<?php
     $services = array('http', 'ftp', 'ssh', 'telnet', 'imap',
     'smtp', 'nicname', 'gopher', 'finger', 'pop3', 'www');

     foreach ($services as $service) {
     $port = getservbyname($service, 'tcp');
     echo $service . ": " . $port . "<br />\n";
     }
     ?>

Смотрите также

  • getservbyport() - Получает Интернет службу, соответствующую заданному порту и протоколу
  • См. » http://www.iana.org/assignments/port-numbers для получения полного списка номеров портов.


Получает Интернет службу, соответствующую заданному порту и протоколу

  • « getservbyname
  • header_register_callback »
  • PHP Manual
  • Сетевые Функции
  • Получает Интернет службу, соответствующую заданному порту и протоколу

getservbyport

(PHP 4, PHP 5, PHP 7)

getservbyport — Получает Интернет службу, соответствующую заданному порту и протоколу

Описание

string getservbyport ( int $port , string $protocol )

Функция getservbyport() возвращает Интернет службу, соответствующую заданному в параметре port порту для определенного протокола protocol как в /etc/services.

Список параметров

port

Номер порта.

protocol

Параметр protocol может быть "tcp" or "udp" (в нижнем регистре).

Возвращаемые значения

Возвращает имя Интернет службы в виде строки (string).

Смотрите также

  • getservbyname() - Получает номер порта, присвоенного Интернет службе и протоколу


Вызывает функцию заголовка (header)

  • « getservbyport
  • header_remove »
  • PHP Manual
  • Сетевые Функции
  • Вызывает функцию заголовка (header)

header_register_callback

(PHP 5 >= 5.4.0, PHP 7)

header_register_callback — Вызывает функцию заголовка (header)

Описание

bool header_register_callback ( callable $callback )

Устанавливает функцию, которая будет вызвана при PHP выводе.

Параметр callback запускается прямо после того, как были подготовлены все пересылаемые PHP заголовки, и перед отправкой любого другого вывода, создавая окно для управления исходящими заголовками перед отправкой.

Список параметров

callback

Функция вызывается непосредственно перед отправкой заголовков, не получает параметров и возвращаемое значение игнорируется.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования header_register_callback()

<?php

header('Content-Type: text/plain');
header('X-Test: foo');

function foo() {
 foreach (headers_list() as $header) {
   if (strpos($header, 'X-Powered-By:') !== false) {
     header_remove('X-Powered-By');
   }
   header_remove('X-Test');
 }
}

$result = header_register_callback('foo');
echo "a";
?>

Результатом выполнения данного примера будет что-то подобное:

Content-Type: text/plain

a

Примечания

Функция header_register_callback() запускается по готовности отправки заголовков, так что любой вывод из этой функции может прервать вывод.

Замечание:

Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами SAPI есть их поддержка.

Смотрите также

  • headers_list() - Возвращает список переданных (или готовых к передаче) заголовков
  • header_remove() - Удаляет предварительно установленные заголовки
  • header() - Отправка HTTP заголовка


Удаляет предварительно установленные заголовки

  • « header_register_callback
  • header »
  • PHP Manual
  • Сетевые Функции
  • Удаляет предварительно установленные заголовки

header_remove

(PHP 5 >= 5.3.0, PHP 7)

header_remove — Удаляет предварительно установленные заголовки

Описание

void header_remove ([ string $name ] )

Удаляет предварительно установленный функцией header() HTTP заголовок.

Список параметров

name

Имя удаляемого заголовка.

Замечание: Это регистронезависимый параметр.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Уничтожение определенного заголовка.

<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove("X-Foo");
?>

Результатом выполнения данного примера будет что-то подобное:

X-Bar: Baz

Пример #2 Уничтожение всех предварительно установленных заголовков.

<?php
header("X-Foo: Bar");
header("X-Bar: Baz");
header_remove();
?>

Результатом выполнения данного примера будет что-то подобное:

Примечания

Предостережение

    Эта функция удалит все заголовки, установленные с помощью PHP, включая cookies, сессию и заголовки X-Powered-By.

Замечание:
Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами SAPI есть их поддержка.

Смотрите также

  • header() - Отправка HTTP заголовка
    •

  • headers_sent() - Проверяет были ли и куда отправлены заголовки
    •


Отправка HTTP заголовка

  • « header_remove
  • headers_list »
  • PHP Manual
  • Сетевые Функции
  • Отправка HTTP заголовка

header

(PHP 4, PHP 5, PHP 7)

header — Отправка HTTP заголовка

Описание

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

header() используется для отправки HTTP заголовка. В » спецификации HTTP/1.1 есть подробное описание HTTP заголовков.

Помните, что функцию header() можно вызывать только если клиенту еще не передавались данные. То есть она должна идти первой в выводе, перед ее вызовом не должно быть никаких HTML тэгов, пустых строк и т.п. Довольно часто возникает ошибка, когда при чтении кода файловыми функциями, вроде include или require, в этом коде попадаются пробелы или пустые строки, которые выводятся до вызова header(). Те же проблемы могут возникать и при использовании одиночного PHP/HTML файла.

<html>
<?php
/* Этот пример приведет к ошибке. Обратите внимание
 * на тэг вверху, который будет выведен до вызова header() */
header('Location: http://www.example.com/');
exit;
?>

Список параметров

string

Строка заголовка.

Существует два специальных заголовка. Один из них начинается с "HTTP/" (регистр не важен) и используется для отправки кода состояния HTTP. Например, если веб-сервер Apache сконфигурирован таким образом, чтобы запросы к несуществующим файлам обрабатывались средствами PHP скрипта (используя директиву ErrorDocument), вы наверняка захотите быть уверенными что скрипт генерирует правильный код состояния.

<?php
header("HTTP/1.0 404 Not Found");
?>

Другим специальным видом заголовков является "Location:". В этом случае функция не только отправляет этот заголовок броузеру, но также возвращает ему код состояния REDIRECT (302) (если ранее не был установлен код 201 или 3xx).

<?php
header("Location: http://www.example.com/"); /* Перенаправление броузера */

/* Можно убедиться, что следующий за командой код не выполнится из-за
перенаправления.*/
exit;
?>

replace

Необязательный параметр replace определяет, надо ли заменять предыдущий аналогичный заголовок или заголовок того же типа. По умолчанию заголовок будет заменен, но если передать FALSE, можно задать несколько однотипных заголовков. Например:

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>

http_response_code

Принудительно задает код ответа HTTP. Следует учитывать, что это будет работать, только если строка string не является пустой.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.1.2 | Стало невозможно отправлять более одного заголовка за раз. Это сделано для защиты от атак, связанных с инъекцией заголовков.

Примеры

Пример #1 Диалог загрузки

Если нужно предупредить пользователя о необходимости сохранить пересылаемые данные, такие как сгенерированный PDF файл, можно воспользоваться заголовком » Content-Disposition, который подставляет рекомендуемое имя файла и заставляет броузер показать диалог загрузки.

<?php
// Будем передавать PDF
header('Content-Type: application/pdf');

// Который будет называться downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// Исходный PDF файл original.pdf
readfile('original.pdf');
?>

Пример #2 Директивы для работы с кэшем

PHP скрипты часто генерируют динамический контент, который не должен кэшироваться клиентским броузером или какими-либо промежуточными обработчиками, вроде прокси серверов. Можно принудительно отключить кэширование на многих прокси серверах и броузерах, передав заголовки:

<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Дата в прошлом
?>

Замечание:

В некоторых случаях ваши страницы не будут кэшироваться броузером, даже если вы не передавали этих заголовков. В броузерах есть определенные настройки, с помощью которых пользователь может изменять обычный ход кэширования, отключать его. Вы должны перекрывать любые настройки, которые могут повлиять на кэширование скрипта, отправляя приведенные выше заголовки.

Дополнительно, для случаев когда используются сессии, можно задать настройки конфигурации session_cache_limiter() и session.cache_limiter. Эти настройки можно использовать для автоматической генерации заголовков управляющих кешированием.

Примечания

Замечание:

Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами SAPI есть их поддержка.

Замечание:

Чтобы обойти эту проблему, можно буферизовать вывод скрипта. В этом случае все выводимые данные будут буферизоваться на сервере, пока не будет дана явная команда на пересылку данных. Управлять буферизацией можно вручную функциями ob_start() и ob_end_flush(), либо задав директиву output_buffering в конфигурационном файле php.ini, или же настроив соответствующим образом конфигурацию сервера.

Замечание:

Строка заголовка задающая состояние HTTP всегда будет отсылаться клиенту первой, вне зависимости от того был соответствующий вызов функции header() первым или нет. Это состояние можно перезаписать, вызывая header() с новой строкой состояния в любое время, когда можно отправлять HTTP заголовки.

Замечание:

В Microsoft Internet Explorer 4.01 есть баг, из-за которого это не работает. Обойти его никак нельзя. В Microsoft Internet Explorer 5.5 также есть этот баг, но его уже можно устранить установкой Service Pack 2 или выше.

Замечание: Если включен безопасный режим, то uid скрипта будет добавляться к realm части WWW-Authenticate заголовка (используется для HTTP аутентификации).

Замечание:

Спецификация HTTP/1.1 требует указывать абсолютный URI в качестве аргумента » Location:, включающий схему, имя хоста и абсолютный путь, хотя некоторые клиенты способны принимать и относительные URI. Абсолютный URI можно построить самостоятельно с помощью $_SERVER['HTTP_HOST'], $_SERVER['PHP_SELF'] и dirname():

<?php
/* Перенаправление броузера на другую страницу в той же директории, что и
изначально запрошенная */
$host  = $_SERVER['HTTP_HOST'];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
$extra = 'mypage.php';
header("Location: http://$host$uri/$extra");
exit;
?>

Замечание:

ID сессии не будет передаваться вместе с заголовком Location, даже если включена настройка session.use_trans_sid. Его нужно передавать вручную, используя константу SID.

Смотрите также

  • headers_sent() - Проверяет были ли и куда отправлены заголовки
  • setcookie() - Посылает cookie
  • http_response_code() - Получает или устанавливает код ответа HTTP
  • Раздел документации HTTP аутентификация


Возвращает список переданных (или готовых к передаче) заголовков

  • « header
  • headers_sent »
  • PHP Manual
  • Сетевые Функции
  • Возвращает список переданных (или готовых к передаче) заголовков

headers_list

(PHP 5, PHP 7)

headers_list — Возвращает список переданных (или готовых к передаче) заголовков

Описание

array headers_list ( void )

Функция headers_list() возвращает список заголовков, передаваемых браузеру / клиенту. Для того, чтобы определить переданы ли уже заголовки, воспользуйтесь функцией headers_sent().

Возвращаемые значения

Возвращает нумерованный массив заголовков.

Примеры

Пример #1 Пример использования headers_list()

<?php

/* Функция setcookie() добавит заголовок сама по себе */
setcookie('foo', 'bar');

/* Определение пользовательского заголовка
   Это будет проигнорировано большинством клиентов */
header("X-Sample-Test: foo");

/* Передача простого текстового контента */
header('Content-type: text/plain');

/* Какие загловки готовы к отправке? */
var_dump(headers_list());

?>

Результат выполнения данного примера:

array(4) {
  [0]=>
  string(23) "X-Powered-By: PHP/5.1.3"
  [1]=>
  string(19) "Set-Cookie: foo=bar"
  [2]=>
  string(18) "X-Sample-Test: foo"
  [3]=>
  string(24) "Content-type: text/plain"
}

Примечания

Замечание:

Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами SAPI есть их поддержка.

Смотрите также

  • headers_sent() - Проверяет были ли и куда отправлены заголовки
  • header() - Отправка HTTP заголовка
  • setcookie() - Посылает cookie
  • apache_response_headers() - Возвращает список всех HTTP заголовков ответа Apache
  • http_response_code() - Получает или устанавливает код ответа HTTP


Проверяет были ли и куда отправлены заголовки

  • « headers_list
  • http_response_code »
  • PHP Manual
  • Сетевые Функции
  • Проверяет были ли и куда отправлены заголовки

headers_sent

(PHP 4, PHP 5, PHP 7)

headers_sent — Проверяет были ли и куда отправлены заголовки

Описание

bool headers_sent ([ string &$file [, int &$line ]] )

Проверяет были ли и куда отправлены заголовки.

Нельзя отправить дополнительные строки заголовков, используя функцию header() если заголовки уже были отправлены. Используя эту функцию, можно предупредить ошибки, связанные с HTTP заголовками. Также можно использовать буферизацию вывода.

Список параметров

file

Если опциональные параметры file и line установлены, то функция headers_sent() поместит имя файла PHP исходника и номер строки, с которой начинается вывод, в переменные file и line.

line

Номер строки, с которой начинается вывод.

Возвращаемые значения

Функция headers_sent() вернет FALSE если HTTP заголовки не были отправлены, либо TRUE если отправлены.

Примеры

Пример #1 Пример использования headers_sent()

<?php

// Если не было отправлено ни одного заголовка, то отправить один
if (!headers_sent()) {
    header('Location: http://www.example.com/');
    exit;
}

// Пример использования необязательных параметров file и line.
// Необходимо отметить, что $filename и $linenum передаются для дальнейшего использования.
// Не назначайте их значения заранее.
if (!headers_sent($filename, $linenum)) {
    header('Location: http://www.example.com/');
    exit;

// Скорее всего, ошибка будет происходит здесь.
} else {

    echo "Звголовки уже были отправлены в $filename в строке $linenum\n" .
          "Невозможно перенаправить, пожалуйста, передите по этой <a " .
          "href=\"http://www.example.com\">link</a> ссылке\n";
    exit;
}

?>

Примечания

Замечание:

Доступ к заголовкам и их вывод будет осуществляться только в случае, если в используемом вами SAPI есть их поддержка.

Смотрите также

  • ob_start() - Включение буферизации вывода
  • trigger_error() - Вызывает пользовательскую ошибку/предупреждение/уведомление
  • headers_list() - Возвращает список переданных (или готовых к передаче) заголовков
  • См. информацию по функции header() - Отправка HTTP заголовка для более детальной информации.


Получает или устанавливает код ответа HTTP

  • « headers_sent
  • inet_ntop »
  • PHP Manual
  • Сетевые Функции
  • Получает или устанавливает код ответа HTTP

http_response_code

(PHP 5 >= 5.4.0, PHP 7)

http_response_code — Получает или устанавливает код ответа HTTP

Описание

mixed http_response_code ([ int $response_code ] )

Получает или задает коды ответов HTTP.

Список параметров

response_code

Код ответа устанавливается с помощью опционального параметра response_code.

Возвращаемые значения

Если response_code задан, то будет возвращен предыдущий код статуса. Если response_code не задан, то будет возвращен текущий код статуса. Оба этих значения будут по умолчанию 200 если используются в окружении веб-сервера.

Если response_code не задан и используется не в окружении веб-сервера (например в CLI), то будет возвращено FALSE. Если response_code задан и используется не в окружении веб-сервера, то будет возвращено TRUE (но только если небыл установлен предыдущий код статуса).

Примеры

Пример #1 Использование http_response_code() в окружении веб-сервера

<?php

// Берем текущий код и устанавливаем новый
var_dump(http_response_code(404));

// Берем новый код
var_dump(http_response_code());
?>

Результат выполнения данного примера:

int(200)
int(404)

Пример #2 Использование http_response_code() в CLI

<?php

// Берем текущий код по умолчанию
var_dump(http_response_code());

// Устанавливаем код
var_dump(http_response_code(201));

// Берем новый код
var_dump(http_response_code());
?>

Результат выполнения данного примера:

bool(false)
bool(true)
int(201)

Смотрите также

  • header() - Отправка HTTP заголовка
  • headers_list() - Возвращает список переданных (или готовых к передаче) заголовков


Конвертирует упакованный интернет адрес в читаемый формат

  • « http_response_code
  • inet_pton »
  • PHP Manual
  • Сетевые Функции
  • Конвертирует упакованный интернет адрес в читаемый формат

inet_ntop

(PHP 5 >= 5.1.0, PHP 7)

inet_ntop — Конвертирует упакованный интернет адрес в читаемый формат

Описание

string inet_ntop ( string $in_addr )

Эта функция конвертирует 32-битный IPv4 или 128-битный IPv6 адрес (если PHP был собран с поддержкой IPv6) в соответствующее строковое представление адреса.

Список параметров

in_addr

32-битный IPv4, или 128-битный IPv6 адрес.

Возвращаемые значения

Возвращает строковое представление адреса или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования inet_ntop()

<?php
$packed = chr(127) . chr(0) . chr(0) . chr(1);
$expanded = inet_ntop($packed);

/* Выведет: 127.0.0.1 */
echo $expanded;

$packed = str_repeat(chr(0), 15) . chr(1);
$expanded = inet_ntop($packed);

/* Выведет: ::1 */
echo $expanded;
?>

Список изменений

Версия | Описание
5.3.0 | Эта функция стала доступна на платформах Windows.

Смотрите также

  • long2ip() - Конвертирует адрес в формате "длинное целое"(long integer) в, содержащую адрес Интернет сети(IPv4), стандартную строку с точками
  • ip2long() - Конвертирует строку, содержащую (IPv4) Интернет-адрес с точками в целое число (long)
  • inet_pton() - Конвертирует читаемый IP адрес в упакованное in_addr представление


Конвертирует читаемый IP адрес в упакованное in_addr представление

  • « inet_ntop
  • ip2long »
  • PHP Manual
  • Сетевые Функции
  • Конвертирует читаемый IP адрес в упакованное in_addr представление

inet_pton

(PHP 5 >= 5.1.0, PHP 7)

inet_pton — Конвертирует читаемый IP адрес в упакованное in_addr представление

Описание

string inet_pton ( string $address )

Эта функция конвертирует читаемый IPv4 или IPv6 адрес (если PHP был собран с поддержкой IPv6) в адрес соответствующий 32-битной или 128-битной бинарной структуре.

Список параметров

address

Читаемый IPv4 или IPv6 адрес.

Возвращаемые значения

Возвращает in_addr представление заданного в параметре address адреса, или FALSE если задан синтаксически неверный address (к примеру, IPv4 адрес без точек или IPv6 адрес без двоеточий).

Примеры

Пример #1 Пример использования inet_pton()

<?php
$in_addr = inet_pton('127.0.0.1');

$in6_addr = inet_pton('::1');
?>

Список изменений

Версия | Описание
5.3.0 | Эта функция стала доступна на Windows платформах.

Смотрите также

  • ip2long() - Конвертирует строку, содержащую (IPv4) Интернет-адрес с точками в целое число (long)
  • long2ip() - Конвертирует адрес в формате "длинное целое"(long integer) в, содержащую адрес Интернет сети(IPv4), стандартную строку с точками
  • inet_ntop() - Конвертирует упакованный интернет адрес в читаемый формат


Конвертирует строку, содержащую (IPv4) Интернет-адрес с точками в целое число (long)

  • « inet_pton
  • long2ip »
  • PHP Manual
  • Сетевые Функции
  • Конвертирует строку, содержащую (IPv4) Интернет-адрес с точками в целое число (long)

ip2long

(PHP 4, PHP 5, PHP 7)

ip2long — Конвертирует строку, содержащую (IPv4) Интернет-адрес с точками в целое число (long)

Описание

int ip2long ( string $ip_address )

Функция ip2long() преобразует IPv4-адрес сети Интернет из стандартного формата (строка с точками) в целое число (long).

Функция ip2long() также будет работать с неполными IP-адресами. См. » http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/commtrf2/inet_addr.htm для более подобной информации.

Список параметров

ip_address

Адрес в стандартном формате.

Возвращаемые значения

Возвращает целое число или FALSE, если параметр ip_address содержит ошибку.

Список изменений

Версия | Описание
5.5.0 | До этой версии, в Windows ip2long() иногда могло быть возвращено корректрое число, даже если на вход был подан некорректный IPv4 адрес.
5.2.10 | До этой версии функция ip2long() могла иногда возвращать верное число, даже если отправленное значение не было Интернет адресом (IPv4) в точечном формате.

Примеры

Пример #1 Пример использования ip2long()

<?php
$ip = gethostbyname('www.example.com');
$out = "Следующие URL эквивалентны:<br />\n";
$out .= 'http://www.example.com/, http://' . $ip . '/, and http://' . sprintf("%u", ip2long($ip)) . "/<br />\n";
echo $out;
?>

Пример #2 Отображение IP адресов

Второй пример показывает как выводить сконвертированные адреса с помощью функции printf():

<?php
$ip   = gethostbyname('www.example.com');
$long = ip2long($ip);

if ($long == -1 || $long === FALSE) {
    echo 'Неверный IP, попробуйте еще раз';
} else {
    echo $ip   . "\n";           // 192.0.34.166
    echo $long . "\n";           // -1073732954
    printf("%u\n", ip2long($ip)); // 3221234342
}
?>

Примечания

Замечание:

Ввиду того, что PHP тип integer является знаковым, и на 32-битных системах большое количество IP адресов будет представлено в виде отрицательных чисел, необходимо использовать "%u" в функции sprintf() или printf() для получения IP адреса в строковом беззнаковом виде.

Замечание:

Функция ip2long() возвратит FALSE для IP 255.255.255.255 в PHP 5 <= 5.0.2. Это было исправлено в PHP 5.0.3, теперь возвращается -1.

Смотрите также

  • long2ip() - Конвертирует адрес в формате "длинное целое"(long integer) в, содержащую адрес Интернет сети(IPv4), стандартную строку с точками
  • sprintf() - Возвращает отформатированную строку


Конвертирует адрес в формате "длинное целое"(long integer) в, содержащую адрес Интернет сети(IPv4), стандартную строку с точками

  • « ip2long
  • openlog »
  • PHP Manual
  • Сетевые Функции
  • Конвертирует адрес в формате "длинное целое"(long integer) в, содержащую адрес Интернет сети(IPv4), стандартную строку с точками

long2ip

(PHP 4, PHP 5, PHP 7)

long2ip — Конвертирует адрес в формате "длинное целое"(long integer) в, содержащую адрес Интернет сети(IPv4), стандартную строку с точками

Описание

string long2ip ( string $proper_address )

Функция long2ip() преобразует заданный Интернет адрес в формате "длинное целое" в формат с точками (н-р.: aaa.bbb.ccc.ddd).

Список параметров

proper_address

Заданный адрес в формате "длинное целое"(long integer).

Возвращаемые значения

Возвращает Интернет IP адрес в виде строки.

Смотрите также

  • ip2long() - Конвертирует строку, содержащую (IPv4) Интернет-адрес с точками в целое число (long)


Открывает соединение к системному журналу

  • « long2ip
  • pfsockopen »
  • PHP Manual
  • Сетевые Функции
  • Открывает соединение к системному журналу

openlog

(PHP 4, PHP 5, PHP 7)

openlog — Открывает соединение к системному журналу

Описание

bool openlog ( string $ident , int $option , int $facility )

Функция openlog() открывает для программы соединение к системному журналу.

Использование openlog() не является обязательным. Эта функция при необходимости будет вызвана функцией syslog() автоматически, при этом параметр ident будет по умолчанию равен FALSE.

Список параметров

ident

Строка ident добавляется к каждому сообщению.

option

Аргумент option используется для указания используемых опций журналирования при создании записи журнала.

Опции openlog()
Constant | Description
LOG_CONS | если при отправке данных системному журналу происходит ошибка, перевести вывод непосредственно в системную консоль
LOG_NDELAY | открыть соединение с журналом без задержки
LOG_ODELAY | (по умолчанию) отложить открытие соединения до вывода первого сообщения в журнал
LOG_PERROR | выводить вместе со стандартной ошибкой сообщение журнала
LOG_PID | добавить PID к каждому сообщению
Можно использовать одну или сразу несколько опций. При использовании нескольких опций необходимо разделять их OR, к примеру, для открытия соединения без задержки, записи в консоль и включения PID в каждое из сообщений, необходима следующая комбинация опций: LOG_CONS | LOG_NDELAY | LOG_PID

facility

Параметр facility используется для определения типа программы создавшей сообщение журнала. Это позволяет определить (в конфигурации syslog) как будут обработаны сообщения журнала, поступающие из разных объектов.

openlog() Facilities
Константа | Описание
LOG_AUTH | сообщения по безопасности/авторизации (необходимо взамен использовать LOG_AUTHPRIV в системах, где эта константа предопределена)
LOG_AUTHPRIV | сообщения по безопасности/авторизации (частное)
LOG_CRON | планировщик задач (cron и at)
LOG_DAEMON | другие системные службы
LOG_KERN | сообщения ядра
LOG_LOCAL0 ... LOG_LOCAL7 | зарезервированы для локального использования, не доступны в Windows
LOG_LPR | подсистема печати LPR
LOG_MAIL | почтовая подсистема
LOG_NEWS | подсистема новостей USENET
LOG_SYSLOG | внутренние сообщения syslogd
LOG_USER | общие сообщения на уровне пользователя
LOG_UUCP | подсистема UUCP

Замечание:

LOG_USER единственный верный тип журналирования в операционных системах Windows

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • syslog() - Генерирует сообщение для системного журнала
  • closelog() - Завершает соединение с системным журналом


Открывает постоянное соединение с Интернет или сокетом Unix домена

  • « openlog
  • setcookie »
  • PHP Manual
  • Сетевые Функции
  • Открывает постоянное соединение с Интернет или сокетом Unix домена

pfsockopen

(PHP 4, PHP 5, PHP 7)

pfsockopen — Открывает постоянное соединение с Интернет или сокетом Unix домена

Описание

resource pfsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )

Эта функция является полным аналогом функции fsockopen() с той лишь разницей, что соединение не закрывается после завершения работы скрипта. Это версия функции fsockopen() с возможностью постоянного подключения.

Список параметров

Для получения информации о параметре, см. документацию по fsockopen().

Смотрите также

  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix


Посылает cookie

  • « pfsockopen
  • setrawcookie »
  • PHP Manual
  • Сетевые Функции
  • Посылает cookie

setcookie

(PHP 4, PHP 5, PHP 7)

setcookie — Посылает cookie

Описание

bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )

setcookie() задает cookie, которое будет передано клиенту вместе с другими HTTP заголовками. Как и любой другой заголовок, cookie должны передаваться до того как будут выведены какие-либо другие данные скрипта (это ограничение протокола). Это значит, что в скрипте вызовы этой функции должны располагаться прежде остального вывода, включая вывод тэгов <html> и <head>, а также пустые строки и пробельные символы.

После передачи клиенту cookie станут доступны через массив $_COOKIE при следующей загрузке страницы. Значения cookie также есть в $_REQUEST.

Список параметров

» RFC 6265 дает конкретные указания, как нужно интерпретировать каждый из параметров setcookie().

name

Наименование cookie.

value

Значение cookie. Это значение будет сохранено на клиентском компьютере; не записывайте в cookie секретные данные. Значение присвоенное cookie c именем name, допустим, 'cookiename', будет доступно через $_COOKIE['cookiename'].

expire

Время, когда срок действия cookie истекает. Это метка времени Unix, то есть это количество секунд с начала эпохи. Другими словами, желательно задавать это время с помощью функции time(), прибавляя время в секундах, через которое срок действия cookie должен истечь. Либо можно воспользоваться функцией mktime(). time()+60*60*24*30 установит срок действия cookie 30 дней. Если задать 0 или пропустить этот аргумент, срок действия cookie истечет с окончанием сессии (при закрытии броузера).

Замечание:

Можно заметить, что expire принимает в качестве значения метку времени Unix, а хранит его в формате Wdy, DD-Mon-YYYY HH:MM:SS GMT. PHP делает внутреннее преобразование автоматически.

path

Путь к директории на сервере, из которой будут доступны cookie. Если задать '/', cookie будут доступны во всем домене domain. Если задать '/foo/', cookie будут доступны только из директории /foo/ и всех ее поддиректорий (например, /foo/bar/) домена domain. По умолчанию значением является текущая директория, в которой cookie устанавливается.

domain

Поддомен, которому доступны cookie. Задание поддомена (например 'www.example.com') сделает cookie доступными в нем и во всех его поддоменах (например w2.www.example.com). Для того, чтобы сделать cookie доступными для всего домена (включая поддомены), нужно просто указать имя домена (т.е. 'example.com').

Старые браузеры, следующие устаревшим нормативам » RFC 2109, могут требовать . перед доменом, чтобы включались все поддомены.

secure

Указывает на то, что значение cookie должно передаваться от клиента по защищенному HTTPS соединению. Если задано TRUE, cookie от клиента будет передано на сервер, только если установлено защищенное соединение. При передаче cookie от сервера клиенту следить за тем, чтобы cookie этого типа передавались по защищенному каналу, должен программист веб-сервера (стоит обратить внимание на $_SERVER["HTTPS"]).

httponly

Если задано TRUE, cookie будут доступны только через HTTP протокол. То есть cookie в этом случае не будут доступны скриптовым языкам, вроде JavaScript. Эта возможность была предложена в качестве меры, эффективно снижающей количество краж личных данных посредством XSS атак (несмотря на то, что поддерживается не всеми броузерами). Стоит однако же отметить, что вокруг этой возможности часто возникают споры о ее эффективности и целесообразности. Аргумент добавлен в PHP 5.2.0. Может принимать значения TRUE или FALSE.

Возвращаемые значения

Если перед вызовом функции клиенту уже передавался какой-либо вывод (тэги, пустые строки, пробелы, текст и т.п.), setcookie() вызовет отказ и вернет FALSE. Если setcookie() успешно отработает, то вернет TRUE. Это, однако, не означает, что клиентское приложение (броузер) правильно приняло и обработало cookie.

Примеры

Ниже представлено несколько примеров, как отправлять cookie:

Пример #1 Пример использования setcookie()

<?php
$value = 'что-то где-то';

setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  /* срок действия 1 час */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);
?>

Стоит отметить, что значение cookie перед отправкой клиенту подвергается URL-кодированию. При обратном получении значение cookie декодируется и помещается в переменную, с тем же именем, что и имя cookie. Если вы не хотите, чтобы значения кодировались, используйте функцию setrawcookie() (работает в PHP 5). Посмотреть содержимое наших тестовых cookie можно, запустив один из следующих примеров:

<?php
// Вывести одно конкретное значение cookie
echo $_COOKIE["TestCookie"];

// В целях тестирования и отладки может пригодиться вывод всех cookie
print_r($_COOKIE);
?>

Пример #2 Пример удаления cookie посредством setcookie()

Чтобы удалить cookie достаточно в качестве срока действия указать какое-либо время в прошлом. Это запустит механизм броузера, удаляющий истекшие cookie. В примерах ниже показано, как удалить cookie, заданные в предыдущих примерах:

<?php
// установка даты истечения срока действия на час назад
setcookie("TestCookie", "", time() - 3600);
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", "example.com", 1);
?>

Пример #3 setcookie() и массивы

Имеется возможность помещать в cookie массивы. Для этого каждому cookie нужно дать имя в соответствии с правилами именования массивов. Такая возможность позволяет поместить столько значений, сколько имеется элементов в массиве. При обратном получении все эти значения будут помещены в массив с именем этого cookie:

<?php
// отправка cookie
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");

// после перезагрузки страницы, выведем cookie
if (isset($_COOKIE['cookie'])) {
    foreach ($_COOKIE['cookie'] as $name => $value) {
        $name = htmlspecialchars($name);
        $value = htmlspecialchars($value);
        echo "$name : $value <br />\n";
    }
}
?>

Результат выполнения данного примера:

three : cookiethree
two : cookietwo
one : cookieone

Список изменений

Версия | Описание
5.5.0 | Теперь аттрибут max-age включен в заголовок, отправляемый клиенту Set-Cookie.
5.2.0 | Добавлен параметр httponly.

Примечания

Замечание:

Чтобы иметь возможность отправлять вывод скрипта до вызова этой функции, можно воспользоваться буферизацией. В этом случае весь вывод скрипта помещается в буфер на сервере и остается там, пока вы явно не отправите его броузеру. Управление буферизацией осуществляется функциями ob_start() и ob_end_flush() в скрипте, либо можно задать директиву output_buffering в файле php.ini или конфигурационных файлах сервера.

Замечание:

Если PHP директива register_globals включена (задано значение on), значения cookie помимо всего прочего будут помещаться в переменные. Для примеров выше будет существовать переменная $TestCookie. Тем не менее, рекомендуется использовать $_COOKIE.

Общие замечания:

  • Cookie станут видимыми только после перезагрузки страницы, для которой они должны быть видны. Для проверки, правильно ли cookie установились, проверьте их при следующей загрузке страницы до истечения срока их действия. Срок действия cookie задается в параметре expire. Удобно проверять существование cookie простым вызовом print_r($_COOKIE);.
  • При удалении cookie должны быть заданы те же параметры, что и при установке. Если в качестве значения задать пустую строку или FALSE, а остальные параметры задать соответственно предыдущему вызову, установившему cookie, тогда cookie c заданным именем будет удалено с клиентской машины. Внутренне это выглядит так: cookie присваивается значение 'deleted', а срок действия переносится на год в прошлое.
  • Так как установка значения FALSE приведет к удалению cookie, не следует задавать cookie значения булевого типа. Вместо этого можно использовать 0 для FALSE и 1 для TRUE.
  • Cookie можно именовать, как массивы, и они будут доступны в PHP скрипте, как массивы, но на пользовательской машине они будут храниться в виде отдельных записей. Для задания cookie c множеством имен и значений желательно использовать функцию explode(). Не рекомендуется для этих целей использовать функцию serialize(), так как это негативно сказывается на безопасности скрипта.

При многократных вызовах setcookie() функции выполняются в том порядке, в котором вызывались.

Смотрите также

  • header() - Отправка HTTP заголовка
  • setrawcookie() - Посылает cookie не преобразовывая значение
  • раздел cookies
  • » RFC 6265
  • » RFC 2109


Посылает cookie не преобразовывая значение

  • « setcookie
  • socket_get_status »
  • PHP Manual
  • Сетевые Функции
  • Посылает cookie не преобразовывая значение

setrawcookie

(PHP 5, PHP 7)

setrawcookie — Посылает cookie не преобразовывая значение

Описание

bool setrawcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

Функция setrawcookie() является полным аналогом функции setcookie(), исключая то, что значение cookie не будет автоматически преобразовано при отправке браузеру.

Список параметров

Для получения информации по параметру, см. документацию по функции setcookie().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.0 | Атрибут Max-Age теперь добавляется в заголовок Set-Cookie, отправляемый клиенту.
5.2.0 | Был добавлен параметр httponly.

Смотрите также

  • setcookie() - Посылает cookie


Псевдоним stream_get_meta_data

  • « setrawcookie
  • socket_set_blocking »
  • PHP Manual
  • Сетевые Функции
  • Псевдоним stream_get_meta_data

socket_get_status

(PHP 4, PHP 5, PHP 7)

socket_get_status — Псевдоним stream_get_meta_data()

Описание

Эта функция является псевдонимом: stream_get_meta_data().


Псевдоним stream_set_blocking

  • « socket_get_status
  • socket_set_timeout »
  • PHP Manual
  • Сетевые Функции
  • Псевдоним stream_set_blocking

socket_set_blocking

(PHP 4, PHP 5, PHP 7)

socket_set_blocking — Псевдоним stream_set_blocking()

Описание

Эта функция является псевдонимом: stream_set_blocking().


Псевдоним stream_set_timeout

  • « socket_set_blocking
  • syslog »
  • PHP Manual
  • Сетевые Функции
  • Псевдоним stream_set_timeout

socket_set_timeout

(PHP 4, PHP 5, PHP 7)

socket_set_timeout — Псевдоним stream_set_timeout()

Описание

Эта функция является псевдонимом: stream_set_timeout().


Генерирует сообщение для системного журнала

  • « socket_set_timeout
  • RRD »
  • PHP Manual
  • Сетевые Функции
  • Генерирует сообщение для системного журнала

syslog

(PHP 4, PHP 5, PHP 7)

syslog — Генерирует сообщение для системного журнала

Описание

bool syslog ( int $priority , string $message )

Функция syslog() генерирует сообщение, которое направляется в системный журнал.

По поводу информации по установке пользовательского обработчика сообщений журнала см. Unix руководство в части syslog.conf (5). Дополнительную информацию по функционалу syslog можно получить с помощью man для syslog (3) на Unix машинах.

Список параметров

priority

Параметр priority - это комбинация установки и уровня. Возможными значениями являются:

syslog() приоритеты (по убыванию)
Константа | Описание
LOG_EMERG | система непригодна
LOG_ALERT | необходимы незамедлительные меры
LOG_CRIT | критические условия
LOG_ERR | условия ошибки
LOG_WARNING | условия предупреждения
LOG_NOTICE | нормальные, но значительные условия
LOG_INFO | информационное сообщение
LOG_DEBUG | сообщение отладки

Параметр message

Отсылаемое сообщение, исключая то, что два символа %m будут заменены строкой сообщения об ошибке (strerror), соответствующей текущему значению errno.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования syslog()

<?php
// открыть syslog, включить в сообщение ID процесса, также отправить
// сообщение, и использовать определенный пользователем
// механизм журналирования
openlog("myScriptLog", LOG_PID | LOG_PERROR, LOG_LOCAL0);

// некий код

if (authorized_client()) {
    // исполнение любого кода
} else {
    // неавторизованный клиент!
    // отправить сообщение журнала о попытке
    $access = date("Y/m/d H:i:s");
    syslog(LOG_WARNING, "Неавторизованный клиент: $access {$_SERVER['REMOTE_ADDR']} ({$_SERVER['HTTP_USER_AGENT']})");
}

closelog();
?>

Примечания

На Windows NT, служба syslog эмулируется используя Журнал Событий.

Замечание:

Использование значений с LOG_LOCAL0 по LOG_LOCAL7 для параметра facility в функции openlog() недоступно в Windows.

Смотрите также

  • openlog() - Открывает соединение к системному журналу
  • closelog() - Завершает соединение с системным журналом


RRDtool

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Procedural PECL/rrd example
    • OOP PECL/rrd example
  • RRD Функции
    • rrd_create — Creates rrd database file
    • rrd_error — Gets latest error message.
    • rrd_fetch — Fetch the data for graph as array.
    • rrd_first — Gets the timestamp of the first sample from rrd file.
    • rrd_graph — Creates image from a data.
    • rrd_info — Gets information about rrd file
    • rrd_last — Gets unix timestamp of the last sample.
    • rrd_lastupdate — Gets information about last updated data.
    • rrd_restore — Restores the RRD file from XML dump.
    • rrd_tune — Tunes some RRD database file header options.
    • rrd_update — Updates the RRD database.
    • rrd_version — Gets information about underlying rrdtool library
    • rrd_xport — Exports the information about RRD database.
    • rrdc_disconnect — Close any outstanding connection to rrd caching daemon
  • RRDCreator — The RRDCreator class
    • RRDCreator::addArchive — Adds RRA - archive of data values for each data source.
    • RRDCreator::addDataSource — Adds data source definition for RRD database.
    • RRDCreator::__construct — Creates new RRDCreator instance
    • RRDCreator::save — Saves the RRD database to a file
  • RRDGraph — The RRDGraph class
    • RRDGraph::__construct — Creates new RRDGraph instance
    • RRDGraph::save — Saves the result of query into image
    • RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph.
    • RRDGraph::setOptions — Sets the options for rrd graph export
  • RRDUpdater — The RRDUpdater class
    • RRDUpdater::__construct — Creates new RRDUpdater instance
    • RRDUpdater::update — Update the RRD database file


Введение

The PECL/rrd extension provides bindings to the RRDtool C library. RRDtool is the open source industry standard, high performance data logging and graphing system for time series data.

The RRDtool homepage is » http://www.mrtg.org/rrdtool/.


Требования

You need to install librrd first to be able to use PECL/rrd. Most common option is using of librrd-dev package from your favourite linux distro. PECL/rrd is tested with librrd 1.4.3, older or newer versions might or might not work for you. PECL/rrd installation is tested with PHP 5.3.2 or newer.

Внимание

Librrd and hence extension itself aren't mostly thread safe. There are many global and shared states in librrd. It can be dangerous use this extension in multi threaded environments like Apache2 mpm worker. If there are many parallel requests, one request can change some global librrd state of other runnig requests.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/rrd.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • RRD
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Procedural PECL/rrd example »
  • PHP Manual
  • RRD
  • Примеры

Примеры

Содержание

  • Procedural PECL/rrd example
  • OOP PECL/rrd example


Procedural PECL/rrd example

Пример #1 Procedural usage of rrd

<?php
$rrdFile = dirname(__FILE__) . "/speed.rrd";

//create rrd file
rrd_create($rrdFile,
 array(
  "--start",920804400,
  "DS:speed:COUNTER:600:U:U",
  "RRA:AVERAGE:0.5:1:24",
  "RRA:AVERAGE:0.5:6:10"
  )
);

//update rrd file
rrd_update($rrdFile,
 array(
  "920804700:12345",
  "920805000:12357"
  )
);

//graph output
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"
 )
);
?>


OOP PECL/rrd example

Пример #1 OO usage of 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 — Creates rrd database file
  • rrd_error — Gets latest error message.
  • rrd_fetch — Fetch the data for graph as array.
  • rrd_first — Gets the timestamp of the first sample from rrd file.
  • rrd_graph — Creates image from a data.
  • rrd_info — Gets information about rrd file
  • rrd_last — Gets unix timestamp of the last sample.
  • rrd_lastupdate — Gets information about last updated data.
  • rrd_restore — Restores the RRD file from XML dump.
  • rrd_tune — Tunes some RRD database file header options.
  • rrd_update — Updates the RRD database.
  • rrd_version — Gets information about underlying rrdtool library
  • rrd_xport — Exports the information about RRD database.
  • rrdc_disconnect — Close any outstanding connection to rrd caching daemon


Creates rrd database file

  • « RRD Функции
  • rrd_error »
  • PHP Manual
  • RRD Функции
  • Creates rrd database file

rrd_create

(PECL rrd >= 0.9.0)

rrd_create — Creates rrd database file

Описание

bool rrd_create ( string $filename , array $options )

Creates the rdd database file.

Список параметров

filename

Filename for newly created rrd file.

options

Options for rrd create - list of strings. See man page of rrd create for whole list of options.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Gets latest error message.

  • « rrd_create
  • rrd_fetch »
  • PHP Manual
  • RRD Функции
  • Gets latest error message.

rrd_error

(PECL rrd >= 0.9.0)

rrd_error — Gets latest error message.

Описание

string rrd_error ( void )

Returns latest global rrd error message.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Latest error message.


Fetch the data for graph as array.

  • « rrd_error
  • rrd_first »
  • PHP Manual
  • RRD Функции
  • Fetch the data for graph as array.

rrd_fetch

(PECL rrd >= 0.9.0)

rrd_fetch — Fetch the data for graph as array.

Описание

array rrd_fetch ( string $filename , array $options )

Gets data for graph output from RRD database file as array. This function has same result as rrd_graph(), but fetched data are returned as array, no image file is created.

Список параметров

filename

RRD database file name.

options

Array of options for resolution specification.

Возвращаемые значения

Returns information about retrieved graph data.


Gets the timestamp of the first sample from rrd file.

  • « rrd_fetch
  • rrd_graph »
  • PHP Manual
  • RRD Функции
  • Gets the timestamp of the first sample from rrd file.

rrd_first

(PECL rrd >= 0.9.0)

rrd_first — Gets the timestamp of the first sample from rrd file.

Описание

int rrd_first ( string $file [, int $raaindex = 0 ] )

Returns the first data sample from the specified RRA of the RRD file.

Список параметров

file

RRD database file name.

raaindex

The index number of the RRA that is to be examined. Default value is 0.

Возвращаемые значения

Integer number of unix timestamp, FALSE if some error occurs.


Creates image from a data.

  • « rrd_first
  • rrd_info »
  • PHP Manual
  • RRD Функции
  • Creates image from a data.

rrd_graph

(PECL rrd >= 0.9.0)

rrd_graph — Creates image from a data.

Описание

array rrd_graph ( string $filename , array $options )

Creates image for a particular data from RRD file.

Список параметров

filename

The filename to output the graph to. This will generally end in either .png, .svg or .eps, depending on the format you want to output.

options

Options for generating image. See man page of rrd graph for all possible options. All options (data definitions, variable defintions, etc.) are allowed.

Возвращаемые значения

Array with information about generated image is returned, FALSE when error occurs.


Gets information about rrd file

  • « rrd_graph
  • rrd_last »
  • PHP Manual
  • RRD Функции
  • Gets information about rrd file

rrd_info

(PECL rrd >= 0.9.0)

rrd_info — Gets information about rrd file

Описание

array rrd_info ( string $filename )

Returns information about particular RRD database file.

Список параметров

file

RRD database file name.

Возвращаемые значения

Array with information about requsted RRD file, FALSE when error occurs.


Gets unix timestamp of the last sample.

  • « rrd_info
  • rrd_lastupdate »
  • PHP Manual
  • RRD Функции
  • Gets unix timestamp of the last sample.

rrd_last

(PECL rrd >= 0.9.0)

rrd_last — Gets unix timestamp of the last sample.

Описание

int rrd_last ( string $filename )

Returns the UNIX timestamp of the most recent update of the RRD database.

Список параметров

filename

RRD database file name.

Возвращаемые значения

Integer as unix timestamp of the most recent data from the RRD database.


Gets information about last updated data.

  • « rrd_last
  • rrd_restore »
  • PHP Manual
  • RRD Функции
  • Gets information about last updated data.

rrd_lastupdate

(PECL rrd >= 0.9.0)

rrd_lastupdate — Gets information about last updated data.

Описание

array rrd_lastupdate ( string $filename )

Gets array of the UNIX timestamp and the values stored for each date in the most recent update of the RRD database file.

Список параметров

file

RRD database file name.

Возвращаемые значения

Array of information about last update, FALSE when error occurs.


Restores the RRD file from XML dump.

  • « rrd_lastupdate
  • rrd_tune »
  • PHP Manual
  • RRD Функции
  • Restores the RRD file from XML dump.

rrd_restore

(PECL rrd >= 0.9.0)

rrd_restore — Restores the RRD file from XML dump.

Описание

bool rrd_restore ( string $xml_file , string $rrd_file [, array $options ] )

Restores the RRD file from the XML dump.

Список параметров

xml_file

XML filename with the dump of the original RRD database file.

rrd_file

Restored RRD database file name.

options

Array of options for restoring. See man page for rrd restore.

Возвращаемые значения

Returns TRUE on success, FALSE otherwise.


Tunes some RRD database file header options.

  • « rrd_restore
  • rrd_update »
  • PHP Manual
  • RRD Функции
  • Tunes some RRD database file header options.

rrd_tune

(PECL rrd >= 0.9.0)

rrd_tune — Tunes some RRD database file header options.

Описание

bool rrd_tune ( string $filename , array $options )

Change some options in the RRD dabase header file. E.g. renames the source for the data etc.

Список параметров

filename

RRD database file name.

options

Options with RRD database file properties which will be changed. See rrd tune man page for details.

Возвращаемые значения

Returns TRUE on success, FALSE otherwise.


Updates the RRD database.

  • « rrd_tune
  • rrd_version »
  • PHP Manual
  • RRD Функции
  • Updates the RRD database.

rrd_update

(PECL rrd >= 0.9.0)

rrd_update — Updates the RRD database.

Описание

bool rrd_update ( string $filename , array $options )

Updates the RRD database file. The input data is time interpolated according to the properties of the RRD database file.

Список параметров

filename

RRD database file name. This database will be updated.

options

Options for updating the RRD database. This is list of strings. See man page of rrd update for whole list of options.

Возвращаемые значения

Returns TRUE on success, FALSE when error occurs.


Gets information about underlying rrdtool library

  • « rrd_update
  • rrd_xport »
  • PHP Manual
  • RRD Функции
  • Gets information about underlying rrdtool library

rrd_version

(PECL rrd >= 1.0.0)

rrd_version — Gets information about underlying rrdtool library

Описание

string rrd_version ( void )

Returns information about underlying rrdtool library.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

String with rrdtool version number e.g. "1.4.3".


Exports the information about RRD database.

  • « rrd_version
  • rrdc_disconnect »
  • PHP Manual
  • RRD Функции
  • Exports the information about RRD database.

rrd_xport

(PECL rrd >= 0.9.0)

rrd_xport — Exports the information about RRD database.

Описание

array rrd_xport ( array $options )

Exports the information about RRD database file. This data can be converted to XML file via user space PHP script and then restored back as RRD database file.

Список параметров

options

Array of options for the export, see rrd xport man page.

Возвращаемые значения

Array with information about RRD database file, FALSE when error occurs.


Close any outstanding connection to rrd caching daemon

  • « rrd_xport
  • RRDCreator »
  • PHP Manual
  • RRD Функции
  • Close any outstanding connection to rrd caching daemon

rrdc_disconnect

(PECL rrd >= 1.1.2)

rrdc_disconnect — Close any outstanding connection to rrd caching daemon

Описание

void rrdc_disconnect ( void )

Close any outstanding connection to rrd caching daemon.

This function is automatically called when the whole PHP process is terminated. It depends on used SAPI. For example, it's called automatically at the end of command line script.

It's up user whether he wants to call this function at the end of every request or otherwise.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


The RRDCreator class

(PECL rrd >= 0.9.0)

Введение

Class for creation of RRD database file.

Обзор классов

RRDCreator {
/* Методы */
public void addArchive ( string $description )
public void addDataSource ( string $description )
public __construct ( string $path [, string $startTime [, int $step = 0 ]] )
public bool save ( void )
}

Содержание

  • RRDCreator::addArchive — Adds RRA - archive of data values for each data source.
  • RRDCreator::addDataSource — Adds data source definition for RRD database.
  • RRDCreator::__construct — Creates new RRDCreator instance
  • RRDCreator::save — Saves the RRD database to a file


Adds RRA - archive of data values for each data source.

  • « RRDCreator
  • RRDCreator::addDataSource »
  • PHP Manual
  • RRDCreator
  • Adds RRA - archive of data values for each data source.

RRDCreator::addArchive

(PECL rrd >= 0.9.0)

RRDCreator::addArchive — Adds RRA - archive of data values for each data source.

Описание

public void RRDCreator::addArchive ( string $description )

Adds RRA definition by description of archive. Archive consists of a number of data values or statistics for each of the defined data-sources (DS). Data sources are defined by method RRDCreator::addDataSource(). You need call this method for each requested archive.

Список параметров

description

Definition of archive - RRA. This has same format as RRA definition in rrd create command. See man page of rrd create for more details.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Adds data source definition for RRD database.

  • « RRDCreator::addArchive
  • RRDCreator::__construct »
  • PHP Manual
  • RRDCreator
  • Adds data source definition for RRD database.

RRDCreator::addDataSource

(PECL rrd >= 0.9.0)

RRDCreator::addDataSource — Adds data source definition for RRD database.

Описание

public void RRDCreator::addDataSource ( string $description )

RRD can accept input from several data sources (DS), e.g incoming and outgoing traffic. This method adds data source by description. You need call this method for each data source.

Список параметров

description

Definition of data source - DS. This has same format as DS definition in rrd create command. See man page of rrd create for more details.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Creates new RRDCreator instance

  • « RRDCreator::addDataSource
  • RRDCreator::save »
  • PHP Manual
  • RRDCreator
  • Creates new RRDCreator instance

RRDCreator::__construct

(PECL rrd >= 0.9.0)

RRDCreator::__construct — Creates new RRDCreator instance

Описание

public RRDCreator::__construct ( string $path [, string $startTime [, int $step = 0 ]] )

Creates new RRDCreator instance.

Список параметров

path

Path for newly created RRD database file.

startTime

Time for the first value in RRD database. Parameter supports all formats which are supported by rrd create call.

intstep

Base interval in seconds with which data will be fed into the RRD database.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Saves the RRD database to a file

  • « RRDCreator::__construct
  • RRDGraph »
  • PHP Manual
  • RRDCreator
  • Saves the RRD database to a file

RRDCreator::save

(PECL rrd >= 0.9.0)

RRDCreator::save — Saves the RRD database to a file

Описание

public bool RRDCreator::save ( void )

Saves the RRD database into file, which name is defined by RRDCreator::__construct().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


The RRDGraph class

(PECL rrd >= 0.9.0)

Введение

Class for exporting data from RRD database to image file.

Обзор классов

RRDGraph {
/* Методы */
public __construct ( string $path )
public array save ( void )
public array saveVerbose ( void )
public void setOptions ( array $options )
}

Содержание

  • RRDGraph::__construct — Creates new RRDGraph instance
  • RRDGraph::save — Saves the result of query into image
  • RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph.
  • RRDGraph::setOptions — Sets the options for rrd graph export


Creates new RRDGraph instance

  • « RRDGraph
  • RRDGraph::save »
  • PHP Manual
  • RRDGraph
  • Creates new RRDGraph instance

RRDGraph::__construct

(PECL rrd >= 0.9.0)

RRDGraph::__construct — Creates new RRDGraph instance

Описание

public RRDGraph::__construct ( string $path )

Creates new RRDGraph instance. This instance is responsible for rendering the result of RRD database query into image.

Список параметров

path

Full path for the newly created image.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Saves the result of query into image

  • « RRDGraph::__construct
  • RRDGraph::saveVerbose »
  • PHP Manual
  • RRDGraph
  • Saves the result of query into image

RRDGraph::save

(PECL rrd >= 0.9.0)

RRDGraph::save — Saves the result of query into image

Описание

public array RRDGraph::save ( void )

Saves the result of RRD database query into image defined by RRDGraph::__construct().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Array with information about generated image is returned, FALSE if error occurs.


Saves the RRD database query into image and returns the verbose information about generated graph.

  • « RRDGraph::save
  • RRDGraph::setOptions »
  • PHP Manual
  • RRDGraph
  • Saves the RRD database query into image and returns the verbose information about generated graph.

RRDGraph::saveVerbose

(PECL rrd >= 0.9.0)

RRDGraph::saveVerbose — Saves the RRD database query into image and returns the verbose information about generated graph.

Описание

public array RRDGraph::saveVerbose ( void )

Saves the RRD database query into image file defined by method RRDGraph::__construct() and returns the verbose information about generated graph, if "-" is used as image filename, image data are also returned in result array.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Array with detailed information about generated image is returned, optionally with image data, FALSE if error occurs.


Sets the options for rrd graph export

  • « RRDGraph::saveVerbose
  • RRDUpdater »
  • PHP Manual
  • RRDGraph
  • Sets the options for rrd graph export

RRDGraph::setOptions

(PECL rrd >= 0.9.0)

RRDGraph::setOptions — Sets the options for rrd graph export

Описание

public void RRDGraph::setOptions ( array $options )

Список параметров

options

List of options for the image generation from the RRD database file. It can be list of strings or list of strings with keys for better readability. Read the rrd graph man pages for list of available options.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 RRDGraph::setOptions() example

<?php
$graphObj->setOptions(array(
    "--start" => "920804400",
    "--end" => 920808000,
    "--vertical-label" => "m/s",
    "DEF:myspeed=$rrdFile:speed:AVERAGE",
    "CDEF:realspeed=myspeed,1000,*",
    "LINE2:realspeed#FF0000"
));
?>

Пример #2 Set multiple color options

<?php
$graphObj->setOptions(array(
    "--start" => "920804400",
    "--end" => 920808000,
    "--vertical-label" => "m/s",
    "--color=BACK#00000000",
    "--color=GRID#00000000",
    "--color=MGRID#00000000",
    "DEF:myspeed=$rrdFile:speed:AVERAGE",
    "CDEF:realspeed=myspeed,1000,*",
    "LINE2:realspeed#FF0000"
));
?>

Don't use key value syntax for same rrd option. It looks more readable, but it doesn't work.

<?php
$graphObj->setOptions(array(
    "--color" => "BACK#00000000",
    "--color" => "GRID#00000000",
    "--color" => "MGRID#00000000"
));
?>

In nature of php it's same as

<?php
$graphObj->setOptions(array(
    "--color" => "MGRID#00000000"
));
?>


The RRDUpdater class

(PECL rrd >= 0.9.0)

Введение

Class for updating RDD database file.

Обзор классов

RRDUpdater {
/* Методы */
public __construct ( string $path )
public bool update ( array $values [, string $time = time() ] )
}

Содержание

  • RRDUpdater::__construct — Creates new RRDUpdater instance
  • RRDUpdater::update — Update the RRD database file


Creates new RRDUpdater instance

  • « RRDUpdater
  • RRDUpdater::update »
  • PHP Manual
  • RRDUpdater
  • Creates new RRDUpdater instance

RRDUpdater::__construct

(PECL rrd >= 0.9.0)

RRDUpdater::__construct — Creates new RRDUpdater instance

Описание

public RRDUpdater::__construct ( string $path )

Creates new RRDUpdater instance. This instance is responsible for updating the RRD database file.

Список параметров

path

Filesystem path for RRD database file, which will be updated.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Update the RRD database file

  • « RRDUpdater::__construct
  • SAM »
  • PHP Manual
  • RRDUpdater
  • Update the RRD database file

RRDUpdater::update

(PECL rrd >= 0.9.0)

RRDUpdater::update — Update the RRD database file

Описание

public bool RRDUpdater::update ( array $values [, string $time = time() ] )

Updates the RRD file defined via RRDUpdater::__construct(). The file is updated with a specific values.

Список параметров

values

Data for update. Key is data source name.

time

Time value for updating the RRD with a particulat data. Default value is current time.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Throws a Exception on error.

Примеры

Пример #1 RRDUpdater::update() examples

<?php
$updator = new RRDUpdater("speed.rrd");
//updates the data source "speed" with value "12411"
//for time defined by timestamp "920807700"
$updator->update(array("speed" => "12411"), "920807700");
?>


Simple Asynchronous Messaging

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Connections
    • Messages
    • Messaging operations
    • Publish/Subscribe and subscriptions to topics
    • Error handling
  • SAM Функции
    • SAMConnection::commit — Commits (completes) the current unit of work.
    • SAMConnection::connect — Establishes a connection to a Messaging Server
    • SAMConnection::__construct — Creates a new connection to a Messaging Server
    • SAMConnection::disconnect — Disconnects from a Messaging Server
    • SAMConnection::errno — Contains the unique numeric error code of the last executed SAM operation.
    • SAMConnection::error — Contains the text description of the last failed SAM operation.
    • SAMConnection::isConnected — Queries whether a connection is established to a Messaging Server
    • SAMConnection::peek — Read a message from a queue without removing it from the queue.
    • SAMConnection::peekAll — Read one or more messages from a queue without removing it from the queue.
    • SAMConnection::receive — Receive a message from a queue or subscription.
    • SAMConnection::remove — Remove a message from a queue.
    • SAMConnection::rollback — Cancels (rolls back) an in-flight unit of work.
    • SAMConnection::send — Send a message to a queue or publish an item to a topic.
    • SAMConnection::setDebug — Turn on or off additional debugging output.
    • SAMConnection::subscribe — Create a subscription to a specified topic.
    • SAMConnection::unsubscribe — Cancel a subscription to a specified topic.
    • SAMMessage::body — The body of the message.
    • SAMMessage::__construct — Creates a new Message object
    • SAMMessage::header — The header properties of the message.


Введение

This extension provides access to the functionality of messaging and queueing systems, such as the IBM WebSphere MQSeries family of products, from PHP scripts. The interface is designed to make it extremely simple to do the more commonly required tasks such as deliver simple text messages to queues while still allowing skilled users to do more complex messaging operations. For many users the complexities of setting up numerous options can be simply ignored.

The SAM extension is a framework that provides a very simple API that can be used to access a number of messaging middleware systems. Currently the package includes built-in support for the MQTT (MQ Telemetry Transport) messaging protocol and support for the IBM Messaging and Queuing middleware products. SAM is designed to be readily extended to support other messaging systems and extension modules may be written in C or PHP.


Требования

The SAM extension interfaces to the IBM Messaging and Queuing middleware products using a set of libraries and some client side code referred to as XMS. This package is available as a free download in the guise of IBM support pack IA94. There is a description of this package and download links in the article » Introducing XMS - The IBM Message Service API.

If you intend to use SAM to access the Messaging and Queuing infrastructure within WebSphere MQ then you will also need to have installed a local MQ queue manager or installed the WebSphere MQ clients package. The clients package is freely available as a support pack (» MQC6).

If you are only aiming to experiment with sending messages to and from WebSphere Application Server queues using the WebSphere Platform Messaging protocol (WPM) then you do not need to install the MQC6 package.

After installing these packages you will need to ensure the XMS binary and, if you are using it, the MQ client bin directory are included in the PATH environment variable so that Apache and PHP can find the dependent .DLLs/libraries.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/sam.

The SAM framework and MQTT support can be built and used without any other prerequisites. Support for protocols other than MQTT is provided via a set of libraries and some client side code referred to as XMS.

If you only intend to use the built-in MQTT support then you can build and configure SAM as an extension or simply refer to php_sam.php with a require or require_once clause in your PHP script. In this case you need only install the code without building the extension using the pear installer:

pecl install -B SAM

Linux installation steps

The sam extension is supplied as a PECL module, which you should be able to download and install in one step as follows:

pecl install sam
(Depending on your php environment, you will probably need to be root to do this.)

Make sure that the module is loaded by PHP, by adding following line to php.ini:

extension=sam.so
If you intend to use the XMS support to access the IBM Messaging and Queuing family you must also enable the SAM XMS extension.
extension=sam_xms.so

If you cannot use the PEAR installer, you can download the extension and build it manually:

pear download sam          #downloads sam-<version>.tgz
tar -xzf sam-<version>.tgz
cd sam-<version>
phpize
./configure
make
make install               #you may need to be root for this step

To work with the very latest source, you'll need to extract it from SVN and build manually as above.

Windows installation steps

You will probably need to build the sam extension for Windows as there are only a limited range of pre-built binaries available from the SAM website. The extension can be built using the standard Windows extension build procedures.

You will need the PHP source tree for the version of PHP you wish to build the SAM extension against which you can obtain from php.net. This should be unpacked into a working directory of your choice.

You will also need the libraries and headers used by PHP extensions available from http://www.php.net/extra/win32build.zip and this should be unzipped so that is in your working directory.

You should have something like:

c:\php-build\-
              |
              |---php-5.0.5--|---build
              |              |---ext
              |              |--- ...
              |
              |---win32build--|---bin
                              |---include
                              |---lib

You will need a compiler such as the free version of Visual Studio C++ Express from the Microsoft web site. Also you need the Microsoft SDK Microsoft Windows Platform which again can be downloaded from the Microsoft web site.

Obtain the SAM extension source using pear (pecl download sam) or by using SVN and copy the files to a new "sam" directory under the "ext" directory in your PHP source tree.

To build the extension open a build environment window by going to the start

menu->all programs->microsoft platform SDK for windows->
open build environment window->windows 200 build environment->
set windows 2000 build environment (retail)

This should open a command prompt with all the environment variables set up to access the platform SDK etc. You then need to set the environment variables for Visual Studio by issuing the command vcvars32.bat in the window.

Change directory to your working directory e.g. cd c:\php-build. Then make sure the win32build tools are accessible by adding them to the PATH environment variable:

set PATH=..\win32build\bin;%PATH%

Run the buildconf.bat command. This should rebuild the configure.js file.

Run the cscript command with the appropriate options. To build just the SAM extension framework and MQTT support use:

cscript /nologo configure.js --with-sam
To build the SAM framework and the XMS support use:
cscript /nologo configure.js --with-sam --with-sam_xms="c:\program files\ibm\xms"

The additional parameter passed for sam_xms is the installation path to the XMS libraries and runtime that were installed as described under prerequisites at the top of this page.

You can specify whatever other cscript parameters you require to include or exclude items from the php build or select options.

Assuming all has gone well so far you can now finally run a make for the SAM framework!

nmake php_sam.dll
Also if you are using the XMS support you must make the sam_xms extensions:
nmake php_sam_xms.dll

If you have used Visual Studio 2005 to build the DLLs please see below for additional steps that must be carried out before proceeding further.

The DLLs created (php_sam.dll and optionally php_sam_xms.dll) can now be copied to the subdirectory appropriate for your PHP set-up. Make sure that the module(s) are loaded by PHP, by adding following line to php.ini:

extension=php_sam.dll
If you intend to use the XMS support to access the IBM Messaging and Queuing family you must also enable the SAM XMS extension.
extension=php_sam_xms.dll

Additional steps for Visual Studio 2005

If you build the SAM extension with the Microsoft Visual Studio 2005 compiler and tools you need to perform an additional step in the build process to ensure the php_sam.dll is able to link with the C runtime libraries at runtime. This step includes the dependancy manifest into the DLL. Switch to the directory where the php_sam.dll has been generated (usually Release_TS or Debug_TS below the php source directory) and issue the following magic incantation:

mt.exe -manifest php_sam.dll.manifest -outputresource:php_sam.dll;2
If you are using the XMS capabilities you will need to do the same with the SAM XMS DLL:
mt.exe -manifest php_sam_xms.dll.manifest -outputresource:php_sam_xms.dll;2

If you build the SAM extension using the compiler and libraries from Microsoft Visual Studio 2005 you will also need to ensure that the runtime components are installed on the system on which you intend to use SAM. This can be accomplished by installing Visual Studio 2005 or by using the freely distributable » runtime package.


Настройка во время выполнения

Protocol support and mapping

The SAM framework can be extended to support other messaging protocols and connection mechanisms. To add support for a new protocol or connection library a support class has to be defined, either as a C extension or as a PHP script, and a "factory" script must be created. The support class must implement all the methods of the SAMConnection class though it should not inherit from SAMConnection. The factory script will be called by the SAM framework to create an instance of the implemented class. The way SAM chooses which factory to call is based on the protocol specified as the first parameter of the "connect" call.

By default the built-in MQTT support will be used if a connect call specifies a protocol of SAM_MQTT ("mqtt"), for any other protocol SAM will attempt to use the XMS support extension. To add support for additional protocols or to modify the default behavior entries may be added to php.ini in the [sam] section. The default mapping is equivalent to the following entries:

[sam]
sam.factory.mqtt=mqtt
sam.factory.wmq=xms
sam.factory.wmq:client=xms
sam.factory.wmq:bindings=xms
sam.factory.wpm=xms
sam.factory.rtt=xms
As can be seen from these examples the entries take the form of "sam.factory.pppp=xxx" where pppp is the protocol string specified on the connect call and xxx is a factory suffix. Note: SAM defines constants for these protocol strings such that SAM_WMQ=wmq, SAM_WPM=wpm, SAM_RTT=rtt, SAM_MQTT=mqtt, etc.

When identifying the support code to use on a connect call SAM looks up the protocol name in the php.ini entries and then invokes a factory script named sam_factory_xxx.php. If no entry is found the support will default to XMS.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SAM_AUTO (string)
Automatic behaviour
SAM_BOOLEAN (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_BUS (string)
Connect attribute used to set the name of the enterprise service bus to connect to.
SAM_BYTE (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_BYTES (string)
Message body type descriptor.
SAM_CORRELID (string)
Attribute used on receive, send and remove requests to identify specific messages.
SAM_DELIVERYMODE (string)
Message header property.
SAM_DOUBLE (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_ENDPOINTS (string)
Connect attribute used to define the possible endpoints to connect to.
SAM_FLOAT (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_HOST (string)
Connect attribute used to set the hostname of the required messaging server.
SAM_INT (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_LONG (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_MANUAL (string)
Manual (script controlled) behaviour
SAM_MESSAGEID (string)
Attribute used on receive and remove requests to identify specific messages.
SAM_MQTT (string)
Connect protocol definition for selecting the MQTT (MQ Telemetry Transport) protocol.
SAM_MQTT_CLEANSTART (bool)
Optional connect option to indicate to an MQTT server that all previous connection data for this client should be removed and that subscriptions should be deleted when the client disconnects explicitly or unexpectedly.
SAM_NON_PERSISTENT (string)
Connect attribute value used to request messages are not made persistent on the messaging server.
SAM_PASSWORD (string)
Connect attribute used to define the password to be used for the user account being used to connect to a messaging server that requires authorisation for connections.
SAM_PERSISTENT (string)
Connect attribute value used to request messages are made persistent on the messaging server to protect against loss of messages in the event of failure.
SAM_PORT (string)
Connect attribute used to set the port number on which to communicate with the messaging server.
SAM_PRIORITY (string)
Option name used on send requests to specify a delivery priority value.
SAM_REPLY_TO (string)
Message property used to specify the queue identity on to which the script expects response or reply messages to be posted.
SAM_RTT (string)
Connect protocol definition for selecting the IBM Realtime Transport protocol for communication with a business integration messaging server.
SAM_STRING (string)
Type specifier used when setting properties on SAM_Message objects.
SAM_TARGETCHAIN (string)
Connection attribute used to set the required target chain identifier.
SAM_TEXT (string)
Message body type descriptor.
SAM_TIMETOLIVE (string)
Message send option name used to specify the length of time a message should be retained in milliseconds.
SAM_TRANSACTIONS (string)
Connection attribute used to set required transactional behaviour. May be set to SAM_AUTO (default) or SAM_MANUAL.
SAM_USERID (string)
Connect attribute used to define the account to being used to connect to a messaging server that requires authorisation for connections.
SAM_WAIT (string)
Receive property used to specify the wait timeout to be used when receiving a message from a queue or subscription.
SAM_WMQ (string)
Connect protocol definition for selecting the IBM WebSphere MQSeries protocol for communication with the desired messaging server.
SAM_WMQ_BINDINGS (string)
Connect protocol definition for selecting the IBM WebSphere MQSeries protocol for communication with a local messaging server.
SAM_WMQ_CLIENT (string)
Connect protocol definition for selecting the IBM WebSphere MQSeries protocol for communication with a remote messaging server.
SAM_WMQ_TARGET_CLIENT (string)
Option name used on send requests to specify the target client mode. This can either be default to 'jms' or 'mq'. The default is 'jms' which means an RFH2 header is sent with the message whereas the 'mq' setting means no RFH2 is included.
SAM_WPM (string)
Connect protocol definition for selecting the IBM WebSphere Platform Messaging protocol for communication with a WebSphere Application Server messaging server.


Примеры

Содержание

  • Connections
  • Messages
  • Messaging operations
  • Publish/Subscribe and subscriptions to topics
  • Error handling


Connections

In order to perform any messaging and queueing functions a connection must be established with a messaging server by creating a SAMConnection object and calling its "connect" method, with a set of connection properties, to connect the PHP script to the messaging server. Until such time as the SAMConnection object is destroyed the connection will be maintained and available for use. All SAMConnection objects are destroyed when the PHP script exits.

A set of default properties may be used in connecting to a messaging server but as a minimum the PHP script must specify a protocol to be used.

Пример #1 Creating a connection and connecting to a remote WebSphere MQSeries Messaging Server

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'myhost.mycompany.com',
                              SAM_PORT => 1506,
                              SAM_BROKER => 'mybroker'));
?>

Пример #2 Creating a connection and connecting to a remote WebSphere Application Server

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1',
                              SAM_TARGETCHAIN => 'InboundBasicMessaging'));
?>

Пример #3 Creating a connection and connecting to an MQTT server

<?php
$conn = new SAMConnection();
$conn->connect(SAM_MQTT, array(SAM_HOST => 'myhost.mycompany.com',
                               SAM_PORT => 1883));
?>


Messages

Messages sent to and received from queues are represented by the SAMMessage object. The SAMMessage object encapsulates the body of the message (if one exists) and the header properties associated with the message. A SAMMessage object is either supplied as a parameter to a messaging operation or returned as a result.

Пример #1 Creating a message with a simple text body

<?php
$msg = new SAMMessage('This is a simple text message');
?>

Messages may have header properties associated with them that provide control over the transport of the message or further information to the receiving application. By default message properties are delivered to the underlying messaging system as strings and in this case they may be set with the following simple syntax:

Пример #2 Setting a text format property using the default syntax

<?php
$msg->header->myPropertyName = 'textData';
?>

If it is desired to pass type information an alternative syntax may be used where the value and the type hint are passed in an associative array:

Пример #3 Setting a property using a type hint

<?php
$msg->header->myPropertyName = array(3.14159, SAM_FLOAT);
?>

Properties may also be extracted from the header of a message.

Пример #4 Retrieving a property from a message header

<?php
$myProperty = $msg->header->myPropertyName;
?>


Messaging operations

All messaging operations are performed through calls to methods on the connection object. To add a message to a queue the "send" method is used, to obtain a message from a queue the "receive" method is used. Other methods provide publish and subscribe functionality and control of transaction boundaries.

Пример #1 Adding a message to a queue and receiving a response

<?php
$msg = new SAMMessage('This is a simple text message');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
  // The Send failed!
  echo "Send failed ($conn->errno) $conn->error";
} else {
  $resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>


Publish/Subscribe and subscriptions to topics

SAM allows messages to be sent either to queues or, for WebSphere MQ and WPM, to publish/subscribe topics. A topic destination is specified to SAM in the usual way, i.e. in the form 'topic://fred', rather than the form 'queue://AQUEUE' used for point to point operation. To use publish/subscribe it is simply necessary to specify the correct broker name on the SAMConnect "connect" call and the desired topic in the destination argument to the SAMConnect "send" and "receive" calls. The PHP interface is otherwise identical to the point to point model.

By default, SAM creates non-durable subscriptions when using publish/subscribe. This means that if a client application is inactive when messages are published to a topic, then it will not receive them when it subsequently restarted. SAM does also allow durable subscriptions to be made to topics when using WPM or WebSphere MQ publish/subscribe. The purpose of these subscriptions is to allow data to be received by a client application even if that client was not active at the time the data was published.

Durable subscriptions are specified by using the SAMConnect "subscribe" call. This method takes the destination topic as an input parameter and returns a subscription identifier that may be used on subsequent "receive" calls. When the subscription is no longer required the SAMConnection "unsubscribe" method should be used to delete the subscription.

Пример #1 Creating a durable subscription to a topic

<?php

$subName = $conn->subscribe('topic://A');

if (!$subName) {
   echo "Subscribe failed";
} else {
   # Subscribe was OK
   // ...
}
?>

Пример #2 Subscribing to a topic using a WebSphere Platform Messaging (WPM) server

<?php
$conn = new SAMConnection();
// Note: For pub/sub on WPM, when connecting the name of a messaging engine
//   to hold the durable subscription (SAM_WPM_DUR_SUB_HOME) must be specified.
$conn->connect(SAM_WMQ, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1',
                              SAM_TARGETCHAIN => 'InboundBasicMessaging',
                              SAM_WPM_DUR_SUB_HOME => 'MyMachineNode01.server1-Bus1'));

$subName = $conn->subscribe('topic://A');

if (!$subName) {
   echo "Subscribe failed";
} else {
   # Subscribe was OK
   // ...
}
?>

Пример #3 Receiving published data using a durable subscription

<?php

$msg = $conn->receive($subName);
if ($msg) {
   echo "Received a message OK";
} else {
   echo "The receive failed";
}

?>

Пример #4 Deleting a durable subscription to a topic

<?php

if (!$conn->unsubscribe($subName)) {
   echo "Unsubscribe failed";
}

?>


Error handling

All SAMConnection methods that provide access to messaging operations return FALSE if an error occurred in processing the request. In addition the SAMConnection object has two properties, "errno" and "error", that provide respectively the error number and text description of the last error to occur on the connection.

Пример #1 Handling an error from a method that returns no result

<?php
if (!$conn->commit()) {
    // The commit failed!
    echo "Commit failed ($conn->errno) $conn->error";
}
?>

Пример #2 Handling an error from a method that returns a result

<?php
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
  // The Send failed!
  echo "Send failed ($conn->errno) $conn->error";
} else {
  /* ... */
}
?>


SAM Функции

Предопределенные классы

SAMConnection

Object representing a connection to a Messaging Server

Конструктор

  • new SAMConnection - construct a new connection object to allow connection to a messaging infrastructure.

Методы

  • commit - a method that commits (successfully completes) an in-flight unit of work.

  • connect - a method that connects a PHP script to a messaging server.

  • disconnect - a method that disconnects a PHP script from a messaging server.

  • isConnected - a method that checks whether a PHP script is connected to a messaging server.

  • peek - a method that receives a message from a queue without removing it from the queue.

  • peekAll - a method that receives one or messages from a queue without removing them from the queue.

  • receive - a method that receives a message from a queue or subscription.

  • remove - a method that removes a message from a queue.

  • rollback - a method that cancels (rolls back) an in-flight unit of work.

  • send - a method that sends a message to a queue or posts to a topic

  • setDebug - a method that switches additional debugging output on or off

  • subscribe - a method that creates a subscription to one or more topics

  • unsubscribe - a method that destroys a subscription to one or more topics

Свойства

  • errno - the numeric error code for the last encountered error on this connection. This property is set to 0 if the last operation was successful.

  • error - the text description for the last encountered error on this connection

SAMMessage

Object representing a message to be sent or received

Конструктор

  • new SAMMessage - construct a new message.

Свойства

  • body - the body of the message.

  • header - the header properties of the message.

Содержание

  • SAMConnection::commit — Commits (completes) the current unit of work.
  • SAMConnection::connect — Establishes a connection to a Messaging Server
  • SAMConnection::__construct — Creates a new connection to a Messaging Server
  • SAMConnection::disconnect — Disconnects from a Messaging Server
  • SAMConnection::errno — Contains the unique numeric error code of the last executed SAM operation.
  • SAMConnection::error — Contains the text description of the last failed SAM operation.
  • SAMConnection::isConnected — Queries whether a connection is established to a Messaging Server
  • SAMConnection::peek — Read a message from a queue without removing it from the queue.
  • SAMConnection::peekAll — Read one or more messages from a queue without removing it from the queue.
  • SAMConnection::receive — Receive a message from a queue or subscription.
  • SAMConnection::remove — Remove a message from a queue.
  • SAMConnection::rollback — Cancels (rolls back) an in-flight unit of work.
  • SAMConnection::send — Send a message to a queue or publish an item to a topic.
  • SAMConnection::setDebug — Turn on or off additional debugging output.
  • SAMConnection::subscribe — Create a subscription to a specified topic.
  • SAMConnection::unsubscribe — Cancel a subscription to a specified topic.
  • SAMMessage::body — The body of the message.
  • SAMMessage::__construct — Creates a new Message object
  • SAMMessage::header — The header properties of the message.


Commits (completes) the current unit of work.

  • « SAM Функции
  • SAMConnection::connect »
  • PHP Manual
  • SAM Функции
  • Commits (completes) the current unit of work.

SAMConnection::commit

(PECL sam >= 0.1.0)

SAMConnection::commit — Commits (completes) the current unit of work.

Описание

bool SAMConnection::commit ( void )

Calling the "commit" method on a Connection object commits (completes) all in-flight transactions that are part of the current unit of work.

Возвращаемые значения

This method returns FALSE if an error occurs.

Примеры

Пример #1 Committing the current unit of work

<?php
  if (!$conn->commit()) {
    // The commit failed!
    echo "Commit failed ($conn->errno) $conn->error";
  }
?>

Смотрите также

  • SAMConnection::rollback


Establishes a connection to a Messaging Server

  • « SAMConnection::commit
  • SAMConnection::__construct »
  • PHP Manual
  • SAM Функции
  • Establishes a connection to a Messaging Server

SAMConnection::connect

(PECL sam >= 0.1.0)

SAMConnection::connect — Establishes a connection to a Messaging Server

Описание

bool SAMConnection::connect ( string $protocol [, array $properties ] )

Calling the "connect" method on a SAMConnection object connects the PHP script to a messaging server. No messages can be sent or received until a connection is made.

Список параметров

Возвращаемые значения

This method returns FALSE if an error occurs.

Примеры

Пример #1 Creating a connection to a Messaging Server using the IBM MQSeries protocol (WMQ)

<?php

$conn->connect(SAM_WMQ, array(SAM_HOST => 'Myhost.myco.com', SAM_PORT => 1506, SAM_BROKER => 'MyBroker'));

?>

Пример #2 Creating a connection with application transaction control and default host and port values

<?php

$conn->connect(SAM_WMQ, array(SAM_BROKER => 'MyBroker', SAM_TRANSACTIONS => SAM_MANUAL));

?>

Пример #3 Creating a connection to a Messaging Server using the IBM WebSphere Platform Messaging protocol (WPM)

<?php

$conn->connect(SAM_WPM, array(SAM_ENDPOINTS => 'localhost:7278:BootstrapBasicMessaging',
                              SAM_BUS => 'Bus1', SAM_TARGETCHAIN => 'InboundBasicMessaging'));

?>

Смотрите также

  • SAMConnection::isConnected
  • SAMConnection::disconnect


Creates a new connection to a Messaging Server

  • « SAMConnection::connect
  • SAMConnection::disconnect »
  • PHP Manual
  • SAM Функции
  • Creates a new connection to a Messaging Server

SAMConnection::__construct

(PECL sam >= 0.1.0)

SAMConnection::__construct — Creates a new connection to a Messaging Server

Описание

SAMConnection::__construct ( void )

Creates a new SAMConnection object.

Примеры

Пример #1 Creating a connection object and connecting to a Messaging Server

<?php

$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => localhost, SAM_PORT => 1414, SAM_BROKER => 'bull'));

?>


Disconnects from a Messaging Server

  • « SAMConnection::__construct
  • SAMConnection::errno »
  • PHP Manual
  • SAM Функции
  • Disconnects from a Messaging Server

SAMConnection::disconnect

(PECL sam >= 0.1.0)

SAMConnection::disconnect — Disconnects from a Messaging Server

Описание

bool SAMConnection::disconnect ( void )

Calling the "disconnect" method on a SAMConnection object disconnects the PHP script from a messaging server. No messages can be sent or received after a connection has been disconnected.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Disconnecting from a Messaging Server

<?php

$conn->disconnect();

?>

Смотрите также

  • SAMConnection::isConnected
  • SAMConnection::connect


Contains the unique numeric error code of the last executed SAM operation.

  • « SAMConnection::disconnect
  • SAMConnection::error »
  • PHP Manual
  • SAM Функции
  • Contains the unique numeric error code of the last executed SAM operation.

SAMConnection::errno

(PECL sam >= 0.1.0)

SAMConnection::errno — Contains the unique numeric error code of the last executed SAM operation.

Description

int $SAMConnection->errno;

Contains the numeric error code of the last executed SAM operation on this connection. If the last operation completed successfully this property contains 0.

Возвращаемые значения

An integer greater than zero indicates the last error type encountered on the connection. Zero indicates that the last operation on this connection completed successfully.

Примеры

Пример #1 Using the error number and description properties

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost', SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
}
?>

Смотрите также

  • SAMConnection::error


Contains the text description of the last failed SAM operation.

  • « SAMConnection::errno
  • SAMConnection::isConnected »
  • PHP Manual
  • SAM Функции
  • Contains the text description of the last failed SAM operation.

SAMConnection::error

(PECL sam >= 0.1.0)

SAMConnection::error — Contains the text description of the last failed SAM operation.

Описание

string $SAMConnection->error;

Contains the text description of the last failed SAM operation on this connection. If the last operation completed successfully this property contains an empty string.

Возвращаемые значения

A string containing the text description of the last error type encountered on the connection. An empty string indicates that the last operation on this connection completed successfully.

Примеры

Пример #1 Using the error number and description properties

<?php
$conn = new SAMConnection();
$conn->connect(SAM_WMQ, array(SAM_HOST => 'localhost', SAM_PORT => 1506));
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
}
?>

Смотрите также

  • SAMConnection::errno


Queries whether a connection is established to a Messaging Server

  • « SAMConnection::error
  • SAMConnection::peek »
  • PHP Manual
  • SAM Функции
  • Queries whether a connection is established to a Messaging Server

SAMConnection::isConnected

(PECL sam >= 0.1.0)

SAMConnection::isConnected — Queries whether a connection is established to a Messaging Server

Описание

bool SAMConnection::isConnected ( void )

Calling the "isConnected" method on a Connection object will check whether the PHP script is connected to a messaging server. No messages can be sent or received unless a connection has been established with a Messaging server.

Возвращаемые значения

This method returns TRUE if the SAMConnection object is successfully connected to a Messaging server or FALSE otherwise.

Примеры

Пример #1 Checking whether there us a connection to a Messaging Server

<?php

if ($conn->isConnected()) {
  echo 'Connection is active.';
} else {
  echo 'No active connection!';
}

?>

Смотрите также

  • SAMConnection::disconnect
  • SAMConnection::connect


Read a message from a queue without removing it from the queue.

  • « SAMConnection::isConnected
  • SAMConnection::peekAll »
  • PHP Manual
  • SAM Функции
  • Read a message from a queue without removing it from the queue.

SAMConnection::peek

(PECL sam >= 0.1.0)

SAMConnection::peek — Read a message from a queue without removing it from the queue.

Описание

SAMMessage SAMConnection::peek ( string $target [, array $properties ] )

Список параметров

target

The identity of the queue from which to peek the message.

properties

An optional associative array of properties describing other parameters to control the peek operation.

Property name | Possible values
SAM_CORRELID | This is the target correlation id string of the message. This would typically have been returned by a "send" request.
SAM_MESSAGEID | This is the message id string of the message which is to be peeked.

Возвращаемые значения

This method returns a SAMMessage object or FALSE if an error occurs.

Примеры

Пример #1 Retrieve the next message from a queue without removing it

<?php
$msg = $conn->peek('queue://receive/test');

if (!$msg) {
  // The peek failed!
  echo "Peek failed ($conn->errno) $conn->error";
}
?>

Пример #2 Retrieve a specific message from a queue without removing it from the queue

<?php

$msg = $conn->peek('queue://receive/test', array(SAM_MESSAGEID => $messageId));

?>

Смотрите также

  • SAMConnection::peekAll


Read one or more messages from a queue without removing it from the queue.

  • « SAMConnection::peek
  • SAMConnection::receive »
  • PHP Manual
  • SAM Функции
  • Read one or more messages from a queue without removing it from the queue.

SAMConnection::peekAll

(PECL sam >= 0.2.0)

SAMConnection::peekAll — Read one or more messages from a queue without removing it from the queue.

Описание

array SAMConnection::peekAll ( string $target [, array $properties ] )

Список параметров

target

The identity of the queue from which messages should be peeked.

properties

An optional associative array of properties describing other parameters to control the peek operation.

Property name | Possible values
SAM_CORRELID | This is the target correlation id string of messages to be peeked. This would typically have been returned by a "send" request.
SAM_MESSAGEID | This is the message id string of a message which is to be peeked.

Возвращаемые значения

This method returns an array of SAMMessage objects or FALSE if an error occurs.

Примеры

Пример #1 Retrieve all messages in a queue without removing them

<?php
$msgArray = $conn->peekAll('queue://receive/test');
if ($msgArray) {
   foreach ( $msgArray as $key => $msg) {
       echo "Message $key: body = $msg->body\n";
   }
} else {
   echo "PeekAll failed ($conn->errno) $conn->error";
}
?>

Пример #2 Retrieve all messages from a queue with a matching correlation id

<?php

   $msgArray = $conn->peekAll('queue://receive/test', array(SAM_CORRELID => $correlId ));
   if ($msgArray) {

      foreach ( $msgArray as $key => $msg) {
            echo "Message $key: body = $msg->body\n";
         }
   } else {
      echo "PeekAll failed ($conn->errno) $conn->error";
   }

?>

Смотрите также

  • SAMConnection::peek


Receive a message from a queue or subscription.

  • « SAMConnection::peekAll
  • SAMConnection::remove »
  • PHP Manual
  • SAM Функции
  • Receive a message from a queue or subscription.

SAMConnection::receive

(PECL sam >= 0.1.0)

SAMConnection::receive — Receive a message from a queue or subscription.

Описание

SAMMessage SAMConnection::receive ( string $target [, array $properties ] )

Список параметров

target

The identity of the queue, topic or subscription from which to receive the message.

properties

An optional associative array of properties describing other parameters to control the receive operation.

Property name | Possible values
SAM_CORRELID | Used to request selection of the message to receive based upon the correlation id string of the message.
SAM_MESSAGEID | Used to request selection of the message to receive based upon the message id string of the message.
SAM_WAIT | Timeout value in milliseconds to control how long the request should block waiting to receive a message before returning with a failure if no message is available on the queue or topic. The default value is 0 meaning wait indefinitely and should be used with caution as the request may wait until the overall PHP script processing time limit has expired if no message becomes available.

Возвращаемые значения

This method returns a SAMMessage object or FALSE if an error occurs.

Примеры

Пример #1 Receiving a message from a queue

<?php
$msg = $conn->receive('queue://receive/test');

if (!$msg) {
  // The receive failed!
  echo "Receive failed ($conn->errno) $conn->error";
}
?>

Пример #2 Receiving a message from a queue with options

In this example the SAM_CORRELID option is used to specify a correlation id string to be used to identify the message to receive. A wait timeout of 10 seconds is also specified.

<?php

$msg = $conn->receive('queue://receive/test', array(SAM_CORRELID => $token, SAM_WAIT => 10000));

?>

Пример #3 Receiving a message from a subscription

In this example we show how to receive a message from a subscription id.

<?php
$msg = $conn->receive($subscriptionName);

if (!$msg) {
  // The receive failed!
  echo "Receive failed ($conn->errno) $conn->error";
}
?>

Please note that $subscriptionName is a subscription id returned from an earlier subscribe call.

Смотрите также

  • SAMConnection::send


Remove a message from a queue.

  • « SAMConnection::receive
  • SAMConnection::rollback »
  • PHP Manual
  • SAM Функции
  • Remove a message from a queue.

SAMConnection::remove

(PECL sam >= 0.1.0)

SAMConnection::remove — Remove a message from a queue.

Описание

SAMMessage SAMConnection::remove ( string $target [, array $properties ] )

Removes a message from a queue.

Список параметров

target

The identity of the queue from which to remove the message.

properties

An optional associative array of properties describing other parameters to control the remove operation.

Property name | Possible values
SAM_CORRELID | This is the target correlation id string of the message. This would typically have been returned by a "send" request.
SAM_MESSAGEID | This is the message id string of the message which is to be removed.

Возвращаемые значения

This method returns FALSE if an error occurs.

Примеры

Пример #1 Removing a message from a queue by message id

<?php
if (!$conn->remove('queue://receive/test', array(SAM_MESSAGEID => $messageId))) {
  // The remove failed!
  echo "Remove failed ($conn->errno) $conn->error";
}
?>


Cancels (rolls back) an in-flight unit of work.

  • « SAMConnection::remove
  • SAMConnection::send »
  • PHP Manual
  • SAM Функции
  • Cancels (rolls back) an in-flight unit of work.

SAMConnection::rollback

(PECL sam >= 0.1.0)

SAMConnection::rollback — Cancels (rolls back) an in-flight unit of work.

Описание

bool SAMConnection::rollback ( void )

Rolls back an in-flight unit of work.

Возвращаемые значения

This method returns FALSE if an error occurs.

Примеры

Пример #1 Cancelling an in-flight unit of work

<?php
if (!$conn->rollback()) {
  // The rollback failed!
  echo "Rollback failed ($conn->errno) $conn->error";
}
?>

Смотрите также

  • SAMConnection::commit


Send a message to a queue or publish an item to a topic.

  • « SAMConnection::rollback
  • SAMConnection::setDebug »
  • PHP Manual
  • SAM Функции
  • Send a message to a queue or publish an item to a topic.

SAMConnection::send

(PECL sam >= 0.1.0)

SAMConnection::send — Send a message to a queue or publish an item to a topic.

Описание

string SAMConnection::send ( string $target , SAMMessage $msg [, array $properties ] )

The "send" method is used to send a message to a specific queue or to publish to a specific topic. The method returns a correlation id that can be used as a selector to identify reply or response messages when these are requested.

Список параметров

target

If sending a message, the identity of the queue (queue://queuename) or if publishing to a topic the identity of the topic (topic://topicname) to which the message is to be delivered.

msg

The message to be sent or published.

properties

An optional associative array of properties describing other parameters to control the receive operation.

Property name | Possible values
SAM_DELIVERYMODE | Indicates whether the messaging server should ensure delivery or whether it is acceptable for messages to be lost in the case of system failures. The value of this property may be set to either SAM_PERSISTENT, to indicate that message loss is not acceptable, or SAM_NON_PERSISTENT, if message loss is acceptable. The resulting behaviour of the send will vary depending on the capabilities of the messaging server the PHP script is currently connected to. If the server does not support persistent messages and SAM_PERSISTENT is specified the send request will fail with an error indication showing the capability is not available.
SAM_PRIORITY | A numeric value between 0 and 9 indicating the desired message delivery priority. A priority value of 0 indicates the lowest priority while 9 indicates highest priority. If no priority is specified a default will be assigned which is dependent on the messaging server being used.
SAM_CORRELID | A string to be assigned as a correlation id for this message. If no value is given the messaging server may assign a value automatically.
SAM_TIMETOLIVE | A time in milliseconds indicating how long the messaging server should retain the message on a queue before discarding it. The default value is 0 indicating the message should be retained indefinitely.
SAM_WMQ_TARGET_CLIENT | This property is only valid when using WebSphere MQ and indicates whether or not an RFH2 header should be included with the message. This option may be set to either 'jms' or 'mq'. The default is 'jms' which means that an RFH2 header is included. If the value 'mq' is specified then no RFH2 is included with the message.

Возвращаемые значения

A correlation id string that can be used in a subsequent receive call as a selector to obtain any reply or response that has been requested or FALSE if an error occurred.

Замечание:

A correlation id will only be returned for a successful send to a queue destination (queue://xxxx) in which case it will reflect the message identity of the message on the queue. In the case of a send being used to publish data to a topic the return value will be TRUE as no correlation id is available for return.

Примеры

Пример #1 Send a message to a queue

<?php
$msg = new SAMMessage('This is a simple text message');
$correlId = $conn->send('queue://send/test', $msg);
if (!$correlId) {
    // The send failed!
    echo "Send failed ($conn->errno) $conn->error";
}

?>

Пример #2 Publish a message to a topic

<?php
$msg = new SAMMessage('This is a simple text item');
if (!$conn->send('topic://test', $msg)) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
}
?>

Пример #3 Send a request and receive a response

<?php
$msg = new SAMMessage('This is a simple text message');
$msg->header->SAM_REPLY_TO = 'queue://receive/test';
$correlid = $conn->send('queue://send/test', $msg);

if (!$correlid) {
    // The Send failed!
    echo "Send failed ($conn->errno) $conn->error";
} else {
    $resp = $conn->receive('queue://receive/test', array(SAM_CORRELID => $correlid));
}
?>

Смотрите также

  • SAMConnection::receive


Turn on or off additional debugging output.

  • « SAMConnection::send
  • SAMConnection::subscribe »
  • PHP Manual
  • SAM Функции
  • Turn on or off additional debugging output.

SAMConnection::setDebug

(PECL sam >= 1.1.0)

SAMConnection::setDebug — Turn on or off additional debugging output.

Описание

The "setdebug" method is used to turn on or off additional debugging output. The SAM framework will provide method/function entry and exit trace data plus additional information. Protocol specific implementations also provide extra output.

void SAMConnection::setDebug ( bool $switch )

Список параметров

switch

If this parameter is set to TRUE additional debugging output will be provided. If the value is set to FALSE output of additional information will be stopped.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Turn on debugging output

<?php
$conn->setdebug(TRUE);
?>

Пример #2 Turn off debugging output

<?php
$conn->setdebug(FALSE);
?>


Create a subscription to a specified topic.

  • « SAMConnection::setDebug
  • SAMConnection::unsubscribe »
  • PHP Manual
  • SAM Функции
  • Create a subscription to a specified topic.

SAMConnection::subscribe

(PECL sam >= 0.1.0)

SAMConnection::subscribe — Create a subscription to a specified topic.

Описание

string SAMConnection::subscribe ( string $targetTopic )

The "subscribe" method is used to create a new subscription to a specified topic.

Список параметров

targetTopic

The identity of the topic (topic://topicname) to subscribe to.

Возвращаемые значения

A subscription identifier that can be used in a subsequent receive call as a selector to obtain any topic data or FALSE if an error occurred. The subscription identifier should be used in the receive call in place of the simple topic name.

Примеры

Пример #1 Subscribe to a topic

<?php
$subid = $conn->subscribe('topic://A');
if (!$subid) {
  // The subscribe failed!
  echo "Subscribe failed ($conn->errno) $conn->error";
}
?>

Смотрите также

  • SAMConnection::unsubscribe


Cancel a subscription to a specified topic.

  • « SAMConnection::subscribe
  • SAMMessage::body »
  • PHP Manual
  • SAM Функции
  • Cancel a subscription to a specified topic.

SAMConnection::unsubscribe

(PECL sam >= 0.1.0)

SAMConnection::unsubscribe — Cancel a subscription to a specified topic.

Описание

bool SAMConnection::unsubscribe ( string $subscriptionId [, string $targetTopic ] )

The "unsubscribe" method is used to delete an existing subscription to a specified topic.

Список параметров

subscriptionId

The identifier of an existing subscription as returned by a call to the subscribe method.

Возвращаемые значения

This method returns FALSE if an error occurs.

Примеры

Пример #1 Delete a subscription

<?php
if (!$conn->unsubscribe($subid)) {
    // The unsubscribe failed!
    echo "Unsubscribe failed ($conn->errno) $conn->error";
}
?>

Смотрите также

  • SAMConnection::subscribe


The body of the message.

  • « SAMConnection::unsubscribe
  • SAMMessage::__construct »
  • PHP Manual
  • SAM Функции
  • The body of the message.

SAMMessage::body

(PECL sam >= 0.1.0)

SAMMessage::body — The body of the message.

Описание

string $SAMMessage->body;

The "body" property contains the actual body of the message. It may not always be set.

Примеры

Пример #1 Setting a text string into the body of a message

<?php
$msg = new SAMMessage();
$msg->body = 'This is a simple message';

?>

Смотрите также

  • SAMMessage::header


Creates a new Message object

  • « SAMMessage::body
  • SAMMessage::header »
  • PHP Manual
  • SAM Функции
  • Creates a new Message object

SAMMessage::__construct

(PECL sam >= 0.1.0)

SAMMessage::__construct — Creates a new Message object

Описание

SAMMessage::__construct ([ mixed $body ] )

Creates a new SAMMessage object optionally specifying a message body.

Список параметров

body

The optional body for the message.

Примеры

Пример #1 Creating a message

<?php

$msg = new SAMMessage();

?>

Пример #2 Creating a message with a simple text payload

<?php

$msg = new SAMMessage('This is a simple text message');

?>


The header properties of the message.

  • « SAMMessage::__construct
  • SNMP »
  • PHP Manual
  • SAM Функции
  • The header properties of the message.

SAMMessage::header

(PECL sam >= 0.1.0)

SAMMessage::header — The header properties of the message.

Описание

object $SAMMessage->header;

The header property is a container for any system or user properties that area associated with the message.

Properties may be assigned by the sender of a message to control the way the messaging systems handles it or may be assigned by the messaging system itself to tell the recipient extra information about the message or the way in which it has been handled.

Some properties are understood by SAM in which case constants have been defined for them. The majority of properties however are ignored by the SAM implementation and simply passed through to the underlying messaging systems allowing the application to use messaging specific property names or to define its own "user" properties.

The SAM defined properties are as follows:

Property name | Possible values
SAM_MESSAGEID | When a message is received this field contains the unique identifier of the message as allocated by the underlying messaging system. When sending a message this field is ignored.
SAM_REPLY_TO | A string providing the identity of the queue on to which responses to this message should be posted.
SAM_TYPE

An indication of the type of message to be sent. The value may be SAM_TEXT indicating the contents of the message body is a text string, or SAM_BYTES indicating the contents of the message body are some application defined format.

The way in which this property is used may depend on the underlying messaging server. For instance a messaging server that supports the JMS (Java Message Service) specification may interpret this value and send messages of type "jms_text" and "jms_bytes". In addition, if the SAM_TYPE property is set to SAM_TEXT the data provided for the message body is expected to be a UTF8 encoded string.

When setting the values of properties it is often useful to give a hint as to the format in which the property should be delivered to the messaging system. By default property values are delivered as text and the following simple syntax may be used to set a value:

Пример #1 Setting a text format property using the default syntax

<?php
$msg = new SAMMessage();

$msg->header->myPropertyName = 'textData';
?>

If it is desired to pass type information an alternative syntax may be used where the value and the type hint are passed in an associative array:

Пример #2 Setting a text format property using a type hint

<?php
$msg = new SAMMessage();

$msg->header->myPropertyName = array('textData', SAM_STRING);
?>

When passing a type hint the type entry should be one of the SAM defined constant values as defined by the following table:

Constant | Type description
SAM_BOOLEAN | Any value passed will be interpreted as logical true or false. If the value cannot be interpreted as a PHP boolean value the value passed to the messaging system is undefined.
SAM_BYTE | An 8-bit signed integer value. SAM will attempt to convert the property value specified into a single byte value to pass to the messaging system. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the numeric value cannot be expressed as an 8-bit signed binary value data may be lost in the conversion.
SAM_DOUBLE | A long floating point value. SAM will attempt to convert the property value specified into a floating point value with 15 digits of precision. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the passed value cannot be expressed as a 15 digit floating point value data may be lost in the conversion.
SAM_FLOAT | A short floating point value. SAM will attempt to convert the property value specified into a floating point value with 7 digits of precision. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the passed value cannot be expressed as a 7 digit floating point value data may be lost in the conversion.
SAM_INT | An 32-bit signed integer value. SAM will attempt to convert the property value specified into a 32-bit value to pass to the messaging system. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the numeric value cannot be expressed as an 32-bit signed binary value data may be lost in the conversion.
SAM_LONG | An 64-bit signed integer value. SAM will attempt to convert the property value specified into a 64-bit value to pass to the messaging system. If a string value is passed an attempt will be made to interpret the string as a numeric value. If the numeric value cannot be expressed as an 64-bit signed binary value data may be lost in the conversion.
SAM_STRING | SAM will interpret the property value specified as a string and pass it to the messaging system accordingly.

Примеры

Пример #3 Setting properties as the sender of a message

<?php
$msg = new SAMMessage('This is a test message');

// defining SAM specific properties...
$msg->header->SAM_REPLY_TO = 'queue://test/replyQueue';

// defining arbitrary properties...
//
// a default string property
$msg->header->myStringProp1 = 'a string property';
// a string property with a type hint
$msg->header->myStringProp2 = array('another string property', SAM_STRING);

// a boolean property
$msg->header->myBoolProp = array(FALSE, SAM_BOOL);

// numeric format properties
$msg->header->myIntProp = array(32768, SAM_INT);
$msg->header->myLongProp = array(9876543, SAM_LONG);
$msg->header->myByteProp1 = array(123, SAM_BYTE);
$msg->header->myByteProp2 = array('12', SAM_BYTE);
$msg->header->myFloatProp = array(3.141592, SAM_FLOAT);
$msg->header->myDoubleProp = array(3.14159265358979, SAM_DOUBLE);
?>

Пример #4 Retreiving property values from a message

<?php

// accessing an application specific property
$intProp = $msg->header->MyIntProp;

// accessing a messaging system specific property
$encoding = $msg->header->JMS_IBM_Msgtype;

?>

Смотрите также

  • SAMMessage::body


SNMP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • SNMP Функции
    • snmp_get_quick_print — Fetches the current value of the UCD library's quick_print setting
    • snmp_get_valueretrieval — Return the method how the SNMP values will be returned
    • snmp_read_mib — Reads and parses a MIB file into the active MIB tree
    • snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer
    • snmp_set_oid_numeric_print — Set the OID output format
    • snmp_set_oid_output_format — Set the OID output format
    • snmp_set_quick_print — Set the value of quick_print within the UCD SNMP library
    • snmp_set_valueretrieval — Specify the method how the SNMP values will be returned
    • snmp2_get — Fetch an SNMP object
    • snmp2_getnext — Fetch the SNMP object which follows the given object id
    • snmp2_real_walk — Return all objects including their respective object ID within the specified one
    • snmp2_set — Set the value of an SNMP object
    • snmp2_walk — Fetch all the SNMP objects from an agent
    • snmp3_get — Fetch an SNMP object
    • snmp3_getnext — Fetch the SNMP object which follows the given object id
    • snmp3_real_walk — Return all objects including their respective object ID within the specified one
    • snmp3_set — Set the value of an SNMP object
    • snmp3_walk — Fetch all the SNMP objects from an agent
    • snmpget — Fetch an SNMP object
    • snmpgetnext — Fetch the SNMP object which follows the given object id
    • snmprealwalk — Return all objects including their respective object ID within the specified one
    • snmpset — Set the value of an SNMP object
    • snmpwalk — Fetch all the SNMP objects from an agent
    • snmpwalkoid — Query for a tree of information about a network entity
  • SNMP — The SNMP class
    • SNMP::close — Close SNMP session
    • SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent
    • SNMP::get — Fetch an SNMP object
    • SNMP::getErrno — Get last error code
    • SNMP::getError — Get last error message
    • SNMP::getnext — Fetch an SNMP object which follows the given object id
    • SNMP::set — Set the value of an SNMP object
    • SNMP::setSecurity — Configures security-related SNMPv3 session parameters
    • SNMP::walk — Fetch SNMP object subtree
  • SNMPException — The SNMPException class


Введение

Расширение SNMP предоставляет простой и удобный набор инструментов для управления удаленными устройствами через Simple Network Management Protocol (простой протокол управления сетями).

Так как данное расширение является оберткой над библиотекой Net-SNMP (или UCD-SNMP на старых системах), все основные концепции идентичны и функции PHP меняют их поведение в зависимости от конфигурации Net-SNMP и переменных среды.

Начиная с версии PHP 5.4, доступен как OpenOffice API.

Больше информации о Net-SNMP можно найти по адресу » http://www.net-snmp.org/.


Требования

Чтобы использовать функции SNMP в Unix необходимо установить пакет » Net-SNMP. Функции SNMPv3 доступны только тогда, когда установлен пакет » OpenSSL.

Для Windows, функции SNMP доступны только в NT и не поддерживаются в Win95/98.

Начиная с версии PHP 5.4.0 для установки на Unix-системах необходим пакет Net-SNMP версии 5.3+, а для установки на Windows-системах необходим пакет Net-SNMP версии 5.4+.


Установка

PHP 5.3.0, 5.3.1 and 5.3.2 do not have SNMP support. SNMP support has been restored in PHP 5.3.3.

The Windows distribution of Net-SNMP contains support files for SNMP in the mibs directory. This directory should added to Windows' environment variables, as MIBDIRS, with the value being the full path to the mibs directory: e.g. c:\usr\mibs.

Important notes for PHP prior to 5.4.0: In order to use the UCD SNMP package, you need to define NO_ZEROLENGTH_COMMUNITY to 1 before compiling it. After configuring UCD SNMP, edit config.h or acconfig.h and search for NO_ZEROLENGTH_COMMUNITY. Uncomment the #define line. It should look like this afterwards:

#define NO_ZEROLENGTH_COMMUNITY 1
Now compile PHP --with-snmp[=DIR] .

If you see strange segmentation faults in combination with SNMP commands, you did not follow the above instructions. If you do not want to recompile UCD SNMP, you can compile PHP with the --enable-ucd-snmp-hack switch which will work around the misfeature.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

For the snmp_set_oid_output_format()
SNMP_OID_OUTPUT_SUFFIX (integer)
As of 5.4.0
SNMP_OID_OUTPUT_MODULE (integer)
As of 5.4.0
SNMP_OID_OUTPUT_FULL (integer)
As of 5.2.0
SNMP_OID_OUTPUT_NUMERIC (integer)
As of 5.2.0
SNMP_OID_OUTPUT_UCD (integer)
As of 5.4.0
SNMP_OID_OUTPUT_NONE (integer)
As of 5.4.0
For the snmp_set_valueretrieval()
SNMP_VALUE_LIBRARY (integer)
SNMP_VALUE_PLAIN (integer)
SNMP_VALUE_OBJECT (integer)
SNMP types as returned if SNMP_VALUE_OBJECT was used with snmp_set_valueretrieval()
SNMP_BIT_STR (integer)
SNMP_OCTET_STR (integer)
SNMP_OPAQUE (integer)
SNMP_NULL (integer)
SNMP_OBJECT_ID (integer)
SNMP_IPADDRESS (integer)
SNMP_COUNTER (integer)
SNMP_UNSIGNED (integer)
SNMP_TIMETICKS (integer)
SNMP_UINTEGER (integer)
SNMP_INTEGER (integer)
SNMP_COUNTER64 (integer)


SNMP Функции

Содержание

  • snmp_get_quick_print — Fetches the current value of the UCD library's quick_print setting
  • snmp_get_valueretrieval — Return the method how the SNMP values will be returned
  • snmp_read_mib — Reads and parses a MIB file into the active MIB tree
  • snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer
  • snmp_set_oid_numeric_print — Set the OID output format
  • snmp_set_oid_output_format — Set the OID output format
  • snmp_set_quick_print — Set the value of quick_print within the UCD SNMP library
  • snmp_set_valueretrieval — Specify the method how the SNMP values will be returned
  • snmp2_get — Fetch an SNMP object
  • snmp2_getnext — Fetch the SNMP object which follows the given object id
  • snmp2_real_walk — Return all objects including their respective object ID within the specified one
  • snmp2_set — Set the value of an SNMP object
  • snmp2_walk — Fetch all the SNMP objects from an agent
  • snmp3_get — Fetch an SNMP object
  • snmp3_getnext — Fetch the SNMP object which follows the given object id
  • snmp3_real_walk — Return all objects including their respective object ID within the specified one
  • snmp3_set — Set the value of an SNMP object
  • snmp3_walk — Fetch all the SNMP objects from an agent
  • snmpget — Fetch an SNMP object
  • snmpgetnext — Fetch the SNMP object which follows the given object id
  • snmprealwalk — Return all objects including their respective object ID within the specified one
  • snmpset — Set the value of an SNMP object
  • snmpwalk — Fetch all the SNMP objects from an agent
  • snmpwalkoid — Query for a tree of information about a network entity


Fetches the current value of the UCD library's quick_print setting

  • « SNMP Функции
  • snmp_get_valueretrieval »
  • PHP Manual
  • SNMP Функции
  • Fetches the current value of the UCD library's quick_print setting

snmp_get_quick_print

(PHP 4, PHP 5, PHP 7)

snmp_get_quick_print — Fetches the current value of the UCD library's quick_print setting

Описание

bool snmp_get_quick_print ( void )

Returns the current value stored in the UCD Library for quick_print. quick_print is off by default.

Возвращаемые значения

Returns TRUE if quick_print is on, FALSE otherwise.

Примеры

Пример #1 snmp_get_quick_print() example

<?php
$quickprint = snmp_get_quick_print();
?>

Смотрите также

  • snmp_set_quick_print() - Set the value of quick_print within the UCD SNMP library for a full description of what quick_print does.


Return the method how the SNMP values will be returned

  • « snmp_get_quick_print
  • snmp_read_mib »
  • PHP Manual
  • SNMP Функции
  • Return the method how the SNMP values will be returned

snmp_get_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

snmp_get_valueretrieval — Return the method how the SNMP values will be returned

Описание

int snmp_get_valueretrieval ( void )

Возвращаемые значения

OR-ed combitantion of constants ( SNMP_VALUE_LIBRARY or SNMP_VALUE_PLAIN ) with possible SNMP_VALUE_OBJECT set.

Примеры

Пример #1 Using snmp_get_valueretrieval

<?php
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 if (snmp_get_valueretrieval() & SNMP_VALUE_OBJECT) {
   echo $ret->value;
 } else {
   echo $ret;
 }
?>

Смотрите также

  • snmp_set_valueretrieval() - Specify the method how the SNMP values will be returned
  • Предопределенные константы


Reads and parses a MIB file into the active MIB tree

  • « snmp_get_valueretrieval
  • snmp_set_enum_print »
  • PHP Manual
  • SNMP Функции
  • Reads and parses a MIB file into the active MIB tree

snmp_read_mib

(PHP 5, PHP 7)

snmp_read_mib — Reads and parses a MIB file into the active MIB tree

Описание

bool snmp_read_mib ( string $filename )

This function is used to load additional, e.g. vendor specific, MIBs so that human readable OIDs like VENDOR-MIB::foo.1 instead of error prone numeric OIDs can be used.

The order in which the MIBs are loaded does matter as the underlying Net-SNMP libary will print warnings if referenced objects cannot be resolved.

Список параметров

filename

The filename of the MIB.

Примеры

Пример #1 Using snmp_read_mib()

<?php
 print_r( snmprealwalk('localhost', 'public', '.1.3.6.1.2.1.2.3.4.5') );

 snmp_read_mib('./FOO-BAR-MIB.txt');
 print_r( snmprealwalk('localhost', 'public', 'FOO-BAR-MIB::someTable' );
?>

The above example is made up but the results would look like:

Array
(
    [iso.3.6.1.2.1.2.3.4.5.0] => Gauge32: 6
)
Array
(
    [FOO-BAR-MIB::someTable.0] => Gauge32: 6
)


Return all values that are enums with their enum value instead of the raw integer

  • « snmp_read_mib
  • snmp_set_oid_numeric_print »
  • PHP Manual
  • SNMP Функции
  • Return all values that are enums with their enum value instead of the raw integer

snmp_set_enum_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

snmp_set_enum_print — Return all values that are enums with their enum value instead of the raw integer

Описание

bool snmp_set_enum_print ( int $enum_print )

This function toggles if snmpwalk/snmpget etc. should automatically lookup enum values in the MIB and return them together with their human readable string.

Список параметров

enum_print

As the value is interpreted as boolean by the Net-SNMP library, it can only be "0" or "1".

Примеры

Пример #1 Using snmp_set_enum_print()

<?php
 snmp_set_enum_print(0);
 echo snmpget('localhost', 'public', 'IF-MIB::ifOperStatus.3') . "\n";
 snmp_set_enum_print(1);
 echo snmpget('localhost', 'public', 'IF-MIB::ifOperStatus.3') . "\n";
?>

The above would return

 INTEGER: up(1)
 INTEGER: 1

Примечания

Замечание:

snmp_set_enum_print() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.


Set the OID output format

  • « snmp_set_enum_print
  • snmp_set_oid_output_format »
  • PHP Manual
  • SNMP Функции
  • Set the OID output format

snmp_set_oid_numeric_print

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

snmp_set_oid_numeric_print — Set the OID output format

Описание

void snmp_set_oid_numeric_print ( int $oid_format )

Эта функция является псевдонимом: snmp_set_oid_output_format().

Список изменений

Версия | Описание
5.2.0 | Since PHP 5.2.0.

Смотрите также

  • snmp_set_oid_output_format() - Set the OID output format


Set the OID output format

  • « snmp_set_oid_numeric_print
  • snmp_set_quick_print »
  • PHP Manual
  • SNMP Функции
  • Set the OID output format

snmp_set_oid_output_format

(PHP 5 >= 5.2.0, PHP 7)

snmp_set_oid_output_format — Set the OID output format

Описание

bool snmp_set_oid_output_format ( int $oid_format = SNMP_OID_OUTPUT_MODULE )

snmp_set_oid_output_format() sets the output format to be full or numeric.

Список параметров

oid_format
OID .1.3.6.1.2.1.1.3.0 representation for various oid_format values
SNMP_OID_OUTPUT_FULL | .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NUMERIC | .1.3.6.1.2.1.1.3.0

Begining from PHP 5.4.0 four additional constants available:

SNMP_OID_OUTPUT_MODULE | DISMAN-EVENT-MIB::sysUpTimeInstance
SNMP_OID_OUTPUT_SUFFIX | sysUpTimeInstance
SNMP_OID_OUTPUT_UCD | system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NONE | Undefined

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

snmp_set_oid_output_format() is only available when using the UCD SNMP library. This function is not available when using the Windows SNMP library.

Примеры

Пример #1 Using snmprealwalk()

<?php

 snmp_read_mib("/usr/share/mibs/netsnmp/NET-SNMP-TC");

 // default or SNMP_OID_OUTPUT_MODULE in PHP >= 5.3.6
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );

 snmp_set_oid_output_format(SNMP_OID_OUTPUT_NUMERIC);
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );

 snmp_set_oid_output_format(SNMP_OID_OUTPUT_FULL);
 print_r( snmprealwalk('localhost', 'public', 'RFC1213-MIB::sysObjectID') );
?>

The above would output:

 Array
 (
    [RFC1213-MIB::sysObjectID.0] => OID: NET-SNMP-TC::linux
 )
 Array
 (
    [.1.3.6.1.2.1.1.2.0] => OID: .1.3.6.1.4.1.8072.3.2.10
 )
 Array
 (
    [.iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0] => OID: .iso.org.dod.internet.private.enterprises.netSnmp.netSnmpEnumerations.netSnmpAgentOIDs.linux
 )


Set the value of quick_print within the UCD SNMP library

  • « snmp_set_oid_output_format
  • snmp_set_valueretrieval »
  • PHP Manual
  • SNMP Функции
  • Set the value of quick_print within the UCD SNMP library

snmp_set_quick_print

(PHP 4, PHP 5, PHP 7)

snmp_set_quick_print — Set the value of quick_print within the UCD SNMP library

Описание

bool snmp_set_quick_print ( bool $quick_print )

Sets the value of quick_print within the UCD SNMP library. When this is set (1), the SNMP library will return 'quick printed' values. This means that just the value will be printed. When quick_print is not enabled (default) the UCD SNMP library prints extra information including the type of the value (i.e. IpAddress or OID). Additionally, if quick_print is not enabled, the library prints additional hex values for all strings of three characters or less.

By default the UCD SNMP library returns verbose values, quick_print is used to return only the value.

Currently strings are still returned with extra quotes, this will be corrected in a later release.

Список параметров

quick_print

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Setting quick_print is often used when using the information returned rather than displaying it.

Пример #1 Using snmp_set_quick_print()

<?php
snmp_set_quick_print(0);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a\n";
snmp_set_quick_print(1);
$a = snmpget("127.0.0.1", "public", ".1.3.6.1.2.1.2.2.1.9.1");
echo "$a\n";
?>

Результатом выполнения данного примера будет что-то подобное:

'Timeticks: (0) 0:00:00.00'
'0:00:00.00'

Смотрите также

  • snmp_get_quick_print() - Fetches the current value of the UCD library's quick_print setting


Specify the method how the SNMP values will be returned

  • « snmp_set_quick_print
  • snmp2_get »
  • PHP Manual
  • SNMP Функции
  • Specify the method how the SNMP values will be returned

snmp_set_valueretrieval

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

snmp_set_valueretrieval — Specify the method how the SNMP values will be returned

Описание

bool snmp_set_valueretrieval ( int $method = SNMP_VALUE_LIBRARY )

Список параметров

method
types
SNMP_VALUE_LIBRARY | The return values will be as returned by the Net-SNMP library.
SNMP_VALUE_PLAIN | The return values will be the plain value without the SNMP type hint.
SNMP_VALUE_OBJECT | The return values will be objects with the properties "value" and "type", where the latter is one of the SNMP_OCTET_STR, SNMP_COUNTER etc. constants. The way "value" is returned is based on which one of constants SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN is set.

Примеры

Пример #1 Using snmp_set_valueretrieval()

<?php
 snmp_set_valueretrieval(SNMP_VALUE_LIBRARY);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // $ret = "STRING: lo"

 snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // $ret = "lo";

 snmp_set_valueretrieval(SNMP_VALUE_OBJECT);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, see constants
 //   [value] => lo
 // )

 // PHP 5.4+ examples
 snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_PLAIN);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, see constants
 //   [value] => lo
 // )

 snmp_set_valueretrieval(SNMP_VALUE_OBJECT | SNMP_VALUE_LIBRARY);
 $ret = snmpget('localhost', 'public', 'IF-MIB::ifName.1');
 // stdClass Object
 // (
 //   [type] => 4        <-- SNMP_OCTET_STR, see constants
 //   [value] => STRING: lo
 // )

?>

Список изменений

Версия | Описание
5.4.0 | Constants SNMP_VALUE_PLAIN or SNMP_VALUE_LIBRARY may be combined with SNMP_VALUE_OBJECT resulting different way of representing contents of value array element in return value of GET-function. If no SNMP_VALUE_{PLAIN,LIBRARY} constant is accompanying SNMP_VALUE_OBJECT, SNMP_VALUE_LIBRARY is used. Prior to 5.4.0 SNMP_VALUE_OBJECT effecively meant SNMP_VALUE_OBJECT|SNMP_VALUE_PLAIN.

Смотрите также

  • snmp_get_valueretrieval() - Return the method how the SNMP values will be returned
  • Предопределенные константы


Fetch an SNMP object

  • « snmp_set_valueretrieval
  • snmp2_getnext »
  • PHP Manual
  • SNMP Функции
  • Fetch an SNMP object

snmp2_get

(PHP 5 >= 5.2.0, PHP 7)

snmp2_get — Fetch an SNMP object

Описание

string snmp2_get ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

The snmp2_get() function is used to read the value of an SNMP object specified by the object_id.

Список параметров

host

The SNMP agent.

community

The read community.

object_id

The SNMP object.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error.

Примеры

Пример #1 Using snmp2_get()

<?php
$syscontact = snmp2_get("127.0.0.1", "public", "system.SysContact.0");
?>

Смотрите также

  • snmp2_set() - Set the value of an SNMP object


Fetch the SNMP object which follows the given object id

  • « snmp2_get
  • snmp2_real_walk »
  • PHP Manual
  • SNMP Функции
  • Fetch the SNMP object which follows the given object id

snmp2_getnext

(PHP >= 5.2.0)

snmp2_getnext — Fetch the SNMP object which follows the given object id

Описание

string snmp2_getnext ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

The snmp2_get_next() function is used to read the value of the SNMP object that follows the specified object_id.

Список параметров

host

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmp2_get_next()

<?php
$nameOfSecondInterface = snmp2_get_next('localhost', 'public', 'IF-MIB::ifName.1';
?>

Смотрите также

  • snmp2_get() - Fetch an SNMP object
  • snmp2_walk() - Fetch all the SNMP objects from an agent


Return all objects including their respective object ID within the specified one

  • « snmp2_getnext
  • snmp2_set »
  • PHP Manual
  • SNMP Функции
  • Return all objects including their respective object ID within the specified one

snmp2_real_walk

(PHP >= 5.2.0)

snmp2_real_walk — Return all objects including their respective object ID within the specified one

Описание

array snmp2_real_walk ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

The snmp2_real_walk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Список параметров

host

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an associative array of the SNMP object ids and their values on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmp2_real_walk()

<?php
 print_r(snmp2_real_walk("localhost", "public", "IF-MIB::ifName"));
?>

The above will output something like:

    Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Смотрите также

  • snmp2_walk() - Fetch all the SNMP objects from an agent


Set the value of an SNMP object

  • « snmp2_real_walk
  • snmp2_walk »
  • PHP Manual
  • SNMP Функции
  • Set the value of an SNMP object

snmp2_set

(PHP >= 5.2.0)

snmp2_set — Set the value of an SNMP object

Описание

bool snmp2_set ( string $host , string $community , string $object_id , string $type , string $value [, string $timeout = 1000000 [, string $retries = 5 ]] )

snmp2_set() is used to set the value of an SNMP object specified by the object_id.

Список параметров

host

The hostname of the SNMP agent (server).

community

The write community.

object_id

The SNMP object id.

type

MIB указывает тип идентификатора каждого объекта. Он должен быть указан в виде одного символа из следующего списка.

types
= Тип, принимаемый MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Если при компиляции библиотеки SNMP была определена опция OPAQUE_SPECIAL_TYPES, то также могут быть использованы следующие типы:

types
U | unsigned int64
I | signed int64
F | float
D | double

Большинство этих значений используют очевидный тип ASN.1. 's', 'x', 'd' и 'b' - это все разные способы указания значения OCTET STRING, а беззнаковый тип 'u' также используется для обработки значений Gauge32.

Если MIB-файлы были загружены в MIB-дерево с помощью "snmp_read_mib" или были указаны в конфигурационном файле libsnmp, то для указания параметра type можно использовать нотацию '=', т.к. тип всех идентификаторов объектов будет автоматически считан из MIB.

Обратите внимание, что есть два способа установить переменную типа BITS, например, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • С помощью типа "b" и списка битовых чисел. Не рекомендуется использовать этот метод, т.к. GET-запрос для того же OID вернет, к примеру, 0xF8.
  • С помощью типа "x" и шестнадцатеричного числа, но без(!) обычного префикса "0x".

Подробнее смотрите в разделе с примерами.

value

The new value.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".

Примеры

Пример #1 Using snmp2_set()

<?php
  snmp2_set("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Пример #2 Using snmp2_set() for setting BITS SNMP object id

<?php
  snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmp2_set("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Смотрите также

  • snmp2_get() - Fetch an SNMP object


Fetch all the SNMP objects from an agent

  • « snmp2_set
  • snmp3_get »
  • PHP Manual
  • SNMP Функции
  • Fetch all the SNMP objects from an agent

snmp2_walk

(PHP >= 5.2.0)

snmp2_walk — Fetch all the SNMP objects from an agent

Описание

array snmp2_walk ( string $host , string $community , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

snmp2_walk() function is used to read all the values from an SNMP agent specified by the hostname.

Список параметров

host

The SNMP agent (server).

community

The read community.

object_id

If NULL, object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array.

If object_id is specified, all the SNMP objects below that object_id are returned.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an array of SNMP object values starting from the object_id as root or FALSE on error.

Примеры

Пример #1 snm2_pwalk() Example

<?php
$a = snmp2_walk("127.0.0.1", "public", "");

foreach ($a as $val) {
    echo "$val\n";
}

?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

Смотрите также

  • snmp2_real_walk() - Return all objects including their respective object ID within the specified one


Fetch an SNMP object

  • « snmp2_walk
  • snmp3_getnext »
  • PHP Manual
  • SNMP Функции
  • Fetch an SNMP object

snmp3_get

(PHP 4, PHP 5, PHP 7)

snmp3_get — Fetch an SNMP object

Описание

string snmp3_get ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

The snmp3_get() function is used to read the value of an SNMP object specified by the object_id.

Список параметров

host

The hostname of the SNMP agent (server).

sec_name

the security name, usually some kind of username

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error.

Примеры

Пример #1 Using snmp3_get()

<?php
$nameOfSecondInterface = snmp3_get('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.2');
?>

Смотрите также

  • snmp3_set() - Set the value of an SNMP object


Fetch the SNMP object which follows the given object id

  • « snmp3_get
  • snmp3_real_walk »
  • PHP Manual
  • SNMP Функции
  • Fetch the SNMP object which follows the given object id

snmp3_getnext

(PHP 5, PHP 7)

snmp3_getnext — Fetch the SNMP object which follows the given object id

Описание

string snmp3_getnext ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

The snmp3_getnext() function is used to read the value of the SNMP object that follows the specified object_id.

Список параметров

host

The hostname of the SNMP agent (server).

sec_name

the security name, usually some kind of username

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmp3_getnext()

<?php
$nameOfSecondInterface = snmp3_getnext('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName.1');
?>

Смотрите также

  • snmp3_get() - Fetch an SNMP object
  • snmp3_walk() - Fetch all the SNMP objects from an agent


Return all objects including their respective object ID within the specified one

  • « snmp3_getnext
  • snmp3_set »
  • PHP Manual
  • SNMP Функции
  • Return all objects including their respective object ID within the specified one

snmp3_real_walk

(PHP 4, PHP 5, PHP 7)

snmp3_real_walk — Return all objects including their respective object ID within the specified one

Описание

array snmp3_real_walk ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

The snmp3_real_walk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Список параметров

host

The hostname of the SNMP agent (server).

sec_name

the security name, usually some kind of username

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

object_id

The SNMP object id.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an associative array of the SNMP object ids and their values on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmp3_real_walk()

<?php
 var_export(snmp3_real_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName'));
?>

The above will output something like:

array (
  'IF-MIB::ifName.1' => 'STRING: lo',
  'IF-MIB::ifName.2' => 'STRING: eth0',
  'IF-MIB::ifName.3' => 'STRING: eth2',
  'IF-MIB::ifName.4' => 'STRING: sit0',
  'IF-MIB::ifName.5' => 'STRING: sixxs',
)

Смотрите также

  • snmpwalk() - Fetch all the SNMP objects from an agent


Set the value of an SNMP object

  • « snmp3_real_walk
  • snmp3_walk »
  • PHP Manual
  • SNMP Функции
  • Set the value of an SNMP object

snmp3_set

(PHP 4, PHP 5, PHP 7)

snmp3_set — Set the value of an SNMP object

Описание

bool snmp3_set ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id , string $type , string $value [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmp3_set() is used to set the value of an SNMP object specified by the object_id.

Even if the security level does not use an auth or priv protocol/password valid values have to be specified.

Список параметров

host

The hostname of the SNMP agent (server).

sec_name

the security name, usually some kind of username

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

object_id

The SNMP object id.

type

MIB указывает тип идентификатора каждого объекта. Он должен быть указан в виде одного символа из следующего списка.

types
= Тип, принимаемый MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Если при компиляции библиотеки SNMP была определена опция OPAQUE_SPECIAL_TYPES, то также могут быть использованы следующие типы:

types
U | unsigned int64
I | signed int64
F | float
D | double

Большинство этих значений используют очевидный тип ASN.1. 's', 'x', 'd' и 'b' - это все разные способы указания значения OCTET STRING, а беззнаковый тип 'u' также используется для обработки значений Gauge32.

Если MIB-файлы были загружены в MIB-дерево с помощью "snmp_read_mib" или были указаны в конфигурационном файле libsnmp, то для указания параметра type можно использовать нотацию '=', т.к. тип всех идентификаторов объектов будет автоматически считан из MIB.

Обратите внимание, что есть два способа установить переменную типа BITS, например, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • С помощью типа "b" и списка битовых чисел. Не рекомендуется использовать этот метод, т.к. GET-запрос для того же OID вернет, к примеру, 0xF8.
  • С помощью типа "x" и шестнадцатеричного числа, но без(!) обычного префикса "0x".

Подробнее смотрите в разделе с примерами.

value

The new value

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".

Примеры

Пример #1 Using snmp3_set()

<?php
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifAlias.3', 's', "foo");
?>

Пример #2 Using snmp3_set() for setting BITS SNMP object id

<?php
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmp3_set('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'FOO-MIB::bar.42', 'x', 'F0');
?>


Fetch all the SNMP objects from an agent

  • « snmp3_set
  • snmpget »
  • PHP Manual
  • SNMP Функции
  • Fetch all the SNMP objects from an agent

snmp3_walk

(PHP 4, PHP 5, PHP 7)

snmp3_walk — Fetch all the SNMP objects from an agent

Описание

array snmp3_walk ( string $host , string $sec_name , string $sec_level , string $auth_protocol , string $auth_passphrase , string $priv_protocol , string $priv_passphrase , string $object_id [, string $timeout = 1000000 [, string $retries = 5 ]] )

snmp3_walk() function is used to read all the values from an SNMP agent specified by the hostname.

Even if the security level does not use an auth or priv protocol/password valid values have to be specified.

Список параметров

host

The hostname of the SNMP agent (server).

sec_name

the security name, usually some kind of username

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

object_id

If NULL, object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array.

If object_id is specified, all the SNMP objects below that object_id are returned.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an array of SNMP object values starting from the object_id as root or FALSE on error.

Примеры

Пример #1 snmp3_walk() Example

<?php
$ret = snmp3_walk('localhost', 'james', 'authPriv', 'SHA', 'secret007', 'AES', 'secret007', 'IF-MIB::ifName');
var_export($ret);
?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost:

array (
  0 => 'STRING: lo',
  1 => 'STRING: eth0',
  2 => 'STRING: eth2',
  3 => 'STRING: sit0',
  4 => 'STRING: sixxs',
)

Смотрите также

  • snmp3_real_walk() - Return all objects including their respective object ID within the specified one


Fetch an SNMP object

  • « snmp3_walk
  • snmpgetnext »
  • PHP Manual
  • SNMP Функции
  • Fetch an SNMP object

snmpget

(PHP 4, PHP 5, PHP 7)

snmpget — Fetch an SNMP object

Описание

string snmpget ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

The snmpget() function is used to read the value of an SNMP object specified by the object_id.

Список параметров

hostname

The SNMP agent.

community

The read community.

object_id

The SNMP object.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error.

Примеры

Пример #1 Using snmpget()

<?php
$syscontact = snmpget("127.0.0.1", "public", "system.SysContact.0");
?>

Смотрите также

  • snmpset() - Set the value of an SNMP object


Fetch the SNMP object which follows the given object id

  • « snmpget
  • snmprealwalk »
  • PHP Manual
  • SNMP Функции
  • Fetch the SNMP object which follows the given object id

snmpgetnext

(PHP 5, PHP 7)

snmpgetnext — Fetch the SNMP object which follows the given object id

Описание

string snmpgetnext ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

The snmpgetnext() function is used to read the value of the SNMP object that follows the specified object_id.

Список параметров

host

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns SNMP object value on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmpgetnext()

<?php
$nameOfSecondInterface = snmpgetnetxt('localhost', 'public', 'IF-MIB::ifName.1';
?>

Смотрите также

  • snmpget() - Fetch an SNMP object
  • snmpwalk() - Fetch all the SNMP objects from an agent


Return all objects including their respective object ID within the specified one

  • « snmpgetnext
  • snmpset »
  • PHP Manual
  • SNMP Функции
  • Return all objects including their respective object ID within the specified one

snmprealwalk

(PHP 4, PHP 5, PHP 7)

snmprealwalk — Return all objects including their respective object ID within the specified one

Описание

array snmprealwalk ( string $host , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

The snmprealwalk() function is used to traverse over a number of SNMP objects starting from object_id and return not only their values but also their object ids.

Список параметров

host

The hostname of the SNMP agent (server).

community

The read community.

object_id

The SNMP object id which precedes the wanted one.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an associative array of the SNMP object ids and their values on success or FALSE on error. In case of an error, an E_WARNING message is shown.

Примеры

Пример #1 Using snmprealwalk()

<?php
 print_r(snmprealwalk("localhost", "public", "IF-MIB::ifName"));
?>

The above will output something like:

    Array
      (
      [IF-MIB::ifName.1] => STRING: lo
      [IF-MIB::ifName.2] => STRING: eth0
      [IF-MIB::ifName.3] => STRING: eth2
      [IF-MIB::ifName.4] => STRING: sit0
      [IF-MIB::ifName.5] => STRING: sixxs
    )

Смотрите также

  • snmpwalk() - Fetch all the SNMP objects from an agent


Set the value of an SNMP object

  • « snmprealwalk
  • snmpwalk »
  • PHP Manual
  • SNMP Функции
  • Set the value of an SNMP object

snmpset

(PHP 4, PHP 5, PHP 7)

snmpset — Set the value of an SNMP object

Описание

bool snmpset ( string $host , string $community , string $object_id , string $type , mixed $value [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmpset() is used to set the value of an SNMP object specified by the object_id.

Список параметров

host

The hostname of the SNMP agent (server).

community

The write community.

object_id

The SNMP object id.

type

MIB указывает тип идентификатора каждого объекта. Он должен быть указан в виде одного символа из следующего списка.

types
= Тип, принимаемый MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Если при компиляции библиотеки SNMP была определена опция OPAQUE_SPECIAL_TYPES, то также могут быть использованы следующие типы:

types
U | unsigned int64
I | signed int64
F | float
D | double

Большинство этих значений используют очевидный тип ASN.1. 's', 'x', 'd' и 'b' - это все разные способы указания значения OCTET STRING, а беззнаковый тип 'u' также используется для обработки значений Gauge32.

Если MIB-файлы были загружены в MIB-дерево с помощью "snmp_read_mib" или были указаны в конфигурационном файле libsnmp, то для указания параметра type можно использовать нотацию '=', т.к. тип всех идентификаторов объектов будет автоматически считан из MIB.

Обратите внимание, что есть два способа установить переменную типа BITS, например, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • С помощью типа "b" и списка битовых чисел. Не рекомендуется использовать этот метод, т.к. GET-запрос для того же OID вернет, к примеру, 0xF8.
  • С помощью типа "x" и шестнадцатеричного числа, но без(!) обычного префикса "0x".

Подробнее смотрите в разделе с примерами.

value

The new value.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown. If an unknown or invalid OID is specified the warning probably reads "Could not add variable".

Примеры

Пример #1 Using snmpset()

<?php
  snmpset("localhost", "public", "IF-MIB::ifAlias.3", "s", "foo");
?>

Пример #2 Using snmpset() for setting BITS SNMP object id

<?php
  snmpset("localhost", "public", 'FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  snmpset("localhost", "public", 'FOO-MIB::bar.42', 'x', 'F0');
?>

Смотрите также

  • snmpget() - Fetch an SNMP object


Fetch all the SNMP objects from an agent

  • « snmpset
  • snmpwalkoid »
  • PHP Manual
  • SNMP Функции
  • Fetch all the SNMP objects from an agent

snmpwalk

(PHP 4, PHP 5, PHP 7)

snmpwalk — Fetch all the SNMP objects from an agent

Описание

array snmpwalk ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmpwalk() function is used to read all the values from an SNMP agent specified by the hostname.

Список параметров

hostname

The SNMP agent (server).

community

The read community.

object_id

If NULL, object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array.

If object_id is specified, all the SNMP objects below that object_id are returned.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an array of SNMP object values starting from the object_id as root or FALSE on error.

Примеры

Пример #1 snmpwalk() Example

<?php
$a = snmpwalk("127.0.0.1", "public", "");

foreach ($a as $val) {
    echo "$val\n";
}

?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

Смотрите также

  • snmprealwalk() - Return all objects including their respective object ID within the specified one


Query for a tree of information about a network entity

  • « snmpwalk
  • SNMP »
  • PHP Manual
  • SNMP Функции
  • Query for a tree of information about a network entity

snmpwalkoid

(PHP 4, PHP 5, PHP 7)

snmpwalkoid — Query for a tree of information about a network entity

Описание

array snmpwalkoid ( string $hostname , string $community , string $object_id [, int $timeout = 1000000 [, int $retries = 5 ]] )

snmpwalkoid() function is used to read all object ids and their respective values from an SNMP agent specified by hostname.

The existence of snmpwalkoid() and snmpwalk() has historical reasons. Both functions are provided for backward compatibility. Use snmprealwalk() instead.

Список параметров

hostname

The SNMP agent.

community

The read community.

object_id

If NULL, object_id is taken as the root of the SNMP objects tree and all objects under that tree are returned as an array.

If object_id is specified, all the SNMP objects below that object_id are returned.

timeout

The number of microseconds until the first timeout.

retries

The number of times to retry if timeouts occur.

Возвращаемые значения

Returns an associative array with object ids and their respective object value starting from the object_id as root or FALSE on error.

Примеры

Пример #1 snmpwalkoid() Example

<?php
$a = snmpwalkoid("127.0.0.1", "public", "");
for (reset($a); $i = key($a); next($a)) {
    echo "$i: $a[$i]<br />\n";
}
?>

Above function call would return all the SNMP objects from the SNMP agent running on localhost. One can step through the values with a loop

Смотрите также

  • snmpwalk() - Fetch all the SNMP objects from an agent


The SNMP class

(PHP 5 >= 5.4.0, PHP 7)

Введение

Represents SNMP session.

Обзор классов

SNMP {
/* Свойства */
public int $max_oids ;
public int $valueretrieval ;
public bool $quick_print ;
public bool $enum_print ;
public int $oid_output_format ;
public bool $oid_increasing_check ;
public int $exceptions_enabled ;
public array $info ;
/* Методы */
public __construct ( int $version , string $hostname , string $community [, int $timeout = 1000000 [, int $retries = 5 ]] )
public bool close ( void )
public mixed get ( mixed $object_id [, bool $preserve_keys = false ] )
public int getErrno ( void )
public string getError ( void )
public mixed getnext ( mixed $object_id )
public bool set ( mixed $object_id , mixed $type , mixed $value )
public bool setSecurity ( string $sec_level [, string $auth_protocol = [, string $auth_passphrase = [, string $priv_protocol = [, string $priv_passphrase = [, string $contextName = [, string $contextEngineID = ]]]]]] )
public array walk ( string $object_id [, bool $suffix_as_key = FALSE [, int $max_repetitions [, int $non_repeaters ]]] )
/* Константы */
const integer ERRNO_NOERROR = 0 ;
const integer ERRNO_GENERIC = 2 ;
const integer ERRNO_TIMEOUT = 4 ;
const integer ERRNO_ERROR_IN_REPLY = 8 ;
const integer ERRNO_OID_NOT_INCREASING = 16 ;
const integer ERRNO_OID_PARSING_ERROR = 32 ;
const integer ERRNO_MULTIPLE_SET_QUERIES = 64 ;
const integer ERRNO_ANY = 126 ;
const integer VERSION_1 = 0 ;
const integer VERSION_2C = 1 ;
const integer VERSION_2c = 1 ;
const integer VERSION_3 = 3 ;
}

Свойства

max_oids

Maximum OID per GET/SET/GETBULK request

valueretrieval

Controls the method how the SNMP values will be returned

SNMP_VALUE_LIBRARY | The return values will be as returned by the Net-SNMP library.
SNMP_VALUE_PLAIN | The return values will be the plain value without the SNMP type hint.
SNMP_VALUE_OBJECT | The return values will be objects with the properties "value" and "type", where the latter is one of the SNMP_OCTET_STR, SNMP_COUNTER etc. constants. The way "value" is returned is based on which one of SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN is set
quick_print

Value of quick_print within the NET-SNMP library

Sets the value of quick_print within the NET-SNMP library. When this is set (1), the SNMP library will return 'quick printed' values. This means that just the value will be printed. When quick_print is not enabled (default) the UCD SNMP library prints extra information including the type of the value (i.e. IpAddress or OID). Additionally, if quick_print is not enabled, the library prints additional hex values for all strings of three characters or less.

enum_print

Controls the way enum values are printed

Parameter toggles if walk/get etc. should automatically lookup enum values in the MIB and return them together with their human readable string.

oid_output_format

Controls OID output format

OID .1.3.6.1.2.1.1.3.0 representation for various oid_output_format values
SNMP_OID_OUTPUT_FULL | .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance
SNMP_OID_OUTPUT_NUMERIC | .1.3.6.1.2.1.1.3.0
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

Controls disabling check for increasing OID while walking OID tree

Some SNMP agents are known for returning OIDs out of order but can complete the walk anyway. Other agents return OIDs that are out of order and can cause SNMP::walk() to loop indefinitely until memory limit will be reached. PHP SNMP library by default performs OID increasing check and stops walking on OID tree when it detects possible loop with issuing warning about non-increasing OID faced. Set oid_increasing_check to FALSE to disable this check.

exceptions_enabled

Controls which failures will raise SNMPException instead of warning. Use bitwise OR'ed SNMP::ERRNO_* constants. By default all SNMP exceptions are disabled.

info

Read-only property with remote agent configuration: hostname, port, default timeout, default retries count

Предопределенные константы

SNMP Error Types

SNMP::ERRNO_NOERROR

No SNMP-specific error occurred.

SNMP::ERRNO_GENERIC

A generic SNMP error occurred.

SNMP::ERRNO_TIMEOUT

Request to SNMP agent timed out.

SNMP::ERRNO_ERROR_IN_REPLY

SNMP agent returned an error in reply.

SNMP::ERRNO_OID_NOT_INCREASING

SNMP agent faced OID cycling reporning non-increasing OID while executing (BULK)WALK command. This indicates bogus remote SNMP agent.

SNMP::ERRNO_OID_PARSING_ERROR

Library failed while parsing OID (and/or type for SET command). No queries has been made.

SNMP::ERRNO_MULTIPLE_SET_QUERIES

Library will use multiple queries for SET operation requested. That means that operation will be performed in a non-transaction manner and second or subsequent chunks may fail if a type or value failure will be faced.

SNMP::ERRNO_ANY

All SNMP::ERRNO_* codes bitwise OR'ed.

SNMP Protocol Versions

SNMP::VERSION_1

SNMP::VERSION_2C, SNMP::VERSION_2c

SNMP::VERSION_3

Содержание

  • SNMP::close — Close SNMP session
  • SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent
  • SNMP::get — Fetch an SNMP object
  • SNMP::getErrno — Get last error code
  • SNMP::getError — Get last error message
  • SNMP::getnext — Fetch an SNMP object which follows the given object id
  • SNMP::set — Set the value of an SNMP object
  • SNMP::setSecurity — Configures security-related SNMPv3 session parameters
  • SNMP::walk — Fetch SNMP object subtree


Close SNMP session

  • « SNMP
  • SNMP::__construct »
  • PHP Manual
  • SNMP
  • Close SNMP session

SNMP::close

(PHP 5 >= 5.4.0, PHP 7)

SNMP::close — Close SNMP session

Описание

public bool SNMP::close ( void )

Frees previously allocated SNMP session object.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 SNMP::close() example

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  # ...
  # get, walk, etc goes here
  # ...
  $session->close();
?>

Смотрите также

  • SNMP::__construct() - Creates SNMP instance representing session to remote SNMP agent


Creates SNMP instance representing session to remote SNMP agent

  • « SNMP::close
  • SNMP::get »
  • PHP Manual
  • SNMP
  • Creates SNMP instance representing session to remote SNMP agent

SNMP::__construct

(PHP 5 >= 5.4.0, PHP 7)

SNMP::__construct — Creates SNMP instance representing session to remote SNMP agent

Описание

public SNMP::__construct ( int $version , string $hostname , string $community [, int $timeout = 1000000 [, int $retries = 5 ]] )

The function description goes here.

Список параметров

version

SNMP protocol version:
SNMP::VERSION_1,
SNMP::VERSION_2C,
SNMP::VERSION_3.

hostname

The SNMP agent. hostname may be suffixed with optional SNMP agent port after colon. IPv6 addresses must be enclosed in square brackets if used with port. If FQDN is used for hostname it will be resolved by php-snmp library, not by Net-SNMP engine. Usage of IPv6 addresses when specifying FQDN may be forced by enclosing FQDN into square brackets. Here it is some examples:

IPv4 with default port | 127.0.0.1
IPv6 with default port | ::1 or [::1]
IPv4 with specific port | 127.0.0.1:1161
IPv6 with specific port | [::1]:1161
FQDN with default port | host.domain
FQDN with specific port | host.domain:1161
FQDN with default port, force usage of IPv6 address | [host.domain]
FQDN with specific port, force usage of IPv6 address | [host.domain]:1161

community

The purpuse of community is SNMP version specific:

SNMP::VERSION_1 | SNMP community
SNMP::VERSION_2C | SNMP community
SNMP::VERSION_3 | SNMPv3 securityName
timeout

The number of microseconds until the first timeout.

retries

The number of retries in case timeout occurs.

Возвращаемые значения

Returns SNMP object representing remote SNMP agent.

Ошибки

SNMP::__construct() throws an exception when parameters count or types are wrong or unknown SNMP protocol version specified.

Примеры

Пример #1 Fetching sysLocation

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $sysdescr = $session->get("sysDescr.0");
  echo "$sysdescr\n";
?>

Результатом выполнения данного примера будет что-то подобное:

STRING: Test server

Смотрите также

  • SNMP::close() - Close SNMP session


Fetch an SNMP object

  • « SNMP::__construct
  • SNMP::getErrno »
  • PHP Manual
  • SNMP
  • Fetch an SNMP object

SNMP::get

(PHP 5 >= 5.4.0, PHP 7)

SNMP::get — Fetch an SNMP object

Описание

public mixed SNMP::get ( mixed $object_id [, bool $preserve_keys = false ] )

Fetch an SNMP object specified in object_id using GET query.

Список параметров

If object_id is a string, then SNMP::get() will return SNMP object as string. If object_id is a array, all requested SNMP objects will be returned as associative array of the SNMP object ids and their values.

object_id

The SNMP object (OID) or objects

preserve_keys

When object_id is a array and preserve_keys set to TRUE keys in results will be taken exactly as in object_id, otherwise SNMP::oid_output_format property is used to determinate the form of keys.

Возвращаемые значения

Returns SNMP objects requested as string or array depending on object_id type or FALSE on error.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 Single SNMP object

Single SNMP object may be requested in two ways: as string resulting string return value or as single-element array with associative array as output.

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $sysdescr = $session->get("sysDescr.0");
  echo "$sysdescr\n";
  $sysdescr = $session->get(array("sysDescr.0"));
  print_r($sysdescr);
?>

Результатом выполнения данного примера будет что-то подобное:

STRING: Test server
Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
)

Пример #2 Multiple SNMP objects

$session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $results = $session->get(array("sysDescr.0", "sysName.0"));
  print_r($results);
  $session->close();

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysName.0] => STRING: myhost.nodomain
)

Смотрите также

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


Get last error code

  • « SNMP::get
  • SNMP::getError »
  • PHP Manual
  • SNMP
  • Get last error code

SNMP::getErrno

(PHP 5 >= 5.4.0, PHP 7)

SNMP::getErrno — Get last error code

Описание

public int SNMP::getErrno ( void )

Returns error code from last SNMP request.

Возвращаемые значения

Returns one of SNMP error code values described in constants chapter.

Примеры

Пример #1 SNMP::getErrno() example

<?php
$session = new SNMP(SNMP::VERSION_2c, '127.0.0.1', 'boguscommunity');
var_dump(@$session->get('.1.3.6.1.2.1.1.1.0'));
var_dump($session->getErrno() == SNMP::ERRNO_TIMEOUT);
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • SNMP::getError() - Get last error message


Get last error message

  • « SNMP::getErrno
  • SNMP::getnext »
  • PHP Manual
  • SNMP
  • Get last error message

SNMP::getError

(PHP 5 >= 5.4.0, PHP 7)

SNMP::getError — Get last error message

Описание

public string SNMP::getError ( void )

Returns string with error from last SNMP request.

Возвращаемые значения

String describing error from last SNMP request.

Примеры

Пример #1 SNMP::getError() example

<?php
$session = new SNMP(SNMP::VERSION_2c, '127.0.0.1', 'boguscommunity');
var_dump(@$session->get('.1.3.6.1.2.1.1.1.0'));
var_dump($session->getError());
?>

Результат выполнения данного примера:

bool(false)
string(26) "No response from 127.0.0.1"

Смотрите также

  • SNMP::getErrno() - Get last error code


Fetch an SNMP object which follows the given object id

  • « SNMP::getError
  • SNMP::set »
  • PHP Manual
  • SNMP
  • Fetch an SNMP object which follows the given object id

SNMP::getnext

(PHP 5 >= 5.4.0, PHP 7)

SNMP::getnext — Fetch an SNMP object which follows the given object id

Описание

public mixed SNMP::getnext ( mixed $object_id )

Fetch an SNMP object that follows specified object_id.

Список параметров

If object_id is a string, then SNMP::getnext() will return SNMP object as string. If object_id is a array, all requested SNMP objects will be returned as associative array of the SNMP object ids and their values.

object_id

The SNMP object (OID) or objects

Возвращаемые значения

Returns SNMP objects requested as string or array depending on object_id type or FALSE on error.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 Single SNMP object

Single SNMP object may be requested in two ways: as string resulting string return value or as single-element array with associative array as output.

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $nsysdescr = $session->getnext("sysDescr.0");
  echo "$nsysdescr\n";
  $nsysdescr = $session->getnext(array("sysDescr.0"));
  print_r($nsysdescr);
?>

Результатом выполнения данного примера будет что-то подобное:

OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
Array
(
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
)

Пример #2 Miltiple SNMP objects

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $results = $session->getnext(array("sysDescr.0", "sysName.0"));
  print_r($results);
  $session->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [SNMPv2-MIB::sysLocation.0] => STRING: Nowhere
)

Смотрите также

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


Set the value of an SNMP object

  • « SNMP::getnext
  • SNMP::setSecurity »
  • PHP Manual
  • SNMP
  • Set the value of an SNMP object

SNMP::set

(PHP 5 >= 5.4.0, PHP 7)

SNMP::set — Set the value of an SNMP object

Описание

public bool SNMP::set ( mixed $object_id , mixed $type , mixed $value )

Requests remote SNMP agent setting the value of one or more SNMP objects specified by the object_id.

Список параметров

If object_id is string, both type and value must be string too. If object_id is array value must be equal-sized array containing corresponding values, type may be either string (it's value will be used for all object_id-value pairs) or equal-sized array with per-OID value. When any other parameters' combinations are used, a number of E_WARNING messages may be shown with detailed description.

object_id

The SNMP object id

When count of OIDs in object_id array is greater than max_oids object property set method will have to use multiple queries to perform requested value updates. In this case type and value checks are made per-chunk so second or subsequent requests may fail due to wrong type or value for OID requested. To mark this a warning is raised when count of OIDs in object_id array is greater than max_oids.

type

MIB указывает тип идентификатора каждого объекта. Он должен быть указан в виде одного символа из следующего списка.

types
= Тип, принимаемый MIB
i | INTEGER
u | INTEGER
s | STRING
x | HEX STRING
d | DECIMAL STRING
n | NULLOBJ
o | OBJID
t | TIMETICKS
a | IPADDRESS
b | BITS

Если при компиляции библиотеки SNMP была определена опция OPAQUE_SPECIAL_TYPES, то также могут быть использованы следующие типы:

types
U | unsigned int64
I | signed int64
F | float
D | double

Большинство этих значений используют очевидный тип ASN.1. 's', 'x', 'd' и 'b' - это все разные способы указания значения OCTET STRING, а беззнаковый тип 'u' также используется для обработки значений Gauge32.

Если MIB-файлы были загружены в MIB-дерево с помощью "snmp_read_mib" или были указаны в конфигурационном файле libsnmp, то для указания параметра type можно использовать нотацию '=', т.к. тип всех идентификаторов объектов будет автоматически считан из MIB.

Обратите внимание, что есть два способа установить переменную типа BITS, например, "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":

  • С помощью типа "b" и списка битовых чисел. Не рекомендуется использовать этот метод, т.к. GET-запрос для того же OID вернет, к примеру, 0xF8.
  • С помощью типа "x" и шестнадцатеричного числа, но без(!) обычного префикса "0x".

Подробнее смотрите в разделе с примерами.

value

The new value.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 Set single SNMP object id

<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set('SNMPv2-MIB::sysContact.0', 's', "Nobody");
?>

Пример #2 Set multiple values using single SNMP::set() call

<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), array('s', 's'), array("Nobody", "Nowhere"));
// or
  $session->set(array('SNMPv2-MIB::sysContact.0', 'SNMPv2-MIB::sysLocation.0'), 's', array("Nobody", "Nowhere"));
?>

Пример #3 Using SNMP::set() for setting BITS SNMP object id

<?php
  $session = new SNMP(SNMP::VERSION_2C, "127.0.0.1", "private");
  $session->set('FOO-MIB::bar.42', 'b', '0 1 2 3 4');
// or
  $session->set('FOO-MIB::bar.42', 'x', 'F0');
?>

Смотрите также

  • SNMP::get() - Fetch an SNMP object


Configures security-related SNMPv3 session parameters

  • « SNMP::set
  • SNMP::walk »
  • PHP Manual
  • SNMP
  • Configures security-related SNMPv3 session parameters

SNMP::setSecurity

(PHP 5 >= 5.4.0, PHP 7)

SNMP::setSecurity — Configures security-related SNMPv3 session parameters

Описание

public bool SNMP::setSecurity ( string $sec_level [, string $auth_protocol = [, string $auth_passphrase = [, string $priv_protocol = [, string $priv_passphrase = [, string $contextName = [, string $contextEngineID = ]]]]]] )

setSecurity configures security-related session parameters used in SNMP protocol version 3

Список параметров

sec_level

the security level (noAuthNoPriv|authNoPriv|authPriv)

auth_protocol

the authentication protocol (MD5 or SHA)

auth_passphrase

the authentication pass phrase

priv_protocol

the privacy protocol (DES or AES)

priv_passphrase

the privacy pass phrase

contextName

the context name

contextEngineID

the context EngineID

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 SNMP::setSecurity() example

<?php
  $session = new SNMP(SNMP::VERSION_3, $hostname, $rwuser, $timeout, $retries);
  $session->setSecurity('authPriv', 'MD5', $auth_pass, 'AES', $priv_pass, '', 'aeeeff');
?>

Смотрите также

  • SNMP::__construct() - Creates SNMP instance representing session to remote SNMP agent


Fetch SNMP object subtree

  • « SNMP::setSecurity
  • SNMPException »
  • PHP Manual
  • SNMP
  • Fetch SNMP object subtree

SNMP::walk

(PHP 5 >= 5.4.0, PHP 7)

SNMP::walk — Fetch SNMP object subtree

Описание

public array SNMP::walk ( string $object_id [, bool $suffix_as_key = FALSE [, int $max_repetitions [, int $non_repeaters ]]] )

SNMP::walk() is used to read SNMP subtree rooted at specified object_id.

Список параметров

object_id

Root of subtree to be fetched

suffix_as_key

By default full OID notation is used for keys in output array. If set to TRUE subtree prefix will be removed from keys leaving only suffix of object_id.

non_repeaters

This specifies the number of supplied variables that should not be iterated over. The default is to use this value from SNMP object.

max_repetitions

This specifies the maximum number of iterations over the repeating variables. The default is to use this value from SNMP object.

Возвращаемые значения

Returns an associative array of the SNMP object ids and their values on success or FALSE on error. When a SNMP error occures SNMP::getErrno() and SNMP::getError() can be used for retrieving error number (specific to SNMP extension, see class constants) and error message respectively.

Ошибки

Данный метод по умолчанию не генерирует исключения. Чтобы включить генерацию исключения SNMPException при возникновении некоторых ошибок данной библиотеки, необходимо установить параметр exceptions_enabled класса SNMP в соответствующее значение. Подробнее смотрите в объяснении параметра SNMP::$exceptions_enabled.

Примеры

Пример #1 SNMP::walk() example

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $fulltree = $session->walk(".");
  print_r($fulltree);
  $session->close();
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [SNMPv2-MIB::sysDescr.0] => STRING: Test server
    [SNMPv2-MIB::sysObjectID.0] => OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
    [DISMAN-EVENT-MIB::sysUpTimeInstance] => Timeticks: (1150681750) 133 days, 4:20:17.50
    [SNMPv2-MIB::sysContact.0] => STRING: Nobody
    [SNMPv2-MIB::sysName.0] => STRING: server.localdomain
    ...
)

Пример #2 suffix_as_key example

suffix_as_key may be used when merging multiple SNMP subtrees into one. This example maps interface names to their type.

<?php
  $session = new SNMP(SNMP::VERSION_1, "127.0.0.1", "public");
  $session->valueretrieval = SNMP_VALUE_PLAIN;
  $ifDescr = $session->walk(".1.3.6.1.2.1.2.2.1.2", TRUE);
  $session->valueretrieval = SNMP_VALUE_LIBRARY;
  $ifType = $session->walk(".1.3.6.1.2.1.2.2.1.3", TRUE);
  print_r($ifDescr);
  print_r($ifType);
  $result = array();
  foreach($ifDescr as $i => $n) {
    $result[$n] = $ifType[$i];
  }
  print_r($result);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [1] => igb0
    [2] => igb1
    [3] => ipfw0
    [4] => lo0
    [5] => lagg0
)
Array
(
    [1] => INTEGER: ieee8023adLag(161)
    [2] => INTEGER: ieee8023adLag(161)
    [3] => INTEGER: ethernetCsmacd(6)
    [4] => INTEGER: softwareLoopback(24)
    [5] => INTEGER: ethernetCsmacd(6)
)
Array
(
    [igb0] => INTEGER: ieee8023adLag(161)
    [igb1] => INTEGER: ieee8023adLag(161)
    [ipfw0] => INTEGER: ethernetCsmacd(6)
    [lo0] => INTEGER: softwareLoopback(24)
    [lagg0] => INTEGER: ethernetCsmacd(6)
)

Смотрите также

  • SNMP::getErrno() - Get last error code
  • SNMP::getError() - Get last error message


The SNMPException class

(PHP 5 >= 5.4.0, PHP 7)

Введение

Represents an error raised by SNMP. You should not throw a SNMPException from your own code. See Exceptions for more information about Exceptions in PHP.

Обзор классов

SNMPException extends RuntimeException {
/* Свойства */
protected string $code ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Свойства

code

SNMPlibrary error code. Use Exception::getCode() to access it.


Сокеты

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Ошибки сокетов
  • Сокетные Функции
    • socket_accept — Принимает соединение на сокете
    • socket_bind — Привязывает имя к сокету
    • socket_clear_error — Очищает ошибку на сокете или последний код ошибки
    • socket_close — Закрывает ресурс сокета
    • socket_cmsg_space — Calculate message buffer size
    • socket_connect — Начинает соединение с сокетом
    • socket_create_listen — Открывает сокет на указанном порту для принятия соединений
    • socket_create_pair — Создаёт пару неразличимых сокетов и сохраняет их в массиве
    • socket_create — Создаёт сокет (конечную точку для обмена информацией)
    • socket_get_option — Gets socket options for the socket
    • socket_getopt — Псевдоним socket_get_option
    • socket_getpeername — Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
    • socket_getsockname — Опрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
    • socket_import_stream — Import a stream
    • socket_last_error — Возвращает последнюю ошибку на сокете
    • socket_listen — Прослушивает входящие соединения на сокете
    • socket_read — Читает строку байт максимальной длины length из сокета
    • socket_recv — Получает данные из подсоединённого сокета
    • socket_recvfrom — Получает данные из сокета, независимо от того, подсоединён он или нет
    • socket_recvmsg — Read a message
    • socket_select — Runs the select() system call on the given arrays of sockets with a specified timeout
    • socket_send — Отправляет данные в подсоединённый сокет
    • socket_sendmsg — Send a message
    • socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
    • socket_set_block — Устанавливает блокирующий режим на ресурсе сокета
    • socket_set_nonblock — Устанавливает неблокирующий режим для файлового дескриптора fd
    • socket_set_option — Устанавливает опции для сокета
    • socket_setopt — Псевдоним socket_set_option
    • socket_shutdown — Завершает работу сокета на получение и/или отправку данных
    • socket_strerror — Возвращает строку, описывающую ошибку сокета
    • socket_write — Запись в сокет


Введение

Расширение socket реализует низкоуровневый интерфейс к функциям связи между сокетами, основанными на популярными сокетах BSD, обеспечивая возможность действовать и как сокет-сервер, и как сокет-клиент.

Более простой клиентский интерфейс смотрите в функциях
stream_socket_client(),
stream_socket_server(),
fsockopen() и
pfsockopen().

При использовании этих функций, важно помнить, что хотя многие из них имеют имена, похожие на их аналоги в C, они часто имеют другой интерфейс использования. Пожалуйста, прочитайте их описания для того, чтобы избежать путаницы.

Незнакомые с программированием сокетов могут найти много полезной информации в соответствующих man-страницах Unix, также в Сети существует много обучающей информации по программированию сокетов на C, большая часть из которой может быть применена, с небольшими изменениями, к программированию сокетов на PHP. Хорошим началом может быть » FAQ по Unix-сокетам.


Установка

Сокетные функции, описанные здесь, являются частью расширения PHP, которое может быть включено при компиляции при помощи указания опции --enable-sockets команде configure.

Замечание: Поддержка IPv6 была добавлена в PHP 5.0.0.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

socket_accept(),
socket_create_listen() и
socket_create() возвращают ресурсы сокетов.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

AF_UNIX (integer)
AF_INET (integer)
AF_INET6 (integer)
Константа доступна только если PHP скомпилирован с поддержкой IPv6.
SOCK_STREAM (integer)
SOCK_DGRAM (integer)
SOCK_RAW (integer)
SOCK_SEQPACKET (integer)
SOCK_RDM (integer)
MSG_OOB (integer)
MSG_WAITALL (integer)
MSG_PEEK (integer)
MSG_DONTROUTE (integer)
MSG_EOR (integer)
Константа недоступна на Windows-платформах.
MSG_EOF (integer)
Константа недоступна на Windows-платформах.
SO_DEBUG (integer)
SO_REUSEADDR (integer)
SO_REUSEPORT (integer)
Эта константа доступна только в PHP 5.4.10 и новее на платформах, которые поддерживают опцию SO_REUSEPORT сокета: сюда входят Mac OS X и FreeBSD, но не входят Linux или Windows.
SO_KEEPALIVE (integer)
SO_DONTROUTE (integer)
SO_LINGER (integer)
SO_BROADCAST (integer)
SO_OOBINLINE (integer)
SO_SNDBUF (integer)
SO_RCVBUF (integer)
SO_SNDLOWAT (integer)
SO_RCVLOWAT (integer)
SO_SNDTIMEO (integer)
SO_RCVTIMEO (integer)
SO_TYPE (integer)
SO_ERROR (integer)
TCP_NODELAY (integer)
Константа используется для отключения TCP-алгоритма Нагла. Добавлена в PHP 5.2.7.
SOL_SOCKET (integer)
PHP_NORMAL_READ (integer)
PHP_BINARY_READ (integer)
SOL_TCP (integer)
SOL_UDP (integer)

Следующие константы определены только в Windows и Unix-подобных системах. Каждая константа определена только, если ее эквивалент доступен в системе.

SOCKET_EINTR (integer)
Прерванный системный вызов.
SOCKET_EBADF (integer)
Неверный номер файла.
SOCKET_EACCES (integer)
Доступ запрещён.
SOCKET_EFAULT (integer)
Неверный адрес.
SOCKET_EINVAL (integer)
Неверный аргумент.
SOCKET_EMFILE (integer)
Слишком много открытых файлов.
SOCKET_ENAMETOOLONG (integer)
Слишком длинное имя файла.
SOCKET_ENOTEMPTY (integer)
Каталог не пуст.
SOCKET_ELOOP (integer)
Обнаружено слишком много символических ссылок.
SOCKET_EWOULDBLOCK (integer)
Операция будет блокирована.
SOCKET_EREMOTE (integer)
Объект является удалённым.
SOCKET_EUSERS (integer)
Слишком много пользователей.
SOCKET_ENOTSOCK (integer)
Socket operation on non-socket.
SOCKET_EDESTADDRREQ (integer)
Destination address required.
SOCKET_EMSGSIZE (integer)
Сообщение слишком длинное.
SOCKET_EPROTOTYPE (integer)
Protocol wrong type for socket.
SOCKET_EPROTONOSUPPORT (integer)
Протокол не поддерживается.
SOCKET_ESOCKTNOSUPPORT (integer)
Тип сокета не поддерживается.
SOCKET_EOPNOTSUPP (integer)
Операция не поддерживается на конечной точке транспорта.
SOCKET_EPFNOSUPPORT (integer)
Семейство протоколов не поддерживается.
SOCKET_EAFNOSUPPORT (integer)
Семейство адресов не поддерживается протоколом.
SOCKET_EADDRNOTAVAIL (integer)
Не удается назначить требуемый адрес.
SOCKET_ENETDOWN (integer)
Сеть не работает.
SOCKET_ENETUNREACH (integer)
Сеть недоступна.
SOCKET_ENETRESET (integer)
Сеть сбросила соединение из-за переустановки соединения.
SOCKET_ECONNABORTED (integer)
Приложение вызвало разрыв соединения.
SOCKET_ECONNRESET (integer)
Соединение сброшено узлом.
SOCKET_ENOBUFS (integer)
Нет доступного буферного пространства.
SOCKET_EISCONN (integer)
Конечная точка транспорта уже подсоединена.
SOCKET_ENOTCONN (integer)
Конечная точка транспорта не подсоединена.
SOCKET_ESHUTDOWN (integer)
Не удается отправить данные из-за отключения конечной точки транспорта.
SOCKET_ETIMEDOUT (integer)
Истекло время соединения.
SOCKET_ECONNREFUSED (integer)
Отказ в соединении.
SOCKET_EHOSTDOWN (integer)
Хост выключен.
SOCKET_EHOSTUNREACH (integer)
Нет маршрута до хоста.
SOCKET_EALREADY (integer)
Операция уже в прогрессе.
SOCKET_EINPROGRESS (integer)
Операция сейчас в прогрессе.

Следующие константы определены только в Windows.

SOCKET_ENOPROTOOPT (integer)
SOCKET_EADDRINUSE (integer)
SOCKET_ETOOMYREFS (integer)
SOCKET_EPROCLIM (integer)
SOCKET_EDUOT (integer)
SOCKET_ESTALE (integer)
SOCKET_EDISCON (integer)
SOCKET_SYSNOTREADY (integer)
SOCKET_VERNOTSUPPORTED (integer)
SOCKET_NOTINITIALISED (integer)
SOCKET_HOST_NOT_FOUND (integer)
SOCKET_TRY_AGAIN (integer)
SOCKET_NO_RECOVERY (integer)
SOCKET_NO_DATA (integer)
SOCKET_NO_ADDRESS (integer)

Следующие константы доступны только на UNIX-платформах. Каждая константа определена только если её эквивалент доступен на платформе.

SOCKET_EPERM (integer)
Операция не допускается.
SOCKET_ENOENT (integer)
Нет такого файла или каталога.
SOCKET_EIO (integer)
Ошибка ввода-вывода.
SOCKET_ENXIO (integer)
Нет такого устройства или адреса.
SOCKET_E2BIG (integer)
Список аргументов слишком длинный.
SOCKET_EAGAIN (integer)
Попытайтесь ещё раз.
SOCKET_ENOMEM (integer)
Переполнение доступной памяти.
SOCKET_ENOTBLK (integer)
Требуется блочное устройство.
SOCKET_EBUSY (integer)
Устройство или ресурс занято.
SOCKET_EEXIST (integer)
Файл существует.
SOCKET_EXDEV (integer)
Ссылка на кросс-устройство.
SOCKET_ENODEV (integer)
Нет такого устройства.
SOCKET_ENOTDIR (integer)
Это не каталог.
SOCKET_EISDIR (integer)
Это каталог.
SOCKET_ENFILE (integer)
Переполнение файловой таблицы.
SOCKET_ENOTTY (integer)
Не печатающее устройство.
SOCKET_ENOSPC (integer)
Не осталось места на устройстве.
SOCKET_ESPIPE (integer)
Недопустимый запрос.
SOCKET_EROFS (integer)
Файловая система доступна только для чтения.
SOCKET_EMLINK (integer)
Слишком много ссылок.
SOCKET_EPIPE (integer)
Оборванный канал.
SOCKET_ENOLCK (integer)
Не доступна блокировка записи.
SOCKET_ENOSYS (integer)
Функция не реализована.
SOCKET_ENOMSG (integer)
Нет сообщения желаемого типа.
SOCKET_EIDRM (integer)
Идентификатор удалён.
SOCKET_ECHRNG (integer)
Тип канала выходит за пределы диапазона.
SOCKET_EL2NSYNC (integer)
Уровень 2 не синхронизирован.
SOCKET_EL3HLT (integer)
Уровень 3 остановлен.
SOCKET_EL3RST (integer)
Уровень 3 сброшен.
SOCKET_ELNRNG (integer)
Номер ссылки выходит за пределы диапазона.
SOCKET_EUNATCH (integer)
Драйвер протокола не подключён.
SOCKET_ENOCSI (integer)
CSI-структура недоступна.
SOCKET_EL2HLT (integer)
Уровень 2 остановлен.
SOCKET_EBADE (integer)
Недопустимый коммутатор.
SOCKET_EBADR (integer)
Недопустимый дескриптор запроса.
SOCKET_EXFULL (integer)
Коммутатор заполнен.
SOCKET_ENOANO (integer)
Не anode.
SOCKET_EBADRQC (integer)
Недопустимый код запроса.
SOCKET_EBADSLT (integer)
Недопустимый слот.
SOCKET_ENOSTR (integer)
Устройство не является потоковым.
SOCKET_ENODATA (integer)
Нет доступных данных.
SOCKET_ETIME (integer)
Таймер истёк.
SOCKET_ENOSR (integer)
Кончились потоковые ресурсы.
SOCKET_ENONET (integer)
Машина не подключена к сети.
SOCKET_ENOLINK (integer)
Ссылка была разорвана.
SOCKET_EADV (integer)
Ошибка объявления error.
SOCKET_ESRMNT (integer)
Ошибка Srmount.
SOCKET_ECOMM (integer)
Ошибка связи при отправке.
SOCKET_EPROTO (integer)
Ошибка протокола.
SOCKET_EMULTIHOP (integer)
Попытка перескочить на недоступный ресурс (multihop).
SOCKET_EBADMSG (integer)
Не является сообщением с данными.
SOCKET_ENOTUNIQ (integer)
Имя не уникальное в сети.
SOCKET_EBADFD (integer)
Файловый указатель в неверном состоянии.
SOCKET_EREMCHG (integer)
Удаленный адрес изменился.
SOCKET_ERESTART (integer)
Прерванный системный вызов должен быть перезапущен.
SOCKET_ESTRPIPE (integer)
Ошибка канала потока.
SOCKET_EPROTOOPT (integer)
Протокол не доступен.
SOCKET_ADDRINUSE (integer)
Адрес уже в использовании.
SOCKET_ETOOMANYREFS (integer)
Слишком много ссылок: не могу соединить.
SOCKET_EISNAM (integer)
Именованный тип файла.
SOCKET_EREMOTEIO (integer)
Ошибка удалённого ввода-вывода.
SOCKET_EDQUOT (integer)
Квота превышена.
SOCKET_ENOMEDIUM (integer)
Носитель не найден.
SOCKET_EMEDIUMTYPE (integer)
Неверный тип носителя.


Примеры

Пример #1 Пример использования сокетов: Простой TCP/IP сервер

Этот пример показывает работу простого сервера отзывов. Измените переменные address и port в соответствии с вашими настройками и выполните. Затем вы можете соединиться с сервером с командой, похожей на: telnet 192.168.1.53 10000 (где адрес и порт должны соответствовать вашим настройкам). Всё, что вы наберёте на клавиатуре, будет затем выведено на сервере и отправлено вам обратно. Для отключения наберите 'выход'.

#!/usr/local/bin/php -q
<?php
error_reporting(E_ALL);

/* Позволяет скрипту ожидать соединения бесконечно. */
set_time_limit(0);

/* Включает скрытое очищение вывода так, что мы получаем данные
 * как только они появляются. */
ob_implicit_flush();

$address = '192.168.1.53';
$port = 10000;

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
    echo "Не удалось выполнить socket_create(): причина: " . socket_strerror(socket_last_error()) . "\n";
}

if (socket_bind($sock, $address, $port) === false) {
    echo "Не удалось выполнить socket_bind(): причина: " . socket_strerror(socket_last_error($sock)) . "\n";
}

if (socket_listen($sock, 5) === false) {
    echo "Не удалось выполнить socket_listen(): причина: " . socket_strerror(socket_last_error($sock)) . "\n";
}

do {
    if (($msgsock = socket_accept($sock)) === false) {
        echo "Не удалось выполнить socket_accept(): причина: " . socket_strerror(socket_last_error($sock)) . "\n";
        break;
    }
    /* Отправляем инструкции. */
    $msg = "\nДобро пожаловать на тестовый сервер PHP. \n" .
        "Чтобы отключиться, наберите 'выход'. Чтобы выключить сервер, наберите 'выключение'.\n";
    socket_write($msgsock, $msg, strlen($msg));

    do {
        if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
            echo "Не удалось выполнить socket_read(): причина: " . socket_strerror(socket_last_error($msgsock)) . "\n";
            break 2;
        }
        if (!$buf = trim($buf)) {
            continue;
        }
        if ($buf == 'выход') {
            break;
        }
        if ($buf == 'выключение') {
            socket_close($msgsock);
            break 2;
        }
        $talkback = "PHP: Вы сказали '$buf'.\n";
        socket_write($msgsock, $talkback, strlen($talkback));
        echo "$buf\n";
    } while (true);
    socket_close($msgsock);
} while (true);

socket_close($sock);
?>

Пример #2 Пример использования сокетов: Простой TCP/IP клиент

Этот пример показывает использование простого одноразового HTTP-клиента. Он просто соединяется со страницей, отправляет запрос HEAD, выводит ответ и завершает работу.

<?php
error_reporting(E_ALL);

echo "<h2>Соединение TCP/IP</h2>\n";

/* Получаем порт сервиса WWW. */
$service_port = getservbyname('www', 'tcp');

/* Получаем  IP адрес целевого хоста. */
$address = gethostbyname('www.example.com');

/* Создаём  TCP/IP сокет. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "Не удалось выполнить socket_create(): причина: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Пытаемся соединиться с '$address' на порту '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "Не удалось выполнить socket_connect().\nПричина: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Отправляем  HTTP HEAD запрос...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Читаем ответ:\n\n";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo "Закрываем сокет...";
socket_close($socket);
echo "OK.\n\n";
?>


Ошибки сокетов

Расширение socket было написано для обеспечения удобного интерфейс к сокетам BSD. Были приняты необходимые меры для того, чтобы эти функции работали одинаково хорошо в реализации как для Win32, так и Unix. Почти все функции, при определенных условиях, могут завершиться с ошибкой и вызовут вызовут ошибку уровня E_WARNING. Иногда, разработчики препятствуют этому. Например, функция socket_read() может внезапно вызвать E_WARNING потому, что соединение неожиданно оборвалось. Обычная практика - подавлять предупреждение при помощи оператора @ и перехватывать код ошибки в приложении при помощи функции socket_last_error(). Вы можете вызывать функцию socket_strerror() с кодом ошибки для получения строки, описывающей ошибку. Смотрите описание этих функций для более подробной информации.

Замечание:

Сообщения E_WARNING, вызываемые расширением socket, будут на английском языке, а полученное сообщение об ошибке будет появляться в зависимости от настроек текущей локали (LC_MESSAGES):

Warning - socket_bind() unable to bind address [98]: Die Adresse wird bereits verwendet


Сокетные Функции

Содержание

  • socket_accept — Принимает соединение на сокете
  • socket_bind — Привязывает имя к сокету
  • socket_clear_error — Очищает ошибку на сокете или последний код ошибки
  • socket_close — Закрывает ресурс сокета
  • socket_cmsg_space — Calculate message buffer size
  • socket_connect — Начинает соединение с сокетом
  • socket_create_listen — Открывает сокет на указанном порту для принятия соединений
  • socket_create_pair — Создаёт пару неразличимых сокетов и сохраняет их в массиве
  • socket_create — Создаёт сокет (конечную точку для обмена информацией)
  • socket_get_option — Gets socket options for the socket
  • socket_getopt — Псевдоним socket_get_option
  • socket_getpeername — Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
  • socket_getsockname — Опрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
  • socket_import_stream — Import a stream
  • socket_last_error — Возвращает последнюю ошибку на сокете
  • socket_listen — Прослушивает входящие соединения на сокете
  • socket_read — Читает строку байт максимальной длины length из сокета
  • socket_recv — Получает данные из подсоединённого сокета
  • socket_recvfrom — Получает данные из сокета, независимо от того, подсоединён он или нет
  • socket_recvmsg — Read a message
  • socket_select — Runs the select() system call on the given arrays of sockets with a specified timeout
  • socket_send — Отправляет данные в подсоединённый сокет
  • socket_sendmsg — Send a message
  • socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
  • socket_set_block — Устанавливает блокирующий режим на ресурсе сокета
  • socket_set_nonblock — Устанавливает неблокирующий режим для файлового дескриптора fd
  • socket_set_option — Устанавливает опции для сокета
  • socket_setopt — Псевдоним socket_set_option
  • socket_shutdown — Завершает работу сокета на получение и/или отправку данных
  • socket_strerror — Возвращает строку, описывающую ошибку сокета
  • socket_write — Запись в сокет


Принимает соединение на сокете

  • « Сокетные Функции
  • socket_bind »
  • PHP Manual
  • Сокетные Функции
  • Принимает соединение на сокете

socket_accept

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_accept — Принимает соединение на сокете

Описание

resource socket_accept ( resource $socket )

После того, как сокет socket был создан при помощи функции socket_create(), привязан к имени при помощи функции socket_bind(), и ему было указано слушать соединения при помощи функции socket_listen(), эта функция будет принимать входящие соединения на этом сокете. Как только произошло удачное соединение, возвращается новый ресурс сокета, который может быть использован для связи. Если в очереди сокета есть несколько соединений, будет использовано первое из них. Если нет ожидающих соединений, то функция socket_accept() будет блокировать выполнение скрипта до тех пор, пока не появится соединение. Если сокет socket был сделан неблокирующим при помощи функции socket_set_blocking() или socket_set_nonblock(), будет возвращено FALSE.

Ресурс сокета, полученный при помощи функции socket_accept() не может быть использован для принятия новых соединений. Однако изначальный слушающий сокет socket, остаётся открытым и может быть использован повторно.

Список параметров

socket

Действительный ресурс сокета, созданный при помощи функции socket_create().

Возвращаемые значения

В случае успеха возвращает новый ресурс сокета или FALSE в случае ошибки. Код ошибки может быть получен при помощи вызова функции socket_last_error(). Этот код ошибки может быть передан функции socket_strerror() для получения текстового описания ошибки.

Смотрите также

  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_bind() - Привязывает имя к сокету
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Привязывает имя к сокету

  • « socket_accept
  • socket_clear_error »
  • PHP Manual
  • Сокетные Функции
  • Привязывает имя к сокету

socket_bind

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_bind — Привязывает имя к сокету

Описание

bool socket_bind ( resource $socket , string $address [, int $port = 0 ] )

Привязывает имя, указанное в параметре address, к сокету, описанному в параметре socket. Это должно быть сделано до того, как соединение установлено при помощи функции socket_connect() или socket_listen().

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create().

address

Если сокет из семейства AF_INET, то параметр address должен быть IP-адресом в записи, разделённой точками (например, 127.0.0.1).

Если сокет из семейства AF_UNIX, то параметр address - это путь к доменному сокету Unix (например, /tmp/my.sock).

port (Optional)

Параметр port используется только когда имя привязывается к сокету AF_INET, и указывает порт, на котором будут слушаться соединения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Примеры

Пример #1 Использование функции socket_bind() для установки адреса источника

<?php
// Создаём новый сокет
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

// Пример списка IP-адресов, которые есть на компьютере
$sourceips['kevin']    = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';

// Привязываем адрес источника
socket_bind($sock, $sourceips['madcoder']);

// Соединяемся с адресом назначения
socket_connect($sock, '127.0.0.1', 80);

// Пишем в сокет
$request = 'GET / HTTP/1.1' . "\r\n" .
           'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);

// Закрываем сокет
socket_close($sock);

?>

Примечания

Замечание:

Эта функция должна быть применена на сокете перед вызовом socket_connect().

Замечание:

Примечание по совместимости с Windows 9x/ME: Функция socket_last_error() может возвращать неверный код ошибки при попытке связать с сокетом неверный адрес, который не принадлежит вашей машине.

Смотрите также

  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Очищает ошибку на сокете или последний код ошибки

  • « socket_bind
  • socket_close »
  • PHP Manual
  • Сокетные Функции
  • Очищает ошибку на сокете или последний код ошибки

socket_clear_error

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

socket_clear_error — Очищает ошибку на сокете или последний код ошибки

Описание

void socket_clear_error ([ resource $socket ] )

Эта функция очищает код ошибки на указанном сокете или последнюю глобальную ошибку сокета, если сокет не указан.

Эта функция позволяет принудительно сбросить значение кода ошибки для сокета или последний глобальный код ошибки расширения. Это может быть полезно для определения в части приложения, произошла ошибка или нет.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Закрывает ресурс сокета

  • « socket_clear_error
  • socket_cmsg_space »
  • PHP Manual
  • Сокетные Функции
  • Закрывает ресурс сокета

socket_close

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_close — Закрывает ресурс сокета

Описание

void socket_close ( resource $socket )

Функция socket_close() закрывает ресурс сокета, указанный параметром socket. Эта функция работает только с сокетами и не может быть использована с каким-нибудь другим типом ресурсов.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функций socket_create() или socket_accept().

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • socket_bind() - Привязывает имя к сокету
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Calculate message buffer size

  • « socket_close
  • socket_connect »
  • PHP Manual
  • Сокетные Функции
  • Calculate message buffer size

socket_cmsg_space

(PHP 5 >= 5.5.0, PHP 7)

socket_cmsg_space — Calculate message buffer size

Описание

int socket_cmsg_space ( int $level , int $type )

Calculates the size of the buffer that should be allocated for receiving the ancillary data.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

level

type

Возвращаемые значения

Смотрите также

  • socket_recvmsg() - Read a message
  • socket_sendmsg() - Send a message


Начинает соединение с сокетом

  • « socket_cmsg_space
  • socket_create_listen »
  • PHP Manual
  • Сокетные Функции
  • Начинает соединение с сокетом

socket_connect

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_connect — Начинает соединение с сокетом

Описание

bool socket_connect ( resource $socket , string $address [, int $port = 0 ] )

Начинает соединение с адресом address, используя ресурс сокета socket, который должен быть действующим ресурсом сокета, созданным при помощи функции socket_create().

Список параметров

socket

address

Параметр address может быть IPv4-адресом в записи, разделённой точками (например, 127.0.0.1), если параметр socket равен AF_INET, правильный IPv6-адрес (например, ::1), если включена поддержка IPv6 и параметр socket равен AF_INET6 или путь к файлу доменного сокета Unix, если используется семейство сокетов AF_UNIX.

port

Параметр port используется и обязателен только в том случае, если происходит соединение с сокетом AF_INET или AF_INET6, и он указывает порт на удалённом хосте, к которому должно быть создано соединение.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть затем передан функции socket_strerror() для получения текстового описания ошибки.

Замечание:

Если сокет неблокирующий, то эта функция возвращает FALSE с ошибкой Операция выполняется.

Смотрите также

  • socket_bind() - Привязывает имя к сокету
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Открывает сокет на указанном порту для принятия соединений

  • « socket_connect
  • socket_create_pair »
  • PHP Manual
  • Сокетные Функции
  • Открывает сокет на указанном порту для принятия соединений

socket_create_listen

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_create_listen — Открывает сокет на указанном порту для принятия соединений

Описание

resource socket_create_listen ( int $port [, int $backlog = 128 ] )

socket_create_listen() создаёт новый ресурс сокета типа AF_INET, слушающий на всех локальных интерфейсах указанный порт в ожидании новых соединений.

Эта функция предназначена для упрощения задачи создания нового сокета, который только слушает порт для получения новых соединений.

Список параметров

port

Порт, который нужно слушать на всех интерфейсах.

backlog

Параметр backlog определяет максимальную длину, до которой может вырасти очередь ожидающих соединений. SOMAXCONN может быть передан как параметр backlog, смотрите socket_listen() для более полной информации.

Возвращаемые значения

socket_create_listen() возвращает новый ресурс сокета в случае успешного завершения или FALSE в случае ошибки. Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Примечания

Замечание:

Если вы хотите создать сокет, который будет прослушивать только определённый интерфейс, вам нужно использовать функции socket_create(), socket_bind() и socket_listen().

Смотрите также

  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_create_pair() - Создаёт пару неразличимых сокетов и сохраняет их в массиве
  • socket_bind() - Привязывает имя к сокету
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Создаёт пару неразличимых сокетов и сохраняет их в массиве

  • « socket_create_listen
  • socket_create »
  • PHP Manual
  • Сокетные Функции
  • Создаёт пару неразличимых сокетов и сохраняет их в массиве

socket_create_pair

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_create_pair — Создаёт пару неразличимых сокетов и сохраняет их в массиве

Описание

bool socket_create_pair ( int $domain , int $type , int $protocol , array &$fd )

socket_create_pair() создаёт два соединённых и неразличимых сокета, и сохраняет их в массиве fd. Эта функция обычно используется IPC (межпроцессном взаимодействии).

Список параметров

domain

Параметр domain определяет семейство протоколов, которое будет использоваться сокетом. Смотрите их полный список в описании функции socket_create().

type

Параметр type указывает тип коммуникации, которая будет использоваться сокетом. Смотрите их полный список в описании функции socket_create().

protocol

Параметр protocol устанавливает определённый протокол в указанном семействе протоколов domain, который будет использоваться при связи с полученными сокетами. Соответствующее значение может быть получено по имени при помощи функции getprotobyname(). Если требуемый протокол TCP или UDP, то соответствующие константы SOL_TCP и SOL_UDP также могут быть использованы.

Смотрите полный список поддерживаемых протоколов в описании функции socket_create().

fd

Ссылка на массив, в который будут вставлены два ресурса сокетов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь вновь доступна на Windows-платформах.
4.3.0 | Эта функция из-за бага недоступна на Windows-платформах.

Примеры

Пример #1 Пример использования socket_create_pair()

<?php
$sockets = array();

/* На Windows нам нужно использовать AF_INET */
$domain = (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN' ? AF_INET : AF_UNIX);

/* Создаём пару сокетов */
if (socket_create_pair($domain, SOCK_STREAM, 0, $sockets) === false) {
    echo "Не получилось выполнить socket_create_pair. Причина: ".socket_strerror(socket_last_error());
}
/* Отправляем и получаем данные */
if (socket_write($sockets[0], "ABCdef123\n", strlen("ABCdef123\n")) === false) {
    echo "Не получилось выполнить socket_write(). Причина: ".socket_strerror(socket_last_error($sockets[0]));
}
if (($data = socket_read($sockets[1], strlen("ABCdef123\n"), PHP_BINARY_READ)) === false) {
    echo "Не получилось выполнить socket_read(). Причина: ".socket_strerror(socket_last_error($sockets[1]));
}
var_dump($data);

/* Закрываем сокеты */
socket_close($sockets[0]);
socket_close($sockets[1]);
?>

Пример #2 Пример использования socket_create_pair() в IPC

<?php
$ary = array();
$strone = 'Сообщение от родительского процесса.';
$strtwo = 'Сообщение от дочернего процесса.';

if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, $ary) === false) {
    echo "Не получилось выполнить socket_create_pair(). Причина: ".socket_strerror(socket_last_error());
}
$pid = pcntl_fork();
if ($pid == -1) {
    echo 'Не могу создать новый процесс.';
} elseif ($pid) {
    /*родительский процесс*/
    socket_close($ary[0]);
    if (socket_write($ary[1], $strone, strlen($strone)) === false) {
        echo "Не получилось выполнить socket_write(). Причина: ".socket_strerror(socket_last_error($ary[1]));
    }
    if (socket_read($ary[1], strlen($strtwo), PHP_BINARY_READ) == $strtwo) {
        echo "Получено $strtwo\n";
    }
    socket_close($ary[1]);
} else {
    /*дочерний процесс*/
    socket_close($ary[1]);
    if (socket_write($ary[0], $strtwo, strlen($strtwo)) === false) {
        echo "Не получилось выполнить socket_write(). Причина: ".socket_strerror(socket_last_error($ary[0]));
    }
    if (socket_read($ary[0], strlen($strone), PHP_BINARY_READ) == $strone) {
        echo "Получено $strone\n";
    }
    socket_close($ary[0]);
}
?>

Смотрите также

  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_create_listen() - Открывает сокет на указанном порту для принятия соединений
  • socket_bind() - Привязывает имя к сокету
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Создаёт сокет (конечную точку для обмена информацией)

  • « socket_create_pair
  • socket_get_option »
  • PHP Manual
  • Сокетные Функции
  • Создаёт сокет (конечную точку для обмена информацией)

socket_create

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_create — Создаёт сокет (конечную точку для обмена информацией)

Описание

resource socket_create ( int $domain , int $type , int $protocol )

Создаёт и возвращает ресурс сокета, также называемый как конечная точка обмена информацией. Типичное сетевое соединение состоит из двух сокетов, один из которых выполняет роль клиента, а другой выполняет роль сервера.

Список параметров

domain

Параметр domain определяет семейство протоколов, используемых сокетами.

Доступные семейства адресов/протоколов
Семейство | Описание
AF_INET | Internet-протоколы IPv4. TCP и UDP - это стандартные протоколы этого семейства протоколов.
AF_INET6 | Internet-протоколы IPv6. TCP и UDP - это стандартные протоколы этого семейства протоколов.
AF_UNIX | Семейство протоколов для локального обмена данными. Высокая эффективность и низкие накладные расходы делают его отличным видом IPC (межпроцессного взаимодействия).
type

Параметр type определяет тип обмена данными, который будет использоваться сокетом.

Доступные типы сокетов
Тип | Описание
SOCK_STREAM | Обеспечивает последовательные, надёжные, полнодуплексные, байтовые потоки с установлением соединения. Может поддерживаться механизм передачи внеполосных (out-of-band) данных. Протокол TCP основан на этом типе сокетов.
SOCK_DGRAM | Поддерживает датаграммы (ненадёжные сообщения без установления соединения, фиксированной максимальной длины). Протокол UDP основан на этом типе сокетов.
SOCK_SEQPACKET | Предоставляет последовательную, надежную, двунаправленную, базирующуюся на соединениях передачу датаграмм с фиксированной максимальной длиной. Потребитель должен читать весь пакет целиком при каждой итерации чтения.
SOCK_RAW | Предоставляет доступ по неподготовленному (raw) сетевому протоколу. Это специальный тип сокета может быть использован для ручного создания любого типа протокола. Стандартное использование этого типа сокетов - выполнение запросов ICMP (таких, как ping).
SOCK_RDM | Предоставляет надежный уровень датаграм, не гарантирующий сохранение порядка. Скорее всего, это семейство протоколов не реализовано в вашей операционной системе.
protocol

Параметр protocol указывает конкретный протокол в заданном семействе протоколов domain, который будет использоваться в обмене данными с созданным сокетом. Соответствующее значение может быть получено по имени при помощи функции getprotobyname(). Если желаемый протокол TCP или UDP, то соответствующие константы SOL_TCP и SOL_UDP также могут быть использованы.

Стандартные протоколы
Название | Описание
icmp | ICMP (Internet Control Message Protocol, протокол межсетевых управляющих сообщений) используется преимущественно шлюзами и хостами для сообщения об ошибках в передаче датаграмм. Команда "ping" (присутствующая в большинстве современных операционных систем) - это пример использования ICMP-протокола.
udp | UDP (User Datagram Protocol, протокол пользовательских датаграмм) - это протокол без установления соединения, ненадёжный, протокол с фиксированной длиной записей. Из-за этих аспектов, UDP требует минимального количества служебной информации.
tcp | TCP (The Transmission Control Protocol, протокол управления передачей) - это надёжный, базирующийся на соединениях, потокоориентированный, полнодуплексный протокол. TCP гарантирует, что все пакеты данных будут получены в том порядке, в котором они были отправлены. Если какой-нибудь пакет каким-либо образом был утерян во время передачи данных, TCP будет автоматически передавать пакет повторно до тех пор, пока хост назначения не подтвердит этот пакет. В целях надежности и производительности, реализация протокола TCP сама выбирает подходящие границы октета нижележащего уровня обмена датаграммами. Таким образом, приложения, использующие TCP, должны предоставлять возможность частичной передачи записей.

Возвращаемые значения

Функция socket_create() возвращает ресурс сокета в случае успеха, или FALSE в случае ошибки. Код ошибки может быть получен при помощи вызова функции socket_last_error(). Эта ошибка может быть передана функции socket_strerror() для получения текстового описания ошибки.

Ошибки

Если указан неверный параметр domain или type, функция socket_create() будет использовать по умолчанию значение AF_INET и SOCK_STREAM соответственно, и дополнительно к этому выдаст сообщение E_WARNING.

Смотрите также

  • socket_accept() - Принимает соединение на сокете
  • socket_bind() - Привязывает имя к сокету
  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Gets socket options for the socket

  • « socket_create
  • socket_getopt »
  • PHP Manual
  • Сокетные Функции
  • Gets socket options for the socket

socket_get_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

socket_get_option — Gets socket options for the socket

Описание

mixed socket_get_option ( resource $socket , int $level , int $optname )

The socket_get_option() function retrieves the value for the option specified by the optname parameter for the specified socket.

Список параметров

socket

A valid socket resource created with socket_create() or socket_accept().

level

The level parameter specifies the protocol level at which the option resides. For example, to retrieve options at the socket level, a level parameter of SOL_SOCKET would be used. Other levels, such as TCP, can be used by specifying the protocol number of that level. Protocol numbers can be found by using the getprotobyname() function.

optname
Available Socket Options
Option | Description | Type
SO_DEBUG | Reports whether debugging information is being recorded. | int
SO_BROADCAST | Reports whether transmission of broadcast messages is supported. | int
SO_REUSEADDR | Reports whether local addresses can be reused. | int
SO_KEEPALIVE | Reports whether connections are kept active with periodic transmission of messages. If the connected socket fails to respond to these messages, the connection is broken and processes writing to that socket are notified with a SIGPIPE signal. | int
SO_LINGER

Reports whether the socket lingers on socket_close() if data is present. By default, when the socket is closed, it attempts to send all unsent data. In the case of a connection-oriented socket, socket_close() will wait for its peer to acknowledge the data.

If l_onoff is non-zero and l_linger is zero, all the unsent data will be discarded and RST (reset) is sent to the peer in the case of a connection-oriented socket.

On the other hand, if l_onoff is non-zero and l_linger is non-zero, socket_close() will block until all the data is sent or the time specified in l_linger elapses. If the socket is non-blocking, socket_close() will fail and return an error.

array. The array will contain two keys: l_onoff and l_linger.
SO_OOBINLINE | Reports whether the socket leaves out-of-band data inline. | int
SO_SNDBUF | Reports the size of the send buffer. | int
SO_RCVBUF | Reports the size of the receive buffer. | int
SO_ERROR | Reports information about error status and clears it. | int (cannot be set by socket_set_option())
SO_TYPE | Reports the socket type (e.g. SOCK_STREAM). | int (cannot be set by socket_set_option())
SO_DONTROUTE | Reports whether outgoing messages bypass the standard routing facilities. | int
SO_RCVLOWAT | Reports the minimum number of bytes to process for socket input operations. | int
SO_RCVTIMEO | Reports the timeout value for input operations. | array. The array will contain two keys: sec which is the seconds part on the timeout value and usec which is the microsecond part of the timeout value.
SO_SNDTIMEO | Reports the timeout value specifying the amount of time that an output function blocks because flow control prevents data from being sent. | array. The array will contain two keys: sec which is the seconds part on the timeout value and usec which is the microsecond part of the timeout value.
SO_SNDLOWAT | Reports the minimum number of bytes to process for socket output operations. | int
TCP_NODELAY | Reports whether the Nagle TCP algorithm is disabled. | int
MCAST_JOIN_GROUP | Joins a multicast group. (added in PHP 5.4) | array with keys "group", specifying a string with an IPv4 or IPv6 multicast address and "interface", specifying either an interface number (type int) or a string with the interface name, like "eth0". 0 can be specified to indicate the interface should be selected using routing rules. (can only be used in socket_set_option())
MCAST_LEAVE_GROUP | Leaves a multicast group. (added in PHP 5.4) | array. See MCAST_JOIN_GROUP for more information. (can only be used in socket_set_option())
MCAST_BLOCK_SOURCE | Blocks packets arriving from a specific source to a specific multicast group, which must have been previously joined. (added in PHP 5.4) | array with the same keys as MCAST_JOIN_GROUP, plus one extra key, source, which maps to a string specifying an IPv4 or IPv6 address of the source to be blocked. (can only be used in socket_set_option())
MCAST_UNBLOCK_SOURCE | Unblocks (start receiving again) packets arriving from a specific source address to a specific multicast group, which must have been previously joined. (added in PHP 5.4) | array with the same format as MCAST_BLOCK_SOURCE. (can only be used in socket_set_option())
MCAST_JOIN_SOURCE_GROUP | Receive packets destined to a specific multicast group whose source address matches a specific value. (added in PHP 5.4) | array with the same format as MCAST_BLOCK_SOURCE. (can only be used in socket_set_option())
MCAST_LEAVE_SOURCE_GROUP | Stop receiving packets destined to a specific multicast group whose soure address matches a specific value. (added in PHP 5.4) | array with the same format as MCAST_BLOCK_SOURCE. (can only be used in socket_set_option())
IP_MULTICAST_IF | The outgoing interface for IPv4 multicast packets. (added in PHP 5.4) | Either int specifying the interface number or a string with an interface name, like eth0. The value 0 can be used to indicate the routing table is to used in the interface selection. The function socket_get_option() returns an interface index. Note that, unlike the C API, this option does NOT take an IP address. This eliminates the interface difference between IP_MULTICAST_IF and IPV6_MULTICAST_IF.
IPV6_MULTICAST_IF | The outgoing interface for IPv6 multicast packets. (added in PHP 5.4) | The same as IP_MULTICAST_IF.
IP_MULTICAST_LOOP | The multicast loopback policy for IPv4 packets, which determines whether multicast packets sent by this socket also reach receivers in the same host that have joined the same multicast group on the outgoing interface used by this socket. This is the case by default. (added in PHP 5.4) | int (either 0 or 1). For socket_set_option() any value will be accepted and will be converted to a boolean following the usual PHP rules.
IPV6_MULTICAST_LOOP | Analogous to IP_MULTICAST_LOOP, but for IPv6. (added in PHP 5.4) | int. See IP_MULTICAST_LOOP.
IP_MULTICAST_TTL | The time-to-live of outgoing IPv4 multicast packets. This should be a value between 0 (don't leave the interface) and 255. The default value is 1 (only the local network is reached). (added in PHP 5.4) | int between 0 and 255.
IPV6_MULTICAST_HOPS | Analogous to IP_MULTICAST_TTL, but for IPv6 packets. The value -1 is also accepted, meaning the route default should be used. (added in PHP 5.4) | int between -1 and 255.

Возвращаемые значения

Returns the value of the given option, or FALSE on errors.

Примеры

Пример #1 socket_get_option() example

<?php
$socket = socket_create_listen(1223);

$linger = array('l_linger' => 1, 'l_onoff' => 1);
socket_set_option($socket, SOL_SOCKET, SO_LINGER, $linger);

var_dump(socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR));
?>

Смотрите также

  • socket_create_listen() - Открывает сокет на указанном порту для принятия соединений
  • socket_set_option() - Устанавливает опции для сокета


Псевдоним socket_get_option

  • « socket_get_option
  • socket_getpeername »
  • PHP Manual
  • Сокетные Функции
  • Псевдоним socket_get_option

socket_getopt

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_getopt — Псевдоним socket_get_option()

Описание

Эта функция является псевдонимом: socket_get_option().


Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

  • « socket_getopt
  • socket_getsockname »
  • PHP Manual
  • Сокетные Функции
  • Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

socket_getpeername

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_getpeername — Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

Описание

bool socket_getpeername ( resource $socket , string &$address [, int &$port ] )

Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create() или socket_accept().

address

Если заданный сокет имеет тип AF_INET или AF_INET6, socket_getpeername() вернет удаленный IP-адрес в соответствующем формате ( например, 127.0.0.1 или fe80::1) в параметре address и, если необязательный параметр port присутствует, также связанный порт.

Если заданный сокет имеет тип AF_UNIX, socket_getpeername() вернет путь в файловой системе Unix (т.е. /var/run/daemon.sock) в параметр address.

port

Если указан, то будет содержать порт, связанный с адресом address.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. socket_getpeername() также может вернуть FALSE, если сокет имет тип отличный от AF_INET, AF_INET6 или AF_UNIX, в этом случае код последней ошибки сокета НЕ будет обновлен.

Примечания

Замечание:

socket_getpeername() не должна быть использована с сокетами AF_UNIX, созданными при помощи функции socket_accept(). Только сокеты, созданные при помощи socket_connect() или серверный сокет, к которому применён вызов функции socket_bind(), будут возвращать осмысленные значения.

Замечание:

Для того, чтобы socket_getpeername() вернула осмысленное значение, сокет, к которому она применяется, должен понимать концепцию "равных отношений" (peer).

Смотрите также

  • socket_getsockname() - Опрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Опрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

  • « socket_getpeername
  • socket_import_stream »
  • PHP Manual
  • Сокетные Функции
  • Опрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

socket_getsockname

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_getsockname — Опрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета

Описание

bool socket_getsockname ( resource $socket , string &$addr [, int &$port ] )

Замечание: Функция socket_getsockname() не должна использоваться с сокетами AF_UNIX, созданными при помощи функции socket_connect(). Только сокеты созданные функцией socket_accept() и первичные серверные сокеты после вызова socket_bind() позволяют получить осмысленный ответ при вызове этой функции.

Список параметров

socket

Действительный ресурс сокета, созданный функцией socket_create() или socket_accept().

addr

Если заданный сокет имеет тип AF_INET или AF_INET6, socket_getpeername() вернет локальный IP-адрес в соответствующем формате ( например, 127.0.0.1 или fe80::1) в параметре address и, если необязательный параметр port присутствует, также связанный порт.

Если заданный сокет имеет тип AF_UNIX, socket_getpeername() вернет путь в файловой системе Unix (т.е. /var/run/daemon.sock) в параметр address.

port

Если указан, то будет содержать порт.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. socket_getsockname() может также возвращать FALSE если тип сокета не является одним из AF_INET, AF_INET6, или AF_UNIX, в этом случае код последней ошибки сокета не обновляется.

Смотрите также

  • socket_getpeername() - Запрашивает удалённую сторону указанного сокета, в результате может быть возвращен хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Import a stream

  • « socket_getsockname
  • socket_last_error »
  • PHP Manual
  • Сокетные Функции
  • Import a stream

socket_import_stream

(PHP 5 >= 5.4.0, PHP 7)

socket_import_stream — Import a stream

Описание

resource socket_import_stream ( resource $stream )

Imports a stream that encapsulates a socket into a socket extension resource.

Список параметров

stream

The stream resource to import.

Возвращаемые значения

Returns FALSE or NULL on failure.

Примеры

Пример #1 socket_import_stream() example

<?php
$stream = stream_socket_server("udp://0.0.0.0:58380", $errno, $errstr, STREAM_SERVER_BIND);
$sock   = socket_import_stream($stream);
?>

Смотрите также

  • stream_socket_server() - Создаёт интернет-сокет или доменный сокет Unix


Возвращает последнюю ошибку на сокете

  • « socket_import_stream
  • socket_listen »
  • PHP Manual
  • Сокетные Функции
  • Возвращает последнюю ошибку на сокете

socket_last_error

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_last_error — Возвращает последнюю ошибку на сокете

Описание

int socket_last_error ([ resource $socket ] )

Если ресурс сокета передан этой функции, то возвращается последняя ошибка, которая произошла на этом конкретном сокете. Если ресурс сокета не указан, возвращается код ошибки последней неудавшейся функции сокетов. Последнее особенно полезно для таких функций, как socket_create(), которая не возвращает сокет в случае неудачи и socket_select(), которая может закончиться неудачно по причинам, не связанным непосредственно с каким-либо конкретным сокетом. Код ошибки подходит для передачи функции socket_strerror(), которая возвращает строку, описывающую указанный код ошибки.

Если ошибок нет или они были очищены функцией socket_clear_error(), функция вернет 0.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create().

Возвращаемые значения

Эта функция возвращает код ошибки сокета.

Примеры

Пример #1 Пример использования socket_last_error()

<?php
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if ($socket === false) {
    $errorcode = socket_last_error();
    $errormsg = socket_strerror($errorcode);

    die("Не могу создать сокет: [$errorcode] $errormsg");
}
?>

Примечания

Замечание:

socket_last_error() не очищает код ошибки, используйте socket_clear_error() для этой цели.


Прослушивает входящие соединения на сокете

  • « socket_last_error
  • socket_read »
  • PHP Manual
  • Сокетные Функции
  • Прослушивает входящие соединения на сокете

socket_listen

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_listen — Прослушивает входящие соединения на сокете

Описание

bool socket_listen ( resource $socket [, int $backlog = 0 ] )

После того, как сокет socket был создан при помощи функции socket_create() и привязан к имени при помощи функции socket_bind(), ему можно указать слушать входящие соединения на сокете socket.

Функция socket_listen() применима только к сокетам типа SOCK_STREAM или SOCK_SEQPACKET.

Список параметров

socket

Действительный ресурс сокета, созданный при помощи функции socket_create().

backlog

Максимум backlog входящих соединений будет помещено в очередь на обработку. Если запрос на соединение придет, когда очередь заполнена, клиент может получить ошибку ECONNREFUSED, или, если базовый протокол позволяет повторную передачу, запрос будет повторен.

Замечание:

Максимальное значение параметра backlog очень сильно зависит используемой платформы. В Linux очень большое значение будет молча обрезано до SOMAXCONN. В win32, если передано SOMAXCONN, базовый провайдер сервиса, ответственного за сокет, установит этот параметр максимальным разумным значением. Нет стандартного способа узнать актуальное значение "backlog" для этой платформы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Смотрите также

  • socket_accept() - Принимает соединение на сокете
  • socket_bind() - Привязывает имя к сокету
  • socket_connect() - Начинает соединение с сокетом
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Читает строку байт максимальной длины length из сокета

  • « socket_listen
  • socket_recv »
  • PHP Manual
  • Сокетные Функции
  • Читает строку байт максимальной длины length из сокета

socket_read

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_read — Читает строку байт максимальной длины length из сокета

Описание

string socket_read ( resource $socket , int $length [, int $type = PHP_BINARY_READ ] )

Функция socket_read() читает данные из ресурса сокета socket, созданного при помощи функций socket_create() или socket_accept().

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функций socket_create() или socket_accept().

length

Максимальное количество байт для чтения определено параметром length. Как вариант вы можете использовать \r, \n, или \0 для окончания чтения (в зависимости от параметра type, см ниже).

type

Необязательный параметр type - это именованная константа:

  • PHP_BINARY_READ (По умолчанию) - используется системная функция recv(). Безопасно для чтения бинарных данных.
  • PHP_NORMAL_READ - чтение останавливается на \n или \r.

Возвращаемые значения

socket_read() возвращает данные в виде строки в случае успеха, или FALSE в случае ошибки (включая случай, когда удалённый хост закрыл соединение). Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Замечание:

socket_read() возвращает строку нулевой длины ("") когда больше нет данных для чтения.

Смотрите также

  • socket_accept() - Принимает соединение на сокете
  • socket_bind() - Привязывает имя к сокету
  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета
  • socket_write() - Запись в сокет


Получает данные из подсоединённого сокета

  • « socket_read
  • socket_recvfrom »
  • PHP Manual
  • Сокетные Функции
  • Получает данные из подсоединённого сокета

socket_recv

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_recv — Получает данные из подсоединённого сокета

Описание

int socket_recv ( resource $socket , string &$buf , int $len , int $flags )

Функция socket_recv() получает len байт данных в буфер buf из сокета socket. функция socket_recv() может быть использована для получения данных из подсоединённых сокетов. Дополнительно к этому, один или более флагов могут быть указаны для изменения поведения функции.

Параметр buf передаётся по ссылке, так что он должен быть указан в виде переменной в списке аргументов. Данные, прочитанные из сокета socket функцией socket_recv(), будут возвращены в параметре buf.

Список параметров

socket

Параметр socket должен быть ресурсом сокета, предварительно созданным при помощи функции socket_create().

buf

Полученные данные будут переданы в переменную, указанную в параметре buf. Если происходит ошибка, если соединение сброшено, или если данные недоступны, параметр buf будет установлен в NULL.

len

До len байт будет получено с удалённого хоста.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, соединённых при помощи двоичного оператора OR (|).

Possible values for flags
Флаг | Описание
MSG_OOB | Обрабатывать внеполосные (out-of-band) данные.
MSG_PEEK | Получать данные с начала очереди получения без удаления их из очереди.
MSG_WAITALL | Функция будет блокировать выполнение скрипта до тех пор, пока как минимум len байт не будет получено. Однако, в том случае, если получен сигнал или удалённый хост отсоединился, функция может вернуть меньше данных.
MSG_DONTWAIT | Если этот флаг установлен, то функция вернётся даже в том случае, если бы она обычно блокировала исполнение скрипта.

Возвращаемые значения

socket_recv() возвращает количество полученных байтов, или FALSE в случае ошибки. Фактический код ошибки может быть получен при помощи функции socket_last_error(). Этот код ошибки может быть передан функции socket_strerror() для получения текстового описания ошибки.

Примеры

Пример #1 Пример использования socket_recv()

Этот пример - просто вариант первого примера из статьи Примеры с использованием socket_recv().

<?php
error_reporting(E_ALL);

echo "<h2>Соединение TCP/IP</h2>\n";

/* Получить порт сервиса WWW. */
$service_port = getservbyname('www', 'tcp');

/* Получить IP-адрес целевого хоста. */
$address = gethostbyname('www.example.com');

/* Создать сокет TCP/IP. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
    echo "Не удалось выполнить функцию socket_create(): причина: " . socket_strerror(socket_last_error()) . "\n";
} else {
    echo "OK.\n";
}

echo "Попытка соединиться с хостом '$address' по порту '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result === false) {
    echo "Не получилось выполнить функцию socket_connect().\nПричина: ($result) " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
    echo "OK.\n";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Отправка запроса HTTP HEAD...";
socket_write($socket, $in, strlen($in));
echo "OK.\n";

echo "Получение ответа:\n\n";
$buf = 'Это мой буфер.';
if (false !== ($bytes = socket_recv($socket, $buf, 2048, MSG_WAITALL))) {
    echo "Прочитано $bytes байта из функции socket_recv(). Закрываем сокет...";
} else {
    echo "Не получилось выполнить socket_recv(); причина: " . socket_strerror(socket_last_error($socket)) . "\n";
}
socket_close($socket);

echo $buf . "\n";
echo "OK.\n\n";
?>

Пример выше выведет что-то вроде следующего:

<h2>TCP/IP Connection</h2>
OK.
Попытка соединиться с хостом '208.77.188.166' on port '80'...OK.
Отправка запроса HTTP HEAD...OK.
Получение ответа:

Прочитано 123 байта из функции socket_recv(). Закрываем сокет...HTTP/1.1 200 OK
Date: Mon, 14 Sep 2009 08:56:36 GMT
Server: Apache/2.2.3 (Red Hat)
Last-Modified: Tue, 15 Nov 2005 13:24:10 GMT
ETag: "b80f4-1b6-80bfd280"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; CHARSET=Windows-1251

OK.


Получает данные из сокета, независимо от того, подсоединён он или нет

  • « socket_recv
  • socket_recvmsg »
  • PHP Manual
  • Сокетные Функции
  • Получает данные из сокета, независимо от того, подсоединён он или нет

socket_recvfrom

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_recvfrom — Получает данные из сокета, независимо от того, подсоединён он или нет

Описание

int socket_recvfrom ( resource $socket , string &$buf , int $len , int $flags , string &$name [, int &$port ] )

Функция socket_recvfrom() получает len байт данных в buf из адреса name на порту port (если сокет не типа AF_UNIX) используя сокет socket. Функция socket_recvfrom() может быть использована для извлечения данных как из подключенных, так и из не подключенных сокетов. Дополнительно, один или более флагов могут быть указаны для того, чтобы изменить поведение функции.

Параметры name и port должны быть переданы по ссылке. Если сокет не ориентированный на соединение, name должен быть установлен как интернет адрес удаленного хоста, либо как путь к сокету UNIX. Если сокет не ориентированный на соединение, name должен быть NULL. Дополнительно, port должен содержать порт удаленного хоста для не подключенных сокетов типа AF_INET и AF_INET6.

Список параметров

socket

Параметр socket должен быть ресурсом сокета, предварительно созданным при помощи функции socket_create().

buf

Полученные данные будут переданы в переменную, указанную при помощи параметра buf.

len

С удалённого хоста будет получено до len байт.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, объединённых при помощи двоичного оператора OR (|) operator.

Возможные значения для параметра flags
Флаг | Описание
MSG_OOB | Обрабатывать внеполосные (out-of-band) данные.
MSG_PEEK | Получать данные из начала очереди не удаляя их.
MSG_WAITALL | Блокировать выполнение скрипта до тех пор, пока как минимум len не будет получено. Однако, если будет получен сигнал или удалённый хост отсоединится, функция может возвратить меньше данных.
MSG_DONTWAIT | Если этот флаг установлен, функция возвратится даже если обычно она будет блокировать выполнение скрипта.
name

Если сокет типа AF_UNIX, name - это путь к файлу. В ином случае, для неподсоединённых сокетов, параметр name - это IP-адрес, удалённого хоста, или NULL если if the socket is connection-oriented.

port

Этот аргумент применим только к сокетам AF_INET и AF_INET6, и указывает удалённый порт, из которого будут получены данные. If the socket is connection-oriented, port will be NULL.

Возвращаемые значения

socket_recvfrom() возвращает количество полученных байт, или FALSE если произошла ошибка. Фактический код ошибки может быть получен при помощи вызова функции socket_last_error(). Этот код ошибки может быть передан функции socket_strerror() для получения текстового описания ошибки.

Примеры

Пример #1 Пример использования socket_recvfrom()

<?php
error_reporting(E_ALL | E_STRICT);

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '127.0.0.1', 1223);

$from = '';
$port = 0;
socket_recvfrom($socket, $buf, 12, 0, $from, $port);

echo "Получено $buf с удалённого адреса $from и удалённого порта $port" . PHP_EOL;
?>

Этот пример откроет UDP-сокет на порту 1223 по адресу 127.0.0.1 и выведет максимум 12 символов, полученных с удалённого хоста.

Список изменений

Версия | Описание
4.3.0 | socket_recvfrom() теперь может работать с двоичными данными.

Смотрите также

  • socket_recv() - Получает данные из подсоединённого сокета
  • socket_send() - Отправляет данные в подсоединённый сокет
  • socket_sendto() - Отправляет сообщение в сокет, независимо от того, подсоединён он или нет
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)


Read a message

  • « socket_recvfrom
  • socket_select »
  • PHP Manual
  • Сокетные Функции
  • Read a message

socket_recvmsg

(PHP 5 >= 5.5.0, PHP 7)

socket_recvmsg — Read a message

Описание

int socket_recvmsg ( resource $socket , string $message [, int $flags ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

socket

message

flags

Возвращаемые значения

Смотрите также

  • socket_sendmsg() - Send a message
  • socket_cmsg_space() - Calculate message buffer size


Runs the select() system call on the given arrays of sockets with a specified timeout

  • « socket_recvmsg
  • socket_send »
  • PHP Manual
  • Сокетные Функции
  • Runs the select() system call on the given arrays of sockets with a specified timeout

socket_select

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_select — Runs the select() system call on the given arrays of sockets with a specified timeout

Описание

int socket_select ( array &$read , array &$write , array &$except , int $tv_sec [, int $tv_usec = 0 ] )

socket_select() accepts arrays of sockets and waits for them to change status. Those coming with BSD sockets background will recognize that those socket resource arrays are in fact the so-called file descriptor sets. Three independent arrays of socket resources are watched.

Список параметров

read

The sockets listed in the read array will be watched to see if characters become available for reading (more precisely, to see if a read will not block - in particular, a socket resource is also ready on end-of-file, in which case a socket_read() will return a zero length string).

write

The sockets listed in the write array will be watched to see if a write will not block.

except

The sockets listed in the except array will be watched for exceptions.

tv_sec

The tv_sec and tv_usec together form the timeout parameter. The timeout is an upper bound on the amount of time elapsed before socket_select() return. tv_sec may be zero , causing socket_select() to return immediately. This is useful for polling. If tv_sec is NULL (no timeout), socket_select() can block indefinitely.

tv_usec

Внимание

On exit, the arrays are modified to indicate which socket resource actually changed status.

You do not need to pass every array to socket_select(). You can leave it out and use an empty array or NULL instead. Also do not forget that those arrays are passed by reference and will be modified after socket_select() returns.

Замечание:

Due a limitation in the current Zend Engine it is not possible to pass a constant modifier like NULL directly as a parameter to a function which expects this parameter to be passed by reference. Instead use a temporary variable or an expression with the leftmost member being a temporary variable:

Пример #1 Using NULL with socket_select()

<?php
$e = NULL;
socket_select($r, $w, $e, 0);
?>

Возвращаемые значения

On success socket_select() returns the number of socket resources contained in the modified arrays, which may be zero if the timeout expires before anything interesting happens. On error FALSE is returned. The error code can be retrieved with socket_last_error().

Замечание:

Be sure to use the === operator when checking for an error. Since the socket_select() may return 0 the comparison with == would evaluate to TRUE:

Пример #2 Understanding socket_select()'s result

<?php
$e = NULL;
if (false === socket_select($r, $w, $e, 0)) {
    echo "socket_select() failed, reason: " .
        socket_strerror(socket_last_error()) . "\n";
}
?>

Примеры

Пример #3 socket_select() example

<?php
/* Prepare the read array */
$read   = array($socket1, $socket2);
$write  = NULL;
$except = NULL;
$num_changed_sockets = socket_select($read, $write, $except, 0);

if ($num_changed_sockets === false) {
    /* Error handling */
} else if ($num_changed_sockets > 0) {
    /* At least at one of the sockets something interesting happened */
}
?>

Примечания

Замечание:

Be aware that some socket implementations need to be handled very carefully. A few basic rules:

  • You should always try to use socket_select() without timeout. Your program should have nothing to do if there is no data available. Code that depends on timeouts is not usually portable and difficult to debug.
  • No socket resource must be added to any set if you do not intend to check its result after the socket_select() call, and respond appropriately. After socket_select() returns, all socket resources in all arrays must be checked. Any socket resource that is available for writing must be written to, and any socket resource available for reading must be read from.
  • If you read/write to a socket returns in the arrays be aware that they do not necessarily read/write the full amount of data you have requested. Be prepared to even only be able to read/write a single byte.
  • It's common to most socket implementations that the only exception caught with the except array is out-of-bound data received on a socket.

Смотрите также

  • socket_read() - Читает строку байт максимальной длины length из сокета
  • socket_write() - Запись в сокет
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Отправляет данные в подсоединённый сокет

  • « socket_select
  • socket_sendmsg »
  • PHP Manual
  • Сокетные Функции
  • Отправляет данные в подсоединённый сокет

socket_send

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_send — Отправляет данные в подсоединённый сокет

Описание

int socket_send ( resource $socket , string $buf , int $len , int $flags )

Функция socket_send() отправляет len байт в сокет socket из буфера buf.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create() или socket_accept().

buf

Буфер, содержащий данные, которые будут отправлены на удалённый хост.

len

Число байт, которое будет отправлено на удалённый хост из буфера buf.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, соединённых при помощи двоичного оператора OR (|).

Возможные значения для параметра flags
MSG_OOB | Отправить OOB (out-of-band, внеполосные) данные.
MSG_EOR | Указывает на метку записи. Отправляемые данные завершают запись.
MSG_EOF | Закрывает отправляющую сторону сокета и добавляет соответствующее оповещение об этом на конце отправляемых данных. Отправляемые данные завершают транзакцию.
MSG_DONTROUTE | Не использовать роутинг, использовать прямой интерфейс.

Возвращаемые значения

socket_send() возвращает количество отправленных байтов или FALSE в случае ошибки.

Смотрите также

  • socket_sendto() - Отправляет сообщение в сокет, независимо от того, подсоединён он или нет


Send a message

  • « socket_send
  • socket_sendto »
  • PHP Manual
  • Сокетные Функции
  • Send a message

socket_sendmsg

(PHP 5 >= 5.5.0, PHP 7)

socket_sendmsg — Send a message

Описание

int socket_sendmsg ( resource $socket , array $message , int $flags )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

socket

message

flags

Возвращаемые значения

Returns the number of bytes sent, или FALSE в случае возникновения ошибки.

Смотрите также

  • socket_recvmsg() - Read a message
  • socket_cmsg_space() - Calculate message buffer size


Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

  • « socket_sendmsg
  • socket_set_block »
  • PHP Manual
  • Сокетные Функции
  • Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

socket_sendto

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_sendto — Отправляет сообщение в сокет, независимо от того, подсоединён он или нет

Описание

int socket_sendto ( resource $socket , string $buf , int $len , int $flags , string $addr [, int $port = 0 ] )

Функция socket_sendto() отправляет len байт из буфера buf через сокет socket к порту port на адресе addr.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи socket_create().

buf

Отправляемые данные будут взяты из буфера buf.

len

len байт из буфера buf будет отправлено.

flags

Значение параметра flags может быть любой комбинацией следующих флагов, соединённых при помощи двоичного оператора OR (|).

Возможные значения флагов flags
MSG_OOB | Отправить OOB (out-of-band, внеполосные) данные.
MSG_EOR | Указывает на метку записи. Отправленные данные завершают запись.
MSG_EOF | Закрывает отправляющую сторону сокета и добавляет соответствующее оповещение об этом в конец отправляемых данных. Отправленные данные завершают транзакцию.
MSG_DONTROUTE | Не использовать маршрутизацию, использовать прямой интерфейс.

addr

IP-адрес удалённого хоста.

port

port - это номер удалённого порта, по которому будут отправлены данные.

Возвращаемые значения

Функция socket_sendto() возвращает количество байт, отправленных на удалённый хост, или FALSE, если произошла ошибка.

Примеры

Пример #1 Пример использования socket_sendto()

<?php
    $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);

    $msg = "Пинг !";
    $len = strlen($msg);

    socket_sendto($sock, $msg, $len, 0, '127.0.0.1', 1223);
    socket_close($sock);
?>

Смотрите также

  • socket_send() - Отправляет данные в подсоединённый сокет


Устанавливает блокирующий режим на ресурсе сокета

  • « socket_sendto
  • socket_set_nonblock »
  • PHP Manual
  • Сокетные Функции
  • Устанавливает блокирующий режим на ресурсе сокета

socket_set_block

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

socket_set_block — Устанавливает блокирующий режим на ресурсе сокета

Описание

bool socket_set_block ( resource $socket )

Функция socket_set_block() убирает флаг O_NONBLOCK с сокета, указанного в параметре socket.

Когда операция (например, получение, отправка, соединение, принятие соединения, ...) выполняется на блокирующем сокете, скрипт будет приостанавливать своё выполнение до тех пор, пока он не получит сигнал или возможность выполнить операцию.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create() или socket_accept().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использованияsocket_set_block()

<?php
$socket = socket_create_listen(1223);
socket_set_block($socket);

socket_accept($socket);
?>

Этот пример создаёт слушающий сокет на всех интерфейсах на порту 1223 и устанавливает сокет в режим O_BLOCK. Функция socket_accept() зависнет до тех пор, пока не будет принято соединение.

Смотрите также

  • socket_set_nonblock() - Устанавливает неблокирующий режим для файлового дескриптора fd
  • socket_set_option() - Устанавливает опции для сокета


Устанавливает неблокирующий режим для файлового дескриптора fd

  • « socket_set_block
  • socket_set_option »
  • PHP Manual
  • Сокетные Функции
  • Устанавливает неблокирующий режим для файлового дескриптора fd

socket_set_nonblock

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_set_nonblock — Устанавливает неблокирующий режим для файлового дескриптора fd

Описание

bool socket_set_nonblock ( resource $socket )

Функция socket_set_nonblock() устанавливает флаг O_NONBLOCK на сокете, указанном в параметре socket.

Когда операция (например, получение, отправка, соединение, принятие соединения, ...) выполняется на неблокирующем сокете, скрипт не будет приостанавливать своё исполнение до получения сигнала или возможности выполнить операцию. Если выполняемая операция должна привести к блокированию выполнения скрипта, то вместо этого вызываемая функция возвратит ошибку.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create() или socket_accept().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования socket_set_nonblock()

<?php
$socket = socket_create_listen(1223);
socket_set_nonblock($socket);

socket_accept($socket);
?>

Этот пример создаёт слушающий сокет на всех интерфейсах на порту 1223 и устанавливает сокет в режим O_NONBLOCK. socket_accept() будет немедленно возвращать ошибку, если только именно в этот момент нету ожидающего соединения.

Смотрите также

  • socket_set_block() - Устанавливает блокирующий режим на ресурсе сокета
  • socket_set_option() - Устанавливает опции для сокета
  • stream_set_blocking() - Устанавливает блокирующий/неблокирующий режим на потоке


Устанавливает опции для сокета

  • « socket_set_nonblock
  • socket_setopt »
  • PHP Manual
  • Сокетные Функции
  • Устанавливает опции для сокета

socket_set_option

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

socket_set_option — Устанавливает опции для сокета

Описание

bool socket_set_option ( resource $socket , int $level , int $optname , mixed $optval )

Функция socket_set_option() устанавливает опцию указанную в параметре optname, на уровне протокола level, в значение, указанное параметром optval для сокета socket.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create() или socket_accept().

level

Параметр level указывает уровень протокола, на котором используется опция. Например, чтобы установить опции на уровне сокета, параметр level должен быть установлен в SOL_SOCKET. Другие уровни, такие как TCP, можно использовать, указав номер протокола этого уровня. Номер протоколов можно найти с помощью функции getprotobyname().

optname

Возможные опции для сокета те же самые, как и для функции socket_get_option().

optval

Значение опции.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования socket_set_option()

<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if (!is_resource($socket)) {
    echo 'Не могу создать сокет: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
    echo 'Не могу установить опцию на сокете: . socket_strerror(socket_last_error()) . PHP_EOL;
}

if (!socket_bind($socket, '127.0.0.1', 1223)) {
    echo 'Не могу привязать сокет: '. socket_strerror(socket_last_error()) . PHP_EOL;
}

$rval = socket_get_option($socket, SOL_SOCKET, SO_REUSEADDR);

if ($rval === false) {
    echo 'Не могу получить опцию сокета: '. socket_strerror(socket_last_error()) . PHP_EOL;
} else if ($rval !== 0) {
    echo 'Опция SO_REUSEADDR установлена на сокете!' . PHP_EOL;
}
?>

Смотрите также

  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)
  • socket_bind() - Привязывает имя к сокету
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета
  • socket_last_error() - Возвращает последнюю ошибку на сокете
  • socket_get_option() - Gets socket options for the socket


Псевдоним socket_set_option

  • « socket_set_option
  • socket_shutdown »
  • PHP Manual
  • Сокетные Функции
  • Псевдоним socket_set_option

socket_setopt

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_setopt — Псевдоним socket_set_option()

Описание

Эта функция является псевдонимом: socket_set_option().


Завершает работу сокета на получение и/или отправку данных

  • « socket_setopt
  • socket_strerror »
  • PHP Manual
  • Сокетные Функции
  • Завершает работу сокета на получение и/или отправку данных

socket_shutdown

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_shutdown — Завершает работу сокета на получение и/или отправку данных

Описание

bool socket_shutdown ( resource $socket [, int $how = 2 ] )

Функция socket_shutdown() позволяет вам остановить передачу поступающих, исходящих или всех данных (по умолчанию) через сокет socket

Замечание:

Ассоциированный буфер, или буфферы, могут быть освобождены, а могут и нет.

Список параметров

socket

Действующий ресурс сокета, созданный при помощи функции socket_create().

how

Значение параметра how может быть одним из следующих:

возможные значения для параметра how
0 | Завершает чтение из сокета
1 | Завершает запись в сокет
2 | Завершает чтение и запись в сокет

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает строку, описывающую ошибку сокета

  • « socket_shutdown
  • socket_write »
  • PHP Manual
  • Сокетные Функции
  • Возвращает строку, описывающую ошибку сокета

socket_strerror

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_strerror — Возвращает строку, описывающую ошибку сокета

Описание

string socket_strerror ( int $errno )

socket_strerror() получает в качестве параметра errno код ошибки сокета, возвращаемый функцией socket_last_error() и возвращает соответствующий текст с разъяснением.

Замечание:

Хотя сообщения об ошибках, создаваемые расширением socket, на английском языке, системные сообщения, получаемые этой функцией, будут появляться в зависимости от текущей локали (LC_MESSAGES).

Список параметров

errno

Допустимый код ошибки сокета, скорее всего, возвращённый функцией socket_last_error().

Возвращаемые значения

Возвращает сообщение об ошибке, связанное с параметром errno.

Примеры

Пример #1 Пример использования socket_strerror()

<?php
if (false == ($socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP))) {
   echo "socket_create() не выполнена: причина: " . socket_strerror(socket_last_error()) . "\n";
}

if (false == (@socket_bind($socket, '127.0.0.1', 80))) {
   echo "socket_bind() не выполнена: причина: " . socket_strerror(socket_last_error($socket)) . "\n";
}
?>

Ожидаемый вывод из примера выше (подразумевается, что скрипт не запущен с привилегиями суперпользователя root):

socket_bind() не выполнена: причина: Доступ запрещён

Смотрите также

  • socket_accept() - Принимает соединение на сокете
  • socket_bind() - Привязывает имя к сокету
  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_create() - Создаёт сокет (конечную точку для обмена информацией)


Запись в сокет

  • « socket_strerror
  • SSH2 »
  • PHP Manual
  • Сокетные Функции
  • Запись в сокет

socket_write

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

socket_write — Запись в сокет

Описание

int socket_write ( resource $socket , string $buffer [, int $length ] )

Функция socket_write() записывает в сокет socket данные из указанного буфера buffer.

Список параметров

socket

buffer

Буфер, который будет записан.

length

Необязательный параметр length может указывать другое число байт, записываемых в сокет. Если это число больше, чем длина буфера, оно будет молча урезано до длины буфера.

Возвращаемые значения

Возвращает количество байт, успешно записанных в сокет или FALSE в случае возникновения ошибки. Код ошибки может быть получен при помощи функции socket_last_error(). Этот код может быть передан функции socket_strerror() для получения текстового описания ошибки.

Замечание:

Совершенно нормально для функции socket_write() возвращать ноль, что означает, что ни одного байта не было записано. Пожалуйста, используйте оператор === для проверки значения на FALSE в случае ошибки.

Примечания

Замечание:

socket_write() не обязательно записывает все байты из указанного буфера. Нормально то, что, в зависимости от сетевых буферов и т. д., только некоторое количество данных, даже один байт, будет записан, хотя ваш буфер больше. Вы должны следить за тем, чтобы непреднамеренно не забыть передать остаток ваших данных.

Смотрите также

  • socket_accept() - Принимает соединение на сокете
  • socket_bind() - Привязывает имя к сокету
  • socket_connect() - Начинает соединение с сокетом
  • socket_listen() - Прослушивает входящие соединения на сокете
  • socket_read() - Читает строку байт максимальной длины length из сокета
  • socket_strerror() - Возвращает строку, описывающую ошибку сокета


Secure Shell2

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • SSH2 Функции
    • ssh2_auth_agent — Аутентификация через SSH используя агент ssh
    • ssh2_auth_hostbased_file — Аутентификация с использованием публичного ключа хоста
    • ssh2_auth_none — Аутентификация как "none"
    • ssh2_auth_password — Authenticate over SSH using a plain password
    • ssh2_auth_pubkey_file — Аутентификация с публичным ключем
    • ssh2_connect — Connect to an SSH server
    • ssh2_exec — Запуск команды на удаленном сервере
    • ssh2_fetch_stream — Получение расширенного потока данных
    • ssh2_fingerprint — Получение отпечатка удаленного сервера
    • ssh2_methods_negotiated — Возвращает список согласовынных методов
    • ssh2_publickey_add — Добавляет авторизованный публичный ключ
    • ssh2_publickey_init — Инициализирует подсистему публичного ключа (SSH2 Publickey Subsystem)
    • ssh2_publickey_list — Список уже авторизованных публичных ключей
    • ssh2_publickey_remove — Удаляет авторизованный публичный ключ
    • ssh2_scp_recv — Запрос файла через SCP
    • ssh2_scp_send — Пересылка файла через SCP
    • ssh2_sftp_chmod — Изменение прав дуступа
    • ssh2_sftp_lstat — Информация о символической ссылке
    • ssh2_sftp_mkdir — Создает директорию
    • ssh2_sftp_readlink — Возвращает объект по символической ссылке
    • ssh2_sftp_realpath — Определяет полный путь по предоставленной строке с путем
    • ssh2_sftp_rename — Переименовывает файл
    • ssh2_sftp_rmdir — Удаляет директорию
    • ssh2_sftp_stat — Информация о файле
    • ssh2_sftp_symlink — Создает символическую ссылку
    • ssh2_sftp_unlink — Удаляет файл на сервере
    • ssh2_sftp — Инициализирует подсистему SFTP
    • ssh2_shell — Запрашивает интерактивный терминал
    • ssh2_tunnel — Открыть туннель через удаленный сервер


Введение

Привязка к библиотеке » libssh2, которая предоставляет доступ к ресурсам (shell, удалённый запуск, туннелирование, передача файлов) на удалённом компьютере с использованием криптографически защищённой передачи данных.


Требования

Для установки SSH2 требуется наличие установленных библиотек » OpenSSL и » libssh2. Убедитесь, что указанные библиотеки присутствуют в системе. Типичным названием пакета может быть openssl-dev.

Необходима версия libssh2 1.2 или новее. Однако возможно, что новые релизы pecl/ssh2 потребуют более новые версии (смотрите примечания к релизу).

Функция ssh2_auth_agent() доступна только с версией libssh >= 1.2.3.

Поддержка канальных потоков в stream_set_timeout() доступна только с версией libssh >= 1.2.9.

Libssh2 поставляется в двух вариантах: gcrypt или openssl. Некоторые дистрибутивы Linux собирают libssh2 с библиотекой gcrypt, некоторые с openssl. Libssh2 имеет некоторые проблемы при компиляции с gcrypt, поэтому используйте версию с openssl.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/ssh2.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SSH2_FINGERPRINT_MD5 (integer)
Флаг для получения идентификатора сервера в виде хеш-суммы MD5 функцией ssh2_fingerprint().
SSH2_FINGERPRINT_SHA1 (integer)
Флаг для получения идентификатора сервера в виде хеш-суммы SHA1 функцией ssh2_fingerprint().
SSH2_FINGERPRINT_HEX (integer)
Флаг для получения идентификатора сервера функцией ssh2_fingerprint() в виде строки шестнадцатеричных символов.
SSH2_FINGERPRINT_RAW (integer)
Флаг для получения идентификатора сервера функцией ssh2_fingerprint() в виде неотформатированной строки восьмибитных символов.
SSH2_TERM_UNIT_CHARS (integer)
Флаг для функции ssh2_shell(), определяющий, что параметры width и height задаются в виде количества символов.
SSH2_TERM_UNIT_PIXELS (integer)
Флаг для функции ssh2_shell(), определяющий, что параметры width и height задаются в пикселях.
SSH2_DEFAULT_TERM_WIDTH (integer)
Принятое по умолчанию значение ширины окна терминала, принимаемое функцией ssh2_shell().
SSH2_DEFAULT_TERM_HEIGHT (integer)
Принятое по умолчанию значение высоты окна терминала, принимаемое функцией ssh2_shell().
SSH2_DEFAULT_TERM_UNIT (integer)
Принятая по умолчанию единица измерения значений ширины и высоты окна терминала, принимаемых функцией ssh2_shell().
SSH2_STREAM_STDIO (integer)
Флаг функции ssh2_fetch_stream(), запрашивающей суб-канал STDIO.
SSH2_STREAM_STDERR (integer)
Флаг функции ssh2_fetch_stream(), запрашивающей суб-канал STDERR.
SSH2_DEFAULT_TERMINAL (string)
Принятый по умолчанию тип терминала (например, vt102, ansi, xterm, vanilla), запрашиваемый функцией ssh2_shell().


SSH2 Функции

Содержание

  • ssh2_auth_agent — Аутентификация через SSH используя агент ssh
  • ssh2_auth_hostbased_file — Аутентификация с использованием публичного ключа хоста
  • ssh2_auth_none — Аутентификация как "none"
  • ssh2_auth_password — Authenticate over SSH using a plain password
  • ssh2_auth_pubkey_file — Аутентификация с публичным ключем
  • ssh2_connect — Connect to an SSH server
  • ssh2_exec — Запуск команды на удаленном сервере
  • ssh2_fetch_stream — Получение расширенного потока данных
  • ssh2_fingerprint — Получение отпечатка удаленного сервера
  • ssh2_methods_negotiated — Возвращает список согласовынных методов
  • ssh2_publickey_add — Добавляет авторизованный публичный ключ
  • ssh2_publickey_init — Инициализирует подсистему публичного ключа (SSH2 Publickey Subsystem)
  • ssh2_publickey_list — Список уже авторизованных публичных ключей
  • ssh2_publickey_remove — Удаляет авторизованный публичный ключ
  • ssh2_scp_recv — Запрос файла через SCP
  • ssh2_scp_send — Пересылка файла через SCP
  • ssh2_sftp_chmod — Изменение прав дуступа
  • ssh2_sftp_lstat — Информация о символической ссылке
  • ssh2_sftp_mkdir — Создает директорию
  • ssh2_sftp_readlink — Возвращает объект по символической ссылке
  • ssh2_sftp_realpath — Определяет полный путь по предоставленной строке с путем
  • ssh2_sftp_rename — Переименовывает файл
  • ssh2_sftp_rmdir — Удаляет директорию
  • ssh2_sftp_stat — Информация о файле
  • ssh2_sftp_symlink — Создает символическую ссылку
  • ssh2_sftp_unlink — Удаляет файл на сервере
  • ssh2_sftp — Инициализирует подсистему SFTP
  • ssh2_shell — Запрашивает интерактивный терминал
  • ssh2_tunnel — Открыть туннель через удаленный сервер


Аутентификация через SSH используя агент ssh

  • « SSH2 Функции
  • ssh2_auth_hostbased_file »
  • PHP Manual
  • SSH2 Функции
  • Аутентификация через SSH используя агент ssh

ssh2_auth_agent

(PECL ssh2 >= 0.12)

ssh2_auth_agent — Аутентификация через SSH используя агент ssh

Описание

bool ssh2_auth_agent ( resource $session , string $username )

Аутентификация через 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 "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}
?>


Аутентификация с использованием публичного ключа хоста

  • « ssh2_auth_agent
  • ssh2_auth_none »
  • PHP Manual
  • SSH2 Функции
  • Аутентификация с использованием публичного ключа хоста

ssh2_auth_hostbased_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_hostbased_file — Аутентификация с использованием публичного ключа хоста

Описание

bool ssh2_auth_hostbased_file ( resource $session , string $username , string $hostname , string $pubkeyfile , string $privkeyfile [, string $passphrase [, string $local_username ]] )

Аутентификация с использованием публичного ключа хоста, сохраненного в файле.

Список параметров

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 "Public Key Hostbased Authentication Successful\n";
} else {
  die('Public Key Hostbased Authentication Failed');
}
?>

Примечания

Замечание:

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"

Описание

mixed ssh2_auth_none ( resource $session , string $username )

Попытка пройти аутентификацию как "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 "Server supports password based authentication\n";
}
?>


Authenticate over SSH using a plain password

  • « ssh2_auth_none
  • ssh2_auth_pubkey_file »
  • PHP Manual
  • SSH2 Функции
  • Authenticate over SSH using a plain password

ssh2_auth_password

(PECL ssh2 >= 0.9.0)

ssh2_auth_password — Authenticate over SSH using a plain password

Описание

bool ssh2_auth_password ( resource $session , string $username , string $password )

Аутентификация через 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 "Authentication Successful!\n";
} else {
  die('Authentication Failed...');
}
?>


Аутентификация с публичным ключем

  • « ssh2_auth_password
  • ssh2_connect »
  • PHP Manual
  • SSH2 Функции
  • Аутентификация с публичным ключем

ssh2_auth_pubkey_file

(PECL ssh2 >= 0.9.0)

ssh2_auth_pubkey_file — Аутентификация с публичным ключем

Описание

bool ssh2_auth_pubkey_file ( resource $session , string $username , string $pubkeyfile , string $privkeyfile [, string $passphrase ] )

Аутентификация с публичным ключем, сохраненном в файле.

Список параметров

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 "Public Key Authentication Successful\n";
} else {
  die('Public Key Authentication Failed');
}
?>

Примечания

Замечание:

The underlying libssh library doesn't support partial auths very cleanly That is, if you need to supply both a public key and a password it will appear as if this function has failed. In this particular case a failure from this call may just mean that auth hasn't been completed yet. You would need to ignore this failure and continue on and call ssh2_auth_password() in order to complete authentication.


Connect to an SSH server

  • « ssh2_auth_pubkey_file
  • ssh2_exec »
  • PHP Manual
  • SSH2 Функции
  • Connect to an SSH server

ssh2_connect

(PECL ssh2 >= 0.9.0)

ssh2_connect — Connect to an SSH server

Описание

resource ssh2_connect ( string $host [, int $port = 22 [, array $methods [, array $callbacks ]]] )

Устанавливает соединение с сервером по 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
/* JОповещаем пользователя, если сервер прервал соединение */
function my_ssh_disconnect($reason, $message, $language) {
  printf("Server disconnected with reason code [%d] and message: %s\n",
         $reason, $message);
}

$methods = array(
  'kex' => 'diffie-hellman-group1-sha1',
  'client_to_server' => array(
    'crypt' => '3des-cbc',
    'comp' => 'none'),
  'server_to_client' => array(
    'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
    'comp' => 'none'));

$callbacks = array('disconnect' => 'my_ssh_disconnect');

$connection = ssh2_connect('shell.example.com', 22, $methods, $callbacks);
if (!$connection) die('Connection failed');
?>

Смотрите также

  • ssh2_fingerprint() - Получение отпечатка удаленного сервера
  • ssh2_auth_none() - Аутентификация как "none"
  • ssh2_auth_password() - Authenticate over SSH using a plain password
  • ssh2_auth_pubkey_file() - Аутентификация с публичным ключем


Запуск команды на удаленном сервере

  • « ssh2_connect
  • ssh2_fetch_stream »
  • PHP Manual
  • SSH2 Функции
  • Запуск команды на удаленном сервере

ssh2_exec

(PECL ssh2 >= 0.9.0)

ssh2_exec — Запуск команды на удаленном сервере

Описание

resource ssh2_exec ( resource $session , string $command [, string $pty [, array $env [, int $width = 80 [, int $height = 25 [, int $width_height_type = SSH2_TERM_UNIT_CHARS ]]]]] )

Запуск команды на удаленном сервере и выделение для нее канала.

Список параметров

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() - Connect to an SSH server
  • ssh2_shell() - Запрашивает интерактивный терминал
  • ssh2_tunnel() - Открыть туннель через удаленный сервер


Получение расширенного потока данных

  • « ssh2_exec
  • ssh2_fingerprint »
  • PHP Manual
  • SSH2 Функции
  • Получение расширенного потока данных

ssh2_fetch_stream

(PECL ssh2 >= 0.9.0)

ssh2_fetch_stream — Получение расширенного потока данных

Описание

resource ssh2_fetch_stream ( resource $channel , int $streamid )

Получение альтернативного подпотока, ассоциированного с потоком канала 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() - Connect to an SSH server


Получение отпечатка удаленного сервера

  • « ssh2_fetch_stream
  • ssh2_methods_negotiated »
  • PHP Manual
  • SSH2 Функции
  • Получение отпечатка удаленного сервера

ssh2_fingerprint

(PECL ssh2 >= 0.9.0)

ssh2_fingerprint — Получение отпечатка удаленного сервера

Описание

string ssh2_fingerprint ( resource $session [, int $flags = SSH2_FINGERPRINT_MD5 | SSH2_FINGERPRINT_HEX ] )

Возвращает хэш серверного ключа из активной сессии.

Список параметров

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("HOSTKEY MISMATCH!\n" .
      "Possible Man-In-The-Middle Attack?");
}
?>


Возвращает список согласовынных методов

  • « ssh2_fingerprint
  • ssh2_publickey_add »
  • PHP Manual
  • SSH2 Функции
  • Возвращает список согласовынных методов

ssh2_methods_negotiated

(PECL ssh2 >= 0.9.0)

ssh2_methods_negotiated — Возвращает список согласовынных методов

Описание

array ssh2_methods_negotiated ( resource $session )

Возвращает список согласовынных методов.

Список параметров

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() - Connect to an SSH server


Добавляет авторизованный публичный ключ

  • « ssh2_methods_negotiated
  • ssh2_publickey_init »
  • PHP Manual
  • SSH2 Функции
  • Добавляет авторизованный публичный ключ

ssh2_publickey_add

(PECL ssh2 >= 0.10)

ssh2_publickey_add — Добавляет авторизованный публичный ключ

Описание

bool ssh2_publickey_add ( resource $pkey , string $algoname , string $blob [, bool $overwrite = false [, array $attributes ]] )

Замечание: Подсистема публичных ключей используется для управления публичными ключами на сервере, на котором клиент уже прошел авторизацию. Для авторизации с помощью публичного ключа на удаленной системе, используйте вместо этого функцию 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 Subsystem)
  • ssh2_publickey_remove() - Удаляет авторизованный публичный ключ
  • ssh2_publickey_list() - Список уже авторизованных публичных ключей


Инициализирует подсистему публичного ключа (SSH2 Publickey Subsystem)

  • « ssh2_publickey_add
  • ssh2_publickey_list »
  • PHP Manual
  • SSH2 Функции
  • Инициализирует подсистему публичного ключа (SSH2 Publickey Subsystem)

ssh2_publickey_init

(PECL ssh2 >= 0.10)

ssh2_publickey_init — Инициализирует подсистему публичного ключа (SSH2 Publickey Subsystem)

Описание

resource ssh2_publickey_init ( resource $session )

Запрашивает подсистему публичного ключа из уже открытого соединения SSH2.

Подсистема публичного ключа позволяет авторизованному клиенту управлять списком авторизованных публичных ключей, хранящихся на сервере независимым образом. Если удаленный сервер не поддерживает подсистему публичного ключа, функция ssh2_publickey_init() вернет FALSE.

Список параметров

session

Возвращаемые значения

Возвращает ресурс Подсистемы Публичного Ключа SSH2 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 — Список уже авторизованных публичных ключей

Описание

array ssh2_publickey_list ( resource $pkey )

Список уже авторизованных публичных ключей.

Список параметров

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 Subsystem)
  • 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 — Удаляет авторизованный публичный ключ

Описание

bool ssh2_publickey_remove ( resource $pkey , string $algoname , string $blob )

Удаляет авторизованный публичный ключ.

Список параметров

pkey

Ресурс подсистемы публичного ключа

algoname

Алгоритм ключа: ssh-dss, ssh-rsa

blob

Бинарная строка, содержащая ключ

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Подсистема публичных ключей используется для управления публичными ключами на сервере, на котором клиент уже прошел авторизацию. Для авторизации с помощью публичного ключа на удаленной системе, используйте вместо этого функцию ssh2_auth_pubkey_file().

Смотрите также

  • ssh2_publickey_init() - Инициализирует подсистему публичного ключа (SSH2 Publickey Subsystem)
  • 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

Описание

bool ssh2_scp_recv ( resource $session , string $remote_file , string $local_file )

Копирование файла с сервера на клиента используя протокол SCP.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

remote_file

Путь к файлу на сервере.

local_file

Локальный путь для сохранения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Загрузка файла через SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_recv($connection, '/remote/filename', '/local/filename');
?>

Смотрите также

  • ssh2_scp_send() - Пересылка файла через SCP
  • copy() - Копирует файл


Пересылка файла через SCP

  • « ssh2_scp_recv
  • ssh2_sftp_chmod »
  • PHP Manual
  • SSH2 Функции
  • Пересылка файла через SCP

ssh2_scp_send

(PECL ssh2 >= 0.9.0)

ssh2_scp_send — Пересылка файла через SCP

Описание

bool ssh2_scp_send ( resource $session , string $local_file , string $remote_file [, int $create_mode = 0644 ] )

Копирование файла с клиента на сервер используя протокол SCP.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

local_file

путь к локальному файлу.

remote_file

Путь на сервере, куда будет сохранен файл.

create_mode

Файл будет создан с правами доступа, указанным в create_mode.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Загрузка файла на сервер через SCP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

ssh2_scp_send($connection, '/local/filename', '/remote/filename', 0644);
?>

Смотрите также

  • ssh2_scp_recv() - Запрос файла через SCP
  • copy() - Копирует файл


Изменение прав дуступа

  • « ssh2_scp_send
  • ssh2_sftp_lstat »
  • PHP Manual
  • SSH2 Функции
  • Изменение прав дуступа

ssh2_sftp_chmod

(PECL ssh2 >= 0.12)

ssh2_sftp_chmod — Изменение прав дуступа

Описание

bool ssh2_sftp_chmod ( resource $sftp , string $filename , int $mode )

Пытается изменить маску прав доступа у указанного файла на сервере на 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() - Connect to an SSH server


Информация о символической ссылке

  • « ssh2_sftp_chmod
  • ssh2_sftp_mkdir »
  • PHP Manual
  • SSH2 Функции
  • Информация о символической ссылке

ssh2_sftp_lstat

(PECL ssh2 >= 0.9.0)

ssh2_sftp_lstat — Информация о символической ссылке

Описание

array ssh2_sftp_lstat ( resource $sftp , string $path )

Информация о символической ссылке на серверной файловой системе без перехода по ней.

Эта функция аналогична использованию функции lstat() с оберткой ssh2.sftp:// в PHP 5, и возвращает такие же значения.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

path

Путь к символической ссылке.

Возвращаемые значения

Список возвращаемых значений смотрите в описании функции stat().

Примеры

Пример #1 Информация о симлолической ссылке

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_lstat($sftp, '/path/to/symlink');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

Смотрите также

  • ssh2_sftp_stat() - Информация о файле
  • lstat() - Возвращает информацию о файле или символической ссылке
  • stat() - Возвращает информацию о файле


Создает директорию

  • « ssh2_sftp_lstat
  • ssh2_sftp_readlink »
  • PHP Manual
  • SSH2 Функции
  • Создает директорию

ssh2_sftp_mkdir

(PECL ssh2 >= 0.9.0)

ssh2_sftp_mkdir — Создает директорию

Описание

bool ssh2_sftp_mkdir ( resource $sftp , string $dirname [, int $mode = 0777 [, bool $recursive = false ]] )

Создает директорию на сервере с заданными в mode правами доступа.

Функция аналогитчка использованию mkdir() с оберткой ssh2.sftp://.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

dirname

Путь к новой директории.

mode

Маска прав доступа.

recursive

Если recursive задан как TRUE, все вышестоящие над dirname директории, если их нет - также будут созданы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 СОздание директории на удаленном сервере

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);

ssh2_sftp_mkdir($sftp, '/home/username/newdir');
/* Or:  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 — Возвращает объект по символической ссылке

Описание

string ssh2_sftp_readlink ( resource $sftp , string $link )

Возвращает объект по символической ссылке.

Список параметров

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 is now (e.g.): '/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 — Определяет полный путь по предоставленной строке с путем

Описание

string ssh2_sftp_realpath ( resource $sftp , string $filename )

Преобразует 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 — Переименовывает файл

Описание

bool ssh2_sftp_rename ( resource $sftp , string $from , string $to )

Переименовывает файл на сервере.

Список параметров

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 — Удаляет директорию

Описание

bool ssh2_sftp_rmdir ( resource $sftp , string $dirname )

Удаляет директорию на сервере.

Работает аналогично 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');
/* Or:  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 — Информация о файле

Описание

array ssh2_sftp_stat ( resource $sftp , string $path )

Информация о файле на сервере с учетом символических ссылок.

Функция работает аналогично stat() с оберткой ssh2.sftp:// в PHP 5 и возвращает такие же значения.

Список параметров

sftp

Ресурс SSH2 SFTP, открытый с помощью ssh2_sftp().

path

Возвращаемые значения

Список возвращаемых значений смотрите в описании функции stat().

Примеры

Пример #1 Информация о файле

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_stat($sftp, '/path/to/file');

$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>

Смотрите также

  • ssh2_sftp_lstat() - Информация о символической ссылке
  • lstat() - Возвращает информацию о файле или символической ссылке
  • stat() - Возвращает информацию о файле


Создает символическую ссылку

  • « ssh2_sftp_stat
  • ssh2_sftp_unlink »
  • PHP Manual
  • SSH2 Функции
  • Создает символическую ссылку

ssh2_sftp_symlink

(PECL ssh2 >= 0.9.0)

ssh2_sftp_symlink — Создает символическую ссылку

Описание

bool ssh2_sftp_symlink ( resource $sftp , string $target , string $link )

Создает символическую ссылку с именем 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 — Удаляет файл на сервере

Описание

bool ssh2_sftp_unlink ( resource $sftp , string $filename )

Удаляет файл на сервере.

Список параметров

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

Описание

resource ssh2_sftp ( resource $session )

Запрашивает подсистему SFTP из уже открытого соединения SSH2.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

Возвращаемые значения

Этот метод возвращает ресурс SSH2 SFTP для использования в остальных функциях ssh2_sftp_*() и обертке ssh2.sftp:// для fopen.

Примеры

Пример #1 Открытие файла через SFTP

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$sftp = ssh2_sftp($connection);

$stream = fopen("ssh2.sftp://$sftp/path/to/file", 'r');
?>

Смотрите также

  • ssh2_scp_recv() - Запрос файла через SCP
  • ssh2_scp_send() - Пересылка файла через SCP


Запрашивает интерактивный терминал

  • « ssh2_sftp
  • ssh2_tunnel »
  • PHP Manual
  • SSH2 Функции
  • Запрашивает интерактивный терминал

ssh2_shell

(PECL ssh2 >= 0.9.0)

ssh2_shell — Запрашивает интерактивный терминал

Описание

resource ssh2_shell ( resource $session [, string $term_type = "vanilla" [, array $env [, int $width = 80 [, int $height = 25 [, int $width_height_type = SSH2_TERM_UNIT_CHARS ]]]]] )

Открывает терминал к удаленному серверу и выделяет ему поток.

Список параметров

session

Идентификатор соединения SSH, полученный из ssh2_connect().

term_type

Тип терменала term_type. Должен соответствовать одному из перечисленных в серверном файле /etc/termcap.

env

env может содержать ассоциативный массив пар имя/значение, описывающих переменные окружения, которые надо выставить в терминале.

width

Ширина виртуального терминала.

height

Высота виртуального терминала.

width_height_type

width_height_type должен быть SSH2_TERM_UNIT_CHARS или SSH2_TERM_UNIT_PIXELS.

Возвращаемые значения

Примеры

Пример #1 Запрос терминала

<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');

$stream = ssh2_shell($connection, 'vt102', null, 80, 24, SSH2_TERM_UNIT_CHARS);
?>

Смотрите также

  • ssh2_exec() - Запуск команды на удаленном сервере
  • ssh2_tunnel() - Открыть туннель через удаленный сервер
  • ssh2_fetch_stream() - Получение расширенного потока данных


Открыть туннель через удаленный сервер

  • « ssh2_shell
  • Stomp »
  • PHP Manual
  • SSH2 Функции
  • Открыть туннель через удаленный сервер

ssh2_tunnel

(PECL ssh2 >= 0.9.0)

ssh2_tunnel — Открыть туннель через удаленный сервер

Описание

resource ssh2_tunnel ( resource $session , string $host , int $port )

Открывает поток сокета к произвольным хосту/порту посредством подключенного в данный момент сервера 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() - Connect to an SSH server
  • fsockopen() - Открывает соединение с интернет сокетом или доменным сокетом Unix


Stomp Client

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Примеры
  • Stomp
    • stomp_connect_error — Возвращает строку с описанием последней ошибки подключения
    • stomp_version — Возвращает текущую версию расширения Stomp
  • Stomp — Класс Stomp
    • Stomp::abort — Отменяет выполнение текущей транзакции
    • Stomp::ack — Подтверждает получение сообщения
    • Stomp::begin — Создает транзакцию
    • Stomp::commit — Выполняет текущую транзакцию
    • Stomp::__construct — Открывает соединение
    • Stomp::__destruct — Закрывает Stomp-соединение
    • Stomp::error — Возвращает последнюю ошибку Stomp
    • Stomp::getReadTimeout — Возвращает время максимального ожидания операции чтения
    • Stomp::getSessionId — Возвращает идентификатор текущей сессии Stomp
    • Stomp::hasFrame — Проверяет, возможно ли чтение фрейма
    • Stomp::readFrame — Выполняет операцию чтения следующего фрейма
    • Stomp::send — Отправляет сообщение
    • Stomp::setReadTimeout — Устанавливает предельное время ожидания операции чтения
    • Stomp::subscribe — Регистрирует подписку на указанную рассылку
    • Stomp::unsubscribe — Удаляет существующую подписку
  • StompFrame — Класс StompFrame
    • StompFrame::__construct — Конструктор
  • StompException — Класс StompException
    • StompException::getDetails — Возвращает сведения об исключении


Введение

Это расширение позволяет PHP приложениям взаимодействовать с любыми Stomp-совместимыми брокерами сообщений (Message Broker) через лёгкие объектно-ориентированные или процедурные интерфейсы. » Официальный сайт Stomp


Требования

PECL/stomp требует PHP 5.2.2 или выше.

» OpenSSL >= 0.9.6 и расширение openssl может также потребоваться для использования stomp через SSL.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://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

Брокер URK по умолчанию, используемый при подключении к брокеру сообщений, если прочие URI не указаны.

stomp.default_connection_timeout_sec integer

Секундная часть времени ожидания подключения по умолчанию.

stomp.default_connection_timeout_usec integer

Микросекундная часть времени ожидания подключения по умолчанию.

stomp.default_read_timeout_sec integer

Секундная часть времени ожидания операции чтения чтения по умолчанию.

stomp.default_read_timeout_usec integer

Микросекундная часть времени ожидания операции чтения по умолчанию.


Типы ресурсов

Существует только один тип ресурсов, используемый в расширении stomp - это идентификатор ссылки для stomp соединения.


Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* Подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Connection failed: ' . $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('Connection failed: ' . 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 — Возвращает строку с описанием последней ошибки подключения

Описание

string stomp_connect_error ( void )

Возвращает строку с описанием последней ошибки подключения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка с описанием ошибки, или 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

Описание

string stomp_version ( void )

Возвращает строку, содержащую версию текущего расширения Stomp.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущую версию расширения Stomp

Примеры

Пример #1 Пример использования stomp_version()

<?php

var_dump(stomp_version());

?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "0.2.0"


Класс Stomp

(PECL stomp >= 0.1.0)

Введение

Представляет связь между PHP и Stomp совместимым брокером сообщений (Message Broker).

Обзор классов

Stomp {
/* Методы */
public bool abort ( string $transaction_id [, array $headers ] )
public bool ack ( mixed $msg [, array $headers ] )
public bool begin ( string $transaction_id [, array $headers ] )
public bool commit ( string $transaction_id [, array $headers ] )
public __construct ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] )
public bool __destruct ( void )
public string error ( void )
public array getReadTimeout ( void )
public string getSessionId ( void )
public bool hasFrame ( void )
public stompframe readFrame ([ string $class_name = "stompFrame" ] )
public bool send ( string $destination , mixed $msg [, array $headers ] )
public void setReadTimeout ( int $seconds [, int $microseconds ] )
public bool subscribe ( string $destination [, array $headers ] )
public bool unsubscribe ( string $destination [, array $headers ] )
}

Содержание

  • 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 bool Stomp::abort ( string $transaction_id [, array $headers ] )

Процедурный стиль:

bool stomp_abort ( resource $link , string $transaction_id [, array $headers ] )

Отменяет выполнение текущей транзакции.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

transaction_id

Транзакция, которую нужно прервать.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

/* начало транзакции */
$stomp->begin('t1');

/* отправка сообщения в очередь */
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1'));

/* откат транзакции */
$stomp->abort('t1');

/* разрыв подключения */
unset($stomp);
?>

Пример #2 Процедурный стиль

<?php

/* подключение */
$link = stomp_connect('tcp://localhost:61613');

/* проверка подключения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

/* начало транзакции */
stomp_begin($link, 't1');

/* отправка сообщения в очередь 'foo' */
stomp_send($link, '/queue/foo', 'bar', array('transaction' => 't1'));

/* откат транзакции */
stomp_abort($link, 't1');

/* разрыв подключения */
stomp_close($link);

?>


Подтверждает получение сообщения

  • « Stomp::abort
  • Stomp::begin »
  • PHP Manual
  • Stomp
  • Подтверждает получение сообщения

Stomp::ack

stomp_ack

(PECL stomp >= 0.1.0)

Stomp::ack -- stomp_ack — Подтверждает получение сообщения

Описание

Объектно-ориентированный стиль (метод):

public bool Stomp::ack ( mixed $msg [, array $headers ] )

Процедурный стиль:

bool stomp_ack ( resource $link , mixed $msg [, array $headers ] )

Подтверждает факт получения сообщения из очереди, используя подтверждение клиента.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

msg

Сообщение/идентификатор сообщения, получение которого должно быть подтверждено.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Также может быть указан заголовок транзакции, означающий что прием сообщения должен являться частью именованной транзакции.

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

/* отправка сообщения в очередь 'foo' */
$stomp->send($queue, $msg);

/* подписка на сообщения из очереди 'foo' */
$stomp->subscribe($queue);

/* чтение фрейма */
$frame = $stomp->readFrame();

if ($frame->body === $msg) {
    /* подтверждение получения фрейма */
    $stomp->ack($frame);
}

/* отмена подписки к очереди */
$stomp->unsubscribe($queue);

/* закрытие подключения */
unset($stomp);

?>

Пример #2 Процедурный стиль

<?php

$queue  = '/queue/foo';
$msg    = 'bar';

/* подключение */
$link = stomp_connect('ssl://localhost:61612');

/* проверка соединения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

/* начало транзакции */
stomp_begin($link, 't1');

/* отправка сообщения в очередь  'foo' */
stomp_send($link, $queue, $msg, array('transaction' => 't1'));

/* подтверждение транзакции */
stomp_commit($link, 't1');

/* подписка на сообщения из очереди 'foo' */
stomp_subscribe($link, $queue);

/* чтение фрейма */
$frame = stomp_read_frame($link);

if ($frame['body'] === $msg) {
    /* подтверждение получения фрейма */
    stomp_ack($link, $frame['headers']['message-id']);
}

/* отмена подписки к очереди */
stomp_unsubscribe($link, $queue);

/* закрытие подключения */
stomp_close($link);

?>


Создает транзакцию

  • « Stomp::ack
  • Stomp::commit »
  • PHP Manual
  • Stomp
  • Создает транзакцию

Stomp::begin

stomp_begin

(PECL stomp >= 0.1.0)

Stomp::begin -- stomp_begin — Создает транзакцию

Описание

Объектно-ориентированный стиль (метод):

public bool Stomp::begin ( string $transaction_id [, array $headers ] )

Процедурный стиль:

bool stomp_begin ( resource $link , string $transaction_id [, array $headers ] )

Создает транзакцию.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

transaction_id

Идентификатор транзакции.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

См. stomp_commit() или stomp_abort().


Выполняет текущую транзакцию

  • « Stomp::begin
  • Stomp::__construct »
  • PHP Manual
  • Stomp
  • Выполняет текущую транзакцию

Stomp::commit

stomp_commit

(PECL stomp >= 0.1.0)

Stomp::commit -- stomp_commit — Выполняет текущую транзакцию

Описание

Объектно-ориентированный стиль (метод):

public bool Stomp::commit ( string $transaction_id [, array $headers ] )

Процедурный стиль:

bool stomp_commit ( resource $link , string $transaction_id [, array $headers ] )

Выполняет текущую транзакцию.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

transaction_id

Идентификатор транзакции.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

/* Начало транзакции */
$stomp->begin('t1');

/* отправка сообщения в очередь */
$stomp->send('/queue/foo', 'bar', array('transaction' => 't1'));

/* выполнение транзакции */
$stomp->commit('t1');

/* закрытие подключения */
unset($stomp);

?>

Пример #2 Процедурный стиль

<?php

/* подключение */
$link = stomp_connect('tcp://localhost:61613');

/* проверка подключения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

/* Начало транзакции */
stomp_begin($link, 't1');

/* Отправка сообщения в очередь 'foo' */
stomp_send($link, '/queue/foo', 'bar', array('transaction' => 't1'));

/* Выполнение транзакции */
stomp_commit($link, 't1');

/* Закрытие изменения */
stomp_close($link);

?>


Открывает соединение

  • « Stomp::commit
  • Stomp::__destruct »
  • PHP Manual
  • Stomp
  • Открывает соединение

Stomp::__construct

stomp_connect

(PECL stomp >= 0.1.0)

Stomp::__construct -- stomp_connect — Открывает соединение

Описание

Объектно-ориентированный стиль (конструктор):

public Stomp::__construct ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] )

Процедурный стиль:

resource stomp_connect ([ string $broker = ini_get("stomp.default_broker_uri") [, string $username [, string $password [, array $headers ]]]] )

Открывает соединение к Stomp-совместимому брокеру сообщений (Message Broker).

Список параметров

broker

URI брокера

username

Имя пользователя

password

Пароль

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Замечание:

Также может быть указан заголовок транзакции, означающий что прием сообщения должен являться частью именованной транзакции.

Список изменений

Версия | Описание
1.0.1 | Добавлен параметр headers

Примеры

Пример #1 Объектно-ориентированный стиль

<?php

/* подключение */
try {
    $stomp = new Stomp('tcp://localhost:61613');
} catch(StompException $e) {
    die('Ошибка соединения: ' . $e->getMessage());
}

/* закрытие соединения */
unset($stomp);

?>

Пример #2 Процедурный стиль

<?php

/* подключение */
$link = stomp_connect('ssl://localhost:61612');

/* проверка соединения */
if (!$link) {
    die('Ошибка соединения: ' . stomp_connect_error());
}

/* Закрытие соединения */
stomp_close($link);

?>


Закрывает Stomp-соединение

  • « Stomp::__construct
  • Stomp::error »
  • PHP Manual
  • Stomp
  • Закрывает Stomp-соединение

Stomp::__destruct

stomp_close

(PECL stomp >= 0.1.0)

Stomp::__destruct -- stomp_close — Закрывает Stomp-соединение

Описание

Объектно-ориентированный стиль (деструктор):

public bool Stomp::__destruct ( void )

Процедурный стиль:

bool stomp_close ( resource $link )

Закрывает ранее открытые соединения.

Список параметров

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 string Stomp::error ( void )

Процедурный стиль:

string stomp_error ( resource $link )

Возвращает последнюю ошибку 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 array Stomp::getReadTimeout ( void )

Процедурный стиль:

array stomp_get_read_timeout ( resource $link )

Возвращает время максимального ожидания операции чтения

Список параметров

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 string Stomp::getSessionId ( void )

Процедурный стиль:

string stomp_get_session_id ( resource $link )

Возвращает идентификатор текущей сессии 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 bool Stomp::hasFrame ( void )

Процедурный стиль:

bool stomp_has_frame ( resource $link )

Проверяет, возможно ли чтение фрейма.

Список параметров

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 stompframe Stomp::readFrame ([ string $class_name = "stompFrame" ] )

Процедурный стиль:

array stomp_read_frame ( resource $link )

Выполняет операцию чтения следующего фрейма. Если возможно, то создаёт экземпляр указанного класса и передаёт параметры конструктору этого класса.

Список параметров

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 bool Stomp::send ( string $destination , mixed $msg [, array $headers ] )

Процедурный стиль:

bool stomp_send ( resource $link , string $destination , mixed $msg [, array $headers ] )

Отправляет сообщение брокеру сообщений (Message Broker).

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

destination

Назначение для отправки сообщения.

msg

Сообщение для отправки.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Также может быть указан заголовок транзакции, означающий что прием сообщения должен являться частью именованной транзакции.

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

См. stomp_ack().


Устанавливает предельное время ожидания операции чтения

  • « Stomp::send
  • Stomp::subscribe »
  • PHP Manual
  • Stomp
  • Устанавливает предельное время ожидания операции чтения

Stomp::setReadTimeout

stomp_set_read_timeout

(PECL stomp >= 0.3.0)

Stomp::setReadTimeout -- stomp_set_read_timeout — Устанавливает предельное время ожидания операции чтения

Описание

Объектно-ориентированный стиль (метод):

public void Stomp::setReadTimeout ( int $seconds [, int $microseconds ] )

Процедурный стиль:

void stomp_set_read_timeout ( resource $link , int $seconds [, int $microseconds ] )

Устанавливает предельное время ожидания операции чтения.

Список параметров

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 bool Stomp::subscribe ( string $destination [, array $headers ] )

Процедурный стиль:

bool stomp_subscribe ( resource $link , string $destination [, array $headers ] )

Регистрирует подписку на указанную рассылку.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

destination

Рассылка, на которую необходимо зарегистрировать подписку.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

См. stomp_ack().


Удаляет существующую подписку

  • « Stomp::subscribe
  • StompFrame »
  • PHP Manual
  • Stomp
  • Удаляет существующую подписку

Stomp::unsubscribe

stomp_unsubscribe

(PECL stomp >= 0.1.0)

Stomp::unsubscribe -- stomp_unsubscribe — Удаляет существующую подписку

Описание

Объектно-ориентированный стиль (метод):

public bool Stomp::unsubscribe ( string $destination [, array $headers ] )

Процедурный стиль:

bool stomp_unsubscribe ( resource $link , string $destination [, array $headers ] )

Удаляет существующую подписку.

Список параметров

link

Только для процедурного стиля: Идентификатор соединения stomp, полученный из stomp_connect().

destination

Подписка для удаления.

headers

Ассоциативный массив, содержащий дополнительные заголовки (пример: receipt).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Подсказка

Stomp асинхронен по своей сути. Синхронная связь может быть реализована добавлением receipt-заголовка. Это заставит методы ничего не возвращать, пока сервер не подтвердит получение сообщения или не будет достигнут таймаут сообщения.

Примеры

См. stomp_ack().


Класс StompFrame

(PECL stomp >= 0.1.0)

Введение

Представляет сообщение, которое было отправлено или получено от Stomp-совместимого брокера сообщений (Message Broker).

Обзор классов

StompFrame {
/* Свойства */
public $command ;
public $headers ;
public $body ;
/* Методы */
__construct ([ string $command [, array $headers [, string $body ]]] )
}

Свойства

command

Команда фрейма.

headers

Заголовки фрейма (array).

body

Тело фрейма.

Содержание

  • StompFrame::__construct — Конструктор


Конструктор

  • « StompFrame
  • StompException »
  • PHP Manual
  • StompFrame
  • Конструктор

StompFrame::__construct

(PECL stomp >= 0.1.0)

StompFrame::__construct — Конструктор

Описание

StompFrame::__construct ([ string $command [, array $headers [, string $body ]]] )

Конструктор.

Список параметров

command

Команда фрейма.

headers

Заголовки фрейма (array).

body

Тело фрейма.


Класс StompException

(PECL stomp >= 0.1.0)

Введение

Представляет ошибку вызванную расширением Stomp. См. Расширения для получения подробной информации об исключениях в PHP.

Обзор классов

StompException extends Exception {
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
/* Методы */
public string getDetails ( void )
}

Содержание

  • StompException::getDetails — Возвращает сведения об исключении


Возвращает сведения об исключении

  • « StompException
  • SVM »
  • PHP Manual
  • StompException
  • Возвращает сведения об исключении

StompException::getDetails

(PECL stomp >= 0.1.0)

StompException::getDetails — Возвращает сведения об исключении

Описание

public string StompException::getDetails ( void )

Получает сведения об исключении.

Возвращаемые значения

Строка (string), содержащая описание ошибки.


Support Vector Machine

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Примеры
  • SVM — The SVM class
    • SVM::__construct — Construct a new SVM object
    • SVM::crossvalidate — Test training params on subsets of the training data.
    • SVM::getOptions — Return the current training parameters
    • SVM::setOptions — Set training parameters
    • SVM::train — Create a SVMModel based on training data
  • SVMModel — The SVMModel class
    • SVMModel::checkProbabilityModel — Returns true if the model has probability information
    • SVMModel::__construct — Construct a new SVMModel
    • SVMModel::getLabels — Get the labels the model was trained on
    • SVMModel::getNrClass — Returns the number of classes the model was trained with
    • SVMModel::getSvmType — Get the SVM type the model was trained with
    • SVMModel::getSvrProbability — Get the sigma value for regression types
    • SVMModel::load — Load a saved SVM Model
    • SVMModel::predict_probability — Return class probabilities for previous unseen data
    • SVMModel::predict — Predict a value for previously unseen data
    • SVMModel::save — Save a model to a file


Введение

LibSVM is an efficient solver for SVM classification and regression problems. The svm extension wraps this in a PHP interface for easy use in PHP scripts.


Требования

Libsvm itself is required, and is available through some package management - libsvm-devel for RPM based system or libsvm-dev for Debian based ones. Alternatively it is available direct from the website. If installing from the » official website then some steps will need to be taken as the package does not install automatically. For example, assuming the latest version is 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

This last step should show libsvm is installed.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/svm


Примеры

The basic process is to define parameters, supply training data to generate a model on, then make predictions based on the model. There are a default set of parameters that should get some results with most any input, so we'll start by looking at the data.

Data is supplied in either a file, a stream, or as an array. If supplied in a file or a stream, it must contain one line per training example, which must be formatted as an integer class (usually 1 and -1) followed by a series of feature/value pairs, in increasing feature order. The features are integers, the values floats, usually scaled 0-1. For example:

-1 1:0.43 3:0.12 9284:0.2

In a document classification problem, say a spam checker, each line would represent a document. There would be two classes, -1 for spam, 1 for ham. Each feature would represent some word, and the value would represent that importance of that word to the document (perhaps the frequency count, with the total scaled to unit length). Features that were 0 (e.g. the word did not appear in the document at all) would simply not be included.

In array mode, the data must be passed as an array of arrays. Each sub-array must have the class as the first element, then key => value sets for the feature values pairs.

This data is passed to the SVM class's train function, which will return an SVM model is successful.

Once a model has been generated, it can be used to make predictions about previously unseen data. This can be passed as an array to the model's predict function, in the same format as before, but without the label. The response will be the class.

Models can be saved and restored as required, using the save and load functions, which both take a file location.

Пример #1 Train from array

<?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 Train from a file

<?php
$svm = new SVM();
$model = $svm->train("traindata.txt");
?>


The SVM class

(PECL svm >= 0.1.0)

Введение

Обзор классов

SVM {
/* Constants */
const integer C_SVC = 0 ;
const integer NU_SVC = 1 ;
const integer ONE_CLASS = 2 ;
const integer EPSILON_SVR = 3 ;
const integer NU_SVR = 4 ;
const integer KERNEL_LINEAR = 0 ;
const integer KERNEL_POLY = 1 ;
const integer KERNEL_RBF = 2 ;
const integer KERNEL_SIGMOID = 3 ;
const integer KERNEL_PRECOMPUTED = 4 ;
const integer OPT_TYPE = 101 ;
const integer OPT_KERNEL_TYPE = 102 ;
const integer OPT_DEGREE = 103 ;
const integer OPT_SHRINKING = 104 ;
const integer OPT_PROPABILITY = 105 ;
const integer OPT_GAMMA = 201 ;
const integer OPT_NU = 202 ;
const integer OPT_EPS = 203 ;
const integer OPT_P = 204 ;
const integer OPT_COEF_ZERO = 205 ;
const integer OPT_C = 206 ;
const integer OPT_CACHE_SIZE = 207 ;
/* Methods */
public __construct ( void )
public float svm::crossvalidate ( array $problem , int $number_of_folds )
public array getOptions ( void )
public bool setOptions ( array $params )
public SVMModel svm::train ( array $problem [, array $weights ] )
}

Предопределенные константы

SVM Constants

SVM::C_SVC

The basic C_SVC SVM type. The default, and a good starting point

SVM::NU_SVC

The NU_SVC type uses a different, more flexible, error weighting

SVM::ONE_CLASS

One class SVM type. Train just on a single class, using outliers as negative examples

SVM::EPSILON_SVR

A SVM type for regression (predicting a value rather than just a class)

SVM::NU_SVR

A NU style SVM regression type

SVM::KERNEL_LINEAR

A very simple kernel, can work well on large document classification problems

SVM::KERNEL_POLY

A polynomial kernel

SVM::KERNEL_RBF

The common Gaussian RBD kernel. Handles non-linear problems well and is a good default for classification

SVM::KERNEL_SIGMOID

A kernel based on the sigmoid function. Using this makes the SVM very similar to a two layer sigmoid based neural network

SVM::KERNEL_PRECOMPUTED

A precomputed kernel - currently unsupported.

SVM::OPT_TYPE

The options key for the SVM type

SVM::OPT_KERNEL_TYPE

The options key for the kernel type

SVM::OPT_DEGREE

SVM::OPT_SHRINKING

Training parameter, boolean, for whether to use the shrinking heuristics

SVM::OPT_PROBABILITY

Training parameter, boolean, for whether to collect and use probability estimates

SVM::OPT_GAMMA

Algorithm parameter for Poly, RBF and Sigmoid kernel types.

SVM::OPT_NU

The option key for the nu parameter, only used in the NU_ SVM types

SVM::OPT_EPS

The option key for the Epsilon parameter, used in epsilon regression

SVM::OPT_P

Training parameter used by Episilon SVR regression

SVM::OPT_COEF_ZERO

Algorithm parameter for poly and sigmoid kernels

SVM::OPT_C

The option for the cost parameter that controls tradeoff between errors and generality - effectively the penalty for misclassifying training examples.

SVM::OPT_CACHE_SIZE

Memory cache size, in MB

Содержание

  • SVM::__construct — Construct a new SVM object
  • SVM::crossvalidate — Test training params on subsets of the training data.
  • SVM::getOptions — Return the current training parameters
  • SVM::setOptions — Set training parameters
  • SVM::train — Create a SVMModel based on training data


Construct a new SVM object

  • « SVM
  • SVM::crossvalidate »
  • PHP Manual
  • SVM
  • Construct a new SVM object

SVM::__construct

(PECL svm >= 0.1.0)

SVM::__construct — Construct a new SVM object

Описание

public SVM::__construct ( void )

Constructs a new SVM object ready to accept training data.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Throws SVMException if the libsvm library could not be loaded


Test training params on subsets of the training data.

  • « SVM::__construct
  • SVM::getOptions »
  • PHP Manual
  • SVM
  • Test training params on subsets of the training data.

SVM::crossvalidate

(PECL svm >= 0.1.0)

SVM::crossvalidate — Test training params on subsets of the training data.

Описание

public float svm::crossvalidate ( array $problem , int $number_of_folds )

Crossvalidate can be used to test the effectiveness of the current parameter set on a subset of the training data. Given a problem set and a n "folds", it separates the problem set into n subsets, and the repeatedly trains on one subset and tests on another. While the accuracy will generally be lower than a SVM trained on the enter data set, the accuracy score returned should be relatively useful, so it can be used to test different training parameters.

Список параметров

problem

The problem data. This can either be in the form of an array, the URL of an SVMLight formatted file, or a stream to an opened SVMLight formatted datasource.

number_of_folds

The number of sets the data should be divided into and cross tested. A higher number means smaller training sets and less reliability. 5 is a good number to start with.

Возвращаемые значения

The correct percentage, expressed as a floating point number from 0-1. In the case of NU_SVC or EPSILON_SVR kernels the mean squared error will returned instead.

Смотрите также

  • SVM::train() - Create a SVMModel based on training data


Return the current training parameters

  • « SVM::crossvalidate
  • SVM::setOptions »
  • PHP Manual
  • SVM
  • Return the current training parameters

SVM::getOptions

(PECL svm >= 0.1.0)

SVM::getOptions — Return the current training parameters

Описание

public array SVM::getOptions ( void )

Retrieve an array containing the training parameters. The parameters will be keyed on the predefined SVM constants.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of configuration settings.


Set training parameters

  • « SVM::getOptions
  • SVM::train »
  • PHP Manual
  • SVM
  • Set training parameters

SVM::setOptions

(PECL svm >= 0.1.0)

SVM::setOptions — Set training parameters

Описание

public bool SVM::setOptions ( array $params )

Set one or more training parameters.

Список параметров

params

An array of training parameters, keyed on the SVM constants.

Возвращаемые значения

Return true on success, throws SVMException on error.


Create a SVMModel based on training data

  • « SVM::setOptions
  • SVMModel »
  • PHP Manual
  • SVM
  • Create a SVMModel based on training data

SVM::train

(PECL svm >= 0.1.0)

SVM::train — Create a SVMModel based on training data

Описание

public SVMModel svm::train ( array $problem [, array $weights ] )

Train a support vector machine based on the supplied training data.

Список параметров

problem

The problem can be provided in three different ways. An array, where the data should start with the class label (usually 1 or -1) then followed by a sparse data set of dimension => data pairs. A URL to a file containing a SVM Light formatted problem, with the each line being a new training example, the start of each line containing the class (1, -1) then a series of tab separated data values shows as key:value. A opened stream pointing to a data source formatted as in the file above.

weights

Weights are an optional set of weighting parameters for the different classes, to help account for unbalanced training sets. For example, if the classes were 1 and -1, and -1 had significantly more example than one, the weight for -1 could be 0.5. Weights should be in the range 0-1.

Возвращаемые значения

Returns an SVMModel that can be used to classify previously unseen data. Throws SVMException on error


The SVMModel class

(PECL svm >= 0.1.0)

Введение

The SVMModel is the end result of the training process. It can be used to classify previously unseen data.

Обзор классов

SVMModel {
/* Methods */
public bool checkProbabilityModel ( void )
public __construct ([ string $filename ] )
public array getLabels ( void )
public int getNrClass ( void )
public int getSvmType ( void )
public float getSvrProbability ( void )
public bool load ( string $filename )
public float predict_probability ( array $data )
public float predict ( array $data )
public bool save ( string $filename )
}

Содержание

  • SVMModel::checkProbabilityModel — Returns true if the model has probability information
  • SVMModel::__construct — Construct a new SVMModel
  • SVMModel::getLabels — Get the labels the model was trained on
  • SVMModel::getNrClass — Returns the number of classes the model was trained with
  • SVMModel::getSvmType — Get the SVM type the model was trained with
  • SVMModel::getSvrProbability — Get the sigma value for regression types
  • SVMModel::load — Load a saved SVM Model
  • SVMModel::predict_probability — Return class probabilities for previous unseen data
  • SVMModel::predict — Predict a value for previously unseen data
  • SVMModel::save — Save a model to a file


Returns true if the model has probability information

  • « SVMModel
  • SVMModel::__construct »
  • PHP Manual
  • SVMModel
  • Returns true if the model has probability information

SVMModel::checkProbabilityModel

(PECL svm >= 0.1.5)

SVMModel::checkProbabilityModel — Returns true if the model has probability information

Описание

public bool SVMModel::checkProbabilityModel ( void )

Returns true if the model contains probability information.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return a boolean value


Construct a new SVMModel

  • « SVMModel::checkProbabilityModel
  • SVMModel::getLabels »
  • PHP Manual
  • SVMModel
  • Construct a new SVMModel

SVMModel::__construct

(PECL svm >= 0.1.0)

SVMModel::__construct — Construct a new SVMModel

Описание

public SVMModel::__construct ([ string $filename ] )

Build a new SVMModel. Models will usually be created from the SVM::train function, but then saved models may be restored directly.

Список параметров

filename

The filename for the saved model file this model should load.

Возвращаемые значения

Throws SVMException on error

Смотрите также

  • SVMModel::load() - Load a saved SVM Model


Get the labels the model was trained on

  • « SVMModel::__construct
  • SVMModel::getNrClass »
  • PHP Manual
  • SVMModel
  • Get the labels the model was trained on

SVMModel::getLabels

(PECL svm >= 0.1.5)

SVMModel::getLabels — Get the labels the model was trained on

Описание

public array SVMModel::getLabels ( void )

Return an array of labels that the model was trained on. For regression and one class models an empty array is returned.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return an array of labels

Смотрите также

  • SVMModel::getNrClass() - Returns the number of classes the model was trained with


Returns the number of classes the model was trained with

  • « SVMModel::getLabels
  • SVMModel::getSvmType »
  • PHP Manual
  • SVMModel
  • Returns the number of classes the model was trained with

SVMModel::getNrClass

(PECL svm >= 0.1.5)

SVMModel::getNrClass — Returns the number of classes the model was trained with

Описание

public int SVMModel::getNrClass ( void )

Returns the number of classes the model was trained with, will return 2 for one class and regression models.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return an integer number of classes


Get the SVM type the model was trained with

  • « SVMModel::getNrClass
  • SVMModel::getSvrProbability »
  • PHP Manual
  • SVMModel
  • Get the SVM type the model was trained with

SVMModel::getSvmType

(PECL svm >= 0.1.5)

SVMModel::getSvmType — Get the SVM type the model was trained with

Описание

public int SVMModel::getSvmType ( void )

Returns an integer value representing the type of the SVM model used, e.g SVM::C_SVC.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Return an integer SVM type


Get the sigma value for regression types

  • « SVMModel::getSvmType
  • SVMModel::load »
  • PHP Manual
  • SVMModel
  • Get the sigma value for regression types

SVMModel::getSvrProbability

(PECL svm >= 0.1.5)

SVMModel::getSvrProbability — Get the sigma value for regression types

Описание

public float SVMModel::getSvrProbability ( void )

For regression models, returns a sigma value. If there is no probability information or the model is not SVR, 0 is returned.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a sigma value


Load a saved SVM Model

  • « SVMModel::getSvrProbability
  • SVMModel::predict_probability »
  • PHP Manual
  • SVMModel
  • Load a saved SVM Model

SVMModel::load

(PECL svm >= 0.1.00.1.0)

SVMModel::load — Load a saved SVM Model

Описание

public bool SVMModel::load ( string $filename )

Load a model file ready for classification or regression.

Список параметров

filename

The filename of the model.

Возвращаемые значения

Throws SVMException on error. Returns true on success.

Смотрите также

  • SVMModel::save() - Save a model to a file


Return class probabilities for previous unseen data

  • « SVMModel::load
  • SVMModel::predict »
  • PHP Manual
  • SVMModel
  • Return class probabilities for previous unseen data

SVMModel::predict_probability

(PECL svm >= 0.1.4)

SVMModel::predict_probability — Return class probabilities for previous unseen data

Описание

public float SVMModel::predict_probability ( array $data )

This function accepts an array of data and attempts to predict the class, as with the predict function. Additionally, however, this function returns an array of probabilities, one per class in the model, which represent the estimated chance of the data supplied being a member of that class. Requires that the model to be used has been trained with the probability parameter set to true.

Список параметров

data

The array to be classified. This should be a series of key => value pairs in increasing key order, but not necessarily continuous.

probabilities

The supplied value will be filled with the probabilities. This will be either null, in the case of a model without probability information, or an array where the index is the class name and the value the predicted probability.

Возвращаемые значения

Float the predicted value. This will be a class label in the case of classification, a real value in the case of regression. Throws SVMException on error

Смотрите также

  • SVM::predict()


Predict a value for previously unseen data

  • « SVMModel::predict_probability
  • SVMModel::save »
  • PHP Manual
  • SVMModel
  • Predict a value for previously unseen data

SVMModel::predict

(PECL svm >= 0.1.0)

SVMModel::predict — Predict a value for previously unseen data

Описание

public float SVMModel::predict ( array $data )

This function accepts an array of data and attempts to predict the class or regression value based on the model extracted from previously trained data.

Список параметров

data

The array to be classified. This should be a series of key => value pairs in increasing key order, but not necessarily continuous.

Возвращаемые значения

Float the predicted value. This will be a class label in the case of classification, a real value in the case of regression. Throws SVMException on error

Смотрите также

  • SVM::train() - Create a SVMModel based on training data


Save a model to a file

  • « SVMModel::predict
  • SVN »
  • PHP Manual
  • SVMModel
  • Save a model to a file

SVMModel::save

(PECL svm >= 0.1.0)

SVMModel::save — Save a model to a file

Описание

public bool SVMModel::save ( string $filename )

Save the model data to a file, for later use.

Список параметров

filename

The file to save the model to.

Возвращаемые значения

Throws SVMException on error. Returns true on success.

Смотрите также

  • SVMModel::load() - Load a saved SVM Model


Subversion

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • SVN
    • svn_add — Добавляет элементы в список запланированных для добавления в рабочую копию
    • svn_auth_get_parameter — Возвращает параметр аутентификации
    • svn_auth_set_parameter — Устанавливает параметр аутентификации
    • svn_blame — Построчно выводит автора и редакцию для файла
    • svn_cat — Возвращает содержимое файла в репозитории
    • svn_checkout — Получает рабочую копию из репозитория
    • svn_cleanup — Рекурсивно очищает рабочую копию директории, завершает незаконченные операции и снимает блокировки
    • svn_client_version — Возвращает версию клиентских библиотек SVN
    • svn_commit — Отправляет изменения из рабочей директории в репозиторий
    • svn_delete — Удаляет элементы из рабочей копии или репозитория
    • svn_diff — Рекурсивно показывает различия двух файлов
    • svn_export — Экспортирует содержимое директории SVN
    • svn_fs_abort_txn — Отменяет транзакцию, возвращает TRUE если отмена прошла успешно или FALSE в противном случае
    • svn_fs_apply_text — Создает и возвращает поток, который будет использован для замены
    • svn_fs_begin_txn2 — Создает новую транзакцию
    • svn_fs_change_node_prop — Возвращает TRUE если операция прошла успешно или FALSE в противном случае
    • svn_fs_check_path — Определяет, какая сущность находится в пути репозитория fsroot
    • svn_fs_contents_changed — Возвращает TRUE если содержимое отличается или FALSE в противном случае
    • svn_fs_copy — Копирует файл или директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае
    • svn_fs_delete — Удаляет файл или директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае
    • svn_fs_dir_entries — Перечисляет элементы директории по заданному пути; возвращает хэш имен директорий и типов файлов
    • svn_fs_file_contents — Возвращает поток для доступа к содержимому файла из данной файловой системы
    • svn_fs_file_length — Возвращает длину файла из данной файловой системы
    • svn_fs_is_dir — Возвращает TRUE если по данному пути находится директория или FALSE в противном случае
    • svn_fs_is_file — Возвращает TRUE если по данному пути находится файл или FALSE в противном случае
    • svn_fs_make_dir — Создает новую пустую директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае
    • svn_fs_make_file — Создает новый пустой файл, возвращает TRUE если операция прошла успешно или FALSE в противном случае
    • svn_fs_node_created_rev — Возвращает номер ревизии, когда был создан путь в файловой системе
    • svn_fs_node_prop — Возвращает значение свойства для узла
    • svn_fs_props_changed — Возвращает TRUE если свойства разные или FALSE в противном случае
    • svn_fs_revision_prop — Возвращает значение данного свойства
    • svn_fs_revision_root — Возвращает дескриптор определенной версии корневой директории репозитория
    • svn_fs_txn_root — Создает и возвращает корень транзакции
    • svn_fs_youngest_rev — Возвращает номер самой ранней ревизии в файловой системе
    • svn_import — Импорт пути без версии в репозитории
    • svn_log — Возвращает комментарии к правкам в репозитории
    • svn_ls — Возвращает список содержимого директории репозитория URL, опционально для конкретной ревизии
    • svn_mkdir — Создает директорию в рабочей копии или в репозитории
    • svn_repos_create — Создание нового репозитория Subversion
    • svn_repos_fs_begin_txn_for_commit — Создание новой транзакции
    • svn_repos_fs_commit_txn — Отправка транзакции и возвращение номера ревизии
    • svn_repos_fs — Возвращает дескриптор файловой системы для репозитория
    • svn_repos_hotcopy — Создает свежую копию репозитория по адресу repospath и копирует в destpath
    • svn_repos_open — Открывает репозиторий с общей блокировкой
    • svn_repos_recover — Запускает процедуры восстановления репозитория
    • svn_revert — Отменяет локальные изменения рабочей копии
    • svn_status — Возвращает SVN статус файлов и директорий рабочей копии
    • svn_update — Обновляет рабочую копию


Введение

Это расширение реализует работу PHP с » Subversion (SVN), системой управления версиями, что позволяет PHP скриптам взаимодействовать с SVN репозиториями и рабочими копиями без непосредственного вызова утилиты svn из командной строки.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


Требования

Исполняемые файлы Subversion не требуются для использования данного расширения. Тем не менее, при его компиляции, библиотека libsvn (заголовки Subversion) должна быть доступна.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/svn

Если в ./configure есть проблемы с поиском SVN файлов (например, Subversion был установлен из другого каталога), используйте ./configure --with-svn=$USR_PATH для указания каталога, в котором находится include/subversion-1/.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Внимание

Если расширение компилируется с библиотекой libsvn 1.3, функции, которые работают с рабочими копиями, будут выполняться с ошибками при использовании рабочих копий, созданных Subversion 1.4.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SVN_REVISION_HEAD (integer)
Магическое число (-1), указывающее на последнюю ревизию
Константы, используемые с svn_auth_set_parameter()
SVN_AUTH_PARAM_DEFAULT_USERNAME (string)
Свойство, определяющее имя пользователя по умолчанию, которое будет использоваться при выполнении базовой аутентификации
SVN_AUTH_PARAM_DEFAULT_PASSWORD (string)
Свойство, определяющее пароль пользователя по умолчанию, которое будет использоваться при выполнении базовой аутентификации
SVN_AUTH_PARAM_NON_INTERACTIVE (string)
SVN_AUTH_PARAM_DONT_STORE_PASSWORDS (string)
SVN_AUTH_PARAM_NO_AUTH_CACHE (string)
SVN_AUTH_PARAM_SSL_SERVER_FAILURES (string)
SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO (string)
SVN_AUTH_PARAM_CONFIG (string)
SVN_AUTH_PARAM_SERVER_GROUP (string)
SVN_AUTH_PARAM_CONFIG_DIR (string)
PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS (string)
Поле, предписывающее игнорирование ошибок верификации SSL сертификата
Константы файловой системы
SVN_FS_CONFIG_FS_TYPE (string)
Ключ конфигурации, определяющий тип файловой системы
SVN_FS_TYPE_BDB (string)
Файловая система, реализуемая Berkeley-DB
SVN_FS_TYPE_FSFS (string)
Файловая система, реализуемая стандартным образом
Константы заразервированных свойств
SVN_PROP_REVISION_DATE (string)
svn:date
SVN_PROP_REVISION_ORIG_DATE (string)
svn:original-date
SVN_PROP_REVISION_AUTHOR (string)
svn:author
SVN_PROP_REVISION_LOG (string)
svn:log
Константы статуса рабочей копии
SVN_WC_STATUS_NONE (int)
Статус отсутствует
SVN_WC_STATUS_UNVERSIONED (int)
Элемент не имеет версии в рабочей копии
SVN_WC_STATUS_NORMAL (int)
Элемент существует, действий над ним не происходит
SVN_WC_STATUS_ADDED (int)
Элемент запланирован к добавлению в репозиторий
SVN_WC_STATUS_MISSING (int)
Элемент имеет версию, но отсутствует в рабочей копии
SVN_WC_STATUS_DELETED (int)
Элемент запланирован к удалению
SVN_WC_STATUS_REPLACED (int)
Элемент был удален, а затем снова добавлен
SVN_WC_STATUS_MODIFIED (int)
Элемент (текст или свойства) был изменен
SVN_WC_STATUS_MERGED (int)
Локальные изменения элемента были объединены с изменениями в репозитории
SVN_WC_STATUS_CONFLICTED (int)
Локальные изменения элемента конфликтуют с изменениями в репозитории
SVN_WC_STATUS_IGNORED (int)
Элемент не имеет версии и игнорируется системой контроля версий
SVN_WC_STATUS_OBSTRUCTED (int)
Элемент, не имеющий версии, связан с ресурсом, имеющим версию.
SVN_WC_STATUS_EXTERNAL (int)
Не версионированный путь, пополняемый с использованием svn:externals
SVN_WC_STATUS_INCOMPLETE (int)
Директория не содержит полного списка записей
Константы типа Node
SVN_NODE_NONE (int)
Отсутствует
SVN_NODE_FILE (int)
Файл
SVN_NODE_DIR (int)
Директория
SVN_NODE_UNKNOWN (int)
Нечто, неидентифицируемое Subversion


SVN

Содержание

  • svn_add — Добавляет элементы в список запланированных для добавления в рабочую копию
  • svn_auth_get_parameter — Возвращает параметр аутентификации
  • svn_auth_set_parameter — Устанавливает параметр аутентификации
  • svn_blame — Построчно выводит автора и редакцию для файла
  • svn_cat — Возвращает содержимое файла в репозитории
  • svn_checkout — Получает рабочую копию из репозитория
  • svn_cleanup — Рекурсивно очищает рабочую копию директории, завершает незаконченные операции и снимает блокировки
  • svn_client_version — Возвращает версию клиентских библиотек SVN
  • svn_commit — Отправляет изменения из рабочей директории в репозиторий
  • svn_delete — Удаляет элементы из рабочей копии или репозитория
  • svn_diff — Рекурсивно показывает различия двух файлов
  • svn_export — Экспортирует содержимое директории SVN
  • svn_fs_abort_txn — Отменяет транзакцию, возвращает TRUE если отмена прошла успешно или FALSE в противном случае
  • svn_fs_apply_text — Создает и возвращает поток, который будет использован для замены
  • svn_fs_begin_txn2 — Создает новую транзакцию
  • svn_fs_change_node_prop — Возвращает TRUE если операция прошла успешно или FALSE в противном случае
  • svn_fs_check_path — Определяет, какая сущность находится в пути репозитория fsroot
  • svn_fs_contents_changed — Возвращает TRUE если содержимое отличается или FALSE в противном случае
  • svn_fs_copy — Копирует файл или директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае
  • svn_fs_delete — Удаляет файл или директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае
  • svn_fs_dir_entries — Перечисляет элементы директории по заданному пути; возвращает хэш имен директорий и типов файлов
  • svn_fs_file_contents — Возвращает поток для доступа к содержимому файла из данной файловой системы
  • svn_fs_file_length — Возвращает длину файла из данной файловой системы
  • svn_fs_is_dir — Возвращает TRUE если по данному пути находится директория или FALSE в противном случае
  • svn_fs_is_file — Возвращает TRUE если по данному пути находится файл или FALSE в противном случае
  • svn_fs_make_dir — Создает новую пустую директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае
  • svn_fs_make_file — Создает новый пустой файл, возвращает TRUE если операция прошла успешно или FALSE в противном случае
  • svn_fs_node_created_rev — Возвращает номер ревизии, когда был создан путь в файловой системе
  • svn_fs_node_prop — Возвращает значение свойства для узла
  • svn_fs_props_changed — Возвращает TRUE если свойства разные или FALSE в противном случае
  • svn_fs_revision_prop — Возвращает значение данного свойства
  • svn_fs_revision_root — Возвращает дескриптор определенной версии корневой директории репозитория
  • svn_fs_txn_root — Создает и возвращает корень транзакции
  • svn_fs_youngest_rev — Возвращает номер самой ранней ревизии в файловой системе
  • svn_import — Импорт пути без версии в репозитории
  • svn_log — Возвращает комментарии к правкам в репозитории
  • svn_ls — Возвращает список содержимого директории репозитория URL, опционально для конкретной ревизии
  • svn_mkdir — Создает директорию в рабочей копии или в репозитории
  • svn_repos_create — Создание нового репозитория Subversion
  • svn_repos_fs_begin_txn_for_commit — Создание новой транзакции
  • svn_repos_fs_commit_txn — Отправка транзакции и возвращение номера ревизии
  • svn_repos_fs — Возвращает дескриптор файловой системы для репозитория
  • svn_repos_hotcopy — Создает свежую копию репозитория по адресу repospath и копирует в destpath
  • svn_repos_open — Открывает репозиторий с общей блокировкой
  • svn_repos_recover — Запускает процедуры восстановления репозитория
  • svn_revert — Отменяет локальные изменения рабочей копии
  • svn_status — Возвращает SVN статус файлов и директорий рабочей копии
  • svn_update — Обновляет рабочую копию


Добавляет элементы в список запланированных для добавления в рабочую копию

  • « SVN
  • svn_auth_get_parameter »
  • PHP Manual
  • SVN
  • Добавляет элементы в список запланированных для добавления в рабочую копию

svn_add

(PECL svn >= 0.1.0)

svn_add — Добавляет элементы в список запланированных для добавления в рабочую копию

Описание

bool svn_add ( string $path [, bool $recursive = true [, bool $force = false ]] )

Добавляет файл, папку или символическую ссылку path в рабочую копию. Данные будут добавлены в репозиторий при следующием вызове метода svn_commit() для рабочей копии.

Список параметров

path

Путь к добавляемой папке, файлу или ссылке.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

recursive

Если добавляется директория, флаг определят будет ли рекурсивно добавлено всё ее содержимое. По умолчанию TRUE

force

Если значение параметра эквивалентно TRUE -- Subversion будет рекурсивно просматривать уже известные директории, для того, чтобы добавить файлы, которые находятся в этих директориях, но не были взяты под контроль Subversion. По умолчанию FALSE

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 svn_add() example

В рабочей директории, где svn status возвращает:

$ svn status
?      foobar.txt

...данный код:

<?php
svn_add('foobar.txt');
?>

...пометит файл foobar.txt как запланированный на добавление в репозиторий.

Смотрите также

  • » SVN документация по команде svn add


Возвращает параметр аутентификации

  • « svn_add
  • svn_auth_set_parameter »
  • PHP Manual
  • SVN
  • Возвращает параметр аутентификации

svn_auth_get_parameter

(PECL svn >= 0.1.0)

svn_auth_get_parameter — Возвращает параметр аутентификации

Описание

string svn_auth_get_parameter ( string $key )

Возвращает параметр аутентификации по ключу 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 — Устанавливает параметр аутентификации

Описание

void svn_auth_set_parameter ( string $key , string $value )

Устанавливает параметр аутентификации в значение value по ключу key. Список возможных ключей и их значений доступен в списке констант аутентификации.

Список параметров

key

Имя ключа (Строка). Чтобы указать ключ, используйте список констант аутентификации, определенный этим модулем.

value

Строковое значение устанавливаемого параметра по ключу. Формат значений может меняться в зависимости от параметра.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример аутентификации

Этот пример показывает как настроить SVN, чтобы имя пользователя по умолчанию было 'Bob', а пароль по умолчанию - 'abc123':

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
?>

Смотрите также

  • svn_auth_get_parameter() - Возвращает параметр аутентификации
  • Константы аутентификации


Построчно выводит автора и редакцию для файла

  • « svn_auth_set_parameter
  • svn_cat »
  • PHP Manual
  • SVN
  • Построчно выводит автора и редакцию для файла

svn_blame

(PECL svn >= 0.3.0)

svn_blame — Построчно выводит автора и редакцию для файла

Описание

array svn_blame ( string $repository_url [, int $revision_no = SVN_REVISION_HEAD ] )

Построчно выводит автора и редакцию для файла из репозитория.

Список параметров

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 — Возвращает содержимое файла в репозитории

Описание

string svn_cat ( string $repos_url [, int $revision_no ] )

Возвращает содержимое по URL repos_url файла в репозитории по состоянию на ревизию номер revision_no (необязательный параметр).

Список параметров

repos_url

Путь URL к элементу в репозитории.

revision_no

Номер ревизии (целое число) соответствующего элемента, по умолчанию - HEAD (последняя ревизия).

Возвращаемые значения

Возвращает содержимое элемента в репозитории в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример использования функции svn_cat()

Этот пример показывает как получить содержимое файла ревизии 28:

<?php
$contents = svn_cat('http://www.example.com/svnroot/calc/gui.c', 28)
?>

Смотрите также

  • svn_list()
  • » SVN документация по svn cat


Получает рабочую копию из репозитория

  • « svn_cat
  • svn_cleanup »
  • PHP Manual
  • SVN
  • Получает рабочую копию из репозитория

svn_checkout

(PECL svn >= 0.1.0)

svn_checkout — Получает рабочую копию из репозитория

Описание

bool svn_checkout ( string $repos , string $targetpath [, int $revision [, int $flags = 0 ]] )

Получает рабочую копию с ревизией revision из репозитория repos и размещает в targetpath.

Список параметров

repos

Путь (URL) к директории, которую необходимо получить из репозитория.

targetpath

Локальный путь, куда необходимо получить рабочую копию.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

revision

Номер ревизии (целое число), которую необходимо получить. По умолчанию HEAD, т.е. самая новая версия.

flags

Комбинации из констант SVN_NON_RECURSIVE и SVN_IGNORE_EXTERNALS.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Этот пример показывает, как получить директорию из репозитория в папку calc:

<?php
svn_checkout('http://www.example.com/svnroot/calc/trunk', dirname(__FILE__) . '/calc');
?>

Выражение dirname(__FILE__) используется для преобразования из относительного пути к calc в абсолютный путь. Если calc существует, то можно использовать realpath() для получения абсолютного пути.

Смотрите также

  • svn_add() - Добавляет элементы в список запланированных для добавления в рабочую копию
  • svn_commit() - Отправляет изменения из рабочей директории в репозиторий
  • svn_status() - Возвращает SVN статус файлов и директорий рабочей копии
  • svn_update() - Обновляет рабочую копию
  • » SVN документация о команде svn checkout


Рекурсивно очищает рабочую копию директории, завершает незаконченные операции и снимает блокировки

  • « svn_checkout
  • svn_client_version »
  • PHP Manual
  • SVN
  • Рекурсивно очищает рабочую копию директории, завершает незаконченные операции и снимает блокировки

svn_cleanup

(PECL svn >= 0.1.0)

svn_cleanup — Рекурсивно очищает рабочую копию директории, завершает незаконченные операции и снимает блокировки

Описание

bool svn_cleanup ( string $workingdir )

Рекурсивно очищает рабочую копию директории workingdir, завершает любые незаконченные операции и снимает блокировки из рабочей копии. Используйте, когда необходимо возобновить работу недоступной рабочей копии.

Список параметров

workingdir

Путь к локальной рабочей копии для очистки.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Этот пример показывает, как очистить рабочую копию в директории help-me:

<?php
svn_cleanup(realpath('help-me'));
?>

В связи со странным поведением относительных путей в SVN, необходим вызов функции realpath().

Смотрите также

  • update()
  • » SVN документация к команде svn cleanup


Возвращает версию клиентских библиотек SVN

  • « svn_cleanup
  • svn_commit »
  • PHP Manual
  • SVN
  • Возвращает версию клиентских библиотек SVN

svn_client_version

(PECL svn >= 0.1.0)

svn_client_version — Возвращает версию клиентских библиотек SVN

Описание

string svn_client_version ( void )

Возвращает версию клиентских библиотек SVN

Возвращаемые значения

Номер версии, обычно в формате x.y.z.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

<?php
echo svn_client_version();
?>

Результатом выполнения данного примера будет что-то подобное:

1.3.1


Отправляет изменения из рабочей директории в репозиторий

  • « svn_client_version
  • svn_delete »
  • PHP Manual
  • SVN
  • Отправляет изменения из рабочей директории в репозиторий

svn_commit

(PECL svn >= 0.1.0)

svn_commit — Отправляет изменения из рабочей директории в репозиторий

Описание

array svn_commit ( string $log , array $targets [, bool $recursive = true ] )

Отправляет изменения в файлах локальной рабочей копии, перечисленные в массиве targets в репозиторий, с сообщением log. Директории из массива targets будут рекурсивно добавлены, если параметр recursive не установлен в FALSE.

Замечание: Эта функция не имеет параметров для установки данных аутентификации, поэтому имя пользователя и пароль должны быть заданы с помощью функции svn_auth_set_parameter()

Список параметров

log

Строка комментария для текущего изменения.

targets

Массив с путями к локальным файлам или директориям, которые будут отправлены.

Внимание

Параметр должен быть массивом, строковое значение для добавления единичного элемента не поддерживается.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

recursive

Флаг для отключения рекурсивной отправки директорий из массива targets. По умолчанию TRUE.

Возвращаемые значения

Возвращает массив в формате:

array(
    0 => Номер ревизии сделанного измения
    1 => Строка с датой и временем изменения в формате ISO 8601
    2 => Имя отправившего
)

При неудаче операции возвращается FALSE.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Этот пример отправляет директорию calculator в репозиторий, используя имя пользователя Bob и пароль abc123 (будем надеяться, что пароль надежный):

<?php
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_USERNAME, 'Bob');
svn_auth_set_parameter(SVN_AUTH_PARAM_DEFAULT_PASSWORD, 'abc123');
var_dump(svn_commit('Комментарий Bob\'а', array(realpath('calculator'))));
?>

Результат выполнения данного примера:

array(
  0 => 1415,
  1 => '2007-05-26T01:44:28.453125Z',
  2 => 'Bob'
)

Смотрите также

  • svn_auth_set_parameter() - Устанавливает параметр аутентификации
  • » SVN документация о svn commit


Удаляет элементы из рабочей копии или репозитория

  • « svn_commit
  • svn_diff »
  • PHP Manual
  • SVN
  • Удаляет элементы из рабочей копии или репозитория

svn_delete

(PECL svn >= 0.4.0)

svn_delete — Удаляет элементы из рабочей копии или репозитория

Описание

bool svn_delete ( string $path [, bool $force = false ] )

Удаляет файл, директорию или символическую ссылку 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 — Рекурсивно показывает различия двух файлов

Описание

array svn_diff ( string $path1 , int $rev1 , string $path2 , int $rev2 )

Рекурсивно показывает различия двух файлов path1 и path2.

Замечание:

Это не инструмент просмотра общих изменений. Могут быть просмотрены различия только локальных файлов, которые находятся в системе контроля версий SVN : для других файлов различия просмотреть не удастся.

Список параметров

path1

Первый путь. Это может быть URL файла/директории в репозитории SVN или путь к локальному файлу/директории.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

Внимание

Если путь к локальному файлу состоит только из обратных слешей (\), без слеша (/), данному модулю не удастся найти необходимые файлы. Всегда заменяйте все обратные слеши (\) на слеши (/) используя эту функцию.

rev1

Номер ревизии первого файла. Используйте константу SVN_REVISION_HEAD для задания самой последней ревизии.

path2

Второй путь к файлу, аналогично path1

rev2

Номер ревизии второго файла, аналогично rev1.

Возвращаемые значения

Возвращает список массивов состоящий из двух потоков: первая - различия файлов; вторая - ошибки. Потоки могут быть прочитаны функцией fread(). При ошибке возвращает FALSE или NULL.

По умолчанию, вывод различий будет в стандартном формате Subversion, но также может использоваться » внешним инструментом показа различий, в зависимости от настройки Subversion.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Пример ниже иллюстрирует простое использование данной функции и получение данных из потока.

<?php
list($diff, $errors) = svn_diff(
    'http://www.example.com/svnroot/trunk/foo', SVN_REVISION_HEAD,
    'http://www.example.com/svnroot/branches/dev/foo', SVN_REVISION_HEAD
);
if (!$diff) exit;
$contents = '';
while (!feof($diff)) {
  $contents .= fread($diff, 8192);
}
fclose($diff);
fclose($errors);
var_dump($contents);
?>

Результат выполнения данного примера:

Index: http://www.example.com/svnroot/trunk/foo
===================================================================
--- http://www.example.com/svnroot/trunk/foo        (.../foo) (revision 23)
+++ http://www.example.com/svnroot/branches/dev/foo (.../foo) (revision 27)
 // further diff output

Пример #2 Вывод различий между двумя ревизиями одного файла

Этот пример показывает как реализовать функцию-обертку, которая позволяет пользователю просматривать различия между двумя ревизиями одного файла, используя внешний путь репозитория (стандартный синтаксис такой реализации несколько избыточен):

<?php
function svn_diff_same_item($path, $rev1, $rev2) {
    return svn_diff($path, $rev1, $path, $rev2);
}
?>

Пример #3 Более удобный способ вывода различий между двумя файла

Этот пример показывает как реализовать функцию-обертку для вывода различий между двумя локальными файлами, которая является переносимой и лишена ошибок при работе с функцией realpath() и обратным слешом.

<?php
function svn_diff_local($path1, $rev1, $path2, $rev2) {
    $path1 = str_replace('\\', '/', realpath($path1));
    $path2 = str_replace('\\', '/', realpath($path2));
    return svn_diff($path1, $rev1, $path2, $rev2);
}
?>

Смотрите также

  • » SVN документация по svn diff


Экспортирует содержимое директории SVN

  • « svn_diff
  • svn_fs_abort_txn »
  • PHP Manual
  • SVN
  • Экспортирует содержимое директории SVN

svn_export

(PECL svn >= 0.3.0)

svn_export — Экспортирует содержимое директории SVN

Описание

bool svn_export ( string $frompath , string $topath [, bool $working_copy = true [, int $revision_no = -1 ]] )

Экспортирует данные как из рабочей копии, так и из репозитория в 'чистую' директорию.

Список параметров

frompath

Путь к текущему репозиторию или к рабочей копии.

topath

Путь к "чистой" папке для экспорта.

working_copy

При TRUE из рабочей копии будут так же экспортированы не отправленные в репозиторий файлы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования svn_export()

<?php
$working_dir     = '../';
$new_working_dir = '/home/user/devel/foo/trunk';

svn_export($working_dir, $new_working_dir);
?>

Смотрите также

  • svn_import() - Импорт пути без версии в репозитории


Отменяет транзакцию, возвращает TRUE если отмена прошла успешно или FALSE в противном случае

  • « svn_export
  • svn_fs_apply_text »
  • PHP Manual
  • SVN
  • Отменяет транзакцию, возвращает TRUE если отмена прошла успешно или FALSE в противном случае

svn_fs_abort_txn

(PECL svn >= 0.2.0)

svn_fs_abort_txn — Отменяет транзакцию, возвращает TRUE если отмена прошла успешно или FALSE в противном случае

Описание

bool svn_fs_abort_txn ( resource $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 — Создает и возвращает поток, который будет использован для замены

Описание

resource svn_fs_apply_text ( resource $root , string $path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создает и возвращает поток, который будет использован для замены.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 — Создает новую транзакцию

Описание

resource svn_fs_begin_txn2 ( resource $repos , int $rev )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создает новую транзакцию.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 в противном случае

Описание

bool svn_fs_change_node_prop ( resource $root , string $path , string $name , string $value )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает 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

Описание

int svn_fs_check_path ( resource $fsroot , string $path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Определяет, какая сущность находится в пути репозитория 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 в противном случае

Описание

bool svn_fs_contents_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает TRUE если содержимое отличается или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Копирует файл или директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае

  • « svn_fs_contents_changed
  • svn_fs_delete »
  • PHP Manual
  • SVN
  • Копирует файл или директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае

svn_fs_copy

(PECL svn >= 0.2.0)

svn_fs_copy — Копирует файл или директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае

Описание

bool svn_fs_copy ( resource $from_root , string $from_path , resource $to_root , string $to_path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Копирует файл или директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Удаляет файл или директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае

  • « svn_fs_copy
  • svn_fs_dir_entries »
  • PHP Manual
  • SVN
  • Удаляет файл или директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае

svn_fs_delete

(PECL svn >= 0.2.0)

svn_fs_delete — Удаляет файл или директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае

Описание

bool svn_fs_delete ( resource $root , string $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 — Перечисляет элементы директории по заданному пути; возвращает хэш имен директорий и типов файлов

Описание

array svn_fs_dir_entries ( resource $fsroot , string $path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Перечисляет элементы директории по заданному пути; возвращает хэш имен директорий и типов файлов.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 — Возвращает поток для доступа к содержимому файла из данной файловой системы

Описание

resource svn_fs_file_contents ( resource $fsroot , string $path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает поток для доступа к содержимому файла из данной файловой системы.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 — Возвращает длину файла из данной файловой системы

Описание

int svn_fs_file_length ( resource $fsroot , string $path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает длину файла из данной файловой системы.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает TRUE если по данному пути находится директория или FALSE в противном случае

  • « svn_fs_file_length
  • svn_fs_is_file »
  • PHP Manual
  • SVN
  • Возвращает TRUE если по данному пути находится директория или FALSE в противном случае

svn_fs_is_dir

(PECL svn >= 0.2.0)

svn_fs_is_dir — Возвращает TRUE если по данному пути находится директория или FALSE в противном случае

Описание

bool svn_fs_is_dir ( resource $root , string $path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает TRUE если по данному пути находится директория или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает TRUE если по данному пути находится файл или FALSE в противном случае

  • « svn_fs_is_dir
  • svn_fs_make_dir »
  • PHP Manual
  • SVN
  • Возвращает TRUE если по данному пути находится файл или FALSE в противном случае

svn_fs_is_file

(PECL svn >= 0.2.0)

svn_fs_is_file — Возвращает TRUE если по данному пути находится файл или FALSE в противном случае

Описание

bool svn_fs_is_file ( resource $root , string $path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает TRUE если по данному пути находится файл или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает новую пустую директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае

  • « svn_fs_is_file
  • svn_fs_make_file »
  • PHP Manual
  • SVN
  • Создает новую пустую директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае

svn_fs_make_dir

(PECL svn >= 0.2.0)

svn_fs_make_dir — Создает новую пустую директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае

Описание

bool svn_fs_make_dir ( resource $root , string $path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создает новую пустую директорию, возвращает TRUE если операция прошла успешно или FALSE в противном случае.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Создает новый пустой файл, возвращает TRUE если операция прошла успешно или FALSE в противном случае

  • « svn_fs_make_dir
  • svn_fs_node_created_rev »
  • PHP Manual
  • SVN
  • Создает новый пустой файл, возвращает TRUE если операция прошла успешно или FALSE в противном случае

svn_fs_make_file

(PECL svn >= 0.2.0)

svn_fs_make_file — Создает новый пустой файл, возвращает TRUE если операция прошла успешно или FALSE в противном случае

Описание

bool svn_fs_make_file ( resource $root , string $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 — Возвращает номер ревизии, когда был создан путь в файловой системе

Описание

int svn_fs_node_created_rev ( resource $fsroot , string $path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает номер ревизии, когда был создан путь в файловой системе.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 — Возвращает значение свойства для узла

Описание

string svn_fs_node_prop ( resource $fsroot , string $path , string $propname )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает значение свойства для узла.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 в противном случае

Описание

bool svn_fs_props_changed ( resource $root1 , string $path1 , resource $root2 , string $path2 )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает 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 — Возвращает значение данного свойства

Описание

string svn_fs_revision_prop ( resource $fs , int $revnum , string $propname )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает значение данного свойства

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 — Возвращает дескриптор определенной версии корневой директории репозитория

Описание

resource svn_fs_revision_root ( resource $fs , int $revnum )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает дескриптор определенной версии корневой директории репозитория

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 — Создает и возвращает корень транзакции

Описание

resource svn_fs_txn_root ( resource $txn )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создает и возвращает корень транзакции

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает номер самой ранней ревизии в файловой системе

  • « svn_fs_txn_root
  • svn_import »
  • PHP Manual
  • SVN
  • Возвращает номер самой ранней ревизии в файловой системе

svn_fs_youngest_rev

(PECL svn >= 0.1.0)

svn_fs_youngest_rev — Возвращает номер самой ранней ревизии в файловой системе

Описание

int svn_fs_youngest_rev ( resource $fs )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает номер самой ранней ревизии в файловой системе

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Импорт пути без версии в репозитории

  • « svn_fs_youngest_rev
  • svn_log »
  • PHP Manual
  • SVN
  • Импорт пути без версии в репозитории

svn_import

(PECL svn >= 0.2.0)

svn_import — Импорт пути без версии в репозитории

Описание

bool svn_import ( string $path , string $url , bool $nonrecursive )

Добавление не версионированного пути path в репозиторий по адресу url. Если path является директорией и параметр nonrecursive имеет значение FALSE, директория будет добавлена в репозиторий рекурсивно.

Список параметров

path

Путь к файлу или директории для импорта.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

url

URL адрес репозитория.

nonrecursive

Следует ли обработать директории рекурсивно или нет.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Данный пример иллюстрирует базовое использование данной функции. Импорт директории с именем new-files в репозиторий с адресом http://www.example.com/svnroot/incoming/abc выглядит следующим образом:

<?php
svn_import(realpath('new-files'), 'http://www.example.com/svnroot/incoming/abc', false);
?>

Смотрите также

  • svn_add() - Добавляет элементы в список запланированных для добавления в рабочую копию
  • » SVN документация к команде svn import


Возвращает комментарии к правкам в репозитории

  • « svn_import
  • svn_ls »
  • PHP Manual
  • SVN
  • Возвращает комментарии к правкам в репозитории

svn_log

(PECL svn >= 0.1.0)

svn_log — Возвращает комментарии к правкам в репозитории

Описание

array svn_log ( string $repos_url [, int $start_revision [, int $end_revision [, int $limit = 0 [, int $flags = SVN_DISCOVER_CHANGED_PATHS | SVN_STOP_ON_COPY ]]]] )

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] => Array, ordered most recent (highest) revision first
(
    [rev] => Номер ревизии (целое число)
    [author] => Автор правки (строка)
    [msg] => Комментарий к изменениям (строка)
    [date] => Дата правки в формате ISO 8601, т.е. date('c')
    [paths] => Массив с путями к измененным файлам
        (
            [0] => Array
                (
                    [action] => Обозначение характера изменений
                    [path] =>  Абсолютный путь репозитория к измененному файлу
                )
            [1] => ...
        )
)
[1] => ...

Замечание:

Вывод всегда представлен как пронумерованный массив, содержащий массивы, кроме случаев отсутствия или только единственного экземпляра ревизий.

Значение action является подмножеством » первых букв состояний SVN, где возможные значения - это:

Действия
Буква | Описание
M | Элемент был изменен
A | Элемент был добавлен
D | Элемент был удален
R | Элемент был заменен

Если изменений элемента нет, возвращается пустой массив.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Пример использования svn_log()

<?php
print_r( svn_log('http://www.example.com/', 23) );
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
    (
        [rev] => 23
        [author] => 'joe'
        [msg] => 'К нашему бутерброду добавлены сыр и колбаса.'
        [date] => '2007-04-06T16:00:27-04:00'
        [paths] => Array
            (
                [0] => Array
                    (
                        [action] => 'M'
                        [path] =>  '/sandwich.txt'
                    )
            )
    )
)

Смотрите также

  • » SVN документация к команде svn log


Возвращает список содержимого директории репозитория URL, опционально для конкретной ревизии

  • « svn_log
  • svn_mkdir »
  • PHP Manual
  • SVN
  • Возвращает список содержимого директории репозитория URL, опционально для конкретной ревизии

svn_ls

(PECL svn >= 0.1.0)

svn_ls — Возвращает список содержимого директории репозитория URL, опционально для конкретной ревизии

Описание

array svn_ls ( string $repos_url [, int $revision_no = SVN_REVISION_HEAD [, bool $recurse = false [, bool $peg = false ]]] )

Данная функция строит запрос по URL адресу репозитория и получает список файлов и директорий, опционально для конкретной ревизии. Это эквивалентно команде SVN svn list $repos_url[@$revision_no]

Замечание:

Данная функция не работает с локальными рабочими копиями репозитория. Параметр repos_url должен быть URL адресом репозитория.

Список параметров

url

URL адрес репозитория, например http://www.example.com/svnroot. Для доступа к локальному репозиторию Subversion через файловую систему используйте файловую URI схему, например file:///home/user/svn-repos.

revision

Целочисленный номер ревизии для получения списка содержимого. Если параметр опущен, используется последняя ревизия (HEAD).

recurse

Включает рекурсивный запрос.

Возвращаемые значения

В случае успеха данная функция возвращает массив имен файлов/директорий в формате:

[0] => Array
    (
        [created_rev] => Номер последней ревизии файла/папки
        [last_author] => Имя автора последней правки
        [size] => Размер файла в байтах
        [time] => Дата последнего изменения в формате 'M d H:i'
                  или 'M d Y', в зависимости от того, насколько велико время последней правки.
        [time_t] => отметка времени unix о последнем изменении (целое число)
        [name] => имя файла/директории
        [type] => тип, может принимать значения 'file' (файл) или 'dir' (директория)
    )
[1] => ...

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Пример использования svn_ls()

<?php
print_r( svn_ls('http://www.example.com/svnroot/') );
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Array
        (
            [created_rev] => 20
            [last_author] => Joe
            [size] => 0
            [time] => Apr 02 09:28
            [time_t] => 1175520529
            [name] => tags
            [type] => dir
        )
    [1] => Array
        (
            [created_rev] => 23
            [last_author] => Bob
            [size] => 0
            [time] => Apr 02 15:15
            [time_t] => 1175541322
            [name] => trunk
            [type] => dir
        )
)

Смотрите также

  • » SVN документация к команде svn list


Создает директорию в рабочей копии или в репозитории

  • « svn_ls
  • svn_repos_create »
  • PHP Manual
  • SVN
  • Создает директорию в рабочей копии или в репозитории

svn_mkdir

(PECL svn >= 0.4.0)

svn_mkdir — Создает директорию в рабочей копии или в репозитории

Описание

bool svn_mkdir ( string $path [, string $log_message ] )

Создает директорию в рабочей копии или в репозитории.

Список параметров

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

Описание

resource svn_repos_create ( string $path [, array $config [, array $fsconfig ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создание нового репозитория 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 — Создание новой транзакции

Описание

resource svn_repos_fs_begin_txn_for_commit ( resource $repos , int $rev , string $author , string $log_msg )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создание новой транзакции.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 — Отправка транзакции и возвращение номера ревизии

Описание

int svn_repos_fs_commit_txn ( resource $txn )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Отправляет транзакцию и возвращает номер новой ревизии

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Возвращает дескриптор файловой системы для репозитория

  • « svn_repos_fs_commit_txn
  • svn_repos_hotcopy »
  • PHP Manual
  • SVN
  • Возвращает дескриптор файловой системы для репозитория

svn_repos_fs

(PECL svn >= 0.1.0)

svn_repos_fs — Возвращает дескриптор файловой системы для репозитория

Описание

resource svn_repos_fs ( resource $repos )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Возвращает дескриптор файловой системы для репозитория.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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

Описание

bool svn_repos_hotcopy ( string $repospath , string $destpath , bool $cleanlogs )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Создает свежую копию репозитория по адресу repospath и копирует в destpath.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Открывает репозиторий с общей блокировкой

  • « svn_repos_hotcopy
  • svn_repos_recover »
  • PHP Manual
  • SVN
  • Открывает репозиторий с общей блокировкой

svn_repos_open

(PECL svn >= 0.1.0)

svn_repos_open — Открывает репозиторий с общей блокировкой

Описание

resource svn_repos_open ( string $path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Открывает репозиторий с общей блокировкой.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Запускает процедуры восстановления репозитория

  • « svn_repos_open
  • svn_revert »
  • PHP Manual
  • SVN
  • Запускает процедуры восстановления репозитория

svn_repos_recover

(PECL svn >= 0.1.0)

svn_repos_recover — Запускает процедуры восстановления репозитория

Описание

bool svn_repos_recover ( string $path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Запускает процедуры восстановления репозитория, расположенного в path.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.


Отменяет локальные изменения рабочей копии

  • « svn_repos_recover
  • svn_status »
  • PHP Manual
  • SVN
  • Отменяет локальные изменения рабочей копии

svn_revert

(PECL svn >= 0.3.0)

svn_revert — Отменяет локальные изменения рабочей копии

Описание

bool svn_revert ( string $path [, bool $recursive = false ] )

Отменяет все локальные изменения файлов, расположенных в рабочей копии.

Список параметров

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 статус файлов и директорий рабочей копии

Описание

array svn_status ( string $path [, int $flags = 0 ] )

Возвращает SVN статус файлов и директорий рабочей копии, подвергнувшихся модификации, добавлению, удалению и прочим изменениям.

Список параметров

path

Локальный путь к файлу или директории для получения статуса.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

flags

Любая комбинация флагов SVN_NON_RECURSIVE, SVN_ALL (вне зависимости от статуса модификации), SVN_SHOW_UPDATES (к записям будут добавлены пункты со старыми правками), SVN_NO_IGNORE (игнорирование svn:ignore свойств при сканировании новых файлов) и SVN_IGNORE_EXTERNALS.

Возвращаемые значения

Возвращает пронумерованный массив, состоящий из ассоциативных массивов с подробными статусами элементов в репозитории:

Array (
    [0] => Array (
        // информация об элементе
    )
    [1] => ...
)

Информация об элементе может быть получена из ассоциативного массива по двум ключам:

path
Путь к файлу/директории в локальной файловой системе.
text_status
Код текстового статуса элемента. См. Для информации о возможных значениях, обратитесь к константам статусов.
repos_text_status
Код текстового статуса элемента в репозитории. Отображается если update установлен в TRUE. См. Для информации о возможных значениях, обратитесь к константам статусов.
prop_status
Код текстового статуса свойств элемента. См. Для информации о возможных значениях, обратитесь к константам статусов.
repos_prop_status
Код текстового статуса свойств элемента в репозитории. Отображается если update установлен в TRUE. См. Для информации о возможных значениях, обратитесь к константам статусов.
locked
Будет ли заблокирован элемент или нет. (Устанавливается при TRUE.)
copied
Будет ли скопирован элемент (запланирован для добавления в истории правок). (Устанавливается при TRUE.)
switched
Будет ли элемент переключен используя команду переключения. (Устанавливается при TRUE)

Следующие ниже ключи устанавливаются только если элемент имеет версию:

name
Имя элемента в репозитории.
url
URL адрес элемента в репозитории.
repos
URL адрес репозитория.
revision
Номер ревизии рабочей копии.
kind
Тип элемента, т.е. файл или директория. См. Для информации о возможных значениях, обратитесь к константам типов.
schedule
Запланированное действия для элемента, т.е. добавление или удаления. Константы для данных магических чисел не доступны, они эмулируются, согласно правилу:
<?php
if (!defined('svn_wc_schedule_normal')) {
    define('svn_wc_schedule_normal',  0); // никаких изменений
    define('svn_wc_schedule_add',     1); // элемент будет добавлен
    define('svn_wc_schedule_delete',  2); // элемент будет удален
    define('svn_wc_schedule_replace', 3); // элемент будет удален и добавлен
}
?>
deleted
Будет или нет элемент будет удален, но ревизия родителя не увеличится (Установлено при TRUE.)
absent
Будет или нет элемент помечен отсутствующим. Subversion будет помнить, что в этом месте что-то расположено, но не будет знать что именно. (Устанавливается при TRUE.)
incomplete
Будет или нет содержимое директории считаться неполным. (Устанавливается при TRUE.)
cmt_date
Отметка времени в формате Unix о дате последней правки (Не зависит от update.)
cmt_rev
Номер ревизии последнего обновления. (Не зависит от update.)
cmt_author
Имя автора последней правки. (Не зависит от update.)
prop_time
Отметка времени в формате Unix о последней актуальной версии свойств.
text_time
Отметка времени в формате Unix о последней актуальной версии текста.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Простой пример

Приведенный ниже пример иллюстрирует базовое, теоретическое использование данной функции

<?php
print_r(svn_status(realpath('wc')));
?>

Результатом выполнения данного примера будет что-то подобное:

Array (
    [0] => Array (
        [path] => /home/bob/wc/sandwich.txt
        [text_status] => 8 // элемент был изменен
        [repos_text_status] => 1 // нет доступной информации, выполнить update
        [prop_status] => 3 // нет изменений
        [repos_prop_status] => 1 // нет доступной информации, выполнить update
        [name] => sandwich.txt
        [url] => http://www.example.com/svnroot/deli/trunk/sandwich.txt
        [repos] => http://www.example.com/svnroot/
        [revision] => 123
        [kind] => 1 // file
        [schedule] => 0 // не запланировано никаких действий
        [cmt_date] => 1165543135
        [cmt_rev] => 120
        [cmt_author] => Alice
        [prop_time] => 1180201728
        [text_time] => 1180201729
    )
)

Смотрите также

  • svn_update() - Обновляет рабочую копию
  • svn_log() - Возвращает комментарии к правкам в репозитории
  • » SVN документация для svn status


Обновляет рабочую копию

  • « svn_status
  • TCP »
  • PHP Manual
  • SVN
  • Обновляет рабочую копию

svn_update

(PECL svn >= 0.1.0)

svn_update — Обновляет рабочую копию

Описание

int svn_update ( string $path [, int $revno = SVN_REVISION_HEAD [, bool $recurse = true ]] )

Обновляет рабочую копию, расположенную в path до ревизии revno. Если параметр recurse установлен в TRUE, директории будут обновлены рекурсивно.

Список параметров

path

Путь к локальной рабочей копии.

Замечание: Относительные пути будут вычислены, как если бы текущая рабочая директория являлась домашней папкой самого PHP. Чтобы использовать рабочую директорию вызывающего скрипта, используйте realpath() или dirname(__FILE__).

revno

Номер ревизии для обновления, по умолчанию SVN_REVISION_HEAD.

recurse

Следует ли рекурсивно обновлять директории.

Возвращаемые значения

В случае успеха возвращает новый номер ревизии, или FALSE в случае ошибки.

Примечания

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Примеры

Пример #1 Базовый пример

Нижеприведенный пример иллюстрирует базовое применение данной функции:

<?php
echo svn_update(realpath('working-copy'));
?>

Результатом выполнения данного примера будет что-то подобное:

234

Смотрите также

  • svn_checkout() - Получает рабочую копию из репозитория
  • svn_commit() - Отправляет изменения из рабочей директории в репозиторий
  • » SVN документация к команде svn update


Обертки TCP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции TCP
    • tcpwrap_check — Производит проверку tcpwrap


Введение

Обертки TCP предоставляют классический механизм Unix для проверки, может ли удаленный клиент соединяться с указанного IP-адреса.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://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

Описание

bool tcpwrap_check ( string $daemon , string $address [, string $user [, bool $nodns = false ]] )

Функция сверяется с файлами /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

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Basic VarnishAdmin usage
    • Basic VarnishStat usage
    • Basic VarnishLog usage
  • VarnishAdmin — The VarnishAdmin class
    • VarnishAdmin::auth — Authenticate on a varnish instance
    • VarnishAdmin::ban — Ban URLs using a VCL expression
    • VarnishAdmin::banUrl — Ban an URL using a VCL expression
    • VarnishAdmin::clearPanic — Clear varnish instance panic messages
    • VarnishAdmin::connect — Connect to a varnish instance administration interface
    • VarnishAdmin::__construct — VarnishAdmin constructor
    • VarnishAdmin::disconnect — Disconnect from a varnish instance administration interface
    • VarnishAdmin::getPanic — Get the last panic message on a varnish instance
    • VarnishAdmin::getParams — Fetch current varnish instance configuration parameters
    • VarnishAdmin::isRunning — Check if the varnish slave process is currently running
    • VarnishAdmin::setCompat — Set the class compat configuration param
    • VarnishAdmin::setHost — Set the class host configuration param
    • VarnishAdmin::setIdent — Set the class ident configuration param
    • VarnishAdmin::setParam — Set configuration param on the current varnish instance
    • VarnishAdmin::setPort — Set the class port configuration param
    • VarnishAdmin::setSecret — Set the class secret configuration param
    • VarnishAdmin::setTimeout — Set the class timeout configuration param
    • VarnishAdmin::start — Start varnish worker process
    • VarnishAdmin::stop — Stop varnish worker process
  • VarnishStat — The VarnishStat class
    • VarnishStat::__construct — VarnishStat constructor
    • VarnishStat::getSnapshot — Get the current varnish instance statistics snapshot
  • VarnishLog — The VarnishLog class
    • VarnishLog::__construct — Varnishlog constructor
    • VarnishLog::getLine — Get next log line
    • VarnishLog::getTagName — Get the log tag string representation by its index


Введение

Varnish Cache is an open source, state of the art web application accelerator. The extension makes it possible to interact with a running varnish instance through TCP socket or shared memory.


Требования

Для того чтобы использовать это расширение вам необходимо установить Varnish Cache версии >=3.0, доступный по ссылке: » Varnish Cache homepage


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/varnish.

Библиотека DLL для этого PECL-расширения доступна по ссылке » http://windows.php.net/downloads/pecl/releases/varnish/.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

VARNISH_STATUS_SYNTAX (integer)
VARNISH_STATUS_UNKNOWN (integer)
VARNISH_STATUS_UNIMPL (integer)
VARNISH_STATUS_TOOFEW (integer)
VARNISH_STATUS_TOOMANY (integer)
VARNISH_STATUS_PARAM (integer)
VARNISH_STATUS_AUTH (integer)
VARNISH_STATUS_OK (integer)
VARNISH_STATUS_CANT (integer)
VARNISH_STATUS_COMMS (integer)
VARNISH_STATUS_CLOSE (integer)
VARNISH_CONFIG_IDENT (string)
VARNISH_CONFIG_HOST (string)
VARNISH_CONFIG_PORT (string)
VARNISH_CONFIG_TIMEOUT (string)
VARNISH_CONFIG_SECRET (string)
VARNISH_CONFIG_COMPAT (string)
VARNISH_COMPAT_2 (integer)
VARNISH_COMPAT_3 (integer)


  • « Предопределенные константы
  • Basic VarnishAdmin usage »
  • PHP Manual
  • Varnish
  • Примеры

Примеры

Содержание

  • Basic VarnishAdmin usage
  • Basic VarnishStat usage
  • Basic VarnishLog usage


Basic VarnishAdmin usage

The example illustrates a simple usage of the ban functionality

Пример #1 Ban an 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("Connection failed\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

try {
    if(!$va->auth()) {
        throw new VarnishException("Auth failed\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

try {
    $status = $va->ban('req.url ~ "^/$"');
    if (VARNISH_STATUS_OK != $status) {
        throw new VarnishException("Ban method returned $status status\n");
    }
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

exit(0);

?>


Basic VarnishStat usage

The example illustrates getting varnish statistic snapshot from shared memory

Пример #1 Get statistic snapshot

<?php

$vs = new VarnishStat;

try {
    $data = $vs->getSnapshot();
} catch (VarnishException $e) {
    echo $e->getMessage();
    exit(3);
}

exit(0);
?>


Basic VarnishLog usage

The example illustrates reading varnish log lines from shared memory

Пример #1 Read varnish shared memory log

<?php

$vl = new VarnishLog;
while(1) {
    $line = $vl->getLine();
    printf("%s %d %s", VarnishLog::getTagName($line['tag'], $line['id'],
    $line['data']);
}

exit(0);
?>


The VarnishAdmin class

(PECL varnish >= 0.3)

Введение

Обзор классов

VarnishAdmin {
/* Методы */
public bool auth ( void )
public int ban ( string $vcl_regex )
public int banUrl ( string $vcl_regex )
public int clearPanic ( void )
public bool connect ( void )
public __construct ([ array $args ] )
public bool disconnect ( void )
public string getPanic ( void )
public array getParams ( void )
public bool isRunning ( void )
public void setCompat ( int $compat )
public void setHost ( string $host )
public void setIdent ( string $ident )
public int setParam ( string $name , string|integer $value )
public void setPort ( int $port )
public void setSecret ( string $secret )
public void setTimeout ( int $timeout )
public int start ( void )
public int stop ( void )
}

Содержание

  • VarnishAdmin::auth — Authenticate on a varnish instance
  • VarnishAdmin::ban — Ban URLs using a VCL expression
  • VarnishAdmin::banUrl — Ban an URL using a VCL expression
  • VarnishAdmin::clearPanic — Clear varnish instance panic messages
  • VarnishAdmin::connect — Connect to a varnish instance administration interface
  • VarnishAdmin::__construct — VarnishAdmin constructor
  • VarnishAdmin::disconnect — Disconnect from a varnish instance administration interface
  • VarnishAdmin::getPanic — Get the last panic message on a varnish instance
  • VarnishAdmin::getParams — Fetch current varnish instance configuration parameters
  • VarnishAdmin::isRunning — Check if the varnish slave process is currently running
  • VarnishAdmin::setCompat — Set the class compat configuration param
  • VarnishAdmin::setHost — Set the class host configuration param
  • VarnishAdmin::setIdent — Set the class ident configuration param
  • VarnishAdmin::setParam — Set configuration param on the current varnish instance
  • VarnishAdmin::setPort — Set the class port configuration param
  • VarnishAdmin::setSecret — Set the class secret configuration param
  • VarnishAdmin::setTimeout — Set the class timeout configuration param
  • VarnishAdmin::start — Start varnish worker process
  • VarnishAdmin::stop — Stop varnish worker process


Authenticate on a varnish instance

  • « VarnishAdmin
  • VarnishAdmin::ban »
  • PHP Manual
  • VarnishAdmin
  • Authenticate on a varnish instance

VarnishAdmin::auth

(PECL varnish >= 0.3)

VarnishAdmin::auth — Authenticate on a varnish instance

Описание

public bool VarnishAdmin::auth ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Ban URLs using a VCL expression

  • « VarnishAdmin::auth
  • VarnishAdmin::banUrl »
  • PHP Manual
  • VarnishAdmin
  • Ban URLs using a VCL expression

VarnishAdmin::ban

(PECL varnish >= 0.3)

VarnishAdmin::ban — Ban URLs using a VCL expression

Описание

public int VarnishAdmin::ban ( string $vcl_regex )

Список параметров

vcl_regex

Varnish VCL expression. It's based on the varnish ban command.

Возвращаемые значения

Returns the varnish command status.


Ban an URL using a VCL expression

  • « VarnishAdmin::ban
  • VarnishAdmin::clearPanic »
  • PHP Manual
  • VarnishAdmin
  • Ban an URL using a VCL expression

VarnishAdmin::banUrl

(PECL varnish >= 0.3)

VarnishAdmin::banUrl — Ban an URL using a VCL expression

Описание

public int VarnishAdmin::banUrl ( string $vcl_regex )

Список параметров

vcl_regex

URL regular expression in PCRE compatible syntax. It's based on the ban.url varnish command.

Возвращаемые значения

Returns the varnish command status.


Clear varnish instance panic messages

  • « VarnishAdmin::banUrl
  • VarnishAdmin::connect »
  • PHP Manual
  • VarnishAdmin
  • Clear varnish instance panic messages

VarnishAdmin::clearPanic

(PECL varnish >= 0.4)

VarnishAdmin::clearPanic — Clear varnish instance panic messages

Описание

public int VarnishAdmin::clearPanic ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the varnish command status.


Connect to a varnish instance administration interface

  • « VarnishAdmin::clearPanic
  • VarnishAdmin::__construct »
  • PHP Manual
  • VarnishAdmin
  • Connect to a varnish instance administration interface

VarnishAdmin::connect

(PECL varnish >= 0.3)

VarnishAdmin::connect — Connect to a varnish instance administration interface

Описание

public bool VarnishAdmin::connect ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 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

Configuration arguments. The possible keys are:

VARNISH_CONFIG_IDENT - local varnish instance ident
VARNISH_CONFIG_HOST - varnish instance ip
VARNISH_CONFIG_PORT - varnish instance port
VARNISH_CONFIG_SECRET - varnish instance secret
VARNISH_CONFIG_TIMEOUT - connection read timeout
VARNISH_CONFIG_COMPAT - varnish major version compatibility

Возвращаемые значения

Примеры

Пример #1 VarnishAdmin::__construct() example

<?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);
?>


Disconnect from a varnish instance administration interface

  • « VarnishAdmin::__construct
  • VarnishAdmin::getPanic »
  • PHP Manual
  • VarnishAdmin
  • Disconnect from a varnish instance administration interface

VarnishAdmin::disconnect

(PECL varnish >= 1.0.0)

VarnishAdmin::disconnect — Disconnect from a varnish instance administration interface

Описание

public bool VarnishAdmin::disconnect ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Get the last panic message on a varnish instance

  • « VarnishAdmin::disconnect
  • VarnishAdmin::getParams »
  • PHP Manual
  • VarnishAdmin
  • Get the last panic message on a varnish instance

VarnishAdmin::getPanic

(PECL varnish >= 0.4)

VarnishAdmin::getPanic — Get the last panic message on a varnish instance

Описание

public string VarnishAdmin::getPanic ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the last panic message on the current varnish instance.


Fetch current varnish instance configuration parameters

  • « VarnishAdmin::getPanic
  • VarnishAdmin::isRunning »
  • PHP Manual
  • VarnishAdmin
  • Fetch current varnish instance configuration parameters

VarnishAdmin::getParams

(PECL varnish >= 0.4)

VarnishAdmin::getParams — Fetch current varnish instance configuration parameters

Описание

public array VarnishAdmin::getParams ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array with the varnish configuration parameters.


Check if the varnish slave process is currently running

  • « VarnishAdmin::getParams
  • VarnishAdmin::setCompat »
  • PHP Manual
  • VarnishAdmin
  • Check if the varnish slave process is currently running

VarnishAdmin::isRunning

(PECL varnish >= 0.3)

VarnishAdmin::isRunning — Check if the varnish slave process is currently running

Описание

public bool VarnishAdmin::isRunning ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set the class compat configuration param

  • « VarnishAdmin::isRunning
  • VarnishAdmin::setHost »
  • PHP Manual
  • VarnishAdmin
  • Set the class compat configuration param

VarnishAdmin::setCompat

(PECL varnish >= 0.9.2)

VarnishAdmin::setCompat — Set the class compat configuration param

Описание

public void VarnishAdmin::setCompat ( int $compat )

Список параметров

compat

Varnish compatibility option.

Возвращаемые значения


Set the class host configuration param

  • « VarnishAdmin::setCompat
  • VarnishAdmin::setIdent »
  • PHP Manual
  • VarnishAdmin
  • Set the class host configuration param

VarnishAdmin::setHost

(PECL varnish >= 0.8)

VarnishAdmin::setHost — Set the class host configuration param

Описание

public void VarnishAdmin::setHost ( string $host )

Список параметров

host

Connection host configuration parameter.

Возвращаемые значения


Set the class ident configuration param

  • « VarnishAdmin::setHost
  • VarnishAdmin::setParam »
  • PHP Manual
  • VarnishAdmin
  • Set the class ident configuration param

VarnishAdmin::setIdent

(PECL varnish >= 0.8)

VarnishAdmin::setIdent — Set the class ident configuration param

Описание

public void VarnishAdmin::setIdent ( string $ident )

Список параметров

ident

Connection ident configuration parameter.

Возвращаемые значения


Set configuration param on the current varnish instance

  • « VarnishAdmin::setIdent
  • VarnishAdmin::setPort »
  • PHP Manual
  • VarnishAdmin
  • Set configuration param on the current varnish instance

VarnishAdmin::setParam

(PECL varnish >= 0.4)

VarnishAdmin::setParam — Set configuration param on the current varnish instance

Описание

public int VarnishAdmin::setParam ( string $name , string|integer $value )

Список параметров

name

Varnish configuration param name.

value

Varnish configuration param value.

Возвращаемые значения

Returns the varnish command status.


Set the class port configuration param

  • « VarnishAdmin::setParam
  • VarnishAdmin::setSecret »
  • PHP Manual
  • VarnishAdmin
  • Set the class port configuration param

VarnishAdmin::setPort

(PECL varnish >= 0.8)

VarnishAdmin::setPort — Set the class port configuration param

Описание

public void VarnishAdmin::setPort ( int $port )

Список параметров

port

Connection port configuration parameter.

Возвращаемые значения


Set the class secret configuration param

  • « VarnishAdmin::setPort
  • VarnishAdmin::setTimeout »
  • PHP Manual
  • VarnishAdmin
  • Set the class secret configuration param

VarnishAdmin::setSecret

(PECL varnish >= 0.8)

VarnishAdmin::setSecret — Set the class secret configuration param

Описание

public void VarnishAdmin::setSecret ( string $secret )

Список параметров

secret

Connection secret configuration parameter.

Возвращаемые значения


Set the class timeout configuration param

  • « VarnishAdmin::setSecret
  • VarnishAdmin::start »
  • PHP Manual
  • VarnishAdmin
  • Set the class timeout configuration param

VarnishAdmin::setTimeout

(PECL varnish >= 0.8)

VarnishAdmin::setTimeout — Set the class timeout configuration param

Описание

public void VarnishAdmin::setTimeout ( int $timeout )

Список параметров

timeout

Connection timeout configuration parameter.

Возвращаемые значения


Start varnish worker process

  • « VarnishAdmin::setTimeout
  • VarnishAdmin::stop »
  • PHP Manual
  • VarnishAdmin
  • Start varnish worker process

VarnishAdmin::start

(PECL varnish >= 0.3)

VarnishAdmin::start — Start varnish worker process

Описание

public int VarnishAdmin::start ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the varnish command status.


Stop varnish worker process

  • « VarnishAdmin::start
  • VarnishStat »
  • PHP Manual
  • VarnishAdmin
  • Stop varnish worker process

VarnishAdmin::stop

(PECL varnish >= 0.3)

VarnishAdmin::stop — Stop varnish worker process

Описание

public int VarnishAdmin::stop ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the varnish command status.


The VarnishStat class

(PECL varnish >= 0.3)

Введение

Обзор классов

VarnishStat {
/* Методы */
public __construct ([ array $args ] )
public array getSnapshot ( void )
}

Содержание

  • VarnishStat::__construct — VarnishStat constructor
  • VarnishStat::getSnapshot — Get the current varnish instance statistics snapshot


VarnishStat constructor

  • « VarnishStat
  • VarnishStat::getSnapshot »
  • PHP Manual
  • VarnishStat
  • VarnishStat constructor

VarnishStat::__construct

(PECL varnish >= 0.3)

VarnishStat::__construct — VarnishStat constructor

Описание

public VarnishStat::__construct ([ array $args ] )

Список параметров

args

Configuration arguments. The possible keys are:

VARNISH_CONFIG_IDENT - local varnish instance ident path

Возвращаемые значения


Get the current varnish instance statistics snapshot

  • « VarnishStat::__construct
  • VarnishLog »
  • PHP Manual
  • VarnishStat
  • Get the current varnish instance statistics snapshot

VarnishStat::getSnapshot

(PECL varnish >= 0.3)

VarnishStat::getSnapshot — Get the current varnish instance statistics snapshot

Описание

public array VarnishStat::getSnapshot ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Array with the varnish statistic snapshot. The array keys are identical to that in the varnishstat tool.


The VarnishLog class

(PECL varnish >= 0.6)

Введение

Обзор классов

VarnishLog {
/* Constants */
const integer TAG_Debug = 0 ;
const integer TAG_Error = 1 ;
const integer TAG_CLI = 2 ;
const integer TAG_StatSess = 3 ;
const integer TAG_ReqEnd = 4 ;
const integer TAG_SessionOpen = 5 ;
const integer TAG_SessionClose = 6 ;
const integer TAG_BackendOpen = 7 ;
const integer TAG_BackendXID = 8 ;
const integer TAG_BackendReuse = 9 ;
const integer TAG_BackendClose = 10 ;
const integer TAG_HttpGarbage = 11 ;
const integer TAG_Backend = 12 ;
const integer TAG_Length = 13 ;
const integer TAG_FetchError = 14 ;
const integer TAG_RxRequest = 15 ;
const integer TAG_RxResponse = 16 ;
const integer TAG_RxStatus = 17 ;
const integer TAG_RxURL = 18 ;
const integer TAG_RxProtocol = 19 ;
const integer TAG_RxHeader = 20 ;
const integer TAG_TxRequest = 21 ;
const integer TAG_TxResponse = 22 ;
const integer TAG_TxStatus = 23 ;
const integer TAG_TxURL = 24 ;
const integer TAG_TxProtocol = 25 ;
const integer TAG_TxHeader = 26 ;
const integer TAG_ObjRequest = 27 ;
const integer TAG_ObjResponse = 28 ;
const integer TAG_ObjStatus = 29 ;
const integer TAG_ObjURL = 30 ;
const integer TAG_ObjProtocol = 31 ;
const integer TAG_ObjHeader = 32 ;
const integer TAG_LostHeader = 33 ;
const integer TAG_TTL = 34 ;
const integer TAG_Fetch_Body = 35 ;
const integer TAG_VCL_acl = 36 ;
const integer TAG_VCL_call = 37 ;
const integer TAG_VCL_trace = 38 ;
const integer TAG_VCL_return = 39 ;
const integer TAG_VCL_error = 40 ;
const integer TAG_ReqStart = 41 ;
const integer TAG_Hit = 42 ;
const integer TAG_HitPass = 43 ;
const integer TAG_ExpBan = 44 ;
const integer TAG_ExpKill = 45 ;
const integer TAG_WorkThread = 46 ;
const integer TAG_ESI_xmlerror = 47 ;
const integer TAG_Hash = 48 ;
const integer TAG_Backend_health = 49 ;
const integer TAG_VCL_Log = 50 ;
const integer TAG_Gzip = 51 ;
/* Методы */
public __construct ([ array $args ] )
public array getLine ( void )
public static string getTagName ( int $index )
}

Предопределенные константы

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 constructor
  • VarnishLog::getLine — Get next log line
  • VarnishLog::getTagName — Get the log tag string representation by its index


Varnishlog constructor

  • « VarnishLog
  • VarnishLog::getLine »
  • PHP Manual
  • VarnishLog
  • Varnishlog constructor

VarnishLog::__construct

(PECL varnish >= 0.6)

VarnishLog::__construct — Varnishlog constructor

Описание

public VarnishLog::__construct ([ array $args ] )

Список параметров

args

Configuration arguments. The possible keys are:

VARNISH_CONFIG_IDENT - local varnish instance ident path

Возвращаемые значения


Get next log line

  • « VarnishLog::__construct
  • VarnishLog::getTagName »
  • PHP Manual
  • VarnishLog
  • Get next log line

VarnishLog::getLine

(PECL varnish >= 0.6)

VarnishLog::getLine — Get next log line

Описание

public array VarnishLog::getLine ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array with the log line data.


Get the log tag string representation by its index

  • « VarnishLog::getLine
  • YAZ »
  • PHP Manual
  • VarnishLog
  • Get the log tag string representation by its index

VarnishLog::getTagName

(PECL varnish >= 0.6)

VarnishLog::getTagName — Get the log tag string representation by its index

Описание

public static string VarnishLog::getTagName ( int $index )

Список параметров

index

Log tag index.

Возвращаемые значения

Returns the log tag name as string.


YAZ

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции YAZ
    • yaz_addinfo — Возвращает дополнительную информацию в случае ошибки
    • yaz_ccl_conf — Конфигурирует CCL-парсер
    • yaz_ccl_parse — Invoke CCL Parser
    • yaz_close — Закрывает соединение YAZ
    • yaz_connect — Подготавливает соединение с сервером Z39.50
    • yaz_database — Specifies the databases within a session
    • yaz_element — Specifies Element-Set Name for retrieval
    • yaz_errno — Returns error number
    • yaz_error — Returns error description
    • yaz_es_result — Inspects Extended Services Result
    • yaz_es — Prepares for an Extended Service Request
    • yaz_get_option — Returns value of option for connection
    • yaz_hits — Returns number of hits for last search
    • yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package
    • yaz_present — Prepares for retrieval (Z39.50 present)
    • yaz_range — Specifies a range of records to retrieve
    • yaz_record — Возвращает запись
    • yaz_scan_result — Возвращает результат запроса сканирования
    • yaz_scan — Подготовка сканирования
    • yaz_schema — Устанавливает схему для возвращаемых значений
    • yaz_search — Подготовка поиска
    • yaz_set_option — Устанавливает параметры для соединения
    • yaz_sort — Задает критерий сортировки
    • yaz_syntax — Задает предпочитаемый синтаксис для извлекаемой записи
    • yaz_wait — Ожидает выполнения запросов Z39.50 серверами


Введение

Данное расширение обеспечивает взаимодействие PHP с YAZ, инструментом взаимодействия с протоколом поиска информации (» Z39.50 Protocol for Information Retrieval). Используя это расширение, вы можете легко реализовать источник (клиент) Z39.50, который будет сканировать и осуществлять поиск параллельно по нескольким целям (серверам) Z39.50.

Модуль YAZ скрывает сложность взаимодействия по протоколу Z39.50, таким образом его довольно легко использовать. Он обеспечивает постоянное соединение без статуса, схожее с соединением к различным реляционным базам данных для PHP. Это означает, что сессии не сохраняют статус, но могут использоваться совместно несколькими пользователями. Таким образом, в большинстве случаев сохраняются шаги инициализации и само соединение.

YAZ доступен по » http://www.indexdata.dk/yaz/. Новую информацию, примеры скриптов и много другое для данного расширения вы можете найти на » http://www.indexdata.dk/phpyaz/.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.0.0.


Требования

Скачайте YAZ (поддерживается ANSI/NISO Z39.50) и установите его. YAZ может быть получен в виде исходных кодов или различных готовых пакетов c » архива YAZ. Такие операционные системы как Debian GNU/Linux, Suse Linux, FreeBSD уже имеют YAZ в своем дистрибутиве.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/yaz

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Замечание: Информация для пользователей Windows

php_yaz.dll зависит от yaz.dll. Библиотека yaz.dll яваляется частью Win32 ZIP с сайта PHP. Она так же входит в установку Windows YAZ доступной по ссылке » YAZ WIN32.

На платформе Windows не забудьте добавить диркторию PHP в системную переменную PATH, чтобы система могла найти файл yaz.dll.

Внимание

Расширение IMAP не может использоваться вместе с расширениями перекодировки, YAZ или Cyrus. Это связано с тем фактом, что они оба используют одни и те же внутренние символы. Замечание: Версии Yaz 2.0 и выше избавлены от этого недостатка.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • YAZ
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

PHP/YAZ хранит список соединений с адресатами (Z-Ассоциации). Ресурс же предоставляет соединение с адресатом.

Пример ниже демонстрирует особенность параллельного поиска по API. Если аргументы не переданы, выводится форма запроса; иначе (переданы аргументы) происходит поиск по адресам, указанным в массиве host.

Пример #1 Параллельный поиск с помощью Yaz

<?php
$host=$_REQUEST[host];
$query=$_REQUEST[query];
$num_hosts = count($host);
if (empty($query) || count($host) == 0) {
    echo '<form method="get">
    <input type="checkbox"
    name="host[]" value="bagel.indexdata.dk/gils" />
        GILS test
    <input type="checkbox"
    name="host[]" value="localhost:9999/Default" />
        local test
    <input type="checkbox" checked="checked"
    name="host[]" value="z3950.loc.gov:7090/voyager" />
        Library of Congress
    <br />
    RPN Query:
    <input type="text" size="30" name="query" />
    <input type="submit" name="action" value="Search" />
    </form>
    ';
} else {
    echo 'You searched for ' . htmlspecialchars($query) . '<br />';
    for ($i = 0; $i < $num_hosts; $i++) {
        $id[] = yaz_connect($host[$i]);
        yaz_syntax($id[$i], "usmarc");
        yaz_range($id[$i], 1, 10);
        yaz_search($id[$i], "rpn", $query);
    }
    yaz_wait();
    for ($i = 0; $i < $num_hosts; $i++) {
        echo '<hr />' . $host[$i] . ':';
        $error = yaz_error($id[$i]);
        if (!empty($error)) {
            echo "Error: $error";
        } else {
            $hits = yaz_hits($id[$i]);
            echo "Result Count $hits";
        }
        echo '<dl>';
        for ($p = 1; $p <= 10; $p++) {
            $rec = yaz_record($id[$i], $p, "string");
            if (empty($rec)) continue;
            echo "<dt><b>$p</b></dt><dd>";
            echo nl2br($rec);
            echo "</dd>";
        }
        echo '</dl>';
    }
}
?>


Функции YAZ

Содержание

  • yaz_addinfo — Возвращает дополнительную информацию в случае ошибки
  • yaz_ccl_conf — Конфигурирует CCL-парсер
  • yaz_ccl_parse — Invoke CCL Parser
  • yaz_close — Закрывает соединение YAZ
  • yaz_connect — Подготавливает соединение с сервером Z39.50
  • yaz_database — Specifies the databases within a session
  • yaz_element — Specifies Element-Set Name for retrieval
  • yaz_errno — Returns error number
  • yaz_error — Returns error description
  • yaz_es_result — Inspects Extended Services Result
  • yaz_es — Prepares for an Extended Service Request
  • yaz_get_option — Returns value of option for connection
  • yaz_hits — Returns number of hits for last search
  • yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package
  • yaz_present — Prepares for retrieval (Z39.50 present)
  • yaz_range — Specifies a range of records to retrieve
  • yaz_record — Возвращает запись
  • yaz_scan_result — Возвращает результат запроса сканирования
  • yaz_scan — Подготовка сканирования
  • yaz_schema — Устанавливает схему для возвращаемых значений
  • yaz_search — Подготовка поиска
  • yaz_set_option — Устанавливает параметры для соединения
  • yaz_sort — Задает критерий сортировки
  • yaz_syntax — Задает предпочитаемый синтаксис для извлекаемой записи
  • yaz_wait — Ожидает выполнения запросов Z39.50 серверами


Возвращает дополнительную информацию в случае ошибки

  • « Функции YAZ
  • yaz_ccl_conf »
  • PHP Manual
  • Функции YAZ
  • Возвращает дополнительную информацию в случае ошибки

yaz_addinfo

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_addinfo — Возвращает дополнительную информацию в случае ошибки

Описание

string yaz_addinfo ( resource $id )

Возвращает дополнительную информацию в случае ошибки последнего запроса к серверу.

С некоторыми серверами эта функция может вернуть ту же строку, что и функция yaz_error().

Список параметров

id

Дескриптор соединения, возвращаемый функцией yaz_connect().

Возвращаемые значения

Строка содержит дополнительную информацию об ошибке или пустое значение, если последняя операция прошла успешно или нет дополнительной информации от сервера.

Смотрите также

  • yaz_error() - Returns error description
  • yaz_errno() - Returns error number


Конфигурирует CCL-парсер

  • « yaz_addinfo
  • yaz_ccl_parse »
  • PHP Manual
  • Функции YAZ
  • Конфигурирует CCL-парсер

yaz_ccl_conf

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_conf — Конфигурирует CCL-парсер

Описание

void yaz_ccl_conf ( resource $id , array $config )

Эта функция конфигурирует CCL-парсер запросов для сервера с определениями точек доступа (CCL-квалификаторов) и их отображения в RPN.

Для отображения специфического CCL-запроса к RPN вызовите затем функцию yaz_ccl_parse().

Список параметров

id

Идентификатор ресурса, возвращаемый функцией yaz_connect().

config

Массив настроек. Каждый ключ массива - это имя CCL-поля и соответствующее значение, содержащее строку, которая определяет отображение в RPN.

Отображение - это последовательность пар атрибут-тип, атрибут-значение. Атрибут-тип и атрибут-значение разделены знаком равенства (=). Каждая пара отделяется пробелом.

Дополнительную информация можно найти на странице » CCL.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

В примере CCL-парсер настроен для поддержки трех полей CCL: ti, au и isbn. Каждое поле отображается в его BIB-1 эквивалент. Принимается, что переменная $id - это целевой ID.

Пример #1 Настройка CCL

<?php
$fields = array(
  "ti" => "1=4",
  "au"   => "1=1",
  "isbn" => "1=7"
);
yaz_ccl_conf($id, $fields);
?>

Смотрите также

  • yaz_ccl_parse() - Invoke CCL Parser


Invoke CCL Parser

  • « yaz_ccl_conf
  • yaz_close »
  • PHP Manual
  • Функции YAZ
  • Invoke CCL Parser

yaz_ccl_parse

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_ccl_parse — Invoke CCL Parser

Описание

bool yaz_ccl_parse ( resource $id , string $query , array &$result )

This function invokes a CCL parser. It converts a given CCL FIND query to an RPN query which may be passed to the yaz_search() function to perform a search.

To define a set of valid CCL fields call yaz_ccl_conf() prior to this function.

Список параметров

id

The connection resource returned by yaz_connect().

query

The CCL FIND query.

result

If the function was executed successfully, this will be an array containing the valid RPN query under the key rpn.

Upon failure, three indexes are set in this array to indicate the cause of failure:

  • errorcode - the CCL error code (integer)

  • errorstring - the CCL error string

  • errorpos - approximate position in query of failure (integer is character position)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 CCL Parsing

We will try to search using CCL. In the example below, $ccl is a CCL query.

<?php

yaz_ccl_conf($id, $fields);  // see example for yaz_ccl_conf
if (!yaz_ccl_parse($id, $ccl, &$cclresult)) {
    echo 'Error: ' . $cclresult["errorstring"];
} else {
    $rpn = $cclresult["rpn"];
    yaz_search($id, "rpn", $rpn);
}
?>


Закрывает соединение YAZ

  • « yaz_ccl_parse
  • yaz_connect »
  • PHP Manual
  • Функции YAZ
  • Закрывает соединение YAZ

yaz_close

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_close — Закрывает соединение YAZ

Описание

bool yaz_close ( resource $id )

Закрывает соединение, определяемое параметром 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

Описание

mixed yaz_connect ( string $zurl [, mixed $options ] )

Функция возвращает дескриптор соединения в случае успеха и ноль в случае ошибки.

yaz_connect() подготавливает соединение с сервером Z39.50. Эта функция неблокирующая и не пытается установить соединение, а лишь готовит соединение для последующего выполнения функцией yaz_wait().

Замечание:

» YAZ proxy бесплатно доступный агент Z39.50.

Список параметров

zurl

Строка, принимающая форму host[:port][/database]. Если порт опущен, то по умолчанию используется 210 порт. Если опушено название базы данных, используется база с именем Default.

options

Если задается строка, то она рассматривается как строка аутентификации Z39.50 V2 (OpenAuth).

Если задан массив, то содержимое массива выступает в качестве параметров.

user

Имя пользователя для аутентификации.

group

Название группы для аутентификации.

password

Пароль для аутентификации.

cookie

Cookie для сессии (YAZ proxy).

proxy

Прокси для подключения (YAZ proxy).

persistent

Имеет логический тип. Если принимает TRUE - соединение постоянное, если FALSE - непостоянное соединение. По умолчанию соединение постоянное.

Замечание:

Если вы открыли постоянное соединение, вы не сможете закрыть его позднее с помощью yaz_close().

piggyback

Имеет логический тип. Если принимает TRUE,то режим передачи прямых и обратных пакетов включен; если FALSE, то данный режим отключен. По умолчанию режим передачи прямых и обратных пакетов включен.

Включение режима передачи прямых и обратных пакетов более эффективно и обычно снижает нагрузку в сети для впервые выбранных записей. Однако некоторые сервера Z39.50 не поддерживают режим прямых и обратных пакетов или игнорируют эту настройку. Для них данный режим должен быть отключен.

charset

Строка, определяющая кодировку используемую в Z39.50 и при передаче данных. Возможны такие значения как: ISO-8859-1, UTF-8, UTF-16.

Большинство серверов Z39.50 не поддерживают данную настройку (и таким образом она игнорируется). Много серверов используют кодировку ISO-8859-1 для запросов и сообщений. Кодировки записей в форматах MARC21/USMARC не затрагиваются данной опцией.

preferredMessageSize

Целочисленное параметр, определяющий максимальный размер всех записей, возвращенных сервером при поиске, в байтах. Для более подробной информации см. стандарт » Z39.50.

Замечание:

Эта опция поддерживается в версии PECL YAZ 1.0.5 и более поздних.

maximumRecordSize

Целочисленный параметр, определяющий максимальное количество байт в отдельной записи, возвращаемой сервером в результате поиска. Данный параметр относится к Exceptional-record-size в стандарте » Z39.50.

Замечание:

Эта опция поддерживается в версии PECL YAZ 1.0.5 и более поздних.

Возвращаемые значения

Дескриптор соединения в случае успеха, FALSE при ошибке.

Список изменений

Версия | Описание
4.1.0 | Был добавлен параметр options.

Смотрите также

  • yaz_close() - Закрывает соединение YAZ


Specifies the databases within a session

  • « yaz_connect
  • yaz_element »
  • PHP Manual
  • Функции YAZ
  • Specifies the databases within a session

yaz_database

(PHP 4 >= 4.0.6, PECL yaz >= 0.9.0)

yaz_database — Specifies the databases within a session

Описание

bool yaz_database ( resource $id , string $databases )

This function allows you to change databases within a session by specifying one or more databases to be used in search, retrieval, etc. - overriding databases specified in call to yaz_connect().

Список параметров

id

The connection resource returned by yaz_connect().

databases

A string containing one or more databases. Multiple databases are separated by a plus sign +.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Specifies Element-Set Name for retrieval

  • « yaz_database
  • yaz_errno »
  • PHP Manual
  • Функции YAZ
  • Specifies Element-Set Name for retrieval

yaz_element

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_element — Specifies Element-Set Name for retrieval

Описание

bool yaz_element ( resource $id , string $elementset )

This function sets the element set name for retrieval.

Call this function before yaz_search() or yaz_present() to specify the element set name for records to be retrieved.

Замечание:

If this function appears to have no effect, see the description of the piggybacking option in yaz_connect().

Список параметров

id

The connection resource returned by yaz_connect().

elementset

Most servers support F (for full records) and B (for brief records).

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Returns error number

  • « yaz_element
  • yaz_error »
  • PHP Manual
  • Функции YAZ
  • Returns error number

yaz_errno

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_errno — Returns error number

Описание

int yaz_errno ( resource $id )

Returns an error number for the server (last request) identified by id.

yaz_errno() should be called after network activity for each server - (after yaz_wait() returns) to determine the success or failure of the last operation (e.g. search).

Список параметров

id

The connection resource returned by yaz_connect().

Возвращаемые значения

Returns an error code. The error code is either a Z39.50 diagnostic code (usually a Bib-1 diagnostic) or a client side error code which is generated by PHP/YAZ itself, such as "Connect failed", "Init Rejected", etc.

Смотрите также

  • yaz_error() - Returns error description
  • yaz_addinfo() - Возвращает дополнительную информацию в случае ошибки


Returns error description

  • « yaz_errno
  • yaz_es_result »
  • PHP Manual
  • Функции YAZ
  • Returns error description

yaz_error

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_error — Returns error description

Описание

string yaz_error ( resource $id )

yaz_error() returns an English text message corresponding to the last error number as returned by yaz_errno().

Список параметров

id

The connection resource returned by yaz_connect().

Возвращаемые значения

Returns an error text message for server (last request), identified by parameter id. An empty string is returned if the last operation was successful.

Смотрите также

  • yaz_errno() - Returns error number
  • yaz_addinfo() - Возвращает дополнительную информацию в случае ошибки


Inspects Extended Services Result

  • « yaz_error
  • yaz_es »
  • PHP Manual
  • Функции YAZ
  • Inspects Extended Services Result

yaz_es_result

(PHP 4 >= 4.2.0, PECL yaz >= 0.9.0)

yaz_es_result — Inspects Extended Services Result

Описание

array yaz_es_result ( resource $id )

This function inspects the last returned Extended Service result from a server. An Extended Service is initiated by either yaz_item_order() or yaz_es().

Список параметров

id

The connection resource returned by yaz_connect().

Возвращаемые значения

Returns array with element targetReference for the reference for the extended service operation (generated and returned from the server).

Смотрите также

  • yaz_es() - Prepares for an Extended Service Request


Prepares for an Extended Service Request

  • « yaz_es_result
  • yaz_get_option »
  • PHP Manual
  • Функции YAZ
  • Prepares for an Extended Service Request

yaz_es

(PECL yaz >= 0.9.0)

yaz_es — Prepares for an Extended Service Request

Описание

void yaz_es ( resource $id , string $type , array $args )

This function prepares for an Extended Service Request. Extended Services is family of various Z39.50 facilities, such as Record Update, Item Order, Database administration etc.

Замечание:

Many Z39.50 Servers do not support Extended Services.

The yaz_es() creates an Extended Service Request packages and puts it into a queue of operations. Use yaz_wait() to send the request(s) to the server. After completion of yaz_wait() the result of the Extended Service operation should be expected with a call to yaz_es_result().

Список параметров

id

The connection resource returned by yaz_connect().

type

A string which represents the type of the Extended Service: itemorder (Item Order), create (Create Database), drop (Drop Database), commit (Commit Operation), update (Update Record), xmlupdate (XML Update). Each type is specified in the following section.

args

An array with extended service options plus package specific options. The options are identical to those offered in the C API of ZOOM C. Refer to the ZOOM » Extended Services.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Record Update

<?php
$con = yaz_connect("myhost/database");
$args = array (
    "record" => "<gils><title>some title</title></gils>",
    "syntax" => "xml",
    "action" => "specialUpdate"
);
yaz_es($con, "update", $args);
yaz_wait();
$result = yaz_es_result($id);
?>

Смотрите также

  • yaz_es_result() - Inspects Extended Services Result


Returns value of option for connection

  • « yaz_es
  • yaz_hits »
  • PHP Manual
  • Функции YAZ
  • Returns value of option for connection

yaz_get_option

(PECL yaz >= 0.9.0)

yaz_get_option — Returns value of option for connection

Описание

string yaz_get_option ( resource $id , string $name )

Returns the value of the option specified with name.

Список параметров

id

The connection resource returned by yaz_connect().

name

The option name.

Возвращаемые значения

Returns the value of the specified option or an empty string if the option wasn't set.

Смотрите также

  • The description of yaz_set_option() - Устанавливает параметры для соединения for available options


Returns number of hits for last search

  • « yaz_get_option
  • yaz_itemorder »
  • PHP Manual
  • Функции YAZ
  • Returns number of hits for last search

yaz_hits

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_hits — Returns number of hits for last search

Описание

int yaz_hits ( resource $id [, array &$searchresult ] )

yaz_hits() returns the number of hits for the last search.

Список параметров

id

The connection resource returned by yaz_connect().

searchresult

Result array for detailed search result information.

Возвращаемые значения

Returns the number of hits for the last search or 0 if no search was performed.

The search result array (if supplied) holds information that is returned by a Z39.50 server in the SearchResult-1 format part of a search response. The SearchResult-1 format can be used to obtain information about hit counts for various parts of the query (subquery). In particular, it is possible to obtain hit counts for the individual search terms in a query. Information for first subquery is in $array[0], second subquery in $array[1], and so forth.

searchresult members
Element | Description
id | Sub query ID2 (string)
count | Result count / hits (integer)
subquery.term | Sub query term (string)
interpretation.term | Interpretated sub query term (string)
recommendation.term | Recommended sub query term (string)

Замечание:

The SearchResult facility requires PECL YAZ 1.0.5 or later and YAZ 2.1.9 or later.

Замечание:

Very few Z39.50 implementations support the SearchResult facility.


Prepares for Z39.50 Item Order with an ILL-Request package

  • « yaz_hits
  • yaz_present »
  • PHP Manual
  • Функции YAZ
  • Prepares for Z39.50 Item Order with an ILL-Request package

yaz_itemorder

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_itemorder — Prepares for Z39.50 Item Order with an ILL-Request package

Описание

void yaz_itemorder ( resource $id , array $args )

This function prepares for an Extended Services request using the Profile for the Use of Z39.50 Item Order Extended Service to Transport ILL (Profile/1). See » this and the » specification.

Список параметров

id

The connection resource returned by yaz_connect().

args

Must be an associative array with information about the Item Order request to be sent. The key of the hash is the name of the corresponding ASN.1 tag path. For example, the ISBN below the Item-ID has the key item-id,ISBN.

The ILL-Request parameters are:

protocol-version-num
transaction-id,initial-requester-id,person-or-institution-symbol,person
transaction-id,initial-requester-id,person-or-institution-symbol,institution
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-person
transaction-id,initial-requester-id,name-of-person-or-institution,name-of-institution
transaction-id,transaction-group-qualifier
transaction-id,transaction-qualifier
transaction-id,sub-transaction-qualifier
service-date-time,this,date
service-date-time,this,time
service-date-time,original,date
service-date-time,original,time
requester-id,person-or-institution-symbol,person
requester-id,person-or-institution-symbol,institution
requester-id,name-of-person-or-institution,name-of-person
requester-id,name-of-person-or-institution,name-of-institution
responder-id,person-or-institution-symbol,person
responder-id,person-or-institution-symbol,institution
responder-id,name-of-person-or-institution,name-of-person
responder-id,name-of-person-or-institution,name-of-institution
transaction-type
delivery-address,postal-address,name-of-person-or-institution,name-of-person
delivery-address,postal-address,name-of-person-or-institution,name-of-institution
delivery-address,postal-address,extended-postal-delivery-address
delivery-address,postal-address,street-and-number
delivery-address,postal-address,post-office-box
delivery-address,postal-address,city
delivery-address,postal-address,region
delivery-address,postal-address,country
delivery-address,postal-address,postal-code
delivery-address,electronic-address,telecom-service-identifier
delivery-address,electronic-address,telecom-service-addreess
billing-address,postal-address,name-of-person-or-institution,name-of-person
billing-address,postal-address,name-of-person-or-institution,name-of-institution
billing-address,postal-address,extended-postal-delivery-address
billing-address,postal-address,street-and-number
billing-address,postal-address,post-office-box
billing-address,postal-address,city
billing-address,postal-address,region
billing-address,postal-address,country
billing-address,postal-address,postal-code
billing-address,electronic-address,telecom-service-identifier
billing-address,electronic-address,telecom-service-addreess
ill-service-type
requester-optional-messages,can-send-RECEIVED
requester-optional-messages,can-send-RETURNED
requester-optional-messages,requester-SHIPPED
requester-optional-messages,requester-CHECKED-IN
search-type,level-of-service
search-type,need-before-date
search-type,expiry-date
search-type,expiry-flag
place-on-hold
client-id,client-name
client-id,client-status
client-id,client-identifier
item-id,item-type
item-id,call-number
item-id,author
item-id,title
item-id,sub-title
item-id,sponsoring-body
item-id,place-of-publication
item-id,publisher
item-id,series-title-number
item-id,volume-issue
item-id,edition
item-id,publication-date
item-id,publication-date-of-component
item-id,author-of-article
item-id,title-of-article
item-id,pagination
item-id,ISBN
item-id,ISSN
item-id,additional-no-letters
item-id,verification-reference-source
copyright-complicance
retry-flag
forward-flag
requester-note
forward-note

There are also a few parameters that are part of the Extended Services Request package and the ItemOrder package:

package-name
user-id
contact-name
contact-phone
contact-email
itemorder-item

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Prepares for retrieval (Z39.50 present)

  • « yaz_itemorder
  • yaz_range »
  • PHP Manual
  • Функции YAZ
  • Prepares for retrieval (Z39.50 present)

yaz_present

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_present — Prepares for retrieval (Z39.50 present)

Описание

bool yaz_present ( resource $id )

This function prepares for retrieval of records after a successful search.

The yaz_range() function should be called prior to this function to specify the range of records to be retrieved.

Список параметров

id

The connection resource returned by yaz_connect().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Specifies a range of records to retrieve

  • « yaz_present
  • yaz_record »
  • PHP Manual
  • Функции YAZ
  • Specifies a range of records to retrieve

yaz_range

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_range — Specifies a range of records to retrieve

Описание

void yaz_range ( resource $id , int $start , int $number )

Specifies a range of records to retrieve.

This function should be called before yaz_search() or yaz_present().

Список параметров

id

The connection resource returned by yaz_connect().

start

Specifies the position of the first record to be retrieved. The records numbers goes from 1 to yaz_hits().

number

Specifies the number of records to be retrieved.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает запись

  • « yaz_range
  • yaz_scan_result »
  • PHP Manual
  • Функции YAZ
  • Возвращает запись

yaz_record

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_record — Возвращает запись

Описание

string yaz_record ( resource $id , int $pos , string $type )

Функция yaz_record() проверяет запись в текущем результирующем наборе на позиции, определенным параметром pos.

Список параметров

id

Дескриптор соединения, возвращаемый yaz_connect().

pos

Позиция записи. Записи в результирующем наборе нумеруются как 1, 2, ... $hits, где $hits - число записей в результирующем наборе, которое возвращается функцией yaz_hits().

type

type определяет форму возвращаемой записи.

Замечание:

Только приложение несет ответственность за достоверность того, что возвращаемые записи с сервера Z39.50/SRW в надлежащем формате. Задаваемый тип только определяет преобразование, которое имеет место на стороне клиента (в PHP/YAZ).

Помимо преобразования переданной записи в строку/массив, PHP/YAZ так же может преобразовывать кодировку записи. Особенно это актуально для форматов USMARC/MARC21, которые рекомендуется преобразовывать, поскольку они обычно возвращаются в кодировке MARC-8, которую не понимают браузеры и другие приложения. Чтобы определить преобразование, добавьте ; charset=from, to, где from текущая кодировка записи и to результирующая кодировка, которая будет доступна PHP.

string

Запись возвращается в виде строки для отображения. В этом режиме все MARC-записи преобразуются в посторчное представление, поскольку в формате ISO2709 их трудно прочитать. Записи XML и SUTRS возвращаются в их родном формате. GRS-1 возвращается в (безобразном) построчном представлении.

Данный формат применим для быстрого вывода записей на экран, для отладки, или в случае, когда корректное отображение невозможно.

xml

Запись возвращается как строка XML, если это возможно. В этом режиме все MARC-записи преобразовываются в формат » MARCXML. Записи XML и SUTRS возвращаются в их родном формате. GRS-1 не поддерживается.

Этот формат схож с string, за исключением того, что MARC-записи преобразуются к MARCXML.

Данный формат применим, если запись будет передана парсеру XML или XSLT-процессору.

raw

Запись возвращается в виде строки в исходной форме. Данный тип применим для MARC, XML и SUTRS, но не работает для GRS-1.

MARC-запись возвращается в формате ISO2709, XML и SUTRS возвращаются как строка.

syntax

Синтаксис возвращаемой записи, например USmarc, GRS-1, XML, и д.р.

database

Имя базы данных, сопоставленное с записью.

array

Запись возвращается в виде массива, сопоставленного со структурой GRS-1. Данный тип применим для MARC и GRS-1. XML, SUTRS не поддерживаются и, если исходная запись в формате XML или SUTRS, возвращается пустая строка.

Возвращаемый массив состоит из списка, который соответствует каждому внутреннему узлу или конечному элементу(leaf) формата GRS-1. Каждый список состоит из подсписка, первым элементом которого будет путь и дата (если она доступна).

Путь, представленый в виде строки, содержит список каждой компоненты дерева (для структуры записи GRS-1) от корневого элемента до конечного. Каждая компонента представлена парой тип поля и значение, в форме (тип, значение).

Начальное поле обычно сопоставлено типу 3. MARC-записи тоже могут быть возвращены в виде массива (они конвертируются в GRS-1).

Возвращаемые значения

Возвращает запись на позиции pos или пустую строку, если на заданной позиции нет записей.

Если на заданной позиции в базе данных нет записей, будет возвращена пустая строка.

Примеры

Пример #1 Массив для записи GRS-1

Возьмем запись GRS-1, вида:

(4,52)Robert M. Pirsig
(4,70)
      (4,90)
            (2,7)Transworld Publishers, ltd.
Данная запись содержит два узла на верхнем(корневом) уровне. Первый элемент корневого уровня (4,52) [тип 4, значение 52], и содержит данные Robert M. Pirsig. Второй элемент корневого уровня (4,70) содержит поддерево с единственным элементом (4,90). Элемент (4,90) в свою очередь содержит поддерево (2,7) с данными Transworld Publishers, ltd..

Если данная запись находится на позиции $p, тогда скрипт

<?php

$ar = yaz_record($id, $p, "array");
print_r($ar);

?>
выведет:
Array
(
    [0] => Array
        (
            [0] => (4,52)
            [1] => Robert M. Pirsig
        )
    [1] => Array
        (
            [0] => (4,70)
        )
    [2] => Array
        (
            [0] => (4,70)(4,90)
        )
    [3] => Array
        (
            [0] => (4,70)(4,90)(2,7)
            [1] => Transworld Publishers, ltd.
        )
)

Пример #2 Пример работы с MARCXML

Скрипт ниже вернет запись MARC21/USMARC в формате MARCXML. Исходная запись будет возвращена в кодировке marc-8 (неизвестной для большинства XML парсеров), поэтому она преобразуется в UTF-8.

<?php
$rec = yaz_record($id, $p, "xml; charset=marc-8,utf-8");
?>

Запись $rec может быть обработана процессором Sablotron XSLT так:

<?php

$xslfile = 'display.xsl';
$processor = xslt_create();
$parms = array('/_xml' => $rec);
$res = xslt_process($processor, 'arg:/_xml', $xslfile, NULL, $parms);
xslt_free($processor);
$res = preg_replace("'</?html[^>]*>'", '', $res);
echo $res;

?>

Для PHP 5 нужно использовать расширение XSL вместо Sablotron XSLT.


Возвращает результат запроса сканирования

  • « yaz_record
  • yaz_scan »
  • PHP Manual
  • Функции YAZ
  • Возвращает результат запроса сканирования

yaz_scan_result

(PHP 4 >= 4.0.5, PECL yaz >= 0.9.0)

yaz_scan_result — Возвращает результат запроса сканирования

Описание

array yaz_scan_result ( resource $id [, array &$result ] )

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 — Подготовка сканирования

Описание

void yaz_scan ( resource $id , string $type , string $startterm [, array $flags ] )

Функция подготавливает запрос сканирования для установленного соединения по протоколу 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 "Scan failed. Error: " . 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 — Устанавливает схему для возвращаемых значений

Описание

void yaz_schema ( resource $id , string $schema )

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 — Подготовка поиска

Описание

bool yaz_search ( resource $id , string $type , string $query )

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 or b) and ((c or d) not 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 — Устанавливает параметры для соединения

Описание

void yaz_set_option ( resource $id , string $name , string $value )
void yaz_set_option ( resource $id , array $options )

Устанавливает один или несколько параметров для указанного соединения.

Список параметров

id

Дискриптор соединения, возвращенный yaz_connect().

name или options

Может быть строкой или массивом.

Если задана строка, то она будет воспринята как название параметра, которое нужно установить. Нужно задать значение value.

Если задан массив, то он должен быть ассоциативным (название параметра => значение).

Настройки соединения PHP/YAZ
Название | Описание
implementationName | реализация имени сервера
implementationVersion | реализация версии сервера
implementationId | реализация ID сервера
schema | схема для возвращаемого набора. По умолчанию не установлено. Эта настройка эквивалентна функции yaz_schema().
preferredRecordSyntax | синтаксис возвращаемой записи. По умолчанию не установлено. Установка этого параметра равносильна использованию функции yaz_syntax().
start | смещение для первой записи из возвращаемого функциями yaz_search() or 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 — Задает критерий сортировки

Описание

void yaz_sort ( resource $id , string $criteria )

Функция задает критерий сортировки и включает сортировку по 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 — Задает предпочитаемый синтаксис для извлекаемой записи

Описание

void yaz_syntax ( resource $id , string $syntax )

yaz_syntax() задает предпочитаемый синтаксис для извлекаемой записи

Эта функция должна быть вызвана до yaz_search() или yaz_present().

Список параметров

id

Дескриптор соединения, возвращаемый yaz_connect().

syntax

Синтаксис должен быть задан как OID (Object Identifier, идентификатор объекта) в исходном формате, разделенным точками (например 1.2.840.10003.5.10) или в качестве известного зарегистрированного формата записи (sutrs, usmarc, grs1, xml и др.).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Ожидает выполнения запросов Z39.50 серверами

  • « yaz_syntax
  • YP/NIS »
  • PHP Manual
  • Функции YAZ
  • Ожидает выполнения запросов Z39.50 серверами

yaz_wait

(PHP 4 >= 4.0.1, PECL yaz >= 0.9.0)

yaz_wait — Ожидает выполнения запросов Z39.50 серверами

Описание

mixed yaz_wait ([ array &$options ] )

Функция выполняет сетевое (блокирующее) действие до завершения запроса,
подготовленного функциями
yaz_connect(), yaz_search(),
yaz_present(), yaz_scan() and
yaz_itemorder().

yaz_wait() прекращает работу и возвращает результат после того как все сервера или завершат выполнение всех запросов или прервут их (в случае ошибок).

Список параметров

options

Ассоциативный массив параметров:

timeout

Устанавливает время ожидания в секундах. Если сервер не отвечает по прошествии этого времени, он считается нерабочим и yaz_wait() прекращает работу. По умолчанию ожидание составляет 15 секунд.

event

Имеет логический тип.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В случае, если установлен параметр event, возвращает ресурс или FALSE в случае возникновения ошибки.


YP/NIS

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • YP/NIS Функции
    • yp_all — Traverse the map and call a function on each entry
    • yp_cat — Return an array containing the entire map
    • yp_err_string — Returns the error string associated with the given error code
    • yp_errno — Returns the error code of the previous operation
    • yp_first — Returns the first key-value pair from the named map
    • yp_get_default_domain — Fetches the machine's default NIS domain
    • yp_master — Returns the machine name of the master NIS server for a map
    • yp_match — Returns the matched line
    • yp_next — Returns the next key-value pair in the named map
    • yp_order — Returns the order number for a map


Введение

NIS (formerly called Yellow Pages) allows network management of important administrative files (e.g. the password file). For more information refer to the NIS manpage and » The Linux NIS(YP)/NYS/NIS+ HOWTO. There is also a book called » Managing NFS and NIS by Hal Stern.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.


Требования

None besides functions from standard Unix libraries which are always available (either libc or libnsl, configure will detect which one to use).


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » http://svn.php.net/viewvc/pecl/yp


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

YPERR_ACCESS (integer)
access violation (this has only been added recently and is only available from PECL SVN for now)
YPERR_BADARGS (integer)
The function arguments are bad
YPERR_BADDB (integer)
YP database is bad
YPERR_BUSY (integer)
Database busy
YPERR_DOMAIN (integer)
cannot bind to server in this domain
YPERR_KEY (integer)
no such key in map
YPERR_MAP (integer)
no such map in server's domain
YPERR_NODOM (integer)
Local domain name not set
YPERR_NOMORE (integer)
No more records in map database
YPERR_PMAP (integer)
Can't communicate with portmapper
YPERR_RESRC (integer)
resource allocation failure
YPERR_RPC (integer)
RPC failure - domain has been unbound
YPERR_YPBIND (integer)
Can't communicate with ypbind
YPERR_YPERR (integer)
internal yp server or client error
YPERR_YPSERV (integer)
Can't communicate with ypserv
YPERR_VERS (integer)
YP version mismatch


YP/NIS Функции

Содержание

  • yp_all — Traverse the map and call a function on each entry
  • yp_cat — Return an array containing the entire map
  • yp_err_string — Returns the error string associated with the given error code
  • yp_errno — Returns the error code of the previous operation
  • yp_first — Returns the first key-value pair from the named map
  • yp_get_default_domain — Fetches the machine's default NIS domain
  • yp_master — Returns the machine name of the master NIS server for a map
  • yp_match — Returns the matched line
  • yp_next — Returns the next key-value pair in the named map
  • yp_order — Returns the order number for a map


Traverse the map and call a function on each entry

  • « YP/NIS Функции
  • yp_cat »
  • PHP Manual
  • YP/NIS Функции
  • Traverse the map and call a function on each entry

yp_all

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_all — Traverse the map and call a function on each entry

Описание

void yp_all ( string $domain , string $map , string $callback )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

domain

The NIS domain name.

map

The NIS map.

callback

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Return an array containing the entire map

  • « yp_all
  • yp_err_string »
  • PHP Manual
  • YP/NIS Функции
  • Return an array containing the entire map

yp_cat

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_cat — Return an array containing the entire map

Описание

array yp_cat ( string $domain , string $map )

Returns all map entries.

Список параметров

domain

The NIS domain name.

map

The NIS map.

Возвращаемые значения

Returns an array of all map entries, the maps key values as array indices and the maps entries as array data.


Returns the error string associated with the given error code

  • « yp_cat
  • yp_errno »
  • PHP Manual
  • YP/NIS Функции
  • Returns the error string associated with the given error code

yp_err_string

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_err_string — Returns the error string associated with the given error code

Описание

string yp_err_string ( int $errorcode )

Returns the error message associated with the given error code. Useful to indicate what exactly went wrong.

Список параметров

errorcode

The error code.

Возвращаемые значения

Returns the error message, as a string.

Примеры

Пример #1 Example for NIS errors

<?php
echo "Error: " . yp_err_string(yp_errno());
?>

Смотрите также

  • yp_errno() - Returns the error code of the previous operation


Returns the error code of the previous operation

  • « yp_err_string
  • yp_first »
  • PHP Manual
  • YP/NIS Функции
  • Returns the error code of the previous operation

yp_errno

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5)

yp_errno — Returns the error code of the previous operation

Описание

int yp_errno ( void )

Returns the error code of the previous operation.

Возвращаемые значения

Returns one of the YPERR_XXX error constants.

Смотрите также

  • yp_err_string() - Returns the error string associated with the given error code


Returns the first key-value pair from the named map

  • « yp_errno
  • yp_get_default_domain »
  • PHP Manual
  • YP/NIS Функции
  • Returns the first key-value pair from the named map

yp_first

(PHP 4, PHP 5 <= 5.0.5)

yp_first — Returns the first key-value pair from the named map

Описание

array yp_first ( string $domain , string $map )

Gets the first key-value pair from the named map in the named domain.

Список параметров

domain

The NIS domain name.

map

The NIS map.

Возвращаемые значения

Returns the first key-value pair as an array on success, or FALSE on errors.

Примеры

Пример #1 Example for the NIS first

<?php
$entry = yp_first($domain, "passwd.byname");

$key = key($entry);
$value = $entry[$key];

echo "First entry in this map has key " . $key . " and value " . $value;
?>

Смотрите также

  • yp_next() - Returns the next key-value pair in the named map
  • yp_get_default_domain() - Fetches the machine's default NIS domain


Fetches the machine's default NIS domain

  • « yp_first
  • yp_master »
  • PHP Manual
  • YP/NIS Функции
  • Fetches the machine's default NIS domain

yp_get_default_domain

(PHP 4, PHP 5 <= 5.0.5)

yp_get_default_domain — Fetches the machine's default NIS domain

Описание

string yp_get_default_domain ( void )

Returns the default domain of the node. Can be used as the domain parameter for successive NIS calls.

A NIS domain can be described a group of NIS maps. Every host that needs to look up information binds itself to a certain domain. Refer to the documents mentioned at the beginning for more detailed information.

Возвращаемые значения

Returns the default domain of the node or FALSE. Can be used as the domain parameter for successive NIS calls.

Примеры

Пример #1 Example for the default domain

<?php
$domain = yp_get_default_domain();
echo "Default NIS domain is: " . $domain;
?>


Returns the machine name of the master NIS server for a map

  • « yp_get_default_domain
  • yp_match »
  • PHP Manual
  • YP/NIS Функции
  • Returns the machine name of the master NIS server for a map

yp_master

(PHP 4, PHP 5 <= 5.0.5)

yp_master — Returns the machine name of the master NIS server for a map

Описание

string yp_master ( string $domain , string $map )

Returns the machine name of the master NIS server for a map.

Список параметров

domain

The NIS domain name.

map

The NIS map.

Возвращаемые значения

Примеры

Пример #1 Example for the NIS master

<?php
$number = yp_master($domain, $mapname);
echo "Master for this map is: " . $master;
?>

Смотрите также

  • yp_get_default_domain() - Fetches the machine's default NIS domain


Returns the matched line

  • « yp_master
  • yp_next »
  • PHP Manual
  • YP/NIS Функции
  • Returns the matched line

yp_match

(PHP 4, PHP 5 <= 5.0.5)

yp_match — Returns the matched line

Описание

string yp_match ( string $domain , string $map , string $key )

Returns the value associated with the passed key out of the specified map.

Список параметров

domain

The NIS domain name.

map

The NIS map.

key

This key must be exact.

Возвращаемые значения

Returns the value, or FALSE on errors.

Примеры

Пример #1 Example for NIS match

<?php
$entry = yp_match($domain, "passwd.byname", "joe");
echo "Matched entry is: " . $entry;
?>

Результатом выполнения данного примера будет что-то подобное:

joe:##joe:11111:100:Joe User:/home/j/joe:/usr/local/bin/bash

Смотрите также

  • yp_get_default_domain() - Fetches the machine's default NIS domain


Returns the next key-value pair in the named map

  • « yp_match
  • yp_order »
  • PHP Manual
  • YP/NIS Функции
  • Returns the next key-value pair in the named map

yp_next

(PHP 4, PHP 5 <= 5.0.5)

yp_next — Returns the next key-value pair in the named map

Описание

array yp_next ( string $domain , string $map , string $key )

Returns the next key-value pair in the named map after the specified key.

Список параметров

domain

map

key

Возвращаемые значения

Returns the next key-value pair as an array, or FALSE on errors.

Примеры

Пример #1 Example for NIS next

<?php
$entry = yp_next($domain, "passwd.byname", "joe");

if (!$entry) {
    echo "No more entries found\n";
    echo "<!--" . yp_errno() . ": " . yp_err_string() . "-->";
}

$key = key($entry);

echo "The next entry after joe has key " . $key
      . " and value " . $entry[$key];
?>

Смотрите также

  • yp_first() - Returns the first key-value pair from the named map
  • yp_get_default_domain() - Fetches the machine's default NIS domain


Returns the order number for a map

  • « yp_next
  • 0MQ messaging »
  • PHP Manual
  • YP/NIS Функции
  • Returns the order number for a map

yp_order

(PHP 4, PHP 5 <= 5.0.5)

yp_order — Returns the order number for a map

Описание

int yp_order ( string $domain , string $map )

Gets the order number for a map.

Список параметров

domain

map

Возвращаемые значения

Returns the order number for a map or FALSE on error.

Примеры

Пример #1 Example for the NIS order

<?php
    $number = yp_order($domain, $mapname);
    echo "Order number for this map is: " . $number;
?>

Смотрите также

  • yp_get_default_domain() - Fetches the machine's default NIS domain


ZMQ

  • Введение
  • Установка и настройка
    • Требования
  • ZMQ — The ZMQ class
    • ZMQ::__construct — Конструктор ZMQ
  • ZMQContext — The ZMQContext class
    • ZMQContext::__construct — Construct a new ZMQContext object
    • ZMQContext::getOpt — Get context option
    • ZMQContext::getSocket — Create a new socket
    • ZMQContext::isPersistent — Whether the context is persistent
    • ZMQContext::setOpt — Set a socket option
  • ZMQSocket — The ZMQSocket class
    • ZMQSocket::bind — Привязка сокета
    • ZMQSocket::connect — Подключение к сокету
    • ZMQSocket::__construct — Конструктор класса ZMQSocket
    • ZMQSocket::disconnect — Disconnect a socket
    • ZMQSocket::getEndpoints — Get list of endpoints
    • ZMQSocket::getPersistentId — Get the persistent id
    • ZMQSocket::getSocketType — Get the socket type
    • ZMQSocket::getSockOpt — Get socket option
    • ZMQSocket::isPersistent — Whether the socket is persistent
    • ZMQSocket::recv — Receives a message
    • ZMQSocket::recvMulti — Receives a multipart message
    • ZMQSocket::send — Sends a message
    • ZMQSocket::sendmulti — Sends a multipart message
    • ZMQSocket::setSockOpt — Set a socket option
    • ZMQSocket::unbind — Unbind the socket
  • ZMQPoll — The ZMQPoll class
    • ZMQPoll::add — Add item to the poll set
    • ZMQPoll::clear — Clear the poll set
    • ZMQPoll::count — Count items in the poll set
    • ZMQPoll::getLastErrors — Get poll errors
    • ZMQPoll::poll — Poll the items
    • ZMQPoll::remove — Remove item from poll set
  • ZMQDevice — The ZMQDevice class
    • ZMQDevice::__construct — Construct a new device
    • ZMQDevice::getIdleTimeout — Get the idle timeout
    • ZMQDevice::getTimerTimeout — Get the timer timeout
    • ZMQDevice::run — Run the new device
    • ZMQDevice::setIdleCallback — Set the idle callback function
    • ZMQDevice::setIdleTimeout — Set the idle timeout
    • ZMQDevice::setTimerCallback — Set the timer callback function
    • ZMQDevice::setTimerTimeout — Set the timer timeout


Введение

"OMQ is a software library that lets you quickly design and implement a fast message-based application." --0MQ Website

For more information about 0MQ, see » http://zeromq.org/.


  • « Введение
  • Требования »
  • PHP Manual
  • 0MQ messaging
  • Установка и настройка

Установка и настройка

Содержание

  • Требования


Требования

ZMQ extension requires 0MQ version 2.0.7 or higher. 0MQ can be acquired from » http://zeromq.org/area:download.

Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/zmq


The ZMQ class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

ZMQ {
/* Constants */
const integer SOCKET_PAIR ;
const integer SOCKET_PUB ;
const integer SOCKET_SUB ;
const integer SOCKET_REQ ;
const integer SOCKET_REP ;
const integer SOCKET_XREQ ;
const integer SOCKET_XREP ;
const integer SOCKET_PUSH ;
const integer SOCKET_PULL ;
const integer SOCKET_ROUTER ;
const integer SOCKET_DEALER ;
const integer SOCKET_XPUB ;
const integer SOCKET_XSUB ;
const integer SOCKET_STREAM ;
const integer SOCKOPT_HWM ;
const integer SOCKOPT_SNDHWM ;
const integer SOCKOPT_RCVHWM ;
const integer SOCKOPT_AFFINITY ;
const integer SOCKOPT_IDENTITY ;
const integer SOCKOPT_SUBSCRIBE ;
const integer SOCKOPT_UNSUBSCRIBE ;
const integer SOCKOPT_RATE ;
const integer SOCKOPT_RECOVERY_IVL ;
const integer SOCKOPT_RECONNECT_IVL ;
const integer SOCKOPT_RECONNECT_IVL_MAX ;
const integer SOCKOPT_MCAST_LOOP ;
const integer SOCKOPT_SNDBUF ;
const integer SOCKOPT_RCVBUF ;
const integer SOCKOPT_RCVMORE ;
const integer SOCKOPT_TYPE ;
const integer SOCKOPT_LINGER ;
const integer SOCKOPT_BACKLOG ;
const integer SOCKOPT_MAXMSGSIZE ;
const integer SOCKOPT_SNDTIMEO ;
const integer SOCKOPT_RCVTIMEO ;
const integer SOCKOPT_IPV4ONLY ;
const integer SOCKOPT_LAST_ENDPOINT ;
const integer SOCKOPT_TCP_KEEPALIVE_IDLE ;
const integer SOCKOPT_TCP_KEEPALIVE_CNT ;
const integer SOCKOPT_TCP_KEEPALIVE_INTVL ;
const integer SOCKOPT_TCP_ACCEPT_FILTER ;
const integer SOCKOPT_TCP_ACCEPT_FILTER ;
const integer SOCKOPT_DELAY_ATTACH_ON_CONNECT ;
const integer SOCKOPT_XPUB_VERBOSE ;
const integer SOCKOPT_ROUTER_RAW ;
const integer SOCKOPT_IPV6 ;
const integer CTXOPT_MAX_SOCKETS ;
const integer POLL_IN ;
const integer POLL_OUT ;
const integer MODE_NOBLOCK ;
const integer MODE_DONTWAIT ;
const integer MODE_SNDMORE ;
const integer ERR_INTERNAL ;
const integer ERR_EAGAIN ;
const integer ERR_ENOTSUP ;
const integer ERR_EFSM ;
const integer ERR_ETERM ;
/* Methods */
private__construct ( void )
}

Предопределенные константы

ZMQ Constant Types

ZMQ::SOCKET_PAIR

Exclusive pair pattern

ZMQ::SOCKET_PUB

Publisher socket

ZMQ::SOCKET_SUB

Subscriber socket

ZMQ::SOCKET_REQ

Request socket

ZMQ::SOCKET_REP

Reply socket

ZMQ::SOCKET_XREQ

Alias for SOCKET_DEALER

ZMQ::SOCKET_XREP

Alias for SOCKET_ROUTER

ZMQ::SOCKET_PUSH

Pipeline upstream push socket

ZMQ::SOCKET_PULL

Pipeline downstream pull socket

ZMQ::SOCKET_ROUTER

Extended REP socket that can route replies to requesters

ZMQ::SOCKET_DEALER

Extended REQ socket that load balances to all connected peers

ZMQ::SOCKET_XPUB

Similar to SOCKET_PUB, except you can receive subscriptions as messages. The subscription message is 0 (unsubscribe) or 1 (subscribe) followed by the topic.

ZMQ::SOCKET_XSUB

Similar to SOCKET_SUB, except you can send subscriptions as messages. See SOCKET_XPUB for format.

ZMQ::SOCKET_STREAM

Used to send and receive TCP data from a non-OMQ peer. Available if compiled against ZeroMQ 4.x or higher (Value: integer).

ZMQ::SOCKOPT_HWM

The high water mark for inbound and outbound messages is a hard limit on the maximum number of outstanding messages OMQ shall queue in memory for any single peer that the specified socket is communicating with. Setting this option on a socket will only affect connections made after the option has been set. On ZeroMQ 3.x this is a wrapper for setting both SNDHWM and RCVHWM. (Value: integer).

ZMQ::SOCKOPT_SNDHWM

The ZMQ_SNDHWM option shall set the high water mark for outbound messages on the specified socket. Available if compiled against ZeroMQ 3.x or higher (Value: integer).

ZMQ::SOCKOPT_RCVHWM

The ZMQ_SNDHWM option shall set the high water mark for inbound messages on the specified socket. Available if compiled against ZeroMQ 3.x or higher (Value: integer).

ZMQ::SOCKOPT_AFFINITY

Set I/O thread affinity (Value: integer)

ZMQ::SOCKOPT_IDENTITY

Set socket identity (Value: string)

ZMQ::SOCKOPT_SUBSCRIBE

Establish message filter. Valid for subscriber socket (Value: string)

ZMQ::SOCKOPT_UNSUBSCRIBE

Remove message filter. Valid for subscriber socket (Value: string)

ZMQ::SOCKOPT_RATE

Set rate for multicast sockets (pgm) (Value: integer >= 0)

ZMQ::SOCKOPT_RECOVERY_IVL

Set multicast recovery interval (Value: integer >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL

Set the initial reconnection interval (Value: integer >= 0)

ZMQ::SOCKOPT_RECONNECT_IVL_MAX

Set the max reconnection interval (Value: integer >= 0)

ZMQ::SOCKOPT_MCAST_LOOP

Control multicast loopback (Value: integer >= 0)

ZMQ::SOCKOPT_SNDBUF

Set kernel transmit buffer size (Value: integer >= 0)

ZMQ::SOCKOPT_RCVBUF

Set kernel receive buffer size (Value: integer >= 0)

ZMQ::SOCKOPT_RCVMORE

Receive multi-part messages (Value: integer)

ZMQ::SOCKOPT_TYPE

Get the socket type. Valid for getSockOpt (Value: integer)

ZMQ::SOCKOPT_LINGER

The linger value of the socket. Specifies how long the socket blocks trying flush messages after it has been closed (Value: integer)

ZMQ::SOCKOPT_BACKLOG

The SOCKOPT_BACKLOG option shall set the maximum length of the queue of outstanding peer connections for the specified socket; this only applies to connection-oriented transports. (Value: integer)

ZMQ::SOCKOPT_MAXMSGSIZE

Limits the maximum size of the inbound message. Value -1 means no limit. Available if compiled against ZeroMQ 3.x or higher (Value: integer)

ZMQ::SOCKOPT_SNDTIMEO

Sets the timeout for send operation on the socket. Value -1 means no limit. Available if compiled against ZeroMQ 3.x or higher (Value: integer)

ZMQ::SOCKOPT_RCVTIMEO

Sets the timeout for receive operation on the socket. Value -1 means no limit. Available if compiled against ZeroMQ 3.x or higher (Value: integer)

ZMQ::SOCKOPT_IPV4ONLY

Disable IPV6 support if 1. Available if compiled against ZeroMQ 3.x (Value: integer)

ZMQ::SOCKOPT_LAST_ENDPOINT

Retrieve the last connected endpoint - for use with * wildcard ports. Available if compiled against ZeroMQ 3.x or higher (Value: string)

ZMQ::SOCKOPT_TCP_KEEPALIVE_IDLE

Idle time for TCP keepalive. Available if compiled against ZeroMQ 3.x or higher (Value: integer)

ZMQ::SOCKOPT_TCP_KEEPALIVE_CNT

Count time for TCP keepalive. Available if compiled against ZeroMQ 3.x or higher (Value: integer)

ZMQ::SOCKOPT_TCP_KEEPALIVE_INTVL

Interval for TCP keepalive. Available if compiled against ZeroMQ 3.x or higher (Value: integer)

ZMQ::SOCKOPT_DELAY_ATTACH_ON_CONNECT

Set a CIDR string to match against incoming TCP connections. Available if compiled against ZeroMQ 3.x or higher (Value: string)

ZMQ::SOCKOPT_TCP_ACCEPT_FILTER

Set a CIDR string to match against incoming TCP connections. Available if compiled against ZeroMQ 3.x or higher (Value: string)

ZMQ::SOCKOPT_XPUB_VERBOSE

Set the XPUB to receive an application message on each instance of a subscription. Available if compiled against ZeroMQ 3.x or higher (Value: string)

ZMQ::SOCKOPT_ROUTER_RAW

Sets the raw mode on the ROUTER, when set to 1. In raw mode when using tcp:// transport the socket will read and write without ZeroMQ framing. Available if compiled against ZeroMQ 4.0 or higher (Value: string)

ZMQ::SOCKOPT_IPV6

Enable IPV6. Available if compiled against ZeroMQ 4.0 or higher (Value: string)

ZMQ::CTXOPT_MAX_SOCKETS

The socket limit for this context. Available if compiled against ZeroMQ 3.x or higher (Value: integer)

ZMQ::POLL_IN

Poll for incoming data

ZMQ::POLL_OUT

Poll for outgoing data

ZMQ::MODE_NOBLOCK

Non-blocking operation. Deprecated, use ZMQ::MODE_DONTWAIT instead

ZMQ::MODE_DONTWAIT

Non-blocking operation

ZMQ::MODE_SNDMORE

Send multi-part message

ZMQ::DEVICE_FORWARDER

Forwarder device

ZMQ::DEVICE_QUEUE

Queue device

ZMQ::DEVICE_STREAMER

Streamer device

ZMQ::ERR_INTERNAL

ZMQ extension internal error

ZMQ::ERR_EAGAIN

Implies that the operation would block when ZMQ::MODE_DONTWAIT is used

ZMQ::ERR_ENOTSUP

The operation is not supported by the socket type

ZMQ::ERR_EFSM

The operation can not be executed because the socket is not in correct state

ZMQ::ERR_ETERM

The context has been terminated

Содержание

  • ZMQ::__construct — Конструктор ZMQ


Конструктор ZMQ

  • « ZMQ
  • ZMQContext »
  • PHP Manual
  • ZMQ
  • Конструктор ZMQ

ZMQ::__construct

(PECL zmq >= 0.5.0)

ZMQ::__construct — Конструктор ZMQ

Описание

privateZMQ::__construct ( void )

Приватный конструктор для предотвращения прямого инстанцирования. Этот класс содержит константы для расширения ZMQ.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


The ZMQContext class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

ZMQContext {
/* Methods */
__construct ([ integer $io_threads = 1 [, boolean $is_persistent = true ]] )
public mixed getOpt ( string $key )
public ZMQSocket getSocket ( integer $type [, string $persistent_id = null [, callback $on_new_socket = null ]] )
public boolean isPersistent ( void )
public ZMQContext setOpt ( integer $key , mixed $value )
}

Содержание

  • ZMQContext::__construct — Construct a new ZMQContext object
  • ZMQContext::getOpt — Get context option
  • ZMQContext::getSocket — Create a new socket
  • ZMQContext::isPersistent — Whether the context is persistent
  • ZMQContext::setOpt — Set a socket option


Construct a new ZMQContext object

  • « ZMQContext
  • ZMQContext::getOpt »
  • PHP Manual
  • ZMQContext
  • Construct a new ZMQContext object

ZMQContext::__construct

(PECL zmq >= 0.5.0)

ZMQContext::__construct — Construct a new ZMQContext object

Описание

ZMQContext::__construct ([ integer $io_threads = 1 [, boolean $is_persistent = true ]] )

Constructs a new ZMQ context. The context is used to initialize sockets. A persistent context is required to initialize persistent sockets.

Список параметров

io_threads

Number of io-threads in the context.

is_persistent

Whether the context is persistent. Persistent context is stored over multiple requests and is a requirement for persistent sockets.

Примеры

Пример #1 A ZMQContext() example

Construct a new context and allocate request socket from it

<?php
/* Allocate a new context */
$context = new ZMQContext();

/* Create a new socket */
$socket = $context->getSocket(ZMQ::SOCKET_REQ, 'my sock');

/* Connect the socket */
$socket->connect("tcp://example.com:1234");

/* Send a request */
$socket->send("Hello there");

/* Receive back the response */
$message = $socket->recv();
?>

Возвращаемые значения

Throws ZMQContextException if context initialization fails.


Get context option

  • « ZMQContext::__construct
  • ZMQContext::getSocket »
  • PHP Manual
  • ZMQContext
  • Get context option

ZMQContext::getOpt

(PECL zmq >= 1.0.4)

ZMQContext::getOpt — Get context option

Описание

public mixed ZMQContext::getOpt ( string $key )

Returns the value of a context option.

Список параметров

key

An integer representing the option. See the ZMQ::CTXOPT_* constants.

Возвращаемые значения

Returns either a string or an integer depending on key. Throws ZMQContextException on error.


Create a new socket

  • « ZMQContext::getOpt
  • ZMQContext::isPersistent »
  • PHP Manual
  • ZMQContext
  • Create a new socket

ZMQContext::getSocket

(PECL zmq >= 0.5.0)

ZMQContext::getSocket — Create a new socket

Описание

public ZMQSocket ZMQContext::getSocket ( integer $type [, string $persistent_id = null [, callback $on_new_socket = null ]] )

Shortcut for creating new sockets from the context. If the context is not persistent the persistent_id parameter is ignored and the socket falls back to being non-persistent. The on_new_socket is called only when a new underlying socket structure is created.

Список параметров

type

ZMQ::SOCKET_* constant to specify socket type.

persistent_id

If persistent_id is specified the socket will be persisted over multiple requests.

on_new_socket

Callback function, which is executed when a new socket structure is created. This function does not get invoked if the underlying persistent connection is re-used. The callback takes ZMQSocket and persistent_id as two arguments.

Примеры

Пример #1 A ZMQContext() example

Basic usage

<?php
/* Allocate a new context */
$context = new ZMQContext();

/* Create a new socket */
$socket = $context->getSocket(ZMQ::SOCKET_REQ, 'my sock');

/* Connect the socket */
$socket->connect("tcp://example.com:1234");

/* Send a request */
$socket->send("Hello there");

/* Receive back the response */
$message = $socket->recv();
echo "Received message: {$message}\n";
?>

Возвращаемые значения

Returns a ZMQSocket object on success. Throws ZMQSocketException on error.


Whether the context is persistent

  • « ZMQContext::getSocket
  • ZMQContext::setOpt »
  • PHP Manual
  • ZMQContext
  • Whether the context is persistent

ZMQContext::isPersistent

(PECL zmq >= 0.5.0)

ZMQContext::isPersistent — Whether the context is persistent

Описание

public boolean ZMQContext::isPersistent ( void )

Whether the context is persistent. Persistent context is needed for persistent connections as each socket is allocated from a context.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the context is persistent and FALSE if the context is non-persistent.


Set a socket option

  • « ZMQContext::isPersistent
  • ZMQSocket »
  • PHP Manual
  • ZMQContext
  • Set a socket option

ZMQContext::setOpt

(PECL zmq >= 1.0.4)

ZMQContext::setOpt — Set a socket option

Описание

public ZMQContext ZMQContext::setOpt ( integer $key , mixed $value )

Sets a ZMQ context option. The type of the value depends on the key. See ZMQ Constant Types for more information.

Список параметров

key

One of the ZMQ::CTXOPT_* constants.

value

The value of the parameter.

Возвращаемые значения

Returns the current object. Throws ZMQContextException on error.


The ZMQSocket class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

ZMQSocket {
/* Methods */
public ZMQSocket bind ( string $dsn [, boolean $force = false ] )
public ZMQSocket connect ( string $dsn [, boolean $force = false ] )
__construct ( ZMQContext $context , int $type [, string $persistent_id = null [, callback $on_new_socket = null ]] )
public ZMQSocket disconnect ( string $dsn )
public array getEndpoints ( void )
public string getPersistentId ( void )
public integer getSocketType ( void )
public mixed getSockOpt ( string $key )
public boolean isPersistent ( void )
public string recv ([ integer $mode = 0 ] )
public string recvMulti ([ integer $mode = 0 ] )
public ZMQSocket send ( string $message [, integer $mode = 0 ] )
public ZMQSocket send ( array $message [, integer $mode = 0 ] )
public ZMQSocket setSockOpt ( integer $key , mixed $value )
public ZMQSocket unbind ( string $dsn )
}

Содержание

  • ZMQSocket::bind — Привязка сокета
  • ZMQSocket::connect — Подключение к сокету
  • ZMQSocket::__construct — Конструктор класса ZMQSocket
  • ZMQSocket::disconnect — Disconnect a socket
  • ZMQSocket::getEndpoints — Get list of endpoints
  • ZMQSocket::getPersistentId — Get the persistent id
  • ZMQSocket::getSocketType — Get the socket type
  • ZMQSocket::getSockOpt — Get socket option
  • ZMQSocket::isPersistent — Whether the socket is persistent
  • ZMQSocket::recv — Receives a message
  • ZMQSocket::recvMulti — Receives a multipart message
  • ZMQSocket::send — Sends a message
  • ZMQSocket::sendmulti — Sends a multipart message
  • ZMQSocket::setSockOpt — Set a socket option
  • ZMQSocket::unbind — Unbind the socket


Привязка сокета

  • « ZMQSocket
  • ZMQSocket::connect »
  • PHP Manual
  • ZMQSocket
  • Привязка сокета

ZMQSocket::bind

(PECL zmq >= 0.5.0)

ZMQSocket::bind — Привязка сокета

Описание

public ZMQSocket ZMQSocket::bind ( string $dsn [, boolean $force = false ] )

Привязка сокета к конечной точке. Конечная точка определяется в формате транспорт://адрес. В качестве транспорта могут использоваться следующие протоколы: inproc, ipc, tcp, pgm или epgm

Список параметров

dsn

Конечная точка, например транспорт://адрес.

force

Указывает, пытаться ли подключиться, если подключение к указанной точке уже было установлено.

Возвращаемые значения

Возвращает текущий объект, иначе выбрасывает исключение класса ZMQSocketException .


Подключение к сокету

  • « ZMQSocket::bind
  • ZMQSocket::__construct »
  • PHP Manual
  • ZMQSocket
  • Подключение к сокету

ZMQSocket::connect

(PECL zmq >= 0.5.0)

ZMQSocket::connect — Подключение к сокету

Описание

public ZMQSocket ZMQSocket::connect ( string $dsn [, boolean $force = false ] )

Подключение сокета к удаленной конечной точке. Конечная точка указывается в формате transport://address, где transport один из следующих протоколов: inproc, ipc, tcp, pgm или epgm.

Список параметров

dsn

Имя источника данных, например transport://address.

force

Попытается подключится даже если сокет уже подключен к указанной конечной точке.

Примеры

Пример #1 Пример использования ZMQContext()

Создать новый контекст и выделить сокет

<?php
/* Адрес сервера */
$dsn = "tcp://127.0.0.1:5555";

/* Создать сокет */
$socket = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ, 'my socket');

/* Получить список подключённых конечных точек */
$endpoints = $socket->getEndpoints();

/* Проверить, подключён ли сокет */
if (!in_array($dsn, $endpoints['connect'])) {
    echo "<p>Подключение к $dsn</p>";
    $socket->connect($dsn);
} else {
    echo "<p>Уже подключён к $dsn</p>";
}

/* Послать и получить данные */
$socket->send("Привет!");
$message = $socket->recv();

echo "<p>Сервер ответил: {$message}</p>";
?>

Возвращаемые значения

Возвращает текущий объект. Вызывает исключение ZMQSocketException в случае ошибки.


Конструктор класса ZMQSocket

  • « ZMQSocket::connect
  • ZMQSocket::disconnect »
  • PHP Manual
  • ZMQSocket
  • Конструктор класса ZMQSocket

ZMQSocket::__construct

(PECL zmq >= 0.5.0)

ZMQSocket::__construct — Конструктор класса ZMQSocket

Описание

ZMQSocket::__construct ( ZMQContext $context , int $type [, string $persistent_id = null [, callback $on_new_socket = null ]] )

Создает экземпляр класса ZMQSocket. Параметр persistent_id может быть использован для установления постоянного соединения. Постоянный сокет будет выделен из постоянного контекста и будет оставаться активным в течении нескольких запросов. Получить тот же сокет для множества запросов можно с помощью параметра persistent_id. Функция, заданная в on_new_socket вызывается лишь в случае, когда был создан новый сокет.

Список параметров

context

Объект класса ZMQContext.

type

Тип сокета. Смотрите константы ZMQ::SOCKET_*.

persistent_id

Если параметр persistent_id указан, то сокет будет доступен в течении нескольких запросов. Если context не является постоянным, сокет так же вернется к непостоянному режиму.

on_new_socket

Callback-функция, которая будет вызвана при создании нового сокета. Эта функция не вызывается в случае повторного использования постоянного соединения.

Примеры

Пример #1 Пример использования ZMQSocket()

Использование функции обратного вызова для связи или подключения к сокету

<?php

/*
  Здесь используется постоянный сокет, поэтому функция будет вызвана лишь
  при первом обращении к скрипту.
*/
function on_new_socket_cb(ZMQSocket $socket, $persistent_id = null)
{
    if ($persistent_id === 'server') {
        $socket->bind("tcp://localhost:12122");
    } else {
        $socket->connect("tcp://localhost:12122");
    }
}

/* Создать новый контекст */
$context = new ZMQContext();

/* Создать сокет */
$socket = $context->getSocket(ZMQ::SOCKET_REP, 'server', 'on_new_socket_cb');

$message = $socket->recv();
echo "Получено сообщение: {$message}\n";
?>

Callback-функция должна быть описана так:

Замечание:

function on_new_socket_cb(ZMQSocket $socket, string $persistent_id = null);

Возвращаемые значения

Вызовет исключение ZMQSocketException в случае ошибки.


Disconnect a socket

  • « ZMQSocket::__construct
  • ZMQSocket::getEndpoints »
  • PHP Manual
  • ZMQSocket
  • Disconnect a socket

ZMQSocket::disconnect

(PECL zmq >= 1.0.4)

ZMQSocket::disconnect — Disconnect a socket

Описание

public ZMQSocket ZMQSocket::disconnect ( string $dsn )

Disconnect the socket from a previously connected remote endpoint. The endpoint is defined in format transport://address where transport is one of the following: inproc, ipc, tcp, pgm or epgm.

Список параметров

dsn

The connect dsn, for example transport://address.

Возвращаемые значения

Returns the current object. Throws ZMQSocketException on error.


Get list of endpoints

  • « ZMQSocket::disconnect
  • ZMQSocket::getPersistentId »
  • PHP Manual
  • ZMQSocket
  • Get list of endpoints

ZMQSocket::getEndpoints

(PECL zmq >= 0.5.0)

ZMQSocket::getEndpoints — Get list of endpoints

Описание

public array ZMQSocket::getEndpoints ( void )

Returns a list of endpoints where the socket is connected or bound to.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array containing elements 'bind' and 'connect'.


Get the persistent id

  • « ZMQSocket::getEndpoints
  • ZMQSocket::getSocketType »
  • PHP Manual
  • ZMQSocket
  • Get the persistent id

ZMQSocket::getPersistentId

(PECL zmq >= 0.5.0)

ZMQSocket::getPersistentId — Get the persistent id

Описание

public string ZMQSocket::getPersistentId ( void )

Returns the persistent id of the socket.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the persistent id string assigned of the object and NULL if socket is not persistent.


Get the socket type

  • « ZMQSocket::getPersistentId
  • ZMQSocket::getSockOpt »
  • PHP Manual
  • ZMQSocket
  • Get the socket type

ZMQSocket::getSocketType

(PECL zmq >= 0.5.0)

ZMQSocket::getSocketType — Get the socket type

Описание

public integer ZMQSocket::getSocketType ( void )

Gets the socket type.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer representing the socket type. The integer can be compared against ZMQ::SOCKET_* constants.


Get socket option

  • « ZMQSocket::getSocketType
  • ZMQSocket::isPersistent »
  • PHP Manual
  • ZMQSocket
  • Get socket option

ZMQSocket::getSockOpt

(PECL zmq >= 0.5.0)

ZMQSocket::getSockOpt — Get socket option

Описание

public mixed ZMQSocket::getSockOpt ( string $key )

Returns the value of a socket option.

Список параметров

key

An integer representing the option. See the ZMQ::SOCKOPT_* constants.

Возвращаемые значения

Returns either a string or an integer depending on key. Throws ZMQSocketException on error.


Whether the socket is persistent

  • « ZMQSocket::getSockOpt
  • ZMQSocket::recv »
  • PHP Manual
  • ZMQSocket
  • Whether the socket is persistent

ZMQSocket::isPersistent

(PECL zmq >= 0.5.0)

ZMQSocket::isPersistent — Whether the socket is persistent

Описание

public boolean ZMQSocket::isPersistent ( void )

Check whether the socket is persistent.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean based on whether the socket is persistent or not.


Receives a message

  • « ZMQSocket::isPersistent
  • ZMQSocket::recvMulti »
  • PHP Manual
  • ZMQSocket
  • Receives a message

ZMQSocket::recv

(PECL zmq >= 0.5.0)

ZMQSocket::recv — Receives a message

Описание

public string ZMQSocket::recv ([ integer $mode = 0 ] )

Receive a message from a socket. By default receiving will block until a message is available unless ZMQ::MODE_NOBLOCK flag is used. ZMQ::SOCKOPT_RCVMORE socket option can be used for receiving multi-part messages. See ZMQSocket::setSockOpt() for more information.

Список параметров

mode

Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants.

Примеры

Пример #1 A send/recv example

Non-blocking send / receive

<?php

/* Create new queue object, there needs to be a server at the other end */
$queue = new ZMQSocket(new ZMQContext(), ZMQ::SOCKET_REQ);
$queue->connect("tcp://127.0.0.1:5555");

/* Assign socket 1 to the queue, send and receive */
$retries = 5;
$sending = true;

/* Start a loop */
do {
    try {
        /* Try to send / receive */
        if ($sending) {
            echo "Sending message\n";
            $queue->send("This is a message", ZMQ::MODE_NOBLOCK);
            $sending = false;
        } else {
            echo "Got response: " . $queue->recv(ZMQ::MODE_NOBLOCK) . "\n";
            break;
        }
    } catch (ZMQSocketException $e) {
        /* EAGAIN means that the operation would have blocked, retry */
        if ($e->getCode() === ZMQ::ERR_EAGAIN) {
            echo " - Got EAGAIN, retrying ($retries)\n";
        } else {
            die(" - Error: " . $e->getMessage());
        }
    }
    /* Sleep a bit between operations */
    usleep(5);
} while (--$retries);
?>

Результатом выполнения данного примера будет что-то подобное:

Sending message
 - Unable to execute operation, retrying (4)
Got response: This is a message

Возвращаемые значения

Returns the message. Throws ZMQSocketException in error. If ZMQ::MODE_NOBLOCK is used and the operation would block boolean false shall be returned.


Receives a multipart message

  • « ZMQSocket::recv
  • ZMQSocket::send »
  • PHP Manual
  • ZMQSocket
  • Receives a multipart message

ZMQSocket::recvMulti

(PECL zmq >= 0.8.0)

ZMQSocket::recvMulti — Receives a multipart message

Описание

public string ZMQSocket::recvMulti ([ integer $mode = 0 ] )

Receive an array multipart message from a socket. By default receiving will block until a message is available unless ZMQ::MODE_NOBLOCK flag is used.

Список параметров

mode

Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants.

Возвращаемые значения

Returns the array of message parts. Throws ZMQSocketException in error. If ZMQ::MODE_NOBLOCK is used and the operation would block boolean false shall be returned.


Sends a message

  • « ZMQSocket::recvMulti
  • ZMQSocket::sendmulti »
  • PHP Manual
  • ZMQSocket
  • Sends a message

ZMQSocket::send

(PECL zmq >= 0.5.0)

ZMQSocket::send — Sends a message

Описание

public ZMQSocket ZMQSocket::send ( string $message [, integer $mode = 0 ] )

Send a message using the socket. The operation can block unless ZMQ::MODE_NOBLOCK is used.

Список параметров

message

The message to send.

mode

Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants.

Возвращаемые значения

Returns the current object. Throws ZMQSocketException on error. If ZMQ::MODE_NOBLOCK is used and the operation would block boolean false shall be returned.


Sends a multipart message

  • « ZMQSocket::send
  • ZMQSocket::setSockOpt »
  • PHP Manual
  • ZMQSocket
  • Sends a multipart message

ZMQSocket::sendmulti

(PECL zmq >= 0.8.0)

ZMQSocket::sendmulti — Sends a multipart message

Описание

public ZMQSocket ZMQSocket::send ( array $message [, integer $mode = 0 ] )

Send a multipart message using the socket. The operation can block unless ZMQ::MODE_NOBLOCK is used.

Список параметров

message

The message to send - an array of strings

mode

Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants.

Возвращаемые значения

Returns the current object. Throws ZMQSocketException on error. If ZMQ::MODE_NOBLOCK is used and the operation would block boolean false shall be returned.


Set a socket option

  • « ZMQSocket::sendmulti
  • ZMQSocket::unbind »
  • PHP Manual
  • ZMQSocket
  • Set a socket option

ZMQSocket::setSockOpt

(PECL zmq >= 0.5.0)

ZMQSocket::setSockOpt — Set a socket option

Описание

public ZMQSocket ZMQSocket::setSockOpt ( integer $key , mixed $value )

Sets a ZMQ socket option. The type of the value depends on the key. See ZMQ Constant Types for more information.

Список параметров

key

One of the ZMQ::SOCKOPT_* constants.

value

The value of the parameter.

Возвращаемые значения

Returns the current object. Throws ZMQSocketException on error.


Unbind the socket

  • « ZMQSocket::setSockOpt
  • ZMQPoll »
  • PHP Manual
  • ZMQSocket
  • Unbind the socket

ZMQSocket::unbind

(PECL zmq >= 1.0.4)

ZMQSocket::unbind — Unbind the socket

Описание

public ZMQSocket ZMQSocket::unbind ( string $dsn )

Unbind the socket from an endpoint. The endpoint is defined in format transport://address where transport is one of the following: inproc, ipc, tcp, pgm or epgm.

Список параметров

dsn

The previously bound dsn, for example transport://address.

Возвращаемые значения

Returns the current object. Throws ZMQSocketException on error.


The ZMQPoll class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

ZMQPoll {
/* Methods */
public string add ( mixed $entry , integer $type )
public ZMQPoll clear ( void )
public integer count ( void )
public array getLastErrors ( void )
public integer poll ( array &$readable , array &$writable [, integer $timeout = -1 ] )
public boolean remove ( mixed $item )
}

Содержание

  • ZMQPoll::add — Add item to the poll set
  • ZMQPoll::clear — Clear the poll set
  • ZMQPoll::count — Count items in the poll set
  • ZMQPoll::getLastErrors — Get poll errors
  • ZMQPoll::poll — Poll the items
  • ZMQPoll::remove — Remove item from poll set


Add item to the poll set

  • « ZMQPoll
  • ZMQPoll::clear »
  • PHP Manual
  • ZMQPoll
  • Add item to the poll set

ZMQPoll::add

(PECL zmq >= 0.5.0)

ZMQPoll::add — Add item to the poll set

Описание

public string ZMQPoll::add ( mixed $entry , integer $type )

Adds a new item to the poll set and returns the internal id of the added item. The item can be removed from the poll set using the returned string id.

Список параметров

entry

ZMQSocket object or a PHP stream resource

type

Defines what activity the socket is polled for. See ZMQ::POLL_IN and ZMQ::POLL_OUT constants.

Возвращаемые значения

Returns a string id of the added item which can be later used to remove the item. Throws ZMQPollException on error.


Clear the poll set

  • « ZMQPoll::add
  • ZMQPoll::count »
  • PHP Manual
  • ZMQPoll
  • Clear the poll set

ZMQPoll::clear

(PECL zmq >= 0.5.0)

ZMQPoll::clear — Clear the poll set

Описание

public ZMQPoll ZMQPoll::clear ( void )

Clears all elements from the poll set.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current object.


Count items in the poll set

  • « ZMQPoll::clear
  • ZMQPoll::getLastErrors »
  • PHP Manual
  • ZMQPoll
  • Count items in the poll set

ZMQPoll::count

(PECL zmq >= 0.5.0)

ZMQPoll::count — Count items in the poll set

Описание

public integer ZMQPoll::count ( void )

Count the items in the poll set.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer representing the amount of items in the poll set.


Get poll errors

  • « ZMQPoll::count
  • ZMQPoll::poll »
  • PHP Manual
  • ZMQPoll
  • Get poll errors

ZMQPoll::getLastErrors

(PECL zmq >= 0.5.0)

ZMQPoll::getLastErrors — Get poll errors

Описание

public array ZMQPoll::getLastErrors ( void )

Returns the ids of the objects that had errors in the last poll.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array containing ids for the items that had errors in the last poll. Empty array is returned if there were no errors.


Poll the items

  • « ZMQPoll::getLastErrors
  • ZMQPoll::remove »
  • PHP Manual
  • ZMQPoll
  • Poll the items

ZMQPoll::poll

(PECL zmq >= 0.5.0)

ZMQPoll::poll — Poll the items

Описание

public integer ZMQPoll::poll ( array &$readable , array &$writable [, integer $timeout = -1 ] )

Polls the items in the current poll set. The readable and writable items are returned in the readable and writable parameters. ZMQPoll::getLastErrors() can be used to check if there were errors.

Список параметров

readable

Array where readable ZMQSockets/PHP streams are returned. The array will be cleared at the beginning of the operation.

writable

Array where writable ZMQSockets/PHP streams are returned. The array will be cleared at the beginning of the operation.

timeout

Timeout for the operation. -1 means that poll waits until at least one item has activity. Please note that starting from version 1.0.0 the poll timeout is defined in milliseconds, rather than microseconds.

Примеры

Пример #1 A ZMQPoll() example

Create a simple poll server

<?php

/* Create socket, request-reply pattern (reply socket) */
$context = new ZMQContext();
$server  = $context->getSocket(ZMQ::SOCKET_REP);

/* Bind to port 5555 on 127.0.0.1 */
$server->bind("tcp://127.0.0.1:5555");

/* Create new pollset for incoming/outgoing message */
$poll = new ZMQPoll();

/* Add the object and listen for poll in/out */
$id = $poll->add($server, ZMQ::POLL_IN | ZMQ::POLL_OUT);
echo "Added object with id " . $id . "\n";

/* Initialise readable and writable arrays */
$readable = array();
$writable = array();

while (true) {
   /* Amount of events retrieved */
   $events = 0;

   try {
       /* Poll until there is something to do */
       $events = $poll->poll($readable, $writable, -1);
       $errors = $poll->getLastErrors();

       if (count($errors) > 0) {
           foreach ($errors as $error) {
               echo "Error polling object " . $error . "\n";
           }
       }
   } catch (ZMQPollException $e) {
       echo "poll failed: " . $e->getMessage() . "\n";
   }

   if ($events > 0) {
       /* Loop through readable objects and recv messages */
       foreach ($readable as $r) {
           try {
               echo "Received message: " . $r->recv() . "\n";
           } catch (ZMQException $e) {
               echo "recv failed: " . $e->getMessage() . "\n";
           }
       }

       /* Loop through writable and send back messages */
       foreach ($writable as $w) {
           try {
               $w->send("Got it!");
           } catch (ZMQException $e) {
               echo "send failed: " . $e->getMessage() . "\n";
           }
       }
   }
}
?>

Возвращаемые значения

Returns an integer representing amount of items with activity. Throws ZMQPollException on error.


Remove item from poll set

  • « ZMQPoll::poll
  • ZMQDevice »
  • PHP Manual
  • ZMQPoll
  • Remove item from poll set

ZMQPoll::remove

(PECL zmq >= 0.5.0)

ZMQPoll::remove — Remove item from poll set

Описание

public boolean ZMQPoll::remove ( mixed $item )

Remove item from the poll set. The item parameter can be ZMQSocket object, a stream resource or the id returned from ZMQPoll::add() method.

Список параметров

item

The ZMQSocket object, PHP stream or string id of the item.

Возвращаемые значения

Returns true if the item was removed and false if the object with given id does not exist in the poll set.


The ZMQDevice class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

ZMQDevice {
/* Methods */
__construct ( ZMQSocket $frontend , ZMQSocket $backend [, ZMQSocket $listener ] )
public ZMQDevice getIdleTimeout ( void )
public ZMQDevice getTimerTimeout ( void )
public void run ( void )
public ZMQDevice setIdleCallback ( callable $cb_func , integer $timeout [, mixed $user_data ] )
public ZMQDevice setIdleTimeout ( integer $timeout )
public ZMQDevice setTimerCallback ( callable $cb_func , integer $timeout [, mixed $user_data ] )
public ZMQDevice setTimerTimeout ( integer $timeout )
}

Содержание

  • ZMQDevice::__construct — Construct a new device
  • ZMQDevice::getIdleTimeout — Get the idle timeout
  • ZMQDevice::getTimerTimeout — Get the timer timeout
  • ZMQDevice::run — Run the new device
  • ZMQDevice::setIdleCallback — Set the idle callback function
  • ZMQDevice::setIdleTimeout — Set the idle timeout
  • ZMQDevice::setTimerCallback — Set the timer callback function
  • ZMQDevice::setTimerTimeout — Set the timer timeout


Construct a new device

  • « ZMQDevice
  • ZMQDevice::getIdleTimeout »
  • PHP Manual
  • ZMQDevice
  • Construct a new device

ZMQDevice::__construct

(PECL zmq >= 0.5.0)

ZMQDevice::__construct — Construct a new device

Описание

ZMQDevice::__construct ( ZMQSocket $frontend , ZMQSocket $backend [, ZMQSocket $listener ] )

"OMQ devices can do intermediation of addresses, services, queues, or any other abstraction you care to define above the message and socket layers." -- zguide

Список параметров

frontend

Frontend parameter for the devices. Usually where there messages are coming.

backend

Backend parameter for the devices. Usually where there messages going to.

listener

Listener socket, which receives a copy of all messages going both directions. The type of this socket should be SUB, PULL or DEALER.

Возвращаемые значения

Call to this method will prepare the device. Usually devices are very long running processes so running this method from interactive script is not recommended. This method throw ZMQDeviceException if the device cannot be started.


Get the idle timeout

  • « ZMQDevice::__construct
  • ZMQDevice::getTimerTimeout »
  • PHP Manual
  • ZMQDevice
  • Get the idle timeout

ZMQDevice::getIdleTimeout

(Информация о версии неизвестна, возможно, только в SVN)

ZMQDevice::getIdleTimeout — Get the idle timeout

Описание

public ZMQDevice ZMQDevice::getIdleTimeout ( void )

Gets the idle callback timeout value. Added in ZMQ extension version 1.1.0.

Возвращаемые значения

This method returns the idle callback timeout value.


Get the timer timeout

  • « ZMQDevice::getIdleTimeout
  • ZMQDevice::run »
  • PHP Manual
  • ZMQDevice
  • Get the timer timeout

ZMQDevice::getTimerTimeout

(Информация о версии неизвестна, возможно, только в SVN)

ZMQDevice::getTimerTimeout — Get the timer timeout

Описание

public ZMQDevice ZMQDevice::getTimerTimeout ( void )

Gets the timer callback timeout value. Added in ZMQ extension version 1.1.0.

Возвращаемые значения

This method returns the timer timeout value.


Run the new device

  • « ZMQDevice::getTimerTimeout
  • ZMQDevice::setIdleCallback »
  • PHP Manual
  • ZMQDevice
  • Run the new device

ZMQDevice::run

(Информация о версии неизвестна, возможно, только в SVN)

ZMQDevice::run — Run the new device

Описание

public void ZMQDevice::run ( void )

Runs the device.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Call to this method will block until the device is running. It is not recommended that devices are used from interactive scripts. On failure this method will throw ZMQDeviceException.


Set the idle callback function

  • « ZMQDevice::run
  • ZMQDevice::setIdleTimeout »
  • PHP Manual
  • ZMQDevice
  • Set the idle callback function

ZMQDevice::setIdleCallback

(Информация о версии неизвестна, возможно, только в SVN)

ZMQDevice::setIdleCallback — Set the idle callback function

Описание

public ZMQDevice ZMQDevice::setIdleCallback ( callable $cb_func , integer $timeout [, mixed $user_data ] )

Sets the idle callback function. If idle timeout is defined the idle callback function shall be called if the internal poll loop times out without events. If the callback function returns false or a value that evaluates to false the device is stopped. The callback function signature is callback (mixed $user_data).

Список параметров

cb_func

Callback function to invoke when the device is idle. Returning false or a value that evaluates to false from this function will cause the device to stop.

timeout

How often to invoke the idle callback in milliseconds. The idle callback is invoked periodically when there is no activity on the device. The timeout value guarantees that there is at least this amount of milliseconds between invocations of the callback function.

user_data

Additional data to pass to the callback function.

Возвращаемые значения

On success this method returns the current object.


Set the idle timeout

  • « ZMQDevice::setIdleCallback
  • ZMQDevice::setTimerCallback »
  • PHP Manual
  • ZMQDevice
  • Set the idle timeout

ZMQDevice::setIdleTimeout

(Информация о версии неизвестна, возможно, только в SVN)

ZMQDevice::setIdleTimeout — Set the idle timeout

Описание

public ZMQDevice ZMQDevice::setIdleTimeout ( integer $timeout )

Sets the idle callback timeout value. The idle callback is invoked periodically when the device is idle.

Список параметров

timeout

The idle callback timeout value.

Возвращаемые значения

On success this method returns the current object.


Set the timer callback function

  • « ZMQDevice::setIdleTimeout
  • ZMQDevice::setTimerTimeout »
  • PHP Manual
  • ZMQDevice
  • Set the timer callback function

ZMQDevice::setTimerCallback

(Информация о версии неизвестна, возможно, только в SVN)

ZMQDevice::setTimerCallback — Set the timer callback function

Описание

public ZMQDevice ZMQDevice::setTimerCallback ( callable $cb_func , integer $timeout [, mixed $user_data ] )

Sets the timer callback function. The timer callback will be invoked after timeout has passed. The difference between idle and timer callbacks are that idle callback is invoked only when the device is idle. The callback function signature is callback (mixed $user_data). Added in ZMQ extension version 1.1.0.

Список параметров

cb_func

Callback function to invoke when the device is idle. Returning false or a value that evaluates to false from this function will cause the device to stop.

timeout

How often to invoke the idle callback in milliseconds. The idle callback is invoked periodically when there is no activity on the device. The timeout value guarantees that there is at least this amount of milliseconds between invocations of the callback function.

user_data

Additional data to pass to the callback function.

Возвращаемые значения

On success this method returns the current object.


Set the timer timeout

  • « ZMQDevice::setTimerCallback
  • ZooKeeper »
  • PHP Manual
  • ZMQDevice
  • Set the timer timeout

ZMQDevice::setTimerTimeout

(Информация о версии неизвестна, возможно, только в SVN)

ZMQDevice::setTimerTimeout — Set the timer timeout

Описание

public ZMQDevice ZMQDevice::setTimerTimeout ( integer $timeout )

Sets the timer callback timeout value. The timer callback is invoked periodically if it's set. Added in ZMQ extension version 1.1.0.

Список параметров

timeout

The timer callback timeout value.

Возвращаемые значения

On success this method returns the current object.


ZooKeeper

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • ZooKeeper — The ZooKeeper class
    • Zookeeper::addAuth — Specify application credentials.
    • Zookeeper::connect — Create a handle to used communicate with zookeeper.
    • Zookeeper::__construct — Create a handle to used communicate with zookeeper.
    • Zookeeper::create — Create a node synchronously.
    • Zookeeper::delete — Delete a node in zookeeper synchronously.
    • Zookeeper::exists — Checks the existence of a node in zookeeper synchronously.
    • Zookeeper::get — Gets the data associated with a node synchronously.
    • Zookeeper::getAcl — Gets the acl associated with a node synchronously.
    • Zookeeper::getClientId — return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
    • Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect.
    • Zookeeper::getState — Get the state of the zookeeper connection.
    • Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered.
    • Zookeeper::set — Sets the data associated with a node.
    • Zookeeper::setAcl — Sets the acl associated with a node synchronously.
    • Zookeeper::setDebugLevel — Sets the debugging level for the library.
    • Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization.
    • Zookeeper::setLogStream — Sets the stream to be used by the library for logging.
    • Zookeeper::setWatcher — Set a watcher function.


Введение

This extension uses libzookeeper library to provide API for communicating with ZooKeeper service.

ZooKeeper is an Apache project that enables centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services.


Требования

This extension requires » ZooKeeper C Binding (version 3.4.1 or greater). For more information, see » ZooKeeper Programmer's Guide.

This extension requires PHP version 5.2.0 or higher.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/zookeeper.

To enable zookeeper support, configure with --with-libzookeeper-dir=DIR . DIR is the install prefix of ZooKeeper C Binding, which must contain the include/zookeeper/zookeeper.h

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Zookeeper Опции настройки
Имя | По умолчанию | Меняемо | Changelog
zookeeper.recv_timeout | 10000 | PHP_INI_ALL |
zookeeper.session_lock | 1 | PHP_INI_SYSTEM |
zookeeper.sess_lock_wait | 150000 | PHP_INI_ALL |
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

zookeeper.recv_timeout integer

Default the timeout for any ZooKeeper session.

zookeeper.session_lock integer

Enable PHP session locking.

zookeeper.sess_lock_wait integer

PHP Session spin lock retry wait time in microseconds. Be carefull when setting this value. Valid values are integers, where 0 is interpreted as the default value. Negative values result in a reduces locking to a try lock.


  • « Типы ресурсов
  • ZooKeeper »
  • PHP Manual
  • ZooKeeper
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


The ZooKeeper class

(PECL zookeeper >= 0.1.0)

Введение

Represents ZooKeeper session.

Обзор классов

Zookeeper {
/* Методы */
public __construct ([ string $host = '' [, callable $watcher_cb = null [, int $recv_timeout = 10000 ]]] )
public bool addAuth ( string $scheme , string $cert [, callable $completion_cb = null ] )
public void connect ( string $host [, callable $watcher_cb = null [, int $recv_timeout = 10000 ]] )
public string create ( string $path , string $value , array $acls [, int $flags = null ] )
public bool delete ( string $path [, int $version = -1 ] )
public bool exists ( string $path [, callable $watcher_cb = null ] )
public string get ( string $path [, callable $watcher_cb = null [, array &$stat = null [, int $max_size = 0 ]]] )
public array getAcl ( string $path )
public int getClientId ( void )
public int getRecvTimeout ( void )
public int getState ( void )
public bool isRecoverable ( void )
public bool set ( string $path , string $value [, int $version = -1 [, array &$stat = null ]] )
public bool setAcl ( string $path , int $version , array $acl )
public static bool setDebugLevel ( int $logLevel )
public static bool setDeterministicConnOrder ( bool $yesOrNo )
public bool setLogStream ( resource $stream )
public bool setWatcher ( callable $watcher_cb )
/* Константы */
const integer PERM_READ = 1 ;
const integer PERM_WRITE = 2 ;
const integer PERM_CREATE = 4 ;
const integer PERM_DELETE = 8 ;
const integer PERM_ADMIN = 16 ;
const integer PERM_ALL = 31 ;
const integer LOG_LEVEL_ERROR = 1 ;
const integer LOG_LEVEL_WARN = 2 ;
const integer LOG_LEVEL_INFO = 3 ;
const integer LOG_LEVEL_DEBUG = 4 ;
const integer EXPIRED_SESSION_STATE = -112 ;
const integer AUTH_FAILED_STATE = -113 ;
const integer CONNECTING_STATE = 1 ;
const integer ASSOCIATING_STATE = 2 ;
const integer CONNECTED_STATE = 3 ;
const integer READONLY_STATE = 5 ;
const integer NOTCONNECTED_STATE = 999 ;
}

Предопределенные константы

ZooKeeper Permissions

Zookeeper::PERM_READ

Can read nodes value and list its children

Zookeeper::PERM_WRITE

Can set the nodes value

Zookeeper::PERM_CREATE

Can create children

Zookeeper::PERM_DELETE

Can delete children

Zookeeper::PERM_ADMIN

Can execute set_acl()

Zookeeper::PERM_ALL

All of the above flags ORd together

ZooKeeper Log Levels

Zookeeper::LOG_LEVEL_ERROR

Outputs only error mesages

Zookeeper::LOG_LEVEL_WARN

Outputs errors/warnings

Zookeeper::LOG_LEVEL_INFO

Outputs big action messages besides errors/warnings

Zookeeper::LOG_LEVEL_DEBUG

Outputs all

ZooKeeper States

Zookeeper::EXPIRED_SESSION_STATE

Connected but session expired

Zookeeper::AUTH_FAILED_STATE

Connected but auth failed

Zookeeper::CONNECTING_STATE

Connecting

Zookeeper::ASSOCIATING_STATE

Associating

Zookeeper::CONNECTED_STATE

Connected

Zookeeper::READONLY_STATE

TODO: help us improve this extension.

Zookeeper::NOTCONNECTED_STATE

Connection failed

Содержание

  • Zookeeper::addAuth — Specify application credentials.
  • Zookeeper::connect — Create a handle to used communicate with zookeeper.
  • Zookeeper::__construct — Create a handle to used communicate with zookeeper.
  • Zookeeper::create — Create a node synchronously.
  • Zookeeper::delete — Delete a node in zookeeper synchronously.
  • Zookeeper::exists — Checks the existence of a node in zookeeper synchronously.
  • Zookeeper::get — Gets the data associated with a node synchronously.
  • Zookeeper::getAcl — Gets the acl associated with a node synchronously.
  • Zookeeper::getClientId — return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect.
  • Zookeeper::getState — Get the state of the zookeeper connection.
  • Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered.
  • Zookeeper::set — Sets the data associated with a node.
  • Zookeeper::setAcl — Sets the acl associated with a node synchronously.
  • Zookeeper::setDebugLevel — Sets the debugging level for the library.
  • Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization.
  • Zookeeper::setLogStream — Sets the stream to be used by the library for logging.
  • Zookeeper::setWatcher — Set a watcher function.


Specify application credentials.

  • « ZooKeeper
  • Zookeeper::connect »
  • PHP Manual
  • ZooKeeper
  • Specify application credentials.

Zookeeper::addAuth

(PECL zookeeper >= 0.1.0)

Zookeeper::addAuth — Specify application credentials.

Описание

public bool Zookeeper::addAuth ( string $scheme , string $cert [, callable $completion_cb = null ] )

The application calls this function to specify its credentials for purposes of authentication. The server will use the security provider specified by the scheme parameter to authenticate the client connection. If the authentication request has failed: - the server connection is dropped. - the watcher is called with the ZOO_AUTH_FAILED_STATE value as the state parameter.

Список параметров

scheme

The id of authentication scheme. Natively supported: "digest" password-based authentication

cert

Application credentials. The actual value depends on the scheme.

completion_cb

The routine to invoke when the request completes. One of the following result codes may be passed into the completion callback: - ZOK operation completed successfully - ZAUTHFAILED authentication failed

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Примеры

Пример #1 Zookeeper::addAuth() example

Add auth before requesting node value.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$zookeeper->set($path, $value);

$zookeeper->addAuth('digest', 'user0:passwd0');
$r = $zookeeper->get($path);
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Результат выполнения данного примера:

nodevalue

Смотрите также

  • Zookeeper::create() - Create a node synchronously.
  • Zookeeper::setAcl() - Sets the acl associated with a node synchronously.
  • Zookeeper::getAcl() - Gets the acl associated with a node synchronously.
  • ZooKeeper States


Create a handle to used communicate with zookeeper.

  • « Zookeeper::addAuth
  • Zookeeper::__construct »
  • PHP Manual
  • ZooKeeper
  • Create a handle to used communicate with zookeeper.

Zookeeper::connect

(PECL zookeeper >= 0.2.0)

Zookeeper::connect — Create a handle to used communicate with zookeeper.

Описание

public void Zookeeper::connect ( string $host [, callable $watcher_cb = null [, int $recv_timeout = 10000 ]] )

This method creates a new handle and a zookeeper session that corresponds to that handle. Session establishment is asynchronous, meaning that the session should not be considered established until (and unless) an event of state ZOO_CONNECTED_STATE is received.

Список параметров

host

Comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

The global watcher callback function. When notifications are triggered this function will be invoked.

recv_timeout

The timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE).

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or could not init instance.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.


Create a handle to used communicate with zookeeper.

  • « Zookeeper::connect
  • Zookeeper::create »
  • PHP Manual
  • ZooKeeper
  • Create a handle to used communicate with zookeeper.

Zookeeper::__construct

(PECL zookeeper >= 0.1.0)

Zookeeper::__construct — Create a handle to used communicate with zookeeper.

Описание

public Zookeeper::__construct ([ string $host = '' [, callable $watcher_cb = null [, int $recv_timeout = 10000 ]]] )

This method creates a new handle and a zookeeper session that corresponds to that handle. Session establishment is asynchronous, meaning that the session should not be considered established until (and unless) an event of state ZOO_CONNECTED_STATE is received.

Список параметров

host

comma separated host:port pairs, each corresponding to a zk server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002"

watcher_cb

the global watcher callback function. When notifications are triggered this function will be invoked.

recv_timeout

the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE).

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or could not init instance.

Смотрите также

  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.


Create a node synchronously.

  • « Zookeeper::__construct
  • Zookeeper::delete »
  • PHP Manual
  • ZooKeeper
  • Create a node synchronously.

Zookeeper::create

(PECL zookeeper >= 0.1.0)

Zookeeper::create — Create a node synchronously.

Описание

public string Zookeeper::create ( string $path , string $value , array $acls [, int $flags = null ] )

This method will create a node in ZooKeeper. A node can only be created if it does not already exists. The Create Flags affect the creation of nodes. If ZOO_EPHEMERAL flag is set, the node will automatically get removed if the client session goes away. If the ZOO_SEQUENCE flag is set, a unique monotonically increasing sequence number is appended to the path name.

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

value

The data to be stored in the node.

acls

The initial ACL of the node. The ACL must not be null or empty.

flags

this parameter can be set to 0 for normal create or an OR of the Create Flags

Возвращаемые значения

Returns the path of the new node (this might be different than the supplied path because of the ZOO_SEQUENCE flag) on success, and false on failure.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to create node.

Примеры

Пример #1 Zookeeper::create() example

Create a new node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$realPath = $zookeeper->create($path, null, $aclArray);
if ($realPath)
  echo $realPath;
else
  echo 'ERR';
?>

Результат выполнения данного примера:

/path/to/newnode

Смотрите также

  • Zookeeper::delete() - Delete a node in zookeeper synchronously.
  • ZooKeeper Permissions


Delete a node in zookeeper synchronously.

  • « Zookeeper::create
  • Zookeeper::exists »
  • PHP Manual
  • ZooKeeper
  • Delete a node in zookeeper synchronously.

Zookeeper::delete

(PECL zookeeper >= 0.2.0)

Zookeeper::delete — Delete a node in zookeeper synchronously.

Описание

public bool Zookeeper::delete ( string $path [, int $version = -1 ] )

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to delete node.

Примеры

Пример #1 Zookeeper::delete() example

Delete a existing node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->delete($path);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>

Результат выполнения данного примера:

SUCCESS

Смотрите также

  • Zookeeper::create() - Create a node synchronously.


Checks the existence of a node in zookeeper synchronously.

  • « Zookeeper::delete
  • Zookeeper::get »
  • PHP Manual
  • ZooKeeper
  • Checks the existence of a node in zookeeper synchronously.

Zookeeper::exists

(PECL zookeeper >= 0.1.0)

Zookeeper::exists — Checks the existence of a node in zookeeper synchronously.

Описание

public bool Zookeeper::exists ( string $path [, callable $watcher_cb = null ] )

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

if nonzero, a watch will be set at the server to notify the client if the node changes. The watch will be set even if the node does not

Возвращаемые значения

Returns true/false on success, and false on failure.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to check the existence of a node.

Примеры

Пример #1 Zookeeper::exists() example

Check the existence of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$r = $zookeeper->exists($path);
if ($r)
  echo 'EXISTS';
else
  echo 'N/A or ERR';
?>

Результат выполнения данного примера:

EXISTS

Смотрите также

  • Zookeeper::get() - Gets the data associated with a node synchronously.


Gets the data associated with a node synchronously.

  • « Zookeeper::exists
  • Zookeeper::getAcl »
  • PHP Manual
  • ZooKeeper
  • Gets the data associated with a node synchronously.

Zookeeper::get

(PECL zookeeper >= 0.1.0)

Zookeeper::get — Gets the data associated with a node synchronously.

Описание

public string Zookeeper::get ( string $path [, callable $watcher_cb = null [, array &$stat = null [, int $max_size = 0 ]]] )

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

watcher_cb

If nonzero, a watch will be set at the server to notify the client if the node changes.

stat

If not NULL, will hold the value of stat for the path on return.

max_size

Max size of the data. If 0 is used, this method will return the whole data.

Возвращаемые значения

Returns the data on success, and false on failure.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to get value from node.

Примеры

Пример #1 Zookeeper::get() example

Get value from node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$zookeeper->set($path, $value);

$r = $zookeeper->get($path);
if ($r)
  echo $r;
else
  echo 'ERR';
?>

Результат выполнения данного примера:

nodevalue

Смотрите также

  • Zookeeper::set() - Sets the data associated with a node.


Gets the acl associated with a node synchronously.

  • « Zookeeper::get
  • Zookeeper::getClientId »
  • PHP Manual
  • ZooKeeper
  • Gets the acl associated with a node synchronously.

Zookeeper::getAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::getAcl — Gets the acl associated with a node synchronously.

Описание

public array Zookeeper::getAcl ( string $path )

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

Возвращаемые значения

Return acl array on success and false on failure.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to get ACL of a node.

Примеры

Пример #1 Zookeeper::getAcl() example

Get ACL of a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$zookeeper->setAcl($path, $aclArray);

$r = $zookeeper->getAcl($path);
if ($r)
  var_dump($r);
else
  echo 'ERR';
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Смотрите также

  • Zookeeper::create() - Create a node synchronously.
  • Zookeeper::setAcl() - Sets the acl associated with a node synchronously.
  • ZooKeeper Permissions


return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

  • « Zookeeper::getAcl
  • Zookeeper::getRecvTimeout »
  • PHP Manual
  • ZooKeeper
  • return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

Zookeeper::getClientId

(PECL zookeeper >= 0.1.0)

Zookeeper::getClientId — return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)

Описание

public int Zookeeper::getClientId ( void )

Возвращаемые значения

Returns the client session id on success, and false on failure.

Ошибки

This method emits PHP error/warning when it could not get client session id.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.
  • Zookeeper::getState() - Get the state of the zookeeper connection.
  • ZooKeeper States


Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect.

  • « Zookeeper::getClientId
  • Zookeeper::getState »
  • PHP Manual
  • ZooKeeper
  • Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect.

Zookeeper::getRecvTimeout

(PECL zookeeper >= 0.1.0)

Zookeeper::getRecvTimeout — Return the timeout for this session, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE). This value may change after a server re-connect.

Описание

public int Zookeeper::getRecvTimeout ( void )

Возвращаемые значения

Returns the timeout for this session on success, and false on failure.

Ошибки

This method emits PHP error/warning when operation fails.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.


Get the state of the zookeeper connection.

  • « Zookeeper::getRecvTimeout
  • Zookeeper::isRecoverable »
  • PHP Manual
  • ZooKeeper
  • Get the state of the zookeeper connection.

Zookeeper::getState

(PECL zookeeper >= 0.1.0)

Zookeeper::getState — Get the state of the zookeeper connection.

Описание

public int Zookeeper::getState ( void )

Возвращаемые значения

Returns the state of zookeeper connection on success, and false on failure.

Ошибки

This method emits PHP error/warning when it fails to get state of zookeeper connection.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.
  • Zookeeper::getClientId() - return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • ZooKeeper States


Checks if the current zookeeper connection state can be recovered.

  • « Zookeeper::getState
  • Zookeeper::set »
  • PHP Manual
  • ZooKeeper
  • Checks if the current zookeeper connection state can be recovered.

Zookeeper::isRecoverable

(PECL zookeeper >= 0.1.0)

Zookeeper::isRecoverable — Checks if the current zookeeper connection state can be recovered.

Описание

public bool Zookeeper::isRecoverable ( void )

The application must close the zhandle and try to reconnect.

Возвращаемые значения

Returns true/false on success, and false on failure.

Ошибки

This method emits PHP error/warning when operation fails.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.
  • Zookeeper::getClientId() - return the client session id, only valid if the connections is currently connected (ie. last watcher state is ZOO_CONNECTED_STATE)
  • ZooKeeper States


Sets the data associated with a node.

  • « Zookeeper::isRecoverable
  • Zookeeper::setAcl »
  • PHP Manual
  • ZooKeeper
  • Sets the data associated with a node.

Zookeeper::set

(PECL zookeeper >= 0.1.0)

Zookeeper::set — Sets the data associated with a node.

Описание

public bool Zookeeper::set ( string $path , string $value [, int $version = -1 [, array &$stat = null ]] )

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

value

The data to be stored in the node.

version

The expected version of the node. The function will fail if the actual version of the node does not match the expected version. If -1 is used the version check will not take place.

stat

If not NULL, will hold the value of stat for the path on return.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to save value to node.

Примеры

Пример #1 Zookeeper::set() example

Save value to node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$path = '/path/to/node';
$value = 'nodevalue';
$r = $zookeeper->set($path, $value);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>

Результат выполнения данного примера:

SUCCESS

Смотрите также

  • Zookeeper::create() - Create a node synchronously.
  • Zookeeper::get() - Gets the data associated with a node synchronously.


Sets the acl associated with a node synchronously.

  • « Zookeeper::set
  • Zookeeper::setDebugLevel »
  • PHP Manual
  • ZooKeeper
  • Sets the acl associated with a node synchronously.

Zookeeper::setAcl

(PECL zookeeper >= 0.1.0)

Zookeeper::setAcl — Sets the acl associated with a node synchronously.

Описание

public bool Zookeeper::setAcl ( string $path , int $version , array $acl )

Список параметров

path

The name of the node. Expressed as a file name with slashes separating ancestors of the node.

version

The expected version of the path.

acl

The acl to be set on the path.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to set ACL for a node.

Примеры

Пример #1 Zookeeper::setAcl() example

Set ACL for a node.

<?php
$zookeeper = new Zookeeper('locahost:2181');
$aclArray = array(
  array(
    'perms'  => Zookeeper::PERM_ALL,
    'scheme' => 'world',
    'id'     => 'anyone',
  )
);
$path = '/path/to/newnode';
$zookeeper->setAcl($path, $aclArray);

$r = $zookeeper->getAcl($path);
if ($r)
  var_dump($r);
else
  echo 'ERR';
?>

Результат выполнения данного примера:

array(1) {
  [0]=>
  array(3) {
    ["perms"]=>
    int(31)
    ["scheme"]=>
    string(5) "world"
    ["id"]=>
    string(6) "anyone"
  }
}

Смотрите также

  • Zookeeper::create() - Create a node synchronously.
  • Zookeeper::getAcl() - Gets the acl associated with a node synchronously.
  • ZooKeeper Permissions


Sets the debugging level for the library.

  • « Zookeeper::setAcl
  • Zookeeper::setDeterministicConnOrder »
  • PHP Manual
  • ZooKeeper
  • Sets the debugging level for the library.

Zookeeper::setDebugLevel

(PECL zookeeper >= 0.1.0)

Zookeeper::setDebugLevel — Sets the debugging level for the library.

Описание

public static bool Zookeeper::setDebugLevel ( int $logLevel )

Список параметров

logLevel

ZooKeeper log level constants.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to set debug level.

Примеры

Пример #1 Zookeeper::setDebugLevel() example

Set debugl level.

<?php
$r = Zookeeper::setDebugLevel(Zookeeper::LOG_LEVEL_WARN);
if ($r)
  echo 'SUCCESS';
else
  echo 'ERR';
?>
?>

Результат выполнения данного примера:

SUCCESS

Смотрите также

  • ZooKeeper Log Levels


Enable/disable quorum endpoint order randomization.

  • « Zookeeper::setDebugLevel
  • Zookeeper::setLogStream »
  • PHP Manual
  • ZooKeeper
  • Enable/disable quorum endpoint order randomization.

Zookeeper::setDeterministicConnOrder

(PECL zookeeper >= 0.1.0)

Zookeeper::setDeterministicConnOrder — Enable/disable quorum endpoint order randomization.

Описание

public static bool Zookeeper::setDeterministicConnOrder ( bool $yesOrNo )

If passed a non-zero value, will make the client connect to quorum peers in the order as specified in the zookeeper_init() call. A zero value causes zookeeper_init() to permute the peer endpoints which is good for more even client connection distribution among the quorum peers.

Список параметров

yesOrNo

Enable/disable quorum endpoint order randomization.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Примечания

Предостережение

Note: typically this method should NOT be used outside of testing.

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Внимание

Эта функция (пока) небезопасна для обработки данных в двоичной форме!

Замечание: register_globals: важное замечание

Начиная с PHP 4.2.0, значением директивы PHP register_globals по умолчанию является off (выключено). Сообщество PHP рекомендует не полагаться на эту директиву, а использовать вместо этого иные средства, такие как superglobals.

Смотрите также

  • Zookeeper::__construct() - Create a handle to used communicate with zookeeper.
  • Zookeeper::connect() - Create a handle to used communicate with zookeeper.


Sets the stream to be used by the library for logging.

  • « Zookeeper::setDeterministicConnOrder
  • Zookeeper::setWatcher »
  • PHP Manual
  • ZooKeeper
  • Sets the stream to be used by the library for logging.

Zookeeper::setLogStream

(PECL zookeeper >= 0.1.0)

Zookeeper::setLogStream — Sets the stream to be used by the library for logging.

Описание

public bool Zookeeper::setLogStream ( resource $stream )

The zookeeper library uses stderr as its default log stream. Application must make sure the stream is writable. Passing in NULL resets the stream to its default value (stderr).

Список параметров

stream

The stream to be used by the library for logging.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or operation fails.

Смотрите также

  • Zookeeper::setDebugLevel() - Sets the debugging level for the library.


Set a watcher function.

  • « Zookeeper::setLogStream
  • Расширения для работы с поисковыми системами »
  • PHP Manual
  • ZooKeeper
  • Set a watcher function.

Zookeeper::setWatcher

(PECL zookeeper >= 0.1.0)

Zookeeper::setWatcher — Set a watcher function.

Описание

public bool Zookeeper::setWatcher ( callable $watcher_cb )

Список параметров

watcher_cb

A watch will be set at the server to notify the client if the node changes.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

This method emits PHP error/warning when parameters count or types are wrong or fail to set watcher.

Смотрите также

  • Zookeeper::exists() - Checks the existence of a node in zookeeper synchronously.
  • Zookeeper::get() - Gets the data associated with a node synchronously.


Расширения для работы с поисковыми системами

  • mnoGoSearch
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • mnoGoSearch Функции
  • Solr — Apache Solr
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции Solr
    • Примеры
    • SolrUtils — The SolrUtils class
    • SolrInputDocument — The SolrInputDocument class
    • SolrDocument — The SolrDocument class
    • SolrDocumentField — The SolrDocumentField class
    • SolrObject — Класс SolrObject
    • SolrClient — The SolrClient class
    • SolrResponse — The SolrResponse class
    • SolrQueryResponse — The SolrQueryResponse class
    • SolrUpdateResponse — The SolrUpdateResponse class
    • SolrPingResponse — The SolrPingResponse class
    • SolrGenericResponse — The SolrGenericResponse class
    • SolrParams — Класс SolrParams
    • SolrModifiableParams — Класс SolrModifiableParams
    • SolrQuery — The SolrQuery class
    • SolrDisMaxQuery — The SolrDisMaxQuery class
    • SolrCollapseFunction — The SolrCollapseFunction class
    • SolrException — Класс SolrException
    • SolrClientException — The SolrClientException class
    • SolrServerException — The SolrServerException class
    • SolrIllegalArgumentException — The SolrIllegalArgumentException class
    • SolrIllegalOperationException — The SolrIllegalOperationException class
    • SolrMissingMandatoryParameterException — The SolrMissingMandatoryParameterException class
  • Sphinx — Клиент Sphinx
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • SphinxClient — Класс SphinxClient
  • Swish — Swish Indexing
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Swish Функции


mnoGoSearch

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • mnoGoSearch Функции
    • udm_add_search_limit — Добавляет различные ограничения поиска
    • udm_alloc_agent_array — Allocate mnoGoSearch session
    • udm_alloc_agent — Allocate mnoGoSearch session
    • udm_api_version — Получает версию mnoGoSearch API
    • udm_cat_list — Get all the categories on the same level with the current one
    • udm_cat_path — Get the path to the current category
    • udm_check_charset — Проверяет, известен ли данный набор символов mnogosearch
    • udm_clear_search_limits — Очищает все ограничения поиска mnoGoSearch
    • udm_crc32 — Возвращает контрольную сумму CRC32 данной строки
    • udm_errno — Получает номер ошибки mnoGoSearch
    • udm_error — Получает сообщение об ошибке mnoGoSearch
    • udm_find — Perform search
    • udm_free_agent — Освобождает сессию mnoGoSearch
    • udm_free_ispell_data — Освобождает память, выделенную для ispell-данных
    • udm_free_res — Освобождает память, выделенную для результатов mnoGoSearch
    • udm_get_doc_count — Получает общее количество документов в базе данных
    • udm_get_res_field — Fetch a result field
    • udm_get_res_param — Get mnoGoSearch result parameters
    • udm_hash32 — Возвращает контрольную сумму Hash32 данной строки
    • udm_load_ispell_data — Загружает ispell-данные
    • udm_set_agent_param — Set mnoGoSearch agent session parameters


Введение

Эти функции позволяют получить доступ к свободной поисковой системе mnoGoSearch (бывшая UdmSearch). mnoGoSearch - это полнофункциональная поисковая машина для intranet и internet-серверов, распространяемая по лицензии GNU. mnoGoSearch имеет уникальные возможности, делающие её пригодной для использования в широком круге приложений - от поиска на вашем сайте до специализированной поисковой системы: для поиска кулинарных рецептов или поиска по газетам, поиска по FTP-архивам, поиска новостей и т.д. Она предлагает полнотекстовое индексирование и поиск в HTML, PDF и текстовых документах. mnoGoSearch состоит из двух частей. Первая - это механизм индексирования (индексатор). Цель индексатора - проходить по HTTP, FTP, NEWS-серверам или локальным файлам, рекурсивно выбирая все документы и сохраняя метаданные об этих документах в БД SQL умным и эффективным способом. После того, как каждый документ снабжен соответствующим ему URL, мета-данные, собранные индексатором, в дальнейшем используются в процессе поиска. Включены PHP и Perl-интерфейсы для поиска.

Более подробную информацию о mnoGoSearch можно найти по адресу » http://www.mnogosearch.org/.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0.

Замечание: Для Windows-платформ это расширение недоступно.


Требования

mnoGosearch доступен для загрузки и установки по ссылке » http://www.mnogosearch.org/. Необходимо установить mnoGoSearch версии не ниже 3.1.10 для того, чтобы использовать эти функции.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/mnogosearch.

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.0

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Замечание:

PHP содержит встроенную библиотеку доступа к MySQL, которая может быть использована для доступа к базе данных MySQL. Известно, что mnoGoSearch не совместим с этой встроенной библиотекой, и может работать только с универсальными библиотеками доступа к MySQL. Таким образом, если вы используете mnoGoSearch вместе с MySQL, во время конфигурации PHP вам следует указать директорию установки MySQL, чтобы она была использована во время конфигурации mnoGoSearch, например: --with-mnogosearch --with-mysql=/usr .


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

UDM_FIELD_URLID (integer)
UDM_FIELD_URL (integer)
UDM_FIELD_CONTENT (integer)
UDM_FIELD_TITLE (integer)
UDM_FIELD_KEYWORDS (integer)
UDM_FIELD_DESC (integer)
UDM_FIELD_DESCRIPTION (integer)
UDM_FIELD_TEXT (integer)
UDM_FIELD_SIZE (integer)
UDM_FIELD_RATING (integer)
UDM_FIELD_SCORE (integer)
UDM_FIELD_MODIFIED (integer)
UDM_FIELD_ORDER (integer)
UDM_FIELD_CRC (integer)
UDM_FIELD_CATEGORY (integer)
UDM_FIELD_LANG (integer)
UDM_FIELD_CHARSET (integer)
UDM_PARAM_PAGE_SIZE (integer)
UDM_PARAM_PAGE_NUM (integer)
UDM_PARAM_SEARCH_MODE (integer)
UDM_PARAM_CACHE_MODE (integer)
UDM_PARAM_TRACK_MODE (integer)
UDM_PARAM_PHRASE_MODE (integer)
UDM_PARAM_CHARSET (integer)
UDM_PARAM_LOCAL_CHARSET (integer)
UDM_PARAM_BROWSER_CHARSET (integer)
UDM_PARAM_STOPTABLE (integer)
UDM_PARAM_STOP_TABLE (integer)
UDM_PARAM_STOPFILE (integer)
UDM_PARAM_STOP_FILE (integer)
UDM_PARAM_WEIGHT_FACTOR (integer)
UDM_PARAM_WORD_MATCH (integer)
UDM_PARAM_MAX_WORD_LEN (integer)
UDM_PARAM_MAX_WORDLEN (integer)
UDM_PARAM_MIN_WORD_LEN (integer)
UDM_PARAM_MIN_WORDLEN (integer)
UDM_PARAM_ISPELL_PREFIXES (integer)
UDM_PARAM_ISPELL_PREFIX (integer)
UDM_PARAM_PREFIXES (integer)
UDM_PARAM_PREFIX (integer)
UDM_PARAM_CROSS_WORDS (integer)
UDM_PARAM_CROSSWORDS (integer)
UDM_PARAM_VARDIR (integer)
UDM_PARAM_DATADIR (integer)
UDM_PARAM_HLBEG (integer)
UDM_PARAM_HLEND (integer)
UDM_PARAM_SYNONYM (integer)
UDM_PARAM_SEARCHD (integer)
UDM_PARAM_QSTRING (integer)
UDM_PARAM_REMOTE_ADDR (integer)
UDM_LIMIT_CAT (integer)
UDM_LIMIT_URL (integer)
UDM_LIMIT_TAG (integer)
UDM_LIMIT_LANG (integer)
UDM_LIMIT_DATE (integer)
UDM_PARAM_FOUND (integer)
UDM_PARAM_NUM_ROWS (integer)
UDM_PARAM_WORDINFO (integer)
UDM_PARAM_WORD_INFO (integer)
UDM_PARAM_SEARCHTIME (integer)
UDM_PARAM_SEARCH_TIME (integer)
UDM_PARAM_FIRST_DOC (integer)
UDM_PARAM_LAST_DOC (integer)
UDM_MODE_ALL (integer)
UDM_MODE_ANY (integer)
UDM_MODE_BOOL (integer)
UDM_MODE_PHRASE (integer)
UDM_CACHE_ENABLED (integer)
UDM_CACHE_DISABLED (integer)
UDM_TRACK_ENABLED (integer)
UDM_TRACK_DISABLED (integer)
UDM_PHRASE_ENABLED (integer)
UDM_PHRASE_DISABLED (integer)
UDM_CROSS_WORDS_ENABLED (integer)
UDM_CROSSWORDS_ENABLED (integer)
UDM_CROSS_WORDS_DISABLED (integer)
UDM_CROSSWORDS_DISABLED (integer)
UDM_PREFIXES_ENABLED (integer)
UDM_PREFIX_ENABLED (integer)
UDM_ISPELL_PREFIXES_ENABLED (integer)
UDM_ISPELL_PREFIX_ENABLED (integer)
UDM_PREFIXES_DISABLED (integer)
UDM_PREFIX_DISABLED (integer)
UDM_ISPELL_PREFIXES_DISABLED (integer)
UDM_ISPELL_PREFIX_DISABLED (integer)
UDM_ISPELL_TYPE_AFFIX (integer)
UDM_ISPELL_TYPE_SPELL (integer)
UDM_ISPELL_TYPE_DB (integer)
UDM_ISPELL_TYPE_SERVER (integer)
UDM_MATCH_WORD (integer)
UDM_MATCH_BEGIN (integer)
UDM_MATCH_SUBSTR (integer)
UDM_MATCH_END (integer)


mnoGoSearch Функции

Содержание

  • udm_add_search_limit — Добавляет различные ограничения поиска
  • udm_alloc_agent_array — Allocate mnoGoSearch session
  • udm_alloc_agent — Allocate mnoGoSearch session
  • udm_api_version — Получает версию mnoGoSearch API
  • udm_cat_list — Get all the categories on the same level with the current one
  • udm_cat_path — Get the path to the current category
  • udm_check_charset — Проверяет, известен ли данный набор символов mnogosearch
  • udm_clear_search_limits — Очищает все ограничения поиска mnoGoSearch
  • udm_crc32 — Возвращает контрольную сумму CRC32 данной строки
  • udm_errno — Получает номер ошибки mnoGoSearch
  • udm_error — Получает сообщение об ошибке mnoGoSearch
  • udm_find — Perform search
  • udm_free_agent — Освобождает сессию mnoGoSearch
  • udm_free_ispell_data — Освобождает память, выделенную для ispell-данных
  • udm_free_res — Освобождает память, выделенную для результатов mnoGoSearch
  • udm_get_doc_count — Получает общее количество документов в базе данных
  • udm_get_res_field — Fetch a result field
  • udm_get_res_param — Get mnoGoSearch result parameters
  • udm_hash32 — Возвращает контрольную сумму Hash32 данной строки
  • udm_load_ispell_data — Загружает ispell-данные
  • udm_set_agent_param — Set mnoGoSearch agent session parameters


Добавляет различные ограничения поиска

  • « mnoGoSearch Функции
  • udm_alloc_agent_array »
  • PHP Manual
  • mnoGoSearch Функции
  • Добавляет различные ограничения поиска

udm_add_search_limit

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_add_search_limit — Добавляет различные ограничения поиска

Описание

bool udm_add_search_limit ( resource $agent , int $var , string $val )

udm_add_search_limit() добавляет ограничения поиска.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

var

Определяет параметр, обозначающий ограничения. Возможные значения var:

  • UDM_LIMIT_URL - определяет ограничения по URL документа для ограничения поиска подсекцией базы данных. Поддерживает спецсимволы SQL оператора LIKE % и _, где % означает любое количество символов, даже ноль, а _ означает точно один символ. Т.е. http://www.example.___/catalog совпадет и с http://www.example.com/catalog и с http://www.example.net/catalog.
  • UDM_LIMIT_TAG - задает ограничения по тегу сайта. В indexer-conf вы можете задать специфичные теги различным сайтам и частям сайтов. В mnoGoSearch 3.1.x теги являются строками, которые могут содержать метасимволы % и _. Метасимволы позволяют искать по группам тегов. Т.е. если в базе есть теги ABCD и ABCE, то, при использовании ограничения ABC_, поиск будет производиться по записям с этими тегами.
  • UDM_LIMIT_LANG - определяет ограничения языка документа.
  • UDM_LIMIT_CAT - задает ограничения для категории документа. Категории похожи на теги, но могут вкладываться друг в друга. Вы должны использовать два символа для каждого уровня. Используйте шестнадцатеричное число (0-F) или 36-ричное (0-Z). Допустим у вас есть верхнеуровневая категория 'Auto', содержащая две подкатегории 'Ford' и 'Opel', а 'Opel' в свою очередь содержит подкатегорию 'Engine'. Нумерация категорий будет следующей: 'Auto'=01, 'Ford'=01, 'Opel'=02 (так как это вторая подкатегория 'Auto'), 'Engine' =>01. И если нам нужо производить поиск в категории 'Auto'(01)=>'Opel'(02)=>'Engine'(01), мы передадим в URL параметр cat=010201.

  • UDM_LIMIT_DATE - определяет ограничение по дате модификации документа.

    Формат значения параметра: строка с первым символом < или >, после чего, без пробела, дата в виде временной метки UNIX. К примеру:

    <?php
    udm_add_search_limit    ($udm, UDM_LIMIT_DATE, "&lt;908012006");
    ?>

    Если используется символ >, то поиск ограничен документами, имеющими дату модификации больше, чем введённая. Если <, то меньше.

val

Определяет значение текущего параметра.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Allocate mnoGoSearch session

  • « udm_add_search_limit
  • udm_alloc_agent »
  • PHP Manual
  • mnoGoSearch Функции
  • Allocate mnoGoSearch session

udm_alloc_agent_array

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_alloc_agent_array — Allocate mnoGoSearch session

Описание

resource udm_alloc_agent_array ( array $databases )

udm_alloc_agent_array() will create an agent with multiple database connections.

Список параметров

databases

The array databases must contain one database URL per element, analog to the first parameter of udm_alloc_agent().

Возвращаемые значения

Returns a resource link identifier on success или FALSE в случае возникновения ошибки.

Смотрите также

  • udm_alloc_agent() - Allocate mnoGoSearch session


Allocate mnoGoSearch session

  • « udm_alloc_agent_array
  • udm_api_version »
  • PHP Manual
  • mnoGoSearch Функции
  • Allocate mnoGoSearch session

udm_alloc_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_alloc_agent — Allocate mnoGoSearch session

Описание

resource udm_alloc_agent ( string $dbaddr [, string $dbmode ] )

Allocate a mnoGoSearch session.

Список параметров

dbaddr

dbaddr - URL-style database description, with options (type, host, database name, port, user and password) to connect to SQL database. Do not matter for built-in text files support. Format for dbaddr: DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/. Currently supported DBType values are: mysql, pgsql, msql, solid, mssql, oracle, and ibase. Actually, it does not matter for native libraries support, but ODBC users should specify one of the supported values. If your database type is not supported, you may use unknown instead.

dbmode

dbmode - You may select the SQL database mode of words storage. Possible values of dbmode are: single, multi, crc, or crc-multi. When single is specified, all words are stored in the same table. If multi is selected, words will be located in different tables depending of their lengths. "multi" mode is usually faster, but requires more tables in the database. If "crc" mode is selected, mnoGoSearch will store 32 bit integer word IDs calculated by CRC32 algorithm instead of words. This mode requires less disk space and it is faster comparing with "single" and "multi" modes. crc-multi uses the same storage structure with the "crc" mode, but also stores words in different tables depending on words lengths like in "multi" mode.

Замечание:

dbaddr and dbmode must match those used during indexing.

Возвращаемые значения

Returns a mnogosearch agent identifier on success, FALSE on failure. This function creates a session with database parameters.

Примечания

Замечание:

In fact this function does not open a connection to the database and thus does not check the entered login and password. Establishing a connection to the database and login/password verification is done by udm_find().


Получает версию mnoGoSearch API

  • « udm_alloc_agent
  • udm_cat_list »
  • PHP Manual
  • mnoGoSearch Функции
  • Получает версию mnoGoSearch API

udm_api_version

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_api_version — Получает версию mnoGoSearch API

Описание

int udm_api_version ( void )

Получает версию mnoGoSearch API.

Эта функция позволяет пользователю узнать, какие функции API доступны, например, функция udm_get_doc_count() доступна только в mnoGoSearch 3.1.11 или выше.

Возвращаемые значения

udm_api_version() возвращает номер версии mnoGoSearch API. Например, если используется mnoGoSearch 3.1.10 API, эта функция вернет 30110.

Примеры

Пример #1 Пример использования udm_api_version()

<?php
if (udm_api_version() >= 30111) {
    echo  "Общее количество URL-адресов в базе данных: " . udm_get_doc_count($udm) . "<br />\n";
}
?>


Get all the categories on the same level with the current one

  • « udm_api_version
  • udm_cat_path »
  • PHP Manual
  • mnoGoSearch Функции
  • Get all the categories on the same level with the current one

udm_cat_list

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_cat_list — Get all the categories on the same level with the current one

Описание

array udm_cat_list ( resource $agent , string $category )

Gets all the categories on the same level with the current one.

The function can be useful for developing categories tree browser.

Список параметров

agent

A link to Agent, received after call to udm_alloc_agent().

category

Возвращаемые значения

Returns an array listing all categories of the same level as the current category in the categories tree.

The returned array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

$array[0] will contain '020300'
  $array[1] will contain 'Audi'
  $array[2] will contain '020301'
  $array[3] will contain 'BMW'
  $array[4] will contain '020302'
  $array[5] will contain 'Opel'
  ...
 etc.

Примеры

Following is an example of displaying links of the current level in format:

Audi
  BMW
  Opel
  ...

Пример #1 udm_cat_list()example

<?php
 $cat_list_arr = udm_cat_list($udm_agent, $cat);
 $cat_list = '';
 for ($i=0; $i<count($cat_list_arr); $i+=2) {
    $path = $cat_list_arr[$i];
    $name = $cat_list_arr[$i+1];
    $cat_list .= "<a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a><br />";
 }
?>

Смотрите также

  • udm_cat_path() - Get the path to the current category


Get the path to the current category

  • « udm_cat_list
  • udm_check_charset »
  • PHP Manual
  • mnoGoSearch Функции
  • Get the path to the current category

udm_cat_path

(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_cat_path — Get the path to the current category

Описание

array udm_cat_path ( resource $agent , string $category )

Returns an array describing the path in the categories tree from the tree root to the current one, specified by category.

Список параметров

agent

A link to Agent, received after call to udm_alloc_agent().

category

Возвращаемые значения

The returned array consists of pairs. Elements with even index numbers contain the category paths, odd elements contain the corresponding category names.

For example, the call $array=udm_cat_path($agent, '02031D'); may return the following array:

 $array[0] will contain ''
 $array[1] will contain 'Root'
 $array[2] will contain '02'
 $array[3] will contain 'Sport'
 $array[4] will contain '0203'
 $array[5] will contain 'Auto'
 $array[4] will contain '02031D'
 $array[5] will contain 'Ferrari'

Примеры

Пример #1 Specifying path to the current category in the following format: '> Root > Sport > Auto > Ferrari'

<?php
  $cat_path_arr = udm_cat_path($udm_agent, $cat);
  $cat_path = '';
  for ($i=0; $i<count($cat_path_arr); $i+=2) {
    $path = $cat_path_arr[$i];
    $name = $cat_path_arr[$i+1];
    $cat_path .= " > <a href=\"$_SERVER[PHP_SELF]?cat=$path\">$name</a> ";
  }
?>

Смотрите также

  • udm_cat_list() - Get all the categories on the same level with the current one


Проверяет, известен ли данный набор символов mnogosearch

  • « udm_cat_path
  • udm_clear_search_limits »
  • PHP Manual
  • mnoGoSearch Функции
  • Проверяет, известен ли данный набор символов mnogosearch

udm_check_charset

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_check_charset — Проверяет, известен ли данный набор символов mnogosearch

Описание

bool udm_check_charset ( resource $agent , string $charset )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Очищает все ограничения поиска mnoGoSearch

  • « udm_check_charset
  • udm_crc32 »
  • PHP Manual
  • mnoGoSearch Функции
  • Очищает все ограничения поиска mnoGoSearch

udm_clear_search_limits

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_clear_search_limits — Очищает все ограничения поиска mnoGoSearch

Описание

bool udm_clear_search_limits ( resource $agent )

udm_clear_search_limits() сбрасывает определенные ограничения поиска.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

Возвращает TRUE.

Смотрите также

  • udm_add_search_limit() - Добавляет различные ограничения поиска


Возвращает контрольную сумму CRC32 данной строки

  • « udm_clear_search_limits
  • udm_errno »
  • PHP Manual
  • mnoGoSearch Функции
  • Возвращает контрольную сумму CRC32 данной строки

udm_crc32

(PHP 4 >= 4.2.0, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_crc32 — Возвращает контрольную сумму CRC32 данной строки

Описание

int udm_crc32 ( resource $agent , string $str )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Получает номер ошибки mnoGoSearch

  • « udm_crc32
  • udm_error »
  • PHP Manual
  • mnoGoSearch Функции
  • Получает номер ошибки mnoGoSearch

udm_errno

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_errno — Получает номер ошибки mnoGoSearch

Описание

int udm_errno ( resource $agent )

Получает числовой код ошибки агента.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

Возвращает номер ошибки mnoGoSearch; либо нуль, если ошибки нет.


Получает сообщение об ошибке mnoGoSearch

  • « udm_errno
  • udm_find »
  • PHP Manual
  • mnoGoSearch Функции
  • Получает сообщение об ошибке mnoGoSearch

udm_error

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_error — Получает сообщение об ошибке mnoGoSearch

Описание

string udm_error ( resource $agent )

Получает сообщение агента об ошибке.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

udm_error() возвращает сообщение об ошибке mnoGoSearch, либо пустую строку, если нет ошибок.


Perform search

  • « udm_error
  • udm_free_agent »
  • PHP Manual
  • mnoGoSearch Функции
  • Perform search

udm_find

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_find — Perform search

Описание

resource udm_find ( resource $agent , string $query )

Performs a search.

The search itself. The first argument - session, the next one - query itself. To find something just type words you want to find and press SUBMIT button. For example, "mysql odbc". You should not use quotes " in query, they are written here only to divide a query from other text. mnoGoSearch will find all documents that contain word "mysql" and/or word "odbc". Best documents having bigger weights will be displayed first. If you use search mode ALL, search will return documents that contain both (or more) words you entered. In case you use mode ANY, the search will return list of documents that contain any of the words you entered. If you want more advanced results you may use query language. You should select "bool" match mode in the search from.

Список параметров

agent

A link to Agent, received after call to udm_alloc_agent().

query

mnoGoSearch understands the following boolean operators:

& - logical AND. For example, "mysql & odbc". mnoGoSearch will find any URLs that contain both "mysql" and "odbc".

| - logical OR. For example "mysql|odbc". mnoGoSearch will find any URLs, that contain word "mysql" or word "odbc".

~ - logical NOT. For example "mysql & ~odbc". mnoGoSearch will find URLs that contain word "mysql" and do not contain word "odbc" at the same time. Note that ~ just excludes given word from results. Query "~odbc" will find nothing!

() - group command to compose more complex queries. For example "(mysql | msql) & ~postgres". Query language is simple and powerful at the same time. Just consider query as usual boolean expression.

Возвращаемые значения

Returns a result link identifier on success или FALSE в случае возникновения ошибки.


Освобождает сессию mnoGoSearch

  • « udm_find
  • udm_free_ispell_data »
  • PHP Manual
  • mnoGoSearch Функции
  • Освобождает сессию mnoGoSearch

udm_free_agent

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_agent — Освобождает сессию mnoGoSearch

Описание

int udm_free_agent ( resource $agent )

Освобождение памяти, выделенной для сессии агента.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Освобождает память, выделенную для ispell-данных

  • « udm_free_agent
  • udm_free_res »
  • PHP Manual
  • mnoGoSearch Функции
  • Освобождает память, выделенную для ispell-данных

udm_free_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_ispell_data — Освобождает память, выделенную для ispell-данных

Описание

bool udm_free_ispell_data ( int $agent )

Освобождает память, выделенную для ispell-данных.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

udm_free_ispell_data() всегда возвращает TRUE.

Примечания

Замечание:

Эта функция поддерживается, начиная с mnoGoSearch версии 3.1.12, и ничего не делает в предыдущих версиях.


Освобождает память, выделенную для результатов mnoGoSearch

  • « udm_free_ispell_data
  • udm_get_doc_count »
  • PHP Manual
  • mnoGoSearch Функции
  • Освобождает память, выделенную для результатов mnoGoSearch

udm_free_res

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_free_res — Освобождает память, выделенную для результатов mnoGoSearch

Описание

bool udm_free_res ( resource $res )

Освобождает память, выделенную для результатов.

Список параметров

res

Ссылка на идентификатор результата, полученная после вызова udm_find().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Получает общее количество документов в базе данных

  • « udm_free_res
  • udm_get_res_field »
  • PHP Manual
  • mnoGoSearch Функции
  • Получает общее количество документов в базе данных

udm_get_doc_count

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_doc_count — Получает общее количество документов в базе данных

Описание

int udm_get_doc_count ( resource $agent )

udm_get_doc_count() возвращает количество документов в базе данных.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

Возвращаемые значения

Возвращает количество документов.

Примечания

Замечание:

Эта функция поддерживается только в mnoGoSearch 3.1.11 или выше.


Fetch a result field

  • « udm_get_doc_count
  • udm_get_res_param »
  • PHP Manual
  • mnoGoSearch Функции
  • Fetch a result field

udm_get_res_field

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_res_field — Fetch a result field

Описание

string udm_get_res_field ( resource $res , int $row , int $field )

Fetch a mnoGoSearch result field.

Список параметров

res

res - a link to result identifier, received after call to udm_find().

row

row - the number of the link on the current page. May have values from 0 to UDM_PARAM_NUM_ROWS-1.

field

field - field identifier, may have the following values:

  • UDM_FIELD_URL - document URL field
  • UDM_FIELD_CONTENT - document Content-type field (for example, text/html).
  • UDM_FIELD_CATEGORY - document category field. Use udm_cat_path() to get full path to current category from the categories tree root. (This parameter is available only in PHP 4.0.6 or later).
  • UDM_FIELD_TITLE - document title field.
  • UDM_FIELD_KEYWORDS - document keywords field (from META KEYWORDS tag).
  • UDM_FIELD_DESC - document description field (from META DESCRIPTION tag).
  • UDM_FIELD_TEXT - document body text (the first couple of lines to give an idea of what the document is about).
  • UDM_FIELD_SIZE - document size.
  • UDM_FIELD_URLID - unique URL ID of the link.
  • UDM_FIELD_RATING - page rating (as calculated by mnoGoSearch).
  • UDM_FIELD_MODIFIED - last-modified field in unixtime format.
  • UDM_FIELD_ORDER - the number of the current document in set of found documents.
  • UDM_FIELD_CRC - document CRC.

Возвращаемые значения

udm_get_res_field() returns result field value on success, FALSE on error.


Get mnoGoSearch result parameters

  • « udm_get_res_field
  • udm_hash32 »
  • PHP Manual
  • mnoGoSearch Функции
  • Get mnoGoSearch result parameters

udm_get_res_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_get_res_param — Get mnoGoSearch result parameters

Описание

string udm_get_res_param ( resource $res , int $param )

Gets the mnoGoSearch result parameters.

Список параметров

res

res - a link to result identifier, received after call to udm_find().

param

param - parameter identifier, may have the following values:

  • UDM_PARAM_NUM_ROWS - number of received found links on the current page. It is equal to UDM_PARAM_PAGE_SIZE for all search pages, on the last page - the rest of links.
  • UDM_PARAM_FOUND - total number of results matching the query.
  • UDM_PARAM_WORDINFO - information on the words found. E.g. search for "a good book" will return "a: stopword, good:5637, book: 120"
  • UDM_PARAM_SEARCHTIME - search time in seconds.
  • UDM_PARAM_FIRST_DOC - the number of the first document displayed on current page.
  • UDM_PARAM_LAST_DOC - the number of the last document displayed on current page.

Возвращаемые значения

udm_get_res_param() returns result parameter value on success, FALSE on error.


Возвращает контрольную сумму Hash32 данной строки

  • « udm_get_res_param
  • udm_load_ispell_data »
  • PHP Manual
  • mnoGoSearch Функции
  • Возвращает контрольную сумму Hash32 данной строки

udm_hash32

(PHP 4 >= 4.3.3, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_hash32 — Возвращает контрольную сумму Hash32 данной строки

Описание

int udm_hash32 ( resource $agent , string $str )

udm_hash32() принимает строку str и возвращает практически уникальную 32-битную хэш-сумму этой строки.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

str

Входная строка.

Возвращаемые значения

Возвращает 32-битную хэш-сумму.

Смотрите также

  • udm_alloc_agent() - Allocate mnoGoSearch session


Загружает ispell-данные

  • « udm_hash32
  • udm_set_agent_param »
  • PHP Manual
  • mnoGoSearch Функции
  • Загружает ispell-данные

udm_load_ispell_data

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_load_ispell_data — Загружает ispell-данные

Описание

bool udm_load_ispell_data ( resource $agent , int $var , string $val1 , string $val2 , int $flag )

udm_load_ispell_data() загружает ispell-данные.

После использования этой функции, для того, чтобы освободить память, выделенную для ispell-данных, пожалуйста, используйте функцию udm_free_ispell_data(), даже если вы используете режим UDM_ISPELL_TYPE_SERVER.

Список параметров

agent

Ссылка на идентификатор агента, полученная после вызова udm_alloc_agent().

var

Указывает источник ispell-данных. Может принимать следующие значения:

  • UDM_ISPELL_TYPE_DB - указывает, что ispell-данные должны быть загружены из SQL. В этом случае параметры val1 и val2 игнорируются и должны быть пустыми. flag должен быть равен 1.

    Замечание:

    flag указывает, что после загрузки ispell-данных из определённого ресурса они должны быть отсортированы (это необходимо для корректной работы ispell). В случае загрузки ispell-данных из файлов может быть несколько вызовов функции udm_load_ispell_data(), так что нет смысла сортировать данные после каждого вызова, кроме последнего. Поскольку в режиме db все данные загружаются одним вызовом, этот параметр должен иметь значение 1. В этом режиме, в случае ошибки, например, если ispell-таблицы отсутствуют, функция возвратит FALSE, а код и сообщение об ошибке будут доступны через udm_error() и udm_errno().

  • UDM_ISPELL_TYPE_AFFIX - указывает, что ispell-данные должны быть загружены из файла, и инициирует загрузку файла аффиксов. В этом случае val1 определяет двухбуквенный код языка, для которого загружаются аффиксы, а val2 - путь к файлу. Пожалуйста, обратите внимание, что, если введён относительный путь, модуль ищет файл не в UDM_CONF_DIR, а относительно текущего пути, т.е. пути, в котором выполняется скрипт. В случае ошибки в этом режиме, например, если файл отсутствует, функция возвратит FALSE, и будет выведено сообщение об ошибке. Текст сообщения об ошибке не может быть получен через udm_error() и udm_errno(), так как эти функции могут возвращать только сообщения, связанные с SQL. Пожалуйста, посмотрите описание параметра flag в UDM_ISPELL_TYPE_DB.

    Пример #1 Пример использования udm_load_ispell_data()

    <?php
    if ((! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
        (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
        exit;
    }
    ?>

    Замечание:

    flag равен 1 только в последнем вызове.

  • UDM_ISPELL_TYPE_SPELL - указывает, что ispell-данные должны быть загружены из файла, и инициирует загрузку файла ispell-словаря. В этом случае val1 определяет двухбуквенный код языка, для которого загружаются аффиксы, а val2 - путь к файлу. Пожалуйста, обратите внимание, что, если введён относительный путь, модуль ищет файл не в UDM_CONF_DIR, а относительно текущего пути, т.е. пути, в котором выполняется скрипт. В случае ошибки в этом режиме, например, если файл отсутствует, функция возвратит FALSE, и будет выведено сообщение об ошибке. Текст сообщения об ошибке не может быть получен через udm_error() и udm_errno(), так как эти функции могут возвращать только сообщения, связанные с SQL. Пожалуйста, посмотрите описание параметра flag в UDM_ISPELL_TYPE_DB.

    <?php
    if ((! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'en', '/opt/ispell/en.aff', 0)) ||
       (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_AFFIX, 'ru', '/opt/ispell/ru.aff', 0)) ||
       (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'en', '/opt/ispell/en.dict', 0)) ||
       (!     udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SPELL, 'ru', '/opt/ispell/ru.dict', 1))) {
     exit;
     }
    ?>

    Замечание:

    flag равен 1 только в последнем вызове.

  • UDM_ISPELL_TYPE_SERVER - включает поддержку spell-сервера. Параметр val1 указывает адрес хоста запущенного spell-сервера. val2 еще не используется, но в будущих версиях он будет указывать номер порта, используемого spell-сервером. Параметр flag в этом случае не нужен, так как ispell-данные хранятся на spell-сервере уже отсортированными.

    Spelld-сервер читает spell-данные из отдельного файла конфигурации (по умолчанию /usr/local/mnogosearch/etc/spelld.conf), сортирует их и сохраняет в памяти. С клиентами сервер взаимодействует с помощью двунаправленного общения: все данные передаются в индексатор (так что индексатор стартует быстрее), из search.cgi сервер получает слово для нормализации и затем передаёт клиенту (search.cgi) список нормализованных словоформ. Это обеспечивает самую быструю, по сравнению с режимами db и text обработку поисковых запросов (миную загрузку и сортировку всех spell-данных).

    Функция udm_load_ispell_data() в режиме UDM_ISPELL_TYPE_SERVER на самом деле не загружает ispell-данные, а только определяет адрес сервера. Фактически, сервер автоматически используется функцией udm_find() при выполнении поиска. В случае ошибок, например, если spell-сервер не запущен или указан неправильный хост, возвращаемых сообщений нет и конвертация ispell не работает.

    Замечание:

    Эта функция доступна в mnoGoSearch 3.1.12 или выше.

    Пример:
    <?php
    if (!udm_load_ispell_data($udm, UDM_ISPELL_TYPE_SERVER, '', '', 1)) {
        echo     "Ошибка при загрузке ispell-данных с сервера<br />\n";
        exit;
    }
    ?>

Самым быстрым режимом является UDM_ISPELL_TYPE_SERVER. UDM_ISPELL_TYPE_TEXT медленнее а UDM_ISPELL_TYPE_DB самый медленный. Вышесказанное верно для mnoGoSearch 3.1.10 - 3.1.11. Планируется ускорить режим DB в будущих версиях, и он будет быстрее режима TEXT.

val1

val2

flag

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #2 Пример использования udm_load_ispell_data()

<?php
if (! udm_load_ispell_data($udm, UDM_ISPELL_TYPE_DB, '', '', 1)) {
  printf("Ошибка #%d: '%s'\n", udm_errno($udm), udm_error($udm));
  exit;
}
?>


Set mnoGoSearch agent session parameters

  • « udm_load_ispell_data
  • Solr »
  • PHP Manual
  • mnoGoSearch Функции
  • Set mnoGoSearch agent session parameters

udm_set_agent_param

(PHP 4 >= 4.0.5, PHP 5 <= 5.0.5, PECL mnogosearch >= 1.0.0)

udm_set_agent_param — Set mnoGoSearch agent session parameters

Описание

bool udm_set_agent_param ( resource $agent , int $var , string $val )

Defines mnoGoSearch session parameters.

Список параметров

agent

A link to Agent, received after call to udm_alloc_agent().

var

The following parameters and their values are available:

  • UDM_PARAM_PAGE_NUM - used to choose search results page number (results are returned by pages beginning from 0, with UDM_PARAM_PAGE_SIZE results per page).
  • UDM_PARAM_PAGE_SIZE - number of search results displayed on one page.
  • UDM_PARAM_SEARCH_MODE - search mode. The following values available: UDM_MODE_ALL - search for all words; UDM_MODE_ANY - search for any word; UDM_MODE_PHRASE - phrase search; UDM_MODE_BOOL - boolean search. See udm_find() for details on boolean search.
  • UDM_PARAM_CACHE_MODE - turns on or off search result cache mode. When enabled, the search engine will store search results to disk. In case a similar search is performed later, the engine will take results from the cache for faster performance. Available values: UDM_CACHE_ENABLED, UDM_CACHE_DISABLED.
  • UDM_PARAM_TRACK_MODE - turns on or off trackquery mode. Since version 3.1.2 mnoGoSearch has a query tracking support. Note that tracking is implemented in SQL version only and not available in built-in database. To use tracking, you have to create tables for tracking support. For MySQL, use create/mysql/track.txt. When doing a search, front-end uses those tables to store query words, a number of found documents and current Unix timestamp in seconds. Available values: UDM_TRACK_ENABLED, UDM_TRACK_DISABLED.
  • UDM_PARAM_PHRASE_MODE - defines whether index database using phrases ("phrase" parameter in indexer.conf). Possible values: UDM_PHRASE_ENABLED and UDM_PHRASE_DISABLED. Please note, that if phrase search is enabled (UDM_PHRASE_ENABLED), it is still possible to do search in any mode (ANY, ALL, BOOL or PHRASE). In 3.1.10 version of mnoGoSearch phrase search is supported only in sql and built-in database modes, while beginning with 3.1.11 phrases are supported in cachemode as well. Examples of phrase search: "Arizona desert" - This query returns all indexed documents that contain "Arizona desert" as a phrase. Notice that you need to put double quotes around the phrase
  • UDM_PARAM_CHARSET - defines local charset. Available values: set of charsets supported by mnoGoSearch, e.g. koi8-r, cp1251, ...
  • UDM_PARAM_STOPFILE - Defines name and path to stopwords file. (There is a small difference with mnoGoSearch - while in mnoGoSearch if relative path or no path entered, it looks for this file in relation to UDM_CONF_DIR, the module looks for the file in relation to current path, i.e. to the path where the PHP script is executed.)
  • UDM_PARAM_STOPTABLE - Load stop words from the given SQL table. You may use several StopwordTable commands. This command has no effect when compiled without SQL database support.
  • UDM_PARAM_WEIGHT_FACTOR - represents weight factors for specific document parts. Currently body, title, keywords, description, url are supported. To activate this feature please use degrees of 2 in *Weight commands of the indexer.conf. Let's imagine that we have these weights:
          URLWeight     1
      BodyWeight    2
      TitleWeight   4
      KeywordWeight 8
      DescWeight    16
    As far as indexer uses bit OR operation for word weights when some word presents several time in the same document, it is possible at search time to detect word appearance in different document parts. Word which appears only in the body will have 00000010 aggregate weight (in binary notation). Word used in all document parts will have 00011111 aggregate weight. This parameter's value is a string of hex digits ABCDE. Each digit is a factor for corresponding bit in word weight. For the given above weights configuration:
           E is a factor for weight 1  (URL Weight bit)
       D is a factor for weight 2  (BodyWeight bit)
       C is a factor for weight 4  (TitleWeight bit)
       B is a factor for weight 8  (KeywordWeight bit)
       A is a factor for weight 16 (DescWeight bit)
    Examples: UDM_PARAM_WEIGHT_FACTOR=00001 will search through URLs only. UDM_PARAM_WEIGHT_FACTOR=00100 will search through Titles only. UDM_PARAM_WEIGHT_FACTOR=11100 will search through Title,Keywords,Description but not through URL and Body. UDM_PARAM_WEIGHT_FACTOR=F9421 will search through:
            Description with factor 15  (F hex)
        Keywords with factor 9
        Title with factor  4
        Body with factor 2
        URL with factor 1
    If UDM_PARAM_WEIGHT_FACTOR variable is omitted, original weight value is taken to sort results. For a given above weight configuration it means that document description has a most big weight 16.
  • UDM_PARAM_WORD_MATCH - word match. You may use this parameter to choose word match type. This feature works only in "single" and "multi" modes using SQL based and built-in database. It does not work in cachemode and other modes since they use word CRC and do not support substring search. Available values: UDM_MATCH_BEGIN - word beginning match; UDM_MATCH_END - word ending match; UDM_MATCH_WORD - whole word match; UDM_MATCH_SUBSTR - word substring match.
  • UDM_PARAM_MIN_WORD_LEN - defines minimal word length. Any word shorter this limit is considered to be a stopword. Please note that this parameter value is inclusive, i.e. if UDM_PARAM_MIN_WORD_LEN=3, a word 3 characters long will not be considered a stopword, while a word 2 characters long will be. Default value is 1.
  • UDM_PARAM_ISPELL_PREFIXES - Possible values: UDM_PREFIXES_ENABLED and UDM_PREFIXES_DISABLED, that respectively enable or disable using prefixes. E.g. if a word "tested" is in search query, also words like "test", "testing", etc. Only suffixes are supported by default. Prefixes usually change word meanings, for example if somebody is searching for the word "tested" one hardly wants "untested" to be found. Prefixes support may also be found useful for site's spelling checking purposes. In order to enable ispell, you have to load ispell data with udm_load_ispell_data().
  • UDM_PARAM_CROSS_WORDS - enables or disables crosswords support. Possible values: UDM_CROSS_WORDS_ENABLED and UDM_CROSS_WORDS_DISABLED. The crosswords feature allows to assign words between <a href="xxx"> and </a> also to a document this link leads to. It works in SQL database mode and is not supported in built-in database and Cachemode.
  • UDM_PARAM_VARDIR - specifies a custom path to directory where indexer stores data when using built-in database and in cache mode. By default /var directory of mnoGoSearch installation is used. Can have only string values.

val

Список изменений

Версия | Описание
4.1.0 | UDM_PARAM_VARDIR was added.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Crosswords are supported only in mnoGoSearch 3.1.11 or later.


Apache Solr

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции Solr
    • solr_get_version — Возвращает текущую версию расширения Apache Solr
  • Примеры
  • SolrUtils — The SolrUtils class
    • SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject
    • SolrUtils::escapeQueryChars — Escapes a lucene query string
    • SolrUtils::getSolrVersion — Returns the current version of the Solr extension
    • SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string
  • SolrInputDocument — The SolrInputDocument class
    • SolrInputDocument::addChildDocument — Adds a child document for block indexing
    • SolrInputDocument::addChildDocuments — Adds an array of child documents
    • SolrInputDocument::addField — Adds a field to the document
    • SolrInputDocument::clear — Resets the input document
    • SolrInputDocument::__clone — Creates a copy of a SolrDocument
    • SolrInputDocument::__construct — Constructor
    • SolrInputDocument::deleteField — Removes a field from the document
    • SolrInputDocument::__destruct — Destructor
    • SolrInputDocument::fieldExists — Checks if a field exists
    • SolrInputDocument::getBoost — Retrieves the current boost value for the document
    • SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)
    • SolrInputDocument::getChildDocumentsCount — Returns the number of child documents
    • SolrInputDocument::getField — Retrieves a field by name
    • SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field
    • SolrInputDocument::getFieldCount — Returns the number of fields in the document
    • SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document
    • SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents
    • SolrInputDocument::merge — Merges one input document into another
    • SolrInputDocument::reset — This is an alias of SolrInputDocument::clear
    • SolrInputDocument::setBoost — Sets the boost value for this document
    • SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field
    • SolrInputDocument::sort — Sorts the fields within the document
    • SolrInputDocument::toArray — Returns an array representation of the input document
  • SolrDocument — The SolrDocument class
    • SolrDocument::addField — Adds a field to the document
    • SolrDocument::clear — Drops all the fields in the document
    • SolrDocument::__clone — Creates a copy of a SolrDocument object
    • SolrDocument::__construct — Constructor
    • SolrDocument::current — Retrieves the current field
    • SolrDocument::deleteField — Removes a field from the document
    • SolrDocument::__destruct — Destructor
    • SolrDocument::fieldExists — Checks if a field exists in the document
    • SolrDocument::__get — Access the field as a property
    • SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)
    • SolrDocument::getChildDocumentsCount — Returns the number of child documents
    • SolrDocument::getField — Retrieves a field by name
    • SolrDocument::getFieldCount — Returns the number of fields in this document
    • SolrDocument::getFieldNames — Returns an array of fields names in the document
    • SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object
    • SolrDocument::hasChildDocuments — Checks whether the document has any child documents
    • SolrDocument::__isset — Checks if a field exists
    • SolrDocument::key — Retrieves the current key
    • SolrDocument::merge — Merges source to the current SolrDocument
    • SolrDocument::next — Moves the internal pointer to the next field
    • SolrDocument::offsetExists — Checks if a particular field exists
    • SolrDocument::offsetGet — Retrieves a field
    • SolrDocument::offsetSet — Adds a field to the document
    • SolrDocument::offsetUnset — Removes a field
    • SolrDocument::reset — This is an alias to SolrDocument::clear()
    • SolrDocument::rewind — Resets the internal pointer to the beginning
    • SolrDocument::serialize — Used for custom serialization
    • SolrDocument::__set — Adds another field to the document
    • SolrDocument::sort — Sorts the fields in the document
    • SolrDocument::toArray — Returns an array representation of the document
    • SolrDocument::unserialize — Custom serialization of SolrDocument objects
    • SolrDocument::__unset — Removes a field from the document
    • SolrDocument::valid — Checks if the current position internally is still valid
  • SolrDocumentField — The SolrDocumentField class
    • SolrDocumentField::__construct — Конструктор
    • SolrDocumentField::__destruct — Деструктор
  • SolrObject — Класс SolrObject
    • SolrObject::__construct — Creates Solr object
    • SolrObject::__destruct — Destructor
    • SolrObject::getPropertyNames — Returns an array of all the names of the properties
    • SolrObject::offsetExists — Checks if the property exists
    • SolrObject::offsetGet — Used to retrieve a property
    • SolrObject::offsetSet — Sets the value for a property
    • SolrObject::offsetUnset — Unsets the value for the property
  • SolrClient — The SolrClient class
    • SolrClient::addDocument — Adds a document to the index
    • SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index
    • SolrClient::commit — Finalizes all add/deletes made to the index
    • SolrClient::__construct — Constructor for the SolrClient object
    • SolrClient::deleteById — Delete by Id
    • SolrClient::deleteByIds — Deletes by Ids
    • SolrClient::deleteByQueries — Removes all documents matching any of the queries
    • SolrClient::deleteByQuery — Deletes all documents matching the given query
    • SolrClient::__destruct — Destructor for SolrClient
    • SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG).
    • SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).
    • SolrClient::getDebug — Returns the debug data for the last connection attempt
    • SolrClient::getOptions — Returns the client options set internally
    • SolrClient::optimize — Defragments the index
    • SolrClient::ping — Checks if Solr server is still up
    • SolrClient::query — Sends a query to the server
    • SolrClient::request — Sends a raw update request
    • SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit
    • SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr
    • SolrClient::setServlet — Changes the specified servlet type to a new value
    • SolrClient::system — Retrieve Solr Server information
    • SolrClient::threads — Checks the threads status
  • SolrResponse — The SolrResponse class
    • SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data
    • SolrResponse::getHttpStatus — Returns the HTTP status of the response
    • SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status
    • SolrResponse::getRawRequest — Returns the raw request sent to the Solr server
    • SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server
    • SolrResponse::getRawResponse — Returns the raw response from the server
    • SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server
    • SolrResponse::getRequestUrl — Returns the full URL the request was sent to
    • SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server
    • SolrResponse::setParseMode — Sets the parse mode
    • SolrResponse::success — Was the request a success
  • SolrQueryResponse — The SolrQueryResponse class
    • SolrQueryResponse::__construct — Конструктор
    • SolrQueryResponse::__destruct — Деструктор
  • SolrUpdateResponse — The SolrUpdateResponse class
    • SolrUpdateResponse::__construct — Конструктор
    • SolrUpdateResponse::__destruct — Деструктор
  • SolrPingResponse — The SolrPingResponse class
    • SolrPingResponse::__construct — Constructor
    • SolrPingResponse::__destruct — Destructor
    • SolrPingResponse::getResponse — Returns the response from the server
  • SolrGenericResponse — The SolrGenericResponse class
    • SolrGenericResponse::__construct — Конструктор
    • SolrGenericResponse::__destruct — Деструктор
  • SolrParams — Класс SolrParams
    • SolrParams::add — This is an alias for SolrParams::addParam
    • SolrParams::addParam — Adds a parameter to the object
    • SolrParams::get — This is an alias for SolrParams::getParam
    • SolrParams::getParam — Returns a parameter value
    • SolrParams::getParams — Returns an array of non URL-encoded parameters
    • SolrParams::getPreparedParams — Returns an array of URL-encoded parameters
    • SolrParams::serialize — Used for custom serialization
    • SolrParams::set — An alias of SolrParams::setParam
    • SolrParams::setParam — Sets the parameter to the specified value
    • SolrParams::toString — Returns all the name-value pair parameters in the object
    • SolrParams::unserialize — Used for custom serialization
  • SolrModifiableParams — Класс SolrModifiableParams
    • SolrModifiableParams::__construct — Конструктор
    • SolrModifiableParams::__destruct — Деструктор
  • SolrQuery — The SolrQuery class
    • SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group.
    • SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter).
    • SolrQuery::addFacetDateField — Maps to facet.date
    • SolrQuery::addFacetDateOther — Adds another facet.date.other parameter
    • SolrQuery::addFacetField — Adds another field to the facet
    • SolrQuery::addFacetQuery — Adds a facet query
    • SolrQuery::addField — Specifies which fields to return in the result
    • SolrQuery::addFilterQuery — Specifies a filter query
    • SolrQuery::addGroupField — Add a field to be used to group results.
    • SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter).
    • SolrQuery::addGroupQuery — Allows grouping of documents that match the given query.
    • SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter).
    • SolrQuery::addHighlightField — Maps to hl.fl
    • SolrQuery::addMltField — Sets a field to use for similarity
    • SolrQuery::addMltQueryField — Maps to mlt.qf
    • SolrQuery::addSortField — Used to control how the results should be sorted
    • SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet
    • SolrQuery::addStatsField — Maps to stats.field parameter
    • SolrQuery::collapse — Collapses the result set to a single document per group
    • SolrQuery::__construct — Constructor
    • SolrQuery::__destruct — Destructor
    • SolrQuery::getExpand — Returns true if group expanding is enabled
    • SolrQuery::getExpandFilterQueries — Returns the expand filter queries
    • SolrQuery::getExpandQuery — Returns the expand query expand.q parameter
    • SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)
    • SolrQuery::getExpandSortFields — Returns an array of fields
    • SolrQuery::getFacet — Returns the value of the facet parameter
    • SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter
    • SolrQuery::getFacetDateFields — Returns all the facet.date fields
    • SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter
    • SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter
    • SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter
    • SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field
    • SolrQuery::getFacetFields — Returns all the facet fields
    • SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields
    • SolrQuery::getFacetMethod — Returns the value of the facet.method parameter
    • SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response
    • SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter
    • SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination
    • SolrQuery::getFacetPrefix — Returns the facet prefix
    • SolrQuery::getFacetQueries — Returns all the facet queries
    • SolrQuery::getFacetSort — Returns the facet sort type
    • SolrQuery::getFields — Returns the list of fields that will be returned in the response
    • SolrQuery::getFilterQueries — Returns an array of filter queries
    • SolrQuery::getGroup — Returns true if grouping is enabled
    • SolrQuery::getGroupCachePercent — Returns group cache percent value
    • SolrQuery::getGroupFacet — Returns the group.facet parameter value
    • SolrQuery::getGroupFields — Returns group fields (group.field parameter values)
    • SolrQuery::getGroupFormat — Returns the group.format value
    • SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)
    • SolrQuery::getGroupLimit — Returns the group.limit value
    • SolrQuery::getGroupMain — Returns the group.main value
    • SolrQuery::getGroupNGroups — Returns the group.ngroups value
    • SolrQuery::getGroupOffset — Returns the group.offset value
    • SolrQuery::getGroupQueries — Returns all the group.query parameter values
    • SolrQuery::getGroupSortFields — Returns the group.sort value
    • SolrQuery::getGroupTruncate — Returns the group.truncate value
    • SolrQuery::getHighlight — Returns the state of the hl parameter
    • SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default
    • SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for
    • SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output
    • SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text
    • SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting
    • SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
    • SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return
    • SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets
    • SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment
    • SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter
    • SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting
    • SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size
    • SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field
    • SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term
    • SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term
    • SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field
    • SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter
    • SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled
    • SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance
    • SolrQuery::getMltCount — Returns the number of similar documents to return for each result
    • SolrQuery::getMltFields — Returns all the fields to use for similarity
    • SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query
    • SolrQuery::getMltMaxNumTokens — Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support
    • SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored
    • SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
    • SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document
    • SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored
    • SolrQuery::getMltQueryFields — Returns the query fields and their boosts
    • SolrQuery::getQuery — Returns the main query
    • SolrQuery::getRows — Returns the maximum number of documents
    • SolrQuery::getSortFields — Returns all the sort fields
    • SolrQuery::getStart — Returns the offset in the complete result set
    • SolrQuery::getStats — Returns whether or not stats is enabled
    • SolrQuery::getStatsFacets — Returns all the stats facets that were set
    • SolrQuery::getStatsFields — Returns all the statistics fields
    • SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled
    • SolrQuery::getTermsField — Returns the field from which the terms are retrieved
    • SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set
    • SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set
    • SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return
    • SolrQuery::getTermsLowerBound — Returns the term to start at
    • SolrQuery::getTermsMaxCount — Returns the maximum document frequency
    • SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included
    • SolrQuery::getTermsPrefix — Returns the term prefix
    • SolrQuery::getTermsReturnRaw — Whether or not to return raw characters
    • SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted
    • SolrQuery::getTermsUpperBound — Returns the term to stop at
    • SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish
    • SolrQuery::removeExpandFilterQuery — Removes an expand filter query
    • SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter.
    • SolrQuery::removeFacetDateField — Removes one of the facet date fields
    • SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters
    • SolrQuery::removeFacetField — Removes one of the facet.date parameters
    • SolrQuery::removeFacetQuery — Removes one of the facet.query parameters
    • SolrQuery::removeField — Removes a field from the list of fields
    • SolrQuery::removeFilterQuery — Removes a filter query
    • SolrQuery::removeHighlightField — Removes one of the fields used for highlighting
    • SolrQuery::removeMltField — Removes one of the moreLikeThis fields
    • SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields
    • SolrQuery::removeSortField — Removes one of the sort fields
    • SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters
    • SolrQuery::removeStatsField — Removes one of the stats.field parameters
    • SolrQuery::setEchoHandler — Toggles the echoHandler parameter
    • SolrQuery::setEchoParams — Determines what kind of parameters to include in the response
    • SolrQuery::setExpand — Enables/Disables the Expand Component
    • SolrQuery::setExpandQuery — Sets the expand.q parameter
    • SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5
    • SolrQuery::setExplainOther — Sets the explainOther common query parameter
    • SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting
    • SolrQuery::setFacetDateEnd — Maps to facet.date.end
    • SolrQuery::setFacetDateGap — Maps to facet.date.gap
    • SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend
    • SolrQuery::setFacetDateStart — Maps to facet.date.start
    • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count
    • SolrQuery::setFacetLimit — Maps to facet.limit
    • SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field
    • SolrQuery::setFacetMinCount — Maps to facet.mincount
    • SolrQuery::setFacetMissing — Maps to facet.missing
    • SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination
    • SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet
    • SolrQuery::setFacetSort — Determines the ordering of the facet field constraints
    • SolrQuery::setGroup — Enable/Disable result grouping (group parameter)
    • SolrQuery::setGroupCachePercent — Enables caching for result grouping
    • SolrQuery::setGroupFacet — Sets group.facet parameter
    • SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter).
    • SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1.
    • SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
    • SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results.
    • SolrQuery::setGroupOffset — Sets the group.offset parameter.
    • SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query.
    • SolrQuery::setHighlight — Enables or disables highlighting
    • SolrQuery::setHighlightAlternateField — Specifies the backup field to use
    • SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output
    • SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text
    • SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting
    • SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms
    • SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return
    • SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets
    • SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment
    • SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze
    • SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting
    • SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size
    • SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting
    • SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term
    • SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term
    • SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field
    • SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase
    • SolrQuery::setMlt — Enables or disables moreLikeThis
    • SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance
    • SolrQuery::setMltCount — Set the number of similar documents to return for each result
    • SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included
    • SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse
    • SolrQuery::setMltMaxWordLength — Sets the maximum word length
    • SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency
    • SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs
    • SolrQuery::setMltMinWordLength — Sets the minimum word length
    • SolrQuery::setOmitHeader — Exclude the header from the returned results
    • SolrQuery::setQuery — Sets the search query
    • SolrQuery::setRows — Specifies the maximum number of rows to return in the result
    • SolrQuery::setShowDebugInfo — Flag to show debug information
    • SolrQuery::setStart — Specifies the number of rows to skip
    • SolrQuery::setStats — Enables or disables the Stats component
    • SolrQuery::setTerms — Enables or disables the TermsComponent
    • SolrQuery::setTermsField — Sets the name of the field to get the Terms from
    • SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set
    • SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set
    • SolrQuery::setTermsLimit — Sets the maximum number of terms to return
    • SolrQuery::setTermsLowerBound — Specifies the Term to start from
    • SolrQuery::setTermsMaxCount — Sets the maximum document frequency
    • SolrQuery::setTermsMinCount — Sets the minimum document frequency
    • SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix
    • SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term
    • SolrQuery::setTermsSort — Specifies how to sort the returned terms
    • SolrQuery::setTermsUpperBound — Sets the term to stop at
    • SolrQuery::setTimeAllowed — The time allowed for search to finish
  • SolrDisMaxQuery — The SolrDisMaxQuery class
    • SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)
    • SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)
    • SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)
    • SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)
    • SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)
    • SolrDisMaxQuery::__construct — Class Constructor
    • SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)
    • SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)
    • SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)
    • SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)
    • SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)
    • SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)
    • SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)
    • SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter).
    • SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)
    • SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)
    • SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter
    • SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)
    • SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)
    • SolrDisMaxQuery::setQueryPhraseSlop — specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
    • SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)
    • SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)
    • SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)
    • SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)
    • SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser
    • SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax
  • SolrCollapseFunction — The SolrCollapseFunction class
    • SolrCollapseFunction::__construct — Constructor
    • SolrCollapseFunction::getField — Returns the field that is being collapsed on.
    • SolrCollapseFunction::getHint — Returns collapse hint
    • SolrCollapseFunction::getMax — Returns max parameter
    • SolrCollapseFunction::getMin — Returns min parameter
    • SolrCollapseFunction::getNullPolicy — Returns null policy
    • SolrCollapseFunction::getSize — Returns size parameter
    • SolrCollapseFunction::setField — Sets the field to collapse on
    • SolrCollapseFunction::setHint — Sets collapse hint
    • SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query.
    • SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only
    • SolrCollapseFunction::setNullPolicy — Sets the NULL Policy
    • SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only.
    • SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function
  • SolrException — Класс SolrException
    • SolrException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение
  • SolrClientException — The SolrClientException class
    • SolrClientException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение
  • SolrServerException — The SolrServerException class
    • SolrServerException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение
  • SolrIllegalArgumentException — The SolrIllegalArgumentException class
    • SolrIllegalArgumentException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение
  • SolrIllegalOperationException — The SolrIllegalOperationException class
    • SolrIllegalOperationException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение
  • SolrMissingMandatoryParameterException — The SolrMissingMandatoryParameterException class


Введение

Расширение Solr позволяет эффективно взаимодействовать с сервером Apache Solr в PHP.

Расширение Solr - чрезвычайно быстрая, легкая, многофункциональная библиотека, которая позволяет разработчикам PHP эффективно взаимодействовать с экземплярами сервера Solr.

Версии 1.x расширения PECL поддерживают Apache Solr Server 1.3-3.x

Версии 2.x расширения PECL поддерживают Apache Solr Server 4.0+

Есть встроенные инструменты для добавления документов и обновления сервера Solr.

Она также содержит инструменты, которые позволяют создавать сложные запросы к серверу при поиске документов.


Требования

PHP version 5.2.11 or later is required.

The libxml and curl extensions must also be enabled for the Apache Solr extension to be available.

libxml2 2.6.31 or later is required.

libcurl 7.18.0 or later is also required.

The above library versions are required and attempting to hack the code to make it compile is strongly discouraged. It will fail, possibly with errors that could be hard to debug


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/solr.

For help and support, please visit the extension google group. » Apache Solr PHP Extension

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.

Замечание:

The solr module can be compiled in debug mode by passing the --enable-solr-debug flag to configure

When building manually, be sure to include curl and libxml support within the build.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SOLR_MAJOR_VERSION (integer)
SOLR_MINOR_VERSION (integer)
SOLR_PATCH_VERSION (integer)
SOLR_EXTENSION_VERSION (string)


Функции Solr

Содержание

  • 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

Описание

string solr_get_version ( void )

Эта функция возвращает текущую версию расширения в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку в случае успеха, и FALSE в случае ошибки.

Ошибки

Эта функция не вызывает ошибок или исключений.

Примеры

Пример #1 Пример использования solr_get_version()

<?php

$solr_version = solr_get_version();

print $solr_version;

?>

Результатом выполнения данного примера будет что-то подобное:

0.9.6

Смотрите также

  • SolrUtils::getSolrVersion() - Returns the current version of the Solr extension


Примеры

Examples of how to use the Apache Solr extension in PHP

Пример #1 Contents of the BootStrap file

<?php

/* Domain name of the Solr server */
define('SOLR_SERVER_HOSTNAME', 'solr.example.com');

/* Whether or not to run in secure mode */
define('SOLR_SECURE', true);

/* HTTP Port to connection */
define('SOLR_SERVER_PORT', ((SOLR_SECURE) ? 8443 : 8983));

/* HTTP Basic Authentication Username */
define('SOLR_SERVER_USERNAME', 'admin');

/* HTTP Basic Authentication password */
define('SOLR_SERVER_PASSWORD', 'changeit');

/* HTTP connection timeout */
/* This is maximum time in seconds allowed for the http data transfer operation. Default value is 30 seconds */
define('SOLR_SERVER_TIMEOUT', 10);

/* File name to a PEM-formatted private key + private certificate (concatenated in that order) */
define('SOLR_SSL_CERT', 'certs/combo.pem');

/* File name to a PEM-formatted private certificate only */
define('SOLR_SSL_CERT_ONLY', 'certs/solr.crt');

/* File name to a PEM-formatted private key */
define('SOLR_SSL_KEY', 'certs/solr.key');

/* Password for PEM-formatted private key file */
define('SOLR_SSL_KEYPASSWORD', 'StrongAndSecurePassword');

/* Name of file holding one or more CA certificates to verify peer with*/
define('SOLR_SSL_CAINFO', 'certs/cacert.crt');

/* Name of directory holding multiple CA certificates to verify peer with */
define('SOLR_SSL_CAPATH', 'certs/');

?>

Пример #2 Adding a document to the index

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 446
        )

)

Пример #3 Merging one document into another document

<?php

include "bootstrap.php";

$doc = new SolrDocument();

$second_doc = new SolrDocument();

$doc->addField('id', 1123);

$doc->features = "PHP Client Side";
$doc->features = "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat   = 'Information Technology';

$second_doc->addField('cat', 'Lucene Search');

$second_doc->merge($doc, true);

print_r($second_doc->toArray());

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

        )

)

Пример #4 Searching for documents - SolrObject responses

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334456
                        )

                    [1] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => Software
                                    [1] => Lucene
                                )

                            [id] => 334455
                        )

                    [2] => SolrObject Object
                        (
                            [cat] => Array
                                (
                                    [0] => software
                                    [1] => search
                                )

                            [features] => Array
                                (
                                    [0] => Advanced Full-Text Search Capabilities using Lucene
                                    [1] => Optimized for High Volume Web Traffic
                                    [2] => Standards Based Open Interfaces - XML and HTTP
                                    [3] => Comprehensive HTML Administration Interfaces
                                    [4] => Scalability - Efficient Replication to other Solr Search Servers
                                    [5] => Flexible and Adaptable with XML configuration and Schema
                                    [6] => Good unicode support: hello (hello with an accent over the e)
                                )

                            [id] => SOLR1000
                            [timestamp] => 2009-09-04T20:38:55.906
                        )

                )

        )

)

Пример #5 Searching for documents - SolrDocument responses

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$query_response->setParseMode(SolrQueryResponse::PARSE_SOLR_DOC);

$response = $query_response->getResponse();

print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [wt] => xml
                    [rows] => 50
                    [start] => 0
                    [indent] => on
                    [q] => lucene
                    [fl] => cat,features,id,timestamp
                    [version] => 2.2
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 3
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 19740
                        )

                    [1] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25485
                        )

                    [2] => SolrDocument Object
                        (
                            [_hashtable_index:SolrDocument:private] => 25052
                        )

                )

        )

)

Пример #6 Simple TermsComponent example - basic

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

$query->setTermsField('cat');

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [electronics] => 14
                    [Lucene] => 4
                    [Software] => 4
                    [memory] => 3
                    [card] => 2
                    [connector] => 2
                    [drive] => 2
                    [graphics] => 2
                    [hard] => 2
                    [monitor] => 2
                )

        )

)

Пример #7 Simple TermsComponent example - using a prefix

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix = 'c';

$query->setTermsField('cat')->setTermsPrefix($prefix);

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                    [camera] => 1
                    [copier] => 1
                )

        )

)

Пример #8 Simple TermsComponent example - specifying a minimum frequency

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setTerms(true);

/* Return only terms starting with $prefix */
$prefix = 'c';

/* Return only terms with a frequency of 2 or greater */
$min_frequency = 2;

$query->setTermsField('cat')->setTermsPrefix($prefix)->setTermsMinCount($min_frequency);

$updateResponse = $client->query($query);

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 0
        )

    [terms] => SolrObject Object
        (
            [cat] => SolrObject Object
                (
                    [card] => 2
                    [connector] => 2
                )

        )

)

Пример #9 Simple Facet Example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2);

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
            [1] => 3
            [184] => 3
            [2] => 3
            [3200] => 3
            [400] => 3
            [500] => 3
            [ddr] => 3
            [i] => 3
            [ipod] => 3
            [memori] => 3
            [pc] => 3
            [pin] => 3
            [pod] => 3
            [sdram] => 3
            [system] => 3
            [unbuff] => 3
            [canon] => 2
            [corsair] => 2
            [drive] => 2
            [hard] => 2
            [mb] => 2
            [n] => 2
            [power] => 2
            [retail] => 2
            [video] => 2
            [x] => 2
        )

)

Пример #10 Simple Facet Example - with optional field override for mincount

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)

Пример #11 Facet Date Example

<?php

include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetDateField('manufacturedate_dt');

$query->setFacetDateStart('2006-02-13T00:00:00Z');

$query->setFacetDateEnd('2012-02-13T00:00:00Z');

$query->setFacetDateGap('+1YEAR');

$query->setFacetDateHardEnd(1);

$query->addFacetDateOther('before');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_dates;

print_r($facet_data);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [manufacturedate_dt] => SolrObject Object
        (
            [2006-02-13T00:00:00Z] => 9
            [2007-02-13T00:00:00Z] => 0
            [2008-02-13T00:00:00Z] => 0
            [2009-02-13T00:00:00Z] => 0
            [2010-02-13T00:00:00Z] => 0
            [2011-02-13T00:00:00Z] => 0
            [gap] => +1YEAR
            [start] => 2006-02-13T00:00:00Z
            [end] => 2012-02-13T00:00:00Z
            [before] => 2
        )

)

Пример #12 Connecting to SSL-Enabled Server

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'timeout'  => SOLR_SERVER_TIMEOUT,
    'secure'   => SOLR_SECURE,
    'ssl_cert' => SOLR_SSL_CERT_ONLY,
    'ssl_key'  => SOLR_SSL_KEY,
    'ssl_keypassword' => SOLR_SSL_KEYPASSWORD,
    'ssl_cainfo' => SOLR_SSL_CAINFO,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetField('cat')->addFacetField('name')->setFacetMinCount(2)->setFacetMinCount(4, 'name');

$updateResponse = $client->query($query);

$response_array = $updateResponse->getResponse();

$facet_data = $response_array->facet_counts->facet_fields;

print_r($facet_data);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [cat] => SolrObject Object
        (
            [electronics] => 14
            [memory] => 3
            [Lucene] => 2
            [Software] => 2
            [card] => 2
            [connector] => 2
            [drive] => 2
            [graphics] => 2
            [hard] => 2
            [monitor] => 2
            [search] => 2
            [software] => 2
        )

    [name] => SolrObject Object
        (
            [gb] => 6
        )

)

Пример #13 Collapsing a SolrQuery

<?php
include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
        'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$collapseFunction = new SolrCollapseFunction('manu_id_s');

$collapseFunction
->setSize(2)
->setNullPolicy(SolrCollapseFunction::NULLPOLICY_IGNORE);

$query
->collapse($collapseFunction)
->setRows(4);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);
?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [q] => *:*
                    [indent] => on
                    [fq] => {!collapse field=manu_id_s size=2 nullPolicy=ignore}
                    [rows] => 4
                    [version] => 2.2
                    [wt] => xml
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 14
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SP2514N
                            [name] => Array
                                (
                                    [0] => Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133
                                )

                            [manu] => Array
                                (
                                    [0] => Samsung Electronics Co. Ltd.
                                )

                            [manu_id_s] => samsung
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => 7200RPM, 8MB cache, IDE Ultra ATA-133
                                    [1] => NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor
                                )

                            [price] => Array
                                (
                                    [0] => 92
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [store] => Array
                                (
                                    [0] => 35.0752,-97.032
                                )

                            [_version_] => 1510294336412057600
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                    [2] => SolrObject Object
                        (
                            [id] => F8V7067-APL-KIT
                            [name] => Array
                                (
                                    [0] => Belkin Mobile Power Cord for iPod w/ Dock
                                )

                            [manu] => Array
                                (
                                    [0] => Belkin
                                )

                            [manu_id_s] => belkin
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => connector
                                )

                            [features] => Array
                                (
                                    [0] => car power adapter, white
                                )

                            [weight] => Array
                                (
                                    [0] => 4
                                )

                            [price] => Array
                                (
                                    [0] => 19.95
                                )

                            [popularity] => Array
                                (
                                    [0] => 1
                                )

                            [inStock] => Array
                                (
                                    [0] =>
                                )

                            [store] => Array
                                (
                                    [0] => 45.18014,-93.87741
                                )

                            [manufacturedate_dt] => 2005-08-01T16:30:25Z
                            [_version_] => 1510294336458194944
                        )

                    [3] => SolrObject Object
                        (
                            [id] => MA147LL/A
                            [name] => Array
                                (
                                    [0] => Apple 60 GB iPod with Video Playback Black
                                )

                            [manu] => Array
                                (
                                    [0] => Apple Computer Inc.
                                )

                            [manu_id_s] => apple
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => music
                                )

                            [features] => Array
                                (
                                    [0] => iTunes, Podcasts, Audiobooks
                                    [1] => Stores up to 15,000 songs, 25,000 photos, or 150 hours of video
                                    [2] => 2.5-inch, 320x240 color TFT LCD display with LED backlight
                                    [3] => Up to 20 hours of battery life
                                    [4] => Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video
                                    [5] => Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication
                                )

                            [includes] => Array
                                (
                                    [0] => earbud headphones, USB cable
                                )

                            [weight] => Array
                                (
                                    [0] => 5.5
                                )

                            [price] => Array
                                (
                                    [0] => 399
                                )

                            [popularity] => Array
                                (
                                    [0] => 10
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 37.7752,-100.0232
                                )

                            [manufacturedate_dt] => 2005-10-12T08:00:00Z
                            [_version_] => 1510294336562003968
                        )

                )

        )

)

Пример #14 Solr Real Time Get (RTG) example SolrClient::getById()

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getById('GB18030TEST');
print_r($response->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [doc] => SolrObject Object
        (
            [id] => GB18030TEST
            [name] => Array
                (
                    [0] => Test with some GB18030 encoded characters
                )

            [features] => Array
                (
                    [0] => No accents here
                    [1] => ??????
                    [2] => This is a feature (translated)
                    [3] => ?????????
                    [4] => This document is very shiny (translated)
                )

            [price] => Array
                (
                    [0] => 0
                )

            [inStock] => Array
                (
                    [0] => 1
                )

            [_version_] => 1510294336239042560
        )

)


The SolrUtils class

(PECL solr >= 0.9.2)

Введение

Contains utility methods for retrieving the current extension version and preparing query phrases.

Also contains method for escaping query strings and parsing XML responses.

Обзор классов

abstract SolrUtils {
/* Методы */
public static SolrObject digestXmlResponse ( string $xmlresponse [, int $parse_mode = 0 ] )
public static string escapeQueryChars ( string $str )
public static string getSolrVersion ( void )
public static string queryPhrase ( string $str )
}

Содержание

  • SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject
  • SolrUtils::escapeQueryChars — Escapes a lucene query string
  • SolrUtils::getSolrVersion — Returns the current version of the Solr extension
  • SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string


Parses an response XML string into a SolrObject

  • « SolrUtils
  • SolrUtils::escapeQueryChars »
  • PHP Manual
  • SolrUtils
  • Parses an response XML string into a SolrObject

SolrUtils::digestXmlResponse

(PECL solr >= 0.9.2)

SolrUtils::digestXmlResponse — Parses an response XML string into a SolrObject

Описание

public static SolrObject SolrUtils::digestXmlResponse ( string $xmlresponse [, int $parse_mode = 0 ] )

This method parses an response XML string from the Apache Solr server into a SolrObject. It throws a SolrException if there was an error.

Список параметров

xmlresponse

The XML response string from the Solr server.

parse_mode

Use SolrResponse::PARSE_SOLR_OBJ or SolrResponse::PARSE_SOLR_DOC

Возвращаемые значения

Returns the SolrObject representing the XML response.

If the parse_mode parameter is set to SolrResponse::PARSE_SOLR_OBJ Solr documents will be parses as SolrObject instances.

If it is set to SolrResponse::PARSE_SOLR_DOC, they will be parsed as SolrDocument instances.


Escapes a lucene query string

  • « SolrUtils::digestXmlResponse
  • SolrUtils::getSolrVersion »
  • PHP Manual
  • SolrUtils
  • Escapes a lucene query string

SolrUtils::escapeQueryChars

(PECL solr >= 0.9.2)

SolrUtils::escapeQueryChars — Escapes a lucene query string

Описание

public static string SolrUtils::escapeQueryChars ( string $str )

Lucene supports escaping special characters that are part of the query syntax.

The current list special characters are:

+ - && || ! ( ) { } [ ] ^ " ~ * ? : \ /

These characters are part of the query syntax and must be escaped

Список параметров

str

This is the query string to be escaped.

Возвращаемые значения

Returns the escaped string или FALSE в случае возникновения ошибки.


Returns the current version of the Solr extension

  • « SolrUtils::escapeQueryChars
  • SolrUtils::queryPhrase »
  • PHP Manual
  • SolrUtils
  • Returns the current version of the Solr extension

SolrUtils::getSolrVersion

(PECL solr >= 0.9.2)

SolrUtils::getSolrVersion — Returns the current version of the Solr extension

Описание

public static string SolrUtils::getSolrVersion ( void )

Returns the current Solr version.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current version of the Apache Solr extension.


Prepares a phrase from an unescaped lucene string

  • « SolrUtils::getSolrVersion
  • SolrInputDocument »
  • PHP Manual
  • SolrUtils
  • Prepares a phrase from an unescaped lucene string

SolrUtils::queryPhrase

(PECL solr >= 0.9.2)

SolrUtils::queryPhrase — Prepares a phrase from an unescaped lucene string

Описание

public static string SolrUtils::queryPhrase ( string $str )

Prepares a phrase from an unescaped lucene string.

Список параметров

str

The lucene phrase.

Возвращаемые значения

Returns the phrase contained in double quotes.


The SolrInputDocument class

(PECL solr >= 0.9.2)

Введение

This class represents a Solr document that is about to be submitted to the Solr index.

Обзор классов

final SolrInputDocument {
/* Константы */
const integer SORT_DEFAULT = 1 ;
const integer SORT_ASC = 1 ;
const integer SORT_DESC = 2 ;
const integer SORT_FIELD_NAME = 1 ;
const integer SORT_FIELD_VALUE_COUNT = 2 ;
const integer SORT_FIELD_BOOST_VALUE = 4 ;
/* Методы */
public void addChildDocument ( SolrInputDocument $child )
public void addChildDocuments ( array &$docs )
public bool addField ( string $fieldName , string $fieldValue [, float $fieldBoostValue = 0.0 ] )
public bool clear ( void )
public void __clone ( void )
public __construct ( void )
public bool deleteField ( string $fieldName )
public void __destruct ( void )
public bool fieldExists ( string $fieldName )
public float getBoost ( void )
public array getChildDocuments ( void )
public integer getChildDocumentsCount ( void )
public SolrDocumentField getField ( string $fieldName )
public float getFieldBoost ( string $fieldName )
public int getFieldCount ( void )
public array getFieldNames ( void )
public boolean hasChildDocuments ( void )
public bool merge ( SolrInputDocument $sourceDoc [, bool $overwrite = true ] )
public bool reset ( void )
public bool setBoost ( float $documentBoostValue )
public bool setFieldBoost ( string $fieldName , float $fieldBoostValue )
public bool sort ( int $sortOrderBy [, int $sortDirection = SolrInputDocument::SORT_ASC ] )
public array toArray ( void )
}

Предопределенные константы

SolrInputDocument Class Constants

SolrInputDocument::SORT_DEFAULT

Sorts the fields in ascending order.

SolrInputDocument::SORT_ASC

Sorts the fields in ascending order.

SolrInputDocument::SORT_DESC

Sorts the fields in descending order.

SolrInputDocument::SORT_FIELD_NAME

Sorts the fields by name

SolrInputDocument::SORT_FIELD_VALUE_COUNT

Sorts the fields by number of values.

SolrInputDocument::SORT_FIELD_BOOST_VALUE

Sorts the fields by boost value.

Содержание

  • SolrInputDocument::addChildDocument — Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments — Adds an array of child documents
  • SolrInputDocument::addField — Adds a field to the document
  • SolrInputDocument::clear — Resets the input document
  • SolrInputDocument::__clone — Creates a copy of a SolrDocument
  • SolrInputDocument::__construct — Constructor
  • SolrInputDocument::deleteField — Removes a field from the document
  • SolrInputDocument::__destruct — Destructor
  • SolrInputDocument::fieldExists — Checks if a field exists
  • SolrInputDocument::getBoost — Retrieves the current boost value for the document
  • SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount — Returns the number of child documents
  • SolrInputDocument::getField — Retrieves a field by name
  • SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field
  • SolrInputDocument::getFieldCount — Returns the number of fields in the document
  • SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document
  • SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents
  • SolrInputDocument::merge — Merges one input document into another
  • SolrInputDocument::reset — This is an alias of SolrInputDocument::clear
  • SolrInputDocument::setBoost — Sets the boost value for this document
  • SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field
  • SolrInputDocument::sort — Sorts the fields within the document
  • SolrInputDocument::toArray — Returns an array representation of the input document


Adds a child document for block indexing

  • « SolrInputDocument
  • SolrInputDocument::addChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Adds a child document for block indexing

SolrInputDocument::addChildDocument

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocument — Adds a child document for block indexing

Описание

public void SolrInputDocument::addChildDocument ( SolrInputDocument $child )

Adds a child document to construct a document block with nested documents.

Список параметров

child

A SolrInputDocument object.

Ошибки

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

Возвращаемые значения

Примеры

Пример #1 SolrInputDocument::addChildDocument() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_STORE_PATH,
);

$client = new SolrClient($options);

$product = new SolrInputDocument();

$product->addField('id', 'P-BLACK');
$product->addField('cat', 'tshirt');
$product->addField('cat', 'polo');
$product->addField('content_type', 'product');

$small = new SolrInputDocument();
$small->addField('id', 'TS-BLK-S');
$small->addField('content_type', 'sku');
$small->addField('size', 'S');
$small->addField('inventory', 100);

$medium = new SolrInputDocument();
$medium->addField('id', 'TS-BLK-M');
$medium->addField('content_type', 'sku');
$medium->addField('size', 'M');
$medium->addField('inventory', 200);

$large = new SolrInputDocument();
$large->addField('id', 'TS-BLK-L');
$large->addField('content_type', 'sku');
$large->addField('size', 'L');
$large->addField('inventory', 300);

// add child documents
$product->addChildDocument($small);
$product->addChildDocument($medium);
$product->addChildDocument($large);

// add product document block to the index
$updateResponse = $client->addDocument(
        $product,
        true, // overwrite if the document exists
        10000 // commit within 10 seconds
);

print_r($updateResponse->getResponse());

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Смотрите также

  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Adds an array of child documents

  • « SolrInputDocument::addChildDocument
  • SolrInputDocument::addField »
  • PHP Manual
  • SolrInputDocument
  • Adds an array of child documents

SolrInputDocument::addChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::addChildDocuments — Adds an array of child documents

Описание

public void SolrInputDocument::addChildDocuments ( array &$docs )

Adds an array of child documents to the current input document.

Список параметров

docs

An array of SolrInputDocument objects.

Ошибки

Throws SolrIllegalArgumentException on failure.

Throws SolrException on internal failure.

Возвращаемые значения

Примеры

Пример #1 SolrInputDocument::addChildDocuments() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_STORE_PATH,
);

$client = new SolrClient($options);

$product = new SolrInputDocument();

$product->addField('id', 'P-BLACK');
$product->addField('cat', 'tshirt');
$product->addField('cat', 'polo');
$product->addField('content_type', 'product');

$small = new SolrInputDocument();
$small->addField('id', 'TS-BLK-S');
$small->addField('content_type', 'sku');
$small->addField('size', 'S');
$small->addField('inventory', 100);

$medium = new SolrInputDocument();
$medium->addField('id', 'TS-BLK-M');
$medium->addField('content_type', 'sku');
$medium->addField('size', 'M');
$medium->addField('inventory', 200);

$large = new SolrInputDocument();
$large->addField('id', 'TS-BLK-L');
$large->addField('content_type', 'sku');
$large->addField('size', 'L');
$large->addField('inventory', 300);

// add child documents
$skus = [$small, $medium, $large];
$product->addChildDocuments($skus);

// add the product document block to the index
$updateResponse = $client->addDocument(
        $product,
        true, // overwrite if the document exists
        10000 // commit within 10 seconds
);

print_r($updateResponse->getResponse());

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 5
        )
)

Смотрите также

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Adds a field to the document

  • « SolrInputDocument::addChildDocuments
  • SolrInputDocument::clear »
  • PHP Manual
  • SolrInputDocument
  • Adds a field to the document

SolrInputDocument::addField

(PECL solr >= 0.9.2)

SolrInputDocument::addField — Adds a field to the document

Описание

public bool SolrInputDocument::addField ( string $fieldName , string $fieldValue [, float $fieldBoostValue = 0.0 ] )

For multi-value fields, if a valid boost value is specified, the specified value will be multiplied by the current boost value for this field.

Список параметров

fieldName

The name of the field

fieldValue

The value for the field.

fieldBoostValue

The index time boost for the field. Though this cannot be negative, you can still pass values less than 1.0 but they must be greater than zero.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Resets the input document

  • « SolrInputDocument::addField
  • SolrInputDocument::__clone »
  • PHP Manual
  • SolrInputDocument
  • Resets the input document

SolrInputDocument::clear

(PECL solr >= 0.9.2)

SolrInputDocument::clear — Resets the input document

Описание

public bool SolrInputDocument::clear ( void )

Resets the document by dropping all the fields and resets the document boost to zero.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Creates a copy of a SolrDocument

  • « SolrInputDocument::clear
  • SolrInputDocument::__construct »
  • PHP Manual
  • SolrInputDocument
  • Creates a copy of a SolrDocument

SolrInputDocument::__clone

(PECL solr >= 0.9.2)

SolrInputDocument::__clone — Creates a copy of a SolrDocument

Описание

public void SolrInputDocument::__clone ( void )

Should not be called directly. It is used to create a deep copy of a SolrInputDocument.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Creates a new SolrInputDocument instance.


Constructor

  • « SolrInputDocument::__clone
  • SolrInputDocument::deleteField »
  • PHP Manual
  • SolrInputDocument
  • Constructor

SolrInputDocument::__construct

(PECL solr >= 0.9.2)

SolrInputDocument::__construct — Constructor

Описание

public SolrInputDocument::__construct ( void )

Constructor.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None.


Removes a field from the document

  • « SolrInputDocument::__construct
  • SolrInputDocument::__destruct »
  • PHP Manual
  • SolrInputDocument
  • Removes a field from the document

SolrInputDocument::deleteField

(PECL solr >= 0.9.2)

SolrInputDocument::deleteField — Removes a field from the document

Описание

public bool SolrInputDocument::deleteField ( string $fieldName )

Removes a field from the document.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Destructor

  • « SolrInputDocument::deleteField
  • SolrInputDocument::fieldExists »
  • PHP Manual
  • SolrInputDocument
  • Destructor

SolrInputDocument::__destruct

(PECL solr >= 0.9.2)

SolrInputDocument::__destruct — Destructor

Описание

public void SolrInputDocument::__destruct ( void )

Destructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None.


Checks if a field exists

  • « SolrInputDocument::__destruct
  • SolrInputDocument::getBoost »
  • PHP Manual
  • SolrInputDocument
  • Checks if a field exists

SolrInputDocument::fieldExists

(PECL solr >= 0.9.2)

SolrInputDocument::fieldExists — Checks if a field exists

Описание

public bool SolrInputDocument::fieldExists ( string $fieldName )

Checks if a field exists

Список параметров

fieldName

Name of the field.

Возвращаемые значения

Returns TRUE if the field was found and FALSE if it was not found.


Retrieves the current boost value for the document

  • « SolrInputDocument::fieldExists
  • SolrInputDocument::getChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Retrieves the current boost value for the document

SolrInputDocument::getBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getBoost — Retrieves the current boost value for the document

Описание

public float SolrInputDocument::getBoost ( void )

Retrieves the current boost value for the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the boost value on success and FALSE on failure.


Returns an array of child documents (SolrInputDocument)

  • « SolrInputDocument::getBoost
  • SolrInputDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrInputDocument
  • Returns an array of child documents (SolrInputDocument)

SolrInputDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocuments — Returns an array of child documents (SolrInputDocument)

Описание

public array SolrInputDocument::getChildDocuments ( void )

Returns an array of child documents (SolrInputDocument)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Returns the number of child documents

  • « SolrInputDocument::getChildDocuments
  • SolrInputDocument::getField »
  • PHP Manual
  • SolrInputDocument
  • Returns the number of child documents

SolrInputDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrInputDocument::getChildDocumentsCount — Returns the number of child documents

Описание

public integer SolrInputDocument::getChildDocumentsCount ( void )

Returns the number of child documents

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::hasChildDocuments() - Returns true if the document has any child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)


Retrieves a field by name

  • « SolrInputDocument::getChildDocumentsCount
  • SolrInputDocument::getFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Retrieves a field by name

SolrInputDocument::getField

(PECL solr >= 0.9.2)

SolrInputDocument::getField — Retrieves a field by name

Описание

public SolrDocumentField SolrInputDocument::getField ( string $fieldName )

Retrieves a field in the document.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Returns a SolrDocumentField object on success and FALSE on failure.


Retrieves the boost value for a particular field

  • « SolrInputDocument::getField
  • SolrInputDocument::getFieldCount »
  • PHP Manual
  • SolrInputDocument
  • Retrieves the boost value for a particular field

SolrInputDocument::getFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldBoost — Retrieves the boost value for a particular field

Описание

public float SolrInputDocument::getFieldBoost ( string $fieldName )

Retrieves the boost value for a particular field.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Returns the boost value for the field or FALSE if there was an error.


Returns the number of fields in the document

  • « SolrInputDocument::getFieldBoost
  • SolrInputDocument::getFieldNames »
  • PHP Manual
  • SolrInputDocument
  • Returns the number of fields in the document

SolrInputDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldCount — Returns the number of fields in the document

Описание

public int SolrInputDocument::getFieldCount ( void )

Returns the number of fields in the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success или FALSE в случае возникновения ошибки.


Returns an array containing all the fields in the document

  • « SolrInputDocument::getFieldCount
  • SolrInputDocument::hasChildDocuments »
  • PHP Manual
  • SolrInputDocument
  • Returns an array containing all the fields in the document

SolrInputDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrInputDocument::getFieldNames — Returns an array containing all the fields in the document

Описание

public array SolrInputDocument::getFieldNames ( void )

Returns an array containing all the fields in the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and FALSE on failure.


Returns true if the document has any child documents

  • « SolrInputDocument::getFieldNames
  • SolrInputDocument::merge »
  • PHP Manual
  • SolrInputDocument
  • Returns true if the document has any child documents

SolrInputDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrInputDocument::hasChildDocuments — Returns true if the document has any child documents

Описание

public boolean SolrInputDocument::hasChildDocuments ( void )

Checks whether the document has any child documents

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrInputDocument::addChildDocument() - Adds a child document for block indexing
  • SolrInputDocument::addChildDocuments() - Adds an array of child documents
  • SolrInputDocument::getChildDocuments() - Returns an array of child documents (SolrInputDocument)
  • SolrInputDocument::getChildDocumentsCount() - Returns the number of child documents


Merges one input document into another

  • « SolrInputDocument::hasChildDocuments
  • SolrInputDocument::reset »
  • PHP Manual
  • SolrInputDocument
  • Merges one input document into another

SolrInputDocument::merge

(PECL solr >= 0.9.2)

SolrInputDocument::merge — Merges one input document into another

Описание

public bool SolrInputDocument::merge ( SolrInputDocument $sourceDoc [, bool $overwrite = true ] )

Merges one input document into another.

Список параметров

sourceDoc

The source document.

overwrite

If this is TRUE it will replace matching fields in the destination document.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. In the future, this will be modified to return the number of fields in the new document.


This is an alias of SolrInputDocument::clear

  • « SolrInputDocument::merge
  • SolrInputDocument::setBoost »
  • PHP Manual
  • SolrInputDocument
  • This is an alias of SolrInputDocument::clear

SolrInputDocument::reset

(PECL solr >= 0.9.2)

SolrInputDocument::reset — This is an alias of SolrInputDocument::clear

Описание

public bool SolrInputDocument::reset ( void )

This is an alias of SolrInputDocument::clear

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets the boost value for this document

  • « SolrInputDocument::reset
  • SolrInputDocument::setFieldBoost »
  • PHP Manual
  • SolrInputDocument
  • Sets the boost value for this document

SolrInputDocument::setBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setBoost — Sets the boost value for this document

Описание

public bool SolrInputDocument::setBoost ( float $documentBoostValue )

Sets the boost value for this document.

Список параметров

documentBoostValue

The index-time boost value for this document.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sets the index-time boost value for a field

  • « SolrInputDocument::setBoost
  • SolrInputDocument::sort »
  • PHP Manual
  • SolrInputDocument
  • Sets the index-time boost value for a field

SolrInputDocument::setFieldBoost

(PECL solr >= 0.9.2)

SolrInputDocument::setFieldBoost — Sets the index-time boost value for a field

Описание

public bool SolrInputDocument::setFieldBoost ( string $fieldName , float $fieldBoostValue )

Sets the index-time boost value for a field. This replaces the current boost value for this field.

Список параметров

fieldName

The name of the field.

fieldBoostValue

The index time boost value.


Sorts the fields within the document

  • « SolrInputDocument::setFieldBoost
  • SolrInputDocument::toArray »
  • PHP Manual
  • SolrInputDocument
  • Sorts the fields within the document

SolrInputDocument::sort

(PECL solr >= 0.9.2)

SolrInputDocument::sort — Sorts the fields within the document

Описание

public bool SolrInputDocument::sort ( int $sortOrderBy [, int $sortDirection = SolrInputDocument::SORT_ASC ] )

The fields are rearranged according to the specified criteria and sort direction

   Fields can be sorted by boost values, field names and number of values.

   The $order_by parameter must be one of :

   * SolrInputDocument::SORT_FIELD_NAME
   * SolrInputDocument::SORT_FIELD_BOOST_VALUE
   * SolrInputDocument::SORT_FIELD_VALUE_COUNT

   The sort direction can be one of :

   * SolrInputDocument::SORT_DEFAULT
   * SolrInputDocument::SORT_ASC
   * SolrInputDocument::SORT_DESC

Список параметров

sortOrderBy

The sort criteria

sortDirection

The sort direction

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Returns an array representation of the input document

  • « SolrInputDocument::sort
  • SolrDocument »
  • PHP Manual
  • SolrInputDocument
  • Returns an array representation of the input document

SolrInputDocument::toArray

(PECL solr >= 0.9.2)

SolrInputDocument::toArray — Returns an array representation of the input document

Описание

public array SolrInputDocument::toArray ( void )

Returns an array representation of the input document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array containing the fields. It returns FALSE on failure.


The SolrDocument class

(PECL solr >= 0.9.2)

Введение

Represents a Solr document retrieved from a query response.

Обзор классов

final SolrDocument implements ArrayAccess , Iterator , Serializable {
/* Константы */
const integer SORT_DEFAULT = 1 ;
const integer SORT_ASC = 1 ;
const integer SORT_DESC = 2 ;
const integer SORT_FIELD_NAME = 1 ;
const integer SORT_FIELD_VALUE_COUNT = 2 ;
const integer SORT_FIELD_BOOST_VALUE = 4 ;
/* Методы */
public bool addField ( string $fieldName , string $fieldValue )
public bool clear ( void )
public void __clone ( void )
public __construct ( void )
public SolrDocumentField current ( void )
public bool deleteField ( string $fieldName )
public void __destruct ( void )
public bool fieldExists ( string $fieldName )
public SolrDocumentField __get ( string $fieldName )
public array getChildDocuments ( void )
public integer getChildDocumentsCount ( void )
public SolrDocumentField getField ( string $fieldName )
public int getFieldCount ( void )
public array getFieldNames ( void )
public SolrInputDocument getInputDocument ( void )
public bool hasChildDocuments ( void )
public bool __isset ( string $fieldName )
public string key ( void )
public bool merge ( SolrDocument $sourceDoc [, bool $overwrite = true ] )
public void next ( void )
public bool offsetExists ( string $fieldName )
public SolrDocumentField offsetGet ( string $fieldName )
public void offsetSet ( string $fieldName , string $fieldValue )
public void offsetUnset ( string $fieldName )
public bool reset ( void )
public void rewind ( void )
public string serialize ( void )
public bool __set ( string $fieldName , string $fieldValue )
public bool sort ( int $sortOrderBy [, int $sortDirection = SolrDocument::SORT_ASC ] )
public array toArray ( void )
public void unserialize ( string $serialized )
public bool __unset ( string $fieldName )
public bool valid ( void )
}

Предопределенные константы

SolrDocument::SORT_DEFAULT

Default mode for sorting fields within the document.

SolrDocument::SORT_ASC

Sorts the fields in ascending order

SolrDocument::SORT_DESC

Sorts the fields in descending order

SolrDocument::SORT_FIELD_NAME

Sorts the fields by field name.

SolrDocument::SORT_FIELD_VALUE_COUNT

Sorts the fields by number of values in each field.

SolrDocument::SORT_FIELD_BOOST_VALUE

Sorts the fields by thier boost values.

Содержание

  • SolrDocument::addField — Adds a field to the document
  • SolrDocument::clear — Drops all the fields in the document
  • SolrDocument::__clone — Creates a copy of a SolrDocument object
  • SolrDocument::__construct — Constructor
  • SolrDocument::current — Retrieves the current field
  • SolrDocument::deleteField — Removes a field from the document
  • SolrDocument::__destruct — Destructor
  • SolrDocument::fieldExists — Checks if a field exists in the document
  • SolrDocument::__get — Access the field as a property
  • SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)
  • SolrDocument::getChildDocumentsCount — Returns the number of child documents
  • SolrDocument::getField — Retrieves a field by name
  • SolrDocument::getFieldCount — Returns the number of fields in this document
  • SolrDocument::getFieldNames — Returns an array of fields names in the document
  • SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object
  • SolrDocument::hasChildDocuments — Checks whether the document has any child documents
  • SolrDocument::__isset — Checks if a field exists
  • SolrDocument::key — Retrieves the current key
  • SolrDocument::merge — Merges source to the current SolrDocument
  • SolrDocument::next — Moves the internal pointer to the next field
  • SolrDocument::offsetExists — Checks if a particular field exists
  • SolrDocument::offsetGet — Retrieves a field
  • SolrDocument::offsetSet — Adds a field to the document
  • SolrDocument::offsetUnset — Removes a field
  • SolrDocument::reset — This is an alias to SolrDocument::clear()
  • SolrDocument::rewind — Resets the internal pointer to the beginning
  • SolrDocument::serialize — Used for custom serialization
  • SolrDocument::__set — Adds another field to the document
  • SolrDocument::sort — Sorts the fields in the document
  • SolrDocument::toArray — Returns an array representation of the document
  • SolrDocument::unserialize — Custom serialization of SolrDocument objects
  • SolrDocument::__unset — Removes a field from the document
  • SolrDocument::valid — Checks if the current position internally is still valid


Adds a field to the document

  • « SolrDocument
  • SolrDocument::clear »
  • PHP Manual
  • SolrDocument
  • Adds a field to the document

SolrDocument::addField

(PECL solr >= 0.9.2)

SolrDocument::addField — Adds a field to the document

Описание

public bool SolrDocument::addField ( string $fieldName , string $fieldValue )

This method adds a field to the SolrDocument instance.

Список параметров

fieldName

The name of the field

fieldValue

The value of the field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Drops all the fields in the document

  • « SolrDocument::addField
  • SolrDocument::__clone »
  • PHP Manual
  • SolrDocument
  • Drops all the fields in the document

SolrDocument::clear

(PECL solr >= 0.9.2)

SolrDocument::clear — Drops all the fields in the document

Описание

public bool SolrDocument::clear ( void )

Resets the current object. Discards all the fields and resets the document boost to zero.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Creates a copy of a SolrDocument object

  • « SolrDocument::clear
  • SolrDocument::__construct »
  • PHP Manual
  • SolrDocument
  • Creates a copy of a SolrDocument object

SolrDocument::__clone

(PECL solr >= 0.9.2)

SolrDocument::__clone — Creates a copy of a SolrDocument object

Описание

public void SolrDocument::__clone ( void )

Creates a copy of a SolrDocument object. Not to be called directly.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None.


Constructor

  • « SolrDocument::__clone
  • SolrDocument::current »
  • PHP Manual
  • SolrDocument
  • Constructor

SolrDocument::__construct

(PECL solr >= 0.9.2)

SolrDocument::__construct — Constructor

Описание

public SolrDocument::__construct ( void )

Constructor for SolrDocument

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Retrieves the current field

  • « SolrDocument::__construct
  • SolrDocument::deleteField »
  • PHP Manual
  • SolrDocument
  • Retrieves the current field

SolrDocument::current

(PECL solr >= 0.9.2)

SolrDocument::current — Retrieves the current field

Описание

public SolrDocumentField SolrDocument::current ( void )

Retrieves the current field

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the field


Removes a field from the document

  • « SolrDocument::current
  • SolrDocument::__destruct »
  • PHP Manual
  • SolrDocument
  • Removes a field from the document

SolrDocument::deleteField

(PECL solr >= 0.9.2)

SolrDocument::deleteField — Removes a field from the document

Описание

public bool SolrDocument::deleteField ( string $fieldName )

Removes a field from the document.

Список параметров

fieldName

Name of the field

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Destructor

  • « SolrDocument::deleteField
  • SolrDocument::fieldExists »
  • PHP Manual
  • SolrDocument
  • Destructor

SolrDocument::__destruct

(PECL solr >= 0.9.2)

SolrDocument::__destruct — Destructor

Описание

public void SolrDocument::__destruct ( void )

Destructor for SolrDocument.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Checks if a field exists in the document

  • « SolrDocument::__destruct
  • SolrDocument::__get »
  • PHP Manual
  • SolrDocument
  • Checks if a field exists in the document

SolrDocument::fieldExists

(PECL solr >= 0.9.2)

SolrDocument::fieldExists — Checks if a field exists in the document

Описание

public bool SolrDocument::fieldExists ( string $fieldName )

Checks if the requested field as a valid fieldname in the document.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Returns TRUE if the field is present and FALSE if it does not.


Access the field as a property

  • « SolrDocument::fieldExists
  • SolrDocument::getChildDocuments »
  • PHP Manual
  • SolrDocument
  • Access the field as a property

SolrDocument::__get

(PECL solr >= 0.9.2)

SolrDocument::__get — Access the field as a property

Описание

public SolrDocumentField SolrDocument::__get ( string $fieldName )

Magic method for accessing the field as a property.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Returns a SolrDocumentField instance.


Returns an array of child documents (SolrDocument)

  • « SolrDocument::__get
  • SolrDocument::getChildDocumentsCount »
  • PHP Manual
  • SolrDocument
  • Returns an array of child documents (SolrDocument)

SolrDocument::getChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::getChildDocuments — Returns an array of child documents (SolrDocument)

Описание

public array SolrDocument::getChildDocuments ( void )

Returns an array of child documents (SolrDocument)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrDocument::hasChildDocuments() - Checks whether the document has any child documents
  • SolrDocument::getChildDocumentsCount() - Returns the number of child documents


Returns the number of child documents

  • « SolrDocument::getChildDocuments
  • SolrDocument::getField »
  • PHP Manual
  • SolrDocument
  • Returns the number of child documents

SolrDocument::getChildDocumentsCount

(PECL solr >= 2.3.0)

SolrDocument::getChildDocumentsCount — Returns the number of child documents

Описание

public integer SolrDocument::getChildDocumentsCount ( void )

Returns the number of child documents

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrDocument::hasChildDocuments() - Checks whether the document has any child documents
  • SolrDocument::getChildDocuments() - Returns an array of child documents (SolrDocument)


Retrieves a field by name

  • « SolrDocument::getChildDocumentsCount
  • SolrDocument::getFieldCount »
  • PHP Manual
  • SolrDocument
  • Retrieves a field by name

SolrDocument::getField

(PECL solr >= 0.9.2)

SolrDocument::getField — Retrieves a field by name

Описание

public SolrDocumentField SolrDocument::getField ( string $fieldName )

Retrieves a field by name.

Список параметров

fieldName

Name of the field.

Возвращаемые значения

Returns a SolrDocumentField on success and FALSE on failure.


Returns the number of fields in this document

  • « SolrDocument::getField
  • SolrDocument::getFieldNames »
  • PHP Manual
  • SolrDocument
  • Returns the number of fields in this document

SolrDocument::getFieldCount

(PECL solr >= 0.9.2)

SolrDocument::getFieldCount — Returns the number of fields in this document

Описание

public int SolrDocument::getFieldCount ( void )

Returns the number of fields in this document. Multi-value fields are only counted once.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and FALSE on failure.


Returns an array of fields names in the document

  • « SolrDocument::getFieldCount
  • SolrDocument::getInputDocument »
  • PHP Manual
  • SolrDocument
  • Returns an array of fields names in the document

SolrDocument::getFieldNames

(PECL solr >= 0.9.2)

SolrDocument::getFieldNames — Returns an array of fields names in the document

Описание

public array SolrDocument::getFieldNames ( void )

Returns an array of fields names in the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array containing the names of the fields in this document.


Returns a SolrInputDocument equivalent of the object

  • « SolrDocument::getFieldNames
  • SolrDocument::hasChildDocuments »
  • PHP Manual
  • SolrDocument
  • Returns a SolrInputDocument equivalent of the object

SolrDocument::getInputDocument

(PECL solr >= 0.9.2)

SolrDocument::getInputDocument — Returns a SolrInputDocument equivalent of the object

Описание

public SolrInputDocument SolrDocument::getInputDocument ( void )

Returns a SolrInputDocument equivalent of the object. This is useful if one wishes to resubmit/update a document retrieved from a query.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrInputDocument on success and NULL on failure.


Checks whether the document has any child documents

  • « SolrDocument::getInputDocument
  • SolrDocument::__isset »
  • PHP Manual
  • SolrDocument
  • Checks whether the document has any child documents

SolrDocument::hasChildDocuments

(PECL solr >= 2.3.0)

SolrDocument::hasChildDocuments — Checks whether the document has any child documents

Описание

public bool SolrDocument::hasChildDocuments ( void )

Checks whether the document has any child documents

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrDocument::getChildDocuments() - Returns an array of child documents (SolrDocument)
  • SolrDocument::getChildDocumentsCount() - Returns the number of child documents


Checks if a field exists

  • « SolrDocument::hasChildDocuments
  • SolrDocument::key »
  • PHP Manual
  • SolrDocument
  • Checks if a field exists

SolrDocument::__isset

(PECL solr >= 0.9.2)

SolrDocument::__isset — Checks if a field exists

Описание

public bool SolrDocument::__isset ( string $fieldName )

Checks if a field exists

Список параметров

fieldName

Name of the field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Retrieves the current key

  • « SolrDocument::__isset
  • SolrDocument::merge »
  • PHP Manual
  • SolrDocument
  • Retrieves the current key

SolrDocument::key

(PECL solr >= 0.9.2)

SolrDocument::key — Retrieves the current key

Описание

public string SolrDocument::key ( void )

Retrieves the current key.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the current key.


Merges source to the current SolrDocument

  • « SolrDocument::key
  • SolrDocument::next »
  • PHP Manual
  • SolrDocument
  • Merges source to the current SolrDocument

SolrDocument::merge

(PECL solr >= 0.9.2)

SolrDocument::merge — Merges source to the current SolrDocument

Описание

public bool SolrDocument::merge ( SolrDocument $sourceDoc [, bool $overwrite = true ] )

Merges source to the current SolrDocument.

Список параметров

sourceDoc

The source document.

overwrite

If this is TRUE then fields with the same name in the destination document will be overwritten.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Moves the internal pointer to the next field

  • « SolrDocument::merge
  • SolrDocument::offsetExists »
  • PHP Manual
  • SolrDocument
  • Moves the internal pointer to the next field

SolrDocument::next

(PECL solr >= 0.9.2)

SolrDocument::next — Moves the internal pointer to the next field

Описание

public void SolrDocument::next ( void )

Moves the internal pointer to the next field.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method has no return value.


Checks if a particular field exists

  • « SolrDocument::next
  • SolrDocument::offsetGet »
  • PHP Manual
  • SolrDocument
  • Checks if a particular field exists

SolrDocument::offsetExists

(PECL solr >= 0.9.2)

SolrDocument::offsetExists — Checks if a particular field exists

Описание

public bool SolrDocument::offsetExists ( string $fieldName )

Checks if a particular field exists. This is used when the object is treated as an array.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Retrieves a field

  • « SolrDocument::offsetExists
  • SolrDocument::offsetSet »
  • PHP Manual
  • SolrDocument
  • Retrieves a field

SolrDocument::offsetGet

(PECL solr >= 0.9.2)

SolrDocument::offsetGet — Retrieves a field

Описание

public SolrDocumentField SolrDocument::offsetGet ( string $fieldName )

This is used to retrieve the field when the object is treated as an array.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Returns a SolrDocumentField object.


Adds a field to the document

  • « SolrDocument::offsetGet
  • SolrDocument::offsetUnset »
  • PHP Manual
  • SolrDocument
  • Adds a field to the document

SolrDocument::offsetSet

(PECL solr >= 0.9.2)

SolrDocument::offsetSet — Adds a field to the document

Описание

public void SolrDocument::offsetSet ( string $fieldName , string $fieldValue )

Used when the object is treated as an array to add a field to the document.

Список параметров

fieldName

The name of the field.

fieldValue

The value for this field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Removes a field

  • « SolrDocument::offsetSet
  • SolrDocument::reset »
  • PHP Manual
  • SolrDocument
  • Removes a field

SolrDocument::offsetUnset

(PECL solr >= 0.9.2)

SolrDocument::offsetUnset — Removes a field

Описание

public void SolrDocument::offsetUnset ( string $fieldName )

Removes a field from the document.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

No return value.


This is an alias to SolrDocument::clear()

  • « SolrDocument::offsetUnset
  • SolrDocument::rewind »
  • PHP Manual
  • SolrDocument
  • This is an alias to SolrDocument::clear()

SolrDocument::reset

(PECL solr >= 0.9.2)

SolrDocument::reset — This is an alias to SolrDocument::clear()

Описание

public bool SolrDocument::reset ( void )

This is an alias to SolrDocument::clear()

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Resets the internal pointer to the beginning

  • « SolrDocument::reset
  • SolrDocument::serialize »
  • PHP Manual
  • SolrDocument
  • Resets the internal pointer to the beginning

SolrDocument::rewind

(PECL solr >= 0.9.2)

SolrDocument::rewind — Resets the internal pointer to the beginning

Описание

public void SolrDocument::rewind ( void )

Resets the internal pointer to the beginning.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

This method has no return value.


Used for custom serialization

  • « SolrDocument::rewind
  • SolrDocument::__set »
  • PHP Manual
  • SolrDocument
  • Used for custom serialization

SolrDocument::serialize

(PECL solr >= 0.9.2)

SolrDocument::serialize — Used for custom serialization

Описание

public string SolrDocument::serialize ( void )

Used for custom serialization.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string representing the serialized Solr document.


Adds another field to the document

  • « SolrDocument::serialize
  • SolrDocument::sort »
  • PHP Manual
  • SolrDocument
  • Adds another field to the document

SolrDocument::__set

(PECL solr >= 0.9.2)

SolrDocument::__set — Adds another field to the document

Описание

public bool SolrDocument::__set ( string $fieldName , string $fieldValue )

Adds another field to the document. Used to set the fields as new properties.

Список параметров

fieldName

Name of the field.

fieldValue

Field value.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Sorts the fields in the document

  • « SolrDocument::__set
  • SolrDocument::toArray »
  • PHP Manual
  • SolrDocument
  • Sorts the fields in the document

SolrDocument::sort

(PECL solr >= 0.9.2)

SolrDocument::sort — Sorts the fields in the document

Описание

public bool SolrDocument::sort ( int $sortOrderBy [, int $sortDirection = SolrDocument::SORT_ASC ] )

The fields are rearranged according to the specified criteria and sort direction

   Fields can be sorted by boost values, field names and number of values.

   The sortOrderBy parameter must be one of :

   * SolrDocument::SORT_FIELD_NAME
   * SolrDocument::SORT_FIELD_BOOST_VALUE
   * SolrDocument::SORT_FIELD_VALUE_COUNT

   The sortDirection can be one of :

   * SolrDocument::SORT_DEFAULT
   * SolrDocument::SORT_ASC
   * SolrDocument::SORT_DESC

   The default way is to sort in ascending order.

Список параметров

sortOrderBy

The sort criteria.

sortDirection

The sort direction.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Returns an array representation of the document

  • « SolrDocument::sort
  • SolrDocument::unserialize »
  • PHP Manual
  • SolrDocument
  • Returns an array representation of the document

SolrDocument::toArray

(PECL solr >= 0.9.2)

SolrDocument::toArray — Returns an array representation of the document

Описание

public array SolrDocument::toArray ( void )

Returns an array representation of the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array representation of the document.

Примеры

Пример #1 SolrDocument::toArray() example

<?php

$doc = new SolrDocument();

$doc->addField('id', 1123);

$doc->features = "PHP Client Side";
$doc->features = "Fast development cycles";

$doc['cat'] = 'Software';
$doc['cat'] = 'Custom Search';
$doc->cat   = 'Information Technology';

print_r($doc->toArray());

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [document_boost] => 0
    [field_count] => 3
    [fields] => Array
        (
            [0] => SolrDocumentField Object
                (
                    [name] => id
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => 1123
                        )

                )

            [1] => SolrDocumentField Object
                (
                    [name] => features
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => PHP Client Side
                            [1] => Fast development cycles
                        )

                )

            [2] => SolrDocumentField Object
                (
                    [name] => cat
                    [boost] => 0
                    [values] => Array
                        (
                            [0] => Software
                            [1] => Custom Search
                            [2] => Information Technology
                        )

                )

        )

)


Custom serialization of SolrDocument objects

  • « SolrDocument::toArray
  • SolrDocument::__unset »
  • PHP Manual
  • SolrDocument
  • Custom serialization of SolrDocument objects

SolrDocument::unserialize

(PECL solr >= 0.9.2)

SolrDocument::unserialize — Custom serialization of SolrDocument objects

Описание

public void SolrDocument::unserialize ( string $serialized )

Custom serialization of SolrDocument objects

Список параметров

serialized

An XML representation of the document.

Возвращаемые значения

None.


Removes a field from the document

  • « SolrDocument::unserialize
  • SolrDocument::valid »
  • PHP Manual
  • SolrDocument
  • Removes a field from the document

SolrDocument::__unset

(PECL solr >= 0.9.2)

SolrDocument::__unset — Removes a field from the document

Описание

public bool SolrDocument::__unset ( string $fieldName )

Removes a field from the document when the field is access as an object property.

Список параметров

fieldName

The name of the field.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Checks if the current position internally is still valid

  • « SolrDocument::__unset
  • SolrDocumentField »
  • PHP Manual
  • SolrDocument
  • Checks if the current position internally is still valid

SolrDocument::valid

(PECL solr >= 0.9.2)

SolrDocument::valid — Checks if the current position internally is still valid

Описание

public bool SolrDocument::valid ( void )

Checks if the current position internally is still valid. It is used during foreach operations.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE on success and FALSE if the current position is no longer valid.


The SolrDocumentField class

(PECL solr >= 0.9.2)

Введение

This represents a field in a Solr document. All its properties are read-only.

Обзор классов

final SolrDocumentField {
/* Свойства */
readonly public string $name ;
readonly public float $boost ;
readonly public array $values ;
/* Методы */
public __construct ( void )
public void __destruct ( void )
}

Свойства

name

The name of the field.

boost

The boost value for the field

values

An array of values for this field

Содержание

  • SolrDocumentField::__construct — Конструктор
  • SolrDocumentField::__destruct — Деструктор


Конструктор

  • « SolrDocumentField
  • SolrDocumentField::__destruct »
  • PHP Manual
  • SolrDocumentField
  • Конструктор

SolrDocumentField::__construct

(PECL solr >= 0.9.2)

SolrDocumentField::__construct — Конструктор

Описание

public SolrDocumentField::__construct ( void )

Конструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет.


Деструктор

  • « SolrDocumentField::__construct
  • SolrObject »
  • PHP Manual
  • SolrDocumentField
  • Деструктор

SolrDocumentField::__destruct

(PECL solr >= 0.9.2)

SolrDocumentField::__destruct — Деструктор

Описание

public void SolrDocumentField::__destruct ( void )

Деструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет.


Класс SolrObject

(PECL solr >= 0.9.2)

Введение

Это объект, свойства которого можно также получить с помощью синтаксиса массива. Все его свойства доступны только для чтения.

Обзор классов

final SolrObject implements ArrayAccess {
/* Методы */
public __construct ( void )
public void __destruct ( void )
public array getPropertyNames ( void )
public bool offsetExists ( string $property_name )
public mixed offsetGet ( string $property_name )
public void offsetSet ( string $property_name , string $property_value )
public void offsetUnset ( string $property_name )
}

Содержание

  • SolrObject::__construct — Creates Solr object
  • SolrObject::__destruct — Destructor
  • SolrObject::getPropertyNames — Returns an array of all the names of the properties
  • SolrObject::offsetExists — Checks if the property exists
  • SolrObject::offsetGet — Used to retrieve a property
  • SolrObject::offsetSet — Sets the value for a property
  • SolrObject::offsetUnset — Unsets the value for the property


Creates Solr object

  • « SolrObject
  • SolrObject::__destruct »
  • PHP Manual
  • SolrObject
  • Creates Solr object

SolrObject::__construct

(PECL solr >= 0.9.2)

SolrObject::__construct — Creates Solr object

Описание

public SolrObject::__construct ( void )

Creates Solr object.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None

Примеры

Пример #1 SolrObject::__construct() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


Destructor

  • « SolrObject::__construct
  • SolrObject::getPropertyNames »
  • PHP Manual
  • SolrObject
  • Destructor

SolrObject::__destruct

(PECL solr >= 0.9.2)

SolrObject::__destruct — Destructor

Описание

public void SolrObject::__destruct ( void )

The destructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None.


Returns an array of all the names of the properties

  • « SolrObject::__destruct
  • SolrObject::offsetExists »
  • PHP Manual
  • SolrObject
  • Returns an array of all the names of the properties

SolrObject::getPropertyNames

(PECL solr >= 0.9.2)

SolrObject::getPropertyNames — Returns an array of all the names of the properties

Описание

public array SolrObject::getPropertyNames ( void )

Returns an array of all the names of the properties

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array.


Checks if the property exists

  • « SolrObject::getPropertyNames
  • SolrObject::offsetGet »
  • PHP Manual
  • SolrObject
  • Checks if the property exists

SolrObject::offsetExists

(PECL solr >= 0.9.2)

SolrObject::offsetExists — Checks if the property exists

Описание

public bool SolrObject::offsetExists ( string $property_name )

Checks if the property exists. This is used when the object is treated as an array.

Список параметров

property_name

The name of the property.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Used to retrieve a property

  • « SolrObject::offsetExists
  • SolrObject::offsetSet »
  • PHP Manual
  • SolrObject
  • Used to retrieve a property

SolrObject::offsetGet

(PECL solr >= 0.9.2)

SolrObject::offsetGet — Used to retrieve a property

Описание

public mixed SolrObject::offsetGet ( string $property_name )

Used to get the value of a property. This is used when the object is treated as an array.

Список параметров

property_name

Name of the property.

Возвращаемые значения

Returns the property value.


Sets the value for a property

  • « SolrObject::offsetGet
  • SolrObject::offsetUnset »
  • PHP Manual
  • SolrObject
  • Sets the value for a property

SolrObject::offsetSet

(PECL solr >= 0.9.2)

SolrObject::offsetSet — Sets the value for a property

Описание

public void SolrObject::offsetSet ( string $property_name , string $property_value )

Sets the value for a property. This is used when the object is treated as an array. This object is read-only. This should never be attempted.

Список параметров

property_name

The name of the property.

property_value

The new value.

Возвращаемые значения

None.


Unsets the value for the property

  • « SolrObject::offsetSet
  • SolrClient »
  • PHP Manual
  • SolrObject
  • Unsets the value for the property

SolrObject::offsetUnset

(PECL solr >= 0.9.2)

SolrObject::offsetUnset — Unsets the value for the property

Описание

public void SolrObject::offsetUnset ( string $property_name )

Unsets the value for the property. This is used when the object is treated as an array. This object is read-only. This should never be attempted.

Список параметров

property_name

The name of the property.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 SolrObject::offsetUnset() example

<?php
/* ... */
?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также

  • Classname::Method()


The SolrClient class

(PECL solr >= 0.9.2)

Введение

Used to send requests to a Solr server. Currently, cloning and serialization of SolrClient instances is not supported.

Обзор классов

final SolrClient {
/* Константы */
const integer SEARCH_SERVLET_TYPE = 1 ;
const integer UPDATE_SERVLET_TYPE = 2 ;
const integer THREADS_SERVLET_TYPE = 4 ;
const integer PING_SERVLET_TYPE = 8 ;
const integer TERMS_SERVLET_TYPE = 16 ;
const integer SYSTEM_SERVLET_TYPE = 32 ;
const string DEFAULT_SEARCH_SERVLET = select ;
const string DEFAULT_UPDATE_SERVLET = update ;
const string DEFAULT_THREADS_SERVLET = admin/threads ;
const string DEFAULT_PING_SERVLET = admin/ping ;
const string DEFAULT_TERMS_SERVLET = terms ;
const string DEFAULT_SYSTEM_SERVLET = admin/system ;
/* Методы */
public SolrUpdateResponse addDocument ( SolrInputDocument $doc [, bool $overwrite = true [, int $commitWithin = 0 ]] )
public void addDocuments ( array $docs [, bool $overwrite = true [, int $commitWithin = 0 ]] )
public SolrUpdateResponse commit ([ bool $softCommit = false [, bool $waitSearcher = true [, bool $expungeDeletes = false ]]] )
public __construct ( array $clientOptions )
public SolrUpdateResponse deleteById ( string $id )
public SolrUpdateResponse deleteByIds ( array $ids )
public SolrUpdateResponse deleteByQueries ( array $queries )
public SolrUpdateResponse deleteByQuery ( string $query )
public void __destruct ( void )
public SolrQueryResponse getById ( string $id )
public SolrQueryResponse getByIds ( array $ids )
public string getDebug ( void )
public array getOptions ( void )
public SolrUpdateResponse optimize ([ int $maxSegments = 1 [, bool $softCommit = true [, bool $waitSearcher = true ]]] )
public SolrPingResponse ping ( void )
public SolrQueryResponse query ( SolrParams $query )
public SolrUpdateResponse request ( string $raw_request )
public SolrUpdateResponse rollback ( void )
public void setResponseWriter ( string $responseWriter )
public bool setServlet ( int $type , string $value )
public void system ( void )
public void threads ( void )
}

Предопределенные константы

SolrClient::SEARCH_SERVLET_TYPE

Used when updating the search servlet.

SolrClient::UPDATE_SERVLET_TYPE

Used when updating the update servlet.

SolrClient::THREADS_SERVLET_TYPE

Used when updating the threads servlet.

SolrClient::PING_SERVLET_TYPE

Used when updating the ping servlet.

SolrClient::TERMS_SERVLET_TYPE

Used when updating the terms servlet.

SolrClient::SYSTEM_SERVLET_TYPE

Used when retrieving system information from the system servlet.

SolrClient::DEFAULT_SEARCH_SERVLET

This is the intial value for the search servlet.

SolrClient::DEFAULT_UPDATE_SERVLET

This is the intial value for the update servlet.

SolrClient::DEFAULT_THREADS_SERVLET

This is the intial value for the threads servlet.

SolrClient::DEFAULT_PING_SERVLET

This is the intial value for the ping servlet.

SolrClient::DEFAULT_TERMS_SERVLET

This is the intial value for the terms servlet used for the TermsComponent

SolrClient::DEFAULT_SYSTEM_SERVLET

This is the intial value for the system servlet used to obtain Solr Server information

Содержание

  • SolrClient::addDocument — Adds a document to the index
  • SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index
  • SolrClient::commit — Finalizes all add/deletes made to the index
  • SolrClient::__construct — Constructor for the SolrClient object
  • SolrClient::deleteById — Delete by Id
  • SolrClient::deleteByIds — Deletes by Ids
  • SolrClient::deleteByQueries — Removes all documents matching any of the queries
  • SolrClient::deleteByQuery — Deletes all documents matching the given query
  • SolrClient::__destruct — Destructor for SolrClient
  • SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG).
  • SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).
  • SolrClient::getDebug — Returns the debug data for the last connection attempt
  • SolrClient::getOptions — Returns the client options set internally
  • SolrClient::optimize — Defragments the index
  • SolrClient::ping — Checks if Solr server is still up
  • SolrClient::query — Sends a query to the server
  • SolrClient::request — Sends a raw update request
  • SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit
  • SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr
  • SolrClient::setServlet — Changes the specified servlet type to a new value
  • SolrClient::system — Retrieve Solr Server information
  • SolrClient::threads — Checks the threads status


Adds a document to the index

  • « SolrClient
  • SolrClient::addDocuments »
  • PHP Manual
  • SolrClient
  • Adds a document to the index

SolrClient::addDocument

(PECL solr >= 0.9.2)

SolrClient::addDocument — Adds a document to the index

Описание

public SolrUpdateResponse SolrClient::addDocument ( SolrInputDocument $doc [, bool $overwrite = true [, int $commitWithin = 0 ]] )

This method adds a document to the index.

Список параметров

doc

The SolrInputDocument instance.

overwrite

Whether to overwrite existing document or not. If FALSE there will be duplicates (several documents with the same ID).

Внимание

PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite bool flag.

$allowDups = false is the same as $overwrite = true

commitWithin

Number of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means disabled.

When this value specified, it leaves the control of when to do the commit to Solr itself, optimizing number of commits to a minimum while still fulfilling the update latency requirements, and Solr will automatically do a commit when the oldest add in the buffer is due.

Возвращаемые значения

Returns a SolrUpdateResponse object or throws an Exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Примеры

Пример #1 SolrClient::addDocument() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

// you will have to commit changes to be written if you didn't use $commitWithin
$client->commit();

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Пример #2 SolrClient::addDocument() example 2

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

// No need to call commit() because $commitWithin is passed, so Solr Server will auto commit within 10 seconds
$updateResponse = $client->addDocument($doc, false, 10000);

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
        )

)

Смотрите также

  • SolrClient::addDocuments() - Adds a collection of SolrInputDocument instances to the index
  • SolrClient::commit() - Finalizes all add/deletes made to the index


Adds a collection of SolrInputDocument instances to the index

  • « SolrClient::addDocument
  • SolrClient::commit »
  • PHP Manual
  • SolrClient
  • Adds a collection of SolrInputDocument instances to the index

SolrClient::addDocuments

(PECL solr >= 0.9.2)

SolrClient::addDocuments — Adds a collection of SolrInputDocument instances to the index

Описание

public void SolrClient::addDocuments ( array $docs [, bool $overwrite = true [, int $commitWithin = 0 ]] )

Adds a collection of documents to the index.

Список параметров

docs

An array containing the collection of SolrInputDocument instances. This array must be an actual variable.

overwrite

Whether to overwrite existing documents or not. If FALSE there will be duplicates (several documents with the same ID).

Внимание

PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite bool flag.

$allowDups = false is the same as $overwrite = true

commitWithin

Number of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means disabled.

When this value specified, it leaves the control of when to do the commit to Solr itself, optimizing number of commits to a minimum while still fulfilling the update latency requirements, and Solr will automatically do a commit when the oldest add in the buffer is due.

Возвращаемые значения

Returns a SolrUpdateResponse object or throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Примеры

Пример #1 SolrClient::addDocuments() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$doc2 = clone $doc;

$doc2->deleteField('id');
$doc2->addField('id', 334456);

$docs = array($doc, $doc2);

$updateResponse = $client->addDocuments($docs);

// no changes will be written to disk unless $commitWithin is passed or SolrClient::commit is called

print_r($updateResponse->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 2
        )

)

Смотрите также

  • SolrClient::addDocument() - Adds a document to the index
  • SolrClient::commit() - Finalizes all add/deletes made to the index


Finalizes all add/deletes made to the index

  • « SolrClient::addDocuments
  • SolrClient::__construct »
  • PHP Manual
  • SolrClient
  • Finalizes all add/deletes made to the index

SolrClient::commit

(PECL solr >= 0.9.2)

SolrClient::commit — Finalizes all add/deletes made to the index

Описание

public SolrUpdateResponse SolrClient::commit ([ bool $softCommit = false [, bool $waitSearcher = true [, bool $expungeDeletes = false ]]] )

This method finalizes all add/deletes made to the index.

Список параметров

softCommit

This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees. (Solr4.0+)

A soft commit is much faster since it only makes index changes visible and does not fsync index files or write a new index descriptor. If the JVM crashes or there is a loss of power, changes that occurred after the last hard commit will be lost. Search collections that have near-real-time requirements (that want index changes to be quickly visible to searches) will want to soft commit often but hard commit less frequently.

waitSearcher

block until a new searcher is opened and registered as the main query searcher, making the changes visible.

expungeDeletes

Merge segments with deletes away. (Solr1.4+)

Возвращаемые значения

Returns a SolrUpdateResponse object on success or throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Список изменений

Версия | Описание
1.1.0, 2.0.0 | $maxSegments removed
2.0.0b | API Changed: SolrClient::commit ([ int $maxSegments = 0 [, bool $softCommit = false [, bool $waitSearcher = true[, bool $expungeDeletes = false ]]] )
0.9.2 | Signature: SolrClient::commit ([ int $maxSegments = 1 [, bool $waitFlush = true [, bool $waitSearcher = true ]]] ). $waitFlush: Block until index changes are flushed to disk.

Примечания

Внимание

PECL Solr >= 2.0 only supports Solr Server >= 4.0

Смотрите также

  • SolrClient::optimize() - Defragments the index
  • SolrClient::rollback() - Rollbacks all add/deletes made to the index since the last commit


Constructor for the SolrClient object

  • « SolrClient::commit
  • SolrClient::deleteById »
  • PHP Manual
  • SolrClient
  • Constructor for the SolrClient object

SolrClient::__construct

(PECL solr >= 0.9.2)

SolrClient::__construct — Constructor for the SolrClient object

Описание

public SolrClient::__construct ( array $clientOptions )

Constructor for the SolrClient object

Список параметров

clientOptions

This is an array containing one of the following keys :

- secure          (Boolean value indicating whether or not to connect in secure mode)
 - hostname        (The hostname for the Solr server)
 - port            (The port number)
 - path            (The path to solr)
 - wt              (The name of the response writer e.g. xml, json)
 - login           (The username used for HTTP Authentication, if any)
 - password        (The HTTP Authentication password)
 - proxy_host      (The hostname for the proxy server, if any)
 - proxy_port      (The proxy port)
 - proxy_login     (The proxy username)
 - proxy_password  (The proxy password)
 - timeout         (This is maximum time in seconds allowed for the http data transfer operation. Default is 30 seconds)
 - ssl_cert        (File name to a PEM-formatted file containing the private key + private certificate (concatenated in that order) )
 - ssl_key         (File name to a PEM-formatted private key file only)
 - ssl_keypassword (Password for private key)
 - ssl_cainfo      (Name of file holding one or more CA certificates to verify peer with)
 - ssl_capath      (Name of directory holding multiple CA certificates to verify peer with )

 Please note the if the ssl_cert file only contains the private certificate, you have to specify a separate ssl_key file

 The ssl_keypassword option is required if the ssl_cert or ssl_key options are set.

Ошибки

Throws SolrIllegalArgumentException on failure.

Примеры

Пример #1 SolrClient::__construct() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_PATH_TO_SOLR,
    'wt'       => 'xml',
);

$client = new SolrClient($options);

$doc = new SolrInputDocument();

$doc->addField('id', 334455);
$doc->addField('cat', 'Software');
$doc->addField('cat', 'Lucene');

$updateResponse = $client->addDocument($doc);

?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • SolrClient::getOptions() - Returns the client options set internally


Delete by Id

  • « SolrClient::__construct
  • SolrClient::deleteByIds »
  • PHP Manual
  • SolrClient
  • Delete by Id

SolrClient::deleteById

(PECL solr >= 0.9.2)

SolrClient::deleteById — Delete by Id

Описание

public SolrUpdateResponse SolrClient::deleteById ( string $id )

Deletes the document with the specified ID. Where ID is the value of the uniqueKey field declared in the schema

Список параметров

id

The value of the uniqueKey field declared in the schema

Возвращаемые значения

Returns a SolrUpdateResponse on success and throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Смотрите также

  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Deletes by Ids

  • « SolrClient::deleteById
  • SolrClient::deleteByQueries »
  • PHP Manual
  • SolrClient
  • Deletes by Ids

SolrClient::deleteByIds

(PECL solr >= 0.9.2)

SolrClient::deleteByIds — Deletes by Ids

Описание

public SolrUpdateResponse SolrClient::deleteByIds ( array $ids )

Deletes a collection of documents with the specified set of ids.

Список параметров

ids

An array of IDs representing the uniqueKey field declared in the schema for each document to be deleted. This must be an actual php variable.

Возвращаемые значения

Returns a SolrUpdateResponse on success and throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Смотрите также

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Removes all documents matching any of the queries

  • « SolrClient::deleteByIds
  • SolrClient::deleteByQuery »
  • PHP Manual
  • SolrClient
  • Removes all documents matching any of the queries

SolrClient::deleteByQueries

(PECL solr >= 0.9.2)

SolrClient::deleteByQueries — Removes all documents matching any of the queries

Описание

public SolrUpdateResponse SolrClient::deleteByQueries ( array $queries )

Removes all documents matching any of the queries

Список параметров

queries

The array of queries. This must be an actual php variable.

Возвращаемые значения

Returns a SolrUpdateResponse on success and throws a SolrClientException on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Смотрите также

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQuery() - Deletes all documents matching the given query


Deletes all documents matching the given query

  • « SolrClient::deleteByQueries
  • SolrClient::__destruct »
  • PHP Manual
  • SolrClient
  • Deletes all documents matching the given query

SolrClient::deleteByQuery

(PECL solr >= 0.9.2)

SolrClient::deleteByQuery — Deletes all documents matching the given query

Описание

public SolrUpdateResponse SolrClient::deleteByQuery ( string $query )

Deletes all documents matching the given query.

Список параметров

query

The query

Возвращаемые значения

Returns a SolrUpdateResponse on success and throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Примеры

Пример #1 SolrQuery::deleteByQuery() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

//This will erase the entire index
$client->deleteByQuery("*:*");
$client->commit();

?>

Смотрите также

  • SolrClient::deleteById() - Delete by Id
  • SolrClient::deleteByIds() - Deletes by Ids
  • SolrClient::deleteByQueries() - Removes all documents matching any of the queries


Destructor for SolrClient

  • « SolrClient::deleteByQuery
  • SolrClient::getById »
  • PHP Manual
  • SolrClient
  • Destructor for SolrClient

SolrClient::__destruct

(PECL solr >= 0.9.2)

SolrClient::__destruct — Destructor for SolrClient

Описание

public void SolrClient::__destruct ( void )

Destructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Destructor for SolrClient

Смотрите также

  • SolrClient::__construct() - Constructor for the SolrClient object


Get Document By Id. Utilizes Solr Realtime Get (RTG).

  • « SolrClient::__destruct
  • SolrClient::getByIds »
  • PHP Manual
  • SolrClient
  • Get Document By Id. Utilizes Solr Realtime Get (RTG).

SolrClient::getById

(PECL solr >= 2.2.0)

SolrClient::getById — Get Document By Id. Utilizes Solr Realtime Get (RTG).

Описание

public SolrQueryResponse SolrClient::getById ( string $id )

Get Document By Id. Utilizes Solr Realtime Get (RTG).

Список параметров

id

Document ID

Возвращаемые значения

SolrQueryResponse

Примеры

Пример #1 SolrClient::getById() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getById('GB18030TEST');
print_r($response->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [doc] => SolrObject Object
        (
            [id] => GB18030TEST
            [name] => Array
                (
                    [0] => Test with some GB18030 encoded characters
                )

            [features] => Array
                (
                    [0] => No accents here
                    [1] => ??????
                    [2] => This is a feature (translated)
                    [3] => ?????????
                    [4] => This document is very shiny (translated)
                )

            [price] => Array
                (
                    [0] => 0
                )

            [inStock] => Array
                (
                    [0] => 1
                )

            [_version_] => 1510294336239042560
        )

)

Смотрите также

  • SolrClient::getByIds() - Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).


Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).

  • « SolrClient::getById
  • SolrClient::getDebug »
  • PHP Manual
  • SolrClient
  • Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).

SolrClient::getByIds

(PECL solr >= 2.2.0)

SolrClient::getByIds — Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).

Описание

public SolrQueryResponse SolrClient::getByIds ( array $ids )

Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).

Список параметров

ids

Document ids

Возвращаемые значения

SolrQueryResponse

Примеры

Пример #1 SolrClient::getByIds() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);
$response = $client->getByIds(['GB18030TEST', '6H500F0']);

print_r($response->getResponse());

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [response] => SolrObject Object
        (
            [numFound] => 2
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => GB18030TEST
                            [name] => Array
                                (
                                    [0] => Test with some GB18030 encoded characters
                                )

                            [features] => Array
                                (
                                    [0] => No accents here
                                    [1] => ??????
                                    [2] => This is a feature (translated)
                                    [3] => ?????????
                                    [4] => This document is very shiny (translated)
                                )

                            [price] => Array
                                (
                                    [0] => 0
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [_version_] => 1510294336239042560
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                )

        )

)

Смотрите также

  • SolrClient::getById() - Get Document By Id. Utilizes Solr Realtime Get (RTG).


Returns the debug data for the last connection attempt

  • « SolrClient::getByIds
  • SolrClient::getOptions »
  • PHP Manual
  • SolrClient
  • Returns the debug data for the last connection attempt

SolrClient::getDebug

(PECL solr >= 0.9.7)

SolrClient::getDebug — Returns the debug data for the last connection attempt

Описание

public string SolrClient::getDebug ( void )

Returns the debug data for the last connection attempt

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and null if there is nothing to return.


Returns the client options set internally

  • « SolrClient::getDebug
  • SolrClient::optimize »
  • PHP Manual
  • SolrClient
  • Returns the client options set internally

SolrClient::getOptions

(PECL solr >= 0.9.6)

SolrClient::getOptions — Returns the client options set internally

Описание

public array SolrClient::getOptions ( void )

Returns the client options set internally. Very useful for debugging. The values returned are readonly and can only be set when the object is instantiated.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array containing all the options for the SolrClient object set internally.

Смотрите также

  • SolrClient::__construct() - Constructor for the SolrClient object


Defragments the index

  • « SolrClient::getOptions
  • SolrClient::ping »
  • PHP Manual
  • SolrClient
  • Defragments the index

SolrClient::optimize

(PECL solr >= 0.9.2)

SolrClient::optimize — Defragments the index

Описание

public SolrUpdateResponse SolrClient::optimize ([ int $maxSegments = 1 [, bool $softCommit = true [, bool $waitSearcher = true ]]] )

Defragments the index for faster search performance.

Список параметров

maxSegments

Optimizes down to at most this number of segments. Since Solr 1.3

softCommit

This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees. (Solr4.0+)

waitSearcher

Block until a new searcher is opened and registered as the main query searcher, making the changes visible.

Возвращаемые значения

Returns a SolrUpdateResponse on success or throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to process the request.

Примечания

Внимание

PECL Solr >= 2.0 only supports Solr Server >= 4.0

Prior to PECL Solr 2.0 this method used to accept these arguments "int $maxSegments, bool $waitFlush, bool $waitSearcher".

Смотрите также

  • SolrClient::commit() - Finalizes all add/deletes made to the index
  • SolrClient::rollback() - Rollbacks all add/deletes made to the index since the last commit


Checks if Solr server is still up

  • « SolrClient::optimize
  • SolrClient::query »
  • PHP Manual
  • SolrClient
  • Checks if Solr server is still up

SolrClient::ping

(PECL solr >= 0.9.2)

SolrClient::ping — Checks if Solr server is still up

Описание

public SolrPingResponse SolrClient::ping ( void )

Checks if the Solr server is still alive. Sends a HEAD request to the Apache Solr server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrPingResponse object on success and throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the request.

Примеры

Пример #1 SolrClient::ping() example

<?php
$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$pingresponse = $client->ping();

?>

Результатом выполнения данного примера будет что-то подобное:


Sends a query to the server

  • « SolrClient::ping
  • SolrClient::request »
  • PHP Manual
  • SolrClient
  • Sends a query to the server

SolrClient::query

(PECL solr >= 0.9.2)

SolrClient::query — Sends a query to the server

Описание

public SolrQueryResponse SolrClient::query ( SolrParams $query )

Sends a query to the server.

Список параметров

query

A SolrParams object. It is recommended to use SolrQuery for advanced queries.

Возвращаемые значения

Returns a SolrQueryResponse object on success and throws an exception on failure.

Ошибки

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the query.

Примеры

Пример #1 SolrClient::query() example

<?php

$options = array
(
    'hostname' => 'localhost',
    'login'    => 'username',
    'password' => 'password',
    'port'     => '8983',
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('lucene');

$query->setStart(0);

$query->setRows(50);

$query->addField('cat')->addField('features')->addField('id')->addField('timestamp');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 3
            [params] => SolrObject Object
                (
                    [fl] => cat,features,id,timestamp
                    [indent] => on
                    [start] => 0
                    [q] => lucene
                    [wt] => xml
                    [version] => 2.2
                    [rows] => 50
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 1
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SOLR1000
                            [cat] => Array
                                (
                                    [0] => software
                                    [1] => search
                                )

                            [features] => Array
                                (
                                    [0] => Advanced Full-Text Search Capabilities using Lucene
                                    [1] => Optimized for High Volume Web Traffic
                                    [2] => Standards Based Open Interfaces - XML and HTTP
                                    [3] => Comprehensive HTML Administration Interfaces
                                    [4] => Scalability - Efficient Replication to other Solr Search Servers
                                    [5] => Flexible and Adaptable with XML configuration and Schema
                                    [6] => Good unicode support: hello (hello with an accent over the e)
                                )

                        )

                )

        )

)


Sends a raw update request

  • « SolrClient::query
  • SolrClient::rollback »
  • PHP Manual
  • SolrClient
  • Sends a raw update request

SolrClient::request

(PECL solr >= 0.9.2)

SolrClient::request — Sends a raw update request

Описание

public SolrUpdateResponse SolrClient::request ( string $raw_request )

Sends a raw XML update request to the server

Список параметров

raw_request

An XML string with the raw request to the server.

Возвращаемые значения

Returns a SolrUpdateResponse on success. Throws an exception on failure.

Ошибки

Throws SolrIllegalArgumentException if raw_request was an empty string

Throws SolrClientException if the client had failed, or there was a connection issue.

Throws SolrServerException if the Solr Server had failed to satisfy the query.

Примеры

Пример #1 SolrClient::request() example

<?php
$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$update_response = $client->request("<commit/>");

$response = $update_response->getResponse();

print_r($response);
?>

Результатом выполнения данного примера будет что-то подобное:

...


Rollbacks all add/deletes made to the index since the last commit

  • « SolrClient::request
  • SolrClient::setResponseWriter »
  • PHP Manual
  • SolrClient
  • Rollbacks all add/deletes made to the index since the last commit

SolrClient::rollback

(PECL solr >= 0.9.2)

SolrClient::rollback — Rollbacks all add/deletes made to the index since the last commit

Описание

public SolrUpdateResponse SolrClient::rollback ( void )

Rollbacks all add/deletes made to the index since the last commit. It neither calls any event listeners nor creates a new searcher.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrUpdateResponse on success or throws a SolrClientException on failure.

Смотрите также

  • SolrClient::commit() - Finalizes all add/deletes made to the index
  • SolrClient::optimize() - Defragments the index


Sets the response writer used to prepare the response from Solr

  • « SolrClient::rollback
  • SolrClient::setServlet »
  • PHP Manual
  • SolrClient
  • Sets the response writer used to prepare the response from Solr

SolrClient::setResponseWriter

(PECL solr >= 0.9.11)

SolrClient::setResponseWriter — Sets the response writer used to prepare the response from Solr

Описание

public void SolrClient::setResponseWriter ( string $responseWriter )

Sets the response writer used to prepare the response from Solr

Список параметров

responseWriter

One of the following:

  • json
  • phps
  • xml

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 SolrClient::setResponseWriter() example

<?php

// This is my custom class for objects
class SolrClass
{
   public $_properties = array();

   public function __get($property_name) {

      if (property_exists($this, $property_name)) {

          return $this->$property_name;

      } else if (isset($_properties[$property_name])) {

          return $_properties[$property_name];
      }

      return null;
   }
}

$options = array
(
  'hostname' => 'localhost',
  'port' => 8983,
  'path' => '/solr/core1'
);

$client = new SolrClient($options);

$client->setResponseWriter("json");

//$response = $client->ping();

$query = new SolrQuery();

$query->setQuery("*:*");

$query->set("objectClassName", "SolrClass");

$query->set("objectPropertiesStorageMode", 1); // 0 for independent properties, 1 for combined

try
{

$response = $client->query($query);

$resp = $response->getResponse();

print_r($response);

print_r($resp);

} catch (Exception $e) {

print_r($e);

}

?>


Changes the specified servlet type to a new value

  • « SolrClient::setResponseWriter
  • SolrClient::system »
  • PHP Manual
  • SolrClient
  • Changes the specified servlet type to a new value

SolrClient::setServlet

(PECL solr >= 0.9.2)

SolrClient::setServlet — Changes the specified servlet type to a new value

Описание

public bool SolrClient::setServlet ( int $type , string $value )

Changes the specified servlet type to a new value

Список параметров

type

One of the following :

- SolrClient::SEARCH_SERVLET_TYPE
 - SolrClient::UPDATE_SERVLET_TYPE
 - SolrClient::THREADS_SERVLET_TYPE
 - SolrClient::PING_SERVLET_TYPE
 - SolrClient::TERMS_SERVLET_TYPE

value

The new value for the servlet

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Retrieve Solr Server information

  • « SolrClient::setServlet
  • SolrClient::threads »
  • PHP Manual
  • SolrClient
  • Retrieve Solr Server information

SolrClient::system

(PECL solr >= 2.0.0)

SolrClient::system — Retrieve Solr Server information

Описание

public void SolrClient::system ( void )

Retrieve Solr Server information

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrGenericResponse object on success.

Ошибки

Emits SolrClientException if the client failed, or there was a connection issue.

Emits SolrServerException if the Solr Server failed to satisfy the query.


Checks the threads status

  • « SolrClient::system
  • SolrResponse »
  • PHP Manual
  • SolrClient
  • Checks the threads status

SolrClient::threads

(PECL solr >= 0.9.2)

SolrClient::threads — Checks the threads status

Описание

public void SolrClient::threads ( void )

Checks the threads status

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrGenericResponse object.

Ошибки

Throws SolrClientException if the client failed, or there was a connection issue.

throws SolrServerException if the Solr Server failed to process the request.


The SolrResponse class

(PECL solr >= 0.9.2)

Введение

Represents a response from the Solr server.

Обзор классов

abstract SolrResponse {
/* Константы */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Свойства */
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Методы */
public string getDigestedResponse ( void )
public int getHttpStatus ( void )
public string getHttpStatusMessage ( void )
public string getRawRequest ( void )
public string getRawRequestHeaders ( void )
public string getRawResponse ( void )
public string getRawResponseHeaders ( void )
public string getRequestUrl ( void )
public SolrObject getResponse ( void )
public bool setParseMode ([ int $parser_mode = 0 ] )
public bool success ( void )
}

Свойства

http_status

The http status of the response.

parser_mode

Whether to parse the solr documents as SolrObject or SolrDocument instances.

success

Was there an error during the request

http_status_message

Detailed message on http status

http_request_url

The request URL

http_raw_request_headers

A string of raw headers sent during the request.

http_raw_request

The raw request sent to the server

http_raw_response_headers

Response headers from the Solr server.

http_raw_response

The response message from the server.

http_digested_response

The response in PHP serialized format.

Предопределенные константы

SolrResponse Class Constants

SolrResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Содержание

  • SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data
  • SolrResponse::getHttpStatus — Returns the HTTP status of the response
  • SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status
  • SolrResponse::getRawRequest — Returns the raw request sent to the Solr server
  • SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server
  • SolrResponse::getRawResponse — Returns the raw response from the server
  • SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server
  • SolrResponse::getRequestUrl — Returns the full URL the request was sent to
  • SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server
  • SolrResponse::setParseMode — Sets the parse mode
  • SolrResponse::success — Was the request a success


Returns the XML response as serialized PHP data

  • « SolrResponse
  • SolrResponse::getHttpStatus »
  • PHP Manual
  • SolrResponse
  • Returns the XML response as serialized PHP data

SolrResponse::getDigestedResponse

(PECL solr >= 0.9.2)

SolrResponse::getDigestedResponse — Returns the XML response as serialized PHP data

Описание

public string SolrResponse::getDigestedResponse ( void )

Returns the XML response as serialized PHP data

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the XML response as serialized PHP data


Returns the HTTP status of the response

  • « SolrResponse::getDigestedResponse
  • SolrResponse::getHttpStatusMessage »
  • PHP Manual
  • SolrResponse
  • Returns the HTTP status of the response

SolrResponse::getHttpStatus

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatus — Returns the HTTP status of the response

Описание

public int SolrResponse::getHttpStatus ( void )

Returns the HTTP status of the response.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the HTTP status of the response.


Returns more details on the HTTP status

  • « SolrResponse::getHttpStatus
  • SolrResponse::getRawRequest »
  • PHP Manual
  • SolrResponse
  • Returns more details on the HTTP status

SolrResponse::getHttpStatusMessage

(PECL solr >= 0.9.2)

SolrResponse::getHttpStatusMessage — Returns more details on the HTTP status

Описание

public string SolrResponse::getHttpStatusMessage ( void )

Returns more details on the HTTP status.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns more details on the HTTP status


Returns the raw request sent to the Solr server

  • « SolrResponse::getHttpStatusMessage
  • SolrResponse::getRawRequestHeaders »
  • PHP Manual
  • SolrResponse
  • Returns the raw request sent to the Solr server

SolrResponse::getRawRequest

(PECL solr >= 0.9.2)

SolrResponse::getRawRequest — Returns the raw request sent to the Solr server

Описание

public string SolrResponse::getRawRequest ( void )

Returns the raw request sent to the Solr server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the raw request sent to the Solr server


Returns the raw request headers sent to the Solr server

  • « SolrResponse::getRawRequest
  • SolrResponse::getRawResponse »
  • PHP Manual
  • SolrResponse
  • Returns the raw request headers sent to the Solr server

SolrResponse::getRawRequestHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawRequestHeaders — Returns the raw request headers sent to the Solr server

Описание

public string SolrResponse::getRawRequestHeaders ( void )

Returns the raw request headers sent to the Solr server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the raw request headers sent to the Solr server


Returns the raw response from the server

  • « SolrResponse::getRawRequestHeaders
  • SolrResponse::getRawResponseHeaders »
  • PHP Manual
  • SolrResponse
  • Returns the raw response from the server

SolrResponse::getRawResponse

(PECL solr >= 0.9.2)

SolrResponse::getRawResponse — Returns the raw response from the server

Описание

public string SolrResponse::getRawResponse ( void )

Returns the raw response from the server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the raw response from the server.


Returns the raw response headers from the server

  • « SolrResponse::getRawResponse
  • SolrResponse::getRequestUrl »
  • PHP Manual
  • SolrResponse
  • Returns the raw response headers from the server

SolrResponse::getRawResponseHeaders

(PECL solr >= 0.9.2)

SolrResponse::getRawResponseHeaders — Returns the raw response headers from the server

Описание

public string SolrResponse::getRawResponseHeaders ( void )

Returns the raw response headers from the server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the raw response headers from the server.


Returns the full URL the request was sent to

  • « SolrResponse::getRawResponseHeaders
  • SolrResponse::getResponse »
  • PHP Manual
  • SolrResponse
  • Returns the full URL the request was sent to

SolrResponse::getRequestUrl

(PECL solr >= 0.9.2)

SolrResponse::getRequestUrl — Returns the full URL the request was sent to

Описание

public string SolrResponse::getRequestUrl ( void )

Returns the full URL the request was sent to.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the full URL the request was sent to


Returns a SolrObject representing the XML response from the server

  • « SolrResponse::getRequestUrl
  • SolrResponse::setParseMode »
  • PHP Manual
  • SolrResponse
  • Returns a SolrObject representing the XML response from the server

SolrResponse::getResponse

(PECL solr >= 0.9.2)

SolrResponse::getResponse — Returns a SolrObject representing the XML response from the server

Описание

public SolrObject SolrResponse::getResponse ( void )

Returns a SolrObject representing the XML response from the server.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a SolrObject representing the XML response from the server


Sets the parse mode

  • « SolrResponse::getResponse
  • SolrResponse::success »
  • PHP Manual
  • SolrResponse
  • Sets the parse mode

SolrResponse::setParseMode

(PECL solr >= 0.9.2)

SolrResponse::setParseMode — Sets the parse mode

Описание

public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )

Sets the parse mode.

Список параметров

parser_mode

SolrResponse::PARSE_SOLR_DOC parses documents in SolrDocument instances. SolrResponse::PARSE_SOLR_OBJ parses document into SolrObjects.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Was the request a success

  • « SolrResponse::setParseMode
  • SolrQueryResponse »
  • PHP Manual
  • SolrResponse
  • Was the request a success

SolrResponse::success

(PECL solr >= 0.9.2)

SolrResponse::success — Was the request a success

Описание

public bool SolrResponse::success ( void )

Used to check if the request to the server was successful.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if it was successful and FALSE if it was not.


The SolrQueryResponse class

(PECL solr >= 0.9.2)

Введение

Represents a response to a query request.

Обзор классов

final SolrQueryResponse extends SolrResponse {
/* Константы */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Наследуемые свойства */
const integer SolrResponse::PARSE_SOLR_OBJ = 0 ;
const integer SolrResponse::PARSE_SOLR_DOC = 1 ;
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Методы */
public __construct ( void )
public void __destruct ( void )
/* Наследуемые методы */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Предопределенные константы

SolrQueryResponse Class constants

SolrQueryResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrQueryResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Содержание

  • SolrQueryResponse::__construct — Конструктор
  • SolrQueryResponse::__destruct — Деструктор


Конструктор

  • « SolrQueryResponse
  • SolrQueryResponse::__destruct »
  • PHP Manual
  • SolrQueryResponse
  • Конструктор

SolrQueryResponse::__construct

(PECL solr >= 0.9.2)

SolrQueryResponse::__construct — Конструктор

Описание

public SolrQueryResponse::__construct ( void )

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrQueryResponse::__construct
  • SolrUpdateResponse »
  • PHP Manual
  • SolrQueryResponse
  • Деструктор

SolrQueryResponse::__destruct

(PECL solr >= 0.9.2)

SolrQueryResponse::__destruct — Деструктор

Описание

public void SolrQueryResponse::__destruct ( void )

Деструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


The SolrUpdateResponse class

(PECL solr >= 0.9.2)

Введение

Represents a response to an update request.

Обзор классов

final SolrUpdateResponse extends SolrResponse {
/* Константы */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Наследуемые свойства */
const integer SolrResponse::PARSE_SOLR_OBJ = 0 ;
const integer SolrResponse::PARSE_SOLR_DOC = 1 ;
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Методы */
public __construct ( void )
public void __destruct ( void )
/* Наследуемые методы */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Предопределенные константы

SolrUpdateResponse Class Constants

SolrUpdateResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrUpdateResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Содержание

  • SolrUpdateResponse::__construct — Конструктор
  • SolrUpdateResponse::__destruct — Деструктор


Конструктор

  • « SolrUpdateResponse
  • SolrUpdateResponse::__destruct »
  • PHP Manual
  • SolrUpdateResponse
  • Конструктор

SolrUpdateResponse::__construct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__construct — Конструктор

Описание

public SolrUpdateResponse::__construct ( void )

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrUpdateResponse::__construct
  • SolrPingResponse »
  • PHP Manual
  • SolrUpdateResponse
  • Деструктор

SolrUpdateResponse::__destruct

(PECL solr >= 0.9.2)

SolrUpdateResponse::__destruct — Деструктор

Описание

public void SolrUpdateResponse::__destruct ( void )

Деструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


The SolrPingResponse class

(PECL solr >= 0.9.2)

Введение

Represents a response to a ping request to the server

Обзор классов

final SolrPingResponse extends SolrResponse {
/* Константы */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Свойства */
/* Методы */
public __construct ( void )
public void __destruct ( void )
public string getResponse ( void )
/* Наследуемые методы */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Свойства

http_status

The http status of the response.

parser_mode

Whether to parse the solr documents as SolrObject or SolrDocument instances.

success

Was there an error during the request

http_status_message

Detailed message on http status

http_request_url

The request URL

http_raw_request_headers

A string of raw headers sent during the request

http_raw_request

The raw request sent to the server

http_raw_response_headers

Response headers from the Solr server

http_raw_response

The response message from the server

http_digested_response

The response in PHP serialized format.

Предопределенные константы

SolrPingResponse Class Constants

SolrPingResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrPingResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Содержание

  • SolrPingResponse::__construct — Constructor
  • SolrPingResponse::__destruct — Destructor
  • SolrPingResponse::getResponse — Returns the response from the server


Constructor

  • « SolrPingResponse
  • SolrPingResponse::__destruct »
  • PHP Manual
  • SolrPingResponse
  • Constructor

SolrPingResponse::__construct

(PECL solr >= 0.9.2)

SolrPingResponse::__construct — Constructor

Описание

public SolrPingResponse::__construct ( void )

Constructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None


Destructor

  • « SolrPingResponse::__construct
  • SolrPingResponse::getResponse »
  • PHP Manual
  • SolrPingResponse
  • Destructor

SolrPingResponse::__destruct

(PECL solr >= 0.9.2)

SolrPingResponse::__destruct — Destructor

Описание

public void SolrPingResponse::__destruct ( void )

Destructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None


Returns the response from the server

  • « SolrPingResponse::__destruct
  • SolrGenericResponse »
  • PHP Manual
  • SolrPingResponse
  • Returns the response from the server

SolrPingResponse::getResponse

(PECL solr >= 0.9.2)

SolrPingResponse::getResponse — Returns the response from the server

Описание

public string SolrPingResponse::getResponse ( void )

Returns the response from the server. This should be empty because the request as a HEAD request.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an empty string.


The SolrGenericResponse class

(PECL solr >= 0.9.2)

Введение

Represents a response from the solr server.

Обзор классов

final SolrGenericResponse extends SolrResponse {
/* Константы */
const integer PARSE_SOLR_OBJ = 0 ;
const integer PARSE_SOLR_DOC = 1 ;
/* Наследуемые свойства */
const integer SolrResponse::PARSE_SOLR_OBJ = 0 ;
const integer SolrResponse::PARSE_SOLR_DOC = 1 ;
protected integer $http_status ;
protected integer $parser_mode ;
protected bool $success ;
protected string $http_status_message ;
protected string $http_request_url ;
protected string $http_raw_request_headers ;
protected string $http_raw_request ;
protected string $http_raw_response_headers ;
protected string $http_raw_response ;
protected string $http_digested_response ;
/* Методы */
public __construct ( void )
public void __destruct ( void )
/* Наследуемые методы */
public string SolrResponse::getDigestedResponse ( void )
public int SolrResponse::getHttpStatus ( void )
public string SolrResponse::getHttpStatusMessage ( void )
public string SolrResponse::getRawRequest ( void )
public string SolrResponse::getRawRequestHeaders ( void )
public string SolrResponse::getRawResponse ( void )
public string SolrResponse::getRawResponseHeaders ( void )
public string SolrResponse::getRequestUrl ( void )
public SolrObject SolrResponse::getResponse ( void )
public bool SolrResponse::setParseMode ([ int $parser_mode = 0 ] )
public bool SolrResponse::success ( void )
}

Предопределенные константы

SolrGenericResponse Class constants

SolrGenericResponse::PARSE_SOLR_OBJ

Documents should be parsed as SolrObject instances

SolrGenericResponse::PARSE_SOLR_DOC

Documents should be parsed as SolrDocument instances.

Содержание

  • SolrGenericResponse::__construct — Конструктор
  • SolrGenericResponse::__destruct — Деструктор


Конструктор

  • « SolrGenericResponse
  • SolrGenericResponse::__destruct »
  • PHP Manual
  • SolrGenericResponse
  • Конструктор

SolrGenericResponse::__construct

(PECL solr >= 0.9.2)

SolrGenericResponse::__construct — Конструктор

Описание

public SolrGenericResponse::__construct ( void )

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrGenericResponse::__construct
  • SolrParams »
  • PHP Manual
  • SolrGenericResponse
  • Деструктор

SolrGenericResponse::__destruct

(PECL solr >= 0.9.2)

SolrGenericResponse::__destruct — Деструктор

Описание

public void SolrGenericResponse::__destruct ( void )

Деструктор.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Класс SolrParams

(PECL solr >= 0.9.2)

Введение

Представляет коллекцию пар "имя-значение", отправляемую на сервер Solr во время запроса.

Обзор классов

abstract SolrParams implements Serializable {
/* Методы */
final public SolrParams add ( string $name , string $value )
public SolrParams addParam ( string $name , string $value )
final public mixed get ( string $param_name )
final public mixed getParam ([ string $param_name ] )
final public array getParams ( void )
final public array getPreparedParams ( void )
final public string serialize ( void )
final public void set ( string $name , string $value )
public SolrParams setParam ( string $name , string $value )
final public string toString ([ bool $url_encode = false ] )
final public void unserialize ( string $serialized )
}

Содержание

  • SolrParams::add — This is an alias for SolrParams::addParam
  • SolrParams::addParam — Adds a parameter to the object
  • SolrParams::get — This is an alias for SolrParams::getParam
  • SolrParams::getParam — Returns a parameter value
  • SolrParams::getParams — Returns an array of non URL-encoded parameters
  • SolrParams::getPreparedParams — Returns an array of URL-encoded parameters
  • SolrParams::serialize — Used for custom serialization
  • SolrParams::set — An alias of SolrParams::setParam
  • SolrParams::setParam — Sets the parameter to the specified value
  • SolrParams::toString — Returns all the name-value pair parameters in the object
  • SolrParams::unserialize — Used for custom serialization


This is an alias for SolrParams::addParam

  • « SolrParams
  • SolrParams::addParam »
  • PHP Manual
  • SolrParams
  • This is an alias for SolrParams::addParam

SolrParams::add

(PECL solr >= 0.9.2)

SolrParams::add — This is an alias for SolrParams::addParam

Описание

final public SolrParams SolrParams::add ( string $name , string $value )

This is an alias for SolrParams::addParam

Список параметров

name

The name of the parameter

value

The value of the parameter

Возвращаемые значения

Returns a SolrParams instance on success


Adds a parameter to the object

  • « SolrParams::add
  • SolrParams::get »
  • PHP Manual
  • SolrParams
  • Adds a parameter to the object

SolrParams::addParam

(PECL solr >= 0.9.2)

SolrParams::addParam — Adds a parameter to the object

Описание

public SolrParams SolrParams::addParam ( string $name , string $value )

Adds a parameter to the object. This is used for parameters that can be specified multiple times.

Список параметров

name

Name of parameter

value

Value of parameter

Возвращаемые значения

Returns a SolrParam object on success and FALSE on failure.


This is an alias for SolrParams::getParam

  • « SolrParams::addParam
  • SolrParams::getParam »
  • PHP Manual
  • SolrParams
  • This is an alias for SolrParams::getParam

SolrParams::get

(PECL solr >= 0.9.2)

SolrParams::get — This is an alias for SolrParams::getParam

Описание

final public mixed SolrParams::get ( string $param_name )

This is an alias for SolrParams::getParam

Список параметров

param_name

Then name of the parameter

Возвращаемые значения

Returns an array or string depending on the type of parameter


Returns a parameter value

  • « SolrParams::get
  • SolrParams::getParams »
  • PHP Manual
  • SolrParams
  • Returns a parameter value

SolrParams::getParam

(PECL solr >= 0.9.2)

SolrParams::getParam — Returns a parameter value

Описание

final public mixed SolrParams::getParam ([ string $param_name ] )

Returns a parameter with name param_name

Список параметров

param_name

The name of the parameter

Возвращаемые значения

Returns a string or an array depending on the type of the parameter


Returns an array of non URL-encoded parameters

  • « SolrParams::getParam
  • SolrParams::getPreparedParams »
  • PHP Manual
  • SolrParams
  • Returns an array of non URL-encoded parameters

SolrParams::getParams

(PECL solr >= 0.9.2)

SolrParams::getParams — Returns an array of non URL-encoded parameters

Описание

final public array SolrParams::getParams ( void )

Returns an array of non URL-encoded parameters

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of non URL-encoded parameters


Returns an array of URL-encoded parameters

  • « SolrParams::getParams
  • SolrParams::serialize »
  • PHP Manual
  • SolrParams
  • Returns an array of URL-encoded parameters

SolrParams::getPreparedParams

(PECL solr >= 0.9.2)

SolrParams::getPreparedParams — Returns an array of URL-encoded parameters

Описание

final public array SolrParams::getPreparedParams ( void )

Returns an array on URL-encoded parameters

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on URL-encoded parameters


Used for custom serialization

  • « SolrParams::getPreparedParams
  • SolrParams::set »
  • PHP Manual
  • SolrParams
  • Used for custom serialization

SolrParams::serialize

(PECL solr >= 0.9.2)

SolrParams::serialize — Used for custom serialization

Описание

final public string SolrParams::serialize ( void )

Used for custom serialization

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Used for custom serialization


An alias of SolrParams::setParam

  • « SolrParams::serialize
  • SolrParams::setParam »
  • PHP Manual
  • SolrParams
  • An alias of SolrParams::setParam

SolrParams::set

(PECL solr >= 0.9.2)

SolrParams::set — An alias of SolrParams::setParam

Описание

final public void SolrParams::set ( string $name , string $value )

An alias of SolrParams::setParam

Список параметров

name

Then name of the parameter

value

The parameter value

Возвращаемые значения

Returns an instance of the SolrParams object on success


Sets the parameter to the specified value

  • « SolrParams::set
  • SolrParams::toString »
  • PHP Manual
  • SolrParams
  • Sets the parameter to the specified value

SolrParams::setParam

(PECL solr >= 0.9.2)

SolrParams::setParam — Sets the parameter to the specified value

Описание

public SolrParams SolrParams::setParam ( string $name , string $value )

Sets the query parameter to the specified value. This is used for parameters that can only be specified once. Subsequent calls with the same parameter name will override the existing value

Список параметров

name

Name of the parameter

value

Value of the parameter

Возвращаемые значения

Returns a SolrParam object on success and FALSE on value.

Примеры

Пример #1 SolrParams::setParam() example

<?php

$param = new SolrParams();

$param->setParam('q', 'solr')->setParam('rows', 2);

?>

Результатом выполнения данного примера будет что-то подобное:


Returns all the name-value pair parameters in the object

  • « SolrParams::setParam
  • SolrParams::unserialize »
  • PHP Manual
  • SolrParams
  • Returns all the name-value pair parameters in the object

SolrParams::toString

(PECL solr >= 0.9.2)

SolrParams::toString — Returns all the name-value pair parameters in the object

Описание

final public string SolrParams::toString ([ bool $url_encode = false ] )

Returns all the name-value pair parameters in the object

Список параметров

url_encode

Whether to return URL-encoded values

Возвращаемые значения

Returns a string on success and FALSE on failure.


Used for custom serialization

  • « SolrParams::toString
  • SolrModifiableParams »
  • PHP Manual
  • SolrParams
  • Used for custom serialization

SolrParams::unserialize

(PECL solr >= 0.9.2)

SolrParams::unserialize — Used for custom serialization

Описание

final public void SolrParams::unserialize ( string $serialized )

Used for custom serialization

Список параметров

serialized

The serialized representation of the object

Возвращаемые значения

None


Класс SolrModifiableParams

(PECL solr >= 0.9.2)

Введение

Представляет коллекцию пар "имя-значение", отправляемую на сервер Solr во время запроса.

Обзор классов

SolrModifiableParams extends SolrParams implements Serializable {
/* Методы */
public __construct ( void )
public void __destruct ( void )
/* Наследуемые методы */
final public SolrParams SolrParams::add ( string $name , string $value )
public SolrParams SolrParams::addParam ( string $name , string $value )
final public mixed SolrParams::get ( string $param_name )
final public mixed SolrParams::getParam ([ string $param_name ] )
final public array SolrParams::getParams ( void )
final public array SolrParams::getPreparedParams ( void )
final public string SolrParams::serialize ( void )
final public void SolrParams::set ( string $name , string $value )
public SolrParams SolrParams::setParam ( string $name , string $value )
final public string SolrParams::toString ([ bool $url_encode = false ] )
final public void SolrParams::unserialize ( string $serialized )
}

Содержание

  • SolrModifiableParams::__construct — Конструктор
  • SolrModifiableParams::__destruct — Деструктор


Конструктор

  • « SolrModifiableParams
  • SolrModifiableParams::__destruct »
  • PHP Manual
  • SolrModifiableParams
  • Конструктор

SolrModifiableParams::__construct

(PECL solr >= 0.9.2)

SolrModifiableParams::__construct — Конструктор

Описание

public SolrModifiableParams::__construct ( void )

Конструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


Деструктор

  • « SolrModifiableParams::__construct
  • SolrQuery »
  • PHP Manual
  • SolrModifiableParams
  • Деструктор

SolrModifiableParams::__destruct

(PECL solr >= 0.9.2)

SolrModifiableParams::__destruct — Деструктор

Описание

public void SolrModifiableParams::__destruct ( void )

Деструктор

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Нет


The SolrQuery class

(PECL solr >= 0.9.2)

Введение

Represents a collection of name-value pairs sent to the Solr server during a request.

Обзор классов

SolrQuery extends SolrModifiableParams implements Serializable {
/* Константы */
const integer ORDER_ASC = 0 ;
const integer ORDER_DESC = 1 ;
const integer FACET_SORT_INDEX = 0 ;
const integer FACET_SORT_COUNT = 1 ;
const integer TERMS_SORT_INDEX = 0 ;
const integer TERMS_SORT_COUNT = 1 ;
/* Свойства */
/* Методы */
public SolrQuery addExpandFilterQuery ( string $fq )
public SolrQuery addExpandSortField ( string $field [, string $order ] )
public SolrQuery addFacetDateField ( string $dateField )
public SolrQuery addFacetDateOther ( string $value [, string $field_override ] )
public SolrQuery addFacetField ( string $field )
public SolrQuery addFacetQuery ( string $facetQuery )
public SolrQuery addField ( string $field )
public SolrQuery addFilterQuery ( string $fq )
public SolrQuery addGroupField ( string $value )
public SolrQuery addGroupFunction ( string $value )
public SolrQuery addGroupQuery ( string $value )
public SolrQuery addGroupSortField ( string $field [, integer $order ] )
public SolrQuery addHighlightField ( string $field )
public SolrQuery addMltField ( string $field )
public SolrQuery addMltQueryField ( string $field , float $boost )
public SolrQuery addSortField ( string $field [, int $order = SolrQuery::ORDER_DESC ] )
public SolrQuery addStatsFacet ( string $field )
public SolrQuery addStatsField ( string $field )
public SolrQuery collapse ( SolrCollapseFunction $collapseFunction )
public __construct ([ string $q ] )
public void __destruct ( void )
public bool getExpand ( void )
public array getExpandFilterQueries ( void )
public array getExpandQuery ( void )
public integer getExpandRows ( void )
public array getExpandSortFields ( void )
public bool getFacet ( void )
public string getFacetDateEnd ([ string $field_override ] )
public array getFacetDateFields ( void )
public string getFacetDateGap ([ string $field_override ] )
public string getFacetDateHardEnd ([ string $field_override ] )
public array getFacetDateOther ([ string $field_override ] )
public string getFacetDateStart ([ string $field_override ] )
public array getFacetFields ( void )
public int getFacetLimit ([ string $field_override ] )
public string getFacetMethod ([ string $field_override ] )
public int getFacetMinCount ([ string $field_override ] )
public bool getFacetMissing ([ string $field_override ] )
public int getFacetOffset ([ string $field_override ] )
public string getFacetPrefix ([ string $field_override ] )
public array getFacetQueries ( void )
public int getFacetSort ([ string $field_override ] )
public array getFields ( void )
public array getFilterQueries ( void )
public bool getGroup ( void )
public integer getGroupCachePercent ( void )
public bool getGroupFacet ( void )
public array getGroupFields ( void )
public string getGroupFormat ( void )
public array getGroupFunctions ( void )
public integer getGroupLimit ( void )
public bool getGroupMain ( void )
public bool getGroupNGroups ( void )
public integer getGroupOffset ( void )
public array getGroupQueries ( void )
public array getGroupSortFields ( void )
public bool getGroupTruncate ( void )
public bool getHighlight ( void )
public string getHighlightAlternateField ([ string $field_override ] )
public array getHighlightFields ( void )
public string getHighlightFormatter ([ string $field_override ] )
public string getHighlightFragmenter ([ string $field_override ] )
public int getHighlightFragsize ([ string $field_override ] )
public bool getHighlightHighlightMultiTerm ( void )
public int getHighlightMaxAlternateFieldLength ([ string $field_override ] )
public int getHighlightMaxAnalyzedChars ( void )
public bool getHighlightMergeContiguous ([ string $field_override ] )
public int getHighlightRegexMaxAnalyzedChars ( void )
public string getHighlightRegexPattern ( void )
public float getHighlightRegexSlop ( void )
public bool getHighlightRequireFieldMatch ( void )
public string getHighlightSimplePost ([ string $field_override ] )
public string getHighlightSimplePre ([ string $field_override ] )
public int getHighlightSnippets ([ string $field_override ] )
public bool getHighlightUsePhraseHighlighter ( void )
public bool getMlt ( void )
public bool getMltBoost ( void )
public int getMltCount ( void )
public array getMltFields ( void )
public int getMltMaxNumQueryTerms ( void )
public int getMltMaxNumTokens ( void )
public int getMltMaxWordLength ( void )
public int getMltMinDocFrequency ( void )
public int getMltMinTermFrequency ( void )
public int getMltMinWordLength ( void )
public array getMltQueryFields ( void )
public string getQuery ( void )
public int getRows ( void )
public array getSortFields ( void )
public int getStart ( void )
public bool getStats ( void )
public array getStatsFacets ( void )
public array getStatsFields ( void )
public bool getTerms ( void )
public string getTermsField ( void )
public bool getTermsIncludeLowerBound ( void )
public bool getTermsIncludeUpperBound ( void )
public int getTermsLimit ( void )
public string getTermsLowerBound ( void )
public int getTermsMaxCount ( void )
public int getTermsMinCount ( void )
public string getTermsPrefix ( void )
public bool getTermsReturnRaw ( void )
public int getTermsSort ( void )
public string getTermsUpperBound ( void )
public int getTimeAllowed ( void )
public SolrQuery removeExpandFilterQuery ( string $fq )
public SolrQuery removeExpandSortField ( string $field )
public SolrQuery removeFacetDateField ( string $field )
public SolrQuery removeFacetDateOther ( string $value [, string $field_override ] )
public SolrQuery removeFacetField ( string $field )
public SolrQuery removeFacetQuery ( string $value )
public SolrQuery removeField ( string $field )
public SolrQuery removeFilterQuery ( string $fq )
public SolrQuery removeHighlightField ( string $field )
public SolrQuery removeMltField ( string $field )
public SolrQuery removeMltQueryField ( string $queryField )
public SolrQuery removeSortField ( string $field )
public SolrQuery removeStatsFacet ( string $value )
public SolrQuery removeStatsField ( string $field )
public SolrQuery setEchoHandler ( bool $flag )
public SolrQuery setEchoParams ( string $type )
public SolrQuery setExpand ( bool $value )
public SolrQuery setExpandQuery ( string $q )
public SolrQuery setExpandRows ( integer $value )
public SolrQuery setExplainOther ( string $query )
public SolrQuery setFacet ( bool $flag )
public SolrQuery setFacetDateEnd ( string $value [, string $field_override ] )
public SolrQuery setFacetDateGap ( string $value [, string $field_override ] )
public SolrQuery setFacetDateHardEnd ( bool $value [, string $field_override ] )
public SolrQuery setFacetDateStart ( string $value [, string $field_override ] )
public SolrQuery setFacetEnumCacheMinDefaultFrequency ( int $frequency [, string $field_override ] )
public SolrQuery setFacetLimit ( int $limit [, string $field_override ] )
public SolrQuery setFacetMethod ( string $method [, string $field_override ] )
public SolrQuery setFacetMinCount ( int $mincount [, string $field_override ] )
public SolrQuery setFacetMissing ( bool $flag [, string $field_override ] )
public SolrQuery setFacetOffset ( int $offset [, string $field_override ] )
public SolrQuery setFacetPrefix ( string $prefix [, string $field_override ] )
public SolrQuery setFacetSort ( int $facetSort [, string $field_override ] )
public SolrQuery setGroup ( bool $value )
public SolrQuery setGroupCachePercent ( integer $percent )
public SolrQuery setGroupFacet ( bool $value )
public SolrQuery setGroupFormat ( string $value )
public SolrQuery setGroupLimit ( integer $value )
public SolrQuery setGroupMain ( string $value )
public SolrQuery setGroupNGroups ( bool $value )
public SolrQuery setGroupOffset ( integer $value )
public SolrQuery setGroupTruncate ( bool $value )
public SolrQuery setHighlight ( bool $flag )
public SolrQuery setHighlightAlternateField ( string $field [, string $field_override ] )
public SolrQuery setHighlightFormatter ( string $formatter [, string $field_override ] )
public SolrQuery setHighlightFragmenter ( string $fragmenter [, string $field_override ] )
public SolrQuery setHighlightFragsize ( int $size [, string $field_override ] )
public SolrQuery setHighlightHighlightMultiTerm ( bool $flag )
public SolrQuery setHighlightMaxAlternateFieldLength ( int $fieldLength [, string $field_override ] )
public SolrQuery setHighlightMaxAnalyzedChars ( int $value )
public SolrQuery setHighlightMergeContiguous ( bool $flag [, string $field_override ] )
public SolrQuery setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars )
public SolrQuery setHighlightRegexPattern ( string $value )
public SolrQuery setHighlightRegexSlop ( float $factor )
public SolrQuery setHighlightRequireFieldMatch ( bool $flag )
public SolrQuery setHighlightSimplePost ( string $simplePost [, string $field_override ] )
public SolrQuery setHighlightSimplePre ( string $simplePre [, string $field_override ] )
public SolrQuery setHighlightSnippets ( int $value [, string $field_override ] )
public SolrQuery setHighlightUsePhraseHighlighter ( bool $flag )
public SolrQuery setMlt ( bool $flag )
public SolrQuery setMltBoost ( bool $flag )
public SolrQuery setMltCount ( int $count )
public SolrQuery setMltMaxNumQueryTerms ( int $value )
public SolrQuery setMltMaxNumTokens ( int $value )
public SolrQuery setMltMaxWordLength ( int $maxWordLength )
public SolrQuery setMltMinDocFrequency ( int $minDocFrequency )
public SolrQuery setMltMinTermFrequency ( int $minTermFrequency )
public SolrQuery setMltMinWordLength ( int $minWordLength )
public SolrQuery setOmitHeader ( bool $flag )
public SolrQuery setQuery ( string $query )
public SolrQuery setRows ( int $rows )
public SolrQuery setShowDebugInfo ( bool $flag )
public SolrQuery setStart ( int $start )
public SolrQuery setStats ( bool $flag )
public SolrQuery setTerms ( bool $flag )
public SolrQuery setTermsField ( string $fieldname )
public SolrQuery setTermsIncludeLowerBound ( bool $flag )
public SolrQuery setTermsIncludeUpperBound ( bool $flag )
public SolrQuery setTermsLimit ( int $limit )
public SolrQuery setTermsLowerBound ( string $lowerBound )
public SolrQuery setTermsMaxCount ( int $frequency )
public SolrQuery setTermsMinCount ( int $frequency )
public SolrQuery setTermsPrefix ( string $prefix )
public SolrQuery setTermsReturnRaw ( bool $flag )
public SolrQuery setTermsSort ( int $sortType )
public SolrQuery setTermsUpperBound ( string $upperBound )
public SolrQuery setTimeAllowed ( int $timeAllowed )
/* Наследуемые методы */
public SolrModifiableParams::__construct ( void )
public void SolrModifiableParams::__destruct ( void )
}

Предопределенные константы

SolrQuery::ORDER_ASC

Used to specify that the sorting should be in acending order

SolrQuery::ORDER_DESC

Used to specify that the sorting should be in descending order

SolrQuery::FACET_SORT_INDEX

Used to specify that the facet should sort by index

SolrQuery::FACET_SORT_COUNT

Used to specify that the facet should sort by count

SolrQuery::TERMS_SORT_INDEX

Used in the TermsComponent

SolrQuery::TERMS_SORT_COUNT

Used in the TermsComponent

Содержание

  • SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::addFacetDateField — Maps to facet.date
  • SolrQuery::addFacetDateOther — Adds another facet.date.other parameter
  • SolrQuery::addFacetField — Adds another field to the facet
  • SolrQuery::addFacetQuery — Adds a facet query
  • SolrQuery::addField — Specifies which fields to return in the result
  • SolrQuery::addFilterQuery — Specifies a filter query
  • SolrQuery::addGroupField — Add a field to be used to group results.
  • SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery — Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter).
  • SolrQuery::addHighlightField — Maps to hl.fl
  • SolrQuery::addMltField — Sets a field to use for similarity
  • SolrQuery::addMltQueryField — Maps to mlt.qf
  • SolrQuery::addSortField — Used to control how the results should be sorted
  • SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet
  • SolrQuery::addStatsField — Maps to stats.field parameter
  • SolrQuery::collapse — Collapses the result set to a single document per group
  • SolrQuery::__construct — Constructor
  • SolrQuery::__destruct — Destructor
  • SolrQuery::getExpand — Returns true if group expanding is enabled
  • SolrQuery::getExpandFilterQueries — Returns the expand filter queries
  • SolrQuery::getExpandQuery — Returns the expand query expand.q parameter
  • SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)
  • SolrQuery::getExpandSortFields — Returns an array of fields
  • SolrQuery::getFacet — Returns the value of the facet parameter
  • SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter
  • SolrQuery::getFacetDateFields — Returns all the facet.date fields
  • SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter
  • SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter
  • SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter
  • SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field
  • SolrQuery::getFacetFields — Returns all the facet fields
  • SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields
  • SolrQuery::getFacetMethod — Returns the value of the facet.method parameter
  • SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response
  • SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter
  • SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination
  • SolrQuery::getFacetPrefix — Returns the facet prefix
  • SolrQuery::getFacetQueries — Returns all the facet queries
  • SolrQuery::getFacetSort — Returns the facet sort type
  • SolrQuery::getFields — Returns the list of fields that will be returned in the response
  • SolrQuery::getFilterQueries — Returns an array of filter queries
  • SolrQuery::getGroup — Returns true if grouping is enabled
  • SolrQuery::getGroupCachePercent — Returns group cache percent value
  • SolrQuery::getGroupFacet — Returns the group.facet parameter value
  • SolrQuery::getGroupFields — Returns group fields (group.field parameter values)
  • SolrQuery::getGroupFormat — Returns the group.format value
  • SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)
  • SolrQuery::getGroupLimit — Returns the group.limit value
  • SolrQuery::getGroupMain — Returns the group.main value
  • SolrQuery::getGroupNGroups — Returns the group.ngroups value
  • SolrQuery::getGroupOffset — Returns the group.offset value
  • SolrQuery::getGroupQueries — Returns all the group.query parameter values
  • SolrQuery::getGroupSortFields — Returns the group.sort value
  • SolrQuery::getGroupTruncate — Returns the group.truncate value
  • SolrQuery::getHighlight — Returns the state of the hl parameter
  • SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default
  • SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for
  • SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output
  • SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text
  • SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting
  • SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
  • SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return
  • SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets
  • SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment
  • SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter
  • SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting
  • SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size
  • SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field
  • SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term
  • SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term
  • SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field
  • SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter
  • SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled
  • SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance
  • SolrQuery::getMltCount — Returns the number of similar documents to return for each result
  • SolrQuery::getMltFields — Returns all the fields to use for similarity
  • SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query
  • SolrQuery::getMltMaxNumTokens — Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support
  • SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored
  • SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs
  • SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document
  • SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored
  • SolrQuery::getMltQueryFields — Returns the query fields and their boosts
  • SolrQuery::getQuery — Returns the main query
  • SolrQuery::getRows — Returns the maximum number of documents
  • SolrQuery::getSortFields — Returns all the sort fields
  • SolrQuery::getStart — Returns the offset in the complete result set
  • SolrQuery::getStats — Returns whether or not stats is enabled
  • SolrQuery::getStatsFacets — Returns all the stats facets that were set
  • SolrQuery::getStatsFields — Returns all the statistics fields
  • SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled
  • SolrQuery::getTermsField — Returns the field from which the terms are retrieved
  • SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set
  • SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set
  • SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return
  • SolrQuery::getTermsLowerBound — Returns the term to start at
  • SolrQuery::getTermsMaxCount — Returns the maximum document frequency
  • SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included
  • SolrQuery::getTermsPrefix — Returns the term prefix
  • SolrQuery::getTermsReturnRaw — Whether or not to return raw characters
  • SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted
  • SolrQuery::getTermsUpperBound — Returns the term to stop at
  • SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish
  • SolrQuery::removeExpandFilterQuery — Removes an expand filter query
  • SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::removeFacetDateField — Removes one of the facet date fields
  • SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters
  • SolrQuery::removeFacetField — Removes one of the facet.date parameters
  • SolrQuery::removeFacetQuery — Removes one of the facet.query parameters
  • SolrQuery::removeField — Removes a field from the list of fields
  • SolrQuery::removeFilterQuery — Removes a filter query
  • SolrQuery::removeHighlightField — Removes one of the fields used for highlighting
  • SolrQuery::removeMltField — Removes one of the moreLikeThis fields
  • SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields
  • SolrQuery::removeSortField — Removes one of the sort fields
  • SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters
  • SolrQuery::removeStatsField — Removes one of the stats.field parameters
  • SolrQuery::setEchoHandler — Toggles the echoHandler parameter
  • SolrQuery::setEchoParams — Determines what kind of parameters to include in the response
  • SolrQuery::setExpand — Enables/Disables the Expand Component
  • SolrQuery::setExpandQuery — Sets the expand.q parameter
  • SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExplainOther — Sets the explainOther common query parameter
  • SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting
  • SolrQuery::setFacetDateEnd — Maps to facet.date.end
  • SolrQuery::setFacetDateGap — Maps to facet.date.gap
  • SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend
  • SolrQuery::setFacetDateStart — Maps to facet.date.start
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count
  • SolrQuery::setFacetLimit — Maps to facet.limit
  • SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field
  • SolrQuery::setFacetMinCount — Maps to facet.mincount
  • SolrQuery::setFacetMissing — Maps to facet.missing
  • SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination
  • SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet
  • SolrQuery::setFacetSort — Determines the ordering of the facet field constraints
  • SolrQuery::setGroup — Enable/Disable result grouping (group parameter)
  • SolrQuery::setGroupCachePercent — Enables caching for result grouping
  • SolrQuery::setGroupFacet — Sets group.facet parameter
  • SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupOffset — Sets the group.offset parameter.
  • SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setHighlight — Enables or disables highlighting
  • SolrQuery::setHighlightAlternateField — Specifies the backup field to use
  • SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output
  • SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text
  • SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting
  • SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms
  • SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return
  • SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets
  • SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment
  • SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze
  • SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting
  • SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size
  • SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting
  • SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term
  • SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term
  • SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field
  • SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase
  • SolrQuery::setMlt — Enables or disables moreLikeThis
  • SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance
  • SolrQuery::setMltCount — Set the number of similar documents to return for each result
  • SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included
  • SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse
  • SolrQuery::setMltMaxWordLength — Sets the maximum word length
  • SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency
  • SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs
  • SolrQuery::setMltMinWordLength — Sets the minimum word length
  • SolrQuery::setOmitHeader — Exclude the header from the returned results
  • SolrQuery::setQuery — Sets the search query
  • SolrQuery::setRows — Specifies the maximum number of rows to return in the result
  • SolrQuery::setShowDebugInfo — Flag to show debug information
  • SolrQuery::setStart — Specifies the number of rows to skip
  • SolrQuery::setStats — Enables or disables the Stats component
  • SolrQuery::setTerms — Enables or disables the TermsComponent
  • SolrQuery::setTermsField — Sets the name of the field to get the Terms from
  • SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set
  • SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set
  • SolrQuery::setTermsLimit — Sets the maximum number of terms to return
  • SolrQuery::setTermsLowerBound — Specifies the Term to start from
  • SolrQuery::setTermsMaxCount — Sets the maximum document frequency
  • SolrQuery::setTermsMinCount — Sets the minimum document frequency
  • SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix
  • SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term
  • SolrQuery::setTermsSort — Specifies how to sort the returned terms
  • SolrQuery::setTermsUpperBound — Sets the term to stop at
  • SolrQuery::setTimeAllowed — The time allowed for search to finish


Overrides main filter query, determines which documents to include in the main group.

  • « SolrQuery
  • SolrQuery::addExpandSortField »
  • PHP Manual
  • SolrQuery
  • Overrides main filter query, determines which documents to include in the main group.

SolrQuery::addExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::addExpandFilterQuery — Overrides main filter query, determines which documents to include in the main group.

Описание

public SolrQuery SolrQuery::addExpandFilterQuery ( string $fq )

Overrides main filter query, determines which documents to include in the main group.

Список параметров

fq

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Orders the documents within the expanded groups (expand.sort parameter).

  • « SolrQuery::addExpandFilterQuery
  • SolrQuery::addFacetDateField »
  • PHP Manual
  • SolrQuery
  • Orders the documents within the expanded groups (expand.sort parameter).

SolrQuery::addExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::addExpandSortField — Orders the documents within the expanded groups (expand.sort parameter).

Описание

public SolrQuery SolrQuery::addExpandSortField ( string $field [, string $order ] )

Orders the documents within the expanded groups (expand.sort parameter).

Список параметров

field

field name

order

Order ASC/DESC, utilizes SolrQuery::ORDER_* constants.

Default: SolrQuery::ORDER_DESC

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Maps to facet.date

  • « SolrQuery::addExpandSortField
  • SolrQuery::addFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date

SolrQuery::addFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateField — Maps to facet.date

Описание

public SolrQuery SolrQuery::addFacetDateField ( string $dateField )

This method allows you to specify a field which should be treated as a facet.

It can be used multiple times with different field names to indicate multiple facet fields

Список параметров

dateField

The name of the date field.

Возвращаемые значения

Returns a SolrQuery object.


Adds another facet.date.other parameter

  • « SolrQuery::addFacetDateField
  • SolrQuery::addFacetField »
  • PHP Manual
  • SolrQuery
  • Adds another facet.date.other parameter

SolrQuery::addFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::addFacetDateOther — Adds another facet.date.other parameter

Описание

public SolrQuery SolrQuery::addFacetDateOther ( string $value [, string $field_override ] )

Sets the facet.date.other parameter. Accepts an optional field override

Список параметров

value

The value to use.

field_override

The field name for the override.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Adds another field to the facet

  • « SolrQuery::addFacetDateOther
  • SolrQuery::addFacetQuery »
  • PHP Manual
  • SolrQuery
  • Adds another field to the facet

SolrQuery::addFacetField

(PECL solr >= 0.9.2)

SolrQuery::addFacetField — Adds another field to the facet

Описание

public SolrQuery SolrQuery::addFacetField ( string $field )

Adds another field to the facet

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.

Примеры

Пример #1 SolrQuery::addFacetField() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery($query);

$query->addField('price')->addField('color');

$query->setFacet(true);

$query->addFacetField('price')->addFacetField('color');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response['facet_counts']['facet_fields']);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [color] => SolrObject Object
        (
            [blue] => 20
            [green] => 100
        )

)


Adds a facet query

  • « SolrQuery::addFacetField
  • SolrQuery::addField »
  • PHP Manual
  • SolrQuery
  • Adds a facet query

SolrQuery::addFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::addFacetQuery — Adds a facet query

Описание

public SolrQuery SolrQuery::addFacetQuery ( string $facetQuery )

Adds a facet query

Список параметров

facetQuery

The facet query

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.

Примеры

Пример #1 SolrQuery::addFacetField() example

<?php

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$query->setFacet(true);

$query->addFacetQuery('price:[* TO 500]')->addFacetQuery('price:[500 TO *]');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response->facet_counts->facet_queries);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [price:[* TO 500]] => 14
    [price:[500 TO *]] => 2
)


Specifies which fields to return in the result

  • « SolrQuery::addFacetQuery
  • SolrQuery::addFilterQuery »
  • PHP Manual
  • SolrQuery
  • Specifies which fields to return in the result

SolrQuery::addField

(PECL solr >= 0.9.2)

SolrQuery::addField — Specifies which fields to return in the result

Описание

public SolrQuery SolrQuery::addField ( string $field )

This method is used to used to specify a set of fields to return, thereby restricting the amount of data returned in the response.

It should be called multiple time, once for each field name.

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object


Specifies a filter query

  • « SolrQuery::addField
  • SolrQuery::addGroupField »
  • PHP Manual
  • SolrQuery
  • Specifies a filter query

SolrQuery::addFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::addFilterQuery — Specifies a filter query

Описание

public SolrQuery SolrQuery::addFilterQuery ( string $fq )

Specifies a filter query

Список параметров

fq

The filter query

Возвращаемые значения

Returns the current SolrQuery object.

Примеры

Пример #1 SolrQuery::addFilterQuery() example

<?php

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
);

$client = new SolrClient($options);

$query = new SolrQuery();

$query->setQuery('*:*');

$query->addFilterQuery('color:blue,green');

$query_response = $client->query($query);

$response = $query_response->getResponse();

print_r($response['facet_counts']['facet_fields']);

?>

Результатом выполнения данного примера будет что-то подобное:

 &fq=color:blue,green


Add a field to be used to group results.

  • « SolrQuery::addFilterQuery
  • SolrQuery::addGroupFunction »
  • PHP Manual
  • SolrQuery
  • Add a field to be used to group results.

SolrQuery::addGroupField

(PECL solr >= 2.2.0)

SolrQuery::addGroupField — Add a field to be used to group results.

Описание

public SolrQuery SolrQuery::addGroupField ( string $value )

The name of the field by which to group results. The field must be single-valued, and either be indexed or a field type that has a value source and works in a function query, such as ExternalFileField. It must also be a string-based field, such as StrField or TextField Uses group.field parameter

Список параметров

value

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Allows grouping results based on the unique values of a function query (group.func parameter).

  • « SolrQuery::addGroupField
  • SolrQuery::addGroupQuery »
  • PHP Manual
  • SolrQuery
  • Allows grouping results based on the unique values of a function query (group.func parameter).

SolrQuery::addGroupFunction

(PECL solr >= 2.2.0)

SolrQuery::addGroupFunction — Allows grouping results based on the unique values of a function query (group.func parameter).

Описание

public SolrQuery SolrQuery::addGroupFunction ( string $value )

Adds a group function (group.func parameter) Allows grouping results based on the unique values of a function query.

Список параметров

value

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Allows grouping of documents that match the given query.

  • « SolrQuery::addGroupFunction
  • SolrQuery::addGroupSortField »
  • PHP Manual
  • SolrQuery
  • Allows grouping of documents that match the given query.

SolrQuery::addGroupQuery

(PECL solr >= 2.2.0)

SolrQuery::addGroupQuery — Allows grouping of documents that match the given query.

Описание

public SolrQuery SolrQuery::addGroupQuery ( string $value )

Allows grouping of documents that match the given query. Adds query to the group.query parameter

Список параметров

value

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Add a group sort field (group.sort parameter).

  • « SolrQuery::addGroupQuery
  • SolrQuery::addHighlightField »
  • PHP Manual
  • SolrQuery
  • Add a group sort field (group.sort parameter).

SolrQuery::addGroupSortField

(PECL solr >= 2.2.0)

SolrQuery::addGroupSortField — Add a group sort field (group.sort parameter).

Описание

public SolrQuery SolrQuery::addGroupSortField ( string $field [, integer $order ] )

Allow sorting group documents, using group sort field (group.sort parameter).

Список параметров

field

Field name

order

Order ASC/DESC, utilizes SolrQuery::ORDER_* constants

Возвращаемые значения

Примеры

Пример #1 SolrQuery::addGroupSortField() example

<?php

$solrQuery = new SolrQuery('*:*');
$solrQuery
    ->setGroup(true)
    ->addGroupSortField('price', SolrQuery::ORDER_ASC);

echo $solrQuery;
?>

Результатом выполнения данного примера будет что-то подобное:

q=*:*&group=true&group.sort=price asc

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Maps to hl.fl

  • « SolrQuery::addGroupSortField
  • SolrQuery::addMltField »
  • PHP Manual
  • SolrQuery
  • Maps to hl.fl

SolrQuery::addHighlightField

(PECL solr >= 0.9.2)

SolrQuery::addHighlightField — Maps to hl.fl

Описание

public SolrQuery SolrQuery::addHighlightField ( string $field )

Maps to hl.fl. This is used to specify that highlighted snippets should be generated for a particular field

Список параметров

field

Name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets a field to use for similarity

  • « SolrQuery::addHighlightField
  • SolrQuery::addMltQueryField »
  • PHP Manual
  • SolrQuery
  • Sets a field to use for similarity

SolrQuery::addMltField

(PECL solr >= 0.9.2)

SolrQuery::addMltField — Sets a field to use for similarity

Описание

public SolrQuery SolrQuery::addMltField ( string $field )

Maps to mlt.fl. It specifies that a field should be used for similarity.

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to mlt.qf

  • « SolrQuery::addMltField
  • SolrQuery::addSortField »
  • PHP Manual
  • SolrQuery
  • Maps to mlt.qf

SolrQuery::addMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::addMltQueryField — Maps to mlt.qf

Описание

public SolrQuery SolrQuery::addMltQueryField ( string $field , float $boost )

Maps to mlt.qf. It is used to specify query fields and their boosts

Список параметров

field

The name of the field

boost

Its boost value

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Used to control how the results should be sorted

  • « SolrQuery::addMltQueryField
  • SolrQuery::addStatsFacet »
  • PHP Manual
  • SolrQuery
  • Used to control how the results should be sorted

SolrQuery::addSortField

(PECL solr >= 0.9.2)

SolrQuery::addSortField — Used to control how the results should be sorted

Описание

public SolrQuery SolrQuery::addSortField ( string $field [, int $order = SolrQuery::ORDER_DESC ] )

Used to control how the results should be sorted.

Список параметров

field

The name of the field

order

The sort direction. This should be either SolrQuery::ORDER_ASC or SolrQuery::ORDER_DESC.

Возвращаемые значения

Returns the current SolrQuery object.


Requests a return of sub results for values within the given facet

  • « SolrQuery::addSortField
  • SolrQuery::addStatsField »
  • PHP Manual
  • SolrQuery
  • Requests a return of sub results for values within the given facet

SolrQuery::addStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::addStatsFacet — Requests a return of sub results for values within the given facet

Описание

public SolrQuery SolrQuery::addStatsFacet ( string $field )

Requests a return of sub results for values within the given facet. Maps to the stats.facet field

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to stats.field parameter

  • « SolrQuery::addStatsFacet
  • SolrQuery::collapse »
  • PHP Manual
  • SolrQuery
  • Maps to stats.field parameter

SolrQuery::addStatsField

(PECL solr >= 0.9.2)

SolrQuery::addStatsField — Maps to stats.field parameter

Описание

public SolrQuery SolrQuery::addStatsField ( string $field )

Maps to stats.field parameter This methods adds another stats.field parameter.

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Collapses the result set to a single document per group

  • « SolrQuery::addStatsField
  • SolrQuery::__construct »
  • PHP Manual
  • SolrQuery
  • Collapses the result set to a single document per group

SolrQuery::collapse

(Информация о версии неизвестна, возможно, только в SVN)

SolrQuery::collapse — Collapses the result set to a single document per group

Описание

public SolrQuery SolrQuery::collapse ( SolrCollapseFunction $collapseFunction )

Collapses the result set to a single document per group before it forwards the result set to the rest of the search components.

So all downstream components (faceting, highlighting, etc...) will work with the collapsed result set.

Список параметров

collapseFunction

Возвращаемые значения

Returns the current SolrQuery object

Примеры

Пример #1 SolrQuery::collapse() example

<?php

include "bootstrap.php";

$options = array
(
        'hostname' => SOLR_SERVER_HOSTNAME,
        'login'    => SOLR_SERVER_USERNAME,
        'password' => SOLR_SERVER_PASSWORD,
        'port'     => SOLR_SERVER_PORT,
        'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$collapseFunction = new SolrCollapseFunction('manu_id_s');

$collapseFunction
->setSize(2)
->setNullPolicy(SolrCollapseFunction::NULLPOLICY_IGNORE);

$query
->collapse($collapseFunction)
->setRows(4);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);

?>

Результатом выполнения данного примера будет что-то подобное:

SolrObject Object
(
    [responseHeader] => SolrObject Object
        (
            [status] => 0
            [QTime] => 1
            [params] => SolrObject Object
                (
                    [q] => *:*
                    [indent] => on
                    [fq] => {!collapse field=manu_id_s size=2 nullPolicy=ignore}
                    [rows] => 4
                    [version] => 2.2
                    [wt] => xml
                )

        )

    [response] => SolrObject Object
        (
            [numFound] => 14
            [start] => 0
            [docs] => Array
                (
                    [0] => SolrObject Object
                        (
                            [id] => SP2514N
                            [name] => Array
                                (
                                    [0] => Samsung SpinPoint P120 SP2514N - hard drive - 250 GB - ATA-133
                                )

                            [manu] => Array
                                (
                                    [0] => Samsung Electronics Co. Ltd.
                                )

                            [manu_id_s] => samsung
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => 7200RPM, 8MB cache, IDE Ultra ATA-133
                                    [1] => NoiseGuard, SilentSeek technology, Fluid Dynamic Bearing (FDB) motor
                                )

                            [price] => Array
                                (
                                    [0] => 92
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [store] => Array
                                (
                                    [0] => 35.0752,-97.032
                                )

                            [_version_] => 1510294336412057600
                        )

                    [1] => SolrObject Object
                        (
                            [id] => 6H500F0
                            [name] => Array
                                (
                                    [0] => Maxtor DiamondMax 11 - hard drive - 500 GB - SATA-300
                                )

                            [manu] => Array
                                (
                                    [0] => Maxtor Corp.
                                )

                            [manu_id_s] => maxtor
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => hard drive
                                )

                            [features] => Array
                                (
                                    [0] => SATA 3.0Gb/s, NCQ
                                    [1] => 8.5ms seek
                                    [2] => 16MB cache
                                )

                            [price] => Array
                                (
                                    [0] => 350
                                )

                            [popularity] => Array
                                (
                                    [0] => 6
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 45.17614,-93.87341
                                )

                            [manufacturedate_dt] => 2006-02-13T15:26:37Z
                            [_version_] => 1510294336449806336
                        )

                    [2] => SolrObject Object
                        (
                            [id] => F8V7067-APL-KIT
                            [name] => Array
                                (
                                    [0] => Belkin Mobile Power Cord for iPod w/ Dock
                                )

                            [manu] => Array
                                (
                                    [0] => Belkin
                                )

                            [manu_id_s] => belkin
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => connector
                                )

                            [features] => Array
                                (
                                    [0] => car power adapter, white
                                )

                            [weight] => Array
                                (
                                    [0] => 4
                                )

                            [price] => Array
                                (
                                    [0] => 19.95
                                )

                            [popularity] => Array
                                (
                                    [0] => 1
                                )

                            [inStock] => Array
                                (
                                    [0] =>
                                )

                            [store] => Array
                                (
                                    [0] => 45.18014,-93.87741
                                )

                            [manufacturedate_dt] => 2005-08-01T16:30:25Z
                            [_version_] => 1510294336458194944
                        )

                    [3] => SolrObject Object
                        (
                            [id] => MA147LL/A
                            [name] => Array
                                (
                                    [0] => Apple 60 GB iPod with Video Playback Black
                                )

                            [manu] => Array
                                (
                                    [0] => Apple Computer Inc.
                                )

                            [manu_id_s] => apple
                            [cat] => Array
                                (
                                    [0] => electronics
                                    [1] => music
                                )

                            [features] => Array
                                (
                                    [0] => iTunes, Podcasts, Audiobooks
                                    [1] => Stores up to 15,000 songs, 25,000 photos, or 150 hours of video
                                    [2] => 2.5-inch, 320x240 color TFT LCD display with LED backlight
                                    [3] => Up to 20 hours of battery life
                                    [4] => Plays AAC, MP3, WAV, AIFF, Audible, Apple Lossless, H.264 video
                                    [5] => Notes, Calendar, Phone book, Hold button, Date display, Photo wallet, Built-in games, JPEG photo playback, Upgradeable firmware, USB 2.0 compatibility, Playback speed control, Rechargeable capability, Battery level indication
                                )

                            [includes] => Array
                                (
                                    [0] => earbud headphones, USB cable
                                )

                            [weight] => Array
                                (
                                    [0] => 5.5
                                )

                            [price] => Array
                                (
                                    [0] => 399
                                )

                            [popularity] => Array
                                (
                                    [0] => 10
                                )

                            [inStock] => Array
                                (
                                    [0] => 1
                                )

                            [store] => Array
                                (
                                    [0] => 37.7752,-100.0232
                                )

                            [manufacturedate_dt] => 2005-10-12T08:00:00Z
                            [_version_] => 1510294336562003968
                        )

                )

        )

)


Constructor

  • « SolrQuery::collapse
  • SolrQuery::__destruct »
  • PHP Manual
  • SolrQuery
  • Constructor

SolrQuery::__construct

(PECL solr >= 0.9.2)

SolrQuery::__construct — Constructor

Описание

public SolrQuery::__construct ([ string $q ] )

Constructor.

Список параметров

q

Optional search query

Возвращаемые значения

None

Ошибки

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Список изменений

Версия | Описание
2.0.0 | If q was invalid, then a SolrIllegalArgumentException is now thrown. Previously an error was emitted.


Destructor

  • « SolrQuery::__construct
  • SolrQuery::getExpand »
  • PHP Manual
  • SolrQuery
  • Destructor

SolrQuery::__destruct

(PECL solr >= 0.9.2)

SolrQuery::__destruct — Destructor

Описание

public void SolrQuery::__destruct ( void )

Destructor

Список параметров

У этой функции нет параметров.

Возвращаемые значения

None.


Returns true if group expanding is enabled

  • « SolrQuery::__destruct
  • SolrQuery::getExpandFilterQueries »
  • PHP Manual
  • SolrQuery
  • Returns true if group expanding is enabled

SolrQuery::getExpand

(PECL solr >= 2.2.0)

SolrQuery::getExpand — Returns true if group expanding is enabled

Описание

public bool SolrQuery::getExpand ( void )

Returns TRUE if group expanding is enabled


Returns the expand filter queries

  • « SolrQuery::getExpand
  • SolrQuery::getExpandQuery »
  • PHP Manual
  • SolrQuery
  • Returns the expand filter queries

SolrQuery::getExpandFilterQueries

(PECL solr >= 2.2.0)

SolrQuery::getExpandFilterQueries — Returns the expand filter queries

Описание

public array SolrQuery::getExpandFilterQueries ( void )

Returns the expand filter queries


Returns the expand query expand.q parameter

  • « SolrQuery::getExpandFilterQueries
  • SolrQuery::getExpandRows »
  • PHP Manual
  • SolrQuery
  • Returns the expand query expand.q parameter

SolrQuery::getExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::getExpandQuery — Returns the expand query expand.q parameter

Описание

public array SolrQuery::getExpandQuery ( void )

Returns the expand query expand.q parameter


Returns The number of rows to display in each group (expand.rows)

  • « SolrQuery::getExpandQuery
  • SolrQuery::getExpandSortFields »
  • PHP Manual
  • SolrQuery
  • Returns The number of rows to display in each group (expand.rows)

SolrQuery::getExpandRows

(PECL solr >= 2.2.0)

SolrQuery::getExpandRows — Returns The number of rows to display in each group (expand.rows)

Описание

public integer SolrQuery::getExpandRows ( void )

Returns The number of rows to display in each group (expand.rows)


Returns an array of fields

  • « SolrQuery::getExpandRows
  • SolrQuery::getFacet »
  • PHP Manual
  • SolrQuery
  • Returns an array of fields

SolrQuery::getExpandSortFields

(PECL solr >= 2.2.0)

SolrQuery::getExpandSortFields — Returns an array of fields

Описание

public array SolrQuery::getExpandSortFields ( void )

Returns an array of fields


Returns the value of the facet parameter

  • « SolrQuery::getExpandSortFields
  • SolrQuery::getFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet parameter

SolrQuery::getFacet

(PECL solr >= 0.9.2)

SolrQuery::getFacet — Returns the value of the facet parameter

Описание

public bool SolrQuery::getFacet ( void )

Returns the value of the facet parameter.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set


Returns the value for the facet.date.end parameter

  • « SolrQuery::getFacet
  • SolrQuery::getFacetDateFields »
  • PHP Manual
  • SolrQuery
  • Returns the value for the facet.date.end parameter

SolrQuery::getFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateEnd — Returns the value for the facet.date.end parameter

Описание

public string SolrQuery::getFacetDateEnd ([ string $field_override ] )

Returns the value for the facet.date.end parameter. This method accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set


Returns all the facet.date fields

  • « SolrQuery::getFacetDateEnd
  • SolrQuery::getFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Returns all the facet.date fields

SolrQuery::getFacetDateFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateFields — Returns all the facet.date fields

Описание

public array SolrQuery::getFacetDateFields ( void )

Returns all the facet.date fields

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns all the facet.date fields as an array or NULL if none was set


Returns the value of the facet.date.gap parameter

  • « SolrQuery::getFacetDateFields
  • SolrQuery::getFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.date.gap parameter

SolrQuery::getFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateGap — Returns the value of the facet.date.gap parameter

Описание

public string SolrQuery::getFacetDateGap ([ string $field_override ] )

Returns the value of the facet.date.gap parameter. It accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set


Returns the value of the facet.date.hardend parameter

  • « SolrQuery::getFacetDateGap
  • SolrQuery::getFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.date.hardend parameter

SolrQuery::getFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateHardEnd — Returns the value of the facet.date.hardend parameter

Описание

public string SolrQuery::getFacetDateHardEnd ([ string $field_override ] )

Returns the value of the facet.date.hardend parameter. Accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set


Returns the value for the facet.date.other parameter

  • « SolrQuery::getFacetDateHardEnd
  • SolrQuery::getFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Returns the value for the facet.date.other parameter

SolrQuery::getFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateOther — Returns the value for the facet.date.other parameter

Описание

public array SolrQuery::getFacetDateOther ([ string $field_override ] )

Returns the value for the facet.date.other parameter. This method accepts an optional field override.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the lower bound for the first date range for all date faceting on this field

  • « SolrQuery::getFacetDateOther
  • SolrQuery::getFacetFields »
  • PHP Manual
  • SolrQuery
  • Returns the lower bound for the first date range for all date faceting on this field

SolrQuery::getFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::getFacetDateStart — Returns the lower bound for the first date range for all date faceting on this field

Описание

public string SolrQuery::getFacetDateStart ([ string $field_override ] )

Returns the lower bound for the first date range for all date faceting on this field. Accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set


Returns all the facet fields

  • « SolrQuery::getFacetDateStart
  • SolrQuery::getFacetLimit »
  • PHP Manual
  • SolrQuery
  • Returns all the facet fields

SolrQuery::getFacetFields

(PECL solr >= 0.9.2)

SolrQuery::getFacetFields — Returns all the facet fields

Описание

public array SolrQuery::getFacetFields ( void )

Returns all the facet fields

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array of all the fields and NULL if none was set


Returns the maximum number of constraint counts that should be returned for the facet fields

  • « SolrQuery::getFacetFields
  • SolrQuery::getFacetMethod »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of constraint counts that should be returned for the facet fields

SolrQuery::getFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::getFacetLimit — Returns the maximum number of constraint counts that should be returned for the facet fields

Описание

public int SolrQuery::getFacetLimit ([ string $field_override ] )

Returns the maximum number of constraint counts that should be returned for the facet fields. This method accepts an optional field override

Список параметров

field_override

The name of the field to override for

Возвращаемые значения

Returns an integer on success and NULL if not set


Returns the value of the facet.method parameter

  • « SolrQuery::getFacetLimit
  • SolrQuery::getFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Returns the value of the facet.method parameter

SolrQuery::getFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::getFacetMethod — Returns the value of the facet.method parameter

Описание

public string SolrQuery::getFacetMethod ([ string $field_override ] )

Returns the value of the facet.method parameter. This accepts an optional field override.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set


Returns the minimum counts for facet fields should be included in the response

  • « SolrQuery::getFacetMethod
  • SolrQuery::getFacetMissing »
  • PHP Manual
  • SolrQuery
  • Returns the minimum counts for facet fields should be included in the response

SolrQuery::getFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::getFacetMinCount — Returns the minimum counts for facet fields should be included in the response

Описание

public int SolrQuery::getFacetMinCount ([ string $field_override ] )

Returns the minimum counts for facet fields should be included in the response. It accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns an integer on success and NULL if not set


Returns the current state of the facet.missing parameter

  • « SolrQuery::getFacetMinCount
  • SolrQuery::getFacetOffset »
  • PHP Manual
  • SolrQuery
  • Returns the current state of the facet.missing parameter

SolrQuery::getFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::getFacetMissing — Returns the current state of the facet.missing parameter

Описание

public bool SolrQuery::getFacetMissing ([ string $field_override ] )

Returns the current state of the facet.missing parameter. This accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a boolean on success and NULL if not set


Returns an offset into the list of constraints to be used for pagination

  • « SolrQuery::getFacetMissing
  • SolrQuery::getFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Returns an offset into the list of constraints to be used for pagination

SolrQuery::getFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::getFacetOffset — Returns an offset into the list of constraints to be used for pagination

Описание

public int SolrQuery::getFacetOffset ([ string $field_override ] )

Returns an offset into the list of constraints to be used for pagination. Accepts an optional field override

Список параметров

field_override

The name of the field to override for.

Возвращаемые значения

Returns an integer on success and NULL if not set


Returns the facet prefix

  • « SolrQuery::getFacetOffset
  • SolrQuery::getFacetQueries »
  • PHP Manual
  • SolrQuery
  • Returns the facet prefix

SolrQuery::getFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::getFacetPrefix — Returns the facet prefix

Описание

public string SolrQuery::getFacetPrefix ([ string $field_override ] )

Returns the facet prefix

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns all the facet queries

  • « SolrQuery::getFacetPrefix
  • SolrQuery::getFacetSort »
  • PHP Manual
  • SolrQuery
  • Returns all the facet queries

SolrQuery::getFacetQueries

(PECL solr >= 0.9.2)

SolrQuery::getFacetQueries — Returns all the facet queries

Описание

public array SolrQuery::getFacetQueries ( void )

Returns all the facet queries

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns the facet sort type

  • « SolrQuery::getFacetQueries
  • SolrQuery::getFields »
  • PHP Manual
  • SolrQuery
  • Returns the facet sort type

SolrQuery::getFacetSort

(PECL solr >= 0.9.2)

SolrQuery::getFacetSort — Returns the facet sort type

Описание

public int SolrQuery::getFacetSort ([ string $field_override ] )

Returns an integer (SolrQuery::FACET_SORT_INDEX or SolrQuery::FACET_SORT_COUNT)

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns an integer (SolrQuery::FACET_SORT_INDEX or SolrQuery::FACET_SORT_COUNT) on success or NULL if not set.


Returns the list of fields that will be returned in the response

  • « SolrQuery::getFacetSort
  • SolrQuery::getFilterQueries »
  • PHP Manual
  • SolrQuery
  • Returns the list of fields that will be returned in the response

SolrQuery::getFields

(PECL solr >= 0.9.2)

SolrQuery::getFields — Returns the list of fields that will be returned in the response

Описание

public array SolrQuery::getFields ( void )

Returns the list of fields that will be returned in the response

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns an array of filter queries

  • « SolrQuery::getFields
  • SolrQuery::getGroup »
  • PHP Manual
  • SolrQuery
  • Returns an array of filter queries

SolrQuery::getFilterQueries

(PECL solr >= 0.9.2)

SolrQuery::getFilterQueries — Returns an array of filter queries

Описание

public array SolrQuery::getFilterQueries ( void )

Returns an array of filter queries. These are queries that can be used to restrict the super set of documents that can be returned, without influencing score

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns true if grouping is enabled

  • « SolrQuery::getFilterQueries
  • SolrQuery::getGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Returns true if grouping is enabled

SolrQuery::getGroup

(PECL solr >= 2.2.0)

SolrQuery::getGroup — Returns true if grouping is enabled

Описание

public bool SolrQuery::getGroup ( void )

Returns true if grouping is enabled

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)


Returns group cache percent value

  • « SolrQuery::getGroup
  • SolrQuery::getGroupFacet »
  • PHP Manual
  • SolrQuery
  • Returns group cache percent value

SolrQuery::getGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::getGroupCachePercent — Returns group cache percent value

Описание

public integer SolrQuery::getGroupCachePercent ( void )

Returns group cache percent value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Returns the group.facet parameter value

  • « SolrQuery::getGroupCachePercent
  • SolrQuery::getGroupFields »
  • PHP Manual
  • SolrQuery
  • Returns the group.facet parameter value

SolrQuery::getGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::getGroupFacet — Returns the group.facet parameter value

Описание

public bool SolrQuery::getGroupFacet ( void )

Returns the group.facet parameter value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupFacet() - Sets group.facet parameter


Returns group fields (group.field parameter values)

  • « SolrQuery::getGroupFacet
  • SolrQuery::getGroupFormat »
  • PHP Manual
  • SolrQuery
  • Returns group fields (group.field parameter values)

SolrQuery::getGroupFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupFields — Returns group fields (group.field parameter values)

Описание

public array SolrQuery::getGroupFields ( void )

Returns group fields (group.field parameter values)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::addGroupField() - Add a field to be used to group results.


Returns the group.format value

  • « SolrQuery::getGroupFields
  • SolrQuery::getGroupFunctions »
  • PHP Manual
  • SolrQuery
  • Returns the group.format value

SolrQuery::getGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::getGroupFormat — Returns the group.format value

Описание

public string SolrQuery::getGroupFormat ( void )

Returns the group.format value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).


Returns group functions (group.func parameter values)

  • « SolrQuery::getGroupFormat
  • SolrQuery::getGroupLimit »
  • PHP Manual
  • SolrQuery
  • Returns group functions (group.func parameter values)

SolrQuery::getGroupFunctions

(PECL solr >= 2.2.0)

SolrQuery::getGroupFunctions — Returns group functions (group.func parameter values)

Описание

public array SolrQuery::getGroupFunctions ( void )

Returns group functions (group.func parameter values)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).


Returns the group.limit value

  • « SolrQuery::getGroupFunctions
  • SolrQuery::getGroupMain »
  • PHP Manual
  • SolrQuery
  • Returns the group.limit value

SolrQuery::getGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::getGroupLimit — Returns the group.limit value

Описание

public integer SolrQuery::getGroupLimit ( void )

Returns the group.limit value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.


Returns the group.main value

  • « SolrQuery::getGroupLimit
  • SolrQuery::getGroupNGroups »
  • PHP Manual
  • SolrQuery
  • Returns the group.main value

SolrQuery::getGroupMain

(PECL solr >= 2.2.0)

SolrQuery::getGroupMain — Returns the group.main value

Описание

public bool SolrQuery::getGroupMain ( void )

Returns the group.main value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.


Returns the group.ngroups value

  • « SolrQuery::getGroupMain
  • SolrQuery::getGroupOffset »
  • PHP Manual
  • SolrQuery
  • Returns the group.ngroups value

SolrQuery::getGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::getGroupNGroups — Returns the group.ngroups value

Описание

public bool SolrQuery::getGroupNGroups ( void )

Returns the group.ngroups value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.


Returns the group.offset value

  • « SolrQuery::getGroupNGroups
  • SolrQuery::getGroupQueries »
  • PHP Manual
  • SolrQuery
  • Returns the group.offset value

SolrQuery::getGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::getGroupOffset — Returns the group.offset value

Описание

public integer SolrQuery::getGroupOffset ( void )

Returns the group.offset value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.


Returns all the group.query parameter values

  • « SolrQuery::getGroupOffset
  • SolrQuery::getGroupSortFields »
  • PHP Manual
  • SolrQuery
  • Returns all the group.query parameter values

SolrQuery::getGroupQueries

(PECL solr >= 2.2.0)

SolrQuery::getGroupQueries — Returns all the group.query parameter values

Описание

public array SolrQuery::getGroupQueries ( void )

Returns all the group.query parameter values

Список параметров

У этой функции нет параметров.

Возвращаемые значения

array

Смотрите также

  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.


Returns the group.sort value

  • « SolrQuery::getGroupQueries
  • SolrQuery::getGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Returns the group.sort value

SolrQuery::getGroupSortFields

(PECL solr >= 2.2.0)

SolrQuery::getGroupSortFields — Returns the group.sort value

Описание

public array SolrQuery::getGroupSortFields ( void )

Returns the group.sort value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).


Returns the group.truncate value

  • « SolrQuery::getGroupSortFields
  • SolrQuery::getHighlight »
  • PHP Manual
  • SolrQuery
  • Returns the group.truncate value

SolrQuery::getGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::getGroupTruncate — Returns the group.truncate value

Описание

public bool SolrQuery::getGroupTruncate ( void )

Returns the group.truncate value

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.


Returns the state of the hl parameter

  • « SolrQuery::getGroupTruncate
  • SolrQuery::getHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Returns the state of the hl parameter

SolrQuery::getHighlight

(PECL solr >= 0.9.2)

SolrQuery::getHighlight — Returns the state of the hl parameter

Описание

public bool SolrQuery::getHighlight ( void )

Returns a boolean indicating whether or not to enable highlighted snippets to be generated in the query response.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the highlight field to use as backup or default

  • « SolrQuery::getHighlight
  • SolrQuery::getHighlightFields »
  • PHP Manual
  • SolrQuery
  • Returns the highlight field to use as backup or default

SolrQuery::getHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::getHighlightAlternateField — Returns the highlight field to use as backup or default

Описание

public string SolrQuery::getHighlightAlternateField ([ string $field_override ] )

Returns the highlight field to use as backup or default. It accepts an optional override.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns all the fields that Solr should generate highlighted snippets for

  • « SolrQuery::getHighlightAlternateField
  • SolrQuery::getHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Returns all the fields that Solr should generate highlighted snippets for

SolrQuery::getHighlightFields

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFields — Returns all the fields that Solr should generate highlighted snippets for

Описание

public array SolrQuery::getHighlightFields ( void )

Returns all the fields that Solr should generate highlighted snippets for

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns the formatter for the highlighted output

  • « SolrQuery::getHighlightFields
  • SolrQuery::getHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Returns the formatter for the highlighted output

SolrQuery::getHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFormatter — Returns the formatter for the highlighted output

Описание

public string SolrQuery::getHighlightFormatter ([ string $field_override ] )

Returns the formatter for the highlighted output

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the text snippet generator for highlighted text

  • « SolrQuery::getHighlightFormatter
  • SolrQuery::getHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Returns the text snippet generator for highlighted text

SolrQuery::getHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragmenter — Returns the text snippet generator for highlighted text

Описание

public string SolrQuery::getHighlightFragmenter ([ string $field_override ] )

Returns the text snippet generator for highlighted text. Accepts an optional field override.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the number of characters of fragments to consider for highlighting

  • « SolrQuery::getHighlightFragmenter
  • SolrQuery::getHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • Returns the number of characters of fragments to consider for highlighting

SolrQuery::getHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::getHighlightFragsize — Returns the number of characters of fragments to consider for highlighting

Описание

public int SolrQuery::getHighlightFragsize ([ string $field_override ] )

Returns the number of characters of fragments to consider for highlighting. Zero implies no fragmenting. The entire field should be used.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns an integer on success or NULL if not set.


Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

  • « SolrQuery::getHighlightFragsize
  • SolrQuery::getHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

SolrQuery::getHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::getHighlightHighlightMultiTerm — Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

Описание

public bool SolrQuery::getHighlightHighlightMultiTerm ( void )

Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the maximum number of characters of the field to return

  • « SolrQuery::getHighlightHighlightMultiTerm
  • SolrQuery::getHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters of the field to return

SolrQuery::getHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAlternateFieldLength — Returns the maximum number of characters of the field to return

Описание

public int SolrQuery::getHighlightMaxAlternateFieldLength ([ string $field_override ] )

Returns the maximum number of characters of the field to return

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the maximum number of characters into a document to look for suitable snippets

  • « SolrQuery::getHighlightMaxAlternateFieldLength
  • SolrQuery::getHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters into a document to look for suitable snippets

SolrQuery::getHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMaxAnalyzedChars — Returns the maximum number of characters into a document to look for suitable snippets

Описание

public int SolrQuery::getHighlightMaxAnalyzedChars ( void )

Returns the maximum number of characters into a document to look for suitable snippets

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns whether or not the collapse contiguous fragments into a single fragment

  • « SolrQuery::getHighlightMaxAnalyzedChars
  • SolrQuery::getHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the collapse contiguous fragments into a single fragment

SolrQuery::getHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::getHighlightMergeContiguous — Returns whether or not the collapse contiguous fragments into a single fragment

Описание

public bool SolrQuery::getHighlightMergeContiguous ([ string $field_override ] )

Returns whether or not the collapse contiguous fragments into a single fragment. Accepts an optional field override.

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the maximum number of characters from a field when using the regex fragmenter

  • « SolrQuery::getHighlightMergeContiguous
  • SolrQuery::getHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of characters from a field when using the regex fragmenter

SolrQuery::getHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexMaxAnalyzedChars — Returns the maximum number of characters from a field when using the regex fragmenter

Описание

public int SolrQuery::getHighlightRegexMaxAnalyzedChars ( void )

Returns the maximum number of characters from a field when using the regex fragmenter

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the regular expression for fragmenting

  • « SolrQuery::getHighlightRegexMaxAnalyzedChars
  • SolrQuery::getHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Returns the regular expression for fragmenting

SolrQuery::getHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexPattern — Returns the regular expression for fragmenting

Описание

public string SolrQuery::getHighlightRegexPattern ( void )

Returns the regular expression used for fragmenting

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the deviation factor from the ideal fragment size

  • « SolrQuery::getHighlightRegexPattern
  • SolrQuery::getHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Returns the deviation factor from the ideal fragment size

SolrQuery::getHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRegexSlop — Returns the deviation factor from the ideal fragment size

Описание

public float SolrQuery::getHighlightRegexSlop ( void )

Returns the factor by which the regex fragmenter can deviate from the ideal fragment size to accomodate the regular expression

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a double on success and NULL if not set.


Returns if a field will only be highlighted if the query matched in this particular field

  • « SolrQuery::getHighlightRegexSlop
  • SolrQuery::getHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Returns if a field will only be highlighted if the query matched in this particular field

SolrQuery::getHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::getHighlightRequireFieldMatch — Returns if a field will only be highlighted if the query matched in this particular field

Описание

public bool SolrQuery::getHighlightRequireFieldMatch ( void )

Returns if a field will only be highlighted if the query matched in this particular field.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the text which appears after a highlighted term

  • « SolrQuery::getHighlightRequireFieldMatch
  • SolrQuery::getHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Returns the text which appears after a highlighted term

SolrQuery::getHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePost — Returns the text which appears after a highlighted term

Описание

public string SolrQuery::getHighlightSimplePost ([ string $field_override ] )

Returns the text which appears after a highlighted term. Accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the text which appears before a highlighted term

  • « SolrQuery::getHighlightSimplePost
  • SolrQuery::getHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Returns the text which appears before a highlighted term

SolrQuery::getHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSimplePre — Returns the text which appears before a highlighted term

Описание

public string SolrQuery::getHighlightSimplePre ([ string $field_override ] )

Returns the text which appears before a highlighted term. Accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the maximum number of highlighted snippets to generate per field

  • « SolrQuery::getHighlightSimplePre
  • SolrQuery::getHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of highlighted snippets to generate per field

SolrQuery::getHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::getHighlightSnippets — Returns the maximum number of highlighted snippets to generate per field

Описание

public int SolrQuery::getHighlightSnippets ([ string $field_override ] )

Returns the maximum number of highlighted snippets to generate per field. Accepts an optional field override

Список параметров

field_override

The name of the field

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the state of the hl.usePhraseHighlighter parameter

  • « SolrQuery::getHighlightSnippets
  • SolrQuery::getMlt »
  • PHP Manual
  • SolrQuery
  • Returns the state of the hl.usePhraseHighlighter parameter

SolrQuery::getHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::getHighlightUsePhraseHighlighter — Returns the state of the hl.usePhraseHighlighter parameter

Описание

public bool SolrQuery::getHighlightUsePhraseHighlighter ( void )

Returns whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns whether or not MoreLikeThis results should be enabled

  • « SolrQuery::getHighlightUsePhraseHighlighter
  • SolrQuery::getMltBoost »
  • PHP Manual
  • SolrQuery
  • Returns whether or not MoreLikeThis results should be enabled

SolrQuery::getMlt

(PECL solr >= 0.9.2)

SolrQuery::getMlt — Returns whether or not MoreLikeThis results should be enabled

Описание

public bool SolrQuery::getMlt ( void )

Returns whether or not MoreLikeThis results should be enabled

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns whether or not the query will be boosted by the interesting term relevance

  • « SolrQuery::getMlt
  • SolrQuery::getMltCount »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the query will be boosted by the interesting term relevance

SolrQuery::getMltBoost

(PECL solr >= 0.9.2)

SolrQuery::getMltBoost — Returns whether or not the query will be boosted by the interesting term relevance

Описание

public bool SolrQuery::getMltBoost ( void )

Returns whether or not the query will be boosted by the interesting term relevance

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the number of similar documents to return for each result

  • « SolrQuery::getMltBoost
  • SolrQuery::getMltFields »
  • PHP Manual
  • SolrQuery
  • Returns the number of similar documents to return for each result

SolrQuery::getMltCount

(PECL solr >= 0.9.2)

SolrQuery::getMltCount — Returns the number of similar documents to return for each result

Описание

public int SolrQuery::getMltCount ( void )

Returns the number of similar documents to return for each result

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns all the fields to use for similarity

  • « SolrQuery::getMltCount
  • SolrQuery::getMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Returns all the fields to use for similarity

SolrQuery::getMltFields

(PECL solr >= 0.9.2)

SolrQuery::getMltFields — Returns all the fields to use for similarity

Описание

public array SolrQuery::getMltFields ( void )

Returns all the fields to use for similarity

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns the maximum number of query terms that will be included in any generated query

  • « SolrQuery::getMltFields
  • SolrQuery::getMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of query terms that will be included in any generated query

SolrQuery::getMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumQueryTerms — Returns the maximum number of query terms that will be included in any generated query

Описание

public int SolrQuery::getMltMaxNumQueryTerms ( void )

Returns the maximum number of query terms that will be included in any generated query

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

  • « SolrQuery::getMltMaxNumQueryTerms
  • SolrQuery::getMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

SolrQuery::getMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxNumTokens — Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

Описание

public int SolrQuery::getMltMaxNumTokens ( void )

Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the maximum word length above which words will be ignored

  • « SolrQuery::getMltMaxNumTokens
  • SolrQuery::getMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Returns the maximum word length above which words will be ignored

SolrQuery::getMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMaxWordLength — Returns the maximum word length above which words will be ignored

Описание

public int SolrQuery::getMltMaxWordLength ( void )

Returns the maximum word length above which words will be ignored

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

  • « SolrQuery::getMltMaxWordLength
  • SolrQuery::getMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

SolrQuery::getMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinDocFrequency — Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

Описание

public int SolrQuery::getMltMinDocFrequency ( void )

Returns the treshold frequency at which words will be ignored which do not occur in at least this many docs

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the frequency below which terms will be ignored in the source document

  • « SolrQuery::getMltMinDocFrequency
  • SolrQuery::getMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Returns the frequency below which terms will be ignored in the source document

SolrQuery::getMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::getMltMinTermFrequency — Returns the frequency below which terms will be ignored in the source document

Описание

public int SolrQuery::getMltMinTermFrequency ( void )

Returns the frequency below which terms will be ignored in the source document

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the minimum word length below which words will be ignored

  • « SolrQuery::getMltMinTermFrequency
  • SolrQuery::getMltQueryFields »
  • PHP Manual
  • SolrQuery
  • Returns the minimum word length below which words will be ignored

SolrQuery::getMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::getMltMinWordLength — Returns the minimum word length below which words will be ignored

Описание

public int SolrQuery::getMltMinWordLength ( void )

Returns the minimum word length below which words will be ignored

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the query fields and their boosts

  • « SolrQuery::getMltMinWordLength
  • SolrQuery::getQuery »
  • PHP Manual
  • SolrQuery
  • Returns the query fields and their boosts

SolrQuery::getMltQueryFields

(PECL solr >= 0.9.2)

SolrQuery::getMltQueryFields — Returns the query fields and their boosts

Описание

public array SolrQuery::getMltQueryFields ( void )

Returns the query fields and their boosts

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns the main query

  • « SolrQuery::getMltQueryFields
  • SolrQuery::getRows »
  • PHP Manual
  • SolrQuery
  • Returns the main query

SolrQuery::getQuery

(PECL solr >= 0.9.2)

SolrQuery::getQuery — Returns the main query

Описание

public string SolrQuery::getQuery ( void )

Returns the main search query

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the maximum number of documents

  • « SolrQuery::getQuery
  • SolrQuery::getSortFields »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of documents

SolrQuery::getRows

(PECL solr >= 0.9.2)

SolrQuery::getRows — Returns the maximum number of documents

Описание

public int SolrQuery::getRows ( void )

Returns the maximum number of documents from the complete result set to return to the client for every request

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns all the sort fields

  • « SolrQuery::getRows
  • SolrQuery::getStart »
  • PHP Manual
  • SolrQuery
  • Returns all the sort fields

SolrQuery::getSortFields

(PECL solr >= 0.9.2)

SolrQuery::getSortFields — Returns all the sort fields

Описание

public array SolrQuery::getSortFields ( void )

Returns all the sort fields

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if none of the parameters was set.


Returns the offset in the complete result set

  • « SolrQuery::getSortFields
  • SolrQuery::getStats »
  • PHP Manual
  • SolrQuery
  • Returns the offset in the complete result set

SolrQuery::getStart

(PECL solr >= 0.9.2)

SolrQuery::getStart — Returns the offset in the complete result set

Описание

public int SolrQuery::getStart ( void )

Returns the offset in the complete result set for the queries where the set of returned documents should begin.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns whether or not stats is enabled

  • « SolrQuery::getStart
  • SolrQuery::getStatsFacets »
  • PHP Manual
  • SolrQuery
  • Returns whether or not stats is enabled

SolrQuery::getStats

(PECL solr >= 0.9.2)

SolrQuery::getStats — Returns whether or not stats is enabled

Описание

public bool SolrQuery::getStats ( void )

Returns whether or not stats is enabled

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns all the stats facets that were set

  • « SolrQuery::getStats
  • SolrQuery::getStatsFields »
  • PHP Manual
  • SolrQuery
  • Returns all the stats facets that were set

SolrQuery::getStatsFacets

(PECL solr >= 0.9.2)

SolrQuery::getStatsFacets — Returns all the stats facets that were set

Описание

public array SolrQuery::getStatsFacets ( void )

Returns all the stats facets that were set

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns all the statistics fields

  • « SolrQuery::getStatsFacets
  • SolrQuery::getTerms »
  • PHP Manual
  • SolrQuery
  • Returns all the statistics fields

SolrQuery::getStatsFields

(PECL solr >= 0.9.2)

SolrQuery::getStatsFields — Returns all the statistics fields

Описание

public array SolrQuery::getStatsFields ( void )

Returns all the statistics fields

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array on success and NULL if not set.


Returns whether or not the TermsComponent is enabled

  • « SolrQuery::getStatsFields
  • SolrQuery::getTermsField »
  • PHP Manual
  • SolrQuery
  • Returns whether or not the TermsComponent is enabled

SolrQuery::getTerms

(PECL solr >= 0.9.2)

SolrQuery::getTerms — Returns whether or not the TermsComponent is enabled

Описание

public bool SolrQuery::getTerms ( void )

Returns whether or not the TermsComponent is enabled

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the field from which the terms are retrieved

  • « SolrQuery::getTerms
  • SolrQuery::getTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Returns the field from which the terms are retrieved

SolrQuery::getTermsField

(PECL solr >= 0.9.2)

SolrQuery::getTermsField — Returns the field from which the terms are retrieved

Описание

public string SolrQuery::getTermsField ( void )

Returns the field from which the terms are retrieved

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns whether or not to include the lower bound in the result set

  • « SolrQuery::getTermsField
  • SolrQuery::getTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to include the lower bound in the result set

SolrQuery::getTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeLowerBound — Returns whether or not to include the lower bound in the result set

Описание

public bool SolrQuery::getTermsIncludeLowerBound ( void )

Returns whether or not to include the lower bound in the result set

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns whether or not to include the upper bound term in the result set

  • « SolrQuery::getTermsIncludeLowerBound
  • SolrQuery::getTermsLimit »
  • PHP Manual
  • SolrQuery
  • Returns whether or not to include the upper bound term in the result set

SolrQuery::getTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsIncludeUpperBound — Returns whether or not to include the upper bound term in the result set

Описание

public bool SolrQuery::getTermsIncludeUpperBound ( void )

Returns whether or not to include the upper bound term in the result set

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns the maximum number of terms Solr should return

  • « SolrQuery::getTermsIncludeUpperBound
  • SolrQuery::getTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Returns the maximum number of terms Solr should return

SolrQuery::getTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::getTermsLimit — Returns the maximum number of terms Solr should return

Описание

public int SolrQuery::getTermsLimit ( void )

Returns the maximum number of terms Solr should return

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the term to start at

  • « SolrQuery::getTermsLimit
  • SolrQuery::getTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Returns the term to start at

SolrQuery::getTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsLowerBound — Returns the term to start at

Описание

public string SolrQuery::getTermsLowerBound ( void )

Returns the term to start at

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the maximum document frequency

  • « SolrQuery::getTermsLowerBound
  • SolrQuery::getTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Returns the maximum document frequency

SolrQuery::getTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMaxCount — Returns the maximum document frequency

Описание

public int SolrQuery::getTermsMaxCount ( void )

Returns the maximum document frequency

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the minimum document frequency to return in order to be included

  • « SolrQuery::getTermsMaxCount
  • SolrQuery::getTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Returns the minimum document frequency to return in order to be included

SolrQuery::getTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::getTermsMinCount — Returns the minimum document frequency to return in order to be included

Описание

public int SolrQuery::getTermsMinCount ( void )

Returns the minimum document frequency to return in order to be included

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the term prefix

  • « SolrQuery::getTermsMinCount
  • SolrQuery::getTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Returns the term prefix

SolrQuery::getTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::getTermsPrefix — Returns the term prefix

Описание

public string SolrQuery::getTermsPrefix ( void )

Returns the prefix to which matching terms must be restricted. This will restrict matches to only terms that start with the prefix

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Whether or not to return raw characters

  • « SolrQuery::getTermsPrefix
  • SolrQuery::getTermsSort »
  • PHP Manual
  • SolrQuery
  • Whether or not to return raw characters

SolrQuery::getTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::getTermsReturnRaw — Whether or not to return raw characters

Описание

public bool SolrQuery::getTermsReturnRaw ( void )

Returns a boolean indicating whether or not to return the raw characters of the indexed term, regardless of if it is human readable

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a boolean on success and NULL if not set.


Returns an integer indicating how terms are sorted

  • « SolrQuery::getTermsReturnRaw
  • SolrQuery::getTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Returns an integer indicating how terms are sorted

SolrQuery::getTermsSort

(PECL solr >= 0.9.2)

SolrQuery::getTermsSort — Returns an integer indicating how terms are sorted

Описание

public int SolrQuery::getTermsSort ( void )

SolrQuery::TERMS_SORT_INDEX indicates that the terms are returned by index order. SolrQuery::TERMS_SORT_COUNT implies that the terms are sorted by term frequency (highest count first)

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an integer on success and NULL if not set.


Returns the term to stop at

  • « SolrQuery::getTermsSort
  • SolrQuery::getTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Returns the term to stop at

SolrQuery::getTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::getTermsUpperBound — Returns the term to stop at

Описание

public string SolrQuery::getTermsUpperBound ( void )

Returns the term to stop at

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string on success and NULL if not set.


Returns the time in milliseconds allowed for the query to finish

  • « SolrQuery::getTermsUpperBound
  • SolrQuery::removeExpandFilterQuery »
  • PHP Manual
  • SolrQuery
  • Returns the time in milliseconds allowed for the query to finish

SolrQuery::getTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::getTimeAllowed — Returns the time in milliseconds allowed for the query to finish

Описание

public int SolrQuery::getTimeAllowed ( void )

Returns the time in milliseconds allowed for the query to finish.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns and integer on success and NULL if it is not set.


Removes an expand filter query

  • « SolrQuery::getTimeAllowed
  • SolrQuery::removeExpandSortField »
  • PHP Manual
  • SolrQuery
  • Removes an expand filter query

SolrQuery::removeExpandFilterQuery

(PECL solr >= 2.2.0)

SolrQuery::removeExpandFilterQuery — Removes an expand filter query

Описание

public SolrQuery SolrQuery::removeExpandFilterQuery ( string $fq )

Removes an expand filter query.

Список параметров

fq

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.


Removes an expand sort field from the expand.sort parameter.

  • « SolrQuery::removeExpandFilterQuery
  • SolrQuery::removeFacetDateField »
  • PHP Manual
  • SolrQuery
  • Removes an expand sort field from the expand.sort parameter.

SolrQuery::removeExpandSortField

(PECL solr >= 2.2.0)

SolrQuery::removeExpandSortField — Removes an expand sort field from the expand.sort parameter.

Описание

public SolrQuery SolrQuery::removeExpandSortField ( string $field )

Removes an expand sort field from the expand.sort parameter.

Список параметров

field

field name

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Removes one of the facet date fields

  • « SolrQuery::removeExpandSortField
  • SolrQuery::removeFacetDateOther »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet date fields

SolrQuery::removeFacetDateField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateField — Removes one of the facet date fields

Описание

public SolrQuery SolrQuery::removeFacetDateField ( string $field )

The name of the field

Список параметров

field

The name of the date field to remove

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.date.other parameters

  • « SolrQuery::removeFacetDateField
  • SolrQuery::removeFacetField »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.date.other parameters

SolrQuery::removeFacetDateOther

(PECL solr >= 0.9.2)

SolrQuery::removeFacetDateOther — Removes one of the facet.date.other parameters

Описание

public SolrQuery SolrQuery::removeFacetDateOther ( string $value [, string $field_override ] )

Removes one of the facet.date.other parameters

Список параметров

value

The value

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.date parameters

  • « SolrQuery::removeFacetDateOther
  • SolrQuery::removeFacetQuery »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.date parameters

SolrQuery::removeFacetField

(PECL solr >= 0.9.2)

SolrQuery::removeFacetField — Removes one of the facet.date parameters

Описание

public SolrQuery SolrQuery::removeFacetField ( string $field )

Removes one of the facet.date parameters

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the facet.query parameters

  • « SolrQuery::removeFacetField
  • SolrQuery::removeField »
  • PHP Manual
  • SolrQuery
  • Removes one of the facet.query parameters

SolrQuery::removeFacetQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFacetQuery — Removes one of the facet.query parameters

Описание

public SolrQuery SolrQuery::removeFacetQuery ( string $value )

Removes one of the facet.query parameters.

Список параметров

value

The value

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes a field from the list of fields

  • « SolrQuery::removeFacetQuery
  • SolrQuery::removeFilterQuery »
  • PHP Manual
  • SolrQuery
  • Removes a field from the list of fields

SolrQuery::removeField

(PECL solr >= 0.9.2)

SolrQuery::removeField — Removes a field from the list of fields

Описание

public SolrQuery SolrQuery::removeField ( string $field )

Removes a field from the list of fields

Список параметров

field

Name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes a filter query

  • « SolrQuery::removeField
  • SolrQuery::removeHighlightField »
  • PHP Manual
  • SolrQuery
  • Removes a filter query

SolrQuery::removeFilterQuery

(PECL solr >= 0.9.2)

SolrQuery::removeFilterQuery — Removes a filter query

Описание

public SolrQuery SolrQuery::removeFilterQuery ( string $fq )

Removes a filter query.

Список параметров

fq

The filter query to remove

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the fields used for highlighting

  • « SolrQuery::removeFilterQuery
  • SolrQuery::removeMltField »
  • PHP Manual
  • SolrQuery
  • Removes one of the fields used for highlighting

SolrQuery::removeHighlightField

(PECL solr >= 0.9.2)

SolrQuery::removeHighlightField — Removes one of the fields used for highlighting

Описание

public SolrQuery SolrQuery::removeHighlightField ( string $field )

Removes one of the fields used for highlighting.

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the moreLikeThis fields

  • « SolrQuery::removeHighlightField
  • SolrQuery::removeMltQueryField »
  • PHP Manual
  • SolrQuery
  • Removes one of the moreLikeThis fields

SolrQuery::removeMltField

(PECL solr >= 0.9.2)

SolrQuery::removeMltField — Removes one of the moreLikeThis fields

Описание

public SolrQuery SolrQuery::removeMltField ( string $field )

Removes one of the moreLikeThis fields.

Список параметров

field

Name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the moreLikeThis query fields

  • « SolrQuery::removeMltField
  • SolrQuery::removeSortField »
  • PHP Manual
  • SolrQuery
  • Removes one of the moreLikeThis query fields

SolrQuery::removeMltQueryField

(PECL solr >= 0.9.2)

SolrQuery::removeMltQueryField — Removes one of the moreLikeThis query fields

Описание

public SolrQuery SolrQuery::removeMltQueryField ( string $queryField )

Removes one of the moreLikeThis query fields.

Список параметров

queryField

The query field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the sort fields

  • « SolrQuery::removeMltQueryField
  • SolrQuery::removeStatsFacet »
  • PHP Manual
  • SolrQuery
  • Removes one of the sort fields

SolrQuery::removeSortField

(PECL solr >= 0.9.2)

SolrQuery::removeSortField — Removes one of the sort fields

Описание

public SolrQuery SolrQuery::removeSortField ( string $field )

Removes one of the sort fields

Список параметров

field

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the stats.facet parameters

  • « SolrQuery::removeSortField
  • SolrQuery::removeStatsField »
  • PHP Manual
  • SolrQuery
  • Removes one of the stats.facet parameters

SolrQuery::removeStatsFacet

(PECL solr >= 0.9.2)

SolrQuery::removeStatsFacet — Removes one of the stats.facet parameters

Описание

public SolrQuery SolrQuery::removeStatsFacet ( string $value )

Removes one of the stats.facet parameters

Список параметров

value

The value

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Removes one of the stats.field parameters

  • « SolrQuery::removeStatsFacet
  • SolrQuery::setEchoHandler »
  • PHP Manual
  • SolrQuery
  • Removes one of the stats.field parameters

SolrQuery::removeStatsField

(PECL solr >= 0.9.2)

SolrQuery::removeStatsField — Removes one of the stats.field parameters

Описание

public SolrQuery SolrQuery::removeStatsField ( string $field )

Removes one of the stats.field parameters

Список параметров

field

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Toggles the echoHandler parameter

  • « SolrQuery::removeStatsField
  • SolrQuery::setEchoParams »
  • PHP Manual
  • SolrQuery
  • Toggles the echoHandler parameter

SolrQuery::setEchoHandler

(PECL solr >= 0.9.2)

SolrQuery::setEchoHandler — Toggles the echoHandler parameter

Описание

public SolrQuery SolrQuery::setEchoHandler ( bool $flag )

If set to true, Solr places the name of the handle used in the response to the client for debugging purposes.

Список параметров

flag

TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Determines what kind of parameters to include in the response

  • « SolrQuery::setEchoHandler
  • SolrQuery::setExpand »
  • PHP Manual
  • SolrQuery
  • Determines what kind of parameters to include in the response

SolrQuery::setEchoParams

(PECL solr >= 0.9.2)

SolrQuery::setEchoParams — Determines what kind of parameters to include in the response

Описание

public SolrQuery SolrQuery::setEchoParams ( string $type )

Instructs Solr what kinds of Request parameters should be included in the response for debugging purposes, legal values include:

- none - don't include any request parameters for debugging
- explicit - include the parameters explicitly specified by the client in the request
- all - include all parameters involved in this request, either specified explicitly by the client, or implicit because of the request handler configuration.

Список параметров

type

The type of parameters to include

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Enables/Disables the Expand Component

  • « SolrQuery::setEchoParams
  • SolrQuery::setExpandQuery »
  • PHP Manual
  • SolrQuery
  • Enables/Disables the Expand Component

SolrQuery::setExpand

(PECL solr >= 2.2.0)

SolrQuery::setExpand — Enables/Disables the Expand Component

Описание

public SolrQuery SolrQuery::setExpand ( bool $value )

Enables/Disables the Expand Component.

Список параметров

value

Bool flag

Возвращаемые значения

SolrQuery

Примеры

Пример #1 SolrQuery::setExpand() example

<?php

$query = new SolrQuery('lucene');

$query
    ->setExpand(true)
    ->setExpandRows(50)
    ->setExpandQuery('text:product')
    ->addExpandFilterQuery('manu:apple')
    ->addExpandFilterQuery('inStock:true')
    ->addExpandSortField('score', SolrQuery::ORDER_DESC)
    ->addExpandSortField('title', SolrQuery::ORDER_ASC);

echo $query.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&expand=true&expand.rows=50&expand.q=text:product&expand.fq=manu:apple&expand.fq=inStock:true&expand.sort=score desc,title asc

Смотрите также

  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the expand.q parameter

  • « SolrQuery::setExpand
  • SolrQuery::setExpandRows »
  • PHP Manual
  • SolrQuery
  • Sets the expand.q parameter

SolrQuery::setExpandQuery

(PECL solr >= 2.2.0)

SolrQuery::setExpandQuery — Sets the expand.q parameter

Описание

public SolrQuery SolrQuery::setExpandQuery ( string $q )

Sets the expand.q parameter.

Overrides the main q parameter, determines which documents to include in the main group.

Список параметров

q

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandRows() - Sets the number of rows to display in each group (expand.rows). Server Default 5
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the number of rows to display in each group (expand.rows). Server Default 5

  • « SolrQuery::setExpandQuery
  • SolrQuery::setExplainOther »
  • PHP Manual
  • SolrQuery
  • Sets the number of rows to display in each group (expand.rows). Server Default 5

SolrQuery::setExpandRows

(PECL solr >= 2.2.0)

SolrQuery::setExpandRows — Sets the number of rows to display in each group (expand.rows). Server Default 5

Описание

public SolrQuery SolrQuery::setExpandRows ( integer $value )

Sets the number of rows to display in each group (expand.rows). Server Default 5

Список параметров

value

Возвращаемые значения

SolrQuery

Смотрите также

  • SolrQuery::setExpand() - Enables/Disables the Expand Component
  • SolrQuery::addExpandSortField() - Orders the documents within the expanded groups (expand.sort parameter).
  • SolrQuery::removeExpandSortField() - Removes an expand sort field from the expand.sort parameter.
  • SolrQuery::setExpandQuery() - Sets the expand.q parameter
  • SolrQuery::addExpandFilterQuery() - Overrides main filter query, determines which documents to include in the main group.
  • SolrQuery::removeExpandFilterQuery() - Removes an expand filter query


Sets the explainOther common query parameter

  • « SolrQuery::setExpandRows
  • SolrQuery::setFacet »
  • PHP Manual
  • SolrQuery
  • Sets the explainOther common query parameter

SolrQuery::setExplainOther

(PECL solr >= 0.9.2)

SolrQuery::setExplainOther — Sets the explainOther common query parameter

Описание

public SolrQuery SolrQuery::setExplainOther ( string $query )

Sets the explainOther common query parameter

Список параметров

query

The Lucene query to identify a set of documents

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to the facet parameter. Enables or disables facetting

  • « SolrQuery::setExplainOther
  • SolrQuery::setFacetDateEnd »
  • PHP Manual
  • SolrQuery
  • Maps to the facet parameter. Enables or disables facetting

SolrQuery::setFacet

(PECL solr >= 0.9.2)

SolrQuery::setFacet — Maps to the facet parameter. Enables or disables facetting

Описание

public SolrQuery SolrQuery::setFacet ( bool $flag )

Enables or disables faceting.

Список параметров

value

TRUE enables faceting and FALSE disables it.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.end

  • « SolrQuery::setFacet
  • SolrQuery::setFacetDateGap »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.end

SolrQuery::setFacetDateEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateEnd — Maps to facet.date.end

Описание

public SolrQuery SolrQuery::setFacetDateEnd ( string $value [, string $field_override ] )

Maps to facet.date.end

Список параметров

value

See facet.date.end

field_override

Name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.gap

  • « SolrQuery::setFacetDateEnd
  • SolrQuery::setFacetDateHardEnd »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.gap

SolrQuery::setFacetDateGap

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateGap — Maps to facet.date.gap

Описание

public SolrQuery SolrQuery::setFacetDateGap ( string $value [, string $field_override ] )

Maps to facet.date.gap

Список параметров

value

See facet.date.gap

field_override

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.hardend

  • « SolrQuery::setFacetDateGap
  • SolrQuery::setFacetDateStart »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.hardend

SolrQuery::setFacetDateHardEnd

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateHardEnd — Maps to facet.date.hardend

Описание

public SolrQuery SolrQuery::setFacetDateHardEnd ( bool $value [, string $field_override ] )

Maps to facet.date.hardend

Список параметров

value

See facet.date.hardend

field_override

The name of the field

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.date.start

  • « SolrQuery::setFacetDateHardEnd
  • SolrQuery::setFacetEnumCacheMinDefaultFrequency »
  • PHP Manual
  • SolrQuery
  • Maps to facet.date.start

SolrQuery::setFacetDateStart

(PECL solr >= 0.9.2)

SolrQuery::setFacetDateStart — Maps to facet.date.start

Описание

public SolrQuery SolrQuery::setFacetDateStart ( string $value [, string $field_override ] )

Maps to facet.date.start

Список параметров

value

See facet.date.start

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the minimum document frequency used for determining term count

  • « SolrQuery::setFacetDateStart
  • SolrQuery::setFacetLimit »
  • PHP Manual
  • SolrQuery
  • Sets the minimum document frequency used for determining term count

SolrQuery::setFacetEnumCacheMinDefaultFrequency

(PECL solr >= 0.9.2)

SolrQuery::setFacetEnumCacheMinDefaultFrequency — Sets the minimum document frequency used for determining term count

Описание

public SolrQuery SolrQuery::setFacetEnumCacheMinDefaultFrequency ( int $frequency [, string $field_override ] )

Sets the minimum document frequency used for determining term count

Список параметров

value

The minimum frequency

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.limit

  • « SolrQuery::setFacetEnumCacheMinDefaultFrequency
  • SolrQuery::setFacetMethod »
  • PHP Manual
  • SolrQuery
  • Maps to facet.limit

SolrQuery::setFacetLimit

(PECL solr >= 0.9.2)

SolrQuery::setFacetLimit — Maps to facet.limit

Описание

public SolrQuery SolrQuery::setFacetLimit ( int $limit [, string $field_override ] )

Maps to facet.limit. Sets the maximum number of constraint counts that should be returned for the facet fields.

Список параметров

limit

The maximum number of constraint counts

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the type of algorithm to use when faceting a field

  • « SolrQuery::setFacetLimit
  • SolrQuery::setFacetMinCount »
  • PHP Manual
  • SolrQuery
  • Specifies the type of algorithm to use when faceting a field

SolrQuery::setFacetMethod

(PECL solr >= 0.9.2)

SolrQuery::setFacetMethod — Specifies the type of algorithm to use when faceting a field

Описание

public SolrQuery SolrQuery::setFacetMethod ( string $method [, string $field_override ] )

Specifies the type of algorithm to use when faceting a field. This method accepts optional field override.

Список параметров

method

The method to use.

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.mincount

  • « SolrQuery::setFacetMethod
  • SolrQuery::setFacetMissing »
  • PHP Manual
  • SolrQuery
  • Maps to facet.mincount

SolrQuery::setFacetMinCount

(PECL solr >= 0.9.2)

SolrQuery::setFacetMinCount — Maps to facet.mincount

Описание

public SolrQuery SolrQuery::setFacetMinCount ( int $mincount [, string $field_override ] )

Sets the minimum counts for facet fields that should be included in the response

Список параметров

mincount

The minimum count

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Maps to facet.missing

  • « SolrQuery::setFacetMinCount
  • SolrQuery::setFacetOffset »
  • PHP Manual
  • SolrQuery
  • Maps to facet.missing

SolrQuery::setFacetMissing

(PECL solr >= 0.9.2)

SolrQuery::setFacetMissing — Maps to facet.missing

Описание

public SolrQuery SolrQuery::setFacetMissing ( bool $flag [, string $field_override ] )

Used to indicate that in addition to the Term-based constraints of a facet field, a count of all matching results which have no value for the field should be computed

Список параметров

flag

TRUE turns this feature on. FALSE disables it.

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the offset into the list of constraints to allow for pagination

  • « SolrQuery::setFacetMissing
  • SolrQuery::setFacetPrefix »
  • PHP Manual
  • SolrQuery
  • Sets the offset into the list of constraints to allow for pagination

SolrQuery::setFacetOffset

(PECL solr >= 0.9.2)

SolrQuery::setFacetOffset — Sets the offset into the list of constraints to allow for pagination

Описание

public SolrQuery SolrQuery::setFacetOffset ( int $offset [, string $field_override ] )

Sets the offset into the list of constraints to allow for pagination.

Список параметров

offset

The offset

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies a string prefix with which to limits the terms on which to facet

  • « SolrQuery::setFacetOffset
  • SolrQuery::setFacetSort »
  • PHP Manual
  • SolrQuery
  • Specifies a string prefix with which to limits the terms on which to facet

SolrQuery::setFacetPrefix

(PECL solr >= 0.9.2)

SolrQuery::setFacetPrefix — Specifies a string prefix with which to limits the terms on which to facet

Описание

public SolrQuery SolrQuery::setFacetPrefix ( string $prefix [, string $field_override ] )

Specifies a string prefix with which to limits the terms on which to facet.

Список параметров

prefix

The prefix string

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Determines the ordering of the facet field constraints

  • « SolrQuery::setFacetPrefix
  • SolrQuery::setGroup »
  • PHP Manual
  • SolrQuery
  • Determines the ordering of the facet field constraints

SolrQuery::setFacetSort

(PECL solr >= 0.9.2)

SolrQuery::setFacetSort — Determines the ordering of the facet field constraints

Описание

public SolrQuery SolrQuery::setFacetSort ( int $facetSort [, string $field_override ] )

Determines the ordering of the facet field constraints

Список параметров

facetSort

Use SolrQuery::FACET_SORT_INDEX for sorting by index order or SolrQuery::FACET_SORT_COUNT for sorting by count.

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Enable/Disable result grouping (group parameter)

  • « SolrQuery::setFacetSort
  • SolrQuery::setGroupCachePercent »
  • PHP Manual
  • SolrQuery
  • Enable/Disable result grouping (group parameter)

SolrQuery::setGroup

(PECL solr >= 2.2.0)

SolrQuery::setGroup — Enable/Disable result grouping (group parameter)

Описание

public SolrQuery SolrQuery::setGroup ( bool $value )

Enable/Disable result grouping (group parameter)

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::getGroup() - Returns true if grouping is enabled
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Enables caching for result grouping

  • « SolrQuery::setGroup
  • SolrQuery::setGroupFacet »
  • PHP Manual
  • SolrQuery
  • Enables caching for result grouping

SolrQuery::setGroupCachePercent

(PECL solr >= 2.2.0)

SolrQuery::setGroupCachePercent — Enables caching for result grouping

Описание

public SolrQuery SolrQuery::setGroupCachePercent ( integer $percent )

Setting this parameter to a number greater than 0 enables caching for result grouping. Result Grouping executes two searches; this option caches the second search. The server default value is 0. Testing has shown that group caching only improves search time with Boolean, wildcard, and fuzzy queries. For simple queries like term or "match all" queries, group caching degrades performance. group.cache.percent parameter

Список параметров

percent

Возвращаемые значения

Ошибки

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).


Sets group.facet parameter

  • « SolrQuery::setGroupCachePercent
  • SolrQuery::setGroupFormat »
  • PHP Manual
  • SolrQuery
  • Sets group.facet parameter

SolrQuery::setGroupFacet

(PECL solr >= 2.2.0)

SolrQuery::setGroupFacet — Sets group.facet parameter

Описание

public SolrQuery SolrQuery::setGroupFacet ( bool $value )

Determines whether to compute grouped facets for the field facets specified in facet.field parameters. Grouped facets are computed based on the first specified group.

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Sets the group format, result structure (group.format parameter).

  • « SolrQuery::setGroupFacet
  • SolrQuery::setGroupLimit »
  • PHP Manual
  • SolrQuery
  • Sets the group format, result structure (group.format parameter).

SolrQuery::setGroupFormat

(PECL solr >= 2.2.0)

SolrQuery::setGroupFormat — Sets the group format, result structure (group.format parameter).

Описание

public SolrQuery SolrQuery::setGroupFormat ( string $value )

Sets the group.format parameter. If this parameter is set to simple, the grouped documents are presented in a single flat list, and the start and rows parameters affect the numbers of documents instead of groups. Accepts: grouped/simple

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Specifies the number of results to return for each group. The server default value is 1.

  • « SolrQuery::setGroupFormat
  • SolrQuery::setGroupMain »
  • PHP Manual
  • SolrQuery
  • Specifies the number of results to return for each group. The server default value is 1.

SolrQuery::setGroupLimit

(PECL solr >= 2.2.0)

SolrQuery::setGroupLimit — Specifies the number of results to return for each group. The server default value is 1.

Описание

public SolrQuery SolrQuery::setGroupLimit ( integer $value )

Specifies the number of results to return for each group. The server default value is 1.

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.

  • « SolrQuery::setGroupLimit
  • SolrQuery::setGroupNGroups »
  • PHP Manual
  • SolrQuery
  • If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.

SolrQuery::setGroupMain

(PECL solr >= 2.2.0)

SolrQuery::setGroupMain — If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.

Описание

public SolrQuery SolrQuery::setGroupMain ( string $value )

If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.

Список параметров

value

Возвращаемые значения

Смотрите также

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupMain()
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, Solr includes the number of groups that have matched the query in the results.

  • « SolrQuery::setGroupMain
  • SolrQuery::setGroupOffset »
  • PHP Manual
  • SolrQuery
  • If true, Solr includes the number of groups that have matched the query in the results.

SolrQuery::setGroupNGroups

(PECL solr >= 2.2.0)

SolrQuery::setGroupNGroups — If true, Solr includes the number of groups that have matched the query in the results.

Описание

public SolrQuery SolrQuery::setGroupNGroups ( bool $value )

If true, Solr includes the number of groups that have matched the query in the results.

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Sets the group.offset parameter.

  • « SolrQuery::setGroupNGroups
  • SolrQuery::setGroupTruncate »
  • PHP Manual
  • SolrQuery
  • Sets the group.offset parameter.

SolrQuery::setGroupOffset

(PECL solr >= 2.2.0)

SolrQuery::setGroupOffset — Sets the group.offset parameter.

Описание

public SolrQuery SolrQuery::setGroupOffset ( integer $value )

Sets the group.offset parameter.

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupTruncate() - If true, facet counts are based on the most relevant document of each group matching the query.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


If true, facet counts are based on the most relevant document of each group matching the query.

  • « SolrQuery::setGroupOffset
  • SolrQuery::setHighlight »
  • PHP Manual
  • SolrQuery
  • If true, facet counts are based on the most relevant document of each group matching the query.

SolrQuery::setGroupTruncate

(PECL solr >= 2.2.0)

SolrQuery::setGroupTruncate — If true, facet counts are based on the most relevant document of each group matching the query.

Описание

public SolrQuery SolrQuery::setGroupTruncate ( bool $value )

If true, facet counts are based on the most relevant document of each group matching the query. The server default value is false. group.truncate parameter

Список параметров

value

Возвращаемые значения

Смотрите также

  • SolrQuery::setGroup() - Enable/Disable result grouping (group parameter)
  • SolrQuery::addGroupField() - Add a field to be used to group results.
  • SolrQuery::addGroupFunction() - Allows grouping results based on the unique values of a function query (group.func parameter).
  • SolrQuery::addGroupQuery() - Allows grouping of documents that match the given query.
  • SolrQuery::addGroupSortField() - Add a group sort field (group.sort parameter).
  • SolrQuery::setGroupFacet() - Sets group.facet parameter
  • SolrQuery::setGroupOffset() - Sets the group.offset parameter.
  • SolrQuery::setGroupLimit() - Specifies the number of results to return for each group. The server default value is 1.
  • SolrQuery::setGroupMain() - If true, the result of the first field grouping command is used as the main result list in the response, using group.format=simple.
  • SolrQuery::setGroupNGroups() - If true, Solr includes the number of groups that have matched the query in the results.
  • SolrQuery::setGroupFormat() - Sets the group format, result structure (group.format parameter).
  • SolrQuery::setGroupCachePercent() - Enables caching for result grouping


Enables or disables highlighting

  • « SolrQuery::setGroupTruncate
  • SolrQuery::setHighlightAlternateField »
  • PHP Manual
  • SolrQuery
  • Enables or disables highlighting

SolrQuery::setHighlight

(PECL solr >= 0.9.2)

SolrQuery::setHighlight — Enables or disables highlighting

Описание

public SolrQuery SolrQuery::setHighlight ( bool $flag )

Setting it to TRUE enables highlighted snippets to be generated in the query response.

Setting it to FALSE disables highlighting

Список параметров

flag

Enable or disable highlighting

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the backup field to use

  • « SolrQuery::setHighlight
  • SolrQuery::setHighlightFormatter »
  • PHP Manual
  • SolrQuery
  • Specifies the backup field to use

SolrQuery::setHighlightAlternateField

(PECL solr >= 0.9.2)

SolrQuery::setHighlightAlternateField — Specifies the backup field to use

Описание

public SolrQuery SolrQuery::setHighlightAlternateField ( string $field [, string $field_override ] )

If a snippet cannot be generated because there were no matching terms, one can specify a field to use as the backup or default summary

Список параметров

field

The name of the backup field

field_override

The name of the field we are overriding this setting for.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specify a formatter for the highlight output

  • « SolrQuery::setHighlightAlternateField
  • SolrQuery::setHighlightFragmenter »
  • PHP Manual
  • SolrQuery
  • Specify a formatter for the highlight output

SolrQuery::setHighlightFormatter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFormatter — Specify a formatter for the highlight output

Описание

public SolrQuery SolrQuery::setHighlightFormatter ( string $formatter [, string $field_override ] )

Specify a formatter for the highlight output.

Список параметров

formatter

Currently the only legal value is "simple"

field_override

The name of the field.


Sets a text snippet generator for highlighted text

  • « SolrQuery::setHighlightFormatter
  • SolrQuery::setHighlightFragsize »
  • PHP Manual
  • SolrQuery
  • Sets a text snippet generator for highlighted text

SolrQuery::setHighlightFragmenter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragmenter — Sets a text snippet generator for highlighted text

Описание

public SolrQuery SolrQuery::setHighlightFragmenter ( string $fragmenter [, string $field_override ] )

Specify a text snippet generator for highlighted text.

Список параметров

fragmenter

The standard fragmenter is gap. Another option is regex, which tries to create fragments that resembles a certain regular expression

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


The size of fragments to consider for highlighting

  • « SolrQuery::setHighlightFragmenter
  • SolrQuery::setHighlightHighlightMultiTerm »
  • PHP Manual
  • SolrQuery
  • The size of fragments to consider for highlighting

SolrQuery::setHighlightFragsize

(PECL solr >= 0.9.2)

SolrQuery::setHighlightFragsize — The size of fragments to consider for highlighting

Описание

public SolrQuery SolrQuery::setHighlightFragsize ( int $size [, string $field_override ] )

Sets the size, in characters, of fragments to consider for highlighting. "0" indicates that the whole field value should be used (no fragmenting).

Список параметров

size

The size, in characters, of fragments to consider for highlighting

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Use SpanScorer to highlight phrase terms

  • « SolrQuery::setHighlightFragsize
  • SolrQuery::setHighlightMaxAlternateFieldLength »
  • PHP Manual
  • SolrQuery
  • Use SpanScorer to highlight phrase terms

SolrQuery::setHighlightHighlightMultiTerm

(PECL solr >= 0.9.2)

SolrQuery::setHighlightHighlightMultiTerm — Use SpanScorer to highlight phrase terms

Описание

public SolrQuery SolrQuery::setHighlightHighlightMultiTerm ( bool $flag )

Use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Список параметров

flag

Whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of characters of the field to return

  • « SolrQuery::setHighlightHighlightMultiTerm
  • SolrQuery::setHighlightMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of characters of the field to return

SolrQuery::setHighlightMaxAlternateFieldLength

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAlternateFieldLength — Sets the maximum number of characters of the field to return

Описание

public SolrQuery SolrQuery::setHighlightMaxAlternateFieldLength ( int $fieldLength [, string $field_override ] )

If SolrQuery::setHighlightAlternateField() was passed the value TRUE, this parameter specifies the maximum number of characters of the field to return

Any value less than or equal to 0 means unlimited.

Список параметров

fieldLength

The length of the field

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the number of characters into a document to look for suitable snippets

  • « SolrQuery::setHighlightMaxAlternateFieldLength
  • SolrQuery::setHighlightMergeContiguous »
  • PHP Manual
  • SolrQuery
  • Specifies the number of characters into a document to look for suitable snippets

SolrQuery::setHighlightMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMaxAnalyzedChars — Specifies the number of characters into a document to look for suitable snippets

Описание

public SolrQuery SolrQuery::setHighlightMaxAnalyzedChars ( int $value )

Specifies the number of characters into a document to look for suitable snippets

Список параметров

value

The number of characters into a document to look for suitable snippets

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Whether or not to collapse contiguous fragments into a single fragment

  • « SolrQuery::setHighlightMaxAnalyzedChars
  • SolrQuery::setHighlightRegexMaxAnalyzedChars »
  • PHP Manual
  • SolrQuery
  • Whether or not to collapse contiguous fragments into a single fragment

SolrQuery::setHighlightMergeContiguous

(PECL solr >= 0.9.2)

SolrQuery::setHighlightMergeContiguous — Whether or not to collapse contiguous fragments into a single fragment

Описание

public SolrQuery SolrQuery::setHighlightMergeContiguous ( bool $flag [, string $field_override ] )

Whether or not to collapse contiguous fragments into a single fragment

Список параметров

value

Whether or not to collapse contiguous fragments into a single fragment

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specify the maximum number of characters to analyze

  • « SolrQuery::setHighlightMergeContiguous
  • SolrQuery::setHighlightRegexPattern »
  • PHP Manual
  • SolrQuery
  • Specify the maximum number of characters to analyze

SolrQuery::setHighlightRegexMaxAnalyzedChars

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexMaxAnalyzedChars — Specify the maximum number of characters to analyze

Описание

public SolrQuery SolrQuery::setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars )

Specify the maximum number of characters to analyze from a field when using the regex fragmenter

Список параметров

maxAnalyzedChars

The maximum number of characters to analyze from a field when using the regex fragmenter

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specify the regular expression for fragmenting

  • « SolrQuery::setHighlightRegexMaxAnalyzedChars
  • SolrQuery::setHighlightRegexSlop »
  • PHP Manual
  • SolrQuery
  • Specify the regular expression for fragmenting

SolrQuery::setHighlightRegexPattern

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexPattern — Specify the regular expression for fragmenting

Описание

public SolrQuery SolrQuery::setHighlightRegexPattern ( string $value )

Specifies the regular expression for fragmenting. This could be used to extract sentences

Список параметров

value

The regular expression for fragmenting. This could be used to extract sentences

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the factor by which the regex fragmenter can stray from the ideal fragment size

  • « SolrQuery::setHighlightRegexPattern
  • SolrQuery::setHighlightRequireFieldMatch »
  • PHP Manual
  • SolrQuery
  • Sets the factor by which the regex fragmenter can stray from the ideal fragment size

SolrQuery::setHighlightRegexSlop

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRegexSlop — Sets the factor by which the regex fragmenter can stray from the ideal fragment size

Описание

public SolrQuery SolrQuery::setHighlightRegexSlop ( float $factor )

The factor by which the regex fragmenter can stray from the ideal fragment size ( specfied by SolrQuery::setHighlightFragsize )to accommodate the regular expression

Список параметров

factor

The factor by which the regex fragmenter can stray from the ideal fragment size

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Require field matching during highlighting

  • « SolrQuery::setHighlightRegexSlop
  • SolrQuery::setHighlightSimplePost »
  • PHP Manual
  • SolrQuery
  • Require field matching during highlighting

SolrQuery::setHighlightRequireFieldMatch

(PECL solr >= 0.9.2)

SolrQuery::setHighlightRequireFieldMatch — Require field matching during highlighting

Описание

public SolrQuery SolrQuery::setHighlightRequireFieldMatch ( bool $flag )

If TRUE, then a field will only be highlighted if the query matched in this particular field.

This will only work if SolrQuery::setHighlightUsePhraseHighlighter() was set to TRUE

Список параметров

flag

TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the text which appears after a highlighted term

  • « SolrQuery::setHighlightRequireFieldMatch
  • SolrQuery::setHighlightSimplePre »
  • PHP Manual
  • SolrQuery
  • Sets the text which appears after a highlighted term

SolrQuery::setHighlightSimplePost

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePost — Sets the text which appears after a highlighted term

Описание

public SolrQuery SolrQuery::setHighlightSimplePost ( string $simplePost [, string $field_override ] )

Sets the text which appears before a highlighted term

Список параметров

simplePost

Sets the text which appears after a highlighted term

The default is </em>

field_override

The name of the field.


Sets the text which appears before a highlighted term

  • « SolrQuery::setHighlightSimplePost
  • SolrQuery::setHighlightSnippets »
  • PHP Manual
  • SolrQuery
  • Sets the text which appears before a highlighted term

SolrQuery::setHighlightSimplePre

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSimplePre — Sets the text which appears before a highlighted term

Описание

public SolrQuery SolrQuery::setHighlightSimplePre ( string $simplePre [, string $field_override ] )

Sets the text which appears before a highlighted term

The default is <em>

Список параметров

simplePre

The text which appears before a highlighted term

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of highlighted snippets to generate per field

  • « SolrQuery::setHighlightSimplePre
  • SolrQuery::setHighlightUsePhraseHighlighter »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of highlighted snippets to generate per field

SolrQuery::setHighlightSnippets

(PECL solr >= 0.9.2)

SolrQuery::setHighlightSnippets — Sets the maximum number of highlighted snippets to generate per field

Описание

public SolrQuery SolrQuery::setHighlightSnippets ( int $value [, string $field_override ] )

Sets the maximum number of highlighted snippets to generate per field

Список параметров

value

The maximum number of highlighted snippets to generate per field

field_override

The name of the field.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Whether to highlight phrase terms only when they appear within the query phrase

  • « SolrQuery::setHighlightSnippets
  • SolrQuery::setMlt »
  • PHP Manual
  • SolrQuery
  • Whether to highlight phrase terms only when they appear within the query phrase

SolrQuery::setHighlightUsePhraseHighlighter

(PECL solr >= 0.9.2)

SolrQuery::setHighlightUsePhraseHighlighter — Whether to highlight phrase terms only when they appear within the query phrase

Описание

public SolrQuery SolrQuery::setHighlightUsePhraseHighlighter ( bool $flag )

Sets whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document

Список параметров

value

Whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the document

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Enables or disables moreLikeThis

  • « SolrQuery::setHighlightUsePhraseHighlighter
  • SolrQuery::setMltBoost »
  • PHP Manual
  • SolrQuery
  • Enables or disables moreLikeThis

SolrQuery::setMlt

(PECL solr >= 0.9.2)

SolrQuery::setMlt — Enables or disables moreLikeThis

Описание

public SolrQuery SolrQuery::setMlt ( bool $flag )

Enables or disables moreLikeThis

Список параметров

flag

TRUE enables it and FALSE turns it off.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Set if the query will be boosted by the interesting term relevance

  • « SolrQuery::setMlt
  • SolrQuery::setMltCount »
  • PHP Manual
  • SolrQuery
  • Set if the query will be boosted by the interesting term relevance

SolrQuery::setMltBoost

(PECL solr >= 0.9.2)

SolrQuery::setMltBoost — Set if the query will be boosted by the interesting term relevance

Описание

public SolrQuery SolrQuery::setMltBoost ( bool $flag )

Set if the query will be boosted by the interesting term relevance

Список параметров

value

Sets to TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Set the number of similar documents to return for each result

  • « SolrQuery::setMltBoost
  • SolrQuery::setMltMaxNumQueryTerms »
  • PHP Manual
  • SolrQuery
  • Set the number of similar documents to return for each result

SolrQuery::setMltCount

(PECL solr >= 0.9.2)

SolrQuery::setMltCount — Set the number of similar documents to return for each result

Описание

public SolrQuery SolrQuery::setMltCount ( int $count )

Set the number of similar documents to return for each result

Список параметров

count

The number of similar documents to return for each result

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of query terms included

  • « SolrQuery::setMltCount
  • SolrQuery::setMltMaxNumTokens »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of query terms included

SolrQuery::setMltMaxNumQueryTerms

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumQueryTerms — Sets the maximum number of query terms included

Описание

public SolrQuery SolrQuery::setMltMaxNumQueryTerms ( int $value )

Sets the maximum number of query terms that will be included in any generated query.

Список параметров

value

The maximum number of query terms that will be included in any generated query

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the maximum number of tokens to parse

  • « SolrQuery::setMltMaxNumQueryTerms
  • SolrQuery::setMltMaxWordLength »
  • PHP Manual
  • SolrQuery
  • Specifies the maximum number of tokens to parse

SolrQuery::setMltMaxNumTokens

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxNumTokens — Specifies the maximum number of tokens to parse

Описание

public SolrQuery SolrQuery::setMltMaxNumTokens ( int $value )

Specifies the maximum number of tokens to parse in each example doc field that is not stored with TermVector support.

Список параметров

value

The maximum number of tokens to parse

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum word length

  • « SolrQuery::setMltMaxNumTokens
  • SolrQuery::setMltMinDocFrequency »
  • PHP Manual
  • SolrQuery
  • Sets the maximum word length

SolrQuery::setMltMaxWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMaxWordLength — Sets the maximum word length

Описание

public SolrQuery SolrQuery::setMltMaxWordLength ( int $maxWordLength )

Sets the maximum word length above which words will be ignored.

Список параметров

maxWordLength

The maximum word length above which words will be ignored

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the mltMinDoc frequency

  • « SolrQuery::setMltMaxWordLength
  • SolrQuery::setMltMinTermFrequency »
  • PHP Manual
  • SolrQuery
  • Sets the mltMinDoc frequency

SolrQuery::setMltMinDocFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinDocFrequency — Sets the mltMinDoc frequency

Описание

public SolrQuery SolrQuery::setMltMinDocFrequency ( int $minDocFrequency )

The frequency at which words will be ignored which do not occur in at least this many docs.

Список параметров

minDocFrequency

Sets the frequency at which words will be ignored which do not occur in at least this many docs.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the frequency below which terms will be ignored in the source docs

  • « SolrQuery::setMltMinDocFrequency
  • SolrQuery::setMltMinWordLength »
  • PHP Manual
  • SolrQuery
  • Sets the frequency below which terms will be ignored in the source docs

SolrQuery::setMltMinTermFrequency

(PECL solr >= 0.9.2)

SolrQuery::setMltMinTermFrequency — Sets the frequency below which terms will be ignored in the source docs

Описание

public SolrQuery SolrQuery::setMltMinTermFrequency ( int $minTermFrequency )

Sets the frequency below which terms will be ignored in the source docs

Список параметров

minTermFrequency

The frequency below which terms will be ignored in the source docs

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the minimum word length

  • « SolrQuery::setMltMinTermFrequency
  • SolrQuery::setOmitHeader »
  • PHP Manual
  • SolrQuery
  • Sets the minimum word length

SolrQuery::setMltMinWordLength

(PECL solr >= 0.9.2)

SolrQuery::setMltMinWordLength — Sets the minimum word length

Описание

public SolrQuery SolrQuery::setMltMinWordLength ( int $minWordLength )

Sets the minimum word length below which words will be ignored.

Список параметров

minWordLength

The minimum word length below which words will be ignored

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Exclude the header from the returned results

  • « SolrQuery::setMltMinWordLength
  • SolrQuery::setQuery »
  • PHP Manual
  • SolrQuery
  • Exclude the header from the returned results

SolrQuery::setOmitHeader

(PECL solr >= 0.9.2)

SolrQuery::setOmitHeader — Exclude the header from the returned results

Описание

public SolrQuery SolrQuery::setOmitHeader ( bool $flag )

Exclude the header from the returned results.

Список параметров

flag

TRUE excludes the header from the result.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the search query

  • « SolrQuery::setOmitHeader
  • SolrQuery::setRows »
  • PHP Manual
  • SolrQuery
  • Sets the search query

SolrQuery::setQuery

(PECL solr >= 0.9.2)

SolrQuery::setQuery — Sets the search query

Описание

public SolrQuery SolrQuery::setQuery ( string $query )

Sets the search query.

Список параметров

query

The search query

Возвращаемые значения

Returns the current SolrQuery object


Specifies the maximum number of rows to return in the result

  • « SolrQuery::setQuery
  • SolrQuery::setShowDebugInfo »
  • PHP Manual
  • SolrQuery
  • Specifies the maximum number of rows to return in the result

SolrQuery::setRows

(PECL solr >= 0.9.2)

SolrQuery::setRows — Specifies the maximum number of rows to return in the result

Описание

public SolrQuery SolrQuery::setRows ( int $rows )

Specifies the maximum number of rows to return in the result

Список параметров

rows

The maximum number of rows to return

Возвращаемые значения

Returns the current SolrQuery object.


Flag to show debug information

  • « SolrQuery::setRows
  • SolrQuery::setStart »
  • PHP Manual
  • SolrQuery
  • Flag to show debug information

SolrQuery::setShowDebugInfo

(PECL solr >= 0.9.2)

SolrQuery::setShowDebugInfo — Flag to show debug information

Описание

public SolrQuery SolrQuery::setShowDebugInfo ( bool $flag )

Whether to show debug info

Список параметров

flag

Whether to show debug info. TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the number of rows to skip

  • « SolrQuery::setShowDebugInfo
  • SolrQuery::setStats »
  • PHP Manual
  • SolrQuery
  • Specifies the number of rows to skip

SolrQuery::setStart

(PECL solr >= 0.9.2)

SolrQuery::setStart — Specifies the number of rows to skip

Описание

public SolrQuery SolrQuery::setStart ( int $start )

Specifies the number of rows to skip. Useful in pagination of results.

Список параметров

start

The number of rows to skip.

Возвращаемые значения

Returns the current SolrQuery object.


Enables or disables the Stats component

  • « SolrQuery::setStart
  • SolrQuery::setTerms »
  • PHP Manual
  • SolrQuery
  • Enables or disables the Stats component

SolrQuery::setStats

(PECL solr >= 0.9.2)

SolrQuery::setStats — Enables or disables the Stats component

Описание

public SolrQuery SolrQuery::setStats ( bool $flag )

Enables or disables the Stats component.

Список параметров

flag

TRUE turns on the stats component and FALSE disables it.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Enables or disables the TermsComponent

  • « SolrQuery::setStats
  • SolrQuery::setTermsField »
  • PHP Manual
  • SolrQuery
  • Enables or disables the TermsComponent

SolrQuery::setTerms

(PECL solr >= 0.9.2)

SolrQuery::setTerms — Enables or disables the TermsComponent

Описание

public SolrQuery SolrQuery::setTerms ( bool $flag )

Enables or disables the TermsComponent

Список параметров

flag

TRUE enables it. FALSE turns it off

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the name of the field to get the Terms from

  • « SolrQuery::setTerms
  • SolrQuery::setTermsIncludeLowerBound »
  • PHP Manual
  • SolrQuery
  • Sets the name of the field to get the Terms from

SolrQuery::setTermsField

(PECL solr >= 0.9.2)

SolrQuery::setTermsField — Sets the name of the field to get the Terms from

Описание

public SolrQuery SolrQuery::setTermsField ( string $fieldname )

Sets the name of the field to get the terms from

Список параметров

fieldname

The field name

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Include the lower bound term in the result set

  • « SolrQuery::setTermsField
  • SolrQuery::setTermsIncludeUpperBound »
  • PHP Manual
  • SolrQuery
  • Include the lower bound term in the result set

SolrQuery::setTermsIncludeLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeLowerBound — Include the lower bound term in the result set

Описание

public SolrQuery SolrQuery::setTermsIncludeLowerBound ( bool $flag )

Include the lower bound term in the result set.

Список параметров

flag

Include the lower bound term in the result set

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Include the upper bound term in the result set

  • « SolrQuery::setTermsIncludeLowerBound
  • SolrQuery::setTermsLimit »
  • PHP Manual
  • SolrQuery
  • Include the upper bound term in the result set

SolrQuery::setTermsIncludeUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsIncludeUpperBound — Include the upper bound term in the result set

Описание

public SolrQuery SolrQuery::setTermsIncludeUpperBound ( bool $flag )

Include the upper bound term in the result set.

Список параметров

flag

TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum number of terms to return

  • « SolrQuery::setTermsIncludeUpperBound
  • SolrQuery::setTermsLowerBound »
  • PHP Manual
  • SolrQuery
  • Sets the maximum number of terms to return

SolrQuery::setTermsLimit

(PECL solr >= 0.9.2)

SolrQuery::setTermsLimit — Sets the maximum number of terms to return

Описание

public SolrQuery SolrQuery::setTermsLimit ( int $limit )

Sets the maximum number of terms to return

Список параметров

limit

The maximum number of terms to return. All the terms will be returned if the limit is negative.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies the Term to start from

  • « SolrQuery::setTermsLimit
  • SolrQuery::setTermsMaxCount »
  • PHP Manual
  • SolrQuery
  • Specifies the Term to start from

SolrQuery::setTermsLowerBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsLowerBound — Specifies the Term to start from

Описание

public SolrQuery SolrQuery::setTermsLowerBound ( string $lowerBound )

Specifies the Term to start from

Список параметров

lowerBound

The lower bound Term

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the maximum document frequency

  • « SolrQuery::setTermsLowerBound
  • SolrQuery::setTermsMinCount »
  • PHP Manual
  • SolrQuery
  • Sets the maximum document frequency

SolrQuery::setTermsMaxCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMaxCount — Sets the maximum document frequency

Описание

public SolrQuery SolrQuery::setTermsMaxCount ( int $frequency )

Sets the maximum document frequency.

Список параметров

frequency

The maximum document frequency.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the minimum document frequency

  • « SolrQuery::setTermsMaxCount
  • SolrQuery::setTermsPrefix »
  • PHP Manual
  • SolrQuery
  • Sets the minimum document frequency

SolrQuery::setTermsMinCount

(PECL solr >= 0.9.2)

SolrQuery::setTermsMinCount — Sets the minimum document frequency

Описание

public SolrQuery SolrQuery::setTermsMinCount ( int $frequency )

Sets the minimum doc frequency to return in order to be included

Список параметров

frequency

The minimum frequency

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Restrict matches to terms that start with the prefix

  • « SolrQuery::setTermsMinCount
  • SolrQuery::setTermsReturnRaw »
  • PHP Manual
  • SolrQuery
  • Restrict matches to terms that start with the prefix

SolrQuery::setTermsPrefix

(PECL solr >= 0.9.2)

SolrQuery::setTermsPrefix — Restrict matches to terms that start with the prefix

Описание

public SolrQuery SolrQuery::setTermsPrefix ( string $prefix )

Restrict matches to terms that start with the prefix

Список параметров

prefix

Restrict matches to terms that start with the prefix

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Return the raw characters of the indexed term

  • « SolrQuery::setTermsPrefix
  • SolrQuery::setTermsSort »
  • PHP Manual
  • SolrQuery
  • Return the raw characters of the indexed term

SolrQuery::setTermsReturnRaw

(PECL solr >= 0.9.2)

SolrQuery::setTermsReturnRaw — Return the raw characters of the indexed term

Описание

public SolrQuery SolrQuery::setTermsReturnRaw ( bool $flag )

If true, return the raw characters of the indexed term, regardless of if it is human readable

Список параметров

value

TRUE or FALSE

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Specifies how to sort the returned terms

  • « SolrQuery::setTermsReturnRaw
  • SolrQuery::setTermsUpperBound »
  • PHP Manual
  • SolrQuery
  • Specifies how to sort the returned terms

SolrQuery::setTermsSort

(PECL solr >= 0.9.2)

SolrQuery::setTermsSort — Specifies how to sort the returned terms

Описание

public SolrQuery SolrQuery::setTermsSort ( int $sortType )

If SolrQuery::TERMS_SORT_COUNT, sorts the terms by the term frequency (highest count first). If SolrQuery::TERMS_SORT_INDEX, returns the terms in index order

Список параметров

sortType

SolrQuery::TERMS_SORT_INDEX or SolrQuery::TERMS_SORT_COUNT

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


Sets the term to stop at

  • « SolrQuery::setTermsSort
  • SolrQuery::setTimeAllowed »
  • PHP Manual
  • SolrQuery
  • Sets the term to stop at

SolrQuery::setTermsUpperBound

(PECL solr >= 0.9.2)

SolrQuery::setTermsUpperBound — Sets the term to stop at

Описание

public SolrQuery SolrQuery::setTermsUpperBound ( string $upperBound )

Sets the term to stop at

Список параметров

upperBound

The term to stop at

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


The time allowed for search to finish

  • « SolrQuery::setTermsUpperBound
  • SolrDisMaxQuery »
  • PHP Manual
  • SolrQuery
  • The time allowed for search to finish

SolrQuery::setTimeAllowed

(PECL solr >= 0.9.2)

SolrQuery::setTimeAllowed — The time allowed for search to finish

Описание

public SolrQuery SolrQuery::setTimeAllowed ( int $timeAllowed )

The time allowed for a search to finish. This value only applies to the search and not to requests in general. Time is in milliseconds. Values less than or equal to zero implies no time restriction. Partial results may be returned, if there are any.

Список параметров

timeAllowed

The time allowed for a search to finish.

Возвращаемые значения

Returns the current SolrQuery object, if the return value is used.


The SolrDisMaxQuery class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

SolrDisMaxQuery extends SolrQuery implements Serializable {
/* Наследуемые свойства */
const integer SolrQuery::ORDER_ASC = 0 ;
const integer SolrQuery::ORDER_DESC = 1 ;
const integer SolrQuery::FACET_SORT_INDEX = 0 ;
const integer SolrQuery::FACET_SORT_COUNT = 1 ;
const integer SolrQuery::TERMS_SORT_INDEX = 0 ;
const integer SolrQuery::TERMS_SORT_COUNT = 1 ;
/* Методы */
public SolrDisMaxQuery addBigramPhraseField ( string $field , string $boost [, string $slop ] )
public SolrDisMaxQuery addBoostQuery ( string $field , string $value [, string $boost ] )
public SolrDisMaxQuery addPhraseField ( string $field , string $boost [, string $slop ] )
public SolrDisMaxQuery addQueryField ( string $field [, string $boost ] )
public SolrDisMaxQuery addTrigramPhraseField ( string $field , string $boost [, string $slop ] )
public SolrDisMaxQuery addUserField ( string $field )
public __construct ([ string $q ] )
public SolrDisMaxQuery removeBigramPhraseField ( string $field )
public SolrDisMaxQuery removeBoostQuery ( string $field )
public SolrDisMaxQuery removePhraseField ( string $field )
public SolrDisMaxQuery removeQueryField ( string $field )
public SolrDisMaxQuery removeTrigramPhraseField ( string $field )
public SolrDisMaxQuery removeUserField ( string $field )
public SolrDisMaxQuery setBigramPhraseFields ( string $fields )
public SolrDisMaxQuery setBigramPhraseSlop ( string $slop )
public SolrDisMaxQuery setBoostFunction ( string $function )
public SolrDisMaxQuery setBoostQuery ( string $q )
public SolrDisMaxQuery setMinimumMatch ( string $value )
public SolrDisMaxQuery setPhraseFields ( string $fields )
public SolrDisMaxQuery setPhraseSlop ( string $slop )
public SolrDisMaxQuery setQueryAlt ( string $q )
public SolrDisMaxQuery setQueryPhraseSlop ( string $slop )
public SolrDisMaxQuery setTieBreaker ( string $tieBreaker )
public SolrDisMaxQuery setTrigramPhraseFields ( string $fields )
public SolrDisMaxQuery setTrigramPhraseSlop ( string $slop )
public SolrDisMaxQuery setUserFields ( string $fields )
public SolrDisMaxQuery useDisMaxQueryParser ( void )
public SolrDisMaxQuery useEDisMaxQueryParser ( void )
/* Наследуемые методы */
public SolrQuery SolrQuery::addExpandFilterQuery ( string $fq )
public SolrQuery SolrQuery::addExpandSortField ( string $field [, string $order ] )
public SolrQuery SolrQuery::addFacetDateField ( string $dateField )
public SolrQuery SolrQuery::addFacetDateOther ( string $value [, string $field_override ] )
public SolrQuery SolrQuery::addFacetField ( string $field )
public SolrQuery SolrQuery::addFacetQuery ( string $facetQuery )
public SolrQuery SolrQuery::addField ( string $field )
public SolrQuery SolrQuery::addFilterQuery ( string $fq )
public SolrQuery SolrQuery::addGroupField ( string $value )
public SolrQuery SolrQuery::addGroupFunction ( string $value )
public SolrQuery SolrQuery::addGroupQuery ( string $value )
public SolrQuery SolrQuery::addGroupSortField ( string $field [, integer $order ] )
public SolrQuery SolrQuery::addHighlightField ( string $field )
public SolrQuery SolrQuery::addMltField ( string $field )
public SolrQuery SolrQuery::addMltQueryField ( string $field , float $boost )
public SolrQuery SolrQuery::addSortField ( string $field [, int $order = SolrQuery::ORDER_DESC ] )
public SolrQuery SolrQuery::addStatsFacet ( string $field )
public SolrQuery SolrQuery::addStatsField ( string $field )
public SolrQuery SolrQuery::collapse ( SolrCollapseFunction $collapseFunction )
public SolrQuery::__construct ([ string $q ] )
public void SolrQuery::__destruct ( void )
public bool SolrQuery::getExpand ( void )
public array SolrQuery::getExpandFilterQueries ( void )
public array SolrQuery::getExpandQuery ( void )
public integer SolrQuery::getExpandRows ( void )
public array SolrQuery::getExpandSortFields ( void )
public bool SolrQuery::getFacet ( void )
public string SolrQuery::getFacetDateEnd ([ string $field_override ] )
public array SolrQuery::getFacetDateFields ( void )
public string SolrQuery::getFacetDateGap ([ string $field_override ] )
public string SolrQuery::getFacetDateHardEnd ([ string $field_override ] )
public array SolrQuery::getFacetDateOther ([ string $field_override ] )
public string SolrQuery::getFacetDateStart ([ string $field_override ] )
public array SolrQuery::getFacetFields ( void )
public int SolrQuery::getFacetLimit ([ string $field_override ] )
public string SolrQuery::getFacetMethod ([ string $field_override ] )
public int SolrQuery::getFacetMinCount ([ string $field_override ] )
public bool SolrQuery::getFacetMissing ([ string $field_override ] )
public int SolrQuery::getFacetOffset ([ string $field_override ] )
public string SolrQuery::getFacetPrefix ([ string $field_override ] )
public array SolrQuery::getFacetQueries ( void )
public int SolrQuery::getFacetSort ([ string $field_override ] )
public array SolrQuery::getFields ( void )
public array SolrQuery::getFilterQueries ( void )
public bool SolrQuery::getGroup ( void )
public integer SolrQuery::getGroupCachePercent ( void )
public bool SolrQuery::getGroupFacet ( void )
public array SolrQuery::getGroupFields ( void )
public string SolrQuery::getGroupFormat ( void )
public array SolrQuery::getGroupFunctions ( void )
public integer SolrQuery::getGroupLimit ( void )
public bool SolrQuery::getGroupMain ( void )
public bool SolrQuery::getGroupNGroups ( void )
public integer SolrQuery::getGroupOffset ( void )
public array SolrQuery::getGroupQueries ( void )
public array SolrQuery::getGroupSortFields ( void )
public bool SolrQuery::getGroupTruncate ( void )
public bool SolrQuery::getHighlight ( void )
public string SolrQuery::getHighlightAlternateField ([ string $field_override ] )
public array SolrQuery::getHighlightFields ( void )
public string SolrQuery::getHighlightFormatter ([ string $field_override ] )
public string SolrQuery::getHighlightFragmenter ([ string $field_override ] )
public int SolrQuery::getHighlightFragsize ([ string $field_override ] )
public bool SolrQuery::getHighlightHighlightMultiTerm ( void )
public int SolrQuery::getHighlightMaxAlternateFieldLength ([ string $field_override ] )
public int SolrQuery::getHighlightMaxAnalyzedChars ( void )
public bool SolrQuery::getHighlightMergeContiguous ([ string $field_override ] )
public int SolrQuery::getHighlightRegexMaxAnalyzedChars ( void )
public string SolrQuery::getHighlightRegexPattern ( void )
public float SolrQuery::getHighlightRegexSlop ( void )
public bool SolrQuery::getHighlightRequireFieldMatch ( void )
public string SolrQuery::getHighlightSimplePost ([ string $field_override ] )
public string SolrQuery::getHighlightSimplePre ([ string $field_override ] )
public int SolrQuery::getHighlightSnippets ([ string $field_override ] )
public bool SolrQuery::getHighlightUsePhraseHighlighter ( void )
public bool SolrQuery::getMlt ( void )
public bool SolrQuery::getMltBoost ( void )
public int SolrQuery::getMltCount ( void )
public array SolrQuery::getMltFields ( void )
public int SolrQuery::getMltMaxNumQueryTerms ( void )
public int SolrQuery::getMltMaxNumTokens ( void )
public int SolrQuery::getMltMaxWordLength ( void )
public int SolrQuery::getMltMinDocFrequency ( void )
public int SolrQuery::getMltMinTermFrequency ( void )
public int SolrQuery::getMltMinWordLength ( void )
public array SolrQuery::getMltQueryFields ( void )
public string SolrQuery::getQuery ( void )
public int SolrQuery::getRows ( void )
public array SolrQuery::getSortFields ( void )
public int SolrQuery::getStart ( void )
public bool SolrQuery::getStats ( void )
public array SolrQuery::getStatsFacets ( void )
public array SolrQuery::getStatsFields ( void )
public bool SolrQuery::getTerms ( void )
public string SolrQuery::getTermsField ( void )
public bool SolrQuery::getTermsIncludeLowerBound ( void )
public bool SolrQuery::getTermsIncludeUpperBound ( void )
public int SolrQuery::getTermsLimit ( void )
public string SolrQuery::getTermsLowerBound ( void )
public int SolrQuery::getTermsMaxCount ( void )
public int SolrQuery::getTermsMinCount ( void )
public string SolrQuery::getTermsPrefix ( void )
public bool SolrQuery::getTermsReturnRaw ( void )
public int SolrQuery::getTermsSort ( void )
public string SolrQuery::getTermsUpperBound ( void )
public int SolrQuery::getTimeAllowed ( void )
public SolrQuery SolrQuery::removeExpandFilterQuery ( string $fq )
public SolrQuery SolrQuery::removeExpandSortField ( string $field )
public SolrQuery SolrQuery::removeFacetDateField ( string $field )
public SolrQuery SolrQuery::removeFacetDateOther ( string $value [, string $field_override ] )
public SolrQuery SolrQuery::removeFacetField ( string $field )
public SolrQuery SolrQuery::removeFacetQuery ( string $value )
public SolrQuery SolrQuery::removeField ( string $field )
public SolrQuery SolrQuery::removeFilterQuery ( string $fq )
public SolrQuery SolrQuery::removeHighlightField ( string $field )
public SolrQuery SolrQuery::removeMltField ( string $field )
public SolrQuery SolrQuery::removeMltQueryField ( string $queryField )
public SolrQuery SolrQuery::removeSortField ( string $field )
public SolrQuery SolrQuery::removeStatsFacet ( string $value )
public SolrQuery SolrQuery::removeStatsField ( string $field )
public SolrQuery SolrQuery::setEchoHandler ( bool $flag )
public SolrQuery SolrQuery::setEchoParams ( string $type )
public SolrQuery SolrQuery::setExpand ( bool $value )
public SolrQuery SolrQuery::setExpandQuery ( string $q )
public SolrQuery SolrQuery::setExpandRows ( integer $value )
public SolrQuery SolrQuery::setExplainOther ( string $query )
public SolrQuery SolrQuery::setFacet ( bool $flag )
public SolrQuery SolrQuery::setFacetDateEnd ( string $value [, string $field_override ] )
public SolrQuery SolrQuery::setFacetDateGap ( string $value [, string $field_override ] )
public SolrQuery SolrQuery::setFacetDateHardEnd ( bool $value [, string $field_override ] )
public SolrQuery SolrQuery::setFacetDateStart ( string $value [, string $field_override ] )
public SolrQuery SolrQuery::setFacetEnumCacheMinDefaultFrequency ( int $frequency [, string $field_override ] )
public SolrQuery SolrQuery::setFacetLimit ( int $limit [, string $field_override ] )
public SolrQuery SolrQuery::setFacetMethod ( string $method [, string $field_override ] )
public SolrQuery SolrQuery::setFacetMinCount ( int $mincount [, string $field_override ] )
public SolrQuery SolrQuery::setFacetMissing ( bool $flag [, string $field_override ] )
public SolrQuery SolrQuery::setFacetOffset ( int $offset [, string $field_override ] )
public SolrQuery SolrQuery::setFacetPrefix ( string $prefix [, string $field_override ] )
public SolrQuery SolrQuery::setFacetSort ( int $facetSort [, string $field_override ] )
public SolrQuery SolrQuery::setGroup ( bool $value )
public SolrQuery SolrQuery::setGroupCachePercent ( integer $percent )
public SolrQuery SolrQuery::setGroupFacet ( bool $value )
public SolrQuery SolrQuery::setGroupFormat ( string $value )
public SolrQuery SolrQuery::setGroupLimit ( integer $value )
public SolrQuery SolrQuery::setGroupMain ( string $value )
public SolrQuery SolrQuery::setGroupNGroups ( bool $value )
public SolrQuery SolrQuery::setGroupOffset ( integer $value )
public SolrQuery SolrQuery::setGroupTruncate ( bool $value )
public SolrQuery SolrQuery::setHighlight ( bool $flag )
public SolrQuery SolrQuery::setHighlightAlternateField ( string $field [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightFormatter ( string $formatter [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightFragmenter ( string $fragmenter [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightFragsize ( int $size [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightHighlightMultiTerm ( bool $flag )
public SolrQuery SolrQuery::setHighlightMaxAlternateFieldLength ( int $fieldLength [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightMaxAnalyzedChars ( int $value )
public SolrQuery SolrQuery::setHighlightMergeContiguous ( bool $flag [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightRegexMaxAnalyzedChars ( int $maxAnalyzedChars )
public SolrQuery SolrQuery::setHighlightRegexPattern ( string $value )
public SolrQuery SolrQuery::setHighlightRegexSlop ( float $factor )
public SolrQuery SolrQuery::setHighlightRequireFieldMatch ( bool $flag )
public SolrQuery SolrQuery::setHighlightSimplePost ( string $simplePost [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightSimplePre ( string $simplePre [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightSnippets ( int $value [, string $field_override ] )
public SolrQuery SolrQuery::setHighlightUsePhraseHighlighter ( bool $flag )
public SolrQuery SolrQuery::setMlt ( bool $flag )
public SolrQuery SolrQuery::setMltBoost ( bool $flag )
public SolrQuery SolrQuery::setMltCount ( int $count )
public SolrQuery SolrQuery::setMltMaxNumQueryTerms ( int $value )
public SolrQuery SolrQuery::setMltMaxNumTokens ( int $value )
public SolrQuery SolrQuery::setMltMaxWordLength ( int $maxWordLength )
public SolrQuery SolrQuery::setMltMinDocFrequency ( int $minDocFrequency )
public SolrQuery SolrQuery::setMltMinTermFrequency ( int $minTermFrequency )
public SolrQuery SolrQuery::setMltMinWordLength ( int $minWordLength )
public SolrQuery SolrQuery::setOmitHeader ( bool $flag )
public SolrQuery SolrQuery::setQuery ( string $query )
public SolrQuery SolrQuery::setRows ( int $rows )
public SolrQuery SolrQuery::setShowDebugInfo ( bool $flag )
public SolrQuery SolrQuery::setStart ( int $start )
public SolrQuery SolrQuery::setStats ( bool $flag )
public SolrQuery SolrQuery::setTerms ( bool $flag )
public SolrQuery SolrQuery::setTermsField ( string $fieldname )
public SolrQuery SolrQuery::setTermsIncludeLowerBound ( bool $flag )
public SolrQuery SolrQuery::setTermsIncludeUpperBound ( bool $flag )
public SolrQuery SolrQuery::setTermsLimit ( int $limit )
public SolrQuery SolrQuery::setTermsLowerBound ( string $lowerBound )
public SolrQuery SolrQuery::setTermsMaxCount ( int $frequency )
public SolrQuery SolrQuery::setTermsMinCount ( int $frequency )
public SolrQuery SolrQuery::setTermsPrefix ( string $prefix )
public SolrQuery SolrQuery::setTermsReturnRaw ( bool $flag )
public SolrQuery SolrQuery::setTermsSort ( int $sortType )
public SolrQuery SolrQuery::setTermsUpperBound ( string $upperBound )
public SolrQuery SolrQuery::setTimeAllowed ( int $timeAllowed )
}

Предопределенные константы

SolrDisMaxQuery::ORDER_ASC

Used to specify that the sorting should be in acending order (Duplicated for easier migration)

SolrDisMaxQuery::ORDER_DESC

Used to specify that the sorting should be in descending order (Duplicated for easier migration)

SolrDisMaxQuery::FACET_SORT_INDEX

Used to specify that the facet should sort by index (Duplicated for easier migration)

SolrDisMaxQuery::FACET_SORT_COUNT

Used to specify that the facet should sort by count (Duplicated for easier migration)

SolrDisMaxQuery::TERMS_SORT_INDEX

Used in the TermsComponent (Duplicated for easier migration)

SolrDisMaxQuery::TERMS_SORT_COUNT

Used in the TermsComponent (Duplicated for easier migration)

Содержание

  • SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)
  • SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)
  • SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)
  • SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::__construct — Class Constructor
  • SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)
  • SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)
  • SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)
  • SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)
  • SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter).
  • SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)
  • SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)
  • SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)
  • SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)
  • SolrDisMaxQuery::setQueryPhraseSlop — specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)
  • SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)
  • SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)
  • SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser
  • SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax


Adds a Phrase Bigram Field (pf2 parameter)

  • « SolrDisMaxQuery
  • SolrDisMaxQuery::addBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Phrase Bigram Field (pf2 parameter)

SolrDisMaxQuery::addBigramPhraseField

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::addBigramPhraseField — Adds a Phrase Bigram Field (pf2 parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::addBigramPhraseField ( string $field , string $boost [, string $slop ] )

Adds a Phrase Bigram Field (pf2 parameter) output format: field~slop^boost OR field^boost Slop is optional

Список параметров

field

boost

slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addBigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBigramPhraseField('cat', 2, 5.1)
    ->addBigramPhraseField('feature', 4.5)
;
echo $dismaxQuery;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5

Смотрите также

  • SolrDisMaxQuery::removeBigramPhraseField() - Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::setBigramPhraseFields() - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)


Adds a boost query field with value and optional boost (bq parameter)

  • « SolrDisMaxQuery::addBigramPhraseField
  • SolrDisMaxQuery::addPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a boost query field with value and optional boost (bq parameter)

SolrDisMaxQuery::addBoostQuery

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::addBoostQuery — Adds a boost query field with value and optional boost (bq parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::addBoostQuery ( string $field , string $value [, string $boost ] )

Adds a Boost Query field with value [and boost] (bq parameter)

Список параметров

field

value

boost

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addBoostQuery() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBoostQuery('cat', 'clothing', 2)
    ->addBoostQuery('cat', 'electronics', 5.1)
;
echo $dismaxQuery.PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&bq=cat:clothing^2 cat:electronics^5.1

Смотрите также

  • SolrDisMaxQuery::removeBoostQuery() - Removes a boost query partial by field name (bq)
  • SolrDisMaxQuery::setBoostQuery() - Directly Sets Boost Query Parameter (bq)


Adds a Phrase Field (pf parameter)

  • « SolrDisMaxQuery::addBoostQuery
  • SolrDisMaxQuery::addQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Phrase Field (pf parameter)

SolrDisMaxQuery::addPhraseField

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::addPhraseField — Adds a Phrase Field (pf parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::addPhraseField ( string $field , string $boost [, string $slop ] )

Adds a Phrase Field (pf parameter)

Список параметров

field

field name

boost

slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addPhraseField() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addPhraseField('cat', 3, 1)
    ->addPhraseField('third', 4, 2)
    ->addPhraseField('source', 55)
;
echo $dismaxQuery;
?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf=cat~1^3 third~2^4 source^55

Смотрите также

  • SolrDisMaxQuery::removePhraseField() - Removes a Phrase Field (pf parameter)
  • SolrDisMaxQuery::setPhraseFields() - Sets Phrase Fields and their boosts (and slops) using pf2 parameter


Add a query field with optional boost (qf parameter)

  • « SolrDisMaxQuery::addPhraseField
  • SolrDisMaxQuery::addTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Add a query field with optional boost (qf parameter)

SolrDisMaxQuery::addQueryField

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::addQueryField — Add a query field with optional boost (qf parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::addQueryField ( string $field [, string $boost ] )

Add a query field with optional boost (qf parameter)

Список параметров

field

field name

boost

Boost value. Boosts documents with matching terms.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addQueryField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addQueryField("location", 4)
    ->addQueryField("price")
    ->addQueryField("sku")
    ->addQueryField("title",3.4)
;
echo $dismaxQuery;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&qf=location^4 price sku title^3.4

Смотрите также

  • SolrDisMaxQuery::removeQueryField() - Removes a Query Field (qf parameter)


Adds a Trigram Phrase Field (pf3 parameter)

  • « SolrDisMaxQuery::addQueryField
  • SolrDisMaxQuery::addUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a Trigram Phrase Field (pf3 parameter)

SolrDisMaxQuery::addTrigramPhraseField

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::addTrigramPhraseField — Adds a Trigram Phrase Field (pf3 parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::addTrigramPhraseField ( string $field , string $boost [, string $slop ] )

Adds a Trigram Phrase Field (pf3 parameter)

Список параметров

field

Field Name

boost

Field Boost

slop

Field Slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addTrigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addTrigramPhraseField('cat', 2, 5.1)
->addTrigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;

?>

Результат выполнения данного примера:

q=lucene&defType=%s&pf3=cat~5.1^2 feature^4.5

Смотрите также

  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Adds a field to User Fields Parameter (uf)

  • « SolrDisMaxQuery::addTrigramPhraseField
  • SolrDisMaxQuery::__construct »
  • PHP Manual
  • SolrDisMaxQuery
  • Adds a field to User Fields Parameter (uf)

SolrDisMaxQuery::addUserField

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::addUserField — Adds a field to User Fields Parameter (uf)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::addUserField ( string $field )

Adds a field to The User Fields Parameter (uf)

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::addUserField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addUserField('cat')
->addUserField('text')
->addUserField('*_dt');

echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&uf=cat text *_dt

Смотрите также

  • SolrDisMaxQuery::removeUserField() - Removes a field from The User Fields Parameter (uf)
  • SolrDisMaxQuery::setUserFields() - Sets User Fields parameter (uf)


Class Constructor

  • « SolrDisMaxQuery::addUserField
  • SolrDisMaxQuery::removeBigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Class Constructor

SolrDisMaxQuery::__construct

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::__construct — Class Constructor

Описание

public SolrDisMaxQuery::__construct ([ string $q ] )

Class constructor initializes the object and sets the q parameter if passed

Список параметров

q

Search Query (q parameter)

Возвращаемые значения

Ошибки

Emits SolrIllegalArgumentException in case of an invalid parameter was passed.

Примеры

Пример #1 SolrDisMaxQuery::__construct() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
echo $dismaxQuery;

?>

Результат выполнения данного примера:

q=lucene&defType=edismax

Смотрите также


Removes phrase bigram field (pf2 parameter)

  • « SolrDisMaxQuery::__construct
  • SolrDisMaxQuery::removeBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes phrase bigram field (pf2 parameter)

SolrDisMaxQuery::removeBigramPhraseField

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::removeBigramPhraseField — Removes phrase bigram field (pf2 parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::removeBigramPhraseField ( string $field )

Removes a Bigram Phrase Field (pf2 parameter) that was previously added using SolrDisMaxQuery::addBigramPhraseField()

Список параметров

field

The Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removeBigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBigramPhraseField('cat', 2, 5.1)
    ->addBigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;

// remove cat from pf2
$dismaxQuery
    ->removeBigramPhraseField('cat');
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5
q=lucene&defType=edismax&pf2=feature^4.5

Смотрите также

  • SolrDisMaxQuery::addBigramPhraseField() - Adds a Phrase Bigram Field (pf2 parameter)
  • SolrDisMaxQuery::setBigramPhraseFields() - Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)


Removes a boost query partial by field name (bq)

  • « SolrDisMaxQuery::removeBigramPhraseField
  • SolrDisMaxQuery::removePhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a boost query partial by field name (bq)

SolrDisMaxQuery::removeBoostQuery

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::removeBoostQuery — Removes a boost query partial by field name (bq)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::removeBoostQuery ( string $field )

Removes a boost query partial from the existing query, only if SolrDisMaxQuery::addBoostQuery() was used.

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removeBoostQuery() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery
    ->addBoostQuery('cat', 'electronics', 5.1)
    ->addBoostQuery('cat', 'hard drive')
;
echo $dismaxQuery.PHP_EOL;
// now remove a query part with field 'cat'
$dismaxQuery
->removeBoostQuery('cat');
echo $dismaxQuery . PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&bq=cat:electronics^5.1 cat:hard drive
q=lucene&defType=edismax&bq=cat:hard drive

Смотрите также

  • SolrDisMaxQuery::addBoostQuery() - Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::setBoostQuery() - Directly Sets Boost Query Parameter (bq)


Removes a Phrase Field (pf parameter)

  • « SolrDisMaxQuery::removeBoostQuery
  • SolrDisMaxQuery::removeQueryField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Phrase Field (pf parameter)

SolrDisMaxQuery::removePhraseField

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::removePhraseField — Removes a Phrase Field (pf parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::removePhraseField ( string $field )

Removes a Phrase Field (pf parameter) that was previously added using SolrDisMaxQuery::addPhraseField

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removePhraseField() example

<?php
$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
    ->addPhraseField('first', 3, 1)
    ->addPhraseField('second', 4, 1)
    ->addPhraseField('cat', 55);
echo $dismaxQuery . PHP_EOL;
echo $dismaxQuery->removePhraseField('second');
?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf=first~1^3 second~1^4 cat^55
q=lucene&defType=edismax&pf=first~1^3 cat^55

Смотрите также

  • SolrDisMaxQuery::addPhraseField() - Adds a Phrase Field (pf parameter)
  • SolrDisMaxQuery::setPhraseFields() - Sets Phrase Fields and their boosts (and slops) using pf2 parameter


Removes a Query Field (qf parameter)

  • « SolrDisMaxQuery::removePhraseField
  • SolrDisMaxQuery::removeTrigramPhraseField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Query Field (qf parameter)

SolrDisMaxQuery::removeQueryField

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::removeQueryField — Removes a Query Field (qf parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::removeQueryField ( string $field )

Removes a Query Field (qf parameter) from the field list added by SolrDisMaxQuery::addQueryField()

qf: When building DisjunctionMaxQueries from the user's query it specifies the fields to search in, and boosts for those fields.

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removeQueryField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
    ->addQueryField('first', 3)
    ->addQueryField('second', 0.2)
    ->addQueryField('cat');
echo $dismaxQuery . PHP_EOL;
// remove field 'second'
echo $dismaxQuery->removeQueryField('second');
?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&qf=first^3 second^0.2 cat
q=lucene&defType=edismax&qf=first^3 cat

Смотрите также

  • SolrDisMaxQuery::addQueryField() - Add a query field with optional boost (qf parameter)


Removes a Trigram Phrase Field (pf3 parameter)

  • « SolrDisMaxQuery::removeQueryField
  • SolrDisMaxQuery::removeUserField »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a Trigram Phrase Field (pf3 parameter)

SolrDisMaxQuery::removeTrigramPhraseField

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::removeTrigramPhraseField — Removes a Trigram Phrase Field (pf3 parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::removeTrigramPhraseField ( string $field )

Removes a Trigram Phrase Field (pf3 parameter)

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removeTrigramPhraseField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addTrigramPhraseField('cat', 2, 5.1)
->addTrigramPhraseField('feature', 4.5)
;
echo $dismaxQuery.PHP_EOL;
// reverse
$dismaxQuery
->removeTrigramPhraseField('cat');
echo $dismaxQuery.PHP_EOL;

?>

Результат выполнения данного примера:

q=lucene&defType=%s&pf3=cat~5.1^2 feature^4.5
q=lucene&defType=%s&pf3=feature^4.5

Смотрите также

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Removes a field from The User Fields Parameter (uf)

  • « SolrDisMaxQuery::removeTrigramPhraseField
  • SolrDisMaxQuery::setBigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Removes a field from The User Fields Parameter (uf)

SolrDisMaxQuery::removeUserField

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::removeUserField — Removes a field from The User Fields Parameter (uf)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::removeUserField ( string $field )

Removes a field from The User Fields Parameter (uf)

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

field

Field Name

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::removeUserField() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery
->addUserField('cat')
->addUserField('text')
->addUserField('*_dt')
;
echo $dismaxQuery.PHP_EOL;

// remove field named 'text'
$dismaxQuery
->removeUserField('text');
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=%s&uf=cat text *_dt
q=lucene&defType=%s&uf=cat *_dt

Смотрите также

  • SolrDisMaxQuery::addUserField() - Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::setUserFields() - Sets User Fields parameter (uf)


Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

  • « SolrDisMaxQuery::removeUserField
  • SolrDisMaxQuery::setBigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

SolrDisMaxQuery::setBigramPhraseFields

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setBigramPhraseFields — Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setBigramPhraseFields ( string $fields )

Sets Bigram Phrase Fields (pf2) and their boosts (and slops)

Список параметров

fields

Fields boosts (slops)

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setBigramPhraseFields() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery->setBigramPhraseFields("cat~5.1^2 feature^4.5");
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf2=cat~5.1^2 feature^4.5

Смотрите также

  • SolrDisMaxQuery::setBigramPhraseSlop() - Sets Bigram Phrase Slop (ps2 parameter)
  • SolrDisMaxQuery::addBigramPhraseFields()
  • SolrDisMaxQuery::removeBigramPhraseField() - Removes phrase bigram field (pf2 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)


Sets Bigram Phrase Slop (ps2 parameter)

  • « SolrDisMaxQuery::setBigramPhraseFields
  • SolrDisMaxQuery::setBoostFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Bigram Phrase Slop (ps2 parameter)

SolrDisMaxQuery::setBigramPhraseSlop

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setBigramPhraseSlop — Sets Bigram Phrase Slop (ps2 parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setBigramPhraseSlop ( string $slop )

Sets Bigram Phrase Slop (ps2 parameter). A default slop for Bigram phrase fields.

Список параметров

slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setBigramPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setBigramPhraseSlop(5);
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&ps2=5

Смотрите также


Sets a Boost Function (bf parameter).

  • « SolrDisMaxQuery::setBigramPhraseSlop
  • SolrDisMaxQuery::setBoostQuery »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets a Boost Function (bf parameter).

SolrDisMaxQuery::setBoostFunction

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setBoostFunction — Sets a Boost Function (bf parameter).

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setBoostFunction ( string $function )

Sets Boost Function (bf parameter).

Functions (with optional boosts) that will be included in the user's query to influence the score. Any function supported natively by Solr can be used, along with a boost value. e.g.:

recip(rord(myfield),1,2,3)^1.5

Список параметров

function

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setBoostFunction() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$boostRecentDocsFunction = "recip(ms(NOW,mydatefield),3.16e-11,1,1)";
$dismaxQuery->setBoostFunction($boostRecentDocsFunction);

echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&bf=recip(ms(NOW,mydatefield),3.16e-11,1,1)

Смотрите также


Directly Sets Boost Query Parameter (bq)

  • « SolrDisMaxQuery::setBoostFunction
  • SolrDisMaxQuery::setMinimumMatch »
  • PHP Manual
  • SolrDisMaxQuery
  • Directly Sets Boost Query Parameter (bq)

SolrDisMaxQuery::setBoostQuery

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setBoostQuery — Directly Sets Boost Query Parameter (bq)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setBoostQuery ( string $q )

Sets Boost Query Parameter (bq)

Список параметров

q

query

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setBoostQuery() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");

$dismaxQuery->setBoostQuery('cat:electronics manu:local^2');
echo $dismaxQuery.PHP_EOL;
?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&bq=cat:electronics manu:local^2

Смотрите также

  • SolrDisMaxQuery::addBoostQuery() - Adds a boost query field with value and optional boost (bq parameter)
  • SolrDisMaxQuery::removeBoostQuery() - Removes a boost query partial by field name (bq)


Set Minimum "Should" Match (mm)

  • « SolrDisMaxQuery::setBoostQuery
  • SolrDisMaxQuery::setPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Set Minimum "Should" Match (mm)

SolrDisMaxQuery::setMinimumMatch

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setMinimumMatch — Set Minimum "Should" Match (mm)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setMinimumMatch ( string $value )

Set Minimum "Should" Match parameter (mm). If the default query operator is AND then mm=100%, if the default query operator (q.op) is OR, then mm=0%.

Список параметров

value

Minimum match value/expression

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setMinimumMatch() example

<?php

$dismaxQuery = new SolrDisMaxQuery("lucene");
// 75% of the query clauses must match
$dismaxQuery->setMinimumMatch("75%");
echo $dismaxQuery . PHP_EOL;

?>

Результат выполнения данного примера:

q=lucene&defType=edismax&mm=75%


Sets Phrase Fields and their boosts (and slops) using pf2 parameter

  • « SolrDisMaxQuery::setMinimumMatch
  • SolrDisMaxQuery::setPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Phrase Fields and their boosts (and slops) using pf2 parameter

SolrDisMaxQuery::setPhraseFields

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setPhraseFields — Sets Phrase Fields and their boosts (and slops) using pf2 parameter

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setPhraseFields ( string $fields )

Sets Phrase Fields (pf) and their boosts (and slops)

Список параметров

fields

Fields, boosts [, slops]

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setPhraseFields() example

<?php
$dismaxQuery = new SolrDisMaxQuery("lucene");
$dismaxQuery->setPhraseFields("cat~5.1^2 feature^4.5");
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&pf=cat~5.1^2 feature^4.5

Смотрите также

  • SolrDisMaxQuery::addPhraseFields()
  • SolrDisMaxQuery::removePhraseField() - Removes a Phrase Field (pf parameter)


Sets the default slop on phrase queries (ps parameter)

  • « SolrDisMaxQuery::setPhraseFields
  • SolrDisMaxQuery::setQueryAlt »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets the default slop on phrase queries (ps parameter)

SolrDisMaxQuery::setPhraseSlop

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setPhraseSlop — Sets the default slop on phrase queries (ps parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setPhraseSlop ( string $slop )

Sets the default amount of slop on phrase queries built with "pf", "pf2" and/or "pf3" fields (affects boosting). "ps" parameter

Список параметров

slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');

$dismaxQuery->setPhraseSlop(4);
echo $dismaxQuery.PHP_EOL;

?>

Результат выполнения данного примера:

q=lucene&defType=edismax&ps=4

Смотрите также


Set Query Alternate (q.alt parameter)

  • « SolrDisMaxQuery::setPhraseSlop
  • SolrDisMaxQuery::setQueryPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Set Query Alternate (q.alt parameter)

SolrDisMaxQuery::setQueryAlt

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setQueryAlt — Set Query Alternate (q.alt parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setQueryAlt ( string $q )

Set Query Alternate (q.alt parameter)

When the main q parameter is not specified or is blank. The q.alt parameter is used

Список параметров

q

Query String

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setQueryAlt() example

<?php

$dismaxQuery = new DisMaxQuery();
$dismaxQuery->setQueryAlt('*:*');

?>

Результатом выполнения данного примера будет что-то подобное:

defType=edismax&q.alt=*:*&q=


specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

  • « SolrDisMaxQuery::setQueryAlt
  • SolrDisMaxQuery::setTieBreaker »
  • PHP Manual
  • SolrDisMaxQuery
  • specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

SolrDisMaxQuery::setQueryPhraseSlop

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setQueryPhraseSlop — specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setQueryPhraseSlop ( string $slop )

The Query Phrase Slop is the amount of slop permitted on phrase queries explicitly included in the user's query string with the qf parameter.

slop refers to the number of positions one token needs to be moved in relation to another token in order to match a phrase specified in a query.

Список параметров

slop

Amount of slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setQueryPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setQueryPhraseSlop(3);
echo $dismaxQuery;
?>

Результатом выполнения данного примера будет что-то подобное:

defType=edismax&qs=3


Sets Tie Breaker parameter (tie parameter)

  • « SolrDisMaxQuery::setQueryPhraseSlop
  • SolrDisMaxQuery::setTrigramPhraseFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Tie Breaker parameter (tie parameter)

SolrDisMaxQuery::setTieBreaker

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setTieBreaker — Sets Tie Breaker parameter (tie parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setTieBreaker ( string $tieBreaker )

Sets Tie Breaker parameter (tie parameter)

Список параметров

tieBreaker

The tie parameter specifies a float value (which should be something much less than 1) to use as tiebreaker in DisMax queries.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setTieBreaker() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->setTieBreaker(0.1);

echo $dismaxQuery;

?>

Результат выполнения данного примера:

defType=edismax&tie=0.1


Directly Sets Trigram Phrase Fields (pf3 parameter)

  • « SolrDisMaxQuery::setTieBreaker
  • SolrDisMaxQuery::setTrigramPhraseSlop »
  • PHP Manual
  • SolrDisMaxQuery
  • Directly Sets Trigram Phrase Fields (pf3 parameter)

SolrDisMaxQuery::setTrigramPhraseFields

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setTrigramPhraseFields — Directly Sets Trigram Phrase Fields (pf3 parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setTrigramPhraseFields ( string $fields )

Directly Sets Trigram Phrase Fields (pf3 parameter)

Список параметров

fields

Trigram Phrase Fields

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setTrigramPhraseFields() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setTrigramPhraseFields('cat~5.1^2 feature^4.5');
echo $dismaxQuery.PHP_EOL;

?>

Результат выполнения данного примера:

q=lucene&defType=edismax&pf3=cat~5.1^2 feature^4.5

Смотрите также

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseSlop() - Sets Trigram Phrase Slop (ps3 parameter)


Sets Trigram Phrase Slop (ps3 parameter)

  • « SolrDisMaxQuery::setTrigramPhraseFields
  • SolrDisMaxQuery::setUserFields »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets Trigram Phrase Slop (ps3 parameter)

SolrDisMaxQuery::setTrigramPhraseSlop

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setTrigramPhraseSlop — Sets Trigram Phrase Slop (ps3 parameter)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setTrigramPhraseSlop ( string $slop )

Sets Trigram Phrase Slop (ps3 parameter)

Список параметров

slop

Phrase slop

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setTrigramPhraseSlop() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setTrigramPhraseSlop(2);
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&ps3=2

Смотрите также

  • SolrDisMaxQuery::addTrigramPhraseField() - Adds a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::removeTrigramPhraseField() - Removes a Trigram Phrase Field (pf3 parameter)
  • SolrDisMaxQuery::setTrigramPhraseFields() - Directly Sets Trigram Phrase Fields (pf3 parameter)


Sets User Fields parameter (uf)

  • « SolrDisMaxQuery::setTrigramPhraseSlop
  • SolrDisMaxQuery::useDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Sets User Fields parameter (uf)

SolrDisMaxQuery::setUserFields

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::setUserFields — Sets User Fields parameter (uf)

Описание

public SolrDisMaxQuery SolrDisMaxQuery::setUserFields ( string $fields )

Sets User Fields parameter (uf)

User Fields: Specifies which schema fields the end user shall be allowed to query.

Список параметров

fields

Fields names separated by space

This parameter supports wildcards.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::setUserFields() example

<?php

$dismaxQuery = new SolrDisMaxQuery('lucene');
$dismaxQuery->setUserFields('field1 field2 *_txt');
echo $dismaxQuery.PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

q=lucene&defType=edismax&uf=field1 field2 *_txt

Смотрите также

  • SolrDisMaxQuery::addUserField() - Adds a field to User Fields Parameter (uf)
  • SolrDisMaxQuery::removeUserField() - Removes a field from The User Fields Parameter (uf)


Switch QueryParser to be DisMax Query Parser

  • « SolrDisMaxQuery::setUserFields
  • SolrDisMaxQuery::useEDisMaxQueryParser »
  • PHP Manual
  • SolrDisMaxQuery
  • Switch QueryParser to be DisMax Query Parser

SolrDisMaxQuery::useDisMaxQueryParser

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::useDisMaxQueryParser — Switch QueryParser to be DisMax Query Parser

Описание

public SolrDisMaxQuery SolrDisMaxQuery::useDisMaxQueryParser ( void )

Switch QueryParser to be DisMax Query Parser

Список параметров

У этой функции нет параметров.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::useDisMaxQueryParser() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useDisMaxQueryParser();
echo $dismaxQuery;
?>

Результатом выполнения данного примера будет что-то подобное:

defType=dismax

Смотрите также

  • SolrDisMaxQuery::useDisMaxQueryParser()


Switch QueryParser to be EDisMax

  • « SolrDisMaxQuery::useDisMaxQueryParser
  • SolrCollapseFunction »
  • PHP Manual
  • SolrDisMaxQuery
  • Switch QueryParser to be EDisMax

SolrDisMaxQuery::useEDisMaxQueryParser

(Информация о версии неизвестна, возможно, только в SVN)

SolrDisMaxQuery::useEDisMaxQueryParser — Switch QueryParser to be EDisMax

Описание

public SolrDisMaxQuery SolrDisMaxQuery::useEDisMaxQueryParser ( void )

Switch QueryParser to be EDisMax. By default the query builder uses edismax, if it was switched using SolrDisMaxQuery::useDisMaxQueryParser(), it can be switched back using this method.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

SolrDisMaxQuery

Примеры

Пример #1 SolrDisMaxQuery::useEDisMaxQueryParser() example

<?php

$dismaxQuery = new SolrDisMaxQuery();
$dismaxQuery->useEDisMaxQueryParser();
echo $dismaxQuery;

?>

Результатом выполнения данного примера будет что-то подобное:

defType=edismax

Смотрите также


The SolrCollapseFunction class

(PECL solr >= 2.2.0)

Введение

Обзор классов

SolrCollapseFunction {
/* Constants */
const string NULLPOLICY_IGNORE = ignore ;
const string NULLPOLICY_EXPAND = expand ;
const string NULLPOLICY_COLLAPSE = collapse ;
/* Методы */
public __construct ([ string $field ] )
public string getField ( void )
public string getHint ( void )
public string getMax ( void )
public string getMin ( void )
public string getNullPolicy ( void )
public integer getSize ( void )
public SolrCollapseFunction setField ( string $fieldName )
public SolrCollapseFunction setHint ( string $hint )
public SolrCollapseFunction setMax ( string $max )
public SolrCollapseFunction setMin ( string $min )
public SolrCollapseFunction setNullPolicy ( string $nullPolicy )
public SolrCollapseFunction setSize ( integer $size )
public string __toString ( void )
}

Предопределенные константы

SolrCollapseFunction::NULLPOLICY_IGNORE

SolrCollapseFunction::NULLPOLICY_EXPAND

SolrCollapseFunction::NULLPOLICY_COLLAPSE

Содержание

  • SolrCollapseFunction::__construct — Constructor
  • SolrCollapseFunction::getField — Returns the field that is being collapsed on.
  • SolrCollapseFunction::getHint — Returns collapse hint
  • SolrCollapseFunction::getMax — Returns max parameter
  • SolrCollapseFunction::getMin — Returns min parameter
  • SolrCollapseFunction::getNullPolicy — Returns null policy
  • SolrCollapseFunction::getSize — Returns size parameter
  • SolrCollapseFunction::setField — Sets the field to collapse on
  • SolrCollapseFunction::setHint — Sets collapse hint
  • SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query.
  • SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only
  • SolrCollapseFunction::setNullPolicy — Sets the NULL Policy
  • SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only.
  • SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function


Constructor

  • « SolrCollapseFunction
  • SolrCollapseFunction::getField »
  • PHP Manual
  • SolrCollapseFunction
  • Constructor

SolrCollapseFunction::__construct

(PECL solr >= 2.2.0)

SolrCollapseFunction::__construct — Constructor

Описание

public SolrCollapseFunction::__construct ([ string $field ] )

Collapse Function constructor

Список параметров

field

The field name to collapse on.

In order to collapse a result. The field type must be a single valued String, Int or Float.

Примеры

Пример #1 SolrCollapseFunction::__construct() example

<?php

include "bootstrap.php";

$options = array
(
    'hostname' => SOLR_SERVER_HOSTNAME,
    'login'    => SOLR_SERVER_USERNAME,
    'password' => SOLR_SERVER_PASSWORD,
    'port'     => SOLR_SERVER_PORT,
    'path'     => SOLR_SERVER_PATH
);

$client = new SolrClient($options);

$query = new SolrQuery('*:*');

$func = new SolrCollapseFunction('field_name');

$func->setMax('sum(cscore(),field(some_other_field))');
$func->setSize(100);
$func->setNullPolicy(SolrCollapseFunction::NULLPOLICY_EXPAND);

$query->collapse($func);

$queryResponse = $client->query($query);

$response = $queryResponse->getResponse();

print_r($response);

?>

Смотрите также

  • SolrQuery::collapse() - Collapses the result set to a single document per group


Returns the field that is being collapsed on.

  • « SolrCollapseFunction::__construct
  • SolrCollapseFunction::getHint »
  • PHP Manual
  • SolrCollapseFunction
  • Returns the field that is being collapsed on.

SolrCollapseFunction::getField

(PECL solr >= 2.2.0)

SolrCollapseFunction::getField — Returns the field that is being collapsed on.

Описание

public string SolrCollapseFunction::getField ( void )

Returns the field that is being collapsed on.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setField() - Sets the field to collapse on


Returns collapse hint

  • « SolrCollapseFunction::getField
  • SolrCollapseFunction::getMax »
  • PHP Manual
  • SolrCollapseFunction
  • Returns collapse hint

SolrCollapseFunction::getHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::getHint — Returns collapse hint

Описание

public string SolrCollapseFunction::getHint ( void )

Returns collapse hint

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setHint() - Sets collapse hint


Returns max parameter

  • « SolrCollapseFunction::getHint
  • SolrCollapseFunction::getMin »
  • PHP Manual
  • SolrCollapseFunction
  • Returns max parameter

SolrCollapseFunction::getMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMax — Returns max parameter

Описание

public string SolrCollapseFunction::getMax ( void )

Returns max parameter

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setMax() - Selects the group heads by the max value of a numeric field or function query.


Returns min parameter

  • « SolrCollapseFunction::getMax
  • SolrCollapseFunction::getNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Returns min parameter

SolrCollapseFunction::getMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::getMin — Returns min parameter

Описание

public string SolrCollapseFunction::getMin ( void )

Returns min parameter

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setMin() - Sets the initial size of the collapse data structures when collapsing on a numeric field only


Returns null policy

  • « SolrCollapseFunction::getMin
  • SolrCollapseFunction::getSize »
  • PHP Manual
  • SolrCollapseFunction
  • Returns null policy

SolrCollapseFunction::getNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::getNullPolicy — Returns null policy

Описание

public string SolrCollapseFunction::getNullPolicy ( void )

Returns null policy used or null

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setNullPolicy() - Sets the NULL Policy


Returns size parameter

  • « SolrCollapseFunction::getNullPolicy
  • SolrCollapseFunction::setField »
  • PHP Manual
  • SolrCollapseFunction
  • Returns size parameter

SolrCollapseFunction::getSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::getSize — Returns size parameter

Описание

public integer SolrCollapseFunction::getSize ( void )

Gets the initial size of the collapse data structures when collapsing on a numeric field only

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • SolrCollapseFunction::setSize() - Sets the initial size of the collapse data structures when collapsing on a numeric field only.


Sets the field to collapse on

  • « SolrCollapseFunction::getSize
  • SolrCollapseFunction::setHint »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the field to collapse on

SolrCollapseFunction::setField

(PECL solr >= 2.2.0)

SolrCollapseFunction::setField — Sets the field to collapse on

Описание

public SolrCollapseFunction SolrCollapseFunction::setField ( string $fieldName )

The field name to collapse on. In order to collapse a result. The field type must be a single valued String, Int or Float.

Список параметров

fieldName

Возвращаемые значения

SolrCollapseFunction


Sets collapse hint

  • « SolrCollapseFunction::setField
  • SolrCollapseFunction::setMax »
  • PHP Manual
  • SolrCollapseFunction
  • Sets collapse hint

SolrCollapseFunction::setHint

(PECL solr >= 2.2.0)

SolrCollapseFunction::setHint — Sets collapse hint

Описание

public SolrCollapseFunction SolrCollapseFunction::setHint ( string $hint )

Sets collapse hint

Список параметров

hint

Currently there is only one hint available "top_fc", which stands for top level FieldCache

Возвращаемые значения

SolrCollapseFunction

Примеры

Пример #1 SolrCollapseFunction::setHint() example

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...


Selects the group heads by the max value of a numeric field or function query.

  • « SolrCollapseFunction::setHint
  • SolrCollapseFunction::setMin »
  • PHP Manual
  • SolrCollapseFunction
  • Selects the group heads by the max value of a numeric field or function query.

SolrCollapseFunction::setMax

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMax — Selects the group heads by the max value of a numeric field or function query.

Описание

public SolrCollapseFunction SolrCollapseFunction::setMax ( string $max )

Selects the group heads by the max value of a numeric field or function query.

Список параметров

max

Возвращаемые значения

SolrCollapseFunction

Примеры

Пример #1 SolrCollapseFunction::setMax() example

<?php

$func = new SolrCollapseFunction('field_name');

$func->setMax('sum(cscore(),field(some_field))');

$query = new SolrQuery('*:*');

$query->collapse($func);

?>


Sets the initial size of the collapse data structures when collapsing on a numeric field only

  • « SolrCollapseFunction::setMax
  • SolrCollapseFunction::setNullPolicy »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the initial size of the collapse data structures when collapsing on a numeric field only

SolrCollapseFunction::setMin

(PECL solr >= 2.2.0)

SolrCollapseFunction::setMin — Sets the initial size of the collapse data structures when collapsing on a numeric field only

Описание

public SolrCollapseFunction SolrCollapseFunction::setMin ( string $min )

Sets the initial size of the collapse data structures when collapsing on a numeric field only

Список параметров

min

Возвращаемые значения

SolrCollapseFunction


Sets the NULL Policy

  • « SolrCollapseFunction::setMin
  • SolrCollapseFunction::setSize »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the NULL Policy

SolrCollapseFunction::setNullPolicy

(PECL solr >= 2.2.0)

SolrCollapseFunction::setNullPolicy — Sets the NULL Policy

Описание

public SolrCollapseFunction SolrCollapseFunction::setNullPolicy ( string $nullPolicy )

Sets the NULL Policy. One of the 3 policies defined as class constants shall be passed. Accepts ignore, expand, or collapse policies.

Список параметров

nullPolicy

Возвращаемые значения

SolrCollapseFunction


Sets the initial size of the collapse data structures when collapsing on a numeric field only.

  • « SolrCollapseFunction::setNullPolicy
  • SolrCollapseFunction::__toString »
  • PHP Manual
  • SolrCollapseFunction
  • Sets the initial size of the collapse data structures when collapsing on a numeric field only.

SolrCollapseFunction::setSize

(PECL solr >= 2.2.0)

SolrCollapseFunction::setSize — Sets the initial size of the collapse data structures when collapsing on a numeric field only.

Описание

public SolrCollapseFunction SolrCollapseFunction::setSize ( integer $size )

Sets the initial size of the collapse data structures when collapsing on a numeric field only.

Список параметров

size

Возвращаемые значения

SolrCollapseFunction


Returns a string representing the constructed collapse function

  • « SolrCollapseFunction::setSize
  • SolrException »
  • PHP Manual
  • SolrCollapseFunction
  • Returns a string representing the constructed collapse function

SolrCollapseFunction::__toString

(PECL solr >= 2.2.0)

SolrCollapseFunction::__toString — Returns a string representing the constructed collapse function

Описание

public string SolrCollapseFunction::__toString ( void )

Returns a string representing the constructed collapse function

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс SolrException

(PECL solr >= 0.9.2)

Введение

Это базовый класс для всех исключений, бросаемых классами расширения Solr.

Обзор классов

SolrException extends Exception {
/* Свойства */
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
public array getInternalInfo ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Свойства

sourceline

The line in c-space source file where exception was generated

sourcefile

The c-space source file where exception was generated

zif_name

The c-space function where exception was generated

Содержание

  • SolrException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение


Возвращает внутреннюю информацию о том, где было вызвано исключение

  • « SolrException
  • SolrClientException »
  • PHP Manual
  • SolrException
  • Возвращает внутреннюю информацию о том, где было вызвано исключение

SolrException::getInternalInfo

(PECL solr >= 0.9.2)

SolrException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение

Описание

public array SolrException::getInternalInfo ( void )

Возвращает внутреннюю информацию о том, где было вызвано исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками расширения.


The SolrClientException class

(PECL solr >= 0.9.2)

Введение

An exception thrown when there is an error while making a request to the server from the client.

Обзор классов

SolrClientException extends SolrException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Методы */
public array getInternalInfo ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
public array SolrException::getInternalInfo ( void )
}

Содержание

  • SolrClientException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение


Возвращает внутреннюю информацию о том, где было вызвано исключение

  • « SolrClientException
  • SolrServerException »
  • PHP Manual
  • SolrClientException
  • Возвращает внутреннюю информацию о том, где было вызвано исключение

SolrClientException::getInternalInfo

(PECL solr >= 0.9.2)

SolrClientException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение

Описание

public array SolrClientException::getInternalInfo ( void )

Возвращает внутреннюю информацию о том, где было вызвано исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками расширения.


The SolrServerException class

(PECL Solr >= 1.1.0, >=2.0.0)

Введение

An exception thrown when there is an error produced by the Solr Server itself.

Обзор классов

SolrServerException extends SolrException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Методы */
public array getInternalInfo ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
public array SolrException::getInternalInfo ( void )
}

Содержание

  • SolrServerException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение


Возвращает внутреннюю информацию о том, где было вызвано исключение

  • « SolrServerException
  • SolrIllegalArgumentException »
  • PHP Manual
  • SolrServerException
  • Возвращает внутреннюю информацию о том, где было вызвано исключение

SolrServerException::getInternalInfo

(PECL solr >= 1.1.0, >=2.0.0)

SolrServerException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение

Описание

public array SolrServerException::getInternalInfo ( void )

Возвращает внутреннюю информацию о том, где было вызвано исключение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий информацию о том, где было вызвано исключение. Используется только разработчиками расширений для отладки.


The SolrIllegalArgumentException class

(PECL solr >= 0.9.2)

Введение

This object is thrown when an illeglal or invalid argument is passed to a method.

Обзор классов

SolrIllegalArgumentException extends SolrException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Методы */
public array getInternalInfo ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
public array SolrException::getInternalInfo ( void )
}

Содержание

  • SolrIllegalArgumentException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение


Возвращает внутреннюю информацию о том, где было вызвано исключение

  • « SolrIllegalArgumentException
  • SolrIllegalOperationException »
  • PHP Manual
  • SolrIllegalArgumentException
  • Возвращает внутреннюю информацию о том, где было вызвано исключение

SolrIllegalArgumentException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalArgumentException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение

Описание

public array SolrIllegalArgumentException::getInternalInfo ( void )

Возвращает внутреннюю информацию о том, где было вызвано исключение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками расширения.


The SolrIllegalOperationException class

(PECL solr >= 0.9.2)

Введение

This object is thrown when an illegal or unsupported operation is performed on an object.

Обзор классов

SolrIllegalOperationException extends SolrException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Методы */
public array getInternalInfo ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
public array SolrException::getInternalInfo ( void )
}

Содержание

  • SolrIllegalOperationException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение


Возвращает внутреннюю информацию о том, где было вызвано исключение

  • « SolrIllegalOperationException
  • SolrMissingMandatoryParameterException »
  • PHP Manual
  • SolrIllegalOperationException
  • Возвращает внутреннюю информацию о том, где было вызвано исключение

SolrIllegalOperationException::getInternalInfo

(PECL solr >= 0.9.2)

SolrIllegalOperationException::getInternalInfo — Возвращает внутреннюю информацию о том, где было вызвано исключение

Описание

public array SolrIllegalOperationException::getInternalInfo ( void )

Возвращает внутреннюю информацию о том, где было вызвано исключение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, содержащий внутреннюю информацию о том, где была вызвана ошибка. Используется только для отладки разработчиками расширения.


The SolrMissingMandatoryParameterException class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

SolrMissingMandatoryParameterException extends SolrException {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
protected integer $sourceline ;
protected string $sourcefile ;
protected string $zif_name ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
public array SolrException::getInternalInfo ( void )
}


Клиент Sphinx

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • SphinxClient — Класс SphinxClient
    • SphinxClient::addQuery — Добавление запроса к очереди запросов
    • SphinxClient::buildExcerpts — Построение текстовых фрагментов
    • SphinxClient::buildKeywords — Извлечение ключевых слов из запроса
    • SphinxClient::close — Закрытие ранее открытого постоянного соединения
    • SphinxClient::__construct — Создание нового объекта SphinxClient
    • SphinxClient::escapeString — Экранирование спецсимволов
    • SphinxClient::getLastError — Получение последнего сообщения об ошибке
    • SphinxClient::getLastWarning — Получение последнего предупреждения
    • SphinxClient::open — Создание постоянного подключения к серверу
    • SphinxClient::query — Выполнение поискового запроса
    • SphinxClient::resetFilters — Обнуление всех фильтров
    • SphinxClient::resetGroupBy — Сброс всех настроек группировок
    • SphinxClient::runQueries — Выполнение набора поисковых запросов
    • SphinxClient::setArrayResult — Изменение формата массива с набором результатов запроса
    • SphinxClient::setConnectTimeout — Установка таймаута соединения
    • SphinxClient::setFieldWeights — Установка весовых коэффициентов полей
    • SphinxClient::setFilter — Добавление фильтра по типу поля integer
    • SphinxClient::setFilterFloatRange — Добавление фильтра по диапазону значений (для поля типа float)
    • SphinxClient::setFilterRange — Добавление фильтра по диапазону значений (для поля типа integer)
    • SphinxClient::setGeoAnchor — Установка опорной точки для расчета географической удаленности
    • SphinxClient::setGroupBy — Установка атрибута группировки
    • SphinxClient::setGroupDistinct — Установка названия атрибута для расчета количества уникальных значений при группировке
    • SphinxClient::setIDRange — Установка диапазона значений допустимых ID документов
    • SphinxClient::setIndexWeights — Установка весовых коэффициентов индексов
    • SphinxClient::setLimits — Установка смещения и предельного числа значений для набора результатов
    • SphinxClient::setMatchMode — Установка режима совпадения при полнотекстовом поиске
    • SphinxClient::setMaxQueryTime — Установка максимального времени выполнения запроса
    • SphinxClient::setOverride — Временное переопределение значений атрибута для документов
    • SphinxClient::setRankingMode — Установка режима ранжирования
    • SphinxClient::setRetries — Установка количества повторных попыток и задержки между ними
    • SphinxClient::setSelect — Установка условия выборки
    • SphinxClient::setServer — Установка хоста и порта searchd
    • SphinxClient::setSortMode — Установка режима сортировки результатов
    • SphinxClient::status — Запрос статуса searchd
    • SphinxClient::updateAttributes — Обновление атрибутов документа


Введение

Это расширение предоставляет интерфейс для работы с клиентской библиотекой Sphinx. Sphinx - это поисковый движок, позволяющий производить быстрый, эффективный на больших объемах и релевантный полнотекстовый поиск в ваших приложениях. Sphinx был специально разработан для хорошей интеграции с реляционными базами данных и скриптовыми языками программирования. Как Sphinx, так и клиентская библиотека могут быть получены с » официального сайта


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

PECL/sphinx требует версию PHP не ниже 5.2.2.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/sphinx.

Если скрипт ./configure, сгенерированный с помощью phpize, не может найти файлы libsphinxclient files (например, в случае их установки не в директорию по умолчанию), воспользуйтесь командой ./configure --with-sphinx=$PREFIX, где $PREFIX - путь к libsphinxclient.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SEARCHD_OK (integer)
SEARCHD_ERROR (integer)
SEARCHD_RETRY (integer)
SEARCHD_WARNING (integer)
SPH_MATCH_ALL (integer)
SPH_MATCH_ANY (integer)
SPH_MATCH_PHRASE (integer)
SPH_MATCH_BOOLEAN (integer)
SPH_MATCH_EXTENDED (integer)
SPH_MATCH_FULLSCAN (integer)
SPH_MATCH_EXTENDED2 (integer)
SPH_RANK_PROXIMITY_BM25 (integer)
SPH_RANK_BM25 (integer)
SPH_RANK_NONE (integer)
SPH_RANK_WORDCOUNT (integer)
SPH_SORT_RELEVANCE (integer)
SPH_SORT_ATTR_DESC (integer)
SPH_SORT_ATTR_ASC (integer)
SPH_SORT_TIME_SEGMENTS (integer)
SPH_SORT_EXTENDED (integer)
SPH_SORT_EXPR (integer)
SPH_FILTER_VALUES (integer)
SPH_FILTER_RANGE (integer)
SPH_FILTER_FLOATRANGE (integer)
SPH_ATTR_INTEGER (integer)
SPH_ATTR_TIMESTAMP (integer)
SPH_ATTR_ORDINAL (integer)
SPH_ATTR_BOOL (integer)
SPH_ATTR_FLOAT (integer)
SPH_ATTR_MULTI (integer)
SPH_GROUPBY_DAY (integer)
SPH_GROUPBY_WEEK (integer)
SPH_GROUPBY_MONTH (integer)
SPH_GROUPBY_YEAR (integer)
SPH_GROUPBY_ATTR (integer)
SPH_GROUPBY_ATTRPAIR (integer)


Примеры

Пример #1 Примеры использования

<?php

$s = new SphinxClient;
$s->setServer("localhost", 6712);
$s->setMatchMode(SPH_MATCH_ANY);
$s->setMaxQueryTime(3);

$result = $s->query("test");

var_dump($result);

?>

Результатом выполнения данного примера будет что-то подобное:

array(10) {
  ["error"]=>
  string(0) ""
  ["warning"]=>
  string(0) ""
  ["status"]=>
  int(0)
  ["fields"]=>
  array(3) {
    [0]=>
    string(7) "subject"
    [1]=>
    string(4) "body"
    [2]=>
    string(6) "author"
  }
  ["attrs"]=>
  array(0) {
  }
  ["matches"]=>
  array(1) {
    [3]=>
    array(2) {
      ["weight"]=>
      int(1)
      ["attrs"]=>
      array(0) {
      }
    }
  }
  ["total"]=>
  int(1)
  ["total_found"]=>
  int(1)
  ["time"]=>
  float(0)
  ["words"]=>
  array(1) {
    ["to"]=>
    array(2) {
      ["docs"]=>
      int(1)
      ["hits"]=>
      int(1)
    }
  }
}


Класс SphinxClient

(PECL sphinx >= 0.1.0)

Введение

Класс SphinxClient предоставляет объектно-ориентированный интерфейс к Sphinx.

Обзор классов

SphinxClient {
/* Методы */
public int addQuery ( string $query [, string $index = "*" [, string $comment = "" ]] )
public array buildExcerpts ( array $docs , string $index , string $words [, array $opts ] )
public array buildKeywords ( string $query , string $index , bool $hits )
public bool close ( void )
public __construct ( void )
public string escapeString ( string $string )
public string getLastError ( void )
public string getLastWarning ( void )
public bool open ( void )
public array query ( string $query [, string $index = "*" [, string $comment = "" ]] )
public void resetFilters ( void )
public void resetGroupBy ( void )
public array runQueries ( void )
public bool setArrayResult ( bool $array_result = false )
public bool setConnectTimeout ( float $timeout )
public bool setFieldWeights ( array $weights )
public bool setFilter ( string $attribute , array $values [, bool $exclude = false ] )
public bool setFilterFloatRange ( string $attribute , float $min , float $max [, bool $exclude = false ] )
public bool setFilterRange ( string $attribute , int $min , int $max [, bool $exclude = false ] )
public bool setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude )
public bool setGroupBy ( string $attribute , int $func [, string $groupsort = "@group desc" ] )
public bool setGroupDistinct ( string $attribute )
public bool setIDRange ( int $min , int $max )
public bool setIndexWeights ( array $weights )
public bool setLimits ( int $offset , int $limit [, int $max_matches = 0 [, int $cutoff = 0 ]] )
public bool setMatchMode ( int $mode )
public bool setMaxQueryTime ( int $qtime )
public bool setOverride ( string $attribute , int $type , array $values )
public bool setRankingMode ( int $ranker )
public bool setRetries ( int $count [, int $delay = 0 ] )
public bool setSelect ( string $clause )
public bool setServer ( string $server , int $port )
public bool setSortMode ( int $mode [, string $sortby ] )
public array status ( void )
public int updateAttributes ( string $index , array $attributes , array $values [, bool $mva = false ] )
}

Содержание

  • SphinxClient::addQuery — Добавление запроса к очереди запросов
  • SphinxClient::buildExcerpts — Построение текстовых фрагментов
  • SphinxClient::buildKeywords — Извлечение ключевых слов из запроса
  • SphinxClient::close — Закрытие ранее открытого постоянного соединения
  • SphinxClient::__construct — Создание нового объекта SphinxClient
  • SphinxClient::escapeString — Экранирование спецсимволов
  • SphinxClient::getLastError — Получение последнего сообщения об ошибке
  • SphinxClient::getLastWarning — Получение последнего предупреждения
  • SphinxClient::open — Создание постоянного подключения к серверу
  • SphinxClient::query — Выполнение поискового запроса
  • SphinxClient::resetFilters — Обнуление всех фильтров
  • SphinxClient::resetGroupBy — Сброс всех настроек группировок
  • SphinxClient::runQueries — Выполнение набора поисковых запросов
  • SphinxClient::setArrayResult — Изменение формата массива с набором результатов запроса
  • SphinxClient::setConnectTimeout — Установка таймаута соединения
  • SphinxClient::setFieldWeights — Установка весовых коэффициентов полей
  • SphinxClient::setFilter — Добавление фильтра по типу поля integer
  • SphinxClient::setFilterFloatRange — Добавление фильтра по диапазону значений (для поля типа float)
  • SphinxClient::setFilterRange — Добавление фильтра по диапазону значений (для поля типа integer)
  • SphinxClient::setGeoAnchor — Установка опорной точки для расчета географической удаленности
  • SphinxClient::setGroupBy — Установка атрибута группировки
  • SphinxClient::setGroupDistinct — Установка названия атрибута для расчета количества уникальных значений при группировке
  • SphinxClient::setIDRange — Установка диапазона значений допустимых ID документов
  • SphinxClient::setIndexWeights — Установка весовых коэффициентов индексов
  • SphinxClient::setLimits — Установка смещения и предельного числа значений для набора результатов
  • SphinxClient::setMatchMode — Установка режима совпадения при полнотекстовом поиске
  • SphinxClient::setMaxQueryTime — Установка максимального времени выполнения запроса
  • SphinxClient::setOverride — Временное переопределение значений атрибута для документов
  • SphinxClient::setRankingMode — Установка режима ранжирования
  • SphinxClient::setRetries — Установка количества повторных попыток и задержки между ними
  • SphinxClient::setSelect — Установка условия выборки
  • SphinxClient::setServer — Установка хоста и порта searchd
  • SphinxClient::setSortMode — Установка режима сортировки результатов
  • SphinxClient::status — Запрос статуса searchd
  • SphinxClient::updateAttributes — Обновление атрибутов документа


Добавление запроса к очереди запросов

  • « SphinxClient
  • SphinxClient::buildExcerpts »
  • PHP Manual
  • SphinxClient
  • Добавление запроса к очереди запросов

SphinxClient::addQuery

(PECL sphinx >= 0.1.0)

SphinxClient::addQuery — Добавление запроса к очереди запросов

Описание

public int SphinxClient::addQuery ( string $query [, string $index = "*" [, string $comment = "" ]] )

Добавляет запрос с текущими настройками к очереди запросов. Этот метод никак не влияет на текущие настройки (сортировка, фильтрация, группировка и т.п.).

Список параметров

query

Строка запроса.

index

Название индекса (или названия).

comment

Возвращаемые значения

Возвращает индекс массива результатов, который будет возвращен с помощью SphinxClient::runQueries или false в случае ошибки.

Смотрите также

  • SphinxClient::runQueries
  • SphinxClient::query


Построение текстовых фрагментов

  • « SphinxClient::addQuery
  • SphinxClient::buildKeywords »
  • PHP Manual
  • SphinxClient
  • Построение текстовых фрагментов

SphinxClient::buildExcerpts

(PECL sphinx >= 0.1.0)

SphinxClient::buildExcerpts — Построение текстовых фрагментов

Описание

public array SphinxClient::buildExcerpts ( array $docs , string $index , string $words [, array $opts ] )

Подключается к searchd и отправляет запрос на генерацию фрагментов указанных документов, и возвращает результаты.

Список параметров

docs

Массив строк с содержимым документов.

index

Название индекса.

words

Ключевые слова, которые необходимо подсветить.

opts

Ассоциативный массив с дополнительными параметрами подсветки (см. ниже).

Параметры подсветки
Параметр | Описание
"before_match" | Строка, вставляемая перед ключевым словом. По умолчанию "<b>".
"after_match" | Строка, вставляемая после ключевого слова. По умолчанию "</b>".
"chunk_separator" | Строка, вставляемая между частями фрагмента. по умолчанию " ... ".
"limit" | Максимальный размер фрагмента в символах. Integer, по умолчанию 256.
"around" | Сколько слов необходимо выбрать вокруг каждого совпадающего с ключевыми словами блока. Integer, по умолчанию 5.
"exact_phrase" | Необходимо ли подсвечивать только точное совпадение с поисковой фразой, а не отдельные ключевые слова. Boolean, по умолчанию FALSE.
"single_passage" | Необходимо ли извлечь только единичный наиболее подходящий фрагмент. Boolean, по умолчанию FALSE.

Возвращаемые значения

При успехе возвращает массив фрагментов. или FALSE в случае возникновения ошибки.


Извлечение ключевых слов из запроса

  • « SphinxClient::buildExcerpts
  • SphinxClient::close »
  • PHP Manual
  • SphinxClient
  • Извлечение ключевых слов из запроса

SphinxClient::buildKeywords

(PECL sphinx >= 0.1.0)

SphinxClient::buildKeywords — Извлечение ключевых слов из запроса

Описание

public array SphinxClient::buildKeywords ( string $query , string $index , bool $hits )

Извлекает ключевые слова из query, используя настройки tokenizer (лексера) для указанного index, опционально с частотной статистикой по ключевым словам.

Список параметров

query

Запрос для извлечения ключевых слов.

index

Индекс для получения настроек tokenizer (лексера) и частотной статистики ключевых слов.

hits

Бинарный флаг, включающий/выключающий генерацию статистики ключевых слов.

Возвращаемые значения

Возвращает массив ассоциативных массивов с информацией по каждому ключевому слову.


Закрытие ранее открытого постоянного соединения

  • « SphinxClient::buildKeywords
  • SphinxClient::__construct »
  • PHP Manual
  • SphinxClient
  • Закрытие ранее открытого постоянного соединения

SphinxClient::close

(PECL sphinx >= 1.0.3)

SphinxClient::close — Закрытие ранее открытого постоянного соединения

Описание

public bool SphinxClient::close ( void )

Закрывает ранее открытое постоянное соединение.

Список параметров

У этой функции нет параметров.

Список изменений

PECL/sphinx Версия | Описание
1.0.3 | Добавлен метод SphinxClient::close(). Доступен только если модуль скомпилирован с версией libsphinxclient >= 0.9.9.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::open


Создание нового объекта SphinxClient

  • « SphinxClient::close
  • SphinxClient::escapeString »
  • PHP Manual
  • SphinxClient
  • Создание нового объекта SphinxClient

SphinxClient::__construct

(PECL sphinx >= 0.1.0)

SphinxClient::__construct — Создание нового объекта SphinxClient

Описание

public SphinxClient::__construct ( void )

Создает новый объект SphinxClient.

Список параметров

У этой функции нет параметров.


Экранирование спецсимволов

  • « SphinxClient::__construct
  • SphinxClient::getLastError »
  • PHP Manual
  • SphinxClient
  • Экранирование спецсимволов

SphinxClient::escapeString

(PECL sphinx >= 0.1.0)

SphinxClient::escapeString — Экранирование спецсимволов

Описание

public string SphinxClient::escapeString ( string $string )

Экранирует символы, которые воспринимаются как специальные операторы парсером запроса.

Список параметров

string

Строка для экранирования.

Возвращаемые значения

Возвращает экранированную строку.


Получение последнего сообщения об ошибке

  • « SphinxClient::escapeString
  • SphinxClient::getLastWarning »
  • PHP Manual
  • SphinxClient
  • Получение последнего сообщения об ошибке

SphinxClient::getLastError

(PECL sphinx >= 0.1.0)

SphinxClient::getLastError — Получение последнего сообщения об ошибке

Описание

public string SphinxClient::getLastError ( void )

Возвращает строку, содержащую последнее сообщение об ошибке. Если во время предыдущего вызова API ошибок не было, возвращается пустая строка. Этот метод не обнуляет сообщение об ошибке, таким образом, его можно вызывать несколько раз.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает последнее сообщение об ошибке или пустую строку в случае их отсутствия.

Смотрите также

  • SphinxClient::getLastWarning


Получение последнего предупреждения

  • « SphinxClient::getLastError
  • SphinxClient::open »
  • PHP Manual
  • SphinxClient
  • Получение последнего предупреждения

SphinxClient::getLastWarning

(PECL sphinx >= 0.1.0)

SphinxClient::getLastWarning — Получение последнего предупреждения

Описание

public string SphinxClient::getLastWarning ( void )

Возвращает последнее сообщение с предупреждением. Если во время предыдущего вызова API предупреждений не было, возвращается пустая строка. Этот метод не обнуляет сообщение о предупреждении, таким образом, его можно вызывать несколько раз.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает последнее сообщение с предупреждением или пустую строку, если предупреждений не было.

Смотрите также

  • SphinxClient::getLastError


Создание постоянного подключения к серверу

  • « SphinxClient::getLastWarning
  • SphinxClient::query »
  • PHP Manual
  • SphinxClient
  • Создание постоянного подключения к серверу

SphinxClient::open

(PECL sphinx >= 1.0.3)

SphinxClient::open — Создание постоянного подключения к серверу

Описание

public bool SphinxClient::open ( void )

Создает постоянное подключение к серверу.

Список параметров

У этой функции нет параметров.

Список изменений

PECL/sphinx Версия | Описание
1.0.3 | Добавлен метод SphinxClient::open(), доступен только если модуль скомпилирован с версией libsphinxclient >= 0.9.9.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::close


Выполнение поискового запроса

  • « SphinxClient::open
  • SphinxClient::resetFilters »
  • PHP Manual
  • SphinxClient
  • Выполнение поискового запроса

SphinxClient::query

(PECL sphinx >= 0.1.0)

SphinxClient::query — Выполнение поискового запроса

Описание

public array SphinxClient::query ( string $query [, string $index = "*" [, string $comment = "" ]] )

Подключается к серверу searchd, выполняет указанный поисковый запрос с текущими настройками, получает и возвращает набор результатов.

Список параметров

query

Строка запроса.

index

Название индекса (или множество названий).

comment

Возвращаемые значения

При успехе SphinxClient::query() возвращает список найденных совпадений и дополнительную статистику по запросу. Набор результатов - это (если не указано иное) ассоциативный массив со следующими ключами и значениями:

Структура набора результатов
Ключ | Описание значения
"matches" | Массив с ID найденных документов в качестве ключей и их весами и атрибутами в качестве значений.
"total" | Общее число найденных и полученных совпадений (зависит от ваших настроек).
"total_found" | Общее число найденных документов, удовлетворяющих запросу.
"words" | Массив со словами (приведенными к одному регистру и словоформе) в качестве ключей и статистика по этим словам в качестве значений.
"error" | Ошибка запроса, полученная от searchd
"warning" | Предупреждение, полученное от searchd

Смотрите также

  • SphinxClient::runQueries
  • SphinxClient::addQuery


Обнуление всех фильтров

  • « SphinxClient::query
  • SphinxClient::resetGroupBy »
  • PHP Manual
  • SphinxClient
  • Обнуление всех фильтров

SphinxClient::resetFilters

(PECL sphinx >= 0.1.0)

SphinxClient::resetFilters — Обнуление всех фильтров

Описание

public void SphinxClient::resetFilters ( void )

Обнуляет все выставленные на данный момент фильтры. Вызов этого метода обычно требуется при использовании очереди запросов. При необходимости установки различных фильтров для различных запросов в очереди следует вызвать SphinxClient::resetFilters() и добавить новые фильтры, используя соответствующие вызовы.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SphinxClient::resetGroupBy


Сброс всех настроек группировок

  • « SphinxClient::resetFilters
  • SphinxClient::runQueries »
  • PHP Manual
  • SphinxClient
  • Сброс всех настроек группировок

SphinxClient::resetGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::resetGroupBy — Сброс всех настроек группировок

Описание

public void SphinxClient::resetGroupBy ( void )

Очищает все текущие настройки группировок и отключает группировку. Этот запрос обычно требуется только при использовании очереди запросов.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SphinxClient::resetGroupBy


Выполнение набора поисковых запросов

  • « SphinxClient::resetGroupBy
  • SphinxClient::setArrayResult »
  • PHP Manual
  • SphinxClient
  • Выполнение набора поисковых запросов

SphinxClient::runQueries

(PECL sphinx >= 0.1.0)

SphinxClient::runQueries — Выполнение набора поисковых запросов

Описание

public array SphinxClient::runQueries ( void )

Подключается к searchd, выполняет набор из всех запросов, добавленных с помощью SphinxClient::addQuery, получает и возвращает набор результатов.

Возвращаемые значения

Возвращает FALSE в случае неудачи или массив с набором результатов в случае успеха.

Смотрите также

  • SphinxClient::addQuery
  • SphinxClient::query


Изменение формата массива с набором результатов запроса

  • « SphinxClient::runQueries
  • SphinxClient::setConnectTimeout »
  • PHP Manual
  • SphinxClient
  • Изменение формата массива с набором результатов запроса

SphinxClient::setArrayResult

(PECL sphinx >= 0.1.0)

SphinxClient::setArrayResult — Изменение формата массива с набором результатов запроса

Описание

public bool SphinxClient::setArrayResult ( bool $array_result = false )

Контролирует формат массивов с наборами результатов запроса (должны ли результаты быть возвращены в виде обычного массива или же ассоциативного).

Список параметров

array_result

Если array_result установлен как FALSE, результаты возвращаются в виде ассоциативного массива, с идентификаторами документов в качестве ключей, и остальной информацией (веса, атрибуты) в качестве значений. Если array_result установлен как TRUE, результаты возвращаются в виде обычного массива с полной информацией по совпадениям, включая идентификаторы документов.

Возвращаемые значения

Всегда возвращает TRUE.


Установка таймаута соединения

  • « SphinxClient::setArrayResult
  • SphinxClient::setFieldWeights »
  • PHP Manual
  • SphinxClient
  • Установка таймаута соединения

SphinxClient::setConnectTimeout

(PECL sphinx >= 0.1.0)

SphinxClient::setConnectTimeout — Установка таймаута соединения

Описание

public bool SphinxClient::setConnectTimeout ( float $timeout )

Устанавливает таймаут (в секундах) на соединение к searchd.

Список параметров

timeout

Таймаут в секундах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setMaxQueryTime


Установка весовых коэффициентов полей

  • « SphinxClient::setConnectTimeout
  • SphinxClient::setFilter »
  • PHP Manual
  • SphinxClient
  • Установка весовых коэффициентов полей

SphinxClient::setFieldWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setFieldWeights — Установка весовых коэффициентов полей

Описание

public bool SphinxClient::setFieldWeights ( array $weights )

Связывает весовые коэффициенты полей с их названиями.

Ранжирование результатов может основываться на весовых коэффициентах полей. В » документации Sphinx описано, как именно влияет на веса близость фразы к поисковой. Этот запрос позволяет вам указать веса не по умолчанию для полнотекстовых полей.

Веса должна быть положительными 32-битными integer, будьте внимательны, чтобы не выйти за рамки в 32-х битного максимума. Итоговый вес также является 32-битным integer. Значение весов по умолчанию равно 1. Неизвестные названия полей игнорируются без генерации ошибок или предупреждений.

Список параметров

weights

Ассоциативный массив названий полей и их весовых коэффициентов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setIndexWeights


Добавление фильтра по типу поля integer

  • « SphinxClient::setFieldWeights
  • SphinxClient::setFilterFloatRange »
  • PHP Manual
  • SphinxClient
  • Добавление фильтра по типу поля integer

SphinxClient::setFilter

(PECL sphinx >= 0.1.0)

SphinxClient::setFilter — Добавление фильтра по типу поля integer

Описание

public bool SphinxClient::setFilter ( string $attribute , array $values [, bool $exclude = false ] )

Добавляет новый фильтр по типу поля integer к имеющемуся списку фильтров.

Список параметров

attribute

Название атрибута.

values

Обычный массив значений типа integer.

exclude

Если TRUE, то попадающие под фильтр документы исключаются из списка результатов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilterRange
  • SphinxClient::resetFilters


Добавление фильтра по диапазону значений (для поля типа float)

  • « SphinxClient::setFilter
  • SphinxClient::setFilterRange »
  • PHP Manual
  • SphinxClient
  • Добавление фильтра по диапазону значений (для поля типа float)

SphinxClient::setFilterFloatRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterFloatRange — Добавление фильтра по диапазону значений (для поля типа float)

Описание

public bool SphinxClient::setFilterFloatRange ( string $attribute , float $min , float $max [, bool $exclude = false ] )

Добавляет новый фильтр по диапазону значений для поля типа float к имеющемуся списку фильтров. В список результатов попадут только те документы, в которых значение attribute, хранящееся в индексе, находится в диапазоне между min и max, включая значения в точности равные min или max (или же будут исключены из него, если параметр exclude установлен в TRUE).

Список параметров

attribute

Название атрибута.

min

Минимальное значение.

max

Максимальное значение.

exclude

Если установлено в TRUE, то попадающие под фильтр документы будут исключены из списка результатов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setFilterRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Добавление фильтра по диапазону значений (для поля типа integer)

  • « SphinxClient::setFilterFloatRange
  • SphinxClient::setGeoAnchor »
  • PHP Manual
  • SphinxClient
  • Добавление фильтра по диапазону значений (для поля типа integer)

SphinxClient::setFilterRange

(PECL sphinx >= 0.1.0)

SphinxClient::setFilterRange — Добавление фильтра по диапазону значений (для поля типа integer)

Описание

public bool SphinxClient::setFilterRange ( string $attribute , int $min , int $max [, bool $exclude = false ] )

Добавляет новый фильтр по диапазону значений для поля типа integer к имеющемуся списку фильтров. В список результатов попадут только те документы, в которых значение attribute, хранящееся в индексе, находится в диапазоне между min и max, включая значения, в точности равные min или max (или же будут исключены из него, если параметр exclude установлен в TRUE).

Список параметров

attribute

Название атрибута.

min

Минимальное значение.

max

Максимальное значение.

exclude

Если установлено в TRUE, то попадающие под фильтр документы будут исключены из списка результатов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Установка опорной точки для расчета географической удаленности

  • « SphinxClient::setFilterRange
  • SphinxClient::setGroupBy »
  • PHP Manual
  • SphinxClient
  • Установка опорной точки для расчета географической удаленности

SphinxClient::setGeoAnchor

(PECL sphinx >= 0.1.0)

SphinxClient::setGeoAnchor — Установка опорной точки для расчета географической удаленности

Описание

public bool SphinxClient::setGeoAnchor ( string $attrlat , string $attrlong , float $latitude , float $longitude )

Устанавливает опорной точку для рассчета географической удаленности (geodistance) и включает эту возможность.

После установки якорной точки вы можете использовать "магический" атрибут "@geodist" в ваших фильтрах и/или математических выражениях сортировки.

Список параметров

attrlat

Название атрибута, хранящего широту.

attrlong

Название атрибута, хранящего долготу.

latitude

Широта якоря в радианах.

longitude

Долгота якоря в радианах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setFilterFloatRange
  • SphinxClient::setFilterRange
  • SphinxClient::setFilter
  • SphinxClient::resetFilters


Установка атрибута группировки

  • « SphinxClient::setGeoAnchor
  • SphinxClient::setGroupDistinct »
  • PHP Manual
  • SphinxClient
  • Установка атрибута группировки

SphinxClient::setGroupBy

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupBy — Установка атрибута группировки

Описание

public bool SphinxClient::setGroupBy ( string $attribute , int $func [, string $groupsort = "@group desc" ] )

Устанавливает атрибут группировки, функцию и режим группировки, и включает группировку.

Возможность группировки очень схожа с условием GROUP BY в SQL. Результаты вызова этой функции будут схожи с результатами, которые мог бы вернуть следующий псевдокод: SELECT ... GROUP BY $func($attribute) ORDER BY $groupsort.

Список параметров

attribute

Строка, содержащая атрибут, по которому производится группировка.

func

Константа, указывающая какая именно функция будет применима к значению атрибута для расчета группировки.

groupsort

Необязательное условие, контролирующее сортировку групп.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::resetGroupBy
  • SphinxClient::setSortMode
  • SphinxClient::setGroupDistinct


Установка названия атрибута для расчета количества уникальных значений при группировке

  • « SphinxClient::setGroupBy
  • SphinxClient::setIDRange »
  • PHP Manual
  • SphinxClient
  • Установка названия атрибута для расчета количества уникальных значений при группировке

SphinxClient::setGroupDistinct

(PECL sphinx >= 0.1.0)

SphinxClient::setGroupDistinct — Установка названия атрибута для расчета количества уникальных значений при группировке

Описание

public bool SphinxClient::setGroupDistinct ( string $attribute )

Устанавливает название атрибута, используемого для расчета количества уникальных значений при группировке. Доступна только для сгруппированных запросов. Для каждой из групп будут сохранены все значения поля attribute, затем количество уникальных значений будет рассчитано и возвращено в клиент. Это свойство сходно с условием COUNT(DISTINCT) в SQL.

Список параметров

attribute

Строка, содержащая атрибут, по которому происходит группировка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setSortMode
  • SphinxClient::setGroupBy
  • SphinxClient::resetGroupBy


Установка диапазона значений допустимых ID документов

  • « SphinxClient::setGroupDistinct
  • SphinxClient::setIndexWeights »
  • PHP Manual
  • SphinxClient
  • Установка диапазона значений допустимых ID документов

SphinxClient::setIDRange

(PECL sphinx >= 0.1.0)

SphinxClient::setIDRange — Установка диапазона значений допустимых ID документов

Описание

public bool SphinxClient::setIDRange ( int $min , int $max )

Устанавливает допустимый диапазон ID документов. Диапазон по умолчанию - от 0 до 0, то есть без ограничений. В список результатов попадут только документы, имеющие ID документа в границах между min и max (включая ID, в точности равные min или max).

Список параметров

min

Минимальное значение ID.

max

Максимальное значение ID.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка весовых коэффициентов индексов

  • « SphinxClient::setIDRange
  • SphinxClient::setLimits »
  • PHP Manual
  • SphinxClient
  • Установка весовых коэффициентов индексов

SphinxClient::setIndexWeights

(PECL sphinx >= 0.1.0)

SphinxClient::setIndexWeights — Установка весовых коэффициентов индексов

Описание

public bool SphinxClient::setIndexWeights ( array $weights )

Устанавливает весовые коэффициенты индексов и включает суммирование соответствующих весов для различных индексов.

Список параметров

weights

Ассоциативный массив, связывающий названия индексов (string) с их весами (integer). По умолчанию - пустой массив, то есть взвешенное суммирование отключено.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка смещения и предельного числа значений для набора результатов

  • « SphinxClient::setIndexWeights
  • SphinxClient::setMatchMode »
  • PHP Manual
  • SphinxClient
  • Установка смещения и предельного числа значений для набора результатов

SphinxClient::setLimits

(PECL sphinx >= 0.1.0)

SphinxClient::setLimits — Установка смещения и предельного числа значений для набора результатов

Описание

public bool SphinxClient::setLimits ( int $offset , int $limit [, int $max_matches = 0 [, int $cutoff = 0 ]] )

Устанавливает смещение offset для получаемого от сервера набора результатов, и количество записей limit, которое необходимо получить с данным смещением. Дополнительно может контролировать максимальное число результатов для данного запроса max_matches и пороговое количество совпадений cutoff, после превышения которого можно прекратить поиск.

Список параметров

offset

Смещение набора результатов.

limit

Количество необходимых к получению результатов.

max_matches

Контролирует количество совпадений, которые searchd будет хранить в оперативной памяти в процессе поиска.

cutoff

Используется для повышенного контроля за производительностью. Параметр указывает searchd принудительно останавливать поиск, как только было найдено и обработано cutoff совпадений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка режима совпадения при полнотекстовом поиске

  • « SphinxClient::setLimits
  • SphinxClient::setMaxQueryTime »
  • PHP Manual
  • SphinxClient
  • Установка режима совпадения при полнотекстовом поиске

SphinxClient::setMatchMode

(PECL sphinx >= 0.1.0)

SphinxClient::setMatchMode — Установка режима совпадения при полнотекстовом поиске

Описание

public bool SphinxClient::setMatchMode ( int $mode )

Устанавливает режим совпадения при полнотекстовом поиске. Параметр mode должен быть одной из описанных ниже констант.

Режимы совпадения
Константа | Описание
SPH_MATCH_ALL | Найдены все слова запроса (режим по умолчанию).
SPH_MATCH_ANY | Найдено любое из слов запроса.
SPH_MATCH_PHRASE | Найдена в точности поисковая фраза.
SPH_MATCH_BOOLEAN | Поиск с использованием в запросе логических операторов.
SPH_MATCH_EXTENDED | Запрос рассматривается как выражение с использованием внутреннего языка запросов Sphinx.
SPH_MATCH_FULLSCAN | Включает полное сканирование.
SPH_MATCH_EXTENDED2 | Работает аналогично SPH_MATCH_EXTENDED с добавлением поддержки ранжирования и количественного поиска (quorum searching).

Список параметров

mode

Режим совпадения.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setRankingMode
  • SphinxClient::setSortMode


Установка максимального времени выполнения запроса

  • « SphinxClient::setMatchMode
  • SphinxClient::setOverride »
  • PHP Manual
  • SphinxClient
  • Установка максимального времени выполнения запроса

SphinxClient::setMaxQueryTime

(PECL sphinx >= 0.1.0)

SphinxClient::setMaxQueryTime — Установка максимального времени выполнения запроса

Описание

public bool SphinxClient::setMaxQueryTime ( int $qtime )

Устанавливает максимальное время выполнения запроса.

Список параметров

qtime

Максимальное время выполнения запроса, в миллисекундах. Должно быть положительным целым числом. Значение по умолчанию 0, то есть без ограничений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Временное переопределение значений атрибута для документов

  • « SphinxClient::setMaxQueryTime
  • SphinxClient::setRankingMode »
  • PHP Manual
  • SphinxClient
  • Временное переопределение значений атрибута для документов

SphinxClient::setOverride

(PECL sphinx >= 1.0.3)

SphinxClient::setOverride — Временное переопределение значений атрибута для документов

Описание

public bool SphinxClient::setOverride ( string $attribute , int $type , array $values )

Временно переопределяет значение атрибута в документах в пределах одного запроса. Переопределение позволяет вам временно "обновить" значения атрибутов для некоторых документов в пределах одного запроса, не затрагивая остальные. Это может быть полезно для персонифицированных данных.

Список параметров

attribute

Название атрибута.

type

Тип атрибута. Поддерживаются только скалярные атрибуты.

values

Массив значений атрибутов, связывающих ID документов с переопределенными значениями атрибутов.

Список изменений

PECL/sphinx Версия | Описание
1.0.3 | Добавлен метод SphinxClient::setOverride(), доступен только если при компиляции версия libsphinxclient >= 0.9.9.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка режима ранжирования

  • « SphinxClient::setOverride
  • SphinxClient::setRetries »
  • PHP Manual
  • SphinxClient
  • Установка режима ранжирования

SphinxClient::setRankingMode

(PECL sphinx >= 0.1.0)

SphinxClient::setRankingMode — Установка режима ранжирования

Описание

public bool SphinxClient::setRankingMode ( int $ranker )

Устанавливает режим ранжирования. Доступна только в режиме совпадения SPH_MATCH_EXTENDED2.

Режимы ранжирования
Константа | Описание
SPH_RANK_PROXIMITY_BM25 | Режим ранжирования по умолчанию, использующий как близостное, так и BM25 ранжирование.
SPH_RANK_BM25 | Статистический режим ранжирования, использующий только метод BM25 (наиболее близкий к другим полнотекстовым движкам). Этот режим быстрее, но может давать худший результат на запросах, содержащих более одного ключевого слова.
SPH_RANK_NONE | Отключает ранжирование. Этот режим самый быстрый. Фактически является эквивалентом логического поиска, и всем совпадениям присваивается вес 1.

Список параметров

ranker

Режим ранжирования.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setMatchMode


Установка количества повторных попыток и задержки между ними

  • « SphinxClient::setRankingMode
  • SphinxClient::setSelect »
  • PHP Manual
  • SphinxClient
  • Установка количества повторных попыток и задержки между ними

SphinxClient::setRetries

(PECL sphinx >= 0.1.0)

SphinxClient::setRetries — Установка количества повторных попыток и задержки между ними

Описание

public bool SphinxClient::setRetries ( int $count [, int $delay = 0 ] )

Устанавливает на searchd количество повторных попыток и задержку между ними.

При временных проблемах searchd будет делать повторные попытки вплоть до count на одного агента. delay - это задержка между попытками, в миллисекундах. По умолчанию повторные попытки отключены. Обратите внимание, что этот запрос не дает команды самому API делать повторные попытки в случае неудачи. Он лишь передает новые параметры демону searchd.

Список параметров

count

Количество повторных попыток.

delay

Задержка между попытками, в миллисекундах.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка условия выборки

  • « SphinxClient::setRetries
  • SphinxClient::setServer »
  • PHP Manual
  • SphinxClient
  • Установка условия выборки

SphinxClient::setSelect

(PECL sphinx >= 1.0.1)

SphinxClient::setSelect — Установка условия выборки

Описание

public bool SphinxClient::setSelect ( string $clause )

Устанавливает условия выборки, содержит конкретные атрибуты для выборки и выражения для расчета и последующей выборки.

Список параметров

clause

Условия, схожие с языком SQL.

Список изменений

PECL/sphinx Версия | Описание
1.0.1 | Добавлен метод SphinxClient::setSelect(), доступен только если при компиляции версия libsphinxclient >= 0.9.9.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка хоста и порта searchd

  • « SphinxClient::setSelect
  • SphinxClient::setSortMode »
  • PHP Manual
  • SphinxClient
  • Установка хоста и порта searchd

SphinxClient::setServer

(PECL sphinx >= 0.1.0)

SphinxClient::setServer — Установка хоста и порта searchd

Описание

public bool SphinxClient::setServer ( string $server , int $port )

Устанавливает имя хоста и TCP-порт демона searchd. Все последующие запросы будут использовать новые настройки хоста и порта. Хост и порт по умолчанию имеют значения 'localhost' и 3312, соответственно.

Список параметров

server

IP-адрес или хост.

port

Номер порта.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка режима сортировки результатов

  • « SphinxClient::setServer
  • SphinxClient::status »
  • PHP Manual
  • SphinxClient
  • Установка режима сортировки результатов

SphinxClient::setSortMode

(PECL sphinx >= 0.1.0)

SphinxClient::setSortMode — Установка режима сортировки результатов

Описание

public bool SphinxClient::setSortMode ( int $mode [, string $sortby ] )

Устанавливает режим сортировки результатов. Список режимов в таблице ниже.

Sorting modes
Константа | Описание
SPH_SORT_RELEVANCE | Сортировка по релевантности в порядке убывания (лучшие совпадения выводятся раньше).
SPH_SORT_ATTR_DESC | Сортировка по атрибуту в порядке убывания (большие значения атрибута выводятся раньше).
SPH_SORT_ATTR_ASC | Сортировка по атрибуту в порядке возрастания (меньшие значения атрибута выводятся первыми).
SPH_SORT_TIME_SEGMENTS | Сортировка по временным интервалам (последний час/день/неделя/месяц) в порядке убывания, а затем по релевантности в порядке убывания.
SPH_SORT_EXTENDED | Сортировка по схожей с форматом SQL комбинации столбцов в порядке ASC/DESC.
SPH_SORT_EXPR | Сортировка по арифметическому выражению.

Список параметров

mode

Режим сортировки.

sortby

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • SphinxClient::setMatchMode
  • SphinxClient::setSortMode


Запрос статуса searchd

  • « SphinxClient::setSortMode
  • SphinxClient::updateAttributes »
  • PHP Manual
  • SphinxClient
  • Запрос статуса searchd

SphinxClient::status

(PECL sphinx >= 1.0.3)

SphinxClient::status — Запрос статуса searchd

Описание

public array SphinxClient::status ( void )

Запрашивает статус searchd, и возвращает массив в формате пар ключ-значение.

Список параметров

У этой функции нет параметров.

Список изменений

PECL/sphinx Версия | Описание
1.0.3 | Добавлен метод SphinxClient::status(), доступен только если модуль скомпилирован с версией libsphinxclient >= 0.9.9.

Возвращаемые значения

Возвращает ассоциативный массив статистики поискового сервера. или FALSE в случае возникновения ошибки.


Обновление атрибутов документа

  • « SphinxClient::status
  • Swish »
  • PHP Manual
  • SphinxClient
  • Обновление атрибутов документа

SphinxClient::updateAttributes

(PECL sphinx >= 0.1.0)

SphinxClient::updateAttributes — Обновление атрибутов документа

Описание

public int SphinxClient::updateAttributes ( string $index , array $attributes , array $values [, bool $mva = false ] )

Моментально обновляет указанные значения атрибутов в указанных документах.

Список параметров

index

Название индекса (или индексов) для обновления.

attributes

Массив названий атрибутов, которые будут обновлены.

values

Ассоциативный массив, содержащий ID документов в качестве ключей и массив значений атрибутов в качестве значений.

Возвращаемые значения

Возвращает количество измененных документов (0 или более) в случае успеха, или FALSE в случае неудачи.


Swish Indexing

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Basic usage
  • Swish Функции
    • Swish::__construct — Construct a Swish object
    • Swish::getMetaList — Get the list of meta entries for the index
    • Swish::getPropertyList — Get the list of properties for the index
    • Swish::prepare — Prepare a search query
    • Swish::query — Execute a query and return results object
    • SwishResult::getMetaList — Get a list of meta entries
    • SwishResult::stem — Stems the given word
    • SwishResults::getParsedWords — Get an array of parsed words
    • SwishResults::getRemovedStopwords — Get an array of stopwords removed from the query
    • SwishResults::nextResult — Get the next search result
    • SwishResults::seekResult — Set current seek pointer to the given position
    • SwishSearch::execute — Execute the search and get the results
    • SwishSearch::resetLimit — Reset the search limits
    • SwishSearch::setLimit — Set the search limits
    • SwishSearch::setPhraseDelimiter — Set the phrase delimiter
    • SwishSearch::setSort — Set the sort order
    • SwishSearch::setStructure — Set the structure flag in the search object


Введение

The swish extension provides the bindings for Swish-e API. Swish-e stands for "Simple Web Indexing System for Humans - Enhanced" and is an open source system for indexing and search. Swish-e itself is licensed under GPL license, but uses a clause that allows applications to link against the library if every copy of the combined work is accompanied by the URL to Swish-e source code. Here it is: » http://swish-e.org.

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

PECL/swish requires PHP 5.1.3 or newer.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/swish.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Swish::META_TYPE_UNDEF (integer)
Swish::META_TYPE_STRING (integer)
Swish::META_TYPE_ULONG (integer)
Swish::META_TYPE_DATE (integer)
Swish::IN_FILE_BIT (integer)
Swish::IN_TITLE_BIT (integer)
Swish::IN_HEAD_BIT (integer)
Swish::IN_BODY_BIT (integer)
Swish::IN_COMMENTS_BIT (integer)
Swish::IN_HEADER_BIT (integer)
Swish::IN_EMPHASIZED_BIT (integer)
Swish::IN_META_BIT (integer)
Swish::IN_FILE (integer)
Swish::IN_TITLE (integer)
Swish::IN_HEAD (integer)
Swish::IN_BODY (integer)
Swish::IN_COMMENTS (integer)
Swish::IN_HEADER (integer)
Swish::IN_EMPHASIZED (integer)
Swish::IN_META (integer)
Swish::IN_ALL (integer)


  • « Предопределенные константы
  • Basic usage »
  • PHP Manual
  • Swish
  • Примеры

Примеры

Содержание

  • Basic usage


Basic usage

Пример #1 Basic search query

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("test OR text");

    echo "Found ", $results->hits, " results\n";
    while ($result = $results->nextResult()) {
        var_dump($result);
        break; //break after the first result
    }

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Found 9 results
object(SwishResult)#3 (8) {
  ["swishreccount"]=>
  int(1)
  ["swishrank"]=>
  int(1000)
  ["swishfilenum"]=>
  int(10)
  ["swishdbfile"]=>
  string(13) "index.swish-e"
  ["swishdocpath"]=>
  string(23) "README.SUBMITTING_PATCH"
  ["swishtitle"]=>
  NULL
  ["swishdocsize"]=>
  int(4557)
  ["swishlastmodified"]=>
  int(1072136752)
}


Swish Функции

Содержание

  • Swish::__construct — Construct a Swish object
  • Swish::getMetaList — Get the list of meta entries for the index
  • Swish::getPropertyList — Get the list of properties for the index
  • Swish::prepare — Prepare a search query
  • Swish::query — Execute a query and return results object
  • SwishResult::getMetaList — Get a list of meta entries
  • SwishResult::stem — Stems the given word
  • SwishResults::getParsedWords — Get an array of parsed words
  • SwishResults::getRemovedStopwords — Get an array of stopwords removed from the query
  • SwishResults::nextResult — Get the next search result
  • SwishResults::seekResult — Set current seek pointer to the given position
  • SwishSearch::execute — Execute the search and get the results
  • SwishSearch::resetLimit — Reset the search limits
  • SwishSearch::setLimit — Set the search limits
  • SwishSearch::setPhraseDelimiter — Set the phrase delimiter
  • SwishSearch::setSort — Set the sort order
  • SwishSearch::setStructure — Set the structure flag in the search object


Construct a Swish object

  • « Swish Функции
  • Swish::getMetaList »
  • PHP Manual
  • Swish Функции
  • Construct a Swish object

Swish::__construct

(PECL swish >= 0.1.0)

Swish::__construct — Construct a Swish object

Описание

void Swish::__construct ( string $index_names )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

index_names

The list of index files separated by spaces.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Throws SwishException on error.

Примеры

Пример #1 A Swish::__construct() example

<?php

try {
    $swish = new Swish("index1 index2");
} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

foreach ($swish->indexes as $index) {
    var_dump($index["name"]);
    var_dump($index["headers"]["Total Words"]);
}

?>

Результатом выполнения данного примера будет что-то подобное:

string(6) "index1"
int(1888)
string(6) "index2"
int(2429)


Get the list of meta entries for the index

  • « Swish::__construct
  • Swish::getPropertyList »
  • PHP Manual
  • Swish Функции
  • Get the list of meta entries for the index

Swish::getMetaList

(PECL swish >= 0.1.0)

Swish::getMetaList — Get the list of meta entries for the index

Описание

array Swish::getMetaList ( string $index_name )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

index_name

The name of the index file.

Возвращаемые значения

Returns an array of meta entries for the given index.

Примеры

Пример #1 Basic Swish::getMetaList() example

<?php

try {

    $swish = new Swish("index.swish-e");
    var_dump($swish->getMetaList("index.swish-e"));

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  array(3) {
    ["Name"]=>
    string(12) "swishdefault"
    ["Type"]=>
    int(0)
    ["ID"]=>
    int(1)
  }
}


Get the list of properties for the index

  • « Swish::getMetaList
  • Swish::prepare »
  • PHP Manual
  • Swish Функции
  • Get the list of properties for the index

Swish::getPropertyList

(PECL swish >= 0.1.0)

Swish::getPropertyList — Get the list of properties for the index

Описание

array Swish::getPropertyList ( string $index_name )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

index_name

The name of the index file.

Возвращаемые значения

Returns an array of properties for the given index.

Примеры

Пример #1 Basic Swish::getPropertyList() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $properties = $swish->getPropertyList("index.swish-e");
    foreach ($properties as $prop) {
        echo $prop["Name"],"\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

swishreccount
swishrank
swishfilenum
swishdbfile
swishdocpath
swishtitle
swishdocsize
swishlastmodified


Prepare a search query

  • « Swish::getPropertyList
  • Swish::query »
  • PHP Manual
  • Swish Функции
  • Prepare a search query

Swish::prepare

(PECL swish >= 0.1.0)

Swish::prepare — Prepare a search query

Описание

object Swish::prepare ([ string $query ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Prepare and return a search object, which you can later use for unlimited number of queries.

Список параметров

query

Optional query string. The query can be also set using SwishSearch::execute() method.

Возвращаемые значения

Returns SwishSearch object.

Ошибки

Throws SwishException on error.

Примеры

Пример #1 Basic Swish::prepare() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare("search query");
    $results = $search->execute();
    echo "Found: ", $results->hits, " hits\n";

    $results = $search->execute("new search");

    echo "Found: ", $results->hits, " hits\n";
} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Found: 2 hits
Found: 5 hits


Execute a query and return results object

  • « Swish::prepare
  • SwishResult::getMetaList »
  • PHP Manual
  • Swish Функции
  • Execute a query and return results object

Swish::query

(PECL swish >= 0.1.0)

Swish::query — Execute a query and return results object

Описание

object Swish::query ( string $query )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

A quick method to execute a search with default parameters.

Список параметров

query

Query string.

Возвращаемые значения

Returns SwishResults object.

Ошибки

Throws SwishException on error.

Примеры

Пример #1 Basic Swish::query() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("test query");

    echo "Found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Found: 1 hits


Get a list of meta entries

  • « Swish::query
  • SwishResult::stem »
  • PHP Manual
  • Swish Функции
  • Get a list of meta entries

SwishResult::getMetaList

(PECL swish >= 0.1.0)

SwishResult::getMetaList — Get a list of meta entries

Описание

array SwishResult::getMetaList ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращаемые значения

Returns the same array as swish::getmetalist(), but uses the index file from the result handle.


Stems the given word

  • « SwishResult::getMetaList
  • SwishResults::getParsedWords »
  • PHP Manual
  • Swish Функции
  • Stems the given word

SwishResult::stem

(PECL swish >= 0.1.0)

SwishResult::stem — Stems the given word

Описание

array SwishResult::stem ( string $word )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Stems the word based on the fuzzy mode used during indexing. Each result object is linked with its index, so the results are based on this index.

Список параметров

word

The word to stem.

Возвращаемые значения

Returns array containing the stemmed word variants (usually just one).

Ошибки

Throws SwishException on error.

Примеры

Пример #1 Basic SwishResult::stem() example

<?php

try {

    $swish = new Swish("ext/swish/tests/index.swish-e");
    $results = $swish->query("testing OR others");

    if ($result = $results->nextResult()) {
        var_dump($result->stem("testing")); //the results fully depend on the stemmer used in the index
        var_dump($result->stem("others"));
    }

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  string(4) "test"
}
array(1) {
  [0]=>
  string(5) "other"
}


Get an array of parsed words

  • « SwishResult::stem
  • SwishResults::getRemovedStopwords »
  • PHP Manual
  • Swish Функции
  • Get an array of parsed words

SwishResults::getParsedWords

(PECL swish >= 0.1.0)

SwishResults::getParsedWords — Get an array of parsed words

Описание

array SwishResults::getParsedWords ( string $index_name )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

indexi_name

The name of the index used to initialize Swish object.

Возвращаемые значения

An array of parsed words with stopwords removed. The list of parsed words may be useful for highlighting search terms in the results.

Примеры

Пример #1 Basic SwishResults::getParsedWords() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $results = $swish->query("'some characters' and numbers");

    var_dump($results->getParsedWords("index.swish-e"));
    var_dump($results->indexes[0]['parsed_words']); //same result in a different way

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}
array(4) {
  [0]=>
  string(4) "some"
  [1]=>
  string(10) "characters"
  [2]=>
  string(3) "and"
  [3]=>
  string(7) "numbers"
}


Get an array of stopwords removed from the query

  • « SwishResults::getParsedWords
  • SwishResults::nextResult »
  • PHP Manual
  • Swish Функции
  • Get an array of stopwords removed from the query

SwishResults::getRemovedStopwords

(PECL swish >= 0.1.0)

SwishResults::getRemovedStopwords — Get an array of stopwords removed from the query

Описание

array SwishResults::getRemovedStopwords ( string $index_name )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

index_name

The name of the index used to initialize Swish object.

Возвращаемые значения

Returns array of stopwords removed from the query.


Get the next search result

  • « SwishResults::getRemovedStopwords
  • SwishResults::seekResult »
  • PHP Manual
  • Swish Функции
  • Get the next search result

SwishResults::nextResult

(PECL swish >= 0.1.0)

SwishResults::nextResult — Get the next search result

Описание

object SwishResults::nextResult ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Возвращаемые значения

Returns the next SwishResult object in the result set or FALSE if there are no more results available.

Примеры

Пример #1 Basic SwishResults::nextResult() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("lost");
    while($result = $results->nextResult()) {
        /* do something with the result object */
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>


Set current seek pointer to the given position

  • « SwishResults::nextResult
  • SwishSearch::execute »
  • PHP Manual
  • Swish Функции
  • Set current seek pointer to the given position

SwishResults::seekResult

(PECL swish >= 0.1.0)

SwishResults::seekResult — Set current seek pointer to the given position

Описание

int SwishResults::seekResult ( int $position )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

position

Zero-based position number. Cannot be less than zero.

Возвращаемые значения

Returns new position value on success.

Ошибки

Throws SwishException on error.

Примеры

Пример #1 Basic SwishResults::seekResult() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("lost");

    var_dump($results->seekResult(0)); //this will succeed
    var_dump($results->seekResult(100)); //this will fail

} catch (SwishException $e) {
    echo "Error: ", $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
Error: No more results


Execute the search and get the results

  • « SwishResults::seekResult
  • SwishSearch::resetLimit »
  • PHP Manual
  • Swish Функции
  • Execute the search and get the results

SwishSearch::execute

(PECL swish >= 0.1.0)

SwishSearch::execute — Execute the search and get the results

Описание

object SwishSearch::execute ([ string $query ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Searches the index file(s) based on the parameters set in the search object.

Список параметров

query

The query string is an optional parameter, it can be also set using Swish::prepare() method. The query string is preserved between executions, so you can set it once, but execute the search multiple times.

Возвращаемые значения

Returns SwishResults object.

Ошибки

Throws SwishException on error.

Примеры

Пример #1 Basic SwishSearch::execute() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("query");
    echo "First query found: ", $results->hits, " hits\n";

    $results = $search->execute("new OR query");
    echo "Second query found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

First query found: 2 hits
Second query found: 12 hits


Reset the search limits

  • « SwishSearch::execute
  • SwishSearch::setLimit »
  • PHP Manual
  • Swish Функции
  • Reset the search limits

SwishSearch::resetLimit

(PECL swish >= 0.1.0)

SwishSearch::resetLimit — Reset the search limits

Описание

void SwishSearch::resetLimit ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Reset the search limits previous set by SwishSearch::setLimit.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Basic SwishSearch::resetLimit() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $search->setLimit("swishdocsize", "3000", "6000"); //limit by document size, from 3000 to 6000 bytes
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $search->resetLimit();
    $results = $search->execute("time");
    echo "Third query found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

First query found: 5 hits
Second query found: 2 hits
Third query found: 5 hits


Set the search limits

  • « SwishSearch::resetLimit
  • SwishSearch::setPhraseDelimiter »
  • PHP Manual
  • Swish Функции
  • Set the search limits

SwishSearch::setLimit

(PECL swish >= 0.1.0)

SwishSearch::setLimit — Set the search limits

Описание

void SwishSearch::setLimit ( string $property , string $low , string $high )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

property

Search result property name.

low

The lowest value of the property.

high

The highest value of the property.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Throws SwishException on error.

Примеры

Пример #1 Basic SwishSearch::setLimit() example

<?php
try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

    $search->setLimit("swishdocsize", "3000", "6000"); //limit by document size, from 3000 to 6000 bytes
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

First query found: 5 hits
Hit #1 - 4261 bytes
Hit #2 - 37937 bytes
Hit #3 - 7126 bytes
Hit #4 - 15427 bytes
Hit #5 - 4768 bytes
Second query found: 2 hits
Hit #1 - 4261 bytes
Hit #2 - 4768 bytes


Set the phrase delimiter

  • « SwishSearch::setLimit
  • SwishSearch::setSort »
  • PHP Manual
  • Swish Функции
  • Set the phrase delimiter

SwishSearch::setPhraseDelimiter

(PECL swish >= 0.1.0)

SwishSearch::setPhraseDelimiter — Set the phrase delimiter

Описание

void SwishSearch::setPhraseDelimiter ( string $delimiter )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

delimiter

Phrase delimiter character. The default delimiter is double-quotes.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Basic SwishSearch::setPhraseDelimiter() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute('"every time"'); //looking for "every time"
    echo "First query found: ", $results->hits, " hits\n";

    $search->setPhraseDelimiter("'");
    $results = $search->execute("'every time'"); //the same query, but using different delimiter
    echo "Second query found: ", $results->hits, " hits\n";

    $search->setPhraseDelimiter('"');
    $results = $search->execute("'every time'"); //looking for "every" and "time"
    echo "Third query found: ", $results->hits, " hits\n";

    //let's look at parsed words
    var_dump($results->getParsedWords("index.swish-e"));

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

First query found: 1 hits
Second query found: 1 hits
Third query found: 2 hits
array(2) {
  [0]=>
  string(5) "every"
  [1]=>
  string(4) "time"
}


Set the sort order

  • « SwishSearch::setPhraseDelimiter
  • SwishSearch::setStructure »
  • PHP Manual
  • Swish Функции
  • Set the sort order

SwishSearch::setSort

(PECL swish >= 0.1.0)

SwishSearch::setSort — Set the sort order

Описание

void SwishSearch::setSort ( string $sort )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

sort

Sort order of the results is a string containing name of a result property combined with sort direction ("asc" or "desc"). Examples: "swishrank desc", "swishdocpath asc", "swishtitle asc", "swishdocsize desc", "swishlastmodified desc" etc.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Basic SwishSearch::setSort() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

    $search->setSort("swishdocsize desc"); //sort by document size
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $i = 0;
    while($result = $results->nextResult()) {
        echo "Hit #", ++$i, " - ", $result->swishdocsize, " bytes\n";
    }

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

First query found: 5 hits
Hit #1 - 4261 bytes
Hit #2 - 37937 bytes
Hit #3 - 7126 bytes
Hit #4 - 15427 bytes
Hit #5 - 4768 bytes
Second query found: 5 hits
Hit #1 - 37937 bytes
Hit #2 - 15427 bytes
Hit #3 - 7126 bytes
Hit #4 - 4768 bytes
Hit #5 - 4261 bytes


Set the structure flag in the search object

  • « SwishSearch::setSort
  • Расширения для работы с серверами »
  • PHP Manual
  • Swish Функции
  • Set the structure flag in the search object

SwishSearch::setStructure

(PECL swish >= 0.1.0)

SwishSearch::setStructure — Set the structure flag in the search object

Описание

void SwishSearch::setStructure ( int $structure )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

structure

The structure flag a bitmask is used to limit search to certain parts of HTML documents (like title, meta, body etc.). Its possible values are listed below. To combine several values use bitwise OR operator, see example below.

  • Swish::IN_FILE

  • Swish::IN_TITLE

  • Swish::IN_HEAD

  • Swish::IN_BODY

  • Swish::IN_COMMENTS

  • Swish::IN_HEADER

  • Swish::IN_EMPHASIZED

  • Swish::IN_META

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Basic SwishSearch::setStructure() example

<?php

try {

    $swish = new Swish("index.swish-e");
    $search = $swish->prepare();

    $results = $search->execute("time");
    echo "First query found: ", $results->hits, " hits\n";

    $search->setStructure(Swish::IN_TITLE|Swish::IN_HEAD); //search in title and head
    $results = $search->execute("time");
    echo "Second query found: ", $results->hits, " hits\n";

    $search->setStructure(Swish::IN_ALL); //search in whole document, the default value
    $results = $search->execute("time");
    echo "Third query found: ", $results->hits, " hits\n";

} catch (SwishException $e) {
    echo $e->getMessage(), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

First query found: 5 hits
Second query found: 0 hits
Third query found: 5 hits


Расширения для работы с серверами

  • Apache
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Apache
  • Менеджер процессов FastCGI
    • Введение
    • Установка и настройка
    • Функции FPM
  • IIS — Администрирование IIS
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • IIS Функции
  • NSAPI
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • NSAPI Функции


Apache

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Apache
    • apache_child_terminate — Завершить процесс Apache по окончании текущего запроса
    • apache_get_modules — Возвращает список загруженных модулей сервера Apache
    • apache_get_version — Возвращает версию Apache
    • apache_getenv — Возвращает переменную окружения подпроцесса сервера Apache
    • apache_lookup_uri — Осуществить частичный запрос на указанный URI и вернуть все полученные сведения
    • apache_note — Возвращает и устанавливает уведомления к запросу Apache
    • apache_request_headers — Получает список всех заголовков HTTP-запроса
    • apache_reset_timeout — Сбрасывает таймер сервера Apache
    • apache_response_headers — Возвращает список всех HTTP заголовков ответа Apache
    • apache_setenv — Устанавливает переменную subprocess_env Apache
    • getallheaders — Возвращает все заголовки HTTP-запроса
    • virtual — Выполняет подзапрос Apache


Введение

Эти функции доступны только в том случае, если PHP работает в качестве модуля Apache.

Замечание: Начиная с PHP 4.3.2, переменная PATH_TRANSLATED больше не создаётся под SAPI Apache 2, в отличие от Apache 1, где она создаётся с тем же значением, что и SCRIPT_FILENAME (если другое значение не было установлено самим Apache). Это изменение было сделано для соответствия спецификации CGI, которая гласит, что PATH_TRANSLATED должна быть объявлена только тогда, когда определена переменная PATH_INFO. Пользователи Apache 2 могут использовать опцию AcceptPathInfo = On в httpd.conf для объявления переменной PATH_INFO.


  • « Требования
  • Настройка во время выполнения »
  • 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 | Доступно начиная с версии PHP 4.0.5.
child_terminate | "0" | PHP_INI_ALL | Доступно начиная с версии PHP 4.0.5.
last_modified | "0" | PHP_INI_ALL | Доступно начиная с версии PHP 4.0.5.
xbithack | "0" | PHP_INI_ALL | Доступно начиная с версии PHP 4.0.5.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

engine boolean

Включает или выключает интерпретатор PHP. Эта директива в действительности очень полезна в модуле Apache PHP. Она используется сайтами, которым необходимо разрешить или запретить интерпретатор PHP на основе директорий или виртуальных хостов. Устанавливая engine off по необходимости в файле httpd.conf, можно разрешить или запретить интерпретатор PHP.

child_terminate boolean

Эта настройка управляет тем, могут ли скрипты PHP требовать окончания дочерних процессов по завершении запроса. Смотрите также apache_child_terminate().

last_modified boolean

Посылает скриптам PHP дату модификации как заголовок Last-Modified для этого запроса.

xbithack boolean

Исполнение файлов с битом запускаемого как PHP, независимо от расширения.


  • « Типы ресурсов
  • Apache »
  • PHP Manual
  • Apache
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Apache

Содержание

  • apache_child_terminate — Завершить процесс Apache по окончании текущего запроса
  • apache_get_modules — Возвращает список загруженных модулей сервера Apache
  • apache_get_version — Возвращает версию Apache
  • apache_getenv — Возвращает переменную окружения подпроцесса сервера Apache
  • apache_lookup_uri — Осуществить частичный запрос на указанный URI и вернуть все полученные сведения
  • apache_note — Возвращает и устанавливает уведомления к запросу Apache
  • apache_request_headers — Получает список всех заголовков HTTP-запроса
  • apache_reset_timeout — Сбрасывает таймер сервера Apache
  • apache_response_headers — Возвращает список всех HTTP заголовков ответа Apache
  • apache_setenv — Устанавливает переменную subprocess_env Apache
  • getallheaders — Возвращает все заголовки HTTP-запроса
  • virtual — Выполняет подзапрос Apache


Завершить процесс Apache по окончании текущего запроса

  • « Apache
  • apache_get_modules »
  • PHP Manual
  • Apache
  • Завершить процесс Apache по окончании текущего запроса

apache_child_terminate

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

apache_child_terminate — Завершить процесс Apache по окончании текущего запроса

Описание

bool apache_child_terminate ( void )

apache_child_terminate() регистрирует процесс Apache, обслуживающий текущий запрос PHP с тем, чтобы завершить его по окончании выполнения PHP скрипта. Эта функция может быть использована для завершения процесса, для работы которого понадобилось значительное количество оперативной памяти, не возвращенной операционной системе по завершении работы PHP скрипта.

Возвращаемые значения

Возвращает TRUE, если PHP работает в качестве Apache 1 модуля, версия Apache не является многопоточной и параметр конфигурации PHP child_terminate включен (по умолчанию выключен). В противном случае функция возвратит FALSE и сгенерирует ошибку уровня E_WARNING.

Список изменений

Версия | Описание
5.4.0 | Эта функция стала доступной в режиме FastCGI. Ранее она поддерживалась только при запуске PHP в качестве модуля для Apache.

Примечания

Замечание: Для Windows-платформ эта функция не реализована.

Смотрите также

  • exit() - Выводит сообщение и прекращает выполнение текущего скрипта


Возвращает список загруженных модулей сервера Apache

  • « apache_child_terminate
  • apache_get_version »
  • PHP Manual
  • Apache
  • Возвращает список загруженных модулей сервера Apache

apache_get_modules

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

apache_get_modules — Возвращает список загруженных модулей сервера Apache

Описание

array apache_get_modules ( void )

Возвращает список загруженных модулей сервера Apache.

Возвращаемые значения

Массив загруженных модулей сервера Apache.

Список изменений

Версия | Описание
5.0.0 | Функция стала доступна при использовании Apache 1, или PHP Apache 2 filter API. Ранее это было возможно только c Apache 2 handler API.

Примеры

Пример #1 Пример использования apache_get_modules()

<?php
print_r(apache_get_modules());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => core
    [1] => http_core
    [2] => mod_so
    [3] => sapi_apache2
    [4] => mod_mime
    [5] => mod_rewrite
)


Возвращает версию Apache

  • « apache_get_modules
  • apache_getenv »
  • PHP Manual
  • Apache
  • Возвращает версию Apache

apache_get_version

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

apache_get_version — Возвращает версию Apache

Описание

string apache_get_version ( void )

Возвращает версию Apache.

Возвращаемые значения

Возвращает версию Apache или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример apache_get_version()

<?php
$version = apache_get_version();
echo "$version\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Apache/1.3.29 (Unix) PHP/4.3.4

Смотрите также

  • phpinfo() - Выводит информацию о текущей конфигурации PHP


Возвращает переменную окружения подпроцесса сервера Apache

  • « apache_get_version
  • apache_lookup_uri »
  • PHP Manual
  • Apache
  • Возвращает переменную окружения подпроцесса сервера Apache

apache_getenv

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

apache_getenv — Возвращает переменную окружения подпроцесса сервера Apache

Описание

string apache_getenv ( string $variable [, bool $walk_to_top = false ] )

Возвращает переменную окружения сервера Apache, указанную параметром variable.

Эта функция требует Apache 2, в противном случае она не определена.

Список параметров

variable

Переменная окружения сервера Apache

walk_to_top

Получить переменную верхнего уровня, доступную для всех уровней сервера Apache или нет.

Возвращаемые значения

Значение переменной окружения сервера Apache в случае успеха, или FALSE в случае ошибки.

Примеры

Пример #1 Пример использования apache_getenv()

Приведенный ниже пример показывает, как можно получить значение переменной окружения сервера Apache SERVER_ADDR.

<?php
$ret = apache_getenv("SERVER_ADDR");
echo $ret;
?>

Результатом выполнения данного примера будет что-то подобное:

42.24.42.240

Смотрите также

  • apache_setenv() - Устанавливает переменную subprocess_env Apache
  • getenv() - Получение значения переменной окружения
  • "Суперглобальные переменные"


Осуществить частичный запрос на указанный URI и вернуть все полученные сведения

  • « apache_getenv
  • apache_note »
  • PHP Manual
  • Apache
  • Осуществить частичный запрос на указанный URI и вернуть все полученные сведения

apache_lookup_uri

(PHP 4, PHP 5, PHP 7)

apache_lookup_uri — Осуществить частичный запрос на указанный URI и вернуть все полученные сведения

Описание

object apache_lookup_uri ( string $filename )

Эта функция осуществляет частичный запрос на указанный URI. Этого достаточно для получения всей важной информации о переданном функции ресурсе.

Эта функция поддерживается только если PHP установлен в качестве модуля Apache или как серверный модуль NSAPI в веб-серверах Netscape/iPlanet/SunONE.

Список параметров

filename

Имя файла (URI), который запрашивается.

Возвращаемые значения

Объект, содержащий информацию о переданном URI. Свойствами данного объекта являются:

  • status
  • the_request
  • status_line
  • method
  • content_type
  • handler
  • uri
  • filename
  • path_info
  • args
  • boundary
  • no_cache
  • no_local_copy
  • allowed
  • send_bodyct
  • bytes_sent
  • byterange
  • clength
  • unparsed_uri
  • mtime
  • request_time

Примеры

Пример #1 Пример использования apache_lookup_uri()

<?php
$info = apache_lookup_uri('index.php?var=value');
print_r($info);

if (file_exists($info->filename)) {
    echo 'file exists!';
}
?>

Результатом выполнения данного примера будет что-то подобное:

stdClass Object
(
    [status] => 200
    [the_request] => GET /dir/file.php HTTP/1.1
    [method] => GET
    [mtime] => 0
    [clength] => 0
    [chunked] => 0
    [content_type] => application/x-httpd-php
    [no_cache] => 0
    [no_local_copy] => 1
    [unparsed_uri] => /dir/index.php?var=value
    [uri] => /dir/index.php
    [filename] => /home/htdocs/dir/index.php
    [args] => var=value
    [allowed] => 0
    [sent_bodyct] => 0
    [bytes_sent] => 0
    [request_time] => 1074282764
)
file exists!


Возвращает и устанавливает уведомления к запросу Apache

  • « apache_lookup_uri
  • apache_request_headers »
  • PHP Manual
  • Apache
  • Возвращает и устанавливает уведомления к запросу Apache

apache_note

(PHP 4, PHP 5, PHP 7)

apache_note — Возвращает и устанавливает уведомления к запросу Apache

Описание

string apache_note ( string $note_name [, string $note_value = "" ] )

Эта функция является оберткой для table_get и table_set. С её помощью можно редактировать таблицу уведомлений (apache notes table), которая создаётся во время передачи запроса. Таблица уведомлений позволяет модулям Apache обмениваться данными.

Основное назначение apache_note() - передавать информацию из одного модуля в другой внутри одного запроса.

Список параметров

note_name

Название уведомления.

note_value

Значение уведомления.

Возвращаемые значения

Если функция вызывается с одним аргументом, она возвращает текущее значение уведомления note_name. Если функция вызывается с двумя аргументами, она устанавливает значение уведомления note_name в note_value и возвращает предыдущее значение note_name. Если значение уведомления не может быть получено, будет возвращено FALSE.

Примеры

Пример #1 Пример передачи информации между PHP и Perl

<?php

apache_note('name', 'Fredrik Ekengren');

// Вызов perl-скрипта
virtual("/perl/some_script.pl");

$result = apache_note("resultdata");
?>
# Получаем объект запроса Apache
my $r = Apache->request()->main();

# Получаем переданные данные
my $name = $r->notes('name');

# Некоторые действия с данными

# Передача результата назад в PHP
$r->notes('resultdata', $result);

Пример #2 Пример записи значений в access.log

<?php

apache_note('sessionID', session_id());

?>
# "%{sessionID}n" может быть использован в директиве LogFormat

Смотрите также

  • virtual() - Выполняет подзапрос Apache


Получает список всех заголовков HTTP-запроса

  • « apache_note
  • apache_reset_timeout »
  • PHP Manual
  • Apache
  • Получает список всех заголовков HTTP-запроса

apache_request_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

apache_request_headers — Получает список всех заголовков HTTP-запроса

Описание

array apache_request_headers ( void )

Получает список всех заголовков HTTP текущего запроса.

Возвращаемые значения

Ассоциативный массив, содержащий все HTTP-заголовки текущего запроса, или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.5.7 | Эта функция стала доступна в CLI сервере.
5.4.0 | Данная функция стала доступной при использовании FastCGI. До этого поддерживалась только в случае использования PHP как модуля Apache или в серверном модуле NSAPI в веб-серверов Netscape/iPlanet/SunONE

Примеры

Пример #1 Пример использования apache_request_headers()

<?php
$headers = apache_request_headers();

foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0
Host: www.example.com
Connection: Keep-Alive

Примечания

Замечание:

Также можно получить значения широко используемых CGI-переменных, получив их из окружения сервера; это работает независимо от того, установлен PHP в качестве модуля Apache или нет. Для того, чтобы получить список всех доступных переменных окружения, используйте функцию phpinfo().

Смотрите также

  • apache_response_headers() - Возвращает список всех HTTP заголовков ответа Apache


Сбрасывает таймер сервера Apache

  • « apache_request_headers
  • apache_response_headers »
  • PHP Manual
  • Apache
  • Сбрасывает таймер сервера Apache

apache_reset_timeout

(PHP 5 >= 5.1.0, PHP 7)

apache_reset_timeout — Сбрасывает таймер сервера Apache

Описание

bool apache_reset_timeout ( void )

apache_reset_timeout() сбрасывает таймер сервера Apache, который по умолчанию установлен в 300 секунд. При set_time_limit(0); ignore_user_abort(true) и периодических вызовах apache_reset_timeout(), Apache теоретически может работать вечно.

Эта функция требует Apache 1.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание: Эта функция недоступна в безопасном режиме.

Смотрите также

  • set_time_limit() - Ограничение времени выполнения скрипта
  • ignore_user_abort() - Устанавливает, необходимо ли прерывать работу скрипта при отключении клиента


Возвращает список всех HTTP заголовков ответа Apache

  • « apache_reset_timeout
  • apache_setenv »
  • PHP Manual
  • Apache
  • Возвращает список всех HTTP заголовков ответа Apache

apache_response_headers

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

apache_response_headers — Возвращает список всех HTTP заголовков ответа Apache

Описание

array apache_response_headers ( void )

Возвращает список всех HTTP заголовков ответа Apache

Возвращаемые значения

Массив HTTP заголовков ответа Apache при успешном выполнении или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.7 | Эта функция стала доступна в CLI сервере.
5.4.0 | Данная функция стала доступной при использовании FastCGI. Раньше она была доступна только если PHP был установлен, как модуль Apache или в серверном модуле NSAPI в веб-серверов Netscape/iPlanet/SunONE

Примеры

Пример #1 Пример использования apache_response_headers()

<?php
print_r(apache_response_headers());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [Accept-Ranges] => bytes
    [X-Powered-By] => PHP/4.3.8
)

Смотрите также

  • apache_request_headers() - Получает список всех заголовков HTTP-запроса
  • headers_sent() - Проверяет были ли и куда отправлены заголовки
  • headers_list() - Возвращает список переданных (или готовых к передаче) заголовков


Устанавливает переменную subprocess_env Apache

  • « apache_response_headers
  • getallheaders »
  • PHP Manual
  • Apache
  • Устанавливает переменную subprocess_env Apache

apache_setenv

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

apache_setenv — Устанавливает переменную subprocess_env Apache

Описание

bool apache_setenv ( string $variable , string $value [, bool $walk_to_top = false ] )

apache_setenv() устанавливает значение переменной окружения Apache, определенной как variable.

Замечание:

При установке переменной окружения Apache, соответствующая ей переменная $_SERVER не изменяется.

Список параметров

variable

Переменная окружения, которую требуется установить.

value

Новое значение переменной variable.

walk_to_top

Делать ли доступной переменную для всех уровней Apache.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования apache_setenv() для установки переменной окружения Apache.

<?php
apache_setenv("EXAMPLE_VAR", "Какое-либо значение");
?>

Примечания

Замечание:

apache_setenv() можно использовать вместе с apache_getenv() на разных страницах или для определения переменных, которые требуется передать включениям на стороне сервера SSI (.shtml), которые, в свою очередь, были включены в PHP скрипты.

Смотрите также

  • apache_getenv() - Возвращает переменную окружения подпроцесса сервера Apache


Возвращает все заголовки HTTP-запроса

  • « apache_setenv
  • virtual »
  • PHP Manual
  • Apache
  • Возвращает все заголовки HTTP-запроса

getallheaders

(PHP 4, PHP 5, PHP 7)

getallheaders — Возвращает все заголовки HTTP-запроса

Описание

array getallheaders ( void )

Возвращает все заголовки для текущего HTTP-запроса.

Эта функция является псевдонимом функции apache_request_headers(). Пожалуйста, обратитесь к описанию функции apache_request_headers() для получения детальной информации о ее работе.

Возвращаемые значения

Ассоциативный массив, содержащий все HTTP-заголовки для данного запроса или FALSE в случае возникновения ошибок.

Список изменений

Версия | Описание
5.5.7 | Эта функция стала доступна в CLI сервере.
5.4.0 | Эта функция стала доступной при использовании FastCGI. Ранее она была доступна только если PHP был установлен, как модуль Apache или в серверном модуле NSAPI в веб-серверов Netscape/iPlanet/SunONE

Примеры

Пример #1 Пример использования getallheaders()

<?php

foreach (getallheaders() as $name => $value) {
    echo "$name: $value\n";
}

?>

Смотрите также

  • apache_response_headers() - Возвращает список всех HTTP заголовков ответа Apache


Выполняет подзапрос Apache

  • « getallheaders
  • Менеджер процессов FastCGI »
  • PHP Manual
  • Apache
  • Выполняет подзапрос Apache

virtual

(PHP 4, PHP 5, PHP 7)

virtual — Выполняет подзапрос Apache

Описание

bool virtual ( string $filename )

Функция virtual() специфична для сервера Apache и является эквивалентом конструкции <!--#include virtual...-->, используемой в mod_include. Данная функция выполняет подзапрос Apache. Это бывает полезным в тех случаях, когда необходимо включить в свой скрипт результат выполнения других CGI-скриптов или файлов .shtml, а также добавления всего, что должно быть обработано Apache. Обратите внимание, что CGI-скрипты должны отдавать корректные CGI-заголовки. Как минимум, CGI-скрипт должен создавать заголовок Content-Type.

Перед тем, как осуществится выполнение подзапроса, все буферы сбрасываются и выдаются в браузер, при этом отсылаются заголовки, помещенные в буфер.

Эта функция поддерживается только если PHP установлен в качестве модуля Apache или как серверный модуль NSAPI в веб-серверах Netscape/iPlanet/SunONE.

Список параметров

filename

Имя файла, для которого будет выполнен подзапрос.

Возвращаемые значения

Результат выполнения подзапроса в случае успеха или FALSE в случае ошибки.

Примеры

Пример использования смотрите в функции apache_note().

Примечания

Внимание

Строка запроса может быть передана вызываемому файлу, однако значение переменной $_GET будет скопировано из родительского скрипта, лишь $_SERVER['QUERY_STRING'] будет содержать переданную строку запроса. Строка запроса может быть передана только при использовании Apache 2. Запрошенный файл не будет отражен в журнале доступа (access log) Apache.

Замечание:

Переменные окружения, установленные в запрошенном файле, не видимы из вызвавшего его скрипта.

Замечание:

Эта функция может быть использована в PHP скрипте, но, обычно, более правильным будет выбрать include или require.

Смотрите также

  • apache_note() - Возвращает и устанавливает уведомления к запросу Apache


Менеджер процессов FastCGI

  • Введение
  • Установка и настройка
  • Функции FPM
    • fastcgi_finish_request — Сбрасывает все запрошенные данные клиенту


Введение

Менеджер процессов FastCGI (FastCGI Process Manager или FPM) - альтернатива реализации PHP FastCGI с некоторым дополнительным функционалом, полезным (в основном) для высоконагруженных сайтов.

Это SAPI встроено в PHP 5.3.3 и более поздние.


Установка и настройка

Информация ою установке и настройке FPM доступна в разделе установка и настройка документации PHP.


  • « Установка и настройка
  • fastcgi_finish_request »
  • PHP Manual
  • Менеджер процессов FastCGI
  • Функции FPM

Функции FPM

Содержание

  • fastcgi_finish_request — Сбрасывает все запрошенные данные клиенту


Сбрасывает все запрошенные данные клиенту

  • « Функции FPM
  • IIS »
  • PHP Manual
  • Функции FPM
  • Сбрасывает все запрошенные данные клиенту

fastcgi_finish_request

(PHP 5 >= 5.3.3, PHP 7)

fastcgi_finish_request — Сбрасывает все запрошенные данные клиенту

Описание

boolean fastcgi_finish_request ( void )

Эта функция сбрасывает все запрошенные данные клиенту и завершает обработку запроса. Это позволяет выполнять длительные задачи без поддержания связи с клиентом.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Администрирование IIS

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • IIS Функции
    • iis_add_server — Creates a new virtual web server
    • iis_get_dir_security — Gets Directory Security
    • iis_get_script_map — Gets script mapping on a virtual directory for a specific extension
    • iis_get_server_by_comment — Return the instance number associated with the Comment
    • iis_get_server_by_path — Return the instance number associated with the Path
    • iis_get_server_rights — Gets server rights
    • iis_get_service_state — Returns the state for the service defined by ServiceId
    • iis_remove_server — Removes the virtual web server indicated by ServerInstance
    • iis_set_app_settings — Creates application scope for a virtual directory
    • iis_set_dir_security — Sets Directory Security
    • iis_set_script_map — Sets script mapping on a virtual directory
    • iis_set_server_rights — Sets server rights
    • iis_start_server — Starts the virtual web server
    • iis_start_service — Starts the service defined by ServiceId
    • iis_stop_server — Stops the virtual web server
    • iis_stop_service — Stops the service defined by ServiceId


Введение

Это расширение доступлно только для Win32. Оно предоставляет функции для аминистрирования Microsoft Internet Information Server (IIS). Расширение включает функции для создания веб сайтов и виртуальных директорий также как и конфигурирование безопасности и маппинг скриптов.


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » http://svn.php.net/viewvc/pecl/iisfunc.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

IIS_READ (integer)
IIS_WRITE (integer)
IIS_EXECUTE (integer)
IIS_SCRIPT (integer)
IIS_ANONYMOUS (integer)
IIS_BASIC (integer)
IIS_NTLM (integer)
IIS_STARTING (integer)
IIS_STOPPED (integer)
IIS_PAUSED (integer)
IIS_RUNNING (integer)


IIS Функции

Содержание

  • iis_add_server — Creates a new virtual web server
  • iis_get_dir_security — Gets Directory Security
  • iis_get_script_map — Gets script mapping on a virtual directory for a specific extension
  • iis_get_server_by_comment — Return the instance number associated with the Comment
  • iis_get_server_by_path — Return the instance number associated with the Path
  • iis_get_server_rights — Gets server rights
  • iis_get_service_state — Returns the state for the service defined by ServiceId
  • iis_remove_server — Removes the virtual web server indicated by ServerInstance
  • iis_set_app_settings — Creates application scope for a virtual directory
  • iis_set_dir_security — Sets Directory Security
  • iis_set_script_map — Sets script mapping on a virtual directory
  • iis_set_server_rights — Sets server rights
  • iis_start_server — Starts the virtual web server
  • iis_start_service — Starts the service defined by ServiceId
  • iis_stop_server — Stops the virtual web server
  • iis_stop_service — Stops the service defined by ServiceId


Creates a new virtual web server

  • « IIS Функции
  • iis_get_dir_security »
  • PHP Manual
  • IIS Функции
  • Creates a new virtual web server

iis_add_server

(PECL iisfunc SVN)

iis_add_server — Creates a new virtual web server

Описание

int iis_add_server ( string $path , string $comment , string $server_ip , int $port , string $host_name , int $rights , int $start_server )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Gets Directory Security

  • « iis_add_server
  • iis_get_script_map »
  • PHP Manual
  • IIS Функции
  • Gets Directory Security

iis_get_dir_security

(PECL iisfunc SVN)

iis_get_dir_security — Gets Directory Security

Описание

int iis_get_dir_security ( int $server_instance , string $virtual_path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Gets script mapping on a virtual directory for a specific extension

  • « iis_get_dir_security
  • iis_get_server_by_comment »
  • PHP Manual
  • IIS Функции
  • Gets script mapping on a virtual directory for a specific extension

iis_get_script_map

(PECL iisfunc SVN)

iis_get_script_map — Gets script mapping on a virtual directory for a specific extension

Описание

string iis_get_script_map ( int $server_instance , string $virtual_path , string $script_extension )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Return the instance number associated with the Comment

  • « iis_get_script_map
  • iis_get_server_by_path »
  • PHP Manual
  • IIS Функции
  • Return the instance number associated with the Comment

iis_get_server_by_comment

(PECL iisfunc SVN)

iis_get_server_by_comment — Return the instance number associated with the Comment

Описание

int iis_get_server_by_comment ( string $comment )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Return the instance number associated with the Path

  • « iis_get_server_by_comment
  • iis_get_server_rights »
  • PHP Manual
  • IIS Функции
  • Return the instance number associated with the Path

iis_get_server_by_path

(PECL iisfunc SVN)

iis_get_server_by_path — Return the instance number associated with the Path

Описание

int iis_get_server_by_path ( string $path )

Each virtual server in IIS is associated with an instance number. iis_get_server_by_path() finds the instance number from the actual path to the root directory.

Список параметров

path

The path to the root directory

Возвращаемые значения

Returns the server instance number.


Gets server rights

  • « iis_get_server_by_path
  • iis_get_service_state »
  • PHP Manual
  • IIS Функции
  • Gets server rights

iis_get_server_rights

(PECL iisfunc SVN)

iis_get_server_rights — Gets server rights

Описание

int iis_get_server_rights ( int $server_instance , string $virtual_path )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Returns the state for the service defined by ServiceId

  • « iis_get_server_rights
  • iis_remove_server »
  • PHP Manual
  • IIS Функции
  • Returns the state for the service defined by ServiceId

iis_get_service_state

(PECL iisfunc SVN)

iis_get_service_state — Returns the state for the service defined by ServiceId

Описание

int iis_get_service_state ( string $service_id )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Removes the virtual web server indicated by ServerInstance

  • « iis_get_service_state
  • iis_set_app_settings »
  • PHP Manual
  • IIS Функции
  • Removes the virtual web server indicated by ServerInstance

iis_remove_server

(PECL iisfunc SVN)

iis_remove_server — Removes the virtual web server indicated by ServerInstance

Описание

int iis_remove_server ( int $server_instance )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Creates application scope for a virtual directory

  • « iis_remove_server
  • iis_set_dir_security »
  • PHP Manual
  • IIS Функции
  • Creates application scope for a virtual directory

iis_set_app_settings

(PECL iisfunc SVN)

iis_set_app_settings — Creates application scope for a virtual directory

Описание

int iis_set_app_settings ( int $server_instance , string $virtual_path , string $application_scope )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Sets Directory Security

  • « iis_set_app_settings
  • iis_set_script_map »
  • PHP Manual
  • IIS Функции
  • Sets Directory Security

iis_set_dir_security

(PECL iisfunc SVN)

iis_set_dir_security — Sets Directory Security

Описание

int iis_set_dir_security ( int $server_instance , string $virtual_path , int $directory_flags )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Sets script mapping on a virtual directory

  • « iis_set_dir_security
  • iis_set_server_rights »
  • PHP Manual
  • IIS Функции
  • Sets script mapping on a virtual directory

iis_set_script_map

(PECL iisfunc SVN)

iis_set_script_map — Sets script mapping on a virtual directory

Описание

int iis_set_script_map ( int $server_instance , string $virtual_path , string $script_extension , string $engine_path , int $allow_scripting )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Sets server rights

  • « iis_set_script_map
  • iis_start_server »
  • PHP Manual
  • IIS Функции
  • Sets server rights

iis_set_server_rights

(PECL iisfunc SVN)

iis_set_server_rights — Sets server rights

Описание

int iis_set_server_rights ( int $server_instance , string $virtual_path , int $directory_flags )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Starts the virtual web server

  • « iis_set_server_rights
  • iis_start_service »
  • PHP Manual
  • IIS Функции
  • Starts the virtual web server

iis_start_server

(PECL iisfunc SVN)

iis_start_server — Starts the virtual web server

Описание

int iis_start_server ( int $server_instance )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Starts the service defined by ServiceId

  • « iis_start_server
  • iis_stop_server »
  • PHP Manual
  • IIS Функции
  • Starts the service defined by ServiceId

iis_start_service

(PECL iisfunc SVN)

iis_start_service — Starts the service defined by ServiceId

Описание

int iis_start_service ( string $service_id )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Stops the virtual web server

  • « iis_start_service
  • iis_stop_service »
  • PHP Manual
  • IIS Функции
  • Stops the virtual web server

iis_stop_server

(PECL iisfunc SVN)

iis_stop_server — Stops the virtual web server

Описание

int iis_stop_server ( int $server_instance )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Stops the service defined by ServiceId

  • « iis_stop_server
  • NSAPI »
  • PHP Manual
  • IIS Функции
  • Stops the service defined by ServiceId

iis_stop_service

(PECL iisfunc SVN)

iis_stop_service — Stops the service defined by ServiceId

Описание

int iis_stop_service ( string $service_id )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


NSAPI

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • NSAPI Функции
    • nsapi_request_headers — Fetch all HTTP request headers
    • nsapi_response_headers — Fetch all HTTP response headers
    • nsapi_virtual — Perform an NSAPI sub-request


Введение

Эти функции доступны только когда PHP запущен как NSAPI модуль на веб-серверах Netscape/iPlanet/Sun.


Установка

For PHP installation on Netscape/iPlanet/Sun webservers see the NSAPI section (UNIX, Windows) in the installation chapter.


Настройка во время выполнения

The behaviour of the NSAPI PHP module is affected by settings in php.ini. Configuration settings from php.ini may be overridden by additional parameters to the php4_execute call in obj.conf

NSAPI configuration options
Имя | По умолчанию | Меняемо | Список изменений
nsapi.read_timeout | "60" | PHP_INI_ALL | Available since PHP 4.3.3.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

nsapi.read_timeout integer

Sets the time in seconds the plugin is waiting for POST data from the client.


  • « Типы ресурсов
  • NSAPI Функции »
  • PHP Manual
  • NSAPI
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


NSAPI Функции

Смотрите также

NSAPI implements a subset of the functions from the Apache module for maximum compatibility.

Apache functions implemented by NSAPI
Apache function (only as alias) | NSAPI function | Description
apache_request_headers() | nsapi_request_headers() | Fetch all HTTP request headers
apache_response_headers() | nsapi_response_headers() | Fetch all HTTP response headers
getallheaders() | nsapi_request_headers() | Fetch all HTTP request headers
virtual() | nsapi_virtual() | Make NSAPI sub-request

Содержание

  • nsapi_request_headers — Fetch all HTTP request headers
  • nsapi_response_headers — Fetch all HTTP response headers
  • nsapi_virtual — Perform an NSAPI sub-request


Fetch all HTTP request headers

  • « NSAPI Функции
  • nsapi_response_headers »
  • PHP Manual
  • NSAPI Функции
  • Fetch all HTTP request headers

nsapi_request_headers

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

nsapi_request_headers — Fetch all HTTP request headers

Описание

array nsapi_request_headers ( void )

nsapi_request_headers() gets all the HTTP headers in the current request. This is only supported when PHP runs as a NSAPI module.

Замечание:

Prior to PHP 4.3.3, getallheaders() was only available for the Apache servers. After PHP 4.3.3, getallheaders() is an alias for nsapi_request_headers() if you use the NSAPI module.

Замечание:

You can also get at the value of the common CGI variables by reading them from the $_SERVER superglobal, which works whether or not you are using PHP as a NSAPI module.

Возвращаемые значения

Returns an associative array with all the HTTP headers.

Примеры

Пример #1 nsapi_request_headers() example

<?php
$headers = nsapi_request_headers();

foreach ($headers as $header => $value) {
  echo "$header: $value <br />\n";
}
?>


Fetch all HTTP response headers

  • « nsapi_request_headers
  • nsapi_virtual »
  • PHP Manual
  • NSAPI Функции
  • Fetch all HTTP response headers

nsapi_response_headers

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

nsapi_response_headers — Fetch all HTTP response headers

Описание

array nsapi_response_headers ( void )

Gets all the NSAPI response headers.

Возвращаемые значения

Returns an associative array with all the NSAPI response headers.

Смотрите также

  • nsapi_request_headers() - Fetch all HTTP request headers
  • headers_sent() - Проверяет были ли и куда отправлены заголовки


Perform an NSAPI sub-request

  • « nsapi_response_headers
  • Расширения для работы с сессиями »
  • PHP Manual
  • NSAPI Функции
  • Perform an NSAPI sub-request

nsapi_virtual

(PHP 4 >= 4.3.3, PHP 5, PHP 7)

nsapi_virtual — Perform an NSAPI sub-request

Описание

bool nsapi_virtual ( string $uri )

nsapi_virtual() is an NSAPI-specific function which is equivalent to <!--#include virtual...--> in SSI (.shtml files). It does an NSAPI sub-request. It is useful for including CGI scripts or .shtml files, or anything else that you'd parse through webserver.

To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are sent too.

You cannot make recursive requests with this function to other PHP scripts. If you want to include PHP scripts, use include or require.

Замечание:

This function depends on a undocumented feature of the Netscape/iPlanet/Sun webservers. Use phpinfo() to determine if it is available. In the Unix environment it should always work, in Windows it depends on the name of a ns-httpdXX.dll file.

Read the note about subrequests in the NSAPI section (UNIX, Windows) if you experience this problem.

Список параметров

uri

The URI of the script.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Расширения для работы с сессиями

  • Msession — Mohawk Software Session Handler Functions
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Msession Функции
  • Сессии — Управление сессиями
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Отслеживание прогресса загрузки файлов с помощью сессий
    • Безопасность сессий
    • Функции для работы с сессиями
    • SessionHandler — The SessionHandler class
    • SessionHandlerInterface — Класс SessionHandlerInterface
  • Session PgSQL — PostgreSQL Session Save Handler
    • Введение
    • Установка и настройка
    • Table definitions
    • Предопределенные константы
    • Session PgSQL Функции


Mohawk Software Session Handler Functions

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Msession Функции
    • msession_connect — Connect to msession server
    • msession_count — Get session count
    • msession_create — Create a session
    • msession_destroy — Destroy a session
    • msession_disconnect — Close connection to msession server
    • msession_find — Find all sessions with name and value
    • msession_get_array — Get array of msession variables
    • msession_get_data — Get data session unstructured data
    • msession_get — Get value from session
    • msession_inc — Increment value in session
    • msession_list — List all sessions
    • msession_listvar — List sessions with variable
    • msession_lock — Lock a session
    • msession_plugin — Call an escape function within the msession personality plugin
    • msession_randstr — Get random string
    • msession_set_array — Set msession variables from an array
    • msession_set_data — Set data session unstructured data
    • msession_set — Set value in session
    • msession_timeout — Set/get session timeout
    • msession_uniq — Get unique id
    • msession_unlock — Unlock a session


Введение

msession is an interface to a high speed session daemon which can run either locally or remotely. It is designed to provide consistent session management for a PHP web farm. More Information about msession and the session server software itself can be found at » http://www.mohawksoft.org/?q=node/8.

Замечание: Для Windows-платформ это расширение недоступно.

Замечание:

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.3.


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » http://svn.php.net/viewvc/pecl/msession.

Это расширение было перемещено в репозиторий » PECL и больше не поставляется с PHP 5.1.3


  • « Типы ресурсов
  • Msession Функции »
  • PHP Manual
  • Msession
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Msession Функции

Содержание

  • msession_connect — Connect to msession server
  • msession_count — Get session count
  • msession_create — Create a session
  • msession_destroy — Destroy a session
  • msession_disconnect — Close connection to msession server
  • msession_find — Find all sessions with name and value
  • msession_get_array — Get array of msession variables
  • msession_get_data — Get data session unstructured data
  • msession_get — Get value from session
  • msession_inc — Increment value in session
  • msession_list — List all sessions
  • msession_listvar — List sessions with variable
  • msession_lock — Lock a session
  • msession_plugin — Call an escape function within the msession personality plugin
  • msession_randstr — Get random string
  • msession_set_array — Set msession variables from an array
  • msession_set_data — Set data session unstructured data
  • msession_set — Set value in session
  • msession_timeout — Set/get session timeout
  • msession_uniq — Get unique id
  • msession_unlock — Unlock a session


Connect to msession server

  • « Msession Функции
  • msession_count »
  • PHP Manual
  • Msession Функции
  • Connect to msession server

msession_connect

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_connect — Connect to msession server

Описание

bool msession_connect ( string $host , string $port )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Get session count

  • « msession_connect
  • msession_create »
  • PHP Manual
  • Msession Функции
  • Get session count

msession_count

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_count — Get session count

Описание

int msession_count ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Create a session

  • « msession_count
  • msession_destroy »
  • PHP Manual
  • Msession Функции
  • Create a session

msession_create

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_create — Create a session

Описание

bool msession_create ( string $session [, string $classname [, string $data ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Destroy a session

  • « msession_create
  • msession_disconnect »
  • PHP Manual
  • Msession Функции
  • Destroy a session

msession_destroy

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_destroy — Destroy a session

Описание

bool msession_destroy ( string $name )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Close connection to msession server

  • « msession_destroy
  • msession_find »
  • PHP Manual
  • Msession Функции
  • Close connection to msession server

msession_disconnect

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_disconnect — Close connection to msession server

Описание

void msession_disconnect ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Find all sessions with name and value

  • « msession_disconnect
  • msession_get_array »
  • PHP Manual
  • Msession Функции
  • Find all sessions with name and value

msession_find

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_find — Find all sessions with name and value

Описание

array msession_find ( string $name , string $value )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Get array of msession variables

  • « msession_find
  • msession_get_data »
  • PHP Manual
  • Msession Функции
  • Get array of msession variables

msession_get_array

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_get_array — Get array of msession variables

Описание

array msession_get_array ( string $session )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Get data session unstructured data

  • « msession_get_array
  • msession_get »
  • PHP Manual
  • Msession Функции
  • Get data session unstructured data

msession_get_data

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_get_data — Get data session unstructured data

Описание

string msession_get_data ( string $session )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Get value from session

  • « msession_get_data
  • msession_inc »
  • PHP Manual
  • Msession Функции
  • Get value from session

msession_get

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_get — Get value from session

Описание

string msession_get ( string $session , string $name , string $value )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Increment value in session

  • « msession_get
  • msession_list »
  • PHP Manual
  • Msession Функции
  • Increment value in session

msession_inc

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_inc — Increment value in session

Описание

string msession_inc ( string $session , string $name )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


List all sessions

  • « msession_inc
  • msession_listvar »
  • PHP Manual
  • Msession Функции
  • List all sessions

msession_list

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_list — List all sessions

Описание

array msession_list ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


List sessions with variable

  • « msession_list
  • msession_lock »
  • PHP Manual
  • Msession Функции
  • List sessions with variable

msession_listvar

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_listvar — List sessions with variable

Описание

array msession_listvar ( string $name )

Used for searching sessions with common attributes.

Список параметров

name

The name being searched.

Возвращаемые значения

Returns an associative array of value/session for all sessions with a variable named name.


Lock a session

  • « msession_listvar
  • msession_plugin »
  • PHP Manual
  • Msession Функции
  • Lock a session

msession_lock

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_lock — Lock a session

Описание

int msession_lock ( string $name )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Call an escape function within the msession personality plugin

  • « msession_lock
  • msession_randstr »
  • PHP Manual
  • Msession Функции
  • Call an escape function within the msession personality plugin

msession_plugin

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_plugin — Call an escape function within the msession personality plugin

Описание

string msession_plugin ( string $session , string $val [, string $param ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Get random string

  • « msession_plugin
  • msession_set_array »
  • PHP Manual
  • Msession Функции
  • Get random string

msession_randstr

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_randstr — Get random string

Описание

string msession_randstr ( int $param )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Set msession variables from an array

  • « msession_randstr
  • msession_set_data »
  • PHP Manual
  • Msession Функции
  • Set msession variables from an array

msession_set_array

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_set_array — Set msession variables from an array

Описание

void msession_set_array ( string $session , array $tuples )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Set data session unstructured data

  • « msession_set_array
  • msession_set »
  • PHP Manual
  • Msession Функции
  • Set data session unstructured data

msession_set_data

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_set_data — Set data session unstructured data

Описание

bool msession_set_data ( string $session , string $value )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Set value in session

  • « msession_set_data
  • msession_timeout »
  • PHP Manual
  • Msession Функции
  • Set value in session

msession_set

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_set — Set value in session

Описание

bool msession_set ( string $session , string $name , string $value )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Set/get session timeout

  • « msession_set
  • msession_uniq »
  • PHP Manual
  • Msession Функции
  • Set/get session timeout

msession_timeout

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_timeout — Set/get session timeout

Описание

int msession_timeout ( string $session [, int $param ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Get unique id

  • « msession_timeout
  • msession_unlock »
  • PHP Manual
  • Msession Функции
  • Get unique id

msession_uniq

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_uniq — Get unique id

Описание

string msession_uniq ( int $param [, string $classname [, string $data ]] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Unlock a session

  • « msession_uniq
  • Сессии »
  • PHP Manual
  • Msession Функции
  • Unlock a session

msession_unlock

(PHP 4 >= 4.2.0, PHP 5 <= 5.1.2)

msession_unlock — Unlock a session

Описание

int msession_unlock ( string $session , int $key )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Управление сессиями

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Основы использования
    • Передача идентификатора сессии
    • Пользовательские обработчики сессии
  • Отслеживание прогресса загрузки файлов с помощью сессий
  • Безопасность сессий
    • Базовые принципы управления сессиями
    • INI-настройки безопасности сессий
  • Функции для работы с сессиями
    • session_abort — Отменяет измененния сделанные в текущей сессии и завершает ее
    • session_cache_expire — Return current cache expire
    • сессия_кэш_ограничитель — Получить и/или установить текущий режим кэширования
    • session_commit — Псевдоним session_write_close
    • session_create_id — Create new session id
    • session_decode — Decodes session data from a session encoded string
    • session_destroy — Destroys all data registered to a session
    • session_encode — Кодирует данные текущей сессии в формате строки сессии
    • session_gc — Perform session data garbage collection
    • session_get_cookie_params — Возвращает параметры cookie сессии
    • session_id — Get and/or set the current session id
    • session_is_registered — Определяет, зарегистрирована ли глобальная переменная в сессии
    • session_module_name — Возвращает и/или устанавливает модуль текущей сессии
    • session_name — Получить или установить имя текущей сессии
    • session_regenerate_id — Update the current session id with a newly generated one
    • session_register_shutdown — Функция завершения сессии
    • session_register — Регистрация одной или нескольких глобальных переменных текущей сессии
    • session_reset — Реинициализирует сессию с оригинальными значениями
    • session_save_path — Get and/or set the current session save path
    • session_set_cookie_params — Set the session cookie parameters
    • session_set_save_handler — Sets user-level session storage functions
    • session_start — Стартует новую сессию, либо возобновляет существующую
    • session_status — Возвращает состояние текущей сессии
    • session_unregister — Unregister a global variable from the current session
    • session_unset — Удалить все переменные сессии
    • session_write_close — Write session data and end session
  • SessionHandler — The SessionHandler class
    • SessionHandler::close — Закрывает сессию
    • SessionHandler::create_sid — Возвращает новый ID сессии
    • SessionHandler::destroy — Уничтожает сессию
    • SessionHandler::gc — Очищает старые сессии
    • SessionHandler::open — Инициализирует сессию
    • SessionHandler::read — Считывает данные сессии
    • SessionHandler::write — Write session data
  • SessionHandlerInterface — Класс SessionHandlerInterface
    • SessionHandlerInterface::close — Закрывает сессию
    • SessionHandlerInterface::destroy — Уничтожает сессию
    • SessionHandlerInterface::gc — Очищает старые сессии
    • SessionHandlerInterface::open — Инициализирует сессию
    • SessionHandlerInterface::read — Читает данные сессии
    • SessionHandlerInterface::write — Записать данные сессии


Введение

Поддержка сессий в PHP заключается в способе сохранения некоторых данных между несколькими последовательными доступами. веб-сайта.

Каждому посетителю сайта присваивается уникальный идентификатор, называемый идентификатором сессии (session id). Он хранится либо в cookie на стороне пользователя, либо передается через URL.

Поддержка сессий позволяет сохранять данные между запросами в суперглобальном массиве $_SESSION. В тот момент, когда посетитель получает доступ к сайту, PHP проверяет (автоматически, если session.auto_start установлено в 1, или по запросу явным образом через вызов session_start()), если определенный идентификатор сессии послан вместе с запросом. Если это так, восстанавливается сохраненное ранее окружение.

Предостережение

При включенном session.auto_start, единственным способом помещения объектов в сессию останется загрузка описаний класса с помощью auto_prepend_file. В противном случае придется выполнить сериализацию (serialize()) и десериализацию (unserialize()) объекта вручную.

$_SESSION (и все зарегистрированныее переменные) сериализуются внутри PHP после выполнения запроса, используя обработчик сериализации, указанный в INI-опции session.serialize_handler. Зарегистрированные, но неопределенные переменные помечаются как неопределенные. При последующем доступе они не определяются сессионным модулем пока пользователь заново не определит их.

Внимание

Так как сессионные данные сериализуются, то переменные с типом resource не могут храниться в сессиях.

Обработчики сериализации (php и php_binary) наследуют ограничения для register_globals. Поэтому нельзя использовать числовые или строковые индексы содержащие специальные символы (| и !). Их использование приведет к ошибкам по завершении скрипта. У php_serialize такие ограничения отсутствуют. php_serialize доступен начиная с PHP 5.5.4.

Замечание:

При работе с сессиями обратите внимание, что запись в сессии не создается прежде чем переменная регистрируется через функцию session_register() или через добавление нового ключа в суперглобальном массиве $_SESSION. Это правило действует вне зависимости от того, была ли сессия запущена с использованием функции session_start().

Замечание:

В PHP 5.2.2 была добавлена незадокументированная возможность, позволяющая хранить сессионный файлы в каталоге "/tmp" даже если open_basedir была включена и "/tmp" не был явным образом добавлен в список разрешенных путей. Эта особенность была убрана из PHP по состоянию на PHP 5.3.0.


Требования

Для сборки этого расширения не требуются внешние библиотеки.

Замечание:

При желании можно использовать квотирование разделяемой памяти (mm), разработанное Ralf S. Engelschall, для хранения сессии. Для этого необходимо скачать и установить » mm. Данная опция не доступна для платформ на базе ОС Windows. Следует также обратить внимание, что модуль хранения данных сессии при использовании mm не гарантирует блокировку информации сессии при параллельных запросах. Возможно, в таком случае целесообразно использование файловой системы в разделяемой памяти (Например, TMPFS в Solaris/Linux или /dev/md для BSD), чтобы хранить сессии в файлах, блокируемых при обращении к ним. Поскольку данные сессии хранятся в разделяемой памяти, перезапуск web-сервера приведет к их удалению.


Установка

Поддержка механизма сессий включена в PHP по умолчанию. Если необходимо собрать PHP без такой поддержки, нужно указать опцию --disable-session при конфигурации PHP. Для использования квотирования разделяемой памяти (mm) для хранения данных сессии необходимо сконфигурировать PHP с опцией --with-mm[=DIR] .

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание:

По умолчанию, все данные, связанные с конкретной сессией будут храниться в файле в директории, указанной в опции session.save_path файла конфигурации. Файл создается для каждой сессии (независимо от наличия ассоциированных с ней данных). Это связано с тем, что сессия открывается (создается файл), но никакие данные еще не записаны. Следует обратить внимание, что такое поведение является побочным эффектом ограничений в работе с файловой системой и вполне возможно, что пользовательский обработчик сессии (похожий на тот, что использует базу данных) не отслеживает файлы сессий, в которых нет хранимых данных.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции настройки механизма сессий
Имя | По умолчанию | Меняемо | Список изменений
session.save_path | "" | PHP_INI_ALL |
session.name | "PHPSESSID" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.auto_start | "0" | PHP_INI_PERDIR |
session.gc_probability | "1" | PHP_INI_ALL |
session.gc_divisor | "100" | PHP_INI_ALL | Доступна с PHP 4.3.2.
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL | Доступна с PHP 4.0.4.
session.cookie_httponly | "" | PHP_INI_ALL | Доступна с PHP 5.2.0.
session.use_strict_mode | "0" | PHP_INI_ALL | Доступна с PHP 5.5.2.
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL | Доступна с PHP 4.3.0.
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 | PHP_INI_ALL в PHP <= 4.2.3. PHP_INI_PERDIR в PHP < 5. Доступна с PHP 4.0.3.
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 | "5" | PHP_INI_ALL | Доступна с PHP 7.1.0.
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Доступна с PHP 5.4.0.
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Доступна с PHP 5.4.0.
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Доступна с 5.4.0.
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Доступна с PHP 5.4.0.
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Доступна с 5.4.0.
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Доступна с PHP 5.4.0.
session.lazy_write | "1" | PHP_INI_ALL | Доступна с PHP 7.0.0.
url_rewriter.tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Доступна с 4.0.4. С PHP 7.1.0, эта настройка сессиями больше не используется.
session.hash_function | "0" | PHP_INI_ALL | Доступна с PHP 5.0.0. Удалена в PHP 7.1.0.
session.hash_bits_per_character | "4" | PHP_INI_ALL | Доступна с PHP 5.0.0. Удалена в PHP 7.1.0.
session.entropy_file | "" | PHP_INI_ALL | Удалена в PHP 7.1.0.
session.entropy_length | "0" | PHP_INI_ALL | Удалена в PHP 7.1.0
session.bug_compat_42 | "1" | PHP_INI_ALL | Доступна c PHP 4.3.0. Удалена в PHP 5.4.0.
session.bug_compat_warn | "1" | PHP_INI_ALL | Доступна c PHP 4.3.0. Удалена в PHP 5.4.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Система управления сессиями поддерживает ряд опций, которые могут быть указаны в файле php.ini. Ниже приводится краткий обзор.

session.save_handler string
session.save_handler определяет имя обработчика, который используется для хранения и извлечения данных, связанных с сессией. По умолчанию имеет значение files. Следует обратить внимание, что некоторые расширения могут зарегистрировать собственные обработчики (save_handler). Текущие зарегистрированные обработчики отображаются в phpinfo(). См. также session_set_save_handler().
session.save_path string
session.save_path определяет аргумент, который передается в обработчик сохранения. При установленном по умолчанию обработчике files, аргумент содержит путь, где будут создаваться файлы. См. также session_save_path().

У этой директивы также существует дополнительный аргумент N, определяющий глубину размещения файлов сессии относительно указанной директории. Например, указание '5;/tmp' может в конечном итоге привести к такому размещению файла сессии: /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If . Для того, чтобы использовать аргумент N, необходимо предварительно создать все эти директории. Помочь в этом может небольшой скрипт, расположенный в ext/session. Версия для bash называется mod_files.sh, а Windows-версия - mod_files.bat. Также следует учитывать, что если N определен и больше 0, то автоматическая сборка мусора не выполняется, подробнее см. информацию в файле php.ini. Если используется N, необходимо также удостовериться, что значение session.save_path указано в кавычках, поскольку разделитель (;) в php.ini используется как знак комментария.

Модуль хранения файлов создает файлы с правами 600 по умолчанию. Это можно изменить с помощью необязательного аргумента MODE: N;MODE;/path, где MODE - восьмиричное представление режима доступа к файлу. Установка MODE не затрагивает umask.

Внимание

Если установить в качестве значения общедоступную для чтения директорию, например, /tmp (по умолчанию), остальные пользователи сервера получат возможность перехватить сессию пользователя, получив список файлов такой директории.

Предостережение

При использовании необязательного аргумента N уровня директорий, как описано выше, учтите, что использование значений выше чем 1 или 2 недопустимо для большинства сайтов, так как требуется очень большое количество директорий: например, значение 3 приводит к 64^3 директориям в файловой системе, которые приводят к огромным потерям места и inode.

Only use N greater than 2 if you are absolutely certain that your site is large enough to require it.

Замечание: До версии PHP 4.3.6, для использования механизма сессий пользователям Windows приходилось изменять эту переменную. Необходимо было указать корректный путь, например, такой: c:/temp.

session.name string
session.name определяет название сессии, используемое как название Cookies. Может содержать только цифры и буквы. По умолчанию равно PHPSESSID. См. также session_name().
session.auto_start boolean
session.auto_start определяет, будет ли модуль сессии запускать сессию автоматически при старте. Значение по умолчанию 0 (отключено).
session.serialize_handler string
session.serialize_handler определяет имя обработчика, который используется для сериализации / десериализации данных. Формат сериализации PHP (наименование php_serialize), внутренний формат PHP (наименование php и php_binary), а также поддерживается WDDX (наименование wddx). WDDX доступен только в том случае, если PHP скомпилирован с поддержкой WDDX. php_serialize доступен с версии PHP 5.5.4. php_serialize использует простую функцию сериализации / десериализации для внутренних нужд и не имеет тех же ограничений, что php и php_binary. Более старые обработчики сериализации не могут хранить ни числовые ни строковые индексы, содержащие специальные символы (| и !) в $_SESSION. Используйте php_serialize, чтобы обойти ошибки числовых и строковых индексов при завершении сктрипта. Значение по умолчанию: php.
session.gc_probability integer
session.gc_probability в сочетании с session.gc_divisor определяет вероятность запуска функции сборщика мусора (gc, garbage collection). По умолчанию равна 1. См. подробнее в session.gc_divisor.
session.gc_divisor integer
session.gc_divisor в сочетании с session.gc_probability вероятность запуска функции сборщика мусора (gc, garbage collection) при каждой инициализации сессии. Вероятность рассчитывается как gc_probability/gc_divisor, т.е. 1/100 означает, что функция gc запускается в одном случае из ста, или 1% при каждом запросе. session.gc_divisor по умолчанию имеет значение 100.
session.gc_maxlifetime integer
session.gc_maxlifetime задает отсрочку времени в секундах, после которой данные будут рассматриваться как "мусор" и потенциально будут удалены. Сбор мусора может произойти в течение старта сессии (в зависимости от значений session.gc_probability и session.gc_divisor).

Замечание: Если разные скрипты имеют разные значения session.gc_maxlifetime, но при этом одни и те же места для хранения данных сессии, то скрипт с минимальным значением уничтожит все данные. В таком случае следует использовать эту директиву вместе с session.save_path.

session.referer_check string
session.referer_check содержит подстроку, которую можно использовать при проверке HTTP Referer. Если клиентом был послан referer и подстрока не была выявлена, то идентификатор сессии будет помечен как недействительный. По умолчанию используется пустая строка.
session.entropy_file string
session.entropy_file содержит путь к ресурсу (файлу), используемому как дополнительный источник энтропии в процессе создания идентификатора сессии. Например, /dev/random или /dev/urandom, которые доступны на многих Unix-системах. Эта возможность также поддерживается в Windows начиная с версии PHP 5.3.3. Указание ненулевого значения в session.entropy_length предписывает PHP использовать в качестве источника энтропии Windows Random API.

Замечание: Удалено в PHP 7.1.0. Начиная с PHP 5.4.0 session.entropy_file имеет значение по умолчанию равное /dev/urandom или /dev/arandom, если они доступны. В PHP 5.3.0 эта директива по умолчанию пуста.

session.entropy_length integer
session.entropy_length определяет количество байт, которые будут прочитаны из вышеуказанного файла. По умолчанию 32. Удалено в PHP 7.1.0.
session.use_strict_mode boolean
session.use_strict_mode определяет будет ли модуль использовать режим строгого идентификатора (ID). Если от браузера получен неопределенный ID, то браузеру будет отправлен новый ID. Таким образом приложения защищаются от внедрения сессии с помощью строгого режима. По умолчанию 0 (отключено).

Замечание: Разрешение session.use_strict_mode является обязательным для общей безопасности сессии. Всем сайтам рекомендуется ее включать. Смотри примеры session_create_id().

session.use_cookies boolean
session.use_cookies определяет, будет ли модуль использовать cookies для хранения идентификатора сессии на стороне клиента. По умолчанию 1 (включено).
session.use_only_cookies boolean
session.use_only_cookies определяет, будет ли модуль использовать только cookies для хранения идентификатора сессии на стороне клиента. Включение этого параметра предотвращает атаки с использованием идентификатора сессии, размещенного в URL. Добавлено в PHP 4.3.0. Значение по умолчанию 1 (включено) с версии PHP 5.3.0.
session.cookie_lifetime integer
session.cookie_lifetime указывает время жизни cookies, отправляемого в браузер клиента, в секундах. Значение 0 означает, что cookies будут валидны до закрытия браузера. По умолчанию равно 0. См. также session_get_cookie_params() и session_set_cookie_params().

Замечание: Отметка окончания времени устанавливается по отношению к серверному времени, который не обязательно совпадает с временем в браузере клиента.

session.cookie_path string
session.cookie_path определяет устанавливаемый путь в сессионной cookie. По умолчанию /. См. также session_get_cookie_params() и session_set_cookie_params().
session.cookie_domain string
session.cookie_domain определяет устанавливаемый домен в сессионной cookie. В соответствии со спецификацией нет смысла дополнительно указывать имя хоста, который сгенерировал cookies. См. также session_get_cookie_params() и session_set_cookie_params().
session.cookie_secure boolean
session.cookie_secure указывает, должны ли cookies передаваться только через защищенное соединение. По умолчанию off. Добавлено в версии PHP 4.0.4. См. также session_get_cookie_params() и session_set_cookie_params().
session.cookie_httponly boolean
Отметка, согласно которой доступ к cookies может быть получен только через HTTP протокол. Это означает, что cookies не будут доступны через скриптовые языки, такие как JavaScript. Данная настройка позволяет эффективно защитить от XSS атак (к сожалению, эта функция поддерживается не всеми браузерами).
session.cache_limiter string
session.cache_limiter определяет метод контроля кэша, используемого для страниц сессий. Может принимать одно из следующих значений: nocache, private, private_no_expire или public. По умолчанию nocache. Подробнее о данных значениях смотрите в session_cache_limiter().
session.cache_expire integer
session.cache_expire указывает время жизни кэшированных страниц сессий в минутах, это никак не влияет на ограничитель nocache. По умолчанию 180. См. также session_cache_expire().
session.use_trans_sid boolean
session.use_trans_sid указывает, используется ли прозрачная поддержка sid или нет. По умолчанию 0 (отключено).

Замечание: Управление сессией на основе URL имеет дополнительные риски безопасности по сравнению с управлением на основе cookies. В качестве примера можно упомянуть такие ситуации, когда пользователи могут отправить URL, содержащий идентификатор активной сессии своим друзьям по электронной почте или сохранить ссылку с идентификатором в закладках и все время посещать сайт с одним и тем же идентификатором. С PHP 7.1.0, полный путь URL, т.е. https://php.net/, обрабатывается "trans sid". Предыдущие обработчики . Ранее обрабатывался только относительный путь URL. Перезапись целевого хоста задается session.trans_sid_hosts.

session.trans_sid_tags string
session.trans_sid_tags задает перезаписываемые тэги HTML для включения идентификатора сессии когда включена поддержка прозрачных "sid". По умолчанию a=href,area=href,frame=src,input=src,form= form - специальных тэг. <input hidden="session_id" name="session_name"> добавляется в форму.

Замечание: До PHP 7.1.0 для этого использовался, url_rewriter.tags. С PHP 7.1.0, fieldset больше не считается за специальный тэг.

session.trans_sid_hosts string
session.trans_sid_hosts задает, какие хосты будут перезаписаны для включения идентификатора сессии, когда включена поддержка прозрачных "sid". По умолчанию, $_SERVER['HTTP_HOST']. Несколько хостов можно указать через запятую. Не допускается вставлять пробелы между хостами. Так правильно: php.net,wiki.php.net,bugs.php.net.
session.bug_compat_42 boolean
PHP версии 4.2.3 и более ранние имеют недокументированную особенность/ошибку, позволяющую инициализировать переменную сессии как глобальную при отключенной директиве register_globals. PHP 4.3.0 и более поздние предупреждают, если используется эта особенность и включена опция session.bug_compat_warn. Эта особенность/ошибка может быть отключена при отключении данной директивы.

Замечание: Удалено в PHP 5.4.0.

session.bug_compat_warn boolean
PHP версии 4.2.3 и более ранние имеют недокументированную особенность/ошибку, позволяющую инициализировать переменную сессии как глобальную, при отключенной директиве register_globals. PHP 4.3.0 и более поздние предупреждают, если используется эта особенность при помощи включения директив session.bug_compat_42 и session.bug_compat_warn.

Замечание: Удалено в PHP 5.4.0.

session.sid_length integer
session.sid_length позволяет указать длину идентификатора сессии. Это значение должно быть в диапазоне 22-256. По умолчанию 32. Если вам нужна совместимость, указывайте 32, 40 и т.д. Более длинные идентификаторы сложнее подобрать. Рекомендуется использовать длину не менее 32.

 Заметки по совместимости: Используйте 32 для
 session.hash_func=0 (MD5) и
 session.hash_bits_per_character=4,
 session.hash_func=1 (SHA1) и
 session.hash_bits_per_character=6. 26 для
 session.hash_func=0 (MD5) и
 session.hash_bits_per_character=5. 22 для
 session.hash_func=0 (MD5) и
 session.hash_bits_per_character=6.
Вы должны сконфигурировать INI-настройки таким образом, чтобы идентификатор
сессии состоял как минимум из 128 бит. Не забудьте задать соответствующие
значения для session.sid_bits_per_character, иначе ваши
идентификаторы будут слабыми.

Замечание: Эта настройка появилась в PHP 7.1.0.

session.sid_bits_per_character integer
session.sid_per_character позволяет задать количество бит в одном символе идентификатора сессии. Доступные значения '4' (0-9, a-f), '5' (0-9, a-v), и '6' (0-9, a-z, A-Z, "-", ","). По умолчанию 4. Чем больше бит, тем сильнее идентификатор сессии. В большинстве окружений рекомендуется 5.

Замечание: Эта настройка появилась в PHP 7.1.0.

session.hash_function mixed
session.hash_function позволяет указать алгоритм хэширования, используемый для генерации идентификатора сессии. '0' означает MD5 (128 bits), а '1' означает SHA-1 (160 bits).

Начиная с PHP 5.3.0 также стало возможным указать любой из алгоритмов, предусмотренных расширением hash (если оно доступно), например sha512 или whirlpool. Полный список алгоритмов может быть получен с помощью функции hash_algos().

Замечание: Эта опция была добавлена в PHP 5. Удалена в PHP 7.1.0.

session.hash_bits_per_character integer
session.hash_bits_per_character позволяет указать сколько бит хранится в каждом символе при преобразовании бинарного представления во что-либо более удобочитаемое. Возможные значения: '4' (0-9, a-f), '5' (0-9, a-v) и '6' (0-9, a-z, A-Z, "-", ",").

Замечание: Эта опция была добавлена в PHP 5. Удалена в PHP 7.1.0.

session.upload_progress.enabled boolean
Включает отслеживание прогресса загрузки файлов и заполнение соответствующей переменной в массиве $_SESSION. По умолчанию равна 1, включена.
session.upload_progress.cleanup boolean
Чистка информации о прогрессе загрузки файлов по завершении обработки POST-данных (т.е. по завершении загрузки). По умолчанию равна 1, включена.

Замечание: Строго рекомендуется не отключать эту опцию.

session.upload_progress.prefix string
Префикс, используемый для ключа прогресса загрузки в массиве $_SESSION. Для обеспечения уникальности данный ключ будет присоединен к значению $_POST[ini_get("session.upload_progress.name")]. По умолчанию равен "upload_progress_".
session.upload_progress.name string
Имя ключа, используемого в массиве $_SESSION, для хранения информации о прогрессе. Смотрите также директиву session.upload_progress.prefix. Если элемент $_POST[ini_get("session.upload_progress.name")] не передан, прогресс загрузки данного файла не будет отслеживаться. По умолчанию равно "PHP_SESSION_UPLOAD_PROGRESS".
session.upload_progress.freq mixed
Определяет частоту обновления информации о прогрессе загрузки. Можно указать значение в байтах (т.е. "обновлять информацию о прогрессе каждые 100 байт") или в процентах (т.е. "обновлять информацию о прогрессе после получения 1% данных от размера файла"). По умолчанию равна "1%".
session.upload_progress.min_freq integer
Минимальная задержка между обновлениями, в секундах. По умолчанию равна "1" (одной секунде).
session.lazy_write boolean
Если session.lazy_write установлена в 1, при изменении данных сессии эти данные будут только перезаписываться. По умолчанию 1, включена.

Настройки register_globals влияют на способ хранения и использования переменных сессии.

Прогресс загрузки файлов не будет обрабатываться, если не включена опция session.upload_progress.enabled и не установлена переменная $_POST[ini_get("session.upload_progress.name")]. Подробнее об этом смотрите в главе "Отслеживание прогресса загрузки файлов с помощью сессий".


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SID (string)
Константа, содержащая либо имя сессии и идентификатор в виде "name=ID" либо пустую строку, если идентификатор сессии был установлен в соответствующие куки. Это тот же идентификатор, что возвращает функция session_id().
PHP_SESSION_DISABLED (int)
C PHP 5.4.0. Возвращаемое значение функцией session_status() в случае, если сессии отключены.
PHP_SESSION_NONE (int)
C PHP 5.4.0. Возвращаемое значение функцией session_status() в случае, если сессии включены, но нет созданных сессий.
PHP_SESSION_ACTIVE (int)
C PHP 5.4.0. Возвращаемое значение функцией session_status() в случае существования сессий.


Примеры

Содержание

  • Основы использования
  • Передача идентификатора сессии
  • Пользовательские обработчики сессии


Основы использования

Сессии являются простым способом хранения информации для отдельных пользователей с уникальным идентификатором сессии. Это может использоваться для сохранения состояния между запросами страниц. Идентификаторы сессий обычно отправляются браузеру через сессионный cookie и используются для получения имеющихся данных сессии. Отсутствие идентификатора сессии или сессионного cookie сообщает PHP о том, что необходимо создать новую сессию и сгенерировать новый идентификатор сессии.

Сессии используют простую технологию. Когда сессия создана, PHP будет либо получать существующую сессию, используя переданный идентификатор (обычно из сессионного cookie) или, если ничего не передавалось, будет создана новая сессия. PHP заполнит суперглобальную переменную $_SESSION сессионной информацией после того, как будет запущена сессия. Когда PHP завершает работу, он автоматически сериализует содержимое суперглобальной переменной $_SESSION и отправит для сохранения, используя сессионный обработчик для записи сессии.

По умолчанию PHP использует внутренний обработчик files для сохранения сессий, который установлен в INI-переменной session.save_handler. Этот обработчик сохраняет данные на сервере в директории, указанной в конфигурационной директиве session.save_path.

Сессии могут запускаться вручную с помощью функции session_start(). Если директива session.auto_start установлена в 1, сессия автоматически запустится, в начале запроса.

Сессия обычно завершает свою работу, когда PHP заканчивает исполнять скрипт, но может быть завершена и вручную с помощью функции session_write_close().

Пример #1 Регистрация переменной с помощью $_SESSION.

<?php
session_start();
if (!isset($_SESSION['count'])) {
  $_SESSION['count'] = 0;
} else {
  $_SESSION['count']++;
}
?>

Пример #2 Отмена объявления переменной с помощью $_SESSION.

<?php
session_start();
unset($_SESSION['count']);
?>

Предостережение

НЕ ОЧИЩАЙТЕ $_SESSION целиком, используя unset($_SESSION), так как это отключит возможность регистрации сессионных переменных через суперглобальную переменную $_SESSION.

Внимание

Вы не можете использовать ссылки в сессионных переменных, так как не существует реального способа восстановления ссылки к другой переменной.

Внимание

register_globals переопределяет переменные в глобальной области видимости, имена которых совпадают с переменными сессии. Подробнее смотрите Использование глобальных переменных (Register Globals).

Замечание:

Сессии, использующие файлы (по умолчанию в PHP), блокируют файл сессии сразу при открытии сессии функцией session_start() или косвенно при указании session.auto_start. После блокировки, ни один другой скрипт не может получить доступ к этому же файлу сессии, пока он не будет закрыт или при завершении скрипта или при вызове функции session_write_close().

Скорее всего это станет проблемой для сайтов, которые активно используют AJAX и делают несколько одновременных запросов. Простейшим путем решить эту проблему будет вызов функции session_write_close() сразу же как только все требуемые изменения в сессии будут сделаны, предпочтительно ближе к началу работы скрипта. Также можно использовать другой механизм сессии, который поддерживает конкурентный доступ.


Передача идентификатора сессии

Существуют два метода передачи идентификатора сессии:

  • Cookies
  • Параметр URL

Модуль сессии поддерживает оба метода. Метод с cookies является оптимальным, но он не всегда доступен. Поэтому PHP предоставляет второй способ, который внедряет идентификатор сессии непосредственно в URL.

PHP умеет преобразовывать ссылки прозрачно. session.use_trans_sid включена, в относительные URI будут автоматически добавляться идентификаторы сессии.

Замечание:

Директива arg_separator.output из php.ini позволяет настраивать разделитель аргументов. Для полной совместимости с XHTML следует указывать &amp;.

В качестве альтернативы вы можете использовать константу SID, которая устанавливается при запуске сессии. Если клиентское ПО не хранит подходящую сессионную cookie, SID имеет вид session_name=session_id. В противном случае содержит пустую строку. Таким образом, вы можете в любом случае внедрять его в URL.

Приведенный ниже пример демонстрирует, как зарегистрировать переменную и как правильно построить ссылку на другую страницу, используя SID.

Пример #1 Подсчет количества посещений конкретного пользователя

<?php

session_start();

if (empty($_SESSION['count'])) {
   $_SESSION['count'] = 1;
} else {
   $_SESSION['count']++;
}
?>

<p>
Здравствуйте, посетитель, вы видели эту страницу <?php echo $_SESSION['count']; ?> раз.
</p>

<p>
<a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">Нажмите
сюда</a>, чтобы продолжить.
</p>

Функция htmlspecialchars() может использоваться для вывода SID с целью предотвращения XSS-атак.

Вывод SID способом, показанном выше, не является обязательным, если опция --enable-trans-sid была использована при компиляции PHP.

Замечание:

Подразумевается, что неотносительные URL указывают только на внешние сайты и потому SID к ним не добавляется, так как это увеличивало бы риски в области безопасности, в частности, риск утечки SID другому серверу.


Пользовательские обработчики сессии

Для реализации хранилища данных (или любого иного хранилища) следует использовать session_set_save_handler(), чтобы создать набор пользовательских функций хранилища. Начиная с PHP 5.4.0 вы можете создать обработчики сессий, используя класс SessionHandlerInterface, или расширить внутренние обработчики PHP, унаследовав класс SessionHandler.

Функции обратного вызова, указанные в session_set_save_handler(), являются методами, вызываемыми PHP в течении жизненного цикла сессии: open, read, write и close и для служебных задач: destroy для удаления сессии и gc для периодической сборки мусора.

Следовательно, в PHP всегда необходимы обработчики, сохраняющие сессии. По умолчанию работает внутренний обработчик 'files', сохраняющий сессии в файлы. Пользовательский обработчик может быть установлен, используя функцию session_set_save_handler(). Альтернативные обработчики для сохранения сессии также доступны в расширениях PHP, таких как sqlite, memcache и memcached и могут быть установлены с помощью session.save_handler.

Когда стартует сессия, PHP внутренне вызовет обработчик open с последующим вызовом обработчика read, который должен вернуть закодированную строку - в точности такую, какая передавалась для сохранения. После возвращения обработчиком read закодированной строки, PHP декодирует ее и заполнит получившимся массивом суперглобальный массив $_SESSION.

Когда PHP завершает исполнение скрипта (или когда вызвана функция session_write_close()), PHP внутренне закодирует суперглобальный массив $_SESSION, и передаст эти данные с идентификатором сессии функции обратного вызова write. После того, как отработает функция обратного вызова write, PHP внутренне вызовет обработчик функции обратного вызова close.

Когда сессия специально уничтожена, PHP вызовет обработчик destroy с идентификатором сессии.

PHP будет вызывать обработчик функции обратного вызова gc время от времени, чтобы пометить сессии как истекшие в соответствии с временем жизни сессий. Эта операция удалит все записи из постоянного хранилища, к которым не осуществлялся доступ более, чем интервал времени, заданный в параметре $lifetime.


Отслеживание прогресса загрузки файлов с помощью сессий

PHP может отслеживать прогресс загрузки отдельных файлов при включенной опции 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,
  ),
 )
);

Внимание

Для успешной работы данной функции необходимо отключить буферизацию запроса web-сервером. Иначе PHP увидит загрузку файла только когда загрузка полностью завершится. Серверы, такие как например Nginx, буферизуют большие запросы.


Безопасность сессий

Содержание

  • Базовые принципы управления сессиями
  • INI-настройки безопасности сессий

Внешние ссылки: » Атака "Фиксация сессии"

Работа с HTTP сессиями является основой web безопасности. Все улучшения должны применяться только убедившись в безопасности сессий. Разработчик должен включать и использовать соответствующие настройки соответствующим образом.


Базовые принципы управления сессиями

Безопасность сессии

Модуль сессии не позволяет гарантировать, что хранимая информация доступна только пользователю, который создал сессию. Необходимо принять дополнительные меры по защите конфиденциальности сессии, основываясь на ассоциированных с ней данных.

Оценка важности данных, передаваемых в рамках сессии, важна для выбора мер по защите этой информации -- обычно это приводит к ухудшению удобства для конечного пользователя. Например, если необходимо защитить пользователя от простейших методов социальной инженерии, следует включить session.use_only_cookies. В данном случае со стороны пользовательского ПО обязательна поддержка cookie, иначе механизм сессий не будет работать.

Существует несколько способов утечки существующего идентификатора сессии третьим лицам. Такая утечка позволяет злоумышленнику получить доступ ко всем данным, ассоциированным с конкретным идентификатором сессии. Во-первых, передача идентификатора сессии в URL. При переходе на внешний сайт идентификатор сессии пользователя и адрес ресурса могут попасть в статистику переходов данного сайта. Во-вторых, при более активной атаке возможно прослушивание сетевого трафика злоумышленником. Если канал передачи данных не зашифрован, идентификаторы сессии будут переданы в виде простого текста. В таком случае решением является обязательное использование SSL пользователями при доступе к сайту. Для этих целей следует применять HSTS.

Замечание: Даже HTTP иногда не может защитить конфиденциальные данные, например от атак типа CRIME, BEAST. Многие сети используют HTTPS MITM прокси для аудита. Атакующие также могут настроить такие прокси.

Неадаптивное управление сессиями

В настоящее время, в PHP используется адаптивное управление сессиями. Адаптивное управление сессиями несет дополнительные риски.

С версии PHP 5.5.2 доступна опция session.use_strict_mode. При ее включении и при условии, что модуль сохранения сессий ее поддерживает, неинициализированный сессионный ID отвергается и создается новый. Это защищает от атак, которые принуждают пользователя использовать заранее извесный ID. Ататкующий может размещать ссылки или отправлять письма, которые содержат сессионный ID. Например http://example.com/page.php?PHPSESSID=123456789 . Если опция session.use_trans_sid включена, то жертва откроет сессию с этим идентификатором. Опция session.use_strict_mode уменьшает этот риск.

Внимание

Определенный пользователем обработчик сохранения также может поддерживать строгий сессионный режим, путем реализации функции/метода проверки корректности идентификатора сессии. Все определенные пользователем обработчики сохранения должны его реализовывать.

Cookie с сессионным ID должна устанавливаться с указанием domain, path, httponly и secure. Их приоритетность определяется браузерами. Опираясь на эту приоритетность, атакующий может может установить сессионный ID, который будет использоваться бесконечно. Применение session.use_only_cookies не решает эту проблему. session.use_strict_mode уменьшает риск. session.use_strict_mode=On, не допускает использование неинициализированных сессионных ID. Сессионный модуль создает новый ID каждый раз, как получает неизвестный ID.

Замечание: Даже при уменьшении риска с помощью session.use_strict_mode атакующий все еще может заставить пользователя использовать уже инициализированную сессию, созданную атакующим. Например JavaScript инъекция. Эта атака может быть смягчена, если следовать рекомендациям этого руководства. Если вы следуете этому руководству, вы должны разрешить session.use_strict_mode, использовать управление сессиями на базе временных меток и перезадавать идентификатор сессии с поможью session_regenerate_id(), как рекомендуется. Если вы все это сделаете, идентификатор сессии атакующего негодяя в итоге будет удален. Если произошел доступ к истекшей сессией, вы должны сохранить все данные активных сессий пользователя. Это позволит для дальнейшего расследования причин произошедшего. После этого, принудительно завершите все активные сессии пользователя и затребуйте у пользователя переавторизации. Это позволит предотвратить атаку с использованием краденной сессии.

Внимание

Доступ к истекшей сессии не всегда означает атаку. Нестабильное сетевое соединение и/или немедленное удаление активной сессии может повлечь за собой подобное поведение.

С PHP 7.1.0, добавлена функция session_create_id(). Эта функция может быть полезна для создания идентификатора сессии с использованием идентификатора пользователя в качестве префикса, для достижения большей управляемости. При ее использовании крайне важно разрешать session.use_strict_mode. Иначе, недобросовестные пользователи смогут устанавливать поддельные идентификаторы сессий для других пользователей.

Замечание: В версиях PHP до 7.1.0, необходимо использовать CSPRNG, т.е. /dev/urandom, или random_bytes() и функции хэширования для генерации идентификаторов сессий. session_create_id() имеет встроенный функционал обнаружения коллизий и генерирует идентификатор основываясь на INI-настройках. Использование session_create_id() является предпочтительной практикой.

Пересоздание идентификатора сессии

использование session.use_strict_mode - это хорошо, но недостаточно. Разработчик должен использовать session_regenerate_id() для обеспечения безопасности сессий.

Пересоздание идентификаторов сессий сильно уменьшает риск кражи сессии, соответственно надо на переодической основе запускать session_regenerate_id(). Например вызывать ее каждые 15 минут для особо секретных сессий. Даже если сессию украдут, она достаточно скоро станет истекшей и попытка ее использовать приведет к ошибке истекшей сессии.

Идентификатор сессии должен пересоздаваться когда пользователь вошел в систему. Функция session_regenerate_id() должна вызываться до записи авторизационной информации в $_SESSION. (В PHP 7.0.0, session_regenerate_id() сохраняет данные текущей сессии автоматически). Убедитесь, что только текущая сессия отмечена как авторизованная.

Разработчики НЕ ДОЛЖНЫ полагаться на механизм проскочки идентификатора сесии с помощью session.gc_maxlifetime. Атакующие могут переодически получать доступ к сессии для предотвращения ее устаревания и сохранения флага успешной авторизации.

Вместо этого, вы должны самостоятельно реализовать управление данными сессии базируясь на временной метке.

Внимание

Не смотря на то, что менеджер сессий может прозрачно управлять временными метками, этот функционал не реализован. Данные старых сессий сохраняются до момента запуска сборщика мусора. В то же время, разработчики должны быть уверены, что данные истекших сессий удалены. Однако НЕЛЬЗЯ удалять данные активных сессий. Например, никогда не не вызывайте session_regenerate_id(true); и session_destroy() для активных сессий. Это может показаться противоречивым, но это обязательное требование.

session_regenerate_id(), по умолчанию, не удаляет старые сессии. Старые авторизованные сессии могут быть доступны для использования. Разработчики должны пресечь любую возможность использования старых сессий кем либо, должны запретить доступ к истекшим сессиям самостоятельно, используя временные метки.

Внимание

Немедленное удаление активных сессий может повлечь нежелательные побочные эффекты. Сессия может прерваться из-за нестабильности сети или конкурентного доступа к сайту/приложению.

Возможный недобросовестный доступ будет невозможно отследить и проанализировать, если данные сессий будут немедленно удаляться.

Вместо немедленного удаления старых сессий, вы должны сохранять их непродолжительное время, например установив специальный флаг и время окончательного истечения сессии в $_SESSION, запретив кому либо обращаться к этим данным.

Вы не должны запрещать доступ к старым сессиям сразу же после вызова session_regenerate_id(). Необходимо выждать несколько секунд для стабильных сетевых соединений и несколько минут для нестабильных, например для WiFi или мобильного интернета.

Если пользователь пытается получить доступ к истекшей сессии, вы не должны его предоставлять. В этом случае рекомендуется удалять статус "авторизован" со всех активных сессий пользователя, поскольку это очень похоже на атаку.

session.use_only_cookies и правильное использование session_regenerate_id() могут привести к персональной DoS. Если такое происходит, то вы можете попросить пользователя удалить cookie и предупредить его о возможных проблемах с безопасностью. Атакующий может устанавливать вредные cookie через уязвимость в web-приложении (т.е. JavaScript инъекция), уязвимость в браузерном плагине и т.д.

Внимание

Не недооценивайте риск DoS. use_strict_mode=On обязателен для общей безопасности идентификаторов сессий! Все сайты должны использовать use_strict_mode.

DoS (отказ в обслуживании) может приключиться только если аккаунт находится под атакой взломщиков. Наиболее частая предпосылка для него - JavaScript инъекция.

Удаление данных сессии

Данные истекших сессий должны быть недоступны и удалены. Существующий механизм управления сессиями делает это не очень хорошо.

Данные истекших сессий надо удалять так быстро, как только возможно. С другой стороны, данные активных сессий НЕ ДОЛЖНЫ удаляться сразу же. Для обеспечения этих противоречивых требований, вы ДОЛЖНЫ самостоятельно реализовать механизм контроля за истекшими сессиями на базе временных меток.

Устанавливайте и управляйтк временными метками жизни сессии через $_SESSION. Запрещайте доступ к данным истекших сессий. Если обнаружена попытка доступа к данным устаревшей сессии, снимайте статус авторизации со всех активных сессий пользователя и вынуждайте его переавторизоваться. Доступ к данным истекшей сессии может означать атаку. Для обеспечения такого поведения вы должны отслеживать все активные сессии пользователя.

Замечание: Доступ к истекшей сессии может также произойти из-за нестабильного сетевого доступа и/или конкурентного доступа к приложению/веб-сайту. Сервер может попытаться установить новый идентификатор сессии через cookie, но пакет "Set-Cookie" может не дойти до клиента из-за плохой связи. Одно соединение может вызвать пересоздание идентификатора посредством session_regenerate_id(), а другое, в то же время, может не получить нового идентификатора. Следовательно, вы должны запретить доступ к истекшим сессиям чуть-чуть позже. Т.е. управление сессиями на базе временных меток является обязательным.

В кратце, не уничтожайте данные сессии ни с помощью session_regenerate_id(), ни session_destroy(), а используйте механизм доступа к сессии на базе временных меток. Пусть session_gc() сам удаляет старые сессии из хранилища.

Сессии и блокировки

По умолчанию, данные сессии заблокированы, что бы избежать состояния "гонки". Блокировки обязательны для сохранения консистентности данных сессии между запросами.

Однако, блокировки могут быть использованы атакующим для организации DoS атаки. Для смягчения риска DoS с использованием блокировки сессий, минимизируйте их. Используйте блокировку "read only", когда сессию не нужно обновлять. Используйте опцию 'read_and_close' с session_start(). session_start(['read_and_close'=>1]); используйте session_commit() сразу, как только вы закончили обновлять $_SESSION.

Текущий механизм управления сессиями не не следит за изменениями $_SESSION пока сессия неактивна. Это ваша зона ответственности, следить за тем, что бы подобного не случалось.

Активные сессии

Разработчики должны следить за активными сессиями каждого пользователя и оповещать его, сколько есть активных сессий, с каких IP (и где географически), как долго они активны и т.д. PHP не сделает этого за вас.

Есть несколько путей реализации. Вы можете хранить всю нужную информацию в специальной базе данных. Так что когда сессия будет удалена сборщиком мусора, вы должны это отслеживать и соответственно обновлять свою базу данных.

Самый простой способ - использовать, в качестве префикса идентификатора сессии, идентификатор пользователя и хранить всю требуемую информацию в $_SESSION. Многие базы данных умеют достаточно быстро выбирать строки по префиксу. Вы можете использовать session_regenerate_id() и session_create_id() для этого.

Внимание

Никогда в качестве префикса не используйте конфиденциальные данные. Если идентификатор пользователя конфиденциален, рассмотрите возможность использовать функцию hash_hmac().

Внимание

Для подобной настройки требуется разрешение session.use_strict_mode. Убедитесь, что эта опция разрешена, иначе база данных активных сессий может быть скомпрометирована.

Управление сессиями на базе временных меток является обязательным для определения устаревших сессий. Если обнаружена попытка доступа к устаревшей сессии, необходимо сбросить влаги авторизации для всех активных сессий пользователя.

Сессии и автоматический вход

Разработчики НЕ ДОЛЖЕЫ использовать долгоживущие сессии для реализации автоматического входа в систему, потому что это резко повышает вероятность кражи сессии. Автоматический вход в систему должен реализовываться разработчиком самостоятельно.

Устанавливайте безопасные хэшированные одноразовые ключи в качестве ключей автологина с помощью setcookie(). Используйте безопасное хэширование, посильнее чем SHA-2. Т.е. SHA-256 или больше со случайными данными из random_bytes() или /dev/urandom.

Если пользователь не авторизован, проверьте, корректен ли одноразовый ключ автологина. Если ключ корректен, авторизуйте пользователя и установите ему новый одноразовый ключ. Ключ атологина обязательно должен быть одноразовым. Всегда создавайте новый ключ.

Ключ автологина - это очень долгоживущий ключ авторизации. Его надо защищать по максимуму. Используйте path/httponly/secure cookie для его защиты. Никогда не передавайте ключ автологина кроме случаем, когда это необходимо.

Разработчик должен реализовать функционал, который отключает автоматический вход в систему и удаляет ненужные "cookie", установленные для его реализации.

CSRF(Межсайтовая подделка запроса)

Сессии и авторизация не защищают от атак типа CSRF. Разработчики должны самостоятельно реализовывать защиту.

output_add_rewrite_var() может быть использована для защиты от CSRF. Читайте документация для подробностей.

Замечание: До PHP 7.2.0, использовался один и тот же буфер вывода и INI-настройки для "trans sid". Так что использование output_add_rewrite_var() с PHP более ранних версий не рекомендуется.

Многие фреймворки поддерживают защиту от 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".

    Если session.use_only_cookies=Off, модуль сессии будет использовать идентификатор, установленный через GET/POST/URL, если "cookie" не была выставлена заранее.

  • session.use_strict_mode=On

    В любом случае, крайне рекомендуется разрешать session.use_strict_mode. По умолчанию не разрешено.

    Это не позволит сессионному модулю использовать неинициализированные идентификаторы сессий. Другими словами, сессионный модуль будет принимать только корректные идентификаторы, сгенерированные им же и будет игнорировать идентификаторы созданные на стороне пользователя.

    Из-за особенностей спецификации cookie, атакующий может сделать cookie с идентификатором сессии неудаляемой с помощью локальное базы cookie или JavaScript инъекции. session.use_strict_mode может не дать атакующему использовать этот идентификатор.

    Замечание:

    Атакующие могут инициализировать идентификатор сессии на своем устройстве и выставить его жертве. Они должны будут поддерживать сессию в активном состоянии, чтобы вершить свои темные дела. Атакующим понадобится совершить дополнительные действия для проведения атаки по этому сценарию. Соответственно, session.use_strict_mode может усложнить им задачу.

  • session.cookie_httponly=On

    Запрещает доступ к сессионной cookie для JavaScript. Эта опция предотвращает кражу cookie с помощью JavaScript инъекции.

    Можно использовать сессионный ID как защитный ключ CSRF, но не рекомендуется. Например, HTML может быть сохранен и отправлен другому пользователю. Разработчик не должен записывать сессионный ID внутри web-страницы для повышения безопасности. Почти все приложения должны использовать аттрибут httponly для сессионной cookie.

    Замечание:

    Защитный ключ CSRF должен переодически обновляться, как и идентификатор сессии.

  • session.cookie_secure=On

    Позволяет получать доступ к cookie сессионной ID только при использовании протокола HTTPS. Если ваш сайт использует только протокол HTTPS, вам необходимо включить эту опцию.

    Для таких сайтов нужно также рассматривать использование HSTS.

  • session.gc_maxlifetime=[choose smallest possible]

    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=[limitted tags]

    (PHP 7.1.0 >=) Вы не должны перезаписывать те HTML тэги, которые вам не нужны. Значения по умолчанию должно быть достаточно в большинстве случаев. Старые версии PHP для этого используют url_rewriter.tags.

  • session.trans_sid_hosts=[limitted hosts]

    (PHP 7.1.0 >=) Эта настройка определяет "белый список" хостов, для которых разрешено прозрачное управление идентификаторами сессий. Никогда не добавляйте недоверенные хосты. Если данная опция пуста, то будет разрешенео только для $_SERVER['HTTP_HOST'].

  • session.referer_check=[your originating URL]

    Если session.use_trans_sid включен, то рекомендуется использовать эту опцию, если это возможно. Это уменьшает риск для инъекции сессионного ID. Если ваш сайт находится по адресу http://example.com/, то установите этой опции значение http://example.com/. Обратите внимание, что при использовании HTTPS, браузер не отправляет referrer заголовок. Таким образом, этот параметр не является достаточно надежным показателем безопасности.

  • session.cache_limiter=nocache

    Убедитесь, что HTTP контент не закэширован для аутотентификационной сессии. Допускается кешировать только неконфиденциальный контент. Иначе содержимым могут воспользоваться. Можно использовать значение "private", если HTTP контент не содержит чувствительные к безопасности данные. Учтите, что "private" может оставлять конфиденциальные данные в общем кэше клиентов. Значение "public" можно использовать только, если HTTP контент вообще не содержит никаких конфиденциальных данных.

  • session.sid_length="48"

    (PHP 7.1.0 >=) Чем длинее идентификатор сессии, тем он надежнее. Рекомендуемая длина - 32 символа и больше. В любом случае, не менее 26 символов требуется для session.sid_bits_per_character="5".

  • session.sid_bits_per_character="6"

    (PHP 7.1.0 >=) Чем больше бит используется для символов идентификатора сессии, тем более надежные идентификаторы будут созданы, даже если не увеличивать их длину.

  • session.hash_function="sha256"

    (PHP 7.1.0 <) Более сложная хэш функция будет создавать более сложный сессионный ID. Хотя хэш коллизии почти не происходят и с MD5 хэшом, тем не менее разработчику лучше использовать функции SHA-2 или новее. Разработчики также могут использовать сложные функции sha384 и sha512. Удостовертесь, что вы используете достаточно энтропии для этих функций.


Функции для работы с сессиями

Содержание

  • session_abort — Отменяет измененния сделанные в текущей сессии и завершает ее
  • session_cache_expire — Return current cache expire
  • сессия_кэш_ограничитель — Получить и/или установить текущий режим кэширования
  • session_commit — Псевдоним session_write_close
  • session_create_id — Create new session id
  • session_decode — Decodes session data from a session encoded string
  • session_destroy — Destroys all data registered to a session
  • session_encode — Кодирует данные текущей сессии в формате строки сессии
  • session_gc — Perform session data garbage collection
  • session_get_cookie_params — Возвращает параметры cookie сессии
  • session_id — Get and/or set the current session id
  • session_is_registered — Определяет, зарегистрирована ли глобальная переменная в сессии
  • session_module_name — Возвращает и/или устанавливает модуль текущей сессии
  • session_name — Получить или установить имя текущей сессии
  • session_regenerate_id — Update the current session id with a newly generated one
  • session_register_shutdown — Функция завершения сессии
  • session_register — Регистрация одной или нескольких глобальных переменных текущей сессии
  • session_reset — Реинициализирует сессию с оригинальными значениями
  • session_save_path — Get and/or set the current session save path
  • session_set_cookie_params — Set the session cookie parameters
  • session_set_save_handler — Sets user-level session storage functions
  • session_start — Стартует новую сессию, либо возобновляет существующую
  • session_status — Возвращает состояние текущей сессии
  • session_unregister — Unregister a global variable from the current session
  • session_unset — Удалить все переменные сессии
  • session_write_close — Write session data and end session


Отменяет измененния сделанные в текущей сессии и завершает ее

  • « Функции для работы с сессиями
  • session_cache_expire »
  • PHP Manual
  • Функции для работы с сессиями
  • Отменяет измененния сделанные в текущей сессии и завершает ее

session_abort

(PHP 5 >= 5.6.0, PHP 7)

session_abort — Отменяет измененния сделанные в текущей сессии и завершает ее

Описание

void session_abort ( void )

session_abort() завершает сессию без сохранения данных. Таким образом исходные значения сессии сохраняются.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • $_SESSION
  • Директива конфигурации session.auto_start
  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session_reset() - Реинициализирует сессию с оригинальными значениями
  • session_commit() - Псевдоним session_write_close


Return current cache expire

  • « session_abort
  • сессия_кэш_ограничитель »
  • PHP Manual
  • Функции для работы с сессиями
  • Return current cache expire

session_cache_expire

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

session_cache_expire — Return current cache expire

Описание

int session_cache_expire ([ string $new_cache_expire ] )

session_cache_expire() returns the current setting of session.cache_expire.

The cache expire is reset to the default value of 180 stored in session.cache_expire at request startup time. Thus, you need to call session_cache_expire() for every request (and before session_start() is called).

Список параметров

new_cache_expire

If new_cache_expire is given, the current cache expire is replaced with new_cache_expire.

Замечание: Setting new_cache_expire is of value only, if session.cache_limiter is set to a value different from nocache.

Возвращаемые значения

Returns the current setting of session.cache_expire. The value returned should be read in minutes, defaults to 180.

Примеры

Пример #1 session_cache_expire() example

<?php

/* set the cache limiter to 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

/* set the cache expire to 30 minutes */
session_cache_expire(30);
$cache_expire = session_cache_expire();

/* start the session */

session_start();

echo "The cache limiter is now set to $cache_limiter<br />";
echo "The cached session pages expire after $cache_expire minutes";
?>

Смотрите также

  • session.cache_expire
  • session.cache_limiter
  • session_cache_limiter()


Получить и/или установить текущий режим кэширования

  • « session_cache_expire
  • session_commit »
  • PHP Manual
  • Функции для работы с сессиями
  • Получить и/или установить текущий режим кэширования

сессия_кэш_ограничитель

(Информация о версии неизвестна, возможно, только в SVN)

сессия_кэш_ограничитель — Получить и/или установить текущий режим кэширования

Описание

string session_cache_limiter ([ string $cache_limiter ] )

session_cache_limiter() возвращает имя текущего режима кэширования .

Режим кэширования определяет, какие HTTP заголовки управления кешем посылать клиенту. Эти заголовки определяют, какими правилами кеширования контента должны руководствоваться клиент и промежуточные прокси. Установка ограничителя в значение nocache запрещает любое кеширование. Значение public разрешает кеширование как на стороне клиента, так и на прокси-серверах. private запрещает кэширование прокси-серверам, но разрешает клиенту.

Если в режиме private послать заголовок Expire, то это может привести некоторые браузеры, включая Mozilla, в замешательство. Вы можете обойти эту проблему, используя режим private_no_expire. В этом режиме заголовок Expire никогда не будет послан.

Установка режима кэширования в '' отключает автоматическую отправку кэш-заголовков.

Во время начала запроса, режим кеширования сбрасывается до значения по умолчанию, хранящемуся в session.cache_limiter. Таким образом, вам необходимо вызывать session_cache_limiter() для каждого запроса (перед тем, как вызвана функция session_start()).

Список параметров

cache_limiter

Если cache_limiter указан, имя текущего режима кеширования изменяется на новое значение.

Возможные значения
Значение Посылаемый заголовок
public
Expires: (когда-нибудь в будущем, в зависимости от session.cache_expire)
Cache-Control: public, max-age=(когда-нибудь в будущем, в зависимости от session.cache_expire)
Last-Modified: (временная метка последнего сохранения сессии)
private_no_expire
Cache-Control: private, max-age=(session.cache_expire в будущем), pre-check=(session.cache_expire в будущем)
Last-Modified: (временная метка последнего сохранения сессии)
private
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private, max-age=(session.cache_expire в будущем), pre-check=(session.cache_expire в будущем)
Last-Modified: (временная метка последнего сохранения сессии)
nocache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

Возвращаемые значения

Возвращает имя текущего режима кеширования.

Примеры

Пример #1 Пример использованияsession_cache_limiter()

<?php

/* set the cache limiter to 'private' */

session_cache_limiter('private');
$cache_limiter = session_cache_limiter();

echo "Режим кеширования установлен в $cache_limiter<br />";
?>

Смотрите также

  • session.cache_limiter


Псевдоним session_write_close

  • « сессия_кэш_ограничитель
  • session_create_id »
  • PHP Manual
  • Функции для работы с сессиями
  • Псевдоним session_write_close

session_commit

(PHP 4 >= 4.4.0, PHP 5, PHP 7)

session_commit — Псевдоним session_write_close()

Описание

Эта функция является псевдонимом: session_write_close().


Create new session id

  • « session_commit
  • session_decode »
  • PHP Manual
  • Функции для работы с сессиями
  • Create new session id

session_create_id

(PHP 7 >= 7.1.0)

session_create_id — Create new session id

Описание

string session_create_id ([ string $prefix ] )

session_create_id() is used to create new session id for the current session. It returns collision free session id.

If session is not active, collision check is omitted.

Session ID is created according to php.ini settings.

It is important to use the same user ID of your web server for GC task script. Otherwise, you may have permission problems especially with files save handler.

Список параметров

prefix

If prefix is specified, new session id is prefixed by prefix. Not all characters are allowed within the session id. Characters in the range a-z A-Z 0-9 , (comma) and - (minus) are allowed.

Возвращаемые значения

session_create_id() returns new collision free session id for the current session. If it is used without active session, it omits collision check.

Примеры

Пример #1 session_create_id() example with session_regenerate_id()

<?php
// My session start function support timestamp management
function my_session_start() {
    session_start();
    // Do not allow to use too old session ID
    if (!empty($_SESSION['deleted_time']) && $_SESSION['deleted_time'] < time() - 180) {
        session_destroy();
        session_start();
    }
}

// My session regenerate id function
function my_session_regenerate_id() {
    // Call session_create_id() while session is active to
    // make sure collision free.
    if (session_status() != PHP_SESSION_ACTIVE) {
        session_start();
    }
    // WARNING: Never use confidential strings for prefix!
    $newid = session_create_id('myprefix-');
    // Set deleted timestamp. Session data must not be deleted immediately for reasons.
    $_SESSION['deleted_time'] = time();
    // Finish session
    session_commit();
    // Make sure to accept user defined session ID
    // NOTE: You must enable use_strict_mode for normal operations.
    ini_set('session.use_strict_mode', 0);
    // Set new custome session ID
    session_id($newid);
    // Start with custome session ID
    session_start();
}

// Make sure use_strict_mode is enabled.
// use_strict_mode is mandatory for security reasons.
ini_set('session.use_strict_mode', 1);
my_session_start();

// Session ID must be regenerated when
//  - User logged in
//  - User logged out
//  - Certain period has passed
my_session_regenerate_id();

// Write useful codes
?>

Смотрите также

  • session_regenerate_id() - Update the current session id with a newly generated one
  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session.use_strict_mode


Decodes session data from a session encoded string

  • « session_create_id
  • session_destroy »
  • PHP Manual
  • Функции для работы с сессиями
  • Decodes session data from a session encoded string

session_decode

(PHP 4, PHP 5, PHP 7)

session_decode — Decodes session data from a session encoded string

Описание

bool session_decode ( string $data )

session_decode() decodes the serialized session data provided in $data, and populates the $_SESSION superglobal with the result.

By default, the unserialization method used is internal to PHP, and is not the same as unserialize(). The serialization method can be set using session.serialize_handler.

Список параметров

data

The encoded data to be stored.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • session_encode() - Кодирует данные текущей сессии в формате строки сессии
  • session.serialize_handler


Destroys all data registered to a session

  • « session_decode
  • session_encode »
  • PHP Manual
  • Функции для работы с сессиями
  • Destroys all data registered to a session

session_destroy

(PHP 4, PHP 5, PHP 7)

session_destroy — Destroys all data registered to a session

Описание

bool session_destroy ( void )

session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie. To use the session variables again, session_start() has to be called.

Замечание: You do not have to call session_destroy() from usual code. Cleanup $_SESSION array rather than destroying session data.

In order to kill the session altogether, the session ID must also be unset. If a cookie is used to propagate the session ID (default behavior), then the session cookie must be deleted. setcookie() may be used for that.

When session.use_strict_mode is enabled. You do not have to remove obsolete session ID cookie because session module will not accept session ID cookie when there is no data associated to the session ID and set new session ID cookie. Enabling session.use_strict_mode is recommended for all sites.

Внимание

Immediate session deletion may cause unwanted results. When there is concurrent requests, other connections may see sudden session data loss. e.g. Requests from JavaScript and/or requests from URL links.

Although current session module does not accept empty session ID cookie, but immediate session deletion may result in empty session ID cookie due to client(browser) side race condition. This will result that the client creates many session ID needlessly.

To avoid these, you must set deletion time-stamp to $_SESSION and reject access while later. Or make sure your application does not have concurrent requests. This applies to session_regenerate_id() also.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Destroying a session with $_SESSION

<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();

// Unset all of the session variables.
$_SESSION = array();

// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

// Finally, destroy the session.
session_destroy();
?>

Примечания

Замечание:

Only use session_unset() for older deprecated code that does not use $_SESSION.

Смотрите также

  • session.use_strict_mode
  • session_reset() - Реинициализирует сессию с оригинальными значениями
  • session_regenerate_id() - Update the current session id with a newly generated one
  • unset() - Удаляет переменную
  • setcookie() - Посылает cookie


Кодирует данные текущей сессии в формате строки сессии

  • « session_destroy
  • session_gc »
  • PHP Manual
  • Функции для работы с сессиями
  • Кодирует данные текущей сессии в формате строки сессии

session_encode

(PHP 4, PHP 5, PHP 7)

session_encode — Кодирует данные текущей сессии в формате строки сессии

Описание

string session_encode ( void )

session_encode() возвращает сериализованную строку, содержащую данные текущей сессии, хранящиеся в суперглобальном массиве $ _SESSION.

По умолчанию используется внутренний метод сериализации PHP, и результат будет отличаться от формата, возвращаемого функцией serialize(). Метод сериализации может быть установлен с помощью session.serialize_handler.

Возвращаемые значения

Возвращает сериализованные данные текущей сессии.

Примечания

Внимание

Необходимо вызвать функцию session_start() перед использованием session_decode().

Смотрите также

  • session_decode() - Decodes session data from a session encoded string
  • session.serialize_handler


Perform session data garbage collection

  • « session_encode
  • session_get_cookie_params »
  • PHP Manual
  • Функции для работы с сессиями
  • Perform session data garbage collection

session_gc

(Информация о версии неизвестна, возможно, только в SVN)

session_gc — Perform session data garbage collection

Описание

int session_gc ( void )

session_gc() is used to perform session data GC(garbage collection). PHP does probability based session GC by default.

Probability based GC works somewhat but it has few problems. 1) Low traffic site's session data may not be deleted within preferred duration. 2) High traffic site's may have too frequent GC. 3) GC is performed on the user's request and the user will experience GC delay.

Therefore, it is recommended to execute GC periodically for production systems. e.g. Use "cron" for UNIX like systems. Make sure to disable probability based GC by setting session.gc_probability to 0.

Возвращаемые значения

session_gc() returns number of deleted session data for success, FALSE for failure.

Old save handlers do not return number of deleted session data, but only success/failure flag. If this is the case, number of deleted session data became 1 regardless of actually deleted data.

Примеры

Пример #1 session_gc() example for task managers like cron

<?php
// Note: This script should be executed by the same user of web server process.

// Need active session to initialize session data storage access.
session_start();

// Executes GC immediately
session_gc();

// Clean up session ID created by session_gc()
session_destroy();
?>

Пример #2 session_gc() example for user accessible script

<?php
// Note: session_gc() is recommended to be used by task manager script, but
// it may be used as follows.

// Used for last GC time check
$gc_time = '/tmp/php_session_last_gc';
$gc_period = 1800;

session_start();
// Execute GC only when GC period elapsed.
// i.e. Calling session_gc() every request is waste of resources.
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() - Destroys all data registered to a session
  • session.gc_probability


Возвращает параметры cookie сессии

  • « session_gc
  • session_id »
  • PHP Manual
  • Функции для работы с сессиями
  • Возвращает параметры cookie сессии

session_get_cookie_params

(PHP 4, PHP 5, PHP 7)

session_get_cookie_params — Возвращает параметры cookie сессии

Описание

array session_get_cookie_params ( void )

Возвращает параметры cookie сессии.

Возвращаемые значения

Возвращает массив с информацией о cookie текущей сессии, который содержит следующие элементы:

  • "lifetime" - Время жизни cookie в секундах.
  • "path" - Путь, где размещена хранимая информация.
  • "domain" - Домен cookie.
  • "secure" - cookie должны передаваться только через безопасные соединения.
  • "httponly" - cookie могут быть доступны только по протоколу HTTP.

Список изменений

Версия | Описание
5.2.0 | Добавлен элемент "httponly" в возвращаемый массив.

Смотрите также

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session_set_cookie_params() - Set the session cookie parameters


Get and/or set the current session id

  • « session_get_cookie_params
  • session_is_registered »
  • PHP Manual
  • Функции для работы с сессиями
  • Get and/or set the current session id

session_id

(PHP 4, PHP 5, PHP 7)

session_id — Get and/or set the current session id

Описание

string session_id ([ string $id ] )

session_id() is used to get or set the session id for the current session.

The constant SID can also be used to retrieve the current name and session id as a string suitable for adding to URLs. See also Session handling.

Список параметров

id

If id is specified, it will replace the current session id. session_id() needs to be called before session_start() for that purpose. Depending on the session handler, not all characters are allowed within the session id. For example, the file session handler only allows characters in the range a-z A-Z 0-9 , (comma) and - (minus)!

Замечание: When using session cookies, specifying an id for session_id() will always send a new cookie when session_start() is called, regardless if the current session id is identical to the one being set.

Возвращаемые значения

session_id() returns the session id for the current session or the empty string ("") if there is no current session (no current session id exists).

Смотрите также

  • session_regenerate_id() - Update the current session id with a newly generated one
  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session_set_save_handler() - Sets user-level session storage functions
  • session.save_handler


Определяет, зарегистрирована ли глобальная переменная в сессии

  • « session_id
  • session_module_name »
  • PHP Manual
  • Функции для работы с сессиями
  • Определяет, зарегистрирована ли глобальная переменная в сессии

session_is_registered

(PHP 4, PHP 5 < 5.4.0)

session_is_registered — Определяет, зарегистрирована ли глобальная переменная в сессии

Описание

bool session_is_registered ( string $name )

Определяет, зарегистрирована ли глобальная переменная в сессии.

Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Список параметров

name

Имя переменной.

Возвращаемые значения

session_is_registered() возвращает TRUE если глобальная переменная с именем name зарегистрирована в текущей сессии, либо FALSE в противном случае.

Примечания

Замечание:

Если применяется $_SESSION, следует использовать isset() для проверки регистрации переменных в $_SESSION.

Предостережение

Если используется $_SESSION
(или $HTTP_SESSION_VARS), не следует использовать
session_register(),
session_is_registered() и
session_unregister().


Возвращает и/или устанавливает модуль текущей сессии

  • « session_is_registered
  • session_name »
  • PHP Manual
  • Функции для работы с сессиями
  • Возвращает и/или устанавливает модуль текущей сессии

session_module_name

(PHP 4, PHP 5, PHP 7)

session_module_name — Возвращает и/или устанавливает модуль текущей сессии

Описание

string session_module_name ([ string $module ] )

session_module_name() возвращает название текущего модуля сессии.

Список параметров

module

Если указан параметр module, данный модуль будет использован вместо текущего.

Возвращаемые значения

Возвращает название текущего модуля сессии.


Получить или установить имя текущей сессии

  • « session_module_name
  • session_regenerate_id »
  • PHP Manual
  • Функции для работы с сессиями
  • Получить или установить имя текущей сессии

session_name

(PHP 4, PHP 5, PHP 7)

session_name — Получить или установить имя текущей сессии

Описание

string session_name ([ string $name ] )

session_name() возвращает имя текущей сессии. Если задан параметр name, session_name() обновит имя сессии и вернет старое имя сессии.

Имя сессии сбрасываются на значение по умолчанию, хранящееся в session.name, вовремя запуска запроса. Таким образом, вам нужно вызывать session_name() для каждого запроса session_start() или session_register()

Список параметров

name

Имя сессии ссылается на имя сессии, которое используется в cookie и URL (например, PHPSESSID ). Оно должно содержать только буквенно-цифровые символы, и должен быть коротким и понятными (например, для пользователей с включенным предупреждением cookie). Если задан параметр name, имя текущей сессии поменяется на него.

Внимание

Имя сессии не может состоять только из цифр, по крайней мере, одна буква должна присутствовать. В противном случае каждый раз будет генерироваться новый идентификатор.

Возвращаемые значения

Возвращает имя текущей сессии. Если задан параметр name, имя текущей сессии поменяется и будет возвращено старое.

Примеры

Пример #1 Пример использования session_name()

<?php

/* устанавливает имя сессии равным WebsiteID */

$previous_name = session_name("WebsiteID");

echo "Предыдущее имя сессии: $previous_name<br />";
?>

Смотрите также

  • Параметр конфигурации session.name


Update the current session id with a newly generated one

  • « session_name
  • session_register_shutdown »
  • PHP Manual
  • Функции для работы с сессиями
  • Update the current session id with a newly generated one

session_regenerate_id

(PHP 4 >= 4.3.2, PHP 5, PHP 7)

session_regenerate_id — Update the current session id with a newly generated one

Описание

bool session_regenerate_id ([ bool $delete_old_session = false ] )

session_regenerate_id() will replace the current session id with a new one, and keep the current session information.

When session.use_trans_sid is enabled, output must be started after session_regenerate_id() call. Otherwise, old session ID is used.

Внимание

Current session_regenerate_id does not handle unstable network well. e.g. Mobile and WiFi network. Therefore, you may experience lost session by calling session_regenerate_id.

You should not destroy old session data immediately, but should use destroy time-stamp and control access to old session ID. Otherwise, concurrent access to page may result in inconsistent state, or you may have lost session, or it may cause client(browser) side race condition and may create many session ID needlessly. Immediate session data deletion disables session hijack attack detection and prevention also.

Список параметров

delete_old_session

Whether to delete the old associated session file or not. You should not delete old session if you need to avoid races caused by deletion or detect/avoid session hijack attacks.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
7.0.0 | session_regenerate_id() saves old session data before closing.
4.3.3 | Since then, if session cookies are enabled, use of session_regenerate_id() will also submit a new session cookie with the new session id.
5.1.0 | Added the delete_old_session parameter.

Примеры

Пример #1 A session_regenerate_id() example

<?php
// NOTE: This code is not fully working code, but an example!

session_start();

// Check destroyed time-stamp
if (isset($_SESSION['destroyed'])
    && $_SESSION['destroyed'] < time() - 300) {
    // Should not happen usually. This could be attack or due to unstable network.
    // Remove all authentication status of this users session.
    remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
    throw(new DestroyedSessionAccessException);
}

$old_sessionid = session_id();

// Set destroyed timestamp
$_SESSION['destroyed'] = time(); // Since PHP 7.0.0 and up, session_regenerate_id() saves old session data

// Simply calling session_regenerate_id() may result in lost session, etc.
// See next example.
session_regenerate_id();

// New session does not need destroyed timestamp
unset($_SESSION['destroyed']);

$new_sessionid = session_id();

echo "Old Session: $old_sessionid<br />";
echo "New Session: $new_sessionid<br />";

print_r($_SESSION);
?>

Current session module does not handle unstable network well. You should manage session ID to avoid lost session by session_regenerate_id.

Пример #2 Avoiding lost session by session_regenerate_id()

<?php
// NOTE: This code is not fully working code, but an example!
// my_session_start() and my_session_regenerate_id() avoid lost sessions by
// unstable network. In addition, this code may prevent exploiting stolen
// session by attackers.

function my_session_start() {
    session_start();
    if (isset($_SESSION['destroyed'])) {
       if ($_SESSION['destroyed'] < time()-300) {
           // Should not happen usually. This could be attack or due to unstable network.
           // Remove all authentication status of this users session.
           remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
           throw(new DestroyedSessionAccessException);
       }
       if (isset($_SESSION['new_session_id'])) {
           // Not fully expired yet. Could be lost cookie by unstable network.
           // Try again to set proper session ID cookie.
           // NOTE: Do not try to set session ID again if you would like to remove
           // authentication flag.
           session_commit();
           session_id($_SESSION['new_session_id']);
           // New session ID should exist
           settion_start();
           return;
       }
   }
}

function my_session_regenerate_id() {
    // New session ID is required to set proper session ID
    // when session ID is not set due to unstable network.
    $new_session_id = session_create_id()
    $_SESSION['new_session_id'] = $new_session_id;

    // Set destroy timestamp
    $_SESSION['destroyed'] = time();

    // Write and close current session;
    session_commit();

    // Start session with new session ID
    session_id($new_session_id);
    ini_set('session.use_strict_mode', 0);
    session_start();
    ini_set('session.use_strict_mode', 1);

    // New session does not need them
    unset($_SESSION['destroyed']);
    unset($_SESSION['new_session_id']);
}
?>

Смотрите также

  • session_id() - Get and/or set the current session id
  • session_create_id() - Create new session id
  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session_destroy() - Destroys all data registered to a session
  • session_reset() - Реинициализирует сессию с оригинальными значениями
  • session_name() - Получить или установить имя текущей сессии


Функция завершения сессии

  • « session_regenerate_id
  • session_register »
  • PHP Manual
  • Функции для работы с сессиями
  • Функция завершения сессии

session_register_shutdown

(PHP >=5.4.0)

session_register_shutdown — Функция завершения сессии

Описание

void session_register_shutdown ( void )

Регистрирует функцию session_write_close() в качестве функции завершения сессии.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

При неудачной регистрации завершающей функции генерирует ошибку уровня E_WARNING.


Регистрация одной или нескольких глобальных переменных текущей сессии

  • « session_register_shutdown
  • session_reset »
  • PHP Manual
  • Функции для работы с сессиями
  • Регистрация одной или нескольких глобальных переменных текущей сессии

session_register

(PHP 4, PHP 5 < 5.4.0)

session_register — Регистрация одной или нескольких глобальных переменных текущей сессии

Описание

bool session_register ( mixed $name [, mixed $... ] )

session_register() принимает переменное число аргументов, любой из которых может быть либо строкой, содержащей имя переменной, либо массивом, состоящим из имен переменных или других массивов. Для каждого имени, session_register() регистрирует глобальную переменную с таким именем в текущей сессии.

Вы также можете создать переменную сессии, просто установив соответствующий элемент массивов $_SESSION.

<?php
// Использование session_register() объявлено устаревшим
$barney = "A big purple dinosaur.";
session_register("barney");

// Использование $_SESSION является предпочтительным
$_SESSION["zim"] = "An invader from another planet.";
?>

Если функция session_start() не была вызвана перед этой, то произойдет неявный вызов session_start() без параметров. В случае использования $_SESSION этого не произойдет, следовательно необходимо самостоятельно вызвать session_start().

Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Список параметров

name

Строка, содержащая имя переменной, либо массив, состоящий из имен переменных или других массивов.

...

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Предостережение

Если вы хотите, чтобы ваш скрипт работал независимо от register_globals, вам нужно использовать массив $_SESSION, так как записи $_SESSION будут автоматически зарегистрированы. Если ваш скрипт использует session_register(), она не будет работать в условиях, когда директива PHP register_globals отключена.

Замечание: register_globals: важное замечание

Начиная с PHP 4.2.0, значением директивы PHP register_globals по умолчанию является off (выключено). Сообщество PHP рекомендует не полагаться на эту директиву, а использовать вместо этого иные средства, такие как superglobals.

Предостережение

Эта функция регистрирует глобальную переменную. Если вы хотите зарегистрировать сессионную переменную изнутри функции, вы должны сделать эту переменную глобальной с помощью ключевого слова global или с помощью суперглобального массива $GLOBALS[], или использовать специальные сессионные массивы, указанные ниже.

Предостережение

Если вы используете $_SESSION
(или $HTTP_SESSION_VARS), не используйте
session_register(),
session_is_registered(), и
session_unregister().

Замечание:

Это в настоящее время невозможно зарегистрировать в сессии переменнтую типа resource. Например, вы не можете создать подключение к базе данных, хранить идентификатор соединения как переменную сессии и ожидать подключения к БД по этому идентификатору после восстановления сессии. Функции PHP, которые возвращают ресурсы, имеют в описании тип возвращаемого значения resource. Список таких функций можно посмотреть в приложении типы ресурсов.

Если используются $_SESSION, присваитвайте значения $_SESSION. Пример: $_SESSION['var'] = 'ABC';

Смотрите также

  • session_is_registered() - Определяет, зарегистрирована ли глобальная переменная в сессии
  • session_unregister() - Unregister a global variable from the current session
  • $_SESSION


Реинициализирует сессию с оригинальными значениями

  • « session_register
  • session_save_path »
  • PHP Manual
  • Функции для работы с сессиями
  • Реинициализирует сессию с оригинальными значениями

session_reset

(PHP 5 >= 5.6.0, PHP 7)

session_reset — Реинициализирует сессию с оригинальными значениями

Описание

void session_reset ( void )

Функция session_reset() повторно инициализирует сессию используя оригинальные значения, сохраненные в хранилище сессии. Эта функция требует наличия активной сессии и уничтожает все изменения в массиве $_SESSION.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • $_SESSION
  • Опция конфигурации session.auto_start
  • session_start() - Стартует новую сессию, либо возобновляет существующую
  • session_abort() - Отменяет измененния сделанные в текущей сессии и завершает ее
  • session_commit() - Псевдоним session_write_close


Get and/or set the current session save path

  • « session_reset
  • session_set_cookie_params »
  • PHP Manual
  • Функции для работы с сессиями
  • Get and/or set the current session save path

session_save_path

(PHP 4, PHP 5, PHP 7)

session_save_path — Get and/or set the current session save path

Описание

string session_save_path ([ string $path ] )

session_save_path() returns the path of the current directory used to save session data.

Список параметров

path

Session data path. If specified, the path to which data is saved will be changed. session_save_path() needs to be called before session_start() for that purpose.

Замечание:

On some operating systems, you may want to specify a path on a filesystem that handles lots of small files efficiently. For example, on Linux, reiserfs may provide better performance than ext2fs.

Возвращаемые значения

Returns the path of the current directory used for data storage.

Смотрите также

  • The session.save_path configuration directive


Set the session cookie parameters

  • « session_save_path
  • session_set_save_handler »
  • PHP Manual
  • Функции для работы с сессиями
  • Set the session cookie parameters

session_set_cookie_params

(PHP 4, PHP 5, PHP 7)

session_set_cookie_params — Set the session cookie parameters

Описание

void session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]] )

Set cookie parameters defined in the php.ini file. The effect of this function only lasts for the duration of the script. Thus, you need to call session_set_cookie_params() for every request and before session_start() is called.

This function updates the runtime ini values of the corresponding PHP ini configuration keys which can be retrieved with the ini_get().

Список параметров

lifetime

Lifetime of the session cookie, defined in seconds.

path

Path on the domain where the cookie will work. Use a single slash ('/') for all paths on the domain.

domain

Cookie domain, for example 'www.php.net'. To make cookies visible on all subdomains then the domain must be prefixed with a dot like '.php.net'.

secure

If TRUE cookie will only be sent over secure connections.

httponly

If set to TRUE then PHP will attempt to send the httponly flag when setting the session cookie.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Список изменений

Версия | Описание
5.2.0 | The httponly parameter was added.

Смотрите также

  • session.cookie_lifetime
  • session.cookie_path
  • session.cookie_domain
  • session.cookie_secure
  • session.cookie_httponly
  • session_get_cookie_params() - Возвращает параметры cookie сессии


Sets user-level session storage functions

  • « session_set_cookie_params
  • session_start »
  • PHP Manual
  • Функции для работы с сессиями
  • Sets user-level session storage functions

session_set_save_handler

(PHP 4, PHP 5, PHP 7)

session_set_save_handler — Sets user-level session storage functions

Описание

bool 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 ]]] )

Since PHP 5.4 it is possible to register the following prototype:

bool session_set_save_handler ( SessionHandlerInterface $sessionhandler [, bool $register_shutdown = true ] )

session_set_save_handler() sets the user-level session storage functions which are used for storing and retrieving data associated with a session. This is most useful when a storage method other than those supplied by PHP sessions is preferred. i.e. Storing the session data in a local database.

Список параметров

This function has two prototypes.

sessionhandler

An instance of a class implementing SessionHandlerInterface, such as SessionHandler, to register as the session handler. Since PHP 5.4 only.

register_shutdown

Register session_write_close() as a register_shutdown_function() function.

or
open(string $savePath, string $sessionName)

The open callback works like a constructor in classes and is executed when the session is being opened. It is the first callback function executed when the session is started automatically or manually with session_start(). Return value is TRUE for success, FALSE for failure.

close()

The close callback works like a destructor in classes and is executed after the session write callback has been called. It is also invoked when session_write_close() is called. Return value should be TRUE for success, FALSE for failure.

read(string $sessionId)

The read callback must always return a session encoded (serialized) string, or an empty string if there is no data to read.

This callback is called internally by PHP when the session starts or when session_start() is called. Before this callback is invoked PHP will invoke the open callback.

The value this callback returns must be in exactly the same serialized format that was originally passed for storage to the write callback. The value returned will be unserialized automatically by PHP and used to populate the $_SESSION superglobal. While the data looks similar to serialize() please note it is a different format which is speficied in the session.serialize_handler ini setting.

write(string $sessionId, string $data)

The write callback is called when the session needs to be saved and closed. This callback receives the current session ID a serialized version the $_SESSION superglobal. The serialization method used internally by PHP is specified in the session.serialize_handler ini setting.

The serialized session data passed to this callback should be stored against the passed session ID. When retrieving this data, the read callback must return the exact value that was originally passed to the write callback.

This callback is invoked when PHP shuts down or explicitly when session_write_close() is called. Note that after executing this function PHP will internally execute the close callback.

Замечание:

The "write" handler is not executed until after the output stream is closed. Thus, output from debugging statements in the "write" handler will never be seen in the browser. If debugging output is necessary, it is suggested that the debug output be written to a file instead.

destroy($sessionId)

This callback is executed when a session is destroyed with session_destroy() or with session_regenerate_id() with the destroy parameter set to TRUE. Return value should be TRUE for success, FALSE for failure.

gc($lifetime)

The garbage collector callback is invoked internally by PHP periodically in order to purge old session data. The frequency is controlled by session.gc_probability and session.gc_divisor. The value of lifetime which is passed to this callback can be set in session.gc_maxlifetime. Return value should be TRUE for success, FALSE for failure.

create_sid()

This callback is executed when a new session ID is required. No parameters are provided, and the return value should be a string that is a valid session ID for your handler.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Custom session handler: see full code in SessionHandlerInterface synposis.

The following code is for PHP version 5.4.0 and above. We just show the invokation here, the full example can be seen in the SessionHandlerInterface synposis linked above.

Note we use the OOP prototype with session_set_save_handler() and register the shutdown function using the function's parameter flag. This is generally advised when registering objects as session save handlers.

<?php
class MySessionHandler implements SessionHandlerInterface
{
    // implement interfaces here
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

// proceed to set and retrieve values by key from $_SESSION

Пример #2 Custom session save handler using objects

The following code is for PHP versions less than 5.4.0.

The following example provides file based session storage similar to the PHP sessions default save handler files. This example could easily be extended to cover database storage using your favorite PHP supported database engine.

Note we additionally register the shutdown function session_write_close() using register_shutdown_function() under PHP less than 5.4.0. This is generally advised when registering objects as session save handlers under PHP less than 5.4.0.

<?php
class FileSessionHandler
{
    private $savePath;

    function open($savePath, $sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath)) {
            mkdir($this->savePath, 0777);
        }

        return true;
    }

    function close()
    {
        return true;
    }

    function read($id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$id");
    }

    function write($id, $data)
    {
        return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
    }

    function destroy($id)
    {
        $file = "$this->savePath/sess_$id";
        if (file_exists($file)) {
            unlink($file);
        }

        return true;
    }

    function gc($maxlifetime)
    {
        foreach (glob("$this->savePath/sess_*") as $file) {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                unlink($file);
            }
        }

        return true;
    }
}

$handler = new FileSessionHandler();
session_set_save_handler(
    array($handler, 'open'),
    array($handler, 'close'),
    array($handler, 'read'),
    array($handler, 'write'),
    array($handler, 'destroy'),
    array($handler, 'gc')
    );

// the following prevents unexpected effects when using objects as save handlers
register_shutdown_function('session_write_close');

session_start();
// proceed to set and retrieve values by key from $_SESSION

Примечания

Внимание

When using objects as session save handlers, it is important to register the shutdown function with PHP to avoid unexpected side-effects from the way PHP internally destroys objects on shutdown and may prevent the write and close from being called. Typically you should register 'session_write_close' using the register_shutdown_function() function.

As of PHP 5.4.0 you can use session_register_shutdown() or simply use the 'register shutdown' flag when invoking session_set_save_handler() using the OOP method and passing an instance that implements SessionHandlerInterface.

Внимание

As of PHP 5.0.5 the write and close handlers are called after object destruction and therefore cannot use objects or throw exceptions. Exceptions are not able to be caught since will not be caught nor will any exception trace be displayed and the execution will just cease unexpectedly. The object destructors can however use sessions.

It is possible to call session_write_close() from the destructor to solve this chicken and egg problem but the most reliable way is to register the shutdown function as described above.

Внимание

Current working directory is changed with some SAPIs if session is closed in the script termination. It is possible to close the session earlier with session_write_close().

Список изменений

Версия | Описание
5.5.1 | Added the optional create_sid parameter.
5.4.0 | Added SessionHandlerInterface for implementing session handlers and SessionHandler to expose internal PHP session handlers.

Смотрите также

  • The session.save_handler configuration directive
  • The session.serialize_handler configuration directive.
  • The register_shutdown_function() - Регистрирует функцию, которая выполнится по завершении работы скрипта
  • The session_register_shutdown() - Функция завершения сессии for PHP 5.4.0+
  • Refer to » save_handler.inc for a full procedural reference implementation


Стартует новую сессию, либо возобновляет существующую

  • « session_set_save_handler
  • session_status »
  • PHP Manual
  • Функции для работы с сессиями
  • Стартует новую сессию, либо возобновляет существующую

session_start

(PHP 4, PHP 5, PHP 7)

session_start — Стартует новую сессию, либо возобновляет существующую

Описание

bool session_start ([ array $options = [] ] )

Функция 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.0.0 | Добавлен параметр options.
5.3.0 | если сессия не смогла стартовать, то возвращается FALSE. Раньше возвращалось TRUE.
4.3.3 | С версии PHP 4.3.3, вызов session_start() после того, как сессия уже стартована, выдает ошибку уровня E_NOTICE. А также, повторный старт сессии будет проигнорирован.

Примеры

Простой пример сессии

Пример #1 page1.php

<?php
// page1.php

session_start();

echo 'Welcome to page #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 'Welcome to page #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
// Устанавливаем время жизни равным одному дню.
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() - Get and/or set the current session id


Возвращает состояние текущей сессии

  • « session_start
  • session_unregister »
  • PHP Manual
  • Функции для работы с сессиями
  • Возвращает состояние текущей сессии

session_status

(PHP >=5.4.0)

session_status — Возвращает состояние текущей сессии

Описание

int session_status ( void )

Функция session_status() возвращает состояние текущей сессии.

Возвращаемые значения

  • PHP_SESSION_DISABLED, если механизм сессий отключен.
  • PHP_SESSION_NONE, если механизм сессий включен, но сессия не создана.
  • PHP_SESSION_ACTIVE, если механизм сессий включен и сессия создана.

Смотрите также

  • session_start() - Стартует новую сессию, либо возобновляет существующую


Unregister a global variable from the current session

  • « session_status
  • session_unset »
  • PHP Manual
  • Функции для работы с сессиями
  • Unregister a global variable from the current session

session_unregister

(PHP 4, PHP 5 < 5.4.0)

session_unregister — Unregister a global variable from the current session

Описание

bool session_unregister ( string $name )

session_unregister() unregisters the global variable named name from the current session.

Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Список параметров

name

The variable name.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

If $_SESSION is used, use unset() to unregister a session variable. Do not unset() $_SESSION itself as this will disable the special function of the $_SESSION superglobal.

Предостережение

This function does not unset the corresponding global variable for name, it only prevents the variable from being saved as part of the session. You must call unset() to remove the corresponding global variable.

Предостережение

If you are using $_SESSION (or
$HTTP_SESSION_VARS), do not use
session_register(),
session_is_registered() and
session_unregister().


Удалить все переменные сессии

  • « session_unregister
  • session_write_close »
  • PHP Manual
  • Функции для работы с сессиями
  • Удалить все переменные сессии

session_unset

(PHP 4, PHP 5, PHP 7)

session_unset — Удалить все переменные сессии

Описание

void session_unset ( void )

Функция session_unset() удаляет все зарегистрированные переменные текущей сессии.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примечания

Замечание:

Если используете $_SESSION , для удаления переменных сессии используйте функцию unset(). Например unset ($_SESSION['varname']);.

Предостережение

НЕ удаляйте весь массив $_SESSION с помощью unset($_SESSION), так как это приведет к невозможности регистрации новых переменных через суперглобальный массив $_SESSION


Write session data and end session

  • « session_unset
  • SessionHandler »
  • PHP Manual
  • Функции для работы с сессиями
  • Write session data and end session

session_write_close

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

session_write_close — Write session data and end session

Описание

void session_write_close ( void )

End the current session and store session data.

Session data is usually stored after your script terminated without the need to call session_write_close(), but as session data is locked to prevent concurrent writes only one script may operate on a session at any time. When using framesets together with sessions you will experience the frames loading one by one due to this locking. You can reduce the time needed to load all the frames by ending the session as soon as all changes to session variables are done.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • The session_register_shutdown() - Функция завершения сессии


The SessionHandler class

(PHP 5 >= 5.4.0, PHP 7)

Введение

SessionHandler это специальный класс, который может использоваться для дополнения внутреннего обработчика сессй PHP путем создания дочерних классов от этого. Существует семь методов, которые являются обертками над семью внутренними обработчиками хранения данных сессии (open, close, read, write, destroy, gc и create_sid). По умолчанию этот класс оборачивает все внутренние обработчики хранения сессии, определенные в опции конфигурации session.save_handler. Эта опция по-умолчанию имеет значение files. Другие внутренние обработчики сессий предоставляются PHP расширениями, такими как SQLite (sqlite), Memcache (memcache) memcache) и Memcached (memcached).

Экземпляр класса SessionHandler может устанавливаться в качестве обработчика сессии посредством вызова функции session_set_save_handler(). В этом случае он станет обертной существующего внутреннего обработчика. Классы, расширяющие SessionHandler позволят переопределить методы обработчика сессии или перехватить/отфильтровать их путем вызова родительских методов-оберток внутреннего обработчика сессий PHP.

Это позволит Вам, к примеру, перехватить методы read и write для шифровки/дешифровки данных сессии и передачи результата родительскому классу и от него. Или, к примеру, вы можете полностью переопределить такие методы как callback-функция сборщика мусора (gc).

Так как SessionHandler является оберткой над стандартным внутренним обработчиком сессии, то пример, приведенный выше про шифровку данных может быть применен к любому внутреннему обработчику сессии даже без понимания внутреннего устройства процесса работы сессии.

Для использования этого класса, во-первых, установите обработчик, который Вы хотите дополнить используя session.save_handler. Далее передайте экземпляр класса SessionHandler или одного из классов, расширяющих его функции session_set_save_handler().

Обратите внимание, что методы этого класса предназначены для внутреннего вызова из PHP. Вызывать их из своего кода не нужно. Дополнительную информацию о работе сессии можно узнать из описания функции session_set_save_handler().

Обзор классов

SessionHandler implements SessionHandlerInterface {
/* Методы */
public bool close ( void )
public string create_sid ( void )
public bool destroy ( string $session_id )
public bool gc ( int $maxlifetime )
public bool open ( string $save_path , string $session_name )
public string read ( string $session_id )
public bool write ( string $session_id , string $session_data )
}
Внимание

Этот класс предназначен для расширения текущего внутреннего обработчика сессии PHP. При этом, если Вам нужно написать собственный обработчик, то необходимо написать собственную реализацию интерфейса SessionHandlerInterface вместо расширения класса SessionHandler.

Список изменений

Версия | Описание
5.5.1 | Добавлено SessionHandler::create_sid().

Пример #1 Использвание SessionHandler для того, чтобы добавить шифровку данных ко внутреннему обработчику сессий PHP.

<?php

 /**
  * decrypt AES 256
  *
  * @param data $edata
  * @param string $password
  * @return decrypted data
  */
function decrypt($edata, $password) {
    $data = base64_decode($edata);
    $salt = substr($data, 0, 16);
    $ct = substr($data, 16);

    $rounds = 3; // depends on key length
    $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);
  }

/**
 * crypt AES 256
 *
 * @param data $data
 * @param string $password
 * @return base64 encrypted data
 */
function encrypt($data, $password) {
    // Set a random salt
    $salt = openssl_random_pseudo_bytes(16);

    $salted = '';
    $dx = '';
    // Salt the key(32) and iv(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 — Возвращает новый ID сессии
  • SessionHandler::destroy — Уничтожает сессию
  • SessionHandler::gc — Очищает старые сессии
  • SessionHandler::open — Инициализирует сессию
  • SessionHandler::read — Считывает данные сессии
  • SessionHandler::write — Write session data


Закрывает сессию

  • « SessionHandler
  • SessionHandler::create_sid »
  • PHP Manual
  • SessionHandler
  • Закрывает сессию

SessionHandler::close

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::close — Закрывает сессию

Описание

public bool SessionHandler::close ( void )

Закрывает текущую сессию. Этот метод автоматически вызывается из PHP во время закрытия сессии или напрямую вызвом функции session_write_close() (которая для начала вызывает функцию SessionHandler::write()).

Этот метод является оберткой внутреннего обработчика сессий PHP, определенного в настройке ini файла session.save_handler которая устанавливается перед тем как обработчик активируется функцией session_set_save_handler().

Если этот класс расширяется путем наследования, то вызов родительского метода close выполнит код обертки, а следовательно код внутреннего обработчика. Это позволяет методу быть переопределенным или перехваченным.

Дополнительную информацию о том, какие действия ожидаются от этого метода см. руководство по методу SessionHandlerInterface::close().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Возвращает новый ID сессии

  • « SessionHandler::close
  • SessionHandler::destroy »
  • PHP Manual
  • SessionHandler
  • Возвращает новый ID сессии

SessionHandler::create_sid

(PHP 5 >= 5.5.1, PHP 7)

SessionHandler::create_sid — Возвращает новый ID сессии

Описание

public string SessionHandler::create_sid ( void )

Генерирует и возвращает новый идентификатор сессии.

Возвращаемые значения

Идентификатор сессии допустимый для обработчика сессии по-умолчанию.

Смотрите также

  • session_id() - Get and/or set the current session id


Уничтожает сессию

  • « SessionHandler::create_sid
  • SessionHandler::gc »
  • PHP Manual
  • SessionHandler
  • Уничтожает сессию

SessionHandler::destroy

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::destroy — Уничтожает сессию

Описание

public bool SessionHandler::destroy ( string $session_id )

Уничтожает сессию. Вызвается изнутри PHP посредством функции session_regenerate_id() (подразумевается, что параметр $destroy установлен в TRUE, функции session_destroy() или когда вызов session_decode() неудачен.

Этот метод является оберткой для внутреннего обработчика PHP, определенного в настройке ini файла session.save_handler который устанавлнивается до обработчика вызовом session_set_save_handler().

Если этот класс расширяется путем наследования, то вызов родительского метода destroy выполнит код обертки, а следовательно код внутреннего обработчика. Это позволяет методу быть переопределенным, перехваченным или отфильтрованным.

Для дополнительной информации см. руководство по функции SessionHandlerInterface::destroy().

Список параметров

session_id

Идентификатор уничтожаемой сессии.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Очищает старые сессии

  • « SessionHandler::destroy
  • SessionHandler::open »
  • PHP Manual
  • SessionHandler
  • Очищает старые сессии

SessionHandler::gc

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::gc — Очищает старые сессии

Описание

public bool SessionHandler::gc ( int $maxlifetime )

Вычищает сессии с истекшим сроком жизни. Вызывается случайным образом изнутри PHP когда сессия стартует или когда вызвана функция session_start(). Частота с которой она вызывается основана на значении параметров конфигурации session.gc_divisor и session.gc_probability.

Этот метод обертывает внутренний обработчик сессии определенный в настройке ini файла session.save_handler который устанавливается перед тем, как определяется данный обработчик в функции session_set_save_handler().

Если этот класс расширяется путем наследования, вызов родительского метода gc выполнит код обертки для этого метода, а также внутренний обработчик. Это позволит методу быть переопределенным, или перехваченным и отфильтрованным.

Для дополнительной информации о том, что ожидается от реализации этого метода см. документацию по методу SessionHandlerInterface::gc().

Список параметров

maxlifetime

Сессии, которые не были обновлены в течение последних maxlifetime секунд удаляются.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Инициализирует сессию

  • « SessionHandler::gc
  • SessionHandler::read »
  • PHP Manual
  • SessionHandler
  • Инициализирует сессию

SessionHandler::open

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::open — Инициализирует сессию

Описание

public bool SessionHandler::open ( string $save_path , string $session_name )

Создает новую сессию или повторно инициализирует существующую. Вызывается изнутри PHP когда сессия стартует автоматически или посредством вызова функции session_start().

Этот метод является оберткой для внутреннего обработчика PHP определенного в нстройке ini файла session.save_handler который устанавливается до определения обработчика вызовом функции session_set_save_handler().

Если этот класс расширяется путем наследования, вызов родительского метода open выполнит код обертки для этого метода, а также внутренний обработчик. Это позволит методу быть переопределенным, или перехваченным и отфильтрованным.

Для дополнительной информации о том, что ожидается от реализации этого метода см. документацию по методу SessionHandlerInterface::open().

Список параметров

save_path

Путь по которому сохраняется/восстанавливается сессия.

session_name

Название сессии.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.

Смотрите также

  • Опция конфигурации session.auto-start


Считывает данные сессии

  • « SessionHandler::open
  • SessionHandler::write »
  • PHP Manual
  • SessionHandler
  • Считывает данные сессии

SessionHandler::read

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::read — Считывает данные сессии

Описание

public string SessionHandler::read ( string $session_id )

Считывает данные сессии из хранилища и возвращает результат обратно в PHP для внутренней обработки. Этот метод вызывается автоматически когда PHP стартует сессию (либо автоматически или напрямую вызовом session_start() с последующим вызовом SessionHandler::open().

Этот метод является оберткой внутреннего обработчика PHP, определенного в параметре ini файла session.save_handler который устанавливается до того, как будет определен обработчик сессии вызовом session_set_save_handler().

Если этот класс расширен путем наследования, вызов родительского метода read вызовет обертку для этого метода и, соответственно, вызов внутреннего обработчика. Это позволяет методу быть перегруженным, и/или перехваченныи и отфильтрованным (например для расшифровки, значения параметра $data, которое возвращает родительский метод read).

Для дополнительной информации см. документацию по методу SessionHandlerInterface::read().

Список параметров

session_id

Идентификатор сессии, из которой необходимо считать данные.

Возвращаемые значения

Возвращает зашифрованную строку считанных данных. Если ничего не считано, то должен вернуть пустую строку. Обратите внимание, что это значение возвращается в PHP Для внутренней обработки.

Смотрите также

  • Директива настройки session.serialize_handler.


Write session data

  • « SessionHandler::read
  • SessionHandlerInterface »
  • PHP Manual
  • SessionHandler
  • Write session data

SessionHandler::write

(PHP 5 >= 5.4.0, PHP 7)

SessionHandler::write — Write session data

Описание

public bool SessionHandler::write ( string $session_id , string $session_data )

Writes the session data to the session storage. Called by normal PHP shutdown, by session_write_close(), or when session_register_shutdown() fails. PHP will call SessionHandler::close() immediately after this method returns.

This method wraps the internal PHP save handler defined in the session.save_handler ini setting that was set before this handler was set by session_set_save_handler().

If this class is extended by inheritiance, calling the parent write method will invoke the wrapper for this method and therefor invoke the associated internal callback. This allows this method to be overidden and or intercepted and filtered (for example, encrypting the $data value before sending it to the parent write method).

For more information on what this method is expected to do, please refer to the documentation at SessionHandlerInterface::write().

Список параметров

session_id

The session id.

session_data

The encoded session data. This data is the result of the PHP internally encoding the $_SESSION superglobal to a serialized string and passing it as this parameter. Please note sessions use an alternative serialization method.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.

Смотрите также

  • The session.serialize_handler configuration directive.


Класс SessionHandlerInterface

(PHP 5 >= 5.4.0, PHP 7)

Введение

SessionHandlerInterface это интерфейс который определяет прототипы для создания пользовательского обработчика сессии. Для предоставления пользовательского обработчика сессии функции session_set_save_handler() используя ее Объектно-ориентированной реализации, класс должен реализовывать этот интерфейс.

Обратите внимание, что callback-методы этого класса созданы для внутренних вызовов PHP и не предназначены для вызовы из Вашего кода.

Обзор классов

SessionHandlerInterface {
/* Методы */
abstract public bool close ( void )
abstract public bool destroy ( string $session_id )
abstract public bool gc ( int $maxlifetime )
abstract public bool open ( string $save_path , string $session_name )
abstract public string read ( string $session_id )
abstract public bool write ( string $session_id , string $session_data )
}

Пример #1 Пример использования SessionHandlerInterface

Следующий пример реализует файловую сессию таким же образом, как это реализовано во внутреннем обрабтчике сессии PHP. Этот пример может быть легко расширен для обеспечения хранения сессий в предпочитаемой Вами базе данных.

Обратите внимание, что мы используем Объектно-ориентированные прототипы с функцией session_set_save_handler() и регистрируем функцию завершения (shutdown) используя один из параметров этой фунции. Это действие рекомендуется производить в большинетсве случаев, когда объекты регистрируются в качестве обрабочиков сессии.

<?php
class MySessionHandler implements SessionHandlerInterface
{
    private $savePath;

    public function open($savePath, $sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath)) {
            mkdir($this->savePath, 0777);
        }

        return true;
    }

    public function close()
    {
        return true;
    }

    public function read($id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$id");
    }

    public function write($id, $data)
    {
        return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
    }

    public function destroy($id)
    {
        $file = "$this->savePath/sess_$id";
        if (file_exists($file)) {
            unlink($file);
        }

        return true;
    }

    public function gc($maxlifetime)
    {
        foreach (glob("$this->savePath/sess_*") as $file) {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                unlink($file);
            }
        }

        return true;
    }
}

$handler = new MySessionHandler();
session_set_save_handler($handler, true);
session_start();

// продолжаем работать с переменными сессии, устанавливая или читая их значение из $_SESSION

Содержание

  • SessionHandlerInterface::close — Закрывает сессию
  • SessionHandlerInterface::destroy — Уничтожает сессию
  • SessionHandlerInterface::gc — Очищает старые сессии
  • SessionHandlerInterface::open — Инициализирует сессию
  • SessionHandlerInterface::read — Читает данные сессии
  • SessionHandlerInterface::write — Записать данные сессии


Закрывает сессию

  • « SessionHandlerInterface
  • SessionHandlerInterface::destroy »
  • PHP Manual
  • SessionHandlerInterface
  • Закрывает сессию

SessionHandlerInterface::close

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::close — Закрывает сессию

Описание

abstract public bool SessionHandlerInterface::close ( void )

Закрывает текущую сессию. Эта функция автоматически выполняется при закрытии сессии или явно через session_write_close().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Уничтожает сессию

  • « SessionHandlerInterface::close
  • SessionHandlerInterface::gc »
  • PHP Manual
  • SessionHandlerInterface
  • Уничтожает сессию

SessionHandlerInterface::destroy

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::destroy — Уничтожает сессию

Описание

abstract public bool SessionHandlerInterface::destroy ( string $session_id )

Уничтожает сессию. Вызывается функциями session_regenerate_id() (с $destroy = TRUE), session_destroy() и при неудачном завершении функции session_decode().

Список параметров

session_id

Идентификатор сессии уничтожается.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Очищает старые сессии

  • « SessionHandlerInterface::destroy
  • SessionHandlerInterface::open »
  • PHP Manual
  • SessionHandlerInterface
  • Очищает старые сессии

SessionHandlerInterface::gc

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::gc — Очищает старые сессии

Описание

abstract public bool SessionHandlerInterface::gc ( int $maxlifetime )

Очищает истекшие сессии. Вызывается функцией session_start(), и основывается на опциях session.gc_divisor, session.gc_probability и session.gc_maxlifetime.

Список параметров

maxlifetime

Сессии, которые не обновлялись в течении maxlifetime секунд будут удалены.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.


Инициализирует сессию

  • « SessionHandlerInterface::gc
  • SessionHandlerInterface::read »
  • PHP Manual
  • SessionHandlerInterface
  • Инициализирует сессию

SessionHandlerInterface::open

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::open — Инициализирует сессию

Описание

abstract public bool SessionHandlerInterface::open ( string $save_path , string $session_name )

Реинициализирует существующую сессию или создает новую. Вызывается когда сессия стартует или когда вызвана функция session_start().

Список параметров

save_path

Путь, по которому сохраняется/восстанавливается сессия.

session_name

Название сессии.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.

Смотрите также

  • session_name() - Получить или установить имя текущей сессии
  • Опция конфигурации session.auto-start


Читает данные сессии

  • « SessionHandlerInterface::open
  • SessionHandlerInterface::write »
  • PHP Manual
  • SessionHandlerInterface
  • Читает данные сессии

SessionHandlerInterface::read

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::read — Читает данные сессии

Описание

abstract public string SessionHandlerInterface::read ( string $session_id )

Читает данные сессии из хранилища сессий и возвращает результат. Вызывается сразу после старта сессии или когда вызвана session_start(). Пожалуйста, обратите внимание, что перед вызовом этого метода будет вызвана функция SessionHandlerInterface::open().

Этот метод вызывается PHP когда стартует сессия. Этот метод должен получить данные сессии из хранилища по указанному её идентификатору. Строка, возвращаемая этим методом, должна иметь тот же сериализованный формат, что и исходная, которая передавалась функции SessionHandlerInterface::write(). Если запись не найдена, возвращается пустая строка.

Данные, возвращаемые этим методом, будут расшифрованы внутри PHP, используя метод десериализации, указанный в session.serialize_handler. Полученные данные будут использованы для заполнения суперглобального массива $_SESSION.

Обратите внимание, что порядок сериализации данных не такой, как в функции unserialize(), и получить доступ к данным можно с помощью функции session_decode().

Список параметров

session_id

Идентификатор сессии.

Возвращаемые значения

Возвращает закодированную строку прочитанных данных. Если ничего не прочитано, возвращается пустая строка. Обратите внимание, что это значение передается для обработки внутри PHP.

Смотрите также

  • INI-директива session.serialize_handler


Записать данные сессии

  • « SessionHandlerInterface::read
  • Session PgSQL »
  • PHP Manual
  • SessionHandlerInterface
  • Записать данные сессии

SessionHandlerInterface::write

(PHP 5 >= 5.4.0, PHP 7)

SessionHandlerInterface::write — Записать данные сессии

Описание

abstract public bool SessionHandlerInterface::write ( string $session_id , string $session_data )

Записывает данные сессии в хранилище сессий. Вызывается функцией session_write_close(), когда неудачно завершается функция session_register_shutdown() или во время нормального завершения работы. Внимание: SessionHandlerInterface::close() вызывается сразу же после этой функции.

PHP вызывает этот метод, когда сессия готова для сохранения и закрытия. Кодируются данные сессии из суперглобального массива $_SESSION в сериализованную строку и передаются вместе с идентификатором сессии данному методу для хранения. Используемый метод сериализации указан в опции session.serialize_handler.

Обратите внимание, что этот метод обычно вызывается PHP после закрытия буферов вывода, если явно не вызывается session_write_close().

Список параметров

session_id

Идентификатор сессии.

session_data

Закодированные данные сессии. Эти данные - результат внутреннего кодирование PHP суперглобального массива $_SESSION в сериализованную строку и передачи ее в качестве этого параметра. Заметьте, что сессии используют альтернативный метод сериализации.

Возвращаемые значения

Возвращаемое значение сессионного хранилища (обычно TRUE в случае успеха, FALSE в случае ошибки). Данное значение возвращается обратно в PHP для внутренней обработки.

Смотрите также

  • INI-директива session.serialize_handler


PostgreSQL Session Save Handler

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Table definitions
  • Предопределенные константы
  • Session PgSQL Функции
    • session_pgsql_add_error — Increments error counts and sets last error message
    • session_pgsql_get_error — Returns number of errors and last error message
    • session_pgsql_get_field — Get custom field value
    • session_pgsql_reset — Reset connection to session database servers
    • session_pgsql_set_field — Set custom field value
    • session_pgsql_status — Get current save handler status


Введение

Замечание: Для Windows-платформ это расширение недоступно.

This module provides an additional session save handler for the session module using » PostgreSQL as a storage system. A user-level session storage function may also be used - session_set_save_handler(), but this module is written in C and therefore could be twice as fast, compared to a session save handler written in PHP.

Session PgSQL is designed to scale any size of web sites and offers some advanced features:

  • session tables are created automatically
  • automatic session table vacuum
  • better garbage collection
  • multiple PostgreSQL servers support
  • automatic database server failover (switching)
  • automatic database server load balancing if there are multiple PostgreSQL servers.
  • short circuit UPDATE


Требования

You need at least PHP >= 4.3.0, and PostgreSQL >=7.2.0 as database server. libpq that comes with PostgreSQL 7.2.0 or later (and header files to build) and » libmm (and header files).


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » http://svn.php.net/viewvc/pecl/session_pgsql.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

PostgreSQL session save handler is still under development. Refer to the README file in the source distribution for configuration details.


  • « Настройка во время выполнения
  • Table definitions »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Table definitions

Session table definition

CREATE TABLE php_session (
 sess_id            text,
 sess_name          text,
 sess_data          text,
 sess_created       integer,
 sess_modified      integer,
 sess_expire        integer,
 sess_addr_created  text,
 sess_addr_modified text,
 sess_counter       integer,
 sess_error         integer,
 sess_warning       integer,
 sess_notice        integer,
 sess_err_message   text,
 sess_custom        text
);

CREATE INDEX php_session_idx ON php_session USING BTREE (sess_id);

Внимание

If you use HASH for INDEX, you'll have a deadlock problem when the server load is very high. Even if it's unlikely to have a deadlock under normal operation, it can occur. Do not use HASH for INDEX.

You may change the session table as long as all fields are defined.

Application variables table definition

CREATE TABLE php_app_vars (
 app_modified       integer,
 app_name           text,
 app_vars           text
);


  • « Table definitions
  • Session PgSQL Функции »
  • PHP Manual
  • Session PgSQL
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Session PgSQL Функции

Contact Information

I have at the moment not very much time to further develop this extension. I will implement more and more features in the near future.

If you have comments, bug fixes, enhancements or want to help developing this, you can drop me a mail at » yohgaki@php.net. Any help is very welcome.

Содержание

  • session_pgsql_add_error — Increments error counts and sets last error message
  • session_pgsql_get_error — Returns number of errors and last error message
  • session_pgsql_get_field — Get custom field value
  • session_pgsql_reset — Reset connection to session database servers
  • session_pgsql_set_field — Set custom field value
  • session_pgsql_status — Get current save handler status


Increments error counts and sets last error message

  • « Session PgSQL Функции
  • session_pgsql_get_error »
  • PHP Manual
  • Session PgSQL Функции
  • Increments error counts and sets last error message

session_pgsql_add_error

(PECL session_pgsql SVN)

session_pgsql_add_error — Increments error counts and sets last error message

Описание

bool session_pgsql_add_error ( int $error_level [, string $error_message ] )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

error_level

error_message

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • session_pgsql_get_error() - Returns number of errors and last error message


Returns number of errors and last error message

  • « session_pgsql_add_error
  • session_pgsql_get_field »
  • PHP Manual
  • Session PgSQL Функции
  • Returns number of errors and last error message

session_pgsql_get_error

(PECL session_pgsql SVN)

session_pgsql_get_error — Returns number of errors and last error message

Описание

array session_pgsql_get_error ([ bool $with_error_message = false ] )

Get the number of errors and optional the error messages.

Список параметров

with_error_message

Set to TRUE the literal error message for each error is also returned.

Возвращаемые значения

The number of errors are returned as array.

Смотрите также

  • session_pgsql_add_error() - Increments error counts and sets last error message


Get custom field value

  • « session_pgsql_get_error
  • session_pgsql_reset »
  • PHP Manual
  • Session PgSQL Функции
  • Get custom field value

session_pgsql_get_field

(PECL session_pgsql SVN)

session_pgsql_get_field — Get custom field value

Описание

string session_pgsql_get_field ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Смотрите также

  • session_pgsql_set_field() - Set custom field value


Reset connection to session database servers

  • « session_pgsql_get_field
  • session_pgsql_set_field »
  • PHP Manual
  • Session PgSQL Функции
  • Reset connection to session database servers

session_pgsql_reset

(PECL session_pgsql SVN)

session_pgsql_reset — Reset connection to session database servers

Описание

bool session_pgsql_reset ( void )

Reset the connection to the session database servers.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set custom field value

  • « session_pgsql_reset
  • session_pgsql_status »
  • PHP Manual
  • Session PgSQL Функции
  • Set custom field value

session_pgsql_set_field

(PECL session_pgsql SVN)

session_pgsql_set_field — Set custom field value

Описание

bool session_pgsql_set_field ( string $value )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

value

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • session_pgsql_get_field() - Get custom field value


Get current save handler status

  • « session_pgsql_set_field
  • Обработка текста »
  • PHP Manual
  • Session PgSQL Функции
  • Get current save handler status

session_pgsql_status

(PECL session_pgsql SVN)

session_pgsql_status — Get current save handler status

Описание

array session_pgsql_status ( void )
Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.


Обработка текста

  • BBCode — Bulletin Board Code
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • BBCode Функции
  • PCRE — Функции для работы с регулярными выражениями (Perl-совместимые)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Регулярные выражения PCRE
    • PCRE — Функции для работы с регулярными выражениями (Perl-совместимые)
  • Регулярные выражения POSIX — Регулярные выражения (расширенные POSIX)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Функции регулярных выражений POSIX
  • ssdeep — ssdeep Fuzzy Hashing
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • ssdeep Функции
  • Строки
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Обработка строк
    • Список изменений


Bulletin Board Code

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • BBCode Функции
    • bbcode_add_element — Добавляет элемент bbcode
    • bbcode_add_smiley — Добавляет смайлы для разбора парсером
    • bbcode_create — Создает ресурс BBCode
    • bbcode_destroy — Закрывает ресурс BBCode_container
    • bbcode_parse — Производит разбор строки в соответствии с заданным набором правил
    • bbcode_set_arg_parser — Подключает другой парсер для применения иного набора правил в качестве параметров разбора
    • bbcode_set_flags — Устанавливает или изменяет настройки парсера


Введение

Этот модуль позволяет упростить разбор текста с BBCode для преобразования его в HTML или другой язык разметки. Он использует однопроходную обработку и значительно превосходит по скорости вариант, основанный на использовании регулярных выражений. Кроме того, он позволяет получить корректный HTML за счет переупорядочивания открывающих / закрывающих тегов и автоматического закрытия незакрытых тегов.

С версии 0.10.1 поддерживается цитирование с использованием одинарных кавычек, двойных кавычек и HTML экранированных двойных кавычек.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/bbcode

Альтернативный вариант, написанный на PHP - PEAR пакет » HTML_BBCodeParser.


Типы ресурсов

Расширение BBCode использует один параметр типа resource: BBCode_Container, возвращаемый функцией bbcode_create().


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

BBCODE_TYPE_NOARG (integer)
Этот тег BBCode не принимает аргументов.
BBCODE_TYPE_SINGLE (integer)
Этот тег BBCode не имеет соответствующего закрывающего тега.
BBCODE_TYPE_ARG (integer)
Этот тег BBCode требует аргумент.
BBCODE_TYPE_OPTARG (integer)
Этот тег BBCode принимает необязательный аргумент.
BBCODE_TYPE_ROOT (integer)
Этот тег BBCode является корневым тегом (уровень вложенности 0).
BBCODE_FLAGS_ARG_PARSING (integer)
Этот тег BBCode требует дополнительного разбора аргумента (аргумент также разбирается расширением BBCode). С версии 0.10.2 можно использовать другой парсер.
BBCODE_FLAGS_CDATA_NOT_ALLOWED (integer)
Этот тег BBCode не принимает содержимое (оно автоматически очищается).
BBCODE_FLAGS_SMILEYS_ON (integer) - с версии 0.10.2
Этот тег BBCode принимает смайлы.
BBCODE_FLAGS_SMILEYS_OFF (integer) - с версии 0.10.2
Этот тег BBCode не принимает смайлы.
BBCODE_FLAGS_ONE_OPEN_PER_LEVEL (integer) - с версии 0.10.2
Этот тег BBCode автоматически закрывается, если найден другой тег того-же типа на том-же уровне вложенности.
BBCODE_FLAGS_REMOVE_IF_EMPTY (integer) - с версии 0.10.2
Этот тег BBCode автоматически удаляется если у него нет содержимого, это позволяет получить облегченный HTML.
BBCODE_FLAGS_DENY_REOPEN_CHILD (integer) - с версии 0.10.3
Этот тег BBCode не позволяет заново открывать незакрытые дочерние теги, которые были автоматически закрыты.
BBCODE_ARG_DOUBLE_QUOTE (integer) - с версии 0.10.2
Это опция парсера разрешает оборачивать аргумент в двойные кавычки (")
BBCODE_ARG_SINGLE_QUOTE (integer) - с версии 0.10.2
Это опция парсера разрешает оборачивать аргумент в одинарные кавычки (')
BBCODE_ARG_HTML_QUOTE (integer) - с версии 0.10.2
Это опция парсера разрешает оборачивать аргумент в HTML-версию двойных кавычек (&quot;)
BBCODE_ARG_QUOTE_ESCAPING (integer) - с версии 1.0.2
Эта опция парсера разрешает экранировать символы оборачивания (кавычки) с помощью обратного слеша (\). Это позволяет использовать эти символы внутри тела аргумента. В этом случае символ экранирования можно ставить только перед кавычками, либо перед самим собой (\\). Если он будет обнаружен перед каким либо другим символом, то будет проигнорирован. По умолчанию экранирование не используется.
BBCODE_AUTO_CORRECT (integer) - с версии 0.10.2
Эта опция парсера меняет способ обработки ошибок разбора. С этой опцией, теги будут автоматически закрываться в порядке открытия. Теги, которые были открыты и не закрыты, будут рассматриваться, как будто у них есть закрывающий тег.
BBCODE_CORRECT_REOPEN_TAGS (integer) - с версии 0.10.2
Эта опция парсера меняет способ обработки ошибок разбора. Теги, закрытые в неправильном порядке, будут переоткрываться.
BBCODE_DISABLE_TREE_BUILD (integer) - с версии 0.10.2
Эта опция парсера запрещает разбор BBCode. может быть полезно, если нужно использовать только подстановку смайлов.
BBCODE_DEFAULT_SMILEYS_ON (integer) - с версии 0.10.2
Этот параметр парсера включает использование смайлов для тегов, в которых прямо не указанно обратного.
BBCODE_DEFAULT_SMILEYS_OFF (integer) - с версии 0.10.2
Этот параметр парсера выключает использование смайлов для тегов, в которых прямо не указанно обратного.
BBCODE_FORCE_SMILEYS_OFF (integer) - с версии 0.10.2
Эта настройка парсера полностью отключает разбор смайлов.
BBCODE_SMILEYS_CASE_INSENSITIVE (integer) - с версии 0.10.3
Использует регистронезависимый вариант обнаружения для смайлов вместо простого бинарного поиска.
BBCODE_SET_FLAGS_SET (integer) - с версии 0.10.2
Позволяет установить готовый набор флагов для парсера.
BBCODE_SET_FLAGS_ADD (integer) - с версии 0.10.2
Позволяет установить для парсера набор флагов в ON.
BBCODE_SET_FLAGS_REMOVE (integer) - с версии 0.10.2
Позволяет установить для парсера набор флагов в OFF.


BBCode Функции

Содержание

  • bbcode_add_element — Добавляет элемент bbcode
  • bbcode_add_smiley — Добавляет смайлы для разбора парсером
  • bbcode_create — Создает ресурс BBCode
  • bbcode_destroy — Закрывает ресурс BBCode_container
  • bbcode_parse — Производит разбор строки в соответствии с заданным набором правил
  • bbcode_set_arg_parser — Подключает другой парсер для применения иного набора правил в качестве параметров разбора
  • bbcode_set_flags — Устанавливает или изменяет настройки парсера


Добавляет элемент bbcode

  • « BBCode Функции
  • bbcode_add_smiley »
  • PHP Manual
  • BBCode Функции
  • Добавляет элемент bbcode

bbcode_add_element

(PECL bbcode >= 0.9.0)

bbcode_add_element — Добавляет элемент bbcode

Описание

bool bbcode_add_element ( resource $bbcode_container , string $tag_name , array $tag_rules )

Добавляет тег в существующий набор тегов (tag_set) BBCode_Container используя tag_rules.

Список параметров

bbcode_container

BBCode_Container типа resource, возвращаемый функцией bbcode_create().

tag_name

Новый тег, добавляемый в набор тегов BBCode_Container.

tag_rules

Ассоциативный массив, содержащий правила разбора; см. bbcode_create() для возможных значений ключей.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Добавляет смайлы для разбора парсером

  • « bbcode_add_element
  • bbcode_create »
  • PHP Manual
  • BBCode Функции
  • Добавляет смайлы для разбора парсером

bbcode_add_smiley

(PECL bbcode >= 0.10.2)

bbcode_add_smiley — Добавляет смайлы для разбора парсером

Описание

bool bbcode_add_smiley ( resource $bbcode_container , string $smiley , string $replace_by )

Добавляет смайлы для разбора парсером

Список параметров

bbcode_container

BBCode_Container типа resource, возвращаемый функцией bbcode_create().

smiley

Строка, которая будет заменена при совпадении.

replace_by

Строка, которая заменяет смайл при совпадении.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bbcode_add_smiley()

<?php
/*
 * Подготовка набора правил
 */
$arrayBBCode=array(
    ''=>         array('type'=>BBCODE_TYPE_ROOT,
                       'childs'=>'!i'),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>',
                       'close_tag'=>'</b>'),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>',
                       'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>',
                       'close_tag'=>'</i>',
                       'childs'=>'b'),
);
/*
 * Разбираемый текст
 */
$text=<<<EOF
[i] No parse Test [/i] :)
[b] Parsed, with smiley :( [/b]
[u] Parsed, with no smiley :D [/u]
EOF;
/*
 * Инициализация парсера
 */
$BBHandler=bbcode_create($arrayBBCode);
/*
 * Добавление правил для смайлов в парсер
 */
bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />");
bbcode_add_smiley($BBHandler, ":(", "<img src=\"sad.gif\" alt=\":(\" />");
bbcode_add_smiley($BBHandler, ":D", "<img src=\"happy.gif\" alt=\":D\" />");
bbcode_add_smiley($BBHandler, ":p", "<img src=\"tong.gif\" alt=\":p\" />");
bbcode_add_smiley($BBHandler, ":|", "<img src=\"special.gif\" alt=\":|\" />");
bbcode_add_smiley($BBHandler, ":6:", "<img src=\"six.gif\" alt=\":6:\" />");
/*
 * Разбор текста
 */
echo bbcode_parse($BBHandler,$text);
?>

Результат выполнения данного примера:

<i> No parse Test </i> <img src="smiley.gif" alt=":)" />
<b> Parsed, with smiley <img src="sad.gif" alt=":(" /> </b>
<u> Parsed, with no smiley :D </u>


Создает ресурс BBCode

  • « bbcode_add_smiley
  • bbcode_destroy »
  • PHP Manual
  • BBCode Функции
  • Создает ресурс BBCode

bbcode_create

(PECL bbcode >= 0.9.0)

bbcode_create — Создает ресурс BBCode

Описание

resource bbcode_create ([ array $bbcode_initial_tags = NULL ] )

Эта функция возвращает новый ресурс BBCode, используемый для разбора строк с BBCode.

Список параметров

bbcode_initial_tags

Ассоциативный массив, содержащий имя тега в качестве ключа и параметры, необходимые для корректного разбора BBCode, как значение. Поддерживаются следующие пары ключ/значение:

  • flags необязательный - флаг, устанавливаемый на основе констант BBCODE_FLAGS_*.
  • type обязательный - целочисленное значение, указывающее тип тега. Использует константы BBCODE_TYPE_*.
  • open_tag обязательный - HTML-строка для замены открывающего тега.
  • close_tag обязательный - HTML-строка для замены закрывающего тега.
  • default_arg необязательный - это значение используется как параметр по умолчанию, если он не задан и tag_type установлен в OPTARG.
  • content_handling необязательный - Задает callback-функцию для модификации контента. Объектно ориентированная нотация поддерживается только в версии 0.10.1. Прототип callback-функции это строка "name(string $content, string $argument)"
  • param_handling необязательный - Задает callback-функцию для модификации аргумента. Объектно ориентированная нотация поддерживается только в версии 0.10.1. Прототип callback-функции это строка "name(string $content, string $argument)"
  • childs необязательный - Список разрешенных дочерних тегов для данного. Формат списка - строка, с запятыми в качестве разделителя. Если список начинается с !, это список запрещенных дочерних тегов для данного тега.
  • parent необязательный - Список разрешенных родителей для этого тега. Формат списка - строка, с запятыми в качестве разделителя.

Возвращаемые значения

Возвращает BBCode_Container

Примеры

Пример #1 Пример использования bbcode_create()

<?php
$arrayBBCode=array(
    ''=>         array('type'=>BBCODE_TYPE_ROOT,  'childs'=>'!i'),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<i>',
                    'close_tag'=>'</i>', 'childs'=>'b'),
    'url'=>      array('type'=>BBCODE_TYPE_OPTARG,
                    'open_tag'=>'<a href="{PARAM}">', 'close_tag'=>'</a>',
                    'default_arg'=>'{CONTENT}',
                    'childs'=>'b,i'),
    'img'=>      array('type'=>BBCODE_TYPE_NOARG,
                    'open_tag'=>'<img src="', 'close_tag'=>'" />',
                    'childs'=>''),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG, 'open_tag'=>'<b>',
                    'close_tag'=>'</b>'),
);
$text=<<<EOF
[b]Bold Text[/b]
[i]Italic Text[/i]
[url]http://www.php.net/[/url]
[url=http://pecl.php.net/][b]Content Text[/b][/url]
[img]http://static.php.net/www.php.net/images/php.gif[/img]
[url=http://www.php.net/]
[img]http://static.php.net/www.php.net/images/php.gif[/img]
[/url]
EOF;
$BBHandler=bbcode_create($arrayBBCode);
echo bbcode_parse($BBHandler,$text);
?>

Результат выполнения данного примера:

<b>Bold Text</b>
[i]Italic Text[/i]
<a href="http://www.php.net/">http://www.php.net/</a>
<a href="http://pecl.php.net/"><b>Content Text</b></a>
<img src="http://static.php.net/www.php.net/images/php.gif" />
<a href="http://www.php.net/">
[img]http://static.php.net/www.php.net/images/php.gif[/img]
</a>


Закрывает ресурс BBCode_container

  • « bbcode_create
  • bbcode_parse »
  • PHP Manual
  • BBCode Функции
  • Закрывает ресурс BBCode_container

bbcode_destroy

(PECL bbcode >= 0.9.0)

bbcode_destroy — Закрывает ресурс BBCode_container

Описание

bool bbcode_destroy ( resource $bbcode_container )

Эта функция закрывает resource, возвращаемый функцией bbcode_create().

Список параметров

bbcode_container

BBCode_Container типа resource, возвращаемый функцией bbcode_create().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Производит разбор строки в соответствии с заданным набором правил

  • « bbcode_destroy
  • bbcode_set_arg_parser »
  • PHP Manual
  • BBCode Функции
  • Производит разбор строки в соответствии с заданным набором правил

bbcode_parse

(PECL bbcode >= 0.9.0)

bbcode_parse — Производит разбор строки в соответствии с заданным набором правил

Описание

string bbcode_parse ( resource $bbcode_container , string $to_parse )

Эта функция производит разбор строки to_parse в соответствии с правилами в bbcode_container, возвращаемом функцией bbcode_create()

Список параметров

bbcode_container

BBCode_Container типа resource, возвращаемый функцией bbcode_create().

to_parse

Строка, которую необходимо разобрать.

Возвращаемые значения

Возвращает разобранную строку, или FALSE в случае возникновения ошибки.


Подключает другой парсер для применения иного набора правил в качестве параметров разбора

  • « bbcode_parse
  • bbcode_set_flags »
  • PHP Manual
  • BBCode Функции
  • Подключает другой парсер для применения иного набора правил в качестве параметров разбора

bbcode_set_arg_parser

(PECL bbcode >= 0.10.2)

bbcode_set_arg_parser — Подключает другой парсер для применения иного набора правил в качестве параметров разбора

Описание

bool bbcode_set_arg_parser ( resource $bbcode_container , resource $bbcode_arg_parser )

Подключает другой парсер для bbcode_container. Этот парсер используется только для получения параметров разбора. Если эта функция не используется, парсер использует параметры по умолчанию для исходного парсера.

Список параметров

bbcode_container

BBCode_Container resource, возвращаемый функцией bbcode_create().

bbcode_arg_parser

Значение BBCode_Container типа resource, возвращаемое функцией bbcode_create(). Используется только для получения параметров парсера

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bbcode_set_arg_parser()

<?php
/*
 * Создание набора правил bbcode для основного парсера
 */
$arrayBBCode=array(
    'quote'=>    array('type'=>BBCODE_TYPE_ARG,
                       'open_tag'=>'<quote><h4>Source: {PARAM}</h4>',
                       'close_tag'=>'</quote>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY|BBCODE_FLAGS_ARG_PARSING),
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>', 'close_tag'=>'</b>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
 * Создание набора правил bbcode для параметров парсера
 */
$arrayBBCode_arg=array(
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b class="sub">', 'close_tag'=>'</b>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>',
                       'flags'=>BBCODE_FLAGS_SMILEYS_OFF | BBCODE_FLAGS_REMOVE_IF_EMPTY | BBCODE_FLAGS_SMILEYS_OFF),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>',
                       'flags'=>BBCODE_FLAGS_REMOVE_IF_EMPTY),
);
/*
 * Текст, который нужно разобрать
 */
$text=<<<EOF
[quote="[b]Test[/b]"]
Foo :)
[/quote]
[b]Bar example :)[/b] :)
EOF;
/*
 * Инициализация двух парсеров
 */
$BBHandler=bbcode_create($arrayBBCode);
$BBArgHandler=bbcode_create($arrayBBCode_arg);
/*
 * Установка флагов для парсеров
 */
bbcode_set_flags($BBHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE|
                 BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET);
bbcode_set_flags($BBArgHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_DEFAULT_SMILEYS_ON|BBCODE_ARG_DOUBLE_QUOTE|
                 BBCODE_ARG_SINGLE_QUOTE|BBCODE_ARG_HTML_QUOTE,BBCODE_SET_FLAGS_SET);
/*
 * Подключение $BBArgHandler как параметров парсера BBHandler
 */
bbcode_set_arg_parser($BBHandler,$BBArgHandler);
/*
 * Добавление правил для обработки смайлов в основной парсер
 */
bbcode_add_smiley($BBHandler, ":)", "<img src=\"smiley.gif\" alt=\":)\" />");
/*
 * Используем основной парсер для разбора текста
 */
echo bbcode_parse($BBHandler,$text);
?>

Результат выполнения данного примера:

<quote><h4>Source: <b class="sub">Test</b></h4>
Foo <img src="smiley.gif" alt=":)" />
</quote>
<b>Bar example :)</b> <img src="smiley.gif" alt=":)" />


Устанавливает или изменяет настройки парсера

  • « bbcode_set_arg_parser
  • PCRE »
  • PHP Manual
  • BBCode Функции
  • Устанавливает или изменяет настройки парсера

bbcode_set_flags

(PECL bbcode >= 0.10.2)

bbcode_set_flags — Устанавливает или изменяет настройки парсера

Описание

bool bbcode_set_flags ( resource $bbcode_container , int $flags [, int $mode = BBCODE_SET_FLAGS_SET ] )

Устанавливает или изменяет настройки парсера

Список параметров

bbcode_container

BBCode_Container типа resource, возвращаемый функцией bbcode_create().

flags

Набор флагов, которые будут применены к настройкам bbcode_container

mode

Одна из констант BBCODE_SET_FLAGS_* используемых для установки, снятия указанного набора флагов или замены набора флагов другим набором.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования bbcode_set_flags()

<?php
/*
 * Подготовка набора правил
 */
$arrayBBCode=array(
    'b'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<b>', 'close_tag'=>'</b>'),
    'u'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<u>', 'close_tag'=>'</u>'),
    'i'=>        array('type'=>BBCODE_TYPE_NOARG,
                       'open_tag'=>'<i>', 'close_tag'=>'</i>'),
);
/*
 * Парные неправильно вложенные BBCode
 */
$text="[i] Parser [b] Auto Correction [/i] at work [/b]\n";
$BBHandler=bbcode_create($arrayBBCode);
echo bbcode_parse($BBHandler,$text);
// Включение открытия автоматически закрытых элементов
bbcode_set_flags($BBHandler,BBCODE_CORRECT_REOPEN_TAGS,
                 BBCODE_SET_FLAGS_SET);
echo bbcode_parse($BBHandler,$text);

/*
 * Непарные неправильно вложенные BBCode
 */
$text="[i] Parser [b] Auto Correction [/i] at work\n";
echo bbcode_parse($BBHandler,$text);
// Включение автоматического закрытия для требующих этого тегов
bbcode_set_flags($BBHandler,
                 BBCODE_CORRECT_REOPEN_TAGS|BBCODE_AUTO_CORRECT,
                 BBCODE_SET_FLAGS_SET);
echo bbcode_parse($BBHandler,$text);
?>

Результат выполнения данного примера:

<i> Parser <b> Auto Correction </b></i> at work
<i> Parser <b> Auto Correction </b></i><b> at work </b>
<i> Parser [b] Auto Correction </i> at work
<i> Parser <b> Auto Correction </b></i><b> at work
</b>


Функции для работы с регулярными выражениями (Perl-совместимые)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Регулярные выражения PCRE
    • Описание синтаксиса Perl-совместимых регулярных выражений — Синтаксис регулярных выражений
    • Описывает возможные модификаторы шаблонов Perl-совместимых регулярных выражений (PCRE) — Модификаторы шаблонов
    • Отличия от Perl
    • Отличия от регулярных выражений POSIX
  • PCRE — Функции для работы с регулярными выражениями (Perl-совместимые)
    • preg_filter — Производит поиск и замену по регулярному выражению
    • preg_grep — Возвращает массив вхождений, которые соответствуют шаблону
    • preg_last_error — Возвращает код ошибки выполнения последнего регулярного выражения PCRE
    • preg_match_all — Выполняет глобальный поиск шаблона в строке
    • preg_match — Выполняет проверку на соответствие регулярному выражению
    • preg_quote — Экранирует символы в регулярных выражениях
    • preg_replace_callback_array — Perform a regular expression search and replace using callbacks
    • preg_replace_callback — Выполняет поиск по регулярному выражению и замену с использованием callback-функции
    • preg_replace — Выполняет поиск и замену по регулярному выражению
    • preg_split — Разбивает строку по регулярному выражению


Введение

Синтакcис шаблонов, используемых в функциях этого раздела, во многом похож на синтаксис, используемый в Perl. Выражение должно быть заключено в разделители, например, прямые слеши '/'. Разделителем могут выступать произвольные символы, кроме буквенно-цифровых, обратного слеша '\' и нулевого байта. Если символ разделителя встречается в шаблоне, его необходимо экранировать. Начиная с PHP 4.0.4 в качестве разделителя доступны комбинации, используемые в Perl: (), {}, [] и <>. Подробней об этом рассказано в разделе "Синтаксис регулярных выражений".

После закрывающего разделителя можно указывать различные модификаторы, влияющие на работу регулярных выражений. Детальная информация доступна в разделе "Модификаторы шаблонов".

PHP также поддерживает POSIX-совместимые регулярные выражения, используя POSIX-совместимые функции регулярных выражений.

Замечание:

Этот модуль хранит глобальный (1 на поток) кэш компилированных регулярных выражений (до 4096).

Внимание

Помните об ограничениях PCRE. См. документацию по PCRE » http://www.pcre.org/pcre.txt для информации.

Библиотека PCRE - это набор функций, реализующих разбор регулярных выражений с помощью того же синтаксиса и семантики, которая была реализована в Perl 5, с некоторыми небольшими отличиями (см. ниже). Текущая реализация соответствует версии Perl 5.005.


Установка

Расширение PCRE является расширением ядра, поэтому оно всегда доступно. По умолчанию, это расширение собирается с использованием встроенной библиотеки PCRE. Также можно использовать внешнюю PCRE библиотеку, указав при сборке параметр --with-pcre-regex=DIR , где DIR указывает на директорию с библиотеками и подключаемыми файлами PCRE. Для PHP 5.6 и 7.0 рекомендуется использовать PCRE 8.10 и выше.

Начиная с PHP 7.0.0, по умолчанию поддерживается JIT компиляция PCRE. Ее можно отключить с помощью опции --without-pcre-jit начиная с PHP 7.0.12.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание:

До версии PHP 5.3.0, это расширение можно было отключить при сборке, передав опцию --without-pcre-regex .

PCRE - активный проект и по мере того как он меняется, меняется и функционал PHP, который полагается на него. Возможно, некоторые части документации PHP устарели в том плане, что они не покрывает новейшие возможности, которые предоставляет PCRE. Список изменений можно найти в » списке изменений библиотеки PCRE, а также в следующей прилагаемой здесь истории PCRE:

История обновлений поставляемой библиотеки PCRE
PHP Версия | Обновленная PCRE Версия | Замечания
7.0.3 / 5.6.18 / 5.5.32 | 8.38 | See CVE-2015-8383, CVE-2015-8386, CVE-2015-8387, CVE-2015-8389, CVE-2015-8390, CVE-2015-8391, CVE-2015-8393, CVE-2015-8394
7.0.0 / 5.6.9 / 5.5.26 / 5.4.41 | 8.37 | See CVE-2015-2325, CVE-2015-2326
5.6.0 / 5.5.10 | 8.34 |
5.5.0 / 5.4.14 / 5.3.24 | 8.32 |
5.4.9 / 5.3.19 | 8.31 |
5.3.7 | 8.12 |
5.3.6 | 8.11 |
5.3.4 | 8.10 |
5.3.3 / 5.2.14 | 8.02 |
5.3.2 | 8.00 |
5.3.0 / 5.2.13 | 7.9 |
5.2.7 | 7.8 |
5.2.6 | 7.6 |
5.2.5 | 7.3 |
5.2.4 | 7.2 |
5.2.2 | 7.0 |
5.2.0 | 6.7 |
5.1.3 | 6.6 |
5.1.0 | 6.2 |
5.0.5 | 5.0 |
5.0.0 | 4.5 |
4.4.7 | 7.7 |


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации PCRE
Имя | По умолчанию | Меняемо | Список изменений
pcre.backtrack_limit | "1000000" | PHP_INI_ALL | Доступна с PHP 5.2.0.
pcre.recursion_limit | "100000" | PHP_INI_ALL | Доступна с PHP 5.2.0.
pcre.jit | "1" | PHP_INI_ALL | Доступна с PHP 7.0.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

pcre.backtrack_limit integer

Лимит обратных ссылок PCRE. Для PHP < 5.3.7, значение по умолчанию 100000.

pcre.recursion_limit integer

Лимит на рекурсию. Не забывайте о том, что если вы установите достаточно высокое значение, то PCRE может превысить размер стека (установленный операционной системой) и в конце концов вызовет крушение PHP.

pcre.jit boolean

Будет использоваться PCRE just-in-time компиляция.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если 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. | 4.3.0
PREG_SPLIT_NO_EMPTY | В случае, если этот флаг указан, функция preg_split() вернет только непустые подстроки. |
PREG_SPLIT_DELIM_CAPTURE | В случае, если этот флаг указан, то preg_split() также возвращает выражение, заключенное в круглые скобки в шаблоне разделителя. | 4.0.5
PREG_SPLIT_OFFSET_CAPTURE | В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемых данных: каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом - смещение. Этот флаг используется только в функции preg_split(). | 4.3.0
PREG_NO_ERROR | Возвращается функцией preg_last_error(), если ошибок нет. | 5.2.0
PREG_INTERNAL_ERROR | Возвращается функцией preg_last_error() в случае, если произошла внутренняя ошибка PCRE. | 5.2.0
PREG_BACKTRACK_LIMIT_ERROR | Возвращается функцией preg_last_error() в случае, когда лимит обратных ссылок был исчерпан. | 5.2.0
PREG_RECURSION_LIMIT_ERROR | Возвращается функцией preg_last_error() в случае, если лимит рекурсии был исчерпан. | 5.2.0
PREG_BAD_UTF8_ERROR | Возвращается функцией preg_last_error(), если последняя ошибка была вызвана поврежденными UTF-8 данными (только при запуске в режиме UTF-8). | 5.2.0
PREG_BAD_UTF8_OFFSET_ERROR | Возвращается функцией preg_last_error(), если смещение не соответствует началу корректной кодовой точки UTF-8 (только при запуске в режиме UTF-8). | 5.3.0
PREG_JIT_STACKLIMIT_ERROR | Возвращается функцией preg_last_error() если последняя функция PCRE завершилась неудачно из-за лимита стека JIT. | 7.0.0
PCRE_VERSION | Версия и дата релиза PCRE (например, "7.0 18-Dec-2006"). | 5.2.4


Примеры

Пример #1 Примеры правильных шаблонов

  • /<\/\w+>/
  • |(\d{3})-\d+|Sm
  • /^(?i)php[34]/
  • {^\s+(\s+)?$}

Пример #2 Примеры неправильных шаблонов

  • /href='(.*)' - пропущен закрывающий ограничитель
  • /\w+\s*\w+/J - неизвестный модификатор 'J'
  • 1-\d3-\d3-\d4| - пропущен открывающий ограничитель


Регулярные выражения PCRE

Содержание

  • Описание синтаксиса Perl-совместимых регулярных выражений
  • Описывает возможные модификаторы шаблонов Perl-совместимых регулярных выражений (PCRE)
  • Отличия от Perl
  • Отличия от регулярных выражений POSIX


Синтаксис регулярных выражений

Содержание

  • Вступление
  • Разделители
  • Метасимволы
  • Экранирующие последовательности
  • Свойства Unicode-символов
  • Якоря
  • Метасимвол точка
  • Символьные классы
  • Альтернативный выбор
  • Установка внутренних опций
  • Подмаски
  • Повторение
  • Обратные ссылки
  • Утверждения
  • Однократные подмаски
  • Условные подмаски
  • Комментарии
  • Рекурсивные шаблоны
  • Производительность


Вступление

Ниже описаны синтаксис и семантика регулярных выражений, поддерживаемых библиотекой PCRE. Регулярные выражения также описаны в документации языка Perl и во множестве других книг, некоторые содержат большое количество примеров. Очень подробно регулярные выражения описаны в книге Джеффри Фридла "Регулярные выражения" (Jeffrey Friedl "Mastering Regular Expressions"), опубликованной издательством O'Reilly (ISBN 1-56592-257-3). Описание ниже дано в качестве справочной информации.

Регулярное выражение - это шаблон, с которым сравнивается указанная строка слева направо. Большинство символов в шаблоне являются самими собой, и совпадают с соответствующими символами в искомой строке. В качестве банального примера, шаблон The quick brown fox соответствует той части искомой строки, которая с ним совпадает.


Разделители

При использовании любой PCRE функции необходимо заключать шаблон в разделители. Разделителем может быть любой символ не являющийся буквой, цифрой, обратной косой чертой или каким-либо пробельным символом.

Часто используемыми разделителями являются косые черты (/), знаки решетки (#) и тильды (~). Ниже представлены примеры шаблонов с корректными разделителями.

/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

Также можно использовать разделитель в виде скобок, где стартовый и завершающий разделители являются соответственно открывающей и закрывающей скобками. (), {}, [] и <> являются допустимыми парами разделителей.

(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
<this [is] a (pattern)>
Разделители в виде скобок не нужно экранировать, если они также используются как метасимволы в шаблоне, но как и с другими разделителями их нужно экранировать, если они используются непосредственно как символы.

Если необходимо использовать разделитель внутри шаблона, его нужно проэкранировать с помощью обратной косой черты. Если разделитель часто используется в шаблоне, в целях удобочитаемости, лучше выбрать другой разделитель для этого шаблона.

/http:\/\//
#http://#
Функция preg_quote() может быть использована для экранирования строки, используемой в шаблоне, а ее необязательный второй параметр позволяет указать используемый разделитель.

После закрывающего разделителями можно использовать модификаторы шаблонов. Ниже следуюет пример регистро-независимого поиска:

#[a-z]#i


Метасимволы

Сила регулярных выражений исходит из возможности использовать условия и повторения в шаблоне. Они записываются при помощи метасимволов, которые специальным образом интерпретируются.

Существуют два различных набора метасимволов: те, которые используются внутри квадратных скобок, и те, которые используются вне квадратных скобок. Вне квадратных скобок используются следующие метасимволы:

Метасимволы вне квадратных скобок
Метасимвол | Описание
\ | общий экранирующий символ, допускающий несколько вариантов применения
^ | декларирует начало данных (или строки в многострочном режиме)
$ | декларирует конец данных или до завершения строки (или окончание строки в многострочном режиме)
. | соответствует любому символу, кроме перевода строки (по умолчанию)
[ | начало описания символьного класса
] | конец описания символьного класса
| | начало ветки условного выбора
( | начало подмаски
) | конец подмаски
? | расширяет смысл метасимвола (, является также квантификатором, означающим 0 или 1 вхождение, также преобразует жадные квантификаторы в ленивые (смотрите повторение))
* | квантификатор, означающий 0 или более вхождений
+ | квантификатор, означающий 1 или более вхождений
{ | начало количественного квантификатора
} | конец количественного квантификатора
Часть шаблона, заключенная в квадратные скобки называется символьным классом. В символьном классе используются следующие метасимволы:
Метасимволы внутри квадратных скобок (символьном классе)
Метасимвол | Описание
\ | общий экранирующий символ
^ | означает отрицание класса, допустим только в начале класса
- | означает символьный интервал
Следующие разделы детально описывают каждый из перечисленных метасимволов.


Экранирующие последовательности

Обратная косая черта ('\') имеет несколько применений. Прежде всего, если она предшествует не буквенно-цифровому символу, она снимает с него специальное значение, которое он мог иметь. Применение обратной косой черты как экранирующего символа допустимо как в символьном классе, так и вне него.

Например, если вы хотите задать соответствие символу "*", в шаблоне необходимо указать "\*". Это предотвратит трактование последующего символа как метасимвола с особым значением. Всегда безопасно экранировать не буквенно-цифровые символы с помощью "\", если вы хотите убедиться, что они означают в шаблоне самих себя. В частном случае для сопоставления с самим символом обратной косой черты, используйте запись "\\".

Замечание:

PHP-строки, заключенные в одинарные и двойные кавычки, интерпретируют обратную косую черту по-разному. Поэтому, если необходимо совпадение \ с регулярным выражением \\, в PHP-коде нужно использовать "\\\\" или '\\\\'.

В случае, если указан модификатор PCRE_EXTENDED, пробельные символы в шаблоне (вне описания символьного класса) игнорируются. Также игнорируется часть строки, находящаяся между символом "#" (опять же, не участвующем в описании символьного класса) и следующим символом перевода строки. В таком случае обратный слеш можно применять как экранирующий символ для указания вхождений пробельных символов или символа "#" в шаблоне.

Второе применение обратного слеша заключается в том, что он позволяет использовать непечатные символы в видимой форме в описании шаблона. При том, что в PCRE нет ограничений на использование непечатных символов (исключая бинарный ноль, который интерпретируется как конец шаблона), при редактировании программного кода в каком-либо текстовом редакторе гораздо удобнее использовать следующие комбинации, чем реальные символы, которые они представляют:

\a
символ оповещения, сигнал, (BEL, шестнадцатеричный код 07)
\cx
"Ctrl+x", где x - произвольный символ
\e
escape (шестнадцатеричный код 1B)
\f
разрыв страницы (шестнадцатеричный код 0C)
\n
перевод строки (шестнадцатеричный код 0A)
\p{xx}
символ со свойством xx, подробнее смотрите свойства unicode
\P{xx}
символ без свойства xx, подробнее смотрите свойства unicode
\r
возврат каретки (шестнадцатеричный код 0D)
\R
разрыв строки: совпадает с \n, \r и \r\n
\t
табуляция (шестнадцатеричный код 09)
\xhh
символ с шестнадцатеричным кодом hh
\ddd
символ с восьмеричным кодом ddd, либо ссылка на подмаску

Если быть более точным, комбинация "\cx" интерпретируется следующим образом: если "x" - символ нижнего регистра, он преобразуется в верхний регистр. После этого шестой бит символа (шестнадцатеричный код 40) инвертируется. Таким образом "\cz" интерпретируется как шестнадцатеричное значение 1A, в то время как "\c{" получает шестнадцатеричное значение 3B, а "\c;" - 7B.

После "\x" считываются еще две шестнадцатеричные цифры (они могут быть записаны в нижнем или верхнем регистре). В режиме UTF-8, разрешается использование "\x{...}", где содержимое скобок является строкой из шестнадцатеричных цифр. Она интерпретируется как символ UTF-8 character с кодом, совпадающим с данным шестнадцатеричным числом. Исходная шестнадцатеричная экранирующая последовательность, \xhh, совпадает с двухбайтным UTF-8 символом, если его значение превышает 127.

После "\0" считываются две восьмеричные цифры. Если в записи менее двух цифр, будут использованы все фактически присутствующие цифры. Таким образом, последовательность "\0\x\07" будет интерпретирована как два бинарных нуля, за которыми следует символ оповещения (звонок). В случае, если вы используете представление числа в восьмеричном коде, убедитесь, что за начальным нулем следуют две значащие цифры.

Обработка обратного слеша, за которым следует ненулевая цифра, несколько сложнее. Вне символьного класса PCRE воспринимает обратный слеш и следующие за ним цифры как десятичное число. Если полученное значение меньше десяти, либо если шаблон содержит по меньшей мере такое же количество предшествующих текущей позиции подмасок, вся конструкция интерпретируется как ссылка на подмаску. Более детальное описание будет приведено ниже при обсуждении механизма работы подмасок.

Внутри символьного класса, либо если полученное значение больше 9 и соответствующее количество предшествующих подмасок отсутствует, PCRE считывает до трех восьмеричных цифр, следующих за обратным слешем, и генерирует один байт из последних 8-ми значащих битов полученного значения. Все последующие цифры обозначают себя же. Например:

\040
еще один способ записи пробела
\40
то же самое в случае, если данной записи предшествует менее сорока подмасок
\7
всегда интерпретируется как ссылка на подмаску
\11
может быть как обратной ссылкой, так и альтернативной записью символа табуляции
\011
всегда интерпретируется как символ табуляции
\0113
символ табуляции, за которым следует цифра "3"
\113
интерпретируется как символ с восьмеричным кодом 113 (так как ссылок на подмаски не может быть более чем 99)
\377
байт, всецело состоящий из единичных битов
\81
либо обратная ссылка, либо бинарный ноль, за которым следуют цифры "8" и "1"

Следует помнить, что восьмеричные значения, превышающие 100, следует писать без лидирующего нуля, так как читается не более трех восьмеричных цифр.

Все последовательности, определяющие однобайтное значение, могут встречаться как внутри, так и вне символьных классов. Кроме того, внутри символьного класса запись "\b" интерпретируется как символ возврата ('backspace', шестнадцатеричный код 08). Вне символьного класса она имеет другое значение (какое именно, описано ниже).

Третье использование обратного слеша - указание общего типа символов:

\d
любая десятичная цифра
\D
любой символ, кроме десятичной цифры
\h
любой горизонтальный пробельный символ (начиная с версии PHP 5.2.4)
\H
любой символ, не являющийся горизонтальным пробельным символом (начиная с версии PHP 5.2.4)
\s
любой пробельный символ
\S
любой непробельный символ
\v
любой вертикальный пробельный символ (начиная с версии PHP 5.2.4)
\V
любой символ, не являющийся вертикальным пробельным символом (начиная с версии PHP 5.2.4)
\w
Любой символ, образующий "слово"
\W
Любой символ, не образующий "слово"

Каждая пара таких специальных последовательностей делит полное множество всех символов на два непересекающихся множества. Любой символ соответствует одному и только одному множеству из пары.

Следующие символы считаются как "пробельные": HT (9), LF (10), FF (12), CR (13), и пробел (32). Тем не менее, если идет локале-зависимый поиск, и произойдет совпадение с символами в диапазоне 128-255, они также будут восприняты как пробельные, например NBSP (A0).

Символ, образующий "слово" - это произвольная цифра, буква или символ подчеркивания, проще говоря, любой символ, который может являться частью "слова" в Perl. Определение букв и цифр управляется символьными таблицами, с которыми была собрана PCRE. И, как следствие, эти наборы могут отличаться в различных локализированных дистрибутивах. Например, в локали "fr" (Франция) некоторые символы с кодом выше 128 используются для записи ударных символов и, соответственно, соответствуют маске \w.

Описанные выше типы символов могут применяться как внутри, так и вне символьных классов, и соответствуют одному символу данного типа. Если текущая точка сравнения находится в конце строки, ни один из них не сможет совпасть, так как нет символа, с которым могло бы произойти совпадение.

Четвертое использование обратного слеша - определение некоторых формальных утверждений, описывающих условия касательно месторасположения особых позиций в строке и совершенно не затрагивающих сами символы. Использование подмасок как более сложных формальных утверждений описано ниже. Такими управляющими последовательностями являются:

\b
граница слова
\B
не является границей слова
\A
начало данных (независимо от многострочного режима)
\Z
конец данных либо позиция перед последним переводом строки (независимо от многострочного режима)
\z
конец данных (независимо от многострочного режима)
\G
первая совпадающая позиция в строке

Описанные выше последовательности не могут встречаться в символьных классах (исключая комбинацию "\b", которая внутри класса означает символ возврата 'backspace').

Границей слова считается такая позиция в строке, в которой из текущего и предыдущего символа только один соответствует \w или \W (т.е. один из них соответствует \w, а другой \W). Начало или конец строки также соответствуют границе слова в случае, если первый или, соответственно, последний символ совпадает с \w.

Специальные последовательности \A, \Z и \z отличаются от общеупотребляемых метасимволов начала строки '^' и конца строки '$' (описанных в разделе якоря) тем, что они всегда совпадают либо в самом начале либо в самом конце строки. На них никак не влияют опции PCRE_MULTILINE и PCRE_DOLLAR_ENDONLY. Разница между \Z и \z в том, что \Z соответствует позиции перед последним символом в случае, если последний символ - перевод строки, кроме самого конца строки. В то время, как \z соответствует исключительно концу данных.

Утверждение \G является истинным только в том случае, если текущая проверяемая позиция находится в начале совпадения, указанного параметром offset функции preg_match(). Она отличается от \A при ненулевом значении параметра offset.

\Q и \E могут быть использованы для игнорирования метасимволов регулярных выражений в шаблоне. Например: \w+\Q.$.\E$ совпадет с один или более символов, составляющих "слово",за которыми следуют символы .$. и якорь в конце строки.

Последовательность \K может быть использована для сброса начала совпадения начиная с версии PHP 5.2.4. Например, шаблон foo\Kbar совпадет с "foobar", но сообщит о том, что совпал только с "bar". Использование \K не мешает установке подмасок. Например, если шаблон (foo)\Kbar совпадет со строкой "foobar", первой подмаской все равно будет являться "foo".


Свойства Unicode-символов

Начиная с версии 5.1.0, были добавлены три дополнительные управляющие последовательности, совпадающих с некоторыми общими символьными типами в режиме UTF-8. Вот они:

\p{xx}
символ со свойством xx
\P{xx}
символ без свойства xx
\X
расширенная последовательность Unicode

Имена свойств, представленные выше как xx, ограничены общими категориями свойств Unicode. Каждый символ имеет ровно одно такое свойство, указываемое двухбуквенной аббревиатурой. Для совместимости с Perl также можно указать отрицание добавлением знака "^" между открывающей скобкой и именем свойства. Например, \p{^Lu} - это то же самое, что и \P{Lu}.

Если с \p или \P указана только одна буква, она включает все свойства, которые начинаются с этой буквы. В этом случае, если не используется отрицание, фигурные скобки необязательны; следующие два примера эквивалентны:

\p{L}
\pL

Поддерживаемые коды свойств
Свойство | Совпадение | Замечание
C | Другое |
Cc | Control |
Cf | Формат |
Cn | Не присвоено |
Co | Частное использование |
Cs | Суррогат |
L | Буква | Включает следующие свойства: Ll, Lm, Lo, Lt и Lu.
Ll | Строчная буква |
Lm | Модификатор буквы |
Lo | Другая буква |
Lt | Заглавная буква |
Lu | Прописная буква |
M | Знак |
Mc | Пробельный знак |
Me | Окружающий знак |
Mn | Не пробельный знак |
N | Число |
Nd | Десятичное число |
Nl | Буквенное число |
No | Другое число |
P | Пунктуация |
Pc | Соединяющая пунктуация |
Pd | Знаки тире |
Pe | Закрывающая пунктуация |
Pf | Заключительная пунктуация |
Pi | Начальная пунктуация |
Po | Другая пунктуация |
Ps | Открывающая пунктуация |
S | Символ |
Sc | Денежный знак |
Sk | Модификатор символа |
Sm | Математический символ |
So | Другой символ |
Z | Разделитель |
Zl | Разделитель строки |
Zp | Разделитель абзаца |
Zs | Пробельный разделитель |

Расширенные свойства, такие как музыкальные символы (InMusicalSymbols) не поддерживаются в PCRE.

Указывание регистро-независимого (безрегистрового) режима не влияет на эти управляющие последовательности. Например, \p{Lu} всегда совпадает только с прописными буквами.

Подмножества Unicode символов описываются как принадлежащие определенным сценариям. Любой символ из этих подмножеств может быть найден с использованием имени сценария. Например:

  • \p{Greek}
  • \P{Han}

Также те символы, которые не являются часть конкретного сценария объединены вместе в сценарий Common. Текущий список сценариев:

Поддерживаемые сценарии
Arabic | Armenian | Avestan | Balinese | Bamum
Batak | Bengali | Bopomofo | Brahmi | Braille
Buginese | Buhid | Canadian_Aboriginal | Carian | Chakma
Cham | Cherokee | Common | Coptic | Cuneiform
Cypriot | Cyrillic | Deseret | Devanagari | Egyptian_Hieroglyphs
Ethiopic | Georgian | Glagolitic | Gothic | Greek
Gujarati | Gurmukhi | Han | Hangul | Hanunoo
Hebrew | Hiragana | Imperial_Aramaic | Inherited | Inscriptional_Pahlavi
Inscriptional_Parthian | Javanese | Kaithi | Kannada | Katakana
Kayah_Li | Kharoshthi | Khmer | Lao | Latin
Lepcha | Limbu | Linear_B | Lisu | Lycian
Lydian | Malayalam | Mandaic | Meetei_Mayek | Meroitic_Cursive
Meroitic_Hieroglyphs | Miao | Mongolian | Myanmar | New_Tai_Lue
Nko | Ogham | Old_Italic | Old_Persian | Old_South_Arabian
Old_Turkic | Ol_Chiki | Oriya | Osmanya | Phags_Pa
Phoenician | Rejang | Runic | Samaritan | Saurashtra
Sharada | Shavian | Sinhala | Sora_Sompeng | Sundanese
Syloti_Nagri | Syriac | Tagalog | Tagbanwa | Tai_Le
Tai_Tham | Tai_Viet | Takri | Tamil | Telugu
Thaana | Thai | Tibetan | Tifinagh | Ugaritic
Vai | Yi |  |  |

\X находит расширенный Unicode графемный кластер. Расширенный графемный кластер - это один или несколько Unicode символов, которые объединяются в один символьный знак (глиф). По сути, его можно рассматривать как Unicode эквивалент для ., так как он находит один независимый комплексный символ, независимо от того, сколько отдельных символов используется для его отрисовки.

Для версий PCRE до 8.32 (что соответствует версиям PHP до 5.4.14 при использовании встроенной библиотеки PCRE), \X равносилен (?>\PM\pM*). Таким образом, он ищет символы без свойства "mark", и рассматривает последовательность как атомарную группу (см ниже). Символы со свойством "mark" обычно являются отличительными признаками, которые влияют на предыдущий символ.

Совпадение символов по Unicode свойству не является быстрой операцией, потому для этой цели PCRE необходимо осуществить поиск в структуре данных с более чем пятнадцатью тысяч символов. Поэтому традиционные управляющие последовательности в PCRE, такие как \d и \w, не используют Unicode свойства.


Якоря

По умолчанию, вне символьного класса метасимвол начала строки (^) соответствует началу обрабатываемых данных (если не используются модификаторы). Внутри символьного класса он (^) имеет совершенно другое значение.

Метасимвол начала строки (^) не обязан быть первым символом шаблона в случае, если в шаблоне используются несколько альтернатив, но должен быть первым символом в каждой из альтернатив, в которой он встречается, если шаблон когда-либо сопоставим с соответствующей веткой. Если все альтернативы начинаются с метасимвола начала строки (^), то шаблон ограничен для совпадения исключительно в начале строки, говорят что шаблон "заякорен". (Существуют и другие способы "заякорить" шаблон).

Соответствие метасимволу конца строки (знак доллара, $) достигается только в конце строки или непосредственно перед последним символом в случае, если им является перевод строки (если модификаторы не указаны). Метасимвол конца строки ($) не обязан быть последним символом шаблона в случае, если используется несколько альтернатив, но должен быть последним символом в каждой альтернативе, в которой он фигурирует. Внутри символьного класса символ '$' не имеет специального значения.

Поведение метасимвола конца строки может быть изменено при помощи модификатора PCRE_DOLLAR_ENDONLY так, чтобы он соответствовал исключительно концу строки. Данный флаг никак не касается специальной последовательности \Z.

Значение метасимволов начала и конца строки меняется в случае, если используется модификатор PCRE_MULTILINE. В таком случае, помимо совпадений в начале или в конце строки, метасимволы '^' и '$' соответствуют позиции непосредственно после символа перевода строки "\n". Например, шаблон /^abc$/ встречается в строке "def\nabc" в многострочном режиме и не встречается в нормальном режиме. Таким образом, шаблон который "заякорен" в однострочном режиме, все ветки которого, начинаются с "^", не будет являться "заякоренным" в многострочном режиме. Модификатор PCRE_DOLLAR_ENDONLY игнорируется в случае, если модификатор установлен PCRE_MULTILINE.

Следует заметить, что служебные последовательности \A, \Z и \z могут использоваться для сопоставления с началом либо концом строки в обоих режимах. И если все ветви шаблона начинаются с \A, шаблон будет "заякорен" независимо от присутствия модификатора PCRE_MULTILINE.


Метасимвол точка

Вне символьного класса точка соответствует любому (в том числе и непечатному, бинарному) символу, кроме символа перевода строки '\n' (в обычном режиме). В случае, если используется модификатор PCRE_DOTALL, точка соответствует также символу перевода строки. Обработка метасимвола "точка", никак не связана с метасимволами начала и конца строки, единственное, что у них общего - так это специальное отношение к символу перевода строки. Внутри символьного класса точка не имеет специального значения.

Для совпадения с одним байтом можно использовать последовательность \C. Это может быть полезно в режиме UTF-8, так как с точкой в этом режиме будет совпадать целый символ, который может состоять из нескольких байт.


Символьные классы

Открывающая квадратная скобка объявляет начало символьного класса, завершаемого закрывающей квадратной скобкой. Символ ']' не имеет специального значения, и в случае, если закрывающая квадратная скобка необходима как член символьного класса, она должна быть первым символом непосредственно после открывающей квадратной скобки (если используется метасимвол '^', то непосредственно после него), либо экранироваться при помощи обратного слеша.

Символьный класс соответствует одиночному символу обрабатываемой строки, причем сам символ должен содержаться в наборе, определяемым классом. В случае, если первым символом описания класса является '^', логика работы инвертируется: класс соответствует одиночному символу, который не содержится в наборе, определяемым классом. Если символ '^' необходим как член класса, его не следует помещать первым символом в описании класса либо необходимо экранировать при помощи обратного слеша.

К примеру, символьный класс [aeiou] соответствует любой гласной букве в нижнем регистре, в то время, как [^aeiou] соответствует любому символу, не являющемуся гласной буквой нижнего регистра. Следует понимать, что символ '^' всего лишь удобный инструмент для описания символов, не используемых в сопоставлении, это не утверждение, так как он все же занимает символ в обрабатываемой строке, и не совпадет, если текущая позиция сравнения находится в конце строки.

В случае, если производится регистронезависимое сопоставление, любая буква символьного класса соответствует как своему верхнему, так и нижнему регистру. Таким образом символьный класс [aeiou] соответствует как 'A', так и 'a'. Аналогично, класс [^aeiou] не соответствует ни 'A', ни 'a', тогда как в регистрозависимом режиме совпадение бы состоялось.

Внутри символьного класса символ перевода строки "\n" не имеет специального значения, независимо от наличия модификаторов PCRE_DOTALL и PCRE_MULTILINE. Символьные классы, построенные на отрицании, например [^a], всегда соответствуют символу перевода строки.

Символ минус '-' (дефис) внутри класса используется для задания символьного диапазона. Например, [d-m] соответствует любому символу, находящемуся между 'd' и 'm', включая сами символы 'd' и 'm'. В случае, если '-' необходим, как член класса, он должен находиться в такой позиции, в которой он не может интерпретироваться как диапазон (как правило, это первый и последний символ описания класса), либо экранироваться при помощи обратного слеша.

Недопустимо использовать закрывающую квадратную скобку "]" в качестве границы символьного диапазона. К примеру шаблон '[W-]46]' будет интерпретирован как символьный класс, состоящий из двух символов ("W" и "-"), за которыми следует строка "46]", таким образом шаблон будет соответствовать строкам "W46]" или "-46]". Чтобы все же использовать символ ']' в описании диапазона, его необходимо экранировать при помощи обратного слеша, к примеру шаблон [W-\]46] будет интерпретирован как символьный класс, состоящий из символьного диапазона вместе с двумя последующими символами '4' и '6'. Такого же результата можно достичь используя шестнадцатеричное или восьмеричное представление символа ']'.

Для построения символьных диапазонов используется ASCII представление символов. Таким образом пограничные символы можно задавать непосредственно в числовом представлении, например, [\000-\037]. В случае, если выполняется регистронезависимый поиск, символы, описанные в диапазоне, также будут соответствовать символам обеих регистров. К примеру, диапазоны [W-c] и [][\^_`wxyzabc] эквивалентны (в случае регистронезависимого поиска). Например, если установлена локаль "fr" (Франция) можно использовать [\xc8-\xcb] для задания соответствия ударному 'E' в обоих регистрах.

Общие типы символов \d, \D, \s, \S, \w, и \W также могут использоваться в символьных классах, добавляя при этом в класс те символы, которым соответствуют. Например, класс [\dABCDEF] соответствует любой шестнадцатеричной цифре. Символ '^' может использоваться совместно с общим типом, взятым в верхнем регистре, для указания более узкого набора символов. Например, класс [^\W_] соответствует любой букве или цифре, но не символу подчеркивания.

Все не буквенно-цифровые символы, кроме \, -, ^ (вначале) и завершающего ']', не являются специальными символами, но использование экранирующего слеша перед ними не навредит. Символ конца шаблона всегда является особым случаем и всегда должен быть проэкранирован внутри выражения.

Perl поддерживает нотацию POSIX для символьных классов. Это включает использование имен, заключенных в [: и :], в свою очередь заключенных в квадратные скобки. PCRE также поддерживает эту запись. Например, [01[:alpha:]%] совпадет с "0", "1", любым алфавитным символом или "%". Поддерживаются следующие имена классов:

Символьные классы
alnum | буквы и цифры
alpha | буквы
ascii | символы с кодами 0 - 127
blank | только пробел или символ табуляции
cntrl | управляющие символы
digit | десятичные цифры (то же самое, что и \d)
graph | печатные символы, исключая пробел
lower | строчные буквы
print | печатные символы, включая пробел
punct | печатные символы, исключая буквы и цифры
space | пробельные символы(почти то же самое, что и \s)
upper | прописные буквы
word | символы "слова" (то же самое, что и \w)
xdigit | шестнадцатеричные цифры
Класс пробельных символов (space) - это горизонтальная табуляция (HT, 9), перевод строки (LF, 10), вертикальная табуляция (VT, 11), разрыв страницы (FF, 12), возврат каретки (CR, 13) и пробел (32). Учтите, что этот список включает вертикальную табуляцию (VT, код 11). Это отличает "space" от \s, который не включает этот символ (для совместимости с Perl).

Название word - это расширение Perl, а blank - расширение GNU, начиная с версии Perl 5.8. Другое расширение Perl - это отрицание, которое указывается символом ^ после двоеточия. Например, [12[:^digit:]] совпадет с "1", "2", или с любой не-цифрой.

В режиме UTF-8, символы со значениями, превышающими 128, не совпадут ни с одним из символьных классов POSIX. Начиная с PHP 5.3.0 и libpcre 8.10 некоторые символьные классы изменены, чтобы использовать свойства символов Unicode, в этом случае упомянутое ограничение не применяется. Читайте » руководство PCRE(3) для подробностей.

Свойства символов Unicode могут возникнуть внутри символьного класса. Они не могут быть частью диапазона. Символ минус (дефис), после символьного класс Unicode будет совпадать буквально. Попытка закончить диапазон с помощью свойства символа Unicode вызовет предупреждение.


Альтернативный выбор

Символ вертикальной черты '|' используется для разделения альтернативных масок. Например, шаблон gilbert|sullivan соответствует как "gilbert", так и "sullivan". Допустимо указывать любое количество альтернатив, также допустимо указывать пустые альтернативы (соответствуют пустой строке). В процессе поиска соответствия просматриваются все перечисленные альтернативы слева направо, останавливаясь после первого найденного соответствия. В случае, если альтернативные варианты перечислены в подмаске, то весь шаблон совпадет только в случае соответствия одного из альтернативных вариантов подмаски и остатка основного шаблона.


Установка внутренних опций

Установки PCRE_CASELESS, PCRE_MULTILINE, PCRE_DOTALL, PCRE_UNGREEDY, PCRE_EXTRA, PCRE_EXTENDED и PCRE_DUPNAMES могут быть локально предопределены в шаблоне с использованием специальных Perl-последовательностей, заключенных между символами "(?" и ")". Ниже представлен список этих опций:

Символы внутренних опций
i | для PCRE_CASELESS
m | для PCRE_MULTILINE
s | для PCRE_DOTALL
x | для PCRE_EXTENDED
U | для PCRE_UNGREEDY
X | для PCRE_EXTRA
J | для PCRE_INFO_JCHANGED

Например, (?im) указывает на регистронезависимый, многострочный режим поиска. Также можно сбросить опцию, поставив перед ней символ '-', либо комбинировать установку и отмену режимов. Например, (?im-sx) устанавливает флаги PCRE_CASELESS, PCRE_MULTILINE и отменяет флаги PCRE_DOTALL и PCRE_EXTENDED. В случае, если символ расположен одновременно после и перед символом '-', опция будет отменена.

Если изменение опции происходит на самом верхнем уровне (т.е. вне подмаски), изменение будет применено к оставшейся части шаблона. Таким образом, /ab(?i)c/ совпадет только с "abc" и "abC".

Если изменение опции происходит внутри подмаски, эффект будет другим. Это изменение поведения в Perl 5.005. Изменение опции внутри подмаски повлияет только на оставшуюся часть этой подмаски, то есть (a(?i)b)c совпадет только с 'abc' и 'aBc' и больше ни с чем (разумеется, если PCRE_CASELESS не включен). Это означает, что в разных частях шаблона опции могут отличаться. Любые изменения, произошедшие в одной альтернативной ветке, переносятся и в другие ветки в пределах одной подмаски. Например, (a(?i)b|c) совпадет с "ab", "aB", "c", и "C", хотя и при совпадении с "C" первая ветка была отброшена до установки опции. Это происходит потому, что установка всех опций происходит на этапе компиляции. В противном случае могло быть весьма странное поведение.

Опции, специфичные для PCRE, такие как PCRE_UNGREEDY и PCRE_EXTRA могут быть установлены точно так же, как и Perl-совместимые опции, путем использования символов U и X соответственно. Флаг (?X) специфичен тем, что должен быть расположен в шаблоне прежде, чем будет использоваться любая другая дополнительная возможность, даже если он расположен на верхнем уровне. Лучше всего размещать флаг (?X) в самом начале шаблона.


Подмаски

Подмаски ограничиваются круглыми скобками, которые могут быть вложенными. Использование части шаблона как подмаски имеет следующие функции:

  1. Локализирует набор альтернатив. Например, шаблон cat(aract|erpillar|) соответствует одному из слов "cat", "cataract" или "caterpillar". Без использования скобок он соответствовал бы строкам "cataract", "erpillar" или пустой строке.

  2. Указывает на необходимость захвата подстроки (как показано выше). В том случае, если соответствие шаблону было найдено, подстрока, соответствующая подмаске, также передается обратно вызывающему при помощи аргумента ovector функции pcre_exec(). Открывающие круглые скобки нумеруются слева направо (начиная с единицы) и их порядковые номера используются для нумерации соответствующих подстрок в результате.

Например, если строка "the red king" сопоставляется с шаблоном the ((red|white) (king|queen)), будут захвачены подстроки "red king", "red" и "king", с номерами 1, 2 и 3 соответственно.

На самом деле выполнение одновременно двух функций не всегда удобно. Бывают случаи, когда необходима группировка альтернатив без захвата строки. В случае, если после открывающей круглой скобки следует "?:", захват строки не происходит, и текущая подмаска не нумеруется. Например, если строка "the white queen" сопоставляется с шаблоном the ((?:red|white) (king|queen)), будут захвачены подстроки "white queen" и "queen", и они будут пронумерованы 1 и 2 соответственно. Максимальное количество захватывающих подмасок - 65535. Такие большие шаблоны могут не скомпилироваться, в зависимости от настроек libpcre.

В случае, если в незахватывающей подмаске необходимо указать дополнительные опции, можно воспользоваться удобным сокращением: символ, обозначающий устанавливаемую опцию помещается между "?" и ":". Таким образом, следующие два шаблона

(?i:saturday|sunday)
(?:(?i)saturday|sunday)

соответствуют одному и тому же набору строк. Поскольку альтернативные версии берутся слева направо, и установленные опции сохраняют свое действие до конца подмаски, опция, установленная в одной ветке, также имеет эффект во всех последующих ветках. Поэтому приведенные выше шаблоны совпадают как с "SUNDAY", так и с "Saturday".

Также можно использовать именованные подмаски с помощью синтаксиса (?P<name>pattern). Эта подмаска будет индексирована в массиве совпадений кроме обычного числового индекса, еще и по имени name. В PHP 5.2.2 было добавлено два альтернативных синтаксиса: (?<name>pattern) и (?'name'pattern).

Иногда бывает необходимо иметь несколько совпадений, исключающих друг друга. Обычно, каждое такое совпадение получает свой собственный номер, даже если шаблон позволяет совпасть только одному из них. Синтаксис (?| позволяет обойти это поведение и убрать дублирующиеся номера. Рассмотрим следующее регулярное выражение, сопоставленное со строкой Sunday:

(?:(Sat)ur|(Sun))day

Здесь Sun сохраняется в ссылке 2, тогда как ссылка 1 пуста. Если же совпадет Sat, то она будет помещена в ссылку 1, а ссылка 2 вообще не будет существовать. Использование (?| в шаблоне решает эту проблему:

(?|(Sat)ur|(Sun))day

В этом шаблоне обе подмаски Sun и Sat будут сохранены под номером 1.


Повторение

Повторение задается при помощи квантификаторов, следующих за любым из указанных ниже элементов:

  • произвольным, возможно экранированным, символом
  • метасимволом "точка"
  • символьным классом
  • ссылкой на предыдущий фрагмент шаблона (см. следующий раздел)
  • взятой в круглый скобки подмаской (если это не утверждение - см. далее)

Общий квантификатор повторения указывает минимальное и максимальное допустимое количество совпадений, согласно двум числам, заключенными в фигурные скобки и разделенными запятой. Числа должны быть меньше чем 65536, и первое число не должно превышать второе по значению. Например: z{2,4} соответствует "zz", "zzz" или "zzzz". Закрывающая фигурная скобка сама по себе не является специальным символом. В случае, если второе число опущено, но запятая присутствует, нет верхнего предела; в случае, если и второе число и запятая опущены, требуется точное число повторений. Таким образом [aeiou]{3,} соответствует как минимум трем последовательным гласным (а также любому их количеству выше трех), в то время как \d{8} соответствует ровно восьми цифрам. Открывающая фигурная скобка, расположенная в недопустимой для квантификатора позиции, либо не соответствующая синтаксису квантификатора, интерпретируется как обыкновенная символьная строка. Например, {,6} не является квантификатором, а интерпретируется как символьная строка из четырех символов.

Квантификатор {0} является допустимым и ведет себя таким образом, будто бы сам квантификатор и предшествующий ему элемент отсутствуют.

Для удобства (а так же обратной совместимости) три наиболее распространённых квантификатора имеют односимвольные аббревиатуры:

Односимвольные квантификаторы
* | эквивалентен {0,}
+ | эквивалентен {1,}
? | эквивалентен {0,1}

Можно конструировать бесконечные циклы, указав после шаблона, совпадающего с пустой строкой, квантификатор, не имеющий верхнего предела, например: (a?)*

Ранние версии Perl и PCRE выдавали ошибку во время компиляции для таких шаблонов. Однако, поскольку бывают случаи, когда подобные шаблоны могли бы быть полезны, была добавлена поддержка таких шаблонов. Но если любое повторение такой подмаски фактически не совпадает ни с какими символами, цикл принудительно прерывается.

По умолчанию, все квантификаторы являются "жадными", это означает, что они совпадают максимально возможное количество раз (но не более, чем максимально допустимое количество раз), не приводя к невозможности сопоставления остальных частей шаблона. Классический пример проблем, которые могут возникнуть в связи с такой особенностью квантификаторов - нахождение комментариев в C-программах. Комментарием считается произвольный текст, находящийся внутри символьных комбинаций /* и */ (при этом, символы '/' и '*' также могут быть частью комментария). Попытка найти комментарии при помощи шаблона /\*.*\*/ в строке /* первый комментарий */ не комментарий /* второй комментарий */ закончится неудачей, поскольку указанный шаблон соответствует всей строке целиком (из-за жадности квантификатора '*').

Однако, если сразу же после квантификатора идет вопросительный знак, он становится "ленивым" и соответствует минимально допустимому количеству раз. Таким образом, шаблон /\*.*?\*/ корректно находит все комментарии языка Си. Использование символа '?' после квантификатора влияет исключительно на его жадность, и не затрагивает никакие другие свойства. Не следует путать использование символа '?' как, собственно, квантификатора (ноль либо одно соответствие) и как ограничителя жадности. Также в следствие его двойственной функциональности может использоваться следующая запись: \d??\d, которая в первую очередь соответствует одной цифре, но также может соответствовать и двум цифрам, если это необходимо для соответствия остальных частей шаблона.

В случае, если установлена опция PCRE_UNGREEDY (отсутствующая в Perl), квантификаторы не являются жадными по умолчанию, но могут становиться таковыми, если за ними следует символ '?'. Говоря другими словами, знак вопроса инвертирует жадность квантификаторов.

Квантификаторы, за которыми следует +, являются "захватывающими". Они поглощают столько символов, сколько могут и не возвращаются обратно для совпадения остатка шаблона. Таким образом .*abc совпадет с "aabc", а .*+abc - нет, потому что .*+ захватит всю строку целиком. Захватывающие квантификаторы могут быть использованы для ускорения обработки.

В случае, если используется подмаска с квантификатором, для которого задано минимальное количество повторений (больше одного), либо задано максимальное количество повторений, то для откомпилированного шаблона требуется больше памяти (пропорционально минимуму либо максимуму соответственно).

В случае, если шаблон начинается с .* либо .{0,}, и установлен модификатор PCRE_DOTALL (являющийся аналогом Perl-опции /s), который позволяет метасимволу "точка" соответствовать переводам строк, шаблон неявно заякоривается. Это происходит поскольку все последующие конструкции будут сопоставляться с каждой символьной позицией в обрабатываемом тексте, и, как следствие, начало строки - единственная позиция, дающая наиболее полное совпадение. PCRE рассматривает каждый такой шаблон, как если бы ему предшествовала последовательность \A. В случае, если известно, что данные не содержат переводов строк, а сам шаблон начинается на .*, рекомендуется использовать PCRE_DOTALL для оптимизации шаблона, либо использовать метасимвол '^' для указания явного заякоривания.

В случае, если захватывающая подмаска повторяется, результирующим значением подмаски будет подстрока, совпадающая с результатом последней итерации. Например, после того, как (tweedle[dume]{3}\s*)+ совпадет с "tweedledum tweedledee", результирующим значением подмаски будет "tweedledee". Однако, если присутствуют вложенные захватывающие подмаски, соответствующие значения могут быть установлены в предыдущих итерациях. Например, после того, как /(a|(b))+/ совпадет с "aba", значением второй захваченной подстроки будет "b".


Обратные ссылки

Вне символьного класса обратный слеш с последующей цифрой больше нуля (и, возможно, последующими цифрами) интерпретируется как ссылка на предшествующую захватывающую подмаску, предполагая, что соответствующее количество предшествующих открывающих круглых скобок присутствует.

Однако, в случае, если следующее за обратным слешем число меньше 10, оно всегда интерпретируется как обратная ссылка, и приводит к ошибке только в том случае, если нет соответствующего числа открывающих скобок. Другими словами, открывающие скобки не обязаны предшествовать ссылке для чисел меньше 10. "Упреждающая обратная ссылка" может иметь смысл, если используется повторение и более поздняя подмаска участвует в ранней итерации. Более детальную информацию об обработке цифр после обратного слеша можно найти в разделе "Обратный слеш".

Обратная ссылка сопоставляется с частью строки, захваченной соответствующей подмаской, но не с самой подмаской. Таким образом шаблон (sens|respons)e and \1ibility соответствует "sense and sensibility", "response and responsibility", но не "sense and responsibility". В случае, если обратная ссылка обнаружена во время регистрозависимого поиска, то при сопоставлении обратной ссылки регистр также учитывается. Например, ((?i)rah)\s+\1 соответствует "rah rah" и "RAH RAH", но не "RAH rah", хотя сама подмаска сопоставляется без учета регистра.

На одну и ту же подмаску может быть несколько ссылок. Если подмаска не участвовала в сопоставлении, то сопоставление со ссылкой на нее всегда терпит неудачу. Например, шаблон (a|(bc))\2 терпит неудачу, если находит соответствие с "a" раньше, чем с "bc". Поскольку может быть до 99 обратных ссылок, все цифры, следующие за обратным слешем, рассматриваются как часть потенциальной обратной ссылки. Если за ссылкой должна следовать цифра, необходимо использовать ограничитель. В случае, если указан флаг PCRE_EXTENDED, ограничителем может быть любой пробельный символ. В противном случае можно использовать пустой комментарий.

Ссылка на подмаску, внутри которой она расположена, всегда терпит неудачу, если это первое сопоставление текущей подмаски. Например, шаблон (a\1) не соответствует ни одной строке. Но все же такие ссылки бывают полезны в повторяющихся подмасках. Например, шаблон (a|b\1)+ совпадает с любым количеством "a", "aba", "ababaa"... При каждой итерации подмаски обратная ссылка соответствует той части строки, которая была захвачена при предыдущей итерации. Чтобы такая конструкция работала, шаблон должен быть построен так, чтобы при первой итерации сопоставление с обратной ссылкой не производилось. Этого можно достичь, используя альтернативы (как в предыдущем примере), либо квантификаторы с минимумом, равным нулю.

Начиная с PHP 5.2.2, управляющая последовательность \g может быть использована для абсолютных и относительных ссылок на подмаски. После этой последовательности должно быть указано беззнаковое или отрицательное число, при желании заключенное в фигурные скобки. Последовательности \1, \g1 и \g{1} эквивалентны друг другу. Использование этого шаблона с беззнаковым числом поможет избежать двусмысленности, присущей числам после обратного слеша. Это также помогает отличить обратные ссылки от символов в восьмеричном формате, а также упрощает запись числового литерала сразу после обратной ссылки, например, \g{2}1.

Использование отрицательных чисел с \g полезно при использовании относительных ссылок. Например, (foo)(bar)\g{-1} соответствует "foobarbar", а (foo)(bar)\g{-2} соответствует "foobarfoo". Это также может быть полезно в длинных шаблонах, в качестве альтернативы отслеживания числа подмасок, на которые можно ссылаться в последующей части шаблона.

Указать обратную ссылку на именованную подмаску можно с помощью (?P=name) или, начиная с PHP 5.2.2, \k<name> или \k'name'. Кроме того, в PHP 5.2.4 была добавлена поддержка \k{name} и \g{name}, а в PHP 5.2.7 для \g<name> и \g'name'.


Утверждения

Утверждения - это проверки касательно символов, идущих до или после текущей позиции сопоставления, ничего при этом не поглощая (никакие символы исходного текста не ставятся в соответствие утверждениям). Наиболее простые варианты утверждений, такие как \b, \B, \A, \Z, \z, ^ и $ рассмотрены в escape-последовательности. Более сложные утверждения записываются как подмаски. Утверждения бывают двух видов: те, которые анализируют текст, следующий после текущей позиции (look ahead), и идущий перед ней (look behind).

Сопоставление подмаски, содержащий утверждение, происходит обычным образом, за исключением того, что текущая позиция не изменяется. Утверждения касательно последующего текста начинаются с (?= для положительных утверждений и с (?! для отрицающих утверждений. Например, \w+(?=;) совпадает со словом, за которым следует символ ';', но при этом сама точка с запятой в совпадение не включается. А foo(?!bar) соответствует любому появлению "foo", после которого не идёт "bar". Заметим, что похожий шаблон (?!foo)bar не будет искать вхождение "bar", которому предшествует любая строка за исключением "foo". Но, тем не менее, он будет соответствовать любым вхождениям подстроки "bar", поскольку условие (?!foo) всегда TRUE, если следующие три символа - "bar". Для получения желаемого результата необходимо воспользоваться второй категорией утверждений.

Утверждения касательно предшествующего текста начинаются с (?<= для положительных утверждений и (?<! для отрицающих. Например, (?<!foo)bar найдёт вхождения "bar", которым не предшествует "foo". Сами утверждения 'назад' ограничены так, чтобы все подстроки, которым они соответствуют, имели фиксированную длину. Но, в случае, если используются несколько альтернатив, они не обязаны иметь одинаковую длину. Таким образом шаблон (?<=bullock|donkey) корректен, но (?<!dogs?|cats?) вызовет ошибку во время компиляции. Ветки, которые соответствуют строкам разной длины, разрешены только на верхнем уровне утверждений касательно предшествующего текста. Это расширение относительно Perl 5.005, который требует чтобы все ветки соответствовали строкам одинаковой длины. Такое утверждение как (?<=ab(c|de)) не корректно, поскольку верхний уровень маски может соответствовать строкам разной длины, но его можно преобразовать к корректному шаблону, используя альтернативы на верхнем уровне: (?<=abc|abde) Утверждения касательно предшествующего текста реализованы так, что для каждой альтернативы текущая позиция временно переносится назад, на фиксированную ширину, после чего выполняется поиск соответствия условию. В случае, если перед текущей позицией недостаточно символов, поиск соответствия терпит неудачу. Утверждения назад в сочетании с однократными подмасками могут быть особенно удобны для поиска в конце строки; соответствующий пример приведен в конце раздела "Однократные подмаски".

Несколько утверждений (разных типов) могут присутствовать в утверждении, например: (?<=\d{3})(?<!999)foo совпадает с подстрокой "foo", которой предшествуют три цифры, отличные от "999". Следует понимать, что каждое из утверждений проверяется относительно одной и той же позиции в обрабатываемом тексте. Вначале выполняется проверка того, что предшествующие три символа - это цифры, затем проверяется, чтобы эти же цифры не являлись числом 999. Приведенный выше шаблон не соответствует подстроке "foo", которой предшествуют шесть символов, первые три из которых - цифры, а последние три не образуют "999". Например, он не соответствует строке "123abcfoo", в то время как шаблон (?<=\d{3}...)(?<!999)foo соответствует.

В этом случае анализируются предшествующие шесть символов на предмет того, чтобы первые три из них были цифрами, а последние три не образовали "999".

Утверждения могут быть вложенными, причем в произвольных сочетаниях: (?<=(?<!foo)bar)baz соответствует подстроке "baz", которой предшествует "bar", перед которой, в свою очередь, нет "foo", а (?<=\d{3}...(?<!999))foo - совершенно другой шаблон, соответствующий подстроке "foo", которой предшествуют три цифры и три произвольных символа, отличных от "999".

Утверждающие подмаски являются незахватывающими и неповторяемыми, поскольку бессмысленно повторять одно и то же несколько раз. Если в утверждении произвольного типа находится захватывающая подмаска, она нумеруется в той же последовательности, что и все остальные захватывающие подмаски, но захват соответствующих значений происходит только для положительных утверждений, поскольку для отрицающих это не имеет смысла.

В утверждениях обрабатывается не более, чем 200 захватывающих подмасок.


Однократные подмаски

Как для минимального, так и максимального количества повторений, если последующая часть шаблона терпит неудачу при сопоставлении, происходит повторный анализ повторяемого выражения на предмет того, возможно ли успешное сопоставление всего шаблона при другом количестве повторений. Бывают случаи, когда необходимо изменить описанную логику работы для реализации специфического сопоставления либо оптимизации шаблона (если автор уверен, что других вариантов соответствия нет).

В качестве примера, рассмотрим шаблон \d+foo в применении к строке 123456bar

После того, как \d+ будет сопоставлен с первыми шестью цифрами, сопоставление "foo" потерпит неудачу. После этого, в соответствие \d+, будет сопоставлено 5 цифр, после очередной неудачи будет сопоставлено 4 цифры и так далее. В конце концов весь шаблон потерпит неудачу. Однократные подмаски указывают, что если одна часть шаблона была сопоставлена, ее не стоит анализировать повторно. Применимо к приведенному выше примеру весь шаблон потерпел бы неудачу после первого же неудачного сопоставления с "foo". Записываются однократные шаблоны при помощи круглых скобок следующим образом: (?>. Например: (?>\d+)bar

Этот вид подмаски предотвращает повторный ее анализ в случае, если сопоставление последующих элементов терпят неудачу. Однако, это не мешает повторно анализировать любые другие элементы, в том числе предшествующие однократной подмаске.

Говоря другими словами, подмаски такого типа соответствуют той части подстроки, которой соответствовала бы одиночная изолированная маска, заякоренная на текущей позиции обрабатываемого текста.

Однократные подмаски являются незахватывающими. Простые примеры, подобные приведенному выше, можно охарактеризовать как безусловный захват максимального количества повторений. В то время как \d+ и \d+? корректируются так, чтобы остальные части шаблона так же совпали, (?>\d+) соответствует исключительно максимальной по длине последовательности цифр, даже если это приводит к неудаче при сопоставлении других частей шаблона.

Однократные подмаски могут включать в себя более сложные конструкции, а также могут быть вложенными.

Однократные подмаски могут использоваться совместно с утверждениями касательно предшествующего текста для описания эффективных сопоставлений в конце обрабатываемого текста. Рассмотрим простой шаблон abcd$ в применении к длинному тексту, который не соответствует указанной маске. Поскольку поиск происходит слева направо, вначале PCRE будет искать букву "a", и только потом анализировать следующие записи в шаблоне. В случае, если шаблон указан в виде ^.*abcd$. В таком случае вначале .* сопоставляется со всей строкой, после чего сопоставление терпит неудачу (так как нет последующего символа 'a'). После чего .* сопоставляется со всей строкой, кроме последнего символа, потом кроме двух последних символов, и так далее. В конечном итоге поиск символа 'a' происходит по всей строке. Однако, если шаблон записать в виде: ^(?>.*)(?<=abcd) повторный анализ для .* не выполняется, и, как следствие, может соответствовать только всей строке целиком. После чего утверждение проверяет последние четыре символа на совпадение с 'abcd', и в случае неудачи все сопоставление терпит неудачу. Для больших объемов обрабатываемого текста этот подход имеет значительный выигрыш во времени выполнения.

Если шаблон содержит неограниченное повторение внутри подмаски, которая в свою очередь также может повторяться неограниченное количество раз, использование однократных подмасок позволяет избегать многократных неудачных сопоставлений, которые длятся достаточно продолжительное время. Шаблон (\D+|<\d+>)*[!?] соответствует неограниченному количеству подстрок, которые состоят не из цифр, либо из цифр заключенных в <>, за которыми следует ? либо !. В случае, если в обрабатываемом тексте содержатся соответствия, время работы регулярного выражения будет невелико. Но если его применить к строке aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa это займет длительное время. Это связанно с тем, что строка может быть разделена между двумя частями шаблона многими способами, и все они будут опробованы (в примере мы использовали [?!], поскольку в случае одиночного символа в конце шаблона и PCRE и Perl выполняют оптимизацию. Они запоминают последний одиночный символ и в случае его отсутствия выдают неудачу). Если изменить шаблон на ((?>\D+)|<\d+>)*[!?], не цифровые последовательности не могут быть разорваны, и невозможность сопоставления обнаруживается гораздо быстрее.


Условные подмаски

В PCRE реализована возможность подчинять шаблон условию либо выбирать из двух условных подмасок в зависимости от успеха сопоставления предыдущей подмаски. Условные подмаски имеют две допустимые формы использования:

(?(condition)yes-pattern)
(?(condition)yes-pattern|no-pattern)

В случае успешного сопоставления условия condition, используется подмаска yes-pattern, в противном случае no-pattern (если он присутствует). Если указано более двух альтернатив, возникнет ошибка во время компиляции.

Условия бывают двух видов. В случае, если между скобками заключены цифры, условие будет выполняться в том случае, если подмаска с соответствующим номером была успешно сопоставлена. Рассмотрим следующий шаблон (он содержит незначащий пробел для удобства чтения, подразумевается использование модификатора PCRE_EXTENDED), разделив его для удобства на три смысловые части:

( \( )?    [^()]+    (?(1) \) )

Первая часть соответствует опциональной открывающей скобке, и в случае если она присутствует, захватывает ее как значение первой подмаски. Следующая часть соответствует одному или более символам, отличным от круглой скобки. Третья часть является условной подмаской, зависящей от результата сопоставления первой подмаски. В случае, если в начале обрабатываемых данных была обнаружена открывающая круглая скобка, условие будет интерпретировано как истина, и, следовательно, для успешного сопоставления третьей части шаблона необходима закрывающая круглая скобка. В противном случае, поскольку не указана вторая ветвь условного шаблона, третья часть будет сопоставлена с пустой строкой. Суммируя все вышесказанное, приведенный шаблон совпадает с последовательностью не-скобок, возможно, заключенной в круглые скобки.

Если условием является строка (R), оно будет выполнено, если будет произведен рекурсивный вызов к шаблону или подмаске. На "самом верхнем уровне" условие ложно.

Если условие не является последовательностью цифр или (R), оно должно быть утверждением. Это может быть либо положительная или отрицательная проверка последующего либо предыдущего текста. Рассмотрим данный шаблон, снова содержащий незначащие пробелы, с двумя альтернативами на второй строке:

(?(?=[^a-z]*[a-z])
\d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} )

Приведен пример с утверждающим условием касательно предшествующего текста, которое выполняется для необязательной последовательности не-букв с последующей буквой. Говоря другими словами, указанное условие проверяет наличие хотя бы одной предшествующей буквы. В случае, если буква найдена, выполняется сопоставление с первой альтернативой, в противном случае - со второй альтернативой. Приведенный шаблон соответствует строкам двух видов: dd-aaa-dd либо dd-dd-dd, где aaaa - это буквы, а dd - цифры.


Комментарии

Служебная последовательность (?# обозначает начало комментария, который продолжается до ближайшей закрывающей скобки. Вложенные скобки не допускаются. Символы, находящиеся внутри комментария, не принимают участия в сопоставлении шаблона.

В случае, если используется модификатор PCRE_EXTENDED, неэкранированный символ '#' вне символьного класса также означает начало блока комментария, который длится до конца текущей строки.


Рекурсивные шаблоны

Рассмотрим задачу поиска соответствия со строкой, находящихся внутри неограниченного количества круглых скобок. Без использования рекурсии лучшее, что можно сделать - написать шаблон, который будет решать задачу для некоторой ограниченной глубины вложенности, так как обработать неограниченную глубину не предоставляется возможным. В Perl 5.6 предоставлены некоторые экспериментальные возможности, которые в том числе позвояляют реализовать рекурсию в шаблонах. Специально обозначение (?R) используется для указания рекурсивной подмаски. Таким образом, приведем PCRE шаблон, решающий поставленную задачу (подразумевается, что используется модификатор PCRE_EXTENDED, незначащие пробелы игнорируются): \( ( (?>[^()]+) | (?R) )* \)

Вначале он соответствует открывающей круглой скобке. Далее он соответствует любому количеству подстрок, каждая из которых может быть последовательностью не-скобок, либо строкой, рекурсивно соответствующей шаблону (т.е. строкой, корректно заключенной в круглые скобки). И, в конце, идет закрывающая круглая скобка.

Приведенный пример шаблона использует вложенные неограниченные повторения, поэтому использование однократных шаблонов значительно ускоряет процесс сопоставления, особенно в случаях, когда строка не соответствует заданной маске. Например, если его применить к строке: (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(), то несоответствие будет обнаружено достаточно быстро. Но в случае, если однократные шаблоны не используются, сопоставление будет затягиваться на длительное время, так как существует множество способов разделения строки между квантификаторами + и *, и все они должны быть проверены, прежде чем будет выдано сообщение о неудаче.

Значение, устанавливаемое для захватывающей подмаски будет соответствовать значению, захваченному на наиболее глубоком уровне рекурсии. В случае, если приведенный выше шаблон сопоставляется со строкой (ab(cd)ef), захваченным значением будет 'ef', которое является последним значением, принимаемым на верхнем уровне. В случае, если добавить дополнительные скобки \( ( ( (?>[^()]+) | (?R) )* ) \), захваченным значением будет "ab(cd)ef". В случае, если в шаблоне встречается более, чем 15 захватывающих скобок, PCRE требуется больше памяти для обработки рекурсии, чем обычно. Память выделяется при помощи функции pcre_malloc, и освобождается соответственно функцией pcre_free. Если память не может быть выделена, сохраняются данные только для первых 15 захватывающих скобок, так как нет способа выдать ошибку out-of-memory изнутри рекурсии.

(?1), (?2) и так далее могут быть использованы для рекурсивных подмасок. Также возможно использовать именованные подмаски: (?P>name) или (?&name).

Если синтаксис ссылки на рекурсивную подмаску (как по имени, так и по числовому индексу) используется вне скобок, к которым он относится, он отрабатывает аналогично подпрограмме в языке программирования. Возьмем более ранний пример, указывающий что шаблон (sens|respons)e and \1ibility соответствует "sense and sensibility" и "response and responsibility", но не "sense and responsibility". Если вместо этого использовать шаблон (sens|respons)e and (?1)ibility, он совпадет с "sense and responsibility" так же, как и с другими двумя строками. Однако, такие ссылки должны быть указаны после подмаски, на которую они ссылаются.

Максимальная строка обрабатываемой строки не должна превышать максимально доступного целого числа. Однако, так как для обработки подмасок и бесконечного повторения PCRE использует рекурсию, это означает, что размер обрабатываемых строк в некоторых шаблонах также может быть ограничен доступным размером стека.


Производительность

Некоторые элементы, которые могут встречаться в шаблонах, являются более эффективными, чем ряд других. Например, гораздо эффективней использовать символьный класс [aeiou] вместо набора альтернатив (a|e|i|o|u). Как правило, более простая конструкция является более эффективной. Книга Джеффри Фридла содержит много обсуждений вопроса оптимизации регулярных выражений.

В случае, если шаблон начинается с .* и используется флаг PCRE_DOTALL, шаблон неявно заякоривается, так как он может совпадать только в начале строки. Но если PCRE_DOTALL не используется, PCRE не может выполнить соответствующую оптимизацию, так как в таком случае метасимвол '.' не соответствует символу начала строки (если обрабатываемые данные содержат переводы строк, такой шаблон может соответствовать шаблону не от начала строки, а от позиции непосредственно после перевода строки). Например, применяя шаблон (.*) second к строке "first\nand second" (где \n обозначает символ перевода строки), значение, захваченное первой подмаской, будет 'and'. Чтобы обработать все возможные точки соответствия, PCRE пытается сопоставить шаблон после каждого символа перевода строки.

В случае, если вы используете подобные шаблоны для обработки данных, не содержащих переводы строк, для лучшей производительности используйте модификатор PCRE_DOTALL, либо начинайте шаблон с ^.* для указания явного заякоривания. Это предотвратит PCRE от поиска символов новых строк и дополнительных попыток сопоставить шаблон с каждой такой найденной позицией.

Избегайте шаблонов, которые содержат вложенные неограниченные повторения. Сопоставление их со строками, не содержащими совпадений, занимает длительное время. Рассмотрим пример шаблона (a+)*

Он может соответствовать с "aaaa" 33-мя различными способами, и эта цифра очень быстро растет при увеличении строки. (В данном примере, квантификатор * может совпадать 0, 1, 2, 3 или 4 раза, и для каждого такого случая, кроме нуля, квантификатор + также может совпадать различное число раз.) Если остаток шаблона таков, что все совпадение терпит неудачу, PCRE должна попробовать все возможные варианты совпадения, что может потребовать огромного количества времени.

При помощи оптимизации можно отловить наиболее простые случаи, такие как (a+)*b где следом идёт литеральный символ. Прежде, чем производить стандартную процедуру поиска, PCRE проверяет в последующей подстроке наличие символа 'b', и, в случае отсутствия такового, попытка сопоставления немедленно завершается неудачей. Однако, когда последующего литерала нет, оптимизация не может быть применена. Вы можете ощутить разницу, сравнив поведение (a+)*\d с поведением приведенного выше шаблона. Первый определяет невозможность сопоставления практически сразу же, при сопоставлении со строкой состоящей из символов 'a', в то время как второй тратит длительное время на поиск в строках длиннее 20 символов.


Модификаторы шаблонов

Ниже перечислены все доступные на сегодняшний день модификаторы. Имя, взятое в круглые скобки, указывает внутреннее PCRE имя для данного модификатора. Пробелы и переводы строк в модификаторах игнорируются, другие символы вызывают ошибки.

i (PCRE_CASELESS)
Если этот модификатор используется, символы в шаблоне соответствуют символам как верхнего, так и нижнего регистра.
m (PCRE_MULTILINE)
По умолчанию, PCRE обрабатывает данные как однострочную символьную строку (даже если она содержит несколько разделителей строк). Метасимвол начала строки '^' соответствует только началу обрабатываемого текста, в то время как метасимвол "конец строки" '$' соответствует концу текста, либо позиции перед завершающим текст переводом строки (в случае, если модификатор D не установлен). В Perl ситуация полностью аналогична. Если этот модификатор используется, метасимволы "начало строки" и "конец строки" также соответствуют позициям перед произвольным символом перевода и строки и, соответственно, после, как и в самом начале и в самом конце строки. Это соответствует Perl-модификатору /m. В случае, если обрабатываемый текст не содержит символов перевода строки, либо шаблон не содержит метасимволов '^' или '$', данный модификатор не имеет никакого эффекта.
s (PCRE_DOTALL)
Если данный модификатор используется, метасимвол "точка" в шаблоне соответствует всем символам, включая перевод строк. Без него - всем, за исключением переводов строк. Этот модификатор эквивалентен записи /s в Perl. Класс символов, построенный на отрицании, например [^a], всегда соответствует переводу строки, независимо от наличия этого модификатора.
x (PCRE_EXTENDED)
Если используется данный модификатор, неэкранированные пробелы, символы табуляции и пустой строки будут проигнорированы в шаблоне, если они не являются частью символьного класса. Также игнорируются все символы между неэкранированным символом '#' (если он не является частью символьного класса) и символом перевода строки (включая сами символы '\n' и '#'). Это эквивалентно Perl-модификатору /x, и позволяет размещать комментарий в сложных шаблонах. Замечание: это касается только символьных данных. Пробельные символы не фигурируют в служебных символьных последовательностях, к примеру, в последовательности '(?(', открывающей условную подмаску.
e (PREG_REPLACE_EVAL)
Внимание

Эта функциональность считается УСТАРЕВШЕЙ с PHP 5.5.0, и УДАЛЕНА в PHP 7.0.0.

Если используется данный устаревший модификатор, preg_replace() после выполнения стандартных подстановок в заменяемой строке интерпретирует ее как PHP-код и использует результат для замены искомой строки. Одинарные и двойные кавычки, обратные слеши (\) NULL-символы будут проэкранированы обратными слешами в подставляемых обратных ссылках.
Предостережение

Прежде чем подставить значение обратной ссылки, к этому значению применяется функция addslashes. Таким образом, если обратная ссылка используется как строка в кавычках, то экранированные символы будут преобразованы в строковые константы. Однако проэкранированные символы, которые обычно не должны изменяться, сохраняют примененные к ним слеши. Это делает использование данного модификатора довольно проблематичным.

Предостережение

Убедитесь, что параметр replacement содержит строку с корректным PHP-кодом, иначе PHP сообщит об ошибке парсинга на строке, содержащей вызов preg_replace().

Предостережение

Использовать этот модификатор не рекомендуется, так как это может легко добавить уязвимости в системе безопасности:

<?php
$html = $_POST['html'];

// Заголовки в верхнем регистре
$html = preg_replace(
    '(<h([1-6])>(.*?)</h\1>)e',
    '"<h$1>" . strtoupper("$2") . "</h$1>"',
    $html
);

Приведенный выше код может быть легко скомпрометирован путем передачи такой строки как <h1>{${eval($_GET[php_code])}}</h1>. Это дает атакующему возможность исполнить произвольный PHP-код и по существу предоставляет ему почти полный доступ к вашему серверу.

Для предотвращения этого типа уязвимости с удаленным исполнением кода следует использовать функцию preg_replace_callback():

<?php
$html = $_POST['html'];

// Заголовки в верхнем регистре
$html = preg_replace_callback(
    '(<h([1-6])>(.*?)</h\1>)',
    function ($m) {
        return "<h$m[1]>" . strtoupper($m[2]) . "</h$m[1]>";
    },
    $html
);

Замечание:

Этот модификатор используется только в функции preg_replace(), в других PCRE функциях он игнорируется.

A (PCRE_ANCHORED)
Если используется данный модификатор, соответствие шаблону будет достигаться только в том случае, если он "заякорен", т.е. соответствует началу строки, в которой производится поиск. Того же эффекта можно достичь подходящей конструкцией с вложенным шаблоном, которая является единственным способом реализации этого поведения в Perl.
D (PCRE_DOLLAR_ENDONLY)
Если используется данный модификатор, метасимвол $ в шаблоне соответствует только окончанию обрабатываемых данных. Без этого модификатора метасимвол $ соответствует также позиции перед последним символом, в случае, если им является перевод строки (но не распространяется на любые другие переводы строк). Данный модификатор игнорируется, если используется модификатор m. В языке Perl аналогичный модификатор отсутствует.
S
В случае, если планируется многократно использовать шаблон, имеет смысл потратить немного больше времени на его анализ, чтобы уменьшить время его выполнения. В случае, если данный модификатор используется, проводится дополнительный анализ шаблона. В настоящем это имеет смысл только для "незаякоренных" шаблонов, не начинающихся с какого-либо определенного символа.
U (PCRE_UNGREEDY)
Этот модификатор инвертирует жадность квантификаторов, таким образом они по умолчанию не жадные. Но становятся жадными, если за ними следует символ ?. Такая возможность не совместима с Perl. Его также можно установить с помощью (?U) установки модификатора внутри шаблона или добавив знак вопроса после квантификатора (например, .*?).

Замечание:

В нежадном режиме обычно невозможно совпадение символов превышающих pcre.backtrack_limit.

X (PCRE_EXTRA)
Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: любой обратный слеш в шаблоне, за которым следует символ, не имеющий специального значения, приводят к ошибке. Это обусловлено тем, что подобные комбинации зарезервированы для дальнейшего развития. По умолчанию же, как и в Perl, слеш со следующим за ним символом без специального значения трактуется как опечатка. На сегодняшний день это все возможности, которые управляются данным модификатором
J (PCRE_INFO_JCHANGED)
Модификатор (?J) меняет значение локальной опции PCRE_DUPNAMES - подшаблоны могут иметь одинаковые имена.
u (PCRE_UTF8)
Этот модификатор включает дополнительную функциональность PCRE, которая не совместима с Perl: шаблон и целевая строка обрабатываются как UTF-8 строки. Недопустимая целевая строка приводит к тому, что функции preg_* ничего не находят, а неправильный шаблон приводит к ошибке уровня E_WARNING. Пятый и шестой октеты UTF-8 последовательности рассматриваются недопустимыми с PHP 5.3.4 (согласно PCRE 7.3 2007-08-28); ранее они считались допустимыми.


Отличия от Perl

Описанные здесь отличия относятся к версии Perl 5.005.

  1. По умолчанию, пробельный символ - это любой символ, который функция isspace() из библиотеки C опознает таковым, хотя возможно скомпилировать PCRE с альтернативными таблицами символов. Функция isspace() определяет как пробельный следующие символы: пробел, конец страницы (formfeed), перевод строки, возврат каретки, горизонтальную табуляцию и вертикальную табуляцию. Perl 5 же, не включает вертикальную табуляцию в список пробельных символов. Экранирование \v, долгое время присутствовавшее в документации Perl, на самом деле никогда не распознавалось. Однако, символ как таковой, считался за пробельный до версии 5.002. В 5.004 и 5.005 он не определяется как \s.
  2. PCRE не позволяет использовать квантификаторы повторения в опережающих предположениях. Perl разрешает, но они не означаю того, о чем вы могли подумать. К примеру, (?!a){3} не проверяет, что следующие три символа не "a". Проверяется только то, что следующий символ не "a" три раза.
  3. Захватывающие подшаблоны, которые возникают в отрицательных опережающих проверках считаются, но их записи в векторе смещений никогда не устанавливаются. Perl устанавливает числовые переменные из любых подобных масок, которые совпали до момента, когда предположение не подтвердилось при проверке чего либо, но только если опережающее предположение содержит только одну ветвь.
  4. Хотя бинарные нулевые символы поддерживаются в проверяемой строке, они недопустимы в строке шаблона, потому, что она передается как нормальная C строка, в которой этот символ обозначает конец строки. Для его использования в строке шаблона необходимо пользоваться конструкцией "\x00".
  5. Следующие экранирующие последовательности Perl не поддерживаются: \l, \u, \L, \U. Фактически, они реализованы стандартным обработчикос строк Perl и не являются частью модуля обработки регулярных выражений.
  6. Предположение \G из Perl также не поддерживается, поскольку не имеет отношения к отдельно взятой схеме совпадений.
  7. Довольно очевидно, что PCRE не поддерживает конструкции (?{code}) и (??{code}). Тем не менее, есть поддержка рекурсивных шаблонов.
  8. Есть еще странный момент при в Perl 5.005_02, связанный с установкой захваченных строк, когда часть шаблона повторяется. К примеру, проверка "aba" шаблоном /^(a(b)?)+$/, устанавливает $2 в значение "b", но проверка "aabbaa" шаблоном /^(aa(bb)?)+$/, оставляет $2 не выставленной. Хотя, если шаблон поменять на /^(aa(b(b))?)+$/, то $2 (и $3) будут установлены. В Perl 5.004, $2 установится в обоих случаях, и это, также, истинно и для PCRE. Если в будущем Perl как либо зафиксирует это поведение, PRCE будет ему следовать.
  9. Другое до сих пор неразрешенное противоречие в том, что Perl 5.005_02, шаблоном /^(a)?(?(1)a|b)+$/ распознает строку "a", а PCRE нет. Хотя и в Perl и в PCRE, /^(a)?a/ распознает "a" и оставляет $1 не выставленой.

  10. PCRE предоставляет некоторые расширения регулярных выражений Perl:

    1. Несмотря на то, что опережающие предположения должны распознавать строки фиксированной длины, каждое альтернативное ретроспективное предположение может распознавать строки разной длины. Perl 5.005 требует, чтобы они были одной длины.
    2. Если установлена PCRE_DOLLAR_ENDONLY и не установлена PCRE_MULTILINE, мета-символ $ распознается только в самом конце строки.
    3. Если установлена PCRE_EXTRA, обратный слеш с последующей за ним буквой, не имеющий специального значения, приводит к ошибке.
    4. Если установлена PCRE_UNGREEDY, жадность квантификаторов повторения инвертирована. То есть, по умолчанию они не жадные, но если за ними знак вопроса, то да.


Отличия от регулярных выражений POSIX

По состоянию на PHP 5.3.0, расширение регулярные выражения POSIX? считается устаревшим. Существует целый ряд отличий между регулярными выражениями POSIX и PCRE. На этой странице перечислены наиболее важные из них, которые необходимо знать для того, чтобы выполнить преобразование в PCRE.

  1. Функции PCRE требуют, чтобы шаблон был заключен в разделители.
  2. В отличие от POSIX, в расширении PCRE нет специальных функция для поиска совпадений без учета регистра. Вместо них используется модификатор шаблона i (PCRE_CASELESS). Также доступны другие модификаторы шаблонов для изменения стратегии поиска совпадений.
  3. Функции POSIX находят самое длинное совпадение, ближнее к левому краю, а PCRE останавливается с первым найденным совпадением. Если строка не совпадает вовсе, это не имеет значения, в противном случае это может оказать существенное влияние и на результаты поиска совпадений, и на скорость этого поиска. Чтобы проиллюстрировать эту разницу, рассмотрим следующий пример из книги Джеффри Фридла "Регулярные выражения" (Jeffrey Friedl, "Mastering Regular Expressions"). При применении шаблона one(self)?(selfsufficient)? к строке oneselfsufficient, PCRE вернет oneself, но при использовании POSIX результатом будет вся строка oneselfsufficient. Обе (под)строки соответствуют исходному шаблону, но POSIX требует, чтобы наиболее длинная вернулась в качестве результата.
  4. Определение "символьного класса" в POSIX отличается от PCRE. Простые выражения в квадратных скобках, для нахождения определенных символов поддерживается в символьных классах PCRE, а сопоставления элементов, символьные классы и символьные эквиваленты POSIX не поддерживаются. Передача выражения с символьным классом, начинающегося и заканчивающегося на :, . или = символы, в PCRE рассматривается как попытка использования одной из этих неподдерживаемых функций и вызывает ошибку компиляции.

Замены для функций
POSIX | PCRE
ereg_replace() | preg_replace()
ereg() | preg_match()
eregi_replace() | preg_replace()
eregi() | preg_match()
split() | preg_split()
spliti() | preg_split()
sql_regcase() | Нет эквивалента


Функции для работы с регулярными выражениями (Perl-совместимые)

Содержание

  • preg_filter — Производит поиск и замену по регулярному выражению
  • preg_grep — Возвращает массив вхождений, которые соответствуют шаблону
  • preg_last_error — Возвращает код ошибки выполнения последнего регулярного выражения PCRE
  • preg_match_all — Выполняет глобальный поиск шаблона в строке
  • preg_match — Выполняет проверку на соответствие регулярному выражению
  • preg_quote — Экранирует символы в регулярных выражениях
  • preg_replace_callback_array — Perform a regular expression search and replace using callbacks
  • preg_replace_callback — Выполняет поиск по регулярному выражению и замену с использованием callback-функции
  • preg_replace — Выполняет поиск и замену по регулярному выражению
  • preg_split — Разбивает строку по регулярному выражению


Производит поиск и замену по регулярному выражению

  • « PCRE
  • preg_grep »
  • PHP Manual
  • PCRE
  • Производит поиск и замену по регулярному выражению

preg_filter

(PHP 5 >= 5.3.0, PHP 7)

preg_filter — Производит поиск и замену по регулярному выражению

Описание

mixed preg_filter ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

Функция preg_filter() идентична функции preg_replace() за исключением того, что возвращает только те значения (возможно, преобразованные), в которых найдено совпадение. Подробнее о работе функции читайте в документации к preg_replace().

Возвращаемые значения

Возвращает array, если аргумент subject имеет тип array, или string в противном случае.

Если совпадений не найдено или возникла ошибка, возвращается пустой массив array, когда subject имеет тип array, или NULL в противном случае.

Примеры

Пример #1 Пример для сравнения функций preg_filter() и preg_replace()

<?php
$subject = array('1', 'а', '2', 'б', '3', 'А', 'Б', '4');
$pattern = array('/\d/', '/[а-я]/', '/[1а]/');
$replace = array('А:$0', 'Б:$0', 'В:$0');

echo "preg_filter возвращает\n";
print_r(preg_filter($pattern, $replace, $subject));

echo "preg_replace возвращает\n";
print_r(preg_replace($pattern, $replace, $subject));
?>

Результат выполнения данного примера:

preg_filter возвращает
Array
(
    [0] => А:В:1
    [1] => Б:В:а
    [2] => А:2
    [3] => Б:б
    [4] => А:3
    [7] => А:4
)
preg_replace возвращает
Array
(
    [0] => А:В:1
    [1] => Б:В:а
    [2] => А:2
    [3] => Б:б
    [4] => А:3
    [5] => А
    [6] => Б
    [7] => А:4
)

Смотрите также

  • Шаблоны PCRE
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_replace_callback() - Выполняет поиск по регулярному выражению и замену с использованием callback-функции
  • preg_grep() - Возвращает массив вхождений, которые соответствуют шаблону
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Возвращает массив вхождений, которые соответствуют шаблону

  • « preg_filter
  • preg_last_error »
  • PHP Manual
  • PCRE
  • Возвращает массив вхождений, которые соответствуют шаблону

preg_grep

(PHP 4, PHP 5, PHP 7)

preg_grep — Возвращает массив вхождений, которые соответствуют шаблону

Описание

array preg_grep ( string $pattern , array $input [, int $flags = 0 ] )

Возвращает массив, состоящий из элементов входящего массива input, которые соответствуют заданному шаблону pattern.

Список параметров

pattern

Искомый шаблон, строка.

input

Входящий массив.

flags

В случае, если установлен в PREG_GREP_INVERT, функция preg_grep() возвращает те элементы массива, которые не соответствуют заданному шаблону pattern.

Возвращаемые значения

Возвращает массив, индексированный ключами из массива input.

Примеры

Пример #1 Пример использования preg_grep()

<?php
// Возвращает все элементы массива,
// содержащие числа с плавающей точкой
$fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);
?>

Смотрите также

  • Регулярные выражения PCRE
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_match_all() - Выполняет глобальный поиск шаблона в строке
  • preg_filter() - Производит поиск и замену по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Возвращает код ошибки выполнения последнего регулярного выражения PCRE

  • « preg_grep
  • preg_match_all »
  • PHP Manual
  • PCRE
  • Возвращает код ошибки выполнения последнего регулярного выражения PCRE

preg_last_error

(PHP 5 >= 5.2.0, PHP 7)

preg_last_error — Возвращает код ошибки выполнения последнего регулярного выражения PCRE

Описание

int preg_last_error ( void )

Возвращает код ошибки выполнения последнего регулярного выражения PCRE.

Пример #1 Пример использования preg_last_error()

<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    print 'Был исчерпан лимит обратных ссылок!';
}

?>

Результат выполнения данного примера:

Был исчерпан лимит обратных ссылок!

Возвращаемые значения

Возвращает одну из следующих констант, (описанных на отдельной странице.):

  • PREG_NO_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_BACKTRACK_LIMIT_ERROR (см. также pcre.backtrack_limit)
  • PREG_RECURSION_LIMIT_ERROR (см. также pcre.recursion_limit)
  • PREG_BAD_UTF8_ERROR
  • PREG_BAD_UTF8_OFFSET_ERROR (начиная с PHP 5.3.0)
  • PREG_JIT_STACKLIMIT_ERROR (начиная с PHP 7.0.0)


Выполняет глобальный поиск шаблона в строке

  • « preg_last_error
  • preg_match »
  • PHP Manual
  • PCRE
  • Выполняет глобальный поиск шаблона в строке

preg_match_all

(PHP 4, PHP 5, PHP 7)

preg_match_all — Выполняет глобальный поиск шаблона в строке

Описание

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )

Ищет в строке 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.

В случае если флаги не были указаны, по умолчанию используется PREG_PATTERN_ORDER.

offset

Обычно поиск осуществляется слева направо, с начала строки. Дополнительный параметр offset может быть использован для указания альтернативной начальной позиции для поиска.

Замечание:

Использование параметра offset не эквивалентно замене сопоставляемой строки выражением substr($subject, $offset) при вызове функции preg_match_all(), поскольку шаблон pattern может содержать такие условия как ^, $ или (?<=x). Вы можете найти соответствующие примеры в описании функции preg_match().

Возвращаемые значения

Возвращает количество найденных вхождений шаблона (которое может быть и нулем) либо FALSE, если во время выполнения возникли какие-либо ошибки.

Список изменений

Версия | Описание
5.4.0 | Параметр matches стал необязательным.
5.3.6 | Возвращает FALSE если offset больше чем длина subject.
5.2.2 | Именованные подмаски теперь принимают синтаксис (?<name>) и (?'name'), также как и (?P<name>). Предыдущие версии принимали только (?P<name>).

Примеры

Пример #1 Получение всех телефонных номеров из текста.

<?php
preg_match_all("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
                "Звоните 555-1212 или 1-800-555-1212", $phones);
?>

Пример #2 Жадный поиск совпадений с HTML-тэгами

<?php
// Запись \\2 является примером использования ссылок на подмаски.
// Она означает необходимость соответствия подстроки строке, захваченной
// второй подмаской, в нашем примере это ([\w]+).
// Дополнительный обратный слеш необходим, так как используются двойные кавычки.
$html = "<b>полужирный текст</b><a href=howdy.html>нажми</a>";

preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);

foreach ($matches as $val) {
    echo "совпадение: " . $val[0] . "\n";
    echo "часть 1: " . $val[1] . "\n";
    echo "часть 2: " . $val[2] . "\n";
    echo "часть 3: " . $val[3] . "\n";
    echo "часть 4: " . $val[4] . "\n\n";
}
?>

Результат выполнения данного примера:

совпадение: <b>полужирный текст</b>
часть 1: <b>
часть 2: b
часть 3: полужирный текст
часть 4: </b>

matched: <a href=hody.html>нажми</a>
часть 1: <a href=howdy.html>
часть 2: a
часть 3: нажми
часть 4: </a>

Пример #3 Использование именованных подмасок

<?php

$str = <<<FOO
a: 1
b: 2
c: 3
FOO;

preg_match_all('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);

/* Это также работает в PHP 5.2.2 (PCRE 7.0) и более поздних версиях,
 * однако, вышеуказанная форма рекомендуется для обратной совместимости */
// preg_match_all('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);

print_r($matches);

?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [0] => a: 1
            [1] => b: 2
            [2] => c: 3
        )

    [name] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [digit] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

    [2] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
        )

)

Смотрите также

  • "Регулярные выражения PCRE"
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_split() - Разбивает строку по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Выполняет проверку на соответствие регулярному выражению

  • « preg_match_all
  • preg_quote »
  • PHP Manual
  • PCRE
  • Выполняет проверку на соответствие регулярному выражению

preg_match

(PHP 4, PHP 5, PHP 7)

preg_match — Выполняет проверку на соответствие регулярному выражению

Описание

int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

Ищет в заданном тексте subject совпадения с шаблоном pattern.

Список параметров

pattern

Искомый шаблон, строка.

subject

Входная строка.

matches

В случае, если указан дополнительный параметр matches, он будет заполнен результатами поиска. Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[1] - часть строки, соответствующую первой подмаске, и так далее.

flags

flags может принимать значение следующего флага:

PREG_OFFSET_CAPTURE
В случае, если этот флаг указан, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемого массива matches в массив, каждый элемент которого содержит массив, содержащий в индексе с номером 0 найденную подстроку, а смещение этой подстроки в параметре subject - в индексе 1.

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
        )

)

Возвращаемые значения

preg_match() возвращает 1, если параметр pattern соответствует переданному параметру subject, 0 если нет, или FALSE в случае ошибки.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
5.3.6 | Возвращает FALSE если offset больше, чем длина subject.
5.2.2 | Именованные подмаски теперь позволяют синтаксис (?<name>) и (?'name'), также как и (?P<name>). Предыдущие версии позволяли только (?P<name>).

Примеры

Пример #1 Поиск подстроки "php" в тексте

<?php
// Символ "i" после закрывающего ограничителя шаблона означает
// регистронезависимый поиск.
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "Вхождение найдено.";
} else {
    echo "Вхождение не найдено.";
}
?>

Пример #2 Поиск слова "web" в тексте

<?php
/* Специальная последовательность \b в шаблоне означает границу слова,
 *  следовательно, только изолированное вхождение слова 'web' будет
   соответствовать маске, в отличие от "webbing" или "cobweb" */
if (preg_match("/\bweb\b/i", "PHP is the web scripting language of choice.")) {
    echo "Вхождение найдено.";
} else {
    echo "Вхождение не найдено.";
}

if (preg_match("/\bweb\b/i", "PHP is the website scripting language of choice.")) {
    echo "Вхождение найдено.";
} else {
    echo "Вхождение не найдено.";
}
?>

Пример #3 Извлечение доменного имени из URL

<?php
// Извлекаем имя хоста из URL
preg_match('@^(?:http://)?([^/]+)@i',
    "http://www.php.net/index.html", $matches);
$host = $matches[1];

// извлекаем две последние части имени хоста
preg_match('/[^.]+\.[^.]+$/', $host, $matches);
echo "доменное имя: {$matches[0]}\n";
?>

Результат выполнения данного примера:

доменное имя: php.net

Пример #4 Использование именованных подмасок

<?php

$str = 'foobar: 2008';

preg_match('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches);

/* Это также работает в PHP 5.2.2 (PCRE 7.0) и более поздних версиях,
 * однако, вышеуказанная форма рекомендуется для обратной совместимости */
// preg_match('/(?<name>\w+): (?<digit>\d+)/', $str, $matches);

print_r($matches);

?>

Результат выполнения данного примера:

Array
(
    [0] => foobar: 2008
    [name] => foobar
    [1] => foobar
    [digit] => 2008
    [2] => 2008
)

Примечания

Подсказка

Не используйте функцию preg_match(), если необходимо проверить наличие подстроки в заданной строке. Используйте для этого strpos() поскольку она выполнят эту задачу гораздо быстрее.

Смотрите также

  • "Регулярные выражения PCRE"
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_match_all() - Выполняет глобальный поиск шаблона в строке
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_split() - Разбивает строку по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Экранирует символы в регулярных выражениях

  • « preg_match
  • preg_replace_callback_array »
  • PHP Manual
  • PCRE
  • Экранирует символы в регулярных выражениях

preg_quote

(PHP 4, PHP 5, PHP 7)

preg_quote — Экранирует символы в регулярных выражениях

Описание

string preg_quote ( string $str [, string $delimiter = NULL ] )

Функция preg_quote() принимает строку str и добавляет обратный слеш перед каждым служебным символом. Это бывает полезно, если в составлении шаблона участвуют строковые переменные, значение которых в процессе работы скрипта может меняться.

В регулярных выражениях служебными считаются следующие символы: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

Обратите внимание, что символ / не является служебным.

Замечание:

Обратите внимание, что preg_quote() не предназначена для применения к строкам $replacement функции preg_replace() и т.д.

Список параметров

str

Входная строка.

delimiter

В случае, если указан необязательный параметр delimiter, он будет также экранироваться. Это удобно для экранирования разделителя, который используется в PCRE функциях. Наиболее распространенным разделителем является символ /.

Возвращаемые значения

Возвращает экранированную строку.

Список изменений

Версия | Описание
5.3.0 | Символ - теперь экранируется

Примеры

Пример #1 preg_quote() пример

<?php
$keywords = '$40 за g3/400';
$keywords = preg_quote($keywords, '/');
echo $keywords; // возвращает \$40 за g3\/400
?>

Пример #2 Выделение курсивом слова в тексте

<?php
// В данном примере preg_quote($word) используется, чтобы
// избежать трактовки символа '*' как спец. символа.

$textbody = "Эту книгу *очень* тяжело найти.";
$word = "*очень*";
$textbody = preg_replace ("/" . preg_quote($word, '/') . "/",
                          "<i>" . $word . "</i>",
                          $textbody);
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • Регулярные выражения PCRE
  • escapeshellcmd() - Экранирует метасимволы командной строки


Perform a regular expression search and replace using callbacks

  • « preg_quote
  • preg_replace_callback »
  • PHP Manual
  • PCRE
  • Perform a regular expression search and replace using callbacks

preg_replace_callback_array

(PHP 7)

preg_replace_callback_array — Perform a regular expression search and replace using callbacks

Описание

mixed preg_replace_callback_array ( array $patterns_and_callbacks , mixed $subject [, int $limit = -1 [, int &$count ]] )

The behavior of this function is similar to preg_replace_callback(), except that callbacks are executed on a per-pattern basis.

Список параметров

patterns_and_callbacks

An associative array mapping patterns (keys) to callbacks (values).

subject

The string or an array with strings to search and replace.

limit

The maximum possible replacements for each pattern in each subject string. Defaults to -1 (no limit).

count

If specified, this variable will be filled with the number of replacements done.

Возвращаемые значения

preg_replace_callback_array() returns an array if the subject parameter is an array, or a string otherwise. On errors the return value is NULL

If matches are found, the new subject will be returned, otherwise subject will be returned unchanged.

Примеры

Пример #1 preg_replace_callback_array() example

<?php
$subject = 'Aaaaaa Bbb';

preg_replace_callback_array(
    [
        '~[a]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "a" found', PHP_EOL;
        },
        '~[b]+~i' => function ($match) {
            echo strlen($match[0]), ' matches for "b" found', PHP_EOL;
        }
    ],
    $subject
);
?>

Результат выполнения данного примера:

6 matches for "a" found
3 matches for "b" found

Смотрите также

  • PCRE Patterns
  • preg_replace_callback() - Выполняет поиск по регулярному выражению и замену с использованием callback-функции
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE
  • Anonymous functions
  • информация о типе callback


Выполняет поиск по регулярному выражению и замену с использованием callback-функции

  • « preg_replace_callback_array
  • preg_replace »
  • PHP Manual
  • PCRE
  • Выполняет поиск по регулярному выражению и замену с использованием callback-функции

preg_replace_callback

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

preg_replace_callback — Выполняет поиск по регулярному выражению и замену с использованием callback-функции

Описание

mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )

Поведение этой функции во многом напоминает preg_replace(), за исключением того, что вместо параметра replacement необходимо указывать callback-функцию.

Список параметров

pattern

Искомый шаблон. Может быть как строкой, так и массивом строк.

callback

Вызываемая callback-функция, которой будет передан массив совпавших элементов из строки subject. Callback-функция должна вернуть строку с заменой. Callback-функция должна быть описана так:

string handler ( array $matches )

Достаточно часто callback функция, кроме как в вызове preg_replace_callback(), ни в чем больше не участвует. Исходя из этих соображений, можно использовать анонимные функции для создания callback-функции непосредственно в вызове preg_replace_callback(). Если вы используете такой подход, вся информация, связанная с заменой по регулярному выражению, будет собрана в одном месте, и пространство имен функций не будет загромождаться неиспользуемыми записями.

Пример #1 preg_replace_callback() и анонимная функция

<?php
/* фильтр, подобный тому, что используется в системах Unix
 * для преобразования заглавных букв в начале параграфа в строчные */
$fp = fopen("php://stdin", "r") or die("не удалось прочесть stdin");
while (!feof($fp)) {
    $line = fgets($fp);
    $line = preg_replace_callback(
        '|<p>\s*\w|',
        function ($matches) {
            return strtolower($matches[0]);
        },
        $line
    );
    echo $line;
}
fclose($fp);
?>

subject

Строка или массив строк для поиска и замены.

limit

Максимально возможное количество замен для каждого шаблона в каждой строке subject. По умолчанию равно -1 (без ограничений).

count

Если указана, то эта переменная будет заполнена количеством произведенных замен.

Возвращаемые значения

preg_replace_callback() возвращает массив, если параметр subject является массивом, иначе возвращается строка. В случае ошибок возвращается NULL

Если найдены совпадения, будет возвращена результирующая строка, иначе subject вернется неизмененным.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр count

Примеры

Пример #2 Пример использования preg_replace_callback()

<?php
// Этот текст был использован в 2002 году
// мы хотим обновить даты к 2003 году
$text = "День дураков: 01/04/2002\n";
$text.= "Последнее Рождество было: 24/12/2001\n";
// callback-функция
function next_year($matches)
{
  // как обычно: $matches[0] -  полное вхождение шаблона
  // $matches[1] - вхождение первой подмаски,
  // заключенной в круглые скобки, и так далее...
  return $matches[1].($matches[2]+1);
}
echo preg_replace_callback(
            "|(\d{2}/\d{2}/)(\d{4})|",
            "next_year",
            $text);

?>

Результат выполнения данного примера:

День дураков: 01/04/2003
Последнее Рождество было: 24/12/2002

Пример #3 Рекурсивная обработка BB-кодов с помощью preg_replace_callback()

<?php
$input = "верх [indent] глубже [indent] еще глубже [/indent] глубже [/indent] верх";

function parseTagsRecursive($input)
{

    $regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#';

    if (is_array($input)) {
        $input = '<div style="margin-left: 10px">'.$input[1].'</div>';
    }

    return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}

$output = parseTagsRecursive($input);

echo $output;
?>

Смотрите также

  • Регулярные выражения PCRE
  • preg_replace_callback_array() - Perform a regular expression search and replace using callbacks
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE
  • Анонимные функции
  • информация о типе callback


Выполняет поиск и замену по регулярному выражению

  • « preg_replace_callback
  • preg_split »
  • PHP Manual
  • PCRE
  • Выполняет поиск и замену по регулярному выражению

preg_replace

(PHP 4, PHP 5, PHP 7)

preg_replace — Выполняет поиск и замену по регулярному выражению

Описание

mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

Выполняет поиск совпадений в строке subject с шаблоном pattern и заменяет их на replacement.

Список параметров

pattern

Искомый шаблон. Может быть как строкой, так и массивом строк.

Также доступны некоторые модификаторы PCRE.

replacement

Строка или массив строк для замены. Если этот параметр является строкой, а pattern является массивом, все шаблоны будут заменены этой строкой. Если и pattern и replacement являются массивами, каждый элемент pattern будет заменен соответствующим элементом из replacement. Если массив replacement содержит меньше элементов, чем массив pattern, то все лишние шаблоны из pattern будут заменены пустыми строками.

replacement может содержать ссылки вида \\n, либо $n, причем последний вариант предпочтительней. Каждая такая ссылка будет заменена на подстроку, соответствующую n-ой подмаске. n может принимать значения от 0 до 99, причем ссылка \\0 (либо $0) соответствует вхождению всего шаблона. Подмаски нумеруются слева направо, начиная с единицы. Для использования обратного слеша, его необходимо продублировать (строка PHP "\\\\").

При замене по шаблону с использованием ссылок на подмаски может возникнуть ситуация, когда непосредственно за маской следует цифра (например, установка цифры сразу после совпавшей маски). В таком случае нельзя использовать знакомую нотацию вида \\1 для ссылки на подмаски. Запись, например, \\11, смутит preg_replace(), так как она не сможет понять, хотите ли вы использовать ссылку \\1, за которой следует цифра 1 или же вы хотите просто использовать ссылку \\11, за которой ничего не следует. Это недоразумение можно устранить, если воспользоваться конструкцией ${1}1, использующей изолированную ссылку $1, и следующую за ней цифру 1.

При использовании устаревшего модификатора e эта функция экранирует некоторые символы (а именно ', ", \ и NULL) в строках, замещающих обратные ссылки. Это сделано для удостоверения корректности синтаксиса при использовании обратных ссылок внутри одинарных или двойных кавычек (например, 'strlen(\'$1\')+strlen("$2")'). Убедитесь, что вы владеете синтаксисом обработки строк PHP для того, чтобы точно осознавать, как будет выглядеть интерпретированная строка.

subject

Строка или массив строк для поиска и замены.

Если subject является массивом, то поиск с заменой осуществляется для каждого элемента массива subject, а возвращаемое значение также будет являться массивом.

limit

Максимально возможное количество замен каждого шаблона для каждой строки subject. По умолчанию равно -1 (без ограничений).

count

Если указана, то эта переменная будет заполнена количеством произведенных замен.

Возвращаемые значения

preg_replace() возвращает массив, если параметр subject является массивом, иначе возвращается строка.

Если найдены совпадения, возвращается новая версия subject, иначе subject возвращается нетронутым, в случае ошибки возвращается NULL.

Ошибки

С версии PHP 5.5.0, если передается модификатор "\e", вызывается ошибка уровня E_DEPRECATED. С версии PHP 7.0.0 в этом случае выдается E_WARNING и сам модификатор игнорируется.

Список изменений

Версия | Описание
7.0.0 | Удалена поддержка модификатора /e. Вместо него используйте preg_replace_callback().
5.5.0 | Модификатор /e теперь считается устаревшим. Используйте функцию preg_replace_callback(). Смотрите документацию PREG_REPLACE_EVAL с дополнительной информацией и описанием проблем с безопасностью.
5.1.0 | Добавлен параметр count

Примеры

Пример #1 Использование подмасок, за которыми следует цифра

<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>

Результат выполнения данного примера:

April1,2003

Пример #2 Использование массивов с числовыми индексами в качестве аргументов функции preg_replace()

<?php
$string = 'The quick brown fox jumps over the lazy dog.';
$patterns = array();
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements = array();
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string);
?>

Результат выполнения данного примера:

The bear black slow jumps over the lazy dog.

Отсортировав по ключам шаблоны и замены, получаем желаемый результат:

<?php
ksort($patterns);
ksort($replacements);
echo preg_replace($patterns, $replacements, $string);
?>

Результат выполнения данного примера:

The slow black bear jumps over the lazy dog.

Пример #3 Замена по нескольким шаблонам

<?php
$patterns = array ('/(19|20)(\d{2})-(\d{1,2})-(\d{1,2})/',
                   '/^\s*{(\w+)}\s*=/');
$replace = array ('\3/\4/\1\2', '$\1 =');
echo preg_replace($patterns, $replace, '{startDate} = 1999-5-27');
?>

Результат выполнения данного примера:

$startDate = 5/27/1999

Пример #4 Чистка пробелов

Этот пример вычищает лишние пробелы в строке.

<?php
$str = 'foo   o';
$str = preg_replace('/\s\s+/', ' ', $str);
// Это теперь будет 'foo o'
echo $str;
?>

Пример #5 Использование параметра count

<?php
$count = 0;

echo preg_replace(array('/\d/', '/\s/'), '*', 'xp 4 to', -1 , $count);
echo $count; //3
?>

Результат выполнения данного примера:

xp***to
3

Примечания

Замечание:

При использовании массивов в pattern и replacement, ключи обрабатываются в том порядке, в котором они находятся в массиве. Этот порядок не всегда совпадает с числовым порядком индексов. Если вы используете индексы для сопоставления друг с другом нужного pattern и replacement, то вам необходимо прогнать через функцию ksort() оба массива перед использованием preg_replace().

Смотрите также

  • "Регулярные выражения PCRE"
  • preg_quote() - Экранирует символы в регулярных выражениях
  • preg_filter() - Производит поиск и замену по регулярному выражению
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • preg_replace_callback() - Выполняет поиск по регулярному выражению и замену с использованием callback-функции
  • preg_split() - Разбивает строку по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Разбивает строку по регулярному выражению

  • « preg_replace
  • Регулярные выражения POSIX »
  • PHP Manual
  • PCRE
  • Разбивает строку по регулярному выражению

preg_split

(PHP 4, PHP 5, PHP 7)

preg_split — Разбивает строку по регулярному выражению

Описание

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

Разбивает строку по регулярному выражению.

Список параметров

pattern

Строка, содержащая искомый шаблон.

subject

Входная строка.

limit

Если указан, функция возвращает не более, чем limit подстрок. Оставшаяся часть строки будет возвращена в последней подстроке. Специальное значение limit, равное -1, 0 или NULL, подразумевает отсутствие ограничения, и, в качестве фактического стандарта в PHP, можно использовать NULL для пропуска параметра flags.

flags

flags может быть любой комбинацией следующих флагов (объединенных с помощью побитового оператора |):

PREG_SPLIT_NO_EMPTY
Если указан этот флаг, функция preg_split() вернет только непустые подстроки.
PREG_SPLIT_DELIM_CAPTURE
Если указан этот флаг, выражение, заключенное в круглые скобки в разделяющем шаблоне, также извлекается из заданной строки и возвращается функцией.
PREG_SPLIT_OFFSET_CAPTURE

Если указан этот флаг, для каждой найденной подстроки будет указана ее позиция в исходной строке. Необходимо помнить, что этот флаг меняет формат возвращаемого массива: каждый элемент будет содержать массив, содержащий в индексе с номером 0 найденную подстроку, а смещение этой подстроки в параметре subject - в индексе 1.

Возвращаемые значения

Возвращает массив, состоящий из подстрок заданной строки subject, которая разбита по границам, соответствующим шаблону pattern, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 preg_split() пример: Получение подстрок из заданного текста

<?php
// разбиваем строку по произвольному числу запятых и пробельных символов,
// которые включают в себя  " ", \r, \t, \n и \f
$keywords = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($keywords);
?>

Результат выполнения данного примера:

Array
(
    [0] => hypertext
    [1] => language
    [2] => programming
)

Пример #2 Разбиваем строку на составляющие символы

<?php
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
?>

Результат выполнения данного примера:

Array
(
    [0] => s
    [1] => t
    [2] => r
    [3] => i
    [4] => n
    [5] => g
)

Пример #3 Разбиваем строку с указанием смещения для каждой из найденных подстрок

<?php
$str = 'hypertext language programming';
$chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($chars);
?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [0] => hypertext
            [1] => 0
        )

    [1] => Array
        (
            [0] => language
            [1] => 10
        )

    [2] => Array
        (
            [0] => programming
            [1] => 19
        )

)

Примечания

Подсказка

Если вам не нужна мощь регулярных выражений, вы можете выбрать более быстрые (хоть и простые) альтернативы наподобие explode() или str_split().

Подсказка

Если соответствий не нашлось, то возвращается массив с единственным элементом равным всей строке.

Смотрите также

  • "Регулярные выражения PCRE"
  • preg_quote() - Экранирует символы в регулярных выражениях
  • implode() - Объединяет элементы массива в строку
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • preg_match_all() - Выполняет глобальный поиск шаблона в строке
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • preg_last_error() - Возвращает код ошибки выполнения последнего регулярного выражения PCRE


Регулярные выражения (расширенные POSIX)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Функции регулярных выражений POSIX
    • ereg_replace — Осуществляет замену по регулярному выражению
    • ereg — Совпадение с регулярным выражением
    • eregi_replace — Осуществляет замену по регулярному выражению без учета регистра
    • eregi — Совпадение с регулярным выражением без учёта регистра
    • split — Разбиение строки на массив по регулярному выражению
    • spliti — Разбивает строку в массив с помощью регулярного выражения без учета регистра
    • sql_regcase — Создает регулярное выражение для регистронезависимого сравнения


Введение

Внимание

Эта функциональность объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • PCRE (для полной поддержки регулярных выражений)
  • fnmatch() (для простых выражений в стиле shell)
Подсказка

PHP также поддерживает синтаксис Perl-совместимых регулярных выражений с помощью функций PCRE. Эти функции поддерживают минимальный поиск, утверждения, условные подмаски и некоторые другие особенности, не поддерживаемые синтаксисом расширенных регулярных выражений POSIX?.

Внимание

Данные функции регулярных выражений не являются бинарно-безопасными в отличие от функций PCRE.

Регулярные выражения используются для сложной манипуляции со строками. PHP использует расширенные регулярные выражения POSIX?, как определено в POSIX 1003.2. Полное описание регулярных выражений POSIX смотрите на » страницах справки по регулярным выражениям, включенных в директорию regex дистрибутива PHP. Справка представлена в формате UNIX, поэтому вам понадобится сделать что-то вроде man /usr/local/src/regex/regex.7, чтобы прочитать ее.


Установка

Внимание

Не изменяйте TYPE, если вы не знаете что делаете.

Для включения поддержки регулярных выражений необходимо скомпилировать PHP c ключом --with-regex[=TYPE] , где TYPE может принимать значение system, apache, php. По умолчанию используется php.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Регулярные выражения POSIX
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Пример #1 Примеры регулярных выражений

<?php
// Вернет true, если "abc" найдено где-либо в $string.
ereg("abc", $string);

// Вернет true, если "abc" найдено в начале $string.
ereg("^abc", $string);

// Вернет true, если "abc" найдено в конце $string.
ereg("abc$", $string);

// Вернет true, если браузер клиента Netscape 2, 3 или MSIE 3.
eregi("(ozilla.[23]|MSIE.3)", $_SERVER["HTTP_USER_AGENT"]);

// Поместит три слова разделенных пробелами в $regs[1], $regs[2] и $regs[3].
ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string, $regs);

// Вставит тег <br /> в начало $string.
$string = ereg_replace("^", "<br />", $string);

// Вставит тег <br /> в конец $string.
$string = ereg_replace("$", "<br />", $string);

// Уберет все символы новой строки из $string.
$string = ereg_replace("\n", "", $string);
?>


Функции регулярных выражений POSIX

Смотрите также

Внимание

Эта функциональность объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • PCRE (для полной поддержки регулярных выражений)
  • fnmatch() (для простых выражений в стиле shell)

Содержание

  • ereg_replace — Осуществляет замену по регулярному выражению
  • ereg — Совпадение с регулярным выражением
  • eregi_replace — Осуществляет замену по регулярному выражению без учета регистра
  • eregi — Совпадение с регулярным выражением без учёта регистра
  • split — Разбиение строки на массив по регулярному выражению
  • spliti — Разбивает строку в массив с помощью регулярного выражения без учета регистра
  • sql_regcase — Создает регулярное выражение для регистронезависимого сравнения


Осуществляет замену по регулярному выражению

  • « Функции регулярных выражений POSIX
  • ereg »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Осуществляет замену по регулярному выражению

ereg_replace

(PHP 4, PHP 5)

ereg_replace — Осуществляет замену по регулярному выражению

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_replace()

Описание

string ereg_replace ( string $pattern , string $replacement , string $string )

Эта функция сканирует строку string для поиска совпадений с pattern, затем заменяет совпавший текст на replacement.

Список параметров

pattern

Расширенное регулярное выражение POSIX.

replacement

Если pattern содержит подстроки в скобках, replacement может содержать подстроки вида \digit, которые будут заменены текстом, совпавшим с digit-подстрокой в скобках; \0 воспроизведет все содержимое строки. Может использоваться до 9 подстрок. Круглые скобки могут быть вложенными, в этом случае они подсчитываются по открывающим скобкам.

string

Исходная строка.

Возвращаемые значения

Возвращается измененная строка. Если в строке string совпадений не найдено, она возвратится без изменений.

Примеры

Например, следующий фрагмент кода печатает "This was a test" три раза:

Пример #1 Пример использования ereg_replace()

<?php

$string = "This is a test";
echo str_replace(" is", " was", $string);
echo ereg_replace("( )is", "\\1was", $string);
echo ereg_replace("(( )is)", "\\2was", $string);

?>

Единственное, что следует принять к сведению - если вы используете целочисленное значение как параметр replacement, вы можете не получить ожидаемого результата. Это происходит из-за того, что функция ereg_replace() будет интерпретировать число как порядковое значение символа. Например:

Пример #2 Пример использования ereg_replace()

<?php
/* Это будет работать не так, как ожидалось. */
$num = 4;
$string = "В этой строке четыре слова.";
$string = ereg_replace('четыре', $num, $string);
echo $string;   /* Вывод: 'В этой строке   слова.' */

/* Это будет работать. */
$num = '4';
$string = "В этой строке четыре слова.";
$string = ereg_replace('четыре', $num, $string);
echo $string;   /* Вывод: 'В этой строке 4 слова.' */
?>

Пример #3 Замена URL-адресов на ссылки

<?php
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     '<a href="\\0">\\0</a>', $text);
?>

Смотрите также

  • ereg() - Совпадение с регулярным выражением
  • eregi() - Совпадение с регулярным выражением без учёта регистра
  • eregi_replace() - Осуществляет замену по регулярному выражению без учета регистра
  • str_replace() - Заменяет все вхождения строки поиска на строку замены
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • quotemeta() - Экранирует специальные символы


Совпадение с регулярным выражением

  • « ereg_replace
  • eregi_replace »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Совпадение с регулярным выражением

ereg

(PHP 4, PHP 5)

ereg — Совпадение с регулярным выражением

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_match()

Описание

int ereg ( string $pattern , string $string [, array &$regs ] )

Ищет в строке string совпадения с регулярным выражением, заданным в pattern регистрозависимым образом.

Список параметров

pattern

Регулярное выражение, чувствительное к регистру.

string

Входная строка.

regs

Если совпадения найдены для подстрок в скобках из pattern, и функция вызывается с третьим аргументом regs, совпадения будут сохранены в элементах массива regs.

$regs[1] будет содержать подстроку, которая начинается с первой левой круглой скобки; $regs[2] будет содержать подстроку, начинающуюся со второй, и т.д. $regs[0] будет содержать полную копию совпавшей строки.

Возвращаемые значения

Возвращает длину совпавшей строки, если совпадение c pattern найдено в string, или FALSE, если совпадений не было или возникла ошибка.

Если необязательный параметр regs не передан, или длина совпавшей строки равна 0, функция возвращает 1.

Список изменений

Версия | Описание
4.1.0 | Вплоть до (и включая) PHP 4.1.0 $regs будет заполняться точно десятью элементами, хотя реально может совпасть больше или меньше десяти подстрок в скобках. Это не влияет на способность ereg() совпадать с большим количеством подстрок. Если совпадения не найдены, $regs не будет изменен функцией ereg().

Примеры

Пример #1 Пример использования ereg()

Следующий фрагмент кода принимает дату в формате ISO (YYYY-MM-DD) и печатает её в формате DD.MM.YYYY:

<?php
if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs)) {
    echo "$regs[3].$regs[2].$regs[1]";
} else {
    echo "Недопустимый формат даты: $date";
}
?>

Смотрите также

  • eregi() - Совпадение с регулярным выражением без учёта регистра
  • ereg_replace() - Осуществляет замену по регулярному выражению
  • eregi_replace() - Осуществляет замену по регулярному выражению без учета регистра
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • strpos() - Возвращает позицию первого вхождения подстроки
  • strstr() - Находит первое вхождение подстроки
  • quotemeta() - Экранирует специальные символы


Осуществляет замену по регулярному выражению без учета регистра

  • « ereg
  • eregi »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Осуществляет замену по регулярному выражению без учета регистра

eregi_replace

(PHP 4, PHP 5)

eregi_replace — Осуществляет замену по регулярному выражению без учета регистра

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_replace() (с модификатором i (PCRE_CASELESS))

Описание

string eregi_replace ( string $pattern , string $replacement , string $string )

Эта функция идентична функции ereg_replace() за исключением того, что игнорирует регистр при сравнении алфавитных символов.

Список параметров

pattern

Расширенное регулярное выражение POSIX.

replacement

Если pattern содержит подстроки в скобках, replacement может содержать подстроки вида \digit, которые будут заменены текстом, совпавшим с digit-подстрокой в скобках; \0 воспроизведет все содержимое строки. Может использоваться до 9 подстрок. Круглые скобки могут быть вложенными, в этом случае они подсчитываются по открывающим скобкам.

string

Исходная строка.

Возвращаемые значения

Возвращается измененная строка. Если в строке string совпадений не найдено, она возвратится без изменений.

Примеры

Пример #1 Выделение результатов поиска

<?php
$pattern = '(>[^<]*)('. quotemeta($_GET['search']) .')';
$replacement = '\\1<span class="search">\\2</span>';
$body = eregi_replace($pattern, $replacement, $body);
?>

Смотрите также

  • ereg() - Совпадение с регулярным выражением
  • eregi() - Совпадение с регулярным выражением без учёта регистра
  • ereg_replace() - Осуществляет замену по регулярному выражению
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • quotemeta() - Экранирует специальные символы


Совпадение с регулярным выражением без учёта регистра

  • « eregi_replace
  • split »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Совпадение с регулярным выражением без учёта регистра

eregi

(PHP 4, PHP 5)

eregi — Совпадение с регулярным выражением без учёта регистра

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_match() (Используйте модификатор i (PCRE_CASELESS))

Описание

int eregi ( string $pattern , string $string [, array &$regs ] )

Эта функция идентична функции ereg() за исключением того, что игнорирует регистр при сравнении алфавитных символов.

Список параметров

pattern

Регистронезависимое регулярное выражение.

string

Входная строка.

regs

Если совпадения найдены для подстрок в скобках из pattern, и функция вызывается с третьим аргументом regs, совпадения будут сохранены в элементах массива regs.

$regs[1] будет содержать подстроку, которая начинается с первой левой круглой скобки; $regs[2] будет содержать подстроку, начинающуюся со второй, и т.д. $regs[0] будет содержать полную копию совпавшей строки.

Возвращаемые значения

Возвращает длину совпавшей строки, если совпадения с pattern найдены в string, или FALSE, если совпадений не найдено или возникла ошибка.

Если дополнительный параметр regs не передан, или длина совпавшей строки равна 0, функция возвращает 1.

Примеры

Пример #1 Пример использования eregi()

<?php
$string = 'XYZ';
if (eregi('z', $string)) {
    echo "'$string' содержит 'z' или 'Z'!";
}
?>

Смотрите также

  • ereg() - Совпадение с регулярным выражением
  • ereg_replace() - Осуществляет замену по регулярному выражению
  • eregi_replace() - Осуществляет замену по регулярному выражению без учета регистра
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • stristr() - Регистронезависимый вариант функции strstr
  • quotemeta() - Экранирует специальные символы


Разбиение строки на массив по регулярному выражению

  • « eregi
  • spliti »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Разбиение строки на массив по регулярному выражению

split

(PHP 4, PHP 5)

split — Разбиение строки на массив по регулярному выражению

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_split()
  • explode()
  • str_split()

Описание

array split ( string $pattern , string $string [, int $limit = -1 ] )

Разбивает строку string на массив по регулярному выражению.

Список параметров

pattern

Регулярное выражение, чувствительное к регистру.

Если необходимо разбить строку по символам, являющимся специальными для регулярных выражений, их следует экранировать. Если вам кажется, что split() (или любая другая функция, работающая с регулярными выражениями) ведет себя неожиданно, пожалуйста, прочтите файл regex.7, расположенный в поддиректории regex/ дистрибутива PHP. Он сохранен в формате manpage, поэтому для удобства чтения используйте команду man /usr/local/src/regex/regex.7.

string

Входная строка.

limit

Если указан параметр limit, возвращаемый массив будет содержать максимум limit элементов, причем последний элемент будет включать всю оставшуюся часть строки string.

Возвращаемые значения

Возвращает массив строк, каждая из которых является строкой, образованной разбиением строки string чувствительным к регистру регулярным выражением pattern.

Если pattern встречается n раз, результирующий массив будет содержать n+1 элементов. Например, если pattern в строке отсутствует, будет возвращен массив, содержащий 1 элемент. Само собой, это также верно в случае, когда string является пустой строкой. В случае ошибки split() возвращает FALSE.

Примеры

Пример #1 Пример использования split()

Получаем первые четыре поля строки из /etc/passwd:

<?php
list($user, $pass, $uid, $gid, $extra) =
    split(":", $passwd_line, 5);
?>

Пример #2 Пример использования split()

Распознаем дату, отформатированную с использованием слешей, точек или дефисов:

<?php
// Разделителями могут быть слеши, точки или дефисы
$date = "04/30/1973";
list($month, $day, $year) = split('[/.-]', $date);
echo "Месяц: $month; День: $day; Год: $year<br />\n";
?>

Примечания

Подсказка

Функция split() является устаревшей начиная с PHP 5.3.0. Предлагается использовать вместо неё функцию preg_split(). В случае, когда нет необходимости использовать регулярные выражения, эффективнее использовать explode(), которая не использует дополнительные ресурсы для разбора регулярного выражения.

Подсказка

Пользователям, которым необходимо эмулировать поведение @chars = split('', $str) из Perl, следует обратиться к примерам для preg_split() или str_split().

Смотрите также

  • preg_split() - Разбивает строку по регулярному выражению
  • spliti() - Разбивает строку в массив с помощью регулярного выражения без учета регистра
  • str_split() - Преобразует строку в массив
  • explode() - Разбивает строку с помощью разделителя
  • implode() - Объединяет элементы массива в строку
  • chunk_split() - Разбивает строку на фрагменты
  • wordwrap() - Переносит строку по указанному количеству символов


Разбивает строку в массив с помощью регулярного выражения без учета регистра

  • « split
  • sql_regcase »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Разбивает строку в массив с помощью регулярного выражения без учета регистра

spliti

(PHP 4 >= 4.0.1, PHP 5)

spliti — Разбивает строку в массив с помощью регулярного выражения без учета регистра

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_split() (Используйте модификатор i (PCRE_CASELESS))

Описание

array spliti ( string $pattern , string $string [, int $limit = -1 ] )

Разбивает строку string в массив с помощью регулярного выражения.

Эта функция идентична функции split() за исключением того, что она игнорирует регистр символов при сравнении.

Список параметров

pattern

Регистронезависимое регулярное выражение.

Если вы хотите разделить строку по символам, которые являются специальными символами регулярного выражения, вам сначала нужно заэкранировать эти символы. Если вы думаете, что функция spliti() (или другая функция для работы с регулярными выражениями) делает что-то странное, пожалуйста, прочитайте файл regex.7, который находится в папке regex/ дистрибутива PHP. Этот файл находится в формате manpage, поэтому вы можете прочитать его командой man /usr/local/src/regex/regex.7.

string

Строка для разделения.

limit

Если установлен limit, возвращаемый массив будет содержать максимум limit элементов, в котором последний элемент содержит всю строку string.

Возвращаемые значения

Возвращает массив строк, каждая из которых является подстрокой строки string, образованный с помощью регистронезависимого разделения регулярным выражением pattern.

Если встречаются n вхождений pattern, возвращаемый массив будет содержать n+1 элементов. К примеру, если вхождений pattern не будет найдено, то будет возвращен массив только с одним элементом. Естественно, это также справедливо, если string пустая. Если в процессе возникает ошибка, spliti() возвращает FALSE.

Примеры

Разделение строки, используя 'a' как разделитель:

Пример #1 Пример spliti()

<?php
$string = "aBBBaCCCADDDaEEEaGGGA";
$chunks = spliti ("a", $string, 5);
print_r($chunks);
?>

Результат выполнения данного примера:

Array
(
  [0] =>
  [1] => BBB
  [2] => CCC
  [3] => DDD
  [4] => EEEaGGGA
)

Смотрите также

  • preg_split() - Разбивает строку по регулярному выражению
  • split() - Разбиение строки на массив по регулярному выражению
  • explode() - Разбивает строку с помощью разделителя
  • implode() - Объединяет элементы массива в строку


Создает регулярное выражение для регистронезависимого сравнения

  • « spliti
  • ssdeep »
  • PHP Manual
  • Функции регулярных выражений POSIX
  • Создает регулярное выражение для регистронезависимого сравнения

sql_regcase

(PHP 4, PHP 5)

sql_regcase — Создает регулярное выражение для регистронезависимого сравнения

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 5.3.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • preg_match()
  • preg_quote()

Описание

string sql_regcase ( string $string )

Создает регулярное выражение для регистронезависимого сравнения.

Список параметров

string

Входная строка.

Возвращаемые значения

Создает допустимое регулярное выражение, которое будет совпадать с string, игнорируя регистр символов. Это выражение является string, в которой каждый буквенный символ заменен на символьный класс (выражение в квадратных скобках); каждый такой символьный класс содержит символы в нижнем и верхнем регистре. Другие символы остаются без изменений.

Примеры

Пример #1 Пример функции sql_regcase()

<?php
echo sql_regcase("Foo - bar.");
?>

Результат выполнения данного примера:

[Ff][Oo][Oo] - [Bb][Aa][Rr].

Это может быть использовано для получения регистронезависимых шаблонов поиска на системах, которые поддерживают только регистрозависимые регулярные выражения.


ssdeep Fuzzy Hashing

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • ssdeep Функции
    • ssdeep_fuzzy_compare — Calculates the match score between two fuzzy hash signatures
    • ssdeep_fuzzy_hash_filename — Create a fuzzy hash from a file
    • ssdeep_fuzzy_hash — Create a fuzzy hash from a string


Введение

ssdeep is a utility for creating and comparing fuzzy hashes or » context-triggered piecewise hashing.

Fuzzy hashing can match signatures which have "...sequences of identical bytes in the same order, although bytes in between these sequences may be different in both content and length". (» ssdeep project page)

This extension provides functions for creating and comparing fuzzy hashes.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

This extension requires the » ssdeep library.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/ssdeep.


  • « Типы ресурсов
  • ssdeep Функции »
  • PHP Manual
  • ssdeep
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


ssdeep Функции

Содержание

  • ssdeep_fuzzy_compare — Calculates the match score between two fuzzy hash signatures
  • ssdeep_fuzzy_hash_filename — Create a fuzzy hash from a file
  • ssdeep_fuzzy_hash — Create a fuzzy hash from a string


Calculates the match score between two fuzzy hash signatures

  • « ssdeep Функции
  • ssdeep_fuzzy_hash_filename »
  • PHP Manual
  • ssdeep Функции
  • Calculates the match score between two fuzzy hash signatures

ssdeep_fuzzy_compare

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_compare — Calculates the match score between two fuzzy hash signatures

Описание

int ssdeep_fuzzy_compare ( string $signature1 , string $signature2 )

Calculates the match score between signature1 and signature2 using » context-triggered piecewise hashing, and returns the match score.

Список параметров

signature1

The first fuzzy hash signature string.

signature2

The second fuzzy hash signature string.

Возвращаемые значения

Returns an integer from 0 to 100 on success, FALSE otherwise.


Create a fuzzy hash from a file

  • « ssdeep_fuzzy_compare
  • ssdeep_fuzzy_hash »
  • PHP Manual
  • ssdeep Функции
  • Create a fuzzy hash from a file

ssdeep_fuzzy_hash_filename

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hash_filename — Create a fuzzy hash from a file

Описание

string ssdeep_fuzzy_hash_filename ( string $file_name )

ssdeep_fuzzy_hash_filename() calculates the hash of the file specified by file_name using » context-triggered piecewise hashing, and returns that hash.

Список параметров

file_name

The filename of the file to hash.

Возвращаемые значения

Returns a string on success, FALSE otherwise.


Create a fuzzy hash from a string

  • « ssdeep_fuzzy_hash_filename
  • Строки »
  • PHP Manual
  • ssdeep Функции
  • Create a fuzzy hash from a string

ssdeep_fuzzy_hash

(PECL ssdeep >= 1.0.0)

ssdeep_fuzzy_hash — Create a fuzzy hash from a string

Описание

string ssdeep_fuzzy_hash ( string $to_hash )

ssdeep_fuzzy_hash() calculates the hash of to_hash using » context-triggered piecewise hashing, and returns that hash.

Список параметров

to_hash

The input string.

Возвращаемые значения

Returns a string on success, FALSE otherwise.


Строки

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Обработка строк
    • addcslashes — Экранирует cтроку слешами в стиле языка C
    • addslashes — Экранирует строку с помощью слешей
    • bin2hex — Преобразует бинарные данные в шестнадцатеричное представление
    • chop — Псевдоним rtrim
    • chr — Возвращает символ по его коду
    • chunk_split — Разбивает строку на фрагменты
    • convert_cyr_string — Преобразует строку из одной кириллической кодировки в другую
    • convert_uudecode — Декодирует строку из формата uuencode в обычный вид
    • convert_uuencode — Кодирует строку в формат uuencode
    • count_chars — Возвращает информацию о символах, входящих в строку
    • crc32 — Вычисляет полином CRC32 для строки
    • crypt — Необратимое хэширование строки
    • echo — Выводит одну или более строк
    • explode — Разбивает строку с помощью разделителя
    • fprintf — Записывает отформатированную строку в поток
    • get_html_translation_table — Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
    • hebrev — Преобразует текст на иврите из логической кодировки в визуальную
    • hebrevc — Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки
    • hex2bin — Преобразует шестнадцатеричные данные в двоичные
    • html_entity_decode — Преобразует все HTML-сущности в соответствующие символы
    • htmlentities — Преобразует все возможные символы в соответствующие HTML-сущности
    • htmlspecialchars_decode — Преобразует специальные HTML-сущности обратно в соответствующие символы
    • htmlspecialchars — Преобразует специальные символы в HTML-сущности
    • implode — Объединяет элементы массива в строку
    • join — Псевдоним implode
    • lcfirst — Преобразует первый символ строки в нижний регистр
    • levenshtein — Вычисляет расстояние Левенштейна между двумя строками
    • localeconv — Возвращает информацию о числовых форматах
    • ltrim — Удаляет пробелы (или другие символы) из начала строки
    • md5_file — Возвращает MD5-хэш файла
    • md5 — Возвращает MD5-хэш строки
    • metaphone — Возвращает ключ metaphone для строки
    • money_format — Форматирует число как денежную величину
    • nl_langinfo — Возвращает информацию о языке и локали
    • nl2br — Вставляет HTML-код разрыва строки перед каждым переводом строки
    • number_format — Форматирует число с разделением групп
    • ord — Возвращает ASCII-код символа
    • parse_str — Разбирает строку в переменные
    • print — Выводит строку
    • printf — Выводит отформатированную строку
    • quoted_printable_decode — Преобразует строку, закодированную методом quoted-printable в 8-битовую строку
    • quoted_printable_encode — Кодирует 8-битную строку в с помощью метода quoted-printable
    • quotemeta — Экранирует специальные символы
    • rtrim — Удаляет пробельные (или другие символы) из конца строки
    • setlocale — Устанавливает настройки локали
    • sha1_file — Возвращает SHA1-хэш файла
    • sha1 — Возвращает SHA1-хэш строки
    • similar_text — Вычисляет степень похожести двух строк
    • soundex — Возвращает ключ soundex для строки
    • sprintf — Возвращает отформатированную строку
    • sscanf — Разбирает строку в соответствии с заданным форматом
    • str_getcsv — Выполняет разбор CSV-строки в массив
    • str_ireplace — Регистронезависимый вариант функции str_replace
    • str_pad — Дополняет строку другой строкой до заданной длины
    • str_repeat — Возвращает повторяющуюся строку
    • str_replace — Заменяет все вхождения строки поиска на строку замены
    • str_rot13 — Выполняет преобразование ROT13 над строкой
    • str_shuffle — Переставляет символы в строке случайным образом
    • str_split — Преобразует строку в массив
    • str_word_count — Возвращает информацию о словах, входящих в строку
    • strcasecmp — Бинарно-безопасное сравнение строк без учета регистра
    • strchr — Псевдоним strstr
    • strcmp — Бинарно-безопасное сравнение строк
    • strcoll — Сравнение строк с учетом текущей локали
    • strcspn — Возвращает длину участка в начале строки, не соответствующего маске
    • strip_tags — Удаляет HTML и PHP-теги из строки
    • stripcslashes — Удаляет экранирование символов, произведенное функцией addcslashes
    • stripos — Возвращает позицию первого вхождения подстроки без учета регистра
    • stripslashes — Удаляет экранирование символов
    • stristr — Регистронезависимый вариант функции strstr
    • strlen — Возвращает длину строки
    • strnatcasecmp — Сравнение строк без учета регистра с использованием алгоритма "natural order"
    • strnatcmp — Сравнение строк с использованием алгоритма "natural order"
    • strncasecmp — Бинарно-безопасное сравнение первых n символов строк без учета регистра
    • strncmp — Бинарно-безопасное сравнение первых n символов строк
    • strpbrk — Ищет в строке любой символ из заданного набора
    • strpos — Возвращает позицию первого вхождения подстроки
    • strrchr — Находит последнее вхождение символа в строке
    • strrev — Переворачивает строку задом наперед
    • strripos — Возвращает позицию последнего вхождения подстроки без учета регистра
    • strrpos — Возвращает позицию последнего вхождения подстроки в строке
    • strspn — Возвращает длину участка в начале строки, полностью соответствующего маске
    • strstr — Находит первое вхождение подстроки
    • strtok — Разбивает строку на токены
    • strtolower — Преобразует строку в нижний регистр
    • strtoupper — Преобразует строку в верхний регистр
    • strtr — Преобразует заданные символы или заменяет подстроки
    • substr_compare — Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
    • substr_count — Возвращает число вхождений подстроки
    • substr_replace — Заменяет часть строки
    • substr — Возвращает подстроку
    • trim — Удаляет пробелы (или другие символы) из начала и конца строки
    • ucfirst — Преобразует первый символ строки в верхний регистр
    • ucwords — Преобразует в верхний регистр первый символ каждого слова в строке
    • vfprintf — Записывает отформатированную строку в поток
    • vprintf — Выводит отформатированную строку
    • vsprintf — Возвращает отформатированную строку
    • wordwrap — Переносит строку по указанному количеству символов
  • Список изменений


Введение

Эти функции предназначены для выполнения различных манипуляций со строками. Более специализированные функции см. в разделах, посвященных регулярным выражениям и обработке URL.

Для получения общей информации о работе со строками, особенно об использовании одиночных, двойных кавычек и экранировании символов, смотрите главу Строки в разделе Типы .


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

CRYPT_SALT_LENGTH integer
CRYPT_STD_DES integer
CRYPT_EXT_DES integer
CRYPT_MD5 integer
CRYPT_BLOWFISH integer
HTML_SPECIALCHARS (integer)
HTML_ENTITIES (integer)
ENT_COMPAT (integer)
ENT_QUOTES (integer)
ENT_NOQUOTES (integer)
ENT_IGNORE (integer)
ENT_SUBSTITUTE (integer)
ENT_DISALLOWED (integer)
ENT_HTML401 (integer)
ENT_XML1 (integer)
ENT_XHTML (integer)
ENT_HTML5 (integer)
CHAR_MAX (integer)
LC_CTYPE (integer)
LC_NUMERIC (integer)
LC_TIME (integer)
LC_COLLATE (integer)
LC_MONETARY (integer)
LC_ALL (integer)
LC_MESSAGES (integer)
STR_PAD_LEFT (integer)
STR_PAD_RIGHT (integer)
STR_PAD_BOTH (integer)


Обработка строк

Смотрите также

Для получения информации о более сложной обработке строк обратитесь к разделам о регулярных выражениях: POSIX-совместимых и Perl-совместимых.

Содержание

  • addcslashes — Экранирует cтроку слешами в стиле языка C
  • addslashes — Экранирует строку с помощью слешей
  • bin2hex — Преобразует бинарные данные в шестнадцатеричное представление
  • chop — Псевдоним rtrim
  • chr — Возвращает символ по его коду
  • chunk_split — Разбивает строку на фрагменты
  • convert_cyr_string — Преобразует строку из одной кириллической кодировки в другую
  • convert_uudecode — Декодирует строку из формата uuencode в обычный вид
  • convert_uuencode — Кодирует строку в формат uuencode
  • count_chars — Возвращает информацию о символах, входящих в строку
  • crc32 — Вычисляет полином CRC32 для строки
  • crypt — Необратимое хэширование строки
  • echo — Выводит одну или более строк
  • explode — Разбивает строку с помощью разделителя
  • fprintf — Записывает отформатированную строку в поток
  • get_html_translation_table — Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
  • hebrev — Преобразует текст на иврите из логической кодировки в визуальную
  • hebrevc — Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки
  • hex2bin — Преобразует шестнадцатеричные данные в двоичные
  • html_entity_decode — Преобразует все HTML-сущности в соответствующие символы
  • htmlentities — Преобразует все возможные символы в соответствующие HTML-сущности
  • htmlspecialchars_decode — Преобразует специальные HTML-сущности обратно в соответствующие символы
  • htmlspecialchars — Преобразует специальные символы в HTML-сущности
  • implode — Объединяет элементы массива в строку
  • join — Псевдоним implode
  • lcfirst — Преобразует первый символ строки в нижний регистр
  • levenshtein — Вычисляет расстояние Левенштейна между двумя строками
  • localeconv — Возвращает информацию о числовых форматах
  • ltrim — Удаляет пробелы (или другие символы) из начала строки
  • md5_file — Возвращает MD5-хэш файла
  • md5 — Возвращает MD5-хэш строки
  • metaphone — Возвращает ключ metaphone для строки
  • money_format — Форматирует число как денежную величину
  • nl_langinfo — Возвращает информацию о языке и локали
  • nl2br — Вставляет HTML-код разрыва строки перед каждым переводом строки
  • number_format — Форматирует число с разделением групп
  • ord — Возвращает ASCII-код символа
  • parse_str — Разбирает строку в переменные
  • print — Выводит строку
  • printf — Выводит отформатированную строку
  • quoted_printable_decode — Преобразует строку, закодированную методом quoted-printable в 8-битовую строку
  • quoted_printable_encode — Кодирует 8-битную строку в с помощью метода quoted-printable
  • quotemeta — Экранирует специальные символы
  • rtrim — Удаляет пробельные (или другие символы) из конца строки
  • setlocale — Устанавливает настройки локали
  • sha1_file — Возвращает SHA1-хэш файла
  • sha1 — Возвращает SHA1-хэш строки
  • similar_text — Вычисляет степень похожести двух строк
  • soundex — Возвращает ключ soundex для строки
  • sprintf — Возвращает отформатированную строку
  • sscanf — Разбирает строку в соответствии с заданным форматом
  • str_getcsv — Выполняет разбор CSV-строки в массив
  • str_ireplace — Регистронезависимый вариант функции str_replace
  • str_pad — Дополняет строку другой строкой до заданной длины
  • str_repeat — Возвращает повторяющуюся строку
  • str_replace — Заменяет все вхождения строки поиска на строку замены
  • str_rot13 — Выполняет преобразование ROT13 над строкой
  • str_shuffle — Переставляет символы в строке случайным образом
  • str_split — Преобразует строку в массив
  • str_word_count — Возвращает информацию о словах, входящих в строку
  • strcasecmp — Бинарно-безопасное сравнение строк без учета регистра
  • strchr — Псевдоним strstr
  • strcmp — Бинарно-безопасное сравнение строк
  • strcoll — Сравнение строк с учетом текущей локали
  • strcspn — Возвращает длину участка в начале строки, не соответствующего маске
  • strip_tags — Удаляет HTML и PHP-теги из строки
  • stripcslashes — Удаляет экранирование символов, произведенное функцией addcslashes
  • stripos — Возвращает позицию первого вхождения подстроки без учета регистра
  • stripslashes — Удаляет экранирование символов
  • stristr — Регистронезависимый вариант функции strstr
  • strlen — Возвращает длину строки
  • strnatcasecmp — Сравнение строк без учета регистра с использованием алгоритма "natural order"
  • strnatcmp — Сравнение строк с использованием алгоритма "natural order"
  • strncasecmp — Бинарно-безопасное сравнение первых n символов строк без учета регистра
  • strncmp — Бинарно-безопасное сравнение первых n символов строк
  • strpbrk — Ищет в строке любой символ из заданного набора
  • strpos — Возвращает позицию первого вхождения подстроки
  • strrchr — Находит последнее вхождение символа в строке
  • strrev — Переворачивает строку задом наперед
  • strripos — Возвращает позицию последнего вхождения подстроки без учета регистра
  • strrpos — Возвращает позицию последнего вхождения подстроки в строке
  • strspn — Возвращает длину участка в начале строки, полностью соответствующего маске
  • strstr — Находит первое вхождение подстроки
  • strtok — Разбивает строку на токены
  • strtolower — Преобразует строку в нижний регистр
  • strtoupper — Преобразует строку в верхний регистр
  • strtr — Преобразует заданные символы или заменяет подстроки
  • substr_compare — Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
  • substr_count — Возвращает число вхождений подстроки
  • substr_replace — Заменяет часть строки
  • substr — Возвращает подстроку
  • trim — Удаляет пробелы (или другие символы) из начала и конца строки
  • ucfirst — Преобразует первый символ строки в верхний регистр
  • ucwords — Преобразует в верхний регистр первый символ каждого слова в строке
  • vfprintf — Записывает отформатированную строку в поток
  • vprintf — Выводит отформатированную строку
  • vsprintf — Возвращает отформатированную строку
  • wordwrap — Переносит строку по указанному количеству символов


Экранирует cтроку слешами в стиле языка C

  • « Обработка строк
  • addslashes »
  • PHP Manual
  • Обработка строк
  • Экранирует cтроку слешами в стиле языка C

addcslashes

(PHP 4, PHP 5, PHP 7)

addcslashes — Экранирует cтроку слешами в стиле языка C

Описание

string addcslashes ( string $str , string $charlist )

Возвращает строку, экранированную обратными слешами перед символами, указанными в параметре charlist.

Список параметров

str

Экранируемая строка.

charlist

Список экранируемых символов. Если charlist содержит символы \n, \r и т.п., они будут преобразованы в стиле C, тогда как другие нецифробуквенные символы с ASCII-кодами ниже 32 и выше 126 будут преобразованы в восьмеричное представление.

Следует быть внимательным при указании диапазона символов в аргументе charlist. Проверяйте, какие символы входят в этот диапазон.

<?php
echo addcslashes('foo[ ]', 'A..z');
// выводит:  \f\o\o\[ \]
// Будут экранированы заглавные и строчные английские буквы
// ... а также [\]^_`
?>
Также, если ASCII-код первого символа диапазона больше, чем последнего, диапазон не будет создан. Вместо этого будут экранироваться только первый символ, последний символ и точка. Для определения ASCII-кода символов используйте функцию ord().
<?php
echo addcslashes("zoo['.']", 'z..A');
// выводит:  \zoo['\.']
?>

Будьте внимательны при экранировании символов 0, a, b, f, n, r, t и v. Они будут преобразованы в \0, \a, \b, \f, \n, \r, \t и \v, которые являются предопределенными escape-последовательностями в языке Си. Многие из этих последовательностей также определены в других си-подобных языках, включая PHP. Это означает, что вы можете не получить ожидаемого результата, если будете использовать вывод функции addcslashes() для создания кода в этих языках с использованием этих символов в charlist.

Возвращаемые значения

Возвращает экранированную строку.

Список изменений

Версия | Описание
5.2.5 | Добавлены экранирующие последовательности \v и \f.

Примеры

charlist, например, "\0..\37", что проэкранирует все символы с ASCII-кодами от 0 до 31.

Пример #1 addcslashes() example

<?php
$escaped = addcslashes($not_escaped, "\0..\37!@\177..\377");
?>

Смотрите также

  • stripcslashes() - Удаляет экранирование символов, произведенное функцией addcslashes
  • stripslashes() - Удаляет экранирование символов
  • addslashes() - Экранирует строку с помощью слешей
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • quotemeta() - Экранирует специальные символы


Экранирует строку с помощью слешей

  • « addcslashes
  • bin2hex »
  • PHP Manual
  • Обработка строк
  • Экранирует строку с помощью слешей

addslashes

(PHP 4, PHP 5, PHP 7)

addslashes — Экранирует строку с помощью слешей

Описание

string addslashes ( string $str )

Возвращает строку с обратным слешом перед символами, которые нужно экранировать. Экранируются одиночная кавычка ('), двойная кавычка ("), обратный слеш (\) и NUL (NULL байт).

Примером использования функции addslashes() может служить добавление данных в строку, которую будет выполнять PHP. Например, если O'Reilly помещается в переменную $str, то вам необходимо экранировать $str. (т.е. eval("echo '".addslashes($str)."';"); )

Для экранирования параметров в базе данных нужно использовать специализированные экранирующие функции СУБД (т.е. (e.g. mysqli_real_escape_string() для MySQL или pg_escape_literal(), pg_escape_string() для PostgreSQL). СУБД имеют разные спецификации для идентификаторов (т.е. имен таблиц, имен полей) и для параметров. Некоторые СУБД, такие как PostgreSQL, предоставляют отдельные функции экранирования идентификаторов (pg_escape_identifier()), но не все СУБД предоставляют такое API. В этом случае ориентируйтесь на документацию к вашей базе данных для выбора верного способа экранирования.

Если в вашей СУБД нет экранирующей функции и она использует символ \ для экранирования специальных символов, то вы можете использовать функцию addslashes(), но только если этот метод экранирования походит для вашей базы данных. Обратите внимание на то, что использование этой функции для экранирования параметров может привести к проблемам безопасности во многих базах данных.

Директива конфигурации magic_quotes_gpc по умолчанию имела значение on в версиях до PHP 5.4, при этом функция addslashes() автоматически применялась ко всем данным GET, POST, и COOKIE. Не используйте addslashes() для данных, обработанных magic_quotes_gpc, чтобы избежать двойного экранирования. Для проверки состояния этой директивы используется get_magic_quotes_gpc().

Список параметров

str

Экранируемая строка.

Возвращаемые значения

Возвращает экранируемую строку.

Примеры

Пример #1 Пример использования addslashes()

<?php
$str = "Ваше имя O'Reilly?";

// выводит: Ваше имя O\'Reilly?
echo addslashes($str);
?>

Смотрите также

  • stripcslashes() - Удаляет экранирование символов, произведенное функцией addcslashes
  • stripslashes() - Удаляет экранирование символов
  • addcslashes() - Экранирует cтроку слешами в стиле языка C
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • quotemeta() - Экранирует специальные символы
  • get_magic_quotes_gpc() - Получение текущего значения настройки конфигурации magic_quotes_gpc


Преобразует бинарные данные в шестнадцатеричное представление

  • « addslashes
  • chop »
  • PHP Manual
  • Обработка строк
  • Преобразует бинарные данные в шестнадцатеричное представление

bin2hex

(PHP 4, PHP 5, PHP 7)

bin2hex — Преобразует бинарные данные в шестнадцатеричное представление

Описание

string bin2hex ( string $str )

Возвращает ASCII-строку, содержащую шестнадцатеричное представление аргумента str. Преобразование производится побайтно, начиная с верхнего полубайта.

Список параметров

str

Строка.

Возвращаемые значения

Возвращает шестнадцатеричное представление указанной строки.

Смотрите также

  • hex2bin() - Преобразует шестнадцатеричные данные в двоичные
  • pack() - Упаковывает данные в бинарную строку


Псевдоним rtrim

  • « bin2hex
  • chr »
  • PHP Manual
  • Обработка строк
  • Псевдоним rtrim

chop

(PHP 4, PHP 5, PHP 7)

chop — Псевдоним rtrim()

Описание

Эта функция является псевдонимом: rtrim().

Примечания

Замечание:

Действие chop() отличается от одноименной функции chop() языка Perl, удаляющей последний символ строки.


Возвращает символ по его коду

  • « chop
  • chunk_split »
  • PHP Manual
  • Обработка строк
  • Возвращает символ по его коду

chr

(PHP 4, PHP 5, PHP 7)

chr — Возвращает символ по его коду

Описание

string chr ( int $ascii )

Возвращает строку из одного символа, код которого задан аргументом ascii.

Эта функция дополняет функцию ord().

Список параметров

ascii

Расширенный ASCII-код.

Значения за пределом диапазона (0..255) должны быть подибово сложены (bitwise AND) с 255, что соответствует такому алгоритму:

while ($ascii < 0) {
    $ascii += 256;
}
$ascii %= 256;

Возвращаемые значения

Возвращает символ по его коду.

Примеры

Пример #1 Пример использования chr()

<?php
$str = "Эта строка заканчивается на escape: ";
$str .= chr(27); /* добавляет символ escape в конец $str */

/* Но обычно лучше использовать такую конструкцию */

$str = sprintf("The string ends in escape: %c", 27);
?>

Пример #2 Поведение при переполнении

<?php
echo chr(-159), chr(833), PHP_EOL;
?>

Результат выполнения данного примера:

aA

Смотрите также

  • Описание формата %c функции sprintf()
  • ord()
  • » Таблица ASCII-кодов


Разбивает строку на фрагменты

  • « chr
  • convert_cyr_string »
  • PHP Manual
  • Обработка строк
  • Разбивает строку на фрагменты

chunk_split

(PHP 4, PHP 5, PHP 7)

chunk_split — Разбивает строку на фрагменты

Описание

string chunk_split ( string $body [, int $chunklen = 76 [, string $end = "\r\n" ]] )

Функция используется для разбиения строки на фрагменты, например, для приведения результата функции base64_encode() в соответствие с требованиями RFC 2045. Она вставляет строку end после каждых chunklen символов.

Список параметров

body

Разбиваемая строка.

chunklen

Длина фрагмента.

end

Последовательность символов, используемая в качестве конца строки.

Возвращаемые значения

Возвращает преобразованную строку.

Примеры

Пример #1 Пример использования chunk_split()

<?php
// форматирование данных в соответствии с RFC 2045
$new_string = chunk_split(base64_encode($data));
?>

Смотрите также

  • str_split() - Преобразует строку в массив
  • explode() - Разбивает строку с помощью разделителя
  • split() - Разбиение строки на массив по регулярному выражению
  • wordwrap() - Переносит строку по указанному количеству символов
  • » RFC 2045


Преобразует строку из одной кириллической кодировки в другую

  • « chunk_split
  • convert_uudecode »
  • PHP Manual
  • Обработка строк
  • Преобразует строку из одной кириллической кодировки в другую

convert_cyr_string

(PHP 4, PHP 5, PHP 7)

convert_cyr_string — Преобразует строку из одной кириллической кодировки в другую

Описание

string convert_cyr_string ( string $str , string $from , string $to )

Преобразует строку из одной кириллической кодировки в другую.

Список параметров

str

Конвертируемая строка.

from

Исходная кириллическая кодировка, один символ.

to

Целевая кириллическая кодировка, один символ.

Поддерживаются следующие символы:

  • k - koi8-r
  • w - windows-1251
  • i - iso8859-5
  • a - x-cp866
  • d - x-cp866
  • m - x-mac-cyrillic

Возвращаемые значения

Возвращает преобразованную строку.

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.


Декодирует строку из формата uuencode в обычный вид

  • « convert_cyr_string
  • convert_uuencode »
  • PHP Manual
  • Обработка строк
  • Декодирует строку из формата uuencode в обычный вид

convert_uudecode

(PHP 5, PHP 7)

convert_uudecode — Декодирует строку из формата uuencode в обычный вид

Описание

string convert_uudecode ( string $data )

convert_uudecode() декодирует строку из формата uuencode в обычный вид.

Список параметров

data

Данные в формате uuencode.

Возвращаемые значения

Возвращает декодированные данные в виде строки или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования convert_uudecode()

<?php
/* Догадаетесь, что выведет этот код? :) */
echo convert_uudecode("+22!L;W9E(%!(4\"$`\n`");
?>

Смотрите также

  • convert_uuencode() - Кодирует строку в формат uuencode


Кодирует строку в формат uuencode

  • « convert_uudecode
  • count_chars »
  • PHP Manual
  • Обработка строк
  • Кодирует строку в формат uuencode

convert_uuencode

(PHP 5, PHP 7)

convert_uuencode — Кодирует строку в формат uuencode

Описание

string convert_uuencode ( string $data )

convert_uuencode() кодирует строку с помощью алгоритма uuencode.

Кодирование uuencode переводит строки (включая бинарные символы) в последовательности печатных (7-битных) ASCII-символов, что позволяет безопасно обмениваться данными через сеть. Закодированные данные примерно на 35% больше оригинала.

Список параметров

data

Кодируемые данные.

Возвращаемые значения

Возвращает закодированные данные в формате uuencode или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования convert_uuencode()

<?php
$some_string = "test\ntext text\r\n";

echo convert_uuencode($some_string);
?>

Смотрите также

  • convert_uudecode() - Декодирует строку из формата uuencode в обычный вид
  • base64_encode() - Кодирует данные алгоритмом MIME base64


Возвращает информацию о символах, входящих в строку

  • « convert_uuencode
  • crc32 »
  • PHP Manual
  • Обработка строк
  • Возвращает информацию о символах, входящих в строку

count_chars

(PHP 4, PHP 5, PHP 7)

count_chars — Возвращает информацию о символах, входящих в строку

Описание

mixed count_chars ( string $string [, int $mode = 0 ] )

Подсчитывает количество вхождений каждого из символов с ASCII-кодами в диапазоне (0..255) в строке string и возвращает эту информацию в различных форматах.

Список параметров

string

Исследуемая строка.

mode

Смотрите возвращаемые значения.

Возвращаемые значения

В зависимости от параметра mode count_chars() возвращает одно из следующих значений:

  • 0 - массив, индексами которого являются ASCII-коды, а значениями - число вхождений соответствующего символа.
  • 1 - то же, что и для 0, но информация о символах с нулевым числом вхождений не включается в массив.
  • 2 - то же, что и для 0, но в массив включается информация только о символах с нулевым числом вхождений.
  • 3 - строка, содержащая все уникальные символы в исследуемой строке.
  • 4 - строка, состоящая из символов, которые не входят в исходную строку.

Примеры

Пример #1 Пример использования count_chars()

<?php
$data = "Two Ts and one F.";

foreach (count_chars($data, 1) as $i => $val) {
   echo "\"" , chr($i) , "\" встречается в строке $val раз(а).\n";
}
?>

Результат выполнения данного примера:

" " встречается в строке 4 раз(а).
"." встречается в строке 1 раз(а).
"F" встречается в строке 1 раз(а).
"T" встречается в строке 2 раз(а).
"a" встречается в строке 1 раз(а).
"d" встречается в строке 1 раз(а).
"e" встречается в строке 1 раз(а).
"n" встречается в строке 2 раз(а).
"o" встречается в строке 2 раз(а).
"s" встречается в строке 1 раз(а).
"w" встречается в строке 1 раз(а).

Смотрите также

  • strpos() - Возвращает позицию первого вхождения подстроки
  • substr_count() - Возвращает число вхождений подстроки


Вычисляет полином CRC32 для строки

  • « count_chars
  • crypt »
  • PHP Manual
  • Обработка строк
  • Вычисляет полином CRC32 для строки

crc32

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

crc32 — Вычисляет полином CRC32 для строки

Описание

int crc32 ( string $str )

Функция вычисляет циклический избыточный код 32-битных полиномов (CRC32) для строки str. Это обычно используется для контроля целостности передаваемых данных.

Внимание

В PHP целые числа имеют знак, поэтому многие контрольные суммы могут оказаться отрицательными на 32-битных платформах. На 64-битных платформах все результаты crc32() будут положительными целыми.

Поэтому вам нужно использовать формат "%u" в функциях sprintf() или printf() для получения строкового представления суммы crc32() без знака.

Для шестнадцетиричного представления суммы вы можете использовать или формат "%x" в функциях sprintf() и printf(), или же функцию конвертации dechex(). Оба этих способа также позаботятся о конвертации результата crc32() в безнаковое целое.

При использовании 64-битных платформ также рассматривалась возможность возвращать отрицательные целые для больших значений, но это ломало шестнадцетиричное представление, добавляя дополнительные 0xFFFFFFFF######## смещения для них. Так как шестнадцатеричное представление является самым востребованным, было решено не ломать его, даже если это ломает прямое сравнение десятиричных значений в 50% случаев при переходе с 32-битных на 64-битные платформы.

Оглядываясь назад, возможно возвращать целое число было не самой лучшей идеей и лучше было возвращать сразу шестнадцетиричное представление (как например делает md5()).

Можно воспользоваться также более общим решением с использованием функции hash(). hash("crc32b", $str) вернет ту же строку, что и str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT).

Список параметров

str

Данные.

Возвращаемые значения

Возвращает контрольную сумму crc32 строки str в виде целого числа.

Примеры

Пример #1 Вывод контрольной суммы CRC32

Этот пример иллюстрирует вывод вычисленной контрольной суммы с помощью функции printf():

<?php
$checksum = crc32("The quick brown fox jumped over the lazy dog.");
printf("%u\n", $checksum);
?>

Смотрите также

  • hash() - Генерирует хеш-код (дайджест сообщения)
  • md5() - Возвращает MD5-хэш строки
  • sha1() - Возвращает SHA1-хэш строки


Необратимое хэширование строки

  • « crc32
  • echo »
  • PHP Manual
  • Обработка строк
  • Необратимое хэширование строки

crypt

(PHP 4, PHP 5, PHP 7)

crypt — Необратимое хэширование строки

Описание

string crypt ( string $str [, string $salt ] )

crypt() возвращает хэшированную строку, полученную с помощью стандартного алгоритма UNIX, основанного на DES, или другого алгоритма, имеющегося в системе.

Параметр salt является необязательным. Однако без salt функция crypt() создает слабый пароль. PHP 5.6 и новее вызывают ошибку E_NOTICE, если не использовать соль. Убедитесь, что используете достаточно сложную соль для лучшей безопасности.

Функция password_hash() использует сложный хэш, генерирует сложную соль и применяет правильно количество раундов хэширования автоматически. password_hash() является простой оберткой над crypt() и совместима с существующими хэшами паролей. Поэтому приветствуется использование password_hash().

Некоторые операционные системы поддерживают несколько алгоритмов хэширования. Иногда стандартный алгоритм, основанный на DES, заменяется алгоритмом на основе MD5. Вид хэширования определяется переданным аргументом salt (соль). До версии PHP 5.3, PHP определял доступные алгоритмы шифрования во время инсталляции, базируясь на системной функции crypt(). Если соль не указана, будет автоматически сгенерирована стандартная случайная двухсимвольная (DES) либо двенадцатисимвольная (MD5) соль, в зависимости от доступности алгоритма MD5 в crypt(). Предопределенная константа CRYPT_SALT_LENGTH позволяет определить максимально доступную длину соли в соответствии с используемыми алгоритмами.

Стандартная функция crypt() на основе DES копирует возвращает соль в качестве первых двух символов возвращаемой строки. Кроме того, она использует только первые восемь символов строки str, поэтому более длинные строки, начинающиеся с тех же восьми символов, сгенерируют один и тот же результат (при использовании одинаковой соли).

На системах, где функция crypt() поддерживает несколько алгоритмов хэширования, следующие константы устанавливаются в 0 или 1 в зависимости от доступности соответствующего алгоритма:

  • CRYPT_STD_DES - Стандартное DES-шифрование с двухсимвольной солью из алфавита "./0-9A-Za-z""./0-9A-Za-z". Использование других символов в соли повлечет за собой отказ работы crypt().
  • CRYPT_EXT_DES - Расширенное DES-шифрование. "Соль" является девятисимвольной строкой, состоящей из символа подчеркивания, за которым следуют 4 байта счетчика итерации и 4 байта соли. Эти данные будут закодированы в виде печатаемых символов, 6 бит на символ, с меньшим значащим символом указанным первым. Значения от 0 до 63 кодируются как "./0-9A-Za-z". Использование других символов в соли повлечет за собой отказ работы crypt().
  • CRYPT_MD5 - MD5-шифрование с 12-символьной солью, начинающейся с $1$
  • CRYPT_BLOWFISH - Blowfish-шифрование со следующей солью: "$2a$", "$2x$" или "$2y$", весовой параметр из двух цифр, "$" и 22 цифры из алфавита "./0-9A-Za-z". Использование других символов в соли повлечет за собой возвращение пустой строки. Весовой параметр из двух цифр является двоичным логарифмом счетчика итераций низлежащего хэширующего алгоритма, основанного на Blowfish, и должен быть в диапазоне 04-31, значения вне данного диапазона вызовут отказ crypt(). Версии PHP до 5.3.7 поддерживали только префикс "$2a$" для соли: PHP 5.3.7 добавил новые префиксы для исправлени уязвимостей в реализации Blowfish. Для полного понимания ознакомьтесь с » этим разделом, но если кратко, то разработчики должны использовать "$2y$" вместо "$2a$" начиная с PHP 5.3.7.
  • CRYPT_SHA256 - хэш SHA-256 с шестнадцатисимвольной солью, начинающейся с $5$. Если строка с солью начинается с 'rounds=<N>$', число N будет использовано для обозначения количества раундов хэширования, по аналогии с весовым параметром в Blowfish. По умолчанию используемое количество раундов равно 5000, минимально доступно 1000 и максимально 999,999,999. Любой значение вне этого диапазона будет усечено до ближайшего лимита.
  • CRYPT_SHA512 - хэш SHA-512 с шестнадцатисимвольной солью, начинающейся с $6$. Если строка с солью начинается с 'rounds=<N>$', число N будет использовано для обозначения количества раундов хэширования, по аналогии с весовым параметром в Blowfish. По умолчанию используемое количество раундов равно 5000, минимально доступно 1000 и максимально 999,999,999. Любой значение вне этого диапазона будет усечено до ближайшего лимита.

Замечание:

Начиная с версии PHP 5.3.0, PHP использует свою собственную реализацию, которая будет использована при отсутствии в системе какого-либо алгоритма.

Список параметров

str

Хэшируемая строка.

Предостережение

При использовании алгоритма CRYPT_BLOWFISH, параметр str обрезается до 72 символов.

salt

Необязательный параметр с солью, на которой будет основано хэширование. Если не указан, поведение определяется по наличию реализованных алгоритмов в системе и может привести к неожиданным результатам.

Возвращаемые значения

Возвращает хэшированную строку или строку короче 13 символов, гарантированно отличающуюся от соли в случае ошибки.

Внимание

При валидации паролей должны использоваться функции сравнения строк, устойчивые к атаке по времени, для сравнения вывода функции crypt() с известным хэшом. В PHP 5.6 и новее для этих целей есть функция hash_equals().

Список изменений

Версия | Описание
5.6.5 | Теперь, если в параметр salt передано неправильное значение "*0", то теперь возвращается "*1" согласно другим криптографическим реализациям. До этой версии PHP 5.6 возвращал DES хэш.
5.6.0 | Если параметр salt пропущен, то бросается предупреждение E_NOTICE.
5.5.21 | Теперь, если в параметр salt передано неправильное значение "*0", то теперь возвращается "*1" согласно другим криптографическим реализациям. До этой версии PHP 5.5 (и другие ветки) возвращал DES хэш.
5.3.7 | Добавлены $2x$ и $2y$ режимы Blowfish для предотвращения возможных "high-bit" атак.
5.3.2 | Добавлено хэширование алгоритмами SHA-256 и SHA-512, основанное на » реализации Ulrich Drepper.
5.3.2 | Исправлено поведение Blowfish при некорректных раундах: теперь возвращается "ошибочная" строка ("*0" или "*1") вместо отката к использованию DES.
5.3.0 | PHP теперь использует собственную реализацию MD5, стандартного DES, расширенного DES и Blowfish алгоритмов, которые будут использованы в случае отсутствия их поддержки в системе.

Примеры

Пример #1 Пример использования crypt()

<?php
$hashed_password = crypt('mypassword'); // соль будет сгенерирована автоматически

/* Для проверки пароля в качестве параметра salt следует передавать результат работы
   crypt() целиком во избежание проблем при использовании различных
   алгоритмов (как уже было отмечено выше, стандартный DES-алгоритм
   использует 2-символьную соль, а MD5 - 12-символьную. */
if (hash_equals($hashed_password, crypt($user_input, $hashed_password))) {
   echo "Пароль верен!";
}
?>

Пример #2 Использование crypt() и htpasswd

<?php
// пароль
$password = 'mypassword';

// получение хэша, соль генерируется автоматически
$hash = crypt($password);
?>

Пример #3 Использование crypt() с различными видами хэшей

<?php
/* Приведенная соль является только примером. Не используйте эту же соль в вашем коде.
   Вы должны сгенерировать уникальную и правильную соль для каждого пароля.
*/
if (CRYPT_STD_DES == 1) {
    echo 'Стандартный DES: ' . crypt('rasmuslerdorf', 'rl') . "\n";
}

if (CRYPT_EXT_DES == 1) {
    echo 'Расширенный DES: ' . crypt('rasmuslerdorf', '_J9..rasm') . "\n";
}

if (CRYPT_MD5 == 1) {
    echo 'MD5:             ' . crypt('rasmuslerdorf', '$1$rasmusle$') . "\n";
}

if (CRYPT_BLOWFISH == 1) {
    echo 'Blowfish:        ' . crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$') . "\n";
}

if (CRYPT_SHA256 == 1) {
    echo 'SHA-256:         ' . crypt('rasmuslerdorf', '$5$rounds=5000$usesomesillystringforsalt$') . "\n";
}

if (CRYPT_SHA512 == 1) {
    echo 'SHA-512:         ' . crypt('rasmuslerdorf', '$6$rounds=5000$usesomesillystringforsalt$') . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Стандартный DES: rl.3StKT.4T8M
Расширенный DES: _J9..rasmBYk8r9AiWNc
MD5:             $1$rasmusle$rISCgZzpwk3UhDidwXvin0
Blowfish:        $2a$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi
SHA-256:         $5$rounds=5000$usesomesillystri$KqJWpanXZHKq2BOB43TSaYhEWsQ1Lr5QNyPCDH/Tp.6
SHA-512:         $6$rounds=5000$usesomesillystri$D4IrlXatmP7rx3P3InaxBeoomnAihCKRVQP22JZ6EY47Wc6BkroIuUUBOov1i.S5KPgErtP/EN5mcO.ChWQW21

Примечания

Замечание: Функция расшифровки отсутствует, так как crypt() использует необратимый алгоритм хэширования.

Смотрите также

  • hash_equals() - Timing attack safe string comparison
  • password_hash() - Creates a password hash
  • md5() - Возвращает MD5-хэш строки
  • Расширение Mcrypt
  • Страница руководства Unix по вашей функции crypt


Выводит одну или более строк

  • « crypt
  • explode »
  • PHP Manual
  • Обработка строк
  • Выводит одну или более строк

echo

(PHP 4, PHP 5, PHP 7)

echo — Выводит одну или более строк

Описание

void echo ( string $arg1 [, string $... ] )

Выводит все аргументы. Символ конца строки не добавляется.

На самом деле echo - это не функция, а конструкция языка, поэтому заключать аргументы в скобки необязательно. echo (в отличии от других языковых конструкций) не ведет себя как функция, поэтому не всегда может быть использована в контексте функции. Вдобавок, если вы хотите передать более одного аргумента в echo, эти аргументы нельзя заключать в скобки.

echo имеет также краткую форму, представляющую собой знак равенства, следующий непосредственно за открывающим тэгом. До версии PHP 5.4.0, этот сокращенный синтаксис допускался только когда включена директива конфигурации short_open_tag.

I have <?=$foo?> foo.

Единственное отличие от print в том, что echo принимает список аргументов.

Список параметров

arg1

Параметр для вывода.

...

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Примеры использования echo

<?php
echo "Привет мир!";

echo "Это займет
несколько строк. Переводы строки тоже
выводятся";

echo "Это займет\nнесколько строк. Переводы строки тоже\nвыводятся";

echo "Экранирование символов делается \"Так\".";

// с echo можно использовать переменные ...
$foo = "foobar";
$bar = "barbaz";

echo "foo - это $foo"; // foo - это foobar

// ... и массивы
$baz = array("value" => "foo");

echo "это {$baz['value']} !"; // это foo !

// При использовании одиночных кавычек выводится имя переменной, а не значение
echo 'foo - это $foo'; // foo - это $foo

// Если вы не используете другие символы, можно вывести просто значения переменных
echo $foo;          // foobar
echo $foo,$bar;     // foobarbarbaz

// Вместо конкатенации можно предать список аргументов, которые будут склеены
// в одну строку и обработаны как один аргумент
echo 'Эта ', 'строка ', 'была ', 'создана ', 'несколькими параметрами.', chr(10);
echo 'Эта ' . 'строка ' . 'была ' . 'создана ' . 'с помощью конкатенации.' . "\n";

echo <<<END
Здесь используется синтаксис "here document" для вывода
нескольких строк с подстановкой переменных $variable.
Заметьте, что закрывающий идентификатор должен
располагаться в отдельной строке. никаких пробелов!
END;

// Следующая строка неверна, так как echo не является функцией
($some_var) ? echo 'true' : echo 'false';

// Но это можно записать по другому
($some_var) ? print 'true' : print 'false'; // print также является конструкцией языка,
                                            // но ведет себя как функция, поэтому она
                                            // может быть использована в этом контексте.
echo $some_var ? 'true': 'false'; // echo вынесен за пределы выражения
?>

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Подсказка

Преемущество передачи нескольких аргументов вместо конкатенации в том, что echo уважает приоритет оператора "точка". Если передавать несколько аргументов, то в будет не нужно убирать выражения в скобки:

<?php
echo "Sum: ", 1 + 2;
echo "Hello ", isset($name) ? $name : "John Doe", "!";

В случае конкатенации, оператор "точка" будет иметь более высокий приоритет чем сложение или тернарный оператор и придется оборачивать их в скобки:

<?php
echo 'Sum: ' . (1 + 2);
echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';

Смотрите также

  • print - Выводит строку
  • printf() - Выводит отформатированную строку
  • flush() - Сброс системного буфера вывода
  • Heredoc синтаксис


Разбивает строку с помощью разделителя

  • « echo
  • fprintf »
  • PHP Manual
  • Обработка строк
  • Разбивает строку с помощью разделителя

explode

(PHP 4, PHP 5, PHP 7)

explode — Разбивает строку с помощью разделителя

Описание

array explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] )

Возвращает массив строк, полученных разбиением строки string с использованием delimiter в качестве разделителя.

Список параметров

delimiter

Разделитель.

string

Входная строка.

limit

Если аргумент limit является положительным, возвращаемый массив будет содержать максимум limit элементов, при этом последний элемент будет содержать остаток строки string.

Если параметр limit отрицателен, то будут возвращены все компоненты кроме последних -limit.

Если limit равен нулю, то он расценивается как 1.

Замечание:

По историческим причинам, функции implode() можно передавать аргументы в любом порядке, но для explode() это недопустимо. Убедитесь в том, что delimiter указан перед аргументом string.

Возвращаемые значения

Возвращает массив (array) строк (string), созданный делением параметра string по границам, указанным параметром delimiter.

Если delimiter является пустой строкой (""), explode() возвращает FALSE. Если delimiter не содержится в string, и используется отрицательный limit, то будет возвращен пустой массив (array), иначе будет возвращен массив, содержащий string.

Список изменений

Версия | Описание
5.1.0 | Добавлена поддержка отрицательных значений limit

Примеры

Пример #1 Пример использования explode()

<?php
// Пример 1
$pizza  = "кусок1 кусок2 кусок3 кусок4 кусок5 кусок6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // кусок1
echo $pieces[1]; // кусок2

// Пример 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *

?>

Пример #2 Пример возвращаемого значения explode()

<?php
/*
   Строка, которая не содержит разделителя, будет
   просто возвращать массив с одним значением оригинальной строки.
*/
$input1 = "hello";
$input2 = "hello,there";
$input3 = ',';
var_dump( explode( ',', $input1 ) );
var_dump( explode( ',', $input2 ) );
var_dump( explode( ',', $input3 ) );

?>

Результат выполнения данного примера:

array(1)
(
    [0] => string(5) "hello"
)
array(2)
(
    [0] => string(5) "hello"
    [1] => string(5) "there"
)
array(2)
(
    [0] => string(0) ""
    [1] => string(0) ""
)

Пример #3 Примеры с использованием параметра limit

<?php
$str = 'один|два|три|четыре';

// положительный лимит
print_r(explode('|', $str, 2));

// отрицательный лимит (начиная с PHP 5.1)
print_r(explode('|', $str, -1));
?>

Результат выполнения данного примера:

Array
(
    [0] => один
    [1] => два|три|четыре
)
Array
(
    [0] => один
    [1] => два
    [2] => три
)

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • preg_split() - Разбивает строку по регулярному выражению
  • str_split() - Преобразует строку в массив
  • mb_split() - Разделение строк в многобайтных кодировках, используя регулярное выражение
  • str_word_count() - Возвращает информацию о словах, входящих в строку
  • strtok() - Разбивает строку на токены
  • implode() - Объединяет элементы массива в строку


Записывает отформатированную строку в поток

  • « explode
  • get_html_translation_table »
  • PHP Manual
  • Обработка строк
  • Записывает отформатированную строку в поток

fprintf

(PHP 5, PHP 7)

fprintf — Записывает отформатированную строку в поток

Описание

int fprintf ( resource $handle , string $format [, mixed $args [, mixed $... ]] )

Записывает строку, созданную с использованием строки формата format, в поток, дескриптор которого передается в параметре handle.

Список параметров

handle

Указатель (resource) на файл, обычно создаваемый с помощью функции fopen().

format

Описание параметра format смотрите в описании функции sprintf().

args

...

Возвращаемые значения

Возвращает длину записанной строки.

Примеры

Пример #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() - Возвращает отформатированную строку
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • vsprintf() - Возвращает отформатированную строку
  • number_format() - Форматирует число с разделением групп


Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities

  • « fprintf
  • hebrev »
  • PHP Manual
  • Обработка строк
  • Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities

get_html_translation_table

(PHP 4, PHP 5, PHP 7)

get_html_translation_table — Возвращает таблицу преобразований, используемую функциями htmlspecialchars() и htmlentities()

Описание

array get_html_translation_table ([ int $table = HTML_SPECIALCHARS [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = "UTF-8" ]]] )

get_html_translation_table() возвращает таблицу
преобразований, используемую функциями htmlspecialchars()
и htmlentities().

Замечание:

Специальные символы могут быть закодированы разными способами. Например, " может быть закодирован как &quot;, &#34; или &#x22. get_html_translation_table() возвращает только формы, используемые функциями htmlspecialchars() и htmlentities().

Список параметров

table

Указывает, какую таблицу использовать для преобразований. Либо HTML_ENTITIES, либо HTML_SPECIALCHARS.

flags

Битовая маска, состоящая из одного или нескольких перечисленных ниже флагов, которые указывают какие кавычки будет содержать таблица, а также для какого документа таблица предназначена. Значение по умолчанию ENT_COMPAT | ENT_HTML401.

Доступные константы в параметре flags
Имя константы | Описание
ENT_COMPAT | Таблица будет содержать сущности для двойных кавычек, но не будет для одинарных.
ENT_QUOTES | Таблица будет содержать сущности как для двойных кавычек, так и для одинарных.
ENT_NOQUOTES | Таблица не будет содержать сущности ни для двойных кавычек, ни для одинарных.
ENT_HTML401 | Таблица для HTML 4.01.
ENT_XML1 | Таблица для XML 1.
ENT_XHTML | Таблица для XHTML.
ENT_HTML5 | Таблица для HTML 5.

encoding

Используемая кодировка. Если не указана, то значением по умолчанию для этого аргумента является ISO-8859-1 в версиях PHP до 5.4.0 и UTF-8, начиная с версии 5.4.0 и далее.

Поддерживаются следующие кодировки:

Поддерживаемые кодировки
Кодировка | Псевдонимы | Описание
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1.
ISO-8859-5 | ISO8859-5 | Редко используемая кириллическая кодировка (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1(ISO-8859-1).
UTF-8 | 8-битная Unicode, совместимая с ASCII.
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS.
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows.
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows.
KOI8-R | koi8-ru, koi8r | Русская кодировка.
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване.
GB2312 | 936 | Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCS | Расширенная Big5, применяемая в Гонг-Конге.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Японская кодировка.
EUC-JP | EUCJP, eucJP-win | Японская кодировка.
MacRoman | Кодировка, используемая в Mac OS.
'' Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale()), в указанном порядке. Не рекомендуется к использованию.

Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.

Возвращаемые значения

Возвращает таблицу преобразований в виде массива с оригинальными символами в качестве ключей и сущностями в качестве значений.

Список изменений

Версия | Описание
5.4.0 | Значение по умолчанию для параметра encoding было изменено на UTF-8.
5.4.0 | Были добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
5.3.4 | Добавлен параметр encoding.

Примеры

Пример #1 Пример таблицы преобразований

<?php
var_dump(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES | ENT_HTML5));
?>

Результатом выполнения данного примера будет что-то подобное:

array(1510) {
  ["
"]=>
  string(9) "&NewLine;"
  ["!"]=>
  string(6) "&excl;"
  ["""]=>
  string(6) "&quot;"
  ["#"]=>
  string(5) "&num;"
  ["$"]=>
  string(8) "&dollar;"
  ["%"]=>
  string(8) "&percnt;"
  ["&"]=>
  string(5) "&amp;"
  ["'"]=>
  string(6) "&apos;"
  // ...
}

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • html_entity_decode() - Преобразует все HTML-сущности в соответствующие символы


Преобразует текст на иврите из логической кодировки в визуальную

  • « get_html_translation_table
  • hebrevc »
  • PHP Manual
  • Обработка строк
  • Преобразует текст на иврите из логической кодировки в визуальную

hebrev

(PHP 4, PHP 5, PHP 7)

hebrev — Преобразует текст на иврите из логической кодировки в визуальную

Описание

string hebrev ( string $hebrew_text [, int $max_chars_per_line = 0 ] )

Преобразует текст на иврите из логической кодировки в визуальную.

Эта функция пытается избежать разрывов слов.

Список параметров

hebrew_text

Входная строка на иврите.

max_chars_per_line

Этот необязательный параметр указывает максимально возвращаемое число символов на строку.

Возвращаемые значения

Возвращает строку в визуальной кодировке.

Смотрите также

  • hebrevc() - Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки


Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки

  • « hebrev
  • hex2bin »
  • PHP Manual
  • Обработка строк
  • Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки

hebrevc

(PHP 4, PHP 5, PHP 7)

hebrevc — Преобразует текст на иврите из логической кодировки в визуальную с преобразованием перевода строки

Описание

string hebrevc ( string $hebrew_text [, int $max_chars_per_line = 0 ] )

Эта функция похожа на hebrev() с тем отличием, что что она преобразует символы перевода строки (\n) в "<br>\n".

Эта функция пытается избежать разрывов слов.

Список параметров

hebrew_text

Входная строка на иврите.

max_chars_per_line

Этот необязательный параметр указывает максимально возвращаемое число символов на строку.

Возвращаемые значения

Возвращает строку в визуальной кодировке.

Смотрите также

  • hebrev() - Преобразует текст на иврите из логической кодировки в визуальную


Преобразует шестнадцатеричные данные в двоичные

  • « hebrevc
  • html_entity_decode »
  • PHP Manual
  • Обработка строк
  • Преобразует шестнадцатеричные данные в двоичные

hex2bin

(PHP >= 5.4.0)

hex2bin — Преобразует шестнадцатеричные данные в двоичные

Описание

string hex2bin ( string $data )

Декодирует строку данных из шестнадцатеричного представления

Предостережение

Эта функция НЕ конвертирует шестнадцатеричные числа в двоичные. Если нужно именно это, используйте функцию base_convert().

Список параметров

data

Шестнадцатеричное представление данных.

Возвращаемые значения

Возвращает двоичное представление данных, или FALSE в случае возникновения ошибки.

Ошибки

Если во входной шестнадцатеричной строке окажется нечетное число байт или она не является правильной шестнадцатеричной строкой, будет выдано предупреждение E_WARNING.

Список изменений

Версия | Описание
5.5.1 | Если входная строка не является правильной шестнадцатеричной строкой, то будет выброшено предупреждение.
5.4.4 | Если строка имеет нечетную длину, выбрасывается предупреждение. В PHP 5.4.0 такая строка принималась, а последний байт просто обрезался.

Примеры

Пример #1 Пример использования hex2bin()

<?php
$hex = hex2bin("6578616d706c65206865782064617461");
var_dump($hex);
?>

Результатом выполнения данного примера будет что-то подобное:

string(16) "пример hex данных"

Смотрите также

  • bin2hex() - Преобразует бинарные данные в шестнадцатеричное представление
  • unpack() - Распаковывает данные из бинарной строки


Преобразует все HTML-сущности в соответствующие символы

  • « hex2bin
  • htmlentities »
  • PHP Manual
  • Обработка строк
  • Преобразует все HTML-сущности в соответствующие символы

html_entity_decode

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

html_entity_decode — Преобразует все HTML-сущности в соответствующие символы

Описание

string html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") ]] )

html_entity_decode() является противоположностью функции htmlentities(). Она преобразует все HTML-сущности в строке string в соответствующие символы.

Если быть точнее, то эта функция преобразует все сущности (в том числе все числовые сущности), которые а) обязательно верны для выбранного типа документа - то есть, для XML, эта функция не преобразует именованные сущности, которые могут быть определены в каком-нибудь DTD - и б) их символы находятся в кодировке соответвующей с выбранной кодировкой и разрешены в выбранном типе документа. Все другие сущности остаются без изменений. набор, связанный с выбранной кодировкой и разрешается в выбранном тип документа. Все другие субъекты, которые оставили как есть.

Список параметров

string

Входная строка.

flags

Битовая маска, состоящая из одного или более флагов, которые указывают как обращаться с кавычками и какой тип документа использовать. По умолчанию маска принимает значение ENT_COMPAT | ENT_HTML401.

Константы flags
Имя константы | Описание
ENT_COMPAT | Преобразуются двойные кавычки, одиночные остаются без изменений.
ENT_QUOTES | Преобразуются и двойные, и одиночные кавычки.
ENT_NOQUOTES | И двойные, и одиночные кавычки остаются без изменений.
ENT_HTML401 | Обрабатывать код как HTML 4.01.
ENT_XML1 | Обрабатывать код как XML 1.
ENT_XHTML | Обрабатывать код как XHTML.
ENT_HTML5 | Обрабатывать код как HTML 5.

encoding

Необязательный аргумент определяющий кодировку, используемую при конвертации симоволов.

Если не указан, то значением по умолчанию для encoding зависит от используемой версии PHP. В PHP 5.6 и старше, для значения по умолчанию используется конфигурационная опция default_charset. В PHP 5.4 и 5.5 используется UTF-8 по умолчанию. Более ранние версии PHP используют ISO-8859-1.

Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, если вы используете PHP 5.5 или выше, или если ваша опция конфигурации default_charset может быть задана неверно для входных данных.

Поддерживаются следующие кодировки:

Поддерживаемые кодировки
Кодировка | Псевдонимы | Описание
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1.
ISO-8859-5 | ISO8859-5 | Редко используемая кириллическая кодировка (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1(ISO-8859-1).
UTF-8 | 8-битная Unicode, совместимая с ASCII.
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS.
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows.
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows.
KOI8-R | koi8-ru, koi8r | Русская кодировка.
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване.
GB2312 | 936 | Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCS | Расширенная Big5, применяемая в Гонг-Конге.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Японская кодировка.
EUC-JP | EUCJP, eucJP-win | Японская кодировка.
MacRoman | Кодировка, используемая в Mac OS.
'' Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale()), в указанном порядке. Не рекомендуется к использованию.

Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.

Возвращаемые значения

Возвращает раскодированную строку.

Список изменений

Версия | Описание
5.6.0 | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
5.4.0 | Кодировка по умолчанию сменилась с ISO-8859-1 на UTF-8.
5.4.0 | Были добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.

Примеры

Пример #1 Декодирование HTML-сущностей

<?php
$orig = "I'll \"walk\" the <b>dog</b> now";

$a = htmlentities($orig);

$b = html_entity_decode($a);

echo $a; // I'll &quot;walk&quot; the &lt;b&gt;dog&lt;/b&gt; now

echo $b; // I'll "walk" the <b>dog</b> now
?>

Примечания

Замечание:

Может показаться странным, что результатом вызова trim(html_entity_decode('&nbsp;')); не является пустая строка. Причина том, что '&nbsp;' преобразуется не в символ с ASCII-кодом 32 (который удаляется функцией trim()),а в символ с ASCII-кодом 160 (0xa0) в принимаемой по умолчанию кодировке ISO-8859-1.

Смотрите также

  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • get_html_translation_table() - Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
  • urldecode() - Декодирование URL-кодированной строки


Преобразует все возможные символы в соответствующие HTML-сущности

  • « html_entity_decode
  • htmlspecialchars_decode »
  • PHP Manual
  • Обработка строк
  • Преобразует все возможные символы в соответствующие HTML-сущности

htmlentities

(PHP 4, PHP 5, PHP 7)

htmlentities — Преобразует все возможные символы в соответствующие HTML-сущности

Описание

string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

Эта функция идентична htmlspecialchars() за исключением того, что htmlentities() преобразует все символы в соответствющие HTML-сущности (для тех символов, для которых HTML сущности существуют).

Если же вы хотите раскодировать строку (наоборот), используйте html_entity_decode().

Список параметров

string

Входная строка.

flags

Битовая маска из нижеуказанных флагов, определяющих режим обработки кавычек, некорректных кодовых последовательностей и используемый тип документа. По умолчанию используется ENT_COMPAT | ENT_HTML401.

Доступные значения параметра flags
Название константы | Описание
ENT_COMPAT | Преобразует двойные кавычки, одинарные кавычки не изменяются.
ENT_QUOTES | Преобразует как двойные, так и одинарные кавычки.
ENT_NOQUOTES | Оставляет без изменения как двойные, так и одинарные кавычки.
ENT_IGNORE | Молча отбрасывает некорректные кодовые последовательности вместо возврата пустой строки. Использование этого флага не рекомендуется, так как это » может внести уязвимости в ваш код.
ENT_SUBSTITUTE | Заменяет некорректные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 и &#FFFD; при использовании другой кодировки, вместо возврата пустой строки.
ENT_DISALLOWED | Заменяет неверные коды символов для заданного типа документа символом замены юникода U+FFFD (UTF-8) или &#FFFD; (при использовании другой кодировки) вместо того, чтобы оставлять все как есть. Это может быть полезно, например, для того, чтобы убедиться в формальной правильности XML-документов со встроенным внешним контентом.
ENT_HTML401 | Обработка кода в соответствии с HTML 4.01.
ENT_XML1 | Обработка кода в соответствии с XML 1.
ENT_XHTML | Обработка кода в соответствии с XHTML.
ENT_HTML5 | Обработка кода в соответствии с HTML 5.

encoding

Необязательный аргумент определяющий кодировку, используемую при конвертации симоволов.

Если не указан, то значением по умолчанию для encoding зависит от используемой версии PHP. В PHP 5.6 и старше, для значения по умолчанию используется конфигурационная опция default_charset. В PHP 5.4 и 5.5 используется UTF-8 по умолчанию. Более ранние версии PHP используют ISO-8859-1.

Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, если вы используете PHP 5.5 или выше, или если ваша опция конфигурации default_charset может быть задана неверно для входных данных.

Поддерживаются следующие кодировки:

Поддерживаемые кодировки
Кодировка | Псевдонимы | Описание
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1.
ISO-8859-5 | ISO8859-5 | Редко используемая кириллическая кодировка (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1(ISO-8859-1).
UTF-8 | 8-битная Unicode, совместимая с ASCII.
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS.
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows.
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows.
KOI8-R | koi8-ru, koi8r | Русская кодировка.
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване.
GB2312 | 936 | Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCS | Расширенная Big5, применяемая в Гонг-Конге.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Японская кодировка.
EUC-JP | EUCJP, eucJP-win | Японская кодировка.
MacRoman | Кодировка, используемая в Mac OS.
'' Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale()), в указанном порядке. Не рекомендуется к использованию.

Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.

double_encode

При выключении параметра double_encode PHP не будет преобразовывать существующие html-сущности. По умолчанию преобразуется все без ограничений.

Возвращаемые значения

Возвращает преобразованную строку.

При наличии во входном параметре string недопустимой последовательности символов в заданной кодировке encoding будет возвращена пустая строка, если не установлены флаги ENT_IGNORE или ENT_SUBSTITUTE.

Список изменений

Версия | Описание
5.6.0 | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
5.4.0 | Значение по умолчанию для параметра encoding было изменено на UTF-8.
5.4.0 | The constants ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
5.3.0 | Добавлена константа ENT_IGNORE.
5.2.3 | Добавлен параметр double_encode.

Примеры

Пример #1 Пример использования htmlentities()

<?php
$str = "A 'quote' is <b>bold</b>";

// выводит: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

// выводит: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

Пример #2 Использование ENT_IGNORE

<?php
$str = "\x8F!!!";

// Выводит пустую строку
echo htmlentities($str, ENT_QUOTES, "UTF-8");

// Выводит "!!!"
echo htmlentities($str, ENT_QUOTES | ENT_IGNORE, "UTF-8");
?>

Смотрите также

  • html_entity_decode() - Преобразует все HTML-сущности в соответствующие символы
  • get_html_translation_table() - Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • nl2br() - Вставляет HTML-код разрыва строки перед каждым переводом строки
  • urlencode() - URL-кодирование строки


Преобразует специальные HTML-сущности обратно в соответствующие символы

  • « htmlentities
  • htmlspecialchars »
  • PHP Manual
  • Обработка строк
  • Преобразует специальные HTML-сущности обратно в соответствующие символы

htmlspecialchars_decode

(PHP 5 >= 5.1.0, PHP 7)

htmlspecialchars_decode — Преобразует специальные HTML-сущности обратно в соответствующие символы

Описание

string htmlspecialchars_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ] )

Эта функция является антиподом htmlspecialchars(). Она преобразует специальные HTML-сущности обратно в соответствующие символы.

Конвертируемые сущности : &amp;, &quot; (когда ENT_NOQUOTES не установлена), &#039; (когда ENT_QUOTES установлена), &lt; и &gt;.

Список параметров

string

Строка, которую надо преобразовать.

flags

Битовая маска из одного или нескольких следующих флагов, которые указывают как обрабатывать кавычки и какие типы документов использовать. Значением по умолчанию является ENT_COMPAT | ENT_HTML401.

Доступные константы, используемые в качестве параметра flags
Имя константы | Описание
ENT_COMPAT | Преобразует двойные кавычки и пропускает одинарные.
ENT_QUOTES | Преобразует и двойные, и одинарные кавычки.
ENT_NOQUOTES | Не преобразует ни двойные, ни одинарные кавычки.
ENT_HTML401 | Обрабатывать код как HTML 4.01.
ENT_XML1 | Обрабатывать код как XML 1.
ENT_XHTML | Обрабатывать код как XHTML.
ENT_HTML5 | Обрабатывать код как HTML 5.

Возвращаемые значения

Возвращает преобразованную строку.

Список изменений

Версия | Описание
5.4.0 | Добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.

Примеры

Пример #1 Пример использования функции htmlspecialchars_decode()

<?php
$str = "<p>this -&gt; &quot;</p>\n";

echo htmlspecialchars_decode($str);

// обратите внимание, что в данном случае кавычки не будут преобразованы
echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

Результат выполнения данного примера:

<p>this -> "</p>
<p>this -> &quot;</p>

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • html_entity_decode() - Преобразует все HTML-сущности в соответствующие символы
  • get_html_translation_table() - Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities


Преобразует специальные символы в HTML-сущности

  • « htmlspecialchars_decode
  • implode »
  • PHP Manual
  • Обработка строк
  • Преобразует специальные символы в HTML-сущности

htmlspecialchars

(PHP 4, PHP 5, PHP 7)

htmlspecialchars — Преобразует специальные символы в HTML-сущности

Описание

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

В HTML некоторые символы имеют особый смысл и должны быть представлены в виде HTML сущностей, чтобы сохранить их значение. Эта функция возвращает строку, над которой проведены эти преобразования. Если вам нужно преобразовать все возможные сущности, используйте htmlentities().

Если входная строка переданная в эту функцию и результирующий документ используют одинаковую кодировку символов, то этой функции достаточно, чтобы подготовить данные для вставки в большинство частей HTML документа. Однако, если данные содержат символы, не определенные в кодировке символов результирующего документа и вы ожидаете сохранения этих символов (как числовые или именованные сущности), то вам недостаточно будет этой и htmlentities() функций (которые только преобразуют подстроки с соответствующими сущностями). Необходимо использовать функцию mb_encode_numericentity().

Производятся следующие преобразования
Символ | Замена
& (амперсанд) | &amp;
" (двойные кавычки) | &quot;, если не установлена ENT_NOQUOTES
' (одинарные кавычки) | &#039; (для ENT_HTML401) или &apos; (для ENT_XML1, ENT_XHTML или ENT_HTML5), но только если установлена ENT_QUOTES
< (меньше) | &lt;
> (больше) | &gt;

Список параметров

string

Конвертируемая строка (string).

flags

Битовая маска из нижеуказанных флагов, определяющих режим обработки кавычек, некорректных кодовых последовательностей и используемый тип документа. По умолчанию используется ENT_COMPAT | ENT_HTML401.

Доступные значения параметра flags
Название константы | Описание
ENT_COMPAT | Преобразует двойные кавычки, одинарные кавычки не изменяются.
ENT_QUOTES | Преобразует как двойные, так и одинарные кавычки.
ENT_NOQUOTES | Оставляет без изменения как двойные, так и одинарные кавычки.
ENT_IGNORE | Без всяких уведомительных сообщений отбрасывает некорректные кодовые последовательности вместо возврата пустой строки. Использование этого флага не рекомендуется, так как это может привести к » негативным последствиям, связанным с безопасностью.
ENT_SUBSTITUTE | Заменяет некорреткные кодовые последовательности символом замены Юникода U+FFFD в случае использования UTF-8 или &#xFFFD; при использовании другой кодировки, вместо возврата пустой строки.
ENT_DISALLOWED | Заменяет неверные коды символов для заданного типа документа символом замены юникода U+FFFD (UTF-8) или &#xFFFD; (при использовании другой кодировки) вместо того, чтобы оставлять все как есть. Это может быть полезно, например, для того, чтобы убедиться в формальной правильности XML-документов со встроенным внешним контентом.
ENT_HTML401 | Обработка кода в соответствии с HTML 4.01.
ENT_XML1 | Обработка кода в соответствии с XML 1.
ENT_XHTML | Обработка кода в соответствии с XHTML.
ENT_HTML5 | Обработка кода в соответствии с HTML 5.

encoding

Необязательный аргумент определяющий кодировку, используемую при конвертации симоволов.

Если не указан, то значением по умолчанию для encoding зависит от используемой версии PHP. В PHP 5.6 и старше, для значения по умолчанию используется конфигурационная опция default_charset. В PHP 5.4 и 5.5 используется UTF-8 по умолчанию. Более ранние версии PHP используют ISO-8859-1.

Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, если вы используете PHP 5.5 или выше, или если ваша опция конфигурации default_charset может быть задана неверно для входных данных.

Для целей этой функции кодировки ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252 и KOI8-R являются практически эквивалентными, предполагая то, что сама строка string содержит корректные символы в указанной кодировке, то символы, изменяемые htmlspecialchars(), останутся на тех же местах во всех этих кодировках.

Поддерживаются следующие кодировки:

Поддерживаемые кодировки
Кодировка | Псевдонимы | Описание
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1.
ISO-8859-5 | ISO8859-5 | Редко используемая кириллическая кодировка (Latin/Cyrillic).
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1(ISO-8859-1).
UTF-8 | 8-битная Unicode, совместимая с ASCII.
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS.
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows.
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows.
KOI8-R | koi8-ru, koi8r | Русская кодировка.
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване.
GB2312 | 936 | Упрощенный китайский, стандартная национальная кодировка.
BIG5-HKSCS | Расширенная Big5, применяемая в Гонг-Конге.
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Японская кодировка.
EUC-JP | EUCJP, eucJP-win | Японская кодировка.
MacRoman | Кодировка, используемая в Mac OS.
'' Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (см. nl_langinfo() и setlocale()), в указанном порядке. Не рекомендуется к использованию.

Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.

double_encode

Если параметр double_encode выключен, то PHP не будет преобразовывать существующие html-сущности. По умолчанию преобразуется все без ограничений.

Возвращаемые значения

Преобразованная строка (string).

Если входная строка string содержит неверную последовательность символов в указанной кодировке encoding, то будет возвращаться пустая строка в случае, если флаги ENT_IGNORE или ENT_SUBSTITUTE не установлены.

Список изменений

Версия | Описание
5.6.0 | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
5.4.0 | Значение по умолчанию для параметра encoding было изменено на UTF-8.
5.4.0 | Добавлены константы ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
5.3.0 | Добавлена константа ENT_IGNORE.
5.2.3 | Добавлен параметр double_encode.

Примеры

Пример #1 Пример использования htmlspecialchars()

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

Примечания

Замечание:

Обратите внимание, что функция не производит других преобразований кроме описанных выше. Для преобразования всех HTML сущностей используйте htmlentities().

Смотрите также

  • get_html_translation_table() - Возвращает таблицу преобразований, используемую функциями htmlspecialchars и htmlentities
  • htmlspecialchars_decode() - Преобразует специальные HTML-сущности обратно в соответствующие символы
  • strip_tags() - Удаляет HTML и PHP-теги из строки
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • nl2br() - Вставляет HTML-код разрыва строки перед каждым переводом строки


Объединяет элементы массива в строку

  • « htmlspecialchars
  • join »
  • PHP Manual
  • Обработка строк
  • Объединяет элементы массива в строку

implode

(PHP 4, PHP 5, PHP 7)

implode — Объединяет элементы массива в строку

Описание

string implode ( string $glue , array $pieces )
string implode ( array $pieces )

Объединяет элементы массива с помощью строки glue.

Замечание:

По историческим причинам, функции implode() можно передавать аргументы в любом порядке, однако для унификации с функцией explode() следует использовать документированный порядок аргументов.

Список параметров

glue

По умолчанию равен пустой строке.

pieces

Массив объединяемых строк.

Возвращаемые значения

Возвращает строку, содержащую строковое представление всех элементов массива в указанном порядке, со строкой glue между каждым элементом.

Примеры

Пример #1 Пример использования implode()

<?php

$array = array('имя', 'почта', 'телефон');
$comma_separated = implode(",", $array);

echo $comma_separated; // имя,почта,телефон

// Пустая строка при использовании пустого массива:
var_dump(implode('hello', array())); // string(0) ""

?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • explode() - Разбивает строку с помощью разделителя
  • preg_split() - Разбивает строку по регулярному выражению
  • http_build_query() - Генерирует URL-кодированную строку запроса


Псевдоним implode

  • « implode
  • lcfirst »
  • PHP Manual
  • Обработка строк
  • Псевдоним implode

join

(PHP 4, PHP 5, PHP 7)

join — Псевдоним implode()

Описание

Эта функция является псевдонимом: implode().


Преобразует первый символ строки в нижний регистр

  • « join
  • levenshtein »
  • PHP Manual
  • Обработка строк
  • Преобразует первый символ строки в нижний регистр

lcfirst

(PHP 5 >= 5.3.0, PHP 7)

lcfirst — Преобразует первый символ строки в нижний регистр

Описание

string lcfirst ( string $str )

Возвращает строку str, первый символ которой был преобразован в нижний регистр, если этот символ является буквой.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C", символ a не будет преобразован.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает результирующую строку.

Примеры

Пример #1 Пример использования lcfirst()

<?php
$foo = 'HelloWorld';
$foo = lcfirst($foo);             // helloWorld

$bar = 'HELLO WORLD!';
$bar = lcfirst($bar);             // hELLO WORLD!
$bar = lcfirst(strtoupper($bar)); // hELLO WORLD!
?>

Смотрите также

  • ucfirst() - Преобразует первый символ строки в верхний регистр
  • strtolower() - Преобразует строку в нижний регистр
  • strtoupper() - Преобразует строку в верхний регистр
  • ucwords() - Преобразует в верхний регистр первый символ каждого слова в строке


Вычисляет расстояние Левенштейна между двумя строками

  • « lcfirst
  • localeconv »
  • PHP Manual
  • Обработка строк
  • Вычисляет расстояние Левенштейна между двумя строками

levenshtein

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

levenshtein — Вычисляет расстояние Левенштейна между двумя строками

Описание

int levenshtein ( string $str1 , string $str2 )
int levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del )

Расстояние Левенштейна - это минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2. Сложность алгоритма равна O(m*n), где n и m - длины строк str1 и str2 (неплохо по сравнению с similar_text(), имеющей сложность O(max(n,m)**3), но все же довольно много).

В простейшей форме функция принимает в качестве аргументов две строки и возвращает минимальное количество вставок, замен и удалений символов, необходимое для преобразования str1 в str2.

Второй вариант принимает три дополнительных аргумента, задающих стоимость операций вставки, замены и удаления. Этот вариант универсальнее первого, но не так эффективен.

Список параметров

str1

Одна из строк, для которых вычисляется расстояние Левенштейна.

str2

Одна из строк, для которых вычисляется расстояние Левенштейна.

cost_ins

Определяет стоимость вставки.

cost_rep

Определяет стоимость замены.

cost_del

Определяет стоимость удаления.

Возвращаемые значения

Эта функция возвращает расстояние Левенштейна между двумя строками, или -1, если хотя бы одна из строк длиннее 255 символов.

Примеры

Пример #1 Пример использования levenshtein()

<?php
// введенное слово с опечаткой
$input = 'carrrot';

// массив сверяемых слов
$words  = array('apple','pineapple','banana','orange',
                'radish','carrot','pea','bean','potato');

// кратчайшее расстояние пока еще не найдено
$shortest = -1;

// проходим по словам для нахождения самого близкого варианта
foreach ($words as $word) {

    // вычисляем расстояние между входным словом и текущим
    $lev = levenshtein($input, $word);

    // проверяем полное совпадение
    if ($lev == 0) {

        // это ближайшее слово (точное совпадение)
        $closest = $word;
        $shortest = 0;

        // выходим из цикла - мы нашли точное совпадение
        break;
    }

    // если это расстояние меньше следующего наименьшего расстояния
    // ИЛИ если следующее самое короткое слово еще не было найдено
    if ($lev <= $shortest || $shortest < 0) {
        // set the closest match, and shortest distance
        $closest  = $word;
        $shortest = $lev;
    }
}

echo "Вы ввели: $input\n";
if ($shortest == 0) {
    echo "Найдено точное совпадение: $closest\n";
} else {
    echo "Вы не имели в виду: $closest?\n";
}

?>

Результат выполнения данного примера:

Вы ввели: carrrot
Вы не имели в виду: carrot?

Смотрите также

  • soundex() - Возвращает ключ soundex для строки
  • similar_text() - Вычисляет степень похожести двух строк
  • metaphone() - Возвращает ключ metaphone для строки


Возвращает информацию о числовых форматах

  • « levenshtein
  • ltrim »
  • PHP Manual
  • Обработка строк
  • Возвращает информацию о числовых форматах

localeconv

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

localeconv — Возвращает информацию о числовых форматах

Описание

array localeconv ( void )

Возвращает ассоциативный массив с информацией о числовых и денежных форматах в текущей локали.

Возвращаемые значения

localeconv() возвращает данные, основанные на текущей локали, установленной функцией setlocale(). Возвращаемый массив содержит следующие элементы:

Элемент | Описание
decimal_point | Символ десятичной точки
thousands_sep | Разделитель групп
grouping | Массив, содержащий количества цифр в группах для числовых данных
int_curr_symbol | Международное обозначение валюты (например, RUB)
currency_symbol | Национальное обозначение валюты (например, руб)
mon_decimal_point | Символ десятичной точки в денежном формате
mon_thousands_sep | Разделитель групп в денежном формате
mon_grouping | Массив, содержащий количества цифр в группах для денежных данных
positive_sign | Знак для положительных чисел
negative_sign | Знак для отрицательных чисел
int_frac_digits | Число разрядов после точки (международное)
frac_digits | Число разрядов после точки (национальное)
p_cs_precedes | TRUE, если currency_symbol записывается перед положительным значением, иначе FALSE
p_sep_by_space | TRUE, если currency_symbol отделяется от положительного значения пробелом, иначе FALSE
n_cs_precedes | TRUE, если currency_symbol записывается перед отрицательным значением, иначе FALSE
n_sep_by_space | TRUE, если currency_symbol отделяется от отрицательного значения пробелом, иначе FALSE
p_sign_posn Для положительных чисел:
  • 0 - Число и обозначение валюты заключаются в скобки
  • 1 - Знак записывается перед числом и обозначением валюты
  • 2 - Знак записывается после числа и обозначения валюты
  • 3 - Знак записывается перед обозначением валюты
  • 4 - Знак записывается после обозначения валюты
n_sign_posn Для отрицательных чисел:
  • 0 - Число и обозначение валюты заключаются в скобки
  • 1 - Знак записывается перед числом и обозначением валюты
  • 2 - Знак записывается после числа и обозначения валюты
  • 3 - Знак записывается перед обозначением валюты
  • 4 - Знак записывается после обозначения валюты

p_sign_posn и n_sign_posn содержат строку с опциями форматирования. Каждое число представляет собой одно из вышеперечисленных условий.

Элементы группировки содержат массивы, которые описывают способ группировки цифр. Например, поле группировки денежных величин в локали nl_NL (в режиме UTF-8 со знаком евро) содержит массив из двух элементов со значениями 3 и 3. Больший индекс массива соответствует группировке цифр, расположенных левее. Если элемент массива равен CHAR_MAX, последующие цифры не группируются. Если элемент массива равен 0, используется значение предыдущего элемента.

Примеры

Пример #1 Пример использования localeconv()

<?php
if (false !== setlocale(LC_ALL, 'ru_RU.UTF-8')) {
    $locale_info = localeconv();
    print_r($locale_info);
}
?>

Результат выполнения данного примера:

Array
(
    [decimal_point] => ,
    [thousands_sep] =>
    [int_curr_symbol] => RUB
    [currency_symbol] => руб
    [mon_decimal_point] => .
    [mon_thousands_sep] =>
    [positive_sign] =>
    [negative_sign] => -
    [int_frac_digits] => 2
    [frac_digits] => 2
    [p_cs_precedes] => 0
    [p_sep_by_space] => 1
    [n_cs_precedes] => 0
    [n_sep_by_space] => 1
    [p_sign_posn] => 1
    [n_sign_posn] => 1
    [grouping] => Array
        (
            [0] => 3
            [1] => 3
        )

    [mon_grouping] => Array
        (
            [0] => 3
            [1] => 3
        )

)

Смотрите также

  • setlocale() - Устанавливает настройки локали


Удаляет пробелы (или другие символы) из начала строки

  • « localeconv
  • md5_file »
  • PHP Manual
  • Обработка строк
  • Удаляет пробелы (или другие символы) из начала строки

ltrim

(PHP 4, PHP 5, PHP 7)

ltrim — Удаляет пробелы (или другие символы) из начала строки

Описание

string ltrim ( string $str [, string $character_mask ] )

Удаляет пробелы (или другие символы) из начала строки.

Список параметров

str

Входная строка.

character_mask

С помощью параметра character_mask можно также указать удаляемые символы. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию .. для обозначения диапазона символов.

Возвращаемые значения

Эта функция возвращает строку str с удаленными из начала строки пробелами. Если второй параметр не передан, ltrim() удаляет следующие символы:

  • " " (ASCII 32 (0x20)), обычный пробел.
  • "\t" (ASCII 9 (0x09)), символ табуляции.
  • "\n" (ASCII 10 (0x0A)), символ перевода строки.
  • "\r" (ASCII 13 (0x0D)), символ возврата каретки.
  • "\0" (ASCII 0 (0x00)), NUL-байт.
  • "\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.

Примеры

Пример #1 Пример использования ltrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = ltrim($text);
var_dump($trimmed);

$trimmed = ltrim($text, " \t.");
var_dump($trimmed);

$trimmed = ltrim($hello, "Hdle");
var_dump($trimmed);

// удаляем управляющие ASCII-символы с начала $binary
// (от 0 до 31 включительно)
$clean = ltrim($binary, "\x00..\x1F");
var_dump($clean);

?>

Результат выполнения данного примера:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "These are a few words :) ...  "
string(30) "These are a few words :) ...  "
string(7) "o World"
string(15) "Example string
"

Смотрите также

  • trim() - Удаляет пробелы (или другие символы) из начала и конца строки
  • rtrim() - Удаляет пробельные (или другие символы) из конца строки


Возвращает MD5-хэш файла

  • « ltrim
  • md5 »
  • PHP Manual
  • Обработка строк
  • Возвращает MD5-хэш файла

md5_file

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

md5_file — Возвращает MD5-хэш файла

Описание

string md5_file ( string $filename [, bool $raw_output = false ] )

Вычисляет MD5-хэш файла, имя которого задано аргументом filename, используя » алгоритм MD5 RSA Data Security, Inc. и возвращает этот хэш. Хэш представляет собой 32-значное шестнадцатеричное число.

Список параметров

filename

Имя файла

raw_output

Если имеет значение TRUE, то возвращается бинарная строка из 16 символов.

Возвращаемые значения

Возвращает строку в случае успеха, иначе FALSE.

Список изменений

Версия | Описание
5.1.0 | Функция изменена для работы с потоковым API. Это означает, что ее можно использовать с обертками, например, так: md5_file('http://example.com/..')

Примеры

Пример #1 Пример использования md5_file()

<?php
$file = 'php-5.3.0alpha2-Win32-VC9-x64.zip';

echo 'MD5-хэш файла ' . $file . ': ' . md5_file($file);
?>

Смотрите также

  • md5() - Возвращает MD5-хэш строки
  • sha1_file() - Возвращает SHA1-хэш файла
  • crc32() - Вычисляет полином CRC32 для строки


Возвращает MD5-хэш строки

  • « md5_file
  • metaphone »
  • PHP Manual
  • Обработка строк
  • Возвращает MD5-хэш строки

md5

(PHP 4, PHP 5, PHP 7)

md5 — Возвращает MD5-хэш строки

Описание

string md5 ( string $str [, bool $raw_output = false ] )

Вычисляет MD5-хэш строки str используя » алгоритм MD5 RSA Data Security, Inc. и возвращает этот хэш.

Список параметров

str

Строка.

raw_output

Если необязательный аргумент raw_output имеет значение TRUE, то возвращается бинарная строка из 16 символов.

Возвращаемые значения

Возвращает хэш в виде 32-символьного шестнадцатеричного числа.

Примеры

Пример #1 Пример использования md5()

<?php
$str = 'яблоко';

if (md5($str) === '1afa148eb41f2e7103f21410bf48346c') {
    echo "Вам зеленое или красное яблоко?";
}
?>

Примечания

Замечание: Безопасное хэширование паролей

В связи с быстрой природой хэширующего алгоритма не рекомендуется использовать эту функцию для обеспечения безопасности паролей. Подробнее об этом можно прочитать здесь.

Смотрите также

  • md5_file() - Возвращает MD5-хэш файла
  • sha1_file() - Возвращает SHA1-хэш файла
  • crc32() - Вычисляет полином CRC32 для строки
  • sha1() - Возвращает SHA1-хэш строки
  • hash() - Генерирует хеш-код (дайджест сообщения)
  • crypt() - Необратимое хэширование строки
  • password_hash() - Creates a password hash


Возвращает ключ metaphone для строки

  • « md5
  • money_format »
  • PHP Manual
  • Обработка строк
  • Возвращает ключ metaphone для строки

metaphone

(PHP 4, PHP 5, PHP 7)

metaphone — Возвращает ключ metaphone для строки

Описание

string metaphone ( string $str [, int $phonemes = 0 ] )

Возвращает ключ metaphone для строки str.

Подобно функции soundex(), metaphone возвращает одинаковое значение для слов, имеющих сходное произношение. Эта функция более точна, чем soundex(), так как учитывает основные правила произношения английского языка. Длина возвращаемой строки не фиксирована.

Функция metaphone была написана Lawrence Philips <lphilips at verity dot com> и описана в книге ["Practical Algorithms for Programmers", Binstock & Rex, Addison Wesley, 1995].

Список параметров

str

Входная строка.

phonemes

Этот параметр выставляет ограничение в phonemes символов на длину возвращаемого ключа metaphone. Значение по умолчанию 0 означает отсутствие ограничений.

Возвращаемые значения

Возвращает ключ metaphone в виде строки, или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой пример использования metaphone()

<?php
var_dump(metaphone('programming'));
var_dump(metaphone('programmer'));
?>

Результатом выполнения данного примера будет что-то подобное:

string(7) "PRKRMNK"
string(6) "PRKRMR"

Пример #2 Использование параметра phonemes

<?php
var_dump(metaphone('programming', 5));
var_dump(metaphone('programmer', 5));
?>

Результатом выполнения данного примера будет что-то подобное:

string(5) "PRKRM"
string(5) "PRKRM"


Форматирует число как денежную величину

  • « metaphone
  • nl_langinfo »
  • PHP Manual
  • Обработка строк
  • Форматирует число как денежную величину

money_format

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

money_format — Форматирует число как денежную величину

Описание

string money_format ( string $format , float $number )

money_format() форматирует число number как денежную величину. Эта функция вызывает функцию strfmon() языка C, но позволяет преобразовать только одно число за один вызов.

Список параметров

format

Описание формата состоит из:

  • символа %

  • необязательных флагов

  • необязательной ширины поля

  • необязательной точности до запятой

  • необязательной точности после запятой

  • обязательного описателя преобразования

Флаги

Могут быть использованы следующие флаги:

=f

Символ =, за которым следует еще один символ f, задает символ заполнения. По умолчанию пробел.

^

Отключает группировку символов (определяемую текущей локалью).

+ или (

Задает способ форматирования положительных и отрицательных значений. При использовании + будут использоваться аналоги символов + и - из текущей локали. Если указана (, отрицательные числа будут заключены в скобки. По умолчанию +.

!

Подавляет вывод символа валюты.

-

Если этот флаг задан, поля будут выравнены влево (с отбивкой вправо), вместо используемого по умолчанию выравнивания вправо (с отбивкой влево).

Ширина поля

w

Строка из десятичных цифр, задающая минимальную ширину поля. Поле будет выравнено вправо, если не указан флаг -. Значение по умолчанию - 0 (ноль).

Точность до запятой

#n

Максимальное количество цифр (n), которое ожидается до запятой. Это обычно используется при выводе значений одно под другим, чтобы десятичные точки располагались в одной колонке, при этом используется символ заполнения, если число цифр меньше n. Если число цифр больше n, этот параметр игнорируется.

Если группировка не была отключена флагом ^, разделители групп будут вставлены перед добавлением символов заполнения. Разделители групп не вставляются между символами заполнения, даже если заполнитель - цифра.

Для обеспечения выравнивания, все символы, выводимые до или после числа, такие как символ валюты или знак, будут дополнены пробелами до одинаковой ширины.

Точность после запятой

.p

Точка, за которой следует число знаков (p), выводимых после запятой. Если значение p равно нулю, десятичная точка и цифры после нее не будут выводиться. Если этот параметр отсутствует, число знаков после запятой определяется текущей локалью. Перед форматированием число округляется до указанного количества знаков.

Описатель преобразования

i

Используется международный денежный формат из текущей локали (например, для американской локали: USD 1,234.56).

n

Используется национальный денежный формат из текущей локали (например, для локали de_DE: EU1.234,56).

%

Вставляет символ %.

number

Форматируемое число.

Возвращаемые значения

Возвращает отформатированную строку. Символы перед и после описания формата возвращаются без изменений. Если number не является числом, то будет возвращен NULL и вызвана ошибка уровня E_WARNING.

Примечания

Замечание:

Функция money_format() определена только если в системе присутствует функция strfmon. Например, в Windows она отсутствует, поэтому money_format() не определена в Windows.

Замечание:

На работу этой функции влияет установка категории LC_MONETARY текущей локали. Перед использованием этой функции установите нужную локаль с помощью setlocale().

Примеры

Пример #1 Пример использования money_format()

Проиллюстрируем применение этой функции для различных локалей и разных описаний формата.

<?php

$number = 1234.56;

// международный формат в локали en_US
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56

// Итальянский национальный формат с 2 знаками после запятой
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number) . "\n";
// Eu 1.234,56

// Использование отрицательных чисел
$number = -1234.5672;

// национальный формат США, с использованием скобок для
// отрицательных чисел и 10 знаков до запятой
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number) . "\n";
// ($        1,234.57)

// подобно предыдущему, но с добавлением 2 знаков после запятой
// и '*' в качестве символа заполнения
echo money_format('%=*(#10.2n', $number) . "\n";
// ($********1,234.57)

// Выравнивание влево, ширина 14 знаков, 8 знаков до запятой,
// 2 знака после запятой, без разбиения на группы
// с использованием  международного формата в локали de_DE.
setlocale(LC_MONETARY, 'de_DE');
echo money_format('%=*^-14#8.2i', 1234.56) . "\n";
// Eu 1234,56****

// А теперь добавим текст перед и после описанием формата
setlocale(LC_MONETARY, 'en_GB');
$fmt = 'Итоговая сумма: %i (после 10%% скидки)';
echo money_format($fmt, 1234.56) . "\n";
// Итоговая сумма:  GBP 1,234.56 (после 10% скидки)

?>

Смотрите также

  • setlocale() - Устанавливает настройки локали
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • sprintf() - Возвращает отформатированную строку
  • printf() - Выводит отформатированную строку
  • number_format() - Форматирует число с разделением групп


Возвращает информацию о языке и локали

  • « money_format
  • nl2br »
  • PHP Manual
  • Обработка строк
  • Возвращает информацию о языке и локали

nl_langinfo

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

nl_langinfo — Возвращает информацию о языке и локали

Описание

string nl_langinfo ( int $item )

nl_langinfo() используется для доступа к отдельным элементам различных категорий текущей локали. В отличии от localeconv(), возвращающей все элементы, nl_langinfo() позволяет выбрать отдельный элемент.

Список параметров

item

item может быть целым числом или соответствующей константой. Ниже приведены возможные константы для item и их описания. Для некоторых локалей отдельные константы могут быть не определены.

Константы nl_langinfo
Константа | Описание
Константы в категории LC_TIME
ABDAY_(1-7) | Сокращенное название n-го дня недели.
DAY_(1-7) | Полное название n-го дня недели (DAY_1 соответствует воскресенью).
ABMON_(1-12) | Сокращенное название n-го месяца.
MON_(1-12) | Полное название n-го месяца.
AM_STR | Обозначение "до полудня".
PM_STR | Обозначение "после полудня".
D_T_FMT | Строка, которую можно использовать в качестве формата с функцией strftime() для вывода даты и времени.
D_FMT | Строка, которую можно использовать в качестве формата с функцией strftime() для вывода даты.
T_FMT | Строка, которую можно использовать в качестве формата с функцией strftime() для вывода времени.
T_FMT_AMPM | Строка, которую можно использовать в качестве формата с функцией strftime() для вывода времени в 12-часовом формате.
ERA | Эра
ERA_YEAR | Год в формате с эрой
ERA_D_T_FMT | Дата и время в формате с эрой (строка, которую можно использовать в качестве формата с функцией strftime()).
ERA_D_FMT | Дата в формате с эрой (строка, которую можно использовать в качестве формата с функцией strftime()).
ERA_T_FMT | Время в формате с эрой (строка, которую можно использовать в качестве формата с функцией strftime()).
Константы в категории LC_MONETARY
INT_CURR_SYMBOL | Международное обозначение валюты.
CURRENCY_SYMBOL | Национальное обозначение валюты.
CRNCYSTR | Аналог CURRENCY_SYMBOL.
MON_DECIMAL_POINT | Символ десятичной точки.
MON_THOUSANDS_SEP | Разделитель тысяч (групп из 3 цифр).
MON_GROUPING | Аналогичен элементу "grouping".
POSITIVE_SIGN | Знак для положительных чисел.
NEGATIVE_SIGN | Знак для отрицательных чисел.
INT_FRAC_DIGITS | Количество знаков после запятой (международный формат).
FRAC_DIGITS | Количество знаков после запятой (национальный формат).
P_CS_PRECEDES | Возвращает 1, если CURRENCY_SYMBOL записывается перед положительным значением.
P_SEP_BY_SPACE | Возвращает 1, если CURRENCY_SYMBOL отделяется от положительного значения пробелом.
N_CS_PRECEDES | Возвращает 1, если CURRENCY_SYMBOL записывется перед отрицательным значением.
N_SEP_BY_SPACE | Возвращает 1, если CURRENCY_SYMBOL отделяется от отрицательного значения пробелом.
P_SIGN_POSN
  • Возвращает 0, если число и обозначение валюты CURRENCY_SYMBOL заключаются в скобки
  • Возвращает 1, если знак записывается перед числом и обозначением валюты CURRENCY_SYMBOL
  • Возвращает 2, если знак записывается после числа и обозначения валюты CURRENCY_SYMBOL
  • Возвращает 3, если знак записывается перед обозначением валюты CURRENCY_SYMBOL
  • Возвращает 4, если знак записывается после обозначения валюты CURRENCY_SYMBOL
N_SIGN_POSN
Константы в категории LC_NUMERIC
DECIMAL_POINT | Символ десятичной точки.
RADIXCHAR | Аналогично DECIMAL_POINT.
THOUSANDS_SEP | Разделитель тысяч (групп из 3 цифр).
THOUSEP | Аналогично THOUSANDS_SEP.
GROUPING
Константы в категории LC_MESSAGES
YESEXPR | Регулярное выражение, при совпадении с которым строка рассматривается как положительный ответ ("yes").
NOEXPR | Регулярное выражение, при совпадении с которым строка рассматривается как отрицательный ответ ("no").
YESSTR | Слово "да" ("yes").
NOSTR | Слово "нет" ("no").
Константы в категории LC_CTYPE
CODESET | Возвращает строку с именем текущей кодировки.

Возвращаемые значения

Возвращает элемент в виде строки, или FALSE если item передан неправильно.

Примечания

Замечание: Для Windows-платформ эта функция не реализована.

Смотрите также

  • setlocale() - Устанавливает настройки локали
  • localeconv() - Возвращает информацию о числовых форматах


Вставляет HTML-код разрыва строки перед каждым переводом строки

  • « nl_langinfo
  • number_format »
  • PHP Manual
  • Обработка строк
  • Вставляет HTML-код разрыва строки перед каждым переводом строки

nl2br

(PHP 4, PHP 5, PHP 7)

nl2br — Вставляет HTML-код разрыва строки перед каждым переводом строки

Описание

string nl2br ( string $string [, bool $is_xhtml = true ] )

Возвращает строку string, в которой перед каждым переводом строки (\r\n, \n\r, \n и \r) вставлен <br /> или <br>.

Список параметров

string

Входная строка.

is_xhtml

Использовать ли совместимые с XHTML переводы строк или нет.

Возвращаемые значения

Возвращает измененную строку.

Примеры

Пример #1 Пример использования nl2br()

<?php
echo nl2br("foo - это вам не\n bar");
?>

Результат выполнения данного примера:

foo - это вам не<br />
 bar

Пример #2 Генерирование корректной HTML-верстки с помощью параметра is_xhtml

<?php
echo nl2br("Привет!\r\nЭтой мой HTML-документ", false);
?>

Результат выполнения данного примера:

Привет!<br>
Этой мой HTML-документ

Пример #3 Различные разделители строк

<?php
$string = "This\r\nis\n\ra\nstring\r";
echo nl2br($string);
?>

Результат выполнения данного примера:

This<br />
is<br />
a<br />
string<br />

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный параметр is_xhtml.

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • wordwrap() - Переносит строку по указанному количеству символов
  • str_replace() - Заменяет все вхождения строки поиска на строку замены


Форматирует число с разделением групп

  • « nl2br
  • ord »
  • PHP Manual
  • Обработка строк
  • Форматирует число с разделением групп

number_format

(PHP 4, PHP 5, PHP 7)

number_format — Форматирует число с разделением групп

Описание

string number_format ( float $number [, int $decimals = 0 ] )
string number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," )

Функция принимает один, два или четыре аргумента (не три):

Если передан только один аргумент, number будет отформатирован без дробной части, но с запятой (",") между каждыми тремя цифрами.

Если переданы два аргумента, number будет отформатирован с decimals знаками после точки (".") и с запятой (",") между каждыми тремя цифрами.

Если переданы все четыре аргумента, number будет отформатирован с decimals знаками после точки и с разделителем между каждыми тремя цифрами, при этом в качестве десятичной точки будет использован dec_point, а в качестве разделителя групп - thousands_sep.

Список параметров

number

Форматируемое число.

decimals

Устанавливает число знаков после запятой.

dec_point

Устанавливает разделитель дробной части.

thousands_sep

Устанавливает разделитель тысяч.

Возвращаемые значения

Возвращается отформатированное число number.

Список изменений

Версия | Описание
5.4.0 | Функция поддерживает многобайтную строку в качестве параметров dec_point и thousands_sep. В предыдущих версиях в качестве разделителя использовался только первый байт из каждого параметра.

Примеры

Пример #1 Пример использования number_format()

Во Франции обычно используются 2 знака после запятой (','), и пробел (' ') в качестве разделителя групп. Такое форматирование получается при использовании следующего кода:

<?php

$number = 1234.56;

// английский формат (по умолчанию)
$english_format_number = number_format($number);
// 1,235

// французский формат
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56

$number = 1234.5678;

// английский формат без разделителей групп
$english_format_number = number_format($number, 2, '.', '');
// 1234.57

?>

Смотрите также

  • money_format() - Форматирует число как денежную величину
  • sprintf() - Возвращает отформатированную строку
  • printf() - Выводит отформатированную строку
  • sscanf() - Разбирает строку в соответствии с заданным форматом


Возвращает ASCII-код символа

  • « number_format
  • parse_str »
  • PHP Manual
  • Обработка строк
  • Возвращает ASCII-код символа

ord

(PHP 4, PHP 5, PHP 7)

ord — Возвращает ASCII-код символа

Описание

int ord ( string $string )

Возвращает ASCII-код первого символа строки string.

Эта функция дополняет функцию chr().

Список параметров

string

Символ.

Возвращаемые значения

Возвращает ASCII-код в виде целого числа.

Примеры

Пример #1 Пример использования ord()

<?php
$str = "\n";
if (ord($str) == 10) {
    echo "Первый символ \$str - перевод строки.\n";
}
?>

Смотрите также

  • chr() - Возвращает символ по его коду
  • » Таблица ASCII-кодов


Разбирает строку в переменные

  • « ord
  • print »
  • PHP Manual
  • Обработка строк
  • Разбирает строку в переменные

parse_str

(PHP 4, PHP 5, PHP 7)

parse_str — Разбирает строку в переменные

Описание

void parse_str ( string $encoded_string [, array &$result ] )

Разбирает строку encoded_string, которая должна иметь формат строки запроса URL и присваивает значения переменным в текущем контексте (или заносит в массив, если задан параметр result)

Список параметров

encoded_string

Входная строка.

result

Если указан второй параметр result, то вместо присвоения переменных в текущем контексте они будут сохранены в этом параметре в качестве элементов массива.

Внимание

Использовать эту функцию без второго параметра НЕ РЕКОМЕНДУЕТСЯ. Динамическое задание переменных в скопе функции ведет ровно к тем же проблемам, что и register_globals.

Читайте секцию про безопасность раздела Использование Register Globals, в которой описывается опасность их использования.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Использование parse_str()

<?php
// Recommended
parse_str($str, $output);
echo $output['first'];  // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz

$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first;  // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
?>

Так как имена переменных PHP не могут содержать пробелы и точки, эти символы будут заменены на символ подчеркивания. Такие же правила накладываются на имена ключей в массиве result, если он задан.

Пример #2 Соотношение имен parse_str()

<?php
parse_str($"My Value=Something");
echo $My_Value; // Something

parse_str($"My Value=Something", $output);
echo $output['My_Value']; // Something
?>

Примечания

Замечание:

Все переменные создаются (или заносятся в массив) уже обработанные функцией urldecode().

Замечание:

Для получения текущей QUERY_STRING, можно использовать переменную $_SERVER['QUERY_STRING']. Кроме того, возможно вы захотите прочесть раздел о переменных вне PHP.

Замечание:

Опция magic_quotes_gpc влияет на вывод этой функции, так как parse_str() использует тот же механизм, что используется в PHP для заполнения $_GET, $_POST и других переменных.

Смотрите также

  • parse_url() - Разбирает URL и возвращает его компоненты
  • pathinfo() - Возвращает информацию о пути к файлу
  • http_build_query() - Генерирует URL-кодированную строку запроса
  • urldecode() - Декодирование URL-кодированной строки


Выводит строку

  • « parse_str
  • printf »
  • PHP Manual
  • Обработка строк
  • Выводит строку

print

(PHP 4, PHP 5, PHP 7)

print — Выводит строку

Описание

int print ( string $arg )

Выводит arg.

print не является "настоящей" функцией (это конструкция языка), поэтому заключать аргументы в скобки необязательно.

Единственное отличие от echo в том, что print принимает только один аргумент.

Список параметров

arg

Вводимые данные.

Возвращаемые значения

Возвращает 1, всегда.

Примеры

Пример #1 Примеры использования print

<?php
print("Привет мир!");

print "print() можно использовать и без скобок.";

print "Это займет
несколько строк. Переводы строки тоже
выводятся";

print "Это займет\nнесколько строк. Переводы строки тоже\nвыводятся";

print "Экранирование символов делается \"Так\".";

// с print можно использовать переменные ...
$foo = "foobar";
$bar = "barbaz";

print "foo - это $foo"; // foo - это foobar

// ... и массивы
$bar = array("value" => "foo");

print "это {$bar['value']} !"; // это foo !

// При использовании одиночных кавычек выводится имя переменной, а не значение
print 'foo - это $foo'; // foo - это $foo

// Если вы не используете другие символы, можно вывести просто значения переменных
print $foo;          // foobar

print <<<END
Здесь используется синтаксис "here document" для вывода
нескольких строк с подстановкой переменных $variable.
Заметьте, что закрывающий идентификатор должен
располагаться в отдельной строке, никаких пробелов!
END;
?>

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Смотрите также

  • echo - Выводит одну или более строк
  • printf() - Выводит отформатированную строку
  • flush() - Сброс системного буфера вывода
  • Heredoc синтаксис


Выводит отформатированную строку

  • « print
  • quoted_printable_decode »
  • PHP Manual
  • Обработка строк
  • Выводит отформатированную строку

printf

(PHP 4, PHP 5, PHP 7)

printf — Выводит отформатированную строку

Описание

int printf ( string $format [, mixed $args [, mixed $... ]] )

Выводит строку, отформатированную в соответствии с аргументом format.

Список параметров

format

Описание параметра format смотрите в описании функции sprintf().

args

...

Возвращаемые значения

Возвращает длину выведенной строки.

Смотрите также

  • print - Выводит строку
  • sprintf() - Возвращает отформатированную строку
  • vprintf() - Выводит отформатированную строку
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • flush() - Сброс системного буфера вывода


Преобразует строку, закодированную методом quoted-printable в 8-битовую строку

  • « printf
  • quoted_printable_encode »
  • PHP Manual
  • Обработка строк
  • Преобразует строку, закодированную методом quoted-printable в 8-битовую строку

quoted_printable_decode

(PHP 4, PHP 5, PHP 7)

quoted_printable_decode — Преобразует строку, закодированную методом quoted-printable в 8-битовую строку

Описание

string quoted_printable_decode ( string $str )

Эта функция возвращает 8-битную бинарную строку, соответствующую указанной строке в кодировке quoted-printable (в соответствии с разделом 6.7 » RFC2045, а не разделом 4.5.2 » RFC2821, т.е. дополнительные точки не будут вырезаны из начала строки).

Эта функция подобна функции imap_qprint(), но не требует для своей работы модуля IMAP.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает 8-битную бинарную строку.

Смотрите также

  • quoted_printable_encode() - Кодирует 8-битную строку в с помощью метода quoted-printable


Кодирует 8-битную строку в с помощью метода quoted-printable

  • « quoted_printable_decode
  • quotemeta »
  • PHP Manual
  • Обработка строк
  • Кодирует 8-битную строку в с помощью метода quoted-printable

quoted_printable_encode

(PHP 5 >= 5.3.0, PHP 7)

quoted_printable_encode — Кодирует 8-битную строку в с помощью метода quoted-printable

Описание

string quoted_printable_encode ( string $str )

Возвращает строку, закодированную в формат quoted-printable в соответствии с разделом 6.7 » RFC2045.

Эта функция подобна функции imap_8bit(), за исключением того что не требует для своей работы модуля IMAP.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает закодированную строку.

Смотрите также

  • quoted_printable_decode() - Преобразует строку, закодированную методом quoted-printable в 8-битовую строку
  • iconv_mime_encode() - Сжимает поле MIME-заголовка


Экранирует специальные символы

  • « quoted_printable_encode
  • rtrim »
  • PHP Manual
  • Обработка строк
  • Экранирует специальные символы

quotemeta

(PHP 4, PHP 5, PHP 7)

quotemeta — Экранирует специальные символы

Описание

string quotemeta ( string $str )

Возвращает модифицированную строку, в которой перед каждым символом из следующего списка:

. \ + * ? [ ^ ] ( $ )
вставлен обратный слеш (\).

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает экранированную строку, или FALSE, если в качестве параметра str была указана пустая строка.

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • addslashes() - Экранирует строку с помощью слешей
  • addcslashes() - Экранирует cтроку слешами в стиле языка C
  • htmlentities() - Преобразует все возможные символы в соответствующие HTML-сущности
  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности
  • nl2br() - Вставляет HTML-код разрыва строки перед каждым переводом строки
  • stripslashes() - Удаляет экранирование символов
  • stripcslashes() - Удаляет экранирование символов, произведенное функцией addcslashes
  • ereg() - Совпадение с регулярным выражением
  • preg_quote() - Экранирует символы в регулярных выражениях


Удаляет пробельные (или другие символы) из конца строки

  • « quotemeta
  • setlocale »
  • PHP Manual
  • Обработка строк
  • Удаляет пробельные (или другие символы) из конца строки

rtrim

(PHP 4, PHP 5, PHP 7)

rtrim — Удаляет пробельные (или другие символы) из конца строки

Описание

string rtrim ( string $str [, string $character_mask ] )

Эта функция возвращает строку str с удаленными из конца строки пробельными (или другими) символами.

Если второй параметр не передан, rtrim() удаляет следующие символы:

  • " " (ASCII 32 (0x20)), обычный пробел.
  • "\t" (ASCII 9 (0x09)), символ табуляции.
  • "\n" (ASCII 10 (0x0A)), символ перевода строки.
  • "\r" (ASCII 13 (0x0D)), символ возврата каретки.
  • "\0" (ASCII 0 (0x00)), NULL-байт.
  • "\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.

Список параметров

str

Входная строка.

character_mask

С помощью параметра character_mask можно также указать удаляемые символы. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию .. для обозначения диапазона символов.

Возвращаемые значения

Возвращает модифицированную строку.

Примеры

Пример #1 Пример использования rtrim()

<?php

$text = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = rtrim($text);
var_dump($trimmed);

$trimmed = rtrim($text, " \t.");
var_dump($trimmed);

$trimmed = rtrim($hello, "Hdle");
var_dump($trimmed);

// удаляем управляющие ASCII-символы с конца $binary
// (от 0 до 31 включительно)
$clean = rtrim($binary, "\x00..\x1F");
var_dump($clean);

?>

Результат выполнения данного примера:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(30) "        These are a few words :) ..."
string(26) "        These are a few words :)"
string(9) "Hello Wor"
string(15) "    Example string"

Смотрите также

  • trim() - Удаляет пробелы (или другие символы) из начала и конца строки
  • ltrim() - Удаляет пробелы (или другие символы) из начала строки


Устанавливает настройки локали

  • « rtrim
  • sha1_file »
  • PHP Manual
  • Обработка строк
  • Устанавливает настройки локали

setlocale

(PHP 4, PHP 5, PHP 7)

setlocale — Устанавливает настройки локали

Описание

string setlocale ( int $category , string $locale [, string $... ] )
string setlocale ( int $category , array $locale )

Устанавливает настройки локали.

Список параметров

category

Параметр category это именованная константа, определяющая категорию функций, на которые будет влиять установка локали:

  • LC_ALL - все нижеперечисленное
  • LC_COLLATE - функции сравнения строк, смотри strcoll()
  • LC_CTYPE - функции преобразования и классификации строк, например strtoupper()
  • LC_MONETARY - для функции localeconv()
  • LC_NUMERIC - задает символ десятичного разделения (см. также localeconv())
  • LC_TIME - форматирование даты/времени функцией strftime()
  • LC_MESSAGES для системных сообщений (доступна если PHP был скомпилирован с поддержкой libintl)

locale

Если в качестве locale передана пустая строка "" или NULL, имена локалей будут взяты из одноименных переменных окружения или переменной с именем "LANG".

Если в качестве locale передан NULL или "0", локаль изменена не будет, а будет возвращено текущее значение.

Если в качестве locale передан массив, или после этого аргумента следуют дополнительные аргументы, функция будет использовать элементы массива или аргументы по порядку в качестве имен локали до тех пор, пока установка локали не будет успешной. Это удобно, если одна и та же локаль имеет разное имя в различных системах, или для создания запасного варианта при отсутствии какой-либо локали в системе.

...

(Необязательные аргументы в виде строк или массивов для установки настроек локали до первой успешной попытки.)

Замечание:

На Windows, setlocale(LC_ALL, '') устанавливает имена локалей из системных региональных/языковых настроек (доступных через Панель Управления).

Возвращаемые значения

Возвращает имя вновь установленной локали или FALSE если система не поддерживает установку локали, указанная локаль не существует или передано недопустимое имя категории.

Недопустимое имя категории также вызывает предупреждение. Имена локалей и категорий описаны в » RFC 1766 и » ISO 639. Разные системы имеют различных схемы именования локалей.

Замечание:

Возвращаемое функцией setlocale() значение зависит от системы, на которой запущен PHP. Она возвращает точно то же значение, что и системная функция setlocale.

Список изменений

Версия | Описание
7.0.0 | Удалена поддержка для параметра category передаваемого как строка. С текущей версии можно пользоваться только константами LC_*.
5.3.0 | Эта функция в настоящее время бросает уведомления E_DEPRECATED, если строка передается в параметре category вместо одной из констант LC_*.

Примеры

Пример #1 Примеры использования setlocale()

<?php
/* Установка голландской локали */
setlocale(LC_ALL, 'nl_NL');

/* выводит: vrijdag 22 december 1978 */
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* попытка использовать различные локали для  немецкого языка */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
echo "На этой системе немецкая локаль имеет имя '$loc_de'";
?>

Пример #2 Примеры использования setlocale() в Windows

<?php
/* Установка голландской локали */
setlocale(LC_ALL, 'nld_nld');

/* выводит: vrijdag 22 december 1978 */
echo strftime("%A %d %B %Y", mktime(0, 0, 0, 12, 22, 1978));

/* попытка использовать различные локали для  немецкого языка */
$loc_de = setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
echo "Предпочитаемая немецкая локаль на этой системе: '$loc_de'";
?>

Примечания

Внимание

Информация о локали модифицируется во всем процессе, а не по каждому потоку отдельно. Если вы используете PHP на многопоточном сервере, таком как IIS, HHVM или Apache под Windows, вы можете обнаружить неожиданные изменения в настройках локали во время выполнения скриптов, никогда и не вызывавших setlocale(). Это происходит из-за того, что другие скрипты, запущенные в параллельных потоках данного процесса, в то же самое время поменяли настройки локали для всего процесса с помощью setlocale().

Подсказка

Пользователи Windows найдут полезной информацию о значениях locale на сайте Microsoft MSDN. Поддерживаемые языки перечислены в » документации по языковым строкам, а значения стран/регионов в » документации по строкам стран/регионов.


Возвращает SHA1-хэш файла

  • « setlocale
  • sha1 »
  • PHP Manual
  • Обработка строк
  • Возвращает SHA1-хэш файла

sha1_file

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

sha1_file — Возвращает SHA1-хэш файла

Описание

string sha1_file ( string $filename [, bool $raw_output = false ] )

Вычисляет SHA1-хэш файла, имя которого задано аргументом filename, используя алгоритм » US Secure Hash Algorithm 1 и возвращает этот хэш.

Список параметров

filename

Имя хэшируемого файла.

raw_output

Если установлен в TRUE, возвращает 20-символьный хэш в бинарном формате.

Возвращаемые значения

Возвращает строку в случае успеха, иначе возвращается FALSE.

Примеры

Пример #1 Пример использования sha1_file()

<?php
foreach(glob('/home/Kalle/myproject/*.php') as $ent)
{
    if(is_dir($ent))
    {
        continue;
    }

    echo $ent . ' (SHA1: ' . sha1_file($ent) . ')', PHP_EOL;
}
?>

Список изменений

Версия | Описание
5.1.0 | Функция теперь работает с потоковым API. Это означает, что ее можно использовать с обертками, например, sha1_file('http://example.com/..')

Смотрите также

  • sha1() - Возвращает SHA1-хэш строки
  • md5_file() - Возвращает MD5-хэш файла
  • crc32() - Вычисляет полином CRC32 для строки


Возвращает SHA1-хэш строки

  • « sha1_file
  • similar_text »
  • PHP Manual
  • Обработка строк
  • Возвращает SHA1-хэш строки

sha1

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

sha1 — Возвращает SHA1-хэш строки

Описание

string sha1 ( string $str [, bool $raw_output = false ] )

Возвращает SHA1-хэш строки str, вычисленный по алгоритму » US Secure Hash Algorithm 1.

Список параметров

str

Входная строка.

raw_output

Если необязательный аргумент raw_output имеет значение TRUE, хэш возвращается в виде бинарной строки из 20 символов, иначе он будет возвращен в виде 40-символьного шестнадцатеричного числа.

Возвращаемые значения

Возвращает SHA1-хэш в виде строки.

Примеры

Пример #1 Пример использования sha1()

<?php
$str = 'яблоко';

if (sha1($str) === '88b184adea10bf987b15257a5d6c5cb94eba69d3') {
    echo "Желаете зеленое или красное яблоко?";
}
?>

Примечания

Замечание: Безопасное хэширование паролей

В связи с быстрой природой хэширующего алгоритма не рекомендуется использовать эту функцию для обеспечения безопасности паролей. Подробнее об этом можно прочитать здесь.

Смотрите также

  • sha1_file() - Возвращает SHA1-хэш файла
  • crc32() - Вычисляет полином CRC32 для строки
  • md5() - Возвращает MD5-хэш строки
  • hash() - Генерирует хеш-код (дайджест сообщения)
  • crypt() - Необратимое хэширование строки
  • password_hash() - Creates a password hash


Вычисляет степень похожести двух строк

  • « sha1
  • soundex »
  • PHP Manual
  • Обработка строк
  • Вычисляет степень похожести двух строк

similar_text

(PHP 4, PHP 5, PHP 7)

similar_text — Вычисляет степень похожести двух строк

Описание

int similar_text ( string $first , string $second [, float &$percent ] )

Вычисляет степень похожести двух строк по алгоритму, описанному в Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1). Эта реализация алгоритма не использует стека, использованного в оригинале, вместо этого применяются рекурсивные вызовы, что в некоторых случаях может ускорить процесс. Сложность алгоритма составляет O(N**3), где N - длина более длинной из двух строк.

Список параметров

first

Первая строка.

second

Вторая строка.

percent

При передаче по ссылке третьего аргумента, similar_text() присваивает ему степень похожести двух строк в процентах.

Возвращаемые значения

Возвращается количество совпадающих символов в двух строках.

Смотрите также

  • levenshtein() - Вычисляет расстояние Левенштейна между двумя строками
  • soundex() - Возвращает ключ soundex для строки


Возвращает ключ soundex для строки

  • « similar_text
  • sprintf »
  • PHP Manual
  • Обработка строк
  • Возвращает ключ soundex для строки

soundex

(PHP 4, PHP 5, PHP 7)

soundex — Возвращает ключ soundex для строки

Описание

string soundex ( string $str )

Возвращает ключ soundex для строки str.

Двум словам, имеющим схожее произношение, соответствует один и тот же ключ soundex. Это свойство может быть использовано, например, при поиске по базе данных, когда известно произношение слова и неизвестно его написание. Данная функция возвращает строку из 4 символов, начинающуюся с буквы.

Данная реализация функции soundex описана Дональдом Кнутом (Donald Knuth) в книге "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), стр. 391-392.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает ключ soundex в виде строки.

Примеры

Пример #1 Примеры soundex

<?php
soundex("Euler")       == soundex("Ellery");    // E460
soundex("Gauss")       == soundex("Ghosh");     // G200
soundex("Hilbert")     == soundex("Heilbronn"); // H416
soundex("Knuth")       == soundex("Kant");      // K530
soundex("Lloyd")       == soundex("Ladd");      // L300
soundex("Lukasiewicz") == soundex("Lissajous"); // L222
?>

Смотрите также

  • levenshtein() - Вычисляет расстояние Левенштейна между двумя строками
  • metaphone() - Возвращает ключ metaphone для строки
  • similar_text() - Вычисляет степень похожести двух строк


Возвращает отформатированную строку

  • « soundex
  • sscanf »
  • PHP Manual
  • Обработка строк
  • Возвращает отформатированную строку

sprintf

(PHP 4, PHP 5, PHP 7)

sprintf — Возвращает отформатированную строку

Описание

string sprintf ( string $format [, mixed $args [, mixed $... ]] )

Возвращает строку, созданную с использованием строки формата format.

Список параметров

format

Строка формата состоит из нуля и более директив: обычных символов (за исключением %), которые копируются напрямую в результирующую строку, и описателей преобразований, каждый из которых заменяется на один из параметров. Это относится как к sprintf(), так и к printf().

Каждый описатель преобразований состоит из знака процента (%), за которым следует один или более дополнительных элементов (в том порядке, в котором они здесь перечислены):

  1. Необязательный описатель знака, указывающий как знак (- или +) будет применен к числу. По умолчанию, используется только знак минус, если число отрицательное. Этот описатель заставляет положительные числа также отображать знак плюс.
  2. Необязательный описатель заполнения, который определяет, какой символ будет использоваться для дополнения результата до необходимой длины. Это может быть пробел или 0. По умолчанию используется пробел. Альтернативный символ может быть указан с помощью одиночной кавычки ('). См. примеры ниже.
  3. Необязательный описатель выравнивания, определяющий выравнивание влево или вправо. По умолчанию выравнивается вправо, - используется для выравнивания влево.
  4. Необязательное число, описатель ширины, определяющий минимальное число символов, которое будет содержать результат этого преобразования.
  5. Необязательный описатель точности, указанный в виде точки (.), после которой следует необязательная строка из десятичных чисел, определяющая, сколько десятичных разрядов отображать для чисел с плавающей точкой. При использовании со строками этот описатель выступает в роли обрезающей точки, устанавливающей максимальный лимит символов. Также между точкой и цифрой можно указать символ, используемый при дополнении числа.

  6. Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:

    • % - символ процента. Аргумент не используется.
    • b - аргумент трактуется как целое и выводится в виде двоичного числа.
    • c - аргумент трактуется как целое и выводится в виде символа с соответствующим кодом ASCII.
    • d - аргумент трактуется как целое и выводится в виде десятичного числа со знаком.
    • e - аргумент трактуется как число в в научной нотации (например, 1.2e+2). Описатель точности указывает на количество знаков после запятой, начиная с версии PHP 5.2.1. В более ранних версиях он обозначал количество значащих цифр (на один знак меньше).
    • E - аналогично %e, но использует заглавную букву (например, 1.2E+2).
    • f - аргумент трактуется как число с плавающей точкой и также выводится в зависимости от локали.
    • F - аргумент трактуется как число с плавающей точкой и также выводится, но без зависимости от локали. Доступно, начиная с версии PHP 5.0.3.
    • g - выбирает самую краткую запись из %e и %f.
    • G - выбирает самую краткую запись из %E и %f.
    • o - аргумент трактуется как целое и выводится в виде восьмеричного числа.
    • s - аргумент трактуется как строка.
    • u - аргумент трактуется как целое и выводится в виде десятичного числа без знака.
    • x - аргумент трактуется как целое и выводится в виде шестнадцатеричного числа (в нижнем регистре).
    • X - аргумент трактуется как целое и выводится в виде шестнадцатеричного числа (в верхнем регистре).

Переменные будут преобразованы в соответвующий тип для спецификатора:

Обработка типов
Тип | Спецификатор
string | s
integer | d, u, c, o, x, X, b
double | g, G, e, E, f, F

Внимание

Попытка использовать комбинацию строк и спецификаторов ширины с кодировками, которые требуют более одного байта на символ, может привести к неожиданным результатам.

В строке формата поддерживается нумерация и изменение порядка параметров. Например:

Пример #1 Изменение порядка параметров

<?php
$num = 5;
$location = 'дереве';

$format = '%d обезьян сидят на %s';
echo sprintf($format, $num, $location);
?>
Этот код выведет "5 обезьян сидят на дереве". Теперь представьте, что строка формата содержится в отдельном файле, который потом будет переведен на другой язык, и мы переписываем ее в таком виде:

Пример #2 Изменение порядка параметров

<?php
$format = 'На %s сидят %d обезьян';
echo sprintf($format, $num, $location);
?>
Появляется проблема: порядок описателей преобразования не соответствует порядку аргументов. Мы не хотим менять код, и нам нужно указать, какому аргументу соответствует тот или иной описатель преобразования.

Пример #3 Изменение порядка параметров

<?php
$format = 'На %2$s сидят %1$d обезьян';
echo sprintf($format, $num, $location);
?>
Нумерация аргументов имеет еще одно применение: она позволяет вывести один и тот же аргумент несколько раз без передачи функции дополнительных параметров.

Пример #4 Изменение порядка параметров

<?php
$format = 'На %2$s сидят %1$d обезьян.
           Как здорово, когда на %2$s сидят %1$d обезьян.';
echo sprintf($format, $num, $location);
?>
При изменении порядка параметров описатель позиции n$ должен идти сразу за знаком процента (%) прежде всех остальных описателей, как показано в примере ниже.

Пример #5 Указание дополняющего символа

<?php
echo sprintf("%'.9d\n", 123);
echo sprintf("%'.09d\n", 123);
?>

Результат выполнения данного примера:

......123
000000123

Пример #6 Использование описателя позиции и совместно с другими описателями

<?php
$format = 'На %2$s сидят %1$04d обезьян';
echo sprintf($format, $num, $location);
?>

Результат выполнения данного примера:

На дереве сидят 0005 обезьян

Замечание:

Попытка использовать спецификатор позиции, больший чем PHP_INT_MAX, приведет к генерации предупреждения функцией sprintf().

Внимание

The c type specifier ignores padding and width

args

...

Возвращаемые значения

Возвращает строку, отформатированную в соответствии со строкой format.

Примеры

Пример #7 sprintf(): заполнение нулями

<?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'

Пример #8 printf(): описатели строк

<?php
$s = 'monkey';
$t = 'many monkeys';

printf("[%s]\n",      $s); // обычный вывод строки
printf("[%10s]\n",    $s); // выравнивание вправо с пробелами
printf("[%-10s]\n",   $s); // выравнивание влево с пробелами
printf("[%010s]\n",   $s); // дополнение нулями также работает со строками
printf("[%'#10s]\n",  $s); // использование собственного дополняющего символа '#'
printf("[%10.10s]\n", $t); // выравнивание влево с обрезкой в 10 символов
?>

Результат выполнения данного примера:

[monkey]
[    monkey]
[monkey    ]
[0000monkey]
[####monkey]
[many monke]

Пример #9 sprintf(): целые числа, дополненные нулями

<?php
$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>

Пример #10 sprintf(): форматирование денежных величин

<?php
$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money выведет "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted выведет "123.10"
?>

Пример #11 sprintf(): научная нотация

<?php
$number = 362525200;

echo sprintf("%.3e", $number); // выведет 3.625e+8
?>

Смотрите также

  • printf() - Выводит отформатированную строку
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • vsprintf() - Возвращает отформатированную строку
  • number_format() - Форматирует число с разделением групп
  • date() - Форматирует вывод системной даты/времени


Разбирает строку в соответствии с заданным форматом

  • « sprintf
  • str_getcsv »
  • PHP Manual
  • Обработка строк
  • Разбирает строку в соответствии с заданным форматом

sscanf

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

sscanf — Разбирает строку в соответствии с заданным форматом

Описание

mixed sscanf ( string $str , string $format [, mixed &$... ] )

Функция sscanf() похожа на функцию printf(), но используется не для вывода, а для ввода данных. sscanf() интерпретирует строку str в соответствии с форматом format, указанным в документации к функцииsprintf().

Любые пробельные символы в строке формата соответствуют любым пробельным символам во входной строке. Это значит, что, например, символ табуляции \t в строке формата соответствует символу пробела во входной строке.

Список параметров

str

Обрабатываемая строка (string).

format

Формат, в соответствии с которым будет интерпретирована строка str, описанный в документации к функции sprintf() со следующими отличиями:

  • На функцию не влияют настройки локали.
  • F, g, G и b не поддерживаются.
  • D обозначает десятичное число.
  • i обозначает целое число с автоматическим определением системы счисления.
  • n обозначает обработанное количество символов на данный момент.

...

Необязательные переменные, передаваемые по ссылке, которым будут присвоены считанные значения.

Возвращаемые значения

Если переданы только эти два аргумента, будет возвращен массив. В противном случае, считанные из строки значения будут присвоены переменным, переданным через дополнительные аргументы, и будет возвращено количество присвоенных значений. Дополнительные аргументы должны передаваться по ссылке.

Если ожидается больше подстрок в параметре format, чем доступно в параметре str, то будет возвращено значение -1.

Примеры

Пример #1 Пример использования sscanf()

<?php
// получаем серийный номер
list($serial) = sscanf("SN/2350001", "SN/%d");
// и дату изготовления
$mandate = "January 01 2000";
list($month, $day, $year) = sscanf($mandate, "%s %d %d");
echo "Узел $serial был изготовлен: $year-" . substr($month, 0, 3) . "-$day\n";
?>

Если переданы необязательные аргументы, значения будут присвоены им, а возвращено будет количество присвоенных значений.

Пример #2 sscanf() - использование необязательных аргументов

<?php
// получить имя автора и сформировать запись в формате DocBook
$auth = "24\tLewis Carroll";
$n = sscanf($auth, "%d\t%s %s", $id, $first, $last);
echo "<author id='$id'>
    <firstname>$first</firstname>
    <surname>$last</surname>
</author>\n";
?>

Смотрите также

  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку


Выполняет разбор CSV-строки в массив

  • « sscanf
  • str_ireplace »
  • PHP Manual
  • Обработка строк
  • Выполняет разбор CSV-строки в массив

str_getcsv

(PHP 5 >= 5.3.0, PHP 7)

str_getcsv — Выполняет разбор CSV-строки в массив

Описание

array str_getcsv ( string $input [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\\" ]]] )

Данная функция выполняет разбор строки в формате CSV и возвращает массив с полученными из строки полями.

Список параметров

input

Обрабатываемая строка.

delimiter

Устанавливает разделитель поля (только один символ).

enclosure

Устанавливает символ ограничителя поля (только один символ).

escape

Устанавливает экранирующий символ (только один символ). По умолчанию равен обратному слешу (\).

Возвращаемые значения

Возвращает индексированный массив, содержащий полученные из строки поля.

Смотрите также

  • fgetcsv() - Читает строку из файла и производит разбор данных CSV


Регистронезависимый вариант функции str_replace

  • « str_getcsv
  • str_pad »
  • PHP Manual
  • Обработка строк
  • Регистронезависимый вариант функции str_replace

str_ireplace

(PHP 5, PHP 7)

str_ireplace — Регистронезависимый вариант функции str_replace()

Описание

mixed str_ireplace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

Эта функция возвращает строку или массив, в котором все вхождения search в subject заменены на replace (без учета регистра символов). Если не нужны сложные правила поиска/замены, использование этой функции предпочтительнее preg_replace() с модификатором i.

Список параметров

Если search и replace - массивы, то str_ireplace() использует каждое значение из соответствующего массива для поиска и замены в subject. Если в массиве replace меньше элементов, чем в search, в качестве строки замены для оставшихся значений будет использована пустая строка. Если search - массив, а replace - строка, то эта строка замены будет использована для каждого элемента массива search. Обратный случай смысла не имеет.

Если search или replace являются массивами, их элементы будут обработаны от первого к последнему.

search

Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.

replace

Значение замены, будет использовано для замены искомых значений search. Для множества значений можно использовать массив.

subject

Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).

Если subject является массивом, то поиск с заменой будет осуществляться над каждым элементом subject, а результатом функции также будет являться массив.

count

Если передан, то будет установлен в количество произведенных замен.

Возвращаемые значения

Возвращает строку или массив с замененными значениями.

Примеры

Пример #1 Пример использования str_ireplace()

<?php
$bodytag = str_ireplace("%body%", "black", "<body text=%BODY%>");
echo $bodytag; // <body text=black>
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Предостережение

Замечание о порядке замены

Так как str_ireplace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Пример №2 в документации str_replace() поясняет как это работает на практике.

Смотрите также

  • str_replace() - Заменяет все вхождения строки поиска на строку замены
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • strtr() - Преобразует заданные символы или заменяет подстроки


Дополняет строку другой строкой до заданной длины

  • « str_ireplace
  • str_repeat »
  • PHP Manual
  • Обработка строк
  • Дополняет строку другой строкой до заданной длины

str_pad

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

str_pad — Дополняет строку другой строкой до заданной длины

Описание

string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )

Эта функция возвращает строку input, дополненную слева, справа или с обеих сторон до заданной длины. Если необязательный аргумент pad_string не передан, то input будет дополнен пробелами, иначе он будет дополнен символами из pad_string до нужной длины

Список параметров

input

Входная строка.

pad_length

Если значение pad_length отрицательно, меньше или равно длине входной строки, то дополнения не происходит и возвращается исходная строка input.

pad_string

Замечание:

pad_string может быть урезана, если необходимое количество дополняемых символов не делится нацело на длину строки pad_string.

pad_type

Необязательный аргумент pad_type может иметь значение STR_PAD_RIGHT, STR_PAD_LEFT или STR_PAD_BOTH. Если не указан, то по умолчанию используется STR_PAD_RIGHT.

Возвращаемые значения

Возвращает дополненную строку.

Примеры

Пример #1 Пример использования str_pad()

<?php
$input = "Alien";
echo str_pad($input, 10);                      // выводит "Alien     "
echo str_pad($input, 10, "-=", STR_PAD_LEFT);  // выводит "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH);   // выводит "__Alien___"
echo str_pad($input,  6, "___");               // выводит "Alien_"
echo str_pad($input,  3, "*");                 // выводит "Alien"
?>


Возвращает повторяющуюся строку

  • « str_pad
  • str_replace »
  • PHP Manual
  • Обработка строк
  • Возвращает повторяющуюся строку

str_repeat

(PHP 4, PHP 5, PHP 7)

str_repeat — Возвращает повторяющуюся строку

Описание

string str_repeat ( string $input , int $multiplier )

Возвращает строку input, повторенную multiplier раз.

Список параметров

input

Повторяемая строка.

multiplier

Количество раз, которые нужно повторить строку input.

multiplier должен быть больше или равен нулю. Если он равен нулю, возвращается пустая строка.

Возвращаемые значения

Возвращает повторяющуюся строку.

Примеры

Пример #1 Пример использования str_repeat()

<?php
echo str_repeat("-=", 10);
?>

Результат выполнения данного примера:

-=-=-=-=-=-=-=-=-=-=

Смотрите также

  • for
  • str_pad() - Дополняет строку другой строкой до заданной длины
  • substr_count() - Возвращает число вхождений подстроки


Заменяет все вхождения строки поиска на строку замены

  • « str_repeat
  • str_rot13 »
  • PHP Manual
  • Обработка строк
  • Заменяет все вхождения строки поиска на строку замены

str_replace

(PHP 4, PHP 5, PHP 7)

str_replace — Заменяет все вхождения строки поиска на строку замены

Описание

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

Эта функция возвращает строку или массив, в котором все вхождения search в subject заменены на replace.

Если не нужны сложные правила поиска/замены (например, регулярные выражения), использование этой функции предпочтительнее preg_replace().

Список параметров

Если search и replace - массивы, то str_replace() использует каждое значение из соответствующего массива для поиска и замены в subject. Если в массиве replace меньше элементов, чем в search, в качестве строки замены для оставшихся значений будет использована пустая строка. Если search - массив, а replace - строка, то эта строка замены будет использована для каждого элемента массива search. Обратный случай смысла не имеет.

Если search или replace являются массивами, их элементы будут обработаны от первого к последнему.

search

Искомое значение, также известное как needle (иголка). Для множества искомых значений можно использовать массив.

replace

Значение замены, будет использовано для замены искомых значений search. Для множества значений можно использовать массив.

subject

Строка или массив, в котором производится поиск и замена, также известный как haystack (стог сена).

Если subject является массивом, то поиск с заменой будет осуществляться над каждым элементом subject, а результатом функции также будет являться массив.

count

Если передан, то будет установлен в количество произведенных замен.

Возвращаемые значения

Эта функция возвращает строку или массив с замененными значениями.

Примеры

Пример #1 Примеры использования str_replace()

<?php
// присваивает <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// присваивает: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

// присваивает: You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

// присваивает: 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>

Пример #2 Примеры потенциальных трюков с str_replace()

<?php
// Порядок замены
$str     = "Строка 1\nСтрока 2\rСтрока 3\r\nСтрока 4\n";
$order   = array("\r\n", "\n", "\r");
$replace = '<br />';

// Обрабатывает сначала \r\n для избежания их повторной замены.
echo $newstr = str_replace($order, $replace, $str);

// Выводит F, т.к. A заменяется на B, затем B на C, и так далее...
// В итоге E будет заменено F, так как замена происходит слева направо.
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

// Выводит: яблорехкорех орех (по вышеуказанной причине)
$letters = array('я', 'о');
$fruit   = array('яблоко', 'орех');
$text    = 'я о';
$output  = str_replace($letters, $fruit, $text);
echo $output;
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Предостережение

Замечание о порядке замены

Так как str_replace() осуществляет замену слева направо, то при использовании множественных замен она может заменить ранее вставленное значение на другое. Смотрите также примеры на этой странице.

Замечание:

Эта функция чувствительна к регистру. Используйте str_ireplace() для замены, нечувствительной к регистру.

Смотрите также

  • str_ireplace() - Регистронезависимый вариант функции str_replace
  • substr_replace() - Заменяет часть строки
  • preg_replace() - Выполняет поиск и замену по регулярному выражению
  • strtr() - Преобразует заданные символы или заменяет подстроки


Выполняет преобразование ROT13 над строкой

  • « str_replace
  • str_shuffle »
  • PHP Manual
  • Обработка строк
  • Выполняет преобразование ROT13 над строкой

str_rot13

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

str_rot13 — Выполняет преобразование ROT13 над строкой

Описание

string str_rot13 ( string $str )

Выполняет над строкой str преобразование ROT13 и возвращает полученную строку.

Преобразование ROT13 заключается в простом сдвиге каждой латинской буквы на 13 позиций в алфавите, остальные символы не изменяются. Обратное преобразование выполняется той же функцией, так как передача закодированной строки в качестве аргумента вернет ее оригинальную версию.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает ROT13 версию переданной строки.

Примеры

Пример #1 Пример использования str_rot13()

<?php

echo str_rot13('PHP 4.3.0'); // CUC 4.3.0

?>


Переставляет символы в строке случайным образом

  • « str_rot13
  • str_split »
  • PHP Manual
  • Обработка строк
  • Переставляет символы в строке случайным образом

str_shuffle

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

str_shuffle — Переставляет символы в строке случайным образом

Описание

string str_shuffle ( string $str )

str_shuffle() перемешивает символы в строке. Выбирается одна возможная перестановка из всех возможных.

Предостережение

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функций random_int(), random_bytes(), или openssl_random_pseudo_bytes() вместо данной.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает перемешанную строку.

Примеры

Пример #1 Пример использования str_shuffle()

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// выведет что-то вроде этого: bfdaec
echo $shuffled;
?>

Смотрите также

  • shuffle() - Перемешивает массив
  • rand() - Генерирует случайное число


Преобразует строку в массив

  • « str_shuffle
  • str_word_count »
  • PHP Manual
  • Обработка строк
  • Преобразует строку в массив

str_split

(PHP 5, PHP 7)

str_split — Преобразует строку в массив

Описание

array str_split ( string $string [, int $split_length = 1 ] )

Преобразует строку в массив.

Список параметров

string

Входная строка.

split_length

Максимальная длина фрагмента.

Возвращаемые значения

Если указан необязательный аргумент split_length, возвращаемый массив будет содержать части исходной строки длиной split_length каждая, иначе каждый элемент будет содержать один символ.

Если split_length меньше 1, возвращается FALSE. Если split_length больше длины строки string, то вся строка будет возвращена в первом и единственном элементе массива.

Примеры

Пример #1 Пример использования str_split()

<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>

Результат выполнения данного примера:

Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

Примечания

Замечание:

Функция str_split() производит разбивку по байтам, а не по символам, в случае использования строк в многобайтных кодировках.

Смотрите также

  • chunk_split() - Разбивает строку на фрагменты
  • preg_split() - Разбивает строку по регулярному выражению
  • explode() - Разбивает строку с помощью разделителя
  • count_chars() - Возвращает информацию о символах, входящих в строку
  • str_word_count() - Возвращает информацию о словах, входящих в строку
  • for


Возвращает информацию о словах, входящих в строку

  • « str_split
  • strcasecmp »
  • PHP Manual
  • Обработка строк
  • Возвращает информацию о словах, входящих в строку

str_word_count

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

str_word_count — Возвращает информацию о словах, входящих в строку

Описание

mixed str_word_count ( string $string [, int $format = 0 [, string $charlist ]] )

Подсчитывает количество слов, входящих в строку string. Если необязательный аргумент format не передан, возвращается целое число, равное количеству слов. В случае, если указан аргумент format, возвращается массив, содержимое которого зависит от значения format. Ниже описаны допустимые значения аргумента format и соответствующие им возвращаемые значения.

Для этой функции "слово" обозначает строку с алфавитными символами, зависящую от локали, которая также может содержать символы "'" и "-", но не может начинаться с них.

Список параметров

string

Строка

format

Указывает возвращаемое значение данной функции. На данный момент поддерживаются следующие значения:

  • 0 - возвращает количество найденных слов
  • 1 - возвращается массив, содержащий все слова, входящие в строку string
  • 2 - возвращается массив, индексами которого являются позиции в строке string, а значениями - соответствующие слова.

charlist

Список дополнительных символов, которые будут рассматриваться как "слово"

Возвращаемые значения

Возвращает массив или целое число, в зависимости от указанного параметра format.

Список изменений

Версия | Описание
5.1.0 | Добавлен параметр charlist

Примеры

Пример #1 Пример использования str_word_count()

<?php

$str = "Hello fri3nd, you're
       looking          good today!";

print_r(str_word_count($str, 1));
print_r(str_word_count($str, 2));
print_r(str_word_count($str, 1, 'aaac3'));

echo str_word_count($str);

?>

Результат выполнения данного примера:

Array
(
    [0] => Hello
    [1] => fri
    [2] => nd
    [3] => you're
    [4] => looking
    [5] => good
    [6] => today
)

Array
(
    [0] => Hello
    [6] => fri
    [10] => nd
    [14] => you're
    [29] => looking
    [46] => good
    [51] => today
)

Array
(
    [0] => Hello
    [1] => fri3nd
    [2] => you're
    [3] => looking
    [4] => good
    [5] => today
)

7

Смотрите также

  • explode() - Разбивает строку с помощью разделителя
  • preg_split() - Разбивает строку по регулярному выражению
  • split() - Разбиение строки на массив по регулярному выражению
  • count_chars() - Возвращает информацию о символах, входящих в строку
  • substr_count() - Возвращает число вхождений подстроки


Бинарно-безопасное сравнение строк без учета регистра

  • « str_word_count
  • strchr »
  • PHP Manual
  • Обработка строк
  • Бинарно-безопасное сравнение строк без учета регистра

strcasecmp

(PHP 4, PHP 5, PHP 7)

strcasecmp — Бинарно-безопасное сравнение строк без учета регистра

Описание

int strcasecmp ( string $str1 , string $str2 )

Бинарно-безопасное сравнение строк без учета регистра.

Список параметров

str1

Первая строка

str2

Вторая строка

Возвращаемые значения

Возвращает отрицательное число, если str1 меньше, чем str2, положительное число, если str1 больше, чем str2, и 0 если строки равны.

Примеры

Пример #1 Пример использования strcasecmp()

<?php
$var1 = "Hello";
$var2 = "hello";
if (strcasecmp($var1, $var2) == 0) {
    echo '$var1 равно $var2 при сравнении без учета регистра';
}
?>

Смотрите также

  • strcmp() - Бинарно-безопасное сравнение строк
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • substr_compare() - Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
  • strncasecmp() - Бинарно-безопасное сравнение первых n символов строк без учета регистра
  • stristr() - Регистронезависимый вариант функции strstr
  • substr() - Возвращает подстроку


Псевдоним strstr

  • « strcasecmp
  • strcmp »
  • PHP Manual
  • Обработка строк
  • Псевдоним strstr

strchr

(PHP 4, PHP 5, PHP 7)

strchr — Псевдоним strstr()

Описание

Эта функция является псевдонимом: strstr().


Бинарно-безопасное сравнение строк

  • « strchr
  • strcoll »
  • PHP Manual
  • Обработка строк
  • Бинарно-безопасное сравнение строк

strcmp

(PHP 4, PHP 5, PHP 7)

strcmp — Бинарно-безопасное сравнение строк

Описание

int strcmp ( string $str1 , string $str2 )

Эта функция учитывает регистр символов.

Список параметров

str1

Первая строка.

str2

Вторая строка.

Возвращаемые значения

Возвращает отрицательное число, если str1 меньше, чем str2, положительное число, если str1 больше, чем str2, и 0 если строки равны.

Примеры

Пример #1 Пример использования strcmp()

<?php
$var1 = "Hello";
$var2 = "hello";
if (strcmp($var1, $var2) !== 0) {
    echo '$var1 не равно $var2 при регистрозависимом сравнении';
}
?>

Смотрите также

  • strcasecmp() - Бинарно-безопасное сравнение строк без учета регистра
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • substr_compare() - Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
  • strncmp() - Бинарно-безопасное сравнение первых n символов строк
  • strstr() - Находит первое вхождение подстроки
  • substr() - Возвращает подстроку


Сравнение строк с учетом текущей локали

  • « strcmp
  • strcspn »
  • PHP Manual
  • Обработка строк
  • Сравнение строк с учетом текущей локали

strcoll

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

strcoll — Сравнение строк с учетом текущей локали

Описание

int strcoll ( string $str1 , string $str2 )

Обратите внимание, что эта функция учитывает регистр символов, и, в отличие от strcmp() не безопасна для обработки данных в двоичной форме.

strcoll() при сравнении использует установки текущей локали. Если установлена локаль C или POSIX, эта функция аналогична strcmp().

Список параметров

str1

Первая строка.

str2

Вторая строка.

Возвращаемые значения

Возвращает отрицательное число, если str1 меньше, чем str2, положительное число, если str1 больше, чем str2, и 0, если они равны.

Список изменений

Версия | Описание
4.2.3 | Теперь эта функция работает и на win32.

Смотрите также

  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • strcmp() - Бинарно-безопасное сравнение строк
  • strcasecmp() - Бинарно-безопасное сравнение строк без учета регистра
  • substr() - Возвращает подстроку
  • stristr() - Регистронезависимый вариант функции strstr
  • strncasecmp() - Бинарно-безопасное сравнение первых n символов строк без учета регистра
  • strncmp() - Бинарно-безопасное сравнение первых n символов строк
  • strstr() - Находит первое вхождение подстроки
  • setlocale() - Устанавливает настройки локали


Возвращает длину участка в начале строки, не соответствующего маске

  • « strcoll
  • strip_tags »
  • PHP Manual
  • Обработка строк
  • Возвращает длину участка в начале строки, не соответствующего маске

strcspn

(PHP 4, PHP 5, PHP 7)

strcspn — Возвращает длину участка в начале строки, не соответствующего маске

Описание

int strcspn ( string $subject , string $mask [, int $start [, int $length ]] )

Возвращает длину участка в начале строки subject, который не содержит ни одного символа из строки mask.

Если параметры start и length не указаны, то все содержимое subject будет обследовано. Если же эти параметры указаны, то эффект будет таким же как при вызове strcspn(substr($subject, $start, $length), $mask) (см. substr для дополнительной информации).

Список параметров

subject

Строка для обследования.

mask

Строка, содержащая каждый из запрещенных символов.

start

Позиция в строке subject с которой начинается поиск.

Если start указан и не является отрицательным значением, тогда strcspn() начнет обследование строки subject с позиции, указанной в start. 'a', символ в позиции 2 это 'c', и так далее.

Если start указан, но является отрицательным числом, то strspn() начнет обследование строки subject с позиции, указанной в параметре start,начиная с конца строки subject.

length

Длина фрагмента из subject для обследования.

Если start указан и не является отрицательным значением, тогда strcspn() начнет обследование строки subject с позиции, указанной в start. Например:в строке 'abcdef', символ в позиции 0 это 'a', символ в позиции 2 это 'c', и так далее.

Если start указан, но является отрицательным числом, то strspn() начнет обследование строки subject с позиции, указанной в параметре start,начиная с конца строки subject.

Возвращаемые значения

Возвращает длину начального фрагмента строки subject, которая состоит полностью из символов не включенных в параметр mask

Замечание:

Когда параметр start указан, возвращаемая длина определяется, начиная с этой позиции, а не с начала строки subject.

Примеры

Пример #1 Пример использования strcspn()

<?php
$a = strcspn('abcd',  'apple');
$b = strcspn('abcd',  'banana');
$c = strcspn('hello', 'l');
$d = strcspn('hello', 'world');
$e = strcspn('abcdhelloabcd', 'abcd', -9);
$f = strcspn('abcdhelloabcd', 'abcd', -9, -5);

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);
var_dump($f);
?>

Результат выполнения данного примера:

int(0)
int(0)
int(2)
int(2)
int(5)
int(4)

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strspn() - Возвращает длину участка в начале строки, полностью соответствующего маске


Удаляет HTML и PHP-теги из строки

  • « strcspn
  • stripcslashes »
  • PHP Manual
  • Обработка строк
  • Удаляет HTML и PHP-теги из строки

strip_tags

(PHP 4, PHP 5, PHP 7)

strip_tags — Удаляет HTML и PHP-теги из строки

Описание

string strip_tags ( string $str [, string $allowable_tags ] )

Эта функция пытается возвратить строку, из которой удалены все NULL-байты, HTML и PHP теги. Для удаления тегов используется тот же автомат, что и в функции fgetss().

Список параметров

str

Входная строка.

allowable_tags

Второй необязательный параметр может быть использован для указания тегов, которые не нужно удалять.

Замечание:

Комментарии HTML и PHP-теги также будут удалены. Это жестко записано в коде и не может быть изменено с помощью параметра allowable_tags.

Замечание:

В PHP 5.3.4 и новее, самозамыкающиеся (такие как <br/>) тэги XHTML игнорируются и только несамозакрывающиеся тэги должны быть использованы в allowable_tags. К примеру, для разрешения как <br>, так и <br/> нужно сделать следующее:

<?php
strip_tags($input, '<br>');
?>

Возвращаемые значения

Возвращает строку без тегов.

Список изменений

Версия | Описание
5.3.4 | strip_tags() игнорирует самозакрывающиеся тэги XHTML в allowable_tags.
5.0.0 | strip_tags() теперь безопасна для обработки бинарных данных.

Примеры

Пример #1 Пример использования strip_tags()

<?php
$text = '<p>Параграф.</p><!-- Комментарий --> <a href="#fragment">Еще текст</a>';
echo strip_tags($text);
echo "\n";

// Разрешаем <p> и <a>
echo strip_tags($text, '<p><a>');
?>

Результат выполнения данного примера:

Параграф. Еще текст
<p>Параграф.</p> <a href="#fragment">Еще текст</a>

Примечания

Внимание

Из-за того, что strip_tags() не проверяет валидность HTML, то частичные или сломанные теги могут послужить удалением большего количества текста или данных, чем ожидалось.

Внимание

Эта функция не изменяет атрибуты тегов, разрешенных с помощью allowable_tags, включая такие атрибуты как style и onmouseover, которые могут быть использованы озорными пользователями при посылке текста, отображаемого также и другим пользователям.

Замечание:

Имена тегов в HTML превышающие 1023 байта будут рассматриваться как невалидные независимо от параметра allowable_tags.

Смотрите также

  • htmlspecialchars() - Преобразует специальные символы в HTML-сущности


Удаляет экранирование символов, произведенное функцией addcslashes

  • « strip_tags
  • stripos »
  • PHP Manual
  • Обработка строк
  • Удаляет экранирование символов, произведенное функцией addcslashes

stripcslashes

(PHP 4, PHP 5, PHP 7)

stripcslashes — Удаляет экранирование символов, произведенное функцией addcslashes()

Описание

string stripcslashes ( string $str )

Удаляет экранирующие обратные слеши. Распознает экранирование в стиле C (\n, \r ..., восьмеричное и шестнадцатеричное представление).

Список параметров

str

Строка, с которой нужно убрать экранирование.

Возвращаемые значения

Возвращает неэкранированную строку.

Смотрите также

  • addcslashes() - Экранирует cтроку слешами в стиле языка C


Возвращает позицию первого вхождения подстроки без учета регистра

  • « stripcslashes
  • stripslashes »
  • PHP Manual
  • Обработка строк
  • Возвращает позицию первого вхождения подстроки без учета регистра

stripos

(PHP 5, PHP 7)

stripos — Возвращает позицию первого вхождения подстроки без учета регистра

Описание

mixed stripos ( string $haystack , string $needle [, int $offset = 0 ] )

Ищет позицию первого вхождения подстроки needle в строку haystack.

В отличие от strpos(), эта функция не учитывает регистр символов.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Заметьте, что needle может содержать строку из одного или более символов.

Если needle не является строкой, он приводится к целому и трактуется как код символа.

offset

Если этот параметр указан, то поиск будет начат с указанного количества символов с начала строки. Если задано отрицательное значение, отсчет позиции начала поиска будет произведен с конца строки.

Возвращаемые значения

Возвращает позицию, в которой находится искомая строка, относительно начала строки haystack (независимо от смещения (offset). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.

Возвращает FALSE, если искомая строка не найдена.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Примеры

Пример #1 Пример использования stripos()

<?php
$findme    = 'a';
$mystring1 = 'xyz';
$mystring2 = 'ABC';

$pos1 = stripos($mystring1, $findme);
$pos2 = stripos($mystring2, $findme);

// Конечно, 'a' не входит в 'xyz'
if ($pos1 === false) {
    echo "Строка '$findme' не найдена в строке '$mystring1'";
}

// Заметьте, что используется ===.  Использование == не даст верного
// результата, так как 'a' в нулевой позиции.
if ($pos2 !== false) {
    echo "Нашел '$findme' в '$mystring2' в позиции $pos2";
}
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • mb_stripos() - Регистронезависимый поиск позиции первого вхождения одной строки в другую
  • strpos() - Возвращает позицию первого вхождения подстроки
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strripos() - Возвращает позицию последнего вхождения подстроки без учета регистра
  • stristr() - Регистронезависимый вариант функции strstr
  • substr() - Возвращает подстроку
  • str_ireplace() - Регистронезависимый вариант функции str_replace


Удаляет экранирование символов

  • « stripos
  • stristr »
  • PHP Manual
  • Обработка строк
  • Удаляет экранирование символов

stripslashes

(PHP 4, PHP 5, PHP 7)

stripslashes — Удаляет экранирование символов

Описание

string stripslashes ( string $str )

Удаляет экранирующие символы.

Замечание:

Если включена директива magic_quotes_sybase, вместо обратных слешей будут удаляться двойные одинарные кавычки.

Функцию stripslashes() можно использовать, например, если директива конфигурации magic_quotes_gpc имеет значение on (она была включена по умолчанию в версиях до PHP 5.4), и экранирование символов не требуется. Например, данные не вставляются в базу данных, а просто выводятся в браузер.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает строку с вырезанными обратными слешами. (\' становится ' и т.п.) Двойные обратные слеши (\\) становятся одинарными (\).

Примеры

Пример #1 Пример использования stripslashes()

<?php
$str = "Ваc зовут O\'reilly?";

// выводит: Вас зовут O'reilly?
echo stripslashes($str);
?>

Замечание:

stripslashes() не рекурсивна. Если вы хотите применить ее к многомерному массиву, то вам необходимо использовать рекурсивную функцию.

Пример #2 Использование stripslashes() с массивом

<?php
function stripslashes_deep($value)
{
    $value = is_array($value) ?
                array_map('stripslashes_deep', $value) :
                stripslashes($value);

    return $value;
}

// Пример
$array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar"));
$array = stripslashes_deep($array);

// Вывод
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [0] => f'oo
    [1] => b'ar
    [2] => Array
        (
            [0] => fo'o
            [1] => b'ar
        )

)

Смотрите также

  • addslashes() - Экранирует строку с помощью слешей
  • get_magic_quotes_gpc() - Получение текущего значения настройки конфигурации magic_quotes_gpc


Регистронезависимый вариант функции strstr

  • « stripslashes
  • strlen »
  • PHP Manual
  • Обработка строк
  • Регистронезависимый вариант функции strstr

stristr

(PHP 4, PHP 5, PHP 7)

stristr — Регистронезависимый вариант функции strstr()

Описание

string stristr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

Возвращает всю строку haystack начиная с первого вхождения needle включительно.

Список параметров

haystack

Строка, в которой производится поиск

needle

Если needle не является строкой, он приводится к целому и трактуется как код символа.

before_needle

Если установлен в TRUE, stristr() возвращает часть строки haystack до первого вхождения needle (не включая needle).

needle и haystack обрабатываются без учета регистра.

Возвращаемые значения

Возвращает указанную подстроку. Если подстрока needle не найдена, возвращается FALSE.

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный параметр before_needle.
4.3.0 | stristr() теперь бинарно-безопасна.

Примеры

Пример #1 Пример использования stristr()

<?php
  $email = 'USER@EXAMPLE.com';
  echo stristr($email, 'e'); // выводит ER@EXAMPLE.com
  echo stristr($email, 'e', true); // Начиная с PHP 5.3.0, выводит US
?>

Пример #2 Проверка на вхождение строки

<?php
  $string = 'Hello World!';
  if(stristr($string, 'earth') === FALSE) {
    echo '"earth" не найдена в строке';
  }
// выводит: "earth" не найдена в строке
?>

Пример #3 Использование "нестроки" в поиске

<?php
  $string = 'APPLE';
  echo stristr($string, 97); // 97 = a в нижнем регистре
// выводит: APPLE
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strstr() - Находит первое вхождение подстроки
  • strrchr() - Находит последнее вхождение символа в строке
  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Возвращает длину строки

  • « stristr
  • strnatcasecmp »
  • PHP Manual
  • Обработка строк
  • Возвращает длину строки

strlen

(PHP 4, PHP 5, PHP 7)

strlen — Возвращает длину строки

Описание

int strlen ( string $string )

Возвращает длину строки string.

Список параметров

string

Строка (string), для которой измеряется длина.

Возвращаемые значения

Длина строки string в случае успеха, и 0, если string пуста.

Список изменений

Версия | Описание
5.3.0 | Ранние версии этой функции рассматривали массивы как строку Array, возвращая таким образом 5 в качестве длины этой строки, и вызывали ошибку уровня E_NOTICE.

Примеры

Пример #1 Пример использования strlen()

<?php
$str = 'abcdef';
echo strlen($str); // 6

$str = ' ab cd ';
echo strlen($str); // 7
?>

Примечания

Замечание:

Функция strlen() возвратит количество байт, а не число символов в строке.

Замечание:

Функция strlen() возвращает NULL при использовании на массивах, а также выводит ошибку уровня E_WARNING.

Смотрите также

  • count() - Подсчитывает количество элементов массива или что-то в объекте
  • grapheme_strlen() - Get string length in grapheme units
  • iconv_strlen() - Возвращает количество символов в строке
  • mb_strlen() - Получает длину строки


Сравнение строк без учета регистра с использованием алгоритма "natural order"

  • « strlen
  • strnatcmp »
  • PHP Manual
  • Обработка строк
  • Сравнение строк без учета регистра с использованием алгоритма "natural order"

strnatcasecmp

(PHP 4, PHP 5, PHP 7)

strnatcasecmp — Сравнение строк без учета регистра с использованием алгоритма "natural order"

Описание

int strnatcasecmp ( string $str1 , string $str2 )

Эта функция реализует алгоритм сравнения, упорядочивающий алфавитно-цифровые строки подобно тому, как это сделал бы человек. Эта функция подобна strnatcmp(), за исключением того, что сравнение происходит без учета регистра символов. Для получения дополнительной информации см. » Natural Order String Comparison

Список параметров

str1

Первая строка.

str2

Вторая строка.

Возвращаемые значения

Подобно другим функциям сравнения строк, данная функция возвращает отрицательное число, если str1 меньше, чем str2, положительное число, если str1 больше, чем str2, и 0 если строки равны.

Смотрите также

  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • strcmp() - Бинарно-безопасное сравнение строк
  • strcasecmp() - Бинарно-безопасное сравнение строк без учета регистра
  • substr() - Возвращает подстроку
  • stristr() - Регистронезависимый вариант функции strstr
  • strncasecmp() - Бинарно-безопасное сравнение первых n символов строк без учета регистра
  • strncmp() - Бинарно-безопасное сравнение первых n символов строк
  • strstr() - Находит первое вхождение подстроки
  • setlocale() - Устанавливает настройки локали


Сравнение строк с использованием алгоритма "natural order"

  • « strnatcasecmp
  • strncasecmp »
  • PHP Manual
  • Обработка строк
  • Сравнение строк с использованием алгоритма "natural order"

strnatcmp

(PHP 4, PHP 5, PHP 7)

strnatcmp — Сравнение строк с использованием алгоритма "natural order"

Описание

int strnatcmp ( string $str1 , string $str2 )

Эта функция реализует алгоритм сравнения, упорядочивающий алфавитно-цифровые строки подобно тому, как это сделал бы человек, такой алгоритм называется "natural ordering". Сравнение происходит с учетом регистра.

Список параметров

str1

Первая строка.

str2

Вторая строка.

Возвращаемые значения

Подобно другим функциям сравнения строк, данная функция возвращает отрицательное число, если str1 меньше, чем str2, положительное число, если str1 больше, чем str2, и 0 если строки равны.

Примеры

Пример, показывающий отличие этого алгоритма от обычных функций сравнения (используемых в strcmp()), приведен ниже:

<?php
$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");
echo "Стандартный алгоритм сравнения\n";
usort($arr1, "strcmp");
print_r($arr1);
echo "\nАлгоритм \"natural order\"\n";
usort($arr2, "strnatcmp");
print_r($arr2);
?>

Результат выполнения данного примера:

Стандартный алгоритм сравнения
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)

Алгоритм "natural order"
Array
(
    [0] => img1.png
    [1] => img2.png
    [2] => img10.png
    [3] => img12.png
)
Для получения дополнительной информации см. » Natural Order String Comparison

Смотрите также

  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • strcasecmp() - Бинарно-безопасное сравнение строк без учета регистра
  • substr() - Возвращает подстроку
  • stristr() - Регистронезависимый вариант функции strstr
  • strcmp() - Бинарно-безопасное сравнение строк
  • strncmp() - Бинарно-безопасное сравнение первых n символов строк
  • strncasecmp() - Бинарно-безопасное сравнение первых n символов строк без учета регистра
  • strnatcasecmp() - Сравнение строк без учета регистра с использованием алгоритма "natural order"
  • strstr() - Находит первое вхождение подстроки
  • natsort() - Сортирует массив, используя алгоритм "natural order"
  • natcasesort() - Сортирует массив, используя алгоритм "natural order" без учета регистра символов


Бинарно-безопасное сравнение первых n символов строк без учета регистра

  • « strnatcmp
  • strncmp »
  • PHP Manual
  • Обработка строк
  • Бинарно-безопасное сравнение первых n символов строк без учета регистра

strncasecmp

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

strncasecmp — Бинарно-безопасное сравнение первых n символов строк без учета регистра

Описание

int strncasecmp ( string $str1 , string $str2 , int $len )

Эта функция подобна strcasecmp(), за исключением того, что можно указать максимальное количество символов в обеих строках, которые будут участвовать в сравнении.

Список параметров

str1

Первая строка.

str2

Вторая строка.

len

Количество символов, участвующих в сравнении.

Возвращаемые значения

Возвращает отрицательное число, если str1 меньше, чем str2, положительное число, если str1 больше, чем str2, и 0 если строки равны.

Смотрите также

  • strncmp() - Бинарно-безопасное сравнение первых n символов строк
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • substr_compare() - Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
  • strcasecmp() - Бинарно-безопасное сравнение строк без учета регистра
  • stristr() - Регистронезависимый вариант функции strstr
  • substr() - Возвращает подстроку


Бинарно-безопасное сравнение первых n символов строк

  • « strncasecmp
  • strpbrk »
  • PHP Manual
  • Обработка строк
  • Бинарно-безопасное сравнение первых n символов строк

strncmp

(PHP 4, PHP 5, PHP 7)

strncmp — Бинарно-безопасное сравнение первых n символов строк

Описание

int strncmp ( string $str1 , string $str2 , int $len )

Эта функция подобна strcmp(), за исключением того, что можно указать максимальное количество символов в обоих строках, которые будут участвовать в сравнении.

Эта функция учитывает регистр символов.

Список параметров

str1

Первая строка.

str2

Вторая строка.

len

Количество символов, используемых в сравнении.

Возвращаемые значения

Возвращает отрицательное число, если str1 меньше, чем str2, положительное число, если str1 больше, чем str2, и 0 если строки равны.

Смотрите также

  • strncasecmp() - Бинарно-безопасное сравнение первых n символов строк без учета регистра
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • substr_compare() - Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра
  • strcmp() - Бинарно-безопасное сравнение строк
  • strstr() - Находит первое вхождение подстроки
  • substr() - Возвращает подстроку


Ищет в строке любой символ из заданного набора

  • « strncmp
  • strpos »
  • PHP Manual
  • Обработка строк
  • Ищет в строке любой символ из заданного набора

strpbrk

(PHP 5, PHP 7)

strpbrk — Ищет в строке любой символ из заданного набора

Описание

string strpbrk ( string $haystack , string $char_list )

strpbrk() ищет в строке haystack символы из набора char_list.

Список параметров

haystack

Строка, в которой производится поиск char_list.

char_list

Данный параметр чувствителен к регистру.

Возвращаемые значения

Возвращает строку, начиная с найденного символа, или FALSE, если он не был найден.

Примеры

Пример #1 Пример использования strpbrk()

<?php

$text = 'This is a Simple text.';

// Этот код выдаст "is is a Simple text.", т.к. символ 'i' встретится раньше
echo strpbrk($text, 'mi');

// Этот код выдаст "Simple text.", т.к. символы чувствительны к регистру
echo strpbrk($text, 'S');
?>

Смотрите также

  • strpos() - Возвращает позицию первого вхождения подстроки
  • strstr() - Находит первое вхождение подстроки
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Возвращает позицию первого вхождения подстроки

  • « strpbrk
  • strrchr »
  • PHP Manual
  • Обработка строк
  • Возвращает позицию первого вхождения подстроки

strpos

(PHP 4, PHP 5, PHP 7)

strpos — Возвращает позицию первого вхождения подстроки

Описание

mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

Ищет позицию первого вхождения подстроки needle в строку haystack.

Список параметров

haystack

Строка, в которой производится поиск

needle

Если needle не является строкой, он приводится к целому и трактуется как код символа.

offset

Если этот параметр указан, то поиск будет начат с указанного количества символов с начала строки. Если задано отрицательное значение, отсчет позиции начала поиска будет произведен с конца строки.

Возвращаемые значения

Возвращает позицию, в которой находится искомая строка, относительно начала строки haystack (независимо от смещения (offset). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.

Возвращает FALSE, если искомая строка не найдена.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset.

Примеры

Пример #1 Использование ===

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Заметьте, что используется ===.  Использование == не даст верного
// результата, так как 'a' находится в нулевой позиции.
if ($pos === false) {
    echo "Строка '$findme' не найдена в строке '$mystring'";
} else {
    echo "Строка '$findme' найдена в строке '$mystring'";
    echo " в позиции $pos";
}
?>

Пример #2 Использование !==

<?php
$mystring = 'abc';
$findme   = 'a';
$pos = strpos($mystring, $findme);

// Оператор !== также можно использовать.  Использование != не даст верного
// результата, так как 'a' находится в нулевой позиции. Выражение (0 != false) приводится
// к false.
if ($pos !== false) {
     echo "Строка '$findme' найдена в строке '$mystring'";
         echo " в позиции $pos";
} else {
     echo "Строка '$findme' не найдена в строке '$mystring'";
}
?>

Пример #3 Использование смещения

<?php
// Можно искать символ, игнорируя символы до определенного смещения
$newstring = 'abcdef abcdef';
$pos = strpos($newstring, 'a', 1); // $pos = 7, не 0
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strripos() - Возвращает позицию последнего вхождения подстроки без учета регистра
  • strstr() - Находит первое вхождение подстроки
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • substr() - Возвращает подстроку
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Находит последнее вхождение символа в строке

  • « strpos
  • strrev »
  • PHP Manual
  • Обработка строк
  • Находит последнее вхождение символа в строке

strrchr

(PHP 4, PHP 5, PHP 7)

strrchr — Находит последнее вхождение символа в строке

Описание

string strrchr ( string $haystack , mixed $needle )

Возвращает подстроку строки haystack начиная с последнего вхождения needle до конца строки.

Список параметров

haystack

Строка, в которой производится поиск

needle

Если needle состоит более чем из одного символа, используется только первый символ. Это поведение отличается от strstr().

Если needle не является строкой, он приводится к целому и трактуется как код символа.

Возвращаемые значения

Функция возвращает фрагмент строки, или FALSE, если подстрока needle не найдена.

Список изменений

Версия | Описание
4.3.0 | Эта функция теперь бинарно-безопасна.

Примеры

Пример #1 Пример использования strrchr()

<?php
// получить последнюю директорию из $PATH
$dir = substr(strrchr($PATH, ":"), 1);

// получить все после последнего перевода строки
$text = "Line 1\nLine 2\nLine 3";
$last = substr(strrchr($text, 10), 1 );
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strstr() - Находит первое вхождение подстроки
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке


Переворачивает строку задом наперед

  • « strrchr
  • strripos »
  • PHP Manual
  • Обработка строк
  • Переворачивает строку задом наперед

strrev

(PHP 4, PHP 5, PHP 7)

strrev — Переворачивает строку задом наперед

Описание

string strrev ( string $string )

Возвращает строку string, перевернутую задом наперед.

Список параметров

string

Переворачиваемая строка.

Возвращаемые значения

Возвращает перевернутую строку.

Примеры

Пример #1 Пример использования strrev()

<?php
echo strrev("Hello world!"); // выводит "!dlrow olleH"
?>


Возвращает позицию последнего вхождения подстроки без учета регистра

  • « strrev
  • strrpos »
  • PHP Manual
  • Обработка строк
  • Возвращает позицию последнего вхождения подстроки без учета регистра

strripos

(PHP 5, PHP 7)

strripos — Возвращает позицию последнего вхождения подстроки без учета регистра

Описание

int strripos ( string $haystack , string $needle [, int $offset = 0 ] )

Ищет позицию последнего вхождения подстроки needle в строку haystack.

В отличие от strrpos(), strripos() не учитывает регистр символов.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Если параметр needle не является строкой, то он будет преобразован к целому и обработан как код символа.

offset

Если указан, то поиск начнется с данного количества символов с начала строки. Если передано отрицательное значение, поиск начнется с указанного количества символов от конца строки, но по прежнему будет производится поиск последнего вхождения.

Возвращаемые значения

Возвращает номер позиции последнего вхождения needle относительно начала строки haystack (независимо от направления поиска и смещения (offset)). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.

Возвращает FALSE, если искомая строка не найдена.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример использования strripos()

<?php
$haystack = 'ababcd';
$needle   = 'aB';

$pos      = strripos($haystack, $needle);

if ($pos === false) {
    echo "К сожалению, ($needle) не найдена в ($haystack)";
} else {
    echo "Поздравляем!\n";
    echo "Последнее вхождение ($needle) найдено в ($haystack) в позиции ($pos)";
}
?>

Результат выполнения данного примера:

   Поздравляем!
   Последнее вхождение (aB) найдено в (ababcd) в позиции (2)

Смотрите также

  • strpos() - Возвращает позицию первого вхождения подстроки
  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • strrpos() - Возвращает позицию последнего вхождения подстроки в строке
  • strrchr() - Находит последнее вхождение символа в строке
  • stristr() - Регистронезависимый вариант функции strstr
  • substr() - Возвращает подстроку


Возвращает позицию последнего вхождения подстроки в строке

  • « strripos
  • strspn »
  • PHP Manual
  • Обработка строк
  • Возвращает позицию последнего вхождения подстроки в строке

strrpos

(PHP 4, PHP 5, PHP 7)

strrpos — Возвращает позицию последнего вхождения подстроки в строке

Описание

int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )

Ищет позицию последнего вхождения подстроки needle в строку haystack.

Список параметров

haystack

Строка, в которой производится поиск.

needle

Если needle не является строкой, то он приводится к целому и трактуется как код символа.

offset

Если указан, то поиск начнется с данного количества символов с начала строки. Если передано отрицательное значение, поиск начнется с указанного количества символов от конца строки и будет производится в обратном направлении.

Возвращаемые значения

Возвращает номер позиции последнего вхождения needle относительно начала строки haystack (независимо от направления поиска и смещения (offset)). Также обратите внимание на то, что позиция строки отсчитывается от 0, а не от 1.

Возвращает FALSE, если искомая строка не найдена.

Список изменений

Версия | Описание
5.0.0 | Параметр 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)
?>

Смотрите также

  • strpos() - Возвращает позицию первого вхождения подстроки
  • stripos() - Возвращает позицию первого вхождения подстроки без учета регистра
  • strripos() - Возвращает позицию последнего вхождения подстроки без учета регистра
  • strrchr() - Находит последнее вхождение символа в строке
  • substr() - Возвращает подстроку


Возвращает длину участка в начале строки, полностью соответствующего маске

  • « strrpos
  • strstr »
  • PHP Manual
  • Обработка строк
  • Возвращает длину участка в начале строки, полностью соответствующего маске

strspn

(PHP 4, PHP 5, PHP 7)

strspn — Возвращает длину участка в начале строки, полностью соответствующего маске

Описание

int strspn ( string $subject , string $mask [, int $start [, int $length ]] )

Возвращает длину участка от начала строки subject, содержащий только символы из mask.

Если параметры start и length не указаны, то будет исследована вся строка subject. Если они указаны, то эффект будет аналогичен вызову strspn(substr($subject, $start, $length) $mask) (подробнее см. функцию substr).

Строка кода:

<?php
$var = strspn("42 is the answer to the 128th question.", "1234567890");
?>
присвоит 2 переменной $var, так как "42" - это начальный участок строки subject, состоящий только из символов "1234567890".

Список параметров

subject

Исследуемая строка.

mask

Список из разрешенных символов.

start

Позиция начала поиска в subject.

Если start указан и неотрицателен, то strspn() начнет искать в строке subject начиная с позиции start. К примеру, в строке 'abcdef', символом с позицией 0 является 'a', символом с позицией 2 является 'c' и т.д.

Если start указан и отрицателен, то strspn() начнет поиск в строке subject с позиции, отстоящей на start символов с конца subject.

length

Длина исследуемого фрагмента subject.

Если length указан и неотрицателен, то строка subject будет исследована в течение length после стартовой позиции.

Если length указана и отрицательна, то строка subject будет исследована начиная со стартовой позиции до позиции, отстоящей на length символов с конца subject.

Возвращаемые значения

Возвращает длину первого участка subject, состоящего целиком из символов в mask.

Замечание:

Когда start указан, возращаемая длина строки определяется начиная с этой позиции, а не с начала строки subject.

Примеры

Пример #1 Пример использования strspn()

<?php
// subject не начинается ни из какого символа из mask
var_dump(strspn("foo", "o"));

// проверить два символа из subject начиная с позиции 1
var_dump(strspn("foo", "o", 1, 2));

// проверить один символ из subject начиная с позиции 1
var_dump(strspn("foo", "o", 1, 1));
?>

Результат выполнения данного примера:

int(0)
int(2)
int(1)

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strcspn() - Возвращает длину участка в начале строки, не соответствующего маске


Находит первое вхождение подстроки

  • « strspn
  • strtok »
  • PHP Manual
  • Обработка строк
  • Находит первое вхождение подстроки

strstr

(PHP 4, PHP 5, PHP 7)

strstr — Находит первое вхождение подстроки

Описание

string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

Возвращает подстроку строки haystack начиная с первого вхождения needle (и включая его) и до конца строки haystack.

Замечание:

Эта функция учитывает регистр символов. Для поиска без учета регистра используйте stristr().

Замечание:

Если нужно лишь определить, встречается ли подстрока needle в haystack, используйте более быструю и менее ресурсоемкую функцию strpos().

Список параметров

haystack

Входная строка.

needle

Если needle не является строкой, он приводится к целому и трактуется как код символа.

before_needle

Если установлен в TRUE, strstr() возвращает часть строки haystack до первого вхождения needle (исключая needle).

Возвращаемые значения

Возвращает часть строки, или FALSE, если needle не найдена.

Список изменений

Версия | Описание
5.3.0 | Добавлен необязательный параметр before_needle.
4.3.0 | strstr() теперь бинарно безопасна.

Примеры

Пример #1 Пример использования strstr()

<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // выводит @example.com

$user = strstr($email, '@', true); // Начиная с PHP 5.3.0
echo $user; // выводит name
?>

Смотрите также

  • stristr() - Регистронезависимый вариант функции strstr
  • strrchr() - Находит последнее вхождение символа в строке
  • strpos() - Возвращает позицию первого вхождения подстроки
  • strpbrk() - Ищет в строке любой символ из заданного набора
  • preg_match() - Выполняет проверку на соответствие регулярному выражению


Разбивает строку на токены

  • « strstr
  • strtolower »
  • PHP Manual
  • Обработка строк
  • Разбивает строку на токены

strtok

(PHP 4, PHP 5, PHP 7)

strtok — Разбивает строку на токены

Описание

string strtok ( string $str , string $token )
string strtok ( string $token )

strtok() разбивает строку str на подстроки (токены), используя в качестве разделителей символы из token. Например, строку "This is an example string" можно разбить на отдельные слова используя пробел в качестве разделителя.

Заметьте, что исходная строка передается только при первом вызове этой функции. Последующим вызовам передаются только разделители, так как эта функция сохраняет исходную строку и запоминает позицию в этой строке между вызовами. Для работы с новой строкой нужно снова вызвать функцию с двумя аргументами. Обратите внимание, что в параметре token можно использовать несколько разделителей. Строка будет делиться по любому найденному символу, присутствующему в этом параметре.

Список параметров

str

Строка (string), разбиваемая на подстроки (токены).

token

Разделитель строки str.

Возвращаемые значения

Токен (string).

Примеры

Пример #1 Пример использования strtok()

<?php
$string = "This is\tan example\nstring";
/* В качестве разделителей используем пробел, табуляцию и перевод строки */
$tok = strtok($string, " \n\t");

while ($tok !== false) {
    echo "Word=$tok<br />";
    $tok = strtok(" \n\t");
}
?>

Пример #2 Способ обработки пустых подстрок функцией strtok()

<?php
$first_token  = strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
?>

Результат выполнения данного примера:

    string(9) "something"
    bool(false)

Примечания

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Смотрите также

  • split() - Разбиение строки на массив по регулярному выражению
  • explode() - Разбивает строку с помощью разделителя


Преобразует строку в нижний регистр

  • « strtok
  • strtoupper »
  • PHP Manual
  • Обработка строк
  • Преобразует строку в нижний регистр

strtolower

(PHP 4, PHP 5, PHP 7)

strtolower — Преобразует строку в нижний регистр

Описание

string strtolower ( string $string )

Возвращает строку string, в которой все буквенные символы переведены в нижний регистр.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C", символ A не будет преобразован.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает строку в нижнем регистре.

Примеры

Пример #1 Пример использования strtolower()

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtolower($str);
echo $str; // выводит: mary had a little lamb and she loved it so
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strtoupper() - Преобразует строку в верхний регистр
  • ucfirst() - Преобразует первый символ строки в верхний регистр
  • ucwords() - Преобразует в верхний регистр первый символ каждого слова в строке
  • mb_strtolower() - Приведение строки к нижнему регистру


Преобразует строку в верхний регистр

  • « strtolower
  • strtr »
  • PHP Manual
  • Обработка строк
  • Преобразует строку в верхний регистр

strtoupper

(PHP 4, PHP 5, PHP 7)

strtoupper — Преобразует строку в верхний регистр

Описание

string strtoupper ( string $string )

Возвращает строку string, в которой все буквенные символы переведены в верхний регистр.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C", символ a не будет преобразован.

Список параметров

string

Входная строка.

Возвращаемые значения

Возвращает строку в верхнем регистре.

Примеры

Пример #1 Пример использования strtoupper()

<?php
$str = "Mary Had A Little Lamb and She LOVED It So";
$str = strtoupper($str);
echo $str; // выводит: MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strtolower() - Преобразует строку в нижний регистр
  • ucfirst() - Преобразует первый символ строки в верхний регистр
  • ucwords() - Преобразует в верхний регистр первый символ каждого слова в строке
  • mb_strtoupper() - Приведение строки к верхнему регистру


Преобразует заданные символы или заменяет подстроки

  • « strtoupper
  • substr_compare »
  • PHP Manual
  • Обработка строк
  • Преобразует заданные символы или заменяет подстроки

strtr

(PHP 4, PHP 5, PHP 7)

strtr — Преобразует заданные символы или заменяет подстроки

Описание

string strtr ( string $str , string $from , string $to )
string strtr ( string $str , array $replace_pairs )

Если указаны три аргумента, эта функция возвращает копию str, в которой все вхождения каждого символа (однобайтного) из from были заменены на соответствующий символ в параметре to, т.е. каждое вхождение из $from[$n] заменяется на $to[$n], где $n это корректное смещение строки в обоих аргументах.

Если длины строк from и to отличаются, "лишние" символы в более длинной строке не используются. Длина возвращаемого значения будет такой же, как и длина str.

strtr() может вызываться с двумя аргументами. В этом случае from должен быть массивом (array), в форме array('from' => 'to', ...). Функция возвратит строку, в которой все ключи массива будут заменены их элементами. strtr() в первую очередь заменяет более длинные ключи, причем одна и та же строка поиска используется только один раз.

В этом случае, ключи и значения могут иметь любую длину, за исключением того, что ключи не должны быть пустыми. Кроме того, длина возвращаемого значения может отличаться от str. Однако, стоит учесть тот факт, что эта функция максимально эффективна в том случае, если все ключи имеют одинаковый размер.

Список параметров

str

Заменяемая строка (string).

from

Строка (string), которая будет заменена на строку to.

to

Строка (string), заменяющая строку from.

replace_pairs

Параметр replace_pairs может быть использован вместо to и from, в этом случае он является массивом (array) и имеет форму array('from' => 'to', ...).

Возвращаемые значения

Возвращает строку (string) с произведенными в ней заменами.

Если replace_pairs содержит ключ, являющийся пустой строкой (""), то будет возвращено значение FALSE. Если str не является скаляром, то он не преобразуется в строку. Вместо этого выдается предупреждение и возвращается NULL.

Примеры

Пример #1 Пример использования strtr()

<?php
//В этой форме strtr() осуществляет побайтное преобразование
//Таким образом, здесь подразумевается однобайтная кодировка:
$addr = strtr($addr, "aao", "aao");
?>

Следующий пример демонстрирует поведение функции strtr() при вызове только с двумя аргументами. Обратите внимание на приоритет замен ("h" не используется, так как существуют более длинные совпадения) и как замененный текст больше не участвует в поиске.

Пример #2 Пример использования strtr() с двумя аргументами

<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>

Результат выполнения данного примера:

hello all, I said hi

Эти два режима довольно сильно различаются. При вызове strtr() с тремя аргументами заменяются байты, а при вызове с двумя аргументами могут быть заменены и более длинные подстроки.

Пример #3 Сравнение поведения функции strtr()

<?php
echo strtr("baab", "ab", "01"),"\n";

$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>

Результат выполнения данного примера:

1001
ba01

Смотрите также

  • str_replace() - Заменяет все вхождения строки поиска на строку замены
  • preg_replace() - Выполняет поиск и замену по регулярному выражению


Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра

  • « strtr
  • substr_count »
  • PHP Manual
  • Обработка строк
  • Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра

substr_compare

(PHP 5, PHP 7)

substr_compare — Бинарно-безопасное сравнение 2 строк со смещением, с учетом или без учета регистра

Описание

int substr_compare ( string $main_str , string $str , int $offset [, int $length [, bool $case_insensitivity = false ]] )

substr_compare() сравнивает строку main_str (начиная с позиции offset) со строкой str. В сравнении участвуют максимум length символов.

Список параметров

main_str

Основная сравниваемая строка.

str

Следующая сравниваемая строка.

offset

Стартовая позиция сравнения. Если отрицательна, то обозначает смещение с конца строки.

length

Длина сравнения. По умолчанию используется максимальная из длин str и main_str минус offset.

case_insensitivity

Если case_sensitivity имеет значение TRUE, сравнение выполняется с учетом регистра.

Возвращаемые значения

Возвращает отрицательное число, если строка main_str (начиная с символа offset) меньше, чем str; положительное число, если она больше str; 0 если строки равны. Если offset больше или равен длине main_str или length передан и меньше 1 (до версии PHP 5.6), substr_compare() выводит предупреждение и возвращает FALSE.

Список изменений

Версия | Описание
5.6.0 | length теперь может быть равной 0.
5.1.0 | Добавлена возможность использования отрицательных значений в offset.

Примеры

Пример #1 Пример использования substr_compare()

<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // предупреждение
?>

Смотрите также

  • strncmp() - Бинарно-безопасное сравнение первых n символов строк


Возвращает число вхождений подстроки

  • « substr_compare
  • substr_replace »
  • PHP Manual
  • Обработка строк
  • Возвращает число вхождений подстроки

substr_count

(PHP 4, PHP 5, PHP 7)

substr_count — Возвращает число вхождений подстроки

Описание

int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )

substr_count() возвращает число вхождений подстроки needle в строку haystack. Заметьте, что параметр needle чувствителен к регистру.

Замечание:

Эта функция не подсчитывает перекрывающиеся подстроки. Смотрите пример ниже!

Список параметров

haystack

Строка, в которой ведется поиск

needle

Искомая подстрока

offset

Смещение начала отсчета. Если задано отрицательное значение, отсчет позиции будет произведен с конца строки.

length

Максимальная длина строки в которой будет производится поиск подстроки после указанного смещения. Если сумма смещения и максимальной длины будет больше длины haystack, то будет выведено предупреждение. Отрицательное значение будет отсчитываться с конца haystack.

Возвращаемые значения

Эта функция возвращает integer.

Список изменений

Версия | Описание
7.1.0 | Добавлена поддержка отрицательных значений offset и length.
5.1.0 | Добавлены параметры offset и length

Примеры

Пример #1 Пример использования substr_count()

<?php
$text = 'This is a test';
echo strlen($text); // 14

echo substr_count($text, 'is'); // 2

// строка уменьшается до 's is a test', поэтому вывод будет 1
echo substr_count($text, 'is', 3);

// текст уменьшается до 's i', поэтому вывод будет 0
echo substr_count($text, 'is', 3, 3);

// генерирует предупреждение, так как  5+10 > 14
echo substr_count($text, 'is', 5, 10);

// выводит только 1, т.к. перекрывающиеся подстроки не учитываются
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');
?>

Смотрите также

  • count_chars() - Возвращает информацию о символах, входящих в строку
  • strpos() - Возвращает позицию первого вхождения подстроки
  • substr() - Возвращает подстроку
  • strstr() - Находит первое вхождение подстроки


Заменяет часть строки

  • « substr_count
  • substr »
  • PHP Manual
  • Обработка строк
  • Заменяет часть строки

substr_replace

(PHP 4, PHP 5, PHP 7)

substr_replace — Заменяет часть строки

Описание

mixed substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] )

substr_replace() заменяет часть строки string, начинающуюся с символа с порядковым номером start и (необязательной) длиной length, строкой replacement и возвращает результат.

Список параметров

string

Входная строка.

Также можно указать массив строк, в этом случае замены будут происходить с каждой предоставленной строкой. В этом случае параметры replacement, start и length могут быть как скалярными значениями - в этом случае эти значения будут применены к каждой строке, так и массивами - в этом случае соответствующие элементы массивов будут применены к каждой предоставленной строке.

replacement

Строка замены.

start

Если start положителен, замена начинается с символа с порядковым номером start строки string.

Если start отрицателен, замена начинается с символа с порядковым номером start, считая от конца строки string.

length

Если аргумент положителен, то он представляет собой длину заменяемой подстроки в строке string. Если этот аргумент отрицательный, он определяет количество символов от конца строки string, на которых заканчивается замена. Этот аргумент необязателен и по умолчанию равен strlen(string);, т.е. замена до конца строки string. Разумеется, если length равен нулю, то это эквивалентно вставке replacement в string на указанной позиции start.

Возвращаемые значения

Возвращает результирующую строку. Если string является массивом, то возвращает массив.

Примеры

Пример #1 Простой пример использования substr_replace()

<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Оригинал: $var<hr />\n";

/* Обе следующих строки заменяют всю строку $var на 'bob'. */
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";

/* Вставляет 'bob' в начало $var. */
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";

/* Обе следующих строки заменяют 'MNRPQR' в $var на 'bob'. */
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";

/* Удаляет 'MNRPQR' из $var. */
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>

Пример #2 Использование substr_replace() для одновременной множественной замены строк

<?php
$input = array('A: XXX', 'B: XXX', 'C: XXX');

// Простой случай: заменяем XXX на YYY в каждой строке.
echo implode('; ', substr_replace($input, 'YYY', 3, 3))."\n";

// Более сложный случай с уникальными заменами.
$replace = array('AAA', 'BBB', 'CCC');
echo implode('; ', substr_replace($input, $replace, 3, 3))."\n";

// Замены с разными количествами символов.
$length = array(1, 2, 3);
echo implode('; ', substr_replace($input, $replace, 3, $length))."\n";
?>

Результат выполнения данного примера:

A: YYY; B: YYY; C: YYY
A: AAA; B: BBB; C: CCC
A: AAAXX; B: BBBX; C: CCC

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • str_replace() - Заменяет все вхождения строки поиска на строку замены
  • substr() - Возвращает подстроку
  • Доступ к символу в строке и его изменение


Возвращает подстроку

  • « substr_replace
  • trim »
  • PHP Manual
  • Обработка строк
  • Возвращает подстроку

substr

(PHP 4, PHP 5, PHP 7)

substr — Возвращает подстроку

Описание

string substr ( string $string , int $start [, int $length ] )

Возвращает подстроку строки string, начинающейся с start символа по счету и длиной length символов.

Список параметров

string

Входная строка. Должна содержать хотя бы один символ.

start

Если start неотрицателен, возвращаемая подстрока начинается с позиции start от начала строки, считая от нуля. Например, в строке 'abcdef', в позиции 0 находится символ 'a', в позиции 2 - символ 'c', и т.д.

Если start отрицательный, возвращаемая подстрока начинается с позиции, отстоящей на start символов от конца строки string.

Если string меньше чем start символов, будет возвращено FALSE.

Пример #1 Использование отрицательного параметра start

<?php
$rest = substr("abcdef", -1);    // возвращает "f"
$rest = substr("abcdef", -2);    // возвращает "ef"
$rest = substr("abcdef", -3, 1); // возвращает "d"
?>

length

Если length положительный, возвращаемая строка будет не длиннее length символов, начиная с параметраstart (в зависимости от длины string).

Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string (после того как будет вычислена стартовая позиция, если start отрицателен). Если при этом позиция начала подстроки, определяемая аргументом start, находится в отброшенной части строки или за ней, возвращается FALSE.

Если указан параметр length и является одним из 0, FALSE или NULL, то будет возвращена пустая строка.

Если параметр length опущен, то будет возвращена подстрока, начинающаяся с позиции, указанной параметром start и длящейся до конца строки.

Пример #2 Использование отрицательного параметра length

<?php
$rest = substr("abcdef", 0, -1);  // возвращает "abcde"
$rest = substr("abcdef", 2, -1);  // возвращает "cde"
$rest = substr("abcdef", 4, -4);  // возвращает false
$rest = substr("abcdef", -3, -1); // возвращает "de"
?>

Возвращаемые значения

Возвращает извлеченную часть параметра string; или FALSE в случае возникновения ошибки или пустую строку.

Список изменений

Версия | Описание
7.0.0 | Если длина строки string равна количеству символов, указанному в start, то возвращается пустая строка. До этой версии в этом случае возвращалась FALSE.
5.2.2 - 5.2.6 | Если параметр start указывает на позицию с отрицательной обрезкой, возвращается FALSE. Другие версии возвращают строку с начала.

Примеры

Пример #3 Базовое использование substr()

<?php
echo substr('abcdef', 1);     // bcdef
echo substr('abcdef', 1, 3);  // bcd
echo substr('abcdef', 0, 4);  // abcd
echo substr('abcdef', 0, 8);  // abcdef
echo substr('abcdef', -1, 1); // f

// Получить доступ к отдельному символу в строке
// можно также с помощью "квадратных скобок"
$string = 'abcdef';
echo $string[0];                 // a
echo $string[3];                 // d
echo $string[strlen($string)-1]; // f

?>

Пример #4 substr() и приведение типов

<?php
class apple {
    public function __toString() {
        return "green";
    }
}

echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>

Результат выполнения данного примера в PHP 7:

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) ''
6) ''
7) '1200'

Результат выполнения данного примера в PHP 5:

1) 'pe'
2) '54'
3) 'gr'
4) '1'
5) false
6) false
7) '1200'

Ошибки

Возвращает FALSE в случае ошибки.

<?php
var_dump(substr('a', 2)); // bool(false)
?>

Смотрите также

  • strrchr() - Находит последнее вхождение символа в строке
  • substr_replace() - Заменяет часть строки
  • preg_match() - Выполняет проверку на соответствие регулярному выражению
  • trim() - Удаляет пробелы (или другие символы) из начала и конца строки
  • mb_substr() - Возвращает часть строки
  • wordwrap() - Переносит строку по указанному количеству символов
  • Посимвольный доступ и изменение строки


Удаляет пробелы (или другие символы) из начала и конца строки

  • « substr
  • ucfirst »
  • PHP Manual
  • Обработка строк
  • Удаляет пробелы (или другие символы) из начала и конца строки

trim

(PHP 4, PHP 5, PHP 7)

trim — Удаляет пробелы (или другие символы) из начала и конца строки

Описание

string trim ( string $str [, string $character_mask = " \t\n\r\0\x0B" ] )

Эта функция возвращает строку str с удаленными из начала и конца строки пробелами. Если второй параметр не передан, trim() удаляет следующие символы:

  • " " (ASCII 32 (0x20)), обычный пробел.
  • "\t" (ASCII 9 (0x09)), символ табуляции.
  • "\n" (ASCII 10 (0x0A)), символ перевода строки.
  • "\r" (ASCII 13 (0x0D)), символ возврата каретки.
  • "\0" (ASCII 0 (0x00)), NUL-байт.
  • "\x0B" (ASCII 11 (0x0B)), вертикальная табуляция.

Список параметров

str

Обрезаемая строка (string).

character_mask

Можно также задать список символов для удаления с помощью необязательного аргумента character_mask. Просто перечислите все символы, которые вы хотите удалить. Можно указать конструкцию .. для обозначения диапазона символов.

Возвращаемые значения

Обрезаемая строка.

Примеры

Пример #1 Пример использования trim()

<?php

$text   = "\t\tThese are a few words :) ...  ";
$binary = "\x09Example string\x0A";
$hello  = "Hello World";
var_dump($text, $binary, $hello);

print "\n";

$trimmed = trim($text);
var_dump($trimmed);

$trimmed = trim($text, " \t.");
var_dump($trimmed);

$trimmed = trim($hello, "Hdle");
var_dump($trimmed);

$trimmed = trim($hello, 'HdWr');
var_dump($trimmed);

// удаляем управляющие ASCII-символы с начала и конца $binary
// (от 0 до 31 включительно)
$clean = trim($binary, "\x00..\x1F");
var_dump($clean);

?>

Результат выполнения данного примера:

string(32) "        These are a few words :) ...  "
string(16) "    Example string
"
string(11) "Hello World"

string(28) "These are a few words :) ..."
string(24) "These are a few words :)"
string(5) "o Wor"
string(9) "ello Worl"
string(14) "Example string"

Пример #2 Обрезание значений массива с помощью trim()

<?php
function trim_value(&$value)
{
    $value = trim($value);
}

$fruit = array('apple','banana ', ' cranberry ');
var_dump($fruit);

array_walk($fruit, 'trim_value');
var_dump($fruit);

?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(7) "banana "
  [2]=>
  string(11) " cranberry "
}
array(3) {
  [0]=>
  string(5) "apple"
  [1]=>
  string(6) "banana"
  [2]=>
  string(9) "cranberry"
}

Примечания

Замечание: Возможные трюки: удаление символов из середины строки

Так как trim() удаляет символы с начала и конца строки string, то удаление (или неудаление) символов из середины строки может ввести в недоумение. trim('abc', 'bad') удалит как 'a', так и 'b', потому что удаление 'a' сдвинет 'b' к началу строки, что также позволит ее удалить. Вот почему это "работает", тогда как trim('abc', 'b') очевидно нет.

Смотрите также

  • ltrim() - Удаляет пробелы (или другие символы) из начала строки
  • rtrim() - Удаляет пробельные (или другие символы) из конца строки
  • str_replace() - Заменяет все вхождения строки поиска на строку замены


Преобразует первый символ строки в верхний регистр

  • « trim
  • ucwords »
  • PHP Manual
  • Обработка строк
  • Преобразует первый символ строки в верхний регистр

ucfirst

(PHP 4, PHP 5, PHP 7)

ucfirst — Преобразует первый символ строки в верхний регистр

Описание

string ucfirst ( string $str )

Возвращает строку str, в которой первый символ переведен в верхний регистр, если этот символ является буквой.

Принадлежность того или иного символа к буквенным определяется с учетом текущей локали. Это означает, что, например, в используемой по умолчанию локали "C", символ a не будет преобразован.

Список параметров

str

Входная строка.

Возвращаемые значения

Возвращает результирующую строку.

Примеры

Пример #1 Пример использования ucfirst()

<?php
$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!

$bar = 'HELLO WORLD!';
$bar = ucfirst($bar);             // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>

Смотрите также

  • lcfirst() - Преобразует первый символ строки в нижний регистр
  • strtolower() - Преобразует строку в нижний регистр
  • strtoupper() - Преобразует строку в верхний регистр
  • ucwords() - Преобразует в верхний регистр первый символ каждого слова в строке


Преобразует в верхний регистр первый символ каждого слова в строке

  • « ucfirst
  • vfprintf »
  • PHP Manual
  • Обработка строк
  • Преобразует в верхний регистр первый символ каждого слова в строке

ucwords

(PHP 4, PHP 5, PHP 7)

ucwords — Преобразует в верхний регистр первый символ каждого слова в строке

Описание

string ucwords ( string $str [, string $delimiters = " \t\r\n\f\v" ] )

Возвращает строку str, в которой первый символ каждого слова переведен в верхний регистр, если этот символ является буквой.

Словом, при этом, является любая последовательность символов, следуюая напосредственно за любым из символов, перечисленных в параметре delimiters (по-умолчанию это пробел, разрыв страницы, перевод строки, возврат каретки, горизонтальная или вертикальная табуляция).

Список параметров

str

Входная строка.

delimiters

Необязательный параметр delimiters содержит символы разделителей слов.

Возвращаемые значения

Возвращает модифицированную строку.

Список изменений

Версия | Описание
5.4.32, 5.5.16 | Добавлен параметр delimiters.

Примеры

Пример #1 Пример использования ucwords()

<?php
$foo = 'hello world!';
$foo = ucwords($foo);             // Hello World!

$bar = 'HELLO WORLD!';
$bar = ucwords($bar);             // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>

Пример #2 Пример ucwords() с заданным разделителем

<?php
$foo = 'hello|world!';
$bar = ucwords($foo);             // Hello|world!

$baz = ucwords($foo, "|");        // Hello|World!
?>

Примечания

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Смотрите также

  • strtoupper() - Преобразует строку в верхний регистр
  • strtolower() - Преобразует строку в нижний регистр
  • ucfirst() - Преобразует первый символ строки в верхний регистр
  • mb_convert_case() - Производит смену регистра символов в строке


Записывает отформатированную строку в поток

  • « ucwords
  • vprintf »
  • PHP Manual
  • Обработка строк
  • Записывает отформатированную строку в поток

vfprintf

(PHP 5, PHP 7)

vfprintf — Записывает отформатированную строку в поток

Описание

int vfprintf ( resource $handle , string $format , array $args )

Записывает строку, отформатированную в соответствии с параметром format в поток handle.

Данная функция похожа на fprintf(), но принимает не переменное число аргументов, а массив.

Список параметров

handle

format

Описание параметра format смотрите в документации к функции sprintf().

args

Возвращаемые значения

Возвращает длину выведенной строки.

Примеры

Пример #1 vfprintf(): дополнение нулями целых чисел

<?php
if (!($fp = fopen('date.txt', 'w')))
    return;

vfprintf($fp, "%04d-%02d-%02d", array($year, $month, $day));
// запишет дату в формате ISO в date.txt
?>

Смотрите также

  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку
  • sscanf() - Разбирает строку в соответствии с заданным форматом
  • fscanf() - Обрабатывает данные из файла в соответствии с форматом
  • vsprintf() - Возвращает отформатированную строку
  • number_format() - Форматирует число с разделением групп


Выводит отформатированную строку

  • « vfprintf
  • vsprintf »
  • PHP Manual
  • Обработка строк
  • Выводит отформатированную строку

vprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

vprintf — Выводит отформатированную строку

Описание

int vprintf ( string $format , array $args )

Выводит значения массива, отформатированные в соответствии с аргументом format, описанном в документации функции sprintf().

Эта функция подобна printf(), но она принимает не переменное число аргументов, а массив.

Список параметров

format

Описание параметра format смотрите в документации к функции sprintf().

args

Возвращаемые значения

Возвращает длину выведенной строки.

Примеры

Пример #1 vprintf(): дополнение нулями целых чисел

<?php
vprintf("%04d-%02d-%02d", explode('-', '1988-8-1')); // 1988-08-01
?>

Смотрите также

  • printf() - Выводит отформатированную строку
  • sprintf() - Возвращает отформатированную строку
  • vsprintf() - Возвращает отформатированную строку


Возвращает отформатированную строку

  • « vprintf
  • wordwrap »
  • PHP Manual
  • Обработка строк
  • Возвращает отформатированную строку

vsprintf

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

vsprintf — Возвращает отформатированную строку

Описание

string vsprintf ( string $format , array $args )

Эта функция подобна sprintf(), но она принимает не переменное число аргументов, а массив.

Список параметров

format

Описание параметра format смотрите в документации к функции sprintf().

args

Возвращаемые значения

Возвращает значения массива в виде строки, отформатированные в соответствии с параметром format, описанном в документации к функции sprintf().

Примеры

Пример #1 vsprintf(): дополнение нулями целых чисел

<?php
print vsprintf("%04d-%02d-%02d", explode('-', '1988-8-1')); // 1988-08-01
?>

Смотрите также

  • sprintf() - Возвращает отформатированную строку
  • vprintf() - Выводит отформатированную строку


Переносит строку по указанному количеству символов

  • « vsprintf
  • Список изменений »
  • PHP Manual
  • Обработка строк
  • Переносит строку по указанному количеству символов

wordwrap

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

wordwrap — Переносит строку по указанному количеству символов

Описание

string wordwrap ( string $str [, int $width = 75 [, string $break = "\n" [, bool $cut = false ]]] )

Переносит строку по указанному количеству символов.

Список параметров

str

Входная строка.

width

Количество символов, по которым строка будет перенесена.

break

Символ переноса строки можно указать с помощью необязательного параметра break.

cut

Если параметр cut установлен в TRUE, строка всегда будет переноситься на указанной ширине width или раньше. Поэтому, если исходная строка содержит слово длиннее заданной ширины строки, то оно будет разорвано. (Смотрите второй пример). Если установлен в FALSE, функция не разрезает слово даже если width меньше длины слова.

Возвращаемые значения

Возвращает строку, со вставленными символами переноса на указанной длине.

Примеры

Пример #1 Пример использования wordwrap()

<?php
$text = "The quick brown fox jumped over the lazy dog.";
$newtext = wordwrap($text, 20, "<br />\n");

echo $newtext;
?>

Результат выполнения данного примера:

The quick brown fox<br />
jumped over the lazy<br />
dog.

Пример #2 Пример использования wordwrap()

<?php
$text = "A very long woooooooooooord.";
$newtext = wordwrap($text, 8, "\n", true);

echo "$newtext\n";
?>

Результат выполнения данного примера:

A very
long
wooooooo
ooooord.

Пример #3 wordwrap() example

<?php
$text = "A very long woooooooooooooooooord. and something";
$newtext = wordwrap($text, 8, "\n", false);

echo "$newtext\n";
?>

Результат выполнения данного примера:

A very
long
woooooooooooooooooord.
and
something

Смотрите также

  • nl2br() - Вставляет HTML-код разрыва строки перед каждым переводом строки
  • chunk_split() - Разбивает строку на фрагменты


Список изменений

Следующие изменения были произведены с классами/функциями/методами данного расширения.

Version | Function | Description
7.1.0 | stripos | Добавлена поддержка отрицательных значений offset.
 | strpos | Добавлена поддержка отрицательных значений offset.
 | substr_count | Добавлена поддержка отрицательных значений offset и length.
7.0.0 | setlocale | Удалена поддержка для параметра category передаваемого как строка. С текущей версии можно пользоваться только константами LC_*.
 | substr | Если длина строки string равна количеству символов, указанному в start, то возвращается пустая строка. До этой версии в этом случае возвращалась FALSE.
5.6.5 | crypt | Теперь, если в параметр salt передано неправильное значение "*0", то теперь возвращается "*1" согласно другим криптографическим реализациям. До этой версии PHP 5.6 возвращал DES хэш.
5.6.0 | crypt | Если параметр salt пропущен, то бросается предупреждение E_NOTICE.
 | html_entity_decode | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
 | htmlentities | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
 | htmlspecialchars | Значение по умолчанию для параметра encoding было изменено на значение конфигурационной опции default_charset.
 | substr_compare | length теперь может быть равной 0.
5.5.21 | crypt | Теперь, если в параметр salt передано неправильное значение "*0", то теперь возвращается "*1" согласно другим криптографическим реализациям. До этой версии PHP 5.5 (и другие ветки) возвращал DES хэш.
5.5.1 | hex2bin | Если входная строка не является правильной шестнадцатеричной строкой, то будет выброшено предупреждение.
5.4.32, 5.5.16 | ucwords | Добавлен параметр delimiters.
5.4.4 | hex2bin | Если строка имеет нечетную длину, выбрасывается предупреждение. В PHP 5.4.0 такая строка принималась, а последний байт просто обрезался.
5.4.0 | get_html_translation_table | Значение по умолчанию для параметра encoding было изменено на UTF-8.
 | get_html_translation_table | Были добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
 | html_entity_decode | Кодировка по умолчанию сменилась с ISO-8859-1 на UTF-8.
 | html_entity_decode | Были добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
 | htmlentities | The constants ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
 | htmlentities | Значение по умолчанию для параметра encoding было изменено на UTF-8.
 | htmlspecialchars | Добавлены константы ENT_SUBSTITUTE, ENT_DISALLOWED, ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
 | htmlspecialchars | Значение по умолчанию для параметра encoding было изменено на UTF-8.
 | htmlspecialchars_decode | Добавлены константы ENT_HTML401, ENT_XML1, ENT_XHTML и ENT_HTML5.
 | number_format | Функция поддерживает многобайтную строку в качестве параметров dec_point и thousands_sep. В предыдущих версиях в качестве разделителя использовался только первый байт из каждого параметра.
5.3.7 | crypt | Добавлены $2x$ и $2y$ режимы Blowfish для предотвращения возможных "high-bit" атак.
5.3.4 | get_html_translation_table | Добавлен параметр encoding.
 | strip_tags | strip_tags игнорирует самозакрывающиеся тэги XHTML в allowable_tags.
5.3.2 | crypt | Добавлено хэширование алгоритмами SHA-256 и SHA-512, основанное на реализации Ulrich Drepper.
 | crypt | Исправлено поведение Blowfish при некорректных раундах: теперь возвращается "ошибочная" строка ("*0" или "*1") вместо отката к использованию DES.
5.3.0 | crypt | PHP теперь использует собственную реализацию MD5, стандартного DES, расширенного DES и Blowfish алгоритмов, которые будут использованы в случае отсутствия их поддержки в системе.
 | htmlentities | Добавлена константа ENT_IGNORE.
 | htmlspecialchars | Добавлена константа ENT_IGNORE.
 | nl2br | Добавлен необязательный параметр is_xhtml.
 | setlocale | Эта функция в настоящее время бросает уведомления E_DEPRECATED, если строка передается в параметре category вместо одной из констант LC_*.
 | stristr | Добавлен необязательный параметр before_needle.
 | strlen | Ранние версии этой функции рассматривали массивы как строку Array, возвращая таким образом 5 в качестве длины этой строки, и вызывали ошибку уровня E_NOTICE.
 | strstr | Добавлен необязательный параметр before_needle.
5.2.5 | addcslashes | Добавлены экранирующие последовательности \v и \f.
5.2.3 | htmlentities | Добавлен параметр double_encode.
 | htmlspecialchars | Добавлен параметр double_encode.
5.2.2 - 5.2.6 | substr | Если параметр start указывает на позицию с отрицательной обрезкой, возвращается FALSE. Другие версии возвращают строку с начала.
5.1.0 | explode | Добавлена поддержка отрицательных значений limit
 | md5_file | Функция изменена для работы с потоковым API. Это означает, что ее можно использовать с обертками, например, так: md5_file('http://example.com/..')
 | sha1_file | Функция теперь работает с потоковым API. Это означает, что ее можно использовать с обертками, например, sha1_file('http://example.com/..')
 | str_word_count | Добавлен параметр charlist
 | substr_compare | Добавлена возможность использования отрицательных значений в offset.
 | substr_count | Добавлены параметры offset и length
5.0.0 | strip_tags | strip_tags теперь безопасна для обработки бинарных данных.
 | strrpos | Параметр needle может быть строкой из более чем одного символа.
4.3.0 | stristr | stristr теперь бинарно-безопасна.
 | strrchr | Эта функция теперь бинарно-безопасна.
 | strstr | strstr теперь бинарно безопасна.
4.2.3 | strcoll | Теперь эта функция работает и на win32.


Расширения, относящиеся к переменным и типам

  • Массивы
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Сортировка массивов
    • Функции для работы с массивами
  • Классы и объекты — Функции работы с классами и объектами
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Классы/Объекты
  • Classkit
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • classkit
  • Ctype — Функции определения типа символов
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Ctype
  • Структуры данных
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Коллекция — Интерфейс Collection
    • Хешируемое — Интерфейс Hashable
    • Последовательность — Интерфейс Sequence
    • Вектор — Класс Vector
    • Двухсторонняя очередь — Класс Deque
    • Коллекция пар — Класс Map
    • Пара — Класс Pair
    • Набор — Класс Set
    • Стек — Класс Stack
    • Очередь — Класс Queue
    • Очередь с приоритетом — Класс PriorityQueue
  • Filter — Фильтрация данных
    • Введение
    • Установка и настройка
    • Типы фильтров
    • Предопределенные константы
    • Примеры
    • Фильтрация данных
  • Управление функциями
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Управление функциями
  • Quickhash
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • QuickHashIntSet — The QuickHashIntSet class
    • QuickHashIntHash — The QuickHashIntHash class
    • QuickHashStringIntHash — The QuickHashStringIntHash class
    • QuickHashIntStringHash — The QuickHashIntStringHash class
  • Reflection
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Расширение
    • Reflection — Класс Reflection
    • ReflectionClass — Класс ReflectionClass
    • ReflectionZendExtension — Класс ReflectionZendExtension
    • ReflectionExtension — Класс ReflectionExtension
    • ReflectionFunction — Класс ReflectionFunction
    • ReflectionFunctionAbstract — Класс ReflectionFunctionAbstract
    • ReflectionMethod — Класс ReflectionMethod
    • ReflectionObject — Класс ReflectionObject
    • ReflectionParameter — Класс ReflectionParameter
    • ReflectionProperty — Класс ReflectionProperty
    • ReflectionType — Класс ReflectionType
    • ReflectionGenerator — Класс ReflectionGenerator
    • Reflector — Интерфейс Reflector
    • ReflectionException — Класс ReflectionException
  • Функции для работы с переменными
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Функции для работы с переменными


Массивы

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Сортировка массивов
  • Функции для работы с массивами
    • array_change_key_case — Меняет регистр всех ключей в массиве
    • array_chunk — Разбивает массив на части
    • array_column — Возвращает массив из значений одного столбца входного массива
    • array_combine — Создает новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений
    • array_count_values — Подсчитывает количество всех значений массива
    • array_diff_assoc — Вычисляет расхождение массивов с дополнительной проверкой индекса
    • array_diff_key — Вычисляет расхождение массивов, сравнивая ключи
    • array_diff_uassoc — Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
    • array_diff_ukey — Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
    • array_diff — Вычислить расхождение массивов
    • array_fill_keys — Создает массив и заполняет его значениями, с определенными ключами
    • array_fill — Заполняет массив значениями
    • array_filter — Фильтрует элементы массива с помощью callback-функции
    • array_flip — Меняет местами ключи с их значениями в массиве
    • array_intersect_assoc — Вычисляет схождение массивов с дополнительной проверкой индекса
    • array_intersect_key — Вычислить пересечение массивов, сравнивая ключи
    • array_intersect_uassoc — Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
    • array_intersect_ukey — Вычисляет схождение массивов, используя callback-функцию для сравнения ключей
    • array_intersect — Вычисляет схождение массивов
    • array_key_exists — Проверяет, присутствует ли в массиве указанный ключ или индекс
    • array_keys — Возвращает все или некоторое подмножество ключей массива
    • array_map — Применяет callback-функцию ко всем элементам указанных массивов
    • array_merge_recursive — Рекурсивное слияние двух или более массивов
    • array_merge — Сливает один или большее количество массивов
    • array_multisort — Сортирует несколько массивов или многомерные массивы
    • array_pad — Дополнить размер массива определенным значением до заданной величины
    • array_pop — Извлекает последний элемент массива
    • array_product — Вычислить произведение значений массива
    • array_push — Добавляет один или несколько элементов в конец массива
    • array_rand — Выбирает одно или несколько случайных значений из массива
    • array_reduce — Итеративно уменьшает массив к единственному значению, используя callback-функцию
    • array_replace_recursive — Рекурсивно заменяет элементы первого массива элементами переданных массивов
    • array_replace — Замена элементов массива элементами других переданных массивов
    • array_reverse — Возвращает массив с элементами в обратном порядке
    • array_search — Осуществляет поиск данного значения в массиве и возвращает ключ первого найденого элемента в случае удачи
    • array_shift — Извлекает первый элемент массива
    • array_slice — Выбирает срез массива
    • array_splice — Удаляет часть массива и заменяет её чем-нибудь ещё
    • array_sum — Вычисляет сумму значений массива
    • array_udiff_assoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
    • array_udiff_uassoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
    • array_udiff — Вычисляет расхождение массивов, используя для сравнения callback-функцию
    • array_uintersect_assoc — Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
    • array_uintersect_uassoc — Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции
    • array_uintersect — Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
    • array_unique — Убирает повторяющиеся значения из массива
    • array_unshift — Добавляет один или несколько элементов в начало массива
    • array_values — Выбирает все значения массива
    • array_walk_recursive — Рекурсивно применяет пользовательскую функцию к каждому элементу массива
    • array_walk — Применяет заданную пользователем функцию к каждому элементу массива
    • array — Создает массив
    • arsort — Сортирует массив в обратном порядке, сохраняя ключи
    • asort — Сортирует массив, сохраняя ключи
    • compact — Создает массив, содержащий названия переменных и их значения
    • count — Подсчитывает количество элементов массива или что-то в объекте
    • current — Возвращает текущий элемент массива
    • each — Возвращает текущую пару ключ/значение из массива и смещает его указатель
    • end — Устанавливает внутренний указатель массива на его последний элемент
    • extract — Импортирует переменные из массива в текущую таблицу символов
    • in_array — Проверяет, присутствует ли в массиве значение
    • key_exists — Псевдоним array_key_exists
    • key — Выбирает ключ из массива
    • krsort — Сортирует массив по ключам в обратном порядке
    • ksort — Сортирует массив по ключам
    • list — Присваивает переменным из списка значения подобно массиву
    • natcasesort — Сортирует массив, используя алгоритм "natural order" без учета регистра символов
    • natsort — Сортирует массив, используя алгоритм "natural order"
    • next — Передвигает внутренний указатель массива на одну позицию вперёд
    • pos — Псевдоним current
    • prev — Передвигает внутренний указатель массива на одну позицию назад
    • range — Создает массив, содержащий диапазон элементов
    • reset — Устанавливает внутренний указатель массива на его первый элемент
    • rsort — Сортирует массив в обратном порядке
    • shuffle — Перемешивает массив
    • sizeof — Псевдоним count
    • sort — Сортирует массив
    • uasort — Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
    • uksort — Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей
    • usort — Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов


Введение

Эти функции позволяют различными способами оперировать массивами. Массивы идеально подходят для хранения, изменения и работы с наборами переменных.

Поддерживаются одно- и многомерные массивы, как созданные пользователем, так и возвращенные в качестве результата какой-либо функцией. Используя специальные функции можно записать в массив результаты запроса к базам данных. Так же существуют функции, возвращающие массивы в качестве результата.

За дополнительными сведениями о создании и использовании массивов в PHP, смотрите главу Массивы данного руководства. Смотрите также операции над массивами.


Предопределенные константы

Перечисленные ниже константы всегда доступны как часть ядра PHP.

CASE_LOWER (integer)
CASE_LOWER используется с array_change_key_case() для конвертации ключей массива в нижний регистр. Это действие по умолчанию для array_change_key_case().
CASE_UPPER (integer)
CASE_UPPER используется c array_change_key_case() для конвертации ключей массива в верхний регистр.

Флаги, изменяющие порядок сортировки:

SORT_ASC (integer)
SORT_ASC используется с array_multisort() для сортировки в порядке возрастания.
SORT_DESC (integer)
SORT_DESC используется с array_multisort() для сортировки в порядке убывания.

Флаги сортировки, используемые различными функциями:

SORT_REGULAR (integer)
SORT_REGULAR используется для обычного сравнения элементов массива.
SORT_NUMERIC (integer)
SORT_NUMERIC используется для сравнения элементов, как цифр.
SORT_STRING (integer)
SORT_STRING используется для сравнения элементов как строк.
SORT_LOCALE_STRING (integer)
SORT_LOCALE_STRING используется для сравнения элементов как строк на базе текущей локали. Добавлено в 5.0.2.
SORT_NATURAL (integer)
SORT_NATURAL используется для сравнения элементов как строк, используя естественное упорядочивание, такое как natsort(). Добавлено в PHP 5.4.0.
SORT_FLAG_CASE (integer)
SORT_FLAG_CASE может быть объединена (побитовое ИЛИ) с SORT_STRING или SORT_NATURAL для регистронезависимой сортировки строк. Добавлено в PHP 5.4.0.

Опции фильтрации:

ARRAY_FILTER_USE_KEY (integer)
ARRAY_FILTER_USE_KEY используется в array_filter() для передачи каждого ключа в виде первого аргумента в заданную функцию. Добавлено в PHP 5.6.0.
ARRAY_FILTER_USE_BOTH (integer)
ARRAY_FILTER_USE_BOTH используется в array_filter() для передачи и значения и ключа в заданную функцию. Добавлено в PHP 5.6.0.

COUNT_NORMAL (integer)
COUNT_RECURSIVE (integer)
EXTR_OVERWRITE (integer)
EXTR_SKIP (integer)
EXTR_PREFIX_SAME (integer)
EXTR_PREFIX_ALL (integer)
EXTR_PREFIX_INVALID (integer)
EXTR_PREFIX_IF_EXISTS (integer)
EXTR_IF_EXISTS (integer)
EXTR_REFS (integer)


Сортировка массивов

В PHP есть несколько функций для сортировки массивов, на этой странице дается их общее описание.

Основные различия между функциями:

  • В одних функциях массивы array сортируются по ключам элементов, в других по значениям: $array['ключ'] = 'значение';
  • В каких-то функциях связь между ключами и значениями после сортировки сохраняется, в каких-то нет. Это может приводить к тому, что ключи будут сбрасываться в числовые значения (0, 1, 2, ...).
  • Различия в порядке сортировки: алфавитный, возрастающий, убывающий, числовой, натуральный, случайный или определенный пользователем
  • Примечание: Все функции сортировки модифицируют переданный массив, а не возвращают отсортированную копию
  • Если функции определяют два элемента как равные, порядок сортировки в этом случае не определен (нестабильная сортировка)

Свойства функций сортировки
Имя функции | Сортирует по | Сохраняет связь ключ - значение | Порядок сортировки | Похожие функции
array_multisort() | значению | ассоциативные да, числовые нет | первый массив или настройки сортировки | array_walk()
asort() | значению | да | по возрастанию | arsort()
arsort() | значению | да | по убыванию | asort()
krsort() | ключу | да | по убыванию | ksort()
ksort() | ключу | да | по возрастанию | asort()
natcasesort() | значению | да | натуральный, чувствителен к регистру | natsort()
natsort() | значению | да | натуральный | natcasesort()
rsort() | значению | нет | по убыванию | sort()
shuffle() | значению | нет | случайный | array_rand()
sort() | значению | нет | по возрастанию | rsort()
uasort() | значению | да | определяется пользователем | uksort()
uksort() | ключу | да | определяется пользователем | uasort()
usort() | значению | нет | определяется пользователем | uasort()


Функции для работы с массивами

Смотрите также

См. также is_array(), explode(),
implode(), split(),
preg_split() и unset().

Содержание

  • array_change_key_case — Меняет регистр всех ключей в массиве
  • array_chunk — Разбивает массив на части
  • array_column — Возвращает массив из значений одного столбца входного массива
  • array_combine — Создает новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений
  • array_count_values — Подсчитывает количество всех значений массива
  • array_diff_assoc — Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_key — Вычисляет расхождение массивов, сравнивая ключи
  • array_diff_uassoc — Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_diff_ukey — Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
  • array_diff — Вычислить расхождение массивов
  • array_fill_keys — Создает массив и заполняет его значениями, с определенными ключами
  • array_fill — Заполняет массив значениями
  • array_filter — Фильтрует элементы массива с помощью callback-функции
  • array_flip — Меняет местами ключи с их значениями в массиве
  • array_intersect_assoc — Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_key — Вычислить пересечение массивов, сравнивая ключи
  • array_intersect_uassoc — Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_ukey — Вычисляет схождение массивов, используя callback-функцию для сравнения ключей
  • array_intersect — Вычисляет схождение массивов
  • array_key_exists — Проверяет, присутствует ли в массиве указанный ключ или индекс
  • array_keys — Возвращает все или некоторое подмножество ключей массива
  • array_map — Применяет callback-функцию ко всем элементам указанных массивов
  • array_merge_recursive — Рекурсивное слияние двух или более массивов
  • array_merge — Сливает один или большее количество массивов
  • array_multisort — Сортирует несколько массивов или многомерные массивы
  • array_pad — Дополнить размер массива определенным значением до заданной величины
  • array_pop — Извлекает последний элемент массива
  • array_product — Вычислить произведение значений массива
  • array_push — Добавляет один или несколько элементов в конец массива
  • array_rand — Выбирает одно или несколько случайных значений из массива
  • array_reduce — Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_replace_recursive — Рекурсивно заменяет элементы первого массива элементами переданных массивов
  • array_replace — Замена элементов массива элементами других переданных массивов
  • array_reverse — Возвращает массив с элементами в обратном порядке
  • array_search — Осуществляет поиск данного значения в массиве и возвращает ключ первого найденого элемента в случае удачи
  • array_shift — Извлекает первый элемент массива
  • array_slice — Выбирает срез массива
  • array_splice — Удаляет часть массива и заменяет её чем-нибудь ещё
  • array_sum — Вычисляет сумму значений массива
  • array_udiff_assoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_udiff — Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_uintersect_assoc — Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc — Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции
  • array_uintersect — Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_unique — Убирает повторяющиеся значения из массива
  • array_unshift — Добавляет один или несколько элементов в начало массива
  • array_values — Выбирает все значения массива
  • array_walk_recursive — Рекурсивно применяет пользовательскую функцию к каждому элементу массива
  • array_walk — Применяет заданную пользователем функцию к каждому элементу массива
  • array — Создает массив
  • arsort — Сортирует массив в обратном порядке, сохраняя ключи
  • asort — Сортирует массив, сохраняя ключи
  • compact — Создает массив, содержащий названия переменных и их значения
  • count — Подсчитывает количество элементов массива или что-то в объекте
  • current — Возвращает текущий элемент массива
  • each — Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • end — Устанавливает внутренний указатель массива на его последний элемент
  • extract — Импортирует переменные из массива в текущую таблицу символов
  • in_array — Проверяет, присутствует ли в массиве значение
  • key_exists — Псевдоним array_key_exists
  • key — Выбирает ключ из массива
  • krsort — Сортирует массив по ключам в обратном порядке
  • ksort — Сортирует массив по ключам
  • list — Присваивает переменным из списка значения подобно массиву
  • natcasesort — Сортирует массив, используя алгоритм "natural order" без учета регистра символов
  • natsort — Сортирует массив, используя алгоритм "natural order"
  • next — Передвигает внутренний указатель массива на одну позицию вперёд
  • pos — Псевдоним current
  • prev — Передвигает внутренний указатель массива на одну позицию назад
  • range — Создает массив, содержащий диапазон элементов
  • reset — Устанавливает внутренний указатель массива на его первый элемент
  • rsort — Сортирует массив в обратном порядке
  • shuffle — Перемешивает массив
  • sizeof — Псевдоним count
  • sort — Сортирует массив
  • uasort — Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
  • uksort — Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей
  • usort — Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов


Меняет регистр всех ключей в массиве

  • « Функции для работы с массивами
  • array_chunk »
  • PHP Manual
  • Функции для работы с массивами
  • Меняет регистр всех ключей в массиве

array_change_key_case

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

array_change_key_case — Меняет регистр всех ключей в массиве

Описание

array array_change_key_case ( array $array [, int $case = CASE_LOWER ] )

Возвращает массив array, все ключи которого преобразованы в нижний или верхний регистр. Числовые ключи останутся нетронутыми.

Список параметров

array

Обрабатываемый массив

case

Либо CASE_UPPER, либо CASE_LOWER (используется по умолчанию)

Возвращаемые значения

Возвращает массив с ключами, преобразованными в верхний или нижний регистр, либо FALSE, если array не является массивом.

Ошибки

Генерирует ошибку уровня E_WARNING, если array не является массивом.

Примеры

Пример #1 Пример использования array_change_key_case()

<?php
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>

Результат выполнения данного примера:

Array
(
    [FIRST] => 1
    [SECOND] => 4
)

Примечания

Замечание:

Если массив содержит индексы, которые станут одноименными после применения данной функции (например, "keY" и "kEY"), значение последнего одноименного индекса перекроет другие совпадающие значения из этого массива.


Разбивает массив на части

  • « array_change_key_case
  • array_column »
  • PHP Manual
  • Функции для работы с массивами
  • Разбивает массив на части

array_chunk

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

array_chunk — Разбивает массив на части

Описание

array array_chunk ( array $array , int $size [, bool $preserve_keys = false ] )

Разбивает массив на несколько массивов размером в size элементов. Последний массив из полученных может содержать меньшее количество значений, чем указано в size.

Список параметров

array

Обрабатываемый массив

size

Размер каждой части

preserve_keys

Если установлено в TRUE, ключи оригинального массива будут сохранены. По умолчанию установлено в FALSE, что переиндексирует каждую часть с числовыми ключами

Возвращаемые значения

Возвращает многомерный массив с числовыми индексами, начинающимися с нуля, каждый элемент которого содержит size элементов из оригинального массива.

Ошибки

Если size меньше 1, будет сгенерирована ошибка уровня E_WARNING и возвращен NULL.

Примеры

Пример #1 Пример использования array_chunk()

<?php
$input_array = array('a', 'b', 'c', 'd', 'e');
print_r(array_chunk($input_array, 2));
print_r(array_chunk($input_array, 2, true));
?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
        )

)
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [2] => c
            [3] => d
        )

    [2] => Array
        (
            [4] => e
        )

)

Смотрите также

  • array_slice() - Выбирает срез массива


Возвращает массив из значений одного столбца входного массива

  • « array_chunk
  • array_combine »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает массив из значений одного столбца входного массива

array_column

(PHP 5 >= 5.5.0, PHP 7)

array_column — Возвращает массив из значений одного столбца входного массива

Описание

array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )

array_column() возвращает массив из значений столбца массива input с ключем column_key. Опционально вы можете использовать index_key чтобы индексировать возвращаемый массив значениями из столбца с ключем index_key входного массива.

Список параметров

input

Многомерный массив или массив объектов, из которого будет производиться выборка значений. Если задан массив объектов, то можно выбирать любые его публичные свойства. Для выборки приватных или защищенных свойств, объект должен реализовывать магические методы __get() и __isset().

column_key

Ключ столбца значения которого нужно вернуть. Может содержать как числовой ключ так и строковой для ассоциативных массивов. А также может принимать значение NULL тогда возвращаются не значения определенного столбца а весь массив (полезно использовать вместе с index_key чтобы переиндексировать массив).

index_key

Ключ столбца значения которого будут использоваться в качестве ключей возвращаемого массива. Может быть как целочисленным ключем так и строковым.

Возвращаемые значения

Возвращает массив из значений одного столбца входного массива (набора записей).

Список изменений

Версия | Описание
7.0.0 | Добавлена возможность использовать массив объектов в input.

Примеры

Пример #1 Получим столбец с именами из набора записей

<?php
// Массив, представляющий из себя набор записей полученных из базы данных
$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);

$first_names = array_column($records, 'first_name');
print_r($first_names);
?>

Результат выполнения данного примера:

Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)

Пример #2 Получим столбец с фамилиями, а в качестве ключей возвращаемого массива используем значения из столбца "id"

<?php
// Используем массив $records из Примера #1
$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);
?>

Результат выполнения данного примера:

Array
(
    [2135] => Doe
    [3245] => Smith
    [5342] => Jones
    [5623] => Doe
)

Пример #3 Получим столбец имен пользователей из публичного свойства "username" объекта

<?php

class User
{
    public $username;

    public function __construct(string $username)
    {
        $this->username = $username;
    }
}

$users = [
    new User('user 1'),
    new User('user 2'),
    new User('user 3'),
];

print_r(array_column($users, 'username'));
?>

Результат выполнения данного примера:

Array
(
    [0] => user 1
    [1] => user 2
    [2] => user 3
)

Пример #4 Получим столбец имен пользователей из приватного свойства "name" объекта используя магический метод __get().

<?php

class Person
{
    private $name;

    public function __construct(string $name)
    {
        $this->name = $name;
    }

    public function __get($prop)
    {
        return $this->$prop;
    }

    public function __isset($prop) : bool
    {
        return isset($this->$prop);
    }
}

$people = [
    new Person('Fred'),
    new Person('Jane'),
    new Person('John'),
];

print_r(array_column($people, 'name'));
?>

Результат выполнения данного примера:

Array
(
    [0] => Fred
    [1] => Jane
    [2] => John
)
Если в объекте не будет метода __isset(), то вернется пустой массив.

Смотрите также

  • » Рекомендации по самостоятельной реализации при использовании версии PHP ниже 5.5


Создает новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений

  • « array_column
  • array_count_values »
  • PHP Manual
  • Функции для работы с массивами
  • Создает новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений

array_combine

(PHP 5, PHP 7)

array_combine — Создает новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений

Описание

array array_combine ( array $keys , array $values )

Создает array, используя значения массива keys в качестве ключей и значения массива values в качестве соответствующих значений.

Список параметров

keys

Массив ключей. Некорректные значения для ключей будут преобразованы в string.

values

Массив значений

Возвращаемые значения

Возвращает скомбинированный array, либо FALSE, если количество элементов в массивах не совпадает.

Ошибки

Генерирует ошибку уровня E_WARNING, если количество элементов в keys и values не совпадает.

Список изменений

Версия | Описание
5.4.0 | Предыдущие версии выдавали E_WARNING и возвращали FALSE для пустых массивов.

Примеры

Пример #1 Простой пример использования array_combine()

<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);

print_r($c);
?>

Результат выполнения данного примера:

Array
(
    [green]  => avocado
    [red]    => apple
    [yellow] => banana
)

Смотрите также

  • array_merge() - Сливает один или большее количество массивов
  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива
  • array_values() - Выбирает все значения массива


Подсчитывает количество всех значений массива

  • « array_combine
  • array_diff_assoc »
  • PHP Manual
  • Функции для работы с массивами
  • Подсчитывает количество всех значений массива

array_count_values

(PHP 4, PHP 5, PHP 7)

array_count_values — Подсчитывает количество всех значений массива

Описание

array array_count_values ( array $array )

Функция array_count_values() возвращает массив, ключами которого являются значения массива array, а значениями - частота повторения значений array.

Список параметров

array

Массив подсчитываемых значений

Возвращаемые значения

Возвращает ассоциативный массив со значениями array в качестве ключей и их количества в качестве значений.

Ошибки

Генерирует ошибку уровня E_WARNING для каждого элемента, не являющегося string или integer.

Примеры

Пример #1 Пример использования array_count_values()

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>

Результат выполнения данного примера:

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

Смотрите также

  • count() - Подсчитывает количество элементов массива или что-то в объекте
  • array_unique() - Убирает повторяющиеся значения из массива
  • array_values() - Выбирает все значения массива
  • count_chars() - Возвращает информацию о символах, входящих в строку


Вычисляет расхождение массивов с дополнительной проверкой индекса

  • « array_count_values
  • array_diff_key »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение массивов с дополнительной проверкой индекса

array_diff_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

array_diff_assoc — Вычисляет расхождение массивов с дополнительной проверкой индекса

Описание

array array_diff_assoc ( array $array1 , array $array2 [, array $... ] )

Сравнивает array1 с array2 и возвращает разницу. В отличие от array_diff(), ключи также участвуют в сравнении.

Список параметров

array1

Исходный массив

array2

Массив, с которым идет сравнение

...

Дополнительные массивы, с которыми осуществляется сравнение

Возвращаемые значения

Возвращает array, содержащие все значения из массива array1, которых нет в любом из последующих массивов.

Примеры

Пример #1 Пример использования array_diff_assoc()

В нижеследующем примере вы видите, что пара "a" => "green" содержится в обоих массивах и поэтому её нет в выводе функции. Но, пара 0 => "red" содержится в выводе функции, потому что во втором аргументе значению "red" соответствует ключ 1.

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

Пример #2 Пример использования array_diff_assoc()

Два значения пар key => value считаются равными только тогда, если (string) $elem1 === (string) $elem2 . Другими словами, применяется строгая проверка, означающая что строковые представления должны быть одинаковыми.

<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [0] => 0
    [1] => 1
    )

Примечания

Замечание: Эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_assoc($array1[0], $array2[0]);.

Замечание: Убедитесь, что передаете аргументы в правильном порядке, когда сравниваете схожие массивы с большим количеством ключей. Новый массив должен быть первым.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса


Вычисляет расхождение массивов, сравнивая ключи

  • « array_diff_assoc
  • array_diff_uassoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение массивов, сравнивая ключи

array_diff_key

(PHP 5 >= 5.1.0, PHP 7)

array_diff_key — Вычисляет расхождение массивов, сравнивая ключи

Описание

array array_diff_key ( array $array1 , array $array2 [, array $... ] )

Сравнивает ключи array1 с ключами array2 и возвращает разницу. Эта функция схожа с array_diff() за исключением того, что сравниваются ключи, а не значения.

Список параметров

array1

Исходный массив

array2

Массив, с которым идет сравнение

...

Дополнительные массивы, с которыми осуществляется сравнение

Возвращаемые значения

Возвращает array, содержащий все элементы array1 с ключами, которых нет в во всех последующих массивах.

Примеры

Пример #1 Пример использования array_diff_key()

Два ключа пар key => value считаются равными только тогда, когда (string) $key1 === (string) $key2 . Другими словами, применяется строгая проверка, означающая что строковые представления должны быть одинаковыми.

<?php
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_diff_key($array1, $array2));
?>

Результат выполнения данного примера:

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Примечания

Замечание:

Эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_key($array1[0], $array2[0]);.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_diff_ukey() - Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_key() - Вычислить пересечение массивов, сравнивая ключи
  • array_intersect_ukey() - Вычисляет схождение массивов, используя callback-функцию для сравнения ключей


Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

  • « array_diff_key
  • array_diff_ukey »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

array_diff_uassoc

(PHP 5, PHP 7)

array_diff_uassoc — Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

Описание

array array_diff_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

Сравнивает array1 c array2 и возвращает разницу. В отличие от array_diff(), для сравнения используются ключи.

В отличие от array_diff_assoc(), для сравнения ключей используется пользовательская функция, а не встроенная.

Список параметров

array1

Исходный массив

array2

Массив, с которым идет сравнение

...

Дополнительные массивы, с которыми осуществляется сравнение

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )

Возвращаемые значения

Возвращает array, содержащий все элементы array1, которых нет во всех остальных массивах.

Примеры

Пример #1 Пример использования array_diff_uassoc()

Пара "a" => "green" существует в обоих массивах и поэтому отсутствует в выводе функции. Наоборот, пара 0 => "red" находится в выводе функции, так как второй аргумент "red" имеет ключ, равный 1.

<?php
function key_compare_func($a, $b)
{
    if ($a === $b) {
        return 0;
    }
    return ($a > $b)? 1:-1;
}

$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

Равенство 2 индексов проверяется функцией, предоставляемой пользователем.

Примечания

Замечание:

Эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей

  • « array_diff_uassoc
  • array_diff »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей

array_diff_ukey

(PHP 5 >= 5.1.0, PHP 7)

array_diff_ukey — Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей

Описание

array array_diff_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

Сравнивает ключи array1 с ключами array2 и возвращает разницу. Эта функция похожа на array_diff() за исключением того, что сравниваются ключи, а не значения.

В отличие от функции array_diff_key() для сравнения ключей используется функция, предоставляемая пользователем, а не встроенная функция.

Список параметров

array1

Исходный массив

array2

Массив, с которым идет сравнение

...

Дополнительные массивы, с которыми осуществляется сравнение

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )

Возвращаемые значения

Возвращает array, содержащий все элементы array1, отсутствующие в каком-либо из всех остальных массивов.

Примеры

Пример #1 Пример использования array_diff_ukey()

<?php
function key_compare_func($key1, $key2)
{
    if ($key1 == $key2)
        return 0;
    else if ($key1 > $key2)
        return 1;
    else
        return -1;
}

$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>

Результат выполнения данного примера:

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Примечания

Замечание:

Обратите внимание, что эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_ukey($array1[0], $array2[0], 'callback_func');.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_diff_key() - Вычисляет расхождение массивов, сравнивая ключи
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_key() - Вычислить пересечение массивов, сравнивая ключи
  • array_intersect_ukey() - Вычисляет схождение массивов, используя callback-функцию для сравнения ключей


Вычислить расхождение массивов

  • « array_diff_ukey
  • array_fill_keys »
  • PHP Manual
  • Функции для работы с массивами
  • Вычислить расхождение массивов

array_diff

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_diff — Вычислить расхождение массивов

Описание

array array_diff ( array $array1 , array $array2 [, array $... ] )

Сравнивает array1 с одним или несколькими другими массивами и возвращает значения из array1, которые отсутствуют во всех других массивах.

Список параметров

array1

Исходный массив

array2

Массив, с которым идет сравнение

...

Дополнительные массивы, с которыми осуществляется сравнение

Возвращаемые значения

Возвращает array, содержащий элементы array1, отсутствующие в любом из всех остальных массивах.

Примеры

Пример #1 Пример использования array_diff()

<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);
?>

Множественные совпадения в $array1 обрабатываются как одно. Результат будет следующим :

Array
(
    [1] => blue
)

Примечания

Замечание:

Два элемента считаются одинаковыми тогда и только тогда, если (string) $elem1 === (string) $elem2. Другими словами, когда их строковое представление идентично.

Замечание:

Обратите внимание, что эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff($array1[0], $array2[0]);.

Смотрите также

  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса


Создает массив и заполняет его значениями, с определенными ключами

  • « array_diff
  • array_fill »
  • PHP Manual
  • Функции для работы с массивами
  • Создает массив и заполняет его значениями, с определенными ключами

array_fill_keys

(PHP 5 >= 5.2.0, PHP 7)

array_fill_keys — Создает массив и заполняет его значениями, с определенными ключами

Описание

array array_fill_keys ( array $keys , mixed $value )

Создает и заполняет массив значением параметра value, используя значения массива keys в качестве ключей.

Список параметров

keys

Массив значений, которые будут использованы в качестве ключей. Некорректные ключи массива будут преобразованы в string.

value

Заполняемое значение

Возвращаемые значения

Возвращает заполненный массив

Примеры

Пример #1 Пример использования array_fill_keys()

<?php
$keys = array('foo', 5, 10, 'bar');
$a = array_fill_keys($keys, 'banana');
print_r($a);
?>

Результат выполнения данного примера:

Array
(
    [foo] => banana
    [5] => banana
    [10] => banana
    [bar] => banana
)

Смотрите также

  • array_fill() - Заполняет массив значениями
  • array_combine() - Создает новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений


Заполняет массив значениями

  • « array_fill_keys
  • array_filter »
  • PHP Manual
  • Функции для работы с массивами
  • Заполняет массив значениями

array_fill

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

array_fill — Заполняет массив значениями

Описание

array array_fill ( int $start_index , int $num , mixed $value )

Заполняет массив num элементами со значением value, начиная с ключа start_index.

Список параметров

start_index

Первый индекс возвращаемого массива.

Если start_index отрицателен, первым индексом возвращаемого массива будет start_index, а последующие индексы будут начинаться с нуля (смотрите пример).

num

Количество вставляемых элементов. Их должно быть больше или равно нулю.

value

Значение для заполнения

Возвращаемые значения

Возвращает заполненный массив

Ошибки

Вызывает предупреждение E_WARNING в случае, если параметр num меньше нуля.

Список изменений

Версия | Описание
5.6.0 | num теперь может быть равен нулю. До этого num должен был быть больше нуля.

Примеры

Пример #1 Пример использования array_fill()

<?php
$a = array_fill(5, 6, 'banana');
$b = array_fill(-2, 4, 'pear');
print_r($a);
print_r($b);
?>

Результат выполнения данного примера:

Array
(
    [5]  => banana
    [6]  => banana
    [7]  => banana
    [8]  => banana
    [9]  => banana
    [10] => banana
)
Array
(
    [-2] => pear
    [0] => pear
    [1] => pear
    [2] => pear
)

Примечания

Смотрите также подробное описание отрицательных ключей в разделе Массивы.

Смотрите также

  • array_fill_keys() - Создает массив и заполняет его значениями, с определенными ключами
  • str_repeat() - Возвращает повторяющуюся строку
  • range() - Создает массив, содержащий диапазон элементов


Фильтрует элементы массива с помощью callback-функции

  • « array_fill
  • array_flip »
  • PHP Manual
  • Функции для работы с массивами
  • Фильтрует элементы массива с помощью callback-функции

array_filter

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

array_filter — Фильтрует элементы массива с помощью callback-функции

Описание

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )

Обходит каждое значение массива array, передавая его в callback-функцию. Если callback-функция возвращает true, данное значение из array возвращается в результирующий массив. Ключи массива сохраняются.

Список параметров

array

Итерируемый массив

callback

Используемая callback-функция

Если callback-функция не передана, все значения массива array равные FALSE (см. преобразование в булевый тип) будут удалены.

flag

Флаг определяющий какие аргументы передавать в callback:

  • ARRAY_FILTER_USE_KEY - передавать только ключ массива как аргумент для callback вместо значения
  • ARRAY_FILTER_USE_BOTH - передавать и ключ и значение в callback вместо только значения

Возвращаемые значения

Возвращает отфильтрованный массив.

Список изменений

Версия | Описание
5.6.0 | Добавлен необязательный параметр flag и константы ARRAY_FILTER_USE_KEY и ARRAY_FILTER_USE_BOTH

Примеры

Пример #1 Пример использования array_filter()

<?php
function odd($var)
{
    // является ли переданное число нечетным
    return($var & 1);
}

function even($var)
{
    // является ли переданное число четным
    return(!($var & 1));
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);

echo "Нечетные:\n";
print_r(array_filter($array1, "odd"));
echo "Четные:\n";
print_r(array_filter($array2, "even"));
?>

Результат выполнения данного примера:

Нечетные:
Array
(
    [a] => 1
    [c] => 3
    [e] => 5
)
Четные:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

Пример #2 Использование array_filter() без callback-функции

<?php

$entry = array(
             0 => 'foo',
             1 => false,
             2 => -1,
             3 => null,
             4 => ''
          );

print_r(array_filter($entry));
?>

Результат выполнения данного примера:

Array
(
    [0] => foo
    [2] => -1
)

Пример #3 array_filter() с указанным flag

<?php

$arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4];

var_dump(array_filter($arr, function($k) {
    return $k == 'b';
}, ARRAY_FILTER_USE_KEY));

var_dump(array_filter($arr, function($v, $k) {
    return $k == 'b' || $v == 4;
}, ARRAY_FILTER_USE_BOTH));
?>

Результат выполнения данного примера:

array(1) {
  ["b"]=>
  int(2)
}
array(2) {
  ["b"]=>
  int(2)
  ["d"]=>
  int(4)
}

Примечания

Предостережение

Если callback-функция изменяет массив (например, добавляет или удаляет элементы), поведение этой функции неопределено.

Смотрите также

  • array_map() - Применяет callback-функцию ко всем элементам указанных массивов
  • array_reduce() - Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива


Меняет местами ключи с их значениями в массиве

  • « array_filter
  • array_intersect_assoc »
  • PHP Manual
  • Функции для работы с массивами
  • Меняет местами ключи с их значениями в массиве

array_flip

(PHP 4, PHP 5, PHP 7)

array_flip — Меняет местами ключи с их значениями в массиве

Описание

array array_flip ( array $array )

Функция array_flip() возвращает array наоборот, то есть ключи массива array становятся значениями, а значения массива array становятся ключами.

Обратите внимание, что значения массива array должны быть корректными ключами, то есть они должны иметь тип integer или string. Если значение имеет неверный тип, будет выдано предупреждение и данная пара ключ/значение не будет включена в результат.

Если значение встречается несколько раз, для обработки будет использоваться последний встреченный ключ, а все остальные будут потеряны.

Список параметров

array

Массив переворачиваемых пар ключ/значение.

Возвращаемые значения

Возвращает перевернутый массив в случае успеха, или NULL в случае ошибки.

Примеры

Пример #1 Пример использования array_flip()

<?php
$input = array("oranges", "apples", "pears");
$flipped = array_flip($input);

print_r($flipped);
?>

Результат выполнения данного примера:

Array
(
    [oranges] => 0
    [apples] => 1
    [pears] => 2
)

Пример #2 Пример использования array_flip() с коллизиями

<?php
$input = array("a" => 1, "b" => 1, "c" => 2);
$flipped = array_flip($input);

print_r($flipped);
?>

Результат выполнения данного примера:

Array
(
    [1] => b
    [2] => c
)

Смотрите также

  • array_values() - Выбирает все значения массива
  • array_keys() - Возвращает все или некоторое подмножество ключей массива
  • array_reverse() - Возвращает массив с элементами в обратном порядке


Вычисляет схождение массивов с дополнительной проверкой индекса

  • « array_flip
  • array_intersect_key »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет схождение массивов с дополнительной проверкой индекса

array_intersect_assoc

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

array_intersect_assoc — Вычисляет схождение массивов с дополнительной проверкой индекса

Описание

array array_intersect_assoc ( array $array1 , array $array2 [, array $... ] )

Функция array_intersect_assoc() возвращает массив, содержащий все значения массива array1, которые содержатся во всех указанных аргументах. Обратите внимание, что при сравнении используются ключи, в отличие от функции array_intersect().

Список параметров

array1

Основной проверяемый массив.

array2

Массив, с которым идет сравнение

...

Переменный список сравниваемых массивов

Возвращаемые значения

Возвращает ассоциативный массив, содержащий все элементы массива array1, которые существуют во всех переданных аргументах.

Примеры

Пример #1 Пример использования array_intersect_assoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "b" => "yellow", "blue", "red");
$result_array = array_intersect_assoc($array1, $array2);
print_r($result_array);
?>

Результат выполнения данного примера:

Array
(
    [a] => green
)

В нашем примере видно, что только пара "a" => "green", содержится в обоих массивах и таким образом возвращается. Значение "red" не возвращается, потому что в массиве $array1 его ключ - 0, в то время как ключ значения "red" в массиве $array2 - 1, а ключ "b" не возвращается потому, что его значения различны в каждом массиве.

Два значения пар key => value считаются равными только, если (string) $elem1 === (string) $elem2 . Другими словами, применяется строгая проверка, означающая что строковые представления должны быть одинаковыми.

Смотрите также

  • array_intersect() - Вычисляет схождение массивов
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции
  • array_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса


Вычислить пересечение массивов, сравнивая ключи

  • « array_intersect_assoc
  • array_intersect_uassoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычислить пересечение массивов, сравнивая ключи

array_intersect_key

(PHP 5 >= 5.1.0, PHP 7)

array_intersect_key — Вычислить пересечение массивов, сравнивая ключи

Описание

array array_intersect_key ( array $array1 , array $array2 [, array $... ] )

array_intersect_key() возвращает массив, содержащий все элементы array1, имеющие ключи, содержащиеся во всех последующих параметрах..

Список параметров

array1

Основной проверяемый массив.

array2

Массив, с которым идет сравнение.

...

Переменный список сравниваемых массивов

Возвращаемые значения

Возвращает ассоциативный массив, содержащий все элементы array1, имеющие ключи, содержащиеся во всех остальных параметрах. arguments.

Примеры

Пример #1 Пример использования array_intersect_key()

<?php
$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_intersect_key($array1, $array2));
?>

Результат выполнения данного примера:

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
}

В нашем примере только ключи 'blue' и 'green' содержатся в обоих массивах и поэтому возвращаются. Также обратите внимание, что значения, соответствующие ключам 'blue' и 'green' различны в исходных массивах. Совпадение все равно происходит, так как сравниваются только ключи. Возвращаемые значения берутся из array1.

Два ключа пар key => value считаются равными только, если (string) $key1 === (string) $key2 . Другими словами, применяется строгая проверка, означающая, что строковые представления должны быть одинаковыми.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_diff_key() - Вычисляет расхождение массивов, сравнивая ключи
  • array_diff_ukey() - Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_ukey() - Вычисляет схождение массивов, используя callback-функцию для сравнения ключей


Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

  • « array_intersect_key
  • array_intersect_ukey »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

array_intersect_uassoc

(PHP 5, PHP 7)

array_intersect_uassoc — Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции

Описание

array array_intersect_uassoc ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

array_intersect_uassoc() возвращает массив, содержащий значения array1, содержащиеся во всех последующих параметрах. Обратите внимание, что в отличие от array_intersect(), для сравнения используются ключи.

Список параметров

array1

Исходный сравниваемый массив

array2

Первый массив, с которым сравниваются ключи.

...

Дополнительные массивы, с которыми осуществляется сравнение.

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )

Возвращаемые значения

Возвращает все элементы array1, чьи значения существуют во всех аргументах.

Примеры

Пример #1 Пример использования array_intersect_uassoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));
?>

Результат выполнения данного примера:

Array
(
    [b] => brown
)

Смотрите также

  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции
  • array_intersect_key() - Вычислить пересечение массивов, сравнивая ключи
  • array_intersect_ukey() - Вычисляет схождение массивов, используя callback-функцию для сравнения ключей


Вычисляет схождение массивов, используя callback-функцию для сравнения ключей

  • « array_intersect_uassoc
  • array_intersect »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет схождение массивов, используя callback-функцию для сравнения ключей

array_intersect_ukey

(PHP 5 >= 5.1.0, PHP 7)

array_intersect_ukey — Вычисляет схождение массивов, используя callback-функцию для сравнения ключей

Описание

array array_intersect_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

array_intersect_ukey() возвращает массив, содержащий значения array1, имеющие ключи, содержащиеся во всех последующих параметрах.

Список параметров

array1

Основной проверяемый массив.

array2

Первый массив, с которым сравниваются ключи.

...

Дополнительные массивы, с которыми осуществляется сравнение ключей.

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )

Возвращаемые значения

Возвращает все элементы array1, чьи ключи существуют во всех переданных аргументах.

Примеры

Пример #1 Пример использования array_intersect_ukey()

<?php
function key_compare_func($key1, $key2)
{
    if ($key1 == $key2)
        return 0;
    else if ($key1 > $key2)
        return 1;
    else
        return -1;
}

$array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>

Результат выполнения данного примера:

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
}

В нашем примере только ключи 'blue' и 'green' содержатся в обоих массивах и поэтому возвращаются. Также обратите внимание, что значения, соответствующие ключам 'blue' и 'green' отличаются между массивами. Совпадение все равно происходит, так как сравниваются только ключи. Возвращаемые значения берутся из array1.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_diff_key() - Вычисляет расхождение массивов, сравнивая ключи
  • array_diff_ukey() - Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_key() - Вычислить пересечение массивов, сравнивая ключи


Вычисляет схождение массивов

  • « array_intersect_ukey
  • array_key_exists »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет схождение массивов

array_intersect

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_intersect — Вычисляет схождение массивов

Описание

array array_intersect ( array $array1 , array $array2 [, array $... ] )

Функция array_intersect() возвращает массив, содержащий все значения массива array1, которые содержатся во всех аргументах. Обратите внимание, что ключи сохраняются.

Список параметров

array1

Основной проверяемый массив

array2

Массив, с которым идет сравнение значений

...

Дополнительные массивы для сравнения

Возвращаемые значения

Возвращает массив, содержащий все значения array1, которые существуют во всех переданных аргументах.

Примеры

Пример #1 Пример использования array_intersect()

<?php
$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");
$result = array_intersect($array1, $array2);
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [a] => green
    [0] => red
)

Примечания

Замечание: Два элемента считаются одинаковыми тогда и только тогда, когда (string) $elem1 === (string) $elem2. Другими словами, когда их строковые представления идентичны.

Смотрите также

  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса


Проверяет, присутствует ли в массиве указанный ключ или индекс

  • « array_intersect
  • array_keys »
  • PHP Manual
  • Функции для работы с массивами
  • Проверяет, присутствует ли в массиве указанный ключ или индекс

array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7)

array_key_exists — Проверяет, присутствует ли в массиве указанный ключ или индекс

Описание

bool array_key_exists ( mixed $key , array $array )

Функция 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 является свойством объекта, переданным в качестве параметра array. На это поведение не стоит полагаться, и перед использованием данной функции необходимо проверять, что параметр array имеет тип array.

Чтобы проверить, содержит ли объект какое-либо свойство, используйте функцию property_exists().

Смотрите также

  • isset() - Определяет, была ли установлена переменная значением отличным от NULL
  • array_keys() - Возвращает все или некоторое подмножество ключей массива
  • in_array() - Проверяет, присутствует ли в массиве значение
  • property_exists() - Проверяет, содержит ли объект или класс указанный атрибут


Возвращает все или некоторое подмножество ключей массива

  • « array_key_exists
  • array_map »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает все или некоторое подмножество ключей массива

array_keys

(PHP 4, PHP 5, PHP 7)

array_keys — Возвращает все или некоторое подмножество ключей массива

Описание

array array_keys ( array $array [, mixed $search_value = null [, bool $strict = false ]] )

Функция array_keys() возвращает числовые и строковые ключи, содержащиеся в массиве array.

Если указан необязательный параметр search_value, функция возвращает только ключи, совпадающие с этим параметром. В обратном случае, функция возвращает все ключи массива array.

Список параметров

array

Массив, содержащий возвращаемые ключи.

search_value

Если указано, будут возвращены только ключи, содержащие данное значение.

strict

Определяет использование строгой проверки на равенство (===) при поиске.

Возвращаемые значения

Возвращает массив со всеми ключами array.

Примеры

Пример #1 Пример использования array_keys()

<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));

$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));

$array = array("color" => array("blue", "red", "green"),
               "size"  => array("small", "medium", "large"));
print_r(array_keys($array));
?>

Результат выполнения данного примера:

Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)

Смотрите также

  • array_values() - Выбирает все значения массива
  • array_combine() - Создает новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений
  • array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс
  • array_search() - Осуществляет поиск данного значения в массиве и возвращает ключ первого найденого элемента в случае удачи


Применяет callback-функцию ко всем элементам указанных массивов

  • « array_keys
  • array_merge_recursive »
  • PHP Manual
  • Функции для работы с массивами
  • Применяет callback-функцию ко всем элементам указанных массивов

array_map

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

array_map — Применяет callback-функцию ко всем элементам указанных массивов

Описание

array array_map ( callable $callback , array $array1 [, array $... ] )

Функция array_map() возвращает массив, содержащий элементы array1 после их обработки callback-функцией. Количество параметров, передаваемых callback-функции, должно совпадать с количеством массивов, переданным функции array_map().

Список параметров

callback

Callback-функция, применяемая к каждому элементу в каждом массиве.

array1

Массив, к которому применяется callback-функция.

...

Дополнительные массивы для обработки callback-функцией.

Возвращаемые значения

Возвращает массив, содержащий все элементы array1 после применения callback-функции к каждому из них.

Примеры

Пример #1 Пример использования array_map()

<?php
function cube($n)
{
    return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>

В результате переменная $b будет содержать:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

Пример #2 Использование array_map() вместе с lambda-функцией (начиная с версии PHP 5.3.0)

<?php
$func = function($value) {
    return $value * 2;
};

print_r(array_map($func, range(1, 5)));
?>
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 8
    [4] => 10
)

Пример #3 Пример использования array_map(): обработка нескольких массивов

<?php
function show_Spanish($n, $m)
{
    return("Число $n по-испански - $m");
}

function map_Spanish($n, $m)
{
    return(array($n => $m));
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("show_Spanish", $a, $b);
print_r($c);

$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>

Результат выполнения данного примера:

// вывод $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 Создание массива массивов

<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);
?>

Результат выполнения данного примера:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => one
            [2] => uno
        )

    [1] => Array
        (
            [0] => 2
            [1] => two
            [2] => dos
        )

    [2] => Array
        (
            [0] => 3
            [1] => three
            [2] => tres
        )

    [3] => Array
        (
            [0] => 4
            [1] => four
            [2] => cuatro
        )

    [4] => Array
        (
            [0] => 5
            [1] => five
            [2] => cinco
        )

)

Если массив-аргумент содержит строковые ключи, то результирующий массив будет содержать строковые ключи тогда и только тогда, если передан ровно один массив. Если передано больше одного аргумента, то результирующий массив будет всегда содержать числовые ключи.

Пример #5 Использование array_map() со строковыми ключами

<?php
$arr = array("stringkey" => "value");
function cb1($a) {
    return array ($a);
}
function cb2($a, $b) {
    return array ($a, $b);
}
var_dump(array_map("cb1", $arr));
var_dump(array_map("cb2", $arr, $arr));
var_dump(array_map(null, $arr));
var_dump(array_map(null, $arr, $arr));
?>

Результат выполнения данного примера:

array(1) {
  ["stringkey"]=>
  array(1) {
    [0]=>
    string(5) "value"
  }
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}
array(1) {
  ["stringkey"]=>
  string(5) "value"
}
array(1) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "value"
    [1]=>
    string(5) "value"
  }
}

Смотрите также

  • array_filter() - Фильтрует элементы массива с помощью callback-функции
  • array_reduce() - Итеративно уменьшает массив к единственному значению, используя callback-функцию
  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива
  • информация о типе callback


Рекурсивное слияние двух или более массивов

  • « array_map
  • array_merge »
  • PHP Manual
  • Функции для работы с массивами
  • Рекурсивное слияние двух или более массивов

array_merge_recursive

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_merge_recursive — Рекурсивное слияние двух или более массивов

Описание

array array_merge_recursive ( array $array1 [, array $... ] )

Функция array_merge_recursive() сливает элементы двух или более массивов таким образом, что значения одного массива присоединяются в конец другого. Возвращает результирующий массив.

Если входные массивы имеют одинаковые строковые ключи, то значения этих ключей сливаются в массив, и это делается рекурсивно, так что если одно из значений является массивом, то функция сливает его с соответствующим значением в другом массиве. Однако, если массивы имеют одинаковые числовые ключи, значение, упомянутое последним, не заменит исходное значение, а будет добавлено в конец массива.

Список параметров

array1

Первоначальный массив для слияния.

...

Дополнительные рекурсивно сливаемые массивы.

Возвращаемые значения

Массив значений, полученный в результате слияния аргументов вместе.

Примеры

Пример #1 Пример использования array_merge_recursive()

<?php
$ar1 = array("color" => array("favorite" => "red"), 5);
$ar2 = array(10, "color" => array("favorite" => "green", "blue"));
$result = array_merge_recursive($ar1, $ar2);
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
        )

    [0] => 5
    [1] => 10
)

Смотрите также

  • array_merge() - Сливает один или большее количество массивов
  • array_replace_recursive() - Рекурсивно заменяет элементы первого массива элементами переданных массивов


Сливает один или большее количество массивов

  • « array_merge_recursive
  • array_multisort »
  • PHP Manual
  • Функции для работы с массивами
  • Сливает один или большее количество массивов

array_merge

(PHP 4, PHP 5, PHP 7)

array_merge — Сливает один или большее количество массивов

Описание

array array_merge ( array $array1 [, array $... ] )

Сливает элементы одного или большего количества массивов таким образом, что значения одного массива присоединяются к концу предыдущего. Результатом работы функции является новый массив.

Если входные массивы имеют одинаковые строковые ключи, тогда каждое последующее значение будет заменять предыдущее. Однако, если массивы имеют одинаковые числовые ключи, значение, упомянутое последним, не заменит исходное значение, а будет добавлено в конец массива.

В результирующем массиве значения исходного массива с числовыми ключами будут перенумерованы в возрастающем порядке, начиная с нуля.

Список параметров

array1

Исходный сливаемый массив.

...

Дополнительные сливаемые массивы.

Возвращаемые значения

Возвращает результирующий массив.

Примеры

Пример #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 operators


Сортирует несколько массивов или многомерные массивы

  • « array_merge
  • array_pad »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует несколько массивов или многомерные массивы

array_multisort

(PHP 4, PHP 5, PHP 7)

array_multisort — Сортирует несколько массивов или многомерные массивы

Описание

bool array_multisort ( array &$array1 [, mixed $array1_sort_order = SORT_ASC [, mixed $array1_sort_flags = SORT_REGULAR [, mixed $... ]]] )

Функция array_multisort() может быть использована для сортировки сразу нескольких массивов или одного многомерного массива в соответствии с одной или несколькими размерностями.

Ассоциативные (string) ключи будут сохранены, но числовые ключи будут переиндексированы.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array1

Сортируемый массив (array).

array1_sort_order

Порядок для сортировки вышеуказанного аргумента array. Или SORT_ASC для сортировки по возрастанию, или SORT_DESC для сортировки по убыванию.

Этот аргумент может меняться местами с array1_sort_flags или вообще быть пропущенным. В этом случае подразумевается значение SORT_ASC.

array1_sort_flags

Настройки сортировки для вышеуказанного аргумента array:

Флаг способа сортировки:

  • SORT_REGULAR - обычное сравнение элементов (без изменения типов)
  • SORT_NUMERIC - сравнение элементов как чисел
  • SORT_STRING - сравнение элементов как строк
  • SORT_LOCALE_STRING - сравнение элементов как строк, учитывая текущую локаль. Используется локаль, которую можно менять с помощью функции setlocale()
  • SORT_NATURAL - сравнение элементов как строк с использованием алгоритма "natural order", так же как в функции natsort()
  • SORT_FLAG_CASE - может быть объединен (бинарное OR) с SORT_STRING или SORT_NATURAL для сортировки без учета регистра

Этот аргумент может меняться местами с array1_sort_order или вообще быть пропущенным. В этом случае подразумевается значение SORT_REGULAR .

...

Дополнительные массивы, необязательно следующие после порядка сортировки и флагов. Сравниваются только элементы соответствующие таким же элементам в предыдущих массивах. Другими словами, производится сортировка в лексикографическом порядке.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.4.0 | Добавлены SORT_NATURAL и SORT_FLAG_CASE в возможные флаги сортировки array1_sort_flags.
5.3.0 | Добавлен SORT_LOCALE_STRING в возможные флаги сортировки array1_sort_flags.

Примеры

Пример #1 Сортировка нескольких массивов

<?php
$ar1 = array(10, 100, 100, 0);
$ar2 = array(1, 3, 2, 4);
array_multisort($ar1, $ar2);

var_dump($ar1);
var_dump($ar2);
?>

В вышеприведенном примере, после того, как будет осуществлена сортировка, первый массив будет содержать 0, 10, 100, 100. Второй - 4, 1, 2, 3. Элементы второго массива, соответствующие идентичным элементам первого (100 и 100), также будут отсортированы.

array(4) {
  [0]=> int(0)
  [1]=> int(10)
  [2]=> int(100)
  [3]=> int(100)
}
array(4) {
  [0]=> int(4)
  [1]=> int(1)
  [2]=> int(2)
  [3]=> int(3)
}

Пример #2 Сортировка многомерного массива

<?php
$ar = array(
       array("10", 11, 100, 100, "a"),
       array(   1,  2, "2",   3,   1)
      );
array_multisort($ar[0], SORT_ASC, SORT_STRING,
                $ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>

В вышеприведенном примере, после сортировки, первый массив будет содержать "10", 100, 100, 11, "a" (его элементы были отсортированы в возрастающем порядке), а второй массив будет содержать 1, 3, "2", 2, 1 (элементы отсортированы как числа, в порядке убывания).

array(2) {
  [0]=> array(5) {
    [0]=> string(2) "10"
    [1]=> int(100)
    [2]=> int(100)
    [3]=> int(11)
    [4]=> string(1) "a"
  }
  [1]=> array(5) {
    [0]=> int(1)
    [1]=> int(3)
    [2]=> string(1) "2"
    [3]=> int(2)
    [4]=> int(1)
  }
}

Пример #3 Сортировка результатов из базы данных

В этом примере, каждый элемент массива data представляет собой ряд таблицы. Такой тип данных типичен для записей базы данных.

Примерные данные:

# том  | издание
volume | edition
-------+--------
    67 |       2
    86 |       1
    85 |       6
    98 |       2
    86 |       6
    67 |       7

Данные представлены в виде массива с именем data. Обычно их можно получить, к пример, с помощью цикла из функции mysqli_fetch_assoc().

<?php
$data[] = array('volume' => 67, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 1);
$data[] = array('volume' => 85, 'edition' => 6);
$data[] = array('volume' => 98, 'edition' => 2);
$data[] = array('volume' => 86, 'edition' => 6);
$data[] = array('volume' => 67, 'edition' => 7);
?>

В нашем примере мы будем сортировать по volume в убывающем порядке, а по edition - в возрастающем.

У нас есть массив строк, но array_multisort() необходим массив столбцов, поэтому сначала мы используем следующий код для получения столбцов, а потом выполним сортировку.

<?php
// Получение списка столбцов
foreach ($data as $key => $row) {
    $volume[$key]  = $row['volume'];
    $edition[$key] = $row['edition'];
}

// Сортируем данные по volume по убыванию и по edition по возрастанию
// Добавляем $data в качестве последнего параметра, для сортировки по общему ключу
array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
?>

Теперь данные отсортированы и будут выглядеть вот так:

volume | edition
-------+--------
    98 |       2
    86 |       1
    86 |       6
    85 |       6
    67 |       2
    67 |       7

Пример #4 Сортировка без учета регистра

Обе константы SORT_STRING и SORT_REGULAR учитывают регистр при сортировке, строки, начинающиеся с заглавной буквы будут выставлены раньше строк, начинающихся со строчной буквы.

Для выполнения регистронезависимой сортировки, необходимо использовать копию исходного массива приведенную к нижнему регистру.

<?php
$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);

print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [0] => Alpha
    [1] => atomic
    [2] => bank
    [3] => Beta
)

Смотрите также

  • usort() - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
  • Сравнение функций сортировки массивов


Дополнить размер массива определенным значением до заданной величины

  • « array_multisort
  • array_pop »
  • PHP Manual
  • Функции для работы с массивами
  • Дополнить размер массива определенным значением до заданной величины

array_pad

(PHP 4, PHP 5, PHP 7)

array_pad — Дополнить размер массива определенным значением до заданной величины

Описание

array array_pad ( array $array , int $size , mixed $value )

Функция array_pad() возвращает копию массива array, дополненного до размера size элементами со значением value. Если параметр size положителен, то массив увеличивается вправо, если отрицателен - влево. Если абсолютное значение параметра size меньше или равно размеру массива array, функция не производит никаких операций. За один раз возможно добавить максимум 1048576 элементов.

Список параметров

array

Исходный массив, к которому дополняются элементы.

size

Новый размер массива.

value

Дополняемое значение, если длина массива array меньше size.

Возвращаемые значения

Возвращает копию array, дополненного до размера указанного size значением value. Если параметр size положителен, то массив дополняется вправо, если он отрицателен - влево. Если абсолютное значение size меньше либо равно длине array, то дополнение не происходит.

Примеры

Пример #1 Пример использования array_pad()

<?php
$input = array(12, 10, 9);

$result = array_pad($input, 5, 0);
// результат: array(12, 10, 9, 0, 0)

$result = array_pad($input, -7, -1);
// результат: array(-1, -1, -1, -1, 12, 10, 9)

$result = array_pad($input, 2, "noop");
// операция не произведена

Смотрите также

  • array_fill() - Заполняет массив значениями
  • range() - Создает массив, содержащий диапазон элементов


Извлекает последний элемент массива

  • « array_pad
  • array_product »
  • PHP Manual
  • Функции для работы с массивами
  • Извлекает последний элемент массива

array_pop

(PHP 4, PHP 5, PHP 7)

array_pop — Извлекает последний элемент массива

Описание

mixed array_pop ( array &$array )

array_pop() извлекает и возвращает последнее значение параметра array, уменьшая размер array на один элемент.

Замечание: Эта функция при вызове сбрасывает указатель массива, переданного параметром.

Список параметров

array

Массив, из которого берется значение.

Возвращаемые значения

Возвращает последний элемент массива array. Если array пуст (или не является массивом), будет возвращен NULL.

Ошибки

При вызове этой функции с не массивом будет вызвана ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использованияarray_pop()

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>

После этого, в $stack будет только 3 элемента:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

и raspberry будет присвоено переменной $fruit.

Смотрите также

  • array_push() - Добавляет один или несколько элементов в конец массива
  • array_shift() - Извлекает первый элемент массива
  • array_unshift() - Добавляет один или несколько элементов в начало массива


Вычислить произведение значений массива

  • « array_pop
  • array_push »
  • PHP Manual
  • Функции для работы с массивами
  • Вычислить произведение значений массива

array_product

(PHP 5 >= 5.1.0, PHP 7)

array_product — Вычислить произведение значений массива

Описание

number array_product ( array $array )

array_product() возвращает произведение значений массива.

Список параметров

array

Массив.

Возвращаемые значения

Возвращает произведение как тип integer или float.

Список изменений

Версия | Описание
5.3.6 | Результатом произведения пустого массива теперь является 1, тогда как ранее данная функция возвращала 0.

Примеры

Пример #1 Примеры использования array_product()

<?php

$a = array(2, 4, 6, 8);
echo "product(a) = " . array_product($a) . "\n";
echo "product(array()) = " . array_product(array()) . "\n";

?>

Результат выполнения данного примера:

product(a) = 384
product(array()) = 1


Добавляет один или несколько элементов в конец массива

  • « array_product
  • array_rand »
  • PHP Manual
  • Функции для работы с массивами
  • Добавляет один или несколько элементов в конец массива

array_push

(PHP 4, PHP 5, PHP 7)

array_push — Добавляет один или несколько элементов в конец массива

Описание

int array_push ( array &$array , mixed $value1 [, mixed $... ] )

array_push() использует array как стек, и добавляет переданные значения в конец массива array. Длина array увеличивается на количество переданных значений. Имеет тот же эффект, что и выражение:

<?php
$array[] = $var;
?>
повторенное для каждого переданного значения.

Замечание: Вместо использования array_push() для добавления одного элемента в массив, лучше использовать $array[] = , потому что в этом случае не происходит затрат на вызов функции.

Замечание: array_push() вызовет предупреждение, если первый аргумент не является массивом. Это отличается от поведения конструкции $var[], в случае которой будет создан новый массив.

Список параметров

array

Входной массив.

value1

Первое значение, добавляемое в конец массива array.

Возвращаемые значения

Возвращает новое количество элементов в массиве.

Примеры

Пример #1 Пример использования array_push()

<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

Результат выполнения данного примера:

Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

Смотрите также

  • array_pop() - Извлекает последний элемент массива
  • array_shift() - Извлекает первый элемент массива
  • array_unshift() - Добавляет один или несколько элементов в начало массива


Выбирает одно или несколько случайных значений из массива

  • « array_push
  • array_reduce »
  • PHP Manual
  • Функции для работы с массивами
  • Выбирает одно или несколько случайных значений из массива

array_rand

(PHP 4, PHP 5, PHP 7)

array_rand — Выбирает одно или несколько случайных значений из массива

Описание

mixed array_rand ( array $array [, int $num = 1 ] )

Выбирает одно или несколько случайных значений из массива. Возвращает ключ (или ключи) данных случайных элементов. Данная функция использует псевдо-случайный генератор и не предназначена для использования в криптографии.

Список параметров

input

Входной массив.

num_req

Определяет количество выбираемых элементов.

Возвращаемые значения

Если вы выбираете только одно значение, функция array_rand() возвращает ключ, соответствующий этому значению. В обратном случае, она возвращает массив ключей, соответствующих случайным значениям. Это сделано для того, чтобы дать возможность выбрать из массива как случайные значения, так и случайные ключи. Попытка выбрать больше элементов, чем есть в массиве, сгенерирует ошибку уровня E_WARNING и вернет NULL.

Список изменений

Версия | Описание
5.2.10 | Возвращаемый массив ключей больше не возвращается в случайном порядке.
4.2.0 | Генератор случайных чисел инициализируется автоматически.

Примеры

Пример #1 Пример использования array_rand()

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>

Смотрите также

  • shuffle() - Перемешивает массив


Итеративно уменьшает массив к единственному значению, используя callback-функцию

  • « array_rand
  • array_replace_recursive »
  • PHP Manual
  • Функции для работы с массивами
  • Итеративно уменьшает массив к единственному значению, используя callback-функцию

array_reduce

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

array_reduce — Итеративно уменьшает массив к единственному значению, используя callback-функцию

Описание

mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )

array_reduce() итеративно применяет callback-функцию callback к элементам массива array и, таким образом, сводит массив к единственному значению.

Список параметров

array

Входной массив.

callback
mixed callback ( mixed $carry , mixed $item )
carry

Содержит результирующее значение с предыдущей итерации; в случае же первой итерации содержит значение параметра initial.

item

Содержит значение текущей итерации.

initial

Если передан необязательный параметр initial, то он будет использован в начале процесса, или в качестве окончательного результата в случае пустого массива.

Возвращаемые значения

Возвращает получившееся значение.

Если массив пуст и не передан параметр initial, array_reduce() вернет NULL.

Список изменений

Версия | Описание
5.3.0 | Параметр initial теперь позволяет передать mixed, ранее передавался только integer.

Примеры

Пример #1 Пример использованияarray_reduce()

<?php
function sum($carry, $item)
{
    $carry += $item;
    return $carry;
}

function product($carry, $item)
{
    $carry *= $item;
    return $carry;
}

$a = array(1, 2, 3, 4, 5);
$x = array();

var_dump(array_reduce($a, "sum")); // int(15)
var_dump(array_reduce($a, "product", 10)); // int(1200), потому что: 10*1*2*3*4*5
var_dump(array_reduce($x, "sum", "No data to reduce")); // string(17) "No data to reduce"
?>

Смотрите также

  • array_filter() - Фильтрует элементы массива с помощью callback-функции
  • array_map() - Применяет callback-функцию ко всем элементам указанных массивов
  • array_unique() - Убирает повторяющиеся значения из массива
  • array_count_values() - Подсчитывает количество всех значений массива


Рекурсивно заменяет элементы первого массива элементами переданных массивов

  • « array_reduce
  • array_replace »
  • PHP Manual
  • Функции для работы с массивами
  • Рекурсивно заменяет элементы первого массива элементами переданных массивов

array_replace_recursive

(PHP 5 >= 5.3.0, PHP 7)

array_replace_recursive — Рекурсивно заменяет элементы первого массива элементами переданных массивов

Описание

array array_replace_recursive ( array $array1 , array $array2 [, array $... ] )

array_replace_recursive() заменяет значения массива array1 на соответствующие по ключам значения из всех следующих массивов. Если ключ из первого массива есть во втором, его значение будет заменено на значение из второго массива. Если ключ есть во втором массиве, но отсутствует в первом, он будет создан в первом массиве. Если ключ есть только в первом массиве, то он остается как есть. Если передано несколько массивов, они будут обработаны по порядку, последующие перезаписывают предыдущие значения.

array_replace_recursive() - рекурсивная функция: она будет рекурсивно углубляться в массивы и применять к всем внутренним значениям один и тот же процесс.

Если значение, переданное в array1 является скалярным, оно будет заменено значением в array2, которое может быть как скалярным так и массивом. Если оба значения, переданные в array1 и array2 - массивы, array_replace_recursive() будет заменять их значения рекурсивно.

Список параметров

array1

Массив, элементы которого будут заменены.

array2

Массив, из которого будут взяты элементы для замены.

...

Дополнительные массивы, из которых будут браться элементы для замены.

Возвращаемые значения

Возвращает array, или NULL, если произошла ошибка.

Примеры

Пример #1 Пример использования array_replace_recursive()

<?php
$base = array('citrus' => array( "orange") , 'berries' => array("blackberry", "raspberry"), );
$replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));

$basket = array_replace_recursive($base, $replacements);
print_r($basket);

$basket = array_replace($base, $replacements);
print_r($basket);
?>

Результат выполнения данного примера:

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

)
Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
        )

)

Пример #2 array_replace_recursive() and recursive behavior

<?php
$base = array('citrus' => array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' );
$replacements = array('citrus' => 'pineapple', 'berries' => array('blueberry'), 'others' => array('litchis'));
$replacements2 = array('citrus' => array('pineapple'), 'berries' => array('blueberry'), 'others' => 'litchis');

$basket = array_replace_recursive($base, $replacements, $replacements2);
print_r($basket);

?>

Результат выполнения данного примера:

Array
(
    [citrus] => Array
        (
            [0] => pineapple
        )

    [berries] => Array
        (
            [0] => blueberry
            [1] => raspberry
        )

    [others] => litchis
)

Смотрите также

  • array_replace() - Замена элементов массива элементами других переданных массивов
  • array_merge_recursive() - Рекурсивное слияние двух или более массивов


Замена элементов массива элементами других переданных массивов

  • « array_replace_recursive
  • array_reverse »
  • PHP Manual
  • Функции для работы с массивами
  • Замена элементов массива элементами других переданных массивов

array_replace

(PHP 5 >= 5.3.0, PHP 7)

array_replace — Замена элементов массива элементами других переданных массивов

Описание

array array_replace ( array $array1 , array $array2 [, array $... ] )

array_replace() замещает значения массива array1 значениями с такими же ключами из других переданных массивов. Если ключ из первого массива присутствует во втором массиве, его значение заменяется на значение из второго массива. Если ключ есть во втором массиве, но отсутствует в первом - он будет создан в первом массиве. Если ключ присутствует только в первом массиве, то сохранится как есть. Если для замены передано несколько массивов, они будут обработаны в порядке передачи и более поздние массивы будут перезаписывать значения из предыдущих.

array_replace() не рекурсивная: значения первого массива будут заменены вне зависимости от типа значений второго массива, даже если это будут вложенные массивы.

Список параметров

array1

Массив, элементы которого требуется заменить.

array2

Массив, элементами которого будут заменяться элементы первого массива.

...

Еще массивы, из которых будут браться элементы для замены. Значения следующего массива затирают значения предыдущего.

Возвращаемые значения

Возвращает массив (array) или NULL в случае ошибки.

Примеры

Пример #1 Пример использования array_replace()

<?php
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");

$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);
?>

Результат выполнения данного примера:

Array
(
    [0] => grape
    [1] => banana
    [2] => apple
    [3] => raspberry
    [4] => cherry
)

Смотрите также

  • array_replace_recursive() - Рекурсивно заменяет элементы первого массива элементами переданных массивов
  • array_merge() - Сливает один или большее количество массивов


Возвращает массив с элементами в обратном порядке

  • « array_replace
  • array_search »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает массив с элементами в обратном порядке

array_reverse

(PHP 4, PHP 5, PHP 7)

array_reverse — Возвращает массив с элементами в обратном порядке

Описание

array array_reverse ( array $array [, bool $preserve_keys = false ] )

Принимает массив array и возвращает новый массив, содержащем элементы исходного массива в обратном порядке.

Список параметров

array

Входной массив.

preserve_keys

Если установлено в TRUE, то ключи будут сохранены. Нечисловые ключи не подвержены этой опции и всегда сохраняются.

Возвращаемые значения

Возвращает массив с элементами в обратном порядке.

Примеры

Пример #1 Пример использования array_reverse()

<?php
$input  = array("php", 4.0, array("green", "red"));
$reversed = array_reverse($input);
$preserved = array_reverse($input, true);

print_r($input);
print_r($reversed);
print_r($preserved);
?>

Результат выполнения данного примера:

Array
(
    [0] => php
    [1] => 4
    [2] => Array
        (
            [0] => green
            [1] => red
        )

)
Array
(
    [0] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [2] => php
)
Array
(
    [2] => Array
        (
            [0] => green
            [1] => red
        )

    [1] => 4
    [0] => php
)

Смотрите также

  • array_flip() - Меняет местами ключи с их значениями в массиве


Осуществляет поиск данного значения в массиве и возвращает ключ первого найденого элемента в случае удачи

  • « array_reverse
  • array_shift »
  • PHP Manual
  • Функции для работы с массивами
  • Осуществляет поиск данного значения в массиве и возвращает ключ первого найденого элемента в случае удачи

array_search

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

array_search — Осуществляет поиск данного значения в массиве и возвращает ключ первого найденого элемента в случае удачи

Описание

mixed array_search ( mixed $needle , array $haystack [, bool $strict = false ] )

Ищет в haystack значение needle.

Список параметров

needle

Искомое значение.

Замечание:

Если needle является строкой, сравнение происходит с учетом регистра.

haystack

Массив.

strict

Если третий параметр strict установлен в TRUE, то функция array_search() будет искать идентичные элементы в haystack. Это означает, что также будут проверяться типы needle в haystack, а объекты должны быть одни и тем же экземпляром.

Возвращаемые значения

Возвращает ключ для needle, если он был найден в массиве, иначе FALSE.

Если needle присутствует в haystack более одного раза, будет возвращён первый найденный ключ. Для того, чтобы возвратить ключи для всех найденных значений, используйте функцию array_keys() с необязательным параметром search_value.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Список изменений

Версия | Описание
5.3.0 | Вместе со всеми внутренними функциями PHP начиная с 5.3.0, array_search() возвращает NULL, если ей были переданы неверные параметры.

Примеры

Пример #1 Пример использования array_search()

<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array);   // $key = 1;
?>

Смотрите также

  • array_keys() - Возвращает все или некоторое подмножество ключей массива
  • array_values() - Выбирает все значения массива
  • array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс
  • in_array() - Проверяет, присутствует ли в массиве значение


Извлекает первый элемент массива

  • « array_search
  • array_slice »
  • PHP Manual
  • Функции для работы с массивами
  • Извлекает первый элемент массива

array_shift

(PHP 4, PHP 5, PHP 7)

array_shift — Извлекает первый элемент массива

Описание

mixed array_shift ( array &$array )

array_shift() извлекает первое значение массива array и возвращает его, сокращая размер array на один элемент. Все числовые ключи будут изменены таким образом, что нумерация массива начнётся с нуля, в то время как строковые ключи останутся прежними.

Замечание: Эта функция при вызове сбрасывает указатель массива, переданного параметром.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает извлекаемое значение, или NULL, если array пуст или не является массивом.

Примеры

Пример #1 Пример использования array_shift()

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

Результат выполнения данного примера:

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

и значение orange будет присвоено переменной $fruit.

Смотрите также

  • array_unshift() - Добавляет один или несколько элементов в начало массива
  • array_push() - Добавляет один или несколько элементов в конец массива
  • array_pop() - Извлекает последний элемент массива


Выбирает срез массива

  • « array_shift
  • array_splice »
  • PHP Manual
  • Функции для работы с массивами
  • Выбирает срез массива

array_slice

(PHP 4, PHP 5, PHP 7)

array_slice — Выбирает срез массива

Описание

array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )

array_slice() возвращает последовательность элементов массива array, определённую параметрами offset и length.

Список параметров

array

Входной массив.

offset

Если параметр offset неотрицателен, последовательность начнётся на указанном расстоянии от начала array. Если offset отрицателен, последовательность начнётся на расстоянии указанном расстоянии от конца array.

length

Если в эту функцию передан положительный параметр length, последовательность будет включать количество элементов меньшее или равное length. Если количество элементов массива меньше чем параметр length, то только доступные элементы массива будут присутствовать. Если в эту функцию передан отрицательный параметр length, последовательность остановится на указанном расстоянии от конца массива. Если он опущен, последовательность будет содержать все элементы с offset до конца массива array.

preserve_keys

Обратите внимание, что по умолчанию array_slice() сбрасывает ключи массива. Вы можете переопределить это поведение, установив параметр preserve_keys в TRUE.

Возвращаемые значения

Возвращает срез. Если смещение больше длины массива, то будет возвращен пустой массив.

Список изменений

Версия | Описание
5.2.4 | Значение параметра length по умолнанию изменено на NULL. Значение NULL в качестве length теперь означает, что в качестве этого значения будет использована длина массива array. До этой версии, NULL в параметре length означал 0. Т.е. ничего не возвращалось.
5.0.2 | Добавлен необязательный параметр preserve_keys.

Примеры

Пример #1 Пример использования array_slice()

<?php
$input = array("a", "b", "c", "d", "e");

$output = array_slice($input, 2);      // возвращает "c", "d", и "e"
$output = array_slice($input, -2, 1);  // возвращает "d"
$output = array_slice($input, 0, 3);   // возвращает "a", "b", и "c"

// заметьте разницу в индексах массивов
print_r(array_slice($input, 2, -1));
print_r(array_slice($input, 2, -1, true));
?>

Результат выполнения данного примера:

Array
(
    [0] => c
    [1] => d
)
Array
(
    [2] => c
    [3] => d
)

Смотрите также

  • array_splice() - Удаляет часть массива и заменяет её чем-нибудь ещё
  • unset() - Удаляет переменную
  • array_chunk() - Разбивает массив на части


Удаляет часть массива и заменяет её чем-нибудь ещё

  • « array_slice
  • array_sum »
  • PHP Manual
  • Функции для работы с массивами
  • Удаляет часть массива и заменяет её чем-нибудь ещё

array_splice

(PHP 4, PHP 5, PHP 7)

array_splice — Удаляет часть массива и заменяет её чем-нибудь ещё

Описание

array array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] )

Удаляет length элементов, расположенных на расстоянии offset из массива input, и заменяет их элементами массива replacement, если он передан в качестве параметра.

Обратите внимание, что числовые ключи в массиве input не сохраняются.

Замечание: Если параметр replacement не является массивом, он будет преобразован к нему (т.е. (array) $parameter). Это может привести к неожиданным результатам при использовании объекта или NULL в качестве replacement.

Список параметров

input

Входной массив.

offset

Если параметр offset положителен, будут удалены элементы, находящиеся на расстоянии offset от начала input. Если offset отрицателен, будут удалены элементы, находящиеся на расстоянии offset от конца input.

length

Если параметр length опущен, будут удалены все элементы начиная с позиции offset и до конца массива. Если length указан и он положителен, то будет удалено именно столько элементов. Если же параметр length отрицателен, то конец удаляемой части элементов будет отстоять на это количество от конца массива. Если length задан как 0б ничего удалено не будет. Совет: для того, чтобы удалить все элементы массива, начиная с позиции offset до конца массива, в то время как указан параметр replacement, используйте count($input) в качестве параметра length.

replacement

Если передан массив replacement в качестве аргумента, тогда удалённые элементы будут заменены элементами этого массива.

Если параметры offset и length таковы, что из исходного массива не будет ничего удалено, тогда элементы массива replacement будут вставлены на позицию offset. Обратите внимание, что ключи массива replacement не сохраняются.

Совет: если replacement является просто одним элементом, нет необходимости заключать его в array(), если только этот элемент сам не является массивом, объектом или NULL.

Возвращаемые значения

Возвращает массив, содержащий удалённые элементы.

Примеры

Пример #1 Примеры использования array_splice()

<?php
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
// $input теперь array("red", "green")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// $input теперь array("red", "yellow")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
// $input теперь array("red", "orange")

$input = array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
// $input теперь array("red", "green", "blue", "black", "maroon")

$input = array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
// $input теперь array("red", "green", "blue", "purple", "yellow");
?>

Пример #2 array_splice() examples

Следующие выражения одинаково меняют значения массива $input:

<?php
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));
array_pop($input);
array_splice($input, -1);
array_shift($input);
array_splice($input, 0, 1);
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));
$input[$x] = $y; // для массивов, где ключ равен смещению
array_splice($input, $x, 1, $y);
?>

Смотрите также

  • array_slice() - Выбирает срез массива
  • unset() - Удаляет переменную
  • array_merge() - Сливает один или большее количество массивов


Вычисляет сумму значений массива

  • « array_splice
  • array_udiff_assoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет сумму значений массива

array_sum

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

array_sum — Вычисляет сумму значений массива

Описание

number array_sum ( array $array )

array_sum() возвращает сумму значений массива.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает сумму значений в виде integer или float; 0 если array пуст.

Примеры

Пример #1 Пример использования array_sum()

<?php
$a = array(2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo "sum(b) = " . array_sum($b) . "\n";
?>

Результат выполнения данного примера:

sum(a) = 20
sum(b) = 6.9


Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

  • « array_sum
  • array_udiff_uassoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

array_udiff_assoc

(PHP 5, PHP 7)

array_udiff_assoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

Описание

array array_udiff_assoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )

Вычисляет расхождение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию.

Замечание: Пожалуйста, обратите внимание, что эта функция обрабатывает только одно измерение многомерного массива. Разумеется, вы можете обработать более одного измерения, используя, например, array_udiff_assoc($array1[0], $array2[0], "some_comparison_func");.

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )

Возвращаемые значения

array_udiff_assoc() возвращает array, содержащий все элементы array1, которых нет в каком-либо из всех остальных аргументов. Обратите внимание, что в отличие от array_diff() и array_udiff() в сравнении используются ключи. Сравнение данных массива производится с помощью callback-функции, предоставленной пользователем. В этом смысле, поведение этой функции отличается от array_diff_assoc(), которая используется встроенную функцию для сравнения.

Примеры

Пример #1 Пример использования array_udiff_assoc()

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    static function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }
}

$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

В примере выше вы видите, что пара "1" => new cr(4) имеется в обоих массивах и поэтому её нет в выводе функции.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию

  • « array_udiff_assoc
  • array_udiff »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию

array_udiff_uassoc

(PHP 5, PHP 7)

array_udiff_uassoc — Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию

Описание

array array_udiff_uassoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func , callable $key_compare_func )

Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию.

Обратите внимание, что для сравнения используются ключи, в отличие от array_diff() и array_udiff().

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
key_compare_func

Сравнение ключей (индексов) также осуществляется с помощью callback-функции key_compare_func. Это отличается от поведения array_udiff_assoc(), которая сравнивает индексы с помощью встроенной функции.

Возвращаемые значения

Возвращает array, содержащий все элементы array1, которых нет в каком-либо из остальных аргументов.

Примеры

Пример #1 Пример использованияarray_udiff_uassoc()

<?php
class cr {
    private $priv_member;
    function cr($val)
    {
        $this->priv_member = $val;
    }

    static function comp_func_cr($a, $b)
    {
        if ($a->priv_member === $b->priv_member) return 0;
        return ($a->priv_member > $b->priv_member)? 1:-1;
    }

    static function comp_func_key($a, $b)
    {
        if ($a === $b) return 0;
        return ($a > $b)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23), 1=> new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3), 1=> new cr(4), 2 => new cr(-15),);

$result = array_udiff_uassoc($a, $b, array("cr", "comp_func_cr"), array("cr", "comp_func_key"));
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

В вышеприведённом примере вы можете видеть, что пара "1" => new cr(4) присутствует в обоих массивах и поэтому отсутствует в выводе функции. Помните, что необходимо использовать две функции обратного вызова.

Примечания

Замечание: Пожалуйста, обратите внимание, что эта функция обрабатывает только одно измерение многомерного массива. Разумеется, вы можете обработать более одного измерения, используя array_udiff_uassoc($array1[0], $array2[0], "data_compare_func", "key_compare_func");.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Вычисляет расхождение массивов, используя для сравнения callback-функцию

  • « array_udiff_uassoc
  • array_uintersect_assoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет расхождение массивов, используя для сравнения callback-функцию

array_udiff

(PHP 5, PHP 7)

array_udiff — Вычисляет расхождение массивов, используя для сравнения callback-функцию

Описание

array array_udiff ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )

Вычисляет расхождение массивов, используя для сравнения данных callback-функцию. Это отличается от поведения array_diff(), которая использует встроенную функцию для сравнения данных.

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Callback-функция, используемая для сравнения.

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )

Возвращаемые значения

Возвращает массив, содержащий все элементы array1, которые не существуют в каком-либо из других аргументов.

Примеры

Пример #1 Пример использования array_udiff() с объектами класса stdClass

<?php
// массивы для сравнения
$array1 = array(new stdclass, new stdclass,
                new stdclass, new stdclass,
               );

$array2 = array(
                new stdclass, new stdclass,
               );

// проставление некоторых свойств для объектов
$array1[0]->width = 11; $array1[0]->height = 3;
$array1[1]->width = 7;  $array1[1]->height = 1;
$array1[2]->width = 2;  $array1[2]->height = 9;
$array1[3]->width = 5;  $array1[3]->height = 7;

$array2[0]->width = 7;  $array2[0]->height = 5;
$array2[1]->width = 9;  $array2[1]->height = 2;

function compare_by_area($a, $b) {
    $areaA = $a->width * $a->height;
    $areaB = $b->width * $b->height;

    if ($areaA < $areaB) {
        return -1;
    } elseif ($areaA > $areaB) {
        return 1;
    } else {
        return 0;
    }
}

print_r(array_udiff($array1, $array2, 'compare_by_area'));
?>

Результат выполнения данного примера:

Array
(
    [0] => stdClass Object
        (
            [width] => 11
            [height] => 3
        )

    [1] => stdClass Object
        (
            [width] => 7
            [height] => 1
        )

)

Пример #2 Пример использования array_udiff() с объектами класса DateTime

<?php
class MyCalendar {
    public $free = array();
    public $booked = array();

    public function __construct($week = 'now') {
        $start = new DateTime($week);
        $start->modify('Monday this week midnight');
        $end = clone $start;
        $end->modify('Friday this week midnight');
        $interval = new DateInterval('P1D');
        foreach (new DatePeriod($start, $interval, $end) as $freeTime) {
            $this->free[] = $freeTime;
        }
    }

    public function bookAppointment(DateTime $date, $note) {
        $this->booked[] = array('date' => $date->modify('midnight'), 'note' => $note);
    }

    public function checkAvailability() {
        return array_udiff($this->free, $this->booked, array($this, 'customCompare'));
    }

    public function customCompare($free, $booked) {
        if (is_array($free)) $a = $free['date'];
        else $a = $free;
        if (is_array($booked)) $b = $booked['date'];
        else $b = $booked;
        if ($a == $b) {
            return 0;
        } elseif ($a > $b) {
            return 1;
        } else {
            return -1;
        }
    }
}

// Создание календаря еженедельных встреч
$myCalendar = new MyCalendar;

// Запись некоторых еженедельных встреч
$myCalendar->bookAppointment(new DateTime('Monday this week'), "Уборка квартиры сотрудника Google.");
$myCalendar->bookAppointment(new DateTime('Wednesday this week'), "Катание на сноуборде.");
$myCalendar->bookAppointment(new DateTime('Friday this week'), "Борьба с багами в коде.");

// Проверка доступности дней путем сравнения дат в $booked с датами из $free
echo "Я доступен в следующие дни на этой неделе...\n\n";
foreach ($myCalendar->checkAvailability() as $free) {
    echo $free->format('l'), "\n";
}
echo "\n\n";
echo "Я занят в следующие дни на этой неделе...\n\n";
foreach ($myCalendar->booked as $booked) {
    echo $booked['date']->format('l'), ": ", $booked['note'], "\n";
}
?>

Результат выполнения данного примера:

Я доступен в следующие дни на этой неделе...

Tuesday
Thursday

Я занят в следующие дни на этой неделе...

Monday: Уборка квартиры сотрудника Google.
Wednesday: Катание на сноуборде.
Friday: Борьба с багами в коде.

Примечания

Замечание: Обратите внимание, что эта функция обрабатывает только одно измерение многомерного массива. Разумеется, вы можете обработать более одного измерения, используя array_udiff($array1[0], $array2[0], "data_compare_func");.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

  • « array_udiff
  • array_uintersect_uassoc »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

array_uintersect_assoc

(PHP 5, PHP 7)

array_uintersect_assoc — Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию

Описание

array array_uintersect_assoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )

Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию.

Учтите, что в сравнении используются ключи, в отличии от array_uintersect(). Значения сравниваются с помощью callback-функции.

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )

Возвращаемые значения

Возвращает массив, содержащий все элементы array1, которые существуют во всех остальных аргументах.

Примеры

Пример #1 Пример использования array_uintersect_assoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>

Результат выполнения данного примера:

Array
(
    [a] => green
)

Смотрите также

  • array_uintersect() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции

  • « array_uintersect_assoc
  • array_uintersect »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции

array_uintersect_uassoc

(PHP 5, PHP 7)

array_uintersect_uassoc — Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции

Описание

array array_uintersect_uassoc ( array $array1 , array $array2 [, array $... ], callable $value_compare_func , callable $key_compare_func )

Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения ключей и значений разные callback-функции. То есть значения сравниваются одной callback-функцией, а индексы другой.

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
key_compare_func

Callback-функция для сравнения ключей.

Возвращаемые значения

Возвращает массив, содержащий все элементы array1, которые существуют во всех остальных аргументах.

Примеры

Пример #1 Пример использования array_uintersect_uassoc()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect_uassoc($array1, $array2, "strcasecmp", "strcasecmp"));
?>

Результат выполнения данного примера:

Array
(
    [a] => green
    [b] => brown
)

Смотрите также

  • array_uintersect() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию


Вычисляет пересечение массивов, используя для сравнения значений callback-функцию

  • « array_uintersect_uassoc
  • array_unique »
  • PHP Manual
  • Функции для работы с массивами
  • Вычисляет пересечение массивов, используя для сравнения значений callback-функцию

array_uintersect

(PHP 5, PHP 7)

array_uintersect — Вычисляет пересечение массивов, используя для сравнения значений callback-функцию

Описание

array array_uintersect ( array $array1 , array $array2 [, array $... ], callable $value_compare_func )

Вычисляет пересечение массивов, используя для сравнения значений callback-функцию.

Список параметров

array1

Первый массив.

array2

Второй массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )

Возвращаемые значения

Возвращает массив, содержащий все элементы array1, которые существуют во всех остальных аргументах.

Примеры

Пример #1 Пример использования array_uintersect()

<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

print_r(array_uintersect($array1, $array2, "strcasecmp"));
?>

Результат выполнения данного примера:

Array
(
    [a] => green
    [b] => brown
    [0] => red
)

Смотрите также

  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции


Убирает повторяющиеся значения из массива

  • « array_uintersect
  • array_unshift »
  • PHP Manual
  • Функции для работы с массивами
  • Убирает повторяющиеся значения из массива

array_unique

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_unique — Убирает повторяющиеся значения из массива

Описание

array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )

Принимает входной array и возвращает новый массив без повторяющихся значений.

Обратите внимание, что ключи сохранятся. array_unique() сначала сортирует значения как строки, сохраняет первый встреченный ключ для каждого значения и игнорирует все последующие ключи. Это не означает, что первый ключ каждого значения неотсортированного array будет сохранён.

Замечание: Два элемента считаются одинаковыми в том и только в том случае, если (string) $elem1 === (string) $elem2. Другими словами: если у них одинаковое строковое представление, то будет использован первый элемент.

Список параметров

array

Входной массив.

sort_flags

Можно использовать необязательный второй параметр sort_flags для изменения поведения сортировки с помощью следующих значений:

Виды сортировок флагов:

  • SORT_REGULAR - нормальное сравнение элементов (типы не меняются)
  • SORT_NUMERIC - элементы сравниваются как числа
  • SORT_STRING - элементы сравниваются как строки
  • SORT_LOCALE_STRING - сравнивает элементы как строки, с учетом текущей локали.

Возвращаемые значения

Возвращает отфильтрованный массив.

Список изменений

Версия | Описание
5.2.10 | Значение по умолчанию параметра sort_flags изменено обратно на SORT_STRING.
5.2.9 | Добавлен необязательный параметр sort_flags, по умолчанию равный SORT_REGULAR. До версии 5.2.9, это функция сортировала массив с помощью SORT_STRING.

Примеры

Пример #1 Пример использования array_unique()

<?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

Пример #2 array_unique() и типы:

<?php
$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);
?>

Результат выполнения данного примера:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

Смотрите также

  • array_count_values() - Подсчитывает количество всех значений массива

Примечания

Замечание: Обратите внимание, что array_unique() не предназначена для работы с многомерными массивами.


Добавляет один или несколько элементов в начало массива

  • « array_unique
  • array_values »
  • PHP Manual
  • Функции для работы с массивами
  • Добавляет один или несколько элементов в начало массива

array_unshift

(PHP 4, PHP 5, PHP 7)

array_unshift — Добавляет один или несколько элементов в начало массива

Описание

int array_unshift ( array &$array , mixed $value1 [, mixed $... ] )

array_unshift() добавляет переданные в качестве аргументов элементы в начало массива array. Обратите внимание, что список элементов добавляется целиком, то есть порядок элементов сохраняется. Все числовые ключи будут изменены таким образом, что нумерация массива будет начинаться с нуля, в то время как строковые ключи останутся прежними.

Список параметров

array

Входной массив.

value1

Первое значение для добавления.

Возвращаемые значения

Возвращает новое количество элементов в array.

Примеры

Пример #1 Пример использования array_unshift()

<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
?>

Результат выполнения данного примера:

Array
(
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
)

Смотрите также

  • array_shift() - Извлекает первый элемент массива
  • array_push() - Добавляет один или несколько элементов в конец массива
  • array_pop() - Извлекает последний элемент массива


Выбирает все значения массива

  • « array_unshift
  • array_walk_recursive »
  • PHP Manual
  • Функции для работы с массивами
  • Выбирает все значения массива

array_values

(PHP 4, PHP 5, PHP 7)

array_values — Выбирает все значения массива

Описание

array array_values ( array $array )

array_values() возвращает массив со всеми элементами массива array. Она также заново индексирует возвращаемый массив числовыми индексами.

Список параметров

array

Массив.

Возвращаемые значения

Возвращает индексированный массив значений.

Примеры

Пример #1 Пример использования array_values()

<?php
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
?>

Результат выполнения данного примера:

Array
(
    [0] => XL
    [1] => gold
)

Смотрите также

  • array_keys() - Возвращает все или некоторое подмножество ключей массива
  • array_combine() - Создает новый массив, используя один массив в качестве ключей, а другой в качестве соответствующих значений


Рекурсивно применяет пользовательскую функцию к каждому элементу массива

  • « array_values
  • array_walk »
  • PHP Manual
  • Функции для работы с массивами
  • Рекурсивно применяет пользовательскую функцию к каждому элементу массива

array_walk_recursive

(PHP 5, PHP 7)

array_walk_recursive — Рекурсивно применяет пользовательскую функцию к каждому элементу массива

Описание

bool array_walk_recursive ( array &$array , callable $callback [, mixed $userdata = NULL ] )

Применяет пользовательскую функцию callback к каждому элементу массива input. Эта функция обрабатывает каждый элемент многомерного массива.

Список параметров

array

Входной массив.

callback

Обычно, callback принимает два параметра. Первым параметром идет значение элемента массива input, а вторым - его ключ.

Замечание:

Если требуется, чтобы функция callback изменила значения в массиве, определите первый параметр callback как ссылку. Тогда все изменения будут применены к элементам массива.

userdata

Если указан необязательный параметр userdata, то он будет передан третьим параметром функции callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования array_walk_recursive()

<?php
$sweet = array('a' => 'apple', 'b' => 'banana');
$fruits = array('sweet' => $sweet, 'sour' => 'lemon');

function test_print($item, $key)
{
    echo "$key holds $item\n";
}

array_walk_recursive($fruits, 'test_print');
?>

Результат выполнения данного примера:

a holds apple
b holds banana
sour holds lemon

Обратите внимание, что ключ 'sweet' никогда не отображается. Любой ключ, содержащий значение типа array, не будет передаваться в функцию.

Смотрите также

  • array_walk() - Применяет заданную пользователем функцию к каждому элементу массива
  • информация о типе callback


Применяет заданную пользователем функцию к каждому элементу массива

  • « array_walk_recursive
  • array »
  • PHP Manual
  • Функции для работы с массивами
  • Применяет заданную пользователем функцию к каждому элементу массива

array_walk

(PHP 4, PHP 5, PHP 7)

array_walk — Применяет заданную пользователем функцию к каждому элементу массива

Описание

bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] )

Применяет пользовательскую функцию callback к каждому элементу массива array.

array_walk() не подвержена влиянию внутреннего указателя массива array. array_walk() обойдёт все элементы массива независимо от позиции указателя.

Список параметров

array

Входной массив.

callback

Обычно функция callback принимает два параметра. В качестве первого параметра идет значение элемента массива array, а ключ - в качестве второго.

Замечание:

Если требуется, чтобы функция callback изменила значения в массиве, определите первый параметр callback как ссылку. Тогда все изменения будут применены к элементам оригинального массива.

Замечание:

Множество встроенных функций (например, strtolower()) выводят предупреждение, если им передано больше параметров, чем они ожидают, или которые не могут непосредственно использоваться в callback.

Потенциально изменены могут быть только значения массива array; структура самого массива не может быть изменена, то есть нельзя добавить, удалить или поменять порядок элементов. Если callback-функция не соответствует этому требованию, поведение данной функции станет неопределённым и непредсказуемым.

userdata

Если указан необязательный параметр userdata, он будет передан в качестве третьего параметра в callback-функцию callback.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Если функция callback требует больше параметров, чем передано на самом деле, каждый раз, когда array_walk() будет вызывать callback, будет генерироваться ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования array_walk()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");

function test_alter(&$item1, $key, $prefix)
{
    $item1 = "$prefix: $item1";
}

function test_print($item2, $key)
{
    echo "$key. $item2<br />\n";
}

echo "До ...:\n";
array_walk($fruits, 'test_print');

array_walk($fruits, 'test_alter', 'fruit');
echo "... и после:\n";

array_walk($fruits, 'test_print');
?>

Результат выполнения данного примера:

До ...:
d. lemon
a. orange
b. banana
c. apple
... и после:
d. fruit: lemon
a. fruit: orange
b. fruit: banana
c. fruit: apple

Смотрите также

  • array_walk_recursive() - Рекурсивно применяет пользовательскую функцию к каждому элементу массива
  • iterator_apply() - Вызывает функцию для каждого элемента в итераторе
  • list() - Присваивает переменным из списка значения подобно массиву
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • call_user_func_array() - Вызывает пользовательскую функцию с массивом параметров
  • array_map() - Применяет callback-функцию ко всем элементам указанных массивов
  • информация о типе callback
  • foreach


Создает массив

  • « array_walk
  • arsort »
  • PHP Manual
  • Функции для работы с массивами
  • Создает массив

array

(PHP 4, PHP 5, PHP 7)

array — Создает массив

Описание

array array ([ mixed $... ] )

Создает массив. Подробнее о массивах читайте в разделе "Массивы".

Список параметров

...

Синтаксис "индекс => значения", разделённые запятыми, определяет индексы и их значения. Индекс может быть строкой или целым числом. Если индекс опущен, будет автоматически сгенерирован числовой индекс, начиная с 0. Если индекс - число, следующим сгенерированным индексом будет число, равное максимальному числовому индексу + 1. Обратите внимание, что если определены два одинаковых индекса, последующий перезапишет предыдущий.

Наличие висячей запятой после последнего элемента массива, несмотря на некоторую необычность, является корректным синтаксисом.

Возвращаемые значения

Возвращает массив параметров. Параметрам может быть назначен индекс с помощью оператора =>. Подробнее о массивах читайте в разделе "Массивы".

Примеры

Последующие примеры демонстрируют создание двухмерного массива, определение ключей ассоциативных массивов и и способ генерации числовых индексов для обычных массивов, если нумерация начинается с произвольного числа.

Пример #1 Пример использования array()

<?php
$fruits = array (
    "fruits"  => array("a" => "orange", "b" => "banana", "c" => "apple"),
    "numbers" => array(1, 2, 3, 4, 5, 6),
    "holes"   => array("first", 5 => "second", "third")
);
?>

Пример #2 Автоматическая индексация с помощью array()

<?php
$array = array(1, 1, 1, 1,  1, 8 => 1,  4 => 1, 19, 3 => 13);
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 13
    [4] => 1
    [8] => 1
    [9] => 19
)

Обратите внимание, что индекс '3' определён дважды, и содержит последнее значение 13. Индекс 4 определён после индекса 8, и следующий сгенерированный индекс (значение 19) - 9, начиная с максимального индекса 8.

Этот пример создаёт массив, нумерация которого начинается с 1.

Пример #3 array(), нумерация которого начинаяется с 1

<?php
$firstquarter = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>

Результат выполнения данного примера:

Array
(
    [1] => January
    [2] => February
    [3] => March
)

Как и в Perl, вы имеете доступ к значениям массива внутри двойных кавычек. Однако в PHP нужно заключить ваш массив в фигурные скобки.

Пример #4 Доступ к массиву внутри двойных кавычек

<?php

$foo = array('bar' => 'baz');
echo "Hello {$foo['bar']}!"; // Hello baz!

?>

Примечания

Замечание:

array() является языковой конструкцией, используемой для представления литеральных массивов, и не является обычной функцией.

Смотрите также

  • array_pad() - Дополнить размер массива определенным значением до заданной величины
  • list() - Присваивает переменным из списка значения подобно массиву
  • count() - Подсчитывает количество элементов массива или что-то в объекте
  • range() - Создает массив, содержащий диапазон элементов
  • foreach
  • Тип массив


Сортирует массив в обратном порядке, сохраняя ключи

  • « array
  • asort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив в обратном порядке, сохраняя ключи

arsort

(PHP 4, PHP 5, PHP 7)

arsort — Сортирует массив в обратном порядке, сохраняя ключи

Описание

bool arsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Эта функция сортирует массив в обратном порядке таким образом, что сохраняются отношения между ключами и значениями.

Она полезна, в основном, при сортировке ассоциативных массивов, когда важно сохранить отношение ключ => значение.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

sort_flags

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. sort().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования arsort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

a = orange
d = lemon
b = banana
c = apple

Названия фруктов были отсортированы в обратном порядке и ключи, ассоциированные с элементами, были сохранены.

Смотрите также

  • asort() - Сортирует массив, сохраняя ключи
  • Сравнение функций сортировки массивов


Сортирует массив, сохраняя ключи

  • « arsort
  • compact »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив, сохраняя ключи

asort

(PHP 4, PHP 5, PHP 7)

asort — Сортирует массив, сохраняя ключи

Описание

bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Эта функция сортирует массив таким образом, что сохраняются отношения между ключами и значениями. Она полезна, в основном, при сортировке ассоциативных массивов, когда важно сохранить отношение ключ => значение.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

sort_flags

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. sort().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования asort()

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

c = apple
b = banana
d = lemon
a = orange

Названия фруктов были отсортированы в алфавитном порядке и ключи, ассоциированные с элементами, были сохранены.

Смотрите также

  • arsort() - Сортирует массив в обратном порядке, сохраняя ключи
  • Сравнение функций сортировки массивов


Создает массив, содержащий названия переменных и их значения

  • « asort
  • count »
  • PHP Manual
  • Функции для работы с массивами
  • Создает массив, содержащий названия переменных и их значения

compact

(PHP 4, PHP 5, PHP 7)

compact — Создает массив, содержащий названия переменных и их значения

Описание

array compact ( mixed $varname1 [, mixed $... ] )

Создает массив, содержащий переменные и их значения.

Для каждого из переданного параметров, функция compact() ищет переменную с указанным именем в текущей таблице символов и добавляет их в выводимый массив так, что имя переменной становится ключом, а содержимое переменной становится значением этого ключа. Короче говоря, она обратна функции extract().

Любые неустановленные строки будут просто пропущены.

Список параметров

varname1

compact() принимает неограниченное количество параметров. Любой из параметров может быть либо строкой, содержащей название переменной, либо массивом названий переменных. Массив может содержать вложенные массивы названий переменных; функция compact() обрабатывает их рекурсивно.

Возвращаемые значения

Возвращает массив со всеми переменными, добавленными в него.

Примеры

Пример #1 Пример использования compact()

<?php
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", "nothing_here", $location_vars);
print_r($result);
?>

Результат выполнения данного примера:

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

Примечания

Замечание: Замечания по работе функции compact

Так как переменные переменных не могут быть использованы с суперглобальными массивами внутри функций, суперглобальные массивы не могут быть переданы в compact().

Смотрите также

  • extract() - Импортирует переменные из массива в текущую таблицу символов


Подсчитывает количество элементов массива или что-то в объекте

  • « compact
  • current »
  • PHP Manual
  • Функции для работы с массивами
  • Подсчитывает количество элементов массива или что-то в объекте

count

(PHP 4, PHP 5, PHP 7)

count — Подсчитывает количество элементов массива или что-то в объекте

Описание

int count ( mixed $array_or_countable [, int $mode = COUNT_NORMAL ] )

Подсчитывает количество элементов массива или чего-то в объекте.

Для объектов, если у вас включена поддержка SPL, вы можете перехватить count(), реализуя интерфейс Countable. Этот интерфейс имеет ровно один метод, Countable::count(), который возвращает значение функции count().

Пожалуйста, смотрите раздел "Массивы" в этом руководстве для более детального представления о реализации и использовании массивов в PHP.

Список параметров

array_or_countable

Массив или Countable объект.

mode

Если необязательный параметр mode установлен в COUNT_RECURSIVE (или 1), count() будет рекурсивно подсчитывать количество элементов массива. Это особенно полезно для подсчёта всех элементов многомерных массивов.

Предостережение

count() умеет определять рекурсию для избежания бесконечного цикла, но при каждом обнаружении выводит ошибку уровня E_WARNING (в случае, если массив содержит себя более одного раза) и возвращает большее количество, чем могло бы ожидаться.

Возвращаемые значения

Возвращает количество элементов в array_or_countable. Если параметр не является массивом или объектом, реализующим интерфейс Countable, будет возвращена 1. За одним исключением: если array_or_countable - NULL, то будет возвращён 0.

Предостережение

count() может возвратить 0 для переменных, которые не установлены, но также может возвратить 0 для переменных, которые инициализированы пустым массивом. Используйте функцию isset() для того, чтобы протестировать, установлена ли переменная.

Примеры

Пример #1 Пример использования count()

<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
$result = count($a);
// $result == 3

$b[0]  = 7;
$b[5]  = 9;
$b[10] = 11;
$result = count($b);
// $result == 3

$result = count(null);
// $result == 0

$result = count(false);
// $result == 1
?>

Пример #2 Пример рекурсивного использования count()

<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
              'veggie' => array('carrot', 'collard', 'pea'));

// рекурсивный count
echo count($food, COUNT_RECURSIVE); // выводит 8

// обычный count
echo count($food); // выводит 2

?>

Смотрите также

  • is_array() - Определяет, является ли переменная массивом
  • isset() - Определяет, была ли установлена переменная значением отличным от NULL
  • empty() - Проверяет, пуста ли переменная
  • strlen() - Возвращает длину строки


Возвращает текущий элемент массива

  • « count
  • each »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает текущий элемент массива

current

(PHP 4, PHP 5, PHP 7)

current — Возвращает текущий элемент массива

Описание

mixed current ( array &$array )

У каждого массива имеется внутренний указатель на его "текущий" элемент, который инициализирован первым элементом, добавленным в массив.

Список параметров

array

Массив.

Возвращаемые значения

Функция current() просто возвращает значение элемента массива, на который указывает его внутренний указатель. Она не перемещает указатель куда бы то ни было. Если внутренний указатель находится за пределами списка элементов или массив пуст, current() возвращает FALSE.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #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) { }
?>

Примечания

Замечание: Вы не сможете отличить конец массива от boolean элемента FALSE. Для корректного обхода массива, который может содержать FALSE элементы, смотрите функцию each().

Смотрите также

  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • key() - Выбирает ключ из массива
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • prev() - Передвигает внутренний указатель массива на одну позицию назад
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • next() - Передвигает внутренний указатель массива на одну позицию вперёд


Возвращает текущую пару ключ/значение из массива и смещает его указатель

  • « current
  • end »
  • PHP Manual
  • Функции для работы с массивами
  • Возвращает текущую пару ключ/значение из массива и смещает его указатель

each

(PHP 4, PHP 5, PHP 7)

each — Возвращает текущую пару ключ/значение из массива и смещает его указатель

Описание

array each ( array &$array )

Возвращает текущую пару ключ/значение из массива и смещает его указатель.

После выполнения each(), указатель массива перемещается к следующему его элементу, пока не будет достигнут конец массива. Для повторного обхода массива при помощи each необходимо использовать функцию reset().

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает текущую пару ключ/значение из массива array. Данная пара возвращается в массива из четырех элементов, с ключами 0, 1, key и value. Элементы 0 и key содержат имя ключа элемента массива, а 1 и value содержат его данные.

Если внутренний указатель массива указывает за его пределы, each() возвратит FALSE.

Примеры

Пример #1 Примеры использования each()

<?php
$foo = array("bob", "fred", "jussi", "jouni", "egon", "marliese");
$bar = each($foo);
print_r($bar);
?>

$bar теперь содержит следующие пары ключ/значение:

Array
(
    [1] => bob
    [value] => bob
    [0] => 0
    [key] => 0
)

<?php
$foo = array("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each($foo);
print_r($bar);
?>

$bar теперь содержит следующие пары ключ/значение:

Array
(
    [1] => Bob
    [value] => Bob
    [0] => Robert
    [key] => Robert
)

each() обычно используется совместно с list() для обхода массива, как в этом примере:

Пример #2 Обход массива функцией each()

<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');

reset($fruit);
while (list($key, $val) = each($fruit)) {
    echo "$key => $val\n";
}
?>

Результат выполнения данного примера:

a => apple
b => banana
c => cranberry

Предостережение

Поскольку добавление элемента в массив сбрасывает указатель, вышеприведённый пример может привести бесконечному циклу, если мы будем присваивать $fruit другие значения внутри цикла.

Внимание

Функция each() также принимает и объекты, но может возвратить неожиданные результаты, поэтому итерировать свойства объекта с помощью each() не рекомендуется.

Смотрите также

  • key() - Выбирает ключ из массива
  • list() - Присваивает переменным из списка значения подобно массиву
  • current() - Возвращает текущий элемент массива
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • next() - Передвигает внутренний указатель массива на одну позицию вперёд
  • prev() - Передвигает внутренний указатель массива на одну позицию назад
  • foreach
  • Итерация объектов


Устанавливает внутренний указатель массива на его последний элемент

  • « each
  • extract »
  • PHP Manual
  • Функции для работы с массивами
  • Устанавливает внутренний указатель массива на его последний элемент

end

(PHP 4, PHP 5, PHP 7)

end — Устанавливает внутренний указатель массива на его последний элемент

Описание

mixed end ( array &$array )

end() устанавливает внутренний указатель array на последний элемент и возвращает его значение.

Список параметров

array

Массив. Этот массив передается по ссылке, потому что он модифицируется данной функцией. Это означает что вы должны передать его как реальную переменную, а не как функцию, возвращающую массив, так как по ссылке можно передавать только реальные переменные.

Возвращаемые значения

Возвращает значение последнего элемента или FALSE для пустого массива.

Примеры

Пример #1 Пример использования end()

<?php

$fruits = array('apple', 'banana', 'cranberry');
echo end($fruits); // cranberry

?>

Смотрите также

  • current() - Возвращает текущий элемент массива
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • prev() - Передвигает внутренний указатель массива на одну позицию назад
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • next() - Передвигает внутренний указатель массива на одну позицию вперёд


Импортирует переменные из массива в текущую таблицу символов

  • « end
  • in_array »
  • PHP Manual
  • Функции для работы с массивами
  • Импортирует переменные из массива в текущую таблицу символов

extract

(PHP 4, PHP 5, PHP 7)

extract — Импортирует переменные из массива в текущую таблицу символов

Описание

int extract ( array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] )

Импортирует переменные из массива в текущую таблицу символов.

Каждый ключ проверяется на предмет корректного имени переменной. Также проверяются совпадения с существующими переменными в символьной таблице.

Список параметров

array

Ассоциативный массив. Эта функция рассматривает ключи массива в качестве имен переменных, а их значения - в качестве значений этих переменных. Для каждой пары ключ/значение будет создана переменная в текущей таблице символов, в соответствии с параметрами flags и prefix.

Вы должны использовать ассоциативный массив, использование числовых массивов не приведёт ни к каким результатам, если вы не используете EXTR_PREFIX_ALL или EXTR_PREFIX_INVALID.

flags

Параметр flags определяет способ трактования неправильных/числовых ключей и коллизий. Он может принимать следующие значения:

EXTR_OVERWRITE
Если переменная с таким именем существует, она будет перезаписана.
EXTR_SKIP
Если переменная с таким именем существует, ее текущее значение не будет перезаписано.
EXTR_PREFIX_SAME
Если переменная с таким именем существует, к её имени будет добавлен префикс, определённый параметром prefix.
EXTR_PREFIX_ALL
Добавить префикс prefix ко всем именам переменных.
EXTR_PREFIX_INVALID
Добавить префикс prefix только к некорректным/числовым именам переменных.
EXTR_IF_EXISTS
Перезаписать только переменные, уже имеющиеся в текущей таблице символов, в противном случае не делать ничего. Данная возможность полезна для определения списка приемлемых переменных и для извлечения только тех переменных, которые вы уже определили из массивов типа $_REQUEST, например.
EXTR_PREFIX_IF_EXISTS
Создать только префикс-версии переменных, если версия данной переменной без префикса уже существует в текущей символьной таблице.
EXTR_REFS
Извлечь переменные как ссылки. Это означает, что значения таких переменных будут всё ещё ссылаться на значения массива array. Вы можете использовать этот флаг отдельно или комбинировать его с другими значениями flags с помощью побитового 'или'.

Если flags не указан, он трактуется как EXTR_OVERWRITE.

prefix

Обратите внимание, что prefix имеет значение, только если flags установлен в EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID или EXTR_PREFIX_IF_EXISTS. Если в результате добавления префикса, не будет получено допустимое имя для переменной, она не будет импортирована в текущую символьную таблицу.

Возвращаемые значения

Возвращает количество переменных, успешно импортированных в текущую таблицу символов.

Примеры

Пример #1 Пример использования extract()

Функцию extract() также можно использовать для импорта в текущую таблицу символов переменных, содержащихся в ассоциативном массиве, возвращённом функцией wddx_deserialize().

<?php

/* Предположим, что $var_array - это массив, полученный в результате
   wddx_deserialize */

$size = "large";
$var_array = array("color" => "blue",
                   "size"  => "medium",
                   "shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");

echo "$color, $size, $shape, $wddx_size\n";

?>

Результат выполнения данного примера:

blue, large, sphere, medium

Переменная $size не была перезаписана, потому что мы определили EXTR_PREFIX_SAME, в результате чего была создана переменная $wddx_size. Если был бы определён флаг EXTR_SKIP, тогда переменная $wddx_size не была бы создана. EXTR_OVERWRITE была бы причиной того, что переменной $size было бы присвоено значение "medium", и EXTR_PREFIX_ALL была бы причиной того, что были бы также созданы новые переменные $wddx_color, $wddx_size и $wddx_shape.

Примечания

Внимание

Не используйте функцию extract() на непроверенных данных, таких как пользовательский ввод ($_GET, $_FILES и т.п.). Если вы сделаете это, например, для того, что бы временно запустить старый код, использующий register_globals, используйте соответствующий флаг flags для того, что бы не перезаписать уже установленные переменные, такой как EXTR_SKIP и удостоверьтесь, что вы извлекаете содержимое в том же порядке, что указан в директиве variables_order в php.ini.

Замечание:

Если у вас все еще включена директива register_globals и вы используете extract() с массивом $_FILES и параметром EXTR_SKIP, результат может вас удивить.

Внимание

Это нерекомендуемая практика и документирована здесь только для полноты картины. Использование register_globals считается устаревшим и вызов extract() на непроверенных данных, таких как $_FILES, как уже было сказано выше, потенциальный риск безопасности. Если вы столкнулись с данным случаем, это означает что вы используете как минимум две плохие практики кодирования.

<?php

/* Предположим, что $testfile это имя input загрузки файла
   и что директива register_globals включена. */

var_dump($testfile);
extract($_FILES, EXTR_SKIP);
var_dump($testfile);
var_dump($testfile['tmp_name']);

?>
Вы можете ожидать что-нибудь вроде следующего:
string(14) "/tmp/phpgCCPX8"
array(5) {
  ["name"]=>
  string(10) "somefile.txt"
  ["type"]=>
  string(24) "application/octet-stream"
  ["tmp_name"]=>
  string(14) "/tmp/phpgCCPX8"
  ["error"]=>
  int(0)
  ["size"]=>
  int(4208)
}
string(14) "/tmp/phpgCCPX8"
Однако, вместо этого вы увидите что-нибудь вроде этого:
string(14) "/tmp/phpgCCPX8"
string(14) "/tmp/phpgCCPX8"
string(1) "/"

Это происходит потому, что так как включена директива register_globals, переменная $testfile уже существует в глобальной области видимости в момент вызова extract(). А так как указан параметр EXTR_SKIP, $testfile не будет перезаписана содержимым массива $_FILES, поэтому $testfile останется строкой. Так как к строкам можно обращаться с помощью синтаксиса массивов и нечисловая строка tmp_name интерпретируется как 0, PHP воспринимает $testfile['tmp_name'] как $testfile[0].

Смотрите также

  • compact() - Создает массив, содержащий названия переменных и их значения
  • list() - Присваивает переменным из списка значения подобно массиву


Проверяет, присутствует ли в массиве значение

  • « extract
  • key_exists »
  • PHP Manual
  • Функции для работы с массивами
  • Проверяет, присутствует ли в массиве значение

in_array

(PHP 4, PHP 5, PHP 7)

in_array — Проверяет, присутствует ли в массиве значение

Описание

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

Ищет в haystack значение needle. Если strict не установлен, то при поиске будет использовано нестрогое сравнение.

Список параметров

needle

Искомое значение.

Замечание:

Если needle - строка, сравнение будет произведено с учетом регистра.

haystack

Массив.

strict

Если третий параметр strict установлен в TRUE тогда функция in_array() также проверит соответствие типов параметра needle и соответствующего значения массива haystack.

Возвращаемые значения

Возвращает TRUE, если needle был найден в массиве, и FALSE в обратном случае.

Примеры

Пример #1 Пример использования in_array()

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Нашел Irix";
}
if (in_array("mac", $os)) {
    echo "Нашел mac";
}
?>

Второго совпадения не будет, потому что in_array() регистрозависима, таким образом, программа выведет:

Нашел Irix

Пример #2 Пример использования in_array() с параметром strict

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
    echo "'12.4' найдено со строгой проверкой\n";
}

if (in_array(1.13, $a, true)) {
    echo "1.13 найдено со строгой проверкой\n";
}
?>

Результат выполнения данного примера:

1.13 найдено со строгой проверкой

Пример #3 Пример использования in_array() с массивом в качестве параметра needle

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' найдено\n";
}

if (in_array(array('f', 'i'), $a)) {
    echo "'fi' найдено\n";
}

if (in_array('o', $a)) {
    echo "'o' найдено\n";
}
?>

Результат выполнения данного примера:

  'ph' найдено
  'o' найдено

Смотрите также

  • array_search() - Осуществляет поиск данного значения в массиве и возвращает ключ первого найденого элемента в случае удачи
  • isset() - Определяет, была ли установлена переменная значением отличным от NULL
  • array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс


Псевдоним array_key_exists

  • « in_array
  • key »
  • PHP Manual
  • Функции для работы с массивами
  • Псевдоним array_key_exists

key_exists

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

key_exists — Псевдоним array_key_exists()

Описание

Эта функция является псевдонимом: array_key_exists().


Выбирает ключ из массива

  • « key_exists
  • krsort »
  • PHP Manual
  • Функции для работы с массивами
  • Выбирает ключ из массива

key

(PHP 4, PHP 5, PHP 7)

key — Выбирает ключ из массива

Описание

mixed key ( array &$array )

key() возвращает индекс текущего элемента массива.

Список параметров

array

Массив.

Возвращаемые значения

Функция key() просто возвращает ключ того элемента массива, на который в данный момент указывает внутренний указатель массива. Он не сдвигает указатель ни в каком направлении. Если внутренний указатель указывает вне границ массива или массив пуст, key() возвратит NULL.

Примеры

Пример #1 Пример использования key()

<?php
$array = array(
    'fruit1' => 'apple',
    'fruit2' => 'orange',
    'fruit3' => 'grape',
    'fruit4' => 'apple',
    'fruit5' => 'apple');

// этот цикл выведет все ключи ассоциативного массива,
// значения которых равны "apple"
while ($fruit_name = current($array)) {
    if ($fruit_name == 'apple') {
        echo key($array).'<br />';
    }
    next($array);
}
?>

Результат выполнения данного примера:

fruit1<br />
fruit4<br />
fruit5<br />

Смотрите также

  • current() - Возвращает текущий элемент массива
  • next() - Передвигает внутренний указатель массива на одну позицию вперёд
  • foreach


Сортирует массив по ключам в обратном порядке

  • « key
  • ksort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по ключам в обратном порядке

krsort

(PHP 4, PHP 5, PHP 7)

krsort — Сортирует массив по ключам в обратном порядке

Описание

bool krsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Сортирует массив по ключам в обратном порядке, сохраняя отношения между ключами и значениями. Эта функция полезна, в основном, для работы с ассоциативными массивами.

Список параметров

array

Входной массив.

sort_flags

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее см. sort().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования krsort()

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
krsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

d = lemon
c = apple
b = banana
a = orange

Смотрите также

  • arsort() - Сортирует массив в обратном порядке, сохраняя ключи
  • ksort() - Сортирует массив по ключам
  • Сравнение функций сортировки массивов


Сортирует массив по ключам

  • « krsort
  • list »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по ключам

ksort

(PHP 4, PHP 5, PHP 7)

ksort — Сортирует массив по ключам

Описание

bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Сортирует массив по ключам, сохраняя отношения между ключами и значениями. Эта функция полезна, в основном, для работы с ассоциативными массивами.

Список параметров

array

Входной массив.

sort_flags

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее смотри функцию sort().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ksort()

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

a = orange
b = banana
c = apple
d = lemon

Смотрите также

  • asort() - Сортирует массив, сохраняя ключи
  • Сравнение функций сортировки массивов


Присваивает переменным из списка значения подобно массиву

  • « ksort
  • natcasesort »
  • PHP Manual
  • Функции для работы с массивами
  • Присваивает переменным из списка значения подобно массиву

list

(PHP 4, PHP 5, PHP 7)

list — Присваивает переменным из списка значения подобно массиву

Описание

array list ( mixed $var1 [, mixed $... ] )

Подобно array(), это не функция, а языковая конструкция. list() используется для того, чтобы присвоить списку переменных значения за одну операцию.

Замечание:

list() only works on numerical arrays and assumes the numerical indices start at 0.

Внимание

В PHP 5, list() присваивает значения начиная с самого правого. В PHP 7, list() - с самого левого.

Если вы используете обычные переменные, можете не думать об этом, но, если вы используете массивы с индексами, вы ожидаете, что порядок элементов в массиве будет ровно таким, как вы его определили в list(), слева направо, но в PHP 5 вы получите обратный порядок.

Вообще говоря, желательно не полагаться на конкретный порядок операций, так как будущем это поведение может быть изменено.

Внимание

Изменение массива через list() (т.е. так list($a, $b) = $b) приведет к неопределенному поведению.

Список параметров

var1

Переменная.

Возвращаемые значения

Возвращает присвоенный массив.

Список изменений

Версия | Описание
7.0.0 | Изменен порядок операций присвоения.
7.0.0 | Выражение list() более не может быть полностью пустым.
7.0.0 | Более нельзя разбирать строки с помощью этой функции.

Примеры

Пример #1 Примеры использования list()

<?php

$info = array('кофе', 'коричневый', 'кофеин');

// Составить список всех переменных
list($drink, $color, $power) = $info;
echo "$drink - $color, а $power делает его особенным.\n";

// Составить список только некоторых из них
list($drink, , $power) = $info;
echo "В $drink есть $power.\n";

// Или только третья
list( , , $power) = $info;
echo "Мне нужен $power!\n";

// list() не работает со строками
list($bar) = "abcde";
var_dump($bar); // NULL
?>

Пример #2 Пример использования list()

<table>
 <tr>
  <th>Имя работника</th>
  <th>Зарплата</th>
 </tr>

<?php
$result = $pdo->query("SELECT id, name, salary FROM employees");
while (list($id, $name, $salary) = $result->fetch(PDO::FETCH_NUM)) {
    echo " <tr>\n" .
          "  <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
          "  <td>$salary</td>\n" .
          " </tr>\n";
}

?>

</table>

Пример #3 Использование list() с индексами массивов

<?php

list($a, list($b, $c)) = array(1, array(2, 3));

var_dump($a, $b, $c);

?>
int(1)
int(2)
int(3)

Пример #4 Использование list() с индексами массива

<?php

$info = array('кофе', 'коричневый', 'кофеин');

list($a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>

Выведет (сравните порядок исходных элементов с порядком, в в котором они были перезаписаны list()):

Результат выполнения данного примера в PHP 7:

array(3) {
  [0]=>
  string(6) "coffee"
  [1]=>
  string(5) "brown"
  [2]=>
  string(8) "caffeine"
}

Результат выполнения данного примера в PHP 5:

array(3) {
  [2]=>
  string(8) "caffeine"
  [1]=>
  string(5) "brown"
  [0]=>
  string(6) "coffee"
}

Пример #5 list() и порядок указания индексовs

Порядок, в котором индексы массива будут употреблены функцией 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"

Смотрите также

  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • array() - Создает массив
  • extract() - Импортирует переменные из массива в текущую таблицу символов


Сортирует массив, используя алгоритм "natural order" без учета регистра символов

  • « list
  • natsort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив, используя алгоритм "natural order" без учета регистра символов

natcasesort

(PHP 4, PHP 5, PHP 7)

natcasesort — Сортирует массив, используя алгоритм "natural order" без учета регистра символов

Описание

bool natcasesort ( array &$array )

natcasesort() - это регистронезависимый аналог natsort().

Эта функция реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека. Такой алгоритм называется "natural ordering".

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования natcasesort()

<?php
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');

sort($array1);
echo "Обычная сортировка\n";
print_r($array1);

natcasesort($array2);
echo "\nNatural order сортировка (без учета регистра)\n";
print_r($array2);
?>

Результат выполнения данного примера:

Обычная сортировка
Array
(
    [0] => IMG0.png
    [1] => IMG3.png
    [2] => img1.png
    [3] => img10.png
    [4] => img12.png
    [5] => img2.png
)

Natural order сортировка (без учета регистра)
Array
(
    [0] => IMG0.png
    [4] => img1.png
    [3] => img2.png
    [5] => IMG3.png
    [2] => img10.png
    [1] => img12.png
)

Подробнее смотри статью Martin Pool » Natural Order String Comparison.

Смотрите также

  • natsort() - Сортирует массив, используя алгоритм "natural order"
  • Сравнение функций сортировки массивов
  • strnatcmp() - Сравнение строк с использованием алгоритма "natural order"
  • strnatcasecmp() - Сравнение строк без учета регистра с использованием алгоритма "natural order"


Сортирует массив, используя алгоритм "natural order"

  • « natcasesort
  • next »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив, используя алгоритм "natural order"

natsort

(PHP 4, PHP 5, PHP 7)

natsort — Сортирует массив, используя алгоритм "natural order"

Описание

bool natsort ( array &$array )

Эта функция реализует алгоритм сортировки, при котором порядок буквенно-цифровых строк будет привычным для человека. Такой алгоритм называется "natural ordering". Отличие алгоритма "natural ordering" от обычных алгоритмов сортировки, применяемых, например, функцией sort() можно увидеть в примере ниже.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.10 | В строках, отбитых нулями спереди, (например, '00005') теперь данная отбивка игнорируется.

Примеры

Пример #1 Простой пример использования natsort()

<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

asort($array1);
echo "Обычная сортировка\n";
print_r($array1);

natsort($array2);
echo "\nСортировка natural order\n";
print_r($array2);
?>

Результат выполнения данного примера:

Обычная сортировка
Array
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Сортировка natural order
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)

Подробнее смотри статью Martin Pool » Natural Order String Comparison.

Пример #2 Примеры использования различных трюков с natsort()

<?php
echo "Отрицательные числа\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);

echo "Отбивка нулями\n";
$zeros = array('09', '8', '10', '009', '011', '0');
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>

Результат выполнения данного примера:

Отрицательные числа
Array
(
    [0] => -5
    [1] => 3
    [2] => -2
    [3] => 0
    [4] => -1000
    [5] => 9
    [6] => 1
)
Array
(
    [2] => -2
    [0] => -5
    [4] => -1000
    [3] => 0
    [6] => 1
    [1] => 3
    [5] => 9
)

Отбивка нулями
Array
(
    [0] => 09
    [1] => 8
    [2] => 10
    [3] => 009
    [4] => 011
    [5] => 0
)
Array
(
    [5] => 0
    [1] => 8
    [3] => 009
    [0] => 09
    [2] => 10
    [4] => 011
)

Смотрите также

  • natcasesort() - Сортирует массив, используя алгоритм "natural order" без учета регистра символов
  • Сравнение функций сортировки массивов
  • strnatcmp() - Сравнение строк с использованием алгоритма "natural order"
  • strnatcasecmp() - Сравнение строк без учета регистра с использованием алгоритма "natural order"


Передвигает внутренний указатель массива на одну позицию вперёд

  • « natsort
  • pos »
  • PHP Manual
  • Функции для работы с массивами
  • Передвигает внутренний указатель массива на одну позицию вперёд

next

(PHP 4, PHP 5, PHP 7)

next — Передвигает внутренний указатель массива на одну позицию вперёд

Описание

mixed next ( array &$array )

next() ведёт себя подобно current(), но с одним отличием. Перед тем, как возвратить значение элемента массива, эта функция передвигает его внутренний указатель на одну позицию вперёд. Другими словами, она возвращает следующий элемент массива и сдвигает его внутренний указатель на одну позицию.

Список параметров

array

Массив array модифицируется данной функцией.

Возвращаемые значения

Возвращает значение элемента массива, находящегося на позиции, следующей за позицией внутренний указателя или FALSE, если достигнут конец массива.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Пример использования next() и друзей

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
?>

Примечания

Замечание: Вы не сможете отличить конец массива от boolean элемента FALSE. Для корректного обхода массива, который может содержать FALSE элементы, смотрите функцию each().

Смотрите также

  • current() - Возвращает текущий элемент массива
  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • prev() - Передвигает внутренний указатель массива на одну позицию назад
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель


Псевдоним current

  • « next
  • prev »
  • PHP Manual
  • Функции для работы с массивами
  • Псевдоним current

pos

(PHP 4, PHP 5, PHP 7)

pos — Псевдоним current()

Описание

Эта функция является псевдонимом: current()


Передвигает внутренний указатель массива на одну позицию назад

  • « pos
  • range »
  • PHP Manual
  • Функции для работы с массивами
  • Передвигает внутренний указатель массива на одну позицию назад

prev

(PHP 4, PHP 5, PHP 7)

prev — Передвигает внутренний указатель массива на одну позицию назад

Описание

mixed prev ( array &$array )

Передвигает внутренний указатель массива на одну позицию назад.

prev() ведёт себя подобно next(), за исключением того, что она передвигает внутренний указатель массива на одну позицию назад, а не вперёд.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает значение массива, на которое ранее указывал внутренний указатель массива, или FALSE если больше элементов нет.

Примеры

Пример #1 Пример использования prev() и друзей

<?php
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport);    // $mode = 'bike';
$mode = next($transport);    // $mode = 'car';
$mode = prev($transport);    // $mode = 'bike';
$mode = end($transport);     // $mode = 'plane';
?>

Примечания

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Замечание: Вы не сможете различить начало массива от boolean элемента FALSE. Для корректного обхода массива, который может содержать элементы FALSE, смотрите функцию each().

Смотрите также

  • current() - Возвращает текущий элемент массива
  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • next() - Передвигает внутренний указатель массива на одну позицию вперёд
  • reset() - Устанавливает внутренний указатель массива на его первый элемент
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель


Создает массив, содержащий диапазон элементов

  • « prev
  • reset »
  • PHP Manual
  • Функции для работы с массивами
  • Создает массив, содержащий диапазон элементов

range

(PHP 4, PHP 5, PHP 7)

range — Создает массив, содержащий диапазон элементов

Описание

array range ( mixed $start , mixed $end [, number $step = 1 ] )

Создает массив, содержащий диапазон элементов.

Список параметров

start

Первое значение последовательности.

end

Конечное значение, которым заканчивается последовательность.

step

Если указан параметр step, то он будет использоваться как инкремент между элементами последовательности. step должен быть положительным числом. Если step не указан, он принимает значение по умолчанию 1.

Возвращаемые значения

Возвращает массив элементов от start до end, включительно.

Примеры

Пример #1 Примеры использования range()

<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
    echo $number;
}

// Параметр step
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(0, 100, 10) as $number) {
    echo $number;
}

// Использование последовательности знаков
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
foreach (range('a', 'i') as $letter) {
    echo $letter;
}
// array('c', 'b', 'a');
foreach (range('c', 'a') as $letter) {
    echo $letter;
}
?>

Примечания

Замечание:

Значения для последовательности знаков ограничены длиной в один символ. Если их длина больше одного, то только первый символ используется.

Смотрите также

  • shuffle() - Перемешивает массив
  • array_fill() - Заполняет массив значениями
  • foreach


Устанавливает внутренний указатель массива на его первый элемент

  • « range
  • rsort »
  • PHP Manual
  • Функции для работы с массивами
  • Устанавливает внутренний указатель массива на его первый элемент

reset

(PHP 4, PHP 5, PHP 7)

reset — Устанавливает внутренний указатель массива на его первый элемент

Описание

mixed reset ( array &$array )

reset() перемещает внутренний указатель array к его первому элементу и возвращает значение первого элемента массива.

Список параметров

array

Входной массив.

Возвращаемые значения

Возвращает значение первого элемента массива, или FALSE, если массив пуст.

Примеры

Пример #1 Пример использования reset()

<?php

$array = array('первый шаг', 'второй шаг', 'третий шаг', 'четвертый шаг');

// по умолчанию указатель указывает на первый элемент
echo current($array) . "<br />\n"; // "первый шаг"

// пропускаем два шага
next($array);
next($array);
echo current($array) . "<br />\n"; // "третий шаг"

// сбрасываем указатель, тем самым возвращаемся к первому шагу
reset($array);
echo current($array) . "<br />\n"; // "первый шаг"

?>

Смотрите также

  • current() - Возвращает текущий элемент массива
  • each() - Возвращает текущую пару ключ/значение из массива и смещает его указатель
  • end() - Устанавливает внутренний указатель массива на его последний элемент
  • next() - Передвигает внутренний указатель массива на одну позицию вперёд
  • prev() - Передвигает внутренний указатель массива на одну позицию назад


Сортирует массив в обратном порядке

  • « reset
  • shuffle »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив в обратном порядке

rsort

(PHP 4, PHP 5, PHP 7)

rsort — Сортирует массив в обратном порядке

Описание

bool rsort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Эта функция сортирует массив в обратном порядке (от большего к меньшему).

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

sort_flags

Вы можете изменить поведение сортировки, используя дополнительный параметр sort_flags, подробнее смотрите функцию sort().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования rsort()

<?php
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

Результат выполнения данного примера:

0 = orange
1 = lemon
2 = banana
3 = apple

Названия фруктов были отсортированы по алфавиту в обратном порядке.

Примечания

Замечание: Эта функция присваивает новые ключи элементам массива. Она удалит все существующие ключи, а не просто переупорядочит их.

Смотрите также

  • arsort() - Сортирует массив в обратном порядке, сохраняя ключи
  • krsort() - Сортирует массив по ключам в обратном порядке
  • Сравнение функций сортировки массивов


Перемешивает массив

  • « rsort
  • sizeof »
  • PHP Manual
  • Функции для работы с массивами
  • Перемешивает массив

shuffle

(PHP 4, PHP 5, PHP 7)

shuffle — Перемешивает массив

Описание

bool shuffle ( array &$array )

Эта функция перемешивает элементы массива в случайном порядке. Используется псевдослучайный генератор случайных чисел, следовательно данная функция не подходит для задач криптографии.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Массив.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования shuffle()

<?php
$numbers = range(1, 20);
shuffle($numbers);
foreach ($numbers as $number) {
    echo "$number ";
}
?>

Примечания

Замечание: Эта функция присваивает новые ключи элементам массива. Она удалит все существующие ключи, а не просто переупорядочит их.

Смотрите также

  • array_rand() - Выбирает одно или несколько случайных значений из массива
  • Сравнение функций сортировки массивов


Псевдоним count

  • « shuffle
  • sort »
  • PHP Manual
  • Функции для работы с массивами
  • Псевдоним count

sizeof

(PHP 4, PHP 5, PHP 7)

sizeof — Псевдоним count()

Описание

Эта функция является псевдонимом: count().


Сортирует массив

  • « sizeof
  • uasort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив

sort

(PHP 4, PHP 5, PHP 7)

sort — Сортирует массив

Описание

bool sort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

Эта функция сортирует массив. После завершения работы функции элементы массива будут расположены в порядке возрастания.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

sort_flags

Дополнительный второй параметр sort_flags можно использовать для изменения поведения сортировки, используя следующие значения:

Флаги сортировки:

  • SORT_REGULAR - обычное сравнение элементов (без изменения типов)
  • SORT_NUMERIC - числовое сравнение элементов
  • SORT_STRING - строковое сравнение элементов
  • SORT_LOCALE_STRING - сравнивает элементы как строки с учетом текущей локали. Используется локаль, которую можно изменять с помощью функции setlocale()
  • SORT_NATURAL - сравнение элементов как строк, используя естественное упорядочение, аналогичное упорядочению в функции natsort()
  • SORT_FLAG_CASE - может быть объединен (побитовое ИЛИ) с константами SORT_STRING или SORT_NATURAL для сортировки строк без учета регистра.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.4.0 | Добавлена поддержка SORT_NATURAL и SORT_FLAG_CASE в параметре sort_flags
5.0.2 | Добавлена поддержка SORT_LOCALE_STRING

Примеры

Пример #1 Пример использования sort()

<?php

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

Результат выполнения данного примера:

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

Фрукты отсортированы в алфавитном порядке.

Пример #2 Пример использования sort() с регистронезависимым естественным упорядочением

<?php

$fruits = array(
    "Orange1", "orange2", "Orange3", "orange20"
);
sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

Результат выполнения данного примера:

fruits[0] = Orange1
fruits[1] = orange2
fruits[2] = Orange3
fruits[3] = orange20

Фрукты были отсортированы аналогично функции natcasesort().

Примечания

Замечание: Эта функция присваивает новые ключи элементам массива. Она удалит все существующие ключи, а не просто переупорядочит их.

Замечание: Как и большинство функций сортировки в PHP, sort() использует реализацию алгоритма » быстрой сортировки. Основной элемент выбирается из середины сортируемой части, достигая таким образом оптимального времени для уже отсортированных массивов. Следует иметь в виду, что это является деталью реализации и на нее не следует полагаться.

Внимание

Будьте осторожны при сортировке массивов, содержащих элементы разных типов, так как в этом случае результат работы функции sort() может быть непредсказуемым.

Смотрите также

  • asort() - Сортирует массив, сохраняя ключи
  • Сравнение функций сортировки массивов


Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей

  • « sort
  • uksort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей

uasort

(PHP 4, PHP 5, PHP 7)

uasort — Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей

Описание

bool uasort ( array &$array , callable $value_compare_func )

Эта функция сортирует массив таким образом, что его индексы сохраняют отношения с элементами, с которыми ранее были ассоциированы, с помощью callback-функции, предоставленной пользователем.

Это обычно используется при сортировке ассоциативных массивов, в которых важен актуальный порядок элементов.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

value_compare_func

Смотрите функции usort() и uksort() для примеров callback-функций сортировки, предоставленных пользователем.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Простой пример использования uasort()

<?php
// Функция сравнения
function cmp($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

// Сортируемый массив
$array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4);
print_r($array);

// Сортируем и выводим получившийся массив
uasort($array, 'cmp');
print_r($array);
?>

Результат выполнения данного примера:

Array
(
    [a] => 4
    [b] => 8
    [c] => -1
    [d] => -9
    [e] => 2
    [f] => 5
    [g] => 3
    [h] => -4
)
Array
(
    [d] => -9
    [h] => -4
    [c] => -1
    [e] => 2
    [g] => 3
    [a] => 4
    [f] => 5
    [b] => 8
)

Смотрите также

  • usort() - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
  • Сравнение функций сортировки массивов


Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей

  • « uasort
  • usort »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей

uksort

(PHP 4, PHP 5, PHP 7)

uksort — Сортирует массив по ключам, используя пользовательскую функцию для сравнения ключей

Описание

bool uksort ( array &$array , callable $key_compare_func )

uksort() отсортирует массив, используя для сравнения его ключей функцию, предоставленную пользователем. Используйте эту функцию, если массив должен быть отсортирован по какому-нибудь необычному признаку.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Список параметров

array

Входной массив.

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования uksort()

<?php
function cmp($a, $b)
{
    $a = preg_replace('@^(a|an|the) @', '', $a);
    $b = preg_replace('@^(a|an|the) @', '', $b);
    return strcasecmp($a, $b);
}

$a = array("John" => 1, "the Earth" => 2, "an apple" => 3, "a banana" => 4);

uksort($a, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

Результат выполнения данного примера:

an apple: 3
a banana: 4
the Earth: 2
John: 1

Смотрите также

  • usort() - Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов
  • Сравнение функций сортировки массивов


Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов

  • « uksort
  • Классы и объекты »
  • PHP Manual
  • Функции для работы с массивами
  • Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов

usort

(PHP 4, PHP 5, PHP 7)

usort — Сортирует массив по значениям используя пользовательскую функцию для сравнения элементов

Описание

bool usort ( array &$array , callable $value_compare_func )

Эта функция сортирует элементы массива, используя для сравнения значений callback-функцию, предоставленную пользователем. Используйте эту функцию, если вам нужно отсортировать массив по какому-нибудь необычному признаку.

Замечание:

Если оба сравниваемых значения эквивалентны, то порядок их в отсортированном массиве не определен.

Замечание: Эта функция присваивает новые ключи элементам массива. Она удалит все существующие ключи, а не просто переупорядочит их.

Список параметров

array

Входной массив.

value_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Возвращаемые нецелочисленные (non-integer) значения из функции сравнения, такие как float, будут приводиться к типу integer. Поэтому такие значения, как 0.99 и 0.1, будут приводиться к целому числу 0, что указывает на равенство сравниваемых значений.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования usort()

<?php
function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $key => $value) {
    echo "$key: $value\n";
}
?>

Результат выполнения данного примера:

0: 1
1: 2
2: 3
3: 5
4: 6

Замечание:

Очевидно, что для этого тривиального случая более подходит функция sort().

Пример #2 Пример использования функции usort() с многомерными массивами

<?php
function cmp($a, $b)
{
    return strcmp($a["fruit"], $b["fruit"]);
}

$fruits[0]["fruit"] = "lemons";
$fruits[1]["fruit"] = "apples";
$fruits[2]["fruit"] = "grapes";

usort($fruits, "cmp");

while (list($key, $value) = each($fruits)) {
    echo "\$fruits[$key]: " . $value["fruit"] . "\n";
}
?>

При сортировке многомерного массива переменные $a и $b содержат ссылки на первые два индекса массива.

Результат выполнения данного примера:

$fruits[0]: apples
$fruits[1]: grapes
$fruits[2]: lemons

Пример #3 Пример использования usort() с методом класса

<?php
class TestObj {
    var $name;

    function TestObj($name)
    {
        $this->name = $name;
    }

    /* Это статическая функция сравнения: */
    static function cmp_obj($a, $b)
    {
        $al = strtolower($a->name);
        $bl = strtolower($b->name);
        if ($al == $bl) {
            return 0;
        }
        return ($al > $bl) ? +1 : -1;
    }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, array("TestObj", "cmp_obj"));

foreach ($a as $item) {
    echo $item->name . "\n";
}
?>

Результат выполнения данного примера:

b
c
d

Пример #4 Пример использования функции usort() с применением анонимной функции для сортировки многомерного массива

<?php
$array[0] = array('key_a' => 'z', 'key_b' => 'c');
$array[1] = array('key_a' => 'x', 'key_b' => 'b');
$array[2] = array('key_a' => 'y', 'key_b' => 'a');

function build_sorter($key) {
    return function ($a, $b) use ($key) {
        return strnatcmp($a[$key], $b[$key]);
    };
}

usort($array, build_sorter('key_b'));

foreach ($array as $item) {
    echo $item['key_a'] . ', ' . $item['key_b'] . "\n";
}
?>

Результат выполнения данного примера:

y, a
x, b
z, c

Смотрите также

  • uasort() - Сортирует массив, используя пользовательскую функцию для сравнения элементов с сохранением ключей
  • Сравнение функций сортировки массивов


Функции работы с классами и объектами

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Классы/Объекты
    • __autoload — Попытка автоматически загрузить используемый, но не загруженный ранее, класс
    • call_user_method_array — Вызывает метод объекта с массивом параметров
    • call_user_method — Вызывает метод указанного объекта
    • class_alias — Создает псевдоним для указанного класса
    • class_exists — Проверяет, был ли объявлен класс
    • get_called_class — Имя класса, полученное с помощью позднего статического связывания
    • get_class_methods — Возвращает массив имен методов класса
    • get_class_vars — Возвращает объявленные по умолчанию свойства класса
    • get_class — Возвращает имя класса, к которому принадлежит объект
    • get_declared_classes — Возвращает массив с именами объявленных классов
    • get_declared_interfaces — Возвращает массив всех объявленных интерфейсов
    • get_declared_traits — Возвращает массив со всеми объявленными трейтами
    • get_object_vars — Возвращает свойства указанного объекта
    • get_parent_class — Возвращает имя родительского класса для объекта или класса
    • interface_exists — Проверяет, определен ли интерфейс
    • is_a — Проверяет, принадлежит ли объект к данному классу или содержит данный класс в числе своих предков
    • is_subclass_of — Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его
    • method_exists — Проверяет, существует ли метод в данном классе
    • property_exists — Проверяет, содержит ли объект или класс указанный атрибут
    • trait_exists — Проверяет, существует ли трейт


Введение

Эти функции позволяют получить информацию о классах и экземплярах объектов. Можно получить имя класса, которому принадлежит объект, равно как и все его свойства и методы. Используя эти функции, можно установить не только принадлежность объекта к конкретному классу, но и определить порядок наследования (к примеру, какой класс наследует класс данного объекта).

За подробным объяснением реализации использования классов и объектов в PHP, пожалуйста, обращайтесь к разделу руководства "Объекты".


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Классы и объекты
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

В приведённом ниже примере, мы сначала определим базовый класс и класс его наследующий. Базовый класс описывает овощ: съедобен ли он и какого цвета. Дочерний класс Spinach добавляет метод приготовления овоща и проверки, был ли он уже приготовлен.

Пример #1 classes.inc

<?php

// базовый класс с основными свойствами и методами
class Vegetable {

    var $edible;
    var $color;

    function __construct($edible, $color="green")
    {
        $this->edible = $edible;
        $this->color = $color;
    }

    function is_edible()
    {
        return $this->edible;
    }

    function what_color()
    {
        return $this->color;
    }

} // конец класса Vegetable

// расширяет базовый класс
class Spinach extends Vegetable {

    var $cooked = false;

    function __construct()
    {
        parent::__construct(true, "green");
    }

    function cook_it()
    {
        $this->cooked = true;
    }

    function is_cooked()
    {
        return $this->cooked;
    }

} // конец класса Spinach

?>

Теперь мы создадим по объекту каждого класса и распечатаем информацию о них, включая порядок их наследования. Также мы объявим несколько функций-утилит, главным образом для удобного вывода результатов.

Пример #2 test_script.php

<pre>
<?php

include "classes.inc";

// функции-утилиты

function print_vars($obj)
{
    $arr = get_object_vars($obj);
    while (list($prop, $val) = each($arr))
        echo "\t$prop = $val\n";
}

function print_methods($obj)
{
    $arr = get_class_methods(get_class($obj));
    foreach ($arr as $method)
        echo "\tfunction $method()\n";
}

function class_parentage($obj, $class)
{
    if (is_subclass_of($GLOBALS[$obj], $class)) {
        echo "Object $obj belongs to class " . get_class($GLOBALS[$obj]);
        echo " подкласс класса $class\n";
    } else {
        echo "Объект $obj более не является подклассом $class\n";
    }
}

// создание экземпляров объектов

$veggie = new Vegetable(true, "blue");
$leafy = new Spinach();

// распечатка информации об объектах
echo "veggie: CLASS " . get_class($veggie) . "\n";
echo "leafy: CLASS " . get_class($leafy);
echo ", PARENT " . get_parent_class($leafy) . "\n";

// показать свойства объекта класса Spinach
echo "\nveggie: Properties\n";
print_vars($veggie);

// и методы объекта базового класса Vegetable
echo "\nleafy: Methods\n";
print_methods($leafy);

echo "\nParentage:\n";
class_parentage("leafy", "Spinach");
class_parentage("leafy", "Vegetable");
?>
</pre>

Важно заметить, что, в приведенном выше примере, объект $leafy - экземпляр класса Spinach, который наследует класс Vegetable, вследствие чего последняя часть скрипта выведет:

       [...]
Parentage:
Object leafy does not belong to a subclass of Spinach
Object leafy belongs to class spinach a subclass of Vegetable


Классы/Объекты

Содержание

  • __autoload — Попытка автоматически загрузить используемый, но не загруженный ранее, класс
  • call_user_method_array — Вызывает метод объекта с массивом параметров
  • call_user_method — Вызывает метод указанного объекта
  • class_alias — Создает псевдоним для указанного класса
  • class_exists — Проверяет, был ли объявлен класс
  • get_called_class — Имя класса, полученное с помощью позднего статического связывания
  • get_class_methods — Возвращает массив имен методов класса
  • get_class_vars — Возвращает объявленные по умолчанию свойства класса
  • get_class — Возвращает имя класса, к которому принадлежит объект
  • get_declared_classes — Возвращает массив с именами объявленных классов
  • get_declared_interfaces — Возвращает массив всех объявленных интерфейсов
  • get_declared_traits — Возвращает массив со всеми объявленными трейтами
  • get_object_vars — Возвращает свойства указанного объекта
  • get_parent_class — Возвращает имя родительского класса для объекта или класса
  • interface_exists — Проверяет, определен ли интерфейс
  • is_a — Проверяет, принадлежит ли объект к данному классу или содержит данный класс в числе своих предков
  • is_subclass_of — Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его
  • method_exists — Проверяет, существует ли метод в данном классе
  • property_exists — Проверяет, содержит ли объект или класс указанный атрибут
  • trait_exists — Проверяет, существует ли трейт


Попытка автоматически загрузить используемый, но не загруженный ранее, класс

  • « Классы/Объекты
  • call_user_method_array »
  • PHP Manual
  • Классы/Объекты
  • Попытка автоматически загрузить используемый, но не загруженный ранее, класс

__autoload

(PHP 5, PHP 7)

__autoload — Попытка автоматически загрузить используемый, но не загруженный ранее, класс

Описание

void __autoload ( string $class )

Вы можете определить эту функцию для автозагрузки классов

Список параметров

class

Имя загружаемого класса

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • spl_autoload_register() - Регистрирует заданную функцию в качестве реализации метода __autoload()


Вызывает метод объекта с массивом параметров

  • « __autoload
  • call_user_method »
  • PHP Manual
  • Классы/Объекты
  • Вызывает метод объекта с массивом параметров

call_user_method_array

(PHP 4 >= 4.0.5, PHP 5)

call_user_method_array — Вызывает метод объекта с массивом параметров

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 4.1.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • call_user_func_array()

Описание

mixed call_user_method_array ( string $method_name , object &$obj , array $params )

Список параметров

method_name

Имя вызываемого метода.

obj

Объект (object), содержащий вызываемый метод method_name.

params

Массив параметров.

Примеры

Пример #1 Альтернатива call_user_method_array()

<?php
call_user_func_array(array($obj, $method_name), $params);
?>

Смотрите также

  • call_user_func_array() - Вызывает пользовательскую функцию с массивом параметров
  • call_user_func() - Вызывает пользовательскую функцию, указанную в первом параметре


Вызывает метод указанного объекта

  • « call_user_method_array
  • class_alias »
  • PHP Manual
  • Классы/Объекты
  • Вызывает метод указанного объекта

call_user_method

(PHP 4, PHP 5)

call_user_method — Вызывает метод указанного объекта

Внимание

Эта функция объявлена УСТАРЕВШЕЙ в PHP 4.1.0, и УДАЛЕНА PHP 7.0.0.

Есть следующие альтернативы:

  • call_user_func()

Описание

mixed call_user_method ( string $method_name , object &$obj [, mixed $parameter [, mixed $... ]] )

Список параметров

method_name

Имя вызываемого метода.

obj

Объект (object), содержащий вызываемый метод method_name.

parameter ...

Необязательные параметры.

Примеры

Пример #1 Альтернатива call_user_method()

<?php
call_user_func(array($obj, $method_name), $parameter /* , ... */);
?>

Смотрите также

  • call_user_func_array() - Вызывает пользовательскую функцию с массивом параметров
  • call_user_func() - Вызывает пользовательскую функцию, указанную в первом параметре


Создает псевдоним для указанного класса

  • « call_user_method
  • class_exists »
  • PHP Manual
  • Классы/Объекты
  • Создает псевдоним для указанного класса

class_alias

(PHP 5 >= 5.3.0, PHP 7)

class_alias — Создает псевдоним для указанного класса

Описание

bool class_alias ( string $original , string $alias [, bool $autoload = TRUE ] )

Создает псевдоним alias для пользовательского класса original. Новый класс с псевдонимом будет точно таким же, как и оригинальный класс.

Список параметров

original

Оригинальный класс.

alias

Имя псевдонима для класса.

autoload

Нужно ли автоматически подгружать оригинальный класс, если он не был найден.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования class_alias()

<?php

class foo { }

class_alias('foo', 'bar');

$a = new foo;
$b = new bar;

// объекты одинаковы
var_dump($a == $b, $a === $b);
var_dump($a instanceof $b);

// классы одинаковы
var_dump($a instanceof foo);
var_dump($a instanceof bar);

var_dump($b instanceof foo);
var_dump($b instanceof bar);

?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Смотрите также

  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его


Проверяет, был ли объявлен класс

  • « class_alias
  • get_called_class »
  • PHP Manual
  • Классы/Объекты
  • Проверяет, был ли объявлен класс

class_exists

(PHP 4, PHP 5, PHP 7)

class_exists — Проверяет, был ли объявлен класс

Описание

bool class_exists ( string $class_name [, bool $autoload = true ] )

Эта функция проверяет, был ли объявлен указанный класс или нет.

Список параметров

class_name

Имя класса. Воспринимается без учета регистра.

autoload

Вызывать ли по умолчанию __autoload.

Возвращаемые значения

Возвращает TRUE, если класс class_name объявлен, иначе FALSE.

Список изменений

Версия | Описание
5.0.2 | Больше не возвращает TRUE для объявленных интерфейсов. Используйте для этого interface_exists().

Примеры

Пример #1 Пример использования class_exists()

<?php
// Проверяем существование класса перед его использованием
if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

Пример #2 Пример использования параметра autoload

<?php
function __autoload($class)
{
    include($class . '.php');

    // Проверяем необходимость подключения указанного класса
    if (!class_exists($class, false)) {
        trigger_error("Unable to load class: $class", E_USER_WARNING);
    }
}

if (class_exists('MyClass')) {
    $myclass = new MyClass();
}

?>

Смотрите также

  • function_exists() - Возвращает TRUE, если указанная функция определена
  • interface_exists() - Проверяет, определен ли интерфейс
  • get_declared_classes() - Возвращает массив с именами объявленных классов


Имя класса, полученное с помощью позднего статического связывания

  • « class_exists
  • get_class_methods »
  • PHP Manual
  • Классы/Объекты
  • Имя класса, полученное с помощью позднего статического связывания

get_called_class

(PHP 5 >= 5.3.0, PHP 7)

get_called_class — Имя класса, полученное с помощью позднего статического связывания

Описание

string get_called_class ( void )

Возвращает имя класса, из которого был вызван статический метод.

Возвращаемые значения

Возвращает имя класса. Возвращает FALSE, если было вызвано вне класса.

Примеры

Пример #1 Пример использования get_called_class()

<?php

class foo {
    static public function test() {
        var_dump(get_called_class());
    }
}

class bar extends foo {
}

foo::test();
bar::test();

?>

Результат выполнения данного примера:

string(3) "foo"
string(3) "bar"

Смотрите также

  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • get_class() - Возвращает имя класса, к которому принадлежит объект
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его


Возвращает массив имен методов класса

  • « get_called_class
  • get_class_vars »
  • PHP Manual
  • Классы/Объекты
  • Возвращает массив имен методов класса

get_class_methods

(PHP 4, PHP 5, PHP 7)

get_class_methods — Возвращает массив имен методов класса

Описание

array get_class_methods ( mixed $class_name )

Возвращает массив имен методов класса.

Список параметров

class_name

The class name or an object instance

Возвращаемые значения

Возвращает массив имен методов, объявленных в классе class_name. В случае ошибки будет возвращен NULL.

Примеры

Пример #1 Пример использования get_class_methods()

<?php

class myclass {
    // конструктор
    function myclass()
    {
        return(true);
    }

    // метод 1
    function myfunc1()
    {
        return(true);
    }

    // метод 2
    function myfunc2()
    {
        return(true);
    }
}

$class_methods = get_class_methods('myclass');
// или
$class_methods = get_class_methods(new myclass());

foreach ($class_methods as $method_name) {
    echo "$method_name\n";
}

?>

Результат выполнения данного примера:

myclass
myfunc1
myfunc2

Смотрите также

  • get_class() - Возвращает имя класса, к которому принадлежит объект
  • get_class_vars() - Возвращает объявленные по умолчанию свойства класса
  • get_object_vars() - Возвращает свойства указанного объекта


Возвращает объявленные по умолчанию свойства класса

  • « get_class_methods
  • get_class »
  • PHP Manual
  • Классы/Объекты
  • Возвращает объявленные по умолчанию свойства класса

get_class_vars

(PHP 4, PHP 5, PHP 7)

get_class_vars — Возвращает объявленные по умолчанию свойства класса

Описание

array get_class_vars ( string $class_name )

Возвращает объявленные по умолчанию свойства указанного класса.

Список параметров

class_name

Имя класса

Возвращаемые значения

Возвращает ассоциативный массив объявленных свойств класса, видимых из текущей области видимости, с их значением по умолчанию. Получившиеся элементы массива имеют форму varname => value. В случае ошибки возвращается FALSE.

Список изменений

Версия | Описание
5.0.3 | Вызов get_class_vars() вернет только те свойства, доступ к которым может быть получен из текущей области видимости.
5.0.2 | Вызов get_class_vars() не вернет все свойства в качестве массива, в отличие от предыдущего поведения, где protected и private свойства имели префикс с нулевым байтом.
5.0.1 | Вызов get_class_vars() покажет все свойства, как при конвертировании объекта в класс.

Примеры

Пример #1 Пример использования get_class_vars()

<?php

class myclass {

    var $var1; // переменная не имеет начального значения...
    var $var2 = "xyz";
    var $var3 = 100;
    private $var4;

    // конструктор
    function myclass() {
        // change some properties
        $this->var1 = "foo";
        $this->var2 = "bar";
        return true;
    }

}

$my_class = new myclass();

$class_vars = get_class_vars(get_class($my_class));

foreach ($class_vars as $name => $value) {
    echo "$name : $value\n";
}

?>

Результат выполнения данного примера:

var1 :
var2 : xyz
var3 : 100

Пример #2 get_class_vars() и поведение области видимости

<?php
function format($array)
{
    return implode('|', array_keys($array)) . "\r\n";
}

class TestCase
{
    public $a    = 1;
    protected $b = 2;
    private $c   = 3;

    public static function expose()
    {
        echo format(get_class_vars(__CLASS__));
    }
}

TestCase::expose();
echo format(get_class_vars('TestCase'));
?>

Результат выполнения данного примера:

// 5.0.0
a| * b| TestCase c
a| * b| TestCase c

// 5.0.1 - 5.0.2
a|b|c
a|b|c

// 5.0.3 +
a|b|c
a

Смотрите также

  • get_class_methods() - Возвращает массив имен методов класса
  • get_object_vars() - Возвращает свойства указанного объекта


Возвращает имя класса, к которому принадлежит объект

  • « get_class_vars
  • get_declared_classes »
  • PHP Manual
  • Классы/Объекты
  • Возвращает имя класса, к которому принадлежит объект

get_class

(PHP 4, PHP 5, PHP 7)

get_class — Возвращает имя класса, к которому принадлежит объект

Описание

string get_class ([ object $object = NULL ] )

Возвращает имя класса, экземпляром которого является объект object.

Список параметров

object

Тестируемый объект. Внутри класса этот параметр может быть опущен.

Возвращаемые значения

Возвращает имя класса, к которому принадлежит экземпляр object. Возвращает FALSE, если object не является объектом.

Если параметр object опущен внутри класса, будет возвращено имя этого класса.

Ошибки

Если get_class() будет вызвана с чем-то другим, не являющимся объектом, будет вызвана ошибка уровня E_WARNING.

Список изменений

Версия | Описание
5.3.0 | NULL стал значением по умолчанию для параметра object, поэтому передача NULL в object теперь имеет тот же самый эффект, как и отсутствие какой-либо передачи вообще.

Примеры

Пример #1 Использование get_class()

<?php

class foo {
    function name()
    {
        echo "My name is " , get_class($this) , "\n";
    }
}

// создание объекта
$bar = new foo();

// внешний вызов
echo "Its name is " , get_class($bar) , "\n";

// внутренний вызов
$bar->name();

?>

Результат выполнения данного примера:

Its name is foo
My name is foo

Пример #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"

Смотрите также

  • get_called_class() - Имя класса, полученное с помощью позднего статического связывания
  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • gettype() - Возвращает тип переменной
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его


Возвращает массив с именами объявленных классов

  • « get_class
  • get_declared_interfaces »
  • PHP Manual
  • Классы/Объекты
  • Возвращает массив с именами объявленных классов

get_declared_classes

(PHP 4, PHP 5, PHP 7)

get_declared_classes — Возвращает массив с именами объявленных классов

Описание

array get_declared_classes ( void )

Возвращает объявленные классы.

Возвращаемые значения

Возвращает массив имен объявленных классов текущего скрипта.

Замечание:

Учтите также, что в зависимости от расширений, собранных или загруженных в PHP, может варьироваться число дополнительных классов. Это означает, что вы не сможете использовать собственные классы с данными именами. Список предопределенных классов находится в разделе дополнения "Предопределенные Классы".

Примеры

Пример #1 Пример использования get_declared_classes()

<?php
print_r(get_declared_classes());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => stdClass
    [1] => __PHP_Incomplete_Class
    [2] => Directory
)

Смотрите также

  • class_exists() - Проверяет, был ли объявлен класс
  • get_declared_interfaces() - Возвращает массив всех объявленных интерфейсов
  • get_defined_functions() - Возвращает массив всех определённых функций


Возвращает массив всех объявленных интерфейсов

  • « get_declared_classes
  • get_declared_traits »
  • PHP Manual
  • Классы/Объекты
  • Возвращает массив всех объявленных интерфейсов

get_declared_interfaces

(PHP 5, PHP 7)

get_declared_interfaces — Возвращает массив всех объявленных интерфейсов

Описание

array get_declared_interfaces ( void )

Возвращает объявленные интерфейсы.

Возвращаемые значения

Возвращает массив имен всех объявленных интерфейсов в текущем скрипте.

Примеры

Пример #1 Пример использования get_declared_interfaces()

<?php
print_r(get_declared_interfaces());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => reflector
    [5] => RecursiveIterator
    [6] => SeekableIterator
)

Смотрите также

  • interface_exists() - Проверяет, определен ли интерфейс
  • get_declared_classes() - Возвращает массив с именами объявленных классов
  • class_implements() - Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе


Возвращает массив со всеми объявленными трейтами

  • « get_declared_interfaces
  • get_object_vars »
  • PHP Manual
  • Классы/Объекты
  • Возвращает массив со всеми объявленными трейтами

get_declared_traits

(PHP 5 >= 5.4.0, PHP 7)

get_declared_traits — Возвращает массив со всеми объявленными трейтами

Описание

array get_declared_traits ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив с именами трейтов в качестве значений массива. Возвращает NULL если таковые не найдены.

Смотрите также

  • class_uses() - Возвращает список трэйтов, используемых заданным классом


Возвращает свойства указанного объекта

  • « get_declared_traits
  • get_parent_class »
  • PHP Manual
  • Классы/Объекты
  • Возвращает свойства указанного объекта

get_object_vars

(PHP 4, PHP 5, PHP 7)

get_object_vars — Возвращает свойства указанного объекта

Описание

array get_object_vars ( object $object )

Возвращает видимые нестатические свойства указанного объекта object в соответствии с областью видимости.

Список параметров

object

Экземпляр объекта

Возвращаемые значения

Возвращает ассоциативный массив нестатических свойств объекта object, доступных в данной области видимости. Если свойству не было присвоено значение, оно будет возвращено со значением NULL.

Список изменений

Версия | Описание
5.3.0 | Функция теперь возвращает NULL, если object не является объектом. Ранее возвращался FALSE.

Примеры

Пример #1 Пример использования get_object_vars()

<?php

class foo {
    private $a;
    public $b = 1;
    public $c;
    private $d;
    static $e;

    public function test() {
        var_dump(get_object_vars($this));
    }
}

$test = new foo;
var_dump(get_object_vars($test));

$test->test();

?>

Результат выполнения данного примера:

array(2) {
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
}
array(4) {
  ["a"]=>
  NULL
  ["b"]=>
  int(1)
  ["c"]=>
  NULL
  ["d"]=>
  NULL
}

Смотрите также

  • get_class_methods() - Возвращает массив имен методов класса
  • get_class_vars() - Возвращает объявленные по умолчанию свойства класса


Возвращает имя родительского класса для объекта или класса

  • « get_object_vars
  • interface_exists »
  • PHP Manual
  • Классы/Объекты
  • Возвращает имя родительского класса для объекта или класса

get_parent_class

(PHP 4, PHP 5, PHP 7)

get_parent_class — Возвращает имя родительского класса для объекта или класса

Описание

string get_parent_class ([ mixed $object ] )

Возвращает имя родительского класса для объекта или класса.

Список параметров

object

Тестируемый объект или имя класса. Если вызывается из метода объекта, то этот параметр не обязателен.

Возвращаемые значения

Возвращает имя родительского класса, если object является объектом или именем класса.

Замечание:

Если объект не имеет родителя, или переданного класса с таким именем не существует, то будет возвращено FALSE.

Если функция вызвана без параметров вне объекта, эта функция возвращает FALSE.

Список изменений

Версия | Описание
5.1.0 | Если функция была вызвана без параметров вне объекта, то функция возвращала NULL вместе с предупреждением, однако сейчас она возвращает FALSE.

Примеры

Пример #1 Пример использования get_parent_class()

<?php

class dad {
    function dad()
    {
    // реализация какой-нибудь логики
    }
}

class child extends dad {
    function child()
    {
        echo "I'm " , get_parent_class($this) , "'s son\n";
    }
}

class child2 extends dad {
    function child2()
    {
        echo "I'm " , get_parent_class('child2') , "'s son too\n";
    }
}

$foo = new child();
$bar = new child2();

?>

Результат выполнения данного примера:

I'm dad's son
I'm dad's son too

Смотрите также

  • get_class() - Возвращает имя класса, к которому принадлежит объект
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его


Проверяет, определен ли интерфейс

  • « get_parent_class
  • is_a »
  • PHP Manual
  • Классы/Объекты
  • Проверяет, определен ли интерфейс

interface_exists

(PHP 5 >= 5.0.2, PHP 7)

interface_exists — Проверяет, определен ли интерфейс

Описание

bool interface_exists ( string $interface_name [, bool $autoload = true ] )

Проверяет, определен ли указанный интерфейс.

Список параметров

interface_name

Имя интерфейса

autoload

Определяет, использовать ли по умолчанию __autoload или нет

Возвращаемые значения

Возвращает TRUE, если интерфейс, заданный именем interface_name был определен, FALSE в остальных случаях.

Примеры

Пример #1 Пример использования interface_exists()

<?php
// Проверяем существование интерфейса перед его использованием
if (interface_exists('MyInterface')) {
    class MyClass implements MyInterface
    {
        // Методы
    }
}

?>

Смотрите также

  • get_declared_interfaces() - Возвращает массив всех объявленных интерфейсов
  • class_implements() - Возвращает список интерфейсов, реализованных в заданном классе или интерфейсе
  • class_exists() - Проверяет, был ли объявлен класс


Проверяет, принадлежит ли объект к данному классу или содержит данный класс в числе своих предков

  • « interface_exists
  • is_subclass_of »
  • PHP Manual
  • Классы/Объекты
  • Проверяет, принадлежит ли объект к данному классу или содержит данный класс в числе своих предков

is_a

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

is_a — Проверяет, принадлежит ли объект к данному классу или содержит данный класс в числе своих предков

Описание

bool is_a ( object $object , string $class_name [, bool $allow_string = FALSE ] )

Проверяет, принадлежит ли объект object к данному классу или содержит данный класс в числе своих предков

Список параметров

object

Проверяемый объект

class_name

Имя класса

allow_string

Если параметр установлен в FALSE, то не допускается имя класса в виде строки в качестве параметра object. Это также предотвращает вызов автозагрузчика, если класс не существует.

Возвращаемые значения

Возвращает TRUE, если объект принадлежит данному классу или имеет данный класс в числе своих предков, иначе возвращается FALSE.

Список изменений

Версия | Описание
5.3.9 | Добавлен параметр allow_string
5.3.0 | Данная функция больше не считается устаревшей, а значит, не будет выводить предупреждения E_STRICT.
5.0.0 | Эта функция была помечена устаревшей в пользу оператора instanceof. Вызов данной функции вызовет предупреждение уровня E_STRICT.

Примеры

Пример #1 Пример использования is_a()

<?php
// объявление класса
class WidgetFactory
{
  var $oink = 'moo';
}

// создание нового объекта
$WF = new WidgetFactory();

if (is_a($WF, 'WidgetFactory')) {
  echo "да, \$WF все еще WidgetFactory\n";
}
?>

Пример #2 Использование оператора instanceof в PHP 5

<?php
if ($WF instanceof WidgetFactory) {
    echo 'Да, $WF - WidgetFactory';
}
?>

Смотрите также

  • get_class() - Возвращает имя класса, к которому принадлежит объект
  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его


Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его

  • « is_a
  • method_exists »
  • PHP Manual
  • Классы/Объекты
  • Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его

is_subclass_of

(PHP 4, PHP 5, PHP 7)

is_subclass_of — Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его

Описание

bool is_subclass_of ( mixed $object , string $class_name [, bool $allow_string = TRUE ] )

Проверяет, содержит ли объект object в своем дереве предков класс class_name либо прямо реализует его.

Список параметров

object

Имя класса или экземпляр объекта. В случае отсутствия такого класса никакой ошибки сгенерировано не будет.

class_name

Имя класса

allow_string

Если параметр установлен в false, то не допускается имя класса в виде строки в качестве параметра object. Это также предотвращает вызов автозагрузчика, если класс не существует.

Возвращаемые значения

Эта функция возвращает TRUE, если объект object принадлежит к классу, наследующему от class_name, иначе она возвращает FALSE.

Список изменений

Версия | Описание
5.3.9 | Добавлен параметр allow_string
5.3.7 | Добавлена поддержка работы с интерфейсами для параметра class_name
5.0.3 | Вы также можете передать параметр object в виде строки (имени класса)

Примеры

Пример #1 Пример использования is_subclass_of()

<?php
// объявляем класс
class WidgetFactory
{
  var $oink = 'moo';
}

// объявляем наследника
class WidgetFactory_Child extends WidgetFactory
{
  var $oink = 'oink';
}

// создаем новый объект
$WF = new WidgetFactory();
$WFC = new WidgetFactory_Child();

if (is_subclass_of($WFC, 'WidgetFactory')) {
  echo "да, \$WFC наследует WidgetFactory\n";
} else {
  echo "нет, \$WFC не наследует WidgetFactory\n";
}

if (is_subclass_of($WF, 'WidgetFactory')) {
  echo "да, \$WF наследует WidgetFactory\n";
} else {
  echo "нет, \$WF не наследует WidgetFactory\n";
}

// применимо только с версии PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
  echo "да, WidgetFactory_Child наследует WidgetFactory\n";
} else {
  echo "нет, WidgetFactory_Child не наследует WidgetFactory\n";
}
?>

Результат выполнения данного примера:

да, $WFC наследует WidgetFactory
нет, $WF не наследует WidgetFactory
да, WidgetFactory_Child наследует WidgetFactory

Пример #2 Пример использования интерфейсов и is_subclass_of()

<?php
// Определяем интерфейс
interface MyInterface
{
  public function MyFunction();
}

// Определяем класс с реализацией интерфейса
class MyClass implements MyInterface
{
  public function MyFunction()
  {
    return "MyClass реализует MyInterface!";
  }
}

// Создаем объект
$my_object = new MyClass;

// Код ниже работает начиная с PHP 5.3.7

// Проверка с помощью экземпляра объекта
if (is_subclass_of($my_object, 'MyInterface')) {
  echo "Да, \$my_object является подклассом MyInterface\n";
} else {
  echo "Нет, \$my_object не является подклассом MyInterface\n";
}

// Проверка с помощью имени класса в виде строки
if (is_subclass_of('MyClass', 'MyInterface')) {
  echo "Да, MyClass является подклассом MyInterface\n";
} else {
  echo "Нет, MyClass не является подклассом MyInterface\n";
}
?>

Результат выполнения данного примера:

Да, $my_object является подклассом MyInterface
Да, MyClass является подклассом MyInterface

Примечания

Замечание:

Вызов этой функции будет использовать все зарегистрированные функции автозагрузки, если класс еще не известен.

Смотрите также

  • get_class() - Возвращает имя класса, к которому принадлежит объект
  • get_parent_class() - Возвращает имя родительского класса для объекта или класса
  • is_a() - Проверяет, принадлежит ли объект к данному классу или содержит данный класс в числе своих предков
  • class_parents() - Возвращает список родительских классов заданного класса


Проверяет, существует ли метод в данном классе

  • « is_subclass_of
  • property_exists »
  • PHP Manual
  • Классы/Объекты
  • Проверяет, существует ли метод в данном классе

method_exists

(PHP 4, PHP 5, PHP 7)

method_exists — Проверяет, существует ли метод в данном классе

Описание

bool method_exists ( mixed $object , string $method_name )

Проверяет, существует ли метод класса, в указанном объекте object.

Список параметров

object

Экземпляр объекта или имя класса

method_name

Имя метода

Возвращаемые значения

Возвращает TRUE, если метод method_name определен для указанного объекта object, иначе возвращает FALSE.

Примечания

Замечание:

Вызов этой функции будет использовать все зарегистрированные функции автозагрузки, если класс еще не известен.

Примеры

Пример #1 Пример использования method_exists()

<?php
$directory = new Directory('.');
var_dump(method_exists($directory,'read'));
?>

Результат выполнения данного примера:

bool(true)

Пример #2 Пример статического использования method_exists()

<?php
var_dump(method_exists('Directory','read'));
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • function_exists() - Возвращает TRUE, если указанная функция определена
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • class_exists() - Проверяет, был ли объявлен класс


Проверяет, содержит ли объект или класс указанный атрибут

  • « method_exists
  • trait_exists »
  • PHP Manual
  • Классы/Объекты
  • Проверяет, содержит ли объект или класс указанный атрибут

property_exists

(PHP 5 >= 5.1.0, PHP 7)

property_exists — Проверяет, содержит ли объект или класс указанный атрибут

Описание

bool property_exists ( mixed $class , string $property )

Функция проверяет, существует ли атрибут property в указанном классе.

Замечание:

В противоположность isset(), property_exists() возвращает TRUE даже если свойство имеет значение NULL.

Список параметров

class

Имя класса или объект класса для проверки

property

Имя свойства

Возвращаемые значения

Возвращает TRUE, если свойство существует, FALSE - если оно не существует или NULL в случае ошибки.

Примечания

Замечание:

Вызов этой функции будет использовать все зарегистрированные функции автозагрузки, если класс еще не известен.

Замечание:

Функция property_exists() не определяет магически доступные свойства с помощью метода __get.

Список изменений

Версия | Описание
5.3.0 | Эта функция проверяет существование свойства вне зависимости от его доступности.

Примеры

Пример #1 Пример использования property_exists()

<?php

class myClass {
    public $mine;
    private $xpto;
    static protected $test;

    static function test() {
        var_dump(property_exists('myClass', 'xpto')); //true
    }
}

var_dump(property_exists('myClass', 'mine'));   //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto'));   //true, начиная с версии PHP 5.3.0
var_dump(property_exists('myClass', 'bar'));    //false
var_dump(property_exists('myClass', 'test'));   //true, начиная с версии PHP 5.3.0
myClass::test();

?>

Смотрите также

  • method_exists() - Проверяет, существует ли метод в данном классе


Проверяет, существует ли трейт

  • « property_exists
  • Classkit »
  • PHP Manual
  • Классы/Объекты
  • Проверяет, существует ли трейт

trait_exists

(PHP 5 >= 5.4.0, PHP 7)

trait_exists — Проверяет, существует ли трейт

Описание

bool trait_exists ( string $traitname [, bool $autoload ] )

Список параметров

traitname

Имя трейта для проверки

autoload

Пытаться ли его загрузить автоматически

Возвращаемые значения

Возвращает TRUE если трейт существует, FALSE если нет, NULL в случае ошибки.


Classkit

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • classkit
    • classkit_import — Импортирует определения методов нового класса из файла
    • classkit_method_add — Динамически добавляет новый метод в заданный класс
    • classkit_method_copy — Копирует метод из одного класса в другой
    • classkit_method_redefine — Динамически меняет код заданного метода
    • classkit_method_remove — Динамически удаляет заданный метод
    • classkit_method_rename — Динамически меняет имя заданного метода


Введение

Эти функции позволяют динамически управлять классами PHP во время выполнения.

Замечание:

Этот модуль был заменен модулем runkit, который не ограничивается управлением классами, а умеет управлять так же и функциями.


Установка

Это расширение не поддерживается и считается умершим. Однако, его исходный код все еще доступен в PECL SVN вот здесь: » http://svn.php.net/viewvc/pecl/classkit.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

CLASSKIT_ACC_PRIVATE (int)
Помечает метод, как private
CLASSKIT_ACC_PROTECTED (int)
Помечает метод, как protected
CLASSKIT_ACC_PUBLIC (int)
Помечает метод, как public


classkit

Содержание

  • classkit_import — Импортирует определения методов нового класса из файла
  • classkit_method_add — Динамически добавляет новый метод в заданный класс
  • classkit_method_copy — Копирует метод из одного класса в другой
  • classkit_method_redefine — Динамически меняет код заданного метода
  • classkit_method_remove — Динамически удаляет заданный метод
  • classkit_method_rename — Динамически меняет имя заданного метода


Импортирует определения методов нового класса из файла

  • « classkit
  • classkit_method_add »
  • PHP Manual
  • classkit
  • Импортирует определения методов нового класса из файла

classkit_import

(PECL classkit >= 0.3)

classkit_import — Импортирует определения методов нового класса из файла

Описание

array classkit_import ( string $filename )

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

filename

Имя файла с определениями методов класса

Возвращаемые значения

Ассоциативный массив импортированных методов

Примеры

Пример #1 Пример использования classkit_import()

<?php
// file: newclass.php
class Example {
    function foo() {
        return "bar!\n";
    }
}
?>
<?php
// требуется newclass.php (см. выше)
class Example {
    function foo() {
        return "foo!\n";
    }
}

$e = new Example();

// вывод оригинала
echo $e->foo();

// импорт замещающего метода
classkit_import('newclass.php');

// вывод импортированного метода
echo $e->foo();

?>

Результат выполнения данного примера:

foo!
bar!

Смотрите также

  • classkit_method_add() - Динамически добавляет новый метод в заданный класс
  • classkit_method_copy() - Копирует метод из одного класса в другой


Динамически добавляет новый метод в заданный класс

  • « classkit_import
  • classkit_method_copy »
  • PHP Manual
  • classkit
  • Динамически добавляет новый метод в заданный класс

classkit_method_add

(PECL classkit >= 0.1)

classkit_method_add — Динамически добавляет новый метод в заданный класс

Описание

bool classkit_method_add ( string $classname , string $methodname , string $args , string $code [, int $flags = CLASSKIT_ACC_PUBLIC ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

Класс, в который этот метод будет добавлен

methodname

Имя добавляемого метода

args

Список аргументов для созданного метода с разделителем ","

code

Код, который будет выполняться во время вызова methodname

flags

Тип создаваемого метода, может быть CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED или CLASSKIT_ACC_PRIVATE

Замечание:

Этот параметр используется только в PHP начиная с 5 версии, поскольку в предыдущих версиях все методы были общедоступными.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования classkit_method_add()

<?php
class Example {
    function foo() {
        echo "foo!\n";
    }
}

// создается объект Example
$e = new Example();

// Добавляется новый общедоступный метод
classkit_method_add(
    'Example',
    'add',
    '$num1, $num2',
    'return $num1 + $num2;',
    CLASSKIT_ACC_PUBLIC
);

// сложение 12 + 4
echo $e->add(12, 4);
?>

Результат выполнения данного примера:

16

Смотрите также

  • classkit_method_copy() - Копирует метод из одного класса в другой
  • classkit_method_redefine() - Динамически меняет код заданного метода
  • classkit_method_remove() - Динамически удаляет заданный метод
  • classkit_method_rename() - Динамически меняет имя заданного метода
  • create_function() - Создаёт анонимную (лямбда) функцию


Копирует метод из одного класса в другой

  • « classkit_method_add
  • classkit_method_redefine »
  • PHP Manual
  • classkit
  • Копирует метод из одного класса в другой

classkit_method_copy

(PECL classkit >= 0.2)

classkit_method_copy — Копирует метод из одного класса в другой

Описание

bool classkit_method_copy ( string $dClass , string $dMethod , string $sClass [, string $sMethod ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

dClass

Класс, в который необходимо скопировать метод

dMethod

Имя нового метода

sClass

Исходный класс, содержащий копируемый метод

sMethod

Имя копируемого метода из исходного класса. Если этот параметр не указан, предполагается значение dMethod.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования classkit_method_copy()

<?php
class Foo {
    function example() {
        return "foo!\n";
    }
}

class Bar {
    // изначально без методов
}

// копируется метод example() из класса Foo в класс Bar, с новым именем baz()
classkit_method_copy('Bar', 'baz', 'Foo', 'example');

// вывод скопированной функции
echo Bar::baz();
?>

Результат выполнения данного примера:

foo!

Смотрите также

  • classkit_method_add() - Динамически добавляет новый метод в заданный класс
  • classkit_method_redefine() - Динамически меняет код заданного метода
  • classkit_method_remove() - Динамически удаляет заданный метод
  • classkit_method_rename() - Динамически меняет имя заданного метода


Динамически меняет код заданного метода

  • « classkit_method_copy
  • classkit_method_remove »
  • PHP Manual
  • classkit
  • Динамически меняет код заданного метода

classkit_method_redefine

(PECL classkit >= 0.1)

classkit_method_redefine — Динамически меняет код заданного метода

Описание

bool classkit_method_redefine ( string $classname , string $methodname , string $args , string $code [, int $flags = CLASSKIT_ACC_PUBLIC ] )

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

Класс, в котором необходимо переопределить метод

methodname

Имя переопределяемого метода

args

Список аргументов переопределяемого метода с разделителем ","

code

Новый код, который будет выполняться во время вызова methodname

flags

Переопределяемый метод может быть CLASSKIT_ACC_PUBLIC, CLASSKIT_ACC_PROTECTED или CLASSKIT_ACC_PRIVATE

Замечание:

Этот параметр используется только в PHP начиная с 5 версии, поскольку в предыдущих версиях все методы были общедоступными.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования classkit_method_redefine()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// создается объект Example
$e = new Example();

// вывод Example::foo() (до переопределения)
echo "Before: " . $e->foo();

// Переопределение метода 'foo'
classkit_method_redefine(
    'Example',
    'foo',
    '',
    'return "bar!\n";',
    CLASSKIT_ACC_PUBLIC
);

// вывод Example::foo() (после переопределения)
echo "After: " . $e->foo();
?>

Результат выполнения данного примера:

Before: foo!
After: bar!

Смотрите также

  • classkit_method_add() - Динамически добавляет новый метод в заданный класс
  • classkit_method_copy() - Копирует метод из одного класса в другой
  • classkit_method_remove() - Динамически удаляет заданный метод
  • classkit_method_rename() - Динамически меняет имя заданного метода


Динамически удаляет заданный метод

  • « classkit_method_redefine
  • classkit_method_rename »
  • PHP Manual
  • classkit
  • Динамически удаляет заданный метод

classkit_method_remove

(PECL classkit >= 0.1)

classkit_method_remove — Динамически удаляет заданный метод

Описание

bool classkit_method_remove ( string $classname , string $methodname )

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

Класс, в котором необходимо удалить метод

methodname

Имя удаляемого метода

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования classkit_method_remove()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }

    function bar() {
        return "bar!\n";
    }
}

// Удаление метода 'foo'
classkit_method_remove(
    'Example',
    'foo'
);

echo implode(' ', get_class_methods('Example'));

?>

Результат выполнения данного примера:

bar

Смотрите также

  • classkit_method_add() - Динамически добавляет новый метод в заданный класс
  • classkit_method_copy() - Копирует метод из одного класса в другой
  • classkit_method_redefine() - Динамически меняет код заданного метода
  • classkit_method_rename() - Динамически меняет имя заданного метода


Динамически меняет имя заданного метода

  • « classkit_method_remove
  • Ctype »
  • PHP Manual
  • classkit
  • Динамически меняет имя заданного метода

classkit_method_rename

(PECL classkit >= 0.1)

classkit_method_rename — Динамически меняет имя заданного метода

Описание

bool classkit_method_rename ( string $classname , string $methodname , string $newname )

Замечание: Эта функция не может быть использована для влияния на работающие в данный момент (или цепные) методы.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

classname

Класс, в котором необходимо переименовать метод

methodname

Имя переименовываемого метода

newname

Новое имя метода после переименования

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования classkit_method_rename()

<?php
class Example {
    function foo() {
        return "foo!\n";
    }
}

// Переименование метода 'foo' в 'bar'
classkit_method_rename(
    'Example',
    'foo',
    'bar'
);

// вывод переименованной функции
echo Example::bar();
?>

Результат выполнения данного примера:

foo!

Смотрите также

  • classkit_method_add() - Динамически добавляет новый метод в заданный класс
  • classkit_method_copy() - Копирует метод из одного класса в другой
  • classkit_method_redefine() - Динамически меняет код заданного метода
  • classkit_method_remove() - Динамически удаляет заданный метод


Функции определения типа символов

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Ctype
    • ctype_alnum — Проверяет на наличие буквенно-цифровых символов
    • ctype_alpha — Проверяет на наличие буквенных символов
    • ctype_cntrl — Проверяет на наличие управляющих символов
    • ctype_digit — Проверяет на наличие цифровых символов в строке
    • ctype_graph — Проверяет наличие всех печатных символов, кроме пробела
    • ctype_lower — Проверяет наличие символов в нижнем регистре
    • ctype_print — Проверяет на наличие печатных символов
    • ctype_punct — Проверяет на наличие печатных символов, которые в то же время не являются пробельными или буквенно-цифровыми символами
    • ctype_space — Проверяет наличие пробельных символов
    • ctype_upper — Проверяет на наличие символов в верхнем регистре
    • ctype_xdigit — Проверяет наличие шестнадцатиричных цифр


Введение

Функции, представленные этим расширением, позволяют проверить принадлежность символа или строки определенному классу символов, принимая во внимание текущие региональные установки (см. также функцию setlocale()).

Будучи вызванными с целочисленным аргументом, эти функции полностью аналогичны своим эквивалентам в языке C (из ctype.h). Это означает, что если вы передаёте целое значение менее 256, функции проверяют соответствует ли это значение ASCII указанному классу символов (цифры находятся в диапазоне 0x30-0x39). Если число находится в пределах от -128 до -1 включительно, то к его значению будет прибавлено 256 и сравнение будет проводиться с использованием результата сложения.

Если аргументом выступает строка, то функции будут проверять каждый символ в этой строке и вернут TRUE только если каждый символ удовлетворяет требуемому условию. При вызове с пустой строкой в качестве аргумента, функции всегда возвращают TRUE в PHP < 5.1 и FALSE после 5.1.

При передаче данных других типов (кроме целого или строки) функции сразу же возвращают FALSE.

Следует обратить внимание на то, что данные функции работают значительно быстрее, чем регулярные выражения и даже эквивалентиные "str_*" и "is_*" функции. Это происходит потому, что ctype использует родную библиотеку C и поэтому выполняется значительно быстрее.

Замечание:

Эти функции не имеют никакого отношения к Python-библиотеке "ctypes". Название расширения является сокращением имени заголовочного файла C ctype.h, который содержит C-эквиваленты данных функций.

Данное расширение также было создано раньше Python "ctypes", так что любая путаница, связанная с этими названиями, вряд ли является ошибкой со стороны разработчиков расширения.


Требования

Содержит только функции из стандартной библиотеки C, которая всегда доступна, поэтому дополнительных требований нет.


Установка

Начиная с PHP 4.2.0 эти функции включены по умолчанию. В предыдущих версиях вы должны сконфигурировать и откомпилировать PHP с --enable-ctype . Запретить поддержку ctype можно с помощью --disable-ctype .

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.

Замечание: Встроенная поддержка ctype доступна с PHP 4.3.0.


  • « Типы ресурсов
  • Ctype »
  • PHP Manual
  • Ctype
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Ctype

Содержание

  • ctype_alnum — Проверяет на наличие буквенно-цифровых символов
  • ctype_alpha — Проверяет на наличие буквенных символов
  • ctype_cntrl — Проверяет на наличие управляющих символов
  • ctype_digit — Проверяет на наличие цифровых символов в строке
  • ctype_graph — Проверяет наличие всех печатных символов, кроме пробела
  • ctype_lower — Проверяет наличие символов в нижнем регистре
  • ctype_print — Проверяет на наличие печатных символов
  • ctype_punct — Проверяет на наличие печатных символов, которые в то же время не являются пробельными или буквенно-цифровыми символами
  • ctype_space — Проверяет наличие пробельных символов
  • ctype_upper — Проверяет на наличие символов в верхнем регистре
  • ctype_xdigit — Проверяет наличие шестнадцатиричных цифр


Проверяет на наличие буквенно-цифровых символов

  • « Ctype
  • ctype_alpha »
  • PHP Manual
  • Ctype
  • Проверяет на наличие буквенно-цифровых символов

ctype_alnum

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_alnum — Проверяет на наличие буквенно-цифровых символов

Описание

bool ctype_alnum ( string $text )

Проверяет, все ли символы в переданной строке text являются буквенно-цифровыми.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является буквой или цифрой, иначе возвращается FALSE.

Примеры

Пример #1 Пример использования ctype_alnum() (с использованием локали по умолчанию)

<?php
$strings = array('AbCd1zyZ9', 'foo!#$bar');
foreach ($strings as $testcase) {
    if (ctype_alnum($testcase)) {
        echo "Строка $testcase состоит только из букв и цифр.\n";
    } else {
        echo "Строка $testcase не состоит только из букв и цифр.\n";
    }
}
?>

Результат выполнения данного примера:

Строка AbCd1zyZ9 состоит только из букв и цифр.
Строка foo!#$bar не состоит только из букв и цифр.

Примечания

Замечание:

Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_alpha() - Проверяет на наличие буквенных символов
  • ctype_digit() - Проверяет на наличие цифровых символов в строке
  • setlocale() - Устанавливает настройки локали


Проверяет на наличие буквенных символов

  • « ctype_alnum
  • ctype_cntrl »
  • PHP Manual
  • Ctype
  • Проверяет на наличие буквенных символов

ctype_alpha

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_alpha — Проверяет на наличие буквенных символов

Описание

bool ctype_alpha ( string $text )

Проверяет, все ли символы в переданной строке text являются буквенными. В стандартной локали C буквами являются только [A-Za-z] и ctype_alpha() эквивалентна (ctype_upper($text) || ctype_lower($text)), если $text состоит всего из одного символа, но в других языках есть буквы, которые не считаются ни верхним, ни нижним регистром.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является буквой из текущей локали, FALSE в противном случае.

Примеры

Пример #1 Пример использования ctype_alpha() (с использованием локали по умолчанию)

<?php
$strings = array('KjgWZC', 'arf12');
foreach ($strings as $testcase) {
    if (ctype_alpha($testcase)) {
        echo "Строка $testcase состоит только из букв.\n";
    } else {
        echo "Строка $testcase состоит не только из букв.\n";
    }
}
?>

Результат выполнения данного примера:

Строка KjgWZC состоит только из букв.
Строка arf12 состоит не только из букв.

Примечания

Замечание:

Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_upper() - Проверяет на наличие символов в верхнем регистре
  • ctype_lower() - Проверяет наличие символов в нижнем регистре
  • setlocale() - Устанавливает настройки локали


Проверяет на наличие управляющих символов

  • « ctype_alpha
  • ctype_digit »
  • PHP Manual
  • Ctype
  • Проверяет на наличие управляющих символов

ctype_cntrl

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_cntrl — Проверяет на наличие управляющих символов

Описание

bool ctype_cntrl ( string $text )

Проверяет, все ли символы в переданной строке text являются управляющими символами. Управляющими символами, к примеру, являются перевод строки, символ табуляции, escape.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является управляющим символом из текущей локали, FALSE в противном случае.

Примеры

Пример #1 Пример использования ctype_cntrl()

<?php
$strings = array('string1' => "\n\r\t", 'string2' => 'arf12');
foreach ($strings as $name => $testcase) {
    if (ctype_cntrl($testcase)) {
        echo "Строка '$name' состоит только из управляющих символов.\n";
    } else {
        echo "Строка '$name' не состоит только из управляющих символов.\n";
    }
}
?>

Результат выполнения данного примера:

Строка 'string1' состоит только из управляющих символов.
Строка 'string2' не состоит только из управляющих символов.

Примечания

Замечание:

Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_print() - Проверяет на наличие печатных символов


Проверяет на наличие цифровых символов в строке

  • « ctype_cntrl
  • ctype_graph »
  • PHP Manual
  • Ctype
  • Проверяет на наличие цифровых символов в строке

ctype_digit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_digit — Проверяет на наличие цифровых символов в строке

Описание

bool ctype_digit ( string $text )

Проверяет, являются ли все символы в строке text цифровыми.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE если каждый символ строки text является десятичной цифрой, либо FALSE в противном случае.

Список изменений

Версия | Описание
5.1.0 | До версии PHP 5.1.0 эта функция возвращала TRUE, если в качестве text передавалась пустая строка.

Примеры

Пример #1 Пример использования ctype_digit()

<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
    if (ctype_digit($testcase)) {
        echo "Строка $testcase состоит только из цифр.\n";
    } else {
        echo "Строка $testcase не состоит только из цифр.\n";
    }
}
?>

Результат выполнения данного примера:

Строка 1820.20 не состоит только из цифр.
Строка 10002 состоит только из цифр.
Строка wsl!12 не состоит только из цифр.

Пример #2 Пример использования ctype_digit() со сравнением строк и целых чисел

<?php

$numeric_string = '42';
$integer        = 42;

ctype_digit($numeric_string);  // true
ctype_digit($integer);         // false (ASCII 42 это символ * )

is_numeric($numeric_string);   // true
is_numeric($integer);          // true
?>

Примечания

Замечание:

Для извлечения пользы из работы этой функции ей необходимо передавать строку (string), поэтому, если ей, к примеру, будет передан integer, то она может не возвратить ожидаемый результат. Однако, необходимо учитывать, что HTML-формы передают числовые строки, а не целые числа. Подробнее читайте в разделе "Типы" данного руководства.

Смотрите также

  • ctype_alnum() - Проверяет на наличие буквенно-цифровых символов
  • ctype_xdigit() - Проверяет наличие шестнадцатиричных цифр
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_int() - Проверяет, является ли переменная переменной целочисленного типа
  • is_string() - Проверяет, является ли переменная строкой


Проверяет наличие всех печатных символов, кроме пробела

  • « ctype_digit
  • ctype_lower »
  • PHP Manual
  • Ctype
  • Проверяет наличие всех печатных символов, кроме пробела

ctype_graph

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_graph — Проверяет наличие всех печатных символов, кроме пробела

Описание

bool ctype_graph ( string $text )

Проверяет, все ли символы в переданной строке text являются видимыми при печати.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text печатный и фактически создает видимый вывод (без пробельных символов), FALSE в противном случае.

Примеры

Пример #1 Пример использования ctype_graph()

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_graph($testcase)) {
        echo "Строка '$name' состоит только из (видимых) печатных символов.\n";
    } else {
        echo "Строка '$name' не состоит только из (видимых) печатных символов.\n";
    }
}
?>

Результат выполнения данного примера:

Строка 'string1' не состоит только из (видимых) печатных символов.
Строка 'string2' состоит только из (видимых) печатных символов.
Строка 'string3' состоит только из (видимых) печатных символов.

Примечания

Замечание:

Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_alnum() - Проверяет на наличие буквенно-цифровых символов
  • ctype_print() - Проверяет на наличие печатных символов
  • ctype_punct() - Проверяет на наличие печатных символов, которые в то же время не являются пробельными или буквенно-цифровыми символами


Проверяет наличие символов в нижнем регистре

  • « ctype_graph
  • ctype_print »
  • PHP Manual
  • Ctype
  • Проверяет наличие символов в нижнем регистре

ctype_lower

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_lower — Проверяет наличие символов в нижнем регистре

Описание

bool ctype_lower ( string $text )

Проверяет, все ли символы в переданной строке text являются буквами в нижнем регистре.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является буквой в нижнем регистре в текущей локали.

Примеры

Пример #1 Пример использования ctype_lower() (с использованием локали по умолчанию)

<?php
$strings = array('aac123', 'qiutoas', 'QASsdks');
foreach ($strings as $testcase) {
    if (ctype_lower($testcase)) {
        echo "Строка $testcase состоит только из букв в нижнем регистре.\n";
    } else {
        echo "Строка $testcase не состоит только из букв в нижнем регистре.\n";
    }
}
?>

Результат выполнения данного примера:

Строка aac123 не состоит только из букв в нижнем регистре.
Строка qiutoas состоит только из букв в нижнем регистре.
Строка QASsdks не состоит только из букв в нижнем регистре.

Примечания

Замечание:

Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_alpha() - Проверяет на наличие буквенных символов
  • ctype_upper() - Проверяет на наличие символов в верхнем регистре
  • setlocale() - Устанавливает настройки локали


Проверяет на наличие печатных символов

  • « ctype_lower
  • ctype_punct »
  • PHP Manual
  • Ctype
  • Проверяет на наличие печатных символов

ctype_print

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_print — Проверяет на наличие печатных символов

Описание

bool ctype_print ( string $text )

Проверяет, все ли символы в переданной строке text являются печатными.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text фактически создает вывод (включая пустой). Возвращает FALSE, если text содержит управляющие символы, или символы, которые вообще не имеют никакого вывода или функции управления.

Примеры

Пример #1 Пример использования ctype_print()

<?php
$strings = array('string1' => "asdf\n\r\t", 'string2' => 'arf12', 'string3' => 'LKA#@%.54');
foreach ($strings as $name => $testcase) {
    if (ctype_print($testcase)) {
        echo "Строка '$name' состоит только из печатных символов.\n";
    } else {
        echo "Строка '$name' не состоит только из печатных символов.\n";
    }
}
?>

Результат выполнения данного примера:

Строка 'string1' не состоит только из печатных символов.
Строка 'string2' состоит только из печатных символов.
Строка 'string3' состоит только из печатных символов.

Примечания

Замечание:

Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_cntrl() - Проверяет на наличие управляющих символов
  • ctype_graph() - Проверяет наличие всех печатных символов, кроме пробела
  • ctype_punct() - Проверяет на наличие печатных символов, которые в то же время не являются пробельными или буквенно-цифровыми символами


Проверяет на наличие печатных символов, которые в то же время не являются пробельными или буквенно-цифровыми символами

  • « ctype_print
  • ctype_space »
  • PHP Manual
  • Ctype
  • Проверяет на наличие печатных символов, которые в то же время не являются пробельными или буквенно-цифровыми символами

ctype_punct

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_punct — Проверяет на наличие печатных символов, которые в то же время не являются пробельными или буквенно-цифровыми символами

Описание

bool ctype_punct ( string $text )

Проверяет, все ли символы в переданной строке text являются знаками пунктуации.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является печатным, но не является ни буквой, ни цифрой, ни пустым символом, иначе будет возвращено FALSE.

Примеры

Пример #1 Пример использования ctype_punct()

<?php
$strings = array('ABasdk!@!$#', '!@ # $', '*&$()');
foreach ($strings as $testcase) {
    if (ctype_punct($testcase)) {
        echo "Строка $testcase состоит только из знаков пунктуации.\n";
    } else {
        echo "Строка $testcase не состоит только из знаков пунктуации.\n";
    }
}
?>

Результат выполнения данного примера:

Строка ABasdk!@!$# не состоит только из знаков пунктуации.
Строка !@ # $ не состоит только из знаков пунктуации.
Строка *&$() состоит только из знаков пунктуации.

Примечания

Замечание:

Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_cntrl() - Проверяет на наличие управляющих символов
  • ctype_graph() - Проверяет наличие всех печатных символов, кроме пробела


Проверяет наличие пробельных символов

  • « ctype_punct
  • ctype_upper »
  • PHP Manual
  • Ctype
  • Проверяет наличие пробельных символов

ctype_space

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_space — Проверяет наличие пробельных символов

Описание

bool ctype_space ( string $text )

Проверяет, все ли символы в переданной строке text являются пробельными.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text создает какой-нибудь из пробельных символов, FALSE в противном случае. Кроме пробела, сюда также относятся символы табуляции, вертикальной табуляции, перевода строки, возврата каретки и перевода страницы.

Примеры

Пример #1 Пример использования ctype_space()

<?php
$strings = array('string1' => "\n\r\t", 'string2' => "\narf12", 'string3' => '\n\r\t');
foreach ($strings as $name => $testcase) {
    if (ctype_space($testcase)) {
        echo "Строка '$name' состоит только из пробельных символов.\n";
    } else {
        echo "Строка '$name' не состоит только из пробельных символов.\n";
    }
}
?>

Результат выполнения данного примера:

Строка 'string1' состоит только из пробельных символов.
Строка 'string2' не состоит только из пробельных символов.
Строка 'string3' не состоит только из пробельных символов.

Примечания

Замечание:

Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_cntrl() - Проверяет на наличие управляющих символов
  • ctype_graph() - Проверяет наличие всех печатных символов, кроме пробела
  • ctype_punct() - Проверяет на наличие печатных символов, которые в то же время не являются пробельными или буквенно-цифровыми символами


Проверяет на наличие символов в верхнем регистре

  • « ctype_space
  • ctype_xdigit »
  • PHP Manual
  • Ctype
  • Проверяет на наличие символов в верхнем регистре

ctype_upper

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_upper — Проверяет на наличие символов в верхнем регистре

Описание

bool ctype_upper ( string $text )

Проверяет, все ли символы в переданной строке text являются буквами в верхнем регистре.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE, если каждый символ в строке text является буквой в верхнем регистре в текущей локали.

Примеры

Пример #1 Пример использования ctype_upper() (с использованием локали по умолчанию)

<?php
$strings = array('AKLWC139', 'LMNSDO', 'akwSKWsm');
foreach ($strings as $testcase) {
    if (ctype_upper($testcase)) {
        echo "Строка $testcase состоит только из букв в верхнем регистре.\n";
    } else {
        echo "Строка $testcase не состоит только из букв в верхнем регистре.\n";
    }
}
?>

Результат выполнения данного примера:

Строка AKLWC139 не состоит только из букв в верхнем регистре.
Строка LMNSDO состоит только из букв в верхнем регистре.
Строка akwSKWsm не состоит только из букв в верхнем регистре.

Примечания

Замечание:

Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_alpha() - Проверяет на наличие буквенных символов
  • ctype_lower() - Проверяет наличие символов в нижнем регистре
  • setlocale() - Устанавливает настройки локали


Проверяет наличие шестнадцатиричных цифр

  • « ctype_upper
  • Структуры данных »
  • PHP Manual
  • Ctype
  • Проверяет наличие шестнадцатиричных цифр

ctype_xdigit

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

ctype_xdigit — Проверяет наличие шестнадцатиричных цифр

Описание

bool ctype_xdigit ( string $text )

Проверяет, являются ли все символы в строке text шестнадцатиричными 'цифрами'.

Список параметров

text

Проверяемая строка.

Возвращаемые значения

Возвращает TRUE если каждый символ строки text является шестнадцатиричной 'цифрой', то есть десятичной цифрой либо символом из диапазона [A-Fa-f], в обратном случае возвращает FALSE.

Примеры

Пример #1 Пример использования ctype_xdigit()

<?php
$strings = array('AB10BC99', 'AR1012', 'ab12bc99');
foreach ($strings as $testcase) {
    if (ctype_xdigit($testcase)) {
        echo "Строка $testcase состоит из шестнадцатиричных цифр.\n";
    } else {
        echo "Строка $testcase состоит не только из шестнадцатиричных цифр.\n";
    }
}
?>

Результат выполнения данного примера:

Строка AB10BC99 состоит из шестнадцатиричных цифр.
Строка AR1012 состоит не только из шестнадцатиричных цифр.
Строка ab12bc99 состоит из шестнадцатиричных цифр.

Примечания

Замечание:

Если передан integer в диапазоне между -128 и 255 включительно, то он будет обработан как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Смотрите также

  • ctype_digit() - Проверяет на наличие цифровых символов в строке


Структуры данных

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • Предопределенные константы
  • Примеры
  • Коллекция — Интерфейс Collection
    • Ds\Collection::clear — Удаляет все значения
    • Ds\Collection::copy — Возвращает копию коллекции
    • Ds\Collection::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Collection::toArray — Преобразует коллекцию в array
  • Хешируемое — Интерфейс Hashable
    • Ds\Hashable::equals — Определяет, являются ли текущий экземпляр объекта эквивалентным переданному
    • Ds\Hashable::hash — Возвращает скалярное значение для использования в роли хеша
  • Последовательность — Интерфейс Sequence
    • Ds\Sequence::allocate — Выделение памяти под указанную вместимость
    • Ds\Sequence::apply — Обновление всех значений применением к ним переданной callback-функции
    • Ds\Sequence::capacity — Возвращает текущую вместимость
    • Ds\Sequence::contains — Проверяет, содержится ли в коллекции заданные значения
    • Ds\Sequence::filter — Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции
    • Ds\Sequence::find — Поиск индекса по значению
    • Ds\Sequence::first — Возвращает первый элемент коллекции
    • Ds\Sequence::get — Возвращает значение по индексу
    • Ds\Sequence::insert — Вставляет значения по указанному индексу
    • Ds\Sequence::join — Склеивает все значения в строку
    • Ds\Sequence::last — Возвращает последнее значение коллекции
    • Ds\Sequence::map — Возвращает результат применения callback-функции ко всем значениям коллекции
    • Ds\Sequence::merge — Возвращает результат добавления всех заданных значений в коллекцию
    • Ds\Sequence::pop — Удаляет и возвращает последнее значение
    • Ds\Sequence::push — Добавляет значения в конец последовательности
    • Ds\Sequence::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
    • Ds\Sequence::remove — Удаляет и возвращает значение по индексу
    • Ds\Sequence::reverse — Переворачивает текущую коллекцию
    • Ds\Sequence::reversed — Возвращает перевернутую копию коллекции
    • Ds\Sequence::rotate — Перематывает последовательность на заданное число значений
    • Ds\Sequence::set — Заменяет значение по указанному индексу
    • Ds\Sequence::shift — Удаляет и возвращает первое значение
    • Ds\Sequence::slice — Возвращает под-коллекцию из заданного диапазона
    • Ds\Sequence::sort — Сортирует коллекцию
    • Ds\Sequence::sorted — Возвращает отсортированную по значению копию коллекции
    • Ds\Sequence::sum — Возвращает сумму всех значений коллекции
    • Ds\Sequence::unshift — Добавляет значения в начало последовательности
  • Вектор — Класс Vector
    • Ds\Vector::allocate — Выделение памяти под указанную вместимость
    • Ds\Vector::apply — Обновление всех значений применением к ним переданной callback-функции
    • Ds\Vector::capacity — Возвращает текущую вместимость
    • Ds\Vector::clear — Удаляет все значения из коллекции
    • Ds\Vector::__construct — Создает новый экземпляр класса
    • Ds\Vector::contains — Проверяет, содержится ли в коллекции заданные значения
    • Ds\Vector::copy — Возвращает поверхностную копию коллекции
    • Ds\Vector::count — Возвращает количество элементов коллекции
    • Ds\Vector::filter — Создает новый вектор из элементов, выбранных с помощью заданной callback-функции
    • Ds\Vector::find — Поиск индекса по значению
    • Ds\Vector::first — Возвращает первый элемент коллекции
    • Ds\Vector::get — Возвращает значение по индексу
    • Ds\Vector::insert — Вставляет значения по указанному индексу
    • Ds\Vector::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Vector::join — Склеивает все значения в строку
    • Ds\Vector::jsonSerialize — Возвращает коллекцию в JSON представлении
    • Ds\Vector::last — Возвращает последнее значение коллекции
    • Ds\Vector::map — Возвращает результат применения callback-функции ко всем значениям коллекции
    • Ds\Vector::merge — Возвращает результат добавления всех заданных значений в коллекцию
    • Ds\Vector::pop — Удаляет и возвращает последнее значение
    • Ds\Vector::push — Добавляет значения в конец вектора
    • Ds\Vector::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
    • Ds\Vector::remove — Удаляет и возвращает значение по индексу
    • Ds\Vector::reverse — Переворачивает текущую коллекцию
    • Ds\Vector::reversed — Возвращает перевернутую копию коллекции
    • Ds\Vector::rotate — Перематывает вектор на заданное число значений
    • Ds\Vector::set — Заменяет значение по указанному индексу
    • Ds\Vector::shift — Удаляет и возвращает первое значение
    • Ds\Vector::slice — Возвращает под-коллекцию из заданного диапазона
    • Ds\Vector::sort — Сортирует коллекцию
    • Ds\Vector::sorted — Возвращает отсортированную по значению копию коллекции
    • Ds\Vector::sum — Возвращает сумму всех значений коллекции
    • Ds\Vector::toArray — Преобразует коллекцию в array
    • Ds\Vector::unshift — Добавляет значения в начало вектора
  • Двухсторонняя очередь — Класс Deque
    • Ds\Deque::allocate — Выделение памяти под указанную вместимость
    • Ds\Deque::apply — Обновление всех значений применением к ним переданной callback-функции
    • Ds\Deque::capacity — Возвращает текущую вместимость
    • Ds\Deque::clear — Удаляет все значения из коллекции
    • Ds\Deque::__construct — Создает новый экземпляр класса
    • Ds\Deque::contains — Проверяет, содержится ли в коллекции заданные значения
    • Ds\Deque::copy — Возвращает поверхностную копию коллекции
    • Ds\Deque::count — Возвращает количество элементов коллекции
    • Ds\Deque::filter — Создает новую двунаправленную очередь из элементов, выбранных с помощью заданной callback-функции
    • Ds\Deque::find — Поиск индекса по значению
    • Ds\Deque::first — Возвращает первый элемент коллекции
    • Ds\Deque::get — Возвращает значение по индексу
    • Ds\Deque::insert — Вставляет значения по указанному индексу
    • Ds\Deque::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Deque::join — Склеивает все значения в строку
    • Ds\Deque::jsonSerialize — Возвращает коллекцию в JSON представлении
    • Ds\Deque::last — Возвращает последнее значение коллекции
    • Ds\Deque::map — Возвращает результат применения callback-функции ко всем значениям коллекции
    • Ds\Deque::merge — Возвращает результат добавления всех заданных значений в коллекцию
    • Ds\Deque::pop — Удаляет и возвращает последнее значение
    • Ds\Deque::push — Добавляет значения в конец двунаправленной очереди
    • Ds\Deque::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
    • Ds\Deque::remove — Удаляет и возвращает значение по индексу
    • Ds\Deque::reverse — Переворачивает текущую коллекцию
    • Ds\Deque::reversed — Возвращает перевернутую копию коллекции
    • Ds\Deque::rotate — Перематывает коллекцию на заданное число значений
    • Ds\Deque::set — Заменяет значение по указанному индексу
    • Ds\Deque::shift — Удаляет и возвращает первое значение
    • Ds\Deque::slice — Возвращает под-коллекцию из заданного диапазона
    • Ds\Deque::sort — Сортирует коллекцию
    • Ds\Deque::sorted — Возвращает отсортированную по значению копию коллекции
    • Ds\Deque::sum — Возвращает сумму всех значений коллекции
    • Ds\Deque::toArray — Преобразует коллекцию в array
    • Ds\Deque::unshift — Добавляет значения в начало двунаправленной очереди
  • Коллекция пар — Класс Map
    • Ds\Map::allocate — Выделяет необходимое количество памяти, под требуюмую вместимость
    • Ds\Map::apply — Обновление всех значений применением к ним переданной callback-функции
    • Ds\Map::capacity — Возвращает текущую вместимость
    • Ds\Map::clear — Удаляет все значения из коллекции
    • Ds\Map::__construct — Создает новый экземпляр класса
    • Ds\Map::copy — Возвращает поверхностную копию коллекции
    • Ds\Map::count — Возвращает количество элементов коллекции
    • Ds\Map::diff — Создает новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар
    • Ds\Map::filter — Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции
    • Ds\Map::first — Возвращает первый элемент коллекции
    • Ds\Map::get — Возвращает значение по ключу
    • Ds\Map::hasKey — Проверяет, содержит ли коллекция заданный ключ
    • Ds\Map::hasValue — Проверяет, содержит ли коллекция заданное значение
    • Ds\Map::intersect — Создает новую коллекцию пар, созданную пересечением с другой коллекцией пар
    • Ds\Map::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Map::jsonSerialize — Возвращает коллекцию в JSON представлении
    • Ds\Map::keys — Возвращает набор ключей коллекции
    • Ds\Map::ksort — Сортирует текущую коллекцию по ключам
    • Ds\Map::ksorted — Возвращает копию коллекции, отсортированной по ключам
    • Ds\Map::last — Возвращает последнюю пару коллекции
    • Ds\Map::map — Возвращает результат применения callback-функции ко всем значениям коллекции
    • Ds\Map::merge — Возвращает результат добавления всех заданных элементов в коллекцию
    • Ds\Map::pairs — Возвращает последовательность, содержащую все пары коллекции пар
    • Ds\Map::put — Установка значения по заданному ключу
    • Ds\Map::putAll — Вносит в коллекцию все пары ключ/значение из объекта класса traversable или массива
    • Ds\Map::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
    • Ds\Map::remove — Удаляет и возвращает значение по ключу
    • Ds\Map::reverse — Переворачивает текущую коллекцию
    • Ds\Map::reversed — Возвращает перевернутую копию коллекции
    • Ds\Map::skip — Возвращает пару по индексу позиции
    • Ds\Map::slice — Возвращает под-коллекцию из заданного диапазона
    • Ds\Map::sort — Сортирует коллекцию по значениям
    • Ds\Map::sorted — Возвращает отсортированную по значению копию коллекции
    • Ds\Map::sum — Возвращает сумму всех значений коллекции
    • Ds\Map::toArray — Преобразует коллекцию в array
    • Ds\Map::union — Создает новую коллекцию пар из элементов двух коллекций
    • Ds\Map::values — Возвращает последовательность значений коллекции пар
    • Ds\Map::xor — Создает новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно
  • Пара — Класс Pair
    • Ds\Pair::clear — Удаление всех значений
    • Ds\Pair::__construct — Создание экземпляра класса
    • Ds\Pair::copy — Возвращает поверхностную копию пары
    • Ds\Pair::isEmpty — Проверяет, является ли пара пустой
    • Ds\Pair::jsonSerialize — Возвращает пару в представлении JSON
    • Ds\Pair::toArray — Преобразует пару в array
  • Набор — Класс Set
    • Ds\Set::add — Добавляет значения в набор
    • Ds\Set::allocate — Выделение памяти под указанную вместимость
    • Ds\Set::capacity — Возвращает текущую вместимость
    • Ds\Set::clear — Удаляет все значения из коллекции
    • Ds\Set::__construct — Создает новый экземпляр класса
    • Ds\Set::contains — Проверяет, содержится ли в коллекции заданные значения
    • Ds\Set::copy — Возвращает поверхностную копию коллекции
    • Ds\Set::count — Возвращает количество элементов коллекции
    • Ds\Set::diff — Создает новый набор с элементами, которых нет в другом наборе
    • Ds\Set::filter — Создает новый список из элементов, выбранных с помощью заданной callback-функции
    • Ds\Set::first — Возвращает первый элемент коллекции
    • Ds\Set::get — Возвращает значение по индексу
    • Ds\Set::intersect — Создает новый набор, созданный пересечением с другим набором
    • Ds\Set::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Set::join — Склеивает все значения в строку
    • Ds\Set::jsonSerialize — Возвращает коллекцию в JSON представлении
    • Ds\Set::last — Возвращает последнее значение коллекции
    • Ds\Set::merge — Возвращает результат добавления всех заданных значений в коллекцию
    • Ds\Set::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
    • Ds\Set::remove — Удаляет все заданные значения из набора
    • Ds\Set::reverse — Переворачивает текущую коллекцию
    • Ds\Set::reversed — Возвращает перевернутую копию коллекции
    • Ds\Set::slice — Возвращает под-коллекцию из заданного диапазона
    • Ds\Set::sort — Сортирует коллекцию
    • Ds\Set::sorted — Возвращает отсортированную по значению копию коллекции
    • Ds\Set::sum — Возвращает сумму всех значений коллекции
    • Ds\Set::toArray — Преобразует коллекцию в array
    • Ds\Set::union — Создает новый набор из элементов текущего и переданного наборов
    • Ds\Set::xor — Создает новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно
  • Стек — Класс Stack
    • Ds\Stack::allocate — Выделение памяти под указанную вместимость
    • Ds\Stack::capacity — Возвращает текущую вместимость
    • Ds\Stack::clear — Удаляет все значения из коллекции
    • Ds\Stack::__construct — Создает новый экземпляр класса
    • Ds\Stack::copy — Возвращает поверхностную копию коллекции
    • Ds\Stack::count — Возвращает количество элементов коллекции
    • Ds\Stack::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Stack::jsonSerialize — Возвращает коллекцию в JSON представлении
    • Ds\Stack::peek — Возвращает значение с вершины стека
    • Ds\Stack::pop — Удаляет и возвращает значение с вершины стека
    • Ds\Stack::push — Добавляет значения в стек
    • Ds\Stack::toArray — Преобразует коллекцию в array
  • Очередь — Класс Queue
    • Ds\Queue::allocate — Выделение памяти под указанную вместимость
    • Ds\Queue::capacity — Возвращает текущую вместимость
    • Ds\Queue::clear — Удаляет все значения из коллекции
    • Ds\Queue::__construct — Создает новый экземпляр класса
    • Ds\Queue::copy — Возвращает поверхностную копию коллекции
    • Ds\Queue::count — Возвращает количество элементов коллекции
    • Ds\Queue::isEmpty — Проверяет, пуста ли коллекция
    • Ds\Queue::jsonSerialize — Возвращает коллекцию в JSON представлении
    • Ds\Queue::peek — Возвращает значение из начала очереди
    • Ds\Queue::pop — Удаляет и возвращает значение из начала очереди
    • Ds\Queue::push — Добавляет значения в очередь
    • Ds\Queue::toArray — Преобразует коллекцию в array
  • Очередь с приоритетом — Класс PriorityQueue
    • Ds\PriorityQueue::allocate — Выделение памяти под указанную вместимость
    • Ds\PriorityQueue::capacity — Возвращает текущую вместимость
    • Ds\PriorityQueue::clear — Удаляет все значения из коллекции
    • Ds\PriorityQueue::__construct — Создает новый экземпляр класса
    • Ds\PriorityQueue::copy — Возвращает поверхностную копию коллекции
    • Ds\PriorityQueue::count — Возвращает количество элементов коллекции
    • Ds\PriorityQueue::isEmpty — Проверяет, пуста ли коллекция
    • Ds\PriorityQueue::jsonSerialize — Возвращает коллекцию в JSON представлении
    • Ds\PriorityQueue::peek — Возвращает значение из начала очереди
    • Ds\PriorityQueue::pop — Удаляет и возвращает значение с наивысшим приоритетом
    • Ds\PriorityQueue::push — Добавляет значение в очередь
    • Ds\PriorityQueue::toArray — Преобразует коллекцию в array


Введение

Эффективные структуры данных для PHP 7, представленные как альтернативы для типа array.

Сравнения производительности, дискуссии и часто задаваемые вопросы смотри в » этом посте в блоге.


  • « Введение
  • Требования »
  • PHP Manual
  • Структуры данных
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Требуется PHP 7 как для самого расширения, так и для полизаполнения.


Установка

Самый простой способ установки, через » PECL

pecl install ds

Также вы можете самостоятельно собрать его из исходников:

# Зависимости, которые, возможно, придется установить
# sudo apt-get install git build-essential php7.0-dev

git clone https://github.com/php-ds/extension "php-ds"
cd php-ds

# Сборка и установка расширения
phpize
./configure
make
make install

# Очистка оставшихся артефактов
make clean
phpize --clean

Если вы используете Windows, вы можете загрузить » готовую библиотеку .dll из PECL

Замечание:

Если вы используете Composer, крайне рекомендуется включить » php-ds/php-ds в ваш проект, чтобы ваш код оставался рабочим, безотносительно того, установлено расширение или нет.


  • « Установка
  • Примеры »
  • PHP Manual
  • Структуры данных
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Пример #1 Vector

<?php

$vector = new \Ds\Vector();

$vector->push('a');
$vector->push('b', 'c');

$vector[] = 'd';

print_r($vector);

?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)

Пример #2 Map

<?php

$map = new \Ds\Map();

$map->put('a', 1);
$map->put('b', 2);

$map['c'] = 3;

print_r($map);

?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Интерфейс Collection

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Collection - это базовый интерфейс, который покрывает функциональность общую для всех структур данных в этой библиотеке. Он гарантирует, что все структуры обходимы, счетны и могут быть преобразованы в JSON с помощью функции json_encode().

Обзор интерфейсов

Ds\Collection implements Traversable , Countable , JsonSerializable {
/* Методы */
abstract public void clear ( void )
abstract public Ds\Collection copy ( void )
abstract public bool isEmpty ( void )
abstract public array toArray ( void )
}

Содержание

  • Ds\Collection::clear — Удаляет все значения
  • Ds\Collection::copy — Возвращает копию коллекции
  • Ds\Collection::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Collection::toArray — Преобразует коллекцию в array


Удаляет все значения

  • « Коллекция
  • Ds\Collection::copy »
  • PHP Manual
  • Коллекция
  • Удаляет все значения

Ds\Collection::clear

(PECL ds >= 1.0.0)

Ds\Collection::clear — Удаляет все значения

Описание

abstract public void 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::copy

(PECL ds >= 1.0.0)

Ds\Collection::copy — Возвращает копию коллекции

Описание

abstract public Ds\Collection Ds\Collection::copy ( void )

Возвращает копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает копию коллекции.

Примеры

Пример #1 Пример Ds\Collection::copy()

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = $a->copy();

$b->push(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Проверяет, пуста ли коллекция

  • « Ds\Collection::copy
  • Ds\Collection::toArray »
  • PHP Manual
  • Коллекция
  • Проверяет, пуста ли коллекция

Ds\Collection::isEmpty

(PECL ds >= 1.0.0)

Ds\Collection::isEmpty — Проверяет, пуста ли коллекция

Описание

abstract public bool Ds\Collection::isEmpty ( void )

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если коллекция пуста, и FALSE в противном случае.

Примеры

Пример #1 Пример Ds\Collection::isEmpty()

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = new \Ds\Vector();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Преобразует коллекцию в array

  • « Ds\Collection::isEmpty
  • Хешируемое »
  • PHP Manual
  • Коллекция
  • Преобразует коллекцию в array

Ds\Collection::toArray

(PECL ds >= 1.0.0)

Ds\Collection::toArray — Преобразует коллекцию в array

Описание

abstract public array Ds\Collection::toArray ( void )

Преобразует коллекцию в 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

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Hashable - это интерфейс, который позволяет использовать объекты в качестве ключей. Это альтернатива функции spl_object_hash(), которая вычисляет хеш объекта в соответствии с его обработчиком: это значит, что два объекта могут быть одинаковы по своему состоянию, но не считаются одинаковыми из-за того, что являются разными экземплярами одного класса.

Функция hash() используется для вычисления скалярного значения, характеризующего хеш объекта и определяющего его положение в хеш-таблице. Это значение не обязательно должно быть уникальным. Объекты с одинаковым хешем считаются идентичными.

Функция equals() используется для определения идентичности двух объектов. Она гарантирует, что два объекта являются одним и тем же экземпляром класса.

Обзор интерфейсов

Ds\Hashable {
/* Методы */
abstract public bool equals ( object $obj )
abstract public mixed hash ( void )
}

Содержание

  • Ds\Hashable::equals — Определяет, являются ли текущий экземпляр объекта эквивалентным переданному
  • Ds\Hashable::hash — Возвращает скалярное значение для использования в роли хеша


Определяет, являются ли текущий экземпляр объекта эквивалентным переданному

  • « Хешируемое
  • Ds\Hashable::hash »
  • PHP Manual
  • Хешируемое
  • Определяет, являются ли текущий экземпляр объекта эквивалентным переданному

Ds\Hashable::equals

(PECL ds >= 1.0.0)

Ds\Hashable::equals — Определяет, являются ли текущий экземпляр объекта эквивалентным переданному

Описание

abstract public bool Ds\Hashable::equals ( object $obj )

Определяет, являются ли текущий экземпляр объекта эквивалентным переданному.

Этот метод позволяет использовать объекты в качестве ключей в таких структурах как Ds\Map и Ds\Set, или любых других, честно реализующих этот интерфейс.

Замечание:

Гарантирует, что obj является экземпляром того же класса.

Предостережение

Чтобы объекты считались идентичными, необходимо, что бы у них был одинаковый хеш. Смотрите описание функции Ds\Hashable::hash().

Список параметров

obj

Объект для сравнения с текущим объектом.

Возвращаемые значения

TRUE если идентичны, и FALSE в обратном случае.


Возвращает скалярное значение для использования в роли хеша

  • « Ds\Hashable::equals
  • Последовательность »
  • PHP Manual
  • Хешируемое
  • Возвращает скалярное значение для использования в роли хеша

Ds\Hashable::hash

(PECL ds >= 1.0.0)

Ds\Hashable::hash — Возвращает скалярное значение для использования в роли хеша

Описание

abstract public mixed Ds\Hashable::hash ( void )

Возвращает скалярное значение для использования в роли хеша объекта.

В то время как значение хеша само по себе не гарантирует идентичность объектов, но это все-же обязательным условием при проверке с помощью функции Ds\Hashable::equals(). Значение хешей для одинаковых объектов не обязаны быть уникальными, к примеру вы можете просто возвращать TRUE для всех объектов и ничего не сломается. Единственным последствием будет то, что ваша хеш-таблица превратится в связанный список, потому что хеши всех объектов будут содержаться в одном блоке. Из этого следует, что важно выбирать хорошие значения/функции для создания хешей. Например уникальный идентификатор, или e-mail адрес.

Этот метод позволяет использовать объекты в качестве ключей в таких структурах как 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

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Последовательность описывает поведение, при котором значения распределены в одном, линейном порядке. В некоторых языках данное поведение описывается как "List". Это похоже на массив, в котором используются целочисленные ключи, за исключением нескольких моментов:

  • Значения всегда проиндексированы по порядку [0, 1, 2, ..., size - 1].
  • Можно обращаться только к значениям индексированным в диапазоне [0, size - 1].

В каких случаях используется:

  • Если вы хотите использовать массив как список (не обращая внимания на ключи).
  • Более эффективная альтернатива для SplDoublyLinkedList и SplFixedArray.

Обзор интерфейсов

Ds\Sequence implements Ds\Collection {
/* Методы */
abstract public void allocate ( int $capacity )
abstract public void apply ( callable $callback )
abstract public int capacity ( void )
abstract public bool contains ([ mixed $...values ] )
abstract public Ds\Sequence filter ([ callable $callback ] )
abstract public mixed find ( mixed $value )
abstract public mixed first ( void )
abstract public mixed get ( int $index )
abstract public void insert ( int $index [, mixed $...values ] )
abstract public string join ([ string $glue ] )
abstract public mixed last ( void )
abstract public Ds\Sequence map ( callable $callback )
abstract public Ds\Sequence merge ( mixed $values )
abstract public mixed pop ( void )
abstract public void push ([ mixed $...values ] )
abstract public mixed reduce ( callable $callback [, mixed $initial ] )
abstract public mixed remove ( int $index )
abstract public void reverse ( void )
abstract public Ds\Sequence reversed ( void )
abstract public void rotate ( int $rotations )
abstract public void set ( int $index , mixed $value )
abstract public mixed shift ( void )
abstract public Ds\Sequence slice ( int $index [, int $length ] )
abstract public void sort ([ callable $comparator ] )
abstract public Ds\Sequence sorted ([ callable $comparator ] )
abstract public number sum ( void )
abstract public void unshift ([ mixed $values ] )
}

Содержание

  • Ds\Sequence::allocate — Выделение памяти под указанную вместимость
  • Ds\Sequence::apply — Обновление всех значений применением к ним переданной callback-функции
  • Ds\Sequence::capacity — Возвращает текущую вместимость
  • Ds\Sequence::contains — Проверяет, содержится ли в коллекции заданные значения
  • Ds\Sequence::filter — Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции
  • Ds\Sequence::find — Поиск индекса по значению
  • Ds\Sequence::first — Возвращает первый элемент коллекции
  • Ds\Sequence::get — Возвращает значение по индексу
  • Ds\Sequence::insert — Вставляет значения по указанному индексу
  • Ds\Sequence::join — Склеивает все значения в строку
  • Ds\Sequence::last — Возвращает последнее значение коллекции
  • Ds\Sequence::map — Возвращает результат применения callback-функции ко всем значениям коллекции
  • Ds\Sequence::merge — Возвращает результат добавления всех заданных значений в коллекцию
  • Ds\Sequence::pop — Удаляет и возвращает последнее значение
  • Ds\Sequence::push — Добавляет значения в конец последовательности
  • Ds\Sequence::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
  • Ds\Sequence::remove — Удаляет и возвращает значение по индексу
  • Ds\Sequence::reverse — Переворачивает текущую коллекцию
  • Ds\Sequence::reversed — Возвращает перевернутую копию коллекции
  • Ds\Sequence::rotate — Перематывает последовательность на заданное число значений
  • Ds\Sequence::set — Заменяет значение по указанному индексу
  • Ds\Sequence::shift — Удаляет и возвращает первое значение
  • Ds\Sequence::slice — Возвращает под-коллекцию из заданного диапазона
  • Ds\Sequence::sort — Сортирует коллекцию
  • Ds\Sequence::sorted — Возвращает отсортированную по значению копию коллекции
  • Ds\Sequence::sum — Возвращает сумму всех значений коллекции
  • Ds\Sequence::unshift — Добавляет значения в начало последовательности


Выделение памяти под указанную вместимость

  • « Последовательность
  • Ds\Sequence::apply »
  • PHP Manual
  • Последовательность
  • Выделение памяти под указанную вместимость

Ds\Sequence::allocate

(PECL ds >= 1.0.0)

Ds\Sequence::allocate — Выделение памяти под указанную вместимость

Описание

abstract public void Ds\Sequence::allocate ( int $capacity )

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического добавления памяти при добавлении значений.

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то она не изменится.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Sequence::allocate()

<?php
$sequence = new \Ds\Vector();
var_dump($sequence->capacity());

$vector->allocate(100);
var_dump($sequence->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(100)


Обновление всех значений применением к ним переданной callback-функции

  • « Ds\Sequence::allocate
  • Ds\Sequence::capacity »
  • PHP Manual
  • Последовательность
  • Обновление всех значений применением к ним переданной callback-функции

Ds\Sequence::apply

(PECL ds >= 1.0.0)

Ds\Sequence::apply — Обновление всех значений применением к ним переданной callback-функции

Описание

abstract public void Ds\Sequence::apply ( callable $callback )

Обновление всех значений применением к ним переданной callback-функции.

Список параметров

callback

mixed callback ( mixed $value )

Объект типа callable.

Callback-функция должна возвращать новое значение, которое заменит текущее.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Sequence::apply()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
$sequence->apply(function($value) { return $value * 2; });

print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Возвращает текущую вместимость

  • « Ds\Sequence::apply
  • Ds\Sequence::contains »
  • PHP Manual
  • Последовательность
  • Возвращает текущую вместимость

Ds\Sequence::capacity

(PECL ds >= 1.0.0)

Ds\Sequence::capacity — Возвращает текущую вместимость

Описание

abstract public int Ds\Sequence::capacity ( void )

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Sequence::capacity()

<?php
$sequence = new \Ds\Vector();
var_dump($sequence->capacity());

$sequence->push(...range(1, 50));
var_dump($sequence->capacity());

$sequence[] = "a";
var_dump($sequence->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(50)
int(75)


Проверяет, содержится ли в коллекции заданные значения

  • « Ds\Sequence::capacity
  • Ds\Sequence::filter »
  • PHP Manual
  • Последовательность
  • Проверяет, содержится ли в коллекции заданные значения

Ds\Sequence::contains

(PECL ds >= 1.0.0)

Ds\Sequence::contains — Проверяет, содержится ли в коллекции заданные значения

Описание

abstract public bool Ds\Sequence::contains ([ mixed $...values ] )

Проверяет, содержится ли в коллекции заданные значения.

Список параметров

values

Значения для проверки.

Возвращаемые значения

Возвращает FALSE, если хотя бы одно значение из values не найдено в коллекции и TRUE в противном случае.

Примеры

Пример #1 Пример использования Ds\Sequence::contains()

<?php
$sequence = new \Ds\Vector(['a', 'b', 'c', 1, 2, 3]);

var_dump($sequence->contains('a'));                // true
var_dump($sequence->contains('a', 'b'));           // true
var_dump($sequence->contains('c', 'd'));           // false

var_dump($sequence->contains(...['c', 'b', 'a'])); // true

// Всегда строгая проверка
var_dump($sequence->contains(1));                  // true
var_dump($sequence->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Sequence::contains
  • Ds\Sequence::find »
  • PHP Manual
  • Последовательность
  • Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции

Ds\Sequence::filter

(PECL ds >= 1.0.0)

Ds\Sequence::filter — Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции

Описание

abstract public Ds\Sequence Ds\Sequence::filter ([ callable $callback ] )

Создает новую последовательность из элементов, выбранных с помощью заданной callback-функции.

Список параметров

callback

bool callback ( mixed $value )

Опциональный аргумент типа callable, который возвращает TRUE если значение должно быть включено и FALSE, если нет.

Если callback-функция не задана, то будут включены только элементы, которые приводятся к логическому значению TRUE (мотри приведение к boolean).

Возвращаемые значения

Новая последовательность, содержащая значения, для которых функция callback вернула TRUE, или все елементы, которые при приведении к логическому типу становятся TRUE, если параметр callback не задан.

Примеры

Пример #1 Пример Ds\Sequence::filter() с использованием callback-функции

<?php
$sequence = new \Ds\Vector([1, 2, 3, 4, 5]);

var_dump($sequence->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Пример #2 Пример Ds\Sequence::filter() без callback-функции

<?php
$sequence = new \Ds\Vector([0, 1, 'a', true, false]);

var_dump($sequence->filter());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Поиск индекса по значению

  • « Ds\Sequence::filter
  • Ds\Sequence::first »
  • PHP Manual
  • Последовательность
  • Поиск индекса по значению

Ds\Sequence::find

(PECL ds >= 1.0.0)

Ds\Sequence::find — Поиск индекса по значению

Описание

abstract public mixed Ds\Sequence::find ( mixed $value )

Возвращает индекс значения value, или FALSE, если ничего не найдено.

Список параметров

value

Искомое значение.

Возвращаемые значения

Индекс элемента, или FALSE, если значение не найдено.

Замечание:

Элементы сравниваются строго, по типу и значению.

Примеры

Пример #1 Пример использования Ds\Sequence::find()

<?php
$sequence = new \Ds\Vector(["a", 1, true]);

var_dump($sequence->find("a")); // 0
var_dump($sequence->find("b")); // false
var_dump($sequence->find("1")); // false
var_dump($sequence->find(1));   // 1
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
bool(false)
bool(false)
int(1)


Возвращает первый элемент коллекции

  • « Ds\Sequence::find
  • Ds\Sequence::get »
  • PHP Manual
  • Последовательность
  • Возвращает первый элемент коллекции

Ds\Sequence::first

(PECL ds >= 1.0.0)

Ds\Sequence::first — Возвращает первый элемент коллекции

Описание

abstract public mixed Ds\Sequence::first ( void )

Возвращает первый элемент коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первый элемент коллекции.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Sequence::first()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->first());
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)


Возвращает значение по индексу

  • « Ds\Sequence::first
  • Ds\Sequence::insert »
  • PHP Manual
  • Последовательность
  • Возвращает значение по индексу

Ds\Sequence::get

(PECL ds >= 1.0.0)

Ds\Sequence::get — Возвращает значение по индексу

Описание

abstract public mixed Ds\Sequence::get ( int $index )

Возвращает значение по заданному индексу.

Список параметров

index

Индекс. Первый элемент имеет индекс 0.

Возвращаемые значения

Значение по заданному индексу.

Ошибки

Бросает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Sequence::get()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->get(0));
var_dump($sequence->get(1));
var_dump($sequence->get(2));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"

Пример #2 Пример использования Ds\Sequence::get() с синтаксисом массива

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence[0]);
var_dump($sequence[1]);
var_dump($sequence[2]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Вставляет значения по указанному индексу

  • « Ds\Sequence::get
  • Ds\Sequence::join »
  • PHP Manual
  • Последовательность
  • Вставляет значения по указанному индексу

Ds\Sequence::insert

(PECL ds >= 1.0.0)

Ds\Sequence::insert — Вставляет значения по указанному индексу

Описание

abstract public void Ds\Sequence::insert ( int $index [, mixed $...values ] )

Вставляет значения по указанному индексу.

Список параметров

index

Индекс, по которому необходимо осуществить вставку. 0 <= index <= count

Замечание:

Можно указывать индекс, равный количеству элементов коллекции.

values

Значение или значения для вставки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Бросает исключение OutOfRangeException в случае некорректного индекса.

Примеры

Пример #1 Пример использования Ds\Sequence::insert()

<?php
$sequence = new \Ds\Vector();

$sequence->insert(0, "e");             // [e]
$sequence->insert(1, "f");             // [e, f]
$sequence->insert(2, "g");             // [e, f, g]
$sequence->insert(0, "a", "b");        // [a, b, e, f, g]
$sequence->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Склеивает все значения в строку

  • « Ds\Sequence::insert
  • Ds\Sequence::last »
  • PHP Manual
  • Последовательность
  • Склеивает все значения в строку

Ds\Sequence::join

(PECL ds >= 1.0.0)

Ds\Sequence::join — Склеивает все значения в строку

Описание

abstract public string Ds\Sequence::join ([ string $glue ] )

Склеивает все значения в строку, опционально используя заданный разделитель.

Список параметров

glue

Необязательный параметр, задающий разделитель между значениями.

Возвращаемые значения

Все значения коллекции склееные в одну строку.

Примеры

Пример #1 Пример использования Ds\Sequence::join() с разделителем

<?php
$sequence = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($sequence->join("|"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "a|b|c|1|2|3"

Пример #2 Пример использования Ds\Sequence::join() без разделителя

<?php
$sequence = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($sequence->join());
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "abc123"


Возвращает последнее значение коллекции

  • « Ds\Sequence::join
  • Ds\Sequence::map »
  • PHP Manual
  • Последовательность
  • Возвращает последнее значение коллекции

Ds\Sequence::last

(PECL ds >= 1.0.0)

Ds\Sequence::last — Возвращает последнее значение коллекции

Описание

abstract public mixed Ds\Sequence::last ( void )

Возвращает последнее значение коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент коллекции.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Sequence::last()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->last());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)


Возвращает результат применения callback-функции ко всем значениям коллекции

  • « Ds\Sequence::last
  • Ds\Sequence::merge »
  • PHP Manual
  • Последовательность
  • Возвращает результат применения callback-функции ко всем значениям коллекции

Ds\Sequence::map

(PECL ds >= 1.0.0)

Ds\Sequence::map — Возвращает результат применения callback-функции ко всем значениям коллекции

Описание

abstract public Ds\Sequence Ds\Sequence::map ( callable $callback )

Возвращает результат применения callback-функции, переданной в callback, ко всем значениям коллекции.

Список параметров

callback

mixed callback ( mixed $value )

Аргумент типа callable.

Эта функция должна возвращать новое значение для каждого элемента коллекции.

Возвращаемые значения

Результат применения callback к каждому значению коллекции.

Замечание:

Значения в текущей коллекции останутся неизменными.

Примеры

Пример #1 Пример использования Ds\Sequence::map()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

print_r($sequence->map(function($value) { return $value * 2; }));
print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Возвращает результат добавления всех заданных значений в коллекцию

  • « Ds\Sequence::map
  • Ds\Sequence::pop »
  • PHP Manual
  • Последовательность
  • Возвращает результат добавления всех заданных значений в коллекцию

Ds\Sequence::merge

(PECL ds >= 1.0.0)

Ds\Sequence::merge — Возвращает результат добавления всех заданных значений в коллекцию

Описание

abstract public Ds\Sequence Ds\Sequence::merge ( mixed $values )

Возвращает результат добавления всех заданных значений в коллекцию.

Список параметров

values

Объект класса traversable или array.

Возвращаемые значения

Результат добавления всех переданных значений в коллекцию. Фактически делается копия коллекции, в которую добавляются значения.

Замечание:

Текущий экземпляр коллекции останется нетронутым.

Примеры

Пример #1 Пример использования Ds\Sequence::merge()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->merge([4, 5, 6]));
var_dump($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Удаляет и возвращает последнее значение

  • « Ds\Sequence::merge
  • Ds\Sequence::push »
  • PHP Manual
  • Последовательность
  • Удаляет и возвращает последнее значение

Ds\Sequence::pop

(PECL ds >= 1.0.0)

Ds\Sequence::pop — Удаляет и возвращает последнее значение

Описание

abstract public mixed Ds\Sequence::pop ( void )

Удаляет и возвращает последнее значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последнее, удаленное, значение.

Ошибки

Бросает исключение UnderflowException если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Sequence::pop()

<?php
$sequence = new \Ds\Vector([1, 2, 3]);

var_dump($sequence->pop());
var_dump($sequence->pop());
var_dump($sequence->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(2)
int(1)


Добавляет значения в конец последовательности

  • « Ds\Sequence::pop
  • Ds\Sequence::reduce »
  • PHP Manual
  • Последовательность
  • Добавляет значения в конец последовательности

Ds\Sequence::push

(PECL ds >= 1.0.0)

Ds\Sequence::push — Добавляет значения в конец последовательности

Описание

abstract public void Ds\Sequence::push ([ mixed $...values ] )

Добавляет значения в конец последовательности.

Список параметров

values

Добавляемые значения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Sequence::push()

<?php
$sequence = new \Ds\Vector();

$sequence->push("a");
$sequence->push("b");
$sequence->push("c", "d");
$sequence->push(...["e", "f"]);

print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Схлопывает коллекцию до одного значения используя callback-функцию

  • « Ds\Sequence::push
  • Ds\Sequence::remove »
  • PHP Manual
  • Последовательность
  • Схлопывает коллекцию до одного значения используя callback-функцию

Ds\Sequence::reduce

(PECL ds >= 1.0.0)

Ds\Sequence::reduce — Схлопывает коллекцию до одного значения используя callback-функцию

Описание

abstract public mixed Ds\Sequence::reduce ( callable $callback [, mixed $initial ] )

Схлопывает коллекцию до одного значения используя callback-функцию.

Список параметров

callback
mixed callback ( mixed $carry , mixed $value )
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));

// Iterations:
//
// $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;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Результатом выполнения данного примера будет что-то подобное:

int(21)


Удаляет и возвращает значение по индексу

  • « Ds\Sequence::reduce
  • Ds\Sequence::reverse »
  • PHP Manual
  • Последовательность
  • Удаляет и возвращает значение по индексу

Ds\Sequence::remove

(PECL ds >= 1.0.0)

Ds\Sequence::remove — Удаляет и возвращает значение по индексу

Описание

abstract public mixed Ds\Sequence::remove ( int $index )

Удаляет и возвращает значение по индексу.

Список параметров

index

Индекс, по которому необходимо удалить значение.

Возвращаемые значения

Удаленное значение.

Ошибки

Бросает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Sequence::remove()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->remove(1));
var_dump($sequence->remove(0));
var_dump($sequence->remove(0));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "b"
string(1) "a"
string(1) "c"


Переворачивает текущую коллекцию

  • « Ds\Sequence::remove
  • Ds\Sequence::reversed »
  • PHP Manual
  • Последовательность
  • Переворачивает текущую коллекцию

Ds\Sequence::reverse

(PECL ds >= 1.0.0)

Ds\Sequence::reverse — Переворачивает текущую коллекцию

Описание

abstract public void 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::reversed

(PECL ds >= 1.0.0)

Ds\Sequence::reversed — Возвращает перевернутую копию коллекции

Описание

abstract public Ds\Sequence Ds\Sequence::reversed ( void )

Возвращает перевернутую копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Перевернутая копия коллекции.

Замечание:

Текущая коллекция не изменится.

Примеры

Пример #1 Пример использования Ds\Sequence::reversed()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

print_r($sequence->reversed());
print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
)


Перематывает последовательность на заданное число значений

  • « Ds\Sequence::reversed
  • Ds\Sequence::set »
  • PHP Manual
  • Последовательность
  • Перематывает последовательность на заданное число значений

Ds\Sequence::rotate

(PECL ds >= 1.0.0)

Ds\Sequence::rotate — Перематывает последовательность на заданное число значений

Описание

abstract public void Ds\Sequence::rotate ( int $rotations )

Перематывает последовательность на заданное число значений. Данная операция аналогична выполнению заданное количество раз кода $sequence->push($sequence->shift()), если число оборотов положительно $sequence->unshift($sequence->pop()), если отрицательно.

Список параметров

rotations

Количество значений, которые надо "перемотать".

Возвращаемые значения

Эта функция не возвращает значения после выполнения.. Будет изменена текущий последовательность.

Примеры

Пример #1 Пример использования Ds\Sequence::rotate()

<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d"]);

$sequence->rotate(1);  // Аналогично $a = $sequence->shift(); $sequence->push($a);
print_r($sequence);

$sequence->rotate(2);
print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Vector Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Заменяет значение по указанному индексу

  • « Ds\Sequence::rotate
  • Ds\Sequence::shift »
  • PHP Manual
  • Последовательность
  • Заменяет значение по указанному индексу

Ds\Sequence::set

(PECL ds >= 1.0.0)

Ds\Sequence::set — Заменяет значение по указанному индексу

Описание

abstract public void Ds\Sequence::set ( int $index , mixed $value )

Заменяет значение по указанному индексу.

Список параметров

index

Индекс, по которому надо заменить значение.

value

Новое значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Бросает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Sequence::set()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

$sequence->set(1, "_");
print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)

Пример #2 Пример использования Ds\Sequence::set() с синтаксисом массива

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

$sequence[1] = "_";
print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Удаляет и возвращает первое значение

  • « Ds\Sequence::set
  • Ds\Sequence::slice »
  • PHP Manual
  • Последовательность
  • Удаляет и возвращает первое значение

Ds\Sequence::shift

(PECL ds >= 1.0.0)

Ds\Sequence::shift — Удаляет и возвращает первое значение

Описание

abstract public mixed Ds\Sequence::shift ( void )

Удаляет и возвращает первое значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первое, удаленное, значение.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Sequence::shift()

<?php
$sequence = new \Ds\Vector(["a", "b", "c"]);

var_dump($sequence->shift());
var_dump($sequence->shift());
var_dump($sequence->shift());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Возвращает под-коллекцию из заданного диапазона

  • « Ds\Sequence::shift
  • Ds\Sequence::sort »
  • PHP Manual
  • Последовательность
  • Возвращает под-коллекцию из заданного диапазона

Ds\Sequence::slice

(PECL ds >= 1.0.0)

Ds\Sequence::slice — Возвращает под-коллекцию из заданного диапазона

Описание

abstract public Ds\Sequence Ds\Sequence::slice ( int $index [, int $length ] )

Возвращает под-коллекцию из диапазона заданного начальным индексом index и длиной length.

Список параметров

index

Индекс, задающий начало диапазона.

Если положительный, то будет отсчитываться от начала коллекции. Если отрицательный, то от конца.

length

Положительное значение определяет, сколько элементов бцдет взято. Если количество элементов коллекции меньше заданного значения, вернется столько элементов, сколько есть. Отрицательное значение задаст индекс, отсчитанный от конца коллекции, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы коллекции от заданного индекса до конца коллекции.

Возвращаемые значения

Под-коллекция из заданного диапазона.

Примеры

Пример #1 Пример использования Ds\Sequence::slice()

<?php
$sequence = new \Ds\Vector(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($sequence->slice(2));

// Slice from 1, for a length of 3
print_r($sequence->slice(1, 3));

// Slice from 1 onwards
print_r($sequence->slice(1));

// Slice from 2 from the end onwards
print_r($sequence->slice(-2));

// Slice from 1 to 1 from the end
print_r($sequence->slice(1, -1));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Vector Object
(
    [0] => d
    [1] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)


Сортирует коллекцию

  • « Ds\Sequence::slice
  • Ds\Sequence::sorted »
  • PHP Manual
  • Последовательность
  • Сортирует коллекцию

Ds\Sequence::sort

(PECL ds >= 1.0.0)

Ds\Sequence::sort — Сортирует коллекцию

Описание

abstract public void Ds\Sequence::sort ([ callable $comparator ] )

Сортирует коллекцию, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Sequence::sort()

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);
$sequence->sort();

print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Sequence::sort() с callback-функцией сравнения

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

$sequence->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($sequence);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает отсортированную по значению копию коллекции

  • « Ds\Sequence::sort
  • Ds\Sequence::sum »
  • PHP Manual
  • Последовательность
  • Возвращает отсортированную по значению копию коллекции

Ds\Sequence::sorted

(PECL ds >= 1.0.0)

Ds\Sequence::sorted — Возвращает отсортированную по значению копию коллекции

Описание

abstract public Ds\Sequence Ds\Sequence::sorted ([ callable $comparator ] )

Возвращает отсортированную копию коллекции, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает отсортированную по значению копию коллекции.

Примеры

Пример #1 Пример использования Ds\Sequence::sorted()

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

print_r($sequence->sorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Sequence::sorted() с callback-функцией сравнения

<?php
$sequence = new \Ds\Vector([4, 5, 1, 3, 2]);

$sorted = $sequence->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает сумму всех значений коллекции

  • « Ds\Sequence::sorted
  • Ds\Sequence::unshift »
  • PHP Manual
  • Последовательность
  • Возвращает сумму всех значений коллекции

Ds\Sequence::sum

(PECL ds >= 1.0.0)

Ds\Sequence::sum — Возвращает сумму всех значений коллекции

Описание

abstract public number Ds\Sequence::sum ( void )

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов float или int, в зависимости от значений коллекции.

Примеры

Пример #1 Пример использования Ds\Sequence::sum() с целочисленными значениями

<?php
$sequence = new \Ds\Vector([1, 2, 3]);
var_dump($sequence->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

int(6)

Пример #2 Пример использования Ds\Sequence::sum() со значениями типа float

<?php
$sequence = new \Ds\Vector([1, 2.5, 3]);
var_dump($sequence->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

float(6.5)


Добавляет значения в начало последовательности

  • « Ds\Sequence::sum
  • Вектор »
  • PHP Manual
  • Последовательность
  • Добавляет значения в начало последовательности

Ds\Sequence::unshift

(PECL ds >= 1.0.0)

Ds\Sequence::unshift — Добавляет значения в начало последовательности

Описание

abstract public void Ds\Sequence::unshift ([ mixed $values ] )

Добавляет значения в начало последовательности, что бы освободить место для новых.

Список параметров

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

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Вектор - это последовательность значений в непрерывном буфере, который растет и обрезается автоматически. Это наиболее эффективная последовательная структура, поскольку индексы значений прямо отображаются на их индекс в буфере, и фактор роста не влияет на сложность доступа.

Сильные стороны

  • Поддерживает синтаксис массива (квадратные скобки).
  • Использует меньше памяти, чем array с тем же количеством элементов.
  • Автоматически высвобождает память, когда количество элементов уменьшается.
  • Вместимость не ограничена степенями двойки.
  • get(),
set(),
push() и
pop() имеют сложность O(1).

Слабые стороны

  • shift(),
unshift(),
insert() и
remove() имеют сложность O(n).

Обзор классов

Ds\Vector implements Ds\Sequence {
/* Константы */
const int MIN_CAPACITY = 10 ;
/* Методы */
public void allocate ( int $capacity )
public void apply ( callable $callback )
public int capacity ( void )
public void clear ( void )
public bool contains ([ mixed $...values ] )
public Ds\Vector copy ( void )
public Ds\Vector filter ([ callable $callback ] )
public mixed find ( mixed $value )
public mixed first ( void )
public mixed get ( int $index )
public void insert ( int $index [, mixed $...values ] )
public bool isEmpty ( void )
public string join ([ string $glue ] )
public mixed last ( void )
public Ds\Vector map ( callable $callback )
public Ds\Vector merge ( mixed $values )
public mixed pop ( void )
public void push ([ mixed $...values ] )
public mixed reduce ( callable $callback [, mixed $initial ] )
public mixed remove ( int $index )
public void reverse ( void )
public Ds\Vector reversed ( void )
public void rotate ( int $rotations )
public void set ( int $index , mixed $value )
public mixed shift ( void )
public Ds\Vector slice ( int $index [, int $length ] )
public void sort ([ callable $comparator ] )
public Ds\Vector sorted ([ callable $comparator ] )
public number sum ( void )
public array toArray ( void )
public void unshift ([ mixed $values ] )
}

Предопределенные константы

Ds\Vector::MIN_CAPACITY

Содержание

  • Ds\Vector::allocate — Выделение памяти под указанную вместимость
  • Ds\Vector::apply — Обновление всех значений применением к ним переданной callback-функции
  • Ds\Vector::capacity — Возвращает текущую вместимость
  • Ds\Vector::clear — Удаляет все значения из коллекции
  • Ds\Vector::__construct — Создает новый экземпляр класса
  • Ds\Vector::contains — Проверяет, содержится ли в коллекции заданные значения
  • Ds\Vector::copy — Возвращает поверхностную копию коллекции
  • Ds\Vector::count — Возвращает количество элементов коллекции
  • Ds\Vector::filter — Создает новый вектор из элементов, выбранных с помощью заданной callback-функции
  • Ds\Vector::find — Поиск индекса по значению
  • Ds\Vector::first — Возвращает первый элемент коллекции
  • Ds\Vector::get — Возвращает значение по индексу
  • Ds\Vector::insert — Вставляет значения по указанному индексу
  • Ds\Vector::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Vector::join — Склеивает все значения в строку
  • Ds\Vector::jsonSerialize — Возвращает коллекцию в JSON представлении
  • Ds\Vector::last — Возвращает последнее значение коллекции
  • Ds\Vector::map — Возвращает результат применения callback-функции ко всем значениям коллекции
  • Ds\Vector::merge — Возвращает результат добавления всех заданных значений в коллекцию
  • Ds\Vector::pop — Удаляет и возвращает последнее значение
  • Ds\Vector::push — Добавляет значения в конец вектора
  • Ds\Vector::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
  • Ds\Vector::remove — Удаляет и возвращает значение по индексу
  • Ds\Vector::reverse — Переворачивает текущую коллекцию
  • Ds\Vector::reversed — Возвращает перевернутую копию коллекции
  • Ds\Vector::rotate — Перематывает вектор на заданное число значений
  • Ds\Vector::set — Заменяет значение по указанному индексу
  • Ds\Vector::shift — Удаляет и возвращает первое значение
  • Ds\Vector::slice — Возвращает под-коллекцию из заданного диапазона
  • Ds\Vector::sort — Сортирует коллекцию
  • Ds\Vector::sorted — Возвращает отсортированную по значению копию коллекции
  • Ds\Vector::sum — Возвращает сумму всех значений коллекции
  • Ds\Vector::toArray — Преобразует коллекцию в array
  • Ds\Vector::unshift — Добавляет значения в начало вектора


Выделение памяти под указанную вместимость

  • « Вектор
  • Ds\Vector::apply »
  • PHP Manual
  • Вектор
  • Выделение памяти под указанную вместимость

Ds\Vector::allocate

(PECL ds >= 1.0.0)

Ds\Vector::allocate — Выделение памяти под указанную вместимость

Описание

public void Ds\Vector::allocate ( int $capacity )

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического добавления памяти при добавлении значений.

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то она не изменится.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Vector::allocate()

<?php
$vector = new \Ds\Vector();
var_dump($vector->capacity());

$vector->allocate(100);
var_dump($vector->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(100)


Обновление всех значений применением к ним переданной callback-функции

  • « Ds\Vector::allocate
  • Ds\Vector::capacity »
  • PHP Manual
  • Вектор
  • Обновление всех значений применением к ним переданной callback-функции

Ds\Vector::apply

(PECL ds >= 1.0.0)

Ds\Vector::apply — Обновление всех значений применением к ним переданной callback-функции

Описание

public void Ds\Vector::apply ( callable $callback )

Обновление всех значений применением к ним переданной callback-функции.

Список параметров

callback

mixed callback ( mixed $value )

Объект типа callable.

Callback-функция должна возвращать новое значение, которое заменит текущее.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Vector::apply()

<?php
$vector = new \Ds\Vector([1, 2, 3]);
$vector->apply(function($value) { return $value * 2; });

print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Возвращает текущую вместимость

  • « Ds\Vector::apply
  • Ds\Vector::clear »
  • PHP Manual
  • Вектор
  • Возвращает текущую вместимость

Ds\Vector::capacity

(PECL ds >= 1.0.0)

Ds\Vector::capacity — Возвращает текущую вместимость

Описание

public int Ds\Vector::capacity ( void )

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Vector::capacity()

<?php
$vector = new \Ds\Vector();
var_dump($vector->capacity());

$vector->push(...range(1, 50));
var_dump($vector->capacity());

$vector[] = "a";
var_dump($vector->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(10)
int(50)
int(75)


Удаляет все значения из коллекции

  • « Ds\Vector::capacity
  • Ds\Vector::__construct »
  • PHP Manual
  • Вектор
  • Удаляет все значения из коллекции

Ds\Vector::clear

(PECL ds >= 1.0.0)

Ds\Vector::clear — Удаляет все значения из коллекции

Описание

public void 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::__construct

(PECL ds >= 1.0.0)

Ds\Vector::__construct — Создает новый экземпляр класса

Описание

public Ds\Vector::__construct ([ mixed $values ] )

Создает новый экземпляр класса, используя либо объект реализующий traversable, либо массив, переданные в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс "traversable" или массив.

Примеры

Пример #1 Пример использования Ds\Vector::__construct()

<?php
$vector = new \Ds\Vector();
var_dump($vector);

$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#2 (0) {
}
object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Проверяет, содержится ли в коллекции заданные значения

  • « Ds\Vector::__construct
  • Ds\Vector::copy »
  • PHP Manual
  • Вектор
  • Проверяет, содержится ли в коллекции заданные значения

Ds\Vector::contains

(PECL ds >= 1.0.0)

Ds\Vector::contains — Проверяет, содержится ли в коллекции заданные значения

Описание

public bool Ds\Vector::contains ([ mixed $...values ] )

Проверяет, содержится ли в коллекции заданные значения.

Список параметров

values

Значения для проверки.

Возвращаемые значения

Возвращает FALSE, если хотя бы одно значение из values не найдено в коллекции и TRUE в противном случае.

Примеры

Пример #1 Пример использования Ds\Vector::contains()

<?php
$vector = new \Ds\Vector(['a', 'b', 'c', 1, 2, 3]);

var_dump($vector->contains('a'));                // true
var_dump($vector->contains('a', 'b'));           // true
var_dump($vector->contains('c', 'd'));           // false

var_dump($vector->contains(...['c', 'b', 'a'])); // true

// Всегда строгая проверка
var_dump($vector->contains(1));                  // true
var_dump($vector->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Возвращает поверхностную копию коллекции

  • « Ds\Vector::contains
  • Ds\Vector::count »
  • PHP Manual
  • Вектор
  • Возвращает поверхностную копию коллекции

Ds\Vector::copy

(PECL ds >= 1.0.0)

Ds\Vector::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Vector Ds\Vector::copy ( void )

Возвращает поверхностную копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия коллекции.

Примеры

Пример #1 Пример использования Ds\Vector::copy()

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = $a->copy();

// Изменение копии не отражается на оригинале
$b->push(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Возвращает количество элементов коллекции

  • « Ds\Vector::copy
  • Ds\Vector::filter »
  • PHP Manual
  • Вектор
  • Возвращает количество элементов коллекции

Ds\Vector::count

(PECL ds >= 1.0.0)

Ds\Vector::count — Возвращает количество элементов коллекции

Смотри описание функции Countable::count()


Создает новый вектор из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Vector::count
  • Ds\Vector::find »
  • PHP Manual
  • Вектор
  • Создает новый вектор из элементов, выбранных с помощью заданной callback-функции

Ds\Vector::filter

(PECL ds >= 1.0.0)

Ds\Vector::filter — Создает новый вектор из элементов, выбранных с помощью заданной callback-функции

Описание

public Ds\Vector Ds\Vector::filter ([ callable $callback ] )

Создает новый вектор из элементов, выбранных с помощью заданной callback-функции.

Список параметров

callback

bool callback ( mixed $value )

Опциональный аргумент типа callable, который возвращает TRUE если значение должно быть включено и FALSE, если нет.

Если callback-функция не задана, то будут включены только элементы, которые приводятся к логическому значению TRUE (мотри приведение к boolean).

Возвращаемые значения

Новый вектор, содержащий значения, для которых функция callback вернула TRUE, или все елементы, которые при приведении к логическому типу становятся TRUE, если параметр callback не задан.

Примеры

Пример #1 Пример Ds\Vector::filter() с использованием callback-функции

<?php
$vector = new \Ds\Vector([1, 2, 3, 4, 5]);

var_dump($vector->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Пример #2 Пример Ds\Vector::filter() без callback-функции

<?php
$vector = new \Ds\Vector([0, 1, 'a', true, false]);

var_dump($vector->filter());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Поиск индекса по значению

  • « Ds\Vector::filter
  • Ds\Vector::first »
  • PHP Manual
  • Вектор
  • Поиск индекса по значению

Ds\Vector::find

(PECL ds >= 1.0.0)

Ds\Vector::find — Поиск индекса по значению

Описание

public mixed Ds\Vector::find ( mixed $value )

Возвращает индекс значения value, или FALSE, если ничего не найдено.

Список параметров

value

Искомое значение.

Возвращаемые значения

Индекс элемента, или FALSE, если значение не найдено.

Замечание:

Элементы сравниваются строго, по типу и значению.

Примеры

Пример #1 Пример использования Ds\Vector::find()

<?php
$vector = new \Ds\Vector(["a", 1, true]);

var_dump($vector->find("a")); // 0
var_dump($vector->find("b")); // false
var_dump($vector->find("1")); // false
var_dump($vector->find(1));   // 1
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
bool(false)
bool(false)
int(1)


Возвращает первый элемент коллекции

  • « Ds\Vector::find
  • Ds\Vector::get »
  • PHP Manual
  • Вектор
  • Возвращает первый элемент коллекции

Ds\Vector::first

(PECL ds >= 1.0.0)

Ds\Vector::first — Возвращает первый элемент коллекции

Описание

public mixed Ds\Vector::first ( void )

Возвращает первый элемент коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первый элемент коллекции.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Vector::first()

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->first());
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)


Возвращает значение по индексу

  • « Ds\Vector::first
  • Ds\Vector::insert »
  • PHP Manual
  • Вектор
  • Возвращает значение по индексу

Ds\Vector::get

(PECL ds >= 1.0.0)

Ds\Vector::get — Возвращает значение по индексу

Описание

public mixed Ds\Vector::get ( int $index )

Возвращает значение по заданному индексу.

Список параметров

index

Индекс. Первый элемент имеет индекс 0.

Возвращаемые значения

Значение по заданному индексу.

Ошибки

Бросает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Vector::get()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->get(0));
var_dump($vector->get(1));
var_dump($vector->get(2));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"

Пример #2 Пример использования Ds\Vector::get() с синтаксисом массива

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector[0]);
var_dump($vector[1]);
var_dump($vector[2]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Вставляет значения по указанному индексу

  • « Ds\Vector::get
  • Ds\Vector::isEmpty »
  • PHP Manual
  • Вектор
  • Вставляет значения по указанному индексу

Ds\Vector::insert

(PECL ds >= 1.0.0)

Ds\Vector::insert — Вставляет значения по указанному индексу

Описание

public void Ds\Vector::insert ( int $index [, mixed $...values ] )

Вставляет значения по указанному индексу.

Список параметров

index

Индекс, по которому необходимо осуществить вставку. 0 <= index <= count

Замечание:

Можно указывать индекс, равный количеству элементов коллекции.

values

Значение или значения для вставки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Бросает исключение OutOfRangeException в случае некорректного индекса.

Примеры

Пример #1 Пример использования Ds\Vector::insert()

<?php
$vector = new \Ds\Vector();

$vector->insert(0, "e");             // [e]
$vector->insert(1, "f");             // [e, f]
$vector->insert(2, "g");             // [e, f, g]
$vector->insert(0, "a", "b");        // [a, b, e, f, g]
$vector->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Проверяет, пуста ли коллекция

  • « Ds\Vector::insert
  • Ds\Vector::join »
  • PHP Manual
  • Вектор
  • Проверяет, пуста ли коллекция

Ds\Vector::isEmpty

(PECL ds >= 1.0.0)

Ds\Vector::isEmpty — Проверяет, пуста ли коллекция

Описание

public bool Ds\Vector::isEmpty ( void )

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если коллекция пуста, и FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Vector::isEmpty()

<?php
$a = new \Ds\Vector([1, 2, 3]);
$b = new \Ds\Vector();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Склеивает все значения в строку

  • « Ds\Vector::isEmpty
  • Ds\Vector::jsonSerialize »
  • PHP Manual
  • Вектор
  • Склеивает все значения в строку

Ds\Vector::join

(PECL ds >= 1.0.0)

Ds\Vector::join — Склеивает все значения в строку

Описание

public string Ds\Vector::join ([ string $glue ] )

Склеивает все значения в строку, опционально используя заданный разделитель.

Список параметров

glue

Необязательный параметр, задающий разделитель между значениями.

Возвращаемые значения

Все значения коллекции склееные в одну строку.

Примеры

Пример #1 Пример использования Ds\Vector::join() с разделителем

<?php
$vector = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($vector->join("|"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "a|b|c|1|2|3"

Пример #2 Пример использования Ds\Vector::join() без разделителя

<?php
$vector = new \Ds\Vector(["a", "b", "c", 1, 2, 3]);

var_dump($vector->join());
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "abc123"


Возвращает коллекцию в JSON представлении

  • « Ds\Vector::join
  • Ds\Vector::last »
  • PHP Manual
  • Вектор
  • Возвращает коллекцию в JSON представлении

Ds\Vector::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Vector::jsonSerialize — Возвращает коллекцию в JSON представлении

Смотри JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает последнее значение коллекции

  • « Ds\Vector::jsonSerialize
  • Ds\Vector::map »
  • PHP Manual
  • Вектор
  • Возвращает последнее значение коллекции

Ds\Vector::last

(PECL ds >= 1.0.0)

Ds\Vector::last — Возвращает последнее значение коллекции

Описание

public mixed Ds\Vector::last ( void )

Возвращает последнее значение коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент коллекции.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Vector::last()

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->last());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)


Возвращает результат применения callback-функции ко всем значениям коллекции

  • « Ds\Vector::last
  • Ds\Vector::merge »
  • PHP Manual
  • Вектор
  • Возвращает результат применения callback-функции ко всем значениям коллекции

Ds\Vector::map

(PECL ds >= 1.0.0)

Ds\Vector::map — Возвращает результат применения callback-функции ко всем значениям коллекции

Описание

public Ds\Vector Ds\Vector::map ( callable $callback )

Возвращает результат применения callback-функции, переданной в callback, ко всем значениям коллекции.

Список параметров

callback

mixed callback ( mixed $value )

Аргумент типа callable.

Эта функция должна возвращать новое значение для каждого элемента коллекции.

Возвращаемые значения

Результат применения callback к каждому значению коллекции.

Замечание:

Значения в текущей коллекции останутся неизменными.

Примеры

Пример #1 Пример использования Ds\Vector::map()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

print_r($vector->map(function($value) { return $value * 2; }));
print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Возвращает результат добавления всех заданных значений в коллекцию

  • « Ds\Vector::map
  • Ds\Vector::pop »
  • PHP Manual
  • Вектор
  • Возвращает результат добавления всех заданных значений в коллекцию

Ds\Vector::merge

(PECL ds >= 1.0.0)

Ds\Vector::merge — Возвращает результат добавления всех заданных значений в коллекцию

Описание

public Ds\Vector Ds\Vector::merge ( mixed $values )

Возвращает результат добавления всех заданных значений в коллекцию.

Список параметров

values

Объект класса traversable или array.

Возвращаемые значения

Результат добавления всех переданных значений в коллекцию. Фактически делается копия коллекции, в которую добавляются значения.

Замечание:

Текущий экземпляр коллекции останется нетронутым.

Примеры

Пример #1 Пример использования Ds\Vector::merge()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->merge([4, 5, 6]));
var_dump($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Vector)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Vector)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Удаляет и возвращает последнее значение

  • « Ds\Vector::merge
  • Ds\Vector::push »
  • PHP Manual
  • Вектор
  • Удаляет и возвращает последнее значение

Ds\Vector::pop

(PECL ds >= 1.0.0)

Ds\Vector::pop — Удаляет и возвращает последнее значение

Описание

public mixed Ds\Vector::pop ( void )

Удаляет и возвращает последнее значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последнее, удаленное, значение.

Ошибки

Бросает исключение UnderflowException если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Vector::pop()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->pop());
var_dump($vector->pop());
var_dump($vector->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(2)
int(1)


Добавляет значения в конец вектора

  • « Ds\Vector::pop
  • Ds\Vector::reduce »
  • PHP Manual
  • Вектор
  • Добавляет значения в конец вектора

Ds\Vector::push

(PECL ds >= 1.0.0)

Ds\Vector::push — Добавляет значения в конец вектора

Описание

public void Ds\Vector::push ([ mixed $...values ] )

Добавляет значения в конец вектора.

Список параметров

values

Добавляемые значения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Vector::push()

<?php
$vector = new \Ds\Vector();

$vector->push("a");
$vector->push("b");
$vector->push("c", "d");
$vector->push(...["e", "f"]);

print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Схлопывает коллекцию до одного значения используя callback-функцию

  • « Ds\Vector::push
  • Ds\Vector::remove »
  • PHP Manual
  • Вектор
  • Схлопывает коллекцию до одного значения используя callback-функцию

Ds\Vector::reduce

(PECL ds >= 1.0.0)

Ds\Vector::reduce — Схлопывает коллекцию до одного значения используя callback-функцию

Описание

public mixed Ds\Vector::reduce ( callable $callback [, mixed $initial ] )

Схлопывает коллекцию до одного значения используя callback-функцию.

Список параметров

callback
mixed callback ( mixed $carry , mixed $value )
carry

Значение вохвращенное предыдущим запуском функции, или initial, если функция запущена первый раз.

value

Значение текущей итерации.

initial

Начальное значение параметра carry.Можно указать NULL.

Возвращаемые значения

Значение возвращенное финальным запуском callback-функции.

Примеры

Пример #1 Пример использования Ds\Vector::reduce() с начальным значением

<?php
$vector = new \Ds\Vector([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($vector->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Результатом выполнения данного примера будет что-то подобное:

int(30)

Пример #2 Пример использования Ds\Vector::reduce() без начального значения

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Результатом выполнения данного примера будет что-то подобное:

int(21)


Удаляет и возвращает значение по индексу

  • « Ds\Vector::reduce
  • Ds\Vector::reverse »
  • PHP Manual
  • Вектор
  • Удаляет и возвращает значение по индексу

Ds\Vector::remove

(PECL ds >= 1.0.0)

Ds\Vector::remove — Удаляет и возвращает значение по индексу

Описание

public mixed Ds\Vector::remove ( int $index )

Удаляет и возвращает значение по индексу.

Список параметров

index

Индекс, по которому необходимо удалить значение.

Возвращаемые значения

Удаленное значение.

Ошибки

Бросает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Vector::remove()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->remove(1));
var_dump($vector->remove(0));
var_dump($vector->remove(0));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "b"
string(1) "a"
string(1) "c"


Переворачивает текущую коллекцию

  • « Ds\Vector::remove
  • Ds\Vector::reversed »
  • PHP Manual
  • Вектор
  • Переворачивает текущую коллекцию

Ds\Vector::reverse

(PECL ds >= 1.0.0)

Ds\Vector::reverse — Переворачивает текущую коллекцию

Описание

public void 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::reversed

(PECL ds >= 1.0.0)

Ds\Vector::reversed — Возвращает перевернутую копию коллекции

Описание

public Ds\Vector Ds\Vector::reversed ( void )

Возвращает перевернутую копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Перевернутая копия коллекции.

Замечание:

Текущая коллекция не изменится.

Примеры

Пример #1 Пример использования Ds\Vector::reversed()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

print_r($vector->reversed());
print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Vector Object
(
    [0] => a
    [1] => b
    [2] => c
)


Перематывает вектор на заданное число значений

  • « Ds\Vector::reversed
  • Ds\Vector::set »
  • PHP Manual
  • Вектор
  • Перематывает вектор на заданное число значений

Ds\Vector::rotate

(PECL ds >= 1.0.0)

Ds\Vector::rotate — Перематывает вектор на заданное число значений

Описание

public void Ds\Vector::rotate ( int $rotations )

Перематывает вектор на заданное число значений. Данная операция аналогична выполнению заданное количество раз кода $vector->push($vector->shift()), если число оборотов положительно и $vector->unshift($vector->pop()), если отрицательно.

Список параметров

rotations

Количество значений, которые надо "перемотать".

Возвращаемые значения

Эта функция не возвращает значения после выполнения.. Будет изменен текущий вектор.

Примеры

Пример #1 Пример использования Ds\Vector::rotate()

<?php
$vector = new \Ds\Vector(["a", "b", "c", "d"]);

$vector->rotate(1); // Аналогично $a = $vector->shift(); $vector->push($a);
print_r($vector);

$vector->rotate(2);
print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Vector Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Заменяет значение по указанному индексу

  • « Ds\Vector::rotate
  • Ds\Vector::shift »
  • PHP Manual
  • Вектор
  • Заменяет значение по указанному индексу

Ds\Vector::set

(PECL ds >= 1.0.0)

Ds\Vector::set — Заменяет значение по указанному индексу

Описание

public void Ds\Vector::set ( int $index , mixed $value )

Заменяет значение по указанному индексу.

Список параметров

index

Индекс, по которому надо заменить значение.

value

Новое значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Бросает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Vector::set()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

$vector->set(1, "_");
print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)

Пример #2 Пример использования Ds\Vector::set() с синтаксисом массива

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

$vector[1] = "_";
print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => a
    [1] => _
    [2] => c
)


Удаляет и возвращает первое значение

  • « Ds\Vector::set
  • Ds\Vector::slice »
  • PHP Manual
  • Вектор
  • Удаляет и возвращает первое значение

Ds\Vector::shift

(PECL ds >= 1.0.0)

Ds\Vector::shift — Удаляет и возвращает первое значение

Описание

public mixed Ds\Vector::shift ( void )

Удаляет и возвращает первое значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первое, удаленное, значение.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Vector::shift()

<?php
$vector = new \Ds\Vector(["a", "b", "c"]);

var_dump($vector->shift());
var_dump($vector->shift());
var_dump($vector->shift());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Возвращает под-коллекцию из заданного диапазона

  • « Ds\Vector::shift
  • Ds\Vector::sort »
  • PHP Manual
  • Вектор
  • Возвращает под-коллекцию из заданного диапазона

Ds\Vector::slice

(PECL ds >= 1.0.0)

Ds\Vector::slice — Возвращает под-коллекцию из заданного диапазона

Описание

public Ds\Vector Ds\Vector::slice ( int $index [, int $length ] )

Возвращает под-коллекцию из диапазона заданного начальным индексом index и длиной length.

Список параметров

index

Индекс, задающий начало диапазона.

Если положительный, то будет отсчитываться от начала коллекции. Если отрицательный, то от конца.

length

Положительное значение определяет, сколько элементов бцдет взято. Если количество элементов коллекции меньше заданного значения, вернется столько элементов, сколько есть. Отрицательное значение задаст индекс, отсчитанный от конца коллекции, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы коллекции от заданного индекса до конца коллекции.

Возвращаемые значения

Под-коллекция из заданного диапазона.

Примеры

Пример #1 Пример использования Ds\Vector::slice()

<?php
$vector = new \Ds\Vector(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($vector->slice(2));

// Slice from 1, for a length of 3
print_r($vector->slice(1, 3));

// Slice from 1 onwards
print_r($vector->slice(1));

// Slice from 2 from the end onwards
print_r($vector->slice(-2));

// Slice from 1 to 1 from the end
print_r($vector->slice(1, -1));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Vector Object
(
    [0] => d
    [1] => e
)
Ds\Vector Object
(
    [0] => b
    [1] => c
    [2] => d
)


Сортирует коллекцию

  • « Ds\Vector::slice
  • Ds\Vector::sorted »
  • PHP Manual
  • Вектор
  • Сортирует коллекцию

Ds\Vector::sort

(PECL ds >= 1.0.0)

Ds\Vector::sort — Сортирует коллекцию

Описание

public void Ds\Vector::sort ([ callable $comparator ] )

Сортирует коллекцию, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Vector::sort()

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);
$vector->sort();

print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Vector::sort() с callback-функцией сравнения

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

$vector->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($vector);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает отсортированную по значению копию коллекции

  • « Ds\Vector::sort
  • Ds\Vector::sum »
  • PHP Manual
  • Вектор
  • Возвращает отсортированную по значению копию коллекции

Ds\Vector::sorted

(PECL ds >= 1.0.0)

Ds\Vector::sorted — Возвращает отсортированную по значению копию коллекции

Описание

public Ds\Vector Ds\Vector::sorted ([ callable $comparator ] )

Возвращает отсортированную копию коллекции, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает отсортированную по значению копию коллекции.

Примеры

Пример #1 Пример использования Ds\Vector::sorted()

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

print_r($vector->sorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Vector::sorted() с callback-функцией сравнения

<?php
$vector = new \Ds\Vector([4, 5, 1, 3, 2]);

$sorted = $vector->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Vector Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает сумму всех значений коллекции

  • « Ds\Vector::sorted
  • Ds\Vector::toArray »
  • PHP Manual
  • Вектор
  • Возвращает сумму всех значений коллекции

Ds\Vector::sum

(PECL ds >= 1.0.0)

Ds\Vector::sum — Возвращает сумму всех значений коллекции

Описание

public number Ds\Vector::sum ( void )

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов float или int, в зависимости от значений коллекции.

Примеры

Пример #1 Пример использования Ds\Vector::sum() с целочисленными значениями

<?php
$vector = new \Ds\Vector([1, 2, 3]);
var_dump($vector->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

int(6)

Пример #2 Пример использования Ds\Vector::sum() со значениями типа float

<?php
$vector = new \Ds\Vector([1, 2.5, 3]);
var_dump($vector->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

float(6.5)


Преобразует коллекцию в array

  • « Ds\Vector::sum
  • Ds\Vector::unshift »
  • PHP Manual
  • Вектор
  • Преобразует коллекцию в array

Ds\Vector::toArray

(PECL ds >= 1.0.0)

Ds\Vector::toArray — Преобразует коллекцию в array

Описание

public array Ds\Vector::toArray ( void )

Преобразует коллекцию в array.

Замечание:

Приведение к типу array пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

array, содержащий все элементы коллекции с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\Vector::toArray()

<?php
$vector = new \Ds\Vector([1, 2, 3]);

var_dump($vector->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Добавляет значения в начало вектора

  • « Ds\Vector::toArray
  • Двухсторонняя очередь »
  • PHP Manual
  • Вектор
  • Добавляет значения в начало вектора

Ds\Vector::unshift

(PECL ds >= 1.0.0)

Ds\Vector::unshift — Добавляет значения в начало вектора

Описание

public void Ds\Vector::unshift ([ mixed $values ] )

Добавляет значения в начало вектора, сдвигая все элементы вперед, что бы освободить место для новых.

Список параметров

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

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Двухсторонняя очередь - это последовательность значений в непрерывном буфере, который растет и обрезается автоматически. Deque (произносится как "deck") является аббривиатурой от "double-ended queue". Используется внутри Ds\Queue.

Два указателя используются для отслеживания начала и конца. Указатели могут "пробегать по кругу" от конца очереди, что позволяет избежать перемещения значений для освобождения места. Это делает операции shift и unshift такими быстрыми, что Ds\Vector вектор не может с ней соперничать.

Доступ к элементу по индексу требует пересчета в зависимости от его индекса в буфере: ((head + position) % capacity).

Сильные стороны

  • Поддерживает синтаксис массива (квадратные скобки).
  • Требует меньше памяти, чем array с тем же количеством значений.
  • втоматически высвобождает память, когда количество элементов уменхается.
  • get(),
set(),
push(),
pop(),
shift(), и
unshift() имеют сложность O(1).

Слабые стороны

  • Вместимость ограничена степенями двойки.
  • insert() и remove() имеют сложность O(n).

Обзор классов

Ds\Deque implements Ds\Sequence {
/* Константы */
const int MIN_CAPACITY = 8 ;
/* Методы */
public void allocate ( int $capacity )
public void apply ( callable $callback )
public int capacity ( void )
public void clear ( void )
public bool contains ([ mixed $...values ] )
public Ds\Deque copy ( void )
public Ds\Deque filter ([ callable $callback ] )
public mixed find ( mixed $value )
public mixed first ( void )
public mixed get ( int $index )
public void insert ( int $index [, mixed $...values ] )
public bool isEmpty ( void )
public string join ([ string $glue ] )
public mixed last ( void )
public Ds\Deque map ( callable $callback )
public Ds\Deque merge ( mixed $values )
public mixed pop ( void )
public void push ([ mixed $...values ] )
public mixed reduce ( callable $callback [, mixed $initial ] )
public mixed remove ( int $index )
public void reverse ( void )
public Ds\Deque reversed ( void )
public void rotate ( int $rotations )
public void set ( int $index , mixed $value )
public mixed shift ( void )
public Ds\Deque slice ( int $index [, int $length ] )
public void sort ([ callable $comparator ] )
public Ds\Deque sorted ([ callable $comparator ] )
public number sum ( void )
public array toArray ( void )
public void unshift ([ mixed $values ] )
}

Предопределенные константы

Ds\Deque::MIN_CAPACITY

Содержание

  • Ds\Deque::allocate — Выделение памяти под указанную вместимость
  • Ds\Deque::apply — Обновление всех значений применением к ним переданной callback-функции
  • Ds\Deque::capacity — Возвращает текущую вместимость
  • Ds\Deque::clear — Удаляет все значения из коллекции
  • Ds\Deque::__construct — Создает новый экземпляр класса
  • Ds\Deque::contains — Проверяет, содержится ли в коллекции заданные значения
  • Ds\Deque::copy — Возвращает поверхностную копию коллекции
  • Ds\Deque::count — Возвращает количество элементов коллекции
  • Ds\Deque::filter — Создает новую двунаправленную очередь из элементов, выбранных с помощью заданной callback-функции
  • Ds\Deque::find — Поиск индекса по значению
  • Ds\Deque::first — Возвращает первый элемент коллекции
  • Ds\Deque::get — Возвращает значение по индексу
  • Ds\Deque::insert — Вставляет значения по указанному индексу
  • Ds\Deque::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Deque::join — Склеивает все значения в строку
  • Ds\Deque::jsonSerialize — Возвращает коллекцию в JSON представлении
  • Ds\Deque::last — Возвращает последнее значение коллекции
  • Ds\Deque::map — Возвращает результат применения callback-функции ко всем значениям коллекции
  • Ds\Deque::merge — Возвращает результат добавления всех заданных значений в коллекцию
  • Ds\Deque::pop — Удаляет и возвращает последнее значение
  • Ds\Deque::push — Добавляет значения в конец двунаправленной очереди
  • Ds\Deque::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
  • Ds\Deque::remove — Удаляет и возвращает значение по индексу
  • Ds\Deque::reverse — Переворачивает текущую коллекцию
  • Ds\Deque::reversed — Возвращает перевернутую копию коллекции
  • Ds\Deque::rotate — Перематывает коллекцию на заданное число значений
  • Ds\Deque::set — Заменяет значение по указанному индексу
  • Ds\Deque::shift — Удаляет и возвращает первое значение
  • Ds\Deque::slice — Возвращает под-коллекцию из заданного диапазона
  • Ds\Deque::sort — Сортирует коллекцию
  • Ds\Deque::sorted — Возвращает отсортированную по значению копию коллекции
  • Ds\Deque::sum — Возвращает сумму всех значений коллекции
  • Ds\Deque::toArray — Преобразует коллекцию в array
  • Ds\Deque::unshift — Добавляет значения в начало двунаправленной очереди


Выделение памяти под указанную вместимость

  • « Двухсторонняя очередь
  • Ds\Deque::apply »
  • PHP Manual
  • Двухсторонняя очередь
  • Выделение памяти под указанную вместимость

Ds\Deque::allocate

(PECL ds >= 1.0.0)

Ds\Deque::allocate — Выделение памяти под указанную вместимость

Описание

public void Ds\Deque::allocate ( int $capacity )

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического добавления памяти при добавлении значений.

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то она не изменится.

Замечание:

Значение вместимости округляется вверх до ближайшей степени двойки (т.е 8, 16, 32, 64, 128 и т.д.)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Deque::allocate()

<?php
$deque = new \Ds\Deque();
var_dump($deque->capacity());

$deque->allocate(100);
var_dump($deque->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)
int(128)


Обновление всех значений применением к ним переданной callback-функции

  • « Ds\Deque::allocate
  • Ds\Deque::capacity »
  • PHP Manual
  • Двухсторонняя очередь
  • Обновление всех значений применением к ним переданной callback-функции

Ds\Deque::apply

(PECL ds >= 1.0.0)

Ds\Deque::apply — Обновление всех значений применением к ним переданной callback-функции

Описание

public void Ds\Deque::apply ( callable $callback )

Обновление всех значений применением к ним переданной callback-функции.

Список параметров

callback

mixed callback ( mixed $value )

Объект типа callable.

Callback-функция должна возвращать новое значение, которое заменит текущее.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Deque::apply()

<?php
$deque = new \Ds\Deque([1, 2, 3]);
$deque->apply(function($value) { return $value * 2; });

print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)


Возвращает текущую вместимость

  • « Ds\Deque::apply
  • Ds\Deque::clear »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает текущую вместимость

Ds\Deque::capacity

(PECL ds >= 1.0.0)

Ds\Deque::capacity — Возвращает текущую вместимость

Описание

public int Ds\Deque::capacity ( void )

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Deque::capacity()

<?php
$deque = new \Ds\Deque();
var_dump($deque->capacity());

$deque->push(...range(1, 50));
var_dump($deque->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)
int(64)


Удаляет все значения из коллекции

  • « Ds\Deque::capacity
  • Ds\Deque::__construct »
  • PHP Manual
  • Двухсторонняя очередь
  • Удаляет все значения из коллекции

Ds\Deque::clear

(PECL ds >= 1.0.0)

Ds\Deque::clear — Удаляет все значения из коллекции

Описание

public void 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::__construct

(PECL ds >= 1.0.0)

Ds\Deque::__construct — Создает новый экземпляр класса

Описание

public Ds\Deque::__construct ([ mixed $values ] )

Создает новый экземпляр класса, используя либо объект реализующий traversable, либо массив, переданные в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс "traversable" или массив.

Примеры

Пример #1 Пример использования Ds\Deque::__construct()

<?php
$deque = new \Ds\Deque();
var_dump($deque);

$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Deque)#2 (0) {
}
object(Ds\Deque)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Проверяет, содержится ли в коллекции заданные значения

  • « Ds\Deque::__construct
  • Ds\Deque::copy »
  • PHP Manual
  • Двухсторонняя очередь
  • Проверяет, содержится ли в коллекции заданные значения

Ds\Deque::contains

(PECL ds >= 1.0.0)

Ds\Deque::contains — Проверяет, содержится ли в коллекции заданные значения

Описание

public bool Ds\Deque::contains ([ mixed $...values ] )

Проверяет, содержится ли в коллекции заданные значения.

Список параметров

values

Значения для проверки.

Возвращаемые значения

Возвращает FALSE, если хотя бы одно значение из values не найдено в коллекции и TRUE в противном случае.

Примеры

Пример #1 Пример использования Ds\Deque::contains()

<?php
$deque = new \Ds\Deque(['a', 'b', 'c', 1, 2, 3]);

var_dump($deque->contains('a'));                // true
var_dump($deque->contains('a', 'b'));           // true
var_dump($deque->contains('c', 'd'));           // false

var_dump($deque->contains(...['c', 'b', 'a'])); // true

// Всегда строгая проверка
var_dump($deque->contains(1));                  // true
var_dump($deque->contains('1'));                // false

var_dump($sequece->contains(...[]));               // true
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(false)
bool(true)
bool(true)
bool(false)
bool(true)


Возвращает поверхностную копию коллекции

  • « Ds\Deque::contains
  • Ds\Deque::count »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает поверхностную копию коллекции

Ds\Deque::copy

(PECL ds >= 1.0.0)

Ds\Deque::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Deque Ds\Deque::copy ( void )

Возвращает поверхностную копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия коллекции.

Примеры

Пример #1 Пример использования Ds\Deque::copy()

<?php
$a = new \Ds\Deque([1, 2, 3]);
$b = $a->copy();

$b->push(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Возвращает количество элементов коллекции

  • « Ds\Deque::copy
  • Ds\Deque::filter »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает количество элементов коллекции

Ds\Deque::count

(PECL ds >= 1.0.0)

Ds\Deque::count — Возвращает количество элементов коллекции

Смотри описание функции Countable::count()


Создает новую двунаправленную очередь из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Deque::count
  • Ds\Deque::find »
  • PHP Manual
  • Двухсторонняя очередь
  • Создает новую двунаправленную очередь из элементов, выбранных с помощью заданной callback-функции

Ds\Deque::filter

(PECL ds >= 1.0.0)

Ds\Deque::filter — Создает новую двунаправленную очередь из элементов, выбранных с помощью заданной callback-функции

Описание

public Ds\Deque Ds\Deque::filter ([ callable $callback ] )

Создает новую двунаправленную очередь из элементов, выбранных с помощью заданной callback-функции.

Список параметров

callback

bool callback ( mixed $value )

Опциональный аргумент типа callable, который возвращает TRUE если значение должно быть включено и FALSE, если нет.

Если callback-функция не задана, то будут включены только элементы, которые приводятся к логическому значению TRUE (мотри приведение к boolean).

Возвращаемые значения

Новая двунаправленная очередь, содержащая значения, для которых функция callback вернула TRUE, или все елементы, которые при приведении к логическому типу становятся TRUE, если параметр callback не задан.

Примеры

Пример #1 Пример Ds\Deque::filter() с использованием callback-функции

<?php
$deque = new \Ds\Deque([1, 2, 3, 4, 5]);

var_dump($deque->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Deque)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Пример #2 Пример Ds\Deque::filter() без callback-функции

<?php
$deque = new \Ds\Deque([0, 1, 'a', true, false]);

var_dump($deque->filter());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Deque)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Поиск индекса по значению

  • « Ds\Deque::filter
  • Ds\Deque::first »
  • PHP Manual
  • Двухсторонняя очередь
  • Поиск индекса по значению

Ds\Deque::find

(PECL ds >= 1.0.0)

Ds\Deque::find — Поиск индекса по значению

Описание

public mixed Ds\Deque::find ( mixed $value )

Возвращает индекс значения value, или FALSE, если ничего не найдено.

Список параметров

value

Искомое значение.

Возвращаемые значения

Индекс элемента, или FALSE, если значение не найдено.

Замечание:

Элементы сравниваются строго, по типу и значению.

Примеры

Пример #1 Пример использования Ds\Deque::find()

<?php
$deque = new \Ds\Deque(["a", 1, true]);

var_dump($deque->find("a")); // 0
var_dump($deque->find("b")); // false
var_dump($deque->find("1")); // false
var_dump($deque->find(1));   // 1
?>

Результатом выполнения данного примера будет что-то подобное:

int(0)
bool(false)
bool(false)
int(1)


Возвращает первый элемент коллекции

  • « Ds\Deque::find
  • Ds\Deque::get »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает первый элемент коллекции

Ds\Deque::first

(PECL ds >= 1.0.0)

Ds\Deque::first — Возвращает первый элемент коллекции

Описание

public mixed Ds\Deque::first ( void )

Возвращает первый элемент коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первый элемент коллекции.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Deque::first()

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->first());
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)


Возвращает значение по индексу

  • « Ds\Deque::first
  • Ds\Deque::insert »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает значение по индексу

Ds\Deque::get

(PECL ds >= 1.0.0)

Ds\Deque::get — Возвращает значение по индексу

Описание

public mixed Ds\Deque::get ( int $index )

Возвращает значение по заданному индексу.

Список параметров

index

Индекс. Первый элемент имеет индекс 0.

Возвращаемые значения

Значение по заданному индексу.

Ошибки

Бросает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Deque::get()

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->get(0));
var_dump($deque->get(1));
var_dump($deque->get(2));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"

Пример #2 Пример использования Ds\Deque::get() с синтаксисом массива

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque[0]);
var_dump($deque[1]);
var_dump($deque[2]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Вставляет значения по указанному индексу

  • « Ds\Deque::get
  • Ds\Deque::isEmpty »
  • PHP Manual
  • Двухсторонняя очередь
  • Вставляет значения по указанному индексу

Ds\Deque::insert

(PECL ds >= 1.0.0)

Ds\Deque::insert — Вставляет значения по указанному индексу

Описание

public void Ds\Deque::insert ( int $index [, mixed $...values ] )

Вставляет значения по указанному индексу.

Список параметров

index

Индекс, по которому необходимо осуществить вставку. 0 <= index <= count

Замечание:

Можно указывать индекс, равный количеству элементов коллекции.

values

Значение или значения для вставки.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Бросает исключение OutOfRangeException в случае некорректного индекса.

Примеры

Пример #1 Пример использования Ds\Deque::insert()

<?php
$deque = new \Ds\Deque();

$deque->insert(0, "e");             // [e]
$deque->insert(1, "f");             // [e, f]
$deque->insert(2, "g");             // [e, f, g]
$deque->insert(0, "a", "b");        // [a, b, e, f, g]
$deque->insert(2, ...["c", "d"]);   // [a, b, c, d, e, f, g]

var_dump($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Deque)#1 (7) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
  [5]=>
  string(1) "f"
  [6]=>
  string(1) "g"
}


Проверяет, пуста ли коллекция

  • « Ds\Deque::insert
  • Ds\Deque::join »
  • PHP Manual
  • Двухсторонняя очередь
  • Проверяет, пуста ли коллекция

Ds\Deque::isEmpty

(PECL ds >= 1.0.0)

Ds\Deque::isEmpty — Проверяет, пуста ли коллекция

Описание

public bool Ds\Deque::isEmpty ( void )

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если коллекция пуста, и FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Deque::isEmpty()

<?php
$a = new \Ds\Deque([1, 2, 3]);
$b = new \Ds\Deque();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Склеивает все значения в строку

  • « Ds\Deque::isEmpty
  • Ds\Deque::jsonSerialize »
  • PHP Manual
  • Двухсторонняя очередь
  • Склеивает все значения в строку

Ds\Deque::join

(PECL ds >= 1.0.0)

Ds\Deque::join — Склеивает все значения в строку

Описание

public string Ds\Deque::join ([ string $glue ] )

Склеивает все значения в строку, опционально используя заданный разделитель.

Список параметров

glue

Необязательный параметр, задающий разделитель между значениями.

Возвращаемые значения

Все значения коллекции склееные в одну строку.

Примеры

Пример #1 Пример использования Ds\Deque::join() с разделителем

<?php
$deque = new \Ds\Deque(["a", "b", "c", 1, 2, 3]);

var_dump($deque->join("|"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "a|b|c|1|2|3"

Пример #2 Пример использования Ds\Deque::join() без разделителя

<?php
$deque = new \Ds\Deque(["a", "b", "c", 1, 2, 3]);

var_dump($deque->join());
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "abc123"


Возвращает коллекцию в JSON представлении

  • « Ds\Deque::join
  • Ds\Deque::last »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает коллекцию в JSON представлении

Ds\Deque::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Deque::jsonSerialize — Возвращает коллекцию в JSON представлении

Смотри JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает последнее значение коллекции

  • « Ds\Deque::jsonSerialize
  • Ds\Deque::map »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает последнее значение коллекции

Ds\Deque::last

(PECL ds >= 1.0.0)

Ds\Deque::last — Возвращает последнее значение коллекции

Описание

public mixed Ds\Deque::last ( void )

Возвращает последнее значение коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент коллекции.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Deque::last()

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->last());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)


Возвращает результат применения callback-функции ко всем значениям коллекции

  • « Ds\Deque::last
  • Ds\Deque::merge »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает результат применения callback-функции ко всем значениям коллекции

Ds\Deque::map

(PECL ds >= 1.0.0)

Ds\Deque::map — Возвращает результат применения callback-функции ко всем значениям коллекции

Описание

public Ds\Deque Ds\Deque::map ( callable $callback )

Возвращает результат применения callback-функции, переданной в callback, ко всем значениям коллекции.

Список параметров

callback

mixed callback ( mixed $value )

Аргумент типа callable.

Эта функция должна возвращать новое значение для каждого элемента коллекции.

Возвращаемые значения

Результат применения callback к каждому значению коллекции.

Замечание:

Значения в текущей коллекции останутся неизменными.

Примеры

Пример #1 Пример использования Ds\Deque::map()

<?php
$deque = new \Ds\Deque([1, 2, 3]);

print_r($deque->map(function($value) { return $value * 2; }));
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 2
    [1] => 4
    [2] => 6
)
Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)


Возвращает результат добавления всех заданных значений в коллекцию

  • « Ds\Deque::map
  • Ds\Deque::pop »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает результат добавления всех заданных значений в коллекцию

Ds\Deque::merge

(PECL ds >= 1.0.0)

Ds\Deque::merge — Возвращает результат добавления всех заданных значений в коллекцию

Описание

public Ds\Deque Ds\Deque::merge ( mixed $values )

Возвращает результат добавления всех заданных значений в коллекцию.

Список параметров

values

Объект класса traversable или array.

Возвращаемые значения

Результат добавления всех переданных значений в коллекцию. Фактически делается копия коллекции, в которую добавляются значения.

Замечание:

Текущий экземпляр коллекции останется нетронутым.

Примеры

Пример #1 Пример использования Ds\Deque::merge()

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->merge([4, 5, 6]));
var_dump($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Deque)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
  [5]=>
  int(6)
}
object(Ds\Deque)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Удаляет и возвращает последнее значение

  • « Ds\Deque::merge
  • Ds\Deque::push »
  • PHP Manual
  • Двухсторонняя очередь
  • Удаляет и возвращает последнее значение

Ds\Deque::pop

(PECL ds >= 1.0.0)

Ds\Deque::pop — Удаляет и возвращает последнее значение

Описание

public mixed Ds\Deque::pop ( void )

Удаляет и возвращает последнее значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последнее, удаленное, значение.

Ошибки

Бросает исключение UnderflowException если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Deque::pop()

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->pop());
var_dump($deque->pop());
var_dump($deque->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)
int(2)
int(1)


Добавляет значения в конец двунаправленной очереди

  • « Ds\Deque::pop
  • Ds\Deque::reduce »
  • PHP Manual
  • Двухсторонняя очередь
  • Добавляет значения в конец двунаправленной очереди

Ds\Deque::push

(PECL ds >= 1.0.0)

Ds\Deque::push — Добавляет значения в конец двунаправленной очереди

Описание

public void Ds\Deque::push ([ mixed $...values ] )

Добавляет значения в конец двунаправленной очереди.

Список параметров

values

Добавляемые значения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Deque::push()

<?php
$deque = new \Ds\Deque();

$deque->push("a");
$deque->push("b");
$deque->push("c", "d");
$deque->push(...["e", "f"]);

print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Схлопывает коллекцию до одного значения используя callback-функцию

  • « Ds\Deque::push
  • Ds\Deque::remove »
  • PHP Manual
  • Двухсторонняя очередь
  • Схлопывает коллекцию до одного значения используя callback-функцию

Ds\Deque::reduce

(PECL ds >= 1.0.0)

Ds\Deque::reduce — Схлопывает коллекцию до одного значения используя callback-функцию

Описание

public mixed Ds\Deque::reduce ( callable $callback [, mixed $initial ] )

Схлопывает коллекцию до одного значения используя callback-функцию.

Список параметров

callback
mixed callback ( mixed $carry , mixed $value )
carry

Значение вохвращенное предыдущим запуском функции, или initial, если функция запущена первый раз.

value

Значение текущей итерации.

initial

Начальное значение параметра carry.Можно указать NULL.

Возвращаемые значения

Значение возвращенное финальным запуском callback-функции.

Примеры

Пример #1 Пример использования Ds\Deque::reduce() с начальным значением

<?php
$deque = new \Ds\Deque([1, 2, 3]);

$callback = function($carry, $value) {
    return $carry * $value;
};

var_dump($deque->reduce($callback, 5));

// Iterations:
//
// $carry = $initial = 5
//
// $carry = $carry * 1 =  5
// $carry = $carry * 2 = 10
// $carry = $carry * 3 = 30
?>

Результатом выполнения данного примера будет что-то подобное:

int(30)

Пример #2 Пример использования Ds\Deque::reduce() без начального значения

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->reduce(function($carry, $value) {
    return $carry + $value + 5;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Результатом выполнения данного примера будет что-то подобное:

int(21)


Удаляет и возвращает значение по индексу

  • « Ds\Deque::reduce
  • Ds\Deque::reverse »
  • PHP Manual
  • Двухсторонняя очередь
  • Удаляет и возвращает значение по индексу

Ds\Deque::remove

(PECL ds >= 1.0.0)

Ds\Deque::remove — Удаляет и возвращает значение по индексу

Описание

public mixed Ds\Deque::remove ( int $index )

Удаляет и возвращает значение по индексу.

Список параметров

index

Индекс, по которому необходимо удалить значение.

Возвращаемые значения

Удаленное значение.

Ошибки

Бросает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Deque::remove()

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->remove(1));
var_dump($deque->remove(0));
var_dump($deque->remove(0));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "b"
string(1) "a"
string(1) "c"


Переворачивает текущую коллекцию

  • « Ds\Deque::remove
  • Ds\Deque::reversed »
  • PHP Manual
  • Двухсторонняя очередь
  • Переворачивает текущую коллекцию

Ds\Deque::reverse

(PECL ds >= 1.0.0)

Ds\Deque::reverse — Переворачивает текущую коллекцию

Описание

public void 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::reversed

(PECL ds >= 1.0.0)

Ds\Deque::reversed — Возвращает перевернутую копию коллекции

Описание

public Ds\Deque Ds\Deque::reversed ( void )

Возвращает перевернутую копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Перевернутая копия коллекции.

Замечание:

Текущая коллекция не изменится.

Примеры

Пример #1 Пример использования Ds\Deque::reversed()

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

print_r($deque->reversed());
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Deque Object
(
    [0] => a
    [1] => b
    [2] => c
)


Перематывает коллекцию на заданное число значений

  • « Ds\Deque::reversed
  • Ds\Deque::set »
  • PHP Manual
  • Двухсторонняя очередь
  • Перематывает коллекцию на заданное число значений

Ds\Deque::rotate

(PECL ds >= 1.0.0)

Ds\Deque::rotate — Перематывает коллекцию на заданное число значений

Описание

public void Ds\Deque::rotate ( int $rotations )

Перематывает коллекцию на заданное число значений. Данная операция аналогична выполнению заданное количество раз кода $deque->push($deque->shift()), если число оборотов положительно и $deque->unshift($deque->pop()), если отрицательно.

Список параметров

rotations

Количество значений, которые надо "перемотать".

Возвращаемые значения

Эта функция не возвращает значения после выполнения.. Будет изменена текущая коллекция.

Примеры

Пример #1 Пример использования Ds\Deque::rotate()

<?php
$deque = new \Ds\Deque(["a", "b", "c", "d"]);

$deque->rotate(1);  // Аналогично $a = $sequence->deque(); $deque->push($a);
print_r($deque);

$deque->rotate(2);
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

(
    [0] => b
    [1] => c
    [2] => d
    [3] => a
)
Ds\Deque Object
(
    [0] => d
    [1] => a
    [2] => b
    [3] => c
)


Заменяет значение по указанному индексу

  • « Ds\Deque::rotate
  • Ds\Deque::shift »
  • PHP Manual
  • Двухсторонняя очередь
  • Заменяет значение по указанному индексу

Ds\Deque::set

(PECL ds >= 1.0.0)

Ds\Deque::set — Заменяет значение по указанному индексу

Описание

public void Ds\Deque::set ( int $index , mixed $value )

Заменяет значение по указанному индексу.

Список параметров

index

Индекс, по которому надо заменить значение.

value

Новое значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Бросает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Deque::set()

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

$deque->set(1, "_");
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => a
    [1] => _
    [2] => c
)

Пример #2 Пример использования Ds\Deque::set() с синтаксисом массива

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

$deque[1] = "_";
print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => a
    [1] => _
    [2] => c
)


Удаляет и возвращает первое значение

  • « Ds\Deque::set
  • Ds\Deque::slice »
  • PHP Manual
  • Двухсторонняя очередь
  • Удаляет и возвращает первое значение

Ds\Deque::shift

(PECL ds >= 1.0.0)

Ds\Deque::shift — Удаляет и возвращает первое значение

Описание

public mixed Ds\Deque::shift ( void )

Удаляет и возвращает первое значение.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первое, удаленное, значение.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Deque::shift()

<?php
$deque = new \Ds\Deque(["a", "b", "c"]);

var_dump($deque->shift());
var_dump($deque->shift());
var_dump($deque->shift());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Возвращает под-коллекцию из заданного диапазона

  • « Ds\Deque::shift
  • Ds\Deque::sort »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает под-коллекцию из заданного диапазона

Ds\Deque::slice

(PECL ds >= 1.0.0)

Ds\Deque::slice — Возвращает под-коллекцию из заданного диапазона

Описание

public Ds\Deque Ds\Deque::slice ( int $index [, int $length ] )

Возвращает под-коллекцию из диапазона заданного начальным индексом index и длиной length.

Список параметров

index

Индекс, задающий начало диапазона.

Если положительный, то будет отсчитываться от начала коллекции. Если отрицательный, то от конца.

length

Положительное значение определяет, сколько элементов бцдет взято. Если количество элементов коллекции меньше заданного значения, вернется столько элементов, сколько есть. Отрицательное значение задаст индекс, отсчитанный от конца коллекции, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы коллекции от заданного индекса до конца коллекции.

Возвращаемые значения

Под-коллекция из заданного диапазона.

Примеры

Пример #1 Пример использования Ds\Deque::slice()

<?php
$deque = new \Ds\Deque(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($deque->slice(2));

// Slice from 1, for a length of 3
print_r($deque->slice(1, 3));

// Slice from 1 onwards
print_r($deque->slice(1));

// Slice from 2 from the end onwards
print_r($deque->slice(-2));

// Slice from 1 to 1 from the end
print_r($deque->slice(1, -1));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Deque Object
(
    [0] => d
    [1] => e
)
Ds\Deque Object
(
    [0] => b
    [1] => c
    [2] => d
)


Сортирует коллекцию

  • « Ds\Deque::slice
  • Ds\Deque::sorted »
  • PHP Manual
  • Двухсторонняя очередь
  • Сортирует коллекцию

Ds\Deque::sort

(PECL ds >= 1.0.0)

Ds\Deque::sort — Сортирует коллекцию

Описание

public void Ds\Deque::sort ([ callable $comparator ] )

Сортирует коллекцию, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Deque::sort()

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);
$deque->sort();

print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Deque::sort() с callback-функцией сравнения

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

$deque->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($deque);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает отсортированную по значению копию коллекции

  • « Ds\Deque::sort
  • Ds\Deque::sum »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает отсортированную по значению копию коллекции

Ds\Deque::sorted

(PECL ds >= 1.0.0)

Ds\Deque::sorted — Возвращает отсортированную по значению копию коллекции

Описание

public Ds\Deque Ds\Deque::sorted ([ callable $comparator ] )

Возвращает отсортированную копию коллекции, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает отсортированную по значению копию коллекции.

Примеры

Пример #1 Пример использования Ds\Deque::sorted()

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

print_r($deque->sorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Deque::sorted() с callback-функцией сравнения

<?php
$deque = new \Ds\Deque([4, 5, 1, 3, 2]);

$sorted = $deque->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Deque Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает сумму всех значений коллекции

  • « Ds\Deque::sorted
  • Ds\Deque::toArray »
  • PHP Manual
  • Двухсторонняя очередь
  • Возвращает сумму всех значений коллекции

Ds\Deque::sum

(PECL ds >= 1.0.0)

Ds\Deque::sum — Возвращает сумму всех значений коллекции

Описание

public number Ds\Deque::sum ( void )

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов float или int, в зависимости от значений коллекции.

Примеры

Пример #1 Пример использования Ds\Deque::sum() с целочисленными значениями

<?php
$deque = new \Ds\Deque([1, 2, 3]);
var_dump($deque->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

int(6)

Пример #2 Пример использования Ds\Deque::sum() со значениями типа float

<?php
$deque = new \Ds\Deque([1, 2.5, 3]);
var_dump($deque->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

float(6.5)


Преобразует коллекцию в array

  • « Ds\Deque::sum
  • Ds\Deque::unshift »
  • PHP Manual
  • Двухсторонняя очередь
  • Преобразует коллекцию в array

Ds\Deque::toArray

(PECL ds >= 1.0.0)

Ds\Deque::toArray — Преобразует коллекцию в array

Описание

public array Ds\Deque::toArray ( void )

Преобразует коллекцию в array.

Замечание:

Приведение к типу array пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

array, содержащий все элементы коллекции с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\Deque::toArray()

<?php
$deque = new \Ds\Deque([1, 2, 3]);

var_dump($deque->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Добавляет значения в начало двунаправленной очереди

  • « Ds\Deque::toArray
  • Коллекция пар »
  • PHP Manual
  • Двухсторонняя очередь
  • Добавляет значения в начало двунаправленной очереди

Ds\Deque::unshift

(PECL ds >= 1.0.0)

Ds\Deque::unshift — Добавляет значения в начало двунаправленной очереди

Описание

public void Ds\Deque::unshift ([ mixed $values ] )

Добавляет значения в начало двунаправленной очереди, сдвигая все элементы вперед, что бы освободить место для новых.

Список параметров

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

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Коллекция пар - это последовательная коллекция, содержащая пары ключ/значение, практически идентичная массиву и используется для тех же целей. Ключи могут быть любого типа, но должны быть уникальными. Если добавить пару с уже существующим ключем, то она будет заменена.

Сильный стороны

  • Ключи и значения могут быть любого типа, включая объекты.
  • Поддерживает синтаксис массива (квадратные скобки).
  • Сохраняется порядок вставки.
  • Скорость и потребление памяти сравнимо с использованием массива.
  • Автоматически высвобождает память, когда количество элементов уменхается.

Слабые стороны

  • Не может быть сконвертирована в массив, если в качестве ключей используются объекты.

Обзор классов

Ds\Map implements Ds\Collection {
/* Константы */
const int MIN_CAPACITY = 16 ;
/* Методы */
public void allocate ( int $capacity )
public void apply ( callable $callback )
public int capacity ( void )
public void clear ( void )
public Ds\Map copy ( void )
public Ds\Map diff ( Ds\Map $map )
public Ds\Map filter ([ callable $callback ] )
public Ds\Pair first ( void )
public mixed get ( mixed $key [, mixed $default ] )
public bool hasKey ( mixed $key )
public bool hasValue ( mixed $value )
public Ds\Map intersect ( Ds\Map $map )
public bool isEmpty ( void )
public Ds\Set keys ( void )
public void ksort ([ callable $comparator ] )
public Ds\Map ksorted ([ callable $comparator ] )
public Ds\Pair last ( void )
public Ds\Map map ( callable $callback )
public Ds\Map merge ( mixed $values )
public Ds\Sequence pairs ( void )
public void put ( mixed $key , mixed $value )
public void putAll ( mixed $pairs )
public mixed reduce ( callable $callback [, mixed $initial ] )
public mixed remove ( mixed $key [, mixed $default ] )
public void reverse ( void )
public Ds\Map reversed ( void )
public Ds\Pair skip ( int $position )
public Ds\Map slice ( int $index [, int $length ] )
public void sort ([ callable $comparator ] )
public Ds\Map sorted ([ callable $comparator ] )
public number sum ( void )
public array toArray ( void )
public Ds\Map union ( Ds\Map $map )
public Ds\Sequence values ( void )
public Ds\Map xor ( Ds\Map $map )
}

Предопределенные константы

Ds\Map::MIN_CAPACITY

Содержание

  • Ds\Map::allocate — Выделяет необходимое количество памяти, под требуюмую вместимость
  • Ds\Map::apply — Обновление всех значений применением к ним переданной callback-функции
  • Ds\Map::capacity — Возвращает текущую вместимость
  • Ds\Map::clear — Удаляет все значения из коллекции
  • Ds\Map::__construct — Создает новый экземпляр класса
  • Ds\Map::copy — Возвращает поверхностную копию коллекции
  • Ds\Map::count — Возвращает количество элементов коллекции
  • Ds\Map::diff — Создает новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар
  • Ds\Map::filter — Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции
  • Ds\Map::first — Возвращает первый элемент коллекции
  • Ds\Map::get — Возвращает значение по ключу
  • Ds\Map::hasKey — Проверяет, содержит ли коллекция заданный ключ
  • Ds\Map::hasValue — Проверяет, содержит ли коллекция заданное значение
  • Ds\Map::intersect — Создает новую коллекцию пар, созданную пересечением с другой коллекцией пар
  • Ds\Map::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Map::jsonSerialize — Возвращает коллекцию в JSON представлении
  • Ds\Map::keys — Возвращает набор ключей коллекции
  • Ds\Map::ksort — Сортирует текущую коллекцию по ключам
  • Ds\Map::ksorted — Возвращает копию коллекции, отсортированной по ключам
  • Ds\Map::last — Возвращает последнюю пару коллекции
  • Ds\Map::map — Возвращает результат применения callback-функции ко всем значениям коллекции
  • Ds\Map::merge — Возвращает результат добавления всех заданных элементов в коллекцию
  • Ds\Map::pairs — Возвращает последовательность, содержащую все пары коллекции пар
  • Ds\Map::put — Установка значения по заданному ключу
  • Ds\Map::putAll — Вносит в коллекцию все пары ключ/значение из объекта класса traversable или массива
  • Ds\Map::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
  • Ds\Map::remove — Удаляет и возвращает значение по ключу
  • Ds\Map::reverse — Переворачивает текущую коллекцию
  • Ds\Map::reversed — Возвращает перевернутую копию коллекции
  • Ds\Map::skip — Возвращает пару по индексу позиции
  • Ds\Map::slice — Возвращает под-коллекцию из заданного диапазона
  • Ds\Map::sort — Сортирует коллекцию по значениям
  • Ds\Map::sorted — Возвращает отсортированную по значению копию коллекции
  • Ds\Map::sum — Возвращает сумму всех значений коллекции
  • Ds\Map::toArray — Преобразует коллекцию в array
  • Ds\Map::union — Создает новую коллекцию пар из элементов двух коллекций
  • Ds\Map::values — Возвращает последовательность значений коллекции пар
  • Ds\Map::xor — Создает новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно


Выделяет необходимое количество памяти, под требуюмую вместимость

  • « Коллекция пар
  • Ds\Map::apply »
  • PHP Manual
  • Коллекция пар
  • Выделяет необходимое количество памяти, под требуюмую вместимость

Ds\Map::allocate

(PECL ds >= 1.0.0)

Ds\Map::allocate — Выделяет необходимое количество памяти, под требуюмую вместимость

Описание

public void Ds\Map::allocate ( int $capacity )

Выделяет необходимое количество памяти, под требуюмую вместимость.

Список параметров

capacity

Вместимость (количество значений), под хранение которых запрашивается память.

Замечание:

Значение остается неизменным, если текущее значение больше или равно заданному.

Замечание:

Вместимость всегда округляется вверх до ближайшей степени двойки. (т.е. 16, 32, 64, 128 и т.д)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::allocate()

<?php
$map = new \Ds\Map();
var_dump($map->capacity());

$map->allocate(100);
var_dump($map->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(16)
int(128)


Обновление всех значений применением к ним переданной callback-функции

  • « Ds\Map::allocate
  • Ds\Map::capacity »
  • PHP Manual
  • Коллекция пар
  • Обновление всех значений применением к ним переданной callback-функции

Ds\Map::apply

(PECL ds >= 1.0.0)

Ds\Map::apply — Обновление всех значений применением к ним переданной callback-функции

Описание

public void Ds\Map::apply ( callable $callback )

Обновление всех значений применением к ним переданной callback-функции.

Список параметров

callback

mixed callback ( mixed $key , mixed $value )

Объект типа callable.

Callback-функция должна возвращать новое значение, которое заменит текущее.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::apply()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$map->apply(function($key, $value) { return $value * 2; });

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 4
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 6
        )

)


Возвращает текущую вместимость

  • « Ds\Map::apply
  • Ds\Map::clear »
  • PHP Manual
  • Коллекция пар
  • Возвращает текущую вместимость

Ds\Map::capacity

(PECL ds >= 1.0.0)

Ds\Map::capacity — Возвращает текущую вместимость

Описание

public int Ds\Map::capacity ( void )

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Map::capacity()

<?php
$map = new \Ds\Map();
var_dump($map->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(16)


Удаляет все значения из коллекции

  • « Ds\Map::capacity
  • Ds\Map::__construct »
  • PHP Manual
  • Коллекция пар
  • Удаляет все значения из коллекции

Ds\Map::clear

(PECL ds >= 1.0.0)

Ds\Map::clear — Удаляет все значения из коллекции

Описание

public void 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::__construct

(PECL ds >= 1.0.0)

Ds\Map::__construct — Создает новый экземпляр класса

Описание

public Ds\Map::__construct ([ mixed $...values ] )

Создает новый экземпляр класса, используя либо объект реализующий traversable, либо массив, переданные в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс "traversable" или массив.

Примеры

Пример #1 Пример использования Ds\Map::__construct()

<?php
$map = new \Ds\Map();
var_dump($map);

$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#1 (0) {
}
object(Ds\Map)#2 (3) {
  [0]=>
  object(Ds\Pair)#1 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
  [1]=>
  object(Ds\Pair)#3 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [2]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}


Возвращает поверхностную копию коллекции

  • « Ds\Map::__construct
  • Ds\Map::count »
  • PHP Manual
  • Коллекция пар
  • Возвращает поверхностную копию коллекции

Ds\Map::copy

(PECL ds >= 1.0.0)

Ds\Map::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Map Ds\Map::copy ( void )

Возвращает поверхностную копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия коллекции.

Примеры

Пример #1 Пример использования Ds\Map::copy()

<?php
$map = new \Ds\Map([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

print_r($map->copy());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Возвращает количество элементов коллекции

  • « Ds\Map::copy
  • Ds\Map::diff »
  • PHP Manual
  • Коллекция пар
  • Возвращает количество элементов коллекции

Ds\Map::count

(PECL ds >= 1.0.0)

Ds\Map::count — Возвращает количество элементов коллекции

Смотри описание функции Countable::count()


Создает новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар

  • « Ds\Map::count
  • Ds\Map::filter »
  • PHP Manual
  • Коллекция пар
  • Создает новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар

Ds\Map::diff

(PECL ds >= 1.0.0)

Ds\Map::diff — Создает новую коллекцию пар с элементами, ключей которых нет в другой коллекции пар

Описание

public Ds\Map Ds\Map::diff ( Ds\Map $map )

Возвращает новую коллекцию пар, не содержащую элементов с ключами, которые присутствуют в коллекции пар, переданной в map.

A \ B = {x ? A | x ? B}

Список параметров

map

Коллекция пар, содержащая элементы с ключами, которых не должно быть в новой коллекции пар.

Возвращаемые значения

Результат удаления всех элементов, ключи которых присутствуют в коллекции пар, переданной в map.

Смотри также

  • » Расзость массивов на Wikipedia

Примеры

Пример #1 Пример использования Ds\Map::diff()

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

var_dump($a->diff($b));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#3 (1) {
  [0]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
}


Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Map::diff
  • Ds\Map::first »
  • PHP Manual
  • Коллекция пар
  • Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции

Ds\Map::filter

(PECL ds >= 1.0.0)

Ds\Map::filter — Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции

Описание

public Ds\Map Ds\Map::filter ([ callable $callback ] )

Создает новую коллекцию пар из элементов, выбранных с помощью заданной callback-функции.

Список параметров

callback

bool callback ( mixed $key , mixed $value )

Опциональный аргумент типа callable, который возвращает TRUE если пара должна быть включена и FALSE, если нет.

Если callback-функция не задана, то будут включены только элементы, которые приводятся к логическому значению TRUE (мотри приведение к boolean).

Возвращаемые значения

Новая коллекция пар, содержащая значения, для которых функция callback вернула TRUE, или все елементы, которые при приведении к логическому типу становятся TRUE, если параметр callback не задан.

Примеры

Пример #1 Пример Ds\Map::filter() с использованием callback-функции

<?php
$map = new \Ds\Map(["a", "b", "c", "d", "e"]);

var_dump($map->filter(function($key, $value) {
    return $key % 2 == 0;
}));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#3 (3) {
  [0]=>
  object(Ds\Pair)#2 (2) {
    ["key"]=>
    int(0)
    ["value"]=>
    string(1) "a"
  }
  [1]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    int(2)
    ["value"]=>
    string(1) "c"
  }
  [2]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    int(4)
    ["value"]=>
    string(1) "e"
  }
}

Пример #2 Пример Ds\Map::filter() без callback-функции

<?php
$map = new \Ds\Map(["a" => 0, "b" => 1, "c" => true, "d" => false]);

var_dump($map->filter());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Возвращает первый элемент коллекции

  • « Ds\Map::filter
  • Ds\Map::get »
  • PHP Manual
  • Коллекция пар
  • Возвращает первый элемент коллекции

Ds\Map::first

(PECL ds >= 1.0.0)

Ds\Map::first — Возвращает первый элемент коллекции

Описание

public Ds\Pair Ds\Map::first ( void )

Возвращает первый элемент коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первый элемент коллекции.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Map::first()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->first());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "a"
  ["value"]=>
  int(1)
}


Возвращает значение по ключу

  • « Ds\Map::first
  • Ds\Map::hasKey »
  • PHP Manual
  • Коллекция пар
  • Возвращает значение по ключу

Ds\Map::get

(PECL ds >= 1.0.0)

Ds\Map::get — Возвращает значение по ключу

Описание

public mixed Ds\Map::get ( mixed $key [, mixed $default ] )

Возвращает значение по заданному ключу, или, опционально, заданное значение по умолчанию, если ключ не найден.

Замечание:

Поддерживаются значения типа 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 (default used)
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)
int(10)

Пример #2 Пример использования Ds\Map::get() с синтаксисом массива

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map["a"])); // 1
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)


Проверяет, содержит ли коллекция заданный ключ

  • « Ds\Map::get
  • Ds\Map::hasValue »
  • PHP Manual
  • Коллекция пар
  • Проверяет, содержит ли коллекция заданный ключ

Ds\Map::hasKey

(PECL ds >= 1.0.0)

Ds\Map::hasKey — Проверяет, содержит ли коллекция заданный ключ

Описание

public bool Ds\Map::hasKey ( mixed $key )

Проверяет, содержит ли коллекция заданный ключ.

Список параметров

key

Проверяемый ключ.

Возвращаемые значения

Возвращает TRUE,если ключ найден, иначе FALSE.

Примеры

Пример #1 Пример использования Ds\Map::hasKey()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->hasKey("a")); // true
var_dump($map->hasKey("e")); // false
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)


Проверяет, содержит ли коллекция заданное значение

  • « Ds\Map::hasKey
  • Ds\Map::intersect »
  • PHP Manual
  • Коллекция пар
  • Проверяет, содержит ли коллекция заданное значение

Ds\Map::hasValue

(PECL ds >= 1.0.0)

Ds\Map::hasValue — Проверяет, содержит ли коллекция заданное значение

Описание

public bool Ds\Map::hasValue ( mixed $value )

Проверяет, содержит ли коллекция заданное значение.

Список параметров

value

Значение для проверки.

Возвращаемые значения

Возвращает TRUE,если ключ найден, иначе FALSE.

Примеры

Пример #1 Пример использования Ds\Map::hasValue()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->hasValue(1)); // true
var_dump($map->hasValue(4)); // false
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)


Создает новую коллекцию пар, созданную пересечением с другой коллекцией пар

  • « Ds\Map::hasValue
  • Ds\Map::isEmpty »
  • PHP Manual
  • Коллекция пар
  • Создает новую коллекцию пар, созданную пересечением с другой коллекцией пар

Ds\Map::intersect

(PECL ds >= 1.0.0)

Ds\Map::intersect — Создает новую коллекцию пар, созданную пересечением с другой коллекцией пар

Описание

public Ds\Map Ds\Map::intersect ( Ds\Map $map )

Создает новую коллекцию пар из текущей, содержащую элементы, ключи которых присутствують как в текущей коллекции, так и в переданнов в параметре map. Другими словами, возвращает копию текущей коллекции, из которой удалены все элементы, ключи которых отсутствуют в коллекции из map.

A ? B = {x : x ? A ? x ? B}

Замечание:

Значения берутся из текущей коллекции пар.

Список параметров

map

Новая коллекция типа Map.

Возвращаемые значения

Пересечение текущей коллекции и переданнй в map.

Также смотрите

  • » Пересечение на Wikipedia

Примеры

Пример #1 Пример использования Ds\Map::intersect()

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 4, "c" => 5, "d" => 6]);

var_dump($a->intersect($b));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#3 (2) {
  [0]=>
  object(Ds\Pair)#4 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [1]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}


Проверяет, пуста ли коллекция

  • « Ds\Map::intersect
  • Ds\Map::jsonSerialize »
  • PHP Manual
  • Коллекция пар
  • Проверяет, пуста ли коллекция

Ds\Map::isEmpty

(PECL ds >= 1.0.0)

Ds\Map::isEmpty — Проверяет, пуста ли коллекция

Описание

public bool Ds\Map::isEmpty ( void )

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если коллекция пуста, и FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Map::isEmpty()

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Возвращает коллекцию в JSON представлении

  • « Ds\Map::isEmpty
  • Ds\Map::keys »
  • PHP Manual
  • Коллекция пар
  • Возвращает коллекцию в JSON представлении

Ds\Map::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Map::jsonSerialize — Возвращает коллекцию в JSON представлении

Смотри JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает набор ключей коллекции

  • « Ds\Map::jsonSerialize
  • Ds\Map::ksort »
  • PHP Manual
  • Коллекция пар
  • Возвращает набор ключей коллекции

Ds\Map::keys

(PECL ds >= 1.0.0)

Ds\Map::keys — Возвращает набор ключей коллекции

Описание

public Ds\Set Ds\Map::keys ( void )

Возвращает набор ключей коллекции, с сохранением их порядка.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Коллекция Ds\Set, содержащая все ключи текущей коллекции.

Примеры

Пример #1 Пример использования Ds\Map::keys()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->keys());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#2 (3) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
}


Сортирует текущую коллекцию по ключам

  • « Ds\Map::keys
  • Ds\Map::ksorted »
  • PHP Manual
  • Коллекция пар
  • Сортирует текущую коллекцию по ключам

Ds\Map::ksort

(PECL ds >= 1.0.0)

Ds\Map::ksort — Сортирует текущую коллекцию по ключам

Описание

public void Ds\Map::ksort ([ callable $comparator ] )

Сортирует текущую коллекцию по ключам, опционально используя callback-функцию comparator для сравнения элементов.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::ksort()

<?php
$map = new \Ds\Map(["b" => 2, "c" => 3, "a" => 1]);
$map->ksort();

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Пример #2 Пример использования Ds\Map::ksort() с callback-функцией сравнения

<?php
$map = new \Ds\Map([1 => "x", 2 => "y", 0 => "z"]);

// Реверс
$map->ksort(function($a, $b) {
    return $b <=> $a;
});

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => y
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => x
        )

    [2] => Ds\Pair Object
        (
            [key] => 0
            [value] => z
        )

)


Возвращает копию коллекции, отсортированной по ключам

  • « Ds\Map::ksort
  • Ds\Map::last »
  • PHP Manual
  • Коллекция пар
  • Возвращает копию коллекции, отсортированной по ключам

Ds\Map::ksorted

(Информация о версии неизвестна, возможно, только в SVN)

Ds\Map::ksorted — Возвращает копию коллекции, отсортированной по ключам

Описание

public Ds\Map Ds\Map::ksorted ([ callable $comparator ] )

Возвращает копию коллекции, отсортированной по ключам, опционально используя callback-функцию comparator для сравнения элементов.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Возврат не целого значение из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает копию коллекции, отсортированной по ключам.

Примеры

Пример #1 Пример использования Ds\Map::ksorted()

<?php
$map = new \Ds\Map(["b" => 2, "c" => 3, "a" => 1]);

print_r($map->ksorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)

Пример #2 Пример использования Ds\Map::ksorted() с callback-функцией сравнения

<?php
$map = new \Ds\Map([1 => "x", 2 => "y", 0 => "z"]);

// Реверс
$sorted = $map->ksorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => 2
            [value] => y
        )

    [1] => Ds\Pair Object
        (
            [key] => 1
            [value] => x
        )

    [2] => Ds\Pair Object
        (
            [key] => 0
            [value] => z
        )

)


Возвращает последнюю пару коллекции

  • « Ds\Map::ksorted
  • Ds\Map::map »
  • PHP Manual
  • Коллекция пар
  • Возвращает последнюю пару коллекции

Ds\Map::last

(PECL ds >= 1.0.0)

Ds\Map::last — Возвращает последнюю пару коллекции

Описание

public Ds\Pair Ds\Map::last ( void )

Возвращает последнюю пару коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент коллекции.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Map::last()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->last());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "c"
  ["value"]=>
  int(3)
}


Возвращает результат применения callback-функции ко всем значениям коллекции

  • « Ds\Map::last
  • Ds\Map::merge »
  • PHP Manual
  • Коллекция пар
  • Возвращает результат применения callback-функции ко всем значениям коллекции

Ds\Map::map

(PECL ds >= 1.0.0)

Ds\Map::map — Возвращает результат применения callback-функции ко всем значениям коллекции

Описание

public Ds\Map Ds\Map::map ( callable $callback )

Возвращает результат применения callback-функции, переданной в callback, ко всем значениям коллекции.

Список параметров

callback

mixed callback ( mixed $key , mixed $value )

Аргумент типа callable.

Эта функция должна возвращать новое значение для каждого элемента коллекции.

Возвращаемые значения

Результат применения callback к каждому значению коллекции.

Замечание:

Значения в текущей коллекции останутся неизменными.

Примеры

Пример #1 Пример использования Ds\Map::map()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->map(function($key, $value) { return $value * 2; }));
print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 4
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 6
        )

)
Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Возвращает результат добавления всех заданных элементов в коллекцию

  • « Ds\Map::map
  • Ds\Map::pairs »
  • PHP Manual
  • Коллекция пар
  • Возвращает результат добавления всех заданных элементов в коллекцию

Ds\Map::merge

(PECL ds >= 1.0.0)

Ds\Map::merge — Возвращает результат добавления всех заданных элементов в коллекцию

Описание

public Ds\Map Ds\Map::merge ( mixed $values )

Возвращает результат добавления всех ключей переданного объекта класса traversable или массива ассоциированых с соответствующими значениями в текущую коллекцию.

Замечание:

Значения текущей коллекции будут перезаписаны, если переданные ключи уже существуют.

Список параметров

values

Объект класса traversable или array.

Возвращаемые значения

Возвращает результат добавления всех ключей переданного объекта класса traversable или массива ассоциированых с соответствующими значениями в текущую коллекцию

Замечание:

Текущий экземпляр коллекции останется нетронутым.

Примеры

Пример #1 Пример использования Ds\Map::merge()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->merge(["a" => 10, "e" => 50]));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 10
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [3] => Ds\Pair Object
        (
            [key] => e
            [value] => 50
        )

)


Возвращает последовательность, содержащую все пары коллекции пар

  • « Ds\Map::merge
  • Ds\Map::put »
  • PHP Manual
  • Коллекция пар
  • Возвращает последовательность, содержащую все пары коллекции пар

Ds\Map::pairs

(PECL ds >= 1.0.0)

Ds\Map::pairs — Возвращает последовательность, содержащую все пары коллекции пар

Описание

public Ds\Sequence Ds\Map::pairs ( void )

Возвращает Ds\Sequence, содержащую все пары коллекции пар.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ds\Sequence, содержащая все пары исходной коллекции.

Примеры

Пример #1 Пример использования Ds\Map::pairs()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->pairs());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#8 (3) {
  [0]=>
  object(Ds\Pair)#5 (2) {
    ["key"]=>
    string(1) "a"
    ["value"]=>
    int(1)
  }
  [1]=>
  object(Ds\Pair)#6 (2) {
    ["key"]=>
    string(1) "b"
    ["value"]=>
    int(2)
  }
  [2]=>
  object(Ds\Pair)#7 (2) {
    ["key"]=>
    string(1) "c"
    ["value"]=>
    int(3)
  }
}
p


Установка значения по заданному ключу

  • « Ds\Map::pairs
  • Ds\Map::putAll »
  • PHP Manual
  • Коллекция пар
  • Установка значения по заданному ключу

Ds\Map::put

(PECL ds >= 1.0.0)

Ds\Map::put — Установка значения по заданному ключу

Описание

public void Ds\Map::put ( mixed $key , mixed $value )

Ассоциирует ключ 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);

// Использование объектов с одинаковыми хешами несколько раз будет каждый раз
// перезаписывать значение
$map->put(new \HashableObject(1), 5);
$map->put(new \HashableObject(1), 6);
$map->put(new \HashableObject(2), 7);
$map->put(new \HashableObject(2), 8);

var_dump($map);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#1 (5) {
  [0]=>
  object(Ds\Pair)#7 (2) {
    ["key"]=>
    object(ArrayIterator)#2 (1) {
      ["storage":"ArrayIterator":private]=>
      array(0) {
      }
    }
    ["value"]=>
    int(2)
  }
  [1]=>
  object(Ds\Pair)#8 (2) {
    ["key"]=>
    object(stdClass)#3 (0) {
    }
    ["value"]=>
    int(3)
  }
  [2]=>
  object(Ds\Pair)#9 (2) {
    ["key"]=>
    object(stdClass)#4 (0) {
    }
    ["value"]=>
    int(4)
  }
  [3]=>
  object(Ds\Pair)#10 (2) {
    ["key"]=>
    object(HashableObject)#5 (1) {
      ["value":"HashableObject":private]=>
      int(1)
    }
    ["value"]=>
    int(6)
  }
  [4]=>
  object(Ds\Pair)#11 (2) {
    ["key"]=>
    object(HashableObject)#6 (1) {
      ["value":"HashableObject":private]=>
      int(2)
    }
    ["value"]=>
    int(8)
  }
}


Вносит в коллекцию все пары ключ/значение из объекта класса traversable или массива

  • « Ds\Map::put
  • Ds\Map::reduce »
  • PHP Manual
  • Коллекция пар
  • Вносит в коллекцию все пары ключ/значение из объекта класса traversable или массива

Ds\Map::putAll

(PECL ds >= 1.0.2)

Ds\Map::putAll — Вносит в коллекцию все пары ключ/значение из объекта класса traversable или массива

Описание

public void Ds\Map::putAll ( mixed $pairs )

Вносит в коллекцию все пары ключ/значение pairs из объекта класса traversable или array.

Замечание:

Поддерживаются значения типа object. Если объект реализует интерфейс Ds\Hashable, проверка производится путем вызова метода объекта equals. Если объект не реализует интерфейс Ds\Hashable, объекты должны ссылаться на один и тот-же экземпляр класса.

Список параметров

pairs

Объект класса traversable или array.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::putAll()

<?php
$map = new \Ds\Map();

$map->putAll([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

)


Схлопывает коллекцию до одного значения используя callback-функцию

  • « Ds\Map::putAll
  • Ds\Map::remove »
  • PHP Manual
  • Коллекция пар
  • Схлопывает коллекцию до одного значения используя callback-функцию

Ds\Map::reduce

(PECL ds >= 1.0.0)

Ds\Map::reduce — Схлопывает коллекцию до одного значения используя callback-функцию

Описание

public mixed Ds\Map::reduce ( callable $callback [, mixed $initial ] )

Схлопывает коллекцию до одного значения используя callback-функцию.

Список параметров

callback
mixed callback ( mixed $carry , mixed $key , mixed $value )
carry

Значение вохвращенное предыдущим запуском функции, или initial, если функция запущена первый раз.

key

The key of the current iteration.

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));

// Iterations:
//
// $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;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Результатом выполнения данного примера будет что-то подобное:

int(21)


Удаляет и возвращает значение по ключу

  • « Ds\Map::reduce
  • Ds\Map::reverse »
  • PHP Manual
  • Коллекция пар
  • Удаляет и возвращает значение по ключу

Ds\Map::remove

(PECL ds >= 1.0.0)

Ds\Map::remove — Удаляет и возвращает значение по ключу

Описание

public mixed Ds\Map::remove ( mixed $key [, mixed $default ] )

Удаляет и возвращает значение по ключу, либо, опционально, возвращает значение по умолчанию, если ключ не найден.

Замечание:

Поддерживаются значения типа 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 (default used)
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)
int(10)


Переворачивает текущую коллекцию

  • « Ds\Map::remove
  • Ds\Map::reversed »
  • PHP Manual
  • Коллекция пар
  • Переворачивает текущую коллекцию

Ds\Map::reverse

(PECL ds >= 1.0.0)

Ds\Map::reverse — Переворачивает текущую коллекцию

Описание

public void 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::reversed

(PECL ds >= 1.0.0)

Ds\Map::reversed — Возвращает перевернутую копию коллекции

Описание

public Ds\Map Ds\Map::reversed ( void )

Возвращает перевернутую копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Перевернутая копия коллекции.

Замечание:

Текущая коллекция не изменится.

Примеры

Пример #1 Пример использования Ds\Map::reversed()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

print_r($map->reversed());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

)


Возвращает пару по индексу позиции

  • « Ds\Map::reversed
  • Ds\Map::slice »
  • PHP Manual
  • Коллекция пар
  • Возвращает пару по индексу позиции

Ds\Map::skip

(PECL ds >= 1.0.0)

Ds\Map::skip — Возвращает пару по индексу позиции

Описание

public Ds\Pair Ds\Map::skip ( int $position )

Возвращает пару по индексу позиции position, первая пара имеет индекс 0.

Список параметров

position

Индекс позиции.

Возвращаемые значения

Возвращает Ds\Pair из заданой позиции position.

Ошибки

Бросае исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Map::skip()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

var_dump($map->skip(1));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Pair)#2 (2) {
  ["key"]=>
  string(1) "b"
  ["value"]=>
  int(2)
}


Возвращает под-коллекцию из заданного диапазона

  • « Ds\Map::skip
  • Ds\Map::sort »
  • PHP Manual
  • Коллекция пар
  • Возвращает под-коллекцию из заданного диапазона

Ds\Map::slice

(PECL ds >= 1.0.0)

Ds\Map::slice — Возвращает под-коллекцию из заданного диапазона

Описание

public Ds\Map Ds\Map::slice ( int $index [, int $length ] )

Возвращает под-коллекцию из диапазона заданного начальным индексом index и длиной length.

Список параметров

index

Индекс, задающий начало диапазона.

Если положительный, то будет отсчитываться от начала коллекции. Если отрицательный, то от конца.

length

Положительное значение определяет, сколько элементов бцдет взято. Если количество элементов коллекции меньше заданного значения, вернется столько элементов, сколько есть. Отрицательное значение задаст индекс, отсчитанный от конца коллекции, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы коллекции от заданного индекса до конца коллекции.

Возвращаемые значения

Под-коллекция из заданного диапазона.

Примеры

Пример #1 Пример использования Ds\Map::slice()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3, "d" => 4, "e" => 5]);

// Slice from 2 onwards
print_r($map->slice(2)->toArray());

// Slice from 1, for a length of 3
print_r($map->slice(1, 3)->toArray());

// Slice from 1 onwards
print_r($map->slice(1)->toArray());

// Slice from 2 from the end onwards
print_r($map->slice(-2)->toArray());

// Slice from 1 to 1 from the end
print_r($map->slice(1, -1)->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [c] => 3
    [d] => 4
    [e] => 5
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
)
Array
(
    [d] => 4
    [e] => 5
)
Array
(
    [b] => 2
    [c] => 3
    [d] => 4
)


Сортирует коллекцию по значениям

  • « Ds\Map::slice
  • Ds\Map::sorted »
  • PHP Manual
  • Коллекция пар
  • Сортирует коллекцию по значениям

Ds\Map::sort

(PECL ds >= 1.0.0)

Ds\Map::sort — Сортирует коллекцию по значениям

Описание

public void Ds\Map::sort ([ callable $comparator ] )

Сортирует коллекцию по значениям, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Map::sort()

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);
$map->sort();

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

)

Пример #2 Пример использования Ds\Map::sort() с callback-функцией сравнения

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

$map->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($map);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

)


Возвращает отсортированную по значению копию коллекции

  • « Ds\Map::sort
  • Ds\Map::sum »
  • PHP Manual
  • Коллекция пар
  • Возвращает отсортированную по значению копию коллекции

Ds\Map::sorted

(PECL ds >= 1.0.0)

Ds\Map::sorted — Возвращает отсортированную по значению копию коллекции

Описание

public Ds\Map Ds\Map::sorted ([ callable $comparator ] )

Возвращает отсортированную по значению копию коллекции, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает отсортированную по значению копию коллекции.

Примеры

Пример #1 Пример использования Ds\Map::sort()

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

print_r($map->sorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

)

Пример #2 Пример использования Ds\Map::sort() с callback-функцией сравнения

<?php
$map = new \Ds\Map(["a" => 2, "b" => 3, "c" => 1]);

// Reverse
$sorted = $map->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [1] => Ds\Pair Object
        (
            [key] => a
            [value] => 2
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 1
        )

)


Возвращает сумму всех значений коллекции

  • « Ds\Map::sorted
  • Ds\Map::toArray »
  • PHP Manual
  • Коллекция пар
  • Возвращает сумму всех значений коллекции

Ds\Map::sum

(Информация о версии неизвестна, возможно, только в SVN)

Ds\Map::sum — Возвращает сумму всех значений коллекции

Описание

public number Ds\Map::sum ( void )

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов float или int, в зависимости от значений коллекции.

Примеры

Пример #1 Пример использования Ds\Map::sum() с целочисленными значениями

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

int(6)

Пример #2 Пример использования Ds\Map::sum() со значениями типа float

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2.5, "c" => 3]);
var_dump($map->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

float(6.5)


Преобразует коллекцию в array

  • « Ds\Map::sum
  • Ds\Map::union »
  • PHP Manual
  • Коллекция пар
  • Преобразует коллекцию в array

Ds\Map::toArray

(PECL ds >= 1.0.0)

Ds\Map::toArray — Преобразует коллекцию в array

Описание

public array Ds\Map::toArray ( void )

Преобразует коллекцию в array.

Предостережение

Коллекции пар, содержащие нескалярные ключи не могут быть сконвертированы в array.

Предостережение

array будет считать все числовые ключи за целочисленные, т.е. оба ключа "1" и 1 будут восприняты как 1 и только один из элементов попадет в результирующий массив.

Замечание:

Приведение к типу array пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

array, содержащий все элементы коллекции с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\Map::toArray()

<?php
$map = new \Ds\Map([
    "a" => 1,
    "b" => 2,
    "c" => 3,
]);

var_dump($map->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  ["a"]=>
  int(1)
  ["b"]=>
  int(2)
  ["c"]=>
  int(3)
}


Создает новую коллекцию пар из элементов двух коллекций

  • « Ds\Map::toArray
  • Ds\Map::values »
  • PHP Manual
  • Коллекция пар
  • Создает новую коллекцию пар из элементов двух коллекций

Ds\Map::union

(PECL ds >= 1.0.0)

Ds\Map::union — Создает новую коллекцию пар из элементов двух коллекций

Описание

public Ds\Map Ds\Map::union ( Ds\Map $map )

Создает новую коллекцию пар, содержащую пары текущей и переданной в map коллекций.

A ? B = {x: x ? A ? x ? B}

Замечание:

В случае совпадения ключей, значения элементов будут браться из переданной коллекции.

Список параметров

map

Новая коллекция, для объединения с текущей.

Возвращаемые значения

Новая коллекция пар, являющийся объединением текущей и переданной в map.

Также смотри

  • » Объединение в Wikipedia

Примеры

Пример #1 Пример использования Ds\Map::union()

<?php
$a = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
$b = new \Ds\Map(["b" => 3, "c" => 4, "d" => 5]);

print_r($a->union($b));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Map Object
(
    [0] => Ds\Pair Object
        (
            [key] => a
            [value] => 1
        )

    [1] => Ds\Pair Object
        (
            [key] => b
            [value] => 3
        )

    [2] => Ds\Pair Object
        (
            [key] => c
            [value] => 4
        )

    [3] => Ds\Pair Object
        (
            [key] => d
            [value] => 5
        )

)


Возвращает последовательность значений коллекции пар

  • « Ds\Map::union
  • Ds\Map::xor »
  • PHP Manual
  • Коллекция пар
  • Возвращает последовательность значений коллекции пар

Ds\Map::values

(PECL ds >= 1.0.0)

Ds\Map::values — Возвращает последовательность значений коллекции пар

Описание

public Ds\Sequence Ds\Map::values ( void )

Возвращает последовательность значений коллекции пар, сохраняя их порядок.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последовательность (Ds\Sequence), содержащая все значения коллекции.

Примеры

Пример #1 Пример использования Ds\Map::values()

<?php
$map = new \Ds\Map(["a" => 1, "b" => 2, "c" => 3]);
var_dump($map->values());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Map)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Создает новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно

  • « Ds\Map::values
  • Пара »
  • PHP Manual
  • Коллекция пар
  • Создает новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно

Ds\Map::xor

(PECL ds >= 1.0.0)

Ds\Map::xor — Создает новую коллекцию пар из элементов, которые есть в одной из коллекций, но не в обеих одновременно

Описание

public Ds\Map Ds\Map::xor ( Ds\Map $map )

Создает новую коллекцию пар из элементов, ключи которых есть в текущей коллекции, либо в переданной в map, но не в обеих одновременно.

A ? B = {x : x ? (A \ B) ? (B \ A)}

Список параметров

map

Вторая коллекция пар.

Возвращаемые значения

Новая коллекция пар из элементов, ключи которых есть в текущей коллекции, либо в переданной в map, но не в обеих одновременно.

Также смотри

  • » Симметрическая разность в Wikipedia

Примеры

Пример #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

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Пары используются классом Ds\Map, для хранения пар ключ/значение.

Обзор классов

Ds\Pair implements JsonSerializable {
/* Методы */
public __construct ([ mixed $key [, mixed $value ]] )
}

Содержание

  • Ds\Pair::clear — Удаление всех значений
  • Ds\Pair::__construct — Создание экземпляра класса
  • Ds\Pair::copy — Возвращает поверхностную копию пары
  • Ds\Pair::isEmpty — Проверяет, является ли пара пустой
  • Ds\Pair::jsonSerialize — Возвращает пару в представлении JSON
  • Ds\Pair::toArray — Преобразует пару в array


Удаление всех значений

  • « Пара
  • Ds\Pair::__construct »
  • PHP Manual
  • Пара
  • Удаление всех значений

Ds\Pair::clear

(Информация о версии неизвестна, возможно, только в SVN)

Ds\Pair::clear — Удаление всех значений

Описание

public void 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::__construct

(PECL ds >= 1.0.0)

Ds\Pair::__construct — Создание экземпляра класса

Описание

public Ds\Pair::__construct ([ mixed $key [, mixed $value ]] )

Создание экземпляра класса с заданными ключем key и значение value.

Список параметров

key

Ключ.

value

Значение.


Возвращает поверхностную копию пары

  • « Ds\Pair::__construct
  • Ds\Pair::isEmpty »
  • PHP Manual
  • Пара
  • Возвращает поверхностную копию пары

Ds\Pair::copy

(Информация о версии неизвестна, возможно, только в SVN)

Ds\Pair::copy — Возвращает поверхностную копию пары

Описание

public Ds\Pair Ds\Pair::copy ( void )

Возвращает поверхностную копию пары.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

.

Примеры

Пример #1 Пример использования Ds\Pair::copy()

<?php
$a = new \Ds\Pair("a", 1);
$b = $a->copy();

$a->key = "x";

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Pair Object
(
    [key] => x
    [value] => 1
)
Ds\Pair Object
(
    [key] => a
    [value] => 1
)


Проверяет, является ли пара пустой

  • « Ds\Pair::copy
  • Ds\Pair::jsonSerialize »
  • PHP Manual
  • Пара
  • Проверяет, является ли пара пустой

Ds\Pair::isEmpty

(Информация о версии неизвестна, возможно, только в SVN)

Ds\Pair::isEmpty — Проверяет, является ли пара пустой

Описание

public bool Ds\Pair::isEmpty ( void )

Определяет, является ли пара пустой.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если пара пустая и FALSE в обратном случае.

Примеры

Пример #1 Пример использования Ds\Pair::isEmpty()

<?php
$a = new \Ds\Pair("a", 1);
$b = new \Ds\Pair();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Возвращает пару в представлении JSON

  • « Ds\Pair::isEmpty
  • Ds\Pair::toArray »
  • PHP Manual
  • Пара
  • Возвращает пару в представлении JSON

Ds\Pair::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Pair::jsonSerialize — Возвращает пару в представлении JSON

Смотри функцию JsonSerializable::jsonSerialize()

Замечание:

Вы не должны вызывать этот метод напрямую.


Преобразует пару в array

  • « Ds\Pair::jsonSerialize
  • Набор »
  • PHP Manual
  • Пара
  • Преобразует пару в array

Ds\Pair::toArray

(PECL ds >= 1.0.0)

Ds\Pair::toArray — Преобразует пару в array

Описание

public array Ds\Pair::toArray ( void )

Преобразует пару в 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

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Set - это последовательность уникальных значений. Реализация использует ту же хеш-таблицу, что и Ds\Map, в которой значения используются в качестве ключей и связанные значения игнорируются.

Сильный стороны

  • Значения могут быть любого типа, включая объекты.
  • Поддерживает синтаксис массива (квадратные скобки).
  • Сохраняется порядок вставки.
  • Автоматически высвобождает память, когда количество элементов уменхается.
  • add(),
remove() и
contains() имеют сложность O(1).

Слабые стороны

  • Не поддерживает
                push(),
                pop(),
                insert(),
                shift() и
                unshift().
  • get() имеет сложность O(n), если есть удаленные значения в буфере, до значения, к которому происходит доступ. Иначе O(1).

Обзор классов

Ds\Set implements Ds\Collection {
/* Константы */
const int MIN_CAPACITY = 16 ;
/* Методы */
public void add ([ mixed $...values ] )
public void allocate ( int $capacity )
public int capacity ( void )
public void clear ( void )
public bool contains ([ mixed $...values ] )
public Ds\Set copy ( void )
public Ds\Set diff ( Ds\Set $set )
public Ds\Set filter ([ callable $callback ] )
public void first ( void )
public mixed get ( int $index )
public Ds\Set intersect ( Ds\Set $set )
public bool isEmpty ( void )
public string join ([ string $glue ] )
public void last ( void )
public Ds\Set merge ( mixed $values )
public mixed reduce ( callable $callback [, mixed $initial ] )
public void remove ([ mixed $...values ] )
public void reverse ( void )
public Ds\Set reversed ( void )
public Ds\Set slice ( int $index [, int $length ] )
public void sort ([ callable $comparator ] )
public Ds\Set sorted ([ callable $comparator ] )
public number sum ( void )
public array toArray ( void )
public Ds\Set union ( Ds\Set $set )
public Ds\Set xor ( Ds\Set $set )
}

Предопределенные константы

Ds\Set::MIN_CAPACITY

Содержание

  • Ds\Set::add — Добавляет значения в набор
  • Ds\Set::allocate — Выделение памяти под указанную вместимость
  • Ds\Set::capacity — Возвращает текущую вместимость
  • Ds\Set::clear — Удаляет все значения из коллекции
  • Ds\Set::__construct — Создает новый экземпляр класса
  • Ds\Set::contains — Проверяет, содержится ли в коллекции заданные значения
  • Ds\Set::copy — Возвращает поверхностную копию коллекции
  • Ds\Set::count — Возвращает количество элементов коллекции
  • Ds\Set::diff — Создает новый набор с элементами, которых нет в другом наборе
  • Ds\Set::filter — Создает новый список из элементов, выбранных с помощью заданной callback-функции
  • Ds\Set::first — Возвращает первый элемент коллекции
  • Ds\Set::get — Возвращает значение по индексу
  • Ds\Set::intersect — Создает новый набор, созданный пересечением с другим набором
  • Ds\Set::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Set::join — Склеивает все значения в строку
  • Ds\Set::jsonSerialize — Возвращает коллекцию в JSON представлении
  • Ds\Set::last — Возвращает последнее значение коллекции
  • Ds\Set::merge — Возвращает результат добавления всех заданных значений в коллекцию
  • Ds\Set::reduce — Схлопывает коллекцию до одного значения используя callback-функцию
  • Ds\Set::remove — Удаляет все заданные значения из набора
  • Ds\Set::reverse — Переворачивает текущую коллекцию
  • Ds\Set::reversed — Возвращает перевернутую копию коллекции
  • Ds\Set::slice — Возвращает под-коллекцию из заданного диапазона
  • Ds\Set::sort — Сортирует коллекцию
  • Ds\Set::sorted — Возвращает отсортированную по значению копию коллекции
  • Ds\Set::sum — Возвращает сумму всех значений коллекции
  • Ds\Set::toArray — Преобразует коллекцию в array
  • Ds\Set::union — Создает новый набор из элементов текущего и переданного наборов
  • Ds\Set::xor — Создает новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно


Добавляет значения в набор

  • « Набор
  • Ds\Set::allocate »
  • PHP Manual
  • Набор
  • Добавляет значения в набор

Ds\Set::add

(PECL ds >= 1.0.0)

Ds\Set::add — Добавляет значения в набор

Описание

public void Ds\Set::add ([ mixed $...values ] )

Добавляет все заданные значения в коллекцию, если они ранее небыли добавлены.

Замечание:

Поддерживаются значения типа object. Если объект реализует интерфейс Ds\Hashable, проверка производится путем вызова метода объекта equals. Если объект не реализует интерфейс Ds\Hashable, объекты должны ссылаться на один и тот-же экземпляр класса.

Предостережение

Все сравнения строгие, по типу и значению.

Список параметров

values

Добавляемые значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Set::add() со скалярными значениями

<?php
$set = new \Ds\Set();

$set->add(1);
$set->add(1);
$set->add(2);
$set->add(3);

// Производится строгое сравнение, поэтому "1" не приведется к int(1)
$set->add("1");
$set->add(true);

var_dump($set);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#1 (5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  string(1) "1"
  [4]=>
  bool(true)
}

Пример #2 Пример использования Ds\Set::add() с объектами

<?php
class HashableObject implements \Ds\Hashable
{
    /**
     * Произвольное значение для использования в качестве значения хэш-функции.
     * Не определяет равенство.
     */
    private $value;

    public function __construct($value)
    {
        $this->value = $value;
    }

    public function hash()
    {
        return $this->value;
    }

    public function equals($obj): bool
    {
        return $this->value === $obj->value;
    }
}

$set = new \Ds\Set();

$obj = new \ArrayIterator([]);

// При добавлении одного и того же экземпляря несколько раз, добавится только первый.
$set->add($obj);
$set->add($obj);

// При добавлении нескольких экземпляров одного и того же объекта, они все добавятся.
$set->add(new \stdClass());
$set->add(new \stdClass());

// При добавлении объектов с одинаковым хешем несколько раз, добавится только первый.
$set->add(new \HashableObject(1));
$set->add(new \HashableObject(1));
$set->add(new \HashableObject(2));
$set->add(new \HashableObject(2));

var_dump($set);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#1 (5) {
  [0]=>
  object(ArrayIterator)#2 (1) {
    ["storage":"ArrayIterator":private]=>
    array(0) {
    }
  }
  [1]=>
  object(stdClass)#3 (0) {
  }
  [2]=>
  object(stdClass)#4 (0) {
  }
  [3]=>
  object(HashableObject)#5 (1) {
    ["value":"HashableObject":private]=>
    int(1)
  }
  [4]=>
  object(HashableObject)#6 (1) {
    ["value":"HashableObject":private]=>
    int(2)
  }
}


Выделение памяти под указанную вместимость

  • « Ds\Set::add
  • Ds\Set::capacity »
  • PHP Manual
  • Набор
  • Выделение памяти под указанную вместимость

Ds\Set::allocate

(PECL ds >= 1.0.0)

Ds\Set::allocate — Выделение памяти под указанную вместимость

Описание

public void Ds\Set::allocate ( int $capacity )

Выделение памяти под указанную вместимость

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то она не изменится.

Замечание:

Значение вместимости округляется вверх до ближайшей степени двойки (т.е 8, 16, 32, 64, 128 и т.д.)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Set::allocate()

<?php
$set = new \Ds\Set();
var_dump($set->capacity());

$set->allocate(100);
var_dump($set->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(16)
int(128)


Возвращает текущую вместимость

  • « Ds\Set::allocate
  • Ds\Set::clear »
  • PHP Manual
  • Набор
  • Возвращает текущую вместимость

Ds\Set::capacity

(PECL ds >= 1.0.0)

Ds\Set::capacity — Возвращает текущую вместимость

Описание

public int Ds\Set::capacity ( void )

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Set::capacity()

<?php
$set = new \Ds\Set();
var_dump($set->capacity());

$set->push(...range(1, 50));
var_dump($set->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(16)
int(64)


Удаляет все значения из коллекции

  • « Ds\Set::capacity
  • Ds\Set::__construct »
  • PHP Manual
  • Набор
  • Удаляет все значения из коллекции

Ds\Set::clear

(PECL ds >= 1.0.0)

Ds\Set::clear — Удаляет все значения из коллекции

Описание

public void 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::__construct

(PECL ds >= 1.0.0)

Ds\Set::__construct — Создает новый экземпляр класса

Описание

public Ds\Set::__construct ([ mixed $...values ] )

Создает новый экземпляр класса, используя либо объект реализующий traversable, либо массив, переданные в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс "traversable" или массив.

Примеры

Пример #1 Пример использования Ds\Set::__construct()

<?php
$set = new \Ds\Set();
var_dump($set);

$set = new \Ds\Set([1, 2, 3]);
var_dump($set);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#1 (0) {
}
object(Ds\Set)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Проверяет, содержится ли в коллекции заданные значения

  • « Ds\Set::__construct
  • Ds\Set::copy »
  • PHP Manual
  • Набор
  • Проверяет, содержится ли в коллекции заданные значения

Ds\Set::contains

(PECL ds >= 1.0.0)

Ds\Set::contains — Проверяет, содержится ли в коллекции заданные значения

Описание

public bool Ds\Set::contains ([ mixed $...values ] )

Проверяет, содержится ли в коллекции заданные значения.

Замечание:

Поддерживаются значения типа object. Если объект реализует интерфейс Ds\Hashable, проверка производится путем вызова метода объекта equals. Если объект не реализует интерфейс Ds\Hashable, объекты должны ссылаться на один и тот-же экземпляр класса.

Предостережение

Все сравнения строгие, по типу и значению.

Список параметров

values

Значения для проверки.

Возвращаемые значения

Возвращает FALSE, если хотя бы одно значение из values не найдено в коллекции и TRUE в противном случае.

Примеры

Пример #1 Пример использования Ds\Set::contains()

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->contains(1));                // true
var_dump($set->contains(1, 2));             // true
var_dump($set->contains(...[1, 2]));        // true

var_dump($set->contains("1"));              // false
var_dump($set->contains(...[1, 2, 3, 4]));  // false

var_dump($set->contains(...[]));            // true
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)


Возвращает поверхностную копию коллекции

  • « Ds\Set::contains
  • Ds\Set::count »
  • PHP Manual
  • Набор
  • Возвращает поверхностную копию коллекции

Ds\Set::copy

(PECL ds >= 1.0.0)

Ds\Set::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Set Ds\Set::copy ( void )

Возвращает поверхностную копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия коллекции.

Примеры

Пример #1 Пример использования Ds\Set::copy()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = $a->copy();

// Изменение копии не отражается на оригинале
$b->add(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Возвращает количество элементов коллекции

  • « Ds\Set::copy
  • Ds\Set::diff »
  • PHP Manual
  • Набор
  • Возвращает количество элементов коллекции

Ds\Set::count

(PECL ds >= 1.0.0)

Ds\Set::count — Возвращает количество элементов коллекции

Смотри описание функции Countable::count()


Создает новый набор с элементами, которых нет в другом наборе

  • « Ds\Set::count
  • Ds\Set::filter »
  • PHP Manual
  • Набор
  • Создает новый набор с элементами, которых нет в другом наборе

Ds\Set::diff

(PECL ds >= 1.0.0)

Ds\Set::diff — Создает новый набор с элементами, которых нет в другом наборе

Описание

public Ds\Set Ds\Set::diff ( Ds\Set $set )

Создает новый набор с элементами, которых нет в другом наборе.

A \ B = {x ? A | x ? B}

Список параметров

set

Набор, содержащий элементы, которые надо исключить из нового набора.

Возвращаемые значения

Новый набор, содержащий все элементы, которые есть в текущем наборе и отсутствуют в наборе переданнов в set.

Смотри также

  • » Расзость массивов на Wikipedia

Примеры

Пример #1 Пример использованияDs\Set::diff()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->diff($b));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#3 (2) {
  [0]=>
  int(1)
  [1]=>
  int(2)
}


Создает новый список из элементов, выбранных с помощью заданной callback-функции

  • « Ds\Set::diff
  • Ds\Set::first »
  • PHP Manual
  • Набор
  • Создает новый список из элементов, выбранных с помощью заданной callback-функции

Ds\Set::filter

(PECL ds >= 1.0.0)

Ds\Set::filter — Создает новый список из элементов, выбранных с помощью заданной callback-функции

Описание

public Ds\Set Ds\Set::filter ([ callable $callback ] )

Создает новый набор из элементов, выбранных с помощью заданной callback-функции.

Список параметров

callback

bool callback ( mixed $value )

Опциональный аргумент типа callable, который возвращает TRUE если значение должно быть включено и FALSE, если нет.

Если callback-функция не задана, то будут включены только элементы, которые приводятся к логическому значению TRUE (мотри приведение к boolean).

Возвращаемые значения

Новый набор, содержащий значения, для которых функция callback вернула TRUE, или все елементы, которые при приведении к логическому типу становятся TRUE, если параметр callback не задан.

Примеры

Пример #1 Пример Ds\Set::filter() с использованием callback-функции

<?php
$set = new \Ds\Set([1, 2, 3, 4, 5]);

var_dump($set->filter(function($value) {
    return $value % 2 == 0;
}));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#3 (2) {
  [0]=>
  int(2)
  [1]=>
  int(4)
}

Пример #2 Пример Ds\Set::filter() без callback-функции

<?php
$set = new \Ds\Set([0, 1, 'a', true, false]);

var_dump($set->filter());
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  string(1) "a"
  [2]=>
  bool(true)
}


Возвращает первый элемент коллекции

  • « Ds\Set::filter
  • Ds\Set::get »
  • PHP Manual
  • Набор
  • Возвращает первый элемент коллекции

Ds\Set::first

(PECL ds >= 1.0.0)

Ds\Set::first — Возвращает первый элемент коллекции

Описание

public void Ds\Set::first ( void )

Возвращает первый элемент коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Первый элемент коллекции.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Set::first()

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->first());
?>

Результатом выполнения данного примера будет что-то подобное:

int(1)


Возвращает значение по индексу

  • « Ds\Set::first
  • Ds\Set::intersect »
  • PHP Manual
  • Набор
  • Возвращает значение по индексу

Ds\Set::get

(PECL ds >= 1.0.0)

Ds\Set::get — Возвращает значение по индексу

Описание

public mixed Ds\Set::get ( int $index )

Возвращает значение по заданному индексу.

Список параметров

index

Индекс. Первый элемент имеет индекс 0.

Возвращаемые значения

Значение по заданному индексу.

Ошибки

Бросает исключение OutOfRangeException, если индекс некорректен.

Примеры

Пример #1 Пример использования Ds\Set::get()

<?php
$set = new \Ds\Set(["a", "b", "c"]);

var_dump($set->get(0));
var_dump($set->get(1));
var_dump($set->get(2));
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"

Пример #2 Пример использования Ds\Set::get() с синтаксисом массива

<?php
$set = new \Ds\Set(["a", "b", "c"]);

var_dump($set[0]);
var_dump($set[1]);
var_dump($set[2]);
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Создает новый набор, созданный пересечением с другим набором

  • « Ds\Set::get
  • Ds\Set::isEmpty »
  • PHP Manual
  • Набор
  • Создает новый набор, созданный пересечением с другим набором

Ds\Set::intersect

(PECL ds >= 1.0.0)

Ds\Set::intersect — Создает новый набор, созданный пересечением с другим набором

Описание

public Ds\Set Ds\Set::intersect ( Ds\Set $set )

Создает новый набор, содержащий значения, которые присутствуют в текущем наборе и наборе, переданном параметром set.

A ? B = {x : x ? A ? x ? B}

Список параметров

set

Новый набор типа Set.

Возвращаемые значения

Пересечение текущего набора и переданного в set.

Также смотрите

  • » Пересечение на Wikipedia

Примеры

Пример #1 Пример использования Ds\Set::intersect()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->intersect($b));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#3 (1) {
  [0]=>
  int(3)
}


Проверяет, пуста ли коллекция

  • « Ds\Set::intersect
  • Ds\Set::join »
  • PHP Manual
  • Набор
  • Проверяет, пуста ли коллекция

Ds\Set::isEmpty

(PECL ds >= 1.0.0)

Ds\Set::isEmpty — Проверяет, пуста ли коллекция

Описание

public bool Ds\Set::isEmpty ( void )

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если коллекция пуста, и FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Set::isEmpty()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Склеивает все значения в строку

  • « Ds\Set::isEmpty
  • Ds\Set::jsonSerialize »
  • PHP Manual
  • Набор
  • Склеивает все значения в строку

Ds\Set::join

(PECL ds >= 1.0.0)

Ds\Set::join — Склеивает все значения в строку

Описание

public string Ds\Set::join ([ string $glue ] )

Склеивает все значения в строку, опционально используя заданный разделитель.

Список параметров

glue

Необязательный параметр, задающий разделитель между значениями.

Возвращаемые значения

Все значения коллекции склееные в одну строку.

Примеры

Пример #1 Пример использования Ds\Set::join() с разделителем

<?php
$set = new \Ds\Set(["a", "b", "c", 1, 2, 3]);

var_dump($set->join("|"));
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "a|b|c|1|2|3"

Пример #2 Пример использования Ds\Set::join() без разделителя

<?php
$set = new \Ds\Set(["a", "b", "c", 1, 2, 3]);

var_dump($set->join());
?>

Результатом выполнения данного примера будет что-то подобное:

string(11) "abc123"


Возвращает коллекцию в JSON представлении

  • « Ds\Set::join
  • Ds\Set::last »
  • PHP Manual
  • Набор
  • Возвращает коллекцию в JSON представлении

Ds\Set::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Set::jsonSerialize — Возвращает коллекцию в JSON представлении

Смотри JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает последнее значение коллекции

  • « Ds\Set::jsonSerialize
  • Ds\Set::merge »
  • PHP Manual
  • Набор
  • Возвращает последнее значение коллекции

Ds\Set::last

(PECL ds >= 1.0.0)

Ds\Set::last — Возвращает последнее значение коллекции

Описание

public void Ds\Set::last ( void )

Возвращает последнее значение коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний элемент коллекции.

Ошибки

Бросает исключение UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Set::last()

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->last());
?>

Результатом выполнения данного примера будет что-то подобное:

int(3)


Возвращает результат добавления всех заданных значений в коллекцию

  • « Ds\Set::last
  • Ds\Set::reduce »
  • PHP Manual
  • Набор
  • Возвращает результат добавления всех заданных значений в коллекцию

Ds\Set::merge

(PECL ds >= 1.0.3)

Ds\Set::merge — Возвращает результат добавления всех заданных значений в коллекцию

Описание

public Ds\Set Ds\Set::merge ( mixed $values )

Возвращает результат добавления всех заданных значений в коллекцию.

Список параметров

values

Объект класса traversable или array.

Возвращаемые значения

Результат добавления всех переданных значений в коллекцию. Фактически делается копия коллекции, в которую добавляются значения.

Замечание:

Текущий экземпляр коллекции останется нетронутым.

Примеры

Пример #1 Пример использования Ds\Set::merge()

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->merge([3, 4, 5]));
var_dump($set);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#2 (6) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}
object(Ds\Set)#1 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Схлопывает коллекцию до одного значения используя callback-функцию

  • « Ds\Set::merge
  • Ds\Set::remove »
  • PHP Manual
  • Набор
  • Схлопывает коллекцию до одного значения используя callback-функцию

Ds\Set::reduce

(PECL ds >= 1.0.0)

Ds\Set::reduce — Схлопывает коллекцию до одного значения используя callback-функцию

Описание

public mixed Ds\Set::reduce ( callable $callback [, mixed $initial ] )

Схлопывает коллекцию до одного значения используя callback-функцию.

Список параметров

callback
mixed callback ( mixed $carry , mixed $value )
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));

// Iterations:
//
// $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;
}));

// Iterations:
//
// $carry = $initial = null
//
// $carry = $carry + 1 + 5 =  6
// $carry = $carry + 2 + 5 = 13
// $carry = $carry + 3 + 5 = 21
?>

Результатом выполнения данного примера будет что-то подобное:

int(21)


Удаляет все заданные значения из набора

  • « Ds\Set::reduce
  • Ds\Set::reverse »
  • PHP Manual
  • Набор
  • Удаляет все заданные значения из набора

Ds\Set::remove

(PECL ds >= 1.0.0)

Ds\Set::remove — Удаляет все заданные значения из набора

Описание

public void Ds\Set::remove ([ mixed $...values ] )

Удаляет все заданные значения values из набора. Значения, которые отсутствуют в наборе, ьудут проигнорированы.

Список параметров

values

Значения для удаления.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Set::remove()

<?php
$set = new \Ds\Set([1, 2, 3, 4, 5]);

$set->remove(1);            // Remove 1
$set->remove(1, 2);         // Can't find 1, but remove 2
$set->remove(...[3, 4]);    // Remove 3 and 4

var_dump($set);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#1 (1) {
  [0]=>
  int(5)
}


Переворачивает текущую коллекцию

  • « Ds\Set::remove
  • Ds\Set::reversed »
  • PHP Manual
  • Набор
  • Переворачивает текущую коллекцию

Ds\Set::reverse

(PECL ds >= 1.0.0)

Ds\Set::reverse — Переворачивает текущую коллекцию

Описание

public void 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::reversed

(PECL ds >= 1.0.0)

Ds\Set::reversed — Возвращает перевернутую копию коллекции

Описание

public Ds\Set Ds\Set::reversed ( void )

Возвращает перевернутую копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Перевернутая копия коллекции.

Замечание:

Текущая коллекция не изменится.

Примеры

Пример #1 Пример использования Ds\Set::reversed()

<?php
$set = new \Ds\Set(["a", "b", "c"]);

print_r($set->reversed());
print_r($set);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => c
    [1] => b
    [2] => a
)
Ds\Set Object
(
    [0] => a
    [1] => b
    [2] => c
)


Возвращает под-коллекцию из заданного диапазона

  • « Ds\Set::reversed
  • Ds\Set::sort »
  • PHP Manual
  • Набор
  • Возвращает под-коллекцию из заданного диапазона

Ds\Set::slice

(PECL ds >= 1.0.0)

Ds\Set::slice — Возвращает под-коллекцию из заданного диапазона

Описание

public Ds\Set Ds\Set::slice ( int $index [, int $length ] )

Возвращает под-коллекцию из диапазона заданного начальным индексом index и длиной length.

Список параметров

index

Индекс, задающий начало диапазона.

Если положительный, то будет отсчитываться от начала коллекции. Если отрицательный, то от конца.

length

Положительное значение определяет, сколько элементов бцдет взято. Если количество элементов коллекции меньше заданного значения, вернется столько элементов, сколько есть. Отрицательное значение задаст индекс, отсчитанный от конца коллекции, определяющий конец диапазона. Если длина не задана, то будут возвращены все элементы коллекции от заданного индекса до конца коллекции.

Возвращаемые значения

Под-коллекция из заданного диапазона.

Примеры

Пример #1 Пример использования Ds\Set::slice()

<?php
$set = new \Ds\Set(["a", "b", "c", "d", "e"]);

// Slice from 2 onwards
print_r($set->slice(2));

// Slice from 1, for a length of 3
print_r($set->slice(1, 3));

// Slice from 1 onwards
print_r($set->slice(1));

// Slice from 2 from the end onwards
print_r($set->slice(-2));

// Slice from 1 to 1 from the end
print_r($set->slice(1, -1));
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => c
    [1] => d
    [2] => e
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
    [3] => e
)
Ds\Set Object
(
    [0] => d
    [1] => e
)
Ds\Set Object
(
    [0] => b
    [1] => c
    [2] => d
)


Сортирует коллекцию

  • « Ds\Set::slice
  • Ds\Set::sorted »
  • PHP Manual
  • Набор
  • Сортирует коллекцию

Ds\Set::sort

(PECL ds >= 1.0.0)

Ds\Set::sort — Сортирует коллекцию

Описание

public void Ds\Set::sort ([ callable $comparator ] )

Сортирует коллекцию, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Set::sort()

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);
$set->sort();

print_r($set);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Set::sort() с callback-функцией сравнения

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

$set->sort(function($a, $b) {
    return $b <=> $a;
});

print_r($set);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает отсортированную по значению копию коллекции

  • « Ds\Set::sort
  • Ds\Set::sum »
  • PHP Manual
  • Набор
  • Возвращает отсортированную по значению копию коллекции

Ds\Set::sorted

(PECL ds >= 1.0.0)

Ds\Set::sorted — Возвращает отсортированную по значению копию коллекции

Описание

public Ds\Set Ds\Set::sorted ([ callable $comparator ] )

Возвращает отсортированную копию коллекции, опционально используя callback-функцию comparator.

Список параметров

comparator

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй. Обратите внимание, что до PHP 7.0.0, это целое не могло выходить за рамки диапазона с -2147483648 по 2147483647

int callback ( mixed $a, mixed $b )
Предостережение

Не целое значение возвращенное из функции сравнения, такого как float, будет приведено к целому. Так что значения типа 0.99 и 0.1 будут приведены к 0, что будет означать равенство сравниваемых значений.

Возвращаемые значения

Возвращает отсортированную по значению копию коллекции.

Примеры

Пример #1 Пример использования Ds\Set::sorted()

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

print_r($set->sorted());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Пример #2 Пример использования Ds\Set::sorted() с callback-функцией сравнения

<?php
$set = new \Ds\Set([4, 5, 1, 3, 2]);

$sorted = $set->sorted(function($a, $b) {
    return $b <=> $a;
});

print_r($sorted);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Set Object
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)


Возвращает сумму всех значений коллекции

  • « Ds\Set::sorted
  • Ds\Set::toArray »
  • PHP Manual
  • Набор
  • Возвращает сумму всех значений коллекции

Ds\Set::sum

(PECL ds >= 1.0.0)

Ds\Set::sum — Возвращает сумму всех значений коллекции

Описание

public number Ds\Set::sum ( void )

Возвращает сумму всех значений коллекции.

Замечание:

Массивы и объекты считаются за ноль.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Сумма всех значений коллекции типов float или int, в зависимости от значений коллекции.

Примеры

Пример #1 Пример использования Ds\Set::sum() с целочисленными значениями

<?php
$set = new \Ds\Set([1, 2, 3]);
var_dump($set->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

int(6)

Пример #2 Пример использования Ds\Set::sum() со значениями типа float

<?php
$set = new \Ds\Set([1, 2.5, 3]);
var_dump($set->sum());
?>

Результатом выполнения данного примера будет что-то подобное:

float(6.5)


Преобразует коллекцию в array

  • « Ds\Set::sum
  • Ds\Set::union »
  • PHP Manual
  • Набор
  • Преобразует коллекцию в array

Ds\Set::toArray

(PECL ds >= 1.0.0)

Ds\Set::toArray — Преобразует коллекцию в array

Описание

public array Ds\Set::toArray ( void )

Преобразует коллекцию в array.

Замечание:

Приведение к типу array пока не поддерживается.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

array, содержащий все элементы коллекции с сохранением их порядка.

Примеры

Пример #1 Пример использования Ds\Set::toArray()

<?php
$set = new \Ds\Set([1, 2, 3]);

var_dump($set->toArray());
?>

Результатом выполнения данного примера будет что-то подобное:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Создает новый набор из элементов текущего и переданного наборов

  • « Ds\Set::toArray
  • Ds\Set::xor »
  • PHP Manual
  • Набор
  • Создает новый набор из элементов текущего и переданного наборов

Ds\Set::union

(PECL ds >= 1.0.0)

Ds\Set::union — Создает новый набор из элементов текущего и переданного наборов

Описание

public Ds\Set Ds\Set::union ( Ds\Set $set )

Создает новый набор из элементов текущего и переданного в set наборов.

A ? B = {x: x ? A ? x ? B}

Список параметров

set

Новый набор, для объединения с текущим.

Возвращаемые значения

Новый набор, являющийся объединением текущего и переданного в set.

Также смотри

  • » Объединение в Wikipedia

Примеры

Пример #1 Пример использования Ds\Set::union()

<?php
$a = new \Ds\Set([1, 2, 3]);
$b = new \Ds\Set([3, 4, 5]);

var_dump($a->union($b));
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Set)#3 (5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}


Создает новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно

  • « Ds\Set::union
  • Стек »
  • PHP Manual
  • Набор
  • Создает новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно

Ds\Set::xor

(PECL ds >= 1.0.0)

Ds\Set::xor — Создает новый набор из значений, которые есть в одном из наборов, но не в обоих одновременно

Описание

public Ds\Set Ds\Set::xor ( Ds\Set $set )

Создает новый набор из значений, которые есть в текущем наборе, либо в наборе заданном в set, но не в обоих одновременно.

A ? B = {x : x ? (A \ B) ? (B \ A)}

Список параметров

set

Второй набор.

Возвращаемые значения

Новый набор из значений, которые есть в текущем наборе, либо в наборе заданном в set, но не в обоих одновременно.

Также смотри

  • » Симметрическая разность в Wikipedia

Примеры

Пример #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

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Стек - это коллекция типа "Последний вошел, первый вышел" (Last In, First Out или LIFO), которая позволяет работать только с самым верхним (последним) значением. Итерация происходит от конца к началу с удалением взятого элемента.

Внутри себя использует класс Ds\Vector.

Обзор классов

Ds\Stack implements Ds\Collection {
/* Методы */
public void allocate ( int $capacity )
public int capacity ( void )
public void clear ( void )
public Ds\Stack copy ( void )
public bool isEmpty ( void )
public mixed peek ( void )
public mixed pop ( void )
public void push ([ mixed $...values ] )
public array toArray ( void )
}

Содержание

  • Ds\Stack::allocate — Выделение памяти под указанную вместимость
  • Ds\Stack::capacity — Возвращает текущую вместимость
  • Ds\Stack::clear — Удаляет все значения из коллекции
  • Ds\Stack::__construct — Создает новый экземпляр класса
  • Ds\Stack::copy — Возвращает поверхностную копию коллекции
  • Ds\Stack::count — Возвращает количество элементов коллекции
  • Ds\Stack::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Stack::jsonSerialize — Возвращает коллекцию в JSON представлении
  • Ds\Stack::peek — Возвращает значение с вершины стека
  • Ds\Stack::pop — Удаляет и возвращает значение с вершины стека
  • Ds\Stack::push — Добавляет значения в стек
  • Ds\Stack::toArray — Преобразует коллекцию в array


Выделение памяти под указанную вместимость

  • « Стек
  • Ds\Stack::capacity »
  • PHP Manual
  • Стек
  • Выделение памяти под указанную вместимость

Ds\Stack::allocate

(PECL ds >= 1.0.0)

Ds\Stack::allocate — Выделение памяти под указанную вместимость

Описание

public void Ds\Stack::allocate ( int $capacity )

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического добавления памяти при добавлении значений.

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то она не изменится.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Возвращает текущую вместимость

  • « Ds\Stack::allocate
  • Ds\Stack::clear »
  • PHP Manual
  • Стек
  • Возвращает текущую вместимость

Ds\Stack::capacity

(PECL ds >= 1.0.0)

Ds\Stack::capacity — Возвращает текущую вместимость

Описание

public int Ds\Stack::capacity ( void )

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.


Удаляет все значения из коллекции

  • « Ds\Stack::capacity
  • Ds\Stack::__construct »
  • PHP Manual
  • Стек
  • Удаляет все значения из коллекции

Ds\Stack::clear

(PECL ds >= 1.0.0)

Ds\Stack::clear — Удаляет все значения из коллекции

Описание

public void 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::__construct

(PECL ds >= 1.0.0)

Ds\Stack::__construct — Создает новый экземпляр класса

Описание

public Ds\Stack::__construct ([ mixed $values ] )

Создает новый экземпляр класса, используя либо объект реализующий traversable, либо массив, переданные в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс "traversable" или массив.

Примеры

Пример #1 Пример использования Ds\Stack::__construct()

<?php
$stack = new \Ds\Stack();
print_r($stack);

$stack = new \Ds\Stack([1, 2, 3]);
print_r($stack);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Stack Object
(
)
Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)


Возвращает поверхностную копию коллекции

  • « Ds\Stack::__construct
  • Ds\Stack::count »
  • PHP Manual
  • Стек
  • Возвращает поверхностную копию коллекции

Ds\Stack::copy

(PECL ds >= 1.0.0)

Ds\Stack::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Stack Ds\Stack::copy ( void )

Возвращает поверхностную копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия коллекции.

Примеры

Пример #1 Пример использования Ds\Stack::copy()

<?php
$a = new \Ds\Stack([1, 2, 3]);
$b = $a->copy();

// Изменение копии не отражается на оригинале
$b->push(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Stack Object
(
    [0] => 3
    [1] => 2
    [2] => 1
)
Ds\Stack Object
(
    [0] => 4
    [1] => 3
    [2] => 2
    [3] => 1
)


Возвращает количество элементов коллекции

  • « Ds\Stack::copy
  • Ds\Stack::isEmpty »
  • PHP Manual
  • Стек
  • Возвращает количество элементов коллекции

Ds\Stack::count

(PECL ds >= 1.0.0)

Ds\Stack::count — Возвращает количество элементов коллекции

Смотри описание функции Countable::count()


Проверяет, пуста ли коллекция

  • « Ds\Stack::count
  • Ds\Stack::jsonSerialize »
  • PHP Manual
  • Стек
  • Проверяет, пуста ли коллекция

Ds\Stack::isEmpty

(PECL ds >= 1.0.0)

Ds\Stack::isEmpty — Проверяет, пуста ли коллекция

Описание

public bool Ds\Stack::isEmpty ( void )

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если коллекция пуста, и FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Stack::isEmpty()

<?php
$a = new \Ds\Stack([1, 2, 3]);
$b = new \Ds\Stack();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Возвращает коллекцию в JSON представлении

  • « Ds\Stack::isEmpty
  • Ds\Stack::peek »
  • PHP Manual
  • Стек
  • Возвращает коллекцию в JSON представлении

Ds\Stack::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Stack::jsonSerialize — Возвращает коллекцию в JSON представлении

Смотри JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает значение с вершины стека

  • « Ds\Stack::jsonSerialize
  • Ds\Stack::pop »
  • PHP Manual
  • Стек
  • Возвращает значение с вершины стека

Ds\Stack::peek

(PECL ds >= 1.0.0)

Ds\Stack::peek — Возвращает значение с вершины стека

Описание

public mixed Ds\Stack::peek ( void )

Возвращает значение с вершины стека, но не удаляет его.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение с вершины стека.

Ошибки

Бросает исключени UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Stack::peek()

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c");

var_dump($stack->peek());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "c"


Удаляет и возвращает значение с вершины стека

  • « Ds\Stack::peek
  • Ds\Stack::push »
  • PHP Manual
  • Стек
  • Удаляет и возвращает значение с вершины стека

Ds\Stack::pop

(PECL ds >= 1.0.0)

Ds\Stack::pop — Удаляет и возвращает значение с вершины стека

Описание

public mixed Ds\Stack::pop ( void )

Удаляет и возвращает значение с вершины стека.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Удаленное с вершины стека значение.

Ошибки

Бросает исключение UnderflowException если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Stack::pop()

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c");

var_dump($stack->pop());
var_dump($stack->pop());
var_dump($stack->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "c"
string(1) "b"
string(1) "a"


Добавляет значения в стек

  • « Ds\Stack::pop
  • Ds\Stack::toArray »
  • PHP Manual
  • Стек
  • Добавляет значения в стек

Ds\Stack::push

(PECL ds >= 1.0.0)

Ds\Stack::push — Добавляет значения в стек

Описание

public void Ds\Stack::push ([ mixed $...values ] )

Добавляет значения values в стек

Список параметров

values

Добавляемые значения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Stack::push()

<?php
$stack = new \Ds\Stack();

$stack->push("a");
$stack->push("b");
$stack->push("c", "d");
$stack->push(...["e", "f"]);

print_r($stack);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Stack Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Преобразует коллекцию в array

  • « Ds\Stack::push
  • Очередь »
  • PHP Manual
  • Стек
  • Преобразует коллекцию в array

Ds\Stack::toArray

(PECL ds >= 1.0.0)

Ds\Stack::toArray — Преобразует коллекцию в array

Описание

public array Ds\Stack::toArray ( void )

Преобразует коллекцию в 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

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Очередь - это коллекция типа "Первый вошел, первый вышел" (First In, First Out или FIFO), которая позволяет работать только с самым первым значением. Итерация происходит от начала к концу с удалением взятого элемента.

Обзор классов

Ds\Queue implements Ds\Collection {
/* Константы */
const int MIN_CAPACITY = 8 ;
/* Методы */
public void allocate ( int $capacity )
public int capacity ( void )
public void clear ( void )
public Ds\Queue copy ( void )
public bool isEmpty ( void )
public mixed peek ( void )
public mixed pop ( void )
public void push ([ mixed $...values ] )
public array toArray ( void )
}

Предопределенные константы

Ds\Queue::MIN_CAPACITY

Содержание

  • Ds\Queue::allocate — Выделение памяти под указанную вместимость
  • Ds\Queue::capacity — Возвращает текущую вместимость
  • Ds\Queue::clear — Удаляет все значения из коллекции
  • Ds\Queue::__construct — Создает новый экземпляр класса
  • Ds\Queue::copy — Возвращает поверхностную копию коллекции
  • Ds\Queue::count — Возвращает количество элементов коллекции
  • Ds\Queue::isEmpty — Проверяет, пуста ли коллекция
  • Ds\Queue::jsonSerialize — Возвращает коллекцию в JSON представлении
  • Ds\Queue::peek — Возвращает значение из начала очереди
  • Ds\Queue::pop — Удаляет и возвращает значение из начала очереди
  • Ds\Queue::push — Добавляет значения в очередь
  • Ds\Queue::toArray — Преобразует коллекцию в array


Выделение памяти под указанную вместимость

  • « Очередь
  • Ds\Queue::capacity »
  • PHP Manual
  • Очередь
  • Выделение памяти под указанную вместимость

Ds\Queue::allocate

(PECL ds >= 1.0.0)

Ds\Queue::allocate — Выделение памяти под указанную вместимость

Описание

public void Ds\Queue::allocate ( int $capacity )

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического добавления памяти при добавлении значений.

Замечание:

Значение вместимости округляется вверх до ближайшей степени двойки (т.е 8, 16, 32, 64, 128 и т.д.)

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то она не изменится.

Замечание:

Значение вместимости округляется вверх до ближайшей степени двойки (т.е 8, 16, 32, 64, 128 и т.д.)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Queue::allocate()

<?php
$queue = new \Ds\Queue();
var_dump($queue->capacity());

$queue->allocate(100);
var_dump($queue->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)
int(128)


Возвращает текущую вместимость

  • « Ds\Queue::allocate
  • Ds\Queue::clear »
  • PHP Manual
  • Очередь
  • Возвращает текущую вместимость

Ds\Queue::capacity

(PECL ds >= 1.0.0)

Ds\Queue::capacity — Возвращает текущую вместимость

Описание

public int Ds\Queue::capacity ( void )

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\Queue::capacity()

<?php
$queue = new \Ds\Queue();
var_dump($queue->capacity());

$queue->push(...range(1, 50));
var_dump($queue->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)
int(64)


Удаляет все значения из коллекции

  • « Ds\Queue::capacity
  • Ds\Queue::__construct »
  • PHP Manual
  • Очередь
  • Удаляет все значения из коллекции

Ds\Queue::clear

(PECL ds >= 1.0.0)

Ds\Queue::clear — Удаляет все значения из коллекции

Описание

public void 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::__construct

(PECL ds >= 1.0.0)

Ds\Queue::__construct — Создает новый экземпляр класса

Описание

public Ds\Queue::__construct ([ mixed $values ] )

Создает новый экземпляр класса, используя либо объект реализующий traversable, либо массив, переданные в качестве параметра values.

Список параметров

values

Объект, реализующий интерфейс "traversable" или массив.

Примеры

Пример #1 Пример использования Ds\Queue::__construct()

<?php
$queue = new \Ds\Queue();
var_dump($queue);

$queue = new \Ds\Queue([1, 2, 3]);
var_dump($queue);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\Queue)#2 (0) {
}
object(Ds\Queue)#2 (3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
}


Возвращает поверхностную копию коллекции

  • « Ds\Queue::__construct
  • Ds\Queue::count »
  • PHP Manual
  • Очередь
  • Возвращает поверхностную копию коллекции

Ds\Queue::copy

(PECL ds >= 1.0.0)

Ds\Queue::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\Queue Ds\Queue::copy ( void )

Возвращает поверхностную копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия коллекции.

Примеры

Пример #1 Пример использования Ds\Queue::copy()

<?php
$a = new \Ds\Queue([1, 2, 3]);
$b = $a->copy();

// Изменение копии не отражается на оригинале
$b->push(4);

print_r($a);
print_r($b);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Ds\Queue Object
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)


Возвращает количество элементов коллекции

  • « Ds\Queue::copy
  • Ds\Queue::isEmpty »
  • PHP Manual
  • Очередь
  • Возвращает количество элементов коллекции

Ds\Queue::count

(PECL ds >= 1.0.0)

Ds\Queue::count — Возвращает количество элементов коллекции

Смотри описание функции Countable::count()


Проверяет, пуста ли коллекция

  • « Ds\Queue::count
  • Ds\Queue::jsonSerialize »
  • PHP Manual
  • Очередь
  • Проверяет, пуста ли коллекция

Ds\Queue::isEmpty

(PECL ds >= 1.0.0)

Ds\Queue::isEmpty — Проверяет, пуста ли коллекция

Описание

public bool Ds\Queue::isEmpty ( void )

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если коллекция пуста, и FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\Queue::isEmpty()

<?php
$a = new \Ds\Queue([1, 2, 3]);
$b = new \Ds\Queue();

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Возвращает коллекцию в JSON представлении

  • « Ds\Queue::isEmpty
  • Ds\Queue::peek »
  • PHP Manual
  • Очередь
  • Возвращает коллекцию в JSON представлении

Ds\Queue::jsonSerialize

(PECL ds >= 1.0.0)

Ds\Queue::jsonSerialize — Возвращает коллекцию в JSON представлении

Смотри JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает значение из начала очереди

  • « Ds\Queue::jsonSerialize
  • Ds\Queue::pop »
  • PHP Manual
  • Очередь
  • Возвращает значение из начала очереди

Ds\Queue::peek

(PECL ds >= 1.0.0)

Ds\Queue::peek — Возвращает значение из начала очереди

Описание

public mixed Ds\Queue::peek ( void )

Возвращает значение из начала очереди, но не удаляет его.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение из начала очереди.

Ошибки

Бросает исключени UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Queue::peek()

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c");

var_dump($queue->peek());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"


Удаляет и возвращает значение из начала очереди

  • « Ds\Queue::peek
  • Ds\Queue::push »
  • PHP Manual
  • Очередь
  • Удаляет и возвращает значение из начала очереди

Ds\Queue::pop

(PECL ds >= 1.0.0)

Ds\Queue::pop — Удаляет и возвращает значение из начала очереди

Описание

public mixed Ds\Queue::pop ( void )

Удаляет и возвращает значение из начала очереди.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Удаленное значение из начала очереди.

Ошибки

Бросает исключение UnderflowException если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\Queue::pop()

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c");

var_dump($queue->pop());
var_dump($queue->pop());
var_dump($queue->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Добавляет значения в очередь

  • « Ds\Queue::pop
  • Ds\Queue::toArray »
  • PHP Manual
  • Очередь
  • Добавляет значения в очередь

Ds\Queue::push

(PECL ds >= 1.0.0)

Ds\Queue::push — Добавляет значения в очередь

Описание

public void Ds\Queue::push ([ mixed $...values ] )

Добавляет значения values в очередь.

Список параметров

values

Добавляемые значения.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\Queue::push()

<?php
$queue = new \Ds\Queue();

$queue->push("a");
$queue->push("b");
$queue->push("c", "d");
$queue->push(...["e", "f"]);

print_r($queue);
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\Queue Object
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)


Преобразует коллекцию в array

  • « Ds\Queue::push
  • Очередь с приоритетом »
  • PHP Manual
  • Очередь
  • Преобразует коллекцию в array

Ds\Queue::toArray

(PECL ds >= 1.0.0)

Ds\Queue::toArray — Преобразует коллекцию в array

Описание

public array Ds\Queue::toArray ( void )

Преобразует коллекцию в array.

Замечание:

Приведение к типу array пока не поддерживается.

Замечание:

This method is not destructive.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

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

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Очередь с приоритетом очень похожа на обычную очередь. Значения добавляются в очередь с заданным приоритетом, и значения с более высоким приоритетом всегда будут находиться ближе к началу.

Реализована с использованием максимальной кучи.

Замечание:

Порядок FIFO сохраняется у значений с одинаковым приоритетом.

Замечание:

Итерация через очередь происходит с удалением взятого элемента. Эквивалентно использованию оператора "pop", пока очередь не станет пустой.

Обзор классов

Ds\PriorityQueue implements Ds\Collection {
/* Константы */
const int MIN_CAPACITY = 8 ;
/* Методы */
public void allocate ( int $capacity )
public int capacity ( void )
public void clear ( void )
public Ds\PriorityQueue copy ( void )
public bool isEmpty ( void )
public mixed peek ( void )
public mixed pop ( void )
public void push ( mixed $value , int $priority )
public array toArray ( void )
}

Предопределенные константы

Ds\PriorityQueue::MIN_CAPACITY

Содержание

  • Ds\PriorityQueue::allocate — Выделение памяти под указанную вместимость
  • Ds\PriorityQueue::capacity — Возвращает текущую вместимость
  • Ds\PriorityQueue::clear — Удаляет все значения из коллекции
  • Ds\PriorityQueue::__construct — Создает новый экземпляр класса
  • Ds\PriorityQueue::copy — Возвращает поверхностную копию коллекции
  • Ds\PriorityQueue::count — Возвращает количество элементов коллекции
  • Ds\PriorityQueue::isEmpty — Проверяет, пуста ли коллекция
  • Ds\PriorityQueue::jsonSerialize — Возвращает коллекцию в JSON представлении
  • Ds\PriorityQueue::peek — Возвращает значение из начала очереди
  • Ds\PriorityQueue::pop — Удаляет и возвращает значение с наивысшим приоритетом
  • Ds\PriorityQueue::push — Добавляет значение в очередь
  • Ds\PriorityQueue::toArray — Преобразует коллекцию в array


Выделение памяти под указанную вместимость

  • « Очередь с приоритетом
  • Ds\PriorityQueue::capacity »
  • PHP Manual
  • Очередь с приоритетом
  • Выделение памяти под указанную вместимость

Ds\PriorityQueue::allocate

(PECL ds >= 1.0.0)

Ds\PriorityQueue::allocate — Выделение памяти под указанную вместимость

Описание

public void Ds\PriorityQueue::allocate ( int $capacity )

Гарантирует, что выделено достаточно памяти под заданную вместимость (количество значений). Позволяет избежать динамического добавления памяти при добавлении значений.

Список параметров

capacity

Вместимость. Предполагаемое количество значений.

Замечание:

Если новое значение вместимости меньше текущего, то она не изменится.

Замечание:

Значение вместимости округляется вверх до ближайшей степени двойки (т.е 8, 16, 32, 64, 128 и т.д.)

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::allocate()

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue->capacity());

$queue->allocate(100);
var_dump($queue->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)
int(128)


Возвращает текущую вместимость

  • « Ds\PriorityQueue::allocate
  • Ds\PriorityQueue::clear »
  • PHP Manual
  • Очередь с приоритетом
  • Возвращает текущую вместимость

Ds\PriorityQueue::capacity

(PECL ds >= 1.0.0)

Ds\PriorityQueue::capacity — Возвращает текущую вместимость

Описание

public int Ds\PriorityQueue::capacity ( void )

Возвращает текущую вместимость.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Текущая вместимость.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::capacity()

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue->capacity());
?>

Результатом выполнения данного примера будет что-то подобное:

int(8)


Удаляет все значения из коллекции

  • « Ds\PriorityQueue::capacity
  • Ds\PriorityQueue::__construct »
  • PHP Manual
  • Очередь с приоритетом
  • Удаляет все значения из коллекции

Ds\PriorityQueue::clear

(PECL ds >= 1.0.0)

Ds\PriorityQueue::clear — Удаляет все значения из коллекции

Описание

public void 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::__construct

(PECL ds >= 1.0.0)

Ds\PriorityQueue::__construct — Создает новый экземпляр класса

Описание

public Ds\PriorityQueue::__construct ( void )

Создает новый экземпляр класса.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::__construct()

<?php
$queue = new \Ds\PriorityQueue();
var_dump($queue);
?>

Результатом выполнения данного примера будет что-то подобное:

object(Ds\PriorityQueue)#1 (0) {
}


Возвращает поверхностную копию коллекции

  • « Ds\PriorityQueue::__construct
  • Ds\PriorityQueue::count »
  • PHP Manual
  • Очередь с приоритетом
  • Возвращает поверхностную копию коллекции

Ds\PriorityQueue::copy

(PECL ds >= 1.0.0)

Ds\PriorityQueue::copy — Возвращает поверхностную копию коллекции

Описание

public Ds\PriorityQueue Ds\PriorityQueue::copy ( void )

Возвращает поверхностную копию коллекции.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Поверхностная копия коллекции.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::copy()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->copy());
?>

Результатом выполнения данного примера будет что-то подобное:

Ds\PriorityQueue Object
(
    [0] => b
    [1] => c
    [2] => a
)


Возвращает количество элементов коллекции

  • « Ds\PriorityQueue::copy
  • Ds\PriorityQueue::isEmpty »
  • PHP Manual
  • Очередь с приоритетом
  • Возвращает количество элементов коллекции

Ds\PriorityQueue::count

(PECL ds >= 1.0.0)

Ds\PriorityQueue::count — Возвращает количество элементов коллекции

Смотри описание функции Countable::count()


Проверяет, пуста ли коллекция

  • « Ds\PriorityQueue::count
  • Ds\PriorityQueue::jsonSerialize »
  • PHP Manual
  • Очередь с приоритетом
  • Проверяет, пуста ли коллекция

Ds\PriorityQueue::isEmpty

(PECL ds >= 1.0.0)

Ds\PriorityQueue::isEmpty — Проверяет, пуста ли коллекция

Описание

public bool Ds\PriorityQueue::isEmpty ( void )

Проверяет, пуста ли коллекция.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если коллекция пуста, и FALSE в противном случае.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::isEmpty()

<?php
$a = new \Ds\PriorityQueue();
$b = new \Ds\PriorityQueue();

$a->push("a",  5);
$a->push("b", 15);
$a->push("c", 10);

var_dump($a->isEmpty());
var_dump($b->isEmpty());
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)


Возвращает коллекцию в JSON представлении

  • « Ds\PriorityQueue::isEmpty
  • Ds\PriorityQueue::peek »
  • PHP Manual
  • Очередь с приоритетом
  • Возвращает коллекцию в JSON представлении

Ds\PriorityQueue::jsonSerialize

(PECL ds >= 1.0.0)

Ds\PriorityQueue::jsonSerialize — Возвращает коллекцию в JSON представлении

Смотри JsonSerializable::jsonSerialize()

Замечание:

Никогда не используйте эту функцию напрямую.


Возвращает значение из начала очереди

  • « Ds\PriorityQueue::jsonSerialize
  • Ds\PriorityQueue::pop »
  • PHP Manual
  • Очередь с приоритетом
  • Возвращает значение из начала очереди

Ds\PriorityQueue::peek

(PECL ds >= 1.0.0)

Ds\PriorityQueue::peek — Возвращает значение из начала очереди

Описание

public mixed Ds\PriorityQueue::peek ( void )

Возвращает значение из начала очереди, но не удаляет его.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение из начала очереди.

Ошибки

Бросает исключени UnderflowException, если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::peek()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

var_dump($queue->peek());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "b"


Удаляет и возвращает значение с наивысшим приоритетом

  • « Ds\PriorityQueue::peek
  • Ds\PriorityQueue::push »
  • PHP Manual
  • Очередь с приоритетом
  • Удаляет и возвращает значение с наивысшим приоритетом

Ds\PriorityQueue::pop

(PECL ds >= 1.0.0)

Ds\PriorityQueue::pop — Удаляет и возвращает значение с наивысшим приоритетом

Описание

public mixed Ds\PriorityQueue::pop ( void )

Удаляет и возвращает значение из начала очереди, т.е. значение с наивысшим приоритетом.

Замечание:

Значения с одинаковым приоритетом возвращаются по прицпипу FIFO.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Удаленное значение из начала очереди.

Ошибки

Бросает исключение UnderflowException если коллекция пуста.

Примеры

Пример #1 Пример использования Ds\PriorityQueue::pop()

<?php
$queue = new \Ds\PriorityQueue();

$queue->push("a",  5);
$queue->push("b", 15);
$queue->push("c", 10);

print_r($queue->pop());
print_r($queue->pop());
print_r($queue->pop());
?>

Результатом выполнения данного примера будет что-то подобное:

string(1) "a"
string(1) "b"
string(1) "c"


Добавляет значение в очередь

  • « Ds\PriorityQueue::pop
  • Ds\PriorityQueue::toArray »
  • PHP Manual
  • Очередь с приоритетом
  • Добавляет значение в очередь

Ds\PriorityQueue::push

(PECL ds >= 1.0.0)

Ds\PriorityQueue::push — Добавляет значение в очередь

Описание

public void Ds\PriorityQueue::push ( mixed $value , int $priority )

Добавляет 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
  • Filter »
  • PHP Manual
  • Очередь с приоритетом
  • Преобразует коллекцию в array

Ds\PriorityQueue::toArray

(PECL ds >= 1.0.0)

Ds\PriorityQueue::toArray — Преобразует коллекцию в array

Описание

public array Ds\PriorityQueue::toArray ( void )

Преобразует коллекцию в array.

Замечание:

This method is not destructive.

Замечание:

Приведение к типу 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"
}


Фильтрация данных

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Типы фильтров
    • Фильтры валидации данных
    • Очищающие фильтры
    • Остальные фильтры
    • Флаги, используемые в фильтрах
  • Предопределенные константы
  • Примеры
    • Валидация
    • Нормализация значения (Sanitizing)
  • Фильтрация данных
    • filter_has_var — Проверяет существование переменной указанного типа
    • filter_id — Возвращает идентификатор, принадлежащий именованному фильтру
    • filter_input_array — Принимает несколько переменных извне PHP и, при необходимости, фильтрует их
    • filter_input — Принимает переменную извне PHP и, при необходимости, фильтрует ее
    • filter_list — Возвращает список всех поддерживаемых фильтров
    • filter_var_array — Принимает несколько переменных и, при необходимости, фильтрует их
    • filter_var — Фильтрует переменную с помощью определенного фильтра


Введение

Фильтры данного расширения позволяют выполнить валидацию данных и обезопасить их от возможных вредоносных конструкций. Это особенно полезно, если содержимое получено из неизвестных или ненадежных источников, таких, как пользовательский ввод. Например, такие данные можно получить из HTML-форм.

Существует два основных типа фильтрации: проверка и очистка.

Проверка используется для определения соответствия данных определённым критериям. Например, применение FILTER_VALIDATE_EMAIL позволяет проверить, являются ли введённые данные адресом email, однако, сами данные при этом останутся нетронутыми.

Очистка используется для извлечения из данных нежелательных конструкций. Например, применение FILTER_SANITIZE_EMAIL удалит все символы, которые не должен содержать email-адрес. То есть, проверки данных не происходит.

Кроме того, можно использовать различные флаги, как для проверки, так и для очистки, для более тонкой настройки согласно вашим нуждам. Например, передача флага FILTER_FLAG_PATH_REQUIRED при фильтрации URL установит необходимым условием наличие пути в ссылке (например, /foo в http://example.org/foo).


Установка

Начиная с версии PHP 5.2.0 расширение filter включено по умолчанию. До этой версии использовалось экспериментальное PECL-расширение, однако, оно больше не обновляется и поэтому не рекомендуется к использованию.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Параметры конфигурации Filter
Имя | По умолчанию | Меняемо | Список изменений
filter.default | "unsafe_raw" | PHP_INI_PERDIR | PHP_INI_ALL в filter <= 0.9.4. Доступна с PHP 5.2.0.
filter.default_flags | NULL | PHP_INI_PERDIR | PHP_INI_ALL в filter <= 0.9.4. Доступна с PHP 5.2.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

filter.default string

Фильтрует все $_GET, $_POST, $_COOKIE, $_REQUEST и $_SERVER данные этим фильтром. Исходные данные могут быть получены с помощью filter_input().

Принимает имя указанного фильтра как значение по умолчанию. Имена фильтров можно найти в списке существующих фильтров.

Замечание:

Будьте внимательны с флагами по умолчанию для фильтров по умолчанию. Следует явно устанавливать их в то значение, которое вам необходимо. Например, для установки фильтра по умолчанию, который будет работать точь-в-точь аналогично функции htmlspecialchars(), вам необходимо установить флаги по умолчанию в 0 так, как показано ниже.

Пример #1 Настройка фильтра по умолчанию для работы аналогично функции htmlspecialchars

filter.default = full_special_chars
filter.default_flags = 0

filter.default_flags integer

Флаги по умолчанию, которые применяются, когда установлен фильтр по умолчанию. По умолчанию установлено в значение FILTER_FLAG_NO_ENCODE_QUOTES для сохранения обратной совместимости. Смотрите списке существующих флагов для ознакомления со списком всех имен флагов.


  • « Настройка во время выполнения
  • Типы фильтров »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Типы фильтров

Содержание

  • Фильтры валидации данных
  • Очищающие фильтры
  • Остальные фильтры
  • Флаги, используемые в фильтрах


Фильтры валидации данных

Список фильтров валидации данных
ID | Имя | Параметры | Флаги | Описание
FILTER_VALIDATE_BOOLEAN | "boolean" | default | FILTER_NULL_ON_FAILURE | Возвращает TRUE для значений "1", "true", "on" и "yes". Иначе возвращает FALSE. Если установлен флаг FILTER_NULL_ON_FAILURE, то FALSE возвращается только для значений "0", "false", "off", "no" и "", а NULL будет возвращен для всех небулевых значений.
FILTER_VALIDATE_EMAIL | "validate_email" | default | FILTER_FLAG_EMAIL_UNICODE | Проверяет, что значение является корректным e-mail. В целом, происходит проверка синтаксиса адреса в соответствии с RFC 822, с тем исключением, что не поддерживаются комментарии, схлопывание пробельных символов и доменные имена без точек.
FILTER_VALIDATE_FLOAT | "float" | default, decimal | FILTER_FLAG_ALLOW_THOUSAND | Проверяет, что значение является корректным числом с плавающей точкой.
FILTER_VALIDATE_INT | "int" | default, min_range, max_range | FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX | Проверяет, что значение является корректным целым числом, и, при необходимости, входит в определенный диапазон.
FILTER_VALIDATE_IP | "validate_ip" | default | FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE | Проверяет, что значение является корректным IP-адресом, при необходимости только для протоколов IPv4 или IPv6, а также отсутствие вхождения в частные или зарезервированные диапазоны.
FILTER_VALIDATE_MAC | "validate_mac_address" | default |  | Проверяет, что значение - это корректный MAC-адрес.
FILTER_VALIDATE_REGEXP | "validate_regexp" | default, regexp |  | Проверяет значение на соответствие regexp, Perl-совместимому регулярному выражению.
FILTER_VALIDATE_URL | "validate_url" | default | FILTER_FLAG_SCHEME_REQUIRED, FILTER_FLAG_HOST_REQUIRED, FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED | Проверяет значение как URL (в соответствии с » http://www.faqs.org/rfcs/rfc2396), опционально с требуемыми компонентами. Помните, что URL не содержащий имя протокола http:// является корректный, так что может потребоваться дополнительная проверка того, что URL использует требуемый протокол, например ssh:// или mailto:. Обратите внимание, что эта функция считает корректными только URL, состоящие из символов ASCII; Интернациональные доменные имена провалят проверку.

Замечание:

С PHP 5.4.11, числа +0 and -0 проходят проверку и как целые и как с плавающей запятой (FILTER_VALIDATE_FLOAT и FILTER_VALIDATE_INT). До PHP 5.4.11 они проходили проверку только как числа с плавающей запятой (FILTER_VALIDATE_FLOAT).

Если задан default, то значение default будет подставлено, если проверка провалилась.

Список изменений

Версия | Описание
5.5.0 | Добавлена FILTER_VALIDATE_MAC
5.2.1 | FILTER_VALIDATE_URL теперь по умолчанию для FILTER_FLAG_SCHEME_REQUIRED и FILTER_FLAG_HOST_REQUIRED.


Очищающие фильтры

Список очищающих фильтров
ID | Имя | Флаги | Описание
FILTER_SANITIZE_EMAIL | "email" |  | Удаляет все символы, кроме букв, цифр и !#$%&'*+-=?^_`{|}~@.[].
FILTER_SANITIZE_ENCODED | "encoded" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH | Кодирует строку в формат URL, при необходимости удаляет или кодирует специальные символы.
FILTER_SANITIZE_MAGIC_QUOTES | "magic_quotes" |  | Применяется функция addslashes().
FILTER_SANITIZE_NUMBER_FLOAT | "number_float" | FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC | Удаляет все символы, кроме цифр, +- и, при необходимости, .,eE.
FILTER_SANITIZE_NUMBER_INT | "number_int" |  | Удаляет все символы, кроме цифр и знаков плюса и минуса.
FILTER_SANITIZE_SPECIAL_CHARS | "special_chars" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_HIGH | Экранирует HTML-символы '"<>& и символы с ASCII-кодом, меньшим 32, при необходимости удаляет или кодирует остальные специальные символы.
FILTER_SANITIZE_FULL_SPECIAL_CHARS | "full_special_chars" | FILTER_FLAG_NO_ENCODE_QUOTES, | Эквивалентно вызову htmlspecialchars() с установленным параметром ENT_QUOTES. Кодирование кавычек может быть отключено с помощью установки флага FILTER_FLAG_NO_ENCODE_QUOTES. Аналогично htmlspecialchars(), этот фильтр принимает во внимание default_charset и, если будет обнаружена некорректная последовательность байт для данной кодировки, то вся строка будет признана негодной и результатом будет строка нулевой длины. При использовании этого фильтра в качестве фильтра по умолчанию, ознакомьтесь с предупреждением ниже об установке флагов по умолчанию в 0.
FILTER_SANITIZE_STRING | "string" | FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Удаляет тэги, при необходимости удаляет или кодирует специальные символы.
FILTER_SANITIZE_STRIPPED | "stripped" |  | Псевдоним фильтра "string".
FILTER_SANITIZE_URL | "url" |  | Удаляет все символы, кроме букв, цифр и $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_UNSAFE_RAW | "unsafe_raw" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Бездействует, при необходимости удаляет или кодирует специальные символы. Этот фильтр так же является синонимом FILTER_DEFAULT

Внимание

При использовании одного из этих фильтров в качестве фильтра по умолчанию либо через ваш ini-файл, либо через конфигурацию веб-сервера, флаги по умолчанию установлены в значение FILTER_FLAG_NO_ENCODE_QUOTES. Вам необходимо явно придать параметру filter.default_flags значение 0 для наличия пустых кавычек по умолчанию. К примеру:

Пример #1 Настройка фильтра по умолчанию для работы аналогично функции htmlspecialchars

filter.default = full_special_chars
filter.default_flags = 0

Список изменений

Версия | Описание
5.2.11/5.3.1 | Слеши (/) удаляются FILTER_SANITIZE_EMAIL. Ранее они сохранялись.


Остальные фильтры

Список различных фильтров
ID | Имя | Параметры | Флаги | Описание
FILTER_CALLBACK | "callback" | Функция или метод типа callable |  | Вызывается пользовательская функция для фильтрации данных.


Флаги, используемые в фильтрах

Список используемых флагов в фильтрах
ID | Используется совместно с фильтром | Описание
FILTER_FLAG_STRIP_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Удаляет символы, код которых <32.
FILTER_FLAG_STRIP_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Удаляет символы, код которых >127.
FILTER_FLAG_STRIP_BACKTICK | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_UNSAFE_RAW | Удаляет символы обратной кавычки (`).
FILTER_FLAG_ALLOW_FRACTION | FILTER_SANITIZE_NUMBER_FLOAT | Разрешает наличие точки (.) в качестве десятичного разделителя в числах.
FILTER_FLAG_ALLOW_THOUSAND | FILTER_SANITIZE_NUMBER_FLOAT, FILTER_VALIDATE_FLOAT | Разрешает наличие запятой (,) в качестве разделителя тысяч в числах.
FILTER_FLAG_ALLOW_SCIENTIFIC | FILTER_SANITIZE_NUMBER_FLOAT | Разрешает наличие e и E для научных нотаций чисел.
FILTER_FLAG_NO_ENCODE_QUOTES | FILTER_SANITIZE_STRING | При установке этого флага одиночные (') и двойные (") кавычки кодироваться не будут.
FILTER_FLAG_ENCODE_LOW | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Кодирует все символы, код которых <32.
FILTER_FLAG_ENCODE_HIGH | FILTER_SANITIZE_ENCODED, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Кодирует все символы, код которых >127.
FILTER_FLAG_ENCODE_AMP | FILTER_SANITIZE_STRING, FILTER_SANITIZE_RAW | Кодирует амперсанд (&).
FILTER_NULL_ON_FAILURE | FILTER_VALIDATE_BOOLEAN | Возвращает NULL для неопознанных булевых значений.
FILTER_FLAG_ALLOW_OCTAL | FILTER_VALIDATE_INT | Трактует ввод, начинающийся с нуля (0) как восьмеричное число. Для этого последующие числа должны быть в диапазоне 0-7.
FILTER_FLAG_ALLOW_HEX | FILTER_VALIDATE_INT | Трактует ввод, начинающийся с 0x или 0X как шестнадцатеричное число. Для этого последующие символы должны быть в диапазоне a-fA-F0-9.
FILTER_FLAG_EMAIL_UNICODE | FILTER_VALIDATE_EMAIL | Разрешить символы Unicode в локальной части email-адреса.
FILTER_FLAG_IPV4 | FILTER_VALIDATE_IP | Разрешает формат IPv4 для IP-адреса.
FILTER_FLAG_IPV6 | FILTER_VALIDATE_IP | Разрешает формат IPv6 для IP-адреса.
FILTER_FLAG_NO_PRIV_RANGE FILTER_VALIDATE_IP

Запрещает успешное прохождение проверки для следующих частных IPv4-диапазонов: 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16.

Запрещает успешное прохождение проверки для IPv6-адресов, начинающихся с FD или FC.

FILTER_FLAG_NO_RES_RANGE FILTER_VALIDATE_IP

Запрещает успешное прохождение проверки для следующих зарезервированных IPv4-диапазонов: 0.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24 и 224.0.0.0/4.

Запрещает прохождение проверки для зарезервированных диапазонов IPv6: ::1/128, ::/128, ::ffff:0:0/96 и fe80::/10.

FILTER_FLAG_PATH_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 | Если значение скалярное, то оно трактуется как массив с одним элементом, равным этому значению.

Список изменений

Версия | Описание
5.3.2 | Добавлена константа FILTER_FLAG_STRIP_BACKTICK.
5.2.10 | Константа FILTER_FLAG_NO_RES_RANGE также поддерживает адреса IPv6.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

INPUT_POST (integer)
POST переменные.
INPUT_GET (integer)
GET переменные.
INPUT_COOKIE (integer)
COOKIE переменные.
INPUT_ENV (integer)
ENV переменные.
INPUT_SERVER (integer)
SERVER переменные.
INPUT_SESSION (integer)
SESSION переменные. (еще не реализовано)
INPUT_REQUEST (integer)
REQUEST переменные. (еще не реализовано)
FILTER_FLAG_NONE (integer)
Не использовать флаги.
FILTER_REQUIRE_SCALAR (integer)
Флаг используется для указания необходимости скалярного значения в качестве входного значения.
FILTER_REQUIRE_ARRAY (integer)
Требовать массив в качестве входного значения.
FILTER_FORCE_ARRAY (integer)
Всегда возвращать массив.
FILTER_NULL_ON_FAILURE (integer)
Использовать NULL вместо FALSE в случае ошибки.
FILTER_VALIDATE_INT (integer)
Идентификатор фильтра "int".
FILTER_VALIDATE_BOOLEAN (integer)
Идентификатор фильтра "boolean".
FILTER_VALIDATE_FLOAT (integer)
Идентификатор фильтра "float".
FILTER_VALIDATE_REGEXP (integer)
Идентификатор фильтра "validate_regexp".
FILTER_VALIDATE_URL (integer)
Идентификатор фильтра "validate_url".
FILTER_VALIDATE_EMAIL (integer)
Идентификатор фильтра "validate_email".
FILTER_VALIDATE_IP (integer)
Идентификатор фильтра "validate_ip".
FILTER_VALIDATE_MAC (integer)
Идентификатор фильтра "validate_mac_address". (Доступно с версии PHP 5.5.0)
FILTER_DEFAULT (integer)
Идентификатор фильтра по умолчанию ("unsafe_raw"). Равнозначен FILTER_UNSAFE_RAW.
FILTER_UNSAFE_RAW (integer)
Идентификатор фильтра "unsafe_raw".
FILTER_SANITIZE_STRING (integer)
Идентификатор фильтра "string".
FILTER_SANITIZE_STRIPPED (integer)
Идентификатор фильтра "stripped".
FILTER_SANITIZE_ENCODED (integer)
Идентификатор фильтра "encoded".
FILTER_SANITIZE_SPECIAL_CHARS (integer)
Идентификатор фильтра "special_chars".
FILTER_SANITIZE_EMAIL (integer)
Идентификатор фильтра "email".
FILTER_SANITIZE_URL (integer)
Идентификатор фильтра "url".
FILTER_SANITIZE_NUMBER_INT (integer)
Идентификатор фильтра "number_int".
FILTER_SANITIZE_NUMBER_FLOAT (integer)
Идентификатор фильтра "number_float".
FILTER_SANITIZE_MAGIC_QUOTES (integer)
Идентификатор фильтра "magic_quotes".
FILTER_CALLBACK (integer)
Идентификатор фильтра "callback".
FILTER_FLAG_ALLOW_OCTAL (integer)
Разрешить восьмеричную запись (0[0-7]+) в фильтре "int".
FILTER_FLAG_ALLOW_HEX (integer)
Разрешить шестнадцатеричную запись (0x[0-9a-fA-F]+) в фильтре "int".
FILTER_FLAG_STRIP_LOW (integer)
Удалять символы с ASCII кодом, меньшим 32.
FILTER_FLAG_STRIP_HIGH (integer)
Удалять символы с ASCII кодом, большим 127.
FILTER_FLAG_ENCODE_LOW (integer)
Кодировать символы с ASCII кодом, меньшим 32.
FILTER_FLAG_ENCODE_HIGH (integer)
Кодировать символы с ASCII кодом, большим 127.
FILTER_FLAG_ENCODE_AMP (integer)
Кодировать &.
FILTER_FLAG_NO_ENCODE_QUOTES (integer)
Не кодировать ' и ".
FILTER_FLAG_EMPTY_STRING_NULL (integer)
(На данный момент не используется.)
FILTER_FLAG_ALLOW_FRACTION (integer)
Разрешить дробную часть в фильтре "number_float".
FILTER_FLAG_ALLOW_THOUSAND (integer)
Разрешить разделитель (,) между группами цифр по 3 в фильтре "number_float".
FILTER_FLAG_ALLOW_SCIENTIFIC (integer)
Разрешить научную запись (e, E) в фильтре "number_float".
FILTER_FLAG_PATH_REQUIRED (integer)
Требовать наличие составляющей "путь" в фильтре "validate_url".
FILTER_FLAG_QUERY_REQUIRED (integer)
Требовать наличие строки запроса в фильтре "validate_url".
FILTER_FLAG_IPV4 (integer)
Разрешить только IPv4 адреса в фильтре "validate_ip".
FILTER_FLAG_IPV6 (integer)
Разрешить только IPv6 адреса в фильтре "validate_ip".
FILTER_FLAG_NO_RES_RANGE (integer)
Запретить зарезервированные адреса в фильтре "validate_ip".
FILTER_FLAG_NO_PRIV_RANGE (integer)
Запретить частные адреса в фильтре "validate_ip".
FILTER_FLAG_EMAIL_UNICODE (integer)
Принимать Unicode в локальной части фильтра "validate_email". (Доступно с PHP 7.1.0)


  • « Предопределенные константы
  • Валидация »
  • PHP Manual
  • Filter
  • Примеры

Примеры

Содержание

  • Валидация
  • Нормализация значения (Sanitizing)


Валидация

Пример #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_a) указан верно.";
}
if (filter_var($ip_b, FILTER_VALIDATE_IP)) {
    echo "Адрес (ip_b) указан верно.";
}
?>

Результат выполнения данного примера:

Адрес (ip_a) указан верно.

Пример #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 "Число (int_a) является верным (от 0 до 3).\n";
}
if (filter_var($int_b, FILTER_VALIDATE_INT, $options) !== FALSE) {
    echo "Число (int_b) является верным (от 0 до 3).\n";
}
if (filter_var($int_c, FILTER_VALIDATE_INT, $options) !== FALSE) {
    echo "Число (int_c) является верным (от 0 до 3).\n";
}

$options['options']['default'] = 1;
if (($int_c = filter_var($int_c, FILTER_VALIDATE_INT, $options)) !== FALSE) {
    echo "Число (int_c) является верным (от 0 и 3) и равно $int_c.";
}
?>

Результат выполнения данного примера:

Число (int_a) является верным (от 0 до 3).
Число (int_c) является верным (от 0 до 3) и равно 1.


Нормализация значения (Sanitizing)

Пример #1 Нормализация и валидация e-mail адресов

<?php
$a = 'joe@example.org';
$b = 'bogus - at - example dot org';
$c = '(bogus@example.org)';

$sanitized_a = filter_var($a, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_a, FILTER_VALIDATE_EMAIL)) {
    echo "Нормализованный e-mail (a) является верным.\n";
}

$sanitized_b = filter_var($b, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_b, FILTER_VALIDATE_EMAIL)) {
    echo "Нормализованный e-mail (b) является верным.";
} else {
    echo "Нормализованный e-mail (b) является неверным.\n";
}

$sanitized_c = filter_var($c, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_c, FILTER_VALIDATE_EMAIL)) {
    echo "Нормализованный e-mail (c) является верным.\n";
    echo "До нормализации: $c\n";
    echo "После нормализации: $sanitized_c\n";
}
?>

Результат выполнения данного примера:

Нормализованный e-mail (a) является верным.
Нормализованный e-mail (b) является неверным.
Нормализованный e-mail (c) является верным.
До нормализации: (bogus@example.org)
После нормализации: bogus@example.org

Пример #2 Настройка фильтра по умолчанию

filter.default = full_special_chars
filter.default_flags = 0


Фильтрация данных

Содержание

  • filter_has_var — Проверяет существование переменной указанного типа
  • filter_id — Возвращает идентификатор, принадлежащий именованному фильтру
  • filter_input_array — Принимает несколько переменных извне PHP и, при необходимости, фильтрует их
  • filter_input — Принимает переменную извне PHP и, при необходимости, фильтрует ее
  • filter_list — Возвращает список всех поддерживаемых фильтров
  • filter_var_array — Принимает несколько переменных и, при необходимости, фильтрует их
  • filter_var — Фильтрует переменную с помощью определенного фильтра


Проверяет существование переменной указанного типа

  • « Фильтрация данных
  • filter_id »
  • PHP Manual
  • Фильтрация данных
  • Проверяет существование переменной указанного типа

filter_has_var

(PHP 5 >= 5.2.0, PHP 7)

filter_has_var — Проверяет существование переменной указанного типа

Описание

bool filter_has_var ( int $type , string $variable_name )

Список параметров

type

Один из INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV.

variable_name

Имя проверяемой переменной.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Возвращает идентификатор, принадлежащий именованному фильтру

  • « filter_has_var
  • filter_input_array »
  • PHP Manual
  • Фильтрация данных
  • Возвращает идентификатор, принадлежащий именованному фильтру

filter_id

(PHP 5 >= 5.2.0, PHP 7)

filter_id — Возвращает идентификатор, принадлежащий именованному фильтру

Описание

int filter_id ( string $filtername )

Список параметров

filtername

Имя фильтра.

Возвращаемые значения

Идентификатор фильтра в случае успеха или FALSE, если фильтр не существует.

Смотрите также

  • filter_list() - Возвращает список всех поддерживаемых фильтров


Принимает несколько переменных извне PHP и, при необходимости, фильтрует их

  • « filter_id
  • filter_input »
  • PHP Manual
  • Фильтрация данных
  • Принимает несколько переменных извне PHP и, при необходимости, фильтрует их

filter_input_array

(PHP 5 >= 5.2.0, PHP 7)

filter_input_array — Принимает несколько переменных извне PHP и, при необходимости, фильтрует их

Описание

mixed filter_input_array ( int $type [, mixed $definition [, bool $add_empty = true ]] )

Эта функция полезна для получения множества переменных без многократного вызова функции filter_input().

Список параметров

type

Один из INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER или INPUT_ENV.

definition

Массив, определяющий аргументы. Допустимый ключ - строка string, содержащая имя переменной, и допустимое значение - или тип filter, или массив array, при необходимости определяющий фильтр, флаги и параметры. Если значение является массивом, допустимыми ключами являются filter, который определяет (тип фильтра ), flags, который определяет любые флаги, применяемые к фильтру и options, который определяет любые параметры, применяемые к фильтру. См. пример ниже для лучшего понимания.

Этот параметр также может быть целым числом, содержащим предопределенную фильтровую константу. Затем все значения во входном массиве фильтруются этим фильтром.

add_empty

Добавляет в результат отсутствующие ключи со значением NULL.

Возвращаемые значения

Массив, содержащий значения запрошенных переменных в случае успеха, или FALSE в случае возникновения ошибки. Значение массива будет FALSE, если фильтрация завершилась неудачей, или NULL, если переменная не определена. Либо, если установлен флаг FILTER_NULL_ON_FAILURE, возвращается FALSE, если переменная не определена и NULL, если фильтрация завершилась неудачей.

Примеры

Пример #1 Пример использования filter_input_array()

<?php
error_reporting(E_ALL | E_STRICT);
/* данные, полученные методом POST
$_POST = 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_REQUIRE_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_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)
  }
  ["versions"]=>
    string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр add_empty.

Примечания

Замечание:

В массиве INPUT_SERVER нет ключа REQUEST_TIME, потому что он будет позднее в $_SERVER.

Смотрите также

  • filter_input() - Принимает переменную извне PHP и, при необходимости, фильтрует ее
  • filter_var_array() - Принимает несколько переменных и, при необходимости, фильтрует их
  • Типы фильтров


Принимает переменную извне PHP и, при необходимости, фильтрует ее

  • « filter_input_array
  • filter_list »
  • PHP Manual
  • Фильтрация данных
  • Принимает переменную извне PHP и, при необходимости, фильтрует ее

filter_input

(PHP 5 >= 5.2.0, PHP 7)

filter_input — Принимает переменную извне PHP и, при необходимости, фильтрует ее

Описание

mixed filter_input ( int $type , string $variable_name [, int $filter = FILTER_DEFAULT [, mixed $options ]] )

Список параметров

type

Один из INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER или INPUT_ENV.

variable_name

Имя получаемой переменной.

filter

Идентификатор (ID) применяемого фильтра. На странице Типы фильтров приведен список доступных фильтров.

Если не указан, то используется FILTER_DEFAULT, который равнозначен FILTER_UNSAFE_RAW. Это значит, что по умолчанию не применяется никакого фильтра.

options

Ассоциативный массив параметров либо логическое ИЛИ флагов. Если фильтр принимает параметры, флаги могут быть указаны в элементе массива "flags".

Возвращаемые значения

Значение запрашиваемой переменной в случае успеха, FALSE, если фильтрация завершилась неудачей, или NULL, если переменная variable_name не определена. Если установлен флаг FILTER_NULL_ON_FAILURE, функция возвращает FALSE, если переменная не определена и NULL, если фильтрация завершилась неудачей.

Примеры

Пример #1 Пример использования filter_input()

<?php
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
echo "Вы искали $search_html.\n";
echo "<a href='?search=$search_url'>Искать снова.</a>";
?>

Результатом выполнения данного примера будет что-то подобное:

Вы искали Me &#38; son.
<a href='?search=Me%20%26%20son'>Искать снова.</a>

Смотрите также

  • filter_var() - Фильтрует переменную с помощью определенного фильтра
  • filter_input_array() - Принимает несколько переменных извне PHP и, при необходимости, фильтрует их
  • filter_var_array() - Принимает несколько переменных и, при необходимости, фильтрует их
  • Типы фильтров


Возвращает список всех поддерживаемых фильтров

  • « filter_input
  • filter_var_array »
  • PHP Manual
  • Фильтрация данных
  • Возвращает список всех поддерживаемых фильтров

filter_list

(PHP 5 >= 5.2.0, PHP 7)

filter_list — Возвращает список всех поддерживаемых фильтров

Описание

array filter_list ( void )

Возвращаемые значения

Возвращает массив имен всех поддерживаемых фильтров, пустой массив, если таких фильтров не существует. Идентификаторы (ID) фильтров не являются ключами этого массива, они могут быть получены с помощью функции filter_id() по имени фильтра.

Примеры

Пример #1 Пример использования filter_list()

<?php
print_r(filter_list());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => int
    [1] => boolean
    [2] => float
    [3] => validate_regexp
    [4] => validate_url
    [5] => validate_email
    [6] => validate_ip
    [7] => string
    [8] => stripped
    [9] => encoded
    [10] => special_chars
    [11] => unsafe_raw
    [12] => email
    [13] => url
    [14] => number_int
    [15] => number_float
    [16] => magic_quotes
    [17] => callback
)


Принимает несколько переменных и, при необходимости, фильтрует их

  • « filter_list
  • filter_var »
  • PHP Manual
  • Фильтрация данных
  • Принимает несколько переменных и, при необходимости, фильтрует их

filter_var_array

(PHP 5 >= 5.2.0, PHP 7)

filter_var_array — Принимает несколько переменных и, при необходимости, фильтрует их

Описание

mixed filter_var_array ( array $data [, mixed $definition [, bool $add_empty = true ]] )

Эта функция полезна для получения множества переменных без многократного вызова функции filter_var().

Список параметров

data

Массив со строковыми ключами, содержащий данные для фильтрации.

definition

Массив, определяющий параметры. Допустимый ключ - строка string, содержащая имя переменной и допустимое значение - или тип фильтра, или массив array, при необходимости определяющий фильтр, флаги и параметры. Если значение является массивом, допустимыми ключами являются filter, который определяет тип фильтра, flags, который определяет любые флаги, применяемые к фильтру, и options, который определяет любые параметры, применяемые к фильтру. См. пример ниже для лучшего понимания.

Этот параметр также может быть целым числом, содержащим предопределенную фильтровую константу. Затем все значения во входном массиве фильтруются этим фильтром.

add_empty

Добавляет в результат отсутствующие ключи со значением NULL.

Возвращаемые значения

Массив, содержащий значения запрошенных переменных в случае успеха, или FALSE в случае возникновения ошибки. Значение массива будет FALSE, если фильтрация завершилась неудачей, или NULL, если если переменная не определена.

Примеры

Пример #1 Пример использования filter_var_array()

<?php
error_reporting(E_ALL | E_STRICT);
$data = array(
    'product_id'    => 'libgd<script>',
    'component'     => '10',
    'versions'      => '2.0.33',
    'testscalar'    => array('2', '23', '10', '12'),
    'testarray'     => '2',
);

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_FORCE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'versions'     => FILTER_SANITIZE_ENCODED,
    'doesnotexist' => FILTER_VALIDATE_INT,
    'testscalar'   => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_REQUIRE_SCALAR,
                           ),
    'testarray'    => array(
                            'filter' => FILTER_VALIDATE_INT,
                            'flags'  => FILTER_FORCE_ARRAY,
                           )

);

$myinputs = filter_var_array($data, $args);

var_dump($myinputs);
echo "\n";
?>

Результат выполнения данного примера:

array(6) {
  ["product_id"]=>
    string(17) "libgd%3Cscript%3E"
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
    string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр add_empty.

Смотрите также

  • filter_input_array() - Принимает несколько переменных извне PHP и, при необходимости, фильтрует их
  • filter_var() - Фильтрует переменную с помощью определенного фильтра
  • filter_input() - Принимает переменную извне PHP и, при необходимости, фильтрует ее
  • Типы фильтров


Фильтрует переменную с помощью определенного фильтра

  • « filter_var_array
  • Управление функциями »
  • PHP Manual
  • Фильтрация данных
  • Фильтрует переменную с помощью определенного фильтра

filter_var

(PHP 5 >= 5.2.0, PHP 7)

filter_var — Фильтрует переменную с помощью определенного фильтра

Описание

mixed filter_var ( mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options ]] )

Список параметров

variable

Значение переменной для фильтрации. Обратите внимание, что скалярные значения перед фильтрацией преобразуются к строкам.

filter

Идентификатор (ID) применяемого фильтра. На странице Типы фильтров приведен список доступных фильтров.

Если не указан, то используется FILTER_DEFAULT, который равнозначен FILTER_UNSAFE_RAW. Это значит, что по умолчанию не применяется никакого фильтра.

options

Ассоциативный массив параметров либо логическая дизъюнкция (операция ИЛИ) флагов. Если фильтр принимает параметры, флаги могут быть указаны в элементе массива "flags". Для фильтра "callback" должен быть указан тип callable. Фильтр "callback" должен принимать один аргумент, значение для фильтрации, и возвращать значение после фильтрации.

<?php
// используйте этот формат для фильтров с дополнительными параметрами
$options = array(
    'options' => array(
        'default' => 3, // значение, возвращаемое, если фильтрация завершилась неудачей
        // другие параметры
        'min_range' => 0
    ),
    'flags' => FILTER_FLAG_ALLOW_OCTAL,
);
$var = filter_var('0755', FILTER_VALIDATE_INT, $options);

// для фильтра, который принимает только флаги, вы можете передать их непосредственно
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);

// для фильтра, который принимает только флаги, вы так же можете передать их как массив
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
                  array('flags' => FILTER_NULL_ON_FAILURE));

// callback-фильтр валидации
function foo($value)
{
    // Ожидаемый формат: Фамилия, Имена
    if (strpos($value, ", ") === false) return false;
    list($surname, $givennames) = explode(", ", $value, 2);
    $empty = (empty($surname) || empty($givennames));
    $notstrings = (!is_string($surname) || !is_string($givennames));
    if ($empty || $notstrings) {
        return false;
    } else {
        return $value;
    }
}
$var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
?>

Возвращаемые значения

Возвращает отфильтрованные данные или FALSE, если фильтрация завершилась неудачей.

Примеры

Пример #1 Пример использования filter_var()

<?php
var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>

Результат выполнения данного примера:

string(15) "bob@example.com"
bool(false)

Смотрите также

  • filter_var_array() - Принимает несколько переменных и, при необходимости, фильтрует их
  • filter_input() - Принимает переменную извне PHP и, при необходимости, фильтрует ее
  • filter_input_array() - Принимает несколько переменных извне PHP и, при необходимости, фильтрует их
  • Типы фильтров
  • информация о типе callback


Управление функциями

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Управление функциями
    • call_user_func_array — Вызывает пользовательскую функцию с массивом параметров
    • call_user_func — Вызывает пользовательскую функцию, указанную в первом параметре
    • 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 — Вызывает пользовательскую функцию с массивом параметров
  • call_user_func — Вызывает пользовательскую функцию, указанную в первом параметре
  • 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 — Удаляет функцию из списка зарегистрированных для выполнения при каждом тике


Вызывает пользовательскую функцию с массивом параметров

  • « Управление функциями
  • call_user_func »
  • PHP Manual
  • Управление функциями
  • Вызывает пользовательскую функцию с массивом параметров

call_user_func_array

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

call_user_func_array — Вызывает пользовательскую функцию с массивом параметров

Описание

mixed call_user_func_array ( callable $callback , array $param_arr )

Вызывает пользовательскую функцию callback, с параметрами из массива param_arr.

Список параметров

callback

Вызываемая функция типа callable.

param_arr

Передаваемые в функцию параметры в виде индексированного массива.

Возвращаемые значения

Возвращает результат функции или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Изменилась интерпретация объектно-ориентированных ключевых слов, таких как parent и self. Ранее их вызов с помощью синтаксиса двойного двоеточия вызывал предупреждение уровня E_STRICT, так как они расценивались как статические вызовы.

Примеры

Пример #1 Пример использования функции call_user_func_array()

<?php
function foobar($arg, $arg2) {
    echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
    function bar($arg, $arg2) {
        echo __METHOD__, " got $arg and $arg2\n";
    }
}

// Вызываем функцию foobar() с 2 аргументами
call_user_func_array("foobar", array("one", "two"));

// Вызываем метод $foo->bar() с 2 аргументами
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));
?>

Результатом выполнения данного примера будет что-то подобное:

foobar got one and two
foo::bar got three and four

Пример #2 Пример использования call_user_func_array() и имени из пространства имен

<?php

namespace Foobar;

class Foo {
    static public function test($name) {
        print "Hello {$name}!\n";
    }
}

// Начиная с версии PHP 5.3.0
call_user_func_array(__NAMESPACE__ .'\Foo::test', array('Hannes'));

// Начиная с версии PHP 5.3.0
call_user_func_array(array(__NAMESPACE__ .'\Foo', 'test'), array('Philip'));

?>

Результатом выполнения данного примера будет что-то подобное:

Hello Hannes!
Hello Philip!

Пример #3 Использование lambda-функции

<?php

$func = function($arg1, $arg2) {
    return $arg1 * $arg2;
};

var_dump(call_user_func_array($func, array(2, 4))); /* Начиная с версии PHP 5.3.0 */

?>

Результат выполнения данного примера:

int(8)

Пример #4 Разбор значений по ссылке

<?php

function mega(&$a){
    $a = 55;
    echo "function mega \$a=$a\n";
}
$bar = 77;
call_user_func_array('mega',array(&$bar));
echo "global \$bar=$bar\n";

?>

Результат выполнения данного примера:

function mega $a=55
global $bar=55

Примечания

Замечание:

До PHP 5.4 переменные-ссылки в param_arr передавались в функции по ссылке вне зависимости от того, ожидает ли функция передачу соответствующего параметра по ссылке или нет. При использовании этого вида "динамической" передачи по ссылке не выводится предупреждение об устаревшем поведении, но тем не менее такая передача считается устаревшей и была удалена в PHP 5.4. Кроме того, это не влияет на встроенные функции, у которых учитывается сигнатура функции. Передача параметра функции по значению при ожидаемой передаче по ссылке вызовет предупреждение и заставит call_user_func() вернуть FALSE (однако имеется исключение для передаваемых значений, у которых количество ссылок равно 1, также как у литералов, поскольку последние могут быть преобразованы в ссылки без побочных последствий, однако запись значения в такие параметры не имеет никакого эффекта. Не полагайтесь на такое поведение, все-таки количество ссылок - это подробности реализации и правильность такого режима работы вызывает сомнения).

Замечание:

Callback-функции, зарегистрированные такими функциями как call_user_func() и call_user_func_array(), не будут вызваны при наличии не пойманного исключения, брошенного в предыдущей callback-функции.

Смотрите также

  • call_user_func() - Вызывает пользовательскую функцию, указанную в первом параметре
  • информация о типе callback
  • ReflectionFunction::invokeArgs() - Вызов функции с передачей аргументов
  • ReflectionMethod::invokeArgs() - Вызов метода с передачей аргументов массивом


Вызывает пользовательскую функцию, указанную в первом параметре

  • « call_user_func_array
  • create_function »
  • PHP Manual
  • Управление функциями
  • Вызывает пользовательскую функцию, указанную в первом параметре

call_user_func

(PHP 4, PHP 5, PHP 7)

call_user_func — Вызывает пользовательскую функцию, указанную в первом параметре

Описание

mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )

Вызывает пользовательскую функцию, переданную в параметре callback.

Список параметров

callback

Вызываемая функция типа callable.

parameter

Ноль или более параметров, передаваемые в функцию.

Замечание:

Учтите, что параметры для 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";
?>

Результат выполнения данного примера:

0
1

Возвращаемые значения

Возвращает значение, возвращенное callback-функцией.

Список изменений

Версия | Описание
5.3.0 | Изменилась интерпретация объектно-ориентированных ключевых слов, таких как parent и self. Ранее, при их вызове с помощью синтаксиса двойного двоеточия вызывалась ошибка уровня E_STRICT, т.к. они интерпретировались как статические вызовы.

Примеры

Пример #2 Пример использования call_user_func()

<?php
function barber($type)
{
    echo "Вы хотели стрижку $type, без проблем\n";
}
call_user_func('barber', "под горшок");
call_user_func('barber', "наголо");
?>

Результат выполнения данного примера:

Вы хотели стрижку под горшок, без проблем
Вы хотели стрижку наголо, без проблем

Пример #3 Использование call_user_func() и пространства имен

<?php

namespace Foobar;

class Foo {
    static public function test() {
        print "Привет, мир!\n";
    }
}

call_user_func(__NAMESPACE__ .'\Foo::test'); // Начиная с версии PHP 5.3.0
call_user_func(array(__NAMESPACE__ .'\Foo', 'test')); // Начиная с версии PHP 5.3.0

?>

Результат выполнения данного примера:

Привет, мир!
Привет, мир!

Пример #4 Вызов метода класса из call_user_func()

<?php

class myclass {
    static function say_hello()
    {
        echo "Привет!\n";
    }
}

$classname = "myclass";

call_user_func(array($classname, 'say_hello'));
call_user_func($classname .'::say_hello'); // Начиная с версии 5.2.3

$myobject = new myclass();

call_user_func(array($myobject, 'say_hello'));

?>

Результат выполнения данного примера:

Привет!
Привет!
Привет!

Пример #5 Использование лямбда-функции и call_user_func()

<?php
call_user_func(function($arg) { print "[$arg]\n"; }, 'test'); /* Начиная с версии PHP 5.3.0 */
?>

Результат выполнения данного примера:

[test]

Примечания

Замечание:

Callback-функции, зарегистрированные такими функциями как call_user_func() и call_user_func_array(), не будут вызваны при наличии не пойманного исключения, брошенного в предыдущей callback-функции.

Смотрите также

  • call_user_func_array() - Вызывает пользовательскую функцию с массивом параметров
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • информация о типе callback
  • ReflectionFunction::invoke() - Вызывает функцию
  • ReflectionMethod::invoke() - Вызов


Создаёт анонимную (лямбда) функцию

  • « call_user_func
  • forward_static_call_array »
  • PHP Manual
  • Управление функциями
  • Создаёт анонимную (лямбда) функцию

create_function

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

create_function — Создаёт анонимную (лямбда) функцию

Описание

string create_function ( string $args , string $code )

Создаёт анонимную функцию из переданных параметров и возвращает её уникальное имя.

Предостережение

Эта функция внутри себя делает вызов функции eval(), а значит содержит такие же проблема с безопасность, как и eval().

Если вы используете PHP 5.3.0 и новее, то используйте анонимные функции.

Список параметров

Обычно параметры передаются строкой в одинарных кавычках. Основанием для использования строк в одинарных кавычках является защита имён переменных от обработки, другими словами, если вы будете использовать двойные кавычки, то необходимо будет проэкранировать все имена переменных, вот так: \$avar.

args

Аргументы функции.

code

Код функции.

Возвращаемые значения

Возвращает уникальное имя функции в виде строки, или FALSE в случае ошибки.

Примеры

Пример #1 Создание анонимной функции с помощью create_function()

Вы можете использовать эту функцию (к примеру) для создания функций на основании информации, полученной во время выполнения программы:

<?php
$newfunc = create_function('$a,$b', 'return "ln($a) + ln($b) = " . log($a * $b);');
echo "Новая анонимная функция: $newfunc\n";
echo $newfunc(2, M_E) . "\n";
// выводит
// Новая анонимная функция: lambda_1
// ln(2) + ln(2.718281828459) = 1.6931471805599
?>

Или, возможно, чтобы иметь общий обработчик для применения набора операций к списку параметров:

Пример #2 Создание функции-обработчика с помощью create_function()

<?php
function process($var1, $var2, $farr)
{
    foreach ($farr as $f) {
        echo $f($var1, $var2) . "\n";
    }
}

// создаем кучу математических функций
$f1 = 'if ($a >=0) {return "b*a^2 = ".$b*sqrt($a);} else {return false;}';
$f2 = "return \"min(b^2+a, a^2,b) = \".min(\$a*\$a+\$b,\$b*\$b+\$a);";
$f3 = 'if ($a > 0 && $b != 0) {return "ln(a)/b = ".log($a)/$b; } else { return false; }';
$farr = array(
    create_function('$x,$y', 'return "тригонометрия: ".(sin($x) + $x*cos($y));'),
    create_function('$x,$y', 'return "гипотенуза: ".sqrt($x*$x + $y*$y);'),
    create_function('$a,$b', $f1),
    create_function('$a,$b', $f2),
    create_function('$a,$b', $f3)
    );

echo "\nИспользуем первый массив анонимных функций\n";
echo "параметры: 2.3445, M_PI\n";
process(2.3445, M_PI, $farr);

// теперь создаем кучу функций обработки строк
$garr = array(
    create_function('$b,$a', 'if (strncmp($a, $b, 3) == 0) return "** \"$a\" '.
    'и \"$b\"\n** для меня одинаковы! (смотря по первым 3 символам)";'),
    create_function('$a,$b', '; return "CRC: " . crc32($a) . ", ".crc32($b);'),
    create_function('$a,$b', '; return "similar(a,b) = " . similar_text($a, $b, &$p) . "($p%)";')
    );
echo "\nИспользование второго массива анонимных функций\n";
process("Варкалось. Хливкие шорьки пырялись по наве", "Варабей под кровлю, а сова на ловлю", $garr);
?>

Результат выполнения данного примера:

Используем первый массив анонимных функций
параметры: 2.3445, M_PI
тригонометрия: -1.6291725057799
гипотенуза: 3.9199852871011
b*a^2 = 4.8103313314525
min(b^2+a, a^2,b) = 8.6382729035898
ln(a)/b = 0.27122299212594

Использование второго массива анонимных функций
** "Варабей под кровлю, а сова на ловлю" и "Варкалось. Хливкие шорьки пырялись по наве"
** для меня одинаковы! (смотря по первым 3 символам)
CRC: -1622439884, -458910041
similar(a,b) = 25(35.460992907801%)

Однако, вероятно, наиболее обоснованное использование лямбда (анонимных) функций - это создание функций-обработчиков, например, при использовании array_walk() или usort()

Пример #3 Использование анонимной функции как функции-обработчика

<?php
$av = array("о, ", "эх, ", "то ", "это ");
array_walk($av, create_function('&$v,$k', '$v = $v . "манго";'));
print_r($av);
?>

Результат выполнения данного примера:

Array
(
  [0] => о, манго
  [1] => эх, манго
  [2] => то манго
  [3] => это манго
)

Сортировка строк по их длине

<?php

$sv = array("мало", "много", "большая строка", "строка строка строка");
print_r($sv);

?>

Результат выполнения данного примера:

Array
(
  [0] => мало
  [1] => много
  [2] => большая строка
  [3] => строка строка строка
)

Теперь отсортируем их в обратном порядке:

<?php

usort($sv, create_function('$a,$b','return strlen($b) - strlen($a);'));
print_r($sv);

?>

Результат выполнения данного примера:

Array
(
  [0] => строка строка строка
  [1] => большая строка
  [2] => много
  [3] => мало
)

Смотрите также

  • "Анонимные функции"


Вызов статического метода и передача параметров в виде массива

  • « create_function
  • forward_static_call »
  • PHP Manual
  • Управление функциями
  • Вызов статического метода и передача параметров в виде массива

forward_static_call_array

(PHP 5 >= 5.3.0, PHP 7)

forward_static_call_array — Вызов статического метода и передача параметров в виде массива

Описание

mixed forward_static_call_array ( callable $function , array $parameters )

Вызов пользовательской функции или метода заданного в параметре function. Эта функция должна вызываться в контексте метода и не может быть вызвана вне класса. Она использует познее статическое связывание. Все аргументы пересылаются в метод по значению и в виде массива, аналогично call_user_func_array().

Список параметров

function

Функция или метод для вызова. Этот параметр может быть массивом с именем класса и метода, либо строкой с именем функции.

parameter

Масив, содержащий все аргументы вызова функции.

Замечание:

Помните, что аргументы forward_static_call_array() не передаются по ссылке.

Возвращаемые значения

Возвращает результат функции, или FALSE, в случае ошибки.

Примеры

Пример #1 Пример использования forward_static_call_array()

<?php

class A
{
    const NAME = 'A';
    public static function test() {
        $args = func_get_args();
        echo static::NAME, " ".join(',', $args)." \n";
    }
}

class B extends A
{
    const NAME = 'B';

    public static function test() {
        echo self::NAME, "\n";
        forward_static_call_array(array('A', 'test'), array('more', 'args'));
        forward_static_call_array( 'test', array('other', 'args'));
    }
}

B::test('foo');

function test() {
        $args = func_get_args();
        echo "C ".join(',', $args)." \n";
    }

?>

Результат выполнения данного примера:

B
B more,args
C other,args

Смотрите также

  • forward_static_call() - Вызов статического метода
  • call_user_func() - Вызывает пользовательскую функцию, указанную в первом параметре
  • call_user_func_array() - Вызывает пользовательскую функцию с массивом параметров
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • информация о типе callback


Вызов статического метода

  • « forward_static_call_array
  • func_get_arg »
  • PHP Manual
  • Управление функциями
  • Вызов статического метода

forward_static_call

(PHP 5 >= 5.3.0, PHP 7)

forward_static_call — Вызов статического метода

Описание

mixed forward_static_call ( callable $function [, mixed $parameter [, mixed $... ]] )

Вызов пользовательской функции или метода заданного в параметре function с последующими параметрами. Эта функция должна вызываться в контексте метода и не может быть вызвана вне класса. Она использует познее статическое связывание.

Список параметров

function

Функция или метод для вызова. Этот параметр может быть массивом с именем класса и метода, либо строкой с именем функции.

parameter

Ноль или больше параметров, которые будут переданы вызываемой функции.

Возвращаемые значения

Возвращает результат функции, или 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() - Вызывает пользовательскую функцию с массивом параметров
  • call_user_func() - Вызывает пользовательскую функцию, указанную в первом параметре
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • информация о типе callback


Возвращает элемент из списка аргументов

  • « forward_static_call
  • func_get_args »
  • PHP Manual
  • Управление функциями
  • Возвращает элемент из списка аргументов

func_get_arg

(PHP 4, PHP 5, PHP 7)

func_get_arg — Возвращает элемент из списка аргументов

Описание

mixed func_get_arg ( int $arg_num )

Возвращает указанный аргумент из списка аргументов пользовательской функции.

Эта функция может быть использована совместно с func_get_args() и func_num_args() для создания функций с переменным количеством аргументов.

Список параметров

arg_num

Номер аргумента. Аргументы функции считаются с нуля.

Возвращаемые значения

Возвращает указанный аргумент, или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь может быть использована в качестве параметра функции.
5.3.0 | Если эта функция вызвана в глобальной области видимости файла, подключенного с помощью include или require из функции вызывающего файла, то теперь будет сгенерировано предупреждение и возвращено значение FALSE.

Ошибки

Генерирует предупреждение при вызове вне определения функции, или если arg_num больше реально переданного количества аргументов.

Примеры

Пример #1 Пример использования func_get_arg()

<?php
function foo()
{
     $numargs = func_num_args();
     echo "Количество аргументов: $numargs\n";
     if ($numargs >= 2) {
         echo "Второй аргумент: " . func_get_arg(1) . "\n";
     }
}

foo(1, 2, 3);
?>

Результат выполнения данного примера:

Количество аргументов: 3
Второй аргумент: 2

Пример #2 Использование func_get_arg() до и после PHP 5.3

test.php
<?php
function foo() {
    include './fga.inc';
}

foo('Первый аргумент', 'Второй аргумент');
?>

fga.inc
<?php

$arg = func_get_arg(1);
var_export($arg);

?>

Вывод до PHP 5.3:

'Второй аргумент'

Вывод в PHP 5.3 и выше:

Warning: func_get_arg():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false

Пример #3 Пример передачи аргументов по ссылке и по значению с func_get_arg()

<?php
function byVal($arg) {
    echo 'Передан          : ', var_export(func_get_arg(0)), PHP_EOL;
    $arg = 'baz';
    echo 'После изменения  : ', var_export(func_get_arg(0)), PHP_EOL;
}

function byRef(&$arg) {
    echo 'Передан          : ', var_export(func_get_arg(0)), PHP_EOL;
    $arg = 'baz';
    echo 'После изменения  : ', var_export(func_get_arg(0)), PHP_EOL;
}

$arg = 'bar';
byVal($arg);
byRef($arg);
?>

Результат выполнения данного примера в PHP 7:

Передан : 'bar'
После изменения : 'baz'
Передан : 'bar'
После изменения : 'baz'

Результат выполнения данного примера в PHP 5:

Передан : 'bar'
После изменения : 'bar'
Передан : 'bar'
После изменения : 'baz'

Примечания

Замечание:

Так как для определения параметров данной функции необходим контекст выполнения, она не может быть передана в качестве параметра в версиях PHP до 5.3.0. Если функцию все же необходимо передать, то нужно присвоить ее переменной, которую уже можно использовать при передаче.

Замечание:

Если аргументы были переданы по ссылке, то все изменения аргументов будут отражены на возвращаемых функцией значениях. В PHP 7 таже будут возвращены текущие значения, если аргументы переданы по значению

Замечание: Эта функция возвращает только копии переданных аргументов, и не возвращает значения по умолчанию (непереданных) аргументов.

Смотрите также

  • Синтаксис ... в PHP 5.6+
  • func_get_args()
  • func_num_args()


Возвращает массив, содержащий аргументы функции

  • « func_get_arg
  • func_num_args »
  • PHP Manual
  • Управление функциями
  • Возвращает массив, содержащий аргументы функции

func_get_args

(PHP 4, PHP 5, PHP 7)

func_get_args — Возвращает массив, содержащий аргументы функции

Описание

array func_get_args ( void )

Возвращает массив, содержащий аргументы функции.

Эта функция может быть использована совместно с func_num_args() и func_get_arg() для создания функций с переменным количеством аргументов.

Возвращаемые значения

Возвращает массив, в котором каждый элемент является копией соответствующего члена списка аргументов пользовательской функции.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь может быть использована в качестве параметра функции.
5.3.0 | Если эта функция вызвана в глобальной области видимости файла, подключенного с помощью include или require из функции вызывающего файла, то теперь будет сгенерировано предупреждение и возвращено значение FALSE.

Ошибки

Генерирует предупреждение при вызове вне определения функции.

Примеры

Пример #1 Пример использования func_get_args()

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Количество аргументов: $numargs\n";
    if ($numargs >= 2) {
        echo "Второй аргумент: " . func_get_arg(1) . "\n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Аргумент №$i: " . $arg_list[$i] . "\n";
    }
}

foo(1, 2, 3);
?>

Результат выполнения данного примера:

Количество аргументов: 3
Второй аргумент: 2
Аргумент №0: 1
Аргумент №1: 2
Аргумент №2: 3

Пример #2 Использование func_get_args() до и после PHP 5.3

test.php
<?php
function foo() {
    include './fga.inc';
}

foo('Первый аргумент', 'Второй аргумент');
?>

fga.inc
<?php

$args = func_get_args();
var_export($args);

?>

Вывод до PHP 5.3:

array (
  0 => 'Первый аргумент',
  1 => 'Второй аргумент',
)

Вывод в PHP 5.3 и выше:

Warning: func_get_args():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false

Пример #3 Пример передачи аргументов по ссылке и по значению с func_get_args()

<?php
function byVal($arg) {
    echo 'Передан          : ', var_export(func_get_args()), PHP_EOL;
    $arg = 'baz';
    echo 'После изменения  : ', var_export(func_get_args()), PHP_EOL;
}

function byRef(&$arg) {
    echo 'Передан          : ', var_export(func_get_args()), PHP_EOL;
    $arg = 'baz';
    echo 'После изменения  : ', var_export(func_get_args()), PHP_EOL;
}

$arg = 'bar';
byVal($arg);
byRef($arg);
?>

Результат выполнения данного примера в PHP 7:

Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'baz',
)
Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'baz',
)

Результат выполнения данного примера в PHP 5:

Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'bar',
)
Передан : array (
0 => 'bar',
)
После изменения : array (
0 => 'baz',
)

Примечания

Замечание:

Так как для определения параметров данной функции необходим контекст выполнения, она не может быть передана в качестве параметра в версиях PHP до 5.3.0. Если функцию все же необходимо передать, то нужно присвоить ее переменной, которую уже можно использовать при передаче.

Замечание:

Если аргументы были переданы по ссылке, то все изменения аргументов будут отражены на возвращаемых функцией значениях. В PHP 7 таже будут возвращены текущие значения, если аргументы переданы по значению

Замечание: Эта функция возвращает только копии переданных аргументов, и не возвращает значения по умолчанию (непереданных) аргументов.

Смотрите также

  • Синтаксис ... в PHP 5.6+
  • func_get_arg()
  • func_num_args()
  • ReflectionFunctionAbstract::getParameters()


Возвращает количество аргументов, переданных функции

  • « func_get_args
  • function_exists »
  • PHP Manual
  • Управление функциями
  • Возвращает количество аргументов, переданных функции

func_num_args

(PHP 4, PHP 5, PHP 7)

func_num_args — Возвращает количество аргументов, переданных функции

Описание

int func_num_args ( void )

Возвращает количество аргументов, переданных функции.

Эта функция также может быть использована совместно с func_get_arg() и func_get_args() для создания функций с переменным количеством аргументов.

Возвращаемые значения

Возвращает количество аргументов, переданных текущей пользовательской функции.

Список изменений

Версия | Описание
5.3.0 | Эта функция теперь может быть использована в качестве параметра функции.
5.3.0 | Если эта функция вызвана в глобальной области видимости файла, подключенного с помощью include или require из функции вызывающего файла, то теперь будет сгенерировано предупреждение и возвращено значение -1.

Ошибки

Генерирует предупреждение при вызове вне определения функции.

Примеры

Пример #1 Пример использования func_num_args()

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Количество аргументов: $numargs\n";
}

foo(1, 2, 3);
?>

Результат выполнения данного примера:

Количество аргументов: 3

Пример #2 Использование func_num_args() до и после PHP 5.3

test.php
<?php
function foo() {
    include './fna.php';
}

foo('Первый аргумент', 'Второй аргумент');
?>

fna.php
<?php

$num_args = func_num_args();
var_export($num_args);

?>

Вывод до PHP 5.3:

2

Вывод в PHP 5.3 и выше будет содержать что-то типа следующего:

Warning: func_num_args():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fna.php on line 3
-1

Примечания

Замечание:

Так как для определения параметров данной функции необходим контекст выполнения, она не может быть передана в качестве параметра в версиях PHP до 5.3.0. Если функцию все же необходимо передать, то нужно присвоить ее переменной, которую уже можно использовать при передаче.

Смотрите также

  • Синтаксис ... в PHP 5.6+
  • func_get_arg()
  • func_get_args()
  • ReflectionFunctionAbstract::getNumberOfParameters()


Возвращает TRUE, если указанная функция определена

  • « func_num_args
  • get_defined_functions »
  • PHP Manual
  • Управление функциями
  • Возвращает TRUE, если указанная функция определена

function_exists

(PHP 4, PHP 5, PHP 7)

function_exists — Возвращает TRUE, если указанная функция определена

Описание

bool function_exists ( string $function_name )

Проверяет, есть ли в списке определённых функций, как встроенных, так и пользовательских, функция function_name.

Список параметров

function_name

Имя функции, строка.

Возвращаемые значения

Возвращает TRUE, если function_name существует и является функцией, иначе возвращается FALSE.

Замечание:

Эта функция возвращает FALSE для языковых конструкций, таких как include_once или echo.

Примеры

Пример #1 Пример использования function_exists()

<?php
if (function_exists('imap_open')) {
    echo "IMAP функции доступны.<br />\n";
} else {
    echo "IMAP функции недоступны.<br />\n";
}
?>

Примечания

Замечание:

Обратите внимание, что название функции может присутствовать, даже если саму функцию невозможно использовать из-за настроек конфигурации или опций компиляции (например, как для функций image).

Смотрите также

  • method_exists() - Проверяет, существует ли метод в данном классе
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • get_defined_functions() - Возвращает массив всех определённых функций
  • class_exists() - Проверяет, был ли объявлен класс
  • extension_loaded() - Определение, загружено ли расширение


Возвращает массив всех определённых функций

  • « function_exists
  • register_shutdown_function »
  • PHP Manual
  • Управление функциями
  • Возвращает массив всех определённых функций

get_defined_functions

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

get_defined_functions — Возвращает массив всех определённых функций

Описание

array get_defined_functions ( void )

Возвращает массив всех определённых функций.

Возвращаемые значения

Эта функция возвращает многомерный массив, содержащий список всех определённых функций, встроенных и пользовательских. Встроенные функции перечислены в элементе массива $arr["internal"], а определенные пользователем - в элементе $arr["user"] (см. пример ниже).

Примеры

Пример #1 Пример использования get_defined_functions()

<?php
function myrow($id, $data)
{
    return "<tr><th>$id</th><td>$data</td></tr>\n";
}

$arr = get_defined_functions();

print_r($arr);
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [internal] => Array
        (
            [0] => zend_version
            [1] => func_num_args
            [2] => func_get_arg
            [3] => func_get_args
            [4] => strlen
            [5] => strcmp
            [6] => strncmp
            ...
            [750] => bcscale
            [751] => bccomp
        )

    [user] => Array
        (
            [0] => myrow
        )

)

Смотрите также

  • function_exists() - Возвращает TRUE, если указанная функция определена
  • get_defined_vars() - Возвращает массив всех определенных переменных
  • get_defined_constants() - Возвращает ассоциативный массив с именами и значениями всех предопределенных констант
  • get_declared_classes() - Возвращает массив с именами объявленных классов


Регистрирует функцию, которая выполнится по завершении работы скрипта

  • « get_defined_functions
  • register_tick_function »
  • PHP Manual
  • Управление функциями
  • Регистрирует функцию, которая выполнится по завершении работы скрипта

register_shutdown_function

(PHP 4, PHP 5, PHP 7)

register_shutdown_function — Регистрирует функцию, которая выполнится по завершении работы скрипта

Описание

void register_shutdown_function ( callable $callback [, mixed $parameter [, mixed $... ]] )

Регистрирует функцию callback, которая выполнится после завершения работы скрипта или при вызове функции exit().

Возможна регистрация нескольких подобных функций с помощью register_shutdown_function(), при этом функции будут выполняться в том порядке, в каком они были зарегистрированы. Если вы вызовете exit() в одной из зарегистрированных завершающих функций, процесс будет полностью остановлен и последующие завершающие функции не будут вызваны.

Список параметров

callback

Регистрируемая завершающая функция.

Завершающие функции вызываются в течение запроса. Это значит, что из них можно посылать данные на вывод и получать доступ к буферизации вывода.

parameter

Разрешается передавать параметры в завершающую функцию, указав их как дополнительные параметры.

...

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Если передано название несуществующей завершающей функции, то генерируется ошибка уровня E_WARNING.

Примеры

Пример #1 Пример использования register_shutdown_function()

<?php
function shutdown()
{
    // Это наша завершающая функция,
    // здесь мы можем выполнить кое-какую работу
    // перед тем как скрипт полностью завершится.

    echo 'Скрипт успешно завершился', PHP_EOL;
}

register_shutdown_function('shutdown');
?>

Примечания

Замечание:

На некоторых веб-серверах рабочая директория скрипта может измениться внутри завершающей функции, например, Apache.

Замечание:

Функции, выполняемые при завершении скрипта, не будут выполнены, если процесс был убит с сигналами SIGTERM или SIGKILL. Хотя вы и не можете перехватить SIGKILL, но вы можете использовать функцию pcntl_signal(), чтобы задать обработчик сигнала SIGTERM, который использует функцию exit(), чтобы завершить скрипт правильно.

Смотрите также

  • auto_append_file
  • exit() - Выводит сообщение и прекращает выполнение текущего скрипта
  • Раздел Обработка соединений


Регистрирует функцию для выполнения при каждом тике

  • « register_shutdown_function
  • unregister_tick_function »
  • PHP Manual
  • Управление функциями
  • Регистрирует функцию для выполнения при каждом тике

register_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

register_tick_function — Регистрирует функцию для выполнения при каждом тике

Описание

bool register_tick_function ( callable $function [, mixed $arg [, mixed $... ]] )

Регистрирует функцию function, которая должна вызываться при каждом тике.

Список параметров

function

Строка с именем функции, или массив, состоящий из объекта и метода.

arg

...

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования register_tick_function()

<?php
declare(ticks=1);

// using a function as the callback
register_tick_function('my_function', true);

// using an object->method
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), true);
?>

Список изменений

Версия | Описание
5.3.0 | Тики теперь поддерживаются и на потоковых модулях веб-серверов.

Примечания

Внимание

Не используйте register_tick_function() на потоковых модулях веб-серверов с PHP 5.2 и ниже.

Смотрите также

  • declare
  • unregister_tick_function() - Удаляет функцию из списка зарегистрированных для выполнения при каждом тике


Удаляет функцию из списка зарегистрированных для выполнения при каждом тике

  • « register_tick_function
  • Quickhash »
  • PHP Manual
  • Управление функциями
  • Удаляет функцию из списка зарегистрированных для выполнения при каждом тике

unregister_tick_function

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

unregister_tick_function — Удаляет функцию из списка зарегистрированных для выполнения при каждом тике

Описание

void unregister_tick_function ( string $function_name )

Удаляет function_name из списка функций, зарегистрированных для выполнения при каждом тике (см. tick).

Список параметров

function_name

Название функции, строка.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • register_tick_function() - Регистрирует функцию для выполнения при каждом тике


Quickhash

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
  • Предопределенные константы
  • Примеры
  • QuickHashIntSet — The QuickHashIntSet class
    • QuickHashIntSet::add — This method adds a new entry to the set
    • QuickHashIntSet::__construct — Creates a new QuickHashIntSet object
    • QuickHashIntSet::delete — This method deletes an entry from the set
    • QuickHashIntSet::exists — This method checks whether a key is part of the set
    • QuickHashIntSet::getSize — Returns the number of elements in the set
    • QuickHashIntSet::loadFromFile — This factory method creates a set from a file
    • QuickHashIntSet::loadFromString — This factory method creates a set from a string
    • QuickHashIntSet::saveToFile — This method stores an in-memory set to disk
    • QuickHashIntSet::saveToString — This method returns a serialized version of the set
  • QuickHashIntHash — The QuickHashIntHash class
    • QuickHashIntHash::add — This method adds a new entry to the hash
    • QuickHashIntHash::__construct — Creates a new QuickHashIntHash object
    • QuickHashIntHash::delete — This method deletes am entry from the hash
    • QuickHashIntHash::exists — This method checks whether a key is part of the hash
    • QuickHashIntHash::get — This method retrieves a value from the hash by its key
    • QuickHashIntHash::getSize — Returns the number of elements in the hash
    • QuickHashIntHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashIntHash::loadFromString — This factory method creates a hash from a string
    • QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashIntHash::saveToString — This method returns a serialized version of the hash
    • QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntHash::update — This method updates an entry in the hash with a new value
  • QuickHashStringIntHash — The QuickHashStringIntHash class
    • QuickHashStringIntHash::add — This method adds a new entry to the hash
    • QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object
    • QuickHashStringIntHash::delete — This method deletes am entry from the hash
    • QuickHashStringIntHash::exists — This method checks whether a key is part of the hash
    • QuickHashStringIntHash::get — This method retrieves a value from the hash by its key
    • QuickHashStringIntHash::getSize — Returns the number of elements in the hash
    • QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string
    • QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash
    • QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashStringIntHash::update — This method updates an entry in the hash with a new value
  • QuickHashIntStringHash — The QuickHashIntStringHash class
    • QuickHashIntStringHash::add — This method adds a new entry to the hash
    • QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object
    • QuickHashIntStringHash::delete — This method deletes am entry from the hash
    • QuickHashIntStringHash::exists — This method checks whether a key is part of the hash
    • QuickHashIntStringHash::get — This method retrieves a value from the hash by its key
    • QuickHashIntStringHash::getSize — Returns the number of elements in the hash
    • QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file
    • QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string
    • QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk
    • QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash
    • QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
    • QuickHashIntStringHash::update — This method updates an entry in the hash with a new value


Введение

The quickhash extension contains a set of specific strongly-typed classes to deal with specific set and hash implementations.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

This extension requires no additional libraries.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/quickhash


  • « Настройка во время выполнения
  • Примеры »
  • PHP Manual
  • Quickhash
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Пример #1 Quickhash Example

<?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 Example

<?php
$hash = new QuickHashIntHash( 64 );

// Adding and updating hash entries.
$hash[3] = 145926;
$hash[3] = 1415926;
$hash[2] = 72;

// Checking if keys exist
var_dump( isset( $hash[3] ) );

// Removing hash entries
unset( $hash[2] );

// Retrieving the value stored for a hash
echo $hash[3], "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
1415926

Пример #3 Quickhash Iterator Example

<?php
$hash = new QuickHashIntHash( 64 );

// Adding hash entries.
$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 Example

<?php
$hash = new QuickHashIntStringHash( 64 );

// Adding hash entries.
$hash[1] = "one million four hundred fifteen thousand nine hundred twenty six";
$hash->add( 2, "one more" );

foreach( $hash as $key => $value )
{
    echo $key, ' => ', $value, "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

1 => one million four hundred fifteen thousand nine hundred twenty six
2 => one more


The QuickHashIntSet class

(PECL quickhash >= Unknown)

Введение

This class wraps around a set containing integer numbers.

Sets can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Обзор классов

QuickHashIntSet {
/* Constants */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer HASHER_NO_HASH = 256 ;
const integer HASHER_JENKINS1 = 512 ;
const integer HASHER_JENKINS2 = 1024 ;
/* Methods */
public bool add ( int $key )
public __construct ( int $size [, int $options ] )
public bool delete ( int $key )
public bool exists ( int $key )
publicint getSize ( void )
public static QuickHashIntSet loadFromFile ( string $filename [, int $size [, int $options ]] )
public static QuickHashIntSet loadFromString ( string $contents [, int $size [, int $options ]] )
public void saveToFile ( string $filename )
public string saveToString ( void )
}

Предопределенные константы

QuickHashIntSet::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntSet::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntSet::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntSet::HASHER_JENKINS2

Selects a variant hashing algorithm.

Содержание

  • QuickHashIntSet::add — This method adds a new entry to the set
  • QuickHashIntSet::__construct — Creates a new QuickHashIntSet object
  • QuickHashIntSet::delete — This method deletes an entry from the set
  • QuickHashIntSet::exists — This method checks whether a key is part of the set
  • QuickHashIntSet::getSize — Returns the number of elements in the set
  • QuickHashIntSet::loadFromFile — This factory method creates a set from a file
  • QuickHashIntSet::loadFromString — This factory method creates a set from a string
  • QuickHashIntSet::saveToFile — This method stores an in-memory set to disk
  • QuickHashIntSet::saveToString — This method returns a serialized version of the set


This method adds a new entry to the set

  • « QuickHashIntSet
  • QuickHashIntSet::__construct »
  • PHP Manual
  • QuickHashIntSet
  • This method adds a new entry to the set

QuickHashIntSet::add

(PECL quickhash >= Unknown)

QuickHashIntSet::add — This method adds a new entry to the set

Описание

public bool QuickHashIntSet::add ( int $key )

This method adds a new entry to the set, and returns whether the entry was added. Entries are by default always added unless QuickHashIntSet::CHECK_FOR_DUPES has been passed when the set was created.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

TRUE when the entry was added, and FALSE if the entry was not added.

Примеры

Пример #1 QuickHashIntSet::add() example

<?php
echo "without dupe checking\n";
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

echo "\nwith dupe checking\n";
$set = new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

without dupe checking
bool(false)
bool(true)
bool(true)
bool(true)

with dupe checking
bool(false)
bool(true)
bool(true)
bool(false)


Creates a new QuickHashIntSet object

  • « QuickHashIntSet::add
  • QuickHashIntSet::delete »
  • PHP Manual
  • QuickHashIntSet
  • Creates a new QuickHashIntSet object

QuickHashIntSet::__construct

(PECL quickhash >= Unknown)

QuickHashIntSet::__construct — Creates a new QuickHashIntSet object

Описание

public QuickHashIntSet::__construct ( int $size [, int $options ] )

This constructor creates a new QuickHashIntSet. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Список параметров

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The options that you can pass in are: QuickHashIntSet::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the set; QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntSet::HASHER_NO_HASH, QuickHashIntSet::HASHER_JENKINS1 or QuickHashIntSet::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Возвращаемые значения

Returns a new QuickHashIntSet object.

Примеры

Пример #1 QuickHashIntSet::__construct() example

<?php
var_dump( new QuickHashIntSet( 1024 ) );
var_dump( new QuickHashIntSet( 1024, QuickHashIntSet::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntSet(
        1024,
        QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC | QuickHashIntSet::HASHER_JENKINS2
    )
);
?>


This method deletes an entry from the set

  • « QuickHashIntSet::__construct
  • QuickHashIntSet::exists »
  • PHP Manual
  • QuickHashIntSet
  • This method deletes an entry from the set

QuickHashIntSet::delete

(PECL quickhash >= Unknown)

QuickHashIntSet::delete — This method deletes an entry from the set

Описание

public bool QuickHashIntSet::delete ( int $key )

This method deletes an entry from the set, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the set itself is freed.

Список параметров

key

The key of the entry to delete.

Возвращаемые значения

TRUE when the entry was deleted, and FALSE if the entry was not deleted.

Примеры

Пример #1 QuickHashIntSet::delete() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->delete( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->delete( 4 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the set

  • « QuickHashIntSet::delete
  • QuickHashIntSet::getSize »
  • PHP Manual
  • QuickHashIntSet
  • This method checks whether a key is part of the set

QuickHashIntSet::exists

(PECL quickhash >= Unknown)

QuickHashIntSet::exists — This method checks whether a key is part of the set

Описание

public bool QuickHashIntSet::exists ( int $key )

This method checks whether an entry with the provided key exists in the set.

Список параметров

key

The key of the entry to check for whether it exists in the set.

Возвращаемые значения

Returns TRUE when the entry was found, or FALSE when the entry is not found.

Примеры

Пример #1 QuickHashIntSet::exists() example

<?php
//generate 200000 elements
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Creating set: ", microtime( true ), "\n";
$set = new QuickHashIntSet( 100000 );
echo "Adding elements: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
     $set->add( $key );
}

echo "Doing 1000 tests: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
     $foundCount += $set->exists( $key );
}
echo "Done, $foundCount found: ", microtime( true ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Creating set: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


Returns the number of elements in the set

  • « QuickHashIntSet::exists
  • QuickHashIntSet::loadFromFile »
  • PHP Manual
  • QuickHashIntSet
  • Returns the number of elements in the set

QuickHashIntSet::getSize

(PECL quickhash >= Unknown)

QuickHashIntSet::getSize — Returns the number of elements in the set

Описание

publicint QuickHashIntSet::getSize ( void )

Returns the number of elements in the set.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The number of elements in the set.

Примеры

Пример #1 QuickHashIntSet::getSize() example

<?php
$set = new QuickHashIntSet( 8 );
var_dump( $set->add( 2 ) );
var_dump( $set->add( 3 ) );
var_dump( $set->getSize() );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
int(2)


This factory method creates a set from a file

  • « QuickHashIntSet::getSize
  • QuickHashIntSet::loadFromString »
  • PHP Manual
  • QuickHashIntSet
  • This factory method creates a set from a file

QuickHashIntSet::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromFile — This factory method creates a set from a file

Описание

public static QuickHashIntSet QuickHashIntSet::loadFromFile ( string $filename [, int $size [, int $options ]] )

This factory method creates a new set from a definition file on disk. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses.

Список параметров

filename

The filename of the file to read the set from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the set, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashIntSet.

Примеры

Пример #1 QuickHashIntSet::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.set";
$set = QuickHashIntSet::loadFromFile(
    $file,
    QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $set->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a set from a string

  • « QuickHashIntSet::loadFromFile
  • QuickHashIntSet::saveToFile »
  • PHP Manual
  • QuickHashIntSet
  • This factory method creates a set from a string

QuickHashIntSet::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntSet::loadFromString — This factory method creates a set from a string

Описание

public static QuickHashIntSet QuickHashIntSet::loadFromString ( string $contents [, int $size [, int $options ]] )

This factory method creates a new set from a definition in a string. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses.

Список параметров

contents

The string containing a serialized format of the set.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the set, rounded up to the nearest power of two automatically limited from 64 to 4194304.

Возвращаемые значения

Returns a new QuickHashIntSet.

Примеры

Пример #1 QuickHashIntSet::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.set" );
$set = QuickHashIntSet::loadFromString(
    $contents,
    QuickHashIntSet::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $set->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory set to disk

  • « QuickHashIntSet::loadFromString
  • QuickHashIntSet::saveToString »
  • PHP Manual
  • QuickHashIntSet
  • This method stores an in-memory set to disk

QuickHashIntSet::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToFile — This method stores an in-memory set to disk

Описание

public void QuickHashIntSet::saveToFile ( string $filename )

This method stores an existing set to a file on disk, in the same format that loadFromFile() can read.

Список параметров

filename

The filename of the file to store the hash in.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 QuickHashIntSet::saveToFile() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

$set->saveToFile( '/tmp/test.set' );
?>


This method returns a serialized version of the set

  • « QuickHashIntSet::saveToFile
  • QuickHashIntHash »
  • PHP Manual
  • QuickHashIntSet
  • This method returns a serialized version of the set

QuickHashIntSet::saveToString

(PECL quickhash >= Unknown)

QuickHashIntSet::saveToString — This method returns a serialized version of the set

Описание

public string QuickHashIntSet::saveToString ( void )

This method returns a serialized version of the set in the same format that loadFromString() can read.

Возвращаемые значения

This method returns a string containing a serialized format of the set. Each element is stored as a four byte value in the Endianness that the current system uses.

Примеры

Пример #1 QuickHashIntSet::saveToString() example

<?php
$set = new QuickHashIntSet( 1024 );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );
var_dump( $set->exists( 4 ) );
var_dump( $set->add( 4 ) );

var_dump( $set->saveToString() );
?>


The QuickHashIntHash class

(PECL quickhash >= Unknown)

Введение

This class wraps around a hash containing integer numbers, where the values are also integer numbers. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Обзор классов

QuickHashIntHash {
/* Constants */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer HASHER_NO_HASH = 256 ;
const integer HASHER_JENKINS1 = 512 ;
const integer HASHER_JENKINS2 = 1024 ;
/* Methods */
public bool add ( int $key [, int $value ] )
public __construct ( int $size [, int $options ] )
public bool delete ( int $key )
public bool exists ( int $key )
public int get ( int $key )
public int getSize ( void )
public static QuickHashIntHash loadFromFile ( string $filename [, int $options ] )
public static QuickHashIntHash loadFromString ( string $contents [, int $options ] )
public void saveToFile ( string $filename )
public string saveToString ( void )
public bool set ( int $key , int $value )
public bool update ( int $key , int $value )
}

Предопределенные константы

QuickHashIntHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntHash::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntHash::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntHash::HASHER_JENKINS2

Selects a variant hashing algorithm.

Содержание

  • QuickHashIntHash::add — This method adds a new entry to the hash
  • QuickHashIntHash::__construct — Creates a new QuickHashIntHash object
  • QuickHashIntHash::delete — This method deletes am entry from the hash
  • QuickHashIntHash::exists — This method checks whether a key is part of the hash
  • QuickHashIntHash::get — This method retrieves a value from the hash by its key
  • QuickHashIntHash::getSize — Returns the number of elements in the hash
  • QuickHashIntHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashIntHash::loadFromString — This factory method creates a hash from a string
  • QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashIntHash::saveToString — This method returns a serialized version of the hash
  • QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashIntHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashIntHash
  • QuickHashIntHash::__construct »
  • PHP Manual
  • QuickHashIntHash
  • This method adds a new entry to the hash

QuickHashIntHash::add

(PECL quickhash >= Unknown)

QuickHashIntHash::add — This method adds a new entry to the hash

Описание

public bool QuickHashIntHash::add ( int $key [, int $value ] )

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashIntHash::CHECK_FOR_DUPES has been passed when the hash was created.

Список параметров

key

The key of the entry to add.

value

The optional value of the entry to add. If no value is specified, 1 will be used.

Возвращаемые значения

TRUE when the entry was added, and FALSE if the entry was not added.

Примеры

Пример #1 QuickHashIntHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 22 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 12 ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashIntHash( 1024, QuickHashIntHash::CHECK_FOR_DUPES );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 78 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, 9 ) );

echo "\ndefault value\n";
var_dump( $hash->add( 5 ) );
var_dump( $hash->get( 5 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

without dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

with dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)

default value
bool(true)
int(1)


Creates a new QuickHashIntHash object

  • « QuickHashIntHash::add
  • QuickHashIntHash::delete »
  • PHP Manual
  • QuickHashIntHash
  • Creates a new QuickHashIntHash object

QuickHashIntHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntHash::__construct — Creates a new QuickHashIntHash object

Описание

public QuickHashIntHash::__construct ( int $size [, int $options ] )

This constructor creates a new QuickHashIntHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Список параметров

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashIntHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash; QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntHash::HASHER_NO_HASH, QuickHashIntHash::HASHER_JENKINS1 or QuickHashIntHash::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Возвращаемые значения

Returns a new QuickHashIntHash object.

Примеры

Пример #1 QuickHashIntHash::__construct() example

<?php
var_dump( new QuickHashIntHash( 1024 ) );
var_dump( new QuickHashIntHash( 1024, QuickHashIntHash::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntHash(
        1024,
        QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC | QuickHashIntHash::HASHER_JENKINS2
    )
);
?>


This method deletes am entry from the hash

  • « QuickHashIntHash::__construct
  • QuickHashIntHash::exists »
  • PHP Manual
  • QuickHashIntHash
  • This method deletes am entry from the hash

QuickHashIntHash::delete

(PECL quickhash >= Unknown)

QuickHashIntHash::delete — This method deletes am entry from the hash

Описание

public bool QuickHashIntHash::delete ( int $key )

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return FALSE like would happen with any other deletion failure.

Список параметров

key

The key of the entry to delete.

Возвращаемые значения

TRUE when the entry was deleted, and FALSE if the entry was not deleted.

Примеры

Пример #1 QuickHashIntHash::delete() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 5 ) );
var_dump( $hash->delete( 4 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->delete( 4 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashIntHash::delete
  • QuickHashIntHash::get »
  • PHP Manual
  • QuickHashIntHash
  • This method checks whether a key is part of the hash

QuickHashIntHash::exists

(PECL quickhash >= Unknown)

QuickHashIntHash::exists — This method checks whether a key is part of the hash

Описание

public bool QuickHashIntHash::exists ( int $key )

This method checks whether an entry with the provided key exists in the hash.

Список параметров

key

The key of the entry to check for whether it exists in the hash.

Возвращаемые значения

Returns TRUE when the entry was found, or FALSE when the entry is not found.

Примеры

Пример #1 QuickHashIntHash::exists() example

<?php
//generate 200000 elements
$array = range( 0, 199999 );
$existingEntries = array_rand( array_flip( $array ), 180000 );
$testForEntries = array_rand( array_flip( $array ), 1000 );
$foundCount = 0;

echo "Creating hash: ", microtime( true ), "\n";
$hash = new QuickHashIntHash( 100000 );
echo "Adding elements: ", microtime( true ), "\n";
foreach( $existingEntries as $key )
{
     $hash->add( $key, 56 );
}

echo "Doing 1000 tests: ", microtime( true ), "\n";
foreach( $testForEntries as $key )
{
     $foundCount += $hash->exists( $key );
}
echo "Done, $foundCount found: ", microtime( true ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

Creating hash: 1263588703.0748
Adding elements: 1263588703.0757
Doing 1000 tests: 1263588703.7851
Done, 898 found: 1263588703.7897


This method retrieves a value from the hash by its key

  • « QuickHashIntHash::exists
  • QuickHashIntHash::getSize »
  • PHP Manual
  • QuickHashIntHash
  • This method retrieves a value from the hash by its key

QuickHashIntHash::get

(PECL quickhash >= Unknown)

QuickHashIntHash::get — This method retrieves a value from the hash by its key

Описание

public int QuickHashIntHash::get ( int $key )

This method retrieves a value from the hash by its key.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The value if the key exists, or NULL if the key wasn't part of the hash.

Примеры

Пример #1 QuickHashIntHash::get() example

<?php
$hash = new QuickHashIntHash( 8 );
var_dump( $hash->get( 1 ) );

var_dump( $hash->add( 2 ) );
var_dump( $hash->get( 2 ) );

var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->get( 3 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
int(1)
bool(true)
int(5)


Returns the number of elements in the hash

  • « QuickHashIntHash::get
  • QuickHashIntHash::loadFromFile »
  • PHP Manual
  • QuickHashIntHash
  • Returns the number of elements in the hash

QuickHashIntHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntHash::getSize — Returns the number of elements in the hash

Описание

public int QuickHashIntHash::getSize ( void )

Returns the number of elements in the hash.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The number of elements in the hash.

Примеры

Пример #1 QuickHashIntHash::getSize() example

<?php
$hash = new QuickHashIntHash( 8 );
var_dump( $hash->add( 2 ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashIntHash::getSize
  • QuickHashIntHash::loadFromString »
  • PHP Manual
  • QuickHashIntHash
  • This factory method creates a hash from a file

QuickHashIntHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromFile — This factory method creates a hash from a file

Описание

public static QuickHashIntHash QuickHashIntHash::loadFromFile ( string $filename [, int $options ] )

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x11\0', the number of elements as a 32 bit signed integer in system Endianness, followed by 32 bit signed integers packed together in the Endianness that the system that the code runs on uses. For each hash element there are two 32 bit signed integers stored. The first of each element is the key, and the second is the value belonging to the key. An example could be:

Пример #1 QuickHash IntHash file format

00000000  51 48 11 00 02 00 00 00  01 00 00 00 01 00 00 00  |QH..............|
00000010  03 00 00 00 09 00 00 00                           |........|
00000018

Пример #2 QuickHash IntHash file format

header signature ('QH'; key type: 1; value type: 1; filler: \0x00)
00000000  51 48 11 00

number of elements:
00000004  02 00 00 00

data string:
00000000  01 00 00 00 01 00 00 00  03 00 00 00 09 00 00 00

key/value 1 (key = 1, value = 1)
01 00 00 00  01 00 00 00

key/value 2 (key = 3, value = 9)
03 00 00 00  09 00 00 00

Список параметров

filename

The filename of the file to read the hash from.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashIntHash.

Примеры

Пример #3 QuickHashIntHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.hash";
$hash = QuickHashIntHash::loadFromFile(
    $file,
    QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a hash from a string

  • « QuickHashIntHash::loadFromFile
  • QuickHashIntHash::saveToFile »
  • PHP Manual
  • QuickHashIntHash
  • This factory method creates a hash from a string

QuickHashIntHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromString — This factory method creates a hash from a string

Описание

public static QuickHashIntHash QuickHashIntHash::loadFromString ( string $contents [, int $options ] )

This factory method creates a new hash from a definition in a string. The file format consists of 32 bit signed integers packed together in the Endianness that the system that the code runs on uses. For each element there are two 32 bit signed integers stored. The first of each element is the key, and the second is the value belonging to the key.

Список параметров

contents

The string containing a serialized format of the hash.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashIntHash.

Примеры

Пример #1 QuickHashIntHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash" );
$hash = QuickHashIntHash::loadFromString(
    $contents,
    QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory hash to disk

  • « QuickHashIntHash::loadFromString
  • QuickHashIntHash::saveToString »
  • PHP Manual
  • QuickHashIntHash
  • This method stores an in-memory hash to disk

QuickHashIntHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToFile — This method stores an in-memory hash to disk

Описание

public void QuickHashIntHash::saveToFile ( string $filename )

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Список параметров

filename

The filename of the file to store the hash in.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 QuickHashIntHash::saveToFile() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 43 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 52 ) );

$hash->saveToFile( '/tmp/test.hash' );
?>


This method returns a serialized version of the hash

  • « QuickHashIntHash::saveToFile
  • QuickHashIntHash::set »
  • PHP Manual
  • QuickHashIntHash
  • This method returns a serialized version of the hash

QuickHashIntHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntHash::saveToString — This method returns a serialized version of the hash

Описание

public string QuickHashIntHash::saveToString ( void )

This method returns a serialized version of the hash in the same format that loadFromString() can read.

Возвращаемые значения

This method returns a string containing a serialized format of the hash. Each element is stored as a four byte value in the Endianness that the current system uses.

Примеры

Пример #1 QuickHashIntHash::saveToString() example

<?php
$hash = new QuickHashIntHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 34 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, 55 ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashIntHash::saveToString
  • QuickHashIntHash::update »
  • PHP Manual
  • QuickHashIntHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashIntHash::set

(PECL quickhash >= Unknown)

QuickHashIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Описание

public bool QuickHashIntHash::set ( int $key , int $value )

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add or update.

value

The new value to set the entry with.

Возвращаемые значения

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Примеры

Пример #1 QuickHashIntHash::set() example

<?php
$hash = new QuickHashIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( 46692 ) );
var_dump( $hash->set( 46692, 16091 ) );
var_dump( $hash->get( 46692 ) );

echo "Set->Update\n";
var_dump( $hash->set( 46692, 29906 ) );
var_dump( $hash->get( 46692 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


This method updates an entry in the hash with a new value

  • « QuickHashIntHash::set
  • QuickHashStringIntHash »
  • PHP Manual
  • QuickHashIntHash
  • This method updates an entry in the hash with a new value

QuickHashIntHash::update

(PECL quickhash >= Unknown)

QuickHashIntHash::update — This method updates an entry in the hash with a new value

Описание

public bool QuickHashIntHash::update ( int $key , int $value )

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add.

value

The new value to update the entry with.

Возвращаемые значения

TRUE when the entry was found and updated, and FALSE if the entry was not part of the hash already.

Примеры

Пример #1 QuickHashIntHash::update() example

<?php
$hash = new QuickHashIntHash( 1024 );

var_dump( $hash->add( 141421, 173205 ) );
var_dump( $hash->update( 141421, 223606 ) );
var_dump( $hash->get( 141421 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
int(223606)


The QuickHashStringIntHash class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

This class wraps around a hash containing strings, where the values are integer numbers. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Обзор классов

QuickHashStringIntHash {
/* Constants */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
/* Methods */
public bool add ( string $key , int $value )
public __construct ( int $size [, int $options = 0 ] )
public bool delete ( string $key )
public bool exists ( string $key )
public mixed get ( string $key )
public int getSize ( void )
public static QuickHashStringIntHash loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] )
public static QuickHashStringIntHash loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] )
public void saveToFile ( string $filename )
public string saveToString ( void )
public int set ( string $key , int $value )
public bool update ( string $key , int $value )
}

Предопределенные константы

QuickHashStringIntHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

Содержание

  • QuickHashStringIntHash::add — This method adds a new entry to the hash
  • QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object
  • QuickHashStringIntHash::delete — This method deletes am entry from the hash
  • QuickHashStringIntHash::exists — This method checks whether a key is part of the hash
  • QuickHashStringIntHash::get — This method retrieves a value from the hash by its key
  • QuickHashStringIntHash::getSize — Returns the number of elements in the hash
  • QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string
  • QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash
  • QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashStringIntHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashStringIntHash
  • QuickHashStringIntHash::__construct »
  • PHP Manual
  • QuickHashStringIntHash
  • This method adds a new entry to the hash

QuickHashStringIntHash::add

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::add — This method adds a new entry to the hash

Описание

public bool QuickHashStringIntHash::add ( string $key , int $value )

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashStringIntHash::CHECK_FOR_DUPES has been passed when the hash was created.

Список параметров

key

The key of the entry to add.

value

The value of the entry to add.

Возвращаемые значения

TRUE when the entry was added, and FALSE if the entry was not added.

Примеры

Пример #1 QuickHashStringIntHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 22 ) );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 12 ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES );
var_dump( $hash );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 78 ) );
var_dump( $hash->exists( "four" ) );
var_dump( $hash->get( "four" ) );
var_dump( $hash->add( "four", 9 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

without dupe checking
object(QuickHashStringIntHash)#1 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(22)
bool(true)

with dupe checking
object(QuickHashStringIntHash)#2 (0) {
}
bool(false)
bool(false)
bool(true)
bool(true)
int(78)
bool(false)


Creates a new QuickHashStringIntHash object

  • « QuickHashStringIntHash::add
  • QuickHashStringIntHash::delete »
  • PHP Manual
  • QuickHashStringIntHash
  • Creates a new QuickHashStringIntHash object

QuickHashStringIntHash::__construct

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::__construct — Creates a new QuickHashStringIntHash object

Описание

public QuickHashStringIntHash::__construct ( int $size [, int $options = 0 ] )

This constructor creates a new QuickHashStringIntHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Список параметров

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashStringIntHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash and QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager.

Возвращаемые значения

Returns a new QuickHashStringIntHash object.

Примеры

Пример #1 QuickHashStringIntHash::__construct() example

<?php
var_dump( new QuickHashStringIntHash( 1024 ) );
var_dump( new QuickHashStringIntHash( 1024, QuickHashStringIntHash::CHECK_FOR_DUPES ) );
?>


This method deletes am entry from the hash

  • « QuickHashStringIntHash::__construct
  • QuickHashStringIntHash::exists »
  • PHP Manual
  • QuickHashStringIntHash
  • This method deletes am entry from the hash

QuickHashStringIntHash::delete

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::delete — This method deletes am entry from the hash

Описание

public bool QuickHashStringIntHash::delete ( string $key )

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return FALSE like would happen with any other deletion failure.

Список параметров

key

The key of the entry to delete.

Возвращаемые значения

TRUE when the entry was deleted, and FALSE if the entry was not deleted.

Примеры

Пример #1 QuickHashStringIntHash::delete() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->exists( 'four' ) );
var_dump( $hash->add( 'four', 5 ) );
var_dump( $hash->get( 'four' ) );
var_dump( $hash->delete( 'four' ) );
var_dump( $hash->exists( 'four' ) );
var_dump( $hash->get( 'four' ) );
var_dump( $hash->delete( 'four' ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
int(5)
bool(true)
bool(false)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashStringIntHash::delete
  • QuickHashStringIntHash::get »
  • PHP Manual
  • QuickHashStringIntHash
  • This method checks whether a key is part of the hash

QuickHashStringIntHash::exists

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::exists — This method checks whether a key is part of the hash

Описание

public bool QuickHashStringIntHash::exists ( string $key )

This method checks whether an entry with the provided key exists in the hash.

Список параметров

key

The key of the entry to check for whether it exists in the hash.

Возвращаемые значения

Returns TRUE when the entry was found, or FALSE when the entry is not found.


This method retrieves a value from the hash by its key

  • « QuickHashStringIntHash::exists
  • QuickHashStringIntHash::getSize »
  • PHP Manual
  • QuickHashStringIntHash
  • This method retrieves a value from the hash by its key

QuickHashStringIntHash::get

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::get — This method retrieves a value from the hash by its key

Описание

public mixed QuickHashStringIntHash::get ( string $key )

This method retrieves a value from the hash by its key.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The value if the key exists, or NULL if the key wasn't part of the hash.

Примеры

Пример #1 QuickHashStringIntHash::get() example

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->get( "one" ) );

var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->get( "two" ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
int(2)


Returns the number of elements in the hash

  • « QuickHashStringIntHash::get
  • QuickHashStringIntHash::loadFromFile »
  • PHP Manual
  • QuickHashStringIntHash
  • Returns the number of elements in the hash

QuickHashStringIntHash::getSize

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::getSize — Returns the number of elements in the hash

Описание

public int QuickHashStringIntHash::getSize ( void )

Returns the number of elements in the hash.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The number of elements in the hash.

Примеры

Пример #1 QuickHashStringIntHash::getSize() example

<?php
$hash = new QuickHashStringIntHash( 8 );
var_dump( $hash->add( "two", 2 ) );
var_dump( $hash->add( "three", 5 ) );
var_dump( $hash->getSize() );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashStringIntHash::getSize
  • QuickHashStringIntHash::loadFromString »
  • PHP Manual
  • QuickHashStringIntHash
  • This factory method creates a hash from a file

QuickHashStringIntHash::loadFromFile

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::loadFromFile — This factory method creates a hash from a file

Описание

public static QuickHashStringIntHash QuickHashStringIntHash::loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] )

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x21\0', the number of elements as a 32 bit signed integer in system Endianness, an unsigned 32 bit integer containing the number of element data to follow in characters. This element data contains all the strings. The follows another signed 32 bit integer containing the number of bucket lists. After the header and the strings, the elements follow. They are ordered by bucket list so that the keys don't have to be hashed in order to restore the hash. For each bucket list, the following information is stored (all as 32 bit integers): the bucket list index, the number of elements in that list, and then in pairs of two unsigned 32 bit integers the elements, where the first one is the index into the string list containing the keys, and the second one the value. An example could be:

Пример #1 QuickHash StringIntHash file format

00000000  51 48 21 00 02 00 00 00  09 00 00 00 40 00 00 00  |QH!.........@...|
00000010  4f 4e 45 00 4e 49 4e 45  00 07 00 00 00 01 00 00  |ONE.NINE........|
00000020  00 00 00 00 00 01 00 00  00 2f 00 00 00 01 00 00  |........./......|
00000030  00 04 00 00 00 03 00 00  00                       |.........|
00000039

Пример #2 QuickHash IntHash file format

header signature ('QH'; key type: 2; value type: 1; filler: \0x00)
00000000  51 48 21 00

number of elements:
00000004  02 00 00 00

length of string values (9 characters):
00000008  09 00 00 00

number of hash bucket lists (this is configured for hashes as argument to the
constructor normally, 64 in this case):
0000000C  40 00 00 00

string values:
00000010  4f 4e 45 00 4e 49 4e 45  00

bucket lists:
  bucket list 1 (with key 7, and 1 element):
    header:
    07 00 00 00 01 00 00 00
    elements (key index: 0 ('ONE'), value = 0):
    00 00 00 00 01 00 00 00
  bucket list 2 (with key 0x2f, and 1 element):
    header:
    2f 00 00 00 01 00 00 00
    elements (key index: 4 ('NINE'), value = 3):
    04 00 00 00 03 00 00 00

Список параметров

filename

The filename of the file to read the hash from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is read from the file format (unlike the QuickHashIntHash and QuickHashIntStringHash classes, where it is automatically calculated from the number of entries in the hash.)

Возвращаемые значения

Returns a new QuickHashStringIntHash.

Примеры

Пример #3 QuickHashStringIntHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.hash.string";
$hash = QuickHashStringIntHash::loadFromFile(
    $file,
    QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    $i = 48712 + $key * 1631;
    $k = base_convert( $i, 10, 36 );
    echo $k, ' => ', $hash->get( $k ), "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

11l4 => 48712
12uf => 50343
143q => 51974
15d1 => 53605
16mc => 55236
17vn => 56867
194y => 58498
1ae9 => 60129
1bnk => 61760
1cwv => 63391
1e66 => 65022
1ffh => 66653
1gos => 68284
1hy3 => 69915
1j7e => 71546
1kgp => 73177


This factory method creates a hash from a string

  • « QuickHashStringIntHash::loadFromFile
  • QuickHashStringIntHash::saveToFile »
  • PHP Manual
  • QuickHashStringIntHash
  • This factory method creates a hash from a string

QuickHashStringIntHash::loadFromString

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::loadFromString — This factory method creates a hash from a string

Описание

public static QuickHashStringIntHash QuickHashStringIntHash::loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] )

This factory method creates a new hash from a definition in a string. The format is the same as the one used in "loadFromFile".

Список параметров

contents

The string containing a serialized format of the hash.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashStringIntHash.

Примеры

Пример #1 QuickHashStringIntHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash.string" );
$hash = QuickHashStringIntHash::loadFromString(
    $contents,
    QuickHashStringIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    $i = 48712 + $key * 1631;
    $k = base_convert( $i, 10, 36 );
    echo $k, ' => ', $hash->get( $k ), "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

11l4 => 48712
12uf => 50343
143q => 51974
15d1 => 53605
16mc => 55236
17vn => 56867
194y => 58498
1ae9 => 60129
1bnk => 61760
1cwv => 63391
1e66 => 65022
1ffh => 66653
1gos => 68284
1hy3 => 69915
1j7e => 71546
1kgp => 73177


This method stores an in-memory hash to disk

  • « QuickHashStringIntHash::loadFromString
  • QuickHashStringIntHash::saveToString »
  • PHP Manual
  • QuickHashStringIntHash
  • This method stores an in-memory hash to disk

QuickHashStringIntHash::saveToFile

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::saveToFile — This method stores an in-memory hash to disk

Описание

public void QuickHashStringIntHash::saveToFile ( string $filename )

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Список параметров

filename

The filename of the file to store the hash in.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 QuickHashStringIntHash::saveToFile() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "fourty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

$hash->saveToFile( '/tmp/test.hash.string' );
?>


This method returns a serialized version of the hash

  • « QuickHashStringIntHash::saveToFile
  • QuickHashStringIntHash::set »
  • PHP Manual
  • QuickHashStringIntHash
  • This method returns a serialized version of the hash

QuickHashStringIntHash::saveToString

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::saveToString — This method returns a serialized version of the hash

Описание

public string QuickHashStringIntHash::saveToString ( void )

This method returns a serialized version of the hash in the same format that loadFromString() can read.

Возвращаемые значения

This method returns a serialized format of an existing hash, in the same format that loadFromString() can read.

Примеры

Пример #1 QuickHashStringIntHash::saveToString() example

<?php
$hash = new QuickHashStringIntHash( 1024 );
var_dump( $hash->add( "fourty three", 42 ) );
var_dump( $hash->add( "fifty two", 52 ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashStringIntHash::saveToString
  • QuickHashStringIntHash::update »
  • PHP Manual
  • QuickHashStringIntHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashStringIntHash::set

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Описание

public int QuickHashStringIntHash::set ( string $key , int $value )

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashStringIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add or update.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Возвращаемые значения

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Примеры

Пример #1 QuickHashStringIntHash::set() example

<?php
$hash = new QuickHashStringIntHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );
var_dump( $hash->set( "fourty six thousand six hundred ninety two", 16091 ) );
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );

echo "Set->Update\n";
var_dump( $hash->set( "fourty six thousand six hundred ninety two", 29906 ) );
var_dump( $hash->get( "fourty six thousand six hundred ninety two" ) );
?>

Результатом выполнения данного примера будет что-то подобное:

Set->Add
bool(false)
int(2)
int(16091)
Set->Update
int(1)
int(29906)


This method updates an entry in the hash with a new value

  • « QuickHashStringIntHash::set
  • QuickHashIntStringHash »
  • PHP Manual
  • QuickHashStringIntHash
  • This method updates an entry in the hash with a new value

QuickHashStringIntHash::update

(Информация о версии неизвестна, возможно, только в SVN)

QuickHashStringIntHash::update — This method updates an entry in the hash with a new value

Описание

public bool QuickHashStringIntHash::update ( string $key , int $value )

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashStringIntHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add.

value

The new value for the entry. If a non-string is passed, it will be converted to a string automatically if possible.

Возвращаемые значения

TRUE when the entry was found and updated, and FALSE if the entry was not part of the hash already.

Примеры

Пример #1 QuickHashStringIntHash::update() example

<?php
$hash = new QuickHashStringIntHash( 1024 );

$hash->add( 'six', 314159265 );
$hash->add( "a lot", 314159265 );

echo $hash->get( 'six' ), "\n";
echo $hash->get( 'a lot' ), "\n";

var_dump( $hash->update( 'a lot', 314159266 ) );
var_dump( $hash->update( "a lot plus one", 314159999 ) );

echo $hash->get( 'six' ), "\n";
echo $hash->get( 'a lot' ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

314159265
314159265
bool(true)
bool(false)
314159265
314159266


The QuickHashIntStringHash class

(PECL quickhash >= Unknown)

Введение

This class wraps around a hash containing integer numbers, where the values are strings. Hashes are also available as implementation of the ArrayAccess interface.

Hashes can also be iterated over with foreach as the Iterator interface is implemented as well. The order of which elements are returned in is not guaranteed.

Обзор классов

QuickHashIntStringHash {
/* Constants */
const integer CHECK_FOR_DUPES = 1 ;
const integer DO_NOT_USE_ZEND_ALLOC = 2 ;
const integer HASHER_NO_HASH = 256 ;
const integer HASHER_JENKINS1 = 512 ;
const integer HASHER_JENKINS2 = 1024 ;
/* Methods */
public bool add ( int $key , string $value )
public __construct ( int $size [, int $options = 0 ] )
public bool delete ( int $key )
public bool exists ( int $key )
public mixed get ( int $key )
public int getSize ( void )
public static QuickHashIntStringHash loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] )
public static QuickHashIntStringHash loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] )
public void saveToFile ( string $filename )
public string saveToString ( void )
public int set ( int $key , string $value )
public bool update ( int $key , string $value )
}

Предопределенные константы

QuickHashIntStringHash::CHECK_FOR_DUPES

If enabled, adding duplicate elements to a set (through either add() or loadFromFile()) will result in those elements to be dropped from the set. This will take up extra time, so only used when it is required.

QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC

Disables the use of PHP's internal memory manager for internal set structures. With this option enabled, internal allocations will not count towards the memory_limit settings.

QuickHashIntStringHash::HASHER_NO_HASH

Selects to not use a hashing function, but merely use a modulo to find the bucket list index. This is not faster than normal hashing, and gives more collisions.

QuickHashIntStringHash::HASHER_JENKINS1

This is the default hashing function to turn the integer hashes into bucket list indexes.

QuickHashIntStringHash::HASHER_JENKINS2

Selects a variant hashing algorithm.

Содержание

  • QuickHashIntStringHash::add — This method adds a new entry to the hash
  • QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object
  • QuickHashIntStringHash::delete — This method deletes am entry from the hash
  • QuickHashIntStringHash::exists — This method checks whether a key is part of the hash
  • QuickHashIntStringHash::get — This method retrieves a value from the hash by its key
  • QuickHashIntStringHash::getSize — Returns the number of elements in the hash
  • QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file
  • QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string
  • QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk
  • QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash
  • QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist
  • QuickHashIntStringHash::update — This method updates an entry in the hash with a new value


This method adds a new entry to the hash

  • « QuickHashIntStringHash
  • QuickHashIntStringHash::__construct »
  • PHP Manual
  • QuickHashIntStringHash
  • This method adds a new entry to the hash

QuickHashIntStringHash::add

(PECL quickhash >= Unknown)

QuickHashIntStringHash::add — This method adds a new entry to the hash

Описание

public bool QuickHashIntStringHash::add ( int $key , string $value )

This method adds a new entry to the hash, and returns whether the entry was added. Entries are by default always added unless QuickHashIntStringHash::CHECK_FOR_DUPES has been passed when the hash was created.

Список параметров

key

The key of the entry to add.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Возвращаемые значения

TRUE when the entry was added, and FALSE if the entry was not added.

Примеры

Пример #1 QuickHashIntStringHash::add() example

<?php
echo "without dupe checking\n";
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "twenty two" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "twelve" ) );

echo "\nwith dupe checking\n";
$hash = new QuickHashIntStringHash( 1024, QuickHashIntStringHash::CHECK_FOR_DUPES );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "seventy eight" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->get( 4 ) );
var_dump( $hash->add( 4, "nine" ) );
?>

Результатом выполнения данного примера будет что-то подобное:

without dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
string(10) "twenty two"
bool(true)

with dupe checking
bool(false)
bool(false)
bool(true)
bool(true)
string(13) "seventy eight"
bool(false)


Creates a new QuickHashIntStringHash object

  • « QuickHashIntStringHash::add
  • QuickHashIntStringHash::delete »
  • PHP Manual
  • QuickHashIntStringHash
  • Creates a new QuickHashIntStringHash object

QuickHashIntStringHash::__construct

(PECL quickhash >= Unknown)

QuickHashIntStringHash::__construct — Creates a new QuickHashIntStringHash object

Описание

public QuickHashIntStringHash::__construct ( int $size [, int $options = 0 ] )

This constructor creates a new QuickHashIntStringHash. The size is the amount of bucket lists to create. The more lists there are, the less collisions you will have. Options are also supported.

Список параметров

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 64 to 4194304.

options

The options that you can pass in are: QuickHashIntStringHash::CHECK_FOR_DUPES, which makes sure no duplicate entries are added to the hash; QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC to not use PHP's internal memory manager as well as one of QuickHashIntStringHash::HASHER_NO_HASH, QuickHashIntStringHash::HASHER_JENKINS1 or QuickHashIntStringHash::HASHER_JENKINS2. These last three configure which hashing algorithm to use. All options can be combined using bitmasks.

Возвращаемые значения

Returns a new QuickHashIntStringHash object.

Примеры

Пример #1 QuickHashIntStringHash::__construct() example

<?php
var_dump( new QuickHashIntStringHash( 1024 ) );
var_dump( new QuickHashIntStringHash( 1024, QuickHashIntStringHash::CHECK_FOR_DUPES ) );
var_dump(
    new QuickHashIntStringHash(
        1024,
        QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC | QuickHashIntStringHash::HASHER_JENKINS2
    )
);
?>


This method deletes am entry from the hash

  • « QuickHashIntStringHash::__construct
  • QuickHashIntStringHash::exists »
  • PHP Manual
  • QuickHashIntStringHash
  • This method deletes am entry from the hash

QuickHashIntStringHash::delete

(PECL quickhash >= Unknown)

QuickHashIntStringHash::delete — This method deletes am entry from the hash

Описание

public bool QuickHashIntStringHash::delete ( int $key )

This method deletes an entry from the hash, and returns whether the entry was deleted or not. Associated memory structures will not be freed immediately, but rather when the hash itself is freed.

Elements can not be deleted when the hash is used in an iterator. The method will not throw an exception, but simply return FALSE like would happen with any other deletion failure.

Список параметров

key

The key of the entry to delete.

Возвращаемые значения

TRUE when the entry was deleted, and FALSE if the entry was not deleted.

Примеры

Пример #1 QuickHashIntStringHash::delete() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "five" ) );
var_dump( $hash->delete( 4 ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->delete( 4 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
bool(true)
bool(false)
bool(false)


This method checks whether a key is part of the hash

  • « QuickHashIntStringHash::delete
  • QuickHashIntStringHash::get »
  • PHP Manual
  • QuickHashIntStringHash
  • This method checks whether a key is part of the hash

QuickHashIntStringHash::exists

(PECL quickhash >= Unknown)

QuickHashIntStringHash::exists — This method checks whether a key is part of the hash

Описание

public bool QuickHashIntStringHash::exists ( int $key )

This method checks whether an entry with the provided key exists in the hash.

Список параметров

key

The key of the entry to check for whether it exists in the hash.

Возвращаемые значения

Returns TRUE when the entry was found, or FALSE when the entry is not found.


This method retrieves a value from the hash by its key

  • « QuickHashIntStringHash::exists
  • QuickHashIntStringHash::getSize »
  • PHP Manual
  • QuickHashIntStringHash
  • This method retrieves a value from the hash by its key

QuickHashIntStringHash::get

(PECL quickhash >= Unknown)

QuickHashIntStringHash::get — This method retrieves a value from the hash by its key

Описание

public mixed QuickHashIntStringHash::get ( int $key )

This method retrieves a value from the hash by its key.

Список параметров

key

The key of the entry to add.

Возвращаемые значения

The value if the key exists, or NULL if the key wasn't part of the hash.

Примеры

Пример #1 QuickHashIntStringHash::get() example

<?php
$hash = new QuickHashIntStringHash( 8 );
var_dump( $hash->get( 1 ) );

var_dump( $hash->add( 2, "two" ) );
var_dump( $hash->get( 2 ) );

var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->get( 3 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)
string(3) "two"
bool(true)
string(1) "5"


Returns the number of elements in the hash

  • « QuickHashIntStringHash::get
  • QuickHashIntStringHash::loadFromFile »
  • PHP Manual
  • QuickHashIntStringHash
  • Returns the number of elements in the hash

QuickHashIntStringHash::getSize

(PECL quickhash >= Unknown)

QuickHashIntStringHash::getSize — Returns the number of elements in the hash

Описание

public int QuickHashIntStringHash::getSize ( void )

Returns the number of elements in the hash.

Возвращаемые значения

The number of elements in the hash.

Примеры

Пример #1 QuickHashIntStringHash::getSize() example

<?php
$hash = new QuickHashIntStringHash( 8 );
var_dump( $hash->add( 2, "two" ) );
var_dump( $hash->add( 3, 5 ) );
var_dump( $hash->getSize() );
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
int(2)


This factory method creates a hash from a file

  • « QuickHashIntStringHash::getSize
  • QuickHashIntStringHash::loadFromString »
  • PHP Manual
  • QuickHashIntStringHash
  • This factory method creates a hash from a file

QuickHashIntStringHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromFile — This factory method creates a hash from a file

Описание

public static QuickHashIntStringHash QuickHashIntStringHash::loadFromFile ( string $filename [, int $size = 0 [, int $options = 0 ]] )

This factory method creates a new hash from a definition file on disk. The file format consists of a signature 'QH\0x12\0', the number of elements as a 32 bit signed integer in system Endianness, an unsigned 32 bit integer containing the number of element data to follow in characters. This element data contains all the strings. After the header and the strings, the elements follow in pairs of two unsigned 32 bit integers where the first one is the key, and the second one the index in the element data string. An example could be:

Пример #1 QuickHash IntString file format

00000000  51 48 12 00 02 00 00 00  09 00 00 00 4f 4e 45 00  |QH..........ONE.|
00000010  4e 49 4e 45 00 01 00 00  00 00 00 00 00 03 00 00  |NINE............|
00000020  00 04 00 00 00                                    |.....|
00000025

Пример #2 QuickHash IntString file format

header signature ('QH'; key type: 1; value type: 2; filler: \0x00)
00000000  51 48 12 00

number of elements:
00000004  02 00 00 00

length of string values (9 characters):
00000008  09 00 00 00

string values:
0000000C  4f 4e 45 00 4e 49 4e 45  00

data string:
00000015  01 00 00 00 00 00 00 00  03 00 00 00 04 00 00 00

key/value 1 (key = 1, string index = 0 ("ONE")):
01 00 00 00  00 00 00 00

key/value 2 (key = 3, string index = 4 ("NINE")):
03 00 00 00  04 00 00 00

Список параметров

filename

The filename of the file to read the hash from.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashIntStringHash.

Примеры

Пример #3 QuickHashIntStringHash::loadFromFile() example

<?php
$file = dirname( __FILE__ ) . "/simple.string.hash";
$hash = QuickHashIntStringHash::loadFromFile(
    $file,
    QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This factory method creates a hash from a string

  • « QuickHashIntStringHash::loadFromFile
  • QuickHashIntStringHash::saveToFile »
  • PHP Manual
  • QuickHashIntStringHash
  • This factory method creates a hash from a string

QuickHashIntStringHash::loadFromString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::loadFromString — This factory method creates a hash from a string

Описание

public static QuickHashIntStringHash QuickHashIntStringHash::loadFromString ( string $contents [, int $size = 0 [, int $options = 0 ]] )

This factory method creates a new hash from a definition in a string. The format is the same as the one used in "loadFromFile".

Список параметров

contents

The string containing a serialized format of the hash.

size

The amount of bucket lists to configure. The number you pass in will be automatically rounded up to the next power of two. It is also automatically limited from 4 to 4194304.

options

The same options that the class' constructor takes; except that the size option is ignored. It is automatically calculated to be the same as the number of entries in the hash, rounded up to the nearest power of two with a maximum limit of 4194304.

Возвращаемые значения

Returns a new QuickHashIntStringHash.

Примеры

Пример #1 QuickHashIntStringHash::loadFromString() example

<?php
$contents = file_get_contents( dirname( __FILE__ ) . "/simple.hash" );
$hash = QuickHashIntStringHash::loadFromString(
    $contents,
    QuickHashIntStringHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
    printf( "Key %3d (%2x) is %s\n",
        $key, $key,
        $hash->exists( $key ) ? 'set' : 'unset'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Key   0 ( 0) is unset
Key   1 ( 1) is set
Key   2 ( 2) is set
Key   3 ( 3) is set
Key   4 ( 4) is unset
Key   5 ( 5) is set
Key   6 ( 6) is unset
Key   7 ( 7) is set
Key   8 ( 8) is unset
Key   9 ( 9) is unset
Key  10 ( a) is unset
Key  11 ( b) is set
Key  12 ( c) is unset
Key  13 ( d) is set
Key  14 ( e) is unset
Key  15 ( f) is unset


This method stores an in-memory hash to disk

  • « QuickHashIntStringHash::loadFromString
  • QuickHashIntStringHash::saveToString »
  • PHP Manual
  • QuickHashIntStringHash
  • This method stores an in-memory hash to disk

QuickHashIntStringHash::saveToFile

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToFile — This method stores an in-memory hash to disk

Описание

public void QuickHashIntStringHash::saveToFile ( string $filename )

This method stores an existing hash to a file on disk, in the same format that loadFromFile() can read.

Список параметров

filename

The filename of the file to store the hash in.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 QuickHashIntStringHash::saveToFile() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "fourty three" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "fifty two" ) );

$hash->saveToFile( '/tmp/test.string.hash' );
?>


This method returns a serialized version of the hash

  • « QuickHashIntStringHash::saveToFile
  • QuickHashIntStringHash::set »
  • PHP Manual
  • QuickHashIntStringHash
  • This method returns a serialized version of the hash

QuickHashIntStringHash::saveToString

(PECL quickhash >= Unknown)

QuickHashIntStringHash::saveToString — This method returns a serialized version of the hash

Описание

public string QuickHashIntStringHash::saveToString ( void )

This method returns a serialized version of the hash in the same format that loadFromString() can read.

Возвращаемые значения

This method returns a string containing a serialized format of the hash. Each element is stored as a four byte value in the Endianness that the current system uses.

Примеры

Пример #1 QuickHashIntStringHash::saveToString() example

<?php
$hash = new QuickHashIntStringHash( 1024 );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 4, "thirty four" ) );
var_dump( $hash->exists( 4 ) );
var_dump( $hash->add( 5, "fifty five" ) );

var_dump( $hash->saveToString() );
?>


This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

  • « QuickHashIntStringHash::saveToString
  • QuickHashIntStringHash::update »
  • PHP Manual
  • QuickHashIntStringHash
  • This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

QuickHashIntStringHash::set

(PECL quickhash >= Unknown)

QuickHashIntStringHash::set — This method updates an entry in the hash with a new value, or adds a new one if the entry doesn't exist

Описание

public int QuickHashIntStringHash::set ( int $key , string $value )

This method tries to update an entry with a new value. In case the entry did not yet exist, it will instead add a new entry. It returns whether the entry was added or update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntStringHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add or update.

value

The value of the entry to add. If a non-string is passed, it will be converted to a string automatically if possible.

Возвращаемые значения

2 if the entry was found and updated, 1 if the entry was newly added or 0 if there was an error.

Примеры

Пример #1 QuickHashIntStringHash::set() example

<?php
$hash = new QuickHashIntStringHash( 1024 );

echo "Set->Add\n";
var_dump( $hash->get( 46692 ) );
var_dump( $hash->set( 46692, "sixteen thousand ninety one" ) );
var_dump( $hash->get( 46692 ) );

echo "Set->Update\n";
var_dump( $hash->set( 46692, "twenty nine thousand nine hundred six" ) );
var_dump( $hash->get( 46692 ) );
?>

Результатом выполнения данного примера будет что-то подобное:

Set->Add
bool(false)
int(2)
string(27) "sixteen thousand ninety one"
Set->Update
int(1)
string(37) "twenty nine thousand nine hundred six"


This method updates an entry in the hash with a new value

  • « QuickHashIntStringHash::set
  • Reflection »
  • PHP Manual
  • QuickHashIntStringHash
  • This method updates an entry in the hash with a new value

QuickHashIntStringHash::update

(PECL quickhash >= Unknown)

QuickHashIntStringHash::update — This method updates an entry in the hash with a new value

Описание

public bool QuickHashIntStringHash::update ( int $key , string $value )

This method updates an entry with a new value, and returns whether the entry was update. If there are duplicate keys, only the first found element will get an updated value. Use QuickHashIntStringHash::CHECK_FOR_DUPES during hash creation to prevent duplicate keys from being part of the hash.

Список параметров

key

The key of the entry to add.

value

The new value for the entry. If a non-string is passed, it will be converted to a string automatically if possible.

Возвращаемые значения

TRUE when the entry was found and updated, and FALSE if the entry was not part of the hash already.

Примеры

Пример #1 QuickHashIntStringHash::update() example

<?php
$hash->add( 161803398, "--" );
$hash->add( 314159265, "a lot" );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";

var_dump( $hash->update( 314159265, "a lot plus one" ) );
var_dump( $hash->update( 314159999, "a lot plus one" ) );

echo $hash->get( 161803398 ), "\n";
echo $hash->get( 314159265 ), "\n";
?>

Результатом выполнения данного примера будет что-то подобное:

--
a lot
bool(true)
bool(false)
--
a lot plus one


Reflection

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Расширение
  • Reflection — Класс Reflection
    • Reflection::export — Экспортирует Reflection
    • Reflection::getModifierNames — Получение имен модификаторов
  • ReflectionClass — Класс ReflectionClass
    • ReflectionClass::__construct — Создаёт объект класса ReflectionClass
    • ReflectionClass::export — Экспортирует класс
    • ReflectionClass::getConstant — Возвращает определенную константу
    • ReflectionClass::getConstants — Возвращает константы
    • ReflectionClass::getConstructor — Возвращает конструктор класса
    • ReflectionClass::getDefaultProperties — Возвращает свойства по умолчанию
    • ReflectionClass::getDocComment — Возвращает doc-блоки комментариев
    • ReflectionClass::getEndLine — Возвращает номер последней строки
    • ReflectionClass::getExtension — Возвращает объект класса ReflectionExtension для расширения, определенного в классе
    • ReflectionClass::getExtensionName — Возвращает имя расширения, определенного в классе
    • ReflectionClass::getFileName — Возвращает имя файла, в котором объявлен класс
    • ReflectionClass::getInterfaceNames — Возвращает имена интерфейсов
    • ReflectionClass::getInterfaces — Возвращает интерфейсы
    • ReflectionClass::getMethod — Возвращает экземпляр ReflectionMethod для метода класса
    • ReflectionClass::getMethods — Возвращает список методов в виде массива
    • ReflectionClass::getModifiers — Возвращает информацию о модификаторах класса
    • ReflectionClass::getName — Возвращает имя класса
    • ReflectionClass::getNamespaceName — Возвращает название пространства имён
    • ReflectionClass::getParentClass — Возвращает родительский класс
    • ReflectionClass::getProperties — Возвращает свойства
    • ReflectionClass::getProperty — Возвращает экземпляр ReflectionProperty для свойства класса
    • ReflectionClass::getShortName — Возвращает короткое имя
    • ReflectionClass::getStartLine — Возвращает номер начальной строки
    • ReflectionClass::getStaticProperties — Возвращает static свойства
    • ReflectionClass::getStaticPropertyValue — Возвращает значение static свойства
    • ReflectionClass::getTraitAliases — Возвращает массив trait-псевдонимов
    • ReflectionClass::getTraitNames — Возвращает массив trait-имён, задействованных в этом классе
    • ReflectionClass::getTraits — Возвращает массив traits, задействованных в этом классе
    • ReflectionClass::hasConstant — Проверяет, задана ли константа
    • ReflectionClass::hasMethod — Проверяет, задан ли метод
    • ReflectionClass::hasProperty — Проверяет, задано ли свойство
    • ReflectionClass::implementsInterface — Проверяет, реализуется ли интерфейс
    • ReflectionClass::inNamespace — Проверяет, определён ли класс в пространстве имён
    • ReflectionClass::isAbstract — Проверяет, является ли класс абстрактным
    • ReflectionClass::isAnonymous — Проверяет, анонимный класс или нет
    • ReflectionClass::isCloneable — Проверяет, можно ли клонировать этот класс
    • ReflectionClass::isFinal — Проверяет, является ли класс окончательным (final)
    • ReflectionClass::isInstance — Проверяет, принадлежит ли объект классу
    • ReflectionClass::isInstantiable — Проверяет, можно ли создать экземпляр класса
    • ReflectionClass::isInterface — Проверяет, является ли класс интерфейсом
    • ReflectionClass::isInternal — Проверяет, является ли класс встроенным в расширение или в ядро
    • ReflectionClass::isIterateable — Проверяет, является ли класс итерируемым
    • ReflectionClass::isSubclassOf — Проверяет, является ли класс подклассом
    • ReflectionClass::isTrait — Проверяет, является ли класс trait
    • ReflectionClass::isUserDefined — Проверяет, является ли класс пользовательским
    • ReflectionClass::newInstance — Создаёт экземпляр класса с переданными аргументами
    • ReflectionClass::newInstanceArgs — Создаёт экземпляр класса с переданными параметрами
    • ReflectionClass::newInstanceWithoutConstructor — Создаёт новый экземпляр класса без вызова конструктора
    • ReflectionClass::setStaticPropertyValue — Устанавливает значение static-свойства
    • ReflectionClass::__toString — Возвращает строковое представление объекта класса ReflectionClass
  • ReflectionZendExtension — Класс ReflectionZendExtension
    • ReflectionZendExtension::__clone — Копирующий конструктор
    • ReflectionZendExtension::__construct — Конструктор
    • ReflectionZendExtension::export — Экспорт
    • ReflectionZendExtension::getAuthor — Получение автора
    • ReflectionZendExtension::getCopyright — Получение строки авторских прав
    • ReflectionZendExtension::getName — Получение строки имени
    • ReflectionZendExtension::getURL — Получение URL
    • ReflectionZendExtension::getVersion — Получение номера версии
    • ReflectionZendExtension::__toString — Преобразование в строку
  • ReflectionExtension — Класс ReflectionExtension
    • ReflectionExtension::__clone — Клонирует объект
    • ReflectionExtension::__construct — Создаёт объект класса ReflectionExtension
    • ReflectionExtension::export — Экспортирует модуль
    • ReflectionExtension::getClasses — Возвращает классы
    • ReflectionExtension::getClassNames — Получение имен классов
    • ReflectionExtension::getConstants — Получение констант
    • ReflectionExtension::getDependencies — Получение зависимостей
    • ReflectionExtension::getFunctions — Получение функций расширения
    • ReflectionExtension::getINIEntries — Получение ini-настроек расширения
    • ReflectionExtension::getName — Получение имени расширения
    • ReflectionExtension::getVersion — Получение версии расширения
    • ReflectionExtension::info — Вывод информации о расширении
    • ReflectionExtension::isPersistent — Определяет, является ли расширение постоянным
    • ReflectionExtension::isTemporary — Определяет, является ли расширение временным
    • ReflectionExtension::__toString — Преобразование в строку
  • ReflectionFunction — Класс ReflectionFunction
    • ReflectionFunction::__construct — Конструктор класса ReflectionFunction
    • ReflectionFunction::export — Экспорт функции
    • ReflectionFunction::getClosure — Возвращает динамически созданное замыкание для функции
    • ReflectionFunction::invoke — Вызывает функцию
    • ReflectionFunction::invokeArgs — Вызов функции с передачей аргументов
    • ReflectionFunction::isDisabled — Проверяет, что функция отключена
    • ReflectionFunction::__toString — Представление в виде строки
  • ReflectionFunctionAbstract — Класс ReflectionFunctionAbstract
    • ReflectionFunctionAbstract::__clone — Копирующий конструктор
    • ReflectionFunctionAbstract::getClosureScopeClass — Возвращает класс в рамках которого было объявлено замыкание
    • ReflectionFunctionAbstract::getClosureThis — Возвращает указатель this замыкания
    • ReflectionFunctionAbstract::getDocComment — Получает документируемый комментарий
    • ReflectionFunctionAbstract::getEndLine — Получает номер строки завершения описания функции
    • ReflectionFunctionAbstract::getExtension — Получает информацию о расширении
    • ReflectionFunctionAbstract::getExtensionName — Получение имени расширения
    • ReflectionFunctionAbstract::getFileName — Получает имя файла
    • ReflectionFunctionAbstract::getName — Получает имя функции
    • ReflectionFunctionAbstract::getNamespaceName — Получение имени пространства имен
    • ReflectionFunctionAbstract::getNumberOfParameters — Получает количество аргументов
    • ReflectionFunctionAbstract::getNumberOfRequiredParameters — Получает количество обязательных аргументов
    • ReflectionFunctionAbstract::getParameters — Получает аргументы
    • ReflectionFunctionAbstract::getReturnType — Получает объявленный тип возвращаемого функцией значения
    • ReflectionFunctionAbstract::getShortName — Получает короткое имя функции
    • ReflectionFunctionAbstract::getStartLine — Получает начальный номер строки
    • ReflectionFunctionAbstract::getStaticVariables — Получает статические переменные
    • ReflectionFunctionAbstract::hasReturnType — Проверяет, иммет ли функция объявленный тип возвращаемого значения
    • ReflectionFunctionAbstract::inNamespace — Проверяет, находится ли функция в пространстве имен
    • ReflectionFunctionAbstract::isClosure — Проверяет, является ли функция замыканием (Closure)
    • ReflectionFunctionAbstract::isDeprecated — Проверяет, является ли функция устаревшей
    • ReflectionFunctionAbstract::isGenerator — Проверяет, является ли функция генератором
    • ReflectionFunctionAbstract::isInternal — Проверяет, является ли функция внутренней
    • ReflectionFunctionAbstract::isUserDefined — Проверяет, является ли функция определенной пользователем
    • ReflectionFunctionAbstract::isVariadic — Проверяет, является ли функция функцией с переменным числом аргументов
    • ReflectionFunctionAbstract::returnsReference — Проверяет, что функция возвращает ссылку
    • ReflectionFunctionAbstract::__toString — Преобразование в строку
  • ReflectionMethod — Класс ReflectionMethod
    • ReflectionMethod::__construct — Конструктор класса ReflectionMethod
    • ReflectionMethod::export — Экспорт отраженного метода
    • ReflectionMethod::getClosure — Возвращает динамически созданное замыкание для метода
    • ReflectionMethod::getDeclaringClass — Получает класс, объявляющий отображенный метод
    • ReflectionMethod::getModifiers — Получает модификаторы метода
    • ReflectionMethod::getPrototype — Получает прототип метода (если такой есть)
    • ReflectionMethod::invoke — Вызов
    • ReflectionMethod::invokeArgs — Вызов метода с передачей аргументов массивом
    • ReflectionMethod::isAbstract — Проверяет, является ли метод абстрактным
    • ReflectionMethod::isConstructor — Проверяет, является ли метод конструктором
    • ReflectionMethod::isDestructor — Проверяет, является ли метод деструктором
    • ReflectionMethod::isFinal — Проверяет, может ли метод иметь наследников (final)
    • ReflectionMethod::isPrivate — Проверяет, является ли метод частным (private)
    • ReflectionMethod::isProtected — Проверяет, является ли метод защищенным (protected)
    • ReflectionMethod::isPublic — Проверяет, является ли метод общедоступным (public)
    • ReflectionMethod::isStatic — Проверяет, является ли метод статическим
    • ReflectionMethod::setAccessible — Делает метод доступным
    • ReflectionMethod::__toString — Возвращает строковое представление объекта Reflection method
  • ReflectionObject — Класс ReflectionObject
    • ReflectionObject::__construct — Конструктор класса ReflectionObject
    • ReflectionObject::export — Экспорт
  • ReflectionParameter — Класс ReflectionParameter
    • ReflectionParameter::allowsNull — Проверяет, допустимо ли значение null для аргумента
    • ReflectionParameter::canBePassedByValue — Проверяет, можно ли передать этот аргумент по значению
    • ReflectionParameter::__clone — Копирующий конструктор
    • ReflectionParameter::__construct — Конструктор класса
    • ReflectionParameter::export — Экспорт
    • ReflectionParameter::getClass — Получение класса из контроля типа
    • ReflectionParameter::getDeclaringClass — Получение объявляющего класса
    • ReflectionParameter::getDeclaringFunction — Получение объявляющей функции
    • ReflectionParameter::getDefaultValue — Получение значения по умолчанию аргумента
    • ReflectionParameter::getDefaultValueConstantName — Returns the default value's constant name if default value is constant or null
    • ReflectionParameter::getName — Получение имени аргумента
    • ReflectionParameter::getPosition — Получение позиции аргумента
    • ReflectionParameter::getType — Gets a parameter's type
    • ReflectionParameter::hasType — Checks if parameter has a type
    • ReflectionParameter::isArray — Проверяет, ожидает ли аргумент массив в качестве значения
    • ReflectionParameter::isCallable — Returns whether parameter MUST be callable
    • ReflectionParameter::isDefaultValueAvailable — Проверяет доступно ли значение по умолчанию аргумента
    • ReflectionParameter::isDefaultValueConstant — Returns whether the default value of this parameter is constant
    • ReflectionParameter::isOptional — Проверка, является ли аргумент необязательным
    • ReflectionParameter::isPassedByReference — Проверяет, что аргумент передан по ссылке
    • ReflectionParameter::isVariadic — Checks if the parameter is variadic
    • ReflectionParameter::__toString — Преобразование в строку
  • ReflectionProperty — Класс ReflectionProperty
    • ReflectionProperty::__clone — Копирующий конструктор
    • ReflectionProperty::__construct — Конструктор класса ReflectionProperty
    • ReflectionProperty::export — Экспорт
    • ReflectionProperty::getDeclaringClass — Получение объявляющего класса
    • ReflectionProperty::getDocComment — Получение документируемого комментария для свойства
    • ReflectionProperty::getModifiers — Получение модификаторов
    • ReflectionProperty::getName — Получение имени свойства
    • ReflectionProperty::getValue — Получение значения
    • ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию
    • ReflectionProperty::isPrivate — Проверяет, является ли свойство частным (private)
    • ReflectionProperty::isProtected — Проверяет, является ли свойство защищенным (protected)
    • ReflectionProperty::isPublic — Проверяет, является ли свойство общедоступным (public)
    • ReflectionProperty::isStatic — Проверка, является ли свойство статическим
    • ReflectionProperty::setAccessible — Задание доступности свойства
    • ReflectionProperty::setValue — Задание значения свойству
    • ReflectionProperty::__toString — Преобразование в строку
  • ReflectionType — Класс ReflectionType
    • ReflectionType::allowsNull — Проверяет, допустим ли NULL
    • ReflectionType::isBuiltin — Проверяет тип, встроенный он или нет
    • ReflectionType::__toString — Преобразование в строку
  • ReflectionGenerator — Класс ReflectionGenerator
    • ReflectionGenerator::__construct — Constructs a ReflectionGenerator object
    • ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator
    • ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object
    • ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator
    • ReflectionGenerator::getFunction — Gets the function name of the generator
    • ReflectionGenerator::getThis — Gets the $this value of the generator
    • ReflectionGenerator::getTrace — Gets the trace of the executing generator
  • Reflector — Интерфейс Reflector
    • Reflector::export — Экспорт
    • Reflector::__toString — Представление в виде строки
  • ReflectionException — Класс ReflectionException


Введение

PHP 5 включает в себя полноценный Reflection API, который предоставляет возможность проводить реверс-инжиниринг классов, интерфейсов, функций, методов и модулей. Кроме того, Reflection API позволяет получать doc-блоки комментариев функций, классов и методов.

Обратите внимание, что определённая часть внутреннего API не содержит кода, который необходим для работы модуля Reflection. Например, внутренний PHP-класс может не иметь reflection-данных для своих свойств. Однако это известные ошибки и впоследствии такие классы будут исправлены.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • Reflection
  • Предопределенные константы

Предопределенные константы

Каждый класс описывает свои собственные константы.


Примеры

В документации по Reflection вы сможете встретить множество примеров, чаще всего в описании конструкторов классов.

Пример #1 Пример использования Reflection из shell (Терминала)

$ php --rf strlen
$ php --rc finfo
$ php --re json
$ php --ri dom

Результатом выполнения данного примера будет что-то подобное:

Function [ <internal:Core> function strlen ] {

  - Parameters [1] {
    Parameter #0 [ <required> $str ]
  }
}

Class [ <internal:fileinfo> class finfo ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [0] {
  }

  - Methods [4] {
    Method [ <internal:fileinfo, ctor> public method finfo ] {

      - Parameters [2] {
        Parameter #0 [ <optional> $options ]
        Parameter #1 [ <optional> $arg ]
      }
    }

    Method [ <internal:fileinfo> public method set_flags ] {

      - Parameters [1] {
        Parameter #0 [ <required> $options ]
      }
    }

    Method [ <internal:fileinfo> public method file ] {

      - Parameters [3] {
        Parameter #0 [ <required> $filename ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }

    Method [ <internal:fileinfo> public method buffer ] {

      - Parameters [3] {
        Parameter #0 [ <required> $string ]
        Parameter #1 [ <optional> $options ]
        Parameter #2 [ <optional> $context ]
      }
    }
  }
}

Extension [ <persistent> extension #23 json version 1.2.1 ] {

  - Constants [10] {
    Constant [ integer JSON_HEX_TAG ] { 1 }
    Constant [ integer JSON_HEX_AMP ] { 2 }
    Constant [ integer JSON_HEX_APOS ] { 4 }
    Constant [ integer JSON_HEX_QUOT ] { 8 }
    Constant [ integer JSON_FORCE_OBJECT ] { 16 }
    Constant [ integer JSON_ERROR_NONE ] { 0 }
    Constant [ integer JSON_ERROR_DEPTH ] { 1 }
    Constant [ integer JSON_ERROR_STATE_MISMATCH ] { 2 }
    Constant [ integer JSON_ERROR_CTRL_CHAR ] { 3 }
    Constant [ integer JSON_ERROR_SYNTAX ] { 4 }
  }

  - Functions {
    Function [ <internal:json> function json_encode ] {

      - Parameters [2] {
        Parameter #0 [ <required> $value ]
        Parameter #1 [ <optional> $options ]
      }
    }
    Function [ <internal:json> function json_decode ] {

      - Parameters [3] {
        Parameter #0 [ <required> $json ]
        Parameter #1 [ <optional> $assoc ]
        Parameter #2 [ <optional> $depth ]
      }
    }
    Function [ <internal:json> function json_last_error ] {

      - Parameters [0] {
      }
    }
  }
}

dom

DOM/XML => enabled
DOM/XML API Version => 20031129
libxml Version => 2.7.3
HTML Support => enabled
XPath Support => enabled
XPointer Support => enabled
Schema Support => enabled
RelaxNG Support => enabled


Расширение

Если вам нужна специализированная версия встроенного класса (который, например, сможет генерировать цветной HTML при экспорте, будет иметь легкодоступные свойства вместо методов или же какие-нибудь вспомогательные методы), то можете просто взять и расширить его.

Пример #1 Расширение встроенных классов

<?php
/**
 * Мой Reflection_Method класс
 */
class My_Reflection_Method extends ReflectionMethod
{
    public $visibility = array();

    public function __construct($o, $m)
    {
        parent::__construct($o, $m);
        $this->visibility = Reflection::getModifierNames($this->getModifiers());
    }
}

/**
 * Демо-класс #1
 *
 */
class T {
    protected function x() {}
}

/**
 * Демо-класс #2
 *
 */
class U extends T {
    function x() {}
}

// Выведем информацию о методе
var_dump(new My_Reflection_Method('U', 'x'));
?>

Результатом выполнения данного примера будет что-то подобное:

object(My_Reflection_Method)#1 (3) {
  ["visibility"]=>
  array(1) {
    [0]=>
    string(6) "public"
  }
  ["name"]=>
  string(1) "x"
  ["class"]=>
  string(1) "U"
}
Предостережение

Когда вы переопределяете конструктор, обязательно не забудьте вызвать родительский конструктор до любого добавленного вами кода. Если так не делать, то вы можете получить сообщение об ошибке вида: Fatal error: Internal error: Failed to retrieve the reflection object


Класс Reflection

(PHP 5, PHP 7)

Введение

Класс Reflection.

Обзор классов

Reflection {
/* Методы */
public static string export ( Reflector $reflector [, bool $return = false ] )
public static array getModifierNames ( int $modifiers )
}

Содержание

  • Reflection::export — Экспортирует Reflection
  • Reflection::getModifierNames — Получение имен модификаторов


Экспортирует Reflection

  • « Reflection
  • Reflection::getModifierNames »
  • PHP Manual
  • Reflection
  • Экспортирует Reflection

Reflection::export

(PHP 5, PHP 7)

Reflection::export — Экспортирует Reflection

Описание

public static string Reflection::export ( Reflector $reflector [, bool $return = false ] )

Экспортирует Reflection.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reflector

Экспортируемый объект Reflection.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Смотрите также

  • Reflection::getModifierNames() - Получение имен модификаторов


Получение имен модификаторов

  • « Reflection::export
  • ReflectionClass »
  • PHP Manual
  • Reflection
  • Получение имен модификаторов

Reflection::getModifierNames

(PHP 5, PHP 7)

Reflection::getModifierNames — Получение имен модификаторов

Описание

public static array Reflection::getModifierNames ( int $modifiers )

Получает имена модификаторов.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

modifiers

Числовые значения модификаторов, имена которых требуется получить.

Возвращаемые значения

Массив имен модификаторов.

Смотрите также

  • Reflection::export() - Экспортирует Reflection


Класс ReflectionClass

(PHP 5, PHP 7)

Введение

Класс ReflectionClass сообщает информацию о классе.

Обзор классов

ReflectionClass implements Reflector {
/* Константы */
const integer IS_IMPLICIT_ABSTRACT = 16 ;
const integer IS_EXPLICIT_ABSTRACT = 32 ;
const integer IS_FINAL = 64 ;
/* Свойства */
public $name ;
/* Методы */
public __construct ( mixed $argument )
public static string export ( mixed $argument [, bool $return = false ] )
public mixed getConstant ( string $name )
public array getConstants ( void )
public ReflectionMethod getConstructor ( void )
public array getDefaultProperties ( void )
public string getDocComment ( void )
public int getEndLine ( void )
public ReflectionExtension getExtension ( void )
public string getExtensionName ( void )
public string getFileName ( void )
public array getInterfaceNames ( void )
public array getInterfaces ( void )
public ReflectionMethod getMethod ( string $name )
public array getMethods ([ int $filter ] )
public int getModifiers ( void )
public string getName ( void )
public string getNamespaceName ( void )
public ReflectionClass getParentClass ( void )
public array getProperties ([ int $filter ] )
public ReflectionProperty getProperty ( string $name )
public string getShortName ( void )
public int getStartLine ( void )
public array getStaticProperties ( void )
public mixed getStaticPropertyValue ( string $name [, mixed &$def_value ] )
public array getTraitAliases ( void )
public array getTraitNames ( void )
public array getTraits ( void )
public bool hasConstant ( string $name )
public bool hasMethod ( string $name )
public bool hasProperty ( string $name )
public bool implementsInterface ( string $interface )
public bool inNamespace ( void )
public bool isAbstract ( void )
public bool isAnonymous ( void )
public bool isCloneable ( void )
public bool isFinal ( void )
public bool isInstance ( object $object )
public bool isInstantiable ( void )
public bool isInterface ( void )
public bool isInternal ( void )
public bool isIterateable ( void )
public bool isSubclassOf ( string $class )
public bool isTrait ( void )
public bool isUserDefined ( void )
public object newInstance ( mixed $args [, mixed $... ] )
public object newInstanceArgs ([ array $args ] )
public object newInstanceWithoutConstructor ( void )
public void setStaticPropertyValue ( string $name , string $value )
public string __toString ( void )
}

Свойства

name

Имя класса. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Предопределенные константы

Модификаторы ReflectionClass

ReflectionClass::IS_IMPLICIT_ABSTRACT

Указывает, что класс является абстрактным, потому что он содержит абстрактные методы.

ReflectionClass::IS_EXPLICIT_ABSTRACT

Указывает, что класс является абстрактным, потому что так указано при его описании.

ReflectionClass::IS_FINAL

Указывает, что класс является окончательным (final) class.

Содержание

  • ReflectionClass::__construct — Создаёт объект класса ReflectionClass
  • ReflectionClass::export — Экспортирует класс
  • ReflectionClass::getConstant — Возвращает определенную константу
  • ReflectionClass::getConstants — Возвращает константы
  • ReflectionClass::getConstructor — Возвращает конструктор класса
  • ReflectionClass::getDefaultProperties — Возвращает свойства по умолчанию
  • ReflectionClass::getDocComment — Возвращает doc-блоки комментариев
  • ReflectionClass::getEndLine — Возвращает номер последней строки
  • ReflectionClass::getExtension — Возвращает объект класса ReflectionExtension для расширения, определенного в классе
  • ReflectionClass::getExtensionName — Возвращает имя расширения, определенного в классе
  • ReflectionClass::getFileName — Возвращает имя файла, в котором объявлен класс
  • ReflectionClass::getInterfaceNames — Возвращает имена интерфейсов
  • ReflectionClass::getInterfaces — Возвращает интерфейсы
  • ReflectionClass::getMethod — Возвращает экземпляр ReflectionMethod для метода класса
  • ReflectionClass::getMethods — Возвращает список методов в виде массива
  • ReflectionClass::getModifiers — Возвращает информацию о модификаторах класса
  • ReflectionClass::getName — Возвращает имя класса
  • ReflectionClass::getNamespaceName — Возвращает название пространства имён
  • ReflectionClass::getParentClass — Возвращает родительский класс
  • ReflectionClass::getProperties — Возвращает свойства
  • ReflectionClass::getProperty — Возвращает экземпляр ReflectionProperty для свойства класса
  • ReflectionClass::getShortName — Возвращает короткое имя
  • ReflectionClass::getStartLine — Возвращает номер начальной строки
  • ReflectionClass::getStaticProperties — Возвращает static свойства
  • ReflectionClass::getStaticPropertyValue — Возвращает значение static свойства
  • ReflectionClass::getTraitAliases — Возвращает массив trait-псевдонимов
  • ReflectionClass::getTraitNames — Возвращает массив trait-имён, задействованных в этом классе
  • ReflectionClass::getTraits — Возвращает массив traits, задействованных в этом классе
  • ReflectionClass::hasConstant — Проверяет, задана ли константа
  • ReflectionClass::hasMethod — Проверяет, задан ли метод
  • ReflectionClass::hasProperty — Проверяет, задано ли свойство
  • ReflectionClass::implementsInterface — Проверяет, реализуется ли интерфейс
  • ReflectionClass::inNamespace — Проверяет, определён ли класс в пространстве имён
  • ReflectionClass::isAbstract — Проверяет, является ли класс абстрактным
  • ReflectionClass::isAnonymous — Проверяет, анонимный класс или нет
  • ReflectionClass::isCloneable — Проверяет, можно ли клонировать этот класс
  • ReflectionClass::isFinal — Проверяет, является ли класс окончательным (final)
  • ReflectionClass::isInstance — Проверяет, принадлежит ли объект классу
  • ReflectionClass::isInstantiable — Проверяет, можно ли создать экземпляр класса
  • ReflectionClass::isInterface — Проверяет, является ли класс интерфейсом
  • ReflectionClass::isInternal — Проверяет, является ли класс встроенным в расширение или в ядро
  • ReflectionClass::isIterateable — Проверяет, является ли класс итерируемым
  • ReflectionClass::isSubclassOf — Проверяет, является ли класс подклассом
  • ReflectionClass::isTrait — Проверяет, является ли класс trait
  • ReflectionClass::isUserDefined — Проверяет, является ли класс пользовательским
  • ReflectionClass::newInstance — Создаёт экземпляр класса с переданными аргументами
  • ReflectionClass::newInstanceArgs — Создаёт экземпляр класса с переданными параметрами
  • ReflectionClass::newInstanceWithoutConstructor — Создаёт новый экземпляр класса без вызова конструктора
  • ReflectionClass::setStaticPropertyValue — Устанавливает значение static-свойства
  • ReflectionClass::__toString — Возвращает строковое представление объекта класса ReflectionClass


Создаёт объект класса ReflectionClass

  • « ReflectionClass
  • ReflectionClass::export »
  • PHP Manual
  • ReflectionClass
  • Создаёт объект класса ReflectionClass

ReflectionClass::__construct

(PHP 5, PHP 7)

ReflectionClass::__construct — Создаёт объект класса ReflectionClass

Описание

public ReflectionClass::__construct ( mixed $argument )

Создаёт новый объект класса ReflectionClass.

Список параметров

argument

В качестве аргумента может принимать строку (string), содержащую имя исследуемого класса, либо объект (object).

Возвращаемые значения

Возвращает объект класса ReflectionClass.

Ошибки

Вызывает исключение ReflectionException, если заданный класс не существует.

Примеры

Пример #1 Простой пример использования ReflectionClass

<?php
Reflection::export(new ReflectionClass('Exception'));
?>

Результатом выполнения данного примера будет что-то подобное:

Class [ <internal:Core> class Exception ] {

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [7] {
    Property [ <default> protected $message ]
    Property [ <default> private $string ]
    Property [ <default> protected $code ]
    Property [ <default> protected $file ]
    Property [ <default> protected $line ]
    Property [ <default> private $trace ]
    Property [ <default> private $previous ]
  }

  - Methods [10] {
    Method [ <internal:Core> final private method __clone ] {
    }

    Method [ <internal:Core, ctor> public method __construct ] {

      - Parameters [3] {
        Parameter #0 [ <optional> $message ]
        Parameter #1 [ <optional> $code ]
        Parameter #2 [ <optional> $previous ]
      }
    }

    Method [ <internal:Core> final public method getMessage ] {
    }

    Method [ <internal:Core> final public method getCode ] {
    }

    Method [ <internal:Core> final public method getFile ] {
    }

    Method [ <internal:Core> final public method getLine ] {
    }

    Method [ <internal:Core> final public method getTrace ] {
    }

    Method [ <internal:Core> final public method getPrevious ] {
    }

    Method [ <internal:Core> final public method getTraceAsString ] {
    }

    Method [ <internal:Core> public method __toString ] {
    }
  }
}

Смотрите также

  • ReflectionObject::__construct() - Конструктор класса ReflectionObject
  • Конструкторы


Экспортирует класс

  • « ReflectionClass::__construct
  • ReflectionClass::getConstant »
  • PHP Manual
  • ReflectionClass
  • Экспортирует класс

ReflectionClass::export

(PHP 5, PHP 7)

ReflectionClass::export — Экспортирует класс

Описание

public static string ReflectionClass::export ( mixed $argument [, bool $return = false ] )

Экспортирует reflected (отражённый) класс.

Список параметров

argument

Экспортируемый объект Reflection.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Примеры

Пример #1 Использование ReflectionClass::export()

<?php
class Apple {
    public $var1;
    public $var2 = 'Orange';

    public function type() {
        return 'Apple';
    }
}
ReflectionClass::export('Apple');
?>

Результатом выполнения данного примера будет что-то подобное:

Class [ <user> class Apple ] {
  @@ php shell code 1-8

  - Constants [0] {
  }

  - Static properties [0] {
  }

  - Static methods [0] {
  }

  - Properties [2] {
    Property [ <default> public $var1 ]
    Property [ <default> public $var2 ]
  }

  - Methods [1] {
    Method [ <user> public method type ] {
      @@ php shell code 5 - 7
    }
  }
}

Смотрите также

  • ReflectionClass::getName() - Возвращает имя класса


Возвращает определенную константу

  • « ReflectionClass::export
  • ReflectionClass::getConstants »
  • PHP Manual
  • ReflectionClass
  • Возвращает определенную константу

ReflectionClass::getConstant

(PHP 5, PHP 7)

ReflectionClass::getConstant — Возвращает определенную константу

Описание

public mixed ReflectionClass::getConstant ( string $name )

Возвращает определенную константу.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Имя константы.

Возвращаемые значения

Значение константы.

Смотрите также

  • ReflectionClass::getConstants() - Возвращает константы


Возвращает константы

  • « ReflectionClass::getConstant
  • ReflectionClass::getConstructor »
  • PHP Manual
  • ReflectionClass
  • Возвращает константы

ReflectionClass::getConstants

(PHP 5, PHP 7)

ReflectionClass::getConstants — Возвращает константы

Описание

public array ReflectionClass::getConstants ( void )

Возвращает определённые в классе константы.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) констант. Имя константы - ключ, значение константы - значение.

Смотрите также

  • ReflectionClass::getConstant() - Возвращает определенную константу


Возвращает конструктор класса

  • « ReflectionClass::getConstants
  • ReflectionClass::getDefaultProperties »
  • PHP Manual
  • ReflectionClass
  • Возвращает конструктор класса

ReflectionClass::getConstructor

(PHP 5, PHP 7)

ReflectionClass::getConstructor — Возвращает конструктор класса

Описание

public ReflectionMethod ReflectionClass::getConstructor ( void )

Возвращает конструктор отраженного класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект ReflectionMethod, отражающий конструктор класса, или NULL если у класса нет конструктора.

Примеры

Пример #1 Пример использования ReflectionClass::getConstructor()

<?php
$class = new ReflectionClass('ReflectionClass');
$constructor = $class->getConstructor();
var_dump($constructor);
?>

Результат выполнения данного примера:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(11) "__construct"
  ["class"]=>
  string(15) "ReflectionClass"
}

Смотрите также

  • ReflectionClass::getName() - Возвращает имя класса


Возвращает свойства по умолчанию

  • « ReflectionClass::getConstructor
  • ReflectionClass::getDocComment »
  • PHP Manual
  • ReflectionClass
  • Возвращает свойства по умолчанию

ReflectionClass::getDefaultProperties

(PHP 5, PHP 7)

ReflectionClass::getDefaultProperties — Возвращает свойства по умолчанию

Описание

public array ReflectionClass::getDefaultProperties ( void )

Возвращает свойства класса по умолчанию (включая наследованные свойства).

Замечание:

Этот метод работает только для статических свойств при использовании с внутренними классами. Значение по умолчанию статического свойства нельзя отслеживать в классах, определенных пользователем.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив (array) свойств по умолчанию, ключами которого являются имена свойств, а значениями -- соответствующие значения по умолчанию или же NULL, если этому свойству не было задано значение по умолчанию. Функция не различает static (статические) и non static (не статические) свойства, а также не предоставляет информацию о модификаторах видимости при выводе.

Примеры

Пример #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(14) "статическое свойство"
   ["property"]=>
   string(15) "свойство по умолчанию"
   ["privateProperty"]=>
   string(22) "закрытое свойство по умолчанию"
   ["defaultlessProperty"]=>
   NULL
   ["inheritedProperty"]=>
   string(16) "наследованное свойство по умолчанию"
}

Смотрите также

  • ReflectionClass::getProperties() - Возвращает свойства
  • ReflectionClass::getStaticProperties() - Возвращает static свойства
  • ReflectionClass::getProperty() - Возвращает экземпляр ReflectionProperty для свойства класса


Возвращает doc-блоки комментариев

  • « ReflectionClass::getDefaultProperties
  • ReflectionClass::getEndLine »
  • PHP Manual
  • ReflectionClass
  • Возвращает doc-блоки комментариев

ReflectionClass::getDocComment

(PHP 5 >= 5.1.0, PHP 7)

ReflectionClass::getDocComment — Возвращает doc-блоки комментариев

Описание

public string ReflectionClass::getDocComment ( void )

Возвращает doc-блоки комментариев класса.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

doc-блок комментариев, если он существует, в противном случае FALSE

Примеры

Пример #1 Пример использования ReflectionClass::getDocComment()

<?php
/**
* Тестовый класс
*
* @param  foo bar
* @return baz
*/
class TestClass { }

$rc = new ReflectionClass('TestClass');
var_dump($rc->getDocComment())
?>

Результат выполнения данного примера:

string(55) "/**
* Тестовый класс
*
* @param  foo bar
* @return baz
*/"

Смотрите также

  • ReflectionClass::getName() - Возвращает имя класса


Возвращает номер последней строки

  • « ReflectionClass::getDocComment
  • ReflectionClass::getExtension »
  • PHP Manual
  • ReflectionClass
  • Возвращает номер последней строки

ReflectionClass::getEndLine

(PHP 5, PHP 7)

ReflectionClass::getEndLine — Возвращает номер последней строки

Описание

public int ReflectionClass::getEndLine ( void )

Возвращает номер последней строки определения пользовательского класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Номер последней строки определения пользовательского класса или FALSE, если номер неизвестен.

Примеры

Пример #1 Пример использования ReflectionClass::getEndLine()

<?php
// Тестовый класс
class TestClass { }

$rc = new ReflectionClass('TestClass');

echo $rc->getEndLine();
?>

Результат выполнения данного примера:

3

Смотрите также

  • ReflectionClass::getStartLine() - Возвращает номер начальной строки


Возвращает объект класса ReflectionExtension для расширения, определенного в классе

  • « ReflectionClass::getEndLine
  • ReflectionClass::getExtensionName »
  • PHP Manual
  • ReflectionClass
  • Возвращает объект класса ReflectionExtension для расширения, определенного в классе

ReflectionClass::getExtension

(PHP 5, PHP 7)

ReflectionClass::getExtension — Возвращает объект класса ReflectionExtension для расширения, определенного в классе

Описание

public ReflectionExtension ReflectionClass::getExtension ( void )

Возвращает объект класса ReflectionExtension для расширения, определенного в классе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Экземпляр класса ReflectionExtension, представляющий расширение, определенное в классе, или NULL для пользовательских классов.

Примеры

Пример #1 Пример использования ReflectionClass::getExtension()

<?php
$class = new ReflectionClass('ReflectionClass');
$extension = $class->getExtension();
var_dump($extension);
?>

Результат выполнения данного примера:

object(ReflectionExtension)#2 (1) {
  ["name"]=>
  string(10) "Reflection"
}

Смотрите также

  • ReflectionClass::getExtensionName() - Возвращает имя расширения, определенного в классе


Возвращает имя расширения, определенного в классе

  • « ReflectionClass::getExtension
  • ReflectionClass::getFileName »
  • PHP Manual
  • ReflectionClass
  • Возвращает имя расширения, определенного в классе

ReflectionClass::getExtensionName

(PHP 5, PHP 7)

ReflectionClass::getExtensionName — Возвращает имя расширения, определенного в классе

Описание

public string ReflectionClass::getExtensionName ( void )

Возвращает имя расширения, определенного в классе.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя расширения, определенного в классе, или FALSE для пользовательских классов.

Примеры

Пример #1 Пример использования ReflectionClass::getExtensionName()

<?php
$class = new ReflectionClass('ReflectionClass');
$extension = $class->getExtensionName();
var_dump($extension);
?>

Результат выполнения данного примера:

string(10) "Reflection"

Смотрите также

  • ReflectionClass::getExtension() - Возвращает объект класса ReflectionExtension для расширения, определенного в классе


Возвращает имя файла, в котором объявлен класс

  • « ReflectionClass::getExtensionName
  • ReflectionClass::getInterfaceNames »
  • PHP Manual
  • ReflectionClass
  • Возвращает имя файла, в котором объявлен класс

ReflectionClass::getFileName

(PHP 5, PHP 7)

ReflectionClass::getFileName — Возвращает имя файла, в котором объявлен класс

Описание

public string ReflectionClass::getFileName ( void )

Возвращает имя файла, в котором объявлен класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя файла, в котором объявлен класс. Если класс объявлен в ядре PHP или в расширении PHP, возвращает FALSE.

Смотрите также

  • ReflectionClass::getExtensionName() - Возвращает имя расширения, определенного в классе


Возвращает имена интерфейсов

  • « ReflectionClass::getFileName
  • ReflectionClass::getInterfaces »
  • PHP Manual
  • ReflectionClass
  • Возвращает имена интерфейсов

ReflectionClass::getInterfaceNames

(PHP 5 >= 5.2.0, PHP 7)

ReflectionClass::getInterfaceNames — Возвращает имена интерфейсов

Описание

public array ReflectionClass::getInterfaceNames ( void )

Возвращает имена интерфейсов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив имен интерфейсов.

Примеры

Пример #1 Пример использования ReflectionClass::getInterfaceNames()

<?php
interface Foo { }

interface Bar { }

class Baz implements Foo, Bar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaceNames());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [0] => Foo
    [1] => Bar
)

Смотрите также

  • ReflectionClass::getInterfaces() - Возвращает интерфейсы


Возвращает интерфейсы

  • « ReflectionClass::getInterfaceNames
  • ReflectionClass::getMethod »
  • PHP Manual
  • ReflectionClass
  • Возвращает интерфейсы

ReflectionClass::getInterfaces

(PHP 5, PHP 7)

ReflectionClass::getInterfaces — Возвращает интерфейсы

Описание

public array ReflectionClass::getInterfaces ( void )

Возвращает интерфейсы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив (array) интерфейсов, в котором ключами являются имена интерфейсов, а значениями -- объекты ReflectionClass.

Примеры

Пример #1 Пример использования ReflectionClass::getInterfaces()

<?php
interface Foo { }

interface Bar { }

class Baz implements Foo, Bar { }

$rc1 = new ReflectionClass("Baz");

print_r($rc1->getInterfaces());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [Foo] => ReflectionClass Object
        (
            [name] => Foo
        )

    [Bar] => ReflectionClass Object
        (
            [name] => Bar
        )

)

Смотрите также

  • ReflectionClass::getInterfaceNames() - Возвращает имена интерфейсов


Возвращает экземпляр ReflectionMethod для метода класса

  • « ReflectionClass::getInterfaces
  • ReflectionClass::getMethods »
  • PHP Manual
  • ReflectionClass
  • Возвращает экземпляр ReflectionMethod для метода класса

ReflectionClass::getMethod

(PHP 5, PHP 7)

ReflectionClass::getMethod — Возвращает экземпляр ReflectionMethod для метода класса

Описание

public ReflectionMethod ReflectionClass::getMethod ( string $name )

Возвращает экземпляр ReflectionMethod для метода класса.

Список параметров

name

Исследуемый метод.

Возвращаемые значения

Экземпляр класса ReflectionMethod.

Ошибки

ReflectionException в случае, если метод не существует.

Примеры

Пример #1 Пример использования ReflectionClass::getMethod()

<?php
$class = new ReflectionClass('ReflectionClass');
$method = $class->getMethod('getMethod');
var_dump($method);
?>

Результат выполнения данного примера:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(9) "getMethod"
  ["class"]=>
  string(15) "ReflectionClass"
}

Смотрите также

  • ReflectionClass::getMethods() - Возвращает список методов в виде массива


Возвращает список методов в виде массива

  • « ReflectionClass::getMethod
  • ReflectionClass::getModifiers »
  • PHP Manual
  • ReflectionClass
  • Возвращает список методов в виде массива

ReflectionClass::getMethods

(PHP 5, PHP 7)

ReflectionClass::getMethods — Возвращает список методов в виде массива

Описание

public array ReflectionClass::getMethods ([ int $filter ] )

Возвращает список методов в виде массива.

Список параметров

filter

Фильтрация результата для включения в список только методов с определенными атрибутами. По умолчанию, фильтров нет.

Комбинация из следующих констант через логическое ИЛИ :
ReflectionMethod::IS_STATIC,
ReflectionMethod::IS_PUBLIC,
ReflectionMethod::IS_PROTECTED,
ReflectionMethod::IS_PRIVATE,
ReflectionMethod::IS_ABSTRACT,
ReflectionMethod::IS_FINAL,
для того, чтобы любой из перечисленных
аттрибутов был возвращен.

Замечание: Обратите внимание, что прочие побитовые операции, к примеру ~ не будут работать так, как ожидается. Другими словами, например нельза вернуть все не статические методы.

Возвращаемые значения

Массив (array) объектов класса ReflectionMethod, отражающих каждый метод.

Примеры

Пример #1 Пример использования ReflectionClass::getMethods()

<?php
class Apple {
    public function firstMethod() { }
    final protected function secondMethod() { }
    private static function thirdMethod() { }
}

$class = new ReflectionClass('Apple');
$methods = $class->getMethods();
var_dump($methods);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  &object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(11) "firstMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  &object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [2]=>
  &object(ReflectionMethod)#4 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}

Пример #2 Пример фильтрации результата вызова ReflectionClass::getMethods()

<?php
class Apple {
    public function firstMethod() { }
    final protected function secondMethod() { }
    private static function thirdMethod() { }
}

$class = new ReflectionClass('Apple');
$methods = $class->getMethods(ReflectionMethod::IS_STATIC | ReflectionMethod::IS_FINAL);
var_dump($methods);
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  &object(ReflectionMethod)#2 (2) {
    ["name"]=>
    string(12) "secondMethod"
    ["class"]=>
    string(5) "Apple"
  }
  [1]=>
  &object(ReflectionMethod)#3 (2) {
    ["name"]=>
    string(11) "thirdMethod"
    ["class"]=>
    string(5) "Apple"
  }
}

Смотрите также

  • ReflectionClass::getMethod() - Возвращает экземпляр ReflectionMethod для метода класса
  • get_class_methods() - Возвращает массив имен методов класса


Возвращает информацию о модификаторах класса

  • « ReflectionClass::getMethods
  • ReflectionClass::getName »
  • PHP Manual
  • ReflectionClass
  • Возвращает информацию о модификаторах класса

ReflectionClass::getModifiers

(PHP 5, PHP 7)

ReflectionClass::getModifiers — Возвращает информацию о модификаторах класса

Описание

public int ReflectionClass::getModifiers ( void )

Возвращает битовую маску модификаторов для данного метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает битовую маску из констант модификаторов.

Смотрите также

  • ReflectionClass::getProperties() - Возвращает свойства


Возвращает имя класса

  • « ReflectionClass::getModifiers
  • ReflectionClass::getNamespaceName »
  • PHP Manual
  • ReflectionClass
  • Возвращает имя класса

ReflectionClass::getName

(PHP 5, PHP 7)

ReflectionClass::getName — Возвращает имя класса

Описание

public string ReflectionClass::getName ( void )

Возвращает имя класса.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя класса.

Примеры

Пример #1 Пример использования ReflectionClass::getName()

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

Результат выполнения данного примера:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Смотрите также

  • ReflectionClass::getNamespaceName() - Возвращает название пространства имён


Возвращает название пространства имён

  • « ReflectionClass::getName
  • ReflectionClass::getParentClass »
  • PHP Manual
  • ReflectionClass
  • Возвращает название пространства имён

ReflectionClass::getNamespaceName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::getNamespaceName — Возвращает название пространства имён

Описание

public string ReflectionClass::getNamespaceName ( void )

Возвращает название пространства имён.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Название пространства имён.

Примеры

Пример #1 Пример использования ReflectionClass::getNamespaceName()

<?php
namespace A\B;

class Foo { }

$class = new \ReflectionClass('stdClass');

var_dump($class->inNamespace());
var_dump($class->getName());
var_dump($class->getNamespaceName());
var_dump($class->getShortName());

$class = new \ReflectionClass('A\\B\\Foo');

var_dump($class->inNamespace());
var_dump($class->getName());
var_dump($class->getNamespaceName());
var_dump($class->getShortName());
?>

Результат выполнения данного примера:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Смотрите также

  • ReflectionClass::getParentClass() - Возвращает родительский класс
  • namespaces


Возвращает родительский класс

  • « ReflectionClass::getNamespaceName
  • ReflectionClass::getProperties »
  • PHP Manual
  • ReflectionClass
  • Возвращает родительский класс

ReflectionClass::getParentClass

(PHP 5, PHP 7)

ReflectionClass::getParentClass — Возвращает родительский класс

Описание

public ReflectionClass ReflectionClass::getParentClass ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass.

Смотрите также

  • ReflectionClass::__construct() - Создаёт объект класса ReflectionClass


Возвращает свойства

  • « ReflectionClass::getParentClass
  • ReflectionClass::getProperty »
  • PHP Manual
  • ReflectionClass
  • Возвращает свойства

ReflectionClass::getProperties

(PHP 5, PHP 7)

ReflectionClass::getProperties — Возвращает свойства

Описание

public array ReflectionClass::getProperties ([ int $filter ] )

Возвращает reflected (отражённые) свойства.

Список параметров

filter

Опциональный фильтр, позволяющий возвращать только желаемые типы свойств. Он настраивается с помощью констант ReflectionProperty, по умолчанию позволяет возвращать свойства всех типов.

Возвращаемые значения

Массив объектов класса ReflectionProperty.

Примеры

Пример #1 Пример фильтрации с помощью ReflectionClass::getProperties()

В этом примере демонстрируется использование параметра filter, который в данном случае не пропускает private (закрытые) свойства.

<?php
class Foo {
    public    $foo  = 1;
    protected $bar  = 2;
    private   $baz  = 3;
}

$foo = new Foo();

$reflect = new ReflectionClass($foo);
$props   = $reflect->getProperties(ReflectionProperty::IS_PUBLIC | ReflectionProperty::IS_PROTECTED);

foreach ($props as $prop) {
    print $prop->getName() . "\n";
}

var_dump($props);

?>

Результатом выполнения данного примера будет что-то подобное:

foo
bar
array(2) {
  [0]=>
  object(ReflectionProperty)#3 (2) {
    ["name"]=>
    string(3) "foo"
    ["class"]=>
    string(3) "Foo"
  }
  [1]=>
  object(ReflectionProperty)#4 (2) {
    ["name"]=>
    string(3) "bar"
    ["class"]=>
    string(3) "Foo"
  }
}

Смотрите также

  • ReflectionClass::getProperty() - Возвращает экземпляр ReflectionProperty для свойства класса
  • ReflectionProperty
  • константы ReflectionProperty


Возвращает экземпляр ReflectionProperty для свойства класса

  • « ReflectionClass::getProperties
  • ReflectionClass::getShortName »
  • PHP Manual
  • ReflectionClass
  • Возвращает экземпляр ReflectionProperty для свойства класса

ReflectionClass::getProperty

(PHP 5, PHP 7)

ReflectionClass::getProperty — Возвращает экземпляр ReflectionProperty для свойства класса

Описание

public ReflectionProperty ReflectionClass::getProperty ( string $name )

Возвращает экземпляр 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() - Возвращает свойства


Возвращает короткое имя

  • « ReflectionClass::getProperty
  • ReflectionClass::getStartLine »
  • PHP Manual
  • ReflectionClass
  • Возвращает короткое имя

ReflectionClass::getShortName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::getShortName — Возвращает короткое имя

Описание

public string ReflectionClass::getShortName ( void )

Возвращает короткое имя класса, ту часть, которая не относится к названию пространства имён.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Короткое имя класса.

Примеры

Пример #1 Пример использования ReflectionClass::getShortName()

<?php
namespace A\B;

class Foo { }

$function = new \ReflectionClass('stdClass');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());

$function = new \ReflectionClass('A\\B\\Foo');

var_dump($function->inNamespace());
var_dump($function->getName());
var_dump($function->getNamespaceName());
var_dump($function->getShortName());
?>

Результат выполнения данного примера:

bool(false)
string(8) "stdClass"
string(0) ""
string(8) "stdClass"

bool(true)
string(7) "A\B\Foo"
string(3) "A\B"
string(3) "Foo"

Смотрите также

  • ReflectionClass::getName() - Возвращает имя класса


Возвращает номер начальной строки

  • « ReflectionClass::getShortName
  • ReflectionClass::getStaticProperties »
  • PHP Manual
  • ReflectionClass
  • Возвращает номер начальной строки

ReflectionClass::getStartLine

(PHP 5, PHP 7)

ReflectionClass::getStartLine — Возвращает номер начальной строки

Описание

public int ReflectionClass::getStartLine ( void )

Возвращает номер начальной строки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Номер начальной строки в виде целого числа (integer).

Смотрите также

  • ReflectionClass::getEndLine() - Возвращает номер последней строки


Возвращает static свойства

  • « ReflectionClass::getStartLine
  • ReflectionClass::getStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Возвращает static свойства

ReflectionClass::getStaticProperties

(PHP 5, PHP 7)

ReflectionClass::getStaticProperties — Возвращает static свойства

Описание

public array ReflectionClass::getStaticProperties ( void )

Возвращает static (статические) свойства.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) static свойств.

Смотрите также

  • ReflectionClass::getStaticPropertyValue() - Возвращает значение static свойства
  • ReflectionClass::setStaticPropertyValue() - Устанавливает значение static-свойства


Возвращает значение static свойства

  • « ReflectionClass::getStaticProperties
  • ReflectionClass::getTraitAliases »
  • PHP Manual
  • ReflectionClass
  • Возвращает значение static свойства

ReflectionClass::getStaticPropertyValue

(PHP 5 >= 5.1.0, PHP 7)

ReflectionClass::getStaticPropertyValue — Возвращает значение static свойства

Описание

public mixed ReflectionClass::getStaticPropertyValue ( string $name [, mixed &$def_value ] )

Возвращает значение static (статического) свойства класса.

Список параметров

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() - Возвращает static свойства
  • ReflectionClass::setStaticPropertyValue() - Устанавливает значение static-свойства


Возвращает массив trait-псевдонимов

  • « ReflectionClass::getStaticPropertyValue
  • ReflectionClass::getTraitNames »
  • PHP Manual
  • ReflectionClass
  • Возвращает массив trait-псевдонимов

ReflectionClass::getTraitAliases

(PHP >= 5.4.0)

ReflectionClass::getTraitAliases — Возвращает массив trait-псевдонимов

Описание

public array ReflectionClass::getTraitAliases ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив, ключами которого являются новые имена методов, а в значениями -- оригинальные имена методов (в формате "TraitName::original"). В случае возникновения ошибки возвращает NULL.


Возвращает массив trait-имён, задействованных в этом классе

  • « ReflectionClass::getTraitAliases
  • ReflectionClass::getTraits »
  • PHP Manual
  • ReflectionClass
  • Возвращает массив trait-имён, задействованных в этом классе

ReflectionClass::getTraitNames

(PHP >= 5.4.0)

ReflectionClass::getTraitNames — Возвращает массив trait-имён, задействованных в этом классе

Описание

public array ReflectionClass::getTraitNames ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает массив, значениями которого являются trait-имена. В случае возникновения ошибки возвращает NULL.


Возвращает массив traits, задействованных в этом классе

  • « ReflectionClass::getTraitNames
  • ReflectionClass::hasConstant »
  • PHP Manual
  • ReflectionClass
  • Возвращает массив traits, задействованных в этом классе

ReflectionClass::getTraits

(PHP >= 5.4.0)

ReflectionClass::getTraits — Возвращает массив traits, задействованных в этом классе

Описание

public array ReflectionClass::getTraits ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает ассоциативный массив, ключами которого являются имена traits, а значениями -- экземпляры класса ReflectionClass для каждого trait. В случае возникновения ошибки возвращает NULL.


Проверяет, задана ли константа

  • « ReflectionClass::getTraits
  • ReflectionClass::hasMethod »
  • PHP Manual
  • ReflectionClass
  • Проверяет, задана ли константа

ReflectionClass::hasConstant

(PHP 5 >= 5.1.0, PHP 7)

ReflectionClass::hasConstant — Проверяет, задана ли константа

Описание

public bool ReflectionClass::hasConstant ( string $name )

Проверяет, задана ли в классе указанная константа или нет.

Список параметров

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.0, PHP 7)

ReflectionClass::hasMethod — Проверяет, задан ли метод

Описание

public bool ReflectionClass::hasMethod ( string $name )

Проверяет, задан ли в классе указанный метод или нет.

Список параметров

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.0, PHP 7)

ReflectionClass::hasProperty — Проверяет, задано ли свойство

Описание

public bool ReflectionClass::hasProperty ( string $name )

Проверяет, задано ли в классе указанное свойство или нет.

Список параметров

name

Имя проверяемого свойства.

Возвращаемые значения

TRUE если свойство задано, в противном случае FALSE

Примеры

Пример #1 Пример использования ReflectionClass::hasProperty()

<?php
class Foo {
    public    $p1;
    protected $p2;
    private   $p3;

}

$obj = new ReflectionObject(new Foo());

var_dump($obj->hasProperty("p1"));
var_dump($obj->hasProperty("p2"));
var_dump($obj->hasProperty("p3"));
var_dump($obj->hasProperty("p4"));
?>

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(true)
bool(true)
bool(false)

Смотрите также

  • ReflectionClass::hasConstant() - Проверяет, задана ли константа
  • ReflectionClass::hasMethod() - Проверяет, задан ли метод


Проверяет, реализуется ли интерфейс

  • « ReflectionClass::hasProperty
  • ReflectionClass::inNamespace »
  • PHP Manual
  • ReflectionClass
  • Проверяет, реализуется ли интерфейс

ReflectionClass::implementsInterface

(PHP 5, PHP 7)

ReflectionClass::implementsInterface — Проверяет, реализуется ли интерфейс

Описание

public bool ReflectionClass::implementsInterface ( string $interface )

Проверяет, реализует ли класс указанный интерфейс или нет.

Список параметров

interface

Имя интерфейса.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ReflectionClass::isInterface() - Проверяет, является ли класс интерфейсом
  • ReflectionClass::isSubclassOf() - Проверяет, является ли класс подклассом
  • interface_exists() - Проверяет, определен ли интерфейс
  • Интерфейсы объектов


Проверяет, определён ли класс в пространстве имён

  • « ReflectionClass::implementsInterface
  • ReflectionClass::isAbstract »
  • PHP Manual
  • ReflectionClass
  • Проверяет, определён ли класс в пространстве имён

ReflectionClass::inNamespace

(PHP 5 >= 5.3.0, PHP 7)

ReflectionClass::inNamespace — Проверяет, определён ли класс в пространстве имён

Описание

public bool ReflectionClass::inNamespace ( void )

Проверяет, определён ли класс в пространстве имён.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 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 Namespaces


Проверяет, является ли класс абстрактным

  • « ReflectionClass::inNamespace
  • ReflectionClass::isAnonymous »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс абстрактным

ReflectionClass::isAbstract

(PHP 5, PHP 7)

ReflectionClass::isAbstract — Проверяет, является ли класс абстрактным

Описание

public bool ReflectionClass::isAbstract ( void )

Проверяет, является ли класс абстрактным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ReflectionClass::isAbstract()

<?php
class          TestClass { }
abstract class TestAbstractClass { }

$testClass     = new ReflectionClass('TestClass');
$abstractClass = new ReflectionClass('TestAbstractClass');

var_dump($testClass->isAbstract());
var_dump($abstractClass->isAbstract());
?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • ReflectionClass::isInterface() - Проверяет, является ли класс интерфейсом
  • Абстрактные классы


Проверяет, анонимный класс или нет

  • « ReflectionClass::isAbstract
  • ReflectionClass::isCloneable »
  • PHP Manual
  • ReflectionClass
  • Проверяет, анонимный класс или нет

ReflectionClass::isAnonymous

(PHP 7)

ReflectionClass::isAnonymous — Проверяет, анонимный класс или нет

Описание

public bool ReflectionClass::isAnonymous ( void )

Проверяет, анонимный класс или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример ReflectionClass::isAnonymous()

<?php
class TestClass {}
$anonClass = new class {};

$normalClass = new ReflectionClass('TestClass');
$anonClass  = new ReflectionClass($anonClass);

var_dump($normalClass->isAnonymous());
var_dump($anonClass->isAnonymous());

?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • ReflectionClass::isFinal() - Проверяет, является ли класс окончательным (final)


Проверяет, можно ли клонировать этот класс

  • « ReflectionClass::isAnonymous
  • ReflectionClass::isFinal »
  • PHP Manual
  • ReflectionClass
  • Проверяет, можно ли клонировать этот класс

ReflectionClass::isCloneable

(PHP >= 5.4.0)

ReflectionClass::isCloneable — Проверяет, можно ли клонировать этот класс

Описание

public bool ReflectionClass::isCloneable ( void )

Проверяет, можно ли клонировать этот класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если класс можно клонировать, в противном случае FALSE.

Примеры

Пример #1 Пример использования ReflectionClass::isCloneable()

<?php
class NotCloneable {
    public $var1;

    private function __clone() {
    }
}

class Cloneable {
    public $var1;
}

$notCloneable = new ReflectionClass('NotCloneable');
$cloneable = new ReflectionClass('Cloneable');

var_dump($notCloneable->isCloneable());
var_dump($cloneable->isCloneable());
?>

Результат выполнения данного примера:

bool(false)
bool(true)


Проверяет, является ли класс окончательным (final)

  • « ReflectionClass::isCloneable
  • ReflectionClass::isInstance »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс окончательным (final)

ReflectionClass::isFinal

(PHP 5, PHP 7)

ReflectionClass::isFinal — Проверяет, является ли класс окончательным (final)

Описание

public bool ReflectionClass::isFinal ( void )

Проверяет, является ли класс окончательным (final).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ReflectionClass::isFinal()

<?php
class       TestClass { }
final class TestFinalClass { }

$normalClass = new ReflectionClass('TestClass');
$finalClass  = new ReflectionClass('TestFinalClass');

var_dump($normalClass->isFinal());
var_dump($finalClass->isFinal());

?>

Результат выполнения данного примера:

bool(false)
bool(true)

Смотрите также

  • ReflectionClass::isAbstract() - Проверяет, является ли класс абстрактным
  • Ключевое слово "final"


Проверяет, принадлежит ли объект классу

  • « ReflectionClass::isFinal
  • ReflectionClass::isInstantiable »
  • PHP Manual
  • ReflectionClass
  • Проверяет, принадлежит ли объект классу

ReflectionClass::isInstance

(PHP 5, PHP 7)

ReflectionClass::isInstance — Проверяет, принадлежит ли объект классу

Описание

public bool ReflectionClass::isInstance ( object $object )

Проверяет, является ли объект экземпляром класса.

Список параметров

object

Проверяемый объект.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ReflectionClass::isInstance() и его аналогов

<?php
// Пример использования
$class = new ReflectionClass('Foo');

if ($class->isInstance($arg)) {
    echo "Yes";
}

// Аналогично этому
if ($arg instanceof Foo) {
    echo "Yes";
}

// Аналогично этому
if (is_a($arg, 'Foo')) {
    echo "Yes";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Yes
Yes
Yes

Смотрите также

  • ReflectionClass::isInterface() - Проверяет, является ли класс интерфейсом
  • Операторы проверки типа (instanceof)
  • Интерфейсы объектов
  • is_a() - Проверяет, принадлежит ли объект к данному классу или содержит данный класс в числе своих предков


Проверяет, можно ли создать экземпляр класса

  • « ReflectionClass::isInstance
  • ReflectionClass::isInterface »
  • PHP Manual
  • ReflectionClass
  • Проверяет, можно ли создать экземпляр класса

ReflectionClass::isInstantiable

(PHP 5, PHP 7)

ReflectionClass::isInstantiable — Проверяет, можно ли создать экземпляр класса

Описание

public bool ReflectionClass::isInstantiable ( void )

Проверяет, можно ли создать экземпляр класса.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 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() { }
}

class privateConstructor {
    private function __construct() { }
}

$classes = array(
    "C",
    "iface",
    "ifaceImpl",
    "abstractClass",
    "D",
    "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)
Можно ли создать экземпляр класса privateConstructor?  bool(false)

Смотрите также

  • ReflectionClass::isInstance() - Проверяет, принадлежит ли объект классу


Проверяет, является ли класс интерфейсом

  • « ReflectionClass::isInstantiable
  • ReflectionClass::isInternal »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс интерфейсом

ReflectionClass::isInterface

(PHP 5, PHP 7)

ReflectionClass::isInterface — Проверяет, является ли класс интерфейсом

Описание

public bool ReflectionClass::isInterface ( void )

Проверяет, является ли класс интерфейсом или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 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::isIterateable »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс встроенным в расширение или в ядро

ReflectionClass::isInternal

(PHP 5, PHP 7)

ReflectionClass::isInternal — Проверяет, является ли класс встроенным в расширение или в ядро

Описание

public bool ReflectionClass::isInternal ( void )

Проверяет, является ли класс встроенным в расширение или в ядро, а не пользовательским.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 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::isSubclassOf »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс итерируемым

ReflectionClass::isIterateable

(PHP 5, PHP 7)

ReflectionClass::isIterateable — Проверяет, является ли класс итерируемым

Описание

public bool ReflectionClass::isIterateable ( void )

Проверяет, является ли класс итерируемым (iterateable) или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования ReflectionClass::isIterateable()

<?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_iterateable($class) {
    $reflection = new ReflectionClass($class);
    var_dump($reflection->isIterateable());
}

$classes = array("ArrayObject", "IteratorClass", "DerivedClass", "NonIterator");

foreach ($classes as $class) {
    echo "Является ли класс $class итерируемым? ";
    dump_iterateable($class);
}
?>

Результат выполнения данного примера:

Является ли класс ArrayObject итерируемым? bool(true)
Является ли класс IteratorClass итерируемым? bool(true)
Является ли класс DerivedClass итерируемым? bool(true)
Является ли класс NonIterator итерируемым? bool(false)

Смотрите также

  • ReflectionClass::__construct() - Создаёт объект класса ReflectionClass


Проверяет, является ли класс подклассом

  • « ReflectionClass::isIterateable
  • ReflectionClass::isTrait »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс подклассом

ReflectionClass::isSubclassOf

(PHP 5, PHP 7)

ReflectionClass::isSubclassOf — Проверяет, является ли класс подклассом

Описание

public bool ReflectionClass::isSubclassOf ( string $class )

Проверяет, является ли класс подклассом указанного класса или реализует ли указанный интерфейс.

Список параметров

class

Имя класса, по которому будет вестись проверка.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ReflectionClass::isInterface() - Проверяет, является ли класс интерфейсом
  • ReflectionClass::implementsInterface() - Проверяет, реализуется ли интерфейс
  • is_subclass_of() - Проверяет, содержит ли объект в своем дереве предков указанный класс либо прямо реализует его
  • get_parent_class() - Возвращает имя родительского класса для объекта или класса


Проверяет, является ли класс trait

  • « ReflectionClass::isSubclassOf
  • ReflectionClass::isUserDefined »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс trait

ReflectionClass::isTrait

(PHP >= 5.4.0)

ReflectionClass::isTrait — Проверяет, является ли класс trait

Описание

public bool ReflectionClass::isTrait ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если класс является trait, в противном случае FALSE. В случае возникновения ошибки возвращает NULL.


Проверяет, является ли класс пользовательским

  • « ReflectionClass::isTrait
  • ReflectionClass::newInstance »
  • PHP Manual
  • ReflectionClass
  • Проверяет, является ли класс пользовательским

ReflectionClass::isUserDefined

(PHP 5, PHP 7)

ReflectionClass::isUserDefined — Проверяет, является ли класс пользовательским

Описание

public bool ReflectionClass::isUserDefined ( void )

Проверяет, является ли класс пользовательским, а не встроенным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • ReflectionClass::isInternal() - Проверяет, является ли класс встроенным в расширение или в ядро


Создаёт экземпляр класса с переданными аргументами

  • « ReflectionClass::isUserDefined
  • ReflectionClass::newInstanceArgs »
  • PHP Manual
  • ReflectionClass
  • Создаёт экземпляр класса с переданными аргументами

ReflectionClass::newInstance

(PHP 5, PHP 7)

ReflectionClass::newInstance — Создаёт экземпляр класса с переданными аргументами

Описание

public object ReflectionClass::newInstance ( mixed $args [, mixed $... ] )

Создаёт новый экземпляр класса. Принятые аргументы передаются в конструктор класса.

Список параметров

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)

ReflectionClass::newInstanceArgs — Создаёт экземпляр класса с переданными параметрами

Описание

public object ReflectionClass::newInstanceArgs ([ array $args ] )

Создаёт новый экземпляр класса. Принятые аргументы передаются в конструктор класса.

Список параметров

args

Массив (array) аргументов, который затем передаётся в конструктор класса.

Возвращаемые значения

Возвращает новый экземпляр класса.

Примеры

Пример #1 Пример использования ReflectionClass::newInstanceArgs()

<?php
$class = new ReflectionClass('ReflectionFunction');
$instance = $class->newInstanceArgs(array('substr'));
var_dump($instance);
?>

Результат выполнения данного примера:

object(ReflectionFunction)#2 (1) {
  ["name"]=>
  string(6) "substr"
}

Ошибки

Если конструктор не является public (общедоступным), то это приведёт к генерации исключения ReflectionException.

Если конструктор отсутствует, а параметр args имеет один и более аргументов, то это приведёт к генерации исключения ReflectionException.

Смотрите также

  • ReflectionClass::newInstance() - Создаёт экземпляр класса с переданными аргументами
  • ReflectionClass::newInstanceWithoutConstructor() - Создаёт новый экземпляр класса без вызова конструктора


Создаёт новый экземпляр класса без вызова конструктора

  • « ReflectionClass::newInstanceArgs
  • ReflectionClass::setStaticPropertyValue »
  • PHP Manual
  • ReflectionClass
  • Создаёт новый экземпляр класса без вызова конструктора

ReflectionClass::newInstanceWithoutConstructor

(PHP >= 5.4.0)

ReflectionClass::newInstanceWithoutConstructor — Создаёт новый экземпляр класса без вызова конструктора

Описание

public object ReflectionClass::newInstanceWithoutConstructor ( void )

Создаёт новый экземпляр класса без вызова конструктора.

Список параметров

Возвращаемые значения

Список изменений

Версия | Описание
5.6.0 | Теперь можно создавать экземпляры для всех встроенных классов, кроме тех, у которых проставлен final.

Ошибки

Если класс является встроенным, и его экземпляр не может быть создан без вызова конструктора, то это приведёт к генерации исключения ReflectionException. В PHP 5.6.0 и новее, это исключение ограничено только классами с модификатором final.

Смотрите также

  • ReflectionClass::newInstance() - Создаёт экземпляр класса с переданными аргументами
  • ReflectionClass::newInstanceArgs() - Создаёт экземпляр класса с переданными параметрами


Устанавливает значение static-свойства

  • « ReflectionClass::newInstanceWithoutConstructor
  • ReflectionClass::__toString »
  • PHP Manual
  • ReflectionClass
  • Устанавливает значение static-свойства

ReflectionClass::setStaticPropertyValue

(PHP 5 >= 5.1.0, PHP 7)

ReflectionClass::setStaticPropertyValue — Устанавливает значение static-свойства

Описание

public void ReflectionClass::setStaticPropertyValue ( string $name , string $value )

Устанавливает значение статического (static) свойства.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Имя свойства.

value

Новое значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ReflectionClass::getStaticPropertyValue() - Возвращает значение static свойства


Возвращает строковое представление объекта класса ReflectionClass

  • « ReflectionClass::setStaticPropertyValue
  • ReflectionZendExtension »
  • PHP Manual
  • ReflectionClass
  • Возвращает строковое представление объекта класса ReflectionClass

ReflectionClass::__toString

(PHP 5, PHP 7)

ReflectionClass::__toString — Возвращает строковое представление объекта класса ReflectionClass

Описание

public string ReflectionClass::__toString ( void )

Возвращает строковое представление объекта класса 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()


Класс ReflectionZendExtension

(PHP >= 5.4.0)

Введение

Обзор классов

ReflectionZendExtension implements Reflector {
/* Свойства */
public $name ;
/* Методы */
final private void __clone ( void )
public __construct ( string $name )
public static string export ( string $name [, string $return ] )
public string getAuthor ( void )
public string getCopyright ( void )
public string getName ( void )
public string getURL ( void )
public string getVersion ( void )
public string __toString ( void )
}

Свойства

name

Имя модуля. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Содержание

  • ReflectionZendExtension::__clone — Копирующий конструктор
  • ReflectionZendExtension::__construct — Конструктор
  • ReflectionZendExtension::export — Экспорт
  • ReflectionZendExtension::getAuthor — Получение автора
  • ReflectionZendExtension::getCopyright — Получение строки авторских прав
  • ReflectionZendExtension::getName — Получение строки имени
  • ReflectionZendExtension::getURL — Получение URL
  • ReflectionZendExtension::getVersion — Получение номера версии
  • ReflectionZendExtension::__toString — Преобразование в строку


Копирующий конструктор

  • « ReflectionZendExtension
  • ReflectionZendExtension::__construct »
  • PHP Manual
  • ReflectionZendExtension
  • Копирующий конструктор

ReflectionZendExtension::__clone

(PHP >= 5.4.0)

ReflectionZendExtension::__clone — Копирующий конструктор

Описание

final private void ReflectionZendExtension::__clone ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Конструктор

  • « ReflectionZendExtension::__clone
  • ReflectionZendExtension::export »
  • PHP Manual
  • ReflectionZendExtension
  • Конструктор

ReflectionZendExtension::__construct

(PHP >= 5.4.0)

ReflectionZendExtension::__construct — Конструктор

Описание

public ReflectionZendExtension::__construct ( string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

Возвращаемые значения


Экспорт

  • « ReflectionZendExtension::__construct
  • ReflectionZendExtension::getAuthor »
  • PHP Manual
  • ReflectionZendExtension
  • Экспорт

ReflectionZendExtension::export

(PHP >= 5.4.0)

ReflectionZendExtension::export — Экспорт

Описание

public static string ReflectionZendExtension::export ( string $name [, string $return ] )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

name

return

Возвращаемые значения


Получение автора

  • « ReflectionZendExtension::export
  • ReflectionZendExtension::getCopyright »
  • PHP Manual
  • ReflectionZendExtension
  • Получение автора

ReflectionZendExtension::getAuthor

(PHP >= 5.4.0)

ReflectionZendExtension::getAuthor — Получение автора

Описание

public string ReflectionZendExtension::getAuthor ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получение строки авторских прав

  • « ReflectionZendExtension::getAuthor
  • ReflectionZendExtension::getName »
  • PHP Manual
  • ReflectionZendExtension
  • Получение строки авторских прав

ReflectionZendExtension::getCopyright

(PHP >= 5.4.0)

ReflectionZendExtension::getCopyright — Получение строки авторских прав

Описание

public string ReflectionZendExtension::getCopyright ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получение строки имени

  • « ReflectionZendExtension::getCopyright
  • ReflectionZendExtension::getURL »
  • PHP Manual
  • ReflectionZendExtension
  • Получение строки имени

ReflectionZendExtension::getName

(PHP >= 5.4.0)

ReflectionZendExtension::getName — Получение строки имени

Описание

public string ReflectionZendExtension::getName ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получение URL

  • « ReflectionZendExtension::getName
  • ReflectionZendExtension::getVersion »
  • PHP Manual
  • ReflectionZendExtension
  • Получение URL

ReflectionZendExtension::getURL

(PHP >= 5.4.0)

ReflectionZendExtension::getURL — Получение URL

Описание

public string ReflectionZendExtension::getURL ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Получение номера версии

  • « ReflectionZendExtension::getURL
  • ReflectionZendExtension::__toString »
  • PHP Manual
  • ReflectionZendExtension
  • Получение номера версии

ReflectionZendExtension::getVersion

(PHP >= 5.4.0)

ReflectionZendExtension::getVersion — Получение номера версии

Описание

public string ReflectionZendExtension::getVersion ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Преобразование в строку

  • « ReflectionZendExtension::getVersion
  • ReflectionExtension »
  • PHP Manual
  • ReflectionZendExtension
  • Преобразование в строку

ReflectionZendExtension::__toString

(PHP >= 5.4.0)

ReflectionZendExtension::__toString — Преобразование в строку

Описание

public string ReflectionZendExtension::__toString ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Класс ReflectionExtension

(PHP 5, PHP 7)

Введение

Класс ReflectionExtension сообщает информацию о модулях.

Обзор классов

ReflectionExtension implements Reflector {
/* Свойства */
public $name ;
/* Методы */
final private void __clone ( void )
public __construct ( string $name )
public static string export ( string $name [, string $return = false ] )
public array getClasses ( void )
public array getClassNames ( void )
public array getConstants ( void )
public array getDependencies ( void )
public array getFunctions ( void )
public array getINIEntries ( void )
public string getName ( void )
public string getVersion ( void )
public void info ( void )
public void isPersistent ( void )
public void isTemporary ( void )
public string __toString ( void )
}

Свойства

name

Имя модуля. Значение свойства совпадает с тем, что возвращает метод ReflectionExtension::getName()

Содержание

  • ReflectionExtension::__clone — Клонирует объект
  • ReflectionExtension::__construct — Создаёт объект класса ReflectionExtension
  • ReflectionExtension::export — Экспортирует модуль
  • ReflectionExtension::getClasses — Возвращает классы
  • ReflectionExtension::getClassNames — Получение имен классов
  • ReflectionExtension::getConstants — Получение констант
  • ReflectionExtension::getDependencies — Получение зависимостей
  • ReflectionExtension::getFunctions — Получение функций расширения
  • ReflectionExtension::getINIEntries — Получение ini-настроек расширения
  • ReflectionExtension::getName — Получение имени расширения
  • ReflectionExtension::getVersion — Получение версии расширения
  • ReflectionExtension::info — Вывод информации о расширении
  • ReflectionExtension::isPersistent — Определяет, является ли расширение постоянным
  • ReflectionExtension::isTemporary — Определяет, является ли расширение временным
  • ReflectionExtension::__toString — Преобразование в строку


Клонирует объект

  • « ReflectionExtension
  • ReflectionExtension::__construct »
  • PHP Manual
  • ReflectionExtension
  • Клонирует объект

ReflectionExtension::__clone

(PHP 5, PHP 7)

ReflectionExtension::__clone — Клонирует объект

Описание

final private void ReflectionExtension::__clone ( void )

clone-метод предотвращает клонирование объекта. Reflection-объекты не могут быть клонированы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Метод ничего не возвращает, в случае вызова возникает фатальная ошибка.

Смотрите также

  • ReflectionExtension::__construct() - Создаёт объект класса ReflectionExtension
  • Клонирование объектов


Создаёт объект класса ReflectionExtension

  • « ReflectionExtension::__clone
  • ReflectionExtension::export »
  • PHP Manual
  • ReflectionExtension
  • Создаёт объект класса ReflectionExtension

ReflectionExtension::__construct

(PHP 5, PHP 7)

ReflectionExtension::__construct — Создаёт объект класса ReflectionExtension

Описание

public ReflectionExtension::__construct ( string $name )

Создаёт объект (object) класса ReflectionExtension.

Список параметров

name

Имя модуля.

Возвращаемые значения

Объект (object) класса ReflectionExtension.

Примеры

Пример #1 Пример использования ReflectionExtension

<?php
$ext = new ReflectionExtension('Reflection');

printf('Модуль: %s (версия: %s)', $ext->getName(), $ext->getVersion());
?>

Результатом выполнения данного примера будет что-то подобное:

Модуль: Reflection (версия: $Revision: 335469 $)

Смотрите также

  • ReflectionExtension::info() - Вывод информации о расширении
  • Конструкторы


Экспортирует модуль

  • « ReflectionExtension::__construct
  • ReflectionExtension::getClasses »
  • PHP Manual
  • ReflectionExtension
  • Экспортирует модуль

ReflectionExtension::export

(PHP 5, PHP 7)

ReflectionExtension::export — Экспортирует модуль

Описание

public static string ReflectionExtension::export ( string $name [, string $return = false ] )

Экспортирует отражённый модуль. Формат вывода этой функции такой же как и при CLI-параметре --re [extension].

Список параметров

name

Экспортируемый объект Reflection.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Смотрите также

  • ReflectionExtension::info() - Вывод информации о расширении


Возвращает классы

  • « ReflectionExtension::export
  • ReflectionExtension::getClassNames »
  • PHP Manual
  • ReflectionExtension
  • Возвращает классы

ReflectionExtension::getClasses

(PHP 5, PHP 7)

ReflectionExtension::getClasses — Возвращает классы

Описание

public array ReflectionExtension::getClasses ( void )

Возвращает список классов модуля.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив объектов класса ReflectionClass, по одному на каждый класс модуля. Если не задано ни одного класса, то возвращается пустой массив.

Примеры

Пример #1 Пример использования ReflectionExtension::getClasses()

<?php
$ext = new ReflectionExtension('XMLWriter');
var_dump($ext->getClasses());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  ["XMLWriter"]=>
  &object(ReflectionClass)#2 (1) {
    ["name"]=>
    string(9) "XMLWriter"
  }
}

Смотрите также

  • ReflectionExtension::getClassNames() - Получение имен классов


Получение имен классов

  • « ReflectionExtension::getClasses
  • ReflectionExtension::getConstants »
  • PHP Manual
  • ReflectionExtension
  • Получение имен классов

ReflectionExtension::getClassNames

(PHP 5, PHP 7)

ReflectionExtension::getClassNames — Получение имен классов

Описание

public array ReflectionExtension::getClassNames ( void )

Получает список имен классов, как они определены в расширении.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив array имен классов, определенных в расширении. Если никаких классов не определено, будет возвращен пустой массив.

Примеры

Пример #1 Пример использования ReflectionExtension::getClassNames()

<?php
$ext = new ReflectionExtension('XMLWriter');
var_dump($ext->getClassNames());
?>

Результатом выполнения данного примера будет что-то подобное:

array(1) {
  [0]=>
  string(9) "XMLWriter"
}

Смотрите также

  • ReflectionExtension::getClasses() - Возвращает классы
  • ReflectionExtension::getName() - Получение имени расширения


Получение констант

  • « ReflectionExtension::getClassNames
  • ReflectionExtension::getDependencies »
  • PHP Manual
  • ReflectionExtension
  • Получение констант

ReflectionExtension::getConstants

(PHP 5, PHP 7)

ReflectionExtension::getConstants — Получение констант

Описание

public array ReflectionExtension::getConstants ( void )

Получает определенные в расширении константы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив с именами констант в качестве ключей.

Примеры

Пример #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, PHP 7)

ReflectionExtension::getDependencies — Получение зависимостей

Описание

public array ReflectionExtension::getDependencies ( void )

Получает список требуемых и конфликтующих зависимостей.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив array, ключами которого являются зависимости, а значениями следующие записи: Required, Optional или Conflicts.

Примеры

Пример #1 Пример использования ReflectionExtension::getDependencies()

<?php
$dom = new ReflectionExtension('dom');

print_r($dom->getDependencies());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [libxml] => Required
    [domxml] => Conflicts
)

Смотрите также

  • ReflectionClass::getVersion()


Получение функций расширения

  • « ReflectionExtension::getDependencies
  • ReflectionExtension::getINIEntries »
  • PHP Manual
  • ReflectionExtension
  • Получение функций расширения

ReflectionExtension::getFunctions

(PHP 5, PHP 7)

ReflectionExtension::getFunctions — Получение функций расширения

Описание

public array ReflectionExtension::getFunctions ( void )

Получает список определенных в расширении функций.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив объектов ReflectionFunction, в котором ключами являются названия определенных в расширении функций. Если функций в расширении не определено, будет возвращен пустой массив.

Примеры

Пример #1 Пример использования ReflectionExtension::getFunctions()

<?php
$dom = new ReflectionExtension('SimpleXML');

print_r($dom->getFunctions());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [simplexml_load_file] => ReflectionFunction Object
        (
            [name] => simplexml_load_file
        )

    [simplexml_load_string] => ReflectionFunction Object
        (
            [name] => simplexml_load_string
        )

    [simplexml_import_dom] => ReflectionFunction Object
        (
            [name] => simplexml_import_dom
        )

)

Смотрите также

  • ReflectionExtension::getClasses() - Возвращает классы
  • get_extension_funcs() - Возвращает массив имен функций модуля


Получение ini-настроек расширения

  • « ReflectionExtension::getFunctions
  • ReflectionExtension::getName »
  • PHP Manual
  • ReflectionExtension
  • Получение ini-настроек расширения

ReflectionExtension::getINIEntries

(PHP 5, PHP 7)

ReflectionExtension::getINIEntries — Получение ini-настроек расширения

Описание

public array ReflectionExtension::getINIEntries ( void )

Получает ini-настройки расширения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Ассоциативный массив array, в котором ключи - имена ini-настроек, а значения - соответствующие значения настроек.

Примеры

Пример #1 Пример использования ReflectionExtension::getINIEntries()

<?php
$ext = new ReflectionExtension('mysql');

print_r($ext->getINIEntries());
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [mysql.allow_persistent] => 1
    [mysql.max_persistent] => -1
    [mysql.max_links] => -1
    [mysql.default_host] =>
    [mysql.default_user] =>
    [mysql.default_password] =>
    [mysql.default_port] =>
    [mysql.default_socket] =>
    [mysql.connect_timeout] => 60
    [mysql.trace_mode] =>
    [mysql.allow_local_infile] => 1
    [mysql.cache_size] => 2000
)

Смотрите также

  • ini_get_all() - Получение всех настроек конфигурации
  • ReflectionExtension::getConstants() - Получение констант


Получение имени расширения

  • « ReflectionExtension::getINIEntries
  • ReflectionExtension::getVersion »
  • PHP Manual
  • ReflectionExtension
  • Получение имени расширения

ReflectionExtension::getName

(PHP 5, PHP 7)

ReflectionExtension::getName — Получение имени расширения

Описание

public string ReflectionExtension::getName ( void )

Получает имя расширения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя расширения.

Примеры

Пример #1 Пример использования ReflectionExtension::getName()

<?php
$ext = new ReflectionExtension('mysqli');
var_dump($ext->getName());
?>

Результатом выполнения данного примера будет что-то подобное:

string(6) "mysqli"

Смотрите также

  • ReflectionExtension::getClassNames() - Получение имен классов


Получение версии расширения

  • « ReflectionExtension::getName
  • ReflectionExtension::info »
  • PHP Manual
  • ReflectionExtension
  • Получение версии расширения

ReflectionExtension::getVersion

(PHP 5, PHP 7)

ReflectionExtension::getVersion — Получение версии расширения

Описание

public string ReflectionExtension::getVersion ( void )

Получает версию расширения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Версия расширения.

Примеры

Пример #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, PHP 7)

ReflectionExtension::info — Вывод информации о расширении

Описание

public void 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: 329123 $
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.4.0)

ReflectionExtension::isPersistent — Определяет, является ли расширение постоянным

Описание

public void ReflectionExtension::isPersistent ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE для расширений, загруженных посредствомextension, FALSE в противном случае.

Смотрите также

  • ReflectionExtension::isTemporary() - Определяет, является ли расширение временным


Определяет, является ли расширение временным

  • « ReflectionExtension::isPersistent
  • ReflectionExtension::__toString »
  • PHP Manual
  • ReflectionExtension
  • Определяет, является ли расширение временным

ReflectionExtension::isTemporary

(PHP >= 5.4.0)

ReflectionExtension::isTemporary — Определяет, является ли расширение временным

Описание

public void ReflectionExtension::isTemporary ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE для расширений, загруженных функцией dl(), FALSE в противном случае.

Смотрите также

  • ReflectionExtension::isPersistent() - Определяет, является ли расширение постоянным


Преобразование в строку

  • « ReflectionExtension::isTemporary
  • ReflectionFunction »
  • PHP Manual
  • ReflectionExtension
  • Преобразование в строку

ReflectionExtension::__toString

(PHP 5, PHP 7)

ReflectionExtension::__toString — Преобразование в строку

Описание

public string ReflectionExtension::__toString ( void )

Выполняет экспорт расширения и возвращает его в виде строки string. Это то же самое, что и вызов ReflectionExtension::export() с аргументом return равным TRUE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает экспортированное расширение в виде строки тем же образом, что и ReflectionExtension::export().

Смотрите также

  • ReflectionExtension::__construct() - Создаёт объект класса ReflectionExtension
  • ReflectionExtension::export() - Экспортирует модуль
  • __toString()


Класс ReflectionFunction

(PHP 5, PHP 7)

Введение

Класс ReflectionFunction сообщает информацию о функциях.

Обзор классов

ReflectionFunction extends ReflectionFunctionAbstract implements Reflector {
/* Константы */
const integer IS_DEPRECATED = 262144 ;
/* Свойства */
public $name ;
/* Методы */
public __construct ( mixed $name )
public static string export ( string $name [, string $return ] )
public Closure getClosure ( void )
public mixed invoke ([ mixed $parameter [, mixed $... ]] )
public mixed invokeArgs ( array $args )
public bool isDisabled ( void )
public string __toString ( void )
/* Наследуемые методы */
final private void ReflectionFunctionAbstract::__clone ( void )
public ReflectionClass ReflectionFunctionAbstract::getClosureScopeClass ( void )
public object ReflectionFunctionAbstract::getClosureThis ( void )
public string ReflectionFunctionAbstract::getDocComment ( void )
public int ReflectionFunctionAbstract::getEndLine ( void )
public ReflectionExtension ReflectionFunctionAbstract::getExtension ( void )
public string ReflectionFunctionAbstract::getExtensionName ( void )
public string ReflectionFunctionAbstract::getFileName ( void )
public string ReflectionFunctionAbstract::getName ( void )
public string ReflectionFunctionAbstract::getNamespaceName ( void )
public int ReflectionFunctionAbstract::getNumberOfParameters ( void )
public int ReflectionFunctionAbstract::getNumberOfRequiredParameters ( void )
public array ReflectionFunctionAbstract::getParameters ( void )
public ReflectionType ReflectionFunctionAbstract::getReturnType ( void )
public string ReflectionFunctionAbstract::getShortName ( void )
public int ReflectionFunctionAbstract::getStartLine ( void )
public array ReflectionFunctionAbstract::getStaticVariables ( void )
public bool ReflectionFunctionAbstract::hasReturnType ( void )
public bool ReflectionFunctionAbstract::inNamespace ( void )
public bool ReflectionFunctionAbstract::isClosure ( void )
public bool ReflectionFunctionAbstract::isDeprecated ( void )
public bool ReflectionFunctionAbstract::isGenerator ( void )
public bool ReflectionFunctionAbstract::isInternal ( void )
public bool ReflectionFunctionAbstract::isUserDefined ( void )
public bool ReflectionFunctionAbstract::isVariadic ( void )
public bool ReflectionFunctionAbstract::returnsReference ( void )
abstract public void ReflectionFunctionAbstract::__toString ( void )
}

Свойства

name

Имя функции. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Предопределенные константы

Модификаторы ReflectionFunction

ReflectionFunction::IS_DEPRECATED

Указывает на то, что функция устарела (deprecated).

Содержание

  • ReflectionFunction::__construct — Конструктор класса ReflectionFunction
  • ReflectionFunction::export — Экспорт функции
  • ReflectionFunction::getClosure — Возвращает динамически созданное замыкание для функции
  • ReflectionFunction::invoke — Вызывает функцию
  • ReflectionFunction::invokeArgs — Вызов функции с передачей аргументов
  • ReflectionFunction::isDisabled — Проверяет, что функция отключена
  • ReflectionFunction::__toString — Представление в виде строки


Конструктор класса ReflectionFunction

  • « ReflectionFunction
  • ReflectionFunction::export »
  • PHP Manual
  • ReflectionFunction
  • Конструктор класса ReflectionFunction

ReflectionFunction::__construct

(PHP 5, PHP 7)

ReflectionFunction::__construct — Конструктор класса ReflectionFunction

Описание

public ReflectionFunction::__construct ( mixed $name )

Создает объект класса ReflectionFunction.

Список параметров

name

Имя reflection-функции или замыкания.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Объект класса ReflectionException, если аргумент name не содержит допустимой функции.

Список изменений

Версия | Описание
5.3.0 | name теперь может быть замыканием.

Примеры

Пример #1 Пример использования ReflectionFunction::__construct()

<?php
/**
 * Простой счетчик
 *
 * @return    int
 */
function counter1()
{
    static $c = 0;
    return ++$c;
}

/**
 * Другой счетчик
 *
 * @return    int
 */
$counter2 = function()
{
    static $d = 0;
    return ++$d;

};

function dumpReflectionFunction($func)
{
    // Вывод основной информации
    printf(
        "\n\n===> %s функция '%s'\n".
        "     объявлена в %s\n".
        "     строки с %d по %d\n",
        $func->isInternal() ? 'internal' : 'user-defined',
        $func->getName(),
        $func->getFileName(),
        $func->getStartLine(),
        $func->getEndline()
    );

    // Печать документации
    printf("---> Документация:\n %s\n", var_export($func->getDocComment(), 1));

    // Вывод статических переменных
    if ($statics = $func->getStaticVariables())
    {
        printf("---> Статические переменные: %s\n", var_export($statics, 1));
    }
}

// Создание объекта класса ReflectionFunction
dumpReflectionFunction(new ReflectionFunction('counter1'));
dumpReflectionFunction(new ReflectionFunction($counter2));
?>

Результатом выполнения данного примера будет что-то подобное:

===> user-defined функция 'counter1'
     объявлена в Z:\reflectcounter.php
     строки с 7 по 11
---> Документация:
 '/**
 * Простой счетчик
 *
 * @return    int
 */'
---> Статические переменные: array (
  'c' => 0,
)

===> user-defined функция '{closure}'
     объявлена в Z:\reflectcounter.php
     строки с 18 по 23
---> Документация:
 '/**
 * Другой счетчик
 *
 * @return    int
 */'
---> Статические переменные: array (
  'd' => 0,
)

Смотрите также

  • ReflectionMethod::__construct() - Конструктор класса ReflectionMethod
  • Конструкторы


Экспорт функции

  • « ReflectionFunction::__construct
  • ReflectionFunction::getClosure »
  • PHP Manual
  • ReflectionFunction
  • Экспорт функции

ReflectionFunction::export

(PHP 5, PHP 7)

ReflectionFunction::export — Экспорт функции

Описание

public static string ReflectionFunction::export ( string $name [, string $return ] )

Экспортирует отображение функцию.

Список параметров

name

Экспортируемый объект Reflection.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Смотрите также

  • ReflectionFunction::invoke() - Вызывает функцию


Возвращает динамически созданное замыкание для функции

  • « ReflectionFunction::export
  • ReflectionFunction::invoke »
  • PHP Manual
  • ReflectionFunction
  • Возвращает динамически созданное замыкание для функции

ReflectionFunction::getClosure

(PHP >= 5.4.0)

ReflectionFunction::getClosure — Возвращает динамически созданное замыкание для функции

Описание

public Closure ReflectionFunction::getClosure ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает Closure. Возвращает NULL в случае ошибки.


Вызывает функцию

  • « ReflectionFunction::getClosure
  • ReflectionFunction::invokeArgs »
  • PHP Manual
  • ReflectionFunction
  • Вызывает функцию

ReflectionFunction::invoke

(PHP 5, PHP 7)

ReflectionFunction::invoke — Вызывает функцию

Описание

public mixed ReflectionFunction::invoke ([ mixed $parameter [, mixed $... ]] )

Вызывает отображенную функцию.

Список параметров

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::export() - Экспорт функции
  • __invoke()
  • call_user_func() - Вызывает пользовательскую функцию, указанную в первом параметре


Вызов функции с передачей аргументов

  • « ReflectionFunction::invoke
  • ReflectionFunction::isDisabled »
  • PHP Manual
  • ReflectionFunction
  • Вызов функции с передачей аргументов

ReflectionFunction::invokeArgs

(PHP 5 >= 5.1.0, PHP 7)

ReflectionFunction::invokeArgs — Вызов функции с передачей аргументов

Описание

public mixed ReflectionFunction::invokeArgs ( array $args )

Вызывает функцию и передает ей аргументы в виде массива.

Список параметров

args

Передаваемые функции аргументы в виде массива. Поведение функции схоже с call_user_func_array().

Возвращаемые значения

Возвращает результат выполнения вызванной функции.

Примеры

Пример #1 Пример использования ReflectionFunction::invokeArgs()

<?php
function title($title, $name)
{
    return sprintf("%s. %s\r\n", $title, $name);
}

$function = new ReflectionFunction('title');

echo $function->invokeArgs(array('Dr', 'Phil'));
?>

Результат выполнения данного примера:

Dr. Phil

Пример #2 Пример использования ReflectionFunction::invokeArgs() со ссылками на аргументы

<?php
function get_false_conditions(array $conditions, array &$false_conditions)
{
    foreach ($conditions as $condition) {
        if (!$condition) {
            $false_conditions[] = $condition;
        }
    }
}

$function_ref     = new ReflectionFunction('get_false_conditions');

$conditions       = array(true, false, -1, 0, 1);
$false_conditions = array();

$function_ref->invokeArgs(array($conditions, &$false_conditions));

var_dump($false_conditions);
?>

Результат выполнения данного примера:

array(2) {
  [0]=>
  bool(false)
  [1]=>
  int(0)
}

Примечания

Замечание:

Если функция имеет аргументы, которые должны быть ссылками, то они должны быть ссылками и в переданном спике аргументов.

Смотрите также

  • ReflectionFunction::invoke() - Вызывает функцию
  • ReflectionFunctionAbstract::getNumberOfParameters() - Получает количество аргументов
  • __invoke()
  • call_user_func_array() - Вызывает пользовательскую функцию с массивом параметров


Проверяет, что функция отключена

  • « ReflectionFunction::invokeArgs
  • ReflectionFunction::__toString »
  • PHP Manual
  • ReflectionFunction
  • Проверяет, что функция отключена

ReflectionFunction::isDisabled

(PHP 5, PHP 7)

ReflectionFunction::isDisabled — Проверяет, что функция отключена

Описание

public bool ReflectionFunction::isDisabled ( void )

Проверяет, отключена ли функция, с помощью директивы disable_functions.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция отключена, FALSE противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isUserDefined() - Проверяет, является ли функция определенной пользователем
  • Директива disable_functions


Представление в виде строки

  • « ReflectionFunction::isDisabled
  • ReflectionFunctionAbstract »
  • PHP Manual
  • ReflectionFunction
  • Представление в виде строки

ReflectionFunction::__toString

(PHP 5, PHP 7)

ReflectionFunction::__toString — Представление в виде строки

Описание

public string ReflectionFunction::__toString ( void )

Представление в виде строки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Результат выполнения схож с выводом ReflectionFunction::export().

Примеры

Пример #1 Пример использования ReflectionFunction::__toString()

<?php
function title($title, $name)
{
    return sprintf("%s. %s\r\n", $title, $name);
}

echo new ReflectionFunction('title');
?>

Результатом выполнения данного примера будет что-то подобное:

Function [ <user> function title ] {
  @@ Command line code 1 - 1

  - Parameters [2] {
    Parameter #0 [ <required> $title ]
    Parameter #1 [ <required> $name ]
  }
}

Смотрите также

  • ReflectionFunction::export() - Экспорт функции
  • ReflectionClass::clone()
  • __toString()


Класс ReflectionFunctionAbstract

(PHP 5, PHP 7)

Введение

Является родительским классом для ReflectionFunction, более подробную информацию смотрите в описании этого дочернего класса.

Обзор классов

ReflectionFunctionAbstract implements Reflector {
/* Свойства */
public $name ;
/* Методы */
final private void __clone ( void )
public ReflectionClass getClosureScopeClass ( void )
public object getClosureThis ( void )
public string getDocComment ( void )
public int getEndLine ( void )
public ReflectionExtension getExtension ( void )
public string getExtensionName ( void )
public string getFileName ( void )
public string getName ( void )
public string getNamespaceName ( void )
public int getNumberOfParameters ( void )
public int getNumberOfRequiredParameters ( void )
public array getParameters ( void )
public ReflectionType getReturnType ( void )
public string getShortName ( void )
public int getStartLine ( void )
public array getStaticVariables ( void )
public bool hasReturnType ( void )
public bool inNamespace ( void )
public bool isClosure ( void )
public bool isDeprecated ( void )
public bool isGenerator ( void )
public bool isInternal ( void )
public bool isUserDefined ( void )
public bool isVariadic ( void )
public bool returnsReference ( void )
abstract public void __toString ( void )
}

Свойства

name

Имя функции. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Содержание

  • ReflectionFunctionAbstract::__clone — Копирующий конструктор
  • ReflectionFunctionAbstract::getClosureScopeClass — Возвращает класс в рамках которого было объявлено замыкание
  • ReflectionFunctionAbstract::getClosureThis — Возвращает указатель this замыкания
  • ReflectionFunctionAbstract::getDocComment — Получает документируемый комментарий
  • ReflectionFunctionAbstract::getEndLine — Получает номер строки завершения описания функции
  • ReflectionFunctionAbstract::getExtension — Получает информацию о расширении
  • ReflectionFunctionAbstract::getExtensionName — Получение имени расширения
  • ReflectionFunctionAbstract::getFileName — Получает имя файла
  • ReflectionFunctionAbstract::getName — Получает имя функции
  • ReflectionFunctionAbstract::getNamespaceName — Получение имени пространства имен
  • ReflectionFunctionAbstract::getNumberOfParameters — Получает количество аргументов
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters — Получает количество обязательных аргументов
  • ReflectionFunctionAbstract::getParameters — Получает аргументы
  • ReflectionFunctionAbstract::getReturnType — Получает объявленный тип возвращаемого функцией значения
  • ReflectionFunctionAbstract::getShortName — Получает короткое имя функции
  • ReflectionFunctionAbstract::getStartLine — Получает начальный номер строки
  • ReflectionFunctionAbstract::getStaticVariables — Получает статические переменные
  • ReflectionFunctionAbstract::hasReturnType — Проверяет, иммет ли функция объявленный тип возвращаемого значения
  • ReflectionFunctionAbstract::inNamespace — Проверяет, находится ли функция в пространстве имен
  • ReflectionFunctionAbstract::isClosure — Проверяет, является ли функция замыканием (Closure)
  • ReflectionFunctionAbstract::isDeprecated — Проверяет, является ли функция устаревшей
  • ReflectionFunctionAbstract::isGenerator — Проверяет, является ли функция генератором
  • ReflectionFunctionAbstract::isInternal — Проверяет, является ли функция внутренней
  • ReflectionFunctionAbstract::isUserDefined — Проверяет, является ли функция определенной пользователем
  • ReflectionFunctionAbstract::isVariadic — Проверяет, является ли функция функцией с переменным числом аргументов
  • ReflectionFunctionAbstract::returnsReference — Проверяет, что функция возвращает ссылку
  • ReflectionFunctionAbstract::__toString — Преобразование в строку


Копирующий конструктор

  • « ReflectionFunctionAbstract
  • ReflectionFunctionAbstract::getClosureScopeClass »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Копирующий конструктор

ReflectionFunctionAbstract::__clone

(PHP 5, PHP 7)

ReflectionFunctionAbstract::__clone — Копирующий конструктор

Описание

final private void ReflectionFunctionAbstract::__clone ( void )

Копирует функцию.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Копирование объектов


Возвращает класс в рамках которого было объявлено замыкание

  • « ReflectionFunctionAbstract::__clone
  • ReflectionFunctionAbstract::getClosureThis »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Возвращает класс в рамках которого было объявлено замыкание

ReflectionFunctionAbstract::getClosureScopeClass

(PHP >= 5.4.0)

ReflectionFunctionAbstract::getClosureScopeClass — Возвращает класс в рамках которого было объявлено замыкание

Описание

public ReflectionClass ReflectionFunctionAbstract::getClosureScopeClass ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает класс в случае успеха или NULL в случае ошибки.


Возвращает указатель this замыкания

  • « ReflectionFunctionAbstract::getClosureScopeClass
  • ReflectionFunctionAbstract::getDocComment »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Возвращает указатель this замыкания

ReflectionFunctionAbstract::getClosureThis

(PHP >= 5.4.0)

ReflectionFunctionAbstract::getClosureThis — Возвращает указатель this замыкания

Описание

public object ReflectionFunctionAbstract::getClosureThis ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает указатель $this. Возвращает NULL в случае ошибки.


Получает документируемый комментарий

  • « ReflectionFunctionAbstract::getClosureThis
  • ReflectionFunctionAbstract::getEndLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает документируемый комментарий

ReflectionFunctionAbstract::getDocComment

(PHP 5 >= 5.1.0, PHP 7)

ReflectionFunctionAbstract::getDocComment — Получает документируемый комментарий

Описание

public string ReflectionFunctionAbstract::getDocComment ( void )

Получает документируемый комментарий из описания функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Комментарий, если он есть, FALSE в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::getStartLine() - Получает начальный номер строки


Получает номер строки завершения описания функции

  • « ReflectionFunctionAbstract::getDocComment
  • ReflectionFunctionAbstract::getExtension »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает номер строки завершения описания функции

ReflectionFunctionAbstract::getEndLine

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getEndLine — Получает номер строки завершения описания функции

Описание

public int ReflectionFunctionAbstract::getEndLine ( void )

Получает номер строки завершения описания функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Номер последней строки описания определенной пользователем функции либо FALSE, если он неизвестен.

Смотрите также

  • ReflectionFunctionAbstract::getStartLine() - Получает начальный номер строки


Получает информацию о расширении

  • « ReflectionFunctionAbstract::getEndLine
  • ReflectionFunctionAbstract::getExtensionName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает информацию о расширении

ReflectionFunctionAbstract::getExtension

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getExtension — Получает информацию о расширении

Описание

public ReflectionExtension ReflectionFunctionAbstract::getExtension ( void )

Получение информации о расширении, в состав которого входит функция.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Информация о расширении в виде объекта ReflectionExtension.

Смотрите также

  • ReflectionFunctionAbstract::getExtensionName() - Получение имени расширения


Получение имени расширения

  • « ReflectionFunctionAbstract::getExtension
  • ReflectionFunctionAbstract::getFileName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получение имени расширения

ReflectionFunctionAbstract::getExtensionName

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getExtensionName — Получение имени расширения

Описание

public string ReflectionFunctionAbstract::getExtensionName ( void )

Получение имени расширения.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя расширения.

Смотрите также

  • ReflectionFunctionAbstract::getExtension() - Получает информацию о расширении


Получает имя файла

  • « ReflectionFunctionAbstract::getExtensionName
  • ReflectionFunctionAbstract::getName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает имя файла

ReflectionFunctionAbstract::getFileName

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getFileName — Получает имя файла

Описание

public string ReflectionFunctionAbstract::getFileName ( void )

Получает имя файла из определенной пользователем функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя файла.

Смотрите также

  • ReflectionFunctionAbstract::getNamespaceName() - Получение имени пространства имен


Получает имя функции

  • « ReflectionFunctionAbstract::getFileName
  • ReflectionFunctionAbstract::getNamespaceName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает имя функции

ReflectionFunctionAbstract::getName

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getName — Получает имя функции

Описание

public string ReflectionFunctionAbstract::getName ( void )

Получение имени функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя функции.

Смотрите также

  • ReflectionFunctionAbstract::getExtensionName() - Получение имени расширения
  • ReflectionFunctionAbstract::isUserDefined() - Проверяет, является ли функция определенной пользователем


Получение имени пространства имен

  • « ReflectionFunctionAbstract::getName
  • ReflectionFunctionAbstract::getNumberOfParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получение имени пространства имен

ReflectionFunctionAbstract::getNamespaceName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getNamespaceName — Получение имени пространства имен

Описание

public string ReflectionFunctionAbstract::getNamespaceName ( void )

Получение имени пространства имен, в котором определен класс.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя пространства имен.

Смотрите также

  • ReflectionFunctionAbstract::getFileName() - Получает имя файла
  • пространства имен


Получает количество аргументов

  • « ReflectionFunctionAbstract::getNamespaceName
  • ReflectionFunctionAbstract::getNumberOfRequiredParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает количество аргументов

ReflectionFunctionAbstract::getNumberOfParameters

(PHP 5 >= 5.0.3, PHP 7)

ReflectionFunctionAbstract::getNumberOfParameters — Получает количество аргументов

Описание

public int ReflectionFunctionAbstract::getNumberOfParameters ( void )

Получение количества аргументов в определении функции как обязательных, так и опциональных.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число аргументов.

Смотрите также

  • ReflectionFunctionAbstract::getNumberOfRequiredParameters() - Получает количество обязательных аргументов
  • func_num_args() - Возвращает количество аргументов, переданных функции


Получает количество обязательных аргументов

  • « ReflectionFunctionAbstract::getNumberOfParameters
  • ReflectionFunctionAbstract::getParameters »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает количество обязательных аргументов

ReflectionFunctionAbstract::getNumberOfRequiredParameters

(PHP 5 >= 5.0.3, PHP 7)

ReflectionFunctionAbstract::getNumberOfRequiredParameters — Получает количество обязательных аргументов

Описание

public int ReflectionFunctionAbstract::getNumberOfRequiredParameters ( void )

Получение числа обязательных аргументов в определении функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Число обязательных аргументов.

Смотрите также

  • ReflectionFunctionAbstract::getNumberOfParameters() - Получает количество аргументов


Получает аргументы

  • « ReflectionFunctionAbstract::getNumberOfRequiredParameters
  • ReflectionFunctionAbstract::getReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает аргументы

ReflectionFunctionAbstract::getParameters

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getParameters — Получает аргументы

Описание

public array ReflectionFunctionAbstract::getParameters ( void )

Получение аргументов в виде массива объектов ReflectionParameter.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Аргументы, представленные объектами ReflectionParameter.

Смотрите также

  • ReflectionFunctionAbstract::getNumberOfParameters() - Получает количество аргументов
  • func_get_args() - Возвращает массив, содержащий аргументы функции


Получает объявленный тип возвращаемого функцией значения

  • « ReflectionFunctionAbstract::getParameters
  • ReflectionFunctionAbstract::getShortName »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает объявленный тип возвращаемого функцией значения

ReflectionFunctionAbstract::getReturnType

(PHP 7)

ReflectionFunctionAbstract::getReturnType — Получает объявленный тип возвращаемого функцией значения

Описание

public ReflectionType ReflectionFunctionAbstract::getReturnType ( void )

Получает объявленный тип возвращаемого функцией значения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект класса ReflectionType если у функции объявлен тип возвращаемого значения, NULL в противном случае.

Примеры

Пример #1 Пример ReflectionFunctionAbstract::getReturnType()

<?php

function to_int($param) : int {
    return (int) $param;
}

$reflection1 = new ReflectionFunction('to_int');
echo $reflection1->getReturnType();

Результат выполнения данного примера:

int

Пример #2 Применение к встроенным функциям

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->getReturnType());

Результат выполнения данного примера:

null

Это происходит из-за того, что многие внутренние функции не имеют объявленных типов для аргументов или возвращаемого значения. Поэтому лучше избегать использование данного метода на встроенных функциях.

Смотрите также

  • ReflectionFunctionAbstract::hasReturnType() - Проверяет, иммет ли функция объявленный тип возвращаемого значения
  • ReflectionType::__toString() - Преобразование в строку


Получает короткое имя функции

  • « ReflectionFunctionAbstract::getReturnType
  • ReflectionFunctionAbstract::getStartLine »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает короткое имя функции

ReflectionFunctionAbstract::getShortName

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::getShortName — Получает короткое имя функции

Описание

public string ReflectionFunctionAbstract::getShortName ( void )

Получение короткого имени функции (без указания пространства имен).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Короткое имя функции.

Смотрите также

  • ReflectionFunctionAbstract::getNamespaceName() - Получение имени пространства имен
  • пространства имен


Получает начальный номер строки

  • « ReflectionFunctionAbstract::getShortName
  • ReflectionFunctionAbstract::getStaticVariables »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает начальный номер строки

ReflectionFunctionAbstract::getStartLine

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getStartLine — Получает начальный номер строки

Описание

public int ReflectionFunctionAbstract::getStartLine ( void )

Получение номера строки начала описания функции.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Стартовый номер строки.

Смотрите также

  • ReflectionFunctionAbstract::getEndLine() - Получает номер строки завершения описания функции


Получает статические переменные

  • « ReflectionFunctionAbstract::getStartLine
  • ReflectionFunctionAbstract::hasReturnType »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Получает статические переменные

ReflectionFunctionAbstract::getStaticVariables

(PHP 5, PHP 7)

ReflectionFunctionAbstract::getStaticVariables — Получает статические переменные

Описание

public array ReflectionFunctionAbstract::getStaticVariables ( void )

Получение статических переменных.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив array статических переменных.

Смотрите также

  • ReflectionFunctionAbstract::getParameters() - Получает аргументы


Проверяет, иммет ли функция объявленный тип возвращаемого значения

  • « ReflectionFunctionAbstract::getStaticVariables
  • ReflectionFunctionAbstract::inNamespace »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, иммет ли функция объявленный тип возвращаемого значения

ReflectionFunctionAbstract::hasReturnType

(PHP 7)

ReflectionFunctionAbstract::hasReturnType — Проверяет, иммет ли функция объявленный тип возвращаемого значения

Описание

public bool ReflectionFunctionAbstract::hasReturnType ( void )

Проверяет, иммет ли функция объявленный тип возвращаемого значения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если функция имеет объявленный тип возвращаемого значения, FALSE в противном случае.

Примеры

Пример #1 Пример ReflectionFunctionAbstract::hasReturnType()

<?php

function to_int($param) : int {
    return (int) $param;
}

$reflection1 = new ReflectionFunction('to_int');
var_dump($reflection1->hasReturnType());

Результат выполнения данного примера:

bool(true)

Пример #2 Применение к встроенным функциям

<?php

$reflection2 = new ReflectionFunction('array_merge');

var_dump($reflection2->hasReturnType());

Результат выполнения данного примера:

bool(false)

Это происходит из-за того, что многие внутренние функции не имеют объявленных типов для аргументов или возвращаемого значения. Поэтому лучше избегать использование данного метода на внутренних функциях.

Смотрите также

  • ReflectionFunctionAbstract::getReturnType() - Получает объявленный тип возвращаемого функцией значения


Проверяет, находится ли функция в пространстве имен

  • « ReflectionFunctionAbstract::hasReturnType
  • ReflectionFunctionAbstract::isClosure »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, находится ли функция в пространстве имен

ReflectionFunctionAbstract::inNamespace

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::inNamespace — Проверяет, находится ли функция в пространстве имен

Описание

public bool ReflectionFunctionAbstract::inNamespace ( void )

Проверяет, что функция определена в пространстве имен.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция определена в пространстве имен, FALSE в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::getNamespaceName() - Получение имени пространства имен
  • пространства имен


Проверяет, является ли функция замыканием (Closure)

  • « ReflectionFunctionAbstract::inNamespace
  • ReflectionFunctionAbstract::isDeprecated »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция замыканием (Closure)

ReflectionFunctionAbstract::isClosure

(PHP 5 >= 5.3.0, PHP 7)

ReflectionFunctionAbstract::isClosure — Проверяет, является ли функция замыканием (Closure)

Описание

public bool ReflectionFunctionAbstract::isClosure ( void )

Проверка, является ли функция замыканием.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает 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, PHP 7)

ReflectionFunctionAbstract::isDeprecated — Проверяет, является ли функция устаревшей

Описание

public bool ReflectionFunctionAbstract::isDeprecated ( void )

Проверяет, является ли функция устаревшей.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция устарела, FALSE в противном случае.

Примеры

Пример #1 Пример использования ReflectionFunctionAbstract::isDeprecated()

<?php
$rf = new ReflectionFunction('ereg');
var_dump($rf->isDeprecated());
?>

Результат выполнения данного примера:

bool(true)

Смотрите также

  • ReflectionFunctionAbstract::getDocComment() - Получает документируемый комментарий


Проверяет, является ли функция генератором

  • « ReflectionFunctionAbstract::isDeprecated
  • ReflectionFunctionAbstract::isInternal »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция генератором

ReflectionFunctionAbstract::isGenerator

(PHP 5 >= 5.5.0, PHP 7)

ReflectionFunctionAbstract::isGenerator — Проверяет, является ли функция генератором

Описание

public bool ReflectionFunctionAbstract::isGenerator ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возврашает TRUE, если функция является генератором, в противном случае FALSE или NULL, в случае ошибки.


Проверяет, является ли функция внутренней

  • « ReflectionFunctionAbstract::isGenerator
  • ReflectionFunctionAbstract::isUserDefined »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция внутренней

ReflectionFunctionAbstract::isInternal

(PHP 5, PHP 7)

ReflectionFunctionAbstract::isInternal — Проверяет, является ли функция внутренней

Описание

public bool ReflectionFunctionAbstract::isInternal ( void )

Проверяет, является ли функция внутренней, то есть не определенной пользователем.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция внутренняя, FALSE в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isUserDefined() - Проверяет, является ли функция определенной пользователем


Проверяет, является ли функция определенной пользователем

  • « ReflectionFunctionAbstract::isInternal
  • ReflectionFunctionAbstract::isVariadic »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция определенной пользователем

ReflectionFunctionAbstract::isUserDefined

(PHP 5, PHP 7)

ReflectionFunctionAbstract::isUserDefined — Проверяет, является ли функция определенной пользователем

Описание

public bool ReflectionFunctionAbstract::isUserDefined ( void )

Проверяет, является ли функция определенной пользователем, то есть это не внутренняя функция.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция определена пользователем, false; в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isInternal() - Проверяет, является ли функция внутренней


Проверяет, является ли функция функцией с переменным числом аргументов

  • « ReflectionFunctionAbstract::isUserDefined
  • ReflectionFunctionAbstract::returnsReference »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, является ли функция функцией с переменным числом аргументов

ReflectionFunctionAbstract::isVariadic

(PHP 5 >= 5.6.0, PHP 7)

ReflectionFunctionAbstract::isVariadic — Проверяет, является ли функция функцией с переменным числом аргументов

Описание

public bool ReflectionFunctionAbstract::isVariadic ( void )

Проверяет, является ли функция функцией с переменным числом аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возврашает TRUE, если функция с переменным числом аргументов, и FALSE в противном случае.


Проверяет, что функция возвращает ссылку

  • « ReflectionFunctionAbstract::isVariadic
  • ReflectionFunctionAbstract::__toString »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Проверяет, что функция возвращает ссылку

ReflectionFunctionAbstract::returnsReference

(PHP 5, PHP 7)

ReflectionFunctionAbstract::returnsReference — Проверяет, что функция возвращает ссылку

Описание

public bool ReflectionFunctionAbstract::returnsReference ( void )

Проверяет, что функция возвращает ссылку.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если функция возвращает ссылку, FALSE в противном случае.

Смотрите также

  • ReflectionFunctionAbstract::isClosure() - Проверяет, является ли функция замыканием (Closure)


Преобразование в строку

  • « ReflectionFunctionAbstract::returnsReference
  • ReflectionMethod »
  • PHP Manual
  • ReflectionFunctionAbstract
  • Преобразование в строку

ReflectionFunctionAbstract::__toString

(PHP 5, PHP 7)

ReflectionFunctionAbstract::__toString — Преобразование в строку

Описание

abstract public void ReflectionFunctionAbstract::__toString ( void )

Представление в виде строки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строка.

Смотрите также

  • ReflectionClass::clone()
  • __toString()


Класс ReflectionMethod

(PHP 5, PHP 7)

Введение

Класс ReflectionMethod сообщает информацию о методах.

Обзор классов

ReflectionMethod extends ReflectionFunctionAbstract implements Reflector {
/* Константы */
const integer IS_STATIC = 1 ;
const integer IS_PUBLIC = 256 ;
const integer IS_PROTECTED = 512 ;
const integer IS_PRIVATE = 1024 ;
const integer IS_ABSTRACT = 2 ;
const integer IS_FINAL = 4 ;
/* Свойства */
public $name ;
public $class ;
/* Методы */
public __construct ( mixed $class , string $name )
public static string export ( string $class , string $name [, bool $return = false ] )
public Closure getClosure ( object $object )
public ReflectionClass getDeclaringClass ( void )
public int getModifiers ( void )
public ReflectionMethod getPrototype ( void )
public mixed invoke ( object $object [, mixed $parameter [, mixed $... ]] )
public mixed invokeArgs ( object $object , array $args )
public bool isAbstract ( void )
public bool isConstructor ( void )
public bool isDestructor ( void )
public bool isFinal ( void )
public bool isPrivate ( void )
public bool isProtected ( void )
public bool isPublic ( void )
public bool isStatic ( void )
public void setAccessible ( bool $accessible )
public string __toString ( void )
/* Наследуемые методы */
final private void ReflectionFunctionAbstract::__clone ( void )
public ReflectionClass ReflectionFunctionAbstract::getClosureScopeClass ( void )
public object ReflectionFunctionAbstract::getClosureThis ( void )
public string ReflectionFunctionAbstract::getDocComment ( void )
public int ReflectionFunctionAbstract::getEndLine ( void )
public ReflectionExtension ReflectionFunctionAbstract::getExtension ( void )
public string ReflectionFunctionAbstract::getExtensionName ( void )
public string ReflectionFunctionAbstract::getFileName ( void )
public string ReflectionFunctionAbstract::getName ( void )
public string ReflectionFunctionAbstract::getNamespaceName ( void )
public int ReflectionFunctionAbstract::getNumberOfParameters ( void )
public int ReflectionFunctionAbstract::getNumberOfRequiredParameters ( void )
public array ReflectionFunctionAbstract::getParameters ( void )
public ReflectionType ReflectionFunctionAbstract::getReturnType ( void )
public string ReflectionFunctionAbstract::getShortName ( void )
public int ReflectionFunctionAbstract::getStartLine ( void )
public array ReflectionFunctionAbstract::getStaticVariables ( void )
public bool ReflectionFunctionAbstract::hasReturnType ( void )
public bool ReflectionFunctionAbstract::inNamespace ( void )
public bool ReflectionFunctionAbstract::isClosure ( void )
public bool ReflectionFunctionAbstract::isDeprecated ( void )
public bool ReflectionFunctionAbstract::isGenerator ( void )
public bool ReflectionFunctionAbstract::isInternal ( void )
public bool ReflectionFunctionAbstract::isUserDefined ( void )
public bool ReflectionFunctionAbstract::isVariadic ( void )
public bool ReflectionFunctionAbstract::returnsReference ( void )
abstract public void ReflectionFunctionAbstract::__toString ( void )
}

Свойства

name

Имя метода

class

Имя класса

Предопределенные константы

Модификаторы ReflectionMethod

ReflectionMethod::IS_STATIC

Указывает на то, что это статический метод.

ReflectionMethod::IS_PUBLIC

Указывает на то, что это публичный метод.

ReflectionMethod::IS_PROTECTED

Указывает на то, что это защищённый метод.

ReflectionMethod::IS_PRIVATE

Указывает на то, что это приватный метод.

ReflectionMethod::IS_ABSTRACT

Указывает на то, что это абстрактный метод.

ReflectionMethod::IS_FINAL

Указывает на то, что это финализированный метод.

Содержание

  • ReflectionMethod::__construct — Конструктор класса ReflectionMethod
  • ReflectionMethod::export — Экспорт отраженного метода
  • ReflectionMethod::getClosure — Возвращает динамически созданное замыкание для метода
  • ReflectionMethod::getDeclaringClass — Получает класс, объявляющий отображенный метод
  • ReflectionMethod::getModifiers — Получает модификаторы метода
  • ReflectionMethod::getPrototype — Получает прототип метода (если такой есть)
  • ReflectionMethod::invoke — Вызов
  • ReflectionMethod::invokeArgs — Вызов метода с передачей аргументов массивом
  • ReflectionMethod::isAbstract — Проверяет, является ли метод абстрактным
  • ReflectionMethod::isConstructor — Проверяет, является ли метод конструктором
  • ReflectionMethod::isDestructor — Проверяет, является ли метод деструктором
  • ReflectionMethod::isFinal — Проверяет, может ли метод иметь наследников (final)
  • ReflectionMethod::isPrivate — Проверяет, является ли метод частным (private)
  • ReflectionMethod::isProtected — Проверяет, является ли метод защищенным (protected)
  • ReflectionMethod::isPublic — Проверяет, является ли метод общедоступным (public)
  • ReflectionMethod::isStatic — Проверяет, является ли метод статическим
  • ReflectionMethod::setAccessible — Делает метод доступным
  • ReflectionMethod::__toString — Возвращает строковое представление объекта Reflection method


Конструктор класса ReflectionMethod

  • « ReflectionMethod
  • ReflectionMethod::export »
  • PHP Manual
  • ReflectionMethod
  • Конструктор класса ReflectionMethod

ReflectionMethod::__construct

(PHP 5, PHP 7)

ReflectionMethod::__construct — Конструктор класса ReflectionMethod

Описание

public ReflectionMethod::__construct ( mixed $class , string $name )
public ReflectionMethod::__construct ( string $class_method )

Создает новый объект класса ReflectionMethod.

Список параметров

class

Имя класса или объект (экземпляр класса), содержащего метод.

name

Имя метода.

class_method

Имена класса и метода, разделенные ::.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Исключение ReflectionException вызывается, если заданный метод не существует.

Примеры

Пример #1 Пример использования ReflectionMethod::__construct()

<?php
class Counter
{
    private static $c = 0;

    /**
     * Счетчик
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */
    final public static function increment()
    {
        return ++self::$c;
    }
}

// Создание экземпляра класса ReflectionMethod
$method = new ReflectionMethod('Counter', 'increment');

// Вывод основной информации
printf(
    "===> %s%s%s%s%s%s%s метод '%s' (%s)\n" .
    "     объявлен в %s\n" .
    "     строки с %d по %d\n" .
    "     имеет модификаторы %d[%s]\n",
        $method->isInternal() ? 'внутренний' : 'определенный пользователем',
        $method->isAbstract() ? ' abstract' : '',
        $method->isFinal() ? ' final' : '',
        $method->isPublic() ? ' public' : '',
        $method->isPrivate() ? ' private' : '',
        $method->isProtected() ? ' protected' : '',
        $method->isStatic() ? ' static' : '',
        $method->getName(),
        $method->isConstructor() ? 'конструктор' : 'обычный метод',
        $method->getFileName(),
        $method->getStartLine(),
        $method->getEndline(),
        $method->getModifiers(),
        implode(' ', Reflection::getModifierNames($method->getModifiers()))
);

// Вывод документируемого комментария
printf("---> Комментарий:\n %s\n", var_export($method->getDocComment(), 1));

// Вывод статических переменных, если есть
if ($statics= $method->getStaticVariables()) {
    printf("---> Статические переменные: %s\n", var_export($statics, 1));
}

// Вызов метода
printf("---> Результат вызова метода: ");
var_dump($method->invoke(NULL));
?>

Результатом выполнения данного примера будет что-то подобное:

===> определенный пользователем final public static метод 'increment' (обычный метод)
     объявлен в /Users/philip/cvs/phpdoc/test.php
     строки с 14 по 17
     имеет модификаторы 261[final public static]
---> Комментарий:
 '/**
     * Счетчик
     *
     * @final
     * @static
     * @access  public
     * @return  int
     */'
---> Результат вызова метода: int(1)

Смотрите также

  • ReflectionMethod::export() - Экспорт отраженного метода
  • Конструкторы


Экспорт отраженного метода

  • « ReflectionMethod::__construct
  • ReflectionMethod::getClosure »
  • PHP Manual
  • ReflectionMethod
  • Экспорт отраженного метода

ReflectionMethod::export

(PHP 5, PHP 7)

ReflectionMethod::export — Экспорт отраженного метода

Описание

public static string ReflectionMethod::export ( string $class , string $name [, bool $return = false ] )

Экспортирует ReflectionMethod.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

class

Имя класса.

name

Имя метода.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Смотрите также

  • ReflectionMethod::__construct() - Конструктор класса ReflectionMethod
  • ReflectionMethod::__toString() - Возвращает строковое представление объекта Reflection method


Возвращает динамически созданное замыкание для метода

  • « ReflectionMethod::export
  • ReflectionMethod::getDeclaringClass »
  • PHP Manual
  • ReflectionMethod
  • Возвращает динамически созданное замыкание для метода

ReflectionMethod::getClosure

(PHP >= 5.4.0)

ReflectionMethod::getClosure — Возвращает динамически созданное замыкание для метода

Описание

public Closure ReflectionMethod::getClosure ( object $object )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

object

Запрещен для статических методов, обязателен для остальных.

Возвращаемые значения

Возвращает замыкание Closure. Возвращает NULL в случае ошибки.


Получает класс, объявляющий отображенный метод

  • « ReflectionMethod::getClosure
  • ReflectionMethod::getModifiers »
  • PHP Manual
  • ReflectionMethod
  • Получает класс, объявляющий отображенный метод

ReflectionMethod::getDeclaringClass

(PHP 5, PHP 7)

ReflectionMethod::getDeclaringClass — Получает класс, объявляющий отображенный метод

Описание

public ReflectionClass ReflectionMethod::getDeclaringClass ( void )

Получает класс, объявляющий отображенный метод.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект ReflectionClass класса, частью которого является отображенный метод.

Примеры

Пример #1 Пример использования ReflectionMethod::getDeclaringClass()

<?php
class HelloWorld {

    protected function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod(new HelloWorld(), 'sayHelloTo');
var_dump($reflectionMethod->getDeclaringClass());
?>

Результат выполнения данного примера:

object(ReflectionClass)#2 (1) {
  ["name"]=>
  string(10) "HelloWorld"
}

Смотрите также

  • ReflectionMethod::isAbstract() - Проверяет, является ли метод абстрактным


Получает модификаторы метода

  • « ReflectionMethod::getDeclaringClass
  • ReflectionMethod::getPrototype »
  • PHP Manual
  • ReflectionMethod
  • Получает модификаторы метода

ReflectionMethod::getModifiers

(PHP 5, PHP 7)

ReflectionMethod::getModifiers — Получает модификаторы метода

Описание

public int ReflectionMethod::getModifiers ( void )

Возвращает битовое поле модификаторов доступа для метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовое представление модификаторов. Модификаторы перечислены ниже. Описания и значения этих модификаторов приведены в списке предопределенных констант.

Примеры

Пример #1 Пример использования ReflectionMethod::getModifiers()

<?php
class Testing
{
    final public static function foo()
    {
        return;
    }
    public function bar()
    {
        return;
    }
}

$foo = new ReflectionMethod('Testing', 'foo');

echo "Модификаторы метода foo():\n";
echo $foo->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($foo->getModifiers())) . "\n";

$bar = new ReflectionMethod('Testing', 'bar');

echo "Модификаторы метода bar():\n";
echo $bar->getModifiers() . "\n";
echo implode(' ', Reflection::getModifierNames($bar->getModifiers()));
?>

Результатом выполнения данного примера будет что-то подобное:

Модификаторы метода foo():
261
final public static
Модификаторы метода bar():
65792
public

Смотрите также

  • Reflection::getModifierNames() - Получение имен модификаторов


Получает прототип метода (если такой есть)

  • « ReflectionMethod::getModifiers
  • ReflectionMethod::invoke »
  • PHP Manual
  • ReflectionMethod
  • Получает прототип метода (если такой есть)

ReflectionMethod::getPrototype

(PHP 5, PHP 7)

ReflectionMethod::getPrototype — Получает прототип метода (если такой есть)

Описание

public ReflectionMethod ReflectionMethod::getPrototype ( void )

Получает прототип метода.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект ReflectionMethod прототипа метода.

Ошибки

Исключение ReflectionException вызывается, если у метода нет прототипа.

Примеры

Пример #1 Пример использования ReflectionMethod::getPrototype()

<?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->getPrototype());
?>

Результат выполнения данного примера:

object(ReflectionMethod)#2 (2) {
  ["name"]=>
  string(10) "sayHelloTo"
  ["class"]=>
  string(5) "Hello"
}

Смотрите также

  • ReflectionMethod::getModifiers() - Получает модификаторы метода


Вызов

  • « ReflectionMethod::getPrototype
  • ReflectionMethod::invokeArgs »
  • PHP Manual
  • ReflectionMethod
  • Вызов

ReflectionMethod::invoke

(PHP 5, PHP 7)

ReflectionMethod::invoke — Вызов

Описание

public mixed ReflectionMethod::invoke ( object $object [, mixed $parameter [, mixed $... ]] )

Вызывает отображенный метод.

Список параметров

object

Объект, метод которого требуется вызвать. Для статических методов передается null.

parameter

Ноль или более аргументов, передаваемых методу. Допускается передавать переменное число аргументов.

Возвращаемые значения

Возвращает результат выполнения метода.

Ошибки

Вызывает исключение ReflectionException, если в объекте object нет определения метода.

Вызывает исключение ReflectionException, если вызвать метод на исполнение не удалось.

Примеры

Пример #1 Пример использования ReflectionMethod::invoke()

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invoke(new HelloWorld(), 'Mike');
?>

Результат выполнения данного примера:

Hello Mike

Примечания

Замечание:

Если функция имеет аргументы, которые должны быть ссылками, то они должны быть ссылками и в переданном спике аргументов.

Смотрите также

  • ReflectionMethod::invokeArgs() - Вызов метода с передачей аргументов массивом
  • __invoke()
  • call_user_func() - Вызывает пользовательскую функцию, указанную в первом параметре


Вызов метода с передачей аргументов массивом

  • « ReflectionMethod::invoke
  • ReflectionMethod::isAbstract »
  • PHP Manual
  • ReflectionMethod
  • Вызов метода с передачей аргументов массивом

ReflectionMethod::invokeArgs

(PHP 5 >= 5.1.0, PHP 7)

ReflectionMethod::invokeArgs — Вызов метода с передачей аргументов массивом

Описание

public mixed ReflectionMethod::invokeArgs ( object $object , array $args )

Вызывает отображенный метод и передает ему аргументы в виде массива.

Список параметров

object

Объект, метод которого вызывается. Если метод статический, можно передать null.

args

Массив array, содержащий аргументы функции.

Возвращаемые значения

Возвращает результат выполнения метода.

Ошибки

Вызывает исключение ReflectionException, если в объекте object нет определения этого метода.

Вызывает исключение ReflectionException, если вызвать метод на исполнение не удалось.

Примеры

Пример #1 Пример использования ReflectionMethod::invokeArgs()

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invokeArgs(new HelloWorld(), array('Mike'));
?>

Результат выполнения данного примера:

Hello Mike

Примечания

Замечание:

Если функция имеет аргументы, которые должны быть ссылками, то они должны быть ссылками и в переданном спике аргументов.

Смотрите также

  • ReflectionMethod::invoke() - Вызов
  • __invoke()
  • call_user_func_array() - Вызывает пользовательскую функцию с массивом параметров


Проверяет, является ли метод абстрактным

  • « ReflectionMethod::invokeArgs
  • ReflectionMethod::isConstructor »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод абстрактным

ReflectionMethod::isAbstract

(PHP 5, PHP 7)

ReflectionMethod::isAbstract — Проверяет, является ли метод абстрактным

Описание

public bool ReflectionMethod::isAbstract ( void )

Проверяет, является ли метод абстрактным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод абстрактный, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::getDeclaringClass() - Получает класс, объявляющий отображенный метод


Проверяет, является ли метод конструктором

  • « ReflectionMethod::isAbstract
  • ReflectionMethod::isDestructor »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод конструктором

ReflectionMethod::isConstructor

(PHP 5, PHP 7)

ReflectionMethod::isConstructor — Проверяет, является ли метод конструктором

Описание

public bool ReflectionMethod::isConstructor ( void )

Проверяет, является ли метод конструктором.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод является конструктором, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::__construct() - Конструктор класса ReflectionMethod
  • ReflectionMethod::isAbstract() - Проверяет, является ли метод абстрактным
  • ReflectionMethod::isDestructor() - Проверяет, является ли метод деструктором


Проверяет, является ли метод деструктором

  • « ReflectionMethod::isConstructor
  • ReflectionMethod::isFinal »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод деструктором

ReflectionMethod::isDestructor

(PHP 5, PHP 7)

ReflectionMethod::isDestructor — Проверяет, является ли метод деструктором

Описание

public bool ReflectionMethod::isDestructor ( void )

Проверяет, является ли метод деструктором.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод является деструктором, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isConstructor() - Проверяет, является ли метод конструктором


Проверяет, может ли метод иметь наследников (final)

  • « ReflectionMethod::isDestructor
  • ReflectionMethod::isPrivate »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, может ли метод иметь наследников (final)

ReflectionMethod::isFinal

(PHP 5, PHP 7)

ReflectionMethod::isFinal — Проверяет, может ли метод иметь наследников (final)

Описание

public bool ReflectionMethod::isFinal ( void )

Проверяет, может ли метод иметь потомков (final).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если создать наследника метода нельзя, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isStatic() - Проверяет, является ли метод статическим


Проверяет, является ли метод частным (private)

  • « ReflectionMethod::isFinal
  • ReflectionMethod::isProtected »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод частным (private)

ReflectionMethod::isPrivate

(PHP 5, PHP 7)

ReflectionMethod::isPrivate — Проверяет, является ли метод частным (private)

Описание

public bool ReflectionMethod::isPrivate ( void )

Проверяет, является ли метод частным (private).

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод частный (private), FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isPublic() - Проверяет, является ли метод общедоступным (public)


Проверяет, является ли метод защищенным (protected)

  • « ReflectionMethod::isPrivate
  • ReflectionMethod::isPublic »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод защищенным (protected)

ReflectionMethod::isProtected

(PHP 5, PHP 7)

ReflectionMethod::isProtected — Проверяет, является ли метод защищенным (protected)

Описание

public bool ReflectionMethod::isProtected ( void )

Проверяет, является ли метод защищенным (protected).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод защищенный (protected), FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isPrivate() - Проверяет, является ли метод частным (private)


Проверяет, является ли метод общедоступным (public)

  • « ReflectionMethod::isProtected
  • ReflectionMethod::isStatic »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод общедоступным (public)

ReflectionMethod::isPublic

(PHP 5, PHP 7)

ReflectionMethod::isPublic — Проверяет, является ли метод общедоступным (public)

Описание

public bool ReflectionMethod::isPublic ( void )

Проверяет, является ли метод общедоступным (public).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод общедоступный (public), FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isPrivate() - Проверяет, является ли метод частным (private)


Проверяет, является ли метод статическим

  • « ReflectionMethod::isPublic
  • ReflectionMethod::setAccessible »
  • PHP Manual
  • ReflectionMethod
  • Проверяет, является ли метод статическим

ReflectionMethod::isStatic

(PHP 5, PHP 7)

ReflectionMethod::isStatic — Проверяет, является ли метод статическим

Описание

public bool ReflectionMethod::isStatic ( void )

Проверяет, является ли метод статическим.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если метод статический, FALSE в противном случае.

Смотрите также

  • ReflectionMethod::isFinal() - Проверяет, может ли метод иметь наследников (final)


Делает метод доступным

  • « ReflectionMethod::isStatic
  • ReflectionMethod::__toString »
  • PHP Manual
  • ReflectionMethod
  • Делает метод доступным

ReflectionMethod::setAccessible

(PHP 5 >= 5.3.2, PHP 7)

ReflectionMethod::setAccessible — Делает метод доступным

Описание

public void ReflectionMethod::setAccessible ( bool $accessible )

Делает метод доступным. Например, позволяет вызывать защищенные и частные методы.

Список параметров

accessible

TRUE, чтобы сделать метод доступным, или FALSE.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ReflectionMethod::isPrivate() - Проверяет, является ли метод частным (private)
  • ReflectionMethod::isProtected() - Проверяет, является ли метод защищенным (protected)


Возвращает строковое представление объекта Reflection method

  • « ReflectionMethod::setAccessible
  • ReflectionObject »
  • PHP Manual
  • ReflectionMethod
  • Возвращает строковое представление объекта Reflection method

ReflectionMethod::__toString

(PHP 5, PHP 7)

ReflectionMethod::__toString — Возвращает строковое представление объекта Reflection method

Описание

public string ReflectionMethod::__toString ( void )

Возвращает строковое представление объекта Reflection method.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Строковое представление объекта ReflectionMethod.

Примеры

Пример #1 Пример использования ReflectionMethod::__toString()

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Hello ' . $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()


Класс ReflectionObject

(PHP 5, PHP 7)

Введение

Класс ReflectionObject сообщает информацию об объектах (object).

Обзор классов

ReflectionObject extends ReflectionClass implements Reflector {
/* Константы */
const integer IS_IMPLICIT_ABSTRACT = 16 ;
const integer IS_EXPLICIT_ABSTRACT = 32 ;
const integer IS_FINAL = 64 ;
/* Свойства */
public $name ;
/* Методы */
public __construct ( object $argument )
public static string export ( string $argument [, bool $return ] )
/* Наследуемые методы */
public ReflectionClass::__construct ( mixed $argument )
public static string ReflectionClass::export ( mixed $argument [, bool $return = false ] )
public mixed ReflectionClass::getConstant ( string $name )
public array ReflectionClass::getConstants ( void )
public ReflectionMethod ReflectionClass::getConstructor ( void )
public array ReflectionClass::getDefaultProperties ( void )
public string ReflectionClass::getDocComment ( void )
public int ReflectionClass::getEndLine ( void )
public ReflectionExtension ReflectionClass::getExtension ( void )
public string ReflectionClass::getExtensionName ( void )
public string ReflectionClass::getFileName ( void )
public array ReflectionClass::getInterfaceNames ( void )
public array ReflectionClass::getInterfaces ( void )
public ReflectionMethod ReflectionClass::getMethod ( string $name )
public array ReflectionClass::getMethods ([ int $filter ] )
public int ReflectionClass::getModifiers ( void )
public string ReflectionClass::getName ( void )
public string ReflectionClass::getNamespaceName ( void )
public ReflectionClass ReflectionClass::getParentClass ( void )
public array ReflectionClass::getProperties ([ int $filter ] )
public ReflectionProperty ReflectionClass::getProperty ( string $name )
public string ReflectionClass::getShortName ( void )
public int ReflectionClass::getStartLine ( void )
public array ReflectionClass::getStaticProperties ( void )
public mixed ReflectionClass::getStaticPropertyValue ( string $name [, mixed &$def_value ] )
public array ReflectionClass::getTraitAliases ( void )
public array ReflectionClass::getTraitNames ( void )
public array ReflectionClass::getTraits ( void )
public bool ReflectionClass::hasConstant ( string $name )
public bool ReflectionClass::hasMethod ( string $name )
public bool ReflectionClass::hasProperty ( string $name )
public bool ReflectionClass::implementsInterface ( string $interface )
public bool ReflectionClass::inNamespace ( void )
public bool ReflectionClass::isAbstract ( void )
public bool ReflectionClass::isAnonymous ( void )
public bool ReflectionClass::isCloneable ( void )
public bool ReflectionClass::isFinal ( void )
public bool ReflectionClass::isInstance ( object $object )
public bool ReflectionClass::isInstantiable ( void )
public bool ReflectionClass::isInterface ( void )
public bool ReflectionClass::isInternal ( void )
public bool ReflectionClass::isIterateable ( void )
public bool ReflectionClass::isSubclassOf ( string $class )
public bool ReflectionClass::isTrait ( void )
public bool ReflectionClass::isUserDefined ( void )
public object ReflectionClass::newInstance ( mixed $args [, mixed $... ] )
public object ReflectionClass::newInstanceArgs ([ array $args ] )
public object ReflectionClass::newInstanceWithoutConstructor ( void )
public void ReflectionClass::setStaticPropertyValue ( string $name , string $value )
public string ReflectionClass::__toString ( void )
}

Свойства

name

Имя класса объекта. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Содержание

  • ReflectionObject::__construct — Конструктор класса ReflectionObject
  • ReflectionObject::export — Экспорт


Конструктор класса ReflectionObject

  • « ReflectionObject
  • ReflectionObject::export »
  • PHP Manual
  • ReflectionObject
  • Конструктор класса ReflectionObject

ReflectionObject::__construct

(PHP 5, PHP 7)

ReflectionObject::__construct — Конструктор класса ReflectionObject

Описание

public ReflectionObject::__construct ( object $argument )

Создает новый объект класса ReflectionObject.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

argument

Объект инстанцирования.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ReflectionObject::export() - Экспорт
  • Конструкторы


Экспорт

  • « ReflectionObject::__construct
  • ReflectionParameter »
  • PHP Manual
  • ReflectionObject
  • Экспорт

ReflectionObject::export

(PHP 5, PHP 7)

ReflectionObject::export — Экспорт

Описание

public static string ReflectionObject::export ( string $argument [, bool $return ] )

Экспортирует отображение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

argument

Экспортируемый объект Reflection.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Если параметр return установлен в TRUE, тогда экспортируемый объект будет возвращен как string, иначе будет возвращен NULL.

Смотрите также

  • ReflectionObject::__construct() - Конструктор класса ReflectionObject


Класс ReflectionParameter

(PHP 5, PHP 7)

Введение

Класс ReflectionParameter сообщает информацию об аргументах методов и функций.

Чтобы иметь возможность исследовать аргументы функции, сначала создайте представителя класса ReflectionFunction либо ReflectionMethod и затем используйте его метод ReflectionFunctionAbstract::getParameters() для получения массива аргументов.

Обзор классов

ReflectionParameter implements Reflector {
/* Свойства */
public $name ;
/* Методы */
public bool allowsNull ( void )
public bool canBePassedByValue ( void )
final private void __clone ( void )
public __construct ( string $function , string $parameter )
public static string export ( string $function , string $parameter [, bool $return ] )
public ReflectionClass getClass ( void )
public ReflectionClass getDeclaringClass ( void )
public ReflectionFunctionAbstract getDeclaringFunction ( void )
public mixed getDefaultValue ( void )
public string getDefaultValueConstantName ( void )
public string getName ( void )
public int getPosition ( void )
public ReflectionType getType ( void )
public bool hasType ( void )
public bool isArray ( void )
public bool isCallable ( void )
public bool isDefaultValueAvailable ( void )
public bool isDefaultValueConstant ( void )
public bool isOptional ( void )
public bool isPassedByReference ( void )
public bool isVariadic ( void )
public string __toString ( void )
}

Свойства

name

Имя аргумента. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Содержание

  • ReflectionParameter::allowsNull — Проверяет, допустимо ли значение null для аргумента
  • ReflectionParameter::canBePassedByValue — Проверяет, можно ли передать этот аргумент по значению
  • ReflectionParameter::__clone — Копирующий конструктор
  • ReflectionParameter::__construct — Конструктор класса
  • ReflectionParameter::export — Экспорт
  • ReflectionParameter::getClass — Получение класса из контроля типа
  • ReflectionParameter::getDeclaringClass — Получение объявляющего класса
  • ReflectionParameter::getDeclaringFunction — Получение объявляющей функции
  • ReflectionParameter::getDefaultValue — Получение значения по умолчанию аргумента
  • ReflectionParameter::getDefaultValueConstantName — Returns the default value's constant name if default value is constant or null
  • ReflectionParameter::getName — Получение имени аргумента
  • ReflectionParameter::getPosition — Получение позиции аргумента
  • ReflectionParameter::getType — Gets a parameter's type
  • ReflectionParameter::hasType — Checks if parameter has a type
  • ReflectionParameter::isArray — Проверяет, ожидает ли аргумент массив в качестве значения
  • ReflectionParameter::isCallable — Returns whether parameter MUST be callable
  • ReflectionParameter::isDefaultValueAvailable — Проверяет доступно ли значение по умолчанию аргумента
  • ReflectionParameter::isDefaultValueConstant — Returns whether the default value of this parameter is constant
  • ReflectionParameter::isOptional — Проверка, является ли аргумент необязательным
  • ReflectionParameter::isPassedByReference — Проверяет, что аргумент передан по ссылке
  • ReflectionParameter::isVariadic — Checks if the parameter is variadic
  • ReflectionParameter::__toString — Преобразование в строку


Проверяет, допустимо ли значение null для аргумента

  • « ReflectionParameter
  • ReflectionParameter::canBePassedByValue »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, допустимо ли значение null для аргумента

ReflectionParameter::allowsNull

(PHP 5, PHP 7)

ReflectionParameter::allowsNull — Проверяет, допустимо ли значение null для аргумента

Описание

public bool ReflectionParameter::allowsNull ( void )

Проверяет, допустимо ли значение NULL для аргумента.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если NULL допускается, FALSE в противном случае.

Смотрите также

  • ReflectionParameter::isOptional() - Проверка, является ли аргумент необязательным


Проверяет, можно ли передать этот аргумент по значению

  • « ReflectionParameter::allowsNull
  • ReflectionParameter::__clone »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, можно ли передать этот аргумент по значению

ReflectionParameter::canBePassedByValue

(PHP >= 5.4.0)

ReflectionParameter::canBePassedByValue — Проверяет, можно ли передать этот аргумент по значению

Описание

public bool ReflectionParameter::canBePassedByValue ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE, если передача аргумента по значению возможна, FALSE, если нет. Возвращает NULL в случае ошибки.


Копирующий конструктор

  • « ReflectionParameter::canBePassedByValue
  • ReflectionParameter::__construct »
  • PHP Manual
  • ReflectionParameter
  • Копирующий конструктор

ReflectionParameter::__clone

(PHP 5, PHP 7)

ReflectionParameter::__clone — Копирующий конструктор

Описание

final private void ReflectionParameter::__clone ( void )

Копирующий конструктор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • ReflectionParameter::toString()
  • Копирование объектов


Конструктор класса

  • « ReflectionParameter::__clone
  • ReflectionParameter::export »
  • PHP Manual
  • ReflectionParameter
  • Конструктор класса

ReflectionParameter::__construct

(PHP 5, PHP 7)

ReflectionParameter::__construct — Конструктор класса

Описание

public ReflectionParameter::__construct ( string $function , string $parameter )

Конструктор класса ReflectionParameter.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

function

Функция, аргумент которой требуется отобразить.

parameter

Аргумент.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Использования класса ReflectionParameter

<?php
function foo($a, $b, $c) { }
function bar(Exception $a, &$b, $c) { }
function baz(ReflectionFunction $a, $b = 1, $c = null) { }
function abc() { }

$reflect = new ReflectionFunction('foo');

echo $reflect;

foreach ($reflect->getParameters() as $i => $param) {
    printf(
        "-- Аргумент #%d: %s {\n".
        "   Класс: %s\n".
        "   Допускает значения NULL: %s\n".
        "   Передается по ссылке: %s\n".
        "   Необязательный?: %s\n".
        "}\n",
        $i, // $param->getPosition() can be used from PHP 5.2.3
        $param->getName(),
        var_export($param->getClass(), 1),
        var_export($param->allowsNull(), 1),
        var_export($param->isPassedByReference(), 1),
        $param->isOptional() ? 'да' : 'нет'
    );
}
?>

Результатом выполнения данного примера будет что-то подобное:

Function [ <user> function foo ] {
  @@ /Users/philip/cvs/phpdoc/a 2 - 2

  - Parameters [3] {
    Parameter #0 [ <required> $a ]
    Parameter #1 [ <required> $b ]
    Parameter #2 [ <required> $c ]
  }
}
-- Аргумент #0: a {
   Класс: NULL
   Допускает значения NULL: true
   Передается по ссылке: false
   Необязательный?: нет
}
-- Аргумент #1: b {
   Класс: NULL
   Допускает значения NULL: true
   Передается по ссылке: false
   Необязательный?: нет
}
-- Аргумент #2: c {
   Класс: NULL
   Допускает значения NULL: true
   Передается по ссылке: false
   Необязательный?: нет
}

Смотрите также

  • ReflectionFunction::__construct() - Конструктор класса ReflectionFunction
  • ReflectionMethod::__construct() - Конструктор класса ReflectionMethod
  • Конструкторы


Экспорт

  • « ReflectionParameter::__construct
  • ReflectionParameter::getClass »
  • PHP Manual
  • ReflectionParameter
  • Экспорт

ReflectionParameter::export

(PHP 5, PHP 7)

ReflectionParameter::export — Экспорт

Описание

public static string ReflectionParameter::export ( string $function , string $parameter [, bool $return ] )

Экспорт.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

function

Имя функции.

parameter

Имя аргумента.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Экспорт отображения.

Смотрите также

  • ReflectionParameter::toString()


Получение класса из контроля типа

  • « ReflectionParameter::export
  • ReflectionParameter::getDeclaringClass »
  • PHP Manual
  • ReflectionParameter
  • Получение класса из контроля типа

ReflectionParameter::getClass

(PHP 5, PHP 7)

ReflectionParameter::getClass — Получение класса из контроля типа

Описание

public ReflectionClass ReflectionParameter::getClass ( void )

Получает класс из контроля типа для параметра в виде объекта ReflectionClass.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass.

Примеры

Пример #1 Пример использования класса ReflectionParameter

<?php
function foo(Exception $a) { }

$functionReflection = new ReflectionFunction('foo');
$parameters = $functionReflection->getParameters();
$aParameter = $parameters[0];

echo $aParameter->getClass()->name;
?>

Результат выполнения данного примера:

Exception

Смотрите также

  • ReflectionParameter::getDeclaringClass() - Получение объявляющего класса


Получение объявляющего класса

  • « ReflectionParameter::getClass
  • ReflectionParameter::getDeclaringFunction »
  • PHP Manual
  • ReflectionParameter
  • Получение объявляющего класса

ReflectionParameter::getDeclaringClass

(PHP 5, PHP 7)

ReflectionParameter::getDeclaringClass — Получение объявляющего класса

Описание

public ReflectionClass ReflectionParameter::getDeclaringClass ( void )

Получает объявляющий класс.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass.

Примеры

Пример #1 Получение класса, в котором объявлен метод

<?php
class Foo
{
    public function bar(\DateTime $datetime)
    {
    }
}

class Baz extends Foo
{
}

$param = new \ReflectionParameter(['Baz', 'bar'], 0);

var_dump($param->getDeclaringClass());

Результат выполнения данного примера:

object(ReflectionClass)#2 (1) {
  ["name"]=>
  string(3) "Foo"
}

Смотрите также

  • ReflectionParameter::getClass() - Получение класса из контроля типа


Получение объявляющей функции

  • « ReflectionParameter::getDeclaringClass
  • ReflectionParameter::getDefaultValue »
  • PHP Manual
  • ReflectionParameter
  • Получение объявляющей функции

ReflectionParameter::getDeclaringFunction

(PHP 5 >= 5.2.3, PHP 7)

ReflectionParameter::getDeclaringFunction — Получение объявляющей функции

Описание

public ReflectionFunctionAbstract ReflectionParameter::getDeclaringFunction ( void )

Получает функцию, в которой аргумент объявлен.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionFunction.

Смотрите также

  • ReflectionParameter::getDeclaringClass() - Получение объявляющего класса


Получение значения по умолчанию аргумента

  • « ReflectionParameter::getDeclaringFunction
  • ReflectionParameter::getDefaultValueConstantName »
  • PHP Manual
  • ReflectionParameter
  • Получение значения по умолчанию аргумента

ReflectionParameter::getDefaultValue

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::getDefaultValue — Получение значения по умолчанию аргумента

Описание

public mixed ReflectionParameter::getDefaultValue ( void )

Получает значение по умолчанию аргумента определенной пользователем функции или метода. Если аргумент не является необязательным, будет выброшено исключение ReflectionException.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Значение по умолчанию аргумента.

Примеры

Пример #1 Получение

<?php
function foo($test, $bar = 'baz')
{
    echo $test . $bar;
}

$function = new ReflectionFunction('foo');

foreach ($function->getParameters() as $param) {
    echo 'Name: ' . $param->getName() . PHP_EOL;
    if ($param->isOptional()) {
        echo 'Default value: ' . $param->getDefaultValue() . PHP_EOL;
    }
    echo PHP_EOL;
}
?>

Результат выполнения данного примера:

Name: test

Name: bar
Default value: baz

Примечания

Замечание:

В виду особенностей реализации, невозможно получить значение по умолчанию для встроенных функций или методов встроенных классов. Попытки это сделать приведут к выбросу исключения ReflectionException.

Смотрите также

  • ReflectionParameter::isOptional() - Проверка, является ли аргумент необязательным
  • ReflectionParameter::isPassedByReference() - Проверяет, что аргумент передан по ссылке


Returns the default value's constant name if default value is constant or null

  • « ReflectionParameter::getDefaultValue
  • ReflectionParameter::getName »
  • PHP Manual
  • ReflectionParameter
  • Returns the default value's constant name if default value is constant or null

ReflectionParameter::getDefaultValueConstantName

(PHP 5 >= 5.4.6, PHP 7)

ReflectionParameter::getDefaultValueConstantName — Returns the default value's constant name if default value is constant or null

Описание

public string ReflectionParameter::getDefaultValueConstantName ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns string on success or NULL on failure.


Получение имени аргумента

  • « ReflectionParameter::getDefaultValueConstantName
  • ReflectionParameter::getPosition »
  • PHP Manual
  • ReflectionParameter
  • Получение имени аргумента

ReflectionParameter::getName

(PHP 5, PHP 7)

ReflectionParameter::getName — Получение имени аргумента

Описание

public string ReflectionParameter::getName ( void )

Получает имя аргумента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя отображенного аргумента.

Смотрите также

  • ReflectionParameter::getValue()


Получение позиции аргумента

  • « ReflectionParameter::getName
  • ReflectionParameter::getType »
  • PHP Manual
  • ReflectionParameter
  • Получение позиции аргумента

ReflectionParameter::getPosition

(PHP 5 >= 5.2.3, PHP 7)

ReflectionParameter::getPosition — Получение позиции аргумента

Описание

public int ReflectionParameter::getPosition ( void )

Получает позицию аргумента в списке аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Позиция аргумента, слева направо, первый аргумент стоит на позиции #0.

Смотрите также

  • ReflectionParameter::getName() - Получение имени аргумента


Gets a parameter's type

  • « ReflectionParameter::getPosition
  • ReflectionParameter::hasType »
  • PHP Manual
  • ReflectionParameter
  • Gets a parameter's type

ReflectionParameter::getType

(PHP 7)

ReflectionParameter::getType — Gets a parameter's type

Описание

public ReflectionType ReflectionParameter::getType ( void )

Gets the associated type of a parameter.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a ReflectionType object if a parameter type is specified, NULL otherwise.

Примеры

Пример #1 ReflectionParameter::getType() example

<?php
function someFunction(int $param, $param2) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();
$reflectionType1 = $reflectionParams[0]->getType();
$reflectionType2 = $reflectionParams[1]->getType();

echo $reflectionType1;
var_dump($reflectionType2);

Результатом выполнения данного примера будет что-то подобное:

int
null

Смотрите также

  • ReflectionParameter::hasType() - Checks if parameter has a type
  • ReflectionType::__toString() - Преобразование в строку


Checks if parameter has a type

  • « ReflectionParameter::getType
  • ReflectionParameter::isArray »
  • PHP Manual
  • ReflectionParameter
  • Checks if parameter has a type

ReflectionParameter::hasType

(PHP 7)

ReflectionParameter::hasType — Checks if parameter has a type

Описание

public bool ReflectionParameter::hasType ( void )

Checks if the parameter has a type associated with it.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE if a type is specified, FALSE otherwise.

Примеры

Пример #1 ReflectionParameter::hasType() example

<?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() - Gets a parameter's type


Проверяет, ожидает ли аргумент массив в качестве значения

  • « ReflectionParameter::hasType
  • ReflectionParameter::isCallable »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, ожидает ли аргумент массив в качестве значения

ReflectionParameter::isArray

(PHP 5 >= 5.1.0, PHP 7)

ReflectionParameter::isArray — Проверяет, ожидает ли аргумент массив в качестве значения

Описание

public bool ReflectionParameter::isArray ( void )

Проверяет, ожидает ли аргумент массив в качестве значения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если в качестве значения ожидается массив array, FALSE в противном случае.

Смотрите также

  • ReflectionParameter::isOptional() - Проверка, является ли аргумент необязательным


Returns whether parameter MUST be callable

  • « ReflectionParameter::isArray
  • ReflectionParameter::isDefaultValueAvailable »
  • PHP Manual
  • ReflectionParameter
  • Returns whether parameter MUST be callable

ReflectionParameter::isCallable

(PHP 5 >= 5.4.0, PHP 7)

ReflectionParameter::isCallable — Returns whether parameter MUST be callable

Описание

public bool ReflectionParameter::isCallable ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the parameter is callable, FALSE if it is not or NULL on failure.


Проверяет доступно ли значение по умолчанию аргумента

  • « ReflectionParameter::isCallable
  • ReflectionParameter::isDefaultValueConstant »
  • PHP Manual
  • ReflectionParameter
  • Проверяет доступно ли значение по умолчанию аргумента

ReflectionParameter::isDefaultValueAvailable

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::isDefaultValueAvailable — Проверяет доступно ли значение по умолчанию аргумента

Описание

public bool ReflectionParameter::isDefaultValueAvailable ( void )

Проверяет доступно ли значение по умолчанию аргумента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если доступно значение по умолчанию, FALSE в противном случае.

Смотрите также

  • ReflectionParameter::getDefaultValue() - Получение значения по умолчанию аргумента
  • ReflectionParameter::getName() - Получение имени аргумента


Returns whether the default value of this parameter is constant

  • « ReflectionParameter::isDefaultValueAvailable
  • ReflectionParameter::isOptional »
  • PHP Manual
  • ReflectionParameter
  • Returns whether the default value of this parameter is constant

ReflectionParameter::isDefaultValueConstant

(PHP 5 >= 5.4.6, PHP 7)

ReflectionParameter::isDefaultValueConstant — Returns whether the default value of this parameter is constant

Описание

public bool ReflectionParameter::isDefaultValueConstant ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the default value is constant, FALSE if it is not or NULL on failure.


Проверка, является ли аргумент необязательным

  • « ReflectionParameter::isDefaultValueConstant
  • ReflectionParameter::isPassedByReference »
  • PHP Manual
  • ReflectionParameter
  • Проверка, является ли аргумент необязательным

ReflectionParameter::isOptional

(PHP 5 >= 5.0.3, PHP 7)

ReflectionParameter::isOptional — Проверка, является ли аргумент необязательным

Описание

public bool ReflectionParameter::isOptional ( void )

Проверяет, является ли аргумент необязательным.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если аргумент необязательный, FALSE в противном случае.

Смотрите также

  • ReflectionParameter::getName() - Получение имени аргумента


Проверяет, что аргумент передан по ссылке

  • « ReflectionParameter::isOptional
  • ReflectionParameter::isVariadic »
  • PHP Manual
  • ReflectionParameter
  • Проверяет, что аргумент передан по ссылке

ReflectionParameter::isPassedByReference

(PHP 5, PHP 7)

ReflectionParameter::isPassedByReference — Проверяет, что аргумент передан по ссылке

Описание

public bool ReflectionParameter::isPassedByReference ( void )

Проверяет, что аргумент передан по ссылке.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если аргумент передан по ссылке, FALSE в противном случае.

Смотрите также

  • ReflectionParameter::getName() - Получение имени аргумента


Checks if the parameter is variadic

  • « ReflectionParameter::isPassedByReference
  • ReflectionParameter::__toString »
  • PHP Manual
  • ReflectionParameter
  • Checks if the parameter is variadic

ReflectionParameter::isVariadic

(PHP 5 >= 5.6.0, PHP 7)

ReflectionParameter::isVariadic — Checks if the parameter is variadic

Описание

public bool ReflectionParameter::isVariadic ( void )

Checks if the parameter was declared as a variadic parameter.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns TRUE if the parameter is variadic, otherwise FALSE.


Преобразование в строку

  • « ReflectionParameter::isVariadic
  • ReflectionProperty »
  • PHP Manual
  • ReflectionParameter
  • Преобразование в строку

ReflectionParameter::__toString

(PHP 5, PHP 7)

ReflectionParameter::__toString — Преобразование в строку

Описание

public string ReflectionParameter::__toString ( void )

Представление в виде строки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • ReflectionParameter::export() - Экспорт
  • __toString()


Класс ReflectionProperty

(PHP 5, PHP 7)

Введение

Класс ReflectionProperty сообщает информацию о свойствах класса.

Обзор классов

ReflectionProperty implements Reflector {
/* Константы */
const integer IS_STATIC = 1 ;
const integer IS_PUBLIC = 256 ;
const integer IS_PROTECTED = 512 ;
const integer IS_PRIVATE = 1024 ;
/* Свойства */
public $name ;
public $class ;
/* Методы */
final private void __clone ( void )
public __construct ( mixed $class , string $name )
public static string export ( mixed $class , string $name [, bool $return ] )
public ReflectionClass getDeclaringClass ( void )
public string getDocComment ( void )
public int getModifiers ( void )
public string getName ( void )
public mixed getValue ([ object $object ] )
public bool isDefault ( void )
public bool isPrivate ( void )
public bool isProtected ( void )
public bool isPublic ( void )
public bool isStatic ( void )
public void setAccessible ( bool $accessible )
public void setValue ( object $object , mixed $value )
public string __toString ( void )
}

Свойства

name

Имя свойства. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

class

Имя класса, в котором данное свойство описано. Доступно только для чтения и выбрасывает исключение ReflectionException при попытке записи.

Предопределенные константы

Модификаторы ReflectionProperty

ReflectionProperty::IS_STATIC

Указывает, что свойство является статическим (static).

ReflectionProperty::IS_PUBLIC

Указывает, что свойство является общедоступным (public) properties.

ReflectionProperty::IS_PROTECTED

Указывает, что свойство является защищенным (protected).

ReflectionProperty::IS_PRIVATE

Указывает, что свойство является закрытым (private).

Содержание

  • ReflectionProperty::__clone — Копирующий конструктор
  • ReflectionProperty::__construct — Конструктор класса ReflectionProperty
  • ReflectionProperty::export — Экспорт
  • ReflectionProperty::getDeclaringClass — Получение объявляющего класса
  • ReflectionProperty::getDocComment — Получение документируемого комментария для свойства
  • ReflectionProperty::getModifiers — Получение модификаторов
  • ReflectionProperty::getName — Получение имени свойства
  • ReflectionProperty::getValue — Получение значения
  • ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию
  • ReflectionProperty::isPrivate — Проверяет, является ли свойство частным (private)
  • ReflectionProperty::isProtected — Проверяет, является ли свойство защищенным (protected)
  • ReflectionProperty::isPublic — Проверяет, является ли свойство общедоступным (public)
  • ReflectionProperty::isStatic — Проверка, является ли свойство статическим
  • ReflectionProperty::setAccessible — Задание доступности свойства
  • ReflectionProperty::setValue — Задание значения свойству
  • ReflectionProperty::__toString — Преобразование в строку


Копирующий конструктор

  • « ReflectionProperty
  • ReflectionProperty::__construct »
  • PHP Manual
  • ReflectionProperty
  • Копирующий конструктор

ReflectionProperty::__clone

(PHP 5, PHP 7)

ReflectionProperty::__clone — Копирующий конструктор

Описание

final private void ReflectionProperty::__clone ( void )

Копирующий конструктор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • ReflectionProperty::export() - Экспорт
  • Копирование объектов


Конструктор класса ReflectionProperty

  • « ReflectionProperty::__clone
  • ReflectionProperty::export »
  • PHP Manual
  • ReflectionProperty
  • Конструктор класса ReflectionProperty

ReflectionProperty::__construct

(PHP 5, PHP 7)

ReflectionProperty::__construct — Конструктор класса ReflectionProperty

Описание

public ReflectionProperty::__construct ( mixed $class , string $name )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

class

Имя класса, содержащего свойство.

name

Имя свойства, которое требуется отобразить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Попытка получить или задать значение защищенного или частного свойства приведет к выбросу исключения.

Примеры

Пример #1 Пример использования ReflectionProperty::__construct()

<?php
class Str
{
    public $length  = 5;
}

// Создание нового объекта класса ReflectionProperty
$prop = new ReflectionProperty('Str', 'length');

// Вывод основной информации об объекте
printf(
    "===> %s%s%s%s свойство '%s' (которое %s)\n" .
    "     имеющее модификаторы %s\n",
        $prop->isPublic() ? ' общедоступное' : '',
        $prop->isPrivate() ? ' частное' : '',
        $prop->isProtected() ? ' защищенное' : '',
        $prop->isStatic() ? ' статическое' : '',
        $prop->getName(),
        $prop->isDefault() ? 'объявлено во время компиляции' : 'создано во время выполнения',
        var_export(Reflection::getModifierNames($prop->getModifiers()), 1)
);

// создание инстанса класса Str
$obj= new Str();

// получение текущего значения
printf("---> Значение: ");
var_dump($prop->getValue($obj));

// Изменение значения
$prop->setValue($obj, 10);
printf("---> Установка значения 10, новое значение: ");
var_dump($prop->getValue($obj));

// Dump object
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); /* As of PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

$prop = new ReflectionProperty('Foo', 'z');
$prop->setAccessible(true); /* As of PHP 5.3.0 */
var_dump($prop->getValue($obj)); // int(2)

?>

Результатом выполнения данного примера будет что-то подобное:

int(2)
int(3)

Смотрите также

  • ReflectionProperty::getName() - Получение имени свойства
  • Конструкторы


Экспорт

  • « ReflectionProperty::__construct
  • ReflectionProperty::getDeclaringClass »
  • PHP Manual
  • ReflectionProperty
  • Экспорт

ReflectionProperty::export

(PHP 5, PHP 7)

ReflectionProperty::export — Экспорт

Описание

public static string ReflectionProperty::export ( mixed $class , string $name [, bool $return ] )

Экспортирует отображение.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

argument

Экспортируемый объект Reflection.

name

Имя свойства.

return

Установка в TRUE вернет экспортируемое значение, в отличие от поведения, где этот параметр опущен. Установка в FALSE (по умолчанию) сделает противоположное.

Возвращаемые значения

Смотрите также

  • ReflectionProperty::toString()


Получение объявляющего класса

  • « ReflectionProperty::export
  • ReflectionProperty::getDocComment »
  • PHP Manual
  • ReflectionProperty
  • Получение объявляющего класса

ReflectionProperty::getDeclaringClass

(PHP 5, PHP 7)

ReflectionProperty::getDeclaringClass — Получение объявляющего класса

Описание

public ReflectionClass ReflectionProperty::getDeclaringClass ( void )

Получение объявляющего класса.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Объект класса ReflectionClass.

Смотрите также

  • ReflectionProperty::getName() - Получение имени свойства


Получение документируемого комментария для свойства

  • « ReflectionProperty::getDeclaringClass
  • ReflectionProperty::getModifiers »
  • PHP Manual
  • ReflectionProperty
  • Получение документируемого комментария для свойства

ReflectionProperty::getDocComment

(PHP 5 >= 5.1.0, PHP 7)

ReflectionProperty::getDocComment — Получение документируемого комментария для свойства

Описание

public string ReflectionProperty::getDocComment ( void )

Получает документируемый комментарий для свойства.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Комментарий к свойству.

Примеры

Пример #1 Пример ReflectionProperty::getDocComment()

<?php
class Str
{
    /**
     * @var int  The length of the string
     */
    public $length = 5;
}

$prop = new ReflectionProperty('Str', 'length');

var_dump($prop->getDocComment());

?>

Результатом выполнения данного примера будет что-то подобное:

string(53) "/**
     * @var int  The length of the string
     */"

Смотрите также

  • ReflectionProperty::getModifiers() - Получение модификаторов
  • ReflectionProperty::getName() - Получение имени свойства
  • ReflectionProperty::getValue() - Получение значения


Получение модификаторов

  • « ReflectionProperty::getDocComment
  • ReflectionProperty::getName »
  • PHP Manual
  • ReflectionProperty
  • Получение модификаторов

ReflectionProperty::getModifiers

(PHP 5, PHP 7)

ReflectionProperty::getModifiers — Получение модификаторов

Описание

public int ReflectionProperty::getModifiers ( void )

Получает список модификаторов

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Числовое представление модификаторов.

Смотрите также

  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство частным (private)
  • Reflection::getModifierNames() - Получение имен модификаторов


Получение имени свойства

  • « ReflectionProperty::getModifiers
  • ReflectionProperty::getValue »
  • PHP Manual
  • ReflectionProperty
  • Получение имени свойства

ReflectionProperty::getName

(PHP 5, PHP 7)

ReflectionProperty::getName — Получение имени свойства

Описание

public string ReflectionProperty::getName ( void )

Получает имя свойства.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Имя отображенного свойства.

Смотрите также

  • ReflectionProperty::getValue() - Получение значения


Получение значения

  • « ReflectionProperty::getName
  • ReflectionProperty::isDefault »
  • PHP Manual
  • ReflectionProperty
  • Получение значения

ReflectionProperty::getValue

(PHP 5, PHP 7)

ReflectionProperty::getValue — Получение значения

Описание

public mixed ReflectionProperty::getValue ([ object $object ] )

Получает значение свойства.

Список параметров

object

Если свойство не статическое, необходимо передать объект, из которого требуется это свойство получить. Если вам нужно получить свойство по умолчанию, не предоставляя объект, используйте функцию ReflectionClass::getDefaultProperties().

Возвращаемые значения

Текущее значение свойства.

Ошибки

Вызывает исключение ReflectionException, если свойство недоступно. Защищенные и частные свойства можно сделать доступными функцией ReflectionProperty::setAccessible().

Примеры

Пример #1 Пример использования ReflectionProperty::getValue()

<?php
class Foo {
    public static $staticProperty = 'foobar';

    public $property = 'barfoo';
    protected $privateProperty = 'foofoo';
}

$reflectionClass = new ReflectionClass('Foo');

var_dump($reflectionClass->getProperty('staticProperty')->getValue());
var_dump($reflectionClass->getProperty('property')->getValue(new Foo));

$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true);
var_dump($reflectionProperty->getValue(new Foo));
?>

Результат выполнения данного примера:

string(6) "foobar"
string(6) "barfoo"
string(6) "foofoo"

Смотрите также

  • ReflectionProperty::setValue() - Задание значения свойству
  • ReflectionProperty::setAccessible() - Задание доступности свойства
  • ReflectionClass::getDefaultProperties() - Возвращает свойства по умолчанию
  • ReflectionClass::getStaticPropertyValue() - Возвращает значение static свойства


Проверяет, является ли значение свойством по умолчанию

  • « ReflectionProperty::getValue
  • ReflectionProperty::isPrivate »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли значение свойством по умолчанию

ReflectionProperty::isDefault

(PHP 5, PHP 7)

ReflectionProperty::isDefault — Проверяет, является ли значение свойством по умолчанию

Описание

public bool ReflectionProperty::isDefault ( void )

Проверяет, является ли значение свойством заданным на этапе компиляции или установлено динамически во время исполнения.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если свойство объявлено во время компиляции, либо FALSE, если оно было создано во время выполнения.

Примеры

Пример #1 Пример ReflectionClass::isDefault()

<?php
class Foo {
    public $bar;
}

$o = new Foo();
$o->bar = 42;
$o->baz = 42;

$ro = new ReflectionObject($o);
var_dump($ro->getProperty('bar')->isDefault());
var_dump($ro->getProperty('baz')->isDefault());
?>

Результат выполнения данного примера:

bool(true)
bool(false)

Смотрите также

  • ReflectionProperty::getValue() - Получение значения


Проверяет, является ли свойство частным (private)

  • « ReflectionProperty::isDefault
  • ReflectionProperty::isProtected »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли свойство частным (private)

ReflectionProperty::isPrivate

(PHP 5, PHP 7)

ReflectionProperty::isPrivate — Проверяет, является ли свойство частным (private)

Описание

public bool ReflectionProperty::isPrivate ( void )

Проверяет, является ли свойство частным (private).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если свойство частное, FALSE в противном случае.

Смотрите также

  • ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным (public)
  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищенным (protected)
  • ReflectionProperty::isStatic() - Проверка, является ли свойство статическим


Проверяет, является ли свойство защищенным (protected)

  • « ReflectionProperty::isPrivate
  • ReflectionProperty::isPublic »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли свойство защищенным (protected)

ReflectionProperty::isProtected

(PHP 5, PHP 7)

ReflectionProperty::isProtected — Проверяет, является ли свойство защищенным (protected)

Описание

public bool ReflectionProperty::isProtected ( void )

Проверяет, является ли свойство защищенным (protected).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если свойство защищенное (protected), FALSE в противном случае.

Смотрите также

  • ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным (public)
  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство частным (private)
  • ReflectionProperty::isStatic() - Проверка, является ли свойство статическим


Проверяет, является ли свойство общедоступным (public)

  • « ReflectionProperty::isProtected
  • ReflectionProperty::isStatic »
  • PHP Manual
  • ReflectionProperty
  • Проверяет, является ли свойство общедоступным (public)

ReflectionProperty::isPublic

(PHP 5, PHP 7)

ReflectionProperty::isPublic — Проверяет, является ли свойство общедоступным (public)

Описание

public bool ReflectionProperty::isPublic ( void )

Проверяет, является ли свойство общедоступным (public).

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если свойство общедоступное, FALSE в противном случае.

Смотрите также

  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищенным (protected)
  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство частным (private)
  • ReflectionProperty::isStatic() - Проверка, является ли свойство статическим


Проверка, является ли свойство статическим

  • « ReflectionProperty::isPublic
  • ReflectionProperty::setAccessible »
  • PHP Manual
  • ReflectionProperty
  • Проверка, является ли свойство статическим

ReflectionProperty::isStatic

(PHP 5, PHP 7)

ReflectionProperty::isStatic — Проверка, является ли свойство статическим

Описание

public bool ReflectionProperty::isStatic ( void )

Проверяет, является ли свойство статическим.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE, если свойство статическое, FALSE в противном случае.

Смотрите также

  • ReflectionProperty::isPublic() - Проверяет, является ли свойство общедоступным (public)
  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищенным (protected)
  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство частным (private)


Задание доступности свойства

  • « ReflectionProperty::isStatic
  • ReflectionProperty::setValue »
  • PHP Manual
  • ReflectionProperty
  • Задание доступности свойства

ReflectionProperty::setAccessible

(PHP 5 >= 5.3.0, PHP 7)

ReflectionProperty::setAccessible — Задание доступности свойства

Описание

public void ReflectionProperty::setAccessible ( bool $accessible )

Делает свойство доступным. Например, может сделать доступным защищенное и частное свойство.

Список параметров

accessible

TRUE делает свойство доступным, FALSE - закрывает доступ к свойству.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • ReflectionProperty::isPrivate() - Проверяет, является ли свойство частным (private)
  • ReflectionProperty::isProtected() - Проверяет, является ли свойство защищенным (protected)


Задание значения свойству

  • « ReflectionProperty::setAccessible
  • ReflectionProperty::__toString »
  • PHP Manual
  • ReflectionProperty
  • Задание значения свойству

ReflectionProperty::setValue

(PHP 5, PHP 7)

ReflectionProperty::setValue — Задание значения свойству

Описание

public void ReflectionProperty::setValue ( object $object , mixed $value )
public void ReflectionProperty::setValue ( mixed $value )

Задает (изменяет) значение свойства.

Список параметров

object

Если свойство нестатическое, необходимо передать объект, свойство в котором нужно изменить. Если свойство статическое, этот аргумент пропускается, и требуется задать только value.

value

Новое значение.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Вызывает исключение ReflectionException, если свойство недоступно. Можно делать защищенные и частные свойства доступными с помощью ReflectionProperty::setAccessible().

Примеры

Пример #1 Пример использования ReflectionProperty::setValue()

<?php
class Foo {
    public static $staticProperty;

    public $property;
    protected $privateProperty;
}

$reflectionClass = new ReflectionClass('Foo');

$reflectionClass->getProperty('staticProperty')->setValue('foo');
var_dump(Foo::$staticProperty);

$foo = new Foo;

$reflectionClass->getProperty('property')->setValue($foo, 'bar');
var_dump($foo->property);

$reflectionProperty = $reflectionClass->getProperty('privateProperty');
$reflectionProperty->setAccessible(true);
$reflectionProperty->setValue($foo, 'foobar');
var_dump($reflectionProperty->getValue($foo));
?>

Результат выполнения данного примера:

string(3) "foo"
string(3) "bar"
string(6) "foobar"

Смотрите также

  • ReflectionProperty::getValue() - Получение значения
  • ReflectionProperty::setAccessible() - Задание доступности свойства
  • ReflectionClass::setStaticPropertyValue() - Устанавливает значение static-свойства


Преобразование в строку

  • « ReflectionProperty::setValue
  • ReflectionType »
  • PHP Manual
  • ReflectionProperty
  • Преобразование в строку

ReflectionProperty::__toString

(PHP 5, PHP 7)

ReflectionProperty::__toString — Преобразование в строку

Описание

public string ReflectionProperty::__toString ( void )

Представление в виде строки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • __toString()


Класс ReflectionType

(PHP 7)

Введение

Класс ReflectionType сообщает информацию о типе возвращаемого значения функции.

Обзор классов

ReflectionType {
/* Методы */
public bool allowsNull ( void )
public bool isBuiltin ( void )
public string __toString ( void )
}

Содержание

  • ReflectionType::allowsNull — Проверяет, допустим ли NULL
  • ReflectionType::isBuiltin — Проверяет тип, встроенный он или нет
  • ReflectionType::__toString — Преобразование в строку


Проверяет, допустим ли NULL

  • « ReflectionType
  • ReflectionType::isBuiltin »
  • PHP Manual
  • ReflectionType
  • Проверяет, допустим ли NULL

ReflectionType::allowsNull

(PHP 7)

ReflectionType::allowsNull — Проверяет, допустим ли NULL

Описание

public bool ReflectionType::allowsNull ( void )

Проверяет, допустим ли NULL в заданном параметре.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE если NULL допустим, иначе FALSE

Примеры

Пример #1 Пример ReflectionType::allowsNull()

<?php
function someFunction(string $param, StdClass $param2 = null) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->getType()->allowsNull());
var_dump($reflectionParams[1]->getType()->allowsNull());

Результатом выполнения данного примера будет что-то подобное:

bool(false)
bool(true)

Смотрите также

  • ReflectionType::isBuiltin() - Проверяет тип, встроенный он или нет
  • ReflectionType::__toString() - Преобразование в строку
  • ReflectionParameter::getType() - Gets a parameter's type


Проверяет тип, встроенный он или нет

  • « ReflectionType::allowsNull
  • ReflectionType::__toString »
  • PHP Manual
  • ReflectionType
  • Проверяет тип, встроенный он или нет

ReflectionType::isBuiltin

(PHP 7)

ReflectionType::isBuiltin — Проверяет тип, встроенный он или нет

Описание

public bool ReflectionType::isBuiltin ( void )

Проверяет тип, встроенный он или нет.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE если это встроенный тип PHP, иначе FALSE

Примеры

Пример #1 Пример ReflectionType::isBuiltin()

<?php
class SomeClass {}

function someFunction(string $param, SomeClass $param2, StdClass $param3) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParams = $reflectionFunc->getParameters();

var_dump($reflectionParams[0]->getType()->isBuiltin());
var_dump($reflectionParams[1]->getType()->isBuiltin());
var_dump($reflectionParams[2]->getType()->isBuiltin());

Результатом выполнения данного примера будет что-то подобное:

bool(true)
bool(false)
bool(false)

Обратите внимание, что метод ReflectionType::isBuiltin() не различает встроенные и пользовательские классы. Для подобной проверки используйте метод ReflectionClass::isInternal().

Смотрите также

  • ReflectionType::allowsNull() - Проверяет, допустим ли NULL
  • ReflectionType::__toString() - Преобразование в строку
  • ReflectionClass::isInternal() - Проверяет, является ли класс встроенным в расширение или в ядро
  • ReflectionParameter::getType() - Gets a parameter's type


Преобразование в строку

  • « ReflectionType::isBuiltin
  • ReflectionGenerator »
  • PHP Manual
  • ReflectionType
  • Преобразование в строку

ReflectionType::__toString

(PHP 7)

ReflectionType::__toString — Преобразование в строку

Описание

public string ReflectionType::__toString ( void )

Получает имя типа параметра.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает тип параметра.

Примеры

Пример #1 Пример ReflectionType::__toString()

<?php
function someFunction(string $param) {}

$reflectionFunc = new ReflectionFunction('someFunction');
$reflectionParam = $reflectionFunc->getParameters()[0];

echo $reflectionParam->getType();

Результатом выполнения данного примера будет что-то подобное:

string

Смотрите также

  • ReflectionType::allowsNull() - Проверяет, допустим ли NULL
  • ReflectionType::isBuiltin() - Проверяет тип, встроенный он или нет
  • ReflectionParameter::getType() - Gets a parameter's type


Класс ReflectionGenerator

(PHP 7)

Введение

Класс ReflectionGenerator сообщает информацию о генераторе.

Обзор классов

ReflectionGenerator {
/* Методы */
public __construct ( Generator $generator )
public string getExecutingFile ( void )
public Generator getExecutingGenerator ( void )
public int getExecutingLine ( void )
public ReflectionFunctionAbstract getFunction ( void )
public object getThis ( void )
public array getTrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT ] )
}

Содержание

  • ReflectionGenerator::__construct — Constructs a ReflectionGenerator object
  • ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator
  • ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object
  • ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator
  • ReflectionGenerator::getFunction — Gets the function name of the generator
  • ReflectionGenerator::getThis — Gets the $this value of the generator
  • ReflectionGenerator::getTrace — Gets the trace of the executing generator


Constructs a ReflectionGenerator object

  • « ReflectionGenerator
  • ReflectionGenerator::getExecutingFile »
  • PHP Manual
  • ReflectionGenerator
  • Constructs a ReflectionGenerator object

ReflectionGenerator::__construct

(PHP 7)

ReflectionGenerator::__construct — Constructs a ReflectionGenerator object

Описание

public ReflectionGenerator::__construct ( Generator $generator )

Constructs a ReflectionGenerator object.

Список параметров

generator

A generator object.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 ReflectionGenerator::__construct() example

<?php

function gen()
{
    yield 1;
}

$gen = gen();

$reflectionGen = new ReflectionGenerator($gen);

echo <<< output
{$reflectionGen->getFunction()->name}
Line: {$reflectionGen->getExecutingLine()}
File: {$reflectionGen->getExecutingFile()}
output;

Результатом выполнения данного примера будет что-то подобное:

gen
Line: 5
File: /path/to/file/example.php

Смотрите также

  • ReflectionGenerator::getFunction() - Gets the function name of the generator
  • ReflectionGenerator::getExecutingLine() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the file name of the currently executing generator

  • « ReflectionGenerator::__construct
  • ReflectionGenerator::getExecutingGenerator »
  • PHP Manual
  • ReflectionGenerator
  • Gets the file name of the currently executing generator

ReflectionGenerator::getExecutingFile

(PHP 7)

ReflectionGenerator::getExecutingFile — Gets the file name of the currently executing generator

Описание

public string ReflectionGenerator::getExecutingFile ( void )

Get the full path and file name of the currently executing generator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the full path and file name of the currently executing generator.

Примеры

Пример #1 ReflectionGenerator::getExecutingFile() example

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "File: {$reflectionGen->getExecutingFile()}";

Результатом выполнения данного примера будет что-то подобное:

File: /path/to/file/example.php

Смотрите также

  • ReflectionGenerator::getExecutingLine() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingGenerator() - Gets the executing Generator object


Gets the executing Generator object

  • « ReflectionGenerator::getExecutingFile
  • ReflectionGenerator::getExecutingLine »
  • PHP Manual
  • ReflectionGenerator
  • Gets the executing Generator object

ReflectionGenerator::getExecutingGenerator

(PHP 7)

ReflectionGenerator::getExecutingGenerator — Gets the executing Generator object

Описание

public Generator ReflectionGenerator::getExecutingGenerator ( void )

Get the executing Generator object

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the currently executing Generator object.

Примеры

Пример #1 ReflectionGenerator::getExecutingGenerator() example

<?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() - Gets the currently executing line of the generator
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the currently executing line of the generator

  • « ReflectionGenerator::getExecutingGenerator
  • ReflectionGenerator::getFunction »
  • PHP Manual
  • ReflectionGenerator
  • Gets the currently executing line of the generator

ReflectionGenerator::getExecutingLine

(PHP 7)

ReflectionGenerator::getExecutingLine — Gets the currently executing line of the generator

Описание

public int ReflectionGenerator::getExecutingLine ( void )

Get the currently executing line number of the generator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the line number of the currently executing statement in the generator.

Примеры

Пример #1 ReflectionGenerator::getExecutingLine() example

<?php

class GenExample
{
    public function gen()
    {
        yield 1;
    }
}

$gen = (new GenExample)->gen();

$reflectionGen = new ReflectionGenerator($gen);

echo "Line: {$reflectionGen->getExecutingLine()}";

Результатом выполнения данного примера будет что-то подобное:

Line: 7

Смотрите также

  • ReflectionGenerator::getExecutingGenerator() - Gets the executing Generator object
  • ReflectionGenerator::getExecutingFile() - Gets the file name of the currently executing generator


Gets the function name of the generator

  • « ReflectionGenerator::getExecutingLine
  • ReflectionGenerator::getThis »
  • PHP Manual
  • ReflectionGenerator
  • Gets the function name of the generator

ReflectionGenerator::getFunction

(PHP 7)

ReflectionGenerator::getFunction — Gets the function name of the generator

Описание

public ReflectionFunctionAbstract ReflectionGenerator::getFunction ( void )

Enables the function name of the generator to be obtained by returning a class derived from ReflectionFunctionAbstract.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a ReflectionFunctionAbstract class. This will be ReflectionFunction for functions, or ReflectionMethod for methods.

Примеры

Пример #1 ReflectionGenerator::getFunction() example

<?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() - Gets the $this value of the generator
  • ReflectionGenerator::getTrace() - Gets the trace of the executing generator


Gets the $this value of the generator

  • « ReflectionGenerator::getFunction
  • ReflectionGenerator::getTrace »
  • PHP Manual
  • ReflectionGenerator
  • Gets the $this value of the generator

ReflectionGenerator::getThis

(PHP 7)

ReflectionGenerator::getThis — Gets the $this value of the generator

Описание

public object ReflectionGenerator::getThis ( void )

Get the $this value that the generator has access to.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the $this value, or NULL if the generator was not created in a class context.

Примеры

Пример #1 ReflectionGenerator::getThis() example

<?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() - Gets the function name of the generator
  • ReflectionGenerator::getTrace() - Gets the trace of the executing generator


Gets the trace of the executing generator

  • « ReflectionGenerator::getThis
  • Reflector »
  • PHP Manual
  • ReflectionGenerator
  • Gets the trace of the executing generator

ReflectionGenerator::getTrace

(PHP 7)

ReflectionGenerator::getTrace — Gets the trace of the executing generator

Описание

public array ReflectionGenerator::getTrace ([ int $options = DEBUG_BACKTRACE_PROVIDE_OBJECT ] )

Get the trace of the currently executing generator.

Список параметров

options

The value of options can be any of the following the following flags.

Available options
Option | Description
DEBUG_BACKTRACE_PROVIDE_OBJECT | Default.
DEBUG_BACKTRACE_IGNORE_ARGS | Don't include the argument information for functions in the stack trace.

Возвращаемые значения

Returns the trace of the currently executing generator.

Примеры

Пример #1 ReflectionGenerator::getTrace() example

<?php
function foo() {
    yield 1;
}

function bar()
{
    yield from foo();
}

function baz()
{
    yield from bar();
}

$gen = baz();
$gen->valid(); // start the generator

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() - Gets the function name of the generator
  • ReflectionGenerator::getThis() - Gets the $this value of the generator


Интерфейс Reflector

(PHP 5, PHP 7)

Введение

Интерфейс Reflector реализуют все экспортируемые Reflection-классы.

Обзор классов

Reflector {
/* Методы */
public static string export ( void )
public string __toString ( void )
}

Содержание

  • Reflector::export — Экспорт
  • Reflector::__toString — Представление в виде строки


Экспорт

  • « Reflector
  • Reflector::__toString »
  • PHP Manual
  • Reflector
  • Экспорт

Reflector::export

(PHP 5, PHP 7)

Reflector::export — Экспорт

Описание

public static string Reflector::export ( void )

Экспорт.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • Reflection::__toString()


Представление в виде строки

  • « Reflector::export
  • ReflectionException »
  • PHP Manual
  • Reflector
  • Представление в виде строки

Reflector::__toString

(PHP 5, PHP 7)

Reflector::__toString — Представление в виде строки

Описание

public string Reflector::__toString ( void )

Представление в виде строки.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Смотрите также

  • ReflectionProperty::export() - Экспорт
  • __toString()


Класс ReflectionException

(PHP 5, PHP 7)

Введение

Класс ReflectionException.

Обзор классов

ReflectionException extends Exception {
/* Свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Функции для работы с переменными

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Функции для работы с переменными
    • boolval — Возвращает логическое значение переменной
    • debug_zval_dump — Выводит строковое представление внутреннего значения zend
    • doubleval — Псевдоним floatval
    • empty — Проверяет, пуста ли переменная
    • floatval — Возвращает значение переменной в виде числа с плавающей точкой
    • get_defined_vars — Возвращает массив всех определенных переменных
    • get_resource_type — Возвращает тип ресурса
    • gettype — Возвращает тип переменной
    • import_request_variables — Импортирует переменные GET/POST/Cookie в глобальную область видимости
    • intval — Возвращает целое значение переменной
    • is_array — Определяет, является ли переменная массивом
    • is_bool — Проверяет, является ли переменная булевой
    • is_callable — Проверяет, может ли значение переменной быть вызвано в качестве функции
    • is_double — Псевдоним is_float
    • is_float — Проверяет, является ли переменная числом с плавающей точкой
    • is_int — Проверяет, является ли переменная переменной целочисленного типа
    • is_integer — Псевдоним is_int
    • 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.

Параметры конфигурации Variables
Имя | По умолчанию | Меняемо | Список изменений
unserialize_callback_func | NULL | PHP_INI_ALL | Доступна с PHP 4.2.0.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

unserialize_callback_func string

Если в процессе десериализации будет обнаружен неопределенный класс, то будет вызвана callback-функция unserialize(). Если указанная callback-функция не определена или не может определить отсутствующий класс, то будет выведено предупреждение.

См. также unserialize() и раздел автозагрузки объектов.


  • « Типы ресурсов
  • Функции для работы с переменными »
  • PHP Manual
  • Функции для работы с переменными
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Функции для работы с переменными

Содержание

  • boolval — Возвращает логическое значение переменной
  • debug_zval_dump — Выводит строковое представление внутреннего значения zend
  • doubleval — Псевдоним floatval
  • empty — Проверяет, пуста ли переменная
  • floatval — Возвращает значение переменной в виде числа с плавающей точкой
  • get_defined_vars — Возвращает массив всех определенных переменных
  • get_resource_type — Возвращает тип ресурса
  • gettype — Возвращает тип переменной
  • import_request_variables — Импортирует переменные GET/POST/Cookie в глобальную область видимости
  • intval — Возвращает целое значение переменной
  • is_array — Определяет, является ли переменная массивом
  • is_bool — Проверяет, является ли переменная булевой
  • is_callable — Проверяет, может ли значение переменной быть вызвано в качестве функции
  • is_double — Псевдоним is_float
  • is_float — Проверяет, является ли переменная числом с плавающей точкой
  • is_int — Проверяет, является ли переменная переменной целочисленного типа
  • is_integer — Псевдоним is_int
  • is_long — Псевдоним is_int
  • is_null — Проверяет, является ли значение переменной равным NULL
  • is_numeric — Проверяет, является ли переменная числом или строкой, содержащей число
  • is_object — Проверяет, является ли переменная объектом
  • is_real — Псевдоним is_float
  • is_resource — Проверяет, является ли переменная ресурсом
  • is_scalar — Проверяет, является ли переменная скалярным значением
  • is_string — Проверяет, является ли переменная строкой
  • isset — Определяет, была ли установлена переменная значением отличным от NULL
  • print_r — Выводит удобочитаемую информацию о переменной
  • serialize — Генерирует пригодное для хранения представление переменной
  • settype — Присваивает переменной новый тип
  • strval — Возвращает строковое значение переменной
  • unserialize — Создает PHP-значение из хранимого представления
  • unset — Удаляет переменную
  • var_dump — Выводит информацию о переменной
  • var_export — Печатает или возвращает интерпретируемое строковое представление переменной


Возвращает логическое значение переменной

  • « Функции для работы с переменными
  • debug_zval_dump »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает логическое значение переменной

boolval

(PHP 5 >= 5.5.0, PHP 7)

boolval — Возвращает логическое значение переменной

Описание

boolean boolval ( mixed $var )

Возвращает значение типа boolean, релевантное переданному значению var.

Список параметров

var

Скалярное значение, которое надо привести к типу boolean.

Возвращаемые значения

Приведенное к типу boolean значение var.

Примеры

Пример #1 Пример использования boolval()

<?php
echo '0:        '.(boolval(0) ? 'true' : 'false')."\n";
echo '42:       '.(boolval(42) ? 'true' : 'false')."\n";
echo '0.0:      '.(boolval(0.0) ? 'true' : 'false')."\n";
echo '4.2:      '.(boolval(4.2) ? 'true' : 'false')."\n";
echo '"":       '.(boolval("") ? 'true' : 'false')."\n";
echo '"string": '.(boolval("string") ? 'true' : 'false')."\n";
echo '"0":      '.(boolval("0") ? 'true' : 'false')."\n";
echo '"1":      '.(boolval("1") ? 'true' : 'false')."\n";
echo '[1, 2]:   '.(boolval([1, 2]) ? 'true' : 'false')."\n";
echo '[]:       '.(boolval([]) ? 'true' : 'false')."\n";
echo 'stdClass: '.(boolval(new stdClass) ? 'true' : 'false')."\n";
?>

Результат выполнения данного примера:

0:        false
42:       true
0.0:      false
4.2:      true
"":       false
"string": true
"0":      false
"1":      true
[1, 2]:   true
[]:       false
stdClass: true

Смотрите также

  • floatval() - Возвращает значение переменной в виде числа с плавающей точкой
  • intval() - Возвращает целое значение переменной
  • strval() - Возвращает строковое значение переменной
  • settype() - Присваивает переменной новый тип
  • is_bool() - Проверяет, является ли переменная булевой
  • Преобразование типов


Выводит строковое представление внутреннего значения zend

  • « boolval
  • doubleval »
  • PHP Manual
  • Функции для работы с переменными
  • Выводит строковое представление внутреннего значения zend

debug_zval_dump

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

debug_zval_dump — Выводит строковое представление внутреннего значения zend

Описание

void debug_zval_dump ( mixed $variable [, mixed $... ] )

Выводит строковое представление внутреннего значения zend.

Список параметров

variable

Обрабатываемая переменная.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования debug_zval_dump()

<?php
$var1 = 'Hello World';
$var2 = '';

$var2 =& $var1;

debug_zval_dump(&$var1);
?>

Результат выполнения данного примера:

&string(11) "Hello World" refcount(3)

Замечание: Предостережение по поводу refcount

Значение refcount, возвращаемое этой функцией, в некоторых случаях неочевидно. Например, разработчик может ожидать, что в приведенном выше примере значение refcount будет 2. Третья ссылка была создана в момент вызова debug_zval_dump().

Это поведение более сложно, когда переменная не передается в функцию debug_zval_dump() по ссылке. Для иллюстрации рассмотрим немного измененный вариант приведенного выше примера:

<?php
$var1 = 'Hello World';
$var2 = '';

$var2 =& $var1;

debug_zval_dump($var1); // в этот раз не передается по ссылке
?>

Результат выполнения данного примера:

string(11) "Hello World" refcount(1)

Почему refcount(1)? Потому что копия $var1 создается при вызове функции.

Эта функция становится еще более сбивающей с толку, когда передается переменная со значением refcount, равным 1 (копированием по значению):

<?php
$var1 = 'Hello World';

debug_zval_dump($var1);
?>

Результат выполнения данного примера:

string(11) "Hello World" refcount(2)

Значение refcount, равное 2, в данном случае совсем непонятно. Особенно учитывая приведенные выше примеры. Так в чем же дело?

Когда переменная имеет единственную ссылку (как было с переменной $var1, перед тем, как ее передали в качестве аргумента в функцию debug_zval_dump()), процессор PHP оптимизирует метод, которым она передается в функцию. Внутренне, PHP рассматривает $var1 как ссылку (таким образом refcount увеличивается для области видимости функции), при условии, что если в переданную ссылку придется производить запись, то будет создана ее копия, но только в момент записи. Такое поведение известно как "copy on write."

Таким образом, если debug_zval_dump() приходится писать в свой единственный параметр (а она не делает этого), то будет создана копия. До этого момента параметр остается ссылкой, приводя к увеличению refcount до 2 в области видимости вызова функции.

Смотрите также

  • var_dump() - Выводит информацию о переменной
  • debug_backtrace() - Выводит стек вызовов функций в массив
  • "Ссылки. Разъяснения"
  • "» Ссылки. Разъяснения (от Derick Rethans)"


Псевдоним floatval

  • « debug_zval_dump
  • empty »
  • PHP Manual
  • Функции для работы с переменными
  • Псевдоним floatval

doubleval

(PHP 4, PHP 5, PHP 7)

doubleval — Псевдоним floatval()

Описание

Эта функция является псевдонимом: floatval().


Проверяет, пуста ли переменная

  • « doubleval
  • floatval »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, пуста ли переменная

empty

(PHP 4, PHP 5, PHP 7)

empty — Проверяет, пуста ли переменная

Описание

bool empty ( mixed $var )

Проверяет, считается ли переменная пустой. Переменная считается пустой, если она не существует или её значение равно FALSE. empty() не генерирует предупреждение если переменная не существует.

Список параметров

var

Проверяемая переменная

Замечание:

До PHP 5.5 empty() проверяет только переменные, и попытка проверить что-то еще вызовет ошибку синтаксиса. Другими словами, следующий код не будет работать: empty(trim($name)). Используйте вместо него trim($name) == false.

Если переменная не существует, предупреждение не генерируется. Это значит, что empty() фактически является точным эквивалентом конструкции !isset($var) || $var == false

Возвращаемые значения

Возвращает FALSE, если var существует, и содержит непустое и ненулевое значение. В противном случае возвращает TRUE.

Следующие значения воспринимаются как пустые:

  • "" (пустая строка)
  • 0 (целое число)
  • 0.0 (дробное число)
  • "0" (строка)
  • NULL
  • FALSE
  • array() (пустой массив)
  • $var; (переменная объявлена, но не имеет значения)

Список изменений

Версия | Описание
5.5.0 | empty() теперь поддерживает выражения, а не только переменные.
5.4.0 | Проверка нечислового индекса строки возвращает TRUE.

Примеры

Пример #1 Простое сравнение empty() и isset().

<?php
$var = 0;

// Принимает значение true, потому что $var пусто
if (empty($var)) {
    echo '$var или 0, или пусто, или вообще не определена';
}

// Принимает значение true, потому что $var определена
if (isset($var)) {
    echo '$var определена, даже если она пустая';
}
?>

Пример #2 empty() и строковые индексы

В PHP 5.4 был изменен способ обработки строковых индексов в empty().

<?php
$expected_array_got_string = 'somestring';
var_dump(empty($expected_array_got_string['some_key']));
var_dump(empty($expected_array_got_string[0]));
var_dump(empty($expected_array_got_string['0']));
var_dump(empty($expected_array_got_string[0.5]));
var_dump(empty($expected_array_got_string['0.5']));
var_dump(empty($expected_array_got_string['0 Mostel']));
?>

Результат выполнения данного примера в PHP 5.3:

bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)

Результат выполнения данного примера в PHP 5.4:

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Замечание:

При использовании функции empty() на недоступных (необъявленных) свойствах объекта будет вызван встроенный метод объекта __isset(), если он определен.

Смотрите также

  • isset() - Определяет, была ли установлена переменная значением отличным от NULL
  • __isset()
  • unset() - Удаляет переменную
  • array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс
  • count() - Подсчитывает количество элементов массива или что-то в объекте
  • strlen() - Возвращает длину строки
  • Таблица сравнения типов


Возвращает значение переменной в виде числа с плавающей точкой

  • « empty
  • get_defined_vars »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает значение переменной в виде числа с плавающей точкой

floatval

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

floatval — Возвращает значение переменной в виде числа с плавающей точкой

Описание

float floatval ( mixed $var )

Возвращает значение переменной var в виде числа с плавающей точкой (float).

Список параметров

var

Может быть любого скалярного типа. floatval() нельзя использовать с объектами, в этом случае возникнет ошибка уровня E_NOTICE и функция вернет 1.

Возвращаемые значения

Значение заданной переменной в виде числа с плавающей точкой. Пустые массивы в качестве аргумента возвращают 0, непустые массивы возвращают 1.

Строки чаще всего возвращают 0, тем не менее результат зависит от самых левых символов строки. Применяются правила приведения к float. apply.

Примеры

Пример #1 Пример использования floatval()

<?php
$var = '122.34343The';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 122.34343
?>

Пример #2 Пример использования floatval() с нечисловыми крайними левыми символами

<?php
$var = 'The122.34343';
$float_value_of_var = floatval($var);
echo $float_value_of_var; // 0
?>

Смотрите также

  • boolval() - Возвращает логическое значение переменной
  • intval() - Возвращает целое значение переменной
  • strval() - Возвращает строковое значение переменной
  • settype() - Присваивает переменной новый тип
  • Манипуляции с типами


Возвращает массив всех определенных переменных

  • « floatval
  • get_resource_type »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает массив всех определенных переменных

get_defined_vars

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

get_defined_vars — Возвращает массив всех определенных переменных

Описание

array get_defined_vars ( void )

Эта функция возвращает многомерный массив, содержащий список всех определенных переменных, будь то переменные окружения, серверные переменные или переменные, определенные пользователем, в той области видимости, в которой была вызвана get_defined_vars().

Возвращаемые значения

Многомерный массив со всеми переменными.

Примеры

Пример #1 Пример использования get_defined_vars()

<?php
$b = array(1, 1, 2, 3, 5, 8);

$arr = get_defined_vars();

// печатает $b
print_r($arr["b"]);

/* печатает путь до интерпретатора PHP (при использовании режима CGI)
 * например, /usr/local/bin/php */
echo $arr["_"];

// печатает параметры командной строки, если они есть
print_r($arr["argv"]);

// печатает все серверные переменные
print_r($arr["_SERVER"]);

// печатает все доступные ключи для массивов переменных
print_r(array_keys(get_defined_vars()));
?>

Смотрите также

  • isset() - Определяет, была ли установлена переменная значением отличным от NULL
  • get_defined_functions() - Возвращает массив всех определённых функций
  • get_defined_constants() - Возвращает ассоциативный массив с именами и значениями всех предопределенных констант


Возвращает тип ресурса

  • « get_defined_vars
  • gettype »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает тип ресурса

get_resource_type

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

get_resource_type — Возвращает тип ресурса

Описание

string get_resource_type ( resource $handle )

Функция возвращает тип данного ресурса.

Список параметров

handle

Определяемый дескриптор ресурса.

Возвращаемые значения

Если данный параметр handle является ресурсом, функция возвращает строку, указывающую его тип. Если тип не определяется этой функцией, возвращаемым значением будет строка Unknown.

Функция возвращает FALSE и вызывает ошибку, если handle не является ресурсом (resource).

Примеры

Пример #1 Пример использования get_resource_type()

<?php
// выводит: mysql link
$c = mysql_connect();
echo get_resource_type($c) . "\n";

// выводит: stream
$fp = fopen("foo", "w");
echo get_resource_type($fp) . "\n";

// выводит: domxml document
$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc) . "\n";
?>


Возвращает тип переменной

  • « get_resource_type
  • import_request_variables »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает тип переменной

gettype

(PHP 4, PHP 5, PHP 7)

gettype — Возвращает тип переменной

Описание

string gettype ( mixed $var )

Возвращает тип PHP-переменной var. Для проверки типа переменной используйте функции is_*.

Список параметров

var

Переменная, у которой проверяется тип.

Возвращаемые значения

Возможными значениями возвращаемой строки являются:

  • "boolean"
  • "integer"
  • "double" (по историческим причинам в случае типа float возвращается "double", а не просто "float")
  • "string"
  • "array"
  • "object"
  • "resource"
  • "NULL"
  • "unknown type"

Примеры

Пример #1 Пример использования gettype()

<?php

$data = array(1, 1., NULL, new stdClass, 'foo');

foreach ($data as $value) {
    echo gettype($value), "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

integer
double
NULL
object
string

Смотрите также

  • settype() - Присваивает переменной новый тип
  • get_class() - Возвращает имя класса, к которому принадлежит объект
  • is_array() - Определяет, является ли переменная массивом
  • is_bool() - Проверяет, является ли переменная булевой
  • is_callable() - Проверяет, может ли значение переменной быть вызвано в качестве функции
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная переменной целочисленного типа
  • is_null() - Проверяет, является ли значение переменной равным NULL
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_object() - Проверяет, является ли переменная объектом
  • is_resource() - Проверяет, является ли переменная ресурсом
  • is_scalar() - Проверяет, является ли переменная скалярным значением
  • is_string() - Проверяет, является ли переменная строкой
  • function_exists() - Возвращает TRUE, если указанная функция определена
  • method_exists() - Проверяет, существует ли метод в данном классе


Импортирует переменные GET/POST/Cookie в глобальную область видимости

  • « gettype
  • intval »
  • PHP Manual
  • Функции для работы с переменными
  • Импортирует переменные GET/POST/Cookie в глобальную область видимости

import_request_variables

(PHP 4 >= 4.1.0, PHP 5 < 5.4.0)

import_request_variables — Импортирует переменные GET/POST/Cookie в глобальную область видимости

Описание

bool import_request_variables ( string $types [, string $prefix ] )

Импортирует переменные GET/POST/Cookie в глобальную область видимости. Это бывает полезно при отключенной директиве register_globals и желании видеть некоторые переменные в глобальной области видимости.

Если необходимо импортировать в глобальную область видимости другие переменные, такие как $_SERVER, воспользуйтесь функцией extract().

Внимание

Данная функция была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Список параметров

types

С помощью параметра types, можно указать, какие переменные запроса необходимо импортировать. Можно использовать символы 'G', 'P' и 'C' соответственно для GET, POST и Cookie. Данные символы не являются регистрозависимыми, поэтому также можно использовать любую комбинацию из 'g', 'p' и 'c'. POST включает в себя информацию о загруженных файлах методом POST.

Замечание:

Имейте в виду, что порядок букв имеет значение, т.е. при использовании "GP" переменные POST перезапишут переменные GET с таким же именем. Любые буквы, отличные от GPC, игнорируются.

prefix

Префикс имени переменной, добавляемый перед всеми именами переменных, импортируемых в глобальную область видимости. То есть, если есть переменная GET с именем "userid", и указан префикс "pref_", то результатом будет глобальная переменная с именем $pref_userid.

Замечание:

Несмотря на то, что prefix - необязательный параметр, будет вызвана ошибка уровня E_NOTICE, если префикс не будет указан или будет указана пустая строка в качестве префикса. Это потенциальная брешь в безопасности. Ошибки уровня Notice не отображаются при использовании уровня отображения ошибок по умолчанию.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования import_request_variables()

<?php
// В примере импортируются переменные GET и POST
// с префиксом "rvar_"
import_request_variables("gp", "rvar_");

echo $rvar_foo;
?>

Смотрите также

  • $_REQUEST
  • register_globals
  • Предопределенные переменные
  • extract() - Импортирует переменные из массива в текущую таблицу символов


Возвращает целое значение переменной

  • « import_request_variables
  • is_array »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает целое значение переменной

intval

(PHP 4, PHP 5, PHP 7)

intval — Возвращает целое значение переменной

Описание

int intval ( mixed $var [, int $base = 10 ] )

Возвращает целое значение переменной var, используя указанное основание системы исчисления base для преобразования (по умолчанию основание равно 10). intval() нельзя использовать с объектами, попытка это сделать вызовет ошибку уровня E_NOTICE и вернет значение 1.

Список параметров

var

Скалярное значение для конвертации в целое

base

Основание системы исчисления для преобразования

Замечание:

Если base равно 0, основание системы исчисления определяется форматом параметра var:

  • если строка включает префикс "0x" (или "0X"), основание выбирается равным 16 (шестнадцатеричным);
  • иначе, если строка начинается с "0", основание равно 8 (восьмеричное);
  • иначе, основание выбирается равным 10 (десятеричным).

Возвращаемые значения

Целое значение переменной var в случае успеха, или 0 в случае неудачи. Для пустых массивов возвращается 0, для непустых возвращается 1.

Максимальное значение зависит от операционной системы. В 32-х битных системах максимальное знаковое целое лежит в диапазоне от -2147483648 до 2147483647. Так, например, в такой системе, intval('1000000000000') вернет 2147483647. Максимальное знаковое целое значение для 64-х битных систем - 9223372036854775807.

Для строк функция скорее всего вернет 0, хотя это зависит от первого символа в строке. Применяются общие правила преобразований в целые.

Примеры

Пример #1 Примеры использования intval()

Следующие примеры приведены для 32-х битной системы.

<?php
echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
echo intval(array());                 // 0
echo intval(array('foo', 'bar'));     // 1
?>

Примечания

Замечание:

Параметр base применяется только в том случае, если параметр var является строкой.

Список изменений

Версия | Описание
5.1.0 | Генерирует ошибку уровня E_NOTICE и возвращает 1, если в качестве var передан объект.

Смотрите также

  • boolval() - Возвращает логическое значение переменной
  • floatval() - Возвращает значение переменной в виде числа с плавающей точкой
  • strval() - Возвращает строковое значение переменной
  • settype() - Присваивает переменной новый тип
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • Манипуляции с типами
  • Математические Функции Произвольной Точности BCMath


Определяет, является ли переменная массивом

  • « intval
  • is_bool »
  • PHP Manual
  • Функции для работы с переменными
  • Определяет, является ли переменная массивом

is_array

(PHP 4, PHP 5, PHP 7)

is_array — Определяет, является ли переменная массивом

Описание

bool is_array ( mixed $var )

Определяет, является ли данная переменная массивом.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если переменная var является массивом array, или FALSE в противном случае.

Примеры

Пример #1 Проверяет, является ли переменная массивом

<?php
$yes = array('это', 'массив');

echo is_array($yes) ? 'Массив' : 'Не массив';
echo "\n";

$no = 'это строка';

echo is_array($no) ? 'Массив' : 'Не массив';
?>

Результат выполнения данного примера:

Массив
Не массив

Смотрите также

  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная переменной целочисленного типа
  • is_string() - Проверяет, является ли переменная строкой
  • is_object() - Проверяет, является ли переменная объектом


Проверяет, является ли переменная булевой

  • « is_array
  • is_callable »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная булевой

is_bool

(PHP 4, PHP 5, PHP 7)

is_bool — Проверяет, является ли переменная булевой

Описание

bool is_bool ( mixed $var )

Проверяет, является ли данная переменная булевой.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является переменной типа boolean, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_bool()

<?php
$a = false;
$b = 0;

// Так как $a является булевой переменной, функция вернет true
if (is_bool($a) === true) {
    echo "Да, это булевая переменная";
}

// Так как $b не является булевой переменной, функция вернет false
if (is_bool($b) === false) {
    echo "Нет, это не булевая переменная";
}
?>

Смотрите также

  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная переменной целочисленного типа
  • is_string() - Проверяет, является ли переменная строкой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом


Проверяет, может ли значение переменной быть вызвано в качестве функции

  • « is_bool
  • is_double »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, может ли значение переменной быть вызвано в качестве функции

is_callable

(PHP 4 >= 4.0.6, PHP 5, PHP 7)

is_callable — Проверяет, может ли значение переменной быть вызвано в качестве функции

Описание

bool is_callable ( mixed $var [, bool $syntax_only = false [, string &$callable_name ]] )

Проверяет, может ли значение переменной быть вызвано в качестве функции. С помощью данной функции можно проверить, что простая переменная содержит корректное имя функции, или что массив содержит правильно заданный объект и имя метода.

Список параметров

var

Значение для проверки

syntax_only

Если равен TRUE, функция только проверяет, что name может быть функцией или методом. В этом случае будут отклоняться переменные, которые являются ни строкой, ни массивом c корректной структурой для использования в качестве callback-функции. Корректная структура массива предполагает наличие только двух элементов, первый из которых - объект или строка, а второй - только строка.

callable_name

Получает "имя для вызова". В примере ниже это "someClass::someMethod". Следует иметь ввиду, что хотя запись someClass::SomeMethod() означает вызываемый статический метод, в данном случае это не так.

Возвращаемые значения

Возвращает TRUE, если var может быть вызвана, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_callable()

<?php
//  Как проверить переменную, чтобы узнать, может ли она быть вызвана
//  как функция.

//
//  Простая переменная, содержащая имя функции
//

function someFunction()
{
}

$functionVariable = 'someFunction';

var_dump(is_callable($functionVariable, false, $callable_name));  // bool(true)

echo $callable_name, "\n";  // someFunction

//
//  Массив, содержащий метод класса
//

class someClass {

  function someMethod()
  {
  }

}

$anObject = new someClass();

$methodVariable = array($anObject, 'someMethod');

var_dump(is_callable($methodVariable, true, $callable_name));  //  bool(true)

echo $callable_name, "\n";  //  someClass::someMethod

?>

Пример #2 is_callable() и конструкторы

Начиная с PHP 5.3.0, функция is_callable() не считает конструкторы за callable. Это относится как к конструкторам в стиле PHP 5 (__construct), так и к конструкторам в стиле PHP 4 (т.е. методам с таким же именем, как и сам класс). В более ранних версиях, конструкторы считались как callable.

<?php

class Foo
{
    public function __construct() {}
    public function foo() {}
}

var_dump(
    is_callable(array('Foo', '__construct')),
    is_callable(array('Foo', 'foo'))
);

Результат выполнения данного примера:

bool(false)
bool(false)

Смотрите также

  • function_exists() - Возвращает TRUE, если указанная функция определена
  • method_exists() - Проверяет, существует ли метод в данном классе


Псевдоним is_float

  • « is_callable
  • is_float »
  • PHP Manual
  • Функции для работы с переменными
  • Псевдоним is_float

is_double

(PHP 4, PHP 5, PHP 7)

is_double — Псевдоним is_float()

Описание

Эта функция является псевдонимом: is_float().


Проверяет, является ли переменная числом с плавающей точкой

  • « is_double
  • is_int »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная числом с плавающей точкой

is_float

(PHP 4, PHP 5, PHP 7)

is_float — Проверяет, является ли переменная числом с плавающей точкой

Описание

bool is_float ( mixed $var )

Проверяет, является ли данная переменная числом с плавающей точкой.

Замечание:

Чтобы проверить, является ли переменная числом или строкой, содержащей число (как поле ввода в форме, которое всегда является строкой), используйте is_numeric().

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является переменной типа float, FALSE в противном случае.

Примеры

Пример #1 Пример использования is_float()

var_dump(is_float(27.25));
var_dump(is_float('abc'));
var_dump(is_float(23));
var_dump(is_float(23.5));
var_dump(is_float(1e7));  //Scientific Notation
var_dump(is_float(true));
?>

Результат выполнения данного примера:

bool(true)
bool(false)
bool(false)
bool(true)
bool(true)
bool(false)

Смотрите также

  • is_bool() - Проверяет, является ли переменная булевой
  • is_int() - Проверяет, является ли переменная переменной целочисленного типа
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_string() - Проверяет, является ли переменная строкой
  • is_array() - Определяет, является ли переменная массивом
  • is_object() - Проверяет, является ли переменная объектом


Проверяет, является ли переменная переменной целочисленного типа

  • « is_float
  • is_integer »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная переменной целочисленного типа

is_int

(PHP 4, PHP 5, PHP 7)

is_int — Проверяет, является ли переменная переменной целочисленного типа

Описание

bool is_int ( mixed $var )

Проверяет, является ли тип переменной целочисленным.

Замечание:

Чтобы проверить, что переменная является числом или строкой, содержащей число (как поле ввода в форме, которое всегда является строкой), используйте is_numeric().

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является целым числом, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_int()

<?php
$values = array(23, "23", 23.5, "23.5", null, true, false);
foreach ($values as $value) {
    echo "is_int(";
    var_export($value);
    echo ") = ";
    var_dump(is_int($value));
}
?>

Результат выполнения данного примера:

is_int(23) = bool(true)
is_int('23') = bool(false)
is_int(23.5) = bool(false)
is_int('23.5') = bool(false)
is_int(NULL) = bool(false)
is_int(true) = bool(false)
is_int(false) = bool(false)

Смотрите также

  • is_bool() - Проверяет, является ли переменная булевой
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_string() - Проверяет, является ли переменная строкой
  • is_array() - Определяет, является ли переменная массивом
  • is_object() - Проверяет, является ли переменная объектом


Псевдоним is_int

  • « is_int
  • is_long »
  • PHP Manual
  • Функции для работы с переменными
  • Псевдоним is_int

is_integer

(PHP 4, PHP 5, PHP 7)

is_integer — Псевдоним is_int()

Описание

Эта функция является псевдонимом: is_int().


Псевдоним is_int

  • « is_integer
  • is_null »
  • PHP Manual
  • Функции для работы с переменными
  • Псевдоним is_int

is_long

(PHP 4, PHP 5, PHP 7)

is_long — Псевдоним is_int()

Описание

Эта функция является псевдонимом: is_int().


Проверяет, является ли значение переменной равным NULL

  • « is_long
  • is_numeric »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли значение переменной равным NULL

is_null

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

is_null — Проверяет, является ли значение переменной равным NULL

Описание

bool is_null ( mixed $var )

Проверяет, является ли значение данной переменной равным NULL.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если значение var равно null, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_null()

<?php

error_reporting(E_ALL);

$foo = NULL;
var_dump(is_null($inexistent), is_null($foo));

?>
Notice: Undefined variable: inexistent in ...
bool(true)
bool(true)

Смотрите также

  • The NULL type
  • isset() - Определяет, была ли установлена переменная значением отличным от NULL
  • is_bool() - Проверяет, является ли переменная булевой
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная переменной целочисленного типа
  • is_string() - Проверяет, является ли переменная строкой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом


Проверяет, является ли переменная числом или строкой, содержащей число

  • « is_null
  • is_object »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная числом или строкой, содержащей число

is_numeric

(PHP 4, PHP 5, PHP 7)

is_numeric — Проверяет, является ли переменная числом или строкой, содержащей число

Описание

bool is_numeric ( mixed $var )

Проверяет, является ли данная переменная числом. Строки, содержащие числа, состоят из необязательного знака, любого количества цифр, необязательной десятичной части и необязательной экспоненциальной части. Так, +0123.45e6 является верным числовым значением. Шестнадцатеричная (0xf4c3b00c) и двоичная (0b10100111001) записи не допускаются.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является числом или строкой, содержащей число или FALSE в противном случае.

Примеры

Пример #1 Примеры использованияis_numeric()

<?php
$tests = array(
    "42",
    1337,
    0x539,
    02471,
    0b10100111001,
    1337e0,
    "not numeric",
    array(),
    9.1
);

foreach ($tests as $element) {
    if (is_numeric($element)) {
        echo "'{$element}' - число", PHP_EOL;
    } else {
        echo "'{$element}' - НЕ число", PHP_EOL;
    }
}
?>

Результат выполнения данного примера:

'42' - число
'1337' - число
'1337' - число
'1337' - число
'1337' - число
'1337' - число
'not numeric' - НЕ число
'Array' - НЕ число
'9.1' - число

Список изменений

Версия | Описание
7.0.0 | Строки содержащие шестнадцатиричную (0xf4c3b00c) запись, более не считаются числом. То есть is_numeric() вернет FALSE.

Смотрите также

  • ctype_digit() - Проверяет на наличие цифровых символов в строке
  • is_bool() - Проверяет, является ли переменная булевой
  • is_null() - Проверяет, является ли значение переменной равным NULL
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная переменной целочисленного типа
  • is_string() - Проверяет, является ли переменная строкой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом


Проверяет, является ли переменная объектом

  • « is_numeric
  • is_real »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная объектом

is_object

(PHP 4, PHP 5, PHP 7)

is_object — Проверяет, является ли переменная объектом

Описание

bool is_object ( mixed $var )

Проверяет, является ли данная переменная объектом.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является объектом, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_object()

<?php
// Объявляем простую функцию, которая возвращает
// массив из нашего объекта
function get_students($obj)
{
    if (!is_object($obj)) {
        return false;
    }

    return $obj->students;
}

// Создаем новый экземпляр класса
// и заполняем некоторыми значениями

$obj = new stdClass();
$obj->students = array('Kalle', 'Ross', 'Felipe');

var_dump(get_students(null));
var_dump(get_students($obj));
?>

Примечания

Замечание:

Функция вернет FALSE, если применяется к десериализованному объекту, у которого отсутствует объявление класса (даже если gettype() возвращает object).

Смотрите также

  • is_bool() - Проверяет, является ли переменная булевой
  • is_int() - Проверяет, является ли переменная переменной целочисленного типа
  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_string() - Проверяет, является ли переменная строкой
  • is_array() - Определяет, является ли переменная массивом


Псевдоним is_float

  • « is_object
  • is_resource »
  • PHP Manual
  • Функции для работы с переменными
  • Псевдоним is_float

is_real

(PHP 4, PHP 5, PHP 7)

is_real — Псевдоним is_float()

Описание

Эта функция является псевдонимом: is_float().


Проверяет, является ли переменная ресурсом

  • « is_real
  • is_scalar »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная ресурсом

is_resource

(PHP 4, PHP 5, PHP 7)

is_resource — Проверяет, является ли переменная ресурсом

Описание

bool is_resource ( mixed $var )

Проверяет, является ли данная переменная ресурсом.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является ресурсом (тип resource), или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_resource()

<?php

$db_link = @mysql_connect('localhost', 'mysql_user', 'mysql_pass');
if (!is_resource($db_link)) {
    die('Ошибка соединения : ' . mysql_error());
}

?>

Примечания

Замечание:

Функция is_resource() не производит строгой проверки типа; она вернет FALSE если var является ресурсом, который был закрыт.

Смотрите также

  • "Тип "ресурс""
  • get_resource_type() - Возвращает тип ресурса


Проверяет, является ли переменная скалярным значением

  • « is_resource
  • is_string »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная скалярным значением

is_scalar

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

is_scalar — Проверяет, является ли переменная скалярным значением

Описание

bool is_scalar ( mixed $var )

Проверяет, является ли данная переменная скалярным значением.

Скалярные переменные - это переменные с типами integer, float, string и boolean. Типы array, object и resource не являются скалярными.

Замечание:

is_scalar() не считает переменные типа resource скалярными, так как ресурсы являются абстрактными типами данных, которые в настоящее время основаны на целом типе. Не стоит полагаться на данную деталь реализации, так как она может измениться.

Замечание:

is_scalar() не считает NULL скаляром.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является скалярным значением, или FALSE в противном случае.

Примеры

Пример #1 Пример использования is_scalar()

<?php
function show_var($var)
{
    if (is_scalar($var)) {
        echo $var;
    } else {
        var_dump($var);
    }
}
$pi = 3.1416;
$proteins = array("hemoglobin", "cytochrome c oxidase", "ferredoxin");

show_var($pi);
show_var($proteins)

?>

Результат выполнения данного примера:

3.1416
array(3) {
  [0]=>
  string(10) "hemoglobin"
  [1]=>
  string(20) "cytochrome c oxidase"
  [2]=>
  string(10) "ferredoxin"
}

Смотрите также

  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная переменной целочисленного типа
  • is_numeric() - Проверяет, является ли переменная числом или строкой, содержащей число
  • is_real() - Псевдоним is_float
  • is_string() - Проверяет, является ли переменная строкой
  • is_bool() - Проверяет, является ли переменная булевой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом


Проверяет, является ли переменная строкой

  • « is_scalar
  • isset »
  • PHP Manual
  • Функции для работы с переменными
  • Проверяет, является ли переменная строкой

is_string

(PHP 4, PHP 5, PHP 7)

is_string — Проверяет, является ли переменная строкой

Описание

bool is_string ( mixed $var )

Проверяет, является ли данная переменная строкой.

Список параметров

var

Проверяемая переменная.

Возвращаемые значения

Возвращает TRUE, если var является строкой, и FALSE в противном случае.

Примеры

Пример #1 Пример использования is_string()

<?php
$values = array(false, true, null, 'abc', '23', 23, '23.5', 23.5, '', ' ', '0', 0);
foreach ($values as $value) {
    echo "is_string(";
    var_export($value);
    echo ") = ";
    echo var_dump(is_string($value));
}
?>

Результат выполнения данного примера:

is_string(false) = bool(false)
is_string(true) = bool(false)
is_string(NULL) = bool(false)
is_string('abc') = bool(true)
is_string('23') = bool(true)
is_string(23) = bool(false)
is_string('23.5') = bool(true)
is_string(23.5) = bool(false)
is_string('') = bool(true)
is_string(' ') = bool(true)
is_string('0') = bool(true)
is_string(0) = bool(false)

Смотрите также

  • is_float() - Проверяет, является ли переменная числом с плавающей точкой
  • is_int() - Проверяет, является ли переменная переменной целочисленного типа
  • is_bool() - Проверяет, является ли переменная булевой
  • is_object() - Проверяет, является ли переменная объектом
  • is_array() - Определяет, является ли переменная массивом


Определяет, была ли установлена переменная значением отличным от NULL

  • « is_string
  • print_r »
  • PHP Manual
  • Функции для работы с переменными
  • Определяет, была ли установлена переменная значением отличным от NULL

isset

(PHP 4, PHP 5, PHP 7)

isset — Определяет, была ли установлена переменная значением отличным от NULL

Описание

bool isset ( mixed $var [, mixed $... ] )

Определяет, была ли установлена переменная значением отличным от NULL

Если переменная была удалена с помощью unset(), то она больше не считается установленной. isset() вернет FALSE, если проверяемая переменная имеет значение NULL. Следует помнить, что null-байт ("\0") не является эквивалентом константе PHP NULL.

Если были переданы несколько параметров, то isset() вернет TRUE только в том случае, если все параметры определены. Проверка происходит слева направо и заканчивается, как только будет встречена неопределенная переменная.

Список параметров

var

Проверяемая переменная.

...

Другая переменная ...

Возвращаемые значения

Возвращает TRUE, если var определена и ее значение отлично от NULL, и FALSE в противном случае.

Список изменений

Версия | Описание
5.4.0 | Проверка нечислового индекса строки теперь возвращает FALSE.

Примеры

Пример #1 Пример использования isset()

<?php

$var = '';

// Проверка вернет TRUE, поэтому текст будет напечатан.
if (isset($var)) {
    echo "Эта переменная определена, поэтому меня и напечатали.";
}

// В следующем примере мы используем var_dump для вывода
// значения, возвращаемого isset().

$a = "test";
$b = "anothertest";

var_dump(isset($a));      // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a);

var_dump(isset($a));     // FALSE
var_dump(isset($a, $b)); // FALSE

$foo = NULL;
var_dump(isset($foo));   // FALSE

?>

Функция также работает с элементами массивов:

<?php

$a = array ('test' => 1, 'hello' => NULL, 'pie' => array('a' => 'apple'));

var_dump(isset($a['test']));            // TRUE
var_dump(isset($a['foo']));             // FALSE
var_dump(isset($a['hello']));           // FALSE

// Элемент с ключом 'hello' равен NULL, поэтому он считается неопределенным
// Если Вы хотите проверить существование ключей со значением NULL, используйте:
var_dump(array_key_exists('hello', $a)); // TRUE

// Проверка вложенных элементов массива
var_dump(isset($a['pie']['a']));        // TRUE
var_dump(isset($a['pie']['b']));        // FALSE
var_dump(isset($a['cake']['a']['b']));  // FALSE

?>

Пример #2 isset() и строковые индексы

В PHP 5.4 был изменен способ обработки строковых индексов в isset().

<?php
$expected_array_got_string = 'somestring';
var_dump(isset($expected_array_got_string['some_key']));
var_dump(isset($expected_array_got_string[0]));
var_dump(isset($expected_array_got_string['0']));
var_dump(isset($expected_array_got_string[0.5]));
var_dump(isset($expected_array_got_string['0.5']));
var_dump(isset($expected_array_got_string['0 Mostel']));
?>

Результат выполнения данного примера в PHP 5.3:

bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

Результат выполнения данного примера в PHP 5.4:

bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)

Примечания

Внимание

isset() работает только с переменными, поэтому передача в качестве параметров любых других значений приведет к ошибке парсинга. Для проверки определения констант используйте функцию defined().

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Замечание:

При использовании isset() на недоступных свойствах объекта, будет вызываться перегруженный метод __isset(), если он существует.

Смотрите также

  • empty() - Проверяет, пуста ли переменная
  • __isset()
  • unset() - Удаляет переменную
  • defined() - Проверяет существование указанной именованной константы
  • Таблица сравнения типов
  • array_key_exists() - Проверяет, присутствует ли в массиве указанный ключ или индекс
  • is_null() - Проверяет, является ли значение переменной равным NULL
  • Оператор управления ошибками @


Выводит удобочитаемую информацию о переменной

  • « isset
  • serialize »
  • PHP Manual
  • Функции для работы с переменными
  • Выводит удобочитаемую информацию о переменной

print_r

(PHP 4, PHP 5, PHP 7)

print_r — Выводит удобочитаемую информацию о переменной

Описание

mixed print_r ( mixed $expression [, bool $return = false ] )

print_r() выводит информацию о переменной в удобочитаемом виде.

print_r(), var_dump() и var_export() могут также показывать защищенные (protected) и закрытые (private) атрибуты объектов в PHP 5. Статические элементы класса не будут отображены.

Список параметров

expression

Выражение для вывода на экран.

return

Если вы хотите перехватить вывод print_r(), используйте параметр return. Если его значение равно TRUE, то print_r() вернет результат вывода вместо вывода в браузер (который производится по умолчанию).

Возвращаемые значения

Если в функцию передаются значения типов string, integer или float, будет напечатано само значение. Если передается массив array, значения будут напечатаны в формате, показывающем ключи и элементы массива. Аналогичный формат вывода используется для объектов.

Если параметр return установлен в TRUE, данная функция вернет строку (string). В противном случае возвращаемое значение будет равно TRUE.

Примечания

Замечание:

При использовании параметра return данная функция использует внутреннюю буферизацию вывода, поэтому она не может быть использована внутри callback-функции ob_start().

Примеры

Пример #1 Пример использования print_r()

<pre>
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
</pre>

Результат выполнения данного примера:

<pre>
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)
</pre>

Пример #2 Пример использования параметра return

<?php
$b = array ('m' => 'monkey', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
$results = print_r($b, true); // $results теперь содержит вывод print_r
?>

Смотрите также

  • ob_start() - Включение буферизации вывода
  • var_dump() - Выводит информацию о переменной
  • var_export() - Печатает или возвращает интерпретируемое строковое представление переменной


Генерирует пригодное для хранения представление переменной

  • « print_r
  • settype »
  • PHP Manual
  • Функции для работы с переменными
  • Генерирует пригодное для хранения представление переменной

serialize

(PHP 4, PHP 5, PHP 7)

serialize — Генерирует пригодное для хранения представление переменной

Описание

string serialize ( mixed $value )

Генерирует пригодное для хранения представление переменной.

Это полезно для хранения или передачи значений PHP между скриптами без потери их типа и структуры.

Для превращения сериализованной строки обратно в PHP-значение, используйте функцию unserialize().

Список параметров

value

Значение, которое необходимо сериализовать. serialize() обрабатывает все типы, кроме resource. Возможно также сериализовать массивы, которые содержат ссылки на себя. Циклические ссылки внутри сериализуемого массива/объекта также сохраняются. Любые другие ссылки будут потеряны.

При сериализации объекта PHP пытается вызвать магический метод __sleep() перед сериализацией. Это делается для того, чтобы позволить объекту в последний момент произвести очистку и тому подобные операции перед сериализацией. Аналогично, когда объект восстанавливается функцией unserialize(), вызывается магический метод __wakeup().

Замечание:

В начало имен приватных членов объекта дополняется имя класса, а в начало имен защищенных членов '*'. Эти дополненные значения окружаются нулевым байтом (0x00) с обеих сторон.

Возвращаемые значения

Возвращает строку, содержащую потоковое представление переменной value, которая может быть сохранена где угодно.

Обратите внимание, что это бинарная строка, которая может включать нуль-байты, и ее нужно хранить и обрабатывать соответствующим образом. Например, вывод функции serialize() лучше хранить в BLOB поле базы данных, а не в полях типа CHAR или TEXT.

Примеры

Пример #1 Пример использования serialize()

<?php
// $session_data содержит многомерный массив с сессионной
// информацией о текущем пользователе. Мы используем serialize() для сохранения
// этой информации в базе данных в конце запроса.

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn,
      "UPDATE sessions SET data = ? WHERE id = ?");
$sqldata = array (serialize($session_data), $_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, $sqldata)) {
    $stmt = odbc_prepare($conn,
     "INSERT INTO sessions (id, data) VALUES(?, ?)");
    if (!odbc_execute($stmt, $sqldata)) {
        /* Код, выполняемый при ошибке.. */
    }
}
?>

Примечания

Замечание:

Заметьте, что много встроенных в PHP объектов не может быть сериализовано. Однако, те из них, которые поддерживают эту возможность, реализуют или интерфейс Serializable, или магические методы __sleep() и __wakeup(). Если встроенный класс не удовлетворяет этим требованиям, он не может быть надежно сериализован.

Исторически есть некоторые исключения из вышеуказанного правила, когда некоторые внутренние объекты могут быть сериализованы без реализации интерфейса или магических методов. К примеру, ArrayObject до PHP 5.2.0.

Внимание

При сериализации объектов функцией serialize(), лидирующий обратный слеш не будет включен в имя класса с указанным пространством имен, для наилучшей обратной совместимости.

Смотрите также

  • unserialize() - Создает PHP-значение из хранимого представления
  • var_export() - Печатает или возвращает интерпретируемое строковое представление переменной
  • json_encode() - Возвращает JSON-представление данных
  • Serializing Objects
  • __sleep()
  • __wakeup()


Присваивает переменной новый тип

  • « serialize
  • strval »
  • PHP Manual
  • Функции для работы с переменными
  • Присваивает переменной новый тип

settype

(PHP 4, PHP 5, PHP 7)

settype — Присваивает переменной новый тип

Описание

bool settype ( mixed &$var , string $type )

Присваивает переменной var тип type.

Список параметров

var

Преобразуемая переменная.

type

Допустимыми значениями параметра type являются:

  • "boolean" или "bool"
  • "integer" или "int"
  • "float" или "double"
  • "string"
  • "array"
  • "object"
  • "null"

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования settype()

<?php
$foo = "5bar"; // строка
$bar = true;   // булевое значение

settype($foo, "integer"); // $foo теперь 5   (целое)
settype($bar, "string");  // $bar теперь "1" (строка)
?>

Примечания

Замечание:

Максимальное значение для "int" равно PHP_INT_MAX.

Смотрите также

  • gettype() - Возвращает тип переменной
  • Приведение типов
  • Манипуляции с типами


Возвращает строковое значение переменной

  • « settype
  • unserialize »
  • PHP Manual
  • Функции для работы с переменными
  • Возвращает строковое значение переменной

strval

(PHP 4, PHP 5, PHP 7)

strval — Возвращает строковое значение переменной

Описание

string strval ( mixed $var )

Возвращает строковое значение переменной. См. документацию по типу string для более подробной информации о преобразовании в строку.

Эта функция не производит форматирование возвращаемого значения. Если необходимо привести числовое значение к строке с особым форматом, воспользуйтесь sprintf() или number_format().

Список параметров

var

Переменная, которую необходимо преобразовать в строку.

var может быть любого скалярного типа или объектом, который реализует метод __toString(). strval() нельзя применить к массиву или объекту, которые не реализуют метод __toString().

Возвращаемые значения

Строковое значение (string) параметра var.

Примеры

Пример #1 Пример использования strval() с магическим методом PHP 5 __toString().

<?php
class StrValTest
{
    public function __toString()
    {
        return __CLASS__;
    }
}

// Выводит 'StrValTest'
echo strval(new StrValTest);
?>

Смотрите также

  • boolval() - Возвращает логическое значение переменной
  • floatval() - Возвращает значение переменной в виде числа с плавающей точкой
  • intval() - Возвращает целое значение переменной
  • settype() - Присваивает переменной новый тип
  • sprintf() - Возвращает отформатированную строку
  • number_format() - Форматирует число с разделением групп
  • Манипуляции с типами
  • __toString()


Создает PHP-значение из хранимого представления

  • « strval
  • unset »
  • PHP Manual
  • Функции для работы с переменными
  • Создает PHP-значение из хранимого представления

unserialize

(PHP 4, PHP 5, PHP 7)

unserialize — Создает PHP-значение из хранимого представления

Описание

mixed unserialize ( string $str [, array $options ] )

unserialize() принимает одну сериализованную переменную и конвертирует ее обратно в значение PHP.

Внимание

Не передавайте непроверенные пользовательские данные в unserialize(). Десериализация может создать код, который выполнится при создании объекта или при автоматической закрузке кода, чем могут оспользоваться недобросовестные пользователи. Лучше использовать более безопасные стандартные форматы обмена данными, такие как JSON (с помощью функций json_decode() и json_encode()), если вам нужно передать сериализованные данные пользователю.

Если вам нужно десериализовать данные из внешних источников, используйте функцию hash_hmac() для проверки этих данных. Убедитесь, что эти данные кроме вас никто не изменял.

Список параметров

str

Сериализованная строка.

Если переменная, требующая десериализации, является объектом, то после успешного восстановления объекта PHP автоматически попытается вызвать магический метод __wakeup() (если он существует).

Замечание: Директива unserialize_callback_func

Существует возможность указать функцию обратного вызова, которая будет вызвана, если в процессе десериализации должен быть проинициализирован неопределенный класс. (для предотвращения получения неполного объекта object "__PHP_Incomplete_Class"). Используйте php.ini, ini_set() или .htaccess для определения функции 'unserialize_callback_func'. Данная функция будет вызываться каждый раз, когда должен быть проинициализирован неопределенный класс. Для отключения этой возможности просто оставьте значение директивы пустым.

options

Любые опции unserialize() в виде ассоциативного массива.

Корректные опции
Имя | Тип | Описание
allowed_classes | mixed | Массив имен классов, которые должны быть приняты, FALSE для указания не принимать никаких классов или TRUE для приема всех. Если эта опция задана, и unserialize() обнаружит объект неприемлемого класса, то он не будет принят, а вместо этого, инстанцируется как объект класса __PHP_Incomplete_Class. Если опция не задана, то она будет считаться установленной в TRUE: PHP будет пытаться инстанцировать объекты любого класса.

Возвращаемые значения

Возвращается преобразованное значение, которое принимает один из типов boolean, integer, float, string, array или object.

В случае, если переданная строка не поддается десериализации, возвращается FALSE и генерируется E_NOTICE.

Список изменений

Версия | Описание
7.0.0 | Добавлен параметр options.
5.6.0 | Изменение сериализованных данных с заменой C: на O:, для принудительного создания объекта без вызова конструктора, теперь будет проходить успешно.

Примеры

Пример #1 Пример использования unserialize()

<?php
// Мы используем функцию unserialize() для загрузки сессионных данных в массив
// $session_data из строки, извлекаемой из базы данных.
// Данный пример дополняет пример, описывающий использование serialize().

$conn = odbc_connect("webdb", "php", "chicken");
$stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?");
$sqldata = array($_SERVER['PHP_AUTH_USER']);
if (!odbc_execute($stmt, $sqldata) || !odbc_fetch_into($stmt, $tmp)) {
    // если процедура извлечения данных не удалась, то инициализируем пустой массив
    $session_data = array();
} else {
    // сейчас у нас должны быть сериализованные данные в $tmp[0].
    $session_data = unserialize($tmp[0]);
    if (!is_array($session_data)) {
        // что-то пошло не так, инициализируем пустой массив
        $session_data = array();
    }
}
?>

Пример #2 Пример использования unserialize_callback_func

<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';

ini_set('unserialize_callback_func', 'mycallback'); // определяем свою функцию обратного вызова

function mycallback($classname)
{
    // просто подключаете файл, содержащий определение класса
    // $classname указывает, для какого класса требуется определение
}
?>

Примечания

Внимание

FALSE возвращается как в случае ошибки, так и в случае, если десериализуется сериализованное значение FALSE. Этот особый случай можно отловить, используя сравнение str со значением serialize(false), или перехватив сгенерированную ошибку E_NOTICE.

Смотрите также

  • json_encode() - Возвращает JSON-представление данных
  • json_decode() - Декодирует JSON строку
  • hash_hmac() - Генерация хеш-кода на основе ключа, используя метод HMAC
  • serialize() - Генерирует пригодное для хранения представление переменной
  • Автозагрузка объектов
  • unserialize_callback_func
  • __wakeup()


Удаляет переменную

  • « unserialize
  • var_dump »
  • PHP Manual
  • Функции для работы с переменными
  • Удаляет переменную

unset

(PHP 4, PHP 5, PHP 7)

unset — Удаляет переменную

Описание

void unset ( mixed $var [, mixed $... ] )

unset() удаляет перечисленные переменные.

Поведение unset() внутри пользовательской функции может отличаться, в зависимости от того, какой тип имеет переменная, которую необходимо удалить.

Если переменная, объявленная глобальной, удаляется внутри функции, то будет удалена только локальная переменная. Переменная в области видимости вызова функции сохранит то же значение, что и до вызова unset().

<?php
function destroy_foo()
{
    global $foo;
    unset($foo);
}

$foo = 'bar';
destroy_foo();
echo $foo;
?>

Результат выполнения данного примера:

bar

Если необходимо удалить глобальную переменную внутри функции, то для этого нужно использовать массив $GLOBALS:

<?php
function foo()
{
    unset($GLOBALS['bar']);
}

$bar = "something";
foo();
?>

Если переменная, которая передается ПО ССЫЛКЕ, удаляется внутри функции, то будет удалена только локальная переменная. Переменная в области видимости вызова функции сохранит то же значение, что и до вызова unset().

<?php
function foo(&$bar)
{
    unset($bar);
    $bar = "blah";
}

$bar = 'something';
echo "$bar\n";

foo($bar);
echo "$bar\n";
?>

Результат выполнения данного примера:

something
something

Если статическая переменная удаляется внутри функции, unset() удалит переменную только в контексте дальнейшего выполнения функции. При последующем вызове предыдущее значение переменной будет восстановлено.

<?php
function foo()
{
    static $bar;
    $bar++;
    echo "До удаления: $bar, ";
    unset($bar);
    $bar = 23;
    echo "После удаления: $bar\n";
}

foo();
foo();
foo();
?>

Результат выполнения данного примера:

До удаления: 1, После удаления: 23
До удаления: 2, После удаления: 23
До удаления: 3, После удаления: 23

Список параметров

var

Удаляемая переменная.

...

Другая переменная ...

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования unset()

<?php
// удаляем одну переменную
unset($foo);

// удаляем один элемент массива
unset($bar['quux']);

// удаляем несколько переменных
unset($foo1, $foo2, $foo3);
?>

Пример #2 Использование приведения типа (unset)

Приведение типа (unset) часто путают с функцией unset(). Приведение типа (unset) приводит только к значению NULL и было добавлено исключительно для полноты реализации. Оно не меняет значение приводимой переменной.

<?php
$name = 'Felipe';

var_dump((unset) $name);
var_dump($name);
?>

Результат выполнения данного примера:

NULL
string(6) "Felipe"

Примечания

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.

Замечание:

Существует возможность удалить даже атрибуты объекта, видимые в текущем контексте.

Замечание:

Начиная с PHP 5 невозможно удалить $this внутри метода объекта.

Замечание:

При использовании unset() на недоступных или необъявленных свойствах объекта, будет вызван встроенный метод объекта __unset(), если он определен.

Смотрите также

  • isset() - Определяет, была ли установлена переменная значением отличным от NULL
  • empty() - Проверяет, пуста ли переменная
  • __unset()
  • array_splice() - Удаляет часть массива и заменяет её чем-нибудь ещё


Выводит информацию о переменной

  • « unset
  • var_export »
  • PHP Manual
  • Функции для работы с переменными
  • Выводит информацию о переменной

var_dump

(PHP 4, PHP 5, PHP 7)

var_dump — Выводит информацию о переменной

Описание

void var_dump ( mixed $expression [, mixed $... ] )

Функция отображает структурированную информацию об одном или нескольких выражениях, включая их тип и значение. Массивы и объекты анализируются рекурсивно с разным отступом у значений для визуального отображения структуры.

Все общедоступные, закрытые и защищенные свойства объекта будут возвращены при выводе, если только объект не реализует метод __debugInfo() (добавлен в PHP 5.6.0).

Подсказка

Как и с любой другой функцией, осуществляющей вывод непосредственно в браузер, вы можете использовать функции контроля вывода, чтобы перехватывать выводимые этой функцией данные и сохранять их, например, в string.

Список параметров

expression

Переменная, значение которой необходимо отобразить.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования var_dump()

<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>

Результат выполнения данного примера:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}
<?php

$b = 3.1;
$c = true;
var_dump($b, $c);

?>

Результат выполнения данного примера:

float(3.1)
bool(true)

Смотрите также

  • print_r() - Выводит удобочитаемую информацию о переменной
  • debug_zval_dump() - Выводит строковое представление внутреннего значения zend
  • var_export() - Печатает или возвращает интерпретируемое строковое представление переменной
  • __debugInfo()


Печатает или возвращает интерпретируемое строковое представление переменной

  • « var_dump
  • Веб-сервисы »
  • PHP Manual
  • Функции для работы с переменными
  • Печатает или возвращает интерпретируемое строковое представление переменной

var_export

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

var_export — Печатает или возвращает интерпретируемое строковое представление переменной

Описание

mixed var_export ( mixed $expression [, bool $return = false ] )

var_export() возвращает структурированную информацию о данной переменной. Функция аналогична var_dump() за одним исключением: возвращаемое представление является полноценным PHP кодом.

Список параметров

expression

Переменная, которую необходимо экспортировать.

return

Если передано и значение равно TRUE, var_export() вернет представление переменной вместо его вывода.

Возвращаемые значения

Возвращает представление переменной, если параметр return передан и равен TRUE. В противном случае функция возвращает NULL.

Примечания

Замечание:

При использовании параметра return данная функция использует внутреннюю буферизацию вывода, поэтому она не может быть использована внутри callback-функции ob_start().

Список изменений

Версия | Описание
5.1.0 | Стало возможным экспортировать классы и массивы, содержащие другие классы, используя магический метод __set_state().

Примеры

Пример #1 Примеры использования var_export()

<?php
$a = array (1, 2, array ("a", "b", "c"));
var_export($a);
?>

Результат выполнения данного примера:

array (
  0 => 1,
  1 => 2,
  2 =>
  array (
    0 => 'a',
    1 => 'b',
    2 => 'c',
  ),
)
<?php

$b = 3.1;
$v = var_export($b, true);
echo $v;

?>

Результат выполнения данного примера:

3.1

Пример #2 Экспорт классов в PHP с версии 5.1.0

<?php
class A { public $var; }
$a = new A;
$a->var = 5;
var_export($a);
?>

Результат выполнения данного примера:

A::__set_state(array(
   'var' => 5,
))

Пример #3 Использование __set_state() (в PHP с версии 5.1.0)

<?php
class A
{
    public $var1;
    public $var2;

    public static function __set_state($an_array)
    {
        $obj = new A;
        $obj->var1 = $an_array['var1'];
        $obj->var2 = $an_array['var2'];
        return $obj;
    }
}

$a = new A;
$a->var1 = 5;
$a->var2 = 'foo';

eval('$b = ' . var_export($a, true) . ';'); // $b = A::__set_state(array(
                                            //    'var1' => 5,
                                            //    'var2' => 'foo',
                                            // ));
var_dump($b);
?>

Результат выполнения данного примера:

object(A)#2 (2) {
  ["var1"]=>
  int(5)
  ["var2"]=>
  string(3) "foo"
}

Примечания

Замечание:

Переменные типа resource не могут быть экспортированы с помощью этой функции.

Замечание:

var_export() не обрабатывает циклические ссылки, так как было бы почти невозможно сгенерировать интерпретируемый PHP код для такого случая. Если необходимо производить какие-то действия с полным представлением массива или объекта, используйте функцию serialize().

Внимание

При экспорте объектов функцией var_export(), лидирующий обратный слеш не добавляется в имя класса с указанным пространством имен для наилучшей обратной совместимости.

Замечание:

Для того, чтобы можно было использовать сгенерированный var_export() PHP код, необходимо, что бы все затронутые объекты реализовывали магический метод __set_state. Помните, что StdClass не реализует метод __set_state().

Смотрите также

  • print_r() - Выводит удобочитаемую информацию о переменной
  • serialize() - Генерирует пригодное для хранения представление переменной
  • var_dump() - Выводит информацию о переменной


Веб-сервисы

  • OAuth
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • OAuth Функции
    • OAuth — The OAuth class
    • OAuthProvider — The OAuthProvider class
    • OAuthException — OAuthException class
  • SCA
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • SCA Функции
  • SOAP
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • SOAP Функции
    • SoapClient — Класс SoapClient
    • SoapServer — Класс SoapServer
    • SoapFault — Класс SoapFault
    • SoapHeader — Класс SoapHeader
    • SoapParam — Класс SoapParam
    • SoapVar — Класс SoapVar
  • Yar — Yet Another RPC Framework
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Yar_Server — The Yar_Server class
    • Yar_Client — The Yar_Client class
    • Yar_Concurrent_Client — The Yar_Concurrent_Client class
    • Yar_Server_Exception — The Yar_Server_Exception class
    • Yar_Client_Exception — The Yar_Client_Exception class
  • XML-RPC
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • XML-RPC Функции


OAuth

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • FireEagle
  • OAuth Функции
    • oauth_get_sbs — Generate a Signature Base String
    • oauth_urlencode — Encode a URI to RFC 3986
  • OAuth — The OAuth class
    • OAuth::__construct — Создает новый объект OAuth
    • OAuth::__destruct — Деструктор
    • OAuth::disableDebug — Выключить подробную отладочную информацию
    • OAuth::disableRedirects — Выключить переадресацию
    • OAuth::disableSSLChecks — Выключить SSL проверки
    • OAuth::enableDebug — Включить подробную отладочную информацию
    • OAuth::enableRedirects — Turn on redirects
    • OAuth::enableSSLChecks — Turn on SSL checks
    • OAuth::fetch — Fetch an OAuth protected resource
    • OAuth::generateSignature — Generate a signature
    • OAuth::getAccessToken — Fetch an access token
    • OAuth::getCAPath — Gets CA information
    • OAuth::getLastResponse — Get the last response
    • OAuth::getLastResponseHeaders — Get headers for last response
    • OAuth::getLastResponseInfo — Get HTTP information about the last response
    • OAuth::getRequestHeader — Generate OAuth header string signature
    • OAuth::getRequestToken — Fetch a request token
    • OAuth::setAuthType — Set authorization type
    • OAuth::setCAPath — Set CA path and info
    • OAuth::setNonce — Set the nonce for subsequent requests
    • OAuth::setRequestEngine — The setRequestEngine purpose
    • OAuth::setRSACertificate — Set the RSA certificate
    • OAuth::setSSLChecks — Tweak specific SSL checks for requests.
    • OAuth::setTimestamp — Set the timestamp
    • OAuth::setToken — Sets the token and secret
    • OAuth::setVersion — Set the OAuth version
  • OAuthProvider — The OAuthProvider class
    • OAuthProvider::addRequiredParameter — Add required parameters
    • OAuthProvider::callconsumerHandler — Calls the consumerNonceHandler callback
    • OAuthProvider::callTimestampNonceHandler — Calls the timestampNonceHandler callback
    • OAuthProvider::calltokenHandler — Calls the tokenNonceHandler callback
    • OAuthProvider::checkOAuthRequest — Check an oauth request
    • OAuthProvider::__construct — Constructs a new OAuthProvider object
    • OAuthProvider::consumerHandler — Set the consumerHandler handler callback
    • OAuthProvider::generateToken — Generate a random token
    • OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint
    • OAuthProvider::isRequestTokenEndpoint — Sets isRequestTokenEndpoint
    • OAuthProvider::removeRequiredParameter — Remove a required parameter
    • OAuthProvider::reportProblem — Report a problem
    • OAuthProvider::setParam — Set a parameter
    • OAuthProvider::setRequestTokenPath — Set request token path
    • OAuthProvider::timestampNonceHandler — Set the timestampNonceHandler handler callback
    • OAuthProvider::tokenHandler — Set the tokenHandler handler callback
  • OAuthException — OAuthException class


Введение

Данное расширение предоставляет интерфейс взаимодействия потребителем и провайдером OAuth 1.0a. OAuth - это протокол авторизации, построенный поверх HTML, позволяющий приложениям безопасно обращаться к данным без необходимости хранения логинов и паролей.


Требования

PECL/oauth requires PHP 5.1 or newer, ext/hash and ext/pcre.

PECL/oauth may optionally require libcurl if selected at build time. If configured with libcurl, it must be built with HTTPS support.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pear.php.net/package/oauth


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Большинство из этих констант затрагивают проблемы, указанные в том числе в официальных » сообщениях о проблемах OAuth. Однако заметьте, что хотя данные имена констант и имеют схожую схему имен, они характерны только для PHP.

OAUTH_SIG_METHOD_RSASHA1 (string)
Метод подписи OAuth RSA-SHA1.
OAUTH_SIG_METHOD_HMACSHA1 (string)

Метод подписи OAuth HMAC-SHA1.

OAUTH_SIG_METHOD_HMACSHA256 (string)
Метод подписи OAuth HMAC-SHA256.
OAUTH_AUTH_TYPE_AUTHORIZATION (string)

Эта константа указывает, что OAuth параметры будут помещены в заголовок Authorization.

OAUTH_AUTH_TYPE_NONE (string)

Эта константа обозначает NoAuth OAuth запрос.

OAUTH_AUTH_TYPE_URI (string)

Эта константа указывает, что OAuth параметры будут помещены в URI запроса. URI.

OAUTH_AUTH_TYPE_FORM (string)

Эта константа указывает, что OAuth параметры будут помещены в тело HTTP POST запроса.

OAUTH_HTTP_METHOD_GET (string)

Константа указывает на использование GET метода для OAuth запроса.

OAUTH_HTTP_METHOD_POST (string)

Константа указывает на использование POST метода для OAuth запроса.

OAUTH_HTTP_METHOD_PUT (string)

Константа указывает на использование PUT метода для OAuth запроса.

OAUTH_HTTP_METHOD_HEAD (string)

Константа указывает на использование HEAD метода для OAuth запроса.

OAUTH_HTTP_METHOD_DELETE (string)
Константа указывает на использование DELETE метода для OAuth запроса.
OAUTH_REQENGINE_STREAMS (integer)
Используется методом OAuth::setRequestEngine() для выбора потоков PHP в качестве движка, в противоположность константе OAUTH_REQENGINE_CURL, использующейся для выбора Curl.
OAUTH_REQENGINE_CURL (integer)
Используется методом OAuth::setRequestEngine() для выбора Curl в качестве движка, в противоположность константе OAUTH_REQENGINE_STREAMS, использующейся для выбора потоков PHP.
OAUTH_OK (integer)
Жизнь хороша.
OAUTH_BAD_NONCE (integer)
Значение oauth_nonce использовалось в предыдущем запросе, следовательно, не может быть использовано сейчас.
OAUTH_BAD_TIMESTAMP (integer)
Значение oauth_timestamp не было принято провайдером. В этом случае, ответ должен также содержать параметр oauth_acceptable_timestamps.
OAUTH_CONSUMER_KEY_UNKNOWN (integer)
oauth_consumer_key временно недоступен провайдеру. Например, если провайдер заблокировал потребителя.
OAUTH_CONSUMER_KEY_REFUSED (integer)
Ключ потребителя был отклонен.
OAUTH_INVALID_SIGNATURE (integer)
Значение oauth_signature недействительно, так как не совпадает с подписью, вычисленной провайдером.
OAUTH_TOKEN_USED (integer)
oauth_token был употреблен. Он уже использовался в предыдущем запросе/запросах и более не может быть использован.
OAUTH_TOKEN_EXPIRED (integer)
oauth_token устарел.
OAUTH_TOKEN_REVOKED (integer)
oauth_token был отозван и в дальнейшем не будет принят.
OAUTH_TOKEN_REJECTED (integer)
Провайдер не принял oauth_token. Причина неизвестна, но возможно заключается в том, что токен никогда не был выдан, или уже был использован, или устарел, или был забыт провайдером.
OAUTH_VERIFIER_INVALID (integer)
Некорректный oauth_verifier.
OAUTH_PARAMETER_ABSENT (integer)
Требуемый параметр не был получен. В этом случае, ответ должен также содержать параметр oauth_parameters_absent.
OAUTH_SIGNATURE_METHOD_REJECTED (integer)
oauth_signature_method не был принят провайдером.


  • « Предопределенные константы
  • FireEagle »
  • PHP Manual
  • OAuth
  • Примеры

Примеры

Содержание

  • FireEagle


FireEagle

<?php
$req_url = 'https://fireeagle.yahooapis.com/oauth/request_token';
$authurl = 'https://fireeagle.yahoo.net/oauth/authorize';
$acc_url = 'https://fireeagle.yahooapis.com/oauth/access_token';
$api_url = 'https://fireeagle.yahooapis.com/api/0.1';
$conskey = 'your_consumer_key';
$conssec = 'your_consumer_secret';

session_start();

// In state=1 the next request should include an oauth_token.
// If it doesn't go back to 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 — Generate a Signature Base String
  • oauth_urlencode — Encode a URI to RFC 3986


Generate a Signature Base String

  • « OAuth Функции
  • oauth_urlencode »
  • PHP Manual
  • OAuth Функции
  • Generate a Signature Base String

oauth_get_sbs

(PECL OAuth >=0.99.7)

oauth_get_sbs — Generate a Signature Base String

Описание

string oauth_get_sbs ( string $http_method , string $uri [, array $request_parameters ] )

Generates a Signature Base String according to pecl/oauth.

Список параметров

http_method

The HTTP method.

uri

URI to encode.

request_parameters

Array of request parameters.

Возвращаемые значения

Returns a Signature Base String.


Encode a URI to RFC 3986

  • « oauth_get_sbs
  • OAuth »
  • PHP Manual
  • OAuth Функции
  • Encode a URI to RFC 3986

oauth_urlencode

(PECL OAuth >=0.99.2)

oauth_urlencode — Encode a URI to RFC 3986

Описание

string oauth_urlencode ( string $uri )

Encodes a URI to » RFC 3986.

Список параметров

uri

URI to encode.

Возвращаемые значения

Returns an » RFC 3986 encoded string.


The OAuth class

(PECL OAuth >= 0.99.1)

Введение

The OAuth extension provides a simple interface to interact with data providers using the OAuth HTTP specification to protect private resources.

Обзор классов

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 void __destruct ( void )
public bool disableDebug ( void )
public bool disableRedirects ( void )
public bool disableSSLChecks ( void )
public bool enableDebug ( void )
public bool enableRedirects ( void )
public bool enableSSLChecks ( void )
public mixed fetch ( string $protected_resource_url [, array $extra_parameters [, string $http_method [, array $http_headers ]]] )
public string generateSignature ( string $http_method , string $url [, mixed $extra_parameters ] )
public array getAccessToken ( string $access_token_url [, string $auth_session_handle [, string $verifier_token [, string $http_method ]]] )
public array getCAPath ( void )
public string getLastResponse ( void )
public string getLastResponseHeaders ( void )
public array getLastResponseInfo ( void )
public string getRequestHeader ( string $http_method , string $url [, mixed $extra_parameters ] )
public array getRequestToken ( string $request_token_url [, string $callback_url [, string $http_method ]] )
public mixed setAuthType ( int $auth_type )
public mixed setCAPath ([ string $ca_path [, string $ca_info ]] )
public mixed setNonce ( string $nonce )
public void setRequestEngine ( int $reqengine )
public mixed setRSACertificate ( string $cert )
public bool setSSLChecks ( int $sslcheck )
public mixed setTimestamp ( string $timestamp )
public bool setToken ( string $token , string $token_secret )
public bool setVersion ( string $version )
}

Свойства

debug

sslChecks

debugInfo

Содержание

  • OAuth::__construct — Создает новый объект OAuth
  • OAuth::__destruct — Деструктор
  • OAuth::disableDebug — Выключить подробную отладочную информацию
  • OAuth::disableRedirects — Выключить переадресацию
  • OAuth::disableSSLChecks — Выключить SSL проверки
  • OAuth::enableDebug — Включить подробную отладочную информацию
  • OAuth::enableRedirects — Turn on redirects
  • OAuth::enableSSLChecks — Turn on SSL checks
  • OAuth::fetch — Fetch an OAuth protected resource
  • OAuth::generateSignature — Generate a signature
  • OAuth::getAccessToken — Fetch an access token
  • OAuth::getCAPath — Gets CA information
  • OAuth::getLastResponse — Get the last response
  • OAuth::getLastResponseHeaders — Get headers for last response
  • OAuth::getLastResponseInfo — Get HTTP information about the last response
  • OAuth::getRequestHeader — Generate OAuth header string signature
  • OAuth::getRequestToken — Fetch a request token
  • OAuth::setAuthType — Set authorization type
  • OAuth::setCAPath — Set CA path and info
  • OAuth::setNonce — Set the nonce for subsequent requests
  • OAuth::setRequestEngine — The setRequestEngine purpose
  • OAuth::setRSACertificate — Set the RSA certificate
  • OAuth::setSSLChecks — Tweak specific SSL checks for requests.
  • OAuth::setTimestamp — Set the timestamp
  • OAuth::setToken — Sets the token and secret
  • OAuth::setVersion — Set the OAuth version


Создает новый объект 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 void OAuth::__destruct ( void )

Деструктор.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • OAuth::__construct() - Создает новый объект OAuth


Выключить подробную отладочную информацию

  • « OAuth::__destruct
  • OAuth::disableRedirects »
  • PHP Manual
  • OAuth
  • Выключить подробную отладочную информацию

OAuth::disableDebug

(PECL OAuth >= 0.99.3)

OAuth::disableDebug — Выключить подробную отладочную информацию

Описание

public bool OAuth::disableDebug ( void )

Выключает подробную информацию о запросе (по умолчанию выключено). Альтернативно можно установить свойству debug значение FALSE, чтобы выключить режим отладки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Список изменений

Версия | Описание
0.99.8 | Было добавлено похожее свойство debug.

Смотрите также

  • OAuth::enableDebug() - Включить подробную отладочную информацию


Выключить переадресацию

  • « OAuth::disableDebug
  • OAuth::disableSSLChecks »
  • PHP Manual
  • OAuth
  • Выключить переадресацию

OAuth::disableRedirects

(PECL OAuth >= 0.99.9)

OAuth::disableRedirects — Выключить переадресацию

Описание

public bool OAuth::disableRedirects ( void )

Запретить автоматическую переадресацию, тем самым разрешая запросу быть переадресованным вручную.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Смотрите также

  • OAuth::enableRedirects() - Turn on redirects


Выключить SSL проверки

  • « OAuth::disableRedirects
  • OAuth::enableDebug »
  • PHP Manual
  • OAuth
  • Выключить SSL проверки

OAuth::disableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::disableSSLChecks — Выключить SSL проверки

Описание

public bool OAuth::disableSSLChecks ( void )

Выключает обычные проверки клиентских и хост сертификатов. Не предназначено для продуктивной среды. Альтернативно можно установить полю sslChecks значение FALSE, чтобы выключить SSL проверки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Список изменений

Версия | Описание
0.99.8 | Было добавлено поле sslChecks

Смотрите также

  • OAuth::enableSSLChecks() - Turn on SSL checks


Включить подробную отладочную информацию

  • « OAuth::disableSSLChecks
  • OAuth::enableRedirects »
  • PHP Manual
  • OAuth
  • Включить подробную отладочную информацию

OAuth::enableDebug

(PECL OAuth >= 0.99.3)

OAuth::enableDebug — Включить подробную отладочную информацию

Описание

public bool OAuth::enableDebug ( void )

Включает подробную информацию о запросе, полезную для отладки. Отладочная информация хранится в поле debugInfo. Альтернативно можно установить полю debug значение non-FALSE, чтобы включить режим отладки.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Список изменений

Версия | Описание
0.99.8 | Были добавлены поля debug и debugInfo

Смотрите также

  • OAuth::disableDebug() - Выключить подробную отладочную информацию


Turn on redirects

  • « OAuth::enableDebug
  • OAuth::enableSSLChecks »
  • PHP Manual
  • OAuth
  • Turn on redirects

OAuth::enableRedirects

(PECL OAuth >= 0.99.9)

OAuth::enableRedirects — Turn on redirects

Описание

public bool OAuth::enableRedirects ( void )

Follow and sign redirects automatically, which is enabled by default.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Смотрите также

  • OAuth::disableRedirects() - Выключить переадресацию


Turn on SSL checks

  • « OAuth::enableRedirects
  • OAuth::fetch »
  • PHP Manual
  • OAuth
  • Turn on SSL checks

OAuth::enableSSLChecks

(PECL OAuth >= 0.99.5)

OAuth::enableSSLChecks — Turn on SSL checks

Описание

public bool OAuth::enableSSLChecks ( void )

Turns on the usual SSL peer certificate and host checks (enabled by default). Alternatively, the sslChecks member can be set to a non-FALSE value to turn SSL checks off.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE

Список изменений

Версия | Описание
0.99.8 | The sslChecks member was added

Смотрите также

  • OAuth::disableSSLChecks() - Выключить SSL проверки


Fetch an OAuth protected resource

  • « OAuth::enableSSLChecks
  • OAuth::generateSignature »
  • PHP Manual
  • OAuth
  • Fetch an OAuth protected resource

OAuth::fetch

(PECL OAuth >= 0.99.1)

OAuth::fetch — Fetch an OAuth protected resource

Описание

public mixed OAuth::fetch ( string $protected_resource_url [, array $extra_parameters [, string $http_method [, array $http_headers ]]] )

Fetch a resource.

Список параметров

protected_resource_url

URL to the OAuth protected resource.

extra_parameters

Extra parameters to send with the request for the resource.

http_method

One of the OAUTH_HTTP_METHOD_* OAUTH constants, which includes GET, POST, PUT, HEAD, or DELETE.

HEAD (OAUTH_HTTP_METHOD_HEAD) can be useful for discovering information prior to the request (if OAuth credentials are in the Authorization header).

http_headers

HTTP client headers (such as User-Agent, Accept, etc.)

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.
0.99.5 | The http_method parameter was added
0.99.8 | The http_headers parameter was added

Примеры

Пример #1 OAuth::fetch() example

<?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 "Exception caught!\n";
    echo "Response: ". $E->lastResponse . "\n";
}
?>

Смотрите также

  • OAuth::getLastResponse() - Get the last response
  • OAuth::getLastResponseInfo() - Get HTTP information about the last response
  • OAuth::setToken() - Sets the token and secret


Generate a signature

  • « OAuth::fetch
  • OAuth::getAccessToken »
  • PHP Manual
  • OAuth
  • Generate a signature

OAuth::generateSignature

(Информация о версии неизвестна, возможно, только в SVN)

OAuth::generateSignature — Generate a signature

Описание

public string OAuth::generateSignature ( string $http_method , string $url [, mixed $extra_parameters ] )

Generate a signature based on the final HTTP method, URL and a string/array of parameters.

Список параметров

http_method

HTTP method for request

url

URL for request

extra_parameters

String or array of additional parameters.

Возвращаемые значения

A string containing the generated signature или FALSE в случае возникновения ошибки


Fetch an access token

  • « OAuth::generateSignature
  • OAuth::getCAPath »
  • PHP Manual
  • OAuth
  • Fetch an access token

OAuth::getAccessToken

(PECL OAuth >= 0.99.1)

OAuth::getAccessToken — Fetch an access token

Описание

public array OAuth::getAccessToken ( string $access_token_url [, string $auth_session_handle [, string $verifier_token [, string $http_method ]]] )

Fetch an access token, secret and any additional response parameters from the service provider.

Список параметров

access_token_url

URL to the access token API.

auth_session_handle

Authorization session handle, this parameter does not have any citation in the core OAuth 1.0 specification but may be implemented by large providers. » See ScalableOAuth for more information.

verifier_token

For service providers which support 1.0a, a verifier_token must be passed while exchanging the request token for the access token. If the verifier_token is present in $_GET or $_POST it is passed automatically and the caller does not need to specify a verifier_token (usually if the access token is exchanged at the oauth_callback URL). » See ScalableOAuth for more information.

http_method

HTTP method to use, e.g. GET or POST.

Возвращаемые значения

Returns an array containing the parsed OAuth response on success or FALSE on failure.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.
0.99.9 | The verifier_token parameter was added

Примеры

Пример #1 OAuth::getAccessToken() example

<?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 "Failed fetching access token, response was: " . $oauth->getLastResponse();
    }
} catch(OAuthException $E) {
    echo "Response: ". $E->lastResponse . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

Смотрите также

  • OAuth::getLastResponse() - Get the last response
  • OAuth::getLastResponseInfo() - Get HTTP information about the last response
  • OAuth::setToken() - Sets the token and secret


Gets CA information

  • « OAuth::getAccessToken
  • OAuth::getLastResponse »
  • PHP Manual
  • OAuth
  • Gets CA information

OAuth::getCAPath

(PECL OAuth >= 0.99.8)

OAuth::getCAPath — Gets CA information

Описание

public array OAuth::getCAPath ( void )

Gets the Certificate Authority information, which includes the ca_path and ca_info set by OAuth::setCaPath().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of Certificate Authority information, specifically as ca_path and ca_info keys within the returned associative array.

Смотрите также

  • OAuth::setCAPath() - Set CA path and info
  • OAuth::getLastResponseInfo() - Get HTTP information about the last response


Get the last response

  • « OAuth::getCAPath
  • OAuth::getLastResponseHeaders »
  • PHP Manual
  • OAuth
  • Get the last response

OAuth::getLastResponse

(PECL OAuth >= 0.99.1)

OAuth::getLastResponse — Get the last response

Описание

public string OAuth::getLastResponse ( void )

Get the raw response of the most recent request.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns a string containing the last response.

Смотрите также

  • OAuth::getLastResponseInfo() - Get HTTP information about the last response
  • OAuth::fetch() - Fetch an OAuth protected resource


Get headers for last response

  • « OAuth::getLastResponse
  • OAuth::getLastResponseInfo »
  • PHP Manual
  • OAuth
  • Get headers for last response

OAuth::getLastResponseHeaders

(Информация о версии неизвестна, возможно, только в SVN)

OAuth::getLastResponseHeaders — Get headers for last response

Описание

public string OAuth::getLastResponseHeaders ( void )

Get headers for last response.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A string containing the last response's headers или FALSE в случае возникновения ошибки


Get HTTP information about the last response

  • « OAuth::getLastResponseHeaders
  • OAuth::getRequestHeader »
  • PHP Manual
  • OAuth
  • Get HTTP information about the last response

OAuth::getLastResponseInfo

(PECL OAuth >= 0.99.1)

OAuth::getLastResponseInfo — Get HTTP information about the last response

Описание

public array OAuth::getLastResponseInfo ( void )

Get HTTP information about the last response.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns an array containing the response information for the last request. Constants from curl_getinfo() may be used.

Смотрите также

  • OAuth::fetch() - Fetch an OAuth protected resource
  • OAuth::getLastResponse() - Get the last response


Generate OAuth header string signature

  • « OAuth::getLastResponseInfo
  • OAuth::getRequestToken »
  • PHP Manual
  • OAuth
  • Generate OAuth header string signature

OAuth::getRequestHeader

(Информация о версии неизвестна, возможно, только в SVN)

OAuth::getRequestHeader — Generate OAuth header string signature

Описание

public string OAuth::getRequestHeader ( string $http_method , string $url [, mixed $extra_parameters ] )

Generate OAuth header string signature based on the final HTTP method, URL and a string/array of parameters

Список параметров

http_method

HTTP method for request.

url

URL for request.

extra_parameters

String or array of additional parameters.

Возвращаемые значения

A string containing the generated request header или FALSE в случае возникновения ошибки


Fetch a request token

  • « OAuth::getRequestHeader
  • OAuth::setAuthType »
  • PHP Manual
  • OAuth
  • Fetch a request token

OAuth::getRequestToken

(PECL OAuth >= 0.99.1)

OAuth::getRequestToken — Fetch a request token

Описание

public array OAuth::getRequestToken ( string $request_token_url [, string $callback_url [, string $http_method ]] )

Fetch a request token, secret and any additional response parameters from the service provider.

Список параметров

request_token_url

URL to the request token API.

callback_url

OAuth callback URL. If callback_url is passed and is an empty value, it is set to "oob" to address the OAuth 2009.1 advisory.

http_method

HTTP method to use, e.g. GET or POST.

Возвращаемые значения

Returns an array containing the parsed OAuth response on success or FALSE on failure.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.
0.99.9 | The callback_url parameter was added

Примеры

Пример #1 OAuth::getRequestToken() example

<?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 "Failed fetching request token, response was: " . $oauth->getLastResponse();
    }
} catch(OAuthException $E) {
    echo "Response: ". $E->lastResponse . "\n";
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [oauth_token] => some_token
    [oauth_token_secret] => some_token_secret
)

Смотрите также

  • OAuth::getLastResponse() - Get the last response
  • OAuth::getLastResponseInfo() - Get HTTP information about the last response


Set authorization type

  • « OAuth::getRequestToken
  • OAuth::setCAPath »
  • PHP Manual
  • OAuth
  • Set authorization type

OAuth::setAuthType

(PECL OAuth >= 0.99.1)

OAuth::setAuthType — Set authorization type

Описание

public mixed OAuth::setAuthType ( int $auth_type )

Set where the OAuth parameters should be passed.

Список параметров

auth_type

auth_type can be one of the following flags (in order of decreasing preference as per OAuth 1.0 section 5.2):

OAUTH_AUTH_TYPE_AUTHORIZATION
Pass the OAuth parameters in the HTTP Authorization header.
OAUTH_AUTH_TYPE_FORM
Append the OAuth parameters to the HTTP POST request body.
OAUTH_AUTH_TYPE_URI
Append the OAuth parameters to the request URI.
OAUTH_AUTH_TYPE_NONE
None.

Возвращаемые значения

Returns TRUE if a parameter is correctly set, otherwise FALSE (e.g., if an invalid auth_type is passed in.)

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.


Set CA path and info

  • « OAuth::setAuthType
  • OAuth::setNonce »
  • PHP Manual
  • OAuth
  • Set CA path and info

OAuth::setCAPath

(PECL OAuth >= 0.99.8)

OAuth::setCAPath — Set CA path and info

Описание

public mixed OAuth::setCAPath ([ string $ca_path [, string $ca_info ]] )

Sets the Certificate Authority (CA), both for path and info.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

ca_path

The CA Path being set.

ca_info

The CA Info being set.

Возвращаемые значения

Returns TRUE on success, or FALSE if either ca_path or ca_info are considered invalid.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.

Смотрите также

  • OAuth::getCaPath() - Gets CA information


Set the nonce for subsequent requests

  • « OAuth::setCAPath
  • OAuth::setRequestEngine »
  • PHP Manual
  • OAuth
  • Set the nonce for subsequent requests

OAuth::setNonce

(PECL OAuth >= 0.99.1)

OAuth::setNonce — Set the nonce for subsequent requests

Описание

public mixed OAuth::setNonce ( string $nonce )

Sets the nonce for all subsequent requests.

Список параметров

nonce

The value for oauth_nonce.

Возвращаемые значения

Returns TRUE on success, or FALSE if the nonce is considered invalid.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.

Смотрите также

  • OAuth::setToken() - Sets the token and secret
  • OAuth::setAuthType() - Set authorization type
  • OAuth::setVersion() - Set the OAuth version


The setRequestEngine purpose

  • « OAuth::setNonce
  • OAuth::setRSACertificate »
  • PHP Manual
  • OAuth
  • The setRequestEngine purpose

OAuth::setRequestEngine

(PECL OAuth >= 1.0.0)

OAuth::setRequestEngine — The setRequestEngine purpose

Описание

public void OAuth::setRequestEngine ( int $reqengine )

Sets the Request Engine, that will be sending the HTTP requests.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

reqengine

The desired request engine. Set to OAUTH_REQENGINE_STREAMS to use PHP Streams, or OAUTH_REQENGINE_CURL to use Curl.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Emits an OAuthException exception if an invalid request engine is chosen.

Примеры

Пример #1 OAuth::setRequestEngine() example

<?php
$consumer = new OAuth();

$consumer->setRequestEngine(OAUTH_REQENGINE_STREAMS);
?>

Смотрите также

  • Curl
  • PHP streams
  • OAuthException


Set the RSA certificate

  • « OAuth::setRequestEngine
  • OAuth::setSSLChecks »
  • PHP Manual
  • OAuth
  • Set the RSA certificate

OAuth::setRSACertificate

(PECL OAuth >= 1.0.0)

OAuth::setRSACertificate — Set the RSA certificate

Описание

public mixed OAuth::setRSACertificate ( string $cert )

Sets the RSA certificate.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

cert

The RSA certificate.

Возвращаемые значения

Returns TRUE on success, or FALSE on failure (e.g., the RSA certificate cannot be parsed.)

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.

Примеры

Пример #1 An OAuth::setRsaCertificate() example

<?php
$consume = new OAuth('1234', '', OAUTH_SIG_METHOD_RSASHA1);

$consume->setRSACertificate(file_get_contents('test.pem'));
?>

Смотрите также

  • OAuth::setCaPath() - Set CA path and info


Tweak specific SSL checks for requests.

  • « OAuth::setRSACertificate
  • OAuth::setTimestamp »
  • PHP Manual
  • OAuth
  • Tweak specific SSL checks for requests.

OAuth::setSSLChecks

(Информация о версии неизвестна, возможно, только в SVN)

OAuth::setSSLChecks — Tweak specific SSL checks for requests.

Описание

public bool OAuth::setSSLChecks ( int $sslcheck )

Tweak specific SSL checks for requests.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

sslcheck

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Set the timestamp

  • « OAuth::setSSLChecks
  • OAuth::setToken »
  • PHP Manual
  • OAuth
  • Set the timestamp

OAuth::setTimestamp

(PECL OAuth >= 1.0.0)

OAuth::setTimestamp — Set the timestamp

Описание

public mixed OAuth::setTimestamp ( string $timestamp )

Sets the OAuth timestamp for subsequent requests.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

timestamp

The timestamp.

Возвращаемые значения

Returns TRUE, unless the timestamp is invalid, in which case FALSE is returned.

Список изменений

Версия | Описание
1.0.0 | Раньше при ошибке возвращался NULL вместо FALSE.

Смотрите также

  • OAuth::setNonce() - Set the nonce for subsequent requests


Sets the token and secret

  • « OAuth::setTimestamp
  • OAuth::setVersion »
  • PHP Manual
  • OAuth
  • Sets the token and secret

OAuth::setToken

(PECL OAuth >= 0.99.1)

OAuth::setToken — Sets the token and secret

Описание

public bool OAuth::setToken ( string $token , string $token_secret )

Set the token and secret for subsequent requests.

Список параметров

token

The OAuth token.

token_secret

The OAuth token secret.

Возвращаемые значения

TRUE

Примеры

Пример #1 OAuth::setToken() example

<?php
$oauth = new OAuth(OAUTH_CONSUMER_KEY,OAUTH_CONSUMER_SECRET);
$oauth->setToken("token","token-secret");
?>


Set the OAuth version

  • « OAuth::setToken
  • OAuthProvider »
  • PHP Manual
  • OAuth
  • Set the OAuth version

OAuth::setVersion

(PECL OAuth >= 0.99.1)

OAuth::setVersion — Set the OAuth version

Описание

public bool OAuth::setVersion ( string $version )

Sets the OAuth version for subsequent requests

Список параметров

version

OAuth version, default value is always "1.0"

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


The OAuthProvider class

(PECL OAuth >= 1.0.0)

Введение

Manages an OAuth provider class.

See also an external in-depth tutorial titled » Writing an OAuth Provider Service, which takes a hands-on approach to providing this service. There are also » OAuth provider examples within the OAuth extensions sources.

Обзор классов

OAuthProvider {
/* Methods */
final public bool addRequiredParameter ( string $req_params )
public void callconsumerHandler ( void )
public void callTimestampNonceHandler ( void )
public void calltokenHandler ( void )
public void checkOAuthRequest ([ string $uri [, string $method ]] )
public __construct ([ array $params_array ] )
public void consumerHandler ( callable $callback_function )
final public static string generateToken ( int $size [, bool $strong = false ] )
public void is2LeggedEndpoint ( mixed $params_array )
public void isRequestTokenEndpoint ( bool $will_issue_request_token )
final public bool removeRequiredParameter ( string $req_params )
final public static string reportProblem ( string $oauthexception [, bool $send_headers = true ] )
final public bool setParam ( string $param_key [, mixed $param_val ] )
final public bool setRequestTokenPath ( string $path )
public void timestampNonceHandler ( callable $callback_function )
public void tokenHandler ( callable $callback_function )
}

Содержание

  • OAuthProvider::addRequiredParameter — Add required parameters
  • OAuthProvider::callconsumerHandler — Calls the consumerNonceHandler callback
  • OAuthProvider::callTimestampNonceHandler — Calls the timestampNonceHandler callback
  • OAuthProvider::calltokenHandler — Calls the tokenNonceHandler callback
  • OAuthProvider::checkOAuthRequest — Check an oauth request
  • OAuthProvider::__construct — Constructs a new OAuthProvider object
  • OAuthProvider::consumerHandler — Set the consumerHandler handler callback
  • OAuthProvider::generateToken — Generate a random token
  • OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint
  • OAuthProvider::isRequestTokenEndpoint — Sets isRequestTokenEndpoint
  • OAuthProvider::removeRequiredParameter — Remove a required parameter
  • OAuthProvider::reportProblem — Report a problem
  • OAuthProvider::setParam — Set a parameter
  • OAuthProvider::setRequestTokenPath — Set request token path
  • OAuthProvider::timestampNonceHandler — Set the timestampNonceHandler handler callback
  • OAuthProvider::tokenHandler — Set the tokenHandler handler callback


Add required parameters

  • « OAuthProvider
  • OAuthProvider::callconsumerHandler »
  • PHP Manual
  • OAuthProvider
  • Add required parameters

OAuthProvider::addRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::addRequiredParameter — Add required parameters

Описание

final public bool OAuthProvider::addRequiredParameter ( string $req_params )

Add required oauth provider parameters.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

req_params

The required parameters.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OAuthProvider::removeRequiredParameter() - Remove a required parameter


Calls the consumerNonceHandler callback

  • « OAuthProvider::addRequiredParameter
  • OAuthProvider::callTimestampNonceHandler »
  • PHP Manual
  • OAuthProvider
  • Calls the consumerNonceHandler callback

OAuthProvider::callconsumerHandler

(Информация о версии неизвестна, возможно, только в SVN)

OAuthProvider::callconsumerHandler — Calls the consumerNonceHandler callback

Описание

public void OAuthProvider::callconsumerHandler ( void )

Calls the registered consumer handler callback function, which is set with OAuthProvider::consumerHandler().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Если callback-функция не может быть вызвана или отсутствует, то генерируется ошибка уровня E_ERROR.

Смотрите также

  • OAuthProvider::consumerHandler() - Set the consumerHandler handler callback


Calls the timestampNonceHandler callback

  • « OAuthProvider::callconsumerHandler
  • OAuthProvider::calltokenHandler »
  • PHP Manual
  • OAuthProvider
  • Calls the timestampNonceHandler callback

OAuthProvider::callTimestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::callTimestampNonceHandler — Calls the timestampNonceHandler callback

Описание

public void OAuthProvider::callTimestampNonceHandler ( void )

Calls the registered timestamp handler callback function, which is set with OAuthProvider::timestampNonceHandler().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Если callback-функция не может быть вызвана или отсутствует, то генерируется ошибка уровня E_ERROR.

Смотрите также

  • OAuthProvider::timestampNonceHandler() - Set the timestampNonceHandler handler callback


Calls the tokenNonceHandler callback

  • « OAuthProvider::callTimestampNonceHandler
  • OAuthProvider::checkOAuthRequest »
  • PHP Manual
  • OAuthProvider
  • Calls the tokenNonceHandler callback

OAuthProvider::calltokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::calltokenHandler — Calls the tokenNonceHandler callback

Описание

public void OAuthProvider::calltokenHandler ( void )

Calls the registered token handler callback function, which is set with OAuthProvider::tokenHandler().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Если callback-функция не может быть вызвана или отсутствует, то генерируется ошибка уровня E_ERROR.

Смотрите также

  • OAuthProvider::tokenHandler() - Set the tokenHandler handler callback


Check an oauth request

  • « OAuthProvider::calltokenHandler
  • OAuthProvider::__construct »
  • PHP Manual
  • OAuthProvider
  • Check an oauth request

OAuthProvider::checkOAuthRequest

(PECL OAuth >= 1.0.0)

OAuthProvider::checkOAuthRequest — Check an oauth request

Описание

public void OAuthProvider::checkOAuthRequest ([ string $uri [, string $method ]] )

Checks an OAuth request.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

uri

The optional URI, or endpoint.

method

The HTTP method. Optionally pass in one of the OAUTH_HTTP_METHOD_* OAuth constants.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

Emits an E_ERROR level error if the HTTP method cannot be detected.

Смотрите также

  • OAuthProvider::reportProblem() - Report a problem


Constructs a new OAuthProvider object

  • « OAuthProvider::checkOAuthRequest
  • OAuthProvider::consumerHandler »
  • PHP Manual
  • OAuthProvider
  • Constructs a new OAuthProvider object

OAuthProvider::__construct

(PECL OAuth >= 1.0.0)

OAuthProvider::__construct — Constructs a new OAuthProvider object

Описание

public OAuthProvider::__construct ([ array $params_array ] )

Initiates a new OAuthProvider object.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

params_array

Setting these optional parameters is limited to the CLI SAPI.

Возвращаемые значения

An OAuthProvider object.

Примеры

Пример #1 OAuthProvider::__construct() example

<?php
try {

    $op = new OAuthProvider();

    // Uses user-defined callback functions
    $op->consumerHandler(array($this, 'lookupConsumer'));
    $op->timestampNonceHandler(array($this, 'timestampNonceChecker'));
    $op->tokenHandler(array($this, 'myTokenHandler'));

    // Ignore the foo_uri parameter
    $op->setParam('foo_uri', NULL);

    // No token needed for this end point
    $op->setRequestTokenPath('/v1/oauth/request_token');

    $op->checkOAuthRequest();

} catch (OAuthException $e) {

    echo OAuthProvider::reportProblem($e);
}
?>

Смотрите также

  • OAuthProvider::setParam() - Set a parameter


Set the consumerHandler handler callback

  • « OAuthProvider::__construct
  • OAuthProvider::generateToken »
  • PHP Manual
  • OAuthProvider
  • Set the consumerHandler handler callback

OAuthProvider::consumerHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::consumerHandler — Set the consumerHandler handler callback

Описание

public void OAuthProvider::consumerHandler ( callable $callback_function )

Sets the consumer handler callback, which will later be called with OAuthProvider::callConsumerHandler().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

callback_function

The callable functions name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Example OAuthProvider::consumerHandler() callback

<?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() - Calls the consumerNonceHandler callback


Generate a random token

  • « OAuthProvider::consumerHandler
  • OAuthProvider::is2LeggedEndpoint »
  • PHP Manual
  • OAuthProvider
  • Generate a random token

OAuthProvider::generateToken

(PECL OAuth >= 1.0.0)

OAuthProvider::generateToken — Generate a random token

Описание

final public static string OAuthProvider::generateToken ( int $size [, bool $strong = false ] )

Generates a string of pseudo-random bytes.

Список параметров

size

The desired token length, in terms of bytes.

strong

Setting to TRUE means /dev/random will be used for entropy, as otherwise the non-blocking /dev/urandom is used. This parameter is ignored on Windows.

Возвращаемые значения

The generated token, as a string of bytes.

Ошибки

If the strong parameter is TRUE, then an E_WARNING level error will be emitted when the fallback rand() implementation is used to fill the remaining random bytes (e.g., when not enough random data was found, initially).

Примеры

Пример #1 OAuthProvider::generateToken() example

<?php
$p = new OAuthProvider();

$t = $p->generateToken(4);

echo strlen($t),  PHP_EOL;
echo bin2hex($t), PHP_EOL;

?>

Результатом выполнения данного примера будет что-то подобное:

4
b6a82c27

Примечания

Замечание:

When not enough random data is available to the system, this function will fill the remaining random bytes using the internal PHP rand() implementation.

Смотрите также

  • openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes
  • mcrypt_create_iv() - Creates an initialization vector (IV) from a random source


is2LeggedEndpoint

  • « OAuthProvider::generateToken
  • OAuthProvider::isRequestTokenEndpoint »
  • PHP Manual
  • OAuthProvider
  • is2LeggedEndpoint

OAuthProvider::is2LeggedEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::is2LeggedEndpoint — is2LeggedEndpoint

Описание

public void OAuthProvider::is2LeggedEndpoint ( mixed $params_array )

The 2-legged flow, or request signing. It does not require a token.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

params_array

Возвращаемые значения

An OAuthProvider object.

Примеры

Пример #1 OAuthProvider::is2LeggedEndpoint() example

<?php

$provider = new OAuthProvider();

$provider->is2LeggedEndpoint(true);

?>

Смотрите также

  • OAuthProvider::__construct() - Constructs a new OAuthProvider object


Sets isRequestTokenEndpoint

  • « OAuthProvider::is2LeggedEndpoint
  • OAuthProvider::removeRequiredParameter »
  • PHP Manual
  • OAuthProvider
  • Sets isRequestTokenEndpoint

OAuthProvider::isRequestTokenEndpoint

(PECL OAuth >= 1.0.0)

OAuthProvider::isRequestTokenEndpoint — Sets isRequestTokenEndpoint

Описание

public void OAuthProvider::isRequestTokenEndpoint ( bool $will_issue_request_token )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

will_issue_request_token

Sets whether or not it will issue a request token, thus determining if OAuthProvider::tokenHandler() needs to be called.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • OAuthProvider::setRequestTokenPath() - Set request token path
  • OAuthProvider::reportProblem() - Report a problem


Remove a required parameter

  • « OAuthProvider::isRequestTokenEndpoint
  • OAuthProvider::reportProblem »
  • PHP Manual
  • OAuthProvider
  • Remove a required parameter

OAuthProvider::removeRequiredParameter

(PECL OAuth >= 1.0.0)

OAuthProvider::removeRequiredParameter — Remove a required parameter

Описание

final public bool OAuthProvider::removeRequiredParameter ( string $req_params )

Removes a required parameter.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

req_params

The required parameter to be removed.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OAuthProvider::setParam() - Set a parameter
  • OAuthProvider::addRequiredParameter() - Add required parameters


Report a problem

  • « OAuthProvider::removeRequiredParameter
  • OAuthProvider::setParam »
  • PHP Manual
  • OAuthProvider
  • Report a problem

OAuthProvider::reportProblem

(PECL OAuth >= 1.0.0)

OAuthProvider::reportProblem — Report a problem

Описание

final public static string OAuthProvider::reportProblem ( string $oauthexception [, bool $send_headers = true ] )

Pass in a problem as an OAuthException, with possible problems listed in the OAuth constants section.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

oauthexception

The OAuthException.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • OAuthProvider::checkOAuthRequest() - Check an oauth request
  • OAuthProvider::isRequestTokenEndpoint() - Sets isRequestTokenEndpoint


Set a parameter

  • « OAuthProvider::reportProblem
  • OAuthProvider::setRequestTokenPath »
  • PHP Manual
  • OAuthProvider
  • Set a parameter

OAuthProvider::setParam

(PECL OAuth >= 1.0.0)

OAuthProvider::setParam — Set a parameter

Описание

final public bool OAuthProvider::setParam ( string $param_key [, mixed $param_val ] )

Sets a parameter.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

param_key

The parameter key.

param_val

The optional parameter value.

To exclude a parameter from signature verification, set its value to NULL.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • OAuthProvider::addRequiredParameter() - Add required parameters


Set request token path

  • « OAuthProvider::setParam
  • OAuthProvider::timestampNonceHandler »
  • PHP Manual
  • OAuthProvider
  • Set request token path

OAuthProvider::setRequestTokenPath

(PECL OAuth >= 1.0.0)

OAuthProvider::setRequestTokenPath — Set request token path

Описание

final public bool OAuthProvider::setRequestTokenPath ( string $path )

Sets the request tokens path.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

path

The path.

Возвращаемые значения

TRUE

Смотрите также

  • OAuthProvider::tokenHandler() - Set the tokenHandler handler callback


Set the timestampNonceHandler handler callback

  • « OAuthProvider::setRequestTokenPath
  • OAuthProvider::tokenHandler »
  • PHP Manual
  • OAuthProvider
  • Set the timestampNonceHandler handler callback

OAuthProvider::timestampNonceHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::timestampNonceHandler — Set the timestampNonceHandler handler callback

Описание

public void OAuthProvider::timestampNonceHandler ( callable $callback_function )

Sets the timestamp nonce handler callback, which will later be called with OAuthProvider::callTimestampNonceHandler(). Errors related to timestamp/nonce are thrown to this callback.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

callback_function

The callable functions name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Example OAuthProvider::timestampNonceHandler() callback

<?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() - Calls the timestampNonceHandler callback


Set the tokenHandler handler callback

  • « OAuthProvider::timestampNonceHandler
  • OAuthException »
  • PHP Manual
  • OAuthProvider
  • Set the tokenHandler handler callback

OAuthProvider::tokenHandler

(PECL OAuth >= 1.0.0)

OAuthProvider::tokenHandler — Set the tokenHandler handler callback

Описание

public void OAuthProvider::tokenHandler ( callable $callback_function )

Sets the token handler callback, which will later be called with OAuthProvider::callTokenHandler().

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

callback_function

The callable functions name.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Example OAuthProvider::tokenHandler() callback

<?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() - Calls the tokenNonceHandler callback


OAuthException class

(PECL OAuth >= 0.99.1)

Введение

This exception is thrown when exceptional errors occur while using the OAuth extension and contains useful debugging information.

Обзор классов

OAuthException extends Exception {
/* Свойства */
public $lastResponse ;
public $debugInfo ;
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Свойства

lastResponse

The response of the exception which occurred, if any

debugInfo


SCA

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • The structure of a Service Component
    • Obtaining a proxy for another Service Component
    • Calling another Service Component
    • Locating and calling services from a script which is not an SCA Component
    • Exposing a Service Component as a Web service
    • Deploying an SCA component
    • Obtaining the WSDL for an SCA component offering a Service as a Web service
    • Understanding how the WSDL is generated
    • Working with Data Structures
    • Error handling
  • SCA Функции
    • SCA::createDataObject — create an SDO
    • SCA::getService — Obtain a proxy for a service
    • SCA_LocalProxy::createDataObject — create an SDO
    • SCA_SoapProxy::createDataObject — create an SDO


Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

SCA for PHP makes it possible for a PHP programmer to write reusable components, which can be called in a variety of ways, with an identical interface and with a minimum of fuss. At present components can call each other either locally or via Web services, but in the future it is expected that other ways will be possible. It provides the programmer with a way of doing this which will look as natural as possible in PHP.

SCA components use phpDocumentor-style (see http://www.phpdoc.org/) annotations to declare dependencies on other SCA components or Web services. The SCA for PHP runtime resolves these dependencies at runtime on behalf of the components, and thus allows the PHP programmer to focus on the business logic rather than on locating and obtaining references to dependencies.

The SCA for PHP programming model can be extended to support a number of service types, such as REST and Atompub. However, Web services (more accurately, WSDL defined, SOAP/HTTP services), are the only type currently specified.

Components also use annotations to define the interface which they expose as a service. The SCA for PHP runtime will automatically generate WSDL from these annotations, so that an SCA component is easily exposed as a web service. These annotations are a natural extension to those provided by phpDocumentor. Deploying a Web service can be as simple as placing a PHP component under the document root of a web server.

Components also use annotations to specify data structures (expressed using XML schema complex types) which are then handled using Service Data Objects (SDOs).

A PHP script which is not an SCA component and which contains no annotations can use the services of an SCA component. A PHP script or component can make calls to a web service that is not an SCA component, but using the same system of calls or annotations to obtain a reference.

First we show a single SCA component, ConvertedStockQuote which illustrates many of the features of SCA for PHP. It has one method, getQuote(), which given a stock "ticker" obtains a price quote for that stock, converted to a given currency. We shall be using this example as a basis for explaining the SCA for PHP throughout the rest of this document.

Пример #1 A sample SCA component

<?php

include "SCA/SCA.php";

/**
 * Calculate a stock price for a given ticker symbol in a given currency.
 *
 * @service
 * @binding.soap
 */
class ConvertedStockQuote {

    /**
     * The currency exchange rate service to use.
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    public $exchange_rate;

    /**
     * The stock quote service to use.
     *
     * @reference
     * @binding.soap ../StockQuote/StockQuote.wsdl
     */
    public $stock_quote;

    /**
     * Get a stock quote for a given ticker symbol in a given currency.
     *
     * @param string $ticker The ticker symbol.
     * @param string $currency What currency to convert the value to.
     * @return float The stock value is the target currency.
     */
    function getQuote($ticker, $currency)
    {
        $quote  = $this->stock_quote->getQuote($ticker);
        $rate   = $this->exchange_rate->getRate($currency);
        return  $rate * $quote;
    }
}
?>

In this example, we see that an SCA component is implemented by a script containing a PHP class and includes SCA.php. The class contains a mixture of business logic and references to other components or services. In the illustrated getQuote() method there is only business logic, but it relies on the instance variables $stock_quote and $exchange_rate having been initialized. These refer to two other components and will be initialized by the SCA runtime with proxies for these two services, whenever this component executes. The annotations for these two services show one to be a local component, which will be called within the same PHP runtime, and one to be a remote component which will be called via a SOAP request. This component also exposes the getQuote() method both locally and as a web service, so it in turn can be called either locally or remotely.


Требования

If you want to use SCA to consume or produce Web services then you need PHP 5.2.0 or later, built with the soap extension enabled. If you just want to use local components, and do not wish to use the Web service bindings, then this version of SCA for PHP will also run with PHP 5.1.6.

SCA is packaged along with SDO in one combined package on PECL. See http://www.php.net/sdo#sdo.installation for installing the SCA_SDO package from PECL. The SCA code must be on the include path of your PHP installation, for example if it is installed as /usr/local/lib/php/SCA, the include_path directive must include /usr/local/lib/php


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/sca.

DLL для этого расширения PECL в данный момент недоступна. См. также раздел сборка на Windows.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • SCA
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Содержание

  • The structure of a Service Component
  • Obtaining a proxy for another Service Component
  • Calling another Service Component
  • Locating and calling services from a script which is not an SCA Component
  • Exposing a Service Component as a Web service
  • Deploying an SCA component
  • Obtaining the WSDL for an SCA component offering a Service as a Web service
  • Understanding how the WSDL is generated
  • Working with Data Structures
  • Error handling

The examples in the subsequent sections illustrate the following aspects of PHP for SCA:

  • How PHP annotations are used to define PHP classes as SCA components, and how annotations are used to define the services.

  • How an SCA component can be exposed as a Web service

  • How an SCA component can consume a Web service, whether provided by another SCA component or by some other service which knows nothing of SCA

  • How an SCA component can call another SCA component locally (within the same process and on the same call stack)

  • How a client script which is not an SCA component can use the getService call to obtain a proxy for an SCA component.

  • How data structures such as Addresses, or Puchase Orders, are represented as Service Data Objects, and handled.

  • How SCA components are deployed, and in particular how and when WSDL is generated for a service.

  • How parameters are always passed by value (and not by reference) between components, even when the calls are local. This ensures that the semantics of a call do not change depending on the location of a component.

  • How positional parameters to a service are supported, even when the underlying WSDL is document literal wrapped, and naturally supports only named parameters.

  • How business and runtime exceptions are handled.


The structure of a Service Component

A service component is implemented by a class. To identify it as a service component, it contains an @service annotation. The SCA runtime will use the file name of the script to determine the component name, by convention. The class and script file must therefore share the same name.

PHP SCA components always expose a service, and there is no way for a component to be invoked other than to be called as a result of a Web service request, or called directly from another component or from a script. For this reason a valid PHP SCA component will always contain an @service annotation and at least one public method.

Each SCA Component requires that the SCA.php script is included. As well as containing the definition of the SCA class, this script contains executable PHP code that will run whenever the script is called, and which will be responsible for making the component behave as needed.

Предостережение

It is very important that if your file contains other includes, they come before the include for SCA.php. If there are includes after the include for SCA.php, they will not have been processed when the SCA runtime runs your class.

The example below illustrates this overall structure

Пример #1 The structure of an SCA for PHP component

<?php

// any includes

include "SCA/SCA.php";

/**
 * @service
 */

class ConvertedStockQuote {

       // instance variables, business logic, including at least one public method

}
?>


Obtaining a proxy for another Service Component

One SCA component can call the service provided by another SCA component. The service a component provides is made up of all of its public methods. SCA for PHP currently provides two ways for one component to call another: either locally (i.e. within the same PHP run-time, and on the same call stack) or remotely if the called component exposes a Web service binding.

In order for one component to call another, the calling component needs a proxy for the called component. This proxy is usually provided as an instance variable in the calling component, though proxies can also be obtained with the SCA::getService() call, as we shall see later. When a component is constructed, proxies are constructed for any instance variable which refer to another component, and these proxies are "injected" into the instance variables. Proxies are always used, whether the component is local or remote, in order to provide identical calling behavior between remote and local calls (for example, local calls are made to always pass data by-value). The proxies know how to locate the required component and to pass the calls made on to them.

Instance variables which are intended to hold proxies for services are indicated by the two PHPDocumentor-style annotations, @reference and @binding. Both annotations are placed in the documentation section for a class instance variable, as shown by the code below.

The @reference annotation before an instance variable indicates that the instance variable is to be initialized with a proxy to a component.

The @binding annotation has two forms @binding.php and @binding.soap, and indicates that the proxy is either for a local component or for a Web service respectively. For both @binding.php and @binding.soap, the annotation gives a target URI.

At the moment, with the annotation-based method of specifying dependencies, the only way to alter the intended target of a reference is to alter the annotation within the component.

In our ConvertedStockQuote example, the $exchange_rate instance variable will be initialized with a proxy to the local ExchangeRate component whenever an instance of the ConvertedStockQuote is constructed.

Пример #1 Obtaining a proxy for a local PHP class

<?php
   /**
     * The currency exchange rate service to use.
     *
     * @reference
     * @binding.php ../ExchangeRate/ExchangeRate.php
     */
    public $exchange_rate;
?>

For @binding.php, the URI identifies the location of the script containing the implementation of the component. The component will be called locally. The service provided is the set of public methods of the component. The URI must be a simple pathname, either absolute or relative. The component will be loaded with the PHP include directive, after testing to see if it is already loaded with class_exists(). If the URI is a relative path, it is resolved relative to the component containing the annotation. Note that this is different from the normal PHP behaviour where scripts would be looked for along the PHP include_path, This is intended to provide some location-independence for cross-component references.

If this ExchangeRate service were remote and to be called as a Web service, only the @binding line changes. Instead of giving the location of a PHP class, it gives the location of the WSDL describing the web service. In our example component, this is illustrated by the second reference:

Пример #2 Obtaining a proxy for a web service

<?php
/**
     * The stock quote service to use.
     *
     * @reference
     * @binding.soap ../StockQuote/StockQuote.wsdl
     */
    public $stock_quote;
?>

The StockQuote component will be called via a Web service request. In this case the URI for the WSDL can be a simple pathname, or may contain a PHP wrapper and begin, for example, with file:// or http://. In the event that it is a simple pathname, it can be absolute or relative, and if relative will be resolved relative to the component containing the annotation. Note that this is like the behaviour for @binding.php, and different from the normal PHP behaviour where the file would be looked for relative to the PHP current working directory, which would usually be the location of the first script to be called. This behaviour is intended to give consistency across the different bindings and to provide some location-independence for references between components.


Calling another Service Component

The ConvertedStockQuote example also calls the proxies for the two components to which it refers.

Пример #1 Calling services

<?php
$quote  = $this->stock_quote->getQuote($ticker);
$rate   = $this->exchange_rate->getRate($currency);
?>

The call to the StockQuote service is a call to a local service; the call to the ExchangeRate service is a call to a remote service. Note that the way the call is made looks the same regardless of whether the call is to a local service or a remote one.

The proxies which have been injected ensure that the way calls to components look and behave are the same way regardless of whether they are to a local or remote service, so that components are not sensitive to whether a call is to a local or a remote service. For example, the proxy for a local service takes copies of the arguments and passes only those copies, to ensure that calls are made to be pass-by-value, as they would be for a remote call. Also, the proxy for a remote service takes the arguments from a positional parameter list and ensures they are packaged properly in a SOAP request and converted back to a positional parameter list at the far end.

In the example above, the $ticker and $currency are clearly PHP scalar types. Components can pass the PHP scalar types string, integer, float and boolean, but data structures on service calls are always passed as Service Data Objects (SDOs). A later section describes how a component can create an SDO to pass on a local or Web service call, or how a component can create an SDO to return. The PHP SDO project documentation describes how to work with the SDO APIs (see the SDO pages).


Locating and calling services from a script which is not an SCA Component

SCA components obtain proxies for other components or services as instance variables annotated with @reference, but this is not possible for a script that is not itself also a component. A client script which is not a component must use the SCA::getService() static method to obtain a proxy for a service, whether local or remote. The getService() method takes a URI as the argument. Typically this is the location of a local PHP script containing a component, or of a wsdl file, and is used in exactly the same way as the targets of the @binding annotations described in the previous section: that is, relative URIs are resolved against the location of the client script and not against the PHP include_path or current working directory.

For example, a script that needed to obtain proxies for the ExchangeRate and StockQuote services but was not a component would use the getService() method as follows:

Пример #1 Obtaining a proxy using getService

<?php
$exchange_rate = SCA::getService('../ExchangeRate/ExchangeRate.php');
$stock_quote   = SCA::getService('../StockQuote/StockQuote.wsdl');
?>

Methods on services can then be called on the returned proxy, just as they can in a component.

Пример #2 Making calls on the proxy

<?php
$quote  = $stock_quote->getQuote($ticker);
$rate   = $exchange_rate->getRate($currency);
?>


Exposing a Service Component as a Web service

SCA for PHP can generate WSDL from the annotations within a service component, so that it can be easily deployed and exposed as a Web service. To provide SCA with the information it needs to generate the WSDL, it is necessary to add the annotation @binding.soap under the @service annotation and to specify the parameters and return values of the methods using the @param and @return annotations. These annotations will be read when WSDL is generated, and the order and types of the parameters determine the contents of the <schema> section of the WSDL.

SCA for PHP always generates document/literal wrapped WSDL for components that are exposing a Web service. Note that this does not stop components from consuming Web services which are not SCA components and which are documented with WSDL written in a different style.

The scalar types which can be used in the @param annotation are the four common PHP scalar types: boolean, integer, float and string. These are simply mapped to the XML schema types of the same name in the WSDL. The example below, which is a trivial implementation of the StockQuote service that the ConvertedStockQuote component calls, illustrates string and float types.

Пример #1 StockQuote Service

<?php

include "SCA/SCA.php";

/**
 * Scaffold implementation for a remote StockQuote Web service.
 *
 * @service
 * @binding.soap
 *
 */
class StockQuote {

    /**
     * Get a stock quote for a given ticker symbol.
     *
     * @param string $ticker The ticker symbol.
     * @return float The stock quote.
     */
    function getQuote($ticker) {
        return 80.9;
  }
}
?>

WSDL much like the following (though with a service location other than 'localhost', probably) would be generated from this service:

Пример #2 Generated WSDL

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xsi:type="tDefinitions"
    xmlns:tns2="http://StockQuote" xmlns:tns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns3="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://StockQuote">
  <types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://StockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

  <message name="getQuoteRequest">
    <part name="getQuoteRequest" element="tns2:getQuote"/>
  </message>
  <message name="getQuoteResponse">
    <part name="return" element="tns2:getQuoteResponse"/>
  </message>
  <portType name="StockQuotePortType">
    <operation name="getQuote">
      <input message="tns2:getQuoteRequest"/>
      <output message="tns2:getQuoteResponse"/>
    </operation>
  </portType>
  <binding name="StockQuoteBinding" type="tns2:StockQuotePortType">
    <operation name="getQuote">
      <input>
        <tns3:body xsi:type="tBody" use="literal"/>
      </input>
      <output>
        <tns3:body xsi:type="tBody" use="literal"/>
      </output>
      <tns3:operation xsi:type="tOperation" soapAction=""/>
    </operation>
    <tns3:binding xsi:type="tBinding" transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
  </binding>
  <service name="StockQuoteService">
    <port name="StockQuotePort" binding="tns2:StockQuoteBinding">
      <tns3:address xsi:type="tAddress" location="http://localhost/StockQuote/StockQuote.php"/>
    </port>
  </service>
</definitions>

<!-- this line identifies this file as WSDL generated by SCA for PHP. Do not remove -->


Deploying an SCA component

There are no special steps needed to deploy a PHP SCA component. It is sufficient to place the component PHP script in its proper place under the web server document root, just like any other PHP script. It is the SCA::initComponent() executable line within each component that will be executed whenever the script is called, and which will be responsible for making the component respond appropriately to Web service calls, local calls, or requests for WSDL.


Obtaining the WSDL for an SCA component offering a Service as a Web service

SCA components that expose a Web service interface (i.e. have an @binding.soap annotation) will return their WSDL definition in response to an HTTP request with a get parameter of "wsdl". The usual way to obtain this is with "?wsdl" on the end of a URL. The example below uses file_get_contents() to obtain WSDL from a service and writes it to a temporary file before then obtaining a proxy for the service in the usual way. You could of course also obtain the WSDL in a browser, or by some other means, and save the file yourself.

Пример #1 Generated WSDL

<?php
$wsdl = file_get_contents('http://www.example.com/Services/Example.php?wsdl');
file_put_contents("service.wsdl",$wsdl); //write the wsdl to a file
$service = SCA::getService('service.wsdl');
?>

NOTE: If the wsdl requires imported xsds, these will need to be fetched separately.


Understanding how the WSDL is generated

SCA for PHP generates WSDL for components which contain an @binding.soap annotation after the @service annotation. To generate WSDL, the SCA runtime reflects on the component and examines the @param and @return annotations for each public method, as well as any @types annotations within the component. The information from the @param and @return annotations is used to build the <types> section of the WSDL. Any @types annotations which specify a separate schema file will result in an <import> element for that schema within the WSDL.

Location attribute of the <service> element

At the bottom of the WSDL is the <service> element which uses the location attribute to identify the URL of the service. For example this might look as follows:

Пример #1 location attribute

<service name="ConvertedStockQuote"
...
location="http://localhost/ConvertedStockQuote/ConvertedStockQuote.php"/>

Note that this location is relative to the document root of the web server, and cannot be worked out in advance. It can only be worked out once the component is in its proper place under a running web server, when the hostname and port can be known and placed in the WSDL. Detail from the URL that requests the WSDL is used, so for example if the WSDL is generated in response to a request to http://www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php?wsdl, a location of http://www.example.com:1111/ConvertedStockQuote/ConvertedStockQuote.php is what will be inserted into the location attribute in the WSDL.

Document/literal wrapped WSDL and positional parameters

SCA for PHP generates WSDL in the document/literal wrapped style. This style encloses the parameters and return types of a method in 'wrappers' which are named after the corresponding method. The <types> element at the top of the WSDL defines each of these wrappers. If we consider the getQuote() method of the ConvertedStockQuote example:

Пример #2 method with two arguments

<?php
   /**
     * Get a stock quote for a given ticker symbol in a given currency.
     *
     * @param string $ticker The ticker symbol.
     * @param string $currency What currency to convert the value to.
     * @return float The stock value is the target currency.
     */
    function getQuote($ticker, $currency)
    {
        $quote  = $this->stock_quote->getQuote($ticker);
        $rate   = $this->exchange_rate->getRate($currency);
        return  $rate * $quote;
    }
?>

The WSDL generated to define this method will name both the method and the parameters, and give an XML schema type for the parameters. The types section of the WSDL looks like this:

Пример #3 types section illustrating named parameters

<types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
      targetNamespace="http://ConvertedStockQuote">
      <xs:element name="getQuote">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="ticker" type="xs:string"/>
            <xs:element name="currency" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="getQuoteResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="getQuoteReturn" type="xs:float"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  </types>

The SCA run-time has special processing to handle how positional parameter lists in the interface are converted to XML containing named parameters in the soap request, and then back to positional parameter lists again. To see why this matters, consider how a PHP script which used a different interface to make a SOAP call would need to construct the parameter list. A PHP script using the PHP SoapClient, for example, would need to pass the SoapClient a single parameter giving the values for "ticker" and "currency", perhaps as an associative array. To insist that SCA components construct parameter lists to make Web service calls in this way would be to make local and remote calls look different, so a different approach is needed.

When SCA generates WSDL for an SCA component it includes a comment in the WSDL which marks that WSDL as being the interface for an SCA component. In this case, when one SCA component calls another through a Web service, the SCA runtime on the calling end takes the positional parameter list from the call and assigns the values one by one to the named elements in the soap message. For example a call to the getQuote() method defined above that passes the values 'IBM' and 'USD' and looks like this:

<?php
  $quote = $remote_service->getQuote('IBM','USD');
?>

will result in a soap message containing the following:

<getQuote>
  <ticker>IBM</ticker>
  <currency>USD</currency>
</getQuote>

On the service-providing end, the SCA run-time takes the parameters one by one from the soap message and forms a positional parameter list from them, re-forming the argument list ('IBM','USD').

Предостережение

At both ends the SCA runtime relies on the order in which the parameters appear in the soap message being the same as that in the target method's parameter list. This is ultimately determined by the order of the @param annotations: this determines the order in which the parameters appear in the WSDL and thereby the order in which they appear in the soap message. Therefore it is essential that the order of the @param annotations matches that of the parameters in the method's parameter list.


Working with Data Structures

SCA components can pass and return the four PHP scalar types boolean, integer, float and string, but to pass or return data structures, SCA components use Service Data Objects (SDOs). SDOs are described in much more detail in the SDO pages of this manual. Readers familiar with SDOs will know that they are suitable for representing the sort of structured and semi-structured data that is frequently modeled in XML, and that they serialize very naturally for passing between remote components, or in Web services. SDOs are presently the only supported way to pass and return data structures. It is not possible to pass or return PHP objects, or PHP arrays.

The SCA runtime always assures data is passed by-value, even for local calls. To do this, the SCA runtime copies any SDOs in the parameter list before passing them on, just as it does for scalar types.

How data structures are defined to SCA components

Currently the only mechanism for specifying the location of a data structure definition is by specifying the types in an XML schema file. However, in the future it may be possible to define types in other ways, such as based on PHP classes or interfaces, or based on definitions expressed as associative arrays.

To illustrate the use of SDOs we introduce a new component. The PortfolioMangement service below returns an SDO representing a stock portfolio for a given customer.

Пример #1 A Component that uses Data Structures

<?php

include "SCA/SCA.php";

/**
 * Manage the portfolio for a customer.
 *
 * @service
 * @binding.soap
 *
 * @types http://www.example.org/Portfolio PortfolioTypes.xsd
 *
 */
class PortfolioManagement {

    /**
     * Get the stock portfolio for a given customer.
     *
     * @param integer $customer_id The id for the customer
     * @return Portfolio http://www.example.org/Portfolio The stock portfolio (symbols and quantities)
     */
    function getPortfolio($customer_id) {
        // Pretend we just got this from a database
        $portfolio = SCA::createDataObject('http://www.example.org/Portfolio', 'Portfolio');
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'AAPL';
        $holding->number = 100.5;
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'INTL';
        $holding->number = 100.5;
        $holding = $portfolio->createDataObject('holding');
        $holding->ticker = 'IBM';
        $holding->number = 100.5;
        return $portfolio;
    }

}
?>

The @types annotation:

<?php
@types http://www.example.org/Portfolio PortfolioTypes.xsd
?>

indicates that types in the namespace http://www.example.org/Portfolio will be found in the schema file located by the URI PortfolioTypes.xsd. The generated WSDL would reproduce this information with an import statement as follows:

<xs:import schemaLocation="PortfolioTypes.xsd"
                      namespace="http://www.example.org/Portfolio"/>

so the URI, absolute or relative, must be one that can be resolved when included in the schemaLocation attribute.

Creating SDOs

Readers familiar with SDOs will know that they are always created according to a description of the permitted structure (sometimes referred to as the 'schema' or 'model') and that, rather than creating them directly using 'new', some form of data factory is needed. Often, an existing data object can be used as the data factory, but sometimes, and especially in order to get the first data object, something else must act as the data factory.

In SCA, either the SCA runtime class or the proxies for services, whether local or remote, can act as the data factories for SDOs. The choice of which to use, and when, is described in the next two sections.

We switch to a new example in order to illustrate the creation of SDOs, both to pass to a service, and to be returned from a service.

Creating an SDO to pass to a service

A caller of a service which requires a data structure to be passed in to it uses the proxy to the service as the data factory for the corresponding SDOs. For example, suppose a component makes use of a proxy for a service provided by a local AddressBook component.

<?php
/**
 * @reference
 * @binding.local AddressBook.php
 */
$address_book;
?>

The AddressBook component that it wishes to call is defined as follows:

<?php
/**
* @service
* @binding.soap
* @types http://addressbook ../AddressBook/AddressBook.xsd
*/
class AddressBook {

    /**
     * @param personType $person http://addressbook (a person object)
     * @return addressType http://addressbook (the address object for the person object)
     */
    function lookupAddress($person)  {
        ...
    }
}
?>

The AddressBook component provides a service method called lookupAddress() which uses types from the http://addressbook namespace. The lookupAddress method takes a personType data structure and returns an addressType. Both types are defined in the schema file addressbook.xsd.

Once the component that wishes to use the AddressBook component has been constructed, so that the $address_book instance variable contains a proxy for the service, the calling component can use the proxy in $address_book to create the person SDO, as shown below:

<?php
$william_shakespeare        = $address_book->createDataObject('http://addressbook','personType');
$william_shakespeare ->name = "William Shakespeare";
$address                    = $address_book->lookupAddress($william_shakespeare);
?>

Note, the use of the proxy as the means to create the SDO is not limited to SCA components. If a service is being called from a general PHP script, and the proxy was obtained with getService() then the same approach is used.

<?php
$address_book = SCA::getService('AddressBook.php');
$william_shakespeare = $address_book->createDataObject('http://addressbook','personType');
?>

Creating an SDO to return from a component

A component that needs to create a data object for return to a caller will not have a proxy to use as a data object, In this case it uses the createDataObject() static method on SCA.php. Hence if the AddressBook component described above needed to create an object of type addressType within the namespace http://addressbook, it might do so as follows:

<?php
$address = SCA::createDataObject('http://addressbook','addressType');
?>


Error handling

This section describes how errors are handled. There are two types of errors:

  • SCA runtime exceptions are those that signal problems in the management of the execution of components, and in the interaction with remote services. These might occur due to network or configuration problems.

  • Business exceptions are those that are defined by the programmer. They extend the PHP Exception class, and are thrown and caught deliberately as part of the business logic.

Handling of Runtime exceptions

There are two types of SCA runtime exception:

  • SCA_RuntimeException - signals a problem found by or perhaps occurring within the SCA runtime. This can be thrown for a variety of reasons, many of which can occur regardless of whether a connection is being made to a local or a remote service: an error in one of the annotations within a component, a missing WSDL or php file, and so on. In the case of Web services, an SCA_RuntimeException can also be thrown if a SoapFault is received from a remote Web service and the fault code in the SoapFault indicates that a retry is unlikely to be successful.

  • SCA_ServiceUnavailableException - this is a subclass of SCA_RuntimeException and signals a problem in connecting to or using a remote service, but one which might succeed if retried. In the case of Web services, this exception is thrown if a SoapFault is received with a fault code that indicates that a retry might be successful.

Handling of Business exceptions

Business exceptions may be defined and thrown by a component in the normal way, regardless of whether the component has been called locally or remotely. The SCA runtime does not catch business exceptions that have been thrown by a component called locally, so they will be returned to a caller in the normal way. If a component has been called via a Web service, on the other hand, the SCA runtime on the service providing end does catch business exceptions, and will ensure these are passed back to the calling end and re-thrown. Assuming that the calling end has a definition of the exception (that is, is able to include a file containing the PHP class defining the exception) the re-thrown exception will contain the same details as the original, so that the getLine() and getFile() methods for example will contain the location where the exception was thrown within the business logic. The exception will be passed in the detail field of a soap fault with a fault code of "Client".


SCA Функции

Предопределенные классы

Most of the interface to SCA is through the annotations within SCA components so there are few public classes and methods. The only SCA classes that scripts or components can call are the SCA class itself, and the proxy classes SCA_LocalProxy and SCA_SoapProxy.

SCA

Much of the work of the SCA class is performed when the file SCA.php is included within an SCA component. However, a PHP script may include SCA.php and call the getService() method on the SCA class in order to obtain a proxy for a service. A component will not need to do this as proxies are obtained instead by defining an instance variable with the @reference annotation.

Components that need to create an SDO to return to a caller will need a data factory to call. For this purpose the SCA class supports the createDataObject() method, which will create an SDO according to the model defined by the component's @types annotations. The arguments to createDataObject() are the same as those to SDO's XML Data Access Service.

Методы

  • getService - obtain a proxy for a service

  • createDataObject - create an SDO

SCA_LocalProxy

When getService() is called with the target of a local PHP component, a local proxy is returned. A local proxy is also injected into the instance variables of a component that are defined with an @reference and an @binding.php anotation. When the script or component makes calls on the local proxy, they are passed on to the target component itself.

Components that need to create an SDO to pass to a component will need a data factory to call. For this purpose the SCA_LocalProxy class supports the createDataObject() method, which will create an SDO according to the model defined by the components' @types annotations. The arguments to the createDataObject() are the same as those to SDO's XML Data Access Service.

Методы

  • createDataObject - create an SDO

SCA_SoapProxy

When getService() is called with the target of a WSDL file, a SOAP proxy is returned. A SOAP proxy is also injected into the instance variables of a component that are defined with an @reference and an @binding.soap anotations. When the script or component makes calls on the SOAP proxy, they are formed into Web service SOAP requests and passed on to the target component, with the help of the PHP Soap extension.

Components that need to create an SDO to pass to a component will need a data factory to call. For this purpose the SCA_SoapProxy class supports the createDataObject() method, which will create an SDO according to the model defined within the target WSDL. The arguments to the createDataObject() are the same as those to SDO's XML Data Access Service.

Методы

  • createDataObject - create an SDO

Содержание

  • SCA::createDataObject — create an SDO
  • SCA::getService — Obtain a proxy for a service
  • SCA_LocalProxy::createDataObject — create an SDO
  • SCA_SoapProxy::createDataObject — create an SDO


create an SDO

  • « SCA Функции
  • SCA::getService »
  • PHP Manual
  • SCA Функции
  • create an SDO

SCA::createDataObject

(PECL SDO >= 0.5.0)

SCA::createDataObject — create an SDO

Описание

SDO_DataObject SCA::createDataObject ( string $type_namespace_uri , string $type_name )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This method is used inside an SCA component that needs to create an SDO to return. The parameters are the desired SDO's namespace URI and type name. The namespace and type must be defined in one of the schema files which are specified on the @types annotation within the component.

Список параметров

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

Возвращаемые значения

Returns the newly created SDO_DataObject.

Ошибки

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type in any of the schema files specified in the @types annotations.


Obtain a proxy for a service

  • « SCA::createDataObject
  • SCA_LocalProxy::createDataObject »
  • PHP Manual
  • SCA Функции
  • Obtain a proxy for a service

SCA::getService

(PECL SDO >= 0.5.0)

SCA::getService — Obtain a proxy for a service

Описание

mixed SCA::getService ( string $target [, string $binding [, array $config ]] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Examine the target and initialize and return a proxy of the appropriate sort. If the target is for a local PHP component the returned proxy will be an SCA_LocalProxy. If the target is for a WSDL file, the returned proxy will be a SCA_SoapProxy.

Список параметров

target

An absolute or relative path to the target service or service description (e.g. a URL to a json-rpc service description, a PHP component, a WSDL file, and so on.). A relative path, if specified, is resolved relative to the location of the script issuing the getService() call, and not against the include_path or current working directory.

binding

The binding (i.e. protocol) to use to communicate with the service (e.g binding.jsonrpc for a json-rpc service). Note, some service types can be deduced from the target parameter (e.g. if the target parameter ends in .wsdl then SCA will assume binding.soap). Any binding which can be specified in an annotation can be specified here. For example 'binding.soap' is equivalent to the '@binding.soap' annotation.

config

Any additional configuration properties for the binding (e.g. array('location' => 'http://example.org')). Any binding configuration which can be specified in an annotation can be specified here. For example, 'location' is equivalent to the '@location' annotation to configure the location of a target soap service.

Возвращаемые значения

The SCA_LocalProxy or SCA_SoapProxy.

Примеры

Пример #1 An SCA::getService() example

This example shows how to get a proxy to an email soap service described by EmailService.wsdl and located at http://example.org.

<?php
include 'SCA/SCA.php';
$service = SCA::getService('EmailService.wsdl', 'binding.soap', array('location' => 'http://example.org'));
$service->send(...);
?>

Результат выполнения данного примера:


create an SDO

  • « SCA::getService
  • SCA_SoapProxy::createDataObject »
  • PHP Manual
  • SCA Функции
  • create an SDO

SCA_LocalProxy::createDataObject

(PECL SDO >= 0.5.0)

SCA_LocalProxy::createDataObject — create an SDO

Описание

SDO_DataObject SCA_LocalProxy::createDataObject ( string $type_namespace_uri , string $type_name )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This method is used inside either an ordinary PHP script or an SCA component that needs to create an SDO to pass to a local service. The parameters are the desired SDO's namespace URI and type name. The namespace and type must be defined in the interface of the component that is to be called, so the namespace and type must be defined in one of the schema files which are specified on the @types annotation within the component for which the SCA_LocalProxy object is a proxy.

Список параметров

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

Возвращаемые значения

Returns the newly created SDO_DataObject.

Ошибки

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type in any of the schema files specified in the @types annotations within the component for which the SCA_LocalProxy object is a proxy..


create an SDO

  • « SCA_LocalProxy::createDataObject
  • SOAP »
  • PHP Manual
  • SCA Функции
  • create an SDO

SCA_SoapProxy::createDataObject

(PECL SDO >= 0.5.0)

SCA_SoapProxy::createDataObject — create an SDO

Описание

SDO_DataObject SCA_SoapProxy::createDataObject ( string $type_namespace_uri , string $type_name )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

This method is used inside either an ordinary PHP script or an SCA component that needs to create an SDO to pass to a web service. The parameters are the desired SDO's namespace URI and type name. The namespace and type must be defined in the interface of the component that is to be called, so the namespace and type must be defined within the WSDL for the web service. If the web service is also an SCA component then the types will have been defined within one of the schema files which are specified on the @types annotation within the component for which the SCA_SoapProxy object is a proxy.

Список параметров

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

Возвращаемые значения

Returns the newly created SDO_DataObject.

Ошибки

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type found in the WSDL that was used to initialise this SCA_SoapProxy.


SOAP

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • SOAP Функции
    • is_soap_fault — Проверяет произошла ли ошибка при вызове SOAP
    • use_soap_error_handler — Указывает, нужно ли использовать обработчик ошибок SOAP
  • SoapClient — Класс SoapClient
    • SoapClient::__call — Вызывает SOAP-функцию (устаревший метод)
    • SoapClient::__construct — Конструктор SoapClient
    • SoapClient::__doRequest — Выполняет SOAP-запрос
    • SoapClient::__getFunctions — Возвращает список доступных SOAP функций
    • SoapClient::__getLastRequest — Возвращает последний SOAP-запрос
    • SoapClient::__getLastRequestHeaders — Возвращает SOAP-заголовки последнего запроса
    • SoapClient::__getLastResponse — Возвращает последний SOAP-ответ
    • SoapClient::__getLastResponseHeaders — Возвращает SOAP-заголовки последнего ответа
    • SoapClient::__getTypes — Возвращает список SOAP-типов
    • SoapClient::__setCookie — Устанавливает cookie
    • SoapClient::__setLocation — Устанавливает адрес используемой веб-службы
    • SoapClient::__setSoapHeaders — Устанавливает SOAP-заголовки для последующих вызовов
    • SoapClient::__soapCall — Вызывает SOAP-функцию
    • SoapClient::SoapClient — Конструктор SoapClient
  • SoapServer — Класс SoapServer
    • SoapServer::addFunction — Adds one or more functions to handle SOAP requests
    • SoapServer::addSoapHeader — Add a SOAP header to the response
    • SoapServer::__construct — SoapServer constructor
    • SoapServer::fault — Issue SoapServer fault indicating an error
    • SoapServer::getFunctions — Returns list of defined functions
    • SoapServer::handle — Handles a SOAP request
    • SoapServer::setClass — Устанавливает класс, который будет обрабатывать SOAP-запросы
    • SoapServer::setObject — Sets the object which will be used to handle SOAP requests
    • SoapServer::setPersistence — Sets SoapServer persistence mode
    • SoapServer::SoapServer — SoapServer constructor
  • SoapFault — Класс SoapFault
    • SoapFault::__construct — SoapFault constructor
    • SoapFault::SoapFault — SoapFault constructor
    • SoapFault::__toString — Obtain a string representation of a SoapFault
  • SoapHeader — Класс SoapHeader
    • SoapHeader::__construct — SoapHeader constructor
    • SoapHeader::SoapHeader — SoapHeader constructor
  • SoapParam — Класс SoapParam
    • SoapParam::__construct — SoapParam constructor
    • SoapParam::SoapParam — SoapParam constructor
  • SoapVar — Класс SoapVar
    • SoapVar::__construct — SoapVar constructor
    • SoapVar::SoapVar — SoapVar constructor


Введение

Расширение SOAP может использоваться для написания как серверной, так и клиентской части. Оно реализует спецификации » SOAP 1.1, » SOAP 1.2 и » WSDL 1.1.


Требования

Для корректной работы этого расширения необходимо PHP расширение libxml. Это означает, что также необходима передача опции --enable-libxml , хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.


  • « Требования
  • Настройка во время выполнения »
  • PHP Manual
  • Установка и настройка
  • Установка

Установка

Для включения поддержки SOAP скомпилируйте PHP c опцией --enable-soap .


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

SOAP Опции настройки
Имя | По умолчанию | Меняемо | Список изменений
soap.wsdl_cache_enabled | 1 | PHP_INI_ALL |
soap.wsdl_cache_dir | /tmp | PHP_INI_ALL |
soap.wsdl_cache_ttl | 86400 | PHP_INI_ALL |
soap.wsdl_cache | 1 | PHP_INI_ALL |
soap.wsdl_cache_limit | 5 | PHP_INI_ALL |

Краткое разъяснение конфигурационных директив.

soap.wsdl_cache_enabled integer

Включает или отключает кэширование WSDL.

soap.wsdl_cache_dir string

Устанавливает путь к директории, где расширение SOAP будет хранить кэш-файлы.

soap.wsdl_cache_ttl integer

Устанавливает количество секунд (время жизни) для файлов в кэше, которое они будут использоваться вместо оригинальных файлов.

soap.wsdl_cache integer

Если параметр soap.wsdl_cache_enabled принимает значение "on", то эта опция определяет тип кэширования. Он может быть любым из следующих типов: WSDL_CACHE_NONE (0), WSDL_CACHE_DISK (1), WSDL_CACHE_MEMORY (2) или WSDL_CACHE_BOTH (3). Это также может быть установлено через массив options в конструкторе SoapClient или SoapServer.

soap.wsdl_cache_limit integer

Максимальное количество находящихся в оперативной памяти кэшированных файлов WSDL. Дальнейшее добавление файлов в заполненную кэш-память будет приводить к удалению из нее самых старых файлов.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы SOAP
Константа | Значение | Описание
SOAP_1_1 (integer) | 1 |
SOAP_1_2 (integer) | 2 |
SOAP_PERSISTENCE_SESSION (integer) | 1 |
SOAP_PERSISTENCE_REQUEST (integer) | 2 |
SOAP_FUNCTIONS_ALL (integer) | 999 |
SOAP_ENCODED (integer) | 1 |
SOAP_LITERAL (integer) | 2 |
SOAP_RPC (integer) | 1 |
SOAP_DOCUMENT (integer) | 2 |
SOAP_ACTOR_NEXT (integer) | 1 |
SOAP_ACTOR_NONE (integer) | 2 |
SOAP_ACTOR_UNLIMATERECEIVER (integer) | 3 |
SOAP_COMPRESSION_ACCEPT (integer) | 32 |
SOAP_COMPRESSION_GZIP (integer) | 0 |
SOAP_COMPRESSION_DEFLATE (integer) | 16 |
SOAP_AUTHENTICATION_BASIC (integer) | 0 |
SOAP_AUTHENTICATION_DIGEST (integer) | 1 |
SOAP_SSL_METHOD_TLS (integer) | 0 | С версии PHP 5.5.0.
SOAP_SSL_METHOD_SSLv2 (integer) | 1 | С версии PHP 5.5.0.
SOAP_SSL_METHOD_SSLv3 (integer) | 2 | С версии PHP 5.5.0.
SOAP_SSL_METHOD_SSLv23 (integer) | 3 | С версии PHP 5.5.0.
UNKNOWN_TYPE (integer) | 999998 |
XSD_STRING (integer) | 101 |
XSD_BOOLEAN (integer) | 102 |
XSD_DECIMAL (integer) | 103 |
XSD_FLOAT (integer) | 104 |
XSD_DOUBLE (integer) | 105 |
XSD_DURATION (integer) | 106 |
XSD_DATETIME (integer) | 107 |
XSD_TIME (integer) | 108 |
XSD_DATE (integer) | 109 |
XSD_GYEARMONTH (integer) | 110 |
XSD_GYEAR (integer) | 111 |
XSD_GMONTHDAY (integer) | 112 |
XSD_GDAY (integer) | 113 |
XSD_GMONTH (integer) | 114 |
XSD_HEXBINARY (integer) | 115 |
XSD_BASE64BINARY (integer) | 116 |
XSD_ANYURI (integer) | 117 |
XSD_QNAME (integer) | 118 |
XSD_NOTATION (integer) | 119 |
XSD_NORMALIZEDSTRING (integer) | 120 |
XSD_TOKEN (integer) | 121 |
XSD_LANGUAGE (integer) | 122 |
XSD_NMTOKEN (integer) | 123 |
XSD_NAME (integer) | 124 |
XSD_NCNAME (integer) | 125 |
XSD_ID (integer) | 126 |
XSD_IDREF (integer) | 127 |
XSD_IDREFS (integer) | 128 |
XSD_ENTITY (integer) | 129 |
XSD_ENTITIES (integer) | 130 |
XSD_INTEGER (integer) | 131 |
XSD_NONPOSITIVEINTEGER (integer) | 132 |
XSD_NEGATIVEINTEGER (integer) | 133 |
XSD_LONG (integer) | 134 |
XSD_INT (integer) | 135 |
XSD_SHORT (integer) | 136 |
XSD_BYTE (integer) | 137 |
XSD_NONNEGATIVEINTEGER (integer) | 138 |
XSD_UNSIGNEDLONG (integer) | 139 |
XSD_UNSIGNEDINT (integer) | 140 |
XSD_UNSIGNEDSHORT (integer) | 141 |
XSD_UNSIGNEDBYTE (integer) | 142 |
XSD_POSITIVEINTEGER (integer) | 143 |
XSD_NMTOKENS (integer) | 144 |
XSD_ANYTYPE (integer) | 145 |
XSD_ANYXML (integer) | 147 |
APACHE_MAP (integer) | 200 |
SOAP_ENC_OBJECT (integer) | 301 |
SOAP_ENC_ARRAY (integer) | 300 |
XSD_1999_TIMEINSTANT (integer) | 401 |
XSD_NAMESPACE (integer) | http://www.w3.org/2001/XMLSchema |
XSD_1999_NAMESPACE (integer) | http://www.w3.org/1999/XMLSchema |
SOAP_SINGLE_ELEMENT_ARRAYS (integer) | 1 |
SOAP_WAIT_ONE_WAY_CALLS (integer) | 2 |
SOAP_USE_XSI_ARRAY_TYPE (integer) | 4 |
WSDL_CACHE_NONE (integer) | 0 |
WSDL_CACHE_DISK (integer) | 1 |
WSDL_CACHE_MEMORY (integer) | 2 |
WSDL_CACHE_BOTH (integer) | 3 |


SOAP Функции

Содержание

  • is_soap_fault — Проверяет произошла ли ошибка при вызове SOAP
  • use_soap_error_handler — Указывает, нужно ли использовать обработчик ошибок SOAP


Проверяет произошла ли ошибка при вызове SOAP

  • « SOAP Функции
  • use_soap_error_handler »
  • PHP Manual
  • SOAP Функции
  • Проверяет произошла ли ошибка при вызове SOAP

is_soap_fault

(Unknown)

is_soap_fault — Проверяет произошла ли ошибка при вызове SOAP

Описание

bool is_soap_fault ( mixed $object )

Эта функция полезна для проверки на наличие ошибки при вызове 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 Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faultstring})", E_USER_ERROR);
}
?>

Пример #2 Стандартный метод SOAP для сообщения об ошибках - это исключения

<?php
try {
    $client = new SoapClient("some.wsdl");
    $result = $client->SomeFunction(/* ... */);
} catch (SoapFault $fault) {
    trigger_error("Ошибка SOAP: (faultcode: {$fault->faultcode}, faultstring: {$fault->faultstring})", E_USER_ERROR);
}
?>

Смотрите также

  • SoapClient::SoapClient() - Конструктор SoapClient
  • SoapFault::SoapFault() - SoapFault constructor


Указывает, нужно ли использовать обработчик ошибок SOAP

  • « is_soap_fault
  • SoapClient »
  • PHP Manual
  • SOAP Функции
  • Указывает, нужно ли использовать обработчик ошибок SOAP

use_soap_error_handler

(Unknown)

use_soap_error_handler — Указывает, нужно ли использовать обработчик ошибок SOAP

Описание

bool use_soap_error_handler ([ bool $handler = true ] )

Эта функция определяет, могут ли использоваться обработчики ошибок SOAP в SOAP-сервере. Функция возвращает предыдущее значение. Если установлено в TRUE, то подробности ошибок в приложении с классом SoapServer будут отправлены клиенту в виде сообщения об SOAP ошибке. Если установлено в FALSE, то используется стандартный обработчик ошибок PHP. По умолчанию используется отправка SOAP сообщения об ошибке клиенту.

Список параметров

handler

Для отправки подробностей ошибок клиентам необходимо установить в TRUE.

Возвращаемые значения

Возвращает предыдущее значение.

Смотрите также

  • set_error_handler() - Задает определенный пользователем обработчик ошибок
  • set_exception_handler() - Задает пользовательский обработчик исключений


Класс SoapClient

(PHP 5 >= 5.0.1, PHP 7)

Введение

Класс SoapClient представляет собой клиента для серверов » SOAP 1.1, » SOAP 1.2. Он может быть использован в режиме с WSDL либо в режиме без WSDL.

Обзор классов

SoapClient {
/* Методы */
public mixed __call ( string $function_name , string $arguments )
public SoapClient ( mixed $wsdl [, array $options ] )
public string __doRequest ( string $request , string $location , string $action , int $version [, int $one_way = 0 ] )
public array __getFunctions ( void )
public string __getLastRequest ( void )
public string __getLastRequestHeaders ( void )
public string __getLastResponse ( void )
public string __getLastResponseHeaders ( void )
public array __getTypes ( void )
public void __setCookie ( string $name [, string $value ] )
public string __setLocation ([ string $new_location ] )
public bool __setSoapHeaders ([ mixed $soapheaders ] )
public mixed __soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )
public SoapClient ( mixed $wsdl [, array $options ] )
}

Содержание

  • SoapClient::__call — Вызывает SOAP-функцию (устаревший метод)
  • SoapClient::__construct — Конструктор SoapClient
  • SoapClient::__doRequest — Выполняет SOAP-запрос
  • SoapClient::__getFunctions — Возвращает список доступных SOAP функций
  • SoapClient::__getLastRequest — Возвращает последний SOAP-запрос
  • SoapClient::__getLastRequestHeaders — Возвращает SOAP-заголовки последнего запроса
  • SoapClient::__getLastResponse — Возвращает последний SOAP-ответ
  • SoapClient::__getLastResponseHeaders — Возвращает SOAP-заголовки последнего ответа
  • SoapClient::__getTypes — Возвращает список SOAP-типов
  • SoapClient::__setCookie — Устанавливает cookie
  • SoapClient::__setLocation — Устанавливает адрес используемой веб-службы
  • SoapClient::__setSoapHeaders — Устанавливает SOAP-заголовки для последующих вызовов
  • SoapClient::__soapCall — Вызывает SOAP-функцию
  • SoapClient::SoapClient — Конструктор SoapClient


Вызывает SOAP-функцию (устаревший метод)

  • « SoapClient
  • SoapClient::__construct »
  • PHP Manual
  • SoapClient
  • Вызывает SOAP-функцию (устаревший метод)

SoapClient::__call

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__call — Вызывает SOAP-функцию (устаревший метод)

Описание

public mixed SoapClient::__call ( string $function_name , string $arguments )

Вызов этого метода устарел. Обычно, SOAP функции могут вызываться как методы объекта SoapClient; в ситуациях, когда это невозможно или требуются дополнительные опции, используйте метод SoapClient::__soapCall().


Конструктор SoapClient

  • « SoapClient::__call
  • SoapClient::__doRequest »
  • PHP Manual
  • SoapClient
  • Конструктор SoapClient

SoapClient::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__construct — Конструктор SoapClient

Описание

public SoapClient::SoapClient ( mixed $wsdl [, array $options ] )

Эта функция является псевдонимом: SoapClient::SoapClient()


Выполняет SOAP-запрос

  • « SoapClient::__construct
  • SoapClient::__getFunctions »
  • PHP Manual
  • SoapClient
  • Выполняет SOAP-запрос

SoapClient::__doRequest

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__doRequest — Выполняет SOAP-запрос

Описание

public string SoapClient::__doRequest ( string $request , string $location , string $action , int $version [, int $one_way = 0 ] )

Выполняет SOAP-запрос поверх HTTP.

Этот метод может быть переопределен в подклассах для реализации других транспортных уровней, выполнения дополнительной обработки XML или других целей.

Список параметров

request

XML SOAP запрос.

location

URL для запроса.

action

SOAP-действие.

version

Версия SOAP.

one_way

Если one_way равен 1, то метод ничего не возвращает. Этот параметр используется, когда не ожидается ответа.

Возвращаемые значения

XML SOAP ответ.

Список изменений

Версия | Описание
5.1.3 | Добавлен параметр one_way.

Примеры

Пример #1 Пример использования SoapClient::__doRequest()

<?php
function Add($x,$y) {
  return $x+$y;
}

class LocalSoapClient extends SoapClient {

  function __construct($wsdl, $options) {
    parent::__construct($wsdl, $options);
    $this->server = new SoapServer($wsdl, $options);
    $this->server->addFunction('Add');
  }

  function __doRequest($request, $location, $action, $version, $one_way = 0) {
    ob_start();
    $this->server->handle($request);
    $response = ob_get_contents();
    ob_end_clean();
    return $response;
  }

}

$x = new LocalSoapClient(NULL,array('location'=>'test://',
                                   'uri'=>'http://testuri.org'));
var_dump($x->Add(3,4));
?>


Возвращает список доступных SOAP функций

  • « SoapClient::__doRequest
  • SoapClient::__getLastRequest »
  • PHP Manual
  • SoapClient
  • Возвращает список доступных SOAP функций

SoapClient::__getFunctions

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__getFunctions — Возвращает список доступных SOAP функций

Описание

public array SoapClient::__getFunctions ( void )

Возвращает массив функций веб-служб, описанных в WSDL.

Замечание:

Эта функция работает только в режиме WSDL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) прототипов SOAP функций c описанием типа возвращаемого значения, имени функции и параметров с типами.

Примеры

Пример #1 Пример использования SoapClient::__getFunctions()

<?php
$client = new SoapClient('http://soap.amazon.com/schemas3/AmazonWebServices.wsdl');
var_dump($client->__getFunctions());
?>

Результат выполнения данного примера:

array(26) {
  [0]=>
  string(70) "ProductInfo KeywordSearchRequest(KeywordRequest $KeywordSearchRequest)"
  [1]=>
  string(79) "ProductInfo TextStreamSearchRequest(TextStreamRequest $TextStreamSearchRequest)"
  [2]=>
  string(64) "ProductInfo PowerSearchRequest(PowerRequest $PowerSearchRequest)"
...
  [23]=>
  string(107) "ShoppingCart RemoveShoppingCartItemsRequest(RemoveShoppingCartItemsRequest $RemoveShoppingCartItemsRequest)"
  [24]=>
  string(107) "ShoppingCart ModifyShoppingCartItemsRequest(ModifyShoppingCartItemsRequest $ModifyShoppingCartItemsRequest)"
  [25]=>
  string(118) "GetTransactionDetailsResponse GetTransactionDetailsRequest(GetTransactionDetailsRequest $GetTransactionDetailsRequest)"
}

Смотрите также

  • SoapClient::SoapClient() - Конструктор SoapClient


Возвращает последний SOAP-запрос

  • « SoapClient::__getFunctions
  • SoapClient::__getLastRequestHeaders »
  • PHP Manual
  • SoapClient
  • Возвращает последний SOAP-запрос

SoapClient::__getLastRequest

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__getLastRequest — Возвращает последний SOAP-запрос

Описание

public string SoapClient::__getLastRequest ( void )

Возвращает XML, переданный в последнем SOAP-запросе.

Замечание:

Метод работает только для объекта SoapClient, созданного с настройкой trace, равной TRUE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Последний SOAP-запрос в виде строки с XML.

Примеры

Пример #1 Пример использования SoapClient::__getLastRequest()

<?php
$client = new SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "REQUEST:\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 >= 5.0.1, PHP 7)

SoapClient::__getLastRequestHeaders — Возвращает SOAP-заголовки последнего запроса

Описание

public string SoapClient::__getLastRequestHeaders ( void )

Возвращает SOAP-заголовки последнего запроса.

Замечание:

Функция работает только, если объект SoapClient был создан с настройкой trace, равной TRUE.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Заголовки последнего SOAP-запроса.

Примеры

Пример #1 Пример использования SoapClient::__getLastRequestHeaders()

<?php
$client = SoapClient("some.wsdl", array('trace' => 1));
$result = $client->SomeFunction();
echo "REQUEST HEADERS:\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 >= 5.0.1, PHP 7)

SoapClient::__getLastResponse — Возвращает последний SOAP-ответ

Описание

public string SoapClient::__getLastResponse ( void )

Возвращает 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 >= 5.0.1, PHP 7)

SoapClient::__getLastResponseHeaders — Возвращает SOAP-заголовки последнего ответа

Описание

public string SoapClient::__getLastResponseHeaders ( void )

Возвращает 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 >= 5.0.1, PHP 7)

SoapClient::__getTypes — Возвращает список SOAP-типов

Описание

public array SoapClient::__getTypes ( void )

Возвращает массив типов, описанных в WSDL для веб-службы.

Замечание:

Эта функция работает только в режиме WSDL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Массив (array) SOAP-типов с подробным описанием всех структур и типов.

Примеры

Пример #1 Пример использования SoapClient::__getTypes()

<?php
$client = new SoapClient('http://soap.amazon.com/schemas3/AmazonWebServices.wsdl');
var_dump($client->__getTypes());
?>

Результат выполнения данного примера:

array(88) {
  [0]=>
  string(30) "ProductLine ProductLineArray[]"
  [1]=>
  string(85) "struct ProductLine {
 string Mode;
 string RelevanceRank;
 ProductInfo ProductInfo;
}"
  [2]=>
  string(105) "struct ProductInfo {
 string TotalResults;
 string TotalPages;
 string ListName;
 DetailsArray Details;
}"
...
  [85]=>
  string(32) "ShortSummary ShortSummaryArray[]"
  [86]=>
  string(121) "struct GetTransactionDetailsRequest {
 string tag;
 string devtag;
 string key;
 OrderIdArray OrderIds;
 string locale;
}"
  [87]=>
  string(75) "struct GetTransactionDetailsResponse {
 ShortSummaryArray ShortSummaries;
}"
}

Смотрите также

  • SoapClient::SoapClient() - Конструктор SoapClient


Устанавливает cookie

  • « SoapClient::__getTypes
  • SoapClient::__setLocation »
  • PHP Manual
  • SoapClient
  • Устанавливает cookie

SoapClient::__setCookie

(PHP 5 >= 5.0.4, PHP 7)

SoapClient::__setCookie — Устанавливает cookie

Описание

public void SoapClient::__setCookie ( string $name [, string $value ] )

Определяет cookie, которые будут отправлены с SOAP-запросами.

Замечание:

Вызов этого метода отразится на всех последующих вызовах методов SoapClient.

Список параметров

name

Имя cookie.

value

Значение cookie. Если не указано, то cookie удаляется.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Устанавливает адрес используемой веб-службы

  • « SoapClient::__setCookie
  • SoapClient::__setSoapHeaders »
  • PHP Manual
  • SoapClient
  • Устанавливает адрес используемой веб-службы

SoapClient::__setLocation

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__setLocation — Устанавливает адрес используемой веб-службы

Описание

public string SoapClient::__setLocation ([ string $new_location ] )

Устанавливает URL, затрагивающий последующие SOAP-запросы. Эквивалентна настройке location, указываемой в конструкторе SoapClient.

Замечание:

Вызов метода необязателен. По умолчанию SoapClient использует адрес из WSDL-файла.

Список параметров

new_location

Новый URL.

Возвращаемые значения

Старый URL.

Примеры

Пример #1 Пример использования SoapClient::__setLocation()

<?php
$client = new SoapClient('http://example.com/webservice.php?wsdl');

$client->__setLocation('http://www.somethirdparty.com');

$old_location = $client->__setLocation(); // сбрасывает настройку адреса (location)

echo $old_location;

?>

Результатом выполнения данного примера будет что-то подобное:

http://www.somethirdparty.com

Смотрите также

  • SoapClient::SoapClient() - Конструктор SoapClient


Устанавливает SOAP-заголовки для последующих вызовов

  • « SoapClient::__setLocation
  • SoapClient::__soapCall »
  • PHP Manual
  • SoapClient
  • Устанавливает SOAP-заголовки для последующих вызовов

SoapClient::__setSoapHeaders

(PHP 5 >= 5.0.5, PHP 7)

SoapClient::__setSoapHeaders — Устанавливает SOAP-заголовки для последующих вызовов

Описание

public bool SoapClient::__setSoapHeaders ([ mixed $soapheaders ] )

Определяет заголовки, которые буду отправлены с SOAP-запросами.

Замечание:

Вызов этого метода перезаписывает предыдущие значения.

Список параметров

soapheaders

Устанавливаемые заголовки. Это может быть объект SoapHeader или массив объектов SoapHeader. Если не указаны или равны NULL, то заголовки удалятся.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования SoapClient::__setSoapHeaders()

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$header = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world');

$client->__setSoapHeaders($header);

$client->__soapCall("echoVoid", null);
?>

Пример #2 Установка нескольких заголовков

<?php

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$headers = array();

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world');

$headers[] = new SoapHeader('http://soapinterop.org/echoheader/',
                            'echoMeStringRequest',
                            'hello world again');

$client->__setSoapHeaders($headers);

$client->__soapCall("echoVoid", null);
?>


Вызывает SOAP-функцию

  • « SoapClient::__setSoapHeaders
  • SoapClient::SoapClient »
  • PHP Manual
  • SoapClient
  • Вызывает SOAP-функцию

SoapClient::__soapCall

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::__soapCall — Вызывает SOAP-функцию

Описание

public mixed SoapClient::__soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )

Это низкоуровневая функция API, которая позволяет сделать SOAP-вызов. Обычно в WSDL-режиме SOAP-функции вызываются как методы объекта SoapClient. Этот же метод полезен в не WSDL-режиме, когда soapaction не известен, uri отличается от URI по умолчанию или когда отправляются и/или принимаются SOAP-заголовки.

В случае ошибки, вызов SOAP-функции может привести к исключению или к возврату объекта SoapFault, если исключения отключены. Проверить, что вызов функции завершился неудачей, можно обработав исключение SoapFault или проверить результат с помощью функции is_soap_fault().

Список параметров

function_name

Имя вызываемой SOAP-функции.

arguments

Массив аргументов, передаваемых в функцию. Это может быть упорядоченный или ассоциативный массив. Обратите внимание, что большинство SOAP серверов требуют предоставлять имена параметров, и в этом случае это должен быть ассоциативный массив.

options

Ассоциативный массив настроек, передаваемых клиенту.

Настройка location - URL удаленной веб-службы.

Настройка uri - целевое пространство имен SOAP-службы.

Настройка soapaction - действия для вызова.

input_headers

Массив заголовков, которые будут отправлены с SOAP-запросом.

output_headers

Если указан, то этот массив будет заполнен заголовками SOAP-ответа.

Возвращаемые значения

SOAP-функции могут возвращать одно или несколько значений. Если SOAP-функция возвращает только одно значение, то __soapCall вернет простое значение (например, число, строку и так далее). Если возвращается несколько значений, то __soapCall вернет ассоциативный массив именованных возвращаемых параметров.

В случае ошибки, если объект SoapClient был создан с настройкой exceptions, установленной в FALSE, будет возвращен объект SoapFault.

Примеры

Пример #1 Пример использования SoapClient::__soapCall()

<?php

$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);

$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c), NULL,
                    new SoapHeader(), $output_headers);

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->SomeFunction($a, $b, $c);
$client->__soapCall("SomeFunction", array($a, $b, $c));
$client->__soapCall("SomeFunction", array($a, $b, $c),
                    array('soapaction' => 'some_action',
                          'uri'        => 'some_uri'));
?>

Смотрите также

  • SoapClient::SoapClient() - Конструктор SoapClient
  • SoapParam::SoapParam() - SoapParam constructor
  • SoapVar::SoapVar() - SoapVar constructor
  • SoapHeader::SoapHeader() - SoapHeader constructor
  • SoapFault::SoapFault() - SoapFault constructor
  • is_soap_fault() - Проверяет произошла ли ошибка при вызове SOAP


Конструктор SoapClient

  • « SoapClient::__soapCall
  • SoapServer »
  • PHP Manual
  • SoapClient
  • Конструктор SoapClient

SoapClient::SoapClient

(PHP 5 >= 5.0.1, PHP 7)

SoapClient::SoapClient — Конструктор SoapClient

Описание

public SoapClient::SoapClient ( mixed $wsdl [, array $options ] )

Конструктор создает объект SoapClient в WSDL или не-WSDL режиме.

Список параметров

wsdl

URI файла WSDL или NULL, если работа происходит в режиме не-WSDL.

Замечание:

Во время разработки кэширование WSDL можно отключить, используя настройку soap.wsdl_cache_ttl в php.ini, иначе изменения, сделанные в WSDL файле, не будут иметь эффекта до тех пор, пока не истечет время, указанное в soap.wsdl_cache_ttl.

options

Массив настроек. Если работа происходит в режиме WSDL, то этот параметр необязательный. Если в не-WSDL режиме, то должны быть установлены опции location и uri, где location - URL сервера SOAP, к которому отправляется запрос, и uri - целевое пространство имен SOAP-сервиса.

Опции style и use используются только в не-WSDL режиме. В WSDL режиме они берутся из WSDL файла.

Опция soap_version должна быть равна либо SOAP_1_1 либо SOAP_1_2, чтобы использовать соответственно SOAP 1.1 или 1.2. Если параметр пропущен, то используется 1.1 . будет ли использоваться SOAP-клиент версии 1.1 (по умолчанию) или 1.2.

Для HTTP аутентификации могут быть использованы опции login и password для получения полномочий. Для реализации HTTP соединения через proxy-сервер используются настройки proxy_host, proxy_port, proxy_login и proxy_password. Для HTTPS сертификата аутентификации клиента используются опции local_cert и passphrase. Аутентификация может быть передана через authentication. Метод аутентификации может быть SOAP_AUTHENTICATION_BASIC (по умолчанию) или SOAP_AUTHENTICATION_DIGEST.

Опция compression позволяет сжимать запросы и ответы HTTP SOAP.

Опция encoding определяет внутреннюю кодировку. Опция не меняет кодировку SOAP-запросов (она всегда utf-8), но преобразует строки в нее.

Опция trace включает отслеживание запроса и в случае ошибки можно получить обратную трассировку. По умолчанию имеет значение FALSE.

Опция classmap может использоваться для перевода некоторых WSDL-типов в PHP классы. Опция должна представлять собой массив, в качестве ключей которого указаны WSDL-типы, а в качестве значений - имена PHP классов.

Установленная булевая опция trace
позволяет использовать следующие методы:

SoapClient->__getLastRequest,

SoapClient->__getLastRequestHeaders,

SoapClient->__getLastResponse и

SoapClient->__getLastResponseHeaders.

Опция exceptions принимает булевые значения и определяет будут ли SOAP-ошибки бросать исключения типа SoapFault.

Опция connection_timeout определяет тайм-аут в секундах для соединения с SOAP-сервисом. Опция не устанавливает тайм-аут для сервисов с медленными ответами. Для ограничения времени ожидания вызовов используется default_socket_timeout.

Опция typemap является массивом сопоставления типов. Массив сопоставления типов - это массив с ключами type_name, type_ns (URI пространства имен), from_xml (функция обратного вызова принимает один строковый параметр) и to_xml (функция обратного вызова принимает объект в качестве параметра).

Опция cache_wsdl принимает одно из значений: WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY или WSDL_CACHE_BOTH.

Опция user_agent определяет строку для использования в User-Agent заголовке.

Опция stream_context - это resource для context.

Опция features является битовой маской SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE, SOAP_WAIT_ONE_WAY_CALLS.

Опция keep_alive принимает булево значение, определяющее какой заголовок отправлять: Connection: Keep-Alive или Connection: close.

Опция ssl_method должна быть равной SOAP_SSL_METHOD_TLS, SOAP_SSL_METHOD_SSLv2, SOAP_SSL_METHOD_SSLv3 или SOAP_SSL_METHOD_SSLv23.

Ошибки

SoapClient::SoapClient() будет бросать ошибку E_ERROR, если опции location и uri не передаются в не-WSDL режиме.

Исключение SoapFault будет брошено, если wsdl URI не может быть загружена.

Список изменений

Версия | Описание
5.5.0 | Новая опция ssl_method.
5.4.0 | Новая опция keep_alive.

Примеры

Пример #1 Пример использования SoapClient::SoapClient()

<?php

$client = new SoapClient("some.wsdl");

$client = new SoapClient("some.wsdl", array('soap_version'   => SOAP_1_2));

$client = new SoapClient("some.wsdl", array('login'          => "some_name",
                                            'password'       => "some_password"));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080));

$client = new SoapClient("some.wsdl", array('proxy_host'     => "localhost",
                                            'proxy_port'     => 8080,
                                            'proxy_login'    => "some_name",
                                            'proxy_password' => "some_password"));

$client = new SoapClient("some.wsdl", array('local_cert'     => "cert_key.pem"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));

$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/",
                                     'style'    => SOAP_DOCUMENT,
                                     'use'      => SOAP_LITERAL));

$client = new SoapClient("some.wsdl",
  array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));

$client = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));

class MyBook {
    public $title;
    public $author;
}

$client = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>


Класс SoapServer

(PHP 5 >= 5.0.1, PHP 7)

Введение

Класс SoapServer представляет собой сервер для протоколов » SOAP 1.1 и » SOAP 1.2. Он может быть использован с или без WSDL-описания сервиса.

Обзор классов

SoapServer {
/* Методы */
public void addFunction ( mixed $functions )
public void addSoapHeader ( SoapHeader $object )
public __construct ( mixed $wsdl [, array $options ] )
public void fault ( string $code , string $string [, string $actor [, string $details [, string $name ]]] )
public array getFunctions ( void )
public void handle ([ string $soap_request ] )
public void setClass ( string $class_name [, mixed $args [, mixed $... ]] )
public void setObject ( object $object )
public void setPersistence ( int $mode )
public SoapServer ( mixed $wsdl [, array $options ] )
}

Содержание

  • SoapServer::addFunction — Adds one or more functions to handle SOAP requests
  • SoapServer::addSoapHeader — Add a SOAP header to the response
  • SoapServer::__construct — SoapServer constructor
  • SoapServer::fault — Issue SoapServer fault indicating an error
  • SoapServer::getFunctions — Returns list of defined functions
  • SoapServer::handle — Handles a SOAP request
  • SoapServer::setClass — Устанавливает класс, который будет обрабатывать SOAP-запросы
  • SoapServer::setObject — Sets the object which will be used to handle SOAP requests
  • SoapServer::setPersistence — Sets SoapServer persistence mode
  • SoapServer::SoapServer — SoapServer constructor


Adds one or more functions to handle SOAP requests

  • « SoapServer
  • SoapServer::addSoapHeader »
  • PHP Manual
  • SoapServer
  • Adds one or more functions to handle SOAP requests

SoapServer::addFunction

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::addFunction — Adds one or more functions to handle SOAP requests

Описание

public void SoapServer::addFunction ( mixed $functions )

Exports one or more functions for remote clients

Список параметров

functions

To export one function, pass the function name into this parameter as a string.

To export several functions, pass an array of function names.

To export all the functions, pass a special constant SOAP_FUNCTIONS_ALL.

Замечание:

functions must receive all input arguments in the same order as defined in the WSDL file (They should not receive any output parameters as arguments) and return one or more values. To return several values they must return an array with named output parameters.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 SoapServer::addFunction() example

<?php

function echoString($inputString)
{
    return $inputString;
}

$server->addFunction("echoString");

function echoTwoStrings($inputString1, $inputString2)
{
    return array("outputString1" => $inputString1,
                 "outputString2" => $inputString2);
}
$server->addFunction(array("echoString", "echoTwoStrings"));

$server->addFunction(SOAP_FUNCTIONS_ALL);

?>

Смотрите также

  • SoapServer::SoapServer() - SoapServer constructor
  • SoapServer::setClass() - Устанавливает класс, который будет обрабатывать SOAP-запросы


Add a SOAP header to the response

  • « SoapServer::addFunction
  • SoapServer::__construct »
  • PHP Manual
  • SoapServer
  • Add a SOAP header to the response

SoapServer::addSoapHeader

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::addSoapHeader — Add a SOAP header to the response

Описание

public void SoapServer::addSoapHeader ( SoapHeader $object )

Adds a SOAP header to be returned with the response to the current request.

Список параметров

object

The header to be returned.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


SoapServer constructor

  • « SoapServer::addSoapHeader
  • SoapServer::fault »
  • PHP Manual
  • SoapServer
  • SoapServer constructor

SoapServer::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::__construct — SoapServer constructor

Описание

public SoapServer::__construct ( mixed $wsdl [, array $options ] )

Эта функция является псевдонимом: SoapServer::SoapServer()


Issue SoapServer fault indicating an error

  • « SoapServer::__construct
  • SoapServer::getFunctions »
  • PHP Manual
  • SoapServer
  • Issue SoapServer fault indicating an error

SoapServer::fault

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::fault — Issue SoapServer fault indicating an error

Описание

public void SoapServer::fault ( string $code , string $string [, string $actor [, string $details [, string $name ]]] )

Sends a response to the client of the current request indicating an error.

Замечание:

This can only be called when handling a request.

Список параметров

code

The error code to return

string

A brief description of the error

actor

A string identifying the actor that caused the fault.

details

More details of the fault

name

The name of the fault. This can be used to select a name from a WSDL file.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SoapFault::SoapFault() - SoapFault constructor


Returns list of defined functions

  • « SoapServer::fault
  • SoapServer::handle »
  • PHP Manual
  • SoapServer
  • Returns list of defined functions

SoapServer::getFunctions

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::getFunctions — Returns list of defined functions

Описание

public array SoapServer::getFunctions ( void )

Returns a list of the defined functions in the SoapServer object. This method returns the list of all functions added by SoapServer::addFunction() or SoapServer::setClass().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

An array of the defined functions.

Примеры

Пример #1 SoapServer::getFunctions() example

<?php
$server = new SoapServer(NULL, array("uri" => "http://test-uri"));
$server->addFunction(SOAP_FUNCTIONS_ALL);
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $server->handle();
} else {
  echo "This SOAP server can handle following functions: ";
  $functions = $server->getFunctions();
  foreach($functions as $func) {
    echo $func . "\n";
  }
}
?>

Смотрите также

  • SoapServer::SoapServer() - SoapServer constructor
  • SoapServer::addFunction() - Adds one or more functions to handle SOAP requests
  • SoapServer::setClass() - Устанавливает класс, который будет обрабатывать SOAP-запросы


Handles a SOAP request

  • « SoapServer::getFunctions
  • SoapServer::setClass »
  • PHP Manual
  • SoapServer
  • Handles a SOAP request

SoapServer::handle

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::handle — Handles a SOAP request

Описание

public void SoapServer::handle ([ string $soap_request ] )

Processes a SOAP request, calls necessary functions, and sends a response back.

Список параметров

soap_request

The SOAP request. If this argument is omitted, the request is assumed to be in the raw POST data of the HTTP request.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 SoapServer::handle() example

<?php
function test($x)
{
    return $x;
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Смотрите также

  • SoapServer::SoapServer() - SoapServer constructor


Устанавливает класс, который будет обрабатывать SOAP-запросы

  • « SoapServer::handle
  • SoapServer::setObject »
  • PHP Manual
  • SoapServer
  • Устанавливает класс, который будет обрабатывать SOAP-запросы

SoapServer::setClass

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::setClass — Устанавливает класс, который будет обрабатывать SOAP-запросы

Описание

public void SoapServer::setClass ( string $class_name [, mixed $args [, mixed $... ]] )

Экспортирует все методы из заданного класса

Чтобы сохранить объект для каждого последующего запроса в рамках данной PHP-сессии, можно использовать метод SoapServer::setPersistence()

Список параметров

class_name

Имя передаваемого класса.

args

Необязательные параметры, которые будут переданы в конструктор класса в процессе создания объекта.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SoapServer::SoapServer() - SoapServer constructor
  • SoapServer::addFunction() - Adds one or more functions to handle SOAP requests
  • SoapServer::setPersistence() - Sets SoapServer persistence mode


Sets the object which will be used to handle SOAP requests

  • « SoapServer::setClass
  • SoapServer::setPersistence »
  • PHP Manual
  • SoapServer
  • Sets the object which will be used to handle SOAP requests

SoapServer::setObject

(PHP 5 >= 5.2.0, PHP 7)

SoapServer::setObject — Sets the object which will be used to handle SOAP requests

Описание

public void SoapServer::setObject ( object $object )

This sets a specific object as the handler for SOAP requests, rather than just a class as in SoapServer::setClass().

Список параметров

object

The object to handle the requests.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • SoapServer::setClass() - Устанавливает класс, который будет обрабатывать SOAP-запросы


Sets SoapServer persistence mode

  • « SoapServer::setObject
  • SoapServer::SoapServer »
  • PHP Manual
  • SoapServer
  • Sets SoapServer persistence mode

SoapServer::setPersistence

(PHP 5 >= 5.1.2, PHP 7)

SoapServer::setPersistence — Sets SoapServer persistence mode

Описание

public void SoapServer::setPersistence ( int $mode )

This function allows changing the persistence state of a SoapServer object between requests. This function allows saving data between requests utilizing PHP sessions. This method only has an affect on a SoapServer after it has exported functions utilizing SoapServer::setClass().

Замечание:

The persistence of SOAP_PERSISTENCE_SESSION makes only objects of the given class persistent, but not the class static data. In this case, use $this->bar instead of self::$bar.

Замечание:

SOAP_PERSISTENCE_SESSION serializes data on the class object between requests. In order to properly utilize resources (e.g. PDO), __wakeup() and __sleep() magic methods should be utilized.

Список параметров

mode

One of the SOAP_PERSISTENCE_XXX constants.

SOAP_PERSISTENCE_REQUEST - SoapServer data does not persist between requests. This is the default behavior of any SoapServer object after setClass is called.

SOAP_PERSISTENCE_SESSION - SoapServer data persists between requests. This is accomplished by serializing the SoapServer class data into $_SESSION['_bogus_session_name'], because of this session_start() must be called before this persistence mode is set.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 SoapServer::setPersistence() example

<?php
 class MyFirstPersistentSoapServer {
     private $resource; // (Such as PDO, mysqli, etc..)
     public $myvar1;
     public $myvar2;

     public function __construct() {
         $this->__wakeup(); // We're calling our wakeup to handle starting our resource
     }

     public function __wakeup() {
         $this->resource = CodeToStartOurResourceUp();
     }

     public function __sleep() {
         // We make sure to leave out $resource here, so our session data remains persistent
         // Failure to do so will result in the failure during the unserialization of data
         // on the next request; thus, our SoapObject would not be persistent across requests.
         return array('myvar1','myvar2');
     }
 }

 try {
     session_start();
     $server = new SoapServer(null, array('uri' => $_SERVER['REQUEST_URI']));
     $server->setClass('MyFirstPersistentSoapServer');
     // setPersistence MUST be called after setClass, because setClass's
     // behavior sets SESSION_PERSISTENCE_REQUEST upon enacting the method.
     $server->setPersistence(SOAP_PERSISTENCE_SESSION);
     $server->handle();
 } catch(SoapFault $e) {
     error_log("SOAP ERROR: ". $e->getMessage());
 }
?>

Смотрите также

  • SoapServer::setClass() - Устанавливает класс, который будет обрабатывать SOAP-запросы


SoapServer constructor

  • « SoapServer::setPersistence
  • SoapFault »
  • PHP Manual
  • SoapServer
  • SoapServer constructor

SoapServer::SoapServer

(PHP 5 >= 5.0.1, PHP 7)

SoapServer::SoapServer — SoapServer constructor

Описание

public SoapServer::SoapServer ( mixed $wsdl [, array $options ] )

This constructor allows the creation of SoapServer objects in WSDL or non-WSDL mode.

Список параметров

wsdl

To use the SoapServer in WSDL mode, pass the URI of a WSDL file. Otherwise, pass NULL and set the uri option to the target namespace for the server.

options

Allow setting a default SOAP version (soap_version), internal character encoding (encoding), and actor URI (actor).

The classmap option can be used to map some WSDL types to PHP classes. This option must be an array with WSDL types as keys and names of PHP classes as values.

The typemap option is an array of type mappings. Type mapping is an array with keys type_name, type_ns (namespace URI), from_xml (callback accepting one string parameter) and to_xml (callback accepting one object parameter).

The cache_wsdl option is one of WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY or WSDL_CACHE_BOTH.

There is also a features option which can be set to SOAP_WAIT_ONE_WAY_CALLS, SOAP_SINGLE_ELEMENT_ARRAYS, SOAP_USE_XSI_ARRAY_TYPE.

The send_errors option can be set to FALSE to sent a generic error message ("Internal error") instead of the specific error message sent otherwise.

Примеры

Пример #1 SoapServer::SoapServer() example

<?php

$server = new SoapServer("some.wsdl");

$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));

$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));

$server = new SoapServer("some.wsdl", array('encoding'=>'ISO-8859-1'));

$server = new SoapServer(null, array('uri' => "http://test-uri/"));

class MyBook {
    public $title;
    public $author;
}

$server = new SoapServer("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>

Список изменений

Версия | Описание
5.2.0 | Added the typemap option.

Смотрите также

  • SoapClient::SoapClient() - Конструктор SoapClient


Класс SoapFault

(PHP 5 >= 5.0.1, PHP 7)

Введение

Представляет ошибку SOAP.

Обзор классов

SoapFault extends Exception {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Методы */
__construct ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )
SoapFault ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )
public string __toString ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Содержание

  • SoapFault::__construct — SoapFault constructor
  • SoapFault::SoapFault — SoapFault constructor
  • SoapFault::__toString — Obtain a string representation of a SoapFault


SoapFault constructor

  • « SoapFault
  • SoapFault::SoapFault »
  • PHP Manual
  • SoapFault
  • SoapFault constructor

SoapFault::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapFault::__construct — SoapFault constructor

Описание

SoapFault::__construct ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )

Эта функция является псевдонимом: SoapFault::SoapFault()


SoapFault constructor

  • « SoapFault::__construct
  • SoapFault::__toString »
  • PHP Manual
  • SoapFault
  • SoapFault constructor

SoapFault::SoapFault

(PHP 5 >= 5.0.1, PHP 7)

SoapFault::SoapFault — SoapFault constructor

Описание

SoapFault::SoapFault ( string $faultcode , string $faultstring [, string $faultactor [, string $detail [, string $faultname [, string $headerfault ]]]] )

This class is used to send SOAP fault responses from the PHP handler. faultcode, faultstring, faultactor and detail are standard elements of a SOAP Fault.

Список параметров

faultcode

The error code of the SoapFault.

faultstring

The error message of the SoapFault.

faultactor

A string identifying the actor that caused the error.

detail

More details about the cause of the error.

faultname

Can be used to select the proper fault encoding from WSDL.

headerfault

Can be used during SOAP header handling to report an error in the response header.

Примеры

Пример #1 Some examples

<?php
function test($x)
{
    return new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

It is possible to use PHP exception mechanism to throw SOAP Fault.

Пример #2 Some examples

<?php
function test($x)
{
    throw new SoapFault("Server", "Some error message");
}

$server = new SoapServer(null, array('uri' => "http://test-uri/"));
$server->addFunction("test");
$server->handle();
?>

Смотрите также

  • SoapServer::fault() - Issue SoapServer fault indicating an error
  • is_soap_fault() - Проверяет произошла ли ошибка при вызове SOAP


Obtain a string representation of a SoapFault

  • « SoapFault::SoapFault
  • SoapHeader »
  • PHP Manual
  • SoapFault
  • Obtain a string representation of a SoapFault

SoapFault::__toString

(PHP 5 >= 5.0.1, PHP 7)

SoapFault::__toString — Obtain a string representation of a SoapFault

Описание

public string SoapFault::__toString ( void )

Returns a string representation of the SoapFault.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

A string describing the SoapFault.


Класс SoapHeader

(PHP 5 >= 5.0.1, PHP 7)

Введение

Представляет заголовок SOAP.

Обзор классов

SoapHeader {
/* Методы */
__construct ( string $namespace , string $name [, mixed $data [, bool $mustunderstand [, string $actor ]]] )
SoapHeader ( string $namespace , string $name [, mixed $data [, bool $mustunderstand = false [, string $actor ]]] )
}

Содержание

  • SoapHeader::__construct — SoapHeader constructor
  • SoapHeader::SoapHeader — SoapHeader constructor


SoapHeader constructor

  • « SoapHeader
  • SoapHeader::SoapHeader »
  • PHP Manual
  • SoapHeader
  • SoapHeader constructor

SoapHeader::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapHeader::__construct — SoapHeader constructor

Описание

SoapHeader::__construct ( string $namespace , string $name [, mixed $data [, bool $mustunderstand [, string $actor ]]] )

Эта функция является псевдонимом: SoapHeader::SoapHeader()


SoapHeader constructor

  • « SoapHeader::__construct
  • SoapParam »
  • PHP Manual
  • SoapHeader
  • SoapHeader constructor

SoapHeader::SoapHeader

(PHP 5 >= 5.0.1, PHP 7)

SoapHeader::SoapHeader — SoapHeader constructor

Описание

SoapHeader::SoapHeader ( string $namespace , string $name [, mixed $data [, bool $mustunderstand = false [, string $actor ]]] )

Constructs a new SoapHeader object.

Список параметров

namespace

The namespace of the SOAP header element.

name

The name of the SoapHeader object.

data

A SOAP header's content. It can be a PHP value or a SoapVar object.

mustUnderstand

Value of the mustUnderstand attribute of the SOAP header element.

actor

Value of the actor attribute of the SOAP header element.

Примеры

Пример #1 SoapHeader::SoapHeader() example

<?php
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$client->__soapCall("echoVoid", null, null,
                new SoapHeader('http://soapinterop.org/echoheader/',
                               'echoMeStringRequest',
                               'hello world'));
?>

Смотрите также

  • SoapClient::__soapCall() - Вызывает SOAP-функцию
  • SoapVar::SoapVar() - SoapVar constructor
  • SoapParam::SoapParam() - SoapParam constructor
  • SoapServer::addSoapHeader() - Add a SOAP header to the response


Класс SoapParam

(PHP 5 >= 5.0.1, PHP 7)

Введение

Представляет параметры для вызова SOAP.

Обзор классов

SoapParam {
/* Методы */
__construct ( mixed $data , string $name )
SoapParam ( mixed $data , string $name )
}

Содержание

  • SoapParam::__construct — SoapParam constructor
  • SoapParam::SoapParam — SoapParam constructor


SoapParam constructor

  • « SoapParam
  • SoapParam::SoapParam »
  • PHP Manual
  • SoapParam
  • SoapParam constructor

SoapParam::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapParam::__construct — SoapParam constructor

Описание

SoapParam::__construct ( mixed $data , string $name )

Эта функция является псевдонимом: SoapParam::SoapParam()


SoapParam constructor

  • « SoapParam::__construct
  • SoapVar »
  • PHP Manual
  • SoapParam
  • SoapParam constructor

SoapParam::SoapParam

(PHP 5 >= 5.0.1, PHP 7)

SoapParam::SoapParam — SoapParam constructor

Описание

SoapParam::SoapParam ( mixed $data , string $name )

Constructs a new SoapParam object.

Список параметров

data

The data to pass or return. This parameter can be passed directly as PHP value, but in this case it will be named as paramN and the SOAP service may not understand it.

name

The parameter name.

Примеры

Пример #1 SoapParam::SoapParam() example

<?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 constructor


Класс SoapVar

(PHP 5 >= 5.0.1, PHP 7)

Введение

Класс, представляющий переменную или объект для использования с сервисами SOAP.

Обзор классов

SoapVar {
/* Методы */
__construct ( mixed $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )
SoapVar ( mixed $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )
}

Содержание

  • SoapVar::__construct — SoapVar constructor
  • SoapVar::SoapVar — SoapVar constructor


SoapVar constructor

  • « SoapVar
  • SoapVar::SoapVar »
  • PHP Manual
  • SoapVar
  • SoapVar constructor

SoapVar::__construct

(PHP 5 >= 5.0.1, PHP 7)

SoapVar::__construct — SoapVar constructor

Описание

SoapVar::__construct ( mixed $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )

Эта функция является псевдонимом: SoapVar::SoapVar()


SoapVar constructor

  • « SoapVar::__construct
  • Yar »
  • PHP Manual
  • SoapVar
  • SoapVar constructor

SoapVar::SoapVar

(PHP 5 >= 5.0.1, PHP 7)

SoapVar::SoapVar — SoapVar constructor

Описание

SoapVar::SoapVar ( mixed $data , string $encoding [, string $type_name [, string $type_namespace [, string $node_name [, string $node_namespace ]]]] )

Constructs a new SoapVar object.

Список параметров

data

The data to pass or return.

encoding

The encoding ID, one of the XSD_... constants.

type_name

The type name.

type_namespace

The type namespace.

node_name

The XML node name.

node_namespace

The XML node namespace.

Примеры

Пример #1 SoapVar::SoapVar() example

<?php
class SOAPStruct {
    function SOAPStruct($s, $i, $f)
    {
        $this->varString = $s;
        $this->varInt = $i;
        $this->varFloat = $f;
    }
}
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
                                     'uri'      => "http://test-uri/"));
$struct = new SOAPStruct('arg', 34, 325.325);
$soapstruct = new SoapVar($struct, SOAP_ENC_OBJECT, "SOAPStruct", "http://soapinterop.org/xsd");
$client->echoStruct(new SoapParam($soapstruct, "inputStruct"));
?>

Смотрите также

  • SoapClient::__soapCall() - Вызывает SOAP-функцию
  • SoapParam::SoapParam() - SoapParam constructor


Yet Another RPC Framework

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • Yar_Server — The Yar_Server class
    • Yar_Server::__construct — Register a server
    • Yar_Server::handle — Start RPC Server
  • Yar_Client — The Yar_Client class
    • Yar_Client::__call — Call service
    • Yar_Client::__construct — Create a client
    • Yar_Client::setOpt — Set calling contexts
  • Yar_Concurrent_Client — The Yar_Concurrent_Client class
    • Yar_Concurrent_Client::call — Register a concurrent call
    • Yar_Concurrent_Client::loop — Send all calls
    • Yar_Concurrent_Client::reset — Clean all registered calls
  • Yar_Server_Exception — The Yar_Server_Exception class
    • Yar_Server_Exception::getType — The getType purpose
  • Yar_Client_Exception — The Yar_Client_Exception class
    • Yar_Client_Exception::getType — The getType purpose


Введение

Yar is a RPC framework which aims to provide a simple and easy way to do communication between PHP applications It has the ability to concurrently call multiple remote services.


Требования

if you want to use msgpack as packager, you need compile Yar by your self with ./configure --enable-msgpack


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://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_SYS |

Краткое разъяснение конфигурационных директив.

yar.packager string

it could be php, json, and msgpack(require built with msgpack support)

yar.debug string

yar.connect_timeout integer

timeout in ms

yar.timeout integer

timeout in ms

yar.expose_info bool

whether expose the service info(when access the server via GET)


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

YAR_VERSION (string)
YAR_CLIENT_PROTOCOL_HTTP (integer)
YAR_CLIENT_OPT_PACKAGER (integer)
YAR_CLIENT_OPT_TIMEOUT (integer)
YAR_CLIENT_OPT_CONNECT_TIMEOUT (integer)
YAR_PACKAGER_PHP (string)
YAR_PACKAGER_JSON (string)
YAR_ERR_OKEY (integer)
YAR_ERR_OUTPUT (integer)
YAR_ERR_TRANSPORT (integer)
YAR_ERR_REQUEST (integer)
YAR_ERR_PROTOCOL (integer)
YAR_ERR_PACKAGER (integer)
YAR_ERR_EXCEPTION (integer)


Примеры

Пример #1 Yar Server Example

<?php

/* assume this page can be accessed by http://example.com/operator.php */

class Operator {

    /**
     * Add two operands
     * @param interge
     * @return interge
     */
    public function add($a, $b) {
        return $this->_add($a, $b);
    }

    /**
     * Sub
     */
    public function sub($a, $b) {
        return $a - $b;
    }

    /**
     * Mul
     */
    public function mul($a, $b) {
        return $a * $b;
    }

    /**
     * Protected methods will not be exposed
     * @param interge
     * @return interge
     */
    protected function _add($a, $b) {
        return $a + $b;
    }
}

$server = new Yar_Server(new Operator());
$server->handle();
?>

Пример #2 Access the server in borwser(GET request)

Результатом выполнения данного примера будет что-то подобное:

Yar Server Info

Пример #3 Yar Client Example

<?php
$client = new yar_client("http://example.com/operator.php");

/* call directly */
var_dump($client->add(1, 2));

/* call via call */
var_dump($client->call("add", array(3, 2)));

/* __add can not be called */
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 Concurrent Client Example

<?php
function callback($ret, $callinfo) {
    echo $callinfo['method'] , " result: ", $ret , "\n";
}

/* register async call to remote services */
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");

/* sent all request and wait for response */
Yar_Concurrent_Client::loop();
?>

Результатом выполнения данного примера будет что-то подобное:

mul result: 4
sub result: 1
add result: 3


The Yar_Server class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

Yar_Server {
/* Свойства */
protected $_executor ;
/* Методы */
final public __construct ( Object $obj )
public boolean handle ( void )
}

Свойства

_executor

Содержание

  • Yar_Server::__construct — Register a server
  • Yar_Server::handle — Start RPC Server


Register a server

  • « Yar_Server
  • Yar_Server::handle »
  • PHP Manual
  • Yar_Server
  • Register a server

Yar_Server::__construct

(PECL yar >= 1.0.0)

Yar_Server::__construct — Register a server

Описание

final public Yar_Server::__construct ( Object $obj )

Set up a Yar HTTP RPC Server, All the public methods of $obj will be register as a RPC service.

Список параметров

obj

An Object, all public methods of its will be registered as RPC services.

Возвращаемые значения

An instance of Yar_Server.

Примеры

Пример #1 Yar_Server::__construct() example

<?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() - Start RPC Server
    •


Start RPC Server

  • « Yar_Server::__construct
  • Yar_Client »
  • PHP Manual
  • Yar_Server
  • Start RPC Server

Yar_Server::handle

(PECL yar >= 1.0.0)

Yar_Server::handle — Start RPC Server

Описание

public boolean Yar_Server::handle ( void )

Start a RPC HTTP server, and ready for accpet RPC requests.

Замечание:

Usual RPC calls will be issued as HTTP POST requests. If a HTTP GET request is issued to the uri, the service information (commented section above) will be printed on the page

Список параметров

У этой функции нет параметров.

Возвращаемые значения

boolean

Примеры

Пример #1 Yar_Server::handle() example

<?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() - Register a server
    •


The Yar_Client class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

Yar_Client {
/* Свойства */
protected $_protocol ;
protected $_uri ;
protected $_options ;
protected $_running ;
/* Методы */
public void __call ( string $method , array $parameters )
final public __construct ( string $url )
public boolean setOpt ( number $name , mixed $value )
}

Свойства

_protocol

_uri

_options

_running

Содержание

  • Yar_Client::__call — Call service
  • Yar_Client::__construct — Create a client
  • Yar_Client::setOpt — Set calling contexts


Call service

  • « Yar_Client
  • Yar_Client::__construct »
  • PHP Manual
  • Yar_Client
  • Call service

Yar_Client::__call

(PECL yar >= 1.0.0)

Yar_Client::__call — Call service

Описание

public void Yar_Client::__call ( string $method , array $parameters )

Issue a call to remote RPC method.

Список параметров

method

Remote RPC method name.

parameters

Parameters.

Возвращаемые значения

Примеры

Пример #1 Yar_Client::__call() example

<?php

$client = new Yar_Client("http://host/api/");

/* call remote service */
$result = $client->some_method("parameter");
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Client::setOpt() - Set calling contexts
    •


Create a client

  • « Yar_Client::__call
  • Yar_Client::setOpt »
  • PHP Manual
  • Yar_Client
  • Create a client

Yar_Client::__construct

(PECL yar >= 1.0.0)

Yar_Client::__construct — Create a client

Описание

final public Yar_Client::__construct ( string $url )

Create a Yar_Client to a Yar_Server.

Список параметров

url

Yar Server URL.

Возвращаемые значения

Yar_Client instance.

Примеры

Пример #1 Yar_Client::__construct() example

<?php
$client = new Yar_Client("http://host/api/");
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Client::__call() - Call service
    •

  • Yar_Client::setOpt() - Set calling contexts
    •


Set calling contexts

  • « Yar_Client::__construct
  • Yar_Concurrent_Client »
  • PHP Manual
  • Yar_Client
  • Set calling contexts

Yar_Client::setOpt

(PECL yar >= 1.0.0)

Yar_Client::setOpt — Set calling contexts

Описание

public boolean Yar_Client::setOpt ( number $name , mixed $value )

Список параметров

name

it can be: YAR_OPT_PACKAGER, YAR_OPT_PERSISTENT (Need server support), YAR_OPT_TIMEOUT, YAR_OPT_CONNECT_TIMEOUT

value

Возвращаемые значения

Примеры

Пример #1 Yar_Client::setOpt() example

<?php

$cient = new Yar_Client("http://host/api/");

//Set timeout to 1s
$client->SetOpt(YAR_OPT_CONNECT_TIMEOUT, 1000);

//Set packager to JSON
$client->SetOpt(YAR_OPT_PACKAGER, "json");

/* call remote service */
$result = $client->some_method("parameter");
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Client::__call() - Call service
    •


The Yar_Concurrent_Client class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

Yar_Concurrent_Client {
/* Свойства */
static $_callstack ;
static $_callback ;
static $_error_callback ;
/* Методы */
public static int call ( string $uri , string $method , array $parameters [, callable $callback ] )
public static boolean loop ([ callable $callback [, callable $error_callback ]] )
public static boolean reset ( void )
}

Свойства

_callstack

_callback

_error_callback

Содержание

  • Yar_Concurrent_Client::call — Register a concurrent call
  • Yar_Concurrent_Client::loop — Send all calls
  • Yar_Concurrent_Client::reset — Clean all registered calls


Register a concurrent call

  • « Yar_Concurrent_Client
  • Yar_Concurrent_Client::loop »
  • PHP Manual
  • Yar_Concurrent_Client
  • Register a concurrent call

Yar_Concurrent_Client::call

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::call — Register a concurrent call

Описание

public static int Yar_Concurrent_Client::call ( string $uri , string $method , array $parameters [, callable $callback ] )

Register a RPC call, but won't sent it immediately, it will be send while further call to Yar_Concurrent_Client::loop()

Список параметров

uri

The RPC server URI(http, tcp)

method

Service name(aka the method name)

parameters

Parameters

callback

A function callback, which will be called while the response return.

Возвращаемые значения

An unique id, can be used to identified which call it is.

Примеры

Пример #1 Yar_Concurrent_Client::call() example

<?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"));   // if the callback is not specificed,
                                                                               // callback in loop will be used
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
                                                                               //this server accept json packager
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
                                                                               //custom timeout

//The requests are not sent yet
?>

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Concurrent_Client::loop() - Send all calls
    •

  • Yar_Concurrent_Client::reset() - Clean all registered calls
    •

  • Yar_Server::__construct() - Register a server
    •

  • Yar_Server::handle() - Start RPC Server
    •


Send all calls

  • « Yar_Concurrent_Client::call
  • Yar_Concurrent_Client::reset »
  • PHP Manual
  • Yar_Concurrent_Client
  • Send all calls

Yar_Concurrent_Client::loop

(PECL yar >= 1.0.0)

Yar_Concurrent_Client::loop — Send all calls

Описание

public static boolean Yar_Concurrent_Client::loop ([ callable $callback [, callable $error_callback ]] )

Send all registed remote RPC calls.

Список параметров

callback

If this callback is set, then Yar will call this callback after all calls are sent and before any response return, with a $callinfo NULL.

Then, if user didn't specify callback when registering concurrent call, this callback will be used to handle response, otherwise, the callback specified while registering will be used.

error_callback

If this callback is set, then Yar will call this callback while error occurred.

Возвращаемые значения

Примеры

Пример #1 Yar_Concurrent_Client::loop() example

<?php
function callback($retval, $callinfo) {
     if ($callinfo == NULL) {
        echo "Now, all requests are sent, and no any response available\n";
     } else {
        echo "This is a remote call response, the method name is", $callinfo["method"],
             ". calling sequence is " , $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"));   // if the callback is not specificed,
                                                                               // callback in loop will be used
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_PACKAGER => "json"));
                                                                               //this server accept json packager
Yar_Concurrent_Client::call("http://host/api/", "some_method", array("parameters"), "callback", NULL, array(YAR_OPT_TIMEOUT=>1));
                                                                               //custom timeout

Yar_Concurrent_Client::loop("callback", "error_callback"); //send the requests,
                                                           //the error_callback is optional
?>

Результатом выполнения данного примера будет что-то подобное:

Now, all requests are sent, and no any response available
This is a remote call response, the method name issome_method. calling sequence is 4
string(11) "some_method"
This is a remote call response, the method name issome_method. calling sequence is 1
string(11) "some_method"
This is a remote call response, the method name issome_method. calling sequence is 2
string(11) "some_method"
This is a remote call response, the method name issome_method. calling sequence is 3
string(11) "some_method"

Смотрите также

  • Yar_Concurrent_Client::call() - Register a concurrent call
  • Yar_Concurrent_Client::reset() - Clean all registered calls
  • Yar_Server::__construct() - Register a server
  • Yar_Server::handle() - Start RPC Server


Clean all registered calls

  • « Yar_Concurrent_Client::loop
  • Yar_Server_Exception »
  • PHP Manual
  • Yar_Concurrent_Client
  • Clean all registered calls

Yar_Concurrent_Client::reset

(Информация о версии неизвестна, возможно, только в SVN)

Yar_Concurrent_Client::reset — Clean all registered calls

Описание

public static boolean Yar_Concurrent_Client::reset ( void )

Clean all registered calls

Список параметров

Возвращаемые значения

Примеры

Пример #1 Yar_Concurrent_Client::reset() example

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

  • Yar_Concurrent_Client::call() - Register a concurrent call
    •

  • Yar_Concurrent_Client::loop() - Send all calls
    •

  • Yar_Server::__construct() - Register a server
    •

  • Yar_Server::handle() - Start RPC Server
    •


The Yar_Server_Exception class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

If service threw exceptions, A Yar_Server_Exception will be threw in client side.

Обзор классов

Yar_Server_Exception extends Exception {
/* Свойства */
protected $_type ;
/* Методы */
public string getType ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Свойства

message

code

file

line

_type

Содержание

  • Yar_Server_Exception::getType — The getType purpose


The getType purpose

  • « Yar_Server_Exception
  • Yar_Client_Exception »
  • PHP Manual
  • Yar_Server_Exception
  • The getType purpose

Yar_Server_Exception::getType

(PECL yar >= 1.0.0)

Yar_Server_Exception::getType — The getType purpose

Описание

public string Yar_Server_Exception::getType ( void )

Get the exception original type threw by server

Список параметров

У этой функции нет параметров.

Возвращаемые значения

string

Примеры

Пример #1 Yar_Server_Exception::getType() example

//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"

Смотрите также


The Yar_Client_Exception class

(Информация о версии неизвестна, возможно, только в SVN)

Введение

Обзор классов

Yar_Client_Exception extends Exception {
/* Свойства */
/* Методы */
public void getType ( void )
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Свойства

message

code

file

line

Содержание

  • Yar_Client_Exception::getType — The getType purpose


The getType purpose

  • « Yar_Client_Exception
  • XML-RPC »
  • PHP Manual
  • Yar_Client_Exception
  • The getType purpose

Yar_Client_Exception::getType

(PECL yar >= 1.0.0)

Yar_Client_Exception::getType — The getType purpose

Описание

public void Yar_Client_Exception::getType ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Примеры

Пример #1 Yar_Client_Exception::getType() example

<?php

/* ... */

?>

Результатом выполнения данного примера будет что-то подобное:

...

Смотрите также


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 начиная с версии 4.1.0.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • 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

Описание

mixed xmlrpc_decode_request ( string $xml , string &$method [, string $encoding ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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

Описание

mixed xmlrpc_decode ( string $xml [, string $encoding = "iso-8859-1" ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 для метода запроса

Описание

string xmlrpc_encode_request ( string $method , mixed $params [, array $output_options ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 значения

Описание

string xmlrpc_encode ( mixed $value )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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

Описание

string xmlrpc_get_type ( mixed $value )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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

Описание

bool xmlrpc_is_fault ( array $arg )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 в список описаний методов

Описание

array xmlrpc_parse_method_descriptions ( string $xml )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 — Добавляет документацию самоанализа

Описание

int xmlrpc_server_add_introspection_data ( resource $server , array $desc )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 запросы и вызывающие методы

Описание

string xmlrpc_server_call_method ( resource $server , string $xml , mixed $user_data [, array $output_options ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 сервер

Описание

resource xmlrpc_server_create ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 — Уничтожает серверные ресурсы

Описание

int xmlrpc_server_destroy ( resource $server )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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 для генерации документации

Описание

bool xmlrpc_server_register_introspection_callback ( resource $server , string $function )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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

Описание

bool xmlrpc_server_register_method ( resource $server , string $method_name , string $function )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях 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

Описание

bool xmlrpc_set_type ( string &$value , string $type )

Устанавливает XML-RPC тип, base64 или datetime для значения строки PHP.

Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

value

Значение для установки типа.

type

'base64' или 'datetime'

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В случае успеха, value конвертируется в объект.

Примеры

Пример #1 Пример использования xmlrpc_set_type()

<?php

$params = date("Ymd\TH:i:s", time());
xmlrpc_set_type($params, 'datetime');
echo xmlrpc_encode($params);

?>

Результатом выполнения данного примера будет что-то подобное:

<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
 <value>
  <dateTime.iso8601>20090322T23:43:03</dateTime.iso8601>
 </value>
</param>
</params>

Ошибки

Выдает сообщение E_WARNING для не поддерживаемых типов XMLRPC.


Расширения только для Windows

  • COM — COM и .Net (Windows)
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Ошибки и их обработка
    • Примеры
    • COM — Класс COM
    • DOTNET — Класс DOTNET
    • VARIANT — Класс VARIANT
    • COM Функции
  • win32ps
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • win32ps Функции
  • win32service
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • win32service


COM и .Net (Windows)

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Ошибки и их обработка
  • Примеры
    • For Each
    • Массивы и свойства COM в стиле массивов
  • COM — Класс COM
  • DOTNET — Класс DOTNET
  • VARIANT — Класс VARIANT
  • COM Функции
    • com_create_guid — Generate a globally unique identifier (GUID)
    • com_event_sink — Connect events from a COM object to a PHP object
    • com_get_active_object — Returns a handle to an already running instance of a COM object
    • com_load_typelib — Loads a Typelib
    • com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds
    • com_print_typeinfo — Print out a PHP class definition for a dispatchable interface
    • variant_abs — Returns the absolute value of a variant
    • variant_add — "Adds" two variant values together and returns the result
    • variant_and — Performs a bitwise AND operation between two variants
    • variant_cast — Convert a variant into a new variant object of another type
    • variant_cat — concatenates two variant values together and returns the result
    • variant_cmp — Compares two variants
    • variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp
    • variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp
    • variant_div — Returns the result from dividing two variants
    • variant_eqv — Performs a bitwise equivalence on two variants
    • variant_fix — Returns the integer portion of a variant
    • variant_get_type — Returns the type of a variant object
    • variant_idiv — Converts variants to integers and then returns the result from dividing them
    • variant_imp — Performs a bitwise implication on two variants
    • variant_int — Returns the integer portion of a variant
    • variant_mod — Divides two variants and returns only the remainder
    • variant_mul — Multiplies the values of the two variants
    • variant_neg — Performs logical negation on a variant
    • variant_not — Performs bitwise not negation on a variant
    • variant_or — Performs a logical disjunction on two variants
    • variant_pow — Returns the result of performing the power function with two variants
    • variant_round — Rounds a variant to the specified number of decimal places
    • variant_set_type — Convert a variant into another type "in-place"
    • variant_set — Assigns a new value for a variant object
    • variant_sub — Subtracts the value of the right variant from the left variant value
    • variant_xor — Performs a logical exclusion on two variants


Введение

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 вы сможете больше.

Начиная с PHP 5, это расширение и документация к нему были переписаны с нуля и многие неточности из старой версии были удалены. Дополнительно расширение поддерживает создание экземпляра класса и создание .NET-сборок, используя слой взаимодействия с COM, предоставляемый Miсrosoft.

Прочтите, пожалуйста, » эту статью для краткого обзора измений в этом расширении для PHP 5.


Требования

Функции COM доступны только в PHP под Windows.

Для поддержка .Net требуется PHP 5 и библиотеки времени исполнения .Net.


Установка

С PHP 5.3.15 / 5.4.5, это расширение требует разрешение php_com_dotnet.dll в php.ini. В предыдущих версиях PHP это расширение было включено по умолчанию.

Поддержку для различных вариантов объектов COM (например MS Word) необходимо устанавливать самостоятельно. Мы не можем и не будем включать все эти модули в PHP.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Опции конфигурации Com
Имя | По умолчанию | Меняемо | Список изменений
com.allow_dcom | "0" | PHP_INI_SYSTEM | Доступно с PHP 4.0.5.
com.autoregister_typelib | "0" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP 4. Доступно с PHP 4.1.0.
com.autoregister_verbose | "0" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP 4. Доступно с PHP 4.1.0.
com.autoregister_casesensitive | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP 4. Доступно с PHP 4.1.0.
com.code_page | "" | PHP_INI_ALL | Доступно с PHP 5.0.0.
com.typelib_file | "" | PHP_INI_SYSTEM | Доступно с PHP 4.0.5.
Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

Краткое разъяснение конфигурационных директив.

com.allow_dcom

Если включено, PHP будет разрешено работать в качестве клиента D-COM (Распределенный COM), что позволит скрипту PHP инстанциировать объекты COM на удаленном сервере.

com.autoregister_typelib

Если включено, PHP попробует зарегистрировать константы библиотеки типов создаваемых объектов, если эти объекты реализуют интерфейс, требуемый лоя получения данной информации. Регистрозависимость регистрируемых констант контролируется директивой конфигурации.

com.autoregister_verbose

Если включено, о любых проблемах с загрузкой библиотеки типов в процессе создания экземпляра объекта будет сообщено с помощью механизма ошибок PHP. По умолчанию выключено, что означает, что никаких сообщений об ошибках при загрузке библиотеки типов сообщаться не будет.

com.autoregister_casesensitive

Если включено (по умолчанию), константы, обнаруженные при автозагрузке библиотек типов будут зарегистрированы как регистрозависимые. Более подробно смотрите в описании функции com_load_typelib().

com.code_page

Контролирует кодировку по умолчанию при передаче строк объектам COM. Если задано пустой строкой, PHP будет считать, что вы хотите использовать CP_ACP - системная кодировка ANSI по умолчанию.

Если текст в вашем скрипте содержится в кодировке отличной от кодировки по умолчанию, то установка этого параметра позволит вам не указывать кодировку каждый раз при создании объекта класса COM в его конструкторе. Пожалуйста помните, что исполь этой директивы (как и любой другой директивы конфигурации) делает ваш скрипт менее переносимым, так что все же рекомендуется указывать кодировку при каждом создании объекта COM.

Замечание: Эта опция была добавлена в PHP 5.

com.typelib_file

Значение должно соответствовать пути на файловой системе до файла, содержащего список библиотек типов, которые необходимо загрузить при запуске. Каждая строка файла будет рассматриваться как имя библиотеки типов, которая будет загружена как только вы вызовите функцию com_load_typelib(). Константы будут зарегистрированы на постоянной основе, так что библиотеки нужно загружать всего один раз. Если имя библиотеки типов заканчивается на строку #cis или #case_insensitive, то константы будут зарегистрированы как регистронезависимые.


Типы ресурсов

Этьо расширение определяет ссылки на компоненты COM, возвращенные устаревшей функцией com_load() (эта функция отсутствует в PHP 5; используйте вместо нее класс COM).


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

Константы COM
Константа | Значение | Описание | Замечания
CLSCTX_INPROC_SERVER (integer) | 1 | Код, создающий и управляющий объектами этого класса является DLL запущенным в том же процессе, который вызывает функцию указанную в контексте класса. |
CLSCTX_INPROC_HANDLER (integer) | 2 | Код, создающий и управляющий объектами этого класса является обработчиком внутри процесса. Это DLL , запускаемый в процессе клиента и реализующий структуру этого класса на стороне клиента, когда экземпляр класса используется удаленно. |
CLSCTX_LOCAL_SERVER (integer) | 4 | Код EXE, который создает и управляет объектами этого класса, работает на той же машине, но в рамках отдельного процесса. |
CLSCTX_REMOTE_SERVER (integer) | 16 | Внешний контекст. Код, создающий и управляющий объектами этого класса работает на другом компьютере. |
CLSCTX_SERVER (integer) | 21 | Означает серверный код, локальный, удаленный или же внутри процесса. Задается побитовым ИЛИ констант CLSCTX_INPROC_SERVER, CLSCTX_LOCAL_SERVER и CLSCTX_REMOTE_SERVER. |
CLSCTX_ALL (integer) | 23 | Обозначает весь контекст класса. Задается побитовым ИЛИ констант CLSCTX_INPROC_HANDLER и CLSCTX_SERVER. |
VT_NULL (integer) | 1 | Ссылка на указатель NULL. |
VT_EMPTY (integer) | 0 | Свойство с индикатором типа из VT_EMPTY не имеющий данных ассоциированных с ним. Размер этого значения равен нулю. |
VT_UI1 (integer) | 17 | Беззнаковое целое размером в 1 байт. |
VT_I2 (integer) | 2 | Знаковое целое размером в 2 байта. |
VT_I4 (integer) | 3 | Знаковое целое размером в 4 байта. |
VT_R4 (integer) | 4 | Значение IEEE с плавающей запятой размером 32 бита. |
VT_R8 (integer) | 5 | Значение IEEE с плавающей запятой размером 64 бита. |
VT_BOOL (integer) | 11 | Логическое значение. |
VT_ERROR (integer) | 10 | Код ошибки; содержит код статуса ассоциированный с ошибкой. |
VT_CY (integer) | 6 | Дополненное целое размером 8 байт (масштабируется к 10,000). |
VT_DATE (integer) | 7 | Значение с плавающей запятой размером 64 бита представляющее количество дней (не секунд) с 31 Декабря 1899 года. К примеру, 1 Января 1900 равно 2.0, 2 Января 1900 равно 3.0, и т.д. Хранится таким же образом, что и VT_R8. |
VT_BSTR (integer) | 8 | Указатель на строку Unicode заканчивающуюся null-байтом. |
VT_DECIMAL (integer) | 14 | Десятичная структура. |
VT_UNKNOWN (integer) | 13 | Указатель на объект реализующий интерфейс IUnknown. |
VT_DISPATCH (integer) | 9 | Указатель на указатель на заданный объект. |
VT_VARIANT (integer) | 12 | Индикатор типа с последующим, соответствующим, значением. VT_VARIANT можно использовать только с VT_BYREF. |
VT_I1 (integer) | 16 | Знаковое целое размером в 1 байт. |
VT_UI2 (integer) | 18 | Беззнаковое целое размером в 2 байта. |
VT_UI4 (integer) | 19 | Беззнаковое целое размером в 4 байта. |
VT_INT (integer) | 22 | Знаковое целое размером в 4 байт. (аналогично VT_I4). |
VT_UINT (integer) | 23 | Беззнаковое целое размером в 4 байт (аналогично VT_UI4). |
VT_ARRAY (integer) | 8192 | Если индикатор типа комбинирован с VT_ARRAY с помощью побитового ИЛИ, то значение является указателем на SAFEARRAY. VT_ARRAY можно комбинировать побитовым ИЛИ со следующими типами: VT_I1, VT_UI1, VT_I2, VT_UI2, VT_I4, VT_UI4, VT_INT, VT_UINT, VT_R4, VT_R8, VT_BOOL, VT_DECIMAL, VT_ERROR, VT_CY, VT_DATE, VT_BSTR, VT_DISPATCH, VT_UNKNOWN и VT_VARIANT. |
VT_BYREF (integer) | 16384 | Если индикатор типа комбинирован с VT_BYREF с помощью побитового ИЛИ, значит значение является ссылкой. Тип "ссылка" интерпритируется как ссылка на данные, аналогично ссылкам C++. |
CP_ACP (integer) | 0 | Кодировка ANSI по умолчанию. |
CP_MACCP (integer) | 2 | Кодировка Macintosh. |
CP_OEMCP (integer) | 1 | Кодировка OEM по умолчанию. |
CP_UTF7 (integer) | 65000 | Unicode (UTF-7). |
CP_UTF8 (integer) | 65001 | Unicode (UTF-8). |
CP_SYMBOL (integer) | 42 | Смещения SYMBOL. |
CP_THREAD_ACP (integer) | 3 | Кодировка ANSI текущего потока исполнения |
VARCMP_LT (integer) | 0 | Левый bstr меньше правого bstr. |
VARCMP_EQ (integer) | 1 | Два параметра эквивалентны. |
VARCMP_GT (integer) | 2 | Левый bstr больше правого bstr. |
VARCMP_NULL (integer) | 3 | Выражение равно NULL. |
NORM_IGNORECASE (integer) | 1 | Игнорировать регистрозависимость. |
NORM_IGNORENONSPACE (integer) | 2 | Игнорировать символы не занимающие места. |
NORM_IGNORESYMBOLS (integer) | 4 | Игнорировать символы. |
NORM_IGNOREWIDTH (integer) | 131072 | Игнорировать длину строки. |
NORM_IGNOREKANATYPE (integer) | 65536 | Игнорировать тип Kana. |
NORM_IGNOREKASHIDA (integer) | 262144 | Игнорировать символы Arabic kashida. | Доступность зависит от используемой библиотеки.
DISP_E_DIVBYZERO (integer) | -2147352558 | Ответ означающий попытку деления на ноль. |
DISP_E_OVERFLOW (integer) | -2147352566 | Ошибка означающая, что значение не может быть приведено к ожидаемому типу. |
MK_E_UNAVAILABLE (integer) | -2147221021 | Код статуса iMoniker COM, возвращается в случае ошибки когда функция не сожет быть вызвана, поскольну недоступна. |


Ошибки и их обработка

Исключения (PHP 5)

Это расширение вызывает исключения класса com_exception в случае потенциальной фатальной ошибки возвращенной COM. Исключения COM имеют четко определенное свойствоcode, соответствующее возвращенному из различных операций COM значению HRESULT. На основании этого кода вы можете построить логику обработки данных ошибок.


  • « Ошибки и их обработка
  • For Each »
  • PHP Manual
  • COM
  • Примеры

Примеры

Содержание

  • For Each
  • Массивы и свойства COM в стиле массивов


For Each

Начиная с PHP 5, вы можете использовать конструкцию 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 представляют свои свойства как массивы, либо просто с использованием синтаксиса доступа как к массивам. В PHP 4 вы могли использовать синтаксис массивов для чтения/записи таких свойств, но при этом были допустимы только одномерные структуры. Если вы хотели прочитать многомерное свойство, вы должны были использовать доступ через функцию, каждый параметр которой представлял одно из измерений массива, а записать подобное свойство было в принципе нельзя.

В PHP 5 была введена новая функциональность для облегчения жизни:

  • Доступ к многомерным массивам или свойствам COM используя синтаксис доступа к массивам. Также вы можете записывать и создавать свойства таким же образом.

  • Итерация SafeArray ("настоящие" массивы) используя foreach. Это работает, поскольку SafeArrays включает в себя информацию о своем размере. Если свойство реализует IEnumVariant, то вы также можете использовать для него foreach. Более подробно читайте в разделе For Each.


Класс COM

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Description

Класс COM позволяет создавать совместимые с OLE объекты COM, вызывать их методы и получать доступ к их свойствам.

$obj = new COM("Application.ID")

Methods

COM::__construct ( string $module_name [, mixed $server_name [, int $codepage [, 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 откажется загружать объект пока не будет разрешена опция конфигурации .

Если server_name задан массивом, то он должен содержать следующие элементы (регистрозависимые!). Обратите внимание, что все эти опции необязательны (ну кроме того случая, что имя и пароль друг без друга не имеют смысла). Если вы опустите строку Server, то будет использован сервер по умолчанию и создаваемый объект не будет обращать внимание на директиву .

Имя сервера DCOM
server_name key | тип | описание
Server | string | Имя сервера.
Username | string | Имя пользователя.
Password | string | Пароль для Username.
Flags | integer | Одна или несколько констант объедененных побитовым ИМИ: CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, CLSCTX_LOCAL_SERVER, CLSCTX_REMOTE_SERVER, CLSCTX_SERVER и CLSCTX_ALL. Значение по умолчанию равно CLSCTX_SERVER если вы также пропустили Server, или CLSCTX_REMOTE_SERVER если не пропустили. Описание значения данных констант читайте в документации Microsoft по CoCreateInstance. Скорее всего вам никогда не понадобится использовать это.

codepage
Задает кодировку используемую для преобразования строк в Unicode и обратно. Преобразование производится при передаче строки PHP как параметра в объект COM и при получении из него результата. Возможные значения: CP_ACP (использовать системную кодировку ANSI по умолчанию - будет использоваться по умолчанию, если параметр опущен), CP_MACCP, CP_OEMCP, CP_SYMBOL, CP_THREAD_ACP (использовать кодировку/локаль запущенного потока выполенения), CP_UTF7 и CP_UTF8. Также вы можете использовать номер кодировки. Более подробно кодировки и их числовые значения описаны в документации Microsoft.

Перегруженные методы

Возвращаемые объекты являются перегруженными, тоесть PHP не видит каких либо фиксированных методов, как это происходит с обычными классами. Вместо этого свойства и доступ к методам передается через COM.

Начиная с PHP 5, PHP автоматически определяет методы, которые обращаются к свойствам по ссылкам и автоматически преобразуют стандартные переменные PHP в вид, который можно передавать по ссылке. Это означает, чт о вы можете вызывать методы не внося каких либо дополнений в свой код.

Псевдо методы

В PHP до версии 5, для обработки следующих методов средствами PHP без передачи в COM применялся ряд довольно некрасивых хаков. В PHP 5 это поведение исправлено. Ниже описано, как следует изменить ваши скрипты. Эти магические методы регистронезависимы.

void COM::AddRef ( void )

Искуственно добавляет подсчет ссылок в объект COM.

Внимание

Вам никогда не понадобится использовать этот метод. Он логически связан с методом Release(), описанным ниже.

void COM::Release ( void )

Искуственно добавляет подсчет ссылок в объект COM.

Внимание

Вам никогда не понадобится использовать этот метод. Он присутствует в PHP в качестве искуственного бага, служащего для обхода другого бага, из-за которого объект COM существовал дольше, чем должен бы.

Псевдо методы для итерирования

Эти методы доступны только если функция com_isenum() возвращает TRUE, в этом случае они скрывают любые методы с такими же именами, присутствубщие в объекте COM. Эти методы удалены в PHP 5, используйте вместо них For Each.

variant COM::All ( void )

Возвращает вариант представляющий SafeArray имеющий 10 элементов; Каждый элемент будет пустым(NULL) вариантом. Эта функция должна была вернуть массив состоящий из всех элементов итератора, но так и не была дописана. Не используйте ее.

variant COM::Next ( void )

Возвращает вариант представляющий следующий элемент итератора, или FALSE, если элементов не осталось.

variant COM::Prev ( void )

Возвращает вариант представляющий предыдущий элемент итератора, или FALSE, если элементов не осталось.

void COM::Reset ( void )

Перематывает итератор на первый элемент.

Примеры COM

Пример #1 Первый пример

<?php
// запускаем word
$word = new COM("word.application") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";

//делаем его активным окном
$word->Visible = 1;

//открываем пустой документ
$word->Documents->Add();

//Что то с ним делаем
$word->Selection->TypeText("This is a test...");
$word->Documents[1]->SaveAs("Useless test.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;

?>


Класс DOTNET

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Description

Класс DOTNET позволяет создавать объекты из сборок .Net, вызывать их методы и использовать их свойства.

$obj = new DOTNET("assembly", "classname")

Методы

DOTNET::__construct ( string $assembly_name , string $class_name [, int $codepage ] )

КОнструктор класса DOTNET. assembly_name задает сборку, которую необходимо загрузить и class_name задает какой класс из сборки создавать. ТАкже, дополнительно, вы можете задать codepage для использования при преобразовании строк в Unicode. Дополнительно смотрите описание класса COM.

Возвращенный объект будет являтся перегруженным объектом, что означает, что PHP не видит фиксированных методов, как это происходит с обычными классами; вместо этого все свойства и доступ к методам происходит через отсылку через COM, отсюда в DOTNET. Другими словами, объекты .Net отображаются через уровень представления COM предоставляемый .Net.

Единожды создав объект DOTNET, PHP считает его идентичным другим объектам COM, применяя к нему все те же правила.

Пример #1 Пример использования DOTNET

<?php
 $stack = new DOTNET("mscorlib", "System.Collections.Stack");
 $stack->Push(".Net");
 $stack->Push("Hello ");
 echo $stack->Pop() . $stack->Pop();
?>

Замечание:

Вам необходимо установить библиотеки времени исполнения .Net на ваш веб-сервер что бы использовать этот класс.


Класс VARIANT

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

Описание

VARIANT - это эквивалент zval для COM; это структура, которая может содержать значения различных допустимых типов. Класс VARIANT входит в расширение COM и позволяет более полно контролировать значения передаваемые от PHP к COM и обратно.

$vVar = new VARIANT($var)

Methods

VARIANT::__construct ([ mixed $value [, int $type [, int $codepage ]]] )

Конструктор класса VARIANT. Параметры:

value
начальное значение. Если не задано или задано как NULL, то будет создан объект VT_EMPTY.
type
задает тип контента объекта VARIANT. Одна из констант VT_XXX Предопределенные константы. В PHP до версии 5, было необходимо принудительно передавать объект по ссылке на битовое ИЛИ VT_BYREF с type. В PHP 5, этот хак не поддерживается; PHP 5определяет значения передаваемые по ссылке автоматически; они даже не должны передаваться как объекты VARIANT. Дополнительную информацию по типам VARIANT читайте в библиотеке MSDN.
codepage
Определяет кодировку используемую при преобразовании строк в Unicode. Смотрите описание параметра с таким же именем для COM.

PHP версий меньше 5 определяет некоторое количество (недокументированных) виртуальных свойств для экземпляров класса VARIANT; все эти свойства были удалены в PHP 5 в пользу более правильного синтаксиса. Эти изменения проще всего показать на примере:

Пример #1 Пример использования Variant в стиле PHP 4.x

<?php
$v = new VARIANT(42);
print "The type is " . $v->type . "<br/>";
print "The value is " . $v->value . "<br/>";
?>

Пример #2 Пример использования Variant в стиле PHP 5

<?php
$v = new VARIANT(42);
print "The type is " . variant_get_type($v) . "<br/>";
print "The value is " . $v . "<br/>";
?>

Причина этого изменения в том, что внутри расширения COM классы VARIANT, COM и DOTNET - являются одним и тем же. и философия этих классов заключается в том, что все свойства и доступ к ним передаются через COM без использования интерфейсов. Новый синтаксис более правильный и простой и большинство удаленных виртуальных свойств не давали представления о происходящем в контексте PHP.

Замечание:

PHP 5 использует гораздо более простой подход к обработке VARIANT; когда возвращается значение или извлекается свойство, VARIANT преобразуется в значение PHP только если есть прямая связь между типами что не приведет к потере информации. Во всех остальных случаях результат вернется в виде экземпляра класса VARIANT. Вы можете принудительно указать PHP конвертировать значения в типы PHP используя оператор приведения типов или же преобразовывать их в строку используя функцию print. Вы можете использовать множество функций класса для арефметических операций без приведения значений к типам PHP с риском потери точности.

Также смотрите variant_get_type().


COM Функции

Смотрите также

Для получения дальнейшей информации о COM прочтите » Спецификацию COM. Вы можете найти дополнительную информацию в нашем FAQ PHP и COM. Если вы хотите использовать приложение MS Office на стороне сервера, необходимо прочитать представленную здесь информацию: » Использование MS Office на стороне сервера.

Содержание

  • com_create_guid — Generate a globally unique identifier (GUID)
  • com_event_sink — Connect events from a COM object to a PHP object
  • com_get_active_object — Returns a handle to an already running instance of a COM object
  • com_load_typelib — Loads a Typelib
  • com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds
  • com_print_typeinfo — Print out a PHP class definition for a dispatchable interface
  • variant_abs — Returns the absolute value of a variant
  • variant_add — "Adds" two variant values together and returns the result
  • variant_and — Performs a bitwise AND operation between two variants
  • variant_cast — Convert a variant into a new variant object of another type
  • variant_cat — concatenates two variant values together and returns the result
  • variant_cmp — Compares two variants
  • variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp
  • variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp
  • variant_div — Returns the result from dividing two variants
  • variant_eqv — Performs a bitwise equivalence on two variants
  • variant_fix — Returns the integer portion of a variant
  • variant_get_type — Returns the type of a variant object
  • variant_idiv — Converts variants to integers and then returns the result from dividing them
  • variant_imp — Performs a bitwise implication on two variants
  • variant_int — Returns the integer portion of a variant
  • variant_mod — Divides two variants and returns only the remainder
  • variant_mul — Multiplies the values of the two variants
  • variant_neg — Performs logical negation on a variant
  • variant_not — Performs bitwise not negation on a variant
  • variant_or — Performs a logical disjunction on two variants
  • variant_pow — Returns the result of performing the power function with two variants
  • variant_round — Rounds a variant to the specified number of decimal places
  • variant_set_type — Convert a variant into another type "in-place"
  • variant_set — Assigns a new value for a variant object
  • variant_sub — Subtracts the value of the right variant from the left variant value
  • variant_xor — Performs a logical exclusion on two variants


Generate a globally unique identifier (GUID)

  • « COM Функции
  • com_event_sink »
  • PHP Manual
  • COM Функции
  • Generate a globally unique identifier (GUID)

com_create_guid

(PHP 5, PHP 7)

com_create_guid — Generate a globally unique identifier (GUID)

Описание

string com_create_guid ( void )

Generates a Globally Unique Identifier (GUID).

A GUID is generated in the same way as DCE UUID's, except that the Microsoft convention is to enclose a GUID in curly braces.

Возвращаемые значения

Returns the GUID as a string.

Смотрите также

  • uuid_create() in the PECL uuid extension


Connect events from a COM object to a PHP object

  • « com_create_guid
  • com_get_active_object »
  • PHP Manual
  • COM Функции
  • Connect events from a COM object to a PHP object

com_event_sink

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

com_event_sink — Connect events from a COM object to a PHP object

Описание

bool com_event_sink ( variant $comobject , object $sinkobject [, mixed $sinkinterface ] )

Instructs COM to sink events generated by comobject into the PHP object sinkobject.

Be careful how you use this feature; if you are doing something similar to the example below, then it doesn't really make sense to run it in a web server context.

Список параметров

comobject

sinkobject

sinkobject should be an instance of a class with methods named after those of the desired dispinterface; you may use com_print_typeinfo() to help generate a template class for this purpose.

sinkinterface

PHP will attempt to use the default dispinterface type specified by the typelibrary associated with comobject, but you may override this choice by setting sinkinterface to the name of the dispinterface that you want to use.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 COM event sink example

<?php
class IEEventSinker {
    var $terminated = false;

   function ProgressChange($progress, $progressmax) {
      echo "Download progress: $progress / $progressmax\n";
    }

    function DocumentComplete(&$dom, $url) {
      echo "Document $url complete\n";
    }

    function OnQuit() {
      echo "Quit!\n";
      $this->terminated = true;
    }
}
$ie = new COM("InternetExplorer.Application");
// note that you don't need the & for PHP 5!
$sink = new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.example.org");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>

Смотрите также

  • com_print_typeinfo() - Print out a PHP class definition for a dispatchable interface
  • com_message_pump() - Process COM messages, sleeping for up to timeoutms milliseconds


Returns a handle to an already running instance of a COM object

  • « com_event_sink
  • com_load_typelib »
  • PHP Manual
  • COM Функции
  • Returns a handle to an already running instance of a COM object

com_get_active_object

(PHP 5, PHP 7)

com_get_active_object — Returns a handle to an already running instance of a COM object

Описание

variant com_get_active_object ( string $progid [, int $code_page ] )

com_get_active_object() is similar to creating a new instance of a COM object, except that it will only return an object to your script if the object is already running. OLE applications use something known as the "Running Object Table" to allow well-known applications to be launched only once; this function exposes the COM library function GetActiveObject() to get a handle on a running instance.

Список параметров

progid

progid must be either the ProgID or CLSID for the object that you want to access (for example Word.Application).

code_page

Acts in precisely the same way that it does for the COM class.

Возвращаемые значения

If the requested object is running, it will be returned to your script just like any other COM object.

Ошибки

There are a variety of reasons why this function might fail, the most common being that the object is not already running. In that situation, the exception error code will be MK_E_UNAVAILABLE; you can use the getCode method of the exception object to check the exception code.

Примечания

Внимание

Using com_get_active_object() in a web server context is not always a smart idea. Most COM/OLE applications are not designed to handle more than one client concurrently, even (or especially!) Microsoft Office. You should read » Considerations for Server-Side Automation of Office for more information on the general issues involved.


Loads a Typelib

  • « com_get_active_object
  • com_message_pump »
  • PHP Manual
  • COM Функции
  • Loads a Typelib

com_load_typelib

(PHP 4 >= 4.1.0, PHP 5, PHP 7)

com_load_typelib — Loads a Typelib

Описание

bool com_load_typelib ( string $typelib_name [, bool $case_insensitive = true ] )

Loads a type-library and registers its constants in the engine, as though they were defined using define().

Note that it is much more efficient to use the configuration setting to pre-load and register the constants, although not so flexible.

If you have turned on , then PHP will attempt to automatically register the constants associated with a COM object when you instantiate it. This depends on the interfaces provided by the COM object itself, and may not always be possible.

Список параметров

typelib_name

typelib_name can be one of the following:

  • The filename of a .tlb file or the executable module that contains the type library.

  • The type library GUID, followed by its version number, for example {00000200-0000-0010-8000-00AA006D2EA4},2,0.

  • The type library name, e.g. Microsoft OLE DB ActiveX Data Objects 1.0 Library.

PHP will attempt to resolve the type library in this order, as the process gets more and more expensive as you progress down the list; searching for the type library by name is handled by physically enumerating the registry until we find a match.

case_insensitive

The case_insensitive behaves in the same way as the parameter with the same name in the define() function.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Process COM messages, sleeping for up to timeoutms milliseconds

  • « com_load_typelib
  • com_print_typeinfo »
  • PHP Manual
  • COM Функции
  • Process COM messages, sleeping for up to timeoutms milliseconds

com_message_pump

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

com_message_pump — Process COM messages, sleeping for up to timeoutms milliseconds

Описание

bool com_message_pump ([ int $timeoutms = 0 ] )

This function will sleep for up to timeoutms milliseconds, or until a message arrives in the queue.

The purpose of this function is to route COM calls between apartments and handle various synchronization issues. This allows your script to wait efficiently for events to be triggered, while still handling other events or running other code in the background. You should use it in a loop, as demonstrated by the example in the com_event_sink() function, until you are finished using event bound COM objects.

Список параметров

timeoutms

The timeout, in milliseconds.

If you do not specify a value for timeoutms, then 0 will be assumed. A 0 value means that no waiting will be performed; if there are messages pending they will be dispatched as before; if there are no messages pending, the function will return FALSE immediately without sleeping.

Возвращаемые значения

If a message or messages arrives before the timeout, they will be dispatched, and the function will return TRUE. If the timeout occurs and no messages were processed, the return value will be FALSE.


Print out a PHP class definition for a dispatchable interface

  • « com_message_pump
  • variant_abs »
  • PHP Manual
  • COM Функции
  • Print out a PHP class definition for a dispatchable interface

com_print_typeinfo

(PHP 4 >= 4.2.0, PHP 5, PHP 7)

com_print_typeinfo — Print out a PHP class definition for a dispatchable interface

Описание

bool com_print_typeinfo ( object $comobject [, string $dispinterface [, bool $wantsink = false ]] )

The purpose of this function is to help generate a skeleton class for use as an event sink. You may also use it to generate a dump of any COM object, provided that it supports enough of the introspection interfaces, and that you know the name of the interface you want to display.

Список параметров

comobject

comobject should be either an instance of a COM object, or be the name of a typelibrary (which will be resolved according to the rules set out in com_load_typelib()).

dispinterface

The name of an IDispatch descendant interface that you want to display.

wantsink

If set to TRUE, the corresponding sink interface will be displayed instead.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • com_event_sink() - Connect events from a COM object to a PHP object
  • com_load_typelib() - Loads a Typelib


Returns the absolute value of a variant

  • « com_print_typeinfo
  • variant_add »
  • PHP Manual
  • COM Функции
  • Returns the absolute value of a variant

variant_abs

(PHP 5, PHP 7)

variant_abs — Returns the absolute value of a variant

Описание

mixed variant_abs ( mixed $val )

Returns the absolute value of a variant.

Список параметров

val

The variant.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Returns the absolute value of val.

Смотрите также

  • abs() - Модуль числа


"Adds" two variant values together and returns the result

  • « variant_abs
  • variant_and »
  • PHP Manual
  • COM Функции
  • "Adds" two variant values together and returns the result

variant_add

(PHP 5, PHP 7)

variant_add — "Adds" two variant values together and returns the result

Описание

mixed variant_add ( mixed $left , mixed $right )

Adds left to right using the following rules (taken from the MSDN library), which correspond to those of Visual Basic:

Variant Addition Rules
If | Then
Both expressions are of the string type | Concatenation
One expression is a string type and the other a character | Addition
One expression is numeric and the other is a string | Addition
Both expressions are numeric | Addition
Either expression is NULL | NULL is returned
Both expressions are empty | Integer subtype is returned

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Returns the result.

Смотрите также

  • variant_sub() - Subtracts the value of the right variant from the left variant value


Performs a bitwise AND operation between two variants

  • « variant_add
  • variant_cast »
  • PHP Manual
  • COM Функции
  • Performs a bitwise AND operation between two variants

variant_and

(PHP 5, PHP 7)

variant_and — Performs a bitwise AND operation between two variants

Описание

mixed variant_and ( mixed $left , mixed $right )

Performs a bitwise AND operation. Note that this is slightly different from a regular AND operation.

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Variant AND Rules
If left is | If right is | then the result is
TRUE | TRUE | TRUE
TRUE | FALSE | FALSE
TRUE | NULL | NULL
FALSE | TRUE | FALSE
FALSE | FALSE | FALSE
FALSE | NULL | FALSE
NULL | TRUE | NULL
NULL | FALSE | FALSE
NULL | NULL | NULL

Смотрите также

  • variant_or() - Performs a logical disjunction on two variants


Convert a variant into a new variant object of another type

  • « variant_and
  • variant_cat »
  • PHP Manual
  • COM Функции
  • Convert a variant into a new variant object of another type

variant_cast

(PHP 5, PHP 7)

variant_cast — Convert a variant into a new variant object of another type

Описание

variant variant_cast ( variant $variant , int $type )

This function makes a copy of variant and then performs a variant cast operation to force the copy to have the type given by type.

This function wraps VariantChangeType() in the COM library; consult MSDN for more information.

Список параметров

variant

The variant.

type

type should be one of the VT_XXX constants.

Возвращаемые значения

Returns a VT_DATE variant.

Смотрите также

  • variant_set_type() - Convert a variant into another type "in-place"


concatenates two variant values together and returns the result

  • « variant_cast
  • variant_cmp »
  • PHP Manual
  • COM Функции
  • concatenates two variant values together and returns the result

variant_cat

(PHP 5, PHP 7)

variant_cat — concatenates two variant values together and returns the result

Описание

mixed variant_cat ( mixed $left , mixed $right )

Concatenates left with right and returns the result.

This function is notionally equivalent to $left . $right.

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Returns the result of the concatenation.

Смотрите также

  • Строковые операторы for the string concatenation operator


Compares two variants

  • « variant_cat
  • variant_date_from_timestamp »
  • PHP Manual
  • COM Функции
  • Compares two variants

variant_cmp

(PHP 5, PHP 7)

variant_cmp — Compares two variants

Описание

int variant_cmp ( mixed $left , mixed $right [, int $lcid [, int $flags ]] )

Compares left with right.

This function will only compare scalar values, not arrays or variant records.

Список параметров

left

The left operand.

right

The right operand.

lcid

A valid Locale Identifier to use when comparing strings (this affects string collation).

flags

flags can be one or more of the following values OR'd together, and affects string comparisons:

Variant Comparision Flags
value | meaning
NORM_IGNORECASE | Compare case insensitively
NORM_IGNORENONSPACE | Ignore nonspacing characters
NORM_IGNORESYMBOLS | Ignore symbols
NORM_IGNOREWIDTH | Ignore string width
NORM_IGNOREKANATYPE | Ignore Kana type
NORM_IGNOREKASHIDA | Ignore Arabic kashida characters

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Returns one of the following:

Variant Comparision Results
value | meaning
VARCMP_LT | left is less than right
VARCMP_EQ | left is equal to right
VARCMP_GT | left is greater than right
VARCMP_NULL | Either left, right or both are NULL


Returns a variant date representation of a Unix timestamp

  • « variant_cmp
  • variant_date_to_timestamp »
  • PHP Manual
  • COM Функции
  • Returns a variant date representation of a Unix timestamp

variant_date_from_timestamp

(PHP 5, PHP 7)

variant_date_from_timestamp — Returns a variant date representation of a Unix timestamp

Описание

variant variant_date_from_timestamp ( int $timestamp )

Converts timestamp from a unix timestamp value into a variant of type VT_DATE. This allows easier interopability between the unix-ish parts of PHP and COM.

Список параметров

timestamp

A unix timestamp.

Возвращаемые значения

Returns a VT_DATE variant.

Смотрите также

  • variant_date_to_timestamp() - Converts a variant date/time value to Unix timestamp
  • mktime() - Возвращает метку времени Unix для заданной даты
  • time() - Возвращает текущую метку времени Unix


Converts a variant date/time value to Unix timestamp

  • « variant_date_from_timestamp
  • variant_div »
  • PHP Manual
  • COM Функции
  • Converts a variant date/time value to Unix timestamp

variant_date_to_timestamp

(PHP 5, PHP 7)

variant_date_to_timestamp — Converts a variant date/time value to Unix timestamp

Описание

int variant_date_to_timestamp ( variant $variant )

Converts variant from a VT_DATE (or similar) value into a Unix timestamp. This allows easier interopability between the Unix-ish parts of PHP and COM.

Список параметров

variant

The variant.

Возвращаемые значения

Returns a unix timestamp.

Смотрите также

  • variant_date_from_timestamp() - Returns a variant date representation of a Unix timestamp
  • date() - Форматирует вывод системной даты/времени
  • strftime() - Форматирует текущую дату/время с учетом текущих настроек локали


Returns the result from dividing two variants

  • « variant_date_to_timestamp
  • variant_eqv »
  • PHP Manual
  • COM Функции
  • Returns the result from dividing two variants

variant_div

(PHP 5, PHP 7)

variant_div — Returns the result from dividing two variants

Описание

mixed variant_div ( mixed $left , mixed $right )

Divides left by right and returns the result.

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Variant Division Rules
If | Then
Both expressions are of the string, date, character, boolean type | Double is returned
One expression is a string type and the other a character | Division and a double is returned
One expression is numeric and the other is a string | Division and a double is returned.
Both expressions are numeric | Division and a double is returned
Either expression is NULL | NULL is returned
right is empty and left is anything but empty | A com_exception with code DISP_E_DIVBYZERO is thrown
left is empty and right is anything but empty. | 0 as type double is returned
Both expressions are empty | A com_exception with code DISP_E_OVERFLOW is thrown

Смотрите также

  • variant_idiv() - Converts variants to integers and then returns the result from dividing them


Performs a bitwise equivalence on two variants

  • « variant_div
  • variant_fix »
  • PHP Manual
  • COM Функции
  • Performs a bitwise equivalence on two variants

variant_eqv

(PHP 5, PHP 7)

variant_eqv — Performs a bitwise equivalence on two variants

Описание

mixed variant_eqv ( mixed $left , mixed $right )

Performs a bitwise equivalence on two variants.

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

If each bit in left is equal to the corresponding bit in right then TRUE is returned, otherwise FALSE is returned.


Returns the integer portion of a variant

  • « variant_eqv
  • variant_get_type »
  • PHP Manual
  • COM Функции
  • Returns the integer portion of a variant

variant_fix

(PHP 5, PHP 7)

variant_fix — Returns the integer portion of a variant

Описание

mixed variant_fix ( mixed $variant )

Gets the integer portion of a variant.

Список параметров

variant

The variant.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

If variant is negative, then the first negative integer greater than or equal to the variant is returned, otherwise returns the integer portion of the value of variant.

Примечания

Внимание

This documentation is based on the MSDN documentation; it appears that this function is either the same as variant_int(), or that there is an error in the MSDN documentation.

Смотрите также

  • variant_int() - Returns the integer portion of a variant
  • variant_round() - Rounds a variant to the specified number of decimal places
  • floor() - Округляет дробь в меньшую сторону
  • ceil() - Округляет дробь в большую сторону
  • round() - Округляет число типа float


Returns the type of a variant object

  • « variant_fix
  • variant_idiv »
  • PHP Manual
  • COM Функции
  • Returns the type of a variant object

variant_get_type

(PHP 5, PHP 7)

variant_get_type — Returns the type of a variant object

Описание

int variant_get_type ( variant $variant )

Returns the type of a variant object.

Список параметров

variant

The variant object.

Возвращаемые значения

This function returns an integer value that indicates the type of variant, which can be an instance of COM, DOTNET or VARIANT classes. The return value can be compared to one of the VT_XXX constants.

The return value for COM and DOTNET objects will usually be VT_DISPATCH; the only reason this function works for those classes is because COM and DOTNET are descendants of VARIANT.

In PHP versions prior to 5, you could obtain this information from instances of the VARIANT class ONLY, by reading a fake type property. See the VARIANT class for more information on this.


Converts variants to integers and then returns the result from dividing them

  • « variant_get_type
  • variant_imp »
  • PHP Manual
  • COM Функции
  • Converts variants to integers and then returns the result from dividing them

variant_idiv

(PHP 5, PHP 7)

variant_idiv — Converts variants to integers and then returns the result from dividing them

Описание

mixed variant_idiv ( mixed $left , mixed $right )

Converts left and right to integer values, and then performs integer division.

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Variant Integer Division Rules
If | Then
Both expressions are of the string, date, character, boolean type | Division and integer is returned
One expression is a string type and the other a character | Division
One expression is numeric and the other is a string | Division
Both expressions are numeric | Division
Either expression is NULL | NULL is returned
Both expressions are empty | A com_exception with code DISP_E_DIVBYZERO is thrown

Смотрите также

  • variant_div() - Returns the result from dividing two variants


Performs a bitwise implication on two variants

  • « variant_idiv
  • variant_int »
  • PHP Manual
  • COM Функции
  • Performs a bitwise implication on two variants

variant_imp

(PHP 5, PHP 7)

variant_imp — Performs a bitwise implication on two variants

Описание

mixed variant_imp ( mixed $left , mixed $right )

Performs a bitwise implication operation.

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Variant Implication Table
If left is | If right is | then the result is
TRUE | TRUE | TRUE
TRUE | FALSE | TRUE
TRUE | NULL | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | TRUE
FALSE | NULL | TRUE
NULL | TRUE | TRUE
NULL | FALSE | NULL
NULL | NULL | NULL


Returns the integer portion of a variant

  • « variant_imp
  • variant_mod »
  • PHP Manual
  • COM Функции
  • Returns the integer portion of a variant

variant_int

(PHP 5, PHP 7)

variant_int — Returns the integer portion of a variant

Описание

mixed variant_int ( mixed $variant )

Gets the integer portion of a variant.

Список параметров

variant

The variant.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

If variant is negative, then the first negative integer greater than or equal to the variant is returned, otherwise returns the integer portion of the value of variant.

Смотрите также

  • variant_fix() - Returns the integer portion of a variant
  • variant_round() - Rounds a variant to the specified number of decimal places
  • floor() - Округляет дробь в меньшую сторону
  • ceil() - Округляет дробь в большую сторону
  • round() - Округляет число типа float


Divides two variants and returns only the remainder

  • « variant_int
  • variant_mul »
  • PHP Manual
  • COM Функции
  • Divides two variants and returns only the remainder

variant_mod

(PHP 5, PHP 7)

variant_mod — Divides two variants and returns only the remainder

Описание

mixed variant_mod ( mixed $left , mixed $right )

Divides left by right and returns the remainder.

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Returns the remainder of the division.

Смотрите также

  • variant_div() - Returns the result from dividing two variants
  • variant_idiv() - Converts variants to integers and then returns the result from dividing them


Multiplies the values of the two variants

  • « variant_mod
  • variant_neg »
  • PHP Manual
  • COM Функции
  • Multiplies the values of the two variants

variant_mul

(PHP 5, PHP 7)

variant_mul — Multiplies the values of the two variants

Описание

mixed variant_mul ( mixed $left , mixed $right )

Multiplies left by right.

Список параметров

left

The left operand.

right

The right operand.

Boolean values are converted to -1 for FALSE and 0 for TRUE.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Variant Multiplication Rules
If | Then
Both expressions are of the string, date, character, boolean type | Multiplication
One expression is a string type and the other a character | Multiplication
One expression is numeric and the other is a string | Multiplication
Both expressions are numeric | Multiplication
Either expression is NULL | NULL is returned
Both expressions are empty | Empty string is returned

Смотрите также

  • variant_div() - Returns the result from dividing two variants
  • variant_idiv() - Converts variants to integers and then returns the result from dividing them


Performs logical negation on a variant

  • « variant_mul
  • variant_not »
  • PHP Manual
  • COM Функции
  • Performs logical negation on a variant

variant_neg

(PHP 5, PHP 7)

variant_neg — Performs logical negation on a variant

Описание

mixed variant_neg ( mixed $variant )

Performs logical negation of variant.

Список параметров

variant

The variant.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Returns the result of the logical negation.


Performs bitwise not negation on a variant

  • « variant_neg
  • variant_or »
  • PHP Manual
  • COM Функции
  • Performs bitwise not negation on a variant

variant_not

(PHP 5, PHP 7)

variant_not — Performs bitwise not negation on a variant

Описание

mixed variant_not ( mixed $variant )

Performs bitwise not negation on variant and returns the result.

Список параметров

variant

The variant.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Returns the bitwise not negation. If variant is NULL, the result will also be NULL.


Performs a logical disjunction on two variants

  • « variant_not
  • variant_pow »
  • PHP Manual
  • COM Функции
  • Performs a logical disjunction on two variants

variant_or

(PHP 5, PHP 7)

variant_or — Performs a logical disjunction on two variants

Описание

mixed variant_or ( mixed $left , mixed $right )

Performs a bitwise OR operation. Note that this is slightly different from a regular OR operation.

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Variant OR Rules
If left is | If right is | then the result is
TRUE | TRUE | TRUE
TRUE | FALSE | TRUE
TRUE | NULL | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | FALSE
FALSE | NULL | NULL
NULL | TRUE | TRUE
NULL | FALSE | NULL
NULL | NULL | NULL

Смотрите также

  • variant_and() - Performs a bitwise AND operation between two variants
  • variant_xor() - Performs a logical exclusion on two variants


Returns the result of performing the power function with two variants

  • « variant_or
  • variant_round »
  • PHP Manual
  • COM Функции
  • Returns the result of performing the power function with two variants

variant_pow

(PHP 5, PHP 7)

variant_pow — Returns the result of performing the power function with two variants

Описание

mixed variant_pow ( mixed $left , mixed $right )

Returns the result of left to the power of right.

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Returns the result of left to the power of right.

Смотрите также

  • pow() - Возведение в степень


Rounds a variant to the specified number of decimal places

  • « variant_pow
  • variant_set_type »
  • PHP Manual
  • COM Функции
  • Rounds a variant to the specified number of decimal places

variant_round

(PHP 5, PHP 7)

variant_round — Rounds a variant to the specified number of decimal places

Описание

mixed variant_round ( mixed $variant , int $decimals )

Returns the value of variant rounded to decimals decimal places.

Список параметров

variant

The variant.

decimals

Number of decimal places.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Returns the rounded value.

Смотрите также

  • round() - Округляет число типа float


Convert a variant into another type "in-place"

  • « variant_round
  • variant_set »
  • PHP Manual
  • COM Функции
  • Convert a variant into another type "in-place"

variant_set_type

(PHP 5, PHP 7)

variant_set_type — Convert a variant into another type "in-place"

Описание

void variant_set_type ( variant $variant , int $type )

This function is similar to variant_cast() except that the variant is modified "in-place"; no new variant is created. The parameters for this function have identical meaning to those of variant_cast().

Список параметров

variant

The variant.

type

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • variant_cast() - Convert a variant into a new variant object of another type


Assigns a new value for a variant object

  • « variant_set_type
  • variant_sub »
  • PHP Manual
  • COM Функции
  • Assigns a new value for a variant object

variant_set

(PHP 5, PHP 7)

variant_set — Assigns a new value for a variant object

Описание

void variant_set ( variant $variant , mixed $value )

Converts value to a variant and assigns it to the variant object; no new variant object is created, and the old value of variant is freed/released.

Список параметров

variant

The variant.

value

Возвращаемые значения

Эта функция не возвращает значения после выполнения.


Subtracts the value of the right variant from the left variant value

  • « variant_set
  • variant_xor »
  • PHP Manual
  • COM Функции
  • Subtracts the value of the right variant from the left variant value

variant_sub

(PHP 5, PHP 7)

variant_sub — Subtracts the value of the right variant from the left variant value

Описание

mixed variant_sub ( mixed $left , mixed $right )

Subtracts right from left.

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Variant Subtraction Rules
If | Then
Both expressions are of the string type | Subtraction
One expression is a string type and the other a character | Subtraction
One expression is numeric and the other is a string | Subtraction.
Both expressions are numeric | Subtraction
Either expression is NULL | NULL is returned
Both expressions are empty | Empty string is returned

Смотрите также

  • variant_add() - "Adds" two variant values together and returns the result


Performs a logical exclusion on two variants

  • « variant_sub
  • win32ps »
  • PHP Manual
  • COM Функции
  • Performs a logical exclusion on two variants

variant_xor

(PHP 5, PHP 7)

variant_xor — Performs a logical exclusion on two variants

Описание

mixed variant_xor ( mixed $left , mixed $right )

Performs a logical exclusion.

Список параметров

left

The left operand.

right

The right operand.

Замечание:

Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или NULL), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.

Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.

Возвращаемые значения

Variant XOR Rules
If left is | If right is | then the result is
TRUE | TRUE | FALSE
TRUE | FALSE | TRUE
FALSE | TRUE | TRUE
FALSE | FALSE | FALSE
NULL | NULL | NULL

Смотрите также

  • variant_or() - Performs a logical disjunction on two variants
  • variant_and() - Performs a bitwise AND operation between two variants


win32ps

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Примеры Win32ps
  • win32ps Функции
    • win32_ps_list_procs — Список запущщеных процессов
    • win32_ps_stat_mem — Stat memory utilization
    • win32_ps_stat_proc — Stat process


Введение

Расширение win32ps является специфическим расширением для Windows, которое позволяет PHP получать статистику о процессе и использовании памяти.


Требования

Windows NT, Windows 2000, Windows XP или Windows Server 2003. Любая версия Windows, производная от Windows NT, должна быть совместимой.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/win32ps.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • win32ps
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Примеры Win32ps »
  • PHP Manual
  • win32ps
  • Примеры

Примеры

Содержание

  • Примеры Win32ps


Примеры Win32ps

Пример #1 Статистические данные о текущем процессе PHP

<?php
print_r(win32_ps_stat_proc());
/*
    Array
    (
        [pid] => 936
        [exe] => D:\Daten\Source\php-5.1\Debug_TS\php.exe
        [mem] => Array
            (
                [page_fault_count] => 2062
                [peak_working_set_size] => 8396800
                [working_set_size] => 8396800
                [quota_peak_paged_pool_usage] => 32080
                [quota_paged_pool_usage] => 31876
                [quota_peak_non_paged_pool_usage] => 4240
                [quota_non_paged_pool_usage] => 3888
                [pagefile_usage] => 5865472
                [peak_pagefile_usage] => 5865472
            )

        [tms] => Array
            (
                [created] => 0.093
                [kernel] => 0.015
                [user] => 0.062
            )

    )
*/
?>

Пример #2 Статистические данные о глобальном использовании памяти

<?php
print_r(win32_ps_stat_mem());
/*
    Array
    (
        [load] => 37
        [unit] => 1024
        [total_phys] => 1048096
        [avail_phys] => 649960
        [total_pagefile] => 2521368
        [avail_pagefile] => 2237940
        [total_virtual] => 2097024
        [avail_virtual] => 2057848
    )
*/
?>


win32ps Функции

Содержание

  • win32_ps_list_procs — Список запущщеных процессов
  • win32_ps_stat_mem — Stat memory utilization
  • win32_ps_stat_proc — Stat process


Список запущщеных процессов

  • « win32ps Функции
  • win32_ps_stat_mem »
  • PHP Manual
  • win32ps Функции
  • Список запущщеных процессов

win32_ps_list_procs

(PECL win32ps >= 1.0.1)

win32_ps_list_procs — Список запущщеных процессов

Описание

array win32_ps_list_procs ( void )

Извлекает статистику по всем запущщеным процессам.

Возвращаемые значения

Возвращает FALSE в случае неудачи, или массив, содержащий статистику, аналогичную win32_ps_stat_proc(), но по всем запущщеным процессам в случае успеха.

Смотрите также

  • win32_ps_stat_proc() - Stat process


Stat memory utilization

  • « win32_ps_list_procs
  • win32_ps_stat_proc »
  • PHP Manual
  • win32ps Функции
  • Stat memory utilization

win32_ps_stat_mem

(PECL win32ps >= 1.0.1)

win32_ps_stat_mem — Stat memory utilization

Описание

array win32_ps_stat_mem ( void )

Извлекает статистику общей утилизации памяти.

Возвращаемые значения

Возвращает FALSE в случае неудачи, или массив содержащий следующую информацию, в случае успеха:

load

Текущая утилизация памяти в процентах к суммарной физической памяти.

unit

Всегда 1024. Означает, что все нижеперечисленные значения считаются в блоках по 1024 байт.

total_phys

Количество физической памяти.

avail_phys

Количество доступной физической памяти.

total_pagefile

Количество страниц адресуемой памяти (физическая + файл подкачки).

avail_pagefile

Количество доступных страниц адресуемой памяти (физическая + файл подкачки).

total_virtual

Количество общей виртуальной памяти для процесса.

avail_virtual

Количество доступной виртуальной памяти для процесса.


Stat process

  • « win32_ps_stat_mem
  • win32service »
  • PHP Manual
  • win32ps Функции
  • Stat process

win32_ps_stat_proc

(PECL win32ps >= 1.0.1)

win32_ps_stat_proc — Stat process

Описание

array win32_ps_stat_proc ([ int $pid = 0 ] )

Извлекает статистику по процессу с идентификатором pid.

Список параметров

pid

Идентификатор процесса. Если не указан, то используется текущий процесс.

Возвращаемые значения

Возвращает FALSE в случае неудачи, или массив содержащий следующую информацию, в случае успеха:

pid

Идентификатор процесса.

exe

Путь к запускаемому файлу.

mem

Массив, содержащий информацию по следующим индикаторам использования памяти: page_fault_count, peak_working_set_size, working_set_size, quota_peak_paged_pool_usage, quota_paged_pool_usage, quota_peak_non_paged_pool_usage, quota_non_paged_pool_usage, pagefile_usage и peak_pagefile_usage.

tms

Массив, содержащий информацию по следующим индикаторам использования процессора: created, kernel и user.

Смотрите также

  • win32_ps_list_procs() - Список запущщеных процессов


win32service

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
    • Битовые маски типа службы Win32Service
    • Константы статуса службы Win32Service
    • Константы обработки сообщений службой Win32Service
    • Принимаемые битовые маски обработки сообщений службой Win32Service
    • Константы типа запуска службы Win32Service
    • Константы контроля ошибок сервиса Win32Service
    • Константы флагов сервиса Win32Service
    • Коды ошибок Win32
    • Базовые классы приоритетов Win32
  • Примеры
  • win32service
    • win32_continue_service — Возобновляет работу приостановленной службы
    • win32_create_service — Creates a new service entry in the SCM database
    • win32_delete_service — Deletes a service entry from the SCM database
    • win32_get_last_control_message — Returns the last control message that was sent to this service
    • win32_pause_service — Pauses a service
    • win32_query_service_status — Queries the status of a service
    • win32_set_service_status — Update the service status
    • win32_start_service_ctrl_dispatcher — Добавляет в Диспетчер Служб скрипт, который может быть использован как служба с заданным именем
    • win32_start_service — Запускает службу
    • win32_stop_service — Останавливает службу


Введение

Расширение win32service - это специальное Windows-расширение, которое позволяет PHP взаимодействовать с диспетчером управления службами для запуска, остановки, добавления и удаления служб, и даже запускать ваши PHP скрипты как службы.


Требования

Windows NT, Windows 2000, Windows XP или Windows Server 2003. Любая версия Windows, начиная с Windows NT, совместима.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/win32service


Предопределенные константы

Содержание

  • Битовые маски типа службы Win32Service
  • Константы статуса службы Win32Service
  • Константы обработки сообщений службой Win32Service
  • Принимаемые битовые маски обработки сообщений службой Win32Service
  • Константы типа запуска службы Win32Service
  • Константы контроля ошибок сервиса Win32Service
  • Константы флагов сервиса Win32Service
  • Коды ошибок Win32
  • Базовые классы приоритетов Win32

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если 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 | Оповещает службу, что надо выйти из состояния паузы Notifies a paused service that it should resume.
WIN32_SERVICE_CONTROL_INTERROGATE | 0x00000004 | Оповещает службу, что надо послать информацию по ее текущему статусу в менеджер служб.
WIN32_SERVICE_CONTROL_PAUSE | 0x00000002 | Оповещает службу, что надо перейти в режим паузы.
WIN32_SERVICE_CONTROL_PRESHUTDOWN | 0x0000000F | Оповещает службу, что система останавливается. Служба, обрабатывающая такое сообщение, блокирует остановку системы до момента остановки службы, либо до истечения таймаута. Это значение не поддерживается Windows Server 2003 и Windows XP/2000.
WIN32_SERVICE_CONTROL_SHUTDOWN | 0x00000005 | Оповещает службу, что система останавливается и службе необходимо произвести корректную остановку. Служба, которая принимает такое сообщение должна корректно завершить свои процессы. После того, как менеджер служб послал такое сообщение, больше никаких других сообщений он посылать службе не будет.
WIN32_SERVICE_CONTROL_STOP | 0x00000001 | Оповещает службу, что надо остановиться.


Принимаемые битовые маски обработки сообщений службой Win32Service

  • « Константы обработки сообщений службой Win32Service
  • Константы типа запуска службы Win32Service »
  • PHP Manual
  • Предопределенные константы
  • Принимаемые битовые маски обработки сообщений службой Win32Service
Принимаемые битовые маски обработки сообщений службой Win32Service
Константа | Значение | Описание
WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE | 0x00000002 | Служба может быть приостановлена и продолжена. Этот код позволяет службе принимать сообщения WIN32_SERVICE_CONTROL_PAUSE и WIN32_SERVICE_CONTROL_CONTINUE.
WIN32_SERVICE_ACCEPT_PRESHUTDOWN | 0x00000100 | Служба может выполнять задачи при остановке системы. Этот код позволяет службе принимать сообщения WIN32_SERVICE_CONTROL_PRESHUTDOWN. Это значение не поддерживается Windows Server 2003 и Windows XP/2000.
WIN32_SERVICE_ACCEPT_SHUTDOWN | 0x00000004 | Служба должна быть оповещена, что система останавливается. Этот код позволяет службе принимать сообщения WIN32_SERVICE_CONTROL_SHUTDOWN.
WIN32_SERVICE_ACCEPT_STOP | 0x00000001 | Эта служба может быть остановлена. Этот код позволяет службе принимать сообщения WIN32_SERVICE_CONTROL_STOP.


Константы типа запуска службы Win32Service

  • « Принимаемые битовые маски обработки сообщений службой Win32Service
  • Константы контроля ошибок сервиса Win32Service »
  • PHP Manual
  • Предопределенные константы
  • Константы типа запуска службы Win32Service
Константы типа запуска службы Win32Service
Константа | Значение | Описание
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 | Запускающаяся программа записывает ошибку в лог ошибок, но продолжает запускаться.


Константы флагов сервиса Win32Service

  • « Константы контроля ошибок сервиса Win32Service
  • Коды ошибок Win32 »
  • PHP Manual
  • Предопределенные константы
  • Константы флагов сервиса Win32Service
Константы флагов сервиса Win32Service
Константа | Значение | Описание
WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS | 0x00000001 | Служба выполняется в системном процессе, который всегда должен быть запущен.


Коды ошибок Win32

  • « Константы флагов сервиса Win32Service
  • Базовые классы приоритетов Win32 »
  • PHP Manual
  • Предопределенные константы
  • Коды ошибок Win32
Коды ошибок Win32
Константа | Значение | Описание
WIN32_ERROR_ACCESS_DENIED | 0x00000005 | Обработчик к базе данных SCM не имеет нужных прав доступа.
WIN32_ERROR_CIRCULAR_DEPENDENCY | 0x00000423 | Задана взаимная зависимость служб.
WIN32_ERROR_DATABASE_DOES_NOT_EXIST | 0x00000429 | Указанная база данных отсутствует.
WIN32_ERROR_DEPENDENT_SERVICES_RUNNING | 0x0000041B | Службу нельзя остановить, поскольку от нее зависит другая запущенная служба.
WIN32_ERROR_DUPLICATE_SERVICE_NAME | 0x00000436 | Отображаемое имя уже существует в базе данных диспетчера служб либо в качестве имени службы или как другое отображаемое имя.
WIN32_ERROR_FAILED_SERVICE_CONTROLLER_CONNECT | 0x00000427 | Эта ошибка возвращается, если программа запускается как консольное приложение, а не в качестве службы. Если программа выполняется как консольное приложение в целях отладки, структурируйте его таким образом, что бы код, специфичный для служб, не вызывался.
WIN32_ERROR_INSUFFICIENT_BUFFER | 0x0000007A | Буфер слишком мал для структуры состояния службы. В структуру не будет ничего записано.
WIN32_ERROR_INVALID_DATA | 0x0000000D | Указана некорректная структура состояния службы.
WIN32_ERROR_INVALID_HANDLE | 0x00000006 | Обработчик для указанной базы данных диспетчера управления службами недействителен.
WIN32_ERROR_INVALID_LEVEL | 0x0000007C | Параметр InfoLevel содержит неподдерживаемое значение.
WIN32_ERROR_INVALID_NAME | 0x0000007B | Указанное имя службы некорректно.
WIN32_ERROR_INVALID_PARAMETER | 0x00000057 | Указанный параметр некорректен.
WIN32_ERROR_INVALID_SERVICE_ACCOUNT | 0x00000421 | Имя аккаунта пользователя, указанное в user отсутствует. Смотри win32_create_service().
WIN32_ERROR_INVALID_SERVICE_CONTROL | 0x0000041C | Запрошенный контрольный код является недействительным, или неприемлемым для службы.
WIN32_ERROR_PATH_NOT_FOUND | 0x00000003 | Исполняемый файл службы не найден.
WIN32_ERROR_SERVICE_ALREADY_RUNNING | 0x00000420 | Экземпляр службы уже запущен.
WIN32_ERROR_SERVICE_CANNOT_ACCEPT_CTRL | 0x00000425 | Запрошенный управляющий код не может быть послан службе, поскольку ее статус of the service is 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_NO_ERROR | 0x00000000 | Нет ошибок.


Базовые классы приоритетов 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 | Самый высокий из всех возможных приоритетов. Потоки таких процессов опережают потоки вообще всех остальных процессов, включая процессы операционной системы, выполняющие важные задачи.


Примеры

Пример #1 Регистрация скрипта PHP для запуска в качестве службы

<?php
win32_create_service(array(
    'service'     => 'dummyphp',                                           # tимя службы
    'display'     => 'sample dummy PHP service',                           # короткое описание
    'description' => 'This is a dummy Windows service created using PHP.', # длинное описание
    'params'      => '"' . __FILE__ . '"  run',                            # путь к скрипту и параметрам
));
?>

Пример #2 Удаление регистрации службы

<?php
win32_delete_service('dummyphp');
?>

Пример #3 Запуск в качестве службы

<?php
if ($argv[1] == 'run') {
  win32_start_service_ctrl_dispatcher('dummyphp');

  while (WIN32_SERVICE_CONTROL_STOP != win32_get_last_control_message()) {
    # тут творим свои дела.
    # пытаемся сотворить их быстрее, чем за 30 секунд.
  }
}
?>


win32service

Содержание

  • win32_continue_service — Возобновляет работу приостановленной службы
  • win32_create_service — Creates a new service entry in the SCM database
  • win32_delete_service — Deletes a service entry from the SCM database
  • win32_get_last_control_message — Returns the last control message that was sent to this service
  • win32_pause_service — Pauses a service
  • win32_query_service_status — Queries the status of a service
  • win32_set_service_status — Update the service status
  • win32_start_service_ctrl_dispatcher — Добавляет в Диспетчер Служб скрипт, который может быть использован как служба с заданным именем
  • win32_start_service — Запускает службу
  • win32_stop_service — Останавливает службу


Возобновляет работу приостановленной службы

  • « win32service
  • win32_create_service »
  • PHP Manual
  • win32service
  • Возобновляет работу приостановленной службы

win32_continue_service

(PECL win32service SVN)

win32_continue_service — Возобновляет работу приостановленной службы

Описание

int win32_continue_service ( string $servicename [, string $machine ] )

Возобновляет работу обозначенной приостановленной службы. Требует административных привилегий.

Список параметров

servicename

Короткое название службы.

machine

Необязательное имя машины. Если не указано, используется на локальной машине.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Смотрите также

  • win32_start_service() - Запускает службу
  • Коды Ошибок Win32


Creates a new service entry in the SCM database

  • « win32_continue_service
  • win32_delete_service »
  • PHP Manual
  • win32service
  • Creates a new service entry in the SCM database

win32_create_service

(PECL win32service SVN)

win32_create_service — Creates a new service entry in the SCM database

Описание

mixed win32_create_service ( array $details [, string $machine ] )

Список параметров

details

An array of service details:

service

The short name of the service. This is the name that you will use to control the service using the net command. The service must be unique (no two services can share the same name), and, ideally, should avoid having spaces in the name.

display

The display name of the service. This is the name that you will see in the Services Applet.

description

The long description of the service. This is the description that you will see in the Services Applet.

user

The name of the user account under which you want the service to run. If omitted, the service will run as the LocalSystem account. If the username is specified, you must also provide a password.

password

The password that corresponds to the user.

path

The full path to the executable module that will be launched when the service is started. If omitted, the path to the current PHP process will be used.

params

Command line parameters to pass to the service when it starts. If you want to run a PHP script as the service, then the first parameter should be the full path to the PHP script that you intend to run. If the script name or path contains spaces, then wrap the full path to the PHP script with ".

load_order

Controls the load_order. This is not yet fully supported.

svc_type

Sets the service type. If omitted, the default value is WIN32_SERVICE_WIN32_OWN_PROCESS. Don't change this unless you know what you're doing.

start_type

Specifies how the service should be started. The default is WIN32_SERVICE_AUTO_START which means the service will be launched when the machine starts up.

error_control

Informs the SCM what it should do when it detects a problem with the service. The default is WIN32_SERVER_ERROR_IGNORE. Changing this value is not yet fully supported.

delayed_start

If delayed_start is set to TRUE, then this will inform the SCM that this service should be started after other auto-start services are started plus a short delay.

Any service can be marked as a delayed auto-start service; however, this setting has no effect unless the service's start_type is WIN32_SERVICE_AUTO_START.

This setting is only applicable on Windows Vista and Windows Server 2008 or greater.

base_priority

To reduce the impact on processor utilisation, it may be necessary to set a base priority lower than normal.

The base_priority can be set to one of the constants define in Win32 Base Priority Classes.

machine

The optional machine name on which you want to create a service. If omitted, it will use the local machine.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Примеры

Пример #1 A win32_create_service() example

Create a service with the short name 'dummyphp'.

<?php
$x = win32_create_service(array(
    'service'     => 'dummyphp',                                           # the name of your service
    'display'     => 'sample dummy PHP service',                           # short description
    'description' => 'This is a dummy Windows service created using PHP.', # long description
    'params'      => '"' . __FILE__ . '"  run',                            # path to the script and parameters
));
debug_zval_dump($x);
?>

Смотрите также

  • win32_delete_service() - Deletes a service entry from the SCM database
  • Win32 Base Priority Classes
  • Win32 Error Codes


Deletes a service entry from the SCM database

  • « win32_create_service
  • win32_get_last_control_message »
  • PHP Manual
  • win32service
  • Deletes a service entry from the SCM database

win32_delete_service

(PECL win32service SVN)

win32_delete_service — Deletes a service entry from the SCM database

Описание

mixed win32_delete_service ( string $servicename [, string $machine ] )

Attempts to delete a service from the SCM database. Administrative privileges are required for this to succeed.

This function really just marks the service for deletion. If other processes (such as the Services Applet) are open, then the deletion will be deferred until those applications are closed. If a service is marked for deletion, further attempts to delete it will fail, and attempts to create a new service with that name will also fail.

Список параметров

servicename

The short name of the service.

machine

The optional machine name. If omitted, the local machine will be used.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Примеры

Пример #1 A win32_delete_service() example

Deletes the dummyphp service.

<?php
win32_delete_service('dummyphp');
?>

Смотрите также

  • win32_create_service() - Creates a new service entry in the SCM database
  • Win32 Error Codes


Returns the last control message that was sent to this service

  • « win32_delete_service
  • win32_pause_service »
  • PHP Manual
  • win32service
  • Returns the last control message that was sent to this service

win32_get_last_control_message

(PECL win32service SVN)

win32_get_last_control_message — Returns the last control message that was sent to this service

Описание

int win32_get_last_control_message ( void )

Returns the control code that was last sent to this service process. When running as a service you should periodically check this to determine if your service needs to stop running.

Возвращаемые значения

Returns a control constant which will be one of the Win32Service Service Control Message Constants: WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_PAUSE, WIN32_SERVICE_CONTROL_PRESHUTDOWN, WIN32_SERVICE_CONTROL_SHUTDOWN, WIN32_SERVICE_CONTROL_STOP.

Смотрите также

  • win32_start_service_ctrl_dispatcher() - Добавляет в Диспетчер Служб скрипт, который может быть использован как служба с заданным именем
  • Win32Service Service Control Message Constants


Pauses a service

  • « win32_get_last_control_message
  • win32_query_service_status »
  • PHP Manual
  • win32service
  • Pauses a service

win32_pause_service

(PECL win32service SVN)

win32_pause_service — Pauses a service

Описание

int win32_pause_service ( string $servicename [, string $machine ] )

Pauses a named service. Requires administrative privileges.

Список параметров

servicename

The short name of the service.

machine

Optional machine name. If omitted, the local machine is used.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Смотрите также

  • win32_start_service() - Запускает службу
  • Win32 Error Codes


Queries the status of a service

  • « win32_pause_service
  • win32_set_service_status »
  • PHP Manual
  • win32service
  • Queries the status of a service

win32_query_service_status

(PECL win32service SVN)

win32_query_service_status — Queries the status of a service

Описание

mixed win32_query_service_status ( string $servicename [, string $machine ] )

Queries the current status for a service, returning an array of information.

Список параметров

servicename

The short name of the service.

machine

The optional machine name. If omitted, the local machine will be used.

Возвращаемые значения

Returns an array consisting of the following information on success, FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

ServiceType

The dwServiceType. See Win32Service Service Type Bitmasks.

CurrentState

The dwCurrentState. See Win32Service Service Status Constants.

ControlsAccepted

Which service controls are accepted by the service. See Win32Service Service Control Message Accepted Bitmasks.

Win32ExitCode

If the service exited, the return code from the process.

ServiceSpecificExitCode

If the service exited with an error condition, the service specific code that is logged in the event log is visible here.

CheckPoint

If the service is shutting down, holds the current check point number. This is used by the SCM as a kind of heart-beat to detect a wedged service process. The value of the check point is best interpreted in conjunction with the WaitHint value.

WaitHint

If the service is shutting down it will set WaitHint to a checkpoint value that will indicate 100% completion. This can be used to implement a progress indicator.

ProcessId

The Windows process identifier. If 0, the process is not running.

ServiceFlags

The dwServiceFlags. See Win32Service Service Service Flag Constants.

Смотрите также

  • Win32Service Predefined Constants


Update the service status

  • « win32_query_service_status
  • win32_start_service_ctrl_dispatcher »
  • PHP Manual
  • win32service
  • Update the service status

win32_set_service_status

(PECL win32service SVN)

win32_set_service_status — Update the service status

Описание

bool win32_set_service_status ( int $status [, int $checkpoint = 0 ] )

Informs the SCM of the current status of a running service. This call is only valid for a running service process.

Список параметров

status

The service status code, one of WIN32_SERVICE_RUNNING, WIN32_SERVICE_STOPPED, WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING, WIN32_SERVICE_PAUSE_PENDING, WIN32_SERVICE_PAUSED.

checkpoint

The checkpoint value the service increments periodically to report its progress during a lengthy start, stop, pause, or continue operation. For example, the service should increment this value as it completes each step of its initialization when it is starting up.

The checkpoint is only valid when the status is one of WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING or WIN32_SERVICE_PAUSE_PENDING.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения, FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Смотрите также

  • win32_start_service_ctrl_dispatcher() - Добавляет в Диспетчер Служб скрипт, который может быть использован как служба с заданным именем
  • Win32Service Service Status Constants


Добавляет в Диспетчер Служб скрипт, который может быть использован как служба с заданным именем

  • « win32_set_service_status
  • win32_start_service »
  • PHP Manual
  • win32service
  • Добавляет в Диспетчер Служб скрипт, который может быть использован как служба с заданным именем

win32_start_service_ctrl_dispatcher

(PECL win32service SVN)

win32_start_service_ctrl_dispatcher — Добавляет в Диспетчер Служб скрипт, который может быть использован как служба с заданным именем

Описание

mixed win32_start_service_ctrl_dispatcher ( string $name )

При запуске с помощью диспетчера служб, процессу службы необходимо сверяться с ним для мониторинга службы и связи с ней. Эта функция выполняет сверку посредством создания потока для обработки низкоуровневой связи с диспетчером служб.

После запуска процесс службы должен осуществить два действия. Первое - сообщить диспетчеру служб, что служба запущена. Это осуществляется путем вызова win32_set_service_status() с константой WIN32_SERVICE_RUNNING. Если вам необходимо выполнить некий длительный процесс перед запуском службы, то вы можете использовать константу WIN32_SERVICE_START_PENDING. Второе - продолжить сверку с диспетчером служб, чтобы определить необходимость отключения. Это осуществляется посредством периодического вызова win32_get_last_control_message() и обработки кода возврата соответствующим образом.

Список параметров

name

Короткое имя службы, как при добавлении с помощью win32_create_service().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения, FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Примеры

Пример #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() - Update the service status
  • win32_get_last_control_message() - Returns the last control message that was sent to this service
  • Коды Ошибок Win32


Запускает службу

  • « win32_start_service_ctrl_dispatcher
  • win32_stop_service »
  • PHP Manual
  • win32service
  • Запускает службу

win32_start_service

(PECL win32service SVN)

win32_start_service — Запускает службу

Описание

int win32_start_service ( string $servicename [, string $machine ] )

Производит попытку запуска обозначенной службы. Обычно требует административных привилегий.

Список параметров

servicename

Короткое название службы.

machine

Необязательное имя машины. Если не указано, используется на локальной машине.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Смотрите также

  • win32_stop_service() - Останавливает службу
  • Коды Ошибок Win32


Останавливает службу

  • « win32_start_service
  • Обработка XML »
  • PHP Manual
  • win32service
  • Останавливает службу

win32_stop_service

(PECL win32service SVN)

win32_stop_service — Останавливает службу

Описание

int win32_stop_service ( string $servicename [, string $machine ] )

Останавливает обозначенную службу. Требует административных привилегий.

Список параметров

servicename

Короткое название службы.

machine

Необязательное имя машины. Если не указано, используется на локальной машине.

Возвращаемые значения

Возвращает WIN32_NO_ERROR в случае успешного завершения , FALSE если была обнаружена проблема с параметрами или код ошибки Win32 при неудачном завершении работы.

Смотрите также

  • win32_start_service() - Запускает службу
  • Коды Ошибок Win32


Обработка XML

  • DOM — Document Object Model
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • DOMAttr — Класс DOMAttr
    • DOMCdataSection — Класс DOMCdataSection
    • DOMCharacterData — Класс DOMCharacterData
    • DOMComment — Класс DOMComment
    • DOMDocument — Класс DOMDocument
    • DOMDocumentFragment — Класс DOMDocumentFragment
    • DOMDocumentType — Класс DOMDocumentType
    • DOMElement — Класс DOMElement
    • DOMEntity — Класс DOMEntity
    • DOMEntityReference — Класс DOMEntityReference
    • DOMException — Класс DOMException
    • DOMImplementation — Класс DOMImplementation
    • DOMNamedNodeMap — Класс DOMNamedNodeMap
    • DOMNode — Класс DOMNode
    • DOMNodeList — Класс DOMNodeList
    • DOMNotation — Класс DOMNotation
    • DOMProcessingInstruction — Класс DOMProcessingInstruction
    • DOMText — The DOMText class
    • DOMXPath — Класс DOMXPath
    • DOM Функции
  • libxml
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • libXMLError — Класс libXMLError
    • libxml Функции
  • SDO — Service Data Objects
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Limitations
    • Примеры
    • SDO Функции
  • SDO-DAS-Relational — SDO Relational Data Access Service
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Limitations
    • SDO-DAS-Relational Функции
  • SDO DAS XML — SDO XML Data Access Service
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • SDO DAS XML Функции
  • SimpleXML
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • SimpleXMLElement — Класс SimpleXMLElement
    • SimpleXMLIterator — Класс SimpleXMLIterator
    • SimpleXML
  • WDDX
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • WDDX Функции
  • XMLDiff — XML diff and merge
    • Введение
    • Установка и настройка
    • XMLDiff\Base — The XMLDiff\Base class
    • XMLDiff\DOM — The XMLDiff\DOM class
    • XMLDiff\Memory — The XMLDiff\Memory class
    • XMLDiff\File — The XMLDiff\File class
  • Разбор XML
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Обработчики событий
    • Приведение к одному регистру
    • Коды ошибок
    • Кодировка символов
    • Примеры
    • Функции парсера XML
  • XMLReader
    • Введение
    • Установка и настройка
    • XMLReader — Класс XMLReader
  • XMLWriter
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • XMLWriter
  • XSL
    • Введение
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • XSLTProcessor — Класс XSLTProcessor


Document Object Model

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • DOMAttr — Класс DOMAttr
    • DOMAttr::__construct — Создает экземпляр класса DOMAttr
    • DOMAttr::isId — Проверяет, является ли атрибут описанным в DTD ID
  • DOMCdataSection — Класс DOMCdataSection
    • DOMCdataSection::__construct — Создает новый экземпляр класса DOMCdataSection
  • DOMCharacterData — Класс DOMCharacterData
    • DOMCharacterData::appendData — Добавляет строку в конец символьных данных узла
    • DOMCharacterData::deleteData — Удаление диапазона символов из узла
    • DOMCharacterData::insertData — Вставляет строку после заданного отступа из 16-битных блоков
    • DOMCharacterData::replaceData — Заменяет подстроку в узле типа DOMCharacterData
    • DOMCharacterData::substringData — Извлекает определенный диапазон данных из узла
  • DOMComment — Класс DOMComment
    • DOMComment::__construct — Создает новый экземпляр класса DOMComment
  • DOMDocument — Класс DOMDocument
    • DOMDocument::__construct — Создание нового DOMDocument объекта
    • DOMDocument::createAttribute — Создает новый атрибут
    • DOMDocument::createAttributeNS — Создает новый узел-атрибут с соответствующим ему пространством имен
    • DOMDocument::createCDATASection — Создает новый cdata узел
    • DOMDocument::createComment — Создает новый узел-комментарий
    • DOMDocument::createDocumentFragment — Создание фрагмента документа
    • DOMDocument::createElement — Создает новый узел-элемент
    • DOMDocument::createElementNS — Создание нового узла-элемента с соответствующим пространством имен
    • DOMDocument::createEntityReference — Создание нового узла-ссылки на сущность
    • DOMDocument::createProcessingInstruction — Создает новый PI-узел
    • DOMDocument::createTextNode — Создает новый текстовый узел
    • DOMDocument::getElementById — Ищет элемент с заданным id
    • DOMDocument::getElementsByTagName — Ищет все элементы с заданным локальным именем
    • DOMDocument::getElementsByTagNameNS — Ищет элементы с заданным именем в определенном пространстве имен
    • DOMDocument::importNode — Импорт узла в текущий документ
    • DOMDocument::load — Загрузка XML из файла
    • DOMDocument::loadHTML — Загрузка HTML из строки
    • DOMDocument::loadHTMLFile — Загрузка HTML из файла
    • DOMDocument::loadXML — Загрузка XML из строки
    • DOMDocument::normalizeDocument — Нормализует документ
    • DOMDocument::registerNodeClass — Регистрация расширенного класса, используемого для создания базового типа узлов
    • DOMDocument::relaxNGValidate — Производит проверку документа на правильность построения посредством relaxNG
    • DOMDocument::relaxNGValidateSource — Проверяет документ посредством relaxNG
    • DOMDocument::save — Сохраняет XML дерево из внутреннего представления в файл
    • DOMDocument::saveHTML — Сохраняет документ из внутреннего представления в строку, используя HTML форматирование
    • DOMDocument::saveHTMLFile — Сохраняет документ из внутреннего представления в файл, используя HTML форматирование
    • DOMDocument::saveXML — Сохраняет XML дерево из внутреннего представления в виде строки
    • DOMDocument::schemaValidate — Проверяет действительность документа, основываясь на заданной схеме
    • DOMDocument::schemaValidateSource — Проверяет действительность документа, основываясь на схеме
    • DOMDocument::validate — Проверяет документ на соответствие его DTD
    • DOMDocument::xinclude — Проводит вставку XInclude разделов в объектах DOMDocument
  • DOMDocumentFragment — Класс DOMDocumentFragment
    • DOMDocumentFragment::appendXML — Добавление необработанных XML данных
  • DOMDocumentType — Класс DOMDocumentType
  • DOMElement — Класс DOMElement
    • DOMElement::__construct — Создание нового объекта класса DOMElement
    • DOMElement::getAttribute — Возвращает значение атрибута
    • DOMElement::getAttributeNode — Возвращает узел атрибута
    • DOMElement::getAttributeNodeNS — Возвращает узел атрибута
    • DOMElement::getAttributeNS — Возвращает значение атрибута
    • DOMElement::getElementsByTagName — Возвращает элементы по имени тэга
    • DOMElement::getElementsByTagNameNS — Получение элементов по локальному имени в заданном пространстве имен
    • DOMElement::hasAttribute — Проверяет наличие атрибута
    • DOMElement::hasAttributeNS — Проверяет, существует ли заданный атрибут
    • DOMElement::removeAttribute — Удаляет атрибут
    • DOMElement::removeAttributeNode — Удаляет атрибут
    • DOMElement::removeAttributeNS — Удаляет атрибут
    • DOMElement::setAttribute — Устанавливает значение атрибута
    • DOMElement::setAttributeNode — Добавляет новый узел атрибута к элементу
    • DOMElement::setAttributeNodeNS — Добавляет новый атрибут к элементу
    • DOMElement::setAttributeNS — Добавляет новый атрибут
    • DOMElement::setIdAttribute — Объявляет атрибут с заданным именем ключевым атрибутом
    • DOMElement::setIdAttributeNode — Объявляет заданный узел атрибута ключевым
    • DOMElement::setIdAttributeNS — Объявляет атрибут с заданным локальным именем и URI пространства имен идентифицирующим
  • DOMEntity — Класс DOMEntity
  • DOMEntityReference — Класс DOMEntityReference
    • DOMEntityReference::__construct — Создает новый объект класса DOMEntityReference
  • DOMException — Класс DOMException
  • DOMImplementation — Класс DOMImplementation
    • DOMImplementation::__construct — Создает новый объект класса DOMImplementation
    • DOMImplementation::createDocument — Создает объект класса DOMDocument заданного типа с элементом document
    • DOMImplementation::createDocumentType — Создает пустой объект класса DOMDocumentType
    • DOMImplementation::hasFeature — Тестирует реализацию специфичных возможностей объекта DOMImplementation
  • DOMNamedNodeMap — Класс DOMNamedNodeMap
    • DOMNamedNodeMap::getNamedItem — Извлекает узел с заданным именем
    • DOMNamedNodeMap::getNamedItemNS — Извлекает узел с заданным локальным именем и URI пространства имен
    • DOMNamedNodeMap::item — Извлекает узел с заданным индексом
  • DOMNode — Класс DOMNode
    • DOMNode::appendChild — Добавляет новый дочерний узел в конец списка потомков
    • DOMNode::C14N — Canonicalize nodes to a string
    • DOMNode::C14NFile — Canonicalize nodes to a file
    • DOMNode::cloneNode — Клонирует узел
    • DOMNode::getLineNo — Возвращает номер строки узла
    • DOMNode::getNodePath — Получение XPath пути к узлу
    • DOMNode::hasAttributes — Проверяет, содержит ли данный узел атрибуты
    • DOMNode::hasChildNodes — Проверяет, содержит ли данный узел потомков
    • DOMNode::insertBefore — Добавляет новый дочерний узел перед опорным узлом
    • DOMNode::isDefaultNamespace — Проверяет, совпадает ли URI пространства имен узла с пространством имен по умолчанию
    • DOMNode::isSameNode — Проверяет, являются ли два узла одним и тем же узлом
    • DOMNode::isSupported — Проверяет, поддерживается ли заданное свойство в определенной версии
    • DOMNode::lookupNamespaceURI — Получает URI пространства имен узла по префиксу
    • DOMNode::lookupPrefix — Возвращает префикс пространства имен узла из URI пространства имен
    • DOMNode::normalize — Нормализует узел
    • DOMNode::removeChild — Удаляет дочерний узел из списка потомков
    • DOMNode::replaceChild — Заменяет дочерний узел
  • DOMNodeList — Класс DOMNodeList
    • DOMNodelist::item — Извлекает узел с заданным индексом
  • DOMNotation — Класс DOMNotation
  • DOMProcessingInstruction — Класс DOMProcessingInstruction
    • DOMProcessingInstruction::__construct — Создает новый объект классаDOMProcessingInstruction
  • DOMText — The DOMText class
    • DOMText::__construct — Создает объект класса DOMText
    • DOMText::isWhitespaceInElementContent — Определяет, содержит ли текстовый узел пробел в содержимом
    • DOMText::splitText — Разделяет узел на два, начиная с заданной позиции
  • DOMXPath — Класс DOMXPath
    • DOMXPath::__construct — Создает новый объект класса DOMXPath
    • DOMXPath::evaluate — Вычисляет переданное XPath выражение и возвращает типизированный результат, если возможно
    • DOMXPath::query — Выполняет заданное XPath выражение
    • DOMXPath::registerNamespace — Ассоциирует пространство имен с объектом DOMXPath
    • DOMXPath::registerPhpFunctions — Регистрация функций PHP как XPath функций
  • DOM Функции
    • dom_import_simplexml — Получает объект класса DOMElement из объекта класса SimpleXMLElement


Введение

Расширение DOM позволяет вам работать с XML-документами через DOM API с PHP.

Замечание:

Расширение DOM использует кодировку UTF-8. Используйте функции utf8_encode() и utf8_decode() для работы с текстами в кодировке ISO-8859-1 или Iconv для других кодировок.


Установка

Это расширение включено по умолчанию. Оно может быть отключено во время выполнения с помощью следующей опции: --disable-dom


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

XML константы
Констата | Значение | Описание
XML_ELEMENT_NODE (integer) | 1 | Узел класса DOMElement
XML_ATTRIBUTE_NODE (integer) | 2 | Узел класса DOMAttr
XML_TEXT_NODE (integer) | 3 | Узел класса DOMText
XML_CDATA_SECTION_NODE (integer) | 4 | Узел класса DOMCharacterData
XML_ENTITY_REF_NODE (integer) | 5 | Узел класса DOMEntityReference
XML_ENTITY_NODE (integer) | 6 | Узел класса DOMEntity
XML_PI_NODE (integer) | 7 | Узел класса DOMProcessingInstruction
XML_COMMENT_NODE (integer) | 8 | Узел класса DOMComment
XML_DOCUMENT_NODE (integer) | 9 | Узел класса DOMDocument
XML_DOCUMENT_TYPE_NODE (integer) | 10 | Узел класса DOMDocumentType
XML_DOCUMENT_FRAG_NODE (integer) | 11 | Узел класса DOMDocumentFragment
XML_NOTATION_NODE (integer) | 12 | Узел класса DOMNotation
XML_HTML_DOCUMENT_NODE (integer) | 13 |
XML_DTD_NODE (integer) | 14 |
XML_ELEMENT_DECL_NODE (integer) | 15 |
XML_ATTRIBUTE_DECL_NODE (integer) | 16 |
XML_ENTITY_DECL_NODE (integer) | 17 |
XML_NAMESPACE_DECL_NODE (integer) | 18 |
XML_ATTRIBUTE_CDATA (integer) | 1 |
XML_ATTRIBUTE_ID (integer) | 2 |
XML_ATTRIBUTE_IDREF (integer) | 3 |
XML_ATTRIBUTE_IDREFS (integer) | 4 |
XML_ATTRIBUTE_ENTITY (integer) | 5 |
XML_ATTRIBUTE_NMTOKEN (integer) | 7 |
XML_ATTRIBUTE_NMTOKENS (integer) | 8 |
XML_ATTRIBUTE_ENUMERATION (integer) | 9 |
XML_ATTRIBUTE_NOTATION (integer) | 10 |
Константы DOMException
Констата | Значение | Описание
DOM_PHP_ERR (integer) | 0 | Эта ошибка не является частью спецификации DOM. Предназначена для обработки ошибок PHP.
DOM_INDEX_SIZE_ERR (integer) | 1 | Если индекс отрицательный или выходит за пределы возможных значений.
DOMSTRING_SIZE_ERR (integer) | 2 | Если указанный фрагмент текста не помещается в DOMString.
DOM_HIERARCHY_REQUEST_ERR (integer) | 3 | Если невозможно вставить узел
DOM_WRONG_DOCUMENT_ERR (integer) | 4 | Если узел используется в другом документе в котором был создан.
DOM_INVALID_CHARACTER_ERR (integer) | 5 | Если указан недопустимый символ в названии.
DOM_NO_DATA_ALLOWED_ERR (integer) | 6 | Если данные, указанные для узла, не поддерживаются.
DOM_NO_MODIFICATION_ALLOWED_ERR (integer) | 7 | Если происходит попытка изменить объект, который не поддерживает изменения.
DOM_NOT_FOUND_ERR (integer) | 8 | Если пытаться изменить контекст узла, которого не существует
DOM_NOT_SUPPORTED_ERR (integer) | 9 | Если не поддерживается требуемый тип объекта или операции.
DOM_INUSE_ATTRIBUTE_ERR (integer) | 10 | Если пытаться добавить атрибут, который используется в другом месте.
DOM_INVALID_STATE_ERR (integer) | 11 | Если пытаться использовать объект, которого нет или не возможно использовать.
DOM_SYNTAX_ERR (integer) | 12 | Используются недопустимые символы.
DOM_INVALID_MODIFICATION_ERR (integer) | 13 | Если пытаться изменить тип базовому объекту.
DOM_NAMESPACE_ERR (integer) | 14 | Если пытаться создать или изменить объект с некорректным пространством имён.
DOM_INVALID_ACCESS_ERR (integer) | 15 | Если параметр или операция не поддерживается базовым объектом.
DOM_VALIDATION_ERR (integer) | 16 | Если при вызове методов insertBefore или removeChild узел становиться недействительным, то сработает это исключение и операция не будет выполнена.


Примеры

Многие примеры из этого руководства требуют XML-файл. Мы будем использовать book.xml, который имеет следующее содержание:

Пример #1 book.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>
<book id="listing">
 <title>Мои списки</title>
 <chapter id="books">
  <title>Мои книги</title>
  <para>
   <informaltable>
    <tgroup cols="4">
     <thead>
      <row>
       <entry>Название</entry>
       <entry>Автор</entry>
       <entry>Язык</entry>
       <entry>ISBN</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
      <row>
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
      <row>
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
      <!-- TODO: У меня еще есть много недобавленных книг... -->
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </chapter>
</book>


Класс DOMAttr

(PHP 5, PHP 7)

Введение

DOMAttr предоставляет работу с атрибутами в объекте DOMElement.

Обзор классов

DOMAttr extends DOMNode {
/* Свойства */
public readonly string $name ;
public readonly DOMElement $ownerElement ;
public readonly bool $schemaTypeInfo ;
public readonly bool $specified ;
public string $value ;
/* Методы */
public __construct ( string $name [, string $value ] )
public bool isId ( void )
/* Наследуемые методы */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Свойства

name

Имя атрибута

ownerElement

Элемент, который содержит атрибут

schemaTypeInfo

В данный момент не реализовано, возвращает NULL

specified

В данный момент не реализованно, возвращает NULL

value

Значение атрибута

Смотрите также

  • » спецификация W3C элемента Attr

Содержание

  • DOMAttr::__construct — Создает экземпляр класса DOMAttr
  • DOMAttr::isId — Проверяет, является ли атрибут описанным в DTD ID


Создает экземпляр класса DOMAttr

  • « DOMAttr
  • DOMAttr::isId »
  • PHP Manual
  • DOMAttr
  • Создает экземпляр класса DOMAttr

DOMAttr::__construct

(PHP 5, PHP 7)

DOMAttr::__construct — Создает экземпляр класса DOMAttr

Описание

public DOMAttr::__construct ( string $name [, string $value ] )

Создает новый объект класса DOMAttr. Объект будет доступен только для чтения. Он может быть добавлен к документу, другие узлы нельзя добавить к этому объекту, пока он присоединен к документу. Для создания узла с возможностью модификации используйте DOMDocument::createAttribute.

Список параметров

name

Имя (тэг) атрибута.

value

Значение атрибута.

Примеры

Пример #1 Создание нового объекта класса DOMAttr

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$attr = $element->setAttributeNode(new DOMAttr('attr', 'attrvalue'));
echo $dom->saveXML();

?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="utf-8"?>
<root attr="attrvalue" />

Смотрите также

  • DOMDocument::createAttribute() - Создает новый атрибут


Проверяет, является ли атрибут описанным в DTD ID

  • « DOMAttr::__construct
  • DOMCdataSection »
  • PHP Manual
  • DOMAttr
  • Проверяет, является ли атрибут описанным в DTD ID

DOMAttr::isId

(PHP 5, PHP 7)

DOMAttr::isId — Проверяет, является ли атрибут описанным в DTD ID

Описание

public bool DOMAttr::isId ( void )

Эта функция проверяет, является ли атрибут ID, описанным в DTD.

В соответствии со стандартом DOM это требует наличия DTD, которая предписывает ID атрибуту иметь соответствующий ID тип. Перед применением этой функции необходимо проверять документ на действительность с помощью DOMDocument::validate или DOMDocument::validateOnParse.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования DOMAttr::isId()

<?php

$doc = new DomDocument;

// Необходимо проверить документ на действительность перед тем как ссылаться на id
$doc->validateOnParse = true;
$doc->Load('book.xml');

// Достаем атрибут с именем id из элемента chapter
$attr = $doc->getElementsByTagName('chapter')->item(0)->getAttributeNode('id');

var_dump($attr->isId()); // bool(true)

?>


Класс DOMCdataSection

(PHP 5, PHP 7)

Введение

Класс DOMCdataSection наследуется от DOMText текстового представления CData структур.

Обзор классов

DOMCdataSection extends DOMText {
/* Методы */
public __construct ( string $value )
/* Наследуемые методы */
public bool DOMText::isWhitespaceInElementContent ( void )
public DOMText DOMText::splitText ( int $offset )
}

Содержание

  • DOMCdataSection::__construct — Создает новый экземпляр класса DOMCdataSection


Создает новый экземпляр класса DOMCdataSection

  • « DOMCdataSection
  • DOMCharacterData »
  • PHP Manual
  • DOMCdataSection
  • Создает новый экземпляр класса DOMCdataSection

DOMCdataSection::__construct

(PHP 5, PHP 7)

DOMCdataSection::__construct — Создает новый экземпляр класса DOMCdataSection

Описание

public DOMCdataSection::__construct ( string $value )

Создает новый CDATA узел. Работает так же, как класс DOMText.

Список параметров

value

Значение CDATA узла. Если переданное значение не поддерживается, будет создан пустой CDATA узел.

Примеры

Пример #1 Создание объекта класса DOMCdataSection

<?php

$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMCdataSection('root value'));
echo $dom->saveXML();

?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="utf-8"?>
<root><![CDATA[root value]]></root>

Смотрите также

  • DOMText::__construct() - Создает объект класса DOMText
  • DOMDocument::createTextNode() - Создает новый текстовый узел


Класс DOMCharacterData

(PHP 5, PHP 7)

Введение

Представляет узлы с символьными данными. Нельзя создать узел из этого класса напрямую, узлы создаются из наследуемых от него классов.

Обзор классов

DOMCharacterData extends DOMNode {
/* Свойства */
public string $data ;
readonly public int $length ;
/* Методы */
void appendData ( string $data )
void deleteData ( int $offset , int $count )
void insertData ( int $offset , string $data )
void replaceData ( int $offset , int $count , string $data )
string substringData ( int $offset , int $count )
/* Наследуемые методы */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Свойства

data

Содержимое узла.

length

Длина строки содержащейся в узле.

Смотрите также

  • » W3C спецификация символьных данных

Содержание

  • DOMCharacterData::appendData — Добавляет строку в конец символьных данных узла
  • DOMCharacterData::deleteData — Удаление диапазона символов из узла
  • DOMCharacterData::insertData — Вставляет строку после заданного отступа из 16-битных блоков
  • DOMCharacterData::replaceData — Заменяет подстроку в узле типа DOMCharacterData
  • DOMCharacterData::substringData — Извлекает определенный диапазон данных из узла


Добавляет строку в конец символьных данных узла

  • « DOMCharacterData
  • DOMCharacterData::deleteData »
  • PHP Manual
  • DOMCharacterData
  • Добавляет строку в конец символьных данных узла

DOMCharacterData::appendData

(PHP 5, PHP 7)

DOMCharacterData::appendData — Добавляет строку в конец символьных данных узла

Описание

void DOMCharacterData::appendData ( string $data )

Добавляет строку data в конец символьных данных узла.

Список параметров

data

Добавляемая строка.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • DOMCharacterData::deleteData() - Удаление диапазона символов из узла
  • DOMCharacterData::insertData() - Вставляет строку после заданного отступа из 16-битных блоков
  • DOMCharacterData::replaceData() - Заменяет подстроку в узле типа DOMCharacterData
  • DOMCharacterData::substringData() - Извлекает определенный диапазон данных из узла


Удаление диапазона символов из узла

  • « DOMCharacterData::appendData
  • DOMCharacterData::insertData »
  • PHP Manual
  • DOMCharacterData
  • Удаление диапазона символов из узла

DOMCharacterData::deleteData

(PHP 5, PHP 7)

DOMCharacterData::deleteData — Удаление диапазона символов из узла

Описание

void DOMCharacterData::deleteData ( int $offset , int $count )

Удаляет count символов, начиная с позиции offset.

Список параметров

offset

Позиция, с которой будут удаляться символы.

count

Количество удаляемых символов. Если offset и count в сумме окажется больше значения длины строки данных узла, будут удалены все символы до конца данных.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в области данных, либо если count имеет отрицательное значение.

Смотрите также

  • DOMCharacterData::appendData() - Добавляет строку в конец символьных данных узла
  • DOMCharacterData::insertData() - Вставляет строку после заданного отступа из 16-битных блоков
  • DOMCharacterData::replaceData() - Заменяет подстроку в узле типа DOMCharacterData
  • DOMCharacterData::substringData() - Извлекает определенный диапазон данных из узла


Вставляет строку после заданного отступа из 16-битных блоков

  • « DOMCharacterData::deleteData
  • DOMCharacterData::replaceData »
  • PHP Manual
  • DOMCharacterData
  • Вставляет строку после заданного отступа из 16-битных блоков

DOMCharacterData::insertData

(PHP 5, PHP 7)

DOMCharacterData::insertData — Вставляет строку после заданного отступа из 16-битных блоков

Описание

void DOMCharacterData::insertData ( int $offset , string $data )

Вставляет строку data в позицию offset.

Список параметров

offset

Отступ в символах, начиная с которого будет вставлена строка.

data

Вставляемая строка.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в данных.

Смотрите также

  • DOMCharacterData::appendData() - Добавляет строку в конец символьных данных узла
  • DOMCharacterData::deleteData() - Удаление диапазона символов из узла
  • DOMCharacterData::replaceData() - Заменяет подстроку в узле типа DOMCharacterData
  • DOMCharacterData::substringData() - Извлекает определенный диапазон данных из узла


Заменяет подстроку в узле типа DOMCharacterData

  • « DOMCharacterData::insertData
  • DOMCharacterData::substringData »
  • PHP Manual
  • DOMCharacterData
  • Заменяет подстроку в узле типа DOMCharacterData

DOMCharacterData::replaceData

(PHP 5, PHP 7)

DOMCharacterData::replaceData — Заменяет подстроку в узле типа DOMCharacterData

Описание

void DOMCharacterData::replaceData ( int $offset , int $count , string $data )

Заменяет count символов, начиная с позиции offset, на строку data.

Список параметров

offset

Позиция, с которой начинается замена.

count

Количество символов для замены. Если offset и count в сумме превышают длину строки данных, будут заменены все символы до конца данных.

data

Строка, на которую будет производиться замена.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в области данных, либо если count имеет отрицательное значение.

Смотрите также

  • DOMCharacterData::appendData() - Добавляет строку в конец символьных данных узла
  • DOMCharacterData::deleteData() - Удаление диапазона символов из узла
  • DOMCharacterData::insertData() - Вставляет строку после заданного отступа из 16-битных блоков
  • DOMCharacterData::substringData() - Извлекает определенный диапазон данных из узла


Извлекает определенный диапазон данных из узла

  • « DOMCharacterData::replaceData
  • DOMComment »
  • PHP Manual
  • DOMCharacterData
  • Извлекает определенный диапазон данных из узла

DOMCharacterData::substringData

(PHP 5, PHP 7)

DOMCharacterData::substringData — Извлекает определенный диапазон данных из узла

Описание

string DOMCharacterData::substringData ( int $offset , int $count )

Возвращает требуемую подстроку.

Список параметров

offset

Начало извлекаемой подстроки.

count

Количество извлекаемых символов.

Возвращаемые значения

Запрашиваемая подстрока. Если offset и count в сумме превышают длину строки данных узла, будут извлечены все символы до конца строки.

Ошибки

DOM_INDEX_SIZE_ERR

Возникает, если offset меньше нуля или больше количества 16-битных блоков в области данных, либо если count имеет отрицательное значение.

Смотрите также

  • DOMCharacterData::appendData() - Добавляет строку в конец символьных данных узла
  • DOMCharacterData::deleteData() - Удаление диапазона символов из узла
  • DOMCharacterData::insertData() - Вставляет строку после заданного отступа из 16-битных блоков
  • DOMCharacterData::replaceData() - Заменяет подстроку в узле типа DOMCharacterData


Класс DOMComment

(PHP 5, PHP 7)

Введение

Представляет узлы комментариев, строки отделенные символами <!-- и -->.

Обзор классов

DOMComment extends DOMCharacterData {
/* Методы */
public __construct ([ string $value ] )
/* Наследуемые методы */
void DOMCharacterData::appendData ( string $data )
void DOMCharacterData::deleteData ( int $offset , int $count )
void DOMCharacterData::insertData ( int $offset , string $data )
void DOMCharacterData::replaceData ( int $offset , int $count , string $data )
string DOMCharacterData::substringData ( int $offset , int $count )
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Смотрите также

  • » W3C спецификация комментариев

Содержание

  • DOMComment::__construct — Создает новый экземпляр класса DOMComment


Создает новый экземпляр класса DOMComment

  • « DOMComment
  • DOMDocument »
  • PHP Manual
  • DOMComment
  • Создает новый экземпляр класса DOMComment

DOMComment::__construct

(PHP 5, PHP 7)

DOMComment::__construct — Создает новый экземпляр класса DOMComment

Описание

public DOMComment::__construct ([ string $value ] )

Создает новый объект класса DOMComment. Объект будет доступен только для чтения. Его можно добавить к документу. Другие узлы нельзя добавлять к объекту, пока он присоединен к документу. Для создания модифицируемого узла используйте DOMDocument::createComment.

Список параметров

value

Значение комментария.

Примеры

Пример #1 Создание объекта DOMComment

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$comment = $element->appendChild(new DOMComment('root comment'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root><!--root comment--></root> */

?>

Смотрите также

  • DOMDocument::createComment() - Создает новый узел-комментарий


Класс DOMDocument

(PHP 5, PHP 7)

Введение

Представляет все содержимое HTML или XML документа; служит в качестве корня дерева документа.

Обзор классов

DOMDocument extends DOMNode {
/* Свойства */
readonly public string $actualEncoding ;
readonly public DOMConfiguration $config ;
readonly public DOMDocumentType $doctype ;
readonly public DOMElement $documentElement ;
public string $documentURI ;
public string $encoding ;
public bool $formatOutput ;
readonly public DOMImplementation $implementation ;
public bool $preserveWhiteSpace = true ;
public bool $recover ;
public bool $resolveExternals ;
public bool $standalone ;
public bool $strictErrorChecking = true ;
public bool $substituteEntities ;
public bool $validateOnParse = false ;
public string $version ;
readonly public string $xmlEncoding ;
public bool $xmlStandalone ;
public string $xmlVersion ;
/* Методы */
public __construct ([ string $version [, string $encoding ]] )
public DOMAttr createAttribute ( string $name )
public DOMAttr createAttributeNS ( string $namespaceURI , string $qualifiedName )
public DOMCDATASection createCDATASection ( string $data )
public DOMComment createComment ( string $data )
public DOMDocumentFragment createDocumentFragment ( void )
public DOMElement createElement ( string $name [, string $value ] )
public DOMElement createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] )
public DOMEntityReference createEntityReference ( string $name )
public DOMProcessingInstruction createProcessingInstruction ( string $target [, string $data ] )
public DOMText createTextNode ( string $content )
public DOMElement getElementById ( string $elementId )
public DOMNodeList getElementsByTagName ( string $name )
public DOMNodeList getElementsByTagNameNS ( string $namespaceURI , string $localName )
public DOMNode importNode ( DOMNode $importedNode [, bool $deep ] )
public mixed load ( string $filename [, int $options = 0 ] )
public bool loadHTML ( string $source [, int $options = 0 ] )
public bool loadHTMLFile ( string $filename [, int $options = 0 ] )
public mixed loadXML ( string $source [, int $options = 0 ] )
public void normalizeDocument ( void )
public bool registerNodeClass ( string $baseclass , string $extendedclass )
public bool relaxNGValidate ( string $filename )
public bool relaxNGValidateSource ( string $source )
public int save ( string $filename [, int $options ] )
public string saveHTML ([ DOMNode $node = NULL ] )
public int saveHTMLFile ( string $filename )
public string saveXML ([ DOMNode $node [, int $options ]] )
public bool schemaValidate ( string $filename [, int $flags ] )
public bool schemaValidateSource ( string $source [, int $flags ] )
public bool validate ( void )
public int xinclude ([ int $options ] )
/* Наследуемые методы */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Свойства

actualEncoding

Устарело. Кодировка документа, доступный только для чтения аналог encoding.

config

Устарело. Конфигурация использованная при вызове DOMDocument::normalizeDocument().

doctype

Объявление типа документа, соответствующее этому документу.

documentElement

Удобный атрибут, предоставляющий прямой доступ к узлу-потомку, как к элементу документа.

documentURI

Расположение документа или NULL, если не определено.

encoding

Кодировка документа, как она задана в объявлении XML. Этот атрибут отсутствует в итоговой DOM Level 3 спецификации, но это единственный путь для управления кодировкой XML документа в данной реализации.

formatOutput

Форматирует вывод, добавляя отступы и дополнительные пробелы.

implementation

Объект класса DOMImplementation, обрабатывающий этот документ.

preserveWhiteSpace

Указание не убирать лишние пробелы и отступы. По умолчанию TRUE.

recover

Патентованное свойство. Включает режим восстановления, то есть пытается разобрать некорректно составленные документы. Этот атрибут не входит в спецификацию DOM и является особенностью libxml.

resolveExternals

Установите в TRUE для загрузки внешних элементов из объявления типа документа. Может быть полезным при включении элементов с символьными данными в XML документ.

standalone

Устарело. Указание, что документ не зависит от других XML документов. Это можно определить из XML объявления. Свойство связано с xmlStandalone.

strictErrorChecking

Выбрасывает исключение DOMException при ошибке. По умолчанию TRUE.

substituteEntities

Патентованное свойство. Указывает, заменять или нет элементы документа. Этот атрибут не входит в спецификацию DOM и является особенностью libxml.

validateOnParse

Загружает DTD и проверяет документ на соответствие. По умолчанию FALSE.

version

Устарело. Версия XML, связанная с xmlVersion.

xmlEncoding

Атрибут задает, равно как и XML объявление, кодировку документа. Имеет значение NULL в случаях, когда атрибут не задан, либо значение неизвестно, если, например, документ создан в памяти.

xmlStandalone

Атрибут указывает, равно как и XML объявление, на то, что документ не зависит от других документов. Принимает значение FALSE, если не задан.

xmlVersion

Атрибут задает, равно как и XML объявление, версию документа. Если XML объявления в документе нет, но есть поддержка всех особенностей "XML", значение атрибута принимается равным "1.0".

Примечания

Замечание:

Расширение DOM использует кодировку UTF-8. Используйте функции utf8_encode() и utf8_decode() для работы с текстами в кодировке ISO-8859-1, либо Iconv в других кодировках.

Смотрите также

  • » W3C спецификация для Document

Содержание

  • DOMDocument::__construct — Создание нового DOMDocument объекта
  • DOMDocument::createAttribute — Создает новый атрибут
  • DOMDocument::createAttributeNS — Создает новый узел-атрибут с соответствующим ему пространством имен
  • DOMDocument::createCDATASection — Создает новый cdata узел
  • DOMDocument::createComment — Создает новый узел-комментарий
  • DOMDocument::createDocumentFragment — Создание фрагмента документа
  • DOMDocument::createElement — Создает новый узел-элемент
  • DOMDocument::createElementNS — Создание нового узла-элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference — Создание нового узла-ссылки на сущность
  • DOMDocument::createProcessingInstruction — Создает новый PI-узел
  • DOMDocument::createTextNode — Создает новый текстовый узел
  • DOMDocument::getElementById — Ищет элемент с заданным id
  • DOMDocument::getElementsByTagName — Ищет все элементы с заданным локальным именем
  • DOMDocument::getElementsByTagNameNS — Ищет элементы с заданным именем в определенном пространстве имен
  • DOMDocument::importNode — Импорт узла в текущий документ
  • DOMDocument::load — Загрузка XML из файла
  • DOMDocument::loadHTML — Загрузка HTML из строки
  • DOMDocument::loadHTMLFile — Загрузка HTML из файла
  • DOMDocument::loadXML — Загрузка XML из строки
  • DOMDocument::normalizeDocument — Нормализует документ
  • DOMDocument::registerNodeClass — Регистрация расширенного класса, используемого для создания базового типа узлов
  • DOMDocument::relaxNGValidate — Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource — Проверяет документ посредством relaxNG
  • DOMDocument::save — Сохраняет XML дерево из внутреннего представления в файл
  • DOMDocument::saveHTML — Сохраняет документ из внутреннего представления в строку, используя HTML форматирование
  • DOMDocument::saveHTMLFile — Сохраняет документ из внутреннего представления в файл, используя HTML форматирование
  • DOMDocument::saveXML — Сохраняет XML дерево из внутреннего представления в виде строки
  • DOMDocument::schemaValidate — Проверяет действительность документа, основываясь на заданной схеме
  • DOMDocument::schemaValidateSource — Проверяет действительность документа, основываясь на схеме
  • DOMDocument::validate — Проверяет документ на соответствие его DTD
  • DOMDocument::xinclude — Проводит вставку XInclude разделов в объектах DOMDocument


Создание нового DOMDocument объекта

  • « DOMDocument
  • DOMDocument::createAttribute »
  • PHP Manual
  • DOMDocument
  • Создание нового DOMDocument объекта

DOMDocument::__construct

(PHP 5, PHP 7)

DOMDocument::__construct — Создание нового DOMDocument объекта

Описание

public DOMDocument::__construct ([ string $version [, string $encoding ]] )

Создание нового DOMDocument объекта.

Список параметров

version

Номер версии документа как часть XML объявления.

encoding

Кодировка документа как часть XML объявления.

Примеры

Пример #1 Создание объекта DOMDocument

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');

echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?> */

?>

Смотрите также

  • DOMImplementation::createDocument() - Создает объект класса DOMDocument заданного типа с элементом document


Создает новый атрибут

  • « DOMDocument::__construct
  • DOMDocument::createAttributeNS »
  • PHP Manual
  • DOMDocument
  • Создает новый атрибут

DOMDocument::createAttribute

(PHP 5, PHP 7)

DOMDocument::createAttribute — Создает новый атрибут

Описание

public DOMAttr DOMDocument::createAttribute ( string $name )

Эта функция создает новый объект класса DOMAttr. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

name

Имя атрибута.

Возвращаемые значения

Новый объект DOMAttr либо FALSE в случае возникновения ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если name содержит недопустимые символы.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttributeNS() - Создает новый узел-атрибут с соответствующим ему пространством имен
  • DOMDocument::createCDATASection() - Создает новый cdata узел
  • DOMDocument::createComment() - Создает новый узел-комментарий
  • DOMDocument::createDocumentFragment() - Создание фрагмента документа
  • DOMDocument::createElement() - Создает новый узел-элемент
  • DOMDocument::createElementNS() - Создание нового узла-элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создание нового узла-ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создает новый PI-узел
  • DOMDocument::createTextNode() - Создает новый текстовый узел


Создает новый узел-атрибут с соответствующим ему пространством имен

  • « DOMDocument::createAttribute
  • DOMDocument::createCDATASection »
  • PHP Manual
  • DOMDocument
  • Создает новый узел-атрибут с соответствующим ему пространством имен

DOMDocument::createAttributeNS

(PHP 5, PHP 7)

DOMDocument::createAttributeNS — Создает новый узел-атрибут с соответствующим ему пространством имен

Описание

public DOMAttr DOMDocument::createAttributeNS ( string $namespaceURI , string $qualifiedName )

Эта функция создает новый объект класса DOMAttr. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

namespaceURI

URI пространства имен.

qualifiedName

Имя и префикс атрибута в виде prefix:tagname.

Возвращаемые значения

Новый экземпляр класса DOMAttr либо FALSE в случае ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если qualifiedName содержит недопустимые символы.

DOM_NAMESPACE_ERR

Возникает, если qualifiedName неправильно сформировано, либо если qualifiedName имеет префикс, а namespaceURI имеет значение NULL.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создает новый атрибут
  • DOMDocument::createCDATASection() - Создает новый cdata узел
  • DOMDocument::createComment() - Создает новый узел-комментарий
  • DOMDocument::createDocumentFragment() - Создание фрагмента документа
  • DOMDocument::createElement() - Создает новый узел-элемент
  • DOMDocument::createElementNS() - Создание нового узла-элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создание нового узла-ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создает новый PI-узел
  • DOMDocument::createTextNode() - Создает новый текстовый узел


Создает новый cdata узел

  • « DOMDocument::createAttributeNS
  • DOMDocument::createComment »
  • PHP Manual
  • DOMDocument
  • Создает новый cdata узел

DOMDocument::createCDATASection

(PHP 5, PHP 7)

DOMDocument::createCDATASection — Создает новый cdata узел

Описание

public DOMCDATASection DOMDocument::createCDATASection ( string $data )

Эта функция создает новый объект класса DOMCDATASection. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

data

Содержимое cdata.

Возвращаемые значения

Новый объект класса DOMCDATASection либо FALSE в случае ошибки.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создает новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый узел-атрибут с соответствующим ему пространством имен
  • DOMDocument::createComment() - Создает новый узел-комментарий
  • DOMDocument::createDocumentFragment() - Создание фрагмента документа
  • DOMDocument::createElement() - Создает новый узел-элемент
  • DOMDocument::createElementNS() - Создание нового узла-элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создание нового узла-ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создает новый PI-узел
  • DOMDocument::createTextNode() - Создает новый текстовый узел


Создает новый узел-комментарий

  • « DOMDocument::createCDATASection
  • DOMDocument::createDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Создает новый узел-комментарий

DOMDocument::createComment

(PHP 5, PHP 7)

DOMDocument::createComment — Создает новый узел-комментарий

Описание

public DOMComment DOMDocument::createComment ( string $data )

Эта функция создает новый экземпляр класса DOMComment. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

data

Содержимое комментария.

Возвращаемые значения

Новый объект класса DOMComment либо FALSE в случае ошибки.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создает новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый узел-атрибут с соответствующим ему пространством имен
  • DOMDocument::createCDATASection() - Создает новый cdata узел
  • DOMDocument::createDocumentFragment() - Создание фрагмента документа
  • DOMDocument::createElement() - Создает новый узел-элемент
  • DOMDocument::createElementNS() - Создание нового узла-элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создание нового узла-ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создает новый PI-узел
  • DOMDocument::createTextNode() - Создает новый текстовый узел


Создание фрагмента документа

  • « DOMDocument::createComment
  • DOMDocument::createElement »
  • PHP Manual
  • DOMDocument
  • Создание фрагмента документа

DOMDocument::createDocumentFragment

(PHP 5, PHP 7)

DOMDocument::createDocumentFragment — Создание фрагмента документа

Описание

public DOMDocumentFragment DOMDocument::createDocumentFragment ( void )

Эта функция создает новый экземпляр класса DOMDocumentFragment. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Возвращаемые значения

Новый объект класса DOMDocumentFragment либо FALSE в случае ошибки.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создает новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый узел-атрибут с соответствующим ему пространством имен
  • DOMDocument::createCDATASection() - Создает новый cdata узел
  • DOMDocument::createComment() - Создает новый узел-комментарий
  • DOMDocument::createElement() - Создает новый узел-элемент
  • DOMDocument::createElementNS() - Создание нового узла-элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создание нового узла-ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создает новый PI-узел
  • DOMDocument::createTextNode() - Создает новый текстовый узел


Создает новый узел-элемент

  • « DOMDocument::createDocumentFragment
  • DOMDocument::createElementNS »
  • PHP Manual
  • DOMDocument
  • Создает новый узел-элемент

DOMDocument::createElement

(PHP 5, PHP 7)

DOMDocument::createElement — Создает новый узел-элемент

Описание

public DOMElement DOMDocument::createElement ( string $name [, string $value ] )

Эта функция создает экземпляр класса DOMElement. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

name

Имя тэга элемента.

value

Значение элемента. По умолчанию будет создан пустой элемент. Значение может быть установлено позднее с помощью функции DOMElement::$nodeValue.

Значение используется дословно, за исключением < и >, которые будут экранированы. Обратите внимание, что & должен быть экранирован самостоятельно, в противном случае он будет рассматриваться как ссылка на исходную сущность. Иначе говаря - не будет экранирован.

Возвращаемые значения

Возвращает новый объект класса DOMElement либо FALSE в случае ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если name содержит недопустимые символы.

Примеры

Пример #1 Создание нового элемента и вставка его в качестве корневого

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElement('test', 'Это корневой элемент!');

// Вставляем новый элемент как корень (потомок документа)
$dom->appendChild($element);

echo $dom->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="utf-8"?>
<test>Это корневой элемент!</test>

Пример #2 Текст в value, содержащий неэкранированный &

<?php
$dom = new DOMDocument('1.0', 'utf-8');
$element = $dom->createElement('foo', 'me & you');
$dom->appendChild($element);
echo $dom->saveXML();
?>

Результатом выполнения данного примера будет что-то подобное:

Warning: DOMDocument::createElement(): unterminated entity reference             you in /in/BjTCg on line 4
<?xml version="1.0" encoding="utf-8"?>
<foo/>

Примечания

Замечание:

Значение value не будет экранировано. Используйте функцию DOMDocument::createTextNode() для создания узла с текстовым содержимым с поддержкой экранирования.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создает новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый узел-атрибут с соответствующим ему пространством имен
  • DOMDocument::createCDATASection() - Создает новый cdata узел
  • DOMDocument::createComment() - Создает новый узел-комментарий
  • DOMDocument::createDocumentFragment() - Создание фрагмента документа
  • DOMDocument::createElementNS() - Создание нового узла-элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создание нового узла-ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создает новый PI-узел
  • DOMDocument::createTextNode() - Создает новый текстовый узел


Создание нового узла-элемента с соответствующим пространством имен

  • « DOMDocument::createElement
  • DOMDocument::createEntityReference »
  • PHP Manual
  • DOMDocument
  • Создание нового узла-элемента с соответствующим пространством имен

DOMDocument::createElementNS

(PHP 5, PHP 7)

DOMDocument::createElementNS — Создание нового узла-элемента с соответствующим пространством имен

Описание

public DOMElement DOMDocument::createElementNS ( string $namespaceURI , string $qualifiedName [, string $value ] )

Эта функция создает новый узел-элемент с соответствующим пространством имен. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

namespaceURI

URI пространства имен.

qualifiedName

Сформированное имя элемента в виде prefix:tagname.

value

Значение элемента. По умолчанию будет создан пустой элемент. Задать значение можно позднее с помощью DOMElement::$nodeValue.

Возвращаемые значения

Новый объект класса DOMElement либо FALSE в случае ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если qualifiedName содержит недопустимые символы.

DOM_NAMESPACE_ERR

Возникает, если qualifiedName не верно сформировано.

Примеры

Пример #1 Создание элемента и вставка в документ в качестве корневого

<?php

$dom = new DOMDocument('1.0', 'utf-8');

$element = $dom->createElementNS('http://www.example.com/XFoo', 'xfoo:test', 'This is the root element!');

// Вставляем новый элемент как корень (потомок документа)
$dom->appendChild($element);

echo $dom->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="utf-8"?>
<xfoo:test xmlns:xfoo="http://www.example.com/XFoo">Это корневой элемент!</xfoo:test>

Пример #2 Пример префикса пространства имен

<?php
$doc  = new DOMDocument('1.0', 'utf-8');
$doc->formatOutput = true;
$root = $doc->createElementNS('http://www.w3.org/2005/Atom', 'element');
$doc->appendChild($root);
$root->setAttributeNS('http://www.w3.org/2000/xmlns/' ,'xmlns:g', 'http://base.google.com/ns/1.0');
$item = $doc->createElementNS('http://base.google.com/ns/1.0', 'g:item_type', 'house');
$root->appendChild($item);

echo $doc->saveXML(), "\n";

echo $item->namespaceURI, "\n"; // Выведет: http://base.google.com/ns/1.0
echo $item->prefix, "\n";       // Выведет: g
echo $item->localName, "\n";    // Выведет: item_type
?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="utf-8"?>
<element xmlns="http://www.w3.org/2005/Atom" xmlns:g="http://base.google.com/ns/1.0">
  <g:item_type>house</g:item_type>
</element>

http://base.google.com/ns/1.0
g
item_type

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создает новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый узел-атрибут с соответствующим ему пространством имен
  • DOMDocument::createCDATASection() - Создает новый cdata узел
  • DOMDocument::createComment() - Создает новый узел-комментарий
  • DOMDocument::createDocumentFragment() - Создание фрагмента документа
  • DOMDocument::createElement() - Создает новый узел-элемент
  • DOMDocument::createEntityReference() - Создание нового узла-ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создает новый PI-узел
  • DOMDocument::createTextNode() - Создает новый текстовый узел


Создание нового узла-ссылки на сущность

  • « DOMDocument::createElementNS
  • DOMDocument::createProcessingInstruction »
  • PHP Manual
  • DOMDocument
  • Создание нового узла-ссылки на сущность

DOMDocument::createEntityReference

(PHP 5, PHP 7)

DOMDocument::createEntityReference — Создание нового узла-ссылки на сущность

Описание

public DOMEntityReference DOMDocument::createEntityReference ( string $name )

Эта функция создает экземпляр класса DOMEntityReference. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

name

Содержимое ссылки на сущность, то есть ссылка на сущность без & в начале и ; в конце.

Возвращаемые значения

Новый объект класса DOMEntityReference либо FALSE в случае ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если name содержит недопустимые символы.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создает новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый узел-атрибут с соответствующим ему пространством имен
  • DOMDocument::createCDATASection() - Создает новый cdata узел
  • DOMDocument::createComment() - Создает новый узел-комментарий
  • DOMDocument::createDocumentFragment() - Создание фрагмента документа
  • DOMDocument::createElement() - Создает новый узел-элемент
  • DOMDocument::createElementNS() - Создание нового узла-элемента с соответствующим пространством имен
  • DOMDocument::createProcessingInstruction() - Создает новый PI-узел
  • DOMDocument::createTextNode() - Создает новый текстовый узел


Создает новый PI-узел

  • « DOMDocument::createEntityReference
  • DOMDocument::createTextNode »
  • PHP Manual
  • DOMDocument
  • Создает новый PI-узел

DOMDocument::createProcessingInstruction

(PHP 5, PHP 7)

DOMDocument::createProcessingInstruction — Создает новый PI-узел

Описание

public DOMProcessingInstruction DOMDocument::createProcessingInstruction ( string $target [, string $data ] )

Эта функция создает экземпляр класса DOMProcessingInstruction. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

target

Цель инструкций для обработчика документа.

data

Содержимое инструкций обработчика.

Возвращаемые значения

Новый объект класса DOMProcessingInstruction либо FALSE в случае ошибки.

Ошибки

DOM_INVALID_CHARACTER_ERR

Возникает, если target содержит недопустимы символы.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создает новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый узел-атрибут с соответствующим ему пространством имен
  • DOMDocument::createCDATASection() - Создает новый cdata узел
  • DOMDocument::createComment() - Создает новый узел-комментарий
  • DOMDocument::createDocumentFragment() - Создание фрагмента документа
  • DOMDocument::createElement() - Создает новый узел-элемент
  • DOMDocument::createElementNS() - Создание нового узла-элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создание нового узла-ссылки на сущность
  • DOMDocument::createTextNode() - Создает новый текстовый узел


Создает новый текстовый узел

  • « DOMDocument::createProcessingInstruction
  • DOMDocument::getElementById »
  • PHP Manual
  • DOMDocument
  • Создает новый текстовый узел

DOMDocument::createTextNode

(PHP 5, PHP 7)

DOMDocument::createTextNode — Создает новый текстовый узел

Описание

public DOMText DOMDocument::createTextNode ( string $content )

Эта функция создает экземпляр класса DOMText. Этот узел не будет отображаться в документе до тех пор, пока он не будет вставлен, например, функцией DOMNode::appendChild().

Список параметров

content

Содержимое узла.

Возвращаемые значения

Новый объект класса DOMText либо FALSE в случае ошибки.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMDocument::createAttribute() - Создает новый атрибут
  • DOMDocument::createAttributeNS() - Создает новый узел-атрибут с соответствующим ему пространством имен
  • DOMDocument::createCDATASection() - Создает новый cdata узел
  • DOMDocument::createComment() - Создает новый узел-комментарий
  • DOMDocument::createDocumentFragment() - Создание фрагмента документа
  • DOMDocument::createElement() - Создает новый узел-элемент
  • DOMDocument::createElementNS() - Создание нового узла-элемента с соответствующим пространством имен
  • DOMDocument::createEntityReference() - Создание нового узла-ссылки на сущность
  • DOMDocument::createProcessingInstruction() - Создает новый PI-узел


Ищет элемент с заданным id

  • « DOMDocument::createTextNode
  • DOMDocument::getElementsByTagName »
  • PHP Manual
  • DOMDocument
  • Ищет элемент с заданным id

DOMDocument::getElementById

(PHP 5, PHP 7)

DOMDocument::getElementById — Ищет элемент с заданным id

Описание

public DOMElement DOMDocument::getElementById ( string $elementId )

Эта функция является аналогом DOMDocument::getElementsByTagName, но ищет элемент по его id.

Для работы этой функции необходимо либо задать ID атрибуты элементов посредством DOMElement::setIdAttribute, либо понадобится DTD, которая определяет атрибут как имеющий тип ID. В последнем случае перед использованием этой функции потребуется проверять документ на действительность посредством DOMDocument::validate или DOMDocument::$validateOnParse.

Список параметров

elementId

Уникальный id элемента.

Возвращаемые значения

Возвращает объект DOMElement либо NULL, если элемент не найден.

Примеры

Пример #1 DOMDocument::getElementById() Example

Следующие примеры используют файл 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;

// Необходимо проверить документ на действительность перед тем как
// ссылаться на id
$doc->validateOnParse = true;
$doc->Load('book.xml');

echo "Элемент с id 'php-basics': " . $doc->getElementById('php-basics')->tagName . "\n";

?>

Результат выполнения данного примера:

Элемент с id 'php-basics': book

Смотрите также

  • DOMDocument::getElementsByTagName() - Ищет все элементы с заданным локальным именем


Ищет все элементы с заданным локальным именем

  • « DOMDocument::getElementById
  • DOMDocument::getElementsByTagNameNS »
  • PHP Manual
  • DOMDocument
  • Ищет все элементы с заданным локальным именем

DOMDocument::getElementsByTagName

(PHP 5, PHP 7)

DOMDocument::getElementsByTagName — Ищет все элементы с заданным локальным именем

Описание

public DOMNodeList DOMDocument::getElementsByTagName ( string $name )

Эта функция возвращает новый объект класса DOMNodeList, содержащий элементы с заданным локальным именем.

Список параметров

name

Локальное имя тэга (без указания пространства имен), по которому будет проводиться поиск. Специальное значение * означает, что поиск будет произведен по всем тэгам.

Возвращаемые значения

Новый объект класса DOMNodeList содержащий все найденные элементы.

Примеры

Пример #1 Простой пример использования

<?php
$xml = <<< XML
<?xml version="1.0" encoding="utf-8"?>
<books>
 <book>Patterns of Enterprise Application Architecture</book>
 <book>Design Patterns: Elements of Reusable Software Design</book>
 <book>Clean Code</book>
</books>
XML;

$dom = new DOMDocument;
$dom->loadXML($xml);
$books = $dom->getElementsByTagName('book');
foreach ($books as $book) {
    echo $book->nodeValue, PHP_EOL;
}
?>

Результат выполнения данного примера:

Patterns of Enterprise Application Architecture
Design Patterns: Elements of Reusable Software Design
Clean Code

Смотрите также

  • DOMDocument::getElementsByTagNameNS() - Ищет элементы с заданным именем в определенном пространстве имен


Ищет элементы с заданным именем в определенном пространстве имен

  • « DOMDocument::getElementsByTagName
  • DOMDocument::importNode »
  • PHP Manual
  • DOMDocument
  • Ищет элементы с заданным именем в определенном пространстве имен

DOMDocument::getElementsByTagNameNS

(PHP 5, PHP 7)

DOMDocument::getElementsByTagNameNS — Ищет элементы с заданным именем в определенном пространстве имен

Описание

public DOMNodeList DOMDocument::getElementsByTagNameNS ( string $namespaceURI , string $localName )

Возвращает объект DOMNodeList со всеми элементами с заданным локальным именем и URI пространства имен.

Список параметров

namespaceURI

URI пространства имен. Специальное значение * означает, что поиск будет произведен по всем пространствам имен.

localName

Локальное имя искомых элементов. Специальное значение * означает, что поиск будет произведен по всем локальным именам.

Возвращаемые значения

Новый объект класса DOMNodeList содержащий все найденные элементы.

Примеры

Пример #1 Получение всех XInclude элементов

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Books of the other guy..</title>
<para>
 <xi:include href="book.xml">
  <xi:fallback>
   <error>xinclude: book.xml not found</error>
  </xi:fallback>
 </xi:include>
 <include>
  This is another namespace
 </include>
</para>
</chapter>
EOD;
$dom = new DOMDocument;

// загрузка XML строки, определенной выше
$dom->loadXML($xml);

foreach ($dom->getElementsByTagNameNS('http://www.w3.org/2001/XInclude', '*') as $element) {
    echo 'local name: ', $element->localName, ', prefix: ', $element->prefix, "\n";
}
?>

Результат выполнения данного примера:

local name: include, prefix: xi
local name: fallback, prefix: xi

Смотрите также

  • DOMDocument::getElementsByTagName() - Ищет все элементы с заданным локальным именем


Импорт узла в текущий документ

  • « DOMDocument::getElementsByTagNameNS
  • DOMDocument::load »
  • PHP Manual
  • DOMDocument
  • Импорт узла в текущий документ

DOMDocument::importNode

(PHP 5, PHP 7)

DOMDocument::importNode — Импорт узла в текущий документ

Описание

public DOMNode DOMDocument::importNode ( DOMNode $importedNode [, bool $deep ] )

Эта функция возвращает копию импортируемого узла и присоединяет ее к текущему документу.

Список параметров

importedNode

Импортируемый узел.

deep

Если установлен в TRUE, этот метод рекурсивно импортирует поддерево узла importedNode.

Замечание:

Чтобы скопировались атрибуты узла, deep должен быть установлен в TRUE.

Возвращаемые значения

Скопированный узел или FALSE, если он не может быть скопирован.

Ошибки

Если узел не может быть импортирован, будет выброшено исключение DOMException.

Примеры

Пример #1 Пример использования DOMDocument::importNode()

Копирование узлов между документами.

<?php

$orgdoc = new DOMDocument;
$orgdoc->loadXML("<root><element><child>text in child</child></element></root>");

// Узел, который будет импортирован в новый документ
$node = $orgdoc->getElementsByTagName("element")->item(0);

// Создание нового документа
$newdoc = new DOMDocument;
$newdoc->formatOutput = true;

// Добавление разметки
$newdoc->loadXML("<root><someelement>text in some element</someelement></root>");

echo "Новый документ перед добавлением в него узлов:\n";
echo $newdoc->saveXML();

// Импорт узла и всех его потомков в документ
$node = $newdoc->importNode($node, true);
// И затем добавление узла в корень элемента
$newdoc->documentElement->appendChild($node);

echo "\nНовый документ после добавления в него узлов:\n";
echo $newdoc->saveXML();
?>

Результат выполнения данного примера:

Новый документ перед добавлением в него узлов:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
</root>

Новый документ после добавления в него узлов:
<?xml version="1.0"?>
<root>
  <someelement>text in some element</someelement>
  <element>
    <child>text in child</child>
  </element>
</root>


Загрузка XML из файла

  • « DOMDocument::importNode
  • DOMDocument::loadHTML »
  • PHP Manual
  • DOMDocument
  • Загрузка XML из файла

DOMDocument::load

(PHP 5, PHP 7)

DOMDocument::load — Загрузка XML из файла

Описание

public mixed DOMDocument::load ( string $filename [, int $options = 0 ] )

Загружает XML документ из файла.

Внимание

Пути к файлам в стиле Unix с прямыми слешами могут отрицательно сказаться на работоспособности скриптов в среде Windows; используйте функцию realpath() для исключения подобных ситуаций.

Список параметров

filename

Путь к XML документу.

options

Побитовое ИЛИ констант настройки libxml.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. При статическом вызове возвращает объект класса DOMDocument или FALSE в случае возникновения ошибки.

Ошибки

Если через аргумент filename передана пустая строка или файл ничего не содержит, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано обработчиками ошибок библиотеки libxml.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Примеры

Пример #1 Создание документа

<?php
$doc = new DOMDocument();
$doc->load('book.xml');
echo $doc->saveXML();
?>

Смотрите также

  • DOMDocument::loadXML() - Загрузка XML из строки
  • DOMDocument::save() - Сохраняет XML дерево из внутреннего представления в файл
  • DOMDocument::saveXML() - Сохраняет XML дерево из внутреннего представления в виде строки


Загрузка HTML из строки

  • « DOMDocument::load
  • DOMDocument::loadHTMLFile »
  • PHP Manual
  • DOMDocument
  • Загрузка HTML из строки

DOMDocument::loadHTML

(PHP 5, PHP 7)

DOMDocument::loadHTML — Загрузка HTML из строки

Описание

public bool DOMDocument::loadHTML ( string $source [, int $options = 0 ] )

Функция разбирает HTML содержащийся в строке source. В отличие от XML, HTML не обязан быть правильно построенным документом. Эта функция также может быть вызвана статически для загрузки и создания объекта класса DOMDocument. Статический вызов может использоваться в случаях, когда нет необходимости устанавливать значения параметров объекта DOMDocument до загрузки документа.

Список параметров

source

HTML строка.

options

Начиная с версии PHP 5.4.0 и Libxml 2.6.0, можно также использовать параметр options для передачи дополнительных параметров Libxml.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. В случае статического вызова возвращает объект класса DOMDocument или FALSE в случае возникновения ошибки.

Ошибки

Если через аргумент source передана пустая строка, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано библиотечными обработчиками ошибок.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Несмотря на то, что некорректный HTML обычно успешно загружается, данная функция может генерировать ошибки уровня E_WARNING при обнаружении плохой разметки. Для обработки данных ошибок можно воспользоваться функциями обработки ошибок libxml.

Примеры

Пример #1 Создание документа

<?php
$doc = new DOMDocument();
$doc->loadHTML("<html><body>Test<br></body></html>");
echo $doc->saveHTML();
?>

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр options.

Смотрите также

  • DOMDocument::loadHTMLFile() - Загрузка HTML из файла
  • DOMDocument::saveHTML() - Сохраняет документ из внутреннего представления в строку, используя HTML форматирование
  • DOMDocument::saveHTMLFile() - Сохраняет документ из внутреннего представления в файл, используя HTML форматирование


Загрузка HTML из файла

  • « DOMDocument::loadHTML
  • DOMDocument::loadXML »
  • PHP Manual
  • DOMDocument
  • Загрузка HTML из файла

DOMDocument::loadHTMLFile

(PHP 5, PHP 7)

DOMDocument::loadHTMLFile — Загрузка HTML из файла

Описание

public bool DOMDocument::loadHTMLFile ( string $filename [, int $options = 0 ] )

Функция разбирает HTML документ из файла filename. В отличие от загрузки XML, HTML документ не обязан быть правильно построенным.

Список параметров

filename

Путь к HTML файлу.

options

Начиная с версии PHP 5.4.0 и Libxml 2.6.0, можно также использовать параметр options для передачи дополнительных параметров Libxml.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если вызвана статически, возвращает объект класса DOMDocument или FALSE в случае возникновения ошибки.

Ошибки

Если через аргумент filename передана пустая строка или файл ничего не содержит, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано обработчиками ошибок библиотеки libxml.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Несмотря на то, что некорректный HTML обычно успешно загружается, данная функция может генерировать ошибки уровня E_WARNING при обнаружении плохой разметки. Для обработки данных ошибок можно воспользоваться функциями обработки ошибок libxml.

Примеры

Пример #1 Создание документа

<?php
$doc = new DOMDocument();
$doc->loadHTMLFile("filename.html");
echo $doc->saveHTML();
?>

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр options.

Смотрите также

  • DOMDocument::loadHTML() - Загрузка HTML из строки
  • DOMDocument::saveHTML() - Сохраняет документ из внутреннего представления в строку, используя HTML форматирование
  • DOMDocument::saveHTMLFile() - Сохраняет документ из внутреннего представления в файл, используя HTML форматирование


Загрузка XML из строки

  • « DOMDocument::loadHTMLFile
  • DOMDocument::normalizeDocument »
  • PHP Manual
  • DOMDocument
  • Загрузка XML из строки

DOMDocument::loadXML

(PHP 5, PHP 7)

DOMDocument::loadXML — Загрузка XML из строки

Описание

public mixed DOMDocument::loadXML ( string $source [, int $options = 0 ] )

Загружает XML документ из строки.

Список параметров

source

Содержащая XML строка.

options

Побитовое ИЛИ констант настройки libxml.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если вызвана статически, возвращает объект класса DOMDocument или FALSE в случае возникновения ошибки.

Ошибки

Если через аргумент source передана пустая строка, будет сгенерировано предупреждение. Это предупреждение генерируется не libxml, поэтому оно не может быть обработано библиотечными обработчиками ошибок.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Примеры

Пример #1 Создание документа

<?php
$doc = new DOMDocument();
$doc->loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Пример #2 Статический вызов loadXML

<?php
// Вызывает ошибку E_STRICT
$doc = DOMDocument::loadXML('<root><node/></root>');
echo $doc->saveXML();
?>

Смотрите также

  • DOMDocument::load() - Загрузка XML из файла
  • DOMDocument::save() - Сохраняет XML дерево из внутреннего представления в файл
  • DOMDocument::saveXML() - Сохраняет XML дерево из внутреннего представления в виде строки


Нормализует документ

  • « DOMDocument::loadXML
  • DOMDocument::registerNodeClass »
  • PHP Manual
  • DOMDocument
  • Нормализует документ

DOMDocument::normalizeDocument

(PHP 5, PHP 7)

DOMDocument::normalizeDocument — Нормализует документ

Описание

public void DOMDocument::normalizeDocument ( void )

Этот метод выполняет те же действия, как если бы Вы сохранили и затем загрузили документ, приводит документ к "нормальной" форме.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • » Спецификация DOM
  • DOMNode::normalize() - Нормализует узел


Регистрация расширенного класса, используемого для создания базового типа узлов

  • « DOMDocument::normalizeDocument
  • DOMDocument::relaxNGValidate »
  • PHP Manual
  • DOMDocument
  • Регистрация расширенного класса, используемого для создания базового типа узлов

DOMDocument::registerNodeClass

(PHP 5 >= 5.2.0, PHP 7)

DOMDocument::registerNodeClass — Регистрация расширенного класса, используемого для создания базового типа узлов

Описание

public bool DOMDocument::registerNodeClass ( string $baseclass , string $extendedclass )

Этот метод позволяет зарегистрировать свой собственный расширенный DOM класс, чтобы впоследствии использовать его в PHP DOM расширении.

Этот метод не входит в стандарт DOM.

Список параметров

baseclass

DOM класс, который будет расширен. Список таких классов можно увидеть во введении.

extendedclass

Имя расширенного класса. Если передать NULL, будут удалены все ранее зарегистрированные классы, расширяющие данный базовый класс baseclass.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.2 | В версиях до 5.2.2 ранее зарегистрированный расширенный класс extendedclass должен быть исключен из регистрации, прежде чем регистрировать новый класс, расширяющий тот же базовый класс baseclass.

Примеры

Пример #1 Добавление нового метода в класс DOMElement для упрощения кода

<?php

class myElement extends DOMElement {
   function appendElement($name) {
      return $this->appendChild(new myElement($name));
   }
}

class myDocument extends DOMDocument {
   function setRoot($name) {
      return $this->appendChild(new myElement($name));
   }
}

$doc = new myDocument();
$doc->registerNodeClass('DOMElement', 'myElement');

// С этих пор добавление одного элемента к другому
// требует всего одного вызова метода!
$root = $doc->setRoot('root');
$child = $root->appendElement('child');
$child->setAttribute('foo', 'bar');

echo $doc->saveXML();

?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<root><child foo="bar"/></root>

Пример #2 Извлечение элементов в виде пользовательского класса

<?php
class myElement extends DOMElement {
    public function __toString() {
        return $this->nodeValue;
    }
}

$doc = new DOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");
$doc->registerNodeClass("DOMElement", "myElement");

$element = $doc->getElementsByTagName("child")->item(0);
var_dump(get_class($element));

// Воспользуемся __toString методом..
echo $element;
?>

Результат выполнения данного примера:

string(9) "myElement"
text in child

Пример #3 Получение имени документа-владельца узла

Когда создается экземпляр расширенного класса DOMDocument, свойство ownerDocument будет ссылаться на создаваемый объект. Это значит, что нет необходимости (а фактически это невозможно) использовать DOMDocument::registerNodeClass() применительно к DOMDocument.

<?php
class myDOMDocument extends DOMDocument {
}

class myOtherDOMDocument extends DOMDocument {
}

// Создаем myDOMDocument с некоторым XML содержимым
$doc = new myDOMDocument;
$doc->loadXML("<root><element><child>text in child</child></element></root>");

$child = $doc->getElementsByTagName("child")->item(0);

// Текущий владелец узла - myDOMDocument
var_dump(get_class($child->ownerDocument));

// Импортируем узел из myDOMDocument
$newdoc = new myOtherDOMDocument;
$child = $newdoc->importNode($child);

// Новый владелец узла изменился на myOtherDOMDocument
var_dump(get_class($child->ownerDocument));
?>

Результат выполнения данного примера:

string(13) "myDOMDocument"
string(18) "myOtherDOMDocument"


Производит проверку документа на правильность построения посредством relaxNG

  • « DOMDocument::registerNodeClass
  • DOMDocument::relaxNGValidateSource »
  • PHP Manual
  • DOMDocument
  • Производит проверку документа на правильность построения посредством relaxNG

DOMDocument::relaxNGValidate

(PHP 5, PHP 7)

DOMDocument::relaxNGValidate — Производит проверку документа на правильность построения посредством relaxNG

Описание

public bool DOMDocument::relaxNGValidate ( string $filename )

Производит » relaxNG проверку документа, основываясь на заданной RNG схеме.

Список параметров

filename

RNG файл.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG
  • DOMDocument::schemaValidate() - Проверяет действительность документа, основываясь на заданной схеме
  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Проверяет документ посредством relaxNG

  • « DOMDocument::relaxNGValidate
  • DOMDocument::save »
  • PHP Manual
  • DOMDocument
  • Проверяет документ посредством relaxNG

DOMDocument::relaxNGValidateSource

(PHP 5, PHP 7)

DOMDocument::relaxNGValidateSource — Проверяет документ посредством relaxNG

Описание

public bool DOMDocument::relaxNGValidateSource ( string $source )

Применяет » relaxNG проверку документа на соответствие заданному RNG источнику.

Список параметров

source

Строка содержащая RNG схему.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::schemaValidate() - Проверяет действительность документа, основываясь на заданной схеме
  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Сохраняет XML дерево из внутреннего представления в файл

  • « DOMDocument::relaxNGValidateSource
  • DOMDocument::saveHTML »
  • PHP Manual
  • DOMDocument
  • Сохраняет XML дерево из внутреннего представления в файл

DOMDocument::save

(PHP 5, PHP 7)

DOMDocument::save — Сохраняет XML дерево из внутреннего представления в файл

Описание

public int DOMDocument::save ( string $filename [, int $options ] )

Создает XML документ из DOM представления. Эту функцию обычно вызывают после построения нового DOM документа, как показано в примере ниже.

Список параметров

filename

Путь к файлу, в который будет сохранен XML-документ.

options

Дополнительные настройки. На данный момент поддерживается только LIBXML_NOEMPTYTAG.

Возвращаемые значения

Возвращает число записанных байт или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.1.0 | Добавлен аргумент options

Примеры

Пример #1 Сохранение DOM дерева в файл

<?php

$doc = new DOMDocument('1.0');
// мы хотим красивый вывод
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('This is the title');
$text = $title->appendChild($text);

echo 'Записано: ' . $doc->save("/tmp/test.xml") . ' байт'; // Записано: 72 байт

?>

Смотрите также

  • DOMDocument::saveXML() - Сохраняет XML дерево из внутреннего представления в виде строки
  • DOMDocument::load() - Загрузка XML из файла
  • DOMDocument::loadXML() - Загрузка XML из строки


Сохраняет документ из внутреннего представления в строку, используя HTML форматирование

  • « DOMDocument::save
  • DOMDocument::saveHTMLFile »
  • PHP Manual
  • DOMDocument
  • Сохраняет документ из внутреннего представления в строку, используя HTML форматирование

DOMDocument::saveHTML

(PHP 5, PHP 7)

DOMDocument::saveHTML — Сохраняет документ из внутреннего представления в строку, используя HTML форматирование

Описание

public string DOMDocument::saveHTML ([ DOMNode $node = NULL ] )

Создает HTML документ из DOM представления. Эту функцию обычно вызывают после построения нового DOM документа, как показано в примере ниже.

Список параметров

node

Необязательный аргумент для вывода некоторого подмножества документа.

Возвращаемые значения

Возвращает HTML или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.6 | Добавлен аргумент node.

Примеры

Пример #1 Сохранение HTML дерева в виде строки

<?php

$doc = new DOMDocument('1.0');

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('Это заголовок');
$text = $title->appendChild($text);

echo $doc->saveHTML();

?>

Смотрите также

  • DOMDocument::saveHTMLFile() - Сохраняет документ из внутреннего представления в файл, используя HTML форматирование
  • DOMDocument::loadHTML() - Загрузка HTML из строки
  • DOMDocument::loadHTMLFile() - Загрузка HTML из файла


Сохраняет документ из внутреннего представления в файл, используя HTML форматирование

  • « DOMDocument::saveHTML
  • DOMDocument::saveXML »
  • PHP Manual
  • DOMDocument
  • Сохраняет документ из внутреннего представления в файл, используя HTML форматирование

DOMDocument::saveHTMLFile

(PHP 5, PHP 7)

DOMDocument::saveHTMLFile — Сохраняет документ из внутреннего представления в файл, используя HTML форматирование

Описание

public int DOMDocument::saveHTMLFile ( string $filename )

Создает HTML документ из DOM представления. Эту функцию обычно вызывают после построения нового DOM документа, как показано в примере ниже.

Список параметров

filename

Путь к файлу, в который сохранится HTML документ.

Возвращаемые значения

Возвращает число записанных байт или FALSE в случае ошибки.

Примеры

Пример #1 Сохранение HTML дерева в файл

<?php

$doc = new DOMDocument('1.0');
// мы хотим красивый вывод
$doc->formatOutput = true;

$root = $doc->createElement('html');
$root = $doc->appendChild($root);

$head = $doc->createElement('head');
$head = $root->appendChild($head);

$title = $doc->createElement('title');
$title = $head->appendChild($title);

$text = $doc->createTextNode('Это заголовок');
$text = $title->appendChild($text);

echo 'Записано: ' . $doc->saveHTMLFile("/tmp/test.html") . ' байт'; // Записано: 129 байт

?>

Смотрите также

  • DOMDocument::saveHTML() - Сохраняет документ из внутреннего представления в строку, используя HTML форматирование
  • DOMDocument::loadHTML() - Загрузка HTML из строки
  • DOMDocument::loadHTMLFile() - Загрузка HTML из файла


Сохраняет XML дерево из внутреннего представления в виде строки

  • « DOMDocument::saveHTMLFile
  • DOMDocument::schemaValidate »
  • PHP Manual
  • DOMDocument
  • Сохраняет XML дерево из внутреннего представления в виде строки

DOMDocument::saveXML

(PHP 5, PHP 7)

DOMDocument::saveXML — Сохраняет XML дерево из внутреннего представления в виде строки

Описание

public string DOMDocument::saveXML ([ DOMNode $node [, int $options ]] )

Создает XML документ из DOM представления. Эту функцию обычно вызывают после построения нового DOM документа, как показано в примере ниже.

Список параметров

node

Используйте этот аргумент для вывода только определенного узла без XML объявления вместо вывода документа целиком.

options

Дополнительные настройки. На данный момент поддерживается только LIBXML_NOEMPTYTAG.

Возвращаемые значения

Возвращает XML или FALSE в случае ошибки.

Ошибки

DOM_WRONG_DOCUMENT_ERR

Возникает, если node принадлежит другому документу.

Список изменений

Версия | Описание
5.1.0 | Добавлен аргумент options

Примеры

Пример #1 Сохранение DOM дерева в виде строки

<?php

$doc = new DOMDocument('1.0');
// мы хотим красивый вывод
$doc->formatOutput = true;

$root = $doc->createElement('book');
$root = $doc->appendChild($root);

$title = $doc->createElement('title');
$title = $root->appendChild($title);

$text = $doc->createTextNode('Это заголовок');
$text = $title->appendChild($text);

echo "Сохранение всего документа:\n";
echo $doc->saveXML() . "\n";

echo "Сохранение только заголовка:\n";
echo $doc->saveXML($title);

?>

Результат выполнения данного примера:

Сохранение всего документа:
<?xml version="1.0"?>
<book>
  <title>Это заголовок</title>
</book>

Сохранение только заголовка:
<title>Это заголовок</title>

Смотрите также

  • DOMDocument::save() - Сохраняет XML дерево из внутреннего представления в файл
  • DOMDocument::load() - Загрузка XML из файла
  • DOMDocument::loadXML() - Загрузка XML из строки


Проверяет действительность документа, основываясь на заданной схеме

  • « DOMDocument::saveXML
  • DOMDocument::schemaValidateSource »
  • PHP Manual
  • DOMDocument
  • Проверяет действительность документа, основываясь на заданной схеме

DOMDocument::schemaValidate

(PHP 5, PHP 7)

DOMDocument::schemaValidate — Проверяет действительность документа, основываясь на заданной схеме

Описание

public bool DOMDocument::schemaValidate ( string $filename [, int $flags ] )

Проверяет документ на действительность, основываясь на заданной схеме.

Список параметров

filename

Путь к файлу со схемой.

flags

Битовая маска настроечных флагов валидации схемы Libxml. На данный момент поддерживается только одно значение LIBXML_SCHEMA_CREATE. Параметр доступен, начиная с PHP 5.5.2 и Libxml 2.6.14.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.2 | Добавлен параметр flags

Смотрите также

  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Проверяет действительность документа, основываясь на схеме

  • « DOMDocument::schemaValidate
  • DOMDocument::validate »
  • PHP Manual
  • DOMDocument
  • Проверяет действительность документа, основываясь на схеме

DOMDocument::schemaValidateSource

(PHP 5, PHP 7)

DOMDocument::schemaValidateSource — Проверяет действительность документа, основываясь на схеме

Описание

public bool DOMDocument::schemaValidateSource ( string $source [, int $flags ] )

Проверяет соответствие документа переданной через строку схеме.

Список параметров

source

Строка содержащая схему.

flags

Битовая маска настроечных флагов валидации схемы Libxml. На данный момент поддерживается только одно значение LIBXML_SCHEMA_CREATE. Параметр доступен, начиная с PHP 5.5.2 и Libxml 2.6.14.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.5.2 | Добавлен параметр flags

Смотрите также

  • DOMDocument::schemaValidate() - Проверяет действительность документа, основываясь на заданной схеме
  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG
  • DOMDocument::validate() - Проверяет документ на соответствие его DTD


Проверяет документ на соответствие его DTD

  • « DOMDocument::schemaValidateSource
  • DOMDocument::xinclude »
  • PHP Manual
  • DOMDocument
  • Проверяет документ на соответствие его DTD

DOMDocument::validate

(PHP 5, PHP 7)

DOMDocument::validate — Проверяет документ на соответствие его DTD

Описание

public bool DOMDocument::validate ( void )

Проверяет документ на действительность, основываясь на его DTD.

Также можно использовать свойство validateOnParse класса DOMDocument для проведения DTD проверки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если нет DTD, присоединенных к документу, этот метод вернет FALSE.

Примеры

Пример #1 Пример DTD проверки

<?php
$dom = new DOMDocument;
$dom->Load('book.xml');
if ($dom->validate()) {
    echo "Документ является действительным!\n";
}
?>

Также можно проверять XML файл на этапе его загрузки:

<?php
$dom = new DOMDocument;
$dom->validateOnParse = true;
$dom->Load('book.xml');
?>

Смотрите также

  • DOMDocument::schemaValidate() - Проверяет действительность документа, основываясь на заданной схеме
  • DOMDocument::schemaValidateSource() - Проверяет действительность документа, основываясь на схеме
  • DOMDocument::relaxNGValidate() - Производит проверку документа на правильность построения посредством relaxNG
  • DOMDocument::relaxNGValidateSource() - Проверяет документ посредством relaxNG


Проводит вставку XInclude разделов в объектах DOMDocument

  • « DOMDocument::validate
  • DOMDocumentFragment »
  • PHP Manual
  • DOMDocument
  • Проводит вставку XInclude разделов в объектах DOMDocument

DOMDocument::xinclude

(PHP 5, PHP 7)

DOMDocument::xinclude — Проводит вставку XInclude разделов в объектах DOMDocument

Описание

public int DOMDocument::xinclude ([ int $options ] )

Этот метод вставляет » XInclude блоки в объекте класса DOMDocument.

Замечание:

Вследствие того, что libxml2 автоматически разрешает сущности, вызов этого метода приведет к неожидаемым результатам в случае, когда XML файл содержит прикрепленную схему DTD.

Список параметров

options

параметры libxml. Доступно, начиная с PHP 5.1.0 и Libxml 2.6.7.

Возвращаемые значения

Возвращает количество блоков XInclude в документе, -1 если при обработке произошла ошибка, либо FALSE, если не было произведено ни одной замены.

Примеры

Пример #1 Пример использования DOMDocument::xinclude()

<?php

$xml = <<<EOD
<?xml version="1.0" ?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>Books of the other guy..</title>
 <para>
  <xi:include href="book.xml">
   <xi:fallback>
    <error>xinclude: book.xml not found</error>
   </xi:fallback>
  </xi:include>
 </para>
</chapter>
EOD;

$dom = new DOMDocument;

// Оформим вывод красиво
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;

// загрузка XML строки, определенной выше
$dom->loadXML($xml);

// вставка блока xinclude
$dom->xinclude();

echo $dom->saveXML();

?>

Результатом выполнения данного примера будет что-то подобное:

<?xml version="1.0"?>
<chapter xmlns:xi="http://www.w3.org/2001/XInclude">
  <title>Books of the other guy..</title>
  <para>
    <row xml:base="/home/didou/book.xml">
       <entry>The Grapes of Wrath</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>0140186409</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>The Pearl</entry>
       <entry>John Steinbeck</entry>
       <entry>en</entry>
       <entry>014017737X</entry>
      </row>
    <row xml:base="/home/didou/book.xml">
       <entry>Samarcande</entry>
       <entry>Amine Maalouf</entry>
       <entry>fr</entry>
       <entry>2253051209</entry>
      </row>
  </para>
</chapter>


Класс DOMDocumentFragment

(PHP 5, PHP 7)

Обзор классов

DOMDocumentFragment extends DOMNode {
/* Свойства */
/* Методы */
public bool appendXML ( string $data )
/* Наследуемые методы */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Содержание

  • DOMDocumentFragment::appendXML — Добавление необработанных XML данных


Добавление необработанных XML данных

  • « DOMDocumentFragment
  • DOMDocumentType »
  • PHP Manual
  • DOMDocumentFragment
  • Добавление необработанных XML данных

DOMDocumentFragment::appendXML

(PHP 5 >= 5.1.0, PHP 7)

DOMDocumentFragment::appendXML — Добавление необработанных XML данных

Описание

public bool DOMDocumentFragment::appendXML ( string $data )

Добавляет необработанные XML данные в объект класса DOMDocumentFragment.

Это метод не входит в стандарт DOM. Он был разработан для упрощения процедуры добавления XML DocumentFragment в DOMDocument.

Если следовать стандарту, необходимо создавать временный DOMDocument с фиктивным корнем, а затем проходить по всем узлам потомкам корневого узла XML документа и добавлять их по очереди.

Список параметров

data

XML для добавления.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Добавление XML данных в документ

<?php
$doc = new DOMDocument();
$doc->loadXML("<root/>");
$f = $doc->createDocumentFragment();
$f->appendXML("<foo>text</foo><bar>text2</bar>");
$doc->documentElement->appendChild($f);
echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<root><foo>text</foo><bar>text2</bar></root>


Класс DOMDocumentType

(PHP 5, PHP 7)

Введение

Каждый объект DOMDocument имеет атрибут doctype, значение которого либо NULL, либо объект класса DOMDocumentType.

Обзор классов

DOMDocumentType extends DOMNode {
/* Свойства */
readonly public string $publicId ;
readonly public string $systemId ;
readonly public string $name ;
readonly public DOMNamedNodeMap $entities ;
readonly public DOMNamedNodeMap $notations ;
readonly public string $internalSubset ;
/* Наследуемые методы */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Свойства

publicId

Общедоступный идентификатор внешнего подмножества типов.

systemId

Системный идентификатор внешнего подмножества типов. Это может быть абсолютный URI.

name

Имя DTD, то есть имя, следующее сразу за ключевым словом DOCTYPE.

entities

Объект класса DOMNamedNodeMap содержащий основные элементы, внутренние и внешние, объявленные в DTD.

notations

Объект класса DOMNamedNodeMap содержащий условные обозначения, объявленные в DTD.

internalSubset

Внутреннее подмножество в виде строки или NULL, если такового нет. Оно не должно содержать квадратных скобок.


Класс DOMElement

(PHP 5, PHP 7)

Обзор классов

DOMElement extends DOMNode {
/* Свойства */
readonly public bool $schemaTypeInfo ;
readonly public string $tagName ;
/* Методы */
public __construct ( string $name [, string $value [, string $namespaceURI ]] )
public string getAttribute ( string $name )
public DOMAttr getAttributeNode ( string $name )
public DOMAttr getAttributeNodeNS ( string $namespaceURI , string $localName )
public string getAttributeNS ( string $namespaceURI , string $localName )
public DOMNodeList getElementsByTagName ( string $name )
public DOMNodeList getElementsByTagNameNS ( string $namespaceURI , string $localName )
public bool hasAttribute ( string $name )
public bool hasAttributeNS ( string $namespaceURI , string $localName )
public bool removeAttribute ( string $name )
public bool removeAttributeNode ( DOMAttr $oldnode )
public bool removeAttributeNS ( string $namespaceURI , string $localName )
public DOMAttr setAttribute ( string $name , string $value )
public DOMAttr setAttributeNode ( DOMAttr $attr )
public DOMAttr setAttributeNodeNS ( DOMAttr $attr )
public void setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value )
public void setIdAttribute ( string $name , bool $isId )
public void setIdAttributeNode ( DOMAttr $attr , bool $isId )
public void setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId )
/* Наследуемые методы */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Свойства

schemaTypeInfo

Пока не реализовано, всегда возвращает NULL

tagName

Имя элемента

Примечания

Замечание:

Расширение DOM использует кодировку UTF-8. Используйте функции utf8_encode() и utf8_decode() для работы с текстами в кодировке ISO-8859-1, либо Iconv в других кодировках.

Содержание

  • DOMElement::__construct — Создание нового объекта класса DOMElement
  • DOMElement::getAttribute — Возвращает значение атрибута
  • DOMElement::getAttributeNode — Возвращает узел атрибута
  • DOMElement::getAttributeNodeNS — Возвращает узел атрибута
  • DOMElement::getAttributeNS — Возвращает значение атрибута
  • DOMElement::getElementsByTagName — Возвращает элементы по имени тэга
  • DOMElement::getElementsByTagNameNS — Получение элементов по локальному имени в заданном пространстве имен
  • DOMElement::hasAttribute — Проверяет наличие атрибута
  • DOMElement::hasAttributeNS — Проверяет, существует ли заданный атрибут
  • DOMElement::removeAttribute — Удаляет атрибут
  • DOMElement::removeAttributeNode — Удаляет атрибут
  • DOMElement::removeAttributeNS — Удаляет атрибут
  • DOMElement::setAttribute — Устанавливает значение атрибута
  • DOMElement::setAttributeNode — Добавляет новый узел атрибута к элементу
  • DOMElement::setAttributeNodeNS — Добавляет новый атрибут к элементу
  • DOMElement::setAttributeNS — Добавляет новый атрибут
  • DOMElement::setIdAttribute — Объявляет атрибут с заданным именем ключевым атрибутом
  • DOMElement::setIdAttributeNode — Объявляет заданный узел атрибута ключевым
  • DOMElement::setIdAttributeNS — Объявляет атрибут с заданным локальным именем и URI пространства имен идентифицирующим


Создание нового объекта класса DOMElement

  • « DOMElement
  • DOMElement::getAttribute »
  • PHP Manual
  • DOMElement
  • Создание нового объекта класса DOMElement

DOMElement::__construct

(PHP 5, PHP 7)

DOMElement::__construct — Создание нового объекта класса DOMElement

Описание

public DOMElement::__construct ( string $name [, string $value [, string $namespaceURI ]] )

Создает новый объект класса DOMElement. Этот объект доступен только для чтения. Он может быть добавлен в документ, но в него нельзя добавить дочерние узлы пока данный узел связан с документом. Для того чтобы создавать узлы, которые могут быть изменены, воспользуйтесь следующими методами: DOMDocument::createElement or DOMDocument::createElementNS.

Список параметров

name

Имя тэга создаваемого элемента. Если передан параметр namespaceURI, имя элемента может получить префикс для связи с URI.

value

Значение элемента.

namespaceURI

Пространство имен URI, передается для создания элемента со отдельным пространством имен.

Примеры

Пример #1 Создание DOMElement

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$element_ns = new DOMElement('pr:node1', 'thisvalue', 'http://xyz');
$element->appendChild($element_ns);
echo $dom->saveXML(); /* <?xml version="1.0" encoding="utf-8"?>
<root><pr:node1 xmlns:pr="http://xyz">thisvalue</pr:node1></root> */

?>

Смотрите также

  • DOMDocument::createElement() - Создает новый узел-элемент
  • DOMDocument::createElementNS() - Создание нового узла-элемента с соответствующим пространством имен


Возвращает значение атрибута

  • « DOMElement::__construct
  • DOMElement::getAttributeNode »
  • PHP Manual
  • DOMElement
  • Возвращает значение атрибута

DOMElement::getAttribute

(PHP 5, PHP 7)

DOMElement::getAttribute — Возвращает значение атрибута

Описание

public string DOMElement::getAttribute ( string $name )

Возвращает значение атрибута с именем name для текущего узла.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Значение атрибута или пустое значение, если атрибут с указанным именем name не найден.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет наличие атрибута
  • DOMElement::setAttribute() - Устанавливает значение атрибута
  • DOMElement::removeAttribute() - Удаляет атрибут


Возвращает узел атрибута

  • « DOMElement::getAttribute
  • DOMElement::getAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Возвращает узел атрибута

DOMElement::getAttributeNode

(PHP 5, PHP 7)

DOMElement::getAttributeNode — Возвращает узел атрибута

Описание

public DOMAttr DOMElement::getAttributeNode ( string $name )

Возвращает атрибут с именем name текущего элемента в виде узла.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Узел атрибута.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет наличие атрибута
  • DOMElement::setAttributeNode() - Добавляет новый узел атрибута к элементу
  • DOMElement::removeAttributeNode() - Удаляет атрибут


Возвращает узел атрибута

  • « DOMElement::getAttributeNode
  • DOMElement::getAttributeNS »
  • PHP Manual
  • DOMElement
  • Возвращает узел атрибута

DOMElement::getAttributeNodeNS

(PHP 5, PHP 7)

DOMElement::getAttributeNodeNS — Возвращает узел атрибута

Описание

public DOMAttr DOMElement::getAttributeNodeNS ( string $namespaceURI , string $localName )

Возвращает атрибут в пространстве имен namespaceURI с локальным именем localName для текущего элемента в виде узла.

Список параметров

namespaceURI

URI пространства имен.

localName

Локальное имя.

Возвращаемые значения

Узел атрибута.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::setAttributeNodeNS() - Добавляет новый атрибут к элементу
  • DOMElement::removeAttributeNode() - Удаляет атрибут


Возвращает значение атрибута

  • « DOMElement::getAttributeNodeNS
  • DOMElement::getElementsByTagName »
  • PHP Manual
  • DOMElement
  • Возвращает значение атрибута

DOMElement::getAttributeNS

(PHP 5, PHP 7)

DOMElement::getAttributeNS — Возвращает значение атрибута

Описание

public string DOMElement::getAttributeNS ( string $namespaceURI , string $localName )

Получает значение атрибута в пространстве имен namespaceURI с локальным именем localName текущего элемента.

Список параметров

namespaceURI

URI пространства имен.

localName

Локальное имя.

Возвращаемые значения

Значение атрибута либо пустая строка, если атрибутов с заданным локальным именем localName в пространстве имен namespaceURI не найдено.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::setAttributeNS() - Добавляет новый атрибут
  • DOMElement::removeAttributeNS() - Удаляет атрибут


Возвращает элементы по имени тэга

  • « DOMElement::getAttributeNS
  • DOMElement::getElementsByTagNameNS »
  • PHP Manual
  • DOMElement
  • Возвращает элементы по имени тэга

DOMElement::getElementsByTagName

(PHP 5, PHP 7)

DOMElement::getElementsByTagName — Возвращает элементы по имени тэга

Описание

public DOMNodeList DOMElement::getElementsByTagName ( string $name )

Эта функция возвращает объект класса DOMNodeList - список всех элементов-потомков текущего узла с указанным именем тэга name, в порядке, в котором они встречаются при обходе дерева.

Список параметров

name

Имя тэга. Используйте символ * для выборки всех элементов дерева.

Возвращаемые значения

Эта функция возвращает новый объект класса DOMNodeList - список всех подходящих элементов.

Смотрите также

  • DOMElement::getElementsByTagNameNS() - Получение элементов по локальному имени в заданном пространстве имен


Получение элементов по локальному имени в заданном пространстве имен

  • « DOMElement::getElementsByTagName
  • DOMElement::hasAttribute »
  • PHP Manual
  • DOMElement
  • Получение элементов по локальному имени в заданном пространстве имен

DOMElement::getElementsByTagNameNS

(PHP 5, PHP 7)

DOMElement::getElementsByTagNameNS — Получение элементов по локальному имени в заданном пространстве имен

Описание

public DOMNodeList DOMElement::getElementsByTagNameNS ( string $namespaceURI , string $localName )

Эта функция выбирает все элементы-потомки с заданным именем localName и пространством имен namespaceURI.

Список параметров

namespaceURI

URI пространства имен.

localName

Локальное имя. Используйте * для выбора всех элементов из дерева.

Возвращаемые значения

Эта функция возвращает новый объект класса DOMNodeList содержащий все подошедшие под шаблон выбора элементы в том порядке, в котором они появляются при прямом обходе дерева.

Смотрите также

  • DOMElement::getElementsByTagName() - Возвращает элементы по имени тэга


Проверяет наличие атрибута

  • « DOMElement::getElementsByTagNameNS
  • DOMElement::hasAttributeNS »
  • PHP Manual
  • DOMElement
  • Проверяет наличие атрибута

DOMElement::hasAttribute

(PHP 5, PHP 7)

DOMElement::hasAttribute — Проверяет наличие атрибута

Описание

public bool DOMElement::hasAttribute ( string $name )

Проверяет наличие атрибута с именем, указанным в параметре name текущего элемента.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::getAttribute() - Возвращает значение атрибута
  • DOMElement::setAttribute() - Устанавливает значение атрибута
  • DOMElement::removeAttribute() - Удаляет атрибут


Проверяет, существует ли заданный атрибут

  • « DOMElement::hasAttribute
  • DOMElement::removeAttribute »
  • PHP Manual
  • DOMElement
  • Проверяет, существует ли заданный атрибут

DOMElement::hasAttributeNS

(PHP 5, PHP 7)

DOMElement::hasAttributeNS — Проверяет, существует ли заданный атрибут

Описание

public bool DOMElement::hasAttributeNS ( string $namespaceURI , string $localName )

Показывает, существует ли атрибут в пространстве имен namespaceURI с именем localName в составе элемента.

Список параметров

namespaceURI

URI пространства имен.

localName

Локальное имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет наличие атрибута
  • DOMElement::getAttributeNS() - Возвращает значение атрибута
  • DOMElement::setAttributeNS() - Добавляет новый атрибут
  • DOMElement::removeAttributeNS() - Удаляет атрибут


Удаляет атрибут

  • « DOMElement::hasAttributeNS
  • DOMElement::removeAttributeNode »
  • PHP Manual
  • DOMElement
  • Удаляет атрибут

DOMElement::removeAttribute

(PHP 5, PHP 7)

DOMElement::removeAttribute — Удаляет атрибут

Описание

public bool DOMElement::removeAttribute ( string $name )

Удаляет атрибут с именем name из элемента.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если атрибут доступен только для чтения.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет наличие атрибута
  • DOMElement::getAttribute() - Возвращает значение атрибута
  • DOMElement::setAttribute() - Устанавливает значение атрибута


Удаляет атрибут

  • « DOMElement::removeAttribute
  • DOMElement::removeAttributeNS »
  • PHP Manual
  • DOMElement
  • Удаляет атрибут

DOMElement::removeAttributeNode

(PHP 5, PHP 7)

DOMElement::removeAttributeNode — Удаляет атрибут

Описание

public bool DOMElement::removeAttributeNode ( DOMAttr $oldnode )

Удаляет узел атрибута oldnode из элемента.

Список параметров

oldnode

Узел атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND_ERROR

Возникает, если oldnode не является атрибутом элемента.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет наличие атрибута
  • DOMElement::getAttributeNode() - Возвращает узел атрибута
  • DOMElement::setAttributeNode() - Добавляет новый узел атрибута к элементу


Удаляет атрибут

  • « DOMElement::removeAttributeNode
  • DOMElement::setAttribute »
  • PHP Manual
  • DOMElement
  • Удаляет атрибут

DOMElement::removeAttributeNS

(PHP 5, PHP 7)

DOMElement::removeAttributeNS — Удаляет атрибут

Описание

public bool DOMElement::removeAttributeNS ( string $namespaceURI , string $localName )

Удаляет атрибут с пространством имен namespaceURI и локальным именем localName из элемента.

Список параметров

namespaceURI

URI пространства имен.

localName

Локальное имя.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::getAttributeNS() - Возвращает значение атрибута
  • DOMElement::setAttributeNS() - Добавляет новый атрибут


Устанавливает значение атрибута

  • « DOMElement::removeAttributeNS
  • DOMElement::setAttributeNode »
  • PHP Manual
  • DOMElement
  • Устанавливает значение атрибута

DOMElement::setAttribute

(PHP 5, PHP 7)

DOMElement::setAttribute — Устанавливает значение атрибута

Описание

public DOMAttr DOMElement::setAttribute ( string $name , string $value )

Устанавливает значение атрибута с именем name. Если атрибут не существует, то он будет создан.

Список параметров

name

Имя атрибута.

value

Значение атрибута.

Возвращаемые значения

Новый объект класса DOMAttr или FALSE в случае ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

Примеры

Пример #1 Установка значения атрибута

<?php
$doc = new DOMDocument("1.0");
$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);
$newnode->setAttribute("align", "left");
?>

Смотрите также

  • DOMElement::hasAttribute() - Проверяет наличие атрибута
  • DOMElement::getAttribute() - Возвращает значение атрибута
  • DOMElement::removeAttribute() - Удаляет атрибут


Добавляет новый узел атрибута к элементу

  • « DOMElement::setAttribute
  • DOMElement::setAttributeNodeNS »
  • PHP Manual
  • DOMElement
  • Добавляет новый узел атрибута к элементу

DOMElement::setAttributeNode

(PHP 5, PHP 7)

DOMElement::setAttributeNode — Добавляет новый узел атрибута к элементу

Описание

public DOMAttr DOMElement::setAttributeNode ( DOMAttr $attr )

Добавляет новый узел атрибута attr в элемент.

Список параметров

attr

Узел атрибута.

Возвращаемые значения

Возвращает старый узел, если атрибут был заменен, или NULL.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

Смотрите также

  • DOMElement::hasAttribute() - Проверяет наличие атрибута
  • DOMElement::getAttributeNode() - Возвращает узел атрибута
  • DOMElement::removeAttributeNode() - Удаляет атрибут


Добавляет новый атрибут к элементу

  • « DOMElement::setAttributeNode
  • DOMElement::setAttributeNS »
  • PHP Manual
  • DOMElement
  • Добавляет новый атрибут к элементу

DOMElement::setAttributeNodeNS

(PHP 5, PHP 7)

DOMElement::setAttributeNodeNS — Добавляет новый атрибут к элементу

Описание

public DOMAttr DOMElement::setAttributeNodeNS ( DOMAttr $attr )

Добавляет новый узел атрибута attr в элемент.

Список параметров

attr

Узел атрибута.

Возвращаемые значения

Возвращает старый узел, если атрибут был заменен.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::getAttributeNodeNS() - Возвращает узел атрибута
  • DOMElement::removeAttributeNode() - Удаляет атрибут


Добавляет новый атрибут

  • « DOMElement::setAttributeNodeNS
  • DOMElement::setIdAttribute »
  • PHP Manual
  • DOMElement
  • Добавляет новый атрибут

DOMElement::setAttributeNS

(PHP 5, PHP 7)

DOMElement::setAttributeNS — Добавляет новый атрибут

Описание

public void DOMElement::setAttributeNS ( string $namespaceURI , string $qualifiedName , string $value )

Устанавливает значение атрибута с пространстве имен namespaceURI и локальным именем name. Если атрибут не существует, он будет создан.

Список параметров

namespaceURI

URI пространства имен.

qualifiedName

Стандартизованное имя атрибута в виде prefix:tagname.

value

Значение атрибута.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NAMESPACE_ERR

Возникает, если значение qualifiedName построено неправильно или если qualifiedName имеет префикс, а namespaceURI имеет значение NULL.

Смотрите также

  • DOMElement::hasAttributeNS() - Проверяет, существует ли заданный атрибут
  • DOMElement::getAttributeNS() - Возвращает значение атрибута
  • DOMElement::removeAttributeNS() - Удаляет атрибут


Объявляет атрибут с заданным именем ключевым атрибутом

  • « DOMElement::setAttributeNS
  • DOMElement::setIdAttributeNode »
  • PHP Manual
  • DOMElement
  • Объявляет атрибут с заданным именем ключевым атрибутом

DOMElement::setIdAttribute

(PHP 5, PHP 7)

DOMElement::setIdAttribute — Объявляет атрибут с заданным именем ключевым атрибутом

Описание

public void DOMElement::setIdAttribute ( string $name , bool $isId )

Объявляет атрибут name ключевым.

Список параметров

name

Имя атрибута.

isId

Установите значение в TRUE если требуется сделать name идентифицирующим, в противном случае ставьте FALSE.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если name не является атрибутом элемента.

Смотрите также

  • DOMDocument::getElementById() - Ищет элемент с заданным id
  • DOMElement::setIdAttributeNode() - Объявляет заданный узел атрибута ключевым
  • DOMElement::setIdAttributeNS() - Объявляет атрибут с заданным локальным именем и URI пространства имен идентифицирующим


Объявляет заданный узел атрибута ключевым

  • « DOMElement::setIdAttribute
  • DOMElement::setIdAttributeNS »
  • PHP Manual
  • DOMElement
  • Объявляет заданный узел атрибута ключевым

DOMElement::setIdAttributeNode

(PHP 5, PHP 7)

DOMElement::setIdAttributeNode — Объявляет заданный узел атрибута ключевым

Описание

public void DOMElement::setIdAttributeNode ( DOMAttr $attr , bool $isId )

Объявляет атрибут, определяемый узлом attr идентифицирующим элемент атрибутом.

Список параметров

attr

Узел атрибута.

isId

Установите значение в TRUE если требуется сделать name идентифицирующим, в противном случае ставьте FALSE.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если name не является атрибутом элемента.

Смотрите также

  • DOMDocument::getElementById() - Ищет элемент с заданным id
  • DOMElement::setIdAttribute() - Объявляет атрибут с заданным именем ключевым атрибутом
  • DOMElement::setIdAttributeNS() - Объявляет атрибут с заданным локальным именем и URI пространства имен идентифицирующим


Объявляет атрибут с заданным локальным именем и URI пространства имен идентифицирующим

  • « DOMElement::setIdAttributeNode
  • DOMEntity »
  • PHP Manual
  • DOMElement
  • Объявляет атрибут с заданным локальным именем и URI пространства имен идентифицирующим

DOMElement::setIdAttributeNS

(PHP 5, PHP 7)

DOMElement::setIdAttributeNS — Объявляет атрибут с заданным локальным именем и URI пространства имен идентифицирующим

Описание

public void DOMElement::setIdAttributeNS ( string $namespaceURI , string $localName , bool $isId )

Объявляет атрибут с заданным локальным именем localName и пространством имен namespaceURI идентифицирующим элемент атрибутом.

Список параметров

namespaceURI

URI пространства имен атрибута.

localName

Локальное имя атрибута в виде prefix:tagname.

isId

Установите значение в TRUE если требуется сделать name идентифицирующим, в противном случае ставьте FALSE.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если name не является атрибутом элемента.

Смотрите также

  • DOMDocument::getElementById() - Ищет элемент с заданным id
  • DOMElement::setIdAttribute() - Объявляет атрибут с заданным именем ключевым атрибутом
  • DOMElement::setIdAttributeNode() - Объявляет заданный узел атрибута ключевым


Класс DOMEntity

(PHP 5, PHP 7)

Введение

Этот интерфейс представляет заведомо известную сущность, уже разобранную или нет, в документе XML.

Обзор классов

DOMEntity extends DOMNode {
/* Свойства */
readonly public string $publicId ;
readonly public string $systemId ;
readonly public string $notationName ;
public string $actualEncoding ;
readonly public string $encoding ;
readonly public string $version ;
/* Наследуемые методы */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Свойства

publicId

Общедоступный идентификатор соответствующий сущности или NULL, если не задан.

systemId

Системный идентификатор соответствующий сущности или NULL, если не задан. Это может быть абсолютный URI.

notationName

Для неразобранных объектов - наименование условного обозначения для сущности. Для разобранных - NULL.

actualEncoding

Атрибут, задающий кодировку, которая использовалась при разборе сущности, для случаев, когда разбор производился внешними методами. Атрибут имеет значение NULL, если сущность находится во внутреннем подмножестве или этот факт не известен.

encoding

Атрибут, задающий кодировку сущности, равно как и в объявлении, когда сущность разобрана внешними средствами. В противном случае атрибут имеет значение NULL.

version

Атрибут, задающий версию элемента, если он был разобран внешними средствами. В противном случае NULL.


Класс DOMEntityReference

(PHP 5, PHP 7)

Обзор классов

DOMEntityReference extends DOMNode {
/* Свойства */
/* Методы */
public __construct ( string $name )
/* Наследуемые методы */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Содержание

  • DOMEntityReference::__construct — Создает новый объект класса DOMEntityReference


Создает новый объект класса DOMEntityReference

  • « DOMEntityReference
  • DOMException »
  • PHP Manual
  • DOMEntityReference
  • Создает новый объект класса DOMEntityReference

DOMEntityReference::__construct

(PHP 5, PHP 7)

DOMEntityReference::__construct — Создает новый объект класса DOMEntityReference

Описание

public DOMEntityReference::__construct ( string $name )

Создает новый объект класса DOMEntityReference.

Список параметров

name

Имя ссылки на сущность.

Примеры

Пример #1 Создание нового объекта DOMEntityReference

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$entity = $element->appendChild(new DOMEntityReference('nbsp'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root></root> */

?>

Смотрите также

  • DOMDocument::createEntityReference() - Создание нового узла-ссылки на сущность


Класс DOMException

(PHP 5, PHP 7)

Введение

Методы объектов DOM в редких случаях выбрасывают исключения, например, когда выполнение операции невозможно по понятным логичным причинам.

См. также Исключения.

Обзор классов

DOMException extends Exception {
/* Свойства */
readonly public int $code ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}

Свойства

code

Целое число (integer) характеризующее тип произошедшей ошибки


Класс DOMImplementation

(PHP 5, PHP 7)

Введение

Интерфейс DOMImplementation предоставляет несколько методов для осуществления операций зависящих от некоторых особенностей реализации объектной модели документа.

Обзор классов

DOMImplementation {
/* Свойства */
/* Методы */
__construct ( void )
public DOMDocument createDocument ([ string $namespaceURI = NULL [, string $qualifiedName = NULL [, DOMDocumentType $doctype = NULL ]]] )
public DOMDocumentType createDocumentType ([ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL ]]] )
public bool hasFeature ( string $feature , string $version )
}

Содержание

  • DOMImplementation::__construct — Создает новый объект класса DOMImplementation
  • DOMImplementation::createDocument — Создает объект класса DOMDocument заданного типа с элементом document
  • DOMImplementation::createDocumentType — Создает пустой объект класса DOMDocumentType
  • DOMImplementation::hasFeature — Тестирует реализацию специфичных возможностей объекта DOMImplementation


Создает новый объект класса DOMImplementation

  • « DOMImplementation
  • DOMImplementation::createDocument »
  • PHP Manual
  • DOMImplementation
  • Создает новый объект класса DOMImplementation

DOMImplementation::__construct

(PHP 5, PHP 7)

DOMImplementation::__construct — Создает новый объект класса DOMImplementation

Описание

DOMImplementation::__construct ( void )

Создает экземпляр класса DOMImplementation.


Создает объект класса DOMDocument заданного типа с элементом document

  • « DOMImplementation::__construct
  • DOMImplementation::createDocumentType »
  • PHP Manual
  • DOMImplementation
  • Создает объект класса DOMDocument заданного типа с элементом document

DOMImplementation::createDocument

(PHP 5, PHP 7)

DOMImplementation::createDocument — Создает объект класса DOMDocument заданного типа с элементом document

Описание

public DOMDocument DOMImplementation::createDocument ([ string $namespaceURI = NULL [, string $qualifiedName = NULL [, DOMDocumentType $doctype = NULL ]]] )

Создает объект класса DOMDocument заданного типа с элементом document.

Список параметров

namespaceURI

URI пространства имен элемента document.

qualifiedName

Имя элемента document.

doctype

Тип элемента document или NULL.

Возвращаемые значения

Новый объект класса DOMDocument. Если аргументы namespaceURI, qualifiedName, и doctype имеют значение null, возвращаемый объект DOMDocument будет пустым, без элементов document.

Ошибки

DOM_WRONG_DOCUMENT_ERR

Возникает, если аргумент doctype уже был использован с другим документом или был создан в другой реализации.

DOM_NAMESPACE_ERR

Возникает, если обнаружена ошибка в строках namespaceURI и qualifiedName.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Смотрите также

  • DOMDocument::__construct() - Создание нового DOMDocument объекта
  • DOMImplementation::createDocumentType() - Создает пустой объект класса DOMDocumentType


Создает пустой объект класса DOMDocumentType

  • « DOMImplementation::createDocument
  • DOMImplementation::hasFeature »
  • PHP Manual
  • DOMImplementation
  • Создает пустой объект класса DOMDocumentType

DOMImplementation::createDocumentType

(PHP 5, PHP 7)

DOMImplementation::createDocumentType — Создает пустой объект класса DOMDocumentType

Описание

public DOMDocumentType DOMImplementation::createDocumentType ([ string $qualifiedName = NULL [, string $publicId = NULL [, string $systemId = NULL ]]] )

Создает пустой объект класса DOMDocumentType. Объявления сущностей и условных обозначений будет недоступно. Ссылки на сущности не будут заменяться, и умолчания значений атрибутов не будут применены.

Список параметров

qualifiedName

Стандартизованное имя типа документа для создания.

publicId

Общедоступный идентификатор внешнего подмножества.

systemId

Системный идентификатор внешнего подмножества.

Возвращаемые значения

Новый объект класса DOMDocumentType с атрибутом ownerDocument установленным в NULL.

Ошибки

DOM_NAMESPACE_ERR

Возникает, если обнаружена ошибка в строке qualifiedName.

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Примеры

Пример #1 Создание документа с прикрепленной DTD

<?php

// Создает экземпляр класса DOMImplementation
$imp = new DOMImplementation;

// Создает экземпляр класса DOMDocumentType
$dtd = $imp->createDocumentType('graph', '', 'graph.dtd');

// Создает объект DOMDocument
$dom = $imp->createDocument("", "", $dtd);

// установка других параметров
$dom->encoding = 'UTF-8';
$dom->standalone = false;

// создание пустого элемента
$element = $dom->createElement('graph');

// присоединение элемента
$dom->appendChild($element);

// извлечение и печать документа
echo $dom->saveXML();

?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE graph SYSTEM "graph.dtd">
<graph/>

Смотрите также

  • DOMImplementation::createDocument() - Создает объект класса DOMDocument заданного типа с элементом document


Тестирует реализацию специфичных возможностей объекта DOMImplementation

  • « DOMImplementation::createDocumentType
  • DOMNamedNodeMap »
  • PHP Manual
  • DOMImplementation
  • Тестирует реализацию специфичных возможностей объекта DOMImplementation

DOMImplementation::hasFeature

(PHP 5, PHP 7)

DOMImplementation::hasFeature — Тестирует реализацию специфичных возможностей объекта DOMImplementation

Описание

public bool DOMImplementation::hasFeature ( string $feature , string $version )

Тестирует реализацию специфичной возможности feature объекта DOMImplementation.

Вы можете найти список всех возможностей в разделе » Согласование стандарта DOM.

Список параметров

feature

Тестируемая возможность.

version

Номер версии тестируемой возможности feature. В DOM level 2 это может быть либо 2.0, либо 1.0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Примеры

Пример #1 Тестирование Вашей реализации DOM

<?php

$features = array(
  'Core'           => 'Core module',
  'XML'            => 'XML module',
  'HTML'           => 'HTML module',
  'Views'          => 'Views module',
  'Stylesheets'    => 'Style Sheets module',
  'CSS'            => 'CSS module',
  'CSS2'           => 'CSS2 module',
  'Events'         => 'Events module',
  'UIEvents'       => 'User interface Events module',
  'MouseEvents'    => 'Mouse Events module',
  'MutationEvents' => 'Mutation Events module',
  'HTMLEvents'     => 'HTML Events module',
  'Range'          => 'Range module',
  'Traversal'      => 'Traversal module'
);

foreach ($features as $key => $name) {
  if (DOMImplementation::hasFeature($key, '2.0')) {
    echo "Реализует возможность $name\n";
  } else {
    echo "Возможность $name отсутствует\n";
  }
}

?>

Смотрите также

  • DOMNode::isSupported() - Проверяет, поддерживается ли заданное свойство в определенной версии


Класс DOMNamedNodeMap

(PHP 5, PHP 7)

Обзор классов

DOMNamedNodeMap implements Traversable {
/* Свойства */
readonly public int $length ;
/* Методы */
DOMNode getNamedItem ( string $name )
DOMNode getNamedItemNS ( string $namespaceURI , string $localName )
DOMNode item ( int $index )
}

Свойства

length

Количество узлов в отображении. Диапазон допустимых индексов узлов-потомков от 0 до length - 1 включительно.

Содержание

  • DOMNamedNodeMap::getNamedItem — Извлекает узел с заданным именем
  • DOMNamedNodeMap::getNamedItemNS — Извлекает узел с заданным локальным именем и URI пространства имен
  • DOMNamedNodeMap::item — Извлекает узел с заданным индексом


Извлекает узел с заданным именем

  • « DOMNamedNodeMap
  • DOMNamedNodeMap::getNamedItemNS »
  • PHP Manual
  • DOMNamedNodeMap
  • Извлекает узел с заданным именем

DOMNamedNodeMap::getNamedItem

(PHP 5, PHP 7)

DOMNamedNodeMap::getNamedItem — Извлекает узел с заданным именем

Описание

DOMNode DOMNamedNodeMap::getNamedItem ( string $name )

Извлекает узел с заданным значением тэга nodeName.

Список параметров

name

Значение тэга nodeName искомого узла.

Возвращаемые значения

Узел (любого типа) с заданным значением тэга nodeName или NULL, если таковых не найдено.

Смотрите также

  • DOMNamedNodeMap::getNamedItemNS() - Извлекает узел с заданным локальным именем и URI пространства имен


Извлекает узел с заданным локальным именем и URI пространства имен

  • « DOMNamedNodeMap::getNamedItem
  • DOMNamedNodeMap::item »
  • PHP Manual
  • DOMNamedNodeMap
  • Извлекает узел с заданным локальным именем и URI пространства имен

DOMNamedNodeMap::getNamedItemNS

(PHP 5, PHP 7)

DOMNamedNodeMap::getNamedItemNS — Извлекает узел с заданным локальным именем и URI пространства имен

Описание

DOMNode DOMNamedNodeMap::getNamedItemNS ( string $namespaceURI , string $localName )

Извлекает узел с заданным локальным именем localName и URI пространства имен namespaceURI.

Список параметров

namespaceURI

URI пространства имен искомого узла.

localName

Локальное имя искомого узла.

Возвращаемые значения

Узел (любого типа) с заданным локальным именем и URI пространства имен или NULL, если таковых не найдено.

Смотрите также

  • DOMNamedNodeMap::getNamedItem() - Извлекает узел с заданным именем


Извлекает узел с заданным индексом

  • « DOMNamedNodeMap::getNamedItemNS
  • DOMNode »
  • PHP Manual
  • DOMNamedNodeMap
  • Извлекает узел с заданным индексом

DOMNamedNodeMap::item

(PHP 5, PHP 7)

DOMNamedNodeMap::item — Извлекает узел с заданным индексом

Описание

DOMNode DOMNamedNodeMap::item ( int $index )

Извлекает узел с заданным индексом index из объекта класса DOMNamedNodeMap.

Список параметров

index

Индекс узла в отображении.

Возвращаемые значения

Узел с индексом index в отображении или NULL, если индекс имеет недопустимое значение (больше или равен количеству узлов в отображении).


Класс DOMNode

(PHP 5, PHP 7)

Обзор классов

DOMNode {
/* Свойства */
public readonly string $nodeName ;
public string $nodeValue ;
public readonly int $nodeType ;
public readonly DOMNode $parentNode ;
public readonly DOMNodeList $childNodes ;
public readonly DOMNode $firstChild ;
public readonly DOMNode $lastChild ;
public readonly DOMNode $previousSibling ;
public readonly DOMNode $nextSibling ;
public readonly DOMNamedNodeMap $attributes ;
public readonly DOMDocument $ownerDocument ;
public readonly string $namespaceURI ;
public string $prefix ;
public readonly string $localName ;
public readonly string $baseURI ;
public string $textContent ;
/* Методы */
public DOMNode appendChild ( DOMNode $newnode )
public string C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode cloneNode ([ bool $deep ] )
public int getLineNo ( void )
public string getNodePath ( void )
public bool hasAttributes ( void )
public bool hasChildNodes ( void )
public DOMNode insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool isDefaultNamespace ( string $namespaceURI )
public bool isSameNode ( DOMNode $node )
public bool isSupported ( string $feature , string $version )
public string lookupNamespaceURI ( string $prefix )
public string lookupPrefix ( string $namespaceURI )
public void normalize ( void )
public DOMNode removeChild ( DOMNode $oldnode )
public DOMNode replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Свойства

nodeName

Возвращает имя текущего узла

nodeValue

Значение текущего узла, в зависимости от его типа. В отличии от спецификации W3C, значения DOMElement узлов равно DOMNode::textContent, а не NULL.

nodeType

Возвращает тип текущего узла. Возможные варианты возвращаемых значений nodeType перечислены в разделе константы XML_xxx_NODE

parentNode

Возвращает родительский узел текущего узла либо NULL, если таковой отсутствует

childNodes

Возвращает список DOMNodeList, содержащий всех потомков текущего узла. Если у узла нет потомков, возвращает пустой список DOMNodeList.

firstChild

Возвращает первый дочерний узел текущего узла. Если у узла нет потомков, возвращает NULL.

lastChild

Возвращает последний дочерний узел текущего узла. Если у узла нет потомков, возвращает NULL.

previousSibling

Возвращает предыдущий узел непосредственно от текущего узла. Если такого узла нет, возвращает NULL.

nextSibling

Возвращает следующий узел после текущего узла. Если такого узла нет, возвращает NULL.

attributes

Возвращает объект DOMNamedNodeMap, содержащий атрибуты текущего узла (только если это DOMElement), иначе вернёт NULL.

ownerDocument

Возвращает корневой узел DOMDocument текущего узла.

namespaceURI

Вернёт пространство имён текущего узла или NULL, если оно не установлено.

prefix

Вернёт префикс текущего узла или NULL, если оно не установленно.

localName

Возвращает локальное имя текущего узла.

baseURI

Возвращает универсальный код ресурса (URI) текущего узла или NULL, если не удалось получить URI.

textContent

Текстовое содержимое текущего узла и его потомков

Примечания

Замечание:

Расширение DOM использует кодировку UTF-8. Используйте функции utf8_encode() и utf8_decode() для работы с текстами в кодировке ISO-8859-1 или функцию Iconv для других кодировок.

Список изменений

Версия | Описание
5.6.1 | Свойство textContent стало перезаписываемым(раньше оно было доступно только для чтения).

Смотрите также

  • » Спецификация W3C элемента Node

Содержание

  • DOMNode::appendChild — Добавляет новый дочерний узел в конец списка потомков
  • DOMNode::C14N — Canonicalize nodes to a string
  • DOMNode::C14NFile — Canonicalize nodes to a file
  • DOMNode::cloneNode — Клонирует узел
  • DOMNode::getLineNo — Возвращает номер строки узла
  • DOMNode::getNodePath — Получение XPath пути к узлу
  • DOMNode::hasAttributes — Проверяет, содержит ли данный узел атрибуты
  • DOMNode::hasChildNodes — Проверяет, содержит ли данный узел потомков
  • DOMNode::insertBefore — Добавляет новый дочерний узел перед опорным узлом
  • DOMNode::isDefaultNamespace — Проверяет, совпадает ли URI пространства имен узла с пространством имен по умолчанию
  • DOMNode::isSameNode — Проверяет, являются ли два узла одним и тем же узлом
  • DOMNode::isSupported — Проверяет, поддерживается ли заданное свойство в определенной версии
  • DOMNode::lookupNamespaceURI — Получает URI пространства имен узла по префиксу
  • DOMNode::lookupPrefix — Возвращает префикс пространства имен узла из URI пространства имен
  • DOMNode::normalize — Нормализует узел
  • DOMNode::removeChild — Удаляет дочерний узел из списка потомков
  • DOMNode::replaceChild — Заменяет дочерний узел


Добавляет новый дочерний узел в конец списка потомков

  • « DOMNode
  • DOMNode::C14N »
  • PHP Manual
  • DOMNode
  • Добавляет новый дочерний узел в конец списка потомков

DOMNode::appendChild

(PHP 5, PHP 7)

DOMNode::appendChild — Добавляет новый дочерний узел в конец списка потомков

Описание

public DOMNode DOMNode::appendChild ( DOMNode $newnode )

Функция добавляет дочерний узел к существующему списку потомков или создает новый список. Дочерний узел может быть создан с помощью DOMDocument::createElement(), DOMDocument::createTextNode() и т.д., или может быть использован любой другой узел.

Список параметров

newnode

Добавляемый дочерний узел.

Возвращаемые значения

Добавленный узел.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения или предыдущий родитель вставляемого узла доступен только для чтения.

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип узла не поддерживает потомков типа, который имеет узел newnode, или же если добавляемый узел является предком целевого узла или им самим.

DOM_WRONG_DOCUMENT_ERR

Возникает, если newnode создан в другом документе, отличном от того, в котором был создан этот узел.

Примеры

Следующий пример добавляет новый узел в только что созданный документ.

Пример #1 Добавление дочернего узла

<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?>

Смотрите также

  • DOMNode::insertBefore() - Добавляет новый дочерний узел перед опорным узлом
  • DOMNode::removeChild() - Удаляет дочерний узел из списка потомков
  • DOMNode::replaceChild() - Заменяет дочерний узел


Canonicalize nodes to a string

  • « DOMNode::appendChild
  • DOMNode::C14NFile »
  • PHP Manual
  • DOMNode
  • Canonicalize nodes to a string

DOMNode::C14N

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::C14N — Canonicalize nodes to a string

Описание

public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )

Canonicalize nodes to a string

Список параметров

exclusive

Enable exclusive parsing of only the nodes matched by the provided xpath or namespace prefixes.

with_comments

Retain comments in output.

xpath

An array of xpaths to filter the nodes by.

ns_prefixes

An array of namespace prefixes to filter the nodes by.

Возвращаемые значения

Returns canonicalized nodes as a string или FALSE в случае возникновения ошибки

Смотрите также

  • DOMNode::C14NFile() - Canonicalize nodes to a file


Canonicalize nodes to a file

  • « DOMNode::C14N
  • DOMNode::cloneNode »
  • PHP Manual
  • DOMNode
  • Canonicalize nodes to a file

DOMNode::C14NFile

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::C14NFile — Canonicalize nodes to a file

Описание

public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )

Canonicalize nodes to a file.

Список параметров

uri

Path to write the output to.

exclusive

Enable exclusive parsing of only the nodes matched by the provided xpath or namespace prefixes.

with_comments

Retain comments in output.

xpath

An array of xpaths to filter the nodes by.

ns_prefixes

An array of namespace prefixes to filter the nodes by.

Возвращаемые значения

Number of bytes written или FALSE в случае возникновения ошибки

Смотрите также

  • DOMNode::C14N() - Canonicalize nodes to a string


Клонирует узел

  • « DOMNode::C14NFile
  • DOMNode::getLineNo »
  • PHP Manual
  • DOMNode
  • Клонирует узел

DOMNode::cloneNode

(PHP 5, PHP 7)

DOMNode::cloneNode — Клонирует узел

Описание

public DOMNode DOMNode::cloneNode ([ bool $deep ] )

Создает копию узла.

Список параметров

deep

Указывает, нужно ли копировать всех потомков. Этот параметр по умолчанию имеет значение FALSE.

Возвращаемые значения

Копия узла.


Возвращает номер строки узла

  • « DOMNode::cloneNode
  • DOMNode::getNodePath »
  • PHP Manual
  • DOMNode
  • Возвращает номер строки узла

DOMNode::getLineNo

(PHP 5 >= 5.3.0, PHP 7)

DOMNode::getLineNo — Возвращает номер строки узла

Описание

public int DOMNode::getLineNo ( void )

Возвращает номер строки, в которой определен узел.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Всегда возвращает номер строки, в которой был определен узел.

Примеры

Пример #1 Пример использования DOMNode::getLineNo()

<?php
// Определяем необходимый для примера XML
$xml = <<<XML
<?xml version="1.0" encoding="utf-8"?>
<root>
    <node />
</root>
XML;

// Создаем новый экземпляр DOMDocument
$dom = new DOMDocument;

// Загружаем XML
$dom->loadXML($xml);

// Выводим номер строки, в которой определен элемент 'node'
printf('Тег <node> определен в строке %d', $dom->getElementsByTagName('node')->item(0)->getLineNo());
?>

Результат выполнения данного примера:

Тег <node> определен в строке 3


Получение XPath пути к узлу

  • « DOMNode::getLineNo
  • DOMNode::hasAttributes »
  • PHP Manual
  • DOMNode
  • Получение XPath пути к узлу

DOMNode::getNodePath

(PHP 5 >= 5.2.0, PHP 7)

DOMNode::getNodePath — Получение XPath пути к узлу

Описание

public string DOMNode::getNodePath ( void )

Получает путь XPath по которому расположен узел.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает строку (string) содержащую XPath либо NULL в случае ошибки.

Примеры

Пример #1 Пример использования DOMNode::getNodePath()

<?php
// Создание объекта DOMDocument
$dom = new DOMDocument;

// Загрузка XML
$dom->loadXML('
<fruits>
 <apples>
  <apple>braeburn</apple>
  <apple>granny smith</apple>
 </apples>
 <pears>
  <pear>conference</pear>
 </pears>
</fruits>
');

// Вывод XPath для каждого элемента
foreach ($dom->getElementsByTagName('*') as $node) {
    echo $node->getNodePath() . "\n";
}
?>

Результат выполнения данного примера:

/fruits
/fruits/apples
/fruits/apples/apple[1]
/fruits/apples/apple[2]
/fruits/pears
/fruits/pears/pear

Смотрите также

  • DOMXPath


Проверяет, содержит ли данный узел атрибуты

  • « DOMNode::getNodePath
  • DOMNode::hasChildNodes »
  • PHP Manual
  • DOMNode
  • Проверяет, содержит ли данный узел атрибуты

DOMNode::hasAttributes

(PHP 5, PHP 7)

DOMNode::hasAttributes — Проверяет, содержит ли данный узел атрибуты

Описание

public bool DOMNode::hasAttributes ( void )

Этот метод проверяет, содержит ли данный узел атрибуты. Проверяемый узел должен быть XML_ELEMENT_NODE.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMNode::hasChildNodes() - Проверяет, содержит ли данный узел потомков


Проверяет, содержит ли данный узел потомков

  • « DOMNode::hasAttributes
  • DOMNode::insertBefore »
  • PHP Manual
  • DOMNode
  • Проверяет, содержит ли данный узел потомков

DOMNode::hasChildNodes

(PHP 5, PHP 7)

DOMNode::hasChildNodes — Проверяет, содержит ли данный узел потомков

Описание

public bool DOMNode::hasChildNodes ( void )

Эта функция проверяет, содержит ли данный узел потомков.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMNode::hasAttributes() - Проверяет, содержит ли данный узел атрибуты


Добавляет новый дочерний узел перед опорным узлом

  • « DOMNode::hasChildNodes
  • DOMNode::isDefaultNamespace »
  • PHP Manual
  • DOMNode
  • Добавляет новый дочерний узел перед опорным узлом

DOMNode::insertBefore

(PHP 5, PHP 7)

DOMNode::insertBefore — Добавляет новый дочерний узел перед опорным узлом

Описание

public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )

Данная функция вставляет новый узел перед опорным узлом. Чтобы дальше модифицировать добавляемый узел, необходимо использовать возвращаемый узел

Список параметров

newnode

Новый узел.

refnode

Опорный узел. Если отсутствует, то newnode добавляется в конец списка потомков.

Возвращаемые значения

Добавленный узел.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения или предыдущий родитель вставляемого узла доступен только для чтения.

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип узла не поддерживает потомков типа, который имеет узел newnode, или же если добавляемый узел является предком целевого узла или им самим.

DOM_WRONG_DOCUMENT_ERR

Возникает, если newnode создан в другом документе, отличном от того, в котором был создан этот узел.

DOM_NOT_FOUND

Возникает, если refnode не является дочерним узлом данного узла.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков


Проверяет, совпадает ли URI пространства имен узла с пространством имен по умолчанию

  • « DOMNode::insertBefore
  • DOMNode::isSameNode »
  • PHP Manual
  • DOMNode
  • Проверяет, совпадает ли URI пространства имен узла с пространством имен по умолчанию

DOMNode::isDefaultNamespace

(PHP 5, PHP 7)

DOMNode::isDefaultNamespace — Проверяет, совпадает ли URI пространства имен узла с пространством имен по умолчанию

Описание

public bool DOMNode::isDefaultNamespace ( string $namespaceURI )

Сообщает, является ли namespaceURI пространством имен по умолчанию.

Список параметров

namespaceURI

URI пространства имен.

Возвращаемые значения

Возвращает TRUE если namespaceURI является пространством имен по умолчанию или FALSE в противном случае.


Проверяет, являются ли два узла одним и тем же узлом

  • « DOMNode::isDefaultNamespace
  • DOMNode::isSupported »
  • PHP Manual
  • DOMNode
  • Проверяет, являются ли два узла одним и тем же узлом

DOMNode::isSameNode

(PHP 5, PHP 7)

DOMNode::isSameNode — Проверяет, являются ли два узла одним и тем же узлом

Описание

public bool DOMNode::isSameNode ( DOMNode $node )

Эта функция проверяет, являются ли два узла одним и тем же узлом. Данное сравнение происходит не на основе содержимого узлов.

Список параметров

node

Сравниваемый узел.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Проверяет, поддерживается ли заданное свойство в определенной версии

  • « DOMNode::isSameNode
  • DOMNode::lookupNamespaceURI »
  • PHP Manual
  • DOMNode
  • Проверяет, поддерживается ли заданное свойство в определенной версии

DOMNode::isSupported

(PHP 5, PHP 7)

DOMNode::isSupported — Проверяет, поддерживается ли заданное свойство в определенной версии

Описание

public bool DOMNode::isSupported ( string $feature , string $version )

Проверяет, поддерживается ли заданное свойство feature в определенной версии version.

Список параметров

feature

Название свойства для проверки. Список названий модулей приведен в примере к DOMImplementation::hasFeature().

version

Номер версии модуля (feature) для проверки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • DOMImplementation::hasFeature() - Тестирует реализацию специфичных возможностей объекта DOMImplementation


Получает URI пространства имен узла по префиксу

  • « DOMNode::isSupported
  • DOMNode::lookupPrefix »
  • PHP Manual
  • DOMNode
  • Получает URI пространства имен узла по префиксу

DOMNode::lookupNamespaceURI

(PHP 5, PHP 7)

DOMNode::lookupNamespaceURI — Получает URI пространства имен узла по префиксу

Описание

public string DOMNode::lookupNamespaceURI ( string $prefix )

Получает URI пространства имен узла по префиксу prefix.

Список параметров

prefix

Префикс пространства имен.

Возвращаемые значения

URI пространства имен узла.

Смотрите также

  • DOMNode::lookupPrefix() - Возвращает префикс пространства имен узла из URI пространства имен


Возвращает префикс пространства имен узла из URI пространства имен

  • « DOMNode::lookupNamespaceURI
  • DOMNode::normalize »
  • PHP Manual
  • DOMNode
  • Возвращает префикс пространства имен узла из URI пространства имен

DOMNode::lookupPrefix

(PHP 5, PHP 7)

DOMNode::lookupPrefix — Возвращает префикс пространства имен узла из URI пространства имен

Описание

public string DOMNode::lookupPrefix ( string $namespaceURI )

Возвращает префикс пространства имен узла из URI пространства имен.

Список параметров

namespaceURI

URI пространства имен.

Возвращаемые значения

Префикс пространства имен.

Смотрите также

  • DOMNode::lookupNamespaceURI() - Получает URI пространства имен узла по префиксу


Нормализует узел

  • « DOMNode::lookupPrefix
  • DOMNode::removeChild »
  • PHP Manual
  • DOMNode
  • Нормализует узел

DOMNode::normalize

(PHP 5, PHP 7)

DOMNode::normalize — Нормализует узел

Описание

public void DOMNode::normalize ( void )

Удаляет пустые текстовые узлы и объединяет соседние текстовые узлы в один узел и со всеми их дочерними узлами.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Смотрите также

  • » Спецификация DOM
  • DOMDocument::normalizeDocument() - Нормализует документ


Удаляет дочерний узел из списка потомков

  • « DOMNode::normalize
  • DOMNode::replaceChild »
  • PHP Manual
  • DOMNode
  • Удаляет дочерний узел из списка потомков

DOMNode::removeChild

(PHP 5, PHP 7)

DOMNode::removeChild — Удаляет дочерний узел из списка потомков

Описание

public DOMNode DOMNode::removeChild ( DOMNode $oldnode )

Эта функция удаляет дочерний узел из списка потомков.

Список параметров

oldnode

Удаляемый дочерний узел.

Возвращаемые значения

Функция возвращает удаляемый дочерний узел, если он может быть удален.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения.

DOM_NOT_FOUND

Возникает, если oldnode не является дочерним узлом данного узла.

Примеры

Следующий пример удаляет элемент chapter (глава) из XML-документа.

Пример #1 Удаление дочернего узла

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$book = $doc->documentElement;

// находим главу (chapter) и удалям из книги (book)
$chapter = $book->getElementsByTagName('chapter')->item(0);
$oldchapter = $book->removeChild($chapter);

echo $doc->saveXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<book id="listing">
 <title>My lists</title>

</book>

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMNode::replaceChild() - Заменяет дочерний узел


Заменяет дочерний узел

  • « DOMNode::removeChild
  • DOMNodeList »
  • PHP Manual
  • DOMNode
  • Заменяет дочерний узел

DOMNode::replaceChild

(PHP 5, PHP 7)

DOMNode::replaceChild — Заменяет дочерний узел

Описание

public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )

Функция заменяет дочерний узел oldnode новым узлом. Если узел newnode уже является дочерним, то он не будет добавлен во второй раз. Если замена прошла успешно, то будет возвращен старый (заменяемый) узел.

Список параметров

newnode

Новый узел. Должен быть частью целевого документа, то есть создан посредством одного из методов DOMDocument->createXXX() или импортирован в документ через DOMDocument::importNode.

oldnode

Старый узел.

Возвращаемые значения

Старый узел или FALSE в случае возникновения ошибки.

Ошибки

DOM_NO_MODIFICATION_ALLOWED_ERR

Возникает, если узел доступен только для чтения или предыдущий родитель вставляемого узла доступен только для чтения.

DOM_HIERARCHY_REQUEST_ERR

Возникает, если тип узла не поддерживает потомков типа, который имеет узел newnode, или же если добавляемый узел является предком целевого узла или им самим.

DOM_WRONG_DOCUMENT_ERR

Возникает, если newnode создан в другом документе, отличном от того, в котором был создан этот узел.

DOM_NOT_FOUND

Возникает, если oldnode не является дочерним узлом данного узла.

Смотрите также

  • DOMNode::appendChild() - Добавляет новый дочерний узел в конец списка потомков
  • DOMNode::removeChild() - Удаляет дочерний узел из списка потомков


Класс DOMNodeList

(PHP 5, PHP 7)

Обзор классов

DOMNodeList implements Traversable {
/* Свойства */
readonly public int $length ;
/* Методы */
DOMElement DOMNodelist::item ( int $index )
}

Свойства

length

Количество узлов, вошедших в список. Индексы в узлов списке лежат в промежутке от 0 до length - 1 включительно.

Смотрите также

  • » W3C спецификация NodeList

Содержание

  • DOMNodelist::item — Извлекает узел с заданным индексом


Извлекает узел с заданным индексом

  • « DOMNodeList
  • DOMNotation »
  • PHP Manual
  • DOMNodeList
  • Извлекает узел с заданным индексом

DOMNodelist::item

(PHP 5, PHP 7)

DOMNodelist::item — Извлекает узел с заданным индексом

Описание

DOMElement DOMNodelist::item ( int $index )

Извлекает узел с заданным индексом index из объекта класса DOMNodeList.

Подсказка

Если требуется узнать количество узлов в коллекции, используйте свойство length объекта класса DOMNodeList.

Список параметров

index

Индекс узла в коллекции.

Возвращаемые значения

Узел, находящийся в позиции index объекта DOMNodeList, или NULL, если этот индекс недопустим.

Примеры

Пример #1 Вывод содержимого таблицы

<?php

$doc = new DOMDocument;
$doc->load('book.xml');

$items = $doc->getElementsByTagName('entry');

for ($i = 0; $i < $items->length; $i++) {
    echo $items->item($i)->nodeValue . "\n";
}

?>

Также можно воспользоваться оператором foreach; в данном случае этот вариант является более удобным и предпочтительным:

<?php

foreach ($items as $item) {
    echo $item->nodeValue . "\n";
}

?>

Результат выполнения данного примера:

Title
Author
Language
ISBN
The Grapes of Wrath
John Steinbeck
en
0140186409
The Pearl
John Steinbeck
en
014017737X
Samarcande
Amine Maalouf
fr
2253051209


Класс DOMNotation

(PHP 5, PHP 7)

Обзор классов

DOMNotation extends DOMNode {
/* Свойства */
readonly public string $publicId ;
readonly public string $systemId ;
/* Наследуемые методы */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Свойства

publicId

systemId


Класс DOMProcessingInstruction

(PHP 5, PHP 7)

Обзор классов

DOMProcessingInstruction extends DOMNode {
/* Свойства */
readonly public string $target ;
public string $data ;
/* Методы */
public __construct ( string $name [, string $value ] )
/* Наследуемые методы */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Свойства

target

data

Содержание

  • DOMProcessingInstruction::__construct — Создает новый объект классаDOMProcessingInstruction


Создает новый объект классаDOMProcessingInstruction

  • « DOMProcessingInstruction
  • DOMText »
  • PHP Manual
  • DOMProcessingInstruction
  • Создает новый объект классаDOMProcessingInstruction

DOMProcessingInstruction::__construct

(PHP 5, PHP 7)

DOMProcessingInstruction::__construct — Создает новый объект классаDOMProcessingInstruction

Описание

public DOMProcessingInstruction::__construct ( string $name [, string $value ] )

Создает новый объект класса DOMProcessingInstruction. Этот объект будет доступен только для чтения. Он может быть добавлен в документ. Дополнительные узлы нельзя прикрепить к этому объекту, пока он присоединен к какому-либо документу. Для создания модифицируемого узла используйте DOMDocument::createProcessingInstruction.

Список параметров

name

Имя инструкции для обработчика.

value

Значение инструкции для обработчика.

Примеры

Пример #1 Создание объекта класса DOMProcessingInstruction

<?php

$dom = new DOMDocument('1.0', 'UTF-8');
$html = $dom->appendChild(new DOMElement('html'));
$body = $html->appendChild(new DOMElement('body'));
$pinode = new DOMProcessingInstruction('php', 'echo "Hello World"; ');
$body->appendChild($pinode);
echo $dom->saveXML();

?>

Результат выполнения данного примера:

<?xml version="1.0" encoding="UTF-8"?>
<html><body><?php echo "Hello World"; ?></body></html>

Смотрите также

  • DOMDocument::createProcessingInstruction() - Создает новый PI-узел


The DOMText class

(PHP 5, PHP 7)

Введение

Класс DOMText - это потомок класса DOMCharacterData и он содержит текстовой контент узлов, представленных объектами классов DOMElement или DOMAttr.

Обзор классов

DOMText extends DOMCharacterData {
/* Свойства */
readonly public string $wholeText ;
/* Методы */
public __construct ([ string $value ] )
public bool isWhitespaceInElementContent ( void )
public DOMText splitText ( int $offset )
/* Наследуемые методы */
public DOMNode DOMNode::appendChild ( DOMNode $newnode )
public string DOMNode::C14N ([ bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public int DOMNode::C14NFile ( string $uri [, bool $exclusive [, bool $with_comments [, array $xpath [, array $ns_prefixes ]]]] )
public DOMNode DOMNode::cloneNode ([ bool $deep ] )
public int DOMNode::getLineNo ( void )
public string DOMNode::getNodePath ( void )
public bool DOMNode::hasAttributes ( void )
public bool DOMNode::hasChildNodes ( void )
public DOMNode DOMNode::insertBefore ( DOMNode $newnode [, DOMNode $refnode ] )
public bool DOMNode::isDefaultNamespace ( string $namespaceURI )
public bool DOMNode::isSameNode ( DOMNode $node )
public bool DOMNode::isSupported ( string $feature , string $version )
public string DOMNode::lookupNamespaceURI ( string $prefix )
public string DOMNode::lookupPrefix ( string $namespaceURI )
public void DOMNode::normalize ( void )
public DOMNode DOMNode::removeChild ( DOMNode $oldnode )
public DOMNode DOMNode::replaceChild ( DOMNode $newnode , DOMNode $oldnode )
}

Свойства

wholeText

Содержит все смежные (не разделенные другими элементами, комментариями или инструкциями) текстовые узлы элемента.

Содержание

  • DOMText::__construct — Создает объект класса DOMText
  • DOMText::isWhitespaceInElementContent — Определяет, содержит ли текстовый узел пробел в содержимом
  • DOMText::splitText — Разделяет узел на два, начиная с заданной позиции


Создает объект класса DOMText

  • « DOMText
  • DOMText::isWhitespaceInElementContent »
  • PHP Manual
  • DOMText
  • Создает объект класса DOMText

DOMText::__construct

(PHP 5, PHP 7)

DOMText::__construct — Создает объект класса DOMText

Описание

public DOMText::__construct ([ string $value ] )

Создает новый экземпляр класса DOMText.

Список параметров

value

Значение текстового узла. Если значение не передано, будет создан пустой текстовый узел.

Примеры

Пример #1 Создание нового узла DOMText

<?php

$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom->appendChild(new DOMElement('root'));
$text = $element->appendChild(new DOMText('root value'));
echo $dom->saveXML(); /* <?xml version="1.0" encoding="iso-8859-1"?><root>root value</root> */

?>

Смотрите также

  • DOMDocument::createTextNode() - Создает новый текстовый узел


Определяет, содержит ли текстовый узел пробел в содержимом

  • « DOMText::__construct
  • DOMText::splitText »
  • PHP Manual
  • DOMText
  • Определяет, содержит ли текстовый узел пробел в содержимом

DOMText::isWhitespaceInElementContent

(PHP 5, PHP 7)

DOMText::isWhitespaceInElementContent — Определяет, содержит ли текстовый узел пробел в содержимом

Описание

public bool DOMText::isWhitespaceInElementContent ( void )

Определяет, есть ли пробелы в содержимом текстового узла или там пусто. Текстовые узлы могут содержать пробелы в своем содержимом в течение загрузки документа.

Возвращаемые значения

Возвращает TRUE, если узел содержит только пробелы. Возвращает FALSE, если в строке есть другие символы или строка пустая.


Разделяет узел на два, начиная с заданной позиции

  • « DOMText::isWhitespaceInElementContent
  • DOMXPath »
  • PHP Manual
  • DOMText
  • Разделяет узел на два, начиная с заданной позиции

DOMText::splitText

(PHP 5, PHP 7)

DOMText::splitText — Разделяет узел на два, начиная с заданной позиции

Описание

public DOMText DOMText::splitText ( int $offset )

Разделяет узел на два, вторая часть начинается с позиции offset, полученные узлы становятся братьями.

После разделения исходный узел будет содержать данные до позиции offset. Если исходный узел имеет родителя, то второй, созданный, узел станет следующим братом исходного узла. Если offset равно длине содержимого узла, новый узел все равно будет создан, но не будет содержать данных.

Список параметров

offset

Позиция, с которой узле будет разделен, начиная с 0.

Возвращаемые значения

Новый узел того же типа содержащий данные после offset.


Класс DOMXPath

(PHP 5, PHP 7)

Введение

Поддерживает XPath 1.0

Обзор классов

DOMXPath {
/* Свойства */
public DOMDocument $document ;
/* Методы */
public __construct ( DOMDocument $doc )
public mixed evaluate ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )
public DOMNodeList query ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )
public bool registerNamespace ( string $prefix , string $namespaceURI )
public void registerPhpFunctions ([ mixed $restrict ] )
}

Свойства

document

Содержание

  • DOMXPath::__construct — Создает новый объект класса DOMXPath
  • DOMXPath::evaluate — Вычисляет переданное XPath выражение и возвращает типизированный результат, если возможно
  • DOMXPath::query — Выполняет заданное XPath выражение
  • DOMXPath::registerNamespace — Ассоциирует пространство имен с объектом DOMXPath
  • DOMXPath::registerPhpFunctions — Регистрация функций PHP как XPath функций


Создает новый объект класса DOMXPath

  • « DOMXPath
  • DOMXPath::evaluate »
  • PHP Manual
  • DOMXPath
  • Создает новый объект класса DOMXPath

DOMXPath::__construct

(PHP 5, PHP 7)

DOMXPath::__construct — Создает новый объект класса DOMXPath

Описание

public DOMXPath::__construct ( DOMDocument $doc )

Создает новый объект класса DOMXPath.

Список параметров

doc

Объект класса DOMDocument связанный с DOMXPath.


Вычисляет переданное XPath выражение и возвращает типизированный результат, если возможно

  • « DOMXPath::__construct
  • DOMXPath::query »
  • PHP Manual
  • DOMXPath
  • Вычисляет переданное XPath выражение и возвращает типизированный результат, если возможно

DOMXPath::evaluate

(PHP 5 >= 5.1.0, PHP 7)

DOMXPath::evaluate — Вычисляет переданное XPath выражение и возвращает типизированный результат, если возможно

Описание

public mixed DOMXPath::evaluate ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )

Выполняет переданное XPath выражение expression и возвращает типизированный результат, если это возможно.

Список параметров

expression

XPath выражение для выполнения.

contextnode

Дополнительный параметр contextnode может быть использован для указания обрабатывать относительные XPath запросы. По умолчанию запросы выполняются относительно корневого элемента.

registerNodeNS

Посредством необязательного аргумента registerNodeNS можно отключить автоматическую регистрацию контекста узла.

Возвращаемые значения

Возвращает типизированный результат, если это возможно, либо объект DOMNodeList содержащий все узлы, соответствующие заданному XPath выражению expression.

Если значение аргумента expression построено неправильно или contextnode имеет неверное значение, DOMXPath::evaluate() вернет FALSE.

Список изменений

Версия | Описание
5.3.3 | Добавлен аргумент registerNodeNS.

Примеры

Пример #1 Определение количества всех английских книг

<?php

$doc = new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// запрос информации относительно узла tbody
$query = 'count(row/entry[. = "en"])';

$entries = $xpath->evaluate($query, $tbody);
echo "Всего английских книг $entries\n";

?>

Результат выполнения данного примера:

Всего английских книг 2

Смотрите также

  • DOMXPath::query() - Выполняет заданное XPath выражение


Выполняет заданное XPath выражение

  • « DOMXPath::evaluate
  • DOMXPath::registerNamespace »
  • PHP Manual
  • DOMXPath
  • Выполняет заданное XPath выражение

DOMXPath::query

(PHP 5, PHP 7)

DOMXPath::query — Выполняет заданное XPath выражение

Описание

public DOMNodeList DOMXPath::query ( string $expression [, DOMNode $contextnode [, bool $registerNodeNS = true ]] )

Выполняет заданный XPath запрос expression.

Список параметров

expression

XPath запрос.

contextnode

Дополнительный параметр contextnode может быть использован для указания обрабатывать относительные XPath запросы. По умолчанию запросы выполняются относительно корневого элемента.

registerNodeNS

Посредством необязательного аргумента registerNodeNS можно отключить автоматическую регистрацию контекста узла.

Возвращаемые значения

Возвращает объект DOMNodeList содержащий узлы, отвечающие условиям отбора в XPath expression. Любой запрос, не возвращающий узлов, вернет пустой объект DOMNodeList.

Если значение аргумента expression построено неправильно или contextnode имеет неверное значение, DOMXPath::query() вернет FALSE.

Список изменений

Версия | Описание
5.3.3 | Добавлен аргумент registerNodeNS.

Примеры

Пример #1 Получение списка всех книг на английском

<?php

$doc = new DOMDocument;

// нам не нужны проблемы с пробелами
$doc->preserveWhiteSpace = false;

$doc->Load('book.xml');

$xpath = new DOMXPath($doc);

// начинаем с корневого элемента
$query = '//book/chapter/para/informaltable/tgroup/tbody/row/entry[. = "en"]';

$entries = $xpath->query($query);

foreach ($entries as $entry) {
    echo "Найдена книга {$entry->previousSibling->previousSibling->nodeValue}," .
         " автор {$entry->previousSibling->nodeValue}\n";
}
?>

Результат выполнения данного примера:

Найдена книга The Grapes of Wrath, автор John Steinbeck
Найдена книга The Pearl, автор John Steinbeck

Можно также использовать аргумент contextnode для более короткой записи выражения:

<?php

$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// запрос относительно узла tbody
$query = 'row/entry[. = "en"]';

$entries = $xpath->query($query, $tbody);

foreach ($entries as $entry) {
    echo "Найдена книга {$entry->previousSibling->previousSibling->nodeValue}," .
         " автор {$entry->previousSibling->nodeValue}\n";
}
?>

Смотрите также

  • DOMXPath::evaluate() - Вычисляет переданное XPath выражение и возвращает типизированный результат, если возможно


Ассоциирует пространство имен с объектом DOMXPath

  • « DOMXPath::query
  • DOMXPath::registerPhpFunctions »
  • PHP Manual
  • DOMXPath
  • Ассоциирует пространство имен с объектом DOMXPath

DOMXPath::registerNamespace

(PHP 5, PHP 7)

DOMXPath::registerNamespace — Ассоциирует пространство имен с объектом DOMXPath

Описание

public bool DOMXPath::registerNamespace ( string $prefix , string $namespaceURI )

Ассоциирует URI пространства имен namespaceURI и префикс prefix с объектом DOMXPath.

Список параметров

prefix

Префикс.

namespaceURI

URI пространства имен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Регистрация функций PHP как XPath функций

  • « DOMXPath::registerNamespace
  • DOM Функции »
  • PHP Manual
  • DOMXPath
  • Регистрация функций PHP как XPath функций

DOMXPath::registerPhpFunctions

(PHP 5 >= 5.3.0, PHP 7)

DOMXPath::registerPhpFunctions — Регистрация функций PHP как XPath функций

Описание

public void DOMXPath::registerPhpFunctions ([ mixed $restrict ] )

Этот метод включает возможность использовать PHP функции в XPath выражениях.

Список параметров

restrict

Используйте этот аргумент для включения возможности вызывать из XPath выражений только определенные функции.

Этот аргумент может иметь тип string (имя функции) или array (массив имен функций).

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Дальнейшие примеры используют файл book.xml, содержимое которого следующее:

Пример #1 book.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
 <book>
  <title>PHP Basics</title>
  <author>Jim Smith</author>
  <author>Jane Smith</author>
 </book>
 <book>
  <title>PHP Secrets</title>
  <author>Jenny Smythe</author>
 </book>
 <book>
  <title>XML basics</title>
  <author>Joe Black</author>
 </book>
</books>

Пример #2 DOMXPath::registerPHPFunctions() с php:functionString

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Регистрация PHP: пространство имен (необходимо)
$xpath->registerNamespace("php", "http://php.net/xpath");

// Регистрация PHP функций (без ограничений)
$xpath->registerPHPFunctions();

// Вызов функции substr применительно к названию книги
$nodes = $xpath->query('//book[php:functionString("substr", title, 0, 3) = "PHP"]');

echo "Найдены книги {$nodes->length} начинающиеся со слова 'PHP':\n";
foreach ($nodes as $node) {
    $title  = $node->getElementsByTagName("title")->item(0)->nodeValue;
    $author = $node->getElementsByTagName("author")->item(0)->nodeValue;
    echo "$title автора $author\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Найдены книги (2) начинающиеся со слова 'PHP':
PHP Basics автора Jim Smith
PHP Secrets автора Jenny Smythe

Пример #3 DOMXPath::registerPHPFunctions() с php:function

<?php
$doc = new DOMDocument;
$doc->load('book.xml');

$xpath = new DOMXPath($doc);

// Регистрация PHP: пространство имен (необходимо)
$xpath->registerNamespace("php", "http://php.net/xpath");

// регистрация PHP функций (только has_multiple)
$xpath->registerPHPFunctions("has_multiple");

function has_multiple($nodes) {
    // возвращает true, если более одного автора
    return count($nodes) > 1;
}
// Отбор книг с двумя и более авторами
$books = $xpath->query('//book[php:function("has_multiple", author)]');

echo "Книги с двумя и более авторами:\n";
foreach ($books as $book) {
    echo $book->getElementsByTagName("title")->item(0)->nodeValue . "\n";
}

?>

Результатом выполнения данного примера будет что-то подобное:

Книги с двумя и более авторами:
PHP Basics

Смотрите также

  • DOMXPath::registerNamespace() - Ассоциирует пространство имен с объектом DOMXPath
  • DOMXPath::query() - Выполняет заданное XPath выражение
  • DOMXPath::evaluate() - Вычисляет переданное XPath выражение и возвращает типизированный результат, если возможно


DOM Функции

Содержание

  • dom_import_simplexml — Получает объект класса DOMElement из объекта класса SimpleXMLElement


Получает объект класса DOMElement из объекта класса SimpleXMLElement

  • « DOM Функции
  • libxml »
  • PHP Manual
  • DOM Функции
  • Получает объект класса DOMElement из объекта класса SimpleXMLElement

dom_import_simplexml

(PHP 5, PHP 7)

dom_import_simplexml — Получает объект класса DOMElement из объекта класса SimpleXMLElement

Описание

DOMElement dom_import_simplexml ( SimpleXMLElement $node )

Эта функция берет узел node класса SimpleXML и превращает его в узел DOMElement. Затем этот новый объект может быть использован как нативный узел DOMElement.

Список параметров

node

Узел SimpleXMLElement.

Возвращаемые значения

Добавленный узел DOMElement или FALSE в случае возникновения любых ошибок.

Примеры

Пример #1 Импорт SimpleXML в DOM с помощью функции dom_import_simplexml()

<?php

$sxe = simplexml_load_string('<books><book><title>чепуха</title></book></books>');

if ($sxe === false) {
    echo 'Ошибка при разборе документа';
    exit;
}

$dom_sxe = dom_import_simplexml($sxe);
if (!$dom_sxe) {
    echo 'Ошибка при преобразовании XML';
    exit;
}

$dom = new DOMDocument('1.0');
$dom_sxe = $dom->importNode($dom_sxe, true);
$dom_sxe = $dom->appendChild($dom_sxe);

echo $dom->saveXML();

?>

Смотрите также

  • simplexml_import_dom() - Получает объект класса SimpleXMLElement из узла DOM.


libxml

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • libXMLError — Класс libXMLError
  • libxml Функции
    • libxml_clear_errors — Очистка буфера ошибок libxml
    • libxml_disable_entity_loader — Отключение возможности загрузки сущностей из внешних источников
    • libxml_get_errors — Получение массива произошедших ошибок
    • libxml_get_last_error — Извлечение последней ошибки из libxml
    • libxml_set_external_entity_loader — Changes the default external entity loader
    • libxml_set_streams_context — Установка контекста потока для следующей загрузки или записи документа посредством libxml
    • libxml_use_internal_errors — Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю


Введение

Эти функции/константы доступны, начиная с PHP 5.1.0, указанные ниже расширения ядра ссылаются на это libxml расширение: DOM, libxml, SimpleXML, SOAP, WDDX, XSL, XML, XMLReader, XMLRPC и XMLWriter.


  • « Установка и настройка
  • Установка »
  • PHP Manual
  • Установка и настройка
  • Требования

Требования

Это расширение требует для работы » libxml >= 2.6.0.


Установка

Расширение libxml включено по умолчанию, но может быть отключено посредством директивы --disable-libxml .

Необязательная директива --with-libxml-dir используется для задания расположения libxml в системах, на которых PHP скомпилирован, если не директива не используется, поиск будет производиться только по стандартным путям. configure процесс производит поиск libxml (особенно, xml2-config) по путям в следующем порядке:

  1. Расположение ([DIR]) заданное с помощью директивы --with-libxml-dir ([DIR]=/bin/xml2-config)

  2. /usr/local/bin/xml2-config

  3. /usr/bin/xml2-config

Если configure не найдет xml2-config в директории, заданной директивой --with-libxml-dir , он продолжит поиск по стандартным путям.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

LIBXML_BIGLINES (integer)
Позволяет корректно сообщать о номерах строк больше 65535.

Замечание:

Доступно начиная с PHP 7.0.0 с Libxml >= 2.9.0

LIBXML_COMPACT (integer)
Активирует оптимизацию выделения памяти для небольших узлов. Это может повысить быстродействие приложения без внесения изменений в коде.

Замечание:

Доступна только в Libxml >= 2.6.21

LIBXML_DTDATTR (integer)
DTD-атрибуты по умолчанию
LIBXML_DTDLOAD (integer)
Загрузка внешнего подмножества
LIBXML_DTDVALID (integer)
Проверка корректности документа с помощью DTD
LIBXML_HTML_NOIMPLIED (integer)
Устанавливает флаг HTML_PARSE_NOIMPLIED, который отключает автоматическое добавление недостающих html/body... элементов.

Замечание:

Доступно только в Libxml >= 2.7.7 (начиная с PHP >= 5.4.0)

LIBXML_HTML_NODEFDTD (integer)
Устанавливает флаг HTML_PARSE_NODEFDTD, который предотвращает добавление стандартного doctype, если он не был найден.

Замечание:

Доступно только в Libxml >= 2.7.8 (начиная с >= 5.4.0)

LIBXML_NOBLANKS (integer)
Удаление пустых узлов
LIBXML_NOCDATA (integer)
Объединить CDATA как текстовые узлы
LIBXML_NOEMPTYTAG (integer)
Разворачивать пустые тэги (например <br/> в <br></br>)

Замечание:

Эта настройка доступна на данный момент только в функциях DOMDocument::save и DOMDocument::saveXML.

LIBXML_NOENT (integer)
Замещение сущностей
LIBXML_NOERROR (integer)
Запретить отчеты об ошибках
LIBXML_NONET (integer)
Отключить доступ к сети во время загрузки документов
LIBXML_NOWARNING (integer)
Запретить предупреждения
LIBXML_NOXMLDECL (integer)
Убрать XML объявление при сохранении документа

Замечание:

Доступна только в Libxml >= 2.6.21

LIBXML_NSCLEAN (integer)
Удалить лишние объявления пространств имен
LIBXML_PARSEHUGE (integer)
Установить флаг XML_PARSE_HUGE, который отключает жестко заданный лимит в парсере. Это затрагивает как лимиты максимальной глубины документа или рекурсии элементов, так и лимиты размеров текстовых элементов.

Замечание:

Доступно только в Libxml >= 2.7.0 (начиная с PHP >= 5.3.2 и PHP >= 5.2.12)

LIBXML_PEDANTIC (integer)
Устанавливает флаг XML_PARSE_PEDANTIC, который включает педантичный отчет об ошибках.

Замечание:

Доступно с PHP >= 5.4.0

LIBXML_XINCLUDE (integer)
Реализовать XInclude замещение
LIBXML_ERR_ERROR (integer)
Устранимая ошибка
LIBXML_ERR_FATAL (integer)
Фатальная ошибка
LIBXML_ERR_NONE (integer)
Нет ошибок
LIBXML_ERR_WARNING (integer)
Простое предупреждение
LIBXML_VERSION (integer)
Версия libxml в виде 20605 или 20617
LIBXML_DOTTED_VERSION (string)
Версия libxml в виде 2.6.5 или 2.6.17
LIBXML_SCHEMA_CREATE (integer)
Создает со значением по умолчанию или фиксированные узлы при проверке XSD схемы

Замечание:

Доступно только в Libxml >= 2.6.14 (в PHP >= 5.5.2)


Класс libXMLError

(PHP 5 >= 5.1.0, PHP 7)

Введение

Содержит различную информацию об ошибках, выбрасываемых libxml. Коды ошибок описаны в официальной » xmlError API документации.

Обзор классов

libXMLError {
/* Свойства */
public int $level ;
public int $code ;
public int $column ;
public string $message ;
public string $file ;
public int $line ;
}

Свойства

level

Важность ошибки (одна из следующих констант: LIBXML_ERR_WARNING, LIBXML_ERR_ERROR или LIBXML_ERR_FATAL)

code

Код ошибки

column

Столбец, в котором произошла ошибка.

Замечание:

Это свойство реализовано в libxml не до конца, поэтому в большинстве случаев будет возвращаться 0.

message

Сообщение об ошибке, если есть.

file

Имя файла либо пустая строка, если XML загружался из строки.

line

Строка, в которой произошла ошибка.


libxml Функции

Содержание

  • libxml_clear_errors — Очистка буфера ошибок libxml
  • libxml_disable_entity_loader — Отключение возможности загрузки сущностей из внешних источников
  • libxml_get_errors — Получение массива произошедших ошибок
  • libxml_get_last_error — Извлечение последней ошибки из libxml
  • libxml_set_external_entity_loader — Changes the default external entity loader
  • libxml_set_streams_context — Установка контекста потока для следующей загрузки или записи документа посредством libxml
  • libxml_use_internal_errors — Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю


Очистка буфера ошибок libxml

  • « libxml Функции
  • libxml_disable_entity_loader »
  • PHP Manual
  • libxml Функции
  • Очистка буфера ошибок libxml

libxml_clear_errors

(PHP 5 >= 5.1.0, PHP 7)

libxml_clear_errors — Очистка буфера ошибок libxml

Описание

void 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)

libxml_disable_entity_loader — Отключение возможности загрузки сущностей из внешних источников

Описание

bool libxml_disable_entity_loader ([ bool $disable = true ] )

Отключение/включение возможности загружать внешние сущности.

Список параметров

disable

Отключение (TRUE) или включение (FALSE) libxml расширений (также как в DOM, XMLWriter и XMLReader) для загрузки внешних сущностей.

Возвращаемые значения

Возвращает предыдущее значение.

Смотрите также

  • libxml_use_internal_errors() - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
  • Константа LIBXML_NONET


Получение массива произошедших ошибок

  • « libxml_disable_entity_loader
  • libxml_get_last_error »
  • PHP Manual
  • libxml Функции
  • Получение массива произошедших ошибок

libxml_get_errors

(PHP 5 >= 5.1.0, PHP 7)

libxml_get_errors — Получение массива произошедших ошибок

Описание

array libxml_get_errors ( void )

Получение массива произошедших ошибок.

Возвращаемые значения

Возвращает массив объектов LibXMLError, если в буфере есть ошибки, либо пустой массив в противном случае.

Примеры

Пример #1 Пример использования libxml_get_errors()

Этот пример демонстрирует, как создать простой обработчик ошибок libxml.

<?php

libxml_use_internal_errors(true);

$xmlstr = <<< XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <titles>PHP: Behind the Parser</title>
 </movie>
</movies>
XML;

$doc = simplexml_load_string($xmlstr);
$xml = explode("\n", $xmlstr);

if ($doc === false) {
    $errors = libxml_get_errors();

    foreach ($errors as $error) {
        echo display_xml_error($error, $xml);
    }

    libxml_clear_errors();
}

function display_xml_error($error, $xml)
{
    $return  = $xml[$error->line - 1] . "\n";
    $return .= str_repeat('-', $error->column) . "^\n";

    switch ($error->level) {
        case LIBXML_ERR_WARNING:
            $return .= "Warning $error->code: ";
            break;
         case LIBXML_ERR_ERROR:
            $return .= "Error $error->code: ";
            break;
        case LIBXML_ERR_FATAL:
            $return .= "Fatal Error $error->code: ";
            break;
    }

    $return .= trim($error->message) .
               "\n  Line: $error->line" .
               "\n  Column: $error->column";

    if ($error->file) {
        $return .= "\n  File: $error->file";
    }

    return "$return\n\n--------------------------------------------\n\n";
}

?>

Результат выполнения данного примера:

  <titles>PHP: Behind the Parser</title>
----------------------------------------------^
Fatal Error 76: Opening and ending tag mismatch: titles line 4 and title
  Line: 4
  Column: 46

--------------------------------------------

Смотрите также

  • libxml_get_last_error() - Извлечение последней ошибки из libxml
  • libxml_clear_errors() - Очистка буфера ошибок libxml


Извлечение последней ошибки из libxml

  • « libxml_get_errors
  • libxml_set_external_entity_loader »
  • PHP Manual
  • libxml Функции
  • Извлечение последней ошибки из libxml

libxml_get_last_error

(PHP 5 >= 5.1.0, PHP 7)

libxml_get_last_error — Извлечение последней ошибки из libxml

Описание

LibXMLError libxml_get_last_error ( void )

Извлечение последней ошибки из libxml.

Возвращаемые значения

Возвращает объект LibXMLError, если в буфере есть ошибки, либо FALSE в противном случае.

Смотрите также

  • libxml_get_errors() - Получение массива произошедших ошибок
  • libxml_clear_errors() - Очистка буфера ошибок libxml


Changes the default external entity loader

  • « libxml_get_last_error
  • libxml_set_streams_context »
  • PHP Manual
  • libxml Функции
  • Changes the default external entity loader

libxml_set_external_entity_loader

(PHP 5 >= 5.4.0, PHP 7)

libxml_set_external_entity_loader — Changes the default external entity loader

Описание

void libxml_set_external_entity_loader ( callable $resolver_function )

Changes the default external entity loader.

Список параметров

resolver_function

A callable that takes three arguments. Two strings, a public id and system id, and a context (an array with four keys) as the third argument. This callback should return a resource, a string from which a resource can be opened, or NULL.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 libxml_set_external_entity_loader() example

<?php
$xml = <<<XML
<!DOCTYPE foo PUBLIC "-//FOO/BAR" "http://example.com/foobar">
<foo>bar</foo>
XML;

$dtd = <<<DTD
<!ELEMENT foo (#PCDATA)>
DTD;

libxml_set_external_entity_loader(
    function ($public, $system, $context) use($dtd) {
        var_dump($public);
        var_dump($system);
        var_dump($context);
        $f = fopen("php://temp", "r+");
        fwrite($f, $dtd);
        rewind($f);
        return $f;
    }
);

$dd = new DOMDocument;
$r  = $dd->loadXML($xml);

var_dump($dd->validate());
?>

Результат выполнения данного примера:

string(10) "-//FOO/BAR"
string(25) "http://example.com/foobar"
array(4) {
    ["directory"]    => NULL
    ["intSubName"]   => NULL
    ["extSubURI"]    => NULL
    ["extSubSystem"] => NULL
}
bool(true)

Смотрите также

  • libxml_disable_entity_loader() - Отключение возможности загрузки сущностей из внешних источников


Установка контекста потока для следующей загрузки или записи документа посредством libxml

  • « libxml_set_external_entity_loader
  • libxml_use_internal_errors »
  • PHP Manual
  • libxml Функции
  • Установка контекста потока для следующей загрузки или записи документа посредством libxml

libxml_set_streams_context

(PHP 5, PHP 7)

libxml_set_streams_context — Установка контекста потока для следующей загрузки или записи документа посредством libxml

Описание

void libxml_set_streams_context ( resource $streams_context )

Установка контекста потока для следующей загрузки или записи документа посредством libxml.

Список параметров

streams_context

Ресурс контекста потока (созданный функцией stream_context_create())

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования libxml_set_streams_context()

<?php

$opts = array(
    'http' => array(
        'user_agent' => 'PHP libxml agent',
    )
);

$context = stream_context_create($opts);
libxml_set_streams_context($context);

// request a file through HTTP
$doc = DOMDocument::load('http://www.example.com/file.xml');

?>

Смотрите также

  • stream_context_create() - Создаёт контекст потока


Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю

  • « libxml_set_streams_context
  • SDO »
  • PHP Manual
  • libxml Функции
  • Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю

libxml_use_internal_errors

(PHP 5 >= 5.1.0, PHP 7)

libxml_use_internal_errors — Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю

Описание

bool libxml_use_internal_errors ([ bool $use_errors = false ] )

libxml_use_internal_errors() позволяет отключить стандартные ошибки libxml и включить пользовательскую обработку ошибок.

Список параметров

use_errors

Включает (TRUE) пользовательскую обработку ошибок или отключает ее (FALSE). Отключение также очищает все текущие ошибки libxml.

Возвращаемые значения

Эта функция возвращает предыдущее значение параметра use_errors.

Примеры

Пример #1 Пример использования libxml_use_internal_errors()

Этот пример демонстрирует основное использование ошибок libxml и значение, которое возвращает эта функция.

<?php

// включение обработки ошибок пользователем
var_dump(libxml_use_internal_errors(true));

// загрузка документа
$doc = new DOMDocument;

if (!$doc->load('file.xml')) {
    foreach (libxml_get_errors() as $error) {
        // handle errors here
    }

    libxml_clear_errors();
}

?>

Результат выполнения данного примера:

bool(false)

Смотрите также

  • libxml_clear_errors() - Очистка буфера ошибок libxml
  • libxml_get_errors() - Получение массива произошедших ошибок


Service Data Objects

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Limitations
  • Примеры
    • Basic usage
    • Setting and Getting Property Values
    • Working with Sequenced Data Objects
    • Reflecting on Service Data Objects
  • SDO Функции
    • SDO_DAS_ChangeSummary::beginLogging — Begin change logging
    • SDO_DAS_ChangeSummary::endLogging — End change logging
    • SDO_DAS_ChangeSummary::getChangeType — Get the type of change made to an SDO_DataObject
    • SDO_DAS_ChangeSummary::getChangedDataObjects — Get the changed data objects from a change summary
    • SDO_DAS_ChangeSummary::getOldContainer — Get the old container for a deleted SDO_DataObject
    • SDO_DAS_ChangeSummary::getOldValues — Get the old values for a given changed SDO_DataObject
    • SDO_DAS_ChangeSummary::isLogging — Test to see whether change logging is switched on
    • SDO_DAS_DataFactory::addPropertyToType — Adds a property to a type
    • SDO_DAS_DataFactory::addType — Add a new type to a model
    • SDO_DAS_DataFactory::getDataFactory — Get a data factory instance
    • SDO_DAS_DataObject::getChangeSummary — Get a data object's change summary
    • SDO_DAS_Setting::getListIndex — Get the list index for a changed many-valued property
    • SDO_DAS_Setting::getPropertyIndex — Get the property index for a changed property
    • SDO_DAS_Setting::getPropertyName — Get the property name for a changed property
    • SDO_DAS_Setting::getValue — Get the old value for the changed property
    • SDO_DAS_Setting::isSet — Test whether a property was set prior to being modified
    • SDO_DataFactory::create — Create an SDO_DataObject
    • SDO_DataObject::clear — Clear an SDO_DataObject's properties
    • SDO_DataObject::createDataObject — Create a child SDO_DataObject
    • SDO_DataObject::getContainer — Get a data object's container
    • SDO_DataObject::getSequence — Get the sequence for a data object
    • SDO_DataObject::getTypeName — Return the name of the type for a data object.
    • SDO_DataObject::getTypeNamespaceURI — Return the namespace URI of the type for a data object.
    • SDO_Exception::getCause — Get the cause of the exception.
    • SDO_List::insert — Insert into a list
    • SDO_Model_Property::getContainingType — Get the SDO_Model_Type which contains this property
    • SDO_Model_Property::getDefault — Get the default value for the property
    • SDO_Model_Property::getName — Get the name of the SDO_Model_Property
    • SDO_Model_Property::getType — Get the SDO_Model_Type of the property
    • SDO_Model_Property::isContainment — Test to see if the property defines a containment relationship
    • SDO_Model_Property::isMany — Test to see if the property is many-valued
    • SDO_Model_ReflectionDataObject::__construct — Construct an SDO_Model_ReflectionDataObject
    • SDO_Model_ReflectionDataObject::export — Get a string describing the SDO_DataObject.
    • SDO_Model_ReflectionDataObject::getContainmentProperty — Get the property which defines the containment relationship to the data object
    • SDO_Model_ReflectionDataObject::getInstanceProperties — Get the instance properties of the SDO_DataObject
    • SDO_Model_ReflectionDataObject::getType — Get the SDO_Model_Type for the SDO_DataObject
    • SDO_Model_Type::getBaseType — Get the base type for this type
    • SDO_Model_Type::getName — Get the name of the type
    • SDO_Model_Type::getNamespaceURI — Get the namespace URI of the type
    • SDO_Model_Type::getProperties — Get the SDO_Model_Property objects defined for the type
    • SDO_Model_Type::getProperty — Get an SDO_Model_Property of the type
    • SDO_Model_Type::isAbstractType — Test to see if this SDO_Model_Type is an abstract data type
    • SDO_Model_Type::isDataType — Test to see if this SDO_Model_Type is a primitive data type
    • SDO_Model_Type::isInstance — Test for an SDO_DataObject being an instance of this SDO_Model_Type
    • SDO_Model_Type::isOpenType — Test to see if this type is an open type
    • SDO_Model_Type::isSequencedType — Test to see if this is a sequenced type
    • SDO_Sequence::getProperty — Return the property for the specified sequence index.
    • SDO_Sequence::insert — Insert into a sequence
    • SDO_Sequence::move — Move an item to another sequence position


Введение

Service Data Objects (SDOs) enable PHP applications to work with data from different sources (like a database query, an XML file, and a spreadsheet) using a single interface.

Each different kind of data source requires a Data Access Service (DAS) to provide access to the data in the data source. In your PHP application, you use a DAS to create an SDO instance that represents some data in the data source. You can then set and get values in the SDO instance using the standard SDO interface. Finally, you use a DAS to write the modified data back to a data source, typically the same one.

See the list of Data Access Services for details on those currently available. In addition to the provided DASs, SDO also provides interfaces to enable others to be implemented (see the section on SDO Data Access Services Interface for more details).

This extension is derived from concepts taken from the » Service Data Objects specification. It includes a version of the » Apache Tuscany SDO for C++ project.

The Structure of a Service Data Object

A Service Data Object instance is made up of a tree of data objects. The tree is defined by containment relationships between the data objects. For example, a Company data object might consist of a number of Department data objects and therefore the Company would have a containment relationship to the Departments.

An SDO may also have non-containment references between data objects in the tree. For example, one Employee data object might reference another Employee to identify a career mentor.

As well as data objects referencing each other, they can also have primitive properties. For example, the Company data object might have a property called "name" of type string, for holding the name of the company (for example, "Acme").

Each of these properties of a data object - containment relationships, non-containment references, or primitive properties - may be many-valued or single-valued. In the above examples, Departments is many-valued and the Company name is single-valued.

In PHP, each SDO data object is represented as a PHP object. The properties of the data object can be accessed using either object syntax or associative array syntax. We'll see some examples of this later.


Требования

The SDO extension requires PHP 5.1.0 or higher. It also requires the libxml2 library. Normally libxml2 will already be installed, but if not, it can be downloaded from » http://www.xmlsoft.org/.


Установка

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/sca_sdo.

Замечание:

Earlier versions of the SDO extension required a separate shared library for the XML DAS. This is now obsolete and any references to php_sdo_das_xml.dll or sdo_das_xml.so should be removed from your php.ini.

Unix systems

  1. The three SDO components - the SDO core, the XML DAS and the Relational DAS - are packaged together with Service Component Architecture (SCA) into one PECL project, SCA_SDO, so you can download SCA and all three parts of SDO with the command:

    pecl install SCA_SDO

    This command will build the SDO shared library as well as installing the PHP files that make up SCA and the SDO Relational DAS.

    If you want to use the latest beta version, then instead run:

    pecl install SCA_SDO-beta

  2. The pecl command automatically installs the SDO module into your PHP extensions directory. To enable the SDO extension you must add the following line to php.ini:

    extension=sdo.so

    For more information about building PECL packages, consult the PECL installation section of the manual.

Building SDO on Linux

This section describes how to build the SDO core and XML DAS on Linux. You would only need to know how to do this if you wish to build a recent version that you have checked out of SVN.

  1. Change to the main extension directory: cd < wherever your sdo code is >

  2. Run phpize, which will set up the environment to compile SDO.

  3. Next, run ./configure; make; make install. Please note, you may need to login as root to install the extension.

  4. Make sure that the module is loaded by PHP, by adding extension=sdo.so to your php.ini file.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

SDO_DAS_ChangeSummary::NONE=0 (integer)
Represents a change type of 'none'.
SDO_DAS_ChangeSummary::MODIFICATION=1 (integer)
Represents a change type of 'modification'.
SDO_DAS_ChangeSummary::ADDITION=2 (integer)
Represents a change type of 'addition'.
SDO_DAS_ChangeSummary::DELETION=3 (integer)
Represents a change type of 'deletion'.


Limitations

Implementation Limitations

The following are limitations in the current SDO implementation:

  1. There is no support for multi-byte character sets. This will be considered, depending on community requirements, in a Unicode-enabled version of PHP.

SDO Limitations

The following SDO 2.0 concepts are not supported in the current PHP implementation. It is not necessarily the case that these will all be added over time. Their inclusion will depend on community requirements.

  1. Bi-directional relationships.

  2. Type and property alias names.

  3. Read-only properties.

  4. The Helper classes defined in SDO 2.0 are not directly implemented. However equivalent function is provided in a more natural way for PHP. For example the function of CopyHelper::copy() is provided by applying the PHP clone keyword to a data object.


Примеры

Содержание

  • Basic usage
  • Setting and Getting Property Values
  • Working with Sequenced Data Objects
  • Reflecting on Service Data Objects


Basic usage

The examples below assume an SDO created with the schema and instance information shown below, using the XML Data Access Service.

The instance document below describes a single company, called 'MegaCorp', which contains a single department, called 'Advanced Technologies'. The Advanced Technologies department contains three employees. The company employeeOfTheMonth is referencing the second employee, 'Jane Doe'.

<?xml version="1.0" encoding="UTF-8" ?>
<company xmlns="companyNS" name="MegaCorp"
  employeeOfTheMonth="E0003">
  <departments name="Advanced Technologies" location="NY" number="123">
    <employees name="John Jones" SN="E0001"/>
    <employees name="Jane Doe" SN="E0003"/>
    <employees name="Al Smith" SN="E0004" manager="true"/>
  </departments>
</company>

The root element of the schema is a company. The company contains departments, and each department contains employees. Each element has a number of attributes to store things like name, serial number, and so on. Finally, the company also has an IDREF attribute which identifies one of the employees as the 'employeeOfTheMonth'.

<xsd:schema
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:sdo="commonj.sdo"
  xmlns:sdoxml="commonj.sdo/xml"
  xmlns:company="companyNS"
  targetNamespace="companyNS">
  <xsd:element name="company" type="company:CompanyType"/>
  <xsd:complexType name="CompanyType">
    <xsd:sequence>
      <xsd:element name="departments" type="company:DepartmentType"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="employeeOfTheMonth" type="xsd:IDREF"
      sdoxml:propertyType="company:EmployeeType"/>
  </xsd:complexType>
  <xsd:complexType name="DepartmentType">
    <xsd:sequence>
      <xsd:element name="employees" type="company:EmployeeType"
        maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="location" type="xsd:string"/>
    <xsd:attribute name="number" type="xsd:int"/>
  </xsd:complexType>
  <xsd:complexType name="EmployeeType">
    <xsd:attribute name="name" type="xsd:string"/>
    <xsd:attribute name="SN" type="xsd:ID"/>
    <xsd:attribute name="manager" type="xsd:boolean"/>
  </xsd:complexType>
</xsd:schema>

The XML Data Access Service maps the schema to an SDO. Attributes such as "name" become primitive properties, the sequence of employees becomes a many-valued containment relationship, and so on. Note that the containment relationships are expressed as one complex type within another, whereas non-containment references are expressed in terms of ID and IDREF, with a special sdoxml:propertyType attribute specifying the type of the non-containment reference.


Setting and Getting Property Values

The following examples assume $company is the root of a tree of data objects created from the schema and instance document shown above.

Пример #1 Access via property name

Data object properties can be accessed using the object property access syntax. The following sets the company name to 'Acme'.

<?php
$company->name = 'Acme';
?>

Пример #2 Access via property name as array index

We can also access properties using associative array syntax. The simplest form of this uses the property name as the array index. For example, the following sets the company name and gets the employeeOfTheMonth.

<?php
$company['name'] = 'UltraCorp';
$eotm = $company['employeeOfTheMonth'];
?>

Пример #3 Data Object iteration

We can iterate over the properties of a data object using foreach. The following iterates over the properties of the employee of the month.

<?php
  $eotm = $company->employeeOfTheMonth;
  foreach ($eotm as $name => $value) {
      echo "$name: $value\n";
  }
?>

which will output:

name: Jane Doe
SN: E0003

The 'manager' property is not output, because it has not been set.

Пример #4 Access many-valued property by name

Many-valued data object properties can also be accessed using the object property name syntax. The following gets the list of departments.

<?php
$departments = $company->departments;
?>

Пример #5 Many-valued element access

We can access individual elements of many-valued properties using array syntax. The following accesses the first department in the company.

<?php
$ad_tech_dept = $company->departments[0];
?>

Пример #6 Many-valued property iteration

Many-valued properties can also be iterated over using foreach. The following iterates over the company's departments.

<?php
  foreach ($company->departments as $department) {
    // ...
  }
?>

Each iteration will assign the next department in the list to the variable $department.

Пример #7 Chained property access

We can chain property references on a single line. The following sets and gets the name of the first department.

<?php
  $company->departments[0]->name = 'Emerging Technologies';
  $dept_name = $company->departments[0]->name;
?>

Using the associative array syntax, this is equivalent to

<?php
  $company['departments'][0]['name'] = 'Emerging Technologies';
  $dept_name = $company['departments'][0]['name'];
?>

In either case, the dept_name variable is set to 'Emerging Technologies'.

Пример #8 XPath navigation

The associative array index can be an XPath-like expression. Valid expressions are defined by an augmented sub-set of XPath.

Two forms of indexing into many-valued properties are supported. The first is the standard XPath array syntax with the indexing starting at one, the second is an SDO extension to XPath with an index starting at zero. The standard syntax is:

<?php
  $jane_doe = $company["departments[1]/employees[2]"];
?>

and the SDO XPath extension syntax is:

<?php
  $jane_doe = $company["departments.0/employees.1"];
?>

Both these examples get the second employee from the first department.

Пример #9 XPath querying

We can use XPath to query and identify parts of a data object based on instance data. The following retrieves the manager from the 'Advanced Technologies' department.

<?php
 $ad_tech_mgr =
  $company["departments[name='Advanced Technologies']/employees[manager=true]"];
?>

Пример #10 Creating child data objects

A data object can be a factory for its child data objects. A child data object is automatically part of the data graph. The following add a new employee to the 'Advanced Technologies' department.

<?php
  $ad_tech_dept = $company["departments[name='Advanced Technologies']"];
  $new_hire = $ad_tech_dept->createDataObject('employees');
  $new_hire->name = 'John Johnson';
  $new_hire->SN = 'E0005';
  $new_hire->manager = false;
?>

Пример #11 Unset a primitive property

We can use the isset() and unset() functions to test and remove items from the data object.

The following clears the name of the first department.

<?php
  unset($company->departments[0]->name);
?>

Пример #12 Unset a data object

unset can also be used to remove a data object from the tree. The following example shows John Jones leaving the company.

<?php
  unset($company->departments[0]->employees[0]);
?>

Пример #13 Unset a referenced data object

The following removes the 'employeeOfTheMonth' from the company. If this were a containment relationship then the employee would be removed from the company (probably not a good idea to sack your best employee each month!), but since this is a non-containment reference, the employee being referenced will remain in the department in the company, but will no longer be accessible via the employeeOfTheMonth property.

<?php
  if (isset($company->employeeOfTheMonth)) {
    unset($company->employeeOfTheMonth);
  }
?>

Пример #14 Access via property index

Data object properties can be accessed via their property index using array syntax. The property index is the position at which the property's definition appears in the model (in this case the xml schema). We can see from the schema listing above that the company name attribute is the second company property (the SDO interface makes no distinction between XML attributes and elements). The following sets the company name to 'Acme', with the same result as Access via property name

<?php
  $company[1] = 'Acme';
?>

Using the index directly in this way is likely to be fragile. Normally the property name syntax should be preferred, but the property index may be required in special cases.


Working with Sequenced Data Objects

Sequenced data objects are SDOs which can track property ordering across the properties of a data object. They can also contain unstructured text elements (text element which do not belong to any of the SDO's properties). Sequenced data objects are useful for working with XML documents which allow unstructured text (i.e. mixed=true) or if the elements can be interleaved (

<A/><B/><A/>
). This can occur for example when the schema defines maxOccurs>1 on a element which is a complexType with a choice order indicator.

The examples below assume an SDO created with the following schema and instance information, using the XML Data Access Service.

The schema below describes the format of a letter. The letter can optionally contain three properties; date, firstName, and lastName. The schema states mixed="true" which means that unstructured text can be interspersed between the three properties.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:letter="http://letterSchema"
  targetNamespace="http://letterSchema">
  <xsd:element name="letters" type="letter:FormLetter"/>
  <xsd:complexType name="FormLetter" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="firstName" minOccurs="0" type="xsd:string"/>
      <xsd:element name="lastName" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

The following is an instance letter document. It contains the three letter properties; date, firstName and lastName, and has unstructured text elements for the address and letter body.

<letter:letters xmlns:letter="http://letterSchema">
  <date>March 1, 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Casy</firstName>
  <lastName>Crocodile</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</letter:letters>

When loaded, the letter data object will have the sequence and property indices shown in the table below:

Sequence Index | Property Index:Name | Value
0 | 0:date | March 1, 2005
1 | - | Mutual of Omaha
2 | - | Wild Kingdom, USA
3 | - | Dear
4 | 1:firstName | Casy
5 | 2:lastName | Crocodile
6 | - | Please buy more shark repellent.
7 | - | Your premium is past due.

To ensure sequence indices are maintained, sequenced data objects should be manipulated through the SDO_Sequence interface. This allows the data object's instance data to be manipulated in terms of the sequence index as opposed to the property index (shown in the table above). The following examples assume the letter instance has been loaded into a data object referenced by the variable $letter.

Пример #1 Getting the SDO_Sequence interface

We obtain a data object's sequence using the getSequence() method. The follow gets the sequence for the letter data object.

<?php
  $letter_seq = $letter->getSequence();
?>

All subsequent examples assume that the $letter_seq variable has been assigned the sequence for the letter data object.

Пример #2 Get/set sequence values

We can get and set individual values (including unstructured text) using the sequence index. The following sets the firstName to 'Snappy' and gets the last sequence values (the unstructured text, 'Your premium is past due.').

<?php
  $letter_seq[4] = 'Snappy';
  $text = $letter_seq[count($letter_seq) - 1];
?>

Пример #3 Sequence iteration

We can iterate through the individual sequence values using foreach. The following runs through the individual values in sequence order.

<?php
foreach ($letter->getSequence() as $value) {
    // ...
}
?>

Пример #4 Sequence versus Data Object

Setting values through the data object interface may result in the value not being part of the sequence. A value set through the data object will only be accessible through the sequence if the property was already part of the sequence. The following example sets the lastName through the data object and gets it through the sequence. This is fine because lastName already exists in the sequence. If it had not previously been set, then lastName would be set to 'Smith', but would not be part of the sequence.

<?php
  $letter[2] = 'Smith';
  $last_name = $letter_seq[5];
?>

Пример #5 Adding to a sequence

We can add new values to a sequence using the SDO_Sequence::insert() method. The following examples assume that the 'firstName' and 'lastName' properties are initially unset.

<?php
  // Append a firstName value to the sequence
  // value: 'Smith'
  // sequence index: NULL (append)
  // propertyIdentifier: 1 (firtName property index)
  $letter_seq->insert('Smith', NULL, 1);

  // Append a lastName value to the sequence
  // value: 'Jones'
  // sequence index: NULL (append)
  // propertyIdentifier: 'lastName' (lastName property name)
  $letter_seq->insert('Jones', NULL, 'lastName');

  // Append unstructured text
  // value: 'Cancel Subscription.'
  // sequence index: absent (append)
  // propertyIdentifier: absent (unstructured text)
  $letter_seq->insert('Cancel Subscription.');

  // Insert new unstructured text.  Subsequent sequence values
  // are shifted up.
  // value: 'Care of:'
  // sequence index: 1 (insert as second element)
  // propertyIdentifier: absent (unstructured text)
  $letter_seq->insert('Care of:', 1);
?>

Пример #6 Removing from a sequence

We can use the isset() and unset() functions to test and remove items from the sequence (Note: unset() currently leaves the values in the data object, but this behaviour is likely to change to also remove the data from the data object). A sequence behaves like a contiguous list; therefore, removing items from the middle will shift entries at higher indices down. The following example tests to see if the first sequence element is set and unsets it if is.

<?php
  if (isset($letter_seq[0])) {
    unset($letter_seq[0]);
  }
?>


Reflecting on Service Data Objects

SDOs have a knowledge of the structure they have been created to represent (the model). For example, a Company SDO created using the Company XML schema above would only be permitted to contain DepartmentType data objects which in turn could only contain EmployeeType data objects.

Sometimes it is useful to be able to access this model information at runtime. For example, this could be used to automatically generate a user interface for populating a data object. The model information is accessed using reflection.

Пример #1 Reflecting on a Data Object

The following example shows how we can reflect on an empty Employee data object.

<?php
  // Create the employee data object (e.g. from an XML Data Access Service)
  $employee = ...;
  $reflection = new SDO_Model_ReflectionDataObject($employee);
  print($reflection);
?>

Результат выполнения данного примера:

object(SDO_Model_ReflectionDataObject)#4 { - ROOT OBJECT - Type {
companyNS:EmployeeType[3] { commonj.sdo:String $name;
commonj.sdo:String $SN; commonj.sdo:Boolean $manager; } }

Using print on the SDO_Model_ReflectionDataObject writes out the data object's model. We can see from the output how the type companyNS:EmployeeType has three properties and we can see the names of the properties along with their types. Note, the primitive types are listed as SDO types (e.g. commonj.sdo namespace, String type). It is worth noting that this is the SDO model and when these are surfaced to an application they can be treated as the PHP equivalent types (e.g. string and boolean).

Пример #2 Accessing the type information

We can query the type information of a data object using reflection. The following example checks the type corresponds to a data object rather than a primitive and then iterates through the properties of the type, writing out the name of each property ($type and $property are SDO_Model_Type and SDO_Model_Property objects, respectively).

<?php
    // Create the employee data object (e.g. from an XML Data Access Service)
    $employee = ...;
    $reflection = new SDO_Model_ReflectionDataObject($employee);
    $type = $reflection->getType();
    if (! $type->isDataType()) {
        foreach ($type->getProperties() as $property) {
            print $property->getName() . "\n";
        }
    }
?>

Результат выполнения данного примера:

name
SN
manager


SDO Функции

Data Access Services

The table below lists the currently provided SDO Data Access Services:

DAS Name | Description
SDO_DAS_XML | An XML Data Access Service supporting reading/writing SDOs as XML documents.
SDO_DAS_Relational | A PDO-based Data Access Service supporting reading/writing SDO to relational databases. Implements an optimistic concurrency policy for updates.

Предопределенные классы

SDO consists of three sets of interfaces. The first set covers those interfaces for use by typical SDO applications. These are identified by the package prefix 'SDO_'. The second set is those used to reflect on, and work with, the model of a data object. These are identified by the package prefix 'SDO_Model_'. Finally, the third set are those use by Data Access Service implementations and are identified by the package prefix 'SDO_DAS_'. The majority of SDO users will not need to use or understand the 'SDO_Model_' and 'SDO_DAS_' interfaces.

SDO Application Programmer Interface

SDO_DataObject

The main interface through which data objects are manipulated. In addition to the methods below, SDO_DataObject extends the ArrayAccess, SDO_PropertyAccess (defines __get() / __set() methods for property access overloading), Iterator, and Countable interfaces.

Методы

  • getSequence - get the sequence for the data object

  • createDataObject - create a child data object

  • clear - unset the properties of a data object

  • getContainer - get the container (also known as 'parent') of this data object

  • getTypeName - get the name of the type for this data object

  • getTypeNamespaceURI - get the namespace URI of the type for this data object

SDO_Sequence

The interface through which sequenced data objects can be accessed to preserve ordering across a data object's properties and to allow unstructured text. SDO_Sequence preserves contiguous indices and therefore inserting or removing elements may shift other elements up or down. In addition to the methods below, SDO_Sequence extends the ArrayAccess, Iterator and Countable interface.

Методы

  • getProperty - get the property for a given sequence index

  • move - move an element from one property index to another

  • insert - insert a new value into the sequence

SDO_List

The interface through which many-valued properties are manipulated. In addition to the method defined below, SDO_List extends ArrayAccess, Iterator and Countable. SDO_List preserves contiguous indices and therefore inserting or removing elements may shift other elements up or down.

Методы

  • insert - insert a new value into the list

SDO_DataFactory

The interface through which data objects can be created. A Data Access Service is responsible for populating the model (i.e. configuring the data factory with the type and structure information for the data objects it can create.) for the factory and can then optionally return an instance of, or implement, the SDO_DataFactory interface.

Методы

  • create - create a new data object

SDO_Exception

An SDO_Exception is thrown when the caller's request cannot be completed. The subclasses of SDO_Exception are:

  • SDO_PropertyNotSetException - the property specified exists but has not been set or does not have a default value

  • SDO_PropertyNotFoundException - the property specified is not part of the data object's type

  • SDO_TypeNotFoundException - the specified namespace URI or type name is unknown

  • SDO_InvalidConversionException - conversion between the types of the assignment is not possible

  • SDO_IndexOutOfBoundsException - the numeric index into a data object, sequence or list is not in the valid range

  • SDO_UnsupportedOperationException - the request cannot be completed because it is not allowed, for example an attempt to set a read-only property.

Методы

One method is added to those inherited from the built in Exception class:

  • getCause - get the cause of this SDO_Exception

SDO Reflection Application Programmer Interfaces

SDO_Model_ReflectionDataObject

The main interface used to reflect on a data object instance to obtain its model type and property information. It is designed to follow the reflection pattern introduced in PHP 5.

Конструктор

  • __construct - construct a new SDO_Model_ReflectionDataObject.

Методы

  • export - get a string describing the data object.

  • getType - get the SDO_Model_Type for the data object.

  • getInstanceProperties - get the instance properties of the data object.

  • getContainmentProperty - get the property which defines the containment relationship to the data object.

SDO_Model_Type

The interface through which a data object's type information can be retrieved. This interface can be used to find out the type name and namespace URI of the type, whether the type allow open content, and so on.

Методы

  • getName - get the name of the type.

  • getNamespaceURI - get the namespace URI of the type.

  • isInstance - test for a data object being an instance of the type.

  • getProperties - get the properties of the type.

  • getProperty - get a property of the type.

  • isDataType - test to see if this type is a primitive scalar type.

  • isSequencedType - test to see if this is a sequenced type.

  • isOpenType - test to see if this is an open type.

  • isAbstractType - test to see if this is an abstract type.

  • getBaseType - get the base type of this type (if one exists).

SDO_Model_Property

The interface through which a data object's property information can be retrieved. This interface can be used to find out the type of a property, whether a property has a default value, whether the property is contained or reference by its parent, its cardinality, and so on.

Методы

  • getName - get the name of the property.

  • getType - get the type of the property.

  • isMany - test to see if the property is many-valued.

  • isContainment - test to see if the property describes a containment relationship.

  • getContainingType - get the type which contains this property.

  • getDefault - get the default value for a property.

SDO Data Access Service Developer Interfaces

SDO_DAS_DataObject

The interface through which a Data Access Service can access a data object's SDO_DAS_ChangeSummary. The change summary is used by the Data Access Service to check for conflicts when applying changes back to a data source.

Методы

  • getChangeSummary - get the change summary for a data object

SDO_DAS_ChangeSummary

The interface through which the change history of a data object is accessed. The change summary holds information for any modifications on a data object which occurred since logging was activated. In the case of deletions and modifications, the old values are also held in the change summary.

If logging is no longer active then the change summary only holds changes made up to the point when logging was deactivated. Reactivating logging clears the change summary. This is useful when a set of changes have been written out by a DAS and the data object is to be reused.

Методы

  • beginLogging - begin logging changes made to a data object

  • endLogging - end logging changes made to a data object

  • isLogging - test to see if change logging is on

  • getChangedDataObjects - get a list of the data objects which have been changed

  • getChangeType - get the type of change which has been made to a data object

  • getOldValues - get a list of old values for a data object

  • getOldContainer - get the old container data object for a deleted data object

SDO_DAS_Setting

The interface through which the old value for a property is accessed. A list of settings is returned by the change summary method getOldValues.

Методы

  • getPropertyIndex - get the property index for the changed property

  • getPropertyName - get the property name for the changed property

  • getValue - get the old value for the changed property

  • getListIndex - get the list index for the old value if it was part of a many-valued property

  • isSet - test to see if the property was set prior to being modified

SDO_DAS_DataFactory

The interface for constructing the model for an SDO_DataObject. The SDO_DAS_DataFactory is an abstract class providing a static method which returns a concrete data factory implementation. The implementation is used by Data Access Services to create an SDO model from their model. For example, a Relational Data Access Service might create and populate an SDO_DAS_DataFactory model based on a schema for a relational database.

Методы

  • getDataFactory - static methods for getting a concrete data factory instance

  • addType - add a new type to the SDO model

  • addPropertyToType - add a new property to a type definition in the SDO model

Содержание

  • SDO_DAS_ChangeSummary::beginLogging — Begin change logging
  • SDO_DAS_ChangeSummary::endLogging — End change logging
  • SDO_DAS_ChangeSummary::getChangeType — Get the type of change made to an SDO_DataObject
  • SDO_DAS_ChangeSummary::getChangedDataObjects — Get the changed data objects from a change summary
  • SDO_DAS_ChangeSummary::getOldContainer — Get the old container for a deleted SDO_DataObject
  • SDO_DAS_ChangeSummary::getOldValues — Get the old values for a given changed SDO_DataObject
  • SDO_DAS_ChangeSummary::isLogging — Test to see whether change logging is switched on
  • SDO_DAS_DataFactory::addPropertyToType — Adds a property to a type
  • SDO_DAS_DataFactory::addType — Add a new type to a model
  • SDO_DAS_DataFactory::getDataFactory — Get a data factory instance
  • SDO_DAS_DataObject::getChangeSummary — Get a data object's change summary
  • SDO_DAS_Setting::getListIndex — Get the list index for a changed many-valued property
  • SDO_DAS_Setting::getPropertyIndex — Get the property index for a changed property
  • SDO_DAS_Setting::getPropertyName — Get the property name for a changed property
  • SDO_DAS_Setting::getValue — Get the old value for the changed property
  • SDO_DAS_Setting::isSet — Test whether a property was set prior to being modified
  • SDO_DataFactory::create — Create an SDO_DataObject
  • SDO_DataObject::clear — Clear an SDO_DataObject's properties
  • SDO_DataObject::createDataObject — Create a child SDO_DataObject
  • SDO_DataObject::getContainer — Get a data object's container
  • SDO_DataObject::getSequence — Get the sequence for a data object
  • SDO_DataObject::getTypeName — Return the name of the type for a data object.
  • SDO_DataObject::getTypeNamespaceURI — Return the namespace URI of the type for a data object.
  • SDO_Exception::getCause — Get the cause of the exception.
  • SDO_List::insert — Insert into a list
  • SDO_Model_Property::getContainingType — Get the SDO_Model_Type which contains this property
  • SDO_Model_Property::getDefault — Get the default value for the property
  • SDO_Model_Property::getName — Get the name of the SDO_Model_Property
  • SDO_Model_Property::getType — Get the SDO_Model_Type of the property
  • SDO_Model_Property::isContainment — Test to see if the property defines a containment relationship
  • SDO_Model_Property::isMany — Test to see if the property is many-valued
  • SDO_Model_ReflectionDataObject::__construct — Construct an SDO_Model_ReflectionDataObject
  • SDO_Model_ReflectionDataObject::export — Get a string describing the SDO_DataObject.
  • SDO_Model_ReflectionDataObject::getContainmentProperty — Get the property which defines the containment relationship to the data object
  • SDO_Model_ReflectionDataObject::getInstanceProperties — Get the instance properties of the SDO_DataObject
  • SDO_Model_ReflectionDataObject::getType — Get the SDO_Model_Type for the SDO_DataObject
  • SDO_Model_Type::getBaseType — Get the base type for this type
  • SDO_Model_Type::getName — Get the name of the type
  • SDO_Model_Type::getNamespaceURI — Get the namespace URI of the type
  • SDO_Model_Type::getProperties — Get the SDO_Model_Property objects defined for the type
  • SDO_Model_Type::getProperty — Get an SDO_Model_Property of the type
  • SDO_Model_Type::isAbstractType — Test to see if this SDO_Model_Type is an abstract data type
  • SDO_Model_Type::isDataType — Test to see if this SDO_Model_Type is a primitive data type
  • SDO_Model_Type::isInstance — Test for an SDO_DataObject being an instance of this SDO_Model_Type
  • SDO_Model_Type::isOpenType — Test to see if this type is an open type
  • SDO_Model_Type::isSequencedType — Test to see if this is a sequenced type
  • SDO_Sequence::getProperty — Return the property for the specified sequence index.
  • SDO_Sequence::insert — Insert into a sequence
  • SDO_Sequence::move — Move an item to another sequence position


Begin change logging

  • « SDO Функции
  • SDO_DAS_ChangeSummary::endLogging »
  • PHP Manual
  • SDO Функции
  • Begin change logging

SDO_DAS_ChangeSummary::beginLogging

(^)

SDO_DAS_ChangeSummary::beginLogging — Begin change logging

Описание

void SDO_DAS_ChangeSummary::beginLogging ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Begin logging changes made to the SDO_DataObject.

Список параметров

None.

Возвращаемые значения

None.


End change logging

  • « SDO_DAS_ChangeSummary::beginLogging
  • SDO_DAS_ChangeSummary::getChangeType »
  • PHP Manual
  • SDO Функции
  • End change logging

SDO_DAS_ChangeSummary::endLogging

(^)

SDO_DAS_ChangeSummary::endLogging — End change logging

Описание

void SDO_DAS_ChangeSummary::endLogging ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

End logging changes made to an SDO_DataObject.

Список параметров

None.

Возвращаемые значения

None.


Get the type of change made to an SDO_DataObject

  • « SDO_DAS_ChangeSummary::endLogging
  • SDO_DAS_ChangeSummary::getChangedDataObjects »
  • PHP Manual
  • SDO Функции
  • Get the type of change made to an SDO_DataObject

SDO_DAS_ChangeSummary::getChangeType

(^)

SDO_DAS_ChangeSummary::getChangeType — Get the type of change made to an SDO_DataObject

Описание

int SDO_DAS_ChangeSummary::getChangeType ( SDO_DataObject $dataObject )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the type of change which has been made to the supplied SDO_DataObject.

Список параметров

dataObject

The SDO_DataObject which has been changed.

Возвращаемые значения

The type of change which has been made. The change type is expressed as an enumeration and will be one of the following four values:

  • SDO_DAS_ChangeSummary::NONE

  • SDO_DAS_ChangeSummary::MODIFICATION

  • SDO_DAS_ChangeSummary::ADDITION

  • SDO_DAS_ChangeSummary::DELETION


Get the changed data objects from a change summary

  • « SDO_DAS_ChangeSummary::getChangeType
  • SDO_DAS_ChangeSummary::getOldContainer »
  • PHP Manual
  • SDO Функции
  • Get the changed data objects from a change summary

SDO_DAS_ChangeSummary::getChangedDataObjects

(^)

SDO_DAS_ChangeSummary::getChangedDataObjects — Get the changed data objects from a change summary

Описание

SDO_List SDO_DAS_ChangeSummary::getChangedDataObjects ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get an SDO_List of the SDO_DataObjects which have been changed. These data objects can then be used to identify the types of change made to each, along with the old values.

Список параметров

None.

Возвращаемые значения

Returns an SDO_List of SDO_DataObjects.


Get the old container for a deleted SDO_DataObject

  • « SDO_DAS_ChangeSummary::getChangedDataObjects
  • SDO_DAS_ChangeSummary::getOldValues »
  • PHP Manual
  • SDO Функции
  • Get the old container for a deleted SDO_DataObject

SDO_DAS_ChangeSummary::getOldContainer

(^)

SDO_DAS_ChangeSummary::getOldContainer — Get the old container for a deleted SDO_DataObject

Описание

SDO_DataObject SDO_DAS_ChangeSummary::getOldContainer ( SDO_DataObject $data_object )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the old container (SDO_DataObject) for a deleted SDO_DataObject.

Список параметров

data_object

The SDO_DataObject which has been deleted and whose container we wish to identify.

Возвращаемые значения

The old containing data object of the deleted SDO_DataObject.


Get the old values for a given changed SDO_DataObject

  • « SDO_DAS_ChangeSummary::getOldContainer
  • SDO_DAS_ChangeSummary::isLogging »
  • PHP Manual
  • SDO Функции
  • Get the old values for a given changed SDO_DataObject

SDO_DAS_ChangeSummary::getOldValues

(^)

SDO_DAS_ChangeSummary::getOldValues — Get the old values for a given changed SDO_DataObject

Описание

SDO_List SDO_DAS_ChangeSummary::getOldValues ( SDO_DataObject $data_object )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get a list of the old values for a given changed SDO_DataObject. Returns a list of SDO_DAS_Settings describing the old values for the changed properties of the SDO_DataObject.

Список параметров

data_object

The data object which has been changed.

Возвращаемые значения

A list of SDO_DAS_Settings describing the old values for the changed properties of the SDO_DataObject. If the change type is SDO_DAS_ChangeSummary::ADDITION, this list is empty.


Test to see whether change logging is switched on

  • « SDO_DAS_ChangeSummary::getOldValues
  • SDO_DAS_DataFactory::addPropertyToType »
  • PHP Manual
  • SDO Функции
  • Test to see whether change logging is switched on

SDO_DAS_ChangeSummary::isLogging

(^)

SDO_DAS_ChangeSummary::isLogging — Test to see whether change logging is switched on

Описание

bool SDO_DAS_ChangeSummary::isLogging ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see whether change logging is switched on.

Список параметров

None.

Возвращаемые значения

Returns TRUE if change logging is on, otherwise returns FALSE.


Adds a property to a type

  • « SDO_DAS_ChangeSummary::isLogging
  • SDO_DAS_DataFactory::addType »
  • PHP Manual
  • SDO Функции
  • Adds a property to a type

SDO_DAS_DataFactory::addPropertyToType

(^)

SDO_DAS_DataFactory::addPropertyToType — Adds a property to a type

Описание

void SDO_DAS_DataFactory::addPropertyToType ( string $parent_type_namespace_uri , string $parent_type_name , string $property_name , string $type_namespace_uri , string $type_name [, array $options ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Adds a property to a type. The type must already be known to the SDO_DAS_DataFactory (i.e. have been added using addType()). The property becomes a property of the type. This is how the graph model for the structure of an SDO_DataObject is built.

Список параметров

parent_type_namespace_uri

The namespace URI for the parent type.

parent_type_name

The type name for the parent type.

property_name

The name by which the property will be known in the parent type.

type_namespace_uri

The namespace URI for the type of the property.

type_name

The type name for the type of the property

options

This array holds one or more key=>value pairs to set attribute values for the property. The optional keywords are:

many

A flag to say whether the property is many-valued. A value of 'true' adds the property as a many-valued property (default is 'false').

readOnly

A flag to say whether the property is read-only. A value of 'true' means the property value cannot be modified through the SDO application APIs (default is 'false').

containment

A flag to say whether the property is contained by the parent. A value of 'true' means the property is contained by the parent. A value of 'false' results in a non-containment reference (default is 'true'). This flag is only interpreted when adding properties which are data object types, otherwise it is ignored.

default

A default value for the property. Omitting this key means that the property does not have a default value. A property can only have a default value if it is a single-valued data type (primitive).

Возвращаемые значения

None.

Список изменений

Версия | Описание
0.5.2 | Optional parameters many, readOnly, and containment deprecated in favour of the options array.

Примеры

Пример #1 A SDO_DAS_DataFactory::addPropertyToType() example

The following adds an 'addressline' property to a Person type. The person type is identified by its namespace, 'PersonNS', and type name, 'PersonType'. The type of the 'addressline' property is a many-valued SDO data type (primitive) with namespace 'commonj.sdo' and type name 'String'.

<?php
  $df->addPropertyToType('PersonNS', 'PersonType',
    'addressline', 'commonj.sdo', 'String', array('many'=>true));
?>


Add a new type to a model

  • « SDO_DAS_DataFactory::addPropertyToType
  • SDO_DAS_DataFactory::getDataFactory »
  • PHP Manual
  • SDO Функции
  • Add a new type to a model

SDO_DAS_DataFactory::addType

(^)

SDO_DAS_DataFactory::addType — Add a new type to a model

Описание

void SDO_DAS_DataFactory::addType ( string $type_namespace_uri , string $type_name [, array $options ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Add a new type to the SDO_DAS_DataFactory, defined by its namespace and type name. The type becomes part of the model of data objects that the data factory can create.

Список параметров

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

options

This array holds one or more key=>value pairs to set attribute values for the type. The optional keywords are:

open

A flag to say whether the type is open. An SDO_DataObject whose type is open can have properties added to them which are not described by the type. This capability is used to support working with XML documents whose schema support open content such as that described by an <xsd:any> element. The default value is 'false'.

sequenced

A flag to say whether the type is sequenced. Sequenced types can have the ordering across properties preserved and can contain unstructured text. The default value is 'false'. For more information on sequenced types see the section on Working with Sequenced Data Objects.

basetype

If specified, an array of namespace URI and type name strings for the type from which this type is derived. An example of the use of base types is when a type derived in an XML schema inherits from another type by using <extension base="...">.

Возвращаемые значения

None.

Примеры

Пример #1 A SDO_DAS_DataFactory::addType() example

The following adds a new data object type of 'CompanyType' where that type belongs to the namespace 'CompanyNS'.

<?php
  $df->addType('CompanyNS', 'CompanyType');
?>


Get a data factory instance

  • « SDO_DAS_DataFactory::addType
  • SDO_DAS_DataObject::getChangeSummary »
  • PHP Manual
  • SDO Функции
  • Get a data factory instance

SDO_DAS_DataFactory::getDataFactory

(^)

SDO_DAS_DataFactory::getDataFactory — Get a data factory instance

Описание

SDO_DAS_DataFactory SDO_DAS_DataFactory::getDataFactory ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Static method to get an instance of an SDO_DAS_DataFactory. This instance is initially only configured with the basic SDO types. A Data Access Service is responsible for populating the data factory model and then allowing PHP applications to create SDOs based on the model through the SDO_DataFactory interface. PHP applications should always obtain a data factory from a configured Data Access Service, not through this interface.

Список параметров

None.

Возвращаемые значения

Returns an SDO_DAS_DataFactory.


Get a data object's change summary

  • « SDO_DAS_DataFactory::getDataFactory
  • SDO_DAS_Setting::getListIndex »
  • PHP Manual
  • SDO Функции
  • Get a data object's change summary

SDO_DAS_DataObject::getChangeSummary

(^)

SDO_DAS_DataObject::getChangeSummary — Get a data object's change summary

Описание

SDO_DAS_ChangeSummary SDO_DAS_DataObject::getChangeSummary ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the SDO_DAS_ChangeSummary for an SDO_DAS_DataObject, or NULL if it does not have one.

Список параметров

None.

Возвращаемые значения

Returns the SDO_DAS_ChangeSummary for an SDO_DAS_DataObject, or NULL if it does not have one.


Get the list index for a changed many-valued property

  • « SDO_DAS_DataObject::getChangeSummary
  • SDO_DAS_Setting::getPropertyIndex »
  • PHP Manual
  • SDO Функции
  • Get the list index for a changed many-valued property

SDO_DAS_Setting::getListIndex

(^)

SDO_DAS_Setting::getListIndex — Get the list index for a changed many-valued property

Описание

int SDO_DAS_Setting::getListIndex ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the list index for a modification made to an element of a many-valued property. For example, if we modified the third element of a many-valued property we could obtain an SDO_DAS_Setting from the change summary corresponding to that modification. A call to getListIndex() on that setting would return the value 2 (lists are indexed from zero).

Список параметров

None.

Возвращаемые значения

The list index for the element of the many-valued property which has been changed.


Get the property index for a changed property

  • « SDO_DAS_Setting::getListIndex
  • SDO_DAS_Setting::getPropertyName »
  • PHP Manual
  • SDO Функции
  • Get the property index for a changed property

SDO_DAS_Setting::getPropertyIndex

(^)

SDO_DAS_Setting::getPropertyIndex — Get the property index for a changed property

Описание

int SDO_DAS_Setting::getPropertyIndex ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the property index for the changed property. This index identifies the property which was modified in data object.

Список параметров

None.

Возвращаемые значения

The property index for a changed property.


Get the property name for a changed property

  • « SDO_DAS_Setting::getPropertyIndex
  • SDO_DAS_Setting::getValue »
  • PHP Manual
  • SDO Функции
  • Get the property name for a changed property

SDO_DAS_Setting::getPropertyName

(^)

SDO_DAS_Setting::getPropertyName — Get the property name for a changed property

Описание

string SDO_DAS_Setting::getPropertyName ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the property name for the changed property. This name identifies the property which was modified in data object.

Список параметров

None.

Возвращаемые значения

The property name for a changed property.


Get the old value for the changed property

  • « SDO_DAS_Setting::getPropertyName
  • SDO_DAS_Setting::isSet »
  • PHP Manual
  • SDO Функции
  • Get the old value for the changed property

SDO_DAS_Setting::getValue

(^)

SDO_DAS_Setting::getValue — Get the old value for the changed property

Описание

mixed SDO_DAS_Setting::getValue ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the old value for the changed property. This can be used by a Data Access Service when writing updates to a data source. The DAS uses the old value to detect conflicts by comparing it with the current value in the data source. If they do not match, then the data source has been updated since the data object was originally populated, and therefore writing any new updates risks compromising the integrity of the data.

Список параметров

None.

Возвращаемые значения

Returns the old value of the changed property.


Test whether a property was set prior to being modified

  • « SDO_DAS_Setting::getValue
  • SDO_DataFactory::create »
  • PHP Manual
  • SDO Функции
  • Test whether a property was set prior to being modified

SDO_DAS_Setting::isSet

(^)

SDO_DAS_Setting::isSet — Test whether a property was set prior to being modified

Описание

bool SDO_DAS_Setting::isSet ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test whether a property was set prior to being modified. If it was set prior to being modified then the SDO_DAS_Setting will also contain the old value.

Список параметров

None.

Возвращаемые значения

Returns TRUE if the property was set prior to being modified, otherwise returns FALSE.


Create an SDO_DataObject

  • « SDO_DAS_Setting::isSet
  • SDO_DataObject::clear »
  • PHP Manual
  • SDO Функции
  • Create an SDO_DataObject

SDO_DataFactory::create

(^)

SDO_DataFactory::create — Create an SDO_DataObject

Описание

void SDO_DataFactory::create ( string $type_namespace_uri , string $type_name )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Create a new SDO_DataObject given the data object's namespace URI and type name.

Список параметров

type_namespace_uri

The namespace of the type.

type_name

The name of the type.

Возвращаемые значения

Returns the newly created SDO_DataObject.

Ошибки

SDO_TypeNotFoundException

Thrown if the namespaceURI and typeName do not correspond to a type known to this data factory.


Clear an SDO_DataObject's properties

  • « SDO_DataFactory::create
  • SDO_DataObject::createDataObject »
  • PHP Manual
  • SDO Функции
  • Clear an SDO_DataObject's properties

SDO_DataObject::clear

(^)

SDO_DataObject::clear — Clear an SDO_DataObject's properties

Описание

void SDO_DataObject::clear ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Clear an SDO_DataObject's properties. Read-only properties are unaffected. Subsequent calls to isset() for the data object will return FALSE.

Список параметров

None.

Возвращаемые значения

No return values.


Create a child SDO_DataObject

  • « SDO_DataObject::clear
  • SDO_DataObject::getContainer »
  • PHP Manual
  • SDO Функции
  • Create a child SDO_DataObject

SDO_DataObject::createDataObject

(^)

SDO_DataObject::createDataObject — Create a child SDO_DataObject

Описание

SDO_DataObject SDO_DataObject::createDataObject ( mixed $identifier )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Create a child SDO_DataObject of the default type for the property identified. The data object is automatically inserted into the tree and a reference to it is returned.

Список параметров

identifier

Identifies the property for the data object type to be created. Can be either a property name (string), a property index (int), or an SDO_Model_Property.

Возвращаемые значения

Returns the newly created SDO_DataObject.

Ошибки

SDO_PropertyNotFoundException

Thrown if the identifier does not correspond to a property of the data object.


Get a data object's container

  • « SDO_DataObject::createDataObject
  • SDO_DataObject::getSequence »
  • PHP Manual
  • SDO Функции
  • Get a data object's container

SDO_DataObject::getContainer

(^)

SDO_DataObject::getContainer — Get a data object's container

Описание

SDO_DataObject SDO_DataObject::getContainer ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the data object which contains this data object.

Список параметров

None.

Возвращаемые значения

Returns the SDO_DataObject which contains this SDO_DataObject, or returns NULL if this is a root SDO_DataObject (i.e. it has no container).


Get the sequence for a data object

  • « SDO_DataObject::getContainer
  • SDO_DataObject::getTypeName »
  • PHP Manual
  • SDO Функции
  • Get the sequence for a data object

SDO_DataObject::getSequence

(^)

SDO_DataObject::getSequence — Get the sequence for a data object

Описание

SDO_Sequence SDO_DataObject::getSequence ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return the SDO_Sequence for this SDO_DataObject. Accessing the SDO_DataObject through the SDO_Sequence interface acts on the same SDO_DataObject instance data, but preserves ordering across properties.

Список параметров

None.

Возвращаемые значения

The SDO_Sequence for this SDO_DataObject, or returns NULL if the SDO_DataObject is not of a type which can have a sequence.


Return the name of the type for a data object.

  • « SDO_DataObject::getSequence
  • SDO_DataObject::getTypeNamespaceURI »
  • PHP Manual
  • SDO Функции
  • Return the name of the type for a data object.

SDO_DataObject::getTypeName

(^)

SDO_DataObject::getTypeName — Return the name of the type for a data object.

Описание

string SDO_DataObject::getTypeName ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return the name of the type for a data object. A convenience method corresponding to SDO_Model_ReflectionDataObject::getType().getName().

Список параметров

None.

Возвращаемые значения

The name of the type for the data object.


Return the namespace URI of the type for a data object.

  • « SDO_DataObject::getTypeName
  • SDO_Exception::getCause »
  • PHP Manual
  • SDO Функции
  • Return the namespace URI of the type for a data object.

SDO_DataObject::getTypeNamespaceURI

(^)

SDO_DataObject::getTypeNamespaceURI — Return the namespace URI of the type for a data object.

Описание

string SDO_DataObject::getTypeNamespaceURI ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return the namespace URI of the type for a data object. A convenience method corresponding to SDO_Model_ReflectionDataObject::getType().getNamespaceURI().

Список параметров

None.

Возвращаемые значения

The namespace URI of the type for the data object.


Get the cause of the exception.

  • « SDO_DataObject::getTypeNamespaceURI
  • SDO_List::insert »
  • PHP Manual
  • SDO Функции
  • Get the cause of the exception.

SDO_Exception::getCause

(^)

SDO_Exception::getCause — Get the cause of the exception.

Описание

mixed SDO_Exception::getCause ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the cause of this exception or NULL if the cause is nonexistent or unknown. Typically the cause will be an SDO_CPPException object, which may be used to obtain additional diagnostic information.

Список параметров

None.

Возвращаемые значения

Returns the cause of this exception or NULL if the cause is nonexistent or unknown.


Insert into a list

  • « SDO_Exception::getCause
  • SDO_Model_Property::getContainingType »
  • PHP Manual
  • SDO Функции
  • Insert into a list

SDO_List::insert

(^)

SDO_List::insert — Insert into a list

Описание

void SDO_List::insert ( mixed $value [, int $index ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Insert a new element at a specified position in the list. All subsequent list items are moved up.

Список параметров

value

The new value to be inserted. This can be either a primitive or an SDO_DataObject.

index

The position at which to insert the new element. If this argument is not specified then the new value will be appended.

Возвращаемые значения

None.

Ошибки

SDO_IndexOutOfBoundsException

Thrown if the list index is less than zero or greater than the size of the list.

SDO_InvalidConversionException

Thrown if the type of the new value does not match the type for the list (e.g. the type of the many-valued property that the list represents).


Get the SDO_Model_Type which contains this property

  • « SDO_List::insert
  • SDO_Model_Property::getDefault »
  • PHP Manual
  • SDO Функции
  • Get the SDO_Model_Type which contains this property

SDO_Model_Property::getContainingType

(^)

SDO_Model_Property::getContainingType — Get the SDO_Model_Type which contains this property

Описание

SDO_Model_Type SDO_Model_Property::getContainingType ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the SDO_Model_Type which contains this property.

Список параметров

None.

Возвращаемые значения

Returns the SDO_Model_Type which contains this property.


Get the default value for the property

  • « SDO_Model_Property::getContainingType
  • SDO_Model_Property::getName »
  • PHP Manual
  • SDO Функции
  • Get the default value for the property

SDO_Model_Property::getDefault

(^)

SDO_Model_Property::getDefault — Get the default value for the property

Описание

mixed SDO_Model_Property::getDefault ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the default value for the property. Only primitive data type properties can have default values.

Список параметров

None.

Возвращаемые значения

Returns the default value for the property.


Get the name of the SDO_Model_Property

  • « SDO_Model_Property::getDefault
  • SDO_Model_Property::getType »
  • PHP Manual
  • SDO Функции
  • Get the name of the SDO_Model_Property

SDO_Model_Property::getName

(^)

SDO_Model_Property::getName — Get the name of the SDO_Model_Property

Описание

string SDO_Model_Property::getName ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the name of the SDO_Model_Property.

Список параметров

None.

Возвращаемые значения

Returns the name of the SDO_Model_Property.


Get the SDO_Model_Type of the property

  • « SDO_Model_Property::getName
  • SDO_Model_Property::isContainment »
  • PHP Manual
  • SDO Функции
  • Get the SDO_Model_Type of the property

SDO_Model_Property::getType

(^)

SDO_Model_Property::getType — Get the SDO_Model_Type of the property

Описание

SDO_Model_Type SDO_Model_Property::getType ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the SDO_Model_Type of the property. The SDO_Model_Type describes the type information for the property, such as its type name, namespace URI, whether it is a primitive data type, and so on.

Список параметров

None.

Возвращаемые значения

Returns the SDO_Model_Type describing the property's type information.


Test to see if the property defines a containment relationship

  • « SDO_Model_Property::getType
  • SDO_Model_Property::isMany »
  • PHP Manual
  • SDO Функции
  • Test to see if the property defines a containment relationship

SDO_Model_Property::isContainment

(^)

SDO_Model_Property::isContainment — Test to see if the property defines a containment relationship

Описание

bool SDO_Model_Property::isContainment ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if the property corresponds to a containment relationship. Returns TRUE if the property defines a containment relationship, or FALSE if it is reference.

Список параметров

None.

Возвращаемые значения

Returns TRUE if the property defines a containment relationship, or FALSE if it is reference.


Test to see if the property is many-valued

  • « SDO_Model_Property::isContainment
  • SDO_Model_ReflectionDataObject::__construct »
  • PHP Manual
  • SDO Функции
  • Test to see if the property is many-valued

SDO_Model_Property::isMany

(^)

SDO_Model_Property::isMany — Test to see if the property is many-valued

Описание

bool SDO_Model_Property::isMany ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if the property is many-valued. Returns TRUE if this is a many-valued property, otherwise returns FALSE.

Список параметров

None.

Возвращаемые значения

Returns TRUE if this is a many-valued property, otherwise returns FALSE.


Construct an SDO_Model_ReflectionDataObject

  • « SDO_Model_Property::isMany
  • SDO_Model_ReflectionDataObject::export »
  • PHP Manual
  • SDO Функции
  • Construct an SDO_Model_ReflectionDataObject

SDO_Model_ReflectionDataObject::__construct

(^)

SDO_Model_ReflectionDataObject::__construct — Construct an SDO_Model_ReflectionDataObject

Описание

SDO_Model_ReflectionDataObject::__construct ( SDO_DataObject $data_object )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Construct an SDO_Model_ReflectionDataObject to reflect on an SDO_DataObject. Reflecting on an SDO_DataObject gives access to information about its model. The model contains information such as the data object's type, and whether that type is sequenced (preserves ordering across properties) or open (each instance can have its model extended). The model also holds information about the data object's properties, any default values they may have, and so on.

Список параметров

data_object

The SDO_DataObject being reflected upon.

Возвращаемые значения

None.


Get a string describing the SDO_DataObject.

  • « SDO_Model_ReflectionDataObject::__construct
  • SDO_Model_ReflectionDataObject::getContainmentProperty »
  • PHP Manual
  • SDO Функции
  • Get a string describing the SDO_DataObject.

SDO_Model_ReflectionDataObject::export

(^)

SDO_Model_ReflectionDataObject::export — Get a string describing the SDO_DataObject.

Описание

mixed SDO_Model_ReflectionDataObject::export ( SDO_Model_ReflectionDataObject $rdo [, bool $return ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get a string describing the SDO_DataObject. The default behaviour is to print the output, but if TRUE is specified for return, it is returned as a string.

Список параметров

rdo

An SDO_Model_ReflectionDataObject.

return

If TRUE, return the output as a string, otherwise print it.

Возвращаемые значения

Returns the output if TRUE is specified for return, otherwise NULL.


Get the property which defines the containment relationship to the data object

  • « SDO_Model_ReflectionDataObject::export
  • SDO_Model_ReflectionDataObject::getInstanceProperties »
  • PHP Manual
  • SDO Функции
  • Get the property which defines the containment relationship to the data object

SDO_Model_ReflectionDataObject::getContainmentProperty

(^)

SDO_Model_ReflectionDataObject::getContainmentProperty — Get the property which defines the containment relationship to the data object

Описание

SDO_Model_Property SDO_Model_ReflectionDataObject::getContainmentProperty ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the SDO_Model_Property that contains the SDO_DataObject. This method is used to navigate up to the parent's property which contains the data object which has been reflected upon.

Список параметров

None.

Возвращаемые значения

Returns the container's SDO_Model_Property which references the SDO_DataObject, or NULL if it is a root SDO_DataObject.


Get the instance properties of the SDO_DataObject

  • « SDO_Model_ReflectionDataObject::getContainmentProperty
  • SDO_Model_ReflectionDataObject::getType »
  • PHP Manual
  • SDO Функции
  • Get the instance properties of the SDO_DataObject

SDO_Model_ReflectionDataObject::getInstanceProperties

(^)

SDO_Model_ReflectionDataObject::getInstanceProperties — Get the instance properties of the SDO_DataObject

Описание

array SDO_Model_ReflectionDataObject::getInstanceProperties ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the instance properties for the SDO_DataObject. The instance properties consist of all the properties defined on the data object's type, plus any instance properties from open content (if the data object is an open type).

Список параметров

None.

Возвращаемые значения

An array of SDO_Model_Property objects.


Get the SDO_Model_Type for the SDO_DataObject

  • « SDO_Model_ReflectionDataObject::getInstanceProperties
  • SDO_Model_Type::getBaseType »
  • PHP Manual
  • SDO Функции
  • Get the SDO_Model_Type for the SDO_DataObject

SDO_Model_ReflectionDataObject::getType

(^)

SDO_Model_ReflectionDataObject::getType — Get the SDO_Model_Type for the SDO_DataObject

Описание

SDO_Model_Type SDO_Model_ReflectionDataObject::getType ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the SDO_Model_Type for the SDO_DataObject. The SDO_Model_Type holds all the information about the data object's type, such as namespace URI, type name, whether it is a primitive data type, and so on.

Список параметров

None.

Возвращаемые значения

Returns the SDO_Model_Type for the SDO_DataObject.


Get the base type for this type

  • « SDO_Model_ReflectionDataObject::getType
  • SDO_Model_Type::getName »
  • PHP Manual
  • SDO Функции
  • Get the base type for this type

SDO_Model_Type::getBaseType

(^)

SDO_Model_Type::getBaseType — Get the base type for this type

Описание

SDO_Model_Type SDO_Model_Type::getBaseType ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get the base type for this type. Returns the SDO_Model_Type for the base type if this type inherits from another, otherwise returns NULL. An example of when base types occur is when a type defined in XML schema inherits from another type by using

<extension base="...">
.

Список параметров

None.

Возвращаемые значения

Returns the SDO_Model_Type for the base type if this type inherits from another, otherwise returns NULL.


Get the name of the type

  • « SDO_Model_Type::getBaseType
  • SDO_Model_Type::getNamespaceURI »
  • PHP Manual
  • SDO Функции
  • Get the name of the type

SDO_Model_Type::getName

(^)

SDO_Model_Type::getName — Get the name of the type

Описание

string SDO_Model_Type::getName ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the name of the type. The combination of type name and namespace URI is used to uniquely identify the type.

Список параметров

None.

Возвращаемые значения

Returns the name of the type.


Get the namespace URI of the type

  • « SDO_Model_Type::getName
  • SDO_Model_Type::getProperties »
  • PHP Manual
  • SDO Функции
  • Get the namespace URI of the type

SDO_Model_Type::getNamespaceURI

(^)

SDO_Model_Type::getNamespaceURI — Get the namespace URI of the type

Описание

string SDO_Model_Type::getNamespaceURI ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the namespace URI of the type. The combination of namespace URI and type name is used to uniquely identify the type.

Список параметров

None.

Возвращаемые значения

Returns the namespace URI of the type.


Get the SDO_Model_Property objects defined for the type

  • « SDO_Model_Type::getNamespaceURI
  • SDO_Model_Type::getProperty »
  • PHP Manual
  • SDO Функции
  • Get the SDO_Model_Property objects defined for the type

SDO_Model_Type::getProperties

(^)

SDO_Model_Type::getProperties — Get the SDO_Model_Property objects defined for the type

Описание

array SDO_Model_Type::getProperties ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get an array of SDO_Model_Property objects describing the properties defined for the SDO_Model_Type. Each SDO_Model_Property holds information such as the property name, default value, and so on.

Список параметров

None.

Возвращаемые значения

Returns an array of SDO_Model_Property objects.


Get an SDO_Model_Property of the type

  • « SDO_Model_Type::getProperties
  • SDO_Model_Type::isAbstractType »
  • PHP Manual
  • SDO Функции
  • Get an SDO_Model_Property of the type

SDO_Model_Type::getProperty

(^)

SDO_Model_Type::getProperty — Get an SDO_Model_Property of the type

Описание

SDO_Model_Property SDO_Model_Type::getProperty ( mixed $identifier )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Get an SDO_Model_Property of the type, identified by its property index or property name.

Список параметров

identifier

The property index or property name.

Возвращаемые значения

Returns the SDO_Model_Property.


Test to see if this SDO_Model_Type is an abstract data type

  • « SDO_Model_Type::getProperty
  • SDO_Model_Type::isDataType »
  • PHP Manual
  • SDO Функции
  • Test to see if this SDO_Model_Type is an abstract data type

SDO_Model_Type::isAbstractType

(^)

SDO_Model_Type::isAbstractType — Test to see if this SDO_Model_Type is an abstract data type

Описание

bool SDO_Model_Type::isAbstractType ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if this SDO_Model_Type is an abstract data type. Returns TRUE if this type is abstract, that is, no SDO_DataObject of this type can be instantiated, though other types may inherit from it.

Список параметров

None.

Возвращаемые значения

Returns TRUE if this type is an abstract data type, otherwise returns FALSE.


Test to see if this SDO_Model_Type is a primitive data type

  • « SDO_Model_Type::isAbstractType
  • SDO_Model_Type::isInstance »
  • PHP Manual
  • SDO Функции
  • Test to see if this SDO_Model_Type is a primitive data type

SDO_Model_Type::isDataType

(^)

SDO_Model_Type::isDataType — Test to see if this SDO_Model_Type is a primitive data type

Описание

bool SDO_Model_Type::isDataType ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if this SDO_Model_Type is a primitive data type. Returns TRUE if this type is a primitive data type, otherwise returns FALSE.

Список параметров

None.

Возвращаемые значения

Returns TRUE if this type is a primitive data type, otherwise returns FALSE.


Test for an SDO_DataObject being an instance of this SDO_Model_Type

  • « SDO_Model_Type::isDataType
  • SDO_Model_Type::isOpenType »
  • PHP Manual
  • SDO Функции
  • Test for an SDO_DataObject being an instance of this SDO_Model_Type

SDO_Model_Type::isInstance

(^)

SDO_Model_Type::isInstance — Test for an SDO_DataObject being an instance of this SDO_Model_Type

Описание

bool SDO_Model_Type::isInstance ( SDO_DataObject $data_object )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test for an SDO_DataObject being an instance of this SDO_Model_Type. Returns TRUE if the SDO_DataObject provided is an instance of this SDO_Model_Type, or a derived type, otherwise returns FALSE.

Список параметров

data_object

The SDO_DataObject to be tested.

Возвращаемые значения

Returns TRUE if the SDO_DataObject provided is an instance of this SDO_Model_Type, or a derived type, otherwise returns FALSE.


Test to see if this type is an open type

  • « SDO_Model_Type::isInstance
  • SDO_Model_Type::isSequencedType »
  • PHP Manual
  • SDO Функции
  • Test to see if this type is an open type

SDO_Model_Type::isOpenType

(^)

SDO_Model_Type::isOpenType — Test to see if this type is an open type

Описание

bool SDO_Model_Type::isOpenType ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if this type is open. Returns TRUE if this type is open, otherwise returns FALSE. An SDO_DataObject whose type is open can have properties added to them which are not described by the type. This capability is used to support working with XML documents whose schema support open content, such as that defined by an

<xsd:any>
element.

Список параметров

None.

Возвращаемые значения

Returns TRUE if this type is open, otherwise returns FALSE.


Test to see if this is a sequenced type

  • « SDO_Model_Type::isOpenType
  • SDO_Sequence::getProperty »
  • PHP Manual
  • SDO Функции
  • Test to see if this is a sequenced type

SDO_Model_Type::isSequencedType

(^)

SDO_Model_Type::isSequencedType — Test to see if this is a sequenced type

Описание

bool SDO_Model_Type::isSequencedType ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Test to see if this is a sequenced type. Returns TRUE if this type is sequence, otherwise returns FALSE. Sequenced types can have the ordering across properties preserved and can contain unstructured text. For more information on sequenced types see the section on Working with Sequenced Data Objects.

Список параметров

None.

Возвращаемые значения

Returns TRUE if this type is sequence, otherwise return FALSE.


Return the property for the specified sequence index.

  • « SDO_Model_Type::isSequencedType
  • SDO_Sequence::insert »
  • PHP Manual
  • SDO Функции
  • Return the property for the specified sequence index.

SDO_Sequence::getProperty

(^)

SDO_Sequence::getProperty — Return the property for the specified sequence index.

Описание

SDO_Model_Property SDO_Sequence::getProperty ( int $sequence_index )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Return the property for the specified sequence index.

Список параметров

sequence_index

The position of the element in the sequence.

Возвращаемые значения

An SDO_Model_Property. A return value of NULL means the sequence element does not belong to a property and must therefore be unstructured text.

Ошибки

SDO_IndexOutOfBoundsException

Thrown if the sequence index is less than zero or greater than the size of the sequence.


Insert into a sequence

  • « SDO_Sequence::getProperty
  • SDO_Sequence::move »
  • PHP Manual
  • SDO Функции
  • Insert into a sequence

SDO_Sequence::insert

(^)

SDO_Sequence::insert — Insert into a sequence

Описание

void SDO_Sequence::insert ( mixed $value [, int $sequenceIndex [, mixed $propertyIdentifier ]] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Insert a new element at a specified position in the sequence. All subsequent sequence items are moved up.

Список параметров

value

The new value to be inserted. This can be either a primitive or an SDO_DataObject.

sequenceIndex

The position at which to insert the new element. Default is NULL, which results in the new value being appended to the sequence.

propertyIdentifier

Either a property index, a property name, or an SDO_Model_Property, used to identify a property in the sequence's corresponding SDO_DataObject. A value of NULL signifies unstructured text.

Возвращаемые значения

None.

Ошибки

SDO_IndexOutOfBoundsException

Thrown if the sequence index is less than zero or greater than the size of the sequence.

SDO_InvalidConversionException

Thrown if the type of the new value cannot be juggled to match the type for the specified data object property.


Move an item to another sequence position

  • « SDO_Sequence::insert
  • SDO-DAS-Relational »
  • PHP Manual
  • SDO Функции
  • Move an item to another sequence position

SDO_Sequence::move

(^)

SDO_Sequence::move — Move an item to another sequence position

Описание

void SDO_Sequence::move ( int $toIndex, int $fromIndex )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Modify the position of the item in the sequence, without altering the value of the property in the SDO_DataObject.

Список параметров

toIndex

The destination sequence index. If this index is less than zero or greater than the size of the sequence then the value is appended.

fromIndex

The source sequence index.

Возвращаемые значения

None.

Ошибки

SDO_IndexOutOfBoundsException

Thrown if the fromIndex sequence index is less than zero or greater than the size of the sequence.


SDO Relational Data Access Service

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Creating, retrieving, updating and deleting data
    • Specifying the metadata
    • One-table examples
    • Two-table examples
    • Three-table example
  • Limitations
  • SDO-DAS-Relational Функции
    • SDO_DAS_Relational::applyChanges — Applies the changes made to a data graph back to the database.
    • SDO_DAS_Relational::__construct — Creates an instance of a Relational Data Access Service
    • SDO_DAS_Relational::createRootDataObject — Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch.
    • SDO_DAS_Relational::executePreparedQuery — Executes an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph.
    • SDO_DAS_Relational::executeQuery — Executes a given SQL query against a relational database and returns the results as a normalised data graph.


Введение

Внимание

Это расширение является ЭКСПЕРИМЕНТАЛЬНЫМ. Поведение этого расширения, включая имена его функций и любую другую относящуюся к нему документацию, может измениться в последующих версиях PHP без уведомления. Используйте это расширение на свой страх и риск.

In order to use the Relational Data Access Service for Service Data Objects, you will need to understand some of the concepts behind SDO: the data graph, the data object, the disconnected way of working, the change summary, XPath and property expressions, and so on. If you are not familiar with these ideas, you might want to look first at the section on SDO. In addition, the Relational DAS makes use of the PDO extension to isolate itself from specifics of different back-end relational databases. In order to use the Relational DAS you will need to be able to create and pass a PDO database connection; for this reason you might also want to take a look at the section on PDO.

The job of the Relational DAS is to move data between the application and a relational database. In order to do this it needs to be told the mapping between the database entities - tables, columns, primary keys and foreign keys - and the elements of the SDO model - types, properties, containment relationships and so on. You specify this information as metadata when you construct the Relational DAS.

Overview of Operation

  1. The first step is to call the Relational DAS's constructor, passing the metadata that defines the mapping between database and SDO model. There are examples of this below.

  2. The next step might be to call the executeQuery() or executePreparedQuery() methods on the Relational DAS, passing either a literal SQL statement for the DAS to prepare and execute, or a prepared statement with placeholders and a list of values to be inserted. You may also need to specify a small amount of metadata about the query itself, so that the Relational DAS knows exactly what columns will be returned from the database and in what order. You will also need to pass a PDO database connection.

    The return value from executeQuery() or executePreparedQuery() is a normalised data graph containing all the data from the result set. For a query that returns data obtained from a number of tables, this graph will contain a number of data objects, linked by SDO containment relationships. There may also be SDO non-containment references within the data.

    Once the query has been executed and the data graph constructed, there is no need for either that instance of the Relational DAS or the database connection. There are no locks held on the database. Both the Relational DAS and the PDO database connection can be garbage collected.

  3. Quite possibly the data in the data graph will go through a number of modifications. The data graph can be serialised into the PHP session and so may have a lifetime beyond just one client-server interaction. Data objects can be created and added to the graph, the data objects already in the graph can be deleted, and data objects in the graph can be modified.

  4. Finally, the changes made to the data graph can be applied back to the database using the applyChanges() method of the Relational DAS. For this, another instance of the Relational DAS must be constructed, using the same metadata, and another connection to the database obtained. The connection and the data graph are passed to applyChanges(). At this point the Relational DAS examines the change summary and generates the necessary INSERT, UPDATE and DELETE SQL statements to apply the changes. Any UPDATE and DELETE statements are qualified with the original values of the data so that should the data have changed in the database in the meantime this will be detected. Assuming no such collisions have occurred the changes will be committed to the database. The application can then continue to work with the data graph, make more changes and apply them, or can discard it.

There are other ways of working with the data in the database: it is possible to just create data objects and write them to the database without a preliminary call to executeQuery(), for example. This scenario and others are explored in the Examples section below.


Требования

The Relational DAS requires that the SDO extension be installed. The SDO extension requires a version of PHP 5.1, and the Relational DAS requires a recent version that contains an important fix for PDO. The most up-to-date information about required levels of PHP should be found in the changelog for the package on PECL. At the time of writing, though, the Relational DAS requires the most recent beta level of PHP 5.1, that is PHP 5.1.0.

The Relational DAS uses PDO to access the relational database, and so should run with a variety of different relational databases. At the time of writing it has been tested in the following configurations

  • MySQL 4.1.14, on Windows. The Relational DAS operates correctly with the php_pdo_mysql driver that comes with the pre-built binaries for PHP 5.1.0.

  • MySQL 4.1.13, on Linux. It is necessary to have the most up-to-date PDO driver for MySQL, which comes built in to PHP 5.1.0. It may be necessary to uninstall the usual driver that would have come from PECL using pear uninstall pdo_mysql. You will need to configure PHP with the --with-pdo-mysql option.

  • DB2 8.2 Personal Edition, on Windows. The Relational DAS operates correctly with the php_pdo_odbc driver that comes with the pre-built binaries for PHP 5.1.0.

  • DB2 8.2 Personal Developer's Edition, on Linux. The Developer's Edition is needed because it contains the include files needed when PHP is configured and built. You will need to configure PHP with the --with-pdo-odbc=ibm-db2 option.

The Relational DAS applies changes to the database within a user-delimited transaction: that is, it issues a call to PDO::beginTransaction() before beginning to apply changes, and PDO::commit() or PDO::rollback() on completion. Whichever database is chosen, the database and the PDO driver for the database must support these calls.


Установка

The installation instructions for all the SDO components are in the SDO install section of the SDO documentation.

In any case, the essential facts are that the Relational DAS is written in PHP and it should be placed somewhere on the PHP include_path.

Your application will of course need to include the Relational DAS with a statement like this:

<?php
require_once 'SDO/DAS/Relational.php';
?>


Настройка во время выполнения

Данное расширение не определяет никакие директивы конфигурации в php.ini.

Tracing

You may be interested in seeing the SQL statements that are generated in order to apply changes back to the database. At the top of the SDO/DAS/Relational.php you will find a number of constants which control whether the process of constructing and executing the SQL statements is to be traced. Try setting DEBUG_EXECUTE_PLAN to TRUE to see the generated SQL statements.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

The Relational DAS introduces no predefined constants.


Примеры

Содержание

  • Creating, retrieving, updating and deleting data
  • Specifying the metadata
  • One-table examples
  • Two-table examples
  • Three-table example


Creating, retrieving, updating and deleting data

This section illustrates how the Relational DAS can be used to create, retrieve, update and delete data in a relational database. Many of the examples are illustrated with a three-table database that contains companies, departments within those companies, and employees that work in those departments. This example is used in a number of places within the SDO literature. See the examples section of the » Service Data Objects specification or the Examples section of the documentation for the SDO extension.

The Relational DAS is constructed with metadata that defines the relational database and how it should be mapped to SDO. The long section that follows describes this metadata and how to construct the Relational DAS. The examples that follow it all assume that this metadata is in an included php file.

The examples below and others can all be found in the Scenarios directory in the Relational DAS package.

The Relational DAS throws exceptions in the event that it finds errors in the metadata or errors when executing SQL statements against the database. For brevity the examples below all omit the use of try/catch blocks around the calls to the Relational DAS.

These examples all differ from the expected use of SDO in two important respects.

First, they show all interactions with the database completed within one script. In this respect these scenarios are not realistic but are chosen to illustrate just the use of the Relational DAS. It is expected that interactions with the database will be separated in time and the data graph serialized and deserialized into the PHP session one or more times as the application interacts with an end user.

Second, all queries executed against the database use hard-coded queries with no variables substituted. In this case it is safe to use the simple executeQuery() call, and this is what the examples illustrate. In practice, though, it is unlikely that the SQL statement is known entirely ahead of time. In order to allow variables to be safely substituted into the SQL queries, without running the risk of injecting SQL with unknown effects, it is safer to use the executePreparedQuery() which takes a prepared SQL statement containing placeholders and a list of values to be substituted.


Specifying the metadata

This first long section describes in detail how the metadata describing the database and the required SDO model is supplied to the Relational DAS.

When the constructor for the Relational DAS is invoked, it needs to be passed several pieces of information. The bulk of the information, passed as an associative array in the first argument to the constructor, tells the Relational DAS what it needs to know about the relational database. It describes the names of the tables, columns, primary keys and foreign keys. It should be fairly easy to understand what is required, and once written it can be placed in a php file and included when needed. The remainder of the information, passed in the second and third arguments to the constructor, tells the Relational DAS what it needs to know about the relationships between objects and the shape of the data graph; it ultimately determines how the data from the database is to be normalized into a graph.

Database metadata

The first argument to the constructor describes the target relational database.

Each table is described by an associative array with up to four keys.

Key | Value
name | The name of the table.
columns | An array listing the names of the columns, in any order.
PK | The name of the column containing the primary key.
FK | An array with two entries, 'from' and 'to', which define a column containing a foreign key, and a table to which the foreign key points. If there are no foreign keys in the table then the 'FK' entry does not need to be specified. Only one foreign key can be specified. Only a foreign key pointing to the primary key of a table can be specified.

<?php
/*****************************************************************
* METADATA DEFINING THE DATABASE
******************************************************************/
$company_table = array (
  'name' => 'company',
  'columns' => array('id', 'name',  'employee_of_the_month'),
  'PK' => 'id',
  'FK' => array (
      'from' => 'employee_of_the_month',
      'to' => 'employee',
      ),
  );
$department_table = array (
  'name' => 'department',
  'columns' => array('id', 'name', 'location', 'number', 'co_id'),
  'PK' => 'id',
  'FK' => array (
      'from' => 'co_id',
      'to' => 'company',
      )
  );
$employee_table = array (
  'name' => 'employee',
  'columns' => array('id', 'name', 'SN', 'manager', 'dept_id'),
  'PK' => 'id',
  'FK' => array (
      'from' => 'dept_id',
      'to' => 'department',
      )
  );
$database_metadata = array($company_table, $department_table, $employee_table);
?>

This metadata corresponds to a relational database that might have been defined to MySQL as:

create table company (
 id integer auto_increment,
 name char(20),
 employee_of_the_month integer,
 primary key(id)
);
create table department (
 id integer auto_increment,
 name char(20),
 location char(10),
 number integer(3),
 co_id integer,
 primary key(id)
);
create table employee (
 id integer auto_increment,
 name char(20),
 SN char(4),
 manager tinyint(1),
 dept_id integer,
 primary key(id)
);

or to DB2 as:

create table company ( \
  id integer not null generated by default as identity,  \
  name varchar(20), \
  employee_of_the_month integer, \
  primary key(id) )
create table department ( \
  id integer not null generated by default as identity, \
  name varchar(20), \
  location varchar(10), \
  number integer, \
  co_id integer, \
  primary key(id) )
create table employee ( \
  id integer not null generated by default as identity, \
  name varchar(20), \
  SN char(4), \
  manager smallint, \
  dept_id integer, \
  primary key(id) )

Note that although in this example there are no foreign keys specified to the database and so the database is not expected to enforce referential integrity, the intention behind the co_id column on the department table and the dept_id column on the employee table is they should contain the primary key of their containing company or department record, respectively. So these two columns are acting as foreign keys.

There is a third foreign key in this example, that from the employee_of_the_month column of the company record to a single row of the employee table. Note the difference in intent between this foreign key and the other two. The employee_of_the_month column represents a single-valued relationship: there can be only one employee of the month for a given company. The co_id and dept_id columns represent multi-valued relationships: a company can contain many departments and a department can contain many employees. This distinction will become evident when the remainder of the metadata picks out the company-department and department-employee relationships as containment relationships.

There are a few simple rules to be followed when constructing the database metadata:

  • All tables must have primary keys, and the primary keys must be specified in the metadata. Without primary keys it is not possible to keep track of object identities. As you can see from the SQL statements that create the tables, primary keys can be auto-generated, that is, generated and assigned by the database when a record is inserted. In this case the auto-generated primary key is obtained from the database and inserted into the data object immediately after the row is inserted into the database.

  • It is not necessary to specify in the metadata all the columns that exist in the database, only those that will be used. For example, if the company table had another column that the application did not want to access with SDO, this need not be specified in the metadata. On the other hand it would have done no harm to specify it: if specified in the metadata but never retrieved, or assigned to by the application, then the unused column will not affect anything.

  • In the database metadata note that the foreign key definitions identify not the destination column in the table which is pointed to, but the table name itself. Strictly, the relational model permits the destination of a foreign key to be a non-primary key. Only foreign keys that point to a primary key are useful for constructing the SDO model, so the metadata specifies the table name. It is understood that the foreign key points to the primary key of the given table.

Given these rules, and given the SQL statements that define the database, the database metadata should be easy to construct.

What the Relational DAS does with the metadata

The Relational DAS uses the database metadata to form most of the SDO model. For each table in the database metadata, an SDO type is defined. Each column which can represent a primitive value (columns which are not defined as foreign keys) are added as properties to the SDO type.

All primitive properties are given a type of string in the SDO model, regardless of their SQL type. When writing values back to the database the Relational DAS will create SQL statements that treat the values as strings, and the database will convert them to the appropriate type.

Foreign keys are interpreted in one of two ways, depending on the metadata in the third argument to the constructor that defines the SDO containment relationships. A discussion of this is therefore deferred until the section on SDO containment relationships below.

Specifying the application root type

The second argument to the constructor is the application root type. The true root of each data graph is an object of a special root type and all application data objects come somewhere below that. Of the various application types in the SDO model, one has to be the application type immediately below the root of the data graph. If there is only one table in the database metadata, the application root type can be inferred, and this argument can be omitted.

Specifying the SDO containment relationships

The third argument to the constructor defines how the types in the model are to be linked together to form a graph. It identifies the parent-child relationships between the types which collectively form a graph. The relationships need to be supported by foreign keys to be found in the data, in a way shortly to be described.

The metadata is an array containing one or more associative arrays, each of which identifies a parent and a child. The example below shows a parent-child relationship from company to department, and another from department to employee. Each of these will become an SDO property defining a multi-valued containment relationship in the SDO model.

<?php
$department_containment = array( 'parent' => 'company', 'child' => 'department');
$employee_containment = array( 'parent' => 'department', 'child' => 'employee');

$SDO_containment_metadata = array($department_containment, $employee_containment);
?>

Foreign keys in the database metadata are interpreted as properties with either multi-valued containment relationships or single-valued non-containment references, depending on whether they have a corresponding SDO containment relationship specified in the metadata. In the example here, the foreign keys from department to company (the co_id column in the department table) and from employee to department (the dept_id column in the employee table) are interpreted as supporting the SDO containment relationships. Each containment relationship mentioned in the SDO containment relationships metadata must have a corresponding foreign key present in the database and defined in the database metadata. The values of the foreign key columns for containment relationships do not appear in the data objects, instead each is represented by a containment relationship from the parent to the child. So the co_id column in the department row in the database, for example, does not appear as a property on the department type, but instead as a containment relationship called department on the company type. Note that the foreign key and the parent-child relationship appear to have opposite senses: the foreign key points from the department to the company, but the parent-child relationship points from company to department.

The third foreign key in this example, the employee_of_the_month , is handled differently. This is not mentioned in the SDO containment relationships metadata. As a consequence this is interpreted in the second way: it becomes a single-valued non-containment reference on the company object, to which can be assigned references to SDO data objects of the employee type. It does appear as a property on the company type. The way to assign a value to it in the SDO data graph is to have a graph that contains an employee object through the containment relationships, and to assign the object to it. This is illustrated in the later examples below.


One-table examples

The following set of examples all use the Relational DAS to work with a data graph containing just one application data object, a single company and the data just to be found the company table. These examples do not exercise the power of SDO or the Relational DAS and of course the same result could be achieved more economically with direct SQL statements but they are intended to illustrate how to work with the Relational DAS.

For this very simple scenario it would be possible to simplify the database metadata to include just the company table - if that were done the second and third arguments to the constructor and the column specifier used in the query example would become optional.

Пример #1 Creating a data object

The simplest example is that of creating a single data object and writing it to the database. In this example a single company object is created, its name is set to 'Acme', and the Relational DAS is called to write the changes to the database. The company name is set here using the property name method. See the Examples section on the SDO extension for other ways of accessing the properties of an object.

Data objects can only be created when you have a data object to start with, however. It is for that reason that the first call to the Relational DAS here is to obtain a root object. This is in effect how to ask for an empty data graph - the special root object is the true root of the tree. The company data object is then created with a call to createDataObject() on the root object. This creates the company data object and inserts it in the graph by inserting into a multi-valued containment property on the root object called 'company'.

When the Relational DAS is called to apply the changes a simple insert statement 'INSERT INTO company (name) VALUES ("Acme");' will be constructed and executed. The auto-generated primary key will be set into the data object and the change summary will be reset, so that it would be possible to continue working with the same data object, modify it, and apply the newer changes a second time.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Construct the DAS with the metadata
***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

/**************************************************************
* Obtain a root object and create a company object underneath.
* Make a simple change to the data object.
***************************************************************/
$root = $das  -> createRootDataObject();
$acme = $root -> createDataObject('company');

$acme->name = "Acme";

/**************************************************************
* Get a database connection and write the object to the database
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das -> applyChanges($dbh, $root);
?>

Пример #2 Retrieving a data object

In this example a single data object is retrieved from the database - or possibly more than one if there is more than one company called 'Acme'. For each company returned, the name and id properties are echoed.

In this example the third argument to executeQuery(), the column specifier is needed as there are other tables in the metadata with column names of name and id. If there were no possible ambiguity it could be omitted.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Construct the DAS with the metadata
***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

/**************************************************************
* Get a database connection
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
* Issue a query to obtain a company object - possibly more if they exist
***************************************************************/
$root = $das->executeQuery($dbh,
         'select name, id from company where name="Acme"',
          array('company.name', 'company.id') );

/**************************************************************
* Echo name and id
***************************************************************/
foreach ($root['company'] as $company) {
  echo "Company obtained from the database has name = " .
  $company['name'] . " and id " . $company['id'] . "\n";
}
?>

Пример #3 Updating a data object

This example combines the previous two, in the sense that in order to be updated the object must first be retrieved. The application code reverses the company name (so 'Acme' becomes 'emcA') and then the changes are written back to the database in the same way that they were when the object was created. Because the query searches for the name both ways round the program can be run repeatedly to find the company and reverse its name each time.

In this example the same instance of the Relational DAS is reused for the applyChanges(), as is the PDO database handle. This is quite alright; it also alright to allow the previous instances to be garbage collected and to obtain new instances. No state data regarding the graph is held the Relational DAS once it has returned a data graph to the application. All necessary data is either within the graph itself, or can be reconstructed from the metadata.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Construct the DAS with the metadata
***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

/**************************************************************
* Get a database connection
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
* Issue a query to obtain a company object - possibly more if they exist
***************************************************************/
$root = $das->executeQuery($dbh,
  'select name, id from company where name="Acme" or name="emcA"',
  array('company.name', 'company.id') );

/**************************************************************
* Alter the name of just the first company
***************************************************************/
$company = $root['company'][0];
echo "obtained a company with name of " . $company->name . "\n";
$company->name = strrev($company->name);

/**************************************************************
* Write the change back
***************************************************************/
$das->applyChanges($dbh,$root);
?>

Пример #4 Deleting a data object

Any companies called 'Acme' or its reverse 'emcA' are retrieved. They are then all deleted from the graph with unset.

In this example they are all deleted in one go by unsetting the containing property (the property defining the containment relationship). It is also possible to delete them individually.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Construct the DAS with the metadata
***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

/**************************************************************
* Get a database connection
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
* Issue a query to obtain a company object - possibly more if they exist
***************************************************************/
$root = $das->executeQuery($dbh,
  'select name, id from company where name="Acme" or name="emcA"',
  array('company.name', 'company.id') );

/**************************************************************
* Delete any companies found from the data graph
***************************************************************/
unset($root['company']);

/**************************************************************
* Write the change(s) back
***************************************************************/
$das->applyChanges($dbh,$root);
?>


Two-table examples

The following set of examples all use two tables from the company database: the company and department tables. These examples exercise more of the function of the Relational DAS.

In this series of examples a company and department are created, retrieved, updated, and finally deleted. This illustrates the lifecycle for a data graph containing more than one object. Note that this example clears out the company and department tables at the start so that the exact results of the queries can be known.

You can find these examples combined into one script called 1cd-CRUD in the Scenarios directory in the Relational DAS package.

Пример #1 One company, one department - Create

As in the earlier example of creating just one company data object, the first action after constructing the Relational DAS is to call createRootDataObject() to obtain the special root object of the otherwise empty data graph. The company object is then created as a child of the root object, and the department object as a child of the company object.

When it comes to applying the changes, the Relational DAS has to perform special processing to maintain the foreign keys that support the containment relationships, especially if auto-generated primary keys are involved. In this example, the relationship between the auto-generated primary key id in the company table and the co_id column in the department table must be maintained. When inserting a company and department for the first time the Relational DAS has to first insert the company row, then call PDO's getLastInsertId() method to obtain the auto-generated primary key, then add that as the value of the co_id column when inserting the department row.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Empty out the two tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt = $dbh->prepare('DELETE FROM COMPANY;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM DEPARTMENT;');
$rows_affected = $pdo_stmt->execute();

/**************************************************************
* Create a company with name Acme and one department, the Shoe department
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

$root = $das -> createRootDataObject();

$acme = $root -> createDataObject('company');
$acme -> name = "Acme";

$shoe = $acme->createDataObject('department');
$shoe->name = 'Shoe';

$das -> applyChanges($dbh, $root);

?>

Пример #2 One company, one department - Retrieve and Update

In this case the SQL query passed to executeQuery() performs an inner join to join the data from the company and department tables. Primary keys for both the company and department tables must be included in the query. The result set is re-normalised to form a normalised data graph. Note that a column specifier is passed as the third argument to the executeQuery() call enabling the Relational DAS to know which column is which in the result set.

Note that the co_id column although used in the query is not needed in the result set. In order to understand what the Relational DAS is doing when it builds the data graph it may be helpful to visualise what the result set looks like. Although the data in the database is normalised, so that multiple department rows can point through their foreign key to one company row, the data in the result set is non-normalised: that is, if there is one company and multiple departments, the values for the company are repeated in each row. The Relational DAS has to reverse this process and turn the result set back into a normalised data graph, with just one company object.

In this example the Relational DAS will examine the result set and column specifier, find data for both the company and department tables, find primary keys for both, and interpret each row as containing data for a department and its parent company. If it has not seen data for that company before (it uses the primary key to check) it creates a company object and then a department object underneath it. If it has seen data for that company before and has already created the company object it just creates the department object underneath.

In this way the Relational DAS can retrieve and renormalise data for multiple companies and multiple departments underneath them.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Retrieve the company and Shoe department, then delete Shoe and add IT
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

$root = $das->executeQuery($dbh,
'select c.id, c.name, d.id, d.name from company c, department d where d.co_id = c.id',
array('company.id','company.name','department.id','department.name'));

$acme = $root['company'][0];            // get the first company - will be 'Acme'
$shoe = $acme['department'][0];         // get the first department underneath - will be 'Shoe'

unset($acme['department'][0]);

$it = $acme->createDataObject('department');
$it->name = 'IT';

$das -> applyChanges($dbh, $root);
?>

Пример #3 One company, two departments - Retrieve and Delete

In this example the company and department are retrieved and then deleted. It is not necessary to delete them individually (although that would be possible) - deleting the company object from the data graph also deletes any departments underneath it.

Note the way that the company object is actually deleted using the PHP unset call. The unset has to be performed on the containing property which in this case is the company property on the special root object. You must use:

<?php
unset($root['company'][0]);
?>
and not:
<?php
unset($acme); //WRONG
?>
Simply unsetting $acme would destroy the variable but leave the data in the data graph untouched.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
* Retrieve the company and IT department, then delete the whole company
***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);

$root = $das->executeQuery($dbh,
'select c.id, c.name, d.id, d.name from company c, department d where d.co_id = c.id',
array('company.id','company.name','department.id','department.name'));

$acme = $root['company'][0];
$it = $acme['department'][0];

unset($root['company'][0]);

$das -> applyChanges($dbh, $root);

?>


Three-table example

The following examples use all three tables from the company database: the company, department, and employee tables. These introduce the final piece of function not exercised by the examples above: the non-containment reference employee_of_the_month.

Like the examples above for company and department, this set of examples is intended to illustrate the full lifecycle of such a data graph.

Пример #1 One company, one department, one employee - Create

In this example a company is created containing one department and just one employee. Note that this example clears out all three tables at the start so that the exact results of the queries can be known.

Note how once the company, department and employee have been created, the employee_of_the_month property of the company can be made to point at the new employee. As this is a non-containment reference, this cannot be done until the employee object has been created within the graph. Non-containment references need to be managed carefully. For example if the employee were now deleted from under the department, it would not be correct to try to save the graph without first clearing or re-assigning the employee_of_the_month property. The closure rule for SDO data graphs requires that any object pointed at by a non-containment reference must also be reachable by containment relationships.

When it comes to inserting the graph into the database, the procedure is similar to the example of inserting the company and department, but employee_of_the_month introduces an extra complexity. The Relational DAS needs to insert the objects working down the tree formed by containment relationships, so company, then department, then employee. This is necessary so that it always has the auto-generated primary key of a parent on hand to include in a child row. But when the company row is inserted the employee who is employee of the month has not yet been inserted and the primary key is not known. The procedure is that after the employee record is inserted and its primary key known, a final step is performed in which the company record is updated with the employee's primary key.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Empty out the three tables
*************************************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);
$pdo_stmt = $dbh->prepare('DELETE FROM COMPANY;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM DEPARTMENT;');
$rows_affected = $pdo_stmt->execute();
$pdo_stmt = $dbh->prepare('DELETE FROM EMPLOYEE;');
$rows_affected = $pdo_stmt->execute();

/*************************************************************************************
* Create a tiny but complete company.
* The company name is Acme.
* There is one department, Shoe.
* There is one employee, Sue.
* The employee of the month is Sue.
*************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root             = $das  -> createRootDataObject();
$acme             = $root -> createDataObject('company');
$acme -> name     = "Acme";
$shoe             = $acme -> createDataObject('department');
$shoe -> name     = 'Shoe';
$shoe -> location = 'A-block';
$sue              = $shoe -> createDataObject('employee');
$sue -> name      = 'Sue';
$acme -> employee_of_the_month = $sue;

$das -> applyChanges($dbh, $root);

echo "Wrote back Acme with one department and one employee\n";
?>

Пример #2 One company, one department, one employee - Retrieve and update

The SQL statement passed to the Relational DAS is this time an inner join that retrieves data from all three tables. Otherwise this example introduces nothing that has not appeared in a previous example.

The graph is updated by the addition of a new department and employee and some alterations to the name properties of the existing objects in the graph. The combined changes are then written back. The Relational DAS will process and apply an arbitrary mixture of additions, modifications and deletions to and from the data graph.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Find the company again and change various aspects.
* Change the name of the company, department and employee.
* Add a second department and a new employee.
* Change the employee of the month.
*************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root = $das->executeQuery($dbh,
  "select c.id, c.name, c.employee_of_the_month, d.id, d.name, e.id, e.name " .
  "from company c, department d, employee e " .
  "where e.dept_id = d.id and d.co_id = c.id and c.name='Acme'",
   array('company.id','company.name','company.employee_of_the_month',
   'department.id','department.name','employee.id','employee.name'));
$acme         = $root['company'][0];

$shoe         = $acme->department[0];
$sue          = $shoe -> employee[0];

$it           = $acme->createDataObject('department');
$it->name     = 'IT';
$it->location = 'G-block';
$billy        = $it->createDataObject('employee');
$billy->name  = 'Billy';

$acme->name   = 'MegaCorp';
$shoe->name   = 'Footwear';
$sue->name    = 'Susan';

$acme->employee_of_the_month = $billy;
$das -> applyChanges($dbh, $root);
echo "Wrote back company with extra department and employee and all the names changed (Megacorp/Footwear/Susan)\n";

?>

Пример #3 One company, two departments, two employees - Retrieve and delete

The company is retrieved as a complete data graph containing five data objects - the company, two departments and two employees. They are all deleted by deleting the company object. Deleting an object from the graph deletes all the object beneath it in the graph. Five SQL DELETE statements will be generated and executed. As always they will be qualified with a WHERE clause that contains all of the fields that were retrieved, so that any updates to the data in the database in the meantime by another process will be detected.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/*************************************************************************************
* Now read it one more time and delete it.
* You can delete part, apply the changes, then carry on working with the same graph but
* care is needed to keep closure - you cannot delete the employee who is eotm without
* reassigning. For safety here we delete the company all in one go.
*************************************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_containment_metadata);
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

$root = $das->executeQuery($dbh,
  "select c.id, c.name, c.employee_of_the_month, d.id, d.name, e.id, e.name " .
  "from company c, department d, employee e " .
  "where e.dept_id = d.id and d.co_id = c.id and c.name='MegaCorp';",
   array('company.id','company.name','company.employee_of_the_month',
   'department.id','department.name','employee.id','employee.name'));
$megacorp = $root['company'][0];

unset($root['company']);
$das -> applyChanges($dbh, $root);

echo "Deleted the company, departments and employees all in one go.\n";

?>


Limitations

There are the following limitations in the current release of the Relational DAS:

  • No support for nulls. There is no support for SQL NULL type. It is not legal to assign PHP NULL to a data object property and the Relational DAS will not write that back as a NULL to the database. If nulls are found in the database on a query, the property will remain unset.

  • Only two types of SDO relationship. The metadata described below allows the Relational DAS to model just two types of SDO relationship: multi-valued containment relationships and single-valued non-containment references. In SDO, whether a property describes a single- or multi-valued relationship, and whether it is containment or non-containment, are independent. The full range of possibilities that SDO allows cannot all be defined. There may be relationships that it would be useful to model but which the current implementation cannot manage. One example is a single-valued containment relationship.

  • No support for the full range of SDO data types. The Relational DAS defines all primitive properties in the SDO model as being of type string. SDO defines a richer set of types containing various integer, float, boolean and data and time types. String is adequate for the purposes of the Relational DAS since the combination of PHP, PDO and the database will ensure that values passed as strings will be converted to the proper type before being put in the database. This does affect some scenarios in which the Relational DAS has to work with a data graph that has come from or will go to a different DAS.

  • Only one foreign key per table. The metadata only provides the means to specify one foreign key per table. This foreign key may be mapped to one of the two types of SDO relationship supported. Obviously there are some scenarios that cannot be described under this limitation - it is not possible to have two non-containment references from one table to another for example.


SDO-DAS-Relational Функции

Предопределенные классы

The Relational DAS provides two classes: the Relational DAS itself and the subclass of Exception that can be thrown. The Relational DAS has four publicly useful calls: the constructor, the createRootDataObject() call to obtain the root object of an empty data graph, the executeQuery() call to obtain a data graph containing data from a relational database, and the applyChanges() call to write changes made to a data graph back to the relational database.

SDO_DAS_Relational

The only object other than an SDO_DAS_Relational_Exception with which the application is expected to interact.

Методы

  • __construct - construct the Relational DAS with a model derived from the passed metadata

  • createRootDataObject - obtain an otherwise empty data graph containing just the special root object

  • executeQuery - execute an SQL query passed as a literal string and return the results as a normalised data graph

  • executePreparedQuery - execute an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph

  • applyChanges - examine the change summary in the data graph and apply those changes back to the database, subject to an assumption of optimistic concurrency

SDO_DAS_Relational_Exception

Is a subclass of PHP's Exception. It adds no behaviour to Exception. Thrown, with useful descriptive text, to signal errors in the metadata or unexpected failures to perform SQL operations.

Содержание

  • SDO_DAS_Relational::applyChanges — Applies the changes made to a data graph back to the database.
  • SDO_DAS_Relational::__construct — Creates an instance of a Relational Data Access Service
  • SDO_DAS_Relational::createRootDataObject — Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch.
  • SDO_DAS_Relational::executePreparedQuery — Executes an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph.
  • SDO_DAS_Relational::executeQuery — Executes a given SQL query against a relational database and returns the results as a normalised data graph.


Applies the changes made to a data graph back to the database.

  • « SDO-DAS-Relational Функции
  • SDO_DAS_Relational::__construct »
  • PHP Manual
  • SDO-DAS-Relational Функции
  • Applies the changes made to a data graph back to the database.

SDO_DAS_Relational::applyChanges

(^)

SDO_DAS_Relational::applyChanges — Applies the changes made to a data graph back to the database.

Описание

void SDO_DAS_Relational::applyChanges ( PDO $database_handle , SDODataObject $root_data_object )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Given a PDO database handle and the special root object of a data graph, examine the change summary in the datagraph and applies the changes to the database. The changes that it can apply can be creations of data objects, deletes of data objects, and modifications to properties of data objects.

Список параметров

PDO_database_handle

Constructed using the PDO extension. A typical line to construct a PDO database handle might look like this:

$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

root_data_object

The special root object which is at the top of every SDO data graph.

Возвращаемые значения

None. Note however that the datagraph that was passed is still intact and usable. Furthermore, if data objects were created and written back to a table with autogenerated primary keys, then those primary keys will now be set in the data objects. If the changes were successfully written, then the change summary associated with the datagraph will have been cleared, so that it is possible to now make further changes to the data graph and apply those changes in turn. In this way it is possible to work with the same data graph and apply changes repeatedly.

Ошибки

SDO_DAS_Relational::applyChanges() can throw an SDO_DAS_Relational_Exception if it is unable to apply all the changes correctly.

The Relational DAS starts a database transaction before beginning to apply the changes and will commit the transaction only if they are all successful. The Relational DAS generates qualified update and delete statements which contain a where clause that specifies that the row to be updated or deleted must contain the same values that it did when the data was first retrieved. This is how the optimistic concurrency is implemented. If any of the qualified update or delete statements fails to update or delete their target row, it may be because the data has been altered in the database in the meantime. In any event, if any update fails for any reason, the transaction is rolled back and an exception thrown. The exception will contain the generated SQL statement that failed.

The Relational DAS also catches any PDO exceptions and obtains PDO diagnostic information which it includes in an SDO_DAS_Relational_Exception which it then throws.

Примеры

Please see the Examples section in the general information about the Relational DAS for many examples of calling this method. Please see also the section on Tracing to see how you can see what SQL statements are generated by the Relational DAS.


Creates an instance of a Relational Data Access Service

  • « SDO_DAS_Relational::applyChanges
  • SDO_DAS_Relational::createRootDataObject »
  • PHP Manual
  • SDO-DAS-Relational Функции
  • Creates an instance of a Relational Data Access Service

SDO_DAS_Relational::__construct

(^)

SDO_DAS_Relational::__construct — Creates an instance of a Relational Data Access Service

Описание

SDO_DAS_Relational::__construct ( array $database_metadata [, string $application_root_type [, array $SDO_containment_references_metadata ]] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Constructs an instance of a Relational Data Access Service from the passed metadata.

Список параметров

database_metadata

An array containing one or more table definitions, each of which is an associative array containing the keys name, columns, PK, and optionally, FK. For a full discussion of the metadata, see the metadata section in the general information about the Relational DAS.

application_root_type

The root of each data graph is an object of a special root type and the application data objects come below that. Of the various application types in the SDO model, one has to be the application type immediately below the root of the data graph. If there is only one table in the database metadata, so the application root type can be inferred, this argument can be omitted.

SDO_containment_references_metadata

An array containing one or more definitions of a containment relation, each of which is an associative array containing the keys parent and child. The containment relations describe how the types in the model are connected to form a tree. The type specified as the application root type must be present as one of the parent types in the containment references. If the application only needs to work with one table at a time, and there are no containment relations in the model, this argument can be omitted. For a full discussion of the metadata, see the metadata section in the general information about the Relational DAS.

Возвращаемые значения

Returns an SDO_DAS_Relational object on success.

Ошибки

SDO_DAS_Relational::__construct() throws a SDO_DAS_Relational_Exception if any problems are found in the metadata.

Примеры

For a full discussion of the metadata, see the metadata section in the general information about the Relational DAS.


Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch.

  • « SDO_DAS_Relational::__construct
  • SDO_DAS_Relational::executePreparedQuery »
  • PHP Manual
  • SDO-DAS-Relational Функции
  • Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch.

SDO_DAS_Relational::createRootDataObject

(^)

SDO_DAS_Relational::createRootDataObject — Returns the special root object in an otherwise empty data graph. Used when creating a data graph from scratch.

Описание

SDODataObject SDO_DAS_Relational::createRootDataObject ( void )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Returns the special root object at the top of an otherwise empty data graph. This call is used when the application wants to create a data graph from scratch, without having called executeQuery() to create a data graph.

The special root object has one multi-valued containment property, with a name of the application root type that was passed when the Relational DAS was constructed. The property can take values of only that type. The only thing that the application can usefully do with the root type is to call createDataObject() on it, passing the name of the application root type, in order to create a data object of their own application type.

Список параметров

None.

Возвращаемые значения

The root object.

Ошибки

None.

Примеры

Please see the Examples section in the general information about the Relational DAS for many examples of calling this method.


Executes an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph.

  • « SDO_DAS_Relational::createRootDataObject
  • SDO_DAS_Relational::executeQuery »
  • PHP Manual
  • SDO-DAS-Relational Функции
  • Executes an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph.

SDO_DAS_Relational::executePreparedQuery

(^)

SDO_DAS_Relational::executePreparedQuery — Executes an SQL query passed as a prepared statement, with a list of values to substitute for placeholders, and return the results as a normalised data graph.

Описание

SDODataObject SDO_DAS_Relational::executePreparedQuery ( PDO $database_handle , PDOStatement $prepared_statement , array $value_list [, array $column_specifier ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Executes a given query against the relational database, using the supplied PDO database handle. Differs from the simpler executeQuery() in that it takes a prepared statement and a list of values. This is the appropriate call to use either when the statement is to executed a number of times with different arguments, and there is therefore a performance benefit to be had from preparing the statement only once, or when the SQL statement is to contain varying values taken from a source that cannot be completely trusted. In this latter case it may be unsafe to construct the SQL statement by simply concatenating the parts of the statement together, since the values may contain pieces of SQL. To guard against this, a so-called SQL injection attack, it is safer to prepare the SQL statement with placeholders (also known as parameter markers, denoted by '?') and supply a list of the values to be substituted as a separate argument. Otherwise this function is the same as executeQuery() in that it uses the model that it built from the metadata to interpret the result set and returns a data graph.

Список параметров

PDO_database_handle

Constructed using the PDO extension. A typical line to construct a PDO database handle might look like this:

$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

prepared_statement

A prepared SQL statement to be executed against the database. This will have been prepared by PDO's prepare() method.

value_list

An array of the values to be substituted into the SQL statement in place of the placeholders. In the event that there are no placeholders or parameter markers in the SQL statement then this argument can be specified as NULL or as an empty array;

column_specifier

The Relational DAS needs to examine the result set and for every column, know which table and which column of that table it came from. In some circumstances it can find this information for itself, but sometimes it cannot. In these cases a column specifier is needed, which is an array that identifies the columns. Each entry in the array is simply a string in the form table-name.column_name.

The column specifier is needed when there are duplicate column names in the database metadata, For example, in the database used within the examples, all the tables have both a id and a name column. When the Relational DAS fetches the result set from PDO it can do so with the PDO_FETCH_ASSOC attribute, which will cause the columns in the results set to be labelled with the column name, but will not distinguish duplicates. So this will only work when there are no duplicates possible in the results set.

To summarise, specify a column specifier array whenever there is any uncertainty about which column could be from which table and only omit it when every column name in the database metadata is unique.

All of the examples in the Examples use a column specifier. There is one example in the Scenarios directory of the installation that does not: that which works with just the employee table, and because it works with just one table, there can not exist duplicate column names.

Возвращаемые значения

Returns a data graph. Specifically, it returns a root object of a special type. Under this root object will be the data from the result set. The root object will have a multi-valued containment property with the same name as the application root type specified on the constructor, and that property will contain one or more data objects of the application root type.

In the event that the query returns no data, the special root object will still be returned but the containment property for the application root type will be empty.

Ошибки

SDO_DAS_Relational::executePreparedQuery() can throw an SDO_DAS_Relational_Exception if it is unable to construct the data graph correctly. This can occur for a number of reasons: for example if it finds that it does not have primary keys in the result set for all the objects. It also catches any PDO exceptions and obtains PDO diagnostic information which it includes in an SDO_DAS_Relational_Exception which it then throws.

Примеры

Пример #1 Retrieving a data object using executePreparedQuery()

In this example a single data object is retrieved from the database - or possibly more than one if there is more than one company called 'Acme'. For each company returned, the name and id properties are echoed.

Other examples of the use of executePreparedQuery() can be found in the example code supplied in sdo/DAS/Relational/Scenarios.

<?php
require_once 'SDO/DAS/Relational.php';
require_once 'company_metadata.inc.php';

/**************************************************************
 * Construct the DAS with the metadata
 ***************************************************************/
$das = new SDO_DAS_Relational ($database_metadata,'company',$SDO_reference_metadata);

/**************************************************************
 * Get a database connection
 ***************************************************************/
$dbh = new PDO(PDO_DSN,DATABASE_USER,DATABASE_PASSWORD);

/**************************************************************
 * Issue a query to obtain a company object - possibly more if they exist
 * Use a prepared query with a placeholder.
 ***************************************************************/
$name = 'Acme';
$pdo_stmt = $dbh->prepare('select name, id from company where name=?');
$root = $das->executePreparedQuery(
    $dbh,
    $pdo_stmt,
    array($name),
    array('company.name', 'company.id'));

/**************************************************************
 * Echo name and id
 ***************************************************************/
foreach ($root['company'] as $company) {
    echo "Company obtained from the database has name = " .
    $company['name'] . " and id " . $company['id'] . "\n";
}
?>


Executes a given SQL query against a relational database and returns the results as a normalised data graph.

  • « SDO_DAS_Relational::executePreparedQuery
  • SDO DAS XML »
  • PHP Manual
  • SDO-DAS-Relational Функции
  • Executes a given SQL query against a relational database and returns the results as a normalised data graph.

SDO_DAS_Relational::executeQuery

(^)

SDO_DAS_Relational::executeQuery — Executes a given SQL query against a relational database and returns the results as a normalised data graph.

Описание

SDODataObject SDO_DAS_Relational::executeQuery ( PDO $database_handle , string $SQL_statement [, array $column_specifier ] )
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Executes a given query against the relational database, using the supplied PDO database handle. Uses the model that it built from the metadata to interpret the result set. Returns a data graph.

Список параметров

PDO_database_handle

Constructed using the PDO extension. A typical line to construct a PDO database handle might look like this:

$dbh = new PDO("mysql:dbname=COMPANYDB;host=localhost",DATABASE_USER,DATABASE_PASSWORD);

SQL_statement

The SQL statement to be executed against the database.

column_specifier

The Relational DAS needs to examine the result set and for every column, know which table and which column of that table it came from. In some circumstances it can find this information for itself, but sometimes it cannot. In these cases a column specifier is needed, which is an array that identifies the columns. Each entry in the array is simply a string in the form table-name.column_name.

The column specifier is needed when there are duplicate column names in the database metadata. For example, in the database used within the examples, all the tables have both a id and a name column. When the Relational DAS fetches the result set from PDO it can do so with the PDO_FETCH_ASSOC attribute, which will cause the columns in the results set to be labelled with the column name, but will not distinguish duplicates. So this will only work when there are no duplicates possible in the results set.

To summarise, specify a column specifier array whenever there is any uncertainty about which column could be from which table and only omit it when every column name in the database metadata is unique.

All of the examples in the Examples use a column specifier. There is one example in the Scenarios directory of the installation that does not: that which works with just the employee table, and because it works with just one table, there can not exist duplicate column names.

Возвращаемые значения

Returns a data graph. Specifically, it returns a root object of a special type. Under this root object will be the data from the result set. The root object will have a multi-valued containment property with the same name as the application root type specified on the constructor, and that property will contain one or more data objects of the application root type.

In the event that the query returns no data, the special root object will still be returned but the containment property for the application root type will be empty.

Ошибки

SDO_DAS_Relational::executeQuery() can throw an SDO_DAS_Relational_Exception if it is unable to construct the data graph correctly. This can occur for a number of reasons: for example if it finds that it does not have primary keys in the result set for all the objects. It also catches any PDO exceptions and obtains PDO diagnostic information which it includes in an SDO_DAS_Relational_Exception which it then throws.

Примеры

Please see the Examples section in the general information about the Relational DAS for many examples of calling this method.


SDO XML Data Access Service

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
  • SDO DAS XML Функции
    • SDO_DAS_XML::addTypes — To load a second or subsequent schema file to a SDO_DAS_XML object
    • SDO_DAS_XML::create — To create SDO_DAS_XML object for a given schema file
    • SDO_DAS_XML::createDataObject — Creates SDO_DataObject for a given namespace URI and type name
    • SDO_DAS_XML::createDocument — Creates an XML Document object from scratch, without the need to load a document from a file or string.
    • SDO_DAS_XML::loadFile — Returns SDO_DAS_XML_Document object for a given path to xml instance document
    • SDO_DAS_XML::loadString — Returns SDO_DAS_XML_Document for a given xml instance string
    • SDO_DAS_XML::saveFile — Saves the SDO_DAS_XML_Document object to a file
    • SDO_DAS_XML::saveString — Saves the SDO_DAS_XML_Document object to a string
    • SDO_DAS_XML_Document::getRootDataObject — Returns the root SDO_DataObject
    • SDO_DAS_XML_Document::getRootElementName — Returns root element's name
    • SDO_DAS_XML_Document::getRootElementURI — Returns root element's URI string
    • SDO_DAS_XML_Document::setEncoding — Sets the given string as encoding
    • SDO_DAS_XML_Document::setXMLDeclaration — Sets the xml declaration
    • SDO_DAS_XML_Document::setXMLVersion — Sets the given string as xml version


Введение

In order to use the XML Data Access Service for Service Data Objects, you will need to understand some of the concepts behind SDO: the data graph, the data object, XPath and property expressions, and so on. If you are not familiar with these ideas, you might want to look first at the section on SDO.

The job of the XML DAS is to move data between the application and an XML data source, which can be either a file or a URL. SDOs are always created and maintained according to a model which defines type names and what property names each type may have. For data which is from XML, this SDO model is built from a schema file written in XML schema language (an xsd file). This schema file is usually passed to the create method when the XMLDAS is initialised. The » SDO 2.0 specification defines the mapping between XML types and SDO types. There are a number of small limitations in the PHP support - not everything which is in the specification can be done - and these limitations are summarised in a later section.


Требования

The SDO XML Data Access Service requires PHP 5.1.0 or higher. It is packaged with the SDO extension and requires SDO to have been installed. See the SDO installation instructions for the details of how to do this.


Установка

The XML Data Access Service is packaged and installed as part of the SDO extension. Please Refer SDO installation instructions.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • SDO DAS XML
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


Примеры

Several of the following examples are based on the letter example described in the SDO documentation. The examples assume the XML Schema for the letter is contained in a file letter.xsd and the letter instance is in the file letter.xml. These two files are reproduced here:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:letter="http://letterSchema"
  targetNamespace="http://letterSchema">
  <xsd:element name="letters" type="letter:FormLetter"/>
  <xsd:complexType name="FormLetter" mixed="true">
    <xsd:sequence>
      <xsd:element name="date" minOccurs="0" type="xsd:string"/>
      <xsd:element name="firstName" minOccurs="0" type="xsd:string"/>
      <xsd:element name="lastName" minOccurs="0" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

<letter:letters xmlns:letter="http://letterSchema">
  <date>March 1, 2005</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Casy</firstName>
  <lastName>Crocodile</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</letter:letters>

Пример #1 Loading, altering, and saving an XML document

The following example shows how an XML document can be loaded from a file, altered, and written back.

<?php
/**
 * Load, update, and save an XML document
 */
try {
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   $document = $xmldas->loadFile("letter.xml");
   $root_data_object = $document->getRootDataObject();
   $root_data_object->date = "September 03, 2004";
   $root_data_object->firstName = "Anantoju";
   $root_data_object->lastName = "Madhu";
   $xmldas->saveFile($document, "letter-out.xml");
   echo "New file has been written:\n";
   print file_get_contents("letter-out.xml");
} catch (SDO_Exception $e) {
   print($e->getMessage());
}
?>

An instance of the XML DAS is first obtained from the SDO_DAS_XML::create() method, which is a static method of the SDO_DAS_XML class. The location of the xsd is passed as a parameter. Once we have an instance of the XML DAS initialised with a given schema, we can use it to load the instance document using the loadFile() method. There is also a loadString() method if you want to load an XML instance document from a string. If the instance document loads successfully, you will be returned an object of type SDO_DAS_XML_Document, on which you can call the getRootDataObject() method to get the SDO data object which is the root of the SDO data graph. You can then use SDO operations to change the graph. In this example we alter the date, firstName, and lastName properties. Then we use the saveFile() method to write the changed document back to the file system. The saveFile method has an optional extra integer argument which if specified will cause the XML DAS to format the XML, using the integer as the amount to indent by at each change in level on the document.

This will write the following to letter-out.xml.

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <date>September 03, 2004</date>
  Mutual of Omaha
  Wild Kingdom, USA
  Dear
  <firstName>Anantoju</firstName>
  <lastName>Madhu</lastName>
  Please buy more shark repellent.
  Your premium is past due.
</FormLetter>

Пример #2 Creating a new XML document

The previous example loaded the document from a file. This example shows how to create an SDO data graph in memory. In this example it is then saved to an XML string. Furthermore, because the letter contains both structured and unstructured content, it uses the Sequence API as well assignments to properties to construct the data graph.

<?php
/**
 * Create an XML document from scratch
 */
try {
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   try {
       $doc = $xmldas->createDocument();
       $rdo = $doc->getRootDataObject();
       $seq = $rdo->getSequence();
       $seq->insert("April 09, 2005", NULL, 'date');
       $seq->insert("Acme Inc. ", NULL, NULL);
       $seq->insert("United Kingdom. ");
       $seq->insert("Dear", NULL, NULL);
       $seq->insert("Tarun", NULL, "firstName");
       $seq->insert("Nayaraaa", NULL, "lastName");
       $rdo->lastName = "Nayar";
       $seq->insert("Please note that your order number ");
       $seq->insert(12345);
       $seq->insert(" has been dispatched today. Thanks for your business with us.");
       print($xmldas->saveString($doc));
   } catch (SDO_Exception $e) {
       print($e);
   }
} catch (SDO_Exception $e) {
   print("Problem creating an XML document: " . $e->getMessage());
}
?>

The createDocument() method on the XML DAS returns a document object with a single root data object corresponding to an empty document element. The element name of the document element is known from the schema file. If there is any ambiguity about what the document element is, as there can be when more than one schema has been loaded into the same XML DAS, the element name and the namespace URI can be passed to the createDocument() method.

This will emit the following output (line breaks have been inserted for readability):

<?xml version="1.0" encoding="UTF-8"?>
<FormLetter xmlns="http://letterSchema" xsi:type="FormLetter"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<date>April 09, 2005</date>
Acme Inc. United Kingdom.
Dear
<firstName>Tarun</firstName>
<lastName>Nayar</lastName>
Please note that your order number 12345 has been
dispatched today. Thanks for your business with us.
</FormLetter>

Пример #3 Setting XML document properties

This third example shows you how to set the XML version and encoding on the document object. These will be used when the XML is written out. If no XML declaration is wanted at all (perhaps you want to generate the XML as a string to embed in something) then you can use the setXMLDeclaration() method to suppress it.

<?php
/**
 * Illustrate the calls that control the XML declaration
 */
   $xmldas = SDO_DAS_XML::create("letter.xsd");
   $document = $xmldas->loadFile("letter.xml");
   $document->setXMLVersion("1.1");
   $document->setEncoding("ISO-8859-1");
   print($xmldas->saveString($document));
?>

The XML version and encoding are set in the XML declaration at the top of the XML document.

<?xml version="1.1" encoding="utf-8"?>
.../...

Пример #4 Using an open type

This fourth example illustrates the use of an SDO open type and the use of the createDataObject() method. For this example we use the following two schema:

<schema
  xmlns="http://www.w3.org/2001/XMLSchema">

  <element name="jungle">
    <complexType>
      <sequence>
        <any minOccurs="0" maxOccurs="unbounded"/>
      </sequence>
    </complexType>
  </element>

</schema>

Note the presence of the any element in the definition. This first schema defines the jungle complex type as containing a sequence of any other type. The other types that the example will use are defined in a second schema file:

<schema xmlns= "http://www.w3.org/2001/XMLSchema">

   <complexType name="snakeType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "length" type="positiveInteger" />
     </sequence>
   </complexType>

   <complexType name="bearType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "weight" type="positiveInteger" />
     </sequence>
   </complexType>

   <complexType name="pantherType">
     <sequence>
       <element name= "name" type="string"/>
       <element name= "colour" type="string" />
     </sequence>
   </complexType>

</schema>

Here is the example PHP code that uses these two schema files:

<?php

/**
 * Illustrate open types and the use of the addTypes() method
 */

$xmldas = SDO_DAS_XML::create();
$xmldas->addTypes("jungle.xsd"); // this is an open type i.e. the xsd specifies it can contain "any" type
$xmldas->addTypes('animalTypes.xsd');

$baloo            = $xmldas->createDataObject('','bearType');
$baloo->name      = "Baloo";
$baloo->weight    = 800;

$bagheera         = $xmldas->createDataObject('','pantherType');
$bagheera->name   = "Bagheera";
$bagheera->colour = 'inky black';

$kaa              = $xmldas->createDataObject('','snakeType');
$kaa->name        = "Kaa";
$kaa->length      = 25;

$document         = $xmldas->createDocument();
$do               = $document->getRootDataObject();
$do->bear         = $baloo;
$do->panther      = $bagheera;
$do->snake        = $kaa;

print($xmldas->saveString($document,2));

?>

These two schema files are loaded into the XML DAS with first the create() and addTypes() methods. The createDataObject() method is used to create three separate data objects. In each case the namespaceURI and typename of the type are passed to the createDataObject() method: in this example the namespace URI is blank because no namespace is used in the schema. Once the three data objects - representing a bear, a panther and a snake - have been created, a document object is created with the createDocument() method. In this case there is no ambiguity about what the document element of the document should be - as the second schema file only defines complex types, the document element can only be the global jungle element defined in the first schema. This document will have a single root data object corresponding to an empty document element jungle. As this is an open type, properties can be added at will. When the first assignment is made to $do->bear, a property bear is added to the root data object: likewise for the next two assignments. When the document is written out by the saveString() method, the resulting document is:

<?xml version="1.0" encoding="UTF-8"?>
<jungle xsi:type="jungle" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <bear xsi:type="bearType">
    <name>Baloo</name>
    <weight>800</weight>
  </bear>
  <panther xsi:type="pantherType">
    <name>Bagheera</name>
    <colour>inky black</colour>
  </panther>
  <snake xsi:type="snakeType">
    <name>Kaa</name>
    <length>25</length>
  </snake>
</jungle>

Пример #5 Finding out what you can from the document

This example is intended to illustrate how you can find the element name and namespace of the document element from the XML Document object, and the SDO type and namespace from the root data object of the XML data object, and how they relate to one another. This can be difficult to understand because there are four method calls: two can be made against the Document object, and two that can be made against any data object including the root data object. Because of the rules that define how the SDO model is derived from the XML model, when the data object concerned is the root object that represents the document object for the document, only three possible values can come back from these four method calls.

The two method calls that can be made against the document are getRootElementName() and getRootEelementURI(). These return the element name and namespace of the document element, respectively.

The two method calls that can be made against any data object are getTypeName() and getTypeNamespaceURI(). These return the SDO type name and type namespace of the data object, respectively.

Always, calling getRootElementURI() on the document object will return the same value as calling getNamespaceURI() on the root data object. Essentially, the information is all derived from the first few lines of the schema file, where there are three distinct pieces of information. For illustration, here again are the first few lines of the letter.xsd that we used above.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:letter="http://letterSchema"
            targetNamespace="http://letterSchema">

  <xsd:element name="letters" type="letter:FormLetter"/>

  <xsd:complexType name="FormLetter" mixed="true">
    .../...

The three important values are:

  • letters, the name of the document element

  • FormLetter, the name of the complex type of the document element. This is also the name of the SDO type of the root data object.

  • http://letterSchema, the namespace to which the document element belongs. This is also the namespaceURI of the SDO type of the root data object.

It is part of the XML-SDO mapping rules that when the SDO model is built from the schema file, the typename and namespaceURI of the SDO types for the root element are taken from those of the complex type of the document element, where it exists. Hence in this example the typename of the root data object is FormLetter. In the event that there is no separate complex type definition for the document element, when the type is defined inline and is anonymous, the SDO type name will be the same as the element name.

The following program loads the letter document and checks the return values from each of the four calls.

<?php
/**
 * Finding out what you can about the document and document element
 * This can be quite hard to understand because there are four calls
 * Two calls are made against the document
 * Two calls are made against the root data object and its model
 * Because of the SDO-XML mapping rules and how the SDO model is derived
 * from the XML model, only three possible values can come back from these four calls.
 * Always, $document->getRootElementURI() == (type of root data object)->namespaceURI
 * Essentially, it all comes form the first few lines of the xsd:
 * <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 *   xmlns:letter="http://letterSchema"
 *   targetNamespace="http://letterSchema">
 *   <xsd:element name="letters" type="letter:FormLetter"/>
 */

$xmldas = SDO_DAS_XML::create("letter.xsd");
$document = $xmldas->loadFile("letter.xml");
$root_do = $document->getRootDataObject();

/**
 * The "root element name" is the element name of the document element
 * in this case 'letters'
 * This matches the 'name' attribute of the document element in the xsd and matches
 * the element name from the xml
 */
echo "The document element name is " . $document->getRootElementName() . "\n";
assert($document->getRootElementName() == 'letters'); // a property of the document

/**
 * The "root element URI" is the namespace part of the element name of the document element
 * in this case 'http://letterSchema' since 'letters' is in that namespace
 * This is taken from the xsd and matches the namespace picked up from the xml
 */
echo "The document element is in the namespace " . $document->getRootElementURI() . "\n";
assert($document->getRootElementURI() == 'http://letterSchema'); // a property of the document

/**
 * The type name is taken from the SDO model
 * The XML-SDO mapping rules make this either:
 *   The name of the complexType if there is one (in this case there is)
 *   The document element name if there no complexType
 * This is taken from the xsd
 */
echo "The type name of the root data object is " . $root_do->getTypeName() . "\n";
assert($root_do->getTypeName() == 'FormLetter');

/**
 * The type's namespaceURI is taken from the SDO model
 * The XML-SDO mapping rules ensure that this will always be the same as
 * the namepace URI of the document element
 */
echo "The namespaceURI of the root data object is " . $root_do->getTypeNamespaceURI() . "\n";
assert($root_do->getTypeNamespaceURI() == 'http://letterSchema');

?>

The output from this program is as follows:

The document element name is letters
The document element is in the namespace http://letterSchema
The type name of the root data object is FormLetter
The namespaceURI of the root data object is http://letterSchema

Пример #6 Printing the SDO model

The XML DAS provides a simple means to see what types and properties have been loaded. The php "print" or "echo" instruction will print out the types and properties.

<?php
/**
 * Illustrate printing out the model
 */

$xmldas = SDO_DAS_XML::create("letter.xsd");
print $xmldas;

?>

The output from this program is as follows:

object(SDO_XML_DAS)#1 {
18 types have been defined. The types and their properties are::
1. commonj.sdo:BigDecimal
2. commonj.sdo:BigInteger
3. commonj.sdo:Boolean
4. commonj.sdo:Byte
5. commonj.sdo:Bytes
6. commonj.sdo:ChangeSummary
7. commonj.sdo:Character
8. commonj.sdo:DataObject
9. commonj.sdo:Date
10. commonj.sdo:Double
11. commonj.sdo:Float
12. commonj.sdo:Integer
13. commonj.sdo:Long
14. commonj.sdo:Short
15. commonj.sdo:String
16. commonj.sdo:URI
17. http://letterSchema:FormLetter
    - date (commonj.sdo:String)
    - firstName (commonj.sdo:String)
    - lastName (commonj.sdo:String)
18. http://letterSchema:RootType
    - letters (http://letterSchema:FormLetter)


SDO DAS XML Функции

Предопределенные классы

The XML DAS provides two main classes. The first is SDO_DAS_XML which is the main class used to fetch the data from the XML source and used to write the data back. The second is the SDO_DAS_XML_Document class, which represents the data in the XML document.

There are also some exception classes which can be thrown if errors are found when looking for or parsing the xsd or xml files.

SDO_DAS_XML

This is the main class of the XML DAS, which is used fetch the data from the xml source and also used to write the data back. Other than the methods to load and save xml files,

Методы

  • create This is a static method available in the SDO_DAS_XML class. Used to construct an SDO_DAS_XML object.

  • addTypes Works in much the same way as create() but used to add the contents of a second or subsequent schema file to an XML DAS that has already been created.

  • createDataObject Can be used to construct an SDO data object of a given type.

  • createDocument Can be used to construct an XML Document object from scratch.

  • loadFile Loads the xml instance document from a file. This file can be at local file system or it can be on a remote host.

  • loadString same as the above method. Loads the xml instance which is available as string.

  • saveFile save SDO_DAS_XML_Document object as a xml file.

  • saveString save SDO_DAS_XML_Document object as a xml string.

SDO_DAS_XML_Document

This class can be used to get to the name and namespace of the document element, and to get to the root data object of the document. Lastly, it can also be used to set the XML version and encoding of a document on output.

Методы

  • getRootDataObject gets the root DataObject.

  • getRootElementName gets the root DataObject's name.

  • getRootElementURI gets the root DataObject's URI.

  • setEncoding sets the encoding string with the given value.

  • setXMLDeclaraion to set/unset the xml declaration.

  • setXMLVersion sets the xml version with the given value.

SDO_DAS_XML_ParserException

Is a subclass of SDO_Exception. Thrown for any parser errors while loading the xsd/xml file.

SDO_DAS_XML_FileException

Is a subclass of SDO_Exception. Thrown by any of the methods that load data from a file, when the file cannot be found.

Limitations compared with SDO 2.0 specification

The » SDO 2.0 specification defines the mapping between XML types and SDO types. With Java SDO, this mapping is implemented by the XMLHelper. With SDO for PHP, this mapping is implemented by the XML Data Access Service. The XML DAS implements the mapping described in the SDO 2.0 specification with some restrictions. A detailed list is of the limitations is:

XML Simple Types

  1. Simple Type with sdoJava:instanceClass - no PHP equivalent provided.

  2. Simple Type with sdoJava:extendedInstanceClass - no PHP equivalent provided.

  3. Simple Type with list of itemType.

  4. Simple Type with union.

XML Complex Types

  1. Complex Type with sdo:aliasName - no PHP support for SDO Type aliases.

XSD Attribute

  1. Attribute with sdo:aliasName - no PHP support for SDO property aliases.

  2. Attribute with default value - no PHP support for SDO property defaults.

  3. Attribute with fixed value - no PHP support for SDO read-only properties or default values.

  4. Attribute referencing a DataObject with sdo:propertyType - no support for sdo:propertyType="...".

  5. Attribute with bi-directional property to a DataObject with sdo:oppositeProperty and sdo:propertyType - no PHP support for SDO opposite.

XSD Elements

  1. Element with sdo:aliasName - no PHP support for SDO property aliases.

  2. Element with substitution group.

XSD Elements with Simple Type

  1. Element of SimpleType with default - no PHP support for SDO defaults

  2. Element of SimpleType with fixed value - no PHP support for SDO read-only properties or default values.

  3. Element of SimpleType with sdo:string - no support for sdo:string="true".

  4. Element referencing a DataObject with sdo:propertyType - no support for sdo:propertyType="..."

  5. Element with bi-directional reference to a DataObject with sdo:oppositeProperty and sdo:propertyType - no PHP support for SDO opposite.

Содержание

  • SDO_DAS_XML::addTypes — To load a second or subsequent schema file to a SDO_DAS_XML object
  • SDO_DAS_XML::create — To create SDO_DAS_XML object for a given schema file
  • SDO_DAS_XML::createDataObject — Creates SDO_DataObject for a given namespace URI and type name
  • SDO_DAS_XML::createDocument — Creates an XML Document object from scratch, without the need to load a document from a file or string.
  • SDO_DAS_XML::loadFile — Returns SDO_DAS_XML_Document object for a given path to xml instance document
  • SDO_DAS_XML::loadString — Returns SDO_DAS_XML_Document for a given xml instance string
  • SDO_DAS_XML::saveFile — Saves the SDO_DAS_XML_Document object to a file
  • SDO_DAS_XML::saveString — Saves the SDO_DAS_XML_Document object to a string
  • SDO_DAS_XML_Document::getRootDataObject — Returns the root SDO_DataObject
  • SDO_DAS_XML_Document::getRootElementName — Returns root element's name
  • SDO_DAS_XML_Document::getRootElementURI — Returns root element's URI string
  • SDO_DAS_XML_Document::setEncoding — Sets the given string as encoding
  • SDO_DAS_XML_Document::setXMLDeclaration — Sets the xml declaration
  • SDO_DAS_XML_Document::setXMLVersion — Sets the given string as xml version


To load a second or subsequent schema file to a SDO_DAS_XML object

  • « SDO DAS XML Функции
  • SDO_DAS_XML::create »
  • PHP Manual
  • SDO DAS XML Функции
  • To load a second or subsequent schema file to a SDO_DAS_XML object

SDO_DAS_XML::addTypes

(^)

SDO_DAS_XML::addTypes — To load a second or subsequent schema file to a SDO_DAS_XML object

Описание

void SDO_DAS_XML::addTypes ( string $xsd_file )

Load a second or subsequent schema file to an XML DAS that has already been created with the static method create(). Although the file may be any valid schema file, a likely reason for using this method is to add a schema file containing definitions of extra complex types, hence the name. See Example 4 of the parent document for an example.

Список параметров

xsd_file

Path to XSD Schema file.

Возвращаемые значения

None if successful, otherwise throws an exception as described below.

Ошибки

SDO_TypeNotFoundException

Thrown if a type is not defined in the underlying model.

SDO_DAS_XML_ParserException

Thrown for any problems while parsing the given XSD File.

SDO_DAS_XML_FileException

Thrown if the specified file cannot be found.


To create SDO_DAS_XML object for a given schema file

  • « SDO_DAS_XML::addTypes
  • SDO_DAS_XML::createDataObject »
  • PHP Manual
  • SDO DAS XML Функции
  • To create SDO_DAS_XML object for a given schema file

SDO_DAS_XML::create

(^)

SDO_DAS_XML::create — To create SDO_DAS_XML object for a given schema file

Описание

SDO_DAS_XML SDO_DAS_XML::create ([ mixed $xsd_file [, string $key ]] )

This is the only static method of SDO_DAS_XML class. Used to instantiate SDO_DAS_XML object.

Список параметров

xsd_file

Path to XSD Schema file. This is optional. If omitted a DAS will be created that only has the SDO base types defined. Schema files can then be loaded with the addTypes() method. Can be string or array of values.

key

Возвращаемые значения

Returns SDO_DAS_XML object on success otherwise throws an exception as described below.

Ошибки

SDO_TypeNotFoundException

Thrown if a type is not defined in the underlying model.

SDO_DAS_XML_ParserException

Thrown for any problems while parsing the given XSD File.

SDO_DAS_XML_FileException

Thrown if the specified file cannot be found.


Creates SDO_DataObject for a given namespace URI and type name

  • « SDO_DAS_XML::create
  • SDO_DAS_XML::createDocument »
  • PHP Manual
  • SDO DAS XML Функции
  • Creates SDO_DataObject for a given namespace URI and type name

SDO_DAS_XML::createDataObject

(^)

SDO_DAS_XML::createDataObject — Creates SDO_DataObject for a given namespace URI and type name

Описание

SDO_DataObject SDO_DAS_XML::createDataObject ( string $namespace_uri , string $type_name )

Creates SDO_DataObject for a given namespace URI and type name. The type should be defined in the underlying model otherwise SDO_TypeNotFoundException will be thrown.

Список параметров

namespace_uri

Namespace URI of the type name.

type_name

Type Name.

Возвращаемые значения

Returns SDO_DataObject on success.

Ошибки

SDO_TypeNotFoundException

Thrown if a type is not defined in the underlying model.


Creates an XML Document object from scratch, without the need to load a document from a file or string.

  • « SDO_DAS_XML::createDataObject
  • SDO_DAS_XML::loadFile »
  • PHP Manual
  • SDO DAS XML Функции
  • Creates an XML Document object from scratch, without the need to load a document from a file or string.

SDO_DAS_XML::createDocument

(^)

SDO_DAS_XML::createDocument — Creates an XML Document object from scratch, without the need to load a document from a file or string.

Описание

SDO_DAS_XML_Document SDO_DAS_XML::createDocument ([ string $document_element_name ] )
SDO_DAS_XML_Document SDO_DAS_XML::createDocument ( string $document_element_namespace_URI , string $document_element_name [, SDO_DataObject $dataobject ] )

Creates an XML Document object. This will contain just one empty root element on which none of the properties will have been set. The purpose of this call is to allow an application to create an XML document from scratch without the need to load a document from a file or string. The document that is created will be as if a document had been loaded that contained just a single empty document element with no attributes set or elements within it.

createDocument() may need to be told what the document element is. This will not be necessary in simple cases. When there is no ambiguity then no parameter need be passed to the method. However it is possible to load more than one schema file into the same XML DAS and in this case there may be more than one possible document element defined: furthermore it is even possible that there are two possible document elements that differ only in the namespace. To cope with these cases it is possible to specify either the document element name, or both the document element name and namespace to the method.

Список параметров

document_element_name

The name of the document element. Only needed if there is more than one possibility.

document_element_namespace_URI

The namespace part of the document element name. Only needed if there is more than one possible document element with the same name.

dataobject

Возвращаемые значения

Returns an SDO_XML_DAS_Document object on success.

Ошибки

SDO_UnsupportedOperationException

Thrown if an element name or element name and namespace URI is passed, but not found in the underlying model.


Returns SDO_DAS_XML_Document object for a given path to xml instance document

  • « SDO_DAS_XML::createDocument
  • SDO_DAS_XML::loadString »
  • PHP Manual
  • SDO DAS XML Функции
  • Returns SDO_DAS_XML_Document object for a given path to xml instance document

SDO_DAS_XML::loadFile

(^)

SDO_DAS_XML::loadFile — Returns SDO_DAS_XML_Document object for a given path to xml instance document

Описание

SDO_XMLDocument SDO_DAS_XML::loadFile ( string $xml_file )

Constructs the tree of SDO_DataObjects from the given address to xml instance document. Returns SDO_DAS_XML_Document Object. Use SDO_DAS_XML_Document::getRootDataObject method to get root data object.

Список параметров

xml_file

Path to Instance document. This can be a path to a local file or it can be a URL.

Возвращаемые значения

Returns SDO_DAS_XML_Document object on Success or throws exception as described.

Ошибки

SDO_TypeNotFoundException

Thrown if a type is not defined by the underlying model.

SDO_PropertyNotFoundException

Thrown if a property within a type is not defined in the underlying model.

SDO_DAS_XML_ParserException

Thrown for any problems while parsing the given XSD File.

SDO_DAS_XML_FileException

Thrown if the specified file cannot be found.


Returns SDO_DAS_XML_Document for a given xml instance string

  • « SDO_DAS_XML::loadFile
  • SDO_DAS_XML::saveFile »
  • PHP Manual
  • SDO DAS XML Функции
  • Returns SDO_DAS_XML_Document for a given xml instance string

SDO_DAS_XML::loadString

(^)

SDO_DAS_XML::loadString — Returns SDO_DAS_XML_Document for a given xml instance string

Описание

SDO_DAS_XML_Document SDO_DAS_XML::loadString ( string $xml_string )

Constructs the tree of SDO_DataObjects from the given xml instance string. Returns SDO_DAS_XML_Document Object. Use SDO_DAS_XML_Document::getRootDataObject method to get root data object.

Список параметров

xml_string

xml string.

Возвращаемые значения

Returns SDO_DAS_XML_Document object on Success or throws exception as described.

Ошибки

SDO_TypeNotFoundException

Thrown if a type is not defined by the underlying model.

SDO_PropertyNotFoundException

Thrown if the a property within a type is not defined in the underlying model.

SDO_DAS_XML_ParserException

Thrown for any problems while parsing the given XSD File.


Saves the SDO_DAS_XML_Document object to a file

  • « SDO_DAS_XML::loadString
  • SDO_DAS_XML::saveString »
  • PHP Manual
  • SDO DAS XML Функции
  • Saves the SDO_DAS_XML_Document object to a file

SDO_DAS_XML::saveFile

(^)

SDO_DAS_XML::saveFile — Saves the SDO_DAS_XML_Document object to a file

Описание

void SDO_DAS_XML::saveFile ( SDO_XMLDocument $xdoc , string $xml_file [, int $indent ] )

Saves the SDO_DAS_XML_Document object to a file.

Список параметров

xdoc

SDO_DAS_XML_Document object.

xml_file

xml file.

indent

Optional argument to specify that the xml should be formatted. A non-negative integer is the amount to indent each level of the xml. So, the integer 2, for example, will indent the xml so that each contained element is two spaces further to the right than its containing element. The integer 0 will cause the xml to be completely left-aligned. The integer -1 means no formatting - the xml will come out on one long line.

Возвращаемые значения

None.

Ошибки

SDO_DAS_XML_FileException

Thrown if the specified file cannot be found.


Saves the SDO_DAS_XML_Document object to a string

  • « SDO_DAS_XML::saveFile
  • SDO_DAS_XML_Document::getRootDataObject »
  • PHP Manual
  • SDO DAS XML Функции
  • Saves the SDO_DAS_XML_Document object to a string

SDO_DAS_XML::saveString

(^)

SDO_DAS_XML::saveString — Saves the SDO_DAS_XML_Document object to a string

Описание

string SDO_DAS_XML::saveString ( SDO_XMLDocument $xdoc [, int $indent ] )

Saves the SDO_DAS_XML_Document object to string.

Список параметров

xdoc

SDO_DAS_XML_Document object.

indent

Optional argument to specify that the xml should be formatted. A non-negative integer is the amount to indent each level of the xml. So, the integer 2, for example, will indent the xml so that each contained element is two spaces further to the right than its containing element. The integer 0 will cause the xml to be completely left-aligned. The integer -1 means no formatting - the xml will come out on one long line.

Возвращаемые значения

xml string.


Returns the root SDO_DataObject

  • « SDO_DAS_XML::saveString
  • SDO_DAS_XML_Document::getRootElementName »
  • PHP Manual
  • SDO DAS XML Функции
  • Returns the root SDO_DataObject

SDO_DAS_XML_Document::getRootDataObject

(^)

SDO_DAS_XML_Document::getRootDataObject — Returns the root SDO_DataObject

Описание

SDO_DataObject SDO_DAS_XML_Document::getRootDataObject ( void )

Returns the root SDO_DataObject.

Список параметров

Возвращаемые значения

Returns the root SDO_DataObject.


Returns root element's name

  • « SDO_DAS_XML_Document::getRootDataObject
  • SDO_DAS_XML_Document::getRootElementURI »
  • PHP Manual
  • SDO DAS XML Функции
  • Returns root element's name

SDO_DAS_XML_Document::getRootElementName

(^)

SDO_DAS_XML_Document::getRootElementName — Returns root element's name

Описание

string SDO_DAS_XML_Document::getRootElementName ( void )

Returns root element's name.

Список параметров

Возвращаемые значения

Returns root element's name.


Returns root element's URI string

  • « SDO_DAS_XML_Document::getRootElementName
  • SDO_DAS_XML_Document::setEncoding »
  • PHP Manual
  • SDO DAS XML Функции
  • Returns root element's URI string

SDO_DAS_XML_Document::getRootElementURI

(^)

SDO_DAS_XML_Document::getRootElementURI — Returns root element's URI string

Описание

string SDO_DAS_XML_Document::getRootElementURI ( void )

Returns root element's URI string.

Список параметров

Возвращаемые значения

Returns root element's URI string.


Sets the given string as encoding

  • « SDO_DAS_XML_Document::getRootElementURI
  • SDO_DAS_XML_Document::setXMLDeclaration »
  • PHP Manual
  • SDO DAS XML Функции
  • Sets the given string as encoding

SDO_DAS_XML_Document::setEncoding

(^)

SDO_DAS_XML_Document::setEncoding — Sets the given string as encoding

Описание

void SDO_DAS_XML_Document::setEncoding ( string $encoding )

Sets the given string as encoding.

Список параметров

encoding

Encoding string.

Возвращаемые значения

None.


Sets the xml declaration

  • « SDO_DAS_XML_Document::setEncoding
  • SDO_DAS_XML_Document::setXMLVersion »
  • PHP Manual
  • SDO DAS XML Функции
  • Sets the xml declaration

SDO_DAS_XML_Document::setXMLDeclaration

(^)

SDO_DAS_XML_Document::setXMLDeclaration — Sets the xml declaration

Описание

void SDO_DAS_XML_Document::setXMLDeclaration ( bool $xmlDeclatation )

Controls whether an XML declaration will be generated at the start of the XML document. Set to TRUE to generate the XML declaration, or FALSE to suppress it.

Список параметров

xmlDeclatation

Boolean value to set the XML declaration.

Возвращаемые значения

None.


Sets the given string as xml version

  • « SDO_DAS_XML_Document::setXMLDeclaration
  • SimpleXML »
  • PHP Manual
  • SDO DAS XML Функции
  • Sets the given string as xml version

SDO_DAS_XML_Document::setXMLVersion

(^)

SDO_DAS_XML_Document::setXMLVersion — Sets the given string as xml version

Описание

void SDO_DAS_XML_Document::setXMLVersion ( string $xmlVersion )

Sets the given string as xml version.

Список параметров

xmlVersion

xml version string.

Возвращаемые значения

None.


SimpleXML

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Базовое использование SimpleXML
    • Работа с ошибками XML
  • SimpleXMLElement — Класс SimpleXMLElement
    • SimpleXMLElement::addAttribute — Добавляет атрибут к SimpleXML-элементу
    • SimpleXMLElement::addChild — Добавляет дочерний элемент к узлу XML
    • SimpleXMLElement::asXML — Возвращает сформированный XML документ в виде строки используя SimpleXML элемент
    • SimpleXMLElement::attributes — Возвращает атрибуты элемента
    • SimpleXMLElement::children — Поиск дочерних элементов данного узла
    • SimpleXMLElement::__construct — Создание нового SimpleXMLElement объекта
    • SimpleXMLElement::count — Считает количество дочерних элементов у текущего элемента
    • SimpleXMLElement::getDocNamespaces — Возвращает объявленное пространство имен в документе
    • SimpleXMLElement::getName — Получение имени XML элемента
    • SimpleXMLElement::getNamespaces — Получение пространств имен, используемых в документе
    • SimpleXMLElement::registerXPathNamespace — Создает префикс/пространство имен контекста для следующего XPath запроса
    • SimpleXMLElement::saveXML — Псевдоним SimpleXMLElement::asXML
    • SimpleXMLElement::__toString — Возвращает содержимое строки
    • SimpleXMLElement::xpath — Запускает XPath запрос к XML данным
  • SimpleXMLIterator — Класс SimpleXMLIterator
    • SimpleXMLIterator::current — Возвращает текущий элемент
    • SimpleXMLIterator::getChildren — Возвращает вложенные элементы текущего элемента
    • SimpleXMLIterator::hasChildren — Проверяет, имеет ли текущий элемент вложенные элементы
    • SimpleXMLIterator::key — Возвращает текущий ключ
    • SimpleXMLIterator::next — Перемещает итератор к следующему элементу
    • SimpleXMLIterator::rewind — Возвращает итератор к первому элементу
    • SimpleXMLIterator::valid — Проверяет, является ли текущий элемент допустимым
  • SimpleXML
    • simplexml_import_dom — Получает объект класса SimpleXMLElement из узла DOM.
    • simplexml_load_file — Интерпретирует XML-файл в объект
    • simplexml_load_string — Интерпретирует строку с XML в объект


Введение

Расширение SimpleXML предоставляет очень простой и легкий в использовании набор инструментов для преобразования XML в объект, с которым можно затем работать через его свойства и с помощью итераторов.


Требования

Для корректной работы этого расширения необходимо PHP расширение libxml. Это означает, что также необходима передача опции --enable-libxml , хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.

Модуль SimpleXML требует PHP 5.


Установка

Это расширение включено по умолчанию. Оно может быть отключено во время выполнения с помощью следующей опции: --disable-simplexml

Примечание: До PHP 5.1.2 необходима опция --enable-simplexml для работы этого расширения.


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • SimpleXML
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • Базовое использование SimpleXML »
  • PHP Manual
  • SimpleXML
  • Примеры

Примеры

Содержание

  • Базовое использование SimpleXML
  • Работа с ошибками XML


Базовое использование SimpleXML

Некоторые примеры этого руководства включают XML-строку. Вместо того, чтобы повторять ее в каждом примере, положите эту строку в файл, который и включайте в каждом примере. Эта строка приведена в следующем примере. Помимо этого можно создать XML-документ и считывать его функцией simplexml_load_file().

Пример #1 Файл example.php с XML строкой

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <title>PHP: Появление Парсера</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#211;r</actor>
   </character>
  </characters>
  <plot>
   Таким образом, это язык. Это все равно язык программирования. Или
   это скриптовый язык? Все раскрывается в этом документальном фильме,
   похожем на фильм ужасов.
  </plot>
  <great-lines>
   <line>PHP решает все мои проблемы в web</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 решает все мои проблемы в web

Пример #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 может так же получать доступ к атрибутам элемента. Получить доступ к атрибуту элемента можно так же, как к элементам массива.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

/* Доступ к узлу <rating> первого фильма.
 * Так же выведем шкалу оценок. */
foreach ($movies->movie[0]->rating as $rating) {
    switch((string) $rating['type']) { // Получение атрибутов элемента по индексу
    case 'thumbs':
        echo $rating, ' thumbs up';
        break;
    case 'stars':
        echo $rating, ' stars';
        break;
    }
}
?>

Результат выполнения данного примера:

7 thumbs up5 stars

Пример #6 Сравнение элементов и атрибутов с текстом

Для сравнения элемента или атрибута со строкой или для передачи в функцию в качестве текста, необходимо привести его к строке, используя (string). В противном случае, PHP будет рассматривать элемент как объект.

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

if ((string) $movies->movie->title == 'PHP: Появление Парсера') {
    print 'Мой любимый фильм.';
}

echo htmlentities((string) $movies->movie->title);
?>

Результат выполнения данного примера:

Мой любимый фильм.PHP: Появление Парсера

Пример #7 Сравнение двух элементов

Два элемента SimpleXMLElements считаются различными, даже если они указывают на один и тот же объект начиная с PHP 5.2.0.

<?php
include 'example.php';

$movies1 = new SimpleXMLElement($xmlstr);
$movies2 = new SimpleXMLElement($xmlstr);
var_dump($movies1 == $movies2); // false начиная с PHP 5.2.0
?>

Результат выполнения данного примера:

bool(false)

Пример #8 Использование XPath

SimpleXML включает в себя встроенную поддержку XPath. Поиск всех элементов <character>:

<?php
include 'example.php';

$movies = new SimpleXMLElement($xmlstr);

foreach ($movies->xpath('//character') as $character) {
    echo $character->name, ' играет ', $character->actor, PHP_EOL;
}
?>

'//' служит в качестве шаблона. Для указания абсолютного пути, опустите одну из косых черт.

Результат выполнения данного примера:

Ms. Coder играет Onlivia Actora
Mr. Coder играет by El ActOr

Пример #9 Установка значений

Данные в SimpleXML не могут быть постоянными. Объект позволяет манипулировать всеми элементами.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$movies->movie[0]->characters->character[0]->name = 'Miss Coder';

echo $movies->asXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Появление Парсера</title>
  <characters>
   <character>
    <name>Miss Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   Таким образом, это язык. Это все равно язык программирования. Или
   это скриптовый язык? Все раскрывается в этом документальном фильме,
   похожем на фильм ужасов.
  </plot>
  <great-lines>
   <line>PHP решает все мои задачи в web</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>

Пример #10 Добавление элементов и атрибутов

Начиная с PHP 5.1.3, SimpleXML имеет возможность легко добавлять дочерние элементы и атрибуты.

<?php
include 'example.php';
$movies = new SimpleXMLElement($xmlstr);

$character = $movies->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movies->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');

echo $movies->asXML();
?>

Результат выполнения данного примера:

<?xml version="1.0" standalone="yes"?>
<movies>
 <movie>
  <title>PHP: Появление Парсера</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  <character><name>Mr. Parser</name><actor>John Doe</actor></character></characters>
  <plot>
   Таким образом, это язык. Это все равно язык программирования. Или
   это скриптовый язык? Все раскрывается в этом документальном фильме,
   похожем на фильм ужасов.
  </plot>
  <great-lines>
   <line>PHP решает все мои задачи в web</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 <rating type="mpaa">PG</rating></movie>
</movies>

Пример #11 Взаимодействие с DOM

PHP может преобразовывать XML узлы из SimpleXML в формат DOM и наоборот. Этот пример показывает, как можно изменить DOM элемент в SimpleXML.

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>бред</title></book></books>');
if (!$dom) {
    echo 'Ошибка при разборе документа';
    exit;
}

$books = simplexml_import_dom($dom);

echo $books->book[0]->title;
?>

Результат выполнения данного примера:

бред


Работа с ошибками XML

Работа с ошибками XML при загрузке документов является очень простой задачей. Использование функциональности libxml позволяет подавить все XML ошибки при загрузке документа и затем обработать их.

Объект libXMLError, возвращаемый libxml_get_errors(), содержит несколько свойств, в том числе сообщение, номер строки и колонку (позицию) этой ошибки.

Пример #1 Загрузка синтаксически неправильной XML строки

<?php
libxml_use_internal_errors(true);
$sxe = simplexml_load_string("<?xml version='1.0'><broken><xml></broken>");
if (!$sxe) {
    echo "Ошибка загрузки XML\n";
    foreach(libxml_get_errors() as $error) {
        echo "\t", $error->message;
    }
}
?>

Результат выполнения данного примера:

Ошибка загрузки XML
    Blank needed here
    parsing XML declaration: '?>' expected
    Opening and ending tag mismatch: xml line 1 and broken
    Premature end of data in tag broken line 1

Смотрите также

  • libxml_use_internal_errors()
  • libxml_get_errors()
  • libXMLError


Класс SimpleXMLElement

(PHP 5 >= 5.0.1, PHP 7)

Введение

Представляет собой элемент в XML-документе.

Обзор классов

SimpleXMLElement implements Traversable {
/* Методы */
final public __construct ( string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false ]]]] )
public void addAttribute ( string $name [, string $value [, string $namespace ]] )
public SimpleXMLElement addChild ( string $name [, string $value [, string $namespace ]] )
public mixed asXML ([ string $filename ] )
public SimpleXMLElement attributes ([ string $ns = NULL [, bool $is_prefix = false ]] )
public SimpleXMLElement children ([ string $ns [, bool $is_prefix = false ]] )
public int count ( void )
public array getDocNamespaces ([ bool $recursive = false [, bool $from_root = true ]] )
public string getName ( void )
public array getNamespaces ([ bool $recursive = false ] )
public bool registerXPathNamespace ( string $prefix , string $ns )
public string __toString ( void )
public array xpath ( string $path )
}

Содержание

  • SimpleXMLElement::addAttribute — Добавляет атрибут к SimpleXML-элементу
  • SimpleXMLElement::addChild — Добавляет дочерний элемент к узлу XML
  • SimpleXMLElement::asXML — Возвращает сформированный XML документ в виде строки используя SimpleXML элемент
  • SimpleXMLElement::attributes — Возвращает атрибуты элемента
  • SimpleXMLElement::children — Поиск дочерних элементов данного узла
  • SimpleXMLElement::__construct — Создание нового SimpleXMLElement объекта
  • SimpleXMLElement::count — Считает количество дочерних элементов у текущего элемента
  • SimpleXMLElement::getDocNamespaces — Возвращает объявленное пространство имен в документе
  • SimpleXMLElement::getName — Получение имени XML элемента
  • SimpleXMLElement::getNamespaces — Получение пространств имен, используемых в документе
  • SimpleXMLElement::registerXPathNamespace — Создает префикс/пространство имен контекста для следующего XPath запроса
  • SimpleXMLElement::saveXML — Псевдоним SimpleXMLElement::asXML
  • SimpleXMLElement::__toString — Возвращает содержимое строки
  • SimpleXMLElement::xpath — Запускает XPath запрос к XML данным


Добавляет атрибут к SimpleXML-элементу

  • « SimpleXMLElement
  • SimpleXMLElement::addChild »
  • PHP Manual
  • SimpleXMLElement
  • Добавляет атрибут к SimpleXML-элементу

SimpleXMLElement::addAttribute

(PHP 5 >= 5.1.3, PHP 7)

SimpleXMLElement::addAttribute — Добавляет атрибут к SimpleXML-элементу

Описание

public void SimpleXMLElement::addAttribute ( string $name [, string $value [, string $namespace ]] )

Добавляет атрибут к SimpleXML-элементу.

Список параметров

name

Название добавляемого атрибута.

value

Значение атрибута.

namespace

Необязательный параметр указывает на пространство имен, к которому принадлежит атрибут.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Замечание:

Перечисленные примеры могут включать example.php, в котором определяется XML-строка, расположенная в первом примере руководства по базовому использованию.

Пример #1 Добавление атрибутов и потомков к SimpleXML-элементу

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: Истории парсера');
$movie->addChild('plot', 'Все о людях, создававших его.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

Результатом выполнения данного примера будет что-то подобное:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Появление Парсера</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   Итак, этот язык. Типа, язык программирования. Или
   это скриптовый язык? Все раскрывается в этом документальном фильме,
   похожем на фильм ужасов.
  </plot>
  <great-lines>
   <line>PHP решает все мои задачи в web</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: Истории парсера</title>
  <plot>Все о людях, создававших его.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Смотрите также

  • SimpleXMLElement::addChild() - Добавляет дочерний элемент к узлу XML
  • Базовое использование SimpleXML


Добавляет дочерний элемент к узлу XML

  • « SimpleXMLElement::addAttribute
  • SimpleXMLElement::asXML »
  • PHP Manual
  • SimpleXMLElement
  • Добавляет дочерний элемент к узлу XML

SimpleXMLElement::addChild

(PHP 5 >= 5.1.3, PHP 7)

SimpleXMLElement::addChild — Добавляет дочерний элемент к узлу XML

Описание

public SimpleXMLElement SimpleXMLElement::addChild ( string $name [, string $value [, string $namespace ]] )

Добавляет дочерний элемент к узлу и возвращает потомка SimpleXMLElement.

Список параметров

name

Имя добавляемого дочернего элемента.

value

Если указано, то значение (содержимое) дочернего элемента.

namespace

Если указано, то пространство имен, к которому принадлежит дочерний элемент.

Возвращаемые значения

Метод addChild возвращает объект SimpleXMLElement, представляющий добавленного потомка к узлу XML.

Примеры

Замечание:

Перечисленные примеры могут включать example.php, в котором определяется XML строка, расположенная в первом примере руководства по базовому использованию.

Пример #1 Добавление атрибутов и потомков к SimpleXML элементу

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: Истории парсера');
$movie->addChild('plot', 'Все о людях, создававших его.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');

echo $sxe->asXML();

?>

Результатом выполнения данного примера будет что-то подобное:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary">
 <movie>
  <title>PHP: Появление Парсера</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#xD3;r</actor>
   </character>
  </characters>
  <plot>
   Таким образом, это язык. Это все равно язык программирования. Или
   это скриптовый язык? Все раскрывается в этом документальном фильме,
   похожем на фильм ужасов.
  </plot>
  <great-lines>
   <line>PHP решает все мои задачи в web</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
 <movie>
  <title>PHP2: Истории парсера</title>
  <plot>Все о людях, создававших его.</plot>
  <characters>
   <character>
    <name>Mr. Parser</name>
    <actor>John Doe</actor>
   </character>
  </characters>
  <rating type="stars">5</rating>
 </movie>
</movies>

Смотрите также

  • SimpleXMLElement::addAttribute() - Добавляет атрибут к SimpleXML-элементу
  • Базовое использование SimpleXML


Возвращает сформированный XML документ в виде строки используя SimpleXML элемент

  • « SimpleXMLElement::addChild
  • SimpleXMLElement::attributes »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает сформированный XML документ в виде строки используя SimpleXML элемент

SimpleXMLElement::asXML

(PHP 5 >= 5.0.1, PHP 7)

SimpleXMLElement::asXML — Возвращает сформированный XML документ в виде строки используя SimpleXML элемент

Описание

public mixed SimpleXMLElement::asXML ([ string $filename ] )

Метод asXML задает формат данных родительских объектов в версии XML 1.0.

Список параметров

filename

Если указан, то функция запишет данные в файл, а не вернет их.

Возвращаемые значения

Если filename не указан, то функция вернет string в случае успеха и FALSE в случае ошибки. Если параметр указан, то функция вернет TRUE если файл будет успешно записан и FALSE в противном случае.

Примеры

Пример #1 Получение XML

<?php
$string = <<<XML
<a>
 <b>
  <c>текст</c>
  <c>штучка</c>
 </b>
 <d>
  <c>код</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

echo $xml->asXML();

?>

Результат выполнения данного примера:

<?xml version="1.0"?>
<a>
 <b>
  <c>текст</c>
  <c>штучка</c>
 </b>
 <d>
  <c>код</c>
 </d>
</a>

asXML также работает с результатами Xpath:

Пример #2 Использование asXML() с результатами SimpleXMLElement::xpath()

<?php
// Продолжение XML примера выше.

/* Поиск <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo $node->asXML();
}
?>

Результат выполнения данного примера:

<c>текст</c><c>штучка</c>

Смотрите также

  • SimpleXMLElement::__toString() - Возвращает содержимое строки
  • Базовое использование SimpleXML


Возвращает атрибуты элемента

  • « SimpleXMLElement::asXML
  • SimpleXMLElement::children »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает атрибуты элемента

SimpleXMLElement::attributes

(PHP 5 >= 5.0.1, PHP 7)

SimpleXMLElement::attributes — Возвращает атрибуты элемента

Описание

public SimpleXMLElement SimpleXMLElement::attributes ([ string $ns = NULL [, bool $is_prefix = false ]] )

Эта функция возвращает названия и значения атрибутов установленные в xml теге.

Замечание: SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с использованием var_dump() или каких-либо других средств анализа объектов.

Список параметров

ns

Не обязательное пространство имен для извлеченных атрибутов

is_prefix

По умолчанию FALSE

Возвращаемые значения

Возвращает итеративный объект SimpleXMLElement, по которому можно перемещаться для перебора всех атрибутов тега.

Вернет NULL если вызванный объект SimpleXMLElement уже представляет собой атрибуты, а не тег.

Примеры

Пример #1 Интерпретация XML строки

<?php
$string = <<<XML
<a>
 <foo name="one" game="lonely">1</foo>
</a>
XML;

$xml = simplexml_load_string($string);
foreach($xml->foo[0]->attributes() as $a => $b) {
    echo $a,'="',$b,"\"\n";
}
?>

Результат выполнения данного примера:

name="one"
game="lonely"

Смотрите также

  • Базовое использование SimpleXML


Поиск дочерних элементов данного узла

  • « SimpleXMLElement::attributes
  • SimpleXMLElement::__construct »
  • PHP Manual
  • SimpleXMLElement
  • Поиск дочерних элементов данного узла

SimpleXMLElement::children

(PHP 5 >= 5.0.1, PHP 7)

SimpleXMLElement::children — Поиск дочерних элементов данного узла

Описание

public SimpleXMLElement SimpleXMLElement::children ([ string $ns [, bool $is_prefix = false ]] )

Этот метод находит все дочерние элементы узла. Результат подчиняется стандартным правилам итерации.

Замечание: SimpleXML содержит правило добавления итеративных свойств к большинству методов. Они не могут быть просмотрены с использованием var_dump() или каких-либо других средств анализа объектов.

Список параметров

ns

Не обязательное пространство имен XML.

is_prefix

Если is_prefix установлен в TRUE, ns будет рассмотрен как префикс. Если FALSE, ns будет рассмотрен как пространство имен URL.

Возвращаемые значения

Возвращает SimpleXMLElement элемент, даже если узел не имеет дочерних элементов.

Список изменений

Версия | Описание
5.2.0 | Добавлен не обязательный параметр is_prefix.

Примеры

Пример #1 Обход псевдо-массива children()

<?php
$xml = new SimpleXMLElement(
'<person>
 <child role="сын">
  <child role="дочь"/>
 </child>
 <child role="дочь">
  <child role="сын">
   <child role="сын"/>
  </child>
 </child>
</person>');

foreach ($xml->children() as $second_gen) {
    echo ' У человека родился(-ась) ' . $second_gen['role'];

    foreach ($second_gen->children() as $third_gen) {
        echo ' у которого родился(-ась) ' . $third_gen['role'] . ';';

        foreach ($third_gen->children() as $fourth_gen) {
            echo ' и у ' . $third_gen['role'] .
                ' родился(-ась) ' . $fourth_gen['role'];
        }
    }
}
?>

Результат выполнения данного примера:

У человека родился(-ась) сын у которого родился(-ась) дочь; У человека
родился(-ась) дочь у которого родился(-ась) сын; и у сын родился(-ась) сын

Пример #2 Использование пространства имен

<?php
$xml = '<example xmlns:foo="my.foo.urn">
  <foo:a>Яблоко</foo:a>
  <foo:b>Банан</foo:b>
  <c>Cherry</c>
</example>';

$sxe = new SimpleXMLElement($xml);

$kids = $sxe->children('foo');
var_dump(count($kids));

$kids = $sxe->children('foo', TRUE);
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn');
var_dump(count($kids));

$kids = $sxe->children('my.foo.urn', TRUE);
var_dump(count($kids));

$kids = $sxe->children();
var_dump(count($kids));
?>
int(0)
int(2)
int(2)
int(0)
int(1)

Примечания

SimpleXMLElement::children() вернет узел объекта в любом случае, даже если текущий узел не имеет потомков. Используя count() для возвращенного значения, можно узнать о существовании потомков. В PHP 5.3.0 вместо этого можно использовать SimpleXMLElement::count().

Смотрите также

  • SimpleXMLElement::count() - Считает количество дочерних элементов у текущего элемента
  • count() - Подсчитывает количество элементов массива или что-то в объекте


Создание нового SimpleXMLElement объекта

  • « SimpleXMLElement::children
  • SimpleXMLElement::count »
  • PHP Manual
  • SimpleXMLElement
  • Создание нового SimpleXMLElement объекта

SimpleXMLElement::__construct

(PHP 5 >= 5.0.1, PHP 7)

SimpleXMLElement::__construct — Создание нового SimpleXMLElement объекта

Описание

final public SimpleXMLElement::__construct ( string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false ]]]] )

Создает новый SimpleXMLElement объект.

Список параметров

data

Правильно сформированная XML строка. Может быть путем или URL к XML документу, если параметр data_is_url установлен в TRUE.

options

Необязательный параметр, используется для указания дополнительных параметров Libxml.

Замечание:

Для возможности доступа к очень глубоким элементам XML или для обработки очень больших текстовых узлов может понадобиться использовать LIBXML_PARSEHUGE

data_is_url

По умолчанию, data_is_url установлен в FALSE. Используйте TRUE для указания того, что data является путем или URL к XML документу вместо string данных.

ns

Префикс пространства имен или URI.

is_prefix

TRUE если ns является префиксом, FALSE если это URI; по умолчанию FALSE.

Возвращаемые значения

Возвращает объект SimpleXMLElement представляющий data.

Ошибки

Выдает сообщение с ошибкой E_WARNING для каждой найденной ошибки в XML данных, и дополнительно генерирует исключение Exception, если XML данные не могут быть разобраны.

Подсказка

Используйте libxml_use_internal_errors() для подавления всех XML ошибок, и libxml_get_errors() для их переборки.

Примеры

Замечание:

Перечисленные примеры могут включать example.php, в котором определяется XML строка, расположенная в первом примере руководства по базовому использованию.

Пример #1 Создание объекта SimpleXMLElement

<?php

include 'example.php';

$sxe = new SimpleXMLElement($xmlstr);
echo $sxe->movie[0]->title;

?>

Результат выполнения данного примера:

PHP: Появление Парсера

Пример #2 Создание объекта SimpleXMLElement из URL

<?php

$sxe = new SimpleXMLElement('http://example.org/document.xml', NULL, TRUE);
echo $sxe->asXML();

?>

Список изменений

Версия | Описание
5.2.0 | Добавлены параметры ns и is_prefix.
5.1.2 | Добавлены параметры options и data_is_url.

Смотрите также

  • Базовое использование SimpleXML
  • simplexml_load_string() - Интерпретирует строку с XML в объект
  • simplexml_load_file() - Интерпретирует XML-файл в объект
  • Работа с ошибками XML
  • libxml_use_internal_errors() - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю


Считает количество дочерних элементов у текущего элемента

  • « SimpleXMLElement::__construct
  • SimpleXMLElement::getDocNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Считает количество дочерних элементов у текущего элемента

SimpleXMLElement::count

(PHP 5 >= 5.3.0, PHP 7)

SimpleXMLElement::count — Считает количество дочерних элементов у текущего элемента

Описание

public int SimpleXMLElement::count ( void )

Этот метод подсчитывает количество дочерних элементов у текущего элемента.

Возвращаемые значения

Возвращает число элементов у текущего элемента.

Примеры

Пример #1 Подсчет количества дочерних элементов

<?php
$xml = <<<EOF
<people>
 <person name="Человек 1">
  <child/>
  <child/>
  <child/>
 </person>
 <person name="Человек 2">
  <child/>
  <child/>
  <child/>
  <child/>
  <child/>
 </person>
</people>
EOF;

$elem = new SimpleXMLElement($xml);

foreach ($elem as $person) {
    printf("%s имеет %d детей.\n", $person['name'], $person->count());
}
?>

Результат выполнения данного примера:

Человек 1 имеет 3 детей.
Человек 2 имеет 5 детей.

Смотрите также

  • SimpleXMLElement::children() - Поиск дочерних элементов данного узла


Возвращает объявленное пространство имен в документе

  • « SimpleXMLElement::count
  • SimpleXMLElement::getName »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает объявленное пространство имен в документе

SimpleXMLElement::getDocNamespaces

(PHP 5 >= 5.1.2, PHP 7)

SimpleXMLElement::getDocNamespaces — Возвращает объявленное пространство имен в документе

Описание

public array SimpleXMLElement::getDocNamespaces ([ bool $recursive = false [, bool $from_root = true ]] )

Возвращает объявленное пространство имен в документе

Список параметров

recursive

Если указано, то возвращает все объявленные пространства имен у родительского узла и его дочерних элементов. В противном случае, возвращает только объявленное пространство имен корневого узла.

from_root

Позволяет рекурсивно проверить пространства имен у дочернего узла вместо корневого узла XML документа.

Возвращаемые значения

Метод getDocNamespaces возвращает массив array с названиями пространств имен и связанными с ними URI.

Примеры

Пример #1 Получение пространства имен документа

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces();
var_dump($namespaces);

?>

Результат выполнения данного примера:

array(1) {
   ["p"]=>
   string(21) "http://example.org/ns"
}

Пример #2 Работа с несколькими пространствами имен

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person t:id="1">John Doe</p:person>
    <p:person t:id="2" a:addr="123 Street" xmlns:a="http://example.org/addr">
        Susie Q. Public
    </p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getDocNamespaces(TRUE);
var_dump($namespaces);

?>

Результат выполнения данного примера:

array(3) {
  ["p"]=>
  string(21) "http://example.org/ns"
  ["t"]=>
  string(23) "http://example.org/test"
  ["a"]=>
  string(23) "http://example.org/addr"
}

Список изменений

Версия | Описание
5.4.0 | Добавлен параметр from_root.

Смотрите также

  • SimpleXMLElement::getNamespaces() - Получение пространств имен, используемых в документе
  • SimpleXMLElement::registerXPathNamespace() - Создает префикс/пространство имен контекста для следующего XPath запроса


Получение имени XML элемента

  • « SimpleXMLElement::getDocNamespaces
  • SimpleXMLElement::getNamespaces »
  • PHP Manual
  • SimpleXMLElement
  • Получение имени XML элемента

SimpleXMLElement::getName

(PHP 5 >= 5.1.3, PHP 7)

SimpleXMLElement::getName — Получение имени XML элемента

Описание

public string SimpleXMLElement::getName ( void )

Получает имя XML элемента.

Возвращаемые значения

Метод getName возвращает имя тега XML в виде строки string, на который ссылается SimpleXMLElement объект.

Примеры

Замечание:

Перечисленные примеры могут включать example.php, в котором определяется XML строка, расположенная в первом примере руководства по базовому использованию.

Пример #1 Получение имен XML элемента

<?php
include 'example.php';
$sxe = new SimpleXMLElement($xmlstr);

echo $sxe->getName() . "\n";

foreach ($sxe->children() as $child)
{
    echo $child->getName() . "\n";
}

?>

Результат выполнения данного примера:

movies
movie


Получение пространств имен, используемых в документе

  • « SimpleXMLElement::getName
  • SimpleXMLElement::registerXPathNamespace »
  • PHP Manual
  • SimpleXMLElement
  • Получение пространств имен, используемых в документе

SimpleXMLElement::getNamespaces

(PHP 5 >= 5.1.2, PHP 7)

SimpleXMLElement::getNamespaces — Получение пространств имен, используемых в документе

Описание

public array SimpleXMLElement::getNamespaces ([ bool $recursive = false ] )

Возвращает пространства имен, используемые в документе

Список параметров

recursive

Если указано, то возвращает все используемые пространства имен у родительского узла и его дочерних элементов. В противном случае, возвращает только используемое пространство имен корневого узла.

Возвращаемые значения

Метод getNamespaces возвращает массив array с названиями пространств имен и связанными с ними URI.

Примеры

Пример #1 Получение пространств имен, используемых в документе

<?php

$xml = <<<XML
<?xml version="1.0" standalone="yes"?>
<people xmlns:p="http://example.org/ns" xmlns:t="http://example.org/test">
    <p:person id="1">John Doe</p:person>
    <p:person id="2">Susie Q. Public</p:person>
</people>
XML;

$sxe = new SimpleXMLElement($xml);

$namespaces = $sxe->getNamespaces(true);
var_dump($namespaces);

?>

Результат выполнения данного примера:

array(1) {
  ["p"]=>
  string(21) "http://example.org/ns"
}

Смотрите также

  • SimpleXMLElement::getDocNamespaces() - Возвращает объявленное пространство имен в документе
  • SimpleXMLElement::registerXPathNamespace() - Создает префикс/пространство имен контекста для следующего XPath запроса


Создает префикс/пространство имен контекста для следующего XPath запроса

  • « SimpleXMLElement::getNamespaces
  • SimpleXMLElement::saveXML »
  • PHP Manual
  • SimpleXMLElement
  • Создает префикс/пространство имен контекста для следующего XPath запроса

SimpleXMLElement::registerXPathNamespace

(PHP 5 >= 5.2.0, PHP 7)

SimpleXMLElement::registerXPathNamespace — Создает префикс/пространство имен контекста для следующего XPath запроса

Описание

public bool SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns )

Создает префикс/пространство имен контекста для следующего XPath запроса. В частности это необходимо, если поставщик данного XML документа изменяет префикс пространства имен. registerXPathNamespace создаст префикс для связанного пространства имен, позволяя получить доступ к узлам в этом пространстве имен без необходимости изменения кода, учитывающего новые префиксы, предоставленные поставщиком.

Список параметров

prefix

Префикс используемого пространства имен в запросе XPath для получения пространства имен в ns.

ns

Используемое пространство имен для запроса XPath. Оно должно соответствовать пространству имен в используемом XML документе иначе запрос XPath использующий prefix не даст никаких результатов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Установка префикса пространства имен для использования в запросе XPath

<?php

$xml = <<<EOD
<book xmlns:chap="http://example.org/chapter-title">
    <title>My Book</title>
    <chapter id="1">
        <chap:title>Chapter 1</chap:title>
        <para>Donec velit. Nullam eget tellus vitae tortor gravida scelerisque.
            In orci lorem, cursus imperdiet, ultricies non, hendrerit et, orci.
            Nulla facilisi. Nullam velit nisl, laoreet id, condimentum ut,
            ultricies id, mauris.</para>
    </chapter>
    <chapter id="2">
        <chap:title>Chapter 2</chap:title>
        <para>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin
            gravida. Phasellus tincidunt massa vel urna. Proin adipiscing quam
            vitae odio. Sed dictum. Ut tincidunt lorem ac lorem. Duis eros
            tellus, pharetra id, faucibus eu, dapibus dictum, odio.</para>
    </chapter>
</book>
EOD;

$sxe = new SimpleXMLElement($xml);

$sxe->registerXPathNamespace('c', 'http://example.org/chapter-title');
$result = $sxe->xpath('//c:title');

foreach ($result as $title) {
  echo $title . "\n";
}

?>

Результат выполнения данного примера:

Chapter 1
Chapter 2

Обратите внимание, на то, как в примере XML-документу задается пространство имен с префиксом chap. Представьте, что этот документ (или другой похожий) может использовать префикс c. Так как он изменится, то запрос XPath больше не будет возвращать необходимых результатов и придется изменить запрос. Использование registerXPathNamespace позволяет избежать будущих модификаций запросов, даже если поставщик изменит префикс пространства имен.

Смотрите также

  • SimpleXMLElement::xpath() - Запускает XPath запрос к XML данным
  • SimpleXMLElement::getDocNamespaces() - Возвращает объявленное пространство имен в документе
  • SimpleXMLElement::getNamespaces() - Получение пространств имен, используемых в документе


Псевдоним SimpleXMLElement::asXML

  • « SimpleXMLElement::registerXPathNamespace
  • SimpleXMLElement::__toString »
  • PHP Manual
  • SimpleXMLElement
  • Псевдоним SimpleXMLElement::asXML

SimpleXMLElement::saveXML

(PHP 5 >= 5.2.0, PHP 7)

SimpleXMLElement::saveXML — Псевдоним SimpleXMLElement::asXML()

Описание

Этот метод является псевдонимом: SimpleXMLElement::asXML()


Возвращает содержимое строки

  • « SimpleXMLElement::saveXML
  • SimpleXMLElement::xpath »
  • PHP Manual
  • SimpleXMLElement
  • Возвращает содержимое строки

SimpleXMLElement::__toString

(Информация о версии неизвестна, возможно, только в SVN)

SimpleXMLElement::__toString — Возвращает содержимое строки

Описание

public string SimpleXMLElement::__toString ( void )

Возвращает содержимое строки, содержащийся непосредственно в элементе. Не возвращает текстовый контент дочерних элементов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое строки в случае успеха и пустую строку в ином случае.

Примеры

Пример #1 Получить содержимое строки

<?php
$xml = new SimpleXMLElement('<a>1 <b>2 </b>3</a>');
echo $xml;
?>

Результат выполнения данного примера:

1 3

Смотрите также

  • SimpleXMLElement::asXML() - Возвращает сформированный XML документ в виде строки используя SimpleXML элемент


Запускает XPath запрос к XML данным

  • « SimpleXMLElement::__toString
  • SimpleXMLIterator »
  • PHP Manual
  • SimpleXMLElement
  • Запускает XPath запрос к XML данным

SimpleXMLElement::xpath

(PHP 5 >= 5.2.0, PHP 7)

SimpleXMLElement::xpath — Запускает XPath запрос к XML данным

Описание

public array SimpleXMLElement::xpath ( string $path )

Метод xpath ищет узлы SimpleXML с дочерними элементами, совпадающими с XPath path.

Список параметров

path

Путь XPath

Возвращаемые значения

Возвращает массив array объектов SimpleXMLElement или FALSE в случае ошибки.

Примеры

Пример #1 Xpath

<?php
$string = <<<XML
<a>
 <b>
  <c>текст</c>
  <c>вещь</c>
 </b>
 <d>
  <c>код</c>
 </d>
</a>
XML;

$xml = new SimpleXMLElement($string);

/* Поиск <a><b><c> */
$result = $xml->xpath('/a/b/c');

while(list( , $node) = each($result)) {
    echo '/a/b/c: ',$node,"\n";
}

/* Относительные пути также работают... */
$result = $xml->xpath('b/c');

while(list( , $node) = each($result)) {
    echo 'b/c: ',$node,"\n";
}
?>

Результат выполнения данного примера:

/a/b/c: текст
/a/b/c: вещь
b/c: текст
b/c: вещь

Обратите внимание, что оба результата одинаковы.

Смотрите также

  • SimpleXMLElement::registerXPathNamespace() - Создает префикс/пространство имен контекста для следующего XPath запроса
  • SimpleXMLElement::getDocNamespaces() - Возвращает объявленное пространство имен в документе
  • SimpleXMLElement::getNamespaces() - Получение пространств имен, используемых в документе
  • Базовое использование SimpleXML


Класс SimpleXMLIterator

(PHP 5 >= 5.1.0, PHP 7)

Введение

SimpleXMLIterator обеспечивает рекурсивную итерацию по всем узлам объекта SimpleXMLElement.

Обзор классов

SimpleXMLIterator extends SimpleXMLElement implements RecursiveIterator , Countable {
/* Методы */
public mixed current ( void )
public SimpleXMLIterator getChildren ( void )
public bool hasChildren ( void )
public mixed key ( void )
public void next ( void )
public void rewind ( void )
public bool valid ( void )
/* Наследуемые методы */
final public SimpleXMLElement::__construct ( string $data [, int $options = 0 [, bool $data_is_url = false [, string $ns = "" [, bool $is_prefix = false ]]]] )
public void SimpleXMLElement::addAttribute ( string $name [, string $value [, string $namespace ]] )
public SimpleXMLElement SimpleXMLElement::addChild ( string $name [, string $value [, string $namespace ]] )
public mixed SimpleXMLElement::asXML ([ string $filename ] )
public SimpleXMLElement SimpleXMLElement::attributes ([ string $ns = NULL [, bool $is_prefix = false ]] )
public SimpleXMLElement SimpleXMLElement::children ([ string $ns [, bool $is_prefix = false ]] )
public int SimpleXMLElement::count ( void )
public array SimpleXMLElement::getDocNamespaces ([ bool $recursive = false [, bool $from_root = true ]] )
public string SimpleXMLElement::getName ( void )
public array SimpleXMLElement::getNamespaces ([ bool $recursive = false ] )
public bool SimpleXMLElement::registerXPathNamespace ( string $prefix , string $ns )
public string SimpleXMLElement::__toString ( void )
public array SimpleXMLElement::xpath ( string $path )
}

Содержание

  • SimpleXMLIterator::current — Возвращает текущий элемент
  • SimpleXMLIterator::getChildren — Возвращает вложенные элементы текущего элемента
  • SimpleXMLIterator::hasChildren — Проверяет, имеет ли текущий элемент вложенные элементы
  • SimpleXMLIterator::key — Возвращает текущий ключ
  • SimpleXMLIterator::next — Перемещает итератор к следующему элементу
  • SimpleXMLIterator::rewind — Возвращает итератор к первому элементу
  • SimpleXMLIterator::valid — Проверяет, является ли текущий элемент допустимым


Возвращает текущий элемент

  • « SimpleXMLIterator
  • SimpleXMLIterator::getChildren »
  • PHP Manual
  • SimpleXMLIterator
  • Возвращает текущий элемент

SimpleXMLIterator::current

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::current — Возвращает текущий элемент

Описание

public mixed SimpleXMLIterator::current ( void )

Этот метод возвращает текущий элемент как объект класса SimpleXMLIterator или NULL.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает текущий элемент как объект класса SimpleXMLIterator или NULL в случае ошибки.

Примеры

Пример #1 Возвращение текущего элемента

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>Основы PHP</book><book>Основы XML</book></books>');
var_dump($xmlIterator->current());

$xmlIterator->rewind(); // сбрасывает курсор к первому элементу
var_dump($xmlIterator->current());
?>

Результат выполнения данного примера:

NULL
object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "Основы PHP"
}

Смотрите также

  • SimpleXMLIterator::key() - Возвращает текущий ключ
  • SimpleXMLIterator::next() - Перемещает итератор к следующему элементу
  • SimpleXMLIterator::rewind() - Возвращает итератор к первому элементу
  • SimpleXMLIterator::valid() - Проверяет, является ли текущий элемент допустимым
  • SimpleXMLElement


Возвращает вложенные элементы текущего элемента

  • « SimpleXMLIterator::current
  • SimpleXMLIterator::hasChildren »
  • PHP Manual
  • SimpleXMLIterator
  • Возвращает вложенные элементы текущего элемента

SimpleXMLIterator::getChildren

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::getChildren — Возвращает вложенные элементы текущего элемента

Описание

public SimpleXMLIterator SimpleXMLIterator::getChildren ( void )

Этот метод возвращает объект SimpleXMLIterator, содержащий вложенные элементы текущего элемента SimpleXMLIterator.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает объект SimpleXMLIterator, содержащий вложенные элементы текущего элемента.

Примеры

Пример #1 Возвращает вложенные элементы текущего элемента

$xml = <<<XML
<books>
    <book>
        <title>Основы PHP</title>
        <author>Джим Смит</author>
    </book>
    <book>Основы XML</book>
</books>
XML;

$xmlIterator = new SimpleXMLIterator($xml);
for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
    foreach($xmlIterator->getChildren() as $name => $data) {
    echo "$name: '$data' из класса " . get_class($data) . "\n";
    }
}
?>

Результат выполнения данного примера:

title: 'Основы PHP' из класса SimpleXMLIterator
author: 'Джим Смит' из класса SimpleXMLIterator


Проверяет, имеет ли текущий элемент вложенные элементы

  • « SimpleXMLIterator::getChildren
  • SimpleXMLIterator::key »
  • PHP Manual
  • SimpleXMLIterator
  • Проверяет, имеет ли текущий элемент вложенные элементы

SimpleXMLIterator::hasChildren

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::hasChildren — Проверяет, имеет ли текущий элемент вложенные элементы

Описание

public bool SimpleXMLIterator::hasChildren ( void )

Этот метод проверяет, имеет ли текущий элемент SimpleXMLIterator вложенные элементы.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

TRUE если у текущего элемента есть вложенные элементы; в противном случае FALSE

Примеры

Пример #1 Проверяет, имеет ли текущий элемент вложенные элементы

<?php
$xml = <<<XML
<books>
    <book>
        <title>Основы PHP</title>
        <author>Джим Смит</author>
    </book>
    <book>Основы XML</book>
</books>
XML;

$xmlIterator = new SimpleXMLIterator( $xml );
for( $xmlIterator->rewind(); $xmlIterator->valid(); $xmlIterator->next() ) {
    if($xmlIterator->hasChildren()) {
        var_dump($xmlIterator->current());
    }
}
?>

Результат выполнения данного примера:

object(SimpleXMLIterator)#2 (2) {
  ["title"]=>
  string(10) "Основы PHP"
  ["author"]=>
  string(9) "Джим Смит"
}


Возвращает текущий ключ

  • « SimpleXMLIterator::hasChildren
  • SimpleXMLIterator::next »
  • PHP Manual
  • SimpleXMLIterator
  • Возвращает текущий ключ

SimpleXMLIterator::key

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::key — Возвращает текущий ключ

Описание

public mixed SimpleXMLIterator::key ( void )

Этот метод получает имя XML-тега текущего элемента.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает имя XML-тега элемента, на который ссылается текущий объект SimpleXMLIterator, или FALSE

Примеры

Пример #1 Получает имя текущего XML-тега

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>Основы PHP</book><book>Основы XML</book></books>');

echo var_dump($xmlIterator->key());
$xmlIterator->rewind(); // возврат к первому элементу
echo var_dump($xmlIterator->key());

?>

Результат выполнения данного примера:

bool(false)
string(4) "book"


Перемещает итератор к следующему элементу

  • « SimpleXMLIterator::key
  • SimpleXMLIterator::rewind »
  • PHP Manual
  • SimpleXMLIterator
  • Перемещает итератор к следующему элементу

SimpleXMLIterator::next

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::next — Перемещает итератор к следующему элементу

Описание

public void SimpleXMLIterator::next ( void )

Этот метод перемещает SimpleXMLIterator к следующему элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Перемещение к следующему элементу

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>Основы PHP</book><book>Основы XML</book></books>');
$xmlIterator->rewind(); // возврат к первому элементу
$xmlIterator->next();

var_dump($xmlIterator->current());
?>

Результат выполнения данного примера:

object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "Основы XML"
}


Возвращает итератор к первому элементу

  • « SimpleXMLIterator::next
  • SimpleXMLIterator::valid »
  • PHP Manual
  • SimpleXMLIterator
  • Возвращает итератор к первому элементу

SimpleXMLIterator::rewind

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::rewind — Возвращает итератор к первому элементу

Описание

public void SimpleXMLIterator::rewind ( void )

Этот метод возвращает SimpleXMLIterator к первому элементу.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Возврат к первому элементу

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>Основы PHP</book><book>Основы XML</book></books>');
$xmlIterator->rewind();

var_dump($xmlIterator->current());
?>

Результат выполнения данного примера:

object(SimpleXMLIterator)#2 (1) {
  [0]=>
  string(10) "Основы PHP"
}


Проверяет, является ли текущий элемент допустимым

  • « SimpleXMLIterator::rewind
  • SimpleXML »
  • PHP Manual
  • SimpleXMLIterator
  • Проверяет, является ли текущий элемент допустимым

SimpleXMLIterator::valid

(PHP 5 >= 5.1.0, PHP 7)

SimpleXMLIterator::valid — Проверяет, является ли текущий элемент допустимым

Описание

public bool SimpleXMLIterator::valid ( void )

Этот метод проверяет, является ли текущий элемент допустимым после вызова SimpleXMLIterator::rewind() или SimpleXMLIterator::next().

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает TRUE если текущий элемент допустим; в противном случае FALSE

Примеры

Пример #1 Проверяет, является ли текущий элемент допустимым

<?php
$xmlIterator = new SimpleXMLIterator('<books><book>Основы SQL</book></books>');

$xmlIterator->rewind(); // возврат к первому элементу
echo var_dump($xmlIterator->valid()); // bool(true)

$xmlIterator->next(); // перейти к следующему элементу
echo var_dump($xmlIterator->valid()); // bool(false), поскольку есть только один элемент
?>


SimpleXML

Содержание

  • simplexml_import_dom — Получает объект класса SimpleXMLElement из узла DOM.
  • simplexml_load_file — Интерпретирует XML-файл в объект
  • simplexml_load_string — Интерпретирует строку с XML в объект


Получает объект класса SimpleXMLElement из узла DOM.

  • « SimpleXML
  • simplexml_load_file »
  • PHP Manual
  • SimpleXML
  • Получает объект класса SimpleXMLElement из узла DOM.

simplexml_import_dom

(PHP 5, PHP 7)

simplexml_import_dom — Получает объект класса SimpleXMLElement из узла DOM.

Описание

SimpleXMLElement simplexml_import_dom ( DOMNode $node [, string $class_name = "SimpleXMLElement" ] )

Эта функция берет узел документа DOM и превращает его в узел SimpleXML. Затем этот новый объект может быть использован как первичный элемент SimpleXML.

Список параметров

node

Узел-элемент DOM

class_name

Вы можете использовать этот дополнительный параметр для того, чтобы функция simplexml_import_dom() возвращала объект указанного класса. Этот класс должен расширять класс SimpleXMLElement.

Возвращаемые значения

Возвращает SimpleXMLElement или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Примеры

Пример #1 Импорт DOM

<?php
$dom = new DOMDocument;
$dom->loadXML('<books><book><title>чепуха</title></book></books>');
if (!$dom) {
    echo 'Ошибка при разборе документа';
    exit;
}

$s = simplexml_import_dom($dom);

echo $s->book[0]->title;
?>

Результат выполнения данного примера:

чепуха

Смотрите также

  • dom_import_simplexml() - Получает объект класса DOMElement из объекта класса SimpleXMLElement
  • Базовое использование SimpleXML


Интерпретирует XML-файл в объект

  • « simplexml_import_dom
  • simplexml_load_string »
  • PHP Manual
  • SimpleXML
  • Интерпретирует XML-файл в объект

simplexml_load_file

(PHP 5, PHP 7)

simplexml_load_file — Интерпретирует XML-файл в объект

Описание

SimpleXMLElement simplexml_load_file ( string $filename [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = false ]]]] )

Преобразует правильно сформированный XML-документ в указанном файле в объект.

Список параметров

filename

Путь к XML-файлу

Замечание:

Libxml 2 декодирует URI, так что если вы хотите передать, например, b&c как параметр URI a, вы должны вызвать simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Начиная с PHP 5.1.0 этого не требуется, потому, что PHP сделает это за вас.

class_name

Вы можете использовать этот необязательный параметр для того, чтобы функция simplexml_load_file() возвращала объект указанного класса. Этот класс должен расширять класс SimpleXMLElement.

options

Начиная с PHP 5.1.0 и Libxml 2.6.0, вы также можете использовать параметр options чтобы указать дополнительные параметры Libxml.

ns

Префикс пространства имен или URI.

is_prefix

TRUE если ns является префиксом, и FALSE если URI; по умолчанию равен FALSE.

Возвращаемые значения

Возвращает объект (object) класса SimpleXMLElement со свойствами, содержащими данные, которые хранятся внутри XML-документа или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как boolean FALSE, так и не-boolean значение, которое приводится к FALSE. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

Ошибки

Генерирует сообщение об ошибке уровня E_WARNING для каждой ошибки, найденной в XML-данных.

Подсказка

Используйте функцию libxml_use_internal_errors() для того, чтобы подавить все ошибки XML, и функцию libxml_get_errors() для прохода по ним впоследствии.

Примеры

Пример #1 Интерпретация XML-документа

<?php
//Файл test.xml содержит XML-документ с корневым элементом
//и, по крайней мере, элемент /[root]/title.

if (file_exists('test.xml')) {
    $xml = simplexml_load_file('test.xml');

    print_r($xml);
} else {
    exit('Не удалось открыть файл test.xml.');
}
?>

Этот скрипт выведет, в случае успешного завершения, следующее:

SimpleXMLElement Object
(
  [title] => Пример заголовка
  ...
)

Здесь вы можете использовать $xml->body и любые другие элементы.

Смотрите также

  • simplexml_load_string() - Интерпретирует строку с XML в объект
  • SimpleXMLElement::__construct() - Создание нового SimpleXMLElement объекта
  • Работа с ошибками XML
  • libxml_use_internal_errors() - Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
  • Базовое использование SimpleXML


Интерпретирует строку с XML в объект

  • « simplexml_load_file
  • WDDX »
  • PHP Manual
  • SimpleXML
  • Интерпретирует строку с XML в объект

simplexml_load_string

(PHP 5, PHP 7)

simplexml_load_string — Интерпретирует строку с XML в объект

Описание

SimpleXMLElement simplexml_load_string ( string $data [, string $class_name = "SimpleXMLElement" [, int $options = 0 [, string $ns = "" [, bool $is_prefix = false ]]]] )

Получает правильно сформированную XML-строку и возвращает ее как объект.

Список параметров

data

Правильно сформированная XML-строка

class_name

Вы можете использовать этот необязательный параметр для того, чтобы функция simplexml_load_string() возвращала объект указанного класса. Этот класс должен расширять класс SimpleXMLElement.

options

Начиная с PHP 5.1.0 и Libxml 2.6.0, вы также можете использовать параметр options чтобы указать дополнительные параметры Libxml.

ns

Префикс пространства имен или URI.

is_prefix

TRUE если ns является префиксом, и FALSE если URI; по умолчанию равен FALSE.

Возвращаемые значения

Возвращает объект (object) класса SimpleXMLElement со свойствами, содержащими данные, которые хранятся внутри XML-документа или FALSE в случае возникновения ошибки.

Внимание

Эта функция может возвращать как boolean 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 examples
  • WDDX Функции
    • wddx_add_vars — Add variables to a WDDX packet with the specified ID
    • wddx_deserialize — Unserializes a WDDX packet
    • wddx_packet_end — Ends a WDDX packet with the specified ID
    • wddx_packet_start — Starts a new WDDX packet with structure inside it
    • wddx_serialize_value — Serialize a single value into a WDDX packet
    • wddx_serialize_vars — Serialize variables into a WDDX packet


  • « WDDX
  • Установка и настройка »
  • PHP Manual
  • WDDX
  • Введение

Введение

These functions are intended for work with » WDDX.


Требования

Для корректной работы этого расширения необходимо PHP расширение libxml. Это означает, что также необходима передача опции --enable-libxml , хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.

In order to use WDDX, you will need to install the expat library (which comes with Apache 1.3.7 or higher).


Установка

After installing the required expat library, compile PHP with --enable-wddx , and use --with-libexpat-dir for expat.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

This extension defines a WDDX packet identifier returned by wddx_packet_start().


  • « Типы ресурсов
  • Примеры »
  • PHP Manual
  • WDDX
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


  • « Предопределенные константы
  • wddx examples »
  • PHP Manual
  • WDDX
  • Примеры

Примеры

Содержание

  • wddx examples


wddx examples

All the functions that serialize variables use the first element of an array to determine whether the array is to be serialized into an array or structure. If the first element has string key, then it is serialized into a structure, otherwise, into an array.

Пример #1 Serializing a single value with WDDX

<?php
echo wddx_serialize_value("PHP to WDDX packet example", "PHP packet");
?>

This example will produce:

<wddxPacket version='1.0'><header comment='PHP packet'/><data>
<string>PHP to WDDX packet example</string></data></wddxPacket>

Пример #2 Using incremental packets with WDDX

<?php
$pi = 3.1415926;
$packet_id = wddx_packet_start("PHP");
wddx_add_vars($packet_id, "pi");

/* Suppose $cities came from database */
$cities = array("Austin", "Novato", "Seattle");
wddx_add_vars($packet_id, "cities");

$packet = wddx_packet_end($packet_id);
echo $packet;
?>

This example will produce:

<wddxPacket version='1.0'><header comment='PHP'/><data><struct>
<var name='pi'><number>3.1415926</number></var><var name='cities'>
<array length='3'><string>Austin</string><string>Novato</string>
<string>Seattle</string></array></var></struct></data></wddxPacket>

Замечание:

If you want to serialize non-ASCII characters you have to convert your data to UTF-8 first (see utf8_encode() and iconv()).


WDDX Функции

Содержание

  • wddx_add_vars — Add variables to a WDDX packet with the specified ID
  • wddx_deserialize — Unserializes a WDDX packet
  • wddx_packet_end — Ends a WDDX packet with the specified ID
  • wddx_packet_start — Starts a new WDDX packet with structure inside it
  • wddx_serialize_value — Serialize a single value into a WDDX packet
  • wddx_serialize_vars — Serialize variables into a WDDX packet


Add variables to a WDDX packet with the specified ID

  • « WDDX Функции
  • wddx_deserialize »
  • PHP Manual
  • WDDX Функции
  • Add variables to a WDDX packet with the specified ID

wddx_add_vars

(PHP 4, PHP 5, PHP 7)

wddx_add_vars — Add variables to a WDDX packet with the specified ID

Описание

bool wddx_add_vars ( resource $packet_id , mixed $var_name [, mixed $... ] )

Serializes the passed variables and add the result to the given packet.

Список параметров

This function takes a variable number of parameters.

packet_id

A WDDX packet, returned by wddx_packet_start().

var_name

Can be either a string naming a variable or an array containing strings naming the variables or another array, etc.

...

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Unserializes a WDDX packet

  • « wddx_add_vars
  • wddx_packet_end »
  • PHP Manual
  • WDDX Функции
  • Unserializes a WDDX packet

wddx_deserialize

(PHP 4, PHP 5, PHP 7)

wddx_deserialize — Unserializes a WDDX packet

Описание

mixed wddx_deserialize ( string $packet )

Unserializes a WDDX packet.

Список параметров

packet

A WDDX packet, as a string or stream.

Возвращаемые значения

Returns the deserialized value which can be a string, a number or an array. Note that structures are deserialized into associative arrays.

Примечания

Внимание

Do not pass untrusted user input to wddx_deserialize(). Unserialization can result in code being loaded and executed due to object instantiation and autoloading, and a malicious user may be able to exploit this.


Ends a WDDX packet with the specified ID

  • « wddx_deserialize
  • wddx_packet_start »
  • PHP Manual
  • WDDX Функции
  • Ends a WDDX packet with the specified ID

wddx_packet_end

(PHP 4, PHP 5, PHP 7)

wddx_packet_end — Ends a WDDX packet with the specified ID

Описание

string wddx_packet_end ( resource $packet_id )

Ends and returns the given WDDX packet.

Список параметров

packet_id

A WDDX packet, returned by wddx_packet_start().

Возвращаемые значения

Returns the string containing the WDDX packet.


Starts a new WDDX packet with structure inside it

  • « wddx_packet_end
  • wddx_serialize_value »
  • PHP Manual
  • WDDX Функции
  • Starts a new WDDX packet with structure inside it

wddx_packet_start

(PHP 4, PHP 5, PHP 7)

wddx_packet_start — Starts a new WDDX packet with structure inside it

Описание

resource wddx_packet_start ([ string $comment ] )

Start a new WDDX packet for incremental addition of variables. It automatically creates a structure definition inside the packet to contain the variables.

Список параметров

comment

An optional comment string.

Возвращаемые значения

Returns a packet ID for use in later functions, or FALSE on error.


Serialize a single value into a WDDX packet

  • « wddx_packet_start
  • wddx_serialize_vars »
  • PHP Manual
  • WDDX Функции
  • Serialize a single value into a WDDX packet

wddx_serialize_value

(PHP 4, PHP 5, PHP 7)

wddx_serialize_value — Serialize a single value into a WDDX packet

Описание

string wddx_serialize_value ( mixed $var [, string $comment ] )

Creates a WDDX packet from a single given value.

Список параметров

var

The value to be serialized

comment

An optional comment string that appears in the packet header.

Возвращаемые значения

Returns the WDDX packet, or FALSE on error.


Serialize variables into a WDDX packet

  • « wddx_serialize_value
  • XMLDiff »
  • PHP Manual
  • WDDX Функции
  • Serialize variables into a WDDX packet

wddx_serialize_vars

(PHP 4, PHP 5, PHP 7)

wddx_serialize_vars — Serialize variables into a WDDX packet

Описание

string wddx_serialize_vars ( mixed $var_name [, mixed $... ] )

Creates a WDDX packet with a structure that contains the serialized representation of the passed variables.

Список параметров

This function takes a variable number of parameters.

var_name

Can be either a string naming a variable or an array containing strings naming the variables or another array, etc.

...

Возвращаемые значения

Returns the WDDX packet, or FALSE on error.

Примеры

Пример #1 wddx_serialize_vars() example

<?php
$a = 1;
$b = 5.5;
$c = array("blue", "orange", "violet");
$d = "colors";

$clvars = array("c", "d");
echo wddx_serialize_vars("a", "b", $clvars);
?>

Результат выполнения данного примера:

<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 diff and merge

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • XMLDiff\Base — The XMLDiff\Base class
    • XMLDiff\Base::__construct — Конструктор
    • XMLDiff\Base::diff — Производит сравнение двух документов XML
    • XMLDiff\Base::merge — Создает новый документ XML, основываясь на информации о его отличии от другого
  • XMLDiff\DOM — The XMLDiff\DOM class
    • XMLDiff\DOM::diff — Поиск различий в двух объектах DOMDocument
    • XMLDiff\DOM::merge — Объединяет объект DOMDocument, на основании другого объекта DOMDocument, полученного с помощью XMLDiff\DOM::diff
  • XMLDiff\Memory — The XMLDiff\Memory class
    • XMLDiff\Memory::diff — Diff two XML documents
    • XMLDiff\Memory::merge — Produce merged XML document
  • XMLDiff\File — The XMLDiff\File class
    • XMLDiff\File::diff — Diff two XML files
    • XMLDiff\File::merge — Produce merged XML document


Введение

The extension is able to produce diffs of two XML documents and then to apply the difference to the source document. The diff is a XML document containing copy/insert/delete instruction nodes in human readable format. DOMDocument objects, local files and strings in memory can be processed.


  • « Введение
  • Требования »
  • PHP Manual
  • XMLDiff
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


Требования

libdiffmark - version 0.10 is bundled with the extension. If diffmark is available from your system packages, its usage is strongly encouraged.

libxml extension

DOM extension


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/xmldiff.

A DLL for this PECL extension is available under » http://windows.php.net/downloads/pecl/releases/xmldiff/.


The XMLDiff\Base class

(PECL xmldiff >= 0.8.0)

Введение

Base abstract class for all the comparsion classes in the extension.

Обзор классов

XMLDiff\Base {
/* Методы */
public __construct ( string $nsname )
abstract public mixed diff ( mixed $from , mixed $to )
abstract public mixed merge ( mixed $src , mixed $diff )
}

Содержание

  • 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 mixed XMLDiff\Base::diff ( mixed $from , mixed $to )

Абстрактный метод сравнения для реализации в классах наследниках.

Главная задача этого метода - создание списка различий двух документов. Порядок входных параметров важен, так как от него зависит результат.

Список параметров

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 mixed XMLDiff\Base::merge ( mixed $src , mixed $diff )

Абстрактный метод сравнения для реализации в классах наследниках.

Основная цель метода - создание нового документа основываясь на информации о различиях двух документов.

Список параметров

src

Исходный документ XML.

diff

Документ, созданный методов, реализующим абстрактный метод XMLDiff\Base::diff.

Возвращаемые значения

Зависит от реализации.


The XMLDiff\DOM class

(PECL xmldiff >= 0.8.0)

Введение

Обзор классов

XMLDiff\DOM extends XMLDiff\Base {
/* Методы */
public DOMDocument diff ( DOMDocument $from , DOMDocument $to )
public DOMDocument merge ( DOMDocument $src , DOMDocument $diff )
/* Наследуемые методы */
public XMLDiff\Base::__construct ( string $nsname )
abstract public mixed XMLDiff\Base::diff ( mixed $from , mixed $to )
abstract public mixed XMLDiff\Base::merge ( mixed $src , mixed $diff )
}

Содержание

  • 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 DOMDocument XMLDiff\DOM::diff ( DOMDocument $from , DOMDocument $to )

Ищет различия в двух объектах 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 DOMDocument XMLDiff\DOM::merge ( DOMDocument $src , DOMDocument $diff )

Объединяет объект DOMDocument, на основании другого объекта DOMDocument, полученного с помощью XMLDiff\DOM::diff.

Список параметров

src

Исходный объект DOMDocument.

diff

Объект DOMDocument, содержащий информацию, полученную с помощью XMLDiff\DOM::diff.

Возвращаемые значения

Объединенный DOMDocument или NULL.


The XMLDiff\Memory class

(PECL xmldiff >= 0.8.0)

Введение

Обзор классов

XMLDiff\Memory extends XMLDiff\Base {
/* Методы */
public string diff ( string $from , string $to )
public string merge ( string $src , string $diff )
/* Наследуемые методы */
public XMLDiff\Base::__construct ( string $nsname )
abstract public mixed XMLDiff\Base::diff ( mixed $from , mixed $to )
abstract public mixed XMLDiff\Base::merge ( mixed $src , mixed $diff )
}

Содержание

  • XMLDiff\Memory::diff — Diff two XML documents
  • XMLDiff\Memory::merge — Produce merged XML document


Diff two XML documents

  • « XMLDiff\Memory
  • XMLDiff\Memory::merge »
  • PHP Manual
  • XMLDiff\Memory
  • Diff two XML documents

XMLDiff\Memory::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::diff — Diff two XML documents

Описание

public string XMLDiff\Memory::diff ( string $from , string $to )

Diff two strings containing XML documents and produce the diff information.

Список параметров

from

Source XML document.

to

Target XML document.

Возвращаемые значения

String with the XML document containing the diff information or NULL.


Produce merged XML document

  • « XMLDiff\Memory::diff
  • XMLDiff\File »
  • PHP Manual
  • XMLDiff\Memory
  • Produce merged XML document

XMLDiff\Memory::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\Memory::merge — Produce merged XML document

Описание

public string XMLDiff\Memory::merge ( string $src , string $diff )

Create new XML document based on diffs and source document.

Список параметров

src

Source XML document.

diff

XML document containing diff information.

Возвращаемые значения

String with the new XML document or NULL.


The XMLDiff\File class

(PECL xmldiff >= 0.8.0)

Введение

Обзор классов

XMLDiff\File extends XMLDiff\Base {
/* Методы */
public string diff ( string $from , string $to )
public string merge ( string $src , string $diff )
/* Наследуемые методы */
public XMLDiff\Base::__construct ( string $nsname )
abstract public mixed XMLDiff\Base::diff ( mixed $from , mixed $to )
abstract public mixed XMLDiff\Base::merge ( mixed $src , mixed $diff )
}

Содержание

  • XMLDiff\File::diff — Diff two XML files
  • XMLDiff\File::merge — Produce merged XML document


Diff two XML files

  • « XMLDiff\File
  • XMLDiff\File::merge »
  • PHP Manual
  • XMLDiff\File
  • Diff two XML files

XMLDiff\File::diff

(PECL xmldiff >= 0.8.0)

XMLDiff\File::diff — Diff two XML files

Описание

public string XMLDiff\File::diff ( string $from , string $to )

Diff two local XML files and produce string with the diff information.

Список параметров

from

Path to the source document.

to

Path to the target document.

Возвращаемые значения

String with the XML document containing the diff information or NULL.


Produce merged XML document

  • « XMLDiff\File::diff
  • Разбор XML »
  • PHP Manual
  • XMLDiff\File
  • Produce merged XML document

XMLDiff\File::merge

(PECL xmldiff >= 0.8.0)

XMLDiff\File::merge — Produce merged XML document

Описание

public string XMLDiff\File::merge ( string $src , string $diff )

Create new XML document based on diffs and source document.

Список параметров

src

Path to the source XML document.

diff

Path to the XML document with the diff information.

Возвращаемые значения

String with the new XML document or NULL.


Разбор XML

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Обработчики событий
  • Приведение к одному регистру
  • Коды ошибок
  • Кодировка символов
  • Примеры
    • Пример Структуры Элемента XML
    • Пример отображения XML тегов
    • Пример использования внешних сущностей XML
  • Функции парсера XML
    • utf8_decode — Преобразует строку с ISO-8859-1 символами кодированную в UTF-8 в однобайтную ISO-8859-1
    • utf8_encode — Кодирует строку ISO-8859-1 в кодировке UTF-8
    • xml_error_string — Получение строки ошибки XML анализатора
    • xml_get_current_byte_index — Получает текущий для XML анализатора байтовый индекс
    • xml_get_current_column_number — Получает от XML парсера номер текущего столбца
    • xml_get_current_line_number — Получает от XML-парсера номер текущей строки
    • xml_get_error_code — Получает код ошибки XML-парсера
    • xml_parse_into_struct — Разбор XML данных и помещение в массив
    • xml_parse — Запускает разбор XML документа
    • xml_parser_create_ns — Создание XML анализатора с поддержкой пространств имен
    • xml_parser_create — Создание XML анализатора
    • xml_parser_free — Освобождение XML анализатора
    • xml_parser_get_option — Получение значения настройки XML анализатора
    • xml_parser_set_option — Установка значения настройки XML анализатора
    • xml_set_character_data_handler — Установка обработчика символьных данных
    • xml_set_default_handler — Установка обработчика по умолчанию
    • xml_set_element_handler — Установка обработчика начального и конечного элементов
    • xml_set_end_namespace_decl_handler — Установка обработчика выхода за пределы пространства имен
    • xml_set_external_entity_ref_handler — Установка обработчика внешних сущностей
    • xml_set_notation_decl_handler — Установка обработчика объявления условных обозначений
    • xml_set_object — Использование XML анализатора внутри объекта
    • xml_set_processing_instruction_handler — Установка обработчика инструкций препроцессора (PI)
    • xml_set_start_namespace_decl_handler — Установка обработчика входа в пределы пространства имен
    • xml_set_unparsed_entity_decl_handler — Установка обработчика неразобранных объявлений сущностей


Введение

XML (eXtensible Markup Language - расширяемый язык разметки) - это формат данных для обмена структурированными документами в всемирной сети. Данный стандарт определён Консорциумом Всемирной паутины (W3C). Информация об XML и связанных технологиях может быть найдена на » http://www.w3.org/XML/.

Данное PHP-расширение реализует поддержку библиотеки expat Джеймса Кларка в PHP. Данный инструментарий позволяет Вам разбирать, но не проверять XML-документы. Он поддерживает три кодировки символов исходного текста также поддерживаемых PHP: US-ASCII, ISO-8859-1 и UTF-8. UTF-16 не поддерживается.

Данное расширение позволит вам создавать XML-анализаторы и далее определить обработчики для различных событий. Каждый XML-анализатор также имеет несколько параметров, которые вы можете настраивать.


Требования

Для корректной работы этого расширения необходимо PHP расширение libxml. Это означает, что также необходима передача опции --enable-libxml , хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.

Это расширение использует expat-совместимый слой по умолчанию. Также может быть использован expat, который может быть найден здесь: » http://www.jclark.com/xml/expat.html. Makefile, поставляемый с expat не создает библиотеку по умолчанию, вы можете использовать следующее правило для этого:

libexpat.a: $(OBJS)
    ar -rc $@ $(OBJS)
    ranlib $@
Исходный RPM пакет expat может быть найден здесь:» http://sourceforge.net/projects/expat/.


Установка

Это расширение включено по умолчанию. Оно может быть отключено во время выполнения с помощью следующей опции: --disable-xml

Эти функции включены по умолчанию при использовании стандартной библиотеки expat. Вы можете отключить поддержку XML с помощью --disable-xml . Если вы собрали PHP как модуль для Apache 1.3.9 или более поздней версии, PHP будет автоматически использовать стандартную библиотеку expat из Apache. В случае, если вы не хотите использовать стандартную библиотеку expat, то вам необходимо настроить PHP опцию --with-expat-dir=DIR , где DIR - путь до установочной директории библиотеки expat.

Версия PHP для Windows имеет встроенную поддержку данного расширения. Это означает, что для использования данных функций не требуется загрузка никаких дополнительных расширений.


Типы ресурсов

XML-ресурс, возвращаемый xml_parser_create() и xml_parser_create_ns(), ссылается на сущность xml-парсера, чтобы иметь возможность использовать функции этого расширения.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

XML_ERROR_NONE (integer)
XML_ERROR_NO_MEMORY (integer)
XML_ERROR_SYNTAX (integer)
XML_ERROR_NO_ELEMENTS (integer)
XML_ERROR_INVALID_TOKEN (integer)
XML_ERROR_UNCLOSED_TOKEN (integer)
XML_ERROR_PARTIAL_CHAR (integer)
XML_ERROR_TAG_MISMATCH (integer)
XML_ERROR_DUPLICATE_ATTRIBUTE (integer)
XML_ERROR_JUNK_AFTER_DOC_ELEMENT (integer)
XML_ERROR_PARAM_ENTITY_REF (integer)
XML_ERROR_UNDEFINED_ENTITY (integer)
XML_ERROR_RECURSIVE_ENTITY_REF (integer)
XML_ERROR_ASYNC_ENTITY (integer)
XML_ERROR_BAD_CHAR_REF (integer)
XML_ERROR_BINARY_ENTITY_REF (integer)
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF (integer)
XML_ERROR_MISPLACED_XML_PI (integer)
XML_ERROR_UNKNOWN_ENCODING (integer)
XML_ERROR_INCORRECT_ENCODING (integer)
XML_ERROR_UNCLOSED_CDATA_SECTION (integer)
XML_ERROR_EXTERNAL_ENTITY_HANDLING (integer)
XML_OPTION_CASE_FOLDING (integer)
XML_OPTION_TARGET_ENCODING (integer)
XML_OPTION_SKIP_TAGSTART (integer)
XML_OPTION_SKIP_WHITE (integer)
XML_SAX_IMPL (string)
Устанавливает стандарт обработки SAX. Может быть libxml или expat.


Обработчики событий

Список обработчиков событий XML:

Поддерживаемые XML обработчики
Функции PHP для установки обработчика | Описание события
xml_set_element_handler() | События элементов выдаются каждый раз, когда XML парсер встречает начальный или конечный тэги. Есть разные обработчики для начальных и конечных тэгов.
xml_set_character_data_handler() | Символьные данные это примерно всё неразмеченное содержимое XML документов, включая непечатные символы между тэгами. Отметим, что XML анализатор не добавляет или удаляет никаких непечатных символов, так как это приложение (то есть пользователь) решает где непечатные символы значительны.
xml_set_processing_instruction_handler() | PHP программисты должны быть уже знакомы с инструкциями обработки (PIs). <?php ?> является обрабатывающей инструкцией, где php является вызываемой "PI целью". Обработка этих инструкций зависит от программы, за исключением того, что все цели PI начинаются с зарезервированного слова "XML".
xml_set_default_handler() | Если нет специального обработчика, то вызывается обработчик по умолчанию. Вы получите XML и объявления типов документа при помощи обработчика по умолчанию.
xml_set_unparsed_entity_decl_handler() | Этот обработчик будет вызываться для декларирования непроанализированных (NDATA) сущностей.
xml_set_notation_decl_handler() | Этот обработчик вызывается при объявлении нотации.
xml_set_external_entity_ref_handler() | Этот обработчик вызывается когда анализатор XML находит ссылку на внешнюю сущность. Например, это может быть ссылка на файл или URL. Смотрите пример внешней сущности.
xml_set_start_namespace_decl_handler() | Этот обработчик вызывается в начале объявления пространства имён.
xml_set_end_namespace_decl_handler() | Этот обработчик вызывается в конце объявления пространства имён. Отметим, что это событие НЕ входит в состав LibXML.


Приведение к одному регистру

Функции обработчиков элементов могут получать имена своих элементов приведенными к одному регистру. Приведение к одному регистру определяется как "процесс, применяемый к последовательности символов, когда символы, идентифицируемые как "не в верхнем регистре", заменяются своими эквивалентами верхнего регистра". Иначе говоря, когда речь идёт о XML, приведение к одному регистру означает перевод символов в верхний регистр.

По умолчанию имена всех элементов, передаваемые функциям обработчиков, передаются с выравниванием регистра. Такой режим может запрашиваться и контролироваться XML-парсером с помощью функций xml_parser_get_option() и xml_parser_set_option() соответственно.


Коды ошибок

Следующие константы определены для кодов ошибок XML (возвращаемых функцией xml_parse()):

  • XML_ERROR_NONE
  • XML_ERROR_NO_MEMORY
  • XML_ERROR_SYNTAX
  • XML_ERROR_NO_ELEMENTS
  • XML_ERROR_INVALID_TOKEN
  • XML_ERROR_UNCLOSED_TOKEN
  • XML_ERROR_PARTIAL_CHAR
  • XML_ERROR_TAG_MISMATCH
  • XML_ERROR_DUPLICATE_ATTRIBUTE
  • XML_ERROR_JUNK_AFTER_DOC_ELEMENT
  • XML_ERROR_PARAM_ENTITY_REF
  • XML_ERROR_UNDEFINED_ENTITY
  • XML_ERROR_RECURSIVE_ENTITY_REF
  • XML_ERROR_ASYNC_ENTITY
  • XML_ERROR_BAD_CHAR_REF
  • XML_ERROR_BINARY_ENTITY_REF
  • XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF
  • XML_ERROR_MISPLACED_XML_PI
  • XML_ERROR_UNKNOWN_ENCODING
  • XML_ERROR_INCORRECT_ENCODING
  • XML_ERROR_UNCLOSED_CDATA_SECTION
  • XML_ERROR_EXTERNAL_ENTITY_HANDLING


Кодировка символов

Модуль XML в PHP поддерживает набор символов » Unicode через разные кодировки символов. Есть два типа кодировок символов в этом модуле, исходная кодировка и целевая кодировка. Внутреннее представление документа в PHP всегда кодировано в UTF-8.

Исходное кодирование происходит, когда XML документ разбирается. При создании анализатора XML может быть определена исходная кодировка (эта кодировка не может быть изменена позже, во время работы XML анализатора). Поддерживаются исходные кодировки ISO-8859-1, US-ASCII и UTF-8. Первые две являются однобайтными кодировками,что означает, что каждый символ представлен одним байтом. UTF-8 может кодировать символы, представленные переменным числом бит (вплоть до 21) в байты (от одного до четырёх). По умолчанию в PHP исходной кодировкой является ISO-8859-1.

Целевое кодирование происходит, когда PHP передаёт данные обрабатывающим XML функциям. Когда создаётся XML анализатор, целевая кодировка устанавливается такой же, как исходная кодировка, затем она может быть изменена в любой момент. Целевая кодировка повлияет на символьные данные, а также имена тегов и цели обрабатывающих команд.

Если XML анализатор встречает символы за пределами диапазона, которые их исходная кодировкам может предоставить, он возвращает ошибку.

Если PHP встречает символы в разбираемом XML документе, которые не могут быть представлены в выбранной целевой кодировке, проблемные символы будут "понижены". В данном случае это означает, что такие символы будут замещены вопросительным знаком.


Примеры

Содержание

  • Пример Структуры Элемента XML
  • Пример отображения XML тегов
  • Пример использования внешних сущностей XML


Пример Структуры Элемента XML

Первый пример отображает структуру начальных элементов в документе с отступом.

Пример #1 Показать структуру элемента XML

<?php
$file = "data.xml";
$depth = array();

function startElement($parser, $name, $attrs)
{
    global $depth;

    if (!isset($depth[$parser])) {
        $depth[$parser] = 0;
    }

    for ($i = 0; $i < $depth[$parser]; $i++) {
        echo "  ";
    }
    echo "$name\n";
    $depth[$parser]++;
}

function endElement($parser, $name)
{
    global $depth;
    $depth[$parser]--;
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
if (!($fp = fopen($file, "r"))) {
    die("Невозможно произвести чтение XML");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("Ошибка XML: %s на строке %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>


Пример отображения XML тегов

Пример #1 Отображение XML в HTML

Этот пример отображает теги XML документа непосредственно в HTML тегах. Элементы не найденные в "массиве отображения" игнорируются. Конечно, этот пример будет работать только с определенным типом документа XML.

<?php
$file = "data.xml";
$map_array = array(
    "BOLD"     => "B",
    "EMPHASIS" => "I",
    "LITERAL"  => "TT"
);

function startElement($parser, $name, $attrs)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "<$map_array[$name]>";
    }
}

function endElement($parser, $name)
{
    global $map_array;
    if (isset($map_array[$name])) {
        echo "</$map_array[$name]>";
    }
}

function characterData($parser, $data)
{
    echo $data;
}

$xml_parser = xml_parser_create();
// use case-folding so we are sure to find the tag in $map_array
xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!($fp = fopen($file, "r"))) {
    die("Невозможно произвести чтение XML");
}

while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
xml_parser_free($xml_parser);
?>


Пример использования внешних сущностей XML

Этот пример подсвечивает код XML. Он иллюстрирует то, как необходимо использовать обработчик ссылки на внешнюю сущность для подключения и разбора содержимого внешних файлов, так же как может быть обработан PI, и путь для определения "доверия" к коду, содержащемуся в PI.

XML документы, которые используются в примере расположены под самим примером (xmltest.xml и xmltest2.xml.)

Пример #1 Пример использования внешней сущности

<?php
$file = "xmltest.xml";

function trustedFile($file)
{
    // доверять только нашим собственным локальным файлам
    if (!preg_match("@^([a-z][a-z0-9+.-]*)\:\/\/@i", $file)
        && fileowner($file) == getmyuid()) {
            return true;
    }
    return false;
}

function startElement($parser, $name, $attribs)
{
    echo "&lt;<font color=\"#0000cc\">$name</font>";
    if (count($attribs)) {
        foreach ($attribs as $k => $v) {
            echo " <font color=\"#009900\">$k</font>=\"<font
                   color=\"#990000\">$v</font>\"";
        }
    }
    echo "&gt;";
}

function endElement($parser, $name)
{
    echo "&lt;/<font color=\"#0000cc\">$name</font>&gt;";
}

function characterData($parser, $data)
{
    echo "<b>$data</b>";
}

function PIHandler($parser, $target, $data)
{
    switch (strtolower($target)) {
        case "php":
            global $parser_file;
            // Если обработанный документ является "доверенным", то можно сказать,
            // что запуск расположенного в нем кода является безопасным. Если нет,
            // то вместо запуска отобразить сам код.
            if (trustedFile($parser_file[$parser])) {
                eval($data);
            } else {
                printf("Небезопасный код PHP: <i>%s</i>",
                        htmlspecialchars($data));
            }
            break;
    }
}

function defaultHandler($parser, $data)
{
    if (substr($data, 0, 1) == "&" && substr($data, -1, 1) == ";") {
        printf('<font color="#aa00aa">%s</font>',
                htmlspecialchars($data));
    } else {
        printf('<font size="-1">%s</font>',
                htmlspecialchars($data));
    }
}

function externalEntityRefHandler($parser, $openEntityNames, $base, $systemId,
                                  $publicId) {
    if ($systemId) {
        if (!list($parser, $fp) = new_xml_parser($systemId)) {
            printf("Невозможно открыть сущность %s в %s\n", $openEntityNames,
                   $systemId);
            return false;
        }
        while ($data = fread($fp, 4096)) {
            if (!xml_parse($parser, $data, feof($fp))) {
                printf("Ошибка XML: %s в строке %d в процессе разбора сущности %s\n",
                       xml_error_string(xml_get_error_code($parser)),
                       xml_get_current_line_number($parser), $openEntityNames);
                xml_parser_free($parser);
                return false;
            }
        }
        xml_parser_free($parser);
        return true;
    }
    return false;
}

function new_xml_parser($file)
{
    global $parser_file;

    $xml_parser = xml_parser_create();
    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, 1);
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    xml_set_processing_instruction_handler($xml_parser, "PIHandler");
    xml_set_default_handler($xml_parser, "defaultHandler");
    xml_set_external_entity_ref_handler($xml_parser, "externalEntityRefHandler");

    if (!($fp = @fopen($file, "r"))) {
        return false;
    }
    if (!is_array($parser_file)) {
        settype($parser_file, "array");
    }
    $parser_file[$xml_parser] = $file;
    return array($xml_parser, $fp);
}

if (!(list($xml_parser, $fp) = new_xml_parser($file))) {
    die("Чтение XML-файла невозможно");
}

echo "<pre>";
while ($data = fread($fp, 4096)) {
    if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("Ошибка XML: %s в строке %d\n",
                    xml_error_string(xml_get_error_code($xml_parser)),
                    xml_get_current_line_number($xml_parser)));
    }
}
echo "</pre>";
echo "разбор завершен\n";
xml_parser_free($xml_parser);

?>

Пример #2 xmltest.xml

<?xml version='1.0'?>
<!DOCTYPE chapter SYSTEM "/just/a/test.dtd" [
<!ENTITY plainEntity "FOO entity">
<!ENTITY systemEntity SYSTEM "xmltest2.xml">
]>
<chapter>
 <TITLE>Title &plainEntity;</TITLE>
 <para>
  <informaltable>
   <tgroup cols="3">
    <tbody>
     <row><entry>a1</entry><entry morerows="1">b1</entry><entry>c1</entry></row>
     <row><entry>a2</entry><entry>c2</entry></row>
     <row><entry>a3</entry><entry>b3</entry><entry>c3</entry></row>
    </tbody>
   </tgroup>
  </informaltable>
 </para>
 &systemEntity;
 <section id="about">
  <title>About this Document</title>
  <para>
   <!-- this is a comment -->
   <?php echo 'Hi!  This is PHP version ' . phpversion(); ?>
  </para>
 </section>
</chapter>

Этот файл подключен из xmltest.xml:

Пример #3 xmltest2.xml

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY testEnt "test entity">
]>
<foo>
   <element attrib="value"/>
   &testEnt;
   <?php echo "Здесь запущен некий код PHP"; ?>
</foo>


Функции парсера XML

Содержание

  • utf8_decode — Преобразует строку с ISO-8859-1 символами кодированную в UTF-8 в однобайтную ISO-8859-1
  • utf8_encode — Кодирует строку ISO-8859-1 в кодировке UTF-8
  • xml_error_string — Получение строки ошибки XML анализатора
  • xml_get_current_byte_index — Получает текущий для XML анализатора байтовый индекс
  • xml_get_current_column_number — Получает от XML парсера номер текущего столбца
  • xml_get_current_line_number — Получает от XML-парсера номер текущей строки
  • xml_get_error_code — Получает код ошибки XML-парсера
  • xml_parse_into_struct — Разбор XML данных и помещение в массив
  • xml_parse — Запускает разбор XML документа
  • xml_parser_create_ns — Создание XML анализатора с поддержкой пространств имен
  • xml_parser_create — Создание XML анализатора
  • xml_parser_free — Освобождение XML анализатора
  • xml_parser_get_option — Получение значения настройки XML анализатора
  • xml_parser_set_option — Установка значения настройки XML анализатора
  • xml_set_character_data_handler — Установка обработчика символьных данных
  • xml_set_default_handler — Установка обработчика по умолчанию
  • xml_set_element_handler — Установка обработчика начального и конечного элементов
  • xml_set_end_namespace_decl_handler — Установка обработчика выхода за пределы пространства имен
  • xml_set_external_entity_ref_handler — Установка обработчика внешних сущностей
  • xml_set_notation_decl_handler — Установка обработчика объявления условных обозначений
  • xml_set_object — Использование XML анализатора внутри объекта
  • xml_set_processing_instruction_handler — Установка обработчика инструкций препроцессора (PI)
  • xml_set_start_namespace_decl_handler — Установка обработчика входа в пределы пространства имен
  • xml_set_unparsed_entity_decl_handler — Установка обработчика неразобранных объявлений сущностей


Преобразует строку с ISO-8859-1 символами кодированную в UTF-8 в однобайтную ISO-8859-1

  • « Функции парсера XML
  • utf8_encode »
  • PHP Manual
  • Функции парсера XML
  • Преобразует строку с ISO-8859-1 символами кодированную в UTF-8 в однобайтную ISO-8859-1

utf8_decode

(PHP 4, PHP 5, PHP 7)

utf8_decode — Преобразует строку с ISO-8859-1 символами кодированную в UTF-8 в однобайтную ISO-8859-1

Описание

string utf8_decode ( string $data )

Эта функция декодирует data, закодированные в UTF-8, в ISO-8859-1. Байты строки, не корректные для UTF-8 и символы UTF-8, отсутствующие в ISO-8859-1 (то есть, символы выше U+00FF), заменятся символом ?.

Замечание:

Многие веб-страницы, отмеченые как использующие кодировку ISO-8859-1, на самом деле используют схожую кодировку Windows-1252, и веб-браузеры интерпретируют страницы ISO-8859-1 как Windows-1252. Однако Windows-1252 содержит дополнительные печатные символы, такие как знае Евро (€) и фигурные кавычки (" ") вместо управляющих кодов ISO-8859-1. Эта функция не конвертирует такие символы Windows-1252 корректно. Используйте другую функцию, если нужна конвертация в Windows-1252.

Список параметров

data

Строка закодированная в UTF-8.

Возвращаемые значения

Возвращает данные data, переведенные в ISO-8859-1.

Смотрите также

  • utf8_encode() - Кодирует строку ISO-8859-1 в кодировке UTF-8 (содержит описание UTF-8)
  • mb_convert_encoding() - Преобразует кодировку символов - Конвертирует между множеством различных кодировок, включая UTF-8, ISO-8859-1 and Windows-1252
  • iconv() - Преобразование строки в требуемую кодировку - Конвертирует между множеством различных кодировок
  • recode_string() - Recode a string according to a recode request - Конвертирует между множеством различных кодировок


Кодирует строку ISO-8859-1 в кодировке UTF-8

  • « utf8_decode
  • xml_error_string »
  • PHP Manual
  • Функции парсера XML
  • Кодирует строку ISO-8859-1 в кодировке UTF-8

utf8_encode

(PHP 4, PHP 5, PHP 7)

utf8_encode — Кодирует строку ISO-8859-1 в кодировке UTF-8

Описание

string utf8_encode ( string $data )

Эта функция конвертирует строку data из кодировки ISO-8859-1 в UTF-8

Замечание:

Многие веб-страницы, отмеченые как использующие кодировку ISO-8859-1, на самом деле используют схожую кодировку Windows-1252, и веб-браузеры интерпретируют страницы ISO-8859-1 как Windows-1252. Однако Windows-1252 содержит дополнительные печатные символы, такие как знае Евро (€) и фигурные кавычки (" ") вместо управляющих кодов ISO-8859-1. Эта функция не конвертирует такие символы Windows-1252 корректно. Используйте другую функцию, если нужна конвертация из Windows-1252.

Список параметров

data

ISO-8859-1 строка.

Возвращаемые значения

Возвращает UTF-8 перевод данных data.

Смотрите также

  • utf8_encode() (содержит описание UTF-8)
  • mb_convert_encoding() - Преобразует кодировку символов - Конвертирует между множеством различных кодировок, включая UTF-8, ISO-8859-1 and Windows-1252
  • iconv() - Преобразование строки в требуемую кодировку - Конвертирует между множеством различных кодировок
  • recode_string() - Recode a string according to a recode request - Конвертирует между множеством различных кодировок


Получение строки ошибки XML анализатора

  • « utf8_encode
  • xml_get_current_byte_index »
  • PHP Manual
  • Функции парсера XML
  • Получение строки ошибки XML анализатора

xml_error_string

(PHP 4, PHP 5, PHP 7)

xml_error_string — Получение строки ошибки XML анализатора

Описание

string xml_error_string ( int $code )

Получение строкового представления ошибки XML анализатора в соответствии с переданным кодом ошибки code.

Список параметров

code

Код ошибки, возвращаемый функцией xml_get_error_code().

Возвращаемые значения

Возвращает строку с текстовым описанием кода ошибки code или FALSE, если описания не найдено.

Смотрите также

  • xml_get_error_code() - Получает код ошибки XML-парсера


Получает текущий для XML анализатора байтовый индекс

  • « xml_error_string
  • xml_get_current_column_number »
  • PHP Manual
  • Функции парсера XML
  • Получает текущий для XML анализатора байтовый индекс

xml_get_current_byte_index

(PHP 4, PHP 5, PHP 7)

xml_get_current_byte_index — Получает текущий для XML анализатора байтовый индекс

Описание

int xml_get_current_byte_index ( resource $parser )

Получает текущий для заданного XML анализатора байтовый индекс.

Список параметров

parser

Ссылка на XML анализатор, из которого будет получен индекс байта.

Возвращаемые значения

Эта функция вернет FALSE, если аргумент parser не ссылается на допустимый анализатор, в противном случае она возвращает индекс байта в буфере данных анализатора, на котором он находится в данный момент (начиная с нуля).

Примечания

Внимание

Эта функция возвращает байтовый индекс, считая, что текст закодирован в UTF-8. Смена кодировки не повлияет на вывод функции.

Смотрите также

  • xml_get_current_column_number() - Получает от XML парсера номер текущего столбца
  • xml_get_current_line_number() - Получает от XML-парсера номер текущей строки


Получает от XML парсера номер текущего столбца

  • « xml_get_current_byte_index
  • xml_get_current_line_number »
  • PHP Manual
  • Функции парсера XML
  • Получает от XML парсера номер текущего столбца

xml_get_current_column_number

(PHP 4, PHP 5, PHP 7)

xml_get_current_column_number — Получает от XML парсера номер текущего столбца

Описание

int xml_get_current_column_number ( resource $parser )

Получает текущий номер столбца заданного XML парсера.

Список параметров

parser

Ссылка на парсер XML для получения номера столбца.

Возвращаемые значения

Эта функция возвращает FALSE, если ссылка параметра parser не ведет к действующему парсеру, или же возвращает номер столбца на текущей строке (определенной с помощью xml_get_current_line_number()) согласно текущему положению указателя парсера.

Смотрите также

  • xml_get_current_byte_index() - Получает текущий для XML анализатора байтовый индекс
  • xml_get_current_line_number() - Получает от XML-парсера номер текущей строки


Получает от XML-парсера номер текущей строки

  • « xml_get_current_column_number
  • xml_get_error_code »
  • PHP Manual
  • Функции парсера XML
  • Получает от XML-парсера номер текущей строки

xml_get_current_line_number

(PHP 4, PHP 5, PHP 7)

xml_get_current_line_number — Получает от XML-парсера номер текущей строки

Описание

int xml_get_current_line_number ( resource $parser )

Получает номер текущей строки для заданного XML-парсера.

Список параметров

parser

Ссылка на парсер XML для получения номера строки.

Возвращаемые значения

Эта функция возвращает FALSE, если ссылка параметра parser не ведет к действующему парсеру, или же возвращает номер строки согласно текущему положению указателя парсера.

Смотрите также

  • xml_get_current_column_number() - Получает от XML парсера номер текущего столбца
  • xml_get_current_byte_index() - Получает текущий для XML анализатора байтовый индекс


Получает код ошибки XML-парсера

  • « xml_get_current_line_number
  • xml_parse_into_struct »
  • PHP Manual
  • Функции парсера XML
  • Получает код ошибки XML-парсера

xml_get_error_code

(PHP 4, PHP 5, PHP 7)

xml_get_error_code — Получает код ошибки XML-парсера

Описание

int xml_get_error_code ( resource $parser )

Получает код ошибки XML-парсера.

Список параметров

parser

Ссылка на парсер XML для получения кода ошибки.

Возвращаемые значения

Эта функция возвращает FALSE, если ссылка параметра parser не ведет к действующему парсеру, или же возвращает один из кодов ошибок из списка, расположенного в разделе кодов ошибок.

Смотрите также

  • xml_error_string() - Получение строки ошибки XML анализатора


Разбор XML данных и помещение в массив

  • « xml_get_error_code
  • xml_parse »
  • PHP Manual
  • Функции парсера XML
  • Разбор XML данных и помещение в массив

xml_parse_into_struct

(PHP 4, PHP 5, PHP 7)

xml_parse_into_struct — Разбор XML данных и помещение в массив

Описание

int xml_parse_into_struct ( resource $parser , string $data , array &$values [, array &$index ] )

Эта функция разбирает XML строку и помещает данные в 2 массива. Массив index содержит указатели на размещение значений в массиве values. Аргументы, задающие массивы, должны передаваться в функцию по ссылке.

Список параметров

parser

Ссылка на используемый XML анализатор.

data

Строка XML данных.

values

Массив значений XML данных.

index

Массив указателей на соответствующие значения в массиве $values.

Возвращаемые значения

xml_parse_into_struct() возвращает 0 при неудачном разборе строки и 1 при успешном. Это не тоже самое, что FALSE и TRUE, будьте осторожны с такими операторами, как ===.

Примеры

Ниже представлен пример, демонстрирующий внутреннее устройство массивов, генерируемых функцией. XML строка содержит простой тэг note вложенный в тэг para. Программа в примере разбирает эту строку и выводит построенные массивы:

Пример #1 Пример использования xml_parse_into_struct()

<?php
$simple = "<para><note>simple note</note></para>";
$p = xml_parser_create();
xml_parse_into_struct($p, $simple, $vals, $index);
xml_parser_free($p);
echo "Index array\n";
print_r($index);
echo "\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] => simple note
        )

    [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 AminoAcid ($aa)
    {
        foreach ($aa as $k=>$v)
            $this->$k = $aa[$k];
    }
}

function readDatabase($filename)
{
    // чтение XML базы данных аминокислот
    $data = implode("", file($filename));
    $parser = xml_parser_create();
    xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
    xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
    xml_parse_into_struct($parser, $data, $values, $tags);
    xml_parser_free($parser);

    // проход через структуры
    foreach ($tags as $key=>$val) {
        if ($key == "molecule") {
            $molranges = $val;
            // каждая смежная пара значений массивов является верхней и
            // нижней границей определения молекулы
            for ($i=0; $i < count($molranges); $i+=2) {
                $offset = $molranges[$i] + 1;
                $len = $molranges[$i + 1] - $offset;
                $tdb[] = parseMol(array_slice($values, $offset, $len));
            }
        } else {
            continue;
        }
    }
    return $tdb;
}

function parseMol($mvalues)
{
    for ($i=0; $i < count($mvalues); $i++) {
        $mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"];
    }
    return new AminoAcid($mol);
}

$db = readDatabase("moldb.xml");
echo "** База данных аминокислот:\n";
print_r($db);

?>
После выполнения parsemoldb.php переменная $db содержит массив объектов AminoAcid, а вывод соответственно следующий:
** База данных аминокислот:
Array
(
    [0] => aminoacid Object
        (
            [name] => Alanine
            [symbol] => ala
            [code] => A
            [type] => hydrophobic
        )

    [1] => aminoacid Object
        (
            [name] => Lysine
            [symbol] => lys
            [code] => K
            [type] => charged
        )

)


Запускает разбор XML документа

  • « xml_parse_into_struct
  • xml_parser_create_ns »
  • PHP Manual
  • Функции парсера XML
  • Запускает разбор XML документа

xml_parse

(PHP 4, PHP 5, PHP 7)

xml_parse — Запускает разбор XML документа

Описание

int xml_parse ( resource $parser , string $data [, bool $is_final = false ] )

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.


Создание XML анализатора с поддержкой пространств имен

  • « xml_parse
  • xml_parser_create »
  • PHP Manual
  • Функции парсера XML
  • Создание XML анализатора с поддержкой пространств имен

xml_parser_create_ns

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

xml_parser_create_ns — Создание XML анализатора с поддержкой пространств имен

Описание

resource xml_parser_create_ns ([ string $encoding [, string $separator = ":" ]] )

xml_parser_create_ns() создает новый XML анализатор с поддержкой пространств имен и возвращает ссылающийся на него ресурс, который можно использовать в других XML функциях.

Список параметров

encoding

Кодировка входных данных определяется автоматически, а encoding задает кодировку только для выводимых данных. Если передается пустая строка, анализатор попытается определить кодировку, просматривая первые 3 или 4 байта. В PHP 5.0.0 и 5.0.1 кодировка по умолчанию ISO-8859-1. Для версий PHP 5.0.2 и выше - UTF-8. Список поддерживаемых кодировок: ISO-8859-1, UTF-8 и US-ASCII.

separator

Если сообщить анализатору пространство имен, то параметры тэгов, передающиеся в различные обработчики будут состоять из пространства имен и локального имени, отделенных заданным в этом аргументе разделителем seperator.

Возвращаемые значения

Возвращает ресурс созданного XML анализатора.

Смотрите также

  • xml_parser_create() - Создание XML анализатора
  • xml_parser_free() - Освобождение XML анализатора


Создание XML анализатора

  • « xml_parser_create_ns
  • xml_parser_free »
  • PHP Manual
  • Функции парсера XML
  • Создание XML анализатора

xml_parser_create

(PHP 4, PHP 5, PHP 7)

xml_parser_create — Создание XML анализатора

Описание

resource xml_parser_create ([ string $encoding ] )

xml_parser_create() создает новый XML анализатор и возвращает ссылающийся на него ресурс, который можно использовать в других XML функциях.

Список параметров

encoding

Необязательный аргумент encoding задает кодировку символов для ввода/вывода в PHP 4. Начиная с PHP 5, кодировка входных данных определяется автоматически, а encoding задает кодировку только для выводимых данных. В PHP 4 кодировка по умолчанию для выходных данных та же, что и входных. Если передается пустая строка, анализатор попытается определить кодировку, просматривая первые 3 или 4 байта. В PHP 5.0.0 и 5.0.1 кодировка по умолчанию ISO-8859-1. Для версий PHP 5.0.2 и выше - UTF-8. Список поддерживаемых кодировок: ISO-8859-1, UTF-8 и US-ASCII.

Возвращаемые значения

Возвращает ресурс созданного XML анализатора.

Смотрите также

  • xml_parser_create_ns() - Создание XML анализатора с поддержкой пространств имен
  • xml_parser_free() - Освобождение XML анализатора


Освобождение XML анализатора

  • « xml_parser_create
  • xml_parser_get_option »
  • PHP Manual
  • Функции парсера XML
  • Освобождение XML анализатора

xml_parser_free

(PHP 4, PHP 5, PHP 7)

xml_parser_free — Освобождение XML анализатора

Описание

bool xml_parser_free ( resource $parser )

Освобождает память, занятую XML анализатором parser.

Список параметров

parser
Ссылка на очищаемый XML анализатор.

Возвращаемые значения

Эта функция возвращает FALSE, если parser ссылается на недопустимый анализатор, в остальных случаях она очищает анализатор и возвращает TRUE.


Получение значения настройки XML анализатора

  • « xml_parser_free
  • xml_parser_set_option »
  • PHP Manual
  • Функции парсера XML
  • Получение значения настройки XML анализатора

xml_parser_get_option

(PHP 4, PHP 5, PHP 7)

xml_parser_get_option — Получение значения настройки XML анализатора

Описание

mixed xml_parser_get_option ( resource $parser , int $option )

Получает значение настройки XML анализатора.

Список параметров

parser
Ссылка на XML анализатор, настройку которого требуется получить.
option
Какую настройку получить. Доступны следующие настройки XML_OPTION_CASE_FOLDING и XML_OPTION_TARGET_ENCODING. Их описание смотрите в документации к функции xml_parser_set_option().

Возвращаемые значения

Эта функция возвращает FALSE, если parser ссылается на недопустимый анализатор или если option имеет недопустимое значение (в этом случает выбрасывается предупреждение E_WARNING). В остальных случаях возвращается значение настройки.


Установка значения настройки XML анализатора

  • « xml_parser_get_option
  • xml_set_character_data_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка значения настройки XML анализатора

xml_parser_set_option

(PHP 4, PHP 5, PHP 7)

xml_parser_set_option — Установка значения настройки XML анализатора

Описание

bool xml_parser_set_option ( resource $parser , int $option , mixed $value )

Устанавливает значение настройки XML анализатора.

Список параметров

parser

Ссылка на XML анализатор.

option

Какую настройку требуется установить. См. ниже.

Доступны следующие настройки:

Настройки XML анализатора
Константа | Тип данных | Описание
XML_OPTION_CASE_FOLDING | integer | Требуется ли включить case-folding для этого анализатора. Включено по умолчанию.
XML_OPTION_SKIP_TAGSTART | integer | Задает количество символов с начала имени тэга, которые следует пропустить.
XML_OPTION_SKIP_WHITE | integer | Требуется ли пропускать значения, состоящие из пробелов.
XML_OPTION_TARGET_ENCODING | string | Устанавливает кодировку, которая будет использоваться XML анализатором. По умолчанию используется кодировка заданная при вызове функции xml_parser_create(). Поддерживаются кодировки ISO-8859-1, US-ASCII и UTF-8.

value

Новое значение настройки.

Возвращаемые значения

Функция возвращает FALSE, если parser ссылается на недопустимый анализатор или если настройка не может быть установлена. В противном случае устанавливается новое значение настройки и возвращается значение TRUE.


Установка обработчика символьных данных

  • « xml_parser_set_option
  • xml_set_default_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика символьных данных

xml_set_character_data_handler

(PHP 4, PHP 5, PHP 7)

xml_set_character_data_handler — Установка обработчика символьных данных

Описание

bool xml_set_character_data_handler ( resource $parser , callable $handler )

Устанавливает обработчик символьных данных для заданного XML анализатора parser.

Список параметров

parser

Ссылка на XML анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать два аргумента:

handler ( resource $parser , string $data )
parser
Первый аргумент parser является ссылкой на XML анализатор вызывающий обработчик.
data
Второй аргумент data должен содержать данные в виде текстовой строки.

Обработчик символьных данных вызывается для каждого фрагмента текста в XML документе. Он также может вызываться несколько раз внутри каждого фрагмента (например для не-ASCII строк).

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка обработчика по умолчанию

  • « xml_set_character_data_handler
  • xml_set_element_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика по умолчанию

xml_set_default_handler

(PHP 4, PHP 5, PHP 7)

xml_set_default_handler — Установка обработчика по умолчанию

Описание

bool xml_set_default_handler ( resource $parser , callable $handler )

Задает обработчик по умолчанию для XML анализатора parser.

Список параметров

parser

Ссылка на XML анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать два аргумента:

handler ( resource $parser , string $data )
parser
Первый аргумент parser является ссылкой на XML анализатор вызывающий обработчик.
data
Второй аргумент dataдолжен содержать символьные данные. Это может быть XML объявление, объявление типа документа, сущности или другие данные, для которых еще нет обработчика.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка обработчика начального и конечного элементов

  • « xml_set_default_handler
  • xml_set_end_namespace_decl_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика начального и конечного элементов

xml_set_element_handler

(PHP 4, PHP 5, PHP 7)

xml_set_element_handler — Установка обработчика начального и конечного элементов

Описание

bool xml_set_element_handler ( resource $parser , callable $start_element_handler , callable $end_element_handler )

Устанавливает функцию обработчик элементов для XML анализатора parser. start_element_handler и end_element_handler - строки, содержащие имена функций, которые должны быть определены на момент вызова функции xml_parse() из анализатора parser.

Список параметров

parser

Ссылка на XML анализатор.

start_element_handler

Функция с именем start_element_handler должна принимать три аргумента:

start_element_handler ( resource $parser , string $name , array $attribs )
parser
Первый аргумент parser является ссылкой на XML анализатор вызывающий обработчик.
name
Второй аргумент name содержит имя элемента, для которого этот обработчик вызывается. Если настройка case-folding включена для этого анализатора, имя элемента будет в верхнем регистре.
attribs
Третий аргумент attribs содержит ассоциативный массив с атрибутами элемента (если есть). Индексами этого массива будут имена атрибутов, а значения массива будут соответствовать значениям атрибутов. Имена атрибутов должны быть приведены к регистру в соответствии с теми же критериями, что и имена элементов. Значения атрибутов не приводятся к какому-либо регистру. Атрибуты извлекаются из элемента в порядке прямого обхода по attribs, используя функцию each().Первый индекс в массиве соответствует первому атрибуту и так далее.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

end_element_handler

Функция с именем end_element_handler должна принимать два аргумента:

end_element_handler ( resource $parser , string $name )
parser
Первый аргумент parser является ссылкой на XML анализатор вызывающий обработчик.
name
Второй аргумент name содержит имя элемента, для которого этот обработчик вызывается. Если настройка case-folding включена для этого анализатора, имя элемента будет в верхнем регистре.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка обработчика выхода за пределы пространства имен

  • « xml_set_element_handler
  • xml_set_external_entity_ref_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика выхода за пределы пространства имен

xml_set_end_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

xml_set_end_namespace_decl_handler — Установка обработчика выхода за пределы пространства имен

Описание

bool xml_set_end_namespace_decl_handler ( resource $parser , callable $handler )

Задает обработчик, который вызывается при выходе за пределы объявления пространства имен. Этот обработчик будет вызываться для каждого объявления пространства имен после того как отработает обработчик окончания элемента, в котором это пространство имен было объявлено.

Список параметров

parser

Ссылка на XML анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать два аргумента и возвращать целочисленный результат. Если обработчик вернет FALSE (равно как и ничего не вернет), XML анализатор прекратит работу, а функция xml_get_error_code() будет возвращать константу XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $prefix )
parser
Первый аргумент parser является ссылкой на XML анализатор вызывающий обработчик.
prefix
Префикс - строка, используемая как ссылка на пространство имен в пределах XML объекта.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примечания

Замечание:

Это событие не поддерживается LibXML.

Смотрите также

  • xml_set_start_namespace_decl_handler() - Установка обработчика входа в пределы пространства имен


Установка обработчика внешних сущностей

  • « xml_set_end_namespace_decl_handler
  • xml_set_notation_decl_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика внешних сущностей

xml_set_external_entity_ref_handler

(PHP 4, PHP 5, PHP 7)

xml_set_external_entity_ref_handler — Установка обработчика внешних сущностей

Описание

bool xml_set_external_entity_ref_handler ( resource $parser , callable $handler )

Задает функцию обработчик внешних сущностей для XML анализатора parser.

Список параметров

parser

Ссылка на XML анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать пять аргументов и возвращать целочисленный результат. Если обработчик вернет FALSE (равно как и ничего не вернет), XML анализатор прекратит работу, а функция xml_get_error_code() будет возвращать константу XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $open_entity_names , string $base , string $system_id , string $public_id )
parser
Первый аргумент parser является ссылкой на XML анализатор вызывающий обработчик.
open_entity_names
Второй аргумент open_entity_names - список разделенных пробелами имен сущностей, которые могут участвовать в разборе текущей сущности (включая текущую сущность).
base
Это основа для разрешения системного идентификатора (system_id) внешней сущности. На данный момент в качестве этого аргумента всегда передается пустая строка.
system_id
Четвертый аргумент system_id - системный идентификатор в том виде, как он представлен в объявлении сущности.
public_id
Пятый аргумент public_id - общедоступный идентификатор в том виде, как он представлен в объявлении сущности, либо пустая строка, если такового нет; пробелы в идентификаторе будут нормализованы в соответствии с требованиями XML спецификации.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка обработчика объявления условных обозначений

  • « xml_set_external_entity_ref_handler
  • xml_set_object »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика объявления условных обозначений

xml_set_notation_decl_handler

(PHP 4, PHP 5, PHP 7)

xml_set_notation_decl_handler — Установка обработчика объявления условных обозначений

Описание

bool xml_set_notation_decl_handler ( resource $parser , callable $handler )

Задает обработчик объявления обозначений для XML анализатора parser.

Раздел объявления обозначений является частью DTD документа и имеет следующий формат:

<!NOTATION <parameter>name</parameter>
{ <parameter>systemId</parameter> | <parameter>publicId</parameter>?>
См. » раздел 4.7 спецификации XML 1.0 для более полного описания обозначений (нотаций).

Список параметров

parser

Ссылка на XML анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать пять аргументов:

handler ( resource $parser , string $notation_name , string $base , string $system_id , string $public_id )
parser
Первый аргумент parser является ссылкой на XML анализатор вызывающий обработчик.
notation_name
Имя обозначения name в том же виде, как описано выше.
base
Это основа для разрешения системного идентификатора (system_id) внешней сущности. На данный момент в качестве этого аргумента всегда передается пустая строка.
system_id
Системный идентификатор объявления внешнего обозначения.
public_id
Общедоступный идентификатор объявления внешнего обозначения.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Использование XML анализатора внутри объекта

  • « xml_set_notation_decl_handler
  • xml_set_processing_instruction_handler »
  • PHP Manual
  • Функции парсера XML
  • Использование XML анализатора внутри объекта

xml_set_object

(PHP 4, PHP 5, PHP 7)

xml_set_object — Использование XML анализатора внутри объекта

Описание

bool xml_set_object ( resource $parser , object &$object )

Эта функция позволяет использовать parser внутри объекта object. Все callback-функции могут быть установлены функциями xml_set_element_handler() и т.п. и использоваться как методы объекта object.

Предостережение

Начиная с PHP 7.0.0, в дополнение к вызову xml_parser_free() после окончания разбора, необходимо также удалить (unset) ссылку на parser во избежание утечек памяти.

Список параметров

parser

Ссылка на XML анализатор.

object

Объект, в котором будет использоваться XML анализатор.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования xml_set_object()

<?php
class XMLParser
{
    private $parser;

    function __construct()
    {
        $this->parser = xml_parser_create();

        xml_set_object($this->parser, $this);
        xml_set_element_handler($this->parser, "tag_open", "tag_close");
        xml_set_character_data_handler($this->parser, "cdata");
    }

    function __destruct()
    {
        xml_parser_free($this->parser);
        unset($this->parser);
    }

    function parse($data)
    {
        xml_parse($this->parser, $data);
    }

    function tag_open($parser, $tag, $attributes)
    {
        var_dump($tag, $attributes);
    }

    function cdata($parser, $cdata)
    {
        var_dump($cdata);
    }

    function tag_close($parser, $tag)
    {
        var_dump($tag);
    }

} // окончание определения класса xml

$xml_parser = new XMLParser();
$xml_parser->parse("<A ID='hallo'>PHP</A>");
?>

Результат выполнения данного примера:

string(1) "A"
array(1) {
  ["ID"]=>
  string(5) "hallo"
}
string(3) "PHP"
string(1) "A"


Установка обработчика инструкций препроцессора (PI)

  • « xml_set_object
  • xml_set_start_namespace_decl_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика инструкций препроцессора (PI)

xml_set_processing_instruction_handler

(PHP 4, PHP 5, PHP 7)

xml_set_processing_instruction_handler — Установка обработчика инструкций препроцессора (PI)

Описание

bool xml_set_processing_instruction_handler ( resource $parser , callable $handler )

Задает обработчик инструкций препроцессора (PI) для XML анализатора. parser.

Инструкции имеют следующий формат:

<?
target data
?>
Можно вставлять PHP код в тело тэга, но есть одно ограничение: завершающий тэг инструкций (?>) нельзя заключать в кавычки, таким образом эта последовательность символов не должна встречаться в PHP коде, который вы вставляете посредством PI в XML документы. Если это произойдет, остаток PHP кода будет воспринят как простые символьные данные.

Список параметров

parser

Ссылка на XML анализатор, для которого устанавливается обработчик.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать три аргумента:

handler ( resource $parser , string $target , string $data )
parser
Первый аргумент parser является ссылкой на XML анализатор вызывающий обработчик.
target
Второй аргумент target содержит цель применения PI.
data
Третий аргумент data содержит PI данные.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Установка обработчика входа в пределы пространства имен

  • « xml_set_processing_instruction_handler
  • xml_set_unparsed_entity_decl_handler »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика входа в пределы пространства имен

xml_set_start_namespace_decl_handler

(PHP 4 >= 4.0.5, PHP 5, PHP 7)

xml_set_start_namespace_decl_handler — Установка обработчика входа в пределы пространства имен

Описание

bool xml_set_start_namespace_decl_handler ( resource $parser , callable $handler )

Задает обработчик события входа в пространство имен. То есть обработчик вызывается анализатор находит объявление пространства имен. Подобные объявления находятся в открывающих тэгах элементов. Этот обработчик вызывается до обработчика начала тэга.

Список параметров

parser

Ссылка на XML анализатор.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать три аргумента и возвращать целочисленный результат. Если обработчик вернет FALSE (равно как и ничего не вернет), XML анализатор прекратит работу, а функция xml_get_error_code() будет возвращать константу XML_ERROR_EXTERNAL_ENTITY_HANDLING.

handler ( resource $parser , string $prefix , string $uri )
parser
Первый аргумент parser является ссылкой на XML анализатор вызывающий обработчик.
prefix
Префикс - строка, используемая как ссылка на пространство имен в пределах XML объекта.
uri
Универсальный идентификатор ресурса (URI) пространства имен.

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • xml_set_end_namespace_decl_handler() - Установка обработчика выхода за пределы пространства имен


Установка обработчика неразобранных объявлений сущностей

  • « xml_set_start_namespace_decl_handler
  • XMLReader »
  • PHP Manual
  • Функции парсера XML
  • Установка обработчика неразобранных объявлений сущностей

xml_set_unparsed_entity_decl_handler

(PHP 4, PHP 5, PHP 7)

xml_set_unparsed_entity_decl_handler — Установка обработчика неразобранных объявлений сущностей

Описание

bool xml_set_unparsed_entity_decl_handler ( resource $parser , callable $handler )

Задает функцию обработчик неразобранных объявлений сущностей для XML анализатора parser.

Обработчик handler будет вызван, если XML анализатор обнаружит NDATA объявление внешней сущности вида:

<!ENTITY <parameter>name</parameter> {<parameter>publicId</parameter> | <parameter>systemId</parameter>}
        NDATA <parameter>notationName</parameter>

См. » раздел 4.2.2 XML 1.0 спецификации, чтобы получить точное определение обозначений внешних сущностей.

Список параметров

parser

Ссылка на XML анализатор для которого задается обработчик.

handler

handler - строка содержащая имя функции, которая должна быть определена на момент вызова функции xml_parse() из анализатора parser.

Функция с именем handler должна принимать шесть аргументов:

handler ( resource $parser , string $entity_name , string $base , string $system_id , string $public_id , string $notation_name )
parser
Первый аргумент parser является ссылкой на XML анализатор вызывающий обработчик.
entity_name
Имя сущности, которой требуется дать определение.
base
Это основа для разрешения системного идентификатора (system_id) внешней сущности. На данный момент в качестве этого аргумента всегда передается пустая строка.
system_id
Системный идентификатор внешней сущности.
public_id
Общедоступный идентификатор внешней сущности.
notation_name
Имя обозначения этой сущности (см. xml_set_notation_decl_handler()).

Если в качестве обработчика передана пустая строка или FALSE, этот обработчик отключается.

Замечание: В качестве аргумента вместо имени функции может быть передан массив, содержащий ссылку на объект и имя метода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


XMLReader

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • XMLReader — Класс XMLReader
    • XMLReader::close — Закрыть ввод XMLReader
    • XMLReader::expand — Возвратить копию текущего узла в виде объекта DOM
    • XMLReader::getAttribute — Получить значение атрибута с определённым именем
    • XMLReader::getAttributeNo — Получить значение атрибута по индексу
    • XMLReader::getAttributeNs — Получить значение атрибута по localname и URI
    • XMLReader::getParserProperty — Указывает, было ли определенное свойство установлено
    • XMLReader::isValid — Показать, является ли разбираемый документ синтаксически правильным
    • XMLReader::lookupNamespace — Найти пространство имён для префикса
    • XMLReader::moveToAttribute — Переместить курсор к атрибуту с заданным именем
    • XMLReader::moveToAttributeNo — Переместить курсор на атрибут по индексу
    • XMLReader::moveToAttributeNs — Переместить курсор к именованному атрибуту
    • XMLReader::moveToElement — Позиционировать курсор на родительском элементе текущего атрибута
    • XMLReader::moveToFirstAttribute — Переместить позицию курсора на первый атрибут
    • XMLReader::moveToNextAttribute — Переместить позицию курсора на следующий атрибут
    • XMLReader::next — Переместить курсор на следующий узел, пропуская все поддеревья
    • XMLReader::open — Установить URI, содержащий XML-документ для разбора
    • XMLReader::read — Переместиться к следующему узлу в документе
    • XMLReader::readInnerXML — Извлечь XML из текущего узла
    • XMLReader::readOuterXML — Получить XML из текущего узла, включая сам узел
    • XMLReader::readString — Прочитать содержимое текущего узла как строку
    • XMLReader::setParserProperty — Устанавливает опцию парсера
    • XMLReader::setRelaxNGSchema — Установить имя файла или URI для схемы RelaxNG
    • XMLReader::setRelaxNGSchemaSource — Устанавливает данные, содержащие схему RelaxNG
    • XMLReader::setSchema — Проверить документ, используя XSD
    • XMLReader::XML — Установить данные, содержащие XML для разбора


Введение

Расширение XMLReader - синтаксический анализатор XML. Класс-читатель выступает в качестве курсора, следует по потоку документа и останавливается на каждом узле на этом пути.

Кодировка

Важно отметить, что библиотека libxml внутри использует кодировку UTF-8 и, таким образом, кодировка извлекаемого содержимого всегда будет в кодировке UTF-8.


Установка

Расширение XMLReader изначально было расширением PECL для PHP 5. Начиная с версии PHP 5.1.0, оно было перенесено в исходный код PHP (объединено), а затем включено по умолчанию с версии PHP 5.1.2.

Это расширение включено по умолчанию. Оно может быть отключено во время выполнения с помощью следующей опции: --disable-xmlreader


  • « Настройка во время выполнения
  • XMLReader »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

Данное расширение не определяет каких либо типов ресурсов.


Класс XMLReader

(PHP 5 >= 5.1.0, PHP 7)

Введение

Расширение XMLReader - синтаксический анализатор XML. Класс-читатель выступает в качестве курсора, следует по потоку документа и останавливается на каждом узле на этом пути.

Обзор классов

XMLReader {
/* Константы */
const int NONE = 0 ;
const int ELEMENT = 1 ;
const int ATTRIBUTE = 2 ;
const int TEXT = 3 ;
const int CDATA = 4 ;
const int ENTITY_REF = 5 ;
const int ENTITY = 6 ;
const int PI = 7 ;
const int COMMENT = 8 ;
const int DOC = 9 ;
const int DOC_TYPE = 10 ;
const int DOC_FRAGMENT = 11 ;
const int NOTATION = 12 ;
const int WHITESPACE = 13 ;
const int SIGNIFICANT_WHITESPACE = 14 ;
const int END_ELEMENT = 15 ;
const int END_ENTITY = 16 ;
const int XML_DECLARATION = 17 ;
const int LOADDTD = 1 ;
const int DEFAULTATTRS = 2 ;
const int VALIDATE = 3 ;
const int SUBST_ENTITIES = 4 ;
/* Свойства */
public readonly int $attributeCount ;
public readonly string $baseURI ;
public readonly int $depth ;
public readonly bool $hasAttributes ;
public readonly bool $hasValue ;
public readonly bool $isDefault ;
public readonly bool $isEmptyElement ;
public readonly string $localName ;
public readonly string $name ;
public readonly string $namespaceURI ;
public readonly int $nodeType ;
public readonly string $prefix ;
public readonly string $value ;
public readonly string $xmlLang ;
/* Методы */
public bool close ( void )
public DOMNode expand ([ DOMNode $basenode ] )
public string getAttribute ( string $name )
public string getAttributeNo ( int $index )
public string getAttributeNs ( string $localName , string $namespaceURI )
public bool getParserProperty ( int $property )
public bool isValid ( void )
public string lookupNamespace ( string $prefix )
public bool moveToAttribute ( string $name )
public bool moveToAttributeNo ( int $index )
public bool moveToAttributeNs ( string $localName , string $namespaceURI )
public bool moveToElement ( void )
public bool moveToFirstAttribute ( void )
public bool moveToNextAttribute ( void )
public bool next ([ string $localname ] )
public bool open ( string $URI [, string $encoding [, int $options = 0 ]] )
public bool read ( void )
public string readInnerXML ( void )
public string readOuterXML ( void )
public string readString ( void )
public bool setParserProperty ( int $property , bool $value )
public bool setRelaxNGSchema ( string $filename )
public bool setRelaxNGSchemaSource ( string $source )
public bool setSchema ( string $filename )
public bool xml ( string $source [, string $encoding [, int $options = 0 ]] )
}

Свойства

attributeCount

Количество атрибутов в узле

baseURI

Базовый URI узла

depth

Глубина узла в дереве, начиная с 0

hasAttributes

Показывает, есть ли у узла атрибуты

hasValue

Показывает, имеет ли узел текстовое значение

isDefault

Показывает, является ли атрибутом по умолчанию из DTD

isEmptyElement

Показывает, является ли узел пустым тегом

localName

Локальное имя узла

name

Полностью определенное имя узла

namespaceURI

URI пространства имён связанный с узлом

nodeType

Тип узла

prefix

Префикс пространства имён связанный с узлом

value

Текстовое значение узла

xmlLang

Контекст xml:lang, в котором находится узел

Предопределенные константы

Типы узлов XMLReader

XMLReader::NONE

Нет типа узла

XMLReader::ELEMENT

Начальный элемент

XMLReader::ATTRIBUTE

Узел атрибута

XMLReader::TEXT

Текстовый узел

XMLReader::CDATA

Узел CDATA

XMLReader::ENTITY_REF

Узел ссылки на сущность

XMLReader::ENTITY

Узел объявления объекта

XMLReader::PI

Узел инструкций обработки

XMLReader::COMMENT

Узел комментария

XMLReader::DOC

Узел документа

XMLReader::DOC_TYPE

Узел типа документа

XMLReader::DOC_FRAGMENT

Узел фрагмента документа

XMLReader::NOTATION

Узел нотации

XMLReader::WHITESPACE

Пробельный узел

XMLReader::SIGNIFICANT_WHITESPACE

Существенный пробельный узел

XMLReader::END_ELEMENT

Завершение элемента

XMLReader::END_ENTITY

Завершение объекта

XMLReader::XML_DECLARATION

Узел XML объявления

Опции анализатора XMLReader

XMLReader::LOADDTD

Загружать DTD, но не проверять

XMLReader::DEFAULTATTRS

Загружать DTD и атрибуты по умолчанию, но не проверять

XMLReader::VALIDATE

Загружать DTD и проверять при разборе

XMLReader::SUBST_ENTITIES

Заменять объекты и разворачивать ссылки

Содержание

  • XMLReader::close — Закрыть ввод XMLReader
  • XMLReader::expand — Возвратить копию текущего узла в виде объекта DOM
  • XMLReader::getAttribute — Получить значение атрибута с определённым именем
  • XMLReader::getAttributeNo — Получить значение атрибута по индексу
  • XMLReader::getAttributeNs — Получить значение атрибута по localname и URI
  • XMLReader::getParserProperty — Указывает, было ли определенное свойство установлено
  • XMLReader::isValid — Показать, является ли разбираемый документ синтаксически правильным
  • XMLReader::lookupNamespace — Найти пространство имён для префикса
  • XMLReader::moveToAttribute — Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNo — Переместить курсор на атрибут по индексу
  • XMLReader::moveToAttributeNs — Переместить курсор к именованному атрибуту
  • XMLReader::moveToElement — Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToFirstAttribute — Переместить позицию курсора на первый атрибут
  • XMLReader::moveToNextAttribute — Переместить позицию курсора на следующий атрибут
  • XMLReader::next — Переместить курсор на следующий узел, пропуская все поддеревья
  • XMLReader::open — Установить URI, содержащий XML-документ для разбора
  • XMLReader::read — Переместиться к следующему узлу в документе
  • XMLReader::readInnerXML — Извлечь XML из текущего узла
  • XMLReader::readOuterXML — Получить XML из текущего узла, включая сам узел
  • XMLReader::readString — Прочитать содержимое текущего узла как строку
  • XMLReader::setParserProperty — Устанавливает опцию парсера
  • XMLReader::setRelaxNGSchema — Установить имя файла или URI для схемы RelaxNG
  • XMLReader::setRelaxNGSchemaSource — Устанавливает данные, содержащие схему RelaxNG
  • XMLReader::setSchema — Проверить документ, используя XSD
  • XMLReader::XML — Установить данные, содержащие XML для разбора


Закрыть ввод XMLReader

  • « XMLReader
  • XMLReader::expand »
  • PHP Manual
  • XMLReader
  • Закрыть ввод XMLReader

XMLReader::close

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::close — Закрыть ввод XMLReader

Описание

public bool XMLReader::close ( void )

Закрывает ввод, который в настоящий момент анализирует объект XMLReader.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::open() - Установить URI, содержащий XML-документ для разбора
  • XMLReader::xml() - Установить данные, содержащие XML для разбора


Возвратить копию текущего узла в виде объекта DOM

  • « XMLReader::close
  • XMLReader::getAttribute »
  • PHP Manual
  • XMLReader
  • Возвратить копию текущего узла в виде объекта DOM

XMLReader::expand

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::expand — Возвратить копию текущего узла в виде объекта DOM

Описание

public DOMNode XMLReader::expand ([ DOMNode $basenode ] )

Этот метод копирует текущий узел и возвращает соответствующий объект DOM.

Список параметров

basenode

DOMNode определяет целевой DOMDocument созданного объекта DOM.

Возвращаемые значения

Результирующий DOMNode или FALSE в случае ошибки.

Список изменений

Версия | Описание
5.3.0 | Добавлен параметр basenode.


Получить значение атрибута с определённым именем

  • « XMLReader::expand
  • XMLReader::getAttributeNo »
  • PHP Manual
  • XMLReader
  • Получить значение атрибута с определённым именем

XMLReader::getAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getAttribute — Получить значение атрибута с определённым именем

Описание

public string XMLReader::getAttribute ( string $name )

Возвращает значение именованного атрибута или NULL, если атрибут не существует или не находится в узле элемента.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Значение атрибута или NULL, если атрибут с заданным параметром name не найден или нет позиции элемента.

Список изменений

Версия | Описание
5.1.3 | Возвращает NULL, если атрибут не найден. Ранее возвращалась пустая строка.

Смотрите также

  • XMLReader::getAttributeNo() - Получить значение атрибута по индексу
  • XMLReader::getAttributeNs() - Получить значение атрибута по localname и URI


Получить значение атрибута по индексу

  • « XMLReader::getAttribute
  • XMLReader::getAttributeNs »
  • PHP Manual
  • XMLReader
  • Получить значение атрибута по индексу

XMLReader::getAttributeNo

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getAttributeNo — Получить значение атрибута по индексу

Описание

public string XMLReader::getAttributeNo ( int $index )

Возвращает значение атрибута на основании позиции или пустую строку, если атрибут не существует или не расположен на узле элемента.

Список параметров

index

Позиция атрибута.

Возвращаемые значения

Значение атрибута или пустая строка (до PHP 5.6) или NULL (начиная с PHP 5.6) если атрибут с заданным параметром index не существует или нет позиции элемента.

Список изменений

Версия | Описание
5.6.0 | XMLReader::getAttributeNo() теперь возвращает NULL, если атрибут не существует.

Смотрите также

  • XMLReader::getAttribute() - Получить значение атрибута с определённым именем
  • XMLReader::getAttributeNs() - Получить значение атрибута по localname и URI


Получить значение атрибута по localname и URI

  • « XMLReader::getAttributeNo
  • XMLReader::getParserProperty »
  • PHP Manual
  • XMLReader
  • Получить значение атрибута по localname и URI

XMLReader::getAttributeNs

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getAttributeNs — Получить значение атрибута по localname и URI

Описание

public string XMLReader::getAttributeNs ( string $localName , string $namespaceURI )

Возвращает значение атрибута по имени и URI пространства имен или пустую строку, если атрибут не существует или не расположен на узле элемента.

Список параметров

localName

Локальное имя.

namespaceURI

URI пространства имён.

Возвращаемые значения

Значение атрибута или пустая строка (до PHP 5.6) или NULL (начиная с PHP 5.6) если атрибут с заданным localName и namespaceURI не найден или нет позиции элемента.

Список изменений

Версия | Описание
5.6.0 | XMLReader::getAttributeNS() теперь возвращает NULL, если атрибут не существует.

Смотрите также

  • XMLReader::getAttribute() - Получить значение атрибута с определённым именем
  • XMLReader::getAttributeNo() - Получить значение атрибута по индексу


Указывает, было ли определенное свойство установлено

  • « XMLReader::getAttributeNs
  • XMLReader::isValid »
  • PHP Manual
  • XMLReader
  • Указывает, было ли определенное свойство установлено

XMLReader::getParserProperty

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::getParserProperty — Указывает, было ли определенное свойство установлено

Описание

public bool XMLReader::getParserProperty ( int $property )

Указывает, было ли определенное свойство установлено.

Список параметров

property

Одна из констант анализатора.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::setParserProperty() - Устанавливает опцию парсера


Показать, является ли разбираемый документ синтаксически правильным

  • « XMLReader::getParserProperty
  • XMLReader::lookupNamespace »
  • PHP Manual
  • XMLReader
  • Показать, является ли разбираемый документ синтаксически правильным

XMLReader::isValid

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::isValid — Показать, является ли разбираемый документ синтаксически правильным

Описание

public bool XMLReader::isValid ( void )

Возвращает логическое значение (boolean), которое является признаком того, что разбираемый документ является синтаксически правильным.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Проверка правильности XML

<?php
$xml = XMLReader::open('test.xml');

// Для работы метода обязательно должна быть включена
// валидация парсера.
$xml->setParserProperty(XMLReader::VALIDATE, true);

var_dump($xml->isValid());
?>

Примечания

Замечание: Проверяется только текущая нода, а не весь документ.

Смотрите также

  • XMLReader::setParserProperty() - Устанавливает опцию парсера
  • XMLReader::setRelaxNGSchema() - Установить имя файла или URI для схемы RelaxNG
  • XMLReader::setRelaxNGSchemaSource() - Устанавливает данные, содержащие схему RelaxNG
  • XMLReader::setSchema() - Проверить документ, используя XSD


Найти пространство имён для префикса

  • « XMLReader::isValid
  • XMLReader::moveToAttribute »
  • PHP Manual
  • XMLReader
  • Найти пространство имён для префикса

XMLReader::lookupNamespace

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::lookupNamespace — Найти пространство имён для префикса

Описание

public string XMLReader::lookupNamespace ( string $prefix )

Поиск в контексте пространства имен для данного префикса.

Список параметров

prefix

Строка, содержащая префикс.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Переместить курсор к атрибуту с заданным именем

  • « XMLReader::lookupNamespace
  • XMLReader::moveToAttributeNo »
  • PHP Manual
  • XMLReader
  • Переместить курсор к атрибуту с заданным именем

XMLReader::moveToAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToAttribute — Переместить курсор к атрибуту с заданным именем

Описание

public bool XMLReader::moveToAttribute ( string $name )

Позиционирует курсор на атрибуте с заданным именем.

Список параметров

name

Имя атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
  • XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
  • XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут


Переместить курсор на атрибут по индексу

  • « XMLReader::moveToAttribute
  • XMLReader::moveToAttributeNs »
  • PHP Manual
  • XMLReader
  • Переместить курсор на атрибут по индексу

XMLReader::moveToAttributeNo

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToAttributeNo — Переместить курсор на атрибут по индексу

Описание

public bool XMLReader::moveToAttributeNo ( int $index )

Устанавливает курсор на атрибуте, основываясь на его позиции.

Список параметров

index

Позиция атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
  • XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут


Переместить курсор к именованному атрибуту

  • « XMLReader::moveToAttributeNo
  • XMLReader::moveToElement »
  • PHP Manual
  • XMLReader
  • Переместить курсор к именованному атрибуту

XMLReader::moveToAttributeNs

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToAttributeNs — Переместить курсор к именованному атрибуту

Описание

public bool XMLReader::moveToAttributeNs ( string $localName , string $namespaceURI )

Позиционирует курсор на именованном атрибуте в указанном пространстве имен.

Список параметров

localName

Локальное имя.

namespaceURI

URI пространства имён.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
  • XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут


Позиционировать курсор на родительском элементе текущего атрибута

  • « XMLReader::moveToAttributeNs
  • XMLReader::moveToFirstAttribute »
  • PHP Manual
  • XMLReader
  • Позиционировать курсор на родительском элементе текущего атрибута

XMLReader::moveToElement

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToElement — Позиционировать курсор на родительском элементе текущего атрибута

Описание

public bool XMLReader::moveToElement ( void )

Перемещает курсор на родительский элемент текущего атрибута.

Возвращаемые значения

Возвращает TRUE в случае успеха и FALSE в случае неудачи или если невозможно выполнить позиционирование курсора на атрибуте, когда этот метод вызывается.

Смотрите также

  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
  • XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
  • XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут


Переместить позицию курсора на первый атрибут

  • « XMLReader::moveToElement
  • XMLReader::moveToNextAttribute »
  • PHP Manual
  • XMLReader
  • Переместить позицию курсора на первый атрибут

XMLReader::moveToFirstAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToFirstAttribute — Переместить позицию курсора на первый атрибут

Описание

public bool XMLReader::moveToFirstAttribute ( void )

Перемещает позицию курсора на первый атрибут.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
  • XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
  • XMLReader::moveToNextAttribute() - Переместить позицию курсора на следующий атрибут


Переместить позицию курсора на следующий атрибут

  • « XMLReader::moveToFirstAttribute
  • XMLReader::next »
  • PHP Manual
  • XMLReader
  • Переместить позицию курсора на следующий атрибут

XMLReader::moveToNextAttribute

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::moveToNextAttribute — Переместить позицию курсора на следующий атрибут

Описание

public bool XMLReader::moveToNextAttribute ( void )

Перемещает курсора к следующему атрибуту, если курсор спозиционирован на атрибуте или перемещает позицию на первый атрибут, если спозиционирован на элементе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::moveToAttributeNo() - Переместить курсор на атрибут по индексу
  • XMLReader::moveToAttributeNs() - Переместить курсор к именованному атрибуту
  • XMLReader::moveToFirstAttribute() - Переместить позицию курсора на первый атрибут


Переместить курсор на следующий узел, пропуская все поддеревья

  • « XMLReader::moveToNextAttribute
  • XMLReader::open »
  • PHP Manual
  • XMLReader
  • Переместить курсор на следующий узел, пропуская все поддеревья

XMLReader::next

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::next — Переместить курсор на следующий узел, пропуская все поддеревья

Описание

public bool XMLReader::next ([ string $localname ] )

Позиционирует курсор на следующем узле, пропуская все поддеревья.

Список параметров

localname

Имя следующего узла для перехода.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToNextAttribute() - Переместить позицию курсора на следующий атрибут
  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем


Установить URI, содержащий XML-документ для разбора

  • « XMLReader::next
  • XMLReader::read »
  • PHP Manual
  • XMLReader
  • Установить URI, содержащий XML-документ для разбора

XMLReader::open

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::open — Установить URI, содержащий XML-документ для разбора

Описание

public bool XMLReader::open ( string $URI [, string $encoding [, int $options = 0 ]] )

Установить URI, содержащий XML-документ, который будет разобран.

Список параметров

URI

URI, указывающий на документ.

encoding

Кодировка документа или NULL.

options

Битовая маска, состоящая из LIBXML_* констант.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. при статическом вызове, возвращается XMLReader или FALSE в случае возникновения ошибки.

Ошибки

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Список изменений

Версия | Описание
5.2.0 | Были добавлены параметры encoding и options.

Смотрите также

  • XMLReader::xml() - Установить данные, содержащие XML для разбора
  • XMLReader::close() - Закрыть ввод XMLReader


Переместиться к следующему узлу в документе

  • « XMLReader::open
  • XMLReader::readInnerXML »
  • PHP Manual
  • XMLReader
  • Переместиться к следующему узлу в документе

XMLReader::read

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::read — Переместиться к следующему узлу в документе

Описание

public bool XMLReader::read ( void )

Перемещает курсор к следующему узлу в документе.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::moveToElement() - Позиционировать курсор на родительском элементе текущего атрибута
  • XMLReader::moveToAttribute() - Переместить курсор к атрибуту с заданным именем
  • XMLReader::next() - Переместить курсор на следующий узел, пропуская все поддеревья


Извлечь XML из текущего узла

  • « XMLReader::read
  • XMLReader::readOuterXML »
  • PHP Manual
  • XMLReader
  • Извлечь XML из текущего узла

XMLReader::readInnerXML

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::readInnerXML — Извлечь XML из текущего узла

Описание

public string XMLReader::readInnerXML ( void )

Читает содержимое текущего узла, включая дочерние узлы и разметку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое текущего узла в виде строки. Пустая строка возвращается в случае ошибки.

Примечания

Предостережение

Эта функция доступна только если PHP скомпилирован с поддержкой libxml 20620 или старше.

Смотрите также

  • XMLReader::readString() - Прочитать содержимое текущего узла как строку
  • XMLReader::readOuterXML() - Получить XML из текущего узла, включая сам узел
  • XMLReader::expand() - Возвратить копию текущего узла в виде объекта DOM


Получить XML из текущего узла, включая сам узел

  • « XMLReader::readInnerXML
  • XMLReader::readString »
  • PHP Manual
  • XMLReader
  • Получить XML из текущего узла, включая сам узел

XMLReader::readOuterXML

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::readOuterXML — Получить XML из текущего узла, включая сам узел

Описание

public string XMLReader::readOuterXML ( void )

Читает содержимое текущего узла, включая сам узел.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое текущего узла, включая сам узел как строку. В случае ошибки строка будет пустой.

Примечания

Предостережение

Эта функция доступна только если PHP скомпилирован с поддержкой libxml 20620 или старше.

Смотрите также

  • XMLReader::readString() - Прочитать содержимое текущего узла как строку
  • XMLReader::readInnerXML() - Извлечь XML из текущего узла
  • XMLReader::expand() - Возвратить копию текущего узла в виде объекта DOM


Прочитать содержимое текущего узла как строку

  • « XMLReader::readOuterXML
  • XMLReader::setParserProperty »
  • PHP Manual
  • XMLReader
  • Прочитать содержимое текущего узла как строку

XMLReader::readString

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::readString — Прочитать содержимое текущего узла как строку

Описание

public string XMLReader::readString ( void )

Читает содержимое текущего узла как строку.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает содержимое текущего узла в виде строки. В случае ошибки строка будет пустой.

Примечания

Предостережение

Эта функция доступна только если PHP скомпилирован с поддержкой libxml 20620 или старше.

Смотрите также

  • XMLReader::readOuterXML() - Получить XML из текущего узла, включая сам узел
  • XMLReader::readInnerXML() - Извлечь XML из текущего узла
  • XMLReader::expand() - Возвратить копию текущего узла в виде объекта DOM


Устанавливает опцию парсера

  • « XMLReader::readString
  • XMLReader::setRelaxNGSchema »
  • PHP Manual
  • XMLReader
  • Устанавливает опцию парсера

XMLReader::setParserProperty

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::setParserProperty — Устанавливает опцию парсера

Описание

public bool XMLReader::setParserProperty ( int $property , bool $value )

Устанавливает опции для парсера. Опции должны быть установлены после вызова 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.2.0, PHP 7)

XMLReader::setRelaxNGSchema — Установить имя файла или URI для схемы RelaxNG

Описание

public bool XMLReader::setRelaxNGSchema ( string $filename )

Устанавливает имя файла или URI для схемы RelaxNG, которые используются при проверке.

Список параметров

filename

Имя файла или URI, указывающий на схему RelaxNG.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::setRelaxNGSchemaSource() - Устанавливает данные, содержащие схему RelaxNG
  • XMLReader::setSchema() - Проверить документ, используя XSD
  • XMLReader::isValid() - Показать, является ли разбираемый документ синтаксически правильным


Устанавливает данные, содержащие схему RelaxNG

  • « XMLReader::setRelaxNGSchema
  • XMLReader::setSchema »
  • PHP Manual
  • XMLReader
  • Устанавливает данные, содержащие схему RelaxNG

XMLReader::setRelaxNGSchemaSource

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::setRelaxNGSchemaSource — Устанавливает данные, содержащие схему RelaxNG

Описание

public bool XMLReader::setRelaxNGSchemaSource ( string $source )

Устанавливает данные, содержащие схему RelaxNG, используемую при проверке.

Список параметров

source

Строка, содержащая схему RelaxNG.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLReader::setRelaxNGSchema() - Установить имя файла или URI для схемы RelaxNG
  • XMLReader::setSchema() - Проверить документ, используя XSD
  • XMLReader::isValid() - Показать, является ли разбираемый документ синтаксически правильным


Проверить документ, используя XSD

  • « XMLReader::setRelaxNGSchemaSource
  • XMLReader::XML »
  • PHP Manual
  • XMLReader
  • Проверить документ, используя XSD

XMLReader::setSchema

(PHP 5 >= 5.2.0, PHP 7)

XMLReader::setSchema — Проверить документ, используя XSD

Описание

public bool XMLReader::setSchema ( string $filename )

Использует схему W3C XSD для проверки документов в процессе работы. Активация возможна только до первого вызова Read().

Список параметров

filename

Имя файла XSD схемы.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Ошибки

Предупреждение E_WARNING возникает, если libxml был собран без поддержки схем, схема содержит ошибки или если функция XMLReader::read() уже была вызвана.

Примечания

Предостережение

Эта функция доступна только если PHP скомпилирован с поддержкой libxml 20620 или старше.

Смотрите также

  • XMLReader::setRelaxNGSchema() - Установить имя файла или URI для схемы RelaxNG
  • XMLReader::setRelaxNGSchemaSource() - Устанавливает данные, содержащие схему RelaxNG
  • XMLReader::isValid() - Показать, является ли разбираемый документ синтаксически правильным


Установить данные, содержащие XML для разбора

  • « XMLReader::setSchema
  • XMLWriter »
  • PHP Manual
  • XMLReader
  • Установить данные, содержащие XML для разбора

XMLReader::XML

(PHP 5 >= 5.1.0, PHP 7)

XMLReader::XML — Установить данные, содержащие XML для разбора

Описание

public bool XMLReader::xml ( string $source [, string $encoding [, int $options = 0 ]] )

Устанавливает данные, содержащие XML для разбора.

Список параметров

source

Строка, содержащая XML для разбора.

encoding

Кодировка документа или NULL.

options

Битовая маска констант LIBXML_*.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. в случае статического вызова либо возвращается XMLReader или FALSE в случае возникновения ошибки.

Ошибки

Этот метод может быть вызван статически, но при этом будет сгенерирована ошибка уровня E_STRICT.

Список изменений

Версия | Описание
5.2.0 | Были добавлены параметры encoding и options.

Смотрите также

  • XMLReader::open() - Установить URI, содержащий XML-документ для разбора
  • XMLReader::close() - Закрыть ввод XMLReader


XMLWriter

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • XMLWriter
    • XMLWriter::endAttribute — Завершить атрибут
    • XMLWriter::endCData — Завершить текущую секцию CDATA
    • XMLWriter::endComment — Завершить комментарий
    • XMLWriter::endDocument — Завершить текущий документ
    • XMLWriter::endDTDAttlist — Завершить текущий DTD
    • XMLWriter::endDTDElement — Завершить текущий элемент DTD
    • XMLWriter::endDTDEntity — Завершить текущую запись DTD
    • XMLWriter::endDTD — Завершить текущий DTD
    • XMLWriter::endElement — Завершить текущий элемент
    • XMLWriter::endPI — Завершить текущую инструкцию обработки (PI)
    • XMLWriter::flush — Сбросить текущий буфер
    • XMLWriter::fullEndElement — Завершить текущий элемент
    • XMLWriter::openMemory — Создать новый объект XMLWriter, используя память для строкового вывода
    • XMLWriter::openURI — Создать новый объект XMLWriter, используя исходный URI для вывода
    • XMLWriter::outputMemory — Возвратить текущий буфер
    • XMLWriter::setIndentString — Установить строку, используемую для отступов
    • XMLWriter::setIndent — Включить или отключить отступы
    • XMLWriter::startAttributeNS — Создать стартовый атрибут пространства имен
    • XMLWriter::startAttribute — Создать начальный атрибут
    • XMLWriter::startCData — Создать начальный тэг CDATA
    • XMLWriter::startComment — Создает стартовый комментарий
    • XMLWriter::startDocument — Создать тэг документа
    • XMLWriter::startDTDAttlist — Создает стартовый список атрибутов DTD
    • XMLWriter::startDTDElement — Создать начальный элемент DTD
    • XMLWriter::startDTDEntity — Создать начальную запись DTD
    • XMLWriter::startDTD — Создать стартовый DTD тэг
    • XMLWriter::startElementNS — Создать начальный тег элемента пространства имен
    • XMLWriter::startElement — Создать стартовый тэг элемента
    • XMLWriter::startPI — Создать начальный тэг PI
    • XMLWriter::text — Записать текст
    • XMLWriter::writeAttributeNS — Записать полный атрибут пространства имен
    • XMLWriter::writeAttribute — Записать полный атрибут
    • XMLWriter::writeCData — Записать полный тэг CDATA
    • XMLWriter::writeComment — Записать полный тэг комментария
    • XMLWriter::writeDTDAttlist — Записать полный тэг DTD AttList
    • XMLWriter::writeDTDElement — Записать полный тэг элемента DTD
    • XMLWriter::writeDTDEntity — Записать полный тэг DTD записи
    • XMLWriter::writeDTD — Записать полный тэг DTD
    • XMLWriter::writeElementNS — Записать полное пространство имен тега элемента
    • XMLWriter::writeElement — Записать полный тег элемента
    • XMLWriter::writePI — Записать инструкцию обработки (PI)
    • XMLWriter::writeRaw — Пишет необработанный XML-текст


Введение

XMLWriter является расширением PHP. Оно создает XmlWriter API на основе библиотеки libxml.

Это расширение представляет собой класс-писатель, который является некэшируемым, однонаправленным средством генерирования потоков или файлов, содержащих данные XML.

Это расширение может быть использовано в объектно-ориентированном либо в процедурном стилях. Каждый документированный метод описывает альтернативные процедурные вызовы.


Установка

Расширение XMLWriter изначально поставлялось как PECL расширения PHP 5. Позже оно было добавлено в сборку PHP 5.1.2. Данное расширение включено по умолчанию.

Это расширение включено по умолчанию. Оно может быть отключено во время выполнения с помощью следующей опции: --disable-xmlwriter


Типы ресурсов

Существует один resource, используемый процедурной версией расширения XMLWriter: его возвращает xmlwriter_open_memory() или xmlwriter_open_uri().


  • « Типы ресурсов
  • XMLWriter »
  • PHP Manual
  • XMLWriter
  • Предопределенные константы

Предопределенные константы

Данное расширение не определяет никакие константы.


XMLWriter

Содержание

  • XMLWriter::endAttribute — Завершить атрибут
  • XMLWriter::endCData — Завершить текущую секцию CDATA
  • XMLWriter::endComment — Завершить комментарий
  • XMLWriter::endDocument — Завершить текущий документ
  • XMLWriter::endDTDAttlist — Завершить текущий DTD
  • XMLWriter::endDTDElement — Завершить текущий элемент DTD
  • XMLWriter::endDTDEntity — Завершить текущую запись DTD
  • XMLWriter::endDTD — Завершить текущий DTD
  • XMLWriter::endElement — Завершить текущий элемент
  • XMLWriter::endPI — Завершить текущую инструкцию обработки (PI)
  • XMLWriter::flush — Сбросить текущий буфер
  • XMLWriter::fullEndElement — Завершить текущий элемент
  • XMLWriter::openMemory — Создать новый объект XMLWriter, используя память для строкового вывода
  • XMLWriter::openURI — Создать новый объект XMLWriter, используя исходный URI для вывода
  • XMLWriter::outputMemory — Возвратить текущий буфер
  • XMLWriter::setIndentString — Установить строку, используемую для отступов
  • XMLWriter::setIndent — Включить или отключить отступы
  • XMLWriter::startAttributeNS — Создать стартовый атрибут пространства имен
  • XMLWriter::startAttribute — Создать начальный атрибут
  • XMLWriter::startCData — Создать начальный тэг CDATA
  • XMLWriter::startComment — Создает стартовый комментарий
  • XMLWriter::startDocument — Создать тэг документа
  • XMLWriter::startDTDAttlist — Создает стартовый список атрибутов DTD
  • XMLWriter::startDTDElement — Создать начальный элемент DTD
  • XMLWriter::startDTDEntity — Создать начальную запись DTD
  • XMLWriter::startDTD — Создать стартовый DTD тэг
  • XMLWriter::startElementNS — Создать начальный тег элемента пространства имен
  • XMLWriter::startElement — Создать стартовый тэг элемента
  • XMLWriter::startPI — Создать начальный тэг PI
  • XMLWriter::text — Записать текст
  • XMLWriter::writeAttributeNS — Записать полный атрибут пространства имен
  • XMLWriter::writeAttribute — Записать полный атрибут
  • XMLWriter::writeCData — Записать полный тэг CDATA
  • XMLWriter::writeComment — Записать полный тэг комментария
  • XMLWriter::writeDTDAttlist — Записать полный тэг DTD AttList
  • XMLWriter::writeDTDElement — Записать полный тэг элемента DTD
  • XMLWriter::writeDTDEntity — Записать полный тэг DTD записи
  • XMLWriter::writeDTD — Записать полный тэг DTD
  • XMLWriter::writeElementNS — Записать полное пространство имен тега элемента
  • XMLWriter::writeElement — Записать полный тег элемента
  • XMLWriter::writePI — Записать инструкцию обработки (PI)
  • XMLWriter::writeRaw — Пишет необработанный XML-текст


Завершить атрибут

  • « XMLWriter
  • XMLWriter::endCData »
  • PHP Manual
  • XMLWriter
  • Завершить атрибут

XMLWriter::endAttribute

xmlwriter_end_attribute

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endAttribute -- xmlwriter_end_attribute — Завершить атрибут

Описание

Объектно-ориентированный стиль

bool XMLWriter::endAttribute ( void )

Процедурный стиль

bool xmlwriter_end_attribute ( resource $xmlwriter )

Завершает текущий атрибут.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startAttribute() - Создать начальный атрибут
  • XMLWriter::startAttributeNS() - Создать стартовый атрибут пространства имен
  • XMLWriter::writeAttribute() - Записать полный атрибут
  • XMLWriter::writeAttributeNS() - Записать полный атрибут пространства имен


Завершить текущую секцию CDATA

  • « XMLWriter::endAttribute
  • XMLWriter::endComment »
  • PHP Manual
  • XMLWriter
  • Завершить текущую секцию CDATA

XMLWriter::endCData

xmlwriter_end_cdata

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endCData -- xmlwriter_end_cdata — Завершить текущую секцию CDATA

Описание

Объектно-ориентированный стиль

bool XMLWriter::endCData ( void )

Процедурный стиль

bool xmlwriter_end_cdata ( resource $xmlwriter )

Завершает текущую секцию CDATA.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startCData() - Создать начальный тэг CDATA
  • XMLWriter::writeCData() - Записать полный тэг CDATA


Завершить комментарий

  • « XMLWriter::endCData
  • XMLWriter::endDocument »
  • PHP Manual
  • XMLWriter
  • Завершить комментарий

XMLWriter::endComment

xmlwriter_end_comment

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 1.0.0)

XMLWriter::endComment -- xmlwriter_end_comment — Завершить комментарий

Описание

Объектно-ориентированный стиль

bool XMLWriter::endComment ( void )

Процедурный стиль

bool xmlwriter_end_comment ( resource $xmlwriter )

Завершает текущий комментарий.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startComment() - Создает стартовый комментарий
  • XMLWriter::writeComment() - Записать полный тэг комментария


Завершить текущий документ

  • « XMLWriter::endComment
  • XMLWriter::endDTDAttlist »
  • PHP Manual
  • XMLWriter
  • Завершить текущий документ

XMLWriter::endDocument

xmlwriter_end_document

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDocument -- xmlwriter_end_document — Завершить текущий документ

Описание

Объектно-ориентированный стиль

bool XMLWriter::endDocument ( void )

Процедурный стиль

bool xmlwriter_end_document ( resource $xmlwriter )

Завершает текущий документ.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDocument() - Создать тэг документа


Завершить текущий DTD

  • « XMLWriter::endDocument
  • XMLWriter::endDTDElement »
  • PHP Manual
  • XMLWriter
  • Завершить текущий DTD

XMLWriter::endDTDAttlist

xmlwriter_end_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDAttlist -- xmlwriter_end_dtd_attlist — Завершить текущий DTD

Описание

Объектно-ориентированный стиль

bool XMLWriter::endDTDAttlist ( void )

Процедурный стиль

bool xmlwriter_end_dtd_attlist ( resource $xmlwriter )

Завершает текущий список атрибутов DTD для документа.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDTDAttlist() - Создает стартовый список атрибутов DTD
  • XMLWriter::writeDTDAttlist() - Записать полный тэг DTD AttList


Завершить текущий элемент DTD

  • « XMLWriter::endDTDAttlist
  • XMLWriter::endDTDEntity »
  • PHP Manual
  • XMLWriter
  • Завершить текущий элемент DTD

XMLWriter::endDTDElement

xmlwriter_end_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDElement -- xmlwriter_end_dtd_element — Завершить текущий элемент DTD

Описание

Объектно-ориентированный стиль

bool XMLWriter::endDTDElement ( void )

Процедурный стиль

bool xmlwriter_end_dtd_element ( resource $xmlwriter )

Завершает текущий элемент DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDTDElement() - Создать начальный элемент DTD
  • XMLWriter::writeDTDElement() - Записать полный тэг элемента DTD


Завершить текущую запись DTD

  • « XMLWriter::endDTDElement
  • XMLWriter::endDTD »
  • PHP Manual
  • XMLWriter
  • Завершить текущую запись DTD

XMLWriter::endDTDEntity

xmlwriter_end_dtd_entity

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTDEntity -- xmlwriter_end_dtd_entity — Завершить текущую запись DTD

Описание

Объектно-ориентированный стиль

bool XMLWriter::endDTDEntity ( void )

Процедурный стиль

bool xmlwriter_end_dtd_entity ( resource $xmlwriter )

Завершает текущую запись DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDTDEntity() - Создать начальную запись DTD
  • XMLWriter::writeDTDEntity() - Записать полный тэг DTD записи


Завершить текущий DTD

  • « XMLWriter::endDTDEntity
  • XMLWriter::endElement »
  • PHP Manual
  • XMLWriter
  • Завершить текущий DTD

XMLWriter::endDTD

xmlwriter_end_dtd

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endDTD -- xmlwriter_end_dtd — Завершить текущий DTD

Описание

Объектно-ориентированный стиль

bool XMLWriter::endDTD ( void )

Процедурный стиль

bool xmlwriter_end_dtd ( resource $xmlwriter )

Завершает секцию определения типа документа (DTD).

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDTD() - Создать стартовый DTD тэг
  • XMLWriter::writeDTD() - Записать полный тэг DTD


Завершить текущий элемент

  • « XMLWriter::endDTD
  • XMLWriter::endPI »
  • PHP Manual
  • XMLWriter
  • Завершить текущий элемент

XMLWriter::endElement

xmlwriter_end_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endElement -- xmlwriter_end_element — Завершить текущий элемент

Описание

Объектно-ориентированный стиль

bool XMLWriter::endElement ( void )

Процедурный стиль

bool xmlwriter_end_element ( resource $xmlwriter )

Завершает текущий элемент.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startElement() - Создать стартовый тэг элемента
  • XMLWriter::writeElement() - Записать полный тег элемента


Завершить текущую инструкцию обработки (PI)

  • « XMLWriter::endElement
  • XMLWriter::flush »
  • PHP Manual
  • XMLWriter
  • Завершить текущую инструкцию обработки (PI)

XMLWriter::endPI

xmlwriter_end_pi

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::endPI -- xmlwriter_end_pi — Завершить текущую инструкцию обработки (PI)

Описание

Объектно-ориентированный стиль

bool XMLWriter::endPI ( void )

Процедурный стиль

bool xmlwriter_end_pi ( resource $xmlwriter )

Завершает текущую инструкцию обработки.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startPI() - Создать начальный тэг PI
  • XMLWriter::writePI() - Записать инструкцию обработки (PI)


Сбросить текущий буфер

  • « XMLWriter::endPI
  • XMLWriter::fullEndElement »
  • PHP Manual
  • XMLWriter
  • Сбросить текущий буфер

XMLWriter::flush

xmlwriter_flush

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 1.0.0)

XMLWriter::flush -- xmlwriter_flush — Сбросить текущий буфер

Описание

Объектно-ориентированный стиль

mixed XMLWriter::flush ([ bool $empty = true ] )

Процедурный стиль

mixed xmlwriter_flush ( resource $xmlwriter [, bool $empty = true ] )

Сбрасывает текущий буфер.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

empty

Освободить ли буфер или нет. По умолчанию TRUE.

Возвращаемые значения

Если XML создается в памяти, то эта функция вернет сгенерированный буфер XML, иначе при использовании URI эта функция запишет буфер и возвратит количество записанных байт.


Завершить текущий элемент

  • « XMLWriter::flush
  • XMLWriter::openMemory »
  • PHP Manual
  • XMLWriter
  • Завершить текущий элемент

XMLWriter::fullEndElement

xmlwriter_full_end_element

(PHP 5 >= 5.2.0, PHP 7, PECL xmlwriter >= 2.0.4)

XMLWriter::fullEndElement -- xmlwriter_full_end_element — Завершить текущий элемент

Описание

Объектно-ориентированный стиль

bool XMLWriter::fullEndElement ( void )

Процедурный стиль

bool xmlwriter_full_end_element ( resource $xmlwriter )

Завершает текущий XML элемент. Записывает закрывающий тег, даже если элемент пустой.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endElement() - Завершить текущий элемент


Создать новый объект XMLWriter, используя память для строкового вывода

  • « XMLWriter::fullEndElement
  • XMLWriter::openURI »
  • PHP Manual
  • XMLWriter
  • Создать новый объект XMLWriter, используя память для строкового вывода

XMLWriter::openMemory

xmlwriter_open_memory

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::openMemory -- xmlwriter_open_memory — Создать новый объект XMLWriter, используя память для строкового вывода

Описание

Объектно-ориентированный стиль

bool XMLWriter::openMemory ( void )

Процедурный стиль

resource xmlwriter_open_memory ( void )

Создает новый объект XMLWriter, используя память для строкового вывода.

Список параметров

Возвращаемые значения

Объектно-ориентированный стиль: Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Процедурный стиль: возвращает новый xmlwriter resource для дальнейшего использования функциями xmlwriter в случае успеха либо FALSE в случае ошибки.

Смотрите также

  • XMLWriter::openURI() - Создать новый объект XMLWriter, используя исходный URI для вывода


Создать новый объект XMLWriter, используя исходный URI для вывода

  • « XMLWriter::openMemory
  • XMLWriter::outputMemory »
  • PHP Manual
  • XMLWriter
  • Создать новый объект XMLWriter, используя исходный URI для вывода

XMLWriter::openURI

xmlwriter_open_uri

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::openURI -- xmlwriter_open_uri — Создать новый объект XMLWriter, используя исходный URI для вывода

Описание

Объектно-ориентированный стиль

bool XMLWriter::openURI ( string $uri )

Процедурный стиль

resource xmlwriter_open_uri ( string $uri )

Создаёт новый объект XMLWriter, используя uri для вывода.

Список параметров

uri

URI ресурса для вывода.

Возвращаемые значения

Объектно-ориентированный стиль: Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Процедурный стиль: возвращает новый объект XmlWriter resource для дальнейшего использования функциями xmlwriter в случае успеха или FALSE в случае ошибки.

Смотрите также

  • XMLWriter::openMemory() - Создать новый объект XMLWriter, используя память для строкового вывода


Возвратить текущий буфер

  • « XMLWriter::openURI
  • XMLWriter::setIndentString »
  • PHP Manual
  • XMLWriter
  • Возвратить текущий буфер

XMLWriter::outputMemory

xmlwriter_output_memory

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::outputMemory -- xmlwriter_output_memory — Возвратить текущий буфер

Описание

Объектно-ориентированный стиль

string XMLWriter::outputMemory ([ bool $flush = true ] )

Процедурный стиль

string xmlwriter_output_memory ( resource $xmlwriter [, bool $flush = true ] )

Возвращает текущий буфер.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

flush

Освободить буфер или нет. По умолчанию TRUE.

Возвращаемые значения

Возвращает текущий буфер в виде строки.

Смотрите также

  • XMLWriter::flush() - Сбросить текущий буфер


Установить строку, используемую для отступов

  • « XMLWriter::outputMemory
  • XMLWriter::setIndent »
  • PHP Manual
  • XMLWriter
  • Установить строку, используемую для отступов

XMLWriter::setIndentString

xmlwriter_set_indent_string

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndentString -- xmlwriter_set_indent_string — Установить строку, используемую для отступов

Описание

Объектно-ориентированный стиль

bool XMLWriter::setIndentString ( string $indentString )

Процедурный стиль

bool xmlwriter_set_indent_string ( resource $xmlwriter , string $indentString )

Устанавливает строку, которая будет использоваться для отступа каждого элемента/атрибута в результирующем XML.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

indentString

Отступ строки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::setIndent() - Включить или отключить отступы


Включить или отключить отступы

  • « XMLWriter::setIndentString
  • XMLWriter::startAttributeNS »
  • PHP Manual
  • XMLWriter
  • Включить или отключить отступы

XMLWriter::setIndent

xmlwriter_set_indent

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndent -- xmlwriter_set_indent — Включить или отключить отступы

Описание

Объектно-ориентированный стиль

bool XMLWriter::setIndent ( bool $indent )

Процедурный стиль

bool xmlwriter_set_indent ( resource $xmlwriter , bool $indent )

Включает или отключает отступы.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

indent

Включено ли добавление отступа.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::setIndentString() - Установить строку, используемую для отступов


Создать стартовый атрибут пространства имен

  • « XMLWriter::setIndent
  • XMLWriter::startAttribute »
  • PHP Manual
  • XMLWriter
  • Создать стартовый атрибут пространства имен

XMLWriter::startAttributeNS

xmlwriter_start_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttributeNS -- xmlwriter_start_attribute_ns — Создать стартовый атрибут пространства имен

Описание

Объектно-ориентированный стиль

bool XMLWriter::startAttributeNS ( string $prefix , string $name , string $uri )

Процедурный стиль

bool xmlwriter_start_attribute_ns ( resource $xmlwriter , string $prefix , string $name , string $uri )

Начинает атрибут пространства имен.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имен.

name

Имя атрибута.

uri

URI пространства имен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startAttribute() - Создать начальный атрибут
  • XMLWriter::endAttribute() - Завершить атрибут
  • XMLWriter::writeAttribute() - Записать полный атрибут
  • XMLWriter::writeAttributeNS() - Записать полный атрибут пространства имен


Создать начальный атрибут

  • « XMLWriter::startAttributeNS
  • XMLWriter::startCData »
  • PHP Manual
  • XMLWriter
  • Создать начальный атрибут

XMLWriter::startAttribute

xmlwriter_start_attribute

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startAttribute -- xmlwriter_start_attribute — Создать начальный атрибут

Описание

Объектно-ориентированный стиль

bool XMLWriter::startAttribute ( string $name )

Процедурный стиль

bool xmlwriter_start_attribute ( resource $xmlwriter , string $name )

Начинает атрибут.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startAttributeNS() - Создать стартовый атрибут пространства имен
  • XMLWriter::endAttribute() - Завершить атрибут
  • XMLWriter::writeAttribute() - Записать полный атрибут
  • XMLWriter::writeAttributeNS() - Записать полный атрибут пространства имен


Создать начальный тэг CDATA

  • « XMLWriter::startAttribute
  • XMLWriter::startComment »
  • PHP Manual
  • XMLWriter
  • Создать начальный тэг CDATA

XMLWriter::startCData

xmlwriter_start_cdata

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startCData -- xmlwriter_start_cdata — Создать начальный тэг CDATA

Описание

Объектно-ориентированный стиль

bool XMLWriter::startCData ( void )

Процедурный стиль

bool xmlwriter_start_cdata ( resource $xmlwriter )

Начинает CDATA.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endCData() - Завершить текущую секцию CDATA
  • XMLWriter::writeCData() - Записать полный тэг CDATA


Создает стартовый комментарий

  • « XMLWriter::startCData
  • XMLWriter::startDocument »
  • PHP Manual
  • XMLWriter
  • Создает стартовый комментарий

XMLWriter::startComment

xmlwriter_start_comment

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 1.0.0)

XMLWriter::startComment -- xmlwriter_start_comment — Создает стартовый комментарий

Описание

Объектно-ориентированный стиль

bool XMLWriter::startComment ( void )

Процедурный стиль

bool xmlwriter_start_comment ( resource $xmlwriter )

Начинает комментарий.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endComment() - Завершить комментарий
  • XMLWriter::writeComment() - Записать полный тэг комментария


Создать тэг документа

  • « XMLWriter::startComment
  • XMLWriter::startDTDAttlist »
  • PHP Manual
  • XMLWriter
  • Создать тэг документа

XMLWriter::startDocument

xmlwriter_start_document

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDocument -- xmlwriter_start_document — Создать тэг документа

Описание

Объектно-ориентированный стиль

bool XMLWriter::startDocument ([ string $version = 1.0 [, string $encoding = NULL [, string $standalone ]]] )

Процедурный стиль

bool xmlwriter_start_document ( resource $xmlwriter [, string $version = 1.0 [, string $encoding = NULL [, string $standalone ]]] )

Начинает документ.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

version

Номер версии документа как часть объявления XML.

encoding

Кодировка документа как часть объявления XML.

standalone

yes или no.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endDocument() - Завершить текущий документ


Создает стартовый список атрибутов DTD

  • « XMLWriter::startDocument
  • XMLWriter::startDTDElement »
  • PHP Manual
  • XMLWriter
  • Создает стартовый список атрибутов DTD

XMLWriter::startDTDAttlist

xmlwriter_start_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDAttlist -- xmlwriter_start_dtd_attlist — Создает стартовый список атрибутов DTD

Описание

Объектно-ориентированный стиль

bool XMLWriter::startDTDAttlist ( string $name )

Процедурный стиль

bool xmlwriter_start_dtd_attlist ( resource $xmlwriter , string $name )

Стартовый список атрибутов DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Название списка атрибутов.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endDTDAttlist() - Завершить текущий DTD
  • XMLWriter::writeDTDAttlist() - Записать полный тэг DTD AttList


Создать начальный элемент DTD

  • « XMLWriter::startDTDAttlist
  • XMLWriter::startDTDEntity »
  • PHP Manual
  • XMLWriter
  • Создать начальный элемент DTD

XMLWriter::startDTDElement

xmlwriter_start_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDElement -- xmlwriter_start_dtd_element — Создать начальный элемент DTD

Описание

Объектно-ориентированный стиль

bool XMLWriter::startDTDElement ( string $qualifiedName )

Процедурный стиль

bool xmlwriter_start_dtd_element ( resource $xmlwriter , string $qualifiedName )

Начинает элемент DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

qualifiedName

Полностью определенное имя типа документа для создания.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endDTDElement() - Завершить текущий элемент DTD
  • XMLWriter::writeDTDElement() - Записать полный тэг элемента DTD


Создать начальную запись DTD

  • « XMLWriter::startDTDElement
  • XMLWriter::startDTD »
  • PHP Manual
  • XMLWriter
  • Создать начальную запись DTD

XMLWriter::startDTDEntity

xmlwriter_start_dtd_entity

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTDEntity -- xmlwriter_start_dtd_entity — Создать начальную запись DTD

Описание

Объектно-ориентированный стиль

bool XMLWriter::startDTDEntity ( string $name , bool $isparam )

Процедурный стиль

bool xmlwriter_start_dtd_entity ( resource $xmlwriter , string $name , bool $isparam )

Начинает запись DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя записи.

isparam

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endDTDEntity() - Завершить текущую запись DTD
  • XMLWriter::writeDTDEntity() - Записать полный тэг DTD записи


Создать стартовый DTD тэг

  • « XMLWriter::startDTDEntity
  • XMLWriter::startElementNS »
  • PHP Manual
  • XMLWriter
  • Создать стартовый DTD тэг

XMLWriter::startDTD

xmlwriter_start_dtd

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startDTD -- xmlwriter_start_dtd — Создать стартовый DTD тэг

Описание

Объектно-ориентированный стиль

bool XMLWriter::startDTD ( string $qualifiedName [, string $publicId [, string $systemId ]] )

Процедурный стиль

bool xmlwriter_start_dtd ( resource $xmlwriter , string $qualifiedName [, string $publicId [, string $systemId ]] )

Начинает DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

qualifiedName

Полностью определенное имя типа документа для создания.

publicId

Идентификатор внешнего публичного подмножества.

systemId

Идентификатор внешнего системного подмножества.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endDTD() - Завершить текущий DTD
  • XMLWriter::writeDTD() - Записать полный тэг DTD


Создать начальный тег элемента пространства имен

  • « XMLWriter::startDTD
  • XMLWriter::startElement »
  • PHP Manual
  • XMLWriter
  • Создать начальный тег элемента пространства имен

XMLWriter::startElementNS

xmlwriter_start_element_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startElementNS -- xmlwriter_start_element_ns — Создать начальный тег элемента пространства имен

Описание

Объектно-ориентированный стиль

bool XMLWriter::startElementNS ( string $prefix , string $name , string $uri )

Процедурный стиль

bool xmlwriter_start_element_ns ( resource $xmlwriter , string $prefix , string $name , string $uri )

Начинает элемент пространства имен.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имен.

name

Имя элемента.

uri

URI пространства имен.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElementNS() - Записать полное пространство имен тега элемента


Создать стартовый тэг элемента

  • « XMLWriter::startElementNS
  • XMLWriter::startPI »
  • PHP Manual
  • XMLWriter
  • Создать стартовый тэг элемента

XMLWriter::startElement

xmlwriter_start_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startElement -- xmlwriter_start_element — Создать стартовый тэг элемента

Описание

Объектно-ориентированный стиль

bool XMLWriter::startElement ( string $name )

Процедурный стиль

bool xmlwriter_start_element ( resource $xmlwriter , string $name )

Начинает элемент.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя элемента.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElement() - Записать полный тег элемента


Создать начальный тэг PI

  • « XMLWriter::startElement
  • XMLWriter::text »
  • PHP Manual
  • XMLWriter
  • Создать начальный тэг PI

XMLWriter::startPI

xmlwriter_start_pi

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::startPI -- xmlwriter_start_pi — Создать начальный тэг PI

Описание

Объектно-ориентированный стиль

bool XMLWriter::startPI ( string $target )

Процедурный стиль

bool xmlwriter_start_pi ( resource $xmlwriter , string $target )

Начинает тег инструкций обработки (PI).

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

target

Цель инструкций обработки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::endPI() - Завершить текущую инструкцию обработки (PI)
  • XMLWriter::writePI() - Записать инструкцию обработки (PI)


Записать текст

  • « XMLWriter::startPI
  • XMLWriter::writeAttributeNS »
  • PHP Manual
  • XMLWriter
  • Записать текст

XMLWriter::text

xmlwriter_text

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::text -- xmlwriter_text — Записать текст

Описание

Объектно-ориентированный стиль

bool XMLWriter::text ( string $content )

Процедурный стиль

bool xmlwriter_text ( resource $xmlwriter , string $content )

Записывает текст.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

content

Содержимое текста.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.


Записать полный атрибут пространства имен

  • « XMLWriter::text
  • XMLWriter::writeAttribute »
  • PHP Manual
  • XMLWriter
  • Записать полный атрибут пространства имен

XMLWriter::writeAttributeNS

xmlwriter_write_attribute_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttributeNS -- xmlwriter_write_attribute_ns — Записать полный атрибут пространства имен

Описание

Объектно-ориентированный стиль

bool XMLWriter::writeAttributeNS ( string $prefix , string $name , string $uri , string $content )

Процедурный стиль

bool xmlwriter_write_attribute_ns ( resource $xmlwriter , string $prefix , string $name , string $uri , string $content )

Записывает полный атрибут пространства имен.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имен.

name

Имя атрибута.

uri

URI пространства имен.

content

Значение атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::writeAttribute() - Записать полный атрибут
  • XMLWriter::startAttribute() - Создать начальный атрибут
  • XMLWriter::startAttributeNS() - Создать стартовый атрибут пространства имен
  • XMLWriter::endAttribute() - Завершить атрибут


Записать полный атрибут

  • « XMLWriter::writeAttributeNS
  • XMLWriter::writeCData »
  • PHP Manual
  • XMLWriter
  • Записать полный атрибут

XMLWriter::writeAttribute

xmlwriter_write_attribute

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeAttribute -- xmlwriter_write_attribute — Записать полный атрибут

Описание

Объектно-ориентированный стиль

bool XMLWriter::writeAttribute ( string $name , string $value )

Процедурный стиль

bool xmlwriter_write_attribute ( resource $xmlwriter , string $name , string $value )

Записывает полный атрибут.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя атрибута.

value

Значение атрибута.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::writeAttributeNS() - Записать полный атрибут пространства имен
  • XMLWriter::startAttribute() - Создать начальный атрибут
  • XMLWriter::startAttributeNS() - Создать стартовый атрибут пространства имен
  • XMLWriter::endAttribute() - Завершить атрибут


Записать полный тэг CDATA

  • « XMLWriter::writeAttribute
  • XMLWriter::writeComment »
  • PHP Manual
  • XMLWriter
  • Записать полный тэг CDATA

XMLWriter::writeCData

xmlwriter_write_cdata

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeCData -- xmlwriter_write_cdata — Записать полный тэг CDATA

Описание

Объектно-ориентированный стиль

bool XMLWriter::writeCData ( string $content )

Процедурный стиль

bool xmlwriter_write_cdata ( resource $xmlwriter , string $content )

Записывает полный тэг CDATA.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

content

Содержимое CDATA.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startCData() - Создать начальный тэг CDATA
  • XMLWriter::endCData() - Завершить текущую секцию CDATA


Записать полный тэг комментария

  • « XMLWriter::writeCData
  • XMLWriter::writeDTDAttlist »
  • PHP Manual
  • XMLWriter
  • Записать полный тэг комментария

XMLWriter::writeComment

xmlwriter_write_comment

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeComment -- xmlwriter_write_comment — Записать полный тэг комментария

Описание

Объектно-ориентированный стиль

bool XMLWriter::writeComment ( string $content )

Процедурный стиль

bool xmlwriter_write_comment ( resource $xmlwriter , string $content )

Записывает полный комментарий.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

content

Содержание комментария.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startComment() - Создает стартовый комментарий
  • XMLWriter::endComment() - Завершить комментарий


Записать полный тэг DTD AttList

  • « XMLWriter::writeComment
  • XMLWriter::writeDTDElement »
  • PHP Manual
  • XMLWriter
  • Записать полный тэг DTD AttList

XMLWriter::writeDTDAttlist

xmlwriter_write_dtd_attlist

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDAttlist -- xmlwriter_write_dtd_attlist — Записать полный тэг DTD AttList

Описание

Объектно-ориентированный стиль

bool XMLWriter::writeDTDAttlist ( string $name , string $content )

Процедурный стиль

bool xmlwriter_write_dtd_attlist ( resource $xmlwriter , string $name , string $content )

Записывает список атрибутов DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя списка атрибутов DTD.

content

Содержимое списка атрибутов DTD.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDTDAttlist() - Создает стартовый список атрибутов DTD
  • XMLWriter::endDTDAttlist() - Завершить текущий DTD


Записать полный тэг элемента DTD

  • « XMLWriter::writeDTDAttlist
  • XMLWriter::writeDTDEntity »
  • PHP Manual
  • XMLWriter
  • Записать полный тэг элемента DTD

XMLWriter::writeDTDElement

xmlwriter_write_dtd_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDElement -- xmlwriter_write_dtd_element — Записать полный тэг элемента DTD

Описание

Объектно-ориентированный стиль

bool XMLWriter::writeDTDElement ( string $name , string $content )

Процедурный стиль

bool xmlwriter_write_dtd_element ( resource $xmlwriter , string $name , string $content )

Записывает полный тэг элемента DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя элемента DTD.

content

Содержимое элемента.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDTDElement() - Создать начальный элемент DTD
  • XMLWriter::endDTDElement() - Завершить текущий элемент DTD


Записать полный тэг DTD записи

  • « XMLWriter::writeDTDElement
  • XMLWriter::writeDTD »
  • PHP Manual
  • XMLWriter
  • Записать полный тэг DTD записи

XMLWriter::writeDTDEntity

xmlwriter_write_dtd_entity

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTDEntity -- xmlwriter_write_dtd_entity — Записать полный тэг DTD записи

Описание

Объектно-ориентированный стиль

bool XMLWriter::writeDTDEntity ( string $name , string $content , bool $pe , string $pubid , string $sysid , string $ndataid )

Процедурный стиль

bool xmlwriter_write_dtd_entity ( resource $xmlwriter , string $name , string $content , bool $pe , string $pubid , string $sysid , string $ndataid )

Записывает полную DTD запись.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя записи.

content

Содержимое записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDTDEntity() - Создать начальную запись DTD
  • XMLWriter::endDTDEntity() - Завершить текущую запись DTD


Записать полный тэг DTD

  • « XMLWriter::writeDTDEntity
  • XMLWriter::writeElementNS »
  • PHP Manual
  • XMLWriter
  • Записать полный тэг DTD

XMLWriter::writeDTD

xmlwriter_write_dtd

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeDTD -- xmlwriter_write_dtd — Записать полный тэг DTD

Описание

Объектно-ориентированный стиль

bool XMLWriter::writeDTD ( string $name [, string $publicId [, string $systemId [, string $subset ]]] )

Процедурный стиль

bool xmlwriter_write_dtd ( resource $xmlwriter , string $name [, string $publicId [, string $systemId [, string $subset ]]] )

Записывает полный тэг DTD.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя DTD.

publicId

Идентификатор внешнего публичного подмножества.

systemId

Идентификатор внешнего системного подмножества.

subset

Содержание DTD.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startDTD() - Создать стартовый DTD тэг
  • XMLWriter::endDTD() - Завершить текущий DTD


Записать полное пространство имен тега элемента

  • « XMLWriter::writeDTD
  • XMLWriter::writeElement »
  • PHP Manual
  • XMLWriter
  • Записать полное пространство имен тега элемента

XMLWriter::writeElementNS

xmlwriter_write_element_ns

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElementNS -- xmlwriter_write_element_ns — Записать полное пространство имен тега элемента

Описание

Объектно-ориентированный стиль

bool XMLWriter::writeElementNS ( string $prefix , string $name , string $uri [, string $content ] )

Процедурный стиль

bool xmlwriter_write_element_ns ( resource $xmlwriter , string $prefix , string $name , string $uri [, string $content ] )

Записывает полное пространство имен тега элемента.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

prefix

Префикс пространства имен.

name

Имя элемента.

uri

URI пространства имен.

content

Содержимое элемента.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.3 | Параметр content стал опциональным.

Смотрите также

  • XMLWriter::startElementNS() - Создать начальный тег элемента пространства имен
  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElement() - Записать полный тег элемента


Записать полный тег элемента

  • « XMLWriter::writeElementNS
  • XMLWriter::writePI »
  • PHP Manual
  • XMLWriter
  • Записать полный тег элемента

XMLWriter::writeElement

xmlwriter_write_element

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writeElement -- xmlwriter_write_element — Записать полный тег элемента

Описание

Объектно-ориентированный стиль

bool XMLWriter::writeElement ( string $name [, string $content ] )

Процедурный стиль

bool xmlwriter_write_element ( resource $xmlwriter , string $name [, string $content ] )

Записывает полный тег элемента.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

name

Имя элемента.

content

Содержимое элемента.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.3 | Параметр content стал опциональным.

Смотрите также

  • XMLWriter::startElement() - Создать стартовый тэг элемента
  • XMLWriter::endElement() - Завершить текущий элемент
  • XMLWriter::writeElementNS() - Записать полное пространство имен тега элемента


Записать инструкцию обработки (PI)

  • « XMLWriter::writeElement
  • XMLWriter::writeRaw »
  • PHP Manual
  • XMLWriter
  • Записать инструкцию обработки (PI)

XMLWriter::writePI

xmlwriter_write_pi

(PHP 5 >= 5.1.2, PHP 7, PECL xmlwriter >= 0.1.0)

XMLWriter::writePI -- xmlwriter_write_pi — Записать инструкцию обработки (PI)

Описание

Объектно-ориентированный стиль

bool XMLWriter::writePI ( string $target , string $content )

Процедурный стиль

bool xmlwriter_write_pi ( resource $xmlwriter , string $target , string $content )

Записывает инструкцию обработки.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

target

Цель инструкций обработки.

content

Содержимое инструкций обработки.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::startPI() - Создать начальный тэг PI
  • XMLWriter::endPI() - Завершить текущую инструкцию обработки (PI)


Пишет необработанный XML-текст

  • « XMLWriter::writePI
  • XSL »
  • PHP Manual
  • XMLWriter
  • Пишет необработанный XML-текст

XMLWriter::writeRaw

xmlwriter_write_raw

(PHP 5 >= 5.2.0, PHP 7, PECL xmlwriter >= 2.0.4)

XMLWriter::writeRaw -- xmlwriter_write_raw — Пишет необработанный XML-текст

Описание

Объектно-ориентированный стиль

bool XMLWriter::writeRaw ( string $content )

Процедурный стиль

bool xmlwriter_write_raw ( resource $xmlwriter , string $content )

Пишет необработанный XML-текст.

Список параметров

xmlwriter

Только для процедурных вызовов. Изменяемый resource XMLWriter. Этот ресурс может быть получен из xmlwriter_open_uri() или xmlwriter_open_memory().

content

Текстовая строка для записи.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XMLWriter::text() - Записать текст


XSL

  • Введение
  • Установка и настройка
    • Требования
    • Установка
    • Настройка во время выполнения
    • Типы ресурсов
  • Предопределенные константы
  • Примеры
    • Файлы collection.xml и collection.xsl для примеров
    • Обработка ошибок с помощью функций обработки ошибок libxml
  • XSLTProcessor — Класс XSLTProcessor
    • XSLTProcessor::__construct — Создаёт новый экземпляр класса XSLTProcessor
    • XSLTProcessor::getParameter — Возвращает значение параметра
    • XsltProcessor::getSecurityPrefs — Получить настройки безопасности
    • XSLTProcessor::hasExsltSupport — Определяет имеет ли PHP поддержку EXSLT
    • XSLTProcessor::importStylesheet — Импортирует таблицу стилей
    • XSLTProcessor::registerPHPFunctions — Включает возможность использовать PHP функции в качестве функций XSLT
    • XSLTProcessor::removeParameter — Удаляет параметр
    • XSLTProcessor::setParameter — Устанавливает значение параметра
    • XSLTProcessor::setProfiling — Устанавливает файл для профилирования
    • XsltProcessor::setSecurityPrefs — Установить настройки безопасности
    • XSLTProcessor::transformToDoc — Преобразует в DOMDocument
    • XSLTProcessor::transformToUri — Преобразует в URI
    • XSLTProcessor::transformToXML — Преобразует в XML


Введение

XSL расширение реализует XSL стандарты, поведение » XSLT трансформации при использовании » библиотеки libxslt


Требования

Для корректной работы этого расширения необходимо PHP расширение libxml. Это означает, что также необходима передача опции --enable-libxml , хотя неявно это уже сделано, так как поддержка libxml по умолчанию включена.

Это расширение использует libxslt, который может быть найден на » http://xmlsoft.org/XSLT/. Необходима версия libxslt 1.1.0, или выше.


Установка

PHP 5 содержит расширение XSL по умолчанию. Расширение может быть активировано добавлением аргумента --with-xsl[=DIR] в строку конфигурации (DIR - путь установки libxslt).


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

XSL_CLONE_AUTO (integer)
XSL_CLONE_NEVER (integer)
XSL_CLONE_ALWAYS (integer)
LIBXSLT_VERSION (integer)
версия libxslt формата 10117. Доступна с PHP 5.1.2.
LIBXSLT_DOTTED_VERSION (string)
версия libxslt формата 1.1.17. Доступна с PHP 5.1.2.
LIBEXSLT_VERSION (integer)
версия libexslt формата 813. Доступна с PHP 5.1.2.
LIBEXSLT_DOTTED_VERSION (string)
версия libexslt формата 1.1.17. Доступна с PHP 5.1.2.
XSL_SECPREF_NONE (integer)
Отключение всех ограничений безопасности.
XSL_SECPREF_READ_FILE (integer)
Запрещает чтение файлов.
XSL_SECPREF_WRITE_FILE (integer)
Запрещает запись файла.
XSL_SECPREF_CREATE_DIRECTORY (integer)
Запрещает создание каталогов.
XSL_SECPREF_READ_NETWORK (integer)
Запрещает чтение сетевых файлов.
XSL_SECPREF_WRITE_NETWORK (integer)
Запрещает запись сетевых файлов.
XSL_SECPREF_DEFAULT (integer)
Запрещает все виды доступа на запись, т.е. битовая маска XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_FILE.


Примеры

Содержание

  • Файлы collection.xml и collection.xsl для примеров
  • Обработка ошибок с помощью функций обработки ошибок libxml


Файлы collection.xml и collection.xsl для примеров

Многие примеры в этом разделе документации содержат оба файла: XML и XSL. Мы будем использовать collection.xml и collection.xsl со следующим содержанием:

Пример #1 collection.xml

<collection>
 <cd>
  <title>Fight for your mind</title>
  <artist>Ben Harper</artist>
  <year>1995</year>
 </cd>
 <cd>
  <title>Electric Ladyland</title>
  <artist>Jimi Hendrix</artist>
  <year>1997</year>
 </cd>
</collection>

Пример #2 collection.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:param name="owner" select="'Nicolas Eliaszewicz'"/>
 <xsl:output method="html" encoding="iso-8859-1" indent="no"/>
 <xsl:template match="collection">
  Hey! Welcome to <xsl:value-of select="$owner"/>'s sweet CD collection!
  <xsl:apply-templates/>
 </xsl:template>
 <xsl:template match="cd">
  <h1><xsl:value-of select="title"/></h1>
  <h2>by <xsl:value-of select="artist"/> - <xsl:value-of select="year"/></h2>
  <hr />
 </xsl:template>
</xsl:stylesheet>


Обработка ошибок с помощью функций обработки ошибок libxml

libxml предоставляет ряд функций для обработки ошибок, которые могут использоваться для отлова и работы с ошибками при обработке XSLT.

Пример #1 fruits.xml

Правильный XML.

<fruits>
 <fruit>Apple</fruit>
 <fruit>Banana</fruit>
 <fruit>Cherry</fruit>
</fruits>

Пример #2 fruits.xsl

Содержит неверное "select" выражение.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="html" encoding="utf-8" indent="no"/>
 <xsl:template match="fruits">
  <ul>
   <xsl:apply-templates/>
  </ul>
 </xsl:template>
 <xsl:template match="fruit">
  <li><xsl:value-of select="THIS IS A DELIBERATE ERROR!"/></li>
 </xsl:template>
</xsl:stylesheet>

Пример #3 Сбор и вывод ошибок

Пример ниже отлавливает и отображает ошибки libxml, появляющиеся при вызове метода XSLTProcessor::importStyleSheet() со стилем содержащим ошибки.

<?php

$xmldoc = new DOMDocument();
$xsldoc = new DOMDocument();
$xsl = new XSLTProcessor();

$xmldoc->loadXML('fruits.xml');
$xsldoc->loadXML('fruits.xsl');

libxml_use_internal_errors(true);
$result = $xsl->importStyleSheet($xsldoc);
if (!$result) {
    foreach (libxml_get_errors() as $error) {
        echo "Libxml error: {$error->message}\n";
    }
}
libxml_use_internal_errors(false);

if ($result) {
    echo $xsl->transformToXML($xmldoc);
}

?>

Результатом выполнения данного примера будет что-то подобное:

Libxml error: Invalid expression

Libxml error: compilation error: file fruits.xsl line 9 element value-of
Libxml error: xsl:value-of : could not compile select expression 'THIS IS A DELIBERATE ERROR!'


Класс XSLTProcessor

(PHP 5, PHP 7)

Введение

Обзор классов

XSLTProcessor {
/* Методы */
string getParameter ( string $namespaceURI , string $localName )
public int XsltProcessor::getSecurityPrefs ( void )
bool hasExsltSupport ( void )
public bool importStylesheet ( object $stylesheet )
void registerPHPFunctions ([ mixed $restrict ] )
bool removeParameter ( string $namespaceURI , string $localName )
bool setParameter ( string $namespace , string $name , string $value )
bool setProfiling ( string $filename )
public int XsltProcessor::setSecurityPrefs ( int $securityPrefs )
DOMDocument transformToDoc ( DOMNode $doc )
int transformToURI ( DOMDocument $doc , string $uri )
string transformToXML ( object $doc )
}

Содержание

  • XSLTProcessor::__construct — Создаёт новый экземпляр класса XSLTProcessor
  • XSLTProcessor::getParameter — Возвращает значение параметра
  • XsltProcessor::getSecurityPrefs — Получить настройки безопасности
  • XSLTProcessor::hasExsltSupport — Определяет имеет ли PHP поддержку EXSLT
  • XSLTProcessor::importStylesheet — Импортирует таблицу стилей
  • XSLTProcessor::registerPHPFunctions — Включает возможность использовать PHP функции в качестве функций XSLT
  • XSLTProcessor::removeParameter — Удаляет параметр
  • XSLTProcessor::setParameter — Устанавливает значение параметра
  • XSLTProcessor::setProfiling — Устанавливает файл для профилирования
  • XsltProcessor::setSecurityPrefs — Установить настройки безопасности
  • XSLTProcessor::transformToDoc — Преобразует в DOMDocument
  • XSLTProcessor::transformToUri — Преобразует в URI
  • XSLTProcessor::transformToXML — Преобразует в XML


Создаёт новый экземпляр класса XSLTProcessor

  • « XSLTProcessor
  • XSLTProcessor::getParameter »
  • PHP Manual
  • XSLTProcessor
  • Создаёт новый экземпляр класса XSLTProcessor

XSLTProcessor::__construct

(PHP 5, PHP 7)

XSLTProcessor::__construct — Создаёт новый экземпляр класса XSLTProcessor

Описание

XSLTProcessor::__construct ( void )

Создаёт новый экземпляр класса XSLTProcessor.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Создаёт XSLTProcessor

<?php

$xsldoc = new DOMDocument();
$xsldoc->load($xsl_filename);

$xmldoc = new DOMDocument();
$xmldoc->load($xml_filename);

$xsl = new XSLTProcessor();
$xsl->importStyleSheet($xsldoc);
echo $xsl->transformToXML($xmldoc);

?>


Возвращает значение параметра

  • « XSLTProcessor::__construct
  • XsltProcessor::getSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Возвращает значение параметра

XSLTProcessor::getParameter

(PHP 5, PHP 7)

XSLTProcessor::getParameter — Возвращает значение параметра

Описание

string XSLTProcessor::getParameter ( string $namespaceURI , string $localName )

Возвращает параметр, если он раньше установлен с помощью XSLTProcessor::setParameter().

Список параметров

namespaceURI

Пространство имён URI параметра XSLT.

localName

Локальное имя параметра XSLT.

Возвращаемые значения

Значение параметра (в виде строки), или FALSE, если оно не установлено.

Смотрите также

  • XSLTProcessor::setParameter() - Устанавливает значение параметра
  • XSLTProcessor::removeParameter() - Удаляет параметр


Получить настройки безопасности

  • « XSLTProcessor::getParameter
  • XSLTProcessor::hasExsltSupport »
  • PHP Manual
  • XSLTProcessor
  • Получить настройки безопасности

XsltProcessor::getSecurityPrefs

(PHP >= 5.4.0)

XsltProcessor::getSecurityPrefs — Получить настройки безопасности

Описание

public int XsltProcessor::getSecurityPrefs ( void )

Получает настройки безопасности.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Битовая маска, состоящая из XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK, XSL_SECPREF_WRITE_NETWORK.


Определяет имеет ли PHP поддержку EXSLT

  • « XsltProcessor::getSecurityPrefs
  • XSLTProcessor::importStylesheet »
  • PHP Manual
  • XSLTProcessor
  • Определяет имеет ли PHP поддержку EXSLT

XSLTProcessor::hasExsltSupport

(PHP 5 >= 5.0.4, PHP 7)

XSLTProcessor::hasExsltSupport — Определяет имеет ли PHP поддержку EXSLT

Описание

bool XSLTProcessor::hasExsltSupport ( void )

Этот метод определяет был ли PHP сконфигурирован с » библиотекой EXSLT.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Проверка поддержки EXSLT

<?php

$proc = new XSLTProcessor;
if (!$proc->hasExsltSupport()) {
    die('EXSLT support not available');
}

// выполнение некоторых действий EXSLT ..

?>


Импортирует таблицу стилей

  • « XSLTProcessor::hasExsltSupport
  • XSLTProcessor::registerPHPFunctions »
  • PHP Manual
  • XSLTProcessor
  • Импортирует таблицу стилей

XSLTProcessor::importStylesheet

(PHP 5, PHP 7)

XSLTProcessor::importStylesheet — Импортирует таблицу стилей

Описание

public bool XSLTProcessor::importStylesheet ( object $stylesheet )

Этот метод импортирует таблицу стилей в XSLTProcessor для трансформации.

Список параметров

stylesheet

Импортируемая таблица стилей в виде объекта DOMDocument или SimpleXMLElement.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Список изменений

Версия | Описание
5.2.8 | Принимает SimpleXMLElement вновь, что было невозможно в версии PHP 5.2.6 и более поздних.


Включает возможность использовать PHP функции в качестве функций XSLT

  • « XSLTProcessor::importStylesheet
  • XSLTProcessor::removeParameter »
  • PHP Manual
  • XSLTProcessor
  • Включает возможность использовать PHP функции в качестве функций XSLT

XSLTProcessor::registerPHPFunctions

(PHP 5 >= 5.0.4, PHP 7)

XSLTProcessor::registerPHPFunctions — Включает возможность использовать PHP функции в качестве функций XSLT

Описание

void XSLTProcessor::registerPHPFunctions ([ mixed $restrict ] )

Этот метод позволяет использовать PHP функции как функции XSLT в XSL таблицах стилей.

Список параметров

restrict

Используйте этот параметр, если хотите вызывать из XSLT только некоторые функции из.

Этот параметр может принимать либо строковое значение - название функции, либо массив - список названий.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Простой вызов функции PHP из таблицы стилей

<?php
$xml = <<<EOB
<allusers>
 <user>
  <uid>bob</uid>
 </user>
 <user>
  <uid>joe</uid>
 </user>
</allusers>
EOB;
$xsl = <<<EOB
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:php="http://php.net/xsl">
<xsl:output method="html" encoding="utf-8" indent="yes"/>
 <xsl:template match="allusers">
  <html><body>
    <h2>Users</h2>
    <table>
    <xsl:for-each select="user">
      <tr><td>
        <xsl:value-of
             select="php:function('ucfirst',string(uid))"/>
      </td></tr>
    </xsl:for-each>
    </table>
  </body></html>
 </xsl:template>
</xsl:stylesheet>
EOB;
$xmldoc = DOMDocument::loadXML($xml);
$xsldoc = DOMDocument::loadXML($xsl);

$proc = new XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStyleSheet($xsldoc);
echo $proc->transformToXML($xmldoc);
?>

Список изменений

Версия | Описание
5.1.0 | Был добавлен параметр restrict.


Удаляет параметр

  • « XSLTProcessor::registerPHPFunctions
  • XSLTProcessor::setParameter »
  • PHP Manual
  • XSLTProcessor
  • Удаляет параметр

XSLTProcessor::removeParameter

(PHP 5, PHP 7)

XSLTProcessor::removeParameter — Удаляет параметр

Описание

bool XSLTProcessor::removeParameter ( string $namespaceURI , string $localName )

Удаляет параметр, если он установлен. Это позволяет процессору использовать значение в таблице стилей, установленное по умолчанию.

Список параметров

namespaceURI

Пространство имён URI параметра XSLT.

localName

Локальное название XSLT параметра.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Смотрите также

  • XSLTProcessor::setParameter() - Устанавливает значение параметра
  • XSLTProcessor::getParameter() - Возвращает значение параметра


Устанавливает значение параметра

  • « XSLTProcessor::removeParameter
  • XSLTProcessor::setProfiling »
  • PHP Manual
  • XSLTProcessor
  • Устанавливает значение параметра

XSLTProcessor::setParameter

(PHP 5, PHP 7)

XSLTProcessor::setParameter — Устанавливает значение параметра

Описание

bool XSLTProcessor::setParameter ( string $namespace , string $name , string $value )
bool XSLTProcessor::setParameter ( string $namespace , array $options )

Устанавливает значение для одного или нескольких параметров, чтобы использовать в дальнейшем в преобразованиях XSLTProcessor. Если параметра нет в таблице стилей, то он будет проигнорирован.

Список параметров

namespace

Пространство имён URI параметра XSLT.

name

Локальное название параметра XSLT.

value

Новое значение параметра XSLT.

options

Массив пар name => value. Этот синтаксис доступен с PHP 5.1.0.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Изменение владельца перед преобразованием

<?php

$collections = array(
    'Marc Rutkowski' => 'marc',
    'Olivier Parmentier' => 'olivier'
);

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Настройка преобразования
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // добавление стилей xsl

foreach ($collections as $name => $file) {
    // Load the XML source
    $xml = new DOMDocument;
    $xml->load('collection_' . $file . '.xml');

    $proc->setParameter('', 'owner', $name);
    $proc->transformToURI($xml, 'file:///tmp/' . $file . '.html');
}

?>

Смотрите также

  • XSLTProcessor::getParameter() - Возвращает значение параметра
  • XSLTProcessor::removeParameter() - Удаляет параметр


Устанавливает файл для профилирования

  • « XSLTProcessor::setParameter
  • XsltProcessor::setSecurityPrefs »
  • PHP Manual
  • XSLTProcessor
  • Устанавливает файл для профилирования

XSLTProcessor::setProfiling

(PHP >= 5.3.0)

XSLTProcessor::setProfiling — Устанавливает файл для профилирования

Описание

bool XSLTProcessor::setProfiling ( string $filename )

Устанавливает файл для записи профилирующей информации во время обработки таблиц стилей.

Список параметров

filename

Путь к файлу, в который записывается профилирующая информация.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример вывода профилирующей информации

<?php
// Загрузка исходного XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Настройка преобразования
$proc = new XSLTProcessor;
$proc->setProfiling('profiling.txt');
$proc->importStyleSheet($xsl); // добавление стилей xsl

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);
?>

Вышеприведенный код записывает следующую информацию в файл профилирования:

number               match                name      mode  Calls Tot 100us Avg

    0                   cd                                    2      3      1
    1           collection                                    1      1      1

                         Total                                3      4


Установить настройки безопасности

  • « XSLTProcessor::setProfiling
  • XSLTProcessor::transformToDoc »
  • PHP Manual
  • XSLTProcessor
  • Установить настройки безопасности

XsltProcessor::setSecurityPrefs

(PHP >= 5.4.0)

XsltProcessor::setSecurityPrefs — Установить настройки безопасности

Описание

public int XsltProcessor::setSecurityPrefs ( int $securityPrefs )

Устананавливает настройки безопасности.

Список параметров

securityPrefs

Новые настройки безопасности. Битовая маска из: XSL_SECPREF_READ_FILE, XSL_SECPREF_WRITE_FILE, XSL_SECPREF_CREATE_DIRECTORY, XSL_SECPREF_READ_NETWORK, XSL_SECPREF_WRITE_NETWORK. Или, альтернативно, можно передать XSL_SECPREF_NONE или XSL_SECPREF_DEFAULT.

Возвращаемые значения

Returns the old security preferences.


Преобразует в DOMDocument

  • « XsltProcessor::setSecurityPrefs
  • XSLTProcessor::transformToUri »
  • PHP Manual
  • XSLTProcessor
  • Преобразует в DOMDocument

XSLTProcessor::transformToDoc

(PHP 5, PHP 7)

XSLTProcessor::transformToDoc — Преобразует в DOMDocument

Описание

DOMDocument XSLTProcessor::transformToDoc ( DOMNode $doc )

Преобразует исходный узел в DOMDocument применяя таблицу стилей, заданную с помощью метода XSLTProcessor::importStylesheet().

Список параметров

doc

Узел, который нужно преобразовать.

Возвращаемые значения

Возвращает DOMDocument или FALSE при ошибке.

Примеры

Пример #1 Преобразование в DOMDocument

<?php

// Загрузка исходного XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Настройка преобразования
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // добавление стилей xsl

echo trim($proc->transformToDoc($xml)->firstChild->wholeText);

?>

Результат выполнения данного примера:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

Смотрите также

  • XSLTProcessor::transformToUri() - Преобразует в URI
  • XSLTProcessor::transformToXml() - Преобразует в XML


Преобразует в URI

  • « XSLTProcessor::transformToDoc
  • XSLTProcessor::transformToXML »
  • PHP Manual
  • XSLTProcessor
  • Преобразует в URI

XSLTProcessor::transformToUri

(PHP 5, PHP 7)

XSLTProcessor::transformToUri — Преобразует в URI

Описание

int XSLTProcessor::transformToURI ( DOMDocument $doc , string $uri )

Преобразует исходный узел в URI, применяя таблицу стилей, которая установлена с помощью метода XSLTProcessor::importStylesheet().

Список параметров

doc

Документ для преобразования.

uri

Целевой URI для преобразования.

Возвращаемые значения

Возвращает количество записанных байтов, либо FALSE при ошибке.

Примеры

Пример #1 Преобразование в HTML файл

<?php

// Загрузка источника XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Настройка преобразования
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // добавление стилей xsl

$proc->transformToURI($xml, 'file:///tmp/out.html');

?>

Смотрите также

  • XSLTProcessor::transformToDoc() - Преобразует в DOMDocument
  • XSLTProcessor::transformToXml() - Преобразует в XML


Преобразует в XML

  • « XSLTProcessor::transformToUri
  • Расширения для работы с GUI »
  • PHP Manual
  • XSLTProcessor
  • Преобразует в XML

XSLTProcessor::transformToXML

(PHP 5, PHP 7)

XSLTProcessor::transformToXML — Преобразует в XML

Описание

string XSLTProcessor::transformToXML ( object $doc )

Преобразует исходный узел в строку, применяя таблицы стилей, которые установлены с помощью метода xsltprocessor::importStylesheet().

Список параметров

doc

Объект класса DOMDocument или SimpleXMLElement для преобразования.

Возвращаемые значения

Результат преобразования, или FALSE при ошибке.

Примеры

Пример #1 Трансформация в строку

<?php

// Загрузка источника XML
$xml = new DOMDocument;
$xml->load('collection.xml');

$xsl = new DOMDocument;
$xsl->load('collection.xsl');

// Настройка преобразования
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // добавление стилей xsl

echo $proc->transformToXML($xml);

?>

Результат выполнения данного примера:

Hey! Welcome to Nicolas Eliaszewicz's sweet CD collection!

<h1>Fight for your mind</h1><h2>by Ben Harper - 1995</h2><hr>
<h1>Electric Ladyland</h1><h2>by Jimi Hendrix - 1997</h2><hr>

Смотрите также

  • XSLTProcessor::transformToDoc() - Преобразует в DOMDocument
  • XSLTProcessor::transformToUri() - Преобразует в URI


Расширения для работы с GUI

  • UI
    • Введение
    • Установка и настройка
    • UI\Point — Represents a position (x,y)
    • UI\Size — Represents dimenstions (width, height)
    • UI\Window — Window
    • UI\Control — Control
    • UI\Menu — Menu
    • UI\MenuItem — Menu Item
    • UI\Area — Area
    • UI\Executor — Execution Scheduler
    • UI\Controls\Tab — Tab Control
    • UI\Controls\Check — Check Control
    • UI\Controls\Button — Button Control
    • UI\Controls\ColorButton — ColorButton Control
    • UI\Controls\Label — Label Control
    • UI\Controls\Entry — Entry Control
    • UI\Controls\MultilineEntry — MultilineEntry Control
    • UI\Controls\Spin — Spin Control
    • UI\Controls\Slider — Slider Control
    • UI\Controls\Progress — Progress Control
    • UI\Controls\Separator — Control Separator
    • UI\Controls\Combo — Combo Control
    • UI\Controls\EditableCombo — EdiableCombo Control
    • UI\Controls\Radio — Radio Control
    • UI\Controls\Picker — Picker Control
    • UI\Controls\Form — Control Form (Arrangement)
    • UI\Controls\Grid — Control Grid (Arrangement)
    • UI\Controls\Group — Control Group (Arrangement)
    • UI\Controls\Box — Control Box (Arrangement)
    • UI\Draw\Pen — Draw Pen
    • UI\Draw\Path — Draw Path
    • UI\Draw\Matrix — Draw Matrix
    • UI\Draw\Color — Color Representation
    • UI\Draw\Stroke — Draw Stroke
    • UI\Draw\Brush — Brushes
    • UI\Draw\Brush\Gradient — Gradient Brushes
    • UI\Draw\Brush\LinearGradient — Linear Gradient
    • UI\Draw\Brush\RadialGradient — Radial Gradient
    • UI\Draw\Text\Layout — Represents Text Layout
    • UI\Draw\Text\Font — Represents a Font
    • UI\Draw\Text\Font\Descriptor — Font Descriptor
    • UI Функции
    • UI\Draw\Text\Font\Weight — Font Weight Settings
    • UI\Draw\Text\Font\Italic — Italic Font Settings
    • UI\Draw\Text\Font\Stretch — Font Stretch Settings
    • UI\Draw\Line\Cap — Line Cap Settings
    • UI\Draw\Line\Join — Line Join Settings
    • UI\Key — Key Identifiers
    • UI\Exception\InvalidArgumentException — InvalidArgumentException
    • UI\Exception\RuntimeException — RuntimeException


UI

  • Введение
  • Установка и настройка
    • Требования
    • Установка
  • UI\Point — Represents a position (x,y)
    • UI\Point::at — Size Coercion
    • UI\Point::__construct — Construct a new Point
    • UI\Point::getX — Retrieves X
    • UI\Point::getY — Retrieves Y
    • UI\Point::setX — Set X
    • UI\Point::setY — Set Y
  • UI\Size — Represents dimenstions (width, height)
    • UI\Size::__construct — Construct a new Size
    • UI\Size::getHeight — Retrieves Height
    • UI\Size::getWidth — Retrives Width
    • UI\Size::of — Point Coercion
    • UI\Size::setHeight — Set Height
    • UI\Size::setWidth — Set Width
  • UI\Window — Window
    • UI\Window::add — Add a Control
    • UI\Window::__construct — Construct a new Window
    • UI\Window::error — Show Error Box
    • UI\Window::getSize — Get Window Size
    • UI\Window::getTitle — Get Title
    • UI\Window::hasBorders — Border Detection
    • UI\Window::hasMargin — Margin Detection
    • UI\Window::isFullScreen — Full Screen Detection
    • UI\Window::msg — Show Message Box
    • UI\Window::onClosing — Closing Callback
    • UI\Window::open — Open Dialog
    • UI\Window::save — Save Dialog
    • UI\Window::setBorders — Border Use
    • UI\Window::setFullScreen — Full Screen Use
    • UI\Window::setMargin — Margin Use
    • UI\Window::setSize — Set Size
    • UI\Window::setTitle — Window Title
  • UI\Control — Control
    • UI\Control::destroy — Destroy Control
    • UI\Control::disable — Disable Control
    • UI\Control::enable — Enable Control
    • UI\Control::getParent — Get Parent Control
    • UI\Control::getTopLevel — Get Top Level
    • UI\Control::hide — Hide Control
    • UI\Control::isEnabled — Determine if Control is enabled
    • UI\Control::isVisible — Determine if Control is visible
    • UI\Control::setParent — Set Parent Control
    • UI\Control::show — Control Show
  • UI\Menu — Menu
    • UI\Menu::append — Append Menu Item
    • UI\Menu::appendAbout — Append About Menu Item
    • UI\Menu::appendCheck — Append Checkable Menu Item
    • UI\Menu::appendPreferences — Append Preferences Menu Item
    • UI\Menu::appendQuit — Append Quit Menu Item
    • UI\Menu::appendSeparator — Append Menu Item Separator
    • UI\Menu::__construct — Construct a new Menu
  • UI\MenuItem — Menu Item
    • UI\MenuItem::disable — Disable Menu Item
    • UI\MenuItem::enable — Enable Menu Item
    • UI\MenuItem::isChecked — Detect Checked
    • UI\MenuItem::onClick — On Click Callback
    • UI\MenuItem::setChecked — Set Checked
  • UI\Area — Area
    • UI\Area::onDraw — Draw Callback
    • UI\Area::onKey — Key Callback
    • UI\Area::onMouse — Mouse Callback
    • UI\Area::redraw — Redraw Area
    • UI\Area::scrollTo — Area Scroll
    • UI\Area::setSize — Set Size
  • UI\Executor — Execution Scheduler
    • UI\Executor::__construct — Construct a new Executor
    • UI\Executor::kill — Stop Executor
    • UI\Executor::onExecute — Execution Callback
    • UI\Executor::setInterval — Interval Manipulation
  • UI\Controls\Tab — Tab Control
    • UI\Controls\Tab::append — Append Page
    • UI\Controls\Tab::delete — Delete Page
    • UI\Controls\Tab::hasMargin — Margin Detection
    • UI\Controls\Tab::insertAt — Insert Page
    • UI\Controls\Tab::pages — Page Count
    • UI\Controls\Tab::setMargin — Set Margin
  • UI\Controls\Check — Check Control
    • UI\Controls\Check::__construct — Construct a new Check
    • UI\Controls\Check::getText — Get Text
    • UI\Controls\Check::isChecked — Checked Detection
    • UI\Controls\Check::onToggle — Toggle Callback
    • UI\Controls\Check::setChecked — Set Checked
    • UI\Controls\Check::setText — Set Text
  • UI\Controls\Button — Button Control
    • UI\Controls\Button::__construct — Construct a new Button
    • UI\Controls\Button::getText — Get Text
    • UI\Controls\Button::onClick — Click Handler
    • UI\Controls\Button::setText — Set Text
  • UI\Controls\ColorButton — ColorButton Control
    • UI\Controls\ColorButton::getColor — Get Color
    • UI\Controls\ColorButton::onChange — Change Handler
    • UI\Controls\ColorButton::setColor — Set Color
  • UI\Controls\Label — Label Control
    • UI\Controls\Label::__construct — Construct a new Label
    • UI\Controls\Label::getText — Get Text
    • UI\Controls\Label::setText — Set Text
  • UI\Controls\Entry — Entry Control
    • UI\Controls\Entry::__construct — Construct a new Entry
    • UI\Controls\Entry::getText — Get Text
    • UI\Controls\Entry::isReadOnly — Detect Read Only
    • UI\Controls\Entry::onChange — Change Handler
    • UI\Controls\Entry::setReadOnly — Set Read Only
    • UI\Controls\Entry::setText — Set Text
  • UI\Controls\MultilineEntry — MultilineEntry Control
    • UI\Controls\MultilineEntry::append — Append Text
    • UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry
    • UI\Controls\MultilineEntry::getText — Get Text
    • UI\Controls\MultilineEntry::isReadOnly — Read Only Detection
    • UI\Controls\MultilineEntry::onChange — Change Handler
    • UI\Controls\MultilineEntry::setReadOnly — Set Read Only
    • UI\Controls\MultilineEntry::setText — Set Text
  • UI\Controls\Spin — Spin Control
    • UI\Controls\Spin::__construct — Construct a new Spin
    • UI\Controls\Spin::getValue — Get Value
    • UI\Controls\Spin::onChange — Change Handler
    • UI\Controls\Spin::setValue — Set Value
  • UI\Controls\Slider — Slider Control
    • UI\Controls\Slider::__construct — Construct a new Slider
    • UI\Controls\Slider::getValue — Get Value
    • UI\Controls\Slider::onChange — Change Handler
    • UI\Controls\Slider::setValue — Set Value
  • UI\Controls\Progress — Progress Control
    • UI\Controls\Progress::getValue — Get Value
    • UI\Controls\Progress::setValue — Set Value
  • UI\Controls\Separator — Control Separator
    • UI\Controls\Separator::__construct — Construct a new Separator
  • UI\Controls\Combo — Combo Control
    • UI\Controls\Combo::append — Append Option
    • UI\Controls\Combo::getSelected — Get Selected Option
    • UI\Controls\Combo::onSelected — Selected Handler
    • UI\Controls\Combo::setSelected — Set Selected Option
  • UI\Controls\EditableCombo — EdiableCombo Control
    • UI\Controls\EditableCombo::append — Append Option
    • UI\Controls\EditableCombo::getText — Get Text
    • UI\Controls\EditableCombo::onChange — Change Handler
    • UI\Controls\EditableCombo::setText — Set Text
  • UI\Controls\Radio — Radio Control
    • UI\Controls\Radio::append — Append Option
    • UI\Controls\Radio::getSelected — Get Selected Option
    • UI\Controls\Radio::onSelected — Selected Handler
    • UI\Controls\Radio::setSelected — Set Selected Option
  • UI\Controls\Picker — Picker Control
    • UI\Controls\Picker::__construct — Construct a new Picker
  • UI\Controls\Form — Control Form (Arrangement)
    • UI\Controls\Form::append — Append Control
    • UI\Controls\Form::delete — Delete Control
    • UI\Controls\Form::isPadded — Padding Detection
    • UI\Controls\Form::setPadded — Set Padding
  • UI\Controls\Grid — Control Grid (Arrangement)
    • UI\Controls\Grid::append — Append Control
    • UI\Controls\Grid::isPadded — Padding Detection
    • UI\Controls\Grid::setPadded — Set Padding
  • UI\Controls\Group — Control Group (Arrangement)
    • UI\Controls\Group::append — Append Control
    • UI\Controls\Group::__construct — Construct a new Group
    • UI\Controls\Group::getTitle — Get Title
    • UI\Controls\Group::hasMargin — Margin Detection
    • UI\Controls\Group::setMargin — Set Margin
    • UI\Controls\Group::setTitle — Set Title
  • UI\Controls\Box — Control Box (Arrangement)
    • UI\Controls\Box::append — Append Control
    • UI\Controls\Box::__construct — Construct a new Box
    • UI\Controls\Box::delete — Delete Control
    • UI\Controls\Box::getOrientation — Get Orientation
    • UI\Controls\Box::isPadded — Padding Detection
    • UI\Controls\Box::setPadded — Set Padding
  • UI\Draw\Pen — Draw Pen
    • UI\Draw\Pen::clip — Clip a Path
    • UI\Draw\Pen::fill — Fill a Path
    • UI\Draw\Pen::restore — Restore
    • UI\Draw\Pen::save — Save
    • UI\Draw\Pen::stroke — Stroke a Path
    • UI\Draw\Pen::transform — Matrix Transform
    • UI\Draw\Pen::write — Draw Text at Point
  • UI\Draw\Path — Draw Path
    • UI\Draw\Path::addRectangle — Draw a Rectangle
    • UI\Draw\Path::arcTo — Draw an Arc
    • UI\Draw\Path::bezierTo — Draw Bezier Curve
    • UI\Draw\Path::closeFigure — Close Figure
    • UI\Draw\Path::__construct — Construct a new Path
    • UI\Draw\Path::end — Finalize Path
    • UI\Draw\Path::lineTo — Draw a Line
    • UI\Draw\Path::newFigure — Draw Figure
    • UI\Draw\Path::newFigureWithArc — Draw Figure with Arc
  • UI\Draw\Matrix — Draw Matrix
    • UI\Draw\Matrix::invert — Invert Matrix
    • UI\Draw\Matrix::isInvertible — Invertible Detection
    • UI\Draw\Matrix::multiply — Multiply Matrix
    • UI\Draw\Matrix::rotate — Rotate Matrix
    • UI\Draw\Matrix::scale — Scale Matrix
    • UI\Draw\Matrix::skew — Skew Matrix
    • UI\Draw\Matrix::translate — Translate Matrix
  • UI\Draw\Color — Color Representation
    • UI\Draw\Color::__construct — Construct new Color
    • UI\Draw\Color::getChannel — Color Manipulation
    • UI\Draw\Color::setChannel — Color Manipulation
  • UI\Draw\Stroke — Draw Stroke
    • UI\Draw\Stroke::__construct — Construct a new Stroke
    • UI\Draw\Stroke::getCap — Get Line Cap
    • UI\Draw\Stroke::getJoin — Get Line Join
    • UI\Draw\Stroke::getMiterLimit — Get Miter Limit
    • UI\Draw\Stroke::getThickness — Get Thickness
    • UI\Draw\Stroke::setCap — Set Line Cap
    • UI\Draw\Stroke::setJoin — Set Line Join
    • UI\Draw\Stroke::setMiterLimit — Set Miter Limit
    • UI\Draw\Stroke::setThickness — Set Thickness
  • UI\Draw\Brush — Brushes
    • UI\Draw\Brush::__construct — Construct a new Brush
    • UI\Draw\Brush::getColor — Get Color
    • UI\Draw\Brush::setColor — Set Color
  • UI\Draw\Brush\Gradient — Gradient Brushes
    • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
    • UI\Draw\Brush\Gradient::setStop — Stop Manipulation
  • UI\Draw\Brush\LinearGradient — Linear Gradient
    • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient
  • UI\Draw\Brush\RadialGradient — Radial Gradient
    • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient
  • UI\Draw\Text\Layout — Represents Text Layout
    • UI\Draw\Text\Layout::__construct — Construct a new Text Layout
    • UI\Draw\Text\Layout::setColor — Set Color
    • UI\Draw\Text\Layout::setWidth — Set Width
  • UI\Draw\Text\Font — Represents a Font
    • UI\Draw\Text\Font::__construct — Construct a new Font
    • UI\Draw\Text\Font::getAscent — Font Metrics
    • UI\Draw\Text\Font::getDescent — Font Metrics
    • UI\Draw\Text\Font::getLeading — Font Metrics
    • UI\Draw\Text\Font::getUnderlinePosition — Font Metrics
    • UI\Draw\Text\Font::getUnderlineThickness — Font Metrics
  • UI\Draw\Text\Font\Descriptor — Font Descriptor
    • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
    • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
    • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
    • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
    • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
    • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection
  • UI Функции
    • UI\Draw\Text\Font\fontFamilies — Retrieve Font Families
    • UI\quit — Quit UI Loop
    • UI\run — Enter UI Loop
  • UI\Draw\Text\Font\Weight — Font Weight Settings
  • UI\Draw\Text\Font\Italic — Italic Font Settings
  • UI\Draw\Text\Font\Stretch — Font Stretch Settings
  • UI\Draw\Line\Cap — Line Cap Settings
  • UI\Draw\Line\Join — Line Join Settings
  • UI\Key — Key Identifiers
  • UI\Exception\InvalidArgumentException — InvalidArgumentException
  • UI\Exception\RuntimeException — RuntimeException


Введение

This extension wraps libui to provide an OO API for the cross platform development of native look-and-feel user interfaces .


  • « Введение
  • Требования »
  • PHP Manual
  • UI
  • Установка и настройка

Установка и настройка

Содержание

  • Требования
  • Установка


Требования

Installation requires the libui library, and PHP 7 or newer.

This extension requires the » libui library version 0.1.0 or higher to be installed. See the libui documentation for a list of prerequisites.


Установка

Это расширение » PECL не поставляется вместе с PHP.

Информация по установке этого расширения PECL может быть найдена в главе руководства Установка PECL расширений. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » http://pecl.php.net/package/ui.

Бинарные файлы Windows (файлы DLL) для этого расширения PECL доступны на сайте PECL.


Represents a position (x,y)

(PHP 7, UI 0.9.9)

Введение

Points are used throughout UI to represent co-ordinates on a screen, control, or area.

Обзор классов

final UI\Point {
/* Свойства */
public $x ;
public $y ;
/* Constructor */
public __construct ( float $x , float $y )
/* Методы */
public static UI\Point at ( float $point )
public static UI\Point at ( UI\Size $size )
public float getX ( void )
public float getY ( void )
public setX ( float $point )
public setY ( float $point )
}

Свойства

x

Holds the X co-ordinate, can be read/written directly

y

Holds the Y co-ordinate, can be read/written directly

Содержание

  • UI\Point::at — Size Coercion
  • UI\Point::__construct — Construct a new Point
  • UI\Point::getX — Retrieves X
  • UI\Point::getY — Retrieves Y
  • UI\Point::setX — Set X
  • UI\Point::setY — Set Y


Size Coercion

  • « UI\Point
  • UI\Point::__construct »
  • PHP Manual
  • UI\Point
  • Size Coercion

UI\Point::at

(PHP 7, UI 1.0.2)

UI\Point::at — Size Coercion

Описание

public static UI\Point UI\Point::at ( float $point )
public static UI\Point UI\Point::at ( UI\Size $size )

Shall return a UI\Point object where x and y are equal to those supplied, either in float or UI\Size form

Список параметров

point

The value for x and y

size

The Size to convert

Возвращаемые значения

The resulting Point


Construct a new Point

  • « UI\Point::at
  • UI\Point::getX »
  • PHP Manual
  • UI\Point
  • Construct a new Point

UI\Point::__construct

(PHP 7, UI 0.9.9)

UI\Point::__construct — Construct a new Point

Описание

public UI\Point::__construct ( float $x , float $y )

Construct a new Point using new co-ordinates

Список параметров

x

The new X co-ordinate

y

The new Y co-ordinate


Retrieves X

  • « UI\Point::__construct
  • UI\Point::getY »
  • PHP Manual
  • UI\Point
  • Retrieves X

UI\Point::getX

(PHP 7, UI 0.9.9)

UI\Point::getX — Retrieves X

Описание

public float UI\Point::getX ( void )

Retrieves the X co-ordinate

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current X co-ordinate


Retrieves Y

  • « UI\Point::getX
  • UI\Point::setX »
  • PHP Manual
  • UI\Point
  • Retrieves Y

UI\Point::getY

(PHP 7, UI 0.9.9)

UI\Point::getY — Retrieves Y

Описание

public float UI\Point::getY ( void )

Retrieves the Y co-ordinate

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current Y co-ordinate


Set X

  • « UI\Point::getY
  • UI\Point::setY »
  • PHP Manual
  • UI\Point
  • Set X

UI\Point::setX

(PHP 7, UI 0.9.9)

UI\Point::setX — Set X

Описание

public UI\Point::setX ( float $point )

Set the X co-ordinate

Список параметров

point

The new X co-ordinate

Возвращаемые значения


Set Y

  • « UI\Point::setX
  • UI\Size »
  • PHP Manual
  • UI\Point
  • Set Y

UI\Point::setY

(PHP 7, UI 0.9.9)

UI\Point::setY — Set Y

Описание

public UI\Point::setY ( float $point )

Set the Y co-ordinate

Список параметров

point

The new Y co-ordinate

Возвращаемые значения


Represents dimenstions (width, height)

(PHP 7, UI 0.9.9)

Введение

Sizes are used throughout UI to represent the size of a screen, control, or area.

Обзор классов

final UI\Size {
/* Свойства */
public $width ;
public $height ;
/* Constructor */
public __construct ( float $width , float $height )
/* Методы */
public float getHeight ( void )
public float getWidth ( void )
public static UI\Size of ( float $size )
public static UI\Size of ( UI\Point $point )
public setHeight ( float $size )
public setWidth ( float $size )
}

Свойства

width

Holds the width, can be read/written directly

height

Holds the height, can be read/written directly

Содержание

  • UI\Size::__construct — Construct a new Size
  • UI\Size::getHeight — Retrieves Height
  • UI\Size::getWidth — Retrives Width
  • UI\Size::of — Point Coercion
  • UI\Size::setHeight — Set Height
  • UI\Size::setWidth — Set Width


Construct a new Size

  • « UI\Size
  • UI\Size::getHeight »
  • PHP Manual
  • UI\Size
  • Construct a new Size

UI\Size::__construct

(PHP 7, UI 0.9.9)

UI\Size::__construct — Construct a new Size

Описание

public UI\Size::__construct ( float $width , float $height )

Construct a new Size using new width and height

Список параметров

width

The new width

height

The new height


Retrieves Height

  • « UI\Size::__construct
  • UI\Size::getWidth »
  • PHP Manual
  • UI\Size
  • Retrieves Height

UI\Size::getHeight

(PHP 7, UI 0.9.9)

UI\Size::getHeight — Retrieves Height

Описание

public float UI\Size::getHeight ( void )

Retrieves the Height

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current Height


Retrives Width

  • « UI\Size::getHeight
  • UI\Size::of »
  • PHP Manual
  • UI\Size
  • Retrives Width

UI\Size::getWidth

(PHP 7, UI 0.9.9)

UI\Size::getWidth — Retrives Width

Описание

public float UI\Size::getWidth ( void )

Retrieves the Width

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current Width


Point Coercion

  • « UI\Size::getWidth
  • UI\Size::setHeight »
  • PHP Manual
  • UI\Size
  • Point Coercion

UI\Size::of

(PHP 7, UI 1.0.2)

UI\Size::of — Point Coercion

Описание

public static UI\Size UI\Size::of ( float $size )
public static UI\Size UI\Size::of ( UI\Point $point )

Shall return a UI\Size object where width and height are equal to those supplied, either in float or UI\Point form

Список параметров

size

The value for width and height

point

The Point to convert

Возвращаемые значения

The resulting Size


Set Height

  • « UI\Size::of
  • UI\Size::setWidth »
  • PHP Manual
  • UI\Size
  • Set Height

UI\Size::setHeight

(PHP 7, UI 0.9.9)

UI\Size::setHeight — Set Height

Описание

public UI\Size::setHeight ( float $size )

Set new Height

Список параметров

size

The new Height

Возвращаемые значения


Set Width

  • « UI\Size::setHeight
  • UI\Window »
  • PHP Manual
  • UI\Size
  • Set Width

UI\Size::setWidth

(PHP 7, UI 0.9.9)

UI\Size::setWidth — Set Width

Описание

public UI\Size::setWidth ( float $size )

Set new Width

Список параметров

size

The new Width

Возвращаемые значения


Window

(PHP 7, UI 0.9.9)

Введение

Represents a UI Window

Обзор классов

UI\Window extends UI\Control {
/* Свойства */
protected $controls ;
/* Constructor */
public __construct ( string $title , Size $size [, boolean $menu = false ] )
/* Методы */
public add ( UI\Control $control )
public error ( string $title , string $msg )
public UI\Size getSize ( void )
public string getTitle ( void )
public bool hasBorders ( void )
public bool hasMargin ( void )
public bool isFullScreen ( void )
public msg ( string $title , string $msg )
protected int onClosing ( void )
public string open ( void )
public string save ( void )
public setBorders ( boolean $borders )
public setFullScreen ( boolean $full )
public setMargin ( boolean $margin )
public setSize ( UI\Size $size )
public setTitle ( string $title )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Свойства

controls

Contains controls, should not be manipulated directly

Содержание

  • UI\Window::add — Add a Control
  • UI\Window::__construct — Construct a new Window
  • UI\Window::error — Show Error Box
  • UI\Window::getSize — Get Window Size
  • UI\Window::getTitle — Get Title
  • UI\Window::hasBorders — Border Detection
  • UI\Window::hasMargin — Margin Detection
  • UI\Window::isFullScreen — Full Screen Detection
  • UI\Window::msg — Show Message Box
  • UI\Window::onClosing — Closing Callback
  • UI\Window::open — Open Dialog
  • UI\Window::save — Save Dialog
  • UI\Window::setBorders — Border Use
  • UI\Window::setFullScreen — Full Screen Use
  • UI\Window::setMargin — Margin Use
  • UI\Window::setSize — Set Size
  • UI\Window::setTitle — Window Title


Add a Control

  • « UI\Window
  • UI\Window::__construct »
  • PHP Manual
  • UI\Window
  • Add a Control

UI\Window::add

(PHP 7, UI 0.9.9)

UI\Window::add — Add a Control

Описание

public UI\Window::add ( UI\Control $control )

Shall add a Control to this Window

Список параметров

control

The Control to add

Возвращаемые значения


Construct a new Window

  • « UI\Window::add
  • UI\Window::error »
  • PHP Manual
  • UI\Window
  • Construct a new Window

UI\Window::__construct

(PHP 7, UI 0.9.9)

UI\Window::__construct — Construct a new Window

Описание

public UI\Window::__construct ( string $title , Size $size [, boolean $menu = false ] )

Shall construct a new Window

Список параметров

title

The title of the Window

size

The size of the Window

menu

Menu switch


Show Error Box

  • « UI\Window::__construct
  • UI\Window::getSize »
  • PHP Manual
  • UI\Window
  • Show Error Box

UI\Window::error

(PHP 7, UI 0.9.9)

UI\Window::error — Show Error Box

Описание

public UI\Window::error ( string $title , string $msg )

Shall show an error box

Список параметров

title

The title of the error box

msg

The message for the error box


Get Window Size

  • « UI\Window::error
  • UI\Window::getTitle »
  • PHP Manual
  • UI\Window
  • Get Window Size

UI\Window::getSize

(PHP 7, UI 0.9.9)

UI\Window::getSize — Get Window Size

Описание

public UI\Size UI\Window::getSize ( void )

Shall return the size of this Window

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get Title

  • « UI\Window::getSize
  • UI\Window::hasBorders »
  • PHP Manual
  • UI\Window
  • Get Title

UI\Window::getTitle

(PHP 7, UI 0.9.9)

UI\Window::getTitle — Get Title

Описание

public string UI\Window::getTitle ( void )

Shall retrieve the title of this Window

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Border Detection

  • « UI\Window::getTitle
  • UI\Window::hasMargin »
  • PHP Manual
  • UI\Window
  • Border Detection

UI\Window::hasBorders

(PHP 7, UI 0.9.9)

UI\Window::hasBorders — Border Detection

Описание

public bool UI\Window::hasBorders ( void )

Shall detect if borders are used on this Window

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Margin Detection

  • « UI\Window::hasBorders
  • UI\Window::isFullScreen »
  • PHP Manual
  • UI\Window
  • Margin Detection

UI\Window::hasMargin

(PHP 7, UI 0.9.9)

UI\Window::hasMargin — Margin Detection

Описание

public bool UI\Window::hasMargin ( void )

Shall detect if margins are used on this Window

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Full Screen Detection

  • « UI\Window::hasMargin
  • UI\Window::msg »
  • PHP Manual
  • UI\Window
  • Full Screen Detection

UI\Window::isFullScreen

(PHP 7, UI 0.9.9)

UI\Window::isFullScreen — Full Screen Detection

Описание

public bool UI\Window::isFullScreen ( void )

Shall detect if this Window us using the whole screen

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Show Message Box

  • « UI\Window::isFullScreen
  • UI\Window::onClosing »
  • PHP Manual
  • UI\Window
  • Show Message Box

UI\Window::msg

(PHP 7, UI 0.9.9)

UI\Window::msg — Show Message Box

Описание

public UI\Window::msg ( string $title , string $msg )

Shall show a message box

Список параметров

title

The title of the message box

msg

The message


Closing Callback

  • « UI\Window::msg
  • UI\Window::open »
  • PHP Manual
  • UI\Window
  • Closing Callback

UI\Window::onClosing

(PHP 7, UI 0.9.9)

UI\Window::onClosing — Closing Callback

Описание

protected int UI\Window::onClosing ( void )

Should gracefully destroy this Window

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Open Dialog

  • « UI\Window::onClosing
  • UI\Window::save »
  • PHP Manual
  • UI\Window
  • Open Dialog

UI\Window::open

(PHP 7, UI 0.9.9)

UI\Window::open — Open Dialog

Описание

public string UI\Window::open ( void )

Shall show an open file dialog

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the name of the file selected for opening


Save Dialog

  • « UI\Window::open
  • UI\Window::setBorders »
  • PHP Manual
  • UI\Window
  • Save Dialog

UI\Window::save

(PHP 7, UI 0.9.9)

UI\Window::save — Save Dialog

Описание

public string UI\Window::save ( void )

Shall show a save dialog

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Returns the file name selecting for saving


Border Use

  • « UI\Window::save
  • UI\Window::setFullScreen »
  • PHP Manual
  • UI\Window
  • Border Use

UI\Window::setBorders

(PHP 7, UI 0.9.9)

UI\Window::setBorders — Border Use

Описание

public UI\Window::setBorders ( boolean $borders )

Shall enable or disable the use of borders on this Window

Список параметров

borders


Full Screen Use

  • « UI\Window::setBorders
  • UI\Window::setMargin »
  • PHP Manual
  • UI\Window
  • Full Screen Use

UI\Window::setFullScreen

(PHP 7, UI 0.9.9)

UI\Window::setFullScreen — Full Screen Use

Описание

public UI\Window::setFullScreen ( boolean $full )

Shall enable or disable the use of the full screen for this Window

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

full


Margin Use

  • « UI\Window::setFullScreen
  • UI\Window::setSize »
  • PHP Manual
  • UI\Window
  • Margin Use

UI\Window::setMargin

(PHP 7, UI 0.9.9)

UI\Window::setMargin — Margin Use

Описание

public UI\Window::setMargin ( boolean $margin )

Shall enable or disable the use of margins for this Window

Список параметров

margin


Set Size

  • « UI\Window::setMargin
  • UI\Window::setTitle »
  • PHP Manual
  • UI\Window
  • Set Size

UI\Window::setSize

(PHP 7, UI 0.9.9)

UI\Window::setSize — Set Size

Описание

public UI\Window::setSize ( UI\Size $size )

Shall set the size of this Window

Список параметров

size

Возвращаемые значения


Window Title

  • « UI\Window::setSize
  • UI\Control »
  • PHP Manual
  • UI\Window
  • Window Title

UI\Window::setTitle

(PHP 7, UI 0.9.9)

UI\Window::setTitle — Window Title

Описание

public UI\Window::setTitle ( string $title )

Shall set the title for this Window

Список параметров

title

The new title


Control

(PHP 7, UI 0.9.9)

Введение

This is the closed base class for all UI Controls.

Обзор классов

final UI\Control {
/* Методы */
public destroy ( void )
public disable ( void )
public enable ( void )
public UI\Control getParent ( void )
public int getTopLevel ( void )
public hide ( void )
public bool isEnabled ( void )
public bool isVisible ( void )
public setParent ( UI\Control $parent )
public show ( void )
}

Содержание

  • UI\Control::destroy — Destroy Control
  • UI\Control::disable — Disable Control
  • UI\Control::enable — Enable Control
  • UI\Control::getParent — Get Parent Control
  • UI\Control::getTopLevel — Get Top Level
  • UI\Control::hide — Hide Control
  • UI\Control::isEnabled — Determine if Control is enabled
  • UI\Control::isVisible — Determine if Control is visible
  • UI\Control::setParent — Set Parent Control
  • UI\Control::show — Control Show


Destroy Control

  • « UI\Control
  • UI\Control::disable »
  • PHP Manual
  • UI\Control
  • Destroy Control

UI\Control::destroy

(PHP 7, UI 0.9.9)

UI\Control::destroy — Destroy Control

Описание

public UI\Control::destroy ( void )

Shall destroy this Control

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Disable Control

  • « UI\Control::destroy
  • UI\Control::enable »
  • PHP Manual
  • UI\Control
  • Disable Control

UI\Control::disable

(PHP 7, UI 0.9.9)

UI\Control::disable — Disable Control

Описание

public UI\Control::disable ( void )

Shall disable this Control

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Enable Control

  • « UI\Control::disable
  • UI\Control::getParent »
  • PHP Manual
  • UI\Control
  • Enable Control

UI\Control::enable

(PHP 7, UI 0.9.9)

UI\Control::enable — Enable Control

Описание

public UI\Control::enable ( void )

Shall enable this Control

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get Parent Control

  • « UI\Control::enable
  • UI\Control::getTopLevel »
  • PHP Manual
  • UI\Control
  • Get Parent Control

UI\Control::getParent

(PHP 7, UI 0.9.9)

UI\Control::getParent — Get Parent Control

Описание

public UI\Control UI\Control::getParent ( void )

Shall return the parent Control

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Get Top Level

  • « UI\Control::getParent
  • UI\Control::hide »
  • PHP Manual
  • UI\Control
  • Get Top Level

UI\Control::getTopLevel

(PHP 7, UI 0.9.9)

UI\Control::getTopLevel — Get Top Level

Описание

public int UI\Control::getTopLevel ( void )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Hide Control

  • « UI\Control::getTopLevel
  • UI\Control::isEnabled »
  • PHP Manual
  • UI\Control
  • Hide Control

UI\Control::hide

(PHP 7, UI 0.9.9)

UI\Control::hide — Hide Control

Описание

public UI\Control::hide ( void )

Shall hide this Control

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Determine if Control is enabled

  • « UI\Control::hide
  • UI\Control::isVisible »
  • PHP Manual
  • UI\Control
  • Determine if Control is enabled

UI\Control::isEnabled

(PHP 7, UI 0.9.9)

UI\Control::isEnabled — Determine if Control is enabled

Описание

public bool UI\Control::isEnabled ( void )

Shall detect if this Control is enabled

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Determine if Control is visible

  • « UI\Control::isEnabled
  • UI\Control::setParent »
  • PHP Manual
  • UI\Control
  • Determine if Control is visible

UI\Control::isVisible

(PHP 7, UI 0.9.9)

UI\Control::isVisible — Determine if Control is visible

Описание

public bool UI\Control::isVisible ( void )

Shall detect if this Control is visible

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Set Parent Control

  • « UI\Control::isVisible
  • UI\Control::show »
  • PHP Manual
  • UI\Control
  • Set Parent Control

UI\Control::setParent

(PHP 7, UI 0.9.9)

UI\Control::setParent — Set Parent Control

Описание

public UI\Control::setParent ( UI\Control $parent )

Shall set the parent Control of this Control

Список параметров

parent

The parent Control

Возвращаемые значения


Control Show

  • « UI\Control::setParent
  • UI\Menu »
  • PHP Manual
  • UI\Control
  • Control Show

UI\Control::show

(PHP 7, UI 0.9.9)

UI\Control::show — Control Show

Описание

public UI\Control::show ( void )

Shall show this Control

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Menu

(PHP 7, UI 0.9.9)

Введение

Menus must be constructed before the first Window, and can be shown on any Window

Обзор классов

UI\Menu {
/* Constructor */
public __construct ( string $name )
/* Методы */
public UI\MenuItem append ( string $name [, string $type = UI\MenuItem::class ] )
public UI\MenuItem appendAbout ([ string $type = UI\MenuItem::class ] )
public UI\MenuItem appendCheck ( string $name [, string $type = UI\MenuItem::class ] )
public UI\MenuItem appendPreferences ([ string $type = UI\MenuItem::class ] )
public UI\MenuItem appendQuit ([ string $type = UI\MenuItem::class ] )
public appendSeparator ( void )
}

Содержание

  • UI\Menu::append — Append Menu Item
  • UI\Menu::appendAbout — Append About Menu Item
  • UI\Menu::appendCheck — Append Checkable Menu Item
  • UI\Menu::appendPreferences — Append Preferences Menu Item
  • UI\Menu::appendQuit — Append Quit Menu Item
  • UI\Menu::appendSeparator — Append Menu Item Separator
  • UI\Menu::__construct — Construct a new Menu


Append Menu Item

  • « UI\Menu
  • UI\Menu::appendAbout »
  • PHP Manual
  • UI\Menu
  • Append Menu Item

UI\Menu::append

(PHP 7, UI 0.9.9)

UI\Menu::append — Append Menu Item

Описание

public UI\MenuItem UI\Menu::append ( string $name [, string $type = UI\MenuItem::class ] )

Shall append a new Menu Item

Список параметров

name

The name (text) for the new item

type

The type for the new item

Возвращаемые значения

A constructed object of the given type


Append About Menu Item

  • « UI\Menu::append
  • UI\Menu::appendCheck »
  • PHP Manual
  • UI\Menu
  • Append About Menu Item

UI\Menu::appendAbout

(PHP 7, UI 0.9.9)

UI\Menu::appendAbout — Append About Menu Item

Описание

public UI\MenuItem UI\Menu::appendAbout ([ string $type = UI\MenuItem::class ] )

Shall append an About menu item

Список параметров

type

The type for the new item

Возвращаемые значения

A constructed About menu item of the given type


Append Checkable Menu Item

  • « UI\Menu::appendAbout
  • UI\Menu::appendPreferences »
  • PHP Manual
  • UI\Menu
  • Append Checkable Menu Item

UI\Menu::appendCheck

(PHP 7, UI 0.9.9)

UI\Menu::appendCheck — Append Checkable Menu Item

Описание

public UI\MenuItem UI\Menu::appendCheck ( string $name [, string $type = UI\MenuItem::class ] )

Shall append a checkable menu item

Список параметров

name

The name (text) for the new item

type

The type for the new item

Возвращаемые значения

A constructed checkable menu item of the given type


Append Preferences Menu Item

  • « UI\Menu::appendCheck
  • UI\Menu::appendQuit »
  • PHP Manual
  • UI\Menu
  • Append Preferences Menu Item

UI\Menu::appendPreferences

(PHP 7, UI 0.9.9)

UI\Menu::appendPreferences — Append Preferences Menu Item

Описание

public UI\MenuItem UI\Menu::appendPreferences ([ string $type = UI\MenuItem::class ] )

Shall append a Preferences menu item

Список параметров

type

The type for the new item

Возвращаемые значения

A constructed Preferences menu item of the given type


Append Quit Menu Item

  • « UI\Menu::appendPreferences
  • UI\Menu::appendSeparator »
  • PHP Manual
  • UI\Menu
  • Append Quit Menu Item

UI\Menu::appendQuit

(PHP 7, UI 0.9.9)

UI\Menu::appendQuit — Append Quit Menu Item

Описание

public UI\MenuItem UI\Menu::appendQuit ([ string $type = UI\MenuItem::class ] )

Shall append a Quit menu item

Список параметров

type

The type for the new item

Возвращаемые значения

A constructed Quit menu item of the given type


Append Menu Item Separator

  • « UI\Menu::appendQuit
  • UI\Menu::__construct »
  • PHP Manual
  • UI\Menu
  • Append Menu Item Separator

UI\Menu::appendSeparator

(PHP 7, UI 0.9.9)

UI\Menu::appendSeparator — Append Menu Item Separator

Описание

public UI\Menu::appendSeparator ( void )

Shall append a separator

Список параметров

У этой функции нет параметров.


Construct a new Menu

  • « UI\Menu::appendSeparator
  • UI\MenuItem »
  • PHP Manual
  • UI\Menu
  • Construct a new Menu

UI\Menu::__construct

(PHP 7, UI 0.9.9)

UI\Menu::__construct — Construct a new Menu

Описание

public UI\Menu::__construct ( string $name )

Shall construct a new Menu

Список параметров

name

The name (text) for the menu


Menu Item

(PHP 7, UI 0.9.9)

Введение

Menu Items should only be created by the Menu

Обзор классов

UI\MenuItem {
/* Методы */
public disable ( void )
public enable ( void )
public bool isChecked ( void )
protected onClick ( void )
public setChecked ( boolean $checked )
}

Содержание

  • UI\MenuItem::disable — Disable Menu Item
  • UI\MenuItem::enable — Enable Menu Item
  • UI\MenuItem::isChecked — Detect Checked
  • UI\MenuItem::onClick — On Click Callback
  • UI\MenuItem::setChecked — Set Checked


Disable Menu Item

  • « UI\MenuItem
  • UI\MenuItem::enable »
  • PHP Manual
  • UI\MenuItem
  • Disable Menu Item

UI\MenuItem::disable

(PHP 7, UI 0.9.9)

UI\MenuItem::disable — Disable Menu Item

Описание

public UI\MenuItem::disable ( void )

Shall disable this Menu Item

Список параметров

У этой функции нет параметров.


Enable Menu Item

  • « UI\MenuItem::disable
  • UI\MenuItem::isChecked »
  • PHP Manual
  • UI\MenuItem
  • Enable Menu Item

UI\MenuItem::enable

(PHP 7, UI 0.9.9)

UI\MenuItem::enable — Enable Menu Item

Описание

public UI\MenuItem::enable ( void )

Shall enable this Menu Item

Список параметров

У этой функции нет параметров.


Detect Checked

  • « UI\MenuItem::enable
  • UI\MenuItem::onClick »
  • PHP Manual
  • UI\MenuItem
  • Detect Checked

UI\MenuItem::isChecked

(PHP 7, UI 0.9.9)

UI\MenuItem::isChecked — Detect Checked

Описание

public bool UI\MenuItem::isChecked ( void )

Shall detect if this Menu Item is checked

Список параметров

У этой функции нет параметров.


On Click Callback

  • « UI\MenuItem::isChecked
  • UI\MenuItem::setChecked »
  • PHP Manual
  • UI\MenuItem
  • On Click Callback

UI\MenuItem::onClick

(PHP 7, UI 0.9.9)

UI\MenuItem::onClick — On Click Callback

Описание

protected UI\MenuItem::onClick ( void )

Shall be executed when this Menu Item is clicked

Список параметров

У этой функции нет параметров.


Set Checked

  • « UI\MenuItem::onClick
  • UI\Area »
  • PHP Manual
  • UI\MenuItem
  • Set Checked

UI\MenuItem::setChecked

(PHP 7, UI 0.9.9)

UI\MenuItem::setChecked — Set Checked

Описание

public UI\MenuItem::setChecked ( boolean $checked )

Shall set the checked status of this Menu Item

Список параметров

checked

The new status


Area

(PHP 7, UI 0.9.9)

Введение

An Area represents a canvas which can be used to draw, and respond to mouse and key events.

Обзор классов

UI\Area extends UI\Control {
/* Constants */
const integer Ctrl ;
const integer Alt ;
const integer Shift ;
const integer Super ;
const integer Down ;
const integer Up ;
/* Методы */
protected onDraw ( UI\Draw\Pen $pen , UI\Size $areaSize , UI\Point $clipPoint , UI\Size $clipSize )
protected onKey ( string $key , integer $ext , integer $flags )
protected onMouse ( UI\Point $areaPoint , UI\Size $areaSize , integer $flags )
public redraw ( void )
public scrollTo ( UI\Point $point , UI\Size $size )
public setSize ( UI\Size $size )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Area::Ctrl

Shall be set in the modifiers passed to key and mouse events when the CTRL key is active

UI\Area::Alt

Shall be set in the modifiers passed to key and mouse events when the ALT key is active

UI\Area::Shift

Shall be set in the modifiers passed to key and mouse events when the SHIFT key is active

UI\Area::Super

UI\Area::Down

Shall be set in the modifiers passed to key and mouse events

UI\Area::Up

Shall be set in the modifiers passed to key and mouse events

Содержание

  • UI\Area::onDraw — Draw Callback
  • UI\Area::onKey — Key Callback
  • UI\Area::onMouse — Mouse Callback
  • UI\Area::redraw — Redraw Area
  • UI\Area::scrollTo — Area Scroll
  • UI\Area::setSize — Set Size


Draw Callback

  • « UI\Area
  • UI\Area::onKey »
  • PHP Manual
  • UI\Area
  • Draw Callback

UI\Area::onDraw

(PHP 7, UI 0.9.9)

UI\Area::onDraw — Draw Callback

Описание

protected UI\Area::onDraw ( UI\Draw\Pen $pen , UI\Size $areaSize , UI\Point $clipPoint , UI\Size $clipSize )

Shall be invoked when this Area requires redrawing

Список параметров

pen

A Pen suitable for drawing in this Area

areaSize

The size of the Area

clipPoint

The clip point of the Area

clipSize

The clip size of the Area


Key Callback

  • « UI\Area::onDraw
  • UI\Area::onMouse »
  • PHP Manual
  • UI\Area
  • Key Callback

UI\Area::onKey

(PHP 7, UI 0.9.9)

UI\Area::onKey — Key Callback

Описание

protected UI\Area::onKey ( string $key , integer $ext , integer $flags )

Shall be executed on key events

Список параметров

key

The key pressed

ext

The extended key pressed

flags

Event modifiers

Возвращаемые значения


Mouse Callback

  • « UI\Area::onKey
  • UI\Area::redraw »
  • PHP Manual
  • UI\Area
  • Mouse Callback

UI\Area::onMouse

(PHP 7, UI 0.9.9)

UI\Area::onMouse — Mouse Callback

Описание

protected UI\Area::onMouse ( UI\Point $areaPoint , UI\Size $areaSize , integer $flags )

Shall be executed on mouse events

Список параметров

areaPoint

The co-ordinates of the event

areaSize

The size of the area of the event

flags

Event modifiers


Redraw Area

  • « UI\Area::onMouse
  • UI\Area::scrollTo »
  • PHP Manual
  • UI\Area
  • Redraw Area

UI\Area::redraw

(PHP 7, UI 0.9.9)

UI\Area::redraw — Redraw Area

Описание

public UI\Area::redraw ( void )

Requests that this Area is redrawn

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Area Scroll

  • « UI\Area::redraw
  • UI\Area::setSize »
  • PHP Manual
  • UI\Area
  • Area Scroll

UI\Area::scrollTo

(PHP 7, UI 0.9.9)

UI\Area::scrollTo — Area Scroll

Описание

public UI\Area::scrollTo ( UI\Point $point , UI\Size $size )

Scroll this Area

Список параметров

point

The point to scroll to

size

The size of the scroll pane


Set Size

  • « UI\Area::scrollTo
  • UI\Executor »
  • PHP Manual
  • UI\Area
  • Set Size

UI\Area::setSize

(PHP 7, UI 0.9.9)

UI\Area::setSize — Set Size

Описание

public UI\Area::setSize ( UI\Size $size )

Sets the size of this Area

Список параметров

size

The new size


Execution Scheduler

(PHP 7, UI 2.0.0)

Введение

This facility schedules repetitive execution of a callback, useful for animations and other such activities.

Обзор классов

abstract UI\Executor {
/* Constructor */
public __construct ( void )
public __construct ( integer $microseconds )
public __construct ( integer $seconds , integer $microseconds )
/* Методы */
public void kill ( void )
abstract protected void onExecute ( void )
public bool setInterval ( integer $microseconds )
public bool setInterval ( integer $seconds , integer $microseconds )
}

Содержание

  • UI\Executor::__construct — Construct a new Executor
  • UI\Executor::kill — Stop Executor
  • UI\Executor::onExecute — Execution Callback
  • UI\Executor::setInterval — Interval Manipulation


Construct a new Executor

  • « UI\Executor
  • UI\Executor::kill »
  • PHP Manual
  • UI\Executor
  • Construct a new Executor

UI\Executor::__construct

(PHP 7, UI 2.0.0)

UI\Executor::__construct — Construct a new Executor

Описание

public UI\Executor::__construct ( void )
public UI\Executor::__construct ( integer $microseconds )
public UI\Executor::__construct ( integer $seconds , integer $microseconds )

Shall construct an executor with the given interval, will not start executing until main loop is entered

Список параметров

seconds

Seconds between executions

microseconds

Microseconds between executions


Stop Executor

  • « UI\Executor::__construct
  • UI\Executor::onExecute »
  • PHP Manual
  • UI\Executor
  • Stop Executor

UI\Executor::kill

(PHP 7, UI 2.0.0)

UI\Executor::kill — Stop Executor

Описание

public void UI\Executor::kill ( void )

Shall stop an executor, the executor cannot be restarted

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Execution Callback

  • « UI\Executor::kill
  • UI\Executor::setInterval »
  • PHP Manual
  • UI\Executor
  • Execution Callback

UI\Executor::onExecute

(PHP 7, UI 2.0.0)

UI\Executor::onExecute — Execution Callback

Описание

abstract protected void UI\Executor::onExecute ( void )

Shall be repetitively queued for execution in the main thread

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Interval Manipulation

  • « UI\Executor::onExecute
  • UI\Controls\Tab »
  • PHP Manual
  • UI\Executor
  • Interval Manipulation

UI\Executor::setInterval

(PHP 7, UI 2.0.0)

UI\Executor::setInterval — Interval Manipulation

Описание

public bool UI\Executor::setInterval ( integer $microseconds )
public bool UI\Executor::setInterval ( integer $seconds , integer $microseconds )

Shall set the new interval. An interval of 0 will pause the executor until a new interval has been set

Список параметров

seconds

microseconds

Возвращаемые значения

Indication of success


Tab Control

(PHP 7, UI 0.9.9)

Введение

A Tab can contain many pages of Controls, each with a title, each selectable by the user.

Обзор классов

UI\Controls\Tab extends UI\Control {
/* Свойства */
protected $controls ;
/* Методы */
public integer append ( string $name , UI\Control $control )
public boolean delete ( integer $index )
public bool hasMargin ( integer $page )
public insertAt ( string $name , integer $page , UI\Control $control )
public integer pages ( void )
public setMargin ( integer $page , boolean $margin )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Свойства

controls

Contains controls, should not be manipulated directly

Содержание

  • UI\Controls\Tab::append — Append Page
  • UI\Controls\Tab::delete — Delete Page
  • UI\Controls\Tab::hasMargin — Margin Detection
  • UI\Controls\Tab::insertAt — Insert Page
  • UI\Controls\Tab::pages — Page Count
  • UI\Controls\Tab::setMargin — Set Margin


Append Page

  • « UI\Controls\Tab
  • UI\Controls\Tab::delete »
  • PHP Manual
  • UI\Controls\Tab
  • Append Page

UI\Controls\Tab::append

(PHP 7, UI 0.9.9)

UI\Controls\Tab::append — Append Page

Описание

public integer UI\Controls\Tab::append ( string $name , UI\Control $control )

Append a new page to this Tab

Список параметров

name

The name for the new page

control

The control for the new page

Возвращаемые значения

Shall return the index of the appended control, may be 0


Delete Page

  • « UI\Controls\Tab::append
  • UI\Controls\Tab::hasMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Delete Page

UI\Controls\Tab::delete

(PHP 7, UI 0.9.9)

UI\Controls\Tab::delete — Delete Page

Описание

public boolean UI\Controls\Tab::delete ( integer $index )

Shall remove the selected page from this Tab

Список параметров

index

The index of the page to remove

Возвращаемые значения

Indication of success


Margin Detection

  • « UI\Controls\Tab::delete
  • UI\Controls\Tab::insertAt »
  • PHP Manual
  • UI\Controls\Tab
  • Margin Detection

UI\Controls\Tab::hasMargin

(PHP 7, UI 0.9.9)

UI\Controls\Tab::hasMargin — Margin Detection

Описание

public bool UI\Controls\Tab::hasMargin ( integer $page )

Shall detect if the given page has a margin.

Список параметров

page

The index of the page

Возвращаемые значения


Insert Page

  • « UI\Controls\Tab::hasMargin
  • UI\Controls\Tab::pages »
  • PHP Manual
  • UI\Controls\Tab
  • Insert Page

UI\Controls\Tab::insertAt

(PHP 7, UI 0.9.9)

UI\Controls\Tab::insertAt — Insert Page

Описание

public UI\Controls\Tab::insertAt ( string $name , integer $page , UI\Control $control )

Shall insert a new page into this Tab

Список параметров

name

The name for the new page

page

The index to perform the insertion before

control

The control for the new page


Page Count

  • « UI\Controls\Tab::insertAt
  • UI\Controls\Tab::setMargin »
  • PHP Manual
  • UI\Controls\Tab
  • Page Count

UI\Controls\Tab::pages

(PHP 7, UI 0.9.9)

UI\Controls\Tab::pages — Page Count

Описание

public integer UI\Controls\Tab::pages ( void )

Shall return the number of pages in this Tab

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The number of pages in this Tab


Set Margin

  • « UI\Controls\Tab::pages
  • UI\Controls\Check »
  • PHP Manual
  • UI\Controls\Tab
  • Set Margin

UI\Controls\Tab::setMargin

(PHP 7, UI 0.9.9)

UI\Controls\Tab::setMargin — Set Margin

Описание

public UI\Controls\Tab::setMargin ( integer $page , boolean $margin )

Shall enable or disable margins on the selected page

Список параметров

page

The page to select

margin

Margin switch


Check Control

(PHP 7, UI 0.9.9)

Введение

A Check is a labelled checkable box

Обзор классов

UI\Controls\Check extends UI\Control {
/* Constructor */
public __construct ( string $text )
/* Методы */
public string getText ( void )
public bool isChecked ( void )
protected onToggle ( void )
public setChecked ( boolean $checked )
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Check::__construct — Construct a new Check
  • UI\Controls\Check::getText — Get Text
  • UI\Controls\Check::isChecked — Checked Detection
  • UI\Controls\Check::onToggle — Toggle Callback
  • UI\Controls\Check::setChecked — Set Checked
  • UI\Controls\Check::setText — Set Text


Construct a new Check

  • « UI\Controls\Check
  • UI\Controls\Check::getText »
  • PHP Manual
  • UI\Controls\Check
  • Construct a new Check

UI\Controls\Check::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Check::__construct — Construct a new Check

Описание

public UI\Controls\Check::__construct ( string $text )

Shall construct a new Check

Список параметров

text

The text (label) for the Check box


Get Text

  • « UI\Controls\Check::__construct
  • UI\Controls\Check::isChecked »
  • PHP Manual
  • UI\Controls\Check
  • Get Text

UI\Controls\Check::getText

(PHP 7, UI 0.9.9)

UI\Controls\Check::getText — Get Text

Описание

public string UI\Controls\Check::getText ( void )

Shall return the text (label) for this Check

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current text (label)


Checked Detection

  • « UI\Controls\Check::getText
  • UI\Controls\Check::onToggle »
  • PHP Manual
  • UI\Controls\Check
  • Checked Detection

UI\Controls\Check::isChecked

(PHP 7, UI 0.9.9)

UI\Controls\Check::isChecked — Checked Detection

Описание

public bool UI\Controls\Check::isChecked ( void )

Shall detect the status of this Check

Список параметров

У этой функции нет параметров.


Toggle Callback

  • « UI\Controls\Check::isChecked
  • UI\Controls\Check::setChecked »
  • PHP Manual
  • UI\Controls\Check
  • Toggle Callback

UI\Controls\Check::onToggle

(PHP 7, UI 0.9.9)

UI\Controls\Check::onToggle — Toggle Callback

Описание

protected UI\Controls\Check::onToggle ( void )

Shall be executed when the status of this Check is changed

Список параметров

У этой функции нет параметров.


Set Checked

  • « UI\Controls\Check::onToggle
  • UI\Controls\Check::setText »
  • PHP Manual
  • UI\Controls\Check
  • Set Checked

UI\Controls\Check::setChecked

(PHP 7, UI 0.9.9)

UI\Controls\Check::setChecked — Set Checked

Описание

public UI\Controls\Check::setChecked ( boolean $checked )

Shall change the status of this Check

Список параметров

checked

The new status


Set Text

  • « UI\Controls\Check::setChecked
  • UI\Controls\Button »
  • PHP Manual
  • UI\Controls\Check
  • Set Text

UI\Controls\Check::setText

(PHP 7, UI 0.9.9)

UI\Controls\Check::setText — Set Text

Описание

public UI\Controls\Check::setText ( string $text )

Shall set the text (label) for this Check

Список параметров

text

The new text (label)


Button Control

(PHP 7, UI 0.9.9)

Введение

Represents a labelled clickable button

Обзор классов

UI\Controls\Button extends UI\Control {
/* Constructor */
public __construct ( string $text )
/* Методы */
public string getText ( void )
protected onClick ( void )
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Button::__construct — Construct a new Button
  • UI\Controls\Button::getText — Get Text
  • UI\Controls\Button::onClick — Click Handler
  • UI\Controls\Button::setText — Set Text


Construct a new Button

  • « UI\Controls\Button
  • UI\Controls\Button::getText »
  • PHP Manual
  • UI\Controls\Button
  • Construct a new Button

UI\Controls\Button::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Button::__construct — Construct a new Button

Описание

public UI\Controls\Button::__construct ( string $text )

Shall construct a new Button

Список параметров

text

The text (label) for this Button


Get Text

  • « UI\Controls\Button::__construct
  • UI\Controls\Button::onClick »
  • PHP Manual
  • UI\Controls\Button
  • Get Text

UI\Controls\Button::getText

(PHP 7, UI 0.9.9)

UI\Controls\Button::getText — Get Text

Описание

public string UI\Controls\Button::getText ( void )

Shall retrieve the text (label) for this Button

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current text (label)


Click Handler

  • « UI\Controls\Button::getText
  • UI\Controls\Button::setText »
  • PHP Manual
  • UI\Controls\Button
  • Click Handler

UI\Controls\Button::onClick

(PHP 7, UI 0.9.9)

UI\Controls\Button::onClick — Click Handler

Описание

protected UI\Controls\Button::onClick ( void )

Shall be executed when this Button is clicked

Список параметров

У этой функции нет параметров.


Set Text

  • « UI\Controls\Button::onClick
  • UI\Controls\ColorButton »
  • PHP Manual
  • UI\Controls\Button
  • Set Text

UI\Controls\Button::setText

(PHP 7, UI 0.9.9)

UI\Controls\Button::setText — Set Text

Описание

public UI\Controls\Button::setText ( string $text )

Shall set the text (label) for this Button

Список параметров

text

The new text (label)


ColorButton Control

(PHP 7, UI 0.9.9)

Введение

A Color Button is a button which displays a color picker when clicked

Обзор классов

UI\Controls\ColorButton extends UI\Control {
/* Методы */
public UI\Color getColor ( void )
protected onChange ( void )
public setColor ( UI\Draw\Color $color )
public setColor ( integer $color )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\ColorButton::getColor — Get Color
  • UI\Controls\ColorButton::onChange — Change Handler
  • UI\Controls\ColorButton::setColor — Set Color


Get Color

  • « UI\Controls\ColorButton
  • UI\Controls\ColorButton::onChange »
  • PHP Manual
  • UI\Controls\ColorButton
  • Get Color

UI\Controls\ColorButton::getColor

(PHP 7, UI 0.9.9)

UI\Controls\ColorButton::getColor — Get Color

Описание

public UI\Color UI\Controls\ColorButton::getColor ( void )

Shall retrieve the currently selected Color

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Change Handler

  • « UI\Controls\ColorButton::getColor
  • UI\Controls\ColorButton::setColor »
  • PHP Manual
  • UI\Controls\ColorButton
  • Change Handler

UI\Controls\ColorButton::onChange

(PHP 7, UI 0.9.9)

UI\Controls\ColorButton::onChange — Change Handler

Описание

protected UI\Controls\ColorButton::onChange ( void )

Shall be executed when the selected Color is changed

Список параметров

У этой функции нет параметров.


Set Color

  • « UI\Controls\ColorButton::onChange
  • UI\Controls\Label »
  • PHP Manual
  • UI\Controls\ColorButton
  • Set Color

UI\Controls\ColorButton::setColor

(PHP 7, UI 0.9.9)

UI\Controls\ColorButton::setColor — Set Color

Описание

public UI\Controls\ColorButton::setColor ( UI\Draw\Color $color )
public UI\Controls\ColorButton::setColor ( integer $color )

Shall set the currently selected Color

Список параметров

color

The new color


Label Control

(PHP 7, UI 0.9.9)

Введение

A Label is a single line of text, meant to identify, for the user, some element of the interface.

Обзор классов

UI\Controls\Label extends UI\Control {
/* Constructor */
public __construct ( string $text )
/* Методы */
public string getText ( void )
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Label::__construct — Construct a new Label
  • UI\Controls\Label::getText — Get Text
  • UI\Controls\Label::setText — Set Text


Construct a new Label

  • « UI\Controls\Label
  • UI\Controls\Label::getText »
  • PHP Manual
  • UI\Controls\Label
  • Construct a new Label

UI\Controls\Label::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Label::__construct — Construct a new Label

Описание

public UI\Controls\Label::__construct ( string $text )

Shall construct a new Label

Список параметров

text

The text for this label


Get Text

  • « UI\Controls\Label::__construct
  • UI\Controls\Label::setText »
  • PHP Manual
  • UI\Controls\Label
  • Get Text

UI\Controls\Label::getText

(PHP 7, UI 0.9.9)

UI\Controls\Label::getText — Get Text

Описание

public string UI\Controls\Label::getText ( void )

Shall return the current text for this Label

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Set Text

  • « UI\Controls\Label::getText
  • UI\Controls\Entry »
  • PHP Manual
  • UI\Controls\Label
  • Set Text

UI\Controls\Label::setText

(PHP 7, UI 0.9.9)

UI\Controls\Label::setText — Set Text

Описание

public UI\Controls\Label::setText ( string $text )

Shall set the text for this Label

Список параметров

text

The new text


Entry Control

(PHP 7, UI 0.9.9)

Введение

An Entry is a text entry control, suitable for entering plain text, passwords, or search terms.

Обзор классов

UI\Controls\Entry extends UI\Control {
/* Constants */
const integer Normal ;
const integer Password ;
const integer Search ;
/* Constructor */
public __construct ([ integer $type = UI\Controls\Entry::Normal ] )
/* Методы */
public string getText ( void )
public bool isReadOnly ( void )
protected onChange ( void )
public setReadOnly ( boolean $readOnly )
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Controls\Entry::Normal

A normal single line entry

UI\Controls\Entry::Password

A password entry

UI\Controls\Entry::Search

A search entry

Содержание

  • UI\Controls\Entry::__construct — Construct a new Entry
  • UI\Controls\Entry::getText — Get Text
  • UI\Controls\Entry::isReadOnly — Detect Read Only
  • UI\Controls\Entry::onChange — Change Handler
  • UI\Controls\Entry::setReadOnly — Set Read Only
  • UI\Controls\Entry::setText — Set Text


Construct a new Entry

  • « UI\Controls\Entry
  • UI\Controls\Entry::getText »
  • PHP Manual
  • UI\Controls\Entry
  • Construct a new Entry

UI\Controls\Entry::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Entry::__construct — Construct a new Entry

Описание

public UI\Controls\Entry::__construct ([ integer $type = UI\Controls\Entry::Normal ] )

Construct a new entry of the given type

Список параметров

type

Entry::Normal, Entry::Password, or Entry::Search


Get Text

  • « UI\Controls\Entry::__construct
  • UI\Controls\Entry::isReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Get Text

UI\Controls\Entry::getText

(PHP 7, UI 0.9.9)

UI\Controls\Entry::getText — Get Text

Описание

public string UI\Controls\Entry::getText ( void )

Shall return the current text from this Entry

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current text


Detect Read Only

  • « UI\Controls\Entry::getText
  • UI\Controls\Entry::onChange »
  • PHP Manual
  • UI\Controls\Entry
  • Detect Read Only

UI\Controls\Entry::isReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\Entry::isReadOnly — Detect Read Only

Описание

public bool UI\Controls\Entry::isReadOnly ( void )

Shall detect if this Entry is read only

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Change Handler

  • « UI\Controls\Entry::isReadOnly
  • UI\Controls\Entry::setReadOnly »
  • PHP Manual
  • UI\Controls\Entry
  • Change Handler

UI\Controls\Entry::onChange

(PHP 7, UI 0.9.9)

UI\Controls\Entry::onChange — Change Handler

Описание

protected UI\Controls\Entry::onChange ( void )

Shall be executed when the text in this Entry changes

Список параметров

У этой функции нет параметров.


Set Read Only

  • « UI\Controls\Entry::onChange
  • UI\Controls\Entry::setText »
  • PHP Manual
  • UI\Controls\Entry
  • Set Read Only

UI\Controls\Entry::setReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\Entry::setReadOnly — Set Read Only

Описание

public UI\Controls\Entry::setReadOnly ( boolean $readOnly )

Shall enable or disable read only for this Entry

Список параметров

readOnly


Set Text

  • « UI\Controls\Entry::setReadOnly
  • UI\Controls\MultilineEntry »
  • PHP Manual
  • UI\Controls\Entry
  • Set Text

UI\Controls\Entry::setText

(PHP 7, UI 0.9.9)

UI\Controls\Entry::setText — Set Text

Описание

public UI\Controls\Entry::setText ( string $text )

Shall set the text for this Entry

Список параметров

text

The new text


MultilineEntry Control

(PHP 7, UI 0.9.9)

Введение

A Multiline Entry is a text entry control able to hold multiple lines of text, with or without wrapping.

Обзор классов

UI\Controls\MultilineEntry extends UI\Control {
/* Constants */
const integer Wrap ;
const integer NoWrap ;
/* Constructor */
public __construct ([ integer $type ] )
/* Методы */
public append ( string $text )
public string getText ( void )
public bool isReadOnly ( void )
protected onChange ( void )
public setReadOnly ( boolean $readOnly )
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Controls\MultilineEntry::Wrap

Allow lines to wrap

UI\Controls\MultilineEntry::NoWrap

Do not allow lines to wrap

Содержание

  • UI\Controls\MultilineEntry::append — Append Text
  • UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry
  • UI\Controls\MultilineEntry::getText — Get Text
  • UI\Controls\MultilineEntry::isReadOnly — Read Only Detection
  • UI\Controls\MultilineEntry::onChange — Change Handler
  • UI\Controls\MultilineEntry::setReadOnly — Set Read Only
  • UI\Controls\MultilineEntry::setText — Set Text


Append Text

  • « UI\Controls\MultilineEntry
  • UI\Controls\MultilineEntry::__construct »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Append Text

UI\Controls\MultilineEntry::append

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::append — Append Text

Описание

public UI\Controls\MultilineEntry::append ( string $text )

Shall append the given text to the text in this Multiline Entry

Список параметров

text

The text to append


Construct a new Multiline Entry

  • « UI\Controls\MultilineEntry::append
  • UI\Controls\MultilineEntry::getText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Construct a new Multiline Entry

UI\Controls\MultilineEntry::__construct

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::__construct — Construct a new Multiline Entry

Описание

public UI\Controls\MultilineEntry::__construct ([ integer $type ] )

Shall construct a new Multiline Entry of the given type

Список параметров

type

MultilineEntry::Wrap or MultilineEntry::NoWrap


Get Text

  • « UI\Controls\MultilineEntry::__construct
  • UI\Controls\MultilineEntry::isReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Get Text

UI\Controls\MultilineEntry::getText

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::getText — Get Text

Описание

public string UI\Controls\MultilineEntry::getText ( void )

Shall return the text in this Multiline Entry

Список параметров

У этой функции нет параметров.


Read Only Detection

  • « UI\Controls\MultilineEntry::getText
  • UI\Controls\MultilineEntry::onChange »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Read Only Detection

UI\Controls\MultilineEntry::isReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::isReadOnly — Read Only Detection

Описание

public bool UI\Controls\MultilineEntry::isReadOnly ( void )

Shall detect if this Multiline Entry is read only

Список параметров

У этой функции нет параметров.


Change Handler

  • « UI\Controls\MultilineEntry::isReadOnly
  • UI\Controls\MultilineEntry::setReadOnly »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Change Handler

UI\Controls\MultilineEntry::onChange

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::onChange — Change Handler

Описание

protected UI\Controls\MultilineEntry::onChange ( void )

Shall be executed when the text in this Multiline Entry is changed

Список параметров

У этой функции нет параметров.


Set Read Only

  • « UI\Controls\MultilineEntry::onChange
  • UI\Controls\MultilineEntry::setText »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Set Read Only

UI\Controls\MultilineEntry::setReadOnly

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::setReadOnly — Set Read Only

Описание

public UI\Controls\MultilineEntry::setReadOnly ( boolean $readOnly )

Shall enable or disable read only on this Multiline Entry

Список параметров

readOnly


Set Text

  • « UI\Controls\MultilineEntry::setReadOnly
  • UI\Controls\Spin »
  • PHP Manual
  • UI\Controls\MultilineEntry
  • Set Text

UI\Controls\MultilineEntry::setText

(PHP 7, UI 0.9.9)

UI\Controls\MultilineEntry::setText — Set Text

Описание

public UI\Controls\MultilineEntry::setText ( string $text )

Shall set the text in this Multiline Entry

Список параметров

text

The new text


Spin Control

(PHP 7, UI 0.9.9)

Введение

A Spin box is a text box with an up-down control which changes the integer value in the box, within a defined range

Обзор классов

UI\Controls\Spin extends UI\Control {
/* Constructor */
public __construct ( integer $min , integer $max )
/* Методы */
public int getValue ( void )
protected onChange ( void )
public setValue ( integer $value )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Spin::__construct — Construct a new Spin
  • UI\Controls\Spin::getValue — Get Value
  • UI\Controls\Spin::onChange — Change Handler
  • UI\Controls\Spin::setValue — Set Value


Construct a new Spin

  • « UI\Controls\Spin
  • UI\Controls\Spin::getValue »
  • PHP Manual
  • UI\Controls\Spin
  • Construct a new Spin

UI\Controls\Spin::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Spin::__construct — Construct a new Spin

Описание

public UI\Controls\Spin::__construct ( integer $min , integer $max )

Constructs a new Spin with the given range

Список параметров

min

The minimum value allowed

max

The maximum value allowed


Get Value

  • « UI\Controls\Spin::__construct
  • UI\Controls\Spin::onChange »
  • PHP Manual
  • UI\Controls\Spin
  • Get Value

UI\Controls\Spin::getValue

(PHP 7, UI 0.9.9)

UI\Controls\Spin::getValue — Get Value

Описание

public int UI\Controls\Spin::getValue ( void )

Get the value in this Spin

Список параметров

У этой функции нет параметров.


Change Handler

  • « UI\Controls\Spin::getValue
  • UI\Controls\Spin::setValue »
  • PHP Manual
  • UI\Controls\Spin
  • Change Handler

UI\Controls\Spin::onChange

(PHP 7, UI 0.9.9)

UI\Controls\Spin::onChange — Change Handler

Описание

protected UI\Controls\Spin::onChange ( void )

Shall be executed when the value in this Spin changes

Список параметров

У этой функции нет параметров.


Set Value

  • « UI\Controls\Spin::onChange
  • UI\Controls\Slider »
  • PHP Manual
  • UI\Controls\Spin
  • Set Value

UI\Controls\Spin::setValue

(PHP 7, UI 0.9.9)

UI\Controls\Spin::setValue — Set Value

Описание

public UI\Controls\Spin::setValue ( integer $value )

Set the value in this Spin

Список параметров

value

The new value


Slider Control

(PHP 7, UI 0.9.9)

Введение

A Slider is a control which represents a range, and a current value in the range. The sliding element of the control (sometimes called the "thumb") reflects the value, and can be adjusted within the range.

Обзор классов

UI\Controls\Slider extends UI\Control {
/* Constructor */
public __construct ( integer $min , integer $max )
/* Методы */
public integer getValue ( void )
protected onChange ( void )
public setValue ( integer $value )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Slider::__construct — Construct a new Slider
  • UI\Controls\Slider::getValue — Get Value
  • UI\Controls\Slider::onChange — Change Handler
  • UI\Controls\Slider::setValue — Set Value


Construct a new Slider

  • « UI\Controls\Slider
  • UI\Controls\Slider::getValue »
  • PHP Manual
  • UI\Controls\Slider
  • Construct a new Slider

UI\Controls\Slider::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Slider::__construct — Construct a new Slider

Описание

public UI\Controls\Slider::__construct ( integer $min , integer $max )

Construct a new Slider with the given range

Список параметров

min

The minimum allowed value

max

The maximum allowed value


Get Value

  • « UI\Controls\Slider::__construct
  • UI\Controls\Slider::onChange »
  • PHP Manual
  • UI\Controls\Slider
  • Get Value

UI\Controls\Slider::getValue

(PHP 7, UI 0.9.9)

UI\Controls\Slider::getValue — Get Value

Описание

public integer UI\Controls\Slider::getValue ( void )

Get the value from this Slider

Список параметров

У этой функции нет параметров.


Change Handler

  • « UI\Controls\Slider::getValue
  • UI\Controls\Slider::setValue »
  • PHP Manual
  • UI\Controls\Slider
  • Change Handler

UI\Controls\Slider::onChange

(PHP 7, UI 0.9.9)

UI\Controls\Slider::onChange — Change Handler

Описание

protected UI\Controls\Slider::onChange ( void )

Shall be executed when the value of this Slider changes

Список параметров

У этой функции нет параметров.


Set Value

  • « UI\Controls\Slider::onChange
  • UI\Controls\Progress »
  • PHP Manual
  • UI\Controls\Slider
  • Set Value

UI\Controls\Slider::setValue

(PHP 7, UI 0.9.9)

UI\Controls\Slider::setValue — Set Value

Описание

public UI\Controls\Slider::setValue ( integer $value )

Shall set the value for this Slider

Список параметров

value

The new value


Progress Control

(PHP 7, UI 0.9.9)

Введение

A Progress control is a familiar Progress bar: It represents progress as a percentage, with a possible range of 0 to 100 (inclusive).

Обзор классов

UI\Controls\Progress extends UI\Control {
/* Методы */
public int getValue ( void )
public setValue ( integer $value )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Progress::getValue — Get Value
  • UI\Controls\Progress::setValue — Set Value


Get Value

  • « UI\Controls\Progress
  • UI\Controls\Progress::setValue »
  • PHP Manual
  • UI\Controls\Progress
  • Get Value

UI\Controls\Progress::getValue

(PHP 7, UI 0.9.9)

UI\Controls\Progress::getValue — Get Value

Описание

public int UI\Controls\Progress::getValue ( void )

Shall retrieve the current value of this Progress bar

Список параметров

У этой функции нет параметров.


Set Value

  • « UI\Controls\Progress::getValue
  • UI\Controls\Separator »
  • PHP Manual
  • UI\Controls\Progress
  • Set Value

UI\Controls\Progress::setValue

(PHP 7, UI 0.9.9)

UI\Controls\Progress::setValue — Set Value

Описание

public UI\Controls\Progress::setValue ( integer $value )

Shall set the value for this Progress bar

Список параметров

value

An integer between 0 and 100 (inclusive)


Control Separator

(PHP 7, UI 0.9.9)

Введение

A Separator represents a control separator, it has no other function.

Обзор классов

UI\Controls\Separator extends UI\Control {
/* Constants */
const integer Horizontal ;
const integer Vertical ;
/* Constructor */
public __construct ([ integer $type = UI\Controls\Separator::Horizontal ] )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Controls\Separator::Horizontal

A Horizontal Separator

UI\Controls\Separator::Vertical

A Vertical Separator

Содержание

  • UI\Controls\Separator::__construct — Construct a new Separator


Construct a new Separator

  • « UI\Controls\Separator
  • UI\Controls\Combo »
  • PHP Manual
  • UI\Controls\Separator
  • Construct a new Separator

UI\Controls\Separator::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Separator::__construct — Construct a new Separator

Описание

public UI\Controls\Separator::__construct ([ integer $type = UI\Controls\Separator::Horizontal ] )

Shall construct a new Separator of the given type

Список параметров

type

Separator::Horizonal or Separator::Vertical


Combo Control

(PHP 7, UI 0.9.9)

Введение

A Combo control represents a list of options, like the familiar select HTML element.

Обзор классов

UI\Controls\Combo extends UI\Control {
/* Методы */
public append ( string $text )
public integer getSelected ( void )
protected onSelected ( void )
public setSelected ( integer $index )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Combo::append — Append Option
  • UI\Controls\Combo::getSelected — Get Selected Option
  • UI\Controls\Combo::onSelected — Selected Handler
  • UI\Controls\Combo::setSelected — Set Selected Option


Append Option

  • « UI\Controls\Combo
  • UI\Controls\Combo::getSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Append Option

UI\Controls\Combo::append

(PHP 7, UI 0.9.9)

UI\Controls\Combo::append — Append Option

Описание

public UI\Controls\Combo::append ( string $text )

Append an option to this Combo

Список параметров

text

The text for the new option


Get Selected Option

  • « UI\Controls\Combo::append
  • UI\Controls\Combo::onSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Get Selected Option

UI\Controls\Combo::getSelected

(PHP 7, UI 0.9.9)

UI\Controls\Combo::getSelected — Get Selected Option

Описание

public integer UI\Controls\Combo::getSelected ( void )

Shall retrieve the index of the option selected in this Combo

Список параметров

У этой функции нет параметров.


Selected Handler

  • « UI\Controls\Combo::getSelected
  • UI\Controls\Combo::setSelected »
  • PHP Manual
  • UI\Controls\Combo
  • Selected Handler

UI\Controls\Combo::onSelected

(PHP 7, UI 0.9.9)

UI\Controls\Combo::onSelected — Selected Handler

Описание

protected UI\Controls\Combo::onSelected ( void )

Shall be executed when an option is selected in this Combo

Список параметров

У этой функции нет параметров.


Set Selected Option

  • « UI\Controls\Combo::onSelected
  • UI\Controls\EditableCombo »
  • PHP Manual
  • UI\Controls\Combo
  • Set Selected Option

UI\Controls\Combo::setSelected

(PHP 7, UI 0.9.9)

UI\Controls\Combo::setSelected — Set Selected Option

Описание

public UI\Controls\Combo::setSelected ( integer $index )

Shall set the currently selected option in this Combo

Список параметров

index

The index of the option to select


EdiableCombo Control

(PHP 7, UI 0.9.9)

Введение

An Editable Combo is a Combo which allows the user to enter custom options

Обзор классов

UI\Controls\EditableCombo extends UI\Control {
/* Методы */
public append ( string $text )
public string getText ( void )
protected onChange ( void )
public setText ( string $text )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\EditableCombo::append — Append Option
  • UI\Controls\EditableCombo::getText — Get Text
  • UI\Controls\EditableCombo::onChange — Change Handler
  • UI\Controls\EditableCombo::setText — Set Text


Append Option

  • « UI\Controls\EditableCombo
  • UI\Controls\EditableCombo::getText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Append Option

UI\Controls\EditableCombo::append

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::append — Append Option

Описание

public UI\Controls\EditableCombo::append ( string $text )

Shall append a new option to this Editable Combo

Список параметров

text

The text for the new option


Get Text

  • « UI\Controls\EditableCombo::append
  • UI\Controls\EditableCombo::onChange »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Get Text

UI\Controls\EditableCombo::getText

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::getText — Get Text

Описание

public string UI\Controls\EditableCombo::getText ( void )

Get the value of the currently selected option in this Editable Combo

Список параметров

У этой функции нет параметров.


Change Handler

  • « UI\Controls\EditableCombo::getText
  • UI\Controls\EditableCombo::setText »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Change Handler

UI\Controls\EditableCombo::onChange

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::onChange — Change Handler

Описание

protected UI\Controls\EditableCombo::onChange ( void )

Shall be executed when the value of this Editable Combobox changes

Список параметров

У этой функции нет параметров.


Set Text

  • « UI\Controls\EditableCombo::onChange
  • UI\Controls\Radio »
  • PHP Manual
  • UI\Controls\EditableCombo
  • Set Text

UI\Controls\EditableCombo::setText

(PHP 7, UI 0.9.9)

UI\Controls\EditableCombo::setText — Set Text

Описание

public UI\Controls\EditableCombo::setText ( string $text )

Shall set the text of the currently selected option in this Editable Combo

Список параметров

text

The new text


Radio Control

(PHP 7, UI 0.9.9)

Введение

A Radio is similar to the radio input type familiar from HTML

Обзор классов

UI\Controls\Radio extends UI\Control {
/* Методы */
public append ( string $text )
public integer getSelected ( void )
protected onSelected ( void )
public setSelected ( integer $index )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Содержание

  • UI\Controls\Radio::append — Append Option
  • UI\Controls\Radio::getSelected — Get Selected Option
  • UI\Controls\Radio::onSelected — Selected Handler
  • UI\Controls\Radio::setSelected — Set Selected Option


Append Option

  • « UI\Controls\Radio
  • UI\Controls\Radio::getSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Append Option

UI\Controls\Radio::append

(PHP 7, UI 0.9.9)

UI\Controls\Radio::append — Append Option

Описание

public UI\Controls\Radio::append ( string $text )

Shall append a new option to this Radio

Список параметров

text

The text (label) for the option


Get Selected Option

  • « UI\Controls\Radio::append
  • UI\Controls\Radio::onSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Get Selected Option

UI\Controls\Radio::getSelected

(PHP 7, UI 0.9.9)

UI\Controls\Radio::getSelected — Get Selected Option

Описание

public integer UI\Controls\Radio::getSelected ( void )

Shall retrieve the index of the currently selected option in this Radio

Список параметров

У этой функции нет параметров.


Selected Handler

  • « UI\Controls\Radio::getSelected
  • UI\Controls\Radio::setSelected »
  • PHP Manual
  • UI\Controls\Radio
  • Selected Handler

UI\Controls\Radio::onSelected

(PHP 7, UI 0.9.9)

UI\Controls\Radio::onSelected — Selected Handler

Описание

protected UI\Controls\Radio::onSelected ( void )

Shall be executed when the option selected in this Radio changes

Список параметров

У этой функции нет параметров.


Set Selected Option

  • « UI\Controls\Radio::onSelected
  • UI\Controls\Picker »
  • PHP Manual
  • UI\Controls\Radio
  • Set Selected Option

UI\Controls\Radio::setSelected

(PHP 7, UI 0.9.9)

UI\Controls\Radio::setSelected — Set Selected Option

Описание

public UI\Controls\Radio::setSelected ( integer $index )

Shall set the currently selected option in this Radio

Список параметров

index

The index of the option to select


Picker Control

(PHP 7, UI 0.9.9)

Введение

A Picker represents a button which when clicked presents a native Date/Time/DateTime Picker interface to the user.

Обзор классов

UI\Controls\Picker extends UI\Control {
/* Constants */
const integer Date ;
const integer Time ;
const integer DateTime ;
/* Constructor */
public __construct ([ integer $type = UI\Controls\Picker::Date ] )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Controls\Picker::Date

A Date Picker

UI\Controls\Picker::Time

A Time Picker

UI\Controls\Picker::DateTime

A Date and Time Picker

Содержание

  • UI\Controls\Picker::__construct — Construct a new Picker


Construct a new Picker

  • « UI\Controls\Picker
  • UI\Controls\Form »
  • PHP Manual
  • UI\Controls\Picker
  • Construct a new Picker

UI\Controls\Picker::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Picker::__construct — Construct a new Picker

Описание

public UI\Controls\Picker::__construct ([ integer $type = UI\Controls\Picker::Date ] )

Construct a new Picker of the given type

Список параметров

type

Picker::Date, Picker::Time, or Picker::DateTime


Control Form (Arrangement)

(PHP 7, UI 0.9.9)

Введение

A Form is a control which allows the arrangement of other controls into a familiar layout (the form).

Обзор классов

UI\Controls\Form extends UI\Control {
/* Свойства */
protected $controls ;
/* Методы */
public integer append ( string $label , UI\Control $control [, boolean $stretchy = false ] )
public boolean delete ( integer $index )
public bool isPadded ( void )
public setPadded ( boolean $padded )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Свойства

controls

Contains controls, should not be manipulated directly

Содержание

  • UI\Controls\Form::append — Append Control
  • UI\Controls\Form::delete — Delete Control
  • UI\Controls\Form::isPadded — Padding Detection
  • UI\Controls\Form::setPadded — Set Padding


Append Control

  • « UI\Controls\Form
  • UI\Controls\Form::delete »
  • PHP Manual
  • UI\Controls\Form
  • Append Control

UI\Controls\Form::append

(PHP 7, UI 0.9.9)

UI\Controls\Form::append — Append Control

Описание

public integer UI\Controls\Form::append ( string $label , UI\Control $control [, boolean $stretchy = false ] )

Shall append the control to the form, and set the label

Список параметров

label

The text for the label

control

A control

stretchy

Should be set true to stretch the control

Возвращаемые значения

Shall return the index of the appended control, may be 0


Delete Control

  • « UI\Controls\Form::append
  • UI\Controls\Form::isPadded »
  • PHP Manual
  • UI\Controls\Form
  • Delete Control

UI\Controls\Form::delete

(PHP 7, UI 0.9.9)

UI\Controls\Form::delete — Delete Control

Описание

public boolean UI\Controls\Form::delete ( integer $index )

Shall delete the control at the given index in this Form

Список параметров

index

The index of the control to remove

Возвращаемые значения

Indication of succcess


Padding Detection

  • « UI\Controls\Form::delete
  • UI\Controls\Form::setPadded »
  • PHP Manual
  • UI\Controls\Form
  • Padding Detection

UI\Controls\Form::isPadded

(PHP 7, UI 0.9.9)

UI\Controls\Form::isPadded — Padding Detection

Описание

public bool UI\Controls\Form::isPadded ( void )

Shall detect if padding is enabled on this Form

Список параметров

У этой функции нет параметров.


Set Padding

  • « UI\Controls\Form::isPadded
  • UI\Controls\Grid »
  • PHP Manual
  • UI\Controls\Form
  • Set Padding

UI\Controls\Form::setPadded

(PHP 7, UI 0.9.9)

UI\Controls\Form::setPadded — Set Padding

Описание

public UI\Controls\Form::setPadded ( boolean $padded )

Shall enable or disable padding on this Form

Список параметров

padded


Control Grid (Arrangement)

(PHP 7, UI 0.9.9)

Введение

A Grid is a control which is allows the arrangement of children into a grid

Обзор классов

UI\Controls\Grid extends UI\Control {
/* Constants */
const integer Fill ;
const integer Start ;
const integer Center ;
const integer End ;
const integer Leading ;
const integer Top ;
const integer Trailing ;
const integer Bottom ;
/* Свойства */
protected $controls ;
/* Методы */
public append ( UI\Control $control , integer $left , integer $top , integer $xspan , integer $yspan , boolean $hexpand , integer $halign , boolean $vexpand , integer $valign )
public bool isPadded ( void )
public setPadded ( boolean $padding )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Предопределенные константы

UI\Controls\Grid::Fill

UI\Controls\Grid::Start

UI\Controls\Grid::Center

UI\Controls\Grid::End

UI\Controls\Grid::Leading

UI\Controls\Grid::Top

UI\Controls\Grid::Trailing

UI\Controls\Grid::Bottom

Свойства

controls

Contains controls, should not be manipulated directly

Содержание

  • UI\Controls\Grid::append — Append Control
  • UI\Controls\Grid::isPadded — Padding Detection
  • UI\Controls\Grid::setPadded — Set Padding


Append Control

  • « UI\Controls\Grid
  • UI\Controls\Grid::isPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Append Control

UI\Controls\Grid::append

(PHP 7, UI 0.9.9)

UI\Controls\Grid::append — Append Control

Описание

public UI\Controls\Grid::append ( UI\Control $control , integer $left , integer $top , integer $xspan , integer $yspan , boolean $hexpand , integer $halign , boolean $vexpand , integer $valign )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

control

The Control to append

left

top

xspan

yspan

hexpand

halign

vexpand

valign

Возвращаемые значения


Padding Detection

  • « UI\Controls\Grid::append
  • UI\Controls\Grid::setPadded »
  • PHP Manual
  • UI\Controls\Grid
  • Padding Detection

UI\Controls\Grid::isPadded

(PHP 7, UI 0.9.9)

UI\Controls\Grid::isPadded — Padding Detection

Описание

public bool UI\Controls\Grid::isPadded ( void )

Shall detect if padding is enabled on this Grid

Список параметров

У этой функции нет параметров.


Set Padding

  • « UI\Controls\Grid::isPadded
  • UI\Controls\Group »
  • PHP Manual
  • UI\Controls\Grid
  • Set Padding

UI\Controls\Grid::setPadded

(PHP 7, UI 0.9.9)

UI\Controls\Grid::setPadded — Set Padding

Описание

public UI\Controls\Grid::setPadded ( boolean $padding )

Shall enable or disable padding for this Grid

Список параметров

padding


Control Group (Arrangement)

(PHP 7, UI 0.9.9)

Введение

A Group is a titled container for child controls

Обзор классов

UI\Controls\Group extends UI\Control {
/* Свойства */
protected $controls ;
/* Constructor */
public __construct ( string $title )
/* Методы */
public append ( UI\Control $control )
public string getTitle ( void )
public bool hasMargin ( void )
public setMargin ( boolean $margin )
public setTitle ( string $title )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Свойства

controls

Contains controls, should not be manipulated directly

Содержание

  • UI\Controls\Group::append — Append Control
  • UI\Controls\Group::__construct — Construct a new Group
  • UI\Controls\Group::getTitle — Get Title
  • UI\Controls\Group::hasMargin — Margin Detection
  • UI\Controls\Group::setMargin — Set Margin
  • UI\Controls\Group::setTitle — Set Title


Append Control

  • « UI\Controls\Group
  • UI\Controls\Group::__construct »
  • PHP Manual
  • UI\Controls\Group
  • Append Control

UI\Controls\Group::append

(Информация о версии неизвестна, возможно, только в SVN)

UI\Controls\Group::append — Append Control

Описание

public UI\Controls\Group::append ( UI\Control $control )

Shall append a control to this Group

Список параметров

control

The control to append


Construct a new Group

  • « UI\Controls\Group::append
  • UI\Controls\Group::getTitle »
  • PHP Manual
  • UI\Controls\Group
  • Construct a new Group

UI\Controls\Group::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Group::__construct — Construct a new Group

Описание

public UI\Controls\Group::__construct ( string $title )

Shall construct a new Group with the given title

Список параметров

title

The text for the title label


Get Title

  • « UI\Controls\Group::__construct
  • UI\Controls\Group::hasMargin »
  • PHP Manual
  • UI\Controls\Group
  • Get Title

UI\Controls\Group::getTitle

(PHP 7, UI 0.9.9)

UI\Controls\Group::getTitle — Get Title

Описание

public string UI\Controls\Group::getTitle ( void )

Shall return the current title for this Group

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current title


Margin Detection

  • « UI\Controls\Group::getTitle
  • UI\Controls\Group::setMargin »
  • PHP Manual
  • UI\Controls\Group
  • Margin Detection

UI\Controls\Group::hasMargin

(PHP 7, UI 0.9.9)

UI\Controls\Group::hasMargin — Margin Detection

Описание

public bool UI\Controls\Group::hasMargin ( void )

Shall detect if this Group has a margin

Список параметров

У этой функции нет параметров.


Set Margin

  • « UI\Controls\Group::hasMargin
  • UI\Controls\Group::setTitle »
  • PHP Manual
  • UI\Controls\Group
  • Set Margin

UI\Controls\Group::setMargin

(PHP 7, UI 0.9.9)

UI\Controls\Group::setMargin — Set Margin

Описание

public UI\Controls\Group::setMargin ( boolean $margin )

Shall enable or disable margins for this Group

Список параметров

margin


Set Title

  • « UI\Controls\Group::setMargin
  • UI\Controls\Box »
  • PHP Manual
  • UI\Controls\Group
  • Set Title

UI\Controls\Group::setTitle

(PHP 7, UI 0.9.9)

UI\Controls\Group::setTitle — Set Title

Описание

public UI\Controls\Group::setTitle ( string $title )

Shall set the title for this Group

Список параметров

title

The text for the new title


Control Box (Arrangement)

(PHP 7, UI 0.9.9)

Введение

A Box allows the arrangement of other controls

Обзор классов

UI\Controls\Box extends UI\Control {
/* Constants */
const integer Vertical ;
const integer Horizontal ;
/* Свойства */
protected $controls ;
/* Constructor */
public __construct ([ integer $orientation = UI\Controls\Box::Horizontal ] )
/* Методы */
public integer append ( Control $control [, boolean $stretchy = false ] )
public boolean delete ( integer $index )
public integer getOrientation ( void )
public bool isPadded ( void )
public setPadded ( boolean $padded )
/* Наследуемые методы */
public UI\Control::destroy ( void )
public UI\Control::disable ( void )
public UI\Control::enable ( void )
public UI\Control UI\Control::getParent ( void )
public int UI\Control::getTopLevel ( void )
public UI\Control::hide ( void )
public bool UI\Control::isEnabled ( void )
public bool UI\Control::isVisible ( void )
public UI\Control::setParent ( UI\Control $parent )
public UI\Control::show ( void )
}

Свойства

controls

Contains controls, should not be manipulated directly

Предопределенные константы

UI\Controls\Box::Vertical

UI\Controls\Box::Horizontal

Содержание

  • UI\Controls\Box::append — Append Control
  • UI\Controls\Box::__construct — Construct a new Box
  • UI\Controls\Box::delete — Delete Control
  • UI\Controls\Box::getOrientation — Get Orientation
  • UI\Controls\Box::isPadded — Padding Detection
  • UI\Controls\Box::setPadded — Set Padding


Append Control

  • « UI\Controls\Box
  • UI\Controls\Box::__construct »
  • PHP Manual
  • UI\Controls\Box
  • Append Control

UI\Controls\Box::append

(PHP 7, UI 0.9.9)

UI\Controls\Box::append — Append Control

Описание

public integer UI\Controls\Box::append ( Control $control [, boolean $stretchy = false ] )

Shall append the given control to this Box

Список параметров

control

The control to append

stretchy

Set true to stretch the control

Возвращаемые значения

Shall return the index of the appended control, may be 0


Construct a new Box

  • « UI\Controls\Box::append
  • UI\Controls\Box::delete »
  • PHP Manual
  • UI\Controls\Box
  • Construct a new Box

UI\Controls\Box::__construct

(PHP 7, UI 0.9.9)

UI\Controls\Box::__construct — Construct a new Box

Описание

public UI\Controls\Box::__construct ([ integer $orientation = UI\Controls\Box::Horizontal ] )

Shall construct a new box

Список параметров

orientation

Box::Horizontal or Box::Vertical


Delete Control

  • « UI\Controls\Box::__construct
  • UI\Controls\Box::getOrientation »
  • PHP Manual
  • UI\Controls\Box
  • Delete Control

UI\Controls\Box::delete

(PHP 7, UI 0.9.9)

UI\Controls\Box::delete — Delete Control

Описание

public boolean UI\Controls\Box::delete ( integer $index )

Shall delete the control at the given index from this Box

Список параметров

index

The index of the control to delete

Возвращаемые значения

Indication of success


Get Orientation

  • « UI\Controls\Box::delete
  • UI\Controls\Box::isPadded »
  • PHP Manual
  • UI\Controls\Box
  • Get Orientation

UI\Controls\Box::getOrientation

(PHP 7, UI 0.9.9)

UI\Controls\Box::getOrientation — Get Orientation

Описание

public integer UI\Controls\Box::getOrientation ( void )

Shall retrieve the orientation of this Box

Список параметров

У этой функции нет параметров.


Padding Detection

  • « UI\Controls\Box::getOrientation
  • UI\Controls\Box::setPadded »
  • PHP Manual
  • UI\Controls\Box
  • Padding Detection

UI\Controls\Box::isPadded

(PHP 7, UI 0.9.9)

UI\Controls\Box::isPadded — Padding Detection

Описание

public bool UI\Controls\Box::isPadded ( void )

Shall detect if padding is enabled on this Box

Список параметров

У этой функции нет параметров.


Set Padding

  • « UI\Controls\Box::isPadded
  • UI\Draw\Pen »
  • PHP Manual
  • UI\Controls\Box
  • Set Padding

UI\Controls\Box::setPadded

(PHP 7, UI 0.9.9)

UI\Controls\Box::setPadded — Set Padding

Описание

public UI\Controls\Box::setPadded ( boolean $padded )

Shall enable or disable padding on this Box

Список параметров

padded


Draw Pen

(PHP 7, UI 0.9.9)

Введение

The Pen is passed to the Area Draw event handler, it is used for clipping, filling, stroking, and writing to Draw Paths.

Обзор классов

final UI\Draw\Pen {
/* Методы */
public clip ( UI\Draw\Path $path )
public fill ( UI\Draw\Path $path , UI\Draw\Brush $with )
public fill ( UI\Draw\Path $path , UI\Draw\Color $with )
public fill ( UI\Draw\Path $path , integer $with )
public restore ( void )
public save ( void )
public stroke ( UI\Draw\Path $path , UI\Draw\Brush $with , UI\Draw\Stroke $stroke )
public stroke ( UI\Draw\Path $path , UI\Draw\Color $with , UI\Draw\Stroke $stroke )
public stroke ( UI\Draw\Path $path , integer $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 — Clip a Path
  • UI\Draw\Pen::fill — Fill a Path
  • UI\Draw\Pen::restore — Restore
  • UI\Draw\Pen::save — Save
  • UI\Draw\Pen::stroke — Stroke a Path
  • UI\Draw\Pen::transform — Matrix Transform
  • UI\Draw\Pen::write — Draw Text at Point


Clip a Path

  • « UI\Draw\Pen
  • UI\Draw\Pen::fill »
  • PHP Manual
  • UI\Draw\Pen
  • Clip a Path

UI\Draw\Pen::clip

(PHP 7, UI 0.9.9)

UI\Draw\Pen::clip — Clip a Path

Описание

public UI\Draw\Pen::clip ( UI\Draw\Path $path )

Shall clip the given Path

Список параметров

path

The path to clip


Fill a Path

  • « UI\Draw\Pen::clip
  • UI\Draw\Pen::restore »
  • PHP Manual
  • UI\Draw\Pen
  • Fill a Path

UI\Draw\Pen::fill

(PHP 7, UI 0.9.9)

UI\Draw\Pen::fill — Fill a Path

Описание

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 , integer $with )

Shall fill the given path

Список параметров

path

The path to fill

with

The color or brush to fill with


Restore

  • « UI\Draw\Pen::fill
  • UI\Draw\Pen::save »
  • PHP Manual
  • UI\Draw\Pen
  • Restore

UI\Draw\Pen::restore

(PHP 7, UI 0.9.9)

UI\Draw\Pen::restore — Restore

Описание

public UI\Draw\Pen::restore ( void )

Shall restore a previously saved Pen

Список параметров

У этой функции нет параметров.


Save

  • « UI\Draw\Pen::restore
  • UI\Draw\Pen::stroke »
  • PHP Manual
  • UI\Draw\Pen
  • Save

UI\Draw\Pen::save

(PHP 7, UI 0.9.9)

UI\Draw\Pen::save — Save

Описание

public UI\Draw\Pen::save ( void )

Shall save the Pen

Список параметров

У этой функции нет параметров.


Stroke a Path

  • « UI\Draw\Pen::save
  • UI\Draw\Pen::transform »
  • PHP Manual
  • UI\Draw\Pen
  • Stroke a Path

UI\Draw\Pen::stroke

(PHP 7, UI 0.9.9)

UI\Draw\Pen::stroke — Stroke a Path

Описание

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 , integer $with , UI\Draw\Stroke $stroke )

Shall stroke the given path

Список параметров

path

The path to stroke

with

The color or brush to stroke with

stroke

The configuration of the stroke


Matrix Transform

  • « UI\Draw\Pen::stroke
  • UI\Draw\Pen::write »
  • PHP Manual
  • UI\Draw\Pen
  • Matrix Transform

UI\Draw\Pen::transform

(PHP 7, UI 0.9.9)

UI\Draw\Pen::transform — Matrix Transform

Описание

public UI\Draw\Pen::transform ( UI\Draw\Matrix $matrix )

Shall perform matrix transformation

Список параметров

matrix

The matrix to use


Draw Text at Point

  • « UI\Draw\Pen::transform
  • UI\Draw\Path »
  • PHP Manual
  • UI\Draw\Pen
  • Draw Text at Point

UI\Draw\Pen::write

(PHP 7, UI 0.9.9)

UI\Draw\Pen::write — Draw Text at Point

Описание

public UI\Draw\Pen::write ( UI\Point $point , UI\Draw\Text\Layout $layout )

Shall draw the given text layout at the given point

Список параметров

point

The point to perform the drawing

layout

The layout of the text to draw


Draw Path

(PHP 7, UI 0.9.9)

Введение

A Draw Path guides a Draw Pen, telling the Pen where to draw on an Area.

Обзор классов

UI\Draw\Path {
/* Constants */
const integer Winding ;
const integer Alternate ;
/* Constructor */
public __construct ([ integer $mode = UI\Draw\Path::Winding ] )
/* Методы */
public addRectangle ( UI\Point $point , UI\Size $size )
public arcTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public bezierTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public closeFigure ( void )
public end ( void )
public lineTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
public newFigure ( UI\Point $point )
public newFigureWithArc ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )
}

Предопределенные константы

UI\Draw\Path::Winding

This is the default draw path mode

UI\Draw\Path::Alternate

This is the alternate draw path mode

Содержание

  • UI\Draw\Path::addRectangle — Draw a Rectangle
  • UI\Draw\Path::arcTo — Draw an Arc
  • UI\Draw\Path::bezierTo — Draw Bezier Curve
  • UI\Draw\Path::closeFigure — Close Figure
  • UI\Draw\Path::__construct — Construct a new Path
  • UI\Draw\Path::end — Finalize Path
  • UI\Draw\Path::lineTo — Draw a Line
  • UI\Draw\Path::newFigure — Draw Figure
  • UI\Draw\Path::newFigureWithArc — Draw Figure with Arc


Draw a Rectangle

  • « UI\Draw\Path
  • UI\Draw\Path::arcTo »
  • PHP Manual
  • UI\Draw\Path
  • Draw a Rectangle

UI\Draw\Path::addRectangle

(PHP 7, UI 0.9.9)

UI\Draw\Path::addRectangle — Draw a Rectangle

Описание

public UI\Draw\Path::addRectangle ( UI\Point $point , UI\Size $size )

Shall map the path of a rectangle of the given size, at the given point

Список параметров

point

The point to begin the shape

size

The size of the rectangle


Draw an Arc

  • « UI\Draw\Path::addRectangle
  • UI\Draw\Path::bezierTo »
  • PHP Manual
  • UI\Draw\Path
  • Draw an Arc

UI\Draw\Path::arcTo

(PHP 7, UI 0.9.9)

UI\Draw\Path::arcTo — Draw an Arc

Описание

public UI\Draw\Path::arcTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Shall map the path for an arc

Список параметров

point

The point to begin mapping

radius

The radius of the arc

angle

The angle of the arc

sweep

The sweep of the arc

negative

Возвращаемые значения


Draw Bezier Curve

  • « UI\Draw\Path::arcTo
  • UI\Draw\Path::closeFigure »
  • PHP Manual
  • UI\Draw\Path
  • Draw Bezier Curve

UI\Draw\Path::bezierTo

(PHP 7, UI 0.9.9)

UI\Draw\Path::bezierTo — Draw Bezier Curve

Описание

public UI\Draw\Path::bezierTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Shall draw a bezier curve

Список параметров

point

The point at which to begin mapping

radius

The radius of the curve

angle

The angle of the curve

sweep

The sweep of the curve

negative


Close Figure

  • « UI\Draw\Path::bezierTo
  • UI\Draw\Path::__construct »
  • PHP Manual
  • UI\Draw\Path
  • Close Figure

UI\Draw\Path::closeFigure

(PHP 7, UI 0.9.9)

UI\Draw\Path::closeFigure — Close Figure

Описание

public UI\Draw\Path::closeFigure ( void )

Shall close the current figure

Список параметров

У этой функции нет параметров.


Construct a new Path

  • « UI\Draw\Path::closeFigure
  • UI\Draw\Path::end »
  • PHP Manual
  • UI\Draw\Path
  • Construct a new Path

UI\Draw\Path::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Path::__construct — Construct a new Path

Описание

public UI\Draw\Path::__construct ([ integer $mode = UI\Draw\Path::Winding ] )

Shall construct a new path in the given mode

Список параметров

mode

Path::Winding or Path::Alternate


Finalize Path

  • « UI\Draw\Path::__construct
  • UI\Draw\Path::lineTo »
  • PHP Manual
  • UI\Draw\Path
  • Finalize Path

UI\Draw\Path::end

(PHP 7, UI 0.9.9)

UI\Draw\Path::end — Finalize Path

Описание

public UI\Draw\Path::end ( void )

Shall finalize this Path

Список параметров

У этой функции нет параметров.


Draw a Line

  • « UI\Draw\Path::end
  • UI\Draw\Path::newFigure »
  • PHP Manual
  • UI\Draw\Path
  • Draw a Line

UI\Draw\Path::lineTo

(PHP 7, UI 0.9.9)

UI\Draw\Path::lineTo — Draw a Line

Описание

public UI\Draw\Path::lineTo ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Shall map the path for a line

Список параметров

point

The point to begin mapping

radius

angle

sweep

negative

Возвращаемые значения


Draw Figure

  • « UI\Draw\Path::lineTo
  • UI\Draw\Path::newFigureWithArc »
  • PHP Manual
  • UI\Draw\Path
  • Draw Figure

UI\Draw\Path::newFigure

(PHP 7, UI 0.9.9)

UI\Draw\Path::newFigure — Draw Figure

Описание

public UI\Draw\Path::newFigure ( UI\Point $point )

Shall map a new figure at the given point

Список параметров

point

The point to begin mapping


Draw Figure with Arc

  • « UI\Draw\Path::newFigure
  • UI\Draw\Matrix »
  • PHP Manual
  • UI\Draw\Path
  • Draw Figure with Arc

UI\Draw\Path::newFigureWithArc

(PHP 7, UI 0.9.9)

UI\Draw\Path::newFigureWithArc — Draw Figure with Arc

Описание

public UI\Draw\Path::newFigureWithArc ( UI\Point $point , float $radius , float $angle , float $sweep , float $negative )

Список параметров

point

radius

angle

sweep

negative

Возвращаемые значения


Draw Matrix

(PHP 7, UI 0.9.9)

Введение

Обзор классов

UI\Draw\Matrix {
/* Методы */
public invert ( void )
public bool isInvertible ( void )
public UI\Draw\Matrix multiply ( UI\Draw\Matrix $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 — Invert Matrix
  • UI\Draw\Matrix::isInvertible — Invertible Detection
  • UI\Draw\Matrix::multiply — Multiply Matrix
  • UI\Draw\Matrix::rotate — Rotate Matrix
  • UI\Draw\Matrix::scale — Scale Matrix
  • UI\Draw\Matrix::skew — Skew Matrix
  • UI\Draw\Matrix::translate — Translate Matrix


Invert Matrix

  • « UI\Draw\Matrix
  • UI\Draw\Matrix::isInvertible »
  • PHP Manual
  • UI\Draw\Matrix
  • Invert Matrix

UI\Draw\Matrix::invert

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::invert — Invert Matrix

Описание

public UI\Draw\Matrix::invert ( void )

Shall invert this matrix

Список параметров

У этой функции нет параметров.


Invertible Detection

  • « UI\Draw\Matrix::invert
  • UI\Draw\Matrix::multiply »
  • PHP Manual
  • UI\Draw\Matrix
  • Invertible Detection

UI\Draw\Matrix::isInvertible

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::isInvertible — Invertible Detection

Описание

public bool UI\Draw\Matrix::isInvertible ( void )

Shall detect if this Matrix may be inverted

Список параметров

У этой функции нет параметров.


Multiply Matrix

  • « UI\Draw\Matrix::isInvertible
  • UI\Draw\Matrix::rotate »
  • PHP Manual
  • UI\Draw\Matrix
  • Multiply Matrix

UI\Draw\Matrix::multiply

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::multiply — Multiply Matrix

Описание

public UI\Draw\Matrix UI\Draw\Matrix::multiply ( UI\Draw\Matrix $matrix )

Shall multiply this matrix with the given matrix

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The new Matrix


Rotate Matrix

  • « UI\Draw\Matrix::multiply
  • UI\Draw\Matrix::scale »
  • PHP Manual
  • UI\Draw\Matrix
  • Rotate Matrix

UI\Draw\Matrix::rotate

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::rotate — Rotate Matrix

Описание

public UI\Draw\Matrix::rotate ( UI\Point $point , float $amount )

Shall rotate this Matrix

Список параметров

point

amount


Scale Matrix

  • « UI\Draw\Matrix::rotate
  • UI\Draw\Matrix::skew »
  • PHP Manual
  • UI\Draw\Matrix
  • Scale Matrix

UI\Draw\Matrix::scale

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::scale — Scale Matrix

Описание

public UI\Draw\Matrix::scale ( UI\Point $center , UI\Point $point )

Shall scale this Matrix

Список параметров

center

point


Skew Matrix

  • « UI\Draw\Matrix::scale
  • UI\Draw\Matrix::translate »
  • PHP Manual
  • UI\Draw\Matrix
  • Skew Matrix

UI\Draw\Matrix::skew

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::skew — Skew Matrix

Описание

public UI\Draw\Matrix::skew ( UI\Point $point , UI\Point $amount )

Shall skew this Matrix

Список параметров

point

amount


Translate Matrix

  • « UI\Draw\Matrix::skew
  • UI\Draw\Color »
  • PHP Manual
  • UI\Draw\Matrix
  • Translate Matrix

UI\Draw\Matrix::translate

(PHP 7, UI 0.9.9)

UI\Draw\Matrix::translate — Translate Matrix

Описание

public UI\Draw\Matrix::translate ( UI\Point $point )

Shall translate this Matrix

Список параметров

point


Color Representation

(PHP 7, UI 0.9.9)

Введение

Represents RGBA colours, individual channels are accessible via public properties.

Обзор классов

UI\Draw\Color {
/* Constants */
const integer Red ;
const integer Green ;
const integer Blue ;
const integer Alpha ;
/* Свойства */
public $r ;
public $g ;
public $b ;
public $a ;
/* Constructor */
public __construct ([ UI\Draw\Color $color ] )
public __construct ([ integer $color ] )
/* Методы */
public float getChannel ( integer $channel )
public void setChannel ( integer $channel , float $value )
}

Свойства

r

Provides access to the red channel

g

Provides access to the green channel

b

Provides access to the blue channel

a

Provides access to the alpha channel

Предопределенные константы

UI\Draw\Color::Red

Identifies the red channel

UI\Draw\Color::Green

Identifies the green channel

UI\Draw\Color::Blue

Identifies the blue channel

UI\Draw\Color::Alpha

Identifies the alpha channel

Содержание

  • UI\Draw\Color::__construct — Construct new Color
  • UI\Draw\Color::getChannel — Color Manipulation
  • UI\Draw\Color::setChannel — Color Manipulation


Construct new Color

  • « UI\Draw\Color
  • UI\Draw\Color::getChannel »
  • PHP Manual
  • UI\Draw\Color
  • Construct new Color

UI\Draw\Color::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Color::__construct — Construct new Color

Описание

public UI\Draw\Color::__construct ([ UI\Draw\Color $color ] )
public UI\Draw\Color::__construct ([ integer $color ] )

Shall construct a new color

Список параметров

color

May be UI\Draw\Color or RRGGBBAA


Color Manipulation

  • « UI\Draw\Color::__construct
  • UI\Draw\Color::setChannel »
  • PHP Manual
  • UI\Draw\Color
  • Color Manipulation

UI\Draw\Color::getChannel

(PHP 7, UI 0.9.9)

UI\Draw\Color::getChannel — Color Manipulation

Описание

public float UI\Draw\Color::getChannel ( integer $channel )

Shall retrieve the value for a channel

Список параметров

channel

Constant channel identity

Возвращаемые значения

The current value of the requested channel


Color Manipulation

  • « UI\Draw\Color::getChannel
  • UI\Draw\Stroke »
  • PHP Manual
  • UI\Draw\Color
  • Color Manipulation

UI\Draw\Color::setChannel

(PHP 7, UI 0.9.9)

UI\Draw\Color::setChannel — Color Manipulation

Описание

public void UI\Draw\Color::setChannel ( integer $channel , float $value )

Shall set the selected channel to the given value

Список параметров

channel

Constant channel identity

value

The new value for the selected channel

Возвращаемые значения


Draw Stroke

(PHP 7, UI 0.9.9)

Введение

Holds the configuration for the Pen to perform a stroke

Обзор классов

UI\Draw\Stroke {
/* Constructor */
public __construct ([ integer $cap = UI\Draw\Line\Cap::Flat [, integer $join = UI\Draw\Line\Join::Miter [, float $thickness = 1 [, float $miterLimit = 10 ]]]] )
/* Методы */
public integer getCap ( void )
public integer getJoin ( void )
public float getMiterLimit ( void )
public float getThickness ( void )
public setCap ( integer $cap )
public setJoin ( integer $join )
public setMiterLimit ( float $limit )
public setThickness ( float $thickness )
}

Содержание

  • UI\Draw\Stroke::__construct — Construct a new Stroke
  • UI\Draw\Stroke::getCap — Get Line Cap
  • UI\Draw\Stroke::getJoin — Get Line Join
  • UI\Draw\Stroke::getMiterLimit — Get Miter Limit
  • UI\Draw\Stroke::getThickness — Get Thickness
  • UI\Draw\Stroke::setCap — Set Line Cap
  • UI\Draw\Stroke::setJoin — Set Line Join
  • UI\Draw\Stroke::setMiterLimit — Set Miter Limit
  • UI\Draw\Stroke::setThickness — Set Thickness


Construct a new Stroke

  • « UI\Draw\Stroke
  • UI\Draw\Stroke::getCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Construct a new Stroke

UI\Draw\Stroke::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::__construct — Construct a new Stroke

Описание

public UI\Draw\Stroke::__construct ([ integer $cap = UI\Draw\Line\Cap::Flat [, integer $join = UI\Draw\Line\Join::Miter [, float $thickness = 1 [, float $miterLimit = 10 ]]]] )

Shall construct a new Stroke

Список параметров

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel

thickness

The thickness of the stroke

miterLimit

Miter limit (default is sensible for all supported platforms)


Get Line Cap

  • « UI\Draw\Stroke::__construct
  • UI\Draw\Stroke::getJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Line Cap

UI\Draw\Stroke::getCap

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getCap — Get Line Cap

Описание

public integer UI\Draw\Stroke::getCap ( void )

Shall retrieve the line cap setting of this Stroke

Список параметров

У этой функции нет параметров.

Возвращаемые значения

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square


Get Line Join

  • « UI\Draw\Stroke::getCap
  • UI\Draw\Stroke::getMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Line Join

UI\Draw\Stroke::getJoin

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getJoin — Get Line Join

Описание

public integer UI\Draw\Stroke::getJoin ( void )

Shall retrieve the line join setting of this Stroke

Список параметров

У этой функции нет параметров.

Возвращаемые значения

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel


Get Miter Limit

  • « UI\Draw\Stroke::getJoin
  • UI\Draw\Stroke::getThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Miter Limit

UI\Draw\Stroke::getMiterLimit

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getMiterLimit — Get Miter Limit

Описание

public float UI\Draw\Stroke::getMiterLimit ( void )

Shall retrieve the miter limit of this Stroke

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current miter limit


Get Thickness

  • « UI\Draw\Stroke::getMiterLimit
  • UI\Draw\Stroke::setCap »
  • PHP Manual
  • UI\Draw\Stroke
  • Get Thickness

UI\Draw\Stroke::getThickness

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::getThickness — Get Thickness

Описание

public float UI\Draw\Stroke::getThickness ( void )

Shall retrieve the thickness of this Stroke

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current thickness


Set Line Cap

  • « UI\Draw\Stroke::getThickness
  • UI\Draw\Stroke::setJoin »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Line Cap

UI\Draw\Stroke::setCap

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setCap — Set Line Cap

Описание

public UI\Draw\Stroke::setCap ( integer $cap )

Shall set the line cap setting for this Stroke

Список параметров

cap

UI\Draw\Line\Cap::Flat, UI\Draw\Line\Cap::Round, or UI\Draw\Line\Cap::Square


Set Line Join

  • « UI\Draw\Stroke::setCap
  • UI\Draw\Stroke::setMiterLimit »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Line Join

UI\Draw\Stroke::setJoin

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setJoin — Set Line Join

Описание

public UI\Draw\Stroke::setJoin ( integer $join )

Shall set the line join setting for this Stroke

Список параметров

join

UI\Draw\Line\Join::Miter, UI\Draw\Line\Join::Round, or UI\Draw\Line\Join::Bevel

Возвращаемые значения


Set Miter Limit

  • « UI\Draw\Stroke::setJoin
  • UI\Draw\Stroke::setThickness »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Miter Limit

UI\Draw\Stroke::setMiterLimit

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setMiterLimit — Set Miter Limit

Описание

public UI\Draw\Stroke::setMiterLimit ( float $limit )

Set the miter limit for this Stroke

Список параметров

limit

The new limit


Set Thickness

  • « UI\Draw\Stroke::setMiterLimit
  • UI\Draw\Brush »
  • PHP Manual
  • UI\Draw\Stroke
  • Set Thickness

UI\Draw\Stroke::setThickness

(PHP 7, UI 0.9.9)

UI\Draw\Stroke::setThickness — Set Thickness

Описание

public UI\Draw\Stroke::setThickness ( float $thickness )

Shall set the thickness for this Stroke

Список параметров

thickness

The new thickness


Brushes

(PHP 7, UI 0.9.9)

Введение

Represents a solid color brush

Обзор классов

UI\Draw\Brush {
/* Constructor */
public __construct ( UI\Draw\Color $color )
public __construct ( integer $color )
/* Методы */
public UI\Draw\Color getColor ( void )
public void setColor ( UI\Draw\Color $color )
public void setColor ( integer $color )
}

Содержание

  • UI\Draw\Brush::__construct — Construct a new Brush
  • UI\Draw\Brush::getColor — Get Color
  • UI\Draw\Brush::setColor — Set Color


Construct a new Brush

  • « UI\Draw\Brush
  • UI\Draw\Brush::getColor »
  • PHP Manual
  • UI\Draw\Brush
  • Construct a new Brush

UI\Draw\Brush::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Brush::__construct — Construct a new Brush

Описание

public UI\Draw\Brush::__construct ( UI\Draw\Color $color )
public UI\Draw\Brush::__construct ( integer $color )

Shall construct a solid brush using the given color

Список параметров

color

Can be a UI\Draw\Color or RRGGBBAA


Get Color

  • « UI\Draw\Brush::__construct
  • UI\Draw\Brush::setColor »
  • PHP Manual
  • UI\Draw\Brush
  • Get Color

UI\Draw\Brush::getColor

(PHP 7, UI 0.9.9)

UI\Draw\Brush::getColor — Get Color

Описание

public UI\Draw\Color UI\Draw\Brush::getColor ( void )

Shall return a UI\Draw\Color for this brush

Список параметров

У этой функции нет параметров.

Возвращаемые значения

The current color of the brush


Set Color

  • « UI\Draw\Brush::getColor
  • UI\Draw\Brush\Gradient »
  • PHP Manual
  • UI\Draw\Brush
  • Set Color

UI\Draw\Brush::setColor

(PHP 7, UI 0.9.9)

UI\Draw\Brush::setColor — Set Color

Описание

public void UI\Draw\Brush::setColor ( UI\Draw\Color $color )
public void UI\Draw\Brush::setColor ( integer $color )

Shall set the color of this brush to the color provided

Список параметров

color

Can be a UI\Draw\Color or RRGGBBAA

Возвращаемые значения


Gradient Brushes

(PHP 7, UI 2.0.0)

Введение

Abstract for gradient brushes

Обзор классов

abstract UI\Draw\Brush\Gradient extends UI\Draw\Brush {
/* Методы */
public integer addStop ( float $position , UI\Draw\Color $color )
public integer addStop ( float $position , integer $color )
public integer delStop ( integer $index )
public boolean setStop ( integer $index , float $position , UI\Draw\Color $color )
public boolean setStop ( integer $index , float $position , integer $color )
/* Наследуемые методы */
public UI\Draw\Color UI\Draw\Brush::getColor ( void )
public void UI\Draw\Brush::setColor ( UI\Draw\Color $color )
public void UI\Draw\Brush::setColor ( integer $color )
}

Содержание

  • UI\Draw\Brush\Gradient::addStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::delStop — Stop Manipulation
  • UI\Draw\Brush\Gradient::setStop — Stop Manipulation


Stop Manipulation

  • « UI\Draw\Brush\Gradient
  • UI\Draw\Brush\Gradient::delStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::addStop

(PHP 7, UI 2.0.0)

UI\Draw\Brush\Gradient::addStop — Stop Manipulation

Описание

public integer UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color )
public integer UI\Draw\Brush\Gradient::addStop ( float $position , integer $color )

Shall at a stop of the given color at the given position

Список параметров

position

The position for the new stop

color

The color for the new stop, may be UI\Draw\Color or RRGGBBAA

Возвращаемые значения

Total number of stops


Stop Manipulation

  • « UI\Draw\Brush\Gradient::addStop
  • UI\Draw\Brush\Gradient::setStop »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::delStop

(PHP 7, UI 2.0.0)

UI\Draw\Brush\Gradient::delStop — Stop Manipulation

Описание

public integer UI\Draw\Brush\Gradient::delStop ( integer $index )

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

Список параметров

index

Возвращаемые значения

Total number of stops


Stop Manipulation

  • « UI\Draw\Brush\Gradient::delStop
  • UI\Draw\Brush\LinearGradient »
  • PHP Manual
  • UI\Draw\Brush\Gradient
  • Stop Manipulation

UI\Draw\Brush\Gradient::setStop

(PHP 7, UI 2.0.0)

UI\Draw\Brush\Gradient::setStop — Stop Manipulation

Описание

public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , UI\Draw\Color $color )
public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , integer $color )

Список параметров

index

The index of the stop to set

position

The position for the stop

color

The color for the stop, may be UI\Draw\Color or RRGGBBAA

Возвращаемые значения

Indication of success


Linear Gradient

(PHP 7, UI 2.0.0)

Введение

Обзор классов

UI\Draw\Brush\LinearGradient extends UI\Draw\Brush\Gradient {
/* Constructor */
public __construct ( UI\Point $start , UI\Point $end )
/* Наследуемые методы */
public integer UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color )
public integer UI\Draw\Brush\Gradient::addStop ( float $position , integer $color )
public integer UI\Draw\Brush\Gradient::delStop ( integer $index )
public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , UI\Draw\Color $color )
public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , integer $color )
}

Содержание

  • UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient


Construct a Linear Gradient

  • « UI\Draw\Brush\LinearGradient
  • UI\Draw\Brush\RadialGradient »
  • PHP Manual
  • UI\Draw\Brush\LinearGradient
  • Construct a Linear Gradient

UI\Draw\Brush\LinearGradient::__construct

(PHP 7, UI 2.0.0)

UI\Draw\Brush\LinearGradient::__construct — Construct a Linear Gradient

Описание

public UI\Draw\Brush\LinearGradient::__construct ( UI\Point $start , UI\Point $end )

Shall construct a new linear gradient

Список параметров

start

end


Radial Gradient

(PHP 7, UI 2.0.0)

Введение

Обзор классов

UI\Draw\Brush\RadialGradient extends UI\Draw\Brush\Gradient {
/* Constructor */
public __construct ( UI\Point $start , UI\Point $outer , float $radius )
/* Наследуемые методы */
public integer UI\Draw\Brush\Gradient::addStop ( float $position , UI\Draw\Color $color )
public integer UI\Draw\Brush\Gradient::addStop ( float $position , integer $color )
public integer UI\Draw\Brush\Gradient::delStop ( integer $index )
public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , UI\Draw\Color $color )
public boolean UI\Draw\Brush\Gradient::setStop ( integer $index , float $position , integer $color )
}

Содержание

  • UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient


Construct a new Radial Gradient

  • « UI\Draw\Brush\RadialGradient
  • UI\Draw\Text\Layout »
  • PHP Manual
  • UI\Draw\Brush\RadialGradient
  • Construct a new Radial Gradient

UI\Draw\Brush\RadialGradient::__construct

(PHP 7, UI 2.0.0)

UI\Draw\Brush\RadialGradient::__construct — Construct a new Radial Gradient

Описание

public UI\Draw\Brush\RadialGradient::__construct ( UI\Point $start , UI\Point $outer , float $radius )

Shall construct a new radial gradient

Список параметров

start

outer

radius


Represents Text Layout

(PHP 7, UI 0.9.9)

Введение

A Text Layout represents the layout of text which will be drawn by the Pen

Обзор классов

UI\Draw\Text\Layout {
/* Constructor */
public __construct ( string $text , UI\Draw\Text\Font $font , float $width )
/* Методы */
public setColor ( UI\Draw\Color $color [, integer $start = 0 [, integer $end ]] )
public setColor ( integer $color [, integer $start = 0 [, integer $end ]] )
public setWidth ( float $width )
}

Содержание

  • UI\Draw\Text\Layout::__construct — Construct a new Text Layout
  • UI\Draw\Text\Layout::setColor — Set Color
  • UI\Draw\Text\Layout::setWidth — Set Width


Construct a new Text Layout

  • « UI\Draw\Text\Layout
  • UI\Draw\Text\Layout::setColor »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Construct a new Text Layout

UI\Draw\Text\Layout::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Text\Layout::__construct — Construct a new Text Layout

Описание

public UI\Draw\Text\Layout::__construct ( string $text , UI\Draw\Text\Font $font , float $width )

Shall construct a new Text Layout

Список параметров

text

The text for the layout

font

The font to use for writing

width

The width of the layout


Set Color

  • « UI\Draw\Text\Layout::__construct
  • UI\Draw\Text\Layout::setWidth »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Set Color

UI\Draw\Text\Layout::setColor

(PHP 7, UI 0.9.9)

UI\Draw\Text\Layout::setColor — Set Color

Описание

public UI\Draw\Text\Layout::setColor ( UI\Draw\Color $color [, integer $start = 0 [, integer $end ]] )
public UI\Draw\Text\Layout::setColor ( integer $color [, integer $start = 0 [, integer $end ]] )

Shall set the Color for all of, or a range of the text in the Layout

Список параметров

color

The color to use

start

The starting character

end

The ending character, by default the end of the string


Set Width

  • « UI\Draw\Text\Layout::setColor
  • UI\Draw\Text\Font »
  • PHP Manual
  • UI\Draw\Text\Layout
  • Set Width

UI\Draw\Text\Layout::setWidth

(PHP 7, UI 0.9.9)

UI\Draw\Text\Layout::setWidth — Set Width

Описание

public UI\Draw\Text\Layout::setWidth ( float $width )

Shall set the width of this Text Layout

Список параметров

width

The new width


Represents a Font

(PHP 7, UI 0.9.9)

Введение

Loads a described font

Обзор классов

UI\Draw\Text\Font {
/* Constructor */
public __construct ( UI\Draw\Text\Font\Descriptor $descriptor )
/* Методы */
public float getAscent ( void )
public float getDescent ( void )
public float getLeading ( void )
public float getUnderlinePosition ( void )
public float getUnderlineThickness ( void )
}

Содержание

  • UI\Draw\Text\Font::__construct — Construct a new Font
  • UI\Draw\Text\Font::getAscent — Font Metrics
  • UI\Draw\Text\Font::getDescent — Font Metrics
  • UI\Draw\Text\Font::getLeading — Font Metrics
  • UI\Draw\Text\Font::getUnderlinePosition — Font Metrics
  • UI\Draw\Text\Font::getUnderlineThickness — Font Metrics


Construct a new Font

  • « UI\Draw\Text\Font
  • UI\Draw\Text\Font::getAscent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Construct a new Font

UI\Draw\Text\Font::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Text\Font::__construct — Construct a new Font

Описание

public UI\Draw\Text\Font::__construct ( UI\Draw\Text\Font\Descriptor $descriptor )

Shall construct a new Font using the given descriptor

Список параметров

descriptor

The descriptor for the Font


Font Metrics

  • « UI\Draw\Text\Font::__construct
  • UI\Draw\Text\Font::getDescent »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getAscent

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getAscent — Font Metrics

Описание

public float UI\Draw\Text\Font::getAscent ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Font Metrics

  • « UI\Draw\Text\Font::getAscent
  • UI\Draw\Text\Font::getLeading »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getDescent

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getDescent — Font Metrics

Описание

public float UI\Draw\Text\Font::getDescent ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Font Metrics

  • « UI\Draw\Text\Font::getDescent
  • UI\Draw\Text\Font::getUnderlinePosition »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getLeading

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getLeading — Font Metrics

Описание

public float UI\Draw\Text\Font::getLeading ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Font Metrics

  • « UI\Draw\Text\Font::getLeading
  • UI\Draw\Text\Font::getUnderlineThickness »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getUnderlinePosition

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getUnderlinePosition — Font Metrics

Описание

public float UI\Draw\Text\Font::getUnderlinePosition ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Font Metrics

  • « UI\Draw\Text\Font::getUnderlinePosition
  • UI\Draw\Text\Font\Descriptor »
  • PHP Manual
  • UI\Draw\Text\Font
  • Font Metrics

UI\Draw\Text\Font::getUnderlineThickness

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font::getUnderlineThickness — Font Metrics

Описание

public float UI\Draw\Text\Font::getUnderlineThickness ( void )

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Font Descriptor

(PHP 7, UI 0.9.9)

Введение

Describes a font

Обзор классов

UI\Draw\Text\Font\Descriptor {
/* Constructor */
public __construct ( string $family , float $size [, integer $weight = UI\Draw\Text\Font\Weight::Normal [, integer $italic = UI\Draw\Text\Font\Italic::Normal [, integer $stretch = UI\Draw\Text\Font\Stretch::Normal ]]] )
/* Методы */
public string getFamily ( void )
public int getItalic ( void )
public float getSize ( void )
public int getStretch ( void )
public int getWeight ( void )
}

Содержание

  • UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family
  • UI\Draw\Text\Font\Descriptor::getItalic — Style Detection
  • UI\Draw\Text\Font\Descriptor::getSize — Size Detection
  • UI\Draw\Text\Font\Descriptor::getStretch — Style Detection
  • UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection


Construct a new Font Descriptor

  • « UI\Draw\Text\Font\Descriptor
  • UI\Draw\Text\Font\Descriptor::getFamily »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Construct a new Font Descriptor

UI\Draw\Text\Font\Descriptor::__construct

(PHP 7, UI 0.9.9)

UI\Draw\Text\Font\Descriptor::__construct — Construct a new Font Descriptor

Описание

public UI\Draw\Text\Font\Descriptor::__construct ( string $family , float $size [, integer $weight = UI\Draw\Text\Font\Weight::Normal [, integer $italic = UI\Draw\Text\Font\Italic::Normal [, integer $stretch = UI\Draw\Text\Font\Stretch::Normal ]]] )

Shall construct a new Font Descriptor

Список параметров

family

The name of a valid family of fonts

size

The preferred size

weight

UI\Draw\Text\Font\Weight constant

italic

UI\Draw\Text\Font\Italic constant

stretch

UI\Draw\Text\Font\Stretch constant


Get Font Family

  • « UI\Draw\Text\Font\Descriptor::__construct
  • UI\Draw\Text\Font\Descriptor::getItalic »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Get Font Family

UI\Draw\Text\Font\Descriptor::getFamily

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getFamily — Get Font Family

Описание

public string UI\Draw\Text\Font\Descriptor::getFamily ( void )

Shall return the requested font family

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getFamily
  • UI\Draw\Text\Font\Descriptor::getSize »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getItalic

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getItalic — Style Detection

Описание

public int UI\Draw\Text\Font\Descriptor::getItalic ( void )

Shall return constant setting

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Size Detection

  • « UI\Draw\Text\Font\Descriptor::getItalic
  • UI\Draw\Text\Font\Descriptor::getStretch »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Size Detection

UI\Draw\Text\Font\Descriptor::getSize

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getSize — Size Detection

Описание

public float UI\Draw\Text\Font\Descriptor::getSize ( void )

Shall return the requested size

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Style Detection

  • « UI\Draw\Text\Font\Descriptor::getSize
  • UI\Draw\Text\Font\Descriptor::getWeight »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Style Detection

UI\Draw\Text\Font\Descriptor::getStretch

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getStretch — Style Detection

Описание

public int UI\Draw\Text\Font\Descriptor::getStretch ( void )

Shall return requested stretch

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Weight Detection

  • « UI\Draw\Text\Font\Descriptor::getStretch
  • UI Функции »
  • PHP Manual
  • UI\Draw\Text\Font\Descriptor
  • Weight Detection

UI\Draw\Text\Font\Descriptor::getWeight

(PHP 7, UI 1.0.3)

UI\Draw\Text\Font\Descriptor::getWeight — Weight Detection

Описание

public int UI\Draw\Text\Font\Descriptor::getWeight ( void )

Shall return requested weight

Список параметров

У этой функции нет параметров.

Возвращаемые значения


UI Функции

Содержание

  • UI\Draw\Text\Font\fontFamilies — Retrieve Font Families
  • UI\quit — Quit UI Loop
  • UI\run — Enter UI Loop


Retrieve Font Families

  • « UI Функции
  • UI\quit »
  • PHP Manual
  • UI Функции
  • Retrieve Font Families

UI\Draw\Text\Font\fontFamilies

(PHP 7, UI 0.9.9)

UI\Draw\Text\Font\fontFamilies — Retrieve Font Families

Описание

array UI\Draw\Text\Font\fontFamilies ( void )

Returns an array of valid font families for the current system

Список параметров

У этой функции нет параметров.


Quit UI Loop

  • « UI\Draw\Text\Font\fontFamilies
  • UI\run »
  • PHP Manual
  • UI Функции
  • Quit UI Loop

UI\quit

(PHP 7, UI 2.0.0)

UI\quit — Quit UI Loop

Описание

void UI\quit ( void )

Shall cause the main loop to be exited

Список параметров

У этой функции нет параметров.

Возвращаемые значения


Enter UI Loop

  • « UI\quit
  • UI\Draw\Text\Font\Weight »
  • PHP Manual
  • UI Функции
  • Enter UI Loop

UI\run

(PHP 7, UI 2.0.0)

UI\run — Enter UI Loop

Описание

void UI\run ([ integer $flags ] )

Shall cause PHP to enter into the main loop, by default control will not be returned to the caller

Список параметров

flags

Set UI\Loop to return control, and UI\Wait to return control after waiting

Возвращаемые значения


Font Weight Settings

(PHP 7, UI 0.9.9)

Введение

Обзор классов

final UI\Draw\Text\Font\Weight {
/* Constants */
const integer Thin ;
const integer UltraLight ;
const integer Light ;
const integer Book ;
const integer Normal ;
const integer Medium ;
const integer SemiBold ;
const integer Bold ;
const integer UltraBold ;
const integer Heavy ;
const integer UltraHeavy ;
}


Italic Font Settings

(PHP 7, UI 0.9.9)

Введение

Обзор классов

final UI\Draw\Text\Font\Italic {
/* Constants */
const integer Normal = 0 ;
const integer Oblique = 1 ;
const integer Italic = 2 ;
}


Font Stretch Settings

(PHP 7, UI 0.9.9)

Введение

Обзор классов

final UI\Draw\Text\Font\Stretch {
/* Constants */
const integer UltraCondensed = 0 ;
const integer ExtraCondensed = 1 ;
const integer Condensed = 2 ;
const integer SemiCondensed = 3 ;
const integer Normal = 4 ;
const integer SemiExpanded = 5 ;
const integer Expanded = 6 ;
const integer ExtraExpanded = 7 ;
const integer UltraExpanded = 8 ;
}


Line Cap Settings

(PHP 7, UI 0.9.9)

Введение

Обзор классов

final UI\Draw\Line\Cap {
/* Constants */
const integer Flat ;
const integer Round ;
const integer Square ;
}


Line Join Settings

(PHP 7, UI 0.9.9)

Введение

Обзор классов

final UI\Draw\Line\Join {
/* Constants */
const integer Miter ;
const integer Round ;
const integer Bevel ;
}


Key Identifiers

(PHP 7, UI 1.0.0)

Введение

Обзор классов

final UI\Key {
/* Constants */
const integer Escape ;
const integer Insert ;
const integer Delete ;
const integer Home ;
const integer End ;
const integer PageUp ;
const integer PageDown ;
const integer Up ;
const integer Down ;
const integer Left ;
const integer Right ;
const integer F1 ;
const integer F2 ;
const integer F3 ;
const integer F4 ;
const integer F5 ;
const integer F6 ;
const integer F7 ;
const integer F8 ;
const integer F9 ;
const integer F10 ;
const integer F11 ;
const integer F12 ;
const integer N0 ;
const integer N1 ;
const integer N2 ;
const integer N3 ;
const integer N4 ;
const integer N5 ;
const integer N6 ;
const integer N7 ;
const integer N8 ;
const integer N9 ;
const integer NDot ;
const integer NEnter ;
const integer NAdd ;
const integer NSubtract ;
const integer NMultiply ;
const integer NDivide ;
}


InvalidArgumentException

(PHP 7, UI 1.0.3)

Введение

Обзор классов

UI\Exception\InvalidArgumentException extends InvalidArgumentException implements Throwable {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


RuntimeException

(PHP 7, UI 1.0.3)

Введение

Обзор классов

UI\Exception\RuntimeException extends RuntimeException implements Throwable {
/* Наследуемые свойства */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
/* Наследуемые методы */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public mixed Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}


Ядро PHP: Руководство хакера

  • Preface
  • Memory management
    • Basic memory management
    • Data persistence
    • Thread-Safe Resource Manager
  • Working with Variables
    • Introduction to Variables
    • Working with Arrays
    • Working with HashTable
    • Working with Objects
  • Writing Functions
  • Writing Classes
  • Working with Resources
  • Working with INI settings
  • Working with streams
  • The "counter" Extension - A Continuing Example
    • Установка и настройка
    • Предопределенные константы
    • Примеры
    • Counter — The Counter class
    • Basic — The basic interface
    • Extended — The extended interface
  • The PHP 5 build system
    • Building PHP for extension development
    • The ext_skel script
    • Talking to the UNIX build system: config.m4
    • Talking to the Windows build system: config.w32
  • Extension structure
    • Files which make up an extension
    • Basic constructs
    • The zend_module structure
    • Extension globals
    • Life cycle of an extension
    • Testing an extension
  • PDO Driver How-To
    • Prerequisites
    • Preparation and Housekeeping
    • Fleshing out your skeleton
    • Building
    • Testing
    • Packaging and distribution
    • pdo_dbh_t definition
    • pdo_stmt_t definition
    • Constants
    • Error handling
  • Extension FAQs
  • Zend Engine 2 API reference
  • Zend Engine 2 Opcodes
    • Opcode Descriptions and Examples
  • Zend Engine 1
    • Old introduction
    • Streams API for PHP Extension Authors
    • Zend API: Взламываем ядро PHP
    • TSRM API


Preface

This section of the manual is written for the Hacker: someone thinking about getting their hands dirty, someone who wants an understanding of internals in order to advance their PHP skills, or maybe someone looking to write the next best extension. Whatever the reason, this section will seek to provide a good understanding of the internals of PHP, how to write extensions, how to understand existing code containing mystical macros. All of the important internal functionality is documented here, enough anyway to convince you to read the source.

Out of necessity, this section assumes the reader has a working knowledge of the C programming language, and associated tools, like compilers and terminal emulators and the like. You don't need to be the next Alan Turing, but a working knowledge is none the less essential for this section to be of any use. With just that working knowledge, this section should be enough to get you well on the way to earning the title Hacker, and you do have to earn it.

The documentation in this section is current as of PHP 5.3.3, deviations in API functionality are duly noted in the appropriate sections.

Внимание

This documentation is still under development. The original Zend documentation is preserved in its entirety in the Zend Engine 1 section for those who need it before this documentation is completed.


Memory management

Содержание

  • Basic memory management
  • Data persistence
  • Thread-Safe Resource Manager

Memory management in the Zend Engine is deceptively simple. There are some APIs to learn, and some concepts behind them to understand, but that's about all.


Basic memory management

The engine's memory management is implemented with features important to a system like PHP. The exact functionality of the engine's memory management and the optimizations performed are out of the scope of this document. However, a good understanding of its functionality provides a basis for a good understanding of the rest of the Hacker's Guide, and introduce you to terminology and functionality used throughout PHP.

The most important of its features for the Hacker, and the first thing to mention is tracking allocations. Tracking allocations allow the memory manager to avoid leaks, a thorn in the side of most Hackers. When PHP is built in debug mode (--enable-debug), detected leaks are reported, in a perfect world they would never get to deployment.

While tracking allocations is an important, and highly useful feature, the Hacker should not become lazy! Always attempt to resolve leaks before deploying your code, a memory leak in a SAPI environment can become a very big problem, very quickly.

Another, perhaps more incidental but still noteworthy, feature is that the memory manager is the part that allows a hard limit on memory usage for each instance of PHP. As we all know, there is no such thing as unlimited. If some code is running out of memory, it is likely to be written wrong, either by the Hacker, or the programmer of PHP. Limiting the memory therefore is not a restriction on the language that is supposed to be experienced in production, it is simply a way from stopping development environments from spiraling out of control when mistakes are made, and equally, when bugs are found in production.

From the Hacker's perspective, the memory management API looks very much like libc's (or whoever the Hacker prefers !) malloc implementation.

Main memory APIs
Prototype | Description
void *emalloc(size_t size) | Allocate size bytes of memory.
void *ecalloc(size_t nmemb, size_t size) | Allocate a buffer for nmemb elements of size bytes and makes sure it is initialized with zeros.
void *erealloc(void *ptr, size_t size) | Resize the buffer ptr, which was allocated using emalloc to hold size bytes of memory.
void efree(void *ptr) | Free the buffer pointed by ptr. The buffer had to be allocated by emalloc.
void *safe_emalloc(size_t nmemb, size_t size, size_t offset) | Allocate a buffer for holding nmemb blocks of each size bytes and an additional offset bytes. This is similar to emalloc(nmemb * size + offset) but adds a special protection against overflows.
char *estrdup(const char *s) | Allocate a buffer that can hold the NULL-terminated string s and copy the s into that buffer.
char *estrndup(const char *s, unsigned int length) | Similar to estrdup while the length of the NULL-terminated string is already known.

Замечание: The engines memory management functions do not return NULL upon failure, if memory cannot be allocated at runtime, the engine bails and raises an error.

Предостережение

Always use valgrind before deploying code and as a normal part of the Hacker's process. The engine can only report and detect leaks where it has allocated the memory. All of PHP is only a thin wrapper around third parties, those third parties do not use the engines memory management. Additionally, valgrind will catch errors that do not always halt or even have an apparent effect at execution time, it is just as important that there should be no errors, as it is important that avoidable leaks should be avoided.

Замечание: Some leaks are unavoidable, some libraries rely on the end of a process to free some of their structures, this is normal under some circumstances and acceptable where it is out of the Hacker's control.

While executing in a debug environment, configured with --enable-debug, the leak function used in the next example is actually implemented by the engine and is available to call in userland.

Пример #1 Leak Detection in Action

ZEND_FUNCTION(leak)
{
    long leakbytes = 3;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &leakbytes) == FAILURE) {
        return;
    }

    emalloc(leakbytes);
}

Результатом выполнения данного примера будет что-то подобное:

[Thu Oct 22 02:14:57 2009]  Script:  '-'
/home/johannes/src/PHP_5_3/Zend/zend_builtin_functions.c(1377) :  Freeing 0x088888D4 (3 bytes), script=-
=== Total 1 memory leaks detected ===

Замечание: USE_ZEND_ALLOC=0 in the environment will stop the memory manager from functioning, all allocations fall back on the default system allocators which can be useful for debugging leaks, and should only be used for this purpose.


Data persistence

In this context, data persistence is taken to mean any data that is intended to survive the current request. The memory management within the engine is very focused on request bound allocations, but this is not always practical or appropriate. Persistent memory is sometimes required in order to satisfy requirements of external libraries, it can also be useful while Hacking.

A common use of persistent memory is to enable persistent SQL server connections, though this practice is frowned upon, it is none the less the most common use of this feature.

Замечание: All of the following functions take the additional persistent parameter, should this be false, the engine will use its regular allocators (emalloc) and the memory should not be considered persistent. Where memory is allocated as persistent, system allocators are invoked, under most circumstances they are still not able to return NULL pointers just as the Main memory APIs.

Persistent memory APIs
Prototype | Description
void *pemalloc(size_t size, zend_bool persistent) | Allocate size bytes of memory.
void *pecalloc(size_t nmemb, size_t size, zend_bool persistent) | Allocate a buffer for nmemb elements of size bytes and makes sure it is initialized with zeros.
void *perealloc(void *ptr, size_t size, zend_bool persistent) | Resize the buffer ptr, which was allocated using emalloc to hold size bytes of memory.
void pefree(void *ptr, zend_bool persistent) | Free the buffer pointed by ptr. The buffer had to be allocated by pemalloc.
void *safe_pemalloc(size_t nmemb, size_t size, size_t offset, zend_bool persistent) | Allocate a buffer for holding nmemb blocks of each size bytes and an additional offset bytes. This is similar to pemalloc(nmemb * size + offset) but adds a special protection against overflows.
char *pestrdup(const char *s, zend_bool persistent) | Allocate a buffer that can hold the NULL-terminated string s and copy the s into that buffer.
char *pestrndup(const char *s, unsigned int length, zend_bool persistent) | Similar to pestrdup while the length of the NULL-terminated string is already known.
Предостережение

It is important to remember that memory allocated to be persistent is not optimized or tracked by the engine; it is not subject to memory_limit, additionally, all variables that are created by the Hacker for the engine must not use persistent memory.


Thread-Safe Resource Manager

When PHP is built with Thread Safety enabled, the engine requires a way to isolate contexts from one another, such that the threads of a process may service individual requests without interference. TSRM is omnipotent within PHP, extension authors have to do very little in order to make sure their extensions can function in both a Thread Safe and Non Thread Safe architecture.

Пример #1 Accessor macros for per-module globals

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

The snippet above shows how an extension author is expected to define their global accessors. The TSRMG macro takes an identifier, type cast and element name. The identifier is assigned by TSRM during initialization of the module. Declaring global accessors in this way ensures that an extension can operate safely in a Thread Safe and Non Thread Safe architecture using the same logic.

TSRM manages the isolation and safety of all global structures within PHP, from executor globals to extension globals, a pointer to the isolated storage is also passed around with most, or many of the API functions. The macros TSRMLS_C and TSRMLS_CC translate to "thread safe local storage" and "thread safe local storage prefixed with a comma" respectively.

If a function requires a pointer to TSRM, it is declared with the macro TSRMLS_D or TSRMLS_DC in it's prototype, which translates to "thread safe local storage only" and "thread safe local storage prefixed with a comma" respectively. Many macros within the engine reference TSRM, so it is a good idea to declare most things to accept TSRM, such that if they need to call upon TSRM they do not have to fetch a pointer during execution.

Because TSRM is thread local, and some functions (for compatibility reasons) are not able to accept TSRM directly, the macro TSRMLS_FETCH exists, which requests that TSRM fetches the pointer to the thread local storage. This should be avoided wherever it can be, as it is not without cost in a Thread Safe setup.

Замечание: While developing extensions, build errors that contain "tsrm_ls is undefined" or errors to that effect stem from the fact that TSRMLS is undefined in the current scope, to fix this, declare the function to accept TSRMLS with the appropriate macro, if the prototype of the function in question cannot be changed, you must call TSRMLS_FETCH within the function body.

The functionality documented hereafter is aimed at advanced use of TSRM. It is not ordinary for extensions to have to interact with TSRM directly, the pecl programmer should use API's above TSRM such as the Module Globals API.

TSRM Internals
Prototype | Description
typedef int ts_rsrc_id | The type definition to represent a resource by numeric identifiers
int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename) | expected_threads and expected_resources are not hard limits. debug_level and debug_filename only have an effect on windows in Debug mode or when TSRM_DEBUG is defined. Called once per process in ZTS mode during server startup.
void tsrm_shutdown(void) | Should be the last thing called in the process to destroy and free all storage TSRM storage in ZTS mode.
ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor) | Allocates and thread safe pointer of size bytes, calling ctor on the pointer, assigning (and returning) the id to rsrc_id, the dtor is called when the resource is free'd. Module globals are isolated in ZTS mode using this API.
void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id) | Fetches a resource by previously allocated id from the entries created by the specified thread identifed by th_id.
void *ts_resource(ts_rsrc_id id) | Fetches a resource by previously allocated id from the entries created by the calling thread.
void ts_free_thread(void) | Destroys and frees the entries for the calling thread, currently this API is only used by ISAPI module.
void ts_free_id(ts_rsrc_id id) | Destroys the resource identified by previously allocated id. Module globals are cleaned up in ZTS mode using this API.

Замечание: There are more TSRM API functions to enable the creation and destruction of interpreter contexts, the usage of such functionality is out of the scope of this documentation, please see TSRM/TSRM.h for more information.

TSRM Mutex API
Prototype | Description
MUTEX_T tsrm_mutex_alloc(void) | Allocates and returns a suitable MUTEX_T for the environment.
int tsrm_mutex_lock(MUTEX_T mutexp) | Locks mutexp for the calling thread.
int tsrm_mutex_unlock(MUTEX_T mutexp) | Unlocks mutexp for the calling thread.
void tsrm_mutex_free(MUTEX_T mutexp); | Destroys and frees the (unlocked) and previously allocated mutexp.

Замечание: The mutex API is exposed by TSRM. However, its internal usage is far too wide to document usefully here, none the less, basic functionality and prototypes are documented here.


  • « Thread-Safe Resource Manager
  • Introduction to Variables »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Working with Variables

Working with Variables

Содержание

  • Introduction to Variables
  • Working with Arrays
  • Working with HashTable
  • Working with Objects


Introduction to Variables

A good understanding of how variables are stored and manipulated is essential to becoming a Hacker. The engine attempts to cover up the complexity of the concept of a variable that can be any type by providing a uniform and intuitive set of macros for accessing the structures various fields. As the Hacker works through this chapter, they should become comfortable with the terminology and concepts involved with Variables in PHP.

Замечание:

PHP is a dynamic, loosely typed language, that uses copy-on-write and reference counting.

To clarify what exactly is meant by the statement above: PHP is a high level language, weak typing is implicit of the engines preference to convert, or coerce variables into the required type at execution time. Reference counting is the means by which the engine can deduce when a variable no longer has any references in the users code, and so is able to free the structures associated with the variable.

All variables in PHP are represented by one structure, the zval:

typedef struct _zval_struct {
    zvalue_value value;        /* variable value */
    zend_uint refcount__gc;    /* reference counter */
    zend_uchar type;           /* value type */
    zend_uchar is_ref__gc;     /* reference flag */
} zval;

The zval_value is a union which can represent all types a variable may hold:

typedef union _zvalue_value {
    long lval;                 /* long value */
    double dval;               /* double value */
    struct {
        char *val;
        int len;               /* this will always be set for strings */
    } str;                     /* string (always has length) */
    HashTable *ht;             /* an array */
    zend_object_value obj;     /* stores an object store handle, and handlers */
} zvalue_value;

It should be clear from the structures above that a variable can be of one type, the variable data is represented by the appropriate field in the zval_value union. The zval itself holds the type, reference count and a flag to indicate if a variable is a reference.

Native Type Constants
Constant | Mapping
IS_NULL | no value is set in this case
IS_LONG | lval
IS_DOUBLE | dval
IS_BOOL | lval
IS_RESOURCE | lval
IS_STRING | str
IS_ARRAY | ht
IS_OBJECT | obj

Замечание:

There are additional constants that help to identify internal types such as constant arrays and callable objects, their usage is outside the scope of this part of the documentation.

The following table defines the macros exposed by the engine for working with zval values:

Accessor Macros
Prototype | Accesses | Description
zend_uchar Z_TYPE(zval zv) | type | returns the type of the value
long Z_LVAL(zval zv) | value.lval |
zend_bool Z_BVAL(zval zv) | value.lval | cast long value to zend_bool
double Z_DVAL(zval zv) | value.dval |
long Z_RESVAL(zval zv) | value.lval | returns the resource list identifier for value
char* Z_STRVAL(zval zv) | value.str.val | return the string value
int Z_STRLEN(zval zv) | value.str.len | return the length of the string value
HashTable* Z_ARRVAL(zval zv) | value.ht | return the HashTable (array) value
zend_object_value Z_OBJVAL(zval zv) | value.obj | returns object value
uint Z_OBJ_HANDLE(zval zv) | value.obj.handle | returns the object handle for object value
zend_object_handlers* Z_OBJ_HT_P(zval zv) | value.obj.handlers | returns the handler table for object value
zend_class_entry* Z_OBJCE(zval zv) | value.obj | returns the class entry for object value
HashTable* Z_OBJPROP(zval zv) | value.obj | returns the properties of object value
HashTable* Z_OBJPROP(zval zv) | value.obj | returns the properties of object value
HashTable* Z_OBJDEBUG(zval zv) | value.obj | if an object has the get_debug_info handler set, it is called, else Z_OBJPROP is called

Please check the Основы подсчета ссылок chapter for details how reference counting and references work in detail.

Reference Count Manipulation
Prototype | Description
zend_uint Z_REFCOUNT(zval zv) | returns the reference count of the value
zend_uint Z_SET_REFCOUNT(zval zv) | sets the reference count of the value, returning it
zend_uint Z_ADDREF(zval zv) | pre-increments the reference count of value, returning it
zend_uint Z_DELREF(zval zv) | pre-decrements the reference count of value, returning it
zend_bool Z_ISREF(zval zv) | tells if the zval is a reference
void Z_UNSET_ISREF(zval zv) | set is_ref__gc to 0
void Z_SET_ISREF(zval zv) | set is_ref__gc to 1
void Z_SET_ISREF_TO(zval zv, zend_uchar to) | set is_ref__gc to to

Замечание:

The Z_* macros above all take a zval, they are all defined again suffixed with _P to take a pointer to a zval, for example zend_uchar Z_TYPE_P(zval* pzv), and again suffixed with _PP to take a pointer to a pointer to a zval, for example zend_uchar Z_TYPE_PP(zval** ppzv)

Creation, Destruction, Separation and Copying
Prototype | Description
ALLOC_ZVAL(zval* pzval) | emallocs pzval
ALLOC_INIT_ZVAL(zval* pzval) | emallocs pzval, and points pzval at a null typed zval for sanity
MAKE_STD_ZVAL(zval* pzval) | emallocs pzval, setting the refcount to 1
ZVAL_COPY_VALUE(zval* dst, zval* src) | sets the value and type of dst from the value and type of src
INIT_PZVAL_COPY(zval* dst, zval*dst) | performs ZVAL_COPY_VALUE, setting refcount of dst to 1, and setting is_ref__gc to 0
SEPARATE_ZVAL(zval** ppzval) | if the refcount of ppzval is >1, redirects *ppzval to a newly emalloc'd, copied, and constructed zval of the same type and value
SEPARATE_ZVAL_IF_NOT_REF(zval** ppzval) | if *ppzval is not a reference, will perform SEPARATE_ZVAL on ppzval
SEPARATE_ZVAL_TO_MAKE_IS_REF(zval** ppzval) | if *ppzval is not a reference, performs SEPARATE_ZVAL then Z_SET_ISREF_PP on ppzval
COPY_PZVAL_TO_ZVAL(zval dst, zval** src) | results in dst being a copy of src without affecting the refcount of src
MAKE_COPY_ZVAL(zval** src, zval* dst) | performs INIT_PZVAL_COPY, then zval_copy_ctor on the new zval
void zval_copy_ctor(zval** pzval) | performs maintenance of reference counts, used widely throughout the engine
void zval_ptr_dtor(zval* pzval) | decrements the refcount for the variable, if no refcounts remain the variable is destroyed
FREE_ZVAL(zval* pzval) | efrees pzval

Замечание:

Objects and Resources have a reference count as part of their respective structures, when zval_ptr_dtor is called on either, their appropriate del_ref method is executed. See Working with Objects and Working with Resources for more information.

If the Hacker only has room to remember two more functions, they should be zval_copy_ctor and zval_ptr_dtor, these are at the basis of the engines reference counting mechanisms and it is important to note that zval_copy_ctor does not actually result in any copying occuring under normal circumstances, it simply increases the reference count. By the same token, zval_ptr_dtor only really destroys a variable when there are no references remaining to it and the refcount is at 0.

PHP is weakly typed, as such the engine provides API functions for converting variables from one type to another.

Type Conversion
Prototype
void convert_to_long(zval* pzval)
void convert_to_double(zval* pzval)
void convert_to_long_base(zval* pzval, int base)
void convert_to_null(zval* pzval)
void convert_to_boolean(zval* pzval)
void convert_to_array(zval* pzval)
void convert_to_object(zval* pzval)
void convert_object_to_type(zval* pzval, convert_func_t converter)

Замечание:

convert_func_t functions should have the prototype (void) (zval* pzval)

By now you should have a good understanding of: the types that are native to the engine, how to detect types and read zval values, how to manipulate refcounts, and other zval flags


Working with Arrays

Arrays are stored in HashTable strucures, and have the zval type IS_ARRAY. The API functions for creating, destroying and manipulating these structures as variables are documented here and can be found in Zend/zend_API.h

HashTable as Variable API
Prototype | Description
void array_init(zval* pzval) | initializes the variable as a HashTable, setting type and appropriate destructor function for the HashTable
void array_init_size(zval* pzval) | initializes the variable as array_init with a minimum of size buckets

Замечание:

Do not squint too hard looking for array_destroy: to destroy a variable array you should call zval_ptr_dtor on the variable, if there are no other references to the variable it will result in the array being destroyed.

Indexed Arrays API
Prototype
int add_index_long(zval* pzval, ulong index, long value)
int add_index_null(zval* pzval, ulong index)
int add_index_bool(zval* pzval, ulong index, zend_bool value)
int add_index_bool(zval* pzval, ulong index, zend_bool value)
int add_index_resource(zval* pzval, ulong index, uint value)
int add_index_double(zval* pzval, ulong index, double value)
int add_index_string(zval* pzval, ulong index, char* string, zend_bool duplicate)
int add_index_stringl(zval* pzval, ulong index, char* string, uint length, zend_bool duplicate)
int add_index_zval(zval* pzval, ulong index, zval* value)
int add_next_index_long(zval* pzval, long value)
int add_next_index_null(zval* pzval)
int add_next_index_bool(zval* pzval, zend_bool value)
int add_next_index_resource(zval* pzval, uint value)
int add_next_index_double(zval* pzval, double value)
int add_next_index_string(zval* pzval, const char* string, zend_bool dulpicate)
int add_next_index_stringl(zval* pzval, const char* string, uint length, zend_bool duplicate)
int add_next_index_zval(zval* pzval, zval* value)
Associative Arrays API
Prototype
int add_assoc_long(zval* pzval, const char* key, long value)
int add_assoc_long_ex(zval* pzval, const char* key, uint klen, long value)
int add_assoc_null(zval* pzval, const char* key)
int add_assoc_null_ex(zval* pzval, const char* key, uint klen)
int add_assoc_bool(zval* pzval, const char* key, zend_bool value)
int add_assoc_bool(zval* pzval, const char* key, zend_bool value)
int add_assoc_bool_ex(zval* pzval, const char* key, uint klen, zend_bool value)
int add_assoc_resource(zval* pzval, const char* key, uint value)
int add_assoc_resource_ex(zval* pzval, const char* key, uint klen, uint value)
int add_assoc_double(zval* pzval, const char* key, double value)
int add_assoc_double_ex(zval* pzval, const char* key, uint klen, double value)
int add_assoc_string(zval* pzval, const char* key, const char* value)
int add_assoc_string_ex(zval* pzval, const char* key, uint klen, const char* value)
int add_assoc_stringl(zval* pzval, const char* key, const char* value, uint vlen, zend_bool duplicate)
int add_assoc_stringl_ex(zval* pzval, const char* key, uint klen, const char* value, uint vlen, zend_bool duplicate)
int add_assoc_zval(zval* pzval, const char* key, zval* value)
int add_assoc_zval_ex(zval* pzval, const char* key, uint klen, zval* value)

Замечание:

add_*_string functions that accept a parameter named duplicate, will duplicate the string with estrndup when duplicate is true

Замечание:

add_*_zval functions do not adjust the refcount of the value parameter

To perform more advanced operations on array variables we must use the HashTable API directly.


Working with HashTable

The HashTable structure serves many purposes in PHP and can be found everywhere, a good understanding of it's functionality is a preqrequisite of being a good Hacker.

The HashTable implemented by the engine is a standard HashTable, that is to say, a key => value based store, where the keys are always strings, whose hashes are calculated with a built in hashing algorithm zend_inline_hash_func(const char* key, uint length), which results in good distribution, and reasonable usage.

The internal structure and exact operation of HashTable is out of the scope of this document, this document serves to inform you of the API's available and how best to use them. For a more detailed picture of the HashTable see Zend/zend_hash.h.

Unless otherwise stated, these functions all return FAILURE if the requested operation fails for any reason, otherwise SUCCESS is returned.

Замечание:

It is important to remember that ordinarily HashTable API functions expect key lengths to be the length of the null terminated string, including the null termination, in other words they expect strlen(key) + 1

Below are some typedefs you should know when interacting with HashTable. They are mostly self explanitory and will allow the Hacker to fully understand the prototypes below properly.

typedef ulong (*hash_func_t)(const char *arKey, uint nKeyLength); /* mostly redundant */
typedef int  (*compare_func_t)(const void *, const void * TSRMLS_DC); /* comparison function */
typedef void (*sort_func_t)(void *, size_t, register size_t, compare_func_t TSRMLS_DC); /* sorting function */
typedef void (*dtor_func_t)(void *pDest); /* destructor function */
typedef void (*copy_ctor_func_t)(void *pElement); /* copy constructor */
typedef void (*copy_ctor_param_func_t)(void *pElement, void *pParam); /* copy with argument constructor */
typedef int (*apply_func_t)(void *pDest TSRMLS_DC); /* apply function */
typedef int (*apply_func_arg_t)(void *pDest, void *argument TSRMLS_DC); /* apply with argument function */
typedef int (*apply_func_args_t)(void *pDest TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key); /* apply with multiple arguments function */
HashTable API
int zend_hash_init(HashTable* ht, uint size, hash_func_t hash, dtor_func_t destructor, zend_bool persistent)
Initializes the hash table to hold at least size elements, hash exists for historical reasons and is always ignored, zend_inline_hash_func is always used as the hashing function. destructor may be NULL.
int zend_hash_add(HashTable* ht, const char* key, uint klen, void* data, uint dlen, void** dest)
adds data to the table using the specified key, where the key is length bytes long (and will be copied from key to the table). If the key is set FAILURE will be returned.
int zend_hash_update(HashTable* ht, const char* key, uint klen, void* data, uint dlen, void** dest)
adds data to the table using the specified key, where the key is length bytes long (and will be copied from key to the table). If the key has been set previously the old data has dtor_func_t called on it and the existing data is replaced with data
int zend_hash_find(HashTable* ht, const char* key, uint klen, void** data)
searches the table for key, setting *data and returning SUCCESS if it is found.
zend_bool zend_hash_exists(HashTable* ht, const char* key, uint klen)
returns positively if key is found in ht
int zend_hash_del(HashTable* ht, const char* key, uint klen)
removes the entry identified by key from the table if found
int zend_hash_index_update(HashTable* ht, ulong index, void* data, uint dsize, void** dest)
updates the entry at index in ht, with the data at data
int zend_hash_index_del(HashTable* ht, ulong index)
deletes the entry at index from ht
int zend_hash_index_find(HashTable* ht, ulong index, void** data)
redirects *data to the data identified by index in ht
int zend_hash_index_exists(HashTable* ht, ulong index)
returns positively if index is found in ht
ulong zend_hash_next_free_element(HashTable* ht)
returns the index of the next free element in ht
Предостережение

zend_hash_* functions that accept void* data should normally cast it to (void**) (ie, (void**) &data)

Traversing the HashTable is often necessary, to do this you provide a pointer to a HashTable, with an optional HashPosition - a structure internal to the HashTable API that allows traversal not to affect the internal position of HashTable. The following traversal functions are provided, and an example usage found below.

HashTable Traversal API
int zend_hash_internal_pointer_reset(HashTable* ht)
resets the internal pointer of ht to the start
int zend_hash_internal_pointer_reset_ex(HashTable* ht, HashPosition position)
sets position the the start of ht
int zend_hash_get_current_data(HashTable* ht, void* data)
gets the data at the current position in ht, data should be cast to void**, ie: (void**) &data
int zend_hash_get_current_data_ex(HashTable* ht, void* data, HashPosition position)
sets data to the data at position in ht
int zend_hash_get_current_key(HashTable* ht, void* data, char**key, uint klen, ulong index, zend_bool duplicate)
sets key, klen, and index from the key information at the current position. The possible return values HASH_KEY_IS_STRING and HASH_KEY_IS_LONG are indicative of the kind of key found at the current posision.
int zend_hash_get_current_key_ex(HashTable* ht, void* data, char**key, uint klen, ulong index, zend_bool duplicate, HashPosition position)
sets key, klen, and index from the key information at position. The possible return values HASH_KEY_IS_STRING and HASH_KEY_IS_LONG are indicative of the kind of key found at position.
int zend_hash_move_forward(HashTable* ht)
moves the internal pointer of ht to the next entry in ht
int zend_hash_move_forward_ex(HashTable* ht, HashPosition position)
moves position to the next entry in ht

The functions above allow traversal over a HashTable to be much like a normal loop, which will look something like:

HashPosition position;
zval **data = NULL;

for (zend_hash_internal_pointer_reset_ex(ht, &position);
     zend_hash_get_current_data_ex(ht, (void**) &data, &position) == SUCCESS;
     zend_hash_move_forward_ex(ht, &position)) {

     /* by now we have data set and can use Z_ macros for accessing type and variable data */

     char *key = NULL;
     uint  klen;
     ulong index;

     if (zend_hash_get_current_key_ex(ht, &key, &klen, &index, 0, &position) == HASH_KEY_IS_STRING) {
         /* the key is a string, key and klen will be set */
     } else {
         /* we assume the key to be long, index will be set */
     }
}

Замечание:

If a HashTable has been passed into the engine, it is a good idea to use the zend_hash_*_ex API to avoid unexpected behaviour in userland.

Замечание:

If a duplicate of the key is requested and HAS_KEY_IS_STRING is returned the caller must efree the duplicated key

In addition to traversal, the engine provides API functions for merging, copying, and comparing HashTables. These are all concepts that the Hacker should be familiar with. A concept possibly not in the repertoire of the Hacker is applying, which is lamens terms is functionality of the HashTable API allowing the Hacker to pass a callback function to be executed on every entry in a HashTable.

Copying, Merging and Sorting
void zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, void *tmp, uint size)
Copies the contents of source to target. tmp should be an unallocated temporary pointer of the appropriate type, used during copying. size is the size of each element.
void zend_hash_merge(HashTable *target, HashTable *source, copy_ctor_func_t pCopyConstructor, void *tmp, uint size, zend_bool overwrite)
Merges the contents of source into destination, replacing existing entries only where overwrite is true.
void int zend_hash_sort(HashTable *ht, sort_func_t sort_func, compare_func_t compare_func, int renumber TSRMLS_DC)
renumber controls if indexes should be preserved, see the typedefs at the start of this section for more information

Замечание:

When a function accepts a copy_ctor_func_t pCopyConstructor, the function passed with be executed upon creation of every new entry in the HashTable. The most common copy constructor used within the engine is a wrapper around zval_copy_ctor, the macro ZVAL_COPY_CTOR.


  • « Working with HashTable
  • Writing Functions »
  • PHP Manual
  • Working with Variables
  • Working with Objects

Working with Objects


Writing Functions

Functions and Methods in PHP take much the same form, a method is simply a function with a specific scope; the scope of their class entry. The Hacker will read about class entries in other sections of the Hacker's guide. The purpose of this section is to introduce the Hacker to the anatomy of a function or method; the Hacker will learn how to define functions, how to accept variables and how to return variables to the programmer of PHP.

The anatomy of a function could not be simpler:

PHP_FUNCTION(hackers_function) {
  /* your accepted arguments here */
  long number;

  /* accepting arguments */
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &number) != SUCCESS) {
      return;
  }

  /* do some work on the input */
  number *= 2;

  /* set return value */
  RETURN_LONG(number);
}

The PHP_FUNCTION(hackers_function) preprocessor instruction will result in the following declaration:

void zif_hackers_function(INTERNAL_FUNCTION_PARAMETERS)

INTERNAL_FUNCTION_PARAMETERS is defined as a macro and explained in the following table:

INTERNAL_FUNCTION_PARAMETERS
Name and type | Description | Access macros
int ht | Number of actual parameters passed by user | ZEND_NUM_ARGS()
zval *return_value | Pointer to a PHP variable that can be filled with the return value passed to the user. The default type is IS_NULL. | RETVAL_*, RETURN_*
zval **return_value_ptr | When returning references to PHP set this to a pointer to your variable. It is not suggested to return references. |
zval *this_ptr | If this is a method call, points to the PHP variable holding the $this object. | getThis()
int return_value_used | Flag indicating whether the returned value will be used by the caller. |

For clarity, the fully expanded declaration for PHP_FUNCTION(hackers_function) looks like:

void zif_hackers_function(int ht, zval* return_value, zval** return_value_ptr, zval* this_ptr, int return_value_used)

The presence of this_ptr may be confusing, classes are covered in detail in later sections, suffice to say that PHP_METHOD(MyClass, hackersFunction) would result in the following declaration:

void zim_MyClass_hackersFunction(INTERNAL_FUNCTION_PARAMETERS)

hackers_function doesn't do anything useful, it accepts a number using the zend_parse_parameters API, doubles it, and returns it to the engine. It is obvious that a normal function would have to do something more complex than double the input, for the purposes of education we are keeping it simple. On entry to the function return_value is allocated and initialized to null, making null the default return value of any function in PHP.

If zend_parse_parameters does not recieve what is specified by the Hacker as the correct arguments, and the arguments recieved cannot be converted to conform with type_spec an error will be raised, and by convention, the Hacker should return immediately.

Замечание:

Arrays, Objects, and Resources cannot be converted.

Parsing Parameters Prototypes
int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...)
int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...)
int zend_parse_parameter(int flags, int arg_num TSRMLS_DC, zval **arg, const char *spec, ...)

Замечание:

zend_parse_parameter is available from version 5.5, it behaves like zend_parse_parameters_ex except that instead of reading the arguments from the stack, it receives a single zval to convert, which may be changed in place.

Замечание:

flags is intended to be a mask, currently only ZEND_PARSE_PARAMS_QUIET will have any impact (supress warnings)

The variable arguments recieved by these API functions are expected to be the address of C variables, and should be considered the output of the zend_parse_parameters API functions.

Type Specifiers
Spec | Type | Locals
a | array | zval*
A | array or object | zval*
b | boolean | zend_bool
C | class | zend_class_entry*
d | double | double
f | function | zend_fcall_info*, zend_fcall_info_cache*
h | array | HashTable*
H | array or object | HashTable*
l | long | long
L | long (limits out-of-range LONG_MAX/LONG_MIN) | long
o | object | zval*
O | object (of specified zend_class_entry) | zval*, zend_class_entry*
p | string (a valid path) | char*, int
r | resource | zval*
s | string | char*, int
z | mixed | zval*
Z | mixed | zval**

Замечание:

Where the type specifier is O, the local zend_class_entry* is to be considered input (part of the type spec) to zend_parse_parameter

Advanced Type Specifiers
Spec | Description
* | a variable number of argument of the preceeding type, 0 or more
+ | a variable number of argument of the preceeding type, 1 or more
| | indicates that the remaining parameters are optional
/ | SEPARATE_ZVAL_IF_NOT_REF on the parameter it follows
! | the preceeding parameter can be of the specified type or null For 'b', 'l' and 'd', an extra argument of type zend_bool* must be passed after the corresponding bool*, long* or double* addresses which will be set true if null is recieved.

Замечание:

Consult README.PARAMETER_PARSING_API included in source distributions for more information on parsing parameters

Once the Hacker's function has executed whatever it was implemented to execute, it is time to set the return_value for the engine. The RETURN_ and RETVAL_ macros are just wrappers around Z_*_P macros that work with return_value.

Замечание:

RETURN_ macros cause execution to leave the function immediately (ie: return;), while RETVAL_ macros allow execution to continue after return_value has been set.

The Hacker should now have a reasonable understanding of the anatomy of a function, and to some degree, the anatomy of a method.


  • « Writing Functions
  • Working with Resources »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Writing Classes

Writing Classes


  • « Writing Classes
  • Working with INI settings »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Working with Resources

Working with Resources

This section will serve to introduce the Hacker to the concept and usage of Resources in PHP.


  • « Working with Resources
  • Working with streams »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Working with INI settings

Working with INI settings


Working with streams

Замечание:

Information on using streams within the PHP source code can be found in the Streams API for PHP Extension Authors reference.


The "counter" Extension - A Continuing Example

Содержание

  • Установка и настройка
  • Предопределенные константы
  • Примеры
  • Counter
  • Basic
  • Extended

Preface

Throughout this Zend documentation, references are made to an example module in order to illustrate various concepts. The "counter" extension is this example, a fictional yet functional Zend module which strives to use as much of the Zend API as is reasonably possible. This short chapter describes the userland interface to the completed extension.

Замечание: "counter" serves no practical purpose whatsoever, as the functionality it provides is far more effectively implemented by appropriate userland code.


  • « The "counter" Extension - A Continuing Example
  • Введение »
  • PHP Manual
  • The "counter" Extension - A Continuing Example
  • Установка и настройка

Установка и настройка

Содержание

  • Введение
  • Настройка во время выполнения
  • Типы ресурсов


Введение

The "counter" extension provides any number of counters to PHP code using it which reset at times determined by the caller.

There are three interfaces to "counter": basic, extended, and objective. The basic interface provides a single counter controlled by INI settings and function calls. The extended interface provides an arbitrary number of named counter resources which may optionally persist beyond the lifetime of a single PHP request. The objective interface combines both the basic and extended interfaces into a Counter class.


Настройка во время выполнения

Поведение этих функций зависит от установок в php.ini.

Counter configuration options
Name | Default | Changeable | Changelog
counter.reset_time | COUNTER_RESET_PER_REQUEST | PHP_INI_ALL |
counter.save_path | "" | PHP_INI_ALL |
counter.initial_value | "0" | PHP_INI_ALL |

Для подробного описания констант PHP_INI_*, обратитесь к разделу Где могут быть установлены параметры конфигурации.

counter.reset_time integer
counter.reset_time tells "counter" to reset the counter used by the basic interface. It may be any of the COUNTER_RESET_* constants (see below).
counter.save_path string
Tells "counter" where to save data that has to persist between invocations of PHP (i.e. any counter that has COUNTER_RESET_NEVER or COUNTER_FLAG_SAVE). A file will be created at this path, which must be readable and writable to whatever user PHP is running as.
counter.initial_value integer
Sets the initial value of the counter used by the basic interface whenever it is reset.


  • « Настройка во время выполнения
  • Предопределенные константы »
  • PHP Manual
  • Установка и настройка
  • Типы ресурсов

Типы ресурсов

The "counter" extension defines one resource type: a counter.


Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение было подгружено во время выполнения.

COUNTER_FLAG_PERSIST (integer)
A counter with this flag will be created as a persistent resource.
COUNTER_FLAG_SAVE (integer)
A counter with this flag will be saved between invocations of PHP.
COUNTER_FLAG_NO_OVERWRITE (integer)
This flag causes counter_create() to avoid overwriting an existing named counter with a new one.
COUNTER_META_NAME (string)
Pass this constant to get the name of a counter resource or object.
COUNTER_META_IS_PERISTENT (string)
Pass this constant to determine whether a counter resource or object is persistent (has the COUNTER_FLAG_PERSIST flag).
COUNTER_RESET_NEVER (integer)
The counter will never be reset.
COUNTER_RESET_PER_LOAD (integer)
The counter will be reset on each invocation of PHP.
COUNTER_RESET_PER_REQUEST (integer)
The counter will be reset on each request.


  • « Предопределенные константы
  • Basic interface »
  • PHP Manual
  • The "counter" Extension - A Continuing Example
  • Примеры

Примеры

Содержание

  • Basic interface
  • Extended interface
  • Objective interface


Basic interface

The basic interface provides three simple functions, illustrated here:

Пример #1 "counter"'s basic interface

<?php
$starting_counter_value = counter_get();
counter_bump(1);
$second_counter_value = counter_get();
counter_reset();
$final_counter_value = counter_get();
printf("%3d %3d %3d", $starting_counter_value, $second_counter_value, $final_counter_value);
?>

Результат выполнения данного примера:

  0   1   0

The basic interface also provides a number of INI settings.


Extended interface

The extended interface provides a small suite of functions that allow the user to define an arbitrary number of named counters with unique settings. The basic interface can be used in parallel with the extended interface.

Пример #1 "counter"'s extended interface

<?php
function print_counter_info($counter)
{
    if (is_resource($counter)) {
        printf("Counter's name is '%s' and is%s persistent. Its current value is %d.\n",
            counter_get_meta($counter, COUNTER_META_NAME),
            counter_get_meta($counter, COUNTER_META_IS_PERSISTENT) ? '' : ' not',
            counter_get_value($counter));
    } else {
      print "Not a valid counter!\n";
    }
}

if (($counter_one = counter_get_named("one")) === NULL) {
    $counter_one = counter_create("one", 0, COUNTER_FLAG_PERSIST);
}
counter_bump_value($counter_one, 2);
$counter_two = counter_create("two", 5);
$counter_three = counter_get_named("three");
$counter_four = counter_create("four", 2, COUNTER_FLAG_PERSIST | COUNTER_FLAG_SAVE | COUNTER_FLAG_NO_OVERWRITE);
counter_bump_value($counter_four, 1);

print_counter_info($counter_one);
print_counter_info($counter_two);
print_counter_info($counter_three);
print_counter_info($counter_four);
?>

When run once, the above example outputs:

Counter's name is 'one' and is persistent. Its current value is 2.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 3.

If run a second time within the same instance of PHP, it outputs:

Counter's name is 'one' and is persistent. Its current value is 4.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 4.

If then run a third time in a different instance of PHP, it outputs:

Counter's name is 'one' and is persistent. Its current value is 2.
Counter's name is 'two' and is not persistent. Its current value is 5.
Not a valid counter!
Counter's name is 'four' and is persistent. Its current value is 5.


Objective interface

The objective interface provides an object-oriented way to access the extended interfaces. The following example shows how the above one would be implemented using the objective interface. The output of this example is exactly the same, except that instead of printing "Not a valid counter!", this will instead issue a PHP warning that the variable $counter_three is not an object. This example shows that it is possible to subclass the Counter class defined by the extension, as well as that the counter's value is maintained using an instance variable rather than method access.

Пример #1 "counter"'s objective interface

<?php
class MyCounter extends Counter
{
    public function printCounterInfo() {
        printf("Counter's name is '%s' and is%s persistent. Its current value is %d.\n",
            $this->getMeta(COUNTER_META_NAME),
            $this->getMeta(COUNTER_META_IS_PERSISTENT) ? '' : ' not',
            $this->value);
    }
}

Counter::setCounterClass("MyCounter");
if (($counter_one = Counter::getNamed("one")) === NULL) {
    $counter_one = new Counter("one", 0, COUNTER_FLAG_PERSIST);
}
$counter_one->bumpValue(2); // we aren't allowed to "set" the value directly
$counter_two = new Counter("two", 5);
$counter_three = Counter::getNamed("three");
$counter_four = new Counter("four", 2, COUNTER_FLAG_PERSIST | COUNTER_FLAG_SAVE | COUNTER_FLAG_NO_OVERWRITE);
$counter_four->bumpValue(1);

$counter_one->printCounterInfo();
$counter_two->printCounterInfo();
$counter_three->printCounterInfo();
$counter_four->printCounterInfo();
?>


The Counter class

Введение

Represents a single counter object.

Обзор классов

Counter {
__construct ( string $name [, integer $initial_value [, integer $flags ]] )
integer getValue ( void )
bumpValue ( integer $offset )
voidresetValue ( void )
mixed getMeta ( integer $attribute )
static Counter getNamed ( string $name )
static voidsetCounterClass ( string $name )
}

Содержание

  • Counter::__construct — Creates an instance of a Counter which maintains a single numeric value.
  • Counter::getValue — Get the current value of a counter.
  • Counter::bumpValue — Change the current value of a counter.
  • Counter::resetValue — Reset the current value of a counter.
  • Counter::getMeta — Return a piece of metainformation about a counter.
  • Counter::getNamed — Retrieve an existing named counter.
  • Counter::setCounterClass — Set the class returned by Counter::getNamed.


Creates an instance of a Counter which maintains a single numeric value.

  • « Counter
  • Counter::getValue »
  • PHP Manual
  • Counter
  • Creates an instance of a Counter which maintains a single numeric value.

Counter::__construct

Counter::__construct — Creates an instance of a Counter which maintains a single numeric value.

Описание

Counter::__construct ( string $name [, integer $initial_value [, integer $flags ]] )

Creates an instance of a Counter which maintains a single numeric value.

Список параметров

name
The new counter's name.
initial_value
The initial value of the counter. Defaults to zero (0).
flags
Flags for the new counter, chosen from the COUNTER_FLAG_* constants.

Возвращаемые значения

Returns a Counter object on success.

Ошибки

Counter::__construct() throws an Exception if something goes wrong.


Get the current value of a counter.

  • « Counter::__construct
  • Counter::bumpValue »
  • PHP Manual
  • Counter
  • Get the current value of a counter.

Counter::getValue

Counter::getValue — Get the current value of a counter.

Описание

integer Counter::getValue ( void )

Counter::getValue() returns the current value of a counter.

Возвращаемые значения

Counter::getValue() returns an integer.

Смотрите также

  • Counter::bumpValue() - Change the current value of a counter.
  • Counter::resetValue() - Reset the current value of a counter.


Change the current value of a counter.

  • « Counter::getValue
  • Counter::resetValue »
  • PHP Manual
  • Counter
  • Change the current value of a counter.

Counter::bumpValue

Counter::bumpValue — Change the current value of a counter.

Описание

Counter::bumpValue ( integer $offset )

Counter::bumpValue() updates the current value of a counter.

Список параметров

offset
The amount by which to change the counter's value. Can be negative.

Смотрите также

  • Counter::getValue() - Get the current value of a counter.
  • Counter::resetValue() - Reset the current value of a counter.


Reset the current value of a counter.

  • « Counter::bumpValue
  • Counter::getMeta »
  • PHP Manual
  • Counter
  • Reset the current value of a counter.

Counter::resetValue

Counter::resetValue — Reset the current value of a counter.

Описание

voidCounter::resetValue ( void )

Counter::resetValue() resets the current value of a counter to its original initial value.

Смотрите также

  • Counter::getValue() - Get the current value of a counter.
  • Counter::bumpValue() - Change the current value of a counter.


Return a piece of metainformation about a counter.

  • « Counter::resetValue
  • Counter::getNamed »
  • PHP Manual
  • Counter
  • Return a piece of metainformation about a counter.

Counter::getMeta

Counter::getMeta — Return a piece of metainformation about a counter.

Описание

mixed Counter::getMeta ( integer $attribute )

Counter::getMeta() returns metainformation about a counter.

Список параметров

attribute
The metainformation to retrieve.

Возвращаемые значения

Counter::getMeta() returns values of varying types based on which metainformation was requested.


Retrieve an existing named counter.

  • « Counter::getMeta
  • Counter::setCounterClass »
  • PHP Manual
  • Counter
  • Retrieve an existing named counter.

Counter::getNamed

Counter::getNamed — Retrieve an existing named counter.

Описание

static Counter Counter::getNamed ( string $name )

Counter::getNamed() returns an existing counter by name if that name exists, or NULL otherwise. This is a static function.

Список параметров

name
The counter name to search for.

Возвращаемые значения

Counter::getNamed() returns an existing counter by name if that name exists, or NULL otherwise.


Set the class returned by Counter::getNamed.

  • « Counter::getNamed
  • Basic »
  • PHP Manual
  • Counter
  • Set the class returned by Counter::getNamed.

Counter::setCounterClass

Counter::setCounterClass — Set the class returned by Counter::getNamed().

Описание

static voidCounter::setCounterClass ( string $name )

Counter::setCounterClass() changes the class of objects returned by Counter::getNamed(). The class being set must not have a public constructor and must be a subclass of Counter. If these conditions are not met, a fatal error is raised. This is a static function.

Список параметров

name
The name of the class to use.


The basic interface

Содержание

  • counter_get — Get the current value of the basic counter.
  • counter_bump — Update the current value of the basic counter.
  • counter_reset — Reset the current value of the basic counter.


Get the current value of the basic counter.

  • « Basic
  • counter_bump »
  • PHP Manual
  • Basic
  • Get the current value of the basic counter.

counter_get

counter_get — Get the current value of the basic counter.

Описание

integer counter_get ( void )

counter_get() returns the current value of the basic interface's counter.

Возвращаемые значения

counter_get() returns an integer.

Смотрите также

  • counter_bump() - Update the current value of the basic counter.
  • counter_reset() - Reset the current value of the basic counter.


Update the current value of the basic counter.

  • « counter_get
  • counter_reset »
  • PHP Manual
  • Basic
  • Update the current value of the basic counter.

counter_bump

counter_bump — Update the current value of the basic counter.

Описание

voidcounter_bump ( integer $offset )

counter_bump() updates the current value of the basic interface's counter.

Список параметров

offset
The amount by which to change the counter's value. Can be negative.

Смотрите также

  • counter_get() - Get the current value of the basic counter.
  • counter_reset() - Reset the current value of the basic counter.


Reset the current value of the basic counter.

  • « counter_bump
  • Extended »
  • PHP Manual
  • Basic
  • Reset the current value of the basic counter.

counter_reset

counter_reset — Reset the current value of the basic counter.

Описание

voidcounter_reset ( void )

counter_reset() resets the current value of the basic interface's counter to its original initial value.

Смотрите также

  • counter_get() - Get the current value of the basic counter.
  • counter_bump() - Update the current value of the basic counter.


The extended interface

Содержание

  • counter_create — Creates a counter which maintains a single numeric value.
  • counter_get_value — Get the current value of a counter resource.
  • counter_bump_value — Change the current value of a counter resource.
  • counter_reset_value — Reset the current value of a counter resource.
  • counter_get_meta — Return a piece of metainformation about a counter resource.
  • counter_get_named — Retrieve an existing named counter as a resource.


Creates a counter which maintains a single numeric value.

  • « Extended
  • counter_get_value »
  • PHP Manual
  • Extended
  • Creates a counter which maintains a single numeric value.

counter_create

counter_create — Creates a counter which maintains a single numeric value.

Описание

resource counter_create ( string $name [, integer $initial_value [, integer $flags ]] )

Creates a counter which maintains a single numeric value.

Список параметров

name
The new counter's name.
initial_value
The initial value of the counter. Defaults to zero (0).
flags
Flags for the new counter, chosen from the COUNTER_FLAG_* constants.

Возвращаемые значения

Returns a counter resource.


Get the current value of a counter resource.

  • « counter_create
  • counter_bump_value »
  • PHP Manual
  • Extended
  • Get the current value of a counter resource.

counter_get_value

counter_get_value — Get the current value of a counter resource.

Описание

integer counter_get_value ( resource $counter )

counter_get_value() returns the current value of a counter resource.

Список параметров

counter
The counter resource to operate on.

Возвращаемые значения

counter_get_value() returns an integer.

Смотрите также

  • counter_bump_value() - Change the current value of a counter resource.
  • counter_reset_value() - Reset the current value of a counter resource.


Change the current value of a counter resource.

  • « counter_get_value
  • counter_reset_value »
  • PHP Manual
  • Extended
  • Change the current value of a counter resource.

counter_bump_value

counter_bump_value — Change the current value of a counter resource.

Описание

voidcounter_bump_value ( resource $counter , integer $offset )

counter_bump_value() updates the current value of a counter resource.

Список параметров

counter
The counter resource to operate on.
offset
The amount by which to change the counter's value. Can be negative.

Смотрите также

  • counter_get_value() - Get the current value of a counter resource.
  • counter_reset_value() - Reset the current value of a counter resource.


Reset the current value of a counter resource.

  • « counter_bump_value
  • counter_get_meta »
  • PHP Manual
  • Extended
  • Reset the current value of a counter resource.

counter_reset_value

counter_reset_value — Reset the current value of a counter resource.

Описание

voidcounter_reset_value ( resource $counter )

counter_reset_value() resets the current value of a counter resource to its original initial value.

Список параметров

counter
The counter resource to operate on.

Смотрите также

  • counter_get_value() - Get the current value of a counter resource.
  • counter_bump_value() - Change the current value of a counter resource.


Return a piece of metainformation about a counter resource.

  • « counter_reset_value
  • counter_get_named »
  • PHP Manual
  • Extended
  • Return a piece of metainformation about a counter resource.

counter_get_meta

counter_get_meta — Return a piece of metainformation about a counter resource.

Описание

mixed counter_get_meta ( resource $counter , integer $attribute )

counter_get_meta() returns metainformation about a counter resource.

Список параметров

counter
The counter resource to operate on.
attribute
The metainformation to retrieve.

Возвращаемые значения

counter_get_meta() returns values of varying types based on which metainformation was requested.


Retrieve an existing named counter as a resource.

  • « counter_get_meta
  • The PHP 5 build system »
  • PHP Manual
  • Extended
  • Retrieve an existing named counter as a resource.

counter_get_named

counter_get_named — Retrieve an existing named counter as a resource.

Описание

resource Counter::getNamed ( string $name )

counter_get_named() returns an existing counter by name if that name exists, or NULL otherwise.

Список параметров

name
The counter name to search for.

Возвращаемые значения

counter_get_name() returns an existing counter by name if that name exists, or NULL otherwise.


The PHP 5 build system

Содержание

  • Building PHP for extension development
  • The ext_skel script
  • Talking to the UNIX build system: config.m4
  • Talking to the Windows build system: config.w32

With all the functionality and flexibility available in PHP 5, it is no surprise that it consists of several thousand files and over one million lines of source code. Equally unsurprising is the necessity of a build system to manage so much data. This section describes how to set PHP up for extension development, the layout of an extension within the PHP source tree, and how to interface your extension with the build system.


Building PHP for extension development

In a typical PHP installation, the need for high performance almost always results in optimization at the cost of debugging facilities. This is a reasonable tradeoff for production use, but when developing an extension it falls short. What we need is a build of PHP which will give us some hints what has gone wrong when something does.

The Zend Engine provides a memory manager which is capable of tracking memory leaks in extensions and providing detailed debugging information. This tracking is disabled by default, as is thread-safety. To turn them on, pass the --enable-debug and --enable-maintainer-zts options to configure, along with whatever options you typically use. For instructions on building PHP from source, see the instructions at Общие инструкции по установке. A typical configure line might look like this:

$ ./configure --prefix=/where/to/install/php --enable-debug --enable-maintainer-zts --enable-cgi --enable-cli --with-mysql=/path/to/mysql


The ext_skel script

A PHP extension is composed of several files common to all extensions. As the details of many of those files are similar from extension to extension, it can be laborious to duplicate the content for each one. Fortunately, there is a script which can do all of the initial setup for you. It's called ext_skel, and it's been distributed with PHP since 4.0.

Running ext_skel with no parameters produces this output in PHP 5.2.2:

php-5.2.2/ext$ ./ext_skel
./ext_skel --extname=module [--proto=file] [--stubs=file] [--xml[=file]]
           [--skel=dir] [--full-xml] [--no-help]

  --extname=module   module is the name of your extension
  --proto=file       file contains prototypes of functions to create
  --stubs=file       generate only function stubs in file
  --xml              generate xml documentation to be added to phpdoc-cvs
  --skel=dir         path to the skeleton directory
  --full-xml         generate xml documentation for a self-contained extension
                     (not yet implemented)
  --no-help          don't try to be nice and create comments in the code
                     and helper functions to test if the module compiled
Generally, when developing a new extension the only parameters you will be interested in are --extname and --no-help. Unless you are already experienced with the structure of an extension, you will not want to use --no-help; specifying it causes ext_skel to leave out many helpful comments in the files it generates.

This leaves you with --extname, which tells ext_skel what the name of your extension is. This "name" is an all-lowercase identifier containing only letters and underscores which is unique among everything in the ext/ folder of your PHP distribution.

The --proto option is intended to allow the developer to specify a header file from which a set of PHP functions will be created, ostensibly for the purpose of developing an extension based on a library, but it often functions poorly with most modern header files. A test run on the zlib.h header resulted in a very large number of empty and nonsense prototypes in the ext_skel output files. The --xml and --full-xml options are entirely nonfunctional thus far. The --skel option can be used to specify a modified set of skeleton files to work from, a topic which is beyond the scope of this section.


Talking to the UNIX build system: config.m4

The config.m4 file for an extension tells the UNIX build system what configure options your extension supports, what external libraries and includes you require, and what source files are to be compiled as part of it. A reference to all the commonly used autoconf macros, both PHP-specific and those built into autoconf, is given in the Zend Engine 2 API reference section.

Подсказка

The version of autoconf you have installed makes a difference when developing an extension. For PHP 5.3 and earlier, you will have the best results with autoconf version 2.13 but versions up to and including 2.59 will work. For PHP 5.4 and later the oldest autoconf version you can use is 2.59 and you will have better results with later versions.

Пример #1 An example config.m4 file

dnl $Id$
dnl config.m4 for extension example
PHP_ARG_WITH(example, for example support,
[  --with-example[=FILE]       Include example support. File is the optional path to example-config])
PHP_ARG_ENABLE(example-debug, whether to enable debugging support in example,
[  --enable-example-debug        example: Enable debugging support in example], no, no)
PHP_ARG_WITH(example-extra, for extra libraries for example,
[  --with-example-extra=DIR      example: Location of extra libraries for example], no, no)

dnl Check whether the extension is enabled at all
if test "$PHP_EXAMPLE" != "no"; then

  dnl Check for example-config. First try any path that was given to us, then look in $PATH
  AC_MSG_CHECKING([for example-config])
  EXAMPLE_CONFIG="example-config"
  if test "$PHP_EXAMPLE" != "yes"; then
    EXAMPLE_PATH=$PHP_EXAMPLE
  else
    EXAMPLE_PATH=`$php_shtool path $EXAMPLE_CONFIG`
  fi

  dnl If a usable example-config was found, use it
  if test -f "$EXAMPLE_PATH" && test -x "$EXAMPLE_PATH" && $EXAMPLE_PATH --version > /dev/null 2>&1; then
    AC_MSG_RESULT([$EXAMPLE_PATH])
    EXAMPLE_LIB_NAME=`$EXAMPLE_PATH --libname`
    EXAMPLE_INCDIRS=`$EXAMPLE_PATH --incdirs`
    EXAMPLE_LIBS=`$EXAMPLE_PATH --libs`

    dnl Check that the library works properly
    PHP_CHECK_LIBRARY($EXAMPLE_LIB_NAME, example_critical_function,
    [
      dnl Add the necessary include dirs
      PHP_EVAL_INCLINE($EXAMPLE_INCDIRS)
      dnl Add the necessary libraries and library dirs
      PHP_EVAL_LIBLINE($EXAMPLE_LIBS, EXAMPLE_SHARED_LIBADD)
    ],[
      dnl Bail out
      AC_MSG_ERROR([example library not found. Check config.log for more information.])
    ],[$EXAMPLE_LIBS]
    )
  else
    dnl No usable example-config, bail
    AC_MSG_RESULT([not found])
    AC_MSG_ERROR([Please check your example installation.])
  fi

  dnl Check whether to enable debugging
  if test "$PHP_EXAMPLE_DEBUG" != "no"; then
    dnl Yes, so set the C macro
    AC_DEFINE(USE_EXAMPLE_DEBUG,1,[Include debugging support in example])
  fi

  dnl Check for the extra support
  if test "$PHP_EXAMPLE_EXTRA" != "no"; then
    if test "$PHP_EXAMPLE_EXTRA" == "yes"; then
      AC_MSG_ERROR([You must specify a path when using --with-example-extra])
    fi

    PHP_CHECK_LIBRARY(example-extra, example_critical_extra_function,
    [
      dnl Add the neccessary paths
      PHP_ADD_INCLUDE($PHP_EXAMPLE_EXTRA/include)
      PHP_ADD_LIBRARY_WITH_PATH(example-extra, $PHP_EXAMPLE_EXTRA/lib, EXAMPLE_SHARED_LIBADD)
      AC_DEFINE(HAVE_EXAMPLEEXTRALIB,1,[Whether example-extra support is present and requested])
      EXAMPLE_SOURCES="$EXAMPLE_SOURCES example_extra.c"
    ],[
      AC_MSG_ERROR([example-extra lib not found. See config.log for more information.])
    ],[-L$PHP_EXAMPLE_EXTRA/lib]
    )
  fi

  dnl Finally, tell the build system about the extension and what files are needed
  PHP_NEW_EXTENSION(example, example.c $EXAMPLE_SOURCES, $ext_shared)
  PHP_SUBST(EXAMPLE_SHARED_LIBADD)
fi

A short introduction to autoconf syntax

config.m4 files are written using the GNU autoconf syntax. It can be described in a nutshell as shell scripting augmented by a powerful macro language. Comments are delimited by the string dnl, and strings are quoted using left and right brackets (e.g. [ and ]). Quoting of strings can be nested as many times as needed. A full reference to the syntax can be found in the autoconf manual at » http://www.gnu.org/software/autoconf/manual/.

PHP_ARG_*: Giving users the option

The very first thing seen in the example config.m4 above, aside from a couple of comments, are three lines using PHP_ARG_WITH() and PHP_ARG_ENABLE(). These provide configure with the options and help text seen when running ./configure --help. As the names suggest, the difference between the two is whether they create a --with-* option or an --enable-* option. Every extension should provide at least one or the other with the extension name, so that users can choose whether or not to build the extension into PHP. By convention, PHP_ARG_WITH() is used for an option which takes a parameter, such as the location of a library or program required by an extension, while PHP_ARG_ENABLE() is used for an option which represents a simple flag.

Пример #2 Sample configure output

$ ./configure --help
...
  --with-example[=FILE]       Include example support. FILE is the optional path to example-config
  --enable-example-debug        example: Enable debugging support in example
  --with-example-extra=DIR      example: Location of extra libraries for example
...

$ ./configure --with-example=/some/library/path/example-config --disable-example-debug --with-example-extra=/another/library/path
...
checking for example support... yes
checking whether to enable debugging support in example... no
checking for extra libraries for example... /another/library/path
...

Замечание:

Regardless of the order in which options are specified on the command line when configure is called, the checks will be run in the order they are specified in config.m4.

Processing the user's choices

Now that config.m4 can provide the user with some choices of what to do, it's time to act upon those choices. In the example above, the obvious default for all three options, if any of them are unspecified, is "no". As a matter of convention, it is best to use this as the default for the option which enables the extension, as it will be overridden by phpize for extensions built separately, and should not clutter the extension space by default when being built into PHP. The code to process the three options is by far the most complicated.

Handling the --with-example[=FILE] option

The first check made of the --with-example[=FILE] option is whether it was set at all. As this option controls the inclusion of the entire extension, if it was unspecified, given in the negative form (--without-example ), or given the value "no", nothing else is done at all. In the example above, it is specified with the value /some/library/path/example-config, so the first test succeeds.

Next, the code calls AC_MSG_CHECKING(), an autoconf macro which outputs a standard "checking for something" line, and checks whether the user gave an explicit path to the fictional example-config. In this example, PHP_EXAMPLE got the value /some/library/path/example-config, which is now copied into the EXAMPLE_PATH variable. Had the user specified only --with-example , the code would have executed $php_shtool path $EXAMPLE_CONFIG, which would try to guess the location of example-config using the user's current PATH. Either way, the next step is to check whether the chosen EXAMPLE_PATH is a regular file, is executable, and can be run successfully. If so, AC_MSG_RESULT() is called, which completes the output line started by AC_MSG_CHECKING(). Otherwise, AC_MSG_ERROR() is called, which prints the given message and halts configure immediately.

The code now determines some site-specific configuration information by running example-config several times. The next call is to PHP_CHECK_LIBRARY(), a macro provided by the PHP buildsystem as a wrapper around autoconf's AC_CHECK_LIB(). PHP_CHECK_LIBRARY() attempts to compile, link, and run a program which calls the symbol specified by the second parameter in the library specified by the first, using the string given in the fifth as extra linker options. If the attempt succeeds, the script given in the third parameter is run. This script tells the PHP buildsystem to extract include paths, library paths, and library names from the raw option strings example-config provided. If the attempt fails, the script in the fourth parameter is run instead. In this case, AC_MSG_ERROR() is called to stop processing.

Handling the --enable-example-debug option

Processing the --enable-example-debug is much simpler. A simple check for its truth value is performed. If that check succeeds, AC_DEFINE() is called to make the C macro USE_EXAMPLE_DEBUG available to the source of the extension. The third parameter is a comment string for config.h; it is safe to leave this empty, and often is.

Handling the --with-example-extra=DIR option

For the sake of this example, the fictional "extra" functionality requested by the --with-example-extra=DIR option does not share the fictional example-config program, nor does it have any default paths to search. Therefore, the user is required to provide the installation prefix of the necessary library. This setup is somewhat unlikely in a real-world extension, but is considered illustrative.

The code begins in a now-familiar way by checking the truth value of PHP_EXAMPLE_EXTRA. If a negative form was provided, no further processing is done; the user did not request extra functionality. If a positive form was provided without a parameter, AC_MSG_ERROR() is called to halt processing. The next step is another invocation of PHP_CHECK_LIBRARY(). This time, since there is no set of predefined compiler options provided, PHP_ADD_INCLUDE() and PHP_ADD_LIBRARY_WITH_PATH() are used to construct the necessary include paths, library paths, and library flags for the extra functionality. AC_DEFINE() is also called to indicate to the code that the extra functionality was both requested and available, and a variable is set to tell later code that there are extra source files to build. If the check fails, the familiar AC_MSG_ERROR() is called. A different way to handle the failure would have been to call AC_MSG_WARNING() instead, e.g.:

AC_MSG_WARNING([example-extra lib not found. example will be built without extra functionality.])

In this case, configure would print a warning message rather than an error, and continue processing. Which way such failures are handled is a design decision left to the extension developer.

Telling the buildsystem what was decided

With all the necessary includes and libraries specified, with all the options processed and macros defined, one more thing remains to be done: The build system must be told to build the extension itself, and which files are to be used for that. To do this, the PHP_NEW_EXTENSION() macro is called. The first parameter is the name of the extension, which is the same as the name of the directory containing it. The second parameter is the list of all source files which are part of the extension. See PHP_ADD_BUILD_DIR() for information about adding source files in subdirectories to the build process. The third parameter should always be $ext_shared, a value which was determined by configure when PHP_ARG_WITH() was called for --with-example[=FILE] . The fourth parameter specifies a "SAPI class", and is only useful for extensions which require the CGI or CLI SAPIs specifically. It should be left empty in all other cases. The fifth parameter specifies a list of flags to be added to CFLAGS while building the extension; the sixth is a boolean value which, if "yes", will force the entire extension to be built using $CXX instead of $CC. All parameters after the third are optional. Finally, PHP_SUBST() is called to enable shared builds of the extension. See Extension FAQs for more information on disabling support for building an extension in shared mode.

The counter extension's config.m4 file

The counter extension previously documented has a much simpler config.m4 file than that described above, as it doesn't make use of many buildsystem features. This is a preferred method of operation for any extension that doesn't use an external or bundled library.

Пример #3 counter's config.m4 file

dnl
$
Id$
dnl config.m4 for extension counter

PHP_ARG_ENABLE(counter, for counter support,
[  --enable-counter            Include counter support])

dnl Check whether the extension is enabled at all
if test "$PHP_COUNTER" != "no"; then
  dnl Finally, tell the build system about the extension and what files are needed
  PHP_NEW_EXTENSION(counter, counter.c counter_util.c, $ext_shared)
  PHP_SUBST(COUNTER_SHARED_LIBADD)
fi


Talking to the Windows build system: config.w32

An extension's config.w32 file is similar in usage to the config.m4 file, with two critical differences: first, it is used for Windows builds, and second, it is written in JavaScript. This section makes no attempt to cover JavaScript syntax. For the moment, this section is incomplete in lieu of a Win32 testbed, and an experimental-only port of the example config.m4 is the only example provided.

Пример #1 An example config.w32 file

// $Id$
// vim:ft=javascript
ARG_WITH("example", "for example support", "no");
ARG_ENABLE("example-debug", "for debugging support in example", "no")
ARG_WITH("example-extra", "for extra functionality in example", "no")
if (PHP_EXAMPLE != "no") {
    if (CHECK_LIB("libexample.lib", "example", PHP_EXAMPLE) &&
        CHECK_HEADER_ADD_INCLUDE("example.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + "\\include")) {

        if (PHP_EXAMPLE_DEBUG != "no") {
            AC_DEFINE('USE_EXAMPLE_DEBUG', 1, 'Debug support in example');
        }

        if (PHP_EXAMPLE_EXTRA != "no" &&
            CHECK_LIB("libexample-extra.lib", "example", PHP_EXAMPLE) &&
            CHECK_HEADER_ADD_INCLUDE("example-extra.h", "CFLAGS_EXAMPLE", PHP_EXAMPLE + ";" + PHP_PHP_BUILD + "\\include") {
            AC_DEFINE('HAVE_EXAMPLEEXTRA', 1, 'Extra functionality in example');
            HAVE_EXTRA = 1;
        } else {
            WARNING( "extra example functionality not enabled, lib not found" );
        }

        EXTENSION("example", "example.c");
        if (HAVE_EXTRA == 1) {
            ADD_SOURCES("example-extra.c");
        }
    } else {
        WARNING( "example not enabled; libraries not found" );
    }
}

The counter extension's config.w32 file

The counter extension previously documented has a much simpler config.w32 file than that described above, as it doesn't make use of many buildsystem features.

Пример #2 counter's config.w32 file

// $Id$
// vim:ft=javascript
ARG_ENABLE("counter", "for counter support", "no");
if (PHP_COUNTER != "no") {
    EXTENSION("counter", "counter.c");
    ADD_SOURCE("counter-util.c");
}


Extension structure

Содержание

  • Files which make up an extension
  • Basic constructs
  • The zend_module structure
  • Extension globals
  • Life cycle of an extension
  • Testing an extension

Many extension-writing guides focus on simple examples first and ignore the requirements of more complex implementations until later. Often such guides must repeat themselves over and over in order to describe these new features. This section describes extension structure from the perspective of a mature, practical implementation, in order to prepare users for needs and issues they will almost always encounter in the process of extension development.


Files which make up an extension

Whether created by hand, using ext_skel, or by an alternate extension generator, such as » CodeGen, all extensions will have at least four files:

config.m4

UNIX build system configuration (see Talking to the UNIX build system: config.m4)

config.w32

Windows buildsystem configuration (see Talking to the Windows build system: config.w32)

php_counter.h

When building an extension as static module into the PHP binary the build system expects a header file with php_ prepended to the extension name which includes a declaration for a pointer to the extension's module structure. This file usually contains additional macros, prototypes, and globals, just like any header.

counter.c

Main extension source file. By convention, the name of this file is the extension name, but this is not a requirement. This file contains the module structure declaration, INI entries, management functions, userspace functions, and other requirements of an extension.

The buildsystem files are discussed elsewhere; this section concentrates on the rest. These four files make up the bare minimum for an extension, which may also contain any number of headers, source files, unit tests, and other support files. The list of files in the counter extension might look like this:

Пример #1 Files in the counter extension, in no particular order

ext/
 counter/
  .svnignore
  config.m4
  config.w32
  counter_util.h
  counter_util.c
  php_counter.h
  counter.c
  package.xml
  CREDITS
  tests/
   critical_function_001.phpt
   critical_function_002.phpt
   optional_function_001.phpt
   optional_function_002.phpt

Non-source files

The .svnignore file is used for extensions which are checked into the PHP Subversion repository (usually » PECL); the one generated by ext_skel contains:

.deps
*.lo
*.la

These lines tell Subversion to ignore interim files generated by the PHP buildsystem. This is only a convenience, and can be omitted completely without ill effect.

The CREDITS file lists the contributors and/or maintainers of the extension in plain text format. The main purpose of this file is generating the credits information for bundled extensions as used by phpcredits(). By convention the first line of the file should hold the name of the extension, the second a comma separated list of contributors. The contributors are usually ordered by the chronological order of their contributions. In a » PECL package, this information is already maintained in package.xml, for example. This is another file which can be omitted without ill effect.

The package.xml file is specific to » PECL-based extensions; it is a metainformation file which gives details about an extension's dependencies, authors, installation requirements, and other tidbits. In an extension not being hosted in » PECL, this file is extraneous.


Basic constructs

C is a very low-level language by modern definitions. This means that it has no built-in support for many features that PHP takes for granted, such as reflection, dynamic module loading, bounds checking, threadsafe data management and various useful data structures including linked lists and hash tables. At the same time, C is a common denominator of language support and functionality. Given enough work, none of these concepts are impossible; the Zend Engine uses them all.

A lot of effort has gone into making the Zend API both extensible and understandable, but C forces certain necessary declarations upon any extension that to an inexperienced eye seem redundant or plain unnecessary. All of those constructs, detailed in this section, are "write once and forget" in Zend Engine 2 and 3. Here are some excerpts from the pre-generated php_counter.h and counter.c files created by PHP 5.3's ext_skel, showing the pre-generated declarations:

Замечание: The astute reader will notice that there are several declarations in the real files that aren't shown here. Those declarations are specific to various Zend subsystems and are discussed elsewhere as appropriate.

extern zend_module_entry counter_module_entry;
#define phpext_counter_ptr &counter_module_entry

#ifdef PHP_WIN32
#    define PHP_COUNTER_API __declspec(dllexport)
#elif defined(__GNUC__) && __GNUC__ >= 4
#    define PHP_COUNTER_API __attribute__ ((visibility("default")))
#else
#    define PHP_COUNTER_API
#endif

#ifdef ZTS
#include "TSRM.h"
#endif

#ifdef HAVE_CONFIG_H
#include "config.h"
#endif

#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_counter.h"

/* ... */

#ifdef COMPILE_DL_COUNTER
ZEND_GET_MODULE(counter)
#endif
  • The lines concerning counter_module_entry declare a global variable, and a macroed pointer to it, which contains the zend_module_entry for the extension. Despite the later discussion regarding the drawbacks of "true" globals, this usage is intentional; Zend takes precautions to avoid misusing this variable.
  • PHP_COUNTER_API is declared for use by non-PHP functions the module intends to export for the use of other modules. The counter extension doesn't declare any of these, and in the final version of the header file, this macro has been removed. The PHPAPI macro is declared identically elsewhere and is used by the standard extension to make the phpinfo() utility functions available to other extensions.
  • The include of TSRM.h is skipped if PHP, or the extension, isn't being compiled with thread-safety, since in that case TSRM isn't used.
  • A standard list of includes, especially the extension's own php_counter.h, is given. config.h gives the extension access to determinations made by configure. php.h is the gateway to the entire PHP and Zend APIs. php_ini.h adds the APIs for runtime configuration (INI) entries. Not all extensions will use this. Finally, ext/standard/info.h imports the aforementioned phpinfo() utility API.
  • COMPILE_DL_COUNTER will only be defined by configure if the counter extension is both enabled and wants to be built as a dynamically loadable module instead of being statically linked into PHP. ZEND_GET_MODULE defines a tiny function which Zend can use to get the extension's zend_module_entry at runtime.

    Замечание: The astute reader who has peeked into main/php_config.h after trying to build with the counter module enabled statically may have noticed that there is also a HAVE_COUNTER constant defined that the source code doesn't check for. There's a simple reason this check isn't done: It's unnecessary. If the extension isn't enabled, the source file will never be compiled.


The zend_module structure

The main source file of a PHP extension contains several new constructs for a C programmer. The most important of these, the one touched first when starting a new extension, is the zend_module structure. This structure contains a wealth of information that tells the Zend Engine about the extension's dependencies, version, callbacks, and other critical data. The structure has mutated considerably over time; this section will focus on the structure as it has appeared since PHP 5.2, and will identify the very few parts which have changed in PHP 5.3.

The zend_module declaration from counter.c looks like this before any code has been written. The example file was generated by ext_skel --extname=counter, with some obsolete constructs removed:

Пример #1 zend_module declaration in the counter extension

/* {{{ counter_module_entry
 */
zend_module_entry counter_module_entry = {
    STANDARD_MODULE_HEADER,
    "counter",
    counter_functions,
    PHP_MINIT(counter),
    PHP_MSHUTDOWN(counter),
    PHP_RINIT(counter),        /* Replace with NULL if there's nothing to do at request start */
    PHP_RSHUTDOWN(counter),    /* Replace with NULL if there's nothing to do at request end */
    PHP_MINFO(counter),
    "0.1", /* Replace with version number for your extension */
    STANDARD_MODULE_PROPERTIES
};
/* }}} */

This may look a bit daunting at first glance, but most of it is very simple to understand. Here's the declaration of zend_module from zend_modules.h in PHP 5.3:

Пример #2 zend_module definition in PHP 5.3

struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    const struct _zend_ini_entry *ini_entry;
    const struct _zend_module_dep *deps;
    const char *name;
    const struct _zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    const char *version;
    size_t globals_size;
#ifdef ZTS
    ts_rsrc_id* globals_id_ptr;
#else
    void* globals_ptr;
#endif
    void (*globals_ctor)(void *global TSRMLS_DC);
    void (*globals_dtor)(void *global TSRMLS_DC);
    int (*post_deactivate_func)(void);
    int module_started;
    unsigned char type;
    void *handle;
    int module_number;
};

Many of these fields will never be touched by an extension writer. There are a number of standard macros that set them to their proper values automatically. The macro STANDARD_MODULE_HEADER fills in everything up to the deps field. Alternatively, the STANDARD_MODULE_HEADER_EX will leave the deps field empty for the developer's use. The developer is always responsible for everything from name to version. After that, the STANDARD_MODULE_PROPERTIES macro will fill in the rest of the structure, or the STANDARD_MODULE_PROPERTIES_EX macro can be used to leave the extension globals and post-deactivation function fields unfilled. Most modern extensions will make use of module globals.

Замечание:

This table gives the values that each field would have if the developer were to fill in the structure entirely by hand, without recourse to any of the shortcut macros. This is not recommended. The "correct" values for many fields may change. Use the macros whenever possible.

Module structure field values
Field | Value | Description
size [1] [2] [3] | sizeof(zend_module_entry) | The size in bytes of the structure.
zend_api [1] [2] [3] | ZEND_MODULE_API_NO | The version of the Zend API this module was compiled against.
zend_debug [1] [2] [3] | ZEND_DEBUG | A flag indicating whether the module was compiled with debugging turned on.
zts [1] [2] [3] | USING_ZTS | A flag indicating whether the module was compiled with ZTS (TSRM) enabled (see Memory management).
ini_entry [1] [3] | NULL | This pointer is used internally by Zend to keep a non-local reference to any INI entries declared for the module.
deps [3] | NULL | A pointer to a list of dependencies for the module.
name | "mymodule" | The name of the module. This is the short name, such as "spl" or "standard".
functions | mymodule_functions | A pointer to the module's function table, which Zend uses to expose functions in the module to user space.
module_startup_func | PHP_MINIT(mymodule) | A callback function that Zend will call the first time a module is loaded into a particular instance of PHP.
module_shutdown_func | PHP_MSHUTDOWN(mymodule) | A callback function that Zend will call the when a module is unloaded from a particular instance of PHP, typically during final shutdown.
request_startup_func | PHP_RINIT(mymodule) | A callback function that Zend will call at the beginning of each request. This should be as short as possible or NULL as calling this has costs on every request.
request_shutdown_func | PHP_RSHUTDOWN(mymodule) | A callback function that Zend will call at the end of each request. This should be as short as possible or NULL as calling this has costs on every request.
info_func | PHP_MINFO(mymodule) | A callback function that Zend will call when the phpinfo() function is called.
version | NO_VERSION_YET | A string giving the version of the module, as specified by the module developer. It is recommended that the version number be either in the format expected by version_compare() (e.g. "1.0.5-dev"), or a CVS or SVN revision number (e.g. "$Rev: 322138 $").
globals_size [1] [4] [5] [6] | sizeof(zend_mymodule_globals) | The size of the data structure containing the module's globals, if any.
globals_id_ptr [1] [4] [5] [6] [7] | &mymodule_globals_id | Only one of these two fields will exist, depending upon whether the USING_ZTS constant is TRUE. The former is an index into TSRM's allocation table for the module's globals, and the latter is a pointer directly to the globals.
globals_ptr [1] [4] [5] [6] [8] | &mymodule_globals
globals_ctor [4] [5] [6] | PHP_GINIT(mymodule) | This funtion is called to initialize a module's globals before any module_startup_func.
globals_dtor [4] [5] [6] | PHP_GSHUTDOWN(mymodule) | This funtion is called to deallocate a module's globals after any module_shutdown_func.
post_deactivate_func [4] | ZEND_MODULE_POST_ZEND_DEACTIVATE_N(mymodule) | This function is called by Zend after request shutdown. It is rarely used.
module_started [1] [9] [4] | 0 | These fields are used for Zend's internal tracking information.
type [1] [9] [4] | 0
handle [1] [9] [4] | NULL
module_number [1] [9] [4] | 0
[1] This field is not intended for use by module developers. [2] This field is filled in by STANDARD_MODULE_HEADER_EX. [3] This field is filled in by STANDARD_MODULE_HEADER. [4] This field is filled in by STANDARD_MODULE_PROPERTIES. [5] This field is filled in by NO_MODULE_GLOBALS. [6] This field is filled in by PHP_MODULE_GLOBALS. [7] This field only exists when USING_ZTS is TRUE. [8] This field only exists when USING_ZTS is FALSE. [9] This field is filled in by STANDARD_MODULE_PROPERTIES_EX.

Filling in the structure in a practical situation

With all these fields to play with, it can be confusing to know which to use for what purpose. Here is the zend_module definition from the "counter" example extension after updating it to its final form.

Пример #3 Counter extension module definition

/* {{{ counter_module_entry
 */
zend_module_entry counter_module_entry = {
    STANDARD_MODULE_HEADER,
    "counter",
    counter_functions,
    PHP_MINIT(counter),
    PHP_MSHUTDOWN(counter),
    PHP_RINIT(counter),
    PHP_RSHUTDOWN(counter),
    PHP_MINFO(counter),
    NO_VERSION_YET,
    PHP_MODULE_GLOBALS(counter),
    PHP_GINIT(counter),
    PHP_GSHUTDOWN(counter),
    NULL,
    STANDARD_MODULE_PROPERTIES_EX
};
/* }}} */
  • STANDARD_MODULE_HEADER is used since this module doesn't define any dependencies.
  • "counter" is the extension's name, and is used to define the various callback functions the module passes to Zend. "counter" uses module, globals, and request functions at startup and shutdown times, and provides information to phpinfo(), so all seven callbacks are defined.
  • It is assumed that there is a variable of type zend_function_entry * named counter_functions earlier in the file that contains the module definition, listing the functions the module exports to userspace.
  • NO_VERSION_YET is a particularly nice way of telling Zend the module doesn't have a version. It might have been more correct to place "1.0" here instead in a real module.
  • "counter" uses per-module globals, so PHP_MODULE_GLOBALS is used
  • This module has no post-deactivate function, so NULL is used.
  • Since this module does use globals, STANDARD_MODULE_PROPERTIES_EX is used to finish the structure.

What's changed between 5.2 and 5.3?

Nothing. The only differences in the zend_module structure between PHP 5.2 and PHP 5.3 are a few const keywords.


Extension globals

Introduction to globals in a PHP extension

In a language such as C, a "global" variable is a variable that can be accessed from any function without any extra declaration. These traditional globals have a few drawbacks:

  • Barring any special options passed to the compiler, a global variable can be accessed and changed by any piece of code anywhere in the program, whether or not that code should be doing so.
  • A typical global variable is not thread safe.
  • The names of global variables are as global as the variables themselves.

A PHP extension's globals are more properly called the "extension state", since most modules must remember what they're doing between function calls. The "counter" extension is a perfect example of this need: The basic interface calls for a counter with a persistent value. A programmer new to Zend and PHP might do something like this in counter.c to store that value:

Пример #1 The wrong way to store the basic counter interface's value

/* ... */
static long basic_counter_value;

/* ... */

PHP_FUNCTION(counter_get)
{
    RETURN_LONG(basic_counter_value);
}

On the surface this appears a viable solution, and indeed in a simple test it would function correctly. However, there are a number of situations in which more than one copy of PHP is running in the same thread, which means more than one instance of the counter module. Suddenly these multiple threads are sharing the same counter value, which is clearly undesirable. Another problem shows itself when considering that another extension might someday happen to have a global with the same name, and due to the rules of C scoping, this has the potential to cause a compile failure, or worse, a runtime error. Something more elaborate is needed, and so exists Zend's support for thread-safe per-module globals.

Declaring module globals

Whether a module uses only a single global or dozens, they must be defined in a structure, and that structure must be declared. There are some macros that assist with doing so in a way that avoids name conflicts between modules: ZEND_BEGIN_MODULE_GLOBALS(), ZEND_END_MODULE_GLOBALS(), and ZEND_DECLARE_MODULE_GLOBALS(). All three take as a parameter the short name of the module, which in the case of the counter module is simply "counter". Here is the global structure declaration from php_counter.h:

Пример #2 The counter module's globals

ZEND_BEGIN_MODULE_GLOBALS(counter)
    long        basic_counter_value;
ZEND_END_MODULE_GLOBALS(counter)

And this is the declaration from counter.c:

Пример #3 The counter module's global structure declaration

ZEND_DECLARE_MODULE_GLOBALS(counter)

Accessing module globals

As discussed above, per-module globals are declared inside a C structure whose name is obscured by Zend macros. As a result, the ideal way to access members of this structure is by the use of further macros. Accordingly, most if not all extensions which have globals have a declaration like this somewhere in their header file:

Пример #4 Accessor macros for per-module globals

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

Замечание: This could have been generalized into a macro of its own by the Zend API, but as of PHP 5.3 (and PHP 6 at the time of this writing), that hasn't happened. The global accessor construct is written into the header by ext_skel and thus is generally left alone by extension writers, unless they wish to change the name of the accessor macro.

Замечание: COUNTER_G was the name given to the macro by ext_skel, but it's not necessary for it to have that name and could just as easily be called FOO instead.

Any code in the counter extension that accesses a global must thus wrap it in the macro COUNTER_G.

Внимание

Any function which accesses globals must either be declared by Zend macros, have TSRMLS_DC as its last argument, or call the macro TSRMLS_FETCH before accessing the globals. See the TSRM documentation for more information.

So with all of that in mind, here is our new version of the counter_get():

Пример #5 The right way to store the basic counter interface's value

/* php_counter.h */
ZEND_BEGIN_MODULE_GLOBALS(counter)
    long        basic_counter_value;
ZEND_END_MODULE_GLOBALS(counter)

#ifdef ZTS
#define COUNTER_G(v) TSRMG(counter_globals_id, zend_counter_globals *, v)
#else
#define COUNTER_G(v) (counter_globals.v)
#endif

/* counter.c */
ZEND_DECLARE_MODULE_GLOBALS(counter)

/* ... */

PHP_FUNCTION(counter_get)
{
    RETURN_LONG(COUNTER_G(basic_counter_value));
}

This is a correct implementation. It is not, however, a complete one. The section Life cycle of an extension explains why.


Life cycle of an extension

A PHP extension goes through several phases during its lifetime. All of these phases are opportunities for the developer to perform various initialization, termination, or informational functions. The Zend API allows for hooks into five separate phases of an extension's existence, apart from calls by PHP functions.

Loading, unloading, and requests

As the Zend engine runs, it processes one or more "requests" from its client. In the traditional CGI implementation, this corresponds to one execution of a process. However, many other implementations, most notably the Apache module, can map many requests onto a single PHP process. A PHP extension may thus see many requests in its lifetime.

Overview

  • In the Zend API, a module is loaded into memory only once when the associated PHP process starts up. Each module receives a call to the "module initialization" function specified in its zend_module structure as it is loaded.
  • Whenever the associated PHP process starts to handle a request from its client - i.e. whenever the PHP interpreter is told to start working - each module receives a call to the "request initialization" function specified in its zend_module structure.
  • Whenever the associated PHP process is done handling a request, each module receives a call to the "request termination" function specified in its zend_module structure.
  • A given module is unloaded from memory when its associated PHP process is shut down in an orderly manner. The module receives a call to the "module termination" function specified in its zend_module structure at this time.

What to do, and when to do it

There are many tasks that might be performed at any of these four points. This table details where many common initialization and termination tasks belong.

What to do, and when to do it
Module initialization/termination | Request initialization/termination
Allocate/deallocate and initialize module global variables | Allocate/deallocate and initialize request-specific variables
Register/unregister class entries |
Register/unregister INI entries |
Register constants |

The phpinfo() callback

Aside from globals initialization and certain rarely-used callbacks, there is one more part of a module's lifecycle to examine: A call to phpinfo(). The output a user sees from this call, whether text or HTML or anything else, is generated by each individual extension that is loaded into the PHP interpreter at the time the call is made.

To provide for format-neutral output, the header "ext/standard/info.h" provides an array of functions to produce standardized display elements. Specifically, several functions which create the familiar tables exist:

php_info_print_table_start()
Open a table in phpinfo() output. Takes no parameters.
php_info_print_table_header()
Print a table header in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column heading.
php_info_print_table_row()
Print a table row in phpinfo() output. Takes one parameter, the number of columns, plus the same number of char * parameters which are the texts for each column content.
php_info_print_table_end()
Close a table formerly opened by php_info_print_table_start(). Takes no parameters.

Using these four functions, it is possible to produce status information for nearly any combination of features in an extension. Here is the information callback from the counter extension:

Пример #1 counter's PHP_MINFO function

/* {{{ PHP_MINFO(counter) */
PHP_MINFO_FUNCTION(counter)
{
    char        buf[10];

    php_info_print_table_start();
    php_info_print_table_row(2, "counter support", "enabled");
    snprintf(buf, sizeof(buf), "%ld", COUNTER_G(basic_counter_value));
    php_info_print_table_row(2, "Basic counter value", buf);
    php_info_print_table_end();
}
/* }}} */


Testing an extension

One of the accepted requirements of good programming is testing. PHP provides a test harness for unit regression tests, in the form of a script called run-tests.php.

Tests for a particular module are stored in the tests/ subdirectory of the module's folder, and have a .phpt extension. For details of the PHPT format, see » http://qa.php.net/.


PDO Driver How-To

Содержание

  • Prerequisites
  • Preparation and Housekeeping
  • Fleshing out your skeleton
  • Building
  • Testing
  • Packaging and distribution
  • pdo_dbh_t definition
  • pdo_stmt_t definition
  • Constants
  • Error handling

The purpose of this How-To is to provide a basic understanding of the steps required to write a database driver that interfaces with the PDO layer. Please note that this is still an evolving API and as such, subject to change. This document was prepared based on version 0.3 of PDO. The learning curve is steep; expect to spend a lot of time on the prerequisites.


Prerequisites

The following is list of prerequisites and assumptions needed for writing a PDO database driver:

  1. A working target database, examples, demos, etc. working as per vendor specifications;

  2. A working development environment:

    1. Linux: standard development tools, gcc, ld, make, autoconf, automake, etc., versions dependent on distribution;

    2. Other Unix: standard development tools supplied by vendor plus the GNU development tool set;

    3. Win32: Visual Studio compiler suite;

  3. A working PHP environment version 5.0.3 or higher with a working PEAR extension version 1.3.5 or higher;

  4. A working PDO environment (can be installed using 'sudo pecl install PDO'), including the headers which will be needed to access the PDO type definitions and function declarations;

  5. A good working knowledge of the C programming language;

  6. A good working knowledge of the way to write a PHP extension; George Schlossnagle's Advanced PHP Programming (published by Developer's Library, chapters 21 and 22) is recommended;

  7. Finally, a familiarity with the Zend API that forms the heart of PHP, in particular paying attention to the memory management aspects.


Preparation and Housekeeping

Source directory layout

The source directory for a typical PDO driver is laid out as follows, where SKEL represents a shortened form of the name of the database that the driver is going to connect to. Even though SKEL is presented here in uppercase (for clarity), the convention is to use lowercase characters.

pdo_SKEL/
  config.m4                  # unix build script
  config.w32                 # win32 build script
  CREDITS
  package.xml                # meta information about the package
  pdo_SKEL.c                 # standard PHP extension glue
  php_pdo_SKEL.h
  php_pdo_SKEL_int.h         # driver private header
  SKEL_dbh.c                 # contains the implementation of the PDO driver interface
  SKEL_stmt.c                # contains the implementation of the PDO statement interface
  tests/

The contents of these files are defined later in this document.

Creating a skeleton

The easiest way to get started is to use the ext_skel shell script found in the PHP build tree in the ext directory. This will build a skeleton directory containing a lot of the files listed above. It can be build by executing the following command from within the ext directory:

./ext_skel --extname=pdo_SKEL

This will generate a directory called pdo_SKEL containing the skeleton files that you can then modify. This directory should then be moved out of the php extension directory. PDO is a PECL extension and should not be included in the standard extension directory. As long as you have PHP and PDO installed, you should be able to build from any directory.

Standard Includes

Build Specific Headers

The header file config.h is generated by the configure process for the platform for the which the driver is being built. If this header is present, the HAVE_CONFIG_H compiler variable is set. This variable should be tested for and if set, the file config.h should be included in the compilation unit.

PHP Headers

The following standard public php headers should be included in each source module:

  1. php.h

  2. php_ini.h

  3. ext/standard/info.h

PDO Interface Headers

The following standard public PDO header files are also included in each source module:

pdo/php_pdo.h

This header file contains definitions of the initialization and shutdown functions in the main driver as well as definitions of global PDO variables.

pdo/php_pdo_driver.h

This header contains the types and API contracts that are used to write a PDO driver. It also contains method signature for calling back into the PDO layer and registering/unregistering your driver with PDO. Most importantly, this header file contains the type definitions for PDO database handles and statements. The two main structures a driver has to deal with, pdo_dbh_t and pdo_stmt_t, are described in more detail in Appendix A and B.

Driver Specific Headers

The typical PDO driver has two header files that are specific to the database implementation. This does not preclude the use of more depending on the implementation. The following two headers are, by convention, standard:

php_pdo_SKEL.h

This header file is virtually an exact duplicate in functionality and content of the previously defined pdo/php_pdo.h that has been specifically tailored for your database. If your driver requires the use of global variables they should be defined using the ZEND_BEGIN_MODULE_GLOBALS and ZEND_END_MODULE_GLOBALS macros. Macros are then used to access these variables. This macro is usually named PDO_SKEL_G(v) where v is global variable to be accessed. Consult the Zend programmer documentation for more information.

php_pdo_SKEL_int.h

This header file typically contains type definitions and function declarations specific to the driver implementation. It also should contain the db specific definitions of a pdo_SKEL_handle and pdo_SKEL_stmt structures. These are the names of the private data structures that are then referenced by the driver_data members of the handle and statement structures.

Optional Headers

Depending on the implementation details for a particular driver it may be necessary to include the following header:

#include <zend_exceptions.h>


Fleshing out your skeleton

Major Structures and Attributes

The major structures, pdo_dbh_t and pdo_stmt_t are defined and explained in Appendix A and B respectively. Database and Statement attributes are defined in Appendix C. Error handling is explained in Appendix D.

pdo_SKEL.c: PHP extension glue

function entries

static function_entry pdo_SKEL_functions[] = {
  { NULL, NULL, NULL }
};

This structure is used to register functions into the global php function namespace. PDO drivers should try to avoid doing this, so it is recommended that you leave this structure initialized to NULL, as shown in the synopsis above.

Module entry

/* {{{ pdo_SKEL_module_entry */
#if ZEND_EXTENSION_API_NO >= 220050617
static zend_module_dep pdo_SKEL_deps[] = {
    ZEND_MOD_REQUIRED("pdo")
    {NULL, NULL, NULL}
};
#endif
/* }}} */

zend_module_entry pdo_SKEL_module_entry = {
#if ZEND_EXTENSION_API_NO >= 220050617
    STANDARD_MODULE_HEADER_EX, NULL,
    pdo_SKEL_deps,
#else
    STANDARD_MODULE_HEADER,
#endif
    "pdo_SKEL",
    pdo_SKEL_functions,
    PHP_MINIT(pdo_SKEL),
    PHP_MSHUTDOWN(pdo_SKEL),
    NULL,
    NULL,
    PHP_MINFO(pdo_SKEL),
    PHP_PDO_<DB>_MODULE_VERSION,
    STANDARD_MODULE_PROPERTIES
};
/* }}} */

#ifdef COMPILE_DL_PDO_<DB>
ZEND_GET_MODULE(pdo_db)
#endif

A structure of type zend_module_entry called pdo_SKEL_module_entry must be declared and should include reference to the pdo_SKEL_functions table defined previously.

Standard PHP Module Extension Functions

PHP_MINIT_FUNCTION
/* {{{ PHP_MINIT_FUNCTION */
PHP_MINIT_FUNCTION(pdo_SKEL)
{
    return php_pdo_register_driver(&pdo_SKEL_driver);
}
/* }}} */

This standard PHP extension function should be used to register your driver with the PDO layer. This is done by calling the php_pdo_register_driver() function passing a pointer to a structure of type pdo_driver_t typically named pdo_SKEL_driver. A pdo_driver_t contains a header that is generated using the PDO_DRIVER_HEADER(SKEL) macro and pdo_SKEL_handle_factory() function pointer. The actual function is described during the discussion of the SKEL_dbh.c unit.

PHP_MSHUTDOWN_FUNCTION
/* {{{ PHP_MSHUTDOWN_FUNCTION */
PHP_MSHUTDOWN_FUNCTION(pdo_SKEL)
{
    php_pdo_unregister_driver(&pdo_SKEL_driver);
    return SUCCESS;
}
/* }}} */

This standard PHP extension function is used to unregister your driver from the PDO layer. This is done by calling the php_pdo_unregister_driver() function, passing the same pdo_SKEL_driver structure that was passed in the init function above.

PHP_MINFO_FUNCTION

This is again a standard PHP extension function. Its purpose is to display information regarding the module when the phpinfo() is called from a script. The convention is to display the version of the module and also what version of the db you are dependent on, along with any other configuration style information that might be relevant.

SKEL_driver.c: Driver implementation

This unit implements all of the database handling methods that support the PDO database handle object. It also contains the error fetching routines. All of these functions will typically need to access the global variable pool. Therefore, it is necessary to use the Zend macro TSRMLS_DC macro at the end of each of these statements. Consult the Zend programmer documentation for more information on this macro.

pdo_SKEL_error

static int pdo_SKEL_error(pdo_dbh_t *dbh,
  pdo_stmt_t *stmt, const char *file, int line TSRMLS_DC)

The purpose of this function is to be used as a generic error handling function within the driver. It is called by the driver when an error occurs within the driver. If an error occurs that is not related to SQLSTATE, the driver should set either dbh->error_code or stmt->error_code to an SQLSTATE that most closely matches the error or the generic SQLSTATE error "HY000". The file pdo_sqlstate.c in the PDO source contains a table of commonly used SQLSTATE codes that the PDO code explicitly recognizes. This setting of the error code should be done prior to calling this function.; This function should set the global pdo_err variable to the error found in either the dbh or the stmt (if the variable stmt is not NULL).

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the current statement or NULL. If NULL, the error is derived by error code found in the dbh.

file

The source file where the error occurred or NULL if not available.

line

The line number within the source file if available.

If the dbh member methods is NULL (which implies that the error is being raised from within the PDO constructor), this function should call the zend_throw_exception_ex() function otherwise it should return the error code. This function is usually called using a helper macro that customizes the calling sequence for either database handling errors or statement handling errors.

Пример #1 Example macros for invoking pdo_SKEL_error

#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)
#define pdo_SKEL_drv_error(what) \
    pdo_SKEL_error(dbh, NULL, what, __FILE__, __LINE__ TSRMLS_CC)

For more info on error handling, see Error handling.

Замечание:

Despite being documented here, the PDO driver interface does not specify that this function be present; it is merely a convenient way to handle errors, and it just happens to be equally convenient for the majority of database client library APIs to structure your driver implementation in this way.

pdo_SKEL_fetch_error_func

static int pdo_SKEL_fetch_error_func(pdo_dbh_t *dbh, pdo_stmt_t *stmt,
    zval *info TSRMLS_DC)

The purpose of this function is to obtain additional information about the last error that was triggered. This includes the driver specific error code and a human readable string. It may also include additional information if appropriate. This function is called as a result of the PHP script calling the PDO::errorInfo() method.

dbh

Pointer to the database handle initialized by the handle factory

stmt

Pointer to the most current statement or NULL. If NULL, the error translated is derived by error code found in the dbh.

info

A hash table containing error codes and messages.

The error_func should return two pieces of information as successive array elements. The first item is expected to be a numeric error code, the second item is a descriptive string. The best way to set this item is by using add_next_index. Note that the type of the first argument need not be long; use whichever type most closely matches the error code returned by the underlying database API.

/* now add the error information. */
/* These need to be added in a specific order */
add_next_index_long(info, error_code);   /* driver specific error code */
add_next_index_string(info, message, 0); /* readable error message */

This function should return 1 if information is available, 0 if the driver does not have additional info.

SKEL_handle_closer

static int SKEL_handle_closer(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to close an open database.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to close the open database. PDO ignores the return value from this function.

SKEL_handle_preparer

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)

This function will be called by PDO in response to PDO::query() and PDO::prepare() calls from the PHP script. The purpose of the function is to prepare raw SQL for execution, storing whatever state is appropriate into the stmt that is passed in.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

Stmt

Pointer to the returned statement or NULL if an error occurs.

driver_options

Any driver specific/defined options.

This function is essentially the constructor for a stmt object. This function is responsible for processing statement options, and setting driver-specific option fields in the pdo_stmt_t structure.

PDO does not process any statement options on the driver's behalf before calling the preparer function. It is your responsibility to process them before you return, raising an error for any unknown options that are passed.

One very important responsibility of this function is the processing of SQL statement parameters. At the time of this call, PDO does not know if your driver supports binding parameters into prepared statements, nor does it know if it supports named or positional parameter naming conventions.

Your driver is responsible for setting stmt->supports_placeholders as appropriate for the underlying database. This may involve some run-time determination on the part of your driver, if this setting depends on the version of the database server to which it is connected. If your driver doesn't directly support both named and positional parameter conventions, you should use the pdo_parse_params() API to have PDO rewrite the query to take advantage of the support provided by your database.

Пример #2 Using pdo_parse_params

int ret;
    char *nsql = NULL;
    int nsql_len = 0;

    /* before we prepare, we need to peek at the query; if it uses named parameters,
     * we want PDO to rewrite them for us */
    stmt->supports_placeholders = PDO_PLACEHOLDER_POSITIONAL;
    ret = pdo_parse_params(stmt, (char*)sql, sql_len, &nsql, &nsql_len TSRMLS_CC);

    if (ret == 1) {
        /* query was re-written */
        sql = nsql;
    } else if (ret == -1) {
        /* couldn't grok it */
        strcpy(dbh->error_code, stmt->error_code);
        return 0;
    }

    /* now proceed to prepare the query in "sql" */

Possible values for supports_placeholders are: PDO_PLACEHOLDER_NAMED, PDO_PLACEHOLDER_POSITIONAL and PDO_PLACEHOLDER_NONE. If the driver doesn't support prepare statements at all, then this function should simply allocate any state that it might need, and then return:

Пример #3 Implementing preparer for drivers that don't support native prepared statements

static int SKEL_handle_preparer(pdo_dbh_t *dbh, const char *sql,
    long sql_len, pdo_stmt_t *stmt, zval *driver_options TSRMLS_DC)
{
    pdo_SKEL_db_handle *H = (pdo_SKEL_db_handle *)dbh->driver_data;
    pdo_SKEL_stmt *S = ecalloc(1, sizeof(pdo_SKEL_stmt));

    S->H = H;
    stmt->driver_data = S;
    stmt->methods = &SKEL_stmt_methods;
    stmt->supports_placeholders = PDO_PLACEHOLDER_NONE;

    return 1;
}

This function returns 1 on success or 0 on failure.

SKEL_handle_doer

static long SKEL_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len TSRMLS_DC)

This function will be called by PDO to execute a raw SQL statement. No pdo_stmt_t is created.

dbh

Pointer to the database handle initialized by the handle factory

sql

Pointer to a character string containing the SQL statement to be prepared.

sql_len

The length of the SQL statement.

This function returns 1 on success or 0 on failure.

SKEL_handle_quoter

static int SKEL_handle_quoter(pdo_dbh_t *dbh, const char *unquoted,
  int unquoted_len, char **quoted, int quoted_len, enum pdo_param_type param_type TSRMLS_DC)

This function will be called by PDO to turn an unquoted string into a quoted string for use in a query.

dbh

Pointer to the database handle initialized by the handle factory

unquoted

Pointer to a character string containing the string to be quoted.

unquoted_len

The length of the string to be quoted.

quoted

Pointer to the address where a pointer to the newly quoted string will be returned.

quoted_len

The length of the new string.

param_type

A driver specific hint for driver that have alternate quoting styles

This function is called in response to a call to PDO::quote() or when the driver has set supports_placeholder to PDO_PLACEHOLDER_NONE. The purpose is to quote a parameter when building SQL statements.

If your driver does not support native prepared statements, implementation of this function is required.

This function returns 1 if the quoting process reformatted the string, and 0 if it was not necessary to change the string. The original string will be used unchanged with a 0 return.

SKEL_handle_begin

static int SKEL_handle_begin(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to begin a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to begin a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_commit

static int SKEL_handle_commit(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to end a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to commit a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_rollback

static int SKEL_handle_rollback( pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to rollback a database transaction.

dbh

Pointer to the database handle initialized by the handle factory

This should do whatever database specific activity that needs to be accomplished to rollback a transaction. This function returns 1 for success or 0 if an error occurred.

SKEL_handle_get_attribute

static int SKEL_handle_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value TSRMLS_DC)

This function will be called by PDO to retrieve a database attribute.

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

return_value

The returned value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to supply this function. PDO driver handles the PDO_ATTR_PERSISTENT, PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_set_attribute

static int SKEL_handle_set_attribute(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to set a database attribute, usually in response to a script calling PDO::setAttribute().

dbh

Pointer to the database handle initialized by the handle factory

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

val

The new value for the attribute.

It is up to the driver to decide which attributes will be supported for a particular implementation. It is not necessary for a driver to provide this function if it does not need to support additional attributes. The PDO driver handles the PDO_ATTR_CASE, PDO_ATTR_ORACLE_NULLS, and PDO_ATTR_ERRMODE attributes directly.

This function returns 1 on success or 0 on failure.

SKEL_handle_last_id

static char * SKEL_handle_last_id(pdo_dbh_t *dbh, const char *name, unsigned int len TSRMLS_DC)

This function will be called by PDO to retrieve the ID of the last inserted row.

dbh

Pointer to the database handle initialized by the handle factory

name

string representing a table or sequence name.

len

the length of the name parameter.

This function returns a character string containing the id of the last inserted row on success or NULL on failure. This is an optional function.

SKEL_check_liveness

static int SKEL_check_liveness(pdo_dbh_t *dbh TSRMLS_DC)

This function will be called by PDO to test whether or not a persistent connection to a database is alive and ready for use.

dbh

Pointer to the database handle initialized by the handle factory

This function returns 1 if the database connection is alive and ready for use, otherwise it should return 0 to indicate failure or lack of support.

Замечание:

This is an optional function.

SKEL_get_driver_methods

static function_entry *SKEL_get_driver_methods(pdo_dbh_t *dbh, int kind TSRMLS_DC)

This function will be called by PDO in response to a call to any method that is not a part of either the PDO or PDOStatement classes. It's purpose is to allow the driver to provide additional driver specific methods to those classes.

dbh

Pointer to the database handle initialized by the handle factory

kind

One of the following:

PDO_DBH_DRIVER_METHOD_KIND_DBH

Set when the method call was attempted on an instance of the PDO class. The driver should return a pointer a function_entry table for any methods it wants to add to that class, or NULL if there are none.

PDO_DBH_DRIVER_METHOD_KIND_STMT

Set when the method call was attempted on an instance of the PDOStatement class. The driver should return a pointer to a function_entry table for any methods it wants to add to that class, or NULL if there are none.

This function returns a pointer to the function_entry table requested, or NULL there are no driver specific methods.

SKEL_handle_factory

static int SKEL_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_DC)

This function will be called by PDO to create a database handle. For most databases this involves establishing a connection to the database. In some cases, a persistent connection may be requested, in other cases connection pooling may be requested. All of these are database/driver dependent.

dbh

Pointer to the database handle initialized by the handle factory

driver_options

An array of driver options, keyed by integer option number. See Database and Statement Attributes Table for a list of possible attributes.

This function should fill in the passed database handle structure with its driver specific information on success and return 1, otherwise it should return 0 to indicate failure.

PDO processes the AUTOCOMMIT and PERSISTENT driver options before calling the handle_factory. It is the handle factory's responsibility to process other options.

Driver method table

A static structure of type pdo_dbh_methods named SKEL_methods must be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.

pdo_SKEL_driver

A structure of type pdo_driver_t named pdo_SKEL_driver should be declared. The PDO_DRIVER_HEADER(SKEL) macro should be used to declare the header and the function pointer to the handle factory function should set.

SKEL_statement.c: Statement implementation

This unit implements all of the database statement handling methods that support the PDO statement object.

SKEL_stmt_dtor

static int SKEL_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to destroy a previously constructed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This should do whatever is necessary to free up any driver specific storage allocated for the statement. The return value from this function is ignored.

SKEL_stmt_execute

static int SKEL_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)

This function will be called by PDO to execute the prepared SQL statement in the passed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_fetch

static int SKEL_stmt_fetch(pdo_stmt_t *stmt, enum pdo_fetch_orientation ori,
   long offset TSRMLS_DC)

This function will be called by PDO to fetch a row from a previously executed statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

ori

One of PDO_FETCH_ORI_xxx which will determine which row will be fetched.

offset

If ori is set to PDO_FETCH_ORI_ABS or PDO_FETCH_ORI_REL, offset represents the row desired or the row relative to the current position, respectively. Otherwise, this value is ignored.

The results of this fetch are driver dependent and the data is usually stored in the driver_data member of the pdo_stmt_t object. The ori and offset parameters are only meaningful if the statement represents a scrollable cursor. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_param_hook

static int SKEL_stmt_param_hook(pdo_stmt_t *stmt,
  struct pdo_bound_param_data *param, enum pdo_param_event event_type TSRMLS_DC)

This function will be called by PDO for handling of both bound parameters and bound columns.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

param

The structure describing either a statement parameter or a bound column.

event_type

The type of event to occur for this parameter, one of the following:

PDO_PARAM_EVT_ALLOC

Called when PDO allocates the binding. Occurs as part of PDOStatement::bindParam(), PDOStatement::bindValue() or as part of an implicit bind when calling PDOStatement::execute(). This is your opportunity to take some action at this point; drivers that implement native prepared statements will typically want to query the parameter information, reconcile the type with that requested by the script, allocate an appropriately sized buffer and then bind the parameter to that buffer. You should not rely on the type or value of the zval at param->parameter at this point in time.

PDO_PARAM_EVT_FREE

Called once per parameter as part of cleanup. You should release any resources associated with that parameter now.

PDO_PARAM_EXEC_PRE

Called once for each parameter immediately before calling SKEL_stmt_execute; take this opportunity to make any final adjustments ready for execution. In particular, you should note that variables bound via PDOStatement::bindParam() are only legal to touch now, and not any sooner.

PDO_PARAM_EXEC_POST

Called once for each parameter immediately after calling SKEL_stmt_execute; take this opportunity to make any post-execution actions that might be required by your driver.

PDO_PARAM_FETCH_PRE

Called once for each parameter immediately prior to calling SKEL_stmt_fetch.

PDO_PARAM_FETCH_POST

Called once for each parameter immediately after calling SKEL_stmt_fetch.

This hook will be called for each bound parameter and bound column in the statement. For ALLOC and FREE events, a single call will be made for each parameter or column. The param structure contains a driver_data field that the driver can use to store implementation specific information about each of the parameters.

For all other events, PDO may call you multiple times as the script issues PDOStatement::execute() and PDOStatement::fetch() calls.

If this is a bound parameter, the is_param flag in the param structure is set, otherwise the param structure refers to a bound column.

This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_describe_col

static int SKEL_stmt_describe_col(pdo_stmt_t *stmt, int colno TSRMLS_DC)

This function will be called by PDO to query information about a particular column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

The driver should populate the pdo_stmt_t member columns(colno) with the appropriate information. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_get_col_data

static int SKEL_stmt_get_col_data(pdo_stmt_t *stmt, int colno,
  char **ptr, unsigned long *len, int *caller_frees TSRMLS_DC)

This function will be called by PDO to retrieve data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number to be queried.

ptr

Pointer to the retrieved data.

len

The length of the data pointed to by ptr.

caller_frees

If set, ptr should point to emalloc'd memory and the main PDO driver will free it as soon as it is done with it. Otherwise, it will be the responsibility of the driver to free any allocated memory as a result of this call.

The driver should return the resultant data and length of that data in the ptr and len variables respectively. It should be noted that the main PDO driver expects the driver to manage the lifetime of the data. This function returns 1 for success or 0 in the event of failure.

SKEL_stmt_set_attr

static int SKEL_stmt_set_attr(pdo_stmt_t *stmt, long attr, zval *val TSRMLS_DC)

This function will be called by PDO to allow the setting of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

val

The new value for the attribute.

This function is driver dependent and allows the driver the capability to set database specific attributes for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional settable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_attr

static int SKEL_stmt_get_attr(pdo_stmt_t *stmt, long attr, zval
   *return_value TSRMLS_DC)

This function will be called by PDO to allow the retrieval of driver specific attributes for a statement object.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

attr

long value of one of the PDO_ATTR_xxxx types. See Database and Statement Attributes Table for valid attributes.

return_value

The returned value for the attribute.

This function is driver dependent and allows the driver the capability to retrieve a previously set database specific attribute for a statement. This function returns 1 for success or 0 in the event of failure. This is an optional function. If the driver does not support additional gettable attributes, it can be NULLed in the method table. The PDO driver does not handle any settable attributes on the database driver's behalf.

SKEL_stmt_get_col_meta

static int SKEL_stmt_get_col_meta(pdo_stmt_t *stmt, int colno,
   zval *return_value TSRMLS_DC)
Внимание

This function is not well defined and is subject to change.

This function will be called by PDO to retrieve meta data from the specified column.

stmt

Pointer to the statement structure initialized by SKEL_handle_preparer.

colno

The column number for which data is to be retrieved.

return_value

Holds the returned meta data.

The driver author should consult the documentation for this function that can be found in the php_pdo_driver.h header as this will be the most current. This function returns 1 for success or 0 in the event of failure. The database driver does not need to provide this function.

Statement handling method table

A static structure of type pdo_stmt_methods named SKEL_stmt_methods should be declared and initialized to the function pointers for each defined function. If a function is not supported or not implemented the value for that function pointer should be set to NULL.


Building

The build process is designed to work with PEAR (see » http://pear.php.net/ for more information about PEAR). There are two files that are used to assist in configuring your package for building. The first is config.m4 which is the autoconf configuration file for all platforms except Win32. The second is config.w32 which is a build configuration file for use on Win32. Skeleton files for these are built for you when you first set up your project. You then need to customize them to fit the needs of your project. Once you've customized your config files, you can build your driver using the following sequence of commands:

Before first build:

$ sudo pecl install PDO

For each build:

$ cd pdo_SKEL
$ phpize
$ ./configure
$ make
$ sudo make install

The process can then be repeated as necessary during the development process.


Testing

PDO has a set of "core" tests that all drivers should pass before being released. They're designed to run from the PHP source distribution, so running the tests for your driver requires moving things around a bit. The suggested procedure is to obtain the latest PHP 5.1 snapshot and perform the following step:

$ cp -r pdo_SKEL /path/to/php-5.1/ext

This will allow the test harness to run your tests. The next thing you need to do is create a test that will redirect into the PDO common core tests. The convention is to name this file common.phpt; it should be placed in the tests subdirectory that was created by ext_skel when you created your extension skeleton. The content of this file should look something like the following:

--TEST--
SKEL
--SKIPIF--
<?php # vim:ft=php
if (!extension_loaded('pdo_SKEL')) print 'skip'; ?>
--REDIRECTTEST--
if (false !== getenv('PDO_SKEL_TEST_DSN')) {
# user set them from their shell
   $config['ENV']['PDOTEST_DSN'] = getenv('PDO_SKEL_TEST_DSN');
   $config['ENV']['PDOTEST_USER'] = getenv('PDO_SKEL_TEST_USER');
   $config['ENV']['PDOTEST_PASS'] = getenv('PDO_SKEL_TEST_PASS');
   if (false !== getenv('PDO_SKEL_TEST_ATTR')) {
      $config['ENV']['PDOTEST_ATTR'] = getenv('PDO_SKEL_TEST_ATTR');
   }
   return $config;
}
return array(
   'ENV' => array(
           'PDOTEST_DSN' => 'SKEL:dsn',
           'PDOTEST_USER' => 'username',
           'PDOTEST_PASS' => 'password'
       ),
   'TESTS' => 'ext/pdo/tests'
   );

This will cause the common core tests to be run, passing the values of PDOTEST_DSN, PDOTEST_USER and PDOTEST_PASS to the PDO constructor as the dsn, username and password parameters. It will first check the environment, so that appropriate values can be passed in when the test harness is run, rather than hard-coding the database credentials into the test file.

The test harness can be invoked as follows:

$ cd /path/to/php-5.1
$ make TESTS=ext/pdo_SKEL/tests PDO_SKEL_TEST_DSN="skel:dsn" \
 PDO_SKEL_TEST_USER=user PDO_SKEL_TEST_PASS=pass test


Packaging and distribution

Creating a package

PDO drivers are released via PECL; all the usual rules for PECL extensions apply. Packaging is accomplished by creating a valid package.xml file and then running:

$ pecl package

This will create a tarball named PDO_SKEL-X.Y.Z.tgz.

Before releasing the package, you should test that it builds correctly; if you've made a mistake in your config.m4 or package.xml files, the package may not function correctly. You can test the build, without installing anything, using the following invocation:

$ pecl build package.xml

Once this is proven to work, you can test installation:

$ pecl package
$ sudo pecl install PDO_SKEL-X.Y.X.tgz

Full details about package.xml can be found in the PEAR Programmer's documentation (» http://pear.php.net/manual/).

Releasing the package

A PDO driver is released via the PHP Extension Community Library (PECL). Information about PECL can be found at » http://pecl.php.net/.


pdo_dbh_t definition

All fields should be treated as read-only by the driver, unless explicitly stated otherwise.

pdo_dbh_t

/* represents a connection to a database */
struct _pdo_dbh_t {
    /* driver specific methods */
    struct pdo_dbh_methods *methods;
*
/* driver specific data */
    void *driver_data;
**
/* credentials */
    char *username, *password;
***
/* if true, then data stored and pointed at by this handle must all be
     * persistently allocated */
    unsigned is_persistent:1;
****
/* if true, driver should act as though a COMMIT were executed between
     * each executed statement; otherwise, COMMIT must be carried out manually
     * */
    unsigned auto_commit:1;
*****
/* if true, the driver requires that memory be allocated explicitly for
     * the columns that are returned */
    unsigned alloc_own_columns:1;
******
/* if true, commit or rollBack is allowed to be called */
    unsigned in_txn:1;

    /* max length a single character can become after correct quoting */
    unsigned max_escaped_char_length:3;
*******
/* data source string used to open this handle */
    const char *data_source;
********
unsigned long data_source_len;

    /* the global error code. */
    pdo_error_type error_code;
*********
enum pdo_case_conversion native_case
**********
, desired_case;
};
*

The driver must set this during SKEL_handle_factory().

**

This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.

***

The username and password that were passed into the PDO constructor. The driver should use these values when it initiates a connection to the database.

****

If this is set to 1, then any data that is referenced by the dbh, including whatever structure your driver allocates, MUST be allocated persistently. This is easy to achieve; rather than using the usual emalloc() simply use pemalloc() and pass the value of this flag as the last parameter. Failure to use the appropriate kind of memory can lead to serious memory faults, resulting (in the best case) a hard crash, and in the worst case, an exploitable memory problem.

If, for whatever reason, your driver is not suitable to run persistently, you MUST check this flag in your SKEL_handle_factory() and raise an appropriate error.

*****

You should check this value in your SKEL_handle_doer() and SKEL_stmt_execute() functions; if it evaluates to true, you must attempt to commit the query now. Most database implementations offer an auto-commit mode that handles this automatically.

******

If your database client library API operates by fetching data into a caller-supplied buffer, you should set this flag to 1 during your SKEL_handle_factory(). When set, PDO will call your SKEL_stmt_describer() earlier than it would otherwise. This early call allows you to determine those buffer sizes and issue appropriate calls to the database client library.

If your database client library API simply returns pointers to its own internal buffers for you to copy after each fetch call, you should leave this value set to 0.

*******

If your driver doesn't support native prepared statements (supports_placeholders is set to PDO_PLACEHOLDER_NONE), you must set this value to the maximum length that can be taken up by a single character when it is quoted by your SKEL_handle_quoter() function. This value is used to calculate the amount of buffer space required when PDO executes the statement.

********

This holds the value of the DSN that was passed into the PDO constructor. If your driver implementation needed to modify the DSN for whatever reason, it should update this member during SKEL_handle_factory(). Modifying this member should be avoided. If you do change it, you must ensure that data_source_len is also correct.

*********

Whenever an error occurs during a call to one of your driver methods, you should set this member to the SQLSTATE code that best describes the error and return an error. In this HOW-TO, the suggested practice is to call SKEL_handle_error() when an error is detected, and have it set the error code.

**********

Your driver should set this during SKEL_handle_factory(); the value should reflect how the database returns the names of the columns in result sets. If the name matches the case that was used in the query, set it to PDO_CASE_NATURAL (this is actually the default). If the column names are always returned in upper case, set it to PDO_CASE_UPPER. If the column names are always returned in lower case, set it to PDO_CASE_LOWER. The value you set is used to determine if PDO should perform case folding when the user sets the PDO_ATTR_CASE attribute.


pdo_stmt_t definition

All fields should be treated as read-only unless explicitly stated otherwise.

pdo_stmt_t

/* represents a prepared statement */
struct _pdo_stmt_t {
    /* driver specifics */
    struct pdo_stmt_methods *methods;
*
void *driver_data;
**
/* if true, we've already successfully executed this statement at least
     * once */
    unsigned executed:1;
***
/* if true, the statement supports placeholders and can implement
     * bindParam() for its prepared statements, if false, PDO should
     * emulate prepare and bind on its behalf */
    unsigned supports_placeholders:2;
****
/* the number of columns in the result set; not valid until after
     * the statement has been executed at least once.  In some cases, might
     * not be valid until fetch (at the driver level) has been called at least once.
     * */
    int column_count;
*****
struct pdo_column_data *columns;
******
/* points at the dbh that this statement was prepared on */
    pdo_dbh_t *dbh;

    /* keep track of bound input parameters.  Some drivers support
     * input/output parameters, but you can't rely on that working */
    HashTable *bound_params;
    /* When rewriting from named to positional, this maps positions to names */
    HashTable *bound_param_map;
    /* keep track of PHP variables bound to named (or positional) columns
     * in the result set */
    HashTable *bound_columns;

    /* not always meaningful */
    long row_count;

    /* used to hold the statement's current query */
    char *query_string;
    int query_stringlen;

    /* the copy of the query with expanded binds ONLY for emulated-prepare drivers */
    char *active_query_string;
    int active_query_stringlen;

    /* the cursor specific error code. */
    pdo_error_type error_code;

    /* used by the query parser for driver specific
     * parameter naming (see pgsql driver for example) */
    const char *named_rewrite_template;
};
* | The driver must set this during SKEL_handle_preparer().
** | This item is for use by the driver; the intended usage is to store a pointer (during SKEL_handle_factory()) to whatever instance data is required to maintain a connection to the database.
*** | This is set by PDO after the statement has been executed for the first time. Your driver can inspect this value to determine if it can skip one-time actions as an optimization.
**** | Discussed in more detail in SKEL_handle_preparer.
***** | Your driver is responsible for setting this field to the number of columns available in a result set. This is usually set during SKEL_stmt_execute() but with some database implementations, the column count may not be available until SKEL_stmt_fetch() has been called at least once. Drivers that implement SKEL_stmt_next_rowset() should update the column count when a new rowset is available.
****** | PDO will allocate this field based on the value that you set for the column count. You are responsible for populating each column during SKEL_stmt_describe(). You must set the precision, maxlen, name, namelen and param_type members for each column. The name is expected to be allocated using emalloc(); PDO will call efree() at the appropriate time.


Constants

Database and Statement Attributes Table

Attribute

Valid value(s)

PDO_ATTR_AUTOCOMMIT

BOOL

TRUE if autocommit is set, FALSE otherwise.

dbh->auto_commit contains value. Processed by PDO directly.

PDO_ATTR_PREFETCH

LONG

Value of the prefetch size in drivers that support it.

PDO_ATTR_TIMEOUT

LONG

How long to wait for a db operation before timing out.

PDO_ATTR_ERRMODE

LONG

Processed and handled by PDO

PDO_ATTR_SERVER_VERSION

STRING

The "human-readable" string representing the Server/Version this driver is currently connected to.

PDO_ATTR_CLIENT_VERSION

STRING

The "human-readable" string representing the Client/Version this driver supports.

PDO_ATTR_SERVER_INFO

STRING

The "human-readable" description of the Server.

PDO_ATTR_CONNECTION_STATUS

LONG

Values not yet defined

PDO_ATTR_CASE

LONG

Processed and handled by PDO.

PDO_ATTR_CURSOR_NAME

STRING

String representing the name for a database cursor for use in "where current in <name>" SQL statements.

PDO_ATTR_CURSOR

LONG

PDO_CURSOR_FWDONLY

Forward only cursor

PDO_CURSOR_SCROLL

Scrollable cursor

The values for the attributes above are all defined in terms of the Zend API. The Zend API contains macros that can be used to convert a *zval to a value. These macros are defined in the Zend header file, zend_API.h in the Zend directory of your PHP build directory. Some of these attributes can be used with the statement attribute handlers such as the PDO_ATTR_CURSOR and PDO_ATTR_CURSOR_NAME. See the statement attribute handling functions for more information.


Error handling

Error handling is implemented using a hand-shaking protocol between PDO and the database driver code. The database driver code signals PDO that an error has occurred via a failure (0) return from any of the interface functions. If a zero is returned, set the field error_code in the control block appropriate to the context (either the pdo_dbh_t or pdo_stmt_t block). In practice, it is probably a good idea to set the field in both blocks to the same value to ensure the correct one is getting used.

The error_mode field is a six-byte field containing a 5 character ASCIIZ SQLSTATE identifier code. This code drives the error message process. The SQLSTATE code is used to look up an error message in the internal PDO error message table (see pdo_sqlstate.c for a list of error codes and their messages). If the code is not known to PDO, a default "Unknown Message" value will be used.

In addition to the SQLSTATE code and error message, PDO will call the driver-specific fetch_err() routine to obtain supplemental data for the particular error condition. This routine is passed an array into which the driver may place additional information. This array has slot positions assigned to particular types of supplemental info:

  1. A native error code. This will frequently be an error code obtained from the database API.

  2. A descriptive string. This string can contain any additional information related to the failure. Database drivers typically include information such as an error message, code location of the failure, and any additional descriptive information the driver developer feels worthy of inclusion. It is generally a good idea to include all diagnostic information obtainable from the database interface at the time of the failure. For driver-detected errors (such as memory allocation problems), the driver developer can define whatever error information that seems appropriate.


  • « Error handling
  • Zend Engine 2 API reference »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Extension FAQs

Extension FAQs


  • « Extension FAQs
  • Zend Engine 2 Opcodes »
  • PHP Manual
  • Ядро PHP: Руководство хакера
  • Zend Engine 2 API reference

Zend Engine 2 API reference


Zend Engine 2 Opcodes

Содержание

  • Opcode Descriptions and Examples

When parsing PHP files, Zend Engine 2 generates a series of operation codes, commonly known as "opcodes", representing the function of the code. This part of the manual details those opcodes and their behaviour.

Opcodes may be dumped for a given PHP file using the vld extension (see » http://pecl.php.net/package/vld).

Opcode List
Number | Name | Has sample code?
0 | NOP | yes
1 | ADD | yes
2 | SUB | yes
3 | MUL | yes
4 | DIV | yes
5 | MOD | yes
6 | SL | yes
7 | SR | yes
8 | CONCAT | yes
9 | BW_OR | yes
10 | BW_AND | yes
11 | BW_XOR | yes
12 | BW_NOT | yes
13 | BOOL_NOT | yes
14 | BOOL_XOR | yes
15 | IS_IDENTICAL | yes
16 | IS_NOT_IDENTICAL | yes
17 | IS_EQUAL | yes
18 | IS_NOT_EQUAL | yes
19 | IS_SMALLER | yes
20 | IS_SMALLER_OR_EQUAL | yes
21 | CAST | yes
22 | QM_ASSIGN | yes
23 | ASSIGN_ADD | yes
24 | ASSIGN_SUB | yes
25 | ASSIGN_MUL | yes
26 | ASSIGN_DIV | yes
27 | ASSIGN_MOD | yes
28 | ASSIGN_SL | yes
29 | ASSIGN_SR | yes
30 | ASSIGN_CONCAT | yes
31 | ASSIGN_BW_OR | yes
32 | ASSIGN_BW_AND | yes
33 | ASSIGN_BW_XOR | yes
34 | PRE_INC | yes
35 | PRE_DEC | yes
36 | POST_INC | yes
37 | POST_DEC | yes
38 | ASSIGN | yes
39 | ASSIGN_REF | yes
40 | ECHO | yes
41 | PRINT | yes
42 | JMP | yes
43 | JMPZ | yes
44 | JMPNZ | yes
45 | JMPZNZ | yes
46 | JMPZ_EX | yes
47 | JMPNZ_EX | yes
48 | CASE | yes
49 | SWITCH_FREE | yes
50 | BRK | yes
51 | CONT | yes
52 | BOOL | yes
53 | INIT_STRING | yes
54 | ADD_CHAR | yes
55 | ADD_STRING | yes
56 | ADD_VAR | yes
57 | BEGIN_SILENCE | yes
58 | END_SILENCE | yes
59 | INIT_FCALL_BY_NAME | yes
60 | DO_FCALL | yes
61 | DO_FCALL_BY_NAME | yes
62 | RETURN | yes
63 | RECV | yes
64 | RECV_INIT | yes
65 | SEND_VAL | yes
66 | SEND_VAR | yes
67 | SEND_REF | yes
68 | NEW | yes
69 | INIT_NS_FCALL_BY_NAME | no
70 | FREE | yes
71 | INIT_ARRAY | yes
72 | ADD_ARRAY_ELEMENT | yes
73 | INCLUDE_OR_EVAL | yes
74 | UNSET_VAR | yes
75 | UNSET_DIM | yes
76 | UNSET_OBJ | yes
77 | FE_RESET | yes
78 | FE_FETCH | yes
79 | EXIT | yes
80 | FETCH_R | yes
81 | FETCH_DIM_R | yes
82 | FETCH_OBJ_R | yes
83 | FETCH_W | yes
84 | FETCH_DIM_W | yes
85 | FETCH_OBJ_W | yes
86 | FETCH_RW | yes
87 | FETCH_DIM_RW | yes
88 | FETCH_OBJ_RW | yes
89 | FETCH_IS | yes
90 | FETCH_DIM_IS | no
91 | FETCH_OBJ_IS | no
92 | FETCH_FUNC_ARG | yes
93 | FETCH_DIM_FUNC_ARG | yes
94 | FETCH_OBJ_FUNC_ARG | yes
95 | FETCH_UNSET | no
96 | FETCH_DIM_UNSET | no
97 | FETCH_OBJ_UNSET | no
98 | FETCH_DIM_TMP_VAR | yes
99 | FETCH_CONSTANT | yes
100 | GOTO | no
101 | EXT_STMT | yes
102 | EXT_FCALL_BEGIN | no
103 | EXT_FCALL_END | no
104 | EXT_NOP | no
105 | TICKS | yes
106 | SEND_VAR_NO_REF | no
107 | CATCH | yes
108 | THROW | yes
109 | FETCH_CLASS | yes
110 | CLONE | yes
111 | RETURN_BY_REF | no
112 | INIT_METHOD_CALL | yes
113 | INIT_STATIC_METHOD_CALL | yes
114 | ISSET_ISEMPTY_VAR | yes
115 | ISSET_ISEMPTY_DIM_OBJ | yes
116 | not documented | no
117 | not documented | no
118 | not documented | no
119 | not documented | no
120 | not documented | no
121 | not documented | no
122 | not documented | no
123 | not documented | no
124 | not documented | no
125 | not documented | no
126 | not documented | no
127 | not documented | no
128 | not documented | no
129 | not documented | no
130 | not documented | no
131 | not documented | no
132 | PRE_INC_OBJ | yes
133 | PRE_DEC_OBJ | yes
134 | POST_INC_OBJ | yes
135 | POST_DEC_OBJ | yes
136 | ASSIGN_OBJ | yes
137 | not documented | no
138 | INSTANCEOF | yes
139 | DECLARE_CLASS | yes
140 | DECLARE_INHERITED_CLASS | yes
141 | DECLARE_FUNCTION | yes
142 | RAISE_ABSTRACT_ERROR | yes
143 | DECLARE_CONST | no
144 | ADD_INTERFACE | no
145 | DECLARE_INHERITED_CLASS_DELAYED | no
146 | VERIFY_ABSTRACT_CLASS | no
147 | ASSIGN_DIM | yes
148 | ISSET_ISEMPTY_PROP_OBJ | yes
149 | HANDLE_EXCEPTION | yes
150 | USER_OPCODE | no
152 | ZEND_JMP_SET | no
153 | ZEND_DECLARE_LAMBDA_FUNCTION | no
154 | ZEND_ADD_TRAIT | no
155 | ZEND_BIND_TRAITS | no
156 | ZEND_SEPARATE | no
157 | ZEND_FETCH_CLASS_NAME | no
158 | ZEND_CALL_TRAMPOLINE | no
159 | ZEND_DISCARD_EXCEPTION | no
160 | ZEND_YIELD | no
161 | ZEND_GENERATOR_RETURN | no
162 | ZEND_FAST_CALL | no
163 | ZEND_FAST_RET | no
164 | ZEND_RECV_VARIADIC | no
165 | ZEND_SEND_UNPACK | no
166 | ZEND_POW | no
167 | ZEND_ASSIGN_POW | no
168 | ZEND_BIND_GLOBAL | no
169 | ZEND_COALESCE | no
170 | ZEND_SPACESHIP | no
171 | ZEND_DECLARE_ANON_CLASS | no
172 | ZEND_DECLARE_ANON_INHERITED_CLASS | no


Opcode Descriptions and Examples

Содержание

  • ADD
  • ADD_ARRAY_ELEMENT
  • ADD_CHAR
  • ADD_INTERFACE
  • ADD_STRING
  • ADD_VAR
  • ASSIGN
  • ASSIGN_ADD
  • ASSIGN_BW_AND
  • ASSIGN_BW_OR
  • ASSIGN_BW_XOR
  • ASSIGN_CONCAT
  • ASSIGN_DIM
  • ASSIGN_DIV
  • ASSIGN_MOD
  • ASSIGN_MUL
  • ASSIGN_OBJ
  • ASSIGN_REF
  • ASSIGN_SL
  • ASSIGN_SR
  • ASSIGN_SUB
  • BEGIN_SILENCE
  • BOOL
  • BOOL_NOT
  • BOOL_XOR
  • BRK
  • BW_AND
  • BW_NOT
  • BW_OR
  • BW_XOR
  • CASE
  • CAST
  • CATCH
  • CLONE
  • CONCAT
  • CONT
  • DECLARE_CLASS
  • DECLARE_CONST
  • DECLARE_FUNCTION
  • DECLARE_INHERITED_CLASS
  • DECLARE_INHERITED_CLASS_DELAYED
  • DIV
  • DO_FCALL
  • DO_FCALL_BY_NAME
  • ECHO
  • END_SILENCE
  • EXIT
  • EXT_FCALL_BEGIN
  • EXT_FCALL_END
  • EXT_NOP
  • EXT_STMT
  • FE_FETCH
  • FE_RESET
  • FETCH_CLASS
  • FETCH_CONSTANT
  • FETCH_DIM_FUNC_ARG
  • FETCH_DIM_IS
  • FETCH_DIM_R
  • FETCH_DIM_RW
  • FETCH_DIM_TMP_VAR
  • FETCH_DIM_UNSET
  • FETCH_DIM_W
  • FETCH_FUNC_ARG
  • FETCH_IS
  • FETCH_OBJ_FUNC_ARG
  • FETCH_OBJ_IS
  • FETCH_OBJ_R
  • FETCH_OBJ_RW
  • FETCH_OBJ_UNSET
  • FETCH_OBJ_W
  • FETCH_R
  • FETCH_RW
  • FETCH_UNSET
  • FETCH_W
  • FREE
  • GOTO
  • HANDLE_EXCEPTION
  • INCLUDE_OR_EVAL
  • INIT_ARRAY
  • INIT_FCALL_BY_NAME
  • INIT_METHOD_CALL
  • INIT_NS_FCALL_BY_NAME
  • INIT_STATIC_METHOD_CALL
  • INIT_STRING
  • INSTANCEOF
  • IS_EQUAL
  • IS_IDENTICAL
  • IS_NOT_EQUAL
  • IS_NOT_IDENTICAL
  • IS_SMALLER
  • IS_SMALLER_OR_EQUAL
  • ISSET_ISEMPTY_DIM_OBJ
  • ISSET_ISEMPTY_PROP_OBJ
  • ISSET_ISEMPTY_VAR
  • JMP
  • JMPNZ
  • JMPNZ_EX
  • JMPZ
  • JMPZ_EX
  • JMPZNZ
  • MOD
  • MUL
  • NEW
  • NOP
  • POST_DEC
  • POST_DEC_OBJ
  • POST_INC
  • POST_INC_OBJ
  • PRE_DEC
  • PRE_DEC_OBJ
  • PRE_INC
  • PRE_INC_OBJ
  • PRINT
  • QM_ASSIGN
  • RAISE_ABSTRACT_ERROR
  • RECV
  • RECV_INIT
  • RETURN
  • RETURN_BY_REF
  • SEND_REF
  • SEND_VAL
  • SEND_VAR
  • SEND_VAR_NO_REF
  • SL
  • SR
  • SUB
  • SWITCH_FREE
  • THROW
  • TICKS
  • UNSET_DIM
  • UNSET_OBJ
  • UNSET_VAR
  • USER_OPCODE
  • VERIFY_ABSTRACT_CLASS
  • ZEND_DECLARE_LAMBDA_FUNCTION
  • ZEND_JMP_SET


ADD

PHP code

<?php
/*
 * Adds "value1" to "value2" and stores the result into "result".
 * opcode number: 1
 */
echo 1 + 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | ADD |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


ADD_ARRAY_ELEMENT

PHP code

<?php
/*
 * Add elem-value as an element to array-value
 * opcode number: 72
 */
$a = array(1,2,3);
print_r($a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | SEND_VAR |  |  |  | !0
 | 5 | DO_FCALL |  | 1 |  | 'print_r'
8 | 6 | RETURN |  |  |  | 1


ADD_CHAR

PHP code

<?php
/*
 * add regular characters in encapsed string
 * opcode number: 54
 */
echo "$a ";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_VAR |  |  |  | !0
 | 1 | ADD_CHAR |  |  |  | 32
 | 2 | ECHO |  |  |  |
 | 3 | RETURN |  |  |  | 1


ADD_INTERFACE

PHP code

<?php
/*
 * adds an implemented interface to a class declaration
 * opcode number: 144
 */
interface iA {
}

class A implements iA {
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
 | 1 | DECLARE_CLASS |  |  |  | 'a'
 | 2 | ADD_INTERFACE |  |  |  | 'iA'
 | 3 | VERIFY_ABSTRACT_CLASS |  |  |  |
 | 3 | RETURN |  |  |  | 1


ADD_STRING

PHP code

<?php
/*
 * add string value2 to string value2 and store in result
 * opcode number: 55
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_STRING |  |  | ~0 | 'hello'
 | 1 | ADD_VAR |  |  | ~0 | ~0,!0
 | 2 | ADD_STRING |  |  | ~0 | ~0,'+world'
 | 3 | ECHO |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


ADD_VAR

PHP code

<?php
/*
 * add contents of variable in value2 to string value1 and store in result
 * opcode number: 56
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_STRING |  |  | ~0 | 'hello'
 | 1 | ADD_VAR |  |  | ~0 | ~0,!0
 | 2 | ADD_STRING |  |  | ~0 | ~0,'+world'
 | 3 | ECHO |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


ASSIGN

PHP code

<?php
/*
 * assigns value1 to result
 * opcode number: 38
 */
$a=1;
$a='a';
$a=new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !0,'a'
8 | 2 | ZEND_FETCH_CLASS |  |  | :2 | 'A'
 | 3 | NEW |  |  | $3 | :2
 | 4 | DO_FCALL_BY_NAME |  | 0 |  |
 | 5 | ASSIGN |  |  |  | !0,$3
9 | 6 | RETURN |  |  |  | 1


ASSIGN_ADD

PHP code

<?php
/*
 * Add value1 to value2 and store in variable indicated by value1
 * opcode number: 23
 */
$a+=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_ADD |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_BW_AND

PHP code

<?php
/*
 * Performs binary AND on result and value1 and stores in variable indicated by result.
 * opcode number: 32
 */
$a &= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_BW_AND |  |  |  | !0,64
7 | 1 | RETURN |  |  |  | 1


ASSIGN_BW_OR

PHP code

<?php
/*
 * Performs binary OR on result and value1 and stores in variable indicated by result.
 * opcode number: 31
 */
$a |= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_BW_OR |  |  |  | !0,64
7 | 1 | RETURN |  |  |  | 1


ASSIGN_BW_XOR

PHP code

<?php
/*
 * Performs binary XOR on result and value1and stores in variable indicated by result.
 * opcode number: 33
 */
$a ^= 64;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_BW_XOR |  |  |  | !0,64
7 | 1 | RETURN |  |  |  | 1


ASSIGN_CONCAT

PHP code

<?php
/*
 * Concats string values result and value1 and store in variable indicated by result
 * opcode number: 30
 */
$a .= 'z';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_CONCAT |  |  |  | !0,'z'
7 | 1 | RETURN |  |  |  | 1


ASSIGN_DIM

PHP code

<?php
/*
 *
 * opcode number: 147
 */
$b = 1;
$a[1][2] = $b;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$b, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | FETCH_DIM_W |  |  | $1 | !1,1
 | 2 | ZEND_ASSIGN_DIM |  |  |  | $1,2
 | 3 | ZEND_OP_DATA |  |  |  | !0,$3
8 | 4 | RETURN |  |  |  | 1


ASSIGN_DIV

PHP code

<?php
/*
 * Divide result by value1and store in variable indicated by result.
 * opcode number: 26
 */
$a/=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_DIV |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_MOD

PHP code

<?php
/*
 * Perform result mod value1 and store in variable indicated by result
 * opcode number: 27
 */
$a %= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_MOD |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_MUL

PHP code

<?php
/*
 * Multiply result by value1 and store in variable indicated by result
 * opcode number: 25
 */
$a*=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_MUL |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_OBJ

PHP code

<?php
/*
 *
 * opcode number: 136
 */
$obj->a = $otherobj;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj, !1=$otherobj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_ASSIGN_OBJ |  |  |  | !0,'a'
 | 1 | ZEND_OP_DATA |  |  |  | !1
7 | 2 | RETURN |  |  |  | 1


ASSIGN_REF

PHP code

<?php
/*
 * indicates that variable indicated by value1 is to be treated in the global scope for the remainder of the current scope.
 * opcode number: 39
 */
global $a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | FETCH_W | globallock |  | $0 | 'a'
 | 1 | ASSIGN_REF |  |  |  | !0,$0
7 | 2 | RETURN |  |  |  | 1


ASSIGN_SL

PHP code

<?php
/*
 * Shift result by value1 bits to left and store in variable indicated by result
 * opcode number: 28
 */
$a <<= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_SL |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_SR

PHP code

<?php
/*
 * Shift result by value1 bits to right and store in variable indicated by result
 * opcode number: 29
 */
$a >>= 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_SR |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


ASSIGN_SUB

PHP code

<?php
/*
 * Subtract value1 from value2 and store in variable indicated by value1
 * opcode number: 24
 */
$a-=3;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN_SUB |  |  |  | !0,3
7 | 1 | RETURN |  |  |  | 1


BEGIN_SILENCE

PHP code

<?php
/*
 * prepare to perform function call without displaying error messages
 * opcode number: 57
 */
/* Intentional file error */
$my_file = @file ('non_existent_file') or
   die ("error:'$php_errormsg'");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$my_file, !1=$php_errormsg

line | # | op | fetch | ext | return | operands
7 | 0 | BEGIN_SILENCE |  |  | ~0 |
 | 1 | SEND_VAL |  |  |  | 'non_existent_file'
 | 2 | DO_FCALL |  | 1 |  | 'file'
 | 3 | END_SILENCE |  |  |  | ~0
 | 4 | ASSIGN |  |  | $2 | !0,$1
 | 5 | JMPNZ_EX |  |  | ~3 | $2,->11
8 | 6 | ADD_STRING |  |  | ~4 | 'error%3A%27'
 | 7 | ADD_VAR |  |  | ~4 | ~4,!1
 | 8 | ADD_CHAR |  |  | ~4 | ~4,39
 | 9 | EXIT |  |  |  | ~4
 | 10 | BOOL |  |  | ~3 | true
 | 11 | FREE |  |  |  | ~3
9 | 12 | RETURN |  |  |  | 1


BOOL

PHP code

<?php
/*
 * convert value1 to boolean and store in result??????????
 * opcode number: 52
 */
if (1 || 2 || 1) echo "foo";
//$a = true;
//if($a) echo "foo";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | JMPNZ_EX |  |  | ~0 | 1,->2
 | 1 | BOOL |  |  | ~0 | 2
 | 2 | JMPNZ_EX |  |  | ~0 | ~0,->4
 | 3 | BOOL |  |  | ~0 | 1
 | 4 | JMPZ |  |  |  | ~0,->7
 | 5 | ECHO |  |  |  | 'foo'
 | 6 | JMP |  |  |  | ->7
9 | 7 | RETURN |  |  |  | 1


BOOL_NOT

PHP code

<?php
/*
 * Boolean (logical) not of "value"
 * opcode number: 13
 */
echo !1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BOOL_NOT |  |  | ~0 | 1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BOOL_XOR

PHP code

<?php
/*
 * Boolean (logical) xor of value1
 * opcode number: 14
 */
echo 1 xor 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BOOL_XOR |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BRK

PHP code

<?php
/*
 * ???  End of a case block exists the current switch block.  Followed by JMP?
 * opcode number: 50
 */
$x = 0;
while(1) {
    if($x == 0) break;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
7 | 1 | JMPZ |  |  |  | 1,->7
8 | 2 | IS_EQUAL |  |  | ~1 | !0,0
 | 3 | JMPZ |  |  |  | ~1,->6
 | 4 | BRK |  |  |  | 1
 | 5 | JMP |  |  |  | ->6
9 | 6 | JMP |  |  |  | ->1
10 | 7 | RETURN |  |  |  | 1


BW_AND

PHP code

<?php
/*
 * Bit-wise and of value1 and value2
 * opcode number: 10
 */
echo 1&2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_AND |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BW_NOT

PHP code

<?php
/*
 * Bit-wise not of "value"
 * opcode number: 12
 */
echo ~15;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_NOT |  |  | ~0 | 15
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BW_OR

PHP code

<?php
/*
 * Bit-wise or of value1 and value2
 * opcode number: 9
 */
echo 1|2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_OR |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


BW_XOR

PHP code

<?php
/*
 * Bit-wise xor of value1 and value2
 * opcode number: 11
 */
echo 1^2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_XOR |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


CASE

PHP code

<?php
/*
 * Set result to true if value1 equals value2.  The value2 must be a constant value?
 * opcode number: 48
 */
$i=0;
switch ($i) {
   case 0:
         echo "i=0";
         break;
   case 1:
         echo "i=1";
         break;
   case 2:
         echo "i=2";
         break;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
8 | 1 | CASE |  |  | ~1 | !0,0
 | 2 | JMPZ |  |  |  | ~1,->6
9 | 3 | ECHO |  |  |  | 'i%3D0'
10 | 4 | BRK |  |  |  | 1
11 | 5 | JMP |  |  |  | ->8
 | 6 | CASE |  |  | ~1 | !0,1
 | 7 | JMPZ |  |  |  | ~1,->11
12 | 8 | ECHO |  |  |  | 'i%3D1'
13 | 9 | BRK |  |  |  | 1
14 | 10 | JMP |  |  |  | ->13
 | 11 | CASE |  |  | ~1 | !0,2
 | 12 | JMPZ |  |  |  | ~1,->16
15 | 13 | ECHO |  |  |  | 'i%3D2'
16 | 14 | BRK |  |  |  | 1
17 | 15 | JMP |  |  |  | ->16
18 | 16 | RETURN |  |  |  | 1


CAST

PHP code

<?php
/*
 * casts value1 as type value2 (type in extended_value)
 * opcode number: 21
 */
echo (int)1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | CAST |  | 4 | ~0 | 1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


CATCH

PHP code

<?php
/*
 *
 * opcode number: 107
 */
try {
    $error = 'Always throw this error';
    throw new Exception($error);

    // Code following an exception is not executed.
    echo 'Never executed';

} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo 'Hello World';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$error, !1=$e

line | # | op | fetch | ext | return | operands
7 | 0 | ASSIGN |  |  |  | !0,'Always+throw+this+error'
8 | 1 | ZEND_FETCH_CLASS |  |  | :1 | 'Exception'
 | 2 | NEW |  |  | $2 | :1
 | 3 | SEND_VAR |  |  |  | !0
 | 4 | DO_FCALL_BY_NAME |  | 1 |  |
 | 5 | ZEND_THROW |  | 0 |  | $2
11 | 6 | ECHO |  |  |  | 'Never+executed'
13 | 7 | JMP |  |  |  | ->15
 | 8 | ZEND_FETCH_CLASS |  |  | :4 | 'Exception'
 | 9 | ZEND_CATCH |  | 15 |  | $4,!1
14 | 10 | ECHO |  |  |  | 'Caught+exception%3A+'
 | 11 | ZEND_INIT_METHOD_CALL |  |  |  | !1,'getMessage'
 | 12 | DO_FCALL_BY_NAME |  | 0 |  |
 | 13 | ECHO |  |  |  | $6
 | 14 | ECHO |  |  |  | '%0A'
18 | 15 | ECHO |  |  |  | 'Hello+World'
19 | 16 | RETURN |  |  |  | 1


CLONE

PHP code

<?php
/*
 *
 * opcode number: 110
 */
$obj = new A();
$copy = clone $obj;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj, !1=$copy

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_CLONE |  |  | $4 | !0
 | 5 | ASSIGN |  |  |  | !1,$4
8 | 6 | RETURN |  |  |  | 1


CONCAT

PHP code

<?php
/*
 * Concats string values string1 and string2
 * opcode number: 8
 */
echo "hello" . "world";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | CONCAT |  |  | ~0 | 'hello','world'
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


CONT

PHP code

<?php
/*
 * Continue next iteration of current loop level
 * opcode number: 51
 */
$foo = false;
while(!$foo) {
    $foo = true;
    continue;
}
?>

PHP opcodes

Function name: (null)

compiled vars: !0 = $foo

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0, false
7 | 1 | BOOL_NOT |  |  | ~1 | !0
 | 2 | JMPZ |  |  |  | ~1, ->5
8 | 3 | ASSIGN |  |  |  | !0, true
9 | 4 | CONT |  |  |  | 1
10 | 5 | JMP |  |  |  | ->1
12 | 6 | RETURN |  |  |  | 1


DECLARE_CLASS

PHP code

<?php
/*
 * Declare a class with the name of class-name as the implementation specified by ID.
 * opcode number: 139
 */
class A {
    function methodA(){
        echo "hello world";
    }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
11 | 1 | RETURN |  |  |  | 1

Function name: methodA

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | ECHO |  |  |  | 'hello+world'
9 | 1 | RETURN |  |  |  | null


  • « DECLARE_CLASS
  • DECLARE_FUNCTION »
  • PHP Manual
  • Opcode Descriptions and Examples
  • DECLARE_CONST

DECLARE_CONST

PHP code

<?php
/*
 *
 * opcode number: 143
 * No sample PHP yet */
?>


DECLARE_FUNCTION

PHP code

<?php
/*
 *
 * opcode number: 141
 */
class A{
 function funcA(){
 }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | RETURN |  |  |  | 1

Function name: funcA

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | RETURN |  |  |  | null


DECLARE_INHERITED_CLASS

PHP code

<?php
/*
 *
 * opcode number: 140
 */
 if($b){
 class Foo {
  public static $my_static = 'foo';
  public function staticValue() {
    return self::$my_static;
  }
 }

 class Bar extends Foo {
  public function fooStatic() {
     echo parent::$my_static;
  }
 }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$b

line | # | op | fetch | ext | return | operands
6 | 0 | JMPZ |  |  |  | !0,->5
7 | 1 | ZEND_DECLARE_CLASS |  |  | $0 | '%00foo%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be503b','foo'
14 | 2 | ZEND_FETCH_CLASS |  |  | :1 | 'Foo'
 | 3 | ZEND_DECLARE_INHERITED_CLASS |  |  | $2 | '%00bar%2Fmnt%2Fworkspace%2Fws_phpscripts%2FPHPopcodes%2Fphpsamples%2FDECLARE_INHERITED_CLASS.php0xb7be50bc','bar'
19 | 4 | JMP |  |  |  | ->5
20 | 5 | RETURN |  |  |  | 1

Function name: staticValue

Compiled variables: !0=$my_static

line | # | op | fetch | ext | return | operands
10 | 0 | ZEND_FETCH_CLASS |  |  |  |
 | 1 | FETCH_R | staticmember |  | $1 | 'my_static'
 | 2 | RETURN |  |  |  | $1
11 | 3 | RETURN |  |  |  | null

Function name: fooStatic

Compiled variables: !0=$my_static

line | # | op | fetch | ext | return | operands
16 | 0 | ZEND_FETCH_CLASS |  |  | :0 |
 | 1 | FETCH_R | staticmember |  | $1 | 'my_static'
 | 2 | ECHO |  |  |  | $1
17 | 3 | RETURN |  |  |  | null


  • « DECLARE_INHERITED_CLASS
  • DIV »
  • PHP Manual
  • Opcode Descriptions and Examples
  • DECLARE_INHERITED_CLASS_DELAYED

DECLARE_INHERITED_CLASS_DELAYED

PHP code

<?php
/*
 *
 * opcode number: 145
 * No sample PHP yet */
?>


DIV

PHP code

<?php
/*
 * Divides "value1" by "value2" and stores the result into "result".
 * opcode number: 4
 */
echo 6/3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | DIV |  |  | ~0 | 6,3
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


DO_FCALL

PHP code

<?php
/*
 * Call a function.  Following multiple SEND_VAL, SEND_VAR or SEND_REF.
 * opcode number: 60
 */
$a = phpinfo();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | DO_FCALL |  | 0 |  | 'phpinfo'
 | 1 | ASSIGN |  |  |  | !0,$0
7 | 2 | RETURN |  |  |  | 1


DO_FCALL_BY_NAME

PHP code

<?php
/*
 * Call a function by name.  Following INIT_FCALL_BY_NAME and multiple SEND_VAL, SEND_VAR or SEND_REF.
 * opcode number: 61
 */
$x = 'phpinfo';
$a = $x();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,'phpinfo'
7 | 1 | INIT_FCALL_BY_NAME |  |  |  | !0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !1,$1
8 | 4 | RETURN |  |  |  | 1


ECHO

PHP code

<?php
/*
 * Dump text
 * opcode number: 40
 */
echo "hello world";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | ECHO |  |  |  | 'hello+world'
7 | 1 | RETURN |  |  |  | 1


END_SILENCE

PHP code

<?php
/*
 * no longer surpress error messages
 * opcode number: 58
 */
$my_file = @file ('non_existent_file') or
   die ("error:'$php_errormsg'");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$my_file, !1=$php_errormsg

line | # | op | fetch | ext | return | operands
6 | 0 | BEGIN_SILENCE |  |  | ~0 |
 | 1 | SEND_VAL |  |  |  | 'non_existent_file'
 | 2 | DO_FCALL |  | 1 |  | 'file'
 | 3 | END_SILENCE |  |  |  | ~0
 | 4 | ASSIGN |  |  | $2 | !0,$1
 | 5 | JMPNZ_EX |  |  | ~3 | $2,->11
7 | 6 | ADD_STRING |  |  | ~4 | 'error%3A%27'
 | 7 | ADD_VAR |  |  | ~4 | ~4,!1
 | 8 | ADD_CHAR |  |  | ~4 | ~4,39
 | 9 | EXIT |  |  |  | ~4
 | 10 | BOOL |  |  | ~3 | true
 | 11 | FREE |  |  |  | ~3
8 | 12 | RETURN |  |  |  | 1


EXIT

PHP code

<?php
/*
 * Exit running after dumping "message".
 * opcode number: 79
 */
die("foobar");
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | EXIT |  |  |  | 'foobar'
7 | 1 | RETURN |  |  |  | 1


  • « EXIT
  • EXT_FCALL_END »
  • PHP Manual
  • Opcode Descriptions and Examples
  • EXT_FCALL_BEGIN

EXT_FCALL_BEGIN

PHP code

<?php
/*
 *
 * opcode number: 102
 * No sample PHP yet */
?>


  • « EXT_FCALL_BEGIN
  • EXT_NOP »
  • PHP Manual
  • Opcode Descriptions and Examples
  • EXT_FCALL_END

EXT_FCALL_END

PHP code

<?php
/*
 *
 * opcode number: 103
 * No sample PHP yet */
?>


  • « EXT_FCALL_END
  • EXT_STMT »
  • PHP Manual
  • Opcode Descriptions and Examples
  • EXT_NOP

EXT_NOP

PHP code

<?php
/*
 *
 * opcode number: 104
 * No sample PHP yet */
?>


EXT_STMT

PHP code

<?php
/*
 *
 * opcode number: 101
 */
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
7 | 0 | EXT_STMT |  |  |  |
8 | 1 | RETURN |  |  |  | 1


FE_FETCH

PHP code

<?php
/*
 * Fetch an element from iterator.  If no element is available, jump to address.  Followed by OP_DATA?
 * opcode number: 78
 */
$a = array(1,2,3);
foreach($a as $num){
    print $num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | FE_RESET |  |  | $2 | !0,->11
 | 5 | FE_FETCH |  |  | $3 | $2,->11
 | 6 | ZEND_OP_DATA |  |  |  |
 | 7 | ASSIGN |  |  |  | !1,$3
8 | 8 | PRINT |  |  | ~5 | !1
 | 9 | FREE |  |  |  | ~5
9 | 10 | JMP |  |  |  | ->5
 | 11 | SWITCH_FREE |  |  |  | $2
10 | 12 | RETURN |  |  |  | 1


FE_RESET

PHP code

<?php
/*
 * Initialize an iterator on array-value.  If the array is empty, jump to address.  Followed by FE_FETCH.
 * opcode number: 77
 */
$a = array(1,2,3);
foreach($a as $num){
    print $num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | FE_RESET |  |  | $2 | !0,->11
 | 5 | FE_FETCH |  |  | $3 | $2,->11
 | 6 | ZEND_OP_DATA |  |  |  |
 | 7 | ASSIGN |  |  |  | !1,$3
8 | 8 | PRINT |  |  | ~5 | !1
 | 9 | FREE |  |  |  | ~5
9 | 10 | JMP |  |  |  | ->5
 | 11 | SWITCH_FREE |  |  |  | $2
10 | 12 | RETURN |  |  |  | 1


FETCH_CLASS

PHP code

<?php
/*
 *
 * opcode number: 109
 */
$obj = new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | RETURN |  |  |  | 1


FETCH_CONSTANT

PHP code

<?php
/*
 * Fetch the constant value bound to the specified name (name) and stores it into a variable (result).
 * opcode number: 99
 */
define("FOO", "something");
echo FOO;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SEND_VAL |  |  |  | 'FOO'
 | 1 | SEND_VAL |  |  |  | 'something'
 | 2 | DO_FCALL |  | 2 |  | 'define'
7 | 3 | FETCH_CONSTANT |  |  | ~1 | 'FOO'
 | 4 | ECHO |  |  |  | ~1
8 | 5 | RETURN |  |  |  | 1


FETCH_DIM_FUNC_ARG

PHP code

<?php
/*
 *
 * opcode number: 93
 */

function foo(&$x)
{
  print($x);
}

$x = array(0, 1, 2, 3, 4, 5);
$z = "foo";

$z($x[0]);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$z

line | # | op | fetch | ext | return | operands
7 | 0 | NOP |  |  |  |
12 | 1 | INIT_ARRAY |  |  | ~0 | 0
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 1
 | 3 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 4 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 5 | ADD_ARRAY_ELEMENT |  |  | ~0 | 4
 | 6 | ADD_ARRAY_ELEMENT |  |  | ~0 | 5
 | 7 | ASSIGN |  |  |  | !0,~0
13 | 8 | ASSIGN |  |  |  | !1,'foo'
15 | 9 | INIT_FCALL_BY_NAME |  |  |  | !1
 | 10 | FETCH_DIM_FUNC_ARG |  |  | $3 | !0,0
 | 11 | SEND_VAR |  |  |  | $3
 | 12 | DO_FCALL_BY_NAME |  | 1 |  |
17 | 13 | RETURN |  |  |  | 1

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
7 | 0 | RECV |  |  |  | 1
9 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
10 | 3 | RETURN |  |  |  | null


  • « FETCH_DIM_FUNC_ARG
  • FETCH_DIM_R »
  • PHP Manual
  • Opcode Descriptions and Examples
  • FETCH_DIM_IS

FETCH_DIM_IS

PHP code

<?php
/*
 *
 * opcode number: 90
 * No sample PHP yet */
?>


FETCH_DIM_R

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".  Read-only?
 * opcode number: 81
 */
$x = array(1,2,3);
$a = 'x';
echo $$a[0];
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_DIM_R |  |  | $3 | !1,0
 | 6 | FETCH_R | local |  | $4 | $3
 | 7 | ECHO |  |  |  | $4
9 | 8 | RETURN |  |  |  | 1


FETCH_DIM_RW

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".
 * opcode number: 87
 */
$x = array(1,2,3);
$a = 'x';
$$a[0]++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_DIM_R |  |  | $3 | !1,0
 | 6 | FETCH_RW | local |  | $4 | $3
 | 7 | POST_INC |  |  | ~5 | $4
 | 8 | FREE |  |  |  | ~5
9 | 9 | RETURN |  |  |  | 1


FETCH_DIM_TMP_VAR

PHP code

<?php
/*
 * Fetch an entry of an array from a temporal variable?
 * opcode number: 98
 */
list($x) = array("X");
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 'X'
 | 1 | FETCH_DIM_TMP_VAR |  |  | $1 | ~0,0
 | 2 | ASSIGN |  |  |  | !0,$1
 | 3 | FREE |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


FETCH_DIM_UNSET

PHP code

<?php
/*
 * Fetch an entry of an array variable for the purpose of unset() operation.
 * opcode number: 96
 * No sample PHP yet */
?>


FETCH_DIM_W

PHP code

<?php
/*
 * Fetch the value of the element at "index" in "array-value" to store it in "result".  Write-only?
 * opcode number: 84
 */
$a = 1;
while($a > 0){
    $a = 0;
}
/*$input =array(1,2,3);
while (list($var,) = @each($input)){
    unset($$var);
}*/
/*$a = array(1,2,3);
$x = 'a';
$$x[0] = 1;*/

/*while ($b = each($a)) {
  print $b;
}*/

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | IS_SMALLER |  |  | ~1 | 0,!0
 | 2 | JMPZ |  |  |  | ~1,->5
8 | 3 | ASSIGN |  |  |  | !0,0
9 | 4 | JMP |  |  |  | ->1
23 | 5 | RETURN |  |  |  | 1


FETCH_FUNC_ARG

PHP code

<?php
/*
 *
 * opcode number: 92
 */
function foo($x)
{
}

$x = 1;
$y = "x";
$z = "foo";

$z($$y);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$y, !2=$z

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | ASSIGN |  |  |  | !0,1
11 | 2 | ASSIGN |  |  |  | !1,'x'
12 | 3 | ASSIGN |  |  |  | !2,'foo'
14 | 4 | INIT_FCALL_BY_NAME |  |  |  | !2
 | 5 | FETCH_FUNC_ARG | local |  | $3 | !1
 | 6 | SEND_VAR |  |  |  | $3
 | 7 | DO_FCALL_BY_NAME |  | 1 |  |
16 | 8 | RETURN |  |  |  | 1

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
6 | 0 | RECV |  |  |  | 1
8 | 1 | RETURN |  |  |  | null


FETCH_IS

PHP code

<?php
/*
 * Fetch the value from variable which is to be used to test if it is set or not, through isset()/isempty().
 * opcode number: 89
 */
echo isset($_SESSION['userid']);
echo isset($_SESSION['userid'][1]);
echo isset($_SESSION->prop->prop);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | FETCH_IS |  |  | $0 | '_SESSION'
 | 1 | ZEND_ISSET_ISEMPTY_DIM_OBJ |  | 1 | ~1 | $0,'userid'
 | 2 | ECHO |  |  |  | ~1
7 | 3 | FETCH_IS |  |  | $2 | '_SESSION'
 | 4 | FETCH_DIM_IS |  |  | $3 | $2,'userid'
 | 5 | ZEND_ISSET_ISEMPTY_DIM_OBJ |  | 1 | ~4 | $3,1
 | 6 | ECHO |  |  |  | ~4
8 | 7 | FETCH_IS |  |  | $5 | '_SESSION'
 | 8 | FETCH_OBJ_IS |  |  | $6 | $5,'prop'
 | 9 | ZEND_ISSET_ISEMPTY_PROP_OBJ |  |  | ~7 | $6,'prop'
 | 10 | ECHO |  |  |  | ~7
9 | 11 | RETURN |  |  |  | 1


FETCH_OBJ_FUNC_ARG

PHP code

<?php
/*
 *
 * opcode number: 94
 */
include './classA.php';

function foo(&$x)
{
  print($x);
}

$z = "foo";

$obj = new A();
print $obj->num;
$z($obj->num);

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$z, !1=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | INCLUDE_OR_EVAL |  |  |  | '.%2FclassA.php',INCLUDE
8 | 1 | NOP |  |  |  |
13 | 2 | ASSIGN |  |  |  | !0,'foo'
15 | 3 | ZEND_FETCH_CLASS |  |  | :2 | 'A'
 | 4 | NEW |  |  | $3 | :2
 | 5 | DO_FCALL_BY_NAME |  | 0 |  |
 | 6 | ASSIGN |  |  |  | !1,$3
16 | 7 | FETCH_OBJ_R |  |  | $6 | !1,'num'
 | 8 | PRINT |  |  | ~7 | $6
 | 9 | FREE |  |  |  | ~7
17 | 10 | INIT_FCALL_BY_NAME |  |  |  | !0
 | 11 | FETCH_OBJ_FUNC_ARG |  |  | $8 | !1,'num'
 | 12 | SEND_VAR |  |  |  | $8
 | 13 | DO_FCALL_BY_NAME |  | 1 |  |
19 | 14 | RETURN |  |  |  | 1

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
8 | 0 | RECV |  |  |  | 1
10 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
11 | 3 | RETURN |  |  |  | null

Function name: foo

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
8 | 0 | RECV |  |  |  | 1
10 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
11 | 3 | RETURN |  |  |  | null


  • « FETCH_OBJ_FUNC_ARG
  • FETCH_OBJ_R »
  • PHP Manual
  • Opcode Descriptions and Examples
  • FETCH_OBJ_IS

FETCH_OBJ_IS

PHP code

<?php
/*
 *
 * opcode number: 91
 * No sample PHP yet */
?>


FETCH_OBJ_R

PHP code

<?php
/*
 * Fetch the "prop-name" property value of this object.  Read-only?
 * opcode number: 82
 */
$x = new A();
$a = 'x';
echo $$a->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_R | local |  | $5 | !1
 | 6 | FETCH_OBJ_R |  |  | $6 | $5,'num'
 | 7 | ECHO |  |  |  | $6
9 | 8 | RETURN |  |  |  | 1


FETCH_OBJ_RW

PHP code

<?php
/*
 * Fetch the "prop-name" property value of this object.
 * opcode number: 88
 */
$x = new A();
$a = 'x';
$$a->num++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ASSIGN |  |  |  | !1,'x'
8 | 5 | FETCH_RW | local |  | $5 | !1
 | 6 | ZEND_POST_INC_OBJ |  |  | ~7 | $5,'num'
 | 7 | FREE |  |  |  | ~7
9 | 8 | RETURN |  |  |  | 1


FETCH_OBJ_UNSET

PHP code

<?php
/*
 * Fetch a property of an object variable for the purpose of unset() operation.
 * opcode number: 97
 * No sample PHP yet */
?>


FETCH_OBJ_W

PHP code

<?php
/*
 * Fetch an object from the property of this object and write to the property of the fectched object.
 * opcode number: 85
 */
$foo = new stdclass;
$foo->bar = new stdclass;
$foo->bar->baz = 'quix';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0 = $foo

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  | 4 | :0 | 'stdclass'
 | 1 | NEW |  |  |  | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0
7 | 4 | ZEND_FETCH_CLASS |  | 4 | :5 | 'stdclass'
 | 5 | NEW |  |  |  | :5
 | 6 | DO_FCALL_BY_NAME |  | 0 |  |
 | 7 | ZEND_ASSIGN_OBJ |  |  |  | !0, 'bar'
 | 8 | ZEND_OP_DATA |  |  |  |
8 | 9 | FETCH_OBJ_W |  |  |  | !0, 'bar'
 | 10 | ZEND_ASSIGN_OBJ |  |  |  | 'baz'
 | 11 | ZEND_OP_DATA |  |  |  | 'quix'
9 | 12 | RETURN |  |  |  | 1


FETCH_R

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?  Read-only?
 * opcode number: 80
 */
$x = 1;
$a = 'x';
echo $$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | FETCH_R | local |  | $2 | !1
 | 3 | ECHO |  |  |  | $2
9 | 4 | RETURN |  |  |  | 1


FETCH_RW

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?
 * opcode number: 86
 */
$x = 1;
$a = 'x';
$$a++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | FETCH_RW | local |  | $2 | !1
 | 3 | POST_INC |  |  | ~3 | $2
 | 4 | FREE |  |  |  | ~3
9 | 5 | RETURN |  |  |  | 1


FETCH_UNSET

PHP code

<?php
/*
 * Fetch a variable for the purpose of unset() operation.
 * opcode number: 95
 * No sample PHP yet */
?>


FETCH_W

PHP code

<?php
/*
 * Fetch the value of the varible of "name" to assign it to a variable?  Write-only?
 * opcode number: 83
 */
$x = 1;
$a = 'x';
$$a = 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | FETCH_W | local |  | $2 | !1
 | 3 | ASSIGN |  |  |  | $2,2
9 | 4 | RETURN |  |  |  | 1


FREE

PHP code

<?php
/*
 * Release the allocated space of the value.
 * opcode number: 70
 */
 print "Hello World";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | PRINT |  |  | ~0 | 'Hello+World'
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


  • « FREE
  • HANDLE_EXCEPTION »
  • PHP Manual
  • Opcode Descriptions and Examples
  • GOTO

GOTO

PHP code

<?php
/*
 *
 * opcode number: 100
 * No sample PHP yet */
?>


HANDLE_EXCEPTION

PHP code

<?php
/*
 *
 * opcode number: 149
 */
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | RETURN |  |  |  | 1


INCLUDE_OR_EVAL

PHP code

<?php
/*
 * Include the file specified by filename and eval it.
 * opcode number: 73
 */
include("test.php");
eval("test.php");
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | INCLUDE_OR_EVAL |  |  |  | 'test.php',INCLUDE
7 | 1 | INCLUDE_OR_EVAL |  |  |  | 'test.php',EVAL
8 | 2 | RETURN |  |  |  | 1

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
2 | 0 | DO_FCALL |  | 0 |  | 'phpinfo'
3 | 1 | RETURN |  |  |  | 1


INIT_ARRAY

PHP code

<?php
/*
 * Allocate a new array with elem-value as the first element of the array.  Followed by ADD_ARRAY_ELEMENT.
 * opcode number: 71
 */
$a = array(1,2,3);
print_r($a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | SEND_VAR |  |  |  | !0
 | 5 | DO_FCALL |  | 1 |  | 'print_r'
8 | 6 | RETURN |  |  |  | 1


INIT_FCALL_BY_NAME

PHP code

<?php
/*
 * prepare for a function call to function value1
 * opcode number: 59
 */
$x = 'phpinfo';
$a = $x();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,'phpinfo'
7 | 1 | INIT_FCALL_BY_NAME |  |  |  | !0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !1,$1
8 | 4 | RETURN |  |  |  | 1


INIT_METHOD_CALL

PHP code

<?php
/*
 * Prepare for a method call.  Followed by DO_FCALL.
 * opcode number: 112
 */
class A {
  var $num;
    function incrementNum(){
    $num++;
  }
}

$obj = new A();
$obj->incrementNum();

?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
13 | 1 | ZEND_FETCH_CLASS |  |  | :1 | 'A'
 | 2 | NEW |  |  | $2 | :1
 | 3 | DO_FCALL_BY_NAME |  | 0 |  |
 | 4 | ASSIGN |  |  |  | !0,$2
14 | 5 | ZEND_INIT_METHOD_CALL |  |  |  | !0,'incrementNum'
 | 6 | DO_FCALL_BY_NAME |  | 0 |  |
16 | 7 | RETURN |  |  |  | 1

Function name: incrementNum

Compiled variables: !0=$num

line | # | op | fetch | ext | return | operands
9 | 0 | POST_INC |  |  | ~0 | !0
 | 1 | FREE |  |  |  | ~0
10 | 2 | RETURN |  |  |  | null


  • « INIT_METHOD_CALL
  • INIT_STATIC_METHOD_CALL »
  • PHP Manual
  • Opcode Descriptions and Examples
  • INIT_NS_FCALL_BY_NAME

INIT_NS_FCALL_BY_NAME

PHP code

<?php
/*
 *
 * opcode number: 69
 * No sample PHP yet */
?>


INIT_STATIC_METHOD_CALL

PHP code

<?php
/*
 *
 * opcode number: 113
 */
class Foo {
    public static function aStaticMethod() {
            echo "hello world\n";
    }
}

Foo::aStaticMethod();
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
12 | 1 | ZEND_INIT_STATIC_METHOD_CALL |  |  |  | 'Foo','aStaticMethod'
 | 2 | ZEND_OP_DATA |  |  |  | 'foo%3A%3Aastaticmethod'
 | 3 | DO_FCALL_BY_NAME |  | 0 |  |
13 | 4 | RETURN |  |  |  | 1

Function name: aStaticMethod

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | ECHO |  |  |  | 'hello+world%0A'
9 | 1 | RETURN |  |  |  | null


INIT_STRING

PHP code

<?php
/*
 * appears to create a string variable in result
 * opcode number: 53
 */
echo "hello$a world";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ADD_STRING |  |  | ~0 | 'hello'
 | 1 | ADD_VAR |  |  | ~0 | ~0,!0
 | 2 | ADD_STRING |  |  | ~0 | ~0,'+world'
 | 3 | ECHO |  |  |  | ~0
7 | 4 | RETURN |  |  |  | 1


INSTANCEOF

PHP code

<?php
/*
 *
 * opcode number: 138
 */
$obj = new A();

if ($obj instanceof A) {
   echo 'A';
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
8 | 4 | ZEND_FETCH_CLASS |  |  | :4 | 'A'
 | 5 | ZEND_INSTANCEOF |  |  | ~5 | !0,$4
 | 6 | JMPZ |  |  |  | ~5,->9
9 | 7 | ECHO |  |  |  | 'A'
10 | 8 | JMP |  |  |  | ->9
11 | 9 | RETURN |  |  |  | 1


IS_EQUAL

PHP code

<?php
/*
 * compares if value1 and value2 are equal
 * opcode number: 17
 */
echo (1 == 1);
echo (1 == 'c');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_EQUAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | IS_EQUAL |  |  | ~1 | 1,'c'
 | 3 | ECHO |  |  |  | ~1
8 | 4 | RETURN |  |  |  | 1


IS_IDENTICAL

PHP code

<?php
/*
 * Compares value1 and value2 to see if they are equal AND have the same type
 * opcode number: 15
 */
echo (1===1);
echo (1==='a');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_IDENTICAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | IS_IDENTICAL |  |  | ~1 | 1,'a'
 | 3 | ECHO |  |  |  | ~1
8 | 4 | RETURN |  |  |  | 1


IS_NOT_EQUAL

PHP code

<?php
/*
 * compares if value1 and value2 are not equal
 * opcode number: 18
 */
echo (1 != 1);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_NOT_EQUAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


IS_NOT_IDENTICAL

PHP code

<?php
/*
 * compares value1 and value2 to see if they are unequal or of different types
 * opcode number: 16
 */
echo (1 !== 1);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_NOT_IDENTICAL |  |  | ~0 | 1,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


IS_SMALLER

PHP code

<?php
/*
 * compares if value1 is less than value2
 * opcode number: 19
 */
echo (1 < 2);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_SMALLER |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


IS_SMALLER_OR_EQUAL

PHP code

<?php
/*
 * compares if value1 is less than or equal to value2
 * opcode number: 20
 */
echo (1 >= 2);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | IS_SMALLER_OR_EQUAL |  |  | ~0 | 2,1
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


ISSET_ISEMPTY_DIM_OBJ

PHP code

<?php
/*
 * Tests if the entry of an array is set or not.
 * opcode number: 115
 */
if(isset($a[0])) return 0;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_ISSET_ISEMPTY_DIM_OBJ |  | 1 | ~0 | !0,0
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | RETURN |  |  |  | 0
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


ISSET_ISEMPTY_PROP_OBJ

PHP code

<?php
/*
 *
 * opcode number: 148
 */
$obj = new A();
if(empty($obj->num)) return 0;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_ISSET_ISEMPTY_PROP_OBJ |  |  | ~4 | !0,'num'
 | 5 | JMPZ |  |  |  | ~4,->8
 | 6 | RETURN |  |  |  | 0
 | 7 | JMP |  |  |  | ->8
8 | 8 | RETURN |  |  |  | 1


ISSET_ISEMPTY_VAR

PHP code

<?php
/*
 * Tests if the value of a variable is set or not.
 * opcode number: 114
 */
if(isset($a)){ return 0;}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_ISSET_ISEMPTY_VAR |  | 5 | ~0 | !0
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | RETURN |  |  |  | 0
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


JMP

PHP code

<?php
/*
 * Unconditonally jump to the address
 * opcode number: 42
 */
$foo = false;
while(!$foo) {
    $foo = true;
}
?>

PHP opcodes

Function name: (null)

compiled vars: !0 = $foo

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0, false
7 | 1 | BOOL_NOT |  |  | ~1 | !0
 | 2 | JMPZ |  |  |  | ~1, ->5
8 | 3 | ASSIGN |  |  |  | !0, true
9 | 4 | JMP |  |  |  | ->1
11 | 5 | RETURN |  |  |  | 1


JMPNZ

PHP code

<?php
/*
 * Jump to the address if the value is not zero
 * opcode number: 44
 */
for($i=0; $i<3; $i++){
    echo "hi";
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
 | 1 | IS_SMALLER |  |  | ~1 | !0,3
 | 2 | JMPZNZ |  | 6 |  | ~1,->8
 | 3 | POST_INC |  |  | ~2 | !0
 | 4 | FREE |  |  |  | ~2
 | 5 | JMP |  |  |  | ->1
7 | 6 | ECHO |  |  |  | 'hi'
8 | 7 | JMP |  |  |  | ->3
9 | 8 | RETURN |  |  |  | 1


JMPNZ_EX

PHP code

<?php
/*
 * Jump to the address if the xor of value1 and value2 is zero .. ???
 * opcode number: 47
 */
if(1^2) return;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BW_XOR |  |  | ~0 | 1,2
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | RETURN |  |  |  | null
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


JMPZ

PHP code

<?php
/*
 * Jump to the address if the value is zero
 * opcode number: 43
 */
if($a != 0) echo "foo";
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | IS_NOT_EQUAL |  |  | ~0 | !0,0
 | 1 | JMPZ |  |  |  | ~0,->4
 | 2 | ECHO |  |  |  | 'foo'
 | 3 | JMP |  |  |  | ->4
7 | 4 | RETURN |  |  |  | 1


JMPZ_EX

PHP code

<?php
/*
 * Jump to the address if the xor of value1 and value2 is zero .. ???
 * opcode number: 46
 */

?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
7 | 0 | RETURN |  |  |  | 1


JMPZNZ

PHP code

<?php
/*
 * Jump to the address given in the operands if the value is zero;
 * jump to the address given in extended data if nonzero.
 * opcode number: 45
 */
for($i=0; $i<3; $i++){
    echo "hi";
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$i

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,0
 | 1 | IS_SMALLER |  |  | ~1 | !0,3
 | 2 | JMPZNZ |  | 6 |  | ~1,->8
 | 3 | POST_INC |  |  | ~2 | !0
 | 4 | FREE |  |  |  | ~2
 | 5 | JMP |  |  |  | ->1
7 | 6 | ECHO |  |  |  | 'hi'
8 | 7 | JMP |  |  |  | ->3
9 | 8 | RETURN |  |  |  | 1


MOD

PHP code

<?php
/*
 * Makes the value of "result" congruent to "value1" modulo "value2".
 * opcode number: 5
 */
echo 6 % 3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | MOD |  |  | ~0 | 6,3
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


MUL

PHP code

<?php
/*
 * Multiplys "value1" by "value2" and stores the result into "result".
 * opcode number: 3
 */
echo 2*3;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | MUL |  |  | ~0 | 2,3
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


NEW

PHP code

<?php
/*
 * Construct an instance of "type" and store the reference to the object into "result".
 * opcode number: 68
 */
$obj = new A();
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | RETURN |  |  |  | 1


NOP

PHP code

<?php
/*
 * no operation
 * opcode number: 0
 */
function A(){};
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
7 | 1 | RETURN |  |  |  | 1

Function name: A

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | RETURN |  |  |  | null


POST_DEC

PHP code

<?php
/*
 * decrements variable indicated by value1 by 1 (after performing other operations) and stores in result
 * opcode number: 37
 */
$a--;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | POST_DEC |  |  | ~0 | !0
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


POST_DEC_OBJ

PHP code

<?php
/*
 *
 * opcode number: 135
 */
$obj = new A();
$obj->num--;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_POST_DEC_OBJ |  |  | ~5 | !0,'num'
 | 5 | FREE |  |  |  | ~5
8 | 6 | RETURN |  |  |  | 1


POST_INC

PHP code

<?php
/*
 * increments variable indicated by value1 by 1 (after performing other operations) and stores in result
 * opcode number: 36
 */
$a++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | POST_INC |  |  | ~0 | !0
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


POST_INC_OBJ

PHP code

<?php
/*
 * Increment the property value specified by prop-name and store the original value into result.
 * opcode number: 134
 */
$obj = new A();
$obj->num++;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_POST_INC_OBJ |  |  | ~5 | !0,'num'
 | 5 | FREE |  |  |  | ~5
8 | 6 | RETURN |  |  |  | 1


PRE_DEC

PHP code

<?php
/*
 * decrements variable indicated by value1 by 1 (before performing other operations) and stores in results
 * opcode number: 35
 */
--$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | PRE_DEC |  |  |  | !0
7 | 1 | RETURN |  |  |  | 1


PRE_DEC_OBJ

PHP code

<?php
/*
 *
 * opcode number: 133
 */
$obj = new A();
--$obj->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_PRE_DEC_OBJ |  |  |  | !0,'num'
8 | 5 | RETURN |  |  |  | 1


PRE_INC

PHP code

<?php
/*
 * increments variable indicated by value1 by 1 (before performing other operations) and stores in result
 * opcode number: 34
 */
++$a;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | PRE_INC |  |  |  | !0
7 | 1 | RETURN |  |  |  | 1


PRE_INC_OBJ

PHP code

<?php
/*
 *
 * opcode number: 132
 */
$obj = new A();
++$obj->num;
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | ZEND_PRE_INC_OBJ |  |  |  | !0,'num'
8 | 5 | RETURN |  |  |  | 1


PRINT

PHP code

<?php
/*
 *
 * opcode number: 41
 */
print "Hello World";
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | PRINT |  |  | ~0 | 'Hello+World'
 | 1 | FREE |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


QM_ASSIGN

PHP code

<?php
/*
 * Question Mark Assign, used twice inside a question mark assign to temporarily assign result as value1  (this is followed up with an ASSIGN bytecode)
 * opcode number: 22
 */
function A(){
 echo 1?2:3;
}

function B(){
 $b = 0;
 $a = $b > 1 ? 10: 11;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | NOP |  |  |  |
14 | 2 | RETURN |  |  |  | 1

Function name: A

Compiled variables: none

line | # | op | fetch | ext | return | operands
7 | 0 | JMPZ |  |  |  | 1,->3
 | 1 | QM_ASSIGN |  |  | ~0 | 2
 | 2 | JMP |  |  |  | ->4
 | 3 | QM_ASSIGN |  |  | ~0 | 3
 | 4 | ECHO |  |  |  | ~0
8 | 5 | RETURN |  |  |  | null

Function name: B

Compiled variables: !0=$b, !1=$a

line | # | op | fetch | ext | return | operands
11 | 0 | ASSIGN |  |  |  | !0,0
12 | 1 | IS_SMALLER |  |  | ~1 | 1,!0
 | 2 | JMPZ |  |  |  | ~1,->5
 | 3 | QM_ASSIGN |  |  | ~2 | 10
 | 4 | JMP |  |  |  | ->6
 | 5 | QM_ASSIGN |  |  | ~2 | 11
 | 6 | ASSIGN |  |  |  | !1,~2
13 | 7 | RETURN |  |  |  | null


RAISE_ABSTRACT_ERROR

PHP code

<?php
/*
 *
 * opcode number: 142
 */

abstract class fail {
    abstract function show();
}

class pass extends fail {
    function show() {
        echo "Call to function show()\n";
    }
}

$t2 = new pass();
$t2->show();

$t = new fail();
$t->show();

echo "Done\n"; // shouldn't be displayed
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$t2, !1=$t

line | # | op | fetch | ext | return | operands
7 | 0 | NOP |  |  |  |
11 | 1 | NOP |  |  |  |
 | 2 | NOP |  |  |  |
17 | 3 | ZEND_FETCH_CLASS |  |  | :3 | 'pass'
 | 4 | NEW |  |  | $4 | :3
 | 5 | DO_FCALL_BY_NAME |  | 0 |  |
 | 6 | ASSIGN |  |  |  | !0,$4
18 | 7 | ZEND_INIT_METHOD_CALL |  |  |  | !0,'show'
 | 8 | DO_FCALL_BY_NAME |  | 0 |  |
20 | 9 | ZEND_FETCH_CLASS |  |  | :9 | 'fail'
 | 10 | NEW |  |  | $10 | :9
 | 11 | DO_FCALL_BY_NAME |  | 0 |  |
 | 12 | ASSIGN |  |  |  | !1,$10
21 | 13 | ZEND_INIT_METHOD_CALL |  |  |  | !1,'show'
 | 14 | DO_FCALL_BY_NAME |  | 0 |  |
23 | 15 | ECHO |  |  |  | 'Done%0A'
24 | 16 | RETURN |  |  |  | 1

Function name: show

Compiled variables: none

line | # | op | fetch | ext | return | operands
8 | 0 | ZEND_RAISE_ABSTRACT_ERROR |  |  |  |
 | 1 | RETURN |  |  |  | null

Function name: show

Compiled variables: none

line | # | op | fetch | ext | return | operands
13 | 0 | ECHO |  |  |  | 'Call+to+function+show%28%29%0A'
14 | 1 | RETURN |  |  |  | null


RECV

PHP code

<?php
/*
 * Receive a functoin argument of "argument-number" and store the argument value into a variable of "argument-number".  (e.g. $1 for 1)
 * opcode number: 63
 */
function hello($a){}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
7 | 1 | RETURN |  |  |  | 1

Function name: hello

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | RECV |  |  |  | 1
 | 1 | RETURN |  |  |  | null


RECV_INIT

PHP code

<?php
/*
 * Initialize a function argument with "value" if not received from caller.  Otherwise same as RECV.
 * opcode number: 64
 */
function hello($a=5){}
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
7 | 1 | RETURN |  |  |  | 1

Function name: hello

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | RECV_INIT |  |  |  | 1,5
 | 1 | RETURN |  |  |  | null


RETURN

PHP code

<?php
/*
 * Return value from a funciton.
 * opcode number: 62
 */
return 1;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | RETURN |  |  |  | 1
7 | 1 | RETURN |  |  |  | 1


  • « RETURN
  • SEND_REF »
  • PHP Manual
  • Opcode Descriptions and Examples
  • RETURN_BY_REF

RETURN_BY_REF

PHP code

<?php
/*
 *
 * opcode number: 111
 * No sample PHP yet */
?>


SEND_REF

PHP code

<?php
/*
 * Pass the reference value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 67
 */
@each($input);
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | BEGIN_SILENCE |  |  | ~0 |
 | 1 | FETCH_W | local |  | $1 | 'input'
 | 2 | SEND_REF |  |  |  | $1
 | 3 | DO_FCALL |  | 1 |  | 'each'
 | 4 | END_SILENCE |  |  |  | ~0
7 | 5 | RETURN |  |  |  | 1


SEND_VAL

PHP code

<?php
/*
 * Pass the constant value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 65
 */
function funcA($msg){
    print $msg;
}

funcA('HELLO');

defined('IN_PHPBB');
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | NOP |  |  |  |
10 | 1 | SEND_VAL |  |  |  | 'HELLO'
 | 2 | DO_FCALL |  | 1 |  | 'funca'
12 | 3 | SEND_VAL |  |  |  | 'IN_PHPBB'
 | 4 | DO_FCALL |  | 1 |  | 'defined'
13 | 5 | RETURN |  |  |  | 1

Function name: funcA

Compiled variables: !0=$msg

line | # | op | fetch | ext | return | operands
6 | 0 | RECV |  |  |  | 1
7 | 1 | PRINT |  |  | ~0 | !0
 | 2 | FREE |  |  |  | ~0
8 | 3 | RETURN |  |  |  | null


SEND_VAR

PHP code

<?php
/*
 * Pass the variable value as an actual parameter to a function.  DO_FCALL follows.
 * opcode number: 66
 */
$a = array(1,2,3);
if(is_array($a)){ return 0; }
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | SEND_VAR |  |  |  | !0
 | 5 | DO_FCALL |  | 1 |  | 'is_array'
 | 6 | JMPZ |  |  |  | $2,->9
 | 7 | RETURN |  |  |  | 0
 | 8 | JMP |  |  |  | ->9
8 | 9 | RETURN |  |  |  | 1


  • « SEND_VAR
  • SL »
  • PHP Manual
  • Opcode Descriptions and Examples
  • SEND_VAR_NO_REF

SEND_VAR_NO_REF

PHP code

<?php
/*
 *
 * opcode number: 106
 * No sample PHP yet */
?>


SL

PHP code

<?php
/*
 * Shift bits of value1 to the left value2 steps (each step means "multiply by two")
 * opcode number: 6
 */
echo 8 << 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SL |  |  | ~0 | 8,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


SR

PHP code

<?php
/*
 * Shift bits of value1 to the right value2 steps (each step means "divide by two")
 * opcode number: 7
 */
echo 8 >> 2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SR |  |  | ~0 | 8,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


SUB

PHP code

<?php
/*
 * Subtracts "value2" from "value1" and stores the result into "result".
 * opcode number: 2
 */
echo 1-2;
?>

PHP opcodes

Function name: (null)

Compiled variables: none

line | # | op | fetch | ext | return | operands
6 | 0 | SUB |  |  | ~0 | 1,2
 | 1 | ECHO |  |  |  | ~0
7 | 2 | RETURN |  |  |  | 1


SWITCH_FREE

PHP code

<?php
/*
 * Release the allocated space of "value"?
 * opcode number: 49
 */
$a = array(1,2,3);
foreach($a as $num){
    print $num;
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a, !1=$num

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | FE_RESET |  |  | $2 | !0,->11
 | 5 | FE_FETCH |  |  | $3 | $2,->11
 | 6 | ZEND_OP_DATA |  |  |  |
 | 7 | ASSIGN |  |  |  | !1,$3
8 | 8 | PRINT |  |  | ~5 | !1
 | 9 | FREE |  |  |  | ~5
9 | 10 | JMP |  |  |  | ->5
 | 11 | SWITCH_FREE |  |  |  | $2
10 | 12 | RETURN |  |  |  | 1


THROW

PHP code

<?php
/*
 *
 * opcode number: 108
 */
try {
    $error = 'Always throw this error';
    throw new Exception($error);

    // Code following an exception is not executed.
    echo 'Never executed';

} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

// Continue execution
echo 'Hello World';
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$error, !1=$e

line | # | op | fetch | ext | return | operands
7 | 0 | ASSIGN |  |  |  | !0,'Always+throw+this+error'
8 | 1 | ZEND_FETCH_CLASS |  |  | :1 | 'Exception'
 | 2 | NEW |  |  | $2 | :1
 | 3 | SEND_VAR |  |  |  | !0
 | 4 | DO_FCALL_BY_NAME |  | 1 |  |
 | 5 | ZEND_THROW |  | 0 |  | $2
11 | 6 | ECHO |  |  |  | 'Never+executed'
13 | 7 | JMP |  |  |  | ->15
 | 8 | ZEND_FETCH_CLASS |  |  | :4 | 'Exception'
 | 9 | ZEND_CATCH |  | 15 |  | $4,!1
14 | 10 | ECHO |  |  |  | 'Caught+exception%3A+'
 | 11 | ZEND_INIT_METHOD_CALL |  |  |  | !1,'getMessage'
 | 12 | DO_FCALL_BY_NAME |  | 0 |  |
 | 13 | ECHO |  |  |  | $6
 | 14 | ECHO |  |  |  | '%0A'
18 | 15 | ECHO |  |  |  | 'Hello+World'
19 | 16 | RETURN |  |  |  | 1


TICKS

PHP code

<?php
/*
 *
 * opcode number: 105
 */
// A function that records the time when it is called
function profile()
{
   echo "profile function is called\n";
}

// Set up a tick handler
register_tick_function("profile");

// Initialize the function before the declare block
profile();

// Run a block of code, throw a tick every 2nd statement
declare(ticks=2) {
   for ($x = 0; $x < 10; ++$x) {
         echo "hello world\n";
   }
}
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x

line | # | op | fetch | ext | return | operands
7 | 0 | NOP |  |  |  |
13 | 1 | SEND_VAL |  |  |  | 'profile'
 | 2 | DO_FCALL |  | 1 |  | 'register_tick_function'
16 | 3 | DO_FCALL |  | 0 |  | 'profile'
20 | 4 | ASSIGN |  |  |  | !0,0
 | 5 | IS_SMALLER |  |  | ~3 | !0,10
 | 6 | JMPZNZ |  | 9 |  | ~3,->13
 | 7 | PRE_INC |  |  |  | !0
 | 8 | JMP |  |  |  | ->5
21 | 9 | ECHO |  |  |  | 'hello+world%0A'
 | 10 | TICKS |  |  |  | 2
22 | 11 | TICKS |  |  |  | 2
 | 12 | JMP |  |  |  | ->7
 | 13 | TICKS |  |  |  | 2
23 | 14 | TICKS |  |  |  | 2
24 | 15 | RETURN |  |  |  | 1

Function name: profile

Compiled variables: none

line | # | op | fetch | ext | return | operands
9 | 0 | ECHO |  |  |  | 'profile+function+is+called%0A'
10 | 1 | RETURN |  |  |  | null


UNSET_DIM

PHP code

<?php
/*
 * Unset the entry of array-value, which is specified by index, and store the original element value into "result".
 * opcode number: 75
 */
$a = array(1,2,3);
unset($a[0]);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$a

line | # | op | fetch | ext | return | operands
6 | 0 | INIT_ARRAY |  |  | ~0 | 1
 | 1 | ADD_ARRAY_ELEMENT |  |  | ~0 | 2
 | 2 | ADD_ARRAY_ELEMENT |  |  | ~0 | 3
 | 3 | ASSIGN |  |  |  | !0,~0
7 | 4 | UNSET_DIM |  |  | $2 | !0,0
8 | 5 | RETURN |  |  |  | 1


UNSET_OBJ

PHP code

<?php
/*
 * Unset the property of the current object (this) and store the original value into "result".
 * opcode number: 76
 */
$obj = new A();
unset($obj->num);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$obj

line | # | op | fetch | ext | return | operands
6 | 0 | ZEND_FETCH_CLASS |  |  | :0 | 'A'
 | 1 | NEW |  |  | $1 | :0
 | 2 | DO_FCALL_BY_NAME |  | 0 |  |
 | 3 | ASSIGN |  |  |  | !0,$1
7 | 4 | UNSET_OBJ |  |  | $4 | !0,'num'
8 | 5 | RETURN |  |  |  | 1


UNSET_VAR

PHP code

<?php
/*
 * Unset the variable and store the original value into "result".
 * opcode number: 74
 */
$x = 1;
$a='x';
unset($$a);
?>

PHP opcodes

Function name: (null)

Compiled variables: !0=$x, !1=$a

line | # | op | fetch | ext | return | operands
6 | 0 | ASSIGN |  |  |  | !0,1
7 | 1 | ASSIGN |  |  |  | !1,'x'
8 | 2 | UNSET_VAR |  |  | $2 | !1
9 | 3 | RETURN |  |  |  | 1


  • « UNSET_VAR
  • VERIFY_ABSTRACT_CLASS »
  • PHP Manual
  • Opcode Descriptions and Examples
  • USER_OPCODE

USER_OPCODE

PHP code

<?php
/*
 *
 * opcode number: 150
 * No sample PHP yet */
?>


  • « USER_OPCODE
  • ZEND_DECLARE_LAMBDA_FUNCTION »
  • PHP Manual
  • Opcode Descriptions and Examples
  • VERIFY_ABSTRACT_CLASS

VERIFY_ABSTRACT_CLASS

PHP code

<?php
/*
 *
 * opcode number: 146
 * No sample PHP yet */
?>


  • « VERIFY_ABSTRACT_CLASS
  • ZEND_JMP_SET »
  • PHP Manual
  • Opcode Descriptions and Examples
  • ZEND_DECLARE_LAMBDA_FUNCTION

ZEND_DECLARE_LAMBDA_FUNCTION

PHP code

<?php
/*
 *
 * opcode number: 153
 * No sample PHP yet */
?>


  • « ZEND_DECLARE_LAMBDA_FUNCTION
  • Zend Engine 1 »
  • PHP Manual
  • Opcode Descriptions and Examples
  • ZEND_JMP_SET

ZEND_JMP_SET

PHP code

<?php
/*
 *
 * opcode number: 152
 * No sample PHP yet */
?>


Zend Engine 1

Содержание

  • Old introduction
  • Streams API for PHP Extension Authors
  • Zend API: Взламываем ядро PHP
  • TSRM API

Zend Engine 1 is the internal engine used by PHP for the entire version 4 release line. It is no longer considered active, but the old ZE1 documentation is preserved here exactly as it was.


Old introduction

If you are about to begin developing PHP or Zend extensions, you need to prepare yourself for the programming environment provided by the various APIs. This part of the documentation tries to introduce the APIs provided by the different PHP and Zend Engine versions available. Since most of the information available here is somewhat outdated, you'll want to read various files found in the PHP source, files such as README.SELF-CONTAINED-EXTENSIONS and README.EXT_SKEL in addition to the manual.


Streams API for PHP Extension Authors

Замечание:

The functions in this chapter are for use in the PHP source code and are not PHP functions. Information on userland stream functions can be found in the Stream Reference.

Overview

The PHP Streams API introduces a unified approach to the handling of files and sockets in PHP extension. Using a single API with standard functions for common operations, the streams API allows your extension to access files, sockets, URLs, memory and script-defined objects. Streams is a run-time extensible API that allows dynamically loaded modules (and scripts!) to register new streams.

The aim of the Streams API is to make it comfortable for developers to open files, URLs and other streamable data sources with a unified API that is easy to understand. The API is more or less based on the ANSI C stdio family of functions (with identical semantics for most of the main functions), so C programmers will have a feeling of familiarity with streams.

The streams API operates on a couple of different levels: at the base level, the API defines php_stream objects to represent streamable data sources. On a slightly higher level, the API defines php_stream_wrapper objects which "wrap" around the lower level API to provide support for retrieving data and meta-data from URLs. An additional context parameter, accepted by most stream creation functions, is passed to the wrapper's stream_opener method to fine-tune the behavior of the wrapper.

Any stream, once opened, can also have any number of filters applied to it, which process data as it is read from/written to the stream.

Streams can be cast (converted) into other types of file-handles, so that they can be used with third-party libraries without a great deal of trouble. This allows those libraries to access data directly from URL sources. If your system has the fopencookie() or funopen() function, you can even pass any PHP stream to any library that uses ANSI stdio!

Streams Basics

Using streams is very much like using ANSI stdio functions. The main difference is in how you obtain the stream handle to begin with. In most cases, you will use php_stream_open_wrapper() to obtain the stream handle. This function works very much like fopen, as can be seen from the example below:

Пример #1 simple stream example that displays the PHP home page

php_stream * stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);
if (stream) {
    while(!php_stream_eof(stream)) {
        char buf[1024];

        if (php_stream_gets(stream, buf, sizeof(buf))) {
            printf(buf);
        } else {
            break;
        }
    }
    php_stream_close(stream);
}

The table below shows the Streams equivalents of the more common ANSI stdio functions. Unless noted otherwise, the semantics of the functions are identical.

ANSI stdio equivalent functions in the Streams API
ANSI Stdio Function | PHP Streams Function | Notes
fopen | php_stream_open_wrapper | Streams includes additional parameters
fclose | php_stream_close |
fgets | php_stream_gets |
fread | php_stream_read | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like read(2)
fwrite | php_stream_write | The nmemb parameter is assumed to have a value of 1, so the prototype looks more like write(2)
fseek | php_stream_seek |
ftell | php_stream_tell |
rewind | php_stream_rewind |
feof | php_stream_eof |
fgetc | php_stream_getc |
fputc | php_stream_putc |
fflush | php_stream_flush |
puts | php_stream_puts | Same semantics as puts, NOT fputs
fstat | php_stream_stat | Streams has a richer stat structure

Streams as Resources

All streams are registered as resources when they are created. This ensures that they will be properly cleaned up even if there is some fatal error. All of the filesystem functions in PHP operate on streams resources - that means that your extensions can accept regular PHP file pointers as parameters to, and return streams from their functions. The streams API makes this process as painless as possible:

Пример #2 How to accept a stream as a parameter

PHP_FUNCTION(example_write_hello)
{
    zval *zstream;
    php_stream *stream;

    if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream))
        return;

    php_stream_from_zval(stream, &zstream);

    /* you can now use the stream.  However, you do not "own" the
        stream, the script does.  That means you MUST NOT close the
        stream, because it will cause PHP to crash! */

    php_stream_write(stream, "hello\n");

    RETURN_TRUE();
}

Пример #3 How to return a stream from a function

PHP_FUNCTION(example_open_php_home_page)
{
    php_stream *stream;

    stream = php_stream_open_wrapper("http://www.php.net", "rb", REPORT_ERRORS, NULL);

    php_stream_to_zval(stream, return_value);

    /* after this point, the stream is "owned" by the script.
        If you close it now, you will crash PHP! */
}

Since streams are automatically cleaned up, it's tempting to think that we can get away with being sloppy programmers and not bother to close the streams when we are done with them. Although such an approach might work, it is not a good idea for a number of reasons: streams hold locks on system resources while they are open, so leaving a file open after you have finished with it could prevent other processes from accessing it. If a script deals with a large number of files, the accumulation of the resources used, both in terms of memory and the sheer number of open files, can cause web server requests to fail. Sounds bad, doesn't it? The streams API includes some magic that helps you to keep your code clean - if a stream is not closed by your code when it should be, you will find some helpful debugging information in you web server error log.

Замечание: Always use a debug build of PHP when developing an extension (--enable-debug when running configure), as a lot of effort has been made to warn you about memory and stream leaks.

In some cases, it is useful to keep a stream open for the duration of a request, to act as a log or trace file for example. Writing the code to safely clean up such a stream is not difficult, but it's several lines of code that are not strictly needed. To save yourself the trouble of writing the code, you can mark a stream as being OK for auto cleanup. What this means is that the streams API will not emit a warning when it is time to auto-cleanup a stream. To do this, you can use php_stream_auto_cleanup().

Streams open options

These constants affect the operation of stream factory functions.

IGNORE_PATH
This is the default option for streams; it requests that the include_path is not to be searched for the requested file.
USE_PATH
Requests that the include_path is to be searched for the requested file.
IGNORE_URL
Requests that registered URL wrappers are to be ignored when opening the stream. Other non-URL wrappers will be taken into consideration when decoding the path. There is no opposite form for this flag; the streams API will use all registered wrappers by default.
IGNORE_URL_WIN
On Windows systems, this is equivalent to IGNORE_URL. On all other systems, this flag has no effect.
ENFORCE_SAFE_MODE
Requests that the underlying stream implementation perform safe_mode checks on the file before opening the file. Omitting this flag will skip safe_mode checks and allow opening of any file that the PHP process has rights to access.
REPORT_ERRORS
If this flag is set, and there was an error during the opening of the file or URL, the streams API will call the php_error function for you. This is useful because the path may contain username/password information that should not be displayed in the browser output (it would be a security risk to do so). When the streams API raises the error, it first strips username/password information from the path, making the error message safe to display in the browser.
STREAM_MUST_SEEK
This flag is useful when your extension really must be able to randomly seek around in a stream. Some streams may not be seekable in their native form, so this flag asks the streams API to check to see if the stream does support seeking. If it does not, it will copy the stream into temporary storage (which may be a temporary file or a memory stream) which does support seeking. Please note that this flag is not useful when you want to seek the stream and write to it, because the stream you are accessing might not be bound to the actual resource you requested.

Замечание: If the requested resource is network based, this flag will cause the opener to block until the whole contents have been downloaded.

STREAM_WILL_CAST
If your extension is using a third-party library that expects a FILE* or file descriptor, you can use this flag to request the streams API to open the resource but avoid buffering. You can then use php_stream_cast() to retrieve the FILE* or file descriptor that the library requires. The is particularly useful when accessing HTTP URLs where the start of the actual stream data is found after an indeterminate offset into the stream. Since this option disables buffering at the streams API level, you may experience lower performance when using streams functions on the stream; this is deemed acceptable because you have told streams that you will be using the functions to match the underlying stream implementation. Only use this option when you are sure you need it.


Zend API: Взламываем ядро PHP

Introduction

Those who know don't talk.

Those who talk don't know.

Sometimes, PHP "as is" simply isn't enough. Although these cases are rare for the average user, professional applications will soon lead PHP to the edge of its capabilities, in terms of either speed or functionality. New functionality cannot always be implemented natively due to language restrictions and inconveniences that arise when having to carry around a huge library of default code appended to every single script, so another method needs to be found for overcoming these eventual lacks in PHP.

As soon as this point is reached, it's time to touch the heart of PHP and take a look at its core, the C code that makes PHP go.

Внимание

This information is currently rather outdated, parts of it only cover early stages of the ZendEngine 1.0 API as it was used in early versions of PHP 4.

More recent information may be found in the various README files that come with the PHP source and the » Internals section on the Zend website.

Overview

"Extending PHP" is easier said than done. PHP has evolved to a full-fledged tool consisting of a few megabytes of source code, and to hack a system like this quite a few things have to be learned and considered. When structuring this chapter, we finally decided on the "learn by doing" approach. This is not the most scientific and professional approach, but the method that's the most fun and gives the best end results. In the following sections, you'll learn quickly how to get the most basic extensions to work almost instantly. After that, you'll learn about Zend's advanced API functionality. The alternative would have been to try to impart the functionality, design, tips, tricks, etc. as a whole, all at once, thus giving a complete look at the big picture before doing anything practical. Although this is the "better" method, as no dirty hacks have to be made, it can be very frustrating as well as energy- and time-consuming, which is why we've decided on the direct approach.

Note that even though this chapter tries to impart as much knowledge as possible about the inner workings of PHP, it's impossible to really give a complete guide to extending PHP that works 100% of the time in all cases. PHP is such a huge and complex package that its inner workings can only be understood if you make yourself familiar with it by practicing, so we encourage you to work with the source.

What Is Zend? and What Is PHP?

The name Zend refers to the language engine, PHP's core. The term PHP refers to the complete system as it appears from the outside. This might sound a bit confusing at first, but it's not that complicated ( see below). To implement a Web script interpreter, you need three parts:

  1. The interpreter part analyzes the input code, translates it, and executes it.

  2. The functionality part implements the functionality of the language (its functions, etc.).

  3. The interface part talks to the Web server, etc.

Zend takes part 1 completely and a bit of part 2; PHP takes parts 2 and 3. Together they form the complete PHP package. Zend itself really forms only the language core, implementing PHP at its very basics with some predefined functions. PHP contains all the modules that actually create the language's outstanding capabilities.
The internal structure of PHP.

The following sections discuss where PHP can be extended and how it's done.

Extension Possibilities

As shown above, PHP can be extended primarily at three points: external modules, built-in modules, and the Zend engine. The following sections discuss these options.

External Modules

External modules can be loaded at script runtime using the function dl(). This function loads a shared object from disk and makes its functionality available to the script to which it's being bound. After the script is terminated, the external module is discarded from memory. This method has both advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
External modules don't require recompiling of PHP. | The shared objects need to be loaded every time a script is being executed (every hit), which is very slow.
The size of PHP remains small by "outsourcing" certain functionality. | External additional files clutter up the disk.
 |  | Every script that wants to use an external module's functionality has to specifically include a call to dl(), or the extension tag in php.ini needs to be modified (which is not always a suitable solution).
To sum up, external modules are great for third-party products, small additions to PHP that are rarely used, or just for testing purposes. To develop additional functionality quickly, external modules provide the best results. For frequent usage, larger implementations, and complex code, the disadvantages outweigh the advantages.

Third parties might consider using the extension tag in php.ini to create additional external modules to PHP. These external modules are completely detached from the main package, which is a very handy feature in commercial environments. Commercial distributors can simply ship disks or archives containing only their additional modules, without the need to create fixed and solid PHP binaries that don't allow other modules to be bound to them.

Built-in Modules

Built-in modules are compiled directly into PHP and carried around with every PHP process; their functionality is instantly available to every script that's being run. Like external modules, built-in modules have advantages and disadvantages, as described in the following table:

Advantages | Disadvantages
No need to load the module specifically; the functionality is instantly available. | Changes to built-in modules require recompiling of PHP.
No external files clutter up the disk; everything resides in the PHP binary. | The PHP binary grows and consumes more memory.
Built-in modules are best when you have a solid library of functions that remains relatively unchanged, requires better than poor-to-average performance, or is used frequently by many scripts on your site. The need to recompile PHP is quickly compensated by the benefit in speed and ease of use. However, built-in modules are not ideal when rapid development of small additions is required.

The Zend Engine

Of course, extensions can also be implemented directly in the Zend engine. This strategy is good if you need a change in the language behavior or require special functions to be built directly into the language core. In general, however, modifications to the Zend engine should be avoided. Changes here result in incompatibilities with the rest of the world, and hardly anyone will ever adapt to specially patched Zend engines. Modifications can't be detached from the main PHP sources and are overridden with the next update using the "official" source repositories. Therefore, this method is generally considered bad practice and, due to its rarity, is not covered in this book.

Source Layout

Замечание:

Prior to working through the rest of this chapter, you should retrieve clean, unmodified source trees of your favorite Web server. We're working with Apache (available at » http://httpd.apache.org/) and, of course, with PHP (available at » http://www.php.net/ - does it need to be said?).

Make sure that you can compile a working PHP environment by yourself! We won't go into this issue here, however, as you should already have this most basic ability when studying this chapter.

Before we start discussing code issues, you should familiarize yourself with the source tree to be able to quickly navigate through PHP's files. This is a must-have ability to implement and debug extensions.

The following table describes the contents of the major directories.

Directory | Contents
php-src | Main PHP source files and main header files; here you'll find all of PHP's API definitions, macros, etc. (important). Everything else is below this directory.
php-src/ext | Repository for dynamic and built-in modules; by default, these are the "official" PHP modules that have been integrated into the main source tree. From PHP 4.0, it's possible to compile these standard extensions as dynamic loadable modules (at least, those that support it).
php-src/main | This directory contains the main php macros and definitions. (important)
php-src/pear | Directory for the PHP Extension and Application Repository. This directory contains core PEAR files.
php-src/sapi | Contains the code for the different server abstraction layers.
TSRM | Location of the "Thread Safe Resource Manager" (TSRM) for Zend and PHP.
ZendEngine2 | Location of the Zend Engine files; here you'll find all of Zend's API definitions, macros, etc. (important).

Discussing all the files included in the PHP package is beyond the scope of this chapter. However, you should take a close look at the following files:

  • php-src/main/php.h, located in the main PHP directory. This file contains most of PHP's macro and API definitions.

  • php-src/Zend/zend.h, located in the main Zend directory. This file contains most of Zend's macros and definitions.

  • php-src/Zend/zend_API.h, also located in the Zend directory, which defines Zend's API.

You should also follow some sub-inclusions from these files; for example, the ones relating to the Zend executor, the PHP initialization file support, and such. After reading these files, take the time to navigate around the package a little to see the interdependencies of all files and modules - how they relate to each other and especially how they make use of each other. This also helps you to adapt to the coding style in which PHP is authored. To extend PHP, you should quickly adapt to this style.

Extension Conventions

Zend is built using certain conventions; to avoid breaking its standards, you should follow the rules described in the following sections.

Macros

For almost every important task, Zend ships predefined macros that are extremely handy. The tables and figures in the following sections describe most of the basic functions, structures, and macros. The macro definitions can be found mainly in zend.h and zend_API.h. We suggest that you take a close look at these files after having studied this chapter. (Although you can go ahead and read them now, not everything will make sense to you yet.)

Memory Management

Resource management is a crucial issue, especially in server software. One of the most valuable resources is memory, and memory management should be handled with extreme care. Memory management has been partially abstracted in Zend, and you should stick to this abstraction for obvious reasons: Due to the abstraction, Zend gets full control over all memory allocations. Zend is able to determine whether a block is in use, automatically freeing unused blocks and blocks with lost references, and thus prevent memory leaks. The functions to be used are described in the following table:

Function | Description
emalloc() | Serves as replacement for malloc().
efree() | Serves as replacement for free().
estrdup() | Serves as replacement for strdup().
estrndup() | Serves as replacement for strndup(). Faster than estrdup() and binary-safe. This is the recommended function to use if you know the string length prior to duplicating it.
ecalloc() | Serves as replacement for calloc().
erealloc() | Serves as replacement for realloc().
emalloc(), estrdup(), estrndup(), ecalloc(), and erealloc() allocate internal memory; efree() frees these previously allocated blocks. Memory handled by the e*() functions is considered local to the current process and is discarded as soon as the script executed by this process is terminated.
Внимание

To allocate resident memory that survives termination of the current script, you can use malloc() and free(). This should only be done with extreme care, however, and only in conjunction with demands of the Zend API; otherwise, you risk memory leaks.

Zend also features a thread-safe resource manager to provide better native support for multithreaded Web servers. This requires you to allocate local structures for all of your global variables to allow concurrent threads to be run. Because the thread-safe mode of Zend was not finished back when this was written, it is not yet extensively covered here.

Directory and File Functions

The following directory and file functions should be used in Zend modules. They behave exactly like their C counterparts, but provide virtual working directory support on the thread level.

Zend Function | Regular C Function
V_GETCWD() | getcwd()
V_FOPEN() | fopen()
V_OPEN() | open()
V_CHDIR() | chdir()
V_GETWD() | getwd()
V_CHDIR_FILE() | Takes a file path as an argument and changes the current working directory to that file's directory.
V_STAT() | stat()
V_LSTAT() | lstat()

String Handling

Strings are handled a bit differently by the Zend engine than other values such as integers, Booleans, etc., which don't require additional memory allocation for storing their values. If you want to return a string from a function, introduce a new string variable to the symbol table, or do something similar, you have to make sure that the memory the string will be occupying has previously been allocated, using the aforementioned e*() functions for allocation. (This might not make much sense to you yet; just keep it somewhere in your head for now - we'll get back to it shortly.)

Complex Types

Complex types such as arrays and objects require different treatment. Zend features a single API for these types - they're stored using hash tables.

Замечание:

To reduce complexity in the following source examples, we're only working with simple types such as integers at first. A discussion about creating more advanced types follows later in this chapter.

PHP's Automatic Build System

PHP 4 features an automatic build system that's very flexible. All modules reside in a subdirectory of the ext directory. In addition to its own sources, each module consists of a config.m4 file, for extension configuration. (for example, see » http://www.gnu.org/software/m4/)

All these stub files are generated automatically, along with .cvsignore, by a little shell script named ext_skel that resides in the ext directory. As argument it takes the name of the module that you want to create. The shell script then creates a directory of the same name, along with the appropriate stub files.

Step by step, the process looks like this:

:~/cvs/php4/ext:> ./ext_skel --extname=my_module
Creating directory my_module
Creating basic files: config.m4 .cvsignore my_module.c php_my_module.h CREDITS EXPERIMENTAL tests/001.phpt my_module.php [done].

To use your new extension, you will have to execute the following steps:

1.  $ cd ..
2.  $ vi ext/my_module/config.m4
3.  $ ./buildconf
4.  $ ./configure --[with|enable]-my_module
5.  $ make
6.  $ ./php -f ext/my_module/my_module.php
7.  $ vi ext/my_module/my_module.c
8.  $ make

Repeat steps 3-6 until you are satisfied with ext/my_module/config.m4 and
step 6 confirms that your module is compiled into PHP. Then, start writing
code and repeat the last two steps as often as necessary.
This instruction creates the aforementioned files. To include the new module in the automatic configuration and build process, you have to run buildconf, which regenerates the configure script by searching through the ext directory and including all found config.m4 files.

The default config.m4 shown in The default config.m4. is a bit more complex:

Пример #1 The default config.m4.

dnl $Id: build.xml 297078 2010-03-29 16:25:51Z degeberg $
dnl config.m4 for extension my_module

dnl Comments in this file start with the string 'dnl'.
dnl Remove where necessary. This file will not work
dnl without editing.

dnl If your extension references something external, use with:

dnl PHP_ARG_WITH(my_module, for my_module support,
dnl Make sure that the comment is aligned:
dnl [  --with-my_module             Include my_module support])

dnl Otherwise use enable:

dnl PHP_ARG_ENABLE(my_module, whether to enable my_module support,
dnl Make sure that the comment is aligned:
dnl [  --enable-my_module           Enable my_module support])

if test "$PHP_MY_MODULE" != "no"; then
  dnl Write more examples of tests here...

  dnl # --with-my_module -> check with-path
  dnl SEARCH_PATH="/usr/local /usr"     # you might want to change this
  dnl SEARCH_FOR="/include/my_module.h"  # you most likely want to change this
  dnl if test -r $PHP_MY_MODULE/; then # path given as parameter
  dnl   MY_MODULE_DIR=$PHP_MY_MODULE
  dnl else # search default path list
  dnl   AC_MSG_CHECKING([for my_module files in default path])
  dnl   for i in $SEARCH_PATH ; do
  dnl     if test -r $i/$SEARCH_FOR; then
  dnl       MY_MODULE_DIR=$i
  dnl       AC_MSG_RESULT(found in $i)
  dnl     fi
  dnl   done
  dnl fi
  dnl
  dnl if test -z "$MY_MODULE_DIR"; then
  dnl   AC_MSG_RESULT([not found])
  dnl   AC_MSG_ERROR([Please reinstall the my_module distribution])
  dnl fi

  dnl # --with-my_module -> add include path
  dnl PHP_ADD_INCLUDE($MY_MODULE_DIR/include)

  dnl # --with-my_module -> chech for lib and symbol presence
  dnl LIBNAME=my_module # you may want to change this
  dnl LIBSYMBOL=my_module # you most likely want to change this

  dnl PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL,
  dnl [
  dnl   PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $MY_MODULE_DIR/lib, MY_MODULE_SHARED_LIBADD)
  dnl   AC_DEFINE(HAVE_MY_MODULELIB,1,[ ])
  dnl ],[
  dnl   AC_MSG_ERROR([wrong my_module lib version or lib not found])
  dnl ],[
  dnl   -L$MY_MODULE_DIR/lib -lm -ldl
  dnl ])
  dnl
  dnl PHP_SUBST(MY_MODULE_SHARED_LIBADD)

  PHP_NEW_EXTENSION(my_module, my_module.c, $ext_shared)
fi

If you're unfamiliar with M4 files (now is certainly a good time to get familiar), this might be a bit confusing at first; but it's actually quite easy.

Note: Everything prefixed with dnl is treated as a comment and is not parsed.

The config.m4 file is responsible for parsing the command-line options passed to configure at configuration time. This means that it has to check for required external files and do similar configuration and setup tasks.

The default file creates two configuration directives in the configure script: --with-my_module and --enable-my_module. Use the first option when referring external files (such as the --with-apache directive that refers to the Apache directory). Use the second option when the user simply has to decide whether to enable your extension. Regardless of which option you use, you should uncomment the other, unnecessary one; that is, if you're using --enable-my_module, you should remove support for --with-my_module, and vice versa.

By default, the config.m4 file created by ext_skel accepts both directives and automatically enables your extension. Enabling the extension is done by using the PHP_EXTENSION macro. To change the default behavior to include your module into the PHP binary when desired by the user (by explicitly specifying --enable-my_module or --with-my_module), change the test for $PHP_MY_MODULE to == "yes":

if test "$PHP_MY_MODULE" == "yes"; then dnl
    Action.. PHP_EXTENSION(my_module, $ext_shared)
    fi
This would require you to use --enable-my_module each time when reconfiguring and recompiling PHP.

Note: Be sure to run buildconf every time you change config.m4!

We'll go into more details on the M4 macros available to your configuration scripts later in this chapter. For now, we'll simply use the default files.

Creating Extensions

We'll start with the creation of a very simple extension at first, which basically does nothing more than implement a function that returns the integer it receives as parameter. A simple extension. shows the source.

Пример #2 A simple extension.

/* include standard header */
#include "php.h"

/* declaration of functions to be exported */
ZEND_FUNCTION(first_module);

/* compiled function list so Zend knows what's in this module */
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    ZEND_FE_END
};

/* compiled module information */
zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES
};

/* implement standard "stub" routine to introduce ourselves to Zend */
#if COMPILE_DL_FIRST_MODULE
ZEND_GET_MODULE(firstmod)
#endif

/* implement function that is meant to be made available to PHP */
ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}

This code contains a complete PHP module. We'll explain the source code in detail shortly, but first we'd like to discuss the build process. (This will allow the impatient to experiment before we dive into API discussions.)

Замечание:

The example source makes use of some features introduced with the Zend version used in PHP 4.1.0 and above, it won't compile with older PHP 4.0.x versions.

Compiling Modules

There are basically two ways to compile modules:

  • Use the provided "make" mechanism in the ext directory, which also allows building of dynamic loadable modules.

  • Compile the sources manually.

The first method should definitely be favored, since, as of PHP 4.0, this has been standardized into a sophisticated build process. The fact that it is so sophisticated is also its drawback, unfortunately - it's hard to understand at first. We'll provide a more detailed introduction to this later in the chapter, but first let's work with the default files.

The second method is good for those who (for some reason) don't have the full PHP source tree available, don't have access to all files, or just like to juggle with their keyboard. These cases should be extremely rare, but for the sake of completeness we'll also describe this method.

Compiling Using Make

To compile the sample sources using the standard mechanism, copy all their subdirectories to the ext directory of your PHP source tree. Then run buildconf, which will create an updated configure script containing appropriate options for the new extension. By default, all the sample sources are disabled, so you don't have to fear breaking your build process.

After you run buildconf, configure --help shows the following additional modules:

  --enable-array_experiments   BOOK: Enables array experiments
  --enable-call_userland       BOOK: Enables userland module
  --enable-cross_conversion    BOOK: Enables cross-conversion module
  --enable-first_module        BOOK: Enables first module
  --enable-infoprint           BOOK: Enables infoprint module
  --enable-reference_test      BOOK: Enables reference test module
  --enable-resource_test       BOOK: Enables resource test module
  --enable-variable_creation   BOOK: Enables variable-creation module

The module shown earlier in A simple extension. can be enabled with --enable-first_module or --enable-first_module=yes.

Compiling Manually

To compile your modules manually, you need the following commands:

Action | Command
Compiling | cc -fpic -DCOMPILE_DL_FIRST_MODULE=1 -I/usr/local/include -I. -I.. -I../Zend -c -o <your_object_file> <your_c_file>
Linking | cc -shared -L/usr/local/lib -rdynamic -o <your_module_file> <your_object_file(s)>
The command to compile the module simply instructs the compiler to generate position-independent code (-fpic shouldn't be omitted) and additionally defines the constant COMPILE_DL_FIRST_MODULE to tell the module code that it's compiled as a dynamically loadable module (the test module above checks for this; we'll discuss it shortly). After these options, it specifies a number of standard include paths that should be used as the minimal set to compile the source files.

Note: All include paths in the example are relative to the directory ext. If you're compiling from another directory, change the pathnames accordingly. Required items are the PHP directory, the Zend directory, and (if necessary), the directory in which your module resides.

The link command is also a plain vanilla command instructing linkage as a dynamic module.

You can include optimization options in the compilation command, although these have been omitted in this example (but some are included in the makefile template described in an earlier section).

Note: Compiling and linking manually as a static module into the PHP binary involves very long instructions and thus is not discussed here. (It's not very efficient to type all those commands.)

Using Extensions

Depending on the build process you selected, you should either end up with a new PHP binary to be linked into your Web server (or run as CGI), or with an .so (shared object) file. If you compiled the example file first_module.c as a shared object, your result file should be first_module.so. To use it, you first have to copy it to a place from which it's accessible to PHP. For a simple test procedure, you can copy it to your htdocs directory and try it with the source in A test file for first_module.so.. If you compiled it into the PHP binary, omit the call to dl(), as the module's functionality is instantly available to your scripts.

Внимание

For security reasons, you should not put your dynamic modules into publicly accessible directories. Even though it can be done and it simplifies testing, you should put them into a separate directory in production environments.

Пример #3 A test file for first_module.so.

<?php

// remove next comment if necessary
// dl("first_module.so");

$param = 2;
$return = first_module($param);

print("We sent '$param' and got '$return'");

?>

Calling this PHP file should output the following:

We sent '2' and got '2'

If required, the dynamic loadable module is loaded by calling the dl() function. This function looks for the specified shared object, loads it, and makes its functions available to PHP. The module exports the function first_module(), which accepts a single parameter, converts it to an integer, and returns the result of the conversion.

If you've gotten this far, congratulations! You just built your first extension to PHP.

Troubleshooting

Actually, not much troubleshooting can be done when compiling static or dynamic modules. The only problem that could arise is that the compiler will complain about missing definitions or something similar. In this case, make sure that all header files are available and that you specified their path correctly in the compilation command. To be sure that everything is located correctly, extract a clean PHP source tree and use the automatic build in the ext directory with the fresh files; this will guarantee a safe compilation environment. If this fails, try manual compilation.

PHP might also complain about missing functions in your module. (This shouldn't happen with the sample sources if you didn't modify them.) If the names of external functions you're trying to access from your module are misspelled, they'll remain as "unlinked symbols" in the symbol table. During dynamic loading and linkage by PHP, they won't resolve because of the typing errors - there are no corresponding symbols in the main binary. Look for incorrect declarations in your module file or incorrectly written external references. Note that this problem is specific to dynamic loadable modules; it doesn't occur with static modules. Errors in static modules show up at compile time.

Source Discussion

Now that you've got a safe build environment and you're able to include the modules into PHP files, it's time to discuss how everything works.

Module Structure

All PHP modules follow a common structure:

  • Header file inclusions (to include all required macros, API definitions, etc.)

  • C declaration of exported functions (required to declare the Zend function block)

  • Declaration of the Zend function block

  • Declaration of the Zend module block

  • Implementation of get_module()

  • Implementation of all exported functions

Header File Inclusions

The only header file you really have to include for your modules is php.h, located in the PHP directory. This file makes all macros and API definitions required to build new modules available to your code.

Tip: It's good practice to create a separate header file for your module that contains module-specific definitions. This header file should contain all the forward definitions for exported functions and include php.h. If you created your module using ext_skel you already have such a header file prepared.

Declaring Exported Functions

To declare functions that are to be exported (i.e., made available to PHP as new native functions), Zend provides a set of macros. A sample declaration looks like this:

ZEND_FUNCTION ( my_function );

ZEND_FUNCTION declares a new C function that complies with Zend's internal API. This means that the function is of type void and accepts INTERNAL_FUNCTION_PARAMETERS (another macro) as parameters. Additionally, it prefixes the function name with zif. The immediately expanded version of the above definitions would look like this:

void zif_my_function ( INTERNAL_FUNCTION_PARAMETERS );
Expanding INTERNAL_FUNCTION_PARAMETERS results in the following:
void zif_my_function( int ht
                    , zval * return_value
                    , zval * this_ptr
                    , int return_value_used
                    , zend_executor_globals * executor_globals
                    );

Since the interpreter and executor core have been separated from the main PHP package, a second API defining macros and function sets has evolved: the Zend API. As the Zend API now handles quite a few of the responsibilities that previously belonged to PHP, a lot of PHP functions have been reduced to macros aliasing to calls into the Zend API. The recommended practice is to use the Zend API wherever possible, as the old API is only preserved for compatibility reasons. For example, the types zval and pval are identical. zval is Zend's definition; pval is PHP's definition (actually, pval is an alias for zval now). As the macro INTERNAL_FUNCTION_PARAMETERS is a Zend macro, the above declaration contains zval. When writing code, you should always use zval to conform to the new Zend API.

The parameter list of this declaration is very important; you should keep these parameters in mind (see Zend's Parameters to Functions Called from PHP for descriptions).

Zend's Parameters to Functions Called from PHP
Parameter | Description
ht | The number of arguments passed to the Zend function. You should not touch this directly, but instead use ZEND_NUM_ARGS() to obtain the value.
return_value | This variable is used to pass any return values of your function back to PHP. Access to this variable is best done using the predefined macros. For a description of these see below.
this_ptr | Using this variable, you can gain access to the object in which your function is contained, if it's used within an object. Use the function getThis() to obtain this pointer.
return_value_used | This flag indicates whether an eventual return value from this function will actually be used by the calling script. 0 indicates that the return value is not used; 1 indicates that the caller expects a return value. Evaluation of this flag can be done to verify correct usage of the function as well as speed optimizations in case returning a value requires expensive operations (for an example, see how array.c makes use of this).
executor_globals | This variable points to global settings of the Zend engine. You'll find this useful when creating new variables, for example (more about this later). The executor globals can also be introduced to your function by using the macro TSRMLS_FETCH().

Declaration of the Zend Function Block

Now that you have declared the functions to be exported, you also have to introduce them to Zend. Introducing the list of functions is done by using an array of zend_function_entry. This array consecutively contains all functions that are to be made available externally, with the function's name as it should appear in PHP and its name as defined in the C source. Internally, zend_function_entry is defined as shown in Internal declaration of zend_function_entry..

Пример #4 Internal declaration of zend_function_entry.

typedef struct _zend_function_entry {
    char *fname;
    void (*handler)(INTERNAL_FUNCTION_PARAMETERS);
    unsigned char *func_arg_types;
} zend_function_entry;
Entry | Description
fname | Denotes the function name as seen in PHP (for example, fopen, mysql_connect, or, in our example, first_module).
handler | Pointer to the C function responsible for handling calls to this function. For example, see the standard macro INTERNAL_FUNCTION_PARAMETERS discussed earlier.
func_arg_types | Allows you to mark certain parameters so that they're forced to be passed by reference. You usually should set this to NULL.
In the example above, the declaration looks like this:
zend_function_entry firstmod_functions[] =
{
    ZEND_FE(first_module, NULL)
    ZEND_FE_END
};
You can see that the last entry in the list always has to be ZEND_FE_END. This marker has to be set for Zend to know when the end of the list of exported functions is reached.

The macro ZEND_FE (short for 'Zend Function Entry') simply expands to a structure entry in zend_function_entry. Note that these macros introduce a special naming scheme to your functions - your C functions will be prefixed with zif_, meaning that ZEND_FE(first_module) will refer to a C function zif_first_module(). If you want to mix macro usage with hand-coded entries (not a good practice), keep this in mind.

Tip: Compilation errors that refer to functions named zif_*() relate to functions defined with ZEND_FE.

Macros for Defining Functions shows a list of all the macros that you can use to define functions.

Macros for Defining Functions
Macro Name | Description
ZEND_FE(name, arg_types) | Defines a function entry of the name name in zend_function_entry. Requires a corresponding C function. arg_types needs to be set to NULL. This function uses automatic C function name generation by prefixing the PHP function name with zif_. For example, ZEND_FE("first_module", NULL) introduces a function first_module() to PHP and links it to the C function zif_first_module(). Use in conjunction with ZEND_FUNCTION.
ZEND_NAMED_FE(php_name, name, arg_types) | Defines a function that will be available to PHP by the name php_name and links it to the corresponding C function name. arg_types needs to be set to NULL. Use this function if you don't want the automatic name prefixing introduced by ZEND_FE. Use in conjunction with ZEND_NAMED_FUNCTION.
ZEND_FALIAS(name, alias, arg_types) | Defines an alias named alias for name. arg_types needs to be set to NULL. Doesn't require a corresponding C function; refers to the alias target instead.
PHP_FE(name, arg_types) | Old PHP API equivalent of ZEND_FE.
PHP_NAMED_FE(runtime_name, name, arg_types) | Old PHP API equivalent of ZEND_NAMED_FE.

Note: You can't use ZEND_FE in conjunction with PHP_FUNCTION, or PHP_FE in conjunction with ZEND_FUNCTION. However, it's perfectly legal to mix ZEND_FE and ZEND_FUNCTION with PHP_FE and PHP_FUNCTION when staying with the same macro set for each function to be declared. But mixing is not recommended; instead, you're advised to use the ZEND_* macros only.

Declaration of the Zend Module Block

This block is stored in the structure zend_module_entry and contains all necessary information to describe the contents of this module to Zend. You can see the internal definition of this module in Internal declaration of zend_module_entry..

Пример #5 Internal declaration of zend_module_entry.

typedef struct _zend_module_entry zend_module_entry;

    struct _zend_module_entry {
    unsigned short size;
    unsigned int zend_api;
    unsigned char zend_debug;
    unsigned char zts;
    char *name;
    zend_function_entry *functions;
    int (*module_startup_func)(INIT_FUNC_ARGS);
    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    int (*request_startup_func)(INIT_FUNC_ARGS);
    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);
    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);
    char *version;

[ Rest of the structure is not interesting here ]

};
Entry | Description
size, zend_api, zend_debug and zts | Usually filled with the "STANDARD_MODULE_HEADER", which fills these four members with the size of the whole zend_module_entry, the ZEND_MODULE_API_NO, whether it is a debug build or normal build (ZEND_DEBUG) and if ZTS is enabled (USING_ZTS).
name | Contains the module name (for example, "File functions", "Socket functions", "Crypt", etc.). This name will show up in phpinfo(), in the section "Additional Modules."
functions | Points to the Zend function block, discussed in the preceding section.
module_startup_func | This function is called once upon module initialization and can be used to do one-time initialization steps (such as initial memory allocation, etc.). To indicate a failure during initialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINIT.
module_shutdown_func | This function is called once upon module shutdown and can be used to do one-time deinitialization steps (such as memory deallocation). This is the counterpart to module_startup_func(). To indicate a failure during deinitialization, return FAILURE; otherwise, SUCCESS. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MSHUTDOWN.
request_startup_func | This function is called once upon every page request and can be used to do one-time initialization steps that are required to process a request. To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request startup function is called right after the module startup function (both initialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RINIT.
request_shutdown_func | This function is called once after every page request and works as counterpart to request_startup_func(). To indicate a failure here, return FAILURE; otherwise, SUCCESS. Note: As dynamic loadable modules are loaded only on page requests, the request shutdown function is immediately followed by a call to the module shutdown handler (both deinitialization events happen at the same time). To mark this field as unused, use NULL. To declare a function, use the macro ZEND_RSHUTDOWN.
info_func | When phpinfo() is called in a script, Zend cycles through all loaded modules and calls this function. Every module then has the chance to print its own "footprint" into the output page. Generally this is used to dump environmental or statistical information. To mark this field as unused, use NULL. To declare a function, use the macro ZEND_MINFO.
version | The version of the module. You can use NO_VERSION_YET if you don't want to give the module a version number yet, but we really recommend that you add a version string here. Such a version string can look like this (in chronological order): "2.5-dev", "2.5RC1", "2.5" or "2.5pl3".
Remaining structure elements | These are used internally and can be prefilled by using the macro STANDARD_MODULE_PROPERTIES_EX. You should not assign any values to them. Use STANDARD_MODULE_PROPERTIES_EX only if you use global startup and shutdown functions; otherwise, use STANDARD_MODULE_PROPERTIES directly.

In our example, this structure is implemented as follows:

zend_module_entry firstmod_module_entry =
{
    STANDARD_MODULE_HEADER,
    "First Module",
    firstmod_functions,
    NULL, NULL, NULL, NULL, NULL,
    NO_VERSION_YET,
    STANDARD_MODULE_PROPERTIES,
};
This is basically the easiest and most minimal set of values you could ever use. The module name is set to First Module, then the function list is referenced, after which all startup and shutdown functions are marked as being unused.

For reference purposes, you can find a list of the macros involved in declared startup and shutdown functions in Macros to Declare Startup and Shutdown Functions. These are not used in our basic example yet, but will be demonstrated later on. You should make use of these macros to declare your startup and shutdown functions, as these require special arguments to be passed (INIT_FUNC_ARGS and SHUTDOWN_FUNC_ARGS), which are automatically included into the function declaration when using the predefined macros. If you declare your functions manually and the PHP developers decide that a change in the argument list is necessary, you'll have to change your module sources to remain compatible.

Macros to Declare Startup and Shutdown Functions
Macro | Description
ZEND_MINIT(module) | Declares a function for module startup. The generated name will be zend_minit_<module> (for example, zend_minit_first_module). Use in conjunction with ZEND_MINIT_FUNCTION.
ZEND_MSHUTDOWN(module) | Declares a function for module shutdown. The generated name will be zend_mshutdown_<module> (for example, zend_mshutdown_first_module). Use in conjunction with ZEND_MSHUTDOWN_FUNCTION.
ZEND_RINIT(module) | Declares a function for request startup. The generated name will be zend_rinit_<module> (for example, zend_rinit_first_module). Use in conjunction with ZEND_RINIT_FUNCTION.
ZEND_RSHUTDOWN(module) | Declares a function for request shutdown. The generated name will be zend_rshutdown_<module> (for example, zend_rshutdown_first_module). Use in conjunction with ZEND_RSHUTDOWN_FUNCTION.
ZEND_MINFO(module) | Declares a function for printing module information, used when phpinfo() is called. The generated name will be zend_info_<module> (for example, zend_info_first_module). Use in conjunction with ZEND_MINFO_FUNCTION.

Creation of get_module()

This function is special to all dynamic loadable modules. Take a look at the creation via the ZEND_GET_MODULE macro first:

#if COMPILE_DL_FIRSTMOD
     ZEND_GET_MODULE(firstmod)
#endif

The function implementation is surrounded by a conditional compilation statement. This is needed since the function get_module() is only required if your module is built as a dynamic extension. By specifying a definition of COMPILE_DL_FIRSTMOD in the compiler command (see above for a discussion of the compilation instructions required to build a dynamic extension), you can instruct your module whether you intend to build it as a dynamic extension or as a built-in module. If you want a built-in module, the implementation of get_module() is simply left out.

get_module() is called by Zend at load time of the module. You can think of it as being invoked by the dl() call in your script. Its purpose is to pass the module information block back to Zend in order to inform the engine about the module contents.

If you don't implement a get_module() function in your dynamic loadable module, Zend will compliment you with an error message when trying to access it.

Implementation of All Exported Functions

Implementing the exported functions is the final step. The example function in first_module looks like this:

ZEND_FUNCTION(first_module)
{
    long parameter;

    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &parameter) == FAILURE) {
        return;
    }

    RETURN_LONG(parameter);
}
The function declaration is done using ZEND_FUNCTION, which corresponds to ZEND_FE in the function entry table (discussed earlier).

After the declaration, code for checking and retrieving the function's arguments, argument conversion, and return value generation follows (more on this later).

Summary

That's it, basically - there's nothing more to implementing PHP modules. Built-in modules are structured similarly to dynamic modules, so, equipped with the information presented in the previous sections, you'll be able to fight the odds when encountering PHP module source files.

Now, in the following sections, read on about how to make use of PHP's internals to build powerful extensions.

Accepting Arguments

One of the most important issues for language extensions is accepting and dealing with data passed via arguments. Most extensions are built to deal with specific input data (or require parameters to perform their specific actions), and function arguments are the only real way to exchange data between the PHP level and the C level. Of course, there's also the possibility of exchanging data using predefined global values (which is also discussed later), but this should be avoided by all means, as it's extremely bad practice.

PHP doesn't make use of any formal function declarations; this is why call syntax is always completely dynamic and never checked for errors. Checking for correct call syntax is left to the user code. For example, it's possible to call a function using only one argument at one time and four arguments the next time - both invocations are syntactically absolutely correct.

Determining the Number of Arguments

Since PHP doesn't have formal function definitions with support for call syntax checking, and since PHP features variable arguments, sometimes you need to find out with how many arguments your function has been called. You can use the ZEND_NUM_ARGS macro in this case. In previous versions of PHP, this macro retrieved the number of arguments with which the function has been called based on the function's hash table entry, ht, which is passed in the INTERNAL_FUNCTION_PARAMETERS list. As ht itself now contains the number of arguments that have been passed to the function, ZEND_NUM_ARGS has been stripped down to a dummy macro (see its definition in zend_API.h). But it's still good practice to use it, to remain compatible with future changes in the call interface. Note: The old PHP equivalent of this macro is ARG_COUNT.

The following code checks for the correct number of arguments:

if(ZEND_NUM_ARGS() != 2) WRONG_PARAM_COUNT;
If the function is not called with two arguments, it exits with an error message. The code snippet above makes use of the tool macro WRONG_PARAM_COUNT, which can be used to generate a standard error message like:
"Warning: Wrong parameter count for firstmodule() in /home/www/htdocs/firstmod.php on line 5"

This macro prints a default error message and then returns to the caller. Its definition can also be found in zend_API.h and looks like this:

ZEND_API void wrong_param_count(void);

#define WRONG_PARAM_COUNT { wrong_param_count(); return; }
As you can see, it calls an internal function named wrong_param_count() that's responsible for printing the warning. For details on generating customized error messages, see the later section "Printing Information."

Retrieving Arguments

Замечание: New parameter parsing API

This chapter documents the new Zend parameter parsing API introduced by Andrei Zmievski. It was introduced in the development stage between PHP 4.0.6 and 4.1.0.

Parsing parameters is a very common operation and it may get a bit tedious. It would also be nice to have standardized error checking and error messages. Since PHP 4.1.0, there is a way to do just that by using the new parameter parsing API. It greatly simplifies the process of receiving parameters, but it has a drawback in that it can't be used for functions that expect variable number of parameters. But since the vast majority of functions do not fall into those categories, this parsing API is recommended as the new standard way.

The prototype for parameter parsing function looks like this:

int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
The first argument to this function is supposed to be the number of actual parameters passed to your function, so ZEND_NUM_ARGS() can be used for that. The second parameter should always be TSRMLS_CC macro. The third argument is a string that specifies the number and types of arguments your function is expecting, similar to how printf format string specifies the number and format of the output values it should operate on. And finally the rest of the arguments are pointers to variables which should receive the values from the parameters.

zend_parse_parameters() also performs type conversions whenever possible, so that you always receive the data in the format you asked for. Any type of scalar can be converted to another one, but conversions between complex types (arrays, objects, and resources) and scalar types are not allowed.

If the parameters could be obtained successfully and there were no errors during type conversion, the function will return SUCCESS, otherwise it will return FAILURE. The function will output informative error messages, if the number of received parameters does not match the requested number, or if type conversion could not be performed.

Here are some sample error messages:

Warning - ini_get_all() requires at most 1 parameter, 2 given
Warning - wddx_deserialize() expects parameter 1 to be string, array given
Of course each error message is accompanied by the filename and line number on which it occurs.

Here is the full list of type specifiers:

  • l - long

  • d - double

  • s - string (with possible null bytes) and its length

  • b - boolean

  • r - resource, stored in zval*

  • a - array, stored in zval*

  • o - object (of any class), stored in zval*

  • O - object (of class specified by class entry), stored in zval*

  • z - the actual zval*

The following characters also have a meaning in the specifier string:

  • | - indicates that the remaining parameters are optional. The storage variables corresponding to these parameters should be initialized to default values by the extension, since they will not be touched by the parsing function if the parameters are not passed.

  • / - the parsing function will call SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows, to provide a copy of the parameter, unless it's a reference.

  • ! - the parameter it follows can be of specified type or NULL (only applies to a, o, O, r, and z). If NULL value is passed by the user, the storage pointer will be set to NULL.

The best way to illustrate the usage of this function is through examples:

/* Gets a long, a string and its length, and a zval. */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "lsz", &l, &s, &s_len, &param) == FAILURE) {
    return;
}

/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
                          "O|d", &obj, my_ce, &d) == FAILURE) {
    return;
}

/* Gets an object or null, and an array.
   If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O!a", &obj, &arr) == FAILURE) {
    return;
}

/* Gets a separated array. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/", &arr) == FAILURE) {
    return;
}

/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3, "zbr!", &z, &b, &r) == FAILURE) {
    return;
}

Note that in the last example we pass 3 for the number of received parameters, instead of ZEND_NUM_ARGS(). What this lets us do is receive the least number of parameters if our function expects a variable number of them. Of course, if you want to operate on the rest of the parameters, you will have to use zend_get_parameters_array_ex() to obtain them.

The parsing function has an extended version that allows for an additional flags argument that controls its actions.

int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);

The only flag you can pass currently is ZEND_PARSE_PARAMS_QUIET, which instructs the function to not output any error messages during its operation. This is useful for functions that expect several sets of completely different arguments, but you will have to output your own error messages.

For example, here is how you would get either a set of three longs or a string:

long l1, l2, l3;
char *s;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                             ZEND_NUM_ARGS() TSRMLS_CC,
                             "lll", &l1, &l2, &l3) == SUCCESS) {
    /* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
                                    ZEND_NUM_ARGS(), "s", &s, &s_len) == SUCCESS) {
    /* manipulate string */
} else {
    php_error(E_WARNING, "%s() takes either three long values or a string as argument",
              get_active_function_name(TSRMLS_C));
    return;
}

With all the abovementioned ways of receiving function parameters you should have a good handle on this process. For even more example, look through the source code for extensions that are shipped with PHP - they illustrate every conceivable situation.

Old way of retrieving arguments (deprecated)

Замечание: Deprecated parameter parsing API

This API is deprecated and superseded by the new ZEND parameter parsing API.

After having checked the number of arguments, you need to get access to the arguments themselves. This is done with the help of zend_get_parameters_ex():

zval **parameter;

if(zend_get_parameters_ex(1, &parameter) != SUCCESS)
  WRONG_PARAM_COUNT;
All arguments are stored in a zval container, which needs to be pointed to twice. The snippet above tries to retrieve one argument and make it available to us via the parameter pointer.

zend_get_parameters_ex() accepts at least two arguments. The first argument is the number of arguments to retrieve (which should match the number of arguments with which the function has been called; this is why it's important to check for correct call syntax). The second argument (and all following arguments) are pointers to pointers to pointers to zvals. (Confusing, isn't it?) All these pointers are required because Zend works internally with **zval; to adjust a local **zval in our function,zend_get_parameters_ex() requires a pointer to it.

The return value of zend_get_parameters_ex() can either be SUCCESS or FAILURE, indicating (unsurprisingly) success or failure of the argument processing. A failure is most likely related to an incorrect number of arguments being specified, in which case you should exit with WRONG_PARAM_COUNT.

To retrieve more than one argument, you can use a similar snippet:

zval **param1, **param2, **param3, **param4;

if(zend_get_parameters_ex(4, &param1, &param2, &param3, &param4) != SUCCESS)
    WRONG_PARAM_COUNT;

zend_get_parameters_ex() only checks whether you're trying to retrieve too many parameters. If the function is called with five arguments, but you're only retrieving three of them with zend_get_parameters_ex(), you won't get an error but will get the first three parameters instead. Subsequent calls of zend_get_parameters_ex() won't retrieve the remaining arguments, but will get the same arguments again.

Dealing with a Variable Number of Arguments/Optional Parameters

If your function is meant to accept a variable number of arguments, the snippets just described are sometimes suboptimal solutions. You have to create a line calling zend_get_parameters_ex() for every possible number of arguments, which is often unsatisfying.

For this case, you can use the function zend_get_parameters_array_ex(), which accepts the number of parameters to retrieve and an array in which to store them:

zval **parameter_array[4];

/* get the number of arguments */
argument_count = ZEND_NUM_ARGS();

/* see if it satisfies our minimal request (2 arguments) */
/* and our maximal acceptance (4 arguments) */
if(argument_count < 2 || argument_count > 4)
    WRONG_PARAM_COUNT;

/* argument count is correct, now retrieve arguments */
if(zend_get_parameters_array_ex(argument_count, parameter_array) != SUCCESS)
    WRONG_PARAM_COUNT;
First, the number of arguments is checked to make sure that it's in the accepted range. After that, zend_get_parameters_array_ex() is used to fill parameter_array with valid pointers to the argument values.

A very clever implementation of this can be found in the code handling PHP's fsockopen() located in ext/standard/fsock.c, as shown in PHP's implementation of variable arguments in fsockopen().. Don't worry if you don't know all the functions used in this source yet; we'll get to them shortly.

Пример #6 PHP's implementation of variable arguments in fsockopen().

pval **args[5];
int *sock=emalloc(sizeof(int));
int *sockp;
int arg_count=ARG_COUNT(ht);
int socketd = -1;
unsigned char udp = 0;
struct timeval timeout = { 60, 0 };
unsigned short portno;
unsigned long conv;
char *key = NULL;
FLS_FETCH();

if (arg_count > 5 || arg_count < 2 || zend_get_parameters_array_ex(arg_count,args)==FAILURE) {
    CLOSE_SOCK(1);
    WRONG_PARAM_COUNT;
}

switch(arg_count) {
    case 5:
        convert_to_double_ex(args[4]);
        conv = (unsigned long) (Z_DVAL_PP(args[4]) * 1000000.0);
        timeout.tv_sec = conv / 1000000;
        timeout.tv_usec = conv % 1000000;
        /* fall-through */
    case 4:
        if (!PZVAL_IS_REF(*args[3])) {
            php_error(E_WARNING,"error string argument to fsockopen not passed by reference");
        }
        pval_copy_constructor(*args[3]);
        ZVAL_EMPTY_STRING(*args[3]);
        /* fall-through */
    case 3:
        if (!PZVAL_IS_REF(*args[2])) {
            php_error(E_WARNING,"error argument to fsockopen not passed by reference");
            return;
        }
        ZVAL_LONG(*args[2], 0);
        break;
}

convert_to_string_ex(args[0]);
convert_to_long_ex(args[1]);
portno = (unsigned short) Z_LVAL_P(args[1]);

key = emalloc(Z_STRLEN_P(args[0]) + 10);

fsockopen() accepts two, three, four, or five parameters. After the obligatory variable declarations, the function checks for the correct range of arguments. Then it uses a fall-through mechanism in a switch() statement to deal with all arguments. The switch() statement starts with the maximum number of arguments being passed (five). After that, it automatically processes the case of four arguments being passed, then three, by omitting the otherwise obligatory break keyword in all stages. After having processed the last case, it exits the switch() statement and does the minimal argument processing needed if the function is invoked with only two arguments.

This multiple-stage type of processing, similar to a stairway, allows convenient processing of a variable number of arguments.

Accessing Arguments

To access arguments, it's necessary for each argument to have a clearly defined type. Again, PHP's extremely dynamic nature introduces some quirks. Because PHP never does any kind of type checking, it's possible for a caller to pass any kind of data to your functions, whether you want it or not. If you expect an integer, for example, the caller might pass an array, and vice versa - PHP simply won't notice.

To work around this, you have to use a set of API functions to force a type conversion on every argument that's being passed (see Argument Conversion Functions).

Note: All conversion functions expect a **zval as parameter.

Argument Conversion Functions
Function | Description
convert_to_boolean_ex() | Forces conversion to a Boolean type. Boolean values remain untouched. Longs, doubles, and strings containing 0 as well as NULL values will result in Boolean 0 (FALSE). Arrays and objects are converted based on the number of entries or properties, respectively, that they have. Empty arrays and objects are converted to FALSE; otherwise, to TRUE. All other values result in a Boolean 1 (TRUE).
convert_to_long_ex() | Forces conversion to a long, the default integer type. NULL values, Booleans, resources, and of course longs remain untouched. Doubles are truncated. Strings containing an integer are converted to their corresponding numeric representation, otherwise resulting in 0. Arrays and objects are converted to 0 if empty, 1 otherwise.
convert_to_double_ex() | Forces conversion to a double, the default floating-point type. NULL values, Booleans, resources, longs, and of course doubles remain untouched. Strings containing a number are converted to their corresponding numeric representation, otherwise resulting in 0.0. Arrays and objects are converted to 0.0 if empty, 1.0 otherwise.
convert_to_string_ex() | Forces conversion to a string. Strings remain untouched. NULL values are converted to an empty string. Booleans containing TRUE are converted to "1", otherwise resulting in an empty string. Longs and doubles are converted to their corresponding string representation. Arrays are converted to the string "Array" and objects to the string "Object".
convert_to_array_ex(value) | Forces conversion to an array. Arrays remain untouched. Objects are converted to an array by assigning all their properties to the array table. All property names are used as keys, property contents as values. NULL values are converted to an empty array. All other values are converted to an array that contains the specific source value in the element with the key 0.
convert_to_object_ex(value) | Forces conversion to an object. Objects remain untouched. NULL values are converted to an empty object. Arrays are converted to objects by introducing their keys as properties into the objects and their values as corresponding property contents in the object. All other types result in an object with the property scalar , having the corresponding source value as content.
convert_to_null_ex(value) | Forces the type to become a NULL value, meaning empty.

Замечание:

You can find a demonstration of the behavior in cross_conversion.php on the accompanying CD-ROM.

Cross-conversion behavior of PHP.

Using these functions on your arguments will ensure type safety for all data that's passed to you. If the supplied type doesn't match the required type, PHP forces dummy contents on the resulting value (empty strings, arrays, or objects, 0 for numeric values, FALSE for Booleans) to ensure a defined state.

Following is a quote from the sample module discussed previously, which makes use of the conversion functions:

zval **parameter;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &parameter) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

convert_to_long_ex(parameter);

RETURN_LONG(Z_LVAL_P(parameter));
After retrieving the parameter pointer, the parameter value is converted to a long (an integer), which also forms the return value of this function. Understanding access to the contents of the value requires a short discussion of the zval type, whose definition is shown in PHP/Zend zval type definition..

Пример #7 PHP/Zend zval type definition.

typedef pval zval;

typedef struct _zval_struct zval;

typedef union _zvalue_value {
    long lval;                 /* long value */
    double dval;               /* double value */
    struct {
        char *val;
        int len;
    } str;
    HashTable *ht;             /* hash table value */
    struct {
        zend_class_entry *ce;
        HashTable *properties;
    } obj;
} zvalue_value;

struct _zval_struct {
    /* Variable information */
    zvalue_value value;        /* value */
    unsigned char type;        /* active type */
    unsigned char is_ref;
    short refcount;
};

Actually, pval (defined in php.h) is only an alias of zval (defined in zend.h), which in turn refers to _zval_struct. This is a most interesting structure. _zval_struct is the "master" structure, containing the value structure, type, and reference information. The substructure zvalue_value is a union that contains the variable's contents. Depending on the variable's type, you'll have to access different members of this union. For a description of both structures, see Zend zval Structure, Zend zvalue_value Structure and Zend Variable Type Constants.

Zend zval Structure
Entry | Description
value | Union containing this variable's contents. See Zend zvalue_value Structure for a description.
type | Contains this variable's type. For a list of available types, see Zend Variable Type Constants.
is_ref | 0 means that this variable is not a reference; 1 means that this variable is a reference to another variable.
refcount | The number of references that exist for this variable. For every new reference to the value stored in this variable, this counter is increased by 1. For every lost reference, this counter is decreased by 1. When the reference counter reaches 0, no references exist to this value anymore, which causes automatic freeing of the value.
Zend zvalue_value Structure
Entry | Description
lval | Use this property if the variable is of the type IS_LONG, IS_BOOLEAN, or IS_RESOURCE.
dval | Use this property if the variable is of the type IS_DOUBLE.
str | This structure can be used to access variables of the type IS_STRING. The member len contains the string length; the member val points to the string itself. Zend uses C strings; thus, the string length contains a trailing 0x00.
ht | This entry points to the variable's hash table entry if the variable is an array.
obj | Use this property if the variable is of the type IS_OBJECT.
Zend Variable Type Constants
Constant | Description
IS_NULL | Denotes a NULL (empty) value.
IS_LONG | A long (integer) value.
IS_DOUBLE | A double (floating point) value.
IS_STRING | A string.
IS_ARRAY | Denotes an array.
IS_OBJECT | An object.
IS_BOOL | A Boolean value.
IS_RESOURCE | A resource (for a discussion of resources, see the appropriate section below).
IS_CONSTANT | A constant (defined) value.

To access a long you access zval.value.lval, to access a double you use zval.value.dval, and so on. Because all values are stored in a union, trying to access data with incorrect union members results in meaningless output.

Accessing arrays and objects is a bit more complicated and is discussed later.

Dealing with Arguments Passed by Reference

If your function accepts arguments passed by reference that you intend to modify, you need to take some precautions.

What we didn't say yet is that under the circumstances presented so far, you don't have write access to any zval containers designating function parameters that have been passed to you. Of course, you can change any zval containers that you created within your function, but you mustn't change any zvals that refer to Zend-internal data!

We've only discussed the so-called *_ex() API so far. You may have noticed that the API functions we've used are called zend_get_parameters_ex() instead of zend_get_parameters(), convert_to_long_ex() instead of convert_to_long(), etc. The *_ex() functions form the so-called new "extended" Zend API. They give a minor speed increase over the old API, but as a tradeoff are only meant for providing read-only access.

Because Zend works internally with references, different variables may reference the same value. Write access to a zval container requires this container to contain an isolated value, meaning a value that's not referenced by any other containers. If a zval container were referenced by other containers and you changed the referenced zval, you would automatically change the contents of the other containers referencing this zval (because they'd simply point to the changed value and thus change their own value as well).

zend_get_parameters_ex() doesn't care about this situation, but simply returns a pointer to the desired zval containers, whether they consist of references or not. Its corresponding function in the traditional API, zend_get_parameters(), immediately checks for referenced values. If it finds a reference, it creates a new, isolated zval container; copies the referenced data into this newly allocated space; and then returns a pointer to the new, isolated value.

This action is called zval separation (or pval separation). Because the *_ex() API doesn't perform zval separation, it's considerably faster, while at the same time disabling write access.

To change parameters, however, write access is required. Zend deals with this situation in a special way: Whenever a parameter to a function is passed by reference, it performs automatic zval separation. This means that whenever you're calling a function like this in PHP, Zend will automatically ensure that $parameter is being passed as an isolated value, rendering it to a write-safe state:

my_function(&$parameter);

But this is not the case with regular parameters! All other parameters that are not passed by reference are in a read-only state.

This requires you to make sure that you're really working with a reference - otherwise you might produce unwanted results. To check for a parameter being passed by reference, you can use the macro PZVAL_IS_REF. This macro accepts a zval* to check if it is a reference or not. Examples are given in in Testing for referenced parameter passing..

Пример #8 Testing for referenced parameter passing.

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
    return;

/* check for parameter being passed by reference */
if (!PZVAL_IS_REF(parameter)) {
{
    zend_error(E_WARNING, "Parameter wasn't passed by reference");
    RETURN_NULL();
}

/* make changes to the parameter */
ZVAL_LONG(parameter, 10);
Testing for referenced parameter passing

Assuring Write Safety for Other Parameters

You might run into a situation in which you need write access to a parameter that's retrieved with zend_get_parameters_ex() but not passed by reference. For this case, you can use the macro SEPARATE_ZVAL, which does a zval separation on the provided container. The newly generated zval is detached from internal data and has only a local scope, meaning that it can be changed or destroyed without implying global changes in the script context:

zval **parameter;

/* retrieve parameter */
zend_get_parameters_ex(1, &parameter);

/* at this stage, <parameter> still is connected */
/* to Zend's internal data buffers */

/* make <parameter> write-safe */
SEPARATE_ZVAL(parameter);

/* now we can safely modify <parameter> */
/* without implying global changes */
SEPARATE_ZVAL uses emalloc() to allocate the new zval container, which means that even if you don't deallocate this memory yourself, it will be destroyed automatically upon script termination. However, doing a lot of calls to this macro without freeing the resulting containers will clutter up your RAM.

Note: As you can easily work around the lack of write access in the "traditional" API (with zend_get_parameters() and so on), this API seems to be obsolete, and is not discussed further in this chapter.

Creating Variables

When exchanging data from your own extensions with PHP scripts, one of the most important issues is the creation of variables. This section shows you how to deal with the variable types that PHP supports.

Overview

To create new variables that can be seen "from the outside" by the executing script, you need to allocate a new zval container, fill this container with meaningful values, and then introduce it to Zend's internal symbol table. This basic process is common to all variable creations:

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
ZEND_SET_SYMBOL(EG(active_symbol_table), "new_variable_name", new_variable);

/* the variable is now accessible to the script by using $new_variable_name */

The macro MAKE_STD_ZVAL allocates a new zval container using ALLOC_ZVAL and initializes it using INIT_ZVAL. As implemented in Zend at the time of this writing, initializing means setting the reference count to 1 and clearing the is_ref flag, but this process could be extended later - this is why it's a good idea to keep using MAKE_STD_ZVAL instead of only using ALLOC_ZVAL. If you want to optimize for speed (and you don't have to explicitly initialize the zval container here), you can use ALLOC_ZVAL, but this isn't recommended because it doesn't ensure data integrity.

ZEND_SET_SYMBOL takes care of introducing the new variable to Zend's symbol table. This macro checks whether the value already exists in the symbol table and converts the new symbol to a reference if so (with automatic deallocation of the old zval container). This is the preferred method if speed is not a crucial issue and you'd like to keep memory usage low.

Note that ZEND_SET_SYMBOL makes use of the Zend executor globals via the macro EG. By specifying EG(active_symbol_table), you get access to the currently active symbol table, dealing with the active, local scope. The local scope may differ depending on whether the function was invoked from within a function.

If you need to optimize for speed and don't care about optimal memory usage, you can omit the check for an existing variable with the same value and instead force insertion into the symbol table by using zend_hash_update():

zval *new_variable;

/* allocate and initialize new container */
MAKE_STD_ZVAL(new_variable);

/* set type and variable contents here, see the following sections */

/* introduce this variable by the name "new_variable_name" into the symbol table */
zend_hash_update(
    EG(active_symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
This is actually the standard method used in most modules.

The variables generated with the snippet above will always be of local scope, so they reside in the context in which the function has been called. To create new variables in the global scope, use the same method but refer to another symbol table:

zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
ZEND_SET_SYMBOL(&EG(symbol_table), "new_variable_name", new_variable);
The macro ZEND_SET_SYMBOL is now being called with a reference to the main, global symbol table by referring EG(symbol_table).

Note: The active_symbol_table variable is a pointer, but symbol_table is not. This is why you have to use EG(active_symbol_table) and &EG(symbol_table) as parameters to ZEND_SET_SYMBOL - it requires a pointer.

Similarly, to get a more efficient version, you can hardcode the symbol table update:

zval *new_variable;

// allocate and initialize new container
MAKE_STD_ZVAL(new_variable);

//
// set type and variable contents here
//

// introduce this variable by the name "new_variable_name" into the global symbol table
zend_hash_update(
    &EG(symbol_table),
    "new_variable_name",
    strlen("new_variable_name") + 1,
    &new_variable,
    sizeof(zval *),
    NULL
);
Creating variables with different scopes. shows a sample source that creates two variables - local_variable with a local scope and global_variable with a global scope (see Figure 9.7). The full example can be found on the CD-ROM.

Note: You can see that the global variable is actually not accessible from within the function. This is because it's not imported into the local scope using global $global_variable; in the PHP source.

Пример #9 Creating variables with different scopes.

ZEND_FUNCTION(variable_creation)
{
    zval *new_var1, *new_var2;

    MAKE_STD_ZVAL(new_var1);
    MAKE_STD_ZVAL(new_var2);

    ZVAL_LONG(new_var1, 10);
    ZVAL_LONG(new_var2, 5);

    ZEND_SET_SYMBOL(EG(active_symbol_table), "local_variable", new_var1);
    ZEND_SET_SYMBOL(&EG(symbol_table), "global_variable", new_var2);

    RETURN_NULL();

}
Creating variables with different scopes

Longs (Integers)

Now let's get to the assignment of data to variables, starting with longs. Longs are PHP's integers and are very simple to store. Looking at the zval.value container structure discussed earlier in this chapter, you can see that the long data type is directly contained in the union, namely in the lval field. The corresponding type value for longs is IS_LONG (see Creation of a long.).

Пример #10 Creation of a long.

zval *new_long;

MAKE_STD_ZVAL(new_long);

new_long-&gt;type = IS_LONG;
new_long-&gt;value.lval = 10;
Alternatively, you can use the macro ZVAL_LONG:
zval *new_long;

MAKE_STD_ZVAL(new_long);
ZVAL_LONG(new_long, 10);

Doubles (Floats)

Doubles are PHP's floats and are as easy to assign as longs, because their value is also contained directly in the union. The member in the zval.value container is dval; the corresponding type is IS_DOUBLE.

zval *new_double;

MAKE_STD_ZVAL(new_double);

new_double-&gt;type = IS_DOUBLE;
new_double-&gt;value.dval = 3.45;
Alternatively, you can use the macro ZVAL_DOUBLE:
zval *new_double;

MAKE_STD_ZVAL(new_double);
ZVAL_DOUBLE(new_double, 3.45);

Strings

Strings need slightly more effort. As mentioned earlier, all strings that will be associated with Zend's internal data structures need to be allocated using Zend's own memory-management functions. Referencing of static strings or strings allocated with standard routines is not allowed. To assign strings, you have to access the structure str in the zval.value container. The corresponding type is IS_STRING:

zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);

new_string-&gt;type = IS_STRING;
new_string-&gt;value.str.len = strlen(string_contents);
new_string-&gt;value.str.val = estrdup(string_contents);
Note the usage of Zend's estrdup() here. Of course, you can also use the predefined macro ZVAL_STRING:
zval *new_string;
char *string_contents = "This is a new string variable";

MAKE_STD_ZVAL(new_string);
ZVAL_STRING(new_string, string_contents, 1);
ZVAL_STRING accepts a third parameter that indicates whether the supplied string contents should be duplicated (using estrdup()). Setting this parameter to 1 causes the string to be duplicated; 0 simply uses the supplied pointer for the variable contents. This is most useful if you want to create a new variable referring to a string that's already allocated in Zend internal memory.

If you want to truncate the string at a certain position or you already know its length, you can use ZVAL_STRINGL(zval, string, length, duplicate), which accepts an explicit string length to be set for the new string. This macro is faster than ZVAL_STRING and also binary-safe.

To create empty strings, set the string length to 0 and use empty_string as contents:

new_string-&gt;type = IS_STRING;
new_string-&gt;value.str.len = 0;
new_string-&gt;value.str.val = empty_string;
Of course, there's a macro for this as well (ZVAL_EMPTY_STRING):
MAKE_STD_ZVAL(new_string);
ZVAL_EMPTY_STRING(new_string);

Booleans

Booleans are created just like longs, but have the type IS_BOOL. Allowed values in lval are 0 and 1:

zval *new_bool;

MAKE_STD_ZVAL(new_bool);

new_bool-&gt;type = IS_BOOL;
new_bool-&gt;value.lval = 1;
The corresponding macros for this type are ZVAL_BOOL (allowing specification of the value) as well as ZVAL_TRUE and ZVAL_FALSE (which explicitly set the value to TRUE and FALSE, respectively).

Arrays

Arrays are stored using Zend's internal hash tables, which can be accessed using the zend_hash_*() API. For every array that you want to create, you need a new hash table handle, which will be stored in the ht member of the zval.value container.

There's a whole API solely for the creation of arrays, which is extremely handy. To start a new array, you call array_init().

zval *new_array;

MAKE_STD_ZVAL(new_array);

array_init(new_array);
array_init() always returns SUCCESS.

To add new elements to the array, you can use numerous functions, depending on what you want to do. Zend's API for Associative Arrays, Zend's API for Indexed Arrays, Part 1 and Zend's API for Indexed Arrays, Part 2 describe these functions. All functions return FAILURE on failure and SUCCESS on success.

Zend's API for Associative Arrays
Function | Description
add_assoc_long(zval *array, char *key, long n);() | Adds an element of type long.
add_assoc_unset(zval *array, char *key);() | Adds an unset element.
add_assoc_bool(zval *array, char *key, int b);() | Adds a Boolean element.
add_assoc_resource(zval *array, char *key, int r);() | Adds a resource to the array.
add_assoc_double(zval *array, char *key, double d);() | Adds a floating-point value.
add_assoc_string(zval *array, char *key, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_assoc_stringl(zval *array, char *key, char *str, uint length, int duplicate); () | Adds a string with the desired length length to the array. Otherwise, behaves like add_assoc_string().
add_assoc_zval(zval *array, char *key, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...
Zend's API for Indexed Arrays, Part 1
Function | Description
add_index_long(zval *array, uint idx, long n);() | Adds an element of type long.
add_index_unset(zval *array, uint idx);() | Adds an unset element.
add_index_bool(zval *array, uint idx, int b);() | Adds a Boolean element.
add_index_resource(zval *array, uint idx, int r);() | Adds a resource to the array.
add_index_double(zval *array, uint idx, double d);() | Adds a floating-point value.
add_index_string(zval *array, uint idx, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_index_stringl(zval *array, uint idx, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string().
add_index_zval(zval *array, uint idx, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...
Zend's API for Indexed Arrays, Part 2
Function | Description
add_next_index_long(zval *array, long n);() | Adds an element of type long.
add_next_index_unset(zval *array);() | Adds an unset element.
add_next_index_bool(zval *array, int b);() | Adds a Boolean element.
add_next_index_resource(zval *array, int r);() | Adds a resource to the array.
add_next_index_double(zval *array, double d);() | Adds a floating-point value.
add_next_index_string(zval *array, char *str, int duplicate);() | Adds a string to the array. The flag duplicate specifies whether the string contents have to be copied to Zend internal memory.
add_next_index_stringl(zval *array, char *str, uint length, int duplicate);() | Adds a string with the desired length length to the array. This function is faster and binary-safe. Otherwise, behaves like add_index_string().
add_next_index_zval(zval *array, zval *value);() | Adds a zval to the array. Useful for adding other arrays, objects, streams, etc...

All these functions provide a handy abstraction to Zend's internal hash API. Of course, you can also use the hash functions directly - for example, if you already have a zval container allocated that you want to insert into an array. This is done using zend_hash_update() for associative arrays (see Adding an element to an associative array.) and zend_hash_index_update() for indexed arrays (see Adding an element to an indexed array.):

Пример #11 Adding an element to an associative array.

zval *new_array, *new_element;
char *key = "element_key";

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_update(new_array-&gt;value.ht, key, strlen(key) + 1, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

Пример #12 Adding an element to an indexed array.

zval *new_array, *new_element;
int key = 2;

MAKE_STD_ZVAL(new_array);
MAKE_STD_ZVAL(new_element);

array_init(new_array);

ZVAL_LONG(new_element, 10);

if(zend_hash_index_update(new_array-&gt;value.ht, key, (void *)&new_element, sizeof(zval *), NULL) == FAILURE)
{
    // do error handling here
}

To emulate the functionality of add_next_index_*(), you can use this:

zend_hash_next_index_insert(ht, zval **new_element, sizeof(zval *), NULL)

Note: To return arrays from a function, use array_init() and all following actions on the predefined variable return_value (given as argument to your exported function; see the earlier discussion of the call interface). You do not have to use MAKE_STD_ZVAL on this.

Tip: To avoid having to write new_array->value.ht every time, you can use HASH_OF(new_array), which is also recommended for compatibility and style reasons.

Objects

Since objects can be converted to arrays (and vice versa), you might have already guessed that they have a lot of similarities to arrays in PHP. Objects are maintained with the same hash functions, but there's a different API for creating them.

To initialize an object, you use the function object_init():

zval *new_object;

MAKE_STD_ZVAL(new_object);

if(object_init(new_object) != SUCCESS)
{
    // do error handling here
}
You can use the functions described in Zend's API for Object Creation to add members to your object.

Zend's API for Object Creation
Function | Description
add_property_long(zval *object, char *key, long l);() | Adds a long to the object.
add_property_unset(zval *object, char *key);() | Adds an unset property to the object.
add_property_bool(zval *object, char *key, int b);() | Adds a Boolean to the object.
add_property_resource(zval *object, char *key, long r);() | Adds a resource to the object.
add_property_double(zval *object, char *key, double d);() | Adds a double to the object.
add_property_string(zval *object, char *key, char *str, int duplicate);() | Adds a string to the object.
add_property_stringl(zval *object, char *key, char *str, uint length, int duplicate);() | Adds a string of the specified length to the object. This function is faster than add_property_string() and also binary-safe.
add_property_zval(zval *obect, char *key, zval *container):() | Adds a zval container to the object. This is useful if you have to add properties which aren't simple types like integers or strings but arrays or other objects.

Resources

Resources are a special kind of data type in PHP. The term resources doesn't really refer to any special kind of data, but to an abstraction method for maintaining any kind of information. Resources are kept in a special resource list within Zend. Each entry in the list has a correspondending type definition that denotes the kind of resource to which it refers. Zend then internally manages all references to this resource. Access to a resource is never possible directly - only via a provided API. As soon as all references to a specific resource are lost, a corresponding shutdown function is called.

For example, resources are used to store database links and file descriptors. The de facto standard implementation can be found in the MySQL module, but other modules such as the Oracle module also make use of resources.

Замечание:

In fact, a resource can be a pointer to anything you need to handle in your functions (e.g. pointer to a structure) and the user only has to pass a single resource variable to your function.

To create a new resource you need to register a resource destruction handler for it. Since you can store any kind of data as a resource, Zend needs to know how to free this resource if its not longer needed. This works by registering your own resource destruction handler to Zend which in turn gets called by Zend whenever your resource can be freed (whether manually or automatically). Registering your resource handler within Zend returns you the resource type handle for that resource. This handle is needed whenever you want to access a resource of this type later and is most of time stored in a global static variable within your extension. There is no need to worry about thread safety here because you only register your resource handler once during module initialization.

The Zend function to register your resource handler is defined as:

ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_func_t pld, char *type_name, int module_number);

There are two different kinds of resource destruction handlers you can pass to this function: a handler for normal resources and a handler for persistent resources. Persistent resources are for example used for database connection. When registering a resource, either of these handlers must be given. For the other handler just pass NULL.

zend_register_list_destructors_ex() accepts the following parameters:

ld | Normal resource destruction handler callback
pld | Pesistent resource destruction handler callback
type_name | A string specifying the name of your resource. It's always a good thing to specify a unique name within PHP for the resource type so when the user for example calls var_dump($resource); he also gets the name of the resource.
module_number | The module_number is automatically available in your PHP_MINIT_FUNCTION function and therefore you just pass it over.
The return value is a unique integer ID for your resource type.

The resource destruction handler (either normal or persistent resources) has the following prototype:

void resource_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC);
The passed rsrc is a pointer to the following structure:
typedef struct _zend_rsrc_list_entry {

    void *ptr;
    int type;
    int refcount;

} zend_rsrc_list_entry;
The member void *ptr is the actual pointer to your resource.

Now we know how to start things, we define our own resource we want register within Zend. It is only a simple structure with two integer members:

typedef struct {

    int resource_link;
    int resource_type;

} my_resource;
Our resource destruction handler is probably going to look something like this:
void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

    // You most likely cast the void pointer to your structure type

    my_resource *my_rsrc = (my_resource *) rsrc->ptr;

    // Now do whatever needs to be done with you resource. Closing
    // Files, Sockets, freeing additional memory, etc.
    // Also, don't forget to actually free the memory for your resource too!

    do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
}

Замечание:

One important thing to mention: If your resource is a rather complex structure which also contains pointers to memory you allocated during runtime you have to free them before freeing the resource itself!

Now that we have defined

  1. what our resource is and

  2. our resource destruction handler

we can go on and do the rest of the steps:

  1. create a global variable within the extension holding the resource ID so it can be accessed from every function which needs it

  2. define the resource name

  3. write the resource destruction handler

  4. and finally register the handler

// Somewhere in your extension, define the variable for your registered resources.
    // If you wondered what 'le' stands for: it simply means 'list entry'.
    static int le_myresource;

    // It's nice to define your resource name somewhere
    #define le_myresource_name  "My type of resource"

    [...]

    // Now actually define our resource destruction handler
    void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {

        my_resource *my_rsrc = (my_resource *) rsrc->ptr;
        do_whatever_needs_to_be_done_with_the_resource(my_rsrc);
    }

    [...]

    PHP_MINIT_FUNCTION(my_extension) {

        // Note that 'module_number' is already provided through the
        // PHP_MINIT_FUNCTION() function definition.

        le_myresource = zend_register_list_destructors_ex(my_destruction_handler, NULL, le_myresource_name, module_number);

        // You can register additional resources, initialize
        // your global vars, constants, whatever.
    }

To actually register a new resource you use can either use the zend_register_resource() function or the ZEND_REGISTER_RESOURE() macro, both defined in zend_list.h. Although the arguments for both map 1:1 it's a good idea to always use macros to be upwards compatible:

int ZEND_REGISTER_RESOURCE(zval *rsrc_result, void *rsrc_pointer, int rsrc_type);
rsrc_result | This is an already initialized zval * container.
rsrc_pointer | Your resource pointer you want to store.
rsrc_type | The type which you received when you registered the resource destruction handler. If you followed the naming scheme this would be le_myresource.
The return value is a unique integer identifier for that resource.

What is really going on when you register a new resource is it gets inserted in an internal list in Zend and the result is just stored in the given zval * container:

rsrc_id = zend_list_insert(rsrc_pointer, rsrc_type);

    if (rsrc_result) {
        rsrc_result->value.lval = rsrc_id;
        rsrc_result->type = IS_RESOURCE;
    }

    return rsrc_id;
The returned rsrc_id uniquely identifies the newly registered resource. You can use the macro RETURN_RESOURE to return it to the user:
    RETURN_RESOURCE(rsrc_id)

Замечание:

It is common practice that if you want to return the resource immediately to the user you specify the return_value as the zval * container.

Zend now keeps track of all references to this resource. As soon as all references to the resource are lost, the destructor that you previously registered for this resource is called. The nice thing about this setup is that you don't have to worry about memory leakages introduced by allocations in your module - just register all memory allocations that your calling script will refer to as resources. As soon as the script decides it doesn't need them anymore, Zend will find out and tell you.

Now that the user got his resource, at some point he is passing it back to one of your functions. The value.lval inside the zval * container contains the key to your resource and thus can be used to fetch the resource with the following macro: ZEND_FETCH_RESOURCE:

ZEND_FETCH_RESOURCE(rsrc, rsrc_type, rsrc_id, default_rsrc_id, resource_type_name, resource_type)
rsrc | This is your pointer which will point to your previously registered resource.
rsrc_type | This is the typecast argument for your pointer, e.g. myresource *.
rsrc_id | This is the address of the zval *container the user passed to your function, e.g. &z_resource if zval *z_resource is given.
default_rsrc_id | This integer specifies the default resource ID if no resource could be fetched or -1.
resource_type_name | This is the name of the requested resource. It's a string and is used when the resource can't be found or is invalid to form a meaningful error message.
resource_type | The resource_type you got back when registering the resource destruction handler. In our example this was le_myresource.
This macro has no return value. It is for the developers convenience and takes care of TSRMLS arguments passing and also does check if the resource could be fetched. It throws a warning message and returns the current PHP function with NULL if there was a problem retrieving the resource.

To force removal of a resource from the list, use the function zend_list_delete(). You can also force the reference count to increase if you know that you're creating another reference for a previously allocated value (for example, if you're automatically reusing a default database link). For this case, use the function zend_list_addref(). To search for previously allocated resource entries, use zend_list_find(). The complete API can be found in zend_list.h.

Macros for Automatic Global Variable Creation

In addition to the macros discussed earlier, a few macros allow easy creation of simple global variables. These are nice to know in case you want to introduce global flags, for example. This is somewhat bad practice, but Table Macros for Global Variable Creation describes macros that do exactly this task. They don't need any zval allocation; you simply have to supply a variable name and value.

Macros for Global Variable Creation
Macro | Description
SET_VAR_STRING(name, value) | Creates a new string.
SET_VAR_STRINGL(name, value, length) | Creates a new string of the specified length. This macro is faster than SET_VAR_STRING and also binary-safe.
SET_VAR_LONG(name, value) | Creates a new long.
SET_VAR_DOUBLE(name, value) | Creates a new double.

Creating Constants

Zend supports the creation of true constants (as opposed to regular variables). Constants are accessed without the typical dollar sign ($) prefix and are available in all scopes. Examples include TRUE and FALSE, to name just two.

To create your own constants, you can use the macros in Macros for Creating Constants. All the macros create a constant with the specified name and value.

You can also specify flags for each constant:

  • CONST_CS - This constant's name is to be treated as case sensitive.

  • CONST_PERSISTENT - This constant is persistent and won't be "forgotten" when the current process carrying this constant shuts down.

To use the flags, combine them using a inary OR:
 // register a new constant of type "long"
     REGISTER_LONG_CONSTANT("NEW_MEANINGFUL_CONSTANT", 324, CONST_CS |
     CONST_PERSISTENT);
There are two types of macros - REGISTER_*_CONSTANT andREGISTER_MAIN_*_CONSTANT. The first type creates constants bound to the current module. These constants are dumped from the symbol table as soon as the module that registered the constant is unloaded from memory. The second type creates constants that remain in the symbol table independently of the module.

Macros for Creating Constants
Macro | Description
REGISTER_LONG_CONSTANT(name, value, flags) REGISTER_MAIN_LONG_CONSTANT(name, value, flags) | Registers a new constant of type long.
REGISTER_DOUBLE_CONSTANT(name, value, flags) REGISTER_MAIN_DOUBLE_CONSTANT(name, value, flags) | Registers a new constant of type double.
REGISTER_STRING_CONSTANT(name, value, flags) REGISTER_MAIN_STRING_CONSTANT(name, value, flags) | Registers a new constant of type string. The specified string must reside in Zend's internal memory.
REGISTER_STRINGL_CONSTANT(name, value, length, flags) REGISTER_MAIN_STRINGL_CONSTANT(name, value, length, flags) | Registers a new constant of type string. The string length is explicitly set to length. The specified string must reside in Zend's internal memory.

Duplicating Variable Contents: The Copy Constructor

Sooner or later, you may need to assign the contents of one zval container to another. This is easier said than done, since the zval container doesn't contain only type information, but also references to places in Zend's internal data. For example, depending on their size, arrays and objects may be nested with lots of hash table entries. By assigning one zval to another, you avoid duplicating the hash table entries, using only a reference to them (at most).

To copy this complex kind of data, use the copy constructor. Copy constructors are typically defined in languages that support operator overloading, with the express purpose of copying complex types. If you define an object in such a language, you have the possibility of overloading the "=" operator, which is usually responsible for assigning the contents of the rvalue (result of the evaluation of the right side of the operator) to the lvalue (same for the left side).

Overloading means assigning a different meaning to this operator, and is usually used to assign a function call to an operator. Whenever this operator would be used on such an object in a program, this function would be called with the lvalue and rvalue as parameters. Equipped with that information, it can perform the operation it intends the "=" operator to have (usually an extended form of copying).

This same form of "extended copying" is also necessary for PHP's zval containers. Again, in the case of an array, this extended copying would imply re-creation of all hash table entries relating to this array. For strings, proper memory allocation would have to be assured, and so on.

Zend ships with such a function, called zend_copy_ctor() (the previous PHP equivalent was pval_copy_constructor()).

A most useful demonstration is a function that accepts a complex type as argument, modifies it, and then returns the argument:

zval *parameter;

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &parameter) == FAILURE)
   return;
}

// do modifications to the parameter here

// now we want to return the modified container:
*return_value = *parameter;
zval_copy_ctor(return_value);

The first part of the function is plain-vanilla argument retrieval. After the (left out) modifications, however, it gets interesting: The container of parameter is assigned to the (predefined) return_value container. Now, in order to effectively duplicate its contents, the copy constructor is called. The copy constructor works directly with the supplied argument, and the standard return values are FAILURE on failure and SUCCESS on success.

If you omit the call to the copy constructor in this example, both parameter and return_value would point to the same internal data, meaning that return_value would be an illegal additional reference to the same data structures. Whenever changes occurred in the data that parameter points to, return_value might be affected. Thus, in order to create separate copies, the copy constructor must be used.

The copy constructor's counterpart in the Zend API, the destructor zval_dtor(), does the opposite of the constructor.

Returning Values

Returning values from your functions to PHP was described briefly in an earlier section; this section gives the details. Return values are passed via the return_value variable, which is passed to your functions as argument. The return_value argument consists of a zval container (see the earlier discussion of the call interface) that you can freely modify. The container itself is already allocated, so you don't have to run MAKE_STD_ZVAL on it. Instead, you can access its members directly.

To make returning values from functions easier and to prevent hassles with accessing the internal structures of the zval container, a set of predefined macros is available (as usual). These macros automatically set the correspondent type and value, as described in Predefined Macros for Returning Values from a Function and Predefined Macros for Setting the Return Value of a Function.

Замечание:

The macros in Predefined Macros for Returning Values from a Function automatically return from your function, those in Predefined Macros for Setting the Return Value of a Function only set the return value; they don't return from your function.

Predefined Macros for Returning Values from a Function
Macro | Description
RETURN_RESOURCE(resource) | Returns a resource.
RETURN_BOOL(bool) | Returns a Boolean.
RETURN_NULL() | Returns nothing (a NULL value).
RETURN_LONG(long) | Returns a long.
RETURN_DOUBLE(double) | Returns a double.
RETURN_STRING(string, duplicate) | Returns a string. The duplicate flag indicates whether the string should be duplicated using estrdup().
RETURN_STRINGL(string, length, duplicate) | Returns a string of the specified length; otherwise, behaves like RETURN_STRING. This macro is faster and binary-safe, however.
RETURN_EMPTY_STRING() | Returns an empty string.
RETURN_FALSE | Returns Boolean false.
RETURN_TRUE | Returns Boolean true.
Predefined Macros for Setting the Return Value of a Function
Macro | Description
RETVAL_RESOURCE(resource) | Sets the return value to the specified resource.
RETVAL_BOOL(bool) | Sets the return value to the specified Boolean value.
RETVAL_NULL | Sets the return value to NULL.
RETVAL_LONG(long) | Sets the return value to the specified long.
RETVAL_DOUBLE(double) | Sets the return value to the specified double.
RETVAL_STRING(string, duplicate) | Sets the return value to the specified string and duplicates it to Zend internal memory if desired (see also RETURN_STRING).
RETVAL_STRINGL(string, length, duplicate) | Sets the return value to the specified string and forces the length to become length (see also RETVAL_STRING). This macro is faster and binary-safe, and should be used whenever the string length is known.
RETVAL_EMPTY_STRING | Sets the return value to an empty string.
RETVAL_FALSE | Sets the return value to Boolean false.
RETVAL_TRUE | Sets the return value to Boolean true.

Complex types such as arrays and objects can be returned by using array_init() and object_init(), as well as the corresponding hash functions on return_value. Since these types cannot be constructed of trivial information, there are no predefined macros for them.

Printing Information

Often it's necessary to print messages to the output stream from your module, just as print would be used within a script. PHP offers functions for most generic tasks, such as printing warning messages, generating output for phpinfo(), and so on. The following sections provide more details. Examples of these functions can be found on the CD-ROM.

zend_printf()

zend_printf() works like the standard printf(), except that it prints to Zend's output stream.

zend_error()

zend_error() can be used to generate error messages. This function accepts two arguments; the first is the error type (see zend_errors.h), and the second is the error message.

zend_error(E_WARNING, "This function has been called with empty arguments");
Zend's Predefined Error Messages. shows a list of possible values (see below). These values are also referred to in php.ini. Depending on which error type you choose, your messages will be logged.
Zend's Predefined Error Messages.
Error | Description
E_ERROR | Signals an error and terminates execution of the script immediately.
E_WARNING | Signals a generic warning. Execution continues.
E_PARSE | Signals a parser error. Execution continues.
E_NOTICE | Signals a notice. Execution continues. Note that by default the display of this type of error messages is turned off in php.ini.
E_CORE_ERROR | Internal error by the core; shouldn't be used by user-written modules.
E_COMPILE_ERROR | Internal error by the compiler; shouldn't be used by user-written modules.
E_COMPILE_WARNING | Internal warning by the compiler; shouldn't be used by user-written modules.
Display of warning messages in the browser.

Including Output in phpinfo()

After creating a real module, you'll want to show information about the module in phpinfo() (in addition to the module name, which appears in the module list by default). PHP allows you to create your own section in the phpinfo() output with the ZEND_MINFO() function. This function should be placed in the module descriptor block (discussed earlier) and is always called whenever a script calls phpinfo().

PHP automatically prints a section in phpinfo() for you if you specify the ZEND_MINFO function, including the module name in the heading. Everything else must be formatted and printed by you.

Typically, you can print an HTML table header using php_info_print_table_start() and then use the standard functions php_info_print_table_header() and php_info_print_table_row(). As arguments, both take the number of columns (as integers) and the column contents (as strings). Source code and screenshot for output in phpinfo. shows a source example and its output. To print the table footer, use php_info_print_table_end().

Пример #13 Source code and screenshot for output in phpinfo().

php_info_print_table_start();
php_info_print_table_header(2, "First column", "Second column");
php_info_print_table_row(2, "Entry in first row", "Another entry");
php_info_print_table_row(2, "Just to fill", "another row here");
php_info_print_table_end();
Output of phpinfo()

Execution Information

You can also print execution information, such as the current file being executed. The name of the function currently being executed can be retrieved using the function get_active_function_name(). This function returns a pointer to the function name and doesn't accept any arguments. To retrieve the name of the file currently being executed, use zend_get_executed_filename(). This function accesses the executor globals, which are passed to it using the TSRMLS_C macro. The executor globals are automatically available to every function that's called directly by Zend (they're part of the INTERNAL_FUNCTION_PARAMETERS described earlier in this chapter). If you want to access the executor globals in another function that doesn't have them available automatically, call the macro TSRMLS_FETCH() once in that function; this will introduce them to your local scope.

Finally, the line number currently being executed can be retrieved using the function zend_get_executed_lineno(). This function also requires the executor globals as arguments. For examples of these functions, see Printing execution information..

Пример #14 Printing execution information.

zend_printf("The name of the current function is %s&lt;br&gt;", get_active_function_name(TSRMLS_C));
zend_printf("The file currently executed is %s&lt;br&gt;", zend_get_executed_filename(TSRMLS_C));
zend_printf("The current line being executed is %i&lt;br&gt;", zend_get_executed_lineno(TSRMLS_C));
Printing execution information

Startup and Shutdown Functions

Startup and shutdown functions can be used for one-time initialization and deinitialization of your modules. As discussed earlier in this chapter (see the description of the Zend module descriptor block), there are module, and request startup and shutdown events.

The module startup and shutdown functions are called whenever a module is loaded and needs initialization; the request startup and shutdown functions are called every time a request is processed (meaning that a file is being executed).

For dynamic extensions, module and request startup/shutdown events happen at the same time.

Declaration and implementation of these functions can be done with macros; see the earlier section "Declaration of the Zend Module Block" for details.

Calling User Functions

You can call user functions from your own modules, which is very handy when implementing callbacks; for example, for array walking, searching, or simply for event-based programs.

User functions can be called with the function call_user_function_ex(). It requires a hash value for the function table you want to access, a pointer to an object (if you want to call a method), the function name, return value, number of arguments, argument array, and a flag indicating whether you want to perform zval separation.

ZEND_API int call_user_function_ex(HashTable *function_table, zval *object,
zval *function_name, zval **retval_ptr_ptr,
int param_count, zval **params[],
int no_separation);

Note that you don't have to specify both function_table and object; either will do. If you want to call a method, you have to supply the object that contains this method, in which case call_user_function()automatically sets the function table to this object's function table. Otherwise, you only need to specify function_table and can set object to NULL.

Usually, the default function table is the "root" function table containing all function entries. This function table is part of the compiler globals and can be accessed using the macro CG. To introduce the compiler globals to your function, call the macro TSRMLS_FETCH once.

The function name is specified in a zval container. This might be a bit surprising at first, but is quite a logical step, since most of the time you'll accept function names as parameters from calling functions within your script, which in turn are contained in zval containers again. Thus, you only have to pass your arguments through to this function. This zval must be of type IS_STRING.

The next argument consists of a pointer to the return value. You don't have to allocate memory for this container; the function will do so by itself. However, you have to destroy this container (using zval_dtor()) afterward!

Next is the parameter count as integer and an array containing all necessary parameters. The last argument specifies whether the function should perform zval separation - this should always be set to 0. If set to 1, the function consumes less memory but fails if any of the parameters need separation.

Calling user functions. shows a small demonstration of calling a user function. The code calls a function that's supplied to it as argument and directly passes this function's return value through as its own return value. Note the use of the constructor and destructor calls at the end - it might not be necessary to do it this way here (since they should be separate values, the assignment might be safe), but this is bulletproof.

Пример #15 Calling user functions.

zval **function_name;
zval *retval;

if((ZEND_NUM_ARGS() != 1) || (zend_get_parameters_ex(1, &function_name) != SUCCESS))
{
    WRONG_PARAM_COUNT;
}

if((*function_name)->type != IS_STRING)
{
    zend_error(E_ERROR, "Function requires string argument");
}

TSRMSLS_FETCH();

if(call_user_function_ex(CG(function_table), NULL, *function_name, &retval, 0, NULL, 0) != SUCCESS)
{
    zend_error(E_ERROR, "Function call failed");
}

zend_printf("We have %i as type\n", retval->type);

*return_value = *retval;
zval_copy_ctor(return_value);
zval_ptr_dtor(&retval);

<?php

dl("call_userland.so");

function test_function()
{
    echo "We are in the test function!\n";
    return 'hello';
}

$return_value = call_userland("test_function");

echo "Return value: '$return_value'";
?>

Результат выполнения данного примера:

We are in the test function!
We have 3 as type
Return value: 'hello'

Initialization File Support

PHP 4 features a redesigned initialization file support. It's now possible to specify default initialization entries directly in your code, read and change these values at runtime, and create message handlers for change notifications.

To create an .ini section in your own module, use the macros PHP_INI_BEGIN() to mark the beginning of such a section and PHP_INI_END() to mark its end. In between you can use PHP_INI_ENTRY() to create entries.

PHP_INI_BEGIN()
PHP_INI_ENTRY("first_ini_entry",  "has_string_value", PHP_INI_ALL, NULL)
PHP_INI_ENTRY("second_ini_entry", "2",                PHP_INI_SYSTEM, OnChangeSecond)
PHP_INI_ENTRY("third_ini_entry",  "xyz",              PHP_INI_USER, NULL)
PHP_INI_END()
The PHP_INI_ENTRY() macro accepts four parameters: the entry name, the entry value, its change permissions, and a pointer to a change-notification handler. Both entry name and value must be specified as strings, regardless of whether they really are strings or integers.

The permissions are grouped into three sections:PHP_INI_SYSTEM allows a change only directly in the php.ini file; PHP_INI_USER allows a change to be overridden by a user at runtime using additional configuration files, such as .htaccess; and PHP_INI_ALL allows changes to be made without restrictions. There's also a fourth level, PHP_INI_PERDIR, for which we couldn't verify its behavior yet.

The fourth parameter consists of a pointer to a change-notification handler. Whenever one of these initialization entries is changed, this handler is called. Such a handler can be declared using the PHP_INI_MH macro:

PHP_INI_MH(OnChangeSecond);             // handler for ini-entry "second_ini_entry"

// specify ini-entries here

PHP_INI_MH(OnChangeSecond)
{

    zend_printf("Message caught, our ini entry has been changed to %s&lt;br&gt;", new_value);

    return(SUCCESS);

}
The new value is given to the change handler as string in the variable new_value. When looking at the definition of PHP_INI_MH, you actually have a few parameters to use:
#define PHP_INI_MH(name) int name(php_ini_entry *entry, char *new_value,
                                  uint new_value_length, void *mh_arg1,
                                  void *mh_arg2, void *mh_arg3)
All these definitions can be found in php_ini.h. Your message handler will have access to a structure that contains the full entry, the new value, its length, and three optional arguments. These optional arguments can be specified with the additional macros PHP_INI_ENTRY1 (allowing one additional argument), PHP_INI_ENTRY2 (allowing two additional arguments), and PHP_INI_ENTRY3 (allowing three additional arguments).

The change-notification handlers should be used to cache initialization entries locally for faster access or to perform certain tasks that are required if a value changes. For example, if a constant connection to a certain host is required by a module and someone changes the hostname, automatically terminate the old connection and attempt a new one.

Access to initialization entries can also be handled with the macros shown in Macros to Access Initialization Entries in PHP.

Macros to Access Initialization Entries in PHP
Macro | Description
INI_INT(name) | Returns the current value of entry name as integer (long).
INI_FLT(name) | Returns the current value of entry name as float (double).
INI_STR(name) | Returns the current value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_BOOL(name) | Returns the current value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).
INI_ORIG_INT(name) | Returns the original value of entry name as integer (long).
INI_ORIG_FLT(name) | Returns the original value of entry name as float (double).
INI_ORIG_STR(name) | Returns the original value of entry name as string. Note: This string is not duplicated, but instead points to internal data. Further access requires duplication to local memory.
INI_ORIG_BOOL(name) | Returns the original value of entry name as Boolean (defined as zend_bool, which currently means unsigned char).

Finally, you have to introduce your initialization entries to PHP. This can be done in the module startup and shutdown functions, using the macros REGISTER_INI_ENTRIES() and UNREGISTER_INI_ENTRIES():

ZEND_MINIT_FUNCTION(mymodule)
{

    REGISTER_INI_ENTRIES();

}

ZEND_MSHUTDOWN_FUNCTION(mymodule)
{

    UNREGISTER_INI_ENTRIES();

}

Where to Go from Here

You've learned a lot about PHP. You now know how to create dynamic loadable modules and statically linked extensions. You've learned how PHP and Zend deal with internal storage of variables and how you can create and access these variables. You know quite a set of tool functions that do a lot of routine tasks such as printing informational texts, automatically introducing variables to the symbol table, and so on.

Even though this chapter often had a mostly "referential" character, we hope that it gave you insight on how to start writing your own extensions. For the sake of space, we had to leave out a lot; we suggest that you take the time to study the header files and some modules (especially the ones in the ext/standard directory and the MySQL module, as these implement commonly known functionality). This will give you an idea of how other people have used the API functions - particularly those that didn't make it into this chapter.

Reference: Some Configuration Macros

config.m4

The file config.m4 is processed by buildconf and must contain all the instructions to be executed during configuration. For example, these can include tests for required external files, such as header files, libraries, and so on. PHP defines a set of macros that can be used in this process, the most useful of which are described in M4 Macros for config.m4.

M4 Macros for config.m4
Macro | Description
AC_MSG_CHECKING(message) | Prints a "checking <message>" text during configure.
AC_MSG_RESULT(value) | Gives the result to AC_MSG_CHECKING; should specify either yes or no as value.
AC_MSG_ERROR(message) | Prints message as error message during configure and aborts the script.
AC_DEFINE(name,value,description) | Adds #define to php_config.h with the value of value and a comment that says description (this is useful for conditional compilation of your module).
AC_ADD_INCLUDE(path) | Adds a compiler include path; for example, used if the module needs to add search paths for header files.
AC_ADD_LIBRARY_WITH_PATH(libraryname,librarypath) | Specifies an additional library to link.
AC_ARG_WITH(modulename,description,unconditionaltest,conditionaltest) | Quite a powerful macro, adding the module with description to the configure --help output. PHP checks whether the option --with-<modulename> is given to the configure script. If so, it runs the script unconditionaltest (for example, --with-myext=yes), in which case the value of the option is contained in the variable $withval. Otherwise, it executes conditionaltest.
PHP_EXTENSION(modulename, [shared]) | This macro is a must to call for PHP to configure your extension. You can supply a second argument in addition to your module name, indicating whether you intend compilation as a shared module. This will result in a definition at compile time for your source as COMPILE_DL_<modulename>.

API Macros

A set of macros was introduced into Zend's API that simplify access to zval containers (see API Macros for Accessing zval Containers).

API Macros for Accessing zval Containers
Macro | Refers to
Z_LVAL(zval) | (zval).value.lval
Z_DVAL(zval) | (zval).value.dval
Z_STRVAL(zval) | (zval).value.str.val
Z_STRLEN(zval) | (zval).value.str.len
Z_ARRVAL(zval) | (zval).value.ht
Z_LVAL_P(zval) | (*zval).value.lval
Z_DVAL_P(zval) | (*zval).value.dval
Z_STRVAL_P(zval_p) | (*zval).value.str.val
Z_STRLEN_P(zval_p) | (*zval).value.str.len
Z_ARRVAL_P(zval_p) | (*zval).value.ht
Z_LVAL_PP(zval_pp) | (**zval).value.lval
Z_DVAL_PP(zval_pp) | (**zval).value.dval
Z_STRVAL_PP(zval_pp) | (**zval).value.str.val
Z_STRLEN_PP(zval_pp) | (**zval).value.str.len
Z_ARRVAL_PP(zval_pp) | (**zval).value.ht


  • « Zend API: Взламываем ядро PHP
  • ЧАВО »
  • PHP Manual
  • Zend Engine 1
  • TSRM API

TSRM API


ЧАВО: ЧАсто задаваемые Вопросы и Ответы на них

  • Общая информация
  • Списки рассылки
  • Получение PHP
  • Вопросы по Базам данных
  • Установка
  • Проблемы сборки
  • Использование PHP
  • Хэширование паролей — Безопасное хэширование паролей
  • PHP и HTML
  • PHP и COM
  • Разные вопросы


Общая информация

Этот раздел содержит наиболее общие вопросы по PHP: что это такое и что он делает.

  1. Что такое PHP?
  2. Что означает PHP?
  3. Какая связь между версиями PHP?
  4. Могу ли я одновременно запускать несколько версий PHP?
  5. Я думаю, Я нашел ошибку! Кому я должен сказать?
Что такое PHP?

Из предисловия к руководству:

PHP - это скриптовый язык, который может быть встроен в HTML. Синтаксис языка в большинстве заимствован из C, Java и Perl c добавлением нескольких специфичных для PHP особенностей. Цель языка - позволить web-разработчикам легко создавать динамически генерируемые страницы.

Что означает PHP?

PHP означает PHP: Hypertext Preprocessor. Это название смущает многих людей, так как первое слово в акрониме также является акронимом. Такой тип акронимов называется рекурсивным. Любопытствующие могут посетить » бесплатный вычислительный онлайн-словарь или » статью Википедии по рекурсивным акронимам.

Какая связь между версиями PHP?

PHP/FI 2.0 - ранняя и более неподдерживаемая версия PHP. PHP 3 - улучшенная замена PHP/FI 2.0. PHP 5 - текущая версия, которая использует » Zend engine 2, которая, кроме прочего, предлагает множество дополнительных возможностей для объектно-ориентированного программирования.

Могу ли я одновременно запускать несколько версий PHP?

Да. Смотрите файл INSTALL из дистрибутива исходников PHP.

Я думаю, Я нашел ошибку! Кому я должен сказать?

Вам надо обратиться к базе данных ошибок в PHP и убедиться, что ошибка еще не известна. Если вы не видите её в базе данных, заполните форму сообщения об ошибках. При занесении в базу данных, ошибка получает номер, по которому вы можете отслеживать её статус, поэтому важно использовать базу данных, а не просто послать сообщение в один из списков рассылки, так как это позволит вам позже вернуться и проверить состояние ошибки. База данных ошибок может быть найдена по адресу » http://bugs.php.net/.


Списки рассылки

Этот раздел содержит вопросы о том как связаться с PHP сообществом. Самый лучший способ - списки рассылки.

  1. Есть ли какие-либо списки рассылки по PHP?
  2. Существуют ли какие-либо другие сообщества?
  3. Могу ли я начать свой собственный список рассылки PHP?
  4. Помогите! Похоже, я не могу подписаться/отписаться?
  5. Существует ли где-нибудь архив списков рассылки?
  6. О чем я могу спрашивать в списке рассылки?
  7. Какую информацию я должен включить при отправке в список?
Есть ли какие-либо списки рассылки по PHP?

Конечно! Существует множество списков рассылки на различные темы. Полный перечень списков можно найти на нашей странице » списков рассылки.

Наиболее общий список рассылки - php-general. Чтобы подписаться на него, отправьте пустое письмо на адрес » php-general-subscribe@lists.php.net. Чтобы отписаться, отправьте пустое письмо на адрес » php-general-unsubscribe@lists.php.net.

Также вы можете подписаться/отписаться используя веб-интерфейс на нашей странице » списков рассылки, а инструкции по отписке включены внизу каждого сообщения из рассылки.

Существуют ли какие-либо другие сообщества?

Бессчетно по всему миру. На нашей странице » поддержки для примера есть ссылки на некоторые ресурсы (и информация о том, как узнать больше).

Могу ли я начать свой собственный список рассылки PHP?

Конечно! На самом деле, мы не только (бесплатно) разрешаем это, мы это поощряем! Помогая и делясь своим знанием и опытом по PHP с другими, вы поощряете рост и разработку как глобального сообщества PHP, так и самого языка.

Помогите! Похоже, я не могу подписаться/отписаться?

Если у вас возникла проблема с подпиской или отпиской от списка рассылки, возможно это потому, что программное обеспечение списка рассылки не может определить ваш правильный почтовый адрес. Если ваш адрес был joeblow@example.com, и вы пытаетесь подписаться на php-general, то вы можете послать запрос на подписку по адресу php-general-subscribe-joeblow=example.com@lists.php.net, или запрос на отписку по адресу php-general-unsubscribe-joeblow=example.com@lists.php.net. Для других списков рассылки используйте аналогичные адреса.

Самая частая причина, по которой люди не могут отписаться от наших списков рассылки, это использование пересылки почты. Например, если ваш электронный адрес danbrown@example.com, но вы подписались на список рассылки с адреса php-lists@example.com, который пересылает ее вам на danbrown@example.com, то попытка отписать адрес danbrown@example.com не сработает, так как это адрес неизвестен нашей системе. Вместо этого, вам нужно отписать тот адрес, на который приходит почта, в этом примере, это php-lists@example.com.

Существует ли где-нибудь архив списков рассылки?

Да, список архивов можно найти на странице » списков рассылки. Вы также можете найти дюжины сайтов, которые архивируют и/или отдают содержание наших списков рассылок с помощью вашего любимого поисковика, задав запрос "архивы списков рассылок по php" (php mailing list archives).

Сообщения из списков рассылки также сохраняются как статьи новостей. Сервер новостей доступен по адресу » news://news.php.net/, новости с которого можно читать каким-нибудь новостным клиентом. Также есть экспериментальный веб-интерфейс для сервера новостей, доступный по адресу » http://news.php.net/.

О чем я могу спрашивать в списке рассылки?

С растущей день ото дня популярностью PHP, нагрузка на список рассылки php-general увеличилась и на сегодня составляет примерно от 75 до 200 и более сообщений в день. Поэтому, в интересах всех, используйте список рассылки только в крайнем случае, когда поиски во всех других возможных местах завершились неудачно.

Прежде чем отправить сообщение в список, пожалуйста, просмотрите этот FAQ и это руководство, может в них вам удастся найти решение вашей проблемы. Если там ничего не удалось найти, просмотрите архивы списка (см. выше). Если у вас проблема с установкой или настройкой PHP, пожалуйста, прочтите всю сопровождающую документацию и файлы README. Если после всего этого вам не удалось найти ответ, то ваш вопрос в списке рассылки более чем желателен.

Для получения наилучших ответов, (и чтобы не расстраивать ваших собратьев-программистов), пожалуйста, проверьте, что вы отсылаете свой вопрос в соответствующий список рассылки. Например, если у вас проблема с установкой PHP, вы должны отправить свой вопрос в список рассылки php-install. Предостережение: некоторые списки имеют похожие имена и совершенно различные назначения; вопрос по использованию PHP скриптов в Windows должен быть отправлен в пользовательский список рассылки - Windows PHP users, а не список PHP разработчиков в Windows - Windows Internals list.

Хорошая идея, перед тем как задавать вопросы, прочитать статью » Как Умно Задавать Вопросы.

Какую информацию я должен включить при отправке в список?

Сообщения типа "Не могу запустить PHP! Помогите мне! В чем дело?" совершенно бесполезны. Если у вас проблема с запуском PHP, вы должны указать операционную систему, версию PHP, как вы его получили (прекомпилированный, Git, RPM и т.п.), что уже сделали, на чем остановились, и, если есть, точное сообщение об ошибке.

Это также относится к любой другой проблеме. Вам необходимо указать, что вы уже сделали, на чем застопорились, что пытаетесь делать и, если есть, любые сообщения об ошибках. Если проблема с вашим исходным кодом, то надо включить часть кода, которая не работает, указав проблемную строку соответственно помещенным комментарием. Но не пытайтесь отправить больше, чем необходимо! Иначе ваше сообщение будет тяжело читать и большинство людей его просто пропустит. Если вы затрудняетесь решить какой объем информации достаточен, отправьте столько, сколько необходимо по вашей текущей проблеме, и приготовьтесь выслать больше информации по запросу.

Другая важная вещь, которую стоит помнить, это краткое изложение вашей проблемы в строке темы сообщения. Заголовки типа "ПОМОГИТЕ МНЕЕЕ!!!" или "В чем здесь проблема?" будут проигнорированы большинством читателей.

И на последок, для всеобщей пользы и особенно для вас, весьма рекомендуется прочитать статью » Как Умно Задавать Вопросы.


Получение PHP

Этот раздел содержит информацию о том, где получить PHP и вопросы, касающиеся OC.

  1. Где я могу взять PHP?
  2. Доступны ли прекомпилированная бинарная версия?
  3. Где я могу достать библиотеки, необходимые для компиляции некоторых дополнительных расширений PHP?
  4. Как подключить эти библиотеки?
  5. Я cкачал последнюю версию исходных кодов PHP из Git репозитория на мою Windows машину, как мне их скомпилировать?
  6. Где найти файл совместимости браузеров ?
  7. Что означает потокобезопасность при скачке PHP?
Где я могу взять PHP?

Вы можете скачать PHP с любого сайта из сети сайтов PHP. Сайты сети можно найти на » http://www.php.net/. Вы также можете воспользоваться анонимным Git для получения самой последней версии исходников. За подробностями обращайтесь к » http://www.php.net/git.php.

Доступны ли прекомпилированная бинарная версия?

Мы распространяем прекомпилированные бинарники только для Windows, так как мы не в состоянии компилировать PHP со всеми возможными комбинациями расширений даже для самых основных Linux/Unix платформ. Также заметьте, что на сегодня многие дистрибутивы Linux поставляются с PHP. Бинарники для Windows можно скачать с нашей страницы » Downloads, для бинарников под Linux, пожалуйста, посетите web сайт вашего дистрибутива.

Где я могу достать библиотеки, необходимые для компиляции некоторых дополнительных расширений PHP?

Замечание: Звездочкой (*) помечены библиотеки, которые исходя из нашего опыта являются потоко-небезопасными; эти библиотеки не рекомендуется использовать в многопоточной среде.

  • » LDAP (Unix).
  • » LDAP (Unix/Win) : Mozilla Directory (LDAP) SDK
  • » бесплатный LDAP сервер.
  • » Berkeley DB2 (Unix/Win) : http://www.sleepycat.com/.
  • » SNMP* (Unix): .
  • » GD (Unix/Win).
  • » mSQL* (Unix).
  • » PostgreSQL (Unix).
  • » IMAP* (Win/Unix).
  • » Sybase-CT* (Linux, libc5) : Available locally.
  • » FreeType (libttf):.
  • » ZLib (Unix/Win32).
  • » expat XML parser (Unix/Win32).
  • » PDFLib.
  • » mcrypt.
  • » mhash.
  • » t1lib.
  • » dmalloc.
  • » aspell.
  • » readline.

Как подключить эти библиотеки?

Вам необходимо следовать инструкциям, сопровождающим библиотеку. При запуске скрипта 'configure', некоторые библиотеки (такие как библиотека GD) находятся автоматически, другие должны быть включены с помощью опции '--with-EXTENSION' в 'configure'. Запустите 'configure --help' для получения списка всех опций.

Я cкачал последнюю версию исходных кодов PHP из Git репозитория на мою Windows машину, как мне их скомпилировать?

Изучите раздел руководства, содержащий актуальное » пошаговое руководство по сборке

Где найти файл совместимости браузеров ?

Файл browscap.ini можно скачать с » http://browscap.org/.

Что означает потокобезопасность при скачке PHP?

Потокобезопасность означает, что данный бинарный файл может работать с многопоточным вебсервером, например таким, как Apache 2 под Windows. Потокобезопасность обеспечивается хранением локальных копий в каждом потоке, так что данные не вступят в противоречие с другим потоком.

Так что же выбрать? Если вы хотите использовать PHP в качестве бинарного файла CGI, то вам не нужна потокобезопасность, так как бинарный файл будет запускаться при каждом запросе. Для многопоточных вебсерверов, таких как IIS5 и IIS6, вам понадобится поточная версия PHP.


Вопросы по Базам данных

Этот раздел содержит общие вопросы о связи между PHP и базами данных. Да, сегодня практически любая база данных может быть доступна из PHP.

  1. Я слышал, что можно получить доступ к Microsoft SQL серверу из PHP. Как?
  2. Могу ли я получить доступ к базам данных Microsoft Access?
  3. Почему MySQL расширение (ext/mysql), которое я использовал более 10 лет, теперь не рекомендуется использовать? Что я должен использовать вместо него? Как мне обновить свои программы?
  4. Почему я получаю ошибки типа "Warning: 0 is not a MySQL result index in <file> on line <x>" или "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>?
Я слышал, что можно получить доступ к Microsoft SQL серверу из PHP. Как?

На Unix вы можете использовать PDO_ODBC или Унифицированное ODBC API.

На Windows вы можете использовать PDO_SQLSRV или SQLSRV.

Также смотрите ответ на следующий вопрос.

Могу ли я получить доступ к базам данных Microsoft Access?

Да. Если все полностью выполняется под Windows 9x/Me или NT/2000, то у вас уже есть все необходимые средства, так как для баз данных Microsoft Access вы можете использовать ODBC и драйверы ODBC от Microsoft.

Если вы хотите связать PHP, выполняющийся на Unix, и MS Access на Windows, то вам будут нужны драйверы ODBC для Unix. Такие ODBC драйверы для Unix есть у » OpenLink Software.

Другая возможность - хранить данные на SQL сервере, который имеет ODBC драйверы для Windows, и затем обращаться к этой базе данных из Microsoft Access (используя ODBC) и из PHP (используя встроенные драйверы) или использовать промежуточный формат понятный и для Access, и для PHP, например, простые файлы или базы данных dBase. По этому поводу Тим Хэйз (Tim Hayes) из OpenLink software пишет:

Использование промежуточной базы данных - не очень хорошая идея, когда есть возможность работать с базой данных на прямую из PHP через ODBC, например с драйверами от OpenLink. Если вам все-таки надо использовать промежуточный формат, OpenLink выпустил Virtuoso (механизм виртуальной базы данных) для NT, Linux и других платформ Unix. Пожалуйста, посетите наш » веб-сайт для бесплатной загрузки.

Другой проверенный вариант - использовать MySQL с её MyODBC драйверами на Windows и делать синхронизацию баз данных. Стив Лоренс (Steve Lawrence) пишет:

  • Установите MySQL согласно поставляемым с ней инструкциям. Последняя версия доступна с » http://www.mysql.com/. Особой конфигурации не требуется, за исключением того, что при настройке баз данных и создании пользователя, в поле хоста вы должны поместить % или имя Windows машины, на которую вы хотите получить доступ из MySQL. Запишите имя вашего сервера, имя пользователя и пароль.
  • Скачайте MyODBC драйвер для Windows с сайта MySQL. Установите его на вашей Windows машине. Вы можете проверить его работоспособность с помощью поставляемых с ним утилит.
  • Создайте пользователя или системный dsn в вашем администраторе ODBC, расположенном в контрольной панели. Создайте dsn имя, введите имя хоста, имя пользователя, пароль и т.д. для вашей базы данных MySQL, сконфигурированной на 1-ом шаге.
  • Установите полную версию Access, это даст вам уверенность, что вы получите все нужные расширения (add-ins). По крайней мере вам будут необходимы поддержка ODBC и администратор связанных таблиц.
  • И теперь самое интересное! Создайте новую базу данных Access. В окне таблицы щелкните правой кнопкой мышки и выберите Link Tables (Связать Таблицы), либо из файлового меню выберите Get External Data (Получить Внешние Данные) и затем Link Tables. В появившемся окне просмотра файлов выберите файлы типа ODBC. Выберите системный dsn и имя вашего dsn, созданного на 3-ем шаге. Выберите таблицу для связи, нажмите OK и вуаля! Теперь вы можете открыть таблицу и добавить/удалить/отредактировать данные на вашем MySQL сервере! Вы также можете строить запросы, импортировать/экспортировать таблицы в MySQL, создавать формы и отчеты, и т.д.

Полезные Советы и Трюки:

  • Вы можете создавать ваши таблицы в Access, экспортировать их в MySQL и затем привязать их назад. Это увеличивает скорость создания таблиц.
  • При создании таблиц в Access, вы должны определить первичный ключ, чтобы иметь доступ к таблице по записи. Убедитесь что вы создали первичный ключ в MySQL перед тем как привязать таблицу к Access.
  • Если вы изменяете таблицу в MySQL, то вы должны связать её с Access по-новой. Идите в tools>add-ins>linked table manager, следуйте к вашему ODBC DSN, и выберите оттуда таблицу для пересвязки. Там же вы можете изменить источник вашего dsn, для этого, перед тем как нажать OK, просто пометьте "always prompt for new location" (всегда запрашивать новое местонахождение).

Почему MySQL расширение (ext/mysql), которое я использовал более 10 лет, теперь не рекомендуется использовать? Что я должен использовать вместо него? Как мне обновить свои программы?

Есть три расширения для работы с MySQL, как описано в разделе Выбор MySQL API Старое API не должно использоваться, оно является устаревшим с версии PHP 5.5.0 и перемещено в PECL с версии PHP 7.0.0. Настоятельно рекомендуется писать весь новый код с использованием либо mysqli либо PDO_MySQL.

Скрипты для перехода со старого API пока недоступны, но mysqli API содержит как процедурный так и объектный API, схожие со старым процедурным ext/mysql API.

Нельзя совмещать различные расширения. Поэтому, например передача mysqli соединения в PDO_MySQL или ext/mysql не будет работать.

Почему я получаю ошибки типа "Warning: 0 is not a MySQL result index in <file> on line <x>" или "Warning: Supplied argument is not a valid MySQL result resource in <file> on line <x>?

Вы пытаетесь использовать идентификатор результата, который равен 0. 0 означает, что ваш запрос не удался по какой-либо причине. Вам необходимо сделать проверку на ошибки, после того как вы послали ваш запрос, и перед тем, как вы пытаетесь использовать возвращенный идентификатор результата. Правильный способ этой реализации выглядит примерно так:

<?php

$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
    echo mysql_error();
    exit;
}
?>
или
<?php

$result = mysql_query("SELECT * FROM tables_priv")
    or die("Bad query: " . mysql_error());
?>


Установка

Этот раздел содержит общие вопросы о том, как производится установка PHP. Дистрибутивы PHP есть почти для всех операционных систем и веб-серверов.

Для установки PHP, следуйте инструкциям: Установка и настройка.

  1. Почему лучше не пользоваться Apache2 с многопоточным "MPM" (event, worker) в промышленной эксплуатации?
  2. ОС "Unix"/"Windows": Где искать файл php.ini?
  3. Unix: Я установил PHP, но при каждом открытии какого-либо документа вижу 'Document Contains No Data' -- что это значит?
  4. Unix: Я установил PHP используя RPMS, но Apache не обрабатывает PHP-страницы, в чём дело?
  5. Unix: Я пропатчил Apache расширением FrontPage, и теперь PHP не работает. Т.е. PHP несовместим с расширениями Apache FrontPage?
  6. Unix/Windows: Я установил PHP, но при попытке открыть PHP-файл браузером вижу просто пустой экран.
  7. Unix/Windows: Я установил PHP, но когда пытаюсь посмотреть созданную PHP-страницу через браузер, то получаю ошибку 500.
  8. Некоторые операционные системы: Я установил PHP без каких либо ошибок, но когда пытаюсь запустить Apache, мне выводится ошибка: [mybox:user /src/php5] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd Undefined symbols: _compress _uncompress
  9. Windows: Я установил PHP, но когда пытаюсь открыть страницу скрипта через браузер, получаю ошибку: cgi error: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
  10. Windows: Я все сделал по инструкции, но PHP и IIS не хотят работать вместе!
  11. Когда я запускаю PHP как CGI на IIS, PWS, OmniHTTPD или Xitami, я получаю такую ошибку: Security Alert! PHP CGI cannot be accessed directly..
  12. Как я могу понять, что мой php.ini найден и используется? Такое впечатление, что вносимые мною изменения игнорируются.
  13. Как я могу добавить директорию с PHP в PATH в Windows?
  14. Как я могу сделать файл php.ini доступным для PHP в windows?
  15. Можно ли использовать согласование контента Apache (опция MultiViews) с PHP?
  16. PHP ограничен работой только с методами GET и POST?
Почему лучше не пользоваться Apache2 с многопоточным "MPM" (event, worker) в промышленной эксплуатации?

PHP подобен связующему звену. Он полезен для создания хороших веб-приложений путём объединения разрозненных сторонних библиотек в единое целое, через использование интуитивно понятного и простого для изучения языкового интерфейса. Гибкость и сила PHP основана на стабильности и устойчивости платформы, на которой он работает. Чтобы всё работало, нужна рабочая операционная система, рабочий веб-сервер и рабочие сторонние библиотеки. Но когда хоть что-либо из них перестаёт работать - PHP нуждается в способах быстрого определения причины неполадки и её устранения. И когда Вы усложняете базовый фреймворк тем, что не изолируете исполняемые потоки и сегменты памяти, и не предоставляете потокам отдельных изолированных "песочниц" - ослабляется вся PHP-система.

Если Вы пожелаете использовать многопоточный "MPM" - ознакомьтесь с конфигурацией "FastCGI", согласно которой PHP работает в собственном пространстве памяти.

ОС "Unix"/"Windows": Где искать файл php.ini?

По умолчанию, в Unix /usr/local/lib, что соответствует <установочный-путь>/lib. Многие захотят изменить путь в момент компиляции, используя опцию --with-config-file-path Например, можно написать так:

--with-config-file-path=/etc
И затем скопировать php.ini-development из дистрибутива в /etc/php.ini и внести в него все необходимые изменения.

--with-config-file-scan-dir=PATH

В ОС "Windows", по умолчанию, путь к файлу php.ini это путь к директории "Windows". Если Вы пользуетесь веб-сервером "Apache", php.ini находится по пути: ?\program files\apache group\apache\. Таким образом, на одном компьютере можно пользоваться несколькими php.ini файлами, соответственно версиям "Apache".

См. также: файл настроек.

Unix: Я установил PHP, но при каждом открытии какого-либо документа вижу 'Document Contains No Data' -- что это значит?

Это значит, что, возможно, PHP столкнулся с какой-то проблемой и падает в core-dump. Просмотрите логи ошибок сервера чтобы проверить это, и затем попытайтесь воспроизвести цепочку шагов, приведших к ошибке; например, создав отдельную тестовую программу. И если Вы умеете пользоваться 'gdb', то это поможет Вам получить backtrace для включения его в bug-report, чтобы облегчить выявление причин проблемы разработчикам. Если Вы пользуетесь PHP как модулем для Apache, вам может оказаться полезным следующее:

  • Остановите httpd-процессы

  • gdb httpd

  • Вновь остановите http-процессы

  • > run -X -f путь_к_httpd.conf

  • Затем скопируйте URL, с которым не справился browser

  • > run -X -f путь_к_httpd.conf

  • Если будет происходить core dump - gdb сообщит Вам об этом

  • type: bt

  • Включите backtrace в ваш bug-report. И отправьте по адресу: » http://bugs.php.net/

Если Ваш скрипт использует регулярные выражения (preg_match() и подобные), проверьте, с одинаковыми ли пакетами обработки RegEx скомпилированы PHP и Apache? В случае PHP и Apache 1.3.x это автоматизировано.

Unix: Я установил PHP используя RPMS, но Apache не обрабатывает PHP-страницы, в чём дело?

Если что вы установили и Apache, и PHP из RPM-пакетов, вам понадобится раскомментировать или добавить некоторые (или, быть может, все) строки из числа следующих, в вашем httpd.conf файле:

# Extra Modules
AddModule mod_php.c
AddModule mod_perl.c

# Extra Modules
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so
LoadModule perl_module        modules/libperl.so
И добавьте:
AddType application/x-httpd-php .php
... в область глобальных свойств, или в свойства того VirtualDomain, для которого Вы хотите включить поддержку PHP.

Unix: Я пропатчил Apache расширением FrontPage, и теперь PHP не работает. Т.е. PHP несовместим с расширениями Apache FrontPage?

Нет, совместим, но патч FrontPage влияет на структуры Apache, нужные для PHP. Перекомпиляция PHP (команда 'make clean ; make') после установки патча может решить проблему.

Unix/Windows: Я установил PHP, но при попытке открыть PHP-файл браузером вижу просто пустой экран.

Выберите в браузере опцию "посмотреть код" и вы, возможно, увидите, ваш PHP-код. Это значит, что Apache не передал ваш скрипт интерпретатору PHP. Значит что-то неправильно с конфигурацией сервера. В этом случае перепроверьте конфигурацию веб-сервера в соответствии с инструкциями по установке PHP.

Unix/Windows: Я установил PHP, но когда пытаюсь посмотреть созданную PHP-страницу через браузер, то получаю ошибку 500.

Что-то пошло не так, когда сервер попытался запустить PHP. Что бы увидеть возникающую исходную ошибку, в коммандной строке перейдите в директорию, содержащую исполняемый файл PHP (php.exe в Windows) и запустите php -i. Если существуют какие либо проблемы с запуском PHP, вам выведется соответствующая ошибка, которая подскажет вам, что надо исправить. Если вы увидете множество кода HTML (вывод функции phpinfo()), значит PHP работает нормально, и ваша проблема связана с настройками веб-сервера.

Некоторые операционные системы: Я установил PHP без каких либо ошибок, но когда пытаюсь запустить Apache, мне выводится ошибка:
[mybox:user /src/php5] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd Undefined symbols:
  _compress
  _uncompress

Это означает, что проблема не в PHP, а в клиентских библиотеках MySQL. Некоторые из них требуют сборки PHP с опцией --with-zlib . Этот нюанс описан в MySQL FAQ.

Windows: Я установил PHP, но когда пытаюсь открыть страницу скрипта через браузер, получаю ошибку:
cgi error:
 The specified CGI application misbehaved by not
 returning a complete set of HTTP headers.
 The headers it did return are:

Это означает, что PHP не смог ничего вывести в стандартный поток ввода-вывода. Что бы увидеть возникающую исходную ошибку, в коммандной строке перейдите в директорию, содержащую исполняемый файл PHP (php.exe в Windows) и запустите php -i. Если существуют какие либо проблемы с запуском PHP, вам выведется соответствующая ошибка, которая подскажет вам, что надо исправить. Если вы увидете множество кода HTML (вывод функции phpinfo()), значит PHP работает нормально.

Когда вы убедились, что PHP нормально работает в коммандной строке, попробуйте обратиться к скрипту через браузер снова. Если опять возникнет ошибка - это может означать одну из следующих проблем:

  • Права на файл вашего скрипта, php.exe, php5ts.dll, php.ini или какого либо расширения PHP не позволяют анонимному пользователю интернета ISUR_<machinename> к ним обратиться.
  • Файл скрипта отсутствует (или, возможно, он находится не там, где вы думаете, относительно корневого каталога веб-сервера). Обратите внимание, что в IIS, вы можете отловить эту ошибку, отметив опцию 'check file exists' в настройках "script mappings" в Internet Services Manager. Если файл отсутствует, сервер вместо этого вернет ошибку 404. При этом, также есть дополнительное преимущество. IIS будет производить проверки аутентификации для файла скрипта, необходимые вам, основываясь на разрешениях NTLanMan.
Windows: Я все сделал по инструкции, но PHP и IIS не хотят работать вместе!

Убедитесь, что все пользователи, которым может понадобиться запустить ваш PHP скрипт, имеют право запускать php.exe! IIS использует анонимного пользователя, создаваемого во время инсталляции. Этот пользователь должен иметь права на запуск php.exe. Так же, каждый авторизованный пользователь должен иметь права на запуск php.exe. Для IIS4 вы сказать ему, что PHP - это интерпритатор скриптов. Также прочтите этот FAQ.

Когда я запускаю PHP как CGI на IIS, PWS, OmniHTTPD или Xitami, я получаю такую ошибку: Security Alert! PHP CGI cannot be accessed directly..

Вы должны установить опцию cgi.force_redirect равную 0. По умолчанию она равна 1. Убедитесь, что она не закомментирована (с помощью ;). Как и все опции PHP, она настраивается в php.ini

Так как она по умолчанию равна 1, критически важно убедиться, что используется именно тот php.ini, который нужен. Читайте этот FAQ для подробностей.

Как я могу понять, что мой php.ini найден и используется? Такое впечатление, что вносимые мною изменения игнорируются.

Для проверки, какой именно php.ini используется, запустите функцию phpinfo(). Где-то вверху будет список с названием Configuration File (php.ini). Из него вы сможете понять, какой именно php.ini используется. Если указана только директория в PATH, а файл конфигурации не прочитан, то просто скопируйте его в эту директорию. Если php.ini включен PATH - это значит, что он прочитан.

Если php.ini читается и вы запускаете PHP как модуль, то, после внесения изменений в php.ini, необходимо перезагрузить веб-сервер.

Также смотрите описание php_ini_loaded_file().

Как я могу добавить директорию с PHP в PATH в Windows?

В Windows 7, XP, Vista, 2008, 2012 и выше:

  • Старт > Панель Управления > Система

  • Перейдите на вкладку 'Дополнительно'

  • Нажмите кнопку 'Переменные Окружения'

  • Посмотрите раздел 'Системные Переменные'

  • Найдите строку, содержащую переменную PATH

  • Совершите на ней двойной щелчек мышью

  • Допишите в конец строки путь к PHP, не забыв добавить перед ним ';' (например ;C:\php)

  • Нажмите OK

В Windows 98/Me вам нужно отредактировать файл autoexec.bat:

  • Откройте блокнот

  • Откройте в блокноте файл C:\autoexec.bat

  • Найдите строку PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;..... и добавьте в конце ;C:\php

  • Сохраните изменения и перезагрузите компьютер.

Замечание: Не забудьте перезагрузиться после описанных выше действий и, после перезагрузки, проверить, что переменная PATH содержит нужный путь.

В некоторых устаревших руководствах PHP предлагается поместить исполняемые файлы в системный каталог Windows потому, что (C:\Windows, C:\WINNT, и т.д..) по умолчанию заданы в переменной окружения PATH. Но на данный момент это не рекомендуется, поскольку может вызвать разнообразные проблемы.

Как я могу сделать файл php.ini доступным для PHP в windows?

Есть несколько путей сделать это. Если вы используете Apache, прочитайте следующие инструкции (Apache 1, Apache 2), также вы можете установить системную переменную PHPRC:

в Windows:

  • Старт > Панель Управления > Система

  • Перейдите на вкладку 'Дополнительно'

  • Нажмите кнопку 'Переменные Окружения'

  • Посмотрите раздел 'Системные Переменные'

  • Нажмите кнопку 'Добавить' и введите 'PHPRC' как имя переменной и директорию с php.ini в качестве ее значения (например C:\php)

  • Нажмите ОК и перезагрузите компьютер

В Windows 98/Me вам нужно отредактировать файл autoexec.bat:

  • Откройте блокнот

  • Откройте в блокноте файл C:\autoexec.bat

  • Добавьте новую строку в конце файла: set PHPRC=C:\php (замените C:\php на директорию, где лежит php.ini). Обратите внимание, что путь не должен содержать пробелов. К примеру, если файл лежит в C:\Program Files\PHP, вы должны указать короткое имя C:\PROGRA~1\PHP.

  • Сохраните файл и перезагрузите компьютер

Можно ли использовать согласование контента Apache (опция MultiViews) с PHP?

Если ссылки на файлы PHP содержат расширения, то все будет работать отлично. Это FAQ применимо только для случаев, когда ссылки не содержат расширения и вы хотите использовать согласование контента для файлов PHP из URL. В этом случае замените строку AddType application/x-httpd-php .php на:

AddHandler php5-script php
AddType text/html php
Это решение не сработает с Apache 1, так как модуль PHP не отлавливает php-script.

PHP ограничен работой только с методами GET и POST?

Нет, возможно работать с любыми запросами, например CONNECT. Правильный статус ответа должен будет посылаться функцией header(). Если вам надо, что бы PHP работать только с методами GET и POST, необходимо сконфигурировать Apache следующим образом:

<LimitExcept GET POST>
Deny from all
</LimitExcept>


Проблемы сборки

В этом разделе собраны наиболее общие ошибки, возникающие на этапе сборки.

  1. Я получил последнюю версию PHP, используя анонимный доступ к Git, но в нём нет конфигурационного скрипта!
  2. У меня возникают проблемы при конфигурировании PHP для работы с Apache. Он говорит, что не может найти httpd.h, хотя файл находится точно там, где я сказал!
  3. Во время конфигурации PHP (./configure) вы наталкиваетесь на ошибку, схожую со следующей: checking lex output file root... ./configure: lex: command not found configure: error: cannot find output from lex; giving up
  4. Когда я пытаюсь запустить Apache, я получаю следующее сообщение: fatal: relocation error: file /path/to/libphp4.so: symbol ap_block_alarms: referenced symbol not found
  5. Когда я запускаю configure, он говорит, что не может найти файлы include или библиотеку для GD, gdbm или какого-либо другого пакета!
  6. При компиляции файла language-parser.tab.c мне выдаются ошибки, говорящие yytname undeclared.
  7. Когда я запускаю make, похоже, он выполняется нормально, но на конечной линковке жалуется, что не может найти некоторые файлы.
  8. При компоновке PHP, он жалуется на некоторые неопределённые ссылки.
  9. Я не могу понять как собрать PHP c Apache 1.3.
  10. Я следовал всем шагам по установке модульной версии для Apache на Unix, но мои PHP скрипты выводятся в браузере или я получаю запрос сохранить файл.
  11. В документации рекомендуется использовать: --activate-module=src/modules/php4/libphp4.a, но такой файл не существует, поэтому я заменил это на --activate-module=src/modules/php4/libmodphp4.a и оно не работает!? Что происходит?
  12. Когда я пытаюсь собрать Apache c PHP в виде статического модуля, используя --activate-module=src/modules/php4/libphp4.a он говорит, что мой компилятор не ANSI-совместимый.
  13. Когда я пытаюсь собрать PHP с помощью --with-apxs, я получаю странное сообщение об ошибке.
  14. Во время выполнения make я очень быстро получаю ошибки и множество всяких RUSAGE_.
  15. При компиляции PHP с MySQL, configure выполняется нормально, но во время make я получаю ошибку типа следующей: ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', в чём дело?
  16. Я хочу обновить мой PHP. Где я могу найти строку ./configure, которая была использована для моей текущей PHP установки?
  17. При сборке PHP с библиотекой GD, либо выдаются странные ошибки компиляции, либо ошибки сегментации (segfaults) при выполнении.
  18. При компиляции PHP я, кажется, получаю случайные ошибки, например она зависает. Я использую Solaris, если это имеет значение.
Я получил последнюю версию PHP, используя анонимный доступ к Git, но в нём нет конфигурационного скрипта!

Вам нужен установленный пакет GNU autoconf для того, чтобы сгенерировать конфигурационный скрипт из configure.in. После получения исходников с Git сервера просто запустите ./buildconf в директории верхнего уровня. (Также, если вы запускаете configure без опции --enable-maintainer-mode, то конфигурационный скрипт не будет перестроен автоматически при изменении файла configure.in, поэтому вам необходимо делать это вручную, когда вы заметите, что configure.in изменился. Один из симптомов - появление таких вещей как @VARIABLE@ в вашем Makefile после выполнения configure или config.status.)

У меня возникают проблемы при конфигурировании PHP для работы с Apache. Он говорит, что не может найти httpd.h, хотя файл находится точно там, где я сказал!

Для configure/setup скрипта вам необходимо указать директорию верхнего уровня, в которой находятся исходники Apache. Это означает, что вам надо задать --with-apache=/path/to/apache , а не --with-apache=/path/to/apache/src .

Во время конфигурации PHP (./configure) вы наталкиваетесь на ошибку, схожую со следующей:

checking lex output file root... ./configure: lex: command not found
configure: error: cannot find output from lex; giving up

Не забудьте внимательно прочитать инструкции по установке и заметьте, что для компиляции PHP вам нужно установить как flex, так и bison. В зависимости от ваших настроек, установите bison и flex либо из исходников, либо из пакетов, например, RPM.

Когда я пытаюсь запустить Apache, я получаю следующее сообщение:

fatal: relocation error: file /path/to/libphp4.so:
symbol ap_block_alarms: referenced symbol not found

Эта ошибка обычно появляется, если ядро Apache было скомпилировано как разделяемая библиотека DSO (Dynamic Shared Object). Попробуйте переконфигурировать Apache, используя, по крайней мере, следующие флаги:

--enable-shared=max --enable-rule=SHARED_CORE

Для более подробной информации читайте файл INSTALL в директории верхнего уровня или » страницу руководства Apache по DSO.

Когда я запускаю configure, он говорит, что не может найти файлы include или библиотеку для GD, gdbm или какого-либо другого пакета!

Вы можете сделать так, что скрипт configure будет искать файлы заголовков или библиотеки в нестандартных местах, задав дополнительные флаги для С препроцессора и компоновщика, такие как:

    CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure
Если вы используете csh-подобную оболочку (зачем?), то это будет:
    env CPPFLAGS=-I/path/to/include LDFLAGS=-L/path/to/library ./configure

При компиляции файла language-parser.tab.c мне выдаются ошибки, говорящие yytname undeclared.

Вам необходимо обновить вашу версию Bison. Последнюю версию можно найти на » http://www.gnu.org/software/bison/bison.html.

Когда я запускаю make, похоже, он выполняется нормально, но на конечной линковке жалуется, что не может найти некоторые файлы.

Некоторые старые версии make ошибочно не помещают скомпилированные файлы в поддиректорию functions в той же директории. Попробуйте выполнить cp *.o functions и затем перезапустить make. Если это помогло, то вам действительно надо установить свежую версию GNU make.

При компоновке PHP, он жалуется на некоторые неопределённые ссылки.

Посмотрите на строку для компоновки и убедитесь, что все нужные библиотеки добавлены в конце. Часто забывают '-ldl' и библиотеки, необходимые для поддержки включенных вручную баз данных.

Некоторые люди также сообщают, что при компоновке с Apache им пришлось добавить '-ldl' сразу после libphp4.a.

Я не могу понять как собрать PHP c Apache 1.3.

На самом деле это очень легко. Аккуратно выполните следующие шаги:

  • Скачайте последний дистрибутив Apache 1.3 с » http://httpd.apache.org/download.cgi.
  • Разархивируйте (ungzip/untar) его где-нибудь, например, в /usr/local/src/apache-1.3.
  • Скомпилируйте PHP, сперва запустив ./configure --with-apache=/<path>/apache-1.3 (замените <path> на ваш настоящий путь к директории apache-1.3.)
  • Введите make с последующим make install для сборки PHP и копирования всех необходимых файлов в дерево дистрибутива Apache.
  • Перейдите в вашу директорию /<path>/apache-1.3/src и отредактируйте файл Configuration. Добавьте в файл: AddModule modules/php4/libphp4.a.
  • Введите: ./configure и затем make.
  • Теперь у вас должен быть бинарник httpd, поддерживающий PHP!

Замечание: Вы также можете использовать новый скрипт ./configure в Apache. Смотрите инструкции в файле README.configure, входящем в ваш дистрибутив Apache. Также загляните в файл INSTALL из дистрибутива PHP.

Я следовал всем шагам по установке модульной версии для Apache на Unix, но мои PHP скрипты выводятся в браузере или я получаю запрос сохранить файл.

Это означает, что по какой-то причине модуль PHP не вызывается. Перед тем как обращаться за помощью, проверьте три вещи:

  • Убедитесь, что запускаемый вами бинарник httpd действительно новый, только что построенный httpd. Для этого попробуйте запустить: /path/to/binary/httpd -l Если вы не видите mod_php4.c в списке, то вы запускаете не тот бинарник. Найдите и установите правильный бинарник.
  • Убедитесь, что вы добавили правильный Mime Type в один из ваших Apache .conf файлов. Это должно быть: AddType application/x-httpd-php .php Также убедитесь, что эта строка AddType не попала внутрь <Virtualhost> или <Directory> блока, так как это не даст ей работать с местонахождением вашего тестового скрипта.
  • Наконец, между Apache 1.2 и Apache 1.3 расположение конфигурационных файлов Apache по умолчанию изменилось. Вам надо проверить, что действительно читается тот конфигурационный файл, в который вы добавили строку AddType. Вы можете внести очевидную синтаксическую ошибку в ваш httpd.conf файл или какое-либо другое заметное изменение, которое покажет вам, что читается правильный файл.

В документации рекомендуется использовать: --activate-module=src/modules/php4/libphp4.a, но такой файл не существует, поэтому я заменил это на --activate-module=src/modules/php4/libmodphp4.a и оно не работает!? Что происходит?

Заметьте, что файл libphp4.a не должен существовать. Он будет создан в процессе!

Когда я пытаюсь собрать Apache c PHP в виде статического модуля, используя --activate-module=src/modules/php4/libphp4.a он говорит, что мой компилятор не ANSI-совместимый.

Сообщение об ошибке вводит в заблуждение; это исправлено в более свежих версиях Apache.

Когда я пытаюсь собрать PHP с помощью --with-apxs , я получаю странное сообщение об ошибке.

Проверьте три вещи. Во-первых, по какой-то причине, когда Apache создает Perl скрипт apxs, он получается без правильного компилятора и переменных, задающих флаги. Найдите ваш apxs скрипт (попробуйте команду which apxs), иногда он установлен как /usr/local/apache/bin/apxs или /usr/sbin/apxs. Откройте его и найдите строки, схожие с этими:

my $CFG_CFLAGS_SHLIB  = ' ';          # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = ' ';          # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = ' ';          # substituted via Makefile.tmpl
Если они так и выглядят, то вы нашли вашу проблему. Они могут содержать только пробелы или другие неправильные значения, такие как 'q()'. Измените эти строки на:
my $CFG_CFLAGS_SHLIB  = '-fpic -DSHARED_MODULE'; # substituted via Makefile.tmpl
my $CFG_LD_SHLIB      = 'gcc';                   # substituted via Makefile.tmpl
my $CFG_LDFLAGS_SHLIB = q(-shared);              # substituted via Makefile.tmpl
Вторая возможная проблема возникает только на Red Hat 6.1 и 6.2. Скрипт apxs, поставляемый с Red Hat, сломан. Ищите эту строку:
my $CFG_LIBEXECDIR    = 'modules';         # substituted via APACI install
Если вы нашли вышеприведенную строку, измените её на следующее:
my $CFG_LIBEXECDIR    = '/usr/lib/apache'; # substituted via APACI install
И последнее, если вы переконфигурируете/переустанавливаете Apache, запустите make clean после ./configure и перед make.

Во время выполнения make я очень быстро получаю ошибки и множество всяких RUSAGE_.

При выполнении make во время установки, если вы сталкиваетесь с проблемами, похожими на следующее:

microtime.c: In function `php_if_getrusage':
microtime.c:94: storage size of `usg' isn't known
microtime.c:97: `RUSAGE_SELF' undeclared (first use in this function)
microtime.c:97: (Each undeclared identifier is reported only once
microtime.c:97: for each function it appears in.)
microtime.c:103: `RUSAGE_CHILDREN' undeclared (first use in this function)
make[3]: *** [microtime.lo] Error 1
make[3]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/master/php-4.0.1/ext/standard'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/master/php-4.0.1/ext'
make: *** [all-recursive] Error 1

Ваша система сломана. Вы должны исправить ваши файлы /usr/include, установив пакет glibc-devel, который соответствует вашей glibc. Это абсолютно не зависит от PHP. Для доказательства попробуйте следующий простой тест:

$ cat >test.c <<X
#include <sys/resource.h>
X
$ gcc -E test.c >/dev/null
Если выдаются ошибки, то ваши include файлы испорчены.

При компиляции PHP с MySQL, configure выполняется нормально, но во время make я получаю ошибку типа следующей: ext/mysql/libmysqlclient/my_tempnam.o(.text+0x46): In function my_tempnam': /php4/ext/mysql/libmysqlclient/my_tempnam.c:103: the use of tempnam' is dangerous, better use mkstemp', в чём дело?

Во-первых, важно понимать, что это Warning (предупреждение), а не фатальная ошибка. Так как это последнее, что выводится во время make, оно может выглядеть как фатальная ошибка, но это не так. Конечно, если ваш компилятор умирает на предупреждениях, (Warnings), то тогда да. Также имейте ввиду, что поддержка MySQL включена по умолчанию.

Замечание:

Начиная с PHP 4.3.2 вы также будете видеть следующий текст после того как сборка (make) завершится:

Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).
(Сборка завершена, можно безопасно игнорировать
предупреждения о tempnam и tmpnam.)

Я хочу обновить мой PHP. Где я могу найти строку ./configure, которая была использована для моей текущей PHP установки?

Либо смотрите файл config.nice в дереве исходников вашей текущей PHP установки, либо, если это недоступно, просто выполните скрипт:

<?php phpinfo(); ?>
В начале вывода будет находиться строка ./configure, которая была использована для сборки текущего PHP.

При сборке PHP с библиотекой GD, либо выдаются странные ошибки компиляции, либо ошибки сегментации (segfaults) при выполнении.

Убедитесь, что ваша библиотека GD и PHP компонуются с одними и теми же зависимыми библиотеками (например, libpng).

При компиляции PHP я, кажется, получаю случайные ошибки, например она зависает. Я использую Solaris, если это имеет значение.

Использование не GNU утилит во время компиляции PHP может вызвать проблемы. Чтобы быть уверенным, что компиляция PHP будет работать, используйте GNU утилиты. Например, в Solaris, использование SunOS BSD-совместимой или Solaris версии sed не будет работать, а GNU или Sun POSIX (xpg4) версии sed будет. Ссылки: » GNU sed, » GNU flex, and » GNU bison.


Использование PHP

В этом разделе собрано множество общих ошибок, которые могут вам встретиться при написании PHP скриптов.

  1. Я не могу запомнить порядок аргументов PHP-функций, они что, случайны?
  2. Я хочу написать общий PHP скрипт, который может обрабатывать данные, приходящие из любой формы. Как узнать какие переменные метода POST доступны?
  3. Мне надо преобразовать все одиночные кавычки (') в обратный слеш с последующей одиночной кавычкой (\'). Как я могу сделать это с помощью регулярного выражения? Я также хотел бы преобразовать " в \" и \ в \\.
  4. Все мои " превратились в \", а ' в \', как избавиться от всех этих ненужных обратных слешей? Как и почему они появились?
  5. Как директива PHP register_globals касается меня?
  6.       Когда я делаю следующее, вывод распечатывается не в том порядке:

<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>

     Что происходит?
  7. Эй, что произошло с моими строками? <pre> <?php echo "Это должно быть на первой строке."; ?> <?php echo "А это должно быть на следующей строке."; ?> </pre>
  8. Я получаю сообщение 'Warning: Cannot send session cookie - headers already sent...' или 'Cannot add header information - headers already sent...'.
  9. Мне необходим прямой доступ к информации в заголовке запроса. Как я могу это сделать?
  10. Когда я пытаюсь использовать аутентификацию с IIS, я получаю 'No Input file specified'.
  11. Windows: У меня нет доступа к файлам, разделяемых с другим компьютером, по IIS.
  12. Как я должен совмещать XML и PHP? Он жалуется на мои <?xml тэги!
  13. Где я могу найти полный список переменных, доступных мне в PHP?
  14. Как я могу генерировать PDF файлы без использования платных или коммерческих библиотек, как PDFLib? Я бы хотел что-нибудь бесплатное и не требующее внешних библиотек PDF.
  15. Я пытаюсь получить доступ к одной из стандартных CGI переменных (таких как $DOCUMENT_ROOT или $HTTP_REFERER) в определенной пользователем функции и, похоже, она не может быть найдена. В чем дело?
  16. Несколько PHP директив могут принимать сокращения для байтовых значений в отличие от только integer байтовых значений. Каковы все доступные сокращения?
  17. Windows: Я постоянно получаю таймауты при соединении с localhost, хотя с "127.0.0.1" все работает нормально?
Я не могу запомнить порядок аргументов PHP-функций, они что, случайны?

PHP - это клей, который скрепляет вместе сотни различных внешних библиотек, поэтому иногда это кажется довольно запутанным. Однако, общее правило таково:

Параметры функций работы с массивами упорядочены в виде "иголка (needle), сено (haystack)", тогда как порядок в строковых функциях обратный, то есть аналогичен "сено, иголка".

Я хочу написать общий PHP скрипт, который может обрабатывать данные, приходящие из любой формы. Как узнать какие переменные метода POST доступны?

PHP предлагает множество предопределенных переменных, таких как суперглобальная $_POST. Вы можете пройтись по $_POST так как это ассоциативный массив всех значений, пришедших с POST. Для примера, давайте просто пройдемся по ним с foreach, проверим на пустые (empty()) значения и распечатаем.

<?php
$empty = $post = array();
foreach ($_POST as $varname => $varvalue) {
    if (empty($varvalue)) {
        $empty[$varname] = $varvalue;
    } else {
        $post[$varname] = $varvalue;
    }
}

print "<pre>";
if (empty($empty)) {
    print "В POST не было пустых значений, вот что там было:\n";
    var_dump($post);
} else {
    print "Пришло " . count($empty) . " пустых значений\n";
    print "Всего отправлено:\n"; var_dump($post);
    print "Пустых:\n"; var_dump($empty);
    exit;
}
?>

Мне надо преобразовать все одиночные кавычки (') в обратный слеш с последующей одиночной кавычкой (\'). Как я могу сделать это с помощью регулярного выражения? Я также хотел бы преобразовать " в \" и \ в \\.

Подразумевая, что вы хотите использовать результат преобразования в работе с базой данных, используйте соответствующий механизм экранирования, идущий с используемой вами базой данных. Например, используйте mysql_real_escape_string() с MySQL и pg_escape_string() с PostgreSQL. Есть также более общие функции addslashes() и stripslashes(), они часто встречаются в старом PHP-коде.

Замечание: Замечание о директиве: magic_quotes_gpc

Директива PHP magic_quotes_gpc имеет значение по умолчанию on (включена). По сути это применяет функцию addslashes() ко всем GET-, POST- и COOKIE-данным. Чтобы удалить добавленные слеши, вы можете использовать stripslashes().

Все мои " превратились в \", а ' в \', как избавиться от всех этих ненужных обратных слешей? Как и почему они появились?

Наиболее частая причина магического появления обратных слешей - это включенная PHP-директива magic_quotes_gpc. Этот функционал PHP уже устарел и на него нельзя полагаться, поэтому эту директиву рекомендуется отключить. Кроме того, для удаления обратных слешей из строк можно использовать функцию stripslashes().

Замечание: Замечание о директиве: magic_quotes_gpc

Директива PHP magic_quotes_gpc имеет значение по умолчанию on (включена). По сути это применяет функцию addslashes() ко всем GET-, POST- и COOKIE-данным. Чтобы удалить добавленные слеши, вы можете использовать stripslashes().

Как директива PHP register_globals касается меня?
Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

Во-первых, следует объяснить что делает эта директива. Скажем, используется вот такой URL: http://example.com/foo.php?animal=cat и в foo.php у нас находится следующий PHP-код:

<?php
// Использование $_GET в данном случае более предпочтительно
echo $_GET['animal'];

// Чтобы переменная $animal была определена, директива register_globals должна
// быть включена.
// НЕ ДЕЛАЙТЕ ЭТОГО!
echo $animal;

// Это касается всех переменных, включая $_SERVER
echo $_SERVER['PHP_SELF'];

// Опять-таки, чтобы $PHP_SELF была определена, надо включить register_globals
// НЕ ДЕЛАЙТЕ ЭТОГО!
echo $PHP_SELF;
?>

Код выше демонстрирует как register_globals создает множество переменных. Годами такой стиль написания не одобрялся и годами register_globals была выключена по умолчанию. Несмотря на то, что большинство хостингов отключает register_globals, осталось еще много устаревших статей, руководств и книг, которые требуют включения этой директивы. Действуйте соответственно.

См. также следующие источники за дополнительной информацией:

  • Директива register_globals
  • Глава о безопасности и register_globals
  • Работа с внешними данными
  • В качестве альтернативы используйте суперглобальные переменные

Замечание:

В примере выше мы использовали URL, который содержал QUERY_STRING. Передача информации подобным образом происходит с помощью метода HTTP GET, вот почему мы использовали суперглобальный массив $_GET.

Когда я делаю следующее, вывод распечатывается не в том порядке:
<?php
function myfunc($argument)
{
    echo $argument + 10;
}
$variable = 10;
echo "myfunc($variable) = " . myfunc($variable);
?>
Что происходит?

Для того, чтобы использовать результат вашей функции в выражении (таком как соединение с другими строками, как в вышеприведенном примере), вам необходимо вернуть значение с помощью return, а не выводить его через echo.

Эй, что произошло с моими строками?
<pre>
<?php echo "Это должно быть на первой строке."; ?>
<?php echo "А это должно быть на следующей строке."; ?>
</pre>

В PHP, блок кода завершается либо с "?>", либо с "?>\n" (где \n означает "новая строка"). В вышеприведенном примере предложения выведутся на одной строке, так как PHP опускает символ новой строки после завершения блока. Это означает, что вам необходимо вставить дополнительный символ новой строки после каждого блока PHP кода, для того чтобы вывод продолжался с новой строки.

Почему PHP делает это? Потому что при форматировании обычного HTML это, обычно, упрощает вашу жизнь когда вам не нужна эта новая строка и вам не надо создавать невероятно длинные строки для того, чтобы сделать исходник страницы читаемым.

Я получаю сообщение 'Warning: Cannot send session cookie - headers already sent...' или 'Cannot add header information - headers already sent...'.

Функциям header(), setcookie(), и функциям сессии нужно добавить заголовки к выходному потоку, но заголовки могут быть посланы только перед всем другим содержимым. Перед использованием этих функций нельзя ничего выводить, в том числе HTML. Функция headers_sent() проверит, если ваш скрипт уже послал заголовки; также смотрите функции управления выводом.

Мне необходим прямой доступ к информации в заголовке запроса. Как я могу это сделать?

Это делает функция getallheaders(), если вы запускаете PHP как модуль Apache. Так, следующий кусок кода покажет вам все заголовки запроса:

<?php
$headers = getallheaders();
foreach ($headers as $name => $content) {
    echo "headers[$name] = $content<br />\n";
}
?>

Также смотрите
apache_lookup_uri(),
apache_response_headers() и
fsockopen()

Когда я пытаюсь использовать аутентификацию с IIS, я получаю 'No Input file specified'.

Это недостаток модели безопасности IIS. Проблема общая для всех CGI программ, выполняющихся под IIS. Чтобы обойти проблему, создайте простой HTML файл (необрабатываемый PHP) как входную страницу в аутентифицируемой директории. Затем используйте META тэг для перенаправления на PHP страницу или поместите ссылку, указывающую на PHP страницу. После этого PHP распознает аутентификацию правильно. С модулем ISAPI такой проблемы нет. Это не должно повлиять на другие веб-серверы NT. Для дополнительной информации смотрите: » http://support.microsoft.com/kb/q160422/ и раздел руководства HTTP Аутентификация.

Windows: У меня нет доступа к файлам, разделяемых с другим компьютером, по IIS.

Вам необходимо сделать изменения. Идите в Internet Information Services. Найдите ваш PHP файл и перейдите в его свойства. Идите в закладку File Security, Edit -> Anonymous access and authentication control.

Вы можете исправить проблему либо сняв отметку с Anonymous Access и оставив отмеченным Integrated Window Authentication, либо отметив Anonymous Access и отредактировать права пользователя, так как у него может не быть прав.

Как я должен совмещать XML и PHP? Он жалуется на мои <?xml тэги!

Для того, чтобы встроить <?xml напрямую в ваш PHP код, вам надо отключить короткие тэги, установив PHP директиву short_open_tags в 0. Вы можете установить эту директиву с помощью ini_set(). Независимо от того, включена short_open_tags или нет, вы можете делать что-то типа: <?php echo '<?xml'; ?>. По умолчанию эта директива включена (On).

Где я могу найти полный список переменных, доступных мне в PHP?

Читайте страницу руководства по предопределенным переменным, так как она содержит частичный список предопределенных переменных, доступных вашему скрипту. Полный список доступных переменных (и множество другой информации) можно увидеть, вызвав функцию phpinfo(). Не забудьте прочитать раздел руководства по переменным, лежащим вне PHP так как он описывает общие сценарии для внешних переменных, таких как HTML форма, Cookie и URL.

Замечание: register_globals: важное замечание

Начиная с PHP 4.2.0, значением директивы PHP register_globals по умолчанию является off (выключено). Сообщество PHP рекомендует не полагаться на эту директиву, а использовать вместо этого иные средства, такие как superglobals.

Как я могу генерировать PDF файлы без использования платных или коммерческих библиотек, как PDFLib? Я бы хотел что-нибудь бесплатное и не требующее внешних библиотек PDF.

Есть несколько альтернатив, написанных на PHP, таких как » FPDF и » TCPDF.

Есть также расширение Haru, использующее внешнюю свободную библиотеку libHaru.

Я пытаюсь получить доступ к одной из стандартных CGI переменных (таких как $DOCUMENT_ROOT или $HTTP_REFERER) в определенной пользователем функции и, похоже, она не может быть найдена. В чем дело?

Важно осознавать, что директива PHP register_globals также затрагивает переменные окружения и сервера. Когда register_globals = off (по умолчанию off, начиная с PHP 4.2.0), $DOCUMENT_ROOT не будет существовать. Вместо нее используйте $_SERVER['DOCUMENT_ROOT']. Если register_globals = on, то переменные $DOCUMENT_ROOT и $GLOBALS['DOCUMENT_ROOT'] будут также существовать.

Если вы уверены, что register_globals = on и удивляетесь почему $DOCUMENT_ROOT недоступна внутри функции, то это потому, что, как любые другие переменные, она требует global $DOCUMENT_ROOT внутри функции. Также смотрите страницу руководства по области определения переменных. Рекомендуется работать с register_globals = off.

Несколько PHP директив могут принимать сокращения для байтовых значений в отличие от только integer байтовых значений. Каковы все доступные сокращения?

Доступные опции: K (для килобайт), M (для мегабайт) и G (для гигабайт; доступна начиная с PHP 5.1.0); они регистронезависимы. Все остальное считается байтами. 1M равно одному мегабайту или 1048576 байтам. 1K равно одному килобайту или 1024 байтам. Эти сокращения вы можете использовать в php.ini и в функции ini_set().

Замечание: килобайт и кибибайт

В нотации PHP один килобайт равен 1024 байтам, тогда как стандарт IEC считает это кибибайтом. В итоге: k и K = 1024 байта.

Windows: Я постоянно получаю таймауты при соединении с localhost, хотя с "127.0.0.1" все работает нормально?

До версии PHP 5.3.4, существовала ошибка в коде резолвинга доменного имени, не дававшая определить адрес localhost при включенном IPv6, во всех ситуациях связанных с потоками. Для обхода этой проблемы можно использовать "127.0.0.1" или отключить резолвинг IPv6 в файле hosts.


Безопасное хэширование паролей

В этом разделе разъясняются причины, стоящие за хэшированием паролей в целях безопасности, а также эффективные методы хэширования.

  1. Почему я должен хэшировать пароли пользователей в моем приложении?
  2. Почему популярные хэширующие функции, такие как md5 и sha1 не подходят для паролей?
  3. Если популярные хэширующие функции не подходят, как же я тогда должен хэшировать свои пароли?
  4. Что такое соль?
  5. Как я должен хранить свою соль?
Почему я должен хэшировать пароли пользователей в моем приложении?

Хэширование паролей является одним из самых базовых соображений безопасности, которые необходимо сделать, при разработке приложения, принимающего пароли от пользователей. Без хэширования, пароли, хранящиеся в базе вашего приложения, могут быть украдены, например, если ваша база данных была скомпрометирована, а затем немедленно могут быть применены для компрометации не только вашего приложения, но и аккаунтов ваших пользователей на других сервисах, если они не используют уникальных паролей.

Применяя хэширующий алгоритм к пользовательским паролям перед сохранением их в своей базе данных, вы делаете невозможным разгадывание оригинального пароля для атакующего вашу базу данных, в то же время сохраняя возможность сравнения полученного хэша с оригинальным паролем.

Важно заметить, однако, что хэширование паролей защищает их только от компрометирования в вашем хранилище, но не обязательно от вмешательства вредоносного кода в вашем приложении.

Почему популярные хэширующие функции, такие как md5() и sha1() не подходят для паролей?

Такие хэширующие алгоритмы как MD5, SHA1 и SHA256 были спроектированы очень быстрыми и эффективными. При наличии современных технологий и оборудования, стало довольно просто выяснить результат этих алгоритмов методом "грубой силы" для определения оригинальных вводимых данных.

Из-за той скорости, с которой современные компьютеры могут "обратить" эти хэширующие алгоритмы, многие профессионалы компьютерной безопасности строго не рекомендуют использовать их для хэширования паролей.

Если популярные хэширующие функции не подходят, как же я тогда должен хэшировать свои пароли?

При хэшировании паролей существует два важных соображения: это стоимость вычисления и соль. Чем выше стоимость вычисления хэширующего алгоритма, тем больше времени требуется для взлома его вывода методом "грубой силы".

PHP 5.5 предоставляет встроенное API хэширования паролей, которое безопасно работает и с хэшированием и с проверкой паролей. Также есть » PHP библиотека совместимости, доступная с PHP 5.3.7.

Другой возможностью является функция crypt(), которая поддерживает несколько алгоритмов хэширования в PHP 5.3 и новее. При использовании этой функции вы можете быть уверенным, что выбранный вами алгоритм доступен, так как PHP содержит собственную реализацию каждого поддерживаемого алгоритма, даже в случае, если какие-то из них не поддерживаются вашей системой.

При хэшировании паролей рекомендуется применять алгоритм Blowfish, который также используется по умолчанию в API хэширования паролей, так как он значительно большей вычислительной сложности, чем MD5 или SHA1, при этом по-прежнему гибок.

Учтите, что, если вы используете функцию crypt() для проверки пароля, то вам нужно предостеречь себя от атак по времени, применяя сравнение строк, которое занимает постоянное время. Ни операторы PHP == и ===, ни функция strcmp() не являются таковыми. Функция же password_verify() как раз делает то, что нужно. Настоятельно рекомендуется использовать встроенное API хэширования паролей, если есть такая возможность.

Что такое соль?

Криптографическая соль представляет собой данные, которые применяются в процессе хэширования для предотвращения возможности разгадать оригинальный ввод с помощью поиска результата хэширования в списке заранее вычисленных пар ввод-хэш, известном также как "радужная" таблица.

Более простыми словами, соль - это кусочек дополнительных данных, которые делают ваши хэши намного более устойчивыми к взлому. Существует много онлайн-сервисов, предоставляющих обширные списки заранее вычисленных хэшей вместе с их оригинальным вводом. Использование соли делает поиск результирующего хэша в таком списке маловероятным или даже невозможным.

password_hash() создает случайную соль в случае, если она не была передана, и чаще всего это наилучший и безопасный выбор.

Как я должен хранить свою соль?

При использовании функции password_hash() или crypt(), возвращаемое значение уже содержит соль как часть созданного хэша. Это значение нужно хранить как есть в вашей базе данных, так как оно содержит также информацию о хэширующей функции, которая использовалась, и может быть непосредственно передано в функции password_verify() или crypt() при проверке пароля.

Следующая диаграмма показывает формат возвращаемого значения функциями crypt() или password_hash(). Как можно видеть, они содержат полную информацию об алгоритме и соли, требуемых для будущей проверки пароля.

Компоненты значения, возвращаемые функциями password_hash и crypt, идут в следующем порядке: выбранный алгоритм, опции алгоритма, соль и хэш пароля.


PHP и HTML

PHP и HTML тесно взаимодействуют: PHP может генерировать HTML, а HTML может передавать информацию PHP. Перед чтением вопросов в этом разделе важно чтобы вы понимали как получать переменные извне PHP. Страницы руководства по этой теме содержат много примеров.

  1. Какое кодирование/декодирование я должен выполнять при передаче значения через форму/URL?
  2. Я пытаюсь использовать <input type="image">, но переменные $foo.x и $foo.y недоступны. $_GET['foo.x'] тоже не существует. Где они?
  3. Как создать массивы в HTML <form>?
  4. Как получить все результаты из HTML тэга select с опцией multiple?
  5. Как я могу передать переменную из JavaScript в PHP?
Какое кодирование/декодирование я должен выполнять при передаче значения через форму/URL?

Здесь несколько этапов, на которых кодировка важна. Предположим, что у вас есть $data типа string, содержащая строку, которую вы хотите передать без кодирования. Вот эти этапы:

  • Интерпретация HTML. Для того, чтобы задать произвольную строку, вы должны заключить её в двойные кавычки и вызвать htmlspecialchars() на все значение.

  • URL: URL состоит из нескольких частей. Если вы хотите чтобы ваши данные были восприняты как один элемент, вы должны закодировать их с помощью urlencode().

Пример #1 Скрытый элемент HTML формы

<?php
    echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>

Замечание: Использовать urlencode() для $data неправильно, так как кодировать данные в urlencode() это обязанность браузера. Все популярные браузеры делают это правильно. Отметьте, что это происходит вне зависимости от метода (например, GET или POST). Однако, вы заметите это только в случае GET запроса, так как POST запросы обычно скрыты.

Пример #2 Данные, редактируемые пользователем

<?php
    echo "<textarea name='mydata'>\n";
    echo htmlspecialchars($data)."\n";
    echo "</textarea>";
?>

Замечание: Данные показываются браузером как предполагается, потому что браузер будет интерпретировать экранированные HTML символы. При отправке через GET или POST данные будут закодированы (urlencoded) браузером для передачи и раскодированы (urldecoded) PHP. Поэтому вам не надо выполнять какое-либо url-кодирование/раскодирование самим, все выполняется автоматически.

Пример #3 В URL

<?php
    echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
        urlencode($data)) . '">'."\n";
?>

Замечание: На самом деле вы представляетесь HTML GET запросом, поэтому необходимо вручную закодировать (urlencode()) данные.

Замечание: Вам надо применить htmlspecialchars() на полный URL, потому что URL появляется как значение HTML атрибута. В этом случае, браузер сначала раскодирует все значение (де-htmlspecialchars()) и затем URL. PHP поймет URL правильно, так как вы закодировали данные с urlencode(). Вы заметите, что & в URL заменяется на &amp;. Хотя большинство браузеров это исправляют, если вы забудете об этом, но все же это не всегда возможно. Поэтому, даже если ваш URL не динамический, вам надо закодировать его с помощью htmlspecialchars().

Я пытаюсь использовать <input type="image">, но переменные $foo.x и $foo.y недоступны. $_GET['foo.x'] тоже не существует. Где они?

При отправке формы, вместо стандартной кнопки отправки возможно использовать изображение с тэгом как:

<input type="image" src="image.gif" name="foo" />
Когда пользователь щелкает где-либо на картинке, серверу будет послана сопутствующая форма с двумя дополнительными переменными: foo.x и foo.y.

Так как имена foo.x и foo.y нелегальны в PHP, они автомагически превращаются в foo_x и foo_y. То есть, точки заменяются на подчеркивания. Вы обращаетесь к этим переменным так же как и к любым другим, описанным в разделе о получении переменных извне PHP. Например, $_GET['foo_x'].

Замечание:

Пробелы в именах переменных запроса преобразуются в подчеркивания.

Как создать массивы в HTML <form>?

Для того, чтобы результаты <form> были переданы вашему PHP скрипту как массив, именуйте элементы <input>, <select> или <textarea> следующим образом:

<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
Заметьте квадратные скобки после имени переменной, это делает её массивом. Вы можете сгруппировать элементы в массив, присваивая одно и то же имя разным элементам:
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyOtherArray[]" />
<input name="MyOtherArray[]" />
Это создаст два массива, MyArray и MyOtherArray, которые будут переданы PHP скрипту. Также возможно задать определенные ключи для ваших массивов:
<input name="AnotherArray[]" />
<input name="AnotherArray[]" />
<input name="AnotherArray[email]" />
<input name="AnotherArray[phone]" />
Массив AnotherArray теперь будет содержать ключи 0, 1, email и phone.

Замечание:

Определять ключи массивов в HTML необязательно. Если вы не задаете ключи, массив заполняется в порядке появления элементов в форме. Наш первый пример будет содержать ключи 0, 1, 2 и 3.

Также смотрите Функции для работы с массивами и Переменные извне PHP.

Как получить все результаты из HTML тэга select с опцией multiple?

HTML тэг select с multiple позволяет пользователю выбрать несколько элементов из списка. Эти элементы затем передаются обработчику формы. Проблема в том, что они все переданы с одним и тем же именем. Например:

<select name="var" multiple="yes">
Каждая выбранная опция поступит обработчику формы как:
var=option1
var=option2
var=option3
Каждая опция будет затирать содержимое предыдущей переменной $var. Решение - воспользоваться возможностью PHP "массив из элемента формы". Должно быть задано следующее:
<select name="var[]" multiple="yes">
Это укажет PHP обращаться с $var как с массивом и каждое присваивание значения для var[] добавит элемент в массив. Первый элемент становится $var[0], следующий $var[1] и т.д. Функция count() может быть использована для определения, сколько элементов было выбрано и функция sort() может быть использована для сортировки массива опций, если необходимо.

Заметьте, что если вы используете JavaScript, то [] в имени элемента может вызвать проблемы, если вы пытаетесь обращаться к элементу по имени. Вместо этого используйте числовой ID элемента формы или заключите имя переменной в одиночные кавычки и используйте как индекс массива элементов, например:

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 в основном используется как скриптовый язык для web и выполняется в контексте web сервера, то визуальные объекты никогда не появятся на рабочем столе (desktop) сервера. Если вы используете 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 скриптом нет и, следовательно, прямое взаимодействие с серверной стороной невозможно.

Возможно ли получить выполняющийся экземпляр компонента?

Это возможно с помощью моникеров. Если вы хотите получить несколько ссылок на один и тот же экземпляр Word, вы можете создать этот экземпляр как показано:

<?php
$word = new COM("C:\docs\word.doc");
?>

Это создаст новый экземпляр, если нет доступного выполняющегося экземпляра или будет возвращена ссылка на выполняющийся экземпляр, если таковой доступен.

Есть ли способ обработать событие, посланное COM объектом?

Используя com_event_sink() вы можете определить приемник события и привязать его. Вы можете заставить PHP сгенерировать скелет класса приемника событий, используя com_print_typeinfo().

У меня возникают проблемы при попытке вызвать метод COM объекта, который предоставляет более чем один интерфейс. Что я могу сделать?

Ответ так же прост как и неудовлетворителен. Не знаю точно, но думаю, что вы не можете ничего сделать. Если у кого-то есть точная информация по этому вопросу, пожалуйста, дайте » мне знать :)

Значит PHP работает с COM, как насчет COM+?

COM+ расширяет COM, предоставляя систему для управления компонентами через MTS и MSMQ, но здесь нет ничего особенного, что PHP должен поддерживать для использования таких компонент.

Если PHP может манипулировать COM объектами, можно ли представить себе использование MTS для управления ресурсами компонентов в соединении с PHP?

Сам PHP еще не обрабатывает транзакции. Таким образом, если возникает ошибка, откат не инициируется. Если вы используете компоненты, поддерживающие транзакции, вам будет необходимо реализовать управление транзакциями самим.


Разные вопросы

Некоторые вопросы могут не подходить для других категорий. Вы можете найти их здесь.

  1. Как обращаться со сжатыми bz2 руководствами под Windows?
  2. Что означает & рядом с аргументом в объявлении функции, например asort?
  3. Как обращаться с register_globals?
Как обращаться со сжатыми bz2 руководствами под Windows?

Если у вас нет архиватора для работы с bz2 файлами, то » скачайте утилиту для командной строки от Redhat (пожалуйста, ищите подробности ниже).

Если вы не хотите использовать утилиту командной строки, вы можете попробовать бесплатные средства, такие как » Stuffit Expander, » UltimateZip, » 7-Zip или » Quick Zip. Если у вас есть такие утилиты как » WinRAR или » Power Archiver, то с их помощью вы можете легко распаковать bz2 файлы. Если вы пользуетесь Total Commander (бывший Windows Commander), подключаемый модуль bz2 для этой программы доступен бесплатно с сайта » Total Commander.

Утилита командной строки bzip2 от Redhat:

Пользователи Win2K Sp2 должны взять последнюю версию 1.0.2, пользователи всех других Windows должны взять версию 1.00. После загрузки переименуйте исполняемый файл в bzip2.exe. Для удобства положите его в директорию в вашем пути, например C:\Windows, где C соответствует диску, на котором установлен ваш Windows.

Замечание: lang обозначает ваш язык и x - желаемый формат, например pdf. Чтобы распаковать php_manual_lang.x.bz2, следуйте этим простым инструкциям:

  • откройте окно c командной строкой (command prompt)
  • перейдите в директорию (команда cd), куда вы сохранили скачанный php_manual_lang.x.bz2
  • вызовите bzip2 -d php_manual_lang.x.bz2 для извлечения php_manual_lang.x в ту же директорию

В случае, если вы скачали php_manual_lang.tar.bz2, содержащий множество html файлов, процедура точно такая же. Единственное отличие заключается в том, что вы получили файл php_manual_lang.tar. Известно, что формат tar обрабатывается большинством распространенных архиваторов под Windows, например такими как » WinZip.

Что означает & рядом с аргументом в объявлении функции, например asort()?

Это означает, что аргумент передается по ссылке и функция, вероятно, изменит его согласно документации. Таким путем вы можете передать только переменные и вам не обязательно задавать & при вызове функции (и это даже не рекомендуется).

Как обращаться с register_globals?

Для информации по проблемам безопасности, связанных с register_globals, читайте Использование register_globals в главе "Безопасность".

Предпочтительнее использовать superglobals, чем полагаться на то, что register_globals установлена в On.

Если вы пользуетесь виртуальным (shared) хостингом с выключенной register_globals и вам надо использовать некоторые существующие приложения, которые требуют, чтобы эта опция была включена; или вы на каком-либо сервере, где эта возможность включена, но вы хотите эмулировать проблему по безопасности, то возможно вам надо эмулировать противоположную установку с помощью PHP. Всегда лучше сначала спросить, если можно каким-либо образом изменить опцию в конфигурации PHP, но если это невозможно, то вы можете воспользоваться следующими совместимыми кусками кода.

Пример #1 Эмулирование Register Globals

Следующее эмулирует register_globals установленную в On. Если вы меняли директиву variables_order, измените соответственно и $superglobals.

<?php
// Emulate register_globals on
if (!ini_get('register_globals')) {
    $superglobals = array($_SERVER, $_ENV,
        $_FILES, $_COOKIE, $_POST, $_GET);
    if (isset($_SESSION)) {
        array_unshift($superglobals, $_SESSION);
    }
    foreach ($superglobals as $superglobal) {
        extract($superglobal, EXTR_SKIP);
    }
}
?>

Следующее эмулирует register_globals установленную в Off. Помните, что этот код должен вызываться в самом начале вашего скрипта, или после вызова session_start(), если вы используете сессии.

<?php
// Emulate register_globals off
function unregister_GLOBALS()
{
    if (!ini_get('register_globals')) {
        return;
    }

    // Might want to change this perhaps to a nicer error
    if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) {
        die('GLOBALS overwrite attempt detected');
    }

    // Variables that shouldn't be unset
    $noUnset = array('GLOBALS',  '_GET',
                     '_POST',    '_COOKIE',
                     '_REQUEST', '_SERVER',
                     '_ENV',     '_FILES');

    $input = array_merge($_GET,    $_POST,
                         $_COOKIE, $_SERVER,
                         $_ENV,    $_FILES,
                         isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());

    foreach ($input as $k => $v) {
        if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) {
            unset($GLOBALS[$k]);
        }
    }
}

unregister_GLOBALS();

?>


История PHP и смежных проектов

Содержание

  • История PHP
  • История смежных с PHP проектов
  • Книги о PHP
  • Публикации, посвященные PHP

PHP прошел длинный путь со дня своего рождения в середине 1990-х. От скромного появления до становления одним из самых популярных языков веб-программирования - эволюция PHP словно IT-сказка. Эта небольшая статья для тех из вас, кому интересно как развивался PHP. Если вы хотите прикоснуться к кусочку Интернет истории, то вы можете найти старые релизы PHP в » Музее PHP.


История PHP

PHP Tools, FI, Construction Kit и PHP/FI

PHP, как всем известно, на самом деле преемник продукта под названием PHP/FI. Созданное в 1994 году Расмусом Лердорфом, самое первое воплощение PHP было простым набором CGI-скриптов, написанных на языке программирования Си. Изначально используя их для отслеживания посещений своего веб-резюме, он назвал этот набор скриптов "Personal Homepages Tools" ("Инструменты для персональных домашних страниц"), но более часто упоминалось название "PHP Tools". Со временем требовалось все больше улучшений функциональности, и Расмус переписал PHP Tools, создав более крупную и богатую реализацию. Эта новая реализация была способна взаимодействовать с базами данных и многое другое, что создавало фреймворк, с помощью которого пользователи могли создавать простые динамические веб-приложения, такие как гостевые книги. В июне 1995 года Расмус » открыл исходный код PHP Tools общественности, что позволило разработчикам использовать его по своему усмотрению. Это также дало возможность пользователям исправлять ошибки в коде и улучшать его.

В сентябре того же года, Расмус расширил PHP и на короткое время убрал из названия PHP. Теперь в виде инструмента FI (сокращение от "Интерпретатор Форм"), новая реализация включала в себя некоторые основные функциональные возможности того PHP, который мы знаем сегодня. Она имела Perl-подобные переменные, автоматическую интерпретацию форм и встраиваемый в HTML синтаксис. Синтаксис языка был похож на Perl, хотя и был гораздо более ограниченным, простым, и в некоторой степени противоречивым. Для того, чтобы вставлять код в HTML-файл, разработчикам пришлось использовать HTML комментарии. Хотя этот метод был не совсем хорошо принят, FI по-прежнему набирал популярность в качестве CGI-инструмента, но все-таки не в качестве языка. Однако, перемены начались в следующем месяце, когда в октябре 1995 года Расмус выпустил полностью переписанный код. С вернувшимся именем PHP, но уже сокращенным от "Personal Home Page Construction Kit", это был первый релиз, который мог похвастаться расширенным интерфейсом сценариев. Язык намеренно напоминал Си по структуре, что делал его легким для восприятия разработчиками, знакомыми с Си, Perl и подобными языками. Будучи все еще ограниченными UNIX и POSIX-совместимыми системами, был изучен вопрос для реализации языка в Windows NT.

Код получил еще одно существенное преобразование в апреле 1996 года. Объединив названия предыдущих версий, Расмус представил PHP/FI. Реализации второго поколения начали по-настоящему развивать PHP из набора инструментов в самостоятельный язык программирования. PHP включал в себя встроенную поддержку для DBM, mSQL и Postgres95 баз данных, cookies, поддержку определяемых пользователем функций и многое другое. В июне PHP/FI была присвоена версия 2.0. Интересно, однако, что существовала только одна версия PHP 2.0. Когда она, наконец, в ноябре 1997 года преодолела статус бета-версии, парсер языка был уже полностью переписан.

Несмотря на короткую историю разработки, PHP/FI продолжал набирать популярность в молодом мире веб-разработки. В 1997 и 1998, PHP/FI стал культом для нескольких тысяч пользователей по всему миру. Исследования Netcraft в мае 1998 года показали, что почти 60 тысяч доменов передавали заголовки, содержащие "PHP". Это число равнялось примерно 1% от всех доменов в Интернете в то время. Несмотря на эти впечатляющие цифры, развитие PHP/FI было ограничено: несмотря на нескольких второстепенных участников, в целом он по-прежнему разрабaтывался одним человеком.

Пример #1 Пример кода на PHP/FI

<!--include /text/header.html-->

<!--getenv HTTP_USER_AGENT-->
<!--ifsubstr $exec_result Mozilla-->
  Эй, у вас Нетскейп!<p>
<!--endif-->

<!--sql database select * from table where user='$username'-->
<!--ifless $numentries 1-->
  Извините, такой записи нет<p>
<!--endif exit-->
  Добро пожаловать, <!--$user-->!<p>
  На вашем счету осталось <!--$index:0--> "кредитов".<p>

<!--include /text/footer.html-->

PHP 3

PHP 3.0 был первой версией, напоминающей PHP, каким мы знаем его сегодня. Посчитав PHP/FI 2.0 все еще неэффективным и недостаточно функциональным для использования в коммерческих приложениях, разрабатываемых для их университетского проекта, Энди Гутманс и Зив Сураски из Тель-Авива начали еще раз заново переписывать парсер в 1997 году. Связавшись с Расмусом, они обсудили различные аспекты текущей реализации и их новой разработки PHP. Для улучшения движка и использования уже существующей базы пользователей PHP/FI, Энди, Расмус и Зив решили сотрудничать в развитии нового, независимого языка программирования. Этот совершенно новый язык был выпущен под новым именем, без упоминания о персональном использовании, как в PHP/FI 2.0. Он был назван просто "PHP" - аббревиатура, означающая рекурсивный акроним - PHP: Hypertext Preprocessor.

Одной из сильнейших сторон PHP 3.0 была возможность расширения ядра. Кроме обеспечения пользователей надежной инфраструктурой из множества различных баз данных, протоколов и API, расширяемость PHP 3.0 привлекла к нему множество сторонних разработчиков, желающих добавить к языку свои расширения. Возможно, это и был главный ключ к успеху, но стоит добавить, что немаловажным шагом оказалась поддержка ООП синтаксиса и намного более мощного и последовательного синтаксиса самого языка.

В июне 1998 года, со множеством новых разработчиков со всего мира присоединившихся к проекту, PHP 3.0 был представлен новой командой разработчиков, как официальный преемник PHP/FI. Активное развитие PHP/FI 2.0, фактически прекратившееся в ноябре прошлого года, теперь официально закончилось. Примерно через девять месяцев открытого публичного тестирования, при объявлении официального выпуска PHP 3.0, он уже был установлен на более чем 70000 доменах по всему миру, и уже не ограничивается POSIX-совместимыми операционными системами. Относительно небольшая доля доменов с установленным PHP была размещена на серверах под управлением Windows 95, 98 и NT, а также Macintosh. На пике своего развития, PHP 3.0 был установлен приблизительно на 10% веб-серверов в Интернете.

PHP 4

К зиме 1998 года, практически сразу после официального выхода PHP 3.0, Энди Гутманс и Зив Сураски начали переработку ядра PHP. В задачи входило увеличение производительности сложных приложений и улучшение модульности кодовой базы PHP. PHP 3.0 дал возможность подобным приложениям успешно работать с набором баз данных и поддерживать большое количество различных API и протоколов, но PHP 3.0 не имел качественной поддержки модулей и приложения работали неэффективно.

Новый движок, названный 'Zend Engine' (от имен создателей: Zeev и Andi), успешно справлялся с поставленными задачами и впервые был представлен в середине 1999 года. PHP 4.0, основанный на этом движке и принесший с собой набор дополнительных функций, официально вышел в мае 2000 года, почти через два года после выхода своего предшественника. Кроме значительного улучшения производительности, PHP 4.0 имел еще несколько ключевых нововведений, таких как поддержка намного большего числа веб-серверов, поддержка HTTP сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций.

PHP 5

После долгой разработки и нескольких пре-релизов в июле 2004 был выпущен PHP 5. В основном он управляется ядром Zend Engine 2.0 с новой объектной моделью и множеством различных других нововведений.

Команда разработчиков PHP включает в себя десятки разработчиков, а также десятки других организаций, работающих над связанными с PHP и его поддержкой проектами, такими как PEAR, PECL и документацией, а также базовую инфраструктуру сети более чем из ста серверов на шести из семи континентах мира. Основываясть на статистике прошлых лет, можно с уверенностью предположить, что PHP теперь установлен на десятки или даже, возможно, сотни миллионов доменов по всему миру.


История смежных с PHP проектов

PEAR

» PEAR (PHP Extension and Application Repository - Репозиторий Приложений и Расширений PHP. Изначально, PHP Extension and Add-on Repository - Репозиторий Дополнений и Расширений PHP) - это PHP-версия базовых классов. В будущем возможен его рост и становление ключевым способом публикации расширений PHP среди разработчиков.

PEAR зародился в ходе дискуссий на встрече разработчиков PHP (PHP Developers' Meeting - PDM), проходившей в январе 2000 года в Тель-Авиве. Автором PEAR является Стиг С. Баккен (Stig S. Bakken), который посвятил разработку своей первой дочери, Мэлин Баккен (Malin Bakken).

С начала 2000 года PEAR вырос до огромного проекта с большим количеством разработчиков, работающих над реализацией общего и повторно используемого функционала на благо для всего сообщества PHP. В настоящее время PEAR включает в себя широкий спектр классов для работы с базами данных, кэширования контента, математических вычислений, электронной коммерции и многого другого.

Дополнительная информация о PEAR может быть найдена в » документации.

Инициатива Гарантии Качества PHP

Группа » Инициативы Гарантии Качества PHP была основана весной 2000 в ответ на критику недостаточного бета-тестирования PHP для производственных окружений. Сейчас эта группа состоит из людей, прекрасно понимающих основу кода PHP. Эти разработчики тратят множество времени на обнаружение и устранение ошибок в PHP. Кроме того, много других членов команды тестируют эти исправления и сообщают о результатах их работы на различных платформах.

PHP-GTK

» PHP-GTK является расширением PHP для написания GUI-приложений, работающих на стороне клиента. Андрей Змиевски (Andrei Zmievski) вспоминает процесс планирования и разработки PHP-GTK:

Я всегда интересовался GUI-программированием, и я нахожу Gtk+ очень приятным средством разработки, исключая то, что работать с ним на C немного утомительно. После просмотра PyGtk и GTK-Perl, я решил попробовать написать интерфейс PHP для работы с Gtk+, пусть с минимальными возможностями. Начиная с августа 2000 года, у меня появилось немного больше свободного времени и я начал эксперименты. В разработке я основывался на PyGtk, который обладает большим количеством возможностей и приятным объектно-ориентированным интерфейсом. Джеймс Хэнстридж (James Henstridge), автор PyGtk, давал очень полезные советы в течение первых этапов разработки.

Написание вручную интерфейсов ко всем функциям Gtk+ даже не рассматривалось. Я остановился на идее генератора кода, похожего на аналогичный генератор PyGtk. Генератор читает .defs файлы, содержащие информацию о классах, константах и методах Gtk+ и генерирует C-код, являющийся интерфейсом в PHP. То, что не могло быть сгенерировано автоматически, создается вручную в .overrides файлах.

Работа над генератором кода и самой инфраструктурой шла достаточно долго, ввиду того, что я не имел достаточно свободного времени для работы. После того, как я показал PHP-GTK Фрэнку Кромману (Frank Kromman), он заинтересовался и начал помогать мне с генератором кода и версией для Win32. Когда мы написали и запустили первую программу Hello World, это было очень захватывающе. Потребовалось несколько месяцев для придания PHP-GTK презентабельного вида и первая версия вышла 1 марта 2001 года. История быстро попала в SlashDot.

Чувствуя, что PHP-GTK может расти, я создал отдельные почтовые конференции, CVS-репозиторий, а также сайт gtk.php.net с помощью Колина Виеброка (Colin Viebrock). Требовалась документация и здесь на помощь пришел Джеймс Мур (James Moore).

Со времен создания PHP-GTK получил широкую известность. У нас есть своя группа документирования, люди начинают писать расширения для PHP-GTK и все больше и больше прекрасных приложений с его помощью.


Книги о PHP

С ростом PHP, его начали узнавать по всему миру, как популярный язык программирования. Одним из наиболее интересных способов суждения об этом может послужить обзор книг о PHP.

Насколько нам известно, первой книгой, посвященной PHP, была чешская книга, выпущенная в апреле 1999 года под названием 'PHP - tvorba interaktivnich internetovych aplikaci' (PHP - Создание интерактивных интернет-приложений). Автором книги является Jirka Kosek. В следующем месяце следом за ней выходит немецкая книга Эгона Шмидта (Egon Schmid), Кристиана Картуса (Christian Cartus) и Ричарда Блюма (Richard Blum). Вскоре после этого была опубликована первая на английском языке книга, посвященная PHP, - 'Core PHP Programming' Леона Аткинсона (Leon Atkinson). Все эти книги описывали PHP 3.0.

Эти книги были первыми в своем роде, и вскоре было выпущено большое количество книг различных авторов и издательств. Существует более 400 книг на английском, более 100 на немецком, и больше 50 на французском и испанском языках! Кроме того, можно найти книги о PHP на многих других языках, включая корейский, японский и иврит.

Очевидно, что такое большое количество книг, написанных разными авторами и опубликованных многими издательствами на столь многих языках, является весомым подтверждением мирового успеха PHP.


Публикации, посвященные PHP

По нашей информации, первая статья о PHP была опубликована в чешском варианте 'Computerworld' весной 1998 и освещала PHP 3.0. Как и в случае с книгами, эта была первая в серии статья из множества посвященных PHP и опубликованных в различных известных журналах.

Статьи о PHP публиковались в 'Dr. Dobbs', 'Linux Enterprise', 'Linux Magazine' и многих других изданиях. А статьи о переносе основанных на ASP приложений на PHP под Windows появились даже в принадлежащей самому Microsoft MSDN!


Migrating from PHP 7.0.x to PHP 7.1.x

Содержание

  • Новые возможности
  • Новые функции
  • Новые глобальные константы
  • Изменения, ломающие обратную совместимость
  • Функционал, объявленный устаревшим в PHP 7.1.x
  • Измененные функции
  • Прочие изменения
  • Поддержка Windows

Эта обновлённая версия приносит с собой ряд новых возможностей и несколько несовместимостей, которые должны быть проверены до перехода на PHP версии в комплексе сред.

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x, 5.6.x и 7.0.x.


Новые возможности

Обнуляемые типы

Типы для параметров и возвращаемых значений могут быть помечены как обнуляемые, путем добавления префикса в виде знака вопроса. Это означает, что указанные параметры и возвращаемые значения, могут быть как указанного типа, так и null.

<?php

function testReturn(): ?string
{
    return 'elePHPant';
}

var_dump(testReturn());

function testReturn(): ?string
{
    return null;
}

var_dump(testReturn());

function test(?string $name)
{
    var_dump($name);
}

test('elePHPant');
test(null);
test();

Результат выполнения данного примера:

string(10) "elePHPant"
NULL
string(10) "elePHPant"
NULL
Uncaught Error: Too few arguments to function test(), 0 passed in...

Ничего не возвращающие функции

Был добавлени тип возвращаемого значения void. Функции с таким заданным типом возвращаемого значения не должны ничего возвращать. То есть либо вообще не содержать ни одного оператора return, либо использовать его без параметра. null не является корректным значением для возврата в таких функциях.

<?php
function swap(&$left, &$right) : void
{
    if ($left === $right) {
        return;
    }

    $tmp = $left;
    $left = $right;
    $right = $tmp;
}

$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);

Результат выполнения данного примера:

null
int(2)
int(1)

Попытка использовать возвращаемое значение таких функций приведет к тому, что это значение будет считаться за null, без вывода предупреждения. Причина этого в том, что предупреждения будут вызывать общих функций высшего порядка.

Симметричная деструктуризация массива

Можно использовать короткий синтаксис ([]) для деструктуризации массивов с целью присвоения (в том числе в foreach), как альтернатива функции list(), которая, впрочем, все еще поддерживается.

<?php
$data = [
    [1, 'Tom'],
    [2, 'Fred'],
];

// list() style
list($id1, $name1) = $data[0];

// [] style
[$id1, $name1] = $data[0];

// list() style
foreach ($data as list($id, $name)) {
    // logic here with $id and $name
}

// [] style
foreach ($data as [$id, $name]) {
    // logic here with $id and $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 "The last character of '$string' is '$string[-1]'.\n";
?>

Результат выполнения данного примера:

The last character of 'bar' is '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('some value');

Результат выполнения данного примера:

string(10) "some value"

Асинхронная обработка сигналов

Новая функция 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".


Новые функции

Ядро 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()

Сессии

  • 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) вызывает фатальную ошибку, вместо тихого преобразование переменной к массиву.

Удаленные 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".

Конструктор DateTime использует микросекунды

Теперь DateTime и DateTimeImmutable используют микросекунды при инстанциировании текущим временем, либо в явном виде, либо со строкой относительного времени (например "first day of next month"). Это означает, что сравнение двух подряд созданных экземпляров класса скорее будет возвращать FALSE нежели TRUE:

<?php
new DateTime() == new DateTime();
?>

Fatal errors to Error exceptions conversions

Для расширения Date, некорректные данные сериализации классов DateTime или DatePeriod, или ошибка инициализации временной зоны из сериализованных данных, будет выбрасываться исключение Error из методов __wakeup() или __set_state(), вместо вызова фатальной ошибки.

В расширении DBA, функции манипулирования данными (такие как dba_insert()) теперь будут выбрасывать исключение Error вместо вызова отлавливаемой фатальной ошибки если ключ не содержит ровно двух элементов.

В расширении DOM, некорректная проверка контекста схемы или RelaxNG теперь будут выбрасывать исключение Error вместо вызова фатальной ошибки. Также, попытки зарегистрировать класс узла, который не расширяет правильный базовый класс, попытки прочитать некорректное свойство или перезаписать свойство доступное только для чтения будут выбрасывать исключение Error.

В расширение IMAP, адрес email длинее 16385 байт теперь будет выбрасывать исключение Error вместо вызова фатальной ошибки.

Расширение Intl extension, при ошибке вызова родительского конструктора в классе, наследующем 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 вместо вызова фатальной ошибки.

В расширении Session, самописные обработчики сессии, которые не возвращают строку для идентификатора сессии будут выбрасывать исключение 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.

Кодирование и декодирование JSON

INI-настройка serialize_precision определяет точность сериализации при кодировании значений типа float.

Теперь декодирование пустого ключа приводит к появлению свойства с пустым именем, раньше имя свойства приводилось к значению _empty_.

<?php
var_dump(json_decode(json_encode(['' => 1])));

Результатом выполнения данного примера будет что-то подобное:

object(stdClass)#1 (1) {
  [""]=>
  int(1)
}

При передаче флага JSON_UNESCAPED_UNICODE в функцию json_encode(), последовательности U+2028 и U+2029 будут экранированы.

Изменение в семантике параметров mb_ereg() и mb_eregi()

Третий параметр функций mb_ereg() и mb_eregi() (regs) теперь устанавливается равным пустому массиву, если небыло найдено совпадений. Ранее, в таких случаях, он оставался неизменным.

Удалена поддержка потока sslv2

Поддержка потока sslv2 в OpenSSL удалена.


Функционал, объявленный устаревшим в PHP 7.1.x

ext/mcrypt

Расширение mcrypt не развивалось уже почти десять лет и, к тому же, было крайне сложным в использовании. Оно было объявлено устаревшим в пользу OpenSSL. Оно будет удалено из ядра PHP и перемещено в PECL в PHP 7.2.

Модификатор "e" для функций mb_ereg_replace() и mb_eregi_replace()

Модификатор шаблона e был объявлен устаревшим для функций mb_ereg_replace() и mb_eregi_replace().


Измененные функции

Ядро PHP

  • getopt() имеет третий, необязательный, параметр, в который записывается индекс, на котором остановилась обработка. Переменная в этот параметр передается по ссылке.
  • В getenv() больше не обязательно передавать параметр. Если параметр не задан, то вернутся все выставленные переменные окружения в виде ассоциативного массива.
  • get_headers() теперь имеет дополнительный параметр для разрешения передачи определенного пользователем потокового контекста.
  • long2ip() теперь принимает тип integer в качестве параметра.
  • 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()).


Прочие изменения

Замечания и предупреждения при выполнении арифметических операций с некорректными строками

Новые ошибки уровней E_WARNING и E_NOTICE были добавлены при использовании некорректных строк с операторами, ожидающими числа (+ - * / ** % << >> | & ^) и их эквивалентами с присваиванием. Ошибка уровня E_NOTICE выдается, когда строка начинается с цифр, но далее содержит не цифровые символы, и ошибка уровня E_WARNING выдается тогда, когда строка вообще не содержит цифр.

<?php
'1b' + 'something';

Результат выполнения данного примера:

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 будут игнорироваться.

Генерация идентификаторов сессий только с помощью CSPRNG

Идентификаторы сессий теперь создаются только с помощью CSPRNG.

Более информативное сообщение TypeError если допустим NULL

Теперь исключение TypeError для проверок типа arg_info предоставляет более информативное сообщение об ошибке. Если тип параметра или возвращаемого значения может быть NULL (если имеет значение NULL по умолчанию или в принципе является обнуляемым). Теперь в сообщении будет упомянуто "must be ... or null" или "must ... or be null."


Поддержка Windows

readline

Расширение readline поддерживается через библиотеку » WinEditLine. Тем самым, интерфейс оболочки CLI также поддерживается (php.exe -a).


Миграция из PHP 5.6.x к PHP 7.0.x

Содержание

  • Изменения, влекущие обратную несовместимость
  • Новый функционал
  • Функционал, объявленный устаревшим в PHP 7.0.x
  • Измененные функции
  • Новые функции
  • Новые классы и интерфейсы
  • Новые глобальные константы
  • Изменения в модулях SAPI
  • Удаленные расширения и SAPI
  • Other Changes

Несмотря на то, что PHP 7.0 является новой основной версии, были предприняты усилия, чтобы сделать миграцию максимально безболезненной. Этот релиз ориентирован, в основном, на удалении функциональных возможностей объявленных устаревшими в предыдущих версиях и улучшения согласованности языка.

Есть небольшое количество несовместимостей и новой функциональности, которые следует учитывать и тестировать прежде чем менять версию PHP в продакшене.

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x и 5.6.x.


Изменения, влекущие обратную несовместимость

Изменения в обработке ошибок и исключений

Многие фатальные и поправимые фатальные ошибки были переделаны в исключения в PHP 7. Эти исключения наследуют классу Error, который, в свою очередь, реализует интерфейс Throwable (новый базовый интерфейс, который наследуют все исключения).

Это означает, пользовательские обработчики ошибок могут не быть вызваны, потому что вместо вызова ошибки, будет брошено исключение (порождая новые фатальные ошибки из-за неперехваченных исключений класса Error).

Более подробное описание того, как ошибки работают в PHP 7, можно найти на странице ошибки PHP 7. Это руководство всего лишь перечисляет изменения, которые могут привести к обратной несовместимости.

set_exception_handler() больше не гарантирует получение объекта класса Exception

Код, реализующий регистрацию обработчика исключений с помощью set_exception_handler(), используя декларацию типа Exception, вызовет фатальную ошибку, если будет брошено исключение Error.

Если требуется работа обработчика в PHP 5 и 7, вы должны убрать декларацию класса из перехватчика. Если код предполагается использовать только в PHP 7, то можно просто поменять тип с Exception на Throwable.

<?php
// Только PHP 5. В PHP 7 может вызвать фатальную ошибку.
function handler(Exception $e) { ... }
set_exception_handler('handler');

// Будет работать PHP 5 и 7.
function handler($e) { ... }

// Только PHP 7.
function handler(Throwable $e) { ... }
?>

Встроенные конструкторы всегда вызывают исключения в случае неудачи

Ранее, некоторые встроенные конструкторы могли вернуть NULL или бесполезный объект, в случае ошибки. Все встроенные классы теперь в таком случае будут бросать исключение Exception, ровно как это уже делают пользовательские классы.

Ошибки разбора бросают исключение класса ParseError

Ошибки разбора бросают исключение класса ParseError. Обработка ошибок eval() должна включать в блок catch, который будет ловить эту ошибку.

Изменение строгости сообщений E_STRICT

Все сообщения E_STRICT переквалифицированы по другим уровням. Константа E_STRICT сохранена, так что error_reporting(E_ALL|E_STRICT) не вызовет ошибки.

Изменение строгости сообщений E_STRICT
Ситуация | Новый уровень/поведение
Индексирование ресурсом | E_NOTICE
Aбстрактные статические методы | Сообщение убрано, не вызывает ошибки
"Переопределение" конструктора | Сообщение убрано, не вызывает ошибки
Несоблюдение сигнатуры при наследовании | E_WARNING
Одинаковые (совместимые) свойства в двух разных трейтах | Сообщение убрано, не вызывает ошибки
Нестатический доступ к статическому свойству | E_NOTICE
Только переменные могут быть присвоены по ссылке | E_NOTICE
Только переменные могут быть переданы по ссылке | E_NOTICE
Вызов нестатического метода статически | E_DEPRECATED

Изменения в обработке переменных

PHP 7 использует абстрактное синтаксическое дерево при разборе файлов с исходным кодом. Это позволило внести множество улучшений в язык, которые ранее были невозможны из-за ограничений парсера, использовавшегося в предыдущих версиях PHP, но привело к удалению некоторых особых возможностей, по соображениям согласованности, и это поломало обратную совместимость. Описание этих особых случаев приведено в этой секции.

Изменения в обработке непрямых переменных, свойств и методов

Непрямой доступ к переменным, свойствам и методам теперь раскрывается строго слева-направо, в противовес предыдущему миксу из специальных правил. В таблице представлены изменения в порядке раскрытия.

Old and new evaluation of indirect expressions
Выражение | Интерпретация 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.

Изменение в обработке 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)
}

global принимает только простые переменные

Переменные переменные больше не могут быть использованы с ключевым словом global. Для эмуляции предыдущего поведения необходимо использовать фигурные скобки:

<?php
function f() {
    // Работает только в PHP 5.
    global $$foo->bar;

    // Работает в PHP 5 и 7.
    global ${$foo->bar};
}
?>

Основной принцип - не использовать global с чем либо отличающемся от голой переменной.

Скобки вокруг аргументов функции более ни на что не влияют

В PHP 5, при использовании избыточных скобок вокруг аргументов функции не выводило предупреждения, когда аргумент передавался по ссылке. Теперь предупреждение выводится всегда.

<?php
function getArray() {
    return [1, 2, 3];
}

function squareArray(array &$a) {
    foreach ($a as &$v) {
        $v **= 2;
    }
}

// Выведет предупреждение в PHP 7.
squareArray((getArray()));
?>

Результат выполнения данного примера:

Notice: Only variables should be passed by reference in /tmp/test.php on line 13

Изменения foreach

Небольшие изменения были внесены в поведение управляющей структуры foreach. Основное изменение касается модификации итерируемого массива и обработки его внутреннего указателя.

foreach больше не изменяет внутренний указатель массива

До PHP 7, в процессе итерации массива в foreach, его внутренний указатель изменялся. В примере ниже показано, что это поведение изменено:

<?php
$array = [0, 1, 2];
foreach ($array as &$val) {
    var_dump(current($array));
}
?>

Результат выполнения данного примера в PHP 5:

int(1)
int(2)
bool(false)

Результат выполнения данного примера в PHP 7:

int(0)
int(0)
int(0)

foreach по значениям оперирует копией массива

Если foreach используется для стандартного перебора по значению, то он оперирует копией массива, а не самим массивом. Это значит, что изменения внесенные в массив внутри цикла не затронут перебираемые значения.

Для foreach по ссылке улучшили поведение при итерации

Когда foreach используется для перебора по ссылке, он будет лучше отслеживать изменения, вносимые в массив в процессе итерации. К примеру, добавление элементов к итерируемому массиву приведет к тому, что эти новые элементы попадут в перебор:

<?php
$array = [0];
foreach ($array as &$val) {
    var_dump($val);
    $array[1] = 1;
}
?>

Результат выполнения данного примера в PHP 5:

int(0)

Результат выполнения данного примера в PHP 7:

int(0)
int(1)

Итерация объектов не реализующих Traversable

Итерация объектов не реализующих Traversable теперь происходит так же, как и итерация массива по ссылке. Так получается вследствие того, что улучшения поведения при изменении массива во время итерации также влияет при добавлении или удалении свойств объекта.

Изменение в обработке значений типа integer

Некорретная восьмеричная нотация

Ранее, восьмиричные литералы, содержащие некорректные числы молча обрезались (0128 считались за 012). Сейчас же, в таких случаях, будет выдана ошибка разбора.

Отрицательные побитовые смещения

Теперь, побитовые смещения на отрицательную величину, будут бросать исключение ArithmeticError:

<?php
var_dump(1 >> -1);
?>

Результат выполнения данного примера в PHP 5:

int(0)

Результат выполнения данного примера в PHP 7:

Fatal error: Uncaught ArithmeticError: Bit shift by negative number in /tmp/test.php:2
Stack trace:
#0 {main}
  thrown in /tmp/test.php on line 2

Побитовые смещения с выходом из допустимого диапазона

Побитовые смещения (в обоих направлениях) за пределы ширины типа integer будут всегда возвращать 0. Ранее, поведение определялось архитектурой машины.

Изменение в делении на ноль

Ранее, в случае использования ноля в качестве делителя в операциях "деление" (/) и "деление по модулю" (%) приводило к ошибке уровня E_WARNING и возврату значения false. Теперь же, оператор деления возвращает число с плавающей запятой, равное +INF, -INF, или NAN, как определено в IEEE 754. Деление по модулю, вместо ошибки уровня E_WARNING, бросает исключение DivisionByZeroError.

<?php
var_dump(3/0);
var_dump(0/0);
var_dump(0%0);
?>

Результат выполнения данного примера в PHP 5:

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Warning: Division by zero in %s on line %d
bool(false)

Результат выполнения данного примера в PHP 7:

Warning: Division by zero in %s on line %d
float(INF)

Warning: Division by zero in %s on line %d
float(NAN)

PHP Fatal error:  Uncaught DivisionByZeroError: Modulo by zero in %s line %d

Изменения в обработке строк

Шестнадцатеричные строки более не считаются за числовые

Строки, содержащие шестнадцатиричные символы более не считаются за числовые. Пример:

<?php
var_dump("0x123" == "291");
var_dump(is_numeric("0x123"));
var_dump("0xe" + "0x1");
var_dump(substr("foo", "0x1"));
?>

Результат выполнения данного примера в PHP 5:

bool(true)
bool(true)
int(15)
string(2) "oo"

Результат выполнения данного примера в PHP 7:

bool(false)
bool(false)
int(0)

Notice: A non well formed numeric value encountered in /tmp/test.php on line 5
string(3) "foo"

Используйте функцию filter_var() для проверки строки на содержание шестнадцатеричного числа, и преобразования этой строки к значению типа integer:

<?php
$str = "0xffff";
$int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX);
if (false === $int) {
    throw new Exception("Invalid integer!");
}
var_dump($int); // int(65535)
?>

\u{ может вызывать ошибки

В связи с добавлением нового синтаксиса экранирования кодов Unicode, строки, содержащие строку \u{, предворяющую некорректную последовательность, может привести к фатальной ошибке. Для того, чтобы этого избежать, необходимо экранировать первый обратный слеш.

Удаленные функции

call_user_method() и call_user_method_array()

Функции объявленные устаревшими в PHP 4.1.0 в пользу call_user_func() и call_user_func_array(). Возможно ват также будет интересно посмотреть Обращение к функциям через переменные и/или оператор ....

Все функции ereg*

Все функции ereg удалены. Рекомендованная альтернатива - PCRE.

Псевдонимы mcrypt

Устаревшая функция mcrypt_generic_end() была удалена в пользу функции mcrypt_generic_deinit().

Дополнительно, устаревшие функции mcrypt_ecb(),
mcrypt_cbc(), mcrypt_cfb() и
mcrypt_ofb() в пользу функции mcrypt_decrypt(),
используюмую с соответствующими константами
MCRYPT_MODE_*.

Все функции расширения mysql

Все функции ext/mysql были удалены. Для выбора альтернативного MySQL API, читайте раздел Выбор MySQL API.

Все функции расширения mssql

Все функции ext/mssql были удалены. Список альтернатив смотрите в разделе Введение в MSSQL.

Псевдонимы intl

Устаревшие псевдонимы datefmt_set_timezone_id() и
IntlDateFormatter::setTimeZoneID() были удалены
в пользу функций datefmt_set_timezone() и
IntlDateFormatter::setTimeZone(), соответственно.

set_magic_quotes_runtime()

set_magic_quotes_runtime(), наряду с ее псевдонимом magic_quotes_runtime(), были удалены. Они были объявлены устаревшими в PHP 5.3.0, и полностью потеряли свой смысл с отказом от волшебных кавычек в в PHP 5.4.0.

set_socket_blocking()

Устаревший псевдоним set_socket_blocking() был удален в пользу stream_set_blocking().

dl() в PHP-FPM

Функция dl() больше не может использоваться в PHP-FPM. Однако она сохранилась в CLI и встроенных SAPI.

Функции GD Type1

Поддержка шрифтов PostScript Type1 удалена из расширения GD. Соответственно были удалены следующие функции:

  • imagepsbbox()
  • imagepsencodefont()
  • imagepsextendfont()
  • imagepsfreefont()
  • imagepsloadfont()
  • imagepsslantfont()
  • imagepstext()

Вместо них рекомендуется использовать шрифты TrueType и связанные с ними функции.

Удаленные директивы INI-файла

Удаленные возможности

Следующие директивы настроечного INI-файла были удалены с соответствующими им возможностями:

  • always_populate_raw_post_data
  • asp_tags

xsl.security_prefs

Директива xsl.security_prefs была удалена. Вместо нее, для контроля настроек безопасности, используйте вызов метода на уровне препроцессоре.

Прочие изменения, затрагивающие обратную совместимость

Новые объекты не могут присваиваться по ссылке

Результат оператора 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

Удалены теги ASP и script PHP

Удалена поддержка использования тегов 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.

Порядок сортировки одинаковых элементов

Внутренний алгоритм сортировки был изменен, что может сказаться на отличном от предыдущего отсортированном порядке элементов, определенных как одинаковые.

Замечание:

Не полагайтесь на порядок одинаковых элементов, так как он может в любое время измениться.


Новый функционал

Декларация скалярных типов

Декларация скалярных типов введена в двух вариантах: принуждающая (по умолчанию) и строгая. Следующие типы могут использоваться для декларации параметров (в обоих вариантах): строки (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

Был добавлен оператор объединения с nul (??), являющийся синтаксическим сахаром для достаточно распространенного действия, когда совместно используются тернарный оператор и функция 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
$getXCB = function() {return $this->x;};
$getX = $getXCB->bindTo(new A, 'A'); // промежуточное замыкание
echo $getX();

// PHP 7+
$getX = function() {return $this->x;};
echo $getX->call(new A);

Результат выполнения данного примера:

1
1

unserialize() с фильтрацией

Этот функционал обеспечивает более высокий уровень безопасности при десериализации объектов с непроверенными данными. Это позволяет предотвратить возможную инъекцию кода, позволяя разработчику использовать белый список классов для десериализации.

<?php

// Преобразование всех объектов в into __PHP_Incomplete_Class
$data = unserialize($foo, ["allowed_classes" => false]);

// Преобразование всех объектов кроме MyClass и MyClass2 в __PHP_Incomplete_Class
$data = unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]]);

// Поведение по умолчанию принимает все классы (можно просто не задавать второй аргумент)
$data = unserialize($foo, ["allowed_classes" => true]);

IntlChar

Новый класс IntlChar добавляет новую функциональность в ICU. Класс определяет несколько статических методов и констант для манипулирования символами Unicode.

<?php

printf('%x', IntlChar::CODEPOINT_MAX);
echo IntlChar::charName('@');
var_dump(IntlChar::ispunct('!'));

Результат выполнения данного примера:

10ffff
COMMERCIAL AT
bool(true)

Для использования это класса необходимо установить расширение Intl.

Ожидания

Ожидания являются улучшенной, обратно совместимой версией старой функции assert(). Они позволяют делать предположения с нулевой стоимостью в промышленном коде и предоставляют возвожность выбрасывать пользовательские исключения в случае провала ожидания.

Вместе тем, что старое API поддерживается, assert() теперь является языковой конструкцией, принимающей первым аргументом выражения, а не только строки для оценки или логические значения для проверки.

<?php
ini_set('assert.exception', 1);

class CustomError extends AssertionError {}

assert(false, new CustomError('Some error message'));
?>

Результат выполнения данного примера:

Fatal error: Uncaught CustomError: Some error message

Подробное описание этого функционала, а так же инструкции для его конфигурирования для тестовых и промышленных сред, ситайте в секции Ожидания раздела посвященному 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 'I am the constructor';
    }
}
?>

Результат выполнения данного примера:

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 'I am not static!';
    }
}

foo::bar();
?>

Результат выполнения данного примера:

Deprecated: Non-static method foo::bar() should not be called statically in - on line 8
I am not static!

Опция 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 Core

  • 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() возвращает пустую строку, если start равно длине строки.
  • xml_set_object() теперь требует ручного удаления (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


Other Changes

Ослабление ограничения зарезервированных слов

Глобально зарезервированные слова теперь разрешено использовать для свойств, констант и методов в классах, интерфейсах и трейтах. Это уменьшает масштабы проблем обратной совместимости при вводе новых ключевых слов и позволяет избежать ограничений для 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

Содержание

  • Изменения ломающие обратную совместимость
  • Новые возможности
  • Deprecated features in PHP 5.6.x
  • Измененные функции
  • Новые функции
  • OpenSSL changes in PHP 5.6.x
  • Другие изменения в расширениях
  • Новые глобальные константы

Большинство изменений в PHP 5.6.x никак не скажутся на существующем коде. Есть несколько несовместимостей и новых особенностей, которые должны быть учтены. Также необходимо протестировать код перед проведением миграции в промышленных средах.

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x и 5.5.x.


Изменения ломающие обратную совместимость

Несмотря на то, что большая часть существующего кода PHP 5 должна работать без изменений, все же ознакомьтесь с некоторыми изменениями, которые могут сказаться на обратной совместимости:

Ключи массива не будут перезаписаны при определении массива как свойства класса через литерал массива

Ранее, в массивах заданных как свойства класса со смешанными явными и неявными ключами, элементы с явно заданными ключами могли молча перезаписаться, если явный ключ пересекался с последовательностью неявных ключей. Например:

<?php
class C {
    const ONE = 1;
    public $array = [
        self::ONE => 'foo',
        'bar',
        'quux',
    ];
}

var_dump((new C)->array);
?>

Результат выполнения данного примера в PHP 5.5:

array(2) {
  [0]=>
  string(3) "bar"
  [1]=>
  string(4) "quux"
}

Результат выполнения данного примера в PHP 5.6:

array(3) {
  [1]=>
  string(3) "foo"
  [2]=>
  string(3) "bar"
  [3]=>
  string(4) "quux"
}

Строгость json_decode()

Теперь json_decode(), в соответствии со спецификацией JSON, отвергает варианты JSON литералов true, false и null заданные не строго в нижнем регистре, и, соответственно, устанавливает json_last_error(). Ранее, данные передаваемые в json_decode() и содержащие исключительно одно из этих значений в верхнем или смешанном регистре, принимались.

Это изменение повлияет только в случае передачи в json_decode() некорректного JSON. В случае корректно сформированного JSON, никакого влияния не будет.

Теперь потоковые обертки по умолчанию проверяют сертификаты точек при использовании SSL/TLS

Все шифруемые клиентские потоки теперь по умолчанию включают проверку пиров. По умолчанию используется OpenSSL CA пакет для проверки сертификата пира. В большинстве случаев не требуется ничего делать для соединения с серверами с правильным SSL сертификатом, так как обычно OpenSSL уже настроен для использования хороших CA пакетов.

Стандартный CA пакет может быть переопределен глобально с помощью установки или openssl.cafile или openssl.capath строк конфигурации, или же на уровне каждого запроса используя опции контекста cafile или capath.

Хотя это и не рекомендуется, но можно отклчить проверку сертификата пира для запроса, установив verify_peer опцию контекста в FALSE, и можно отключить проверку имени пира, установив verify_peer_name в FALSE.

Теперь ресурсы GMP являются объектами

Теперь ресурсы GMP является объектами. Функциональное API реализованное в расширении GMP осталось без изменений. Существующий код должен заработать без изменений, только если в нем не использовались проверки на ресурс is_resource() и подобные.

Теперь функция Mcrypt требует корректные ключи и IV

mcrypt_encrypt(), mcrypt_decrypt(), mcrypt_cbc(), mcrypt_cfb(), mcrypt_ecb(), mcrypt_generic() и mcrypt_ofb() больше не принимают ключи и IV с некорректной длиной, и режимы блочного шифра, требующие IV, будут завершаться с ошибкой, если его не передать.

Загрузка файлов с помощью cURL

Теперь загрузка с использованием синтаксиса @file требует установки CURLOPT_SAFE_UPLOAD в значение FALSE. Вместо этого следует использовать CURLFile.


Новые возможности

Константные выражения

Теперь стало возможно представить скалярное выражение, включающее цифровой и строковые литералы и/или константы, в то время где ранее ожидалось статическое значение, например, в объявлениях констант или значениях агрументов функцуий по-умолчанию.

<?php
const ONE = 1;
const TWO = ONE * 2;

class C {
    const THREE = TWO + 1;
    const ONE_THIRD = ONE / self::THREE;
    const SENTENCE = 'The value of THREE is '.self::THREE;

    public function f($a = ONE + self::THREE) {
        return $a;
    }
}

echo (new C)->f()."\n";
echo C::SENTENCE;
?>

Результат выполнения данного примера:

4
The value of THREE is 3

Также можно определить массив array с использованием ключевого слова const:

<?php
const ARR = ['a', 'b'];

echo ARR[0];
?>

Результат выполнения данного примера:

a

Функции с переменным количеством аргументов используя синтаксис ...

Функции с переменным количеством аргументов теперь можно реализовывать используя оператор ..., вместо того, чтобы полагаться на func_get_args().

<?php
function f($req, $opt = null, ...$params) {
    // $params is an array containing the remaining arguments.
    printf('$req: %d; $opt: %d; number of params: %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; number of params: 0
$req: 1; $opt: 2; number of params: 0
$req: 1; $opt: 2; number of params: 1
$req: 1; $opt: 2; number of params: 2
$req: 1; $opt: 2; number of params: 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(), могут быть использованы для обработки асинхронных соединений и запросов.


Deprecated features in PHP 5.6.x

Calls from incompatible context

Методы, вызываемые из несовместимого контекста объявлены устаревшими, и будут вызывать ошибку уровня 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() больше не блокируются до
завершения записи запроса, если нижележащий поток сокета для соединения с базой
данных находится в неблокирующем режиме.

Отражение

  • ReflectionClass::newInstanceWithoutConstructor() теперь позволяет инстациировать нефинализированные внутренние классы.

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

  • session_abort()
  • session_reset()

Zip

  • ZipArchive::setPassword()


OpenSSL changes in PHP 5.6.x

Stream wrappers now verify peer certificates and host names by default when using SSL/TLS

Все шифруемые клиентские потоки теперь по умолчанию включают проверку пиров. По умолчанию используется OpenSSL CA пакет для проверки сертификата пира. В большинстве случаев не требуется ничего делать для соединения с серверами с правильным SSL сертификатом, так как обычно OpenSSL уже настроен для использования хороших CA пакетов.

Стандартный CA пакет может быть переопределен глобально с помощью установки или openssl.cafile или openssl.capath строк конфигурации, или же на уровне каждого запроса используя опции контекста cafile или capath.

Хотя это и не рекомендуется, но можно отклчить проверку сертификата пира для запроса, установив verify_peer опцию контекста в FALSE, и можно отключить проверку имени пира, установив verify_peer_name в FALSE.

Certificate fingerprints

Support has been added for extracting and verifying certificate fingerprints. openssl_x509_fingerprint() has been added to extract a fingerprint from an X.509 certificate, and two SSL stream context options have been added: capture_peer_cert to capture the peer's X.509 certificate, and peer_fingerprint to assert that the peer's certificate should match the given fingerprint.

Default ciphers updated

The default ciphers used by PHP have been updated to a more secure list based on the » Mozilla cipher recommendations, with two additional exclusions: anonymous Diffie-Hellman ciphers, and RC4.

This list can be accessed via the new OPENSSL_DEFAULT_STREAM_CIPHERS constant, and can be overridden (as in previous PHP versions) by setting the ciphers context option.

Compression disabled by default

SSL/TLS compression has been disabled by default to mitigate the CRIME attack. PHP 5.4.13 added a disable_compression context option to allow compression to be disabled: this is now set to TRUE (that is, compression is disabled) by default.

Allow servers to prefer their cipher order

The honor_cipher_order SSL context option has been added to allow encrypted stream servers to mitigate BEAST vulnerabilities by preferring the server's ciphers to the client's.

Access the negotiated protocol and cipher

The protocol and cipher that were negotiated for an encrypted stream can now be accessed via stream_get_meta_data() or stream_context_get_options() when the capture_session_meta SSL context option is set to 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"
}

New options for perfect forward secrecy in encrypted stream servers

Encrypted client streams already support perfect forward secrecy, as it is generally controlled by the server. PHP encrypted server streams using certificates capable of perfect forward secrecy do not need to take any additional action to enable PFS; however a number of new SSL context options have been added to allow more control over PFS and deal with any compatibility issues that may arise.

ecdh_curve

This option allows the selection of a specific curve for use with ECDH ciphers. If not specified, prime256v1 will be used.

dh_param

A path to a file containing parametrs for Diffie-Hellman key exchange, such as that created by the following command:

openssl dhparam -out /path/to/my/certs/dh-2048.pem 2048
single_dh_use

If set to TRUE, a new key pair will be created when using Diffie-Hellman parameters, thereby improving forward secrecy.

single_ecdh_use

If set to TRUE, a new key pair will always be generated when ECDH cipher suites are negotiated. This improves forward secrecy.

SSL/TLS version selection

It is now possible to select specific versions of SSL and TLS via the crypto_method SSL context option or by specifying a specific transport when creating a stream wrapper (for example, by calling stream_socket_client() or stream_socket_server()).

The crypto_method SSL context option accepts a bitmask enumerating the protocols that are permitted, as does the crypto_type of stream_socket_enable_crypto().

Selected protocol versions and corresponding options
Protocol(s) | Client flag | Server flag | Transport
Any TLS or SSL version | STREAM_CRYPTO_METHOD_ANY_CLIENT | STREAM_CRYPTO_METHOD_ANY_SERVER | ssl://
Any TLS version | 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

// Requiring TLS 1.0 or better when using file_get_contents():
$ctx = stream_context_create([
    'ssl' => [
        'crypto_method' => STREAM_CRYPTO_METHOD_TLS_CLIENT,
    ],
]);
$html = file_get_contents('https://google.com/', false, $ctx);

// Requiring TLS 1.1 or 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);

// Connecting using the tlsv1.2:// stream socket transport.
$sock = stream_socket_client('tlsv1.2://google.com:443/');

?>

openssl_get_cert_locations() added

The openssl_get_cert_locations() function has been added: it returns the default locations PHP will search when looking for CA bundles.

<?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 support

Support has been added for generating, extracting and verifying signed public key and challenges (SPKAC). openssl_spki_new(), openssl_spki_verify(), openssl_spki_export_challenge(), and openssl_spki_export() have been added to create, verify export PEM public key and associated challenge from SPKAC's generated from a KeyGen HTML5 element.

openssl_spki_new

Generates a new SPKAC using private key, challenge string and hashing algorithm.

<?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

Verifies provided 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

Exports associated challenge from provided 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

Exports the PEM formatted RSA public key from SPKAC.

<?php
$pkey = openssl_pkey_new();
openssl_pkey_export($pkey, 'secret passphrase');

$spkac = openssl_spki_new($pkey, 'challenge string');
echo openssl_spki_export($spkac);
?>

Результат выполнения данного примера:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcvQh9SKOPv4DwI8LwSaFx02h7
l9QCiDs6sF2GfsSTEUG61SnjQ/v4uJiLKBgbVOagj9rkSCwtTez23ATPeGaBj2Zg
ipv+tv5IXyqUP8ropXJQ5ELtbXPUN/gvw7cO5EbPHr/7eMhbpw8Gl+AfWxW5hLW8
MGw/+AwwjHBOwong/QIDAQAB
-----END PUBLIC KEY-----


Другие изменения в расширениях

cURL

Ряд констант, помеченные как устаревшие в библиотеке cURL, теперь будут удалены:

  • CURLOPT_CLOSEPOLICY
  • CURLCLOSEPOLICY_CALLBACK
  • CURLCLOSEPOLICY_LEAST_RECENTLY_USED
  • CURLCLOSEPOLICY_LEAST_TRAFFIC
  • CURLCLOSEPOLICY_OLDEST
  • CURLCLOSEPOLICY_SLOWEST

OCI8

  • Поддержка неявных наборов результатов для Oracle Database 12c была добавлена с помощью новой функции oci_get_implicit_resultset().
  • С помощью oci_execute($s, OCI_NO_AUTO_COMMIT), для SELECT больше необязательно инициировать внутренний ROLLBACK во время закрытия соединения.
  • Добавлены зонды DTrace, контролируемые с помощью опции конфигурации --enable-dtrace.
  • oci_internal_debug() теперь ничего не делает.
  • Формат вывода функции phpinfo() для OCI8 изменился.

Zip

Добавлена опция конфигурации --with-libzip, для использования системной библиотеки libzip. Требуется как минумум libzip версий 0.11, рекомендуется 0.11.2 или более поздняя.

MySQLi

В mysqli.rollback_on_cached_plink была добавлена опция ??переподключения пула соединений.


Новые глобальные константы

GD

  • IMG_WEBP (с PHP 5.6.25)

LDAP

  • LDAP_ESCAPE_DN
  • LDAP_ESCAPE_FILTER

OpenSSL

  • OPENSSL_DEFAULT_STREAM_CIPHERS
  • STREAM_CRYPTO_METHOD_ANY_CLIENT
  • STREAM_CRYPTO_METHOD_ANY_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_0_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_1_SERVER
  • STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
  • STREAM_CRYPTO_METHOD_TLSv1_2_SERVER

PostgreSQL

  • PGSQL_CONNECT_ASYNC
  • PGSQL_CONNECTION_AUTH_OK
  • PGSQL_CONNECTION_AWAITING_RESPONSE
  • PGSQL_CONNECTION_MADE
  • PGSQL_CONNECTION_SETENV
  • PGSQL_CONNECTION_SSL_STARTUP
  • PGSQL_CONNECTION_STARTED
  • PGSQL_DML_ESCAPE
  • PGSQL_POLLING_ACTIVE
  • PGSQL_POLLING_FAILED
  • PGSQL_POLLING_OK
  • PGSQL_POLLING_READING
  • PGSQL_POLLING_WRITING


Переход с PHP 5.4.x на PHP 5.5.x

Содержание

  • Что поменялось в PHP 5.5.x
  • Изменения ломающие обратную совместимость
  • Новые возможности
  • Особенности признаные устаревшими в PHP 5.5.x
  • Измененные функции
  • Новые функции
  • Новые классы и интерфейсы
  • Новые методы
  • Прочие изменения в расширениях
  • Новые глобальные константы
  • Изменения в обработке INI-файла
  • Внутренние изменения PHP

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.6.x, и 7.0.x.


Что поменялось в PHP 5.5.x

Большинство изменений в PHP 5.5.x никак не повлияет на существющий код. Есть несколько несовместимостей и новых возможностей, на которые надо обратить внимание. Также, перед миграцией в промышленных средах, необходимо сперва протестировать код.

Для систем, обновляющихся с более старых версий PHP, существуюет соответствующая документация:

  • Замечания по обновлению для PHP 5.4.x.
  • Замечания по обновлению для PHP 5.3.x.
  • Замечания по обновлению для PHP 5.2.x.
  • Замечания по обновлению для PHP 5.1.x.
  • Переход с PHP 4 на PHP 5.


Изменения ломающие обратную совместимость

Не смотря на то, что практически весь существующий код не заметит перехода, все же следует обратить внимание на некоторые изменения, ломающие обратную совместимость:

Прекращена поддержка Windows XP и 2003

Прекращена поддержка Windows XP и 2003. Сборки под Windows теперь требуют минимум Windows Vista.

Регистронезависимость теперь является зависимой от локали

Все регистронезависимые сравнения для функций, классов и имен констант теперь реализованы в независимой от локали манеде в соответствии с правилами ASCII. Это улучшает поддержку языков, использующих латинский алфавит с необычными правилами сравнения, например Турецкий и Азербаджанский.

Это изменение может вызвать проблемы в коде использующем регистронезависимое сравнение для не-ASCII символов в многобайтовых кодировках (включая UTF-8), такие как акцентированные символы в многих европейских языках. Если у вас в кодовой базе используются не английские, не ASCII символы, обратите особое внимание на это изменение перед миграцией промышленных сред на PHP 5.5.

Изменения pack() и unpack()

Функции pack() и unpack() были изменены так, что бы они стали более совместимы с Perl:

  • pack() теперь поддерживает код форматирования "Z", который ведет себя аналогично "a".
  • unpack() теперь поддерживает код форматирования "Z" для строк дополненных NULL и ведет себя так, как ранее вела при использовании "a": обрезает NULL-байты в конце строки.
  • unpack() теперь сохраняет NULL-байты в конце строки при использовании кода формата "a".
  • unpack() теперь обрезает все пробельные символы ASCII при использовании кода формата "A".

Написание обратно-совместимого кода использующего код формата "a" в функции unpack(), потребует использования функции version_compare(), иначе обратная совместимость поломается.

Пример:

<?php
// Старый код:
$data = unpack('a5', $packed);

// Новый код:
if (version_compare(PHP_VERSION, '5.5.0-dev', '>=')) {
  $data = unpack('Z5', $packed);
} else {
  $data = unpack('a5', $packed);
}
?>

self, parent и static теперь всегда регистронезависимы

До PHP 5.5, были случаи, когда ключевые слова self, parent, и static обрабатывались регистрозависимо. Эта проблема была исправлена, и теперь эти слова всегда обрабатываются регистронезависимо: SELF::CONSTANT теперь всегда идентично self::CONSTANT.

Удалены GUID логотипов PHP

GUID (внутренние идентификаторы изображения) использовавшиеся ранее для вывода различных логотипов PHP теперь удалены. Также удалены функции, которые позволяли их получать. Удаленные функции:

  • php_logo_guid()
  • php_egg_logo_guid()
  • php_real_logo_guid()
  • zend_logo_guid()

Изменения внутреннего исполнения

Авторы расширений должны обрптить внимание, что функция zend_execute() более не может быть переопределена, и что некоторое количество изменений внесено в структуру execute_data и в работающие с ней функции и методы обработки байт-кода.

Большинство авторов расширений вряд ли будут затронуты, но те, кто пишет расширения сильно затрагивающие движек Zend должны ознакомиться с замечаниями по этому изменению.


Новые возможности

Добавлены Генераторы

Была добавлена поддержка генераторов использующих ключевое слово yield. Генераторы предоставляют простое решение для реализации простых итераторов без просадки производительности и создания полноценного класса реализующего интерфейс Iterator.

Простой пример реализации итератора из функции range() (по крайней мере, для положительных значений step):

<?php
function xrange($start, $limit, $step = 1) {
    for ($i = $start; $i <= $limit; $i += $step) {
        yield $i;
    }
}

echo 'Нечетные числа меньше 10: ';

/*
 * Никакого массива создано и возвращено не будет,
 * все сохраняется в памяти.
 */
foreach (xrange(1, 9, 2) as $number) {
    echo "$number ";
}

echo "\n";
?>

Результат выполнения данного примера:

Нечетные числа меньше 10: 1 3 5 7 9

Добавлено ключевое слово finally

Блоки try-catch теперь поддерживают блок finally, который будет выполнен в любом случае, было ли выброшено исключение или нет.

Новое API хеширования паролей

Новое API хеширования паролей позволяет более просто создавать и управлять безопасными хешами паролей и базируется на той же библиотеке, что и функция crypt(). Подробности можно узнать в документации к функции password_hash().

foreach теперь поддерживает list()

Цикл foreach теперь поддерживает распаковку вложенных массивов в отдельные переменные с помощью конструкции list(). К примеру:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b)) {
    echo "A: $a; B: $b\n";
}
?>

Результат выполнения данного примера:

A: 1; B: 2
A: 3; B: 4

Более подробно это нововведение описано на странице посвященной foreach.

empty() поддерживает произвольные выражения

Реализована возможность передавать произвольные выражения в empty(). Пример:

<?php
function always_false() {
    return false;
}

if (empty(always_false())) {
    echo "Это будет напечатано.\n";
}

if (empty(true)) {
    echo "Это не будет напечатано.\n";
}
?>

Результат выполнения данного примера:

Это будет напечатано.

Литералы array и string разыменовываются

Литералы array и string теперь могут быть разыменованы напрямую для доступа к конкретным элементам и символам:

<?php
echo 'Разыменовывание массива: ';
echo [1, 2, 3][0];
echo "\n";

echo 'Разыменовывание строки: ';
echo 'PHP'[0];
echo "\n";
?>

Результат выполнения данного примера:

Разыменовывание массива: 1
Разыменовывание строки: P

Разрешение имен класса с помощью ::class

Теперь можно использовать конструкцию ClassName::class для получения полностью определенного имени класса ClassName. К примеру:

<?php
namespace Name\Space;
class ClassName {}

echo ClassName::class;

echo "\n";
?>

Результат выполнения данного примера:

Name\Space\ClassName

Добавлено расширение OPcache

Был добавлен кеш байткода Zend Optimiser+ в новомрасширении OPcache extension. OPcache увеличивает производительность PHP путем кеширования прекомпилированный байткод скрипта в разделяемой памяти, что позволяет избежать загрузки и компиляции одних и тех же скриптов при каждом к ним обращении. Читайте инструкции по установке для более полной информации об установке и использовании OPcache.

foreach теперь поддерживает не скалярные ключи

foreach теперь поддерживает ключи любого типа. Так как не скалярные ключи не могут возникнуть в обычном массиве, эту функциональность можно использовать с методом Iterator::key(), который может вернуть значение любого типа. Теперь эти значения будут обрабатываться корректно.

Поддержка обработчика Apache 2.4 под Windows

SAPI обработчик Apache 2.4 теперь поддерживается в Windows.

Улучшения в GD

Несколько улучшений добавлено в расширение GD:

  • Поддержка зеркального отражения с помощью новой функции imageflip().
  • Продвинутые возможности обрезки с помощью новых функций imagecrop() и imagecropauto().
  • Поддержка чтения и записи WebP с помощью функций imagecreatefromwebp() и imagewebp() соответственно.


Особенности признаные устаревшими в PHP 5.5.x

Расширение ext/mysql признано устаревшим

Оригинальное расширение MySQL признано устаревшим и будет выдавать ошибку уровня E_DEPRECATED при установлении соединения с базой данных. Вместо него используйте расширения MySQLi или PDO_MySQL.

preg_replace(), модификатор /e

Использование в функции preg_replace() модификатора /e объявлено устаревшим. В качестве альтернативы используйте функцию preg_replace_callback().

intl

IntlDateFormatter::setTimeZoneID() и
datefmt_set_timezone_id() признаны
устаревшими. Используйте метод IntlDateFormatter::setTimeZone()
и функцию datefmt_set_timezone(), соответственно.

mcrypt

Следующие функции признаны устаревшими:

  • mcrypt_cbc()
  • mcrypt_cfb()
  • mcrypt_ecb()
  • mcrypt_ofb()


Измененные функции

Ядро PHP

  • set_error_handler() теперь может быть вызвана с параметром NULL, что сбросит установленные ранее обработчики.
  • Если вызвать set_error_handler() и set_exception_handler() с параметром NULL, они вернут последний обработчик ошибки или исключения соответственно.
  • json_encode() теперь принимает параметр depth.
  • Поведение pack() и unpack() с кодами формата "a" и "A" изменено. Детальное описание данного изменения.

intl

  • MessageFormatter::format() и сопутствующие функции теперь принимают именованные аргументы и смешанные числовые и именованные аргументы, когда PHP слинкован с ICU 4.8 или выше.
  • MessageFormatter::format() и сопутствующие функции больше не генерируют ошибку, если передано недостаточное количество аргументов. Вместо этого, поля для замещения не будут заменены.
  • MessageFormatter::format() и MessageFormatter::parse() больше не ограничены в точности секундами, когда имеют дело со временем.
  • IntlDateFormatter::__construct() и datefmt_create() теперь принимают объекты IntlTimeZone и DateTimeZone для аргумента timezone, и объекты IntlCalendar для аргумента calendar. Более того, если временная зона не задана и не указана в calendar, в качестве временной зоны ICU по умолчанию будет использовано значение date_default_timezone_get().
  • IntlDateFormatter::getCalendar() и datefmt_get_calendar() возвращают FALSE если объект IntlDateFormatter был создан с помощью IntlCalendar, вместо использования одной из констант IntlDateFormatter.
  • IntlDateFormatter::setCalendar() и datefmt_set_calendar() теперь принимают объекты IntlCalendar в дополнение к константам IntlDateFormatter.
  • IntlDateFormatter::format() и datefmt_format() теперь принимают объекты IntlCalendar.


Новые функции

Ядро PHP

  • array_column()
  • boolval()
  • json_last_error_msg()
  • password_get_info()
  • password_hash()
  • password_needs_rehash()
  • password_verify()

Hash

  • hash_pbkdf2()

OpenSSL

  • openssl_pbkdf2()

cURL

  • curl_escape()
  • curl_file_create()
  • curl_multi_setopt()
  • curl_multi_strerror()
  • curl_pause()
  • curl_reset()
  • curl_share_close()
  • curl_share_init()
  • curl_share_setopt()
  • curl_strerror()
  • curl_unescape()

GD

  • imageaffinematrixconcat()
  • imageaffinematrixget()
  • imagecrop()
  • imagecropauto()
  • imageflip()
  • imagepalettetotruecolor()
  • imagescale()

MySQLi

  • mysqli_begin_transaction()
  • mysqli_release_savepoint()
  • mysqli_savepoint()

PostgreSQL

  • pg_escape_literal()
  • pg_escape_identifier()

Sockets

  • socket_sendmsg()
  • socket_recvmsg()
  • socket_cmsg_space()

CLI

  • cli_get_process_title()
  • cli_set_process_title()

Intl

  • datefmt_format_object()
  • datefmt_get_calendar_object()
  • datefmt_get_timezone()
  • datefmt_set_timezone()
  • datefmt_get_calendar_object()
  • intlcal_create_instance()
  • intlcal_get_keyword_values_for_locale()
  • intlcal_get_now()
  • intlcal_get_available_locales()
  • intlcal_get()
  • intlcal_get_time()
  • intlcal_set_time()
  • intlcal_add()
  • intlcal_set_time_zone()
  • intlcal_after()
  • intlcal_before()
  • intlcal_set()
  • intlcal_roll()
  • intlcal_clear()
  • intlcal_field_difference()
  • intlcal_get_actual_maximum()
  • intlcal_get_actual_minimum()
  • intlcal_get_day_of_week_type()
  • intlcal_get_first_day_of_week()
  • intlcal_get_greatest_minimum()
  • intlcal_get_least_maximum()
  • intlcal_get_locale()
  • intlcal_get_maximum()
  • intlcal_get_minimal_days_in_first_week()
  • intlcal_get_minimum()
  • intlcal_get_time_zone()
  • intlcal_get_type()
  • intlcal_get_weekend_transition()
  • intlcal_in_daylight_time()
  • intlcal_is_equivalent_to()
  • intlcal_is_lenient()
  • intlcal_is_set()
  • intlcal_is_weekend()
  • intlcal_set_first_day_of_week()
  • intlcal_set_lenient()
  • intlcal_equals()
  • intlcal_get_repeated_wall_time_option()
  • intlcal_get_skipped_wall_time_option()
  • intlcal_set_repeated_wall_time_option()
  • intlcal_set_skipped_wall_time_option()
  • intlcal_from_date_time()
  • intlcal_to_date_time()
  • intlcal_get_error_code()
  • intlcal_get_error_message()
  • intlgregcal_create_instance()
  • intlgregcal_set_gregorian_change()
  • intlgregcal_get_gregorian_change()
  • intlgregcal_is_leap_year()
  • intltz_create_time_zone()
  • intltz_create_default()
  • intltz_get_id()
  • intltz_get_gmt()
  • intltz_get_unknown()
  • intltz_create_enumeration()
  • intltz_count_equivalent_ids()
  • intltz_create_time_zone_id_enumeration()
  • intltz_get_canonical_id()
  • intltz_get_region()
  • intltz_get_tz_data_version()
  • intltz_get_equivalent_id()
  • intltz_use_daylight_time()
  • intltz_get_offset()
  • intltz_get_raw_offset()
  • intltz_has_same_rules()
  • intltz_get_display_name()
  • intltz_get_dst_savings()
  • intltz_from_date_time_zone()
  • intltz_to_date_time_zone()
  • intltz_get_error_code()
  • intltz_get_error_message()

SPL

  • SplFixedArray::__wakeup()


Новые классы и интерфейсы

cURL

  • CURLFile

Дата и время

  • DateTimeImmutable
  • DateTimeInterface

Intl

  • IntlCalendar
  • IntlGregorianCalendar
  • IntlTimeZone
  • IntlBreakIterator
  • IntlRuleBasedBreakIterator
  • IntlCodePointBreakIterator


Новые методы

MySQLi

  • mysqli::begin_transaction()
  • mysqli::release_savepoint()
  • mysqli::savepoint()

Intl

  • IntlDateFormatter::formatObject()
  • IntlDateFormatter::getCalendarObject()
  • IntlDateFormatter::getTimeZone()
  • IntlDateFormatter::setTimeZone()


  • « Новые методы
  • Новые глобальные константы »
  • PHP Manual
  • Переход с PHP 5.4.x на PHP 5.5.x
  • Прочие изменения в расширениях

Прочие изменения в расширениях

Intl

Расширение intl требует ICU 4.0 или выше.


Новые глобальные константы

GD

  • IMG_AFFINE_TRANSLATE
  • IMG_AFFINE_SCALE
  • IMG_AFFINE_ROTATE
  • IMG_AFFINE_SHEAR_HORIZONTAL
  • IMG_AFFINE_SHEAR_VERTICAL
  • IMG_CROP_DEFAULT
  • IMG_CROP_TRANSPARENT
  • IMG_CROP_BLACK
  • IMG_CROP_WHITE
  • IMG_CROP_SIDES
  • IMG_FLIP_BOTH
  • IMG_FLIP_HORIZONTAL
  • IMG_FLIP_VERTICAL
  • IMG_BELL
  • IMG_BESSEL
  • IMG_BICUBIC
  • IMG_BICUBIC_FIXED
  • IMG_BLACKMAN
  • IMG_BOX
  • IMG_BSPLINE
  • IMG_CATMULLROM
  • IMG_GAUSSIAN
  • IMG_GENERALIZED_CUBIC
  • IMG_HERMITE
  • IMG_HAMMING
  • IMG_HANNING
  • IMG_MITCHELL
  • IMG_POWER
  • IMG_QUADRATIC
  • IMG_SINC
  • IMG_NEAREST_NEIGHBOUR
  • IMG_WEIGHTED4
  • IMG_TRIANGLE

JSON

  • JSON_ERROR_RECURSION
  • JSON_ERROR_INF_OR_NAN
  • JSON_ERROR_UNSUPPORTED_TYPE

MySQLi

Была добавлена опция MYSQLI_SERVER_PUBLIC_KEY для использования сmysqli_options().


Изменения в обработке INI-файла

Intl

Добавлена директива intl.use_exceptions, которая контролирует поведение inth в случае возникновения глобальной ошибки. Используется вместе с директивой intl.error_level.

MySQLnd

Добавлена директива mysqlnd.sha256_server_public_key для разрешения mysqli использовать новый протокол аутентификации.


Внутренние изменения PHP

  • Расширения больше не могут переопределять zend_execute(), вместо этого они должны переопределять zend_execute_ex(). EG(current_execute_data) уже инициализированна в zend_execute_ex(), поэтому, для совместимости расширений, возможно, придется использовать EG(current_execute_data)->prev_execute_data.
  • Удалены EG(arg_types_stack), EX(fbc), EX(called_scope) и EX(current_object).
  • Добавлен op_array->nested_calls, который вычисляется в момент компиляции.
  • Добавлен EX(call_slots), являющийся массивом для хранения информации о синтаксически вложенных вызовах (т.е. foo(bar())) и размещающийся вместе с execute_data.
  • Добавлен EX(call), являющийся указателем на вызываемую функцию, и являющийся элементом EX(call_slots).
  • Байткоды INIT_METHOD_CALL, ZEND_INIT_STATIC_METHOD_CALL, ZEND_INIT_FCALL_BY_NAME и ZEND_INIT_NS_FCALL_BY_NAME используют result.num как индекс в EX(call_slots).
  • Байткод ZEND_NEW использует extended_value как индекс в EX(call_slots).
  • Байткоды ZEND_DO_FCALL и ZEND_DO_FCALL_BY_NAME используют op2.num как индекс в EX(call_slots).
  • Добавлен op_array->used_stack, вычисляемый в момент компиляции; which is calculated at compile time; соответствующее место под стек выделяется совместно с execute_data. В результате, байткоды ZEND_SEND* и ZEND_DO_FCALL* больше не требуют проверки на переполнение стека.
  • Удалено поле execute_data->Ts. Временные переменные VM всегда размещаются сразу перед структурой execute_data, и теперь более предпочтительно обращаться к ним по смещению от базового указателя execute_data вместо того, чтоб использовать execute_data->Ts. Компилятор хранит новые смещения в op_array->opcodes[*].op?.num. Макросы EX_TMP_VAR() и EX_TMP_VAR_NUM() могут быть использованы для доступа к временным переменным по смещению или номеру. Вы можете преобразовать номер в смещение используя EX_TMP_VAR_NUM(0, num) или смещение в номер используя (EX_TMP_VAR_NUM(0,0)-EX_TMP_VAR(0,offset)).
  • Удалено поле execute_data->CVs. Скомпилированные переменные VM всегда размещаются сразу после структуры execute_data, и получать к ним доступ следует по смещению от базового указателя execute_data вместо того, чтобы использовать execute_data->CVs. Вы можете использовать макрос EX_CV_NUM() для доступа к скомпилированным переменным по номеру.


Переход с PHP 5.3.x на PHP 5.4.x

Содержание

  • Что изменилось в PHP 5.4.x?
  • Обратно несовместимые изменения
  • Новые возможности
  • Изменения в модулях SAPI
  • Устаревшие функции и возможности в PHP 5.4.x
  • Измененные функции
  • Новые функции
  • Новые классы и интерфейсы
  • Новые методы
  • Удаленные расширения
  • Другие изменения в расширениях
  • Новые глобальные константы
  • Изменения в обработке INI-файлов
  • Другие изменения

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.3.x, 5.5.x и 5.6.x.


Что изменилось в PHP 5.4.x?

Большинство изменений в PHP 5.4.x никак не повлияет на существующий код. Есть несколько несовместимостей и новых возможностей, которые должны быть учтены, и код должен быть протестирован перед тем как переключиться на новую версию PHP на рабочих серверах.

Для систем, которые обновились с более старой версии PHP, соответствующую документацию можно получить по адресам:

  • Переход с PHP 5.2.x на PHP 5.3.x.
  • Переход с PHP 5.1.x на PHP 5.2.x.
  • Переход с PHP 5.0.x на PHP 5.1.x.
  • Переход с PHP 4 на PHP 5.0.x.


Обратно несовместимые изменения

Хотя большая часть существующего кода PHP 5 должна работать без изменений, пожалуйста, примите к сведению следующие обратно несовместимые изменения:

  • Безопасный режим более не поддерживается. Любое приложение, которое полагается на безопасный режим, возможно, требует внесения корректировок по части безопасности.
  • "Волшебные" кавычки теперь не работают. Приложения, которые используют эту возможность, могут нуждаться в обновлении во избежание проблем с безопасностью. Функции get_magic_quotes_gpc() и get_magic_quotes_runtime() теперь всегда возвращают FALSE. Функция set_magic_quotes_runtime() вызывает ошибку уровня E_CORE_ERROR при попытке разрешить Магические кавычки.
  • Директивы php.ini register_globals и register_long_arrays были удалены.
  • Директива mbstring.script_encoding была удалена. Вместо нее используйте zend.script_encoding.
  • Возможность передачи по ссылке во время вызова функции была убрана.
  • Операторы break и continue теперь не принимают аргументов в виде переменной. Например, выражение break 1 + foo() * $bar; невозможно. Вы по-прежнему можете использовать явный аргумент в виде статической константы. Например, break 2;. Побочным эффектом этого изменения является то, что конструкции break 0; и continue 0; более недопустимы.
  • В расширении date and time временная зона не может быть более установлена с помощью переменной окружения TZ. Вместо этого вам необходимо указать временную зону, используя опцию php.ini date.timezone или функцию date_default_timezone_set(). PHP теперь не будет пытаться определять временную зону. Вместо этого будет установлена зона "UTC" и выдано предупреждение E_WARNING.
  • Нецифровые смещения строк, например $a['foo'], где $a - это строка, теперь возвращают false в функции isset() и true в функции empty() и вызывают предупреждение E_WARNING при подобном использовании. Смещения, заданные типами double, bool и null также приводят к генерации предупреждения E_NOTICE, а строки, содержащие числа ($a['2']), все еще работают как и раньше. Обратите внимание, что смещения, подобные '12.3' и '5 foobar' рассматриваются как нечисловые и вызывают предупреждение E_WARNING, но преобразовываются к 12 и 5 соответственно по причине необходимости сохранения обратной совместимости. Примечание: следующий код возвращает различные результаты. $str='abc';var_dump(isset($str['x'])); // false для PHP 5.4 и выше, но true для 5.3 и ниже
  • Преобразование массива в строку теперь приводит к предупреждению E_NOTICE, но результат преобразования будет по-прежнему строка "Array".
  • Преобразование NULL, FALSE или пустой строки в объект путем добавления свойства теперь будет генерировать ошибку уровня E_WARNING вместо ошибки E_STRICT.
  • Имена параметров, которые "затеняют" имена суперглобальных переменных, теперь расцениваются как фатальная ошибка. Это правило запрещает код, подобный этому: function foo($_GET, $_POST) {}.
  • Хеш-алгоритмы Salsa10 и Salsa20 были удалены.
  • Функция array_combine() теперь возвращает array() вместо FALSE, когда в качестве параметров заданы два пустых массива.
  • Если вы используете функцию htmlentities() с азиатскими наборами символов, то она работает также, как функция htmlspecialchars(). Так всегда было в предыдущих версиях PHP, а теперь генерируется ошибка уровня E_STRICT.
  • Третий параметр функции ob_start() изменен с boolean erase на integer flags. Обратите внимание, что код, в котором erase явно задан как FALSE, в PHP 5.4 изменит свое поведение. Посмотрите этот пример, что бы понять, как писать код работающий одинаковоto в PHP 5.3 и 5.4.

Следующие ключевые слова теперь являются зарезервированными и не могут использоваться в качестве названия функций, классов и прочих имен:

  • trait
  • callable
  • insteadof

Следующие функции были удалены из PHP:

  • define_syslog_variables()
  • import_request_variables()
  • session_is_registered(), session_register() и session_unregister().
  • Алиасы
mysqli_bind_param(), mysqli_bind_result(),
mysqli_client_encoding(), mysqli_fetch(),
mysqli_param_count(), mysqli_get_metadata(),
mysqli_send_long_data(), mysqli::client_encoding() и mysqli_stmt::stmt().


Новые возможности

PHP версии 5.4.0 предлагает широкий спектр новых возможностей:

  • Добавлена поддержка трейтов.
  • Добавлен короткий синтаксис объявления массивов. Например, $a = [1, 2, 3, 4]; или $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];.
  • Добавлена возможность разыменования массивов, возвращаемых функциями. Например: foo()[0].
  • Классы для создания анонимных функций (Closures) теперь поддерживают $this.
  • Оператор <?= теперь доступен всегда, несмотря на значение php.ini опции short_open_tag.
  • Добавлена возможность получения доступа к члену класса при создании экземпляра. Например: (new Foo)->bar().
  • Теперь поддерживается такой синтаксис: Class::{expr}().
  • Добавлен бинарный формат задания чисел, например: 0b001001101.
  • Улучшены сообщения об ошибках разбора и предупреждения о несовместимых аргументах.
  • Расширение по работе с сессиями теперь может отслеживать процесс загрузки файлов.
  • Встроенный веб-сервер в режиме командной строки для разработчиков.


Изменения в модулях SAPI

  • Доступен новый модуль SAPI, называемый cli-server.
  • Добавлена CLI-опция --rz, которая отображает информацию о имени расширения Zend.
  • Добавлена ссылка #inisetting=value для изменения php.ini опций в процессе работы скрипта при интерактивной работе в консоли.
  • Добавлены функции, совместимые с Apache: apache_child_terminate(),
getallheaders(), apache_request_headers()
и apache_response_headers() для FastCGI SAPI.
  • PHP-FPM: Добавлена опция process.max для контроля количества ветвлений FPM-процессов.


  • « Изменения в модулях SAPI
  • Измененные функции »
  • PHP Manual
  • Переход с PHP 5.3.x на PHP 5.4.x
  • Устаревшие функции и возможности в PHP 5.4.x

Устаревшие функции и возможности в PHP 5.4.x

Устаревшие функции:

  • mysql_list_dbs()


Измененные функции

К некоторым функциям были добавлены новые необязательные параметры в PHP 5.4:

Ядро PHP:

  • Добавлен необязательный аргумент limit к функциям debug_backtrace() и debug_print_backtrace() для ограничения количества возвращаемых фреймов стека.
  • Функция is_link() теперь работает правильно с символическими ссылками в системе Windows Vista или более поздними. Более ранние версии не поддерживали символические ссылки.
  • parse_url() теперь распознает хост, если схема не указана и присутствует предшествующий разделитель компонент. С версии PHP 5.4.7.

OpenSSL:

  • В функции openssl_encrypt() и openssl_decrypt() добавлена опция "no padding" (не дополнять размер шифруемого блока).

Intl:

  • Функции idn_to_ascii() и idn_to_utf8() теперь принимают два дополнительных параметра: один указывает вид (IDNA 2003 или UTS #46) и другой, передаваемый по ссылке, предназначен для возврата детальной информации об операции в случае выбора UTS #46.


Новые функции

В PHP 5.4 введены несколько новых функций:

Ядро PHP:

  • hex2bin() - Преобразует шестнадцатеричное представление данных в двоичное
  • http_response_code() - Получить или установить код ответа HTTP
  • get_declared_traits() - Получить список задекларированных трейтов
  • getimagesizefromstring() - Получение размера изображения из строки данных
  • stream_set_chunk_size()
  • socket_import_stream()
  • trait_exists()
  • header_register_callback() - Вызывает функцию заголовка (header)

SPL:

  • class_uses()

Сессии:

  • session_status()
  • session_register_shutdown()

Mysqli:

  • mysqli_error_list()
  • mysqli_stmt_error_list()

Libxml:

  • libxml_set_external_entity_loader()

LDAP:

  • ldap_control_paged_result()
  • ldap_control_paged_result_response()

Intl:

  • transliterator_create()
  • transliterator_create_from_rules()
  • transliterator_create_inverse()
  • transliterator_get_error_code()
  • transliterator_get_error_message()
  • transliterator_list_ids()
  • transliterator_transliterate()

Zlib:

  • zlib_decode()
  • zlib_encode()


Новые классы и интерфейсы

Следующие классы были введены в PHP 5.4.0:

SPL:

  • CallbackFilterIterator
  • RecursiveCallbackFilterIterator

Reflection:

  • ReflectionZendExtension

Json:

  • JsonSerializable

Session:

  • SessionHandler
  • SessionHandlerInterface

Snmp:

  • SNMP

Intl:

  • Transliterator
  • Spoofchecker


Новые методы

Некоторые новые методы были введены в 5.4.0:

XSL:

  • XsltProcessor::setSecurityPrefs()
  • XsltProcessor::getSecurityPrefs()

SPL:

  • RegexIterator::getRegex()
  • SplObjectStorage::getHash()
  • DirectoryIterator::getExtension()
  • SplDoublyLinkedList::serialize()
  • SplDoublyLinkedList::unserialize()
  • SplFileInfo::getExtension()
  • SplFileObject::fputcsv()
  • SplQueue::serialize()
  • SplQueue::unserialize()
  • SplStack::serialize()
  • SplStack::unserialize()
  • SplTempFileObject::fputcsv()

Reflection:

  • ReflectionExtension::isPersistent()
  • ReflectionExtension::isTemporary()
  • ReflectionClass::isCloneable()

Closure:

  • Closure::bind()
  • Closure::bindTo()

PDO_dblib:

  • PDO::newRowset()

StreamWrapper:

  • StreamWrapper::stream_metadata()
  • StreamWrapper::stream_truncate()


Удаленные расширения

Следующие расширения перемещены в репозиторий PECL и более не будут поставляться с дистрибутивом PHP. Версии этих расширений в виде пакетов PECL будут создаваться в соответствии с потребностями пользователей.

  • sqlite Обратите внимание, что расширения ext/sqlite3 и ext/pdo_sqlite остаются нетронутыми.


Другие изменения в расширениях

Изменения в расширениях и новые возможности:

  • mysqli - mysqli_result теперь реализует класс Traversable
  • pdo_mysql - Удалена поддержка возможности сборки с клиентскими библиотеками MySQL старше версии 4.1.
  • Расширения mysql, mysqli и PDO_mysql используют mysqlnd в качестве библиотеки по умолчанию. Все еще возможно использовать libmysql, указав путь в конфигурационных настройках.
  • mysqlnd - Добавлена поддержка именованных каналов (named pipes).


Новые глобальные константы

Ядро PHP:

  • ENT_DISALLOWED
  • ENT_HTML401
  • ENT_HTML5
  • ENT_SUBSTITUTE
  • ENT_XML1
  • ENT_XHTML
  • IPPROTO_IP
  • IPPROTO_IPV6
  • IPV6_MULTICAST_HOPS
  • IPV6_MULTICAST_IF
  • IPV6_MULTICAST_LOOP
  • IP_MULTICAST_IF
  • IP_MULTICAST_LOOP
  • IP_MULTICAST_TTL
  • MCAST_JOIN_GROUP
  • MCAST_LEAVE_GROUP
  • MCAST_BLOCK_SOURCE
  • MCAST_UNBLOCK_SOURCE
  • MCAST_JOIN_SOURCE_GROUP
  • MCAST_LEAVE_SOURCE_GROUP

Curl:

  • CURLOPT_MAX_RECV_SPEED_LARGE
  • CURLOPT_MAX_SEND_SPEED_LARGE

LibXML:

  • LIBXML_HTML_NODEFDTD
  • LIBXML_HTML_NOIMPLIED
  • LIBXML_PEDANTIC

OpenSSL:

  • OPENSSL_CIPHER_AES_128_CBC
  • OPENSSL_CIPHER_AES_192_CBC
  • OPENSSL_CIPHER_AES_256_CBC
  • OPENSSL_RAW_DATA
  • OPENSSL_ZERO_PADDING

Буферизация вывода:

  • PHP_OUTPUT_HANDLER_CLEAN
  • PHP_OUTPUT_HANDLER_CLEANABLE
  • PHP_OUTPUT_HANDLER_DISABLED
  • PHP_OUTPUT_HANDLER_FINAL
  • PHP_OUTPUT_HANDLER_FLUSH
  • PHP_OUTPUT_HANDLER_FLUSHABLE
  • PHP_OUTPUT_HANDLER_REMOVABLE
  • PHP_OUTPUT_HANDLER_STARTED
  • PHP_OUTPUT_HANDLER_STDFLAGS
  • PHP_OUTPUT_HANDLER_WRITE

Сессии:

  • PHP_SESSION_ACTIVE
  • PHP_SESSION_DISABLED
  • PHP_SESSION_NONE

Потоки:

  • STREAM_META_ACCESS
  • STREAM_META_GROUP
  • STREAM_META_GROUP_NAME
  • STREAM_META_OWNER
  • STREAM_META_OWNER_NAME
  • STREAM_META_TOUCH

Zlib:

  • ZLIB_ENCODING_DEFLATE
  • ZLIB_ENCODING_GZIP
  • ZLIB_ENCODING_RAW

Intl:

  • U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR
  • IDNA_CHECK_BIDI
  • IDNA_CHECK_CONTEXTJ
  • IDNA_NONTRANSITIONAL_TO_ASCII
  • IDNA_NONTRANSITIONAL_TO_UNICODE
  • INTL_IDNA_VARIANT_2003
  • INTL_IDNA_VARIANT_UTS46
  • IDNA_ERROR_EMPTY_LABEL
  • IDNA_ERROR_LABEL_TOO_LONG
  • IDNA_ERROR_DOMAIN_NAME_TOO_LONG
  • IDNA_ERROR_LEADING_HYPHEN
  • IDNA_ERROR_TRAILING_HYPHEN
  • IDNA_ERROR_HYPHEN_3_4
  • IDNA_ERROR_LEADING_COMBINING_MARK
  • IDNA_ERROR_DISALLOWED
  • IDNA_ERROR_PUNYCODE
  • IDNA_ERROR_LABEL_HAS_DOT
  • IDNA_ERROR_INVALID_ACE_LABEL
  • IDNA_ERROR_BIDI
  • IDNA_ERROR_CONTEXTJ

Json:

  • JSON_PRETTY_PRINT
  • JSON_UNESCAPED_SLASHES
  • JSON_NUMERIC_CHECK
  • JSON_UNESCAPED_UNICODE
  • JSON_BIGINT_AS_STRING


Изменения в обработке INI-файлов

Следующие php.ini директивы были удалены:

  • register_globals и register_long_arrays
  • magic_quotes_gpc, magic_quotes_runtime и magic_quotes_sybase
  • allow_call_time_pass_reference
  • define_syslog_variables
  • highlight.bg
  • session.bug_compat_42 и session.bug_compat_warn
  • mbstring.script_encoding
  • y2k_compliance
  • safe_mode, safe_mode_gid, safe_mode_include_dir, safe_mode_exec_dir, safe_mode_allowed_env_vars и safe_mode_protected_env_vars

Следующие php.ini директивы были добавлены:

  • cli.pager и cli.prompt для CLI SAPI, используя функцию readline в интерактивном режиме.
  • cli_server.color для включения ANSI-раскраски в консольном выводе встроенного веб-сервера для разработки.
  • max_input_vars - указывает, какое количество входных переменных GET/POST/COOKIE может быть принято.
  • zend.multibyte - для управления новой возможностью автоопределения закодированных Unicode скриптов и файлов.
  • zend.script_encoding - Это значение будет использоваться до тех пор, пока не встретится директива "declare(encoding=...)" в начале скрипта.
  • zend.signal_check - для проверки замененных обработчиков сигналов при завершении.
  • session.upload_progress.enabled, session.upload_progress.cleanup, session.upload_progress.prefix, session.upload_progress.name, session.upload_progress.freq, session.upload_progress.min_freq
  • enable_post_data_reading - Когда отключено, данные POST не читаются (и не обрабатываются)
  • windows_show_crt_warning - Эта директива включает отображение предупреждений Windows CRT. До этого момента отображение было включено по умолчанию.

Следующие php.ini директивы были изменены:

  • session.entropy_file теперь принимает значение по умолчанию /dev/random или /dev/urandom в зависимости от того, что было определено на этапе компиляции.
  • session.entropy_length теперь принимает значение по умолчанию 32.


Другие изменения

  • Кодировкой по умолчанию для функций htmlspecialchars() и htmlentities() сейчас является UTF-8, вместо прежней ISO-8859-1. Обратите внимание, что изменения кодировки вывода с помощью конфигурационной опции default_charset не действует на вышеупомянутые функции до тех пор, пока вы не передадите "" (пустую строку) в качестве параметра кодировки в вызовы функций htmlspecialchars()/htmlentities(). В целом, мы не рекомендуем так делать, потому что вы должны иметь возможность изменить кодировку вывода без воздействия на кодировку во время исполнения, используемую этими функциями. Самый безопасный подход - явно установить кодировку при каждом вызове функций htmlspecialchars() и htmlentities().
  • E_ALL теперь включает ошибки уровня E_STRICT в конфигурационной директиве error_reporting.
  • У SNMP теперь есть объектно-ориентированный API. Функции теперь возвращают FALSE на каждую ошибку, включая относящиеся к SNMP. (Нет такого экземпляра, конец MIB и т.д.). Таким образом, в частности, изменяется предыдущее поведение функций get/walk, которые возвращали пустую строку при ошибках, относящихся к SNMP. Теперь поддерживаются множественные запросы OID get/getnext/set. Исключен код совместимости с UCD-SNMP, учитывая что обновление до net-snmp v5.3+, Net-SNMP v5.4+ является необходимым для версии под Windows. Ради добавления поддержки IPv6 разрешение DNS имен в удаленном SNMP агенте теперь выполнено с помощью расширения, а не через библиотеку Net-SNMP.
  • OpenSSL теперь поддерживает AES.
  • CLI SAPI теперь больше не прерывает работу при фатальных ошибках, когда используется интерактивный режим с поддержкой readline.
  • Переменная $_SERVER['REQUEST_TIME_FLOAT'] была добавлена и содержит время с точностью до микросекунд.
  • Добавлены новые хэш-алгоритмы: fnv132, fnv164, joaat
  • Теперь работает задание смещений в строке последовательно, например: $a[0][0], где $a - строка.
  • Преобразование массивов из SimpleXMLElement теперь всегда содержит все узлы вместо только первого подходящего узла. Теперь всегда выводятся все потомки SimpleXMLElement при использовании функций var_dump(), var_export() и print_r().
  • Стало актуальным требование присутствия аргументов абстрактного конструктора класса __construct в базовом классе при наследовании.


Переход c PHP 5.2.x на PHP 5.3.x

Содержание

  • Что нового в PHP 5.3.x ?
  • Обратно несовместимые изменения
  • Новые возможности
  • Изменения в поддержке Windows
  • Изменения в модулях SAPI
  • Устаревшие функции и возможности в PHP 5.3.x
  • Функции и возможности, которые ранее считались устаревшими, а теперь снова возвращены в PHP 5.3.x
  • Новые параметры
  • Новые функции
  • Новые обертки потоков
  • Новые фильтры потоков
  • Новые константы классов
  • Новые методы
  • Новые расширения
  • Удаленные расширения
  • Другие изменения в расширениях
  • Новые классы
  • Новые глобальные константы
  • Изменения в работе с INI-файлами
  • Другие изменения

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.2.x, 5.4.x, 5.5.x и 5.6.x.


Что нового в PHP 5.3.x ?

Большинство изменений в PHP 5.3.x никак не повлияет на существующий код. Есть несколько несовместимостей и новых возможностей, которые должны быть учтены, и код должен быть протестирован перед тем как переключиться на новую версию PHP на рабочих серверах.

Для систем, которые обновились с более старой версии PHP, соответствующую документацию можно получить по адресам:

  • Переход с PHP 5.1.x на PHP 5.2.x.
  • Переход с PHP 5.0.x на PHP 5.1.x.
  • Переход с PHP 4 на PHP 5.0.x.


Обратно несовместимые изменения

Хотя большая часть существующего кода PHP 5 должна работать без изменений, пожалуйста, примите к сведению следующие обратно несовместимые изменения:

  • Новый внутренний API разбора параметров был применен во всех расширениях, идущих в комплекте с PHP 5.3.x. Этот API разбора параметров требует от функций возвращать NULL при передаче несовместимых параметров. Есть некоторые исключения из этого правила, например, функция get_class(), которая будет продолжать возвращать FALSE в случае ошибки.
  • clearstatcache() больше не очищает кэш функции realpath по умолчанию.
  • Функция realpath() стала полностью независима от платформы. Следствием этого является то, что некорректные относительные пути, такие как __FILE__ . "/../x" более не работают.
  • Семейство функций call_user_func() стало использовать $this даже если вызываемая функция - это родительский класс.
  • Функции работы с массивами natsort(),
natcasesort(), usort(),
uasort(), uksort(),
array_flip() и array_unique() больше
не принимают объекты в качестве аргументов. Для применения этих функций к
объекту необходимо сначала привести его к типу array.
  • Поведение функций при передаче параметров по значению, в которых параметры передаются по ссылке, было изменено. Там, где прежде функция принимала параметр по значению, сейчас генерируется фатальная ошибка. Любой прежний код, который передает константы или значения в качестве параметров функциям, которые ожидают ссылки, необходимо будет изменить, чтобы присвоить значение переменной перед вызовом функции.
  • Новая библиотека mysqlnd требует применения нового 41-го байтного формата пароля, который был введен в MySQL 4.1. Если вы продолжаете использовать 16-ти байтные пароли, это будет вынуждать функции mysql_connect() и подобные ей генерировать ошибку "mysqlnd cannot connect to MySQL 4.1+ using old authentication."
  • Новая библиотека mysqlnd не читает конфигурационные файлы mysql (my.cnf/my.ini), как это делает старая библиотека libmysqlclient. Если ваш код использует настройки в конфигурационном файле, вы можете загрузить их явно с помощью функции mysqli_options(). Обратите внимание, что это означает, что константы PDO PDO::MYSQL_ATTR_READ_DEFAULT_FILE и PDO::MYSQL_ATTR_READ_DEFAULT_GROUP не определены, если MySQL не компилировался с поддержкой mysqlnd.
  • Завершающий символ "/" был удален из класса SplFileInfo и других связанных с ним классов каталогов.
  • Магический метод __toString() не принимает более аргументы.
  • Магические методы
__get(),
__set(),
__isset(),
__unset(), и
__call() должны всегда
быть публичными и не могут быть статическими. Сигнатуры методов теперь стали более строгими.
  • Магический метод __call() теперь вызывается при доступе к приватным и защищенным методам.
  • func_get_arg(), func_get_args() и func_num_args() теперь не могут быть вызваны извне зоны видимости файла, который включается директивой include или require из функции в вызывающем файле.
  • Добавлен слой эмуляции расширения MHASH, чтобы служить оберткой вокруг расширения Hash. Однако не все алгоритмы покрыты, в их числе и алгоритм s2k хэширования. Это означает, что алгоритм s2k хэширования больше недоступен в пакете PHP 5.3.0.

Следующие ключевые слова теперь являются зарезервированными и не могут использоваться в качестве названия функции, класса и прочих имен.

  • goto
  • namespace


Новые возможности

PHP 5.3.0 предлагает широкий спектр новых возможностей:

  • Добавлена поддержка пространств имен.
  • Добавлена поддержка позднего статического связывания.
  • Добавлена поддержка меток перехода (ограниченный goto).
  • Добавлена поддержка нативных замыканий (closures) (Lambda/Anonymous функции).
  • Появились два магических метода: __callStatic() и __invoke().
  • Появилась поддержка синтаксиса Nowdoc, подобный Heredoc, но с одинарными кавычками.
  • Теперь возможно использовать Heredoc для инициализации статических переменных и свойств/констант классов.
  • Heredoc теперь может быть объявлен используя двойные кавычки, дополняющие синтаксис Nowdoc.
  • Константы теперь могут быть объявлены вне класса, используя ключевое слово const.
  • У тернарного оператора есть теперь сокращенный вид: ?:.
  • Обертка (wrapper) HTTP-потока стала воспринимать коды статуса от 200 до 399 как успешные.
  • Стал возможен динамический доступ к статическим методам:
    <?php
    class C {
       public static     $foo = 123;
    }

    $a = "C";
    echo     $a::$foo;
    ?>

    Результат выполнения данного примера:

    123
  • Исключения теперь могут быть вложенными:
    <?php
    class MyCustomException extends Exception {}

    try {
        throw new     MyCustomException("Exceptional", 112);
    } catch (    Exception $e) {
            /* Обратите внимание, что для передачи $e
         * в RuntimeException используется третий параметр. */
            throw new RuntimeException("Rethrowing", 911, $e);
    }
    ?>
  • Добавлен сборщик мусора для циклических ссылок. Он включен по умолчанию.
  • Функция mail() теперь поддерживает журналирование отправки письма с помощью директивы mail.log. (Примечание: это применимо только для писем, отправленных этой функцией.)


Изменения в поддержке Windows

Изменения к выпускам PHP для Windows:

  • Минимально необходимая версия Windows теперь Windows XP SP3. Windows 98, ME, 2000 и NT4 больше не поддерживаются.
  • Бинарные файлы для Windows теперь скомпилированы для i586 и более поздних платформ. Платформы i386 и i486 более не поддерживаются.
  • Теперь есть экспериментальная поддержка для x64 версий PHP под Windows.
  • Теперь присутствует поддержка компилятора Visual C++ 9 (VC9), используемого в Visual Studio 2008. Снапшоты и релизы будут также доступны для VC9. Старые бинарные файлы для VC6 все еще поддерживаются и выпускаются в соответствии с VC9.
  • Библиотека PDO_OCI php_pdo_oci8.dll (для использования с клиентскими библиотеками для сервера Oracle версии 8) более не собирается. Вместо нее используйте php_pdo_oci.dll (без '8') с клиентскими библиотеками Oracle 10 или 11. Соединение с базами данных других версий все еще поддерживается.
  • Для расширения OCI8 новая библиотека php_oci8_11g.dll доступна как дополнение к php_oci8.dll. Подключена может быть только одна из библиотек. Используйте php_oci8.dll с клиентскими библиотеками Oracle 10.2. Используйте php_oci8_11g.dll с клиентскими библиотеками Oracle 11 и старше. Соединение с базами данных других версий все еще поддерживается.

Поддержка Windows была добавлена для следующих функций:

  • checkdnsrr()
  • dns_get_record()
  • fnmatch()
  • getmxrr()
  • getopt()
  • imagecolorclosesthwb()
  • inet_ntop()
  • inet_pton()
  • link()
  • linkinfo()
  • mcrypt_create_iv()
  • readlink()
  • socket_create_pair() - Эта функция была доступна и прежде на платформе Windows, но была отключена начиная с PHP 4.3.0 по причине ошибки в ней.
  • stream_socket_pair()
  • symlink()
  • time_nanosleep()
  • time_sleep_until()

Другие изменения:

  • Улучшена переносимость функций stat(), touch(), filemtime(), filesize() и других функций, связанных с ними (100% переносимость для имеющейся информации).
  • Теперь возможно создание жестких ссылок на Windows используя функцию link(), и символических ссылок, используя функцию symlink(). Жесткие ссылки доступны начиная с Windows 2000, символические - начиная с Windows Vista.
  • Версия PHP для Windows теперь предоставляет набор констант с префиксом PHP_WINDOWS_*. Список констант и примеры использования можно найти в разделе Предопределенные константы.
Внимание

Поддержка модуля ISAPI была прекращена. Вместо него используйте улучшенный модуль FastCGI SAPI.

Замечание: Стал доступен новый отдельный сайт для PHP под Windows, включающий раздел загрузок, релиз-кандидаты и снапшоты в различных вариантах (thread-safe/not-thread-safe, VC6/VC9, x86/x64). URL этого сайта следующий » http://windows.php.net/.


Изменения в модулях SAPI

  • Доступен новый модуль SAPI, называемый litespeed.
  • Поддержка FastCGI в CGI SAPI теперь всегда включена и не может быть отключена. Для более детальной информации см. sapi/cgi/CHANGES.
  • Новая CGI SAPI опция -T может быть использована для измерения времени повторяющегося исполнения скрипта.
  • В CGI/FastCGI теперь есть поддержка для .htaccess-стиля файлов php.ini, определяемых пользователем.
  • Функция dl() теперь отключена по умолчанию, и доступна только для CLI, CGI и встраиваемых SAPI.


Устаревшие функции и возможности в PHP 5.3.x

PHP 5.3.0 вводит два новых уровня ошибок: E_DEPRECATED и E_USER_DEPRECATED. Уровень ошибки E_DEPRECATED используется, чтобы показать, что функция или возможность устарела. Ошибка E_USER_DEPRECATED предназначена для обозначения устаревших функций в пользовательском коде, подобно уровням E_USER_ERROR и E_USER_WARNING.

Следующий список - это перечень устаревших INI-директив. Использование любой из этих директив будет приводить к генерации ошибки E_DEPRECATED при запуске.

  • define_syslog_variables
  • register_globals
  • register_long_arrays
  • safe_mode
  • magic_quotes_gpc
  • magic_quotes_runtime
  • magic_quotes_sybase
  • Комментарии, начинающиеся с символа "#", теперь считаются устаревшими в INI-файлах.

Устаревшие функции:

  • call_user_method() (используйте call_user_func())
  • call_user_method_array() (используйте call_user_func_array())
  • define_syslog_variables()
  • dl()
  • ereg() (используйте preg_match())
  • ereg_replace() (используйте preg_replace())
  • eregi() (используйте preg_match() с модификатором 'i')
  • eregi_replace() (используйте preg_replace() с модификатором 'i')
  • mcrypt_generic_end()
  • set_magic_quotes_runtime() и ее синоним magic_quotes_runtime()
  • session_register() (используйте суперглобальный массив $_SESSION)
  • session_unregister() (используйте суперглобальный массив $_SESSION)
  • session_is_registered() (используйте суперглобальный массив $_SESSION)
  • set_socket_blocking() (используйте stream_set_blocking())
  • split() (используйте preg_split())
  • spliti() (используйте preg_split() с модификатором 'i')
  • sql_regcase()
  • mysql_db_query() (используйте mysql_select_db() и mysql_query())
  • mysql_escape_string() (используйте mysql_real_escape_string())
  • Передача строки, задающей категорию функций, на которые будет влиять установка локали, сейчас считается устаревшим вариантом. Используйте вместо этого семейство констант LC_*
  • Параметр is_dst в функции mktime(). Вместо него используйте новые функции работы с временными зонами.

Устаревшие возможности:

  • Присвоение по ссылке возвращаемого значения оператором new является устаревшим.
  • Передача по ссылке во время исполнения считается устаревшим способом.


  • « Устаревшие функции и возможности в PHP 5.3.x
  • Новые параметры »
  • PHP Manual
  • Переход c PHP 5.2.x на PHP 5.3.x
  • Функции и возможности, которые ранее считались устаревшими, а теперь снова возвращены в PHP 5.3.x

Функции и возможности, которые ранее считались устаревшими, а теперь снова возвращены в PHP 5.3.x

Функция is_a() более не является устаревшей по причине своей популярности; она не будет больше генерировать ошибку E_STRICT.


Новые параметры

К некоторым функциям были добавлены новые необязательные параметры в PHP 5.3:

Ядро PHP:

  • clearstatcache() - Добавлен параметр clear_realpath_cache и filename.
  • copy() - Добавлен параметр контекста потока context.
  • fgetcsv() - Добавлен параметр escape.
  • ini_get_all() - Добавлен параметр details.
  • nl2br() - Добавлен параметр is_xhtml.
  • parse_ini_file() - Добавлен параметр scanner_mode.
  • round() - Добавлен параметр mode.
  • stream_context_create() - Добавлен параметр params.
  • strstr() и stristr() - Добавлен параметр before_needle.

json:

  • json_encode() - Добавлен параметр options.
  • json_decode() - Добавлен параметр depth.

Потоки:

  • stream_select(),
stream_set_blocking(),
stream_set_timeout() и
stream_set_write_buffer() теперь работают с пользовательскими
обертками потоков.

sybase_ct:

  • sybase_connect() - Добавлен параметр new.

Новые параметры методов в PHP 5.3.0:

Ядро PHP:

  • Exception::__construct() - Добавлен параметр previous.


Новые функции

В PHP 5.3 введены несколько новых функций:

Ядро PHP:

  • array_replace() - Заменяет элементы массива элементами других переданных массивов.
  • array_replace_recursive() - Рекурсивно заменяет элементы массива элементами переданных массивов.
  • class_alias() - Создает псевдоним для пользовательского класса.
  • forward_static_call() - Вызывает пользовательскую функцию из контекста метода.
  • forward_static_call_array() - Вызывает пользовательскую функцию из контекста метода с аргументами, содержащимися в массиве.
  • gc_collect_cycles() Принудительно включает коллектор существующих циклических ссылок.
  • gc_disable() - Деактивирует коллектор циклических ссылок.
  • gc_enable() - Активирует коллектор циклических ссылок.
  • gc_enabled() - Возвращает статус коллектора циклических ссылок.
  • get_called_class() - Возвращает имя класса, в котором был вызван статический метод.
  • gethostname() - Возвращает имя хоста для локального компьютера.
  • header_remove() - Удаляет HTTP-заголовок, ранее установленный функцией header().
  • lcfirst() - Переводит в нижний регистр первый символ строки.
  • parse_ini_string() - Разбирает строку конфигурации.
  • quoted_printable_encode() - Кодирует 8-битную строку с помощью метода quoted-printable.
  • str_getcsv() - Выполняет разбор CSV-строки в массив.
  • stream_context_set_default() - Устанавливает контекст потоков по умолчанию.
  • stream_supports_lock() - Возвращает TRUE, если поток поддерживает блокирование.
  • stream_context_get_params() - Получает параметры контекста потока.
  • streamWrapper::stream_cast() - Получает базовый ресурс потока.
  • streamWrapper::stream_set_option() - Изменяет опции потока.

Date/Time:

  • date_add() - Добавляет заданное количество дней, месяцев, лет, минут и секунд к объекту DateTime.
  • date_create_from_format() - Возвращает объект DateTime, приведенный в соответствие с заданным форматом.
  • date_diff() - Возвращает разницу между двумя объектами DateTime.
  • date_get_last_errors() - Возвращает предупреждения и ошибки, которые произошли при последней операции с датой или временем.
  • date_parse_from_format() - Получает информацию о заданной дате.
  • date_sub() - Вычитает заданное количество дней, месяцев, лет, минут и секунд от объекта. DateTime.
  • timezone_version_get() - Возвращает версию базы данных timezonedb.

GMP:

  • gmp_testbit() - Проверяет, установлен ли бит.

Hash:

  • hash_copy() - Копирование контекста хэширования.

IMAP:

  • imap_gc() - Очищает кэш IMAP.
  • imap_utf8_to_mutf7() - Кодирует строку UTF-8 в модифицированный UTF-7.
  • imap_mutf7_to_utf8() - Декодирует строку из модифицированного UTF-7 в UTF-8.

JSON:

  • json_last_error() - Возвращает последнюю ошибку JSON.

MySQL Improved:

  • mysqli_fetch_all() - Извлекает все строки результата в виде ассоциативного массива с ключами в виде чисел или в совмещенном виде.
  • mysqli_get_connection_stats() - Возвращает статистику соединения с клиентом.
  • mysqli_poll() - Опрос соединений.
  • mysqli_reap_async_query() - Получает результат асинхронного запроса.

OpenSSL:

  • openssl_random_pseudo_bytes() - Возвращает строку заданной длины, заполненную псевдослучайной последовательностью байт.

PCNTL:

  • pcntl_signal_dispatch() - Вызывает обработчик сигналов для отложенных сигналов.
  • pcntl_sigprocmask() - Устанавливает и получает заблокированные сигналы.
  • pcntl_sigtimedwait() - Ожидание сигнала с таймаутом.
  • pcntl_sigwaitinfo() - Ожидание сигнала.

PCRE:

  • preg_filter() - Выполняет поиск и замену по регулярному выражению, возвращая только результаты совпавшего шаблона.

Семафоры:

  • msg_queue_exists() - Проверка на существование очереди сообщений.
  • shm_has_var() - Проверяет, существует ли конкретный ключ внутри сегмента разделяемой памяти.

Следующие функции теперь полностью реализованы в PHP на всех ОС, на которых может работать PHP:

  • acosh()
  • asinh()
  • atanh()
  • expm1()
  • log1p()


  • « Новые функции
  • Новые фильтры потоков »
  • PHP Manual
  • Переход c PHP 5.2.x на PHP 5.3.x
  • Новые обертки потоков

Новые обертки потоков

Следующие обертки потоков были введены в версии 5.3.0:

  • glob://
  • phar://


Новые фильтры потоков

Следующие фильтры потоков были введены в версии 5.3.0:

  • dechunk (изменяет кодировку HTTP chunked на противоположную, т.е. исходную)
  • Фильтр bz2.decompress теперь поддерживает конкатенацию.


Новые константы классов

Некоторые новые константы классов были добавлены в версии 5.3.0:

PDO_FIREBIRD:

  • PDO::FB_ATTR_DATE_FORMAT - Устанавливает формат даты.
  • PDO::FB_ATTR_TIME_FORMAT - Устанавливает формат времени.
  • PDO::FB_ATTR_TIMESTAMP_FORMAT - Устанавливает формат временной метки.


Новые методы

Несколько новых методов были введены в версии 5.3.0:

Date/Time:

  • DateTime::add() - Добавляет заданное количество дней, месяцев, лет, часов, минут и секунд к объекту DateTime.
  • DateTime::createFromFormat() - Возвращает объект DateTime, приведенный в соответствие с заданным форматом.
  • DateTime::diff() - Возвращает разницу между двумя объектами DateTime.
  • DateTime::getLastErrors() - Возвращает предупреждения и ошибки, которые произошли при последней операции с датой или с временем.
  • DateTime::sub() - Вычитает заданное количество дней, месяцев, лет, минут и секунд от объекта. DateTime.

Класс Exception:

  • Exception::getPrevious() - Возвращает предыдущее исключение.

DOM:

  • DOMNode::getLineNo() - Возвращает номер строки узла.

PDO_FIREBIRD:

  • PDO::setAttribute() - Устанавливает атрибут.

Reflection:

  • ReflectionClass::getNamespaceName() - Возвращает пространство имен, в котором определен данный класс.
  • ReflectionClass::getShortName() - Возвращает короткое имя данного класса (без части, в которой находится пространство имен).
  • ReflectionClass::inNamespace() - Проверяет, объявлен ли класс в пространстве имен.
  • ReflectionFunction::getNamespaceName() - Возвращает название пространства имен, в котором определена данная функция.
  • ReflectionFunction::getShortName() - Возвращает короткое имя функции (без пространства имен).
  • ReflectionFunction::inNamespace() - Проверяет, определена ли функция в пространстве имен.
  • ReflectionProperty::setAccessible() - Устанавливает могут ли непубличные свойства быть запрошены.

SPL:

  • SplObjectStorage::addAll() - Добавляет все элементы к другому объекту SplObjectStorage.
  • SplObjectStorage::removeAll() - Убирает все элементы из другого объекта SplObjectStorage.

XSL:

  • XSLTProcessor::setProfiling() - Устанавливает файл для вывода профиля.


Новые расширения

Следующие расширения были добавлены начиная с PHP 5.3.0:

  • Enchant - Слой абстракции над различными библиотеками правописания
  • Fileinfo - Усовершенствованная и более серьезная замена (с полной бинарной совместимостью) расширению Mimetype, которое было удалено.
  • INTL - Расширение для интернационализации. INTL - это обертка вокруг библиотеки » ICU.
  • Phar - Реализация файлов-архивов PHP.
  • SQLite3 - Поддержка БД SQLite версии 3.

Mysqlnd - это новая основная библиотека, поставляемая с PHP. Это адаптированная для PHP замена для libmysqlclient. Mysqlnd будет использована для сборки расширения mysql, mysqli и PDO_MySQL, если libmysqlclient не будет найдена в системе. Она также может быть использована вместо libmysqlclient даже когда libmysqlclient присутствует. Mysqlnd рекомендуется для всех инсталляций PHP из соображений производительности.


Удаленные расширения

Следующие расширения перемещены в репозиторий PECL и более не будут поставляться с дистрибутивом PHP. Версии этих расширений в виде пакетов PECL будут создаваться в соответствии с потребностями пользователей.

  • dbase - Более не поддерживается
  • fbsql - Более не поддерживается
  • fdf - Поддерживается
  • ming - Поддерживается
  • msql - Более не поддерживается
  • ncurses - Поддерживается
  • sybase - Убрано из дистрибутива; вместо него используйте расширение sybase_ct
  • mhash - Убрано из дистрибутива; вместо него используйте расширение hash. hash обладает полной совместимостью с mhash; все существующие приложения, использующие старые функции будут продолжать работать.


Другие изменения в расширениях

Следующие расширения не могут быть отключены в момент конфигурирования сборки:

  • PCRE
  • Reflection
  • SPL

Изменения в поведении расширений и новые возможности:

  • Date and Time - Переменная окружения TZ более не используется для определения временной зоны
  • cURL - cURL теперь поддерживает SSH
  • Network - dns_check_record() теперь возвращает дополнительные записи типа TXT.
  • Hash - Теперь поддерживаются хэш-алгоритмы SHA-224 и salsa.
  • mbstring - Теперь есть поддержка для кодировки CP850.
  • OCI8 - Вызов функции oci_close() при постоянном соединении, или выход за зону видимости переменной, ссылающейся на постоянное соединение, теперь приводит к откату любой незавершенной транзакции. Для того, чтобы избежать непредсказуемого поведения, явно дается команда подтверждения или отката транзакции при необходимости. Предыдущее поведение может быть включено с помощью INI-директивы oci8.old_oci_close_semantics. Теперь поддерживается пул постоянных соединений к БД (DRCP) и быстрое оповещение приложения (FAN). Поддерживается внешняя аутентификация Oracle (за исключением Windows). Функция oci_bind_by_name() теперь поддерживает тип данных SQLT_AFC (также известный как CHAR).
  • OpenSSL - Теперь поддерживаются функции свертки и шифрования OpenSSL. Также стало возможно получение доступа к внутренним значениям DSA, RSA и DH ключей.
  • Сессии - Сессионные файлы теперь более не хранятся в "/tmp", когда применены ограничения open_basedir, за исключением случая, когда директория "/tmp" явно добавлена к списку разрешенных путей.
  • SOAP Теперь поддерживает установленные пользователем HTTP-заголовки.
  • MySQLi Теперь поддерживает постоянные соединения, путем добавление к хосту "p:".
  • Обработка изображений и GD Индекс "JPG Support", возвращаемый функцией gd_info() был переименован в "JPEG Support".


Новые классы

Следующие новые классы были введены в PHP 5.3.0:

Date/Time:

  • DateInterval
  • DatePeriod

Phar:

  • Phar
  • PharData
  • PharException
  • PharFileInfo

SPL:

  • FilesystemIterator
  • GlobIterator
  • MultipleIterator
  • RecursiveTreeIterator
  • SplDoublyLinkedList
  • SplFixedArray
  • SplHeap
  • SplMaxHeap
  • SplMinHeap
  • SplPriorityQueue
  • SplQueue
  • SplStack


Новые глобальные константы

Ядро PHP:

  • __DIR__
  • __NAMESPACE__
  • E_DEPRECATED
  • E_USER_DEPRECATED
  • INI_SCANNER_NORMAL
  • INI_SCANNER_RAW
  • PHP_MAXPATHLEN
  • PHP_WINDOWS_NT_DOMAIN_CONTROLLER
  • PHP_WINDOWS_NT_SERVER
  • PHP_WINDOWS_NT_WORKSTATION
  • PHP_WINDOWS_VERSION_BUILD
  • PHP_WINDOWS_VERSION_MAJOR
  • PHP_WINDOWS_VERSION_MINOR
  • PHP_WINDOWS_VERSION_PLATFORM
  • PHP_WINDOWS_VERSION_PRODUCTTYPE
  • PHP_WINDOWS_VERSION_SP_MAJOR
  • PHP_WINDOWS_VERSION_SP_MINOR
  • PHP_WINDOWS_VERSION_SUITEMASK

cURL:

  • CURLOPT_PROGRESSFUNCTION

GD:

  • IMG_FILTER_PIXELATE

JSON:

  • JSON_ERROR_CTRL_CHAR
  • JSON_ERROR_DEPTH
  • JSON_ERROR_NONE
  • JSON_ERROR_STATE_MISMATCH
  • JSON_ERROR_SYNTAX
  • JSON_FORCE_OBJECT
  • JSON_HEX_TAG
  • JSON_HEX_AMP
  • JSON_HEX_APOS
  • JSON_HEX_QUOT

LDAP:

  • LDAP_OPT_NETWORK_TIMEOUT

libxml:

  • LIBXML_LOADED_VERSION

PCRE:

  • PREG_BAD_UTF8_OFFSET_ERROR

PCNTL:

  • BUS_ADRALN
  • BUS_ADRERR
  • BUS_OBJERR
  • CLD_CONTIUNED
  • CLD_DUMPED
  • CLD_EXITED
  • CLD_KILLED
  • CLD_STOPPED
  • CLD_TRAPPED
  • FPE_FLTDIV
  • FPE_FLTINV
  • FPE_FLTOVF
  • FPE_FLTRES
  • FPE_FLTSUB
  • FPE_FLTUND
  • FPE_INTDIV
  • FPE_INTOVF
  • ILL_BADSTK
  • ILL_COPROC
  • ILL_ILLADR
  • ILL_ILLOPC
  • ILL_ILLOPN
  • ILL_ILLTRP
  • ILL_PRVOPC
  • ILL_PRVREG
  • POLL_ERR
  • POLL_HUP
  • POLL_IN
  • POLL_MSG
  • POLL_OUT
  • POLL_PRI
  • SEGV_ACCERR
  • SEGV_MAPERR
  • SI_ASYNCIO
  • SI_KERNEL
  • SI_MESGQ
  • SI_NOINFO
  • SI_QUEUE
  • SI_SIGIO
  • SI_TIMER
  • SI_TKILL
  • SI_USER
  • SIG_BLOCK
  • SIG_SETMASK
  • SIG_UNBLOCK
  • TRAP_BRKPT
  • TRAP_TRACE


Изменения в работе с INI-файлами

В PHP 5.3.0 была значительно улучшена производительность при разборе INI-файлов и добавлено несколько новых синтаксических возможностей.

  • Стандартные php.ini файлы были реорганизованы и переименованы. php.ini-development содержит настройки, рекомендуемые для использования при разработке. php.ini-production содержит настройки, рекомендуемые при производственной эксплуатации.
  • Теперь присутствует поддержка двух специальных секций: [PATH=/opt/httpd/www.example.com/] и [HOST=www.example.com]. Директивы, установленные в этих секциях не могут быть переопределены в пользовательских INI-файлах или при выполнении. Более детальную информацию об этих секциях можно найти здесь.
  • zend_extension_debug, zend_extension_debug_ts и zend_extension_ts были удалены. Используйте директиву zend_extension для загрузки всех расширений Zend.
  • Директива zend.ze1_compatibility_mode была удалена. Если эта INI-директива установлена в On, то при запуске будет сгенерирована ошибка E_ERROR.
  • Стало возможным использование полного пути для загрузки модулей, используя директиву "extension".
  • "ini-variables" могут быть использованы почти везде в php.ini файле.
  • В процессе исполнения скрипта возможно ужесточение ограничений, заданных директивой open_basedir, и область действия самой директивы теперь PHP_INI_ALL.
  • Стало возможным использовать буквенно-цифровые или переменные индексы в массивах INI-опций.
  • Функция get_cfg_var() сейчас способна возвращать массив из INI-опций.
  • Добавлены две новых почтовых директивы: mail.add_x_header и mail.log.

Были добавлены следующие INI-директивы:

  • user_ini.filename и user_ini.cache_ttl для контроля пользовательских INI-файлов.
  • Была добавлена директива exit_on_timeout. Она служит для принудительного завершения дочерних процессов Apache 1.x в случае таймаута при выполнении PHP-кода.
  • Добавлена директива mbstring.http_output_conv_mimetype. Она указывает шаблон регулярного выражения для типов контента, для которых активируется функция mb_output_handler().
  • Добавлена request_order. Позволяет контролировать, какая внешняя переменная будет доступна в массиве $_REQUEST.

Следующие INI-директивы получили новые значения по умолчанию:

  • session.use_only_cookies теперь установлена в "1" (включено) по умолчанию.
  • oci8.default_prefetch изменено с "10" на "100".


Другие изменения

  • SplFileInfo::getpathinfo() теперь возвращает информацию о пути.
  • У SplObjectStorage теперь есть поддержка ArrayAccess. Теперь также возможно хранить ассоциативную информацию с объектами в SplObjectStorage.
  • В расширении GD теперь возможно объединение пикселей в группы с помощью функции imagefilter().
  • Вывод функции var_dump() теперь включает свойства приватных объектов.
  • Функция session_start() теперь возвращает FALSE, когда начало сессии происходит неудачно.
  • Функция property_exists() теперь проверяет существование свойства независимо от доступности (так же как method_exists()).
  • Обертки потоков теперь могут использоваться include_path.
  • Параметр initial для функции array_reduce() теперь может быть любого типа.
  • Функции работы с директориями opendir(), scandir() и dir() теперь используют контекст потока по умолчанию, если он не задан явно.
  • У функции crypt() теперь есть поддержка Blowfish и расширенного DES, и возможности crypt() теперь 100% переносимы. У PHP имеется своя собственная внутренняя реализация crypt, которая используется вместо crypt или crypt_r, когда они не найдены.
  • Функция getopt() теперь принимает "длинные опции" на всех платформах. Поддерживаются необязательные значения и = в качестве разделителя для коротких опций.
  • У функции fopen() теперь есть новый режим (n), который передает константу O_NONBLOCK соответствующему низлежащему системному вызову open(). Обратите внимание, что этот режим в настоящее время не поддерживается в системах Windows.
  • Функция getimagesize() сейчас поддерживает файлы-иконки (.ico).
  • Расширение mhash перемещено в репозиторий PECL, но расширение Hash было изменено для поддержки mhash, если PHP скомпилирован с опцией --with-mhash. Обратите внимание, что расширение Hash не требует библиотеки mhash вне зависимости от того, включена ли эмуляция mhash или нет.


Переход с PHP 5.1.x на PHP 5.2.x

Содержание

  • Изменения в PHP 5.2.x
  • Изменения, нарушающие обратную совместимость
  • Новые сообщения об ошибках
  • Изменения в поддержке datetime в PHP
  • Новые параметры
  • Новые функции
  • Новые методы
  • Удаленные расширения
  • Новые расширения
  • Новые классы
  • Новые глобальные константы
  • Новые константы классов
  • Новые конфигурационные параметры INI
  • Сообщения об ошибках
  • Другие улучшения

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.1.x, 5.3.x, 5.4.x, 5.5.x и 5.6.x.


Изменения в PHP 5.2.x

Большая часть изменений в PHP 5.2.x не затронет существующий код. Тем не менее, есть несколько несовместимых изменений и новых сообщений об ошибках, которые должны быть учтены при переходе. Также рекомендуется оттестировать код перед переходом на новую версию PHP в боевой установке.

Прочтите раздел "Переход на PHP 5.1.x", если предыдущей версией PHP была PHP 5.0.x.

Аналогично, если предыдущей версией была PHP 4, прочтите также раздел "Переход с PHP 4 на PHP 5.0.x".


Изменения, нарушающие обратную совместимость

Хотя большая часть существующего кода на PHP 5 должна работать без изменений, нужно обратить внимание на следующие нарушения обратной совместимости:

  • getrusage() возвращает NULL, если переданы несовместимые аргументы, начиная с PHP 5.2.1.
  • ZipArchive::setCommentName() возвращает TRUE при удачном выполнении, начиная с PHP 5.2.1.
  • ZipArchive::setCommentIndex() возвращает TRUE при удачном выполнении, начиная с PHP 5.2.1.
  • SplFileObject::getFilename() возвращает имя файла, а не относительный/путь/к/файлу, начиная с PHP 5.2.1.
  • Изменен приоритет переменной окружения PHPRC в Win32. Переменная окружения PHPRC имеет теперь больший приоритет, чем путь, сохраненный в реестре Windows.
  • CLI SAPI больше не проверяет текущую директорию на наличие php.ini или php-cli.ini. В PHP 5.1.x существовала недокументированная особенность: исполняемый файл CLI проверял текущую директорию на наличие конфигурационного файла PHP. Это потенциально могло привести к непредсказуемому поведению в случае, если был найден нежелательный конфигурационный файл. Эта функциональность была удалена в версии 5.2.0 и PHP более не ищет в текущей директории файлы php.ini или php-cli.ini. См. также раздел "Командная строка" данного руководства.
  • Добавлено предупреждение при поиске остатка от деления на 0. В предыдущих версиях PHP выполнение операции "integer % 0" не вызывало никаких предупреждений. Результатом операции было значение FALSE. Начиная с PHP 5.2.0 эта операция вызовет E_WARNING, как и в любом другом случае деления на 0.
    <?php
    print 10 % 0;
    /* Warning:  Division by zero in filename on line n */
    ?>
  • __toString() вызывается в случаях преобразования в строку. "Магический" метод __toString() вызывается в строковом контексте, то есть во всех случаях, когда объект используется как строка. В версии PHP 5.2.0 была удалена функциональность по умолчанию, возвращавшая строку с идентификатором объекта. Эта функциональность вызывала проблемы, поскольку идентификатор в общем случае не уникален. Это изменение означает, что ваше приложение будет вести себя неправильно, если оно полагается на идентификатор объекта в виде возвращаемого значения. Попытка использовать это значение как строку вызовет перехватываемую фатальную ошибку.
    <?php
    class foo {}
    $foo = new foo;
    print     $foo;
    /* Catchable fatal error:  Object of class foo could
       not be converted to string in filename on line n */
    ?>
    Даже с методом __toString() объекты не могут использоваться для индексации массива. Возможно, позднее будет реализовано встроенное хэширование для таких случаев, но в PHP 5.2.x вам придется реализовать собственное вычисление хэш-значений или использовать новую функцию SPL: spl_object_hash(). Из метода __toString() нельзя бросать исключения.
    <?php
    class foo {
        public function     __toString() {
            throw new     Exception;
        }
    }

    try {
        print new     foo;
            /* Fatal error:  Method foo::__toString() must
           not throw an exception in filename on line n */
    } catch(Exception $e) {}
    ?>
  • Не поддерживаются абстрактные статические методы классов. По недосмотру, PHP 5.0.x и 5.1.x позволяли определять абстрактные статические методы классов. Начиная с PHP 5.2.x такие методы могут быть только у интерфейсов.
    <?php
    abstract class foo {
        abstract static function     bar();
            /* Strict Standards:  Static function foo::bar()
           should not be abstract in filename on line n */
    }
    ?>
  • Расширение Oracle требует как минимум Oracle 10 под Windows.
  • Добавлена поддержка RFC2397 (data: stream). Добавление URL-схемы "data" может потенциально привести к нарушению работы кода под Windows. Если вы работаете с файловой системой NTFS, используете мета-потоки и ваше приложение работает с файлом "data:" не указывая путь к нему, это вызовет ошибку. Чтобы исправить её, используйте протокол "file:" для доступа к файлу. См. также » RFC 2397
    <?php
    /* При allow_url_include равной OFF (по умолчанию) */
    include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+";
    /* Warning:  include(): URL file-access is disabled
       in the server configuration in filename on line n */
    ?>
  • Регрессия в шаблонах glob() В версии 5.2.4 исправление безопасности привело к регрессии для шаблонов вида "/foo/*/bar/*". Начиная с версии 5.2.5 функция glob() больше не будет выдавать предупреждение, а возвратит FALSE, если нарушены ограничения openbase_dir.


Новые сообщения об ошибках

Ниже перечислены новые сообщения об ошибках, не упоминавшиеся ранее в этом документе.

Пример #1 В ядре PHP

<?php
echo " ";
session_regenerate_id();
/*  Warning:  session_regenerate_id(): Cannot regenerate
    session id - headers already sent in filename on line n */

str_word_count("string", 4);
/* Warning:  str_word_count(): Invalid format value 4
   in filename on line n */

strripos("foo", "f", 4);
/* Notice:  strripos(): Offset is greater than the
   length of haystack string in filename on line n */

strrpos("foo", "f", 4);
/* Notice:  strrpos(): Offset is greater than the
   length of haystack string in filename on line n */

/* Начиная с PHP 5.2.1, при значении allow_url_include = OFF (по умолчанию) */
include "php://input";
/* Warning:  include(): URL file-access is disabled
   in the server configuration in filename on line n */
?>

Пример #2 Объектно-ориентированный код в ядре PHP

<?php
interface foo {
}
class bar implements foo, foo {
}
/* Fatal error: Class bar cannot implement previously
   implemented interface foo in filename on line n */

class foo {
    public $bar;
    function __get($var)
    {
        return $this->bar;
    }
}

$foo = new foo;
$bar =& $foo->prop;
/* Notice: Indirect modification of overloaded property
   foo::$prop has no effect in filename on line n */

class foo implements iterator {
    public function current() {
    }
    public function next() {
    }
    public function key() {
    }
    public function valid() {
    }
    public function rewind() {
    }
}

$foo = new foo();
foreach($foo as &$ref) {}
/* Fatal error: An iterator cannot be used with foreach
   by reference in filename on line n */

class foo {
    private function __construct() {
    }
}
class bar extends foo {
    public function __construct() {
        parent::__construct();
        /* Fatal error:  Cannot call private
           foo::__construct() in filename on line n */
    }
}
new bar;

stream_filter_register("", "class");
/* Warning:  stream_filter_register(): Filter name
   cannot be empty in filename on line n */

stream_filter_register("filter", "");
/* Warning:  stream_filter_register(): Class name
   cannot be empty in filename on line n */
?>

Пример #3 В расширении bzip2

<?php
bzopen("", "w");
/* Warning:  bzopen(): filename cannot be empty
   in filename on line n */

bzopen("foo", "a");
/* Warning:  bzopen(): 'a' is not a valid mode for
   bzopen(). Only 'w' and 'r' are supported in
   filename on line n */

$fp = fopen("foo", "w");
bzopen($fp, "r");
/* Warning:  bzopen(): cannot read from a stream
   opened in write only mode in filename on line n */
?>

Пример #4 В расширении datetime

<?php
strtotime("today", "now");
/* Warning:  strtotime() expects parameter 2 to be
   long, string given in filename on line n */

/* As of PHP 5.2.1 */
new DateTime(new stdclass);
/* Fatal error: Uncaught exception 'Exception' with
   message 'DateTime::__construct() expects parameter
   1 to be string, object given' in filename:n */
?>

Пример #5 В расширении dBase

<?php
dbase_open("foo", -1);
/* Warning: Invalid access mode -1 in filename on line n */

/* As of PHP 5.2.1 */
dbase_open("foo", null);
/* Warning: The filename cannot be empty in filename on line n */
?>

Пример #6 В расширении mcrypt

<?php
$key = "секретный ключ";
$td = mcrypt_module_open('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td),
                        MCRYPT_RAND);
mcrypt_generic_init($td, $key, $iv);
$encrypted_data = mcrypt_generic($td, "");
/* Warning: mcrypt_generic(): An empty string was
   passed in filename on line n */
?>

Пример #7 В расширении oci8

<?php
oci_connect("user", "pass", "db", "bogus_charset");
/* Warning: Invalid character set name:
   bogus_charset in filename on line n */

$oci = oci_connect("user", "pass", "db");
oci_password_change($oci, "", "old", "new");
/* Warning: username cannot be empty in filename
   on line n */

oci_password_change($oci, "user", "", "new");
/* Warning: old password cannot be empty in filename
   on line n */

oci_password_change($oci, "user", "old", "");
/* Warning: new password cannot be empty in filename
   on line n */
?>

Пример #8 В расширении SPL

<?php
$obj = new SplFileObject(__FILE__);
$obj->fgetcsv("foo");
/* Warning:  SplFileObject::fgetcsv(): delimiter must
   be a character in filename on line n */

$obj->fgetcsv(",", "foo");
/* Warning:  SplFileObject::fgetcsv(): enclosure must
   be a character in filename on line n */
?>

Пример #9 В расширении Semaphore (sysvmsg)

<?php
/* Warning:  maximum size of the message has to be
   greater then zero in filename on line n */
?>

Пример #10 Пример Zip для версий 5.2.1+

<?php
$obj = new ZipArchive();
$obj->open('archive.zip');
$obj->setCommentName('', 'комментарий');
/* Notice:  ZipArchive::setCommentName(): Empty string
   as entry name in filename on line n */

/* Начиная с PHP 5.2.1 */
$obj->getCommentName('');
/* Notice:  ZipArchive::getCommentName(): Empty string
   as entry name in filename on line n */
?>


Изменения в поддержке datetime в PHP

Начиная с PHP 5.1.0, в ядро PHP включено расширение date. Это новая реализация поддержки работы с датой и временем в PHP. Хотя расширение попытается угадать системные настройки временной зоны, лучше установить их вручную. Это можно сделать одним из трех способов:

  • в php.ini при помощи параметра date.timezone
  • в системе при помощи переменной окружения TZ
  • из скрипта при помощи функции date_default_timezone_set()

Поддерживаемые идентификаторы временных зон перечислены в документации.

Начиная с PHP 5.2.x существует объектное представление даты и временной зоны: DateTime и DateTimeZone соответственно. Их методы соответствуют существующим функциям для работы с датой.


Новые параметры

В PHP 5.2.x у некоторых функций появились новые, необязательные параметры:

Ядро PHP:

  • htmlentities() - добавлен параметр double_encode в PHP 5.2.3.
  • htmlspecialchars() - добавлен параметр double_encode в PHP 5.2.3.
  • base64_decode() - добавлен параметр strict
  • setcookie() - добавлен параметр httponly
  • setrawcookie() - добавлен параметр httponly
  • session_set_cookie_params() - добавлен параметр httponly
  • memory_get_usage() - добавлен параметр real_usage
  • get_loaded_extensions() - добавлен параметр zend_extensions в PHP 5.2.4

curl:

  • curl_multi_info_read() - добавлен параметр msgs_in_queue

datetime

  • date() - добавлен символ форматирования "u" (миллисекунды) в PHP 5.2.2

imap:

  • imap_open() - добавлен параметр n_retries
  • imap_reopen() - добавлен параметр n_retries

mbstring:

  • mb_strrpos() - добавлен параметр offset
    Внимание

    Параметр offset добавлен на место параметра encoding. Обратная совместимость обеспечивается указанием encoding как третьего параметра. Однако использовать это не рекомендуется, так как поддержка encoding как третьего параметра будет удалена в последующих версиях PHP.

ming:

  • SWFMovie::streamMP3() - добавлен параметр skip в PHP 5.2.1

openssl:

  • openssl_verify() - добавлен параметр signature_algo

pgsql:

  • pg_escape_bytea() - добавлен параметр connection
  • pg_escape_string() - добавлен параметр connection

simplexml:

  • SimpleXMLElement::__construct() - добавлен параметр is_prefix
  • SimpleXMLElement::attributes() - добавлен параметр is_prefix
  • SimpleXMLElement::children() - добавлен параметр is_prefix
  • simplexml_load_file() - добавлен параметр is_prefix
  • simplexml_load_string() - добавлен параметр is_prefix

spl:

  • array iterator_to_array(Traversable it [, bool use_keys = true]) - добавлен параметр use_keys в PHP 5.2.1

xmlreader:

  • XMLReader::open() - добавлены параметры encoding и options
  • XMLReader::XML() - добавлены параметры encoding и options

XMLWriter:

  • xmlwriter_write_element() - параметр content стал необязательным в PHP 5.2.3
  • xmlwriter_write_element_ns() - параметр content стал необязательным в PHP 5.2.3


Новые функции

В PHP 5.2.x было добавлено несколько новых функций:

Ядро PHP:

  • array_fill_keys() - Создает массив, используя элементы первого параметра в виде ключей и присваивая всем значение val
  • error_get_last() - Возвращает последнюю ошибку в ассоциативном массиве или NULL, если ошибок не было.
  • image_type_to_extension() - Возвращает расширение файла для типа изображения, полученного из getimagesize(), exif_read_data(), exif_thumbnail(), exif_imagetype()
  • memory_get_peak_usage() - Возвращает максимум выделенной для PHP памяти
  • sys_get_temp_dir() - Возвращает путь к директории для временных файлов. (Добавлено в 5.2.1)
  • timezone_abbreviations_list() - Возвращает ассоциативный массив, содержащий для каждой аббревиатуры временной зоны флаг летнего времени (DST), смещение от стандартного времени и название пояса.
  • timezone_identifiers_list() - Возвращает массив идентификаторов всех временных зон.
  • timezone_name_from_abbr() - Возвращает название временной зоны по аббревиатуре
  • stream_socket_shutdown() - Закрывает соединение или его часть на сокете, связанном с потоком, который будет закрыт. Начиная с PHP 5.2.1.

Image:

  • imagegrabscreen() - Делает снимок всего экрана. Начиная с PHP 5.2.2.
  • imagegrabwindow() - Делает снимок окна. Начиная с PHP 5.2.2.

libXML:

  • libxml_disable_entity_loader() - Отключает возможность загрузки внешних сущностей. Начиная с PHP 5.2.11.

mbstring:

  • mb_stripos() - Находит позицию первого вхождения строки в другой строке. Регистронезависимая.
  • mb_stristr() - Находит первое вхождение строки в другой строке. Регистронезависимая.
  • mb_strrchr() - Находит последнее вхождение символа строки в другой строке.
  • mb_strrichr() - Находит последнее вхождение символа из строки в другой строке. Регистронезависимая.
  • mb_strripos() - Находит позицию последнего вхождения строки в другой строке. Регистронезависимая.
  • mb_strstr() - Находит первое вхождение строки в другой строке.

ming (Начиная с PHP 5.2.1):

  • void ming_setSWFCompression(int num) - Устанавливает сжатие выходного потока.
  • void swfmovie::namedanchor(string name) - Создает якорь.
  • void swfmovie::protect([string password]) - Защищает выходной поток.

openssl:

  • openssl_csr_get_public_key() - Извлекает открытый ключ из CERT и подготавливает его к использованию.
  • openssl_csr_get_subject() - Возвращает предмет (subject) CERT
  • openssl_pkey_get_details() - Возвращает массив с информацией о ключе (bits, pkey, type)

spl:

  • spl_object_hash() - Возвращает хэш-значение для данного объекта
  • int iterator_apply(Traversable it, mixed function [, mixed params]) - Вызывает функцию для каждого элемента итератора.

pcre:

  • preg_last_error() - Возвращает код ошибки для последнего поиска по регулярному выражению.

pgsql:

  • pg_field_table() - Возвращает название таблицы, которой принадлежит поле, или oid таблицы, если oid_only содержит TRUE

posix:

  • posix_initgroups() - Вычисляет список доступа группы по имени пользователя.

gmp:

  • gmp_nextprime() - Находит следующее простое число.

xmlwriter:

  • xmlwriter_full_end_element() - Закрывает текущий элемент, возвращает FALSE при ошибке.
  • xmlwriter_write_raw() - Пишет текст, возвращает FALSE при ошибке.
  • xmlwriter_start_dtd_entity() - Начинает DTD-сущность, возвращает FALSE при ошибке.
  • xmlwriter_end_dtd_entity() - Заканчивает текущую DTD-сущность, возвращает FALSE при ошибке.
  • xmlwriter_write_dtd_entity() - Записывает полную DTD-сущность, возвращает FALSE при ошибке.


Новые методы

В 5.2.0 были добавлены новые методы:

dom:

  • DOMDocument::registerNodeClass() - Регистрирует расширенный класс для создания базового типа узла.
  • DOMElement::setIDAttribute() - Объявляет атрибут, указанный по имени, типом указанного идентификатора.
  • DOMElement::setIDAttributeNode() - Объявляет атрибут, указанный по узлу, типом указанного идентификатора.
  • DOMElement::setIDAttributeNS() - Объявляет атрибут, указанный по локальному имени и URI пространства имен, типом указанного идентификатора.
  • DOMNode::C14N()([bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) - Записывает каноническую запись узлов в строку.
  • DOMNode::C14NFile()(string uri [, bool exclusive [, bool with_comments [, array xpath [, array ns_prefixes]]]]) - Записывает каноническую запись узлов в файл.
  • DOMNode::getNodePath()() - Возвращает xpath узла

soap:

  • SoapServer::setObject()(object obj) - Устанавливает объект-обработчик SOAP-запросов.

spl:

  • int ArrayObject::asort()(void) - Сортирует массив по значениям.
  • int ArrayObject::ksort()(void) - Сортирует массив по ключам.
  • int ArrayObject::natcasesort()(void) - Сортирует массив по ключам, используя регистронезависимую сортировку алгоритмом "natural order".
  • int ArrayObject::natsort()(void) - Сортирует массив по значениям, используя сортировку алгоритмом "natural order".
  • int ArrayObject::uasort()(callback cmp_function) - Сортирует массив по значениям, используя функцию сравнения, заданную пользователем.
  • int ArrayObject::uksort()(callback cmp_function) - Сортирует массив по ключам, используя функцию сравнения, заданную пользователем.
  • ArrayIterator AppendIterator::getArrayIterator()() - Предоставляет доступ к внутреннему итератору (ArrayIterator).
  • int AppendIterator::getIteratorIndex()() - Возвращает индекс итератора.
  • bool CachingIterator::getCache()() - Возвращает флаг кэша.
  • int CachingIterator::getFlags()() - Возвращает внутренние флаги.
  • bool CachingIterator::offsetExists()(mixed index) - Возвращает TRUE, если индекс существует.
  • string CachingIterator::offsetGet()(mixed index) - Возвращает внутренний кэш при его использовании.
  • void CachingIterator::offsetSet()(mixed index, mixed newval) - Устанавливает индекс в кэше.
  • void CachingIterator::offsetUnset()(mixed index) - Очищает индекс в кэше.
  • void CachingIterator::setFlags()() - Устанавливает внутренние флаги.
  • array("delimiter" =>, "enclosure" =>) SplFileObject::getCsvControl()(void) - Возвращает разделяющий и обрамляющий символы, используемые в fgetcsv().
  • void SplFileObject::setCsvControl()([string delimiter = ',' [, string enclosure = '"']]) - Устанавливает разделяющий и обрамляющий символы, используемые в fgetcsv().

Tidy

  • tidyNode tidyNode::getParent()() - Возвращает родительский узел текущего. (Добавлено в PHP 5.2.2)

XMLReader

  • boolean XMLReader::setSchema() - Использует W3C XSD схему для проверки документа при обработке. Можно использовать перед первым вызовом XMLReader::read().

zip:

  • ZipArchive::addEmptyDir()() - Создает пустую директорию в архиве.


Удаленные расширения

Эти расширения были перенесены в PECL и более не являются частью дистрибутива PHP. Пакеты в PECL для этих расширений будут создаваться по запросам пользователей.

  • filePro
  • Hyperwave API


Новые расширения

Следующие расширения были добавлены (по умолчанию) в PHP 5.2.0:

  • Filter - Проверяет и фильтрует данные. Разработан для работы с небезопасными данными, такими, как пользовательский ввод. Это расширение включено по умолчанию. Режим RAW (по умолчанию) не влияет на входные данные.
  • JSON - Реализует работу с форматом обмена данными the JavaScript Object Notation (JSON). Это расширение включено по умолчанию.
  • Zip - Позволяет прозрачно читать и писать ZIP-архивы и файлы в них.


Новые классы

Следующие классы были добавлены в PHP 5.2.0:

  • DateTime
  • DateTimeZone
  • RegexIterator - extends FilterIterator; implements Iterator, Traversable, OuterIterator Константы:
    • RegexIterator::ALL_MATCHES
    • RegexIterator::GET_MATCH
    • RegexIterator::MATCH
    • RegexIterator::REPLACE
    • RegexIterator::SPLIT
    • RegexIterator::USE_KEY
    Свойства:
    • public replacement
    Методы:
    • RegexIterator::__construct(Iterator it, string regex [, int mode [, int flags [, int preg_flags]]]) - Создает RegexIterator из другого итератора и регулярного выражения.
    • bool RegexIterator::accept() - Проверяет (string)current() на соответствие регулярному выражению.
    • bool RegexIterator::getFlags() - Возвращает текущие флаги.
    • bool RegexIterator::getMode() - Возвращает текущий режим работы.
    • bool RegexIterator::getPregFlags() - Возвращает текущие флаги PREG (или NULL, если они не используются)
    • bool RegexIterator::setFlags(int new_flags) - Устанавливает флаги.
    • bool RegexIterator::setMode(int new_mode) - Устанавливает новый режим работы.
    • bool RegexIterator::setPregFlags(int new_flags) - Устанавливает флаги PREG.
  • RecursiveRegexIterator Константы:
    • RecursiveRegexIterator::ALL_MATCHES
    • RecursiveRegexIterator::GET_MATCH
    • RecursiveRegexIterator::MATCH
    • RecursiveRegexIterator::REPLACE
    • RecursiveRegexIterator::SPLIT
    • RecursiveRegexIterator::USE_KEY
    Методы:
    • RecursiveRegexIterator::__construct(RecursiveIterator it, string regex [, int mode [, int flags [, int preg_flags]]]) - Создает RecursiveRegexIterator из другого рекурсивного итератора и регулярного выражения.
    • RecursiveRegexIterator RecursiveRegexIterator::getChildren() - Возвращает внутренний итератор потомков, содержащихся в текущем RecursiveRegexIterator.
    • bool RecursiveRegexIterator::hasChildren() - Проверяет, есть ли у текущего элемента внутреннего итератора потомки.


Новые глобальные константы

Ядро PHP:

  • M_EULER
  • M_LNPI
  • M_SQRT3
  • M_SQRTPI
  • PATHINFO_FILENAME
  • PREG_BACKTRACK_LIMIT_ERROR
  • PREG_BAD_UTF8_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_NO_ERROR
  • PREG_RECURSION_LIMIT_ERROR
  • UPLOAD_ERR_EXTENSION
  • STREAM_SHUT_RD
  • STREAM_SHUT_WR
  • STREAM_SHUT_RDWR

curl:

  • CURLE_FILESIZE_EXCEEDED
  • CURLE_FTP_SSL_FAILED
  • CURLE_LDAP_INVALID_URL
  • CURLFTPAUTH_DEFAULT
  • CURLFTPAUTH_SSL
  • CURLFTPAUTH_TLS
  • CURLFTPSSL_ALL
  • CURLFTPSSL_CONTROL
  • CURLFTPSSL_NONE
  • CURLFTPSSL_TRY
  • CURLOPT_FTP_SSL
  • CURLOPT_FTPSSLAUTH
  • CURLOPT_TCP_NODELAY Добавлено в PHP 5.2.1.
  • CURLOPT_TIMEOUT_MS Добавлено в PHP 5.2.3
  • CURLOPT_CONNECTTIMEOUT_MS Добавлено в PHP 5.2.3

GMP:

  • GMP_VERSION Добавлено в PHP 5.2.2.

ming:

  • SWFTEXTFIELD_USEFONT
  • SWFTEXTFIELD_AUTOSIZE
  • SWF_SOUND_NOT_COMPRESSED
  • SWF_SOUND_ADPCM_COMPRESSED
  • SWF_SOUND_MP3_COMPRESSED
  • SWF_SOUND_NOT_COMPRESSED_LE
  • SWF_SOUND_NELLY_COMPRESSED
  • SWF_SOUND_5KHZ
  • SWF_SOUND_11KHZ
  • SWF_SOUND_22KHZ
  • SWF_SOUND_44KHZ
  • SWF_SOUND_8BITS
  • SWF_SOUND_16BITS
  • SWF_SOUND_MONO
  • SWF_SOUND_STEREO

openssl:

  • OPENSSL_VERSION_NUMBER
  • OPENSSL_VERSION_TEXT

snmp:

  • SNMP_OID_OUTPUT_FULL
  • SNMP_OID_OUTPUT_NUMERIC

Semaphore:

  • MSG_EAGAIN
  • MSG_ENOMSG


Новые константы классов

pdo:

  • PDO::ATTR_DEFAULT_FETCH_MODE
  • PDO::FETCH_PROPS_LATE
  • PDO::FETCH_KEY_PAIR Преобразует 2-колоночный результат в ассоциативный массив. (Добавлено в PHP 5.2.3)

spl:

  • CachingIterator::FULL_CACHE
  • CachingIterator::TOSTRING_USE_INNER
  • SplFileObject::READ_AHEAD
  • SplFileObject::READ_CSV
  • SplFileObject::SKIP_EMPTY


Новые конфигурационные параметры INI

Новые директивы php.ini, добавленные в PHP 5.2.0:

  • allow_url_include Эта опция дает возможность различать стандартные файловые операции с удаленными файлами и подключение удаленных файлов. Хотя обычно требуется первое, второе может привести к проблемам с безопасностью. Начиная с PHP 5.2.0, вы можете разрешить операции с удаленными файлами и при этом запретить их подключение к локальным скриптам. Это конфигурация по умолчанию.
  • pcre.backtrack_limit Лимит обратных ссылок PCRE.
  • pcre.recursion_limit Лимит рекурсии PCRE. Пожалуйста, имейте в виду, что при установке достаточно большого значения в этом параметре, весь доступный стек процесса может быть занят и PHP остановится из-за превышения размера стека, установленного операционной системой.
  • session.cookie_httponly Устанавливает доступ в отсылаемых cookies только через протокол HTTP. Это означает, что cookies не будут доступны скриптовым языкам, например, таким как JavaScript. Эта установка может помочь в борьбе с XSS-атаками, хотя она и поддерживается не всеми браузерами.

Новые директивы в PHP 5.2.2:

  • max_input_nesting_level Ограничивает вложенность входных переменных, по умолчанию 64.


Сообщения об ошибках

Некоторые существующие ошибки (E_ERROR) теперь можно поймать при помощи обработчиков. Если E_RECOVERABLE_ERROR не обработана, она будет вести себя как E_ERROR. Ошибки этого типа записываются в лог как Catchable fatal error.

Это означает, что значение константы E_ALL error_reporting теперь равно 6143, тогда как предыдущее значение было 2047. Так как имена констант не имеют смысла вне PHP, иногда используются их числовые значения. То есть, например, при установке error_reporting через httpd.conf или .htaccess, данное значение нужно будет сменить при переходе на новую версию PHP. То же касается и числовых значений, если они используются вместо имен констант в скриптах.

Как побочный эффект этих изменений, чтобы предотвратить двойное сообщение об ошибке при параметре track_errors выставленном в On, теперь необходимо возвращать FALSE из пользовательских обработчиков, чтобы отобразилось значение $php_errormsg. Это позволяет точно контролировать уровни сообщений.


Другие улучшения

  • Улучшено управление памятью и увеличен лимит памяти по умолчанию. Новый менеджер памяти выделяет меньше памяти и работает быстрее, чем предыдущая реализация. Он запрашивает память большими блоками и затем управляет кучей сам. Значение memory_limit в php.ini проверяется не при каждом вызове emalloc(), как раньше, а только при действительном запросе памяти у системы. Это означает, что memory_limit гораздо более точен, чем раньше, так как старый менеджер памяти не учитывал дополнительные затраты библиотеки malloc. Благодаря новому механизму может показаться, что используется больше памяти, тогда как на самом деле это не так. Чтобы скомпенсировать это кажущееся увеличение, значение memory_limit также увеличено с 8 до 16 мегабайт.
  • Добавлена поддержка конструкторов в интерфейсах. Это позволяет проверять сигнатуру конструкторов в реализациях интерфейса. Начиная с PHP 5.2.0, интерфейсы могут содержать конструкторы. Если вы объявляете конструктор в интерфейсе, каждая его реализация должна иметь конструктор с той же сигнатурой, что и конструктор интерфейса. Под "сигнатурой" мы понимаем возвращаемый тип и набор параметров, включая указание типов и передачу параметров по ссылке или значению.


Переход с PHP 5.0.x на PHP 5.1.x

Содержание

  • Основные возможности PHP 5.1.x
  • Changes in reference handling
  • Reading []
  • Integer values in function parameters
  • Class and object changes
  • Extensions
  • Date/time support
  • Changes in database support
  • Checking for E_STRICT

Смотрите также руководство по миграции для версий PHP 5.0.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x и 5.6.x.


Основные возможности PHP 5.1.x

Некоторые из ключевых возможностей PHP 5.1.x содержат:

  • Полностью переписан код по работе с датами с расширенной поддержкой временных зон.

  • Значительное улучшение производительности по сравнению с PHP 5.0.X.

  • Расширение PDO сейчас включено по умолчанию.

  • Свыше 30 новых функций в различных расширениях и во встроенной функциональности.

  • Свыше 400 различных исправлений ошибок.


Changes in reference handling

  • Обзор

  • Code that worked under PHP 4.3.x, but now fails

  • Code that worked under PHP 4.3.x, but now throws an error

  • Code that failed under PHP 4.3.x, but now works

  • Code that should have worked under PHP 5.0.x

  • Warnings that came and went

Обзор

From the PHP script writer's point of view, the change most likely to impact legacy code is in the way that references are handled in all PHP versions post-dating the PHP 4.4.0 release.

Until and including PHP 4.3, it was possible to send, assign or return variables by reference that should really be returned by value, such as a constant, a temporary value (e.g. the result of an expression), or the result of a function that had itself been returned by value, as here:

<?php
$foo = "123";

function return_value() {
    global $foo;
    return $foo;
}

$bar = &return_value();
?>

Although this code would usually work as expected under PHP 4.3, in the general case the result is undefined. The Zend Engine could not act correctly on these values as references. This bug could and did lead to various hard-to-reproduce memory corruption problems, particularly where the code base was large.

In PHP 4.4.0, PHP 5.0.4 and all subsequent PHP releases, the Engine was fixed to 'know' when the reference operation is being used on a value that should not be referenced. The actual value is now used in such cases, and a warning is emitted. The warning takes the form of an E_NOTICE in PHP 4.4.0 and up, and E_STRICT in PHP 5.0.4 and up.

Code that could potentially produce memory corruption can no longer do so. However, some legacy code might work differently as a result.

Code that worked under PHP 4.3, but now fails

<?php
function func(&$arraykey) {
    return $arraykey; // function returns by value!
}

$array = array('a', 'b', 'c');
foreach (array_keys($array) as $key) {
    $y = &func($array[$key]);
    $z[] =& $y;
}

var_dump($z);
?>
<

Running the above script under any version of PHP that pre-dates the reference fix would produce this output:

array(3) {
  [0]=>
  &string(1) "a"
  [1]=>
  &string(1) "b"
  [2]=>
  &string(1) "c"
}

Following the reference fix, the same code would result in:

array(3) {
  [0]=>
  &string(1) "c"
  [1]=>
  &string(1) "c"
  [2]=>
  &string(1) "c"
}

This is because, following the changes, func() assigns by value. The value of $y is re-assigned, and reference-binding is preserved from $z. Prior to the fix, the value was assigned by reference, leading $y to be re-bound on each assignment. The attempt to bind to a temporary value by reference was the cause of the memory corruption.

Such code can be made to work identically in both the pre-fix and the post-fix PHP versions. The signature of func() can be altered to return by reference, or the reference assignment can be removed from the result of func().

<?php
function func() {
    return 'function return';
}

$x = 'original value';
$y =& $x;
$y = &func();
echo $x;
?>

In PHP 4.3 $x would be 'original value', whereas after the changes it would be 'function return' - remember that where the function does not return by reference, the reference assignment is converted to a regular assignment. Again, this can be brought to a common base, either by forcing func() to return by reference or by eliminating the by-reference assignment.

Code that worked under PHP 4.3.x, but now throws an error

<?php
class Foo {

    function getThis() {
        return $this;
    }

    function destroyThis() {
        $baz =& $this->getThis();
    }
}

$bar = new Foo();
$bar->destroyThis();
var_dump($bar);
?>

In PHP 5.0.3, $bar evaluated to NULL instead of returning an object. That happened because getThis() returns by value, but the value here is assigned by reference. Although it now works in the expected way, this is actually invalid code which will throw an E_NOTICE under PHP 4.4 or an E_STRICT under PHP 5.0.4 and up.

Code that failed under PHP 4.3.x, but now works

<?php
function &f() {
    $x = "foo";
    var_dump($x);
    print "$x\n";
    return($a);
}

for ($i = 0; $i < 3; $i++) {
    $h = &f();
}
?>

In PHP 4.3 the third call to var_dump() produces NULL, due to the memory corruption caused by returning an uninitialized value by reference. This is valid code in PHP 5.0.4 and up, but threw errors in earlier releases of PHP.

<?php
$arr = array('a1' => array('alfa' => 'ok'));
$arr =& $arr['a1'];
echo '-'.$arr['alfa']."-\n";
?>

Until PHP 5.0.5, it wasn't possible to assign an array element by reference in this way. It now is.

Code that should have worked under PHP 5.0.x

There are a couple of instances of bugs reported under PHP 5.0 prior to the reference fixes which now 'work'. However, in both cases errors are thrown by PHP 5.1.x, because the code was invalid in the first place. Returning values by reference using self:: now works in the general case but throws an E_STRICT warning, and although your mileage may vary when assigning by reference to an overloaded object, you will still see an E_ERROR when you try it, even where the assignment itself appears to work.

Warnings that came and went

Nested calls to functions returning by reference are valid code under both PHP 4.3.x and PHP 5.1.x, but threw an unwarranted E_NOTICE or E_STRICT under the intervening PHP releases.

<?php
function & foo() {
    $var = 'ok';
    return $var;
}

function & bar() {
    return foo();
}

$a =& bar();
echo "$a\n";
?>


Reading []

<?php
class XmlTest {

    function test_ref(&$test) {
        $test = "ok";
    }

    function test($test) { }

    function run() {
        $ar = array();
        $this->test_ref($ar[]);
        var_dump($ar);
        $this->test($ar[]);
    }
}

$o = new XmlTest();
$o->run();
?>

This should always have thrown a fatal E_ERROR, because [] cannot be used for reading in PHP. It is invalid code in PHP 4.4.2 and PHP 5.0.5 upward.


Integer values in function parameters

With the advent of PHP 5.0.x, a new parameter parsing API was introduced which is used by a large number of PHP functions. In all versions of PHP between 5.0.x and 5.1.x, the handling of integer values was very strict and would reject non-well formed numeric values when a PHP function expected an integer. These checks have now been relaxed to support non-well formed numeric strings such as " 123" and "123 ", and will no longer fail as they did under PHP 5.0.x. However, to promote code safety and input validation, PHP functions will now emit an E_NOTICE when such strings are passed as integers.


Class and object changes

  • instanceof, is_a(), is_subclass_of() and catch

  • Abstract private methods

  • Access modifiers in interfaces

  • Changes in inheritance rules

  • Class constants

instanceof, is_a(), is_subclass_of() and catch

In PHP 5.0, is_a() was deprecated and replaced by the instanceof operator. There were some issues with the initial implementation of instanceof, which relied on __autoload() to search for missing classes. If the class was not present, instanceof would throw a fatal E_ERROR due to the failure of __autoload() to discover that class. The same behaviour occurred in the catch operator and the is_subclass_of() function, for the same reason.

None of these functions or operators call __autoload() in PHP 5.1.x, and the class_exists() workarounds used in code written for PHP 5.0.x, while not problematic in any way, are no longer necessary.

Abstract private methods

Abstract private methods were supported between PHP 5.0.0 and PHP 5.0.4, but were then disallowed on the grounds that the behaviours of private and abstract are mutually exclusive.

Access modifiers in interfaces

Under PHP 5.0, function declarations in interfaces were treated in exactly the same way as function declarations in classes. This has not been the case since October 2004, at which point only the public access modifier was allowed in interface function declarations. Since April 2005 - which pre-dates the PHP 5.0b1 release - the static modifier has also been allowed. However, the protected and private modifiers will now throw an E_ERROR, as will abstract. Note that this change should not affect your existing code, as none of these modifiers makes sense in the context of interfaces anyway.

Changes in inheritance rules

Under PHP 5.0, it was possible to have a function declaration in a derived class that did not match the declaration of the same function in the base class, e.g.

This code will cause an E_STRICT error to be emitted under PHP 5.1.x.

<?php
class Base {
    function &return_by_ref() {
        $r = 1;
        return $r;
    }
}

class Derived extends Base {
    function return_by_ref() {
        return 1;
    }
}
?>

Class constants

Under PHP 5.0.x, the following code was valid:

Under PHP 5.1.x, redefinition of a class constant will throw a fatal E_ERROR.

<?php
class test {
    const foobar = 'foo';
    const foobar = 'bar';
}

?>


Extensions

  • Extensions that are gone from the PHP core

  • Class constants in new PHP 5.1.x extensions

Extensions that are gone from the PHP core

One of the first things you're likely to notice when you download PHP 5.1.x is that several of the older extensions have disappeared. Those extensions that are still actively maintained are available in the PHP Extension Community Library (PECL), at » http://pecl.php.net/.

Removed extensions
Extension | Alternative/Status
ext/cpdf | pecl/pdflib
ext/dbx | pecl/dbx
ext/dio | pecl/dio
ext/fam | Not actively maintained
ext/ingres_ii | pecl/ingres
ext/ircg | Not actively maintained
ext/mcve | pecl/mcve
ext/mnogosearch | Not actively maintained
ext/oracle | ext/oci8 or ext/pdo_oci
ext/ovrimos | Not actively maintained
ext/pfpro | Not actively maintained
ext/w32api | » pecl/ffi
ext/yp | Not actively maintained
ext/activescript | » pecl/activescript

Modules in PECL that are not actively maintained (i.e. have not been supported for some time, have no active maintainer working on them currently, and do not have any PECL package releases), are still available in SVN at » http://svn.php.net/viewvc/pecl. However, unreleased PHP modules are by their nature unsupported, and your mileage may vary when attempting to install or use them.

Class constants in new PHP 5.1.x extensions

The Zend Engine 2.1 API allows extension developers to declare class constants in object oriented extensions. New extensions written for PHP 5.1.x, including SPL, PDO, XMLReader and date, have their constants in the format PDO::CLASS_CONSTANT rather than in the C format PDO_CLASS_CONSTANT in order to minimise pollution of the global namespace in PHP.


Date/time support

Date/time support has been fully rewritten in PHP 5.1.x, and no longer uses the system settings to 'know' the timezone in operation. It will instead utilize, in the following order:

  • The timezone set using the date_default_timezone_set() function (if any)

  • The TZ environment variable (if non empty)

  • "magical" guess (if the operating system supports it)

  • If none of the above options succeeds, UTC

To ensure accuracy (and avoid an E_STRICT warning), you will need to define your timezone in your php.ini using the following format:

date.timezone = Europe/London

The supported timezones are listed, in this format, in the timezones appendix.

Also note that strtotime() now returns FALSE on failure, instead of -1.


Changes in database support

  • PDO overview

  • Changes in MySQL support

  • Changes in SQLite support

PDO overview

PHP Data Objects (PDO) were introduced as a PECL extension under PHP 5.0, and became part of the core PHP distribution in PHP 5.1.x. The PDO extension provides a consistent interface for database access, and is used alongside database-specific PDO drivers. Each driver may also have database-specific functions of its own, but basic data access functionality such as issuing queries and fetching data is covered by PDO functions, using the driver named in PDO::__construct().

Note that the PDO extension, and its drivers, are intended to be built as shared extensions. This will enable straightforward driver upgrades from PECL, without forcing you to rebuild all of PHP.

At the point of the PHP 5.1.x release, PDO is more than ready for widespread testing and could be adopted in most situations. However, it is important to understand that PDO and its drivers are comparatively young and may be missing certain database-specific features; evaluate PDO carefully before you use it in new projects.

Legacy code will generally rely on the pre-existing database extensions, which are still maintained.

Changes in MySQL support

In PHP 4, MySQL 3 support was built-in. With the release of PHP 5.0 there were two MySQL extensions, named 'mysql' and 'mysqli', which were designed to support MySQL < 4.1 and MySQL 4.1 and up, respectively. With the introduction of PDO, which provides a very fast interface to all the database APIs supported by PHP, the PDO_MYSQL driver can support any of the current versions (MySQL 3, 4 or 5) in PHP code written for PDO, depending on the MySQL library version used during compilation. The older MySQL extensions remain in place for reasons of back compatibility, but are not enabled by default.

Changes in SQLite support

In PHP 5.0.x, SQLite 2 support was provided by the built-in sqlite extension, which was also available as a PECL extension in PHP 4.3 and PHP 4.4. With the introduction of PDO, the sqlite extension doubles up to act as a 'sqlite2' driver for PDO; it is due to this that the sqlite extension in PHP 5.1.x has a dependency upon the PDO extension.

PHP 5.1.x ships with a number of alternative interfaces to sqlite:

The sqlite extension provides the "classic" sqlite procedural/OO API that you may have used in prior versions of PHP. It also provides the PDO 'sqlite2' driver, which allows you to access legacy SQLite 2 databases using the PDO API.

PDO_SQLITE provides the 'sqlite' version 3 driver. SQLite version 3 is vastly superior to SQLite version 2, but the file formats of the two versions are not compatible.

If your SQLite-based project is already written and working against earlier PHP versions, then you can continue to use ext/sqlite without problems, but will need to explicitly enable both PDO and sqlite. New projects should use PDO and the 'sqlite' (version 3) driver, as this is faster than SQLite 2, has improved locking concurrency, and supports both prepared statements and binary columns natively.

You must enable PDO to use the SQLite extension. If you want to build the PDO extension as a shared extension, then the SQLite extension must also be built shared. The same holds true for any extension that provides a PDO driver


Checking for E_STRICT

If you only have a single script to check, you can pick up E_STRICT errors using PHP's commandline lint facility:

php -d error_reporting=4095 -l script_to_check.php

For larger projects, the shell script below will achieve the same task:

#!/bin/sh

directory=$1

shift

# These extensions are checked
extensions="php inc"

check_file ()
{
  echo -ne "Doing PHP syntax check on $1 ..."

  # Options:
  ERRORS=`/www/php/bin/php -d display_errors=1 -d html_errors=0 -d error_prepend_string=" " -d error_append_string=" " -d error_reporting=4095 -l $1 | grep -v "No syntax errors detected"`

  if test -z "$ERRORS"; then
    echo -ne "OK."
  else
    echo -e "Errors found!\n$ERRORS"
  fi

  echo
}

# loop over remaining file args
for FILE in "$@" ; do
  for ext in $extensions; do
     if echo $FILE | grep "\.$ext$" > /dev/null; then
       if test -f $FILE; then
         check_file "$FILE"
       fi
     fi
  done
done


Переход с PHP 4 на PHP 5.0.x

Содержание

  • Что изменилось в PHP 5.0.x
  • Изменения, повлекшие за собой обратную несовместимость
  • CLI и CGI
  • Миграция конфигурационных файлов
  • Новые функции
  • Новые директивы
  • Базы данных
  • Новая Объектная Модель
  • Сообщения об ошибках

Смотрите также руководство по миграции для версий PHP 5.1.x, 5.2.x, 5.3.x, 5.4.x, 5.5.x и 5.6.x.


Что изменилось в PHP 5.0.x

PHP 5 и интегрированный Zend Engine 2 привнесли очень многое в плане производительности и возможностей PHP, но также было приложено максимум усилий для того, чтобы сохранить совместимость с максимальным объемом существующего кода. Поэтому миграция вашего кода с PHP 4 на 5 должна быть крайне проста. Большинство существующего кода на PHP 4 должно запускаться без всяких проблем, но о некоторых различиях все равно необходимо знать, а также не забудьте протестировать ваш код перед сменой версии в production-средах.


Изменения, повлекшие за собой обратную несовместимость

Несмотря на то, что большинство кода на PHP 4 должно работать безо всяких изменений, вам следует обратить внимание на следующие изменения, повлекшие за собой обратную несовместимость:

  • Несколько новых зарезервированных ключевых слов.
  • strrpos() и strripos() теперь используют всю строку искомого параметра (needle).
  • Неправильное использование смещения внутри строки вызывает E_ERROR вместо E_WARNING. Пример неправильного использования: $str = 'abc'; unset($str[0]);.
  • array_merge() теперь принимает в качестве аргументов только массивы. Если была передана переменная, не являющаяся массивом, будет сгенерирована ошибка E_WARNING для каждого такого параметра. Будьте внимательны, потому что ваш код может вдруг начать генерировать ошибки E_WARNING.
  • Переменная сервера PATH_TRANSLATED больше не определяется неявно под Apache2 SAPI, в отличие от ситуации в PHP 4, где ей присваивается то же значение, что и переменной сервера SCRIPT_FILENAME, когда она не определяется Apache. Это изменение было сделано для соответствия » спецификации CGI/1.1. Пожалуйста, обратитесь к » ошибке #23610 для получения дальнейший информации, а также посмотрите описание $_SERVER['PATH_TRANSLATED'] в данном руководстве. Это изменение также имеет место в PHP версий >= 4.3.2.
  • Константа T_ML_COMMENT больше не объявляется расширением Tokenizer. Если директива error_reporting установлена в E_ALL, PHP сгенерирует предупреждение. Несмотря на то, что T_ML_COMMENT не использовалась вообще, она была объявлена в PHP 4. Как в PHP 4, так и в PHP 5 // и /* */ определяются как T_COMMENT. Так или иначе, комментарии /** */ в стиле PHPDoс, которые начиная с PHP 5 анализируются PHP, распознаются как T_DOC_COMMENT.
  • Суперглобальный массив $_SERVER будет создан вместе с переменными argc и argv, если variables_order включает "S". Если вы специально настроили свою систему таким образом, что $_SERVER не создается, тогда, конечно, её не будет. Изменение заключается в том, чтобы сделать argc и argv всегда доступными в CLI-версии, вне зависимости от директивы variables_order. Как уже было сказано, CLI-версия теперь всегда будет объявлять переменные argc и argv.
  • Объект без свойств больше не считается "пустым".
  • В некоторых случаях класс должен быть объявлен перед использованием. Это происходит только в том случае, если используются некоторые новые функции PHP 5 (такие как интерфейсы). В остальном поведение остается старым.
  • get_class(), get_parent_class() и get_class_methods() теперь возвращают имена классов/методов так, как они были объявлены (с учетом регистра), что может привести к проблемам со старыми скриптами, которые полагаются на прежнее поведение (имя класса/метода всегда было приведено к нижнему регистру). Возможным решением является поиск этих функций в ваших скриптах и использование в них strtolower(). Изменения относительно регистрозависимости также затрагивают магические предопределенные константы __CLASS__, __METHOD__ и __FUNCTION__. Значения возвращаются именно в том виде, в котором они были объявлены (с учетом регистра).
  • ip2long() теперь возвращает FALSE, а не -1, если в качестве аргумента функции передается неправильный IP-адрес.
  • Если во включенном файле объявлены какие-либо функции, они могут использоваться и в главном файле, вне зависимости от того, располагаются они до return или после. Если файл включается дважды, PHP 5 генерирует фатальную ошибку, так как функции уже были объявлены, в то время, как PHP 4 не жалуется на это. Рекомендуется использовать include_once вместо проверки, был ли уже включен файл и условного возврата внутри включенного файла.
  • include_once и require_once сначала стандартизируют путь к включенному файлу в Windows, так что при включении A.php и a.php файл включается только один раз.
  • Передача массива в функцию по значению больше не сбрасывает внутренний указатель массива, используемый для доступа к его элементам в данной функции. Иными словами, в PHP 4 при передаче массива в функцию его внутренний указатель сбрасывался внутри функции, тогда как в PHP 5 при передаче массива в функцию данный указатель останется в том же положении, в котором он был до передачи массива в функцию.

Пример #1 strrpos() и strripos() теперь используют в качестве искомого параметра (needle) всю строку

<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

Пример #2 Объект без свойств больше не считается "пустым"

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if ($t) {
    // Будет выполнено
}
?>

Пример #3 В некоторых случаях классы должны быть объявлены перед использованием

<?php

//работает без ошибок:
$a = new a();
class a {
}

//вызывает ошибку:
$a = new b();

interface c{
}
class b implements c {
}

?>


CLI и CGI

В PHP 5 были сделаны некоторые изменения в именах исполняемых файлов CLI и CGI. В PHP 5, CGI-версия была переименована в php-cgi.exe (ранее php.exe), а CLI-версия теперь располагается в главной директории (ранее cli/php.exe).

В PHP 5 также появился новый режим: php-win.exe. Он эквивалентен CLI-версии, за исключением того, что php-win ничего не выводит и, соответственно, не открывает консоль (окошко dos не появляется на экране). Такое поведение похоже на php-gtk.

В PHP 5, CLI-версия всегда предоставляет глобальные переменные $argv и $argc, вне зависимости от каких-либо директив в php.ini. Даже установка register_argc_argv в off не повлияет на поведение интерфейса командной строки.

Смотрите также справочник по командной строке.


Миграция конфигурационных файлов

Так как ISAPI-модули сменили свои имена с php4xxx на php5xxx, вам необходимо произвести некоторые изменения в конфигурационных файлах. Также произошли изменения в именах файлов CLI и CGI. Пожалуйста, обратитесь к соответствующему разделу для получения дополнительной информации.

Изменения в конфигурации Apache минимальны. Пример ниже показывает изменения, которые вам требуется произвести:

Пример #1 Изменения конфигурационных файлах Apache при переходе на PHP 5

# замените эту строку:
LoadModule php4_module /php/sapi/php4apache2.dll

# на эту:
LoadModule php5_module /php/php5apache2.dll

Если ваш веб-сервер работает с PHP в CGI-режиме, вы должны обратить внимание на то, что CGI-версия сменила свое имя с php.exe на php-cgi.exe. В Apache вам нужно произвести изменения наподобие следующих:

Пример #2 Изменения в конфигурационных файлах Apache при переходе на PHP 5, CGI-режим

# замените эту строку:
Action application/x-httpd-php "/php/php.exe"

# на эту:
Action application/x-httpd-php "/php/php-cgi.exe"

При использовании других веб-серверов вам необходимо сменить либо имя CGI, либо имя ISAPI модулей.


Новые функции

В PHP 5 появилось некоторое количество новых функций. Вот их список:

Массивы:

  • array_combine() - Создает массив, используя один массив для ключей, а другой - для их значений
  • array_diff_uassoc() - Вычисляет различие массивов с дополнительной проверкой индексов, производимой заданной пользователем callback-функцией
  • array_udiff() - Вычисляет различие массивов, используя callback-функцию для сравнения данных
  • array_udiff_assoc() - Вычисляет различие массивов с дополнительной проверкой индексов. Данные сравниваются с использованием callback-функции
  • array_udiff_uassoc() - Вычисляет различие массивов с дополнительной проверкой индексов. Как данные, так и индексы сравниваются при помощи callback-функции
  • array_walk_recursive() - Применяет пользовательскую функцию рекурсивно к каждому элементу массива
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов. Данные сравниваются с использованием callback-функции
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов. Как данные, так и индексы сравниваются при помощи callback-функции
  • array_uintersect() - Вычисляет пересечение массивов. Данные сравниваются с использованием callback-функции

InterBase:

  • ibase_affected_rows() - Возвращает количество записей, затронутых предыдущим запросом
  • ibase_backup() - Инициирует задачу резервного копирования в менеджере сервисов и сразу же возвращает управление
  • ibase_commit_ret() - Фиксирует транзакцию, не закрывая её
  • ibase_db_info() - Запрашивает статистику базы данных
  • ibase_drop_db() - Удаляет базу данных
  • ibase_errcode() - Возвращает код ошибки
  • ibase_free_event_handler() - Отменяет зарегистрированный обработчик события
  • ibase_gen_id() - Инкрементирует именованный генератор и возвращает его новое значение
  • ibase_maintain_db() - Выполняет команду поддержки на сервере баз данных
  • ibase_name_result() - Присваивает имя набору результатов
  • ibase_num_params() - Возвращает число параметров в подготовленном запросе
  • ibase_param_info() - Возвращает информацию о параметре в подготовленном запросе
  • ibase_restore() - Инициирует задачу восстановления в менеджере сервисов и сразу же возвращает управление
  • ibase_rollback_ret() - Откатывает транзакцию с сохранением её контекста
  • ibase_server_info() - Запрашивает статистику базы данных
  • ibase_service_attach() - Соединяется с менеджером сервисов
  • ibase_service_detach() - Разрывает соединение с менеджером сервисов
  • ibase_set_event_handler() - Регистрирует callback-функцию, которая вызывается при публикации события
  • ibase_wait_event() - Ожидает события, отправленного базой данных

iconv:

  • iconv_mime_decode() - Декодирует поле MIME-заголовка
  • iconv_mime_decode_headers() - Декодирует сразу несколько полей MIME-заголовков
  • iconv_mime_encode() - Строит поле MIME-заголовка
  • iconv_strlen() - Возвращает количество символов в строке
  • iconv_strpos() - Находит позицию первого вхождения needle внутри haystack
  • iconv_strrpos() - Находит позицию последнего вхождения needle внутри haystack
  • iconv_substr() - Вырезает часть строки

Потоки:

  • stream_copy_to_stream() - Копирует данные с одного потока на другой
  • stream_get_line() - Получает строку из заданного ресурса потока до данного разделителя
  • stream_socket_accept() - Разрешает соединение на сокет, созданный stream_socket_server()
  • stream_socket_client() - Открывает соединение с доменным сокетом Internet или Unix
  • stream_socket_get_name() - Получает имена локальных или удаленных сокетов
  • stream_socket_recvfrom() - Получает данные от сокета, вне зависимости от того, произведено соединение или нет
  • stream_socket_sendto() - Посылает сообщение сокету, вне зависимости от того, произведено соединение или нет
  • stream_socket_server() - Создает доменный сокет Internet или Unix на стороне сервера

Связанные с датой и временем:

  • idate() - Форматирует локальное время/дату в виде целого числа
  • date_sunset() - Время захода солнца для данного дня и месторасположения
  • date_sunrise() - Время восхода солнца для данного дня и месторасположения
  • time_nanosleep() - Задержка на заданное число секунд и наносекунд

Строки:

  • str_split() - Преобразует строку в массив
  • strpbrk() - Ищет любой набор символов в строке
  • substr_compare() - Бинарно-безопасное опционально регистрозависимое сравнение двух строк, начиная со смещения и до определенной длины символов

Другие:

  • convert_uudecode() - Декодирует строку, закодированную uuencode
  • convert_uuencode() - Кодирует строку в uuencode
  • curl_copy_handle() - Копирует дескриптор cURL вместе со всеми его настройками
  • dba_key_split() - Разбивает ключ в строковом представлении в представление массива
  • dbase_get_header_info() - Получает заголовочную информацию базы данных dBase
  • dbx_fetch_row() - Выбирает записи из результата запроса, в котором установлен флаг DBX_RESULT_UNBUFFERED
  • fbsql_set_password() - Меняет пароль указанного пользователя
  • file_put_contents() - Пишет строку в файл
  • ftp_alloc() - Выделяет место для загружаемого файла
  • get_declared_interfaces() - Возвращает массив всех объявленных интерфейсов
  • get_headers() - Выбирает все заголовки, посланные сервером в ответ на HTTP-запрос
  • headers_list() - Возвращает список посланных (или готовых к отправке) заголовков ответа
  • http_build_query() - Генерирует URL-кодированную строку запроса
  • image_type_to_extension() - Возвращает расширение файла
для типа изображения, возвращенного getimagesize(),
exif_read_data(),
exif_thumbnail(),
exif_imagetype()
  • imagefilter() - Применяет фильтр изображения, используя выбранную фазу
  • imap_getacl() - Возвращает ACL для данного почтового ящика
  • ldap_sasl_bind() - Осуществляет привязку к LDAP-директории используя SASL
  • mb_list_encodings() - Возвращает массив всех поддерживаемых кодировок
  • pcntl_getpriority() - Возвращает приоритет любого процесса
  • pcntl_wait() - Ждет или возвращает статус дочернего разветвленного процесса в зависимости от объявления системного вызова waitpid()
  • pg_version() - Возвращает массив с информацией о версии клиента, протокола и сервера (если доступно)
  • php_check_syntax() - Проверяет синтаксис указанного файла
  • php_strip_whitespace() - Возвращает исходный код с удаленными комментариями и пробелами
  • proc_nice() - Изменяет приоритет текущего процесса
  • pspell_config_data_dir() - Изменяет расположение языковых файлов данных
  • pspell_config_dict_dir() - Изменяет расположение основного списка слов
  • setrawcookie() - Посылает cookie без URL-кодирования его значения
  • scandir() - Выводит список файлов и директорий по указанному пути
  • snmp_read_mib() - Читает и анализирует MIB-файл в активное MIB-дерево
  • sqlite_fetch_column_types() - Возвращает массив типов столбцов для определенной таблицы

Замечание:

Модуль Tidy полностью сменил свой API.


Новые директивы

В PHP 5 появилось несколько директив php.ini. Вот их список:

  • mail.force_extra_parameters - Принудительно добавляет указанные параметры к списку передаваемых исполняемому файлу sendmail. Эти параметры всегда будут заменять значение пятого параметра mail(), даже в защищенном режиме
  • register_long_arrays - Разрешает/запрещает PHP регистрировать устаревшие длинные массивы $HTTP_*_VARS
  • session.hash_function - Выбирает хэш-функцию (MD5 или SHA-1)
  • session.hash_bits_per_character - Определяет, сколько битов хранится в каждом символе при конвертации данных бинарного хэша во что-то читабельное (с 4 до 6)
  • zend.ze1_compatibility_mode - Включает режим совместимости с Zend Engine 1 (PHP 4)


Базы данных

В PHP 5 были произведены некоторые изменения, касающиеся СУБД (MySQL и SQLite).

В PHP 5 больше не входят клиентские библиотеки MySQL по причинам связанным с лицензией и поддержкой. Поддержка MySQL не прекращается, просто теперь она по умолчанию не включена. Эта означает, что строка --with-mysql более не включена по умолчанию в configure и вы должны задавать ее самостоятельно. Для пользоателей Windows необходимо отредактировать php.ini и разкомментировать строку с подключением php_mysql.dll. Эта библиотека включена в установочный пакет под Windows.

Также присутствует новый модуль, MySQLi (Improved MySQL), предназначенный для работы с MySQL 4.1 и выше.

Начиная с PHP 5, модуль SQLite встроен в PHP. SQLite - это встраиваемая SQL СУБД, а не клиентская библиотека для соединения с сервером баз данных (таким как MySQL или PostgreSQL). Библиотека SQLite читает и записывает напрямую в файлы базы данных на диске.


Новая Объектная Модель

В PHP 5 появилась новая объектная модель. Работа с объектами в PHP была полностью переписана, позволяя достигнуть лучшей производительности и предоставляя новые возможности. В предыдущих версиях PHP работа с объектами производилась аналогично примитивным типам (к примеру, integer и string). Недостатком этого метода являлось то, что семантически весь объект копировался при присвоении переменной или передачи её в качестве параметра функции. При новом подходе на объекты ссылаются по дескриптору, а не по значению (дескриптор можно представить себе как идентификатор объекта).

Многие PHP-программисты даже не в курсе хитростей механизма копирования в старой объектной модели, что означает, что большинство из PHP-приложений будут работать либо вовсе безо всяких изменений, либо с совсем небольшими изменениями.

Новая объектная модель задокументирована в "Справочнике по языку".

В PHP 5, функция, имеющая такое же имя как и класс, будет вызываться в качестве конструктора, только если она определена в этом же классе. В PHP 4 она также вызывалась при определении в родительском классе.

Обратите внимание также на директиву zend.ze1_compatibility_mode для совместимости с PHP 4.


Сообщения об ошибках

Начиная с PHP 5 был объявлен новый уровень ошибок - E_STRICT со значением 2048. Он позволяет PHP давать советы по способности взаимодействия и будущей совместимости вашего кода, а также отслеживает случаи использования устаревшего кода.

Замечание: E_ALL не включает E_STRICT, так что по умолчанию этот уровень ошибок выключен. Для просмотра этих сообщений вы должны специально включить E_STRICT в используемом вами уровне сообщений об ошибках.

Подробнее смотрите в главе "Предопределенные константы".


  • « Сообщения об ошибках
  • Об отладке в PHP »
  • PHP Manual
  • Appendices
  • Отладка в PHP

Отладка в PHP

Содержание

  • Об отладке в PHP


Об отладке в PHP

Вместе с PHP 5.6 поставляется интерактивный отладчик phpdbg. В версиях до 5.6 нет встроенных средств отладки, однако вы можете использовать внешние отладчики. » Zend IDE имеет встроенный отладчик, а также есть несколько бесплатных расширений отладки, такие как DBG, находящееся по адресу » http://www.php-debugger.com/dbg/, » Advanced PHP Debugger (APD) или » Xdebug.


  • « Об отладке в PHP
  • Список основных опций конфигурации »
  • PHP Manual
  • Appendices
  • Опции конфигурации

Опции конфигурации

Содержание

  • Список основных опций конфигурации


Список основных опций конфигурации

Ниже приведён частичный список опций конфигурации, используемых скриптами configure при компиляции в Unix-подобных окружениях. Большинство опций конфигурации приведено в соответствующих местах на страницах с описанием расширений, а не здесь. Чтобы получить полный актуальный список опций конфигурации, запустите ./configure --help в каталоге исходного кода PHP после запуска команды autoconf (см. также главу Установка). Вам также может быть интересно почитать документацию команды » GNU configure для получения информации о дополнительных опциях команды configure, таких, как --prefix=PREFIX.

Замечание:

Эти настройки используются только во время компиляции. Если вы хотите изменить конфигурацию PHP во время выполнения, пожалуйста смотрите главу Конфигурация во время выполнения.

  • Разное
  • Поведение PHP
  • Сервер

Опции конфигурации в PHP

Различные опции

--enable-debug

Компилировать с информацией об отладке.

--with-layout=TYPE

Устанавливает, каким образом установленные файлы будут расположены. TYPE принимает значения PHP (по умолчанию) или GNU.

--with-pear=DIR

Установить PEAR в директорию DIR (по умолчанию PREFIX/lib/php).

--without-pear

Не устанавливать PEAR.

--enable-sigchild

Включить собственный дескриптор SIGCHLD для PHP.

--disable-rpath

Не передавать дополнительные пути для поиска библиотек времени исполнения.

--enable-libgcc

Явно использовать libgcc.

--enable-php-streams

Включить экспериментальный функционал потоков PHP. Используйте только в случае, если вы тестируете код!

--with-zlib-dir[=DIR]

Определить местонахождение библиотеки zlib.

--with-tsrm-pthreads

Использовать нити (threads) POSIX (по умолчанию).

--enable-shared[=PKGS]

Собирать общие библиотеки [по умолчанию=yes].

--enable-static[=PKGS]

Собирать статические библиотеки [по умолчанию=yes].

--enable-fast-install[=PKGS]

Оптимизировать для быстрой установки [по умолчанию=yes].

--with-gnu-ld

Предполагать, что компилятор С использует линкер GNU ld [по умолчанию=no].

--disable-libtool-lock

Избегать блокирования (может испортить параллельные сборки).

--with-pic

Пытаться использовать только PIC/не-PIC объекты [по умолчанию=use both (использовать оба)]

--enable-memory-limit

Компилировать с поддержкой ограничения памяти. (не доступно начиная с PHP 5.2.1, так как всегда включено)

--disable-url-fopen-wrapper

Отключить обертку fopen с поддержкой URL, которая позволяет получать доступ к файлам через HTTP или FTP. (не доступно начиная с 5.2.5)

--enable-versioning

Экспортировать только необходимую информацию для отладки. Смотри INSTALL для дополнительной информации.

PHP опции

--enable-maintainer-mode

Включает правила сборки и зависимости, неиспользуемые (и иногда конфликтующие) в обычном инсталляторе.

--with-config-file-path=PATH

Устанавливает путь для поиска php.ini, значение по умолчанию PREFIX/lib.

--enable-safe-mode

Включает безопасный режим по умолчанию.

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

--with-exec-dir[=DIR]

Разрешает запуск исполняемых файлов только из директории DIR в безопасном режиме, по умолчанию /usr/local/php/bin.

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

--enable-magic-quotes

Включает автоматическое экранирование специальных символов по умолчанию.

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

--disable-short-tags

Запрещает использование краткой формы записи начального тега <? по умолчанию.

--enable-zend-multibyte

Включает поддержку многобайтового кода в синтаксическом и лексическом анализаторе языка при запуске. Когда PHP скомпилирован с этой опцией, становится активной также директива encoding в конструкции declare.

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

--with-libdir

Определяет каталог библиотек для сборки PHP в Unix системах. Для 64-битных систем опция требует особого аргумента --with-libdir=lib64 для директории lib64.

SAPI опции

Следующий список включает доступные опции SAPI (Server Application Programming Interface) для PHP.

--with-aolserver=DIR

Определяет путь к установленному AOLserver.

--with-apxs[=FILE]

Собирает динамический модуль для Apache. FILE - это опциональный путь к инструменту "Apache apxs", который используется для apxs по умолчанию. Убедитесь в том, что вы указали версию apxs, которая действительно установлена в вашей системе, а не ту, которая находится в исходниках Apache.

--with-apache[=DIR]

Собирает статичный модуль для Apache. DIR - это верхний уровень директории сборки Apache, по умолчанию /usr/local/apache.

--with-mod_charset

Включает таблицы перекодировки для модуля mod_charset (для русской версии Apache).

--with-apxs2[=FILE]

Собирает динамический модуль для Apache 2.0. FILE - это опциональный путь к инструменту "Apache apxs", который используется для apxs по умолчанию.

--with-caudium=DIR

Собирает PHP как Pike-модуль для использования с Caudium. DIR - это путь к папке сервера Caudium, по умолчанию значение установлено в /usr/local/caudium/server.

--disable-cli

Отключает сборку CLI-версии PHP (опция также вызывает --without-pear). Больше информации можно получить в разделе Использование PHP в командной строке.

--enable-phpdbg

Включает поддержку SAPI модуля интерактивного дебаггера phpdbg в PHP 5.6.x и выше.

--enable-embed[=TYPE]

Включает сборку встроенной библиотеки SAPI. TYPE может принимать значение shared или static, по умолчанию установлено shared.

--with-isapi=DIR

Сборка PHP как модуля ISAPI для использования в Zeus.

--with-nsapi=DIR

Указывает путь к установленному Netscape/iPlanet/SunONE веб-серверу.

--with-phttpd=DIR

Нет информации.

--with-pi3web=DIR

Сборка PHP как модуля для использования в Pi3Web.

--with-roxen=DIR

Сборка PHP как Pike-модуля. DIR - это базовая директория Roxen, обычно /usr/local/roxen/server.

--enable-roxen-zts

Сборка модуля Roxen, используя Zend Thread Safety.

--with-servlet[=DIR]

Включает поддержку сервлетов. DIR - это базовая директория установки JSDK. SAPI требует java-расширения, может быть собрана как доступная для dl.

--with-thttpd=SRCDIR

Сборка PHP как thttpd-модуля.

--with-tux=MODULEDIR

Сборка PHP как TUX-модуля (только для Linux).

--with-webjames=SRCDIR

Сборка PHP как WebJames-модуля (только для RISC OS)

--disable-cgi

Отключает сборку CGI-версии PHP.

В PHP 5.3.0 этот аргумент включает FastCGI, который предварительно должен быть включен аргументом --enable-fastcgi.

--enable-force-cgi-redirect

Включает проверку безопасности для внутрисерверных переходов. Вам следует использовать её, если вы запускаете CGI-версию с Apache.

В PHP 5.3.0 эта опция включена по умолчанию и больше не нуждается в установке. Для её отключения необходимо установить ini-директиве cgi.force_redirect значение 0.

--enable-discard-path

Если эта опция включена, PHP CGI может быть безопасно размещен вне веб-дерева, и у пользователей не будет возможности обойти проверку .htaccess.

В PHP 5.3.0 этот аргумент отключен по умолчанию и более не доступен. Для его включения необходимо установить ini-директиве cgi.discard_path значение 1.

--enable-fastcgi

Если эта опция включена, то CGI-модуль будет собран с поддержкой FastCGI.

В PHP 5.3.0 этот параметр больше не доступен. Используйте вместо него --enable-cgi.

--disable-path-info-check

Если опция указана, то пути, подобные /info.php/test?a=b будут вызывать ошибки в работе. Для более детальной информации см. » Руководство Apache.


Директивы php.ini

Содержание

  • Список директив php.ini
  • Список разделов php.ini
  • Описание встроенных директив php.ini


Список директив php.ini

Этот список включает директивы php.ini, которые вы можете использовать для настройки PHP.

Столбец "Место изменения" показывает когда и где может быть установлена директива. Для получения информации о значениях этих директив смотрите раздел "Где может быть установлена директива?".

Configuration options
Имя | По умолчанию | Меняемо | Список изменений
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP 4.0.0. Удалено в PHP 5.4.0.
allow_url_fopen | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 4.3.4.
allow_url_include | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.2.0.
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. Доступно с PHP 4.1.0.
apc.cache_by_default | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в APC <= 3.0.12. Доступно с APC 3.0.0.
apc.enabled | "1" | PHP_INI_SYSTEM | PHP_INI_SYSTEM в APC 2. PHP_INI_ALL в APC <= 3.0.12.
apc.enable_cli | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.7.
apc.file_update_protection | "2" | PHP_INI_SYSTEM | Доступно с APC 3.0.6.
apc.filters | NULL | PHP_INI_SYSTEM |
apc.gc_ttl | "3600" | PHP_INI_SYSTEM |
apc.include_once_override | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.12.
apc.localcache | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.14.
apc.localcache.size | "512" | PHP_INI_SYSTEM | Доступно с APC 3.0.14.
apc.max_file_size | "1M" | PHP_INI_SYSTEM | Доступно с APC 3.0.7.
apc.mmap_file_mask | NULL | PHP_INI_SYSTEM |
apc.num_files_hint | "1000" | PHP_INI_SYSTEM |
apc.optimization | "0" | PHP_INI_ALL | PHP_INI_SYSTEM в APC 2. Удалено в APC 3.0.13.
apc.report_autofilter | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.11.
apc.rfc1867 | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.13.
apc.rfc1867_freq | "0" | PHP_INI_SYSTEM |
apc.rfc1867_name | "APC_UPLOAD_PROGRESS" | PHP_INI_SYSTEM |
apc.rfc1867_prefix | "upload_" | PHP_INI_SYSTEM |
apc.shm_segments | "1" | PHP_INI_SYSTEM |
apc.shm_size | "30" | PHP_INI_SYSTEM |
apc.slam_defense | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.stat | "1" | PHP_INI_SYSTEM | Доступно с APC 3.0.10.
apc.stat_ctime | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.13.
apc.ttl | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.user_entries_hint | "4096" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.user_ttl | "0" | PHP_INI_SYSTEM | Доступно с APC 3.0.0.
apc.write_lock | "1" | PHP_INI_SYSTEM | Доступно с APC 3.0.11.
apd.bitmask | "0" | PHP_INI_ALL | Удалено в apd 0.9.
apd.dumpdir | NULL | PHP_INI_ALL |
apd.statement_tracing | "0" | PHP_INI_ALL | Доступно с apd 0.9.
arg_separator.input | "&" | PHP_INI_PERDIR | Доступно с PHP 4.0.5.
arg_separator.output | "&" | PHP_INI_ALL | Доступно с PHP 4.0.5.
asp_tags | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP 4.0.0.
assert.active | "1" | PHP_INI_ALL |
assert.bail | "0" | PHP_INI_ALL |
assert.callback | NULL | PHP_INI_ALL |
assert.exception | "0" | PHP_INI_ALL | Доступно с PHP 7.0.0.
assert.quiet_eval | "0" | PHP_INI_ALL |
assert.warning | "1" | PHP_INI_ALL |
auto_append_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
auto_detect_line_endings | "0" | PHP_INI_ALL | Доступно с PHP 4.3.0.
auto_globals_jit | "1" | PHP_INI_PERDIR | Доступно с PHP 5.0.0.
auto_prepend_file | NULL | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
axis2.client_home | "~/work/axisc/c/deply" | PHP_INI_ALL |
axis2.enable_exception | "1" | PHP_INI_ALL |
axis2.enable_trace | "1" | PHP_INI_ALL |
axis2.log_path | "/tmp" | PHP_INI_ALL |
bcmath.scale | "0" | PHP_INI_ALL |
bcompiler.enabled | "1" | PHP_INI_ALL | Доступно с bcompiler 0.8.
blenc.key_file | "/usr/local/etc/blenckeys" | PHP_INI_ALL |
browscap | NULL | PHP_INI_SYSTEM |
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Доступно с PHP 5.2.1.
cgi.discard_path | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 5.2.0. Доступно с PHP 4.3.0.
cgi.force_redirect | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 5.2.0. Доступно с PHP 4.2.0.
cgi.nph | "0" | PHP_INI_ALL | Доступно с PHP 4.3.5.
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 5.2.0. Доступно с PHP 4.2.0.
cgi.rfc2616_headers | "0" | PHP_INI_ALL | Доступно с PHP 4.3.0.
child_terminate | "0" | PHP_INI_ALL | Доступно с PHP 4.0.5.
cli.pager | "" | PHP_INI_ALL | Доступно с PHP 5.4.0.
cli.prompt | "\\b \\> " | PHP_INI_ALL | Доступно с PHP 5.4.0.
cli_server.color | "0" | PHP_INI_ALL | Доступно с PHP 5.4.0.
coin_acceptor.autoreset | "On" | PHP_INI_ALL | Удалено в coin_acceptor 0.2.
coin_acceptor.auto_initialize | "Off" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
coin_acceptor.auto_reset | "On" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
coin_acceptor.command_function | "Off" | PHP_INI_ALL | Доступно с coin_acceptor 0.3.
coin_acceptor.delay | "53132" | PHP_INI_ALL | Удалено в coin_acceptor 0.2.
coin_acceptor.delay_coins | "53132" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
coin_acceptor.delay_prom | "55748" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
coin_acceptor.device | "/dev/ttyS1" | PHP_INI_ALL | Удалено в coin_acceptor 0.2.
coin_acceptor.lock_on_close | "Off" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
coin_acceptor.start_unlocked | "On" | PHP_INI_ALL | Доступно с coin_acceptor 0.2.
com.allow_dcom | "0" | PHP_INI_SYSTEM | Доступно с PHP 4.0.5.
com.autoregister_casesensitive | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP 4. Доступно с PHP 4.1.0.
com.autoregister_typelib | "0" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP 4. Доступно с PHP 4.1.0.
com.autoregister_verbose | "0" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP 4. Доступно с PHP 4.1.0.
com.code_page | "" | PHP_INI_ALL | Доступно с PHP 5.0.0.
com.typelib_file | "" | PHP_INI_SYSTEM | Доступно с PHP 4.0.5.
curl.cainfo | NULL | PHP_INI_SYSTEM | Доступно с PHP 5.3.7.
daffodildb.default_host | "localhost" | PHP_INI_ALL |
daffodildb.default_password | "daffodil" | PHP_INI_ALL |
daffodildb.default_socket | NULL | PHP_INI_ALL |
daffodildb.default_user | "DAFFODIL" | PHP_INI_ALL |
daffodildb.port | "3456" | PHP_INI_ALL |
date.default_latitude | "31.7667" | PHP_INI_ALL | Доступно с PHP 5.0.0.
date.default_longitude | "35.2333" | PHP_INI_ALL | Доступно с PHP 5.0.0.
date.sunrise_zenith | "90.583333" | PHP_INI_ALL | Доступно с PHP 5.0.0.
date.sunset_zenith | "90.583333" | PHP_INI_ALL | Доступно с PHP 5.0.0.
date.timezone | "" | PHP_INI_ALL | Доступно с PHP 5.1.0.
dba.default_handler | "" | PHP_INI_ALL | Доступно с PHP 4.3.3.
dbx.colnames_case | "unchanged" | PHP_INI_SYSTEM | Доступно с PHP 4.3.0. Удалено в PHP 5.1.0.
default_charset | "UTF-8" | PHP_INI_ALL | По умолчанию "UTF-8" в PHP >= 5.6.0, пустая строка в PHP < 5.6.0.
default_mimetype | "text/html" | PHP_INI_ALL |
default_socket_timeout | "60" | PHP_INI_ALL | Доступно с PHP 4.3.0.
define_syslog_variables | "0" | PHP_INI_ALL | Удалено в PHP 5.4.0.
detect_unicode | "1" | PHP_INI_ALL | Доступно с PHP 5.1.0. Переименовано в zend.detect_unicode в PHP 5.4.0.
disable_classes | "" | Только php.ini | Доступно с PHP 4.3.2.
disable_functions | "" | Только php.ini | Доступно с PHP 4.0.1.
display_errors | "1" | PHP_INI_ALL |
display_startup_errors | "0" | PHP_INI_ALL | Доступно с PHP 4.0.3.
docref_ext | "" | PHP_INI_ALL | Доступно с PHP 4.3.2.
docref_root | "" | PHP_INI_ALL | Доступно с PHP 4.3.0.
doc_root | NULL | PHP_INI_SYSTEM |
enable_dl | "1" | PHP_INI_SYSTEM | Эта возможность устарела и будет обязательно удалена в будущем.
enable_post_data_reading | On | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
engine | "1" | PHP_INI_ALL | Доступно с PHP 4.0.5.
error_append_string | NULL | PHP_INI_ALL |
error_log | NULL | PHP_INI_ALL |
error_prepend_string | NULL | PHP_INI_ALL |
error_reporting | NULL | PHP_INI_ALL |
exif.decode_jis_intel | "JIS" | PHP_INI_ALL | Доступно с PHP 4.3.0.
exif.decode_jis_motorola | "JIS" | PHP_INI_ALL | Доступно с PHP 4.3.0.
exif.decode_unicode_intel | "UCS-2LE" | PHP_INI_ALL | Доступно с PHP 4.3.0.
exif.decode_unicode_motorola | "UCS-2BE" | PHP_INI_ALL | Доступно с PHP 4.3.0.
exif.encode_jis | "" | PHP_INI_ALL | Доступно с PHP 4.3.0.
exif.encode_unicode | "ISO-8859-15" | PHP_INI_ALL | Доступно с PHP 4.3.0.
exit_on_timeout | "" | PHP_INI_ALL | Доступно с PHP 5.3.0
expect.logfile | "" | PHP_INI_ALL |
expect.loguser | "1" | PHP_INI_ALL |
expect.timeout | "10" | PHP_INI_ALL |
expose_php | "1" | Только php.ini |
extension | NULL | Только php.ini |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 5.2.0. Доступно с PHP 4.3.0.
fastcgi.logging | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 5.2.0. Доступно с PHP 4.4.0.
fbsql.allow_persistent | "1" | PHP_INI_SYSTEM | Доступно с PHP 4.2.0.
fbsql.autocommit | "1" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.batchSize | "1000" | PHP_INI_SYSTEM | Доступно с PHP 4.2.0. Удалено в PHP 5.1.0.
fbsql.batchsize | "1000" | PHP_INI_ALL | Доступно с PHP 5.1.0.
fbsql.default_database | "" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.default_database_password | "" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.default_host | NULL | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.default_password | "" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.default_user | "_SYSTEM" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.generate_warnings | "0" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.max_connections | "128" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.max_links | "128" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.max_persistent | "-1" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.max_results | "128" | PHP_INI_SYSTEM | Доступно с PHP 4.0.6.
fbsql.show_timestamp_decimals | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.1.5.
file_uploads | "1" | PHP_INI_SYSTEM | PHP_INI_ALL в PHP <= 4.2.3. Доступно с PHP 4.0.3.
filter.default | "unsafe_raw" | PHP_INI_PERDIR | PHP_INI_ALL в filter <= 0.9.4. Доступно с PHP 5.2.0.
filter.default_flags | NULL | PHP_INI_PERDIR | PHP_INI_ALL в filter <= 0.9.4. Доступно с PHP 5.2.0.
from | "" | PHP_INI_ALL |
gd.jpeg_ignore_warning | "1" | PHP_INI_ALL | Доступно с PHP 5.1.3.
geoip.custom_directory | NULL | PHP_INI_ALL | Доступно с geoip 1.0.1.
geoip.database_standard | "GeoIP.dat" | PHP_INI_ALL | Удалено в geoip 1.0.1.
hidef.ini_path | (char*)default_ini_path | PHP_INI_SYSTEM |
highlight.bg | "#FFFFFF" | PHP_INI_ALL | Удалено в PHP 5.4.0.
highlight.comment | "#FF8000" | PHP_INI_ALL |
highlight.default | "#0000BB" | PHP_INI_ALL |
highlight.html | "#000000" | PHP_INI_ALL |
highlight.keyword | "#007700" | PHP_INI_ALL |
highlight.string | "#DD0000" | PHP_INI_ALL |
html_errors | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в PHP <= 4.2.3. Доступно с PHP 4.0.2.
htscanner.config_file | ".htaccess" | PHP_INI_SYSTEM |
htscanner.default_docroot | "/" | PHP_INI_SYSTEM |
htscanner.default_ttl | "300" | PHP_INI_SYSTEM | Доступно с htscanner 0.6.0.
htscanner.stop_on_error | "0" | PHP_INI_SYSTEM | Доступно с htscanner 0.7.0.
http.allowed_methods | "" | PHP_INI_ALL | Доступно с pecl_http 0.4.0. Удалено в pecl_http 1.0.0.
http.allowed_methods_log | "" | PHP_INI_ALL | Доступно с pecl_http 0.12.0. Удалено в pecl_http 1.0.0.
http.cache_log | "" | PHP_INI_ALL | Доступно с pecl_http 0.8.0. Удалено в pecl_http 1.0.0.
http.composite_log | "" | PHP_INI_ALL | Доступно с pecl_http 0.12.0. Удалено в pecl_http 1.0.0.
http.etag.mode | "MD5" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.etag_mode | "MD5" | PHP_INI_ALL | Доступно с pecl_http 0.12.0. Удалено в pecl_http 1.0.0.
http.force_exit | "1" | PHP_INI_ALL | Доступно с pecl_http 0.18.0.
http.log.allowed_methods | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.log.cache | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.log.composite | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.log.not_found | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.log.redirect | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.ob_deflate_auto | "0" | PHP_INI_PERDIR | Доступно с pecl_http 0.21.0. Удалено в pecl_http 1.0.0.
http.ob_deflate_flags | "0" | PHP_INI_ALL | Доступно с pecl_http 0.21.0. Удалено в pecl_http 1.0.0.
http.ob_inflate_auto | "0" | PHP_INI_PERDIR | Доступно с pecl_http 0.21.0. Удалено в pecl_http 1.0.0.
http.ob_inflate_flags | "0" | PHP_INI_ALL | Доступно с pecl_http 0.21.0. Удалено в pecl_http 1.0.0.
http.only_exceptions | "0" | PHP_INI_ALL | Доступно с pecl_http 0.11.0.
http.persistent.handles.ident | "GLOBAL" | PHP_INI_ALL | Доступно с pecl_http 1.5.0.
http.persistent.handles.limit | "-1" | PHP_INI_SYSTEM | Доступно с pecl_http 1.5.0.
http.redirect_log | "" | PHP_INI_ALL | Доступно с pecl_http 0.12.0. Удалено в pecl_http 1.0.0.
http.request.datashare.connect | "0" | PHP_INI_SYSTEM | Доступно с pecl_http 1.3.0.
http.request.datashare.cookie | "0" | PHP_INI_SYSTEM | Доступно с pecl_http 1.3.0.
http.request.datashare.dns | "1" | PHP_INI_SYSTEM | Доступно с pecl_http 1.3.0.
http.request.datashare.ssl | "0" | PHP_INI_SYSTEM | Доступно с pecl_http 1.3.0.
http.request.methods.allowed | "" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.request.methods.custom | "" | PHP_INI_PERDIR | Доступно с pecl_http 1.0.0.
http.send.deflate.start_auto | "0" | PHP_INI_PERDIR | Доступно с pecl_http 1.0.0.
http.send.deflate.start_flags | "0" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.send.inflate.start_auto | "0" | PHP_INI_PERDIR | Доступно с pecl_http 1.0.0.
http.send.inflate.start_flags | "0" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
http.send.not_found_404 | "1" | PHP_INI_ALL | Доступно с pecl_http 1.0.0.
ibase.allow_persistent | "1" | PHP_INI_SYSTEM |
ibase.dateformat | "%Y-%m-%d" | PHP_INI_ALL |
ibase.default_charset | NULL | PHP_INI_ALL | Доступно с PHP 5.0.0.
ibase.default_db | NULL | PHP_INI_SYSTEM | Доступно с PHP 5.0.0.
ibase.default_password | NULL | PHP_INI_ALL |
ibase.default_user | NULL | PHP_INI_ALL |
ibase.max_links | "-1" | PHP_INI_SYSTEM |
ibase.max_persistent | "-1" | PHP_INI_SYSTEM |
ibase.timeformat | "%H:%M:%S" | PHP_INI_ALL |
ibase.timestampformat | "%Y-%m-%d %H:%M:%S" | PHP_INI_ALL |
ibm_db2.binmode | "1" | PHP_INI_ALL |
ibm_db2.i5_all_pconnect | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.6.5.
ibm_db2.i5_allow_commit | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.4.9.
ibm_db2.i5_dbcs_alloc | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.5.0.
ibm_db2.instance_name | NULL | PHP_INI_SYSTEM | Доступно с ibm_db2 1.0.2.
ibm_db2.i5_ignore_userid | "0" | PHP_INI_SYSTEM | Доступно с ibm_db2 1.8.0.
iconv.input_encoding | "ISO-8859-1" | PHP_INI_ALL | Доступно с PHP 4.0.5.
iconv.internal_encoding | "ISO-8859-1" | PHP_INI_ALL | Доступно с PHP 4.0.5.
iconv.output_encoding | "ISO-8859-1" | PHP_INI_ALL | Доступно с PHP 4.0.5.
ifx.allow_persistent | "1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.blobinfile | "1" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.byteasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.charasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.default_host | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.default_password | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.default_user | NULL | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.max_links | "-1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.max_persistent | "-1" | PHP_INI_SYSTEM | Удалено в PHP 5.2.1.
ifx.nullformat | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ifx.textasvarchar | "0" | PHP_INI_ALL | Удалено в PHP 5.2.1.
ignore_repeated_errors | "0" | PHP_INI_ALL | Доступно с PHP 4.3.0.
ignore_repeated_source | "0" | PHP_INI_ALL | Доступно с PHP 4.3.0.
ignore_user_abort | "0" | PHP_INI_ALL |
imlib2.font_cache_max_size | "524288" | PHP_INI_ALL |
imlib2.font_path | "/usr/share/php/fonts/" | PHP_INI_ALL |
implicit_flush | "0" | PHP_INI_ALL | PHP_INI_PERDIR в PHP <= 4.2.3.
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
intl.default_locale | "" | PHP_INI_ALL | Доступно с PHP 5.3.0.
intl.error_level | "0" | PHP_INI_ALL | Доступно с PHP 5.3.0.
intl.use_exceptions | "0" | PHP_INI_ALL | Доступно с PHP 5.5.0.
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Available since ingres 1.0.0
ingres.array_index_start | "1" | PHP_INI_ALL | Available since ingres 1.4.0.
ingres.auto | "1" | PHP_INI_ALL | Available since ingres 2.0.0.
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Available since ingres 1.2.0.
ingres.cursor_mode | "0" | PHP_INI_ALL | Available since ingres 1.1.0.
ingres.default_database | NULL | PHP_INI_ALL | Available since ingres 1.0.0
ingres.default_password | NULL | PHP_INI_ALL | Available since ingres 1.0.0
ingres.default_user | NULL | PHP_INI_ALL | Available since ingres 1.0.0
ingres.describe | 1 | PHP_INI_ALL | Available since ingres 2.1.0
ingres.fetch_buffer_size | 100 | PHP_INI_ALL | Available since ingres 2.1.0
ingres.max_links | "-1" | PHP_INI_SYSTEM | Available since ingres 1.0.0
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Available since ingres 1.0.0
ingres.reuse_connection | "1" | PHP_INI_ALL | Available since ingres 2.0.0
ingres.scrollable | "1" | PHP_INI_ALL | Available since ingres 2.0.0.
ingres.trace | "0" | PHP_INI_ALL | Available since ingres 2.0.0.
ingres.trace_connect | "0" | PHP_INI_ALL | Available since ingres 1.2.1.
ingres.utf8 | "1" | PHP_INI_ALL | Available since ingres 2.0.0.
last_modified | "0" | PHP_INI_ALL | Доступно с PHP 4.0.5.
ldap.max_links | "-1" | PHP_INI_SYSTEM |
log_errors | "0" | PHP_INI_ALL |
log_errors_max_len | "1024" | PHP_INI_ALL | Доступно с PHP 4.3.0.
magic_quotes_gpc | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. Объявлено устаревшим в PHP 5.3.0. Удалено в PHP 5.4.0.
magic_quotes_runtime | "0" | PHP_INI_ALL | Удалено в PHP 5.4.0.
magic_quotes_sybase | "0" | PHP_INI_ALL | Удалено в PHP 5.4.0.
mail.add_x_header | "0" | PHP_INI_PERDIR | Доступно с PHP 5.3.0.
mail.force_extra_parameters | NULL | Только php.ini | Доступно с PHP 5.0.0.
mail.log | "" | PHP_INI_PERDIR | Доступно с PHP 5.3.0 (PHP_INI_SYSTEM|PHP_INI_PERDIR)
maxdb.default_db | NULL | PHP_INI_ALL |
maxdb.default_host | NULL | PHP_INI_ALL |
maxdb.default_pw | NULL | PHP_INI_ALL |
maxdb.default_user | NULL | PHP_INI_ALL |
maxdb.long_readlen | "200" | PHP_INI_ALL |
max_execution_time | "30" | PHP_INI_ALL |
max_input_nesting_level | "64" | PHP_INI_PERDIR | Доступно с PHP 4.4.8 и PHP 5.2.3.
max_input_vars | 1000 | PHP_INI_PERDIR | Доступно с PHP 5.3.9.
max_input_time | "-1" | PHP_INI_PERDIR | Доступно с PHP 4.3.0.
mbstring.detect_order | NULL | PHP_INI_ALL | Доступно с PHP 4.0.6.
mbstring.encoding_translation | "0" | PHP_INI_PERDIR | Доступно с PHP 4.3.0.
mbstring.func_overload | "0" | PHP_INI_SYSTEM | PHP_INI_SYSTEM в PHP <= 4.2.3; PHP_INI_SYSTEM | PHP_INI_PERDIR from PHP 4.3 through 5.2.6. Доступно с PHP 4.2.0.
mbstring.http_input | "pass" | PHP_INI_ALL | Доступно с PHP 4.0.6.
mbstring.http_output | "pass" | PHP_INI_ALL | Доступно с PHP 4.0.6.
mbstring.internal_encoding | NULL | PHP_INI_ALL | Доступно с PHP 4.0.6.
mbstring.language | "neutral" | PHP_INI_ALL | Доступно с PHP 4.3.0.; PHP_INI_PERDIR в PHP <= 5.2.6
mbstring.script_encoding | NULL | PHP_INI_ALL | Доступно с PHP 4.3.0. Удалено в PHP 5.4.0. Используйте zend.script_encoding.
mbstring.http_output_conv_mimetypes | "^(text/|application/xhtml\+xml)" | PHP_INI_ALL | Доступно с PHP 5.3.0.
mbstring.strict_detection | "0" | PHP_INI_ALL | Доступно с PHP 5.1.2.
mbstring.substitute_character | NULL | PHP_INI_ALL | Доступно с PHP 4.0.6.
mcrypt.algorithms_dir | NULL | PHP_INI_ALL | Доступно с PHP 4.0.2.
mcrypt.modes_dir | NULL | PHP_INI_ALL | Доступно с PHP 4.0.2.
memcache.allow_failover | "1" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.chunk_size | "8192" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.default_port | "11211" | PHP_INI_ALL | Доступно с memcache 2.0.2.
memcache.hash_function | "crc32" | PHP_INI_ALL | Доступно с memcache 2.2.0.
memcache.hash_strategy | "standard" | PHP_INI_ALL | Доступно с memcache 2.2.0.
memcache.max_failover_attempts | "20" | PHP_INI_ALL | Доступно с memcache 2.1.0.
memory_limit | "128M" | PHP_INI_ALL |
mime_magic.debug | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.0.0.
mime_magic.magicfile | "/path/to/php/magic.mime" | PHP_INI_SYSTEM | Доступно с PHP 4.3.0.
mongo.allow_empty_keys | 0 | PHP_INI_ALL |
mongo.allow_persistent | 1 | PHP_INI_ALL | Удалено в 1.2.0
mongo.chunk_size | 262144 | PHP_INI_ALL |
mongo.cmd | "$" | PHP_INI_ALL |
mongo.default_host | "localhost" | PHP_INI_ALL |
mongo.default_port | 27017 | PHP_INI_ALL |
mongo.is_master_interval | 15 | PHP_INI_ALL | Добавлено в версии 1.2.10, до 1.3.0, значение по умолчанию 60.
mongo.long_as_object | 0 | PHP_INI_ALL |
mongo.native_long | 1 | PHP_INI_ALL | До версии 1.5.0, значение по умолчанию 0.
mongo.ping_interval | 5 | PHP_INI_ALL | Добавлено в версии 1.2.10
mongo.utf8 | 1 | PHP_INI_ALL |
msql.allow_persistent | "1" | PHP_INI_ALL |
msql.max_links | "-1" | PHP_INI_ALL |
msql.max_persistent | "-1" | PHP_INI_ALL |
mssql.allow_persistent | "1" | PHP_INI_SYSTEM |
mssql.batchsize | "0" | PHP_INI_ALL | Доступно с PHP 4.0.4.
mssql.charset | "" | PHP_INI_ALL | Доступно с PHP 5.1.2.
mssql.compatability_mode | "0" | PHP_INI_ALL |
mssql.connect_timeout | "5" | PHP_INI_ALL |
mssql.datetimeconvert | "1" | PHP_INI_ALL | Доступно с PHP 4.2.0.
mssql.max_links | "-1" | PHP_INI_SYSTEM |
mssql.max_persistent | "-1" | PHP_INI_SYSTEM |
mssql.max_procs | "-1" | PHP_INI_ALL | Доступно с PHP 4.3.0.
mssql.min_error_severity | "10" | PHP_INI_ALL |
mssql.min_message_severity | "10" | PHP_INI_ALL |
mssql.secure_connection | "0" | PHP_INI_SYSTEM | Доступно с PHP 4.3.0.
mssql.textlimit | "-1" | PHP_INI_ALL |
mssql.textsize | "-1" | PHP_INI_ALL |
mssql.timeout | "60" | PHP_INI_ALL | Доступно с PHP 4.1.0.
mysql.allow_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 | Доступна с версии PHP 4.3.0.
mysql.default_port | NULL | PHP_INI_ALL |
mysql.default_socket | NULL | PHP_INI_ALL | Доступна с версии PHP 4.0.1.
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_SYSTEM в PHP <= 4.3.2. Доступна с версии PHP 4.3.0.
mysqli.allow_local_infile | "1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.2.4.
mysqli.allow_persistent | "1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.3.0.
mysqli.max_persistent | "-1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.3.0.
mysqli.max_links | "-1" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.0.0.
mysqli.default_port | "3306" | PHP_INI_ALL | Доступна начиная с версии PHP 5.0.0.
mysqli.default_socket | NULL | PHP_INI_ALL | Доступна начиная с версии 5.0.0.
mysqli.default_host | NULL | PHP_INI_ALL | Доступна начиная с версии PHP 5.0.0.
mysqli.default_user | NULL | PHP_INI_ALL | Доступна начиная с версии PHP 5.0.0.
mysqli.default_pw | NULL | PHP_INI_ALL | Доступна начиная с версии PHP 5.0.0.
mysqli.reconnect | "0" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 4.3.5.
mysqli.rollback_on_cached_plink | TRUE | PHP_INI_SYSTEM | Доступна с версии PHP 5.6.0.
mysqli.cache_size | "2000" | PHP_INI_SYSTEM | Доступна начиная с версии PHP 5.3.0.
mysqlnd.collect_memory_statistics | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
mysqlnd.collect_statistics | "1" | PHP_INI_ALL | Доступно с PHP 5.3.0.
mysqlnd.debug | "" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
mysqlnd.log_mask | "0" | PHP_INI_ALL | Доступно с PHP 5.4.0.
mysqlnd.mempool_default_size | "16000" | PHP_INI_ALL | Доступно с PHP 5.4.0.
mysqlnd.net_cmd_buffer_size | "4096" | PHP_INI_ALL | Доступно с PHP 5.4.0.
mysqlnd.net_read_buffer_size | "32768" | PHP_INI_ALL | Доступно с PHP 5.3.0.
mysqlnd.net_read_timeout | "31536000" | PHP_INI_SYSTEM | Доступно с PHP 5.4.0.
mysqlnd.sha256_server_public_key | "" | PHP_INI_PERDIR | Доступно с PHP 5.5.0.
mysqlnd.trace_alloc | "" | PHP_INI_SYSTEM | Доступно с PHP 5.5.0.
mysqlnd_memcache.enable | 1 | PHP_INI_SYSTEM | Available since 1.0.0
mysqlnd_ms.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.force_config_usage | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.ini_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.config_file | "" | PHP_INI_SYSTEM |
mysqlnd_ms.collect_statistics | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.multi_master | 0 | PHP_INI_SYSTEM |
mysqlnd_ms.disable_rw_split | 0 | PHP_INI_SYSTEM |
mysqlnd_mux.enable | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.enable_qc | 1 | PHP_INI_SYSTEM |
mysqlnd_qc.ttl | 30 | PHP_INI_ALL |
mysqlnd_qc.cache_by_default | 0 | PHP_INI_ALL |
mysqlnd_qc.cache_no_table | 0 | PHP_INI_ALL |
mysqlnd_qc.use_request_time | 0 | PHP_INI_ALL |
mysqlnd_qc.time_statistics | 1 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics | 0 | PHP_INI_ALL |
mysqlnd_qc.collect_statistics_log_file | /tmp/mysqlnd_qc.stats | PHP_INI_SYSTEM |
mysqlnd_qc.collect_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.query_trace_bt_depth | 3 | PHP_INI_SYSTEM |
mysqlnd_qc.collect_normalized_query_trace | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.ignore_sql_comments | 1 | PHP_INI_ALL |
mysqlnd_qc.slam_defense | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.slam_defense_ttl | 30 | PHP_INI_SYSTEM |
mysqlnd_qc.std_data_copy | 0 | PHP_INI_SYSTEM |
mysqlnd_qc.apc_prefix | qc_ | PHP_INI_ALL |
mysqlnd_qc.memc_server | 127.0.0.1 | PHP_INI_ALL |
mysqlnd_qc.memc_port | 11211 | PHP_INI_ALL |
mysqlnd_qc.sqlite_data_file | :memory: | PHP_INI_ALL |
mysqlnd_uh.enable | 1 | PHP_INI_SYSTEM |
mysqlnd_uh.report_wrong_types | 1 | PHP_INI_ALL |
nsapi.read_timeout | "60" | PHP_INI_ALL | Доступно с PHP 4.3.3.
oci8.connection_class | "" | PHP_INI_ALL | Доступно с PHP 5.3 (PECL OCI8 1.3).
oci8.default_prefetch | "10" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.events | Off | PHP_INI_SYSTEM | Доступно с PHP 5.3 (PECL OCI8 1.3).
oci8.max_persistent | "-1" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.old_oci_close_semantics | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.persistent_timeout | "-1" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.ping_interval | "60" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.privileged_connect | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
oci8.statement_cache_size | "20" | PHP_INI_SYSTEM | Доступно с PHP 5.1.2.
odbc.allow_persistent | "1" | PHP_INI_SYSTEM |
odbc.check_persistent | "1" | PHP_INI_SYSTEM |
odbc.defaultbinmode | "1" | PHP_INI_ALL |
odbc.defaultlrl | "4096" | PHP_INI_ALL |
odbc.default_db | NULL | PHP_INI_ALL |
odbc.default_cursortype | "3" | PHP_INI_ALL | Доступно с PHP 5.3.0.
odbc.default_pw | NULL | PHP_INI_ALL |
odbc.default_user | NULL | PHP_INI_ALL |
odbc.max_links | "-1" | PHP_INI_SYSTEM |
odbc.max_persistent | "-1" | PHP_INI_SYSTEM |
odbtp.datetime_format | "object" | PHP_INI_ALL |
odbtp.detach_default_queries | "0" | PHP_INI_ALL |
odbtp.guid_format | "string" | PHP_INI_ALL | Доступно с odbtp 1.1.3.
odbtp.interface_file | "/usr/local/share/odbtp.conf" | PHP_INI_ALL |
odbtp.truncation_errors | "1" | PHP_INI_ALL |
opendirectory.default_separator | "/" | PHP_INI_ALL | Удалено в opendirectory 0.2.2.
opendirectory.max_refs | "-1" | PHP_INI_ALL |
opendirectory.separator | "/" | PHP_INI_ALL | Доступно с opendirectory 0.2.2.
open_basedir | NULL | PHP_INI_ALL | PHP_INI_SYSTEM в PHP < 5.2.3.
oracle.allow_persistent | "-1" | PHP_INI_ALL | Удалено в PHP 5.1.0.
oracle.max_links | "-1" | PHP_INI_ALL | Удалено в PHP 5.1.0.
oracle.max_persistent | "-1" | PHP_INI_ALL | Удалено в PHP 5.1.0.
output_buffering | "0" | PHP_INI_PERDIR |
output_handler | NULL | PHP_INI_PERDIR | Доступно с PHP 4.0.4.
pam.servicename | "php" | PHP_INI_ALL |
pcre.backtrack_limit | "1000000" | PHP_INI_ALL | Доступно с PHP 5.2.0.
pcre.recursion_limit | "100000" | PHP_INI_ALL | Доступно с PHP 5.2.0.
pcre.jit | "1" | PHP_INI_ALL | Доступно с PHP 7.0.0.
pdo.dsn.* |  | Только php.ini | Доступно с PHP 5.1.0.
pdo_odbc.connection_pooling | "strict" | PHP_INI_ALL | Доступно с PHP 5.1.0.
pdo_odbc.db2_instance_name | NULL | PHP_INI_SYSTEM | Доступно с PHP 5.1.1. Эта возможность устарела и будет обязательно удалена в будущем.
pfpro.defaulthost | "test-payflow.verisign.com" | PHP_INI_ALL | Доступно с PHP 4.0.2. Удалено в PHP 5.1.0.
pfpro.defaultport | "443" | PHP_INI_ALL | Доступно с PHP 4.0.2. Удалено в PHP 5.1.0.
pfpro.defaulttimeout | "30" | PHP_INI_ALL | Доступно с PHP 4.0.2. Удалено в PHP 5.1.0.
pfpro.proxyaddress | "" | PHP_INI_ALL | Доступно с PHP 4.0.2. Удалено в PHP 5.1.0.
pfpro.proxylogon | "" | PHP_INI_ALL | Доступно с PHP 4.0.2. Удалено в PHP 5.1.0.
pfpro.proxypassword | "" | PHP_INI_ALL | Доступно с PHP 4.0.2. Удалено в PHP 5.1.0.
pfpro.proxyport | "" | PHP_INI_ALL | Доступно с PHP 4.0.2. Удалено в PHP 5.1.0.
pgsql.allow_persistent | "1" | PHP_INI_SYSTEM |
pgsql.auto_reset_persistent | "0" | PHP_INI_SYSTEM | Доступно с PHP 4.2.0.
pgsql.ignore_notice | "0" | PHP_INI_ALL | Доступно с PHP 4.3.0.
pgsql.log_notice | "0" | PHP_INI_ALL | Доступно с PHP 4.3.0.
pgsql.max_links | "-1" | PHP_INI_SYSTEM |
pgsql.max_persistent | "-1" | PHP_INI_SYSTEM |
phar.cache_list | "" | PHP_INI_SYSTEM | Доступно с PHP 5.4.0.
phar.extract_list | "" | PHP_INI_ALL | Доступно с phar 1.1.0.
phar.readonly | "1" | PHP_INI_ALL |
phar.require_hash | "1" | PHP_INI_ALL |
post_max_size | "8M" | PHP_INI_PERDIR | PHP_INI_SYSTEM в PHP <= 4.2.3. Доступно с PHP 4.0.3.
precision | "14" | PHP_INI_ALL |
python.append_path | "" | PHP_INI_ALL |
python.prepend_path | "." | PHP_INI_ALL |
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Доступно с PHP 5.1.0.
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Доступно с PHP 5.1.0.
register_argc_argv | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
register_globals | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3. Объявлено устаревшим в PHP 5.3.0. Удалено в PHP 5.4.0.
register_long_arrays | "1" | PHP_INI_PERDIR | Доступно с PHP 5.0.0. Объявлено устаревшим в PHP 5.3.0. Удалено в PHP 5.4.0.
report_memleaks | "1" | PHP_INI_ALL | Доступно с PHP 4.3.0.
report_zend_debug | "1" | PHP_INI_ALL | Доступно с PHP 5.0.0.
request_order | "" | PHP_INI_PERDIR | Добавлено в PHP 5.3.0
runkit.internal_override | "0" | PHP_INI_SYSTEM |
runkit.superglobal | "" | PHP_INI_PERDIR |
safe_mode | "0" | PHP_INI_SYSTEM | Удалено в PHP 5.4.0.
safe_mode_allowed_env_vars | "PHP_" | PHP_INI_SYSTEM | Удалено в PHP 5.4.0.
safe_mode_exec_dir | "" | PHP_INI_SYSTEM | Удалено в PHP 5.4.0.
safe_mode_gid | "0" | PHP_INI_SYSTEM | Доступно с PHP 4.1.0. Удалено в PHP 5.4.0.
safe_mode_include_dir | NULL | PHP_INI_SYSTEM | Доступно с PHP 4.1.0. Удалено в PHP 5.4.0.
safe_mode_protected_env_vars | "LD_LIBRARY_PATH" | PHP_INI_SYSTEM | Удалено в PHP 5.4.0.
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | "/usr/sbin/sendmail -t -i" | PHP_INI_SYSTEM |
serialize_precision | "-1" | PHP_INI_ALL | Доступно с PHP 4.3.2. До PHP 5.3.5, значение по умолчанию 100. До PHP 7.1.0, значение по умолчанию 17.
session.auto_start | "0" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 5.4.19 и в PHP <= 5.5.1.
session.bug_compat_42 | "1" | PHP_INI_ALL | Доступно с PHP 4.3.0. Удалено в PHP 5.4.0.
session.bug_compat_warn | "1" | PHP_INI_ALL | Доступно с PHP 4.3.0. Удалено в PHP 5.4.0.
session.cache_expire | "180" | PHP_INI_ALL |
session.cache_limiter | "nocache" | PHP_INI_ALL |
session.cookie_domain | "" | PHP_INI_ALL |
session.cookie_httponly | "" | PHP_INI_ALL | Доступно с PHP 5.2.0.
session.cookie_lifetime | "0" | PHP_INI_ALL |
session.cookie_path | "/" | PHP_INI_ALL |
session.cookie_secure | "" | PHP_INI_ALL | Доступно с PHP 4.0.4.
session.entropy_file | "" | PHP_INI_ALL | Удалено в PHP 7.1.0
session.entropy_length | "0" | PHP_INI_ALL | Удалено в PHP 7.1.0
session.gc_divisor | "100" | PHP_INI_ALL | Доступно с PHP 4.3.2.
session.gc_maxlifetime | "1440" | PHP_INI_ALL |
session.gc_probability | "1" | PHP_INI_ALL |
session.sid_bits_per_character | "32" | PHP_INI_ALL | Доюавлено в PHP 7.1.0.
session.hash_bits_per_character | "5" | PHP_INI_ALL | Удалено в PHP 7.1.0
session.hash_function | "0" | PHP_INI_ALL | Удалено в PHP 7.1.0
session.lazy_write | "1" | PHP_INI_ALL | Доступно с PHP 7.0.0.
session.name | "PHPSESSID" | PHP_INI_ALL |
session.referer_check | "" | PHP_INI_ALL |
session.save_handler | "files" | PHP_INI_ALL |
session.save_path | "" | PHP_INI_ALL |
session.serialize_handler | "php" | PHP_INI_ALL |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
session.use_strict_mode | "0" | PHP_INI_ALL | Доступно с PHP 5.5.2.
session.use_cookies | "1" | PHP_INI_ALL |
session.use_only_cookies | "1" | PHP_INI_ALL | Доступно с PHP 4.3.0.
session.use_trans_sid | "0" | PHP_INI_ALL | PHP_INI_ALL в PHP <= 4.2.3. PHP_INI_PERDIR в PHP < 5. Доступно с PHP 4.0.3.
session_pgsql.create_table | "1" | PHP_INI_SYSTEM |
session_pgsql.db | "host=localhost dbname=php_session user=nobody" | PHP_INI_SYSTEM |
session_pgsql.disable | "0" | PHP_INI_SYSTEM |
session_pgsql.failover_mode | "0" | PHP_INI_SYSTEM |
session_pgsql.gc_interval | "3600" | PHP_INI_SYSTEM |
session_pgsql.keep_expired | "0" | PHP_INI_SYSTEM |
session_pgsql.sem_file_name | "/tmp/php_session_pgsql" | PHP_INI_SYSTEM |
session_pgsql.serializable | "0" | PHP_INI_SYSTEM |
session_pgsql.short_circuit | "0" | PHP_INI_SYSTEM |
session_pgsql.use_app_vars | "0" | PHP_INI_SYSTEM |
session_pgsql.vacuum_interval | "21600" | PHP_INI_SYSTEM |
short_open_tag | "1" | PHP_INI_PERDIR | PHP_INI_ALL в PHP 4.0.0. PHP_INI_PERDIR в PHP >= 4.0.1.
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL | Доступно с PHP 4.3.0.
soap.wsdl_cache | "1" | PHP_INI_ALL | Доступно с PHP 5.1.5.
soap.wsdl_cache_dir | "/tmp" | PHP_INI_ALL | Доступно с PHP 5.0.0.
soap.wsdl_cache_enabled | "1" | PHP_INI_ALL | Доступно с PHP 5.0.0.
soap.wsdl_cache_limit | "5" | PHP_INI_ALL | Доступно с PHP 5.1.5.
soap.wsdl_cache_ttl | "86400" | PHP_INI_ALL | Доступно с PHP 5.0.0.
sql.safe_mode | "0" | PHP_INI_SYSTEM |
sqlite.assoc_case | "0" | PHP_INI_ALL | Доступно с PHP 5.0.0.
sqlite3.extension_dir | "" | PHP_INI_SYSTEM | Доступно с PHP 5.3.11.
sybase.allow_persistent | "1" | PHP_INI_ALL | PHP_INI_ALL в PHP <= 4.0.2. PHP_INI_SYSTEM в PHP <= 4.0.3.
sybase.interface_file | "" | PHP_INI_ALL |
sybase.max_links | "-1" | PHP_INI_ALL | PHP_INI_ALL в PHP <= 4.0.2. PHP_INI_SYSTEM в PHP <= 4.0.3.
sybase.max_persistent | "-1" | PHP_INI_ALL | PHP_INI_ALL в PHP <= 4.0.2. PHP_INI_SYSTEM в PHP <= 4.0.3.
sybase.min_error_severity | "10" | PHP_INI_ALL |
sybase.min_message_severity | "10" | PHP_INI_ALL |
sybct.deadlock_retry_count | "0" | PHP_INI_ALL | Доступно с PHP 4.3.0.
sybct.login_timeout | "-1" | PHP_INI_ALL | Доступно с PHP 4.0.2.
sybct.packet_size | "0" | PHP_INI_ALL | Доступно с PHP 4.3.5.
sybct.timeout | "0" | PHP_INI_ALL | Доступно с PHP 4.0.2.
sys_temp_dir | "" | PHP_INI_SYSTEM | Доступно с PHP 5.5.0.
sysvshm.init_mem | "10000" | PHP_INI_ALL |
tidy.clean_output | "0" | PHP_INI_USER | PHP_INI_PERDIR в PHP 5. Доступно с PHP 5.0.0.
tidy.default_config | "" | PHP_INI_SYSTEM | Доступно с PHP 5.0.0.
track_errors | "0" | PHP_INI_ALL |
unserialize_callback_func | NULL | PHP_INI_ALL | Доступно с PHP 4.2.0.
uploadprogress.file.filename_template | "/tmp/upt_%s.txt" | PHP_INI_ALL |
upload_max_filesize | "2M" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 4.2.3.
max_file_uploads | 20 | PHP_INI_SYSTEM | Доступно с PHP 5.2.12.
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Доступно с PHP 4.0.4.
user_agent | NULL | PHP_INI_ALL | Доступно с PHP 4.3.0.
user_dir | NULL | PHP_INI_SYSTEM |
user_ini.cache_ttl | "300" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
user_ini.filename | ".user.ini" | PHP_INI_SYSTEM | Доступно с PHP 5.3.0.
valkyrie.auto_validate | "0" | PHP_INI_ALL |
valkyrie.config_path | NULL | PHP_INI_ALL |
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 5.0.5.
vld.active | "0" | PHP_INI_SYSTEM |
vld.execute | "1" | PHP_INI_SYSTEM | Доступно с vld 0.8.0.
vld.skip_append | "0" | PHP_INI_SYSTEM | Доступно с vld 0.8.0.
vld.skip_prepend | "0" | PHP_INI_SYSTEM | Доступно с vld 0.8.0.
windows.show_crt_warning | "0" | PHP_INI_ALL | Доступно с PHP 5.4.0.
xbithack | "0" | PHP_INI_ALL | Доступно с PHP 4.0.5.
xdebug.auto_profile | "0" | PHP_INI_ALL | Удалено в Xdebug 2.0.0.
xdebug.auto_profile_mode | "0" | PHP_INI_ALL | Удалено в Xdebug 2.0.0.
xdebug.auto_trace | "0" | PHP_INI_ALL |
xdebug.collect_includes | "1" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.collect_params | "0" | PHP_INI_ALL |
xdebug.collect_return | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.collect_vars | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.default_enable | "1" | PHP_INI_ALL | PHP_INI_SYSTEM в Xdebug 1.
xdebug.dump.COOKIE | NULL | PHP_INI_ALL |
xdebug.dump.ENV | NULL | PHP_INI_ALL |
xdebug.dump.FILES | NULL | PHP_INI_ALL |
xdebug.dump.GET | NULL | PHP_INI_ALL |
xdebug.dump.POST | NULL | PHP_INI_ALL |
xdebug.dump.REQUEST | NULL | PHP_INI_ALL |
xdebug.dump.SERVER | NULL | PHP_INI_ALL |
xdebug.dump.SESSION | NULL | PHP_INI_ALL |
xdebug.dump_globals | "1" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.dump_once | "1" | PHP_INI_ALL |
xdebug.dump_undefined | "0" | PHP_INI_ALL |
xdebug.extended_info | "1" | PHP_INI_SYSTEM | Доступно с Xdebug 2.0.0.
xdebug.idekey | "" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.manual_url | "http://www.php.net" | PHP_INI_ALL |
xdebug.max_nesting_level | "100" | PHP_INI_ALL |
xdebug.output_dir | "/tmp" | PHP_INI_PERDIR | PHP_INI_SYSTEM в Xdebug <= 1.2.0. Удалено в Xdebug 2.0.0.
xdebug.profiler_aggregate | "0" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.profiler_append | "0" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.profiler_enable | "0" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.profiler_enable_trigger | "0" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.profiler_output_dir | "/tmp" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.profiler_output_name | "cachegrind.out.%p" | PHP_INI_PERDIR | Доступно с Xdebug 2.0.0.
xdebug.remote_autostart | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.remote_enable | "0" | PHP_INI_PERDIR |
xdebug.remote_handler | "dbgp" | PHP_INI_ALL |
xdebug.remote_host | "localhost" | PHP_INI_ALL |
xdebug.remote_log | "" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.remote_mode | "req" | PHP_INI_ALL |
xdebug.remote_port | "9000" | PHP_INI_ALL |
xdebug.show_exception_trace | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.show_local_vars | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.show_mem_delta | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.trace_format | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.trace_options | "0" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.trace_output_dir | "/tmp" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.trace_output_name | "trace.%c" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.var_display_max_children | "128" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.var_display_max_data | "512" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xdebug.var_display_max_depth | "3" | PHP_INI_ALL | Доступно с Xdebug 2.0.0.
xmlrpc_errors | "0" | PHP_INI_SYSTEM | Доступно с PHP 4.1.0.
xmlrpc_error_number | "0" | PHP_INI_ALL | Доступно с PHP 4.1.0.
xmms.path | "/usr/bin/xmms" | PHP_INI_ALL |
xmms.session | "0" | PHP_INI_ALL |
xsl.security_prefs | "44" | PHP_INI_ALL | Доступно с PHP 5.5.0.
y2k_compliance | "1" | PHP_INI_ALL | Удалено в PHP 5.4.0.
yami.response.timeout | "5" | PHP_INI_ALL | Доступно с yami 1.0.1.
yaz.keepalive | "120" | PHP_INI_ALL |
yaz.log_mask | NULL | PHP_INI_ALL | Доступно с yaz 1.0.3.
zend.assertions | "1" | PHP_INI_ALL | Доступно с PHP 7.0.0.
zend.detect_unicode | "1" | PHP_INI_ALL | Доступно с PHP 5.4.0.
zend.enable_gc | "1" | PHP_INI_ALL | Доступно с PHP 5.3.0.
zend.multibyte | "0" | PHP_INI_PERDIR | Доступно с PHP 5.4.0.
zend.script_encoding | NULL | PHP_INI_ALL | Доступно с PHP 5.4.0
zend.signal_check | "0" | PHP_INI_SYSTEM | Доступно с PHP 5.4.0
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Доступно с PHP 5.0.0. Удалено в PHP 5.3.0.
zend_extension | NULL | Только php.ini |
zend_extension_debug | NULL | Только php.ini |
zend_extension_debug_ts | NULL | Только php.ini |
zend_extension_ts | NULL | Только php.ini |
zlib.output_compression | "0" | PHP_INI_ALL | Доступно с PHP 4.0.5.
zlib.output_compression_level | "-1" | PHP_INI_ALL | Доступно с PHP 4.3.0.
zlib.output_handler | "" | PHP_INI_ALL | Доступно с PHP 4.3.0.


Список разделов php.ini

В этом списке указаны разделы, в которых вы можете настроить PHP в зависимости от хоста или пути. Эти разделы необязательны.

Данные разделы не имеют прямого влияния на PHP. Они нужны для группировки других директив php.ini вместе и для возможности действовать в зависимости от определенного хоста или пути.

Данные разделы используются только в режиме CGI/FastCGI и в них не могут быть использованы директивы extension и zend_extension.

Разделы
Название | Место изменения | История изменений
[HOST=] | PHP_INI_SYSTEM | Добавлено в PHP 5.3.0.
[PATH=] | PHP_INI_SYSTEM | Добавлено в PHP 5.3.0.

Краткое разъяснение конфигурационных директив.

[HOST=<host>]

Данный раздел позволяет определять набор php.ini директив, которые будут применяться только к указанному хосту.

Пример #1 Активация полного логирования и сообщения об ошибках для dev. домена

[HOST=dev.site.com]
error_reporting = E_ALL
display_errors = On

[PATH=<path>]

Данный раздел позволяет определять набор php.ini директив, которые будут применяться, если скрипт будет запущен из указанного пути.

Пример #2 Добавление скрипта безопасности для защищенных зон

[PATH=/home/site/public/secure]
auto_prepend_file=security.php


Описание встроенных директив php.ini

Этот список включает встроенные директивы php.ini, которые вы можете использовать для настройки PHP. Директивы, которые обрабатываются модулями, перечислены и подробно описаны на страницах документаций соответствующих модулей. К примеру, информация о директивах сессий может быть найдена на странице документации сессий.

Замечание:

Представленные здесь значения по умолчанию используются в случае, если не был подключен php.ini; значения для боевого php.ini и для разработки могут различаться.

Языковые опции

Опции языка и прочих настроек
Имя | По умолчанию | Меняемо | Список изменений
short_open_tag | "1" | PHP_INI_PERDIR |
asp_tags | "0" | PHP_INI_PERDIR | Удалена в PHP 7.0.0.
precision | "14" | PHP_INI_ALL |
serialize_precision | "17" | PHP_INI_ALL | До версии PHP 5.3.5 значение по умолчанию было равно 100.
y2k_compliance | "1" | PHP_INI_ALL | Удалена в PHP 5.4.0.
allow_call_time_pass_reference | "1" | PHP_INI_PERDIR | Удалена в PHP 5.4.0.
disable_functions | "" | Только PHP_INI_SYSTEM |
disable_classes | "" | Только php.ini |
exit_on_timeout | "" | PHP_INI_ALL | Доступна с версии PHP 5.3.0.
expose_php | "1" | Только php.ini |
zend.multibyte | "0" | PHP_INI_ALL | Доступна с версии PHP 5.4.0
zend.script_encoding | NULL | PHP_INI_ALL | Доступна с версии PHP 5.4.0
zend.detect-unicode | NULL | PHP_INI_ALL | Доступна с версии PHP 5.4.0
zend.signal_check | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 5.4.0
zend.assertions | "1" | PHP_INI_ALL с ограничениями | Доступна с версии PHP 7.0.0.
zend.ze1_compatibility_mode | "0" | PHP_INI_ALL | Удалена в PHP 5.3.0
detect_unicode | "1" | PHP_INI_ALL | Доступна с версии PHP 5.1.0. Переименована на zend.detect-unicode с версии PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

short_open_tag boolean

Определяет, разрешается ли короткая форма записи (<? ?>) тегов PHP. Если вы хотите использовать PHP совместно с XML, вы можете отключить эту опцию, чтобы беспрепятственно использовать <?xml ?>. В противном случае, вы можете отобразить это при помощи PHP, например: <?php echo '<?xml version="1.0"?>'; ?>. Если же эта опция отключена, вы должны использовать длинную форму открывающего тега PHP (<?php ?>).

Замечание:

Эта директива также влияла на сокращение <?= до версии PHP 5.4.0, которое идентично записи <? echo. Для использования этого сокращения должна была быть включена директива short_open_tag. Начиная с версии PHP 5.4.0 запись <?= стала доступна всегда.

asp_tags boolean
Включает использование тегов в стиле ASP в дополнение к обычным тегам <?php ?>. Это касается и сокращения для отображения значения переменных <%= $value %>. Для получения дополнительной информации, обратитесь к разделу Экранирование HTML.

Changelog for asp_tags
Версия | Описание
7.0.0 | Удалена из PHP.

precision integer
Количество значащих цифр, отображаемых для чисел с плавающей точкой. -1 означает, что будет использован усовершенствованный алгоритм для округления таких чисел.
serialize_precision integer
Количество сохраняемых значащих цифр при сериализации чисел с плавающей точкой. -1 означает, что будет использован усовершенствованный алгоритм для округления таких чисел.
y2k_compliance boolean
Включение совместимости с 2000 годом (создаст проблемы с несовместимыми браузерами)
allow_call_time_pass_reference boolean

Нужно ли выводить предупреждение, если аргументы передаются по ссылке при вызове функции. Рекомендуется указывать в объявлении функции передаваемые по ссылке аргументы. Попробуйте выключить эту опцию и убедиться, что ваши скрипты правильно работают без нее и что они будут работать с будущими версиями языка (вы будете получать предупреждение каждый раз, когда вы будете пользоваться этой возможностью).

Передача аргументов по ссылке во время вызова функции была объявлена устаревшей из соображений чистоты кода. Функция может менять свои аргументы недокументированным способом, если бы аргумент не объявлялся передаваемым по ссылке. Чтобы избежать побочных эффектов, лучше явно указывать, какие аргументы передаются по ссылке только при объявлении функции.

См. также Подробное описание ссылок.

Список изменений для allow_call_time_pass_reference
Версия | Описание
5.4.0 | Удалена из PHP.
5.3.0 | Генерирует ошибку уровня E_DEPRECATED.
5.0.0 | Устарела и генерирует ошибку уровня E_COMPILE_WARNING.

expose_php boolean

Выдает факт присутствия PHP на сервере, включая передачу версии PHP в HTTP-заголовке (например, X-Powered-By: PHP/5.3.7). До версии PHP 5.5.0 также показывались идентификаторы логотипов, таким образом, при добавлении их к ссылке на сайте с PHP показывался соответствующий логотип (например, » http://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42). Отключение данной опции также влияло на вывод функции phpinfo(), в этом случае логотип PHP и информация о разработчиках, принимавших участие в разработке PHP, не отображались.

Замечание:

В версии PHP 5.5.0 данные идентификаторы логотипов и функция php_logo_guid() были удалены, теперь для отображения логотипов используется механизм data URI. Таким образом добавление идентификатора логотипа к ссылке (для показа логотипа) больше не работает. Аналогично, выключение опции expose_php более не влияет на отображение логотипа PHP в выводе функции phpinfo().

Смотрите также php_logo_guid() и phpcredits().

disable_functions string

Эта директива позволяет отключить некоторые функции по причинам безопасности. Она принимает список имен функций, разделенный запятыми. disable_functions не подвержена влиянию безопасного режима.

Только внутренние функции могут быть отключены с помощью этой директивы. Пользовательские функции ей не подвержены.

Эта директива должна быть установлена в php.ini. Например, ее нельзя использовать в httpd.conf.

disable_classes string
Эта директива позволяет отключить некоторые классы по причинам безопасности. Она принимает список имен классов, разделенных запятыми. disable_classes не подвержена влиянию безопасного режима. Эта директива должна быть установлена в php.ini. Например, ее нельзя использовать в httpd.conf.
zend.assertions integer
Если задано значение 1, проверочный код будет исполняться (режим разработки). Если задан 0, код проверок будет сгенерирован, одноко исполняться не будет. Если задано -1, проверочный код не будет генерироваться (продуктивный режим).

Замечание:

Если процесс стартован в режиме релиза, zend.assertions не может быть изменен во время выполнения, так как код утверждений не генерируется.

Если процесс стартован в режиме разработки, zend.assertions не может быть выставлен в -1 во время выполнения..

zend.ze1_compatibility_mode boolean

Включает режим совместимости с Zend Engine 1 (PHP 4). Это влияет на клонирование, приведение типов (объекты без свойств приводятся к FALSE или 0) и сравнение объектов. В этом режиме объекты по умолчанию передаются по значению вместо ссылки.

См. также раздел Переход с PHP 4 на PHP 5.

Внимание

Эта возможность была помечена УСТАРЕВШЕЙ и БЫЛА УДАЛЕНА в версии PHP 5.3.0.

zend.multibyte boolean

Разрешает парсинг исходных файлов в многобайтных кодировках. Включение zend.multibyte требуется для использования кодировок символов подобных SJIS, BIG5 и т.д., содержащих специальные символы в многобайтных строковых данных. Совместимые с ISO-8859-1 кодировки, например UTF-8, EUC и т.д., не требуют эту опцию.

Разрешение zend.multibyte требует установленного расширения "mbstring".

zend.script_encoding string

Данное значение будет использовано, только при отсутствии директивы declare(encoding=...) в начале скрипта. При использовании кодировок несовместимых с ISO-8859-1, нужно использовать опции и zend.multibyte и zend.script_encoding.

Литеральные строки должны быть транслитерированы из zend.script_enconding в mbstring.internal_encoding, как если бы вызвали mb_convert_encoding().

zend.detect_unicode boolean

Определяет, нужно ли проверять BOM (Byte Order Mark, метка порядка байт) и корректность многобайтных символов в файле. Эта проверка производится до вызова __halt_compiler(). Доступна только в режиме Zend Multibyte.

zend.signal_check boolean

Определяет, нужно ли проверять замененные обработчики сигналов при завершении скрипта.

exit_on_timeout boolean

Эта директива только для Apache1 mod_php, которая заставляет потомка Apache завершиться, если произошел тайм-аут исполнения скрипта PHP. Такой тайм-аут приводит к внутреннему вызову longjmp() в Apache1, который оставляет некоторые расширения в несогласованном состоянии. По завершении процесса все неснятые блокировки или память будут очищены.

Ограничения ресурсов

Ограничения ресурсов
Имя | По умолчанию | Меняемо | Список изменений
memory_limit | "128M" | PHP_INI_ALL | "8M" до PHP 5.2.0, "16M" в PHP 5.2.0

Краткое разъяснение конфигурационных директив.

memory_limit integer

Эта директива задает максимальный объем памяти в байтах, который разрешается использовать скрипту. Это помогает предотвратить ситуацию, при которой плохо написанный скрипт съедает всю доступную память сервера. Для того, чтобы убрать ограничения, установите значение этой директивы в -1.

В версиях до PHP 5.2.1 для использования этой директивы, она должна была быть указана на этапе компиляции. Так, ваша строка конфигурации должна была включать: --enable-memory-limit . Эта опция компиляции была также необходима для использования функций memory_get_usage() и memory_get_peak_usage() до версии 5.2.1.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ.

См. также: max_execution_time.

Настройка производительности

Настройка производительности
Имя | По умолчанию | Меняемо | Список изменений
realpath_cache_size | "16K" | PHP_INI_SYSTEM | Доступна с версии PHP 5.1.0.
realpath_cache_ttl | "120" | PHP_INI_SYSTEM | Доступна с версии PHP 5.1.0.

Краткое разъяснение конфигурационных директив.

realpath_cache_size integer

Определяет размера кэша realpath, используемого в PHP. Это значение должно быть увеличено на системах, в которых PHP открывает большое количество файлов соответственно количеству выполняемых файловых операций.

Размер равный общему числу байт, хранящимся в строках путей, плюс размер данных связанных с кешируемым элементом. Это значит, что для хранения длинных путей в кэше, размер этого кэша должен быть больше. Это значение не определяет напрямую количество разных путей, которые могут быть закэшированы.

Размер, необходимый для кэширования, зависит от системы.

realpath_cache_ttl integer

Время (в секундах) в течение которого будет использован кэш realpath для указанного файла или директории. Для систем с редко меняющимися файлами это значение можно увеличить.

Обработка данных

Конфигурационные опции обработки данных
Имя | По умолчанию | Меняемо | Список изменений
arg_separator.output | "&" | PHP_INI_ALL |
arg_separator.input | "&" | PHP_INI_PERDIR |
variables_order | "EGPCS" | PHP_INI_PERDIR | PHP_INI_ALL в PHP <= 5.0.5.
request_order | "" | PHP_INI_PERDIR | Доступна с версии PHP 5.3.0
auto_globals_jit | "1" | PHP_INI_PERDIR | Доступна с версии PHP 5.0.0.
register_globals | "0" | PHP_INI_PERDIR | Удалена в PHP 5.4.0.
register_argc_argv | "1" | PHP_INI_PERDIR |
register_long_arrays | "1" | PHP_INI_PERDIR | Помечена устаревшей в PHP 5.3.0. Удалена в PHP 5.4.0.
enable_post_data_reading | "1" | PHP_INI_PERDIR | Доступна с версии PHP 5.4.0
post_max_size | "8M" | PHP_INI_PERDIR |
auto_prepend_file | NULL | PHP_INI_PERDIR |
auto_append_file | NULL | PHP_INI_PERDIR |
default_mimetype | "text/html" | PHP_INI_ALL |
default_charset | "UTF-8" | PHP_INI_ALL | По умолчанию "UTF-8" с PHP >= 5.6.0; пустая для PHP < 5.6.0.
always_populate_raw_post_data | "0" | PHP_INI_PERDIR | Удалена в PHP 7.0.0.

Краткое разъяснение конфигурационных директив.

arg_separator.output string

Этот разделитель используется в генерируемых PHP URL в качестве разделителя аргументов.

arg_separator.input string

Список разделителей, используемых PHP для получения переменных из URL.

Замечание:

Каждый символ в этой директиве считается разделителем!

variables_order string

Устанавливает порядок обработки переменных EGPCS (Environment, Get, Post, Cookie, и Server). Например, если variables_order установлена в "SP", то PHP создаст superglobals $_SERVER и $_POST, но не будет создавать $_ENV, $_GET и $_COOKIE. Установка в "" означает, что ни одна superglobals не будет установлена.

Если включена устаревшая директива register_globals, то variables_order также устанавливает порядок экспорта переменных ENV, GET, POST, COOKIE и SERVER в глобальное пространство. Например, если порядок переменных установлен как "EGPCS", register_globals включена, и существуют обе $_GET['action'] и $_POST['action'], то переменная $action будет содержать значение $_POST['action'], так как P в нашем примере идет после G.

Внимание

В CGI и FastCGI SAPI, в $_SERVER также добавляются значения переменных окружения; S всегда эквивалентна ES вне зависимости от самого положения E в этой директиве.

Замечание:

Эта директива также влияет на содержимое и порядок переменной $_REQUEST.

request_order string

Эта директива регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST. Добавление производится слева направо, новые значения перезаписывают старые.

Если значение этой директивы не установлено, то используется значение директивы variables_order для содержимого переменной $_REQUEST.

Учтите, что файлы php.ini, поставляемые с дистрибутивом, по соображениям безопасности не содержат значение 'C' (cookies).

auto_globals_jit boolean

Когда включено, переменные SERVER и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведет к росту производительности.

Директивы PHP register_globals, register_long_arrays и register_argc_argv должны быть выключены для правильной работы этой директивы. Начиная с версии PHP 5.1.3 стало необязательно выключать register_argc_argv.

Внимание

Использование переменных SERVER и ENV проверяется на стадии компиляции, поэтому их использование с помощью, например, переменных переменных не запустит их инициализацию.

register_globals boolean

Регистрировать или нет переменные EGPCS (Environment, GET, POST, Cookie, Server) в качестве глобальных переменных.

Начиная с версии » PHP 4.2.0, значением по умолчанию для этой директивы является off.

Пожалуйста, ознакомтесь с главой о безопасности Использование глобальных переменных для получения дополнительной информации.

Обратите внимание, что register_globals не может быть установлена во время выполнения скрипта (ini_set()). Тем не менее, вы можете использовать .htaccess, если ваш сервер позволяет это, как описано выше. Пример директивы в .htaccess: php_flag register_globals off.

Замечание:

На поведение register_globals влияет директива variables_order.

Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

register_argc_argv boolean
Сообщает PHP, следует ли объявлять переменные argv и argc (которые будут содержать GET-информацию). См. также Использование PHP в командной строке.
register_long_arrays boolean
Сообщает PHP, следует ли регистрировать устаревшие длинные предопределенные переменные типа $HTTP_*_VARS. Если включена (по умолчанию), то длинные предопределенные переменные PHP, например $HTTP_GET_VARS, будут объявлены. Если вы их не используете, рекомендуем отключить их из соображений производительности. Вместо них следует использовать суперглобальные массивы, например $_GET. Эта директива стала доступна с версии PHP 5.0.0.
Внимание

Данная возможность была помечена УСТАРЕВШЕЙ начиная с версии PHP 5.3.0 и была УДАЛЕНА в версии PHP 5.4.0.

enable_post_data_reading boolean
При отключении этой опции суперглобальные переменные $_POST и $_FILES не будут заполняться. Единственным способом прочесть POST-данные будет чтение обертки потока php://input. Это может оказаться полезным при проксировании запросов или обработки POST-данных способом, более эффективно использующим память.
post_max_size integer
Устанавливает максимально допустимый размер данных, отправляемых методом POST. Это значение также влияет на загрузку файлов. Для загрузки больших файлов это значение должно быть больше значения директивы upload_max_filesize. В сущности, memory_limit должна быть больше чем post_max_size. Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ. Если размер POST-данных больше чем post_max_size, суперглобальные переменные $_POST и $_FILES будут пустыми. Это можно отследить различными способами, например передав $_GET переменную в скрипт, обрабатывающий данные, т.е. <form action="edit.php?processed=1">, а затем проверить, установлена ли переменная $_GET['processed'].

Замечание:

PHP разрешает сокращения значений байт, включая K (кило), M (мега) и G (гига). PHP автоматически преобразует все эти сокращения. Будьте осторожны с превышением диапазона 32-битных целых значений (если вы используете 32-битную версию), так как это приведет к ошибке вашего скрипта.

Список изменений post_max_size
Версия | Описание
5.3.4 | Установка post_max_size = 0 не снимет ограничение, если контент имеет тип application/x-www-form-urlencoded или не зарегистрирован в PHP.
5.3.2 , 5.2.12 | Стало возможным снять ограничение на размер пост-запроса установкой post_max_size в 0.

auto_prepend_file string

Определяет имя файла, который будет автоматически обрабатываться перед основным файлом. Файл вызывается так, будто он был подключен при помощи функции require, так что include_path также используется.

Специальное значение none отключает эту директиву.

auto_append_file string

Определяет имя файла, который будет автоматически обрабатываться после основного файла. Файл вызывается так, будто он был подключен при помощи функции require, так что include_path тоже используется.

Специальное значение none отключает эту директиву.

Замечание: Если скрипт завершает работу при помощи exit(), auto-append НЕ выполняется.

default_mimetype string

По умолчанию PHP выводит название кодировки в заголовке Content-Type. Если передавать кодировку не требуется, просто оставьте эту опцию пустой.

"media type" по умолчанию установлен как "text/html".

default_charset string

В PHP 5.6 и новее "UTF-8" является значением по умолчанию и используется как кодировка по умолчанию для функций htmlentities(), html_entity_decode() и htmlspecialchars(), если параметр encoding не указан. Значение default_charset также используется для указания кодировки по умолчанию для функций iconv, если конфигурационные опции iconv.input_encoding, iconv.output_encoding и iconv.internal_encoding не установлены, и для функций mbstring, если не установлены mbstring.http_input mbstring.http_output mbstring.internal_encoding.

Все версии PHP используют это значение как кодировку для стандартного заголовка Content-Type, отправляемого PHP, если этот заголовок не переопределен вызовом функции header().

Не рекомендуется устанавливать default_charset в пустое значение.

input_encoding string

Доступна с PHP 5.6.0. Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто.

output_encoding string

Доступна с PHP 5.6.0. Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто.

internal_encoding string

Доступна с PHP 5.6.0. Эта опция используется для многобайтных модулей, таких как mbstring и iconv. По умолчанию пусто. В это случае используется default_charset.

always_populate_raw_post_data mixed
Внимание

Эта функциональность считается УСТАРЕВШЕЙ с PHP 5.6.0, и УДАЛЕНА в PHP 7.0.0.

Если установлена в TRUE, то PHP будет всегда компоновать $HTTP_RAW_POST_DATA сырыми POST данными. Иначе, переменная компонуется только если не распознан MIME-тип.

Рекомендуемым методом для доступа к сырым POST данным является php://input, и $HTTP_RAW_POST_DATA считается устаревшим с PHP 5.6.0. Установка always_populate_raw_post_data в значение -1 задает новое поведение, которое будет реализовано в будущих версиях PHP, когда $HTTP_RAW_POST_DATA больше не будет использоваться.

Согласно настройкам $HTTP_RAW_POST_DATA не доступен при enctype="multipart/form-data".

См. также: magic_quotes_gpc, magic_quotes_runtime и magic_quotes_sybase.

Пути и Директории

Конфигурационные Опции Путей и Директорий
Имя | По умолчанию | Меняемо | Список изменений
include_path | ".;/path/to/php/pear" | PHP_INI_ALL |
open_basedir | NULL | PHP_INI_ALL | PHP_INI_SYSTEM в PHP < 5.3.0
doc_root | NULL | PHP_INI_SYSTEM |
user_dir | NULL | PHP_INI_SYSTEM |
extension_dir | "/path/to/php" | PHP_INI_SYSTEM |
extension | NULL | Только php.ini |
zend_extension | NULL | Только php.ini |
zend_extension_debug | NULL | Только php.ini | Доступна до PHP 5.3.0.
zend_extension_debug_ts | NULL | Только php.ini | Доступна до PHP 5.3.0.
zend_extension_ts | NULL | Только php.ini | Доступна до PHP 5.3.0.
cgi.check_shebang_line | "1" | PHP_INI_SYSTEM | Доступна с версии PHP 5.2.0.
cgi.discard_path | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 5.3.0.
cgi.fix_pathinfo | "1" | PHP_INI_SYSTEM | PHP_INI_ALL до версии PHP 5.2.1.
cgi.force_redirect | "1" | PHP_INI_SYSTEM | PHP_INI_ALL до версии PHP 5.2.1.
cgi.nph | "0" | PHP_INI_SYSTEM | Доступна с версии PHP 5.3.0.
cgi.redirect_status_env | NULL | PHP_INI_SYSTEM | PHP_INI_ALL до версии PHP 5.2.1.
cgi.rfc2616_headers | "0" | PHP_INI_ALL |
fastcgi.impersonate | "0" | PHP_INI_SYSTEM | PHP_INI_ALL до версии PHP 5.2.1.
fastcgi.logging | "1" | PHP_INI_SYSTEM | PHP_INI_ALL до версии PHP 5.2.1.

Краткое разъяснение конфигурационных директив.

include_path string

Указывает список директорий, в которых функции require, include, fopen(), file(), readfile() и file_get_contents() ищут файлы. Формат соответствует формату системной переменной окружения PATH: список директорий, разделенных двоеточием в Unix или точкой с запятой в Windows.

При поиске подключаемых файлов PHP отдельно рассматривает каждое значение в include_path. Он проверяет первый путь, если файл в нем не найден, то он переходит к следующему, и так до тех пор, пока не найдет подключаемый файл, либо вернет предупреждение или ошибку. Вы можете изменить ваш include_path во время выполнения скрипта с помощью функции set_include_path().

Пример #1 include_path в Unix

include_path=".:/php/includes"

Пример #2 include_path в Windows

include_path=".;c:\php\includes"

Использование . в include_path позволяет задавать относительные пути для подключения файлов, так как точка означает текущую директорию. Однако, более эффективно использовать include './file', чем заставлять PHP каждый раз проверять текущую директорию при подключении каждого файла.

Замечание:

Переменные окружения (ENV) также доступны в .ini файлах. Таким образом, можно ссылаться на домашнюю директорию с помощью директив ${LOGIN} и ${USER}.

Переменные окружения могут отличаться между различными серверными API, так как сами эти окружения отличаются друг от друга.

Пример #3 Настройка include_path с помощью переменной окружения ${USER} в Unix

include_path = ".:${USER}/pear/php"

open_basedir string

Ограничивает указанным деревом каталогов файлы, которые могут быть доступны для PHP, включая сам файл. Эта директива НЕ подвержена влиянию безопасного режима.

Когда скрипт пытается получить доступ к файлу, например, с помощью функции fopen() или gzopen(), проверяется местонахождение файла. Если файл находится вне указанного дерева каталогов, PHP откажется его открывать. Все символические ссылки будут раскрыты, так что с их помощью не удастся обойти это ограничение. Если файл не существует, то символическая ссылка не сможет быть прочитана и имя файла (прочитанное) будет рассматриваться open_basedir .

Опция open_basedir может распространяться не только на функции для работы с файловой системой; например, если MySQL настроен использовать драйвер mysqlnd, то LOAD DATA INFILE подпадает под опцию open_basedir . Множество функций PHP также использует open_basedir.

Специальное значение . обозначает, что рабочая директория скрипта будет использована в качестве базовой директории. Однако, это немного опасно, так как текущая директория скрипта может быть легко изменена с помощью chdir().

В httpd.conf, open_basedir может быть выключена (например, для некоторых виртуальных хостов) тем же способом, что и любая другая конфигурационная директива: "php_admin_value open_basedir none".

В Windows разделяйте директории точкой с запятой. На всех остальных системах, разделяйте директории двоеточием. При работе в качестве модуля Apache, пути open_basedir автоматически наследуются от родительских директорий.

Ограничение, определяемое open_basedir является именем директории начиная с версии PHP 5.2.16 и 5.3.4. Предыдущие версии использовали это значение в качестве префикса. Это означает, что "open_basedir = /dir/incl" также разрешит доступ к "/dir/include" и "/dir/incls", если они существуют. Если вы захотите ограничить доступ только указанной директорией, поставьте в конце слеш. Например: open_basedir = /dir/incl/

По умолчанию все файлы могут быть открыты.

Замечание:

Начиная с версии PHP 5.3.0 значение open_basedir можно сделать более строгим во время выполнения скрипта. Это означает, что если open_basedir была установлена в /www/ в php.ini, то скрипт может ужать конфигурацию до /www/tmp/ во время выполнения с помощью ini_set(). При указании нескольких директорий можно использовать константу PATH_SEPARATOR в качестве разделителя путей, не зависящего от операционной системы.

doc_root string

"Корневая директория" PHP на этом сервере. Используется только в случае, если не пустая. Если PHP сконфигурирован с безопасный режим, файлы вне этой директории не обрабатываются. Если PHP не был скомпилирован с FORCE_REDIRECT, вам следует установить doc_root, если вы используете PHP в качестве CGI под любым веб-сервером (кроме IIS). Альтернативой является использование конфигурационной директивы cgi.force_redirect, речь о которой идет ниже.

user_dir string

Базовое имя директории, используемой в домашнем каталоге пользователя для PHP файлов, например, public_html.

extension_dir string

В какой директории PHP должен искать динамически загружаемые расширения. См. также: enable_dl и dl().

extension string

Какие динамически загружаемые расширения должны быть загружены при старте PHP.

zend_extension string

Имя динамически загружаемого расширения Zend (например, APD), которое должно быть загружено при старте PHP.

zend_extension_debug string

Вариант zend_extension для расширений, скомпилированных с отладочной информацией до PHP 5.3.0.

zend_extension_debug_ts string

Вариант zend_extension для потокобезопасных расширений, скомпилированных с отладочной информацией до PHP 5.3.0.

zend_extension_ts string

Вариант zend_extension для потокобезопасных расширений.

cgi.check_shebang_line boolean

Контролирует, нужно ли проверять первую строку CGI PHP-скрипта на содержание #! (shebang). Эта строка может быть необходима, если скрипт должен поддерживать как отдельный запуск, так и с помощью PHP CGI. PHP в режиме CGI пропускает эту строку и игнорирует ее содержимое, если данная директива включена.

cgi.discard_path boolean

Если разрешено, бинарный файл PHP CGI может безопасно располагаться вне web-дерева и люди не смогут обойти безопасность .htaccess.

cgi.fix_pathinfo boolean

Обеспечивает поддержку правильных PATH_INFO/PATH_TRANSLATED в CGI. Раньше PHP просто устанавливал PATH_TRANSLATED в SCRIPT_FILENAME и не обращал внимания на PATH_INFO. Для получения дополнительной информации о PATH_INFO, обратитесь к спецификации CGI. Установка этого значения в 1 заставит PHP CGI исправлять свой путь в соответствии со спецификацией. Значение 0 соответствует предыдущему поведению. По умолчанию опция включена. Вы должны исправить свои скрипты так, чтобы они использовали SCRIPT_FILENAME вместо PATH_TRANSLATED.

cgi.force_redirect boolean

Директива cgi.force_redirect необходима для обеспечения безопасности во время работы PHP в качестве CGI под большинством веб-серверов. Если оставить ее неопределенной, по умолчанию PHP включает эту директиву. Вы можете выключить ее на свой страх и риск.

Замечание:

Пользователям Windows: При использовании IIS эта опция должна быть отключена. Тоже самое необходимо для OmniHTTPD и Xitami.

cgi.nph boolean

Если cgi.nph разрешена, cgi будет принудительно возвращать код 200 на каждый запрос.

cgi.redirect_status_env string

Если cgi.force_redirect включена и вы работаете не под веб-сервером Apache или Netscape (iPlanet), вам может понадобиться установить переменную окружения, которую будет искать PHP чтобы убедиться, что он может продолжать выполнение.

Замечание:

Установка этой переменной может повлечь за собой проблемы с безопасностью, так что вы должны знать, что вы делаете.

cgi.rfc2616_headers int

Сообщает PHP, какой тип заголовков использовать при отправке кода ответа HTTP. Если установлено в 0, PHP отправляет » RFC 3875 заголовок "Status:", который поддерживается Apache и другими веб-серверами. Если установлено в 1, PHP отправляет заголовки, соответствующие » RFC 2616.

Если эта опция включена и вы используете PHP в окружении CGI (например, PHP-FPM), то вместо использования HTTP-заголовков ответа в стиле RFC 2616, нужно использовать их эквивалент из стандарта RFC 3875, например, вместо header("HTTP/1.0 404 Not found"); нужно использовать header("Status: 404 Not Found");

Оставьте в значении 0, если вы не уверены в том, что это значит.

fastcgi.impersonate string

FastCGI под IIS (в ОС на базе WINNT) поддерживает возможность имперсонации прав безопасности вызывающего клиента. Это позволяет IIS определить контекст безопасности, в котором выполняется запрос. mod_fastcgi под Apache на текущий момент не поддерживает эту возможность (03/17/2002). Установите в 1 при работе под IIS. Значение по умолчанию - ноль.

fastcgi.logging boolean

Включает логирование SAPI при использовании FastCGI. Логирование включено по умолчанию.

Закачивание Файлов

Конфигурационные Опции Закачивания Файлов
Имя | По умолчанию | Меняемо | Список изменений
file_uploads | "1" | PHP_INI_SYSTEM |
upload_tmp_dir | NULL | PHP_INI_SYSTEM |
max_input_nesting_level | 64 | PHP_INI_PERDIR | Доступна с версии PHP 5.3.9.
max_input_vars | 1000 | PHP_INI_PERDIR | Доступна с версии PHP 5.3.9.
upload_max_filesize | "2M" | PHP_INI_PERDIR |
max_file_uploads | 20 | PHP_INI_SYSTEM | Доступна с версии PHP 5.2.12.

Краткое разъяснение конфигурационных директив.

file_uploads boolean

Разрешать или не разрешать закачивание файлов. См. также директивы upload_max_filesize, upload_tmp_dir и post_max_size.

upload_tmp_dir string

Временная директория, используемая для хранения файлов во время закачивания. Должна быть доступна для записи пользователю, от имени которого запущен PHP. Если не указана, используется директория по умолчанию для вашей системы.

Если к указанной директории нет прав на запись, PHP откатится обратно к системной временной директории, используемой по умолчанию. Если включена директива open_basedir, то для успешной загрузки файлов системная директория по умолчанию должна быть разрешена.

upload_max_filesize integer

Максимальный размер закачиваемого файла.

Если используется integer, значение измеряется байтами. Вы также можете использовать сокращенную запись, которая описана в этом разделе FAQ.
max_file_uploads integer

Максимально разрешенное количество одновременно закачиваемых файлов. Начиная с PHP 5.3.4, пустые поля загрузки не рассматриваются этим ограничением.

Общий SQL

Конфигурационные Опции Общего SQL
Имя | По умолчанию | Меняемо | Список изменений
sql.safe_mode | "0" | PHP_INI_SYSTEM |

Краткое разъяснение конфигурационных директив.

sql.safe_mode boolean

Если включена, функции соединения с базой данных, использующие значения по умолчанию, будут использовать эти значения вместо любых передаваемых аргументов. Для значений по умолчанию смотрите документацию по функциям подключения соответствующей базы данных.

Особые настройки для ОС Windows

Особые опции конфигурации для ОС Windows
Имя | По умолчанию | Меняемо | Список изменений
windows.show_crt_warning | "0" | PHP_INI_ALL | Доступна начиная с PHP 5.4.0.

Краткое разъяснение конфигурационных директив.

windows.show_crt_warning boolean

При включении данной директивы будут отображаться предупреждения Windows CRT. Данные предупреждения ранее показывались по умолчанию до версии PHP 5.4.0.


Список/классификация расширений

Содержание

  • В алфавитном порядке
  • По составу
  • По состоянию

Это приложение классифицирует по различным критериям более 150 расширений, документированных в руководстве по PHP.


В алфавитном порядке

  • Apache
  • APC
  • APD
  • Массивы
  • BBCode
  • BC Math
  • bcompiler
  • Bzip2
  • Cairo
  • Календарь
  • chdb
  • Classkit
  • Классы и объекты
  • COM
  • Crack
  • Ctype
  • CUBRID
  • cURL
  • Cyrus
  • Дата/Время
  • DBA
  • dBase
  • DB++
  • dbx
  • Прямой ввод/вывод (Direct IO)
  • Каталоги
  • DOM
  • Eio
  • Enchant
  • Обработка ошибок
  • Ev
  • Event
  • Запуск программы
  • Exif
  • Expect
  • FAM
  • FrontBase
  • FDF
  • FileInfo
  • filePro
  • Функции для работы с файловой системой
  • Filter
  • FriBiDi
  • FTP
  • Управление функциями
  • Gearman
  • Gender
  • GeoIP
  • Gettext
  • Gmagick
  • GMP
  • GnuPG
  • Gupnp
  • haru
  • Hash
  • htscanner
  • Hyperwave API
  • Firebird/InterBase
  • IBM DB2
  • iconv
  • ID3
  • Informix
  • IIS
  • GD
  • ImageMagick
  • IMAP
  • inclued
  • PHP Опции/Информация
  • Ingres
  • Inotify
  • intl
  • JSON
  • Judy
  • KADM5
  • KTaglib
  • Lapack
  • LDAP
  • Libevent
  • libxml
  • Lua
  • LZF
  • Mail
  • Mailparse
  • Math
  • MaxDB
  • Многобайтные строки
  • Mcrypt
  • MCVE
  • Memcache
  • Memcached
  • Memtrack
  • Mhash
  • Mimetype
  • Ming
  • Misc.
  • mnoGoSearch
  • Mongo
  • mqseries
  • Msession
  • mSQL
  • Mssql
  • MySQL (Original)
  • MySQLi
  • Mysqlnd
  • mysqlnd_memcache
  • mysqlnd_ms
  • mysqlnd_mux
  • mysqlnd_qc
  • mysqlnd_uh
  • Ncurses
  • Gopher
  • Network
  • Newt
  • YP/NIS
  • NSAPI
  • OAuth
  • OCI8
  • oggvorbis
  • OpenAL
  • OpenSSL
  • Контроль вывода
  • Paradox
  • Parsekit
  • Хэширование паролей
  • PCNTL
  • PCRE
  • PDF
  • PDO
  • 4D (PDO)
  • CUBRID (PDO)
  • MS SQL Server (PDO)
  • Firebird (PDO)
  • IBM (PDO)
  • Informix (PDO)
  • MySQL (PDO)
  • Oracle (PDO)
  • ODBC and DB2 (PDO)
  • PostgreSQL (PDO)
  • SQLite (PDO)
  • MS SQL Server (PDO)
  • PostgreSQL
  • Phar
  • POSIX
  • Proctitle
  • PS
  • Pspell
  • pthreads
  • Quickhash
  • Radius
  • Rar
  • Readline
  • Recode
  • Reflection
  • Регулярные выражения POSIX
  • RPM Reader
  • RRD
  • runkit
  • SAM
  • SCA
  • scream
  • SDO
  • SDO DAS XML
  • SDO-DAS-Relational
  • Семафоры
  • Сессии
  • Session PgSQL
  • Управление разделяемой памятью
  • SimpleXML
  • SNMP
  • SOAP
  • Сокеты
  • Solr
  • Sphinx
  • SPL
  • Типы SPL
  • SQLite
  • SQLite3
  • SQLSRV
  • ssdeep
  • SSH2
  • Статистика
  • Stomp
  • Потоки
  • Строки
  • SVM
  • SVN
  • Swish
  • Sybase
  • Sync
  • Taint
  • TCP
  • Tidy
  • Лексер (Tokenizer)
  • tokyo_tyrant
  • Trader
  • ODBC
  • URL
  • V8js
  • Функции для работы с переменными
  • Varnish
  • vpopmail
  • WDDX
  • Weakref
  • win32ps
  • win32service
  • WinCache
  • xattr
  • xdiff
  • Xhprof
  • Разбор XML
  • XMLReader
  • XML-RPC
  • XMLWriter
  • XSL
  • Yaf
  • Yaml
  • YAZ
  • Zip
  • Zlib
  • ZooKeeper


По составу

Расширения, входящие в состав ядра

На самом деле это ненастоящие расширения. Они являются частью ядра PHP и не могут быть исключены из бинарного дистрибутива PHP с помощью опций компиляции.

  • Массивы

  • Классы и объекты

  • Дата/Время

  • Каталоги

  • Обработка ошибок

  • Запуск программы

  • Функции для работы с файловой системой

  • Filter

  • Управление функциями

  • Hash

  • PHP Опции/Информация

  • Mail

  • Math

  • Misc.

  • Network

  • Контроль вывода

  • Хэширование паролей

  • Phar

  • Reflection

  • Регулярные выражения POSIX

  • Сессии

  • SPL

  • Потоки

  • Строки

  • Лексер (Tokenizer)

  • URL

  • Функции для работы с переменными

Поставляемые расширения

Эти расширения поставляются вместе с PHP.

  • Apache

  • BC Math

  • Календарь

  • COM

  • Ctype

  • DBA

  • Exif

  • FileInfo

  • FTP

  • iconv

  • GD

  • intl

  • JSON

  • Многобайтные строки

  • NSAPI

  • PCNTL

  • PCRE

  • PDO

  • POSIX

  • Семафоры

  • Управление разделяемой памятью

  • Сокеты

  • SQLite3

  • XML-RPC

  • Zlib

Внешние расширения

Данные расширения поставляются вместе с PHP, но для их компиляции могут потребоваться внешние библиотеки.

  • Bzip2

  • cURL

  • dBase

  • DOM

  • Enchant

  • FrontBase

  • Gettext

  • GMP

  • Firebird/InterBase

  • Informix

  • IMAP

  • LDAP

  • libxml

  • Mcrypt

  • Mhash

  • mSQL

  • Mssql

  • MySQL (Original)

  • MySQLi

  • Mysqlnd

  • OCI8

  • OpenSSL

  • MS SQL Server (PDO)

  • Firebird (PDO)

  • MySQL (PDO)

  • Oracle (PDO)

  • ODBC and DB2 (PDO)

  • PostgreSQL (PDO)

  • SQLite (PDO)

  • PostgreSQL

  • Pspell

  • Readline

  • Recode

  • SimpleXML

  • SNMP

  • SOAP

  • Sybase

  • Tidy

  • ODBC

  • WDDX

  • Разбор XML

  • XMLReader

  • XMLWriter

  • XSL

  • Zip

PECL расширения

Эти расширения доступны в » PECL. Им могут потребоваться внешние библиотеки. Существуют и другие PECL расширения, но они пока не документированы в этом руководстве.

  • APC

  • APD

  • BBCode

  • bcompiler

  • Cairo

  • chdb

  • Classkit

  • Crack

  • CUBRID

  • Cyrus

  • DB++

  • dbx

  • Прямой ввод/вывод (Direct IO)

  • Eio

  • Ev

  • Event

  • Expect

  • FAM

  • FDF

  • filePro

  • FriBiDi

  • Gearman

  • Gender

  • GeoIP

  • Gmagick

  • GnuPG

  • Gupnp

  • haru

  • htscanner

  • Hyperwave API

  • IBM DB2

  • ID3

  • IIS

  • ImageMagick

  • inclued

  • Ingres

  • Inotify

  • Judy

  • KADM5

  • KTaglib

  • Lapack

  • Libevent

  • Lua

  • LZF

  • Mailparse

  • MaxDB

  • MCVE

  • Memcache

  • Memcached

  • Memtrack

  • Mimetype

  • Ming

  • mnoGoSearch

  • Mongo

  • mqseries

  • Msession

  • mysqlnd_memcache

  • mysqlnd_ms

  • mysqlnd_mux

  • mysqlnd_qc

  • mysqlnd_uh

  • Ncurses

  • Gopher

  • Newt

  • YP/NIS

  • OAuth

  • oggvorbis

  • OpenAL

  • Paradox

  • Parsekit

  • PDF

  • 4D (PDO)

  • CUBRID (PDO)

  • IBM (PDO)

  • Informix (PDO)

  • MS SQL Server (PDO)

  • Proctitle

  • PS

  • pthreads

  • Quickhash

  • Radius

  • Rar

  • RPM Reader

  • RRD

  • runkit

  • SAM

  • SCA

  • scream

  • SDO

  • SDO DAS XML

  • SDO-DAS-Relational

  • Session PgSQL

  • Solr

  • Sphinx

  • Типы SPL

  • SQLite

  • SQLSRV

  • ssdeep

  • SSH2

  • Статистика

  • Stomp

  • SVM

  • SVN

  • Swish

  • Taint

  • TCP

  • tokyo_tyrant

  • Trader

  • V8js

  • Varnish

  • vpopmail

  • Weakref

  • win32ps

  • win32service

  • WinCache

  • xattr

  • xdiff

  • Xhprof

  • Yaf

  • Yaml

  • YAZ

  • ZooKeeper


По состоянию

Здесь приводится список расширений, не рекомендованных для промышленного использования - они либо слишком "старые" (устарели), либо слишком "новые" (экспериментальные).

Устаревшие расширения

Эти расширения устарели и в основном заменены другими.

  • Memtrack

  • Mimetype

Экспериментальные расширения

Поведение этих расширений - включая названия функций и вся остальная документация, относящаяся к ним - может измениться без уведомления в будущем релизе PHP. Используйте эти расширения на свой страх и риск.

  • bcompiler

  • DB++

  • haru

  • Hash

  • ImageMagick

  • Ming

  • Ncurses

  • Newt

  • Paradox

  • MS SQL Server (PDO)

  • Firebird (PDO)

  • Oracle (PDO)

  • PS

  • SCA

  • SDO-DAS-Relational

  • Swish

  • vpopmail

  • XML-RPC


Список псевдонимов функций

В PHP довольно много функций, доступных сразу по нескольким именам. В некоторых случаях нет предпочитаемого варианта, хорошим примером является is_int() и is_integer(). Однако, есть функции, изменившие свои названия вследствие чистки API или по какой-либо другой причине, а старые имена были оставлены в целях обратной совместимости. Обычно не рекомендуется использовать эти псевдонимы, так как причиной их существования может быть устаревание или смена имени основной функции, что может привести к проблемам портирования скрипта. Данный список предоставляется для помощи при обновлении старых скриптов к новому синтаксису.

Псевдонимы
Псевдоним | Основная функция | Расширение
_ | gettext() | Gettext
add | swfmovie_add() | Ming (flash)
add | swfsprite_add() | Ming (flash)
addaction | swfbutton_addAction() | Ming (flash)
addcolor | swfdisplayitem_addColor() | Ming (flash)
addentry | swfgradient_addEntry() | Ming (flash)
addfill | swfshape_addfill() | Ming (flash)
addshape | swfbutton_addShape() | Ming (flash)
addstring | swftext_addString() | Ming (flash)
addstring | swftextfield_addString() | Ming (flash)
align | swftextfield_align() | Ming (flash)
chop | rtrim() | Базовый синтаксис
close | closedir() | Базовый синтаксис
com_get | com_propget() | COM
com_propset | com_propput() | COM
com_set | com_propput() | COM
die | exit() | Неклассифицированные функции
diskfreespace | disk_free_space() | Файловая система
doubleval | floatval() | Базовый синтаксис
drawarc | swfshape_drawarc() | Ming (flash)
drawcircle | swfshape_drawcircle() | Ming (flash)
drawcubic | swfshape_drawcubic() | Ming (flash)
drawcubicto | swfshape_drawcubicto() | Ming (flash)
drawcurve | swfshape_drawcurve() | Ming (flash)
drawcurveto | swfshape_drawcurveto() | Ming (flash)
drawglyph | swfshape_drawglyph() | Ming (flash)
drawline | swfshape_drawline() | Ming (flash)
drawlineto | swfshape_drawlineto() | Ming (flash)
fbsql | fbsql_db_query() | FrontBase
fputs | fwrite() | Базовый синтаксис
getascent | swffont_getAscent() | Ming (flash)
getascent | swftext_getAscent() | Ming (flash)
getdescent | swffont_getDescent() | Ming (flash)
getdescent | swftext_getDescent() | Ming (flash)
getheight | swfbitmap_getHeight() | Ming (flash)
getleading | swffont_getLeading() | Ming (flash)
getleading | swftext_getLeading() | Ming (flash)
getshape1 | swfmorph_getShape1() | Ming (flash)
getshape2 | swfmorph_getShape2() | Ming (flash)
getwidth | swfbitmap_getWidth() | Ming (flash)
getwidth | swffont_getWidth() | Ming (flash)
getwidth | swftext_getWidth() | Ming (flash)
gzputs | gzwrite() | Zlib
i18n_convert | mb_convert_encoding() | Многобайтовые строки
i18n_discover_encoding | mb_detect_encoding() | Многобайтовые строки
i18n_http_input | mb_http_input() | Многобайтовые строки
i18n_http_output | mb_http_output() | Многобайтовые строки
i18n_internal_encoding | mb_internal_encoding() | Многобайтовые строки
i18n_ja_jp_hantozen | mb_convert_kana() | Многобайтовые строки
i18n_mime_header_decode | mb_decode_mimeheader() | Многобайтовые строки
i18n_mime_header_encode | mb_encode_mimeheader() | Многобайтовые строки
imap_create | imap_createmailbox() | IMAP
imap_fetchtext | imap_body() | IMAP
imap_getmailboxes | imap_list_full() | IMAP
imap_getsubscribed | imap_lsub_full() | IMAP
imap_header | imap_headerinfo() | IMAP
imap_listmailbox | imap_list() | IMAP
imap_listsubscribed | imap_lsub() | IMAP
imap_rename | imap_renamemailbox() | IMAP
imap_scan | imap_listscan() | IMAP
imap_scanmailbox | imap_listscan() | IMAP
ini_alter | ini_set() | Базовый синтаксис
is_double | is_float() | Базовый синтаксис
is_integer | is_int() | Базовый синтаксис
is_long | is_int() | Базовый синтаксис
is_real | is_float() | Базовый синтаксис
is_writeable | is_writable() | Базовый синтаксис
join | implode() | Базовый синтаксис
key_exists | array_key_exists() | Базовый синтаксис
labelframe | swfmovie_labelFrame() | Ming (flash)
labelframe | swfsprite_labelFrame() | Ming (flash)
ldap_close | ldap_unbind() | LDAP
magic_quotes_runtime | set_magic_quotes_runtime() | Базовый синтаксис
mbstrcut | mb_strcut() | Многобайтовые строки
mbstrlen | mb_strlen() | Многобайтовые строки
mbstrpos | mb_strpos() | Многобайтовые строки
mbstrrpos | mb_strrpos() | Многобайтовые строки
mbsubstr | mb_substr() | Многобайтовые строки
ming_setcubicthreshold | ming_setCubicThreshold() | Ming (flash)
ming_setscale | ming_setScale() | Ming (flash)
move | swfdisplayitem_move() | Ming (flash)
movepen | swfshape_movepen() | Ming (flash)
movepento | swfshape_movepento() | Ming (flash)
moveto | swfdisplayitem_moveTo() | Ming (flash)
moveto | swffill_moveTo() | Ming (flash)
moveto | swftext_moveTo() | Ming (flash)
msql | msql_db_query() | mSQL
msql_createdb | msql_create_db() | mSQL
msql_dbname | msql_result() | mSQL
msql_dropdb | msql_drop_db() | mSQL
msql_fieldflags | msql_field_flags() | mSQL
msql_fieldlen | msql_field_len() | mSQL
msql_fieldname | msql_field_name() | mSQL
msql_fieldtable | msql_field_table() | mSQL
msql_fieldtype | msql_field_type() | mSQL
msql_freeresult | msql_free_result() | mSQL
msql_listdbs | msql_list_dbs() | mSQL
msql_listfields | msql_list_fields() | mSQL
msql_listtables | msql_list_tables() | mSQL
msql_numfields | msql_num_fields() | mSQL
msql_numrows | msql_num_rows() | mSQL
msql_regcase | sql_regcase() | mSQL
msql_selectdb | msql_select_db() | mSQL
msql_tablename | msql_result() | mSQL
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_affected_rows | sybase_affected_rows() | Sybase
mssql_close | sybase_close() | Sybase
mssql_close | sybase_close() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_connect | sybase_connect() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_data_seek | sybase_data_seek() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_array | sybase_fetch_array() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_field | sybase_fetch_field() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_object | sybase_fetch_object() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_fetch_row | sybase_fetch_row() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_field_seek | sybase_field_seek() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_free_result | sybase_free_result() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_get_last_message | sybase_get_last_message() | Sybase
mssql_min_client_severity | sybase_min_client_severity() | Sybase
mssql_min_error_severity | sybase_min_error_severity() | Sybase
mssql_min_message_severity | sybase_min_message_severity() | Sybase
mssql_min_server_severity | sybase_min_server_severity() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_fields | sybase_num_fields() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_num_rows | sybase_num_rows() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_pconnect | sybase_pconnect() | Sybase
mssql_query | sybase_query() | Sybase
mssql_query | sybase_query() | Sybase
mssql_result | sybase_result() | Sybase
mssql_result | sybase_result() | Sybase
mssql_select_db | sybase_select_db() | Sybase
mssql_select_db | sybase_select_db() | Sybase
multcolor | swfdisplayitem_multColor() | Ming (flash)
mysql | mysql_db_query() | MySQL
mysql_createdb | mysql_create_db() | MySQL
mysql_db_name | mysql_result() | MySQL
mysql_dbname | mysql_result() | MySQL
mysql_dropdb | mysql_drop_db() | MySQL
mysql_fieldflags | mysql_field_flags() | MySQL
mysql_fieldlen | mysql_field_len() | MySQL
mysql_fieldname | mysql_field_name() | MySQL
mysql_fieldtable | mysql_field_table() | MySQL
mysql_fieldtype | mysql_field_type() | MySQL
mysql_freeresult | mysql_free_result() | MySQL
mysql_listdbs | mysql_list_dbs() | MySQL
mysql_listfields | mysql_list_fields() | MySQL
mysql_listtables | mysql_list_tables() | MySQL
mysql_numfields | mysql_num_fields() | MySQL
mysql_numrows | mysql_num_rows() | MySQL
mysql_selectdb | mysql_select_db() | MySQL
mysql_tablename | mysql_result() | MySQL
nextframe | swfmovie_nextFrame() | Ming (flash)
nextframe | swfsprite_nextFrame() | Ming (flash)
ociassignelem | OCI-Collection::assignElem | OCI8
ocibindbyname | oci_bind_by_name() | OCI8
ocicancel | oci_cancel() | OCI8
ocicloselob | OCI-Lob::close | OCI8
ocicollappend | OCI-Collection::append | OCI8
ocicollassign | OCI-Collection::assign | OCI8
ocicollmax | OCI-Collection::max | OCI8
ocicollsize | OCI-Collection::size | OCI8
ocicolltrim | OCI-Collection::trim | OCI8
ocicolumnisnull | oci_field_is_null() | OCI8
ocicolumnname | oci_field_name() | OCI8
ocicolumnprecision | oci_field_precision() | OCI8
ocicolumnscale | oci_field_scale() | OCI8
ocicolumnsize | oci_field_size() | OCI8
ocicolumntype | oci_field_type() | OCI8
ocicolumntyperaw | oci_field_type_raw() | OCI8
ocicommit | oci_commit() | OCI8
ocidefinebyname | oci_define_by_name() | OCI8
ocierror | oci_error() | OCI8
ociexecute | oci_execute() | OCI8
ocifetch | oci_fetch() | OCI8
ocifetchinto | oci_fetch_array(), oci_fetch_row(), oci_fetch_assoc(), oci_fetch_object() | OCI8
ocifetchstatement | oci_fetch_all() | OCI8
ocifreecollection | OCI-Collection::free | OCI8
ocifreecursor | oci_free_statement() | OCI8
ocifreedesc | oci_free_descriptor() | OCI8
ocifreestatement | oci_free_statement() | OCI8
ocigetelem | OCI-Collection::getElem | OCI8
ociinternaldebug | oci_internal_debug() | OCI8
ociloadlob | OCI-Lob::load | OCI8
ocilogon | oci_connect() | OCI8
ocinewcollection | oci_new_collection() | OCI8
ocinewcursor | oci_new_cursor() | OCI8
ocinewdescriptor | oci_new_descriptor() | OCI8
ocinlogon | oci_new_connect() | OCI8
ocinumcols | oci_num_fields() | OCI8
ociparse | oci_parse() | OCI8
ocipasswordchange | oci_password_change() | OCI8
ociplogon | oci_pconnect() | OCI8
ociresult | oci_result() | OCI8
ocirollback | oci_rollback() | OCI8
ocisavelob | OCI-Lob::save | OCI8
ocisavelobfile | OCI-Lob::import | OCI8
ociserverversion | oci_server_version() | OCI8
ocisetprefetch | oci_set_prefetch() | OCI8
ocistatementtype | oci_statement_type() | OCI8
ociwritelobtofile | OCI-Lob::export | OCI8
ociwritetemporarylob | OCI-Lob::writeTemporary | OCI8
odbc_do | odbc_exec() | ODBC
odbc_field_precision | odbc_field_len() | ODBC
output | swfmovie_output() | Ming (flash)
pdf_add_outline | pdf_add_bookmark() | PDF
pg_clientencoding | pg_client_encoding() | PostgreSQL
pg_setclientencoding | pg_set_client_encoding() | PostgreSQL
pos | current() | Базовый синтаксис
recode | recode_string() | Recode
remove | swfmovie_remove() | Ming (flash)
remove | swfsprite_remove() | Ming (flash)
rotate | swfdisplayitem_rotate() | Ming (flash)
rotateto | swfdisplayitem_rotateTo() | Ming (flash)
rotateto | swffill_rotateTo() | Ming (flash)
save | swfmovie_save() | Ming (flash)
savetofile | swfmovie_saveToFile() | Ming (flash)
scale | swfdisplayitem_scale() | Ming (flash)
scaleto | swfdisplayitem_scaleTo() | Ming (flash)
scaleto | swffill_scaleTo() | Ming (flash)
setaction | swfbutton_setAction() | Ming (flash)
setbackground | swfmovie_setBackground() | Ming (flash)
setbounds | swftextfield_setBounds() | Ming (flash)
setcolor | swftext_setColor() | Ming (flash)
setcolor | swftextfield_setColor() | Ming (flash)
setdepth | swfdisplayitem_setDepth() | Ming (flash)
setdimension | swfmovie_setDimension() | Ming (flash)
setdown | swfbutton_setDown() | Ming (flash)
setfont | swftext_setFont() | Ming (flash)
setfont | swftextfield_setFont() | Ming (flash)
setframes | swfmovie_setFrames() | Ming (flash)
setframes | swfsprite_setFrames() | Ming (flash)
setheight | swftext_setHeight() | Ming (flash)
setheight | swftextfield_setHeight() | Ming (flash)
sethit | swfbutton_setHit() | Ming (flash)
setindentation | swftextfield_setIndentation() | Ming (flash)
setleftfill | swfshape_setleftfill() | Ming (flash)
setleftmargin | swftextfield_setLeftMargin() | Ming (flash)
setline | swfshape_setline() | Ming (flash)
setlinespacing | swftextfield_setLineSpacing() | Ming (flash)
setmargins | swftextfield_setMargins() | Ming (flash)
setmatrix | swfdisplayitem_setMatrix() | Ming (flash)
setname | swfdisplayitem_setName() | Ming (flash)
setname | swftextfield_setName() | Ming (flash)
setover | swfbutton_setOver() | Ming (flash)
setrate | swfmovie_setRate() | Ming (flash)
setratio | swfdisplayitem_setRatio() | Ming (flash)
setrightfill | swfshape_setrightfill() | Ming (flash)
setrightmargin | swftextfield_setRightMargin() | Ming (flash)
setspacing | swftext_setSpacing() | Ming (flash)
setup | swfbutton_setUp() | Ming (flash)
show_source | highlight_file() | Базовый синтаксис
sizeof | count() | Базовый синтаксис
skewx | swfdisplayitem_skewX() | Ming (flash)
skewxto | swfdisplayitem_skewXTo() | Ming (flash)
skewxto | swffill_skewXTo() | Ming (flash)
skewy | swfdisplayitem_skewY() | Ming (flash)
skewyto | swfdisplayitem_skewYTo() | Ming (flash)
skewyto | swffill_skewYTo() | Ming (flash)
snmpwalkoid | snmprealwalk() | SNMP
strchr | strstr() | Базовый синтаксис
streammp3 | swfmovie_streamMp3() | Ming (flash)
swfaction | swfaction_init() | Ming (flash)
swfbitmap | swfbitmap_init() | Ming (flash)
swfbutton | swfbutton_init() | Ming (flash)
swffill | swffill_init() | Ming (flash)
swffont | swffont_init() | Ming (flash)
swfgradient | swfgradient_init() | Ming (flash)
swfmorph | swfmorph_init() | Ming (flash)
swfmovie | swfmovie_init() | Ming (flash)
swfshape | swfshape_init() | Ming (flash)
swfsprite | swfsprite_init() | Ming (flash)
swftext | swftext_init() | Ming (flash)
swftextfield | swftextfield_init() | Ming (flash)
xptr_new_context | xpath_new_context() |


Список зарезервированных слов

Содержание

  • Список ключевых слов
  • Предопределенные классы
  • Предопределенные константы
  • Список прочих зарезервированных слов

Следующий список - это список зарезервированных идентификаторов в PHP. Никакой идентификатор из этого списка не должен быть использован в качестве идентификатора в любом из ваших скриптов, если явно не указано обратное. Этот список включает ключевые слова и предопределенные переменные, константы и имена классов. Этот список не являются исчерпывающим и полным.


Список ключевых слов

У этих слов есть специальное значение в PHP. Некоторые из них представляют собой вещи, которые выглядят как функции, некоторые похожи на константы и так далее, но они ими не являются в действительности. Они - конструкции языка. Вы не можете использовать следующие слова как константы, имена классов, функции или имена методов. Использование их как имен переменных в общем допускается, однако может привести к путанице.

С PHP 7.0.0 эти ключевые слова доступны как имена свойств, констант и методов классов, интерфейсов и трейтов, за исключением того, что class не может использоваться как имя константы.

Зарезервированные слова в PHP
__halt_compiler() | abstract | and | array() | as
break | callable (начиная с PHP 5.4) | case | catch | class
clone | const | continue | declare | default
die() | do | echo | else | elseif
empty() | enddeclare | endfor | endforeach | endif
endswitch | endwhile | eval() | exit() | extends
final | finally (с PHP 5.5) | for | foreach | function
global | goto (начиная с PHP 5.3) | if | implements | include | include_once
instanceof | insteadof (начиная с PHP 5.4) | interface | isset() | list()
namespace (начиная с PHP 5.3) | new | or | print
private | protected | public | require | require_once | return
static | switch | throw | trait (начиная с PHP 5.4)
try | unset() | use | var | while
xor | yield (с PHP 5.5) |  |  |
Константы этапа трансляции
__CLASS__ | __DIR__ (начиная с PHP 5.3) | __FILE__ | __FUNCTION__ | __LINE__ | __METHOD__
__NAMESPACE__ (с PHP 5.3) | __TRAIT__ (начиная с PHP 5.4) |  |  |  |


Предопределенные классы

В этом разделе перечисляются стандартные предопределенные классы. Разнообразные расширения определяют другие классы, которые описаны в соответствующей справочной информации.

Стандартные определенные классы

Эти классы определены вместе со стандартным набором функций, идущим со сборкой PHP.

Directory
Создается функцией dir().
stdClass
Создается приведением типа к объекту.
__PHP_Incomplete_Class
Возможно создается функцией unserialize().

Предопределенные классы PHP 5

Эти дополнительные предопределенные классы были введены в PHP версии 5.0.0

Exception
ErrorException
Доступно с версии PHP 5.1.0.
php_user_filter

Closure

Предопределенный конечный класс Closure был введен в PHP 5.3.0. Он используется для внутренней реализации анонимных функций.

Для более детальной информации смотрите страницу класса.

Generator

Предопределенный final класс Generator был добавлен в PHP 5.5.0. Он используется для представления генераторов.

Подробности смотрите на странице класса.

Предопределенные интерфейсы и классы в PHP 7

Эти дополнительные предопределенные интерфейсы и классы были добавлены в PHP 7.0.0.

ArithmeticError
AssertionError
DivisionByZeroError
Error
Throwable
ParseError
TypeError

Специальные классы

Следующие идентификаторы не могут использоваться в качестве имени класса, так как у них есть специальное назначение.

self
Текущий класс.
static
Текущий класс в рабочем цикле.
parent
Родительский класс.


Предопределенные константы

Объявленные в ядре константы

Нижеописанные константы объявляются ядром PHP и охватывают PHP, Zend engine и SAPI-модули.

PHP_VERSION (string)
Текущая версия PHP в виде строки в формате "major.minor.release[extra]".
PHP_MAJOR_VERSION (integer)
Текущая "основная" (major) версия PHP в виде целого числа (например, int(5) для версии "5.2.7-extra"). Доступна начиная с версии PHP 5.2.7.
PHP_MINOR_VERSION (integer)
Текущая "промежуточная" версия PHP в виде целого числа (например, int(2) для версии "5.2.7-extra"). Доступна начиная с версии PHP 5.2.7.
PHP_RELEASE_VERSION (integer)
Текущая "релиз"-версия (release) PHP в виде целого числа (например, int(7) для версии "5.2.7-extra"). Доступна начиная с версии PHP 5.2.7.
PHP_VERSION_ID (integer)
Текущая версия PHP в виде целого числа, её удобно использовать при сравнениях версий (например, int(50207) для версии "5.2.7-extra"). Доступна начиная с версии PHP 5.2.7.
PHP_EXTRA_VERSION (string)
Текущая "экстра"-версия PHP в виде строки (например, '-extra' для версии "5.2.7-extra"). Обычно используется в различных дистрибутивах для индикации версий пакетов. Доступна начиная с версии PHP 5.2.7.
PHP_ZTS (integer)
Доступна начиная с версии PHP 5.2.7.
PHP_DEBUG (integer)
Доступна начиная с версии PHP 5.2.7.
PHP_MAXPATHLEN (integer)
Максимальная длина файловых имен (включая путь), поддерживаемая данной сборкой PHP. Доступна начиная с версии PHP 5.3.0.
PHP_OS (string)
PHP_SAPI (string)
Серверное API данной сборки PHP. Смотрите также php_sapi_name().
PHP_EOL (string)
Корректный символ конца строки, используемый на данной платформе. Доступна начиная с версии PHP 5.0.2
PHP_INT_MAX (integer)
Максимальное целое число, поддерживаемое данной сборкой PHP. Обычно это int(2147483647). Доступна начиная с версии PHP 5.0.5 Обычно, PHP_INT_MIN === ~PHP_INT_MAX.
PHP_INT_MIN (integer)
Минимальное целое число, поддерживаемое данной сборкой PHP. Обычно это int(-2147483648) в 32-битных системах и int(-9223372036854775808) в 64-битных. Доступна начиная в версии PHP 7.0.0
PHP_INT_SIZE (integer)
Размер целого числа в байтах в текущей сборке PHP. Доступна с PHP 5.0.5
PHP_FLOAT_DIG (integer)
Количество десятичных цифр, которые могут быть округлены в float и обратно без потери точности. Доступно с PHP 7.2.0.
PHP_FLOAT_EPSILON (float)
Наименьшее положительное число x, такое, что x + 1.0 != 1.0. Доступно с PHP 7.2.0.
PHP_FLOAT_MIN (float)
Наименьшее возможное число типа float. Доступно с PHP 7.2.0.
PHP_FLOAT_MAX (float)
Максимальное возможное число типа float. Доступно с PHP 7.2.0.
DEFAULT_INCLUDE_PATH (string)
PEAR_INSTALL_DIR (string)
PEAR_EXTENSION_DIR (string)
PHP_EXTENSION_DIR (string)
PHP_PREFIX (string)
Значение опции "--prefix", указанной при запуске configure.
PHP_BINDIR (string)
Указывает путь установки бинарных файлов.
PHP_BINARY (string)
Указывает путь к исполняемым файлам PHP во время выполнения скрипта. Доступна с версии PHP 5.4.
PHP_MANDIR (string)
Указывает путь установки страниц документации man. Доступна, начиная с версии PHP 5.3.7.
PHP_LIBDIR (string)
PHP_DATADIR (string)
PHP_SYSCONFDIR (string)
PHP_LOCALSTATEDIR (string)
PHP_CONFIG_FILE_PATH (string)
PHP_CONFIG_FILE_SCAN_DIR (string)
PHP_SHLIB_SUFFIX (string)
Суффикс, используемый для динамически линкуемых библиотек, таких как "so" (характерный для большинства Unix-систем) или "dll" (Windows).
PHP_FD_SETSIZE (string)
Максимальное количество файловых дескрипторов для системных вызовов. Доступно с PHP 7.1.0.
E_ERROR (integer)
Константа, указывающая уровень сообщений об ошибках
E_WARNING (integer)
E_PARSE (integer)
E_NOTICE (integer)
E_CORE_ERROR (integer)
E_CORE_WARNING (integer)
E_COMPILE_ERROR (integer)
E_COMPILE_WARNING (integer)
E_USER_ERROR (integer)
E_USER_WARNING (integer)
E_USER_NOTICE (integer)
E_DEPRECATED (integer)
Доступна начиная с версии PHP 5.3.0
E_USER_DEPRECATED (integer)
Доступна начиная с версии PHP 5.3.0
E_ALL (integer)
E_STRICT (integer)
__COMPILER_HALT_OFFSET__ (integer)
Доступна начиная с версии PHP 5.1.0
TRUE (boolean)
Смотрите раздел Булев тип.
FALSE (boolean)
Смотрите раздел Булев тип.
NULL (null)
Смотрите Null.

Смотрите также: Магические константы.

Стандартные предопределенные константы

Все константы, входящие в состав ядра расширений, теперь определены в PHP по умолчанию.


Список прочих зарезервированных слов

Следующие слова нельзя использовать в именах классов, интерфейсов и трейтов. Также их запрещено использовать в именовании пространств имен.

Зарезервированные слова
int (с PHP 7) | float (с PHP 7) | bool (с PHP 7) | string (с PHP 7)
true (с PHP 7) | false (с PHP 7) | null (с PHP 7)

Следующий список содержит слова зарезервированные "мягко". Они все еще могут использоваться в качестве имен классов, интерфейсов и трейтов (и в именовании пространств имен), но использовать их крайне не рекомендуется, поскольку они могут стать полноценно зарезервированными в будущем.

"Мягко" зарезервированные слова
resource (с PHP 7) object (с PHP 7) mixed (с PHP 7) numeric (сf PHP 7)


Список типов ресурсов

Здесь представлен список функций, которые могут создавать, использовать или уничтожать ресурсы PHP. Для определения того, является ли переменная ресурсом можно использовать функцию is_resource(), а функция get_resource_type() поможет получить тип данного ресурса.

Типы ресурсов
Название ресурса | Создается функцией | Используется функцией | Уничтожается функцией | Определение
aspell | aspell_new() | aspell_check(), aspell_check_raw(), aspell_suggest() | Отсутствует | Aspell dictionary
bzip2 | bzopen() | bzerrno(), bzerror(), bzerrstr(), bzflush(), bzread(), bzwrite() | bzclose() | Файл Bzip2
COM | com_load() | com_invoke(), com_propget(), com_get(), com_propput(), com_set(), com_propput() | Отсутствует | Ссылка на объект COM
VARIANT
cpdf | cpdf_open() | cpdf_page_init(), cpdf_finalize_page(), cpdf_finalize(), cpdf_output_buffer(), cpdf_save_to_file(), cpdf_set_current_page(), cpdf_begin_text(), cpdf_end_text(), cpdf_show(), cpdf_show_xy(), cpdf_text(), cpdf_set_font(), cpdf_set_leading(), cpdf_set_text_rendering(), cpdf_set_horiz_scaling(), cpdf_set_text_rise(), cpdf_set_text_matrix(), cpdf_set_text_pos(), cpdf_set_text_pos(), cpdf_set_word_spacing(), cpdf_continue_text(), cpdf_stringwidth(), cpdf_save(), cpdf_translate(), cpdf_restore(), cpdf_scale(), cpdf_rotate(), cpdf_setflat(), cpdf_setlinejoin(), cpdf_setlinecap(), cpdf_setmiterlimit(), cpdf_setlinewidth(), cpdf_setdash(), cpdf_moveto(), cpdf_rmoveto(), cpdf_curveto(), cpdf_lineto(), cpdf_rlineto(), cpdf_circle(), cpdf_arc(), cpdf_rect(), cpdf_closepath(), cpdf_stroke(), cpdf_closepath_fill_stroke(), cpdf_fill_stroke(), cpdf_clip(), cpdf_fill(), cpdf_setgray_fill(), cpdf_setgray_stroke(), cpdf_setgray(), cpdf_setrgbcolor_fill(), cpdf_setrgbcolor_stroke(), cpdf_setrgbcolor(), cpdf_add_outline(), cpdf_set_page_animation(), cpdf_import_jpeg(), cpdf_place_inline_image(), cpdf_add_annotation() | cpdf_close() | PDF-документ, созданный с помощью библиотеки CPDF
cpdf outline
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
dbm | dbmopen() | dbmexists(), dbmfetch(), dbminsert(), dbmreplace(), dbmdelete(), dbmfirstkey(), dbmnextkey() | dbmclose() | Соединение с базой данных DBM
dba | dba_open() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | dba_close() | Соединение с базой данных DBA
dba persistent | dba_popen() | dba_delete(), dba_exists(), dba_fetch(), dba_firstkey(), dba_insert(), dba_nextkey(), dba_optimize(), dba_replace(), dba_sync() | Отсутствует | Постоянное соединение с базой данных DBA
dbase | dbase_open() | dbase_pack(), dbase_add_record(), dbase_replace_record(), dbase_delete_record(), dbase_get_record(), dbase_get_record_with_names(), dbase_numfields(), dbase_numrecords() | dbase_close() | Соединение с базой данных Dbase
dbx_link_object | dbx_connect() | dbx_query() | dbx_close() | dbx connection
dbx_result_object | dbx_query() | Отсутствует | dbx result
xpath context
xpath object
fbsql link | fbsql_change_user(), fbsql_connect() | fbsql_autocommit(), fbsql_blob_size(), fbsql_clob_size(), fbsql_commit(), fbsql_change_user(), fbsql_create_blob(), fbsql_create_db(), fbsql_create_clob(), fbsql_data_seek(), fbsql_database_password(), fbsql_database(), fbsql_db_query(), fbsql_db_status(), fbsql_drop_db(), fbsql_errno(), fbsql_error(), fbsql_get_autostart_info(), fbsql_hostname(), fbsql_insert_id(), fbsql_list_dbs(), fbsql_password(), fbsql_read_blob(), fbsql_read_clob(), fbsql_rollback(), fbsql_select_db(), fbsql_set_password(), fbsql_set_transaction(), fbsql_start_db(), fbsql_stop_db(), fbsql_username() | fbsql_close() | Соединение с базой данных fbsql
fbsql plink | fbsql_change_user(), fbsql_pconnect() | fbsql_autocommit(), fbsql_change_user(), fbsql_create_db(), fbsql_data_seek(), fbsql_db_query(), fbsql_drop_db(), fbsql_select_db(), fbsql_errno(), fbsql_error(), fbsql_insert_id(), fbsql_list_dbs() | Отсутствует | Постоянное соединение с базой данных fbsql
fbsql result | fbsql_db_query(), fbsql_list_dbs(), fbsql_query(), fbsql_list_fields(), fbsql_list_tables(), fbsql_tablename() | fbsql_affected_rows(), fbsql_fetch_array(), fbsql_fetch_assoc(), fbsql_fetch_field(), fbsql_fetch_lengths(), fbsql_fetch_object(), fbsql_fetch_row(), fbsql_field_flags(), fbsql_field_name(), fbsql_field_len(), fbsql_field_seek(), fbsql_field_table(), fbsql_field_type(), fbsql_next_result(), fbsql_num_fields(), fbsql_num_rows(), fbsql_result(), fbsql_num_rows() | fbsql_free_result() | fbsql result
fdf | fdf_open() | fdf_create(), fdf_save(), fdf_get_value(), fdf_set_value(), fdf_next_field_name(), fdf_set_ap(), fdf_set_status(), fdf_get_status(), fdf_set_file(), fdf_get_file(), fdf_set_flags(), fdf_set_opt(), fdf_set_submit_form_action(), fdf_set_javascript_action() | fdf_close() | Файл FDF
ftp | ftp_connect(), ftp_ssl_connect() | ftp_login(), ftp_pwd(), ftp_cdup(), ftp_chdir(), ftp_mkdir(), ftp_rmdir(), ftp_nlist(), ftp_rawlist(), ftp_systype(), ftp_pasv(), ftp_get(), ftp_fget(), ftp_put(), ftp_fput(), ftp_size(), ftp_mdtm(), ftp_rename(), ftp_delete(), ftp_site(), ftp_alloc(), ftp_chmod(), ftp_exec(), ftp_get_option(), ftp_nb_continue(), ftp_nb_fget(), ftp_nb_fput(), ftp_nb_get(), ftp_nb_put(), ftp_raw(), ftp_set_option() | ftp_close() | Поток FTP
gd | imagecreate(), imagecreatefromgd(), imagecreatefromgd2(), imagecreatefromgd2part(), imagecreatefromgif(), imagecreatefromjpeg(), imagecreatefrompng(), imagecreatefromwbmp(), imagecreatefromstring(), imagecreatefromxbm(), imagecreatefromxpm(), imagecreatetruecolor(), imagerotate() | imagearc(), imagechar(), imagecharup(), imagecolorallocate(), imagecolorat(), imagecolorclosest(), imagecolorexact(), imagecolorresolve(), imagegammacorrect(), imagegammacorrect(), imagecolorset(), imagecolorsforindex(), imagecolorstotal(), imagecolortransparent(), imagecopy(), imagecopyresized(), imagedashedline(), imagefill(), imagefilledpolygon(), imagefilledrectangle(), imagefilltoborder(), imagegif(), imagepng(), imagejpeg(), imagewbmp(), imageinterlace(), imageline(), imagepolygon(), imagepstext(), imagerectangle(), imagerotate(), imagesetpixel(), imagestring(), imagestringup(), imagesx(), imagesy(), imagettftext(), imagefilledarc(), imageellipse(), imagefilledellipse(), imagecolorclosestalpha(), imagecolorexactalpha(), imagecolorresolvealpha(), imagecopymerge(), imagecopymergegray(), imagecopyresampled(), imagetruecolortopalette(), imagesetbrush(), imagesettile(), imagesetthickness(), image2wbmp(), imagealphablending(), imageantialias(), imagecolorallocatealpha(), imagecolorclosesthwb(), imagecolordeallocate(), imagecolormatch(), imagefilter(), imagefttext(), imagegd(), imagegd2(), imageistruecolor(), imagelayereffect(), imagepalettecopy(), imagesavealpha(), imagesetstyle(), imagexbm() | imagedestroy() | Изображение GD
gd font | imageloadfont() | imagechar(), imagecharup(), imagefontheight() | Отсутствует | Шрифт для библиотеки GD
gd PS encoding
gd PS font | imagepsloadfont() | imagepstext(), imagepsslantfont(), imagepsextendfont(), imagepsencodefont(), imagepsbbox() | imagepsfreefont() | Шрифт PS для библиотеки GD
GMP integer | gmp_init() | gmp_intval(), gmp_strval(), gmp_add(), gmp_sub(), gmp_mul(), gmp_div_q(), gmp_div_r(), gmp_div_qr(), gmp_div(), gmp_mod(), gmp_divexact(), gmp_cmp(), gmp_neg(), gmp_abs(), gmp_sign(), gmp_fact(), gmp_sqrt(), gmp_sqrtrm(), gmp_perfect_square(), gmp_pow(), gmp_powm(), gmp_prob_prime(), gmp_gcd(), gmp_gcdext(), gmp_invert(), gmp_legendre(), gmp_jacobi(), gmp_random(), gmp_and(), gmp_or(), gmp_xor(), gmp_setbit(), gmp_clrbit(), gmp_scan0(), gmp_scan1(), gmp_popcount(), gmp_hamdist() | Отсутствует | Число GMP
hyperwave document | hw_cp(), hw_docbyanchor(), hw_getremote(), hw_getremotechildren() | hw_children(), hw_childrenobj(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getsrcbydestobj(), hw_getandlock(), hw_gettext(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_inscoll(), hw_pipedocument(), hw_unlock() | hw_deleteobject() | Объект Hyperwave
hyperwave link | hw_connect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | hw_close(), hw_free_document() | Соединение с сервером Hyperwave
hyperwave link persistent | hw_pconnect() | hw_children(), hw_childrenobj(), hw_cp(), hw_deleteobject(), hw_docbyanchor(), hw_docbyanchorobj(), hw_errormsg(), hw_edittext(), hw_error(), hw_getparents(), hw_getparentsobj(), hw_getchildcoll(), hw_getchildcollobj(), hw_getremote(), hw_getremotechildren(), hw_getsrcbydestobj(), hw_getobject(), hw_getandlock(), hw_gettext(), hw_getobjectbyquery(), hw_getobjectbyqueryobj(), hw_getobjectbyquerycoll(), hw_getobjectbyquerycollobj(), hw_getchilddoccoll(), hw_getchilddoccollobj(), hw_getanchors(), hw_getanchorsobj(), hw_mv(), hw_incollections(), hw_info(), hw_inscoll(), hw_insdoc(), hw_insertdocument(), hw_insertobject(), hw_mapid(), hw_modifyobject(), hw_pipedocument(), hw_unlock(), hw_who(), hw_getusername() | Отсутствует | Постоянное соединение с сервером Hyperwave
icap | icap_open() | icap_fetch_event(), icap_list_events(), icap_store_event(), icap_snooze(), icap_list_alarms(), icap_delete_event() | icap_close() | Соединение с сервером icap
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
imap chain persistent
imap persistent
ingres | ingres_connect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | ingres_close() | Соединение с базой данных ingresII
ingres persistent | ingres_pconnect() | ingres_query(), ingres_num_rows(), ingres_num_fields(), ingres_field_name(), ingres_field_type(), ingres_field_nullable(), ingres_field_length(), ingres_field_precision(), ingres_field_scale(), ingres_fetch_array(), ingres_fetch_row(), ingres_fetch_object(), ingres_rollback(), ingres_commit(), ingres_autocommit() | Отсутствует | Постоянное соединение с базой данных ingresII
interbase blob
interbase link | ibase_connect() | ibase_query(), ibase_prepare(), ibase_trans() | ibase_close() | Соединение с базой данных Interbase
interbase link persistent | ibase_pconnect() | ibase_query(), ibase_prepare(), ibase_trans() | Отсутствует | Постоянное соединение с базой данных Interbase
interbase query | ibase_prepare() | ibase_execute() | ibase_free_query() | Запрос Interbase
interbase result | ibase_query() | ibase_fetch_row(), ibase_fetch_object(), ibase_field_info(), ibase_num_fields() | ibase_free_result() | Результат запроса Interbase
interbase transaction | ibase_trans() | ibase_commit() | ibase_rollback() | Транзакция Interbase
java
ldap link | ldap_connect(), ldap_search() | ldap_count_entries(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_next_attribute(), ldap_next_entry() | ldap_close() | Соединение ldap
ldap result | ldap_read() | ldap_add(), ldap_compare(), ldap_bind(), ldap_count_entries(), ldap_delete(), ldap_errno(), ldap_error(), ldap_first_attribute(), ldap_first_entry(), ldap_get_attributes(), ldap_get_dn(), ldap_get_entries(), ldap_get_values(), ldap_get_values_len(), ldap_get_option(), ldap_list(), ldap_modify(), ldap_mod_add(), ldap_mod_replace(), ldap_next_attribute(), ldap_next_entry(), ldap_mod_del(), ldap_set_option(), ldap_unbind() | ldap_free_result() | Результат поиска ldap
ldap result entry
mcal | mcal_open(), mcal_popen() | mcal_create_calendar(), mcal_rename_calendar(), mcal_rename_calendar(), mcal_delete_calendar(), mcal_fetch_event(), mcal_list_events(), mcal_append_event(), mcal_store_event(), mcal_delete_event(), mcal_list_alarms(), mcal_event_init(), mcal_event_set_category(), mcal_event_set_title(), mcal_event_set_description(), mcal_event_set_start(), mcal_event_set_end(), mcal_event_set_alarm(), mcal_event_set_class(), mcal_next_recurrence(), mcal_event_set_recur_none(), mcal_event_set_recur_daily(), mcal_event_set_recur_weekly(), mcal_event_set_recur_monthly_mday(), mcal_event_set_recur_monthly_wday(), mcal_event_set_recur_yearly(), mcal_fetch_current_stream_event(), mcal_event_add_attribute(), mcal_expunge() | mcal_close() | Соединение с сервером calendar
SWFAction
SWFBitmap
SWFButton
SWFDisplayItem
SWFFill
SWFFont
SWFGradient
SWFMorph
SWFMovie
SWFShape
SWFSprite
SWFText
SWFTextField
mnogosearch agent
mnogosearch result
msql link | msql_connect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | msql_close() | Соединение с базой данных mSQL
msql link persistent | msql_pconnect() | msql(), msql_create_db(), msql_createdb(), msql_drop_db(), msql_drop_db(), msql_select_db(), msql_select_db() | Отсутствует | Постоянное соединение с базой данных mSQL
msql query | msql_db_query(), msql_list_dbs(), msql_list_fields(), msql_list_tables(), msql_query() | msql(), msql_affected_rows(), msql_data_seek(), msql_dbname(), msql_fetch_array(), msql_fetch_field(), msql_fetch_object(), msql_fetch_row(), msql_field_seek(), msql_field_table(), msql_field_flags(), msql_field_len(), msql_field_name(), msql_field_type(), msql_num_fields(), msql_num_rows(), msql_numfields(), msql_numrows(), msql_result() | msql_free_result(), msql_free_result() | Результат запроса mSQL
mssql link | mssql_connect() | mssql_query(), mssql_select_db() | mssql_close() | Соединение с базой данных Microsoft SQL Server
mssql link persistent | mssql_pconnect() | mssql_query(), mssql_select_db() | Отсутствует | Постоянное соединение с базой данных Microsoft SQL Server
mssql result | mssql_query() | mssql_data_seek(), mssql_fetch_array(), mssql_fetch_field(), mssql_fetch_object(), mssql_fetch_row(), mssql_field_length(), mssql_field_name(), mssql_field_seek(), mssql_field_type(), mssql_num_fields(), mssql_num_rows(), mssql_result() | mssql_free_result() | Результат запроса Microsoft SQL Server
mysql link | mysql_connect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | mysql_close() | Соединение с базой данных MySQL
mysql link persistent | mysql_pconnect() | mysql_affected_rows(), mysql_change_user(), mysql_create_db(), mysql_data_seek(), mysql_db_name(), mysql_db_query(), mysql_drop_db(), mysql_errno(), mysql_error(), mysql_insert_id(), mysql_list_dbs(), mysql_list_fields(), mysql_list_tables(), mysql_query(), mysql_result(), mysql_select_db(), mysql_tablename(), mysql_get_host_info(), mysql_get_proto_info(), mysql_get_server_info() | Отсутствует | Постоянное соединение с базой данных MySQL
mysql result | mysql_db_query(), mysql_list_dbs(), mysql_list_fields(), mysql_list_processes(), mysql_list_tables(), mysql_query(), mysql_unbuffered_query() | mysql_data_seek(), mysql_db_name(), mysql_fetch_array(), mysql_fetch_assoc(), mysql_fetch_field(), mysql_fetch_lengths(), mysql_fetch_object(), mysql_fetch_row(), mysql_fetch_row(), mysql_field_flags(), mysql_field_name(), mysql_field_len(), mysql_field_seek(), mysql_field_table(), mysql_field_type(), mysql_num_fields(), mysql_num_rows(), mysql_result(), mysql_tablename() | mysql_free_result() | Результат запроса MySQL
oci8 collection | oci_new_collection() | OCI-Collection::append(), OCI-Collection::assign(), OCI-Collection::assignElem(), OCI-Collection::getElem(), OCI-Collection::max(), OCI-Collection::size(), OCI-Collection::trim() | OCI-Collection::free() | Коллекция Oracle
oci8 connection | oci_connect(), oci_pconnect(), oci_new_connect() | oci_commit(), oci_error(), oci_new_cursor(), oci_parse(), oci_password_change(), oci_rollback(), oci_server_version(), oci_set_action(), oci_set_client_identifier(), oci_set_client_info(), oci_set_module_name() | oci_close() | Соединение с базой данных Oracle
oci8 lob | oci_new_descriptor() | OCI-Lob::append(), OCI-Lob::close(), OCI-Lob::eof(), OCI-Lob::erase(), OCI-Lob::export(), OCI-Lob::flush(), OCI-Lob::getBuffering(), OCI-Lob::import(), OCI-Lob::load(), OCI-Lob::read(), OCI-Lob::rewind(), OCI-Lob::save(), OCI-Lob::saveFile(), OCI-Lob::seek(), OCI-Lob::setBuffering(), OCI-Lob::size(), OCI-Lob::tell(), OCI-Lob::truncate(), OCI-Lob::write(), OCI-Lob::writeTemporary(), OCI-Lob::writeToFile(), oci_lob_copy(), oci_lob_is_equal() | OCI-Lob::free() | Большие объекты Oracle
oci8 выражения | oci_parse(), oci_new_cursor() | oci_bind_array_by_name(), oci_bind_by_name(), oci_cancel(), oci_define_by_name(), oci_error() oci_execute(), oci_fetch_all(), oci_fetch_array(), oci_fetch_assoc(), oci_fetch_object(), oci_fetch_row(), oci_fetch(), oci_field_is_null(), oci_field_name(), oci_field_precision(), oci_field_scale(), oci_field_size(), oci_field_type_raw(), oci_field_type(), oci_num_fields(), oci_num_rows(), oci_result(), oci_set_prefetch(), oci_statement_type() | oci_free_statement() | Курсор Oracle
odbc link | odbc_connect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | odbc_close() | Соединение с базой данных ODBC
odbc link persistent | odbc_pconnect() | odbc_autocommit(), odbc_commit(), odbc_error(), odbc_errormsg(), odbc_exec(), odbc_tables(), odbc_tableprivileges(), odbc_do(), odbc_prepare(), odbc_columns(), odbc_columnprivileges(), odbc_procedurecolumns(), odbc_specialcolumns(), odbc_rollback(), odbc_setoption(), odbc_gettypeinfo(), odbc_primarykeys(), odbc_foreignkeys(), odbc_procedures(), odbc_statistics() | Отсутствует | Постоянное соединение с базой данных ODBC
odbc result | odbc_prepare() | odbc_binmode(), odbc_cursor(), odbc_execute(), odbc_fetch_into(), odbc_fetch_row(), odbc_field_name(), odbc_field_num(), odbc_field_type(), odbc_field_len(), odbc_field_precision(), odbc_field_scale(), odbc_longreadlen(), odbc_num_fields(), odbc_num_rows(), odbc_result(), odbc_result_all(), odbc_setoption() | odbc_free_result() | Результат запроса ODBC
birdstep link
birdstep result
Ключ OpenSSL | openssl_get_privatekey(), openssl_get_publickey() | openssl_sign(), openssl_seal(), openssl_open(), openssl_verify() | openssl_free_key() | Ключ OpenSSL
OpenSSL X.509 | openssl_x509_read() | openssl_x509_parse(), openssl_x509_checkpurpose() | openssl_x509_free() | Публичный ключ
pdf document | pdf_new() | pdf_add_bookmark(), pdf_add_launchlink(), pdf_add_locallink(), pdf_add_note(), pdf_add_pdflink(), pdf_add_weblink(), pdf_arc(), pdf_attach_file(), pdf_begin_page(), pdf_circle(), pdf_clip(), pdf_closepath(), pdf_closepath_fill_stroke(), pdf_closepath_stroke(), pdf_concat(), pdf_continue_text(), pdf_curveto(), pdf_end_page(), pdf_endpath(), pdf_fill(), pdf_fill_stroke(), pdf_findfont(), pdf_get_buffer(), pdf_get_image_height(), pdf_get_image_width(), pdf_get_parameter(), pdf_get_value(), pdf_lineto(), pdf_moveto(), pdf_open_ccitt(), pdf_open_file(), pdf_open_image_file(), pdf_place_image(), pdf_rect(), pdf_restore(), pdf_rotate(), pdf_save(), pdf_scale(), pdf_setdash(), pdf_setflat(), pdf_setfont(), pdf_setgray(), pdf_setgray_fill(), pdf_setgray_stroke(), pdf_setlinecap(), pdf_setlinejoin(), pdf_setlinewidth(), pdf_setmiterlimit(), pdf_setpolydash(), pdf_setrgbcolor(), pdf_setrgbcolor_fill(), pdf_setrgbcolor_stroke(), pdf_set_border_color(), pdf_set_border_dash(), pdf_set_border_style(), pdf_set_char_spacing(), pdf_set_duration(), pdf_set_font(), pdf_set_horiz_scaling(), pdf_set_parameter(), pdf_set_text_pos(), pdf_set_text_rendering(), pdf_set_value(), pdf_set_word_spacing(), pdf_show(), pdf_show_boxed(), pdf_show_xy(), pdf_skew(), pdf_stringwidth(), pdf_stroke(), pdf_translate(), pdf_add_thumbnail(), pdf_arcn(), pdf_begin_pattern(), pdf_begin_template(), pdf_end_pattern(), pdf_end_template(), pdf_initgraphics(), pdf_makespotcolor(), pdf_set_info(), pdf_setcolor(), pdf_setmatrix(), pdf_open_memory_image() | pdf_close(), pdf_delete() | Документ PDF
pdf image | pdf_open_image(), pdf_open_image_file(), pdf_open_memory_image() | pdf_get_image_height(), pdf_get_image_width(), pdf_open_CCITT(), pdf_place_image() | pdf_close_image() | Изображение в PDF-файле
pdf object
pdf outline
pgsql large object | pg_lo_open() | pg_lo_open(), pg_lo_create(), pg_lo_read(), pg_lo_read_all(), pg_lo_seek(), pg_lo_tell(), pg_lo_unlink(), pg_lo_write() | pg_lo_close() | PostgreSQL Large Object
pgsql link | pg_connect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | pg_close() | Соединение с базой данных PostgreSQL
pgsql link persistent | pg_pconnect() | pg_affected_rows(), pg_query(), pg_send_query(), pg_get_result(), pg_connection_busy(), pg_connection_reset(), pg_connection_status(), pg_last_error(), pg_last_notice(), pg_lo_create(), pg_lo_export(), pg_lo_import(), pg_lo_open(), pg_lo_unlink(), pg_host(), pg_port(), pg_dbname(), pg_options(), pg_copy_from(), pg_copy_to(), pg_end_copy(), pg_put_line(), pg_tty(), pg_trace(), pg_untrace(), pg_set_client_encoding(), pg_client_encoding(), pg_metadata(), pg_convert(), pg_insert(), pg_select(), pg_delete(), pg_update() | Отсутствует | Постоянное соединение с базой данных PostgreSQL
pgsql result | pg_execute(), pg_query(), pg_query_params(), pg_get_result() | pg_fetch_array(), pg_fetch_object(), pg_fetch_result(), pg_fetch_row(), pg_field_is_null(), pg_field_name(), pg_field_num(), pg_field_prtlen(), pg_field_size(), pg_field_type(), pg_last_oid(), pg_num_fields(), pg_num_rows(), pg_result_error(), pg_result_status() | pg_free_result() | Результат запроса PostgreSQL
pgsql string
printer
printer brush
printer font
printer pen
pspell | pspell_new(), pspell_new_config(), pspell_new_personal() | pspell_add_to_personal(), pspell_add_to_session(), pspell_check(), pspell_clear_session(), pspell_config_ignore(), pspell_config_mode(), pspell_config_personal(), pspell_config_repl(), pspell_config_runtogether(), pspell_config_save_repl(), pspell_save_wordlist(), pspell_store_replacement(), pspell_suggest() | Отсутствует | Словарь pspell
pspell config | pspell_config_create() | pspell_new_config() | Отсутствует | Конфигурация pspell
Sablotron XSLT | xslt_create() | xslt_closelog(), xslt_openlog(), xslt_run(), xslt_set_sax_handler(), xslt_errno(), xslt_error(), xslt_fetch_result(), xslt_free() | xslt_free() | Парсер XSLT
shmop | shmop_open() | shmop_read(), shmop_write(), shmop_size(), shmop_delete() | shmop_close() | Управление блоком рязделяемой памяти (С версии PHP 7.0.0)
sockets file descriptor set | socket() | accept_connect(), bind(), connect(), listen(), read(), write() | close() | Сокет
sockets i/o vector
stream | opendir() | readdir(), rewinddir() | closedir() | Дескриптор директории
stream | fopen(), tmpfile() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), flock(), fpassthru(), fputs(), fwrite(), fread(), fseek(), ftell(), fstat(), ftruncate(), set_file_buffer(), rewind() | fclose() | Дескриптор файла
stream | popen(), fsockopen(), pfsockopen() | feof(), fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | pclose() | Дескриптор процесса
socket | fflush(), fgetc(), fgetcsv(), fgets(), fgetss(), fpassthru(), fputs(), fwrite(), fread() | fclose() | Дескриптор сокета
sybase-db link | sybase_connect() | sybase_query(), sybase_select_db() | sybase_close() | Соединение с базой данных Sybase при помощи библиотеки DB
sybase-db link persistent | sybase_pconnect() | sybase_query(), sybase_select_db() | Отсутствует | Постоянное соединение с базой данных Sybase при помощи библиотеки DB
sybase-db result | sybase_query(), sybase_unbuffered_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Результат запроса базы данных Sybase с помощью библиотеки DB
sybase-ct link | sybase_connect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | sybase_close() | Соединение с базой данных Sybase с помощью библиотеки CT
sybase-ct link persistent | sybase_pconnect() | sybase_affected_rows(), sybase_query(), sybase_select_db() | Отсутствует | Постоянное соединение с базой данных Sybase с помощью библиотеки CT
sybase-ct result | sybase_query() | sybase_data_seek(), sybase_fetch_array(), sybase_fetch_field(), sybase_fetch_object(), sybase_fetch_row(), sybase_field_seek(), sybase_num_fields(), sybase_num_rows(), sybase_result() | sybase_free_result() | Результат запроса базы данных Sybase с помощью библиотеки CT
sysvsem | sem_get() | sem_acquire() | sem_release() | Семафор System V
sysvshm | shm_attach() | shm_remove(), shm_put_var(), shm_get_var(), shm_remove_var() | shm_detach() | Разделяемая память System V
wddx | wddx_packet_start() | wddx_add_vars() | wddx_packet_end() | Пакет WDDX
xml | xml_parser_create(), xml_parser_create_ns() | xml_set_object(), xml_set_element_handler(), xml_set_character_data_handler(), xml_set_processing_instruction_handler(), xml_set_default_handler(), xml_set_unparsed_entity_decl_handler(), xml_set_notation_decl_handler(), xml_set_external_entity_ref_handler(), xml_parse(), xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number(), xml_get_current_byte_index(), xml_parse_into_struct(), xml_parser_set_option(), xml_parser_get_option() | xml_parser_free() | XML-парсер
zlib | gzopen() | gzeof(), gzgetc(), gzgets(), gzgetss(), gzpassthru(), gzputs(), gzread(), gzrewind(), gzseek(), gztell(), gzwrite() | gzclose() | Файл, сжатый алгоритмом gz
zlib.deflate | deflate_init() | deflate_add() | None() | Контекст для инкрементальной компрессии по RFC 1951
zlib.inflate | inflate_init() | inflate_add() | None() | Контекст для инкрементальной декомпрессии по RFC 1951


Список доступных фильтров

Содержание

  • Строковые фильтры
  • Преобразовывающие фильтры
  • Компрессионные фильтры
  • Шифрующие фильтры

Следующий список перечисляет несколько встроенных фильтров для использования с stream_filter_append(). Ваша версия PHP может включать больше (или меньше) фильтров, чем перечислено здесь.

Следует акцентировать внимание на определенной асимметричности функций stream_filter_append() и stream_filter_prepend(). Каждый поток в PHP имеет небольшой буфер чтения, в котором он хранит блоки данных, полученные из файловой системы или другого ресурса, для того чтобы обрабатывать данные наиболее эффективным образом. Как только данные переносятся из ресурса во внутренний буфер потока, они сразу же обрабатываются закрепленными за потоком фильтрами, независимо от того, готово ли приложение PHP принимать данные или нет. Если данные находятся в буфере чтения в момент, когда в фильтр что-то дописывают в конец, данные будут немедленно обработаны этим фильтром, таким образом их нахождение в буфере будет прозрачным. В то же время, если данные находятся в буфере в момент, когда в фильтр что-то дописывают в начало, данные НЕ будут обработаны этим фильтром. Вместо этого, они будут ждать момента, когда следующий блок данных будет получен из ресурса.

Для получения списка фильтров, установленных в вашу версию PHP, используйте функцию stream_get_filters().


Строковые фильтры

Все эти фильтры служат для того самого, что подразумевают их имена в соответствии с поведением встроенных в PHP функций для работы со строками. Для получения дополнительной информации о конкретном фильтре, обратитесь к странице руководства соответствующей функции.

string.rot13 Использование этого фильтра эквивалентно обработке всех данных потока функцией str_rot13().

Пример #1 string.rot13

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "This is a test.\n");
/* Выведет:  Guvf vf n grfg.   */
?>

string.toupper Использование этого фильтра эквивалентно обработке всех данных потока функцией strtoupper().

Пример #2 string.toupper

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "This is a test.\n");
/* Выведет:  THIS IS A TEST.   */
?>

string.tolower Использование этого фильтра эквивалентно обработке всех данных потока функцией strtolower().

Пример #3 string.tolower

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "This is a test.\n");
/* Выведет:  this is a test.   */
?>

string.strip_tags (с версии PHP 5.0.0) Использование этого фильтра эквивалентно обработке всех данных потока функцией strip_tags(). Он принимает аргументы в одной из двух форм: Либо в виде строки со списком тегов, как и второй аргумент функции strip_tags(), либо массив названий тегов.

Пример #4 string.strip_tags

<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>");
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Выведет:  <b>bolded text</b> enlarged to a level 1 heading   */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Выведет:  <b>bolded text</b> enlarged to a level 1 heading   */
?>


Преобразовывающие фильтры

Как и фильтры string.*, фильтры convert.* совершают действия, соответствующие их именам. Преобразовывающие фильтры были добавлены в PHP 5.0.0. Для получения дополнительной информации о конкретном фильтре, обратитесь к странице руководства соответствующей функции.

convert.base64-encode и convert.base64-decode Использование этих фильтров эквивалентно обработке всех данных потока функциями base64_encode() и base64_decode() соответственно. convert.base64-encode поддерживает аргументы, переданные в виде ассоциативного массива. Если указан аргумент line-length, результат base64 будет разделен на куски длинной line-length символов каждый. Если указан аргумент line-break-chars, каждый кусок будет разделен указанными символами. Эти параметры дают такой же эффект, как и использование base64_encode() в паре с chunk_split().

Пример #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  */
?>


Компрессионные фильтры

В то время, как Компрессионные обертки обеспечивают способ создания gzip- и bz2-совместимых файлов в локальной файловой системе, они не предоставляют общих средств для компрессии в сетевых потоках, как и не предоставляют средств для создания потока без компрессии с последующим превращением в компрессируемый. Для этих целей к любым потоковым ресурсам в любое время могут применяться компрессионные фильтры.

Замечание: Компрессионные фильтры не генерируют заголовков и окончаний, которые используют утилиты командной строки, такие как gzip. Они просто компрессируют (сжимают) и декомпрессируют (разжимают) порции данных в компрессируемом потоке данных.

zlib.deflate (компрессия) и zlib.inflate (декомпрессия) являются реализациями методов сжатия, описанных в » RFC 1951. Фильтр deflate принимает три аргумента, переданных в виде ассоциативного массива. level определяет, какой уровень компрессии использовать (1-9). Повышение этого значения приведет к уменьшению объемов данных за счет увеличения времени обработки. Существуют также два специальных уровня компрессии: 0 (для отключения компрессии) и -1 (внутреннее значение по умолчанию библиотеки zlib -- на текущий момент равно 6). window - это логарифм с основанием 2 от размера окна диапазона сжатия. Высокие значения (вплоть до 15 -- 32768 байт) приводят к улучшению компрессии за счет роста необходимой памяти, в то время как низкие значения (вплоть до 9 -- 512 байт) приводят к ухудшению компрессии за счет уменьшения необходимой памяти. Значением аргумента window по умолчанию на текущий момент является 15. memory определяет масштаб резервируемой памяти. Допустимые значения находятся в диапазоне от 1 (минимальное резервирование) до 9 (максимальное резервирование). Такое резервирование памяти влияет только на скорость и не влияет на размер генерируемых данных.

Замечание: Так как уровень компрессии является наиболее часто используемым аргументом, вы можете передать только его в качестве обычного целого числа (integer), вместо того чтобы передавать массив из одного элемента.

Компрессионные фильтры zlib.* доступны с версии PHP 5.1.0, если включена поддержка zlib. Они так же доступны в качестве обратного порта для версий 5.0.x путем установки пакета » zlib_filter из » PECL.

Пример #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 работают точно так же, как и фильтры zlib, описанные выше. Фильтр bzip2.compress принимает два аргумента в виде элементов ассоциативного массива: blocks является целочисленным (integer) значением в диапазоне от 1 до 9 и указывает на количество 100-килобайтовых блоков памяти для резервирования в качестве рабочего пространства. work - это так же целочисленное (integer) значение в диапазоне от 0 до 250, определяющее сколько усилий нужно потратить на обычный метод компрессии перед переключением на медленный, но более надежный метод. Изменение этого параметра влияет только на скорость компрессии. Ни размер сжатого результата, ни используемый объем памяти не изменяются при помощи этой настройки. Значение 0 указывает библиотеке bzip использовать собственное внутреннее значение по умолчанию. Фильтр bzip2.decompress принимает всего один аргумент, который может быть передан либо как обычное boolean-значение, либо как элемент small ассоциативного массива. Когда small установлен в TRUE, библиотека bzip совершит декомпрессию с минимальным расходом памяти за счет понижения скорости.

Компрессионные фильтры bzip2.* доступны с версии PHP 5.1.0, если включена поддержка bz2. Они так же доступны в качестве обратного порта для версий 5.0.x путем установки пакета » bz2_filter из » PECL.

Пример #3 bzip2.compress и bzip2.decompress

<?php
$param = array('blocks' => 9, 'work' => 0);

echo "Оригинальный файл размером " . filesize('LICENSE') . " байт.\n";

$fp = fopen('LICENSE.compressed', 'w');
stream_filter_append($fp, 'bzip2.compress', STREAM_FILTER_WRITE, $param);
fwrite($fp, file_get_contents('LICENSE'));
fclose($fp);

echo "Сжатый файл размером " . filesize('LICENSE.compressed') . " байт.\n";

/* Генерирует вывод:

Оригинальный файл размером 3288 байт.
Сжатый файл размером 1488 байт.

 */
?>


Шифрующие фильтры

mcrypt.* и mdecrypt.* обеспечивают симметричное шифрование и дешифрование при помощи 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 Шифрование вывода в файл используя 3DES

<?php
$passphrase = 'My secret';

/* Включает читаемую секретную фразу
 * в воспроизводимую пару iv/key
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) .
               md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secret-file.enc', 'wb');
stream_filter_append($fp, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'Secret secret secret data');
fclose($fp);
?>

Пример #2 Чтение зашифрованного файла

<?php
$passphrase = 'My secret';

/* Включает читаемую секретную фразу
 * в воспроизводимую пару iv/key
 */
$iv = substr(md5('iv'.$passphrase, true), 0, 8);
$key = substr(md5('pass1'.$passphrase, true) .
               md5('pass2'.$passphrase, true), 0, 24);
$opts = array('iv'=>$iv, 'key'=>$key);

$fp = fopen('secret-file.enc', 'rb');
stream_filter_append($fp, 'mdecrypt.tripledes', STREAM_FILTER_READ, $opts);
$data = rtrim(stream_get_contents($fp));
fclose($fp);

echo $data;
?>


Список поддерживаемых транспортных протоколов

Содержание

  • Интернет-сокеты: TCP, UDP, SSL и TLS
  • Unix-сокеты: UNIX и UDG

Нижеследующий список содержит информацию о протоколах передачи, встроенных в PHP и готовых для использования функциями работы с сокетами, такими как fsockopen() и stream_socket_client(). Эти протоколы не применяются в расширениях для работы с Сокетами.

Для получения списка поддерживаемых протоколов передачи, встроенных в вашу версию PHP, используйте функцию stream_get_transports().


Интернет-сокеты: TCP, UDP, SSL и TLS

PHP 4, PHP 5. ssl:// & tls:// начиная с версии PHP 4.3.0 sslv2:// & sslv3:// начиная с версии PHP 5.0.2

Замечание: Если транспортный протокол не указан, будет использован tcp://.

  • 127.0.0.1
  • fe80::1
  • www.example.com
  • tcp://127.0.0.1
  • tcp://fe80::1
  • tcp://www.example.com
  • udp://www.example.com
  • ssl://www.example.com
  • sslv2://www.example.com
  • sslv3://www.example.com
  • tls://www.example.com

Интернет-сокеты требуют указания порта в дополнение к адресу. В случае fsockopen(), порт передается вторым параметром и не затрагивает строку адреса. При работе с stream_socket_client() и другими близкими функциями, как и в случае со стандартными URL, порт указывается в конце адреса, отделенный двоеточием.

  • tcp://127.0.0.1:80
  • tcp://[fe80::1]:80
  • tcp://www.example.com:80

Замечание: IPv6 численные адреса с указанием порта
Во втором примере выше, в то время как IPv4 и имя хоста не изменились, за исключением добавления номера порта после двоеточия, адрес IPv6 заключен в квадратные скобки: [fe80::1]. Это сделано для того, чтобы отличить двоеточие в адресе от двоеточия при указании порта.

Протоколы ssl:// и tls:// (доступны, только если поддержка openssl включена в PHP) являются расширениями tcp://, дополняющими его SSL-шифрованием. Начиная с PHP 4.3.0, для работы с ssl-протоколами, PHP должен быть статически собран с поддержкой OpenSSL, а с версии PHP 5.0.0 он также может быть представлен и как модуль.

ssl:// будет пытаться использовать соединение SSL V2 или SSL V3, в зависимости от возможностей и настроек удаленного хоста. sslv2:// и sslv3:// позволяют явно указать использование SSL V2 или SSL V3.


Unix-сокеты: UNIX и UDG

unix:// и udg:// (udg:// начиная с PHP 5)

  • unix:///tmp/mysock
  • udg:///tmp/mysock

unix:// дает возможность использовать unix-сокеты, а udg:// предоставляет альтернативный способ передачи данных в них, с использованием пользовательского протокола датаграмм.

Unix-сокеты, в отличие от Интернет-сокетов не требуют указания порта. В случае fsockopen() параметр portno должен быть равен 0.


Таблица сравнения типов в PHP

Следующие таблицы демонстрируют работу PHP с типами переменных и операторами сравнения, как в случае свободного, так и в случае строгого сравнения. Также эта информация относится к разделу документации по приведению типов. Вдохновением на создание этого раздела мы обязаны различным комментариям пользователей и работе над » BlueShoes.

До осмотра таблиц, важно знать и понимать типы переменных и их значения. К примеру, "42" - string, в то время как 42 - integer. FALSE - boolean, а "false" - string.

Замечание:

HTML-формы не передают целые, дробные числа или булевые переменные: они всегда передают строки. Для проверки является ли строка числом, используйте функцию is_numeric().

Замечание:

Использование if ($x), если $x не определена, сгенерирует ошибку уровня E_NOTICE. Вместо этого используйте функцию empty() или isset() и/или инициализируйте переменную.

Замечание:

Некоторые арифметические операции могут вернуть значение, представленное константой NAN (Not A Number, не-число). Любое строгое или нестрогое сравнение этого значения с каким-либо другим, включая его самого, вернет FALSE (т.е. NAN != NAN и NAN !== NAN). Примерами операций, возвращающих NAN, являются sqrt(-1), asin(2) и acosh(0).

Сравнение типов $x и результатов функций PHP, связанных с типами
Выражение | gettype() | empty() | is_null() | isset() | boolean : if($x)
$x = ""; | string | TRUE | FALSE | TRUE | FALSE
$x = null; | NULL | TRUE | TRUE | FALSE | FALSE
var $x; | NULL | TRUE | TRUE | FALSE | FALSE
$x не определена | NULL | TRUE | TRUE | FALSE | FALSE
$x = array(); | array | TRUE | FALSE | TRUE | FALSE
$x = array('a', 'b'); | array | FALSE | FALSE | TRUE | TRUE
$x = false; | boolean | TRUE | FALSE | TRUE | FALSE
$x = true; | boolean | FALSE | FALSE | TRUE | TRUE
$x = 1; | integer | FALSE | FALSE | TRUE | TRUE
$x = 42; | integer | FALSE | FALSE | TRUE | TRUE
$x = 0; | integer | TRUE | FALSE | TRUE | FALSE
$x = -1; | integer | FALSE | FALSE | TRUE | TRUE
$x = "1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "0"; | string | TRUE | FALSE | TRUE | FALSE
$x = "-1"; | string | FALSE | FALSE | TRUE | TRUE
$x = "php"; | string | FALSE | FALSE | TRUE | TRUE
$x = "true"; | string | FALSE | FALSE | TRUE | TRUE
$x = "false"; | string | FALSE | FALSE | TRUE | TRUE

Гибкое сравнение с помощью ==
 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php" | ""
TRUE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE
FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE
1 | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | TRUE | FALSE | TRUE | TRUE
-1 | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
"1" | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"-1" | TRUE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
NULL | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE | TRUE
array() | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | TRUE | FALSE | FALSE
"php" | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"" | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | TRUE

Жесткое сравнение с помощью ===
 | TRUE | FALSE | 1 | 0 | -1 | "1" | "0" | "-1" | NULL | array() | "php" | ""
TRUE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
1 | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
0 | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
-1 | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"1" | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE
"0" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE | FALSE
"-1" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE | FALSE
NULL | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE | FALSE
array() | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE | FALSE
"php" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE | FALSE
"" | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | TRUE


Список меток (tokens) парсера

Различные части PHP внутренне представлены типами вроде T_SR. PHP выводит идентификаторы вроде этого в ошибках парсинга, например: "Parse error: unexpected T_SR, expecting ',' or ';' in script.php on line 10."

Предполагается, что вы знаете, что означает T_SR. Для всех, кто этого не знает ниже есть таблица этих идентификаторов с синтаксисом и ссылками на соответствующие разделы документации.

Замечание: Использование T_* констант

Все метки приведенные ниже также являются PHP-константами. Их значение автоматически генерируется на основе базовой инфраструктуры анализатора РНР. Это означает, что конкретное значение метки может изменяться между двумя версиями PHP. Например, константа T_FILE имеет значение 365 в PHP 5.3, в то время как это же значение относится к T_TRAIT в PHP 5.4, а значение константы T_FILE равно 369. Это означает, что для обеспечения совместимости в различных версиях PHP ваш код никогда не должен зависеть напрямую от значений T_* констант из какой-либо определенной версии PHP. Вместо этого ваш код должен использовать собственные значения (использовать длинные числа типа 10000) и соответствующую стратегию, которая будет работать со всеми версиями PHP и значениями T_* констант.

Метки
Метка | Синтаксис | Ссылка
T_ABSTRACT | abstract | Абстрактные классы (начиная с PHP 5.0.0)
T_AND_EQUAL | &= | операторы присваивания
T_ARRAY | array() | array(), синтаксис массива
T_ARRAY_CAST | (array) | приведение типа
T_AS | as | foreach
T_BAD_CHARACTER |  | все, что ниже ASCII 32 исключая \t (0x09), \n (0x0a) и \r (0x0d)
T_BOOLEAN_AND | && | логические операторы
T_BOOLEAN_OR | || | логические операторы
T_BOOL_CAST | (bool) или (boolean) | приведение типа
T_BREAK | break | break
T_CALLABLE | callable | callable
T_CASE | case | switch
T_CATCH | catch | Исключения (начиная с PHP 5.0.0)
T_CHARACTER |  | больше не используется
T_CLASS | class | классы и объекты
T_CLASS_C | __CLASS__ | магические константы
T_CLONE | clone | классы и объекты
T_CLOSE_TAG | ?> или %> | PHP-код внутри HTML
T_COMMENT | // или #, и /* */ | комментарии
T_CONCAT_EQUAL | .= | операторы присваивания
T_CONST | const | константы класса
T_CONSTANT_ENCAPSED_STRING | "foo" или 'bar' | строковой синтаксис
T_CONTINUE | continue | continue
T_CURLY_OPEN | {$ | переменные внутри строки
T_DEC | -- | операторы инкремента\декремента
T_DECLARE | declare | declare
T_DEFAULT | default | switch
T_DIR | __DIR__ | магические константы (начиная с PHP 5.3.0)
T_DIV_EQUAL | /= | операторы присваивания
T_DNUMBER | 0.12 и т.д. | числа с плавающей точкой
T_DOC_COMMENT | /** */ | PHPDoc-комментарии
T_DO | do | do..while
T_DOLLAR_OPEN_CURLY_BRACES | ${ | переменная внутри строки
T_DOUBLE_ARROW | => | синтаксис массивов
T_DOUBLE_CAST | (real), (double) или (float) | приведение типов
T_DOUBLE_COLON | :: | см. ниже T_PAAMAYIM_NEKUDOTAYIM
T_ECHO | echo | echo
T_ELLIPSIS | ... | аргументы функции (доступно с PHP 5.6.0)
T_ELSE | else | else
T_ELSEIF | elseif | elseif
T_EMPTY | empty | empty()
T_ENCAPSED_AND_WHITESPACE | " $a" | константная часть строки с переменными
T_ENDDECLARE | enddeclare | declare, альтернативный синтаксис
T_ENDFOR | endfor | for, альтернативный синтаксис
T_ENDFOREACH | endforeach | foreach, альтернативный синтаксис
T_ENDIF | endif | if, альтернативный синтаксис
T_ENDSWITCH | endswitch | switch, альтернативный синтаксис
T_ENDWHILE | endwhile | while, альтернативный синтаксис
T_END_HEREDOC |  | синтаксис heredoc
T_EVAL | eval() | eval()
T_EXIT | exit или die | exit(), die()
T_EXTENDS | extends | extends, классы и объекты
T_FILE | __FILE__ | магические константы
T_FINAL | final | Ключевое слово "final"
T_FINALLY | finally | Исключения (доступно с PHP 5.5.0)
T_FOR | for | for
T_FOREACH | foreach | foreach
T_FUNCTION | function или cfunction | функции
T_FUNC_C | __FUNCTION__ | магические константы
T_GLOBAL | global | область видимости переменной
T_GOTO | goto | (доступно с PHP 5.3.0)
T_HALT_COMPILER | __halt_compiler() | __halt_compiler (доступно с PHP 5.1.0)
T_IF | if | if
T_IMPLEMENTS | implements | Интерфейсы объектов
T_INC | ++ | операторы инкремента\декремента
T_INCLUDE | include() | include
T_INCLUDE_ONCE | include_once() | include_once
T_INLINE_HTML |  | текст вне PHP
T_INSTANCEOF | instanceof | операторы типа
T_INSTEADOF | insteadof | Трейты (доступно начиная с PHP 5.4.0)
T_INT_CAST | (int) или (integer) | приведение типов
T_INTERFACE | interface | Интерфейсы объектов
T_ISSET | isset() | isset()
T_IS_EQUAL | == | операторы сравнения
T_IS_GREATER_OR_EQUAL | >= | операторы сравнения
T_IS_IDENTICAL | === | операторы сравнения
T_IS_NOT_EQUAL | != или <> | операторы сравнения
T_IS_NOT_IDENTICAL | !== | операторы сравнения
T_IS_SMALLER_OR_EQUAL | <= | операторы сравнения
T_SPACESHIP | <=> | Операторы сравнения (доступно начиная с PHP 7.0.0)
T_LINE | __LINE__ | магические константы
T_LIST | list() | list()
T_LNUMBER | 123, 012, 0x1ac и т.д. | целые числа
T_LOGICAL_AND | and | логические операторы
T_LOGICAL_OR | or | логические операторы
T_LOGICAL_XOR | xor | логические операторы
T_METHOD_C | __METHOD__ | магические константы
T_MINUS_EQUAL | -= | операторы присваивания
T_MOD_EQUAL | %= | операторы присваивания
T_MUL_EQUAL | *= | операторы присваивания
T_NAMESPACE | namespace | пространства имен (начиная с PHP 5.3.0)
T_NS_C | __NAMESPACE__ | пространства имен (начиная с PHP 5.3.0)
T_NS_SEPARATOR | \ | пространства имен (начиная с PHP 5.3.0)
T_NEW | new | классы и объекты
T_NUM_STRING | "$a[0]" | цифровой индекс массива внутри строки
T_OBJECT_CAST | (object) | приведение типов
T_OBJECT_OPERATOR | -> | классы и объекты
T_OPEN_TAG | <?php, <? или <% | PHP-код внутри HTML
T_OPEN_TAG_WITH_ECHO | <?= или <%= | PHP-код внутри HTML
T_OR_EQUAL | |= | операторы присваивания
T_PAAMAYIM_NEKUDOTAYIM | :: | ::. Также определяется как T_DOUBLE_COLON.
T_PLUS_EQUAL | += | операторы присваивания
T_POW | ** | арифметические операторы (доступно с PHP 5.6.0)
T_POW_EQUAL | **= | операторы присваивания (доступно с PHP 5.6.0)
T_PRINT | print() | print
T_PRIVATE | private | классы и объекты
T_PUBLIC | public | классы и объекты
T_PROTECTED | protected | классы и объекты
T_REQUIRE | require() | require
T_REQUIRE_ONCE | require_once() | require_once
T_RETURN | return | возвращаемые значения
T_SL | << | побитовые операторы
T_SL_EQUAL | <<= | операторы присваивания
T_SR | >> | побитовые операторы
T_SR_EQUAL | >>= | операторы присваивания
T_START_HEREDOC | <<< | синтаксис heredoc
T_STATIC | static | область видимости переменной
T_STRING | parent, self и т.п.. | идентификаторы, например, ключевые слова вроде parent и self, сюда подходят также имена функций, классов и некоторые другие. Смотрите также T_CONSTANT_ENCAPSED_STRING
T_STRING_CAST | (string) | приведение типов
T_STRING_VARNAME | "${a | переменные внутри строки
T_SWITCH | switch | switch
T_THROW | throw | Исключения
T_TRAIT | trait | Трейты (начиная с PHP 5.4.0)
T_TRAIT_C | __TRAIT__ | __TRAIT__ (начиная с PHP 5.4.0)
T_TRY | try | Исключения
T_UNSET | unset() | unset()
T_UNSET_CAST | (unset) | приведение типов
T_USE | use | пространства имен (начиная с PHP 5.3.0; зарезервировано с PHP 4.0.0)
T_VAR | var | классы и объекты
T_VARIABLE | $foo | переменные
T_WHILE | while | while, do..while
T_WHITESPACE | \t \r\n |
T_XOR_EQUAL | ^= | операторы присваивания
T_YIELD | yield | генераторы (доступно с PHP 5.5.0)

Смотрите также token_name().


Руководство по именованию

Содержание

  • Глобальное пространство имен
  • Правила
  • Советы

Этот документ содержит советы по выбору имен для идентификаторов PHP-кода. При выбореимен для кода, создающего идентификаторы в глобальном пространстве имен, важно принимать во внимание это руководство, чтобы избежать коллизий имен из будущих версий PHP с вашим кодом.


Глобальное пространство имен

Обзор конструкций, создающих идентификаторы в глобальном пространстве имен.

  • функции

  • классы

  • интерфейсы

  • константы (не константы классов)

  • переменные, объявленные вне функций/методов


Правила

Следующий список правил дает обзор прав именования, которые проект PHP оставляет себе при выборе новых идентификаторов. Полным руководством является официальный "» Стандарт написания кода":

  • PHP владеет глобальным пространством имен, но старается находить описательные имена и избегать очевидных коллизий.

  • Имена функций используют подчеркивания между словами, а имена классов используют как camelCase, так и PascalCase.

  • PHP добавляет префикс к глобальным именам, принадлежащим расширению с именем этого расширения. (В прошлом было множество исключений из этого правила.) Например:

    • curl_close()

    • mysql_query()

    • PREG_SPLIT_DELIM_CAPTURE

    • new DOMDocument()

    • strpos() (пример исключения, допущенного в прошлом)

    • new SplFileObject()

  • Тем не менее, итераторы и исключения просто получают постфиксы "Iterator" и "Exception". Примеры:

    • ArrayIterator

    • LogicException

  • PHP резервирует все идентификаторы, начинающиеся с __ как "магические". Рекомендуется не создавать идентификаторов, начинающихся с __, кроме как с целью использовать документированную "магическую" функциональность. Примеры:

    • __get()

    • __autoload()


Советы

Для написания кода с прицелом на будущее, рекомендуется не помещать много переменных, функций и классов в глобальное пространство имен. Это поможет избежать конфликтов как со сторонними библиотеками, так и с функционалом языка, которым может быть добавлен в будущем.

Одним из самых распространенных способов избежать конфликтов классов и функций, это определять их в своем собственном, отдельном пространстве имен.

<?php

namespace MyProject;

function my_function() {
    return true;
}

\MyProject\my_function();

Вам все еще нужно отслеживать уже используемые пространства имен, но единожды определившись с ним, вы можете добавить в него все функции и классы, не думая о возможных проблемах.

Максимально ограничивать количество переменных в глобальном пространстве имен является хорошей практикой. Это позволит минимизировать возможность конфликтов со сторонним кодом, который вы решите добавить в свой проект.

Замечание: Область видимости переменных

Согластно правилам области видимости переменных в PHP, переменные определенные внутри функций и классов не могут вступать в противоречие с переменными, заданными в глобальной области видимости.


Об этом руководстве

Содержание

  • Форматы
  • О заметках пользователей
  • Как читать определения функции (прототип)
  • Версии PHP, документированные в этом руководстве
  • Как узнать больше о PHP
  • Как помочь в написании документации
  • Как создаются форматы документации
  • Переводы


Форматы

Руководство по PHP доступно в нескольких форматах. Эти форматы могут быть разделены на две группы: формат для чтения онлайн и форматы, доступные для загрузки.

Замечание:

Некоторые издательства выпустили печатные версии этого руководства. Однако, мы не рекомендуем пользоваться ими вследствие их быстрого устаревания.

Вы можете пользоваться руководством онлайн » на сайте PHP.net, а также на многочисленных сайтах-зеркалах. Чтобы обеспечить наиболее высокую скорость загрузки, вам нужно выбрать ближайший к вам сайт-зеркало. В данный момент онлайн версия PHP руководства имеет два отдельных стиля CSS - для просмотра онлайн (веб) и предназначенный для печати.

Преимуществом онлайн руководства над большинством оффлайн форматов является интеграция с замечаниями пользователей и » быстрыми ссылками, очень удобными для быстрого доступа к желаемой части руководства. Очевидным недостатком является то, что вам нужно находиться в онлайне, чтобы пользоваться руководством в онлайн форматах.

Существуют несколько форматов для использования в оффлайн, и вы можете выбрать формат, наиболее подходящий для использования в вашей операционной системе и отвечающий вашим читательским предпочтениям. Чтобы узнать больше о том, каким образом создается такое количество форматов руководства, обратитесь к разделу 'Как мы создаем форматы руководства'.

Наиболее кроссплатформенным форматом этого руководства является HTML-версия. Она доступна как в виде одного HTML-файла, так и в виде архива, содержащего несколько тысяч файлов, каждый из которых является отдельной главой руководства. Мы предоставляем эти версии руководств сжатыми, поэтому вам понадобится утилита разархивирования для доступа к файлам внутри архива.

На платформах Windows доступна версия руководства в формате Windows HTML Help, который может быть просмотрен с помощью приложения Windows HTML Help. Эта версия предусматривает поиск по тексту руководства, содержание и поддержку использования закладок. Многие среды разработки PHP-программ в Windows также используют эту версию из-за легкости доступа. Существуют также программы для просмотра CHM под Linux. Смотрите » xCHM или » GnoCHM.

Есть также » расширенная версия CHM, она обновляется менее часто, но зато обеспечивает множество дополнительных возможностей. К сожалению, из-за используемых технологий создания этого формата, она работает только на Microsoft Windows.


О заметках пользователей

Заметки пользователей играют большую роль в процессе создания этого руководства. Позволяя читателям высылать нам примеры, выявленные опечатки и другие сведения с помощью их браузеров, мы имеем возможность интегрировать эти замечания в основной текст руководства. Пока замечания пользователей не были добавлены в руководство, с ними можно ознакомиться онлайн и в некоторых оффлайн форматах.

Замечание:

Заметки пользователей не подвергаются модерации перед тем, как стать публично доступными, таким образом, качество написания примеров кода и даже их корректность не может быть гарантирована. (Так же, как не может быть гарантировано качество и точность собственно текста руководства).

Замечание:

По лицензионному соглашению заметки пользователей рассматриваются как часть самого руководства по PHP, поэтому к ним применима та же лицензия, что и к самому руководству (на данный момент Creative Commons Attribution). Подробности могут быть найдены на странице Авторские права данного руководства.


Как читать определения функции (прототип)

Документация к каждой функции в руководстве была написана с учетом быстрого обращения к этой документации. Зная как правильно читать и понимать текст, вам будет намного проще изучать PHP. Вместо того, чтобы полагаться на примеры или копирование/вставку, нужно просто понять как читать определения функции (прототипы). Давайте начнем:

Замечание: Предпосылки: Базовое понимание типов

Хотя PHP и является слабо типизированным языком, важно иметь базовое представление о типах, так как они играют большую роль в PHP.

Определения функций показывают нам какого типа значения они возвращают. Для первого примера возьмем определение функции strlen():

strlen

(PHP 4, PHP 5)
strlen -- Возвращает длину строки

Описание
int strlen ( string $string )

Возвращает длину переданной строки.

Объяснение определения функции
Часть | Описание
strlen | Имя функции.
(PHP 4, PHP 5) | strlen() была во всех версиях PHP 4 и PHP 5
int | Тип возвращаемого этой функцией значения, в данном случае integer (так как длина строки измеряется числом).
( string $string ) | Первый (и в данном случае единственный) параметр/аргумент этой функции называется string, а его типом является string.

Можно переписать вышеуказанное определение функции в более общем виде:

      возвращаемый тип    имя функции    ( тип параметра   имя параметра )

Много функций принимают несколько параметров, например, in_array(). Ее прототип выглядит так:

      bool in_array ( mixed $needle, array $haystack [, bool $strict = FALSE ] )

Что это означает? in_array() возвращает boolean, TRUE в случае успешной работы (если needle был найден в haystack) или FALSE в случае возникновения ошибки (если needle не был найден в haystack). Первый параметр называется needle ("иголка") и может принимать много различных типов, поэтому он называется "смешанным". Этот смешанный needle (то, что мы ищем) может быть любым скалярным значением (string, integer, или float), либо массивом. haystack ("стог сена", массив, в котором мы ищем) - это второй параметр. Третий необязательный параметр называется strict ("строго"). Все необязательные параметры пишутся в [ квадратных скобках ]. Руководство указывает, что параметр strict по умолчанию принимает значение boolean FALSE. Смотрите отдельную страницу документации по каждой функции для более подробной информации по их работе.

Символ & (амперсанд), поставленный перед параметром функции позволяет передавать значение этого параметра по ссылке:

       int preg_match ( string $pattern , string $subject [, array &$matches
      [, int $flags = 0 [, int $offset = 0 ]]] )

В данном примере мы можем использовать третий опциональный параметр &$matches, который будет передан по ссылке.

Есть также функции с более сложной информацией о версиях PHP. Возьмем для примера html_entity_decode():

(PHP 4 >= 4.3.0, PHP 5)

Это означает, что функция появилась в официальных версиях языка только с выхода PHP 4.3.0.


Версии PHP, документированные в этом руководстве

Данное руководство содержит информацию о прошлых, настоящих и будущих версиях PHP. Изменения поведения документированы замечаниями, историей изменений и непосредственно в тексте самого руководства. Самой ранней документируемой версией PHP является 5.0.0.

Если документация доступна для самой последней (еще невыпущенной) разрабатываемой версии PHP, она помечается либо как "доступно в Git" либо "разрабатываемая версия". И хотя эти изменения запланированы, в редких случаях они могут измениться.

Вся разработка ведется в Git и может быть получена способом, описанным на странице » анонимный доступ к Git.

Для ясности, руководство указывает основную, промежуточную и дробную версию релизов PHP. Возьмем для примера версию PHP 5.3.1, 5 является основной версией, 3 является промежуточной, и 1 является дробной версией. Обычно новые возможности в PHP добавляются только в основных и промежуточных версиях, а исправления ошибок - в дробных. Однако, это соглашение не всегда верно.

Также учтите, что руководство по PHP пишется в настоящем, а не в будущем времени, даже для задокументированных, но еще не доступных возможностей. Это сделано для того, чтобы облегчить испытание временем для данного руководства, таким образом можно избежать рутинных грамматических правок с каждой новой выпущенной версией PHP.

Много раз в руководстве указываются "значения по умолчанию" для различных директив PHP. Эти значения основаны на том, как ведет себя PHP без конфигурационного файла php.ini, поэтому они могут отличаться от тех, что приведены в распространяемых вместе с PHP файлах php.ini-development и php.ini-production. Они также относятся к последней версии PHP, хотя история изменений упоминает только прошлые значения. За подробной информацией об этих значениях и их истории изменений обращайтесь к приложению со списком PHP директив.


Как узнать больше о PHP

Это руководство не пытается охватить вопросы общего программирования. Если вы являетесь новичком или даже начинающим программистом, написание PHP-программ может показаться вам трудным, если вы будете использовать только это руководство. Вам, скорее всего, может понадобиться материал, более подходящий для начинающих.

Существует несколько списков рассылки, предназначенных для обсуждения всех аспектов программирования на PHP. Если вы чувствуете, что не можете найти решение какой-либо проблемы, кто-нибудь из подписчиков списка, вполне вероятно, сможет вам помочь. Все виды поддержки пользователей, в том числе и почтовые списки рассылки, перечислены на » странице поддержки PHP.net.


Как помочь в написании документации

Существуют три способа, чтобы помочь нам в улучшении документации.

Если вам встречаются ошибки в этом руководстве, на любом языке, сообщайте о них с помощью системы сообщения об ошибках, доступной по адресу » http://bugs.php.net/. Классифицируйте ваше сообщение как "Documentation Problem" ("Ошибка в документации"). Все проблемы с документацией, включая ошибки с различными форматами руководства, должны быть отправлены как сообщение об ошибке.

Замечание:

Пожалуйста, не используйте систему сообщения об ошибках для того, чтобы получить какого-либо рода помощь. Вместо этого воспользуйтесь какими-либо » видами поддержки, упомянутыми выше.

Посылая заметки, пользователи могут предоставить различные примеры, предостережения и разъяснения для других читателей. Но, пожалуйста, не используйте систему аннотации для сообщений об ошибках. Более подробные сведения о заметках пользователей вы можете получить, ознакомившись с главой 'О заметках пользователей' этого приложения.

Руководство по PHP было переведено на много языков. Знание английского и другого иностранного языка дает вам еще один способ улучшить это руководство, работая в команде переводчиков. Если вы собираетесь приступить к переводу, обратитесь к » http://doc.php.net/tutorial/.

Проект документации PHP также имеет IRC канал (чат), где можно найти много авторов данного руководства. Заходите на #php.doc на сайте irc.efnet.org и обсуждайте различные способы улучшить данное руководство.


Как создаются форматы документации

Это руководство написано на XML с использованием » DocBook XML DTD, с помощью » PhD (The [PH]P based [D]ocBook renderer, Генератор из формата Docbook на PHP) в целях поддержки и форматирования.

Использование XML в качестве единственного исходного формата позволяет нам создавать документацию во многих форматах, позволяя в то же время редактировать только один исходный документ для всех форматов. Утилитой для форматирования руководства является » PhD. Для создания руководства в формате Windows HTML Help мы используем » Microsoft HTML Help Workshop и, разумеется, сам PHP для дополнительных преобразований и форматирования.

Вы можете загрузить руководство на многих языках и во многих форматах, более подробно смотрите » http://www.php.net/docs.php. Исходный код XML можно загрузить из SVN и просмотреть онлайн по адресу » http://svn.php.net/viewvc/. Документация находится в модуле phpdoc.


Переводы

Руководство по PHP доступно не только в нескольких форматах, но и на различных языках. Сначала текст руководства пишется на английском, а затем команды людей по всему миру переводят его на свой родной язык. Если перевод документации какой-либо функции или главы еще не был завершен, система сборки руководства использует соответствующий английский вариант.

Люди, осуществляющие перевод документации, начинают с использования исходного кода в формате XML, доступного по адресу » http://svn.php.net/viewvc/ и затем переводят его на свой родной язык. Для перевода не используются сгенерированные версии (например, HTML или обычный текст), так как система сборки документации сама заботится о преобразовании XML в читабельные форматы.

Замечание:

Если вы хотите принять участие в переводе документации на ваш родной язык, присоединитесь к команде перевода, подписавшись на список рассылки phpdoc: вышлите пустое сообщение на адрес » phpdoc-subscribe@lists.php.net. Адрес списка рассылки - phpdoc@lists.php.net. Укажите в сообщении, что вы заинтересованы в участии в переводе руководства и кто-нибудь поможет вам начать новый перевод или найти команду, занимающуюся переводом на ваш язык.

В настоящее время руководство доступно, частично или в полной мере, на более чем 10 языках.

Все эти версии руководства доступны для загрузки по адресу » http://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.